Sunteți pe pagina 1din 10

Capitolul 6

6 ARHITECTURA CIRCUITELOR FPGA FAMILIILE SPARTAN i SPARTAN XL


Seria de circuite FPGA Spartan are n componen mai multe familii, care vor fi enumerate n continuare n ordinea apariiei i a complexitii tehnologice a acestora: - Spartan/XL; - Spartan-II, Spartan-IIE; - Spartan-3, Spartan-3E; - Spartan-3A, Spartan-3AN, Spartan-3A DSP.

6.1 Caracteristicile familie Spartan i Spartan-XL


n continuare vor fi prezentate caracteristicile circuitelor din familiile Spartan i Spartan XL. Una din diferenele dintre cele dou familii este tensiunea de lucru 5V pentru familia Spartan i 3,3 V pentru familia Spartan XL. n continuare vor fi enumerate cteva dintre caracteristicile comune celor dou familii: - Arhitectura bazat pe cea a familie de circuite FPGA XC4000; - Conin memorie RAM intern; - Densitate de pn la 40.000 de pori logice; - Frecvena de lucru de pn la 80 MHz; - Numr nelimitat de reprogramri; - Cost redus; - Compatibilitate cu standardul PCI; - Logic dedicat de transport la viteze mari; - Magistral tristate intern; - 8 semnale globale de clock. Caracteristici suplimentare, specifice familiei Spartan XL: Alimentare la 3,3 V, cu compatibilitate 5V la porturile I/O; Performane mai bune; Logic de transport mai rapid; Multiplexoare sau generatoare de funcii cu 2 intrri pe semnalele de ieire; Mod de configurare Express; Compatibilitate cu standardele PCI 5V i 3,3V.

Capitolul 6

n tabelul T1. Sunt prezentai membrii familiilor Spartan i Spartan XL.


Tabel T1. Membrii familiilor de circuite FPGA Spartan i Spartan XL

6.2 Descrierea familiei Spartan


Arhitectura se bazeaz pe o structur regulat de CLB-uri interconectate prin intermediul resurselor de interconectare (canale de rutare) i nconjurare de IOB-uri programabile, vezi figura 1.

Figura 1. Arhitectura circuitelor FPGA din familia Spartan, SpartanXL

Configurarea se realizeaz prin ncrcarea datelor de configurare n celulele interne de memorie static, astfel c nu exist un numr limitat de reprogramri. Arhitectura se bazeaz pe cea a popularei familii de circuite FPGA XC4000XL.

79

Arhitectura circuitelor FPGA. Familia Spartan/XL

6.3 Blocurile logice configurabile (CLB)


n CLB-uri sunt implementate majoritatea funciilor unui proiect. Elementele care alctuiesc un CLB sunt prezentate n figura 2. Exist trei tabele de adevr (LUT - Look up Tabel) care sunt utilizate ca i generatoare de funcii, de asemenea mai exist dou bistabile i dou grupuri de multiplexoare pentru semnalele de control.

Figura 2. Diagrama simplificat a uni CLB specific familiilor Spartan i Spartan XL

6.3.1 Generatoarele de funcii LUT-urile F i G sunt n principal folosite pentru implementarea generatoarelor de funcii cu 4 intrri. Datorit utilizrii acestor tabele de adevr la implementarea funciilor, acestea devin independente de ntrzieri. Al treilea LUT, H poate implementa funcii logice cu trei intrri. Toate cele trei LUT-uri mpreun pot implementa funcii logice cu pn la 9 variabile independente. Alte combinaii posibile fiind cele prezentate la familia XC4000.

6.3.2 Circuitele bistabile Fiecare CLB conine dou bistabile care pot fi folosite pentru stocarea (registre) datelor de la ieirile generatoarelor de funcii (LUT). n figura 2 se poate observa multitudinea de combinaii pe care le poate avea semnalul de la intrarea unui bistabil. Descrierea semnalelor este similar cu cea fcut pentru seria XC4000. Familia de circuite Spartan XL permite de asemenea configurarea acestor bistabile ca i latch-uri.

80

Capitolul 6

6.4 Blocurile de intrare / ieire (IOBs)


