Sei sulla pagina 1di 12

Reti Logiche

Sintesi di reti sequenziali sincrone


Procedimento:
Specifiche Diagramma degli stati Tabella degli stati Minimizzazione degli stati Codifica degli stati Tabella delle transizioni Scelta elementi di memoria Tabella delle eccitazioni Sintesi delle reti combinatorie (next state - output)

Minimizzazione degli Stati in una macchina a stati finiti

Macchina a Stati Finiti


M: <S,I,O,, ,s0>
S: insieme degli stati I: alfabeto di ingresso insieme di tutti i possibili simboli di ingresso O: alfabeto di uscita : funzione di stato prossimo : SxI S : funzione di uscita : SxI O (macchina di Mealy) : S O s0: stato iniziale (macchina di Moore)
1/0 C 0/0 A 0/0 1/1 A B C 0 B/0 A/1 B/0

Macchina a Stati Finiti


1 C/1 C/0 A/0 A B C 0 B A B 1 C C C Out 0 1 1

0/1 1/0 B

A/0

0 B/1

0 1

C/1 1

Mealy

Moore

Motivazione
Elementi di memoria necessari per memorizzare lo stato: N log2|S| Possono esistere stati ridondanti Eliminazione ridondanza
Diminuzione del numero di elementi di memoria Reti combinatorie pi semplici

Obiettivo
Individuazione di una macchina minima equivalente
Eliminazione degli stati non raggiungibili (dallo stato iniziale) Identificazione Stati equivalenti (per le macchine completamente specificate) Stati compatibili (per le macchine non completamente specificate)

Stato Irragiungibile
Dati:

Definizioni
I : sequenza di ingresso {i1, i2, i3, ..., iN} U : sequenza di uscita associata a I si , sj due stati generici

Non esiste alcuna sequenza di transizione che porti dallo stato iniziale (I) allo stato considerato ( Q)
I Q Lo stato Q irragiungibile I Q

Gli stati si e sj sono indistinguibili (si ~ sj) se:


U = L(si,I) = U' = L(sj,I) I cio se per qualunque sequenza di ingresso le uscite generate partendo da si e da A C B C A B sj sono le stesse

Propriet:
Riflessiva: si ~ si Simmetrica:si ~ sj sj ~ si Transitiva: si ~ sj si ~ sk si ~ sk

Partizione degli stati


~ una relazione di equivalenza
induce una partizione sull'insieme S P = {p0 , p1 , ... , pr}
due stati si e sj appartengono allo stesso blocco pk se e solo se si ~ sj
S1 S2 S3 S6 S5 S4

Eliminazione di stati
Due stati indistinguibili sono equivalenti e possono essere sostituiti da un singolo stato
S1 ~ S2 S4 ~ S5 S5 ~ S6 S2 S3 S6 S4' S1' S3 S4

una macchina a stati finiti minima se non ha stati distinti equivalenti


M: <S,I,O,, ,s0> M': <P,I,O,',' ,p0>
P: partizione indotta su S dalla relazione ~

Regola di Paull-Unger
Definizione di indistinguibilit
Si devono considerare tutte le sequenze di ingresso Difficile applicabilit

Regola di Paull-Unger
Dopo aver esaminato tutte le coppie di stati, per ogni si e sj
si ~ sj perch esiste almeno un ingresso per cui le uscite sono diverse perch esiste un ingresso che porta a stati successivi distinguibili oppure si ~ sj perch per ogni ingresso dipendono da: coppie di cui stata provata la indistinguibilit la coppia in esame (si , sj) oppure Dipendono da un'altra coppia di stati di cui non si ancora provata la distinguibilit

Regola di Paull-Unger
Due stati si e sj sono indistinguibili se e solo se: (si , i) = (sj , i) i I (le uscite sono uguali per tutti i simboli di ingresso) (si , i) ~ (sj , i) i I (gli stati successivi sono indistinguibili per tutti i simboli di ingresso) La regola ricorsiva

Iterare finch tutte le coppie di stati non sono risolte

