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

[fud] Uniquely named stages #751

Open
rachitnigam opened this issue Oct 27, 2021 · 0 comments
Open

[fud] Uniquely named stages #751

rachitnigam opened this issue Oct 27, 2021 · 0 comments
Labels
C: fud Calyx Driver S: Needs Triage Issue needs some thinking

Comments

@rachitnigam
Copy link
Contributor

The original implementation of fud conflates notions of "state" and "stages". States are file system states that can be transformed by stages. The conflation occurred because most of the time, the name of the final state and the name of the stage are the same.

With #737, fud has a distinction between stages and states. It would be reasonable to assume that the name of each stage should be unique in a fud configuration. This is not the case because the stage abstraction is also used to define configuration information and stages sometimes want to share information between each other.

For example, there can be many stages that invoke the futil CLI tool and therefore, may want to reasonably share the stages.futil.exec field. However, if each stage has a unique name, the they'd have to duplicate this information for each stage.

So, the upshot is that stages both want uniquely indexed information and shared information which means the configuration schema needs some precise mechanism to do this. A simple solution is a new table called shared which allows access to shared data between stages while stages.<stage-name> tables are uniquely indexed by the stage name. This would also fix the weird interface we have for setting execution data where we override the verilog.data field for execution with the interpreter, verilator, and icarus. Once we have shared tables, we can do something like shared.data.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: fud Calyx Driver S: Needs Triage Issue needs some thinking
Projects
None yet
Development

No branches or pull requests

1 participant