Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LAB - 5
MATERIAL
-
DURACIN
1 sesin.
LAB - 5
INTRODUCCIN
En esta prctica se va a disear un circuito para sumar nmeros de 5 bits. Tambin se usar
el bloque BinA7Seg diseado en la prctica anterior.
El diagrama de bloques del circuito a disear es el siguiente:
DESARROLLO PRCTICO
Para desarrollar esta prctica, organice en QuartusII un proyecto con el nombre Practica5.
El diagrama general de bloques de la prctica estar compuesto por dos decodificadores de
7 segmentos BinA7Seg y el bloque Sumador5Bits, adems de 10 interruptores (SW9-SW0) y
2 displays de 7 segmentos (Display0 y Display1). La Ilustracin 1 nos muestra este
diagrama general de bloques.
A su vez, el sumador de 5 bits ha de implantarse usando cinco sumadores de 1 bit. A este
bloque se le denominar Sumador1Bit.
Tenga en cuenta que la salida del sumador de 5 bits est formada por un nmero de 5 bits
que es el resultado de la suma y un acarreo de salida que nos indicar el desborde de la
suma.
Como primer paso, arranque QuartusII y genere un proyecto con el nombre Practica5.
Proceda a continuacin con la descripcin en VHDL de los bloques Sumador1Bit.vhd y
Sumador5Bits.vhd.
LAB - 5
A continuacin, abra una hoja nueva de tipo diagrama con el mismo nombre del proyecto
(Practica5) para colocar los componentes y su conexionado definitivo en la placa en el top
level del proyecto, tal como se refleja en la Ilustracin 1. Si lo desea puede crear el nivel
superior de la jerarqua usando una descripcin estructural en VHDL.
A continuacin ha de consultar el Manual de la Tarjeta DE1 para identificar el pin de la
FPGA con el correspondiente puerto de entrada y de salida:
Seal
a(0)
a(1)
a(2)
a(3)
a(4)
b(0)
b(1)
b(2)
b(3)
b(4)
d_a(6)
d_a(5)
d_a(4)
d_a(3)
d_a(2)
d_a(1)
d_a(0)
d_b(6)
d_b(5)
d_b(4)
d_b(3)
d_b(2)
d_b(1)
d_b(0)
desborde
Tipo
Entrada
Entrada
Entrada
Entrada
Entrada
Entrada
Entrada
Entrada
Entrada
Entrada
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Salida
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Seven
Componente
SW0
SW1
SW2
SW3
SW4
SW5
SW6
SW7
SW8
Sw9
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
Segment Digit
LED Green[0]
Pin FPGA
0[a]
0[b]
0[c]
0[d]
0[e]
0[f]
0[g]
1[a]
1[b]
1[c]
1[d]
1[e]
1[f]
1[g]
Anexo A
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.numeric_std.all;
ENTITY Sumador5Bits_vhd_tst IS
END Sumador5Bits_vhd_tst;
ARCHITECTURE Sumador5Bits_arch OF Sumador5Bits_vhd_tst IS
-- constants
-- signals
SIGNAL a : STD_LOGIC_VECTOR(4 DOWNTO 0);
SIGNAL b : STD_LOGIC_VECTOR(4 DOWNTO 0);
SIGNAL c_out : STD_LOGIC;
SIGNAL s : STD_LOGIC_VECTOR(4 DOWNTO 0);
COMPONENT Sumador5Bits
PORT (
a : IN STD_LOGIC_VECTOR(4 DOWNTO 0);
b : IN STD_LOGIC_VECTOR(4 DOWNTO 0);
c_out : OUT STD_LOGIC;
s : OUT STD_LOGIC_VECTOR(4 DOWNTO 0)
);
END COMPONENT;
BEGIN
i1 : Sumador5Bits
PORT MAP (
-- list connections between master ports and signals
a => a,
b => b,
c_out => c_out,
s => s
);
init : PROCESS
-- variable declarations
BEGIN
-- code that executes only once
WAIT;
END PROCESS init;
always : PROCESS
-- optional sensitivity list
-- (
)
-- variable declarations
BEGIN
-- code executes for every event on sensitivity list
for i in 0 to 31 loop
a <= std_logic_vector(to_unsigned(i, 5));
for j in 0 to 31 loop
b <= std_logic_vector(to_unsigned(j, 5));
wait for 100 ns;
assert unsigned(c_out&s) = i+j
report "fallo en la suma"
severity failure;
end loop;
end loop;
WAIT;
END PROCESS always;
END Sumador5Bits_arch;