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

SIRRTL Workplan #14

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

SIRRTL Workplan #14

dz333 opened this issue Nov 7, 2019 · 0 comments
Labels
bug Something isn't working enhancement New feature or request

Comments

@dz333
Copy link
Collaborator

dz333 commented Nov 7, 2019

This issue has been made to track progress on improving the SIRRTL compiler performance, modularity and scope.

The next steps for the SIRRTL compiler follow below (in order of importance):

  1. Start refactoring the v0.2 SIRRTL compiler to operate on CHIRRTL. This involves incorporating some of the label checking designs from the v0.1 compiler, without introducing circuit re-writing. In particular, we need to correctly interpret the "last connect semantics" so that when conditions include the negation of subsequent conditions. We should not incorporate the limitations of v0.1 (such as wires can't be used as labels). Those original decisions were made to simplify the compiler since the contemporary use cases didn't really need it. This improvement is primarily tracked in Refactor to Typecheck Chirrtl Correctly #10 .

  2. Improve the modularity of SIRRTL typechecking by allowing Hoare-style pre and post conditions on modules. Ideally we can also implement condition generation such that these constraints are somewhat inferrable. This improvement is tracked in Better Support for Modular Typechecking #8.

  3. Improve SIRRTL usability. We need to improve the configurability of label formats/interpretations as well as improve error reporting. Currently, a user of SIRRTL needs to have a good understanding of SIRRTL and IFC Lattices to do either of these. Tracked in Support Better IFC Label Configuration #7 and Improve Workflow and Error Messages #13 . Lastly, we should also improve the documentation and example infrastructure by adding a tutorial & demo of insecure information flows in simple circuits; tracked in Add Easy Demo Libraries and Tutorial #12 .

Orthogonally, we should update the base SIRRTL compiler to the newest version of the FIRRTL compiler in order to 1) support new FIRRTL features, such as multiple clocks and 2) incorporate improvements to the compiler itself. This is tracked in #11 .

@dz333 dz333 added bug Something isn't working enhancement New feature or request labels Nov 7, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant