ハードウェア記述言語と検証
上の4ビットのカウンタで、countが15のときにクロックが立ち上がると、countはいくつになるか。
reg [3:0] count;
always @(posedge clk)
count <= count + 1;
- A16
- B0
- C15のまま変わらない
答えと解説を見る
正解:B. 0
4ビットのregは0〜15しか表せません。15(2進数で1111)に1を足すと10000になりますが、上位のビットは入りきらずに捨てられるので、countは0000、つまり0に戻ります。この性質を利用して、決まった数ごとに繰り返すカウンタを作れます。一方で、意図しないところで桁があふれると誤りの原因になるので、信号のビット幅には常に注意が必要です。
- A. 4ビットの範囲は0〜15です。
- B. 正しい。4ビットでは16を表せないので0に戻ります。
- C. 足し算は行われ、あふれて0になります。