VHDL
VHDL (VHSIC Hardware Description Language) je v informatice název jazyka, který slouží pro popis hardwaru (HDL – Hardware Description Language). Používá se pro návrh a simulaci digitálních integrovaných obvodů, například programovatelných hradlových polí (CPLD, FPGA) nebo různých zákaznických obvodů (ASIC). Jazyk VHDL může být použit i jako paralelní programovací jazyk.
Charakteristika
Jazyk VHDL byl původně vyvinut na Ministerstvu obrany USA v rámci vládního programu VHSIC (Very High Speed Integrated Circuits) s cílem vytvořit prostředek pro dokumentaci a popis chování zákaznických integrovaných obvodů a jednotnou platformu pro simulaci hardware nezávislou na technologii. Filozofie jazyka VHDL vychází z jazyka ADA a specifikace jazyka byla přijata jako standard IEEE 1076-1987 v roce 1987, který byl následně několikrát přepracován a rozšířen.[1] Poslední revize je z roku 2019.[2]
Jazyk VHDL je navržen tak, aby podporoval všechny úrovně abstrakce používané pro návrh takových obvodů: umožňuje popsat obvod na hradlové, RTL i algoritmické úrovni. Je použitelný i pro návrh analogových obvodů. Programovací jazyk VHDL je silně typovaný. Má prostředky pro popis paralelismu, konektivity a explicitní vyjádření času. Jazyk VHDL se používá jak pro simulaci obvodů, tak i pro popis integrovaných obvodů, které se mají vyrábět.[1]
Zkratka VHDL znamená VHSIC Hardware Description Language (česky jazyk pro popis hardware), kde VHSIC je zkratka z Very-High-Speed Integrated Circuit (česky velmi rychlé integrované obvody).
Základní konstrukce
Jazyk VHDL popisuje číslicová zařízení a jednotlivé jejich části pomocí komponent:
- entita - definuje rozhraní komponenty (pouze vstupy a výstupy, ne funkci)
- architektura - určuje funkci a chování (má dvě části - deklarační a příkazovou)
Pro jednu entitu může existovat více architektur (implementací).
Módy portů
- IN - data lze z portu pouze číst
- OUT - data vycházejí z portu
- BUFFER - výstup se zpětnou vazbou
- INOUT - obousměrný tok
- LINKAGE - neznámý směr datového toku (obousměrný)
Styly popisu architektury
- strukturální popis
- vhodné pro syntézu
- návrhář si řídí architekturu svého návrhu
- behaviorální popis
- popis na vysoké úrovni abstrakce
- použití hlavně pro simulaci
- dataflow popis
- vkládání komponent do netlistu
- omezení možností syntézy
- detailní časové simulace
Příklad kódu
-- (tohle je komentář) -- import std_logic z knihovny IEEE library IEEE; use IEEE.std_logic_1164.all; -- definice entity... entity my_and is port (IN1, IN2 : in std_logic; OUT1: out std_logic); end entity; -- ...a architektury architecture example of my_and is begin OUT1 <= IN1 and IN2; end example;
Související články
- Verilog
Reference
- ↑ a b ŠŤASTNÝ, Jakub. FPGA prakticky. 1. vyd. Praha: BEN - technická literatura, 2010. 200 s. ISBN 978-80-7300-261-9. S. 48.
- ↑ IEEE 1076-2019 - IEEE Standard for VHDL Language Reference Manual [online]. IEEE Standard Association, 2019-09-05 [cit. 2022-01-01]. Dostupné v archivu pořízeném dne 2022-01-01. (anglicky)
Literatura
- Pinker Jiří, Poupa Martin: Číslicové systémy a jazyk VHDL, BEN - technická literatura, 2006, ISBN 80-7300-198-5
- Král Jiří: Řešené příklady ve VHDL, BEN - technická literatura, 2010, ISBN 978-80-7300-257-2
Externí odkazy
Obrázky, zvuky či videa k tématu VHDL na Wikimedia Commons
- VHDL Syntax (IEEE Std 1076-1993)
- VHDL Syntax (IEEE Std 1076-2002)
- PDF Free range VHDL
![]() | Tento článek je příliš stručný nebo postrádá důležité informace. Pomozte Wikipedii tím, že jej vhodně rozšíříte. Nevkládejte však bez oprávnění cizí texty. |
Programovací jazyky | |
---|---|
abecední seznam programovacích jazyků | |
multiparadigmatické | |
strukturované (procedurální) | |
objektové | BETA • Boo • C# • Eiffel • Java (Groovy, Kotlin) • JavaScript • Object Pascal • Objective-C • Smalltalk • VB.NET |
funkcionální | Clean • Ceylon • Erlang • Haskell • J • Lisp • Wolfram Language / Mathematica • Miranda • OCaml • Scheme |
dotazovací | |
logické | Gödel • Prolog |
výukové | |
ezoterické | |
historické | |
další | ABAP • AppleScript • ColdFusion • JSA • Julia • MATLAB • R • Visual Basic (VBScript) • Vimscript • Visual FoxPro |
skriptovací/strojový kód • kompilované/interpretované • interaktivní/dávkové • WYSIWYG |