Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lógica Digital
Prof. Ricardo Villegas
Contenido
Diseño con Demultiplexores (DEMUXs)
• Definición, Casos de Estudio, Tipos de DEMUXs
• Expansión de DEMUXs
• Aplicaciones de los DEMUXs
• Implementación de funciones lógicas con DEMUX
Descripción de Comportamiento de Circuitos
con VHDL
Definición de Arquitecturas
Diseño con Demultiplexores (DEMUXs)
Demultiplexor (DEMUX):
Dispositivo que distribuye una única entrada sobre un conjunto de múltiples salidas.
- Encamina la entrada hacia alguna salida.
y0 DEMUX y1
0 0 0 1 1 1 1:4 y2
DEMUX y1
0 1 1 0 1 1 y3
1:4 y2 0
E
E y3 1 0 1 1 0 1
1 1 1 1 1 0
• Tomando en cuenta que las salidas son activo bajo, el valor de la entrada E se distribuye hacia la salida activa si E vale 0, mientras que
cuando vale 1 este aparece distribuido simultáneamente en todas las salidas.
• También puede verse a E como una entrada de habilitación en activo bajo, que desactiva el DEMUX cuando vale 1, haciendo que todas
las salidas valgan 1; en caso contrario, la salida activa con 0 depende de la configuración de las entradas de selección.
Expansión de Demultiplexores
Existen 3 tipos básicos de DEMUX → 1:4, 1:8, 1:16
- Cualquier otra configuración 1:m puede implementarse con base a los anteriores → árboles de DEMUX
• Los DEMUXs se implementan generalmente
A B A B C y
0
A B C Dy
0
con decodificadores (2:4, 3:8, 4:16).
y0 y1 y1 • Existen versiones con salidas en activo alto.
DEMUX y1 y2 y2
DEMUX y3 DEMUX
1:4 y2 DEMUX en Circuitos Integrados TTL
1:8 y4 1:16
…
…
E y3 y5 74139 → (2x) DEMUX 1:4 (Decodificador 2:4)
y6 y14 74138 → (1x) DEMUX 1:8 (Decodificador 3:8)
E y7 E
y15 74154 → (1x) DEMUX 1:16 (Decodificador 4:16)
Árboles de DEMUX
Conjunto de DEMUX organizados en capas, comenzando en una capa inicial con una única entrada y cuyas salidas son
entradas de la siguiente capa y así van divergiendo progresivamente en cada capa hacia el conjunto final de múltiples
salidas.
• Las variables de selección más significativas (varían más lentamente) se distribuyen en las entradas de selección
de las capas iniciales del árbol, mientras que las menos significativas (varían más rapidamente) aparecen en las
entradas de selección de las capas finales.
Entradas de
selección
0
1:M
…
Entrada inicial
0
1:M
…
Salidas
…
de datos
…
0
finales
1:M
…
0 Estructura de
1:M árbol
…
Capa inicial
Capa final
Ejemplo: Supongamos que se desea construir un árbol de DEMUX que se comporte como un DEMUX 1:16 pero
basado en DEMUXs más pequeños, es decir 1:4 y 1:8. Existen diversas configuraciones posibles, pero lo importante
es entender que el árbol debe comenzar en una capa que tiene 1 entrada, finalizar en 16 salidas y que las cuatro
entradas de selección que tendría un DEMUX 1:16, deben distribuirse en las entradas de selección de los DEMUXs
utilizados en el árbol.
Opción #1: Árbol de DEMUX 1:4 solamente
Variables de Selección
C D
A B C D
0 0 0 0 A B
4 variables para y0 y0
0 0 0 1
0 0 1 0 manejar 24 = 16 DEMUX y1 y1
0 0 1 1 salidas 1:4 y2 y2
0 1 0 0 E y3 y3
0 1 0 1
C D
0 1 1 0
0 1 1 1 A B
y0 y4
1 0 0 0 B C D
…
D varía más rápido; A B DEMUX y1 y5
A varía más lento 1:4 y2 y6
A B C y y0
0
y1 y1
A B
y0
E y3 y7
y2 y2
DEMUX y3 y3 DEMUX y1 C D
Opción #2: Árbol mixto de DEMUX 1:2 y 1:8
1:8 y4 y4 1:4 y2
A
y5 y5
y6
E E y3 A B
y0 y8
y6
E y7 y7 y9
DEMUX y1
B C D 1:4 y2 y10
E y3 y11
A B C y y8
E 0
y1 y9 C D
y2 y10
DEMUX y3 y11 A B
y12 y0 y12
1:8 y4
y5 y13 DEMUX y1 y13
y6 y14 y14
Equivalente a DEMUX 1:2 E y7 y15 1:4 y2
E y3 y15
Ejemplo: Implementar un DEMUX 1:32 basado en árboles de los DEMUXs existentes (1:2, 1:4, 1:8, 1:16).
En este ejemplo existen mayor cantidad de configuraciones posibles; se ilustrarán solamente dos de ellas.
Opción #2: Árbol mixto de MUX 8:1 y 4:1
Diagrama de Caja Negra S2 S1 S0
S4 S3 S2 S1S0
Un DEMUX 1:32 tiene 32 salidas y
A B C y y0
requiere 5 entradas de selección 0
y1 y1
ya que 25 = 32 y0 DEMUX
y1 1:8
…
…
…
MUX
y6 y6
32:1 y7
…
E
y7
y31
E
S2 S1 S0
A B C y y8
Opción #1: Árbol mixto de DEMUX 1:2 y 1:16
0
y1 y9
DEMUX
1:8
…
…
…
S3 S2 S1 S0 S4 S3
y6 y14
y7 y15
E
A B C Dy y0 A B
0 y0
y1 y1 S2 S1 S0
y2 y2 DEMUX Y1|
DEMUX 1:4 y2
S4 A B C y y16
1:16 0
…
…
…
E E y3 y1 y17
y14 y14 DEMUX
y15
…
1:8
…
…
y15
E
y6 y22
y7 y23
E
S3 S2 S1 S0
E
A B C Dy y16 S2 S1 S0
0
DEMUX 1:2 y1 y17
y2 y18 A B C y y24
DEMUX 0
y1 y25
1:16 DEMUX
…
…
…
…
1:8
…
…
y14 y30
y30
y15 y31 y6
E
y7 y31
E
Aplicaciones de los Demultiplexores
Distribución de un dato a diversos dispositivos: Colocar Difusión de datos: Retransmitir un conjunto de datos
un dato compuesto de varios bits en un dispositivo recibidos sobre un canal de comunicación compartido.
seleccionado; cada DEMUX distribuye un bit del dato.
Recorrido en alta
S1 S0 Dato muestreo cíclico frecuencia sobre todas
Dispositivo 0 las combinaciones de las
0 0 Disp0 variables de selección
0 1 Disp1
x0
1 0 Disp2 S1 S0 y0
1 1 Disp3 Dato0 Dato0
A B
y0 Dato1 MUX DEMUX Dato1
Dispositivo 1
M:1 1:M
…
DEMUX y1
…
Canal de
1:4 y2 x1 Datom-1 comunicación Datom-1
y3
y1
E
Dato
Implementación de funciones lógicas: Utilizar un
S1 S0
x Dispositivo 2 DEMUX o un conjunto de ellos para implementar
el comportamiento de una función lógica.
y A B
y0 x2
DEMUX y1 y2
1:4 y2 X Y
S1 S0 X Y F
E y3
Dispositivo 3 0 0 1 A B
y0
x3 0 1 0 DEMUX y1
F
y3 1:4 y2
1 0 0 E y3
1 1 1
Activación y control de dispositivos: Utilizar las salidas de un
DEMUX para activar dentro de un conjunto de dispositivos uno solo
de ellos, mientras el resto permanece desactivado.
Implementación de funciones lógicas con DEMUX
Objetivo: Utilizar un solo DEMUX o un árbol de DEMUX para implementar funciones lógicas.
Ejemplo:
X Y X Y
X Y F A B A B
y0 y0
0 0 0 y0
DEMUX y1 DEMUX y1
F
y1
F
0 1 1 1:4 y2 1:4 y2
1 y2 y3 y3
E E
1 0
1 1 0 y3
X Y X Y
X Y F
A B A B
y0 y0
0 0 0 y0
DEMUX y1 DEMUX y1
F
0 1 1 y1 1:4 y2 F 1:4 y2
1 0 1 y2 y3 y3
E E
1 1 0 y3
Puede observarse la correspondencia entre el número de filas en la tabla de la verdad y salidas del DEMUX. Como una función está
definida por sus 1s o 0s, podemos implementar explícitamente una de ambas opciones. Para ello tomamos en cuenta las salidas que
corresponden con los 1s o los 0s de la tabla y las combinamos con las compuertas adecuadas haciéndolas converger hacia una única
salida, tomando en cuenta que las salidas del DEMUX son activo bajo; las combinaciones de las variables de la función conectadas en
las entradas de selección reproducen los valores de la función cuando activan las respectivas salidas del DEMUX.
Caso 1 - Base: El DEMUX tiene tantas entradas de selección como variables tiene la función.
• En este caso tendremos tantas salidas en el DEMUX como filas tiene la tabla de la verdad de la función.
• Debemos concentrar las salidas escogidas del DEMUX en una sola salida final que corresponda con el valor de la
función; recordar que las salidas son activo bajo (se activan con 0)
• Implementar los 1s:
Opción #1: Negar las salidas asociadas con 1s y agrupar con OR
Opción #2: Agrupar con NAND las salidas asociadas con 1s.
• Implementar los 0s:
Opción #1: Agrupar con AND las salidas asociadas con 0s.
Opción #2: Negar las salidas asociadas con 0s y agrupar con NOR.
Ejemplo:
F ( a , b, c ) = ∑ (0,1,4,7 )
Las implementaciones tipo “caso base” son simples y relativamente directas
3 variables → n=3 con respecto a la definición de la función en su tabla de la verdad.
Sin embargo, requiere un DEMUX suficientemente grande para que acepte
23 = 8 → DEMUX 1:8 todas las variables de la función en sus entradas de selección.
a b c F
a b c a b c
0 0 0 1
A B C y A B C y
0 0 1 1 0 0
y1 y1
0
0
1
1
0
1
0
0
y2
DEMUX y3
1:8 y4
y5
F ≡ y2
DEMUX y3
1:8 y4
y5
F
1 0 0 1 y6 y6
E y7 E y7
1 0 1 0
1 1 0 0
?
1 1 1 1
Ejercicio: F ( w, x, y , z ) = ∏ ( 4,5,7,8,12,15)
Caso 2: El DEMUX tiene menor cantidad de entradas de selección que la cantidad de variables de la función.
• También hay menos salidas en el DEMUX que las filas de la tabla de la verdad de la función.
• De acuerdo con esto, si nf es el número de variables de la función y n el número de entradas de selección del DEMUX:
→ nf > n → r = nf - n ; aparecen r variables “residuales” que no “caben” en el DEMUX.
• Las salidas escogidas van a estar ahora asociadas con expresiones que contienen a las variables residuales.
• Si el enunciado no especifica cuales son las variables de selección o residuales a usar, estas deben escogerse pero
tomando en cuenta lo siguiente:
IMPORTANTE: el cambio del conjunto de variables de selección produce una implementación equivalente
de la función pero complemente diferente → Se genera un circuito equivalente diferente.
Caso 2.a – Una variable residual: El número de entradas de selección del DEMUX es menor en 1 que la cantidad de
variables de la función → r = nf - n = 1 → una sola variable residual.
• Se determinan las expresiones a conectar en las salidas por inspección de la tabla de la verdad.
- Para una sola variable residual, las únicas expresiones posibles son la variable o la variable negada.
y
Ejemplo: Implementar F con DEMUX 1:4, tomando w y x como variables de selección. w x
F ( w, x, y ) = ∑ (1,4,5,6) w x y F Estos términos contienen
A B y
0
tanto 0s como 1s DEMUXy1
0 0 0
DEMUX 1:4 → 2 ent. sel.
F:
0
y 1:4 y2 F
nf = 3 ; n = 2 x 0 1
r = 3-2 = 1 var. res. → y
0 0 1 1
w 1s E y3
0 1 0 0 0
•
y •0
0 •
0 1 1 0 1 1
•
y
w x
y
• • 0s
1 0 0 1
1 A B y
Combinaciones 1 0 1 1
Este MK está en función de
0
posibles de w y x 1 1 0 1 DEMUXy1 F
las variables de selección y
1 1 1 0
y ayuda a visualizar si conviene 1:4 y2
implementar los 1s (•) o los E y3
G ( a , b, c, d ) = ∑ ( 2,7,8,9,12) + φ ( 4,5,11,13)
d
G: a b c
a b c d G bc
a 00 01 11 10 A B C y
0 0 0 0 0 • • • 0
0 0 y1
•
0 0 d
0 0 0 1 0 d y2 G
1 1
•
0
•
0 1 DEMUX y3
0 0 1 0 1 1:8 y4
d y5
0 0 1 1 0 y6
E y7
0 1 0 0 φ
φ φ =0→0
0 1 0 1 φ
0 1 1 0 0
0 1 1 1 1
d
1 0 0 0 1
1 φ =0→0
• Las expresiones se deducen del valor de
1 0 0 1 1
G con respecto a d si φ es 0 o 1.
1 0 1 0 0 0,35 • En este momento decidimos cuanto vale
0 ó d ≈ d ⋅φ cada φ y por lo tanto la expresión
1 0 1 1 φ resultante que irá conectada en la salida
1 1 0 0 1 φ =1→1 respectiva del DEMUX.
d ó 1 ≈ d + d ⋅φ
1 1 0 1 φ
?
1 1 1 0 0 ¿Cuáles serían los circuitos
0 resultantes si las variables de
1 1 1 1 0
selección fuesen abd, acd o bcd?
Caso 2.b – Dos o más variables residuales: El número de entradas de selección del DEMUX es menor al menos en 2
que la cantidad de variables de la función → r = nf - n ≥ 2 → más de una variable residual.
• Se determinan las expresiones a conectar en las salidas por simplificación de expresiones con MK:
-Se construyen tantos mapas de Karnaugh con respecto a las variables residuales como combinaciones existan de
las variables de selección y se llenan con los valores correspondientes de la función a implementar.
- De cada mapa se obtiene una expresión simplificada que es función de las variables residuales y se combina con la
salida correspondiente del DEMUX.
w x y z F Mapa de Karnaugh
DEMUX 1:4 → 2 ent. selección para las salidas
0 0 0 0 1 nf = 4 ; n = 2 F: y
0 0 0 1 r = 4-2 = 2 var. residuales → wz; xy sel. 0 1
x
0
0 0 1 0 0 0 •
z •
0
xy=00 xy=01
1 w⊕ z
•
0 0 1 1 φ 1
f0: f1 :
0 1 0 0 1 z z
0 1 0 1
w w
0 1 0 1 1 0 1 0 0 0 φ
0 1 1 0 0
1 1 φ 1 φ 0
0 1 1 1 1
wz
1 0 0 0 1 f0 = z f1 = 0 x y
1 0 0 1 φ xy=10 xy=11 A B y
0
1 0 1 0 φ f2: z
f3 : DEMUXy1 F
z
1 0 1 1 0 w
0 1
w
0 1 1:4 y2
1 1 0 1
E
1 1 0 0 1 0 0 y3
1 1 0 1 φ 1 1 φ 1 1 0
1 1 1 0 ¿Cómo cambiaría el circuito si las
1
f2 = 1 f3 = w ⊕ z variables de selección no son x y y?
1 1 1 1 0
Mismo ejemplo pero tomando wz para selección y xy como variables residuales:
F ( w, x, y , z ) = ∑ (0,4,5,7,8,12,14) + φ (3,9,10,13)
Mapa de Karnaugh
w x y z F para las salidas
0 0 0 0 1 wz=00 wz=01 F: z 0 1
0 0 0 1 0 f0: f1 : w • •
y y 0 y x
0 1 0 1
0 0 1 0 0 x x
1 0
•
1
0 0 1 1 φ
0 1 0 0 0 φ
0 1 0 0 1
1 1 0 1 1 1
0 1 0 1 1 f0 = y f1 = x
0 1 1 0 0
0 1 1 1 1 wz=10 wz=11
f2: f3 : x y
1 0 0 0 1 y
0 1
y
0 1 w z
x x
1 0 0 1 φ
0 1 φ 0 φ 0 A B y
φ
0
1 0 1 0
1 1 1 1 φ 0 DEMUXy1 F
1 0 1 1 0 1:4 y2
1 1 0 0 f2 = 1 E
1 f3 = 0 y3
1 1 0 1 φ
1 1 1 0 1
1 1 1 1 0
Implementación de funciones lógicas con Ejemplo: Implementar F con un árbol de DEMUX 1:4
árboles de DEMUX F ( a , b, c, d ) = ∑ (0,3,5,6,9,10,13)
Utilizando una técnica similar a la expansión
de DEMUXs, se organiza un árbol de DEMUXs c d
distribuyéndolos en capas según los siguientes A B
principios: y0
Formato
architecture nomb_arquitectura of nomb_entidad is
declaraciones
begin
… -- conjunto de instrucciones
end nomb_arquitectura;
Ejemplo
ctrl I1
AND2 O
B I2
in3
Descripción de Comportamiento
• Se utilizan algoritmos que describen el comportamiento del circuito
mediante instrucciones contenidas en un bloque de ejecución secuencial
(proceso)
– Una descripción de este estilo involucra la declaración de al menos un proceso
– Existen instrucciones para selección, repetición o sincronización del flujo de ejecución