Buscar

Maquinas de Estado 1

Prévia do material em texto

Máquinas de estado (análise)
Digital Design - Principles And Practices
John Wakerly
1
Introdução
Tipos de circuitos digitais
Combinacionais
O valor das saídas depende unicamente do valor das entradas
O valor das saídas é sempre igual para um mesmo valor de entrada
Não são capazes de reter os valores das saídas
Exemplos: Multiplexadores, somadores, decodificadores, ...
Sequênciais
O valor das saídas é determinado não somente a partir do valor das entradas mas também a partir do estado do circuito
Possuem capacidade de armazenamento
São capazes de reter o valor das saídas
Exemplos: Contadores, processadores
Introdução
Modelo de circuito combinacional
Saídas dependem apenas das entradas
Não tem capacidade de armazenamento de informação (memória)
Assíncronos
Não dependem de clock
Introdução
Modelo de circuito sequêncial
Composto por um circuito combinacional e elementos de memória
Elementos de memória são implementados a partir de flip-flops
Saídas dependem das entradas e do estado atual
Circuito combinacional
Elementos de memória
Entradas
Saídas
n
n
n
Armazenam o estado atual
Laço de realimentação
Introdução
Tipos de circuitos sequências
Assíncronos
Estado atual pode mudar a qualquer momento
Fora do escopo desta disciplina
Síncronos
Estado atual pode mudar apenas momentos exatos determinados por um sinal de clock
Grande maioria dos circuitos digitais (e.g. processador)
Foco desta disciplina
6
Introdução
Máquinas de estado 
Nome dado ao modelo genérico de circuitos sequenciais
Composto por lógica combinacional (portas lógicas) + elementos de memória (flip-flops)
Em inglês FSMs: Finite State Machines
O funcionamento do circuito depende das entradas e do estado em que o circuito se encontra (“estado corrente” ou “estado atual”)
O estado atual do circuito corresponde ao valor das variáveis de estado (saídas dos flip-flops)
O conjunto de flip-flops forma o registrador de estado
Dado o estado atual e o valor das entradas, a FSM gera os valores das saídas e o próximo estado
Lógica combinacional
7
Introdução
Máquinas de estado 
Podem ser de dois tipos
Moore
Mealy
A única diferença entre os dois tipos é em relação à maneira como as saídas do circuito são geradas
8
Introdução
Máquinas de estado 
Moore
As saídas dos circuito dependem apenas do estado atual 
Atualizadas somente em transições do clock
Circuito combinacional que determina o valor das saídas tendo como entrada o estado atual
Flip-flops
(registrador de estado)
Circuito combinacional que determina o próximo estado
Output = G(current state)
NS = F(inputs, current state)
Próximo estado será o estado atual no próximo ciclo de clock
9
Introdução
Máquinas de estado 
Mealy
As saídas dos circuito dependem da combinação entre o estado atual e as entradas
Podem ser atualizadas a qualquer momento em função das entradas
Output = G(current state, inputs)
Entradas são consideradas na geração das saídas
10
Introdução
Máquinas de estado 
Moore
Next state logic
State memory
Output logic
Saída Y depende apenas do estado atual
Estado atual
Entrada
11
Introdução
Máquinas de estado 
Moore
Modelo
Circuito
12
Introdução
Máquinas de estado 
Mealy
Saída MAX depende do estado atual e da entrada EN
13
Introdução
Máquinas de estado 
Mealy
Modelo
Circuito
14
Análise de FSMs
O objetivo da análise é extrair as equações booleanas e o diagrama de estados que determinam o comportamento do circuito
Passos para a análise
Determinar as equações de excitação
Circuito ligado às entradas dos flip-flops
Determinar as equações de próximo estado e de saídas
No caso de flip-flops D as equações de excitação e de próximo estado são iguais
Construir a tabela de próximo estado e saídas
A construção é baseada nas equações obtidas no passo 2
Desenhar o diagrama de transição de estados
Grafo que ilustra o comportamento do circuito
Baseado na tabela obtida no passo 3 
15
Análise de FSMs
Determinar as equações de excitação
Circuito ligado às entradas dos flip-flops
D0 = cnt ^ Q0
D1 = !cnt.Q1 + Q0.cnt.!Q1 + cnt.Q1.!Q0
16
Análise de FSMs
Determinar as equações de próximo estado e de saídas
Equação caracterísca do flip-flop D: Q* = D
Q0* = cnt ^ Q0
Q1* = !cnt.Q1 + Q0.cnt.!Q1 + cnt.Q1.!Q0
Y = Q0.Q1
Mealy ou Moore ?
17
Análise de FSMs
Construir as tabelas de próximo estado e saídas
Q0* = cnt ^ Q0
Q1* = !cnt.Q1 + Q0.cnt.!Q1 + cnt.Q1.!Q0
Y = Q0.Q1
Estadoatual
Entrada
Próximoestado
Saída
Q1
Q0
cnt
Q1*
Q0*
Y
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
18
Análise de FSMs
Construir as tabelas de próximo estado e saídas
Q0* = cnt ^ Q0
Q1* = !cnt.Q1 + Q0.cnt.!Q1 + cnt.Q1.!Q0
Y = Q0.Q1
Estadoatual
Entrada
Próximoestado
Saída
Q1
Q0
cnt
Q1*
Q0*
Y
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
19
Análise de FSMs
Construir as tabelas de próximo estado e saídas
Q0* = cnt ^ Q0
Q1* = !cnt.Q1 + Q0.cnt.!Q1 + cnt.Q1.!Q0
Y = Q0.Q1
Estadoatual
cnt
Saída
Q1
Q0
0
1
Y
0
0
00
01
0
0
1
01
10
0
1
0
10
11
0
1
1
11
00
1
Q1*Q0*
Tabela de transição/saídas
Depende só do estado atual
(Moore)
20
Análise de FSMs
Desenhar o diagrama de transição de estados
Estadoatual
cnt
Saída
Q1
Q0
0
1
Y
0
0
00
01
0
0
1
01
10
0
1
0
10
11
0
1
1
11
00
1
Q1*Q0*
Contador de 2 bits. A saída Y indica quando a contagem chegou no valor máximo (3). A entrada cnt habilita a contagem.
Estado inicial
Valor da saída indicado dentro do estado (Moore)
Condição explícita para ocorrer a transição de estado. Obs: Clock implícito.
21
Análise de FSMs
Desenhar o diagrama de transição de estados
Pode-se atribuir nomes aos estados
Estadoatual
cnt
Saída
S
0
1
Y
S0
S0
S1
0
S1
S1
S2
0
S2
S2
S3
0
S3
S3
S0
1
S*
Contador de 2 bits. A saída Y indica quando a contagem chegou no valor máximo (3). A entrada cnt habilita a contagem.
22
Análise de FSMs
Exemplo de comportamento
Síncronas (CK)
Q0
Q1
Estado atual S0 S1 S2 S3 S3
Atraso de propagação de D para Q no FF
Atraso do FF mais atraso da porta and
Análise de FSMs
Logisim
24
Análise de FSMs
Determinar as equações de excitação
D0 = cnt ^ Q0
D1 = !cnt.Q1 + Q0.cnt.!Q1 + cnt.Q1.!Q0
Conexão adicionada
25
Análise de FSMs
Determinar as equações de próximo estado e de saídas
Equação caracterísca do flip-flop D: Q* = D
Q0* = cnt ^ Q0
Q1* = !cnt.Q1 + Q0.cnt.!Q1 + cnt.Q1.!Q0
Y = cnt.Q0.Q1
Mealy ou Moore ?
26
Análise de FSMs
Construir as tabelas de próximo estado e saídas
Q0* = cnt ^ Q0
Q1* = !cnt.Q1 + Q0.cnt.!Q1 + cnt.Q1.!Q0
Y = cnt.Q0.Q1
Estadoatual
Entrada
Próximoestado
Saída
Q1
Q0
cnt
Q1*
Q0*
Y
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
27
Análise de FSMs
Construir as tabelas de próximo estado e saídas
Q0* = cnt ^ Q0
Q1* = !cnt.Q1 + Q0.cnt.!Q1 + cnt.Q1.!Q0
Y = cnt.Q0.Q1
Estadoatual
cnt
Q1
Q0
0
1
0
0
00, 0
01, 0
0
1
01, 0
10, 0
1
0
10, 0
11, 0
1
1
11,0
00, 1
Q1*Q0*, Y
Tabela de transição/saídas
Próximo estado, saídas
Não há colunas para as saídas porque elas dependendem também das entradas
(Mealy)
O valor da saída Y é 0 ou 1, dependendo do valor da entrada cnt
28
Análise de FSMs
Desenhar o diagrama de transição de estados
Estadoatual
cnt
Q1
Q0
0
1
0
0
00, 0
01, 0
0
1
01, 0
10, 0
1
0
10, 0
11, 0
1
1
11, 0
00, 1
Q1*Q0*, Y
Condição explícita para ocorrer a transição de estado /Valor da saída
A notação para as saídas pode confundir. O valor das saídas é produzido continuamente enquando a máquina está no estado origem da aresta e tem a entrada indicada, não apenas durante a transição.
No estado 11, 
Y<=1 enquanto cnt = 1
cnt=0/Y<=0
29
Análise de FSMs
Desenhar o diagrama de transição de estados
Pode-se atribuir nomes aos estados
Estadoatual
cnt
S
0
1
S0
S0, 0
S1, 0
S1
S1, 0
S2, 0
S2
S2, 0
S3, 0
S3
S3, 0
S0, 1
S*, Y
S0
S1
S2
S2
30
Análise de FSMs
Exemplo de comportamento
Síncronas (CK)
Q0
Q1
cnt
Estado atual S0 S1 S2 S3 S3
Análise de FSMs
Logisim
32
Análise de FSMs
Comparação de comportamento (Mealy e Moore)
S
 S0 S0 S1 S2 S2 S2 S3 S3 S3 S0 S0 
