Verilog 如何在有限状态机中找到错误序列?
我想通过verilog中的验证来验证FSM的正确性。 例如,让我们得到下面的FSMVerilog 如何在有限状态机中找到错误序列?,verilog,verification,fsm,Verilog,Verification,Fsm,我想通过verilog中的验证来验证FSM的正确性。 例如,让我们得到下面的FSM always @(*) begin win_n_st = win_c_st; case(win_c_st) IDLE : begin if(winapi_start) win_n_st = VHSYNC_WAIT; else
always @(*) begin
win_n_st = win_c_st;
case(win_c_st)
IDLE : begin
if(winapi_start)
win_n_st = VHSYNC_WAIT;
else
win_n_st = IDLE;
end
VHSYNC_WAIT : begin
if(v_anchor)
win_n_st = FIFO_WR;
else
win_n_st = VHSYNC_WAIT;
end
FIFO_WR : begin
if(winapi_start==0)
win_n_st = IDLE;
else
win_n_st = FIFO_WR;
end
default :;
endcase
end
你可以看到FSM,有三种状态。
第一次等待winapi_开始信号直到1,然后转到下一个stat等待v_锚信号到1,然后转到下一个状态,直到winapi_开始为0
但是如果我们在FSM中得到了意外的信号呢。那么这个FSM是如何工作的呢?
所以我想知道有没有有效的方法来验证FSM?
如果是,请告诉我如何验证FSM?我们有哪种验证方法?您可以通过提供不同的信号和检查FSM/模块响应,使用测试台验证解决方案的正确性 测试台很酷 你可以读更多