63 const DesignFlowManagerConstRef _design_flow_manager)
76 std::map<unsigned int, CustomOrderedSet<unsigned int>> black_list;
77 std::map<unsigned int, std::list<std::pair<std::string, vertex>>> fu_ops;
78 for(boost::tie(vIt, vItEnd) = boost::vertices(*data); vIt != vItEnd; vIt++)
91 fu_ops[fu].push_back(std::make_pair(
GET_NAME(data, *vIt), *vIt));
95 for(
auto& fu_op : fu_ops)
97 unsigned int fu = fu_op.first;
99 for(
auto& op : fu_op.second)
101 unsigned int idx = 0;
102 while(black_list[fu].find(idx) != black_list[fu].end())
107 black_list[fu].insert(idx);
const HLS_managerRef HLSMgr
information about all the HLS synthesis
~unique_binding() override
Destructor.
File containing functions and utilities to support the printing of debug messagges.
unsigned int get_assign(const vertex &v) const
Returns the functional unit assigned to the vertex.
const unsigned int funId
identifier of the function to be processed (0 means that it is a global step)
#define GET_NAME(data, vertex_index)
Helper macro returning the name associated with a node.
Class specification of the graph structures.
AllocationInformationRef allocation_information
Store the technology information.
DesignFlowStep_Status InternalExec() override
Performs module binding assigning each operation to a free resource.
fu_bindingRef Rfu
Store the refcounted functional unit binding of the operations.
ScheduleRef Rsch
Store the refcounted scheduling of the operations.
Data structure used to store the schedule of the operations.
void bind(const vertex &v, unsigned int unit, unsigned int index=std::numeric_limits< unsigned int >::max())
Binds an operation vertex to a functional unit.
boost::graph_traits< graph >::vertex_iterator VertexIterator
vertex_iterator definition.
DesignFlowStep_Status
The status of a step.
This file collects some utility functions and macros.
void print(fu_bindingRef Rfu=fu_bindingRef()) const
Function that prints the class schedule.
Data structure used to store the functional-unit binding of the vertexes.
const OpGraphConstRef CGetOpGraph(FunctionBehavior::graph_type gt) const
This method returns the operation graphs.
#define INFINITE_UINT
UNSIGNED INT representing infinite.
hlsRef HLS
HLS data structure of the function to be analyzed.
Data structures used in operations graph.
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.
unique_binding(const ParameterConstRef Param, const HLS_managerRef HLSMgr, unsigned int funId, const DesignFlowManagerConstRef design_flow_manager)
Constructor.
#define DEBUG_LEVEL_VERBOSE
verbose debugging print is performed.
Data structure definition for high-level synthesis flow.
Class to create a unique binding.
unsigned int get_index(const vertex &v) const
Returns the index of functional unit assigned to the vertex.
Generic class managing module binding algorithms.