Aula 16
Aula 16
Aula 16
Circuitos Lógicos
Aula 16
CL - Aula 16 2
MÁQUINA DE ESTADOS FINITOS (FSM)
CL - Aula 16 3
MÁQUINA DE ESTADOS FINITOS (FSM)
CL - Aula 16 4
MÁQUINA DE ESTADOS FINITOS (FSM)
ao mesmo tempo
q Ao ser ligado, o robô se move para frente
q Ao detectar um obstáculo, o robô se move na S1
Botão Sensor
direção contrária
• A detecção poderá ocorrer por meio de um sensor
Botão Sensor
q O mesmo botão permite ligar e desligar o robô
• Se o robô estiver desligado, pressionar o botão o
ligará S0 S2
• Se o robô estiver ligado, pressionar o botão o
desligará
Botão
CL - Aula 16 5
MÁQUINA DE ESTADOS FINITOS (FSM)
CL - Aula 16 6
MÁQUINA DE ESTADOS FINITOS (FSM)
Tipos de FSMs
§ Nos projetos de uma FSM, dividimos a
parte combinacional em duas partes:
q Lógica de Saída: computa a saída do
circuito
q Lógica de Próximo Estado: computa o
próximo estado do circuito
Tipos de FSMs
§ Nos projetos de uma FSM, dividimos a
parte combinacional em duas partes:
q Lógica de Saída: computa a saída do
circuito
q Lógica de Próximo Estado: computa o
próximo estado do circuito
CL - Aula 16 8
MÁQUINA DE ESTADOS FINITOS (FSM)
Tipos de FSMs
§ Nos projetos de uma FSM, dividimos a
parte combinacional em duas partes:
q Lógica de Saída: computa a saída do
circuito
q Lógica de Próximo Estado: computa o
próximo estado do circuito
CL - Aula 16 9
EXEMPLO DE FSM
Cruzamento entre Avenidas
§ Vamos projetar um controlador para um Academic e Bravado
sinal de trânsito
q Vamos instalar dois sensores nas avenidas
Academic e Bravado (TA e TB)
• Retorna verdadeiro se alunos estão presentes
e falso caso contrário
q Vamos instalar dois semáforos (LA e LB)
• Cada semáforo recebe informações do
controlador para especificar se deve estar
verde, amarelo ou vermelho
q Teremos um sinal de clock de 5 segundos
• Em cada borda ascendente, o semáforo pode
mudar de estado a depender dos valores dos
sensores
q Também há um botão de reset
• Coloca o semáforo no estado inicial
CL - Aula 16 10
EXEMPLO DE FSM
Caixa Preta da FSM
§ Vamos projetar um controlador para um
sinal de trânsito § Entradas:
q Vamos instalar dois sensores nas avenidas q CLK, Reset, TA, TB
Academic e Bravado (TA e TB)
§ Saídas
• Retorna verdadeiro se alunos estão presentes
e falso caso contrário q LA , LB
q Vamos instalar dois semáforos (LA e LB)
• Cada semáforo recebe informações do
controlador para especificar se deve estar
verde, amarelo ou vermelho
q Teremos um sinal de clock de 5 segundos
• Em cada borda ascendente, o semáforo pode
mudar de estado a depender dos valores dos
sensores
q Também há um botão de reset
• Coloca o semáforo no estado inicial
CL - Aula 16 11
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar um controlador para um § FSM do tipo Moore
sinal de trânsito q As saídas (LA e LB) são indicadas em
q Vamos instalar dois sensores nas avenidas cada estado
Academic e Bravado (TA e TB) Reset
• Retorna verdadeiro se alunos estão presentes
e falso caso contrário S0
q Vamos instalar dois semáforos (LA e LB) LA: green
• Cada semáforo recebe informações do LB: red
controlador para especificar se deve estar
verde, amarelo ou vermelho
q Teremos um sinal de clock de 5 segundos
• Em cada borda ascendente, o semáforo pode
mudar de estado a depender dos valores dos
sensores
q Também há um botão de reset
• Coloca o semáforo no estado inicial
CL - Aula 16 12
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar um controlador para um § FSM do tipo Moore
sinal de trânsito q As saídas (LA e LB) são indicadas em
q Vamos instalar dois sensores nas avenidas cada estado
Academic e Bravado (TA e TB) Reset
• Retorna verdadeiro se alunos estão presentes
e falso caso contrário 𝑇! S0
q Vamos instalar dois semáforos (LA e LB) LA: green
• Cada semáforo recebe informações do LB: red
controlador para especificar se deve estar
verde, amarelo ou vermelho
q Teremos um sinal de clock de 5 segundos
• Em cada borda ascendente, o semáforo pode
mudar de estado a depender dos valores dos
sensores
q Também há um botão de reset
• Coloca o semáforo no estado inicial
CL - Aula 16 13
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar um controlador para um § FSM do tipo Moore
sinal de trânsito q As saídas (LA e LB) são indicadas em
q Vamos instalar dois sensores nas avenidas cada estado
Academic e Bravado (TA e TB) Reset
• Retorna verdadeiro se alunos estão presentes 𝑇!
e falso caso contrário 𝑇! S0 S1
q Vamos instalar dois semáforos (LA e LB) LA: green LA: yellow
• Cada semáforo recebe informações do LB: red LB: red
controlador para especificar se deve estar
verde, amarelo ou vermelho
q Teremos um sinal de clock de 5 segundos
• Em cada borda ascendente, o semáforo pode
mudar de estado a depender dos valores dos
sensores
q Também há um botão de reset
• Coloca o semáforo no estado inicial
CL - Aula 16 14
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar um controlador para um § FSM do tipo Moore
sinal de trânsito q As saídas (LA e LB) são indicadas em
q Vamos instalar dois sensores nas avenidas cada estado
Academic e Bravado (TA e TB) Reset
• Retorna verdadeiro se alunos estão presentes 𝑇!
e falso caso contrário 𝑇! S0 S1
q Vamos instalar dois semáforos (LA e LB) LA: green LA: yellow
• Cada semáforo recebe informações do LB: red LB: red
controlador para especificar se deve estar
verde, amarelo ou vermelho
q Teremos um sinal de clock de 5 segundos
• Em cada borda ascendente, o semáforo pode S2
mudar de estado a depender dos valores dos LA: red
sensores LB: green
q Também há um botão de reset
• Coloca o semáforo no estado inicial
CL - Aula 16 15
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar um controlador para um § FSM do tipo Moore
sinal de trânsito q As saídas (LA e LB) são indicadas em
q Vamos instalar dois sensores nas avenidas cada estado
Academic e Bravado (TA e TB) Reset
• Retorna verdadeiro se alunos estão presentes 𝑇!
e falso caso contrário 𝑇! S0 S1
q Vamos instalar dois semáforos (LA e LB) LA: green LA: yellow
• Cada semáforo recebe informações do LB: red LB: red
controlador para especificar se deve estar
verde, amarelo ou vermelho
q Teremos um sinal de clock de 5 segundos
• Em cada borda ascendente, o semáforo pode S2
mudar de estado a depender dos valores dos LA: red
sensores LB: green
q Também há um botão de reset 𝑇"
• Coloca o semáforo no estado inicial
CL - Aula 16 16
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar um controlador para um § FSM do tipo Moore
sinal de trânsito q As saídas (LA e LB) são indicadas em
q Vamos instalar dois sensores nas avenidas cada estado
Academic e Bravado (TA e TB) Reset
• Retorna verdadeiro se alunos estão presentes 𝑇!
e falso caso contrário 𝑇! S0 S1
q Vamos instalar dois semáforos (LA e LB) LA: green LA: yellow
• Cada semáforo recebe informações do LB: red LB: red
controlador para especificar se deve estar
verde, amarelo ou vermelho
q Teremos um sinal de clock de 5 segundos
• Em cada borda ascendente, o semáforo pode S3 S2
mudar de estado a depender dos valores dos LA: red LA: red
sensores LB: yellow LB: green
q Também há um botão de reset 𝑇" 𝑇"
• Coloca o semáforo no estado inicial
CL - Aula 16 17
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar um controlador para um § FSM do tipo Moore
sinal de trânsito q As saídas (LA e LB) são indicadas em
q Vamos instalar dois sensores nas avenidas cada estado
Academic e Bravado (TA e TB) Reset
• Retorna verdadeiro se alunos estão presentes 𝑇!
e falso caso contrário 𝑇! S0 S1
q Vamos instalar dois semáforos (LA e LB) LA: green LA: yellow
• Cada semáforo recebe informações do LB: red LB: red
controlador para especificar se deve estar
verde, amarelo ou vermelho
q Teremos um sinal de clock de 5 segundos
• Em cada borda ascendente, o semáforo pode S3 S2
mudar de estado a depender dos valores dos LA: red LA: red
sensores LB: yellow LB: green
q Também há um botão de reset 𝑇" 𝑇"
• Coloca o semáforo no estado inicial
CL - Aula 16 18
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Iniciamos nosso projeto através da codificação § FSM do tipo Moore
dos estados e das saídas existentes no diagrama
S0 00 green 00
S1 01 yellow 01
S2 10 red 10
S3 11 - -
CL - Aula 16 19
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar a lógica de próximo estado
§ FSM do tipo Moore
q Entradas: TA, TB, Estado atual S1:0
q Saídas: Próximo estado S’1:0
CL - Aula 16 20
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar a lógica de próximo estado
§ FSM do tipo Moore
q Entradas: TA, TB, Estado atual S1:0
q Saídas: Próximo estado S’1:0
CL - Aula 16 21
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar a lógica de próximo estado
§ FSM do tipo Moore
q Entradas: TA, TB, Estado atual S1:0
q Saídas: Próximo estado S’1:0
CL - Aula 16 22
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar a lógica de próximo estado
§ FSM do tipo Moore
q Entradas: TA, TB, Estado atual S1:0
q Saídas: Próximo estado S’1:0
CL - Aula 16 23
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar a lógica de próximo estado
§ FSM do tipo Moore
q Entradas: TA, TB, Estado atual S1:0
q Saídas: Próximo estado S’1:0
CL - Aula 16 24
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar a lógica de próximo estado
§ FSM do tipo Moore
q Entradas: TA, TB, Estado atual S1:0
q Saídas: Próximo estado S’1:0
CL - Aula 16 25
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar a lógica de próximo estado
§ FSM do tipo Moore
q Entradas: TA, TB, Estado atual S1:0
q Saídas: Próximo estado S’1:0
CL - Aula 16 26
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar a lógica de próximo estado
§ FSM do tipo Moore
q Entradas: TA, TB, Estado atual S1:0
q Saídas: Próximo estado S’1:0
0 0 yellow 01
0 1 red 10
1 0 - -
1 1
CL - Aula 16 29
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar a lógica de saída
§ FSM do tipo Moore
q Entradas: Estado atual S1:0
q Saídas: Acionamento dos LEDs
0 0 0 0 1 0 yellow 01
0 1 red 10
1 0 - -
1 1
CL - Aula 16 30
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar a lógica de saída
§ FSM do tipo Moore
q Entradas: Estado atual S1:0
q Saídas: Acionamento dos LEDs
0 0 0 0 1 0 yellow 01
0 1 0 1 1 0 red 10
1 0 - -
1 1
CL - Aula 16 31
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar a lógica de saída
§ FSM do tipo Moore
q Entradas: Estado atual S1:0
q Saídas: Acionamento dos LEDs
0 0 0 0 1 0 yellow 01
0 1 0 1 1 0 red 10
1 0 1 0 0 0 - -
1 1
CL - Aula 16 32
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar a lógica de saída
§ FSM do tipo Moore
q Entradas: Estado atual S1:0
q Saídas: Acionamento dos LEDs
0 0 0 0 1 0 yellow 01
0 1 0 1 1 0 red 10
1 0 1 0 0 0 - -
1 1 1 0 0 1
CL - Aula 16 33
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar a lógica de saída
§ FSM do tipo Moore
q Entradas: Estado atual S1:0
q Saídas: Acionamento dos LEDs
0 0 0 0 1 0 yellow 01
0 1 0 1 1 0 red 10
1 0 1 0 0 0 - -
1 1 1 0 0 1
𝐿!# = 𝑆#
CL - Aula 16 34
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar a lógica de saída
§ FSM do tipo Moore
q Entradas: Estado atual S1:0
q Saídas: Acionamento dos LEDs
0 0 0 0 1 0 yellow 01
0 1 0 1 1 0 red 10
1 0 1 0 0 0 - -
1 1 1 0 0 1
𝐿!# = 𝑆#
𝐿!$ = 𝑆%# 𝑆$
CL - Aula 16 35
EXEMPLO DE FSM
Criação do Diagrama de Estados
§ Vamos projetar a lógica de saída
§ FSM do tipo Moore
q Entradas: Estado atual S1:0
q Saídas: Acionamento dos LEDs
0 0 0 0 1 0 yellow 01
0 1 0 1 1 0 red 10
1 0 1 0 0 0 - -
1 1 1 0 0 1
0 0 0 0 1 0 yellow 01
0 1 0 1 1 0 red 10
1 0 1 0 0 0 - -
1 1 1 0 0 1
CL - Aula 16 38
EXEMPLO DE FSM
CL - Aula 16 39
EXEMPLO DE FSM
CL - Aula 16 40
EXEMPLO DE FSM
CL - Aula 16 41
EXEMPLO DE FSM
§ Implementação em SystemVerilog
parameter S0 = 2'b00;
parameter S1 = 2'b01;
parameter S2 = 2'b10;
parameter S3 = 2'b11;
module fsm_moore(input logic Ta, Tb, clk, reset, //Update State Register S2:
output logic [1:0] La, Lb); always@(posedge clk) begin
begin La = 2'b10; //red
parameter S0 = 2'b00; current_state <= reset == 0 ? S0 : next_state; Lb = 2'b00; //green
parameter S1 = 2'b01; end end
parameter S2 = 2'b10; S3:
parameter S3 = 2'b11; //Output Logic begin
always@(current_state) La = 2'b10; //red
logic [1:0] current_state, next_state; begin Lb = 2'b01; //yellow
case(current_state) end
//Next State Logic S0: default:
always@(Ta or Tb or current_state) begin begin
begin La = 2'b00; //green La = 2'b00; //green -- corresponds to S0
case(current_state) Lb = 2'b10; //red Lb = 2'b10; //red
S0: next_state = Ta ? S0 : S1; end end
S1: next_state = S2; S1: endcase
S2: next_state = Tb ? S2 : S3; begin end
S3: next_state = S0; La = 2'b01; //yellow endmodule
default: next_state = S0; Lb = 2'b10; //red
endcase end
end CL - Aula 16 44
EXEMPLO DE FSM
CL - Aula 16 45
EXEMPLO DE FSM (2)
CL - Aula 16 46
EXEMPLO DE FSM (2)
CL - Aula 16 47
EXEMPLO DE FSM (2)
Diagrama de Transição de Estados
§ Alyssa P. Hacker tem um caramujo que FSM Moore
desliza sobre um fita de papel com 1’s e
0’s sobre ela. Cada vez que o caramujo Reset
percebe que os últimos dois dígitos S0
percorridos foi 01, ele sorri. Vamos Y=0
desenhar uma FSM do tipo Moore que
represente o cérebro do caramujo.
CL - Aula 16 48
EXEMPLO DE FSM (2)
Diagrama de Transição de Estados
§ Alyssa P. Hacker tem um caramujo que FSM Moore
desliza sobre um fita de papel com 1’s e
0’s sobre ela. Cada vez que o caramujo Reset A=0
CL - Aula 16 49
EXEMPLO DE FSM (2)
Diagrama de Transição de Estados
§ Alyssa P. Hacker tem um caramujo que FSM Moore
desliza sobre um fita de papel com 1’s e
0’s sobre ela. Cada vez que o caramujo Reset A=0 A=1
CL - Aula 16 50
EXEMPLO DE FSM (2)
Diagrama de Transição de Estados
§ Alyssa P. Hacker tem um caramujo que FSM Moore
desliza sobre um fita de papel com 1’s e
0’s sobre ela. Cada vez que o caramujo Reset A=0 A=1
CL - Aula 16 51
EXEMPLO DE FSM (2)
Diagrama de Transição de Estados
§ Projetando a lógica de próximo estado FSM Moore
Tabela: Lógica de Próximo Estado A=0 A=1
Reset
Entradas Saídas
Estado Atual Dígito Lido Próximo Estado S0 S1 S2
S1 S0 A S’1 S’0 Y=0 Y=0 Y=1
A=0 A=0
0 0 0 A=1
A=1
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
CL - Aula 16 52
EXEMPLO DE FSM (2)
Diagrama de Transição de Estados
§ Projetando a lógica de próximo estado FSM Moore
Tabela: Lógica de Próximo Estado A=0 A=1
Reset
Entradas Saídas
Estado Atual Dígito Lido Próximo Estado S0 S1 S2
S1 S0 A S’1 S’0 Y=0 Y=0 Y=1
A=0 A=0
0 0 0 0 1 A=1
A=1
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
CL - Aula 16 53
EXEMPLO DE FSM (2)
Diagrama de Transição de Estados
§ Projetando a lógica de próximo estado FSM Moore
Tabela: Lógica de Próximo Estado A=0 A=1
Reset
Entradas Saídas
Estado Atual Dígito Lido Próximo Estado S0 S1 S2
S1 S0 A S’1 S’0 Y=0 Y=0 Y=1
A=0 A=0
0 0 0 0 1 A=1
A=1
0 0 1 0 0
0 1 0
0 1 1
1 0 0
1 0 1
CL - Aula 16 54
EXEMPLO DE FSM (2)
Diagrama de Transição de Estados
§ Projetando a lógica de próximo estado FSM Moore
Tabela: Lógica de Próximo Estado A=0 A=1
Reset
Entradas Saídas
Estado Atual Dígito Lido Próximo Estado S0 S1 S2
S1 S0 A S’1 S’0 Y=0 Y=0 Y=1
A=0 A=0
0 0 0 0 1 A=1
A=1
0 0 1 0 0
0 1 0 0 1
0 1 1
1 0 0
1 0 1
CL - Aula 16 55
EXEMPLO DE FSM (2)
Diagrama de Transição de Estados
§ Projetando a lógica de próximo estado FSM Moore
Tabela: Lógica de Próximo Estado A=0 A=1
Reset
Entradas Saídas
Estado Atual Dígito Lido Próximo Estado S0 S1 S2
S1 S0 A S’1 S’0 Y=0 Y=0 Y=1
A=0 A=0
0 0 0 0 1 A=1
A=1
0 0 1 0 0
0 1 0 0 1
0 1 1 1 0
1 0 0
1 0 1
CL - Aula 16 56
EXEMPLO DE FSM (2)
Diagrama de Transição de Estados
§ Projetando a lógica de próximo estado FSM Moore
Tabela: Lógica de Próximo Estado A=0 A=1
Reset
Entradas Saídas
Estado Atual Dígito Lido Próximo Estado S0 S1 S2
S1 S0 A S’1 S’0 Y=0 Y=0 Y=1
A=0 A=0
0 0 0 0 1 A=1
A=1
0 0 1 0 0
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1
CL - Aula 16 57
EXEMPLO DE FSM (2)
Diagrama de Transição de Estados
§ Projetando a lógica de próximo estado FSM Moore
Tabela: Lógica de Próximo Estado A=0 A=1
Reset
Entradas Saídas
Estado Atual Dígito Lido Próximo Estado S0 S1 S2
S1 S0 A S’1 S’0 Y=0 Y=0 Y=1
A=0 A=0
0 0 0 0 1 A=1
A=1
0 0 1 0 0
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 0 0
CL - Aula 16 58
EXEMPLO DE FSM (2)
Diagrama de Transição de Estados
§ Projetando a lógica de próximo estado FSM Moore
Tabela: Lógica de Próximo Estado A=0 A=1
Reset
Entradas Saídas
Estado Atual Dígito Lido Próximo Estado S0 S1 S2
S1 S0 A S’1 S’0 Y=0 Y=0 Y=1
A=0 A=0
0 0 0 0 1 A=1
A=1
0 0 1 0 0
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 0 0
𝑆’# = 𝑆$ 𝐴
CL - Aula 16 59
EXEMPLO DE FSM (2)
Diagrama de Transição de Estados
§ Projetando a lógica de próximo estado FSM Moore
Tabela: Lógica de Próximo Estado A=0 A=1
Reset
Entradas Saídas
Estado Atual Dígito Lido Próximo Estado S0 S1 S2
S1 S0 I S’1 S’0 Y=0 Y=0 Y=1
A=0 A=0
0 0 0 0 1 A=1
A=1
0 0 1 0 0
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 0 0
𝑆’# = 𝑆$ 𝐴
𝑆’$ = 𝐴̅
CL - Aula 16 60
EXEMPLO DE FSM (2)
Diagrama de Transição de Estados
§ Projetando a lógica de saída FSM Moore
Tabela: Lógica de Saída A=0 A=1
Reset
Entradas Saídas
Estado Atual Sorrir?
S0 S1 S2
Y=0 Y=0 Y=1
S1 S0 Y
A=0 A=0
A=1
0 0 A=1
0 1
1 0
CL - Aula 16 61
EXEMPLO DE FSM (2)
Diagrama de Transição de Estados
§ Projetando a lógica de saída FSM Moore
Tabela: Lógica de Saída A=0 A=1
Reset
Entradas Saídas
Estado Atual Sorrir?
S0 S1 S2
Y=0 Y=0 Y=1
S1 S0 Y
A=0 A=0
A=1
0 0 0 A=1
0 1
1 0
CL - Aula 16 62
EXEMPLO DE FSM (2)
Diagrama de Transição de Estados
§ Projetando a lógica de saída FSM Moore
Tabela: Lógica de Saída A=0 A=1
Reset
Entradas Saídas
Estado Atual Sorrir?
S0 S1 S2
Y=0 Y=0 Y=1
S1 S0 Y
A=0 A=0
A=1
0 0 0 A=1
0 1 0
1 0
CL - Aula 16 63
EXEMPLO DE FSM (2)
Diagrama de Transição de Estados
§ Projetando a lógica de saída FSM Moore
Tabela: Lógica de Saída A=0 A=1
Reset
Entradas Saídas
Estado Atual Sorrir?
S0 S1 S2
Y=0 Y=0 Y=1
S1 S0 Y
A=0 A=0
A=1
0 0 0 A=1
0 1 0
1 0 1
CL - Aula 16 64
EXEMPLO DE FSM (2)
Diagrama de Transição de Estados
§ Projetando a lógica de saída FSM Moore
Tabela: Lógica de Saída A=0 A=1
Reset
Entradas Saídas
Estado Atual Sorrir?
S0 S1 S2
Y=0 Y=0 Y=1
S1 S0 Y
A=0 A=0
A=1
0 0 0 A=1
0 1 0
1 0 1
𝑌 = 𝑆#
CL - Aula 16 65
EXEMPLO DE FSM (2)
Como projetar uma FSM do tipo
§ Alyssa P. Hacker tem um caramujo que Mealy?
desliza sobre um fita de papel com 1’s e
0’s sobre ela. Cada vez que o caramujo
percebe que os últimos dois dígitos
percorridos foi 01, ele sorri. Vamos
desenhar uma FSM do tipo Moore que
represente o cérebro do caramujo.
CL - Aula 16 66
EXEMPLO DE FSM (2)
Como projetar uma FSM do tipo
§ Alyssa P. Hacker tem um caramujo que Mealy?
desliza sobre um fita de papel com 1’s e
0’s sobre ela. Cada vez que o caramujo Note que a lógica de saída depende,
percebe que os últimos dois dígitos também, da entrada!
percorridos foi 01, ele sorri. Vamos
desenhar uma FSM do tipo Moore que
represente o cérebro do caramujo.
CL - Aula 16 67
EXEMPLO DE FSM (2)
Como projetar uma FSM do tipo
§ Alyssa P. Hacker tem um caramujo que Mealy?
desliza sobre um fita de papel com 1’s e
0’s sobre ela. Cada vez que o caramujo Note que a lógica de saída depende,
percebe que os últimos dois dígitos também, da entrada!
percorridos foi 01, ele sorri. Vamos
desenhar uma FSM do tipo Moore que Os arcos do diagrama de estados
apresentará, também, o valor da
represente o cérebro do caramujo. saída!
CL - Aula 16 68
EXEMPLO DE FSM (2)
Diagrama de Estados
§ Alyssa P. Hacker tem um caramujo que FSM Mealy
desliza sobre um fita de papel com 1’s e
0’s sobre ela. Cada vez que o caramujo Reset
percebe que os últimos dois dígitos
S0
percorridos foi 01, ele sorri. Vamos
desenhar uma FSM do tipo Moore que
represente o cérebro do caramujo.
CL - Aula 16 69
EXEMPLO DE FSM (2)
Diagrama de Estados
§ Alyssa P. Hacker tem um caramujo que FSM Mealy
desliza sobre um fita de papel com 1’s e
0’s sobre ela. Cada vez que o caramujo Reset
Não há indicação do valor da saída
percebe que os últimos dois dígitos no estado! A saída depende,
S0
percorridos foi 01, ele sorri. Vamos também, do valor da entrada!
desenhar uma FSM do tipo Moore que
represente o cérebro do caramujo.
CL - Aula 16 70
EXEMPLO DE FSM (2)
Diagrama de Estados
§ Alyssa P. Hacker tem um caramujo que FSM Mealy
desliza sobre um fita de papel com 1’s e
0’s sobre ela. Cada vez que o caramujo Reset
A=0/Y=0
CL - Aula 16 71
EXEMPLO DE FSM (2)
Diagrama de Estados
§ Alyssa P. Hacker tem um caramujo que FSM Mealy
desliza sobre um fita de papel com 1’s e
0’s sobre ela. Cada vez que o caramujo Reset
A=0/Y=0
CL - Aula 16 72
EXEMPLO DE FSM (2)
Diagrama de Estados
§ Alyssa P. Hacker tem um caramujo que FSM Mealy
desliza sobre um fita de papel com 1’s e
0’s sobre ela. Cada vez que o caramujo Reset
A=0/Y=0
CL - Aula 16 73
EXEMPLO DE FSM (2)
Diagrama de Estados
§ Projetando a lógica de próximo estado FSM Mealy
Tabela: Lógica de Próximo Estado A=0/Y=0
Entradas Saídas Reset
Estado Atual Dígito Lido Próximo Estado
S0 S1
S0 A S’0
0 0 A=1/Y=0 A=0/Y=0
0 1 A=1/Y=1
1 0
1 1 Apenas 2 estados foram necessários!
CL - Aula 16 74
EXEMPLO DE FSM (2)
Diagrama de Estados
§ Projetando a lógica de próximo estado FSM Mealy
Tabela: Lógica de Próximo Estado A=0/Y=0
Entradas Saídas Reset
Estado Atual Dígito Lido Próximo Estado
S0 S1
S0 A S’0
0 0 1 A=1/Y=0 A=0/Y=0
0 1 A=1/Y=1
1 0
1 1 Apenas 2 estados foram necessários!
CL - Aula 16 75
EXEMPLO DE FSM (2)
Diagrama de Estados
§ Projetando a lógica de próximo estado FSM Mealy
Tabela: Lógica de Próximo Estado A=0/Y=0
Entradas Saídas Reset
Estado Atual Dígito Lido Próximo Estado
S0 S1
S0 A S’0
0 0 1 A=1/Y=0 A=0/Y=0
0 1 0 A=1/Y=1
1 0
1 1 Apenas 2 estados foram necessários!
CL - Aula 16 76
EXEMPLO DE FSM (2)
Diagrama de Estados
§ Projetando a lógica de próximo estado FSM Mealy
Tabela: Lógica de Próximo Estado A=0/Y=0
Entradas Saídas Reset
Estado Atual Dígito Lido Próximo Estado
S0 S1
S0 A S’0
0 0 1 A=1/Y=0 A=0/Y=0
0 1 0 A=1/Y=1
1 0 1
1 1 Apenas 2 estados foram necessários!
CL - Aula 16 77
EXEMPLO DE FSM (2)
Diagrama de Estados
§ Projetando a lógica de próximo estado FSM Mealy
Tabela: Lógica de Próximo Estado A=0/Y=0
Entradas Saídas Reset
Estado Atual Dígito Lido Próximo Estado
S0 S1
S0 A S’0
0 0 1 A=1/Y=0 A=0/Y=0
0 1 0 A=1/Y=1
1 0 1
1 1 0 Apenas 2 estados foram necessários!
CL - Aula 16 78
EXEMPLO DE FSM (2)
Diagrama de Estados
§ Projetando a lógica de próximo estado FSM Mealy
Tabela: Lógica de Próximo Estado A=0/Y=0
Entradas Saídas Reset
Estado Atual Dígito Lido Próximo Estado
S0 S1
S0 A S’0
0 0 1 A=1/Y=0 A=0/Y=0
0 1 0 A=1/Y=1
1 0 1
1 1 0 Apenas 2 estados foram necessários!
𝑆’$ = 𝐴̅
CL - Aula 16 79
EXEMPLO DE FSM (2)
Diagrama de Estados
§ Projetando a lógica de saída FSM Mealy
CL - Aula 16 80
EXEMPLO DE FSM (2)
Diagrama de Estados
§ Projetando a lógica de saída FSM Mealy
CL - Aula 16 81
EXEMPLO DE FSM (2)
Diagrama de Estados
§ Projetando a lógica de saída FSM Mealy
CL - Aula 16 82
EXEMPLO DE FSM (2)
Diagrama de Estados
§ Projetando a lógica de saída FSM Mealy
CL - Aula 16 83
EXEMPLO DE FSM (2)
Diagrama de Estados
§ Projetando a lógica de saída FSM Mealy
CL - Aula 16 84
EXEMPLO DE FSM (2)
Diagrama de Estados
§ Projetando a lógica de saída FSM Mealy
𝑌 = 𝑆$ 𝐴
CL - Aula 16 85
EXEMPLO DE FSM (2)
CLK
S'0 S0 Y
r
Reset
CL - Aula 16 86
EXEMPLO DE FSM
FSM Moore
§ O diagrama temporal para a FSM projetada é apresentado abaixo
FSM Mealy
CL - Aula 16 87
IMPLEMENTAÇÕES EM SYSTEMVERILOG
CL - Aula 05
88
FSM - MOORE
§ Vamos implementar a FSM S2: next_state = A ? S0 : S1;
default: next_state = S0;
anterior endcase
end
//Update State Register
always@(posedge clk)
begin
current_state <= reset == 0 ? S0 : next_state;
end
module fsm_moore(input logic A, clk, reset, //Output Logic
output logic Y); always@(current_state)
parameter S0 = 2'b00; begin
parameter S1 = 2'b01; case(current_state)
parameter S2 = 2'b10; S0: Y=0;
parameter S3 = 2'b11; S1: Y=0;
logic [1:0] current_state, next_state; S2: Y=1;
//Next State Logic default: Y = 0;
always@(A or current_state) endcase
begin end
case(current_state) endmodule
S0: next_state = A ? S0 : S1;
S1: next_state = A ? S2: S1; CL - Aula 16 89
FSM - MEALY
§ Vamos implementar a FSM default: next_state = S0;
endcase
anterior end
//Update State Register
always@(posedge clk)
begin
current_state <= reset == 0 ? S0 : next_state;
end
//Output Logic
module fsm_mealy(input logic A, clk, reset, always@(A or current_state)
output logic Y); begin
parameter S0 = 1'b0; case(current_state)
parameter S1 = 1'b1; S0: Y=0;
logic current_state, next_state; S1: Y = A ? 1'b1 : 1'b0;
//Next State Logic default: Y = 1'b0;
always@(A or current_state) endcase
begin end
case(current_state) endmodule
S0: next_state = A ? S0 : S1;
S1: next_state = A ? S0: S1;
CL - Aula 16 90
EXERCÍCIOS
CL - Aula 05
91
ALGUMA DÚVIDA?
CL - Aula 05
92