Salta al contenuto
Note per Studenti Esercizio 14 · circuito sequenziale di Moore con codifica Gray (tema d'esame settembre 2025)

Esercizio 14circuito sequenziale di Moore con codifica Gray (tema d'esame settembre 2025)

Esame
In questa pagina 7

Testo (tema d'esame settembre 2025, esercizio 2 della parte di pratica; la foto del testo è tagliata sul bordo destro, qui è riportato per intero ciò che si legge). Realizzare il circuito sequenziale sincrono con un ingresso KK e due uscite, W1W_1 e W2W_2, tutti e tre a 1 bit, che funziona in questo modo: partendo dallo stato iniziale S0S_0 (0 bit riconosciuti) e uscite W1=W2=0W_1=W_2=0, quando il circuito riconosce il primo bit 11 all'ingresso, il segnale W1W_1 si porta a 11 e vi rimane; successivamente, quando sono riconosciuti tre bit 11 consecutivi (ossia la sequenza 111111), anche W2W_2 va a 11 e vi rimane. Infine, quando si presenta un ulteriore bit 11 all'ingresso, W1W_1 e W2W_2 ritornano a 00. Si usi uno schema secondo Moore. Si usino FF D PET. Si chiede di: a) disegnare il diagramma di transizione degli stati, partendo dallo stato iniziale (0 bit riconosciuti) denominato S0S_0, per procedere poi con gli stati successivi S1S_1, S2S_2, ecc; b) prima di avere assegnato qualsiasi codifica agli stati, scrivere la tabella degli stati e delle uscite e minimizzare il numero di stati utilizzati; c) assegnare la codifica Gray (per le variabili XiX_i che descrivono lo stato) a ogni stato, partendo dallo stato S0S_0 per il quale tutte le variabili XiX_i (X0X_0, X1X_1, ecc, dove X0X_0 è il LSB) devono valere 0; si minimizzino le risorse, ovvero il numero di FF necessari per realizzare il circuito; d) disegnare le corrispondenti mappe di Karnaugh e scrivere le equazioni minimizzate dell'ingresso del primo FF (relativo alla variabile X0X_0) e dell'uscita W1W_1.


Teoria usata: Sintesi delle reti sequenziali - riconoscitore di sequenza e codifica degli statiSintesi di una rete sequenziale sincrona: specifiche $\to$ diagramma degli stati $\to$ tabella (riduzione degli stati equivalenti) $\to$ codifica binaria degli stati $\to$ scelta del FF (D PET) $\to$ equazioni di ingresso dei FF e delle uscite $\to$ minimizzazione $\to$ circuito e verifica. Lo stato riassume la parte di storia utile; per i riconoscitori si ha uno stato per ogni prefisso riconosciuto, riusando gli stati (sovrapposizioni). Reset: stato iniziale noto. Codifica Gray (numero minimo di FF) vs 1-hot (un FF per stato, logica più semplice): per il riconoscitore 1101 Gray costa circa la metà.Sintesi delle reti sequenziali - riconoscitore di sequenza e codifica degli stati →, Analisi delle reti sequenziali - tabella e diagramma degli stati, Mealy e MooreAnalizzare una rete sequenziale sincrona significa ricavare, dal circuito, le equazioni di ingresso dei flip-flop (stato futuro) e dell'uscita, la tabella degli stati ($2^{m+n}$ righe per $m$ FF e $n$ ingressi), il diagramma degli stati (cerchi = stati, frecce = transizioni con ingresso/uscita) e la simulazione temporale. Mealy: uscita funzione di stato e ingresso (scritta sulle frecce, può cambiare tra due fronti di clock); Moore: uscita funzione del solo stato (scritta nel cerchio, cambia solo al fronte). Due stati sono equivalenti se danno le stesse uscite e portano a stati equivalenti: si fondono per ridurre i FF.Analisi delle reti sequenziali - tabella e diagramma degli stati, Mealy e Moore →, 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 →.

Interpretazione adottata

Il testo ha alcune zone ambigue; si adotta la lettura più naturale e la si dichiara:

  • la sequenza 111111 è formata da tre 11 consecutivi (il primo 11 che ha alzato W1W_1 conta come il primo dei tre); un 00 in ingresso azzera il conteggio dei 11 consecutivi ma W1W_1 resta a 1;
  • dopo la sequenza 111111 le uscite sono W1=W2=1W_1=W_2=1 e restano così finché si presenta un ulteriore 11 (un 00 non cambia nulla); con il quarto 11 si ritorna a S0S_0 (W1=W2=0W_1=W_2=0).

a) Diagramma degli stati

Servono le informazioni: W1W_1 già alzato o no; quanti 11 consecutivi sono arrivati (0, 1, 2, 3); se W2W_2 è alzato. Stati (macchina di Moore, uscite W1W2W_1W_2 nello stato):

stato significato W1W2W_1W_2 K=0K=0 K=1K=1
S0S_0 nessun 11 ancora ricevuto (stato iniziale) 00 S0S_0 S1S_1
S1S_1 W1W_1 alzato; ultimo ingresso 11 (1 consecutivo) 10 S4S_4 S2S_2
S2S_2 2 uni consecutivi 10 S4S_4 S3S_3
S3S_3 3 uni consecutivi: riconosciuta 111111 11 S3S_3 S0S_0
S4S_4 W1W_1 alzato, conteggio azzerato da uno 00 10 S4S_4 S1S_1

Spiegazione: da S1S_1 e da S2S_2 un 00 interrompe la serie di 11 consecutivi: lo stato in cui si finisce (S4S_4: W1W_1 resta a 1, conteggio 0) è lo stesso in entrambi i casi; da S4S_4 un nuovo 11 riparte il conteggio (S1S_1). In S3S_3 (W2=1W_2=1) uno 00 non cambia nulla; un 11 riporta tutto a 00.

b) Minimizzazione degli stati

Un diagramma ingenuo avrebbe uno stato diverso per ogni via con cui si arriva a "W1W_1 alzato, conteggio 0" (uno raggiungibile da S1S_1 con K=0K=0, uno da S2S_2 con K=0K=0): hanno la stessa uscita e gli stessi stati futuri, quindi sono equivalenti e si fondono in S4S_4.

Si verifica che i cinque stati restanti non sono equivalenti con il raffinamento di partizioni. Uscite: S0S_0 (0000), {S1,S2,S4}\{S_1,S_2,S_4\} (1010), S3S_3 (1111). Dentro {S1,S2,S4}\{S_1,S_2,S_4\}: con K=1K=1, S2S_2 va in S3S_3 (che ha W2=1W_2=1) mentre S1S_1 e S4S_4 vanno in stati con W2=0W_2=0: S2S_2 si separa; poi S1S_1 (K=1→S2K=1\to S_2) e S4S_4 (K=1→S1K=1\to S_1) vanno in stati ora distinti: si separano. Risultano 5 stati distinti.

c) Codifica Gray e numero di flip-flop