Blocurile de intrare/ieire (IOB) furnizeaz interfaa ntre pinii capsulei i logica intern. Fiecare IOB controleaz cte un pin i poate fi configurat pentru semnale de intrare, ieire sau bidirecionale. n figura 3 este prezentat arhitectura unui IOB.

Figura 3. Diagrama simplificat a uni IOB specific familiilor Spartan i Spartan XL

Semnale de intrare n IOB Semnalul de intrare de la pin poate s treac direct la canalele de rutare din interiorul circuitului FPGA sau poate trece mai nti printr-un bistabil. Bistabilul de pe calea de intrare a semnalului poate fi configurat att ca bistabil care lucreaz pe frontul semnalului de clock, ct i ca latch care lucreaz pe nivel logic. n figura 4 este prezentat o diagram simplificat a acestui registru, diagram care conine logica combinaional adiional. Din figur se observ multiplele posibiliti de conectare ale acestui registru. Bufferele de intrare pot fi configurate att pentru semnal TTL de 1,2 V ct i pentru semnal CMOS. Configurarea nivelelor logice se poate face separat pentru intrarea i ieirea dintr-un IOB. Ca i nivele logice pe intrare/ieire familia Spartan suport TTL 5 V i CMOS 5 V. Familia Spartan XL suport n plus pe intrare i CMOS 3,3V, iar la ieire familia Spartan XL suport nivelele prezentate n tabelul 2.
Tabelul T2. Nivele logice pe ieire suportate de circuitele din familia Spartan XL

81

Arhitectura circuitelor FPGA. Familia Spartan/XL

Figura 4. Bistabilul i logica aferent aparinnd unui IOB

IOB-ul familiei Spartan XL are un latch n plus pe intrare, acesta primete acelai semnal de tact ca i bistabilul de ieire. Acest latch permite capturarea rapid a datelor de intrare. Semnale de ieire din IOB Semnalul de ieire la pinul circuitului FPGA poate fi trecut opional printr-o poart inversoare sau printr-un bistabil. Circuitele din familia Spartan XL mai conin n plus n blocul IOB un multiplexor care de asemenea poate fi configurat ca i generator de funcii, putnd astfel implementa diverse funcii cu dou variabile independente. n cazul proiectrii cu simboluri schematice, acest multiplexor poate fi invocat prin apelarea simbolurilor OAND2 sau OMUX2. IOB-ul permite configurarea n starea de nalt impedan, astfel fiind permis i trecerea semnalelor bidirecionale. Circuitele din seria Spartan XL au implementat n plus un registru care controleaz starea de nalt impedan. Pentru minimizarea consumului de putere se poate face un control al slew-rate-ului pe fiecare pin. De asemenea tot pentru minimizarea consumului, pinii neconectai pot fi legai la mas sau Vcc astfel scade i sensibilitatea la perturbaii. Rezistenele de pull-up i pull-down nu sunt altceva dect tranzistoare cu canal p i n. La fel ca i bistabilii din CLB-uri i cei din IOB-uri beneficiaz de semnal global de set/reset (GSR). Bistabilii de intrare i de ieire ai IOB-ului beneficiaz de semnale de clock separate, dar de semnal de activare (EC) comun care poate fi activat individual.

6.5 Descrierea traseelor de rutare


Traseele interne de rutare sunt constituite din segmente de metal ntrerupte de puncte de comutare programabile sau de matrici programabile. n figura 5 este prezentat o diagram a traseelor de rutare dintre CLB-uri.

82

Capitolul 6

Figura 5. Traseele de rutare interne specifice familiilor Spartan i Spartan XL

Rutarea ntre CLB-uri se face automat de ctre software-ul de sintez inndu-se cont de contsrngerile de loc i de timp impuse de ctre proiectant. Exist trei categorii de trasee de routare: - trasee de rutare ntre CLB-uri, linii orizontale i verticale, la intersecia dintre acestea aflndu-se matricea de interconexiuni; - traseele de rutare ale IOB-urilor la CLB-uri, alctuiesc un inel numit VersaRing; - traseele de rutare globale, alctuite din reele de linii dedicate proiectate s ditstribuie semnale de tact i de reset cu ntrzieri minime. 6.5.1 Trasee de rutare ntre CLB-uri Exist trei tipuri de trasee: de lungime simpl, dubl i linii lungi. n figura 6. sunt prezentate semnalele care intr i ies dintr-un CLB. Se poate observa c semnalele sunt distribuite simetric pe toate cele patru laturi, evitndu-se astfel congestii la rutare.

