Un point de réalité d'abord
Tu n'as besoin de rien installer pour apprendre Verilog. Chaque éditeur interactif dans cette documentation lance du vrai Verilog via Icarus Verilog dans un sandbox, y compris le visualiseur de formes d'onde. Si tu es là pour apprendre le langage, saute cette page et reviens quand tu voudras travailler sur un projet plus long en local.
Tu veux quand même une installation locale ? Continue.
Ce que « installer Verilog » veut vraiment dire
Verilog est un langage, pas un programme. Pour le lancer il te faut :
- Un simulateur - l'outil qui compile tes fichiers
.vet les exécute. Pour la plupart des apprenants, c'est Icarus Verilog, qui te donne le compilateuriveriloget le runtimevvp. - Un visualiseur de formes d'onde - généralement GTKWave - qui lit les fichiers
.vcdque ton testbench produit. - Un éditeur de texte - VS Code avec une extension Verilog est le choix habituel, mais n'importe quoi marche.
Les toolchains des constructeurs (Xilinx Vivado, Intel Quartus, Synopsys VCS, Cadence Xcelium) existent pour la programmation FPGA et le travail ASIC. Elles sont massives, souvent sous licence, et surdimensionnées pour apprendre. Reste sur Icarus.
Installer sur macOS
Le chemin le plus rapide est Homebrew :
brew install icarus-verilog gtkwave
Ça installe à la fois le compilateur et le visualiseur. Vérifie :
iverilog -V
gtkwave --version
Tu devrais voir des numéros de version pour les deux. iverilog se met automatiquement dans ton PATH. GTKWave installe un app bundle dans /Applications et une commande gtkwave que tu peux lancer depuis le terminal.
Si Homebrew n'est pas installé, suis les instructions sur brew.sh d'abord - c'est une seule commande curl - puis reviens.
Installer sur Linux
Sur les distributions basées sur Debian (Ubuntu, Mint, Pop!_OS) :
sudo apt update
sudo apt install iverilog gtkwave
Sur les systèmes Fedora / RHEL :
sudo dnf install iverilog gtkwave
Sur Arch :
sudo pacman -S iverilog gtkwave
Puis vérifie de la même façon :
iverilog -V
gtkwave --version
La version packagée a parfois une version de retard sur l'upstream. Pour la plupart des apprentissages c'est OK. Si tu as besoin d'une release plus récente, compile depuis les sources - le dépôt GitHub du projet a les instructions, et c'est à un ./configure && make && sudo make install près.
Installer sur Windows
La route la plus simple est l'installeur précompilé maintenu par la communauté iverilog sur bleyer.org (cherche « iverilog Windows »). Il regroupe Icarus Verilog, GTKWave et la toolchain GCC dont Icarus a besoin en interne.
- Télécharge le dernier installeur (typiquement
iverilog-vXX-setup.exe). - Lance-le. Accepte les valeurs par défaut sauf si tu as une raison de ne pas le faire.
- Quand l'installeur demande, laisse « Add to PATH » coché.
- Ouvre une nouvelle fenêtre PowerShell ou Invite de commandes et vérifie :
iverilog -V
gtkwave --version
Si tu as oublié d'ajouter au PATH, le binaire se trouve quelque part comme C:\iverilog\bin\iverilog.exe. Soit tu ajoutes C:\iverilog\bin à ton PATH utilisateur depuis les Propriétés Système, soit tu relances l'installeur et tu coches la case.
WSL2 est aussi une bonne option sur Windows - installe Ubuntu depuis le Microsoft Store et suis les instructions Linux à l'intérieur. Tu auras un workflow Unix plus familier.
Compiler et lancer ton premier fichier
Une fois installé, le workflow ressemble à ça. Sauvegarde un fichier en hello.v :
module hello;
initial begin
$display("hello from verilog");
$finish;
end
endmodule
Compile-le en un binaire de simulation :
iverilog -o hello hello.v
iverilog est le compilateur. -o hello nomme la sortie. hello.v est ton source.
Lance la simulation :
vvp hello
Tu devrais voir :
hello from verilog
C'est tout le cycle local. À partir de là tu peux répartir ton design sur plusieurs fichiers (iverilog -o sim *.v), utiliser le flag -g2012 pour activer les fonctionnalités SystemVerilog-2012, ou piper la sortie dans tes propres scripts.
Produire et visualiser une forme d'onde
Ajoute $dumpfile et $dumpvars à ton testbench, lance-le, et ouvre le VCD résultant dans GTKWave :
initial begin
$dumpfile("dump.vcd");
$dumpvars(0, test);
// ...
end
Une fois vvp sim terminé, tu auras un dump.vcd à côté de ton source. Ouvre-le :
gtkwave dump.vcd
GTKWave charge le fichier et présente l'arbre des signaux à gauche. Glisse les signaux qui t'intéressent dans la zone wave à droite. On couvre ça en détail dans Dumpfile et VCD.
Erreurs courantes
iverilog: command not found - le binaire n'est pas dans ton PATH. Sur Windows, ça veut généralement dire que l'installeur n'a pas été lancé avec la mise à jour du PATH activée. Sur macOS/Linux, ça veut généralement dire que Homebrew/apt n'a pas terminé, ou que tu es dans un shell qui n'a pas rechargé son PATH (ferme et rouvre le terminal).
syntax error sur une ligne qui paraît correcte - vérifie que tu n'utilises pas une fonctionnalité SystemVerilog en mode Verilog classique. Passe -g2012 à iverilog pour activer SystemVerilog-2012 :
iverilog -g2012 -o sim main.v
Unknown module à la compilation - soit le fichier source du module n'a pas été passé à iverilog, soit le nom du module dans l'instantiation ne correspond pas exactement à la déclaration module. Verilog est sensible à la casse.
Forme d'onde vide dans GTKWave - ton testbench n'a pas appelé $dumpfile et $dumpvars, ou la simulation a atteint $finish avant qu'aucun signal ne change. Ajoute au moins un $dumpvars(0, top) et laisse la simulation tourner assez longtemps pour avoir des transitions.
La suite
Que tu aies installé en local ou que tu sois resté sur le navigateur, le prochain document te guide à travers l'écriture de ton premier module complet from scratch - déclaration du module, ports, un petit morceau de logique combinatoire, et un testbench autour.
Questions fréquentes
Comment installer Verilog ?
Il n'existe pas de programme unique appelé « Verilog » - c'est un langage, et tu installes un compilateur/simulateur. Pour apprendre, le choix standard est Icarus Verilog (les commandes iverilog et vvp), associé à GTKWave pour visualiser les formes d'onde. Sur macOS utilise brew install icarus-verilog gtkwave ; sur Debian/Ubuntu utilise apt install iverilog gtkwave ; sur Windows télécharge l'installeur précompilé depuis le site de Bleyer.
Faut-il installer quelque chose pour apprendre Verilog ?
Non. L'éditeur sur cette page exécute ton code via iverilog et vvp dans le cloud et affiche la forme d'onde VCD directement. Tu peux compléter chaque document de ces tutoriels sans rien installer. L'installation locale devient utile quand tu veux sauvegarder des fichiers, mettre un projet sous contrôle de version ou travailler sur un design trop gros pour l'éditeur en ligne.
Quelle est la différence entre iverilog et vvp ?
iverilog est le compilateur - il transforme tes fichiers source .v en un binaire de simulation. vvp est le runtime qui exécute ce binaire. La séquence de commandes typique est iverilog -o sim main.v test.v suivi de vvp sim. La plupart des scripts de workflow encapsulent les deux.
Icarus Verilog est-il gratuit ?
Oui. Icarus Verilog est open source sous GPL/LGPL. Pas de serveur de licence, pas de période d'essai, et ça marche autant pour apprendre que pour un usage commercial. Les alternatives commerciales (ModelSim, VCS, Xcelium) sont payantes ; pour tout ce qui est couvert dans cette documentation, Icarus suffit.
Comment vérifier ma version d'iverilog ?
Ouvre un terminal et lance iverilog -V. Tu devrais voir un numéro de version comme Icarus Verilog version 12.0. Si tu obtiens « command not found », le binaire n'est pas dans ton PATH - relance l'installeur ou ajoute le répertoire bin à la config de ton shell.