Slides del corso fornite dal docente. Data sheets e Note Applicative relative a
dispositivi e argomenti menzionati nel corso fornite dal docente
Obiettivi Formativi
Il corso si propone di fornire le basi teoriche e pratiche per la progettazione di sistemi digitali ad alta velocità e l'impiego di dispositivi digitali programmabili di tipo system-on-chip.
Lo studente, alla fine del corso, saprà:
- progettare un PCB per sistemi veloci
- realizzare processing digitale in una FPGA,
- utilizzare le periferiche (memoria, PLL, IO veloci, etc) di una FPGA
- programmare un Sistem on Chip con FPGA e processore.
- utilizzare l'ambiente di sviluppo Quartus Prime di Intel
Prerequisiti
Circuiti elettronici elementari: ELETTRONICA GENERALE, ELETTRONICA APPLICATA Circuiti logici di base, espressioni logiche elementari: ELETTRONICA DEI SISTEMI DIGITALIBasi di programmazione VHDL e sintesi di circuiti sequenziali: LABORATORIO DI ELETTRONICA DIGITALE
Metodi Didattici
- Lezioni ex cathedra
- Esercitazioni in aula
- Attività di laboratorio e relativo sostegno.
- Seminari di esperti della materia
Altre Informazioni
-
Modalità di verifica apprendimento
L'esame consiste in una prova orale. La prova orale può essere sostituita da una prova scritta di esonero sostenuta a fine corso.
Lo studente dovrà rispondere a domande atte a verificare la conoscenza teorica su:
- progettazione di un PCB per sistemi veloci
- realizzazione di processing digitale in una FPGA,
- utilizzo di memoria, PLL, IO veloci, etc di una FPGA
Lo studente sosterra esercizi finalizzati a verificare la sua capacità nel:
- programmare un Sistem on Chip con FPGA e processore.
- utilizzare l'ambiente di sviluppo Quartus Prime di Intel
Programma del corso
FPGA e System on Chip
Panoramica sulle architetture dei dispositivi digitali programmabili. Cenni a CPU, GPU, Array di Processori, FPGA.
Elaborazione digitale: Potenza di calcolo, capacità di memoria, capacità di trasferimento dati. Esempi. ASIC, Gate Array, FPGA, System on Chip. Architettura dettagliata FPGA. Gerarchia dei bus e impatto sulle temporizzazioni. FPGA-to-ASIC.
Data Processing nella FPGA: Hardware dedicato Fixed/Floating Point. Rappresentazione numerica finita. Rappresentazione frazionaria e floating point. Operazioni matematiche veloci in FPGA: Somma, inversione di segno, sottrazione, valore assoluto, moltiplicazione. Tecniche per contenere la crescita di parola e controllo dell’overflow.
Esempi di implementazione di filtri FIR veloci. Architetture di processing parallele e in pipeline. Stadi di pipeline e temporizzazione. Tecniche di Retiming.
Programmazione delle FPGA. Richiami di VHDL. Entity, Process, HW combinatorio e sequenziale. L'ambiente Quartus Prime. Impostazione di un progetto, scelta del dispositivo, file VHDL e creazione del simbolo grafico, utilizzo del file grafico. Primitive di ingresso/uscita. Compilazione: Analisi e sintesi, Fitting, analisi temporale, generazione del file di configurazione.
Constraints: Frequenza di lavoro, pin-out del dispositivo, correnti, slew/rate, standard elettrico del pin.
FPGA come System on chip: Blocchi dedicati. PLL, memorie, Serializzatori/Deserializzatori, DSP, Blocchi di IO, compact PCI, processori embedded SW e HW.
Il PLL nelle FPGA. Utilizzo del PLL come generatore di frequenza di clock e come controllo di fase del clock. Utilità del controllo di fase per facilitare il time-closure. Architettura del PLL in FPGA Altera. Esempi. Uso della IP del PLL in Quartus Prime.
Memorie nella FPGA. Blocchi M9K, uso della IP Altera, configurazione Dual/single Port, configurazione Dual/single clock. Settaggio dei parametri di configurazione (depth, width, registro in uscita, ect), file di inizializzazione. Pipeline di lettura/scrittura della memoria.
Bus seriali veloci: Carrellata storica dei vecchi bus paralleli. Vantaggi della trasmissione differenziale. Descrizione del driver LVDS e standard LVDS. Consumo di potenza e confronto con CMOS. Rumore sull'alimentazione. Esempio AD9234. Codifica 8/10. Cause di malfunzionamento, diagramma a occhio, istogramma del jitter. Preenfasi, equalizzazione, reclocking. Serializzatore/deserializzatore. Architettura Ser/Des nelle FPGA Altera.
Implementazione specifica del SOC Altera Cyclone V. Caratteristiche del processore, struttura della macro HW, interfacce di comunicazione con l’esterno, interfacce di comunicazione con la parte FPGA del SOC.Uso del processore nel SOC: Flusso di lavoro, definizione delle periferiche da utilizzare. Generazione dei files necessari alla programmazione del sistema: Device Tree Blob e BSP. Impostazione del sistema operativo, creazione di software che sfruttino le risorse presenti.
Durante le lezioni verrà realizzato in VHDL un filtro FIR veloce, e sarà utilizzato come esempio per illustrare le corrispondenti caratteristiche della FPGA, come: calcoli matematici veloci, controllo della crescita di parola, pipeline di calcolo, uso della memoria per impostare i coefficienti, progetto della macchina a stati di controllo, impostazione del PLL, etc.
Problematiche di progetto di sistemi digitali ad alta velocità:
Linee di trasmissione digitali: impedenze tipiche, meccanismi di riflessione, diagrammi di Bergeron, terminazioni. Rumore di commutazione e forward/reverse cross-talk: cause, effetti, contromisure. Influenza del "package". Sistemi sincroni: distribuzione di clock (PLL), clock "skew".
Esercitazioni di Laboratorio: Gli studenti, in laboratorio, utilizzeranno una scheda Altera Cyclone V System on Chip, sulla quale, tramite ambiente Altera Quartus, implementeranno il filtro FIR analizzato a lezione e quindi lo modificheranno e miglioreranno per implementare nuove caratteristiche. Sarà implementato un software lato CPU del sistema SoC che interagisca con la parte FPGA e con le risorse di connettività del sistema (Rete, terminale seriale)