clash-lang / clash-lang/clash-protocols
Make a variant of `Df.fifo` that is lower latency when it is empty.
- Dominant language
- Haskell
- Stars
- 25
- Forks
- 12
- PR merge metrics
- No merged PRs in 30d
Description
`Df.fifo` has 1 cycle latency even when the fifo is empty. We should add new version that can be configured to have 0 or 1 cycle latency when the fifo is empty. The existing `Df.fifo` can then just be hard-configured to have the 1 cycle latency. This will allow the user to make longest-path vs average latency trade-offs.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by locating the implementation and uses of `Df.fifo` in the repository. Read how its current empty-FIFO latency is defined and check any related tests or examples before deciding how the variant should be configured. Done means the new FIFO supports selectable 0- or 1-cycle empty latency while existing `Df.fifo` remains fixed at 1 cycle.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- stream-processing
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100