8 Familia de circuite FPGA Spartan-3. Introducere în familia de...

15
Capitolul 8 8 Familia de circuite FPGA Spartan-3. Introducere în familia de circuite Virtex 8.1. Familiile de circuite FPGA Spartan-3 Familia de circuite FPGA Spartan-3 a fost proiectată în mod expres pentru a veni în întâmpinarea cerinţelor de capacitate sporită şi cost redus, specifice pieţei bunurilor de larg consum. Această familie de circuite are opt membrii cu capacităţii între 50.000 şi cinci milioane de porţii logice, vezi tabelul T1. Circuitele din această familie sunt realizate în tehnologie 90nm şi pot fi implementate proiecte cu frecvenţă de lucru de până la 185 MHz . Arhitectura familiei de circuite Spartan-3 se bazează pe arhitectura predecesorului Spartan- IIE, beneficiind în plus de resurse logice suplimentare, capacitate sporită a memoriei RAM interne, număr sporit de pini I/O, resurse de management a semnalului de tact îmbunătăţite. Noile caracteristici fiind împrumutate de la clasa superioară de circuite FPGA produse de XILINX, familia Virtex-II. Îmbunătăţirile aduse familiei de circuite Spartan-3 combinate cu procesele tehnologice de producţie avansate, conferă o funcţionalitate sporită şi un raport preţ performanţă foarte bun, fixând astfel noi standarde în domeniul circuitelor logice programabile. Familia de circuite Spartan-3 este o alternativă superioară circuitelor ASIC programate prin mască. Circuitele FPGA permit reducerea costurilor iniţiale de producţie, a ciclului de dezvoltare implementare a aplicaţiei şi înlătură inflexibilitatea specifică circuitelor ASIC. De asemenea, reprogramabilitatea circuitelor FPGA permite updatarea aplicaţiilor fără a fi necesare modificări hardware, lucru imposibil în cazul circuitelor ASIC. Tabelul T.1 Câteva dintre caracteristicile membrilor familei de circuite FPGA Spartan-3 Dispozitiv Nr total de porţi Nr. CLB- uri Memorie RAM distribuită (biţi) Memorie RAM în blocuri (biţi) Multipli- catoare dedicate DCM-uri Nr de porturi I/O XC3S50 50K 192 12K 72K 4 2 124 XC3S200 200K 480 30K 216K 12 4 173 XC3S400 400K 896 56K 288K 16 4 264 XC3S1000 1M 1920 120K 432K 24 4 391 XC3S1500 1,5M 3328 208K 576K 32 4 487 XC3S2000 2M 5120 320K 720K 40 4 565 XC3S4000 4M 6912 432K 1728K 96 4 712 XC3S5000 5M 8320 520K 1872K 104 4 784 8.1.1 Caracteristici ale familiei de circuite FPGA Spartan-3 Această familie de circuite FPGA se caracterizează prin cost redus, performanţă ridicată, densitate mare, aplicaţii orientate spre piaţa de larg consum. Densitatea atingând 5 milioane de porţi logice în cazul celui mai mare membru al familie. Această densitate adeseori este exprimată şi în număr de celule logice, o astfel de celulă fiind alcătuită dintr-un tabel de

Transcript of 8 Familia de circuite FPGA Spartan-3. Introducere în familia de...

Page 1: 8 Familia de circuite FPGA Spartan-3. Introducere în familia de …ece.ubm.ro/clp/index_files/Curs_10.pdf · există o pereche de elemente de stocare de tip registru. Toate semnalele

Capitolul 8

8 Familia de circuite FPGA Spartan-3. Introducere în familia de

circuite Virtex 8.1. Familiile de circuite FPGA Spartan-3

Familia de circuite FPGA Spartan-3 a fost proiectată în mod expres pentru a veni în întâmpinarea cerinţelor de capacitate sporită şi cost redus, specifice pieţei bunurilor de larg consum. Această familie de circuite are opt membrii cu capacităţii între 50.000 şi cinci milioane de porţii logice, vezi tabelul T1. Circuitele din această familie sunt realizate în tehnologie 90nm şi pot fi implementate proiecte cu frecvenţă de lucru de până la 185 MHz . Arhitectura familiei de circuite Spartan-3 se bazează pe arhitectura predecesorului Spartan-IIE, beneficiind în plus de resurse logice suplimentare, capacitate sporită a memoriei RAM interne, număr sporit de pini I/O, resurse de management a semnalului de tact îmbunătăţite. Noile caracteristici fiind împrumutate de la clasa superioară de circuite FPGA produse de XILINX, familia Virtex-II. Îmbunătăţirile aduse familiei de circuite Spartan-3 combinate cu procesele tehnologice de producţie avansate, conferă o funcţionalitate sporită şi un raport preţ performanţă foarte bun, fixând astfel noi standarde în domeniul circuitelor logice programabile. Familia de circuite Spartan-3 este o alternativă superioară circuitelor ASIC programate prin mască. Circuitele FPGA permit reducerea costurilor iniţiale de producţie, a ciclului de dezvoltare implementare a aplicaţiei şi înlătură inflexibilitatea specifică circuitelor ASIC. De asemenea, reprogramabilitatea circuitelor FPGA permite updatarea aplicaţiilor fără a fi necesare modificări hardware, lucru imposibil în cazul circuitelor ASIC.

