Я пытаюсь создать эту государственную машину в Verilog:Verilog Синхронное состояние машины
я есть:
`timescale 1ns/1ns
module labEightMachine(y, x,clk,clr)
output y;
input [1:2] x;
input clk, clr;
reg [1:2] q;
reg y;
reg nX;
always @ (posedge clk)
begin
if(clr)
{q}<=2'b00;
else
q<= {nX}
end
always @(y,x)
begin
if(q==2'b00)
if(x==2'b00)
q<=2'b00;
else
q<=2'b01;
y<=1;
if(q==2'b01)
if((x==2'b00)||(x==2'b01))
q<=2'b00;
y<=0;
else
q<=2'b11;
y<=0;
if(q==2'b11)
if(x==2'b10)
q<=2'b10;
y<=1;
else
q<=2'b00;
y<=0;
if(q==2'b10)
q<=2'b00;
y<=0;
end
endmodule
Если какой-либо один может помочь, сказав мне, где это неверно, что было бы весьма полезно. Государственные машины путают меня, и я не уверен, что правильно переназначаю все.
Создайте тестовый стенд и выполните симуляцию. – toolic
Для более легкого понимания FSM используют утверждения case, [asic-world] (http://www.asic-world.com/tidbits/verilog_fsm.htm). – Morgan