You are on page 1of 11

Congestion

Trial Route performs quick global and detailed routing for estimating routing-related
Congestion and capacitance values. It also incorporates any changes made during
Placement, such as scan reorder.
You can use Trial Route results to estimate and view routing congestion, and to estimate
parasitic values for optimization and timing analysis.
When used during prototyping, Trial Route creates actual wires, so you can get a good
representation of RC and coupling for timing optimization at an early stage in the flow.
Trial Route also produces a congestion map you can view to get early feedback on whether
the design is routable.
Note: Trial Route does not guarantee DRC-clean routing results. Do not perform signal
integrity analysis on a design that has been routed using Trial Route, because the routes
are only used to estimate parasitic values for timing analysis.
Run Trial Route for the first time to gauge the routability of the design. You can then
Examine the congestion map and congestion distribution report to identify congested
Areas that might cause routing problems later in the design session.

In channel-based routing designs, all top-level routing use channels to route around
Partitions. In a partitioned design in which the partitions have not been committed, you
can use the Trial Route -handlePartition and -handlePartitionComplex parameters to
force the routing into channels, simulating a channel-based design.
Use the -handlePartition parameter to route nets that are only connected within
partitions. Use the -handlePartitionComplex to route nets that belong to more than one
partition, so that the routing does not violate partition boundaries.
When the -handlePartition or -handlePartitionComplex parameter is specified,
Trial Route works in three phases:
Phase 1 Routes the top-level connections
Phase 2 Routes net connections within partitions
Phase 3 Routes net connections between partitions

A top-level partition and four flattened partitions: P1, P2, P3, and P4. P1 reserves the
metal1, metal2, and metal3 layers for partitions, and P2, P3, and P4 reserve layers metal1
through metal5 for partitions.

If you specify -handlePartition or -handlePartitionComplex, Trial Route performs the


following tasks to route the net connections:
1. Trial Route applies all of the metal blockages defined for each partition. The layers
metal1, metal2, and metal3 are blocked for P1, and metal1 through metal5 are
blocked for the other partitions.
2. Trial Route then routes nets connecting only at the top level. No connections to
partitions or cells within the partitions are made.
3. Trial Route blocks all areas outside of the defined partitions on all routing layers. For
P1, Trial Route applies a routing blockage for layers metal4 and metal5.
4. Trial Route routes all nets within P1, P2, P3, and P4 on the available routing layers. This
means that even a cell at the lower-left corner of P2 that connects to a cell at the upper
right corner of P2 is routed within P2, regardless of any congestion.
5. Trial Route removes the routing blockages and routes the net connections between
partitions.
If an I/O at the top level connects to P2:

If you specify -handlePartition, Trial Route uses all metal layers to route through
P1.

If you specify -handlePartitionComplex, Trial Route uses only layers metal4 and
metal5 to route through P1.

Congestion Markers in the Display


You can visually check the Trial Route congestion statistics in the design display
area of the main EDI System window to identify the tight clusters of congestion markers.
Check the design display area to make sure there are no markers grouped closely together.
These usually occur around blocks or between large blocks. The indicators are diamond
shaped and red by default. Zoom into the area to display the vertical and horizontal
congestion overflow values, as shown in the following figure.

Congestion markers contain a vertical or horizontal overflow value to identify the number
of tracks required for that grid, and the actual number of tracks available. For example, in
the above illustration, the vertical overflow is 2/0, which indicates that two additional
tracks are required, and 0 tracks are available.
Congestion marker values are based on an integer number of adjacent gcells that are
grouped together to form a super gcell. Horizontal congestion super gcells are tall,
narrow boxes that typically have a height of four gcells and a width approximately equal
to the height of a vertical congestion super gcell. Vertical congestion super gcells are short,
wide boxes that typically have a height of one gcell and a width approximately equal to
the height of a horizontal congestion super gcell.
Vertical and horizontal overflow values are calculated separately for better accuracy. The
overflow value is the amount by which the track demand exceeds the track supply. The
required track value is calculated by totalling the number of required tracks in the super
gcell.That is, the value is the sum of the number of required tracks in all of the adjacent
gcells that form the super gcell.The available track value is calculated by totalling the
number of available tracks in the super gcell.

Note: Congestion markers can display different congestion information than that
contained in the default congestion distribution report. The information in the congestion
distribution report is based on the congestion of each gcell instead of the super gcells. To
create a congestion report based on the congestion of the super gcells, use the
describeCongestion command.
To change the size of super gcells, define the following variable:
set rdaSuperGcellSize n
The value you specify for n must be greater than or equal to 0 and less than or equal to
10.If you specify a value of 1, a super gcell becomes a regular gcell, and the displayed
Congestion marker information matches the congestion information provided in the report.
If you specify a value of 0, the super gcells become square.

Congestion Marker Color Boxes


