Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Below is a testbench for a ripple carry adder in verilog. Please help me turn th

ID: 673652 • Letter: B

Question

Below is a testbench for a ripple carry adder in verilog. Please help me turn this into a for-loop by replacing lines like #10 A = 1'b0; B = 1'b0; C_IN = 1'b0;

initial
    begin
      #10 $display("A = %b, B = %b, C_IN = %b --> C_OUT = %b, SUM = %b ", A, B, C_IN, C_OUT, SUM);

      A = 1'b0; B = 1'b0; C_IN = 1'b0;
      #10 $display("A = %b, B = %b, C_IN = %b --> C_OUT = %b, SUM = %b ", A, B, C_IN, C_OUT, SUM);

      A = 1'b0; B = 1'b0; C_IN = 1'b1;
      #10 $display("A = %b, B = %b, C_IN = %b --> C_OUT = %b, SUM = %b ", A, B, C_IN, C_OUT, SUM);

      A = 1'b0; B = 1'b1; C_IN = 1'b0;
      #10 $display("A = %b, B = %b, C_IN = %b --> C_OUT = %b, SUM = %b ", A, B, C_IN, C_OUT, SUM);

      A = 1'b0; B = 1'b1; C_IN = 1'b1;
      #10 $display("A = %b, B = %b, C_IN = %b --> C_OUT = %b, SUM = %b ", A, B, C_IN, C_OUT, SUM);

      A = 1'b1; B = 1'b0; C_IN = 1'b0;
      #10 $display("A = %b, B = %b, C_IN = %b --> C_OUT = %b, SUM = %b ", A, B, C_IN, C_OUT, SUM);

      A = 1'b1; B = 1'b0; C_IN = 1'b1;
      #10 $display("A = %b, B = %b, C_IN = %b --> C_OUT = %b, SUM = %b ", A, B, C_IN, C_OUT, SUM);

      A = 1'b1; B = 1'b1; C_IN = 1'b0;
      #10 $display("A = %b, B = %b, C_IN = %b --> C_OUT = %b, SUM = %b ", A, B, C_IN, C_OUT, SUM);

      A = 1'b1; B = 1'b1; C_IN = 1'b1;
      #10 $display("A = %b, B = %b, C_IN = %b --> C_OUT = %b, SUM = %b ", A, B, C_IN, C_OUT, SUM);
    end
endmodule

Which would display :

# A = x, B = x, C_IN = x --> C_OUT = x, SUM = x
#
# A = 0, B = 0, C_IN = 0 --> C_OUT = 0, SUM = 0
#
# A = 0, B = 0, C_IN = 1 --> C_OUT = 0, SUM = 1
#
# A = 0, B = 1, C_IN = 0 --> C_OUT = 0, SUM = 1
#
# A = 0, B = 1, C_IN = 1 --> C_OUT = 1, SUM = 0
#
# A = 1, B = 0, C_IN = 0 --> C_OUT = 0, SUM = 1
#
# A = 1, B = 0, C_IN = 1 --> C_OUT = 1, SUM = 0
#
# A = 1, B = 1, C_IN = 0 --> C_OUT = 1, SUM = 0
#
# A = 1, B = 1, C_IN = 1 --> C_OUT = 1, SUM = 1

THANKS

Explanation / Answer

Program:

initial begin

#10 $display("A = %b, B = %b, C_IN = %b --> C_OUT = %b, SUM = %b ", A, B, C_IN, C_OUT, SUM);

A = 1'b0;B = 1'b0; C_IN = 1'b0; // intializing values to A,B,C

for(i=0;i<=3;i=i+1) begin                             

      for(j=0;j<=1;j=j+1) begin

            for(k=0;k<1;k=k+1) begin

                 {C_OUT,SUM} = A + B + C_IN;

    #10 $display("A = %b, B = %b, C_IN = %b --> C_OUT = %b, SUM = %b ", A, B, C_IN, C_OUT, SUM);

                 C_IN=˜C_IN; // invert C_IN

            end

        B=˜B; // invert B

     end

     A=˜A; // invert A

   end

end

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote