bitGateLab Digital · Aprende Abrir el simulador

Aprende › Tema 5

Método de Quine-McCluskey paso a paso

Lectura de 7 min · Equipo bitGateLab

El mapa de Karnaugh es rápido para cuatro variables, pero depende de tu vista y deja de ser práctico con cinco o más. El método de Quine-McCluskey hace el mismo trabajo con tablas y reglas mecánicas: no requiere intuición, siempre encuentra todos los implicantes primos y es la base de los programas que simplifican funciones lógicas. Aquí vas a entender sus dos etapas, a identificar los implicantes primos esenciales y a resolver un ejemplo completo de cuatro variables.

Vocabulario: implicantes y primos

El método tiene dos etapas: primero encuentra todos los implicantes primos combinando términos; después elige el menor conjunto de primos que cubra todos los minitérminos.

Etapa 1: combinar términos

Cada término se escribe en binario, y la posición de una variable eliminada se marca con un guion. Por ejemplo, con variables A, B, C, D, el término 0-11 significa ACD (B fue eliminada).

  1. Agrupa los minitérminos según la cantidad de unos que tiene su código binario.
  2. Compara cada término de un grupo con cada término del grupo siguiente. Si difieren en un solo bit, combínalos poniendo un guion en esa posición, y marca los dos originales como usados.
  3. Repite con la nueva lista. Solo se combinan términos que tienen los guiones en las mismas posiciones.
  4. Cuando ya no se pueda combinar nada, los términos que nunca quedaron marcados son los implicantes primos.
Ordenar por cantidad de unos ahorra trabajo: dos términos que difieren en un solo bit siempre están en grupos consecutivos, así que nunca necesitas comparar el grupo 1 con el grupo 3.

Etapa 2: tabla de implicantes primos

Se arma una tabla con un renglón por cada implicante primo y una columna por cada minitérmino de la función (las condiciones "no importa" no llevan columna). Se marca qué minitérminos cubre cada primo. Luego:

  1. Busca columnas con una sola marca. El primo de ese renglón es esencial: selecciónalo y tacha todas las columnas que cubre.
  2. Con las columnas que queden, elige el menor número de primos que las cubra. Si dos primos cubren lo mismo, cualquiera sirve; prefiere el de menos literales.

Ejemplo completo. Simplifica F(A, B, C, D) = Σm(0, 2, 3, 5, 7, 8, 10, 11, 13, 15).

Paso 1. Agrupar por cantidad de unos.

UnosMinitérminos
00 (0000)
12 (0010), 8 (1000)
23 (0011), 5 (0101), 10 (1010)
37 (0111), 11 (1011), 13 (1101)
415 (1111)

Paso 2. Primera combinación (pares). Se comparan grupos vecinos. El 8 no se combina con el 3 ni con el 5 porque difieren en más de un bit.

GruposPares formados
0 y 1(0,2) 00-0; (0,8) -000
1 y 2(2,3) 001-; (2,10) -010; (8,10) 10-0
2 y 3(3,7) 0-11; (3,11) -011; (5,7) 01-1; (5,13) -101; (10,11) 101-
3 y 4(7,15) -111; (11,15) 1-11; (13,15) 11-1

Los diez minitérminos quedaron marcados como usados; hay 13 pares.

Paso 3. Segunda combinación (cuartetos). Se combinan pares con el guion en la misma posición que difieren en un bit:

  • (0,2) con (8,10), o bien (0,8) con (2,10): -0-0, cubre 0, 2, 8, 10.
  • (2,3) con (10,11), o (2,10) con (3,11): -01-, cubre 2, 3, 10, 11.
  • (3,7) con (11,15), o (3,11) con (7,15): --11, cubre 3, 7, 11, 15.
  • (5,7) con (13,15), o (5,13) con (7,15): -1-1, cubre 5, 7, 13, 15.

Los 13 pares quedaron usados en algún cuarteto. Los cuatro cuartetos ya no se combinan entre sí (ninguno tiene los guiones en las mismas posiciones que otro y difiere en un solo bit). Por lo tanto, los implicantes primos son:

  • P1 = -0-0 = BD
  • P2 = -01- = BC
  • P3 = --11 = CD
  • P4 = -1-1 = BD

