Automatic Routing of Integrated
Automatic Routing of Integrated
CIRCUIT
CONNECTIONS: A TUTORIAL
Peter M. Maurer
Department of Computer Science and Engineering
University of South Florida
Tampa, FL 33620
1. Introduction.
Before any two entities can communicate, there must exist a physical medium
across which the communication can take place. In an integrated circuit, this
medium takes the form of electrical connections between various parts of the
circuit. Although these electrical connections can be created by hand, the process
is time consuming, boring, and prone to error. For some circuits, creating the
electrical connections (or routing as it is usually called) can take considerably more
time than designing the active elements of the circuit. Because of this, the
automatic routing was one of the first problems to be addressed by design
automation. The area and timing (and hence the cost and performance) of an
integrated circuit is directly dependent on the quality of the routing. Hence
automatic routing has been extensively researched, and the body of literature is
enormous. So much so that a list of just the basic references would require a
bibliography much larger than this paper. In a paper of this size, it is impossible to
give even a brief introduction all of the existing techniques. The reader is referred
to [1] for a more detailed introduction to this subject, and a more extensive
bibliography of the basic papers.
2. Definitions.
Before proceeding, it is necessary to define various terms that are in common
use in the literature. This section will contain definitions of all terms used in the
detailed version of this paper. The basic elements of the circuit are blocks (or
cells) which are represented by rectangles at various locations in the XY plane.
These are the objects to which connections will be made. Each block has one or
more terminals which are represented by points, or sometimes line-segments, on
the edge of the block. A terminal represents the location to which a connection
must be routed. Terminals are labeled with the name of the net to which they
belong. A net is a collection of terminals that must be wired together. Once the
terminals have been connected the wiring is also considered to be part of the net.
A net must have at least two terminals but there is no upper limit on the number of
terminals per net. Most routing algorithms assume that all terminals and wiring are
aligned to a grid in the XY plane, and that all terminals and wires are of the same
width. This allows the width of wires and terminals to be ignored. (However
there is much research currently being done on "gridless" or "topological"
routers.[2])
Physically a circuit consists of objects in several different layers, which provide
a third dimension to the routing problem. Routing algorithms differ in the number
of layers they assume to be present. Typically wire segments are assumed to lie in
one of two layers of metal, while terminals may lie in three or more layers.
Connections between layers are known as vias and are usually assumed to be the
same width as terminals and wires. (In fact, vias must usually be wider than wire
segments, and some routing algorithms seek to minimize the number of vias to
produce a more compact routing.) Other definitions will be introduced as needed.
6 5 4 3 4 5 E
6 5 4 3 2 3 4 5 6
5 4 3 2 1 2 3 4 5
4 3 2 1 S 1 2 3 4
5 4 3 2 1 2 3 4 5
6 5 4 3 2 3 4 5 6
6 5 4 3 4 5 6
6 5 4 5 6
As can be seen from Figure 1, a maze router first searches the cells that are
closest to the starting terminal, and then proceeds in a breadth first manner by
searching the cells adjacent to those that have already been searched. When the
connecting terminals have been found, the search stops and the wire is created.
The precise path depends on the order in which neighboring cells are searched.
Maze routers will always find a path, if one exists, and the path found is
guaranteed to be of minimum length. However, these two points apply only to an
individual net at the time it is being routed. Maze routers do not guarantee that
the total length of all wires will be minimized, or that a complete routing for the
entire circuit will be found, even if one exists. The problem is that nets routed
early tend to block cells that are needed by nets routed later. This problem has
been attacked in several different ways. Some algorithms will move blocking wires
aside[4], or remove them entirely and attempt to reroute them later[5]. These last
algorithms are usually called "rip-up" routers. Other algorithms allow the most
difficult nets to be placed manually[6]. However, the most widely used approach
is to avoid the use of maze-routers altogether, or to use them to route those few
nets that cannot be routed by other methods.
The channel router[7] is an efficient alternative to the maze-router, but it is
designed to work in a more restricted environment. While maze-routers place no
restrictions on the size or shape of the wiring area or on the position of the
terminals, channel routers assume that the wiring area (called a channel) is
rectangular with fixed terminals at the top and bottom and no terminals at the right
or left. In spite of this, channel routers have become the workhorse of the IC
industry, so a detailed discussion of these types of routers is warranted.
A typical channel is illustrated in Figure 2. The vertical lines represent
terminals, while the numbers represent nets. By convention, a net number of zero
represents an unused terminal. The simplest channel routers use two layers, one
for vertical wire segments, and another for horizontal segments. A via is required
at every right-angle bend. Since rotations in increments of 90 degrees are trivial,
there are four physical orientations for each channel.
00 00 00 00 00100 00 00 00 200 00 00 00 00000 00 00 00 00400 00 00 00 900 00 00 00 00 000 00 00 00 00700 00 00 00 600 00 00 00 00 300 00 00 00 00000 00 00 00 300 00 00 00 00 600 00 00 00 00000 00 00 00 800 00 00 00 00200 00 00 00 00 00
00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
00 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
0000000000000000000000000000000000000000000000000000000000000000000000000000
0 4 7 1 8 4 9 5 2 5 9 7 0 4 0
Note that in Figure 3, the trunk for net 7 must lie above the trunk for net 9,
otherwise the two nets will be shorted when the center branches are attached. This
is an example of a vertical constraint. Any column that contains terminals for two
different nets produces one vertical constraint. The set of vertical constraints is
usually represented as a directed graph with the nets represented by vertices and
vertical constraints represented by directed arcs. Figure 4 presents the vertical
constraint graph for the channel pictured in Figure 3.
Note that the vertical constraint graph of Figure 4 is acyclic. It is possible for
some channels to have cyclic vertical constraint graph, in which case special
techniques must be used to break the cycles.
The vertical constraint graph is used to implement the simplest of the channel
routing algorithms, called the "left edge" algorithm[7]. This algorithm proceeds as
follows.
1. Set the current track to 1. (Tracks are numbered from 1 starting with
the topmost track).
2. Inspect the vertical constraint graph and obtain the set of all vertices
that have no predecessors. (This is the set of nets that are routable in
the current track.)
3. From the set of nets that are routable in the current track, find the net
with the leftmost terminal, assign its trunk to the current track, and
remove it from the set of nets routable in the current track.
4. Remove any nets whose trunks overlap with the most recently routed
net from the set of nets routable in the current track. If any nets remain
in this set, go back to step 3.
5. Delete all nets routed in the current track from the vertical constraint
graph. If the graph is not empty, increment the current track number
by 1 and go back to step 2.
6. Attach the branches and the vias, and map the logical routing into
physical structures.
6
7
5
3 9
2 8
Note that the left-edge algorithm assumes that there are an unlimited number
of tracks in the channel. It is, of course, trivial to add a check to see if the number
of tracks in a fixed-width channel has been exceeded, but it is often more efficient
to obtain a lower bound on the number of tracks required before routing begins.
To do this, one draws a vertical line between any two terminals, and counts the
nets that have terminals on both sides of the line. This count is called the density
at that point. The maximum density or channel density is the maximum density
over all vertical lines that could be drawn through the channel. The channel
density is a lower bound on the number of tracks required to route the channel, but
not necessarily the absolute lower bound. Unfortunately, the left edge algorithm is
not guaranteed to use the minimum number of tracks. In fact. the problem of
routing a channel in the minimum number of tracks is known to be NP-
complete[9].
The channel routing problem must be solved heuristically, and there are
heuristics that appear to work much better in practice than the left-edge algorithm.
The simplest of these is doglegging[10]. A dogleg is a vertical wire segment that
connects two trunks. Doglegging allows nets to be assigned to two or more
trunks, which tends to produce more compact routings, than the "pure" left-edge
algorithm. Doglegs are typically used only at the net's terminal positions, because
this produces only one extra via. A dogleg at any other position would produce
two extra vias. Furthermore, the nets that tend to cause problems are usually those
that have many terminals, thus breaking trunks at terminal positions tends to
reduce the harmful effects of such nets. Figure 5 illustrates the two nets of Figure
3 routed with doglegs.
Other techniques of note are the greedy channel router [11], the hierarchical
channel router[12], and YACR2[13].
Regardless of which technique is used to route the channel, it is a simple matter
to extend the algorithm so that a net can be routed out of the left or right edge, at
an arbitrary position. It is also possible to extend the algorithm to route nets from
the left edge to the right edge, even though the net has no terminals in the channel.
The importance of these two features will be explained in the next section. It is
often necessary to add a second routing step to the channel router, primarily to
resolve cyclic vertical constraints. If a channel router cannot complete some nets
(because of cyclic constraints) the unrouted nets can be completed using a maze
router. This step is usually referred to as cleanup routing.
In Figure 9, a bad pin assignment for the nets A, B, and C has resulted in an
overly complex wiring of the nets. Since the inputs to the AND gate are
functionally equivalent, these nets could be routed straight across. However with
the pin assignment illustrated in Figure 9, the channel constraint graph is cyclic,
requiring a dogleg in net A, and excessively long wires for all three nets.
The problem of equipotential terminals is illustrated in Figure 10
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 0 0
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000000000000000000000000000
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 020 00 00
Figure 10. Equipotential Terminals.
In Figure 10, both terminals are assigned to net 2, but there is an internal
connection inside the block between the terminals. Routing algorithms typically
assume that identically labeled terminals must be connected by external wiring.
However, when an internal connection between terminals exists, it is possible to
leave one or more of the terminals unwired. More significantly, it is possible to
take advantage of the internal wiring to complete nets that are difficult to wire
externally.
Some of the better-known pin-assignment algorithms are the concentric circle
algorithm[24], the nine-zone method[25], and the topological method[26].
Standard cell placement is probably the most extensively studied technique for
reducing the wiring complexity of integrated circuits. Given a gate-level
description of a circuit, the problem is to arrange the gates in such a way as to
minimize the wiring complexity of the circuit. The circuits for the gates are usually
assumed to be taken from a library of pre-designed circuits. Each such circuit is
called a standard cell. Standard cells are assumed to have the form illustrated in
Figure 11.
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000000000 00 00 00 00 00 00 00 00 000 000 000 00 00 00 00 00
0 0 0 terminals
All standard cells are the same height, so that power and ground will abut
properly when they are laid out in rows. The standard cells for a circuit are
partitioned into several sets and laid out in rows to form a rectangular array. The
space between the rows is used for channel routing. The complexity of the wiring
is highly dependent on the partitioning and on the location of the cells within a
row.
Many placement strategies have been studied. The most important of these are
min-cut placement [27] and cluster growth[28]. Simulated annealing [29] and
other techniques [30] have been used to improve the quality of initial placements
obtained from one of the other techniques.
6. Conclusion
Although routing is one of the most thoroughly studied problems in computer-
aided integrated circuit design, there are still many opportunities for future
research. Because the problem must be attacked heuristically, there is a great deal
of ongoing research to discover new and more effective heuristics. A potential
area for new research is optimizing either the placement or wiring of an integrated
circuit to enhance the performance of a collection of nets that represent a single
communication channel. Placement and wiring improvement techniques have
traditionally focused on total wire length as a figure of merit. Some techniques
weight critical nets more heavily to guarantee that nets with severe timing
constraints are routed by the shortest path. These techniques could possibly be
extended to consider the characteristics of a collection of nets rather than treating
each net individually. One approach that has gone in this direction is the routing
technique used by Lincoln Laboratories to route wafer-scale circuits [31]. This
technique collapses buses into single nets so that the individual nets that comprise
the bus are routed along parallel paths. (Similar features are provided by many
commercially available systems.)
Traditionally, routing has been implemented as a separate step rather than as an
integrated part of the design process. (The same comment could be made about
most phases of the design process.) This is not surprising when one considers the
complexity of the routing problem. However, this trend is slowly changing, and it
is likely that in the future many phases of the design process, including routing, will
be more tightly integrated.
It is important to emphasize that this paper contains only the barest
introduction to automatic integrated circuit routing. The reader is referred to the
many references, especially [1] for more information. Current research on routing
is reported in the IEEE Transactions on Computer Aided Design of Circuits and
Systems, the annual ACM/IEEE Design Automation Conference, the International
Conference on Computer Aided Design, and several other journals and
conferences. The reader is referred to these sources for the most up to date
information.
REFERENCES
1. Preas, B. and M. Lorenzetti (eds.), Physical Design Automation of VLSI
Systems, The Benjamin/Cummings Publishing Co. Inc., Menlo Park, CA,
1988.
2. Lorenzetti, M., "Algorithms and Models for a Topologically Based
Interconnection and Routing System," Ph.D. Dissertation, University of Texas
at Austin, 1983.
3. Lee, C., "An Algorithm for Path Connections and its Applications," IRE
Transactions on Electronic Computers, Vol. EC-10, pp. 346-365, Sept.,
1961.
4. Scott, W, and J. Ousterhout, "Plowing: Interactive Stretching and
Compaction in Magic," 21st Design Automation Conference, pp. 166-172,
1984.
5. Dees, W., and P. Karger, "Automated Rip-Up and Reroute Techniques," 19th
Design Automation Conference, pp. 432-439, 1982.
6. Hightower, D., "A Manually Driven Line Search Router in a Line Editor,",
International Conference on Computer Aided Design, pp. 276-278, 1985.
7. Hashimoto, A., and J. Stevens, "Wire Routing by Optimizing Channel
Assignment within Large Apertures," 8th Design Automation Workshop, pp.
155-163, 1971.
8. Sato, K., H. Shimoyama, T. Nagai, M. Ozaki, and T. Yahara, "A 'Grid-Free'
Channel Router," 17th Design Automation Conference, pp. 264-278, 1980.
9. Szymanski, T., "Dogleg Channel Routing is NP-Complete," IEEE
Transactions on Computer Aided Design, Vol. CAD-4, pp. 31-41, Jan. 1985.
10. Deutsch, D., "A Dogleg Channel Router," 13th Design Automation
Conference, pp. 425-433, 1976.
11. Rivest, R., C. Fiduccia, "A 'Greedy' Channel Router," 19th Design
Automation Conference, pp. 418-424, 1982.
12. Burstein, M, and R. Pelavin, "Hierarchical Channel Router," 20th Design
Automation Conference, pp. 591-597, 1983.
13. Reed, J., Sangiovanni-Vincentelli, and M. Santomauro, "A New Symbolic
Channel Router: YACR2," IEEE Transactions on Computer Aided Design,
Vol. CAD-4, pp. 208-219, Jul. 1985.
14. Joobani, R. and D. Siewiorek, "WEAVER: A Knowledge-Based Routing
Expert,", IEEE Design and Test of Computers, Vol.3, No. 1, pp. 12-23, Feb.
1986.
15. Cohoon, J., and P. Heck, "BEAVER: A Computational-Geometry-Based
Tool for Switchbox Routing," IEEE Transactions on Computer Aided
Design, Vol. 7, pp. 684-697, Jun. 1988.
16. Moulton, A., "Laying the Power and Ground Wires on a VLSI Chip," 20th
Design Automation Conference, pp. 754-755, 1983.
17. Kimura, S., N. Kubo, T. Chiba, and I. Nishioka, "An Automatic Routing
Scheme for General Cell LSI," IEEE Transactions on Computer Aided
Design, Vol CAD-2, pp. 285-292, Oct. 1983.
18. Clow, G., "A Global Routing Algorithm for General Cells," 21st Design
Automation Conference, pp. 45-51, 1984.
19. Li, J-T. and M. Marek-Sadowska, "Global Routing for Gate Array," IEEE
Transactions on Computer Aided Design, Vol CAD-3, pp. 298-307, Oct.
1984.
20. Patel, A., N. Soong, R. Korn, "Hierarchical VLSI Routing - An Approximate
Routing Procedure," IEEE Transactions on Computer Aided Design, Vol.
CAD-4, pp. 121-126, Apr. 1985.
21. Vecchi, M., and S. Kirkpatrick, "Global Wiring by Simulated Annealing,"
IEEE Transactions on Computer Aided Design, Vol. CAD-2, pp. 215-222,
Oct. 83.
22. Horng, C., and M. Lie, "An Automatic/Interactive Layout Planning System
for Arbitrarily-Sized Rectangular Building Blocks," 18th Design Automation
Conference, pp. 293-300, 1981.
23. Otten, R. "Annealing Applied to Floor plan Design in a Layout Compiler,"
Automation '86, pp. 185-228, 1986.
24. Koren, N., "Pin Assignment in Automated Printed Circuit Board Design," 9th
Design Automation Workshop, pp. 72-79, 1972.
25. Mory-Rauch, L., "Pin Assignment on a Printed Circuit Board,", 15th Design
Automation Conference, pp. 70-73, 1978.
26. Brady, H. "An Approach to Topological Pin Assignment," IEEE Transactions
on Computer Aided Design, Vol. CAD-3, pp. 250-255, Jul. 1984.
27. Breuer, M. "A Class of Min-Cut Placement Algorithms," 14th Design
Automation Conference, pp. 284-290, 1977.
28. Schuler, D. and E. Ulrich, "Clustering and Linear Placement," 9th Design
Automation Workshop, pp. 50-56, 1972.
29. Sechen, C. and A. Sangiovanni-Vincentelli, "The Timberwolf Placement and
Routing Package," Custom Integrated Circuits Conference, May 1984.
30. Isopovici, A., C. King, and M. Breuer, "A Module Interchange Placement
Machine," 20th Design Automation Conference, pp. 171-174, 1983.
31. Frankel, R., J. Hunt, M. van Alstyne, and G. Young, "SLASH - An RVLSI
CAD System," International Conference on Wafer Scale Integration, pp.31-
38, 1989.