bpc-los_06 - VHDL-strukturální popis, generic
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
top_level.vhdl:
-- Nyní platí implicitní hodnota Bits := 4
ha1: half_adder_g PORT MAP(a => x, b => y, sum => r, cout=> c);
;
SIGNAL x, y, r: std_logic
SIGNAL c: std_logic;
BEGIN
END ARCHITECTURE Behavioral;
Vložení parametrizovatelné komponenty
-- Popis architektury top_level
ARCHITECTURE Structural OF top_level IS
-- Deklarace componenty half_adder_g
COMPONENT half_adder_g IS GENERIC (Bits: natural := 4 -- Implicitní hodnota
);
PORT (a, b: IN std_logic_vector(Bits - 1 DOWNTO 0);
sum: OUT std_logic_vector(Bits - 1 DOWNTO 0);
cout: OUT std_logic
);
END COMPONENT half_adder_g;
top_level.vhdl:
-- Nyní platí implicitní hodnota Bits := 4
ha1: half_adder_g PORT MAP(a => x, b => y, sum => r, cout=> c);
_vector(4 DOWNTO 0); -- Aha ;-)
SIGNAL x, y, r: std_logic
SIGNAL c: std_logic;
BEGIN
END ARCHITECTURE Behavioral;
Vložení parametrizovatelné komponenty
-- Popis architektury top_level
ARCHITECTURE Structural OF top_level IS
-- Deklarace componenty half_adder_g
COMPONENT half_adder_g IS GENERIC (Bits: natural := 4 -- Implicitní hodnota
);
PORT (a, b: IN std_logic_vector(Bits - 1 DOWNTO 0);
sum: OUT std_logic_vector(Bits - 1 DOWNTO 0);
cout: OUT std_logic
);
END COMPONENT half_adder_g;
top_level.vhdl:
-- Nyní je hodnota Bits předefinována na 8
ha1: half_adder_g
GENERIC MAP(Bits => 8)
PORT MAP(a => x, b => y, sum => r, cout=> c);
_vector(8 DOWNTO 0);
Konstrukce GENERATE jazyka
VHDL
• Prostředek pro úsporný zápis opakujících se částí VHDL kódu, které
by jinak musel vývojář opakovaně rozepisovat (např. definice hodnoty
výstupu hradla se vstupem typu vektor, opakovaná vkládání
komponent).
• Konstrukce musí opětovně obsahovat definici unikátního návěští.
• Existují dvě varianty příkazu GENERATE:
• Konstrukce FOR - GENERATE
• Cyklus v době syntézy (nikoliv ve výsledném obvodu) počet
opakování určen na základě hodnot známých již při syntéze.
• Řídicí proměnná cyklu nemusí být předem definována, ale je
dostupná jen v těle cyklu.
• Konstrukce IF - GENERATE
• Podmínka v době syntézy (nikoliv ve výsledném obvodu)
vyhodnocení podmínky na základě hodnot známých již při
syntéze.
• Neexistuje konstrukce IF - ELSE - GENERATE.