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

  1. a b ŠŤASTNÝ, Jakub. FPGA prakticky. 1. vyd. Praha: BEN - technická literatura, 2010. 200 s. ISBN 978-80-7300-261-9. S. 48. 
  2. IEEE 1076-2019 - IEEE Standard for VHDL Language Reference Manual [online]. IEEE Standard Association, 2019-09-05 [cit. 2022-01-01]. Dostupné online. (anglicky) 

Literatura

Externí odkazy

  • Logo Wikimedia Commons 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
Pahýl
Pahýl
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é
Ada • C++Common Lisp • D • F# • Go • Oberon • PerlPHPPythonRuby • Rust • Scala • Swift • Tcl (Tk) • Vala
strukturované (procedurální)
AWK • C • COBOLDCL • Forth • FortranLuaModula-2 / Modula-3 • Pascal • PawnPL/SQL
objektové
BETA • Boo • C# • Eiffel • Java (Groovy, Kotlin) • JavaScriptObject PascalObjective-CSmalltalkVB.NET
funkcionální
Clean • Ceylon • Erlang • Haskell • J • LispWolfram Language / Mathematica • Miranda • OCamlScheme
dotazovací
LINQSPARQLSQLXQueryXSL (XSLTXSL-FOXPath)
logické
Gödel • Prolog
výukové
Baltazar • Baltík • Karel • Kodu Game Lab • Logo • Microsoft Small Basic • Petr • Scratch
ezoterické
BefungeBrainfuckHQ9+MalbolgeOok!PietWhitespace
historické
ALGOL • APL • B • BASICCPL (BCPL) • J • MUMPSPL/ISimula 67SNOBOL
další
ABAPAppleScriptColdFusionJSA • Julia • MATLAB • R • Visual Basic (VBScript) • VimscriptVisual FoxPro
skriptovací/strojový kódkompilované/interpretované • interaktivní/dávkovéWYSIWYG
Autoritní data Editovat na Wikidatech
  • NKC: ph137700
  • PSH: 13744
  • LCCN: sh89002702
  • LNB: 000093915
  • NLI: 987007546559905171