Skip to content

Using the new FSM component for FSM generation#2394

Closed
KelvinChung2000 wants to merge 27 commits intocalyxir:explicit-fsm-compilationfrom
KelvinChung2000:my-fsm
Closed

Using the new FSM component for FSM generation#2394
KelvinChung2000 wants to merge 27 commits intocalyxir:explicit-fsm-compilationfrom
KelvinChung2000:my-fsm

Conversation

@KelvinChung2000
Copy link
Copy Markdown
Contributor

@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
Copy Markdown
Contributor

What's the relationship between this and #2395?

@KelvinChung2000
Copy link
Copy Markdown
Contributor 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
Copy Markdown
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

@rachitnigam
Copy link
Copy Markdown
Contributor

Hey @KelvinChung2000! Any updates on the meeting? I can try to make the normal 4pm ET slot work if that's the only one that works for you.

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