2-6 Modulos Combinacionales Basicos

Descargar como ppt, pdf o txt
Descargar como ppt, pdf o txt
Está en la página 1de 59

Sistemas combinacionales

Módulos combinacionales básicos


ÍNDICE
• Bibliografía
• Introducción
• Codificadores y decodificadores
–Síntesis de funciones de conmutación con decodificadores
• Multiplexores y demultiplexores
–Síntesis de circuitos combinacionales con multiplexores
• Desplazadores
• Comparadores
• Dispositivos lógicos programables
• Módulos aritméticos básicos
–Sumador
–Restador
–Sumador/Restador
• Unidad aritmético-lógica
2
BIBLIOGRAFÍA
• Román Hermida, Ana Mº del Corral, Enric Pastor, Fermín Sánchez
“Fundamentos de Computadores” , cap 3
Editorial Síntesis
• Thomas L. Floyd
“Fundamentos de Sistemas Digitales”, cap 6,7
Editorial Prentice Hall
• Daniel D. Gajski
“Principios de Diseño Digital”, cap 5
Editorial Prentice Hall
• M. Morris Mano
“Diseño Digital”, cap 4,5
Editorial Prentice Hall

3
INTRODUCCIÓN
• Las materializaciones en forma de redes de puertas básicas no son
adecuadas cuando la complejidad del diseño es grande. En estos
casos se realiza diseño jerárquico en base a redes de módulos
combinacionales básicos, y no mediante redes de puertas básicas.
• Ese diseño jerárquico y modular se puede llevar a cabo si se dispone
de módulos que realicen funciones más complejas que las puertas
básicas y que permitan dividir el diseño en partes más sencillas.
• En lo que sigue de tema se explican algunos de los módulos
combinacionales de los que es conveniente disponer y cómo
utilizarlos como módulos básicos para realizar diseños más
complejos.
• Estos módulos son: decodificador, codificador, multiplexor,
demultiplexor, desplazador, comparador, algunos módulos
aritméticos y dispositivos programables.

4
ÍNDICE
• Bibliografía
• Introducción
• Codificadores y decodificadores
–Síntesis de funciones de conmutación con decodificadores
• Multiplexores y demultiplexores
–Síntesis de circuitos combinacionales con multiplexores
• Desplazadores
• Comparadores
• Dispositivos lógicos programables
• Módulos aritméticos básicos
–Sumador
–Restador
–Sumador/Restador
• Unidad aritmético-lógica
5
DECODIFICADORES
• Un decodificador (o decodificador de n a 2n) es un módulo
combinacional con ‘n’ entradas (X , X , … X ), y 2n salidas (Y ,
0 1 n-1 0

Y , Y , …), además de una señal de activación (Enable).


1 2

• El funcionamiento del decodificador es el


siguiente:
 Si Enable está desactivada todas las salidas Yi
toman el valor ‘0’.
 Si Enable está activada se activará la sálida de
indice I, siendo I el número decimal codificado
en las entradas X. El resto salidas toman valor
‘0’.
• La expresión de conmutación que describe cada una de las
salidas es: Y  Enable  m ( X ,..., X )
i i n 1 0

6
DECODIFICADORES
• Ejemplo: implementación de un decodificador de 2 a 4
con puertas lógicas.

Y0  E  X 1  X 0
Y1  E  X 1  X 0
Y2  E  X 1  X 0
Y3  E  X 1  X 0 7
SÍNTESIS DE FC CON
DECODIFICADORES
• Un decodificador de n a 2n materializa todos los minterms de una función
de n variables:

Yi  Enable  mi ( X n 1 ,..., X 0 )
• Por tanto se puede materializar cualquier FC de n variables expresada
como suma de minterms con un decodificador de n a 2n y una puerta Or
con tantas entradas como sumandos tenga la expresión de la FC.

8
SÍNTESIS DE FC CON
DECODIFICADORES
• Ejemplo: sintetizar las funciones f , f y f con un decodificador de 3 a 8.
1 2 3

f1 (a, b, c)   m(1,3,5)
f 2 (a, b, c)   m(0,2) 1

f 3 (a, b, c)   m(2,4,6)
Enable

Y0
f1
c X0 Y1
b X1 Y2
IMPORTANTE: a X2 Y3
Y4
Cuidado con el orden de Y5 f2

significancia de las entradas Y6


Y7

f3

