Documente Academic
Documente Profesional
Documente Cultură
5.1 Generaliti
Un circuit FPGA (Field Programmable Gate Array) este alctuit dintr-un numr mare de celule logice de baz numite blocuri logice configurabile (vezi figura 5.1), care sunt mai mici dect un circuit PLD obinuit. Aceste celule logice sunt distribuite pe toat suprafaa cipului. Fiecare celul este nconjurat de interconexiuni programabile ansamblul acestor interconexiuni poart numele de matrice de conexiuni programabile. ntreg ansamblul de celule i interconexiuni se afl ntr-un inel format de blocurile de intrare / ieire. Un bloc logic configurabil poate implementa mai puine funcii logice dect un circuit PLD, dar numrul acestor blocurilor logice configurabile dintr-un circuit FPGA este mai mare dect numrul de circuite PLD dintr-un circuit PLD raportat la aceeai dimensiune a pastilei de siliciu.
Capitolul 5
Ariile logice FPGA au fost introduse n 1985 de firma XILINX. Poziia de lider a fost pstrat prin continua mbuntire a circuitelor, i prin oferta soluiilor de proiectare complet. Una dintre cele mai cunoscute familii este XC4000E, despre care vom discuta n continuare. Cel mai mic membru al familiei XC4000E este circuitul XC4003E alctuit dintr-o arie 10X10 blocuri logice configurabile (CLB = Configurable Logic Blocks). Componenta cu capacitatea cea mai mare din familia XC4000E este circuitul XC4000EX care conine 1.024 CLB-uri (arie 32X32). Prin extinderea caracteristicilor familie XC4000EX a rezultat familia XC4000XL, cel mai mare membru al acestei familii este circuitul XC4085XL care conine 3.136 CLB-uri (vezi tabelul T5.1).
Tabelul T5.1 Familia de circuite FPGA XC4000
n tabelul T5.1 sunt prezentai membri familiei XC4000. Pe primele dou coloane este dat numrul de blocuri logice configurabile (CLB-uri), pe cea de a doua coloan numrul maxim de porturi de intrare/ieire. Deoarece se folosesc mai multe tipuri de capsule (cu numr diferit de pini), nu toate porturile se vor regsii la pinii externi, n cazul capsulelor cu numr mai mic de pini. La fel ca i n cazul circuitelor CPLD, proiectantul are posibilitatea de a migra de la un circuit FPGA de capacitate mai mic la un altul de capacitate mai mare, pstrnd tipul de capsul. n cea de a cincia coloan a tabelului se d numrul maximi de bistabile pentru fiecare membru al familie. Dup cum se va studia mai departe se va putea observa c avem cte dou bistabile pentru fiecare CLB i fiecare IOB (Input/Output Block = bloc de intrare/ieire). Fiecare CLB poate implementa memorii SRAM de maxim 32 de bii. Astfel c se poate vorbii de capacitatea maxim a unei memorii ce poate fi implementat ntr-un circuit FPGA, vezi coloana a asea din tabelul T5.1. n ultimele dou coloane ale tabelului este exprimat capacitatea fiecrui circuit n numr de
69
pori logice. Se poate observa c numrul de pori logice este variabil, el depinznd de logica implementat, combinaional sau secvenial. Se poate considera c fiecare celul de memorie RAM este implementat cu un bistabil de tip D. Pentru implementarea bistabiluli de tip D sunt necesare 4 pori logice, rezult c 32 celule SRAM X 4 = 128 de pori logice/CLB. Abundena de pori logice, registre, interfee I/O cu o vitez de rspuns mare, sunt doar cteva caracteristici ale circuitelor logice reprogramabile FPGA. Seria circuitelor cu aria de configurare de tip SRAM include i urmtoarele familii de produse: XC2000, XC3000, XC4000, XC5200 i XC6200.
Seria XC4000 realizeaz prin tehnologia submicron avansat, o arhitectur performant cu o vitez de lucru ridicat. Seriile XC4000E i XC4000X permit frecvene de funcionare extern de 80MHz, iar structura intern poate funciona chiar i la frecvene de 150MHz. Seria XC4000 ofer realizarea unor structuri de dual port RAM, inhibarea frecvenei de tact, transmisia carry rapid la operaii aritmetice. Circuitele sunt flexibile n aplicaii, mai ales unde este nevoie de utilizarea unor circuite de memorii rapide. 5.2.2 Descrierea blocurilor componente
Structura intern programabil de utilizator include dou elemente majore configurabile (vezi figura 5.2) : - Blocurile logice configurabile (CLBs); - Blocurile de intrare / ieire (IOBs). Astfel vom avea:
70
Capitolul 5
Blocurile CLB furnizeaz elementele funcionale i realizeaz structura logic proiectat; Blocurile IOB furnizeaz interfaa ntre semnalele interne i exteriorul circuitului (legtur realizat fizic prin intermediul pinilor).
Structura cuprinde nc alte trei elemente programabile: - Fiecrui CLB i este asociat un 3-state buffer (TBUF) a crui ieire este conectat la liniile lungi asociate; - Decodificatoare rapide implementate pentru viteze ridicate; - Un oscilator intern cu frecvena de 8MHz; - Interconexiunile programabile furnizeaz resursele de conectare ntre elementele CLB, IOB. Funcia logic realizat de fiecare bloc configurabil este implementat prin intermediul memoriei statice de configurare. Valorile stocate n aceste memorii determin starea blocurilor i a interconexiunilor n interiorul FPGA.
71
utiliza i independent. Intrrile DIN, H1 sunt intrri directe de stocare. Ieirile generatoarelor de funcii se pot utiliza ca ieiri independente de ieirile elementelor de stocare. Aceast flexibilitate mrete resursele logice i simplific implementarea proiectelor. Astfel prin intermediul a 13 intrri i 4 ieiri este asigurat accesul la fiecare bloc configurabil. Intrrile i ieirile respective legate la resursele programabile de interconectare vor realiza funciile logice.
5.3.1 Generatoarele de funcii Generatoarele de funcii sunt implementate ca tabele de memorii (memory look up table). Astfel, timpul de propagare este independent de funcia implementat. Al treilea generator de funcii cu ieirea H, poate implementa orice funcie logic Boolean cu 3 variabile. Dou dintre aceste intrri mpreun cu H1, ieirile F i G formeaz o alt funcie logic. Alternativ, una sau ambele intrri (H2, H0) pot fi semnale externe blocului. Intrarea H1 provine din exterior. Semnalele de ieire ale generatoarelor de funcii pot forma ieirile CLB. Ieirile F sau H sunt conectate la ieirea X, iar G sau H sunt conectate la ieirea Y. Un bloc configurabil se poate utiliza pentru implementarea oricrei funcii logice lund n considerare urmtoarele posibiliti:
72
Capitolul 5
Orice funcie cu pn la patru variabile independente, plus orice funcie secundar cu pn la patru variabile independente, plus orice funcie logic cu maximum trei variabile independente1; - Orice funcie logic cu 5 variabile independente; - Orice funcie logic cu 4 variabile mpreun cu unele funcii de 6 ase variabile; - Unele funcii logice cu pn la 9 variabile. Prin implementarea funciilor logice, cu un numr mare de variabile ntr-un singur bloc, se reduce numrul de blocuri necesare pentru realizarea proiectului. De asemenea se reduc i timpii de propagare, astfel c va crete capacitatea de implementare i viteza de lucru. 5.3.2 Bistabilii interni
Pe lng faptul c sunt ieiri pentru reeaua de interconexiuni, ieirile combinaionale pot fi i surs de intrare pentru bistabili interni ai CLB pentru realizarea circuitelor secveniale. Bistabilii sunt de tip D i au tactul de nscriere pe front pozitiv prin semnalul comun de tact K. Inhibarea tactului se realizeaz prin semnalul EC. Prin semnalul de inhibare ambele intrri de tact se pot inhiba sau nu n mod permanent. 5.3.3 Intrarea de tact Fiecare bistabil poate fi nscris att pe frontul pozitiv ct i pe cel negativ al tactului. Dei semnalul K este comun el se poate inversa separat la fiecare dintre intrrile bistabililor. Orice invertor plasat la intrarea de tact este absorbit n mod automat de CLB. 5.3.4 Inhibarea de ceas Semnalul de inhibare EC este activ pe nivel logic High. Semnalul comand inhibarea la ambele elemente de stocare, dar lsat neconectat va avea valoare logic implicit. Semnalul nu este inversabil la intrarea n bistabil. 5.3.5 Set / Reset Setarea i resetarea bistabililor se face n mod asincron prin intermediul semnalelor SR/H0. Aceast opiune determin starea bistabililor n momentul cnd ele devin active dup configurare . De asemenea determin efectul semnalului de Set / Reset global pe perioada normal a operaiei i totodat determin efectul semnalului SR al CLB.
n cazul generrii a 3 funcii separate, una dintre funcii trebuie s furnizeze intrarea bistabilului intern al CLB. Doar dou funcii combinaionale sunt realizabile.
73
Starea Set / Reset se specific prin utilizarea atributului INIT, sau prin amplasarea n schema electric a simbolurilor corespunztoare din biblioteca de circuite secveniale. SR nu este inversabil n interiorul CLB i este activ pe 1 logic. 5.3.6 Set / Reset global Un semnal global Set / Reset asigur tergerea bistabililor n momentul cuplrii la tensiune, pe durata reconfigurrii, sau cnd linia de reset global este activat. Aceast linie de reset global GSR nu interfereaz cu resursele de interconectare, ea este implementat ntr-o reea separat. Fiecare bistabil este configurat n aa fel ca att setarea local SR sau global GSR s seteze bistabilul. Semnalul GSR se poate conecta la orice pin programabil. Pentru a utiliza aceast legtur global se va specifica n schema electric un buffer de intrare i un pin de legtur n modul artat n figura 5.4, sau n program HDL se va specifica GSR.
Opional se poate insera un invertor dup buffer-ul de intrare pentru a inversa sensul semnalului global GSR. 5.3.7 Intrri i ieiri de date Sursa semnalului de intrare n bistabil este programabil. Acest semnal de intrare se poate selecta dintre funciile F, G i H, sau de la semnalul de intrare direct Direct_In (DIN) a blocului programabil. Dou ci de trecere rapid sunt multiplexate mpreun cu ieirile bistabililor. Aceste ci de trecere uneori sunt utilizate de programul de interconectare automat pentru alimentarea unor semnale interioare. 5.3.8 Semnale de control Multiplexoarele interne ale CLB faciliteaz implementarea funciilor alese (figura 5.3). Multiplexoarele sunt controlate de semnalele (C1 C4), sau de semnalele interne rezultante (H1, DIN/H2, SR/H0 i EC). Oricare dintre aceste
74
Capitolul 5
semnale sunt sursa semnalelor de control intern. Cnd funcia logic este activ atunci aceste semnale sunt: - EC Clock Enable; - SR/H0 Set/Reset asincron sau intrarea H0 a generatorului de funcie H; - DIN/H2 Intrare direct H2 a generatorului de funcii H; - H1 Intrarea direct H1 a generatorului de funcii H. Dac blocul este configurat ca i memorie RAM/ROM cele patru intrri au semnificaia: - EC Clock Enable; - WE Write Enable; - D0 Intrare dat pentru generatorul de funcie F i /sau G; - D1 Intrare dat pentru generatorul de funcie G (mod RAM/ROM 16x1 i 16x2) sau bitul de adres 24 (mod 32x1). 5.3.9 Generatoarele de funcii utilizate ca RAM Generatoarele de funcii F i G se pot utiliza ca celule de memorie RAM/ROM. Modurile de configurare posibile sunt: nscriere pe nivel logic; nscriere pe front pozitiv / negativ; Port dual cu nscriere pe front pozitiv / negativ. Modurile de configurare acceptate pentru portul simplu i dual sunt prezentate n tabelul T5.2.
Tabel T5.2 Moduri de configurare a memoriei
16x1
16x2
32x2
nscriere pe front
Sigle-port Dual-port
Da Da
Da
Da
Da Da
5.3.10 Opiuni de configurare ale memoriilor RAM Circuitele RAM realizate cu seria XC4000 pot lucra n dou moduri de lucru: Modul de lucru sincron (Edge Triggered) - Informaia este nscris pe frontul pozitiv / negativ al tactului, WE funcioneaz ca semnal de inhibare tact de nscriere. Modul de lucru asincron (Level Sensitive) - Semnalul extern WE funcioneaz ca semnal de nscriere (strobe).
75
5.3.11 Logica de propagare carry Fiecare generator de funcii din CLB conine circuite aritmetice dedicate generri rapide a bitului de transport (superior / inferior sau carry / borrow). Acest semnal de ieire este conectat la blocul logic adiacent. Circuitul logic dedicat realizrii bitului de transport mrete performanele circuitelor de adunare / scdere i numrtoare. Acest fapt orienteaz circuitele FPGA pentru aplicaii n care prelucrarea semnalelor necesit vitez mare de calcul. Aceast realizare a bitului de transport este cel mai nsemnat avantaj al seriei XC4000 ce permite realizarea unor circuite numrtoare cu o frecven de lucru de pn la 70Hz. Propagarea bitului de transport este realizat conform figurii 3.5.
76
Capitolul 5
Blocurile IOB se pot configura astfel nct nivelel tensiunilor de intrare / ieire s fie compatibile cu nivelel de tensiune TTL sau CMOS. Opiunea se selectez la lansarea programului de generare a fiierului de configurare. 5.4.2 Intrri pe registru
Semnalel I1 i I2 se pot conecta la bistabilul de intrare al blocului IOB. Semnalul de inhibare a bistabililor din IOB poate fi configurat astfel nct s fie comun sau separat pentru cele dou registre. Acest semnal nu se poate inversa n interiorul IOB.
Figura 5.6 Diagrama simplificat a blocului de intrare / ieire la seria XC4000X Suprafeele haurate indicnd diferenele fa de seria XC4000E
5.4.3 Semnale de ieire din IOB n mod opional semnalele de ieire se pot inversa n interiorul blocului de intrare / ieire. Aceste semnale se pot conecta direct la ieirea pinului sau la bistabilul de ieire din IOB. Seria XC4000X permite un curent maxim de ieire egal 12mA / ieire. O ieire se poate configura ca ieire open drain (open collector) prin plasarea unui buffer 3-state (OBUFT) n schema circuitului (vezi figura 5.7).
77
5.4.4 Controlul vitezei de cretere a semnalului (Slew Rate Control) Slew rate-ul fiecrui buffer, este redus pentru a minimiza consumul de putere i pentru a minimiza semnalele tranziente la tensiunea de alimentare. Sarcina capacitiv la cuplri simultane n aceeai direcie este de 200pF ntre tensiunea de alimentare i masa de alimentare. 5.4.5 Linia global de comand a ieirilor 3 state O linie global separat permite forarea n starea de impedan ridicat a tuturor ieirilor FPGA ului, cu excepia cazului testrilor perimetrice (boundary scan). Aceast linie global (GTS) nu consum resursele de conectare, ci este o linie dedicat, linie ce poate fi comandat de la orice port IOB al circuitului. Linia poate de asemenea fi comandat i de la un nod intern, similar semnalului GSR.
78
Capitolul 5
Parte comun att seriei XC4000E ct i seriei Corespunde numai seriei XC4000 Matrice de cuplare programabil
Figura 5.8 Interconexiuni programabile
79
80
Capitolul 5
5.8.1 Realizarea legturilor ntre blocurile CLB n figura 5.10 sunt prezentate resursele de conectare ale unui bloc CLB. Liniile de culoare nchis exist numai la circuitele XC4000EX.
ntrrile i ieirile n blocurile configurabile sunt distribuite n toate cele patru direcii, pentru ca realizarea conexiunilor s fie ct mai flexibil. Poziia intrrilor i ieirilor CLB este interschimbabil pentru evitarea congestiunilor, n timpul plasri i realizri conexiunilor.
5.8.2 Matricea de cuplare programabil Liniile de simpl i dubl lungime verticale i orizontale se intersecteaz n aa numita matrice de cuplare programabil (pragrammable switcing matrix PSM). Romburile de la intersecia a dou linii reprezint tranzistoarele de trecere utilizate pentru realizarea conexiunilor ntre linii (vezi figura 5.11.a). n figura 5.11.b sunt prezentate cteva posibiliti de interconectare oferite de PSM.
81
5.8.3 Linii de simpl lungime Liniile de simpl lungime permit interconectarea rapid a blocurilor adiacente. Fiecrui bloc i sunt asociate 8 linii verticale i 8 linii orizontale de simpl lungime. Aceste linii sunt conectate n matrice programabile situate la interseciile fiecrei linii i coloane. Conectarea liniilor de simpl lungime la matricele programabile este artat n figura 5.12, iar realizarea conexiunilor este artat n figura 5.8. Liniile de simpl lungime introduc ntrzieri n propagarea semnalelor ori de cte ori intr ntr-o matrice programabil. Din aceast cauz nu sunt utilizabile pentru realizarea legturilor la distan. Ele sunt utilizate n mod normal pentru a ghida semnalele ntr-o arie restrns. 5.8.4 Liniile de dubl lungime Liniile de dubl lungime realizeaz o gril din segmente de metal. Fiecare linie are lungime dubl n comparaie cu liniile simple. Liniile duble sunt grupate n perechi i intr n fiecare a doua matrice (vezi figura 5.12). Fiecrui CLB i se asociaz patru linii verticale i patru linii orizontale, pentru realizarea conexiunilor. Realizarea conexiunilor este artat n figura 5.8. 5.8.5 Linii lungi Liniile lungi asemntor liniilor de dubl lungime formeaz o gril de metal ce acoper toat aria circuitului. Aceste linii cu un fun-out ridicat i timpi de propagare minimi pot conduce la semnale critice. La cele dou linii orizontale fiecare CLB se poate conecta prin intermediul unui buffer 3-state. Astfel c aceste linii pot implementa bus-uri uni- sau bi-direcionale sau funcii cablate.
82
Capitolul 5
Figura 5.13 Diagrama de conexiuni a seriei XC4000 cu cordonul VersaRing (n stnga) Decodificatoarele (WED) i blocurile I/O Suprafeele haurate corespund numai seriei XC4000X
83
5.8.6 Resurse de conectare a intrrilor / ieirilor Seria XC4000 posed resurse suplimentare pentru conectarea blocurilor IOB. Un cordon de legturi realizat n jurul blocurilor CLB, numit VersaRing faciliteaz conectarea pinilor i realizarea conexiunilor interne fr a consuma resursele de conectare pentru implementarea proiectului. Cordonul VersaRing conine opt linii de dubl lungime i patru linii lungi (vezi figura 5.13).
84
Moduri de configurare Master Serial Slave Serial Master Paralel, prin incrementare Master Paralel, prin decrementare Periferial Sincron Periferial Asincron Expres Rezervat
M2 0 1 1
M1 0 1 0
M0 0 1 0
1 0 1 0 0
1 1 0 1 0
0 1 1 0 1
Byte Paralel, prin decrementare de la 3FFFH Byte - Parale Byte - Parale Byte - Parale -
5.9.2 Secvena de configurare n secvena de configurare apar patru perioade distincte: - tergerea memoriei de configurare; - Iniializarea circuitului; - Configurarea circuitului; - Modul de funcionare dorit.
85
circuitelor din aceast familie este cuprins ntre 2000 - 20.000 de pori logice, plus 1024 6400 registre i sunt realizate n tehnologie CMOS de 0,8 m. Firma Atmel ofer i un mediu de proiectare complet (Atmel Integrated Development System) disponibil att pentru PC-uri ct i pentru staii de lucru Sun. Un alt productor cunoscut de circuite FPGA este firma LUCENT Technologies (fost AT&T Microelectronics). Circuitele FPGA produse de aceast firm sunt cunoscute sub numele de ORCA (Optimized Reconfigurable Cell Arrays = matrici de celule logice reconfigurabile optimizate). Circuitele din familiile ORCA: OR1C,OR2C, OR2T, OR2CA, OR2TA, OR3CA, OR3TA, au ca i celule de baz mici memorii de tip SRAM i sunt realizate n tehnologie CMOS de la 0,6 pn la 0,35m. Capacitatea circuitelor este cuprins ntre 3.500 i 11.400 de pori logice. Prin intermediul mediului de proiectare numit ORCA Foundry firma Lucent ofer un pachet de programe de implementare a proiectelor care n prealabil au fost sintetizate cu aa numitul pachet de programe SCUBA (Syntesis Compiler for User Programmable Arrays) oferit de o firm ter. Alte firme productoare de circuite FPGA sunt: Gatefield (familiile GFxxxF ProASIC), Motorola (familiile MPA10xx) i QuickLogic (familiile pASICx).
86