Salta al contenuto
Note per Studenti Esercizio 13 · funzione con don't care, forme minime SOP e multiplexer (tema d'esame settembre 2025)

Esercizio 13funzione con don't care, forme minime SOP e multiplexer (tema d'esame settembre 2025)

Esame
In questa pagina 4

Testo (tema d'esame settembre 2025, esercizio 1 della parte di pratica). Si consideri la funzione F(X,Y,W,Z)F(X,Y,W,Z) con XX = MSB e ZZ = LSB, non completamente specificata, descritta dai mintermini 1,7,14,151,7,14,15 e dai mintermini di don't care 0,3,4,8,10,120,3,4,8,10,12. Si chiede di: a) disegnare la mappa di Karnaugh; b) scrivere tutte le forme minime della funzione espresse come SOP; c) riportare, per una sola delle forme minime scritte al punto b), la tabella di verità e lo schema circuitale che implementa la funzione su multiplexer, utilizzando un componente col minimo numero di ingressi.


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à →, Multiplexer e funzioni logiche realizzate con decoder e multiplexerIl multiplexer (MUX) $2^n$-to-1 ha $2^n$ ingressi dati, $n$ ingressi di selezione e un'uscita che copia l'ingresso selezionato: $Y=\sum_i m_i(S),I_i$. Si realizza con decoder + AND di enable + OR (costo 22 per il 4-to-1) o direttamente (costo 18). Un MUX $2^n$-to-1 realizza qualunque funzione di $n$ variabili (ingressi dati = colonna della tabella di verità); con un MUX $2^{n-1}$-to-1 si usano le $n-1$ variabili come selezione e gli ingressi dati valgono $0$, $1$, $X$ o $\overline X$ (l'ultima variabile). I MUX a vettori selezionano gruppi di bit.Multiplexer e funzioni logiche realizzate con decoder e multiplexer →.

a) Mappa di Karnaugh

Righe XYXY, colonne WZWZ (Gray). Gli 1 sono nelle celle 1,7,14,151,7,14,15, le X nelle celle 0,3,4,8,10,120,3,4,8,10,12:

XY\WZXY\backslash WZ 00 01 11 10
00 X (0) 1 (1) X (3) 0 (2)
01 X (4) 0 (5) 1 (7) 0 (6)
11 X (12) 0 (13) 1 (15) 1 (14)
10 X (8) 0 (9) 0 (11) X (10)

(Tra parentesi l'indice della cella.)

b) Forme minime SOP

Implicanti primi (si usano le X come 1 per allargare i gruppi):

  • XZ‾X\overline Z: celle 8,10,12,148,10,12,14 (righe XY=10XY=10 e 1111, colonne WZ=00WZ=00 e 1010);
  • YWZYWZ: celle 7,157,15;
  • X‾ Y‾ Z\overline X\,\overline Y\,Z: celle 1,31,3;
  • X‾ Y‾ W‾\overline X\,\overline Y\,\overline W: celle 0,10,1;
  • X‾WZ\overline X WZ: celle 3,73,7;
  • XYWXYW: celle 14,1514,15;
  • W‾ Z‾\overline W\,\overline Z: celle 0,4,8,120,4,8,12.

Nessun implicante primo è essenziale: ogni 1 è coperto da due primi diversi (11 da X‾Y‾Z\overline X\overline YZ o X‾Y‾W‾\overline X\overline Y\overline W; 77 da YWZYWZ o X‾WZ\overline XWZ; 1414 da XZ‾X\overline Z o XYWXYW; 1515 da YWZYWZ o XYWXYW). Bisogna quindi scegliere la copertura minima per confronto. Il minimo è di 3 prodotti e 8 letterali:

  • YWZYWZ (copre 7,157,15) ++ XZ‾X\overline Z (copre 1414, usando X 8,10,128,10,12) ++ un implicante che copre la cella 11.

La cella 11 si copre in due modi equivalenti, quindi le forme minime sono due: F=YWZ+X‾ Y‾ W‾+XZ‾oppureF=YWZ+X‾ Y‾ Z+XZ‾.F=YWZ+\overline X\,\overline Y\,\overline W+X\overline Z\qquad\text{oppure}\qquad F=YWZ+\overline X\,\overline Y\,Z+X\overline Z . Altre coperture con 3 prodotti (per esempio X‾WZ+XYW+…\overline XWZ+XYW+\dots) hanno più letterali (9). Non c'è una forma con 2 prodotti.

