参考代码如下,
module add_1bit (a, b, ci, s, co)
input a, b, ci; //Ci为上个进位。
output reg s, co; //co为当前的进位,s为加结果
always@(*)
begin
co = (a&b) | (b&ci) | (ci&a);
if (ci)
s = ! (a^b);
else
s = (a^b);
end
endmodule
module add(a,b,c,sum,cout);
input[1:0] a,b;
input c;
output[1:0] sum;
output cout;
assign {cout,sum}=a+b+c;
endmodule
module adder2(a,b,cin,sum,cout);
input[1:0] a,b;
output[1:0] sum;
output cout;
assign {cout,sum}=a+b+cin;
endmodule