Você está na página 1de 55

Mquinas de Estados Finitos - FSM Introduo e Projeto

Mquinas de Estados - Definio

Mquina de Estados Finitos ou Finite State Machine (FSM)


Uma

mquina de estados representa um sistema como um conjunto de estados, a transio entre eles, em conjunto com as entradas e sadas associadas. de estados podem ser utilizadas em outras situaes alm de projeto de circuitos digitais e arquitetura de computadores.

Mquinas

4453F-02 - Eletrnica Digital (ECA)

Finite State Machines

Qualquer circuito com memria uma Mquina de Estados Finitos


Computadores

podem ser vistos como grandes Mquinas de Estados

O projeto de Mquinas de Estados Finitos envolve


Definio

dos Estados Definio da Transio entre Estados Otimizao / Minimizao dos Estados e Transies

4453F-02 - Eletrnica Digital (ECA)

Aplicaes - Exemplos

Circuitos Seqenciais Complexos


Controladores

de seqncias.

Lavadora de Roupas Fornos de Microondas

Videocassetes
CD Players

4453F-02 - Eletrnica Digital (ECA)

Exemplos

Mquina de Lavar Roupa Seqncia de Estados


Desligada Enchendo Molho
Level Sensor

(Cheia) Lavando (Batendo) Molho (Cheia) Esvaziar Centrifugar Desligar


4453F-02 - Eletrnica Digital (ECA) 5

Diagrama de Estados - Telefone


IDLE (telefone no gancho)

4453F-02 - Eletrnica Digital (ECA)

Diagrama de Estados

Dispensador de Refrigerantes

4453F-02 - Eletrnica Digital (ECA)

Termos e Definies

Diagrama de Estados
Mostra

a forma e a funcionalidade de uma mquina de estados.

Estados
Conjunto

de valores unicamente identificveis.

Transio de Estados
A

troca do estado atual para o prximo estado baseado nas variveis de entrada.

4453F-02 - Eletrnica Digital (ECA)

Termos e Definies

Estado Atual

O estado onde a FSM est em determinado momento. O estado para o qual a FSM faz a prxima transio determinada pelas entradas no momento em que ocorre um sinal de clock. Modelo de FSM onde a Sada depende somente do estado atual. Modelo de FSM onde a Sada depende do estado atual e das variveis de entrada.
9

Prximo Estado

Mquina Moore

Mquina Mealy

4453F-02 - Eletrnica Digital (ECA)

Mquinas Moore e Mealy

Os dois tipos de mquinas seguem as caractersticas bsicas de uma mquina de estados, mas diferem em como as sadas so determinadas.

Mquina Moore:

As sadas so independentes das entradas, isto , as sadas so determinadas somente a partir do estado atual da mquina de estados.

Mquina Mealy:

As sadas podem ser determinadas somente pelo estado atual ou pelo estado atual e as entradas atuais, isto , as sadas so determinadas enquanto a mquina faz a transio de um estado para outro estado.
10

4453F-02 - Eletrnica Digital (ECA)

Modelos de Mquinas

4453F-02 - Eletrnica Digital (ECA)

11

Arquitetura Moore

A sada depende somente do estado atual.


X
Decodi ficador

LPE=f (EA,X) FF EA
Decodi ficador

S=f (EA)

Sada

EA
Clock

FF

Variveis de Entrada

Lgica de Prximo Estado

Elemento de Memria FF D,T,JK

Decodificador do Estado Atual para Sada

Sada Desejada

4453F-02 - Eletrnica Digital (ECA)

12

Arquitetura Moore

A sada depende somente do estado atual.

4453F-02 - Eletrnica Digital (ECA)

13

Arquitetura Mealy

A sada depende do estado atual e da entrada.


X
Decodi ficador

LPE=f (EA,X) FF EA
Decodi ficador

S=f (EA,X)

Sada

EA
Clock

FF

Variveis de Entrada

Lgica de Prximo Estado

