amaranth icon indicating copy to clipboard operation
amaranth copied to clipboard

`AsyncFIFO` removes data from read domain during read reset

Open Lunaphied opened this issue 3 years ago • 0 comments

Currently the AsyncFIFO will continue to "read" entries from a FIFO that is held in r_rst (read reset) as long as r_rdy (read ready) is set. This behavior is undesirable because the read and write domains might come out of reset at different moments, this behavior will cause the FIFO to potentially be emptied before the read domain even comes out of reset.

I believe the reason for this is that the AsyncFIFO only considers the case of write domain reset at the moment, as there are issues with properly supporting reset in the read domain. However, at the present moment it should at least know not to treat read domain signals as valid until the read domain comes out of reset.

Lunaphied avatar Feb 23 '22 16:02 Lunaphied