Corso introduzione alla programmazione FPGA con VHDL – versione 1.0
Obiettivi
Il corso si propone di fornire le nozioni basilari della programmazione di dispositivi programmabili di tipo FPGA.
Sarà inizialmente presentata la metodologia per la programmazione di firmware, illustrando i vari stadi: la descrizione dell'algoritmo tramite linguaggi ad alto livello, la simulazione, la sintesi, l'implementazione ("place and route"), il "timing constraint" e il debug in hardware. Verranno presentati gli strumenti software forniti dai principali produttori di dispositivi FPGA.
Il corso verterà principalmente sull'insegnamento del linguaggio ad alto livello VHDL, mostrando non solo la sintassi, le istruzioni e i costrutti tipici ma anche esempi pratici atti a mostrare la corretta descrizione di algoritmi specifici e strutture digitali.
L'insegnamento del linguaggio vero e proprio tratterà la sintassi base: tipi, operatori, istruzioni concorrenti e sequenziali, gerarchia.
Contemporaneamente verranno approfonditi i metodi di corretta descrizione in linguaggio VHDL di circuiti combinatori, sincroni e di macchine a stati finiti, attraverso esempi pratici.
Verrà inoltre spiegato e affrontato il problema dei "timing costraints" e della relativa "timing closure" di un firmware, evidenziando le criticità e le corrette metodologia nell'affrontare il problema.
Il corso terminerà con il mostrare due tecniche distinte di verifica dei progetti in FPGA: la simulazione pre-implementazione dell'algoritmo e la verifica in hardware tramite gli analizzatori di stati logici integrati nel firmware stesso.
Target
Il corso è rivolto ai dipendenti INFN, principalmente giovani ricercatori e tecnologi, con limitata o nessuna esperienza nel campo della programmazione di FPGA e nel disegno di firmware. Il corso e' anche rivolto pure a chi avendo una minima esperienza ritenga necessario approfondire la corretta metodologia di disegno, implementazione e verifica di progetti in FPGA.
Metodologia didattica
Lezioni teoriche con sussidi didattici (audiovisivi, etc.) ed esempi pratici con l’ausilio di software su Personal Computer. Ogni lezione è divisa in due parti: una a carattere piu' teorico descrittivo e la seconda con esempi pratici, simulazioni ed esercizi con l'utilizzo di software commerciali e dispositivi hardware con FPGA .
Responsabile
R.Travaglini
Docenti
G.Balbi, D.Falchieri, I.Lax, R.Travaglini