-- FILE: test_addn.adb -- DATE: 8/98 -- AUTHOR: G. Levine -- AIM: Testing program for an n input adder with HDL, UTILITY, ADDN, TEXT_IO; procedure test_addn is SIZE : constant := 4; package ADDER is new ADDN(SIZE); d: ADDER.device; t: integer; begin TEXT_IO.put_line ("carry_in input1 input2 sum carry_out"); for k in FALSE .. TRUE loop d.carry_in := k; for i in 0 .. 2 ** (2*SIZE) - 1 loop t := i; for j in 0.. SIZE-1 loop d.input1 (j) := (t mod 2 /= 0); t := t / 2; end loop; for j in 0 .. SIZE -1 loop d.input2(j) := (t mod 2 /= 0); t := t /2; end loop; UTILITY.put (d.carry_in); TEXT_IO.put(UTILITY.str(d.input1)& " "); TEXT_IO.put(" "); TEXT_IO.put(UTILITY.str(d.input2)& " "); ADDER.update(d); TEXT_IO.put (" "); TEXT_IO.put(UTILITY.str(d.sum)& " "); UTILITY.put (d.carry_out); TEXT_IO.new_line; end loop; end loop; end test_addn;