Microcontroladores:
Unidad Aritmtica Lgica
Carrera: Tcnico Universitario
en Electrnica.
Profesor: Guelis Montenegro Z.
Unidad Aritmtica Lgica
Comnmente conocida como ALU, Unidad Aritmtico
Lgica, es el dispositivo que se encarga de realizar las
operaciones:
Aritmticas (suma, resta, etc.)
Lgicas (And, Or, Xor, Not, Nand, Nor, etc.)
Qu se necesita
para formar una ALU?
CIRCUITO COMBINACIONAL:
Aquel circuito digital que se compone de compuertas lgicas,
y en el cual la salida depende nica y exclusivamente de sus
entradas.
COMPUERTAS LGICAS:
A B A*B A B A+B
1 1 1 1 1 1 A A
1 0 0 1 0 1 1 0
0 1 0 0 1 1 0 1
0 0 0 0 0 0
Qu se necesita
para formar una ALU?
MULTIPLEXOR:
Denominado como MUX, tiene 2n entradas de datos,
donde n son los bits de seleccin (o control) y una
salida.
De acuerdo al valor que se tenga en los bits de control,
ser la entrada que se llevar a la salida.
Qu se necesita
para formar una ALU?
MUX 2 a 1:
MUX 4 a 1:
MUX 8 a 1:
Qu se necesita
para formar una ALU?
SUMADOR COMPLETO
DE 1 BIT:
Tiene 3 entradas:
(A) y (B) de 1 bit c/u
Un bit de reserva de
entrada (CarryIn).
Tiene 2 salidas:
Suma(Sum) de 1 bit
Un bit de acarreo de salida
(CarryOut).
Qu se necesita
para formar una ALU?
Tabla de Verdad del Sumador Completo de 1 bit:
Complete
a b CarryIn CarryOut Sum
Qu se necesita
para formar una ALU?
Cules son las expresiones para la suma (Sum)
y el bit de acarreo de salida (CarryOut)?
Luego de desarrollar Mapas de Karnaugh se puede
concluir que:
Sum = a b CarryIn
CarryOut = (a CarryIn) + (b CarryIn) + (a b)
= CarryIn (a + b) + (a b)
Sumador Completo de 4 bits
Qu se necesita
para formar una ALU?
Ejemplo: Sume lo siguiente.
1100011 + 1000010 =
101101 + 110111 =
101010 + 10111 =
ALU de 1 bit
Caractersticas:
Realiza dos operaciones: AND y OR.
Tiene un bit de seleccin para escoger la operacin
que se desea realizar.
Operacin Salida
0 a*b
1 a+b
ALU de 1 bit
Qu operacin se puede agregar?
Para completar un poco el diseo anterior, se puede
agregar el sumador completo para realizar la
operacin: AND, OR y SUMA.
ALU de 1 bit
Es capaz de realizar 3
operaciones bsicas: AND,
OR y SUMA.
Posee 2 bits de seleccin
para escoger la operacin
que se desea realizar. La
cuarta seleccin es dont care.
Operacin Resultado CarryOut
00 A* B d
01 A+ b d
ab CarryIn (a + b)
10
CarryIn + (a b)
11 d d
ALU de 1 bit
Qu otra operacin se puede agregar?
Es posible agregar la operacin RESTA.
a b = a + ( - b ), s y slo s b est complementado y
luego sumando un 1. Por lo tanto:
a b a (b) a b 1
El 1 de la suma se agrega al CarryIn.
ALU de 1 bit
Ejemplo: Reste lo siguiente.
111 010 =
11111100 01111100 =
1001001 110010 =
0xFA 0x70 =
a b a (b) a b 1
ALU de 1 bit
Ahora, con sta ALU es posible realizar 4
operaciones: AND, OR, SUMA y RESTA.
Permanecen los 2 bits para seleccionar la operacin.
Se tiene un bit extra para diferenciar la operacin
suma de la resta.
Cuando se realiza la operacin resta, se conserva en
el CarryIn un 1.
ALU de 1 bit
El diagrama de la ALU es:
ALU de 1 bit
La tabla para la ALU es:
Operacin Binvert CarryIn Resultado CarryOut
00 d d a*b d
01 0 d a+b d
CarryIn (a + b) +
10 0 d a b CarryIn
(a b)
10 1 0 d d
10 1 1 ab a b
11 d d d d
ALU de 1 bit
Qu otra operacin se puede agregar?
Se puede agregar la operacin NOR: a b
Aplicando Ley de Morgan: a b a b
Pero, la ALU ya puede calcular: a b y b
Slo falta calcular: a
ALU de 1 bit
Ahora, es posible realizar 5 operaciones: AND, OR,
NOR, SUMA y RESTA.
Se mantienen los 5 bits de seleccin de operacin.
Binvert diferencia entre la suma y la resta.
En la resta, se conserva un 1 en el CarryIn.
Ainvert y Binvert diferencian entre la operacin AND y
NOR.
ALU de 1 bit
El nuevo diagrama de la ALU es:
ALU de 1 bit
La tabla de operaciones es:
Operacin Ainvert Binvert CarryIn Resultado CarryOut
00 0 0 d a b d
00 1 1 d a b d
01 0 0 d ab d
CarryIn
10 0 0 d a b CarryIn (a + b) +
(a b)
10 0 1 0 d d
10 0 1 1 ab ab
11 d d d d d
ALU de 1 bit
Antes se haba obtenido Ainvert y Binvert. Con stos
dos elementos es posible generar:
8 operaciones lgicas.
5 operaciones aritmticas.
ALU de 1 bit
La tabla ms completa de la ALU con las 8 operaciones
lgicas antes mencionadas sera.
Operacin Ainvert Binvert CarryIn Result. CarryOut
00 0 0 d a b d
00 0 1 d a b d
00 1 0 d a b d
00 1 1 d a b d
01 0 0 d ab d
01 0 1 d ab d
01 1 0 d ab d
01 1 1 d ab d
ALU de 1 bit
La tabla ms completa de la ALU con las 5 operaciones
arimticas antes mencionadas sera.
Funcin
Operacin Ainvert Binvert CarryIn
Aritmtica
10 0 0 0 ab
10 0 0 1 a b 1
10 0 1 1 a b
10 1 0 1 ba
10 1 1 1 a b
ALU de 32 bits
Cmo se puede generar una ALU de 32 bits?
Respuesta: Con 32 ALUs de 1 bit.
CarryOut de la ALU nmero i se conecta al CarryIn
de la ALU nmero i+1.
En la resta, el CarryIn de la ALU nmero 0 se
conecta a 1.
ALU de 32 bits
ALU de 4 bits
ALU de 4 bits
Agradecimientos
Muchas gracias por su atencin