PandA-2024.02
Public Member Functions | Protected Member Functions
datapath_parallel_cs Class Reference

#include <datapath_parallel_cs.hpp>

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

Public Member Functions

 datapath_parallel_cs (const ParameterConstRef _parameters, const HLS_managerRef HLSMgr, unsigned int funId, const DesignFlowManagerConstRef design_flow_manager, const HLSFlowStep_Type hls_flow_step_type)
 Constructor. More...
 
 ~datapath_parallel_cs () override
 Destructor. More...
 
DesignFlowStep_Status InternalExec () override
 InternalExec. More...
 
- Public Member Functions inherited from classic_datapath
 classic_datapath (const ParameterConstRef _parameters, const HLS_managerRef HLSMgr, unsigned int funId, const DesignFlowManagerConstRef design_flow_manager, const HLSFlowStep_Type hls_flow_step_type=HLSFlowStep_Type::CLASSIC_DATAPATH_CREATOR)
 Constructor. More...
 
 ~classic_datapath () override
 Destructor. More...
 
- Public Member Functions inherited from datapath_creator
 datapath_creator (const ParameterConstRef Param, const HLS_managerRef HLSMgr, unsigned int funId, const DesignFlowManagerConstRef design_flow_manager, const HLSFlowStep_Type _hls_flow_step_type)
 Constructor. More...
 
 ~datapath_creator () override
 Destructor. More...
 
- Public Member Functions inherited from HLSFunctionStep
 HLSFunctionStep (const ParameterConstRef Param, const HLS_managerRef HLSMgr, unsigned int funId, const DesignFlowManagerConstRef design_flow_manager, const HLSFlowStep_Type hls_flow_step_type, const HLSFlowStepSpecializationConstRef hls_flow_step_specialization=HLSFlowStepSpecializationConstRef())
 Constructor. More...
 
 ~HLSFunctionStep () override
 Destructor. More...
 
bool HasToBeExecuted () const override
 Check if this step has actually to be executed. More...
 