Elemento de Memria FF D,T,JK

Decodificador do Estado Atual para Sada

Sada Desejada

4453F-02 - Eletrnica Digital (ECA)

14

Arquitetura Mealy

A sada depende do estado atual e da entrada.

4453F-02 - Eletrnica Digital (ECA)

15

Modelos de Mquinas

Moore

Entradas Lgica Comb. para Determinar o Estado Estado Atual FF

Mealy

Entradas Lgica Comb. para Determinar o Estado Estado Atual FF

Lgica Comb. para Determinar a sada Baseado no:

Lgica Comb. para Determinar a sada Baseado no:

Estado Atual

Estado Atual Entradas Atuais

Sada
4453F-02 - Eletrnica Digital (ECA)

Sada
16

Modelos de Mquinas

Moore

X
Deco dific ador

LPE=f (EA,X)
FF FF
Clock

Deco dific ador

S=f (EA)
Sada

Mealy
X
Deco dific ador

LPE=f (EA,X) FF FF
Clock

Deco dific ador

S=f (EA,X)

Sada

4453F-02 - Eletrnica Digital (ECA)

17

Diagrama de Estados - Moore


Denominao do Estado Sada Desejada para o Estado Condio das variveis de entrada para transio de estados X=1
Varivel de Entrada X=0

A 4

Denominao do Estado Sada Desejada

Denominao do Estado Sada Desejada

B 5
X=0

X=1 Varivel de Entrada


18

4453F-02 - Eletrnica Digital (ECA)

Tabela de Estados - Moore


EA Estado Atual EF Estado Futuro X Varivel de Entrada S Sada Desejada

EA A B

X 0 1 0 1

EF B A B A

S 4 5

X=0

X=0

B 5
X=1

A 4

X=1

4453F-02 - Eletrnica Digital (ECA)

19

Diagrama de Estados - Mealy


Denominao do Estado Condio das variveis de entrada para transio de estados associada a sada desejada para cada transio.
S=4 X=1 Varivel de Entrada X=0 Sada Desejada S=5

Denominao do Estado

Denominao do Estado

B
X=0 S=5

X=1 S=4

Varivel de Entrada Sada Desejada


20

4453F-02 - Eletrnica Digital (ECA)

Tabela de Estados - Mealy


EA Estado Atual EF Estado Futuro X Varivel de Entrada S Sada Desejada


X=0 S=5

EA A B

X 0 1 0 1

EF B A B A

S 5 4 5 4

X=0 S=5

X=1 S=4

S=4 X=1

4453F-02 - Eletrnica Digital (ECA)

21

Questes Existenciais ...


Onde estou ? O que fao aqui ? Para onde vou ? De onde eu vim ? Em qual estado a mquina est ? Qual a sada da mquina no estado atual ? Para qual estado a mquina vai ? De qual estado a mquina veio ?
22

4453F-02 - Eletrnica Digital (ECA)

Exerccio 1 Moore

Projetar uma mquina de estados, com arquitetura Moore com FF tipo D, que execute a funo de um contador com as seguintes caractersticas:
Progressivo Habilitao

da contagem Ao chegar ao fim da contagem deve voltar ao incio


Faa

a contagem na seguinte faixa de nmeros: 2 5

4453F-02 - Eletrnica Digital (ECA)

23

Arquitetura Moore
X
Decodi ficador

LPE=f (EA,X) FF EA FF
Clock Decodi ficador

S=f (EA) Sada

EA

Variveis de Entrada

Lgica de Prximo Estado

Elemento de Memria FF D,T,JK

Decodificador do Estado Atual para Sada

Sada Desejada

1. 2. 3. 4. 5.

Definio das variveis de entrada e sada Definio do diagrama de estado e da tabela de transies de estado Definio do nmero de Flip-Flops Codificao dos estados e sadas Projeto dos decodificadores de sada e prximo estado

24

1. Definio das Variveis de Entrada e Sada

