module top_module(
input [99:0] a, b,
input cin,
output [99:0] cout,
output [99:0] sum );
//单个例化与generate复制例化
//单独例化第一个,第一个cin不同
add1 add1_inst1(
.a (a[0]),
.b (b[0]),
.cin (cin),
.cout (cout[0]),
.sum (sum[0])
);
genvar i;//generate for 的变量定义
generate for(i=1;i<100;i++)
begin:add1//begin后加复制的模块名
add1 add1_inst1(
.a (a[i]),
.b (b[i]),
.cin (cout[i-1]),
.cout (cout[i]),
.sum (sum[i])
);
end
endgenerate
endmodule
//定义一个全加器
module add1(input a,input b,input cin,output cout,output sum);
reg [1:0] temp;
assign temp=a+b+cin;
assign cout=temp[1];
assign sum=temp[0];
endmodule