Figura 6. Semnalele de interconectare ale unui CLB

Liniile orizontale i verticale de lungime simpl i dubl se intersecteaz n aa numitele matrici de interconectare (PSM Programmable Switch Matrix). Fiecare PSM este alctuit din tranzistoare de trecere utilizate pentru interconectarea liniilor ntre ele, vezi figura 7.

83

Arhitectura circuitelor FPGA. Familia Spartan/XL

Figura 7. Matricea de interconectare programabil

Liniile de lungime simpl Exis 8 astfel de linii verticale i opt orizontale asociate cu fiecare CLB i i ofer acestuia conectivitate cu CLB-urile vecine. Aceste linii trec prin fiecare matrice de interconectare. Datorit ntrzierilor care apar la trecerea prin PSM sunt utilizate pentru conectarea CLB-urilor dintr-o arie restrns. Liniile de lungime dubl Sunt de dou ori mai lungi dect cele simple i trec tot prin a doua matrice de interconexiuni. Exist patru astfel de linii verticale i orizontale asociate fiecrui CLB. Liniile lungi Aceste linii parcurg ntreaga matrice de CLB-uri, att pe orizontal ct i pe vertical. Sunt utilizate n cazul interconectrii CLB-urilor dintr-o arie mai larg, dispunnd de un fanout ridicat. Fiecare astfel de linie are la mijloc un comutator care permite mprirea acesteia n dou segmente separate. 6.5.2 Trasee de rutare globale Patru linii verticale asociate fiecrei coloane de CLB-uri sunt comandate exclusiv de buffere globale. Acestea pot fi accesate de buffere globale primare (BUFGP) sau de buffere globale secundare (BUFGS). Aceste linii ofer o ntrziere minim. Este recomandat utilizarea buffere-lor globale n cazul oricror semnale care beneficiaz de constrngeri de timp mai severe.

6.6 Caracteristici avansate ale circuitelor din familiile Spartan i Spartan XL


6.6.1 Memoria RAM distribuit Generatoarele de funcii F i G din fiecare CLB pot fi folosite pentru implementarea memoriilor RAM. Operaiile de scriere i citire vor fi semnificativ mai rapide dect n cazul accesrii memoriilor RAM externe. Exist dou moduri de configurare a memorie: cu un singur port (single port) i cu dou porturi (dual-port). n cazul ambelor moduri, operaia de scriere este sincrona, iar cea de citire este asincrona. n cazul modului cu un singur port exist variantele de configurare 16x1, 16x2 sau 32x1, primul numr reprezentnd numrul maxim de locaii ce pot fi implementate ntr-un singur CLB, iar ce al doilea numr reprezentnd numrul de bii stocai ntr-o locaie.

84

Capitolul 6

n cazul modului cu dou porturi de ieire singura opiune este 16x1. Pentru aceast situaie vor exista dou decodificatoare de adrese cte unul pentru fiecare port. Alegerea configuraiei de lucru dorite se face innd cont de constrngerile de timp, arie, de aplicaie i de complexitatea procesului de proiectare. 6.6.2 Logica de transport rapid La fel ca i la familia XC4000 fiecare CLB conine linii dedicate pentru semnalelor de carry specifice sumatoarelor, acumulatoarelor sau numrtoarelor. Liniile i logica dedicat vor crete performanele la implementarea circuitelor menionate anterior. 6.6.3 Buffere tristate asociate liniilor lungi Fiecrui CLB i este asociat cte o pereche de buffere tri-state conectate la liniile lungi orizontale aflate n vecintatea CLB-ului. Acest lucru va permite implementarea magistralelor multiplexate sau a celor bidirecionale. 6.6.4 Oscilator on-chip Are aceleai caracteristici ca i cel din seria XC4000. 6.6.5 Funcia Boundary Scan Aceast funcie este descris de standardul IEEE 1149.1 i are rolul de a testa funcionalitatea dispozitivelor electronice. Pentru a se putea realiza aceast testare, exist structuri logice suplimentare ncapsulate n dispozitivele electronice. Familiile de circuite Spartan i Spartan-XL permit implementarea instruciunilor BYPASS, PRELOAD/SAMPLE I EXTEST specifice standardului IEEE 1149.1 de scanare periferic. Acest standard se implementeaz cu o interfa de numai 4-pini, 3 pentru intrare date i unul pentru ieire. Prin intermediul acestora pot fi ncrcate serial comenzi i date. n figura 8 este prezentat o diagram a logicii de testare periferic specific circuitelor Spartan i Spartan XL. Setul de instruciuni este codificat pe trei bii i cuprinde instruciuni de configurare a dispozitivului i de citire a datelor de configurare. Dac testarea periferic este utilizat numai n faza de configurare nu este necesar utilizarea nici unui simbol schematic. Dac ns se dorete ca aceast funcie s rmn activ i dup configurare se va folosii simbolul din figura 9. ncepnd cu seria Spartan XL funcia de testare periferic permite citirea unui cod de identificare specific fiecrui dispozitiv, aa numitul IDCODE. Acest cod se refer la productor, la dimensiunea circuitului, la familia din care face parte i la versiunea chipului.