Entrada Habilitao da Contagem Entrada X 0 No Conta 1 Conta Sada Valor do Contador em Binrio Sada S 2,3,4,5 - Decimal
010, 011, 100, 101

- Binrio

Estados / Sada A=2 B=3 C=4 D=5


25

4453F-02 - Eletrnica Digital (ECA)

2. Diagrama de Estados Moore


A 2
X=0 X=0

X=1

X=1

D 5

X=0

X=0

B 3

X=1

C 4

X=1

4453F-02 - Eletrnica Digital (ECA)

26

2. Tabela de Estados Moore


EA Estado Atual EF Estado Futuro X Varivel de Entrada S Sada Desejada

EA

EF

4453F-02 - Eletrnica Digital (ECA)

27

2. Tabela de Estados Moore


EA Estado Atual EF Estado Futuro X Varivel de Entrada S Sada Desejada

EA A B C D

X 0 1 0 1 0

EF A B B C C

S 2 3 4 5

1
0

D
D

4453F-02 - Eletrnica Digital (ECA)

28

3. Nmero de Estados e Flip-Flops

O nmero de Flip-Flops utilizados na mquina de estados depende do nmero de estados que deve ser memorizado pela mquina de estados. Com N Flip-Flops consegue-se memorizar 2N estados A quantidade de Flip-Flops deve ser tal que: 2N Nmero de Estados

Onde: N = Quantidade de Flip-Flops


4453F-02 - Eletrnica Digital (ECA) 29

4. Codificao dos Estados e Sadas Moore


EA EA1 EA0 A B C D X EF EF1 EF0 S 2 3 4 5 S2 S1 S0

0
1

A
B

0
1 0 1 0 1

B
C C D D A

4453F-02 - Eletrnica Digital (ECA)

30

4. Codificao dos Estados Moore

Uma codificao possvel


EA EA1 EA0 A B C D 1 1 0 0 1 0 1 0

X 0
1 0 1 0 1 0 1

EF A
B B C C D D A

EF1 EF0 1
1 1 0 0 0 0 1

S
2 3 4 5

S2
0 0 1 1

S1
1 1 0 0

S0
0 1 0 1
31

1
0 0 1 1 0 0 1

4453F-02 - Eletrnica Digital (ECA)

4. Codificao dos Estados Moore

Outra codificao mais adequada


EA EA1 EA0 A B C D 0 0 1 1 0 1 0 1

X 0
1 0 1 0 1 0 1

EF A
B B C C D D A

EF1 EF0 0
0 0 1 1 1 1 0

S
2 3 4 5

S2
0 0 1 1

S1
1 1 0 0

S0
0 1 0 1
32

0
1 1 0 0 1 1 0

4453F-02 - Eletrnica Digital (ECA)

5. Projeto dos Decodificadores


Decodificador de Sada Decodificador de Prximo Estado Passos para projetar um Decodificador:

Tabela Verdade
Entrada A B Sada S

Tabela Verdade (Relaciona Entrada pela Sada) Mapas de Karnaugh Equaes Simplificadas Circuito Lgico

4453F-02 - Eletrnica Digital (ECA)

33

5.1. Decodificador de Sada Moore

Moore
X
Decodi ficador

LPE=f (EA,X) FF EA
Decodi ficador

S=f (EA)

Sada

EA
Clock

FF

Variveis de Entrada

Lgica de Prximo Estado

Elemento de Memria FF D,T,JK

Decodificador do Estado Atual para Sada

Sada Desejada

4453F-02 - Eletrnica Digital (ECA)

34

5.1. Decodificador de Sada Moore


Entrada Sadas

EA EA1 EA0 A B 0 0 0 1

X 0 1 0

EF A B B

EF1 EF0 0 0 0 0 1 1

S 2 3

S2 0 0

S1 1 1

S0 0 1

1
0 1 0 1

C
C D D A

1
1 1 1 0

0
0 1 1 0

C D

1 1

0 1

4 5

1 1

