-- tekst komentarza
library IEEE; use IEEE.STD_LOGIC_1164.all;Powyższe polecenia należy powtórzyć przed definicją każdego kolejnego elementu projektu (entity).
variable z: std_logic;
variable tz: std_logic_vector(0 to i);Tablice mogą być deklarowane z użyciem słowa kluczowego "downto" w miejsce "to". Nie można zmiennej tablicowej zadeklarowanej jednym z tych sposobów podstawić w miejsce parametru zadeklarowanego drugim z nich.
signal s: std_logic;
signal ts: std_logic_vector(0 to i);Tablice mogą być deklarowane z użyciem słowa kluczowego "downto" w miejsce "to". Nie można zmiennej tablicowej zadeklarowanej jednym z tych sposobów podstawić w miejsce parametru zadeklarowanego drugim z nich.
z := '1';
tz := "001011";
s <= '1';
ts <= "001011";
entity ent1 is port ( -- przykładowa lista parametrów we: in std_logic; s: inout std_logic; wy: out std_logic ); end ent1; architecture ar_ent1 of ent1 is -- deklaracja lokalnych zmiennych/sygnałów i komponentów begin ... end ar_ent1;Wewnątrz bloku architecture instrukcje wykonywane są równolegle.
component ent2 port( -- lista parametrów ); end component;W dalszej części programu komponent taki definiowany jest zgodnie ze schematem z poprzedniego punktu. Wszystkie poza głównym elementy projektu deklarowane są jako komponenty elementu nadrzędnego.
<Id>: ent2 port map (<lista parametrów>);<Id> jest obowiązkową etykietą instrukcji.
process (<lista parametrów>) -- deklaracja zmiennych/sygnałów lokalnych begin ... end process;Wewnątrz bloku process instrukcje wykonywane są szeregowo. Proces jest wywoływany przy zmianie wartości jednego z jego parametrów, dlatego lista parametrów musi być pod tym względem kompletna. Zmiana wartości sygnałów zaimplementowana wewnątrz procesu następuje dopiero po zakończeniu procesu, zmiana wartości zmiennych następuje od razu.
procedure proc1(<lista parametrów>) is begin ... end proc1;Parametry procedury mogą być typu in, out lub inout. Wewnątrz procedury instrukcje wykonywane są szeregowo.
if <warunek> then ... else ... end if;Taka instrukcja może wystąpić jedynie wewnątrz procesu lub procedury. Równoległa wersja instrukcji if opisana jest poniżej.
for i in 0 to <zakres> loop ... end loop;Taka pętla może wystąpić jedynie wewnątrz procesu lub procedury. Równoległa wersja pętli for opisana jest poniżej.
<Id>: if <warunek> generate ... end generate;<Id> jest obowiązkową etykietą instrukcji.
<Id>: for i in 0 to <zakres> generate ... end generate;<Id> jest obowiązkową etykietą instrukcji.