Está en la página 1de 29

DESARROLLO TEÓRICO.

1. Complementos.

Empleando compuertas lógicas, diseñe un circuito combinatorio que obtenga el complemento a 2


de un número binario de 4 bits. Escriba el programa VHDL correspondiente.

Tabla de verdad:

Tablas de Karnaugh:
-F3

' ' ' ' ' '


F 3 = A3 A 2 + A 3 A 2 A 1 A0 + A3 A0 + A3 A1
-F2

' ' '


F 2=A 2 ( A 0 + A1 ) + A2 A1 A 0

-F1

F 1=A 1 ⊕ A 0

-F0

F 0 = A0
Circuito Lógico:

Código en VHDL:
Declaración de la entidad complemento a2.
entity comp_compa2 is

port(A3,A2,A1,A0: in bit;

F3,F2,F1,F0: out bit);

end comp_compa2;

Declaración la arquitectura de la entidad complemento a2.


architecture comp_compa2_arch of comp_compa2 is

begin

F3<=(not A3 and (A2 or A1 or A0)) or (A3 and not A2 and not A1 and not A0);

F2<=(not A2 and (A0 or A1)) or (A2 and not A1 and not A0);

F1<=A1 xor A0;

F0<=A0;

end comp_compa2_arch;
2. Sumadores. Empleando compuertas lógicas, diseñe un sumador completo. Escriba el programa
VHDL correspondiente.

Tabla de verdad:

Mapas de Karnaugh:
-Co

Co= AB+CinB+CinA
-S

S=Cin' A' B+Cin ' A B ' +Cin A' B ' +CinAB


Circuito Lógico:

Código en VHDL:

Declaración de la entidad sumador completo.


entity comp_sum is

port(Cin,A,B:in bit;

Co,S: out bit);

end comp_sum;

Declaración la arquitectura de la entidad sumador completo.


architecture comp_sum_arch of comp_sum is

begin

Co <= (A and B) or (Cin and B) or (Cin and A);

S <= (not Cin and not A and B) or (not Cin and A and not B) or(Cin and not A and not B)or (Cin and
A and B);

end comp_sum_arch;
3. Restadores.

3.1. Empleando compuertas lógicas, diseñe un restador completo. Escriba el programa VHDL
correspondiente.

Tabla de verdad:

Mapas de Karnaugh:

-Co

Co= AB+Cin' B+Cin' A


-R

' ' ' ' ' '


R=Cin A B+Cin A B +Cin A B +CinAB
Circuito Lógico:

Código en VHDL:

Declaración de la entidad restador completo.


entity comp_rest is

port(Cin,A,B:in bit;

Co,R: out bit);

end comp_rest;

Declaración la arquitectura de la entidad sumador completo.


architecture comp_rest_arch of comp_rest is

begin

Co <= (not Cin and B) or (not Cin and A) or (A and B);

R <= (not Cin and not A and B) or (not Cin and A and not B) or(Cin and not A and not B) or (Cin
and A and B);

end comp_rest_arch;

3.2. Viendo sus tablas de verdad, ¿Qué diferencia existe entre un sumador completo y un restador
completo?

Que la suma y la resta en sus respectivas salidas tienen los mismos valores lo único que cambia es
son los valores del acarreo
4. Multiplicadores binarios.

4.1. Empleando compuertas lógicas, diseñar un multiplicador binario que multiplique dos factores
de dos bits cada uno. Escriba el programa VHDL correspondiente. A1A0 x B1B0 = C3C2C1C0

Tabla de verdad:

Mapas de Karnaugh:

-C 3

C 3= A1 A 0 B1 B 0
-C 2

'
C 2=A 1 B1 ( A 0 B0 )

-C 1

C 1=A 0 B 1 ⊕ A1 B 0

-C 0

C 0= A0 B0
Circuito Lógico:

Código en VHDL:

Declaración de la entidad multiplicador.


entity comp_mult is

port(A1,A0,B1,B0:in bit;

C3, C2, C1,C0:out bit);

end comp_mult;

Declaración la arquitectura de la entidad multiplicador.


architecture comp_mult_arch of comp_mult is

begin

C3<=A1 and A0 and B1 and B0;

C2<=A1 and B1 and not (A0 and B0);

C1<= (A0 and B1) xor (A1 and B0);

C0<=A0 and B0;

end comp_mult_arch;
4.2. Si los factores de la multiplicación fueran de 4 bits cada uno, ¿De cuántos bits sería el
resultado de salida?

Seria de 8 bits porque la multiplicación mas grande es del numero 15*15=225 y ese numero en
binario ocupa 8 bits

5. Comparadores de magnitud.

5.1. Empleando compuertas lógicas, diseñar un circuito combinatorio que compare dos números
binarios de dos bits cada uno. Se tendrán 3 salidas, una que indique cuando el primer número es
mayor que el segundo, otra que indique cuando son iguales y la última que indique cuando el
primero es menor que el segundo. Escriba el programa VHDL correspondiente.

Tabla de verdad:
Mapas de Karnaugh:

-MA

' ' ' '


MA= A 1 B1+ A 0 B1 B 0+ A 1 A 0 B0

-IG

