Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[enhancement] Add runtime-constant values & channels #1653

Open
ericastor opened this issue Oct 8, 2024 · 1 comment
Open

[enhancement] Add runtime-constant values & channels #1653

ericastor opened this issue Oct 8, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@ericastor
Copy link
Collaborator

What's hard to do? (limit 100 words)

Accept values from "configuration registers" and reference them in your circuit. These are values that can be assumed not to change between resets.

Current best alternative workaround (limit 100 words)

In DSLX: Nothing great. The values can be sent through a normal channel, with the other end wired to always be ready and expose the value inside the configuration register on the data line. However, this makes the DSLX block unnecessarily complex.

In XLS IR: We can use single-value channels, but their behavior is underspecified & often implies aspects of state that we don't want.

Your view of the "best case XLS enhancement" (limit 100 words)

Add a new type of channel that passes along values that do not change between resets ("param" channels? "const" channels?). This would need to be exposed in DSLX via some way to express that the value is runtime-constant, but not known at compile time.

It should also be possible to forward these values - or to send derived values - along this same type of runtime-constant channel between XLS procs.

@ericastor ericastor added the enhancement New feature or request label Oct 8, 2024
@ericastor
Copy link
Collaborator Author

@meheff - this is the issue we discussed today!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant