43 #ifndef HLS_MANAGER_HPP 44 #define HLS_MANAGER_HPP 49 #include "config_HAVE_TASTE.hpp" 51 #include <boost/preprocessor/seq/for_each.hpp> 65 #define ENUM_ID(r, data, elem) elem, 66 #define FUNC_ARCH_ATTR_ENUM (func_symbol)(func_name)(func_inline)(func_dataflow)(func_pipeline_style)(func_pipeline_ii) 67 #define FUNC_ARCH_PARM_ATTR_ENUM \ 68 (parm_port)(parm_index)(parm_bundle)(parm_offset)(parm_includes)(parm_typename)(parm_original_typename)( \ 69 parm_elem_count)(parm_size_in_bytes) 70 #define FUNC_ARCH_IFACE_ATTR_ENUM \ 71 (iface_name)(iface_mode)(iface_direction)(iface_bitwidth)(iface_alignment)(iface_depth)(iface_register)( \ 72 iface_cache_ways)(iface_cache_line_count)(iface_cache_line_size)(iface_cache_num_write_outstanding)( \ 73 iface_cache_rep_policy)(iface_cache_bus_size)(iface_cache_write_policy) 98 using func_attrs = std::map<enum func_attr, std::string>;
99 using parm_attrs = std::map<enum parm_attr, std::string>;
103 std::map<std::string, parm_attrs>
parms;
104 std::map<std::string, iface_attrs>
ifaces;
120 FunctionArchitectures::const_iterator
cbegin()
const 122 return _funcArchs.cbegin();
125 FunctionArchitectures::const_iterator
cend()
const 127 return _funcArchs.cend();
130 FunctionArchitectures::const_iterator
begin()
const 132 return _funcArchs.begin();
135 FunctionArchitectures::const_iterator
end()
const 137 return _funcArchs.end();
140 FunctionArchitectures::iterator
erase(FunctionArchitectures::const_iterator it)
142 return _funcArchs.erase(it);
145 void AddArchitecture(
const std::string& symbol, FunctionArchitectureRef arch);
147 FunctionArchitectureRef GetArchitecture(
const std::string& funcSymbol)
const;
149 void RemoveArchitecture(
const std::string& funcSymbol);
206 std::map<std::string, std::map<unsigned, std::map<std::string, std::list<unsigned>>>>
design_interface_io;
224 hlsRef get_HLS(
unsigned int funId)
const;
244 std::string get_constant_string(
unsigned int node,
unsigned long long precision);
249 void xwrite(
const std::string&
filename);
254 std::vector<io_binding_type> get_required_values(
unsigned int fun_id,
const vertex& v)
const;
261 bool is_register_compatible(
unsigned int var)
const;
268 bool is_reading_writing_function(
unsigned funID)
const;
278 bool IsSingleWriteMemory()
const;
284 unsigned int GetMemVersion()
const;
290 unsigned int UpdateMemVersion();
293 static void check_bitwidth(
unsigned long long prec);
SimulationInformationRef RSim
information about the simulation
std::map< std::pair< std::string, std::string >, std::pair< unsigned, unsigned > > global_resource_constraints
global resource constraints
FunctionArchitectures::const_iterator end() const
CustomMap< std::string, double > evaluations
Evaluations.
#define FUNC_ARCH_PARM_ATTR_ENUM
Definition of the class representing a generic C application.
std::map< enum parm_attr, std::string > parm_attrs
BackendFlowRef back_flow
reference to the data-structure implementing the backend flow
std::map< enum iface_attr, std::string > iface_attrs
std::list< std::string > hdl_files
The HDL files.
CustomOrderedMap< T, U > CustomMap
static enum func_attr to_func_attr(const std::string &attr)
redefinition of map to manage ordered/unordered structures
std::tuple< unsigned int, unsigned int > io_binding_type
tuple set used to represent the required values or the constant default value associated with the inp...
std::map< std::string, std::map< unsigned, std::map< std::string, std::list< unsigned > > > > design_interface_io
store the design interface read/write references of parameters: function_name->bb_index->parameter_na...
HLS_deviceRef HLS_D
information about the target device/technology for the synthesis
unsigned int memory_version
The version of memory representation on which this step was applied.
#define FUNC_ARCH_IFACE_ATTR_ENUM
memoryRef Rmem
information about memory allocation
boost::graph_traits< graph >::vertex_descriptor vertex
vertex definition.
FunctionArchitectures::const_iterator cend() const
struct definition of the field attr on function_decl, field_decl, var_decl tree node.
#define ENUM_ID(r, data, elem)
std::map< std::string, parm_attrs > parms
unsigned long long int base_address
base address for memory space addressing
FunctionArchitectures::const_iterator begin() const
static enum iface_attr to_iface_attr(const std::string &attr)
#define FUNC_ARCH_ATTR_ENUM
std::map< std::string, iface_attrs > ifaces
REF_FORWARD_DECL(AadlInformation)
std::map< unsigned int, hlsRef > hlsMap
map between the function id and the corresponding HLS data-structure
FunctionArchitectures::iterator erase(FunctionArchitectures::const_iterator it)
std::list< std::string > aux_files
The auxiliary files.
FunctionArchitectures::const_iterator cbegin() const
Data structure that contains all information about high level synthesis process.
long HLS_execution_time
HLS execution time.
ModuleArchitectureRef module_arch
FunctionArchitectures _funcArchs
static enum parm_attr to_parm_attr(const std::string &attr)
functionsRef Rfuns
information about function allocation
std::map< enum func_attr, std::string > func_attrs
std::map< std::string, FunctionArchitectureRef > FunctionArchitectures