ASIC Global Routing Techniques Explained
ASIC Global Routing Techniques Explained
Unit V
Routing: Global Routing - Goals and objectives, Global Routing Methods, Global routing
between blocks, Back-annotation. Detailed Routing - Goals and objectives,
Measurement of Channel Density, Left-Edge Algorithm, Area-Routing Algorithms,
Multilevel routing, Timing –Driven detailed routing, Final routing steps, Special
Routing, Circuit extraction and DRC.
(05+05) Hrs
Routing
➢ Once the designer has floorplanned a chip and the logic cells within the flexible blocks have been placed, it is
time to make the connections by routing the chip.
➢ This is still a hard problem that is made easier by dividing it into smaller problems.
➢ Routing is usually split into
✓ global routing
✓ followed by detailed routing
Global Routing
➢ The details of global routing differ slightly between cell-based ASICs, gate arrays, and FPGAs, but the
principles are the same in each case. A global router does not make any connections; it just plans them.
➢ We typically global route the whole chip (or large pieces if it is a large chip) before detail routing the whole
chip (or the pieces).
➢ There are two types of areas to global route:
➢ inside the flexible blocks
➢ between blocks (the Viterbi decoder, although a cell-based ASIC, only involved the global routing
of one large flexible block).
➢ As a sequential routing algorithm proceeds, some channels will become more congested since they hold more
interconnects than others. In the case of FPGAs and channeled gate arrays, the channels have a fixed channel
capacity and can only hold a certain number of interconnects.
➢ There are two different ways that a global router normally handles this problem.
✓ Using order-independent routing, a global router proceeds by routing each net, ignoring how crowded
the channels are. Whether a particular net is processed first or last does not matter; the channel assignment
will be the same.
✓ In order-independent routing, after all the interconnects are assigned to channels, the global router
returns to those channels that are the most crowded and reassigns some interconnects to other, less
crowded, channels.
➢ Alternatively, a global router can consider the number of interconnects already placed in various channels as it
proceeds. In this case the global routing is order dependent the routing is still sequential, but now the order of
processing the net will affect the results.
➢ In contrast to sequential global-routing methods, which handle nets one at a time, hierarchical routing
handles all nets at a particular level at once. Rather than handling all of the nets on the chip at the same time,
the global-routing problem is made more tractable by dividing the chip area into levels of hierarchy.
➢ By considering only one level of hierarchy at a time, the size of the problem is reduced at each level. There
are two ways to traverse the levels of hierarchy.
✓ Starting at the whole chip, or highest level, and proceeding down to the logic cells is the top-down
approach.
✓ The bottom-up approach starts at the lowest level of hierarchy and globally routes the smallest areas
first.
FIGURE 17.4 Global routing for a cell-based ASIC formulated as a graph problem.
(a) A cell-based ASIC with numbered channels.
(b) The channels form the edges of a graph.
(c) The channel-intersection graph. Each channel corresponds to an edge on a graph whose weight corresponds to the channel
length.
Hemanth T S Assistant Professor, Dept. of E&CE, AIET, Moodbidri. 10
Application – Specific Integrated Circuits [ASIC]
➢ Figure 17.5 shows an example of global routing for a net with five terminals, labeled A1 through F1, for the cell-based ASIC
shown in Figure 17.4.
➢ If a designer wishes to use minimum total interconnect path length as an objective, the global router finds the minimum-
length tree shown in Figure 17.5 (b).
➢ This tree determines the channels the interconnects will use. For example, the shortest connection from A1 to B1 uses
channels 2, 1, and 5 (in that order).
➢ This is the information the global router passes to the detailed router.
➢ Figure 17.5 (c) shows that minimizing the total path length may not correspond to minimizing the path delay between two
points.
➢ Figure 17.7 shows the inverter macro for the sea-of-gates array shown in Figure 17.6 . Figure 17.7 (a) shows
the base cell. Figure 17.7 (b) shows how the internal inverter wiring on m1 leaves one vertical track free as a
feedthrough in a two-level metal process (connectors placed at the top and bottom of the cell).
➢ In a three-level metal process the connectors may be placed inside the cell abutment box (Figure 17.7 c).
Figure 17.8 shows the global routing for the sea-of-gates array.
➢ We divide the array into nonoverlapping routing bins (or just bins, also called global routing cells or GRCs),
each containing a number of gate-array base cells.
Timing-Driven Methods
➢ Minimizing the total pathlength using a Steiner tree does not necessarily minimize the
interconnect delay of a path. Alternative tree algorithms apply in this situation, most using
the Elmore constant as a method to estimate the delay of a path (Section 17.1.2).
➢ As in timing-driven placement, there are two main approaches to timing-driven routing:
net-based and path-based. Path-based methods are more sophisticated.
➢ For example, if there is a critical path from logic cell A to B to C, the global router may
increase the delay due to the interconnect between logic cells A and B if it can reduce the
delay between logic cells B and C.
➢ Placement and global routing tools may or may not use the same algorithm to estimate net
delay. If these tools are from different companies, the algorithms are probably different.
➢ The algorithms must be compatible, however. There is no use performing placement to
minimize predicted delay if the global router uses completely different measurement
methods.
➢ Companies that produce floor planning and placement tools make sure that the output is
compatible with different routing tools often to the extent of using different algorithms to
target different routers.
Hemanth T S Assistant Professor, Dept. of E&CE, AIET, Moodbidri. 18
Application – Specific Integrated Circuits [ASIC]
Back Annotation
➢ After global routing is complete it is possible to accurately predict what the length of each
interconnect in every net will be after detailed routing, probably to within 5 percent.
➢ The global router can give us not just an estimate of the total net length (which was all we
knew at the placement stage), but the resistance and capacitance of each path in each net.
This RC information is used to calculate net delays.
➢ We can back-annotate this net delay information to the synthesis tool for in-place
optimization or to a timing verifier to make sure there are no timing surprises.
➢ Differences in timing predictions at this point arise due to the different ways in which the
placement algorithms estimate the paths and the way the global router actually builds the
paths.
Detailed Routing
➢ The global routing step determines the channels to be used for each interconnect. Using this information the
detailed router decides the exact location and layers for each interconnect. Figure 17.9 (a) shows typical
metal rules. These rules determine the m1 routing pitch ( track pitch , track spacing , or just pitch ). We can
set the m1 pitch to one of three values:
1. via-to-via ( VTV ) pitch (or spacing)
2. via-to-line ( VTL or line-to-via ) pitch
3. line-to-line ( LTL ) pitch
➢ The same choices apply to the m2 and other metal layers if they are present. Via-to-via spacing allows the
router to place vias adjacent to each other. Via-to-line spacing is hard to use in practice because it restricts
the router to non-adjacent vias. Using line-to-line spacing prevents the router from placing avia at all
without using jogs and is rarely used. Via-to-via spacing is the easiest for a router to use and the most
common. Using either via-to-line or via-to-via spacing means that the routing pitch is larger than the
minimum metal pitch.
Hemanth T S Assistant Professor, Dept. of E&CE, AIET, Moodbidri. 20
Application – Specific Integrated Circuits [ASIC]
FIGURE 17.9 The metal routing pitch.
(a) An example of L-based metal design rules for M1
and via1 (M1/M2 via).
(b) Via-to-via pitch for adjacent vias.
(c) Via-to-line (or line-to-via) pitch for nonadjacent
vias.
(d) Line-to-line pitch with no vias.
FIGURE 17.10
(a) A large m1 to m2 via. The black squares represent
the holes (or cuts) that are etched in the insulating
material between the m1 and 2 layers.
(b) A m1 to m2 via (a via1).
(c) A contact from m1 to diffusion or polysilicon
(a contact).
(d) A via1 placed over (or stacked over) a contact.
(e) A m2 to m3 via(a via2)
(f) A via2 stacked over a via1 stacked over a contact.
Notice that the black square in parts bc do not
represent the actual location of the cuts. The black
squares are offset so you can recognize stacked vias
and contacts.
Hemanth T S Assistant Professor, Dept. of E&CE, AIET, Moodbidri. 21
Application – Specific Integrated Circuits [ASIC]
FIGURE 17.12 The different types of connections that can be made to a cell. This cell has connectors at the top and bottom of
the cell (normal for cells intended for use with a two-level metal process) and internal connectors (normal for logic cells
intended for use with a three-level metal process). The interconnect and connections are drawn to scale.
Hemanth T S Assistant Professor, Dept. of E&CE, AIET, Moodbidri. 23
Application – Specific Integrated Circuits [ASIC]
FIGURE 17.13 Terms used in channel routing. (a) A channel with four horizontal tracks. (b) An expanded view of the left-
hand portion of the channel showing (approximately to scale) how the m1 and m2 layers connect to the logic cells on either
side of the channel. (c) The construction of a via1 (m1/m2 via).
Hemanth T S Assistant Professor, Dept. of E&CE, AIET, Moodbidri. 24
Application – Specific Integrated Circuits [ASIC]
FIGURE 17.14 The definitions of local channel density and global channel density. Lines represent the m1
and m2 interconnect in the channel to simplify the drawing.
Hemanth T S Assistant Professor, Dept. of E&CE, AIET, Moodbidri. 26
Application – Specific Integrated Circuits [ASIC]
➢ We can describe a channel-routing problem by specifying two lists of nets: one for the top edge of the channel
and one for the bottom edge. The position of the net number in the list gives the column position. The net
number zero represents a vacant or unused terminal. Figure 17.14 shows a channel with the numbered
terminals to be connected along the top and the bottom of the channel.
➢ We call the number of nets that cross a line drawn vertically anywhere in a channel the local density. We call
the maximum local density of the channel the global density or sometimes just channel density. Figure 17.14
has a channel density of 4. Channel density is an important measure in routing. It tells a router the absolute
fewest number of horizontal interconnects that it needs at the point where the local density is highest.
➢ In two-level routing (all the horizontal interconnects run on one routing layer), the channel density determines
the minimum height of the channel.
➢ The channel capacity is the maximum number of interconnects that a channel can hold. If the channel density
is greater than the channel capacity, that channel definitely cannot be routed (to learn how channel density is
calculated, see Section 17.2.5 ).
Algorithms
➢ We start discussion of routing methods by simplifying the general channel-routing problem. The restricted
channel-routing problem limits each net in a channel to use only one horizontal segment. In other words, the
channel router uses only one trunk for each net. This restriction has the effect of minimizing the number of
connections between the routing layers.
➢ This is equivalent to minimizing the number of vias used by the channel router in a two-layer metal
technology. Minimizing the number of vias is an important objective in routing a channel, but it is not
always practical. Sometimes constraints will force a channel router to use jogs or other methods to complete
the routing
✓ Left-Edge Algorithm
✓ Area-routing Algorithm
Left-Edge Algorithm
➢ The left-edge algorithm (LEA) is the basis for several routing algorithms [Hashimoto and Stevens, 1971]. The LEA
applies to two-layer channel routing, using one layer for the trunks and the other layer for the branches. For example, m1
may be used in the horizontal direction and m2 in the vertical direction.
➢ The LEA proceeds as follows:
1. Sort the nets according to the leftmost edges of the nets’ segment.
2. Assign the first net on the list to the first free track.
3. Assign the next net on the list, which will fit, to the track.
4. Repeat this process from step 3 until no more nets will fit in the current track.
5. Repeat steps 2 and 4 until all nets have been assigned to tracks.
6. Connect the net segments to the top and bottom of the channel.
➢ Figure 17.15 illustrates the LEA. The algorithm works as long as none of the branches touch many ways occur if there are
terminals in the same column belonging to different nets. In this situation, we have to make sure that the trunk that
connects to the top of the channel is placed above the lower trunk. Otherwise, two branches will overlap and short the nets
together. In the next section, we shall examine this situation more closely.
Hemanth T S Assistant Professor, Dept. of E&CE, AIET, Moodbidri. 29
Application – Specific Integrated Circuits [ASIC]
Area-Routing Algorithm
➢ There are many algorithms used for the detailed routing of general-shaped areas(see the paper by Ohtsuki in [Ohtsuki,
1986]). Many of these were originally developed for PCB wiring. The first group we shall cover and the earliest to be used
historically are the grid-expansion or maze-running algorithms. A second group of methods, which are more efficient, are
the line-search algorithms.
➢ Figure 17.18 illustrates the Lee maze-running algorithm. The goal is to find a path from X to Y i.e., from the start (or
source) to the finish (or target), avoiding any obstacles. The algorithm is often called wave propagation because it sends out
waves, which spread out like those created by dropping a stone into a pond.
Multilevel Routing
➢ Using two-layer routing, if the logic cells do not contain any m2, it is possible to complete some routing in m2 using over-
the-cell (OTC) routing.
➢ Sometimes poly is used for short connections in the channel in a two-level metal technology; this is known as 2.5-layer
routing.
➢ Using a third level of metal in three-layer routing, there is a choice of approaches.
1. Reserved-layer routing restricts all the interconnect on each layer to flow in one direction in a given routing area (for
example, in a channel, either parallel or perpendicular to the channel spine).
2. Unreserved-layer routing moves in both horizontal and vertical directions on a given layer. Most routers use reserved
routing.
3. Reserved three-level metal routing offers another choice: Either use m1 and m3 for horizontal routing (parallel to the
channel spine), with m2 for vertical routing (HVH routing) or use VHV routing.
➢ Some processes have more than three levels of metal. Sometimes the upper one or two metal layers have a coarser pitch
than the lower layers and are used in multilevel routing for power and clock lines rather than for signal interconnect.
Special Routing
➢ The routing of nets that require special attention, clock and power nets, for example, is normally done before
detailed routing of signal nets.
➢ The architecture and structure of these nets are performed as part of floorplanning, but the sizing and topology
of these nets are finalised as part of the routing step.
Clock Routing
➢ Gate arrays normally use a clock spine (a regular grid), eliminating the need for special routing (see Section
16.1.6, Clock Planning).
➢ The clock distribution grid is designed at the same time as the gate-array base to ensure a minimum clock
skew and minimum clock latency given power dissipation and clock buffer area limitations.
➢ Cell-based ASICs may use either a clock spine, a clock tree, or a hybrid approach.
➢ Figure 17.21 shows how a clock router may minimize clock skew in a clock spine by making the path lengths,
and thus net delays, to every leaf node equalusing jogs in the interconnect paths if necessary.
➢ More clock routers perform clock-tree synthesis (automatically choosing the depth and structure of the clock
tree) and clock-buffer insertion (equalizing the delay to the leaf nodes by balancing interconnect delays and
buffer delays).
Power Routing
The problems with this approach include placing the ESD and latch-up protection circuits required in the I/O pads
(normally kept widely separated from core logic) adjacent to the logic cells in the core.
Hemanth T S Assistant Professor, Dept. of E&CE, AIET, Moodbidri. 46
Application – Specific Integrated Circuits [ASIC]
Mask Preparation
➢ Final preparation for the ASIC artwork includes the addition of a mask work symbol (M inside a circle),
copyright symbol (C inside a circle), and company logos on each mask layer.
➢ The final output of the design process is normally a magnetic tape written in Caltech Intermediate Format
(CIF, a public domain text format) or GDSII Stream (formerly also called Calma Stream, now Cadence
Stream), which is a proprietary binary format. The tape is processed by the ASIC vendor or foundry (the fab)
before being transferred to the mask shop.
Questions
1. Explain Routing and its types in detail with proper example.
2. Explain the goals and objectives of global routing in detail.
3. Explain the goals and objectives of detailed routing and explain the routing method in an ASIC Physical Design.
4. Describe the following:
i. Global routing
ii. Local routing
[Link] routing
5. Explain global routing between blocks.
6. Describe briefly timing-driven methods in routing.
7. Explain the following:
i. Left edge algorithm
ii. Area-routing algorithm
[Link] area routing algorithm
[Link] of channel density
8. Illustrate the Detail routing to complete the connections between logic cells.
9. With a neat diagram, explain multilevel routing.
10. Discuss CLK routing and Power routing of special routing in detail
11. Explain Circuit extraction with a proper example.
12. Enumerate the Design Rule Check (DRC) with its types
13. Briefly explain circuit extraction and DRC in ASIC Design.
THANK YOU…☺