Erst einmal ein Realitätscheck
Du musst nichts installieren, um Verilog zu lernen. Jeder interaktive Editor in diesen Docs führt echtes Verilog über Icarus Verilog in einer Sandbox aus, inklusive Waveform-Viewer. Wenn du hier bist, um die Sprache zu lernen, überspringe diese Seite und komm zurück, wenn du an einem längeren Projekt lokal arbeiten willst.
Du willst trotzdem lokal installieren? Lies weiter.
Was "Verilog installieren" wirklich heißt
Verilog ist eine Sprache, kein Programm. Um es laufen zu lassen, brauchst du:
- Einen Simulator - das Tool, das deine
.v-Dateien kompiliert und ausführt. Für die meisten Lernenden ist das Icarus Verilog, das den Compileriverilogund die Laufzeitvvpmitbringt. - Einen Waveform-Viewer - meistens GTKWave - der die
.vcd-Dateien einliest, die deine Testbench produziert. - Einen Texteditor - VS Code mit einer Verilog-Extension ist die übliche Wahl, aber alles funktioniert.
Hersteller-Toolchains (Xilinx Vivado, Intel Quartus, Synopsys VCS, Cadence Xcelium) existieren für FPGA-Programmierung und ASIC-Arbeit. Sie sind groß, oft lizenzpflichtig und für das Lernen Overkill. Bleib bei Icarus.
Installation unter macOS
Der schnellste Weg ist Homebrew:
brew install icarus-verilog gtkwave
Das installiert sowohl den Compiler als auch den Waveform-Viewer. Überprüfen:
iverilog -V
gtkwave --version
Du solltest von beidem Versionsnummern sehen. iverilog legt sich automatisch in den PATH. GTKWave installiert ein App-Bundle unter /Applications und einen gtkwave-Kommandozeilenbefehl, den du aus dem Terminal startest.
Falls Homebrew nicht installiert ist, folge zuerst der Anleitung unter brew.sh - das ist ein einziger curl-Befehl - und komm dann hierher zurück.
Installation unter Linux
Auf Debian-basierten Distributionen (Ubuntu, Mint, Pop!_OS):
sudo apt update
sudo apt install iverilog gtkwave
Auf Fedora / RHEL-Systemen:
sudo dnf install iverilog gtkwave
Auf Arch:
sudo pacman -S iverilog gtkwave
Dann genauso überprüfen:
iverilog -V
gtkwave --version
Die paketierte Version hinkt manchmal um ein Release hinter dem Upstream her. Für die meisten Lernzwecke ist das egal. Brauchst du einen neueren Stand, baue aus dem Quellcode - das GitHub-Repo des Projekts hat Anleitungen, und es läuft auf ein ./configure && make && sudo make install hinaus.
Installation unter Windows
Der einfachste Weg ist der von der iverilog-Community gepflegte Installer auf bleyer.org (suche nach "iverilog Windows"). Er bündelt Icarus Verilog, GTKWave und die GCC-Toolchain, die Icarus intern benötigt.
- Lade den aktuellen Installer herunter (typischerweise
iverilog-vXX-setup.exe). - Führe ihn aus. Akzeptiere die Defaults, wenn du keinen Grund dagegen hast.
- Lass beim Setup "Add to PATH" aktiviert.
- Öffne ein neues PowerShell- oder Command-Prompt-Fenster und überprüfe:
iverilog -V
gtkwave --version
Hast du das Setzen des PATH vergessen, liegt das Binary unter etwas wie C:\iverilog\bin\iverilog.exe. Füge entweder C:\iverilog\bin über die Systemeinstellungen zu deinem User-PATH hinzu oder lass den Installer noch einmal laufen und setze den Haken.
WSL2 ist unter Windows ebenfalls eine gute Option - installiere Ubuntu aus dem Microsoft Store und folge dort der Linux-Anleitung. Du hast einen vertrauteren Unix-artigen Workflow.
Erste Datei kompilieren und ausführen
Sobald installiert, sieht der Workflow so aus. Speichere eine Datei als hello.v:
module hello;
initial begin
$display("hello from verilog");
$finish;
end
endmodule
Kompiliere sie in ein Simulations-Binary:
iverilog -o hello hello.v
iverilog ist der Compiler. -o hello benennt die Ausgabe. hello.v ist dein Quelltext.
Führe die Simulation aus:
vvp hello
Du solltest sehen:
hello from verilog
Das ist der gesamte lokale Zyklus. Von hier aus kannst du dein Design über mehrere Dateien verteilen (iverilog -o sim *.v), mit dem Flag -g2012 SystemVerilog-2012-Features aktivieren oder die Ausgabe in deine eigenen Skripte umleiten.
Eine Waveform erzeugen und ansehen
Ergänze $dumpfile und $dumpvars in deiner Testbench, lass sie laufen und öffne die entstandene VCD in GTKWave:
initial begin
$dumpfile("dump.vcd");
$dumpvars(0, test);
// ...
end
Nachdem vvp sim fertig ist, hast du eine dump.vcd neben deinem Quelltext. Öffne sie:
gtkwave dump.vcd
GTKWave lädt die Datei und zeigt links den Signalbaum. Ziehe die Signale, die dich interessieren, in den Wellenform-Bereich rechts. Wir gehen das ausführlich in Dumpfile und VCD durch.
Häufige Fehler
iverilog: command not found - das Binary ist nicht im PATH. Unter Windows heißt das meistens, dass der Installer ohne PATH-Update gelaufen ist. Unter macOS/Linux bedeutet es üblicherweise, dass Homebrew/apt nicht durchgelaufen ist oder du in einer Shell sitzt, die ihren PATH noch nicht neu eingelesen hat (Terminal schließen und neu öffnen).
syntax error in einer Zeile, die korrekt aussieht - prüfe, dass du nicht eine SystemVerilog-Funktion im reinen Verilog-Modus benutzt. Gib iverilog das Flag -g2012 mit, um SystemVerilog-2012 zu aktivieren:
iverilog -g2012 -o sim main.v
Unknown module beim Kompilieren - entweder wurde die Quelldatei des Moduls nicht an iverilog übergeben, oder der Modulname in der Instanziierung passt nicht exakt zur module-Deklaration. Verilog ist groß-/kleinschreibungssensitiv.
Leere Waveform in GTKWave - deine Testbench hat $dumpfile und $dumpvars nicht aufgerufen, oder die Simulation hat $finish erreicht, bevor sich Signale geändert haben. Füge mindestens ein $dumpvars(0, top) hinzu und lass die Simulation lange genug laufen, damit Übergänge passieren.
Wie es weitergeht
Egal, ob du lokal installiert hast oder beim Browser geblieben bist - das nächste Doc führt durchs Schreiben deines ersten vollständigen Moduls von Grund auf: Modul-Deklaration, Ports, ein winziges Stück kombinatorische Logik und eine Testbench drumherum.
Häufig gestellte Fragen
Wie installiere ich Verilog?
Es gibt kein einzelnes Programm namens 'Verilog' - es ist eine Sprache, und du installierst einen Compiler/Simulator. Zum Lernen ist die Standardwahl Icarus Verilog (die Befehle iverilog und vvp), kombiniert mit GTKWave für die Waveform-Anzeige. Unter macOS nimmst du brew install icarus-verilog gtkwave; unter Debian/Ubuntu apt install iverilog gtkwave; unter Windows lädst du den vorgefertigten Installer von der Bleyer-Seite.
Muss ich etwas installieren, um Verilog zu lernen?
Nein. Der Editor auf dieser Seite führt deinen Code per iverilog und vvp in der Cloud aus und zeigt die VCD-Waveform inline an. Du kannst jedes Doc in diesen Tutorials durcharbeiten, ohne irgendetwas zu installieren. Eine lokale Installation lohnt sich, sobald du Dateien speichern, ein Projekt versionieren oder an einem Design arbeiten willst, das zu groß für den Browser-Editor ist.
Was ist der Unterschied zwischen iverilog und vvp?
iverilog ist der Compiler - er verwandelt deine .v-Quelldateien in ein Simulations-Binary. vvp ist die Laufzeit, die dieses Binary ausführt. Die typische Befehlsfolge ist iverilog -o sim main.v test.v gefolgt von vvp sim. Die meisten Workflow-Skripte verpacken beides.
Ist Icarus Verilog kostenlos?
Ja. Icarus Verilog ist Open Source unter GPL/LGPL. Kein Lizenzserver, keine Testphase, und es funktioniert sowohl zum Lernen als auch für kommerzielle Nutzung. Die kommerziellen Alternativen (ModelSim, VCS, Xcelium) sind kostenpflichtig; für alles, was diese Docs abdecken, reicht Icarus.
Wie prüfe ich meine iverilog-Version?
Öffne ein Terminal und führe iverilog -V aus. Du solltest eine Versionsnummer sehen wie Icarus Verilog version 12.0. Bekommst du 'command not found', ist das Binary nicht im PATH - führe den Installer erneut aus oder ergänze das bin-Verzeichnis in deiner Shell-Konfig.