L’obiettivo del corso era quello di coinvolgere gli studenti in uno studio approfondito di nuovi e più efficienti strumenti di sviluppo per la progettazione di sistemi di controllo basati su dispositivi a logica programmabile (FPGA e CPLD).
Maggiore approfondimento è stato dato alla trattazione degli argomenti che rientravano nei campi applicativi dei microprocessori, delle interfacce per la trasmissione dati e per la generazione di segnali video.
Durante il corso sono state eseguite molte esperienze pratiche che hanno mostrato il funzionamento di schede elettroniche equipaggiate con FPGA Altera.
Inoltre per la descrizione dell'hardware basato su Logiche Programmabili sono stati introdotti vari Tools e linguaggi per lo sviluppo e la simulazione dei circuiti elettronici realizzati durante il corso.
Di seguito ripoto il programma dettagliato del corso ch ho tenuto presso l'ITI Archimede di Catania.
1° Lezione
Introduzione al corso: uso di LogicFriday e LogicWorks
Esercitazioni con LogicFriday: una rete logica per identificare numeri primi
Tabelle della verità, funzioni logiche e schemi con porte logiche tradizionali
Nozioni di base per la realizzazione di una semplice CPU - Simple as Computer
Schema a blocchi della CPU SAP-1
Descrizione del Full Adder
Tabella della verità del Full Adder con LogicFriday
Minimizzazione del Full Adder
Schema logico e simulazione del Full Adder con LogicFriday
Full Adder con LogicWorks5
Gestione librerie e creazione del modulo Full Adder con LogicWorks5
Realizzazione del Full Adder a 4bit e simulazione
2° Lezione
Full Adder e display 7seg sn7447
Modello LW5 completo di FA 4bit e driver 7seg
Creazione primo codice VHDL: hex7seg.vhd
Full Adder con sn74283
Adder / Subtractor con sn74283 con segno
3° Lezione
Introduzione al liguaggio di descrizione hardware VHDL
ALU - Arithmetic and Logic Unit
Funzioni aritmetico/logiche della ALU sn74181
Struttura di una ALU
ALU 4bit con sn74181
ALU 8bit con sn74181
ALU e Registri
Funzioni logiche/aritmetiche della ALU
Descrizione hardware in VHDL della ALU 8bit
4° Lezione
FlipFlop D e Registri Latch in VHDL
Encoder in VHDL
Decoder in VHDL
5° Lezione
Unità di controllo di una CPU
Program Counter in VHDL
Microcodice e ROM program in VHDL
Simulazione della CPU SAP con LogicWorks5
6° Lezione
Test in LAB: Simulazione contatore 0..59 in VHDL
Installazione Quartus II – Altera Web Edition
Guida introduttiva a Quartus II
Creazione di un progetto Quartus in modalità schematic entry
7° Lezione
Creazione di un progetto Quartus in VHDL entry
Descrizione hardware di una interfaccia standard Video VGA
Segnali di sincronismo video per un VGA controller
Esempio di codice VHDL per un VGA controller
Esempio di codice VHDL per un generatore di barre a colori VGA
8° Lezione
Esempio di codice VHDL - Pallina a colori con rimbalzo tipo Pong per VGA
Creazione di un file Rom MIF per la memorizzazione di caratteri ASCII
Codice VHDL e generazioni di caratteri ASCII da rom (file.mif)
9° Lezione
Descrizione e principio di funzionamento di una macchina a stati finiti
Macchina a stati di Moore
Macchina a stati di Mealy
Diagramma a bolle per una macchina a stati finiti
Progettazione di una macchina a stati finiti in VHDL
Realizzazione di un LCD controller per HD44780 in VHDL
10° Lezione
Interfacce per la comunicazione seriale tra dispositivi e trasmissione dati
Descrizione e implementazione di interfacce seriali sincrone I2C e SPI
Descrizione e implementazione di interfacce seriali asincrone in VHDL
11° Lezione
Codice VHDL per un modulo UART TX
Codice VHDL per un modulo UART RX
Progetto completo di un controller UART RX-TX con Quartus II
12° Lezione
Specifiche dei microcontrollori RISC commerciali
13° Lezione
Codice VHDL per la descrizione di un microcontrollore RISC custom
Scrittura di firmware per un microcontrollore RISC customizzato SOC
14° Lezione
Test di verifica basato su 45 quesiti molti dei quali a risposta aperta.
Correzione del test.