47
Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Microelettronica e Bioingegneria (EOLAB) Macchine a stati finiti sincrone Modulo 6

Macchine a stati finiti sincrone - people.unica.it€¦ · equazioni caratteristiche dei flip-flop. Noi utilizzeremo principalmente macchine implementate con flip-flop D che hanno

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica

Laboratorio di Microelettronica e Bioingegneria (EOLAB)

Macchine a stati finiti sincrone

Modulo 6

A.A. 2013/2014 Elettronica M. Barbaro

Macchine a stati finiti

Dall’esempio del telecomando si può dedurre che, per conoscere l’uscita di una rete sequenziale, non è sempre necessario conoscere l’intera sequenza di tutti gli ingressi passati

In genere, tutta la sequenza passata può essere riassunta in uno stato interno che contiene tutte le informazioni necessarie riguardo gli ingressi passati che consentono di determinare univocamente la nuova uscita in funzione dei nuovi ingressi

Nel caso del telecomando tale stato interno è semplicemente il canale che si sta guardando attualmente: basta conoscere tale informazione per sapere quale canale sintonizzare dopo la pressione del tasto Avanti o Indietro

A.A. 2013/2014 Elettronica M. Barbaro

Macchine a stati finiti

Lo stato è definito da un insieme di variabili di stato

che sono tutte e sole le informazioni necessarie per

tenere conto degli ingressi passati

Ad esempio, per il telecomando, le variabili di stato

saranno i bit necessari per codificare il canale (se ho

100 canali sono necessari 7 bit)

Il numero di stati è necessariamente finito, dato che lo

stato, in un sistema digitale, deve essere codificato con

N bit che danno luogo a 2N possibili diverse

combinazioni

Per tale motivo si parla di Macchine a Stati Finiti (FSM :

Finite State Machine)

A.A. 2013/2014 Elettronica M. Barbaro

FSM sincrone

In una macchina a stati sincrona si passa da uno stato all’altro solo in corrispondenza di un segnale di sincronismo fornito da un segnale di clock

Ad ogni colpo di clock (clock tick) vengono valutati i nuovi ingressi e si decidono le nuove uscite in funzione dello stato attuale (present-state o current-state) della macchina. Contemporaneamente viene valutato il nuovo stato che la macchina dovrà assumere (next-state) per aggiornare la storia degli ingressi col nuovo ingresso

Nel telecomando, ad ogni colpo di clock si verifica se è premuto il tasto Avanti o Indietro ed in tal caso bisogna risintonizzare il televisore sul nuovo canale (uscita) e contemporaneamente memorizzare come canale attuale il nuovo visualizzato (next-state)

A.A. 2013/2014 Elettronica M. Barbaro

Struttura di una macchina a stati

Il funzionamento descritto precedentemente può essere

realizzato con una struttura composta da:

Una logica di aggiornamento dello stato, ossia una rete

combinatoria che consente di calcolare il nuovo stato in

funzione degli ingressi attuali e dello stato attuale

Una logica di generazione delle uscite, ossia una rete

combinatoria che consente di calcolare le nuove uscite in

funzione degli ingressi attuali e dello stato attuale (macchina di

Mealy) oppure del solo stato interno (macchina di Moore)

Degli elementi di memoria per la memorizzazione dello stato

attuale, tali elementi di memoria sono costituiti da flip-flop

perché si vuole che lo stato cambi in modo sincrono con il

clock

A.A. 2013/2014 Elettronica M. Barbaro

Macchine di Mealy

F Next-State

Logic

State

Memory

G Output

Logic

inputs

outputs

clock

excitation

current-state

Lo schema generico di una macchina a stati finiti di Mealy:

F: logica combinatoria per la generazione dello stato successivo (dipende dallo

stato presente e dagli ingressi)

G: logica combinatoria per la generazione delle uscite (dipende dallo stato

presente e dagli ingressi)

