A GRIDLESS ROUTERFOR INDUSTRIAL DESIGNRULES W. L. Schiele, Th. Kriiger, K. M. Just, F. H. Kirsch Siemens AG, Semiconductor Group, HL CAD Balanstr. 73, D-8000 Munich 80, FRG. Abstract A point-to-point routing algorithm with three new features is presented. First, the router makes optimal use of oversized, rectangular contacts. Second, it allows different wire width on different layers, with the layers having complete freedom as to routing direction. These two features make the algorithm attractive for MOS layout applications. Finally it is able to realize all-angle routing and to accept all-angle obstacles, a feature interesting for hybrid and PCB routing. The router is gridless and guarantees a solution if one exists. Since it is based on computational geometry algorithms, it offers a low run-time complexity. The ideas have been implemented in a prototype version for 45' routing. The results indicate that the router performs well, even on large designs. 1 Introduction To achieve efficient algorithms the routing problem has usually been studied making some simplifying assumptions. These simplifying assumptions are often unacceptable in an industrial environment where solutions have to be found under the constraints of complex design rules and where a need for a high completion rate exists. Among these simplifications are: routing on a coarse grid, routing on two layers only, rectilinear routing, HV-routing (horizontal routing on layer 1 and vertical routing on layer 2 ) , same wire width on both layers, and contact cells which have the same width as the wires and are square. The main objectives used to be minimum wire length and minimum number of jogs. These are important goals, but if they can only be achieved by applying one or more of the above simplifications, it may happen, that the algorithm fails to find a solution, even if a possible route exists. This work has been funded in part by the European Commission Esprit-I1 Research and Development programme in the sector of Microelectronics, under Project Esprit-I1 2260, "SPRITE." The goal of our development was an efficient router that assumes none of the above mentioned simplifications and guarantees to find a route if a solution exists. In Section 2 a brief survey of published point-to-point routing algorithms is given with emphasis on the restrictions they impose on the solution space. The routing algorithm and its properties are described in Sections 3 and 4. Some results and future extensions of the algorithm complete the paper in Sections 5 and 6. 2 Existing p-t-p Routers Since the publication of the Lee-router [l]in 1961, several different approaches to the point-to-point connection problem have been developed. The maze-running algorithms are based on an equidistant grid. The layout area is mapped onto a two-dimensional array in memory. A connecting path is searched by proceeding step by step to neighboring grid points. Constraints such as layer preference, routing along obstacle borders, and minimum number of jogs may be realized by a specific weighting of the grid points. One of the drawbacks of the original Lee-algorithm and its extensions is its high memory consumption. It is proportional to N 2 ,with N being the number of grid coordinates on both axes. This problem is especially severe when a fine grid has to be used. Another approach is the line-search technique. Hightower's version [2,3] is grid independent, but suffers from the fact that i t does not always find a solution if one exists. Mikami and Tabuchi [4] guarantee a solution, but the run-time increases with the fineness of the grid. The line-expansion algorithm [5] is a method that combines maze-routing and line-search techniques. It guarantees a solution with minimum number of jogs. Line-search and line-expansion algorithms only deal with orthogonal geometry. To the knowledge of the authors, there are only implementations for HV-routing. In [6] a one-layer routing algorithm on a rectilinear region is presented. Ohtsuki et al. apply the scan-line approach to the routing problem. For a rectilinear routable region with n vertices it is claimed that the 27th ACMllEEE Design Automation Conference@ Paper 38.1 626 1990 IEEE 0738-100Xl901000610626 $1 .OO algorithm finds a path in O(n1ogn) time. An extension to two-layer interconnections is described in [7]. More exhaustive surveys of the topic can be found in [8Igl101. In the following sections a routing algorithm is presented that is based on the scan-line approach and offers three new features: 1. The shape of the contacts is explicitly taken into account by the algorithm. Rectangular (nonsquare) contacts and contacts that are wider than wires can be handled without generally increasing the minimum wire pitch. 2. It allows different wire widths on different layers but is not restricted to HV-routing. 3. It can be implemented to generate wires and to accept obstacle borders with any practically relevant set of angles. 3 The Routing Algorithm In contrast to channel and river routing, the point-to-point routing problem is confined to construct a connection between one pair of points. Some pointto-point routers, including the presented one, are also capable of connecting one set of points with another set of points. A suitable point from each of the point sets is chosen implicitly by the algorithm. 3.1 3.2 Construction of the Obstruction Zones Existing geometry in the routing area forms obstacles. The design rules and the shape of the contacts are given in the technology description file. The design rules specify the minimum spacing between wires, cells, and contacts. 7 1 2 Outline The connection is laid out in the plane in one or more layers. Existing layout elements form routing obstacles. A set of design rules further restricts the available area in the plane. Minimum distances between all layout elements have to be guaranteed. Shapes and sizes of contacts restrict the area for a possible layer change. The obstruction zones (Section 3.2) are constructed from the obstacles by taking the design rules into account. They have to be calculated for each routing layer and contact type separately. The area outside of the obstruction zones is available for placing wire segments or contacts. For each routing layer and each contact type the area is dissected into non-overlapping trapezoids by vertically (horizontally) slicing it at each obstacle vertex. In the rectilinear case, all trapezoids are rectangular. The dissection is performed by a scan-line algorithm. The trapezoids belonging to the routing layers are represented by nodes in a connectivity graph. An edge between two nodes is present if the corresponding trapezoids belong to the same layer and are touching, or they belong to different layers, are overlapping, and can be connected by a contact. The so defined connectivity graph differs from a grid graph [6,7]. The degree of the nodes in the constraint graph is arbitrary and not restricted to 4 as it is ~~ for a grid graph. The nodes do not represent grid line segments but areas available for routing. Once having a graph the routing problem is essentially reduced to a shortest path problem which has been extensively studied and several efficient algorithms for its solution exist. Finally a route is embedded into the selected trapezoids. The algorithm will now be described for the special case of 2-layer routing with 45' wires, but it may be used for multi-layer and multi-angle routing as well. The available routing area is assumed to be rectangular. In the description of the algorithm four types of layout elements will be used: type A and B correspond to wires of the two routing layers, type C corresponds to contacts, and type D to cell outlines. (a)orthogonal (b) octagonal Figure 1: An oversized obstacle approximated by orthogonal lines and by octagonal lines is shown in (a) and (b) respectively. Usually cells are blockages for all types of new geometries. Wires in different layers may cross; therefore, the wires on one layer do not form obstacles for the wires on the other layer. The areas where the center-lines of new wires and the mid-points of new contacts must not be placed are called obstruction zones. They are generated by oversizing the obstacles. An obstacle generates different obstruction zones depending on the type of new element to be placed. The amount of oversizing is determined by the minimum distance rule and half of the width of the intended element. At corners of obstacles the quarter circles that result from the oversizing operation are approximated by orthogonal lines (Figure l a ) or by octagonal lines (Figure l b ) depending on the kind of routing desired. If it is necessary that the wire Paper 38.1 627 center-lines start and end on grid points, the corners of the obstruction zones have to snap onto grid points. In the case of rectangular (non-square) contacts two different contact obstruction zones have to be generated for each obstacle. One for the horizontally oriented contacts (Figure 28) and the other for the vertically oriented contacts (Figure 2b). routing area trapezoids Figure 3: Routing area of one layer dissected into trapezoids by vertical cuts. 3.4 Figure 2: The obstruction zones for horizontally oriented contacts and for vertically oriented contacts are shown in (a) and (b) respectively. A is the value of the relevant minimum separation rule. 3.3 Dissection into Trapezoids For each of the above mentioned element types the free area is determined as the complement of the merged obstruction zones. This area is represented by a set of trapezoids (Figure 3). According to the element types, there are the sets TA,TB, and Tc. If the contacts are non-square, there are two sets of trapezoids for the horizontal and the vertical contacts: T c and ~ Tcv. The dissection is done by a scan-line algorithm [11,12,13] in order to achieve a run-time complexity of O(n log n), with n being the number of obstruction polygon edges within the routing region. The trapezoids associated with one element type are non-overlapping and may only touch a t vertical edges. The area is sliced by vertical cut lines. The final route may be different for horizontal slice lines. In our examples we did not observe that this asymmetry impairs the quality of the result. The outline of a n obstruction zone is not part of the forbidden area. If two obstruction zones touch, it is still possible to run a wire between them. In this case, the available routing area consists of a zero width trapezoid. Other kinds of degenerated trapezoids such as triangles and single points are also allowed and necessary geometric elements to completely cover the free area. Paper 38.1 628 Construction of the Connectivity Graph The trapezoids are represented by nodes in the connectivity graph. If two trapezoids of the same type touch, an edge connecting their nodes will be introduced. A cost is assigned to each edge. This cost is the distance of the trapezoid mid-points, weighted by the sheet resistance of the routing layer. The edge stands for the possibility to reach one trapezoid from the other one by a wire (see Figure 4). nodes edges weights Figure 4: Example from Figure 3 with the superimposed connectivity graph. Up to now, we have created two unrelated sub-graphs one for each routing layer. The sub-graphs are connected by the so-called contact edges. A contact edge represents the possibility to generate an interconnect between a trapezoid of type A and a trapezoid of type B by placing a contact. One contact edge is generated for a triple of trapezoids with the following two properties (see Figure 5): 1. One trapezoid belongs to TA,one to T B ,and one to T C h 01 to Tc,. 2. The three trapezoids have a t least one point in common. This condition is evaluated by a scan-line algorithm in order to achieve a low run-time complexity. The contact edge is assigned a reference pointer to the contact trapezoid. During the wire embedding this information is needed to choose the right contact type and to place it correctly. applied to find the path with the lowest sum of weights between source and sink. The weighting of wiring and contact edges controls which layer is preferred and how many layer changes are generated to achieve a minimum resistance result. If no path exists, the farthest trapezoids which can be reached from the source node are determined and displayed to the user. In this case the user has to modify the existing layout or enlarge the routing area to help the router come to a solution. This may be done by a plowing procedure [15,16]. The plow pushes aside obstacles that block the routing and maintains the design rules and the connectivity. It generates blank space by compacting the spare space between obstacles. Then the routing algorithm finds a way through the generated space. 3.6 wiring trapezoid ! I '. \. \. \ I I I . wiringtrapezoid I -I Wire Embedding The trapezoids have been selected with the primary goal of achieving a minimum wire resistance. Wires and contacts are placed within the trapezoids, such that a connected route is generated. A simple strategy is to construct the shortest way to the following trapezoid using allowed angles only. According to the user's preferences different strategies or a combination of them may be employed: 1. run along obstacles, 2. minimum number of jogs, 3. minimize, maximize use of 45' wires. rontact edge wiring node k*-- A tYPeA 0 - wiringnode ) tYPeB c Figure 5: Overlapping wiring and contact trapezoids and the corresponding graph section. The cost C, that is assigned to the contact edge is calculated as follows: c, TA TA, TB TC m> I& - mt. I + Tpg 1 7 6 3 - 6 2I + TC sheet resistance of routing layer A and B cost for a contact mid-point of the trapezoid of type X The values T A , T B , and T C are specified by the user in the technology file. With these values the user can influence the result with respect to the number of generated contacts. 3.5 Shortest Path Calculation A source and a sink node are determined from the location of the user-specified or netlist-derived starting and ending point. Then the Dijkstra algorithm [14] is Among these secondary objectives the first one is of great importance. The strategy to place wires close to existing obstacles leaves most space for further routing, thereby avoiding blockages. In Section 6 an extension is given which additionally avoids blocking of pins. We use the following heuristic to achieve objective 1. For each traversed trapezoid we have an entry and an exit point on vertical trapezoid edges. The entry point is identical to the point where the previous trapezoid is exited. We choose the exit by determining the point that is closest to the entry and is common to the current trapezoid and the next trapezoid. Two cases may occur. First, entry and exit point are located on the same side. Then, one vertical wire is used. Second, entry and exit point are located a t opposite sides. In this case, a horizontal wire segment starting a t the entry point is extended until a n edge of the current trapezoid is hit. Wires are then run along the trapezoid edges until the exit is reached. This is done for all trapezoids in the order they appear in the shortest path. We employ this strategy two times. The first time from source to sink and the second time vice versa. The result are two complete paths that have disjunct and common sections. For the disjunct sections we need a criterion to select one of both alternatives. Paper 38.1 629 As the layout was vertically sliced, the non-vertical trapezoid edges stem from obstacle edges. For each disjunct section we accumulate the lengths of segments that coincide with non-vertical trapezoid edges. The alternative with the higher coincidence value is then selected as contribution of this section to the final route. Experiments showed, that the results are good approximations to objective 1. 4 Properties of the Algorithm Due to the careful construction of the obstruction zones, the algorithm guarantees a solution if one exists. This is also true, if the use of one or more oblique wires is necessary to yield a valid connection. The router is gridless and allows the specification of any wire width. Real-world design rules (contact pitch > wire pitch, different wire width on different layers) are easily handled by this method. The grid size (artwork resolution) has no significant impact on the run-time and the memory demand, as no equidistant grid is mapped onto the memory and no searching in steps of grid units is performed. To gain an upper bound for the time complexity we denote the number of cells, segments, and contacts within the routing area by n. Then the calculation of obstruction zones is of O ( n ) . The number of trapezoids and therefore the number of nodes is proportional to n, as for realistic layouts we can assume that each obstruction zone only intersects with a limited number of other obstruction zones. With this assumption the scan-line algorithm has a time complexity of O(n log n). Most of the graph generation can be done during the scan-line algorithm. The sub-graphs for each routing layer are planar. The number of edges within the subgraphs is therefore smaller than three times the number of nodes. For realistic designs we can further assume that the number of contact edges and therefore also the total number of edges e is proportional to n. When AVL-trees [12) are used, the shortest path algorithm has an upper time bound of O(n1ogn). The effort for wire embedding with the algorithm sketched in Section 3.6 is linear in n. Therefore the entire time complexity is O(n1ogn). With the above assumptions, especially e proportional to n, the memory space complexity is O ( n ) . 5 Figure 6: Layout section of cell bzp with a n automatically generated route (dark). 1 Cell # # # # I/ bzp I dde I dde obstacles trapezoids gen. segments gen. contacts Results The basic features of the new algorithm have been implemented. It has been integrated into a workstation layout editor. The tests have shown that the router is adaptable to the design rules of the SIEMENS CMOS and bipolar processes. It was found especially useful when distant pins on a large design had to be connected. The tedious task of panning and zooming through the layout and the risk of shorts and design rule violations is made obsolete. The run-time was observed to increase slightly more than linear with the number of obstacles Paper 38.1 630 in the routing area. Figure 6 shows a section of a layout. The option 45O-routing was selected and the shape of the contacts was chosen to be square. Table 1: Experimental results. In a completely routed channel of Deutsch's difficult example (cell dde in Table 1) the route belonging to net 61 was removed and rerouted by the point-to-point router on a VAX 8600. The comparison of the columns for bip 45' and dde 45' in Table 1 shows, that the runtime was approximately proportional to the number of generated trapezoids. Using the 45' option for dde in- creased the number of generated trapezoids from 388 to 557. Due to the more complex trapezoid generation algorithm needed for the non-orthogonal case the runtime increased by a factor of 4.3. 6 Extensions Special care has t o be taken to protect unconnected pins a t cell borders from being blocked by generated wires. The following extension seems to be a reasonable solution to the problem: Additional obstruction zones for wires on the same layer as the pin have to be generated. Their size is chosen such that a contact may be placed between cell border and new wire. The algorithm is able to generate and guarantee a solution for arbitrary routing angles by a straightforward extension. At first a set of desired angles A has t o be specified (e.g. multiples of 15'). For relevant cases we can assume: (AI 2 2 and 90' E A. Then the obstruction zones are approximated by edges with these angles. The non-degenerated trapezoids, which are produced by vertically slicing the free area, consist of two vertical edges and two edges which also have angles from A. In order to guarantee that the generated trapezoids can be routed through, we have to make sure that any point on the left side of the trapezoid can be connected to any point on the right side by a legal wire. This holds true, since a wire may run along the edges of the trapezoid and thus, connects source and target point. The succeeding steps in the algorithm are analogous to the octagonal case. With a refined cell model it will be possible to realize over-the-cell routing. Multiple obstruction zones valid for only one layer are assigned t o one cell. They usually cover only parts of the cell and will allow the router to enter and place wires on the remaining cell area. The freedom as to routing direction for all layers will then create the possibility to realize non-straight over-thecell routes (e.g. jogged feed-thrus). Multi-layer routing may be incorporated by performing the construction of the obstruction zones and the trapezoid dissection for all routing layers and for all contact types. The problem of stacked contacts (the technology does not allow contacts close to, or on top of each other) is not solved by this approach and will be a topic of further investigations. 7 Conclusion A routing algorithm with three novel features has been presented. These features make it suited for the use with industrial design rules. Contacts may be rectangular and wider than wires. The wire width may depend on the routing layer with no restriction on the routing direction such as HV-routing. All-angle routing may be realized. First results gained by the use of a 45' prototype version indicate that the router performs well, even on large designs. A new cell model will be imple- mented in the future to make it applicable to complex over-the-cell routing tasks. References C.Y. Lee. An algorithm for path connections and its application. I R E Trans. on Electronic computers, EC10:346-365, 1961. D.W. Hightower. A solution to line-routing problems on the continuous plane. In PTOC.6th Design Automation Workshop, pages 1-24, 1969. U. Lauther. A data structure for gridless routing. In Proc. 17th Design Automation Conference, pages 603609, 1980. K. Mikami and K. Tabuchi. A computer program for optimal routing of printed circuit connectors. IFIPS Proc., H47:1475-1478, 1968. W. Heyns, W. Sansen, and H.Beke. A line-expansion algorithm for the general routing problem with a guaranteed solution. In PTOC.17th Design Automation Conference, pages 243-249, 1980. T. Ohtsuki, M. Sato, and I. Kojima. Computational geometry approach to wire routing design. In Proc. 6th ECCTD, pages 565-567, 1983. T. Ohtsuki and M. Sato. Gridless routers for two-layer interconnection. In Proc. I C C A D , pages 76-78, 1984. T. Ohtsuki. Layout Design and Verification, chapter Maze-Running and Line-Search Algorithms, pages 99-131. Volume 4 of Advances in C A D f o r VLSI, Elsevier Science Publishers B.V., 1986. M.J. Lorenzetti and D.S. Baeder. Physical Design Automation of VLSI Systems, chapter 5 , Routing, pages 157-210. Benjamnin/Cumnings Publishing Cornpany, Inc., 1986. W.L Schiele and Th. Kriiger. Report and Conclusions f-rom the Analysis of Existing Point-to-point Routers. Technical Report Deliverable C.4.2. I /Siemens/Y 1M9/1, Project Esprit-I1 2260, 'SPRITE', September 1989. K. Mehlhorn. Data Structures and Algorithms. Springer-Verlag New York Inc., 1984. F.P. Preparata and M.I. Shamos. Computational Geometry. Springer-Verlag New York Inc., 1985. W.L. Schiele and Th. Kriiger. Ein rasterfreier Wegesuchalgorithmus fiir rechtwinklige und schrage Verdrahtung. A E U, Electronics and Communication, 43(4):209-220, July/Aug. 1989. E.W. Dijkstra. A note in connexion with graphs. Numerische Mathematik, (1):269-271, 1959. K.M. Just, W.L. Schiele, and Th. Kriiger. Plowing: modifying cells and routing in 45-degree layouts. In Proc. 26th Design Automation Conference,pages 702705, 1989. K.M. Just. Plowing: Incremental layout modification and compaction. In G.W. Zobrist, editor, Progress in Computer Aided VLSI Design, Ablex Publishing Corp., 1990. to appear. Paper 38.1 631
© Copyright 2026 Paperzz