Kompleksnejša vezja načrtujemo s povezovanjem posameznih gradnikov, ki predstavljajo ločene VHDL opise vezij. Posamezni gradniki se v jeziku VHDL imenujejo komponente. Pri strukturnem načrtovanju vezij se osredotočimo na povezovanje komponent, ne pa na njihove funkcije, ki so opisane posebej.
Števec z dekodirnikom |
Prikazali bomo strukturno načrtovanje BCD števca, ki ima na izhodu dekodirnik iz BCD v sedem segmentno kodo. Vzeli bomo kar VHDL opis BCD števca in dekodirnika iz prejšnjih poglavij, ki jih kot ločeni VHDL datoteki vključimo v projekt. Napisati moramo še eno VHDL datoteko, v katero vključimo števec in dekodirnik kot komponenti (ime komponente mora biti enako imenu VHDL datoteke) in ju povežemo med seboj s stavkom port map.
Klikni na komponento za VHDL opis posamezne komponente!
Deklaracija:
component ime_komponente
port (ime: smer tip_signala... );
end component;
Povezovanje komponet:
oznaka: ime_komponente port map (
ime1 => IME1,
ime2 => IME2 ... );
ime1, ime2: signali v komponenti
IME1, IME2: signali v vezju
library IEEE;
use IEEE.std_logic_1164.all;
entity strukt is
port (clk: in std_logic;
reset:
in std_logic;
led:
out std_logic_vector (7 downto 0));
end dff;
architecture opis of strukt is
component bin2led
port (
vhod: in std_logic_vector (3 downto 0);
pika: in std_logic;
prikaz: out std_logic_vector (7 downto 0)
);
end component;
component stevec
port (clk, reset: in std_logic;
q: out std_logic_vector (3
downto 0));
end component;
signal stev: std_logic_vector (3 downto 0);
signal nula: std_logic;
begin
ST: stevec port map (clk => clk, reset => reset, q => stev);
DEKOD: bin2led port map (vhod => stev, pika => nula, prikaz => led);
nula <= '0';
end opis;
Deklaracijo komponent naredimo takoj za stavkom architecture. Pri deklaraciji moramo v stavku port navesti vse vhodne in izhodne signale komponente, kot so opisani v VHDL datoteki s komponento (najbolje je, da stavek port kar prekopiramo). Za povezovanje komponent smo uporabili vhodne in izhodne signale celotnega vezja ter notranje signale, ki smo jih posebej deklarirali.
Proces | Načrtovanje vmesnika |