A.A. 2013/2014 Elettronica M. Barbaro

Macchine di Moore

F Next-State

Logic

State

Memory

G Output

Logic

inputs

outputs

clock

excitation

current-state

Lo schema generico di una macchina a stati finiti di Moore:

F: logica combinatoria per la generazione dello stato successivo (dipende dallo

stato presente e dagli ingressi)

G: logica combinatoria per la generazione delle uscite (dipende SOLO dalo stato

presente)

A.A. 2013/2014 Elettronica M. Barbaro

FSM di Mealy con uscite registrate

F

Next-State

Logic

G

Output

Logic

inputs outputs State

Memory

clock

current-state

Per fare in modo che le uscite cambino solo in predeterminati istanti di tempo, in

una macchina di Mealy si possono registrare le uscite, ossia aggiungere dei

registri (flop-flop). Tali registri si chiamano Output Pipeline Memory

Output

Pipeline

Memory

excitation

A.A. 2013/2014 Elettronica M. Barbaro

Macchine di Moore e Mealy

Il modello di Moore e quello di Mealy sono equivalenti, nel senso che è sempre possibile passare dalla descrizione di una macchina a stati in termini di Moore ad una equivalente in termini di Mealy (e viceversa)

L’equivalenza la si valuta dal punto di vista del comportamente complessivo della macchina, ossia dal fatto che per una stessa sequenza di ingressi genera una stessa sequenza di uscite

Internamente, anche essendo equivalenti, le due versioni potrebbero differire (ad esempio avere numero diverso di stati)

A.A. 2013/2014 Elettronica M. Barbaro

Macchine a stati: ANALISI

L’analisi di una generica macchina a stati finiti

parte dallo schematico del circuito descritto in

termini di porte logiche e flip-flop

Da tale schematico si ricavano una serie di

tabelle e rappresentazioni grafiche che

descrivono univocamente il comportamento

della macchina

Eseguendo la procedura al rovescio è possibile

sintetizzare la FSM desiderata

A.A. 2013/2014 Elettronica M. Barbaro

Macchine a stati: ANALISI

L’analisi prevede 3 passaggi

1) Determinazione della logica di aggiornamento

dello stato (F, next-state logic) e della logica di

generazione delle uscite (G, output logic)

2) Costruzione della Tabella degli Stati e delle

Uscite (State/output table) che specifica

univocamente il nuovo stato (next-state) e le uscite

per ogni possibile combinazione di ingressi e stato

attuale (current-state)

3) Disegno del Diagramma degli Stati (state

diagram)

A.A. 2013/2014 Elettronica M. Barbaro

Macchine a stati: ANALISI

Per determinare la logica di aggiornamento dello stato (F) è necessario ricordare le equazioni caratteristiche dei flip-flop.

Noi utilizzeremo principalmente macchine implementate con flip-flop D che hanno la più semplice equazione caratteristica: Q(t+1) = D

Alcuni testi usano un simbolismo leggermente diverso (più cmpatto) e rappresentano il nuovo stato assunto dal flip-flop con un asterisco, quindi: Q* = D

A.A. 2013/2014 Elettronica M. Barbaro

Determinazione di F

La determinazione della logica F di

aggiornamento si basa sull’uso delle equazioni

caratteristiche dei flip-flop e dall’ispezione del

circuito secondo i seguenti passaggi

1) Si identificano le equazioni algebriche che

determinano gli ingressi dei vari flip-flop ossia le

Excitation Equations

2) Applicando le equazioni caratteristiche dei flip-

flop si ricavano le espressioni algebriche che

determinano le nuove variabili di stato ossia le

Transition Equations

(Nel caso di flip-flop D, poiché Q*=D le equazioni di eccitazione e

di transizione coincidono)

A.A. 2013/2014 Elettronica M. Barbaro

Determinazione di G

Per determinare G basta identificare le

equazioni algebriche che determinano tutte le