9
CODIFICADORES SIN
PRIORIDAD
• Un codificador (codificador de 2n a n) es un módulo con 2n
entradas y n salidas de datos, una entrada de activación
(Enable) y una salida de actividad para diseño modular.
• El funcionamiento del codificador sin
prioridad es el siguiente:
 Si Enable está desactivada todas las salidas
Yi toman el valor ‘0’.
 Si Enable está activada las salidas Yi
codificarán el número I, siendo I el índice de
la entrada X que esté activa (sólo una
entrada X puede valer ‘1’ en un instante
determinado)
 La salida Activo vale ‘1’ si alguna de las
entradas Xi vale ‘1’ y Enable está activa. En
caso contrario Activo vale ‘0’.
10
CODIFICADORES SIN
PRIORIDAD
• Las expresiones de conmutación de las salidas Y y Activo son: i

Yi  E  X j
/ X j se incluye en la suma si el bit i-ésimo de la
representación binaria de j es 1

A  E  ( X2n1  X2n2  ...  X1  X0 )

• Ejemplo: codificador de 8 a 3:
E Xactiva Y2 Y1 Y0 A
0 - 0 0 0 0
1 X0 0 0 0 1
y 0  E  (x 1  x 3  x 5  x 7 )
1 X1 0 0 1 1 y 1  E  (x 2  x 3  x 6  x 7 )
1 X2 0 1 0 1
y 2  E  (x 4  x 5  x 6  x 7 )
1 X3 0 0 1 1
A  E  (x 0  x 1  x 2  x 3  x 4  x 5  x 6  x 7 )
1 X4 1 0 0 1
1 X5 1 0 1 1
1 X6 1 1 0 1 11
1 X 1 1 1 1
CODIFICADORES SIN
PRIORIDAD
• Ejemplo: codificador de 8 a 3 (continuación):

12
CODIFICADORES CON
PRIORIDAD
• Los codificadores con prioridad reciben varias entradas de las cuales
pueden estar activas más de una a la vez. La salida codifica el índice
de la entrada activa más alta (o más baja si es un codificador de bit
menos significativo).
• Materializan una red de resolución de prioridades que decide cuál de
las entradas tiene más prioridad.
• Funcionamiento:
 Si Enable está inactiva: Yi, Activo y Enable
out valen todas ‘0’.
 Si Enable está activa:
 Si hay algún Xi activo, la salida Y
codifica el índice del mayor Xi que esté
activo. La salida Activo vale ‘1’ y la
salida Enable out vale ‘0’.
 Si no hay ningún Xi activo, la salida
13
Activo vale ‘0’ y la salida Enable out
CODIFICADORES CON
PRIORIDAD
• Ejemplo: codificador con prioridad en función de un codificador
sin prioridad.

Código

14
Varias señales activas Una señal activa
CODIFICADORES CON
PRIORIDAD
• El módulo de resolución de prioridades de bit más significativo
se materializa con las siguientes expresiones de conmutación:

Z 2n 1  X 2n 1
Z 2n  2  X 2 n  2  X 2n 1
Z 2n 3  X 2 n 3  X 2 n  2  X 2n 1
.
.
Z i  X i  X i 1  ...  X 2n  2  X 2 n 1

15
CODIFICADORES CON
PRIORIDAD
• Ejemplo: sintetizar un codificador con prioridad de 4 a 2.
• Módulo de resolución de prioridades:
Z3  X 3
Z2  X 2  X 3
Z1  X 1  X 2  X 3
Z0  X 0  X1  X 2  X 3

• Codificador 4 a 2:
Y0  E  ( X 1  X 3 )
Y1  E  ( X 2  X 3 )
A  E  ( X 0  X1  X 2  X 3 )
16
CODIFICADORES CON
PRIORIDAD

17
ÍNDICE
• Bibliografía
• Introducción
• Codificadores y decodificadores
–Síntesis de funciones de conmutación con decodificadores
• Multiplexores y demultiplexores
–Síntesis de circuitos combinacionales con multiplexores
• Desplazadores
• Comparadores
• Dispositivos lógicos programables
• Módulos aritméticos básicos
–Sumador
–Restador
–Sumador/Restador
• Unidad aritmético-lógica
18
MULTIPLEXORES
• Un multiplexor (o multiplexor de 2n a 1) es un módulo
combinacional con 2n entradas de datos, ‘n’ entradas de selección
y una entrada de activación (Enable). Tiene Entradas
una única salida.
de datos
• El multiplexor conecta una de las 2n
entradas a la salida en función de una
palabra de control S:
 Si las entradas de selección Si codifican
