15 namespace module_identification
30 std::map<std::string, BooleanFunction>
operands;
66 const std::vector<Net*>& output_nets,
67 const std::vector<Net*>& control_signals,
68 const std::vector<std::map<Net*, BooleanFunction::Value>>& control_signal_mappings,
69 const std::map<std::map<Net*, BooleanFunction::Value>,
BooleanFunction>& word_level_operations,
70 const std::vector<Gate*>& gates,
71 const std::vector<Gate*>& base_gates,
72 const std::map<std::string, std::string>& additional_data,
73 const std::set<CandidateType>& types);
196 std::map<std::string, std::string> m_additional_data;
Represents a verified candidate for module identification.
bool is_verified() const
Check if the candidate is verified.
std::string get_name() const
Get the name of the candidate that represents the functionality of the candidate.
BooleanFunction get_merged_word_level_operation() const
Get the merged word-level operation for the candidate.
bool operator==(const VerifiedCandidate &other) const
Equality comparison operator for two verified candidates.
std::vector< Net * > m_total_output_nets
std::vector< Net * > m_control_signals
VerifiedCandidate()
Default constructor for an empty/unverified VerifiedCandidate.
std::set< CandidateType > m_types
std::vector< Gate * > m_gates
std::vector< std::map< Net *, BooleanFunction::Value > > m_control_signal_mappings
std::string get_candidate_info() const
Get the candidate information as a string.
std::map< std::map< Net *, BooleanFunction::Value >, BooleanFunction > m_word_level_operations
static hal::Result< VerifiedCandidate > merge(const std::vector< VerifiedCandidate > &candidates)
Merge multiple verified candidates into a single candidate.
std::vector< Net * > m_total_input_nets
std::vector< std::vector< Net * > > m_operands
std::vector< Net * > m_output_nets
std::vector< Gate * > m_base_gates
CandidateType
Enumeration of the different candidate types for module identification.
Represents a word-level operation with its operands, control signals, and the operation implemented a...
BooleanFunction operation
The Boolean function representing the word-level operation.
std::map< std::string, BooleanFunction > operands
A map of operand names to their corresponding Boolean functions.
std::vector< BooleanFunction > ctrl_signals
A vector of control signals as Boolean functions.