Tabelul T.1 Câteva dintre caracteristicile membrilor familei de circuite FPGA Spartan-3

Dispozitiv Nr total de porţi

Nr. CLB-uri

Memorie RAM distribuită (biţi)

Memorie RAM în blocuri (biţi)

Multipli-catoare dedicate

DCM-uri Nr de porturi I/O

XC3S50 50K 192 12K 72K 4 2 124 XC3S200 200K 480 30K 216K 12 4 173 XC3S400 400K 896 56K 288K 16 4 264 XC3S1000 1M 1920 120K 432K 24 4 391 XC3S1500 1,5M 3328 208K 576K 32 4 487 XC3S2000 2M 5120 320K 720K 40 4 565 XC3S4000 4M 6912 432K 1728K 96 4 712 XC3S5000 5M 8320 520K 1872K 104 4 784

8.1.1 Caracteristici ale familiei de circuite FPGA Spartan-3

Această familie de circuite FPGA se caracterizează prin cost redus, performanţă ridicată, densitate mare, aplicaţii orientate spre piaţa de larg consum. Densitatea atingând 5 milioane de porţi logice în cazul celui mai mare membru al familie. Această densitate adeseori este exprimată şi în număr de celule logice, o astfel de celulă fiind alcătuită dintr-un tabel de

Page 2: 8 Familia de circuite FPGA Spartan-3. Introducere în familia de …ece.ubm.ro/clp/index_files/Curs_10.pdf · există o pereche de elemente de stocare de tip registru. Toate semnalele

Capitolul 8

101

adevăr cu 4 intrări (Look-Up-Table sau LUT) şi un circuit bistabil. Astfel că circuitul cu densitatea cea mai mare dintre membrii acestei familii va avea o densitate de 74.880 celule logice.

Numărul de pini de intrare/ieşire oferit de circuitele din această familie poate ajunge până la 784, pentru cel mai mare dintre membrii familie. Aceste porturi de intrare/ieşire permit o rată de transfer de până la 622Mb/s. De asemenea aceste porturi beneficiază de impedanţă ce poate fi controlată digital. Semnalul poate varia între 1,14 – 3,45 V şi există suport pentru standardele DDR, DDR2 şi SDRAM, beneficiind de o viteză de până la 333 Mbps.

Resursele logice oferite de aceste circuite sunt de asemenea remarcabile, astfel că pot fi implementate în mod optim, registre de deplasare, multiplexoare rapide şi de dimensiuni mari. Există un număr considerabil de multiplicatoare dedicate, între 4 şi 104. Logică dedicată pentru transport în cazul sumatoarelor rapide şi de asemenea logică JTAG.

Memoria RAM internă a acestei familii de circuite este împărţită în memorie RAM organizată în blocuri (până la 1872 Kb) şi memorie RAM distribuită (până la 520 Kb).

Aceste circuite beneficiază de asemenea de circuite specializate pentru managementul semnalului de tact, aşa numitele DCM-uri (Digital Clock Manager). Rolul acestor DCM-uri fiind de a elimina întârzierile care pot apărea pe traseul semnalului de clock şi de asemenea de a asigura sinteza în frecvenţă a acestuia. Există de asemenea opt linii dedicate pentru transportul semnalului de tact aţa numite linii globale de clock.

Dezvoltarea aplicaţiilor pentru această familie de circuite FPGA se poate face folosind mediul integrat XILINX ISE care permite executarea tuturor fazelor de proiectare: descriere, simulare, sinteză, mapare, plasare-rutare şi generare fişier de implementare. De asemena circuitele Spartan-3 suportă implementarea core-urilor procesor MicroBlaze, interfaţă PCI şi a altora.

În funcţie de aplicaţiile în care sunt folosite circuite Spartan-3 oferă opţiune de capsulă fără plumb. Există de asemenea variante ale familie de circuite Spartan-3, dedicate diverselor ramuri ale industriei, precum cea constructoare de maşini (Spartan-3 XA) şi de asemenea pentru aplicaţiile care necesită consum redus de putere există familia Spartan-3L.

8.2.1 Arhitectura familiei de circuite Spartan-3 Circuitele FPGA din familia Spartan-3 sunt alcătuite din cinci elemente programabile fundamentale: blocurile logice configurabile (CLB), blocurile de intrare ieşire (IOB), blocurile de memorie RAM, blocurile de multiplicatoare şi blocurile DCM.

Blocurile logice configurabile pot fi programate să îndeplinească o largă varietate de funcţii logice şi de asemenea pot stoca şi date. Elementele constructive care stau la baza acestora sunt memoriile RAM bazate pe tabele de adevăr (LUT).

Blocurile de intrare/ieşire (IOB) controlează fluxul de date dintre pinii de intrare/ieşire (I/O) ai circuitului FPGA şi logica internă a acestuia. Fiecare IOB suportă flux de date bidirecţional şi poate funcţiona în mod tristate. Aceste blocuri suportă nu mai puţin de 26 de standarde diferite de semnale, incluzând 8 tipuri de semnale difernţiale Dintre cele mai uzuale tipuri de semnale suportate se pot aminti: LVCMOS, LVTTL, PCI cu întreaga gamă de tensiuni aferente. Aceste blocuri IOB mai includ şi registre pentru transferul de date de tip DDR (Double Data-Rate), iar pentru simplificarea designului plăcii pe care sunt montate au posibilitatea de a controla digital impedanţa (DCI – Digitally Controlled Impedance) furnizând în mod automat aşa numiţii terminatori on-chip.

