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

Refactor to Typecheck Chirrtl Correctly #10

Open
dz333 opened this issue Nov 7, 2019 · 0 comments
Open

Refactor to Typecheck Chirrtl Correctly #10

dz333 opened this issue Nov 7, 2019 · 0 comments
Labels
enhancement New feature or request v0.1 Issues that affect version v0.1 of secure-firrtl v0.2 Issues that affect version v0.2 of secure-firrtl

Comments

@dz333
Copy link
Collaborator

dz333 commented Nov 7, 2019

v0.1 typechecks at the Chirrtl level but suffers from a number of soundness bugs due. One of the primary reasons for this is misinterpreting the "last connect semantics" of FIRRTL. Furthermore, label generation modifies the circuit but isn't executed when generating verilog.

v0.2 typechecks at the MidChirrtl level which is after the ExpandWhens pass, which elaborates the last connect semantics. However, this makes typechecking memories difficult since the memory reads and writes are no longer directly associated within a single statement. Furthermore, this elaborates everything into muxes and generates a large number of intermediate computations. This results in security over approximations causing safe circuits to fail to typecheck. It also induces significant overhead in both compilation and solver phases due to the verbose elaboration.

The goal of this issue is to fix the bugs in v0.1 by taking an approach closer to v0.2 that doesn't modify the circuit while still working at the Chirrtl level. This will result in both sound and efficient typechecking.

@dz333 dz333 added enhancement New feature or request v0.1 Issues that affect version v0.1 of secure-firrtl v0.2 Issues that affect version v0.2 of secure-firrtl labels Nov 7, 2019
@dz333 dz333 mentioned this issue Nov 7, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request v0.1 Issues that affect version v0.1 of secure-firrtl v0.2 Issues that affect version v0.2 of secure-firrtl
Projects
None yet
Development

No branches or pull requests

1 participant