11 Základy VHDL

Základní pojmy jazyka VHDL (entita, architektura, proces, signál).

  • Knihovna
    • Library IEEE
    • use IEEE.std_logic_1164.all.
  • Entita
    • Popisuje rozhraní
      • Vstupy a výstupy
    • Nedefinuje chování
    • Typy
      • Bit - 0 nebo 1
      • std_logic - 0,1,Z,X,L,H,W,U,-
entity <název> is
port (
	<port_name> : in <type>;
	<port_name> : out <type>
	);
end entity <název>;
  • Architektura
    • Popisuje chování nebo vnitřní strukturu anentity
    • Musí být propojena s konkrétní Entitou
    • Jedna entita může mít víc architektur
    • Konstrukce
      • Signály - vnitřní proměnné
      • Procesy - reagují a mění signály
      • Instance Komponent
        • Reprezentují instanci jiné entity
        • Propojují se pomocí port map <signály>
      • Paralelní příkazy
        • Popisují datový tok
architecture <název> of <název_entity> is
	signal <název> : <typ>;
	<declarations>
	-- internal signals
	-- components
	-- constants, data types
begin
	<paralelní příkazy>
	<proces>
	<instance komponent>
end <název>;
  • Proces
    • Sekce obsahující sekvenční příkazy
    • Existuje uvnitř architektury
    • VHDL popisuje Hardware - vše se děje paralelně/současně
      • Proces je nekonečná smyčka
    • Sensitivní seznam procesu
      • Jedná se o seznam signálů při nichž se spustí proces
      • Pokud má proces sensitivní seznam nesmí obsahovat wait
      • Pokud nemá sensitivní seznam musí mít wait
<název_procesu> : process (<sensitivity list>)
begin
	<sekvenční příkazy>
end process <název_procesu>;
CLKGENPR : process
begin
	CLK <=0;
	wait for 10 ns;
	CLK <=1;
	wait for 10 ns;
end process CLKGENPR;
DFFPR : process (CLK, RESET)
begin
	if RESET=1then
		Q <=0;
	elsif CLK’EVENT and CLK=1then
		Q <= D;
	end if;
end process DFFPR;
  • Signál
    • Způsob komunikace mezi procesy, slouží k předání hodnot a informací
    • Signál si pamatuje hodnotu, dokud není změněn
    • Signály nastaveny v jednu chvíli se nastaví současně ale až za
      • Víc změn před uplynutím času přepíše a provede se ta poslední
DFF1 : process
begin
	Q1 <= D1;
	wait until CLK=1;
end process DFF1;

Syntetizovatelný popis kombinační logiky a sekvenčních obvodů v jazyce VHDL.

  • Oddělení sekvenční a kombinační logiky
  • Kombinační obvod
    • Všechny vstupy v citlivostním seznamu
    • Výstupní hodnota musí být definovaná pro všechny hodnoty a kombinace vstupních signálů
      • Výstup se vyhodnocuje na základě změny některého ze vstupních signálů
    • Proces popisující kombinační logiku musí mít všechny vstupní signály v senzitivním seznamu
      • Všechny větve musí mít else
MUXPR : process (SEL, A0, A1)
begin
	if SEL=0then
		Y <= A0;
	else
		Y <= A1;
	end if;
end process MUXPR;
  • Sekvenční obvod
    • Latch
      • Sekvenční chování
      • Popsání nekompletním senzitivním seznamen
      • Při pamatování hodnoty nepřiřazuje výstupní hodnotu
    • Flip Flop
      • Výstup se mění jen na CLK
		LATCHPR : process (ENABLE, D)
		begin
			if ENABLE=1then
				Q <= D;
			end if;
		end process LATCHPR;
		DFFPR : process (CLK)
		begin
			if CLK=1then
				Q <= D;
			end if;
		end process DFFPR;
  • Popis konečného automatu
    • Přechodová funkce
    • Registr stavů (sekvenční)
    • Výstupní funkce
    • Syntézní nástroj to pozná a umí optimalizovat
  • Vektor
signal SEL : std_logic_vector (3 downto 0)
  • Case
Case SEL: is
	when "0001" => Y <= A(0);
	when "0010" => Y <= A(1);
	when "0100" => Y <= A(2);
	when others => Y <= A(3);
end case;
  • Vlastní datový typ
type T_STATE is (INIT,ADDR,READ,WRITE,FINISH);

signal Current_State, Next_State : T_STATE;
  • Komponenty
  • Pasted image 20260613143912.png
  • Rozdíl mezi <= a :=. := se používá pouze jako přiřazení proměnné provádí se okamžitě, funguje jako v c =. <= přiřazuje hodnoty signálům po čase x +

Vytvořeno: 16. 6. 2026, 14:00
Poslední aktualizace: 16. 6. 2026, 14:00