Routing (electronic design automation)
In electronic design automation (EDA), routing refers to the process of determining the physical paths for electrical connections between various components on an electronic circuit board (PCB) or within an integrated circuit (IC). It is a crucial step in the physical design flow, following placement, and directly impacting the performance, reliability, and manufacturability of the final product.
The primary goal of routing is to establish connectivity according to the netlist, which specifies the desired electrical connections. This involves determining the specific layers of the PCB or IC, the tracks (also known as traces or wires) that will carry the electrical signals, and the vias (vertical interconnect accesses) that connect tracks on different layers.
Routing algorithms aim to minimize several key metrics, including:
- Wirelength: The total length of the tracks, which directly impacts signal propagation delay, power consumption, and manufacturing cost.
- Number of vias: Vias introduce resistance and capacitance, potentially degrading signal integrity and reliability.
- Crosstalk: Undesired signal coupling between adjacent tracks, which can lead to signal distortion and malfunction.
- Signal Integrity: Ensuring the signals arrive at their destinations with sufficient quality and minimal distortion.
- Timing Constraints: Meeting strict timing requirements for high-speed digital circuits.
- Manufacturability: Ensuring the resulting layout can be reliably manufactured, considering factors like minimum track width, spacing, and via size.
Routing is typically performed using specialized EDA software tools. These tools employ various algorithms and techniques, ranging from maze routing and channel routing to more sophisticated global routing and detailed routing approaches. The process often involves iterative optimization, where the routing solution is progressively refined to meet the design constraints and performance targets.
Different routing approaches exist, tailored to specific design requirements and technology characteristics. Some common types include:
- Global Routing: Determines the general paths for the connections, allocating routing resources and resolving congestion issues.
- Detailed Routing: Assigns the specific tracks and vias to realize the global routing paths, adhering to design rules and optimizing signal integrity.
- Channel Routing: Routes connections within defined channels or regions of the layout.
- Area Routing: Routes connections across a general area, without predefined channels.
- Power and Ground Routing: Dedicated routing of power and ground nets, ensuring sufficient current carrying capacity and minimizing voltage drops.
- Clock Routing: Specialized routing of clock signals, minimizing skew and jitter.
The complexity of routing increases significantly with the density and complexity of the circuit. Modern ICs and PCBs often involve millions or even billions of connections, requiring advanced routing algorithms and significant computational resources. The quality of the routing solution is a critical determinant of the overall performance and reliability of the electronic product.