Hardwarebeschreibungssprache

Hardwarebeschreibungssprache

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.

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 Schaltkreisen in Form von Netzlisten wiederzugeben, werden als Netlist-Sprachen bezeichnet.

Inhaltsverzeichnis

Abgrenzung

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 Hardwaredesigner 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 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

Ein Grund für den Einsatz einer allgemeinen HDL ist die Möglichkeit der automatischen Erzeugung von Netzlisten für integrierte Schaltungen durch ein Synthesetool. Auch lassen sich so Schaltungen leicht in programmierbaren 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)

Bekannte Beispiele

Die ersten Hardware-Beschreibungssprachen (um 1977) waren ISP (Instruction Set Processor)[1] von der Carnegie Mellon University, und KARL, von der Universität Karlsruhe, später weiterentwickelt an der 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 „VLSI chip floorplanning“ und strukturiertem Hardware Entwurf. Es stellt auch die Basis von KARL's 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 ([2]). 1983 führte die Firma Data-I/O die Sprache ABEL ein um Logik-Systemen und Schaltwerken (finite state machines) zu beschreiben. Verilog und VHDL gehören zu den derzeit weltweit am häufigsten gebrauchten Sprachen und haben sich als Industriestandards etabliert.

Siehe auch

Literatur

  • Reiner Hartenstein: Fundamentals of Structured Hardware Design. A Design Language Approach at Register Transfer Language. North Holland Publ. Co./Elsevier Scientific, Amsterdam/New York 1977, ISBN 0-444-85007-4.
  • Jean P. Mermet (Hrsg.): Fundamentals and Standards in Hardware Description Languages. Kluwer Academic Publishers, Dordrecht 1993, ISBN 0-7923-2513-3.

Weblinks

Einzelnachweise

  1. Barbacci, M. "The ISPS Computer Description Language," Carnegie-Mellon Univ., Dept. of Computer Science, 1977
  2. J. Mermet (editor): Fundamentals and Standards in Hardware Description Languages (Springer Verlag, 1993)

Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • FPGA — Ein FPGA ist ein programmierbarer Integrierter Schaltkreis (IC) der Digitaltechnik. Die englische Abkürzung steht für Field Programmable Gate Array und kann als „Vor Ort modifizierbarer Logikbaustein“ übersetzt werden. In FPGAs können durch… …   Deutsch Wikipedia

  • Fpga — Ein FPGA ist ein programmierbarer Integrierter Schaltkreis (IC) der Digitaltechnik. Die englische Abkürzung steht für Field Programmable Gate Array und kann als „Vor Ort modifizierbarer Logikbaustein“ übersetzt werden. In FPGAs können durch… …   Deutsch Wikipedia

  • Chipdesign — Chipentwurf (oder Chipentwicklung) bezeichnet den Prozess der Entwicklung eines Mikrochips von der ersten Idee über die Spezifikation und Umsetzung in einen Schaltplan und ein Layout bis zum gefertigten Chip. Inhaltsverzeichnis 1 Entwurfsmethoden …   Deutsch Wikipedia

  • Domino notation — Die Domino Notation ist eine den strukturierten Hardware Entwurf unterstützende graphische Darstellungsweise der Hardwarebeschreibungssprache ABL, die interaktiv graphische Version der Hardwarebeschreibungssprache KARL[1] [2]. Durch die… …   Deutsch Wikipedia

  • Moorby — Phil Moorby (* in Birmingham) ist ein englischer Techniker und Computerwissenschafter, der vor allem durch die Erfindung der Hardwarebeschreibungssprache Verilog bekannt wurde. Er machte seinen Bachelor Abschluss in Mathematik an der Universität… …   Deutsch Wikipedia

  • Domino-Notation — Die Domino Notation ist eine den strukturierten Hardware Entwurf unterstützende grafische Darstellungsweise der Hardwarebeschreibungssprache ABL, die interaktiv grafische Version der Hardwarebeschreibungssprache KARL[1][2]. Durch die Darstellung… …   Deutsch Wikipedia

  • IEEE 1076 — Very High Speed Integrated Circuit Hardware Description Language (auch VHSIC Hardware Description Language), kurz VHDL, ist eine Hardwarebeschreibungssprache, vergleichbar mit einer Programmiersprache, mit der es einfach möglich ist, komplizierte …   Deutsch Wikipedia

  • Phil Moorby — (* in Birmingham) ist ein englischer Techniker und Informatiker, der vor allem durch die Erfindung der Hardwarebeschreibungssprache Verilog bekannt wurde. Er machte seinen Bachelor Abschluss in Mathematik an der University of Southampton. Seinen… …   Deutsch Wikipedia

  • SystemVerilog — ist die erste Hardware Beschreibungs und Verifikationssprache (Hardware Description and Verification Language, kurz HDVL genannt). Sie bietet Möglichkeiten zum Design und zur Verifikation von digitalen Schaltungen. SystemVerilog wurde von… …   Deutsch Wikipedia

  • VHDL-AMS — Very High Speed Integrated Circuit Hardware Description Language (auch VHSIC Hardware Description Language), kurz VHDL, ist eine Hardwarebeschreibungssprache, vergleichbar mit einer Programmiersprache, mit der es einfach möglich ist, komplizierte …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”