Метод 1: Тестовый стенд с утверждениями
module full_adder_tb;
reg a, b, cin;
wire sum, cout;
// Instantiate the full adder module
full_adder FA(a, b, cin, sum, cout);
initial begin
// Test case 1
a = 0; b = 0; cin = 0;
#10 $display("Test case 1: a=%b, b=%b, cin=%b", a, b, cin);
#10 $display("sum=%b, cout=%b", sum, cout);
assert(sum === 0 && cout === 0);
// Test case 2
a = 0; b = 1; cin = 0;
#10 $display("Test case 2: a=%b, b=%b, cin=%b", a, b, cin);
#10 $display("sum=%b, cout=%b", sum, cout);
assert(sum === 1 && cout === 0);
// Test case 3
a = 1; b = 0; cin = 0;
#10 $display("Test case 3: a=%b, b=%b, cin=%b", a, b, cin);
#10 $display("sum=%b, cout=%b", sum, cout);
assert(sum === 1 && cout === 0);
// Test case 4
a = 1; b = 1; cin = 0;
#10 $display("Test case 4: a=%b, b=%b, cin=%b", a, b, cin);
#10 $display("sum=%b, cout=%b", sum, cout);
assert(sum === 0 && cout === 1);
// Add more test cases as needed
$finish;
end
endmodule
Метод 2: Тестовый стенд «стимул-реакция»
module full_adder_tb;
reg a, b, cin;
wire sum, cout;
// Instantiate the full adder module
full_adder FA(a, b, cin, sum, cout);
initial begin
// Test case 1
a = 0; b = 0; cin = 0;
#10 $display("Test case 1: a=%b, b=%b, cin=%b", a, b, cin);
#10 $display("sum=%b, cout=%b", sum, cout);
// Expected outputs for test case 1
if (sum !== 0 || cout !== 0) begin
$display("Test case 1 failed!");
end
// Test case 2
a = 0; b = 1; cin = 0;
#10 $display("Test case 2: a=%b, b=%b, cin=%b", a, b, cin);
#10 $display("sum=%b, cout=%b", sum, cout);
// Expected outputs for test case 2
if (sum !== 1 || cout !== 0) begin
$display("Test case 2 failed!");
end
// Test case 3
a = 1; b = 0; cin = 0;
#10 $display("Test case 3: a=%b, b=%b, cin=%b", a, b, cin);
#10 $display("sum=%b, cout=%b", sum, cout);
// Expected outputs for test case 3
if (sum !== 1 || cout !== 0) begin
$display("Test case 3 failed!");
end
// Test case 4
a = 1; b = 1; cin = 0;
#10 $display("Test case 4: a=%b, b=%b, cin=%b", a, b, cin);
#10 $display("sum=%b, cout=%b", sum, cout);
// Expected outputs for test case 4
if (sum !== 0 || cout !== 1) begin
$display("Test case 4 failed!");
end
// Add more test cases as needed
$finish;
end
endmodule