85

Arhitectura circuitelor FPGA. Familia Spartan/XL

Figura 8. Logica de testare periferic (boundary scan)

Figura 9. Simbol schematic utilizat pentru testarea periferic

6.6.6 Funcia power down Aceast funcie se refer la un mod de lucru cu consum redus de putere i este specific doar circuitelor din familia Spartan XL. Pentru a intra n acest mod de lucru circuitele din familia menionat beneficiaz de un pin dedicat PWRDWN activ pe zero logic. n acest mod de lucru consumul de curent este de aproximativ 100 microamperi.

86

Capitolul 6

6.6.7 Configurare i testare Configurarea reprezint procesul de ncrcare a datelor de programare specifice proiectului, n unul sau mai multe circuite FPGA cu scopul de a definii modul de funcionare i de interconectare a blocurilor interne. Circuitele din familia Spartan folosesc cteva sute de bii pentru configurarea unui CLB i a interconexiunilor asociate acestuia. Fiecare bit definete starea unei celule de memorie RAM static, care poate controla o locaie a tabelei de adevr, o intrare a unui circuit de multiplexare sau grila unui tranzistor de trecere utilizat pentru interconectare. Mediul de dezvoltare Xilinx translateaz un proiect ntr-un fiier de tip list de conexiuni (netlist), partiioneaz, plaseaz i interconecteaz n mod automat circuitele logice specifice proiectului i genereaz n cele din urm un fiier de configurare n format de tip PROM. n funcie de starea pinilor de configurare circuitele din familiile Spartan i Spartan XL pot fi configurate n modurile Slave Serial i Master Serial, n plus circuitele din familia Spartan XL pot fi configurate i n modul Express. n modul de configurare Master Serial oscilatorul intern este folosit pentru generarea semnalului de clock de configurare (CCLK), existnd astfel posibilitatea de a furniza semnal de clock i pentru alte dispozitive conectate care lucreaz ca i Slave Serial. Dac pinii de configurare nu sunt conectai, modul implicit de configurare va fi Slave Serial, mod n care semnalul de clock este primit de la un dispozitiv extern. Modul de configurare Express specific familiei Spartan XL este similar cu modul de configurare Slave Serial, singura deosebire constnd n faptul c pe un ciclu de clock transmisia se face byte cu byte i nu bit cu bit. Pentru detectarea erorilor n timpul transmisiei fiierului de configurare se face o verificare de tip CRC (Cyclic Redundancy Check). Astfel sistemul care transmite efectueaz un calcul asupra irului de bii transmii, rezultatul fiind adugat i el la secvena de date. Sistemul care recepioneaz datele va efectua aceleai calcule i va compara rezultatul cu valoarea primit. Circuitele din familia Spartan XL pot fi configurate prin intermediul piniilor utilizai la testarea periferic. Dup configurarea unui circuit exist posibilitatea ca utilizatorul s citeasc coninutul memoriei de configurare fr a perturba funcionarea dispozitivului.

87

S-ar putea să vă placă și