硬體描述語言與驗證

上方Verilog的描述經邏輯合成後所產生的電路,下列何者正確?

always @(posedge clk)
    q <= d;
  1. Ad與clk的AND電路
  2. B在時脈上升時取入d的D型正反器
  3. C在時脈為1的期間持續讓d通過的閂鎖器
查看答案與解析

正確答案:B. 在時脈上升時取入d的D型正反器

「always @(posedge clk)」的意思是只在時脈上升的瞬間才執行其中的賦值,邏輯合成會將它變成以邊緣動作的正反器。q會保持時脈上升時d的值,直到下一次上升為止。在同步式電路中,大部分的記憶都是以這種形式撰寫。必須與依位準而非時脈邊緣動作的閂鎖器加以區別。

  • A. 時脈是作為邊緣的觸發來使用,並不會產生AND。
  • B. 正確。posedge表示上升邊緣。
  • C. 因為是以邊緣動作,所以不是閂鎖器。
練習這個領域 前往領域頁面

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

  1. Verilog的非阻塞賦值(<=)的動作,下列何者正確?
  2. 在上方的描述中,時脈上升之前a=0、b=1。上升之後a與b的值會變成什麼?
  3. 原本打算做成2級位移暫存器,卻如上方般以阻塞賦值(=)撰寫。會發生的問題,下列何者正確?
  4. 在Verilog中區分使用賦值種類時的一般準則,下列何者正確?
  5. 在Verilog中寫「always @(*)」的意義,下列何者正確?

這個領域的比較