Documente Academic
Documente Profesional
Documente Cultură
Capitolul 6
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
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
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
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.
82
Capitolul 6
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.
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
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.
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
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