By specifying the HCongest and or VCongest colors in the Color panel, you can also add
a color box to the congestion marker that indicates the severity of the overflow level (that
is, the number of overflow tracks in a one-unit area). Usually, a one-unit area contains 10
global cells (gcells) horizontally. If there are 50 vertical tracks available in that area, and
Trial Route requires 51 vertical tracks, the congestion marker color box is blue (by default),
indicating a one-track overflow. If Trial Route requires 52 vertical tracks, the congestion
marker color box is green (by default), indicating a two-track overflow. An example of this
is shown in the following figure.

Congestion Distribution Report


After Trial Route completes, a congestion distribution report is created in the EDI System
log file. The congestion distribution report provides usage and routing overflow percent
values, as well as gcell overflow information (that is, the internal supply and demand for
each gcell). There are two types of congestion distribution reports that can be generated:
a default congestion distribution report; and a detailed congestion distribution report.
Note: The congestion information contained in the congestion distribution report can differ
from the congestion information displayed in congestion markers in the EDI System
window.

Default Congestion Distribution Report


By default, Trial Route generates a congestion distribution report that summarizes
congestion information for the entire chip.

Usage and Routing Overflow


The following example illustrates the section of the congestion distribution report that
summarizes the usage and routing overflow percent values:
Phase 1f route (0:00:02.0 105.9M):
Usage: (24.2%H 35.8%V) = (8.695e+06um 1.314e+07um) = (1734514 486668)
OvInObst: 21 = 21/5777 (0.4% H) + 0/1587 (0.00% V)
Overflow: 192 = 1 (0.0% H) + 191 (0.07% V)
The Usage statement summarizes horizontal and vertical tracks used in gcells. In the
above example, there are 1,734,514 horizontal tracks used in all gcells and 486,668
vertical tracks used in a gcells. Of the available horizontal tracks, 24.2 percent were
used for horizontal routing (that is, wires), and 35.8 percent were used for vertical
routing. The total horizontal wire length used equals 8.65e+06 um, and the total
vertical wire length used equals 1.314e+07 um.
The OvInObst statement summarizes obstructed gcell information. In the example, there
are 5,777 horizontally obstructed gcells (where there are no available tracks). The
approximate number of wires over horizontally obstructed gcells equals 21/5,777.
The Overflow statement summarizes all overflowed gcells. In the example, there is one
horizontally overflowed gcell, and 191 vertically overflowed gcells.

Gcell Overflow
The following example illustrates the section of the congestion distribution report that
summarizes gcell overflow information. A gcell has overflow if its demand exceeds its
supply. Supply is the available routing resource, and demand is the amount of routing
resource assigned to the gcell. Typically, the supply is the number of unobstructed tracks
crossing the gcell, and the demand is the number of wires assigned to it.
Remain
cntH
cntV
-------------------------------------------------------------------------6:
0
0.00%
1
0.00%
-5:
2
0.00%
0
0.00%
-3:
10
0.00%
26
0.00%
-2:
510
0.03%
830
0.05%
-1:
8100
0.47%
17618
1.05%
------------------------------------------------------------------------0:
78504
4.59%
178501
10.63%
1:
102934
6.02%
214588
12.78%
2:
76165
4.46%
185168
11.03%
3:
72832
4.26%
179080
10.67%
4:
81555
4.77%
180443
10.75%
5:
92704
5.42%
158498
9.44%
6:
106167
6.21%
137707
8.20%
The following table defines the columns in the congestion report:

The following line from the example shows that there are 8,100 gcells (.47 percent of the
totalnumber of gcells) where the demand exceeds the supply by one track in the horizontal
direction, and 17,618 gcells (1.05 percent of the total number of gcells) where the demand
exceeds the supply by one track in the vertical direction:
-1:

8100

0.47 %( H) 17618

1.05 %( V)

The following line shows that there are 78,504 gcells where the track supply is equal to
the track demand in the horizontal direction, and 178,501 gcells where the track supply is
equal to the track demand in the vertical direction:
0:

78504

4.59 % (H) 178501

10.63 %(V)

Detailed Congestion Distribution Report


You can create a detailed congestion distribution report that writes out information about
sections of the chip. These sections can be either fixed quadrants defined by the middle
horizontal and vertical lines, or user-defined sections specified by rows and columns.
To create a report for quadrants, specify trialRoute -printSections or
setTrialRouteMode -printSections true. The report formats the information sectionby-section, with each section containing congestion information for each layer in the
section.
The detailed congestion distribution report is divided into six categories of information
foreach section of the chip:
Virtual (global) wire length
Range of tracks in a gcell
Number of gcells with remaining tracks, including blocked gcells
Number of gcells with remaining tracks, excluding blocked gcells
Track usage in gcells
Real wire length
Virtual (global) wire length
This section summarizes the number of tracks used, the estimated wire length, the
percentage of overflow, and the percentage of blocked gcells for each layer. The following
example illustrates this section of the congestion distribution report:

