Finite State Machines
Sistemas Embutidos – Versão Modificada
1.1
Máquinas de Estados Finitos e Autômatos
 São uma Forma Muito Usada para Representar Sistemas que
Possuem Memorização de Estados, não sendo Portanto Meramente
Combinacionais. Podem ser usados para Representar:
•
•
•
•

Protocolos em Redes
Comportamento de Circuitos Eletrônicos
Comportamento de Programas de Computador
Comportamento de um Processo de Fabricação
O Contrôle de Um Processo Físico Analógico de Uma forma Geral:
Entrada
Analógica
Num Sistema Analógico a
Somador/
Comparador
Saída
Analógica
PROCESSO
Realimentação
Sistemas Embutidos – Versão Modificada
Relação entre Saída e Entrada
Pode Ser Representada por
Equações Diferenciais e Integrais
Variáveis Assumem Valôres
Contínuos no Tempo
1.2
Lógica Combinacional e Lógica Sequencial
 Lógica Combinacional
• A saída depende apenas de uma combinação
lógica dos valores de entrada. A saída não
precisa esperar nenhum “clock” para ser
gerada. Saídas são geradas um tempo
pequeno (atraso da lógica) após as entradas
mudarem.
A
S
B
T
C
U
D
 Lógica Sequencial
• É a que faz uso de registros (memória)
• A saída pode depender apenas dos estados
dos flip-flops ou da combinação dos estados
e das entradas.
• Denomina-se “ESTADO” da lógica
sequencial ao conjunto de “1s” e “0s”
armazenados nos flip-flops (memória) da
lógica
• O relógio demarca o momento em que os
estados mudam.
Sistemas Embutidos – Versão Modificada
A
D
B
Q
S
Q
T
C
C
D
D
C
CK
1.3
Autômatos – Variáveis Assumem Valores Discretos no Tempo
Representação:
Reset
11/0
10/0
10/1
E3
10/0
Estado
00/0
A- Tabela de Transição
E0
E1
E2
E3
E4
01/1
E4
00/1
PRÓXIMO ESTADO
ENTRADAS
SAÍDAS (z)
ENTRADAS
x, y
00
E0
E3
E2
E3
E4
00/0
E2
11/0
E1
Entradas(x, y)
01/0
E0
11/1
01/0
Saída (z)
ESTADO
ATUAL
00/0
10/0
A- Diagrama de Transição
01
E2
E1
E2
E3
E0
Sistemas Embutidos – Versão Modificada
x, y
10
E0
E1
E2
E4
E2
11
E1
E2
E3
E3
E4
00
0
1
0
0
?
01
0
0
?
?
1
10
0
0
?
0
1
11
1
0
0
?
?
1.4
Autômatos Determinísticos e Não Determinísticos
 Autômato Finito Determinístico (AFD)
•
•
•
•
•
Um Conjunto Q de Elementos Denominados Estados
Um conjunto finito I denominado alfabeto de entrada
Uma função F de mapeamento de Q X I em Q
Um estado inicial q0 em Q
Um Conjunto (não vazio) de Estados Terminais Z
 Autômato Finito Não Determinístico (AFND)
•
•
•
•
•
Um Conjunto Q de Elementos Determinados Estados
Um Conjunto finito I denominado alfabeto de entrada
Uma função F de mapeamento de Q x I em subconjuntos de Q
Um conjunto de estados iniciais em Q
Um conjunto (não vazio) de estados terminais Z contido em Q
 NOTA: Um AFND pode estar em vários estados simultaneamente
