现在您知道如何构建一个完整的加法器,请创建它的 3 个实例来创建 3 位二进制纹波进位加法器。加法器将两个 3 位数字和一个进位数相加,产生 3 位和并执行。为了鼓励您实际实例化全加器,还要在纹波进位加法器中输出每个全加器的进位。
module top_module(
input [2:0] a, b,
input cin,
output [2:0] cout,
output [2:0] sum );
wire cin1,cin2;
full_adder add1(
.x(a[0]),
.y(b[0]),
.zin(cin),
.zout(cout[0]),
.zsum(sum[0])
);
full_adder add2(
.x(a[1]),
.y(b[1]),
.zin(cout[0]),
.zout(cout[1]),
.zsum(sum[1])
);
full_adder add3(
.x(a[2]),
.y(b[2]),
.zin(cout[1]),
.zout(cout[2]),
.zsum(sum[2])
);
endmodule
module full_adder(
input x,
input y,
input zin,
output zout,
output zsum
);
assign {zout, zsum} = x + y + zin;
endmodule