forked from tanchou/Verilog
		
	
		
			
				
	
	
		
			96 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Verilog
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Verilog
		
	
	
	
	
	
| `timescale 1ns/1ps
 | |
| 
 | |
| module tb_fifo;
 | |
| 
 | |
|     reg clk = 0;
 | |
|     
 | |
|     reg wr_en = 0;
 | |
|     reg rd_en = 0;
 | |
|     reg [7:0] wr_data = 0;
 | |
|     wire [7:0] rd_data;
 | |
|     wire full;
 | |
|     wire empty;
 | |
| 
 | |
|     always #18.5 clk = ~clk;
 | |
| 
 | |
|     fifo #(
 | |
|         .DETPH(16),
 | |
|         .WIDTH(8)
 | |
|     ) fifo_inst (
 | |
|         .clk(clk),
 | |
|         .wr_en(wr_en),
 | |
|         .wr_data(wr_data),
 | |
|         .rd_en(rd_en),
 | |
|         .rd_data(rd_data),
 | |
|         .full(full),
 | |
|         .empty(empty)
 | |
|     );
 | |
| 
 | |
|     initial begin
 | |
|         $dumpfile("runs/fifo.vcd");
 | |
|         $dumpvars(0, tb_fifo);
 | |
| 
 | |
|         wr_en = 1;
 | |
|         wr_data = 8'hAA;
 | |
| 
 | |
|         #37.0;
 | |
| 
 | |
|         wr_en = 0;
 | |
| 
 | |
|         #37.0;
 | |
| 
 | |
|         wr_en = 1;
 | |
|         wr_data = 8'hBB;
 | |
| 
 | |
|         #37.0;
 | |
| 
 | |
|         wr_en = 0;
 | |
| 
 | |
|         #37.0;
 | |
| 
 | |
|         wr_en = 1;
 | |
|         wr_data = 8'hCC;
 | |
| 
 | |
|         #37.0;
 | |
| 
 | |
|         wr_en = 0;
 | |
| 
 | |
|         #37.0;
 | |
| 
 | |
|         $display("rd_data: %h", rd_data);
 | |
| 
 | |
|         rd_en = 1;
 | |
|         $display("rd_data: %h", rd_data);
 | |
|         #37.0;
 | |
| 
 | |
|         rd_en = 0;
 | |
| 
 | |
|         #37.0;
 | |
| 
 | |
|         rd_en = 1;
 | |
|         $display("rd_data: %h", rd_data);
 | |
|         #37.0;
 | |
|         rd_en = 0;
 | |
| 
 | |
|         #37.0;
 | |
|         
 | |
|         rd_en = 1;
 | |
|         $display("rd_data: %h", rd_data);
 | |
|         #37.0;
 | |
|         rd_en = 0;
 | |
| 
 | |
|         #37.0;
 | |
| 
 | |
|         rd_en = 1;
 | |
|         $display("rd_data: %h", rd_data);
 | |
|         #19.0;
 | |
|         rd_en = 0;
 | |
|         
 | |
|         #37.0;
 | |
| 
 | |
| 
 | |
|         $finish;
 | |
|         
 | |
|     end
 | |
| 
 | |
| endmodule |