Recti 1.2.4
Loading...
Searching...
No Matches
Classes | Namespaces | Enumerations | Functions
global_router.hpp File Reference

Data structures and algorithms for global routing in physical design. More...

#include <algorithm>
#include <cmath>
#include <deque>
#include <limits>
#include <memory>
#include <optional>
#include <recti/generic.hpp>
#include <recti/interval.hpp>
#include <recti/point.hpp>
#include <string>
#include <unordered_map>
#include <vector>
Include dependency graph for global_router.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  recti::RoutingNode< IntPoint >
 Represents a node in the global routing tree. More...
 
class  recti::GlobalRoutingTree< IntPoint >
 Represents the entire global routing tree. More...
 
class  recti::GlobalRouter< IntPoint >
 Manages the global routing process, constructing a GlobalRoutingTree. More...
 

Namespaces

namespace  recti
 

Enumerations

enum class  recti::NodeType { recti::Steiner , recti::Terminal , recti::Source }
 Defines the type of a routing node. More...
 

Functions

std::string recti::to_string (const NodeType routing_node_type)
 Converts a NodeType enum value to its string representation.
 
template<typename IntPoint >
std::string recti::visualize_routing_tree_svg (const GlobalRoutingTree< IntPoint > &tree, std::optional< std::vector< typename GlobalRoutingTree< IntPoint >::Keepout > > keepouts=std::nullopt, const int width=800, const int height=600, const int margin=50)
 
template<typename IntPoint >
void recti::save_routing_tree_svg (const GlobalRoutingTree< IntPoint > &tree, std::optional< std::vector< typename GlobalRoutingTree< IntPoint >::Keepout > > keepouts=std::nullopt, const std::string &filename="routing_tree.svg", const int width=800, const int height=600)
 
template<typename IntPoint >
std::string recti::visualize_routing_tree3d_svg (const GlobalRoutingTree< IntPoint > &tree, std::optional< std::vector< typename GlobalRoutingTree< IntPoint >::Keepout > > keepouts=std::nullopt, const int scale_z=100, const int width=800, const int height=600, const int margin=50)
 
template<typename IntPoint >
void recti::save_routing_tree3d_svg (const GlobalRoutingTree< IntPoint > &tree, std::optional< std::vector< typename GlobalRoutingTree< IntPoint >::Keepout > > keepouts=std::nullopt, const int scale_z=100, const std::string &filename="routing_tree3d.svg", const int width=800, const int height=600)
 

Detailed Description

Data structures and algorithms for global routing in physical design.

This file provides the core components for constructing and manipulating routing trees, including nodes, the tree structure itself, and a global router that can build these trees with various strategies (simple, with Steiner points, and with wirelength constraints). It also includes utilities for visualizing the routing trees.