Sunteți pe pagina 1din 6

Tabla de contenido...............................................................................................................................

1.

Introduccin ......................................................................................................................... 2

1.1

Objetivos ............................................................................................................................... 2

2.

Trabajo previo ..................................................................................................................... 2

2.1

Practica................................................................................................................................... 2

2.1.1

Sumador de 4bits ...................................................................................................................... 2

2.1.1

Restador de 4bits ...................................................................................................................... 5

1. INTRODUCCION:
La prctica de laboratorio documentada en este informe corresponde a la prctica numero tres de la
asignatura de Electrnica digital II.
El objetivo general de este laboratorio fue verificar el funcionamiento de circuitos aritmticos como
sumadores y restadores, para comparar los diseos jerrquicos en VHDL
Los objetivos especficos fueron:

2. TRABAJO PREVIO:
El trabajo previo consisti en investigar la funcionalidad de la librera IEEE.STD_LOGIC_unsigned.ALL.
De acuerdo a la literatura de la IEEE esta librera tiene como funcin la de considerar los datos del tipo vector como
un numero binario puro.
2.1 PRACTICA:
A) Desarrollar un sumador de 4 bits haciendo uso de un sumador de 1bit.
El proceso seguido para resolver esta primera prctica consisti en crear un archivo module llamado adder1b que
servira para instanciarlo posteriormente en el adder4b.
1) Se definieron las entradas y se checo la sintaxis. Luego se cre el archivo testbench, en el cual se defini la tabla
de verdad para las entradas a, b y cin.
En el modulo de implementacin se defini que las funciones que representaban la suma eran:
cout <= (b and cin) or (a and cin) or (a and b);
s <= a xor (b xor cin);
2) Se procedi a checar sintaxis del testbench y luego se corri la simulacin, el resultado se muestra abajo.

3) Posteriormente se cre un nuevo proyecto llamado adder4bLogic el cual sera el modulo top de adder1b.
4) Se cre el archivo module y se agrego como nueva fuente el archivo adder1b, de esta manera se instancio
dentro de adder4bLogic. Luego se pegaron primeramente el component adder 1b en la arquitectura de
adder4bLogic una vez. Adicionalmente se pegaron cuatro veces el behavioral de adder1b, es decir se instancio 4
veces dentro de adder4bLogic. Al finalizar el modulo de arquitectura se definieron las seales intermedias que
serviran para almacenar temporalmente los resultados como se muestra
signal c0, c1, c2, c3: STD_LOGIC;
5) Se cre el testbench llamado adder4b_tb en este se definieron los estmulos como se muestra a continuacin:
-- insert stimulus here
a <= "0000";
b <= "1111";
cin <= '0';
wait for 100 ns;
cin <= '1';
6) Se checo la sintaxis y se corri la simulacin, el resultado se muestra a continuacin.

7) El diagrama de este circuito se muestra a continuacin

8) La circuitera se muestra abajo

B) Desarrollar un restador de 4 bits haciendo uso de un sumador de 1bit.

1) Para resolver esta prctica primeramente creamos el proyecto y archivo module llamado Sub4bLogic.
2) Luego agregamos como nueva fuente el sumador completo de 1 bit del ejercicio anterior es decir el
Adder1b.vhd
3) Se instancio durante cuatro ocasiones el adder1b dentro del Sub4bLogic.
4) El behavioral del adder1b sin embargo se cambio para negar las operaciones definidas dentro del
adder1b, de tal manera que las ecuaciones que definieron las operaciones a realizar quedaron como:
S <= not (A xor (B xor Cin));
Cout <= not(B and Cin) or (A and Cin) or (A and B);
5) Se checo la sintaxis en el modo de implementacin.
6) Se cre el archivo testbench para definir las entradas, como sigue
-- insert stimulus here
A <="1011";
B <= "1011";
Cin <= '0';
wait for 100 ns;
A <="0111";
B <= "0110";
Cin <= '1';
wait for 100 ns;
wait;
end process;
7) Se checo la sintaxis del archivo testbench y se simulo, el resultado se muestra a continuacin:

8) El circuito corresponde a

9) La circuitera se muestra a continuacin:

S-ar putea să vă placă și