Privacy Policy Cookie Policy Terms and Conditions Hardwarebeschreibungssprache - Wikipedia

Hardwarebeschreibungssprache

aus Wikipedia, der freien Enzyklopädie

Eine Hardwarebeschreibungssprache (engl. 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 als Blöcke wiederzugeben, werden als Netlist-Sprachen bezeichnet.

HDLs für digitale Schaltungen sind z. B. VHDL und Verilog HDL.

[Bearbeiten] 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. Normales C++ enthält hingegen außerdem keine Möglichkeiten, um einen Zeitverlauf zu beschreiben, und ist deshalb wenig geeignet.

[Bearbeiten] 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 auf mehrere programmierbare Bausteine verteilen oder Teile davon in einem ASIC realisieren.

Für die elektronische Synthese (das Erzeugen einer Netzliste) ist typischerweise nur ein Teil der Sprache (bezogen auf Syntax und Semantik) geeignet. Die restlichen Teile eignen sich zum einfacheren Modellieren der Testbench (der Umgebung). Typischerweise sind die Division (Ausnahme, Division durch eine Zweierpotenz) oder dymanische Programmierung nicht synthesefähig. Der Grund für ist die hohe Komplexität der Division, sowie die fehlende Umsetzbarkeit der dynamischen Programmierung.

Folgende Abstraktionsebenen werden verwendet:

  • Verhaltensmodell (behavioral, nicht synthesefähig)
  • RTL-Modell (synthesefähig)
  • Gatelevel-Modell (Netzliste)

[Bearbeiten] Siehe auch

Chipentwurf

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -