Mux y demux

23
TEMA 9: MULTIPLEXORES Y DEMULTIPLEXORES A NIVEL SSI Y MSI. APLICACIONES MULTIPLEXORES En las comunicaciones, y sistemas de computadora se ejecutan muchas operaciones mediante circuitos lógicos combinatorios. Cuando un circuito se ha diseñado para efectuar alguna tarea en una aplicación, a menudo también encuentra empleo en otras diferentes aplicaciones. En este tema se tratarán los multiplexores y demultiplexores tanto a nivel SSI como MSI y como podemos aprovechar sus funciones en el desarrollo de circuitos combinacionales. Un Multiplexor o “Selector de datos” es un circuito lógico que acepta varias entradas de datos y permite que sólo una de ellas pase a un tiempo a la salida. El enrutamiento de la entrada de datos hacia la salida está controlado por las entradas de selección (a las que se hace referencia a veces como las entradas de dirección). El multiplexor, también conocido como MUX, actúa como un conmutador multiposicional controlado digitalmente, donde el código digital aplicado a las entradas de selección controla cuáles entradas de datos serán conmutadas hacia la salida.

description

Especificaciónes de mux y demux

Transcript of Mux y demux

Page 1: Mux y demux

TEMA 9: MULTIPLEXORES Y DEMULTIPLEXORES A NIVEL SSI Y

MSI. APLICACIONESMULTIPLEXORES

En las comunicaciones, y sistemas de computadora se ejecutan muchas

operaciones mediante circuitos lógicos combinatorios. Cuando un

circuito se ha diseñado para efectuar alguna tarea en una aplicación, a

menudo también encuentra empleo en otras diferentes aplicaciones. En

este tema se tratarán los multiplexores y demultiplexores tanto a nivel

SSI como MSI y como podemos aprovechar sus funciones en el

desarrollo de circuitos combinacionales.

Un Multiplexor o “Selector de datos” es un circuito lógico que acepta

varias entradas de datos y permite que sólo una de ellas pase a un

tiempo a la salida. El enrutamiento de la entrada de datos hacia la salida

está controlado por las entradas de selección (a las que se hace

referencia a veces como las entradas de dirección).

El multiplexor, también conocido como MUX, actúa como un

conmutador multiposicional controlado digitalmente, donde el código

digital aplicado a las entradas de selección controla cuáles entradas de

datos serán conmutadas hacia la salida. Por ejemplo, la salida será igual

a la entrada de datos, llamémosle D0, para el código de entrada de

selección que sea cero (ABC=000 en el diagrama de abajo); la salida

será igual D1 para cuando el código de selección sea uno y así

sucesivamente. Establecido de otra manera, un multiplexor selecciona 1

de N fuentes de datos y transmite los datos seleccionados a un solo

canal de salida. Esto se llama multiplexión o multiplexaje.

Page 2: Mux y demux

Los multiplexores son representados en diagramas de bloques como

trapezoides isósceles. A continuación muestro el esquemático de un

multiplexor de dos entradas y una salida con su respectivo bit de

selección:

ó

Un ejemplo de multiplexores (aunque no digitales como los que vemos

aquí) se ve en las líneas telefónicas. Éstas usan exactamente este

principio. Transmiten varias llamadas telefónicas (señales de audio) a

través de un único par cableado usando la técnica de “multiplexado” y

cada señal de audio va únicamente al receptor al que está destinado.

Una aplicación común para los MUX es encontrado en las computadoras,

en las cuales la memoria dinámica usa las mismas líneas de dirección

para el direccionamiento tanto de las filas como de las columnas. Un

grupo de multiplexores es usado para primero seleccionar las

direcciones de la columna y luego cambiar para seleccionar la de la fila.

Este esquema permite que grandes cantidades de memoria sean

incorporadas dentro de una computadora mientras se limita a la vez la

cantidad de conexiones de cobre requeridas para conectar la memoria al

Page 3: Mux y demux

resto del circuito. Por eso es que también se les conoce a veces como

