8
EM Rules Specification
EM Rule File Requirements
Before running EMIR analysis in Voltus-Fi-L, you need to specify the EM reliability rules.
The EM reliability rules can be specified in any of these files: the QRC technology file (qrcTechFile), the ICT file, or the EM data file (emDataFile).
The ICT file contains the process information for the design and information about the EM rules. This is a text-based file that can be edited using any text editor.
You can either specify the ICT file directly as an input for EM analysis, or you can use the information in the ICT file to update the qrcTechFile. You can view a sample
The EM reliability rules that can be specified in the qrcTechFile and the emDataFile are detailed below. The following topics are covered:
EM Rules in qrcTechFile
This section provides details of the Current Density (jmax) keywords that can be specified in the qrcTechFile and the rules for defining EM parameters. It covers the following topics:
- Parameters for Limit-Based Analysis
- Current Density (JMAX) Keywords
- Rules for Defining EM Parameters
- Rules for Specifying Via Area
- Rules for Specifying EM Analysis Type for Power and Ground Nets
- EM Rule Selection Priority
Parameters for Limit-Based Analysis
The following parameters can be specified in the qrcTechFile:
Table 8-1 Limit-Based Analysis Parameters
Current Density (JMAX) Keywords
The table below lists the Current Density keywords that are supported in Voltus-Fi-L.
Table 8-2 Current Density Keywords
Where star ‘*’ implies that ‘_w’ and ‘_n’ rules are also supported.
Rules for Defining EM Parameters
An example of the EM rule for defining the em_jmax_dc_avg parameter is provided below:
[em_jmax_dc_avg <value> | <value_1> <area_1/width_1> [...] | EQU <fn(E)>]
[jmax_factor <temp1> <scale1> [<temp2> <scale2> ...]]
[jmax_life <life1> <scale1> [<life2> <scale2>.......]]
[current_direction up | down | both]
[conditions]
[single]
[power_rail/power_grid ]
[priority==<priority no.>]
[device==”<device model names>”]
[sub_conductor=="<subconductor names>"]
[color=="<list of color no.>"]
[mask==<mask no.>]
via_range construct is not supported in Voltus-Fi-L. If it is specified in the EM rule, it will be ignored by the software.
[via_range <value>]
All other EM parameters are defined with the same structure but apply to different characteristics of the em_model (peak current versus average for instance). The following rules apply to all the em_model parameters:
-
Equations in EM Model
An EOL or one of the qualifiers (jmax_factor,current_direction,orsingle) marks the end of an equation specifying the Current Density limit. If the equation resolves into two separate equations, then this will result in an error.
For EQU, the following operators (case-insensitive) are supported: Spaces are permitted to make an equation more readable.
Variables within equations (such asdeltaT, wandl) will be populated by the analysis tool at run-time. Use theem_variablesparameter in the process definition to globally declare variables that are used within the variousem_models.
The equation definition ends when reaching the end of line (EOL) or another keyword (jmax_factor, current_direction, orsingle). -
Order Dependency
The actual Current Density limit (value, piece-wise linear or PWL pairs, or equation) should follow immediately after the Current Density keyword (em_jmax_dc_avg). Any of the qualifiers (jmax_factor,current_direction, orsingle) will come after that. The order of the qualifiers is not important. -
Units of Values
The unit should be specified in accordance with the setting defined by theem_conductor_unit,em_via_unit, andem_via_area_unitparameters defined in the process definition. Units are specified as: -
JMAX Factor
jmax_factor <temp1> <scale1> [<temp2> <scale2> ...]
jmax_factoris the optional scaling factor to use at different temperatures compared to the reference temperature (defined byem_trefin the process definition). The temperature forjmax_factorshould be specified in degrees Celsius.
Scaling factor is a positive integer:>1 to scale up, <1 to scale down, or 1 for no scale effect.
If the specified temperature,T, falls between the defined minimum and maximum temperatures, the software will calculate a new scale factor (RT) using the formula,TTF=A*J^(-n)*exp(Ea/kT).
For example:RT = RT1*exp((Ea/kT)*(1/T-1/T1))
whereEa/kT=(T1*T2/(T1-T2))*ln(RT2/RT1)
-
Format of the Conditions
Condition =[L/W/Lu/Wu/Lb/Wb/Lv2v/Td/r/a/N < | <= | > | >= | == | != <value in microns/micro seconds>] | [Itolerance < | <= | > | >= | == | != <value in percentage>]
Conditions =[condition]*
TheLparameter specifies the length-based jmax values in microns.
TheWparameter specifies the width-based jmax values in microns.
LandWare applicable for both metals and vias.
Lu, Lb, Wu,andWbare applicable for vias only.
Lv2vandItoleranceare applicable only for thepower_railrule.
Where,
L= lengthW= WidthLu= Upper metal lengthLb= Bottom metal lengthWu= Upper metal widthWb= Lower metal widthLv2v= Distance between terminal viasItolerance= Difference in the current values of terminal vias. For example, if a difference of up to 5 percent is acceptable, then specify 'Itolerance <= 0.05'.Td= Time duration in micro second or total ‘On Time” periodr= Duty ratioa= Area of the single cut in the via or in the via arrayN= Number of vias in the via array
Voltus-Fi-L supports metal length/width rules above and below vias, where, the dimensions to be checked for the rules are different for the metal above and the metal below. In this case,Lu/Wurefers to dimensions of the metal above the via andLb/Wbrefers to dimensions of the metal below the via. -
Single
The keyword,singlecan be specified to differentiate between a single square cut via and square viaarray. The following example shows how to use thesinglekeyword:em_jmax_dc_avg PWL 0.022 0.01 jmax_factor 105 1.1 110 1.0 115
0.9 120 0.8 125 0.7 130 0.6 140 0.5 150 0.4 current_direction up
Lb > 4 Wb >= 0.05 current_direction up single
-
JMAX Life
The keyword,jmax_lifeprovides the ability to set the scaling factor that applies to the Current Density limits for different lifetimes. The syntax is as follows:jmax_life <life1> <scale1> [<life2> <scale2>.......]
-
Current Direction
current_direction [up | down | both]can be specified for via current direction. The syntax ofcurrent_directionis:-
up- means the direction of the current is from bottom to top and specifies to use the length and width of the metal belowLb/Wbfor the VIA Jmax factor -
down- means the direction of the current is from top to bottom and specifies to use the length and width of the metal above Lu/Wu for VIA Jmax factor -
both- This rule is only applicable when the direction of the current is uncertain. This rule is unlikely to be applied since the software calculates the current direction
-
-
Power Rail/Power Grid
The keywordpower_railorpower_gridcan be specified to enable the particular EM rule for power-rail analysis. When power-rail analysis is enabled, an EM rule with thepower_railorpower_gridkeyword will have a higher priority than any other rule.em_jmax_dc_avg PWL 0.022 0.01 jmax_factor 105 1.1 110 1.0 115
0.9 120 0.8 125 0.7 130 0.6 140 0.5 150 0.4
Lb > 4 Wb >= 0.05 current_direction up
power_rail Lv2v <= 5 Itolerance <= 0.05
-
ApplyR
The keywordapplyRcan be used to modify the threshold value of ratio “r” in AC-Peak analysis. The default value of this parameter is0.05. Modifying this parameter is useful in scenarios where the value of “r” is very small. A small “r” value results in an unreasonable increase in theIpeak_aclimit. You can avoid such scenarios by resetting the value of “r” in the ICT file. For example:em_jmax_ac_peak EQU 4.0 r < 0.01 applyR 0.01
-
Priority
Specifies the priority of a rule. It is an integer number. Currently the only value that is supported is1. The syntax is as follows:priority==<integer no.>
-
Device
This keyword is used to specify different EM rules for device resistors, which are subsets of other layers. The syntax is as follows:
For example, the following keyword specifies that the particular EM rule is only applicable to device with the model names, “device=="device model names"devRA devRB”.device=="devRA devRB" -
Subconductor
This keyword is used to specify different EM rules for subconductors, which are subsets of poly or other layers. The syntax is as follows:
sub_conductor=="subconductor names"
For example, the following keyword specifies that the particular EM rule is only applicable to subconductor layers,pployandgpoly.
sub_conductor=="ppoly gpoly" -
bridge_via
This keyword is used to specify that the particular EM rule will apply only to bridge vias. -
Color
This keyword is used to specify that the particular EM rule is only applicable to the resistor with the specified color number.
For example,
color==”2 4 5”specifies that the particular EM rule is only applicable to the resistor with property,$M=2,$M=4, or$M=6. -
Masks
This keyword is used to specify that the particular EM rule is only applicable to the resistor with the specified mask number.
For example,
mask==2specifies that the particular EM rule is only applicable to the resistor with property,$M=2.
Rules for Specifying Via Area
You can specify PWL in either one of the following ways:
-
Provide PWL for a specific area:
For example,em_jmax_* PWL Value_1 area_1 … Value_N areaNem_jmax_* PWL 1.3 2.0 1.7 3.0
-
Provide PWL for a specified area range:
em_jmax_* EQU <equation with 'a'> conditions
For example,em_jmax_* EQU (1.3 * a)/2.0 a>=0.0 a<2.5
em_jmax_* EQU (1.7 * a)/3.0 a>=2.5 N>=3
em_jmax_* EQU (1.9 * a)/3.0 a>=2.5 N<3
Rules for Specifying EM Analysis Type for Power and Ground Nets
Set the variable, , to true for specifying different rules for EM analysis of power and signal nets. You can set this variable in the following ways:
-
setenvVOLTUSFI_SPLIT_ACDC_RULEStrue -
set_variable splitACDCRules true
When this variable is specified using theset_variablecommand, it takes priority over thesetenvvariable. -
Set the variable, splitACDCRules to
truein the Variables form. You can open this form from the EM tab of the IR/EM Results form.
The table below shows the rules for power and signal nets for both scenarios, when the variable is set and when it is not set.
Table 8-3 Rules for Power and Signal Nets
| splitACDCRules false | splitACDCRules true | |
|---|---|---|
| Power and Signal Nets | Power Nets | Signal Nets |
EM Rule Selection Priority
This section details the order of priority in which the EM rules are applied by Voltus-Fi-L based on the specified keywords. The order of priority of keywords in descending order is provided below:
- device --> highest priority
- sub_conductor
- bridge_via
- priority
- power_grid/power_rail
- color
- mask
- current_direction
- Conditions
- Area matching in case of PWL
- Base rule
- Optimistic/pessimistic rules --> lowest priority
-
device
When a device is specified in the EM rule file, the software first looks for thedevicekeyword and applies the EM rules to the specified device.
For example, for a device with model name,devRA, if the following rules are specified in the ICT file:1. em_jmax* … device==“devRA”
2. em_jmax* … device==“devRB”
3. em_jmax* …
Then the software follows the order of priority provided below: -
sub_conductor
When a sub conductor is specified in the EM rule file, the software first looks for thesub_conductorkeyword and applies the EM rules to the specified sub conductor.
For example, for a resistor on layer,ppoly, if the following rules are specified in the ICT file:1. em_jmax* … sub_conductor==“ppoly”
2. em_jmax* … sub_conductor==“gpoly”
3. em_jmax* …
Then the software follows the order of priority provided below: -
bridge_via
When abridge_viais specified in the EM rule file, the software first looks for thebridge_viakeyword and applies the EM rules havingbridge_viakeyword for the bridge via. In case, the via is not bridge via, rules havingbridge_viakeyword will be ignored.
For example, for a bridge via, if the following rules are specified in the ICT file:1. em_jmax* … bridge_via
2. em_jmax* …
Then the software follows the order of priority provided below:
In case, the via is not bridge via, then the software will match rule 2. -
priority
When a priority is specified in the EM rule file, in the following manner:1. em_jmax* … priority==1
2. em_jmax* …
Then the software follows the order of priority provided below: -
power_rail/power_grid
When thepower_rail/power_gridkeyword is specified in the EM rule file, in the following manner:1. em_jmax* … power_grid
2. em_jmax* …
Then the software follows the order of priority provided below: -
color
When thecolorkeyword is specified in the EM rule file, in the following manner:1. em_jmax* … color==”1 3 5”
2. em_jmax* …
For example, if a resistor has color number 5, specified using$M=5, then the software follows the order of priority provided below: -
mask
When themaskkeyword is specified in the EM rule file, in the following manner:1. em_jmax* … mask==2
2. em_jmax* …
For example, if a resistor has mask number 2, specified using$M=2, then the software follows the order of priority provided below: -
current_direction
When thecurrent_directionkeyword is specified in the EM rule file, in the following manner:1. em_jmax* … current_direction up
2. em_jmax* … current_direction down
3. em_jmax* …
Then, for a resistor withcurrent_direction up, the software follows the order of priority provided below: -
Conditions
When conditions are specified in the EM rule file, in the following manner:1. em_jmax* … L <=5
2. em_jmax … L > 5
3. em_jmax* …
Then the software follows the order of priority provided below: -
Area Matching from the PWL
When the PWL for specific via areas are specified in the EM rule file, in the following manner:1. em_jmax* … PWL AREA_1 VAL_1 AREA_2 VAL_2 L <=5
2. em_jmax … PWL AREA_3 VAL_3 AREA_4 VAL_4 L <=5
Then the software follows the order of priority provided below: -
Base Rule Selection
When the PWL for specific via area is specified in the EM rule file, without any conditions in the following manner:em_jmax* … PWL AREA_1 VAL_1 AREA_2 VAL_2
Then the software follows the order of priority provided below: -
Optimistic/Pessimistic Rule Selection
When multiple rules are selected after all conditions match, the software selects the optimistic/pessimistic value based on whether the variable,optimisticEMRuleSelection, is set totrueorfalse.
By default, the software selects the pessimistic value.
For example, when the following rule set is provided:1. em_jmax* EQU 1.5 …
2. em_jmax* EQU 3.5 …
3. em_jmax* EQU 2.5 …
- Rule 1 is selected by default because it is more pessimistic as compared to rules 2 and 3
-
When the variable,
optimisticEMRuleSelectionis set to,true, then rule 2 is selected because it is more optimistic as compared to the other rules - Rule 2 is skipped because it is neither the most pessimistic nor the most optimistic
Example
Consider the two scenarios provided below for EM rule selection.
The given rule set is as follows:
1. em_jmax*… current_direction up L>=5
2. em_jmax*… current_direction up L<5
3. em_jmax*… current_direction down L>=5
4. em_jmax*… L<5
Case 1: EM rule selection for a resistor with current direction “up” and with L==3 will be as follows:
-
The tool will select rules 1 and 2 because they match the current direction “
up” -
Of the two selected rules, the tool will discard rule 1 because of the non-matching condition,
L>=5and it will select rule 2 because of the condition,L==3, which matches the conditionL<5
The final rule selection in Case 1 will be rule 2.
Case 2: EM rule selection for a resistor with current direction “down” and L==2 will be as follows:
-
The tool will first select rule 3 as it matches the current direction “
down” -
The tool will then discard the selected rule 3 because of the non-matching condition,
L>=5 -
The tool will then select rule 4 from the remaining rules, as rule 4 does not have any current direction condition but it matches the condition,
L<5
The final rule selection in Case 2 will be rule 4.
EM Rules in EM Data File
An EM data file specifies the technology information, such as Current Density limits, and provides a mapping between the layers for highlighting.
Single line comments can be added by beginning the line with a semicolon (‘;’). For example:
; This is a comment line
For a sample EM Data file, see
EM Rules Specifications Supported in EmData File
The EM Rule specifications supported in Voltus-Fi-L are listed below:
-
currentDensityMPV: Specifies the Current Density of via in milliamps per via instead of the standard milliamps per micron. -
deltaT: Specifies the maximum rise in temperature in degree Celsius, caused due to Joule heating. It must be a positive value. If you do not specify the rise in temperature, Voltus-Fi-L considers a default temperature of 5 degrees Celsius. This is an ideal condition where the design must be EM free.deltaTcan be used in defining the Current Density limit:Irms
For example,(nil layer "M1" minW 0.09 maxW 12.0 currentDensity
(((sqrt(18.33*deltaT*(w-.016)*(w-.016)*(w-.016+.352)/(w-.016+.0443) )/w), 110)))
-
recoveryFactor: Calculates the effective DC electromigration in bipolar current wave forms. This accounts for some 'sweep back recovery' of EM during the negative portion of the current wave form. The recovery factor is specified in the EM Rules specification file as:recoveryFactor=<
where the user-specified value ranges from 0 to 1.0.value>
The following equation shows how the recovery factor is used by the software while calculating the total average EM current:I (avg) = max( I+, I- ) - (recovery factor)* min( I+, I-)
whereI+is the average ofIin the positive direction andI-is the average ofIin the negative direction -
recoveryFactorList: Specifies the list of layers and the corresponding recovery factors to be used for these layers during EM analysis. The following example shows how different recovery factors are specified for layers,Via1andmt1.recoveryFactorList=(("Via1" 0.7) ("mt1" 0.3))
-
cadGrid: Specifies the minimum width of parasitic resistor. The unit of measurement is micrometer (um) or micron. -
routingLayers: The routing layers are the names of the DFII layers that are used for routing. Include only the poly and metals. An example follows:routingLayers = ("poly1" "m1" "m2" "m3" "m4" "m5" "m6" "m7" "m8" "m9" "MD")
-
viaLayers: Specifies the DFII layer name of via layers.( Metal1 Cont Poly ) // the via layer is Cont
An example of the viaLayers syntax follows:viaLayers=("cw" "v1" "v2" "v3" "v4" "v5" "v6" "v7" "v8")
-
xrefLayers: These are the cross-reference layers that provide mapping between the Quantus QRC layer name, Current Density name, and the DFII layer name. If a layer is not present inxreflayersmapping, its DFII name is used as the Current Density name and Quantus QRC name.(("QRCName" ("currentDensityName" "DFIIName"))
-
CurrentDensSpecList: Refers to the Current Density specification declared by the foundry. The syntax allows one layer to support two different Current Density specifications according to the width of the material. The following Current Density specifications are provided in the emDataFile:avgCurrentDensSpecList, avgAbsCurrentDensSpecList, rmsCurrentDensSpecList, DCrmsCurrentDensSpecList, peakCurrentDensSpecList, and ACpeakCurrentDensSpecList
The following optional parameters are supported:
minW, maxW, minL, maxL, minLu, maxLu, minWu, maxWu, minWb, maxWb, minLb, maxLb -
Layer Stack: The layerstack contains a list of layer names and corresponding upper metal and bottom metal layer names.
(("LayerName" ("upperMetalLayerName" "bottomMetalLayerName")) -
viaWidthList: Specifies the minimum via width. For example:viaWidthList=(("Cont" 0.2)("Via1" 0.2))
Where,
Contis the DFII name of via layer.
0.2is the minimum width of the default via for this layer. -
extViaWidthList: Specifies the minimum via width. For example:extViaWidthList=(("extCont" 0.2)("extVia1" 0.2))
Where
extContis the Quantus QRC (Extraction) name of via layer.
0.2is the minimum width of the default via for this layer. -
DesignResistors: Specifies the list of design resistor cell names. For each cell name, you can specify the resistor property name, width property name, length property name, and units for width and length property names for which the design resistors are to be analyzed. Specifying the resistor property name, width property name, length property name, and unit name is optional. If any of these property names is not specified, the software uses “r”, “w”, “l”, and “meter”, respectively, as the default values for these properties.
The width and length property names are specified when the names of these properties are different from the “w” and “l” in the extracted view.
Syntax:DesignResistors = ("CellName1" "CellName2" "CellName3") DesignResistors = ("CellName.*")
-
junctionTemp: Specifies the temperature to be used for EM analysis. Used astjin ICT. -
applyRThreshold: Specifies the threshold ratio“r”for AC-Peak analysis. The default value of threshold ratio is0.05. -
rmsMultiplierPin: Specifies the RMS relaxation factor for EM power-grid analysis. The default value is1.0. -
rmsMultiplierSignal: Specifies the RMS relaxation factor for signal EM analysis. The default value is1.0.
EM Rules Specifications not Supported in Voltus-Fi-L
-
Jmaxlife: Specifies the scaling factor that applies to the Current Density limits for different lifetimes. -
BulkTerminal: Specifies the bulk terminals of the design resistors that are to be ignored while performing EM analysis. -
minI: Used to limit the reporting of small currents which are of little or no interest. -
durationTime: Specifies the maximum time period for which violations are allowed. -
technologyNode: Specifies the technology-dependent calculation. -
viaLengthList: Specifies the via length. -
extViaLengthList: Specifies the via length. It get preference over viaLengthList. -
selectResistors: Selects resistors by their names. All other resistors will be ignored for the analysis. -
selectLayers: Selects resistors based on the extracted layer name. All resistors on other layers will be ignored for the analysis. -
ignoreLayers: Ignores resistors based on the extracted layer name. All resistors on other layers will be selected for the analysis. -
ignoreResistors: Ignores resistors by their name. All other resistors will be selected for the analysis. -
meshR: Specifies regions for mesh resistance extraction. -
fracture_vias: Specifies whether or not there are dummy vias present. -
Thickness: Specifies the thickness of the layers.
Return to top