Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. Complementos.
Tabla de verdad:
Tablas de Karnaugh:
-F3
-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;
end comp_compa2;
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);
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
Código en VHDL:
port(Cin,A,B:in bit;
end comp_sum;
begin
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
Código en VHDL:
port(Cin,A,B:in bit;
end comp_rest;
begin
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:
port(A1,A0,B1,B0:in bit;
end comp_mult;
begin
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
-IG
IG=( A 1 ⊕ B1 ) ( A 0 ⊕ B0 )
-ME
Código en VHDL:
port(A1,A2,B1,B0:in bit;
begin
MA<=(A1 and not B1) or (A0 and not B1 and not B0) or (A1 and A0 and not 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?
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
Simulación
Simulación
RTL
Figura X: RTL del código para el restador completo
Simulación
Asignación de Pines
Figura X: Asignación de Pines para el Restador Completo
Simulación
Código VHL
RTL
Simulación
Figura X: Simulación del Comparador de Magnitud
Asignación de Pines
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.