Range of tracks in a gcell


This section summarizes the range of the number of tracks used in a gcell on each layer,
and the average number of tracks used per gcell on the layer. The following example
illustrates this section of the congestion distribution report:

Range
Range
Range
Range

of
of
of
of

number
number
number
number

of
of
of
of

tracks
tracks
tracks
tracks

in
in
in
in

a
a
a
a

Gcell
Gcell
Gcell
Gcell

in
in
in
in

layer
layer
layer
layer

M2:
M3:
M4:
M5:

[5:10],
[1:29],
[1:29],
[3:6],

avg: 3.2
avg: 1.7
avg: 8.5
avg: 5.0

The first line of this example shows that there are between 5 and 10 tracks used in a gcell
on layer metal2, and that the average number of tracks used in a gcell is 3.2.
Number of gcells with remaining tracks, including blocked gcells
This section summarizes the number of gcells, including blocked gcells, with remaining
tracks (or the internal supply and demand for gcells) for each layer. A gcell has overflow
if its demand exceeds its supply. Supply is the available routing resource and demand is
the amount of routing resource assigned to the gcell. Typically, the supply is the number
of unobstructed tracks crossing the gcell, and the demand is the number of wires assigned
to it.
The following example illustrates this section of the congestion distribution report:

The Remain column is the track supply minus the track demand. When this value is a
positive number, it is the number and percentage of gcells where the track supply exceeds
the track demand on each layer. When it is a negative number, it is the number and
percentage of gcells where the track demand exceeds the track supply on each layer.
When it is 0 (zero), it is the number and percentage of gcells where the track demand is
equal to the track supply on each layer.
The following line from the example shows that there are 8,855,290 gcells (65.73 percent
of the total number of gcells) where the track supply is equal to the track demand on layer
metal2, and 8,858,305 gcells (65.76 percent of the total number of gcells) where the track
supply is equal to the track demand on layer metal3.

Remain
M2
M3
M4
------------------------------------------------------------------------------0:
8855290 65.73% 8858305 65.76%
70715 0.52%
The following line from the example shows that there are 91,903 gcells (.68 percent of the
total number of gcells) where the track supply exceeds the track demand on layer metal2,
and 269,941 gcells where the track supply exceeds the track demand on layer metal3.
Remain

M2

M3

M4

--------------------------------------------------------------------------------1:

91903 0.68%

269941 2.00%

124321 0.92%

Number of gcells with remaining tracks, excluding blocked gcells


This section summarizes the number of gcells, excluding blocked gcells, with remaining
tracks for each layer, and follows the same format as the table that reports the number of
gcells with remaining tracks, including blocked gcells. The following example illustrates
this section of the congestion distribution report:

Track usage in gcells


This section summarizes the percentage of tracks used for routing per gcell for each
layer. It also reports the average number of tracks used in a gcell on each layer. The
following example illustrates this section of the congestion distribution report:

The fourth line from this example shows that 70 percent to 80 percent of the tracks in
1.24 percent of the gcells (out of a total of 166753 gcells) on layer metal2 are used.
Real wire length
This section summarizes the total real wire length used and number of vias for each layer
in the section. The following example illustrates this section of the congestion distribution
report:
***Real Wire Length:
Total: 1.396e+08um, total number of vias: 3547270
M1 (V): 9.076e+04um
M2 (H): 1.490e+07um, number of M1/M2 vias: 1560437
M3 (V): 1.652e+07um, number of M2/M3 vias: 1273925
M4 (H): 3.241e+07um, number of M3/M4 vias: 360881
M5 (V): 4.233e+07um, number of M4/M5 vias: 242047
M6 (H): 2.492e+07um, number of M5/M6 vias: 75288
M7 (V): 5.399e+06um, number of M6/M7 vias: 26668
M8 (H): 3.013e+06um, number of M7/M8 vias: 8034

Improving Route Congestion


For a module or submodule that has route congestion, complete one of the following
actions to improve congestion, depending on the type and severity of the violation:
1. Change the block pin orientation.
Route congestion usually occurs around blocks that have their pins facing incorrectly.
You can identify these blocks by clicking on them in the design display area to see where
the flight lines terminate. When the block pins are visible, you can rotate or flip the
block(s) to alleviate the congestion.

2. Add density screens.


You can use density screens to control standard cell placement density in certain areas
where there is high routing congestion. Use the Add Density Screens tool to create a
screen over the highly congested area.
Congestion is more severe if it spans between two blocked areas, as illustrated in the
following figure.

This figure represents a vertically congested area between two blocks that are placed
close to one another. This routing bottleneck is more severe than local congestion.
Assigning a density screen alleviates this congested area.

You might also like