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

Superclass include. More...

#include <omp_allocation.hpp>

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

Public Member Functions

 OmpAllocation (const ParameterConstRef Param, const HLS_managerRef HLSMgr, unsigned int funId, const DesignFlowManagerConstRef design_flow_manager)
 Constructor. More...
 
 ~OmpAllocation () override
 Destructor. More...
 
- Public Member Functions inherited from allocation
DesignFlowStep_Status InternalExec () override
 Execute the step. More...
 
void Initialize () override
 Initialize the step (i.e., like a constructor, but executed just before exec. More...
 
void PrintInitialIR () const override
 Dump the initial intermediate representation. More...
 
 allocation (const ParameterConstRef _parameters, const HLS_managerRef HLSMgr, unsigned int funId, const DesignFlowManagerConstRef design_flow_manager, const HLSFlowStep_Type=HLSFlowStep_Type::ALLOCATION)
 Constructor. More...
 
 ~allocation () 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...
 
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...
 
- 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 PrintFinalIR () const
 Dump the final intermediate representation. More...
 

Protected Member Functions

void IntegrateTechnologyLibraries () override
 Integrate technology libraries with special functional units. More...
 
void AddPandaPthreadMutex ()
 Add the module implementing panda_pthread_mutex. More...
 
- Protected Member Functions inherited from allocation
technology_nodeRef get_fu (const std::string &fu_name)
 Returns the technology_node associated with the given operation. More...
 
std::string get_compliant_pipelined_unit (double clock, const std::string &pipe_parameter, const technology_nodeRef current_fu, const std::string &curr_op, const std::string &library_name, const std::string &template_suffix, unsigned long long module_prec)
 In case the current functional unit has pipelined operations then it return an id identifying the most compliant functional unit given the current clock period. More...
 
technology_nodeRef extract_bambu_provided (const std::string &library_name, operation *curr_op, const std::string &bambu_provided_resource_)
 
void set_number_channels (unsigned int fu_name, unsigned int n_ports)
 set the number of ports associated with the functional unit More...
 
double get_execution_time_dsp_modified (const unsigned int fu_name, const technology_nodeRef &node_op) const
 
double get_stage_period_dsp_modified (const unsigned int fu_name, const technology_nodeRef &node_op) const
 
void add_proxy_function_module (const HLS_constraintsRef HLS_C, technology_nodeRef techNode_obj, const std::string &orig_fun_name)
 Add a proxy function to the WORK library. More...
 
void add_proxy_function_wrapper (const std::string &library_name, technology_nodeRef techNode_obj, const std::string &orig_fun_name)
 Add a proxy wrapper to the WORK library. More...
 
void BuildProxyWrapper (functional_unit *current_fu, const std::string &orig_fun_name, const std::string &orig_library_name)
 Build the proxy wrapper. More...
 
void BuildProxyFunctionVerilog (functional_unit *current_fu)
 Build the proxy function in Verilog. More...
 
void BuildProxyFunctionVHDL (functional_unit *current_fu)
 Build the proxy function in VHDL. More...
 
void BuildProxyFunction (functional_unit *current_fu)
 Build the proxy function. More...
 
void add_tech_constraint (technology_nodeRef cur_fu, unsigned int tech_constrain_value, unsigned int pos, bool proxy_constrained)
 
void add_resource_to_fu_list (std::string channels_type, const OpGraphConstRef g, technology_nodeRef current_fu, CustomOrderedSet< vertex > vertex_analysed, node_kind_prec_infoRef node_info, unsigned int current_id, CustomOrderedSet< vertex >::const_iterator vert, const std::vector< std::string > &libraries, bool isMemory, std::string bambu_provided_resource, operation *curr_op, std::string specialized_fuName, bool predicate_2, std::string current_op, HLS_manager::io_binding_type constant_id, bool varargs_fu, unsigned int l, std::string memory_ctrl_type, std::map< std::string, technology_nodeRef > new_fu, unsigned int tech_constrain_value)
 
bool check_templated_units (double clock_period, node_kind_prec_infoRef node_info, const library_managerRef library, technology_nodeRef current_fu, operation *curr_op)
 
bool check_for_memory_compliancy (bool Has_extern_allocated_data, technology_nodeRef current_fu, const std::string &memory_ctrl_type, const std::string &channels_type)
 
bool check_type_and_precision (operation *curr_op, node_kind_prec_infoRef node_info)
 
bool check_proxies (const library_managerRef library, const std::string &fu_name_)
 
bool check_generated_bambu_flopoco (bool skip_softfloat_resources, structural_managerRef structManager_obj, std::string &bambu_provided_resource, bool skip_flopoco_resources, technology_nodeRef current_fu)
 
bool is_ram_not_timing_compliant (const HLS_constraintsRef HLS_C, unsigned int var, technology_nodeRef current_fu)
 
std::string get_synch_ram_latency (const std::string &ram_template, const std::string &latency_postfix, const HLS_constraintsRef HLS_C, unsigned int var)
 
const CustomUnorderedSet< std::tuple< HLSFlowStep_Type, HLSFlowStepSpecializationConstRef, HLSFlowStep_Relationship > > ComputeHLSRelationships (const DesignFlowStep::RelationshipType relationship_type) const override
 Return the set of analyses in relationship with this design step. More...
 
void ComputeRelationships (DesignFlowStepSet &relationship, 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 allocation
AllocationInformationRef allocation_information
 The allocation solution. More...
 
std::map< std::string, std::string > precomputed_pipeline_unit
 store the precomputed pipeline unit: given a functional unit it return the pipeline id compliant More...
 
std::map< technology_nodeRef, std::map< unsigned long long, std::map< HLS_manager::io_binding_type, unsigned int > > > fu_list
 
HLS_deviceRef HLS_D
 The HLS target. More...
 
technology_managerRef TechM
 The technology manager. 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

Superclass include.

This wrapper collects all the methods used by the High-level synthesis classes to retrieve information about the functional units.

Definition at line 50 of file omp_allocation.hpp.

Constructor & Destructor Documentation

◆ OmpAllocation()

OmpAllocation::OmpAllocation ( const ParameterConstRef  Param,
const HLS_managerRef  HLSMgr,
unsigned int  funId,
const DesignFlowManagerConstRef  design_flow_manager 
)

Constructor.

Parameters
design_flow_manageris the design flow manager

Definition at line 56 of file omp_allocation.cpp.

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

Here is the call graph for this function:

◆ ~OmpAllocation()

OmpAllocation::~OmpAllocation ( )
overridedefault

Destructor.

Referenced by OmpAllocation().

Here is the caller graph for this function:

Member Function Documentation

◆ AddPandaPthreadMutex()

void OmpAllocation::AddPandaPthreadMutex ( )
protected

◆ IntegrateTechnologyLibraries()

void OmpAllocation::IntegrateTechnologyLibraries ( )
overrideprotectedvirtual

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

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