Handshake-runner should allow unbounded FIFOs
- Dominant language
- C++
- Stars
- 2.2k
- Forks
- 524
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 46
Description
The current implementation of the handshake runner implicitly has one buffer place per operation. This is sufficient for models that are generated from the standard-to-handshake conversion, but may not be sufficient
for more general models.
Probably the right path forward is to implement a multi-threaded executable, either in a similar style to the handshake-runner, or through some lowering path (e.g. async dialect -> LLVM + coroutines -> binary) with dynamically growing fifos. Note that a bound can still be useful to detect improperly constructed designs.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by locating the handshake-runner implementation and understanding its one-buffer-per-operation assumption. Compare the proposed multithreaded executable approach with the async dialect to LLVM, coroutines, and binary path; done means general models can use dynamically growing FIFOs while an optional bound can still detect improperly constructed designs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100