Con 5 stati servono ⌈log⁡25⌉=3\lceil\log_25\rceil=3 flip-flop. Codici Gray assegnati in ordine agli stati (si parte da S0=000S_0=000 con X2X1X0X_2X_1X_0): S0=000S_0=000, S1=001S_1=001, S2=011S_2=011, S3=010S_3=010, S4=110S_4=110. I tre codici 100,101,111100,101,111 sono inutilizzati: don't care. La codifica Gray rende adiacenti sulla mappa gli stati consecutivi.

d) Equazioni

Tabella degli stati futuri (le uscite non dipendono da KK):

stato X2X1X0X_2X_1X_0 K=0K=0: stato futuro K=1K=1: stato futuro W1W2W_1W_2
S0S_0 000 000 001 00
S1S_1 001 110 011 10
S2S_2 011 110 010 10
S3S_3 010 010 000 11
S4S_4 110 110 001 10

Ingresso del primo flip-flop (D0D_0, bit X0X_0 dello stato futuro). X0X_0 futuro vale 11 per (X2X1X0,K)=(000,1),(001,1),(110,1)(X_2X_1X_0,K)=(000,1),(001,1),(110,1), cioè nelle celle 1,3,131,3,13 della mappa in (X2,X1,X0,K)(X_2,X_1,X_0,K); i codici 100,101,111100,101,111 sono don't care. Mappa (righe X2X1X_2X_1, colonne X0KX_0K):

