PandA-2024.02
Data Structures | Macros
cg_node.hpp File Reference

Node, edge and graph description of the graph associated with a structural description. More...

#include "edge_info.hpp"
#include "graph.hpp"
#include "graph_info.hpp"
#include "refcount.hpp"
#include "typed_node_info.hpp"
#include <ostream>
#include <string>
#include <utility>
Include dependency graph for cg_node.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  cg_node_info
 Information associated with a circuit graph node. More...
 
struct  cg_edge_info
 Information associated with a circuit graph edge. More...
 
struct  cg_graph_info
 Information associated with the whole graph of a circuit. More...
 
class  cg_edge_writer
 
class  cg_label_writer
 

Macros

#define DATA_SELECTOR   1
 Data line selector. More...
 
#define CLOCK_SELECTOR   2
 Clock line selector. More...
 
#define CHANNEL_SELECTOR   4
 Channel line selector. More...
 
#define ALL_LINES_SELECTOR   (DATA_SELECTOR | CLOCK_SELECTOR | CHANNEL_SELECTOR)
 All lines selector. More...
 
#define PURE_DATA_SELECTOR   (DATA_SELECTOR | CHANNEL_SELECTOR)
 All but clock lines selector. More...
 
#define GET_REFERENCE(data, node_index)   Cget_node_info<cg_node_info>(node_index, *(data))->reference
 
#define GET_CRITICAL(data, node_index)   Cget_node_info<cg_node_info>(node_index, *(data))->is_critical
 
#define GET_FROM_PORT(data, edge_index)   Cget_edge_info<cg_edge_info>(edge_index, *(data))->from_port
 Helper macro returning the from port. More...
 
#define GET_EDGE_CRITICAL(data, edge_index)   Cget_node_info<cg_edge_info>(edge_index, *(data))->is_critical
 Helper macro returning if the edge is timing critical. More...
 
#define EDGE_ADD_FROM_PORT(data, edge_index, from)   get_edge_info<cg_edge_info>(edge_index, *(data))->from_port = from
 Add a from port to the edge. More...
 
#define GET_TO_PORT(data, edge_index)   Cget_edge_info<cg_edge_info>(edge_index, *(data))->to_port
 Helper macro returning the to port/channel. More...
 
#define EDGE_ADD_TO_PORT(data, edge_index, _to)   get_edge_info<cg_edge_info>(edge_index, *(data))->to_port = _to
 Add a to port/channel to the edge. More...
 
#define EDGE_SET_CRITICAL(data, edge_index, critical)   get_edge_info<cg_edge_info>(edge_index, *(data))->is_critical = critical
 Set the edge as critical. More...
 

Functions

Forward declarations.
 REF_FORWARD_DECL (structural_object)
 

Detailed Description

Node, edge and graph description of the graph associated with a structural description.

Author
Matteo Barbati matte.nosp@m.o.mb.nosp@m.arbat.nosp@m.i@gm.nosp@m.ail.c.nosp@m.om $Revision$ $Date$ Last modified by $Author$

Definition in file cg_node.hpp.

Macro Definition Documentation

◆ ALL_LINES_SELECTOR

#define ALL_LINES_SELECTOR   (DATA_SELECTOR | CLOCK_SELECTOR | CHANNEL_SELECTOR)

All lines selector.

Definition at line 69 of file cg_node.hpp.

Referenced by structural_manager::INIT(), and structural_manager::structural_manager().

◆ CHANNEL_SELECTOR

#define CHANNEL_SELECTOR   4

Channel line selector.

Definition at line 67 of file cg_node.hpp.

Referenced by add_directed_edge(), and cg_edge_writer::operator()().

◆ CLOCK_SELECTOR

#define CLOCK_SELECTOR   2

Clock line selector.

Definition at line 65 of file cg_node.hpp.

Referenced by add_directed_edge_single(), and cg_edge_writer::operator()().

◆ DATA_SELECTOR

#define DATA_SELECTOR   1

Data line selector.

Definition at line 63 of file cg_node.hpp.

Referenced by add_directed_edge(), add_directed_edge_single(), and cg_edge_writer::operator()().

◆ EDGE_ADD_FROM_PORT

#define EDGE_ADD_FROM_PORT (   data,
  edge_index,
  from 
)    get_edge_info<cg_edge_info>(edge_index, *(data))->from_port = from

Add a from port to the edge.

Parameters
datais the graph.
edge_indexis the index of the cdfg edge.
fromis the from port.

Definition at line 147 of file cg_node.hpp.

Referenced by circuit_add_edge().

◆ EDGE_ADD_TO_PORT

#define EDGE_ADD_TO_PORT (   data,
  edge_index,
  _to 
)    get_edge_info<cg_edge_info>(edge_index, *(data))->to_port = _to

Add a to port/channel to the edge.

Parameters
datais the graph.
edge_indexis the index of the cdfg edge.
fromis the from port.

Definition at line 162 of file cg_node.hpp.

Referenced by circuit_add_edge().

◆ EDGE_SET_CRITICAL

#define EDGE_SET_CRITICAL (   data,
  edge_index,
  critical 
)    get_edge_info<cg_edge_info>(edge_index, *(data))->is_critical = critical

Set the edge as critical.

Parameters
datais the graph.
edge_indexis the index of the cdfg edge.

Definition at line 169 of file cg_node.hpp.

Referenced by circuit_add_edge().

◆ GET_CRITICAL

#define GET_CRITICAL (   data,
  node_index 
)    Cget_node_info<cg_node_info>(node_index, *(data))->is_critical

Definition at line 102 of file cg_node.hpp.

Referenced by cg_label_writer::operator()().

◆ GET_EDGE_CRITICAL

#define GET_EDGE_CRITICAL (   data,
  edge_index 
)    Cget_node_info<cg_edge_info>(edge_index, *(data))->is_critical

Helper macro returning if the edge is timing critical.

Parameters
datais the graph.
edge_indexis the index of the edge.

Definition at line 139 of file cg_node.hpp.

◆ GET_FROM_PORT

#define GET_FROM_PORT (   data,
  edge_index 
)    Cget_edge_info<cg_edge_info>(edge_index, *(data))->from_port

Helper macro returning the from port.

Parameters
datais the graph.
edge_indexis the index of the edge.

Definition at line 132 of file cg_node.hpp.

Referenced by circuit_add_edge().

◆ GET_REFERENCE

#define GET_REFERENCE (   data,
  node_index 
)    Cget_node_info<cg_node_info>(node_index, *(data))->reference

Definition at line 100 of file cg_node.hpp.

◆ GET_TO_PORT

#define GET_TO_PORT (   data,
  edge_index 
)    Cget_edge_info<cg_edge_info>(edge_index, *(data))->to_port

Helper macro returning the to port/channel.

Parameters
datais the graph.
edge_indexis the index of the edge.

Definition at line 154 of file cg_node.hpp.

Referenced by circuit_add_edge().

◆ PURE_DATA_SELECTOR

#define PURE_DATA_SELECTOR   (DATA_SELECTOR | CHANNEL_SELECTOR)

All but clock lines selector.

Definition at line 71 of file cg_node.hpp.

Referenced by structural_manager::INIT(), and structural_manager::structural_manager().

Function Documentation

◆ REF_FORWARD_DECL()

REF_FORWARD_DECL ( structural_object  )

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