Tesi Robotica Analisi, progettazione e implementazione... | Page 78
i
i
“LP_Tesi” — 2013/10/17 — 18:27 — page 78 — #78
i
78
3.2
i
3. SISTEMI EMBEDDED
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.
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 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:3.2.1).
Una cella logica (logic cell) (Fig:3.2.2) può essere configurata per svolgere una
semplice funzione, e un interruttore programmabile può essere personalizzato
per consentire la connessione tra le varie celle logiche.
i
i
i
i