PandA-2024.02
|
Implementation of the class that manages the creation of the graph associated with the circuit. More...
#include "structural_manager.hpp"
#include "Parameter.hpp"
#include "cg_node.hpp"
#include "custom_map.hpp"
#include "custom_set.hpp"
#include "dbgPrintHelper.hpp"
#include "exceptions.hpp"
#include "graph.hpp"
#include "graph_info.hpp"
#include "library_manager.hpp"
#include "refcount.hpp"
#include "string_manipulation.hpp"
#include "technology_manager.hpp"
#include "technology_node.hpp"
#include "typed_node_info.hpp"
#include "xml_element.hpp"
#include "xml_node.hpp"
#include <iosfwd>
#include <list>
#include <memory>
#include <ostream>
#include <utility>
#include <vector>
#include <boost/algorithm/string/predicate.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/filtered_graph.hpp>
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/graphviz.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/smart_ptr/shared_ptr.hpp>
#include "config_HAVE_TECHNOLOGY_BUILT.hpp"
Go to the source code of this file.
Functions | |
template<class Graph > | |
void | circuit_add_edge (typename boost::graph_traits< Graph >::vertex_descriptor A, typename boost::graph_traits< Graph >::vertex_descriptor B, int selector, Graph &g, const structural_objectRef from1, structural_objectRef to1, bool is_critical=false) |
this template function adds an edge to the bulk graph and possibly a label to the edge. More... | |
static void | add_directed_edge_single (graphs_collection *bg, const std::map< structural_objectRef, boost::graph_traits< graphs_collection >::vertex_descriptor > &module_vertex_rel, const structural_objectRef &p1, const structural_objectRef &p2, boost::graph_traits< graphs_collection >::vertex_descriptor en, boost::graph_traits< graphs_collection >::vertex_descriptor ex, bool is_critical=false) |
Add a directed edge between the nodes associated with p1 and p2. More... | |
static void | add_directed_edge (graphs_collection *bg, const std::map< structural_objectRef, boost::graph_traits< graphs_collection >::vertex_descriptor > &module_vertex_rel, const structural_objectRef &p1, const structural_objectRef &p2, boost::graph_traits< graphs_collection >::vertex_descriptor en, boost::graph_traits< graphs_collection >::vertex_descriptor ex, bool is_critical=false) |
Add a directed edge between the nodes associated with p1 and p2. More... | |
void | remove_port_connection (const structural_objectRef &obj) |
Implementation of the class that manages the creation of the graph associated with the circuit.
This class implements functions which build the circuit and the graph associated with the circuit
Definition in file structural_manager.cpp.
|
static |
Add a directed edge between the nodes associated with p1 and p2.
module_vertex_rel | is the relation between modules and vertexes. |
p1 | is the first port. |
p2 | is the second object. It could be a port, a signal or a module. |
en | is the entry vertex. |
ex | is the exit vertex. |
gen port connection
Definition at line 1337 of file structural_manager.cpp.
References action_o_K, add_directed_edge_single(), bus_connection_o_K, channel_o_K, CHANNEL_SELECTOR, circuit_add_edge(), component_o_K, constant_o_K, data_o_K, DATA_SELECTOR, event_o_K, k, port_o_K, port_vector_o_K, signal_o_K, signal_vector_o_K, THROW_ASSERT, THROW_ERROR, and THROW_WARNING.
Referenced by structural_manager::build_graph().
|
static |
Add a directed edge between the nodes associated with p1 and p2.
module_vertex_rel | is the relation between modules and vertexes. |
p1 | is the first port. |
p2 | is the second port. |
en | is the entry vertex. |
ex | is the exit vertex. |
p2 is a top port
p1 is a top port
hyper-edge and not significant connectivity
Definition at line 1137 of file structural_manager.cpp.
References circuit_add_edge(), CLOCK_SELECTOR, DATA_SELECTOR, port_o_K, port_vector_o_K, THROW_ASSERT, and THROW_ERROR.
Referenced by add_directed_edge().
void circuit_add_edge | ( | typename boost::graph_traits< Graph >::vertex_descriptor | A, |
typename boost::graph_traits< Graph >::vertex_descriptor | B, | ||
int | selector, | ||
Graph & | g, | ||
const structural_objectRef | from1, | ||
structural_objectRef | to1, | ||
bool | is_critical = false |
||
) |
this template function adds an edge to the bulk graph and possibly a label to the edge.
Parallel edges are allowed.
Definition at line 1105 of file structural_manager.cpp.
References EDGE_ADD_FROM_PORT, EDGE_ADD_TO_PORT, EDGE_SET_CRITICAL, GET_FROM_PORT, GET_TO_PORT, and lenet_tvm::target.
Referenced by add_directed_edge(), and add_directed_edge_single().
void remove_port_connection | ( | const structural_objectRef & | obj | ) |
Definition at line 1766 of file structural_manager.cpp.
References structural_manager::remove_connection().
Referenced by structural_manager::remove_module().