Switch DSLX frontend to use proc-scoped channels
- Dominant language
- C++
- Stars
- 1.9k
- Forks
- 283
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 135
Description
Proc-scoped channels (#869) are generally supported in the IR through optimizations and codegen (modulo corner cases) but frontend DSLX support is not yet implemented. Generally, mapping DSLX down to proc-scoped channels in the IR is simpler than the current global channels because at the DSLX level channels are proc-scoped however things will likely be temporarily more complex because we will likely need to support both for a little while as we incrementally switch over existing code.
Here's a possible plan for this:
* Add a flag to the IR converter for using proc-scoped channels.
* Add support for using proc-scoped channels rather than global channels when the flag is enabled.
* Add support for instantiating a proc multiple times when a proc is spawned more than once. This can be done separately from (but after) proc-scoped channel support specifically.
* Incrementally switch over existing designs to use the flag. Likely this will require some fixups in codegen or optimizations to support missing features.
* Remove support for global channels and remove flag.
Contributor guide
Assessment
This issue has not been assessed yet.