Blocurile de memorie RAM furnizează un spaţiu de stocare de 18 kbiţi, sub forma unor blocuri de memorie de tip dual-port.

Page 3: 8 Familia de circuite FPGA Spartan-3. Introducere în familia de …ece.ubm.ro/clp/index_files/Curs_10.pdf · există o pereche de elemente de stocare de tip registru. Toate semnalele

Arhitectura circuitelor FPGA. Familiile Spartan 3 şi Virtex

102

Blocurile de multiplicare acceptă la intrare două numere pe 18 biţi şi calculează produsul acestora. Rezultatul va fi exprimat pe 36 de biţi. Multiplicatoarele pot fi configurate să manipuleze datele atât sincron cât şi asincron.

Blocurile DCM (Digital Clock Manager) furnizează soluţii digitale de autocalibrare, distribuire, întârziere, multiplicare, divizare şi deplasarea fazei pentru semnalul de clock.

Organizarea acestor blocuri este prezentată în figura 1. Se poate observa că matricea de blocuri CLB este înconjurată de un inel de blocuri IOB. În funcţie de capacitatea lor membrii familiei Spartan-3 pot avea între 1 şi 4 .coloane de blocuri de memorie RAM. Fiecare coloană fiind alcătuită din câteva blocuri de memorie RAM de 18kbiţi şi fiecare bloc fiind asociat cu un multiplicator dedicat. Blocurile DCM fiind poziţionate la capătul coloanelor alcătuite de blocurile de memorie RAM.

Familia de circuite FPGA Spartan-3 este caracterizată de o reţea bogată de trasee şi comutatoare care interconectează toate blocurile funcţionale amintite mai sus, permiţând transmiterea semnalelor între acestea. Fiecare bloc are asociată o aşa numită matrice de comutaţie care permite conexiuni multiple la traseele interne circuitului FPGA

Figura 1 Arhitectura familiei de circuite Spartan-3

8.3.1 Modalităţi de configurare

Circuitele FPGA Spartan-3 sunt reprogramabile şi se configurează prin încărcarea datelor de configurare în latch-uri CMOS de tip static, care în mod colectiv, controlează atât blocurile funcţionale cât şi resursele de interconectare. Până la punerea sub tensiune a circuitului FPGA datele de configurare pot să fie stocate extern într-o memorie de tip PROM aflată pe aceeaşi placă cu circuitul FPGA sau pe o placă periferică. La punerea sub tensiune a circuitului FPGA datele de configurare vor fi înscrise în circuitul FPGA folosind una din cele cinci modalităţi posibile: master paralel, slave paralel, master serial, slave serial şi Boundary Scan sau JTAG. Cele mai uzuale tipuri de memorii de tip PROM folosite împreună cu circuitele FPGA produse de XILINX sunt de tip Flash PROM şi includ circuitele XCF00S pentru configurare serială şi XCF00P atât pentru configurare serială cât şi paralelă.

Page 4: 8 Familia de circuite FPGA Spartan-3. Introducere în familia de …ece.ubm.ro/clp/index_files/Curs_10.pdf · există o pereche de elemente de stocare de tip registru. Toate semnalele

Capitolul 8

103

Descrierea funcţională a principalelor blocuri constructive

Pentru a înţelege fişierele raport rezultate în urma implementărilor făcute în circuitul Spartan-

3 este necesar să va face o descriere succintă a arhitecturii principalelor blocuri.

8.4.1 Blocurile de intrare/ieşire După cum am menţionat într-un paragraf anterior acestea sunt interfaţa bidirecţională

programabilă dintre pinii circuitului FPGA şi logica lui internă. În figura 2 este prezentată o diagramă simplificată a acestor blocuri. Există trei căi principale pe care un semnal le poate parcurge printr-un IOB: o cale de intrare, una de ieşire şi una tristate. Pe fiecare din aceste căi există o pereche de elemente de stocare de tip registru.

Toate semnalele care intră sau ies din IOB pot fi trecute printr-un circuit inversor şi negate. Toate elementele de stocare prezente în blocul IOB pot fi configurate ca bistabile de tip D active pe front sau pe nivel logic. Elementele de stocare de pe căile de ieşire şi tristate pot fi folosite, împreună cu multiplexoare speciale, pentru a transmite datele în format DDR.

Figura 2. Arhitectura internă simplificată a blocului I/O a circuitului Spartan-3

Page 5: 8 Familia de circuite FPGA Spartan-3. Introducere în familia de …ece.ubm.ro/clp/index_files/Curs_10.pdf · există o pereche de elemente de stocare de tip registru. Toate semnalele

Arhitectura circuitelor FPGA. Familiile Spartan 3 şi Virtex

104

