`timescale 1us/1us module fifo_tb ( ); reg clk_i; reg rst_i; reg read_i, write_i; reg [7:0] data_i; fifo #( .DATA_WIDTH(8), .DATA_DEPTH(8) ) uut( .clk_i(clk_i), .rst_i(rst_i), .write_i(write_i), .read_i(read_i), .data_i ); string filename; initial begin `ifdef DUMP_FILE_NAME filename=`DUMP_FILE_NAME; `else filename="fifo.lxt2"; `endif $dumpfile(filename); $dumpvars(); clk_i <= 0; rst_i <= 1'b1; read_i = 0; write_i = 0; data_i = 0; end always #10 clk_i = ~clk_i; initial begin #15 for (integer run = 1; run < 3; run++) begin write_i = 1; for (integer addr = 0; addr < 10; addr++) begin data_i = (run << 4) | addr; #20 ; end write_i = 0; read_i = 1; for (integer addr = 0; addr < 10; addr++) begin #20 ; end read_i = 0; #20 ; end #100 $finish(); end endmodule