Y depende só do estado atual
33
Análise de FSMs
Comparação de comportamento (Mealy e Moore)
S
 S0 S0 S1 S2 S2 S2 S3 S3 S3 S0 S0 
Y depende só do estado atual e da entrada cnt
34
Análise de FSMs
Tabelas de transição/saídas (Moore)
Várias entradas/saídas
Estadoatual
a/b
X
Y
Z
Q1
Q0
00
01
10
11
0
0
01
00
00
01
1
1
0
0
1
01
01
00
10
0
1
0
1
0
10
10
11
11
0
0
0
1
1
11
11
10
00
1
1
1
Q1*Q0*
Estadoatual
a/b/c
X
Y
Q1
Q0
000
001
010
011
100
101
110
111
0
0
00
01
00
00
01
00
01
01
1
1
0
1
01
01
11
01
00
01
01
10
0
1
1
0
10
10
00
00
11
10
00
11
0
0
1
1
11
10
11
10
11
11
10
00
1
1
Q1*Q0*
2 entradas (a,b) e 3 saídas (X,Y,Z)
3 entradas (a,b,c) e 2 saídas (X,Y)
35
Análise de FSMs
Tabelas de transição/saídas (Mealy)
Várias entradas/saídas
Estadoatual
a/b
Q1
Q0
00
01
10
11
0
0
01, 011
00, 011
00, 011
01, 001
0
1
01, 001
01, 101
00, 011
10, 000
1
0
10, 000
10, 100
11, 100
11, 011
1
1
11, 010
11, 111
10, 110
00, 111
Q1*Q0*, XYZ
Estadoatual
a/b/c
Q1
Q0
000
001
010
011
100
101
110
111
0
0
00, 00
01, 01
00, 11
00, 01
01, 01
00, 10
01, 01
01, 10
0
1
01, 00
01, 01
01, 11
00, 01
10, 00
01, 10
01, 01
10, 10
1
0
10, 00
10, 00
10, 00
11, 00
11, 11
10, 10
10, 00
11, 01
1
1
11, 00
11, 10
11, 11
10, 10
00, 11
11, 01
11, 10
00, 11
Q1*Q0*, XY
2 entradas (a,b) e 3 saídas (X,Y,Z)
3 entradas (a,b,c) e 2 saídas (X,Y)
36
Análise de FSMs
Analisar a FSM abaixo
37
Análise de FSMs
Analisar a FSM abaixo

Continue navegando