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
Resubstitution #54
Resubstitution #54
Conversation
# Conflicts: # include/mockturtle/algorithms/detail/mffc_utils.hpp # test/algorithms/quality.cpp
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great!
return true; /* next */ | ||
} | ||
|
||
if ( tts[ n ] != ternary_majority( tts[ u ], binary_and( tts[ x ], tts[ y ] ), tts[ n ] ) ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(tts[x] & tts[y])
could be used instead of binary_and(tts[x], tts[y])
@@ -111,6 +116,21 @@ class fanout_view<Ntk, false> : public Ntk | |||
_fanout[ n ].push_back( p ); | |||
} | |||
|
|||
void substitute_node_of_parents( std::vector<node> parents, node const& old_node, signal const& new_signal ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should std::vector<node> const& parents
@@ -111,6 +116,21 @@ class fanout_view<Ntk, false> : public Ntk | |||
_fanout[ n ].push_back( p ); | |||
} | |||
|
|||
void substitute_node_of_parents( std::vector<node> parents, node const& old_node, signal const& new_signal ) | |||
{ | |||
this->substitute_node_of_parents( parents, old_node, new_signal ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be Ntk::substitude_node_of_parents
to call the original implementation.
This PR implements Boolean one- and two-resubstitution for MIGs (beyond node merging).