Как я могу изменить FSM с этим условием?
Скриншот структуры и условий FSM
Это мой источник изображения FSM. Мой профессор сказал, что "мы должны включить это условие", причем условие y = 1 when state == s2 and x == 1
, Я могу спроектировать источники FSM по умолчанию, но я не уверен, как правильно добавить это условие в мои источники FSM.
Как я могу изменить источники?
источники дизайна:
module ex_fsm(clk, x, y );
input clk, x;
output y;
reg [2:0] state, next_state;
parameter s0 = 0, s1 = 1, s2 = 2, s3 = 3, s7 = 7;
always @(posedge clk)
begin
state <= next_state;
end
assign y = (state == s7);
always @ (state or x)
begin
case (state)
s0 : if(x) next_state = s1;
else next_state = s0;
s1 : if(x) next_state = s3;
else next_state = s2;
s2 : if(x) next_state = s2;
else next_state = s3;
s3 : next_state = s0;
s7 : next_state = s0;
default : next_state = s0;
endcase
end
endmodule
//////////////////////////////////////////
-stimulus sources-
module stim_fsm;
reg clk;
reg x;
wire y;
ex_fsm myfsm(
.clk(clk),
.x(x),
.y(y)
);
initial
clk = 0;
always
#5 clk = ~clk;
initial
begin
$monitor($time, " Output y = %d\n", y);
x = 0;
#10 x = 1;
#10 x = 0;
#10 x = 1;
#10 x = 0;
#10 x = 1;
#50 $finish;
end
endmodule