„Hardwarebeschreibungssprache“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
KKeine Bearbeitungszusammenfassung
Artikel akt. u. erw., Geschichte eingef., div. Inhalte zit.
Zeile 1: Zeile 1:
Eine '''Hardwarebeschreibungssprache''' ({{enS|Hardware Description Language}}, ''HDL'') ist eine [[formale Sprache]], mit der Operationen von [[Integrierter Schaltkreis|integrierten Schaltungen]] und ihr Design beschrieben sowie in Simulationen getestet werden können.
Eine '''Hardwarebeschreibungssprache''' ({{enS|Hardware Description Language}}, ''HDL'') ist eine [[formale Sprache]], mit der Operationen von [[Integrierter Schaltkreis|integrierten Schaltungen]] und ihr [[Chipentwurf|Design]] beschrieben sowie in Simulationen getestet werden können.<ref name=":0">{{Literatur |Autor=Brock J. LaMeres |Titel=Introduction to Logic Circuits & Logic Design with VHDL |Verlag=Springer International Publishing |Ort=Cham |Datum=2019 |ISBN=978-3-030-12488-5 |DOI=10.1007/978-3-030-12489-2 |Seiten=156 ff. |Online=http://link.springer.com/10.1007/978-3-030-12489-2 |Abruf=2022-12-28}}</ref> Die Sprachen [[Verilog]] und [[Very High Speed Integrated Circuit Hardware Description Language|VHDL]] gehören zu den weltweit am häufigsten genutzten Sprachen um digitale Logik zu beschreiben und sind als Industriestandards etabliert.<ref>{{Internetquelle |autor=Lu Dai |url=https://www10.edacafe.com/blogs/guest/2020/03/12/make-an-impact-and-get-involved-in-standards-development-and-evolution/ |titel=Make an Impact and Get Involved in Standards Development and Evolution |werk=[[EDACafé]] |hrsg=Internet Business Systems Inc. |datum=2020-03-12 |sprache=en |abruf=2022-12-28}}</ref> HDLs sind Teil der [[Electronic Design Automation]].


Hardwarebeschreibungssprachen drücken ein zeitliches Verhalten und/oder eine (räumliche) Schaltkreisstruktur in normalem Text aus. Im Gegensatz zu Software-[[Programmiersprache]]n beinhalten [[Syntax]] und [[Semantik]] der HDLs in ihrer [[Notation]] Möglichkeiten, zeitliche Abläufe und Gleichzeitigkeiten auszudrücken, wie es von [[Hardware]] verlangt wird. Sprachen, deren einziges Merkmal es ist, Verbindungen von [[Elektronische Schaltung|elektronischen Schaltungen]] in Form von [[Netzliste]]n wiederzugeben, werden als ''Netlist-Sprachen'' bezeichnet.
Hardwarebeschreibungssprachen drücken ein zeitliches Verhalten und/oder eine (räumliche) Schaltkreisstruktur in normalem Text aus. Im Gegensatz zu Software-[[Programmiersprache]]n beinhalten [[Syntax]] und [[Semantik]] der HDLs in ihrer [[Notation]] Möglichkeiten, zeitliche Abläufe und Gleichzeitigkeiten auszudrücken, wie es von [[Hardware]] verlangt wird. Sprachen, deren einziges Merkmal es ist, Verbindungen von [[Elektronische Schaltung|elektronischen Schaltungen]] in Form von [[Netzliste]]n wiederzugeben, werden als ''Netlist-Sprachen'' bezeichnet.

== Abgrenzung ==
Regelmäßig (und fälschlicherweise) wird der Begriff [[Programmierung|Programmieren]] synonym für das Schreiben einer Hardwarebeschreibung benutzt. Dies resultiert daraus, dass HDLs eine ausführbare Spezifikation einer bestimmten Hardware darstellen. Ein Simulationsprogramm, das die grundlegende Semantik der Sprache und den Verlauf der Zeit bereitstellt, bietet dem [[Elektronikentwickler]] die Möglichkeit, ein Stück Hardware zu modellieren, bevor es physisch hergestellt wird. Diese Möglichkeit der Ausführung lässt es so aussehen, als würde diese Sprache dazu benutzt, etwas zu programmieren. Es gibt HDLs und Simulatoren für das Modellieren in [[Digitaltechnik|Digital-]] und [[Analogtechnik]].

Es ist möglich, Hardware semantisch in einer verbreiteten Sprache wie [[C++]], in Verbindung mit umfangreichen Klassenbibliotheken, zu beschreiben. Diesen Ansatz verfolgt [[SystemC]], welches aber derzeit nur in Ausnahmefällen synthesefähig ist und primär im akademischen Bereich eingesetzt wird. Normales C++ enthält hingegen außerdem keine Möglichkeiten, um einen Zeitverlauf zu beschreiben, und ist deshalb wenig geeignet.


== Anwendung ==
== Anwendung ==
Ein Grund für den Einsatz einer allgemeinen HDL ist die Möglichkeit der automatischen Erzeugung von [[Netzliste]]n für [[integrierte Schaltung]]en durch ein [[Synthesetool]]. Auch lassen sich so Schaltungen leicht in programmierbaren Bausteinen wie [[Field Programmable Gate Array]]s (FPGAs) oder in [[Anwendungsspezifische integrierte Schaltung|anwendungsspezifischen integrierten Schaltungen]] (ASICs) realisieren.
Ein Grund für den Einsatz einer HDL ist die Möglichkeit der automatischen Erzeugung von [[Netzliste]]n für [[integrierte Schaltung]]en durch ein [[Synthesetool]]. So lassen sich Schaltungen beispielsweise in konfigurierbaren Mikroelektronik-Bausteinen wie [[Field Programmable Gate Array]]s (FPGAs) oder in [[Anwendungsspezifische integrierte Schaltung|anwendungsspezifischen integrierten Schaltungen]] (ASICs) realisieren.


Für die [[Synthese (Elektrotechnik)|Synthese der Schaltung]], das Erzeugen einer Netzliste, ist typischerweise nur ein Teil der Sprache, bezogen auf Syntax und Semantik, geeignet. Im Bereich digitaler Schaltung kommt bevorzugt die [[Logiksynthese]] zur Anwendung. Die restlichen Teile der Sprache eignen sich zum einfacheren Modellieren einer Testumgebung zur Verifikation der Funktionsfähigkeit in Simulationsprogrammen. Ein Beispiel für ein nicht synthesefähiges Sprachkonstrukt, ist die Ein- und Ausgabe von Dateien (File-I/O), das nur in der Simulationsumgebung zur Verfügung steht. Der konkrete Umfang, welche Teile der Sprache noch synthesefähig sind, hängt von den eingesetzten Synthesewerkzeugen ab. So waren in der Anfangszeit der Logiksynthese digitale Multiplikationen nicht direkt synthetisierbar. Die im Jahr 2008 verfügbaren Werkzeuge beherrschen im Regelfall die direkte Synthese der Multiplikationsoperation in Hardware.
Für die [[Synthese (Elektrotechnik)|Synthese der Schaltung]], das Erzeugen einer Netzliste, ist typischerweise nur ein Teil der Sprache, bezogen auf Syntax und Semantik, geeignet. Im Bereich digitaler Schaltung kommt bevorzugt die [[Logiksynthese]] zur Anwendung. Die restlichen Teile der Sprache eignen sich zum einfacheren Modellieren einer Testumgebung zur Verifikation der Funktionsfähigkeit in Simulationsprogrammen. Ein Beispiel für ein nicht synthesefähiges Sprachkonstrukt, ist die Ein- und Ausgabe von Dateien (File-I/O), das nur in der Simulationsumgebung zur Verfügung steht. Der konkrete Umfang, welche Teile der Sprache noch synthesefähig sind, hängt von den eingesetzten Synthesewerkzeugen ab. So waren in der Anfangszeit der Logiksynthese digitale Multiplikationen nicht direkt synthetisierbar. Die im Jahr 2008 verfügbaren Werkzeuge beherrschen im Regelfall die direkte Synthese der Multiplikationsoperation in Hardware.
Zeile 18: Zeile 13:
* Gatelevel-Modell (Netzliste)
* Gatelevel-Modell (Netzliste)


== Bekannte Beispiele ==
== Geschichte ==
Die ersten Hardware-Beschreibungssprachen (um 1977) waren ISP (Instruction Set Processor)<ref>M. Barbacci: ''The ISPS Computer Description Language.'' Carnegie-Mellon Univ., Dept. of Computer Science, 1977.</ref> von der [[Carnegie Mellon University]], und KARL, von der [[Karlsruher Institut für Technologie|Universität Karlsruhe]], später weiterentwickelt an der [[Technische Universität Kaiserslautern|TU Kaiserslautern]]. ISP ähnelte einer Software-Programmiersprache und diente der Beschreibung des Ein-/Ausgabe-Verhaltens für die Simulation. Damit ist es allerdings kaum verwendbar für die Synthese. Zur Sprache KARL und ihrer Implementierung gehörte auch ein Entwurfs-Kalkül zur Unterstützung von „{{lang|en|VLSI chip floorplanning}}“ und strukturiertem Hardware-Entwurf. Es stellt auch die Basis von KARLs interaktiv graphischer Schwester-Sprache ABL, implementiert in den frühen 1980er Jahren beim Forschungszentrum [[CSELT]] in [[Turin]], Italien, als graphisches VLSI-Entwurfs-System ABLED. In der Mitte der 1980er Jahre implementierte ein EU-gefördertes Konsortium ein komplettes „{{lang|en|VLSI design framework}}“ um KARL und ABL herum<ref>{{Literatur |Hrsg=Jean P. Mermet |Titel={{lang|en|Fundamentals and Standards in Hardware Description Languages}} |Verlag=Kluwer Academic Publishers |Ort=Dordrecht |Datum=1993 |ISBN=0-7923-2513-3}}</ref>. 1983 führte die Firma Data-I/O die Sprache ABEL ein, um Logik-Systeme und Schaltwerke (engl. {{lang|en|finite state machines}}) zu beschreiben. [[Verilog]] und [[Very High Speed Integrated Circuit Hardware Description Language|VHDL]] gehören zu den derzeit weltweit am häufigsten gebrauchten Sprachen und haben sich als Industriestandards etabliert.


== Siehe auch ==
=== VHDL ===
Die Entwicklung der HDL hängt generell mit der Entwicklungsgeschichte der Computerindustrie und speziell [[Mikroelektronik]] zusammen. Aufgrund zunehmender Designs, Entwicklungen und Komplexität, spendierte das amerikanische [[Verteidigungsministerium der Vereinigten Staaten|Verteidigungsministerium]] (DoD) in den frühen 1980er Jahren ein Programm zur Standardisierung von digitalen Systemen, dem sog. ''VHSIC (Very High-Speed IC)-Programm''.<ref name=":0" /><ref>{{Internetquelle |url=https://semiengineering.com/knowledge_centers/languages/vhdl/ |titel=VHDL |werk=SemiconductorEngineering |hrsg=SMG |sprache=en-US |abruf=2022-12-28}}</ref> Die Umsetzung dieser Anforderung eines "standardisiertes Dokumentationswerkzeug, das detaillierte Informationen sowohl über die Schnittstelle (d. h. Eingänge und Ausgänge) als auch über das Verhalten von digitalen Systemen" bewerkstelligt, erfolgte durch die Firmen [[Texas Instruments]], [[IBM]], and [[Intermetrics]]. Eine erste Version des "Werkzeugs" VHDL wurde 1985 veröffentlicht und später an das IEEE übergeben. Das IEEE veröffentliche dann 1987 den Standard [[Very High Speed Integrated Circuit Hardware Description Language|IEEE 1076–1987]].
* [[Chipentwurf]]

=== Verilog ===
[[Verilog]] entstand unabhängig von VHDL und wurde als HDL zur Logiksimulation ([[Verilog-XL]]) 1983 von [[Automated Integrated Design Systems]] (später: [[Gateway Design Automation]]) unter [[Federführung]] von [[Phil Moorby]] entwickelt.<ref>{{Internetquelle |url=https://computerhistory.org/profile/philip-moorby/ |titel=Philip Moorby |hrsg=[[Computer History Museum]] |sprache=en |abruf=2022-12-28}}</ref> GDA wurde schließlich 1990 von [[Cadence Design Systems|Cadence]] übernommen. Um gegenüber VHDL nicht an Popularität einzubüßen, veröffentliche Cadence die HDL zur Weiterentwicklung. Das IEEE normierte Verilog schließlich 1995 als Standard IEEE 1364.

=== KARL und ABL Sprachen ===
Die ersten Hardware-Beschreibungssprachen (um 1977) waren ISP (Instruction Set Processor)<ref>{{Literatur |Autor=Mario R. Barbacci, Gary E. Barnes, Roderic Geoffrey Galton Cattell, Daniel P. Siewiorek |Titel=The ISPS Computer Description Language |Hrsg= |Verlag=Computer Science Department ([[Carnegie Mellon University]]) |Datum=1978-06-01 |Sprache=en |DOI=10.1184/R1/6610637.v1 |Online=https://kilthub.cmu.edu/articles/journal_contribution/The_ISPS_computer_description_language_the_symbolic_manipulation_of_computer_descriptions/6610637/1 |Abruf=2022-12-28}}</ref> von der [[Carnegie Mellon University]], und KARL, von der [[Karlsruher Institut für Technologie|Universität Karlsruhe]], später weiterentwickelt an der [[Technische Universität Kaiserslautern|TU Kaiserslautern]].<ref>{{Literatur |Autor=[[Reiner Hartenstein|Reiner W. Hartenstein]] |Titel=KARL and ABL |Sammelwerk=Fundamentals and Standards in Hardware Description Languages |Verlag=Springer Netherlands |Ort=Dordrecht |Datum=1993 |Sprache=en |ISBN=978-94-010-4846-0 |DOI=10.1007/978-94-011-1914-6_16 |Seiten=447–466 |Online=http://link.springer.com/10.1007/978-94-011-1914-6_16 |Abruf=2022-12-28}}</ref> ISP ähnelte einer Software-Programmiersprache und diente der Beschreibung des Ein-/Ausgabe-Verhaltens für die Simulation. Damit ist es allerdings kaum verwendbar für die Synthese. Zur Sprache KARL und ihrer Implementierung gehörte auch ein Entwurfs-Kalkül zur Unterstützung von „{{lang|en|VLSI chip floorplanning}}“ und strukturiertem Hardware-Entwurf. Es stellt auch die Basis von KARLs interaktiv graphischer Schwester-Sprache ABL, implementiert in den frühen 1980er Jahren beim Forschungszentrum [[CSELT]] in [[Turin]], Italien, als graphisches VLSI-Entwurfs-System ABLED. In der Mitte der 1980er Jahre implementierte ein EU-gefördertes Konsortium ein komplettes „{{lang|en|VLSI design framework}}“ um KARL und ABL herum.<ref>{{Literatur |Titel=Fundamentals and Standards in Hardware Description Languages |Hrsg=Jean P. Mermet |Verlag=Springer Netherlands |Ort=Dordrecht |Datum=1993 |Sprache=en |ISBN=978-94-010-4846-0 |DOI=10.1007/978-94-011-1914-6 |Online=http://link.springer.com/10.1007/978-94-011-1914-6 |Abruf=2022-12-28}}</ref> 1983 führte die Firma Data-I/O die Sprache ABEL ein, um Logik-Systeme und Schaltwerke (engl. {{lang|en|finite state machines}}) zu beschreiben.

== Abgrenzung "Programmierung" ==
Regelmäßig (und fälschlicherweise) wird der Begriff [[Programmierung|''Programmieren'']] synonym für das Schreiben einer Hardwarebeschreibung benutzt. Dies resultiert daraus, dass HDLs eine ausführbare Spezifikation einer bestimmten Hardware darstellen. Ein Simulationsprogramm, das die grundlegende Semantik der Sprache und den Verlauf der Zeit bereitstellt, bietet dem [[Elektronikentwickler]] die Möglichkeit, ein Stück Hardware zu modellieren, bevor es physisch, [[Halbleitertechnik|halbleitertechnisch]] hergestellt wird. Diese Möglichkeit der Ausführung lässt es so aussehen, als würde diese Sprache dazu benutzt, etwas zu "programmieren", wobei sich diese Art der Ausführung von der Software [[Kompilierung]] und Ausführung unterscheidet.

== Erweiterungen & System-Sprachen ==
Es existieren auch HDLs und Simulatoren für das Modellieren in [[Digitaltechnik|Digital-]] und [[Analogtechnik]], bspw. die Erweiterung '''VHDL-AMS''' (kurz für: VHDL ''Analog-Mixed-Signal'').<ref>{{Literatur |Autor=Johann Siegl, Edgar Zocher |Titel=Entwicklungsmethodik und Entwurfswerkzeuge |Sammelwerk=Schaltungstechnik |Verlag=Springer Berlin Heidelberg |Ort=Berlin, Heidelberg |Datum=2018 |ISBN=978-3-662-56285-7 |DOI=10.1007/978-3-662-56286-4_2 |Seiten=9–92 |Online=http://link.springer.com/10.1007/978-3-662-56286-4_2 |Abruf=2022-12-28}}</ref>

Es ist möglich, Hardware [[Semantik (Logik)|semantisch]] in einer verbreiteten Sprache wie [[C++]], in Verbindung mit umfangreichen Klassenbibliotheken, zu beschreiben. Diesen Ansatz verfolgt [[SystemC]], welches aber derzeit nur in Ausnahmefällen synthesefähig ist und primär im akademischen Bereich eingesetzt wird. "Normales" C++ enthält hingegen außerdem keine Möglichkeiten, um einen Zeitverlauf zu beschreiben, und ist deshalb nicht geeignet.

== Standards ==
HDLs sind durch verschiedene IEEE und IEC Standards normiert. Das [[Institute of Electrical and Electronics Engineers|IEEE]] '''Design Automation Standards Committee (DASC)''' ist für die Normierung verantwortlich.<ref>{{Internetquelle |url=https://www.dasc.org/ |titel=DASC Webpage |hrsg=The Design Automation Standards Committee |sprache=en |abruf=2022-12-28}}</ref> Im folgenden seien einige Beispiele aufgezählt:<ref>{{Internetquelle |url=https://www.accellera.org/downloads/ieee |titel=IEEE Standards |hrsg=Accellera Systems Initiative |datum=2022 |sprache=en |abruf=2022-12-28}}</ref>

* IEEE 1076-2019 - VHDL<ref>{{Internetquelle |url=https://standards.ieee.org/ |titel=IEEE 1076-2019 – IEEE Standard for VHDL Language Reference Manual |werk=IEEE SA |hrsg=IEEE |datum=2019-12-23 |sprache=en |abruf=2022-12-28}}</ref>
* IEC - 62530 - SystemVerilog<ref>{{Internetquelle |url=https://standards.globalspec.com/std/14397894/62530 |titel=IEC - 62530 - SystemVerilog – Unified Hardware Design, Specification, and Verification Language {{!}} Engineering360 |werk=GlobalSpec / Engineering360 |hrsg=[[International Electrotechnical Commission]] (IEC) |datum=2021-07-01 |sprache=en |abruf=2022-12-28}}</ref>
* IEC - 61691-6: Behavioural languages – Part 6: VHDL Analog and Mixed-Signal Extensions<ref>{{Internetquelle |url=https://standards.globalspec.com/std/14389189/61691-6 |titel=IEC - 61691-6 - Behavioural languages – Part 6: VHDL Analog and Mixed-Signal Extensions {{!}} Engineering360 |werk=GlobalSpec / Engineering360 |hrsg=[[International Electrotechnical Commission]] (IEC) |datum=2021-06-01 |sprache=en |abruf=2022-12-28}}</ref>


== Literatur ==
== Literatur ==
{{Siehe auch|Chipentwurf|Mikroelektronik}}
* {{Literatur

|Autor=[[Reiner Hartenstein]]
=== Skripte ===
|Titel={{lang|en|Fundamentals of Structured Hardware Design. A Design Language Approach at Register Transfer Language}}

|Verlag=North Holland Publ. Co./Elsevier Scientific
* {{Literatur |Autor=Andreas Mäder |Titel=VHDL Kompakt |Ort=Universität Hamburg |Datum=2022 |Online=https://tams.informatik.uni-hamburg.de/vhdl/doc/ajmMaterial/vhdl.pdf}}
|Ort=Amsterdam/New York
|Datum=1977
|ISBN=0-444-85007-4}}
* {{Literatur
|Hrsg=Jean P. Mermet
|Titel={{lang|en|Fundamentals and Standards in Hardware Description Languages}}
|Verlag=Kluwer Academic Publishers
|Ort=Dordrecht
|Datum=1993
|ISBN=0-7923-2513-3}}


== Weblinks ==
== Weblinks ==

* [http://xputers.informatik.uni-kl.de/karl/karl_history_fbi.html The History of KARL and ABL]
* [https://systemc.org SystemC] ([[Accellera|Accellera Systems Initiative]])


== Einzelnachweise ==
== Einzelnachweise ==

Version vom 28. Dezember 2022, 17:37 Uhr

Eine Hardwarebeschreibungssprache (englisch Hardware Description Language, HDL) ist eine formale Sprache, mit der Operationen von integrierten Schaltungen und ihr Design beschrieben sowie in Simulationen getestet werden können.[1] Die Sprachen Verilog und VHDL gehören zu den weltweit am häufigsten genutzten Sprachen um digitale Logik zu beschreiben und sind als Industriestandards etabliert.[2] HDLs sind Teil der Electronic Design Automation.

Hardwarebeschreibungssprachen drücken ein zeitliches Verhalten und/oder eine (räumliche) Schaltkreisstruktur in normalem Text aus. Im Gegensatz zu Software-Programmiersprachen beinhalten Syntax und Semantik der HDLs in ihrer Notation Möglichkeiten, zeitliche Abläufe und Gleichzeitigkeiten auszudrücken, wie es von Hardware verlangt wird. Sprachen, deren einziges Merkmal es ist, Verbindungen von elektronischen Schaltungen in Form von Netzlisten wiederzugeben, werden als Netlist-Sprachen bezeichnet.

Anwendung

Ein Grund für den Einsatz einer HDL ist die Möglichkeit der automatischen Erzeugung von Netzlisten für integrierte Schaltungen durch ein Synthesetool. So lassen sich Schaltungen beispielsweise in konfigurierbaren Mikroelektronik-Bausteinen wie Field Programmable Gate Arrays (FPGAs) oder in anwendungsspezifischen integrierten Schaltungen (ASICs) realisieren.

Für die Synthese der Schaltung, das Erzeugen einer Netzliste, ist typischerweise nur ein Teil der Sprache, bezogen auf Syntax und Semantik, geeignet. Im Bereich digitaler Schaltung kommt bevorzugt die Logiksynthese zur Anwendung. Die restlichen Teile der Sprache eignen sich zum einfacheren Modellieren einer Testumgebung zur Verifikation der Funktionsfähigkeit in Simulationsprogrammen. Ein Beispiel für ein nicht synthesefähiges Sprachkonstrukt, ist die Ein- und Ausgabe von Dateien (File-I/O), das nur in der Simulationsumgebung zur Verfügung steht. Der konkrete Umfang, welche Teile der Sprache noch synthesefähig sind, hängt von den eingesetzten Synthesewerkzeugen ab. So waren in der Anfangszeit der Logiksynthese digitale Multiplikationen nicht direkt synthetisierbar. Die im Jahr 2008 verfügbaren Werkzeuge beherrschen im Regelfall die direkte Synthese der Multiplikationsoperation in Hardware.

Folgende Abstraktionsebenen werden verwendet:

  • Verhaltensmodell (behavioral, zum Teil nicht synthesefähig)
  • Register-Transfer-Level (RTL-Modell, synthesefähig)
  • Gatelevel-Modell (Netzliste)

Geschichte

VHDL

Die Entwicklung der HDL hängt generell mit der Entwicklungsgeschichte der Computerindustrie und speziell Mikroelektronik zusammen. Aufgrund zunehmender Designs, Entwicklungen und Komplexität, spendierte das amerikanische Verteidigungsministerium (DoD) in den frühen 1980er Jahren ein Programm zur Standardisierung von digitalen Systemen, dem sog. VHSIC (Very High-Speed IC)-Programm.[1][3] Die Umsetzung dieser Anforderung eines "standardisiertes Dokumentationswerkzeug, das detaillierte Informationen sowohl über die Schnittstelle (d. h. Eingänge und Ausgänge) als auch über das Verhalten von digitalen Systemen" bewerkstelligt, erfolgte durch die Firmen Texas Instruments, IBM, and Intermetrics. Eine erste Version des "Werkzeugs" VHDL wurde 1985 veröffentlicht und später an das IEEE übergeben. Das IEEE veröffentliche dann 1987 den Standard IEEE 1076–1987.

Verilog

Verilog entstand unabhängig von VHDL und wurde als HDL zur Logiksimulation (Verilog-XL) 1983 von Automated Integrated Design Systems (später: Gateway Design Automation) unter Federführung von Phil Moorby entwickelt.[4] GDA wurde schließlich 1990 von Cadence übernommen. Um gegenüber VHDL nicht an Popularität einzubüßen, veröffentliche Cadence die HDL zur Weiterentwicklung. Das IEEE normierte Verilog schließlich 1995 als Standard IEEE 1364.

KARL und ABL Sprachen

Die ersten Hardware-Beschreibungssprachen (um 1977) waren ISP (Instruction Set Processor)[5] von der Carnegie Mellon University, und KARL, von der Universität Karlsruhe, später weiterentwickelt an der TU Kaiserslautern.[6] ISP ähnelte einer Software-Programmiersprache und diente der Beschreibung des Ein-/Ausgabe-Verhaltens für die Simulation. Damit ist es allerdings kaum verwendbar für die Synthese. Zur Sprache KARL und ihrer Implementierung gehörte auch ein Entwurfs-Kalkül zur Unterstützung von „VLSI chip floorplanning“ und strukturiertem Hardware-Entwurf. Es stellt auch die Basis von KARLs interaktiv graphischer Schwester-Sprache ABL, implementiert in den frühen 1980er Jahren beim Forschungszentrum CSELT in Turin, Italien, als graphisches VLSI-Entwurfs-System ABLED. In der Mitte der 1980er Jahre implementierte ein EU-gefördertes Konsortium ein komplettes „VLSI design framework“ um KARL und ABL herum.[7] 1983 führte die Firma Data-I/O die Sprache ABEL ein, um Logik-Systeme und Schaltwerke (engl. finite state machines) zu beschreiben.

Abgrenzung "Programmierung"

Regelmäßig (und fälschlicherweise) wird der Begriff Programmieren synonym für das Schreiben einer Hardwarebeschreibung benutzt. Dies resultiert daraus, dass HDLs eine ausführbare Spezifikation einer bestimmten Hardware darstellen. Ein Simulationsprogramm, das die grundlegende Semantik der Sprache und den Verlauf der Zeit bereitstellt, bietet dem Elektronikentwickler die Möglichkeit, ein Stück Hardware zu modellieren, bevor es physisch, halbleitertechnisch hergestellt wird. Diese Möglichkeit der Ausführung lässt es so aussehen, als würde diese Sprache dazu benutzt, etwas zu "programmieren", wobei sich diese Art der Ausführung von der Software Kompilierung und Ausführung unterscheidet.

Erweiterungen & System-Sprachen

Es existieren auch HDLs und Simulatoren für das Modellieren in Digital- und Analogtechnik, bspw. die Erweiterung VHDL-AMS (kurz für: VHDL Analog-Mixed-Signal).[8]

Es ist möglich, Hardware semantisch in einer verbreiteten Sprache wie C++, in Verbindung mit umfangreichen Klassenbibliotheken, zu beschreiben. Diesen Ansatz verfolgt SystemC, welches aber derzeit nur in Ausnahmefällen synthesefähig ist und primär im akademischen Bereich eingesetzt wird. "Normales" C++ enthält hingegen außerdem keine Möglichkeiten, um einen Zeitverlauf zu beschreiben, und ist deshalb nicht geeignet.

Standards

HDLs sind durch verschiedene IEEE und IEC Standards normiert. Das IEEE Design Automation Standards Committee (DASC) ist für die Normierung verantwortlich.[9] Im folgenden seien einige Beispiele aufgezählt:[10]

  • IEEE 1076-2019 - VHDL[11]
  • IEC - 62530 - SystemVerilog[12]
  • IEC - 61691-6: Behavioural languages – Part 6: VHDL Analog and Mixed-Signal Extensions[13]

Literatur

Skripte

  • Andreas Mäder: VHDL Kompakt. Universität Hamburg 2022 (uni-hamburg.de [PDF]).

Weblinks

Einzelnachweise

  1. a b Brock J. LaMeres: Introduction to Logic Circuits & Logic Design with VHDL. Springer International Publishing, Cham 2019, ISBN 978-3-03012488-5, S. 156 ff., doi:10.1007/978-3-030-12489-2 (springer.com [abgerufen am 28. Dezember 2022]).
  2. Lu Dai: Make an Impact and Get Involved in Standards Development and Evolution. In: EDACafé. Internet Business Systems Inc., 12. März 2020, abgerufen am 28. Dezember 2022 (englisch).
  3. VHDL. In: SemiconductorEngineering. SMG, abgerufen am 28. Dezember 2022 (amerikanisches Englisch).
  4. Philip Moorby. Computer History Museum, abgerufen am 28. Dezember 2022 (englisch).
  5. Mario R. Barbacci, Gary E. Barnes, Roderic Geoffrey Galton Cattell, Daniel P. Siewiorek: The ISPS Computer Description Language. Computer Science Department (Carnegie Mellon University), 1. Juni 1978, doi:10.1184/R1/6610637.v1 (englisch, cmu.edu [abgerufen am 28. Dezember 2022]).
  6. Reiner W. Hartenstein: KARL and ABL. In: Fundamentals and Standards in Hardware Description Languages. Springer Netherlands, Dordrecht 1993, ISBN 978-94-010-4846-0, S. 447–466, doi:10.1007/978-94-011-1914-6_16 (englisch, springer.com [abgerufen am 28. Dezember 2022]).
  7. Jean P. Mermet (Hrsg.): Fundamentals and Standards in Hardware Description Languages. Springer Netherlands, Dordrecht 1993, ISBN 978-94-010-4846-0, doi:10.1007/978-94-011-1914-6 (englisch, springer.com [abgerufen am 28. Dezember 2022]).
  8. Johann Siegl, Edgar Zocher: Entwicklungsmethodik und Entwurfswerkzeuge. In: Schaltungstechnik. Springer Berlin Heidelberg, Berlin, Heidelberg 2018, ISBN 978-3-662-56285-7, S. 9–92, doi:10.1007/978-3-662-56286-4_2 (springer.com [abgerufen am 28. Dezember 2022]).
  9. DASC Webpage. The Design Automation Standards Committee, abgerufen am 28. Dezember 2022 (englisch).
  10. IEEE Standards. Accellera Systems Initiative, 2022, abgerufen am 28. Dezember 2022 (englisch).
  11. IEEE 1076-2019 – IEEE Standard for VHDL Language Reference Manual. In: IEEE SA. IEEE, 23. Dezember 2019, abgerufen am 28. Dezember 2022 (englisch).
  12. IEC - 62530 - SystemVerilog – Unified Hardware Design, Specification, and Verification Language | Engineering360. In: GlobalSpec / Engineering360. International Electrotechnical Commission (IEC), 1. Juli 2021, abgerufen am 28. Dezember 2022 (englisch).
  13. IEC - 61691-6 - Behavioural languages – Part 6: VHDL Analog and Mixed-Signal Extensions | Engineering360. In: GlobalSpec / Engineering360. International Electrotechnical Commission (IEC), 1. Juni 2021, abgerufen am 28. Dezember 2022 (englisch).