blob: 77d4c7b39915d5f888c40e581c74d8337e1a4897 [file] [log] [blame]
`timescale 1ns / 1ps
//`include "user_module.v"
module user_module_tb;
wire [7:0] io_in;
wire [7:0] io_out;
reg clk, reset, write_en;
reg [4:0] pdm_input;
assign io_in = {pdm_input, write_en, reset, clk};
user_module UUT (.io_in(io_in), .io_out(io_out));
initial begin
$dumpfile("user_module_tb.vcd");
$dumpvars(0, user_module_tb);
end
initial begin
#100_000_000; // Wait a long time in simulation units (adjust as needed).
$display("Caught by trap");
$finish;
end
parameter CLK_HALF_PERIOD = 5;
parameter TCLK = 2*CLK_HALF_PERIOD;
always begin
clk = 1'b1;
#(CLK_HALF_PERIOD);
clk = 1'b0;
#(CLK_HALF_PERIOD);
end
initial
begin
#20
reset = 1;
#(CLK_HALF_PERIOD);
reset = 0;
end
initial begin
write_en = 0;
pdm_input = 5'h00;
#(CLK_HALF_PERIOD);
#(5*TCLK)
write_en = 1;
pdm_input= 5'h08;
#(TCLK);
write_en = 0;
#(63*TCLK);
write_en = 1;
pdm_input= 5'h1a;
#(TCLK);
write_en = 0;
#(63*TCLK);
write_en = 1;
pdm_input= 5'h0f;
#(64*TCLK);
pdm_input= 5'h04;
#(64*TCLK);
$finish;
end
endmodule