PandA-2024.02
|
#include <module_binding_check.hpp>
Public Member Functions | |
module_binding_check (unsigned long long _fu_prec, double _area_resource, const hlsRef _HLS, const HLS_managerRef _HLSMgr, const CustomUnorderedMap< vertex, double > &_slack_time, const CustomUnorderedMap< vertex, double > &_starting_time, double _controller_delay, module_register_binding_spec &_tree_index_dsets) | |
module_binding_check (const module_binding_check &original) | |
module_binding_check * | clone () const override |
module_binding_check & | operator= (const module_binding_check &)=delete |
~module_binding_check () override=default | |
void | initialize_structures (boost_cc_compatibility_graph &graph, CustomUnorderedMap< C_vertex, vertex_type > &Ruv2v) override |
double | cost (size_t clique_count) override |
size_t | num_mux () override |
void | update_after_join (C_vertex &rep, C_vertex &child) override |
bool | check_edge_compatibility (C_vertex &rep, C_vertex &other) override |
bool | check_no_mux_needed (C_vertex &rep, C_vertex &other) override |
Public Member Functions inherited from check_clique< vertex_type > | |
virtual | ~check_clique ()=default |
Protected Member Functions | |
virtual double | getOpSlack (vertex &operationVertex) const |
Takes as input the node representing the operation and returns the maximum number of muxes that can be connected before the fu that implements the operation without compromising the delay of the circuit. More... | |
Protected Attributes | |
bool | is_disabled_slack_based_binding |
Private Member Functions | |
std::vector< CustomOrderedSet< unsigned int > > | getOperationVariablesAtPort (vertex &operationVertex) const |
Takes as input the vertex of an operation, and returns a vertex. More... | |
Private Attributes | |
CustomUnorderedMap< C_vertex, double > | opSlacks |
slack associated with the Op More... | |
CustomUnorderedMap< C_vertex, std::vector< CustomOrderedSet< unsigned int > > > | input_variables |
the set of input to every port of every clique. More... | |
unsigned long long | fu_prec |
resource precision More... | |
double | area_resource |
area resource More... | |
module_register_binding_spec & | tree_index_dsets |
store the current state for binding More... | |
const hlsRef | HLS |
reference to HLS data structure More... | |
const HLS_managerRef | HLSMgr |
reference to the HLS Manager More... | |
const CustomUnorderedMap< vertex, double > & | slack_time |
reference to the vertex slack More... | |
const CustomUnorderedMap< vertex, double > & | starting_time |
reference to the vertex starting time More... | |
double | controller_delay |
controller delay More... | |
Definition at line 80 of file module_binding_check.hpp.
|
inline |
Definition at line 174 of file module_binding_check.hpp.
|
inline |
Definition at line 190 of file module_binding_check.hpp.
|
overridedefault |
|
inlineoverridevirtual |
Implements check_clique< vertex_type >.
Definition at line 326 of file module_binding_check.hpp.
References hls::allocation_information, module_register_binding_spec::binding, AllocationInformation::estimate_muxNto1_area(), AllocationInformation::estimate_muxNto1_delay(), min, and THROW_ASSERT.
|
inlineoverridevirtual |
Implements check_clique< vertex_type >.
Definition at line 389 of file module_binding_check.hpp.
References module_register_binding_spec::binding.
|
inlineoverridevirtual |
Implements check_clique< vertex_type >.
Definition at line 205 of file module_binding_check.hpp.
|
inlineoverridevirtual |
Implements check_clique< vertex_type >.
Definition at line 260 of file module_binding_check.hpp.
References hls::allocation_information, and AllocationInformation::estimate_muxNto1_area().
|
inlineprivate |
Takes as input the vertex of an operation, and returns a vertex.
Each element of the vertex is a set containing only the identifier of the variable that is required by the given operation on that port
Definition at line 125 of file module_binding_check.hpp.
References hls::functionId.
|
inlineprotectedvirtual |
Takes as input the node representing the operation and returns the maximum number of muxes that can be connected before the fu that implements the operation without compromising the delay of the circuit.
Reimplemented in module_binding_check_no_filter< vertex_type >.
Definition at line 151 of file module_binding_check.hpp.
|
inlineoverridevirtual |
Implements check_clique< vertex_type >.
Definition at line 214 of file module_binding_check.hpp.
References module_register_binding_spec::binding, fu_binding::get_assign(), fu_binding::get_index(), liveness::get_op_where_defined(), liveness::has_op_where_defined(), fu_binding::is_assigned(), max, hls::Rfu, and hls::Rliv.
|
inlineoverridevirtual |
Implements check_clique< vertex_type >.
Definition at line 280 of file module_binding_check.hpp.
|
delete |
|
inlineoverridevirtual |
Implements check_clique< vertex_type >.
Definition at line 296 of file module_binding_check.hpp.
References module_register_binding_spec::binding, insert(), and min.
|
private |
area resource
Definition at line 100 of file module_binding_check.hpp.
|
private |
controller delay
Definition at line 118 of file module_binding_check.hpp.
|
private |
resource precision
Definition at line 97 of file module_binding_check.hpp.
|
private |
reference to HLS data structure
Definition at line 106 of file module_binding_check.hpp.
|
private |
reference to the HLS Manager
Definition at line 109 of file module_binding_check.hpp.
|
private |
the set of input to every port of every clique.
input variables[vertex][port_index] gives the set of ssa variables that are needed at port port_index by the clique represented by the node vertex
Definition at line 94 of file module_binding_check.hpp.
|
protected |
Definition at line 168 of file module_binding_check.hpp.
|
private |
slack associated with the Op
Definition at line 86 of file module_binding_check.hpp.
|
private |
reference to the vertex slack
Definition at line 112 of file module_binding_check.hpp.
|
private |
reference to the vertex starting time
Definition at line 115 of file module_binding_check.hpp.
|
private |
store the current state for binding
Definition at line 103 of file module_binding_check.hpp.