In the advent of smaller devices, a significant increase in the density of on-chip components has raised congestion
and overflow as critical issues in VLSI physical design automation. In this paper, we present novel techniques for
reducing congestion and minimizing overflows. Our methods are based on ripping up nets that go through the
congested areas and replacing them with
In almost any VLSI design flow, global routing is an essential stage that determines the signal interconnections. Therefore, the capability of the global router may significantly affect the design turn-around time. Moreover, the results of the global routing stage impact many circuit characteristics, such as power, timing, area, and signal integrity. Global routing poses major challenges in terms of the efficient computation of quality routes. In fact, most of the global routing problems, even special cases, tend to be NP complete [
In the advent of smaller devices, a significant increase in the density of on-chip components results in a larger number of nets that need to be routed, which, together with more stringent routing constraints, results in increasing congestion and overflow. In this paper, we propose novel techniques for congestion avoidance and overflow reduction. Our methods are designed for the rip-up-and-reroute phase of the global routing stage. At this stage, all the nets have already been routed using a standard prerouting technique however some of the nets need to be rerouted due to high congestion and overflow. Our methods are based on ripping up nets that go through congested areas and replacing them with congestion-aware topologies. The proposed techniques facilitate even distribution of the routing load along the available routing areas. We propose efficient algorithms for finding congestion-aware Steiner trees that favor uncongested routes. In addition, we use the novel technique of
The major goal of congestion-aware Steiner tree routing is to find a tree that connects the required set of nodes (pins of a net) while avoiding congested areas with a minimum penalty in terms of the total wirelength. In addition, the running time of the routing algorithm should scale well with the growing number of nets. These requirements pose several challenges in terms of the algorithm design. The first challenge is to select a cost function that adequately captures the local congestion conditions at the edges of the routing graph. Next, the algorithm should find a minimum cost tree within acceptable running time. Since finding a Steiner tree is an NP-complete problem, the algorithm needs to use an approximation scheme or employ a heuristic approach. Finally, the proposed algorithm should ensure that the overall performance of the rip-up-and-reroute phase is satisfactory in terms of congestion mitigation and overflow reduction. In this paper, we evaluate several cost functions which take into account various factors such as wire density, overflow, and congestion history. We propose several efficient algorithms for Steiner tree routing and compare their performance. Our algorithms are based on known approximations for the Steiner tree problem, heuristic methods, and artificial intelligence techniques.
The basic idea of the
For example, consider a routing instance depicted in Figure
(a) The underlying routing graph with two source nodes
The network coding technique offers two distinct advantages. First, it has a potential of solving difficult cases that cannot be solved using traditional routing. For example, for the routing instance shown in Figure
In the past decades, researchers have strived to improve the performance of global routing algorithms (see, e.g., [
The paper makes the following contributions. First, we propose several algorithms for finding efficient congestion-aware Steiner trees. Second, we show that the novel technique of network coding can lead to further improvements in routability, reduction of congestion, and overflow minimization. Finally, we provide an algorithm for identifying efficient congestion-aware network coding topologies. We evaluate the performance of the proposed algorithms through extensive simulations.
In this paper, we adopt the most commonly used global routing model. The routing topology is represented by a grid graph
The goal of a global router is to minimize congestion. Some of the important metrics for a global router are defined as follows.
For each edge
The maximum overflow
Total overflow
Total wirelength
The density
Our algorithms associate each edge
In this work, we consider several cost functions, described below.
We propose a cost assignment function, where the cost of an overflowed edge is a polynomial function of the sum of its density and overflow. Formally, our proposed cost function is defined as follows:
We use the cost assignment function proposed by [
This cost function assigns cost to an edge based on its congestion history [
Here,
Since we focus on the rerouting phase, we assume that for each net
We propose a two-phase solution for rerouting congested nets using congestion-aware topologies. In the first phase we iteratively rip up each net
In this section, we present several techniques for finding congestion-aware Steiner trees. Our goal is to find Steiner trees that minimize congestion with a minimum penalty in terms of the overall wirelength. We would like to achieve better tradeoffs between congestion mitigation and total wirelength. These tradeoffs are useful for practical applications as in some cases, congestion mitigation is preferable to wirelength reduction, whereas in other cases, the wirelength reduction is of higher priority.
The Steiner tree problem is a well-studied NP-complete problem [
As mentioned above, our goal is to rip up and reroute nets that use congested edges of
This algorithm approximates a minimum cost Steiner tree by using a
This algorithm constructs the tree in an iterative manner. We iteratively process the terminals in
This is a standard approximation algorithm with the approximation ratio of 2 (i.e., the cost of the tree returned by the algorithm is at most two times higher than the optimal cost). Specifically, with this algorithm, we find a shortest path between each pair of nodes in the set
Algorithm
Algorithm
In this section, we use the network coding techniques in order to achieve further improvement in terms of minimizing congestion and reducing the number of overflows. The network coding technique enables, under certain conditions, to share edges that belong to different nets. For example, in the graph depicted in Figure
The problem of routing of multiple nets with shared terminals is related to the problem of establishing efficient multicast connections in communication networks. The network coding technique was proposed in a seminal paper by Ahlswede et al. [
We proceed to present the algorithm we use for constructing congestion-aware coding networks that reduce congestion and overflow.
The algorithm includes the following steps. First, we identify the subset
More specifically, let
Finally, we find a congestion-aware network coding topology
(1) Find a Steiner tree (2) Find a Steiner tree (3) For each link (4) Find a Steiner tree (5) Assign zero cost to all edges in (6) For each terminal (7) For all terminals (8) Let (9) Find shortest path (10) Assign zero cost to all edges of (11) (12) If there exists an edge (13) Otherwise, add (14) Return
Steps for finding network coding topology using Algorithm
After the execution of the algorithm, we determine whether the total cost of
Our experimental results, presented in Section
We have evaluated the performance of our algorithms using the ISPD98 routing benchmarks [
Next, we check whether the application of the network coding technique can further reduce the number of overflows. This phase is referred to as the Phase 2. We first identify pairs of nets that have overflowed edges and share at least there terminals. We then apply Algorithm
The experimental results are shown in Figures
Performance evaluation using Algorithm
Phase 1 | Phase 2 | |||||
ibm1 | 14 | 1 | 81058 | 6 | 1 | 80727 |
ibm2 | 0 | 0 | 216299 | 0 | 0 | 216299 |
ibm3 | 0 | 0 | 188391 | 0 | 0 | 188391 |
ibm4 | 125 | 2 | 196106 | 93 | 2 | 195949 |
ibm5 | 0 | 0 | 415681 | 0 | 0 | 415681 |
ibm6 | 0 | 0 | 336105 | 0 | 0 | 336105 |
ibm7 | 0 | 0 | 466381 | 0 | 0 | 466381 |
ibm8 | 0 | 0 | 477404 | 0 | 0 | 477404 |
ibm9 | 0 | 0 | 508661 | 0 | 0 | 508661 |
ibm10 | 0 | 0 | 711201 | 0 | 0 | 711201 |
Evaluation of five different algorithms for Phase 1 and Algorithm
We observe that the network coding technique results in a considerable reduction of the total number of overflows as well as reduces the maximum overflow. Furthermore, for each pair of nets for which we perform network coding, the number of required gates is small. Moreover, in all cases that we have encountered, the network coding operations can be performed over finite field
A network coding topology for benchmark ibm1 for pair of nets
Figure
In the second set of experiments, we evaluated the performance of three cost functions mentioned in Section
Performance evaluation of different cost functions (using Algorithm
Polynomial cost | Exponential cost | History-based cost | ||||
ibm1 | 0 | 0 | 117 | 1 | 0 | 0 |
ibm2 | 0 | 0 | 79 | 2 | 0 | 0 |
ibm3 | 0 | 0 | 0 | 0 | 0 | 0 |
ibm4 | 31 | 1 | 834 | 7 | 439 | 4 |
ibm5 | 0 | 0 | 0 | 0 | 0 | 0 |
ibm6 | 0 | 0 | 54 | 2 | 0 | 0 |
ibm7 | 0 | 0 | 82 | 1 | 0 | 0 |
ibm8 | 0 | 0 | 37 | 1 | 0 | 0 |
ibm9 | 0 | 0 | 15 | 1 | 0 | 0 |
ibm10 | 0 | 0 | 95 | 3 | 0 | 0 |
In another set of experiments, we worked on slightly modified ISPD98 benchmark files. The modification included reducing the vertical and horizontal capacity by one unit. For Phase 1, we used Algorithm
Performance evaluation using Algorithm
Flute | Phase 1 | Phase 2 | Number of XOR gates | |||||||
ibm1 | 3257 | 14 | 60209 | 362 | 4 | 78161 | 184 | 3 | 77231 | 5 |
ibm2 | 5678 | 22 | 166193 | 18 | 1 | 217673 | 4 | 1 | 217737 | 12 |
ibm3 | 2308 | 16 | 145777 | 1 | 1 | 183395 | 0 | 0 | 183391 | 2 |
ibm4 | 4833 | 15 | 162844 | 550 | 6 | 193832 | 440 | 6 | 193131 | 52 |
ibm5 | 5 | 4 | 410038 | 0 | 0 | 476251 | 0 | 0 | 473265 | 70 |
ibm6 | 5492 | 27 | 276012 | 3 | 1 | 334165 | 1 | 1 | 334163 | 0 |
ibm7 | 4665 | 15 | 363678 | 1 | 1 | 473743 | 0 | 0 | 473743 | 2 |
ibm8 | 5400 | 13 | 403502 | 3 | 1 | 476880 | 0 | 0 | 476864 | 0 |
ibm9 | 8545 | 14 | 411524 | 16 | 1 | 496563 | 9 | 1 | 496409 | 24 |
ibm10 | 7103 | 20 | 574743 | 4 | 1 | 713569 | 1 | 1 | 713553 | 18 |
We have also conducted the same experiment on several selected benchmarks on the output of MaizeRouter [
Improvement over MaizeRouter for modified (congested) IBM benchmarks using Algorithm
Ver. Cap | Hor. Cap | MaizeRouter | Phase 1 and Phase 2 | |||
ibm1 | 11 | 13 | 43 | 1 | 34 | 1 |
ibm5 | 21 | 31 | 45326 | 25 | 45151 | 25 |
ibm8 | 17 | 28 | 649 | 9 | 641 | 9 |
ibm9 | 10 | 24 | 4006 | 9 | 3989 | 9 |
In this paper, we presented several efficient techniques for rip-up-and-reroute stage of the global routing process. Our techniques are based on ripping up nets that go through highly congested areas and rerouting them using efficient Steiner tree algorithms. We have considered several efficient Steiner tree algorithms as well as several cost functions that take into account congestion and overflow. We have also studied the application of the novel technique of network coding and showed that it can efficiently handle difficult routing cases, facilitating reduction in the number of overflows.
A preliminary version of this paper appeared in the proceedings of the 2009 IEEE Computer Society Annual Symposium on VLSI (ISVLSI) [