A gridless router for industrial design rules

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