el número I, la salida Y tomará el valor de
Xi siempre que Enable esté activo.
 Si Enable está inactivo la salida Y vale ‘0’.

• Puesto en forma de expresión de Entradas de


selección
conmutación: 2n 1
y  E  ( x 0  m 0 (s n-1 ,..., s 0 )  x 1  m 1 (s n-1 ,..., s 0 )  ...)  E  x i
 m i (s n-1 ,..., s 0 )
19
i 0
MULTIPLEXORES
• Ejemplo: implementar un multiplexor de 4 entradas.
yE  ( x0  m0 ( s1 , s0 )  x1  m1 ( s1 , s0 )  x2  m2 ( s1 , s0 )  x3  m3 ( s1 , s0 )) 
E  ( x0  s1  s0  x1  s1  s0  x2  s1  s0  x3  s1  s0 )
Multiplexor 4 a 1

20
SÍNTESIS DE FC CON
MULTIPLEXORES
• Un único multiplexor de 2n a 1 permite materializar cualquier
función de conmutación de ‘n’ variables.
• La EC de una FC como suma de productos consiste en la suma de
los minterms mi para los que la FC, f(i) toma valor cierto, es decir:
2 1
n

f(a n-1 ,..., a 0 )   f(i)  m (a


i0
i n-1
,..., a 0 )

• La EC de un multiplexor es:
2 1
n

y  E x
i 0
i
 m i (s n-1 ,..., s 0 )

• Por tanto, podemos hacer que y = f(an-1,…,a0) si hacemos:


 Que Enable = ‘1’.
 Que las entradas Si sean las variables de la función.
 Que cada entrada Xi del multiplexor sea igual a f(i) (el valor de la fila i
de la tabla de verdad).
21
SÍNTESIS DE FC CON
MULTIPLEXORES
• Ejemplo: sintetizar f(x,y,z) mediante un único multiplexor.
f(x, y, z)   m(0,3,4,7)

22
SÍNTESIS DE FC CON
MULTIPLEXORES
• La materialización de FCs mediante multiplexores no es directa
cuando no se dispone de un multiplexor con tantas entradas de
control como variables binarias tiene la FC.
• Dado un multiplexor de 2n a 1
(es decir, con ‘n’ entradas de
selección) y una función con
‘n+k’ variables binarias, se
seleccionan ‘n’ variables como
entrada de control y se usan las
‘k’ restantes como variables de
las 2n funciones de entrada al
multiplexor.

f(x ,..., x , x ,..., x )  f(z ,..., z , s ,..., s )  2n 1


E (z ,..., z )  m (s ,..., s )
n k -1 n n-1 0 k -1 0 n-1 0  i k -1 0 i n-1 0
i 0 23
SÍNTESIS DE FC CON
MULTIPLEXORES
• Cada función de k entradas puede realizarse con multiplexores de
k entradas de control (árbol de multiplexores), con
decodificadores, con puertas lógicas, etc.
• Ejemplo: implementar f mediante un multiplexor de 4 a 1 y puertas
lógicas. (Se ha escogido c y d como entradas de selección del
multiplexor) f ( a, b, c, d )   m(1,3,4,6,7,9,10,11,14)
f (a, b, c, d )  a  b  c  d  a  b  c  d  a  b  c  d  a  b  c  d  a  b  c  d  a  b  c  d  a  b  c  d  a  b  c  d  a  b  c  d 
 ( a  b)  c  d  ( a  b  a  b )  c  d  ( a  b  a  b  a  b )  c  d  ( a  b  a  b  a  b )  c  d
E0 E1 E2 E3

E0  a  b
E1  a  b  a  b  b
Simplificación algebraica
E2  a  b  a  b  a  b  a  b
E3  a  b  a  b  a  b  a  b 24
SÍNTESIS DE FC CON
MULTIPLEXORES
• También se puede resolver de forma gráfica con mapas de Karnaugh.
• Se trata de dividir el mapa en regiones en las que las variables que
se utilizarán como entradas de selección del multiplexor tienen
valores constantes.
• Ejemplo: para la misma función que la transparencia anterior:

E0 E1 E3 E2 Se divide el mapa en las regiones en las que ‘c’


