2022.01.26
1、generate的用法
2、深入理解,模块内部例化其余的模块
知识点:
1、verilog-2001中增加语句
2、generate循环,产生一个对象的多次例化
3、关键词,generate,endgenerate,genvar,localparam
genvar是一个新增的数据类型,标尺变量必须定义为genvar变量
genvar i;产生标尺表里
generate 关键词
for(i=0;i<8;i++)
begin:block 模块名
buffuer buffuer_1
(
.in(in[i]);
);
end
endgerate 对应关键词
module add16 (input a[15:0],input b[15:0],input cin,output sum[15:0],output cout);
// wire [15:0] cin_a;
wire [15:0] cout_a;
assign cout_a[0] = cin;
genvar i;
generate:add
begin
for(i = 0 ; i<16; i++)
begin
add1 addr1 (
.a(a[i]),
.b(b[i]),
.cin(cout_a[i-1]),
.sum(sum[i]),
.cout(cout_a[i])
);
end
end
endgenerate
endmodule