Documente Academic
Documente Profesional
Documente Cultură
Circuite Logice Programabile Complexe CPLD PDF
Circuite Logice Programabile Complexe CPLD PDF
4.3 Introducere
Circuitele logice programabile asigură crearea proiectelor digitale
semicustom*, dar cu circuite standardizate. Gama largă a circuitelor programabile
asigură libertatea de proiectare a unor funcţii de bază a căror realizare este de altfel
mult prea costisitoare. Circuitele PLD asigură reducerea costului şi timpului de
proiectare. Siguranţa în funcţionare măreşte calitatea produselor fără scăderea
complexităţii proiectelor.
Problemele de proiectare sunt mult simplificate prin gama largă a programelor
oferite de producători de circuite PLD. Simularea proiectelor permite detectarea
erorilor de proiectare, astfel încât se reduc cheltuielile de proiectare şi testare încă
din faza de proiectării. Toate aceste motive au contribuit la creşterea utilizării
circuitelor logice programabile.
Încă de la apariţia lor pe piaţă circuitele logice, cum ar fi 16V8 şi 22V10 au
conferit o mare flexibilitate în proiectarea digitală. Pe măsură ce tehnologia circuitelor
logice a avansat, s-a manifestat interesul firesc în dezvoltarea de circuite
programabile de capacitate din ce în ce mai mare.
Datorită efectelor capacitive, a creşterii valorilor curenţilor de pierdere cât şi a
altor efecte, pentru a se mării capacitatea PLD-urilor (Programmable Logic Devices)
nu s-a putut pur şi simplu „amplifica” vechea arhitectura (vezi figura 4.1).
Astfel un circuit 128V64 ar avea 64 pini de intrare, 64 I/O pini, deci 128
variabile implementate ca şi sumă de produse folosind cele 64 macrocelule (
macrocelula conţine o poartă SAU la a cărei intrări se pot conecta n porţi AND, o
poartă SAU-EXCLUSIV, un bistabil şi un buffer tristate) faţă de circuitul 16V8 din
care derivă, care are 8 semnale de intrare, 8 semnale de intrare / ieşire şi 8
macrocelule. Nici din punctul de vedere al utilizării eficiente a pastilei de siliciu pe
care este implementat circuitul situaţia nu este mai bună, astfel că un 128V64 ar
ocupa o arie de 64 de oi mai mare ca şi 16V8 şi ar furniza un număr de intrări/ieşiri
de numai 8 ori mai mare. Astfel că folosirea a 8 circuite 16V8 ar fi mai eficientă decât
crearea unui 128V64.
Ca şi o consecinţă a celor expuse mai sus a apărut ideea creări circuitelor
logice programabile complexe (CPLD = Complex Programmable Logic Devices),
care nu sunt altceva decât un grup de circuite PLD însoţite de o structură de
interconexiuni programabile, vezi figura 4.2.
*
semicustom = semipersonalizat, circuitele semicustom sunt concepute parţial în funcţie de necesităţile
utilizatorului
Circuite logice programabile complexe
55
Capitolul 4
56
Circuite logice programabile complexe
Tabelul T4.1
Structura de bază a unui bloc de funcţii este prezentată în figura 4.4. Aria
programabilă de porţi logice ŞI permite numai 90 de termeni produs / FB, câte 5
57
Capitolul 4
pentru fiecare macrocelulă (vezi figura 4.5). Acest neajuns este înlăturat printr-o
metodă de alocare a termenilor produs (Product Term Allocation = PTA).
Bistabilul FF1 poate fi programat atât ca bistabil de tip D cât şi ca bistabil de
tip T cu intrare de enable. Intrarea de clock a bistabilului este selectată de
multiplexorul M4 din una din cele patru surse posibile, unul din cele trei semnale
globale de clock sau de la ieşirea unui modul termen produs. Intrările asincrone de
set şi reset ale bistabilului pot fi conectate la semnale de set / reset globale prin
intermediul multiplexoarelor M2 şi M5.
Prin intermediul multiplexorului M3 se selectează tipul semnalului de la ieşirea
macrocelulei , sincron sau asincron. Acest semnal este trimis la matricea de
conexiuni unde poate fi folosit de o altă macrocelulă., de asemenea este trimis şi la
unul din blocurile de intrare ieşire ale CPLD-ului împreună cu un semnal provenind
de la simbolul S5 care poate fi folosit ca şi semnal de activare a ieşiri PTOE (Product
Term Output Enable).
58
Circuite logice programabile complexe
În figura 4.6 este prezentată structura unui bloc de intrare / ieşire (IOB). Există
şapte posibilităţii de a activa semnalul de ieşire dintr-un IOB, vezi multiplexorul M0.
Semnalul de ieşire poate fi întotdeauna activat şi dezactivat, poate fi comandat de
PTOE sau poate fi comandat de unul dintre cele patru semnale globale provenind de
la multiplexoarele M1-M4. Blocul de intrare / ieşire al CPLD-ului XC9500 furnizează
pe lângă comanda logică a semnalului de ieşire şi o comandă analogică, după cum
urmează:
Controlul slew-rate – este comandată panta de creştere şi de descreştere a
semnalului.
Rezistenţă pull-up – această rezistenţă înlătură posibilitatea ca anumite ieşiri să
rămână în stare logică necunoscută atunci când nu sunt comandate.
Masă programabilă de către utilizator – această caracteristică poate transforma orice
pin I/O într-un pin de masă.
O caracteristică în plus a familiei de circuite logice programabile XC9500 este
acea că este compatibilă cu alte circuite externe atât pe nivelul de 5V cât şi pe nivelul
de 3,3V.
59
Capitolul 4
60
Circuite logice programabile complexe
61
Capitolul 4
Tabelul T4.2
Tabelul T4.3
62
Circuite logice programabile complexe
funcţii FB, utilizează o configuraţie de tip PLA, ceea ce permite ca toţii termenii produs să
fie accesibili şi să poată fii rutaţi între oricare dintre macrocelulele FB-ului.
În figura 4.9 este prezentată arhitectura circuitelor din familia CoolRunner-II. Fiecare
FB conţine 16 macrocelule. Blocul BSC se referă la controlul Boundary Scan şi are în
alcătuire controlerul JTAG. Blocul ISP conţine circuitele In-System Programming, ce
permit programarea în sistem.
Blocul de funcţii FB
Acesta conţine 16 macrocelule fiecare având acces la cele 40 de semnale de intrare,
vezi figura 4.10. Logica internă permite implemntarea produselor cu până la 56 de
termeni. Toate blocurile FB din structura unui circuit CoolRunner sunt identice, între
membrii familiei diferă doar numărul acestora.
63
Capitolul 4
Macrocelulele
Permit implementarea sumelor de produse (SOP) cu până la 40 de variabile şi
56 de termeni, rezultatul fiind trecut printr-o poartă SAU Exclusiv, împreună cu altă
expresie de tipul produs. Poate fi de asemenea selectată şi polaritatea expresiei
logice, iar rezultatul final poate fi combinaţional sau secvenţial, elemntul de stocare
de la ieşire putând fi setat ca bistabil de tip D sau T sau ca şi latch transparent. In
mod independent fiecare macrocelulă peermite selectarea diferitelor semnale
globale, cum ar fi cele de tact de reset , de activare a ieşirilor.
64
Circuite logice programabile complexe
Blocurile de intrare/ieşire
Aceste blocuri permit alegerea standardului de tensiune dorit. Fiecare bloc
când funcţionează ca şi intrare permite setarea unui circuit trigger Schmitt, aceasta
ducând la reducerea zgomotului de la intrarea respectivă şi la adăugarea unui
hystereyis de aproximativ 500 mV. Dacă sunt setate ca şi ieşiri ceste blocuri permit
trecerea directă a semnaluli de semenea permit şi stările înaltă impedanţă sau cu
colectorul în gol. De asemenea poate fi aleasă şi viteza de variaţie a semnalului slew
rate. Sunt suportate standarde de tensiuni între 1,5 şi 3,3, V. În figura 4.12 este
prezentată arhitectura unui bloc de intrare / ieşire.
65
Capitolul 4
66
Circuite logice programabile complexe
67