HAL  v4.5.0-83-g30c8f0afc
The Hardware Analyzer - a comprehensive reverse engineering and manipulation framework for gate-level netlists.
hal::hawkeye::DetectionConfiguration Struct Reference

Configuration to set up the register candidate search. More...

#include </home/runner/work/hal/hal/plugins/hawkeye/include/hawkeye/candidate_search.h>

Collaboration diagram for hal::hawkeye::DetectionConfiguration:
Collaboration graph

Public Types

enum class  Control { CHECK_FF , CHECK_TYPE , CHECK_PINS , CHECK_NETS }
 Checks to be performed on flip-flop control inputs during candidate search. More...
 
enum class  Components { NONE , CHECK_SCC }
 Determines whether to use SCC detection as part of neighborhood discovery. More...
 

Public Attributes

enum hal::hawkeye::DetectionConfiguration::Control control = Control::CHECK_NETS
 
enum hal::hawkeye::DetectionConfiguration::Components components = Components::NONE
 
std::vector< std::vector< std::string > > equivalent_types
 A vector of a vector of gate types that are treated as identical types by the candidate search, i.e., when checking equality of the types of two gates that are different but declared equivalent, true is returned. More...
 
u32 timeout = 10
 Neighborhood discovery iteration timeout. More...
 
u32 min_register_size = 10
 Minimum number of flip-flops for a register candidate to be created. More...
 

Detailed Description

Configuration to set up the register candidate search.

This struct holds important parameters that configure the candidate search of HAWKEYE.

Definition at line 52 of file candidate_search.h.

Member Enumeration Documentation

◆ Components

Determines whether to use SCC detection as part of neighborhood discovery.

This enum specifies whether SCC detection should be used to refine the results of neighborhood discovery. If SCC detection is used, the exploration only stops if the size of the largest discovered SCC saturates. Specifically, it does no longer require the size of the entire neighborhood to saturate.

Enumerator
NONE 

Do not use SCC detection and instead resort to the simple neighborhood discovery algorithm.

CHECK_SCC 

Use SCC detection within the currently explored neighborhood of a start flip-flop.

Definition at line 89 of file candidate_search.h.

◆ Control

Checks to be performed on flip-flop control inputs during candidate search.

This enum specifies the checks that are to be performed on the flip-flops of the netlist to determine whether there should be an edge between two flip-flops or not.

Enumerator
CHECK_FF 

If two flip-flops ff1 and ff2 are connected through combinational logic, an edge is added such that (ff1,ff2) is part of the graph.

CHECK_TYPE 

If two flip-flops ff1 and ff2 are connected through combinational logic and are of the same gate type, an edge is added such that (ff1,ff2) is part of the graph.

CHECK_PINS 

If two flip-flops ff1 and ff2 are connected through combinational logic and are controlled through the same input pins, an edge is added such that (ff1,ff2) is part of the graph.

CHECK_NETS 

If two flip-flops ff1 and ff2 are connected through combinational logic and are controlled through the same input nets, an edge is added such that (ff1,ff2) is part of the graph.

Definition at line 60 of file candidate_search.h.

Member Data Documentation

◆ components

enum hal::hawkeye::DetectionConfiguration::Components hal::hawkeye::DetectionConfiguration::components = Components::NONE

Referenced by hal::PYBIND11_PLUGIN().

◆ control

enum hal::hawkeye::DetectionConfiguration::Control hal::hawkeye::DetectionConfiguration::control = Control::CHECK_NETS

Referenced by hal::PYBIND11_PLUGIN().

◆ equivalent_types

std::vector<std::vector<std::string> > hal::hawkeye::DetectionConfiguration::equivalent_types

A vector of a vector of gate types that are treated as identical types by the candidate search, i.e., when checking equality of the types of two gates that are different but declared equivalent, true is returned.

Definition at line 105 of file candidate_search.h.

Referenced by hal::PYBIND11_PLUGIN().

◆ min_register_size

u32 hal::hawkeye::DetectionConfiguration::min_register_size = 10

Minimum number of flip-flops for a register candidate to be created.

Definition at line 115 of file candidate_search.h.

Referenced by hal::PYBIND11_PLUGIN().

◆ timeout

u32 hal::hawkeye::DetectionConfiguration::timeout = 10

Neighborhood discovery iteration timeout.

Definition at line 110 of file candidate_search.h.

Referenced by hal::PYBIND11_PLUGIN().


The documentation for this struct was generated from the following file: