PandA-2024.02
Public Member Functions | Protected Member Functions | Protected Attributes
HLSFlowStepFactory Class Reference

#include <hls_flow_step_factory.hpp>

Inheritance diagram for HLSFlowStepFactory:
Inheritance graph
[legend]
Collaboration diagram for HLSFlowStepFactory:
Collaboration graph
[legend]

Public Member Functions

 HLSFlowStepFactory (const DesignFlowManagerConstRef design_flow_manager, const HLS_managerRef _HLS_mgr, const ParameterConstRef parameters)
 Constructor. More...
 
 ~HLSFlowStepFactory () override
 Destructor. More...
 
const std::string GetPrefix () const override
 Return the prefix of the steps created by the factory. More...
 
DesignFlowStepRef CreateHLSFlowStep (const HLSFlowStep_Type hls_flow_step_type, const unsigned int funId, const HLSFlowStepSpecializationConstRef hls_flow_step_specialization=HLSFlowStepSpecializationConstRef()) const
 Create a scheduling design flow step. More...
 
const DesignFlowStepSet CreateHLSFlowSteps (const CustomUnorderedSet< std::pair< HLSFlowStep_Type, HLSFlowStepSpecializationConstRef >> &hls_flow_steps) const
 Create the frontend design flow steps. More...
 
const DesignFlowStepSet CreateHLSFlowSteps (const std::pair< HLSFlowStep_Type, HLSFlowStepSpecializationConstRef > &hls_flow_step) const
 The same as CreateHLSFlowSteps, but just for one step. More...
 
const DesignFlowStepSet CreateHLSFlowSteps (const HLSFlowStep_Type type, const HLSFlowStepSpecializationConstRef hls_flow_step_specialization) const
 The same as CreateHLSFlowSteps, but just for one step, with an even simpler syntax. More...
 
const DesignFlowStepRef CreateHLSFlowStep (const std::pair< HLSFlowStep_Type, HLSFlowStepSpecializationConstRef > &hls_flow_step) const
 
const DesignFlowStepRef CreateHLSFlowStep (const HLSFlowStep_Type type, const HLSFlowStepSpecializationConstRef hls_flow_step_specialization) const
 
- Public Member Functions inherited from DesignFlowStepFactory
 DesignFlowStepFactory (const DesignFlowManagerConstRef &design_flow_manager, const ParameterConstRef &parameters)
 Constructor. More...
 
virtual ~DesignFlowStepFactory ()
 Destructor. More...
 
virtual DesignFlowStepRef CreateFlowStep (const std::string &signature) const
 Return a step given the signature. More...
 

Protected Member Functions

bool checkNode (const xml_element *node, unsigned int funId, const std::string &ref_step) const
 Verifies if the current node has to be added to the list of steps. More...
 

Protected Attributes

const HLS_managerRef HLS_mgr
 The HLS manager. More...
 
- Protected Attributes inherited from DesignFlowStepFactory
const Wrefcount< const DesignFlowManagerdesign_flow_manager
 The design flow manager. More...
 
const ParameterConstRef parameters
 The set of input parameters. More...
 
int debug_level
 The debug level. More...
 

Detailed Description

Definition at line 56 of file hls_flow_step_factory.hpp.

Constructor & Destructor Documentation

◆ HLSFlowStepFactory()

HLSFlowStepFactory::HLSFlowStepFactory ( const DesignFlowManagerConstRef  design_flow_manager,
const HLS_managerRef  _HLS_mgr,
const ParameterConstRef  parameters 
)

Constructor.

Parameters
design_flow_manageris the design flow manager
HLS_manageris the HLS manager
parametersis the set of input parameters

Definition at line 136 of file hls_flow_step_factory.cpp.

References DesignFlowStepFactory::debug_level, GET_CLASS, DesignFlowStepFactory::parameters, and ~HLSFlowStepFactory().

Here is the call graph for this function:

◆ ~HLSFlowStepFactory()

HLSFlowStepFactory::~HLSFlowStepFactory ( )
overridedefault

Destructor.

Referenced by HLSFlowStepFactory().

Here is the caller graph for this function:

Member Function Documentation

◆ checkNode()

bool HLSFlowStepFactory::checkNode ( const xml_element node,
unsigned int  funId,
const std::string &  ref_step 
) const
protected

Verifies if the current node has to be added to the list of steps.

◆ CreateHLSFlowStep() [1/3]

DesignFlowStepRef HLSFlowStepFactory::CreateHLSFlowStep ( const HLSFlowStep_Type  hls_flow_step_type,
const unsigned int  funId,
const HLSFlowStepSpecializationConstRef  hls_flow_step_specialization = HLSFlowStepSpecializationConstRef() 
) const

