在下面的問題,Verilog和ASM實施
的ASM圖表顯示的q_next
值與0進行到下一個狀態,但q_next
比較之前,q的值已經與q_next
更新,因此如果我們將q的值與0進行比較,那麼結果在時序和其他參數方面是否相同?
另外應該是什麼類型的q_next and q
?他們應該是reg還是wire?
我附上了ASM圖表和Verilog代碼的屏幕截圖。我也不明白條件框的時間影響(一般來說,我們不能將條件框的輸出置於不依賴於條件框的輸出的單獨狀態)嗎?,
就像處於wait1狀態時一樣,我們檢查sw的值,如果爲true,我們遞減計數器,然後檢查計數器是否已達到零,然後檢查asser db_tick。我想了解從wait1和increment計數器並斷言db_tick時的時間流程。這些階段之間是否存在任何時鐘週期,即從一個狀態轉移到一個條件框?
同樣在Verilog代碼中,我們使用q_load
和q_tick
來控制計數器。當我們可以簡單地控制狀態中的計數器時,爲什麼使用這些信號?
這樣做是爲了確保FSM(控制路徑)控制計數器(數據路徑)?請解釋。提前致謝。