c d y ‘d’ valen ‘00’ => E0; ‘01’ => E1, etc.
ab 00 01 11 10
0 1 3 2
Cada región se trata como un mapa de
00 1 1 Karnaugh de 2 variables (‘a’ y ‘b’)
4 5 7 6

01 1 1 1 E0  a  b
E1  b
12 13 15 14

11 1
8 9 11 10 E2  a  b
10 1 1 1
E3  a  b
25
SÍNTESIS DE FC CON
MULTIPLEXORES
• Si se escogen otras variables de selección (‘a’ y ‘d’ en este
ejemplo) el circuito resultante es diferente.
E0  b
E1  b  c
E0 E1 E0
cd E2  c
00 01 11 10
ab
0 1 3 2 E3  b
00 1 1
4 5 7 6

01 1 1 1
12 13 15 14

11 1
8 9 11 10

10 1 1 1

E2 E3 E2
26
DEMULTIPLEXORES
• Un demultiplexor (o demultiplexor de 1 a 2n) es un módulo
combinacional con 1 entrada y 2n salidas, además de una
entrada de activación y ‘n’ entradas de control.

• La salida de indice ‘i’ vale lo mismo


que la entrada X, siempre que Entrada
Enable esté activado y las entradas de datos
de selección estén codificando el
número decimal ‘i’. El resto de
salidas valen ‘0’.
• Puesto en forma de expresión de
conmutación:
yi  E  x  m i (s n-1 ,..., s 0 )
Entradas de
selección
27
DEMULTIPLEXORES
• Ejemplo: implementar un demultiplexor de 1 a 4.
Demux 4a1
yi  E  x  m i (s n-1 ,..., s 0 )

y0  E  x  s 1 s 0
y1  E  x  s 1 s 0
y2  E  x  s 1 s 0
y3  E  x  s 1 s 0

28
ÍNDICE
• Bibliografía
• Introducción
• Codificadores y decodificadores
–Síntesis de funciones de conmutación con decodificadores
• Multiplexores y demultiplexores
–Síntesis de circuitos combinacionales con multiplexores
• Desplazadores
• Comparadores
• Dispositivos lógicos programables
• Módulos aritméticos básicos
–Sumador
–Restador
–Sumador/Restador
• Unidad aritmético-lógica
29
DESPLAZADORES
• Un desplazador (shifter) es un módulo combinacional con n+2 entradas y
n salidas, además de una señal de activación y varias señales de control.
• El desplazador mueve a derecha o izquierda en desplazamientos abiertos
o cerrados (rotaciones) en función de las señales de control.

• Aunque se pueden

.
.
.
.
.
.
.
materializar mediante XL Xn-1 Xn-2 X1 X0 XR

expresiones de conmutación Enable

a través de puertas lógicas la


DESPLAZADOR
construcción habitual suele
consistir en un conjunto de OP

multiplexores. Yn-1 Yn-2 Y1 Y0

.
.
.
.
.
.
.
30
DESPLAZADORES
• Ejemplo: desplazador de 4 bits que realiza las siguientes operaciones:

OP = “00” => Desplazamiento a derecha OP = “01” => Desplazamiento a izquierda

XL X 3 X2 X1 X 0 XR XL X3 X2 X 1 X0 XR

Enable Enable

OP OP

Y 3 Y 2 Y1 Y0 Y 3 Y2 Y 1 Y 0

OP = “10” => Rotación a derecha OP = “11” => Rotación a izquierda

XL X3 X2 X1 X0 XR
XL X3 X2 X1 X0 XR

Enable
Enable

OP
OP

Y3 Y2 Y1 Y0 Y3 Y2 Y1 Y0

31
DESPLAZADORES
• Ejemplo (continuación): se puede implementar utilizando multiplexores:

X2 X0 X2 XL X1 X3 X1 X3 X0 X2 X0 X2 X3 X1 XR X1
Enable
OP0
OP1

E 3 2 1 0 E 3 2 1 0 E 3 2 1 0 E 3 2 1 0
0 0 0 0
1 1 1 1

Y3 Y2 Y1 Y0

32
ÍNDICE
• Bibliografía
• Introducción
• Codificadores y decodificadores
–Síntesis de funciones de conmutación con decodificadores
• Multiplexores y demultiplexores
–Síntesis de circuitos combinacionales con multiplexores
• Desplazadores
• Comparadores
• Dispositivos lógicos programables
• Módulos aritméticos básicos
–Sumador
–Restador
–Sumador/Restador
• Unidad aritmético-lógica
33
COMPARADORES
• Un comparador es un módulo combinacional con 2n entradas de datos (a
y b de n bits cada una), 3 entradas para encadenamiento de comparación
(de entradas menos a más significativas ) y 3 salidas de comparación.

