53 lines
1.5 KiB
Ada
53 lines
1.5 KiB
Ada
with Ada.Text_IO; use Ada.Text_IO;
|
|
|
|
procedure Test_4_Bit_Adder is
|
|
|
|
-- The definitions from above
|
|
|
|
function Image (Bit : Boolean) return Character is
|
|
begin
|
|
if Bit then
|
|
return '1';
|
|
else
|
|
return '0';
|
|
end if;
|
|
end Image;
|
|
|
|
function Image (X : Four_Bits) return String is
|
|
begin
|
|
return Image (X (1)) & Image (X (2)) & Image (X (3)) & Image (X (4));
|
|
end Image;
|
|
|
|
A, B, C : Four_Bits; Carry : Boolean;
|
|
begin
|
|
for I_1 in Boolean'Range loop
|
|
for I_2 in Boolean'Range loop
|
|
for I_3 in Boolean'Range loop
|
|
for I_4 in Boolean'Range loop
|
|
for J_1 in Boolean'Range loop
|
|
for J_2 in Boolean'Range loop
|
|
for J_3 in Boolean'Range loop
|
|
for J_4 in Boolean'Range loop
|
|
A := (I_1, I_2, I_3, I_4);
|
|
B := (J_1, J_2, J_3, J_4);
|
|
Carry := False;
|
|
Four_Bits_Adder (A, B, C, Carry);
|
|
Put_Line
|
|
( Image (A)
|
|
& " + "
|
|
& Image (B)
|
|
& " = "
|
|
& Image (C)
|
|
& " "
|
|
& Image (Carry)
|
|
);
|
|
end loop;
|
|
end loop;
|
|
end loop;
|
|
end loop;
|
|
end loop;
|
|
end loop;
|
|
end loop;
|
|
end loop;
|
|
end Test_4_Bit_Adder;
|