Note
I metodi di sintesi di reti sequenziali sono in costante evoluzione.
Un circuito sincrono può essere modellato in modo comportamentale o strutturale.
Macchina a stati
Il valore delle uscite all’istante dipende dalla successione degli ingressi che precedono l’istante , questo implica il concetto di stato.
Usiamo quindi una macchina a stati, definita dalla quintupla:
Dove è l’alfabeto di ingresso, è l’alfabeto d’uscita, è l’insieme degli stati, è la funzione stato prossimo e è la funzione d’uscita.
La funzione di uscita dipende dal tipo di macchina. Se è una macchina di Mealy (l’uscita dipende da stato e ingresso) allora:
Se è una macchina di Moore (l’uscita dipende solamente dallo stato) allora:
Una FSM può essere descritta da una tabella degli stati, dove gli indici di colonna sono i simboli di ingresso , e gli indici di riga sono e indicano lo stato presente.
Per rappresentarli si usa il diagramma degli stati, cioè un grafo orientato , con insieme dei nodi (stati), insieme degli archi (transizioni di stato) e insieme degli ingressi e uscite (Mealy) o solo uscite (Moore).
Generalmente la struttura di una macchina a stati è:

Il problema della sintesi comportamentale consiste nell’identificazione delle funzioni e , e sintetizzare la rete combinatorie che le realizza, riducendo il più possibile il numero di flip-flop.
Per sintetizzare, si realizza la tabella degli stati, e si ottimizzano riducendo i numeri. Si costruisce poi la tabella delle transizioni e la tabella delle eccitazioni, infine si sintetizza la rete combinatoria da tale tabella.
Codifica degli stati
Esistono diversi metodi per codificare gli stati, le più conosciute sono:
- Minima: con elementi in memoria .
- One-Hot: con elementi in memoria .
La scelta influisce su area e performance.
Codifica degli stati
Note
Il numero di possibili codifiche per stati è:
Generalmente si usano le codifiche minime o one-hot, oppure delle euristiche specifiche.
Codifica di hamming
Si dicono codifiche di hamming quelle che cerano di minimizzare la distanza di hamming tra stati futuri e adiacenti.
Sintesi delle FSM completamente specificate
Note
Per ridurre il numero flip-flop, si può usare una codifica diversa degli stati, oppure ottimizzare il numero di stati.
Si ha che il numero di flip-flop minimo è:
Tuttavia nel modello della FSM alcuni stati potrebbero essere ridondanti, pertanto identificare ed eliminare questi stati comporta reti combinatorie meno costose e un numero minore di elementi di memoria.
In primis, si eliminano gli stati non raggiungibili dallo stato iniziale.
Dalla tabella degli stati questa operazione è possibile cercando tutti gli stati raggiungibili iterativamente, partendo dallo stato di partenza.
Inoltre, si possono rimuovere molti stati tramite la proprietà degli stati indistinguibili, minimizzando gli stati.
Stati indistinguibili
Si consideri una macchina completamente specificata, e la generica sequenza di ingresso, la sequenza d’uscita associata ad . Consideriamo inoltre due generici stati . Questi sono detti indistinguibili se:
L’indistinguibilità è una relazione di equivalenza, e quindi godono di proprietà riflessive, simmetriche e transitive. In generale due stati equivalenti possono essere raggruppati in un unica classe.
L’insieme delle classi identificate determina l’insieme degli stati della macchina minima equivalente unica.
Formalmente per il partizionamento in classi :
Per semplificare questo tipo di analisi si usa le regola ricorsiva di Paull-Unger: Due stati sono indistinguibili se per ogni simbolo di ingresso :
Dopo un numero finito di passi si ricadrà nelle condizioni oppure .
Inoltre per evidenziare le indistinguibilità si può usare la tabella delle implicazioni, dove ogni elemento può contenere non equivalenza, equivalenza oppure un rimando ad analisi di altri passaggi.
Una volta costruita la tabella, si cerca l’indistinguibilità con
La macchina a stati finiti ottenuta mediante la minimizzazione degli stati gode delle proprietà:
- Equivalenza alla precedente
- Minima
- Unica
Analisi delle macchine sequenziali
Note
È possibile ottenere un modello delle funzionalità di una macchina sequenziale tramite l’analisi del circuito.
Per farlo, prima si identificano le funzioni implementate dalla rete combinatoria, e poi si rappresenta le funzioni sulla tabella degli stati.
Questo processo non è banale per bistabili di tipo D.