I am working with a dual port RAM FIFO module that has a 32-bit write port and an 8-bit read port using asynchronous clocks. The full and empty flags use static thresholds...meaning I didn't choose the programmable option...it uses the default setup in COREGen. There are
2048 32-bit elements in the FIFO. I am seeing the FULL flag go high after the 2046th 32-bit write. The 2047th 32-bit write is accepted by the FIFO, but the last 32-bit write causes an overflow and the data is not written into the FIFO.So I went in the COREGen and tried to use the one-time programmable full threshold for the FULL logic and the maximum number it allowed was 2046. Does this mean that an 'X-element' FIFO is really full when X-1 elements have been written? If I need a FIFO to hold 2048 elements do I have to create one with 2049 elements? I looked in the FIFO user guide and haven't seen an exact explanation.
Thanks.