Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FIFO_FWFT implementation causes output to pause unexpectedly long after flow control assertion #142

Open
JulianKemmerer opened this issue Oct 31, 2022 · 2 comments
Labels
enhancement New feature or request

Comments

@JulianKemmerer
Copy link
Owner

The FIFO_FWFT implementation is correct in its use of valid+ready handshake signaling clock by clock.

However because of the weird way that the implementation uses its 2 cycle latency BRAM, asserting flow control ready=0 one cycle later causes 2 cycles of pause/valid=0 output data in a way that typical streams of data/FIFOs do not do...

Fix this because it can be a corner case folks get stuck on if not strictly following handshake signals...

@JulianKemmerer JulianKemmerer added the enhancement New feature or request label Oct 31, 2022
@JulianKemmerer JulianKemmerer self-assigned this Oct 31, 2022
@JulianKemmerer
Copy link
Owner Author

A similar but not as visible extra latency exists on the write side of the fifo valid in to valid out - running fifo near empty probably doesn't perform exactly as expected duty cycle/rates wise...

@JulianKemmerer
Copy link
Owner Author

Solution is to redo not using the built in dual port fifo prim, but raw VHDL fifo from fifo.h that can have more signals like clock enables that make feedback/buffering through the RAM possible without needing to resort to the current weird implementation with extra buffers.

@JulianKemmerer JulianKemmerer removed their assignment Feb 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant