Fifo Code
Fifo Code
of bits to be used in
pointer
`define BUF_SIZE ( 1<<`BUF_WIDTH )
module fifo( clk, rst, buf_in, buf_out, wr_en, rd_en, buf_empty, buf_full,
fifo_counter );
reg[7:0] buf_out;
reg buf_empty, buf_full;
reg[`BUF_WIDTH:0] fifo_counter;
reg[`BUF_WIDTH -1:0] rd_ptr, wr_ptr; // pointer to read and write
addresses
reg[7:0] buf_mem[`BUF_SIZE -1 : 0]; //
always @(fifo_counter)
begin
buf_empty = (fifo_counter==0);
buf_full = (fifo_counter== `BUF_SIZE);
end
else
buf_out <= buf_out;
end
end
else
buf_mem[ wr_ptr ] <= buf_mem[ wr_ptr ];
end
end
endmodule