7. arii reȚele tablouri de porȚi programabile field
Embed Size (px)
TRANSCRIPT
7.1 INTRODUCERE
La începutul deceniului 9, al secolului trecut, cea mai mare parte a circuitelor logice, din sistemele
numerice tipice, era realizat cu ajutorul unui numr relativ mic de circuite standard integrate pe scar
larg (LSI): microprocesoare, controloare de magistrale, controloare de I/E, circuite de sincronizare etc.
Toate sistemele aveau înc nevoie de o logic “aleatoare”, atât pentru interconectarea circuitelor
integrate pe scar larg, cât i pentru: generarea semnalelor de comand global ( reset s.a.),
formatarea datelor (serial/ paralel, paralel/serial, multiplexare) etc.
Sistemele (fig.7.1) erau alctuite dintrun numr mic de componente LSI i din numeroase componente
integrate pe scar mic (SSI) i medie (MSI).
Figura 7.1. Placheta prevzut cu componente LSI, MSI i SSI
Pentru realizarea structurii de interconectare adesea se proiectau circuite la cerere (custom, ASIC
Application Specific Integrated Circuits), care conduceau la:
reducerea complexitatii sistemului i a costurilor de fabricaie, cât i mrirea performanei;
costuri ridicate de dezvoltare a circuitelor la cerere, creterea timpului de proiectare i a
timpului în care produsul ajungea pe pia
În acest context apar dou componente ale costurilor:
costul de dezvoltare, denumit uneori: nonrecurring engineering (NRE) i
costurile de fabricaie.
Pentru un produs dat, realizat pe baza a dou tehnologii diferite A i B, în funcie de numrul unitilor
produse, între costurile de dezvoltare i costurile de fabricaie exist un compromis, care se poate
observa în fig. 7.2:
Figura 7.2. Relaia între costurile de dezvoltare i de producie în funcie de volum
Tehnologia A este de dorit în cazul unui numr relativ mic de produse, în timp ce tehnologia B trebuie
utilizat pentru un volum mare de produse.
În realizarea sistemelor numerice abordarea cu circuite la cerere este viabil pentru produsele realizate
în numr foarte mare, la care costurile de dezvoltare se pot amortiza i care nu sunt critice la timpul de
lansare pe pia (TTM Time To Market).
Ariile de Pori Programabile (FPGA) reprezint structuri bidimensionale (fig.7.3) formate din blocuri
logice (CL) i de bistabile (FF), prevzute cu facilitile necesare configurrii de ctre utilizator, atât a
interconexiunilor între blocurile logice, cât i a funciei fiecrui bloc.
Bloc Logic (CL i FF)
Interconexiuni
Figura 7.3. Versiunea simplificat a arhitecturii interne FPGA
FPGAurile au fost introduse ca o alternativ la circuitele la cerere, pentru implementarea logicii de
interconectare, ceea ce a permis mrirea densitii de circuite de circa 10 ori în raport cu soluia
SSI/MSI, reducerea costurile de dezvoltare i scurtarea TTM. Cu ajutorul mijloacelor automate de
158
proiectare (CAD) circuitele au putut fi implementate întrun timp foarte scurt, lipsind etapele de
proiectare a mtilor i fabricare a circuitelor.
În conformitate cu legea lui Moore, densitatea (pori/suprafa) FPGAurilor a crescut între anii 8090, ai
secolului 20, pân la punctul în care funciile importante de prelucrare a datelor au fost implementate
direct întrun singur circuit FPGA. FPGA este în continuare în competiie cu circuitele la cerere pentru
funcii speciale de prelucrare i pentru logica de interconectare, dar este în competiie i cu
microprocesoarele în aplicaii dedicate i încorporate. FPGAurile au avantajul performanei, în raport cu
microprocesoarele, deoarece circuitele pot fi adaptate uor la aplicaie. Microprocesoarele realizeaz
funciile speciale în software, în condiiile operrii în mai multe cicluri.
În figura 7.4. se prezint o comparaie între soluiile, bazate pe ASIC (CI custom), FPGA i MICRO
(microprocesor), pentru implementarea unui sistem numeric, referitor la: performan, NRE,
cost/unitate i TMM.
ASIC FPGA MICRO
ASIC FPGA MICRO
FPGA MICRO ASIC
ASIC FPGA MICRO
Figura 7.4. Comparaie între soluiile bazate pe ASIC, FPGA i MICR pentru implementarea unui sistem numeric
7.2 STRUCTURA ARIILOR DE PORI PROGRAMABILE
Componentele structurale de baz ale ariilor de pori, de tip FPGA, sunt blocurile logice programabile,
comutatoarele programabile i traseele de interconectare (routing).
7.2.1 BLOCURILE LOGICE
Blocurile Logice se pot realiza sub form de:
reele de perechi de tranzistoare NMOS i PMOS, comutatoare de tip Tgates;
reele de pori logice combinaionale (NAND, XOR etc);
multiplexoare;
structuri SISAU cu multe intrri.
159
Soluiile adoptate au în vedere numrul de intrri i ieiri, aria ocupat, complexitatea funciilor logice,
care trebuie s fie realizate, numrul de tranzistoare solicitate în proiectele avute în vedere etc. În
continuare vor fi ilustrate câteva dintre soluiile de implementare a blocurilor logice.
Reelele de perechi de tranzistoare NMOS i PMOS (fig. 7.5) pot fi utilizate pentru realizarea unor
multiplexoare, de exemplu 4:1, la care obinuitele intrri de selecie Y, X joac rolul intrrilor de date
logice, în timp ce intrrile uzuale de date sunt folosite ca intrri de programare, intrri de selectare a
funciei logice, de dou variabile, care va aprea la ieirea Z, conform expresiei:
( ) ( ) ( ) ( )XYSXYSXYSXYSZ &&|&&|&&|&& 0123=
en tgate
out en
tgate out
en tgate
in in
Figura 7.5. Reea din perechi de tranzistoare, cu funcia similar unui Mux 4:1.
În funcie de configuraia vectorului (S3 S2 S1 S0), schema din fig. 7.5. poate implementa oricare dintre
cele 16 funcii logice de 2 variabile. De exemplu, funcia logic XOR se poate implementa utilizând un
vector (S3 S2 S1 S0) = 0 1 1 0, ceea ce face ca ( ) ( )XYXYZ &|&= .
Reele de pori logice combinaionale (NAND, XOR etc). Acestea sunt alctuite, de exemplu, din blocuri
constructive de baz, de tipul porilor NAND cu 2 intrri (fig.7.6.), care sunt interconectate pentru a
implementa funcia logic dorit.
Q
Latch
Figura 7.6. Bloc constructiv de baz cu poart NAND, cu 2 intrri
Atât reelele formate din perechi de tranzistoare NMOS/PMOS, cât i cele cu blocuri constructive de
baz, de tipul porilor logice, reprezint blocuri logice cu granularitate fin. Ele au avantajul unei folosiri
mai eficiente a resurselor logice hardware, în schimb necesit un numr mare de fire de interconectare,
cât i numeroase comutatoare, ceea ce conduce la o arie mare ocupat de acestea din urm.
Multiplexoare. În condiiile în care intrrile unui multiplexor sunt conectate la semnale cu valori
constante, se pot implementa diferite funcii logice ale cror variabile sunt intrrile de selecie. În figura
7.7. se prezint o schem cu 3 multiplexoare 2:1, în care intrrile multiplexoarelor din stânga w, x, y, z
sunt conectate la valori constante, care sunt selectate prin variabelele s1, s2 , s3, s4, ale funciei f.
0
1
0
1
0
Figura 7.7. Schema cu 3 multiplexoare 2:1
Tabele asociative (lookup tables) cu n intrri. Tabelele asociative se pot implementa uor cu ajutorul
unor multiplexoare realizate cu tranzistoare (fig.7.8.). Pentru oricare dintre cele 8 combinaii ale
variabilelor de intrare F0, F1, F2, ale unei scheme de decodificare, cu ieirile enable[0],…, enable[7], se
poate selecta una dintre cele 8 valori aplicate, de ctre proiectant, conform funciei logice dorite, la
intrrile multiplexorului Value[0],…, Value[7] , realizat cu tranzistoare NMOS. Rangurile vectorului binar
Value[0],…, Value[7] vor fi stocate întrun registru, care va fi încrcat în momentul configurrii reelei.
161
Figura 7.8. Tabela asociativ (lookup table) cu 3 intrri.
În figura 7.9. se prezint, întro manier simplificat, blocul logic utilizat în familia de circuite FPGA Xilinx
Seria 4000.
Figura 7.9. Blocul logic simplificat utilizat în familia FPGA Xilinx Seria XC 4000.
Se poate observa c ieirea tabelei asociative cu 4 intrri poate fi transmis direct la ieire sau stocat
în prealabil întrun bistabil. Schema real a blocului logic utilizat în Seria XC4000 este dat în figura 7.10.
Pe lâng blocurile logice, un FPGA mai conine blocuri care asigur intrrile/ieirile (BIE), conectarea cu
mediul extern. Întro structura FPGA, BIE sunt plasate la periferie, înconjurând nucleul constituit din BLC
uri interconectate. Schema unui asemenea bloc, folosit în familia FPGA Xilinx Seria XC 4000, este dat în
figura 7.11.
Densitatea blocurilor logice, aria utilizat din FPGA i performana sunt elemente strâns legate între ele.
Astfel, un BLC de dimensiuni mari implementeaz mai mult logic, ceea ce face ca numrul BLCurilor
utilizate dintrun FPGA s fie mic, pentru o funcie dat. Dimensiunea optim pentru un bloc logic
trebuie stabilit plecând de la implementarea unei funcii logice date cu ajutorul unui numr cât mai mic
de blocuri logice, în condiiile unui consum de spaiu cât mai restrâns posibil.
C 1 ... C
1
H'
G' H'
H' F'
Multiplexor controlat de programul de configurare
Figura 7.10. Schema real a blocului logic utilizat în Seria XC4000E
Suprafaa logic activ este mai mic decât suprafaa ocupat de implementarea proiectului întrun
FPGA, datorit faptului c traseele de interconectare, cât i comutatoarele, la rândul lor, ocup o
anumit suprafa. Aria ocupat de traseele de interconectare i de ctre comutatore reprezint circa
7080% din întreaga arie a unui FPGA.
163
Se apreciaz c FPGAurile, bazate pe Tabelele Asociative cu 4 intrri, asigur cele mai bune rezultate în
ceea ce privete suprafaa ocupat i logica sintetizat.
Figura 7.11. Schema bloc simplificat a Blocului de I/E (IOB) din cadrul familiei FPGA XC4000E
Granularitatea realizrii BLCurilor influeneaz performana FPGAurilor în sensul c o granularitate mai
fin a BLCurilor asigur o întârziere mai mic între intrare i ieire, datorit numrului mai mic de
niveluri logice pe care trebuie s le traverseze semnalele. Creterea granularitii (Altera, Xilinx) BLC
urilor conduce la o cretere a puterii de comand, a lungimii firelor de legtur i a numrului de
comutatoare, întrucât fiecare posed mai multe intrri.
7.2.2 INTERCONECTAREA BLOCURILOR
Familiile de FPGAuri difer prin: mijloacele fizice de realizare a programrii de ctre utilizator,
organizarea traseelor de interconectare i funciile de baz ale blocurilor logice combinaionale (CLB).
Cele mai mari diferene se regsesc la tehnicile folosite pentru realizarea unor interconexiuni cât mai
flexibile în cadrul blocurilor i între blocuri. Cele mai multe tehnici folosesc conexiuni de tip “puncte de
intersecie” în cadrul unor trasee de tip “magistrale intersectate” sau “crossbar” (fig. 7.12).
164
Figura 7.12. Structura de interconectare de tip “crossbar”.
La interseciile între barele verticale i cele orizontale se pot stabili conexiuni permanente sau
temporare, în funcie de tehnologia utilizat.
Astfel, în cazul conexiunilor permanente se utilizeaz elemente de tip “antifuse” (fig.7.13), cu contact
permanent stabilit ca urmare a aplicrii temporare a unei tensiuni ridicate (Actel, QuickLogic,
Crosspoint).
Figura 7.13. Conexiune permanent cu element de tip “antifuse”.
Ca avantaje se pot meniona, caracterul nevolatil, dimensiunile relativ mici, rezistena i capacitatea
reduse, iar ca dezavantaje coninutul fix, imposibilitatea reprogramrii.
O serie de detalii de implementare pentru conexiunile permanente realizate cu ajutorul unor fuzibile
(“fuse”) sunt date în figura 7.14.
Figura 7.14. Detalii de implementare pentru conexiunile permanente realizate cu ajutorul unor fuzibile.
165
În cazul conexiunilor temporare, se utilizeaz în calitate de comutatoare tranzistoare NMOS, cu canal
indus, sau tranzistoare cu poart flotant.
Un exemplu de comutator cu tranzistor controlat pe poart, cu ajutorul unui latch programabil (Xilinx,
Altera etc) este prezentat în figura 7.15.
......
Figura 7.15. Utilizarea unui tranzistor NMOS în calitate de comutator.
Avantajul principal al acestei tehnologii se refer la posibilitatea reconfigurrii, în timp ce dezavantalele
sunt legate de caracterul volatil i de dimensiunile relativ mari ale comutatoarelor.
Comutatoarele bazate pe tranzistoare cu poart flotant (fig.7.16.) se bazeaz pe tehnologiile folosite în
EPROMurile (Altera), al cror coninut este anulat prin iradiere cu ultraviolete, i în EEPROMurile
(AMD, Lattice), al cror coninut este alterat pe cale electric.
Principalul avantaj, pe lâng reprogramabilitate, const în absena latchurilor, care trebuie programate
la aplicarea tensiunii de alimentare. De remarcat dezavantajele privind creterea numrului de etape de
procesare, în raport cu tehnologia CMOS i consumul de putere în regim static, asociat cu rezistorul
tragesus, cât i în rezistena intern mare a tranzistorului în stare de conducie.
Linie de bit
Poarta 2
Tranzistor EPROM
166
Dispozitivele EEPROM sunt uor de reprogramat, în raport cu dispozitivele EPROM, dar aria celulei de
baz EEPROM este de circa dou ori mai mare decât a celulei EPROM.
Trebuie subliniat c latchurile sunt utilizate pentru: a efectua/nu efectua conexiuni de tip “crosspoint”
la interconexiuni, a defini funciunile blocurilor logice, a stabili opiunile utilizatorului în cadrul blocurilor
logice, în blocurile de I/E i a asigura funcia reset i ceasul global, global/ceas.
Structura de interconectare între BLCuri, pe deo parte, i BLCuri – BIE, pe de alt parte, const în
comutatoare programabile i fire/trasee de legtur. O conexiune direct, un segment, între dou
puncte, fr comutatoare între ele, va purta numele de fir, în timp ce o înlnuire de segmente, care
conin i comutatoare prin care se transmite un semnal dat se numete traseu. Tehnicile de
interconectare sunt acelea care stabilesc raportul între ariile ocupate de ctre partea logic i partea de
interconectare, din cadrul unui FPGA.
Comutatoarele sunt realizate cu ajutorul tranzistoarelor NMOS (tranzistoare de trecere/pass
transistors), care asigur o bun transmisie a semnalului logic “0”, sau cu ajutorul cuplurilor de
tranzistoare NMOS/PMOS (pori T/Tgates), care au avantajul unei bune transmisii a ambelor valori
(“0”/”1”) ale semnalelor logice. În figura 7.17. se prezint structura unui Punct de Interconectare
Programabil (PIP), care este format dintrun bistabil de tip D i o poart de tip T Tgate. La aplicarea
semnalului de ceas Data este stocat în bistabilul, care comand conexiunea între firul orizontal Interco1
i firul vertical Interco2.
Figura 7.17. Structura unui Punct de Interconectare Programabil (PIP).
Porile T sunt folosite i pentru realizarea unor comutatoare de complexitate mai mare (fig.7.18.), care
asigur conectarea unor trasee orientate NSEV. Simbolul unui asemenea comutator, cât i unele
167
configuraii de comutare sunt date în figura 7.19. (a) i (b). Comutatoarele TGates se pot structura sub
168
Figura 7.21. Exemplu de matrici de interconectare a blocurilor din cadrul unui FPGA.
Arhitecturi de interconectare (Routing)
În cele ce urmeaz se vor prezenta pe scurt câteva exemple de soluii de interconectare realizate de
productorii de circuite numerice reprogramabile Xilinx, Actel, Altera.
Xilinx (fig.7.22. a) utilizeaz trasee de interconectare, care înconjoar fiecare bloc logic combinaional
(CLB), la interseciile traseelor fiind plasate blocuri de comutatoare(BC), organizate sub form de matrici,
formate din tranzistoare de trecere, controlate pe grile cu ajutorul unor celule de memorie static SRAM
(fig.7.22. b). Celulele de memorie SRAM (fig.7.22.c) sunt utilizate i pentru stabilirea funciilor logice
implementate de ctre multiplexoarele, care implementeaz Tablourile Asociative.
169
Figura 7.22. Arhitectura de interconectare a BLCurilor utilizat de ctre Xilinx (a) i detalii privind utilizarea
celulelor SRAM (b), (c).
În cadrul structurii de interconectare se gsesc mai multe tipuri de segmente de fire:
- segmente universale, care trec prin comutatoarele din blocul de comutatoare;
- conexiuni directe, care leag direct terminalele BLC la cele 4 BLCuri înconjurtoare;
- linii lungi cu întârziere dat i capacitate mare de comand;
- linii de ceas pentru toate circuitele din structur.
Soluia (fig. 7.23.), propus de ctre ACTEL, const în mai multe segmente de fire având orientare
orizontal, fa de cele care cu orientare vertical. Terminalele de intrare se conecteaz la toate traseele
canalului, care se afl de aceeai parte cu terminalele. Terminalele de ieire se extind pe dou canale
deasupra i sub blocul logic (LB). Terminalele de ieire se pot conecta la toate cele 4 canale pe care le
intersecteaz. Blocurile de comutare sunt distribuite pe lungimea canalelor orizontale. Un traseu
vertical se poate conecta cu oricare traseu vertical pe care îl intersecteaz, ceea ce asigur o mare
flexibilitate.
170
Figura 7.23. Soluie de interconectare ACTEL
Ca deficien se poate meniona creterea numrului de comutatoare, având drept consecin creterea
sarcinii capacitive.
Structura de interconectare promovat de ctre Altera –Max 5000 (fig.7.24.) se bazeaz pe dou niveluri
ierarhice: local (a) i global (b).
(a)
Bloc 4
Figura 7.24. Structuri de interconectare: (a) la nivel local i (b) global (Altera Max 5000).
Structura unei arii de blocuri logice (ABL) este asemntoare celei întâlnite în PLDuri – dispozitive logice
programabile. La primul nivel al ierarhiei se plaseaz 16 sau 32 blocuri logice grupate sub form de ABL
uri. Conexiunile se realizeaz cu ajutorul tranzistoarelor cu poart flotant. Canalul, care conine
traseele este amplasat vertical în cadrul structurii. Cu ajutorul traseelor se pot implementa mai multe
tipuri de conexiuni de la: ieirile ABL, expandoarele logice, ieirile blocurilor logice la alte blocuri logice,
171
la i de la ploturile de I/E. Traseele menionate se conecteaz la fiecare bloc din cadrul fiecrui ABL.
Conexiunile între ABLuri se realizeaz prin segmente plasate în canale, segmentele fiind, dup
posibiliti, cât mai lungi. Conexiunile între ABLuri au un caracter global i formeaz Reeaua
Programabil de Interconectare (RPI), cu o structur regulat, ceea ce faciliteaz o împachetare eficient
pe aria de Si. Ca dezavantaj se poate meniona numrul mare de comutatoare, ceea ce marete sarcina
capacitiv.
7.3 FPGA – ORGANIZARE STRUCTURAL
Din punct de vedere structural FPGAurile constau în elemente logice, interconexiuni programabile i
memorii. Productorii de FPGAuri au gsit diferite soluii pentru organizarea structural a acestora
având în vedere criterii de performan, eficien, flexibilitate, cost etc. Plecând de la organizarea
intern a blocurilor FPGAurile se pot plasa în urmtoarele structuri: reele simetrice, bazate pe linii,
ierarhice.
Reelele simetrice (fig.7.25.) constau în BLCuri organizate matricial pe linii i coloane, având între ele
blocuri de comutatoare programabile. Nucleul de BLCuri este înconjurat de BIEuri, care asigur
conexiunile cu terminalele conectate la mediul extern. Blocurile de comutatoare programabile asigur
implementarea traseelor pe care se propag semnalele între BLCuri, pe deo parte, BLCuri i BIEuri, pe
de alt parte. Traseele inter BLCuri au întârzieri mici, în timp ce traseele intra BLCuri au întârzieri
sensibil mai mari.
Structurile organizate pe linii (fig.7.26) conin linii, formate din module logice, care alterneaz cu trasee
orizontale de interconectare. Blocurile de I/E sunt plasate la extremitile liniilor. Liniile adiacente se pot
interconecta prin fire verticale. Modulele logice au un caracter pur combinaional i pot implementa
diferite funcii logice. Pentru realizarea unor circuite secveniale, pe lâng modulele logice mai sunt
necesare i bistabile. Traseele de interconectare sunt constituite din segmente scurte interconectate
prin intermediul unor comutatoare de tip “antifuse”.
Blocuri de I/E
Canal de rutare
Figura 7.26. Structura organizat pe linii.
Structurile ierarhice (fig.7.27.) posed la nivelul superior numai blocuri logice i trasee de interconectare.
Blocurile logice sunt alctuite din module logice, care, la rândul lor, posed uniti capabile sa efectueze
funcii logice i de stocare a informaiei. Fiecare unitate este controlat cu ajutorul unei memorii al crei
coninut este stabilit de ctre proiectant. Conexiunile între blocuri sunt asigurate cu ajutorul unor
reele de interconectare. Ca i în cazurile precedente, blocurile de I/E sunt plasate la periferia structurii,
în vederea asigurrii legturii cu mediul extern.
Bl oc d e I/ E
Bloc de I/E
Bloc de I/E
Modul logic
174
M od
po rt am
en ta l /s tr uc tu ra l
po at e fi re al iz at pr in in te rm
ed iu l e di to ru lu i
de s ch em
D L
S I N T E Z
Si nt ez a se re al iz ea z p rin
in te rm
ed iu l p ro gr a
m el or d e si nt ez cu m a r f i XS T (X ili nx
S yn th es is
To ol ).
Co ns tr ân ge ri
Li br r ii FP GA
P R O G R A M A R E F P G A
Im pl em
el ul ui p re su pu
ne
F PG
A a fi i er ul ui d e ti p
BI T re zu lt at în
e ta pa
d e PR
O G RA
M A RE
I M P L E M E N T A R E F P G A
S I M U L A R E Pe nt ru re al iz ar ea s im
ul r ii po
t f i f ol os it e
si m ul at oa re e xt er ne , d e ex em
pl u
Le g tu ri E D IF
M AP
A RE
RU TA
ar ea u nu
i d is po
zi ti v FP G A
tr eb ui e re al iz at e su bf az el e de
m ap ar e, p la sa re
i ru
ta re .
La începutul deceniului 9, al secolului trecut, cea mai mare parte a circuitelor logice, din sistemele
numerice tipice, era realizat cu ajutorul unui numr relativ mic de circuite standard integrate pe scar
larg (LSI): microprocesoare, controloare de magistrale, controloare de I/E, circuite de sincronizare etc.
Toate sistemele aveau înc nevoie de o logic “aleatoare”, atât pentru interconectarea circuitelor
integrate pe scar larg, cât i pentru: generarea semnalelor de comand global ( reset s.a.),
formatarea datelor (serial/ paralel, paralel/serial, multiplexare) etc.
Sistemele (fig.7.1) erau alctuite dintrun numr mic de componente LSI i din numeroase componente
integrate pe scar mic (SSI) i medie (MSI).
Figura 7.1. Placheta prevzut cu componente LSI, MSI i SSI
Pentru realizarea structurii de interconectare adesea se proiectau circuite la cerere (custom, ASIC
Application Specific Integrated Circuits), care conduceau la:
reducerea complexitatii sistemului i a costurilor de fabricaie, cât i mrirea performanei;
costuri ridicate de dezvoltare a circuitelor la cerere, creterea timpului de proiectare i a
timpului în care produsul ajungea pe pia
În acest context apar dou componente ale costurilor:
costul de dezvoltare, denumit uneori: nonrecurring engineering (NRE) i
costurile de fabricaie.
Pentru un produs dat, realizat pe baza a dou tehnologii diferite A i B, în funcie de numrul unitilor
produse, între costurile de dezvoltare i costurile de fabricaie exist un compromis, care se poate
observa în fig. 7.2:
Figura 7.2. Relaia între costurile de dezvoltare i de producie în funcie de volum
Tehnologia A este de dorit în cazul unui numr relativ mic de produse, în timp ce tehnologia B trebuie
utilizat pentru un volum mare de produse.
În realizarea sistemelor numerice abordarea cu circuite la cerere este viabil pentru produsele realizate
în numr foarte mare, la care costurile de dezvoltare se pot amortiza i care nu sunt critice la timpul de
lansare pe pia (TTM Time To Market).
Ariile de Pori Programabile (FPGA) reprezint structuri bidimensionale (fig.7.3) formate din blocuri
logice (CL) i de bistabile (FF), prevzute cu facilitile necesare configurrii de ctre utilizator, atât a
interconexiunilor între blocurile logice, cât i a funciei fiecrui bloc.
Bloc Logic (CL i FF)
Interconexiuni
Figura 7.3. Versiunea simplificat a arhitecturii interne FPGA
FPGAurile au fost introduse ca o alternativ la circuitele la cerere, pentru implementarea logicii de
interconectare, ceea ce a permis mrirea densitii de circuite de circa 10 ori în raport cu soluia
SSI/MSI, reducerea costurile de dezvoltare i scurtarea TTM. Cu ajutorul mijloacelor automate de
158
proiectare (CAD) circuitele au putut fi implementate întrun timp foarte scurt, lipsind etapele de
proiectare a mtilor i fabricare a circuitelor.
În conformitate cu legea lui Moore, densitatea (pori/suprafa) FPGAurilor a crescut între anii 8090, ai
secolului 20, pân la punctul în care funciile importante de prelucrare a datelor au fost implementate
direct întrun singur circuit FPGA. FPGA este în continuare în competiie cu circuitele la cerere pentru
funcii speciale de prelucrare i pentru logica de interconectare, dar este în competiie i cu
microprocesoarele în aplicaii dedicate i încorporate. FPGAurile au avantajul performanei, în raport cu
microprocesoarele, deoarece circuitele pot fi adaptate uor la aplicaie. Microprocesoarele realizeaz
funciile speciale în software, în condiiile operrii în mai multe cicluri.
În figura 7.4. se prezint o comparaie între soluiile, bazate pe ASIC (CI custom), FPGA i MICRO
(microprocesor), pentru implementarea unui sistem numeric, referitor la: performan, NRE,
cost/unitate i TMM.
ASIC FPGA MICRO
ASIC FPGA MICRO
FPGA MICRO ASIC
ASIC FPGA MICRO
Figura 7.4. Comparaie între soluiile bazate pe ASIC, FPGA i MICR pentru implementarea unui sistem numeric
7.2 STRUCTURA ARIILOR DE PORI PROGRAMABILE
Componentele structurale de baz ale ariilor de pori, de tip FPGA, sunt blocurile logice programabile,
comutatoarele programabile i traseele de interconectare (routing).
7.2.1 BLOCURILE LOGICE
Blocurile Logice se pot realiza sub form de:
reele de perechi de tranzistoare NMOS i PMOS, comutatoare de tip Tgates;
reele de pori logice combinaionale (NAND, XOR etc);
multiplexoare;
structuri SISAU cu multe intrri.
159
Soluiile adoptate au în vedere numrul de intrri i ieiri, aria ocupat, complexitatea funciilor logice,
care trebuie s fie realizate, numrul de tranzistoare solicitate în proiectele avute în vedere etc. În
continuare vor fi ilustrate câteva dintre soluiile de implementare a blocurilor logice.
Reelele de perechi de tranzistoare NMOS i PMOS (fig. 7.5) pot fi utilizate pentru realizarea unor
multiplexoare, de exemplu 4:1, la care obinuitele intrri de selecie Y, X joac rolul intrrilor de date
logice, în timp ce intrrile uzuale de date sunt folosite ca intrri de programare, intrri de selectare a
funciei logice, de dou variabile, care va aprea la ieirea Z, conform expresiei:
( ) ( ) ( ) ( )XYSXYSXYSXYSZ &&|&&|&&|&& 0123=
en tgate
out en
tgate out
en tgate
in in
Figura 7.5. Reea din perechi de tranzistoare, cu funcia similar unui Mux 4:1.
În funcie de configuraia vectorului (S3 S2 S1 S0), schema din fig. 7.5. poate implementa oricare dintre
cele 16 funcii logice de 2 variabile. De exemplu, funcia logic XOR se poate implementa utilizând un
vector (S3 S2 S1 S0) = 0 1 1 0, ceea ce face ca ( ) ( )XYXYZ &|&= .
Reele de pori logice combinaionale (NAND, XOR etc). Acestea sunt alctuite, de exemplu, din blocuri
constructive de baz, de tipul porilor NAND cu 2 intrri (fig.7.6.), care sunt interconectate pentru a
implementa funcia logic dorit.
Q
Latch
Figura 7.6. Bloc constructiv de baz cu poart NAND, cu 2 intrri
Atât reelele formate din perechi de tranzistoare NMOS/PMOS, cât i cele cu blocuri constructive de
baz, de tipul porilor logice, reprezint blocuri logice cu granularitate fin. Ele au avantajul unei folosiri
mai eficiente a resurselor logice hardware, în schimb necesit un numr mare de fire de interconectare,
cât i numeroase comutatoare, ceea ce conduce la o arie mare ocupat de acestea din urm.
Multiplexoare. În condiiile în care intrrile unui multiplexor sunt conectate la semnale cu valori
constante, se pot implementa diferite funcii logice ale cror variabile sunt intrrile de selecie. În figura
7.7. se prezint o schem cu 3 multiplexoare 2:1, în care intrrile multiplexoarelor din stânga w, x, y, z
sunt conectate la valori constante, care sunt selectate prin variabelele s1, s2 , s3, s4, ale funciei f.
0
1
0
1
0
Figura 7.7. Schema cu 3 multiplexoare 2:1
Tabele asociative (lookup tables) cu n intrri. Tabelele asociative se pot implementa uor cu ajutorul
unor multiplexoare realizate cu tranzistoare (fig.7.8.). Pentru oricare dintre cele 8 combinaii ale
variabilelor de intrare F0, F1, F2, ale unei scheme de decodificare, cu ieirile enable[0],…, enable[7], se
poate selecta una dintre cele 8 valori aplicate, de ctre proiectant, conform funciei logice dorite, la
intrrile multiplexorului Value[0],…, Value[7] , realizat cu tranzistoare NMOS. Rangurile vectorului binar
Value[0],…, Value[7] vor fi stocate întrun registru, care va fi încrcat în momentul configurrii reelei.
161
Figura 7.8. Tabela asociativ (lookup table) cu 3 intrri.
În figura 7.9. se prezint, întro manier simplificat, blocul logic utilizat în familia de circuite FPGA Xilinx
Seria 4000.
Figura 7.9. Blocul logic simplificat utilizat în familia FPGA Xilinx Seria XC 4000.
Se poate observa c ieirea tabelei asociative cu 4 intrri poate fi transmis direct la ieire sau stocat
în prealabil întrun bistabil. Schema real a blocului logic utilizat în Seria XC4000 este dat în figura 7.10.
Pe lâng blocurile logice, un FPGA mai conine blocuri care asigur intrrile/ieirile (BIE), conectarea cu
mediul extern. Întro structura FPGA, BIE sunt plasate la periferie, înconjurând nucleul constituit din BLC
uri interconectate. Schema unui asemenea bloc, folosit în familia FPGA Xilinx Seria XC 4000, este dat în
figura 7.11.
Densitatea blocurilor logice, aria utilizat din FPGA i performana sunt elemente strâns legate între ele.
Astfel, un BLC de dimensiuni mari implementeaz mai mult logic, ceea ce face ca numrul BLCurilor
utilizate dintrun FPGA s fie mic, pentru o funcie dat. Dimensiunea optim pentru un bloc logic
trebuie stabilit plecând de la implementarea unei funcii logice date cu ajutorul unui numr cât mai mic
de blocuri logice, în condiiile unui consum de spaiu cât mai restrâns posibil.
C 1 ... C
1
H'
G' H'
H' F'
Multiplexor controlat de programul de configurare
Figura 7.10. Schema real a blocului logic utilizat în Seria XC4000E
Suprafaa logic activ este mai mic decât suprafaa ocupat de implementarea proiectului întrun
FPGA, datorit faptului c traseele de interconectare, cât i comutatoarele, la rândul lor, ocup o
anumit suprafa. Aria ocupat de traseele de interconectare i de ctre comutatore reprezint circa
7080% din întreaga arie a unui FPGA.
163
Se apreciaz c FPGAurile, bazate pe Tabelele Asociative cu 4 intrri, asigur cele mai bune rezultate în
ceea ce privete suprafaa ocupat i logica sintetizat.
Figura 7.11. Schema bloc simplificat a Blocului de I/E (IOB) din cadrul familiei FPGA XC4000E
Granularitatea realizrii BLCurilor influeneaz performana FPGAurilor în sensul c o granularitate mai
fin a BLCurilor asigur o întârziere mai mic între intrare i ieire, datorit numrului mai mic de
niveluri logice pe care trebuie s le traverseze semnalele. Creterea granularitii (Altera, Xilinx) BLC
urilor conduce la o cretere a puterii de comand, a lungimii firelor de legtur i a numrului de
comutatoare, întrucât fiecare posed mai multe intrri.
7.2.2 INTERCONECTAREA BLOCURILOR
Familiile de FPGAuri difer prin: mijloacele fizice de realizare a programrii de ctre utilizator,
organizarea traseelor de interconectare i funciile de baz ale blocurilor logice combinaionale (CLB).
Cele mai mari diferene se regsesc la tehnicile folosite pentru realizarea unor interconexiuni cât mai
flexibile în cadrul blocurilor i între blocuri. Cele mai multe tehnici folosesc conexiuni de tip “puncte de
intersecie” în cadrul unor trasee de tip “magistrale intersectate” sau “crossbar” (fig. 7.12).
164
Figura 7.12. Structura de interconectare de tip “crossbar”.
La interseciile între barele verticale i cele orizontale se pot stabili conexiuni permanente sau
temporare, în funcie de tehnologia utilizat.
Astfel, în cazul conexiunilor permanente se utilizeaz elemente de tip “antifuse” (fig.7.13), cu contact
permanent stabilit ca urmare a aplicrii temporare a unei tensiuni ridicate (Actel, QuickLogic,
Crosspoint).
Figura 7.13. Conexiune permanent cu element de tip “antifuse”.
Ca avantaje se pot meniona, caracterul nevolatil, dimensiunile relativ mici, rezistena i capacitatea
reduse, iar ca dezavantaje coninutul fix, imposibilitatea reprogramrii.
O serie de detalii de implementare pentru conexiunile permanente realizate cu ajutorul unor fuzibile
(“fuse”) sunt date în figura 7.14.
Figura 7.14. Detalii de implementare pentru conexiunile permanente realizate cu ajutorul unor fuzibile.
165
În cazul conexiunilor temporare, se utilizeaz în calitate de comutatoare tranzistoare NMOS, cu canal
indus, sau tranzistoare cu poart flotant.
Un exemplu de comutator cu tranzistor controlat pe poart, cu ajutorul unui latch programabil (Xilinx,
Altera etc) este prezentat în figura 7.15.
......
Figura 7.15. Utilizarea unui tranzistor NMOS în calitate de comutator.
Avantajul principal al acestei tehnologii se refer la posibilitatea reconfigurrii, în timp ce dezavantalele
sunt legate de caracterul volatil i de dimensiunile relativ mari ale comutatoarelor.
Comutatoarele bazate pe tranzistoare cu poart flotant (fig.7.16.) se bazeaz pe tehnologiile folosite în
EPROMurile (Altera), al cror coninut este anulat prin iradiere cu ultraviolete, i în EEPROMurile
(AMD, Lattice), al cror coninut este alterat pe cale electric.
Principalul avantaj, pe lâng reprogramabilitate, const în absena latchurilor, care trebuie programate
la aplicarea tensiunii de alimentare. De remarcat dezavantajele privind creterea numrului de etape de
procesare, în raport cu tehnologia CMOS i consumul de putere în regim static, asociat cu rezistorul
tragesus, cât i în rezistena intern mare a tranzistorului în stare de conducie.
Linie de bit
Poarta 2
Tranzistor EPROM
166
Dispozitivele EEPROM sunt uor de reprogramat, în raport cu dispozitivele EPROM, dar aria celulei de
baz EEPROM este de circa dou ori mai mare decât a celulei EPROM.
Trebuie subliniat c latchurile sunt utilizate pentru: a efectua/nu efectua conexiuni de tip “crosspoint”
la interconexiuni, a defini funciunile blocurilor logice, a stabili opiunile utilizatorului în cadrul blocurilor
logice, în blocurile de I/E i a asigura funcia reset i ceasul global, global/ceas.
Structura de interconectare între BLCuri, pe deo parte, i BLCuri – BIE, pe de alt parte, const în
comutatoare programabile i fire/trasee de legtur. O conexiune direct, un segment, între dou
puncte, fr comutatoare între ele, va purta numele de fir, în timp ce o înlnuire de segmente, care
conin i comutatoare prin care se transmite un semnal dat se numete traseu. Tehnicile de
interconectare sunt acelea care stabilesc raportul între ariile ocupate de ctre partea logic i partea de
interconectare, din cadrul unui FPGA.
Comutatoarele sunt realizate cu ajutorul tranzistoarelor NMOS (tranzistoare de trecere/pass
transistors), care asigur o bun transmisie a semnalului logic “0”, sau cu ajutorul cuplurilor de
tranzistoare NMOS/PMOS (pori T/Tgates), care au avantajul unei bune transmisii a ambelor valori
(“0”/”1”) ale semnalelor logice. În figura 7.17. se prezint structura unui Punct de Interconectare
Programabil (PIP), care este format dintrun bistabil de tip D i o poart de tip T Tgate. La aplicarea
semnalului de ceas Data este stocat în bistabilul, care comand conexiunea între firul orizontal Interco1
i firul vertical Interco2.
Figura 7.17. Structura unui Punct de Interconectare Programabil (PIP).
Porile T sunt folosite i pentru realizarea unor comutatoare de complexitate mai mare (fig.7.18.), care
asigur conectarea unor trasee orientate NSEV. Simbolul unui asemenea comutator, cât i unele
167
configuraii de comutare sunt date în figura 7.19. (a) i (b). Comutatoarele TGates se pot structura sub
168
Figura 7.21. Exemplu de matrici de interconectare a blocurilor din cadrul unui FPGA.
Arhitecturi de interconectare (Routing)
În cele ce urmeaz se vor prezenta pe scurt câteva exemple de soluii de interconectare realizate de
productorii de circuite numerice reprogramabile Xilinx, Actel, Altera.
Xilinx (fig.7.22. a) utilizeaz trasee de interconectare, care înconjoar fiecare bloc logic combinaional
(CLB), la interseciile traseelor fiind plasate blocuri de comutatoare(BC), organizate sub form de matrici,
formate din tranzistoare de trecere, controlate pe grile cu ajutorul unor celule de memorie static SRAM
(fig.7.22. b). Celulele de memorie SRAM (fig.7.22.c) sunt utilizate i pentru stabilirea funciilor logice
implementate de ctre multiplexoarele, care implementeaz Tablourile Asociative.
169
Figura 7.22. Arhitectura de interconectare a BLCurilor utilizat de ctre Xilinx (a) i detalii privind utilizarea
celulelor SRAM (b), (c).
În cadrul structurii de interconectare se gsesc mai multe tipuri de segmente de fire:
- segmente universale, care trec prin comutatoarele din blocul de comutatoare;
- conexiuni directe, care leag direct terminalele BLC la cele 4 BLCuri înconjurtoare;
- linii lungi cu întârziere dat i capacitate mare de comand;
- linii de ceas pentru toate circuitele din structur.
Soluia (fig. 7.23.), propus de ctre ACTEL, const în mai multe segmente de fire având orientare
orizontal, fa de cele care cu orientare vertical. Terminalele de intrare se conecteaz la toate traseele
canalului, care se afl de aceeai parte cu terminalele. Terminalele de ieire se extind pe dou canale
deasupra i sub blocul logic (LB). Terminalele de ieire se pot conecta la toate cele 4 canale pe care le
intersecteaz. Blocurile de comutare sunt distribuite pe lungimea canalelor orizontale. Un traseu
vertical se poate conecta cu oricare traseu vertical pe care îl intersecteaz, ceea ce asigur o mare
flexibilitate.
170
Figura 7.23. Soluie de interconectare ACTEL
Ca deficien se poate meniona creterea numrului de comutatoare, având drept consecin creterea
sarcinii capacitive.
Structura de interconectare promovat de ctre Altera –Max 5000 (fig.7.24.) se bazeaz pe dou niveluri
ierarhice: local (a) i global (b).
(a)
Bloc 4
Figura 7.24. Structuri de interconectare: (a) la nivel local i (b) global (Altera Max 5000).
Structura unei arii de blocuri logice (ABL) este asemntoare celei întâlnite în PLDuri – dispozitive logice
programabile. La primul nivel al ierarhiei se plaseaz 16 sau 32 blocuri logice grupate sub form de ABL
uri. Conexiunile se realizeaz cu ajutorul tranzistoarelor cu poart flotant. Canalul, care conine
traseele este amplasat vertical în cadrul structurii. Cu ajutorul traseelor se pot implementa mai multe
tipuri de conexiuni de la: ieirile ABL, expandoarele logice, ieirile blocurilor logice la alte blocuri logice,
171
la i de la ploturile de I/E. Traseele menionate se conecteaz la fiecare bloc din cadrul fiecrui ABL.
Conexiunile între ABLuri se realizeaz prin segmente plasate în canale, segmentele fiind, dup
posibiliti, cât mai lungi. Conexiunile între ABLuri au un caracter global i formeaz Reeaua
Programabil de Interconectare (RPI), cu o structur regulat, ceea ce faciliteaz o împachetare eficient
pe aria de Si. Ca dezavantaj se poate meniona numrul mare de comutatoare, ceea ce marete sarcina
capacitiv.
7.3 FPGA – ORGANIZARE STRUCTURAL
Din punct de vedere structural FPGAurile constau în elemente logice, interconexiuni programabile i
memorii. Productorii de FPGAuri au gsit diferite soluii pentru organizarea structural a acestora
având în vedere criterii de performan, eficien, flexibilitate, cost etc. Plecând de la organizarea
intern a blocurilor FPGAurile se pot plasa în urmtoarele structuri: reele simetrice, bazate pe linii,
ierarhice.
Reelele simetrice (fig.7.25.) constau în BLCuri organizate matricial pe linii i coloane, având între ele
blocuri de comutatoare programabile. Nucleul de BLCuri este înconjurat de BIEuri, care asigur
conexiunile cu terminalele conectate la mediul extern. Blocurile de comutatoare programabile asigur
implementarea traseelor pe care se propag semnalele între BLCuri, pe deo parte, BLCuri i BIEuri, pe
de alt parte. Traseele inter BLCuri au întârzieri mici, în timp ce traseele intra BLCuri au întârzieri
sensibil mai mari.
Structurile organizate pe linii (fig.7.26) conin linii, formate din module logice, care alterneaz cu trasee
orizontale de interconectare. Blocurile de I/E sunt plasate la extremitile liniilor. Liniile adiacente se pot
interconecta prin fire verticale. Modulele logice au un caracter pur combinaional i pot implementa
diferite funcii logice. Pentru realizarea unor circuite secveniale, pe lâng modulele logice mai sunt
necesare i bistabile. Traseele de interconectare sunt constituite din segmente scurte interconectate
prin intermediul unor comutatoare de tip “antifuse”.
Blocuri de I/E
Canal de rutare
Figura 7.26. Structura organizat pe linii.
Structurile ierarhice (fig.7.27.) posed la nivelul superior numai blocuri logice i trasee de interconectare.
Blocurile logice sunt alctuite din module logice, care, la rândul lor, posed uniti capabile sa efectueze
funcii logice i de stocare a informaiei. Fiecare unitate este controlat cu ajutorul unei memorii al crei
coninut este stabilit de ctre proiectant. Conexiunile între blocuri sunt asigurate cu ajutorul unor
reele de interconectare. Ca i în cazurile precedente, blocurile de I/E sunt plasate la periferia structurii,
în vederea asigurrii legturii cu mediul extern.
Bl oc d e I/ E
Bloc de I/E
Bloc de I/E
Modul logic
174
M od
po rt am
en ta l /s tr uc tu ra l
po at e fi re al iz at pr in in te rm
ed iu l e di to ru lu i
de s ch em
D L
S I N T E Z
Si nt ez a se re al iz ea z p rin
in te rm
ed iu l p ro gr a
m el or d e si nt ez cu m a r f i XS T (X ili nx
S yn th es is
To ol ).
Co ns tr ân ge ri
Li br r ii FP GA
P R O G R A M A R E F P G A
Im pl em
el ul ui p re su pu
ne
F PG
A a fi i er ul ui d e ti p
BI T re zu lt at în
e ta pa
d e PR
O G RA
M A RE
I M P L E M E N T A R E F P G A
S I M U L A R E Pe nt ru re al iz ar ea s im
ul r ii po
t f i f ol os it e
si m ul at oa re e xt er ne , d e ex em
pl u
Le g tu ri E D IF
M AP
A RE
RU TA
ar ea u nu
i d is po
zi ti v FP G A
tr eb ui e re al iz at e su bf az el e de
m ap ar e, p la sa re
i ru
ta re .