uscite in funzione degli ingressi attuali e delle

variabili di stato

A.A. 2013/2014 Elettronica M. Barbaro

segnale

di clock

ANALISI: esempio

D Q

D Q

IN

clk

Q0

Q0’

Q1

Q1’

Z

input

output

State

variables F

G

State-memory

A.A. 2013/2014 Elettronica M. Barbaro

Esempio: identificazione di F

Per identificare F bisogna innanzitutto

determinare le equazioni di eccitazione

(excitation equations) ossia gli ingressi dei flip-

flop:

D0 = IN (Q0 + Q1)

D1 = IN Q0’

Quindi, conoscendo l’equazione caratteristica

dei flip-flop D (Q*=D), si ricavano le equazioni di

transizione (transition equations):

Q0* = IN (Q0+ Q1)

Q1* = IN Q0’

A.A. 2013/2014 Elettronica M. Barbaro

Esempio: identificazione di G

Analogamente si ricava G per ispezione grafica,

ricavando così l’equazione di uscita (output

equations):

Z = IN’ (Q0 + Q1)

A.A. 2013/2014 Elettronica M. Barbaro

Tabella delle transizioni

Per arrivare a definire la tabella

degli stati e delle uscite si

definisce prima di tutto la

tabella delle transizioni, ossia

una tabella che definisce, per

ogni combinazione di ingressi e

variabili di stato quali sono le

nuove variabili di stato (quindi

una rappresentazione tabellare

della F)

IN

Q1Q0 0 1

00 00 10

01 00 01

10 00 11

11 00 01

Q1*Q0*

Q0* = IN (Q0 + Q1)

Q1* = IN Q0’

Next-state

Current-state

Input

Transition Table

A.A. 2013/2014 Elettronica M. Barbaro

Tabella degli stati

Dalla tabella delle transizioni,

si ottiene la tabella degli stati

semplicemente assegnando un

nome simbolico (alfanumerico)

a ciascuna differente

combinazione delle variabili di

ingresso.

Ad esempio:

IN

S 0 1

A A C

B A B

C A D

D A B

S* 00 = A

01 = B

10 = C

11 = D State Table Nomi degli stati

(state names)

A.A. 2013/2014 Elettronica M. Barbaro

Tabella degli stati e delle uscite

IN

S 0 1

A A,0 C,0

B A,1 B,0

C A,1 D,0

D A,1 B,0

S*

Z = IN’ (Q0 + Q1)

Infine la tabella degli stati e

delle uscite si ricava dalla

tabella degli stati aggiungendo

le informazioni sulle uscite,

quindi per ogni combinazione di

stato attuale ed ingressi si

elenca sia lo stato successivo

che l’uscita (separati da

virgole).

La tabella degli stati e delle

uscite riassume TUTTE le

informazioni sul

comportamento della FSM (le

funzioni F e G) State/output Table

A.A. 2013/2014 Elettronica M. Barbaro

Diagramma degli stati

Il diagramma di stato è semplicemente una rappresentazione grafica della tabella degli stati e delle uscite

Ogni stato possibile viene rappresentato con un cerchio, il cerchio viene etichettato con il nome dello stato

I cerchi sono connessi da frecce che definiscono la transizione da uno stato all’altro causata da una particolare combinazione di ingressi

Le frecce sono etichettate con gli ingressi che causano la transizione

Se la macchina è di Mealy le uscite vengono rappresentate sulle frecce, affianco alla combinazione di ingresso (separate da slash)

Se la macchina è di Moore le uscite sono rappresentate dentro il cerchio perché le uscite dipendono solo dallo stato e non dagli ingressi

A.A. 2013/2014 Elettronica M. Barbaro

Diagramma degli stati

A

B

C

D

0/0

1/0

0/1

1/0

0/1

1/0 0/1

1/0

Se sono nello stato A e

l’ingresso IN è 1 avrò una

