解题思路

①先将A和B用半加器加起来,生成和是s[0]和进位信号c[0];

②然后第一个半加器生成的和s[0]与Ci用半加器相加,得到的和s[1]即为全加器的和S;

③全加器进位信号的生成是这样:两次半加器产生的进位信号有一个为1,则全加器的进位信号Co为1。

代码实现

`timescale 1ns/1ns

module add_full(
   input                A   ,
   input                B   ,
   input                Ci  , 

   output	wire        S   ,
   output   wire        Co   
);
    
    wire [1:0] s,c;
    add_half add_half_inst1(A, B, s[0], c[0]);
    add_half add_half_inst2(Ci, s[0], s[1], c[1]);
    
    assign S = s[1];
    assign Co = |c;

endmodule


/********************add_half*********************************/
module add_half(
   input                A   ,
   input                B   ,
 
   output	wire        S   ,
   output   wire        C   
);

assign S = A ^ B;
assign C = A & B;
endmodule