Verilog で代入にパラメーター値を使用できますか? パラメータ変数の幅をどうにかして定義できますか?
元:
module mymodule #(parameter type =2)
(...
output [(3+type)-1:0] out);
wire [2:0] rate;
...
assign out = {rate, {1'b0{type}} };
endmodule
type=2 としましょう。次に、ビット長5にしたいと思います。レートはビット長3のままです(3'b100としましょう)。アウトに割り当てるときは、100 000にしたいと思います。
type=6 の場合も同様です。次に、ビット長 9 にしたいと思います。rate はまだビット長 3 のままです (ここでも 3'b100 としましょう)。
構文エラーは発生しませんが、シミュレートしようとすると、「エラー: 連結オペランド "タイプ" の幅が不定です」というメッセージが表示されます。
このような設計上の問題にどのようにアプローチしますか?