An Efficient and Fast Algorithm for Routing Over the Cells

A linear time algorithm for routing over the cells is presented. The algorithm tries to reduce maximum channel density by routing some connections over the cells. The algorithm first defines a new scheme for channel representation and formulates the problem based on an intersection graph derived from the new scheme. Then, a feasible independent set of the intersection graph is found for routing some subnets over the cells. The algorithm is imple- mented and evaluated with several well known benchmarks. In comparison with previous research, our results are satisfactory, and the algorithm takes substantially less CPU time than those of previous works. For Deutsch’s difficult example, the previous algorithms take about 29.25 seconds on an average but our new algorithm needs only 5.6 seconds.


INTRODUCTION
In VLSI design automation, channel routing is one of the most important steps in circuit design. A channel router receives two lists of terminals specified at both the top and the bottom sides of the channel, and finds all the interconnections of terminals in order to minimize the channel width, the length of interconnections, and the number of vias. Conventional channel router assumes that the areas used for interconnections are restricted to the two routing layers within a channel. This type of channel routing is very wellknown as evidenced by numerous studies in the past [1][2][3][4].
Due to the advent of semiconductor fabrication technology, more layers (e.g. 2 or 3 metal layers) are available for interconnections in integrated circuit design. As more metal layers are made for routing in standard cell design or IIL logic array technologies, routing with extra layer over the cells becomes both practical and important. To further reduce routing area or channel width, a channel router is allowed to use extra areas over the cells for interconnections. These channel routers are called the over-the-cell channel router.
The basic idea behind over-the-cell routing is that two routing areas, one metal layer outside the channel and two layers (one polysilicon layer and one metal layer) inside the channel, are used to connect all nets. The router finds some subnets to be planarly connected over the cells so that the maximum channel density is minimized after the remaining subnets are 2 K.-E. CHANG and S.-W. CHEN routed inside the channel [7]. Figure 1 is an example of the over-the-cell routing.
The over-the-cell channel routing has been the subject of several studies [5][6][7]. The router proposed in [5] completed the detailed routes in IIL LSI. The procedure consists of three distinct operations. The first is to determine which nets or net segments are to be routed over the cells and which are to be connected within the channel. Then, the net segments selected to be routed over the cells are connected physically. Finally, the interconnections routed inside the channel are completed by the existing dogleg channel router [1].
Another algorithm, called the permeation router, was presented in [6]. This router was developed to give an approximate solution to the routing problem.
The basic idea is to use the areas over the cells as optional regions for routing. The available tracks, therefore, just permeate from the channel between two cell rows into that on the top/bottom cell row. The algorithm consists of two phases. First, a vertex coloring technique is used to divide the given track set into three subsets corresponding to the tracks to be routed in the area on the top cell row, bottom cell row, or between cell rows. The second phase is to route the tracks on the top/bottom cell row using just one metal layer, and to route the channel between two rows using two wiring layers.

II FIGURE
The example of over-the-cell routing.
routing within the channel. In the first step, some terminals at the same side of channel are selected to be connected using the over-the-cell routing area on that side. The goal is to find as many subnets routed over the cells as possible such that fewer subnets are left within the channel. At completion of the first step, a net is partially routed over the cells. During the second step, a proper subset of terminals which have been connected over the cells is selected as a net segment, and this net segment will be routed within the channel at the final step. Finally, the physical connections of subnets are routed within the channel. Obviously, this final step can be accomplished using a conventional channel router.
In this paper, we only consider the problem involved in the first step of [7]. The previous approaches were based on the idea that fewer subnets routed within the channel yields fewer tracks used in the channel. Hence, the goal of these approaches is to find as many subnets as possible for routing over the cells, and the selected subnets can be collected as a maximum planar subset since there is only one routing layer over the cells at each side of channel. Unfortunately, this idea does not meet the characteristics of channel routing. It is well-known that the number of tracks needed in the channel is proportional to the channel density of a routing problem [3]. The selection of subnets, which contribute to the reduction of maximum channel density after these subnets have been routed over the cells, is more critical than the selection of subnets which can be collected as a maximum planar subset. The approach that blindly routes as many subsets as possible over the cells only contributes slightly to the reduction on the channel width. The critical subnets routed over the cells are those whose removal from the channel will contribute to the reduction of maximum channel density. Therefore, our consideration is the critical planar subset but not the maximum planar subset. Lin, et. al. [8,9] have studied the channel density reduction by routing over the cells. They transformed this problem into a constrained coveting problem and formulated it as an integer linear programming problem. In comparison with previous research, their approach reduces more channel densities while using ROUTING ALGORITHM 3 fewer tracks over the cells. However, the drawback of the integer linear programming formulation is its computational inefficiency; the CPU time complexity is not proportional to the channel size. When the problem size becomes large, the CPU time grows very rapidly. A heuristic algorithm is thus needed to replace the integer linear programming for CPU time consideration. In this paper, we present a heuristic algorithm for routing the nets over the cells. The experiment showed that our algorithm is efficient in both reductions of the channel width and the CPU time.
In the following section, we present the problem of routing over the cells as a new scheme of channel representation. The graph model and problem formulation are presented in Section 3. On the basis of the graph model, a heuristic algorithm to determine the critical subnets for routing over the cells is addressed in Section 4. Finally, results and conclusions are presented.

