Add support to pipeline entire interfaces using an abstraction
- Dominant language
- Dart
- Stars
- 489
- Forks
- 88
- Avg merge
- 3d 23h
- Merged PRs (30d)
- 10
Description
## Motivation
If modules leverage ROHD's `Interface`s and want them propagated through a `Pipeline` abstraction in ROHD, it requires the user to generate per-port connectivity through the `Pipeline` and reconstruct per-stage `Interface`s. It would be nice if the `Pipeline` abstraction could take care of this automation.
## Desired solution
Add to or extend functionality of `Pipeline` to support pipelining `Interface`s.
## Alternatives considered
We could leave users to manually perform this themselves, which gives more flexibility but also more overhead.
## Additional details
One tricky thing is that constructing a "matching" interface per-cycle depends on the `Interface` implementation. Perhaps this development should be paired with something like an upgrade to `Interface` that requires a "match" method. Maybe something from #36 could be useful.
Contributor guide
Assessment
This issue has not been assessed yet.