硬體描述語言與驗證

上方描述的重置種類與動作,下列何者正確?

always @(posedge clk or negedge rst_n)
    if (!rst_n) q <= 0;
    else        q <= d;
  1. A同步重置,只有在rst_n為0的狀態下時脈上升時,q才會變成0
  2. B非同步重置,rst_n一變成0,不必等待時脈,q就立即變成0
  3. Crst_n一變成1,q就變成0
查看答案與解析

正確答案:B. 非同步重置,rst_n一變成0,不必等待時脈,q就立即變成0

由於敏感度清單中包含「negedge rst_n」,所以在rst_n由1變成0的瞬間,區塊也會被執行,與時脈無關,q會變成0。這就是非同步重置。名稱中的「_n」是表示在0時有效的負邏輯訊號的慣例。其優點是即使時脈停止也能重置,但需要注意解除重置的時序。

  • A. 重置的邊緣也是觸發條件,所以不是同步。
  • B. 正確。敏感度清單中有重置的邊緣。
  • C. _n的意思是在0時有效(負邏輯)。
練習這個領域 前往領域頁面

硬體描述語言與驗證的其他題目

  1. 同步重置與非同步重置的差異,下列何者正確?
  2. 在使用非同步重置的電路中,先以2級正反器使重置的解除(由0變為1)與時脈同步,再分送給各電路,其原因下列何者正確?
  3. 以HDL撰寫的狀態機(state machine)的基本架構,下列何者正確?
  4. 在上方狀態機的描述中,於第2個always區塊開頭寫「next = state;」的原因,下列何者正確?
  5. 米利型(Mealy)狀態機的特徵,下列何者正確?

這個領域的比較