定義済みの構造体の配列であるモジュール パラメーターがあります。この配列のデフォルト サイズを 1 要素に設定しました。アイデアは、インスタンス化時に適切なサイズでオーバーライドすることです。
以下に示す方法は、サイズをオーバーライドしません。最初の値をオーバーライドするだけです。サイズフィールドがパラメーター化されていないため、なぜこれを行うのかがわかります。サイズのパラメーターを渡すよりも良い方法はありますか?
お手伝いありがとう。
module reg_slave
#(parameter
reg_pkg::defval_pair [0:0] REG_DEFVAL = '0 //param decl with size=1
)();
endmodule : reg_slave
module top();
localparam reg_pkg::defval_pair [1:0] REG_DEFVAL = '{
{3,'h32},
{0,'h1}
}; //param of same type and size = 2
reg_slave #(
.REG_DEFVAL(REG_DEFVAL) //trying to override the size.
)
reg_slave_inst ();
endmodule : top
package reg_pkg;
typedef struct packed { int ADDR; bit [31:0] VAL;} defval_pair;
endpackage : reg_pkg