Alte constrângeri care se mai pot aplica pinilor I/O se referă la frecvenţa de comutare a semnalului prezent la port. Astfel pentru opţiunea FAST, portul va suporta comutaţii ale semnalului la frecvenţe ridicate, iar pentru opţiune a SLOW, frecvenţa va fi redusă însă semnalul va fi mai „curat”. În acelaşi context se poate vorbi şi despre puterea semnalului furnizat la pin, putere care poate varia între 2-24 mA.

Figura 3. Bancurile de blocuri IOB

Blocurile IOB suportă o mare varietate de standarde de intrare-ieşire asimetrice sau

diferenţiale, prezentate în tabelul T2. Pinii adiacenţi sunt folosiţi pentru fiecare pereche diferenţială.

Tabelul T2. Standarde de intrare-ieşire asimetrice sau diferenţiale suportate de blocurile I/O

Standarde de intrare-ieşire asimetrice: • LVTTL (3,3 V); • LVCMOS (3,3V, 2,5V, 1,8V, şi 1,5V, 1,2V); • PCI (33 MHz) la 3V; • CardBus (33 MHz) la 3,3V; • GTL; • HSTL (1,5V, 1,8V); • SSTL (1,8V, 2,5V);

Standarde de intrare-ieşire diferenţiale: • LVDS (Low Voltage Differential Signaling); • LDT (Lighting Data Transport); • LVPECL (Loe Voltage Positive Emitter Coupled Logic); • RSDS (Reduced Swing Diferential Signaling); • HSTL ( Diferntial High Speed Tranceiver Logic); • SSTL (Diferential Stub Series Terminated Logic).

Blocurile IOB sunt împărţite în 8 bancuri care rezultă din împărţirea fiecărei laturi în două bancuri, cum se prezintă în figura 3. Fiecare banc are mai mulţi pini de alimentare VCCO conectaţi la aceeaşi tensiune, a cărei valoare depinde de standardul de ieşire folosit. În bancuri diferite pot fi folosite mai multe standarde de intrare-ieşire diferite în acelaşi timp.

În cadrul familiei de circuite Spartan-3 toţi membrii sunt compatibili pentru acelaşi tip de capsulă. Această compatibilitate permite, dacă condiţiile o impun, înlocuitrea unui membru de capacitate mai mică cu un altul de capacitate superioara fără a fi necesare modificări hardware pe placa de circuite integrate.

Page 6: 8 Familia de circuite FPGA Spartan-3. Introducere în familia de …ece.ubm.ro/clp/index_files/Curs_10.pdf · există o pereche de elemente de stocare de tip registru. Toate semnalele

Capitolul 8

105

8.5.1 Blocurile logice configurabile

Blocurile logice configurabile sau CLB (Configurable Logic Blocks), cum le vom numi în continuare reprezintă resursa principală a circuitului FPGA pentru implementarea logicii combinaţionale şi secvenţiale. După cum se poate observa şi în figura 4 aceste blocuri sunt la rândul lor alcătuite din alte patru blocuri, aşa numite slice-uri. Slice-urile care sunt grupate în perechi, fiecare pereche formând o coloană şi beneficiind de o linie de carry independentă.

Toate cele patru slice-uri ce alcătuiesc un CLB au următoarele elemente comune: două generatoare de funcţii logice, două elemente de stocare, multiplexoare, logică de transport (carry) şi porţi logice. În figura 5. este prezentată structura unui astfel de slice. Ambele perechi de slice-uri folosesc aceste resurse pentru a implementa funcţii logice, aritmetice şi de a stoca date ca şi memorii de tip ROM. În plus, perechea din stânga mai îndeplineşte două funcţii suplimentare: stochează date folosind memoria RAM distribuită şi implementează registre de deplasare pe 16 biţi.

Figura 4. Organizarea slice-urilor într-un CLB

Aceste funcţii suplimentare sunt implementate tot cu ajutorul generatoarelor de funcţii sau aşa numitele tablele de adevăr (Look-up Table). Pentru informaţii detailate despre modul de implementare vezi site-ul producătorului.

Elementele de stocare de tip bistabil D pot fi configurate să lucreze atât pe front cât şi pe nivel logic. Una din funcţiile lor este de a sincroniza datele cu semnalul de clock.

Fiecare slice are câte două multiplexoare, rolul acestora este de combina LUT-urile între ele pentru a permite implementarea funcţiilor mai complexe.

Logica de propagare carry împreună cu restul de porţi logice permit implementarea eficientă şi la performanţe crescute a operaţiilor matematice.

Page 7: 8 Familia de circuite FPGA Spartan-3. Introducere în familia de …ece.ubm.ro/clp/index_files/Curs_10.pdf · există o pereche de elemente de stocare de tip registru. Toate semnalele

Arhitectura circuitelor FPGA. Familiile Spartan 3 şi Virtex

106

Figura 5. Structura unui bloc de tip slice specifică circuiteleor FPGA din familia Spartan-3

8.6.1 Blocuri de memorie RAM

Toţi membrii familiei de circuite Spartan-3 includ în arhitectura lor aşa numitele

