U are comparing the read and write pointers to determine when the FIFO goes full and empty. Use numerical values for all signals used above. U will understand better. Imagine a depth of say 16 which gives ADDRESS_WIDTH as log(16) (== 4).
Hi Sir, I already have gone through the code given in the second link but I am not able to understand the quadrant selectors logic, status latch logic, full out logic and empty out logic and how synchronizers and comparators are implemented. It will be greatly helpful to me if you elaborate those implementations.
Thanks in advance
I'm not really interested in analyzing the asic-world code. Usually code found on tutorial websites is not the best quality code around. I figured, since you came asking for code I'd point out that you can find code of dubious origin and quality by doing a web search.
But the real question wasn't "I want some code for an asynchronous FIFO" but was actually supposed to be "I want to understand how to implement an asynchronous FIFO".