Esempio
S0 S1 S2 S3 S4 0 S3/0 S4/0 S0/1 S1/1 S0/1 1 S1/1 S1/1 S2/1 S2/0 S2/0 S0 e S1 hanno la stessa uscita se gli stati successivi sono indistinguibili, S0~S1 S3 e S4 hanno la stessa uscita se gli stati successivi sono indistinguibili, S3~S4

Regola di Paull-Unger
Le relazioni di indistinguibilit si identificano con la Tabella delle Implicazioni
Mette in relazione ogni coppia di stati triangolare e manca della diagonale principale (simmetria e riflessivit)

L'indistinguibilit tra S0 e S1 dipende da quella tra S3 e S4 (e viceversa). Possiamo concludere che: S0~S1 e S3~S4 macchina equivalente S01' S2' S34' 0 1 S34'/0 S01'/1 S01'/1 S2'/1 S01'/1 S2'/0 [ (S0,S1) S01' ; S2 S2' ; (S3,S4) S34' ] S1 S2 S3

Ogni elemento della tabella contiene:


Il simbolo di equivalenza (~) o di non equivalenza (X) oppure La coppia di stati a cui si rimanda la verifica se non ancora possibile decidere X X S1 , S2 S0

~ X S1

X S2

Regola di Paull-Unger
Per ogni coppia di stati Si , Sj
Se marcata come equivalente: non richiesta altra verifica Se si rimanda a un'altra coppia Sp , Sq se Sp , Sq sono equivalenti, Si , Sj sono equivalenti se Sp , Sq sono non equivalenti, Si , Sj sono non equivalenti se Sp , Sq dipendono da un'altra coppia, ripetere il procedimento iterativamente a b c d e f g

Regola di Paull-Unger - esempio


0 g/0 c/0 e/1 b/0 g/0 d/1 a/1 1 e/1 a/1 g/0 e/1 a/1 f/0 g/0 b c d e f g cg ae X X bg bc ae X bg ae ~ cg X X X de fg X X X X ae a b c d Analisi delle coppie di stati: a-b: c-g indistinguibile se lo a-e a~b a-d: b-g distinguibile a~d b-d: b-c distinguibile b~d b-e: c-g indistinguibile se lo a-e b~e e-d: b-g distinguibile e~d c-f: d-e indistinguibile se lo b-g f~c c-g: a-e indistinguibile g~c f-g: a-d indistinguibile se lo b-g g~f

X X e

ad f

L'analisi termina quando ulteriori eliminazioni non sono possibili Le coppie rimanenti sono equivalenti

Regola di Paull-Unger - esempio


a b c d e f g 0 g/0 c/0 e/1 b/0 g/0 d/1 a/1 1 e/1 a/1 g/0 e/1 a/1 f/0 g/0 b c d e f g ~ X X ~ X X a X X ~ X X b X X X ~ c a b c d e f g

Regola di Paull-Unger - esempio


0 g/0 c/0 e/1 b/0 g/0 d/1 a/1 1 e/1 a/1 g/0 e/1 a/1 f/0 g/0 b c d e f g ~ X X ~ X X a X X ~ X X b X X X ~ c

X X X d

X X e

X f

X X X d

X X e

X f

Analisi delle coppie di stati: a-b: c-g indistinguibile se lo a-e a~b a-d: b-g distinguibile a~d b-d: b-c distinguibile b~d b-e: c-g indistinguibile se lo a-e b~e e-d: b-g distinguibile e~d c-f: d-e indistinguibile se lo b-g f~c c-g: a-e indistinguibile g~c f-g: a-d indistinguibile se lo b-g g~f Stati equivalenti: S0: {a,b,e} S1: {c,g} S2: {d} S3: {f} Nuova tabella degli stati: S0 S1 S2 S3 0 S1/0 S0/1 S0/0 S2/1 1 S0/1 S1/0 S0/1 S3/0

Regola di Paull-Unger esempio 2


a b c d e f g 0 g/00 g/00 d/10 c/10 g/00 f/10 a/01 1 c/01 d/01 a/11 b/11 f/01 e/11 f/11 b c d e f g cd X X cf X X a X X df X X b ab X ae df X c

Regola di Paull-Unger
Per una FSM completamente specificata, l'agoritmo di Paull-Unger

X be cf X d

X X e

X f

Determina in maniera esatta la FSM minima equivalente


La partizione in classi di stati equivalenti unica

b c d e f g

~ X X ~ X X a

X X ~ X X b

~ X ~ X c

X ~ X d

X X e

X f

Macchine non completamente specificate


Per alcune configurazioni di ingressi e stato corrente non sono specificate le uscite e/o lo stato futuro Definizione
si e sj sono compatibili (si sj) se
assunti come stati iniziali danno luogo a sequenze di uscita identiche, a meno di condizioni di indifferenza, per ogni possibile sequenza di ingresso

Macchine non completamente specificate


La compatibilit una relazione meno forte di quella di indistinguibilit:
Non vale la propriet transitiva esempio S0 S1 S2 0 S2/1 S2/x S2/0 1 S0/x S0/1 S0/x S0 S1 S1 S2 S0 S2

Regola di Paull-Unger estesa:


gli stati si e sj sono compatibili se e solo se: (si , i) = (sj , i) i I ovunque sono entrambi specificati (si , i) (sj , i) i I ovunque sono entrambi specificati La definizione ricorsiva

Regola di Paull-Unger estesa


Anche le relazioni di compatibilit si identificano con la Tabella delle Implicazioni Ogni elemento della tabella contiene:
X se in almeno una colonna vi sono uscite diverse (stati incompatibili) Si Sj se le uscite sono tutte uguali ma i nomi degli stati futuri (Si , Sj) sono diversi e non coincidono con quelli della coppia di stati in esame altrimenti (stati compatibili) a b c d e 0 e/0 d/0 e/x a/1 a/x

Regola di Paull-Unger estesa


1 a/0 b/0 c/x a/1 b/x b c d e de X ab a de X ad b ae ac ae bc c

ab d

Si devono verificare i vincoli che discendono dall'imposizione delle uscite non specificate esempio: be se si scelgono entrambe le uscite nello stato e pari a 0, in questo caso per de e viceversa

Regola di Paull-Unger estesa


a b c d e 0 e/0 d/0 e/x a/1 a/x 1 a/0 b/0 c/x a/1 b/x b c d e de X ab a de X ad b ae ac ae bc c non pu essere eliminato anche se ac perch nello stato c l'uscita non specificata (quindi non detto che sia a~c) ab d a b c d e 0 e/0 d/0 e/x a/1 a/x

Regola di Paull-Unger estesa


1 a/0 b/0 c/x a/1 b/x b c d e de X ab a de X ad b ae ac ae bc c

ab d

Vincoli: ab: se de ae: se ab bc: se de be: se ad be cd: se ae , ac ce: se ae , bc de: se ab

Regola di Paull-Unger estesa


a b c d e 0 e/0 d/0 e/x a/1 a/x 1 a/0 b/0 c/x a/1 b/x b c d e de X ab a de X X b ae ac ae bc c

Grafo di compatibilit
I nodi corrispondono agli stati

ab d

I nodi ni e nj sono collegati se gli stati corrispondenti sono compatibili I nodi ni e nj sono collegati se la loro compatibilit dipende dalla compatibilit del loro stato successivo Su ogni arco sono riportati i vincoli sulla compatibilit degli stati successivi
ab de X ad b e ae ac ae bc c ab d ab d ae bc ae ac c a de b de

Vincoli: ab: se de ae: se ab bc: se de be: se ad be cd: se ae , ac ce: se ae , bc de: se ab

b c d e

de X ab a

Grafo di compatibilit
I nodi corrispondono agli stati I nodi ni e nj sono collegati se gli stati corrispondenti sono compatibili I nodi ni e nj sono collegati se la loro compatibilit dipende dalla compatibilit del loro stato successivo Su ogni arco sono riportati i vincoli sulla compatibilit degli stati successivi

Grafo di compatibilit
Classe di compatibilit
Insieme di stati a coppie compatibili un poligono completo sul grafo di compatibilit Le classi di compatibilit non sono necessariamente disgiunte

Esempi di classi di compatibilit: ab la compatibilit tra due stati (nodi) sussiste solo se tutti i vincoli vengono accettati e utilizzati e ab d ae bc ae ac c a de b de a,b,c a,c,e c,d,e a,b c,e ... ab e ab d ae bc ae ac c a de b de

Grafo di compatibilit
Classe di massima compatibilit
Classe di compatibilit non contenuta in nessuna altra classe Sul grafo un poligono completo non contenuto in nessun altro poligono

Grafo di compatibilit
Insieme chiuso di classi di compatibilit
Insieme di classi di compatibilit i cui vincoli sono contenuti in almeno una classe dell'insieme Garantito che tutti i vincoli siano rispettati

a e Esempi di classi di massima compatibilit: a,b,c a,c,e c,d,e e ab d ae bc ae ac c ab a de b de ae ab bc d ae ac

de b de c c e ab d ae ac e

ab ae bc c

a ae bc

de b de c c

NO: il vincolo ae non contenuto in nessuna classe di compatibilit

OK

Grafo di compatibilit
Copertura della Tabella degli Stati
Insieme di classi di compatibilit per cui ogni stato della Tabella degli Stati contenuto in almeno una classe di compatibilit

Minimizzazione Stati
Trovare il pi piccolo insieme chiuso di classi di compatibilit che copre l'insieme di stati su cui la macchina definita

L'insieme di tutte le classi di massima compatibilit chiuso e copre l'insieme degli stati della macchina
Esempi: {{a,b,c} , {a,c,e} , {c,d,e}} {{a,b} , {b,c} , {a,c,e} , {c,d,e}} ab e ab d ae bc ae ac c a de b de

Se si associa uno stato ad ogni classe di massima compatibilit si ottiene una nuova macchina con un numero di stati Possibilmente minore di quello di partenza Non necessariamente minimo

Esempio copertura
ab e ab d ae bc ae ac c a de b de e ab d ae ac ab e ae bc c ae bc c c a a de b de

Algoritmo
1. Inizializzare una lista L vuota 2. Finch il grafo non vuoto:
a. Individuare e ordinare le classi di massima compatibilit presenti sul grafo per dimensione b. Individuare la classe di compatibilit massima di dimensione massima presente sul grafo c. Inserire nella lista L tutti i vincoli presenti nella classe di compatibilit considerata d. Eliminare dalla lista L e dal grafo i vincoli soddisfatti dalla classe considerata

Copertura ammissibile: A={a,b,c} B={a,c,e} C={c,d,e} Non minima Condivisione di stati tra diverse classi

Classi di massima compatibilit non disgiunte


non possibile realizzare la macchina minima associando un nuovo stato a una classe il num. di classi di max compatibilit un limite superiore al numero di stati della macchina minima

e. Eliminare dal grafo tutti i nodi (ed i relativi archi) appartenenti alla classe di compatibilit considerata che non appartengono a nessun vincolo presente nella lista L e/o nel grafo

Libert di assegnamento per le condizioni non specificate


la macchina minima non unica Algoritmi euristici

3. Le classi cos individuate formano una partizione di compatibilit (insieme di classi di compatibilit chiuso)

Algoritmo - Esempio
ab e ab d ae bc ae ac c a de b de e ab d ae bc ae ac c ab a de b de d c e ae a de b de d d e a e

Algoritmo - Esempio
grafo

L = {de} classi di massima compatibilit: abc ace cde classe selezionata: abc vincoli nella classe selezionata: de

L = {de} Copertura individuata: {abc , de}

Algoritmo - Esempio
a b c d e 0 e/0 d/0 e/x a/1 a/x 1 a/0 b/0 c/x a/1 b/x S0 S1 0 S1/0 S0/1 1 S0/0 S0/1 a b c d e f 00 b/0 b/0 f/1 f/x -/x -/x 01 c/x -/x a/0 e/1 e/1 b/0

Algoritmo Esempio 2
10 -/x e/1 b/x -/x e/1 b/0 11 d/0 d/0 e/1 a/0 d/0 -/x b c d e f X bf ce ce bc a

X bf ad X b

X X ab c

ad X d

X e

b e f sono incompatibili a e d sono incompatibili b e f sono incompatibili b e d sono incompatibili

Copertura individuata: {abc , de} S1 = {de} S0 = {abc}

b e c sono incompatibili a e f sono incompatibili c e e sono incompatibili a e e sono incompatibili a e e sono incompatibili d e e sono incompatibili

Algoritmo Esempio 2
a b c d e f 00 b/0 b/0 f/1 f/x -/x -/x 01 c/x -/x a/0 e/1 e/1 b/0 10 -/x e/1 b/x -/x e/1 b/0 11 d/0 d/0 e/1 a/0 d/0 -/x b c d e f X X X X a a b c d e f 00 b/0 b/0 f/1 f/x -/x -/x 01 c/x -/x a/0 e/1 e/1 b/0

Algoritmo Esempio 2
10 -/x e/1 b/x -/x e/1 b/0 11 d/0 d/0 e/1 a/0 d/0 -/x b c d e f X X X X a

X X X b

X X ab c

X X d

X e

X X X b

X X ab c

X X d

X e

b e f sono incompatibili a e d sono incompatibili b e f sono incompatibili b e d sono incompatibili b e c sono incompatibili a e f sono incompatibili c e e sono incompatibili a e e sono incompatibili a e e sono incompatibili d e e sono incompatibili f e ab

a b c d

Algoritmo Esempio 2
a b c d e f 00 b/0 b/0 f/1 f/x -/x -/x 01 c/x -/x a/0 e/1 e/1 b/0 10 -/x e/1 b/x -/x e/1 b/0 11 d/0 d/0 e/1 a/0 d/0 -/x S0 S1 S2 S3 00 S0/0 S1/0 S2/1 S2/x 01 S2/x S1/1 S0/0 S1/1 10 S1/1 S1/1 S0/0 -/x 11 S3/0 S3/0 S1/1 S0/0 a b c d e f 00 b/0 b/0 f/1 f/x -/x -/x 01 c/x -/x a/0 e/1 e/1 b/0

Algoritmo Esempio 2
10 -/x e/1 b/x -/x e/1 b/0 11 d/0 d/0 e/1 a/0 d/0 -/x S0 S1 S2 S3 00 S0/0 S1/0 S2/1 S2/x 01 S2/x S1/1 S0/0 S1/1 10 S1/1 S1/1 S0/0 -/x 11 S3/0 S3/0 S1/1 S0/0

Copertura individuata: {ab , be , cf , d} S0 = {ab} S1 = {be} S2 = {cf} S3 = {d}

Le classi non sono disgiunte: lo stato b appartiene sia a S0 che a S1 Al momento della realizzazione della macchina minima si deve stabilire la corrispondenza ogni volta che b compare come prossimo stato

Copertura individuata: {ab , be , cf , d} S0 = {ab} S1 = {be} S2 = {cf} S3 = {d}

Codifica degli stati


Numero di codifiche possibili:

Codifica degli stati


Codifica di lunghezza minima Sintesi a due livelli delle funzioni e Flip-flop di tipo D Obiettivo: minimizzare la logica combinatoria

(2 ) S! S
N

per 3 stati, codificati con 2 bit, si hanno 24 possibili codifiche per 4 stati, codificati con 2 bit, si hanno 24 possibili codifiche per 5 stati, codificati con 3 bit, si hanno 6720 possibili codifiche per 6 stati, codificati con 3 bit, si hanno 20160 possibili codifiche per 7 stati, codificati con 3 bit, si hanno 40320 possibili codifiche per 8 stati, codificati con 3 bit, si hanno 40320 possibili codifiche per 9 stati, codificati con 4 bit, si hanno 4151347200 possibili codifiche

Analisi esaustiva non praticabile metodi euristici

Codifica degli stati


Rules of thumb
Stati si e sj che a parit di ingressi hanno gli stessi stati prossimi:
codifiche adiacenti
semplificazione di

Stati si e sj che a parit di ingressi hanno le stesse uscite:


codifiche adiacenti
semplificazione di

Stati sj e sk tali che sj = (si , ia) e sk = (si , ib) con Hamming(ia , ib)=1
codifiche adiacenti
semplificazione di