Documente Academic
Documente Profesional
Documente Cultură
PROIECT LA DISCIPLINA
SISTEME INCORPORATE
ANUL II
1
SISTEME INCORPORATE
RECONFIGURABILE
2
CUPRINS
INTRODUCERE ....................................................................................................................... 4
3
INTRODUCERE
4
Implementarea unei memorii ROM
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
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.
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.
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
12
Actel Accelerator
13
BIBLIOGRAFIE
14