| .. | ||
| 01_simple_route.py | ||
| 02_congestion_resolution.py | ||
| 03_locked_paths.png | ||
| 03_locked_paths.py | ||
| 04_sbends_and_radii.py | ||
| 05_orientation_stress.png | ||
| 05_orientation_stress.py | ||
| 06_bend_collision_models.png | ||
| 06_bend_collision_models.py | ||
| 07_large_scale_routing.py | ||
| 08_custom_bend_geometry.png | ||
| 08_custom_bend_geometry.py | ||
| 09_unroutable_best_effort.py | ||
| README.md | ||
Inire Routing Examples
This directory contains examples demonstrating the features and architectural capabilities of the inire router.
Architectural Visualization
In all plots generated by inire, we distinguish between the search-time geometry and the final "actual" geometry:
- Dashed Lines & Translucent Fill: The Collision Proxy used during the A* search (e.g.,
clipped_bboxorbbox). This represents the conservative envelope the router used to guarantee clearance. - Solid Lines: The Actual Geometry (high-fidelity arcs). This is the exact shape that will be used for PDK generation and fabrication.
1. Fan-Out (Negotiated Congestion)
Demonstrates the Negotiated Congestion algorithm handling multiple intersecting nets. The router iteratively increases penalties for overlaps until a collision-free solution is found. This example shows a bundle of nets fanning out through a narrow bottleneck.
2. Bend Geometry Models
inire supports multiple collision models for bends, allowing a trade-off between search speed and geometric accuracy:
- Arc: High-fidelity geometry (Highest accuracy).
- BBox: Simple axis-aligned bounding box (Fastest search).
- Custom Manhattan Geometry: A custom 90-degree bend polygon with the same width as the normal waveguide.
Example 06 uses the Manhattan polygon as both the true routed bend geometry and the collision proxy. Example 08 compares the standard arc against a run that uses a custom physical bend plus a separate custom proxy polygon, with each net routed in its own session.
3. Unroutable Nets & Best-Effort Display
When a net is physically blocked or exceeds the node limit, the router returns the "best-effort" partial path—the path that reached the point closest to the target according to the heuristic. This is critical for debugging design constraints.
4. Orientation Stress Test
Demonstrates the router's ability to handle complex orientation requirements, including U-turns, 90-degree flips, and loops.
5. Tiered Fidelity
The current implementation can use a cheaper bend proxy on the first negotiated-congestion pass before later passes fall back to the configured bend model. This is controlled by RoutingOptions.congestion.use_tiered_strategy together with the bend collision settings described in DOCS.md.



