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