Paso 4. Tabla de cobertura.

Primo02357810111315
P1 BD✔✔✔✔
P2 BC✔✔✔✔
P3 CD✔✔✔✔
P4 BD✔✔✔✔

Paso 5. Esenciales. Las columnas 0 y 8 solo tienen marca en P1, así que P1 es esencial. Las columnas 5 y 13 solo tienen marca en P4, así que P4 también es esencial. Juntos cubren 0, 2, 5, 7, 8, 10, 13 y 15.

Paso 6. Cubrir el resto. Faltan los minitérminos 3 y 11. P2 cubre los dos, y P3 también. Cualquiera de los dos completa la solución con el mismo número de literales.

Resultado: F = BD + BD + BC, o bien F = BD + BD + CD. Ambas tienen tres términos y seis literales.

Si dibujas esta función en un mapa de Karnaugh, P1 son las cuatro esquinas, P4 es el bloque central, P2 son las columnas 11 y 10 de las filas 00 y 10 (unidas por el borde) y P3 es la columna 11 completa. El método tabular llega al mismo resultado sin necesidad de ver el mapa.

Condiciones "no importa" y tablas cíclicas

Las condiciones X se incluyen en la etapa 1 como si fueran unos, porque pueden ayudar a formar implicantes más grandes. En la etapa 2 se omiten: no llevan columna, ya que no es obligatorio cubrirlas. Un primo formado solo por X nunca se necesita.

A veces, después de elegir los esenciales, o desde el principio, cada columna tiene al menos dos marcas y no hay forma obvia de decidir. A esa situación se le llama tabla cíclica. Se resuelve probando: eliges un primo, quitas lo que cubre y repites, comparando las soluciones que salgan. Para tablas grandes existe un procedimiento algebraico (el método de Petrick) que enumera todas las coberturas posibles.

Errores comunes

Pruébalo en el simulador

El simulador simplifica las funciones con este tipo de procedimiento, así que puedes usarlo para revisar cada etapa de tu trabajo a mano.

  1. Crea una tabla de verdad de cuatro variables y marca con 1 los minitérminos del ejemplo.
  2. Haz las etapas 1 y 2 en papel y escribe tu resultado.
  3. Observa la expresión mínima que da la herramienta y su mapa de Karnaugh; identifica qué grupo corresponde a cada implicante primo.
  4. Convierte las dos soluciones posibles a circuito en el mismo lienzo y cambia las entradas para confirmar que siempre dan la misma salida.

Ejercicios

  1. Encuentra los implicantes primos y la expresión mínima de F(A, B, C, D) = Σm(0, 1, 3, 7, 8, 9, 11, 15).
    Respuesta

    Primos: -00- (BC), -0-1 (BD) y --11 (CD). La columna 0 solo la cubre BC, y la 7 solo la cubre CD: ambos son esenciales y juntos cubren todo. F = BC + CD. El primo BD sobra.

  2. Resuelve F(A, B, C) = Σm(0, 1, 2, 5, 6, 7). ¿Hay primos esenciales?
    Respuesta

    Los pares son 00-, 0-0, -01, -10, 1-1 y 11-, y ninguno se combina en cuarteto: son seis primos. Cada minitérmino lo cubren exactamente dos, así que no hay esenciales (tabla cíclica). Dos soluciones mínimas: AB + BC + AC, o AC + BC + AB.

  3. Simplifica F(A, B, C, D) = Σm(2, 3, 7, 9, 11, 13) + d(1, 10, 15).
    Respuesta

    Incluyendo las X en la etapa 1 salen cuatro primos: -0-1 (BD), -01- (BC), --11 (CD) y 1--1 (AD). En la tabla, sin columnas para 1, 10 y 15: el 2 solo lo cubre BC, el 7 solo CD y el 13 solo AD. Los tres son esenciales y cubren también 3, 9 y 11. F = BC + CD + AD.

  4. ¿Por qué no se compara el grupo con un uno contra el grupo con tres unos en la etapa 1?
    Respuesta

    Porque dos códigos con uno y tres unos difieren al menos en dos bits, y para combinarse deben diferir exactamente en uno.