“selectores de datos”.

Ya se vio el símbolo esquemático del multiplexor de 2 entradas y una

salida pero los multiplexores no están limitados a 2 entradas. Si las

líneas de selección son dos podemos alternar entre 4 datos de entrada,

si son 3 entre 8 y así sucesivamente. A continuación se muestran los

símbolos esquemáticos de los multiplexores de “4 a 1” (cuatro entradas

y una salida), “8 a 1” (ocho entradas y una salida) y “16 a 1” (dieciséis

entradas y una salida) con sus respectivas líneas de selección,

respectivamente.

En todos los casos la salida es Z, las entradas de selección S y el resto

es la entrada que será multiplexada.

Page 4: Mux y demux

A veces pueden verse en forma rectangular asemejando el circuito

integrado que representan pero en este caso siempre deben ir bien

identificados para poder saber que es. Por ejemplo:

representa (como se ve indicado) un multiplexor a nivel MSI de 8

entradas (que implica las 3 líneas de selección) y una salida (F). Las

entradas de selección, o sea, quienes indicarán cual de las entradas será

reflejada en la salida, vienen dadas por el código binario representado

por ABC. ABC son las “entradas de direccionamiento” o de dirección o de

selección, como usted lo quiera llamar, ya que estas serán quienes

indican el dato a acceder. Este mismo concepto es el usado en las

memorias.

Veamos ahora la implementación de multiplexores a nivel SSI. Para el

caso de un multiplexor de 2 entradas y una salida (quien por supuesto

requiere sólo una línea de selección) el circuito sería:

Page 5: Mux y demux

El uso del inversor dos veces NO es absolutamente necesario. Se

observa que cuando la entrada de selección “A” tiene un valor

cualquiera, una de las compuertas AND tendrá un UNO en una de sus

entradas y la otra un CERO. La que tiene el CERO dejará pasar sólo el

CERO pero el que tenga el valor de UNO dejará pasar la otra entrada de

la AND intacta y será este valor quien se refleje a la salida. Pueden

verificar este circuito a través de su tabla de la verdad. Veámosla a

continuación:

A X0 X1 X

0

1 1 1

1 0 1

0 1 0

0 0 0

1

1 1 1

1 0 0

0 1 1

0 0 0

Se ve aquí que cuando que cuando A=0, X=X0 y cuando A=1, X=X1. Esto representa la función booleana: X = AX1+A'X0 que es exactamente la implementación mostrada.

Veamos como se ven las implementaciones de 4 a 1 y de 16 a 1:

Page 6: Mux y demux
Page 7: Mux y demux

Analícenlos y si lo desean hagan sus tablas de la verdad.

Se ve que en el diseño de multiplexores de n entradas se requerirá

siempre líneas de selección (que daría un número entero si n es

potencia de 2). Claro que, aunque es lo normal, el multiplexor no

necesariamente debe tener 2m líneas de entrada con m entero pero en

todo caso se requerirán tantas líneas de selección que hagan suficientes

combinaciones para direccionar todas las entradas. Por ejemplo, para

multiplexar 3 ó 4 entradas se requieren 2 líneas de selección. Si se

requiere multiplexar 5, 6, 7 ú 8, entonces se necesitan 3 líneas de

selección y así sucesivamente.

Page 8: Mux y demux

El Multiplexor es típicamente usado para combinar dos o más señales

digitales en una sola línea pero no es la única forma. También puede

conseguirse de otras características pero aquí mencionaré sólo un par

de ejemplos de multiplexores:

De dos entradas de 4 bits y una salida de 4 bits. Éste selecciona

uno de los nibbles de entrada (internamente son 4 multiplexores

de 2 a 1 en un solo encapsulado) y lo refleja en la salida.

De dos entradas de 4 bits a una salida de dos bits que representan

un bit direccionado en cada nibble reflejado a la salida

(internamente son 2 multiplexores de 4 a 1).

Algunas designaciones para multiplexores de la familia TTL son: 74153

