Kalábovi

Kalábovic wikina

Uživatelské nástroje

Nástroje pro tento web


pitel:msz:jazyk_vhdl

Jazyk VHDL

Entita

Entita slouží na identifikaci komponenty a popisu jejího rozhraní. Popis entity obsahuje název entity, nastavení pro generické proměnné a zejména popis rozhraní obvodu.

V reálu si to můžete představit jako černej šváb s nožičkama o kterým víte který nožíčky k čemu slouží.

entity invertor_gen is
 
   -- počet invertorů
   generic (
      len: integer := 4  
   ); 
 
   port (
      I : in std_logic_vector (len - 1 downto 0);
      O : out std_logic_vector (len - 1 downto 0)
   );
end invertor_gen;

Architektura

Popisuje vnitřek entity.

Popisovat ji může třemi způsoby, které lze kombinovat:

  • Strukturálně – z čeho je komponenta složena
  • Behaviorálně – co komponenta dělá
  • Dataflow – datové toky signálů
architecture name_of_architecture of name_of_entity is --architekturu lze ale použítt pi pro jinou entitu
    -- Deklarační část, je vyhrzena pro deklarace signálů, konstant nebo typů použitých uvnitř architektury
begin
    -- Příkazy (provádějí se paralelně, jsou to procesy)
end architecture name_of_architecture;

Procesy

Proces je vnitřní jednotka architektury (něco podobného jako funkce u běžných programů). V jedné architektuře může být mnoho procesů. Všechny procesy běží vzájemně paralelně (opravdu paralelně, nejedná se o přepínání kontextu jako u programů). Pokud je nutné procesy mezi sebou synchronizovat, je nutné k tomu využít signálů. V hlavičce procesu je jeho název a sensitivity list, což je seznam signálů, které vyvolají jeho spuštění (při simulaci, ve skutečnosti běží proces pořád).

Tělem procesu je pak popis reakce na vstup. Příkazy uvnitř procesu se provádějí sekvenčně, je však nutné si uvědomit chování signálů, se kterými se pracuje uvnitř (viz uchovávání stavu).

name_of_process: process (sensitivity_list) --sensitivity list určuje na jaké vstupy má proces reagovat
    -- Deklarace proměnných, konstant a typů použitých uvnitř procesu
begin
    -- Sekvenční příkazy
end process name_of_process;
/var/www/wiki/data/pages/pitel/msz/jazyk_vhdl.txt · Poslední úprava: 25. 05. 2017, 15.45:10 autor: pitel