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.

Proces Načrtovanje vmesnika