In this thesis, our goal is to route as many nets as possible under the given timing con-straint and to balance the routing congestion.
• Input:
The benchmark circuit and the timing constraint.
• Output:
The actual routing result is shown to the screen by the LEDA (Library of Efficient Data Types and Algorithms) [27].
• Goal:
Under the given timing constraint, we construct the performance-driven topology and then separate all nets into critical and non-critical nets to estimate the routing congestion and to route respectively to route completely for the given circuit.
Chapter 3
Multilevel Routing Framework
In this chapter, we specifically describe the flow and the main features of our multilevel routing system. First, we explicitly and gradually characterize the flow of our multilevel router in the Chapter 3.1. Secondly, the principle of the performance-driven topology building by the minimum distance spanning tree (MDST) and the shortest modification heuristic is shown in the Chapter 3.2. Then, the Chapter 3.3 presents the detoured routing congesiton estimation used for the non-critical nets. Finally, the modified method for L-shaped global routing is displayed in the Chapter 3.4.
3.1 Multilevel Routing Flow
The flow and algorithm of the proposed multilevel router are shown in Fig. 3.1 and Ta-ble 3.1, respectively. The preliminary work of this router is shown in Fig. 3.1.(a). First, we construct the performance-driven routing topology for each net to meet its timing constraint by our minimum distance spanning tree (MDST) and the shortest modification heuristic, and decompose nets into two-pin connections. Then, the timing analysis based on the Elomre delay model is used to estimate the delay of each net by using the Manhat-tan disManhat-tance. After that, the nets are separated into critical and non-critical nets. A critical net is a net satisfying the condition that the difference between its maximum delay and its timing constraint is less than the delay of a wire with two-tiled length. A net which is not a critical net is called a non-critical net. Afterward, all of nets are dealt individually
Before routing Local net be routed Pre-routed net Start routing
Construct the performance-driven topology for each net.
Source detailed routing for critical ritical nets nets and global routing for Non- Non -critical nets critical nets.
Coarsening Use maze routing to reroute failed connections
Fig. 3.1: The multilevel routing flow.
Algorithm : Multilevel Routing(G, N , C) Input : G - partitioned layout;
N - multi-terminal nets;
C -timing constraints.
Output : Routing solution for N . Begin
1. Construct performance-driven topology
a. Build Minimum Distance Spanning Tree (MDST) for N .
b. Using Shortest Modification Heuristic to modify the topology for violated nets.
2. Analyze timing for N , and classify N into critical and non-critical nets.
3. Perform congestion estimation for critical (L-shaped) and non-critical (detour) net.
//Coarsening stage 4. While (coarsening stage) 5. Choose local connection n;
6. if (the connection n is critical)
7. L-shaped global routing and detail routing 8. if (the connection n cannot be routed)
9. Z-shaped global routing and detail routing 10. else
11. Global routing (L-shaped → Z-shaped → Detour);
//Median
12. Detailed maze routing for non-critical nets.
13. Analyze timing for N , perform Shortest Modification for violated nets, and reroute the change.
//Uncoarsening stage 14. While (uncoarsening stage)
15. Choose a local connection n which violates the timing constraint or is untouted.
16. Global maze routing 17. Detail maze routing End
Table 3.1: The multilevel routing algorithm.
by using our probabilistic congestion model to construct the initial congestion estimation table. Due to the most critical nets are routed by the L-shaped global routing, we use the L-shaped congestion estimation model for the critical nets and add their probabilistic demands to the congestion estimation table. The detail routing of non-critical nets are not performed until all the critical nets are routed, so they might be routed by the detoured routing. Therefore, we use the accurately detoured congestion estimation model for the non-critical nets and add their probabilistic demands to the congestion estimation table.
Our detoured congestion estimation model consisting of the weighted sum of the non-detour mazing routing demand, the non-detour routing demand with the non-detoured length being one or two, is used to compute the probabilistic routing demand.
After the preliminary work, our multilevel routing framework starts to route local nets (or local two-pin connections) which are fully placed in a tile at each level. At the coarsening stage, the critical nets are routed by the global and detailed routers. In order to meet timing constraint and reduce the total wire length, a modified L-shaped global router and a detailed maze routing is used to route each critical net. If it is failed to be routed by the detailed routing, it is rerouted by the the Z-shaped global routing method, and a detailed maze routing. However, if both them are failed, this critical net rerouted at the uncoarsening stage. On the other hand, each non-critical net is only routed by the global router at the coarsening stage, and we also precedentially adopt our modified L-shaped global router. If both L-shaped paths of a connection pass through any congested area, we switch to the Z-shaped global routing method. Eventually, if all Z-shaped paths are also through the congested area, the routing method is switched to the global maze routing with allowing detours.
Our global router is based on the shortest path algorithm guided by the congestion table which is constructed by the demand of each connection at each tile. The demand consists of the static and dynamic parts. Before routing, the congestion table only contains the static part constructed by the probabilistic congestion model. When a connection is
routed by the global router, the congestion table is updated by subtracting its probabilistic demand and adding its actual routing demand. Moreover, when a connection’s global routing type is changed, the congestion table is also updated by subtracting its past actual routing demand and adding its currently actual routing demand. Hence, this updated congestion table is useful to guide the global router to improve the routability and balance congestion.
The routing cost of each routing edge i is proportional to its routing resource demand in the congestion table. To avoid worsening the routing congestion, the routing cost of heavily congested areas should be significantly more than the uncongested areas. Further-more, in order to prevent from introducing unnecessary detours, the routing cost should not be increased in the lightly congested areas. Therefore, if the routing edge i has de-mand over 80% of its capacity, the proportional factor, αi, is set to 1.2. If it has demand under 30% of its capacity, αiis set to 0. Otherwise, αiis set to 1. The cost of each routing edge i is equal to α × (demand of routing edge i / capacity of routing edge i).
At the end of coarsening stage, the detailed routing is performed on non-critical nets.
If there exists routed nets which violate the timing constraints, the shortest modification heuristic is adopted to adjust its topology, and these changed connections are reouted.
During the uncoarsening stage, the unroutable connections are refined by the global and detailed maze routing methods, and the techniques of rip-up and reroute. Finally, the timing analysis is performed to check that each net meets its timing constraint. For the violated net, the shortest modification heuristic is used to adjust its topology, and the changed connections are reouted.