4位二进制加法器的实现
在实现1位全加器的基础上,将加数的位数进行扩展即可得到4位全加器,甚至多位的加法器。实现的方法仍可以用例化1位全加器的方法。硬件框图如下:
结合前述文章的全加器的代码,可得4位全加器的Verilog代码:
module C_4Full_Adder(
input [3:0] A, //4位数据输入
input [3:0] B,
output [3:0] Sum, //和
output Count //进位
);
wire C0;
wire C1;
wire C2;
/*
A[0]+B[0]+CI0 = Sum[0],C0
*/
C1_FullAdd u0C1_FullAdd(
.a(A[0]), //加数
.b(B[0]),
.ci(0), //前进位
.sum(Sum[0]), //和
.cout(C0) //进位
);
/*
A[1]+B[1]+CI1 = Sum[1],C1
*/
C1_FullAdd u1C1_FullAdd(
.a(A[1]), //加数
.b(B[1]),
.ci(C0), //前进位
.sum(Sum[1]), //和
.cout(C1) //进位
);
/*
A[2]+B[2]+CI2 = Sum[2],C2
*/
C1_FullAdd u2C1_FullAdd(
.a(A[2]), //加数
.b(B[2]),
.ci(C1), //前进位
.sum(Sum[2]), //和
.cout(C2) //进位
);
/*
A[3]+B[3]+CI3 = Sum[3],C3
*/
C1_FullAdd u3C1_FullAdd(
.a(A[3]), //加数
.b(B[3]),
.ci(C2), //前进位
.sum(Sum[3]), //和
.cout(Count) //进位
);
endmodule