有时候需要例化很多个同一个模块,如果一个一个复制粘贴太麻烦了,可以用generate语句批量例化同一个模块。
例如有一个这样的模块:
module test1(
input clk,
input rst_n,
output dout
);
如果要例化10个该模块,可以用generate语句:
genvar i;
generate
for(i=0; i<10; i=i+1)begin:inst
test1 test_inst(
.clk (clk),
.rst_n (rst_n),
.dout (data_temp[i])
);
end
endgenerate
例化出来的模块名编译器自动用begin后面的名字来区分,比如上面这个例子编译后模块名叫inst[0]、inst[1]......