Multiplexores (MUX) desmitificados: el controlador del tráfico de datos
Un multiplexor enruta una de $2^n$ entradas a una única salida mediante n líneas de selección. Construye MUX de 2 a 1 y de 4 a 1, y utilízalos como generadores universales de funciones.
En resumen: Un multiplexor selecciona una de entradas de datos mediante un código de selección de bits. Para un MUX de 4 a 1, . Las constantes en las entradas de datos convierten un MUX en una implementación de tabla de verdad, mientras que las LUT de FPGA reales combinan configuración almacenada con circuitería de selección específica de la arquitectura.
Los multiplexores seleccionan fuentes de operandos en procesadores, respuestas en interconexiones y señales configuradas en lógica programable. Los conmutadores analógicos y de vídeo resuelven un problema de enrutamiento relacionado, pero presentan un comportamiento eléctrico que va más allá de un MUX digital de un bit. Esta guía cubre la base booleana, la construcción a nivel de puertas, la conexión en cascada y la propiedad de generación de funciones.
¿Qué es un multiplexor?
Un multiplexor es un circuito combinacional que selecciona una de varias entradas de datos y la reenvía a una única línea de salida. La selección la controla un conjunto independiente de líneas de selección que codifican una dirección binaria correspondiente a la entrada deseada.
Para un MUX completo de potencia de dos:
líneas de selección pueden elegir entre entradas de datos.
Una línea de selección direcciona dos entradas, dos direccionan cuatro y tres direccionan ocho. Las interfaces que no son potencias de dos pueden dejar códigos sin usar o definir una ruta predeterminada, y muchos dispositivos prácticos también incluyen una señal de habilitación o estrobo.

Un multiplexor de 4 a 1: 2 líneas de selección eligen entre 4 entradas. La entrada seleccionada aparece en la salida.
El MUX de 2 a 1: el selector de datos más sencillo
El MUX de 2 a 1 es el bloque de construcción fundamental. Tiene 2 entradas de datos (, ), 1 línea de selección () y 1 salida ().
| Selección () | Salida () |
|---|---|
| 0 | |
| 1 |
La expresión booleana es sencilla. Necesitamos que pase cuando y que pase cuando :
Una implementación canónica con puertas básicas utiliza:
- Una puerta NOT para producir
- Dos puertas AND: una calcula y la otra calcula
- Una puerta OR para combinar ambas salidas AND en el resultado final

Un MUX de 2 a 1 construido con puertas AND, OR y NOT. Cuando S=0, pasa ; cuando S=1, pasa .
El MUX de 4 a 1: expresión booleana y diseño a nivel de puertas
Un MUX de 4 a 1 tiene 4 entradas de datos (de a ) y 2 líneas de selección (, ). Las líneas de selección forman una dirección binaria de 2 bits que elige qué entrada llega a la salida.
| Salida () | ||
|---|---|---|
| 0 | 0 | |
| 0 | 1 | |
| 1 | 0 | |
| 1 | 1 |
Cada fila de esta tabla corresponde a un término producto en el que las líneas de selección «habilitan» exactamente una entrada de datos. La expresión booleana completa para el MUX de 4 a 1 es:
Esta expresión nos indica exactamente qué hardware necesitamos:
- 2 puertas NOT para producir y
- 4 puertas AND de tres entradas, cada una habilita una entrada de datos con la combinación de selección correspondiente
- 1 puerta OR de cuatro entradas para combinar las cuatro salidas AND
El diagrama booleano directo contiene dos inversiones, cuatro términos producto y una reducción OR. «Siete puertas» supone que las puertas arbitrarias de tres y cuatro entradas cuentan como una cada una; una biblioteca física o una FPGA puede mapear la función de otra manera.

