01 · Punto de partida
Manual o automático, por cable
Dos señales compiten por una entrada: el selector elige (S=0 manual, S=1 auto). Con 2 selectores elegís entre 4; con un MUX 8:1 y constantes, cualquier función de 3 vars sin diseñar puertas.
- ¿Qué ecuación tiene el 2:1?
- ¿Qué chips son 4:1 y 8:1?
- ¿Cómo se implementa XOR con un MUX?
- ¿Para qué sirve el enable?
02 · MUX 2:1
El if con patas
Dos datos (D0, D1), un selector S: Y = D_S. Símbolo trapecio (angosto en la salida). Ejemplo: S manual/auto elige consigna de un termostato.
03 · 4:1 y 8:1
Más datos, más selectores
| Chip | Qué es | Selectores |
|---|---|---|
| 74HC157 | Cuádruple 2:1 | 1 común (4 bits a la vez) |
| 74HC153 | Doble 4:1 | 2 comunes |
| 74HC151 | 8:1 | 3 + enable |
S1 es el MSB del índice (S1S0 = 10 → D2): el orden importa. Enable (típ. activo-bajo) apaga la salida para expansiones.
04 · MUX como función
Lookup table discreta
- XOR con 2:1
- Selector = A, D0 = B, D1 = ~B: Y = ~A·B + A·~B ✓. Cualquier 2-var con un MUX y un NOT.
- 3 vars con 8:1
- Selectores = vars, datos = minterms (1 donde Y=1): cero diseño, solo cableado. Así nacieron las LUT de las FPGA.
- Expandir
- Dos 8:1 + enable = 16:1. Los MUX crecen apilándose por el enable.
05 · MUX en código
Elegir por índice
MUX genérico más síntesis automática tabla→MUX.
Python en tu navegador. Pasale tu tabla y que salga el cableado.
def mux(datos, sel):
y = datos[sel]
print(f"sel={sel:02b} -> D{sel}={y}")
return y
mux([0, 1, 1, 0], 0b10)
mux([0, 1, 1, 0], 0b01)
Con datos 0-1-1-0 (XOR): sel 10 → 1, sel 01 → 1. ¿Qué función es 1-0-0-0?
Tabla a MUX 8:1
def a_mux8(mins):
datos = [1 if i in mins else 0 for i in range(8)]
print(f"74HC151: D0..D7 = {datos} (S = A,B,C)")
return datos
a_mux8([3, 5, 6, 7])
a_mux8([1, 2, 4, 7])
06 · Analogía programador
Switch con cables
- 1MUX = switch/case.
Selector = índice del case:
y = datos[sel]ejecutado por silicio. - 2MUX 8:1 = array de 8.
Tabla cableada: la función vive en los unos y ceros, no en puertas.
- 3Enable = guarda.
Si no está habilitado no habla: como un
if (en)alrededor de todo.
07 · Taller
Laboratorio: elegir con dedos
MUX 4:1 con D0–D3 y S1/S0: el laboratorio muestra el camino elegido y la salida.
Selector 4:1
D=0-1-1-0 · S=10 → Y=1
S=10: Y=D2=1.
Preguntas para explorar
- Recorré S = 00→11 con D=0-1-1-0. ¿Salida? ¿Función?
- Programá D=0-0-0-1. ¿Función de S1,S0? ¿Puerta?
- Programá D=1-0-0-0. ¿Función? ¿Puerta?
Ver respuestas sugeridas
- 0-1-1-0 = XOR(S1,S0): el MUX personifica la puerta.
- Solo S=11 da 1: AND(S1,S0). El MUX hace de AND.
- Solo S=00 da 1: NOR(S1,S0). El MUX hace de NOR.
08 · Comprensión
Confusiones frecuentes
«El MUX mezcla entradas»
Elige una, ignora el resto: no es mezclador (eso era el sumador analógico). Un camino, no promedio.
«S0 es el más significativo»
S1 es el MSB (S1S0=10 es D2): inverter el orden rota la función. Leer el dibujo del trapecio.
«Enable al aire»
Enable flotante = MUX a veces apagado: atarlo (activo-bajo a masa). Como toda entrada.
«MUX para todo»
Para muchas vars conviene memoria/ROM o micro: el MUX discreto brilla hasta 8:1, después pesa.
09 · Práctica guiada
Ejercicios de selección
Ejercicio 1: manual/auto
Consigna = manual (pote→comparador M) o auto (sensor A) según S. Dibujá con MUX 2:1 y escribí Y.
Ver solución razonada
Y = ~S·M + S·A: D0=M, D1=A. Un MUX + cero puertas: la selección es la función.
Ejercicio 2: mayoría con 74HC151
Dados D0..D7 para mayoría (Σm 3,5,6,7). Verificá con a_mux8() y recorré S.
Ver solución
[0,0,0,1,0,1,1,1]: unos en 3,5,6,7. Cero puertas AND/OR: el 151 lo hace todo.
Ejercicio 3: montar 4:1
74HC153 (mitad) como XOR: D=0,1,1,0, S con botones. Medí las 4 salidas. ¿0110?
Ver solución
Sí: el MUX verifica la puerta del Tema 10. Enable (pin 1 o 15) a masa.
10 · Síntesis
Ideas para recordar
- Y = ~S·D0 + S·D1; N datos → log₂N selectores.
- S1 = MSB; enable activo-bajo a masa.
- 157 (4×2:1), 153 (2×4:1), 151 (8:1).
- MUX + constantes = cualquier función (LUT discreta).
- Elige, no mezcla.
Selección dominada. Ahora el camino inverso: en el próximo tema, demultiplexores.