Esercizio 17riconoscitore della sequenza 1001 di Mealy e codifica 1-hot (tema d'esame giugno 2026)
In questa pagina 4
Testo (tema d'esame giugno 2026, primo appello, esercizio 2). Usando una macchina di tipo Mealy, progettare un sistema digitale con ingresso a 1 bit e uscita a 1 bit che riconosca la sequenza di ingresso . L'uscita deve andare a non appena il sistema riceve in ingresso l'ultimo bit della sequenza corretta. L'uscita deve essere se la sequenza corretta non viene riconosciuta. Sono ammesse sequenze sovrapposte, cioè il simbolo finale di una sequenza corretta può essere l'inizio di una nuova sequenza. Evidenziare i seguenti passaggi: a) disegnare il diagramma degli stati del sistema, chiamando gli stati ; b) determinare la tabella di transizione degli stati e delle uscite; c) determinare il numero di bit necessari per codificare gli stati con codifica 1-hot.
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 →, Verificare reti logiche e automi con PythonPython serve a controllare i propri conti: tabelle di verità con itertools.product, minimizzazione con sympy (SOPform/POSform con mintermini e don't care), equivalenza di due espressioni con satisfiable(Not(Equivalent(...))), simulazione di una macchina a stati con un dizionario (stato, ingresso) $\to$ (stato futuro, uscita) confrontata con una definizione indipendente, somma in complemento a 2 con rilevazione dell'overflow. Non sostituisce il metodo da sapere a mano (mappe di Karnaugh, tabelle degli stati) ma evita errori di calcolo.Verificare reti logiche e automi con Python →.
a) Diagramma degli stati
Lo stato riassume quanta parte della sequenza è stata riconosciuta alla fine degli ingressi ricevuti, tenendo conto della sovrapposizione (se l'ingresso sbagliato non azzera, si torna al più lungo prefisso di che è anche suffisso di ciò che si è visto).
- : nessun prefisso utile (stato iniziale);
- : l'ultimo bit è (prefisso "");
- : ultimi bit (prefisso "");
- : ultimi bit (prefisso "").
Transizioni (ingresso ), motivate:
- : (nessun progresso); ;
- (visto ): (); (ultimi bit : il solo prefisso utile è l'ultimo );
- (visto ): (); (ultimi : suffisso utile "", non "" perché non finisce con );
- (visto ): (: nessun prefisso: l'ultimo non inizia nulla); con : la sequenza è completa e l'ultimo può essere l'inizio di una nuova sequenza (sovrapposizione), quindi si va in e non in .
L'uscita è su una freccia (macchina di Mealy): solo nella transizione , nello stesso ciclo in cui arriva l'ultimo bit.
b) Tabella di transizione degli stati e delle uscite
(stato futuro / )
| stato presente | ||
|---|---|---|
I 4 stati sono tutti diversi (nessuna coppia è equivalente: è l'unico con una uscita ; , hanno stati futuri diversi). Con la codifica binaria minima servono flip-flop, per esempio con (Gray).
Verifica. Sequenza di ingresso : stati (dopo ogni ingresso) e uscita : la sequenza è riconosciuta ai bit 5, 8 e 12; tra i bit 2–5 e 5–8 le due occorrenze si sovrappongono nel bit condiviso (). La macchina è stata anche confrontata su 2000 sequenze casuali di 40 bit con la definizione "gli ultimi 4 bit sono ": coincide sempre.
c) Codifica 1-hot
Nella codifica 1-hot si usa un flip-flop per stato, con un solo bit a 1: servono 4 bit, uno per (codici ). Con la codifica binaria ne basterebbero 2: la 1-hot usa più flip-flop, ma in genere ha logica più semplice. Per esempio, scrivendo per il flip-flop dello stato : Perché: si raggiunge da e da con ; si raggiunge da ogni stato con , quindi ; solo da con ; solo da con ; l'uscita è solo in con .
Errori comuni
- Tornare sempre in dopo un ingresso sbagliato (si perdono le sequenze sovrapposte): da con e da con si va in , non in .
- Dopo il riconoscimento tornare in : l'ultimo può iniziare una nuova sequenza, quindi si va in .
- Mettere nello stato (Moore) invece che sulla transizione: servirebbe uno stato in più e l'uscita arriverebbe un ciclo dopo.
- Confondere il numero di bit della 1-hot (uno per stato: 4) con quello minimo (2).
Versione ripasso
- Testo. Mealy, ingresso , uscita all'ultimo bit di (sovrapposizioni ammesse): diagramma (), tabella, bit della codifica 1-hot.
- Stati: (nulla), (
1), (10), (100). - Tabella (futuro/): : , ; : , ; : , ; : , (per , ).
- Verifica: ingresso (sovrapposizione).
- 1-hot: 4 bit (uno per stato); , , , , ; binaria: 2 FF (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 →).
- Errori: ritorno a dopo riconoscimento; su stato; bit 1-hot confusi con quelli minimi.