# High-Level Notes: Auto-Routing for Integrated Circuits We're implementing auto-routing for photonic and RF integrated circuits. The problem space has the following features: - **Single Layer:** All paths are on a single layer; multi-layer routing is not supported. - **No Crossings:** Crossings are to be avoided and are not supported by the router's automatic placement. The user must manually handle any required crossings. - **Large Bend Radii:** Bends use large radii ($R$), and are usually pre-generated (e.g. 90-degree cells). - **Proximity Sensitivity:** Paths are sensitive to proximity to other paths and obstacles (crosstalk/coupling). - **Manhattan Preference:** Manhattan pathing is sufficient for most cases; any-angle is rare. - **S-Bends:** S-bends are necessary for small lateral offsets ($O < 2R$). - **Hybrid Search:** A* state-lattice search is used for discrete component placement. - **Dilation:** A $Clearance/2$ dilation is applied to all obstacles and paths for efficient collision avoidance. - **Negotiated Congestion:** A multi-net "PathFinder" loop iteratively reroutes nets to resolve congestion.