Você está na página 1de 16

ELETRÔNICA DIGITAL

Universidade Federal de Itajubá

Verilog HDL – Máquinas de estados finitos

Prof. Fadul Ferrari Rodor


Verilog | Máquinas de Estado
Máquinas de estado

EELI14- Eletrônica Digital


Verilog | Máquinas de Estado
Máquinas de estado

Mealy Moore

𝑍 = 𝑓(𝑞, 𝑋) 𝑍 = 𝑓(𝑞)
𝑄 = 𝑔(𝑞, 𝑋) 𝑄 = 𝑔(𝑞, 𝑋)
EELI14- Eletrônica Digital
Verilog | Máquinas de Estado
Máquinas de estado – Verilog

Mealy Moore

CLK, X q, X CLK, X q

𝑄 ← 𝑔(𝑞, 𝑋) 𝑍 ← 𝑓(𝑞, 𝑋) 𝑄 ← 𝑔(𝑞, 𝑋) 𝑍 ← 𝑓(𝑞)

EELI14- Eletrônica Digital


Verilog | Máquinas de Estado
Parâmetros

palavra
reservada
limites

parameter [a:b] nome = valor ;

nome único para o valor numérico


parâmetro para o parâmetro

EELI14- Eletrônica Digital


Verilog | Máquinas de Estado
Codificação de estados

Binária Gray “One-hot”

parameter S1=2’b00; parameter [1:0] S1=2’b00; parameter S1=3’b001;


parameter S2=2’b01; parameter [1:0] S2=2’b01; parameter S2=3’b010;
parameter S3=2’b10; parameter [1:0] S3=2’b11; parameter S3=3’b100;

EELI14- Eletrônica Digital


Verilog | Máquinas de Estado
Exemplo: Detecção da sequência “101”

Mealy Moore

EELI14- Eletrônica Digital


Verilog | Máquinas de Estado
Exemplo: Detecção da sequência “101”

module me101(CLK, RST, X, S);


input CLK, X, RST; //entradas
output S; //saída
reg S; //registros
reg [1:0]E; //registro do estado atual

declaração dos estados

transição de estados

geração de saídas

endmodule

EELI14- Eletrônica Digital


Verilog | Máquinas de Estado
Exemplo: Detecção da sequência “101”

Moore

Binária Gray “One-hot”

parameter SA=2’b00; parameter SA=2’b00; parameter SA=4’b0001;


parameter SB=2’b01; parameter SB=2’b01; parameter SB=4’b0010;
parameter SC=2’b10; parameter SC=2’b11; parameter SC=4’b0100;
parameter SD=2’b11; parameter SD=2’b10; parameter SD=4’b1000;

EELI14- Eletrônica Digital


Verilog | Máquinas de Estado
Exemplo: Detecção da sequência “101”
Moore

Transição de estados Geração das saídas


always @(posedge CLK or negedge RST)
begin
if (!RST) always @(E)
E=SA; begin
else case(E)
case(E) SA: S=1’b0;
SA: if (X==1’b1) E=SB, else E=SA; SB: S=1’b0;
SB: if (X==1’b1) E=SB, else E=SC; SC: S=1’b0;
SC: if (X==1’b1) E=SD, else E=SA; SD: S=1’b1;
SD: if (X==1’b1) E=SB, else E=SA; endcase
default: E=AS; end
endcase
end

EELI14- Eletrônica Digital


Verilog | Máquinas de Estado
Exemplo: Detecção da sequência “101”

Mealy

Binária Gray “One-hot”

parameter SA=2’b00; parameter SA=2’b00; parameter SA=3’b0001;


parameter SB=2’b01; parameter SB=2’b01; parameter SB=3’b0010;
parameter SC=2’b10; parameter SC=2’b11; parameter SC=3’b0100;

EELI14- Eletrônica Digital


Verilog | Máquinas de Estado
Exemplo: Detecção da sequência “101”
Mealy

Transição de estados Geração das saídas


always @(posedge CLK or negedge RST)
begin
if (!RST) always @(E or X)
E=SA; begin
else case(E)
case(E) SA: S=1’b0;
SA: if (X==1’b1) E=SB, else E=SA; SB: S=1’b0;
SB: if (X==1’b1) E=SB, else E=SC; SC: if (X==1’v1)
SD: if (X==1’b1) E=SB, else E=SA; S=1’b1;
default: E=AS; else
endcase S=1’b0;
end
default: S=1’b0;
endcase
end
EELI14- Eletrônica Digital
Verilog | Máquinas de estados
Exercício

Desenvolva uma máquina de estados para controlar uma máquina de


venda de refrigerantes com as seguintes características (considere uma
máquina de Moore, valor máximo 3 UND):
Entradas
M Moeda de 1 UND N Nota de 2 UND
Pedido de produtos
R Refrigerante – 2 UND L Lanche – 3 UND
Opções
C Cancelar – Devolver 1 UND
Saídas de liberação
LR Refrigerante LL Lanche LM Liberar moeda
Permitir recebimento
PM Permitir receber moedas PN Permitir receber notas

EELI14- Eletrônica Digital


Verilog | Portas bidirecionais
Exercício

eS0: Estado inicial


eS1: 1 unidade adicionada
eS2: 2 unidades adicionadas
eS3: 3 unidades adicionadas
eLM1: Liberar moeda para situação 1
eLM2: Liberar moeda para situação 2
eLM3: Liberar moeda para situação 3
eLR1: Liberar refrigerante para situação 1
eLR2: Liberar refrigerante para situação 2
eLL: Liberar lanche

EELI14- Eletrônica Digital


Verilog | Bibliografia

• TOCCI, Ronald J.; WIDMER, Neal S.; MOSS, Gregory L.


Sistemas Digitais: princípios e aplicações. Pearson
Prentice Hall, 10ª ou 11ª Edição, 2011, ISBN:
9788576059226.

• WAKERLY, J. F.; Digital Design, Editora Pearson, 4ª


Edição, 2006, ISBN: 9780131733497.

EELI14- Eletrônica Digital


Verilog | Fim

Obrigado

EELI14- Eletrônica Digital