Sunteți pe pagina 1din 14

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: 2016 - 2017

Profesor coordonator: conf.dr.ing. Iulian BREZEANU

Masterand: Corina Sirbulescu (Movila)

1
SISTEME INCORPORATE
RECONFIGURABILE

2
CUPRINS

INTRODUCERE ....................................................................................................................... 4

Implementarea unei memorii ROM ........................................................................................... 5

Circuitele FPGA ......................................................................................................................... 6

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


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

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


Actel Accelerator ..................................................................................................................13

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

4
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

5
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

6
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

7
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

8
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.

9
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.

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

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

12
Actel Accelerator

Familia 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.

13
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, 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