0
mirror of https://gitlab.com/hyperglitch/jellyfish.git synced 2025-11-09 21:27:59 +00:00
jellyfish-powersupply/gw/test/multiplier_tb.sv

65 lines
1004 B
Systemverilog

`timescale 1ns/1ps
// SPDX-FileCopyrightText: 2025 Igor Brkic <igor@hyperglitch.com>
// SPDX-License-Identifier: GPL-3.0-or-later
//TB_DEPS: src/multiplier.v
module multiplier_tb;
reg i_clk;
reg i_rst;
reg i_start;
reg signed [15:0] i_a;
reg signed [15:0] i_b;
wire signed [31:0] o_result;
wire o_ready;
multiplier16 multiplier (
.clk(i_clk),
.rst(i_rst),
.start(i_start),
.a(i_a),
.b(i_b),
.result(o_result),
.ready(o_ready)
);
// generate a clock
initial begin
i_clk = 0;
forever #5 i_clk = ~i_clk; // 10ns clock period, 100MHz
end
initial begin
i_rst = 1;
i_start = 0;
i_a = 0;
i_b = 0;
#10;
i_rst = 0;
#10;
i_start = 1;
i_a = 25;
i_b = -18;
#10;
i_start = 0;
#200;
i_start = 1;
i_a = -138;
i_b = 254;
#10;
i_start = 0;
#200;
$finish;
end
initial begin
$dumpfile("build/multiplier_tb.vcd");
$dumpvars(0, multiplier_tb);
end
endmodule