3.4 Strukturno načrtovanje

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!

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.

Opis obnašanja vezja Načrtovanje vmesnika