Está en la página 1de 7

DESARROLLO TEÓRICO.

1. Dado el circuito de la Figura, analícelo y obtenga:


a. Las funciones simplificadas de Boole de Co y S.
b. La tabla de verdad.
c. Describir el funcionamiento del circuito.
d. Escriba el programa VHDL usando las funciones obtenidas en el inciso a.

Figura X: Primer circuito a analizar.

Para encontrar a y b, fue necesario usar el procedimiento visto en el marco teórico, donde
hacemos un análisis al circuito donde identificamos las variables de entrada y salida.
A nosotros se nos facilita empezar este tipo de análisis con las tablas de verdad, por lo que
empezamos desarrollándola, donde, de acuerdo a la regla, las 2 salidas (Co y S) y las 3
entradas (A, B y C) encontradas, nos dice que la tabla de verdad tendrá 23 combinaciones,
resolviendo tenemos que 23=8.
Aplicando las funciones de los circuitos, y tomando en cuenta el número de combinaciones
nos queda la siguiente tabla:

Tabla X: Tabla de verdad del primer circuito.


De esta tabla, encontramos las funciones por medio de mapas de Karnaugh:
Para Co:

Figura X: Mapa de Karnaugh para la salida Co

Por lo que su expresión sería Co = AB + AC + BC


Para VHDL:
Co <= (A and B) or (A and C) or (B and C);
Para S:

Figura X: Mapa de Karnaugh para la salida S

Por lo que su expresión sería S = A’B’C + A’BC’ + AB’C’ +ABC


Para VHDL:
S <= (not A and not B and C) or (not A and B and not C) or (A and not B and not C) or (A
and B and C);
El circuito resultó ser un sumador completo, ya que una salida correspondió a el resultado de
la suma de números binarios, mientras que la otra salida resultó corresponder al acarreo de
dicha suma.
Una vez teniendo la tabla de verdad y las funciones de todas las salidas, lo implementamos en
código VHDL de la siguiente manera:
entity comp_circ1 is

Port(A, B, C: in bit;
S, Co: out bit);
end comp_circ1;

architecture comp_circ1_arch of comp_circ1 is


Begin

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


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

end comp_circ1_arch;

2. Dado el circuito de la Figura, analícelo y obtenga:


a. Las funciones simplificadas de Boole de X, Y y Z.
b. La tabla de verdad.
c. Describir el funcionamiento del circuito.
d. Escriba el programa VHDL usando las funciones obtenidas en el inciso a.

Figura X: Segundo circuito a analizar.


Esta vez, realizamos el diagrama del ejercicio usando colores para tener un análisis más
sencillo de este, y para que se nos hiciera más sencillo encontrar la función de este.

Figura X: El Circuito 2 con distinción de colores

Decidimos empezar por lo más fácil, siendo este la salida Z, ya que es el valor directo de C;
después la salida Y contenía solo una XOR conectada a las entradas B y C.
Por último, la X, la verdad se nos dificultó hacer el análisis visual de esta salida, por lo que
optamos por crear una tabla donde considerábamos todas las entradas posibles, en este caso
tenemos 3 entradas (A, B y C), por lo que la tabla tendrá 23 combinaciones, donde 23=8
combinaciones para la salida X; la tabla consistió de las 8 combinaciones posibles, luego de
cómo dichas entradas afectaban cada nand en el circuito, donde cada una de estas tenía los
componentes negados anotados arriba, por último el resultado de la nand que da el resultado
de la x en base a los valores que llegan a esta:

Figura X: Conjunto de tablas para encontrar los valores de X.


Con la información obtenida del análisis, empezamos a llenar la tabla de verdad y, como lo
establecimos para encontrar los valores de X, tenemos 3 entradas (A, B y C), entonces
sabemos que tendremos 8 combinaciones solo qué en este caso en vez de tener 1 salida,
tenemos 3 (X, Y y Z), lo que nos permite llenar la tabla de la siguiente manera:

A B C X Y Z
0 0 0 0 0 0
0 0 1 1 1 1
0 1 0 1 1 0
0 1 1 1 0 1
1 0 0 1 0 0
1 0 1 0 1 1
1 1 0 0 1 0
1 1 1 0 0 1
Tabla X: Tabla de verdad del primer circuito.

Con esto en mente, procedimos a resolver los mapas de Karnaugh para cada salida:
X

Figura X: Mapa de Karnaugh para la salida X

Por lo que su expresión sería X = A’B + A’C +AB’C’


Para VHDL:
X <= (not A and B) or (not A and C) or (A and not B and not C);
Y

Figura X: Mapa de Karnaugh para la salida Y


Por lo que su expresión sería Y = B’C + BC’
Para VHDL:
Y <= (not B and C) or (B and not C);
O bien Y <= (B xor C);
Z

Figura X: Mapa de Karnaugh para la salida Z

Por lo que su expresión sería Z = C


Para VHDL
Z <= C
Gracias a la tabla de verdad, nos percatamos de que el circuito era de un complemento A 2,
pues nos dimos cuenta de qué a la hora de meter un número, en la salida, observándose de
derecha a izquierda, todos los valores antes del primer 1 encontrado se respetaban
(incluyendo el valor de dicho 1 encontrado), mientras que los valores restantes terminaban
con el valor opuesto al de su entrada.
Con la tabla de verdad y las funciones de todas las salidas encontradas, procedemos a
implementarlo en código VHDL de la siguiente manera:
entity comp_circ2 is

Port ( A, B, C: in bit;
X, Y, Z: out bit);

end comp_circ2;

architecture comp_circ2_arch of comp_circ2 is


Begin

X <= (not A and B) or (not A and C) or (A and not B and not C);
Y <= (B xor C);
Z <= C;

end comp_circ2_arch;

Conclusiones.
Bruno Martinez Ortega
El objetivo de esta practica fue de diseñar un circuito a la inversa, donde a nosotros se nos
presentó un circuito y teníamos que analizarlos para encontrar sus tablas de verdad, sus
funciones simplificadas de Boole y determinar que hacia el circuito; Para esto fue útil la regla
de combinaciones, donde el número de entradas nos ayuda a determinar el número de
combinaciones que dicho circuito va a tener (la regla siendo 2n, donde n es el número de
entradas), gracias a esto encontramos que ambos circuitos tenían 3 entradas a pesar de tener
diferente número de salidas, si bien esta practica nos ayudó a reforzar el conocimiento sobre
las ideologías de compuertas, la implementación de mapas de Karnaugh, tablas de verdad,
algebra de Boole, etc.. esto no fue lo que más destacó para mí en esta práctica.
Lo que más destacó para mi en esta practica fue la ingeniería inversa que aplicamos, es la
primera vez que he hecho este tipo de practicas y pude comprender la importancia de este
tipo de diseño en general, pues al tener algo en su estado final y lograr descomponerlo hasta
sus bases más primitivas nos puede ayudar a identificar áreas donde se presente la
oportunidad de mejora si dicha cosa fuese implementada, esto es algo que no solo se ve en
diseño lógico, por lo que realmente se quedó conmigo.

También podría gustarte