根据一位全加器,从低位逐位相加,有进位就往高位递,像极了小时候学的竖式加法运算。

`timescale 1ns/1ns

module add_4(
   input         [3:0]  A   ,
   input         [3:0]  B   ,
   input                Ci  , 

   output	wire [3:0]  S   ,
   output   wire        Co   
);
    wire  [3:0] C;
    add_full add_full_inst1(A[0], B[0], Ci  , S[0], C[0]);
    add_full add_full_inst2(A[1], B[1], C[0], S[1], C[1]);
    add_full add_full_inst3(A[2], B[2], C[1], S[2], C[2]);
    add_full add_full_inst4(A[3], B[3], C[2], S[3], Co  );

endmodule