112 #if HAVE_FROM_PRAGMA_BUILT 131 #include "config_HAVE_ILP_BUILT.hpp" 155 "-->Creating step " +
307 #if HAVE_SIMULATION_WRAPPER_BUILT 322 case HLSFlowStep_Type::GENERATE_TASTE_HDL_ARCHITECTURE:
328 case HLSFlowStep_Type::GENERATE_TASTE_SYNTHESIS_SCRIPT:
387 #if HAVE_FROM_PRAGMA_BUILT 388 case HLSFlowStep_Type::OMP_ALLOCATION:
395 #if HAVE_FROM_PRAGMA_BUILT 403 #if HAVE_FROM_PRAGMA_BUILT 404 case HLSFlowStep_Type::OMP_FOR_WRAPPER_CS_SYNTHESIS_FLOW:
411 #if HAVE_FROM_PRAGMA_BUILT 412 case HLSFlowStep_Type::OMP_FUNCTION_ALLOCATION:
419 #if HAVE_FROM_PRAGMA_BUILT 420 case HLSFlowStep_Type::OMP_FUNCTION_ALLOCATION_CS:
446 case HLSFlowStep_Type::SDC_SCHEDULING:
453 case HLSFlowStep_Type::SIMULATION_EVALUATION:
464 #if HAVE_LIBRARY_CHARACTERIZATION_BUILT 465 case HLSFlowStep_Type::SYNTHESIS_EVALUATION:
472 case HLSFlowStep_Type::TASTE_INTERFACE_GENERATION:
534 case HLSFlowStep_Type::VCD_SIGNAL_SELECTION:
539 case HLSFlowStep_Type::VCD_UTILITY:
582 return design_flow_step;
586 const CustomUnorderedSet<std::pair<HLSFlowStep_Type, HLSFlowStepSpecializationConstRef>>& hls_flow_steps)
const 591 for(
const auto& hls_flow_step : hls_flow_steps)
595 switch(hls_flow_step.first)
607 #if HAVE_SIMULATION_WRAPPER_BUILT 616 case HLSFlowStep_Type::VCD_SIGNAL_SELECTION:
617 case HLSFlowStep_Type::VCD_UTILITY:
643 case HLSFlowStep_Type::GENERATE_TASTE_HDL_ARCHITECTURE:
644 case HLSFlowStep_Type::GENERATE_TASTE_SYNTHESIS_SCRIPT:
652 #if HAVE_FROM_PRAGMA_BUILT 653 case HLSFlowStep_Type::OMP_ALLOCATION:
655 #if HAVE_FROM_PRAGMA_BUILT 658 #if HAVE_FROM_PRAGMA_BUILT 659 case HLSFlowStep_Type::OMP_FOR_WRAPPER_CS_SYNTHESIS_FLOW:
661 #if HAVE_FROM_PRAGMA_BUILT 662 case HLSFlowStep_Type::OMP_FUNCTION_ALLOCATION:
664 #if HAVE_FROM_PRAGMA_BUILT 665 case HLSFlowStep_Type::OMP_FUNCTION_ALLOCATION_CS:
671 case HLSFlowStep_Type::SDC_SCHEDULING:
673 #if HAVE_SIMULATION_WRAPPER_BUILT 674 case HLSFlowStep_Type::SIMULATION_EVALUATION:
677 #if HAVE_LIBRARY_CHARACTERIZATION_BUILT 678 case HLSFlowStep_Type::SYNTHESIS_EVALUATION:
681 case HLSFlowStep_Type::TASTE_INTERFACE_GENERATION:
704 const std::pair<HLSFlowStep_Type, HLSFlowStepSpecializationConstRef>& hls_flow_step)
const 707 hls_flow_steps.insert(hls_flow_step);
715 const std::pair<HLSFlowStep_Type, HLSFlowStepSpecializationConstRef> hls_flow_step(type,
716 hls_flow_step_specialization);
721 const std::pair<HLSFlowStep_Type, HLSFlowStepSpecializationConstRef>& hls_flow_step)
const Class to compute evaluations about high-level synthesis.
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.
const HLS_managerRef HLS_mgr
The HLS manager.
#define DEBUG_LEVEL_VERY_PEDANTIC
extremely verbose debugging print is performed.
const ParameterConstRef parameters
The set of input parameters.
#define INDENT_DBG_MEX(dbgLevel, curDbgLevel, mex)
We are producing a debug version of the program, so the message is printed;.
Module binding based on the analysis of the control data flow chained graph.
const DesignFlowStepSet CreateHLSFlowSteps(const CustomUnorderedSet< std::pair< HLSFlowStep_Type, HLSFlowStepSpecializationConstRef >> &hls_flow_steps) const
Create the frontend design flow steps.
File containing functions and utilities to support the printing of debug messagges.
Base class for all the controller creation algorithms.
This step adds the current module to the technology library.
Wrapper used to generate simulation scripts.
#define GET_CLASS(obj)
Macro returning the actual type of an object.
Weighted clique covering register allocation procedure.
Proxy class calling the bit value analysis just before the hls_bit_value step taking into account the...
Class to generate interface for taste architecture.
Header class for the creation of the classical FSM controller.
Base class for the top entity creation.
Base class for usual datapath creation.
Generate HDL testbench for the top-level kernel testing.
HLSFlowStepFactory(const DesignFlowManagerConstRef design_flow_manager, const HLS_managerRef _HLS_mgr, const ParameterConstRef parameters)
Constructor.
Module for the generation of the top WB4 component.
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.
Class containing the chordal coloring algorithm implementation.
Auxiliary methods for manipulating string.
Definition of the class to create the structural description of a function.
#define THROW_UNREACHABLE(str_expr)
helper function used to specify that some points should never be reached
Factory for hls flow step.
static std::string EnumToName(const HLSFlowStep_Type hls_flow_step_type)
Given a HLS flow step type, return the name of the type.
Base class for all scheduling algorithms.
Base class for step of design flow.
Classical synthesis flow.
Class to allocate memories in HLS based on dominators.
Class generating the top WB4 module.
Definition of the class to create the structural description for body loop of openmp for...
Class specification of the register allocation algorithms based on chordal algorithm.
Class managing the module allocation.
Step which intializes hls data structur.
Class to allocate function in HLS based on dominators.
Wrapper used to generate synthesis script for taste.
redefinition of set to manage ordered/unordered structures
chaining computation starting from the results of the scheduling step
Class definition of the sdc scheduling.
Construction of top entity memory mapped interface.
Definition of the class to create the structural description of the component.
Class managing list based scheduling algorithms.
Class to generate minimal interfaces for high-level synthesis.
This wrapper collects all the methods used by the High-level synthesis classes to retrieve informatio...
Class specification of values scheme for the storage value insertion phase.
Class to dump hls summary.
Class definition of the list_based structure.
refcount< T > lock() const
Class used to generate HDL files.
Class specification of a coloring based register allocation algorithm.
refcount< DesignFlowStep > DesignFlowStepRef
Header class for the creation of a shift register controlling a pipeline.
const Wrefcount< const DesignFlowManager > design_flow_manager
The design flow manager.
int debug_level
The debug level.
Class specification of unique binding register allocation algorithm.
Class to generate the interface for the context switch project.
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
const std::string GetPrefix() const override
Return the prefix of the steps created by the factory.
Class to generate WB4 interfaces for high-level synthesis.
~HLSFlowStepFactory() override
Destructor.
Wrapper used to generate synthesis scripts.
Class to allocate function in HLS based on dominators and openmp information.
this class is used to manage the command-line or XML options.
Composed pass to wrap function and memory dominator allocation.
Base class specification for register allocation algorithm based on a compatibility graph...
liveness analysis exploiting the SSA form of the IR
Class managing the module allocation.
Class to manage mux-based interconnections based on the FSM controller.
This package is used by all HLS packages to manage resource constraints and characteristics.
Build a wrapper layer on the top entity implementing the momory mapped interface. ...
Class generating taste interfaces.
Class managing the connection binding of datapath.
Class generating minimal interfaces.
Partial module binding based on simple conditions.
Implementation of the class to generate the top HDL taste architecture.
Implementation of the port swapping algorithm described in the following paper: Hao Cong...
Class to create a unique binding.
This package is used by all HLS packages to manage resource constraints and characteristics.
Datastructure to represent memory information in high-level synthesis.
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.
Class specification of the manager of the tree structures extracted from the raw file.