sisteme reconfigurabile

20
UNIVERSITATEA “VALAHIA” TÂRGOVISTE FACULTATEA: Inginerie Electrică, Electronică si Tehnologia Informației MASTER: Automatică Avansată, Productică și Informatică Industrială PROIECT LA DISCIPLINA SISTEME INCORPORATE ANUL II Anul universitar: 2014 - 2015

Upload: bobe-danut

Post on 21-Nov-2015

48 views

Category:

Documents


10 download

DESCRIPTION

sisteme reconfigurabile

TRANSCRIPT

UNIVERSITATEA VALAHIA TRGOVISTE

FACULTATEA: Inginerie Electric, Electronic si Tehnologia Informaiei

MASTER: Automatic Avansat, Productic i Informatic Industrial

PROIECT LA DISCIPLINA

SISTEME INCORPORATE ANUL II

Anul universitar: 2014 - 2015Masterand: Bobe Mihai Danut

SISTEME RECONFIGURABILE

CUPRINS4INTRODUCERE

5Implementarea unei memorii ROM

6Circuitele FPGA

8Familiile de circuite FPGA Spartan-3

10Etapele de proiectare cu circuite FPGA

11ANEXE

12Arhitectura CLB pentru Xilinx Spartan II

12Actel Accelerator

INTRODUCEREn prezent, cerinele privind calculul de nalta performan, pentru rezolvarea problemelor din cele mai multe domenii ale activitii social-economice, au devenit extreme de presante. Astfel, se pot meniona problemele de optimizare pe scar larg, simularea n fizica i tiinta pmntului, bioinformatica, prelucrarea semnalelor etc. n acest context, procesoarele programate prin software, cu toate perfecionrile aduse de proiectani, nu ofer performana necesar. Spre exemplu, viteza de execuie a instruciunilor prezint limitri, iar procesoarele universale cu nuclee multiple, pentru o performan ridicat, impun ca algoritmii de prelucrare s aibe fire de execuie caracterizate printr-o granularitate grosier, ceea ce face ca schimburile de date ntre firele de execuie s fie relativ rare. Actualmente, dezvoltarea tehnologiei mijloacelor automate de calcul ofer mai multe ci de implementare/execuie a algoritmilor: procesoare programate prin software; structuri hardware fixe, materializate prin circuite integrate specifice aplicaiei (ASIC); structuri hardware reconfigurabile, bazate pe arii de pori reprogramabile (FPGA). Procesoarele programate prin software au avantajul unei mari flexibiliti, prin posibilitatea de a descrie algoritmii cu ajutorul unui set de funcii primitive, numite instruciuni. Descrierea algoritmului poate fi mai mult sau mai puin concis, in funcie de arhitectura setului de instruciuni, de expresivitatea acestora. Dezavantajele acestui mod de implementarea a algoritmilor sunt legate de o limitare a vitezei datorit operrii secveniale, de setul fix de instruciuni, de execuia interpretativ a acestora etc Implementarea unei memorii ROMMemoria ROM poate fi implementata printr-un aranjament ortogonal de conexiuni :

Conexiune la fiecare intersectie = 1 logic

Decodificatorul pune 1 logic pe linia selectata iar daca conexiunea este facuta, la iesire se poate citi un octet de date

Fig 1. Structura ROM.

Unele PROM-uri sunt scrise prin eliminarea conexiunilor

Tensiune mare aplicata pe linia si coloana pe care se vrea marcarea unui 0 logic

Curentul mare aplicat legaturii linie-coloana determina arderea legaturii

Alte memorii pot fi arse si reprogramate (EPROM, EEPROM). Logica in RAM/ROM Orice memorie RAM poate implementa functii logice reconfigurabile

Stocheaza tabela de adevar a functiei logice in memorie

Exemplu: folosesc RAM de 4 biti pentru a simula o poarta SI cu doua intrari stocand 0 la adresele 00, 01 si 10 si 1 la adresa 11

cu 2m cuvinte de 1 bit se poate implementa orice functie de m intrari

O memorie cu 2m cuvinte de w biti latime poate implementa w functii logice diferite cu m intrari

Memoriile ROM sau EEPROM pot implementa aceleasi functii logice dar cu anumite avantaje:

Memoria este nevolatila

Datele sunt stocate la programare si pot fi reconfigurate printr-un update de firmware

Densitate mai mare decat memoria RAM

Circuitele FPGA

