Files
lowobservable.coax/interface2/fpga/tests/coax_buffer_tb.v
2021-03-29 16:38:10 -05:00

91 lines
1.4 KiB
Verilog

`default_nettype none
`include "assert.v"
module coax_buffer_tb;
reg clk = 0;
initial
begin
forever
begin
#1 clk <= ~clk;
end
end
reg reset = 0;
reg [9:0] write_data = 0;
reg write_strobe = 0;
reg read_strobe = 0;
coax_buffer #(
.DEPTH(16),
.ALMOST_EMPTY_THRESHOLD(4),
.ALMOST_FULL_THRESHOLD(12)
) dut (
.clk(clk),
.reset(reset),
.write_data(write_data),
.write_strobe(write_strobe),
.read_strobe(read_strobe)
);
initial
begin
$dumpfile("coax_buffer_tb.vcd");
$dumpvars(0, coax_buffer_tb);
test_1;
$finish;
end
task test_1;
begin
$display("START: test_1");
write_data = 0;
write_strobe = 0;
read_strobe = 0;
dut_reset;
#16;
repeat (16)
begin
write_strobe = 1;
#2;
write_strobe = 0;
#2;
write_data = write_data + 1;
end
#16;
repeat (16)
begin
read_strobe = 1;
#2;
read_strobe = 0;
#2;
end
#64;
$display("END: test_1");
end
endtask
task dut_reset;
begin
reset = 1;
#2;
reset = 0;
end
endtask
endmodule