例如模块a,代码如下:
module a(
input [2:0] i_a,
output o_b
);
...//中间逻辑省略
endmodule
常规模块例化写法如下:
module tb();
wire [2:0] A;
wire B;
//常规例化a
a a_1(
.i_a (A),
.o_b (B)
);
endmodule
今天读代码时看到模块例化时是有位宽的,代码如下:
module tb();
wire [17:0] A;
wire [ 5:0] B;
//例化a时带位宽
a a_1[5:0](
.i_a (A),
.o_b (B)
);
endmodule
这样例化后,在verdi中打开波形查看代码层级时,可以发现层级为:
tb
|- a_1[0]
|- a_1[1]
|- a_1[2]
|- a_1[3]
|- a_1[4]
|- a_1[5]
猜测信号关系为:
tb.A[17:0]={a_1[5].i_a,a_1[4].i_a,a_1[3].i_a,a_1[2].i_a,a_1[1].i_a,a_1[0].i_a};