ハードウェア記述言語と検証
上のようにparameterを使ってmoduleを書く利点として正しいものはどれか。
module adder #(parameter W = 8) (
input [W-1:0] a, b,
output [W:0] s
);
assign s = a + b;
endmodule
- Aparameterを使うと、回路が自動で速くなる
- Bparameterの値は、チップの動作中に自由に変えられる
- C使う場所ごとにWを指定して、同じ記述から8ビットや16ビットなど違う幅の加算器を作れる
答えと解説を見る
正解:C. 使う場所ごとにWを指定して、同じ記述から8ビットや16ビットなど違う幅の加算器を作れる
parameterは、moduleを使うときに値を指定できる定数です。ビット幅やFIFOの深さなどをparameterにしておけば、1つの記述をさまざまな大きさで使い回せ、同じような回路を何度も書く手間と誤りを減らせます。値は論理合成のときに決まり、それぞれの値に合った大きさの回路が作られます。チップが動いている間に変わる値ではないので、実行時に変えたい設定はレジスタで持ちます。
- A. 速さは変わりません。
- B. 合成のときに決まる定数で、動作中には変えられません。
- C. 正しい。設計の再利用がしやすくなります。