Create a scheduling design flow step.

Parameters
hls_flow_step_typeis the type of scheduling step to be created
funIdis the index of the function to be scheduled
hls_flow_step_specializationcontains information about how specialize the single step

Definition at line 151 of file hls_flow_step_factory.cpp.

References ADD_LIBRARY, ALLOCATION, BB_STG_CREATOR, C_TESTBENCH_EXECUTION, CALL_GRAPH_UNFOLDING, CDFC_MODULE_BINDING, CHORDAL_COLORING_REGISTER_BINDING, CLASSIC_DATAPATH_CREATOR, CLASSICAL_HLS_SYNTHESIS_FLOW, COLORING_REGISTER_BINDING, HLSFunctionStep::ComputeSignature(), HLS_step::ComputeSignature(), CONTROL_FLOW_CHECKER, DATAPATH_CS_CREATOR, DATAPATH_CS_PARALLEL_CREATOR, DesignFlowStepFactory::debug_level, DEBUG_LEVEL_VERY_PEDANTIC, DesignFlowStepFactory::design_flow_manager, DOMINATOR_ALLOCATION, DOMINATOR_FUNCTION_ALLOCATION, DOMINATOR_MEMORY_ALLOCATION, DOMINATOR_MEMORY_ALLOCATION_CS, DRY_RUN_EVALUATION, EASY_MODULE_BINDING, HLS_step::EnumToName(), EVALUATION, FSM_CONTROLLER_CREATOR, FSM_CS_CONTROLLER_CREATOR, FSM_NI_SSA_LIVENESS, GENERATE_HDL, GENERATE_SIMULATION_SCRIPT, GENERATE_SYNTHESIS_SCRIPT, HLS_FUNCTION_BIT_VALUE, HLS_mgr, HLS_SYNTHESIS_FLOW, HW_DISCREPANCY_ANALYSIS, HW_PATH_COMPUTATION, INDENT_DBG_MEX, INFERRED_INTERFACE_GENERATION, INITIALIZE_HLS, INTERFACE_CS_GENERATION, LIST_BASED_SCHEDULING, Wrefcount< T >::lock(), MINIMAL_INTERFACE_GENERATION, MUX_INTERCONNECTION_BINDING, OMP_BODY_LOOP_SYNTHESIS_FLOW, DesignFlowStepFactory::parameters, PIPELINE_CONTROLLER_CREATOR, PORT_SWAPPING, SCHED_CHAINING, STANDARD_HLS_FLOW, TEST_VECTOR_PARSER, TESTBENCH_GENERATION, THROW_UNREACHABLE, TOP_ENTITY_CREATION, TOP_ENTITY_CS_CREATION, TOP_ENTITY_CS_PARALLEL_CREATION, TOP_ENTITY_MEMORY_MAPPED_CREATION, UNIQUE_MODULE_BINDING, UNIQUE_REGISTER_BINDING, UNKNOWN, VALUES_SCHEME_STORAGE_VALUE_INSERTION, VIRTUAL_DESIGN_FLOW, WB4_INTERCON_INTERFACE_GENERATION, WB4_INTERFACE_GENERATION, WEIGHTED_CLIQUE_REGISTER_BINDING, and WRITE_HLS_SUMMARY.

Referenced by CreateHLSFlowSteps().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateHLSFlowStep() [2/3]

const DesignFlowStepRef HLSFlowStepFactory::CreateHLSFlowStep ( const std::pair< HLSFlowStep_Type, HLSFlowStepSpecializationConstRef > &  hls_flow_step) const

Definition at line 720 of file hls_flow_step_factory.cpp.

References CreateHLSFlowSteps().

Here is the call graph for this function:

◆ CreateHLSFlowStep() [3/3]

const DesignFlowStepRef HLSFlowStepFactory::CreateHLSFlowStep ( const HLSFlowStep_Type  type,
const HLSFlowStepSpecializationConstRef  hls_flow_step_specialization 
) const

Definition at line 727 of file hls_flow_step_factory.cpp.

References CreateHLSFlowSteps().

Here is the call graph for this function:

◆ CreateHLSFlowSteps() [1/3]

const DesignFlowStepSet HLSFlowStepFactory::CreateHLSFlowSteps ( const CustomUnorderedSet< std::pair< HLSFlowStep_Type, HLSFlowStepSpecializationConstRef >> &  hls_flow_steps) const

Create the frontend design flow steps.

Parameters
hls_flow_stepsis the set of steps to be created