0 0

0 1
35

4453F-02 - Eletrnica Digital (ECA)

5.1. Decodificador de Sada Moore


Entrada Sadas

EA EA1 EA0 A B 0 0 0 1

X 0 1 0

EF A B B

EF1 EF0 0 0 0 0 1 1

S 2 3

S2 0 0

S1 1 1

S0 0 1

1
0 1 0 1

C
C D D A

1
1 1 1 0

0
0 1 1 0

C D

1 1

0 1

4 5

1 1

0 0

0 1
36

4453F-02 - Eletrnica Digital (ECA)

5.1. Decodificador de Sada Moore


Entrada Sadas

EA1 EA0
0 0 0 1

S2
0 0

S1
1 1

S0
0

Por observao da Tabela Verdade, determinamos as Equaes Booleanas das variveis de sada

S2 = EA1

S1 = EA1
S0 = EA0

1 1

0 1

1 1

0 0

0 1

4453F-02 - Eletrnica Digital (ECA)

37

5.1. Decodificador de Sada Moore

Diagrama do decodificador de sada

4453F-02 - Eletrnica Digital (ECA)

38

5.2. Decodificador de Prximo Estado

Moore
X
Decodi ficador

LPE=f (EA,X) FF EA
Decodi ficador

S=f (EA)

Sada

EA
Clock

FF

Variveis de Entrada

Lgica de Prximo Estado

Elemento de Memria FF D,T,JK

Decodificador do Estado Atual para Sada

Sada Desejada

4453F-02 - Eletrnica Digital (ECA)

39

5.2. Decodificador de Prximo Estado

Podemos utilizar qualquer Flip-Flop como elemento de memria: D, T , JK. O decodificador de prximo estado deve estimular o Flip-Flop para que o mesmo faa a transio do Estado Atual (EA) para o Estado Futuro (EF) baseado na sua entrada.

4453F-02 - Eletrnica Digital (ECA)

40

5.2. Decodificador de Prximo Estado

Determinar o valor lgico das entradas dos FlipFlops de acordo com a transio das sadas dos mesmos. Analisar a transio desejada e determinar qual o estmulo do Flip Flop.
Estado Atual Transio

Estado Futuro
Estmulo

EA EA1 EA0 A 0 0

X 0

EF A

EF1 EF0 0 0

S 2

D1 0

D0 0

1
41

4453F-02 - Eletrnica Digital (ECA)

5.2. Decodificador de Prximo Estado: Transio de Sadas dos Flip-Flops

FF
K Q

JK 00 01 10 11
D 0 1

QF QA 0 1 QA
QF 0 1

Transio

Estmulo

D FF

QA QF
00 01 10 11

D
0 1 0 1

T
0 1 1 0

JK
0X 1X X1 X0

Q T FF Q Q

T 0 1

QF QA QA

4453F-02 - Eletrnica Digital (ECA)

42

5.2. Decodificador de Prximo Estado


Estado Atual Transio

Estado Futuro

EA EA1 EA0 A B C D 0 0 1 1 0 1 0 1

EF A
B B C C D D A

EF1 EF0 0
0 0 1 1 1 1 0

S
2 3 4 5

S2
0 0 1 1

S1
1 1 0 0

S0
0 1 0 1
43

0
1 0 1 0 1 0 1

0
1 1 0 0 1 1 0

4453F-02 - Eletrnica Digital (ECA)

5.2. Decodificador de Prximo Estado


Estado Atual Transio

Estado Futuro

Estmulo

EA EA1 EA0 A B C D 0 0 1 1 0 1 0 1

X 0
1 0 1 0 1 0 1

EF A
B B C C D D A

EF1 EF0 0
0 0 1 1 1 1 0

D1

D0

0
1 1 0 0 1 1 0

D FF

D 0 1

QF 0 1

4453F-02 - Eletrnica Digital (ECA)

44

5.2. Decodificador de Prximo Estado


Estado Atual Transio

