20 / 36 · 概念
以舊值計算新值
解讀非阻塞賦值及重設優先順序。
單元可免費閱讀,註冊課程即可儲存學習進度。
學習目標
- 解讀非阻塞賦值及重設優先順序。
從舊狀態計算新狀態
count<=count+2'b01 的右側是更新前的值,若為 01,下一值為 10。非阻塞賦值 <= 將已計算的值排入非阻塞更新階段;多個暫存器同時更新時,也應分開舊值與新值。
always_ff @(posedge clk)
if (rst) count <= 2'b00;
else count <= count + 2'b01;每個邊緣只走一個分支
if/else 只選一個分支。rst=1 就存 00,不會同一邊緣重設後再走增加分支成 01。手算表應列目前 count、rst、所選分支及下一 count,檢查優先順序與回繞。
自己試試看
count=11、rst=1 的上升緣結果為 00 還是 01?
查看解說
00,已選重設分支,不執行增加分支。
✓ 已學習