Skip to content

Conversation

@lee30sonia
Copy link
Member

@lee30sonia lee30sonia commented Jul 6, 2020

This PR aims to implement the simulation-guided resubstitution algorithm in the paper [1], and maybe try to integrate different resubstitution algorithms in a generalized framework.

[1] Simulation-Guided Boolean Resubstitution. IWLS 2020 (arXiv)

@lee30sonia lee30sonia marked this pull request as draft July 6, 2020 16:53
@lee30sonia lee30sonia requested a review from hriener July 6, 2020 16:54
It is not compiling yet, but I try to scratch the structure
@coveralls
Copy link

coveralls commented Jul 7, 2020

Pull Request Test Coverage Report for Build 177003334

  • 421 of 536 (78.54%) changed or added relevant lines in 10 files are covered.
  • 23 unchanged lines in 4 files lost coverage.
  • Overall coverage decreased (-0.2%) to 79.57%

Changes Missing Coverage Covered Lines Changed/Added Lines %
include/mockturtle/io/write_patterns.hpp 1 2 50.0%
include/mockturtle/algorithms/xag_resub_withDC.hpp 3 5 60.0%
include/mockturtle/algorithms/detail/resub_utils.hpp 88 91 96.7%
include/mockturtle/algorithms/xmg_resub.hpp 5 8 62.5%
include/mockturtle/algorithms/aig_resub.hpp 5 16 31.25%
include/mockturtle/algorithms/mig_resub.hpp 5 16 31.25%
include/mockturtle/algorithms/resubstitution.hpp 126 162 77.78%
include/mockturtle/algorithms/sim_resub.hpp 135 183 73.77%
Files with Coverage Reduction New Missed Lines %
include/mockturtle/algorithms/aig_resub.hpp 1 22.99%
include/mockturtle/algorithms/mig_resub.hpp 2 22.46%
include/mockturtle/algorithms/resubstitution.hpp 7 80.89%
include/mockturtle/algorithms/simulation.hpp 13 90.53%
Totals Coverage Status
Change from base Build 176975767: -0.2%
Covered Lines: 9394
Relevant Lines: 11806

💛 - Coveralls

@lee30sonia lee30sonia changed the title Simulation-guided Boolean resubstitution Simulation-guided Boolean resubstitution & unified resub framework Jul 8, 2020
@lee30sonia lee30sonia marked this pull request as ready for review July 13, 2020 16:58
@lee30sonia
Copy link
Member Author

I think this PR is ready for review now (except the failing check of Windows CI... I don't know how to reproduce it).
The functors for window-based and simulation-based engines are still separated and have different interfaces. Unifying them will be more complicated and may impact efficiency. So, I think it can be left as a future PR.

  - Adjust the interface & stats of window-based resub functors
  - (ODC consideration for sim_resub)
  - (Unify different MFFC implementations)
  - Integrate node_resynthesis engines
  - Integrate frontier-based exploration
  - Provide possibility of different cost functions:
      If it's a different way of counting circuit size, simply replace
      `node_mffc_inside`.
      If it's circuit depth, we will need another `divisor_collector`
      implementation, which does not exclude MFFC nodes, and computes
      the desired `potential_gain`.
      The `resub_engine`s also need to be adjusted.
@hriener hriener merged commit a1801d4 into master Jul 21, 2020
@hriener hriener deleted the lee30sonia/sim_resub branch July 21, 2020 12:15
@hriener hriener restored the lee30sonia/sim_resub branch July 21, 2020 13:20
@hriener hriener deleted the lee30sonia/sim_resub branch July 21, 2020 13:41
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.

4 participants