blocuri de memorie RAM, care sunt reconfigurabile şi sunt organizate ca şi blocuri de memorii sincrone cu o capacitate de 18Kbiţi. Acest tip de memorie RAM organizată sub formă de blocuri este eficientă pentru a stoca cantităţi mari de date, spre deosebire de memoria RAM distribuită a cărei folosire este indicată în cazul bufferării unei cantităţi mici de date. Aceste blocuri pot implementa memorii de tip single sau double port.

8.7.1 Blocul de management a semnalului de clock

În arhitectura dispozitivelor din familia Spartan-3 este prezent un bloc care se ocupă

de managementul semnalului de clock, aşa numitul DCM (digital clock manager). Acest bloc DCM la rândul lui include un bloc DLL (delay locked loop) cu ajutorul căruia se realizează un sistem complet digital care se foloseşte de feedback pentru a menţine intacte caracteristicile semnalului de clock în ciuda variaţiilor de temperatură şi a tensiunii de alimentare. Majoritatea membrilor familiei de circuite Spartan3 au patru astfel de blocuri DCM.

Page 8: 8 Familia de circuite FPGA Spartan-3. Introducere în familia de …ece.ubm.ro/clp/index_files/Curs_10.pdf · există o pereche de elemente de stocare de tip registru. Toate semnalele

Capitolul 8

107

8.8.1 Reţele globale de clock

Circuitele din familia Spartan-3 au 8 intrări care facilitează accesul la cele 8 reţele

globale de clock. Aceste reţele sunt proiectate pentru a facilita transportul semnalelor cu frecvenţă ridicată, astfel că, capacitatea electrică pe aceste linii are valori reduse, iar fenomenul de defazaj al clockului este înlăturat. Prin intermediul unei astfel de linii globale semnalul de clock va fi transportat în condiţii optime la diferite elemente ale circuitului FPGA, cum ar fi CLB , IOB, registre, blocuri de memorie RAM.

8.9.1 Interconexiuni programabile

Liniile care asigură interconectarea blocurilor constructive aflate în interiorul circuitelor FPGA poartă numele de interconexiuni programabile. Aceste linii asigură modalităţi de interconectare foarte flexibile, iar în funcţie de cât de aproape unul de altul sunt CLB-urile pe care le interconectează se pot distinge patru tipuri: linii lungi, linii hexa, linii duble şi linii directe.

8.2. Introducere în familia de circuite Virtex

8.2.1 Circuitele din familia Virtex-4

Familia Virtex-4 reprezintă penultima generaţie de circuite FPGA a firmei Xilinx

realizată în tehnologie de 90 nm. Arhitectura circuitului are la bază un nou bloc inovativ, numit ASML (Advanced Silicon Modular Block), unic în industria circuitelor logice programabile. Familia conţine trei platforme: LX, SX, FX organizate pe criterii de performanţă: număr de celule logice, număr de unităţi MAC şi frecvenţă de lucru

Posibilitatea combinării caracteristicilor şi numărul mare de blocuri de tip proprietate intelectuală hardware (hard-IP blocks) completează soluţiile de sistem. Dispozitivele conţin de asemenea:

- procesoare PowerPC - controlerul Ethernet MAC (Media Access Control) cu trei moduri de operare

(10/100/1000 Mb/s) - tranceivere seriale cu viteza cuprinsă între 622 Mb/s şi 11,1 Gb/s - slice-uri dedicate procesării digitale a semnalelor - circuite de managementul semnalului de ceas de frecvenţă mare (Xesium Clock

Tehnology) Dintre îmbunătăţirile şi modificările notabile faţă de dispozitivele din familiile Virtex

anterioare, se remarcă următoarele: - o creştere de până la 40% a vitezei de lucru a celulelor logice; - includerea de blocuri dedicate funcţiilor DSP (XtremeDSP Slice) funcţionând la

500 MHz. Acestea conţin: - multiplicatoare pe 18x18 biţi, dedicate, - nivele de pipeline opţionale pentru îmbunătăţirea performanţelor, - blocuri multiplicatoare-acumulatoare sau multiplicatoare-sumatoare,

Page 9: 8 Familia de circuite FPGA Spartan-3. Introducere în familia de …ece.ubm.ro/clp/index_files/Curs_10.pdf · există o pereche de elemente de stocare de tip registru. Toate semnalele

Arhitectura circuitelor FPGA. Familiile Spartan 3 şi Virtex

108

- acumulator opţional pe 48 de biţi pentru operaţiile de multiplicare acumulare (MACC),

- blocuri de memorie integrate funcţionând la 500 MHz; - blocuri de memorie integrată de până la 10 Mb; - arhitectura dual-port.

8.3.1 Circuitele din familia Virtex 5

Circuitele din familia Virtex 5 sunt ultimele circuite FPGA produse de firma Xilinx, iar conform afirmaţiilor producătorului sunt cele mai puternice pe piaţa circuitelor logice programabile. Sunt realizate în tehnologie 65 nm, iar multiplicatoarele şi blocurile de memorii pot lucra la frecvenţe de 550 MHz, devenind astfel o alternativă viabilă la circuitele ASIC.

La fel ca şi generaţia precedentă de circuite FPGA şi această familie va cuprinde mai multe subfamilii de circuite, organizate pe criterii de performanţă: număr de celule logice, număr de unităţi MAC şi frecvenţă de lucru.