CHANNEL REPRESENTATION
A channel representation is defined by two number lists of terminals specified at the top side and the bottom side of a channel, respectively. A net is an interconnection of terminals with the same number in the channel. A segment is an interval between two adjacent terminals of a net in the channel. The segments can be classified into three types: top, bottom and dummy segments. Figure Figure 3, if these segments ht31, hb31 h b 32, hb61, ht21, and hb11 are selected to be routed over the cells or to be removed from the channel, the maximum channel density will be reduced to 2 as shown in Figure 5. Compared with the result of dma 3 presented in Cong and Liu [7], the result in Figure 5 is better. Since only one layer over the cell is permitted for routing, the selected segments have to be routed for planar connections. In short, the aim of our algorithm is to find some critical segments that can be routed by planar connections in order to minimize dma in the final result.

GRAPH MODEL AND PROBLEM FORMULATION
For the selection of critical segments, a graph called segment intersection graph denoted by SIG (V r VB, E) is used to define the relation among the top segments and the bottom segments. The segment intersection graph is defined as follows. Vertices in VT (or VB) correspond to the top (or the bottom) segments in the channel. Two vertices v and vj in VT (or Va) are connected by an edge in E when the two corresponding top (or bottom) segments do not belong to the same net and are intersected with each other. Two top (or bottom) segments are said to be intersecting if their intervals are partially rather than completely overlapped on the top (or the bottom) side. It is clear that the associated connections of two top (or bottom) segments, which do not belong to the same net, cannot be routed planarly over the cells if these two segments are intersecting. For the example of Figure 3, two top segments ht41 and htl are intersecting, but the segments ht2 and ht41 are not intersecting. Figure 6 shows the graphical representation of the relation among the segments in Figure 3.
LEMraA 1: The vertices in any independent set in SIG correspond to the segments that can be routed planarly over the cells.
Proof." Because only one layer is used for routing over the cells, all selected segments should be routed planarly over the cells. It is noted that two segments can be routed planarly over the cells if their intervals According to the graph model and Lemma 1, our problem can now be formulated as follow.
PROBLEM ROC (or Routing Over the Cells)" Given a graph SIG (Vr LJ V B, E), the problem is to find two subsets R T _ V r and RB C Va where Rr and Ra are independent sets in SIG and the removal of corresponding segments in RT and R a over the cells can reduce the maximum channel density significantly.
The algorithm solving the PROBLEM ROC is heuristically executed in the following steps" 1. Segments considered to be critical for routing over the cells in order to reduce the dma are the segments crossing over the columns j with d(j) dmax for all j. These critical segments are collected as a set Sma. The formal definition of Sma is an union of all segments in the column-sets z(j) with d(j) =dma for all j. As shown in Figure 3, dmax 4 and area z(4) t.J z(7) t3 z(8) t9 z (9) {hbll, h 21' hts1, h 52, hb51, ht41, hb61, ht31, hb31} The first ste, p is to obtain the set Snag.
2. Construct a subgraph H from the graph SIG with vertices in Smax. Figure 7 shows the subgraph H of Figure 6 3. According to Lemma 1, an independent set in the subgraph H is obtained and the corresponding seg- ments are removed from the channel for reducing the channel densities. The removed segments are those that are going to be routed over the cells. 4. After the vertices of corresponding segments obtained from Step 3 have been removed, the graph SIG is simplified and dma is reduced. The set Snag has to be redefined based on the reducing dma, and the subgraph H is reconstructed for the next selection of critical segments.