• El comparador determina la
relación de magnitud de
dos vectores binarios
indicando si el primero es
mayor (agtb), menor (altb)
o igual (aeqb) que el
segundo.
agtbout = (a>b) + (a=b)·agtbin
aeqbout = (a=b)·aeqbin
altbout = (a<b) + (a=b)·altbin
34
COMPARADORES
• Ejemplo: comparador de un bit encadenable.

• Partimos primero de un comparador de un bit NO encadenable:

a b (a>b) (a=b) (a<b)


0 0 0 1 0
0 1 0 0 1
1 0 1 0 0
1 1 0 1 0

(a>b)  a  b
(a=b)  a xnor b

(a<b)  a  b

35
COMPARADORES
• Ejemplo (continuación): a partir del comparador no encadenable
añadimos las entradas de comparación se calculan las ecuaciones
de las salidas teniendo en cuenta las entradas de comparación.
agtbout = (a>b) + (a=b)·agtbin
aeqbout = (a=b)·aeqbin
Comparador de 1 bit
altbout = (a<b) + (a=b)·altbin

Comparador de 1
bit encadenable

36
COMPARADORES
• Encadenando varios comparadores se pueden construir otros de mayor tamaño.
• Ejemplo: comparador de 4 bits a partir del comparador encadenable de 1 bit.

37
ÍNDICE
• Bibliografía
• Introducción
• Codificadores y decodificadores
–Síntesis de funciones de conmutación con decodificadores
• Multiplexores y demultiplexores
–Síntesis de circuitos combinacionales con multiplexores
• Desplazadores
• Comparadores
• Dispositivos lógicos programables
• Módulos aritméticos básicos
–Sumador
–Restador
–Sumador/Restador
• Unidad aritmético-lógica
38
DISPOSITIVOS LÓGICOS
PROGRAMABLES
• Bajo la denominación de dispositivos lógicos programables se
encuadran un conjunto de circuitos integrados formados por cierto
número de puertas lógicas y/o módulos básicos y/o biestables
cuyas conexiones pueden ser personalizadas o programadas,
bien sea por el fabricante o por el usuario.
• La gran ventaja de estos dispositivos reside en que los fabricantes
pueden realizar grandes tiradas de estos CI lo que abarata sus costes
de producción y los usuarios posteriormente pueden personalizar sus
diseños en sus propios laboratorios sin grandes inversiones.
• Dentro de ese conjunto de dispositivos haremos mención de las
memorias ROM, las PLA y las PAL.
• Las diferencias fundamentales entre sendos tipos de dispositivos
estriba en los grados de libertad que disponen cada uno de ellos en
cuanto a su capacidad y flexibilidad de programación.

39
DISPOSITIVOS LÓGICOS
PROGRAMABLES: ROM
• Una memoria ROM (Read Only Memory - memoria de sólo lectura) es
un módulo combinacional con ‘n’ entradas de direcciones y ‘k’ salidas
de datos, además de una o varias señales de activación.

• Existen distintos tipos, según se


puedan o no programar, borrar, como
se realiza el borrado, etc:
 ROM Read-Only Memory
 PROM Programmable ROM
 EPROM Erasable and Programmable
ROM
 EEPROM Electrically erasable PROM

40
DISPOSITIVOS LÓGICOS
PROGRAMABLES: ROM
• Una ROM se compone internamente de dos
grupos de puertas: un grupo de puertas And
(en realidad incluye también un conjunto de
inversores) y un grupo de puertas Or.
• El grupo de puertas And están programadas
de antemano y conectadas de forma
inalterable, mientras que el grupo de puertas
Or son programables por el usuario.
• En general, una ROM con ‘n’ entradas de
direcciones y ‘k’ salidas de datos consta de
un grupo de puertas And (‘n’ inversores y 2 n
puertas And de n entradas) y un grupo de
puertas Or (‘k’ puertas Or de 2n entradas,
tantas como puertas And).

