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.
parametrem, jehož číselnou hodnotu zvolíme až při
vkládání instance komponenty.
• Formální parametry entity je možné definovat pomocí
klíčového slova GENERIC.
• Při vložení komponenty jsou skutečné hodnoty
parametrů zadány pomocí GENERIC MAP.
• Pokud je u formální parametru při deklaraci entity
zvolena implicitní hodnota. Nemusí být mechanismus
přiřazení skutečného parametru při vložení komponenty
(tj. GENERIC MAP) vůbec uveden.
Parametrizovatelná vícebitová sčítačka
half_adder_generic.vhdl:
Parametrizovatelná vícebitová sčítačka
LIBRARY ieee; -- Knihovna IEEE
USE ieee.std_logic_1164.ALL; -- Knihovní balík std_logic_1164
USE ieee.numeric_std.ALL; -- Knihovní balík numeric_std
half_adder_generic.vhdl:
Parametrizovatelná vícebitová sčítačka
-- Deklarace entity half_adder_g
ENTITY 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 ENTITY half_adder_g;
LIBRARY ieee; -- Knihovna IEEE
USE ieee.std_logic_1164.ALL; -- Knihovní balík std_logic_1164
USE ieee.numeric_std.ALL; -- Knihovní balík numeric_std
half_adder_generic.vhdl:
-- Popis architektury half_adder_g
ARCHITECTURE Behavioral OF half_adder_g IS
SIGNAL s: std_logic_vector(Bits DOWNTO 0);
BEGIN s <= std_logic_vector(unsigned'('0' & a) + unsigned'('0' & b));
sum <= s(Bits - 1 DOWNTO 0);
cout <= s(Bits);
END ARCHITECTURE Behavioral;
Parametrizovatelná vícebitová sčítačka
-- Deklarace entity half_adder_g
ENTITY 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 ENTITY half_adder_g;
LIBRARY ieee; -- Knihovna IEEE
USE ieee.std_logic_1164.ALL; -- Knihovní balík std_logic_1164
USE ieee.numeric_std.ALL; -- Knihovní balík numeric_std
half_adder_generic.vhdl:
Vložení parametrizovatelné komponenty
top_level.vhdl:
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;