MUX de 4 a 1 con tabla de funciones y patrón de escalado. líneas de selección eligen entre entradas.
Construir un MUX de 4 a 1 en digisim.io
Sigue estos pasos para construir un MUX de 4 a 1 a partir de puertas discretas:
- Coloca las líneas de selección. Arrastra dos componentes INPUT_SWITCH al lienzo y etiquétalos y .
- Genera los complementos. Coloca dos puertas NOT. Conecta a una y a la otra para producir y .
- Coloca las entradas de datos. Añade cuatro componentes INPUT_SWITCH y etiquétalos , , y .
- Crea el arreglo de AND. Coloca cuatro puertas AND (de 3 entradas cada una):
- AND-0: las entradas son , y
- AND-1: las entradas son , y
- AND-2: las entradas son , y
- AND-3: las entradas son , y
- Combina los resultados. Coloca una puerta OR y conecta a ella las cuatro salidas AND. La salida OR es tu salida final .
- Añade visualización. Conecta a una OUTPUT_LIGHT.
Alterna los interruptores de selección para enrutar distintas entradas de datos a la salida. En un estado de selección válido y estable, solo está habilitado el término producto seleccionado; su valor de datos determina Y.
Conectar MUX en cascada: construir uno de 8 a 1 a partir de unidades de 4 a 1
Una de las propiedades más potentes de los multiplexores es que pueden conectarse en cascada para manejar más entradas. No es necesario diseñar un MUX de 8 a 1 desde cero; puedes construirlo a partir de unidades más pequeñas.
Un MUX de 8 a 1 requiere 3 líneas de selección (, , ) y 8 entradas de datos (de a ). Así se construye a partir de dos MUX de 4 a 1 y un MUX de 2 a 1:
- Primera etapa (dos MUX de 4 a 1):
- MUX-A maneja -, con y como sus líneas de selección.
- MUX-B maneja -, con y como sus líneas de selección.
- Segunda etapa (un MUX de 2 a 1):
- La salida de MUX-A se conecta a del MUX final.
- La salida de MUX-B se conecta a del MUX final.
- sirve como línea de selección de este MUX final.
Cuando , el MUX final transmite el resultado de MUX-A (entradas -). Cuando , transmite el resultado de MUX-B (entradas -). Las líneas de selección inferiores y determinan cuál de las cuatro entradas del grupo seleccionado llega a la salida.
Este enfoque jerárquico escala a cualquier tamaño. Un MUX de 16 a 1 puede construirse con dos MUX de 8 a 1 y uno de 2 a 1, o con cuatro MUX de 4 a 1 que alimentan un MUX de 4 a 1 de segundo nivel.

