Sumador completo de 4 bits usando dos sumadores completos de 2 bits

-2

Tengo los módulos para un sumador completo de 1 bit y un sumador completo de 2 bits (construido sobre el sumador de 1 bit). ¿Puedo saber cómo podría escribir el sumador de 4 bits posterior basado en el sumador de 2 bits? Esto puede ser un poco poco ortodoxo pero tengo curiosidad por saber que soy nuevo en Verilog. ¡Gracias!

module full_adder(
    input A,
    input B,
    input CIN,
    output S,
    output COUT
    );

    assign S = A ^ B ^ CIN;
    assign COUT = (A & B) | (CIN & (A ^ B));

endmodule

module 2_bit_adder(
    input [1:0] A,
    input [1:0] B,
    input C0,
    output [1:0] S,
    output C2
    );

    wire C1;

    full_adder fu0 (A[0], B[0], C0, S[0], C1);
    full_adder fu1 (A[1], B[1], C1, S[1], C2);

endmodule
    
pregunta stephchia

2 respuestas

0

Puede hacer un sumador de 4 bits a partir de sumadores de 2 bits exactamente de la misma manera que hace un sumador de 2 bits a partir de sumadores de 1 bit. Concatene las entradas y salidas y encadene los acarreos.

    
respondido por el alex.forencich
-1
module full_adder
(in_x, in_y, carry_in, sum_out,
carry_out);

input  in_x;
input  in_y;
input  carry_in;
output sum_out;
output carry_out;

wire w_sum1;
wire w_carry1;
wire w_carry2;

assign carry_out = w_carry1 | w_carry2;

// Instantiate two half-adders to make the circuit. Click here for half-adder rtl

half_adder u1_half_adder
(
   .in_x(in_x),
   .in_y(in_y),
   .out_sum(w_sum1),
   .out_carry(w_carry1)
);                    
half_adder u2_half_adder
(
   .in_x(w_sum1),
   .in_y(carry_in),
   .out_sum(sum_out),
   .out_carry(w_carry2)
);               
endmodule

Crédito

    
respondido por el MUHAMMAD UMAIR ASLAM

Lea otras preguntas en las etiquetas