用verilog实现全加器
关于全加器的原理,可以参考我的博客半加器与全加器的实现`
下面是用verilig代码实现的4位全加器:
`timescale 1ns/1ps
module addr4 (
input[3:0] data1,
input[3:0] data2,
output [4:0] sum
);
wire c1;
wire c2;
wire c3;
adder_1 u_1(
.a0 (data1[0]),
.b0 (data2[0]),
.c0 (1'b0),
.out1 (sum[0]),
.c1 (c1)
);
adder_1 u_2(
.a0 (data1[1]),
.b0 (data2[1]),
.c0 (c1),
.out1 (sum[1]),
.c1 (c2)
);
adder_1 u_3(
.a0 (data1[2]),
.b0 (data2[2]),
.c0 (c2),
.out1 (sum[2]),
.c1 (c3)
);
adder_1 u_4(
.a0 (data1[3]),
.b0 (data2[3]),
.c0 (c3),
.out1 (sum[3]),
.c1 (sum[4])
);
module adder_1(
input a0,
input b0,
input c0,
output out1,
output c1
);
assign out1 = a0^b0^c0;
assign c1 = ((a0&b0) | (a0 & c0) | (b0 & c0));
endmodule
endmodule
5万+

被折叠的 条评论
为什么被折叠?