Circuitele FPGA (Field-Programmable Gate Array) sunt circuite integrate programabile de catre utilizator care permit un acces rapid la circuite VLSI configurabile. Un circuit FPGA consta dintr-o retea de celule logice care pot fi interconectate prin comutatoare de rutare programabile. Circuitele FPGA combina facilitatile retelelor de porti programabile prin mati MPGA (Mask Programmable Gate Array) i a dispozitivelor logice programabile PLD (Programmable Logic Device). De la circuitele MPGA s-a adoptat structura retelei bidimensionale de celule logice, iar de la circuitele PLD s-a preluat programabilitatea de catre utilizator. Implementarile din cadrul tezei de fata au fost realizate pentru circuite FPGA. Utilizarea circuitelor FPGA s-a raspndit pe scara larga, ceea ce se datoreaza duratei reduse de productie i costului relativ redus al acestor dispozitive programabile. Reprezentnd un mediu de implementare pentru circuite VLSI configurabile, circuitele FPGA ofera urmatoarele avantaje fata de tehnologiile alternative (MPGA, celule standard, macro-celule):

- Circuitele FPGA permit o reducere semnificativa a ciclului de proiectare si productie. - Circuitele FPGA asigura o reducere a costului de productie al circuitelor VLSI. Aceste avantaje, care se datoreaza programabilitatii de catre utilizator a circuitelor, asigura o reducere a duratei de proiectare, deoarece se pot realiza ntr-un timp scurt iteratii multiple de proiectare. Totui, programabilitatea de catre utilizator are si dezavantaje: densitatea logicii si performantele de viteza ale circuitelor FPGA sunt considerabil mai reduse dect ale celorlalte alternative. Dei mbunatatirile din ultimii ani au permis creterea performantelor circuitelor, sunt necesare nca eforturi de cercetare pentru a dezvolta arhitecturi optime pentru circuitele FPGA. Cercetarile din ultimii ani legate de circuitele FPGA au ncercat sa evalueze modul n care arhitectura acestor circuite afecteaza cele doua metrici importante: suprafata totala a circuitului i performantele de viteza. Pentru experimentele efectuate asupra diferitelor arhitecturi propuse, cercetatorii au dezvoltat i utilitare de proiectare asistata de calculator n scopul implementarii sistemelor numerice cu ajutorul circuitelor propuse. Pentru diferiti parametri ai arhitecturilor (complexitatea blocurilor logice, flexibilitatea interconexiunilor etc.), au fost evaluate performantele acestor arhitecturi, ajustndu-se n mod iterativ arhitectura circuitelor, ct i utilitarele CAD. Sunt descrise n continuare unele aspecte de cercetare legate de circuitele FPGA. Complexitatea blocurilor logice. A fost studiata cantitatea de logica pe care trebuie sa o contina un bloc al circuitului. Din motive practice, studiile au presupus ca un bloc logic este o memorie LUT (Lookup Table), definind complexitatea blocului logic ca numarul de intrari K ale acestei memorii. Studii efectuate de Rose au determinat efectul valorii K asupra suprafetei ocupate i a performantelor de viteza ale circuitelor implementate. Rezultatele indica faptul ca pe masura ce K crete, numarul total de tabele LUT scade, i, n acelai timp, suprafata necesara pentru o tabela LUT crete. Suprafata minima se obtine pentru o valoare K = 4. Performantele de viteza cresc pe masura creterii dimensiunii tabelelor LUT, pna la un punct: mbunatatirile sunt reduse pentru valori ale lui K peste 5 sau 6. Deci, din acest punct de vedere, valoarea K = 5 este optima. Altera Flex 8000 este un circuit FPGA comercial cu valoarea K = 4. Flexibilitatea de interconectare. Un alt parametru care determina arhitectura unui circuit FPGA este structura sa de interconectare. Rose i Brown au efectuat studii pentru a determina numarul i organizarea comutatoarelor de rutare i a segmentelor de interconectare [26], [27]. n arhitectura utilizata de acetia, exista doua tipuri de comutatoare de rutare. Blocurile C conecteaza pinii blocurilor logice la interconexiunile de rutare, iar blocurile S conecteaza segmentele de interconectare ntre ele. Studiile au ncercat sa determine numarul comutatoarelor de rutare care trebuie plasate n blocurile C i S. Pentru aceasta au fost definiti doi parametri. Fc indica numarul segmentelor de interconectare la care se poate conecta fiecare pin al unui bloc logic ntr-un bloc C, iar Fs indica numarul segmentelor de interconectare la care se poate conecta un segment de interconectare de la intrarea unui bloc S. Concluziile principale sunt ca Fc trebuie sa fie de cel putin 50% din numarul pistelor disponibile, iar Fs trebuie sa fie mai mare sau egal cu 3. Un exemplu de circuit FPGA comercial cu aceste caracteristici este Xilinx XC4000. Blocuri logice cu conexiune directa. ntrzierile de rutare reprezinta ntre 40% i 60% din timpul total de propagare al semnalelor n circuitele FPGA. Pentru re-Introducere 3 ducerea ntrzierilor de rutare, a fost propusa utilizarea blocurilor logice cu conexiune directa. Pentru caile care includ aceste blocuri, numarul de comutatoare programabile va fi mai redus. Blocurile logice cu conexiune directa pot asigura o cretere semnificativa a performantelor. De exemplu, daca se utilizeaza tabele LUT cu 6 intrari cu conexiune directa se poate obtine o cretere de viteza de 25%, fara creterea spatiului ocupat. Un circuit comercial cu o varianta simpla de blocuri logice cu conexiune directa este Xilinx XC4000; blocurile acestuia contin doua tabele LUT cu 4 intrari conectate la o tabela LUT cu 3 intrari. Circuite FPGA ierarhice. O alta posibilitate de reducere a numarului de comutatoare programabile a fost descrisa de Aggarwal i Lewis. Circuitul FPGA este divizat n sectiuni, iar blocurile logice din cadrul unei sectiuni pot fi conectate utiliznd un singur segment de interconectare. Conexiunile mai lungi utilizeaza un nivel superior de interconexiuni pentru legatura ntre sectiuni. Un circuit FPGA cu o asemenea structura este numit ierarhic. Circuitele FPGA ierarhice permit o reducere considerabila a spatiului ocupat i o cretere a performantelor de viteza. Unele circuite FPGA dispun de resurse limitate de rutare. De asemenea, flexibilitatea de interconectare este n unele cazuri mai redusa, segmentele de interconectare avnd o lungime mai mare. n cadrul tezei se propune o metodologie de proiectare pentru circuitele FPGA cu caracteristicile amintite.

