`timescale 1ns / 1ps module testbench; reg clk; reg rst; reg [7:0] a; reg [7:0] b; wire [15:0] y; integer file, scenario; // DUT instantiation example DUT ( .clk(clk), .rst(rst), .a(a), .b(b), .y(y) ); // Clock generation initial begin clk = 0; forever #5 clk = ~clk; end initial begin file = $fopen("TBout.txt", "w"); end // Scenario Based Test initial begin // scenario 1 scenario = 1; rst = 1; a = 8'b0000_0000; b = 8'b0000_0000; $fdisplay(file, "scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; $fdisplay(file, "[check]scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; // scenario 2 scenario = 2; rst = 0; a = 8'b0000_0001; b = 8'b0000_0001; $fdisplay(file, "scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; $fdisplay(file, "[check]scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; // scenario 3 scenario = 3; a = 8'b0000_0000; b = 8'b1111_1111; $fdisplay(file, "scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; $fdisplay(file, "[check]scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; // scenario 4 scenario = 4; a = 8'b1111_1111; b = 8'b0000_0000; $fdisplay(file, "scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; $fdisplay(file, "[check]scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; // scenario 5 scenario = 5; a = 8'b1111_1111; b = 8'b1111_1111; $fdisplay(file, "scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; $fdisplay(file, "[check]scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; // scenario 6 scenario = 6; a = 8'b1000_0000; b = 8'b1000_0000; $fdisplay(file, "scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; $fdisplay(file, "[check]scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; // scenario 7 scenario = 7; a = 8'b0000_0001; b = 8'b1000_0000; $fdisplay(file, "scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; $fdisplay(file, "[check]scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; // scenario 8 scenario = 8; a = 8'b1000_0000; b = 8'b0000_0001; $fdisplay(file, "scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; $fdisplay(file, "[check]scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; // scenario 9 scenario = 9; a = 8'b0000_1010; b = 8'b0000_1011; $fdisplay(file, "scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; $fdisplay(file, "[check]scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; // scenario 10 scenario = 10; a = 8'b0111_1111; b = 8'b0111_1111; $fdisplay(file, "scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; $fdisplay(file, "[check]scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; // scenario 11 scenario = 11; a = 8'b0000_1111; b = 8'b1111_0000; $fdisplay(file, "scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; $fdisplay(file, "[check]scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; // scenario 12 scenario = 12; a = 8'b0000_0000; b = 8'b0000_0000; $fdisplay(file, "scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; $fdisplay(file, "[check]scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; // scenario 13 scenario = 13; a = 8'b0000_1111; b = 8'b0000_1111; $fdisplay(file, "scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; $fdisplay(file, "[check]scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; // scenario 14 scenario = 14; a = 8'b0000_1110; b = 8'b0000_1110; $fdisplay(file, "scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; $fdisplay(file, "[check]scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; // scenario 15 scenario = 15; a = 8'b0000_1101; b = 8'b0000_1101; $fdisplay(file, "scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); #10; $fdisplay(file, "[check]scenario: %d, clk = %d, rst = %d, a = %d, b = %d, y = %d", scenario, clk, rst, a, b, y); $fclose(file); $finish; end endmodule