bitGateLab Digital · Impara
Italiano
Apri il simulatore

Impara › Argomento 4

Mappe di Karnaugh a 2, 3 e 4 variabili con condizioni X

7 min di lettura · Team bitGateLab

Semplificare con l'algebra di Boole funziona, ma dipende dal fatto che tu "veda" quale legge applicare. La mappa di Karnaugh trasforma questa ricerca in un esercizio visivo: dispone la tabella di verità in una griglia in cui le celle vicine differiscono per una sola variabile, e semplificare diventa racchiudere gruppi di uni. Qui imparerai a costruire mappe a 2, 3 e 4 variabili, a raggruppare correttamente (compresi i bordi che "fanno il giro") e a sfruttare le condizioni di indifferenza.

L'idea: celle vicine, una sola variabile di differenza

La legge di adiacenza dice che AB + AB = A: due termini che differiscono per una sola variabile si fondono e quella variabile scompare. La mappa di Karnaugh dispone i mintermini in modo che qualsiasi coppia di celle con un lato in comune soddisfi questa condizione. Per riuscirci, le intestazioni di righe e colonne non seguono l'ordine binario 00, 01, 10, 11, ma il codice Gray: 00, 01, 11, 10. Tra due valori consecutivi cambia un solo bit, e così anche tra l'ultimo e il primo (10 e 00). Per questo la mappa si comporta come se i suoi bordi opposti fossero incollati.

Mappe a 2 e 3 variabili

La mappa a due variabili ha 4 celle: A sulle righe e B sulle colonne. Quella a tre variabili ha 8 celle: A sulle righe e BC sulle colonne, in ordine Gray. Il numero dentro ogni cella indica il mintermine corrispondente:

A \ BC00011110
0m0m1m3m2
1m4m5m7m6

Nota che m3 e m2 compaiono in quest'ordine: è l'effetto del codice Gray, e la causa di molti errori quando si compila la mappa a mano.

Regole di raggruppamento

Per leggere un gruppo, esamina ogni variabile: se mantiene lo stesso valore in tutte le celle del gruppo, compare nel termine (senza barra se vale 1, con la barra se vale 0); se cambia, viene eliminata.

Esempio 1: tre variabili. Semplifica F(A, B, C) = Σm(1, 3, 4, 5, 7).

A \ BC00011110
00110
11110
  1. Le colonne 01 e 11 sono complete: un gruppo di 4 (m1, m3, m5, m7). In esso A cambia, B cambia e C vale sempre 1. Termine: C.
  2. Resta m4. Si raggruppa con m5 (il vicino a destra): A = 1, B = 0 in entrambe, C cambia. Termine: AB.
  3. F = C + AB.

Verifica m6 (110): C = 0 e AB = 0, quindi F = 0, come nella mappa.

Mappa a 4 variabili e adiacenza ai bordi

Con quattro variabili la mappa ha 16 celle: AB sulle righe e CD sulle colonne, entrambe in ordine Gray.

AB \ CD00011110
00m0m1m3m2
01m4m5m7m6
11m12m13m15m14
10m8m9m11m10

La colonna di sinistra è vicina a quella di destra, e la riga superiore è vicina a quella inferiore. Di conseguenza, i quattro angoli (m0, m2, m8, m10) formano un gruppo valido di 4 celle: in tutte B = 0 e D = 0, quindi si leggono come BD.

Esempio 2: gruppi che attraversano i bordi. Semplifica F(A, B, C, D) = Σm(0, 1, 2, 5, 8, 9, 10).

AB \ CD00011110
001101
010100
110000
101101
  1. m0, m1, m8, m9: colonne 00 e 01 delle righe superiore e inferiore (vicine attraverso il bordo). B = 0 e C = 0. Termine: BC.
  2. m0, m2, m8, m10: i quattro angoli. Termine: BD.
  3. Resta m5 (0101). Il suo miglior vicino con 1 è m1 (0001): A = 0, C = 0, D = 1 e B cambia. Termine: ACD.
  4. F = BC + BD + ACD.