que son dos multiplexores 4 a 2, 74157 que son cuatro MUX 2 a 1 y el

74151 que es un MUX 8 a 1.

Los circuitos multiplexores pueden incluir también una línea de

habilitación indicado con una E por Enable, pero de eso hablaremos en

el próximo tema.

Como último comentario de lo multiplexores quiero agregar que estos

pueden ser organizados en cascada (tal como los sumadores que vimos

en el tema anterior) para implementar multiplexores más grandes. Por

ejemplo podemos usar multiplexores de 2 a 1 para implementar un

multiplexor de 4 a 1 (o de 4 a 2 que si lo piensan se darán cuenta de que

es elemental) o incluso para implementar multiplexores de más

entradas. Veamos específicamente el ejemplo de implementación de un

multiplexor de 16 a 1 usando sólo multiplexores de 4 a 1. El dato de

entrada es X formado por los 16 bits x0, x1,...,x14 y x15. Las líneas de

selección vienen dadas por S. OJO con este ejemplo. Analícelo y

entiéndalo.

Page 9: Mux y demux

En los multiplexores vemos también la entrada de enable E (que además

son de lógica negativa que quiere decir que los IC's se activaran con un

cero). Ese es el bit de habilitación que les dije veremos en el próximo

tema.

DEMULTIPLEXORES

Es lo inverso a un multiplexor. Los demultiplexores o DEMUX tienen una

entrada que es transferida a una de las m posibles líneas de salida. La

línea m vendrá direccionada por los n bits de selección donde lo normal

es que 2n=m. Se podría decir que, como profundizaremos en el próximo

tema, cada salida del demultiplexor corresponde con el término

mínimo del número binario que se encuentra en las líneas de

selección.

Un uso popular del DEMUX es como decodificador y por eso suele usarse

el término Demultiplexor/Decodificador indistintamente. Ya hablaremos

de él en próximo tema, pero el propósito principal de un decodificador

no es tanto transferir una entrada a una de las salidas sino llevar un

valor binario (el de la entrada de selección) a una representación de una

única línea a la salida. Esta función es de gran utilidad en la

Page 10: Mux y demux

decodificación de la dirección en los microporcesadores por ejemplo

cuando involucra la selección de uno de multiples dispositivos (como por

ejemplo la memoria). De hecho, la mayoría de los decodificadores son

de lógica invertida (o negativa) debido a que la mayoría de los

dispositivos periféricos de los microprocesadores son activados por una

señal baja (como el pin E' que vimos en los multiplexores en cascada

hace un par de párrafos).

Los DEMUX también suelen incluir un bit de entrada de habilitación.

Algunos DEMUX de la familia TTL son: el 74139 que son dos DEMUX de 1

a 4 con salidas invertidas (lógica negada), el 74156 que son dos DEMUX

de 1 a 4 con salida de colector abierto (Open Collector), el 74138 que es

un DEMUX de 1 a 8 con salida invertida, el 74156 que es un DEMUX de 1

a 16 y el 74159 que es de 1 a 16 con salida a colector abierto.

Veamos a continuación la implementación de demultiplexores a nivel

SSI. Para el caso de un demultiplexor de 1 a 2 sería:

Se observa que el circuito tiene sólo una entrada (representada por IN),

dos salidas (OUT1 y OUT0) y el bit de dirección (A). El proceso es justo el

contrario del multiplexor. Para los casos de DEMUX de 1 a 4 y de 1 a 8

tenemos las siguientes implementaciones.

Page 11: Mux y demux
Page 12: Mux y demux

Si lo desean hagan sus tablas de la verdad para que les facilite entender

el comportamiento de estos circuitos .

APLICACIONES

Resulta que algunas veces un circuito diseñado para cierto fin suele ser

de gran utilidad en la resolución de problemas que no fueron

exactamente para el que fueron diseñados. El multiplexor es una de

esos ejemplos. Una poderosísima utilidad de los multiplexores está en la

implementación de funciones lógicas.

