4 wire short_full, short_empty, long_full, long_empty;
5 wire casc_full, casc_empty, casc2_full, casc2_empty;
8 wire [7:0] short_do, long_do;
9 wire [7:0] casc_do, casc2_do;
14 shortfifo #(.WIDTH(8)) shortfifo
15 (.clk(clk),.rst(rst),.datain(di),.dataout(short_do),.clear(clear),
16 .read(read),.write(write),.full(short_full),.empty(short_empty));
18 longfifo #(.WIDTH(8), .SIZE(4)) longfifo
19 (.clk(clk),.rst(rst),.datain(di),.dataout(long_do),.clear(clear),
20 .read(read),.write(write),.full(long_full),.empty(long_empty));
22 cascadefifo #(.WIDTH(8), .SIZE(4)) cascadefifo
23 (.clk(clk),.rst(rst),.datain(di),.dataout(casc_do),.clear(clear),
24 .read(read),.write(write),.full(casc_full),.empty(casc_empty));
26 cascadefifo2 #(.WIDTH(8), .SIZE(4)) cascadefifo2
27 (.clk(clk),.rst(rst),.datain(di),.dataout(casc2_do),.clear(clear),
28 .read(read),.write(write),.full(casc2_full),.empty(casc2_empty));
31 initial #1000 rst = 0;
33 always #50 clk = ~clk;
45 if(short_full != long_full)
46 $display("Error: FULL mismatch");
47 if(short_empty != long_empty)
48 $display("Note: EMPTY mismatch, usually not a problem (longfifo has 2 cycle latency)");
49 if(read & (short_do != long_do))
50 $display("Error: DATA mismatch");
53 initial $dumpfile("fifo_tb.vcd");
54 initial $dumpvars(0,fifo_tb);
155 endmodule // longfifo_tb