Verilog ist eine Hardware-Beschreibungssprache mit C-ähnlicher Syntax, die 1983/84 von Gateway Design Automation entwickelt und später von Cadence übernommen wurde. Seit 1995 ist sie als IEEE-Standard 1364 genormt. Verilog wird wie VHDL eingesetzt, um digitale Schaltungen für FPGAs und ASICs zu beschreiben, zu simulieren und zu synthetisieren.
Grundprinzip: Module
Die zentrale Einheit ist das module — vergleichbar mit einem Chip oder einer Teilschaltung. Ports werden als Ein- oder Ausgänge deklariert, das Innenleben mit always-Blöcken oder Zuweisungen beschrieben:
module and2 (
input wire a, b,
output wire y
);
assign y = a & b;
endmodule
Wichtige Sprachmittel
- wire für verdrahtete Signale, reg für in always-Blöcken zugewiesene Werte
- always @(*) für kombinatorische und always @(posedge clk) für taktflankengesteuerte Logik
- module/endmodule, parameter für Konstanten, task/function für wiederverwendbare Bausteine
- Bit-Operatoren wie
&,|,^direkt auf Vektoren
Werkzeuge und Befehle
Icarus Verilog ist der klassische Open-Source-Simulator. Kompilierung und Simulation laufen getrennt:
iverilog -o sim and2.v and2_tb.v # kompilieren
vvp sim # simulieren
Verilator übersetzt synthesizbares Verilog und SystemVerilog in schnellen C++- oder SystemC-Code — ideal für große Simulationen:
verilator --cc --build --exe --timing -j 0 sim_main.cpp and2.v
Simulationen erzeugen VCD-Dateien (Value Change Dump), die sich mit GTKWave als Wellenform anzeigen lassen.
Verwandte Grundlagen: SystemVerilog-Befehle, VHDL-Befehle, C/C++-Befehle.