Está en la página 1de 22

UNIVERSIDAD NACIONAL EXPERIMENTAL DEL TÁCHIRA

Vicerrectorado Académico
Decanato de Docencia
Fundamentos de Lógica Digital - 0425404T

TAREA 2

Elaborado por:
Luis Miguel Rodríguez - C.I 25727830
Jesús Arias – C.I 28016230
DESARROLLO

Se requiere diseñar y simular en Electronics Workbench, una ALU de la siguiente forma:

El desarrollo de la ALU se explicará en dos partes, cuáles serán: DESARROLLO DE


LA UNIDAD LÓGICA y DESARROLLO DE LA UNIDAD ARITMÉTICA, para así
después hacer una conclusión en la que se unen ambas unidades para la conformación del
circuito final.

Empezaremos desarrollando la unidad lógica.


DESARROLLO DE LA UNIDAD LÓGICA

Se parte de la siguiente tabla para armar la unidad lógica de la ALU:

M S1 S0 C0 F
0 0 0 X A NOR B
0 0 1 X A NAND
B
0 1 0 X NOT A
0 1 1 X A XOR B

Que explicará cuál será la salida de este circuito. Dicha tabla podemos abstraerla en otra
subtabla para encontrar las operaciones correctas:

P S1 S0 Ai Bi Fi
0 0 0 0 0 1
1 0 0 0 1 0
2 0 0 1 0 0
3 0 0 1 1 0
4 0 1 0 0 1
5 0 1 0 1 1
6 0 1 1 0 1
7 0 1 1 1 0
8 1 0 0 0 1
9 1 0 0 1 1
10 1 0 1 0 0
11 1 0 1 1 0
12 1 1 0 0 0
13 1 1 0 1 1
14 1 1 1 0 1
15 1 1 1 1 0

Tabla a la cual podemos pasar a través del mapa de Karnaugh para obtener la mínima
expresión de salida posible:
Fi(S1, S0, Ai, Bi) = AiBi + BiS1’S0’ + Ai S1’S0’+ Ai S1S0 + AiBiS1S0

Expresión que podemos reducir de la siguiente manera:


Y finalmente obtenemos:

Fi(S1, S0, Ai, Bi) = BiS1’S0’ + Ai

De esta forma, repitiendo el valor para cada bit de entrada de A y B, podemos obtener la
unidad lógica de la ALU, quedando en el simulador de la siguiente forma para cada fi:
Y quedando de la siguiente forma para todos los Fi:
DESARROLLO DE LA UNIDAD ARITMÉTICA

Para realizar la unidad aritmética de la ALU solicitada, lo primero que se procede a realizar
es especificar qué funciones se realizarán a partir de las variables de control:

S1 S0 C0 F
0 0 0 0000
0 0 1 1111
0 1 0 A+B (Incremento)
0 1 1 A + B + 1 (Adición con incremento)
1 0 0 A (Transferencia)
1 0 1 A +1 (Incremento)
1 1 0 B - A - 1 (sustracción inversa con incremento)
1 1 1 B - A (sustracción inversa)

Luego de identificar qué operaciones aritméticas se quieren realizar, se procede a mostrar


cuales tendrían que ser las entradas de los sumadores totales para así lograr la salida deseada:

Códi Entradas
gos requeridas
de para los
Sel. Operación aritmética deseada (A + B + C0) sumadores
S1 S0 C0 F A B B
0 0 0 0000 X X X
0 0 1 1111 X X X
0 1 0 A+B (Incremento) A B 0
0 1 1 A + B + 1 (Adición con incremento) A B 1
1 0 0 A (Transferencia) A 0 0
1 0 1 A +1 (Incremento) A B 0
B - A - 1 (sustracción inversa con
1 1 0 incremento) A' B 0
1 1 1 B - A (sustracción inversa) A' B 1

A partir de esto, se obtienen las tablas de la verdad para los valores de Ai, Bi, y
Cin:
P S1 S0 C0 Ai F
0 0 0 0 0 0
1 0 0 0 1 0
2 0 0 1 0 1
3 0 0 1 1 1
4 0 1 0 0 0
5 0 1 0 1 1
6 0 1 1 0 0
7 0 1 1 1 1
8 1 0 0 0 0
9 1 0 0 1 1
10 1 0 1 0 0
11 1 0 1 1 1
12 1 1 0 0 1
13 1 1 0 1 0
14 1 1 1 0 1
15 1 1 1 1 0

P S1 S0 C0 Bi F
0 0 0 0 0 0
1 0 0 0 1 0
2 0 0 1 0 1
3 0 0 1 1 1
4 0 1 0 0 0
5 0 1 0 1 1
6 0 1 1 0 0
7 0 1 1 1 1
8 1 0 0 0 0
9 1 0 0 1 0
10 1 0 1 0 0
11 1 0 1 1 0
12 1 1 0 0 0
13 1 1 0 1 1
14 1 1 1 0 0
15 1 1 1 1 1
Se obtienen las siguientes funciones lógicas a partir de las tablas de la verdad y
simplificación por mapa de K:

f(S1, S0, C0, Ai) = C0’Ai’S1 + C0AiS0’ + C0AiS0’ + C0Ai’S0

El cual Podemos reducir de la siguiente forma:


Y obtenemos finalmente:

f(S1, S0, C0, Ai) = Ai + C0’S1 + C0S0

Ahora seguimos con Bi:

Dónde conseguimos:

FBi(S1, S0, C0, Bi) = C0’Bi’S1 + C0’BiS0 + C0Bi’S0


En dónde Podemos reducirla de la siguiente forma:

Y finalmente conseguimos:

FBi(S1, S0, C0, Bi) = C0’Bi’S1 + S0


Desarrollamos el subcircuito para Ai:

Desarrollamos el subcircuito para Bi:


Todo esto, da un resultado final uniendo cada subcircuito para sumador, siendo así el
circuito resultante para la Unidad Aritmética:
Multiplexores
Se unió al final ambas unidades de la ALU a través de un multiplexor (74157 genérico) para
obtener el resultado final a partir de M (En el datasheet no sale la entrada de modo activa en
bajo, sin embargo en el EWB sí, por lo que se negó)

Y se implementó un multiplexor de 1 bit utilizando compuertas lógicas para así obtener el


Cout final de salida

Notese que en el caso de pasar por el modo de la Unidad Lógica se obtiene el mismo Cout de
entrada al ser un don’t care, modo de Unidad Aritmética se obtiene la salida resultante del
carry de los sumadores totales.
Esto da como resultado final las siguientes salidas:
Circuito con ambas unidades:
y el circuito completo:
Nótese que en el simulador, las entradas de manejan con Switchs para simular múltiples
0 y 1 a conveniencia:
Y así se completa el diseño e implementación de la ALU requerida por la
actividad.

También podría gustarte