Altifigence Academy

16 / 36 · 概念

正反器與時脈致能

定義重設、致能及保持的優先順序。

學習目標

  • 定義重設、致能及保持的優先順序。

保持也是一種行為

正反器在時脈邊緣儲存。只有 en=1 才執行 q<=d,en=0 就保持 q,這不同於使用任意組合邏輯切割時脈。先寫 if(rst) 可讓 rst 與 en 同為 1 時仍由重設優先。

RTL 程式碼節錄
always_ff @(posedge clk) begin
  if (rst) q <= 1'b0;
  else if (en) q <= d;
end

區分循序保持與組合漏寫

同步重設在沒有邊緣時不會單靠 rst 改變 q。always_ff 的條件式不賦值可表示刻意保持;always_comb 則應每條路徑賦值以避免鎖存器。分別測試 rst/en=1/1、0/0、0/1,以區分重設、保持及擷取。

自己試試看

q=1、d=0、rst=0、en=0,下個上升緣後 q 為何?

查看解說

en=0,因此保持原本的 q=1。

此選擇適用於本瀏覽器,隨時可從頁尾變更。