Title: MACCHINE A STATI FINITI
1MACCHINE A STATI FINITI
- Antonio Deledda
- Corso di Elettronica dei Sistemi Digitali LS
- AA 2005-2006
2Macchina a Stati Finiti (Fsm)
Y(n)f(x(n)) gt Sistema Combinatorio
Y(n)f(x(n),x(n-1),x(n-2),..) gt Macchina a
Stati finiti
3Struttura di una FSM
- La rete combinatoria realizza le funzioni ? e d
(tabelle di veritĆ ) - Rete sincrona LLC (Level Level Clocked)
- La macchina cambia stato ad ogni fronte attivo
del clock (ogni nuovo colpo di clock) - I registri di stato (FF) memorizzano il valore
presente delle variabili di stato
4Macchina a Stati Finiti
DESCRIZIONE DI MOORE
DESCRIZIONE DI MEALY
S(n1) F( x(n) , S(n) ) Y(n) F( S(n) , X(n) )
S(n1) F( x(n) , S(n) ) Y(n) F( S(n) )
5Definizioni
- Una FSM ĆØ una macchina di Moore se, ad ogni
istante, il valore delle uscite dipende
esclusivamente dallo stato attuale e non dallo
stato attuale degli ingressi. - Una FSM ĆØ una macchina di Mealy se, ad ogni
istante, il valore delle uscite dipende sia dallo
stato attuale che dall' attuale valore degli
ingressi. - Durante la permanenza in uno stato, una
variazione dell'ingresso di una macchina di Mealy
puĆ² ripercuotersi immediatamente sull'uscita. - Una macchina di Moore puĆ² essere trasformata in
una macchina di Mealy con lo stesso numero di
stati. - Una macchina di Mealy puĆ² essere trasformata in
una macchina di Moore con un numero di stati
generalmente maggiore.
6FSM Implementazione Fisica(Mealy)
S(n1)
STATO
S(n)
X(n)
STATO
S(n)
Y(n)
X(n)
(Glitch)
(Glitch)
7FSM Implementazione Fisica(Moore)
S(n1)
STATO
S(n)
X(n)
Y(n)
(Glitch)
(No Glitch)
8FSM Implementazione VHDL(Moore)
process(cs,ns,ingressi) begin case cs is
when Agt out lt uscita1
if ingressi then ns
lt A elsif ingressi then
ns lt B
else ns lt C
end if when Bgt out lt uscita2
ns lt C When others gt outlt
uscita3 if ingressi
then ns lt A
else
ns lt B end if End
case
Architecture struct of FSM is type stato is
(a,b,c,d) signal cs,ns stato Begin --
Processo sequenziale process(clk,reset)
begin if reset'1' then cs lt a
elsif clk'event and clk'1' then cs
lt ns end if end process
9FSM Implementazione VHDL(Mealy)
process(cs,ns,ingressi) begin case cs is
when Agt if ingressi
then out lt uscita1
elsif ingressi then
out lt uscita2
else
outuscita3 end if
if ingressi then
ns lt A elsif
ingressi then ns lt B
else
ns lt C end if
.. End case
Architecture struct of FSM is type stato is
(a,b,c,d) signal cs,ns stato Begin --
Processo sequenziale process(clk,reset)
begin if reset'1' then cs lt a
elsif clk'event and clk'1' then cs
lt ns end if end process