HAL  v4.5.0-124-g47ab54673
The Hardware Analyzer - a comprehensive reverse engineering and manipulation framework for gate-level netlists.
plugin_module_identification.h
Go to the documentation of this file.
1 #pragma once
2 
7 
8 #include <memory.h>
9 
10 namespace hal
11 {
12  class Gate;
13  class Module;
14 
15  namespace module_identification
16  {
17  class BaseCandidate;
18  class StructuralCandidate;
19  } // namespace module_identification
20 
29  {
34  u32 m_max_thread_count = 1;
35 
40  u32 m_max_control_signals = 3;
41 
46  bool m_do_multithreading = false;
47 
52  bool m_button_clicked = false;
53 
58  u32 m_check_selector = 0;
59 
65 
69  std::vector<module_identification::CandidateType> m_types_to_check = module_identification::all_checkable_candidate_types;
70 
71  public:
76 
82  std::vector<PluginParameter> get_parameter() const override;
83 
89  void set_parameter(const std::vector<PluginParameter>& params) override;
90 
100  void execute_function(std::string tag, Netlist* nl, const std::vector<u32>& mods, const std::vector<u32>& gats, const std::vector<u32>& nets) override;
101 
111  std::vector<ContextMenuContribution> get_context_contribution(const Netlist* nl, const std::vector<u32>& mods, const std::vector<u32>& gats, const std::vector<u32>& nets);
112  };
113 
121  {
122  public:
127 
132 
138  std::string get_name() const override;
139 
145  std::string get_description() const override;
146 
152  std::string get_version() const override;
153 
159  std::set<std::string> get_dependencies() const override;
160  };
161 } // namespace hal
#define PLUGIN_API
Definition: arch_linux.h:32
This file contains the enumeration and constants for the candidate types used in the module identific...
GUI extension interface for the module identification plugin.
std::vector< ContextMenuContribution > get_context_contribution(const Netlist *nl, const std::vector< u32 > &mods, const std::vector< u32 > &gats, const std::vector< u32 > &nets)
Get context menu contributions based on the current netlist and selection.
void set_parameter(const std::vector< PluginParameter > &params) override
Set configurable parameters to values.
GuiExtensionModuleIdentification()=default
Default constructor for GuiExtensionModuleIdentification.
void execute_function(std::string tag, Netlist *nl, const std::vector< u32 > &mods, const std::vector< u32 > &gats, const std::vector< u32 > &nets) override
Execute a function with a specific tag on a netlist.
std::vector< PluginParameter > get_parameter() const override
Get list of configurable parameters.
Plugin for identifying functional modules within a netlist.
~ModuleIdentificationPlugin()=default
Default destructor for ModuleIdentificationPlugin.
uint32_t u32
Definition: defines.h:41
This file contains the enum class for multithreading strategies in the module identification process.
const std::vector< CandidateType > all_checkable_candidate_types
A list of all candidate types that are selectable to be checked.
MultithreadingPriority
Specifies the strategy for multithreading in the module identification process.
@ memory_priority
Prioritize memory efficiency in multithreading.
Definition: defines.h:45