void Initialize () override
 Initialize the step (i.e., like a constructor, but executed just before exec. More...
 
std::string GetSignature () const final
 Return a unified identifier of this design step. More...
 
std::string GetName () const final
 Return the name of this design step. More...
 
DesignFlowStep_Status Exec () final
 Execute the step. More...
 
- Public Member Functions inherited from HLS_step
 HLS_step (const ParameterConstRef _parameters, const HLS_managerRef HLSMgr, const DesignFlowManagerConstRef design_flow_manager, const HLSFlowStep_Type hls_flow_step_type, const HLSFlowStepSpecializationConstRef hls_flow_step_specialization=HLSFlowStepSpecializationConstRef())
 Constructor. More...
 
 ~HLS_step () override
 Destructor. More...
 
std::string GetSignature () const override
 Return a unified identifier of this design step. More...
 
std::string GetName () const override
 Return the name of this design step. More...
 
virtual std::string GetKindText () const
 Return the name of the type of this frontend flow step. More...
 
DesignFlowStepFactoryConstRef CGetDesignFlowStepFactory () const final
 Return the factory to create this type of steps. More...
 
void ComputeRelationships (DesignFlowStepSet &design_flow_step_set, const DesignFlowStep::RelationshipType relationship_type) override
 Compute the relationships of a step with other steps. More...
 
- Public Member Functions inherited from DesignFlowStep
 DesignFlowStep (const DesignFlowManagerConstRef design_flow_manager, const ParameterConstRef parameters)
 Constructor. More...
 
virtual ~DesignFlowStep ()
 Destructor. More...
 
DesignFlowStep_Status GetStatus () const
 Return the status of this design step. More...
 
virtual void WriteDot (std::ostream &out) const
 Write the label for a dot graph. More...
 
bool IsComposed () const
 Returns if this step is composed. More...
 
int CGetDebugLevel () const
 Return the debug level of the step. More...
 
virtual void PrintInitialIR () const
 Dump the initial intermediate representation. More...
 
virtual void PrintFinalIR () const
 Dump the final intermediate representation. More...
 

Protected Member Functions

void instantiate_component_parallel (structural_objectRef clock_port, structural_objectRef reset_port)
 instantiate memory_parallel More...
 
void manage_extern_global_port_parallel (const structural_managerRef SM, const std::vector< structural_objectRef > &memory_modules, const structural_objectRef circuit)
 connect mem_parallel with datapath and kernels More...
 
void connect_module_kernel (structural_objectRef kernel, unsigned int num_kernel)
 connect datapath with each kernel More...
 
void connect_i_module_kernel (structural_objectRef kernel)
 connect datapath with each kernel More...
 
void add_ports () override
 Adds the input/output ports of the module. More...
 
const CustomUnorderedSet< std::tuple< HLSFlowStep_Type, HLSFlowStepSpecializationConstRef, HLSFlowStep_Relationship > > ComputeHLSRelationships (const DesignFlowStep::RelationshipType relationship_type) const override
 ComputeHLSRelationships datapath need kernel in order to be created. More...
 
void resize_dimension_bus_port (unsigned int vector_size, structural_objectRef port)
 for each port resize it depending on the type of bus port More...
 
void resize_ctrl_parallel_ports (structural_objectRef mem_par_mod)
 for each port decide the vector size More...
 
- Protected Member Functions inherited from classic_datapath
void add_clock_reset (structural_objectRef &clock_obj, structural_objectRef &reset_obj)
 Adds the clock and reset ports to the structural description of the circuit. More...
 
- Protected Member Functions inherited from HLSFunctionStep
void ComputeRelationships (DesignFlowStepSet &design_flow_step_set, const DesignFlowStep::RelationshipType relationship_type) override
 Compute the relationships of a step with other steps. More...
 

Additional Inherited Members

- Public Types inherited from DesignFlowStep
enum  RelationshipType { DEPENDENCE_RELATIONSHIP, INVALIDATION_RELATIONSHIP, PRECEDENCE_RELATIONSHIP }
 The relationship type. More...
 
- Static Public Member Functions inherited from HLSFunctionStep
static std::string ComputeSignature (const HLSFlowStep_Type hls_flow_step_type, const HLSFlowStepSpecializationConstRef hls_flow_step_specialization, const unsigned int function_id)
 Compute the signature of a hls flow step. More...
 
- Static Public Member Functions inherited from HLS_step
static std::string EnumToName (const HLSFlowStep_Type hls_flow_step_type)
 Given a HLS flow step type, return the name of the type. More...
 
static const std::string ComputeSignature (const HLSFlowStep_Type hls_flow_step_type, const HLSFlowStepSpecializationConstRef hls_flow_step_specialization)
 Compute the signature of a hls flow step. More...
 
- Protected Attributes inherited from HLSFunctionStep
std::map< unsigned int, unsigned int > last_bb_ver
 last bb version of the called functions More...
 
std::map< unsigned int, unsigned int > last_bitvalue_ver
 The version of bit value IR representation on which this step was applied. More...
 
const unsigned int funId
 identifier of the function to be processed (0 means that it is a global step) More...
 
hlsRef HLS
 HLS data structure of the function to be analyzed. More...
 
unsigned int bb_version
 The version of bb intermediate representation on which this step was applied. More...
 
unsigned int bitvalue_version
 The version of bitvalue on which this step was applied. More...
 
unsigned int memory_version
 The version of memory representation on which this step was applied. More...
 
- Protected Attributes inherited from HLS_step
const HLS_managerRef HLSMgr
 information about all the HLS synthesis More...
 
const HLSFlowStep_Type hls_flow_step_type
 The type of this step. More...
 
const HLSFlowStepSpecializationConstRef hls_flow_step_specialization
 The information about specialization. More...
 
- Protected Attributes inherited from DesignFlowStep
bool composed
 True if this step represents a composition of design flow steps (e.g., a flow); must be set by specialized constructors. More...
 
const Wrefcount< const DesignFlowManagerdesign_flow_manager
 The design flow manager. More...
 
const ParameterConstRef parameters
 Set of input parameters. More...
 
int debug_level
 The debug level. More...
 
const int output_level
 The output level. More...
 
- Static Protected Attributes inherited from HLS_step
static CustomUnorderedMap< std::string, HLSFlowStep_Typecommand_line_name_to_enum
 Map hls step name to enum. More...
 

Detailed Description

Definition at line 50 of file datapath_parallel_cs.hpp.

Constructor & Destructor Documentation

◆ datapath_parallel_cs()

datapath_parallel_cs::datapath_parallel_cs ( const ParameterConstRef  _parameters,
const HLS_managerRef  HLSMgr,
unsigned int  funId,
const DesignFlowManagerConstRef  design_flow_manager,
const HLSFlowStep_Type  hls_flow_step_type 
)

Constructor.

Parameters
design_flow_manageris the design flow manager

Definition at line 66 of file datapath_parallel_cs.cpp.

References DesignFlowStep::debug_level, GET_CLASS, DesignFlowStep::parameters, and ~datapath_parallel_cs().

Here is the call graph for this function:

◆ ~datapath_parallel_cs()

datapath_parallel_cs::~datapath_parallel_cs ( )
overridedefault

Destructor.

Referenced by datapath_parallel_cs().

Here is the caller graph for this function:

Member Function Documentation

◆ add_ports()

void datapath_parallel_cs::add_ports ( )
overrideprotectedvirtual

◆ ComputeHLSRelationships()

const CustomUnorderedSet< std::tuple< HLSFlowStep_Type, HLSFlowStepSpecializationConstRef, HLSFlowStep_Relationship > > datapath_parallel_cs::ComputeHLSRelationships ( const DesignFlowStep::RelationshipType  relationship_type) const
overrideprotectedvirtual

ComputeHLSRelationships datapath need kernel in order to be created.

Parameters
relationship_type
Returns

Reimplemented from datapath_creator.

Definition at line 79 of file datapath_parallel_cs.cpp.

References CALLED_FUNCTIONS, DesignFlowStep::DEPENDENCE_RELATIONSHIP, DOMINATOR_ALLOCATION, DesignFlowStep::INVALIDATION_RELATIONSHIP, OMP_BODY_LOOP_SYNTHESIS_FLOW, DesignFlowStep::PRECEDENCE_RELATIONSHIP, THROW_UNREACHABLE, and WHOLE_APPLICATION.

◆ connect_i_module_kernel()

void datapath_parallel_cs::connect_i_module_kernel ( structural_objectRef  kernel)
protected

connect datapath with each kernel

Parameters
kernel

Definition at line 275 of file datapath_parallel_cs.cpp.

References structural_manager::add_connection(), hls::datapath, DesignFlowStep::debug_level, DEBUG_LEVEL_VERY_PEDANTIC, structural_object::find_member(), structural_manager::get_circ(), HLSFunctionStep::HLS, port_o_K, and PRINT_DBG_MEX.

Referenced by InternalExec().

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

◆ connect_module_kernel()

void datapath_parallel_cs::connect_module_kernel ( structural_objectRef  kernel,
unsigned int  num_kernel 
)
protected

◆ instantiate_component_parallel()

void datapath_parallel_cs::instantiate_component_parallel ( structural_objectRef  clock_port,
structural_objectRef  reset_port 
)
protected

◆ InternalExec()

DesignFlowStep_Status datapath_parallel_cs::InternalExec ( )
overridevirtual

◆ manage_extern_global_port_parallel()

void datapath_parallel_cs::manage_extern_global_port_parallel ( const structural_managerRef  SM,
const std::vector< structural_objectRef > &  memory_modules,
const structural_objectRef  circuit 
)
protected

connect mem_parallel with datapath and kernels

Parameters
SM
memory_modules
circuit

Definition at line 404 of file datapath_parallel_cs.cpp.

References structural_manager::add_connection(), structural_manager::add_port_vector(), structural_manager::add_sign(), component_o_K, DesignFlowStep::debug_level, DEBUG_LEVEL_VERY_PEDANTIC, structural_object::find_member(), port_o::fix_port_properties(), structural_object::get_kind(), structural_object::get_typeRef(), INDENT_DBG_MEX, port_vector_o_K, STR, and THROW_ASSERT.

Referenced by InternalExec().

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

◆ resize_ctrl_parallel_ports()

void datapath_parallel_cs::resize_ctrl_parallel_ports ( structural_objectRef  mem_par_mod)
protected

for each port decide the vector size

Parameters
mem_par_mod

Definition at line 339 of file datapath_parallel_cs.cpp.

References DesignFlowStep::parameters, and resize_dimension_bus_port().

Referenced by instantiate_component_parallel().

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

◆ resize_dimension_bus_port()

void datapath_parallel_cs::resize_dimension_bus_port ( unsigned int  vector_size,
structural_objectRef  port 
)
protected

for each port resize it depending on the type of bus port

Parameters
vector_size
port

Definition at line 377 of file datapath_parallel_cs.cpp.

References HLS_step::HLSMgr, and structural_object::type_resize().

Referenced by resize_ctrl_parallel_ports().

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

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

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