Vai al contenuto

Videocorso VHDL per FPGA CGFA

Da zero a progettare circuiti digitali in VHDL, simularli gratis con GHDL e portarli su una FPGA

  • Partenza: Da zero
  • 16 ore con gli esercizi
  • 10 lezioni in 3 livelli
  • 2 lezioni gratis

A chi serve

Studenti di elettronica, automazione e informatica, tecnici e appassionati che vogliono progettare hardware digitale con un linguaggio rigoroso, molto usato in Europa

Cosa serve per iniziare

  • Un computer Windows, Mac o Linux
  • Nessuna esperienza di programmazione: le basi dei numeri binari le spieghiamo noi
  • Facoltativo: una scheda FPGA economica; per seguire il corso basta il simulatore

Cosa installare

GHDLSimulatore VHDL gratuito e open source (ghdl.github.io/ghdl). Si usa da terminale; su Windows si installa con il pacchetto pronto o da MSYS2, su Linux dai pacchetti della distribuzione
GTKWaveVisualizzatore gratuito di forme d'onda: legge i file creati da GHDL e mostra i segnali nel tempo
EDA PlaygroundSito gratuito (edaplayground.com) per scrivere e simulare VHDL direttamente nel browser, senza installare nulla; serve una registrazione gratuita per salvare
Un editor di testoVisual Studio Code è gratuito (code.visualstudio.com); cerca un'estensione per VHDL per avere i colori e i suggerimenti
Yosys + nextpnr, Vivado, Quartus (facoltativi)Per programmare una scheda: la catena open source (con il plugin per GHDL) per Lattice iCE40 ed ECP5, oppure gli ambienti ufficiali AMD Vivado e Intel Quartus, con edizioni gratuite per i chip piccoli

A cosa ti serve

  • Progettista FPGA in spazio, difesa, telecomunicazioni, ferrovie e automotive: in Europa VHDL è molto diffuso
  • Elettronica industriale e strumentazione: acquisizione dati, controllo motori, interfacce
  • Ricerca scientifica e università
  • Verifica e collaudo di sistemi digitali
  • Prototipazione di prodotti elettronici

Programma del corso

10 lezioni in 3 livelli. Ogni lezione: video, spiegazione, codice da copiare o provare, esercizio con soluzione e quiz.

Progetto finale: Un cronometro digitale con macchina a stati

Progetti da zero un cronometro: un contatore di secondi con avvio e azzeramento comandati da pulsanti. Lo descrivi in VHDL con una macchina a stati, lo provi con un testbench auto-controllante in GHDL e, se hai una scheda, lo porti su FPGA con sincronizzatori e antirimbalzo.

I passi

  1. Disegna su carta il diagramma a stati: FERMO e IN_CORSA, con le transizioni comandate dal pulsante start.
  2. Scrivi il divisore di clock che produce un impulso di un secondo partendo dal clock della scheda (usa un generic per la frequenza).
  3. Scrivi il contatore dei secondi (0-59) che avanza solo quando lo stato è IN_CORSA e arriva l'impulso del secondo.
  4. Scrivi la macchina a stati con le tre parti: registro di stato, prossimo stato, uscite.
  5. Scrivi un testbench che usa un clock velocissimo (CLK_HZ piccolo) e controlla con assert che dopo N impulsi il contatore valga N.
  6. Simula con GHDL, salva le onde con --wave e osservale con GTKWave.
  7. Facoltativo: aggiungi sincronizzatore e antirimbalzo ai pulsanti e porta il progetto su una scheda, rispettando la tensione dei pin.

Esame e attestato

Alla fine del corso fai l'esame: 15 domande, serve il 75% di risposte giuste. Superato l'esame ottieni l'attestato stampabile con nome, ore, punteggio e un codice di controllo che chiunque può verificare.

Vai all'esame

Glossario di VHDL (FPGA)

FPGA
Chip con blocchi logici e collegamenti che si possono configurare per diventare un circuito.
HDL
Linguaggio di descrizione dell'hardware, come VHDL e Verilog.
Entity
La parte di VHDL che dichiara nome e porte di un blocco, visto da fuori.
Architecture
La parte di VHDL che descrive come funziona un blocco.
Segnale
Un filo o un registro di VHDL che porta un valore tra le parti del circuito.
Testbench
Entity di prova, senza porte, che collauda un circuito in simulazione.
Clock
Segnale ad onda quadra che dà il ritmo ai circuiti sequenziali.
Flip-flop
Elemento di memoria che copia il suo ingresso sul fronte del clock.
Latch
Memoria non voluta che nasce quando un'uscita combinatoria non viene assegnata in tutti i casi.
FSM
Macchina a stati finiti: un circuito che si trova in uno stato alla volta.
Generic
Parametro di un blocco, scelto quando lo si istanzia.
Bitstream
Il file che configura la FPGA dopo sintesi e place and route.

Le prime 2 lezioni sono gratis

Per il corso completo, scuole e aziende: chiedi le condizioni.