|
发表于 2020-3-2 13:56:01
|
显示全部楼层
本帖最后由 dullman 于 2020-3-2 13:57 编辑
实际上很少有人用这种方式例化多个模块的,通常的例化采用generate循环:
wire[1:0][M:0] din ;
wire[1:0][N:0] dout ;
genvar gv_i ;
generate
for (gv_i=0; gv_i<2; gv_i=gv_i+1)
A A_inst (
.clk (clk),
.rst (rst),
.din (dint[gv_i]),
.dout (dout[gv_i]
........
);
公共信号连接到一起,非公共信号各连各的。
你例子里的例化方式的情况,有一种可能适用场合:就是类似于多个相同的I2C设备连接到一起,这些设备信号确实都是并联到一起的:
A A_inst[1:0] (
.scl(scl),
.sda(sda)
);
但即便如此,这些设备中也需要有不同的地方,比如I2C设备其地址是不同的。这些参数只能通过defparam来指定了:
defparam A_inst[0].ADDR=0;
defparam A_inst[1].ADDR=1;
|
|