Salta al contenuto
Note per Studenti Esercizio 7 · numero pari diverso da zero tra 0 e 9 (tema d'esame settembre 2022)

Esercizio 7numero pari diverso da zero tra 0 e 9 (tema d'esame settembre 2022)

Esame
In questa pagina 5

Testo (tema d'esame settembre 2022, terzo appello, esercizio 1). Sintetizzare la funzione logica "numero pari diverso da 0" con ingresso aa (an…a0a_n\dots a_0) compreso tra 00 e 99, utilizzando le mappe di Karnaugh. Riportare la tabella di verità della funzione, la mappa di Karnaugh con i raggruppamenti utilizzati per semplificare la funzione e l'equazione finale ottenuta.


Teoria usata: 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 →, Mappe di Karnaugh - POS, condizioni di don't care e paritàPer la POS minima si raggruppano gli 0 della mappa, si ottiene la SOP minima di $\overline F$ e si scrive $F$ come prodotto di somme (variabile diretta se vale 0 nel gruppo, negata se vale 1). Le condizioni di don't care (X) sono combinazioni di ingresso che non si presentano o la cui uscita è indifferente: si usano come 1 o come 0 a seconda di quel che allarga i gruppi (mai raggruppamenti fatti solo di X). Le funzioni XOR a più variabili (disparità) e XNOR (parità) hanno mappa a scacchiera: non si semplificano con i gruppi.Mappe di Karnaugh - POS, condizioni di don't care e parità →, 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 →.

Passo 1: ingressi e tabella di verità

Un numero tra 00 e 99 richiede 4 bit: a3a2a1a0a_3a_2a_1a_0. Le combinazioni 10101010–11111111 non rappresentano numeri dell'intervallo: sono don't care. La funzione vale 11 per i numeri pari non nulli: 2,4,6,82,4,6,8. Un numero è pari se il bit meno significativo è 00.

a3a2a1a0a_3a_2a_1a_0 numero yy
0000 0 0 (pari ma nullo)
0001 1 0
0010 2 1
0011 3 0
0100 4 1
0101 5 0
0110 6 1
0111 7 0
1000 8 1
1001 9 0
1010–1111 10–15 X

y=∑m(2,4,6,8)y=\sum m(2,4,6,8) con don't care m(10,…,15)m(10,\dots,15).

Passo 2: mappa di Karnaugh

Righe a3a2a_3a_2, colonne a1a0a_1a_0:

a3a2\a1a0a_3a_2\backslash a_1a_0 00 01 11 10
00 0 0 0 1
01 1 0 0 1
11 X X X X
10 1 0 X X

Passo 3: raggruppamenti

Tutti gli 1 sono nella colonne con a0=0a_0=0 (colonne 0000 e 1010). Si usano i don't care per fare tre gruppi da 4 celle:

  • {2,6,14,10}\{2,6,14,10\} (colonna a1a0=10a_1a_0=10): costanti a1=1a_1=1, a0=0a_0=0 ⇒\Rightarrow a1a0‾a_1\overline{a_0};
  • {4,6,12,14}\{4,6,12,14\} (celle con a2=1a_2=1, a0=0a_0=0): a2a0‾a_2\overline{a_0};
  • {8,10,12,14}\{8,10,12,14\} (celle con a3=1a_3=1, a0=0a_0=0): a3a0‾a_3\overline{a_0}.

Tutti essenziali (la cella 22 è coperta solo dal primo gruppo, la 44 solo dal secondo, la 88 solo dal terzo; le celle 00, 11, 33, ... valgono 00 e non vanno coperte).

y=a1a0‾+a2a0‾+a3a0‾=a0‾ (a1+a2+a3)y=a_1\overline{a_0}+a_2\overline{a_0}+a_3\overline{a_0}=\overline{a_0}\,(a_1+a_2+a_3)

Passo 4: significato, verifica e circuito

Il risultato dice: "il numero è pari (a0=0a_0=0) e almeno uno degli altri bit è 1 (quindi non è zero)": è esattamente la definizione. Il controllo sulle 10 cifre valide dà y=1y=1 solo per 2,4,6,82,4,6,8.

Circuito: la forma raccolta a0‾(a1+a2+a3)\overline{a_0}(a_1+a_2+a_3) è anche una forma POS (due somme: a0‾\overline{a_0} e (a1+a2+a3)(a_1+a_2+a_3)) e costa: OR a 3 ingressi (3)(3) + AND a 2 (2)(2) + inverter (1)=6(1)=6 ingressi di porta, contro 3⋅2+3+1=103\cdot2+3+1=10 della forma SOP a tre prodotti. La stessa forma si trova raggruppando gli 0: gli 0 sono nelle celle 0,1,3,5,7,90,1,3,5,7,9; con i don't care i gruppi sono le 88 celle con a0=1a_0=1 (resta a0a_0) e la coppia {0,1}\{0,1\} (restano a3‾ a2‾ a1‾\overline{a_3}\,\overline{a_2}\,\overline{a_1}). Quindi y‾=a0+a3‾ a2‾ a1‾\overline y=a_0+\overline{a_3}\,\overline{a_2}\,\overline{a_1} e, per De Morgan, y=a0‾ (a1+a2+a3)y=\overline{a_0}\,(a_1+a_2+a_3).

Senza don't care la forma minima sarebbe a3‾ a1a0‾+a3‾ a2a0‾+a3a2‾ a1‾ a0‾\overline{a_3}\,a_1\overline{a_0}+\overline{a_3}\,a_2\overline{a_0}+a_3\overline{a_2}\,\overline{a_1}\,\overline{a_0}, molto più lunga: i don't care semplificano molto.

Errori comuni

  • Includere lo 00 tra i numeri pari (la specifica dice "diverso da 0").
  • Non sfruttare i don't care 1010–1515 (si perde la semplificazione).
  • Dimenticare che la funzione non dipende da a0a_0 se non per l'AND finale: tutti i prodotti contengono a0‾\overline{a_0}.

Versione ripasso

Teoria collegata