Fig 2. Structura unui FPGA

Familiile de circuite FPGA Spartan-3

Familia de circuite FPGA Spartan-3 a fost proiectat n mod expres pentru a veni n ntmpinarea cerinelor de capacitate sporit i cost redus, specifice pieei bunurilor de larg consum. Aceast familie de circuite are opt membrii cu capacitii ntre 50.000 i cinci milioane de porii logice, vezi tabelul T1. Circuitele din aceast familie sunt realizate n tehnologie 90nm i pot fi implementate proiecte cu frecven de lucru de pn la 185 MHz . Arhitectura familiei de circuite Spartan-3 se bazeaz pe arhitectura predecesorului SpartanIIE, beneficiind n plus de resurse logice suplimentare, capacitate sporit a memoriei RAM interne, numr sporit de pini I/O, resurse de management a semnalului de tact mbuntite. Noile caracteristici fiind mprumutate de la clasa superioar de circuite FPGA produse de XILINX, familia Virtex-II. mbuntirile aduse familiei de circuite Spartan-3 combinate cu procesele tehnologice de producie avansate, confer o funcionalitate sporit i un raport pre performan foarte bun, fixnd 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 iniiale de producie, a ciclului de dezvoltare implementare a aplicaiei i nltur inflexibilitatea specific circuitelor ASIC. De asemenea, reprogramabilitatea circuitelor FPGA permite updatarea aplicaiilor fr a fi necesare modificri hardware, lucru imposibil n cazul circuitelor ASIC.