Sei passato da 7 mintermini di 4 letterali (28 letterali) a 3 termini con 7 letterali in tutto.

Condizioni di indifferenza (X)

A volte certe combinazioni di ingresso non si verificano mai, oppure la loro uscita non ha conseguenze. Per esempio, in una cifra BCD i codici da 1010 a 1111 non esistono. In quelle righe si scrive una X (detta anche don't care) e la si annota a parte come d(...). Nel raggruppare, ogni X può essere considerata un 1 se ti aiuta a formare un gruppo più grande, oppure ignorata in caso contrario. Non è mai necessario coprire una X.

Esempio 3: con condizioni X. Semplifica F(A, B, C, D) = Σm(1, 3, 7, 11, 15) + d(0, 2, 5).

AB \ CD00011110
00X11X
010X10
110010
100010
  1. La colonna CD = 11 è piena (m3, m7, m15, m11): termine CD.
  2. Manca m1. Considerando come uni le X di m0 e m2, l'intera riga superiore è un gruppo di 4: termine AB.
  3. F = CD + AB.

C'è un'altra soluzione altrettanto buona: prendere la X di m5 e raggruppare m1, m3, m5, m7, che dà AD. Allora F = CD + AD. Entrambe hanno 2 termini e 4 letterali, e coincidono in tutte le righe che contano davvero. È normale che una funzione abbia più di una forma minima.

Senza le X, m1 potrebbe raggrupparsi soltanto con m3 e resterebbe ABD, con un letterale in più. Le condizioni di indifferenza sono un risparmio gratuito: non sprecarle.

Errori comuni

Provalo nel simulatore

Il modulo delle mappe di Karnaugh dispone la funzione in ordine Gray, evidenzia i gruppi e scrive l'espressione minima, così puoi confrontare il tuo raggruppamento con quello proposto dallo strumento.

  1. Crea una funzione di quattro variabili e inserisci gli uni dell'esempio 2.
  2. Raggruppa prima tu sulla carta e scrivi il tuo risultato.
  3. Osserva i gruppi evidenziati nella mappa e l'espressione risultante; se è diversa dalla tua, controlla quale gruppo non era massimo.
  4. Inserisci l'esempio 3 segnando come X le celle 0, 2 e 5, e osserva come cambia la semplificazione togliendo quelle X.
  5. Converti il risultato in circuito e cambia gli ingressi per confermare che coincide con la tabella.

Esercizi

  1. Semplifica F(A, B, C) = Σm(0, 2, 4, 6).
    Risposta

    Le colonne BC = 00 e BC = 10 sono vicine attraverso il bordo e sono piene. Nelle quattro celle C = 0: F = C.

  2. Semplifica F(A, B, C, D) = Σm(0, 2, 5, 7, 8, 10, 13, 15).
    Risposta

    Angoli: BD. Blocco centrale m5, m7, m13, m15: BD. F = BD + BD, che è la XNOR di B e D.

  3. Semplifica F(A, B, C, D) = Σm(4, 5, 6, 7, 12, 13, 14, 15).
    Risposta

    Le righe AB = 01 e AB = 11 formano un gruppo di 8; solo B resta a 1. F = B.

  4. Una cifra BCD (A è il bit più significativo) deve attivare un'uscita quando vale 5 o più. Semplifica F = Σm(5, 6, 7, 8, 9) + d(10, 11, 12, 13, 14, 15).
    Risposta

    Con le X, le righe AB = 11 e AB = 10 formano un gruppo di 8: A. Il blocco m5, m7, m13, m15 dà BD e il blocco m6, m7, m14, m15 dà BC. F = A + BD + BC = A + B(C + D).

Quando ci sono più di quattro o cinque variabili la mappa diventa difficile da leggere; per quei casi esiste un procedimento tabulare, il metodo di Quine-McCluskey.