Un MUX de 8 a 1 con 3 líneas de selección. Puede construirse con dos MUX de 4 a 1 y uno de 2 a 1.
El MUX como generador universal de funciones
Un MUX de a 1 puede implementar cualquier función booleana de n variables conectando esas variables a las líneas de selección y cableando las entradas de datos a constantes de la tabla de verdad. El MUX es en sí mismo lógica, por lo que esta es una implementación estructural, no lógica «gratis».
Por ejemplo, considera una función de 3 variables . Con un MUX de 8 a 1:
- Conecta , y a las líneas de selección , y .
- Para cada fila de la tabla de verdad, la combinación de selección direcciona una entrada de datos. Cablea esa entrada de datos a 1 si para esa fila, o a 0 si .
La salida del MUX reproduce entonces la tabla de verdad. Las tablas de consulta de FPGA usan bits de configuración almacenados y circuitería de selección para proporcionar la misma capacidad visible externamente: cualquier función que quepa en el número de entradas de la LUT. La estructura interna y los recursos dedicados de conexión en cascada dependen de la familia de dispositivos.
También puedes usar un MUX más pequeño aplicando una variable de entrada a las líneas de datos en lugar de a las líneas de selección. Por ejemplo, una función de 3 variables puede implementarse con un MUX de 4 a 1 (usando solo 2 líneas de selección) conectando y a las líneas de selección y cableando cada entrada de datos a 0, 1, o según sea necesario.
Ejemplo desarrollado: implementar una función mayoritaria
La función mayoritaria de 3 entradas da 1 cuando dos o más entradas valen 1. Su tabla de verdad es:
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 |
Con un MUX de 8 a 1: Conecta , , a , , . Cablea las entradas de datos de a para que coincidan con la columna F: , , , , , , , . No se necesitan puertas externas de función de datos más allá del MUX y las fuentes de constantes.
Con un MUX de 4 a 1 (forma reducida): Conecta y a y . Agrupa las filas de la tabla de verdad por :
- : tanto para como para . Cablea .
- : cuando , cuando . Cablea .
- : cuando , cuando . Cablea .
- : tanto para como para . Cablea .
Esto implementa la misma función con un MUX más pequeño, con conectado directamente a dos entradas de datos.
Retardo de propagación y consideraciones temporales
Como todos los circuitos combinacionales físicos, un MUX tiene retardo de propagación. En el diagrama directo de suma de productos, una transición de selección puede atravesar un inversor, un término producto y la reducción OR:
Eso es solo una estimación de topología. El retardo real incluye la elección de celdas, la pendiente de entrada, la carga, el enrutamiento, el voltaje, la temperatura y si la ruta seleccionada comienza en una entrada de datos o de selección. La selección en cascada añade niveles lógicos, pero una expresión físicamente ancha de un solo nivel también puede ser lenta por el fan-in y el cableado. Utiliza el análisis de temporización del dispositivo objetivo en vez de suponer que una topología es dos veces más rápida que otra.
Las transiciones de selección también pueden crear un pulso temporal en la salida si las entradas de datos antigua y nueva difieren y las rutas internas se estabilizan en tiempos distintos. Registra el resultado cuando cruce una frontera síncrona, mantén estable la selección durante el intervalo necesario y evita usar una salida de MUX no cualificada como reloj o estrobo de escritura asíncrona. La simulación funcional valida la lógica de selección, pero puede no modelar los peligros físicos ni el retardo.
La expresión booleana general para un MUX de a 1
Podemos generalizar la expresión booleana del MUX a cualquier tamaño. Para un MUX de a 1 con líneas de selección y entradas de datos :
donde es el -ésimo mintérmino de las variables de selección. Cada mintérmino es un producto de todas las variables de selección, cada una en su forma verdadera o complementada según la representación binaria de . Por ejemplo, en un MUX de 8 a 1, el mintérmino para (binario 101) es .
Esta formulación deja claro que un MUX es literalmente una implementación en hardware de la forma canónica de suma de mintérminos. Cada función booleana tiene una expresión única de suma de mintérminos, y un MUX puede implementarla directamente cableando las entradas de datos a los valores constantes apropiados.
La entrada de habilitación
Muchos CI de MUX comerciales incluyen un pin de habilitación o estrobo, a menudo activo en bajo. El comportamiento al deshabilitar depende de la pieza: una salida puede forzarse a bajo, forzarse a alto o —en una clase de dispositivo distinta— pasar a alta impedancia. Para una habilitación abstracta E activa en alto que fuerza Y a bajo cuando está deshabilitada:
Una habilitación puede simplificar la conexión en cascada y la cualificación de control, pero no es necesaria para toda jerarquía de MUX. Una salida de MUX push-pull no debe confundirse con un controlador de bus triestado.
Al construir MUX en cascada en digisim.io, puedes simular la función de habilitación añadiendo una puerta AND entre la salida OR final y un interruptor de habilitación.
Analogía del mundo real: selector de canales de TV
Imagina que tienes 4 fuentes de vídeo (consola de videojuegos, receptor de cable, Blu-ray, dispositivo de streaming) y un televisor. Un MUX es como el selector de entrada: el botón del mando a distancia (las líneas de selección) determina qué fuente aparece en la pantalla (la salida). Los datos de vídeo fluyen continuamente desde las cuatro fuentes, pero el MUX solo deja pasar a la pantalla la seleccionada.

