54 const DesignFlowManagerConstRef _design_flow_manager)
56 already_executed(
false)
67 switch(relationship_type)
97 HLSMgr->RSim->sim_tool->CheckExecution();
99 unsigned long long tot_cycles = 0, num_executions = 0;
100 HLSMgr->RSim->sim_tool->Simulate(tot_cycles, num_executions);
105 HLSMgr->RSim->sim_tool->Clean();
108 auto objective_string =
parameters->getOption<std::string>(OPT_evaluation_objectives);
109 const auto objective_vector = string_to_container<std::vector<std::string>>(objective_string,
",");
110 for(
const auto& objective : objective_vector)
112 if(objective ==
"CYCLES" || objective ==
"TIME" || objective ==
"TOTAL_CYCLES" || objective ==
"TOTAL_TIME" ||
113 objective ==
"TIMExAREA")
115 const auto avg_cycles = tot_cycles / num_executions;
116 HLSMgr->evaluations[
"TOTAL_CYCLES"] =
static_cast<double>(tot_cycles);
117 HLSMgr->evaluations[
"CYCLES"] =
static_cast<double>(avg_cycles);
118 HLSMgr->evaluations[
"NUM_EXECUTIONS"] =
static_cast<double>(num_executions);
#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;.
File containing functions and utilities to support the printing of debug messagges.
#define GET_CLASS(obj)
Macro returning the actual type of an object.
~SimulationEvaluation() override
Destructor of the class.
RelationshipType
The relationship type.
Source must be executed to satisfy target.
SimulationEvaluation(const ParameterConstRef Param, const HLS_managerRef hls_mgr, const DesignFlowManagerConstRef design_flow_manager)
Constructor of the class.
#define THROW_UNREACHABLE(str_expr)
helper function used to specify that some points should never be reached
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.
Target must be reexecuted.
redefinition of set to manage ordered/unordered structures
const ParameterConstRef parameters
Set of input parameters.
DesignFlowStep_Status
The status of a step.
This file collects some utility functions and macros.
DesignFlowStep_Status Exec() override
Execute the step.
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.
int debug_level
The debug level.
refcount< const HLSFlowStepSpecialization > HLSFlowStepSpecializationConstRef
const refcount definition of the class
#define THROW_ASSERT(cond, str_expr)
helper function used to check an assert and if needed to throw an error in a standard way ...