Lab #3
Lab #3
Lab #3
Datos de la práctica
Objetivo
Verificar el funcionamiento de circuitos aritméticos como sumadores y restadores,
comparando diseños jerárquicos en el lenguaje VHDL.
Medios a utilizar
Por cada práctica y por cada puesto de laboratorio, los materiales a utilizar es:
Cantidad Descripción
1 Computadora
1 Tarjeta de desarrollo Basys2 Digilent
1 Software Xilinx ISE® Webpackv14.7
Introducción
En esta práctica de laboratorio implementaremos un sumador binario completo de 4 bits
con su respectivo acarreo. El diseño se realizara de dos maneras:
El primero es de tipo funcional porque expone la forma en que trabaja el sistema, es decir
se considera la relación que hay entre las entradas y las salidas del circuito, sin importar
como este organizado en su interior. El segundo es el nivel de flujo de datos empleando
ecuaciones lógicas para el diseño operacional del circuito, aquí se toman en cuenta el diseño
lógico mediante compuertas.
Actividades previas
Investigar la funcionalidad de la librería IEEE.STD_LOGIC_unsigned.ALL y donde será
aplicado en nuestro diseño.
Desarrollo de la práctica
1. Crear un nuevo proyecto en ISE® llamado Adder4b.
4 4
Cin
entity Adder4b is
port(
A : in std_logic_vector(3 downto 0);
B : in std_logic_vector(3 downto 0);
Cin : in std_logic;
Cout : out std_logic;
S : out std_logic_vector(3 downto 0)
);
end Adder4b;
begin
process(A,B,Cin)
variable temp : std_logic_vector(4 downto 0);
begin
temp := ('0' & A) + ('0' & B) + (“0000” & Cin);
S <= temp(3 downto 0);
Cout <= temp(4);
end process;
end Behavioral;
entity Adder1b is
port(
A : in std_logic;
B : in std_logic;
Cin : in std_logic;
Cout : out std_logic;
S : out std_logic
);
end Adder1b;
begin
5. Cree un Nuevo Archivo llamado Adder4bLogic, el cual será el archivo Top del archivo
Adder1b.vhd del ejercicio anterior, para después instanciarlo según el diseño de la
Figura.
A3 B3 A2 B2 A1 B1 A0 B0
A B A B A B A B
Cout Full Adder Cin Cout Full Adder Cin Cout Full Adder Cin Cout Full Adder Cin Cin
Adder1b C3
Adder1b C2
Adder1b Adder1b
C1
S S S S
Cout S3 S2 S1 S0
A B A B A B A B
Cout Full Adder Cin Cout Full Adder Cin Cout Full Adder Cin Cout Full Adder Cin Cin= 1
Adder1b C3
Adder1b C2
Adder1b Adder1b
C1
S S S S
Cout S3 S2 S1 S0
Actividades propuestas
Práctica
Actividades de aprendizaje
1. ¿Podría realizarse un circuito sumador/restador en un mismo diseño, de tal forma
que se pueda seleccionar que la operación deseada sea suma o resta? ¿Y en VHDL?
Proponga una solución a este reto con un algoritmo que satisfaga esta necesidad.