Hi all,
I am working on a block that needs to accumulate (at least) K data items and then consume them in a burst, while the next group of items might be flowing in. As the items are not consumed sequentially, a very efficient approach is to have a FIFO interface on the write side and a limited lookahead random access interface one on the read side. The read side works OK. The hard part turned out to be the FIFO full flag setting. I would like to use the full capacity of the FIFO and stall the data writer at the correct moment. Say I want to copy the content of a very big ROM into a 4-elements deep FIFO, the basic logic would be as follows:
writer: process(clock) is begin
if (rising_edge(clock)) then
fifo_write_request -1, "11" => +0).
And here comes the problem: simply setting fifo_full