2-6 Modulos Combinacionales Basicos
2-6 Modulos Combinacionales Basicos
2-6 Modulos Combinacionales Basicos
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
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
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
• 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’.
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
• La EC de un multiplexor es:
2 1
n
y E x
i 0
i
m i (s n-1 ,..., s 0 )
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.
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:
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.
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
.
.
.
.
.
.
.
30
DESPLAZADORES
• Ejemplo: desplazador de 4 bits que realiza las siguientes operaciones:
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
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.
(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.
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:
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)
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
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?
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.
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.
+
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:
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