Caracteristici ale familiei de circuite FPGA Spartan-3Aceast familie de circuite FPGA se caracterizeaz prin cost redus, performan ridicat, densitate mare, aplicaii orientate spre piaa de larg consum. Densitatea atingnd 5 milioane de pori logice n cazul celui mai mare membru al familie. Aceast densitate adeseori este exprimat i n numr de celule logice, o astfel de celul fiind alctuit dintr-un tabel de Capitolul 8 101 adevr cu 4 intrri (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. Numrul de pini de intrare/ieire oferit de circuitele din aceast familie poate ajunge pn la 784, pentru cel mai mare dintre membrii familie. Aceste porturi de intrare/ieire permit o rat de transfer de pn 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 pn 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 numr 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 mprit n memorie RAM organizat n blocuri (pn la 1872 Kb) i memorie RAM distribuit (pn la 520 Kb). Aceste circuite beneficiaz de asemenea de circuite specializate pentru managementul semnalului de tact, aa numitele DCM-uri (Digital Clock Manager). Rolul acestor DCM-uri fiind de a elimina ntrzierile care pot aprea 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 aa numite linii globale de clock. Dezvoltarea aplicaiilor 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 fiier de implementare. De asemena circuitele Spartan-3 suport implementarea core-urilor procesor MicroBlaze, interfa PCI i a altora. n funcie de aplicaiile n care sunt folosite circuite Spartan-3 ofer opiune de capsul fr plumb. Exist de asemenea variante ale familie de circuite Spartan-3, dedicate diverselor ramuri ale industriei, precum cea constructoare de maini (Spartan-3 XA) i de asemenea pentru aplicaiile care necesit consum redus de putere exist familia Spartan-3L.

Etapele de proiectare cu circuite FPGAProiectarea sistemelor numerice utiliznd circuite FPGA este un proces complex, care necesita resurse computationale importante. Pentru a se reduce complexitatea combinatoriala a acestei probleme, procesul de proiectare este mpartit n mod obinuit n urmatoarele etape generale.

1) Partitionarea. Sistemul proiectat, care de multe ori nu poate fi implementat ntr-un singur circuit FPGA, trebuie divizat n mai multe parti, astfel nct fiecare parte sa poata fi implementata ntr-un singur circuit FPGA, i sa poata fi gestionata independent de celelalte. Partitionarea circuitelor FPGA multiple trebuie sa satisfaca restrictii suplimentare asupra dimensiunii subcircuitelor i a numarului terminalelor de I/E.

Pentru a tine cont de restrictiile suplimentare, au fost publicati un numar de algoritmi de partitionare pentru circuitele FPGA.Partitionarea reprezinta n acelai timp o metoda algoritmica pentru rezolvarea problemelor complexe de optimizare care apar n sinteza logica sau n proiectarea fizica a circuitelor VLSI. n cadrul tezei, partitionarea a fost studiata din acest punct de vedere, n scopul aplicarii acesteia pentru rezolvarea problemei de plasare. S-a studiat mai ales modul n care partitionarea pe baza taieturii minime poate fi aplicata pentru circuitele FPGA, avndu-se n vedere i alte metode de partitionare, cum este partitionarea

prin metoda calirii simulate i partitionarea prin utilizarea algoritmilor genetici.

2) Maparea tehnologica. Pentru fiecare portiune a sistemului care va fi implementata ntr-un singur circuit FPGA, logica trebuie divizata suplimentar n fragmente, astfel nct fiecare fragment sa aiba o dimensiune suficient de mica pentru a putea fi implementata ntr-un singur bloc logic al circuitului. Aceasta divizare se realizeaza n cadrul etapei de mapare tehnologica. Maparea tehnologica este operatia de transformare a unei reprezentari logice

cu nivele multiple ntr-o interconexiune de elemente logice dintr-o biblioteca data de elemente. Aceasta operatie este o etapa importanta a sintezei sistemelor numerice cu ajutorul circuitelor FPGA. Calitatea circuitelor sintetizate depinde n mare masura de aceasta etapa.

Maparea tehnologica implica doua operatii distincte: recunoaterea echivalentei logice ntre doua functii logice, i determinarea setului optim de porti echivalente din punct de vedere logic, ale caror interconexiuni reprezinta circuitul original. Prima operatie, numita potrivire, implica testarea echivalentei i asignarea intrarilor. Att testarea echivalentei, ct i asignarea intrarilor sunt operatii complexe din punct de vedere computational. A doua operatie, numita acoperire, implica gasirea unei reprezentari alternative a unei retele booleene utiliznd elemente logice care au fost selectate dintr-un set disponibil.

3) Plasarea. n cadrul plasarii, fiecarui fragment care va fi implementat ntr-un bloc logic trebuie sa i se asigneze un bloc liber din cadrul circuitului. Plasarea este o etapa importanta a procesului de proiectare, deoarece n aceasta etapa se iau cele mai importante decizii. Pentru plasare trebuie minimizate anumite functii obiectiv, cu conditia respectarii unor restrictii impuse de proiectant, de procesul de implementare sau de stilul de proiectare. Cea mai importanta functie obiectiv este lungimea totala a conexiunilor, care reprezinta o metrica utilizata pe scara larga pentru aprecierea calitatii plasarii.

Exemple de restrictii sunt evitarea suprapunerii celulelor sau cerinta ca celulele sa fie plasate ntr-o anumita suprafata rectangulara. O plasare este acceptabila daca se poate obtine o rutare completa a circuitului n cadrul suprafetei date. n cadrul tezei obiectivul principal al plasarii este cel al asigurarii rutabilitatii circuitului.