Selector de canales de TV como MUX: las líneas de selección eligen qué fuente de entrada aparece en el televisor.
El demultiplexor (DEMUX)
Lo opuesto a un MUX es un demultiplexor (DEMUX). Mientras que un MUX selecciona una de muchas entradas y la enruta a una única salida, un DEMUX toma una única entrada y la enruta a una de muchas salidas según las líneas de selección.
Las expresiones booleanas para un DEMUX de 1 a 4 son:
Observa que un DEMUX es estructuralmente idéntico a un decodificador con una entrada de habilitación. Cuando la entrada de datos actúa como habilitación, la «dirección» de las líneas de selección determina qué salida recibe la señal.

Un DEMUX de 1 a 4: una entrada se enruta a una de cuatro salidas según 2 líneas de selección.
Aplicaciones de los multiplexores
Los multiplexores aparecen en todos los niveles del diseño de sistemas digitales. Estas son las aplicaciones más importantes, con suficiente detalle para entender por qué los MUX son indispensables.
Banco de registros de CPU
En un banco pequeño de registros construido con biestables discretos, cada puerto de lectura asíncrona puede modelarse como un MUX de ancho de palabra seleccionado por un índice de registro. Un banco didáctico de ocho registros de ocho bits usaría ocho selecciones de bits de 8 a 1 en paralelo por puerto de lectura. Los archivos de registros físicos de ASIC y FPGA pueden usar en su lugar macroceldas de memoria, líneas de palabra decodificadas, líneas de bits, recursos de RAM dedicados o lógica distribuida. El modelo MUX describe la selección visible externamente, no una topología obligatoria de transistores.
Selección de entradas de la ALU
Los operandos de la ALU no siempre provienen de registros. A veces un operando es una constante inmediata incorporada en la instrucción o un valor leído de memoria. Un MUX en cada entrada de la ALU permite a la unidad de control seleccionar la fuente del operando: salida del banco de registros, valor inmediato o registro de datos de memoria. Este único MUX por entrada de la ALU brinda a la CPU la flexibilidad de ejecutar instrucciones registro-registro, registro-inmediato y memoria-registro con el mismo hardware de ALU.
Decodificación de direcciones de memoria y arbitraje de bus
Cuando varios destinos pueden devolver datos, un MUX puede seleccionar la respuesta asociada a una solicitud decodificada. Cuando varios maestros solicitan un recurso, un árbitro elige la propiedad y los MUX de enrutamiento reenvían la dirección, los datos y los controles del maestro seleccionado. El MUX no implementa la equidad ni el handshake de solicitud/concesión; solo enruta según el resultado del arbitraje.
Tablas de consulta de FPGA
Una primitiva lógica de FPGA común es una tabla de consulta (LUT). El estado de configuración almacena valores de tabla de verdad y las entradas lógicas seleccionan el valor aplicable. Por tanto, una LUT conceptual de k entradas se comporta como una tabla de verdad de entradas seleccionada por k entradas. Las familias de FPGA reales usan circuitos LUT específicos de la arquitectura, modos de fracturación, multiplexores de cascada dedicados y enrutamiento; por ello, «un MUX de 64 a 1» es un modelo funcional útil, no un esquema físico universal.
Pruébalo tú mismo
Construye estos circuitos en el editor de digisim.io para afianzar tu comprensión:
- Construye un MUX de 2 a 1 con 2 puertas AND, 1 puerta OR y 1 puerta NOT. Verifica las cuatro combinaciones de entrada.
- Amplía a un MUX de 4 a 1 mediante la expresión booleana anterior. Examina la salida mientras recorres combinaciones de selección estables.
- Conecta en cascada dos MUX de 4 a 1 y un MUX de 2 a 1 para construir uno de 8 a 1. Verifica que las 8 entradas se puedan direccionar individualmente.
- Implementa una función booleana con un MUX. Elige cualquier función de 3 variables de una tabla de verdad y prográmala en un MUX de 8 a 1 cableando de forma fija las entradas de datos.
- Construye un DEMUX para invertir el enrutamiento: envía una señal a una de cuatro salidas.
Continúa con decodificadores y codificadores (el pariente estructural del DEMUX), observa cómo los MUX alimentan la ALU en el ciclo de búsqueda-decodificación-ejecución o abre la referencia del componente de puerta AND —el bloque de construcción principal de todo MUX.