transizione verso A con

uscita pari a 0

Se sono nello stato

B e l’ingresso IN è 0

avrò una transizione

verso A con uscita

pari a 1

A.A. 2013/2014 Elettronica M. Barbaro

Diagramma degli stati

Quando il numero di ingressi cresce è scomodo disegnare una frecce per ogni combinazione di ingresso, anche perché spesso più di una combinazione di ingressi causa la stessa transizione

Perciò si ricorre ad una rappresentazione leggermente differente, etichettando le frecce con una espressione di transizione (transition expression) che risulta vera per tutte e sole le combinazioni di ingressi che causano quella particolare transizione

Le espressioni di transizione devono essere mutuamente esclusive ed esaustive ossia:

Non esistono due espressioni di transizione che sono contemporaneamente 1 per la stessa combinazione di ingressi (non possono esserci 2 stati successivi differenti per uno stesso stato di partenza ed uno stesso ingresso)

Per ogni possibile combinazione di ingresso una delle espressioni di transizione deve essere 1 (lo stato successivo deve essere sempre definito)

A.A. 2013/2014 Elettronica M. Barbaro

Esempio

D Q A B

clk

Z = Q

Come esercizio, provare ad analizzare la seguente

macchina a stati

A.A. 2013/2014 Elettronica M. Barbaro

Esempio: soluzione

Excitation Equations

D = (AB)Q

State Equations

Q* = (AB)Q

Output Equations

Z = Q (Moore)

State names

0 = S0

1 = S1

AB

S 00 01 10 11 Z

S0 S0 S1 S1 S0 0

S1 S1 S0 S0 S1 1

S*

S0 S1

01,10

01,10

00,11

00,11

A.A. 2013/2014 Elettronica M. Barbaro

Esempio: soluzione

S0/0 S1/1

A’B+AB’

AB+A’B’

In questo esempio gli ingressi sono 2 e possiamo quindi

etichettare le frecce (o archi) con le espressioni di

transizione.

AB+A’B’

A’B+AB’

In pratica l’espressione di transizione

corrisponde alla somma dei mintermini

che corrispondono alle combinazioni che

causano quella transizione

(eventualmente minimizzata)

A.A. 2013/2014 Elettronica M. Barbaro

ANALISI: riassunto

1) Determinare le equazioni di eccitazione dei flip-flop

2) Sostituire le equazioni di eccitazione nelle equazioni caratteristiche dei flip-flop per ottenere le equazioni di transizione

3) Usare le equazioni di transizione per costruire la tabella di transizione

4) Dare dei nomi alle combinazioni delle variabili di stato per ottenere la tabella degli stati

5) Determinare le equazioni delle uscite

6) Aggiungere i valori di uscita alla tabella degli stati per ogni stato (Moore) o per ogni combinazione stato/ingresso (Mealy) per ottenere la tabella degli stati e delle uscite

7) (Opzionale) Disegnare il diagramma degli stati

A.A. 2013/2014 Elettronica M. Barbaro

Macchine a stati: SINTESI

La SINTESI di una macchina a stati finiti si basa esattamente sullo stesso procedimento dell’analisi ma percorso al contrario, quindi: 1) (Opzionale) Si disegna una diagramma degli stati che

descrive il comportamento della macchina

2) Si definisce la tabella degli stati e delle uscite

3) (Opzionale) Si minimizza il numero di stati

4) Si assegna un codice binario a ciascuno stato

5) Sostituendo tale codice si ottiene la tabella delle transizioni e delle uscite

6) Si scelgono i flip-flop da usare

7) Si ricavano le equazioni di eccitazione per i flip-flop (F) minimizzando con le mappe di Karnaugh

8) Si ricavano le equazioni di uscita (G) minimizzando con le mappe di Karnaugh

9) Si disegna il diagramma logico (porte logiche e flip-flop)

A.A. 2013/2014 Elettronica M. Barbaro

