Vai al contenuto

Videocorso Verilog e SystemVerilog per FPGA CGFA

Da zero a descrivere circuiti digitali, simularli gratis 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 e informatica, tecnici, appassionati di Arduino e makers che vogliono progettare circuiti digitali veri, senza comprare nulla per cominciare

Cosa serve per iniziare

  • Un computer Windows, Mac o Linux
  • Nessuna esperienza di programmazione: servono solo le basi dei numeri binari (le spieghiamo)
  • Facoltativo: una scheda FPGA economica, ma per tutto il corso basta il simulatore

Cosa installare

Icarus VerilogSimulatore gratuito e open source (steveicarus.github.io/iverilog). Su Windows c'è l'installatore pronto, su Linux si installa con il gestore pacchetti (pacchetto iverilog)
GTKWaveVisualizzatore gratuito delle forme d'onda: mostra come cambiano i segnali nel tempo. Si installa insieme a Icarus su molti sistemi
Verilator 5Simulatore gratuito molto veloce, supporta gran parte di SystemVerilog e permette di creare test anche in C++. Si usa da terminale
EDA PlaygroundSito gratuito (edaplayground.com): scrivi Verilog nel browser e lo simuli subito, senza installare nulla. Serve una registrazione gratuita per salvare i lavori
Yosys + nextpnr (facoltativo)Catena open source per sintetizzare e caricare il progetto su FPGA Lattice iCE40 ed ECP5. Per AMD e Intel esistono Vivado e Quartus, con versioni gratuite

A cosa ti serve

  • Progettista FPGA e logica digitale (telecomunicazioni, spazio, difesa, automotive)
  • Strumentazione scientifica e ricerca (acceleratori, rivelatori, radiotelescopi)
  • Accelerazione di calcoli, video e intelligenza artificiale in hardware
  • Verifica di chip (ASIC) con SystemVerilog: un mestiere molto richiesto
  • Prototipazione di prodotti elettronici e retro-computing

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, pausa e azzeramento comandati da due pulsanti. Lo descrivi in Verilog con una macchina a stati, lo provi con un testbench auto-controllante e, se hai una scheda, lo porti su FPGA con sincronizzatori e antirimbalzo.

I passi

  1. Disegna su carta il diagramma a stati: FERMO, IN_CORSA, PAUSA, con le transizioni comandate dai pulsanti start e reset.
  2. Scrivi il modulo divisore_clock che produce un impulso di un secondo partendo dal clock della scheda.
  3. Scrivi il contatore dei secondi (0-59) e dei minuti, che avanza solo quando lo stato è IN_CORSA e arriva l'impulso del secondo.
  4. Scrivi la macchina a stati con i tre blocchi: registro di stato, prossimo stato, uscite.
  5. Scrivi un testbench che accelera il tempo (clock molto più veloce) e controlla da solo che dopo N impulsi il contatore valga N.
  6. Simula con Icarus o Verilator e osserva le onde 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 Verilog (FPGA)

FPGA
Chip con blocchi logici e collegamenti che si possono configurare per diventare un circuito.
HDL
Linguaggio di descrizione dell'hardware, come Verilog e VHDL.
Modulo
La scatola base di Verilog, con ingressi, uscite e una descrizione interna.
Testbench
Modulo di prova, senza porte, che collauda un circuito in simulazione.
Wire
Un filo: trasporta un valore tra due punti del circuito.
Reg
Un segnale che tiene un valore assegnato da un blocco procedurale.
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.
Sintesi
Il passaggio che trasforma il codice in porte e registri.
Bitstream
Il file che configura la FPGA dopo sintesi, place and route.

Le prime 2 lezioni sono gratis

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