IG=( A 1 ⊕ B1 ) ( A 0 ⊕ B0 )
-ME

ME= A'1 A '0 B 0+ A '1 B1 + A '0 B1 B0


Circuito Lógico:

Código en VHDL:

Declaración de la entidad multiplicador.


entity comp_mag is

port(A1,A2,B1,B0:in bit;

C3, C2, C1,C0:out bit);


end comp_mag;

Declaración la arquitectura de la entidad multiplicador.


architecture comp_mag_arch of comp_mag is

begin

MA<=(A1 and not B1) or (A0 and not B1 and not B0) or (A1 and A0 and not B0);

IG<=(A1 xnor B1) and (A0 xnor B0);

ME<=(not A1 and not A0 and B0) or (not A1 and B1) or (not A0 and B1 and B0);

end comp_mag_arch;

5.2. Sí los números fueran de 4 bits, ¿Cuántas combinaciones tendría la tabla de verdad?

La tabla de verdad tendría 256 combinaciones

Desarrollo Experimental
1) Implemente en VHDL el circuito que obtiene el complemento a 2 diseñado y
compruebe su funcionamiento.
Aplicando el código diseñado en el desarrollo teórico, se consiguió lo siguientes resultados
para todos los ejercicios:
Código VHL

Figura X: Código en VHL del complemento A 2


RTL

Figura X: RTL del código complemento A 2

Simulación

Figura X: Simulación del Completo A 2


Asignación de Pines

Figura X: Asignación de Pines para el complemento A 2


Prueba en la tarjeta DE2

Figura X: Ejemplo donde A0, A1, A2 = 0, A3 = 1

2) Implemente en VHDL el sumador completo diseñado y compruebe su


funcionamiento.
Código VHL

Figura X: Código en VHL del sumador completo


RTL

Figura X: RTL del código para el sumador completo

Simulación

Figura X: Simulación del Sumador Completo


Asignación de Pines

Figura X: Asignación de Pines para el Sumador Completo

Prueba en la tarjeta DE2


Figura X: Ejemplo donde Cin, A = 1, B = 0

3) Implemente en VHDL el restador completo diseñado y compruebe su


funcionamiento.
Código VHL

Figura X: Código en VHL del restador completo

RTL
Figura X: RTL del código para el restador completo

Simulación

Figura X: Simulación del Restador Completo

Asignación de Pines
Figura X: Asignación de Pines para el Restador Completo

Prueba en la tarjeta DE2


Figura X: Ejemplo donde Cin, A, B = 1

4) Implemente en VHDL el multiplicador diseñado y compruebe su


funcionamiento.
Código VHL

Figura X: Código en VHL del Multiplicador


RTL

Figura X: RTL del código para el multiplicador

Simulación

Figura X: Simulación del Multiplicador


Asignación de Pines

Figura X: Asignación de Pines para el Multiplicador

Prueba en la tarjeta DE2

Figura X: Ejemplo donde A1, B0 = 1, A0, B1 = 0


5) Implemente en VHDL el comparador de magnitud diseñado y compruebe
su funcionamiento.

Código VHL

Figura X: Código en VHL del Comparador de Magnitud

RTL

Figura X: RTL del código para el Comparador de Magnitud

Simulación
Figura X: Simulación del Comparador de Magnitud

Asignación de Pines

Figura X: Asignación de Pines para el Comparador de Magnitud

Prueba en la tarjeta DE2


Figura X: Ejemplo donde A0, A1, B0, B1 = 0

Conclusiones:
Miguel Ángel Ruiz Ruiz
En esta práctica aprendimos a hacer suma, resta multiplicación y comparadores de números
binarios usando tablas de verdad además de que se reforzo el uso de las tablas de Karnaugh
que gracias a ellas se pueden simplificar mucho las funciones y que además usando algebra
de Boole se pueden simplificar más las expresiones para así poder usar menos compuertas
lógicas, y todo esto es fundamental ya que en la industria al reducir compuertas lógicas se
ve reflejado en menores costos y mayor facilidad de entender el circuito. Además, se
aprendió a razonar que a saber que a partir de un numero de n bits cuantas posibles
combinaciones podrá tener sin necesidad de hacer toda la tabla de verdad.
Bruno Martinez Ortega
En esta práctica conocimos los circuitos aritméticos y aprendimos a diseñar y programar 5
tipos diferentes de estos (complemento A2, sumador completo, restador completo,
multiplicador y comparador) con diferente número de entradas y salidas, cuya
implementación fue posible gracias a que planteamos la tabla de verdad de cada uno, y en
base a estas sus respectivos mapas de Karnaugh, los cuales nos ayudaron a crear un
diagrama de circuitos lógicos que nos dio una idea de que esperar a la hora de crear y
aplicar el código en VHL.
En esta practica también conocimos la importancia de asignar un orden a los pines, pues si
bien daban el resultado esperado, estaban un poco desordenados; este detalle nos va a
ayudar en practicas futuras para hacer la asignación de forma más precavida.
Por último, cabe destacar que esta practica reforzó nuestro proceso de pensar respecto al
algebra visto en los mapas de Karnaugh, lo cual me hace pensar que va a ser indispensable
en prácticas futuras.

También podría gustarte