10 namespace module_identification
63 std::string result =
"";
68 result +=
"OPERAND [" + std::to_string(nets.size()) +
"]" +
": \n";
69 for (
const auto&
net : nets)
71 result +=
"\t" +
net->get_name() +
" - " + std::to_string(
net->get_id()) +
"\n";
74 result +=
"OUTPUT: [" + std::to_string(
m_output_nets.size()) +
"]\n";
77 result +=
"\t" + n->get_name() +
" / " + std::to_string(n->get_id()) +
"\n";
79 result +=
"CONTROL SIGNALS: [" + std::to_string(
m_control_signals.size()) +
"]\n";
81 result +=
"CONTROL MAPPING: \n";
84 result +=
"\t" + n->get_name() +
" / " + std::to_string(n->get_id()) +
" : " + std::to_string(v) +
"\n";
This file contains the definition of the BaseCandidate class, which represents a base candidate in th...
std::vector< Gate * > m_gates
A vector of Gate pointers representing the gates included in this base candidate.
std::vector< Gate * > m_gates
std::vector< std::pair< Net *, Net * > > m_permuted_single_pairs
std::map< Net *, Net * > m_single_input_to_output
std::vector< Net * > m_output_nets
std::map< std::string, std::string > get_all_additional_data() const
Get all additional data of the functional candidate.
std::map< u32, std::vector< Net * > > m_influence_count_to_input_nets
std::map< std::string, std::map< std::string, std::map< std::string, std::map< std::string, u64 > > > > m_timings
StructuralCandidate * m_structural_candidate
std::string get_candidate_info() const
Get candidate information as a string.
std::vector< Gate * > m_base_gates
std::vector< Net * > m_input_nets
std::vector< Net * > m_control_signals
std::map< u32, std::vector< Net * > > m_input_count_to_output_nets
std::map< Net *, BooleanFunction::Value > m_control_mapping
std::map< std::string, std::string > m_additional_data
u32 m_max_control_signals
std::vector< Net * > m_sign_nets
module_identification::CandidateType m_candidate_type
FunctionalCandidate(StructuralCandidate *sc, u32 max_control_signal, module_identification::CandidateType candidate_type)
Constructor for FunctionalCandidate.
Net * m_ctrl_to_operand_net
void add_additional_data(std::string key, std::string value)
Add additional data to the functional candidate.
std::vector< std::vector< Net * > > m_operands
A class representing a structural candidate for module identification.
BaseCandidate * base_candidate
Pointer to the base candidate.
std::vector< Gate * > m_gates
Vector of gates that form the structural candidate.
This file contains the class and functions for handling functional candidates within the module ident...
std::vector< Net * > get_input_nets(const std::vector< Gate * > &gates)
Get input nets from a list of gates.
CandidateType
Enumeration of the different candidate types for module identification.
std::vector< Net * > get_output_nets(const std::vector< Gate * > &gates, bool only_external_destinations=true)
Get output nets from a list of gates.
std::string join(const std::string &joiner, const Iterator &begin, const Iterator &end, const Transform &transform)
std::string enum_to_string(T e)
This file contains all functions related to the HAL plugin API.
This file contains helper functions for module identification in the HAL framework.