Beruflich Dokumente
Kultur Dokumente
Contents:
● Basic terminologies
● Introduction
● Routing in a Nutshell
● Global Routing
● Congestion map
● Congestion Analysis Table
● Detailed Routing
● Left-Edge Algorithm
● Horizontal Constraints
● Vertical constraints
● Horizontal constraint Graph
● Vertical constraint Graph
● Routing procedure
● Reference
2
Basic terminologies:
● Congestion: If the number of available routing tracks for routing in a
particular area is lesser than the number of required routing tracks, then
that particular area is said to be congested.
3
Basic terminologies:
● Metal Layers: Based on technology node, there are different metal layers
involved for routing. Each metal layer is designated with a name say M1 or
M3 and each metal layer has preferred and non-preferred directions with
well-defined width, pitch, offset and tracks.
4
Basic terminologies:
● NDR (Non-Default Rule): Non-Default Rule is a routing rule applied for a
single net or a group of nets that is not default. Default routing rule have
defined width and spacing for each metal layer and via. Using Non-Default
Rules, one can create an NDR rule with double or triple the width with
double or triple the spacing.
NDRs are used for clock nets and critical nets (high-
frequency nets) in a design to avoid Signal Integrity (SI)
issues such as crosstalk and noise.
5
Basic terminologies:
● Shorts: When two or more wires or vias of different nets in the same metal
layer cross each other, then it is termed as a short. Shorts are the number
one concern after detail routing a block.
6
Introduction :
As ASIC designs are getting more complex and larger (e.g. sea of cells), routing
is becoming more difficult and challenging.
7
Routing in a Nutshell:
8
Global Routing :
The first step of the global routing algorithm is to
identify routing regions or cells (a rectangular area with
terminals on all sides) and calculate their corresponding
routing density.
These routing regions or cells are known as Global
Routing Cells or G cells, as shown in the following
figure.
We provide netlist that describes a list of connections by indicating which pins or pads
should be electrically connected to form a set of nets.
Figure (c) shows a result of detailed routing, which determines the exact route for each
net by searching within the tile-to-tile path. Here, the exact route means a path
specified by the actual geometric layout such as metal wires and vias.
Zoomed view of
previous figure
congestion markers density is high congestion markers density is almost 0 12
Congestion Analysis Table:
The congestion analysis table shows the distribution and severity of congestion in global routing cells
(gcells) on each routing layer.
● The first column (Layer) lists the metal layers that have over-congested g-cells. Tool marks a g-cells
as over congested if the global router has assigned more nets to the g-cell than the g-cell has
available tracks. 13
Congestion Analysis Table:
● The second through fifth columns, labeled OverCon #Gcell, list the number and percentage of g-cells on each
layer that are over-congested.
● The numbers in parentheses after OverCon #Gcell indicate how many additional tracks within the g-cell are
needed to accommodate the global routing assignments. For example, OverCon #Gcell (1 - 2) means that one or
two additional tracks are needed to accommodate all the nets that the global router has assigned the g-cells
listed in the column. As you move from left to right in the table, congestion increases because the difference
between the number of nets assigned to the gcell by the global router and number of available tracks within
the g-cell increases.
● The number of columns in the table is determined by the number of additional tracks needed by the g-cells
with the worst congestion. For example, if the most over-congested g-cells need only four additional tracks,
the table would include columns for 1-2 and 3-4 tracks, but not for 5-6 or more tracks.
● Tool creates only one column for g-cells that need seven or more additional tracks. In the example, all g-cells
that need seven to 12 additional tracks are listed in the column labelled OverCon #Gcell (7 - 12).
● The NanoRoute router displays the maximum number of tracks needed in the last OverCon #Gcell column. In
the example, the maximum number of tracks needed is 12. If some g-cells needed 14 more tracks, the column
would be labelled OverCon #Gcell (7-14). If the maximum number of tracks needed were only eight, the column
would be labelled OverCon #Gcell (7-8).
14
Congestion Analysis Table:
● The last column, %Gcell OverCon, lists the percentage of all gcells on the layer that are
overcongested.In the example, on layer Metal 1, only 0.01% of the gcells are over-congested.
● The last row of the table, Total, lists the total number and percentage of over-congested gcells in
each column. In the example, 1,850 gcells in the design, or 0.13% of all gcells, need three or
four more tracks.
● The last row of the last column displays the overall percentage of over-congested gcells in the
design. In the example, 1.39% of all cells are over-congested.
● Following the table NanoRoute summarizes a few key values. The maximum number of tracks
any Gcell needed, the total over congestion number for all layers, and the worst layers Gcell
congestion rate.
● The worst layer Gcell overcon rate is intended to report the routing congestion so the pin access
layer or the layer below the pin access layer is not reported even if it is higher.
Summary : There is no specific number that determines whether the design is routable. In general,
the more columns, and the more the percentages increase toward the right side of the table, the worse
the congestion. 15
Detailed Routing:
After given global routing paths, detailed routing determines the exact tracks
and vias for nets & perform the actual physical interconnections of ASIC design.
It use both vertical and horizontal tracks for actual routing. Those tracks are
defined in the technology file for all layers that are being used.
The detailed router creates shorts or spacing violations rather than leave
unconnected nets.
You can run detailed routing on the entire design, a specified area of the design,
or on selected nets. In addition, you can run incremental detailed routing on a
database that has already been detail routed.
16
Detailed Routing:
The router runs continuously search and repair routing during detailed routing.
During search and repair, it locates shorts and spacing violations and again route
the affected areas to eliminate as many of the violations as possible. The
primary goal of detailed routing is to complete all of the required interconnect
without leaving shorts or spacing violations.
The router also runs post route optimization as part of detailed routing. During
post route optimization, it runs more rigorous search and repair steps.
17
Detailed Routing:
There are many types of algorithm for detailed routing. We will discuss two most
popular types of detailed routing.
1. Channel routing
2. Full-chip routing
3. Switchbox routing
Channel Routing:
21
Vertical constraints:
● The vertical constraints can be exist between two nets if they have pins in
same column.
● The vertical net coming from either one side need to be stop before
overlapping the other vertical net.
● In the Figure (a) , net A and B do not have a vertical conflict because
without this combination routing can’t be possible.
● In the Figure (b) , net A and B have a vertical conflict because we are
splitting the vertical segment of one net and using an additional third track.
22
Horizontal constraint Graph:
This graphs are used :
For horizontal constraint graph indicate the minimum number of tracks require and the
vertical constraint graph indicates the potential routing conflicts.
We can represent the graph by two type of representation. One is zone and other one is
graphical representation.
1. Zone representation: In a channel, all horizontal wire segments must span at least
the leftmost and rightmost pins of their respective nets. Let S(x) denote the set of
nets that pass through column x . In other words, S(x) contains all nets that either
● Are connected to a pin in column x or
● Have pin connections to both the left and right of column x. Since horizontal
segments cannot overlap, each net in S(x) must be assigned to a different track
in column x.
23
Horizontal constraint Graph:
This figure represents a
channel routing problem and
its corresponding zone
representation (green color
box).
Maximum column
24
Horizontal constraint Graph:
2. Graphical representation: Figure represents horizontal constraint graph and
the lower bound on the number of tracks is five.
25
Vertical constraint Graph:
A directed edge e(i,j) connects nodes i and j if net i must be located above net j.
0 B D E B F G 0 D 0 0
B D F
C E A
A C E C E A F H 0 H G
However, an edge that can be derived by transitivity is not included. In above figure edge (B,C) is not
included because it can be derived from edges (B,E) and (E,C).
G
B D
E F
The Vertical constraint Graph for channel routing
H C A 26
Routing procedure:
● The algorithm is applied on We will take both left edge order and VCG and
together their constraints will be assigned on the tracks and minimizes the
number of tracks required used this algorithm and graph will check if two
nets can be assigned the same track.
● Each net will use one horizontal track
Steps:
1. Sort the nets according to the x coordinate of the left most terminal of the
net.Hence the name of this algorithm is left edge
2. Then we route that nets that order by assigning the first possible track to
each net while honor VCG simultaneously.
27
0 A D E A F G 0 D I J J
Example :
Solve the routing problem.
B C E C E B F H I H G I
1 2 3 4 5 6 7 8 9 10 11 12
0 A D E A F G 0 D I J J S{1} = {B}
B S{2} = {A,B,C}
C S{3} = {A,B,C,D,E} Highest
E S{4} = {A,B,C,D,E} number 5
F S{5} = {A,B,D,E}
G S{6} = {B,F,D}
H S{7} = {F,G,D}
I S{8} = {H,G,D}
D S{9} = {H,I,G,D}
S{10} = {H,I,G}
A J S{11} = {G,I,J}
S{12} = {I,J}
28
B C E C E B F H I H G I
Procedure : A D
J
E i G
2nd, after doing VCG find the order.
1 2 3 4 5 6 7 8 9 10 11 12
0 A D E A F G 0 D I J J
B
Track 1
Track 2
Track 3
Track 4
Track 5
B C E C E B F H I H G I
29
Procedure:
The left-edge algorithm works as follows. Start with the topmost track . For all
unassigned nets, generate the VCG and the zone representation . Then, in
left-to-right order, for each unassigned net n, assign it to the current track if
● it does not cause a conflict with any nets that have been previously
assigned. Once n has been assigned, remove it from nets_unassigned. After
all unassigned nets have been considered, increment the track index.
Continue this process until all nets have been assigned to routing tracks.
30
Reference:
[1] VLSI Physical Design : From Graph Partitioning to Timing Closure by Andrew
B.Kahng, Jens Lienig , Igor L. Markov , Jin Hu
31