46 #ifndef STRUCTURAL_MANAGER_HPP 47 #define STRUCTURAL_MANAGER_HPP 49 #include "config_HAVE_EUCALYPTUS_BUILT.hpp" 58 #define TREENODE_CHECK (-1) 200 const std::string& library_name,
202 const technology_managerConstRef TM);
242 unsigned int treenode = 0);
278 std::string
value,
unsigned int treenode = 0);
287 std::string functionality_description);
316 void print(std::ostream& os)
const;
377 void INIT(
bool permissive =
false);
void add_connection(structural_objectRef src, structural_objectRef dest)
Create a connection between a source structural object and a destination structural object...
void remove_module(structural_objectRef obj)
static void xload(const xml_element *node, structural_managerRef const &CM)
Load a structural manager from an xml file.
void remove_empty_signal(structural_objectRef &signal)
Remove an existing signal from the SM.
void * top(node_stack *head)
friend std::ostream & operator<<(std::ostream &os, const structural_managerRef s)
Friend definition of the << operator.
void remove_connection(structural_objectRef src, structural_objectRef dest)
so_kind
Enumerative type for structural object classes, it is used with get_kind() function to know the actua...
const structural_objectRef get_circ() const
Get a reference to circ field.
structural_manager(const structural_manager &inst)=delete
static bool check_object(std::string id, structural_objectRef owner, so_kind type)
Verify if the component is already associated with owner.
This class manages the tree structures extracted from the raw file.
Class specification of the graph structures.
int debug_level
debug level
This class manages the circuit structures.
const ParameterConstRef Param
class containing all the parameters
void print(std::ostream &os) const
Function that prints the circuit data structure.
refcount< technology_node > technology_nodeRef
refcount definition of the class
port_direction
Enumerative type describing the direction of a port.
void add_sensitivity(structural_objectRef obj, structural_objectRef pr)
Add an object to the sensitivity list of process/service.
void INIT(bool permissive=false)
structural_objectRef create(std::string id, so_kind ctype, structural_objectRef owner, structural_type_descriptorRef obj_type, unsigned int treenode=0)
Create a new object of the circuit.
void check_structure(structural_objectRef obj, bool permissive=false)
perform some check on the circuit manager.
static void add_NP_functionality(structural_objectRef cir, NP_functionality::NP_functionaly_type dt, std::string functionality_description)
Add a not-parsed functionality.
void set_top_info(const std::string &id, const technology_managerRef &LM, const std::string &Library="")
~structural_manager()
Destructor.
This class manages the technology library structures.
static structural_objectRef add_port(const std::string &id, port_o::port_direction pdir, structural_objectRef owner, structural_type_descriptorRef type_descr, unsigned int treenode=0)
Create a new port.
const vertex & get_PI(structural_objectRef level) const
Return the PI vertex of the circuit, at a specific level.
bool check_type(structural_objectRef src_type, structural_objectRef dest_type)
Check if two type structural object are consistent.
boost::graph_traits< graph >::vertex_descriptor vertex
vertex definition.
bool check_bound(structural_objectRef src, structural_objectRef sign)
Function that check if a signal (or port) is already bound on a port.
General class used to describe a graph in PandA.
int get_debug_level() const
structural_objectRef circuit
Structure that represent circuit.
REF_FORWARD_DECL(structural_object)
graph * data_graph
Graph only composed by the data flow in the circuit.
CONSTREF_FORWARD_DECL(technology_manager)
structural_objectRef add_constant(std::string id, structural_objectRef owner, structural_type_descriptorRef type, std::string value, unsigned int treenode=0)
Create a new constant;.
structural_objectRef add_module_from_technology_library(const std::string &id, const std::string &fu_name, const std::string &library_name, const structural_objectRef owner, const technology_managerConstRef TM)
Create a new object starting from a library component.
Template definition of refcount.
void SetParameter(const std::string &name, const std::string &value)
Specify a parameter for the top module.
void reconnect_signal_member(structural_objectRef &member, structural_objectRef &from_signal, structural_objectRef &to_signal)
Disconnects a member from from_signal and reconnects it to to_signal.
This class describes all classes used to represent a structural object.
graph * circuit_graph
Graph containing all lines of the circuit.
static structural_objectRef add_sign(std::string id, structural_objectRef owner, structural_type_descriptorRef sign_type, unsigned int treenode=0)
Create a new signal.
friend std::ostream & operator<<(std::ostream &os, const structural_manager &s)
Friend definition of the << operator.
void change_connection(structural_objectRef old_obj, structural_objectRef new_obj, structural_objectRef owner)
static void change_port_direction(structural_objectRef port_object, port_o::port_direction pdir, structural_objectRef owner)
Change the direction of the port.
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
NP_functionaly_type
functionality type descriptors.
Not parsed functionality manager.
graphs_collection * og
Bulk graph used to represent all graphs.
void build_graph(const structural_objectRef &top, graphs_collection *bg)
build a graph starting from a structural object.
static structural_objectRef add_port_vector(std::string id, port_o::port_direction pdir, unsigned int n_ports, structural_objectRef owner, structural_type_descriptorRef type_descr, unsigned int treenode=0)
Create a new port_vector.
Abstract pure class for the technology structure.
Base object for all the structural objects.
void xwrite(xml_element *rootnode, const technology_nodeRef &tn=technology_nodeRef()) const
Add a component to an xml tree.
void WriteDot(const std::string &file_name, circuit_graph_type gt, graph *g=nullptr) const
Function that writes the dot file of the graph by using the AT&T dot format.
static structural_objectRef add_sign_vector(std::string id, unsigned int n_signs, structural_objectRef owner, structural_type_descriptorRef sign_type, unsigned int treenode=0)