c) Implementazione con multiplexer

Si sceglie una delle due forme e si sceglie come valgono i don't care in modo coerente con essa: con la seconda forma, F=YWZ+X‾ Y‾ Z+XZ‾F=YWZ+\overline X\,\overline Y\,Z+X\overline Z, la funzione è completamente specificata:

XX YY WW ZZ FF XX YY WW ZZ FF
0 0 0 0 0 1 0 0 0 1
0 0 0 1 1 1 0 0 1 0
0 0 1 0 0 1 0 1 0 1
0 0 1 1 1 1 0 1 1 0
0 1 0 0 0 1 1 0 0 1
0 1 0 1 0 1 1 0 1 0
0 1 1 0 0 1 1 1 0 1
0 1 1 1 1 1 1 1 1 1

F=∑m(1,3,7,8,10,12,14,15)F=\sum m(1,3,7,8,10,12,14,15) (le X 3,8,10,123,8,10,12 valgono 11; 0,40,4 valgono 00).

Si cerca il multiplexer più piccolo. Un MUX 8-to-1 (88 dati +3+3 selezioni =11=11 ingressi) realizza ogni funzione di 4 variabili con dati in {0,1,Z,Z‾}\{0,1,Z,\overline Z\}. Ma qui conviene un MUX 4-to-1 (44 dati +2+2 selezioni =6=6 ingressi): si usano come selezione due variabili e come dati funzioni (costanti o letterali) delle altre due. Con selezione S1S0=(Y,Z)S_1S_0=(Y,Z) per ogni coppia (Y,Z)(Y,Z) si guarda come FF dipende da X,WX,W:

YZYZ FF in funzione di X,WX,W ingresso dati
00 F=XZ‾F=X\overline Z con Z=0Z=0: F=XF=X I0=XI_0=X
01 F=X‾ Y‾ ZF=\overline X\,\overline Y\,Z con Y=0,Z=1Y=0,Z=1: F=X‾F=\overline X I1=X‾I_1=\overline X
10 F=XZ‾F=X\overline Z con Z=0Z=0: F=XF=X I2=XI_2=X
11 F=YWZ=WF=YWZ=W (gli altri termini valgono 0) I3=WI_3=W

Schema: MUX 4-to-1 con selezione S1=YS_1=Y, S0=ZS_0=Z e ingressi I0=XI_0=X, I1=X‾I_1=\overline X, I2=XI_2=X, I3=WI_3=W, uscita FF; serve un inverter per X‾\overline X. Riscontro con la tabella: per XYWZ=1011XYWZ=1011 (YZ=01YZ=01, X=1X=1): I1=X‾=0I_1=\overline X=0 ✓ (F=0F=0); per 01010101 (YZ=11YZ=11, W=0W=0): I3=W=0I_3=W=0 ✓; per 11101110 (YZ=10YZ=10, X=1X=1): I2=1I_2=1 ✓.

Con la prima forma non esiste una simile semplificazione con Y,ZY,Z come selezione: servirebbe un MUX 8-to-1 (con selezione X,Y,WX,Y,W i dati sono 1,0,0,Z,Z‾,Z‾,Z‾,11,0,0,Z,\overline Z,\overline Z,\overline Z,1). Per questo la richiesta di "una sola delle forme" e del "minimo numero di ingressi" porta a scegliere la seconda.

Errori comuni

  • Dimenticare che le X vanno usate come 1 o 0 a scelta, e che dopo aver scelto la forma i valori sono fissati.
  • Credere che esista una sola forma minima: qui sono due (e nessun implicante primo è essenziale).
  • Usare sempre un MUX 2n−12^{n-1}-to-1 con dati 0,1,Z,Z‾0,1,Z,\overline Z: con l'ultima scelta delle variabili e le X si può scendere a un MUX 2n−22^{n-2}-to-1 con dati letterali.
  • Dimenticare l'inverter per X‾\overline X nel conteggio.

Versione ripasso

Teoria collegata