În continuare vor fi enumerate câteva din caracteristicile noi sau îmbunătăţite, faţă de familia anterioară de circuite Virtex:

- viteză de lucru mai mare cu 50%; - tehnologie de interconectare superioară; - capacitate sporită, până la 330.000 celule logice; - tabele de adevăr de tip LUT cu 6 intrări; - memorie RAM distribuită pe 64 de biţi; - blocuri mai complexe de management a semnalului de tact (aşa numite CMT –

clock management tile), în număr maxim de 6, alcătuite din două blocuri DCM şi un bloc PLL.

- 32 de linii globale de clock; - linii locale şi regionale de clock în plus faţă de cele globale; - până la 10,3 Mbiţi de memorie integrată organizată în blocuri cu frecvenţa de lucru

de 550MHz; - multiplicatoare dedicate cu intrări 25x18 cu frecvenţa de lucru de 550MHz; - până la 1200 de porturi I/O; - interfeţe de reţea cu viteză de lucru de până la 1,25 Gb/s; - suport pentru lucru cu memorie FLASH externă; - tehnologia de realizare de 65 nm, iar tensiunea de lucru a core-ului de 1V.

8.3. Analiza comparativă performanţe/preţ circuite FPGA

Pentru o imagine de ansamblu mai bună asupra circuitelor FPGA produse de firma Xilinx în tabelul T4.2, este prezentată o analiză comparativă ale caracteristicilor principalelor familii.

Tabelul T4.2 Comparaţie performaţe/preţ cicuite FPGA

Familia Tehnologia (nm)

Nr blocuri MAc

Frecvenţa (MHz)

Capacitatea*

Preţ ($)*** Celule logice

Porţi logice (milioane)

Virtex5LX330 65 192 550 330.000 22,1M** - Virtex4SX55 90 512 500 55.296 3,6M** 1000-1200

Page 10: 8 Familia de circuite FPGA Spartan-3. Introducere în familia de …ece.ubm.ro/clp/index_files/Curs_10.pdf · există o pereche de elemente de stocare de tip registru. Toate semnalele

Capitolul 8

109

Virtex4FX140 90 192 500 142.128 9,5M** - Virtex4LX200 90 96 500 200.000 13,5M** 300-340 VirtexIIPro100 130 444 300 125.136 9M** 109-1600 VirtexII 150 168 245 93.058 8M - Spartan3S5000 90 104 185 74.880 5M 9,5-100

*Capacitatea era exprimată iniţial în număr de porţi logice, ulterior s-a trecut la exprimarea în sclice-uri, şi în cele din urmă în număr de celule logice. Echivalenţele dintre cele trei modalităţi de exprimare a capacităţii sunt prezentate mai jos: 1 celulă logică = 1 bloc LUT cu 4 intrări + 1 bistabil de tip D 1 slice = 2 X celulă logică. ** Valori aproximative, calculate, utile pentru comparaţie. ***Preţurile sunt orientative şi variază în funcţie de capacitatea circuitului din familia respectivă (ex. spartan3S50 = 9,5$, iar spartan3s1500 = 85$), de numărul de pini şi tipul de capsulă şi de asemenea de numărul de bucăţi achiziţionate.

Determinarea numărului de porţi logice în funcţie de exprimările anterioare nu este clar definită şi depinde, conform specificaţiilor date de producător, de tipul de aplicaţiei implementat.

În cazul circuitelor Virtex II şi Spartan 3 capacitatea este exprimată în număr de porţi logice. Plecând de la aceste valori se încearcă o aproximare a capacităţii exprimate în porţi logice pentru toate circuitele din tabel. Pentru logica de interconectare (glue logic) sau pentru implementarea proiectelor mai simple se pot folosi şi circuite CPLD (familia XC9500) ale căror capacităţi pot varia între 800 – 6400 porţi logice şi ale căror preţuri sunt între 1,65 – 14, 79$. 8.4. Modulul de control cu circuit FPGA XC3S200 din familia

Spartan3 Modulul hardware cu circuit FPGA, utilizat în partea de laborator, este produs de firma Digilent Inc, poarta numele de Spartan-3 şi are ca şi componentă centrală circuitul FPGA XC3S200 din familia Spartan3.

8.4.1 Părţile componente ale plăcii Spartan-3 Principalele componente prezente pe această placă sunt prezentate în figura 6 şi vor fi enumerate în continuare:

1. Circuit FPGA XC3S200 din familia Spartan-3, capsulă de tip BGA cu 256 de pini; 2. Memoria PROM XCF02S produsă de firma Xilinx, de tip Flash de capacitate 2 Mbiţi; 3. Jumper JP1, permite configurarea FPGA-ului cu date provenind din memoria PROM

sau dintr-o altă sursă; 4. Memorie SRAM de tip asincron ISSI IS61LV25616AL, 2 module 256KX16, nu apr

în figura 4.2 sunt plasate pe versoul plăcii; 5. Port VGA pe 3-biţi, 8 culori; 6. Port serial RS-232, 9 pini, conector mamă DB9;

Page 11: 8 Familia de circuite FPGA Spartan-3. Introducere în familia de …ece.ubm.ro/clp/index_files/Curs_10.pdf · există o pereche de elemente de stocare de tip registru. Toate semnalele

