Tesi Robotica Un coprocessore per Stereo-Matching: Profiling ... | Page 19

i i “MF_Tesi” — 2011/9/12 — 11:39 — page 19 — #19 i 1.2. FPGA i 19 -FPGA Field Programmable Gate Array -SoPC System on Programmable Chip I PLD rappresentano l’evoluzione temporale della tecnologia nelle logiche programmabili, dove si è partiti da un semplice array di porte AND e OR i cui ingressi e le cui uscite possono opportunamente essere collegate al momento della programmazione (PAL, Programmable Array Logic). Si è poi passati all’utilizzo di macrocelle, in grado di eseguire funzioni sempre più complesse, inizialmente disposte solamente in prossimità dei piedini di uscita del dispositivo (GAL, Gate Array Logic). Infine, le macrocelle, disposte su tutta l’area disponibile, hanno dato vita a dispositivi logici programmabili più complessi, i CPLD, (Complex Programmable Logic Device). Parlando di FPGA, oramai possiamo con certezza affermare, che siano lo strumento preferito dai progettisti per realizzare sistemi embedded. Esse consistono fondamentalmente in un array di blocchi logici e di interconnessioni di linea e di colonna, che una volta programmate mettono in comunicazione tra loro i blocchi logici e i blocchi programmabili di I/O disposti sulla periferia del chip stesso. I motivi di questo indiscusso successo degli FPGA sono molti. Sicuramente i principali risiedono nel fatto che esse sono compatte con un costo relativamente basso e sopratutto facilmente programmabili per mezzo di codici software come ad esempio il VHDL, il Verilog o il più recente Bluespec SystemVerilog. 1.2 FPGA L’FPGA sta diventando uno dei più importanti strumenti per circuiti digitali e la chiave del suo successo risiede sia nella sua programmabilità, che consente di realizzare immediatamente qualsiasi funzione, con bassi costi di progettazione, in quanto non è richiesta la realizzazione di uno specifico design come per gli ASIC. Questa maggior flessibilità in fase di progettazione si paga in termini di area non utilizzata perché gli FPGA occupano un’area almeno dieci volte più grande. Inoltre, questi dispositivi programmabili risultano almeno tre volte più lenti degli ASIC e, la bassa velocità con cui viaggia il segnale è dovuta principalmente al fatto che i diversi blocchi logici all’interno di un FPGA sono connessi attraverso dei blocchi programmabili che presentano al loro interno elementi (componenti) attivi il cui attraversamento introduce un grosso termine di ritardo, mentre nelle i i i i