VHDL

programovací jazyk
(přesměrováno z IEEE 1076)

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

editovat

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

editovat

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ů

editovat
  • 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

editovat
  • 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

editovat
-- (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

editovat

Reference

editovat
  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é v archivu pořízeném dne 2022-01-01. (anglicky) 

Literatura

editovat

Externí odkazy

editovat