Está en la página 1de 4

Laboratorio de sistemas Digitales I

LAB - 5

Escuela Tcnica Superior de Ingeniera (ICAI)


Departamento de Electrnica y Automtica

Lab-5: Circuitos aritmticos. Sumador de 5 bits.


OBJETIVOS
El propsito de esta prctica es:
-

Comprender el funcionamiento de un sumador.


Usar los bucles for generate para instanciar componentes en VHDL.

MATERIAL
-

Ordenador personal con Quartus II y ModelSim.


Tarjeta de desarrollo de lgica programable.

DURACIN
1 sesin.

TRABAJO PREVIO E INFORMACIN DE CONSULTA


En esta sesin se harn como ejercicios previos:
- Obtener las ecuaciones lgicas del sumador de 1 bit a partir de la tabla 5.1 de los
apuntes (pgina 86).
- Diseo en VHDL de los bloques necesarios para la prctica.
- Lectura previa de las notas de clase y tutorial de VHDL.
- Lectura del manual de la tarjeta de lgica programable DE1 (disponible en la pgina
web de la asignatura).

TRABAJO POSTERIOR Y ENTREGA DE RESULTADOS


Despus del desarrollo de la prctica se debe entregar un informe de resultados (vase gua
de informe) y el trabajo desarrollado en el laboratorio en soporte informtico que contenga
el proyecto completo. Debe incluir:
1. Descripcin del experimento y los pasos seguidos (tablas de verdad, expresiones
lgicas, K-maps).
2. Esquemas del circuito, cdigo VHDL y su explicacin.
3. Simulaciones y su explicacin.
4. Resultados y conclusiones.
1

Laboratorio de sistemas Digitales I

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:

Ilustracin 1: Diagrama de bloques del circuito.

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.

Laboratorio de sistemas Digitales I

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]

Tabla 1. Asignacin de patillas de la FPGA a las seales del circuito.


El manual lo tiene en el siguiente enlace:
(http://www.dea.icai.upcomillas.es/daniel/asignaturas/SistDig1_1_ITL/DE1_UserManual_v1018.pdf ).
Realizado este paso proceda a la compilacin del circuito diseado, corrija los errores, si
los hubiera, en el cdigo VHDL y en el conexionado de los bloques. Proceda a
continuacin con la simulacin en ModelSim. En el anexo A se incluye un banco de prueba
para generar los estmulos para la simulacin (vase la prctica 3 si no recuerda cmo
aadir el testbench). Ojo, en el banco de prueba mostrado se ha aadido al generado
automticamente por Quartus el paquete ieee.numeric_std (3 lnea) y el interior del ltimo
PROCESS.
Finalmente realice el volcado a la placa del circuito diseado para su comprobacin por el
profesor.

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;

También podría gustarte