01 · Punto de partida
“Si pasa esto, sale esto”
Alarma con dos sensores: ¿suena con uno solo o con los dos? La tabla lo zanja: 4 filas, 0/1 por fila, cero discusión. Con 3 entradas son 8 filas; con N, 2N.
- ¿Cómo se ordenan las filas?
- ¿Cómo se lee la función desde la tabla?
- ¿Qué son los minterms?
- ¿Qué se hace con lo imposible?
02 · Anatomía
Entradas, filas, salida
| A | B | C | Y | Minterm |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | – |
| 0 | 0 | 1 | 0 | – |
| 0 | 1 | 0 | 0 | – |
| 0 | 1 | 1 | 1 | m3 |
| 1 | 0 | 0 | 0 | – |
| 1 | 0 | 1 | 1 | m5 |
| 1 | 1 | 0 | 1 | m6 |
| 1 | 1 | 1 | 1 | m7 |
Y = Σm(3, 5, 6, 7): la firma compacta de la función. Cada minterm es un AND de las entradas (negadas donde hay 0).
03 · Puertas en tabla
Seis firmas de 2 entradas
| Puerta | 00 | 01 | 10 | 11 | Minterms |
|---|---|---|---|---|---|
| AND | 0 | 0 | 0 | 1 | Σm(3) |
| OR | 0 | 1 | 1 | 1 | Σm(1,2,3) |
| NAND | 1 | 1 | 1 | 0 | Σm(0,1,2) |
| NOR | 1 | 0 | 0 | 0 | Σm(0) |
| XOR | 0 | 1 | 1 | 0 | Σm(1,2) |
| XNOR | 1 | 0 | 0 | 1 | Σm(0,3) |
Memorizar firmas acelera todo: 0110 es XOR la mires por donde la mires (Temas 8–10).
04 · No importa
La X que simplifica
- Don't care (X)
- Combinación imposible o irrelevante: el diseñador elige 0 o 1 según convenga. No es un tercer valor, es libertad.
- Ejemplo
- BCD a display: entradas A–F nunca llegan (Tema 5): 6 filas en X que Karnaugh aprovecha (Tema 16).
- Una tabla por salida
- Dos salidas = dos tablas (o una tabla con dos columnas Y1, Y2): cada salida tiene sus minterms.
05 · Tablas en código
Generar y leer tablas
Tabla completa de cualquier función más extracción de minterms.
Python en tu navegador. Definí tu función y que la tabla hable.
def tabla(f, n=2, nombres="AB"):
mins = []
for i in range(2 ** n):
bits = [(i >> (n - 1 - k)) & 1 for k in range(n)]
y = f(*bits)
mins += [i] if y else []
print(" ".join(map(str, bits)), "->", y)
print(f"Y = Σm({', '.join(map(str, mins))})")
return mins
tabla(lambda a, b: a and b)
tabla(lambda a, b, c: (a + b + c) >= 2, n=3, nombres="ABC")
AND → Σm(3). Mayoría → Σm(3, 5, 6, 7). ¿Qué da XOR de 3 entradas?
Equivalencias a prueba
def equivalentes(f1, f2, n=2):
ok = all(f1(*[(i >> (n-1-k)) & 1 for k in range(n)]) ==
f2(*[(i >> (n-1-k)) & 1 for k in range(n)]) for i in range(2**n))
print("equivalentes" if ok else "DISTINTAS")
return ok
equivalentes(lambda a, b: not (a and b), lambda a, b: (not a) or (not b))
06 · Analogía programador
Test cases del hardware
- 1Tabla = tests exhaustivos.
Todas las entradas, salidas esperadas: como un test parametrizado que no deja casos afuera.
- 2Minterms = casos que dan true.
La lista de inputs que activan: como un
parametrizede los que pasan. - 3X = skip.
Caso que no aplica: se marca y el optimizador lo aprovecha.
07 · Exploración
Laboratorio: inventar puertas
Prendé salidas para 00/01/10/11: el laboratorio nombra la puerta si la conoce y da sus minterms.
Inventa-puertas
0-1-1-0 · XOR
0-1-1-0: XOR, Σm(1, 2).
Preguntas para explorar
- Programá 0-0-0-1. ¿Nombre? ¿Minterms?
- Programá 1-0-0-1. ¿Nombre? ¿Expresión?
- Programá 0-0-1-0 (solo fila 10). ¿Puerta conocida? ¿Qué significa?
Ver respuestas sugeridas
- AND, Σm(3): solo el 11 da 1. La más exigente.
- XNOR, Σm(0,3): igualdad. A⊙B (o NOT XOR).
- A medida: A·~B (A y no B). No toda función útil tiene nombre propio.
08 · Comprensión
Confusiones frecuentes
«El orden de filas da igual»
El orden binario 00…11 es convención: Σm(1,2) depende de él. Cambiarlo sin avisar rompe minterms.
«X es un tercer valor»
X = “elegí vos”: el circuito igual da 0 o 1. Ternario es otra materia (y casi no existe).
«Tabla de 8 entradas, fácil»
256 filas: se diseña por bloques (mux, sumadores), no a mano. La tabla es para pocas variables.
«Una tabla con dos salidas»
Son dos funciones que comparten entradas: minterms por separado, optimización junta (Tema 16).
09 · Práctica guiada
Ejercicios de tablas
Ejercicio 1: alarma de dos sensores
Suena si hay humo (H) O (temperatura alta (T) Y puerta cerrada (P)). Tabla de 8 filas y minterms. Verificá con tabla().
Ver solución razonada
Y = H + T·P: filas con H=1 (4–7) más T·P (3, 7): Σm(3, 4, 5, 6, 7). 5 de 8 filas.
Ejercicio 2: XOR de 3
Paridad de 3 bits (Y = 1 si hay cantidad impar de unos). ¿Minterms? Verificá con código.
Ver solución
Σm(1, 2, 4, 7): 001, 010, 100, 111. Base del Tema 26 (paridad).
Ejercicio 3: De Morgan a prueba
Verificá NOT(A OR B) = (NOT A) AND (NOT B) con equivalentes(). ¿Y con AND?
Ver solución
Equivalentes ✓ (NOR = Øproducto de negados). Con AND: NOT(A·B) = ~A + ~B (NAND). Tema 14.
10 · Síntesis
Ideas para recordar
- 2N filas en orden binario; Y = Σm(filas con 1).
- Seis firmas de 2 entradas memorizadas (0110 = XOR).
- X = libertad del diseñador, no tercer valor.
- Una tabla por salida; tablas grandes → bloques.
- Tabla = spec: código y silicio obedecen lo mismo.
Lenguaje dominado. Ahora las piezas: en el próximo tema, NOT, buffer y tri-estado.