Tesi Robotica Un co-processore per Stereo-Matching: Architettura | Page 20
i
i
“LP_Tesi” — 2011/9/9 — 21:20 — page 20 — #20
i
1.2. FPGA
1.2
i
20
FPGA
Per il presente progetto si è deciso di utilizzare dispositivi di tipo FPGA, sono
stati esclusi durante la scelta i dispositivi di tipo ASIC perché essendo il nostro
un prototipo che necessitato di molte simulazioni prima di poter funzionare,
questi non permettono una ricompilazione al volo di tutto il programma e soprattutto la riutilizzabilità nel caso di programmazione errata. Sono stati esclusi inoltre i dispositivi di tipo Microcontrollori e SoC perché appunto dotati
di microprocessore, microprocessore che per quanto potente non arriva ancora
alle prestazioni desiderate per un applicazione utile (basti pensare che su di PC
dual-core da 2Ghz il programma in matlab, per essere eseguito su di una singola
coppia di immagini necessita di tempo dell’ordine dei minuti).
Per questo motivo gli FPGA risultano la scelta ottima, il loro scopo appunto
è la prototipazione di nuovi dispositivi, e come se non bastasse utilizzano il
paradigma della programmazione Hardware, che utilizzata nel modo appropriato
permette di avere performance impossibili da ottenere con un normale PC.
Esistono varie board di formato e dimensione sempre diverso, e sul mercato
odierno sono due i principali linguaggi di programmazione utilizzati per sviluppare applicazioni: Verilog e VHDL. Questi due linguaggi insieme occupano tutto
il mercato odierno della programmazione hardware in parti più o meno equivalenti. Per cominciare a programmare occorre una buona fase di training in
cui vengono spiegati i meccanismi che gestiscono il paradigma della descrizione
hardware. Il trucco sta nell’entrare nella mentalità del programma, normalmente per capire cosa fanno certe righe di codice basta leggerle in sequenza,
magari scorrendole con il dito, e aspettare di arrivare alla fine per capire l’output, questo è possibile in base al fatto che un programma su di un PC quando
va in esecuzione viene caricato in memoria centrale, scorso da un line pointer
e caricato sul processore che esegue i conti. Nella descrizione Hardware questo
discorso non ha senso, tanto per cominciare non si ha a disposizione una memoria centrale, ne un processore, tutto ciò che serve per eseguire un programma
deve essere istanziato, dalla più grande ram al più piccolo registro, non essendo
legati all’architettura della macchina su cui gira il programma, questi possono
creare un architettura ottimizzata in modo da avere performance eccezionali
rispetto a quelle di un dispositivo General Purpose.
In generale gli FPGA possono essere visti come delle reti logiche connesse da
interruttori (Fig:1.2.1).
i
i
i
i