1

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 としましょう)。

構文エラーは発生しませんが、シミュレートしようとすると、「エラー: 連結オペランド "タイプ" の幅が不定です」というメッセージが表示されます。

このような設計上の問題にどのようにアプローチしますか?

4

1 に答える 1

4

繰り返し演算子が逆方向にあります。する必要があります

{type{1'b0}}、 いいえ{1'b0{type}}

そこから構文エラーが表示されないことに驚いています。

于 2013-02-01T01:04:32.480 に答える