全加器的Verilog描述及测试程序

全加器功能:完成两个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

仿真结果

猜你喜欢

转载自blog.csdn.net/qq_41270858/article/details/108527127