-- 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.