Estado Futuro

Estmulo

EA EA1 EA0 A B C D 0 0 1 1 0 1 0 1

X 0
1 0 1 0 1 0 1

EF A
B B C C D D A

EF1 EF0 0
0 0 1 1 1 1 0

D1 0
0 0 1 1 1 1 0

D0 0
1 1 0 0 1 1 0

0
1 1 0 0 1 1 0

D FF

D 0 1

QF 0 1

4453F-02 - Eletrnica Digital (ECA)

45

5.2. Decodificador de Prximo Estado


Entrada Sadas

EA EA1 EA0 A B C D 0 0 1 1 0 1 0 1

X 0
1 0 1 0 1 0 1

EF A
B B C C D D A

EF1 EF0 0
0 0 1 1 1 1 0

D1 0
0 0 1 1 1 1 0

D0 0
1 1 0 0 1 1 0
46

0
1 1 0 0 1 1 0

4453F-02 - Eletrnica Digital (ECA)

5.2. Decodificador de Prximo Estado


Entrada

Tabela Verdade

Sadas

EA EA1 EA0 A B C D 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1

X 0
1 0 1 0 1 0 1

EF A
B B C C D D A

EF1 EF0 0
0 0 1 1 1 1 0

D1 0
0 0 1 1 1 1 0

D0 0
1 1 0 0 1 1 0
47

0
1 1 0 0 1 1 0

4453F-02 - Eletrnica Digital (ECA)

5.2. Decodificador de Prximo Estado

Moore
X
Decodi ficador

LPE=f (EA,X) FF EA
Decodi ficador

S=f (EA)

Sada

EA
Clock

FF

Variveis de Entrada

Lgica de Prximo Estado

Elemento de Memria FF D,T,JK

Decodificador do Estado Atual para Sada

Sada Desejada

4453F-02 - Eletrnica Digital (ECA)

48

5.2. Decodificador de Prximo Estado


EA0 X EA1

D1 00 01 11 10 0 0 1 3 2 1 4 5 7 6
EA0 X

EA1

D0 00 01 11 10 0 1
4453F-02 - Eletrnica Digital (ECA)

0 1 2 3 4 5 6 7

Tabela Verdade EA1 EA0 X D1 D0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0


49

5.2. Decodificador de Prximo Estado

D1
EA1 EA1
X

EA0

EA0
0 1 2 3 4 5 6 7

D0
EA1
EA1
X

EA0

EA0

Tabela Verdade EA1 EA0 X D1 D0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0


50

4453F-02 - Eletrnica Digital (ECA)

5.2. Decodificador de Prximo Estado


EA0 X EA1

D1 00 01 11 10 0 0 0 1 0 1 1 1 0 1
EA0 X

EA1

D0 00 01 11 10 0 0 1 0 1 1 0 1 0 1
4453F-02 - Eletrnica Digital (ECA)

0 1 2 3 4 5 6 7

Tabela Verdade EA1 EA0 X D1 D0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0


51

5.2. Decodificador de Prximo Estado

D1
EA1 EA1

EA0

EA0

D1 = EA1EA0X +

0 1
X

0 1
X

1 0

0 1
X

EA1EA0 + EA1X

D0
EA1
EA1

EA0

EA0

0 0
X

1 1
X

0 0

1 1
X

D0 = EA0X + EA0X

4453F-02 - Eletrnica Digital (ECA)

52

5.2. Decodificador de Prximo Estado

Diagrama do decodificador de prximo estado

4453F-02 - Eletrnica Digital (ECA)

53

Exemplo 1 Contador Progressivo 2 a 5

Circuito Completo Arquitetura Moore FF tipo D

4453F-02 - Eletrnica Digital (ECA)

54

Exerccio 1 Mquina de Moore

Construir um contador de mdulo 4 utilizando uma mquina de Moore. Esse contador pode incrementar ou decrementar o seu valor; Implementar utilizando Flip-Flops tipo D;

55