Recti 1.2.4
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
recti::TreeNode Class Reference

A node in the clock tree, stored in a Tree arena. More...

#include <dme_algorithm.hpp>

Collaboration diagram for recti::TreeNode:
Collaboration graph
[legend]

Public Member Functions

 TreeNode (const std::string &name, const Point< int > &position)
 Constructs a new TreeNode.
 
bool is_leaf () const
 Checks if the node is a leaf (a sink).
 

Public Attributes

std::string name
 
Point< int > position
 
NodeIdx left = SIZE_MAX
 Index of the left child (or SIZE_MAX)
 
NodeIdx right = SIZE_MAX
 Index of the right child (or SIZE_MAX)
 
NodeIdx parent = SIZE_MAX
 Index of the parent (or SIZE_MAX)
 
int wire_length = 0
 Length of the wire connecting this node to its parent.
 
double delay = 0.0
 Accumulated delay from the clock source to this node.
 
double capacitance = 0.0
 Total downstream capacitance seen from this node.
 
bool need_elongation = false
 Flag indicating if a branch needed elongation for skew balancing.
 

Detailed Description

A node in the clock tree, stored in a Tree arena.

Connectivity is expressed with NodeIdx indices into the owning Tree rather than raw / smart pointers. SIZE_MAX means "no such neighbour".

Constructor & Destructor Documentation

◆ TreeNode()

recti::TreeNode::TreeNode ( const std::string &  name,
const Point< int > &  position 
)
inline

Constructs a new TreeNode.

Parameters
nameThe unique name of the node.
positionThe physical coordinates of the node in the grid.

Member Function Documentation

◆ is_leaf()

bool recti::TreeNode::is_leaf ( ) const
inline

Checks if the node is a leaf (a sink).

Returns
True if the node has no children, false otherwise.

Member Data Documentation

◆ capacitance

double recti::TreeNode::capacitance = 0.0

Total downstream capacitance seen from this node.

◆ delay

double recti::TreeNode::delay = 0.0

Accumulated delay from the clock source to this node.

◆ left

NodeIdx recti::TreeNode::left = SIZE_MAX

Index of the left child (or SIZE_MAX)

◆ name

std::string recti::TreeNode::name

◆ need_elongation

bool recti::TreeNode::need_elongation = false

Flag indicating if a branch needed elongation for skew balancing.

◆ parent

NodeIdx recti::TreeNode::parent = SIZE_MAX

Index of the parent (or SIZE_MAX)

◆ position

Point<int> recti::TreeNode::position

◆ right

NodeIdx recti::TreeNode::right = SIZE_MAX

Index of the right child (or SIZE_MAX)

◆ wire_length

int recti::TreeNode::wire_length = 0

Length of the wire connecting this node to its parent.


The documentation for this class was generated from the following file: