[Verilog]下位moduleのparameterを上位から指定
例1: add #(4,4,4) u1(.clk(clk),.a(a),.b(b),.c(c));
例2: add #(.width_c(4),.width_a(4),.width_b(4) )
add_u(.clk(clk),.a(a),.b(b),.c(c));
例3) ポート宣言でパラメータを用いる場合にも#を使用出来る
//****************************************************
module add #(parameter width_a = 8 ,parameter width_b = 8, parameter width_c = 8)
(
input clk,
input [width_a-1:0] a,
input [width_b-1:0] b,
output reg [width_c:0] c
);
例4)defparamとインスタンス名を使用して
下位モジュールのパラメータを宣言も可能
//****************************************************
module add_4
(
input clk,
input [3:0] a,
input [3:0] b,
output [4:0] c
);
defparam u1.width_a = 4;
defparam u1.width_b = 4 ,u1.width_c = 4;
add u1(.clk(clk),.a(a),.b(b),.c(c));