Verilog & VHDL Einstieg: HDL-Grundlagen, Syntax & Code-Beispiele
Einführung in Verilog & VHDL – Hardware Description Languages
Dieser Artikel führt in Verilog und VHDL ein: Grundstruktur eines Verilog-Moduls, `wire`-Datentyp & Vektoren, Unterschiede beider HDLs.
Was ist Verilog?
Verilog (IEEE 1364) – Hardware Description Language zur Beschreibung elektronischer Schaltungen & Systeme, genutzt für Design & Verifikation digitaler Schaltungen.
Was ist VHDL?
VHDL (VHSIC Hardware Description Language) – HDL für Electronic Design Automation. Beschreibt Verhalten & Struktur elektronischer Systeme, besonders geeignet für digitale Hardware-Designs.
Braucht man beide?
Beides sind mächtige Werkzeuge für komplexe digitale Schaltungen. Eine Sprache meistern reicht, aber Grundverständnis der anderen ist empfehlenswert (Projektabhängig, Firmenstandard, Legacy-Code).
Entwicklung von Verilog
1984 bei Gateway Design Automation entworfen. 1987: VHDL wird IEEE-Standard. 1995: Verilog wird IEEE 1364. Name: „Verification“ + „Logic“ – ursprünglich Simulations-/Verifikationswerkzeug.
Verilog-Konzepte anhand von Beispielen
Beispiel 1: Einfaches AND-Gatter
Schaltung: 2 Eingänge (a, b), 1 Ausgang (out1), 1-bit breit.
module Circuit_1 (
input wire a,
input wire b,
output wire out1
);
assign out1 = a & b; // bitweises AND, continuous assignment
endmodule
Erklärung:
- Zeile 1/8: `module` / `endmodule` umschließen Modulbeschreibung
- Zeile 2–6: Interface (Ports) – `input`, `output`, `wire` (physikalische Leitung)
- Zeile 7: `assign` = kontinuierliche Zuweisung – Ausgang aktualisiert sich sofort bei Eingangsänderung
Vergleich: Verilog vs. VHDL (Circuit_1)
VHDL erfordert Library-Deklarationen (`library IEEE; use IEEE.STD_LOGIC_1164.ALL;`) → verbosier, aber bei Higher-Level-Modellierung vorteilhaft (strikte Typisierung, Pakete).
Vier-Wert-System in Verilog
- `0` – Low / False
- `1` – High / True
- `z` – High-Impedance (Tri-State Output)
- `x` – Unbekannt / Undefiniert
VHDL `std_logic`: 9 Werte, gängig `0`, `1`, `Z`, `-` (Don't Care / Unbekannt).
Beispiel 2: Kombinatorische Logik (NOT, OR, XOR)
Schaltung mit internem Signal. Verilog-Operatoren: `~` (NOT), `|` (OR), `^` (XOR). Internes Signal per `wire` deklariert.
Beispiel 3: Vektoren (Bus-Signale)
Mehrere 1-bit Ports zu Vektoren gruppieren: `input wire [2:0] red, blue;` → kompakter, lesbarer Code. Indexierung: aufsteigend `[0:2]` oder absteigend `[2:0]` (weniger fehleranfällig).
Weiterführend: `reg` vs. `wire`, `always`-Blöcke, Testbenches, Synthese vs. Simulation – Themen für Folgeartikel.
Industrietechnik
- Rundösen verstehen: Arten, Einsatzbereiche und wie sie Ihre Ausrüstung schützen
- Machine Learning zur Optimierung des MRO Supply Chain Managements nutzen
- Kevlar entmystifiziert: Zusammensetzung, Anwendungen und Vorteile
- E-Commerce & stationärer Handel: Eine strategische Symbiose
- Chassis-Räder-Mangel: Wie fehlende Mobilität globale Lieferketten lahmlegt
- Die richtige Pump Kupplung wählen: Praktischer Leitfaden für zuverlässige Leistung
- Industry 4.0 vs. Industry 5.0: Was sich ändert und warum es wichtig ist
- Polyurethan entdecken: Typen, Anwendungen und warum es die moderne Industrie dominiert
- Fräsmaschinen verstehen: Funktionen, Anwendungen & Vorteile
- Festigkeitsprüfung erklärt: Materialgrenzen für kritische Bauteile messen