4) Rutarea. Fiind dat un set de celule i porturile acestora, un set de conexiuni i locatiile celulelor (obtinute n urma procesului de plasare), rutarea consta n determinarea cailor adecvate pentru interconexiunile dintre seturile de pini. Aceste cai adecvate minimizeaza functia obiectiv data, supusa unor restrictii. Restrictiile pot fi impuse de proiectant, de procesul de implementare, de tipul circuitului sau de stilul de proiectare. Ca exemple de functii obiectiv se pot aminti reducerea lungimii totale a interconexiunilor, sau evitarea problemelor datorate ntrzierilor semnalelor. Problema de rutare este divizata de obicei n doua subprobleme: rutarea globala i rutarea detaliata. Obiectivul rutarii globale este de a se elabora un plan de rutare astfel nct fiecare conexiune sa fie asignata unor regiuni particulare de rutare, n timp ce se ncearca minimizarea unei functii obiectiv date (de obicei o estimare a lungimii totale a conexiunilor). Rutarea detaliata se aplica apoi pentru fiecare regiune de rutare, i fiecarei conexiuni i se asigneaza piste particulare de rutare.

ANEXEArhitectura CLB pentru Xilinx Spartan II

CLB-ul consta din 2 parti identice (slides) fiecare parte continand un LUT, logica pentru propagarea transportului si elementelor de memorie.

O parte include 2 celule logice bazate pe LUT de 4 biti, intrari F1-F4, G1-G4. Fiecare LUT poate fi folosit si ca registru de deplasare pe 16 biti sau memorie ROM sincrona pe 16 biti. O adunare se face acceptand transportul carry in care va transporta primul etaj de carry control logic, apoi pe al doilea fiind generat astfel semnalul carry out.

Logica contine si o poarta XOR. Pentru constructia unui sumator poarta XOR este folosita pentru generarea sumei, iar LUT pentru calcularea trasportului.

Fiecare parte include un multiplexor, pentru combinarea rezultatelor celor 2 generatoare de functii. Un alt multiplexor combina iesirile celor 2 multiplexoare, rezultand astfel iesirea unui bloc CLB. Fiecare bistabil poate fi configurat ca si latch sau bistabil de tip D (sincron) existand intrari pentru clock, clock enable.

Fig.3 Arhitectura CLB pentru Xilinx Spartan II

Actel AcceleratorFamilia de circuite accelerator are 3 tipuri de intercoxiuni locale:

- fast connect

- direct connect

- carry connect

Fast connect ofera interconectarea in plan orizontal a doua module logice dintr-un super cluster sau catre super clusterul imediat anterior.

Carry connect ofera conexiuni pentru propagarea transportului intre super clustere.

Direct connect ofera interconectivitate doar in interiorul superclusterului si leaga o celula de tip C de una de tip R din vecinatate.

Conexiunea direct connect nu contine dispozitive antifuse de aceea intarzierile pe acest tip de conexiune sunt cele mai mici.

Interconectarea globala este oferita cu ajutorul unor canale segmentate. Exista trasee atat orizontale cat si verticale, care strabat intregul circuit, majoritatea sunt insa segmentate, segmentele avand lungimi diferite. Circuitul ofera 3 tipuri de semnale globale.

- HTLC (hard-wired clock) permite alimentarea cu un Clock comun a celulelor de tip R din intregul circuit. Un numar de 4 semnale de clock pot fi routate pentru Clock, CLEAR, PRESET sau ENABLE de la orice celula R sau catre orice intrare dintr-o celula C.

- GCLR (Global CLEAR) si GPRE (Global PRESET) sunt disponibile pentru toate celulele de tip R si pot fi utilizate (preluate) de la orice pin de intrare/iesire.

BIBLIOGRAFIE

1. Dogaru, R. Dogaru - Sisteme Reconfigurabile de Calcul- Lucrari Practice, Editura Printech 2009

2. A.L. Abbott, P. Athanas, L. Chen, and R. Elliott, Finding Lines and Building Pyramids with Splash 2, inProceedings, IEEE Workshop on FPGAs for Custom Computing Machines , Napa, CA, April 1994, pp. 155161

3. Chu P.P., FPGA prototyping by Verilog examples, John Wiley and Sons, 2008.4. Trimberger S., Redefining the FPGA for the next generation, International Conference on Field Programmable Logic and Applications, FPL 2007, Amsterdam, Olanda, august 2007.14