Repeat Steps 3 and 4 until H is null or no feasible segment remains.
In selecting the feasible segments in Step 3, the issues raised in Lemma 2 and Lemma 3 below must be considered. LEMMA 2: It is not helpful to reduce the channel densities after only one segment in any compound netsegment was removed. In order to reduce the channel densities, it is necessary to remove all segments in the compound net-segment over the cells.
Proof." According to the definition of compound net-segment, all segments in the compound netsegment belong to a net. Therefore, these segments have to be connected together. After removing only one segment over the cells, the remaining segments also need to be routed inside the channel, and the connection will use a track. This removal is of no help for reducing the channel densities. Q.E.D.
For example, as shown in Figure 3 A Net-segment Intersection Graph (or abbreviated as NIG) defined below is used to determine which net-segments are critical. Each vertex in NIG corresponds to a simple or compound net-segment, and two vertices are connected in NIG when any two segments, which belong to the two corresponding netsegments respectively, are intersecting. The NIG can be constructed from the subgraph H by merging two or more vertices in H when they are in the same net-segment. Figure 8 is the NIG constructed from the subgraph H of Figure 7.
By the NIG definition, the removal of all segments in a net-segment in NIG may lead to the reduction of local channel densities. For the example of Figure 3, the simple net-segment (ht41) is useful for reducing the local densities d(8) and d(9) when it is routed over the cells, but it cannot reduce the local density d(7) because it is a member of the dummy netsegment (ht41, ha4) at column 7. On the other hand, h b h the net segment 31, hb51 h 31) 52, ), or (hb61) is feasible to reduce the local densities d(7), d(8) and d (9). Based on the above discussion, the removal of segments in the net-segment (ht31, hb31), (h 52' hb51)' or (hb61) is better than that of the net-segment (ht41). As a conclusion, the suitable selection of net-segments in NIG for significantly reducing the maximum channel density is required for our algorithm.
For the suitable selection of net-segments, two parameters are weighted at the vertices in a NIG. For a vertex k of a NIG, these parameters are defined as: o k the number of edges connected to vertex k in NIG. f3k the number of column-sets j with d(j) dma and net-segment k is in column-setj. (1) The weights tx k and 13k can be easily computed by the following algorithm: ALGORITHM WEIGHT (k) 1. deg(NIG, k), where deg(NIG, k) is the degree of vertex k in the graph NIG.  Figure 9(a) shows the weighted graph of Figure 8.

THE ALGORITHM
The critical net-segments in graph NIG can be determined heuristically by two steps: (1) Select one vertex based on the weight (or, 13).
(2) The graph NIG is reconstructed after the segments in the net-segment associated with the selected vertex are routed over the cells and removed from the SIG.  The algorithm starts with a NIG with vertices in the initial Sma and executes the above two steps iteratively until no feasible vertex exists.
During step (1), vertices with minimal o are considered first, and then a vertex with maximal 13 is selected from them. If W. c + 1/(13) for all vertices j, the vertex with minimal W is selected. For the instance of Figure 9(a), the vertex ht'11 is selected first.
After a vertex is selected, the segments in the corresponding net-segment will be routed over the cells and removed from the SIG. The NIG will be reconstructed for the next selection. Four steps are required to reconstruct a new NIG after a selected vertex is removed.
(1) Mark all segments in the vertices that are connected to the selected vertex in NIG to be inactive in the successive selection.
(2) Recalculate a new set Smax after the segments in the corresponding net-segment are routed over the cells or removed from the channel. Because the selected vertices should not be interconnected in NIG for the planar routing over the cells, all segments in the vertices connected to the selected vertex will not be considered in the next selection. These inactive segments will be marked and neglected from the recalculation of new Smax. Let be a set of the inactive segments. The members in will grow during the process of selecting the critical segments. Figure 9 shows a step-by-step example for solving the problem shown in Figure 3. The algorithm halts when no feasible net-segment exists as shown in Figure 9(e).
In summary, the procedure of routing over the cells is presented as follows.

RESULTS AND CONCLUSIONS
The algorithms of routing over the cells were coded in C and tested on a SUN 4 SPARC H workstation.
The algorithms are efficient and have been evaluated using several examples including examples 1, 3a, 3b, 3c, 4b, 5, and Deutsch's Difficult example from [7]. Table I compares our results with that of [7] and [8]. In terms of the number of tracks used in the channel or over the cells, our results are comparable to that of [8] and are better than [7]. However, taking CPU time in account, our algorithm is much faster than the approaches presented by [7] and [8].
In this paper, we have proposed a new fast algorithm for routing over the cells. We heuristically choose a "critical" set of segments for significantly reducing the maximum channel density. The proposed algorithm improved the computational efficiency over those of [7] and [8] yet obtained satisfactory results.