share: true
aliases:
- 11 Základy VHDL
author: Petr
complete: true
Základní pojmy jazyka VHDL (entita, architektura, proces, signál).
- Knihovna
- Library IEEE
- use IEEE.std_logic_1164.all.
- Entita
- Popisuje rozhraní
- 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
architecture <název> of <název_entity> is
signal <název> : <typ>;
<declarations>
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=‘1’ then
Q <= ‘0’;
elsif CLK’EVENT and CLK=‘1’ then
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=‘0’ then
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=‘1’ then
Q <= D;
end if;
end process LATCHPR;
DFFPR : process (CLK)
begin
if CLK=‘1’ then
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 SEL: is
when "0001" => Y <= A(0);
when "0010" => Y <= A(1);
when "0100" => Y <= A(2);
when others => Y <= A(3);
end case;
type T_STATE is (INIT,ADDR,READ,WRITE,FINISH);
signal Current_State, Next_State : T_STATE;
- Komponenty

- 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