Sunteți pe pagina 1din 14

UNIVERSITATEA VALAHIA TRGOVISTE

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

Masterand: Bobe Mihai Danut

SISTEME RECONFIGURABILE

CUPRINS

INTRODUCERE

Implementarea unei memorii ROM


Circuitele FPGA

Familiile de circuite FPGA Spartan-3..................................................................................................................8


Etapele de proiectare cu circuite FPGA.............................................................................................................10

ANEXE

11

Arhitectura CLB pentru Xilinx Spartan II..........................................................................................................12


Actel Accelerator................................................................................................................................................12

INTRODUCERE

n 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 ROM

Memoria 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
5

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
7

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-3

Aceast 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 FPGA


Proiectarea 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
10

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.

ANEXE
Arhitectura 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
11

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 Accelerator
Familia de circuite accelerator are 3 tipuri de intercoxiuni locale:
- fast connect
- direct connect
- carry connect

12

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

13

2. A.L. Abbott, P. Athanas, L. Chen, and R. Elliott, Finding Lines and Building
Pyramids with Splash 2, in Proceedings, 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

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