Verilog vs. VHDL: Unterschiede der beiden HDLs

Verilog und VHDL sind die beiden wichtigsten Hardwarebeschreibungssprachen (HDLs), mit denen digitale Schaltungen für Simulation und Synthese beschrieben werden. Verilog hat eine kurze, C-ähnliche Syntax und ist leichter zu erlernen. VHDL ist ausführlich und streng typisiert, wodurch mehr Fehler früh auffallen. Beide können dieselben Schaltungen beschreiben, und die Wahl hängt meist von der Branche, dem Unternehmen und dem vorhandenen Code ab.

AspektVerilog (und SystemVerilog)VHDL
HerkunftIn den 1980er Jahren bei Gateway Design Automation entstanden und als IEEE 1364 standardisiertFür das US-Verteidigungsministerium entwickelt und 1987 als IEEE 1076 standardisiert
SyntaxstilKnapp und C-ähnlichAusführlich und Ada-ähnlich
TypisierungSchwach typisiert: Implizite Umwandlungen sind einfach, können aber Fehler verbergenStreng typisiert: Explizite Umwandlungen sind nötig, daher werden Fehler zur Compile-Zeit erkannt
Groß-/KleinschreibungUnterscheidet Groß- und KleinschreibungUnterscheidet nicht zwischen Groß- und Kleinschreibung
LernkurveLeichterer EinstiegSteiler, aber nach dem Erlernen sicherer
VerifikationsfunktionenVerilog allein ist eingeschränkt; SystemVerilog ergänzt Klassen, eingeschränkt zufällige Tests, Assertions und UVMVHDL-2008 sowie Bibliotheken wie OSVVM und UVVM
SprachabstraktionenWeniger: Module und ParameterReichhaltiger: Packages, Generics, Records und Aufzählungstypen
WerkzeugunterstützungVon allen großen Simulatoren und Synthesewerkzeugen unterstütztVon allen großen Simulatoren und Synthesewerkzeugen unterstützt, gemischte Simulation in mehreren Sprachen ist möglich
Typische NutzerASIC- und SoC-Entwurf, besonders in den USA und AsienEuropa, Luft- und Raumfahrt sowie Verteidigung und viele FPGA-Projekte

Die Zahlenangaben sind typische Größenordnungen und variieren je nach Prozessgeneration und Produkt.

Wann welches einsetzen

Verilog / SystemVerilog
Eine gute Standardwahl für Chipentwurf und Verifikation, da die Werkzeuge und Bibliotheken der Branche um SystemVerilog herum aufgebaut sind.
VHDL
Eine gute Wahl, wo strenge Typisierung und langfristige Wartbarkeit wichtig sind, etwa bei sicherheitskritischen und Verteidigungsprojekten.
In der Praxis
Oft muss man beide lesen können. Die Konzepte (Module oder Entities, nebenläufige Signale, getaktete Prozesse) sind dieselben.

FAQ

Was ist leichter zu lernen, Verilog oder VHDL?

Verilog, weil die Syntax kurz und C-ähnlich ist. VHDL ist ausführlicher und streng typisiert, was anfangs schwieriger ist, aber mehr Fehler zur Compile-Zeit aufdeckt.

Was wird in der Industrie häufiger verwendet?

SystemVerilog dominiert den ASIC- und SoC-Entwurf sowie die Verifikation, besonders in den USA und Asien. VHDL ist in Europa, in der Luft- und Raumfahrt, in der Verteidigung und in vielen FPGA-Projekten verbreitet.

Lassen sich Verilog und VHDL in einem Projekt mischen?

Ja. Die großen Simulatoren und Synthesewerkzeuge unterstützen Entwürfe in gemischten Sprachen, sodass ein in der einen Sprache geschriebenes Modul in der anderen verwendet werden kann.

Was ist SystemVerilog?

SystemVerilog ist eine Erweiterung von Verilog, die Klassen, eingeschränkt zufälliges Testen, Assertions und die UVM-Methodik ergänzt und damit zum Standard für die Chipverifikation wurde.

Wichtige Begriffe erklärt

Verilog
Eine weit verbreitete Hardwarebeschreibungssprache für Entwurf und Verifikation digitaler Schaltungen, die Schaltungen als Module beschreibt, deren Verhalten über assign und always ausgedrückt wird.
SystemVerilog
Eine Erweiterung von Verilog mit zusätzlichen Entwurfsmerkmalen wie dem Typ logic und always_ff/always_comb sowie Verifikationsmerkmalen wie Klassen, eingeschränkten Zufallsstimuli und Assertions.
Hardwarebeschreibungssprache (HDL)
Eine Sprache zur Beschreibung von Struktur und Verhalten digitaler Schaltungen, etwa Verilog, SystemVerilog und VHDL, die durch Logiksynthese in Schaltungen umgesetzt wird.
RTL (Register-Transfer-Ebene, register-transfer level)
Entwurfsabstraktion, die Schaltungen dadurch beschreibt, wie Daten zwischen Registern bewegt und verarbeitet werden. Sie wird in Verilog oder VHDL geschrieben und ist die Eingabe der Logiksynthese.

Weitere Vergleiche