【问题标题】:How do I find the error sequence in Finite State Machine?如何在有限状态机中找到错误序列?
【发布时间】:2017-06-29 18:12:43
【问题描述】:

我想通过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                                    
                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,有3个状态。 第一次等待winapi_start信号直到1然后进入下一个状态等待v_anchor信号进入1,然后进入下一个状态,等到winapi_start为0。

但是,如果我们在 FSM 中收到意外信号怎么办。那么这个 FSM 是如何工作的呢? 所以我想知道是否有任何有效的方法来验证 FSM? 如果是,请告诉我如何验证 FSM?我们有哪些验证方法?

【问题讨论】:

    标签: verilog verification fsm


    【解决方案1】:

    您可以通过提供不同的信号并检查 FSM/模块响应来验证您的解决方案的正确性。

    测试台很酷!

    您可以阅读更多here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      • 2014-05-19
      • 1970-01-01
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多