HAL
hal::dataflow Namespace Reference

Namespaces

 evaluation
 
 group_by_control_signals
 
 group_by_input_output_size
 
 group_by_successor_predecessor_known_groups
 
 group_by_successors_predecessors
 
 group_by_successors_predecessors_iteratively
 
 merge_states
 
 merge_successor_predecessor_groupings
 
 pre_processing
 
 processing
 
 remove_duplicates
 
 scoring
 
 split_by_successor_predecessor_known_groups
 
 split_by_successors_predecessors
 
 utils
 

Classes

struct  Configuration
 Configuration of a dataflow analysis run. More...
 
class  Result
 Result of a dataflow analysis run. More...
 
class  Grouping
 Grouping used during dataflow analysis. More...
 
struct  NetlistAbstraction
 The abstraction of the netlist that only contains gates of a specified type, e.g., flip-flops. More...
 
class  GuiLayoutLocker
 
class  ProgressPrinter
 
class  measure_block_time_t
 

Functions

hal::Result< dataflow::Resultanalyze (const Configuration &config)
 Analyze the gate-level netlist to identify word-level structures such as registers. More...
 

Function Documentation

◆ analyze()

hal::Result< dataflow::Result > hal::dataflow::analyze ( const Configuration config)

Analyze the gate-level netlist to identify word-level structures such as registers.

Reconstructs word-level structures such as registers based on properties such as the control inputs of, e.g., their flip-flops and common successors/predecessors. Operates on an abstraction of the netlist that, e.g., contains only flip-flops and connections between two flip-flops only if they are connected through combinational logic.

Parameters
[in]config- The dataflow analysis configuration.
Returns
Ok() and the dataflow analysis result on success, an error otherwise.

Definition at line 12 of file dataflow.cpp.

References hal::dataflow::processing::clear(), hal::dataflow::Configuration::control_pin_types, hal::dataflow::Configuration::enforce_type_consistency, hal::dataflow::processing::Configuration::enforce_type_consistency, ERR, hal::dataflow::Configuration::expected_sizes, hal::dataflow::Configuration::gate_types, hal::dataflow::processing::Configuration::has_known_groups, hal::utils::join(), hal::dataflow::Configuration::known_net_groups, log_info, hal::dataflow::Configuration::min_group_size, hal::dataflow::evaluation::Configuration::min_group_size, hal::dataflow::Configuration::netlist, hal::dataflow::processing::Configuration::num_threads, OK, hal::dataflow::processing::Configuration::pass_layers, hal::dataflow::evaluation::Configuration::prioritized_sizes, hal::dataflow::evaluation::run(), hal::dataflow::pre_processing::run(), and hal::dataflow::processing::run().

Referenced by hal::GuiExtensionDataflow::execute_function(), hal::CliExtensionDataflow::handle_cli_call(), and hal::PYBIND11_PLUGIN().