fsm 1 máquinas de estados finitos (cont) antonio augusto lisboa de souza
TRANSCRIPT
FSM 1
Máquinas de Estados Finitos (cont)
ANTONIO AUGUSTO LISBOA DE SOUZA
FSM 2
Plano da aula
• Tipos de FSMs:• Modelo de Moore• Modelo de Mealy
• Diagrama de estados de uma FSM tipo Moore• Implementação de FSM tipo Moore
FSM 3
Revisão
FSM 4
Tipos de Máquinas de Estado
Modelo de Moore:Modelo de Moore:
Saídas dependentes (apenas) do estado dos FFs!!!Saídas dependentes (apenas) do estado dos FFs!!!
FSM 5
Tipos de Máquinas de Estado
Modelo de Mealy:Modelo de Mealy:
Saídas dependentes do estado dos FFs e das entradas!!!Saídas dependentes do estado dos FFs e das entradas!!!
FSM 6
Modelo de Moore
Saídas dependentes (apenas) do estado dos FFs!!!Saídas dependentes (apenas) do estado dos FFs!!!
Vocês conhecem algum circuito assim?Vocês conhecem algum circuito assim?
FSM 7
Modelo de Moore
A/A/00
XX
C/C/11
B/B/00
WW
TT
Diagrama deDiagrama deestados:estados:
VVYY
RR
SS
Condição de Condição de transiçãotransição
Valor da Valor da saídasaída
EstadoEstado(A, B, C)(A, B, C)
FSM 8
Modelo de Moore
A/A/00
C/C/11
B/B/00
Tabela de Tabela de estados:estados:
Estadoatual
Próximo estado (X=0)
Próximo estado (X=1)
SaídaZ
A B C 0B C B 0C A B 1
XX
XX
XX
XX
XXXX
FSM 9
Modelo de Moore
Z=AZ=A00AA11AA22
001/001/00 010/010/00 011/011/00
000/000/00 111/111/11 110/110/00 101/101/00
100/100/00
=X=X
XX
XXXX
XXXX
XX
XX
XXXX
XXXX
XX XX
XXXXXX
Diagrama deDiagrama deestados:estados:
Exemplo:Exemplo:
FSM 10
Modelo de Moore
Z=AZ=A00AA11AA22
=X=XExemplo:Exemplo:
Tabela de Tabela de estados:estados:
EA PE(X=0) PE(X=1) Z000 001 111 0
001 010 000 0
010 011 001 0011 100 010 0100 101 011 0101 110 100 0110 111 101 0111 000 110 1
FSM 21
Exemplo: Projete um circuito que detecte a sequência “010” em uma Exemplo: Projete um circuito que detecte a sequência “010” em uma entrada serial X. O circuito deve fornecer uma saída Z em 1 apenas entrada serial X. O circuito deve fornecer uma saída Z em 1 apenas quando o último 0 da sequência “010” for detectado. Utilizar o Modelo quando o último 0 da sequência “010” for detectado. Utilizar o Modelo de Moore.de Moore.
DetectorDetectorde 010de 010
XX
CLKCLK
010101...010101...
X=01001011...X=01001011...Z=Z= 0001001000010010
Implementação
FSM 22
• Passo 1: Estabelecer o diagrama e a tabela de estados• Passo 2: Definir número e tipo de FFs• Passo 3: Estabelecer um diagrama de Transições
“EN EN+1” para cada FF
• Passo 4: Estabelecer a Tabela de Excitação do FF• Passo 5: Para cada Estado, definir as expressões das
entradas dos FFs e das saídas• Passo 6: Simplificar as expressões• Passo 7: Implementar o Diagrama Elétrico
Implementação
A metodologia parece familiar?A metodologia parece familiar?
FSM 23
• Passo 1: Estabelecer o diagrama e a tabela de estados• Passo 2: Definir número e tipo de FFs• Passo 3: Estabelecer um diagrama de Transições
“EN EN+1” para cada FF
• Passo 4: Estabelecer a Tabela de Excitação do FF• Passo 5: Para cada Estado, definir as expressões das
entradas dos FFs e das saídas• Passo 6: Simplificar as expressões• Passo 7: Implementar o Diagrama Elétrico
Implementação
FSM 24
Exemplo: Projete um circuito que detecte a sequência “010” em uma Exemplo: Projete um circuito que detecte a sequência “010” em uma entrada serial X. O circuito deve fornecer uma saída Z em 1 apenas entrada serial X. O circuito deve fornecer uma saída Z em 1 apenas quando o último 0 da sequência “010” for detectado. Utilizar o Modelo quando o último 0 da sequência “010” for detectado. Utilizar o Modelo de Moore.de Moore.
DetectorDetectorde 010de 010
XX
CLKCLK
010101...010101...
X=01001011...X=01001011...Z=Z= 0001001000010010
Diagrama de Diagrama de estados:estados:
Implementação
Tabela de estados:Tabela de estados:SSRR/0/0
SS00/0/0
0000
11
00
SS1010/0/0
SS010010/1/1
11
11
00
11
EA PE(X=0) PE(X=1) ZSR S0 SR 0
S0 S0 S10 0
S10 S010 SR 0
S010 S0 S10 1
FSM 25
• Passo 1: Estabelecer o diagrama e a tabela de estados• Passo 2: Definir número e tipo de FFs• Passo 3: Estabelecer um diagrama de Transições
“EN EN+1” para cada FF
• Passo 4: Estabelecer a Tabela de Excitação do FF• Passo 5: Para cada Estado, definir as expressões das
entradas dos FFs e das saídas• Passo 6: Simplificar as expressões• Passo 7: Implementar o Diagrama Elétrico
Implementação
FSM 26
Implementação
4 estados! Adotemos 2 FFs do tipo D4 estados! Adotemos 2 FFs do tipo D
Tabela de estados:Tabela de estados:
Exemplo: Projete um circuito que detecte a sequência “010” em uma Exemplo: Projete um circuito que detecte a sequência “010” em uma entrada serial X. O circuito deve fornecer uma saída Z em 1 apenas entrada serial X. O circuito deve fornecer uma saída Z em 1 apenas quando o último 0 da sequência “010” for detectado. Utilizar o Modelo quando o último 0 da sequência “010” for detectado. Utilizar o Modelo de Moore.de Moore.
DetectorDetectorde 010de 010
XX
CLKCLK
010101...010101...
X=01001011...X=01001011...Z=Z= 0001001000010010
Diagrama de Diagrama de estados:estados:
SSRR/0/0
SS00/0/0
0000
11
00
SS1010/0/0
SS010010/1/1
11
11
00
11
EA PE(X=0) PE(X=1) ZSR S0 SR 0
S0 S0 S10 0
S10 S010 SR 0
S010 S0 S10 1
FSM 27
• Passo 1: Estabelecer o diagrama e a tabela de estados• Passo 2: Definir número e tipo de FFs• Passo 3: Estabelecer um diagrama de Transições
“EN EN+1” para cada FF
• Passo 4: Estabelecer a Tabela de Excitação do FF• Passo 5: Para cada Estado, definir as expressões das
entradas dos FFs e das saídas• Passo 6: Simplificar as expressões• Passo 7: Implementar o Diagrama Elétrico
Implementação
FSM 28
Tabela de estados:Tabela de estados:
Implementação
Como usaremos 2FFs Como usaremos 2FFs (A e B), podemos fazer (A e B), podemos fazer a seguinte associação:a seguinte associação:
SS00 = (AB==00) = (AB==00)SS11 = (AB==01) = (AB==01)SS22 = (AB==10) = (AB==10)SS33 = (AB==11) = (AB==11)
EA+XA B X
PEA B
Z
0 0 0 0 1 00 0 1 0 0 00 1 0 0 1 00 1 1 1 0 01 0 0 1 1 01 0 1 0 0 01 1 0 0 1 11 1 1 1 0 1
EA PE(X=0) PE(X=1) ZSR S0 SR 0
S0 S0 S10 0
S10 S010 SR 0
S010 S0 S10 1
FSM 29
• Passo 1: Estabelecer o diagrama e a tabela de estados• Passo 2: Definir número e tipo de FFs• Passo 3: Estabelecer um diagrama de Transições
“EN EN+1” para cada FF
• Passo 4: Estabelecer a Tabela de Excitação do FF• Passo 5: Para cada Estado, definir as expressões das
entradas dos FFs e das saídas• Passo 6: Simplificar as expressões• Passo 7: Implementar o Diagrama Elétrico
Implementação
FSM 30
Implementação
QnQn+1 D00 001 110 011 1
Tabela de Tabela de excitação do FF Dexcitação do FF D
D=QD=Qn+1n+1
FSM 31
• Passo 1: Estabelecer o diagrama e a tabela de estados• Passo 2: Definir número e tipo de FFs• Passo 3: Estabelecer um diagrama de Transições
“EN EN+1” para cada FF
• Passo 4: Estabelecer a Tabela de Excitação do FF• Passo 5: Para cada Estado, definir as expressões das
entradas dos FFs, e das saídas• Passo 6: Simplificar as expressões• Passo 7: Implementar o Diagrama Elétrico
Implementação
FSM 32
Implementação
QnQn+1 D00 001 110 011 1
++ ==
D=QD=Qn+1n+1
EA+XA B X
PEA B
Z
0 0 0 0 1 00 0 1 0 0 00 1 0 0 1 00 1 1 1 0 01 0 0 1 1 01 0 1 0 0 01 1 0 0 1 11 1 1 1 0 1
A B X DA DB Z0 0 0 0 1 00 0 1 0 0 00 1 0 0 1 00 1 1 1 0 01 0 0 1 1 01 0 1 0 0 01 1 0 0 1 11 1 1 1 0 1
FSM 33
• Passo 1: Estabelecer o diagrama e a tabela de estados• Passo 2: Definir número e tipo de FFs• Passo 3: Estabelecer um diagrama de Transições
“EN EN+1” para cada FF
• Passo 4: Estabelecer a Tabela de Excitação do FF• Passo 5: Para cada Estado, definir as expressões das
entradas dos FFs e das saídas• Passo 6: Simplificar as expressões• Passo 7: Implementar o Diagrama Elétrico
Implementação
FSM 34
Implementação
DDAA=BX+A B X=BX+A B X
DDBB=X=X
Z=ABZ=AB
A B X DA DB Z0 0 0 0 1 00 0 1 0 0 00 1 0 0 1 00 1 1 1 0 01 0 0 1 1 01 0 1 0 0 01 1 0 0 1 11 1 1 1 0 1
0 0 1 01 0 1 0
AABXBX
1 0 0 11 0 0 1
AABXBX
0 0 0 00 0 1 1
AABXBX
FSM 35
• Passo 1: Estabelecer o diagrama e a tabela de estados• Passo 2: Definir número e tipo de FFs• Passo 3: Estabelecer um diagrama de Transições
“EN EN+1” para cada FF
• Passo 4: Estabelecer a Tabela de Excitação do FF• Passo 5: Para cada Estado, definir as expressões das
entradas dos FFs e das saídas• Passo 6: Simplificar as expressões• Passo 7: Implementar o Diagrama Elétrico
Implementação
FSM 36
Implementação
Teria outro jeito de implementar a funcionalidade requerida? Teria outro jeito de implementar a funcionalidade requerida? (poderíamos usar um registrador de deslocamento?)(poderíamos usar um registrador de deslocamento?)
DDAA=BX+A B X=BX+A B X DDBB=X=X Z=ABZ=AB