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.