Arhitectura circuitelor FPGA. Familiile Spartan 3 şi Virtex

110

Figura 6 Placa Spartan-3

7. Circuit adaptare nivele RS232; 8. Punct J1, de testare semnale seriale RS-232; 9. Port PS-2, permite conectare mouse sau tastatură; 10. Afişaj 7-segmente cu 4 caractere; 11. Comutatoare pentru introducere date, 8 bucăţi; 12. LED-uri pentru vizualizare stare ieşiri, 8 bucăţi; 13. Butoane pentru introducere date, 4 bucăţi; 14. Sursă semnal de tact de 50MHz de tip oscilator cu quartz, se află pe versoul plăcii din

figura 6; 15. Soclu pentru sursă suplimentară de semnal de tact; 16. Jumperi J8, permit selectarea modului de configurare a circuitului FPGA; 17. Buton care permite reconfigurarea forţată a circuitului FPGA, care implicit, constă în

încărcarea fişierului de configurare din memoria PROM şi are loc la punerea sub tensiune a plăcii;

18. LED care indică o configurare reuşită a circuitului FPGA; 19. Conector de extensie B1, 40 de pini, permite conectarea altor plăci periferice sau a

altor circuite externe; 20. Conector de extensie A2, 40 de pini, permite conectarea altor plăci periferice sau a

altor circuite externe; 21. Conector de extensie A1, 40 de pini, permite conectarea altor plăci periferice sau a

altor circuite externe; 22. Port JTAG de dowloadare/depanare compatibil cu cablu JTAG3; 23. Cablu JTAG3 pentru conectare la portul paralel al PC-ului, inclus în kitul plăcii, nu

este prezent în figura 6; 24. Port JTAG de dowloadare/depanare compatibil cu cablu Xilinx paralel IV sau

MultiPRO Desktop; 25. Conector pentru sursă de alimentare +5V; 26. LED indicator prezenţă tensiune de alimentare; 27. Regulator de tensiune de 3,3V; 28. Regulator de tensiune de 2,5V, se află pe versoul plăcii; 29. Regulator de tensiune de 1,2 V, se află pe versoul plăcii.

Page 12: 8 Familia de circuite FPGA Spartan-3. Introducere în familia de …ece.ubm.ro/clp/index_files/Curs_10.pdf · există o pereche de elemente de stocare de tip registru. Toate semnalele

Capitolul 8

111

8.5.1 Modul de afişare 7-segmente cu 4 caractere Placa Spartan-3 este dotată cu un afişaj 7-segmente cu 4 caractere pentru vizualizarea mărimilor de ieşire, vezi figura 7. Afişarea se face prin multiplexare comandând succesiv semnalele comune anozilor şi trimiţând în mod repetat secvenţa corespunzătoare catozilor fiecărui digit, astfel se obţine afişarea pe patru caractere. Tiparul care se aplică catozilor pentru afişarea 7 segmente este cel cunoscut. Pentru ca fiecare din cele patru caractere să fie iluminat în mod continuu şi intensitatea iluminării să fie corespunzătoare, secvenţa de date trebuie reîmprospătată la fiecare 1 până la 16 ms după tiparul din figura 8.

Figura 7. Configuraţia afişajului 7-segmente cu 4 caractere de pe placa Spartan-3.

Figura 8. Modul de afişare 7-segmente mod de comandă În tabelul T3. Sunt prezentaţi pinii specifici afişajului 7-segmente.

Tabelul T3. Pini circuitului FPGA asociaţi afişajului 7-segmente cu 4 caractere.

Page 13: 8 Familia de circuite FPGA Spartan-3. Introducere în familia de …ece.ubm.ro/clp/index_files/Curs_10.pdf · există o pereche de elemente de stocare de tip registru. Toate semnalele

Arhitectura circuitelor FPGA. Familiile Spartan 3 şi Virtex

112

8.6.1 Comutatoare, butoane şi LED-uri

Pe placa Spartan-3 există opt comutatoare care pot fi folosite pentru a genera 0 sau 1 logic la pinii circuitului FPGA. Acestea sunt notate cu SW 7 la SW0 de la stânga la dreapta. Placa Spartan-3 conţine 4 butoane normal deschise, pentru introducerea datelor. Acestea sunt notate BTN3 la BTN0 de la stânga la dreapata. Pinii circuitului FPGA aferenţi celor 8 comutatoare sunt prezentaţi în tabelul T4, iar cei asociaţi butoanelor în tabelul T5.

Tabelul T4. Pinii circuitului FPGA asociaţi celor 8 comutatoare de pe placa Spartan-3.

Tabelul T5. Pinii circuitului FPGA asociaţi celor 4 butoane norma deschise de pe placa Spartan-3.

Placa Spartan-3 conţine 8 LED-uri pentru vizualizarea stărilor de la 8 pini distincţi ai circuitului FPGA. În sistemul de control aceşti pini pot fi folosiţi pentru vizualizarea stărilor, de exemplu poate fi semnalizat sensul de rotaţie al motorului, etc. Pinii circuitului FPGA aferenţi celor 8 comutatoare sunt prezentaţi în tabelul T6.

