Laboratorium 2

Transkrypt

Laboratorium 2
Laboratorium 2
Temat: Kombinacyjne układy logiczne (cz.1): sumatory. Zastosowanie komponentów.
1. Sumator jest cyfrowym układem kombinacyjnym, który wykonuje operacje dodawania dwóch
(lub więcej) liczb dwójkowych.
2. Półsumator (HA – half adder)
a) tabela prawdy
a,b – sumowane bity (in)
SUM – suma (out)
CARRY – przeniesienie (out)
a
b SUM CARRY
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
b) opis analityczny (wyraŜenia logiczne)
SUM = a xor b
CARRY = a and b
c) układ:
d) realizacja w języku VHDL:
library IEEE;
use IEEE.std_logic_1164.all;
entity ha is
-- ha znaczy half-adder
port(
a, b
: in std_logic;
sum
: out std_logic;
carry
: out std_logic
);
end ha;
architecture ha_a of ha is
begin
sum <= a xor b;
carry <= a and b;
end ha_a;
Projektowanie układów VLSI
-- wejscia
-- suma
-- przeniesienie
© 2005 Copyright by Tomasz Fałat
3. Pełny sumator (FA - full adder)
a) tabela prawdy
a,b – sumowane bity (in)
SUM – suma (out)
Ci – przeniesienie (in)
Co – przeniesienie (out)
Ci a b SUM Co
0 0 0
0
0
0 0 1
1
0
0 1 0
1
0
0 1 1
0
1
1 0 0
1
0
1 0 1
0
1
1 1 0
0
1
1 1 1
1
1
b) opis analityczny
SUM = a xor b xor Ci
Co = (a and b) or (a and Ci) or (b and Ci)
c) układ:
d) realizacja w języku VHDL
library IEEE;
use IEEE.std_logic_1164.all;
entity fa is
-- fa znaczy full-adder
port(
a, b, ci
: in std_logic;
-- wejscia (ci -przeniesienie wej.)
sum
: out std_logic;
-- suma
co
: out std_logic
-- przeniesienie wyj.
);
end fa;
architecture fa_a of fa is
begin
sum <= a xor b xor ci;
co <= (a and b) or (a and ci) or (b and ci);
end fa_a;
Projektowanie układów VLSI
© 2005 Copyright by Tomasz Fałat
4. Sumator 2-bitowy
a) realizowana funkcja: Q(q2q1q0)= A(a1a0)+B(b1b0)
b) układ
c) realizacja w języku VHDL
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
entity sum_3 is
port (
a1, a0
b1, b0
q2, q1, q0
);
end sum_3;
: in std_logic;
: in std_logic;
: out std_logic
-- wejscie 1
-- wejscie 2
-- wyjscie (suma)
architecture sum_3_a of sum_3 is
component ha is
port(
a, b
: in std_logic;
sum
: out std_logic;
carry
: out std_logic
);
end component;
-- wejscia
-- suma
-- przeniesienie
component fa is
port(
a, b, ci
: in std_logic;
sum
: out std_logic;
co
: out std_logic
);
end component;
-- wejscia
-- suma
-- przeniesienie
signal cc : std_logic;
begin
blok1: ha port map (a=>a0, b=>b0, sum=>q0, carry=>cc);
blok2: fa port map (a=>a1, b=>b1, ci=>cc, sum=>q1, co=>q2);
end sum_3_a;
Projektowanie układów VLSI
© 2005 Copyright by Tomasz Fałat
5. Komponenty
Przy realizacji sumatora n-bitowego wystarczy zdefiniować (w osobnych plikach projektu)
półsumator (ha) i pełny sumator (fa), a następnie wykorzystać je jako komponenty wewnątrz
architektury sumatora n-bitowego.
Deklaracje component informują kompilator, jak wyglądają części składowe (tu: sumatory ha
i fa) układu.
Deklaracja komponentu jest identyczna z deklaracją jednostki, ze słowem kluczowym entity
zastąpionym przez component.
6. Zadania do realizacji w trakcie laboratorium:
a) wykorzystując zdefiniowane komponenty zrealizować 4-bitowy sumator + testbench
b) wykorzystując zdefiniowane komponenty zrealizować sumator MOD15 + testbench
Rew. 2007, P.M. Szecówka
Projektowanie układów VLSI
© 2005 Copyright by Tomasz Fałat

Podobne dokumenty