58 const DesignFlowManagerConstRef _design_flow_manager,
60 :
classic_datapath(_parameters, _HLSMgr, _funId, _design_flow_manager, _hls_flow_step_type)
71 auto omp_functions = GetPointer<OmpFunctions>(
HLSMgr->Rfuns);
75 if(omp_functions->parallelized_functions.find(
funId) != omp_functions->parallelized_functions.end())
79 if(omp_functions->atomic_functions.find(
funId) != omp_functions->atomic_functions.end())
86 auto num_slots =
ceil_log2(
parameters->getOption<
unsigned long long int>(OPT_context_switch));
96 SM->add_port(
STR(
SUSPENSION), port_o::OUT, circuit, bool_type);
98 if(omp_functions->kernel_functions.find(
funId) != omp_functions->kernel_functions.end())
102 auto num_slots =
ceil_log2(
parameters->getOption<
unsigned long long int>(OPT_context_switch));
#define DEBUG_LEVEL_VERY_PEDANTIC
extremely verbose debugging print is performed.
const HLS_managerRef HLSMgr
information about all the HLS synthesis
Data structure representing the entire HLS information.
#define INDENT_DBG_MEX(dbgLevel, curDbgLevel, mex)
We are producing a debug version of the program, so the message is printed;.
refcount< structural_type_descriptor > structural_type_descriptorRef
RefCount type definition of the structural_type_descriptor class structure.
File containing functions and utilities to support the printing of debug messagges.
structural_managerRef datapath
Store the datapath description.
Structure representing the most relevant information about the type of a structural object...
virtual void add_ports()
Adds the input/output ports of the module.
#define GET_CLASS(obj)
Macro returning the actual type of an object.
mathematical utility function not provided by standard libraries
const unsigned int funId
identifier of the function to be processed (0 means that it is a global step)
#define STR(s)
Macro which performs a lexical_cast to a string.
virtual void AddParameter(const std::string &name, const std::string &default_value)
Add a parameter.
T ceil_log2(T x)
Return the smallest n such that 2**n >= X.
~datapath_cs() override
Destructor.
const ParameterConstRef parameters
Set of input parameters.
This file collects some utility functions and macros.
void add_ports() override
Adds the input/output ports of the module.
This class describes all classes used to represent a structural object.
hlsRef HLS
HLS data structure of the function to be analyzed.
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
this class is used to manage the command-line or XML options.
datapath_cs(const ParameterConstRef _parameters, const HLS_managerRef HLSMgr, unsigned int funId, const DesignFlowManagerConstRef design_flow_manager, const HLSFlowStep_Type hls_flow_step_type)
Constructor.
#define SELECTOR_REGISTER_FILE
Class implementation of the structural_manager.
int debug_level
The debug level.
Datastructure to describe functions allocation in high-level synthesis.
#define DEBUG_LEVEL_VERBOSE
verbose debugging print is performed.
Data structure definition for high-level synthesis flow.
#define THROW_ASSERT(cond, str_expr)
helper function used to check an assert and if needed to throw an error in a standard way ...