Cargando aplicación...
Preparando tu experiencia meskeIA
Simplifica expresiones booleanas con mapas de Karnaugh
Haz clic en la columna F para cambiar: 0 → 1 → X → 0
| # | A | B | C | F |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 1 | 0 |
| 2 | 0 | 1 | 0 | 0 |
| 3 | 0 | 1 | 1 | 0 |
| 4 | 1 | 0 | 0 | 0 |
| 5 | 1 | 0 | 1 | 0 |
| 6 | 1 | 1 | 0 | 0 |
| 7 | 1 | 1 | 1 | 0 |
Los grupos coloreados muestran las agrupaciones óptimas
| A\BC | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 0 | 00 | 01 | 03 | 02 |
| 1 | 04 | 05 | 07 | 06 |
A' = NOT A (complemento)AB = A AND B (producto)A + B = A OR B (suma)SOP = Suma de Productos (OR de ANDs)POS = Producto de Sumas (AND de ORs)Descubre los fundamentos de la lógica digital y simplificación de circuitos
| Puerta | Símbolo | Tabla verdad | Expresión | Equivalencia NAND | Uso en circuitos reales |
|---|---|---|---|---|---|
| AND | & | 0,0→0 · 0,1→0 · 1,0→0 · 1,1→1 | A · B | NAND(NAND(A,B), NAND(A,B)) | Habilitar señales, máscaras de bits |
| OR | | | 0,0→0 · 0,1→1 · 1,0→1 · 1,1→1 | A + B | NAND(NAND(A,A), NAND(B,B)) | Combinar señales, detección de eventos |
| NOT | ¬ | 0→1 · 1→0 | A' | NAND(A, A) | Inversión de señal, lógica activa-baja |
| NAND | ↑ | 0,0→1 · 0,1→1 · 1,0→1 · 1,1→0 | (A · B)' | Puerta base (universal) | Lógica TTL, CMOS, diseño FPGA |
| NOR | ↓ | 0,0→1 · 0,1→0 · 1,0→0 · 1,1→0 | (A + B)' | NAND(NAND(NAND(A,A), NAND(B,B)), ...) | Circuitos RTL, lógica de control |
| XOR | ⊕ | 0,0→0 · 0,1→1 · 1,0→1 · 1,1→0 | A ⊕ B | 4 puertas NAND | Sumadores, paridad, cifrado |
| XNOR | ⊙ | 0,0→1 · 0,1→0 · 1,0→0 · 1,1→1 | (A ⊕ B)' | 5 puertas NAND | Comparadores, detectores de igualdad |
Minimizar un circuito de 6 variables con Mapa de Karnaugh: de 12 compuertas AND/OR a 4 compuertas NAND. Ahorro del 67% en área de silicio y consumo.
Control de acceso: ENTRAR = (TarjetaVálida AND HorarioLaboral) OR (TarjetaAdmin AND NOT Bloqueado). Implementado con 3 compuertas NAND universales.
La ALU de un procesador ARM Cortex-M0 usa álgebra booleana para operaciones bit a bit: AND, OR, XOR entre registros. XOR para detectar cambios de bit (flip-flops, paridad).
Google usa álgebra booleana en búsquedas: 'python AND (tutorial OR curso) NOT básico'. El índice invertido evalúa esta expresión booleana sobre millones de documentos.
Construye la tabla de verdad completa. Para n variables, hay 2^n filas. Identifica los minterms donde f=1.
Para 2 vars: 2×2, para 3: 2×4, para 4: 4×4. El orden de columnas es código Gray (00,01,11,10) para que celdas adyacentes difieran en 1 bit.
Escribe 1 en cada celda que corresponda a un minterm donde f=1. Los don't cares se marcan con X.
Agrupa celdas adyacentes con 1s (y X si ayuda): grupos de 1, 2, 4, 8, 16 celdas. Los grupos deben ser lo más grandes posible. Las esquinas son adyacentes (el mapa es toroidal).
Cada grupo produce un término: las variables que son iguales en todo el grupo se conservan (complementadas o no), las que varían desaparecen.
Haz OR de todos los términos. Verifica con la tabla de verdad.
Aplica De Morgan: la expresión SOP se convierte directamente a NAND-NAND. Dos niveles de NAND equivalen a SOP.
Siempre busca el grupo más grande posible, aunque ya hayas cubierto esa celda. Grupos más grandes = menos literales = circuito más simple.
En FPGA y ASIC, implementa con NAND para minimizar celdas lógicas. NAND-NAND = SOP en 2 niveles.
Siempre comprueba la expresión minimizada evaluando todos los casos. Un error en el mapa invalida el circuito.
Solo usa don't care cuando la combinación es físicamente imposible o no importa. Un don't care mal colocado puede causar comportamiento erróneo en entradas no previstas.
Si hay pocos 0s en la tabla, minimiza en POS (Product of Sums) agrupando los 0s. Más eficiente cuando f=0 es el caso común.
Para circuitos con >6 variables, usa Vivado (Xilinx), Quartus (Intel/Altera) o Yosys. Implementan Espresso y síntesis lógica automática.