Salta al contenuto
Note per Studenti Mappe di Karnaugh - POS, condizioni di don't care e parità

Mappe di Karnaugh - POS, condizioni di don't care e parità

In questa pagina 4

Questa nota completa Mappe di Karnaugh - implicanti e copertura minimaLa mappa di Karnaugh è la tabella di verità disposta in una griglia con righe e colonne in codice Gray, così che celle adiacenti (anche tra bordi opposti) differiscano in una sola variabile. Si raggruppano gli 1 in rettangoli di $2^k$ celle: ogni gruppo elimina $k$ variabili e dà un prodotto. Implicante primo = gruppo massimo; essenziale = unico a coprire un mintermine; la copertura minima contiene tutti gli essenziali più il minimo di altri primi (può non essere unica). Efficace fino a 4 variabili.Mappe di Karnaugh - implicanti e copertura minima → con tre casi: la forma a prodotto di somme, le condizioni di indifferenza e le funzioni XOR.

Prodotto di somme minimo (POS)

Proprietà (POS minima dai gruppi di zeri). La SOP raggruppa gli 1. La POS si ottiene raggruppando gli 0, ossia lavorando sul complemento F‾\overline F:

  1. si marcano gli 0 della mappa e si raggruppano come si farebbe con gli 1 (rettangoli di 2k2^k, IP e IPE), ottenendo una SOP minima di F‾\overline F;
  2. si complementa con De Morgan: F=F‾‾F=\overline{\overline F}. In pratica, per ogni gruppo si scrive una somma con le variabili che non cambiano, diretta se nel gruppo valgono 0, negata se valgono 1;
  3. FF è il prodotto di queste somme.

Esempio. Un gruppo di 00 che per F‾\overline F dà A‾B\overline AB diventa nella POS la somma A+B‾A+\overline B.

Perché la regola dei segni è opposta: il gruppo A‾B\overline AB per F‾\overline F dà un prodotto, che negato diventa la somma A+B‾A+\overline B (De Morgan): le variabili che nel gruppo valgono 00 (AA) compaiono dirette, quelle che valgono 11 (BB) negate.

Esempio

F=∏M(2,5,6,7,8,9,10,11,14)F=\prod M(2,5,6,7,8,9,10,11,14), cioè F=0F=0 nelle celle 2,5,6,7,8,9,10,11,142,5,6,7,8,9,10,11,14 e F=1F=1 nelle altre 7:

AB\CDAB\backslash CD 00 01 11 10
00 1 1 1 0
01 1 0 0 0
11 1 1 1 0
10 0 0 0 0

Gruppi di 0 (IP, tutti essenziali):

  • celle 2,6,14,102,6,14,10 (colonna CD=10CD=10): variabili costanti C=1,D=0C=1,D=0; per F‾\overline F: CD‾C\overline D; somma per FF: C‾+D\overline C+D;
  • celle 5,75,7 (A=0,B=1,D=1A=0,B=1,D=1): per F‾\overline F: A‾BD\overline ABD; somma: A+B‾+D‾A+\overline B+\overline D;
  • celle 8,9,10,118,9,10,11 (riga AB=10AB=10): per F‾\overline F: AB‾A\overline B; somma: A‾+B\overline A+B.

F=(C‾+D)(A+B‾+D‾)(A‾+B)F=(\overline C+D)(A+\overline B+\overline D)(\overline A+B)

Confronto con la SOP. Raggruppando gli 1 si ottengono tre forme minime equivalenti, tutte con 44 prodotti da 33 letterali (12 letterali), per esempio F=BC‾ D‾+A‾ C‾ D‾+A‾ B‾D+ABDF=B\overline C\,\overline D+\overline A\,\overline C\,\overline D+\overline A\,\overline BD+ABD. La POS ha 3 somme e 7 letterali: qui la POS è nettamente più compatta, perché gli 0 sono meno numerosi e meglio raggruppabili degli 1. In generale conviene lavorare sulla fase (1 o 0) che ha meno celle e gruppi più grandi.

Controllo su una cella: per A=0,B=1,C=0,D=0A=0,B=1,C=0,D=0 (cella 44, F=1F=1): C‾+D=1\overline C+D=1, A+B‾+D‾=0+0+1=1A+\overline B+\overline D=0+0+1=1, A‾+B=1\overline A+B=1; prodotto =1=1 ✓. Per la cella 66 (A=0,B=1,C=1,D=0A=0,B=1,C=1,D=0): C‾+D=0+0=0\overline C+D=0+0=0 → F=0F=0 ✓.

Condizioni di don't care

