Wikipedia · einfach zusammengefasst · Stand
Hardwarebeschreibungssprache
Eine Hardwarebeschreibungssprache (englisch Hardware Description Language, HDL) ist eine formale Sprache, mit der Operationen von integrierten Schaltungen …
Inhalt5 Abschnitte
Grundidee und Bedeutung
Eine Hardwarebeschreibungssprache (englisch Hardware Description Language, HDL) ist eine formale Sprache zur Beschreibung des Designs und der Operationen integrierter Schaltungen. Mit ihr lassen sich Schaltungen außerdem in Simulationen testen. HDLs gehören zur Electronic Design Automation.
Sie beschreiben in Textform entweder das zeitliche Verhalten einer Schaltung, ihre räumliche Struktur oder beides. Anders als Software-Programmiersprachen besitzen ihre Syntax und Semantik Mittel, um zeitliche Abläufe und Gleichzeitigkeiten auszudrücken. Dies ist nötig, weil Hardwareteile parallel arbeiten können. Sprachen, die ausschließlich Verbindungen elektronischer Schaltungen als Netzlisten wiedergeben, heißen Netlist-Sprachen.
Verilog und VHDL zählen weltweit zu den am häufigsten verwendeten Sprachen zur Beschreibung digitaler Logik und sind als Industriestandards etabliert.
Entwurf, Synthese und Simulation
Ein wesentlicher Vorteil von HDLs ist, dass ein Synthesetool aus der Beschreibung automatisch eine Netzliste für eine integrierte Schaltung erzeugen kann. Dadurch können Schaltungen beispielsweise als Field Programmable Gate Arrays (FPGAs), also konfigurierbare mikroelektronische Bausteine, oder als anwendungsspezifische integrierte Schaltungen (ASICs) realisiert werden.
Für die Synthese, also das Erzeugen der Netzliste, ist normalerweise nur ein Teil der jeweiligen Sprache geeignet. Bei digitalen Schaltungen wird bevorzugt Logiksynthese verwendet. Andere Sprachbestandteile dienen dazu, eine Testumgebung für Simulationsprogramme zu modellieren und damit die Funktionsfähigkeit zu verifizieren. Dateiein- und -ausgabe (File-I/O) ist beispielsweise nicht synthesefähig und steht nur in der Simulationsumgebung zur Verfügung.
Welche Sprachkonstrukte synthesefähig sind, hängt vom verwendeten Synthesewerkzeug ab. In der Anfangszeit der Logiksynthese konnten digitale Multiplikationen nicht unmittelbar synthetisiert werden; die im Jahr 2008 verfügbaren Werkzeuge beherrschten im Regelfall die direkte Umsetzung der Multiplikationsoperation in Hardware.
Verwendete Abstraktionsebenen sind das Verhaltensmodell (behavioral), das teilweise nicht synthesefähig ist, das synthesefähige Register-Transfer-Level- oder RTL-Modell sowie das Gatelevel-Modell als Netzliste.
Entstehung wichtiger Sprachen
Die Entwicklung von HDLs steht mit der Entwicklung der Computerindustrie und besonders der Mikroelektronik in Zusammenhang. Wegen zunehmender Größe, Entwicklungsaufwands und Komplexität von Entwürfen finanzierte das amerikanische Verteidigungsministerium (DoD) in den frühen 1980er Jahren das VHSIC-Programm (Very High-Speed IC). Es sollte ein standardisiertes Dokumentationswerkzeug für Schnittstellen mit Ein- und Ausgängen sowie für das Verhalten digitaler Systeme schaffen.
Texas Instruments, IBM und Intermetrics setzten diese Anforderung um. Eine erste Version von VHDL erschien 1985 und wurde später an das IEEE übergeben. Dieses veröffentlichte 1987 den Standard IEEE 1076–1987.
Verilog entstand unabhängig von VHDL. Automated Integrated Design Systems, später Gateway Design Automation, entwickelte Verilog-XL 1983 unter Federführung von Phil Moorby zur Logiksimulation. Nachdem Cadence GDA 1990 übernommen hatte, veröffentlichte Cadence die Sprache zur Weiterentwicklung. Das IEEE normierte Verilog 1995 als IEEE 1364.
Zu den frühen Hardwarebeschreibungssprachen um 1977 gehörten ISP (Instruction Set Processor) der Carnegie Mellon University und KARL der Universität Karlsruhe, das später an der TU Kaiserslautern weiterentwickelt wurde. ISP ähnelte einer Software-Programmiersprache und beschrieb Ein-/Ausgabe-Verhalten für Simulationen, war aber kaum für Synthese verwendbar. KARL umfasste zusätzlich ein Entwurfs-Kalkül für „VLSI chip floorplanning“ und strukturierten Hardware-Entwurf. Seine interaktiv grafische Schwester-Sprache ABL wurde in den frühen 1980er Jahren beim Forschungszentrum CSELT in Turin als grafisches VLSI-Entwurfs-System ABLED implementiert. Ein EU-gefördertes Konsortium entwickelte Mitte der 1980er Jahre ein komplettes „VLSI design framework“ um KARL und ABL. 1983 führte Data-I/O ABEL zur Beschreibung von Logik-Systemen und Schaltwerken (finite state machines) ein.
Hardwarebeschreibung ist nicht Softwareprogrammierung
Das Schreiben einer Hardwarebeschreibung wird regelmäßig, aber fälschlicherweise, mit Programmieren gleichgesetzt. Der Grund ist, dass HDLs eine ausführbare Spezifikation bestimmter Hardware sind. Ein Simulationsprogramm stellt die grundlegende Sprachsemantik und den Zeitverlauf bereit. So kann ein Elektronikentwickler Hardware modellieren, bevor sie halbleitertechnisch hergestellt wird.
Diese Ausführbarkeit bedeutet jedoch nicht, dass eine HDL wie Software kompiliert und ausgeführt wird. Entscheidend ist das Ziel: Software führt zu einem ablauffähigen Programm für einen vorgegebenen Computer, etwa einen Mikrocontroller. Eine HDL führt dagegen zu einem Hardware-Baustein beziehungsweise Chip. Als rechtliches Unterscheidungsmerkmal nennt der Artikel, dass „computerimplementierte Erfindungen“ in Deutschland patentierbar sind, reine Computerprogramme hingegen nicht. In der Fachwelt wird dennoch beispielsweise der englische Begriff Coding im Zusammenhang mit HDLs verwendet.
Erweiterungen und Normen
Neben rein digitalen Beschreibungen gibt es HDLs und Simulatoren für Digital- und Analogtechnik. VHDL-AMS bedeutet VHDL Analog-Mixed-Signal und erweitert VHDL für diesen Bereich.
Hardware kann auch semantisch in C++ mit umfangreichen Klassenbibliotheken beschrieben werden. Diesen Ansatz verfolgt SystemC, das derzeit jedoch nur in Ausnahmefällen synthesefähig ist und primär akademisch eingesetzt wird. Normales C++ besitzt keine Möglichkeiten zur Beschreibung eines Zeitverlaufs und ist deshalb nicht geeignet.
HDLs sind durch IEEE- und IEC-Standards normiert; zuständig für die Normierung ist das IEEE Design Automation Standards Committee (DASC). Beispiele sind IEEE 1076-2019 für VHDL, IEC 62530 für SystemVerilog sowie IEC 61691-6: Behavioural languages – Part 6: VHDL Analog and Mixed-Signal Extensions.