硬體描述語言與驗證

在上方的4位元計數器中,當count為15時時脈上升,count會變成多少?

reg [3:0] count;
always @(posedge clk)
    count <= count + 1;
  1. A16
  2. B0
  3. C維持15不變
查看答案與解析

正確答案:B. 0

4位元的reg只能表示0~15。15(二進位為1111)加1會變成10000,但上位的位元容納不下而被捨棄,所以count會變成0000,也就是回到0。利用這個性質,可以製作每隔固定的數目就重複的計數器。另一方面,若在非預期之處發生位數溢位就會成為錯誤的原因,因此隨時注意訊號的位元寬度是很重要的。

  • A. 4位元的範圍是0~15。
  • B. 正確。4位元無法表示16,所以回到0。
  • C. 加法會進行,並溢位而變成0。
練習這個領域 前往領域頁面

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

  1. 在Verilog中將8位元的訊號a與b相加,並把結果賦值給8位元的訊號s(assign s = a + b;)。需要注意的地方,下列何者正確?
  2. 原本打算將a當作有號的-1,卻如上方般撰寫,結果gt變成了1。原因下列何者正確?
  3. Verilog的模擬中所使用的4值邏輯的值的組合,下列何者正確?
  4. 在模擬中,沒有重置的暫存器的值一開始是X。在實際的晶片中,會變成怎麼樣?
  5. 在上方的描述中,當sel為X(不定)時,Verilog的模擬會讓y選擇b。這個性質在驗證上成為問題的原因,下列何者正確?

這個領域的比較