Definition at line 585 of file hls_flow_step_factory.cpp.

References ADD_LIBRARY, ALLOCATION, BB_STG_CREATOR, C_TESTBENCH_EXECUTION, CALL_GRAPH_UNFOLDING, CDFC_MODULE_BINDING, CHORDAL_COLORING_REGISTER_BINDING, CLASSIC_DATAPATH_CREATOR, CLASSICAL_HLS_SYNTHESIS_FLOW, COLORING_REGISTER_BINDING, CONTROL_FLOW_CHECKER, CreateHLSFlowStep(), DATAPATH_CS_CREATOR, DATAPATH_CS_PARALLEL_CREATOR, DesignFlowStepFactory::debug_level, DEBUG_LEVEL_VERY_PEDANTIC, DOMINATOR_ALLOCATION, DOMINATOR_FUNCTION_ALLOCATION, DOMINATOR_MEMORY_ALLOCATION, DOMINATOR_MEMORY_ALLOCATION_CS, DRY_RUN_EVALUATION, EASY_MODULE_BINDING, HLS_step::EnumToName(), EVALUATION, FSM_CONTROLLER_CREATOR, FSM_CS_CONTROLLER_CREATOR, FSM_NI_SSA_LIVENESS, GENERATE_HDL, GENERATE_SIMULATION_SCRIPT, GENERATE_SYNTHESIS_SCRIPT, HLS_FUNCTION_BIT_VALUE, HLS_mgr, HLS_SYNTHESIS_FLOW, HW_DISCREPANCY_ANALYSIS, HW_PATH_COMPUTATION, INDENT_DBG_MEX, INFERRED_INTERFACE_GENERATION, INITIALIZE_HLS, INTERFACE_CS_GENERATION, LIST_BASED_SCHEDULING, MINIMAL_INTERFACE_GENERATION, MUX_INTERCONNECTION_BINDING, OMP_BODY_LOOP_SYNTHESIS_FLOW, PIPELINE_CONTROLLER_CREATOR, PORT_SWAPPING, SCHED_CHAINING, STANDARD_HLS_FLOW, TEST_VECTOR_PARSER, TESTBENCH_GENERATION, THROW_UNREACHABLE, TOP_ENTITY_CREATION, TOP_ENTITY_CS_CREATION, TOP_ENTITY_CS_PARALLEL_CREATION, TOP_ENTITY_MEMORY_MAPPED_CREATION, UNIQUE_MODULE_BINDING, UNIQUE_REGISTER_BINDING, UNKNOWN, VALUES_SCHEME_STORAGE_VALUE_INSERTION, VIRTUAL_DESIGN_FLOW, WB4_INTERCON_INTERFACE_GENERATION, WB4_INTERFACE_GENERATION, WEIGHTED_CLIQUE_REGISTER_BINDING, and WRITE_HLS_SUMMARY.

Referenced by CreateHLSFlowStep(), and CreateHLSFlowSteps().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateHLSFlowSteps() [2/3]

const DesignFlowStepSet HLSFlowStepFactory::CreateHLSFlowSteps ( const std::pair< HLSFlowStep_Type, HLSFlowStepSpecializationConstRef > &  hls_flow_step) const

The same as CreateHLSFlowSteps, but just for one step.

Definition at line 703 of file hls_flow_step_factory.cpp.

References CreateHLSFlowSteps().

Here is the call graph for this function:

◆ CreateHLSFlowSteps() [3/3]

const DesignFlowStepSet HLSFlowStepFactory::CreateHLSFlowSteps ( const HLSFlowStep_Type  type,
const HLSFlowStepSpecializationConstRef  hls_flow_step_specialization 
) const

The same as CreateHLSFlowSteps, but just for one step, with an even simpler syntax.

Definition at line 712 of file hls_flow_step_factory.cpp.

References CreateHLSFlowSteps().

Here is the call graph for this function:

◆ GetPrefix()

const std::string HLSFlowStepFactory::GetPrefix ( ) const
overridevirtual

Return the prefix of the steps created by the factory.

Implements DesignFlowStepFactory.

Definition at line 145 of file hls_flow_step_factory.cpp.

Field Documentation

◆ HLS_mgr

const HLS_managerRef HLSFlowStepFactory::HLS_mgr
protected

The HLS manager.

Definition at line 60 of file hls_flow_step_factory.hpp.

Referenced by CreateHLSFlowStep(), and CreateHLSFlowSteps().


The documentation for this class was generated from the following files:

Generated on Mon Feb 12 2024 13:03:55 for PandA-2024.02 by doxygen 1.8.13