Sunteți pe pagina 1din 4

1.

)
a.) Ce este un FPGA
Un FPGA (Field Programmable Gate Array) este un circuit integrat digital configurabil, de către utilizator, după
ce a fost fabricat (spre deosebire de dispozivele a căror funcție este implementată in procesul de fabricație).
Configurarea FPGA se face, in general, cu ajutorul unui limbaj de descriere hardware HDL, similar cu cel folosit
pentru dispozivele ASIC, dezvoltându-se recent și compilatoare care traduc intructiuni din limbajul C în limbaje HDL.
Un astfel de compilator este Impulse C.

FPGA-urile sunt alcătuite din blocuri logice configurabile (programabile) legate între ele de o serie de conexiuni
configurabile la rândul lor.
FPGA logică programabilă multi-nivel, fără limitări, cu elemente logice şi interconexiuni programabile
26 septembrie 1989 – Ross Freeman patentează conceptul de FPGA bazat pe SRAM

FPGA - Field Programmable Gate Array


Introdus în 1985 de Xilinx
Arhitectură similară CPLD:
– logic block
– Interconnection
– Input/output
Totul programabil de utilizator!
Mai multe tehnologii de realizare: SRAM, Flash, antifuse

Componente PFGA
Logic Element sau CLB-Configurable Logic Block:
 implementează funcţii logice de amploare variabilă
 pot fi de ordinul a câtorva porţi logice (fine-grained)
 Sau pot fi de ordinul unor blocuri de însumare sau chiar mai complexe (coarse-grained)
Interconexiunile:
 Permit conectarea programabilă a elementelor logice
 organizate de obicei în canale (chanels) sau alte unităţi
 în mod tipic se oferă mai multe tipuri de interconexiuni în funcţie de distanţa dintre blocurile logice care
participă la conexiune
IOB – IOBlock:
 Sunt pinii de intrare-ieşire ai circuitului
 în general programabili să fie intrări, ieşiri sau bidirectionli
 Oferă facilitati suplimentare cum ar fi “Low power” sau “High speed connections

Procesul de design al unui FPGA implică decizii esenţiale:


 Câte LE / FPGA şi câtă funcţionalitate / LE?
 Câte canale de rutare / canal?
 Câte switch-uri?
 Câte porturi de IO?
 Cât de “mare” să fie FPGA-ul?
 Cât din FPGA să fie expus utilizatorului?
 Ce tool-uri / compilatoare / limbaje să fie folosite?
Tipuri de reconfigurare FPGA :
Statică: aplicaţia nu rulează în timpul configurării
Parţial statică: porţiuni ale aplicaţiei sunt multiplexate în timp pe acelaşi FPGA fabric
Dinamică: aplicaţia se schimbă în funcţie de evoluţia mediului extern

CPLD - Complex Programmable Logic Device


Extinde conceptul de PLD, care oferea logică limitată
Bazat pe macrocelule, blocuri IO şi reţea de interconectare
O macrocelulă e formată din mai multe PLA-uri şi bistabile
Totuşi, logica rămâne limitată faţă de FPGA-uri
Folosite ca şi glue logic sau ca şi dispozitive de configurare pentru FPGA-uri

b.) Tipuri de FPGA


După modul de programare:
 Run-time: SRAM-based
 Permanent: antifuse, flash-based
Granularitate:
 Fine-grained: un LE alcătuit din câteva porţi şi un registru
 Coarse-grained: un LE alcătuit din ALU multibit şi regiştri
 Platform FPGA: conţine mai multe tipuri de structuri pentru implementarea optimă a oricărei părţi
dintr-un sistem; procesor, memorie, cel puţin o magistrală

c.) FPGA vs. VLSI(ASIC)
ASIC:
 Viteză superioară, fiind hardware optimizat
 Consum redus, fiind hardware optimizat
 Capacitate mare de integrare, preţ mic la volume mari
 Timp mare de execuţie (luni de zile)
 Inflexibilitate (optimizate pentru o aplicaţie)
FPGA:
 Viteză mai mică, consum mai mare, nefiind optimizate pentru o anume aplicaţie
 Flexibilitate (design-ul poate fi schimbat), preţ relativ mic
 Timp mic de configurare (zile)
Asic (custom chip)

d.) ce inseamana custom VLSI


Very-large-scale integration (VLSI) is the process of creating integrated circuits by combining thousands of
transistors into a single chip. VLSI began in the 1970s when complex semiconductor and communication
technologies were being developed. The microprocessor is a VLSI device.

2. LUT - look up table


A^B^C^D=Out
 Fiecare tabelă LUT operează 4 intrări binare (A, B, C, D)
 Ieşirea este un singur bit (Out)
 Permite generarea oricărei funcţii binare de 4 intrări
2 la 2 la 4 = 64K funcţii (4096 pattern-uri)

3. Element Logic?
 Fiecare element logic LE are o singură ieşire binară
 Conexiunile dintre LE sunt programabile (tracks)
 Interconexiunile (tracks) sunt grupate în canale (channels)

3.Linii lungi?
 Liniile lungi se obţin prin interconectarea mai multor segmente
 Fiecare MUX adaugă la întârzierea semnalului
 Liniile lungi sunt sensibile la perturbaţii externe
 Se utilizează răsucirea liniilor (wire twisting)!

5.De ce e mai bine linii bidirectionale, decat directionale?


Problemă la liniile bidirectionale:
jumătate dintre buffer-ele tristate rămân neutilizate si buffer-ele domină suprafaţa FPGA

Liniile direcţionale implică jumătate dintre interconexiunile necesare pentru linii bidirecţionale!
Liniile bidirecţionale implică resurse considerabile pentru rutare (switch box)!
Liniile direcţionale implică doar jumătate din switch box-urile necesare rutării liniilor bidirecţionale

6.Structuri de FPGA (una dintre ele)


-symmetrical array (Xilinex Virtex, Atmel AT40K)
 Matrice 2d de CLB-uri integrate într-un set de interconexiuni orizontale şi verticale
 Rutare asigurată de switch-uri la intersecţia dintre o linie orizontală şi una verticală
-row-based (Actel ACT3)
 Un FPGA row-based constă din alternanţe de linii de blocuri logice (sau macrocelule) şi canale de
comunicaţie
 Spaţiile dintre blocurile logice sunt canalele de comunicaţie
 Compus din bistabile C si S
-hierarchy-based (Altera Stratix II, long line routing: Actel ProAsic, island routing: Xilinx, cellular routing: Atmel
6000, Xilinx XC6200, row routing: Actel Act1, ProAsic)
 Similare cu symmetrical arrays, macrocelule aranjate într-o matrice 2d
 Nu există spaţiu de rutare între macrocelule
 Interconexiunile sunt configurate în celule
-sea-of-gates
 Macrocelule plasate ierarhic în circuit
 Elemente cu granularitate mică la nivele de bază în ierarhie, formează elementele următorului nivel
 FPGA-urile Altera au 2 nivele ierarhice

7.Abstractizari in design (top-down, bottom-up)


Top-Down:
 adauga noţiuni funcţionale la fiecare nivel de abstractizare
 decizii luate cu un minim de informaţie: pot fi mai multe alternative de design la fiecare pas de
abstractizare
 alege pe cea care indeplineşte condiţiile de performanţă, consum, suprafaţă, energie şi cost
Totuşi, alegerea alternativei optime nu se poate face, de cele mai multe ori, până nu există un design
complet! Atunci intervine strategia

Bottom-up:
 rafinează soluţiile la fiecare pas
 corelează specificaţiile iniţiale cu costurile

8.Legea lui Rent


N p = K p ⋅ N gβ
 Np – numărul de pini
 Ng – numărul de porţi logice (gates)
 β – constanta lui Rent
 Kp – constantă de proporţionalitate
 Parametri determinaţi empiric, design-uri de referinţă.
 Pentru main-frame-urile IBM, β = 0,6, Kp = 2,5 [Wolf]
 Pentru procesoarele moderne β = 0,45(!!) şi Kp = 0,82 [Wolf]
 Perimetrul unui circuit creşte cu o rată de Ng β unde β>0.5
 FPGA-urile nu au suficienţi pini!

9. Arhitecturi reconfigurabile
a) masina Fix-Plus (1959)
b) masina lui Ramming (1977, Univ. Of Dortmund)
c) masina Xputer (inceputul anilor 80)
d) masina PAM (1989)
e) masina SPLASH (1990)
Altele: PRISM, GARP, DISC, DPGA

10.
Reconfigurable computer (calcul reconfigurabil) - is a device which computes by using post fabrication spatial
connections of computer elements.

Tipuri de paralelism
 MIMD – Multiple Instruction Multiple Data (la nivel de aplicaţie)
 SIMD – Single Instruction Multiple Data (la nivel de buclă de aplicaţie)
 ILP – Instruction-Level Parallelism (la nivel de instrucţie)
 Pipeline (la nivel de buclă)
 La nivel de bit
Procesoarele de uz general folosesc doar un singur nivel de paralelism! Sistemele reconfigurabile pot folosi mai
multe nivele de paralelism!
Un procesor superscalar trebuie să estimeze graful de date la execuţie, un sistem reconfigurabil estimează graful
de date la compilare
 Fără limitări legate de unităţile funcţionale
 Fără supraîncărcare datorată logicii de control
 Fără limitări de dimensiune de pagină
Locul intre sistemele de calcul:
ASIC (custom chip) oferă înaltă performanţă cu costul inflexibilităţii
Procesorul este foarte flexibil dar nu adaptat la particularităţile aplicaţiei
Hardware-ul reconfigurabil (FPGA – standard chip) reprezintă un compromis reuşit
Domenii de utilizare:
Prototipare rapidă
Fără timpi morţi între finalizarea design-ului şi obtinerea circuitului final (funcţional)
Design-ul poate fi programat în FPGA şi testat imediat
Trecerea de la prototip la produsul final comercial este mult mai uşoară şi mult mai usor de negociat
Acelaşi FPGA poate fi utilizat pentru realizarea mai multor design-uri fiind astfel mult reduse costurile materiale
In-System Customization
Timpul de punere pe piaţă înseamnă un produs funcţional dar cu minimă funcţionalitate
Aceasta reclamă posibilitatea de upgrade, care nu poate fi aplicată la ASIC-uri
In-System Customization înseamnă upgrade post-vânzare
Computaţie multi-mod
Utilizăm o paletă de dispozitive electronice care trebuie interconectate
Parametrii de interconectare sunt diferiţi pentru utilizatori diferiţi ai aceluiaşi dispozitiv
O platformă reconfigurabilă poate asigura interfaţa potrivită precum şi posibilităţi de extindere
Computaţie adaptivă
Ubiquitous and Pervasive Computing – Computer Anytime Anywhere
Parametri impredictibili şi variabili fac imposibilă o strategie de tip compile-time
O platformă reconfigurabilă satisface cerinţele adaptabilităţii run-time

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