上传所有文件
This commit is contained in:
138
output/example_mul_tb.v
Normal file
138
output/example_mul_tb.v
Normal file
@@ -0,0 +1,138 @@
|
||||
`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
|
||||
Reference in New Issue
Block a user