google / google/xls

Switch DSLX frontend to use proc-scoped channels

Open
#2,078 0 comments 0 reactions 1 assignee Claimed by @dplassgit View on GitHub
dslx
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.