Vamos a estudiar algunas posibilidades de implementación de funciones

lógicas mediante multiplexores. Veamos el siguiente ejemplo:

F(x2, x1, x0 ) = ∑(2,5,6)

Page 13: Mux y demux

Sabemos que esta función es uno para los términos mínimos 2, 5 y 6.

Esta función tiene 3 variables que pueden formar 8 combinaciones. La

forma más sencilla de implementación, que es la que veremos a

continuación, es a través de un multiplexor de 8 a 1. Veamos la tabla de

la verdad de la función y la implementación con el multiplexor:

Dado que se trata de una función de tres variables, el método acabado

de sugerir implica en principio utilizar un multiplexor de 8 canales (es

decir,con 3 entradas de control). Hay que conectar las variables x2, x1 y

x0 a las entradas de selección e introducir en cada uno de los canales el

valor ("0" o "1") que toma la función para cada combinación de dichas

variables. Observe la figura y note que el paso de una a otra es

inmediato ya que el multiplexor tiene cableada las entradas 2, 5 y 6 a

uno y el resto a cero. De esta forma se garantiza que para las

combinaciones de las variables X (quien se colocó en las líneas de

selección) para los que se requiere que la función sea uno harán f=1.

Veamos otro ejemplo. F(A,B,C)=∑(3,5,6,7). Con un multiplexor de 8

entradas se vería:

Page 14: Mux y demux

Es fácil de observar el porque de ésto, así que no lo analizaremos más.

Llegados a este punto, una pregunta que podemos hacernos es si es

posible implementar funciones de n variables mediante multiplexores

con menos de n entradas de control. La respuesta es afirmativa, aunque

para ello será necesario en general añadir algún módulo o conjunto de

puertas. Siempre podremos implementar funciones lógicas de 2 n

combinaciones con multiplexores de 2 n-1 entradas. O lo que es lo

mismo, siempre podremos implementar funciones lógicas de n variables

con un multiplexor de n-1 líneas de selección. Veamos el siguiente

ejemplo:

F(A,B,C) = ∑(1,3,5,6)

Esta función tiene 8 (23) posibles combinaciones de variables (3

variables) pero debemos implementarlo con un multiplexor de sólo dos

(3-1) entradas de selección, o sea, un multiplexor de 4 (22) a 1.

Llamemos a la entrada del multiplexor I (I3 I2 I1 I0). La tabla de la verdad

de la función F es:

A B C F

0 0 0 0

0 0 1 1

Page 15: Mux y demux

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 0

Lo primero que debemos hacer es decidir como vamos a trabajar con las

variables. En estos casos sólo n-1 de las variables de la función se

usarán en las líneas de selección y la otra restante se usará a la entrada

del multiplexor. Es este caso particular sólo dos de las variables pueden

ser usadas en las líneas de selección. He decidido que éstas serán B y C.

Por lo tanto A será usada a la entrada del multiplexor. Ok, lo primero que

haremos será formar una tabla. Ésta deberá tener todas las posibles

entradas del multiplexor como títulos de las columnas y las dos posibles