Esempio

Progetto di una macchina a stati finiti con un ingresso A,

in grado di identificare quando, sull’ingresso A, si è

presentata una sequenza di 3 o più 1 consecutivi. Se la

condizione è verificata l’uscita è portata a 1, altrimenti a 0.

A.A. 2013/2014 Elettronica M. Barbaro

Sintesi: concezione del diagramma

Posso risolvere il problema così: 1) Inizio da uno stato S0 dove si suppone che sia arrivata uno

zero quindi la sequenza cercata non si è verificata

2) Se mi arriva A=1 mi sposto in uno stato S1 che mi dice che è arrivata una sequenza di un solo 1

3) Se arriva ancora A=1 mi sposto ad uno stato S2 che memorizza il fatto che è arrivata una sequenza di 2 uno consecutivi

4) Se arriva ancora A=1 mi sposto in uno stato S3 che indica l’arrivo della sequenza cercata quindi porto alta l’uscita. Se continua ad arrivare A=1 rimango in S3 perché sono interessato a sequenze di 3 o più 1 consecutivi

5) Da qualunque stato, l’arrivo di uno 0 interrompe la sequenza quindi mi riporta allo stato S0

Posso quindi implementare il circuito con una macchina a 4 stati (S0, S1, S2, S3, S4)

A.A. 2013/2014 Elettronica M. Barbaro

Sintesi: diagramma

S0/0

S3/1

S1/0

S2/0

0

1

0

1

0

1 0

1

Il diagramma che

descrive il

comportamento

della macchina è

questo.

Come si vede, l’arrivo di

uno 0 mi riporta sempre

allo stato S0 perché

interrompe la sequenza

di 1

L’arrivo di 3 uno

consecutivi mi fa

passare da S0 a S1, da

S1 a S2 e da S2 a S3

A.A. 2013/2014 Elettronica M. Barbaro

Sintesi: tabella di stati e uscite

A

S 0 1 Z

S0 S0 S1 0

S1 S0 S2 0

S2 S0 S3 0

S3 S0 S3 1

S*

Dal diagramma è facile

scrivere la tabella degli stati e

delle uscite.

Avrei potuto anche progettare

la macchina partendo

direttamente dalla tabella

anche se in genere è più

semplice concepire il

diagramma

Questa fase (concezione del diagramma o della tabella) è

la più CREATIVA e complessa e non esistono regole fisse

A.A. 2013/2014 Elettronica M. Barbaro

Sintesi: tabella delle transizioni

A

Q1Q0 0 1 Z

00 00 01 0

01 00 10 0

10 00 11 0

11 00 11 1

Q1*Q0*

Dalla tabella degli stati si

ottiene quella delle transizioni

semplicemente assegnano un

codice binario a ciascuno

stato e sostituendolo nella

tabella.

Da questo punto in poi la fase di progettazione si può

automatizzare perché richiede semplicemente l’identificazione

di F e G e la loro sintesi con mappe di Karnaugh

A.A. 2013/2014 Elettronica M. Barbaro

Sintesi: scelta dei flip-flop

La scelta più semplice, per i flip-flop, consiste

nell’usare il flip-flop D che hanno la più semplice

equazione caratteristica

Con i flip-flop D l’identificazione di F è

immediata a partire dalla tabella delle

transizioni:

Si crea un mappa di Karnaugh per ingresso D di flip-

flop, gli ingressi della mappa sono le variabili di

stato stesse e gli ingressi della macchina

Gli 1 e gli 0 della mappa di ciascun ingresso D si

ottengono dalla tabella delle transizioni perché

Q*=D

A.A. 2013/2014 Elettronica M. Barbaro

Sintesi: rete F

0 2 6 4

1 3 7 5

0 2 6 4

1 3 7 5

A

0

00 01 11 10

0

Q1Q0

00 01 11 10 Q1Q0

A

1

0 0 0

0 1

D0 = A(Q1 + Q0’)

D1 = A(Q1 + Q0)

Come si vede, basta identificare i

nuovi valori di ciascuna variabile

per ciascuna combinazione di

ingressi e stato

0

0

0 0 0 0

A.A. 2013/2014 Elettronica M. Barbaro

Sintesi: rete G

La sintesi della rete G è

assolutamente analoga.

In questo caso è

particolarmente banale anche

perché la macchina è di

Moore (l’uscita dipende solo

dallo stato) e non c’è neanche

bisogno di usare le mappe

per minimizzare

Z = Q1Q0

A.A. 2013/2014 Elettronica M. Barbaro

Sintesi: diagramma logico

D Q

D Q

clk

Q0

Q1

Z

A

segnale

di clock

input

output

State

variables

F

G

State-memory

A.A. 2013/2014 Elettronica M. Barbaro

Minimizzazione degli stati

In questo esempio, già semplice, abbiamo saltato la fase di minimizzazione degli stati

La minimizzazione consiste nell’eliminare tutti gli stati ridondanti ossia sostituire due stati equivalenti con un unico stato

Due stati sono equivalenti quando: Hanno le stesse uscite (Moore) per qualsiasi

combinazione degli ingressi (Mealy)

Ogni transizione da ciascuno dei due stati conduce o allo stesso stato o a due stati che sono fra loro equivalenti

Due stati equivalenti possono essere sostituiti da uno solo dei due

A.A. 2013/2014 Elettronica M. Barbaro

Minimizzazione

Esistono metodi algoritmici per minimizzare una tabella

degli stati che noi non vedremo

In generale, per pochi stati e pochi ingressi si riesce a

minimizzare per ispezione, trovando prima stati che

hanno le stesse uscite e poi verificando che le loro

transizioni conducano a stati uguali o equivalenti

La minimizzazione non è sempre utile, infatti spesso

ridurre il numero di stati non significa ridurre il numero di

flip-flop (se passo da 7 a 5 stati mi servono sempre 3

flip-flop)

Inoltre, nelle tecnologie moderne, avere un flip-flop in

più può essere un costo accettabile se questo semplifica

e velocizza la fase di progettazione

A.A. 2013/2014 Elettronica M. Barbaro

Minimizzazione: esempio

X

S 0 1

A A,0 B,0

B C,0 D,0

C A,0 D,0

D E,0 F,1

E A,0 F,1

F G,0 F,1

G A,0 F,1

S*

Si vede subito che gli stati E e G

hanno stesse uscite e stesso stato

destinazione. Sono dunque

equivalenti (posso sostituire G con

E in ogni punto della tabella)

Analogamente D e F hanno stesse

uscite e transizioni che portano o

allo stesso stato (F) oppure a due

stati equivalenti (E e G) quindi sono

equivalenti e posso sostituire F con

D.

La tabella non è ulteriormente

minimizzabile

A.A. 2013/2014 Elettronica M. Barbaro

Minimizzazione: esempio

X

S 0 1

A A,0 B,0

B C,0 D,0

C A,0 D,0

D E,0 D,1

E A,0 D,1

S*

Questa è la tabella risultante dalla

minimizzazione.

Si vede che non si può minimizzare

ulteriormente.

Come si vede siamo passati da 7 a

5 stati che richiedono comunque 3

variabili di stato e 3 flip-flop

A.A. 2013/2014 Elettronica M. Barbaro

Assegnazione degli stati

Nel nostro esempio abbiamo scelto

un’assegnazione di codice binario a ciascuno

stato senza alcun ragionamento, abbiamo cioè

scelto la strada più semplice ed assegnato a

ciascuno stato un numero binario progressivo

Questa non è necessariamente la strategia

migliore, possono esserci altri modi di codificare

gli stati che permettono di avere circuiti più

robusti oppure con una logica di aggiornamento

dello stato o generazione delle uscite più

