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

Extending technology mapping and rewriting #623

Merged
merged 18 commits into from
Oct 6, 2023
Merged

Conversation

aletempiac
Copy link
Member

@aletempiac aletempiac commented Oct 4, 2023

This PR includes several updates:

  • A novel technology mapping algorithm called emap that supports multi-output cells (the current version is limited to 2-output cells)
  • An algorithm called extract_adders to extract half and full adders from a circuit (by circuit analysis)
  • A new network type block_network that supports multi-output nodes
  • A method to compute don't care classes in exact_library to support mapping using Boolean don't cares
  • An extension in map and rewrite to leverage satisfiability don't cares
  • New utils for pattern matching given a technology library, struct_library
  • A view called cell_view to represent mapped networks. Differently from binding_view, cell_view supports multi-output cells
  • A view called don't_touch_view to select gates to be preserved during optimization or mapping
  • Various infrastructure to support the aforementioned changes
  • Generic fixes: choice_view compatibility with klut_network, bug fix in windows_utils, and buffer overflow fix in cuts

@codecov-commenter
Copy link

codecov-commenter commented Oct 4, 2023

Codecov Report

Merging #623 (e28b810) into master (82fce07) will decrease coverage by 0.60%.
The diff coverage is 75.66%.

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

@@            Coverage Diff             @@
##           master     #623      +/-   ##
==========================================
- Coverage   84.27%   83.68%   -0.60%     
==========================================
  Files         178      185       +7     
  Lines       24894    28840    +3946     
==========================================
+ Hits        20980    24135    +3155     
- Misses       3914     4705     +791     
Files Coverage Δ
...nclude/mockturtle/algorithms/experimental/emap.hpp 81.41% <ø> (ø)
include/mockturtle/networks/klut.hpp 94.50% <100.00%> (+0.08%) ⬆️
include/mockturtle/networks/storage.hpp 97.61% <ø> (ø)
include/mockturtle/utils/algorithm.hpp 92.68% <100.00%> (+6.31%) ⬆️
include/mockturtle/utils/cuts.hpp 91.22% <100.00%> (ø)
include/mockturtle/utils/standard_cell.hpp 100.00% <100.00%> (ø)
include/mockturtle/views/choice_view.hpp 77.77% <100.00%> (+2.02%) ⬆️
include/mockturtle/views/dont_touch_view.hpp 100.00% <100.00%> (ø)
include/mockturtle/utils/window_utils.hpp 93.41% <50.00%> (-0.27%) ⬇️
include/mockturtle/views/cell_view.hpp 96.82% <96.82%> (ø)
... and 7 more

... and 4 files with indirect coverage changes

@aletempiac aletempiac closed this Oct 5, 2023
@aletempiac aletempiac reopened this Oct 5, 2023
@aletempiac aletempiac merged commit b35056c into master Oct 6, 2023
33 checks passed
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.

2 participants