(paralelismo – vários caminhos podem ser percorridos ao mesmo
tempo para chegar ao resultado final)
Sistemas Embutidos – Versão Modificada
1.5
Mealy and Moore Machines
Mealy Machine
Inputs
Next State
Combinatorial
Logic
Flip
Flops
Output
Combinatorial
Logic
Flip
Flops
Output
Combinatorial
Logic
Outputs
Clock
Moore Machine
Inputs
Next State
Combinatorial
Logic
Outputs
Clock
Sistemas Embutidos – Versão Modificada
1.6
Mealy Machine and “C” Encoding
I
Inputs
Next State
Logic
Flip
Flops
Outputs
Out1, Out2
Output
Logic
Q
Ck
Inputs
A, B
CK
State 0
State 1
A
B
OUT2
Sistemas Embutidos – Versão Modificada
State 2
State = Initial_State;
While (1) {
// Loop forever
Switch (State) {
case 0:
// Initial_State = 0
{
if (A==0 && B==1) {
State = 3;
Out2 = 1; // depends on inputs &
// present state
}
else
{
State = 4;
Out2 = 0;
}
break;
}
case 1:
// Second State
{
----------------}
1.7
Moore Machine and “C” Encoding
I
Inputs
Next State
Logic
Inputs
A, B
Flip
Flops
Outputs
Out1, Out2
Output
Logic
Q
Ck
CK
State 0
State 1
A
B
OUT2
Sistemas Embutidos – Versão Modificada
State 2
State = Initial_State;
While (1) {
// Loop forever
Switch (State) {
case 0:
// Initial_State = 0
{
Out1 = 0; // depends on state only
Out2 = 1; // depends on state only
if (A==0 && B==1) {
State = 3;
}
else
{
State = 4;
}
break;
}
case 1:
// Second State
{
Out2 = 0;
Out1 = 1;
--------}
1.8
Mealy Finite State Machine
Mealy and Moore
Representation for VHDL
Description
0/0
reset
1/1
1/0
S0/0
1/0
0/0
S1/0
1/0
S2/1
0/0
Sistemas Embutidos – Versão Modificada
1.9
VHDL Description of a FSM
entity sm is
std_logic;
port ( clk, In, reset : in
Mealy : out std_logic; Moore : out
std_logic );
end sm;
architecture behavior of sm is
states is (S0,S1,S2);
type
signal present_state, next_state :
states;begin state_register: process
(clk)
begin
if (clk'event and clk='1') then
if (reset = '1') then
present_state <= S1;
else
present_state <= next_state;
end if;
end if;
end process;
Sistemas Embutidos – Versão Modificada
next_state_transition: process (present_state, In)
begin
next_state <= present_state;
Mealy <= '0';
// JUST A SIGNAL NAME
Moore <= '0';
// JUST A SIGNAL NAME
case (present_state) is
when S0 =>
if (In='1') then
next_state <= S1;
else
next_state <= S0;
end if;
when S1 =>
if (In='0') then
next_state <= S2;
else
Mealy <= '1';
next_state <= S1;
end if;
when S2 =>
Moore <= '1';
if (In='1') then
next_state <= S2;
else
next_state <= S0;
end if;
end case;
end process;
1.10
Máquina de Mealy
Reset
A- Exemplo:
0/1
1/0
E0
1/1
1/0
0/0
1/0
E1
0/0
0/1
B- Tabela de Transição
Est.
E2
0/1
E4
E3
1/0
Próx. Estado/Saída
Atual
Entrada (x)
E
x=0
x=1
E0
E0/1
E2/0
E1
E3/1
E1/1
E2
E1/0
E4/1
E3
E0/0
E2/0
E4
E1/1
E3/0
Sistemas Embutidos – Versão Modificada
1.11
Máquina de Moore
Reset
1
A- Exemplo:
0
E0/1
1
0
0
E3/0
1
E4/0
0
B- Tabela de Transição
Est.
E2/1
Próx. Estado
Saída (y)
Atual
Entrada (x)
E
x=0
x=1
E0
E0
E2
1
E1
E3
E1
0
E2
E1
E4
1
E3
E0
E2
0
E4
E1
E3
0
Sistemas Embutidos – Versão Modificada
1
0
1
E1/0
y = F (E)
1.12
Algumas Características de Máquinas Não Determinísticas
(simplificando inicialmente)
 Os estados são equivalentes a variáveis booleanas em
um programa
 Sua construção é mais intuitiva que a determinística
 A atribuição de estados é simples, normalmente
associados com as saídas. Normalmente não se usa
codificação de estados.
 As equações são extraídas diretamente do diagrama,
sem tabelas ou mapas
 Máquinas não determinísticas são ineficientes para
sequências de contagem pois usam mais flip-flops que
máquinas determinísticas com codificação de estados.
Sistemas Embutidos – Versão Modificada
1.13
Geração das Equações de Estado
 Em Máquinas Determinísticas
• Atribui-se a Codificação dos Estados
• Mapeiam-se os Estados e Eventos em uma Tabela Verdade
• Simplifica-se com o Mapa de Karnaugh (ou programa específico)
 Em Máquinas Não Determinísticas:
•
•
•
•
Cada estado é representado por um bit (“One Hot Encoding”)
Cada termo produto é o produto do evento com o estado origem
O estado é ativado pelo “ou” dos produtos que chegam a ele
O estado é desativado pelos produtos que efetivamente o
abandonam. Na verdade, um estado é desativado pela ativação
de um estado gerado a partir dele. Portanto, não é necessário
especificar as equações para desativar estados.
Sistemas Embutidos – Versão Modificada
1.14
Mealy x Moore
Mealy Machine:
• Output is specified based on transitions, that is, this type of machine
model should be used when the output signals must change almost
simultaneously (combinational delay logic only) with the input signals
and not only with state transitions. The designer has to recognize the
need for this type of behavior.
• There can be “glitches” on output signals because input signals are
allowed to change at any time.
• Mealy machines typically have fewer states. Because it can associate
outputs with transitions, a Mealy machine can often generate the same
output sequence in fewer states than a Moore machine.
Moore Machine: output is specified based on states only. This
means that output signals will vary only just after clock
transitions and not at any moment. This minimizes the
possibilities of glitches on output signals.
The two are equivalent, one can be constructed from the other
Sistemas Embutidos – Versão Modificada
1.15
Moore/Mealy
 More States in Moore Than in Behavioral
Equivalent Mealy
 Mealy
• Usually pulse output (during transition)
 Moore
• Usually level output (during state)
Sistemas Embutidos – Versão Modificada
1.16
State Encoding
 Binary Coded State
•
•
•
•
n flip-flops used to store 2n states
Most efficient
Need to account for unused states
The number of flip-flops is reduced by
enconding states (e.g: 3 flip-flops -> 8
states)
3 bits – 8 states
000 – S0
001 – S1
010 – S2
011 – S3
100 – S4
101 – S5
110 – S6
111 – S7
 “One-Hot” Encoding
• Requires one flip-flop (one bit) for each
state (uses more flip-flops than the
minimum required)
• There is no need for state decoding logic
• The flip-flop that stores the state can also
be used as an output signal.
• Very good encoding for simple FSMs.
• Maps well to FPGAs since each CLB
contains a FF
Sistemas Embutidos – Versão Modificada
One bit for each
state
001 – state 1
010 – state 2
100 – state 3
1.17
Washing Machine Control Panel
LIGADA
Molho 10
Enxaguar
RESET
OPERANDO
INICIAR
AG
AA
EA
TA
Entradas (de Sensores e Botões de Contrôle):
MC
Sinais de Saída :
RESET – Botão Reset – Reinicia Programa
LED Ligada
M10 – Especifica Molho 10 minutos
LED Operando
INIC – Botão Iniciar após escolher Molho
ou Enxaguar
LED M10 – Molho 10
LED - Enxaguando
LED AG - Agitando
ENX – Enxaguar
LED AA – Abre_Água
TA – Tampa_Aberta
LED EA – Esvazia_Água
CC – Cesto_Cheio
LED TA – Tampa_Aberta
CV – Cesto_Vazio
LED MC – Motor_Centrifugar
Sistemas Embutidos – Versão Modificada
1.18
Download

Maq_Estado_Finito