Tabelul T6. Pinii circuitului FPGA asociaţi celor 8 LED-uri de pe placa Spartan-3.

8.7.1 Moduri de configurare ale circuitului FPGA şi ale memorie PROM

de tip Flash În modul implicit, folosit în majoritatea aplicaţiilor, circuitul FPGA de pe placa Spartan-3 îşi încarcă fişierul de configurare (bootează) din memoria PROM de tip Flash. Secvenţa de bootare are loc oridecâteori placa Spartan-3 este pusă sub tensiune sau este apăsat butonul de programare, vezi reper 17 figura 6. Circuitul FPGA de pe placă suportă mai multe moduri de configurare.: master serial , slave serial, master paralel, slave paralel şi modul JTAG. Modul implicit este master serial. Detalii cu privire la celelalte moduri şi la poziţia jumperilor J8 şi JN1 de selectare a modurilor de configurare se pot lua din data sheet-urilor producătorului. Lângă butonul de programare se află şi un LED (reper 18, figura 6.) care se va aprinde în momentul în care secvenţa de configurare s-a încheiat cu succes. Memoria PROM de tip Flash XCF02S se configurează serial. În general această memorie este folosită pentru stocarea fişierului de configurare a circuitului FPGA, dar poate fi folosită şi pentru stocarea altor date. Această memorie se mai foloseşte şi pentru stocare codului unei aplicaţii implementate pe coreul de microprocesor MicroBlaze implementat în circuitul FPGA.

Page 14: 8 Familia de circuite FPGA Spartan-3. Introducere în familia de …ece.ubm.ro/clp/index_files/Curs_10.pdf · există o pereche de elemente de stocare de tip registru. Toate semnalele

Capitolul 8

113

În funcţie de poziţia jumperului JP1 memoria PROM oferă trei opţiuni de configurare a circuitului FPGA, astfel:

- modul implicit în care FPGA-ul poate boota numai di memoria PROM; - modul de citire Flash, FPGA-ul bootează din memoria Flash, dar pe lângă

fişierul de configurare din Flash poate încărca şi alte date; - modul dezactivat, FPGA-ul bootează din alte surse.

8.8.1 Porturi JTAG de programare/depanare Placa Spartan-3 include două porturi JTAG şi permite conectarea înlănţuită la aceste porturi a circuitului FPGA şi a memoriei Flash PROM, cu scopul de a fi programate sau de a fi depanate, vezi figura 9. Cele două porturi JTAG permit conectarea la portul paralel al unui PC, prin intermediul a diferite cabluri.

Figura 9. Porturile JTAG şi modurile de conectare la acestea, a circuitului FPGA şi a modulului PROM Soluţia mai comună şi mai folosită este cablul JTAG3, livrat în kit-ul plăcii, ce asigură transportul datelor de la PC la placă şi totodată şi conversia acestor din transmisie paralelă în standard JTAG. Conectorul J7 corespunzător acestui tip de cablu poate fi văzut în figura 6, reperul 22. Acest tip de cablu este compatibil cu programul Xilinx iMPACT folosit pentru transmiterea fişierului de configurare pe portul paralel al PC-ului. De asemenea conectorul J7 suportă şi standardul de cablu Xilinx Parallel Cable 3 (PC3). Conectorul J5, reper 24 figura 6 este folosit pentru conectarea cablului JTAG de tip Parallel Cable IV (PC IV). Acest conector mai suportă de asemenea şi standardul de cablu MultiPro Desktop. Pentru mai multe detalii despre tipurile de cablu menţionate mai sus se poate studia referinţa. Acest port este foarte important în aplicaţia de control ce este dezvoltată în această lucrare deoarece prin intermediul lui pe lângă programarea circuitului FPGA se va realiza şi controlul şi monitorizarea în timp real a parametrilor motorului.

Page 15: 8 Familia de circuite FPGA Spartan-3. Introducere în familia de …ece.ubm.ro/clp/index_files/Curs_10.pdf · există o pereche de elemente de stocare de tip registru. Toate semnalele

Arhitectura circuitelor FPGA. Familiile Spartan 3 şi Virtex

114

8.9.1 Conectori de extensie Placa Spartan-3 are trei conectori de extensie cu 40 de pini fiecare, notaţi A1, A2 şi B1, vezi reperele 19, 20, 21 in figura 6. O parte din cei 40 de pini ai fiecărui port sunt rezervaţi, astfel portul A1 oferă 32 de pini I/O, iar celelalte două A2 şi B1 câte 34 de pini I/O. De asemenea o parte dintre pinii prezenţi la cele porturi de extensie împart pinii circuitului FPGA la care sunt conectaţi cu alte resurse prezente pe placă. Primii patru pini de la fiecare port sunt pentru alimentare, iar ultimii patru sunt pentru configurarea circuitului FPGA. În Tabelul T7. este prezentat modul de organizare a pinilor la unul din cei trei conectori.

Tabelul T7. Configuraţia pinilor de la conectorul de extensie B1 al plăcii Spartan-3

Principala funcţie pe care o au aceste porturi este de a permite adăugarea şi a altor dispozitive, prezente pe plăci de extensie, pentru o listă completă a plăcilor de extensie se poate vizita site-ul producătorului Digilent Inc.