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

Using the new FSM component for FSM generation #2394

Open
wants to merge 27 commits into
base: explicit-fsm-compilation
Choose a base branch
from

Conversation

KelvinChung2000
Copy link

@KelvinChung2000 KelvinChung2000 commented Jan 16, 2025

The current implementation can compile FSMs without using the compile-static option. A single FSM manages all the control flow.

An example call will be as follows:
./target/debug/calyx -p all -d papercut -d compile-static -d tdcc -b verilog ./test.futil --nested

Thanks to the FSM construct, both onehot-encoded and binary-encoded FSM can be generated.

See here for details.

@rachitnigam
Copy link
Contributor

What's the relationship between this and #2395?

@KelvinChung2000
Copy link
Author

This is my implementation of using the new FSM to emit the static FSM. I have also improved the quality of the generated FSM by eliminating potentially unnecessary guarding.

#2395 still requires the static-compile and tdcc, but this implementation can generate Verilog without them.

The fixed in #2395 is not included here.

If @parthsarkar17 is happy with my changes, I think we can merge this into the explicit-fsm-compilation since it is not merging to main anyway. Another option would be to merge #2395 to the explicit-fsm-compilation first, then merge this once all the verification and polishing are completed, and then release everything to main.

If necessary, I am happy to have a meeting to talk about how we should move forward.

@rachitnigam
Copy link
Contributor

Sure! Why don't you grab a slot from the Calyx project page and let us know on the Zulip channel: https://github.com/calyxir/project

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

Successfully merging this pull request may close these issues.

3 participants