Prima di tutto, un po' di realismo
Per imparare Verilog non devi installare nulla. Ogni editor interattivo di queste pagine esegue Verilog vero tramite Icarus Verilog in una sandbox, visualizzatore di forme d'onda compreso. Se sei qui per imparare il linguaggio, salta questa pagina e torna quando vorrai lavorare in locale a un progetto più lungo.
Vuoi comunque un'installazione locale? Continua a leggere.
Cosa significa davvero "installare Verilog"
Verilog è un linguaggio, non un programma. Per eseguirlo ti servono:
- Un simulatore, lo strumento che compila i tuoi file
.ve li esegue. Per la maggior parte di chi impara è Icarus Verilog, che ti dà il compilatoreiveriloge il runtimevvp. - Un visualizzatore di forme d'onda, di solito GTKWave, che legge i file
.vcdprodotti dal testbench. - Un editor di testo: la scelta più comune è VS Code con un'estensione per Verilog, ma va bene qualsiasi editor.
Esistono toolchain dei produttori (Xilinx Vivado, Intel Quartus, Synopsys VCS, Cadence Xcelium) per la programmazione di FPGA e il lavoro sugli ASIC. Sono pesanti, spesso a licenza, ed eccessive per imparare. Resta su Icarus.
Installazione su macOS
La strada più veloce è Homebrew:
brew install icarus-verilog gtkwave
Questo installa sia il compilatore sia il visualizzatore di forme d'onda. Verifica:
iverilog -V
gtkwave --version
Dovresti vedere i numeri di versione di entrambi. iverilog si aggiunge da solo al tuo PATH. GTKWave installa un'app in /Applications e un comando gtkwave che puoi lanciare dal terminale.
Se Homebrew non è installato, segui prima le istruzioni su brew.sh (basta un comando curl) e poi torna qui.
Installazione su Linux
Sulle distribuzioni basate su Debian (Ubuntu, Mint, Pop!_OS):
sudo apt update
sudo apt install iverilog gtkwave
Su sistemi Fedora / in stile RHEL:
sudo dnf install iverilog gtkwave
Su Arch:
sudo pacman -S iverilog gtkwave
Poi verifica allo stesso modo:
iverilog -V
gtkwave --version
A volte la versione dei pacchetti è indietro di una release rispetto al progetto originale. Per imparare va quasi sempre bene. Se ti serve una release più recente, compila dai sorgenti: il repository GitHub del progetto ha le istruzioni e basta un ./configure && make && sudo make install.
Installazione su Windows
La strada più semplice è l'installer precompilato mantenuto dalla community di iverilog su bleyer.org (cerca "iverilog Windows"). Include Icarus Verilog, GTKWave e la toolchain GCC di cui Icarus ha bisogno internamente.
- Scarica l'installer più recente (di solito
iverilog-vXX-setup.exe). - Eseguilo. Accetta le impostazioni predefinite, a meno che tu non abbia un motivo per cambiarle.
- Quando l'installer lo chiede, lascia selezionato "Add to PATH".
- Apri una nuova finestra di PowerShell o del Prompt dei comandi e verifica:
iverilog -V
gtkwave --version
Se hai dimenticato di aggiungerlo al PATH, il binario si trova in un percorso come C:\iverilog\bin\iverilog.exe. Aggiungi C:\iverilog\bin al PATH del tuo utente dalle Proprietà del sistema, oppure riesegui l'installer e spunta la casella.
Anche WSL2 è un'ottima opzione su Windows: installa Ubuntu dal Microsoft Store e al suo interno segui le istruzioni per Linux. Avrai un flusso di lavoro più familiare, in stile Unix.
Compilare ed eseguire il tuo primo file
Una volta installato, il flusso di lavoro è questo. Salva un file come hello.v:
module hello;
initial begin
$display("hello from verilog");
$finish;
end
endmodule
Compilalo in un binario di simulazione:
iverilog -o hello hello.v
iverilog è il compilatore. -o hello dà il nome all'output. hello.v è il tuo sorgente.
Esegui la simulazione:
vvp hello
Dovresti vedere:
hello from verilog
Questo è l'intero ciclo in locale. Da qui puoi dividere il progetto su più file (iverilog -o sim *.v), usare il flag -g2012 per attivare le funzionalità di SystemVerilog-2012 o passare l'output ai tuoi script.
Generare e visualizzare una forma d'onda
Aggiungi $dumpfile e $dumpvars al testbench, eseguilo e apri il VCD risultante in GTKWave:
initial begin
$dumpfile("dump.vcd");
$dumpvars(0, test);
// ...
end
Quando vvp sim termina, accanto al sorgente troverai un dump.vcd. Aprilo:
gtkwave dump.vcd
GTKWave carica il file e mostra l'albero dei segnali. Trascina i segnali che ti interessano nell'area delle forme d'onda. Ne parliamo in dettaglio in Dumpfile and VCD.
Errori comuni
iverilog: command not found: il binario non è nel PATH. Su Windows di solito significa che l'installer è stato eseguito senza l'aggiornamento del PATH. Su macOS/Linux di solito significa che Homebrew/apt non ha terminato, oppure che sei in una shell che non ha ricaricato il PATH (chiudi e riapri il terminale).
syntax error su una riga che sembra corretta: controlla di non usare una funzionalità di SystemVerilog in modalità Verilog semplice. Passa -g2012 a iverilog per attivare SystemVerilog-2012:
iverilog -g2012 -o sim main.v
Unknown module durante la compilazione: il file sorgente del modulo non è stato passato a iverilog, oppure il nome del modulo nell'istanziazione non corrisponde esattamente alla dichiarazione module. Verilog distingue maiuscole e minuscole.
Forma d'onda vuota in GTKWave: il testbench non ha chiamato $dumpfile e $dumpvars, oppure la simulazione ha raggiunto $finish prima che cambiasse qualche segnale. Aggiungi almeno un $dumpvars(0, top) e lascia girare la simulazione abbastanza a lungo da avere delle transizioni.
Cosa viene dopo
Che tu abbia installato in locale o preferito il browser, la prossima pagina ti guida nella scrittura del tuo primo modulo completo da zero: dichiarazione del modulo, porte, un piccolo pezzo di logica combinatoria e un testbench attorno.
Domande frequenti
Come si installa Verilog?
Non esiste un unico programma 'Verilog': è un linguaggio, e quello che installi è un compilatore/simulatore. Per imparare, la scelta standard è Icarus Verilog (i comandi iverilog e vvp), abbinato a GTKWave per visualizzare le forme d'onda. Su macOS usa brew install icarus-verilog gtkwave; su Debian/Ubuntu usa apt install iverilog gtkwave; su Windows scarica l'installer precompilato dal sito di Bleyer.
Devo installare qualcosa per imparare Verilog?
No. L'editor di questa pagina esegue il tuo codice con iverilog e vvp nel cloud e mostra direttamente la forma d'onda VCD. Puoi completare ogni pagina di questi tutorial senza installare nulla. Installare in locale diventa utile quando vuoi salvare file, mettere un progetto sotto controllo di versione o lavorare a un progetto troppo grande per l'editor nel browser.
Qual è la differenza tra iverilog e vvp?
iverilog è il compilatore: trasforma i tuoi sorgenti .v in un binario di simulazione. vvp è il runtime che esegue quel binario. La sequenza tipica di comandi è iverilog -o sim main.v test.v seguita da vvp sim. La maggior parte degli script di lavoro li racchiude entrambi.
Icarus Verilog è gratuito?
Sì. Icarus Verilog è open source con licenza GPL/LGPL. Non ci sono server di licenze né periodi di prova, e funziona sia per imparare sia per uso commerciale. Le alternative commerciali (ModelSim, VCS, Xcelium) sono a pagamento; per tutto ciò che trattano queste pagine, Icarus basta e avanza.
Come controllo la versione di iverilog?
Apri un terminale ed esegui iverilog -V. Dovresti vedere un numero di versione come Icarus Verilog version 12.0. Se ottieni 'command not found', il binario non è nel PATH: riesegui l'installer oppure aggiungi la directory bin alla configurazione della shell.