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