41
DISPOSITIVOS LÓGICOS
PROGRAMABLES: ROM
• Las puertas And están conectadas de tal forma que cada una
de ellas implementa uno de los 2n minterms de las ‘n’ variables
de entrada (es como un decodificador de n a 2n .
• El grupo de puertas Or es programable, de tal forma que cada
una de las puertas Or puede implementar una suma de
algunos de los 2n minterms.
• Cualquier salida de datos de la ROM implementa la siguiente
expresión de conmutación:

–fj(i)=1 si existe conexión (fila i, columna j) en el grupo Or


–fj(i)=0 si no existe dicha conexión

42
DISPOSITIVOS LÓGICOS
PROGRAMABLES: ROM
• Ejemplo: implementar las siguientes funciones de conmutación
con una ROM:
f 2 ( x, y, z )   m(0,1,6)
f1 ( x, y, z )   m(2,3,5)
f 0 ( x, y, z )   m(4,6,7)

• Como son funciones de 3


variables se necesita una
ROM con 3 entradas de
direcciones.
• Como hay que implementar 3
funciones se necesita una
ROM con 3 salidas de datos.

43
DISPOSITIVOS LÓGICOS
PROGRAMABLES: ROM
• Una ROM se puede ver como una tabla que almacena datos con la
siguiente estructura interna abstracta, donde cada dato ocupa una
posición de la tabla denominada dirección.
ROM
Read Only Memory

dirección 0 Palabra 0
dirección 1 Palabra 1
dirección 2 Palabra 2

dirección n-1 Palabra n-1

• Como la única parte programable es la Or se suele representar


mediante la matriz de conexiones Or con 1 y 0 indicando conexión o
no conexión respectivamente, de nuevo materializando directamente
44
la tabla de verdad.
DISPOSITIVOS LÓGICOS
PROGRAMABLES: ROM
• Ejemplo: las mismas tres funciones que en el ejemplo anterior:
f 2 ( x, y, z )   m(0,1,6)
f1 ( x, y, z )   m(2,3,5)
f 0 ( x, y, z )   m(4,6,7)

45
DISPOSITIVOS LÓGICOS
PROGRAMABLES: PLA
• Una memoria ROM materializa FCs
directamente como suma de minterms
ya que el grupo de puertas And está
prefijado.
• Cuando una FC sólo utiliza unos pocos
minterms o admite una fuerte
simplificación utilizar una ROM puede
ser un despilfarro.
• Para este tipo de situaciones se utilizan
dispositivos PLA (Programmable Logic
Array) con conexiones programables
tanto en el grupo de puertas And como
en el grupo de puertas Or.

46
DISPOSITIVOS LÓGICOS
PROGRAMABLES: PAL
• Las PAL (Programmable Array Logic) son
un caso particular de PLA con conexiones
Or preprogramadas.
• Una PAL con ‘n’ entradas y ‘k’ salidas
presenta un grupo de ‘m’ puertas And de 2n
entradas y un grupo de ‘k’ puertas Or de p
entradas, usualmente p=m/k.
• Con estos parámetros una PAL puede
materializar ‘k’ funciones de conmutación de
‘n’ variables que se expresen como suma de
productos de un máximo de ‘p’ sumandos.
• Ejemplo: representar una PAL con n=3, m=8
y k=2. ¿Qué FCs se pueden materializar?

• Se pueden implementar 2 FCs de 3 entradas con un


máximo de p=m/k=4 términos producto cada una. 47
DISPOSITIVOS LÓGICOS
PROGRAMABLES: PAL
• Ejemplo: materializar las siguientes funciones de conmutación con una PAL con
las características anteriores.

48
ÍNDICE
• Bibliografía
• Introducción
• Codificadores y decodificadores
–Síntesis de funciones de conmutación con decodificadores
• Multiplexores y demultiplexores
–Síntesis de circuitos combinacionales con multiplexores
• Desplazadores
• Comparadores
• Dispositivos lógicos programables
• Módulos aritméticos básicos
–Sumador
–Restador
–Sumador/Restador
• Unidad aritmético-lógica
49
SUMADORES
• El semisumador (half adder) es un circuito que suma dos bits de
entrada A y B, y devuelve un bit de resultado S y un bit de acarreo cout.

• Se suele representar con este símbolo:

a b

+
cout
s
50
SUMADORES
• El sumador completo (full adder) es un circuito que suma dos bits
de entrada A y B más un acarreo de entrada Cin y devuelve un bit
de resultado S y un bit de acarreo Cout.

• Se suele representar con este símbolo:


a b

+
cout cin
s 51
SUMADORES
• Sumador de ‘n’ bits con
propagación de acarreo:
–Se construye conectando en
cascada varios sumadores
completos de 1 bit.
an-1 bn-1 a1 b1 a0 b0

a b a b a b

cout Cout
+ Cin
... Cout
+ Cin Cout
+ Cin
cin
s s s

sn-1 s1 s0 52
RESTADORES
• Recordatorio: para restar dos números en binario se hace la
suma del minuendo con el complemento a 2 del sustraendo. El
complemento a 2 es el complemento a 1 más ‘1’. En la resta
binaria hay que invertir el acarreo final.
an-1 bn-1 a1 b1 a0 b0

a b a b a b

cout
+ cin
... cout
+ cin cout
+ cin
'1'
cout
s s s

sn-1 s1 s0
53
SUMADORES RESTADORES
• Se pueden combinar el sumador y el restador en un único
circuito que realice la operación de suma o de resta en función
X  Recordar
de una señal de control. 0 X que:
X 1  X
an-1 bn-1 an-2 bn-2 a1 b1 a 0 b0
Op

a b a b a b a b

cout
+ cin cout
+ cin
... cout
+ cin cout
+ cin
s s s s

sn-1 sn-1 s1 s0

54
cn-1
ÍNDICE
• Bibliografía
• Introducción
• Codificadores y decodificadores
–Síntesis de funciones de conmutación con decodificadores
• Multiplexores y demultiplexores
–Síntesis de circuitos combinacionales con multiplexores
• Desplazadores
• Comparadores
• Dispositivos lógicos programables
• Módulos aritméticos básicos
–Sumador
–Restador
–Sumador/Restador
• Unidad aritmético-lógica
55
UNIDAD ARITMÉTICO LÓGICA
• Una unidad aritmético lógica (ALU) es un circuito combinacional que
permite hacer distintas operaciones aritméticas (sumas, restas,
desplazamientos) y lógicas (AND, OR, NOT, XOR, etc) entre dos
operandos, en función de unas señales de control.
• Suelen estar implementadas con sumadores-restadores, multiplexores y
lógica adicional.
• Ejemplo de diseño: ALU con dos entradas de datos de 4 bits, que realiza
las siguientes operaciones en función de una entrada de control de 2 bits:

OP1 OP0 OPERACIÓN


0 0 X + Y
0 1 X - Y
1 0 X AND Y
1 1 X OR Y
56
UNIDAD ARITMÉTICO LÓGICA
• Ejemplo (continuación):

X3 Y3 X2 Y2 X1 Y1 X0 Y0
OP0
OP1

LE AE LE AE LE AE LE AE

LC
a b a b a b a b
cout + cin cout + cin cout + cin cout + cin
s s s s

Z3 Z2 Z1 Z0

57
UNIDAD ARITMÉTICO LÓGICA
• Con la estructura propuesta, los bloques LE y AE se encargan de
proporcionar a las entradas A y B de los sumadores los datos
necesarios para que se realice la operación deseada. El bloque LC se
encarga de proporcionar el acarreo de entrada a la cadena de
sumadores.
– Si OP1 y OP0 = “00”
• Ai= Xi, Bi = Yi, LC = 0, y por tanto los sumadores harán la operación X + Y + 0.
– Si OP1 y OP0 = “01”
• Ai = Xi, Bi = ‘Yi, LC = 1, y por tanto los sumadores harán la operación X + ‘Y + 1, es decir X –
Y.
– Si OP1 y OP0 = “10”
• Ai = Xi AND Yi, Bi = 0, LC = 0, y por tanto los sumadores harán la operación (X AND Y) + 0 +
0, es decir X AND Y.
– Si OP1 y OP0 = “11”
• Ai = Xi OR Yi, Bi = 0, LC = 0, y por tanto los sumadores harán la operación (X OR Y) + 0 + 0,
es decir X OR Y.

58
UNIDAD ARITMÉTICO LÓGICA
LE AE
xy
OP1 OP0
OP1 OP0 00 01 11 10 yi
00 01 11 10
00 0 0 1 1
00 0 1 0 0

01 0 0 1 1
01 1 0 0 0

11 0 1 1 1

10 0 0 1 0

bi  OP1  OP0  yi  OP1  OP0  yi

ai  OP1  OP0  yi  xi  yi  OP1  xi  OP0  xi

LC => vale ‘1’ cuando OP = “01” => LC OP1  OP0


59

También podría gustarte