Sistemas Digitales
Bloques
estandarizados
Más allá de las puertas lógicas
Mario Medina C.
[email protected]
Complejidad creciente de diseños hace
necesario buscar nuevos niveles de
abstracción por sobre las compuertas
discretas
Alternativas de mayor escala de integración
Implementaciones alternativas
Implementaciones alternativas de funciones
booleanas
Uso de bloques estandarizados
Codificadores y decodificadores
Multiplexores y demultiplexores
Implementaciones ASIC
Alternativas programables
PLA/PAL
Memorias ROM
Circuito semi-sumador
A
0
0
1
1
B
0
1
0
1
Cout
0
0
0
1
© 2014 Mario Medina
Suma
0
1
1
0
MSI (Medium-Scale Integration)
LSI (Large-Scale Integration)
Bloques estandarizados
Funciones más complejas, sin aumentar el
número de conexiones externas
Semi-sumador
Sumador completo
Sumador con
propagación de
acarreo
Sumador con acarreo
anticipado
Comparador
Codificador
Decodificador
Multiplexor
Demultiplexor
Circuito sumador completo
Cin
0
0
0
0
1
1
1
1
A
0
0
1
1
0
0
1
1
B
0
1
0
1
0
1
0
1
Cout Suma
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
Sistemas Digitales
Circuito sumador completo
Circuito sumador completo
Sumadores en paralelo
Construido con dos semi-sumadores
Sumador paralelo de 4 bits
Sumador de 2 bits
Sumador paralelo de 4 bits
(74LS283)
© 2014 Mario Medina
Retardos de propagación,
74LS283
2
Sistemas Digitales
Sumador paralelo de 8 bits
Sumador paralelo de 16 bits
4 sumadores paralelos de 4 bits en cascada
Retardo de propagación,
sumador de 4 bits
Retardo de propagación aumenta linealmente
Sumador de anticipación de
acarreo
Llamado también carry-lookahead adder
Acarreo puede ser
Generado: si entradas A y B a un sumador son 1
Propagado: si el acarreo de entrada Cin se refleja
en un acarreo de salida, lo que ocurre si al
menos una de las entradas es 1 y Cin es 1
Cg = AB
Cp = A + B
Cout = Cg + CpCin
Acarreos generados y
propagados
generado
propagado
© 2014 Mario Medina
Sumador de anticipación de
acarreo
propagado propagado
3
Sistemas Digitales
Circuito de anticipación de
acarreo
Circuito comparador de 4 bits
7485
Circuitos comparadores en
cascada
Codificadores
Bloque de 2n entradas y n
salidas
Se llama codificador 2n-a-n
o de n bits
Transforma la única
entrada activa a algún
código (Binario, Gray,
BCD, etc.)
i si x i 1 y E 1 y (x k 0 k i)
z
0 en otro caso
Codificadores
Codificador de prioridades
Sólo una entrada puede estar activa a la vez
Entrada E es una señal de control, no de
datos
Habilita o deshabilita el bloque
Deshabilitación deja todas las salidas en alto o
bajo, dependiendo de la lógica definida para el
bloque
© 2014 Mario Medina
Codifica la entrada de mayor prioridad que
está activa
Puede haber más de una entrada activa a la vez
Necesario establecer prioridad entre las
entradas
Salida adicional indica si no existen entradas
activadas
4
Sistemas Digitales
Codificador de prioridades
74LS148
Codificador de prioridades
Salida abc codifica entrada activa de mayor
prioridad
Entrada y7 tiene mayor prioridad que y0
Salida d indica que hay una entrada activa
y0
0
1
X
X
X
X
X
X
X
y1
0
0
1
X
X
X
X
X
X
y2
0
0
0
1
X
X
X
X
X
y3
0
0
0
0
1
X
X
X
X
y4
0
0
0
0
0
1
X
X
X
y5
0
0
0
0
0
0
1
X
X
y6
0
0
0
0
0
0
0
1
X
y7
0
0
0
0
0
0
0
0
1
a
0
0
0
0
0
1
1
1
1
b
0
0
0
1
1
0
0
1
1
Codificador de prioridades 16a-4 en cascada
c
0
0
1
0
1
0
1
0
1
d
0
1
1
1
1
1
1
1
1
8 entradas activas bajas
3 salidas activas bajas
HPRI: entrada de más
alto valor tiene
prioridad
EI: activación activa baja
EO y GS: salidas activas
bajas para conexión en
cascada
Decodificadores
Bloque de n entradas y 2n
salidas
Se llama decodificador n-a-2n
Función inversa a codificador
Activa una de las salidas en
función del valor de las entradas
Implementación decodificador
2-a-4
1 si x i y E 1
zi
0 en otro caso
Decodificador 3-a-8
© 2014 Mario Medina
Demás salidas inactivas o
complementadas
Señales de salida mutuamente
excluyentes
Implementación usa 8 ANDs de 3 entradas
5
Sistemas Digitales
Ejemplo: decodificador 4-a-10
para BCD 8421
Ejemplo: decodificador 4-a-10
•Decodificador para dígitos
BCD 8421
•Salidas activas bajas
Decodificador 4-a-16 74LS154
Decodificador 5-a-32 usando
decodificadores 4-a-16
•Salidas y activación activas baja
Implementaciones alternativas
con decodificadores
Implementar funciones f1 y f2 con
decodificador 4-a-10, salida activa baja
Multiplexores o selectores
f1 = m1 + m2 + m4
f2 = m4 + m7 + m9
Reescribiendo
f1 = (m1’m2’m4’)’
f2 = (m4’m7’m9 ’)’
© 2014 Mario Medina
Bloque de 2n entradas de datos,
n entradas de control y 1 señal
de salida
También se debe añadir la señal
de habilitación E
Si el bloque está habilitado, la
señal de control s selecciona
una de las entradas para ser
dirigida hacia la salida
Si E 1
Y x c , c s 0s1s2
6
Sistemas Digitales
Operación de un multiplexor
2-a-1
Escoge la entrada basada en señal de control
Z = A’*I0 + A*I1
Multiplexor 8-a-1
•2n entradas
•n señales de control
Multiplexor 2-a-1
Multiplexores 2n-a-1
Multiplexor de 8 entradas
74LS151
Entradas I0 a I7
Señales de control abc
Multiplexor 16-a-1 usando
multiplexores 8-a-1
Multiplexor de datos
Multiplexor cuádruple con
entradas y salidas de bus de
4 bits
© 2014 Mario Medina
7
Sistemas Digitales
Multiplexor de 2 entradas
cuádruple 74LS157
Demultiplexores o
distribuidores
Función inversa al multiplexor
Bloque de 1 entrada, 2n salidas
de datos, n entradas de control
Demultiplexores o
distribuidores
Notar la similitud entre las descripciones de
un demultiplexor y un decodificador
Demultiplexor 4-a-16
Usados adecuadamente sus operaciones son
intercambiables
De hecho, los fabricantes clasifican los
demultiplexores como demultiplexers/decoders
Decodificador 4-a-16
74154 puede ser usado
también como
demultiplexor
Implementaciones alternativas
con multiplexores
Describiendo un multiplexor de 2 y 4 entradas
mediante una tabla de verdad, podemos escribir
sus funciones de transferencia como
Además de la señal de
habilitación E
Si el bloque está habilitado, la
señal de entrada es enviada a la
salida seleccionada mediante la
x si E 1 e i c
señal de control s
zi
Las salidas son mutuamente
0 si E 0 o i c
excluyentes
Usar entradas como líneas
de selección de datos
Usar habilitación como
entrada de datos
Implementaciones alternativas
con multiplexores
En forma general
k 0
Esto corresponde a una expresión en
minitérminos
z A I 0 A I1
© 2014 Mario Medina
z A B I 0 A B I1 A B I 2 A B I 3
2n -1
z mkIk
Representación en dos niveles (AND-OR)
Expresión general de un multiplexor de n:1
indica que éstos pueden ser utilizados como
generadores de minitérminos
Más que un selector, es un bloque de propósito
general
8
Sistemas Digitales
Implementaciones alternativas
con multiplexores
Ejemplo de implementación
Multiplexor
puede implementar una
tabla de verdad en forma directa
F(A 2 , A 1 , A 0 ) m1 m3 m5 m 6
Ejemplo
F(A, B, C) m0 m2 m6 m7
Conexión a +5V equivale a 1 lógico
Implementaciones alternativas
con multiplexores
Cualquier función de n variables puede
implementarse en forma directa con un MUX
de 2n-a-1
El número de entradas a un MUX suele ser
limitado
Comercialmente no se fabrican con muchas
entradas
Implementaciones alternativas
con multiplexores
Metodología general (particionar la función)
Seleccionar n-1 variables como entradas de
control
Variable restante se usará como entrada
Cada combinación de las n-1 variables define 2
celdas de la tabla de verdad
Si la variable de entrada es constante en 0 o 1, la
entrada asociada al MUX será 0 o 1
Si la variable de entrada cambia su valor, la
entrada al MUX será la variable de entrada o su
complemento
© 2014 Mario Medina
Implementaciones alternativas
con multiplexores
A
0
0
0
B
0
0
1
C
0
1
0
F
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
C
0
1
Ejemplo: implementar la siguiente función
con un MUX de 4-a-1
F(A, B, C) = A’B’C’ + A’BC’ + AB
F(A, B, C) = A’B’(C’) + A’B(C’) + AB’(0) + AB(1)
Implementaciones alternativas
con multiplexores
Implementar con un MUX de 8:1 la función
F(A, B, C, D) = ∑m(0, 1, 3, 6, 7, 8, 11, 12, 14)
El método es general para más
variables, pero las entradas
serían función de las variables
que no se definen como de
control
Requiere uso de bloques lógicos en
las entradas
9
Sistemas Digitales
Implementaciones alternativas
con multiplexores
Otro ejemplo
F(A, B, C, D) m(1,2,5,6,7, 8,10,12,13 ,15)
Implementar un MUX de 8:1 con
Implementaciones alternativas:
demultiplexor
Cualquier función de n variables puede
implementarse con un demultiplexor de n
entradas de control y puertas OR
Cada combinación de entradas selectoras
corresponde a un minitérmino de una función
Todas las salidas que corresponden a un
minitérmino se usan como entradas a un OR que
calcula la función final
Implementaciones alternativas
Circuitos integrados comerciales imponen
limitantes a número de entradas disponibles
Inclusión de entradas de control, como la de
habilitación E, permite interconectar
jerárquicamente distintos bloques para
formar bloques más grandes
Un MUX de 32-a-1 puede implementarse con 4
MUX de 8:1 y un decodificador de 2-a-4
Decodificador 5:32 puede implementarse con 1
decodificador de 2:4 y 4 decodificadores de 3:8
© 2014 Mario Medina
2 MUX de 4:1 y un MUX de 2:1
4 MUX de 2:1 y un MUX de 4:1
Implementaciones alternativas
con demultiplexor
Implementar las siguientes
funciones con un
demultiplexor de 8 salidas
F(C, B, A) = ∑m(0, 2, 3, 7)
G(C, B, A) = A’BC + AB’C + ABC’
Fan-Out y buffers
Una salida de compuerta lógica sólo se
puede conectar a un número limitado de
otras entradas
Limitación de implementación
Buffer
No modifica el valor lógico de la entrada
Mejora las características eléctricas de la salida
Permite aumentar el fan-out
10
Sistemas Digitales
Fan-Out y buffers
Función buffer
Buffer que aísla la entrada de la salida
Si B es 1, C = A
Si B es 0, A y C no están conectados
No se pueden conectar directamente dos
salidas
Buffer de 3 estados
Tipos de buffers de 3 estados
Salidas activa alta/baja
Control activo alto/bajo
3er estado es alta impedancia (Z)
Circuitos con buffers de 3
estados
F=C
Permite
conectar más
entradas a la
salida
Buffers de 3 estados
Conectando salidas
Construyendo un multiplexor de 2-a-1 con
buffers de 3 estados
Nótese que salidas de buffers están conectadas
directamente!
Si B = 0, D = A
Si B = 1, D = C
D = AB’ + BC
© 2014 Mario Medina
Construyendo circuitos con
buffers de 3 estados
Si BD = 00, F = Z (alta impedancia)
Si BD = 01, F = C
Si BD = 10, F = A
Si BD = 11, Error!
Conflicto entre las salidas
Debe garantizarse que
BD nunca será 11
Cómo? Decodificador
11
Sistemas Digitales
Buffers de 3 estados como
alternativas a MUXes
Sumador de 4 bits
Sum = (EnA*A + EnB*B + EnC*C + EnD*D) + E
Sólo una entrada de habilitación activa a la vez
Líneas bidireccionales
utilizando buffers de 3 estados
Terminal bidireccional
Enable
construido con buffer de
Salida
3 estados
Si buffer está activo,
terminal corresponde a
salida del circuito
Si buffer está inactivo,
terminal corresponde a
entrada al circuito
Terminal
Entrada
Bus de datos bidireccional
© 2014 Mario Medina
12