Extend ModuleSimulator and ModuleTestbench to handle procs
- Dominant language
- C++
- Stars
- 1.9k
- Forks
- 283
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 135
Description
Currently the ModuleSimulator and ModuleTestbench only handle functions. They should be extended to handle procs and channels.
For ModuleTestbench this will require support for multiple independent blocks (which might lower to always blocks) which each feed values or consume values to/from a single channel. The current implementation only supports a single "thread" of execution which make it impossilble to independently feed/consume data for than one channel. To exercise control logic more deeply, the testbench should be able to randomize the timing ready/valid signals on the input or output channels.
Similar to the other proc evaluators, ModuleSimulator would need to have some notion of time. It could accept a number of cycles (or proc ticks) to run, or run until a certain number of outputs are written to outputs channels.
Contributor guide
Assessment
This issue has not been assessed yet.