X2X1\X0KX_2X_1\backslash X_0K 00 01 11 10
00 0 1 1 0
01 0 0 0 0
11 0 1 X X
10 X X X X

Gruppi (usando le X): X1‾K\overline{X_1}K, cioè le celle 1,3,9,111,3,9,11 (le celle reali 11 e 33 più le X 99 e 1111): X1=0X_1=0, K=1K=1; e X2KX_2K, cioè le celle 9,11,13,159,11,13,15 (la cella reale 1313 più le X): X2=1X_2=1, K=1K=1. Risultato: D0=X1‾ K+X2 K=K (X1‾+X2).D_0=\overline{X_1}\,K+X_2\,K=K\,(\overline{X_1}+X_2).

Uscita W1W_1. Vale 11 in S1,S2,S3,S4S_1,S_2,S_3,S_4 (codici 001,011,010,110001,011,010,110) e 00 in S0S_0 (000000); le altre combinazioni sono don't care:

X2\X1X0X_2\backslash X_1X_0 00 01 11 10
0 0 1 1 1
1 X X X 1

Gruppi: le celle con X0=1X_0=1 (1,3,5,71,3,5,7, le ultime due sono X): X0X_0; le celle con X1=1X_1=1 (2,3,6,72,3,6,7): X1X_1. Insieme coprono tutti gli 11. W1=X0+X1W_1=X_0+X_1 (X2X_2 non serve: l'unico 00 è nello stato 000000.) Controllo: S4=110⇒X1=1⇒W1=1S_4=110\Rightarrow X_1=1\Rightarrow W_1=1 ✓; S0=000⇒0S_0=000\Rightarrow0 ✓. Anche l'altra uscita risulta W2=X2‾X1X0‾W_2=\overline{X_2}X_1\overline{X_0} (solo S3=010S_3=010 ha W2=1W_2=1).

Per completezza: D1=X0+X1K‾D_1=X_0+X_1\overline K e D2=X0K‾+X2K‾=K‾ (X0+X2)D_2=X_0\overline K+X_2\overline K=\overline K\,(X_0+X_2).

Simulazione di controllo

Ingresso K=0,1,1,0,1,1,1,1,0,1,0,1,1,1,1K=0,1,1,0,1,1,1,1,0,1,0,1,1,1,1 da S0S_0:

ciclo 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
KK 0 1 1 0 1 1 1 1 0 1 0 1 1 1 1
stato S0S_0 S0S_0 S1S_1 S2S_2 S4S_4 S1S_1 S2S_2 S3S_3 S0S_0 S0S_0 S1S_1 S4S_4 S1S_1 S2S_2 S3S_3
W1W2W_1W_2 00 00 10 10 10 10 10 11 00 00 10 10 10 10 11

W1W_1 si alza dopo il primo 11 (stato S1S_1 dal ciclo 2). Lo 00 del ciclo 3 interrompe la serie 1,11,1 (stato S4S_4: W1W_1 resta a 1). I tre 11 consecutivi dei cicli 4, 5, 6 portano a S3S_3 (W1W2=11W_1W_2=11 al ciclo 7: l'uscita di Moore compare dopo il fronte). Il 11 del ciclo 7 riporta a S0S_0 (0000 al ciclo 8). Il circuito con le equazioni trovate riproduce la tabella su tutte le 1010 combinazioni (stato, KK) valide.

Errori comuni

  • Dimenticare che W1W_1 resta a 1 anche dopo uno 00.
  • Non fondere gli stati equivalenti (un diagramma con 6–7 stati).
  • Non usare i codici inutilizzati come don't care: si perderebbe D0=K(X1‾+X2)D_0=K(\overline{X_1}+X_2).
  • Assegnare codici non-Gray o non partire da 000000 per S0S_0 (il testo lo richiede).

Versione ripasso

Teoria collegata