Finora si è supposto che la funzione valga 00 dove non vale 11. A volte, però, la funzione non è completamente specificata: per alcune combinazioni degli ingressi il valore dell'uscita è indifferente, perché quella combinazione non può presentarsi (per esempio i codici 10101010–11111111 in un ingresso BCD, Codici binari - BCD, ASCII, Unicode, parità e GrayUn codice binario a $n$ bit distingue $2^n$ elementi. BCD: una cifra decimale ogni 4 bit (1010–1111 non usati; 10 richiede 8 bit, non è il binario del numero). ASCII: 7 bit per 128 caratteri, la cifra ASCII è 011 seguito dal BCD. Unicode/UTF-8: da 1 a 4 byte, compatibile con ASCII. Bit di parità: rileva errori su un numero dispari di bit. Distanza di Hamming = numero di bit diversi. Codice Gray: numeri consecutivi differiscono di un solo bit (sensori di posizione); si costruisce per riflessione o con $g_i=b_i\oplus b_{i+1}$.Codici binari - BCD, ASCII, Unicode, parità e Gray →) o perché il risultato non interessa. Nella tabella e nella mappa si scrive una X.

Proprietà (condizioni di don't care). Una X si può usare come 1 o come 0, a seconda di ciò che serve per fare gruppi più grandi. Regole:

  • una X dentro un gruppo viene trattata come 1, e non è coperta esplicitamente: la funzione ottenuta vale 1 su quella combinazione;
  • una X lasciata fuori è trattata come 0;
  • non si fa un gruppo che contenga solo X, e non è obbligatorio coprire le X;
  • una X non rende un gruppo "essenziale": gli IPE si definiscono rispetto ai soli mintermini a 1.

Esempio. Con una cifra BCD le celle 1010–1515 sono X: il gruppo delle celle 3,2,11,103,2,11,10 dà B‾C\overline BC usando le X di 1010 e 1111.

Esempio: cifra BCD "primo oppure 1"

Un circuito riceve una cifra BCD ABCDABCD (00–99) e deve dare F=1F=1 se la cifra è 1,2,3,5,71,2,3,5,7. Le righe 1010–1515 non si presentano: sono don't care.

AB\CDAB\backslash CD 00 01 11 10
00 0 1 1 1
01 0 1 1 0
11 X X X X
10 0 0 X X
  • Gruppo delle celle 1,3,5,71,3,5,7 (A=0,D=1A=0,D=1): A‾D\overline AD, senza usare X.
  • Gruppo delle celle 3,2,11,103,2,11,10 (B=0,C=1B=0,C=1): B‾C\overline BC, che usa le X delle celle 1010 e 1111 (e copre le celle 2 e 3).

F=B‾C+A‾DF=\overline BC+\overline AD 2 prodotti, 4 letterali. Se non si sfruttassero le X (trattandole come 0) servirebbe F=A‾D+A‾ B‾CF=\overline AD+\overline A\,\overline BC (5 letterali): le X risparmiano un letterale e una porta con meno ingressi. In POS: gli 0 sono nelle celle 0,4,6,8,90,4,6,8,9 e le X sono a disposizione. Gruppi: {0,4,8,12}\{0,4,8,12\} (resta C‾ D‾\overline C\,\overline D, somma C+DC+D), {4,6,12,14}\{4,6,12,14\} (resta BD‾B\overline D, somma B‾+D\overline B+D), le due righe AB=11AB=11 e AB=10AB=10 (resta AA, somma A‾\overline A). Risultato: F=A‾ (C+D)(B‾+D)F=\overline A\,(C+D)(\overline B+D), equivalente alla SOP sulle combinazioni valide (sulle X le due forme possono dare valori diversi, e va bene).

Se due scelte per le X danno lo stesso costo, si hanno due forme minime algebricamente diverse ma equivalenti sulle combinazioni che si presentano.

Funzioni XOR e di parità

Proprietà (XOR a tre variabili e mappa a scacchiera). La funzione XOR a 3 variabili (disparità, vale 1 se il numero di 1 in ingresso è dispari) è X⊕Y⊕Z=∑m(1,2,4,7)X\oplus Y\oplus Z=\sum m(1,2,4,7). La sua mappa ha gli 1 a scacchiera:

X\YZX\backslash YZ 00 01 11 10
0 0 1 0 1
1 1 0 1 0

Nessun 1 è adiacente a un altro: i mintermini sono a distanza di Hamming 2 l'uno dall'altro. Non esistono gruppi da più di una cella, quindi la SOP minima coincide con la canonica (44 prodotti da 33 letterali) e non si semplifica. Conviene usare le porte XOR: S=(X⊕Y)⊕ZS=(X\oplus Y)\oplus Z con due porte. Lo stesso vale per 4 variabili (16 celle, scacchiera da 8 mintermini dispari) e per la funzione di parità (complemento: 11 se gli 1 sono in numero pari), che si ottiene sostituendo le XOR con XNOR.

Esempio. X⊕Y⊕ZX\oplus Y\oplus Z vale 11 per 111111 (tre 1, dispari) e 00 per 110110 (due 1, pari).

Questa funzione è il bit di somma di un sommatore completo (Sommatori binari - half adder, full adder e ripple carryHalf adder (2 ingressi): $S=X\oplus Y$, $C=XY$. Full adder (3 ingressi, con riporto in ingresso $Z$): $S=X\oplus Y\oplus Z$, $C=XY+XZ+YZ=G+PZ$ con $P=X\oplus Y$, $G=XY$; si realizza con due half adder e una OR. Il ripple carry adder a $n$ bit concatena $n$ full adder: il riporto "ondeggia" dal LSB al MSB, quindi il ritardo cresce linearmente con $n$. È un circuito iterativo (gerarchico e regolare). Il moltiplicatore a 2 bit usa 4 AND e 2 half adder.Sommatori binari - half adder, full adder e ripple carry →).

Errori comuni

  • Nella POS, scrivere le variabili con i segni della SOP (diretta se 1): per i gruppi di 0 vale la regola opposta.
  • Fare gruppi di X non collegati a nessun 1.
  • Trattare una X come "da coprire per forza".
  • Dimenticare che le forme minime ottenute usando le X possono differire sulle combinazioni non valide: va bene.
  • Cercare di raggruppare una mappa a scacchiera.

Versione ripasso

  • POS minima: si raggruppano gli 0 (si ottiene la SOP di F‾\overline F); per ogni gruppo si scrive una somma con le variabili costanti nel gruppo, diretta se valgono 0, negata se valgono 1; FF è il prodotto delle somme. Un gruppo A‾B\overline AB di F‾\overline F dà la somma A+B‾A+\overline B.
  • Esempio POS: F=∏M(2,5,6,7,8,9,10,11,14)F=\prod M(2,5,6,7,8,9,10,11,14) con IPE: celle 2,6,14,102,6,14,10 (somma C‾+D\overline C+D), celle 5,75,7 (somma A+B‾+D‾A+\overline B+\overline D), celle 8,9,10,118,9,10,11 (somma A‾+B\overline A+B). Risultato F=(C‾+D)(A+B‾+D‾)(A‾+B)F=(\overline C+D)(A+\overline B+\overline D)(\overline A+B).
  • Confronto con la SOP: la SOP minima ha 4 prodotti da 3 letterali (12 letterali), la POS 7 letterali. Conviene la fase (1 o 0) con meno celle e gruppi più grandi.
  • Controllo: cella 44 (A=0,B=1,C=0,D=0A=0,B=1,C=0,D=0) dà F=1F=1; cella 66 (A=0,B=1,C=1,D=0A=0,B=1,C=1,D=0) dà F=0F=0.
  • Don't care (X): la funzione non è specificata per alcune combinazioni (per esempio 10101010–11111111 in BCD) o l'uscita non interessa. Una X si usa come 1 o come 0 per ingrandire i gruppi; dentro un gruppo vale 1, fuori vale 0; non si fa un gruppo di sole X e non è obbligatorio coprirle; una X non rende un gruppo essenziale.
  • Esempio BCD: F=1F=1 per le cifre 1,2,3,5,71,2,3,5,7, con 1010–1515 don't care: gruppo {1,3,5,7}\{1,3,5,7\} dà A‾D\overline AD, gruppo {2,3,10,11}\{2,3,10,11\} dà B‾C\overline BC usando due X. Risultato F=B‾C+A‾DF=\overline BC+\overline AD (2 prodotti, 4 letterali), contro A‾D+A‾ B‾C\overline AD+\overline A\,\overline BC senza X.
  • XOR a 3 variabili e parità: X⊕Y⊕Z=∑m(1,2,4,7)X\oplus Y\oplus Z=\sum m(1,2,4,7), mappa a scacchiera con mintermini a distanza di Hamming 2: non esistono gruppi da più di una cella, quindi la SOP non si semplifica; conviene usare due porte XOR. La parità (XNOR) si ottiene sostituendo le XOR con XNOR. Esempio: X⊕Y⊕Z=1X\oplus Y\oplus Z=1 per 111111, 00 per 110110.
  • Legame: la funzione XOR a 3 variabili è il bit di somma del sommatore completo (Sommatori binari - half adder, full adder e ripple carryHalf adder (2 ingressi): $S=X\oplus Y$, $C=XY$. Full adder (3 ingressi, con riporto in ingresso $Z$): $S=X\oplus Y\oplus Z$, $C=XY+XZ+YZ=G+PZ$ con $P=X\oplus Y$, $G=XY$; si realizza con due half adder e una OR. Il ripple carry adder a $n$ bit concatena $n$ full adder: il riporto "ondeggia" dal LSB al MSB, quindi il ritardo cresce linearmente con $n$. È un circuito iterativo (gerarchico e regolare). Il moltiplicatore a 2 bit usa 4 AND e 2 half adder.Sommatori binari - half adder, full adder e ripple carry →).
  • Errori: nella POS, variabili con i segni della SOP (per gli 0 vale la regola opposta); gruppi di sole X; trattare le X come obbligatorie da coprire; raggruppare una mappa a scacchiera.

Esercizi su questo argomento

Teoria collegata