Skip to content

Conversation

@lee30sonia
Copy link
Member

@lee30sonia lee30sonia commented Mar 2, 2021

This PR provides a mockturtle-native re-implementation of the k-resub engine in ABC (called xag_resyn_engine in parallel to mig_resyn_engine). Completeness with respect to abcresub is verified. When applied in sim_resub, runtime is usually dominated by SAT-solving (even with pre-stored CEXs), and the overall runtime is similar to ABC.
Also,

  • circuit_validator::gate is replaced by index_list for more efficient interfacing.
  • mig_resyn_engines.hpp and xag_resyn_engines.hpp are put together in the path algorithms/resyn_engines, and the public interface for all these engines are unified.
  • Interfaces of ResubFn in simulation_based_resub_engine are modified.
  • sim_aig_resub (enumeration-based resub functor for sim_resub) is removed.

Missing features that will be implemented in future PRs:

  • Support of XOR gates.
  • The ported abcresub library can be removed from mockturtle.

- missing support for XOR
- missing tests for recursive decomposition case
- missing documentation
- missing parameter for max_binate_divisors
- interfacing issue: an redundant PI in index_list (ABC format)
- TODO: compare with abcresub
- missing support for XOR
- missing tests for recursive decomposition case
- missing documentation
- interfacing issue: an redundant PI in index_list (ABC format)
- TODO: add API in circuit_validator using index_list to avoid interfacing with imaginary_circuit
Finished comparison with ABC: Whenever abcresub finds a solution, so does xag_resyn. Runtimes are also similar.
- missing support for XOR
- missing documentation
- interfacing issue: needs a redundant PI in index_list (ABC format)
- TODO: add API in circuit_validator using index_list to avoid interfacing with imaginary_circuit
@coveralls
Copy link

coveralls commented Mar 2, 2021

Pull Request Test Coverage Report for Build 618381831

  • 333 of 388 (85.82%) changed or added relevant lines in 5 files are covered.
  • 3 unchanged lines in 1 file lost coverage.
  • Overall coverage increased (+0.3%) to 80.054%

Changes Missing Coverage Covered Lines Changed/Added Lines %
include/mockturtle/algorithms/circuit_validator.hpp 24 25 96.0%
include/mockturtle/algorithms/sim_resub.hpp 28 53 52.83%
include/mockturtle/algorithms/resyn_engines/xag_resyn_engines.hpp 231 260 88.85%
Files with Coverage Reduction New Missed Lines %
include/mockturtle/algorithms/sim_resub.hpp 3 54.81%
Totals Coverage Status
Change from base Build 600495590: 0.3%
Covered Lines: 10668
Relevant Lines: 13326

💛 - Coveralls

@hriener hriener merged commit b2f584b into master Mar 8, 2021
@lee30sonia lee30sonia deleted the lee30sonia/kresub branch March 10, 2021 17:08
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