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
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.