PandA-2024.02
Data Structures | Macros | Functions
cdfc_module_binding.cpp File Reference

Class implementation of the module binding algorithm. More...

#include "cdfc_module_binding.hpp"
#include "Parameter.hpp"
#include "allocation_information.hpp"
#include "behavioral_helper.hpp"
#include "behavioral_writer_helper.hpp"
#include "chaining_information.hpp"
#include "clique_covering.hpp"
#include "cpu_time.hpp"
#include "custom_map.hpp"
#include "custom_set.hpp"
#include "dbgPrintHelper.hpp"
#include "design_flow_manager.hpp"
#include "design_flow_step.hpp"
#include "fu_binding.hpp"
#include "function_behavior.hpp"
#include "graph.hpp"
#include "hash_helper.hpp"
#include "hls.hpp"
#include "hls_constraints.hpp"
#include "hls_device.hpp"
#include "hls_flow_step_factory.hpp"
#include "hls_manager.hpp"
#include "liveness.hpp"
#include "memory.hpp"
#include "module_binding_check.hpp"
#include "mux_connection_binding.hpp"
#include "op_graph.hpp"
#include "parallel_memory_fu_binding.hpp"
#include "reg_binding.hpp"
#include "schedule.hpp"
#include "state_transition_graph_manager.hpp"
#include "storage_value_information.hpp"
#include "storage_value_insertion.hpp"
#include "technology_manager.hpp"
#include "technology_node.hpp"
#include "tree_helper.hpp"
#include "tree_manager.hpp"
#include "tree_node.hpp"
#include "utility.hpp"
#include "weighted_clique_register.hpp"
#include <algorithm>
#include <boost/range/adaptor/reversed.hpp>
#include <cmath>
#include <deque>
#include <filesystem>
#include <iosfwd>
#include <limits>
#include <list>
#include <string>
#include <utility>
#include <vector>
#include "string_manipulation.hpp"
Include dependency graph for cdfc_module_binding.cpp:

Go to the source code of this file.

Data Structures

struct  topological_based_sorting_visitor< OutputIterator >
 
struct  cdfc_resource_ordering_functor
 Functor used to compare which of two resources has to be considered first during the binding. More...
 
struct  slack_based_filtering
 
class  CdfcWriter
 
class  CdfcEdgeWriter
 

Macros

#define DEFAULT_SMALL_NORMALIZED_RESOURCE_AREA   2.0
 
#define MODULE_BINDING_MUX_MARGIN   1.0
 
#define DSP_MARGIN   1.0
 
#define CLOCK_MARGIN   0.97
 
#define OP_THRESHOLD   1000
 

Functions

template<typename VertexListGraph , typename OutputIterator , typename P , typename T , typename R >
void topological_based_sorting (const VertexListGraph &g, std::vector< vertex > &c2s, const OpGraphConstRef sdg, OutputIterator result, const boost::bgl_named_params< P, T, R > &params)
 
template<typename VertexListGraph , typename OutputIterator >
void topological_based_sorting (const VertexListGraph &g, std::vector< vertex > &c2s, const OpGraphConstRef sdg, OutputIterator result)
 
template<bool do_estimation, bool do_conversion, typename vertex_type , class cluster_type >
void estimate_muxes (const connection_relation &con_rel, unsigned long long mux_prec, double &tot_mux_delay, double &tot_mux_area, const cluster_type &cluster, unsigned int &total_muxes, unsigned int &n_shared, const CustomUnorderedMap< vertex_type, vertex > &converter, const HLS_managerRef HLSMgr, const hlsRef HLS, int debug_level)
 
static bool compute_condition1 (const std::string &lib_name, const AllocationInformationConstRef allocation_information, double local_mux_time, unsigned int fu_s1)
 
static bool compute_condition2 (bool cond1, unsigned long long fu_prec, double resource_area, const double small_normalized_resource_area)
 

Detailed Description

Class implementation of the module binding algorithm.

Definition in file cdfc_module_binding.cpp.

Macro Definition Documentation

◆ CLOCK_MARGIN

#define CLOCK_MARGIN   0.97

Definition at line 108 of file cdfc_module_binding.cpp.

Referenced by cdfc_module_binding::InternalExec().

◆ DEFAULT_SMALL_NORMALIZED_RESOURCE_AREA

#define DEFAULT_SMALL_NORMALIZED_RESOURCE_AREA   2.0

Definition at line 105 of file cdfc_module_binding.cpp.

◆ DSP_MARGIN

#define DSP_MARGIN   1.0

Definition at line 107 of file cdfc_module_binding.cpp.

◆ MODULE_BINDING_MUX_MARGIN

#define MODULE_BINDING_MUX_MARGIN   1.0

Definition at line 106 of file cdfc_module_binding.cpp.

Referenced by cdfc_module_binding::InternalExec().

◆ OP_THRESHOLD

#define OP_THRESHOLD   1000

Definition at line 109 of file cdfc_module_binding.cpp.

Referenced by cdfc_module_binding::InternalExec().

Function Documentation

◆ compute_condition1()

static bool compute_condition1 ( const std::string &  lib_name,
const AllocationInformationConstRef  allocation_information,
double  local_mux_time,
unsigned int  fu_s1 
)
inlinestatic

Definition at line 912 of file cdfc_module_binding.cpp.

References AllocationInformation::get_number_channels(), AllocationInformation::get_number_fu(), AllocationInformation::get_worst_number_of_cycles(), INFINITE_UINT, PROXY_LIBRARY, and WORK_LIBRARY.

Referenced by cdfc_module_binding::InternalExec().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute_condition2()

static bool compute_condition2 ( bool  cond1,
unsigned long long  fu_prec,
double  resource_area,
const double  small_normalized_resource_area 
)
inlinestatic

Definition at line 924 of file cdfc_module_binding.cpp.

References cdfc_module_binding::small_normalized_resource_area.

Referenced by cdfc_module_binding::InternalExec().

Here is the caller graph for this function:

◆ estimate_muxes()

template<bool do_estimation, bool do_conversion, typename vertex_type , class cluster_type >
void estimate_muxes ( const connection_relation con_rel,
unsigned long long  mux_prec,
double &  tot_mux_delay,
double &  tot_mux_area,
const cluster_type &  cluster,
unsigned int &  total_muxes,
unsigned int &  n_shared,
const CustomUnorderedMap< vertex_type, vertex > &  converter,
const HLS_managerRef  HLSMgr,
const hlsRef  HLS,
int  debug_level 
)

◆ topological_based_sorting() [1/2]

template<typename VertexListGraph , typename OutputIterator , typename P , typename T , typename R >
void topological_based_sorting ( const VertexListGraph &  g,
std::vector< vertex > &  c2s,
const OpGraphConstRef  sdg,
OutputIterator  result,
const boost::bgl_named_params< P, T, R > &  params 
)

Definition at line 141 of file cdfc_module_binding.cpp.

Referenced by cdfc_module_binding::InternalExec(), and topological_based_sorting().

Here is the caller graph for this function:

◆ topological_based_sorting() [2/2]

template<typename VertexListGraph , typename OutputIterator >
void topological_based_sorting ( const VertexListGraph &  g,
std::vector< vertex > &  c2s,
const OpGraphConstRef  sdg,
OutputIterator  result 
)

Definition at line 149 of file cdfc_module_binding.cpp.

References topological_based_sorting().

Here is the call graph for this function:

Generated on Mon Feb 12 2024 13:03:24 for PandA-2024.02 by doxygen 1.8.13