clash-lang / clash-lang/clash-protocols

Make a variant of `Df.fifo` that is lower latency when it is empty.

Open
#173 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.