You are on page 1of 12

Application Note

Power Electromigration Analysis in RedHawk

Electromigration (EM) is the movement of material that results from the transfer of momentum
between electrons and metal atoms under an applied electric field. This momentum transfer
causes the metal atoms to be displaced from their original positions. This effect increases with
increasing current density in a wire, and at higher temperatures the momentum transfer becomes
more severe. Thus in sub-100nm designs, with higher device currents, narrower wires, and
increasing on-die temperatures, the reliability of interconnects and their possible degradation from
EM is a serious concern.

The transfer of metal ions over time from EM can lead to either narrowing or hillocks (bumps) in
the wires. Narrowing of the wire can result in degradation of performance, or in some extreme
cases can result in the complete opening of the conduction path. Widening and bumps in the wire
can result in shorts to neighboring wires, especially if they are routed at the minimum pitch in the
newer technologies.

Foundries typically specify the maximum amount of current that can flow through a wire under
different conditions. These EM limits depend on several design parameters, such as wire
topologies, widths, and metal densities. EM degradation and EM limits depend on the
temperature at which interconnects operate, as well as on the material properties of the wires and
vias, on the direction of current flow in the wire, and the distance of the wire segment from the
driver(s).

One common EM check employed is to measure the average or DC current density flowing
through a wire and compare it against the foundry-specified limit. The impact of average or DC
current in the wires in a design is typically quantified using Black’s equation, which is used to
measure and compare the estimated Mean-Time-To-Failure for interconnects with different
parameters, such as the average current density, temperature, and activation energy. Another
common check employed is to measure the peak and RMS current flowing through interconnects
and check them against foundry-specified targets. This check is to ensure that metal failures do
not occur because of Joule or self-heating in the wires.

RedHawk™ provides a single-platform approach in which to analyze power line and signal
interconnect EM in a design. Power EM analysis is performed as part of static and/or dynamic
analysis. Signal EM analysis, which is performed in a separate run, checks for average (uni-
directional or bi-directional), RMS, and peak current densities in all signal wires and vias in a
design in a run of a few hours, even for multi-million net designs, and provides both text-based
and graphical reports for debug, analysis and feedback for fixing.

Apache Design Solutions, Inc. © March 2007


Power Electromigration Analysis in RedHawk Page 2 of 12

Power EM analysis methodology in RedHawk.

RedHawk™ performs power EM analysis as a part of static or dynamic voltage drop analysis.
There is no separate command required for performing EM analysis. It is performed by default if
you have EM limits specified in the technology file. In electromigration analysis, RedHawk checks
the actual current density value for any METAL or VIA segment against the limit specified in the
technology file. There are different ways for defining the EM limit in the tech file.

The simplest EM limit is specified per layer, which defines the allowed current density value for a
specific METAL or VIA layer. For a metal layer, the current density limit is defined as the current
flowing per unit width. It can be specified in the tech file, as in the following example:
metal METAL1
{
Thickness 1.45
Resistance 0.2343
EM 2.7
above PASS4
}

In the above example the current density limit for layer METAL1 is defined as 2.7. The unit for
current density comes from the units for length and current in the ‘Units’ section of the technology
file, as in the following example:
units {
capacitance 1p
resistance 1
length 1u
current 1m
voltage 1
time 1n
frequency 1me
}
For VIA layers, the EM limit is defined by layer on a per cut basis: the allowed current density limit
per cut of the via or via array, as in the following example:
via VIA78
{
Width { 3 }
Resistance 0.041
T 25
Tnom 110
Coeff_RT1 0.00337
Coeff_RT2 -7.91e-7
EM 7
UpperLayer METAL8
LowerLayer METAL7
}

There are more advanced methods for specifying the EM limits in the tech file, which are
described in the following section.

Apache Design Solutions, Inc.


Power Electromigration Analysis in RedHawk Page 3 of 12

EM_ADJUST: When you specify this keyword in the tech file, RedHawk subtracts the
EM_ADJUST value from the measured wire width to calculate the effective width. This effective
width is used for computing the current density and metal EM value, as shown in the following
example:
METAL4 {
EM 1.72
EM_ADJUST 0.02

In this case, RedHawk calculates the wire width for any METAL4 segment as (Measured width –
0.02). The modified wire width is then used to calculate an adjusted current density.

WIDTH_BASED_EM: In some technologies, the EM limit for a metal layer is specified as a


function of wire width. The tech file keyword WIDTH_BASED_EM can be used for specifying the
EM limits for different widths separately, as in the following example:
METAL4 {
EM 1.887
WIDTH_BASED_EM {
WIDTH { 0.2 0.53 1.0 }
EM { 1.8 1.87 2.3 }
}

In the above example, RedHawk uses an EM limit of 1.8 for metal segments with widths less than
or equal to 0.2. For widths between 0.20 and 0.53, RedHawk uses an EM limit of 1.87.

TOPOLOGY_BASED_EM: This technology file keyword can be used for specifying EM limits for
vias based on the width of touching metals, current direction and number of via cuts. The syntax
for specifying this parameter is as follows:

via <via_layer_name> {
Resistance <value of resistance>
TOPOLOGY_BASED_EM {
downflow {
metal_width {w1 w2 w3 ...}
via_number {n1 n2 ...}
em { { emdw1n1 emdw2n1 emdw3n1 ...}
{ emdw1n2 emdw2n2 emdw3n2 ...}
...
}
}
upflow {
metal_width {w1 w2 w3 ...}
via_number {n1 n2 ...}
em { { emuw1n1 emuw2n1 emuw3n1 ...}
{ emuw1n2 emuw2n2 emuw3n2 ...}
...
}
}
}
}

Apache Design Solutions, Inc.


Power Electromigration Analysis in RedHawk Page 4 of 12

where ‘downflow’ describes the current direction from upper layer down to lower layer; ‘upflow’
describes the current direction from the lower layer to the upper layer. If the current direction is
downward, use the lower metal EM limit; otherwise use the upper layer EM limit; ‘via_number’ is
the number of via cuts for a via. In the 2D EM value table, columns represent metal_widths, rows
represent via_number. Linear interpolation/extrapolation is performed on via_number only.

BLECH_JLC: This keyword is used for specifying the critical Blech length filtering value. Blech
length filtering ignores potential EM violations for circuit segments that have a Blech length less
than the critical BLECH_JLC product value specified in the tech file. When used along with the
enabling GSR keyword ‘ENABLE_BLECH 1’, RedHawk ignores potential EM violations on all
wires for which the computed Blech product is less than the BLECH_JLC limit specified in the
tech file. The Blech length value for all subcircuit lengths is calculated using the following
equation:

Blech_product = J * L

where J = (current per unit width)/(metal thickness), and L = sum of all lengths of connected and
active segments in each group of wires on a layer. The following is an example showing the
usage of this keyword in the tech file:

METAL4 {
EM 2.0
BLECH_JLC 0.02
...
}

EMV_VS_AREA: This keyword is used for defining via size-dependent EM rules for vias. Using
this keyword, you can define different EM limits for the same VIA layer depending on its area.
Following is the format for specifying area-based EM limits for vias:

EMV_VS_AREA {
{area1, em1} {area2, em2}
}
where ‘area*’ and ‘em*’ are via areas and the corresponding EM limit values. If the area of any via
is not in the table, interpolation is used, without extrapolation.

EM_TEMP_RATING: You can specify an EM temperature derating factor using this tech file
keyword. When you specify the analysis temperature using the GSR keyword TEMPERATURE,
RedHawk scales the EM limit values in the tech file with the derating factors specified in
EM_TEMP_RATING. Following is an example of using this keyword:
EM_TEMPERATURE_RATING {
{ 105 1.50 }
{ 115 0.80 }

}

Apache Design Solutions, Inc.


Power Electromigration Analysis in RedHawk Page 5 of 12

TNOM_EM: This keyword is used for specifying the nominal temperature at which the tech file
values are characterized.

Tech file creation with the rhtech utility

If you are creating the tech file using the Apache utility ‘rhtech’, you can use the option ‘–e
<EM_FILE>’ to populate the tech file with two of the EM-related keywords. Only the EM and
EM_ADJUST keywords can be used inside this rule file; you should include the other EM-related
keywords manually in the tech file. The following is the syntax for using the ‘rhtech’ utility:
rhtech -i <input_file> [-o <output_file>] [-m <layer_mapping_file>]
[-e <EM_file>] [-t <temp_file>]

Following is an example of an EM rule file for passing EM tech file keywords:


## <layer_in_itf/nxtgrd> <EM_limit- mA/um for metal- mA for vias> <EM adjust>
metal5 0.9308 0.02
metal4 0.9308 0.02
metal3 0.9308 0.02
metal2 0.9308 0.02
metal1 0.716 0.02
via4 0.06766
via3 0.06766
via2 0.06766
via1 0.0676

How do I analyze EM violations in RedHawk?

RedHawk does EM analysis as a part of static and dynamic simulation. Once the simulation is
performed you can click on the EM button in the Results panel to see the EM violations map,
such as shown below:

Apache Design Solutions, Inc.


Power Electromigration Analysis in RedHawk Page 6 of 12

The above map displays the EM violations in different ranges in different colors. You can change
the color legend of this map using the color filter button in RedHawk.

Here, using the above configuration, RedHawk highlights all metal and via segments with current
density exceeding 100% (default) using Red color. You can configure this legend to view the
violations in a specific range using the desired color.

EM violations are also listed in the report: adsRpt/Static/<design_name>.em.worst.


This file lists the details of all METALS and VIA segments with current density exceeding the
default EM limit of 100% (in decreasing order). You can change this default limit setting using the
GSR keyword, EM_REPORT_PERCENTAGE (default: 100). By default, RedHawk dumps only
top 1000 violations. You can increase this number using the GSR keyword
EM_REPORT_LINE_NUMBER. If you want to dump the EM violations in a specific range, you
can use the GSR keyword EM_DUMP_PERCENTAGE. For eg. If you specify
“EM_DUMP_PERCENTAGE 50 60” in GSR, it dumps all violations having an EM Ratio between
50% and 60% in a file adsRpt/Static/<design_name>.em. This file is not in sorted order and it is
not generated unless you specify the above keyword in GSR.

In the EM report file, RedHawk reports all METAL EM violations in the following format.

#Layer #End-to-end_coordinates #EM_Ratio #Net #Width


METAL4 (4905.670,3398.849 4905.670,3400.562) 469.016% VDD 25.000

Apache Design Solutions, Inc.


Power Electromigration Analysis in RedHawk Page 7 of 12

This report is also available using the GUI menu command Results -> List of Worst EM.

You can zoom in to any violation using the Go To Location button. Then click on the geometry to
see more details on the violation in the message window. This information can be used for
calculating the EM ratio of this segment. Actual current density is calculated by dividing the
current by effective wire width. If you specify the EM_ADJUST parameter in the tech file,
RedHawk subtracts this value from the actual width to get the effective width.

Apache Design Solutions, Inc.


Power Electromigration Analysis in RedHawk Page 8 of 12

In the example above, EM_ADJUST for METAL4 is defined as 0.016. So RedHawk calculates the
actual current density as follows:
Actual Current density = (Current / Eff Width) = 219.664 / ( 25 – 0.016) = 8.7922 mA/u.
And the EM limit for METAL4 in the tech file is defined as 1.874 mA/u.
RedHawk calculates the EM_Ratio using the following equation.
EM_Ratio = 100 * (Actual density of current) / (EM limit in tech file).
Therefore
EM_Ratio = 100 * 8.7922 / 1.874 = 469.2

For VIAs, RedHawk reports the EM violations in the following format:


#Via_name #x-y_coordinates #EM_Ratio #net
via via3Array_87 (3154.820,893.390) 172.29% GND

EM_ratio of a VIA layer is calculated as follows:


EM_Ratio = (Current through the VIA) / (EM limit)

Apache Design Solutions, Inc.


Power Electromigration Analysis in RedHawk Page 9 of 12

When you click on a via in the GUI, the RedHawk message window displays additional
information that helps you in analyzing the violation, as shown following:

In the example above, RedHawk reports both EM percentage and the EM limit value used in the
calculation. The EM limit displayed is the limit calculated for the specific VIA array. As described
earlier, inside the tech file you define Via EM limits on a per-cut basis. RedHawk calculates the
EM limit for every via array in the design, considering the number of via cuts in the via array and
total area of the cuts included. For example, if the via array has 10 cuts, the EM limit reported is
(Tech file EM limit * 10).

Understanding current directions for debugging EM issues:

For accurately analyzing EM violations in a design, you need to understand the actual current
directions. After the EM analysis, when you click on any METAL or VIA geometry in the RedHawk,
the assumed current direction is indicated by a symbol in the message window, along with the
current value, as shown below:

-------------------------------------------

The symbol conventions followed for displaying the current direction are:
> : For metals, current flow from left to right.
< : For metals, current flow from right to left.
^ : For metals, current flow from bottom to top.
V : For metals, current flow from top to bottom
Up : For vias, current flow from lower metal layer to upper metal layer
Down : For vias, current flow from upper metal layer to lower metal layer.

Apache Design Solutions, Inc.


Power Electromigration Analysis in RedHawk Page 10 of 12

Using the current direction, you can identify the actual path for the current flow. You can also look
at the Current map (CUR button in View Results GUI panel) to see any discrepancy in the
current flow.

Electromigration in Dynamic analysis:

Electromigration dynamic analysis is very similar to static EM analysis. In static analysis, the EM
analysis is based on the average current density. In dynamic analysis, RedHawk can perform
EM analysis based on either peak current density (the default) or on RMS current density. The
EM tech file values for peak analysis can be separately passed to RedHawk using the GSR
keyword EM_TECH_PEAK. If you do not provide a separate tech file for peak EM analysis,
RedHawk uses the EM limits specified in the regular tech file for peak current density analysis.
Similarly, for RMS EM analysis, you need to add the keyword ‘EM_MODE RMS’ in the GSR. Also,
you can pass a separate tech file specifying the RMS EM limits using the keyword
EM_TECH_RMS in the GSR. In this tech file, you need to define only the EM-related parameters
for different metals and vias. RedHawk takes the other constructs from the default tech file
passed through the TECH_FILE keyword in the GSR.

Apache Design Solutions, Inc.


Power Electromigration Analysis in RedHawk Page 11 of 12

Dynamic EM analysis generates the report with the same filename (<design>.em.worst) as in
static analysis, located in the adsRpt/Dynamic directory. The report format is also the same.

How do I Fix EM Violations?

EM violations are mostly caused by weak power grid connections feeding current to high power-
consuming regions or blocks in the design. In this scenario, we can increase the metal width to
reduce the current density. Similarly, for a via EM violation, you can increase the number of vias
to fix potential EM issues. You also can provide additional straps for the current supply, thereby
reducing the current-per-strap value. Layer switching is another option; typically, upper metal
layers in the technology have higher current driving capability (due to higher thickness). So you
can use these layers for designing the major power grids (grids with higher current flow) in the
design.

You can use the what-if and Fix and Optimize (FAO) capabilities in RedHawk to modify the grid
for fixing EM violations. Using this method you can edit any existing strap or add any new straps
or vias. RedHawk has incremental extraction capability, which helps you in analyzing the design
quickly after making any modification.

The following example helps in understanding how you can resolve EM issues quickly using the
“What-if” capability in RedHawk. An example EM violation is caused by an insufficient number of
vias between the power straps. More vias are added in this area using the ‘Add Via’ option in
RedHawk to fix the problem, as shown below:

Apache Design Solutions, Inc.


Power Electromigration Analysis in RedHawk Page 12 of 12

Conclusion

This application note covers the basics of power electromigration analysis in RedHawk, presents
the details of various EM reports generated by RedHawk, and describes various methods for
debugging and fixing EM violations.

RedHawk can also analyze electromigration effects on signal routes. You can find more details
on RedHawk signal EM analysis in the application note titled “Signal EM Analysis in RedHawk”.

Apache Design Solutions, Inc.

You might also like