|
| | GlobalRoutingTree (IntPoint source_position) |
| | Constructs a new GlobalRoutingTree with a specified source position.
|
| |
| auto | get_source () const -> const RoutingNode< IntPoint > * |
| | Gets a const pointer to the source node of the tree.
|
| |
| auto | get_source () -> RoutingNode< IntPoint > * |
| | Gets a non-const pointer to the source node of the tree.
|
| |
| auto | insert_steiner_node (const IntPoint &point, std::optional< std::string > parent_id=std::nullopt) -> std::string |
| | Inserts a new Steiner node into the routing tree.
|
| |
| auto | insert_terminal_node (const IntPoint &point, std::optional< std::string > parent_id=std::nullopt) -> std::string |
| | Inserts a new terminal node into the routing tree.
|
| |
| auto | insert_node_on_branch (NodeType new_node_type, const IntPoint &point, std::string branch_start_id, std::string branch_end_id) -> std::string |
| | Inserts a new node (Steiner or Terminal) onto an existing branch of the tree.
|
| |
| auto | insert_terminal_with_steiner (const IntPoint &point, std::optional< std::vector< Keepout > > keepouts=std::nullopt) -> void |
| | Inserts a new terminal node with possible Steiner point.
|
| |
| auto | insert_terminal_with_constraints (const IntPoint &point, int allowed_wirelength, std::optional< std::vector< Keepout > > keepouts=std::nullopt) -> void |
| | Inserts a new terminal node with constraints.
|
| |
| auto | calculate_total_wirelength () const -> int |
| | Calculates the total wirelength of the routing tree.
|
| |
| auto | calculate_worst_wirelength () const -> int |
| | Calculates the worst wirelength of the routing tree.
|
| |
| auto | get_tree_structure (const RoutingNode< IntPoint > *current_node=nullptr, int level=0) const -> std::string |
| | Generates a string representation of the tree structure for visualization or debugging.
|
| |
| auto | find_path_to_source (const std::string &node_id) const -> std::vector< const RoutingNode< IntPoint > * > |
| | Finds the path from a given node to the source node.
|
| |
| auto | get_all_terminals () const -> std::vector< const RoutingNode< IntPoint > * > |
| | Retrieves all terminal nodes in the tree.
|
| |
| auto | get_all_steiner_nodes () const -> std::vector< const RoutingNode< IntPoint > * > |
| | Retrieves all Steiner nodes in the tree.
|
| |
| void | optimize_steiner_points () |
| | Optimizes the routing tree by removing redundant Steiner points. A Steiner point is considered redundant if it has only one child and is not the source node.
|
| |
| void | visualize_tree () const |
| | Visualizes the routing tree (implementation in .cpp file).
|
| |
template<typename IntPoint>
class recti::GlobalRoutingTree< IntPoint >
Represents the entire global routing tree.
This class manages the collection of RoutingNodes, including the source, Steiner points, and terminal points, and provides methods for building and manipulating the tree structure.
+-----------------------------+
+-----------------------------+
| source_node (SOURCE) |
| | |
| v |
| +-------------------------+ |
| | id: source | |
| | type: SOURCE | | A tree structure with
| | pt: (x, y) | | source, terminals,
| | children[] | | and steiner points
| | parent: null | |
| +-------------------------+ |
| | |
| +--> +----------------+ |
| |id: terminal_1 | |
| |type: TERMINAL | |
| |pt: (x1, y1) | |
| |children[] | |
| |parent: source | |
| +----------------+ |
| | |
| +--> +----------------+ |
| |id: steiner_1 | |
| |type: STEINER | |
| |pt: (x2, y2) | |
| |children[] | |
| |parent: source | |
| +----------------+ |
| | |
| +--> +----------+ |
| |id: term_2| |
| |type: TERM| |
| |pt: (x3,y3)||
| |children[]| |
| |parent: st| |
| +----------+ |
+-----------------------------+
Represents the entire global routing tree.
Definition global_router.hpp:165
Represents a node in the global routing tree.
Definition global_router.hpp:52
- Template Parameters
-
| IntPoint | The point type used for coordinates (e.g. Point<int, int>). |