PandA-2024.02
|
#include <hls_flow_step_factory.hpp>
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 ¶meters) | |
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 DesignFlowManager > | design_flow_manager |
The design flow manager. More... | |
const ParameterConstRef | parameters |
The set of input parameters. More... | |
int | debug_level |
The debug level. More... | |
Definition at line 56 of file hls_flow_step_factory.hpp.
HLSFlowStepFactory::HLSFlowStepFactory | ( | const DesignFlowManagerConstRef | design_flow_manager, |
const HLS_managerRef | _HLS_mgr, | ||
const ParameterConstRef | parameters | ||
) |
Constructor.
design_flow_manager | is the design flow manager |
HLS_manager | is the HLS manager |
parameters | is 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().
|
overridedefault |
|
protected |
Verifies if the current node has to be added to the list of steps.
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.
hls_flow_step_type | is the type of scheduling step to be created |
funId | is the index of the function to be scheduled |
hls_flow_step_specialization | contains 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().
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().
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().
const DesignFlowStepSet HLSFlowStepFactory::CreateHLSFlowSteps | ( | const CustomUnorderedSet< std::pair< HLSFlowStep_Type, HLSFlowStepSpecializationConstRef >> & | hls_flow_steps | ) | const |
Create the frontend design flow steps.
hls_flow_steps | is 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().
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().
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().
|
overridevirtual |
Return the prefix of the steps created by the factory.
Implements DesignFlowStepFactory.
Definition at line 145 of file hls_flow_step_factory.cpp.
|
protected |
The HLS manager.
Definition at line 60 of file hls_flow_step_factory.hpp.
Referenced by CreateHLSFlowStep(), and CreateHLSFlowSteps().