… I rather pride myself in finding my way where there is no path, than in finding it where there is … half the time they don't know the difference between a trail and a path, though one is a matter for the eye, while the other is little more than scent.
—J. F. Cooper, The Pathfinder, Chapter 1, 1840Routing involves making physical interconnections between different components of a design. We perform routing after floorplanning and placement. Therefore, a router knows the location of all the pins, input/output (I/O) pads, and macros in a design. Moreover, it gathers information on connectivity of instances from the netlist that we provide. A router determines the complete layout of interconnects based on the connectivity and tries to honor timing constraints and design rules.
We perform routing after creating a power delivery network and clock tree synthesis. Therefore, power lines and clock signals are already routed, and the primary responsibility of a router is to route the data signals. Since power lines and clock signals consume a significant amount of routing resources, a router can utilize only the leftover routing resources.
Routing is a very complicated and time-consuming task. One of the reasons for the complication is the large number of components handled by a router. A design can contain more than a million pins that must be routed. Additionally, there are tight routing resource constraints, design rules, timing requirements, and signal integrity constraints.
We divide routing into two phases, global routing and detailed routing, to make it more manageable. The global routing is the planning stage of routing. It determines the regions through which a given net passes. The detailed routing determines the actual layout of each net in the preassigned routing regions. After detailed routing, a router makes local changes to a design to improve its quality of result (QoR). Additionally, it fixes timing violations, signal integrity issues, and design rule violations. In this chapter, we will discuss all these tasks in detail.
GLOBAL ROUTING
A global router determines global routes of each net in a design at a coarser level. Subsequently, a detailed router produces the final layout of the interconnects using the global routes. Therefore, routing models, data structures, and algorithms of the global router and detailed router are interdependent.
Review the options below to login to check your access.
Log in with your Cambridge Aspire website account to check access.
If you believe you should have access to this content, please contact your institutional librarian or consult our FAQ page for further information about accessing our content.