Documente Academic
Documente Profesional
Documente Cultură
125
Circuite digitale
foarte populară. Programele de dezvoltare vin în ajutorul proiectantului şi reduc
timpul de proiectare. Deoarece proiectantului îi este redus efortul consacrat
proiectării, a devenit posibilă realizarea unor proiecte complexe, implementate într-un
timp foarte scurt.
Exist mai multe tipuri de dispozitive logice programabile, dar toate pot fi împărţite
în următoarele trei mari categorii:
Circute logice
programabile
PAL FPGA
Programmable Array EPLD.
LCA. SRAM. Switch
Logic, Bipolar Max.Eprom.Flex.
Matrix
ŞI programabil/SAU fix SRAM. Altera. XILINX
XILINX. AT&T
PLA SRAM. Sea of Gates
Programmable Logic Mach. EEPROM
ERA (Plessey),
Array AMD
Piklington
ŞI/SAU programabil
GAL, CMOS
Generic Array Logic PLSI. EEPROM FPGA. Antifuse
ŞI programabil/ SAU Lattice. XILINX Actel
fix
Macrocelule de ieşire
PASIC. Antifuse
Quicklogic
126
Capitolul 8. Circuite logice programabile
8.2 Dezavantajele circuitelor logice discrete faţă de circuitele
logice programabile
Circuitele logice discrete sau circuitele convenţionale TTL/CMOS sunt
circuitele cele mai populare şi au fost cele mai utilizate circuite şi datorită faptului că
sunt relativ ieftine. Dar una dintre problemele principale în utilizarea lor este că
realizarea unui proiect necesită zeci, sute de circuite integrate, mai mult apar costuri
neprevăzute pentru fiecare circuit ce intră în componenţa sistemului, astfel sistemul
devine scump la realizare. Fiecare decizie luată la proiectare afectează în mod direct
structura circuitului imprimat, astfel că modificarea proiectului devine dificilă. Proiectul
este greu de documentat, iar erorile de proiectare se elimină foarte greu din sistemul
deja realizat. Toate aceste motive contribuie la un ciclu de proiectare îndelungat
dacă aceste circuite integrate sunt utilizate într-un mod extensiv.
I1 O1
I2 O2
Arie ŞI Arie SAU
fixă programabilă
In Om
127
Circuite digitale
8.3.2 Arii logice programabile PLA (Programmable Logic Array)
Circuitele PLA sunt circuite care costau într-o arie de porţi ŞI programabilă şi o
arie de porţia SAU programabilă, prezentate în figura 8.4. Această structură permite
implementarea oricărei expresii de tipul sumă de produse (SOP) cu un număr dat de
variabile.
I1 O1
I2 O2
Arie ŞI Arie SAU
programabilă programabilă
In Om
128
Capitolul 8. Circuite logice programabile
Toate conexiunile, marcate prin cerculeţe în figură, sunt de tip fuzibil şi pot fi
întrerupte prin programare.
Semnalul de intrare Ik este aplicat unui buffer având rolul de a asigura curentul
necesar bunei funcţionări a porţilor logice cărora li se aplică semnalul, el furnizând
atât variabila de intrare cât şi variabila negată. Porţile logice ŞI sunt legate prin fuzibil
la ieşirile directe şi negate ale tuturor bufferelor de intrare. Practic, în urma
programării, un circuit ŞI va fi legat fie la ieşirea directă fie la cea negată a unui buffer
de intrare. La ieşirea porţilor se obţin termenii produs (P0,..,P47) care pot fi exprimaţi
prin:
15
Pk = ∏ (in An + jn An )
0
unde r=0,…,7; tk=0 termen P inactiv (programat) ; tk=1 termen P activ (neprogramat).
Porţile SAU-EXCLUSIV de la ieşire permit obţinerea funcţiei sau a inversei
acesteia (au rolul de inversor programabil). La ieşire circuitul este prevăzut cu buffere
cu trei stări controlate de o bornă comună CE (Chip Enable) ceea ce permite
conectarea circuitului la magistrale.
129
Circuite digitale
Pentru exemplificare să ne propunem realizarea unui CLC cu trei intrări şi
două ieşiri a cărui funcţionare să fie descrisă de următoarele funcţii logice:
Y1 = X 1 • X 2 + X 2 • X 3 + X 1 • X 2 • X 3
Y2 = X 1 • X 3 + X 1 • X 2 • X 3
Schema circuitului realizat pe o arie logică programabilă este reprezentată în
figura 8.6. Pentru realizarea circuitului s-au folosit trei intrări, cinci circuite ŞI precum
şi două circuite SAU.
Circuitele PLD se pot reprezenta în două moduri. Figura 8.7 prezintă structura
detailată a unui circuit PLA cu 4 intrări şi 3 ieşiri având 6 termeni de tip produs.
130
Capitolul 8. Circuite logice programabile
8.3.3 Arii logice programabile PAL (Programmable Array Logic – PAL)
Circuitele PAL au fost dezvoltate pentru a înlătura anumite dezavantaje ale
circuitelor PLA cum ar fi întârzierile mai mari datorate legăturilor fuzibile adiţionale
care rezultă din utilizarea a două arii programabile şi a unei complexităţi mai mari a
circuitului. Ariile logice programabile PAL posedă o structură de funcţie logică ŞI
programabilă, urmată de o funcţie SAU fixă (figura 8.9). Faptul că structura funcţiilor
ŞI este configurabilă permite utilizarea într-un număr mare a semnalelor de intrare,
iar funcţia SAU face posibilă realizarea circuitului pe o suprafaţă mică (ceea ce
înseamnă preţ şi timp de propagare scăzut).
I1 O1
Arie SAU
I2 Arie ŞI O2
fixă şi
programabilă
logică de
ieşire
In Om
131
Circuite digitale
132
Capitolul 8. Circuite logice programabile
8.3.4 Arii de porţi logice generice (Generic Array Logic – GAL)
Sunt circuite care au ca şi circuitele PAL o arie de porţi ŞI programabilă şi o arie
de porţi SAU fixă cu circuite de ieşire programabile. Cele două diferenţe majore
dintre un circuit GAL şi un circuit PAL constau în faptul că circuit GAL este
reprogramabil şi are circuite de ieşire configurabile (numite macrocelule OLMC).
Acest tip de circuit este atractiv din punctul de vedere al utilizatorului datorită
flexibilităţii sale. Placa de siliciu pare că este folosită la maximum şi se pare că este
soluţia optimă pentru aplicaţia dată, chiar şi în cazul în care preţul plătit pentru
proiectarea configuraţiei este destul de ridicat.
Ieşirea ariei generice este o macrocelulă configurabilă. Configuraţia poate fii
combinaţională sau secvenţială, astfel un singur tip de circuit GAL înlocuieşte diferite
tipuri de PAL.
Circuitele generice pot fi reprogramate deoarece sunt construite în tehnologie
2
E CMOS (electrically erasable CMOS) în loc de tehnologie bipolară şi legături
fuzibile. Totuşi problema utilizării circuitelor GAL este zgomotul introdus pe circuitul
imprimat, din această cauză aceste circuite nu pot înlocui circuitele PAL bipolare în
aplicaţiile unde acest impediment este foarte important. Schema bloc este prezentată
în figura 8.12.
I1 O1
Arie SAU fixă
I2 Arie ŞI O2
şi logică
programabilă
programabilă
de ieşire
In Om
133
Circuite digitale
134
Capitolul 8. Circuite logice programabile
8.4 Arii logice reconfigurabile (Field Programmable Gate Arrays –
FPGA)
Ariile logice reconfigurabile sunt cele mai răspândite circuite programabile în
momentul de faţă. Ciclul redus de proiectare şi densitatea elementelor integrate fac
ca aceste circuite să fie preferate în proiectarea sistemelor digitale. În comparaţie cu
circuitele PAL preţul circuitelor FPGA este mai ridicat, dar densitate a elementelor
logice este de 100-1000 de ori mai mare în circuitele FPGA. Efortul de proiectare şi
riscul sunt mai reduse în comparaţie cu reducerea costurilor de proiectare, dar
utilizate într-un volum mic ele sunt costisitoare.
Ariile logice FPGA au fost introduse în 1985 de firma XILINX. Poziţia de lider
a fost păstrată prin continua îmbunătăţire a circuitelor, şi prin oferta soluţiilor de
proiectare completă. Criteriile pe baza cărora firma şi-a păstrat prestigiul se pot unii
în aşa numitul “triunghi de siliciu”, în care fiecare latură (siliciu, software şi servicii
oferite) îşi are importanţa sa.
Procesul de proiectare cu circuite XILINX FPGA este rapid şi eficient, iar
durata acestui proces este de câteva zile în comparaţie cu câteva săptămâni, termen
obişnuit cu alte tipuri de circuite programabile.
Circuitele FPGA au structura internă asemănătoare cu cea a ariilor generice.
Structura internă prezentată în figura 8.15, este organizată într-o matrice de celule
înconjurate la periferie de celulele de intrare/ieşire I/O. Segmentele de interconexiuni
din metal pot realiza prin intermediul punctelor de conexiune, legături între celulele
logice configurabile şi celulele de intrare/ieşire.
135
Circuite digitale
8.4.1 Circuitele FPGA din seria XC4000
136
Capitolul 8. Circuite logice programabile
independent. Intrările DIN, H1 sunt intrări directe de stocare. Ieşirile generatoarelor
de funcţii se pot utiliza ca ieşiri independente de ieşirile elementelor de stocare.
Această flexibilitate măreşte resursele logice şi simplifică implementarea proiectelor.
Astfel prin intermediul a 13 intrări şi 4 ieşiri este asigurat accesul la fiecare bloc
configurabil. Intrările şi ieşirile respective legate la resursele programabile asigură de
interconectare vor realiza funcţiile logice.
Generatoarele de funcţii
Generatoarele de funcţii sunt implementate ca tabele de memorii (memory
look up table). Astfel, timpul de propagare este independent de funcţia
implementată. Al treilea generator de funcţii cu ieşirea H’, poate implementa orice
funcţie logică Booleană cu 3 variabile. Două dintre aceste intrări împreună cu H1,
ieşirile F’ şi G’ formează o altă funcţie logică. Alternativ, una sau ambele intrări (H2,
H0) pot fi semnale externe blocului. Intrarea H1 provine din exterior. Semnalele de
ieşire ale generatoarelor de funcţii pot forma ieşirile CLB. Ieşirile F’ sau H’ sunt
conectate la ieşirea X, iar G’ sau H’ sunt conectate la ieşirea Y. Un bloc configurabil
se poate utiliza pentru implementarea oricărei funcţii logice dn posibilităţile
următoare:
• Orice funcţie cu până la patru variabile independente, plus orice funcţie
secundară cu până la patru variabile independente, plus orice funcţie
logică cu maximum trei variabile independente;
• Orice funcţie logică cu 5 variabile independente;
• Orice funcţie logică cu 4 variabile împreună cu unele funcţii de 6 şase
variabile;
• Unele funcţii logice cu până la 9 variabile.
137
Circuite digitale
Prin implementarea funcţiilor logice, cu un număr mare de variabile într-un
singur bloc, se reduce numărul de blocuri necesare pentru realizarea proiectului. De
asemenea se reduc şi timpii de propagare, astfel că va creşte capacitatea de
implementare şi viteza de lucru.
Generatoarele de funcţii F’ şi G’ se pot utiliza ca celule de memorie RAM/ROM.
138
Capitolul 8. Circuite logice programabile
8.4.1.5 Interconexiunile programabile
Toate conexiunile interne sunt compuse din segmente de metal cu puncte de
cuplare programabile şi matrice de cuplare pentru realizarea legăturilor interne.
Există următoarele tipuri de conexiuni:
• Realizarea legăturilor între blocurile CLB este asociată rândurilor şi
coloanelor matricei CLB;
• Realizarea legăturilor între blocurile IOB formează un cordon în jurul
matricii CLB (VersaRing), acest cordon conectează pinii I/O cu blocurile
logice interne;
• Conexiunile globale sunt compuse din reţele dedicate, proiectate pentru
distribuirea rapidă a semnalelor de comandă şi control utilizate în proiect.
Se disting 5 tipuri de linii de interconectare: linii de lungime simplă, linii de
lungime dublă, linii de lungime quad-dublă, linii de lungime octală, linii lungi.
139
Circuite digitale
8.4.2 Realizarea legăturilor între blocurile CLB
În figura 8.19 sunt prezentate resursele de conectare ale unui bloc CLB. Liniile
de culoare închisă există numai la circuitele XC4000EX.
140
Capitolul 8. Circuite logice programabile
8.4.4 Configurarea circuitelor FPGA
Procesul de configurare este metoda prin care un proiect un proiect digital este
implementat (tradus în fişier hartă de biţi) şi transmis printr-o anumită metodă
circuitului FPGA. Metoda se aseamănă cu programarea perifericelor unui
microprocesor. Pentru configurarea unui CLB şi a conexiunilor asociate se utilizează
câteva sute de biţi. Fiecare bit de configurare defineşte starea unei celule de
memorie statice care controlează un bit din tabela de stări, intrare multiplexor sau
punct de tranziţie programabil. Sistemul de dezvoltare traduce proiectul într-o listă de
conexiuni de format Xilinx sau EDIF.
Secvenţa de configurare
În secvenţa de configurare apar patru perioade distincte:
141