2017-01-22 38 views
0

Verilog code that my question is about狀態轉換如何以Verilog FSM代碼方式工作?

在上面鏈接的代碼中,這是一個標準的Verilog FSM,我想清楚地說明狀態轉換是如何工作的。代碼的順序部分爲下一個狀態分配,但是我的困惑是它是如何從該順序部分到從組合代碼部分選擇合適的下一個狀態?

在時鐘邊緣,由於「當前狀態」在時鐘邊緣被重新分配了一個新值,它會自動觸發代碼組合部分中的靈敏度列表,這就是正確選擇下一個狀態的值?

回答

1

在你的例子中,@(*)相當於@(state or start or restart)。所以對其中一個信號的任何改變都會導致next_state重新評估。

+0

感謝您的迴應!所以我正確地認爲,因爲順序部分在每個時鐘邊緣都有狀態分配,所以「狀態」被迫改變,觸發@(*)靈敏度列表,然後計算出「next_state」? – Yuerno