全加器功能:完成两个1位二进制数的加法,并考虑进位输入。
真值表 逻辑式
全加器实现方法:用2个半加器组成。
半加器的Verilog描述
module h_adder (A,B,SO,CO);
input A,B;
output SO,CO;
assign SO=A ^ B;
assign CO=A & B;
endmodule
全加器的逻辑电路图(其中net1、net2、net3为中间变量)
全加器的Verilog描述
module f_adder(a,b,ci,co,s);
input a,b,ci;
output co,s;
wire net1,net2,net3;
h_adder U1(a,b,net1,net2);//顺序法关联
h_adder U2(.A(net1),.B(ci),.SO(s),.CO(net3));//命名法关联
or U3(co,net3,net2);//or为底层模块名,U3为例化名,括号内为端口映射
endmodule
测试程序
module test_qjq;
reg A,B,CI;
wire CO,S;
f_adder f_adder1(A,B,CI,CO,S);
always #10 CI =~ CI;
always #20 B =~ B;
always #40 A =~ A;
initial
begin
A = 1'b0; B = 1'b0; CI = 1'b0;
#80 $stop;
end
endmodule
仿真结果