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.
• Pokud existuje ve zdrojových souborech více
variant popisu těla architektury, je vždy
zvolena poslední syntetizérem čtená
architektura.
• Je možné explicitně zvolit jednu konkrétní
architekturu pro všechny instance dané
komponenty.
• Je ale také možné zvolit pro specifické
architektury pro každou z instancí
komponenty.
Strukturální styl popisu úplné sčítačky
1
o
I1
I2
HA
sum
a
b
cout
HA
sum
a
b
cout
cin
a
b
sum
cout
full_adder
Strukturální styl popisu úplné sčítačky
• Úplnou sčítačku (full adder) lze realizovat pomocí
dvou půlsčítaček (half adder) a hradla OR.
• V následujícím příkladu předpokládejme již
existenci zdrojových souborů s popisem
půlsčítačky ve stylech: Dataflow, Behavioral a
případně i Structural.
1
o
I1
I2
HA sum
a
b
cout
HA sum
a
b
cout
cin
a
b
sum
cout
full_adder
Strukturální styl popisu úplné sčítačky
1
o
I1
I2
HA sum
a
b
cout
HA sum
a
b
cout
cin
a
b
sum
cout
full_adder
-- Popis architektury full_adder
Strukturální styl popisu úplné sčítačky
LIBRARY ieee; -- Knihovna IEEE
USE ieee.std_logic_1164.ALL; -- Knihovní balík std_logic_1164
-- Deklarace entity full_adder
ENTITY full_adder IS
PORT (a, b, cin: IN std_logic; -- Datové vstupy
sum, cout: OUT std_logic -- Datové výstupy
);
END ENTITY full_adder;
1
o
I1
I2
HA sum
a
b
cout
HA sum
a
b
cout
cin
a
b
sum
cout
full_adder
-- Popis architektury full_adder
-- Popis architektury full_adder
ARCHITECTURE Structural OF full_adder IS COMPONENT half_adder IS -- Deklarace komponenty half_adder
PORT (a, b: IN std_logic; -- Datové vstupy
sum, cout: OUT std_logic -- Datové výstupy
);
END COMPONENT half_adder;
SIGNAL s: std_logic_vector(2 DOWNTO 0);
BEGIN h1: half_adder PORT MAP(a, b, s(0), s(1));
h2: half_adder PORT MAP(cin, s(0), sum, s(2));
cout <= s(1) OR s(2);
END ARCHITECTURE Structural;
Strukturální styl popisu úplné sčítačky
1
o
I1
I2
HA sum
a
b
cout
HA sum
a
b
cout
cin
a
b
sum
cout
full_adder
-- Popis architektury full_adder
ARCHITECTURE Structural OF full_adder IS COMPONENT half_adder IS -- Deklarace komponenty half_adder
PORT (a, b: IN std_logic; -- Datové vstupy
sum, cout: OUT std_logic -- Datové výstupy
);
END COMPONENT half_adder;
SIGNAL s: std_logic_vector(2 DOWNTO 0);
BEGIN h1: half_adder PORT MAP(a, b, s(0), s(1));
h2: half_adder PORT MAP(cin, s(0), sum, s(2));
cout <= s(1) OR s(2);
END ARCHITECTURE Structural;