Skip to content

Canonicalizer#2

Open
rafaelpaniago1 wants to merge 19 commits intomainfrom
canonicalizer
Open

Canonicalizer#2
rafaelpaniago1 wants to merge 19 commits intomainfrom
canonicalizer

Conversation

@rafaelpaniago1
Copy link
Collaborator

  • Added first working version of canonicalizer.
  • Added test cases to assert correcteness and effectiveness in multiple verilog files.

Adding LSP file
- Basic functions
- Function to find reverse topological ordering (Later used in
  flattening)
Flattening should use straight topological ordering instead of reverse.
- Implemente function that uses topological order to flatten nodes
- Fixed small bug in topological order function
- Changed flattening function to not flatten variables that have cyclic
  dependencies with others in the data flow graph. Future implementation
  will identify strongly connected components to allow "semi flattening"
  of such variables.
Fixing bug that corrupted the data integrity of the current state of the data flow graph inside the processing of elements from the topological ordering.
1 - Slice extraction was performed with and without canonicalization
2 - Flattening seems to work properly in all files tested so far
3 - Some of the files were canonicalized by the CIRCT frontend, the
flattening function didn't seem to alter those
4 - Only files with meaningful changes were kept
5 - Flattening seems to be more useful for cascading then for expression
combination, CIRCT frontend performs those already.
Top ordering function failed to identify cyclic combinational logic in a
specific edge case.
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.

1 participant