combinaciones de la variable que decidimos usar en la entrada (en

nuestro caso A en sus formas A' [0] y A [1]) como títulos de las filas.

I0 I1 I2 I3

A'

A

A cada celda de la tabla le corresponderá un término mínimo. Vemos

que cuando A=0 (A'), los términos de la función van del 0 al 3 y cuando

A=1 (A) van de 4 a 7. O sea que la tabla deberá ser llenada con:

I0 I1 I2 I3

A' m0 m1 m2 m3

A m4 m5 m6 m7

Aquí usted podría sólo encerrar en círculos los términos mínimos que

sean uno en la función (en nuestro caso m1, m3, m5 y m7 ) para procesar

Page 16: Mux y demux

la tabla. Yo sencillamente voy a encerrarla con paréntesis (únicamente

por comodidad y no tener que estar haciendo más gráficos). También

suele colocarse sólo el número del término en vez del mn. Entonces,

colocando los “círculos” donde corresponde tenemos:

I0 I1 I2 I3

A' 0 (1) 2 (3)

A 4 (5) (6) 7

Aquí empezamos el análisis. Cuando en una columna de la tabla no hay

ningún termino en círculo como es el caso de la primera columna,

concluimos que en esa entrada del multiplexor debe ir 0 (cero). Cuando

en una columna AMBOS términos aparecen en círculo decimos que en

esa entrada del multiplexor debemos colocar un uno. Cuando en una

columna sólo UNO de los términos aparece en círculo, decimos que en la

entrada correspondiente del multiplexor se colocará la variable escogida

(en nuestro caso la A) en la forma que aparezca con círculo que aquí

sería A para la tercera columna y A' para la cuarta columna.

Regularmente nuestra tabla, luego del análisis, quedaría:

I0 I1 I2 I3

A' 0 (1) 2 (3)

A 0 (5) (6) 7

0 1 A A'

Por lo tanto, nuestra implementación de la función F de tres variables

con un multiplexor de 4 a 1 (con sólo dos líneas de selección) nos

quedaría:

Page 17: Mux y demux

La entrada I1 puede ir directamente conectada a UNO (1 ó Vcc) y

ahorrarnos ese inversor.

Yo decidí poner B y C en las entradas de selección pero podría ir

cualquier combinación de dos variables. Lo único que hay que tener en

cuenta es que la tabla no lleva los términos mínimos organizados

de la misma forma. Supongamos que queremos poner A y B en las

líneas de direccionamiento, entonces nuestra tabla sería:

I0 I1 I2 I3

C' 0 2 4 (6)

C (1) (3) (5) 7

C C C C'

Ya que C es el bit menos significativo y para las casos donde A y B son

cero con C' tenemos el cero y con C el uno, Si A=0 y B=1 entonces en C'

Page 18: Mux y demux

tenemos 2 y en C tres, y así sucesivamente. Aquí ya sólo nos quedaría

implementar el circuito que sería colocando A en S1, B en S0, C en I0 e I1

e I2 y por último C' en I3. Haga el esquemático.

Por último con respecto a este mismo ejemplo, demuestre que si

quisiéramos colocar B en la entrada, la tabla quedaría:

I0 I1 I2 I3

B' 0 (1) 4 (5)

B 2 (3) (6) 7

0 1 B B'

y dibuje el esquemático.

Veamos como último ejemplo de ésto la función

F(A,B,C,D)=∑(0,1,3,4,8,9,15). Suponiendo que queremos cablear A en la

entrada, nuestra tabla aquí sería:

I0 I1 I2 I3 I4 I5 I6 I7

A' (0) (1) 2 (3) (4) 5 6 7

A (8) (9) 10 11 12 13 14 (15)

1 1 0 A' A' 0 0 A

Y el circuito sería:

Page 19: Mux y demux

Aquí también podemos eliminar el uso de uno de los inversores y

cablear directo a 0 ó 1 dependiendo del caso. Haga este ejercicio para

los casos con B, C ó D a la entrada del multiplexor.

Diseño combinacional con demultiplexores.

Este tema será visto mejor más adelante con el uso de decodificadores

pero igual será comentado brevemente aquí. Al presentar los

demultiplexores se comentaba el hecho de que cada una de las salidas

coincide algebraicamente con un término mínimo diferente de las

variables de entrada. Por tanto es inmediato sintetizar directamente

cualquier función de n variables mediante un demultiplexor con n

líneas de selección y una puerta OR que agrupe las salidas

correspondientes a los términos mínimos que aparecen en la

Page 20: Mux y demux

expresión canónica como suma de productos de la función. Veamos por

ejemplo la implementación de un generador de un bit de paridad impar

para un código de 3 bits. Su tabla de verdad sería:

A B C f

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 0

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 1

No hacemos mapa de Karnaugh ya que simplificar la función no es

requerido en este tipo de ejercicios debido a que la implementación será

hecha a nivel MSI y lo único que nos interesa realmente es que términos

mínimos conforman la función.

De la tabla de la verdad anterior podemos concluir que la

implementación de esa función lógica a través de un demultiplexor

sería:

La entrada E' es el bit de habilitación del IC.

Page 21: Mux y demux

EJERCICIOS

1. Implemente un multiplexor de 8 bits de entrada (dos nibbles

indicando dos datos diferentes) y dos de salida (uno de cada

nibble) mediante multiplexores de 2 a 1.

2. Implemente un multiplexor con dos números binarios de 3 bits (X2,

X1, X0 y Y2, Y1, Y0) como entrada que transmita una u otra a la

salida Z (Z2, Z1 y Z0) con la ayuda de una única línea de selección

usando multiplexores de 2 a 1.

3. Implemente la siguiente función con multiplexores 8 a 1 y 4 a 1:

F(A,B,C)=∑(0,1,4,7). En el caso de 4 a 1, hágalo de las tres formas

posibles (Con A, B ó C a la entrada del multiplexor).

4. Implemente las siguientes funciones con multiplexores de forma

óptima (para funciones N variables use multiplexores de N-1 líneas

de selección):

F(A, B, C, D) = ∑(0,4,6,10,11,13)

F(w, x, y, z) = ∑(3,4,5,7,11,12,14,15)

F(a, b, c, d) = ∑(3,5,7,11,15)

F(A, B, C, D, E) = ∑(0,1,2,8,9,11,15-19,24,25,29-31)

F(A, B, C, D, E, F) = ∑(0,2,4,5,7,8,16,18,24,32,36,40,48,56)

5. Un número primo es aquel que sólo es divisible entre si mismo y la

unidad. Diseñe un circuito lógico que detecte todos los números

primos entre 0 y 31. La salida F(A, B, C, D, E), donde A es la

variable de mayor peso binario, será igual a 1, si y sólo si, los

cinco bits de la entrada representan un número primo. Realice el

circuito óptimo utilizando un multiplexor.

6. Diseñe un circuito que convierta de BCD a exceso a 3 con

multiplexores.

7. Diseñe un circuito que convierta de BCD a 84-2-1 con

multiplexores.

Page 22: Mux y demux

8. El cerebro humano está hecho de células especializadas llamadas

neuronas. Cada neurona tiene sinapsis (que son los puntos de

conexión entre ellas) y éstas pueden ser de excitación y de

inhibición (VER NOTA ANEXA *). Una neurona produce una salida

f=1 si el número de sinapsis de excitación con pulsos 1 excede el

número de sinapsis de inhibición con pulsos 1 por al menos,

llamémosle, el valor de umbral (o sea, al menos 1) de la neurona.

Dicho lo anterior, determine la función booleana f(a, b, c, d, e) de

emisión de pulsos a través del canal de salida f (axón) en el

modelo de la figura de abajo y realice el circuito óptimo con un

multiplexor.

NOTA (*):

Page 23: Mux y demux

La actividad de nuestro cerebro resulta de un balance entre la

excitación y la inhibición. La excitación involucra principalmente al

Glutamato, que es el neurotransmisor excitatorio por excelencia

mientras la inhibición es causada en su mayoría por el

neurotransmisor GABA. En la Sinapsis las moléculas transmisoras

actúan sobre receptores situados en la membrana postsináptica,

con lo cual se altera la permeabilidad para los iones de dicha

membrana. En el caso del glutamato despolariza (excitación) la

membrana postsináptica por un incremento en la permeabilidad a

cationes como el Na+ y Ca2+. Por el contrario, GABA hiperpolariza

la membrana postsináptica (inhibición) producto del incremento en

la permeabilidad al Cl-. Al nivel neuronal, la excitación permite la

propagación de la señal bioeléctrica mientras que la inhibición

evita dicha propagación.

En la próxima clase se verá el TEMA 10: Decodificadores y codificadores

nivel SSI y MSI. Aplicaciones.