semplice

A.A. 2013/2014 Elettronica M. Barbaro

Assegnazione degli stati

Alcuni criteri ragionevoli sono:

Usare un codice semplice per lo stato iniziale, che sia facile da

forzare al momento del reset (ad esempio lo stato 000…00

ottenibile con dei flip-flop con reset)

Minimizzare il numero di variabili che cambiano ad ogni

transizione

Massimizzare il numero di variabili che NON cambiano in un

gruppo di stati correlati

Se ci sono stati inutilizzati scegliere fra le combinazioni a

disposizione le “migliori” (ad es. che minimizzano la logica)

Decomporre le variabili di stato in modo che i singoli bit o

gruppi di bit abbiamo un significato particolare rispetto al

comportamento della FSM

Non è detto che sia possibile rispettarli tutti, né esiste un

metodo univoco per scegliere la codifica migliore

A.A. 2013/2014 Elettronica M. Barbaro

Assegnamento degli stati

I principali stili di codifica sono: 1) Simplest: gli stati sono codificati col minor

numero di bit usando i numeri binari in ordine crescente

2) Decomposed: si cerca di dare a ciascun bit un significato preciso legato al comportamento della macchina

3) One-hot: si usano tanti flip-flop quanti sono gli stati, in ogni stato uno solo dei flip-flop è pari a 1

4) Almost one-hot: come il one-hot ma si usa un flip-flop in meno e si codifica lo stato iniziale con tutti zeri

5) Gray: si usa il codice si Gray, ossia si fa in modo che nelle transizioni cambi un solo bit (se possibile)

A.A. 2013/2014 Elettronica M. Barbaro

Assegnamento: esempio

Nel caso del nostro esempio:

Assegnamento

S Simplest Gray Decomposed One-hot Almost

One-hot

S0 00 00 000 0001 000

S1 01 01 001 0010 001

S2 10 11 011 0100 010

S3 11 10 111 1000 100

Da un codice al successivo cambia un

solo bit

Uso il bit più significativo per indicare il

raggiungimento della sequenza

Un bit per ogni stato, uno solo a 1

Un bit per gli stati S1, S2, S3 mentre S0

è rappresentato con tutti zeri

A.A. 2013/2014 Elettronica M. Barbaro

Stati inutilizzati

Quando il numero di stati non è una potenza di 2 ci

saranno sempre degli stati inutilizzati, ossia delle

combinazioni delle variabili di stato a cui non

corrisponde uno stato della FSM

In questo caso nelle mappe di Karnaugh usate per la

sintesi compariranno dei don’t-care (per quelle celle

corrispondenti a stati inutilizzati)

Si possono fare due scelte nell’assegnare i don’t-care:

Minimal cost: sfruttarli per minimizzare la mappa, dando per

scontato che quegli stati non siano mai raggiunti

Minimal risk: fare in modo che da ogni stato inutilizzato lo

stato successivo sia sempre lo stato iniziale, in modo che, se

per qualche ragione (rumore o altro), il circuito finisse in quello

stato, ricomincerebbe sempre a funzionare correttamente

A.A. 2013/2014 Elettronica M. Barbaro

Reset

Non abbiamo fino a qui considerato un problema: lo stato iniziale di un flip-flop non appena acceso è indeterminato, ossia non si sa se contiene uno 0 o un 1

Quindi, quando accendo il circuito, non conosco lo stato in cui mi trovo, questa indeterminatezza può compromettere il funzionamento del circuito se la macchina non è stata concepita correttamente

Per evitare questo problema si dotano sempre le FSM di un segnale di reset che forza la macchina in uno stato noto da cui può partire l’elaborazione

Il reset non è, tipicamente, uno degli ingressi della FSM, ma un segnale a parte che va direttamente a pilotare i flip-flop di memorizzazione azzerandoli (se lo stato iniziale, come usuale, coincide con 000…000)