Product Documentation
Voltus-Fi Custom Power Integrity Solution XL User Guide
Product Version IC23.1, August 2023

17


Variables

This section provides a list of variables that you can specify in Voltus-Fi-XL. You can set these variables both in the GUI and in batch mode.

Variables Setup in Voltus-Fi-XL

The variables in Voltus-Fi-XL can be set in both the GUI and batch mode.

Batch Mode

In batch mode, you can set the variables using the set_variable and emirutil commands.

Using the set_variable Command: When using the vfibatch command to run Voltus-Fi-XL in batch mode, you can set the variables using the set_variable command. The syntax of the command and an example is provided below.

set_variable var_name var_value

Sets the user-specified value for the variable in batch mode.

Parameters

var_name

Specifies the name of the variable for which you want to set the value.

var_value

Specifies the value that you want to set for the variable.

Example:

The following command sets the value of the variable, dbu to 10000 database units per micron:

set_variable dbu 10000

Using the emirutil Command: When using the EMIR control file to generate textual reports of EMIR results in Voltus-Fi-XL in batch mode, you can set the variables using the emirutil command in the control file. The command syntax and example is provided below.

emirutil <var_name=var_value>

Example:

The following commands set the values of variables, deltaT, dbu, and dynamicACPeak to 10, 500, and false, respectively.

emirutil deltaT=10.0
emirutil dbu=500
emirutil dynamicACPeak=false

Setting the Configuration Variable: You can set the configuration variable, dbu or cadGrid using either the set_variable command or the emirutil command.

The configuration variable, dbu, specifies the number of database units (DBU) per micron for the layout view. The default value of dbu is 1000.

The cadGrid variable specifies the resolution of the software in terms of width and length and the unit of measurement is micrometer or micron. The default value of cadGrid is 0.001.

The value of the dbu variable is 1/cadGrid. If both dbu and cadGrid are specified, the dbu variable value is given priority.

The above variables are specified only in batch mode when the view information is not specified in either the vfibatch command file or in the emir configuration file. They are not required to be specified when running the tool in the GUI mode as it is read from the open view. If this variable is not specified, the tool uses the default value.

GUI Mode

In the GUI, you can set the variables in the Variables form, which can be accessed from the EM tab of the IR/EM Results form.

applyRThreshold

Specifies the threshold ratio “r” for AC-Peak analysis.

connectingODLayers

Specifies the list of layers to identify connecting ODs for heat sink effect. The default value is shown below.

connectingODLayers M0_OD M0_OD1 M0_OD2 MVIA0_1 MVIA0_2 M1

This variable is only used for the SHE flow with heat-sink effect.

You can also set this variable in the EMIR control file by using the following command:

emirutil connectingODLayers=”M0_OD M0_OD1 M0_OD2 MVIA0_1 MVIA0_2 M1”

consolidatedReport

When this variable is set to true, consolidated EM and IR reports are generated for all available bin files. The default value of this variable is false.

coupledSH

When set to true, specifies that the thermal-aware DC EM flow should be enabled. By default, this variable is set to false.

deltaT

Specifies the maximum rise in temperature in degree Celsius, caused due to Joule heating. It must be a positive value.

deltaT temp_value

If the rise in temperature is not specified, Voltus-Fi-XL considers a default temperature of 5 degrees Celsius. This is an ideal condition wherein the design must be EM free.

Example:

deltaT 10.0

deltaT can be used for defining the current density limit: Irms. For example:

em_jmax_ac_rms  EQU (w - 0.004) * 1.24 * deltaT

The deltaT option can also be specified in the control file by using the following command:

emirutil deltaT=temp_value

deltaTLayers

Specifies layer-specific deltaT values. The layers for which deltaT value is not specified, global deltaT value will be used. The syntax is as follows:

deltaTLayers “(layer=layer_name1 deltaT=temp_value1) (layer=layer_name2 deltaT=temp_value2)”

For example,

deltaTLayers “(layer=rhim hi_em=1 deltaT=25) (layer=rhim hi_em=0 deltaT=5) (layer=M7 deltaT=10)”

In the above example, hi_em=1 indicates high current carrying design resistor for which the deltaT value is 25 degree Celsius while hi_em=0 indicates general design resistor for which the deltaT value is 5 degree Celsius. The deltaT value for M7 layer is 10 degree Celsius.

This option can also be specified in the control file by using the following command:

emirutil deltaTLayers=[(layer=rhim hi_em=1 deltaT=25) (layer=rhim hi_em=0 deltaT=5) (layer=M7 deltaT=10)]

disableODSH

When set to true, disables the self-heating effect of devices in the SHE flow. By default, this variable is set to false.

You can also set this variable in the EMIR control file by using the following command:

emirutil disableODSH=true

disableHRSH

When set to true, disables the self-heating effect of design resistors in the SHE flow. By default, this variable is set to false.

You can also set this variable in the EMIR control file by using the following command:

emirutil disableHRSH=true

disableLayoutScale

Disables the layout scale factor defined in the ICT file. The layout_scale factor is the ratio of the scaled dimensions divided by the drawn dimensions. The ICT file is defined based on the scaled dimensions. Quantus applies the layout_scale factor to the

input design during extraction so that the design dimensions and the ICT file dimensions are consistent.

When the disableLayoutScale variable is set to true, the layout_scale factor specified in the ICT file is ignored in the Voltus-Fi-XL EM analysis flow. By default, this variable is set to false.

dynamicACPeak

Specifies that the current density violations should be calculated based on the peak AC current for metal lines, vias, and contacts. It is applied to periodic AC or pulsed DC signals. Valid values are true, false, and multiplePeak. When the multiplePeak option is specified, the software considers multiple peaks for the AC peak calculations.

Ipeak_ac=Ipeak_dc/(r)1/2

where duty ratio “r” is:

r=Iabs-avg / Ipeak_dc, by default (“false”)

And

r=Td/Ttotal, when the dynamicACPeak variable is set.

Ttotal=total transient time

Td= the time duration in micro second or the total “On Time” period, where abs(I)>(max(abs(I)/2.0) during transient analysis

Voltus-Fi-XL does not calculate Td as max(abs(I)/ 2.0) period. But it calculates Td by measuring the pulse at half energy level due to performance reason. The variable, pwc_threshold specified using the below command in the EMIR configuration file defines the current threshold for finding the start of the pulse.
net analysis=[ipwc] pwc_threshold=1e-6

Td has the following different values depending upon the value of dynamicACPeak:

Note: The software replaces the value of “r” with the value of applyRThreshold if the value of “r” is < than that of applyRThreshold. This is because a small “r” value results in an unreasonable increase in the Ipeak_ac limit. To avoid this scenario, use the applyR keyword to reset the value of “r” in the ICT file or change the value of the applyRThreshold variable, either in the Variables form or in batch mode.

emLimitScale

Scales the EM limits of the parasitic resistors in the design before generating the EM reports. You can either apply the same scale factor to all the nets or specify different scale factors for different nets. Both use models are detailed below.

emVariableValues

emVariableValues “(variable=configA value=#) (variable=configB value=#)”

Specifies the EM variable values for current density limit calculation in the GUI.

Example:

emVariableValues “(variable=configA value=20) (variable=configB value=10)”

Where,

the values of configA and configB variables are 20 and 10, respectively.

The EM variable values passed through the configuration file will get priority over the value of same variable specified in the techfile.

enableContextAwareSrmsRelaxation

enableContextAwareSrmsRelaxation true | false

When set to true, this option enables the context-aware RMS Relaxation flow. By default, the variable is set to false.

Example:

enableContextAwareSrmsRelaxation true

You can also set this variable in the EMIR control file by using the following command:

emirutil enableContextAwareSrmsRelaxation=true

The context-aware RMS Relaxation flow is foundry-specific. For more information, contact your Cadence representative.

enableDesignResistorPeakFactor

Specifies the addition of the factor, 1/(r)1/2, in the current limit calculation for the AC-Peak analysis of the design resistor.

By default, the software calculates the current limit for the AC-Peak analysis of the design resistor using the following equation:

Ipeak_ac(limit)= Ipeak_dc(limit)

Apply the factor, 1/(r)1/2,in your calculation, then set the enableDesignResistorPeakFactor variable to true. The current limit will then be calculated in the following manner:

Ipeak_ac(limit)= Ipeak_dc(limit)/(r)1/2

By default, this variable is set to false.

enableDesignResistorScaling

Enables the scaling of the width and length values based on the layout_scale factor specified in the technology file before the EM rules are applied for EM analysis of design resistors. By default, this variable is set to true. In the GUI, you can set this variable in the Variables form.

In batch mode, you can set this variable in the vfibatch command file by using the following command:

set_variable enableDesignResistorScaling false

You can also set this variable in the EMIR control file by using the following command:

emirutil enableDesignResistorScaling=false

enablePWLDensityInterpolation

Enables the current density calculation from the given PWL using current density and width, or current density and area linear interpolation for either the metal's width or the via's area. The calculation is only done when the metal’s width or the via’s area does not match the PWL width or area values.

By default, this variable is set to false. In the GUI, you can set this variable in the Variables form.

You can also set this variable in the EMIR control file by using the following command:

emirutil enablePWLDensityInterpolation=true

enableReportScaleParam

When set to true, this option reports the layout scale factor in the EM text report. In addition, the scaled dimensions for the path-length, width, needed Width, and viaArea fields are displayed in the EM analysis report and GUI.

When set to false, the drawn dimension values for the path-length, width, needed Width, and viaArea fields are displayed in the EM analysis report and GUI. By default, the variable is set to false. In the GUI, you can set this variable in the Variables form.

Example:

enableReportScaleParam true

You can also set this variable in the EMIR control file by using the following command:

emirutil enableReportScaleParam=true

enableRMSHotSpotWaiving

Enables the RMS EM hot spot waiving analysis. By default, this feature is disabled. In the GUI, you can set this variable in the Variables form. In batch mode, you can set this variable in the vfibatch command file by using the following command:

set_variable enableRMSHotSpotWaiving true

You can also set this variable in the EMIR control file by using the following command:

emirutil enableRMSHotSpotWaiving=true

This variable is applicable only to the RMS EM hot spot waiving analysis. To use this feature, contact your Cadence representative to explain your usage requirements.

enableSHHeatSink

When set to true, specifies that the heat sink effect should be included in the SHE analysis. If this variable is set to true, ensure that heat sink models are available.

This variable is used only for the SHE flow with heat sink effect.

You can also set this variable in the EMIR control file by using the following command:

emirutil enableSHHeatSink=true

extendHeatSinkRange

Specifies the expanded region of the OD. The heat-sink structure inside this region can only act as heat sink for the specified OD shape.

The default value of this variable is 0.4.

This variable is only used for the SHE flow with heat-sink effect.

You can also set this variable in the EMIR control file by using the following command:

emirutil extendHeatSinkRange=0.5

extendHRRange

Specifies the range of the design resistor shape expansion. The unit of this variable is um (micro meter).

This parameter is applicable only to the thermal-aware DC EM flow.

The default value is 1.8 although it may be different for different process nodes.

You can also set this variable in the EMIR control file by using the following command:

emirutil extendHRRange=2.0

extendJouleHeating

Specifies whether or not metal-shape expansion is to be done for joule-heating calculation. By default, this variable is set to false.

This variable is applicable only to the thermal-aware DC EM flow.

extendODRange

Specifies the range of the OD shape expansion. The unit of this variable is um (micro meter). The default value of this variable is 1.8.

This variable is applicable only to the thermal-aware DC EM flow.

extendMetalRange

Specifies the number of metal pitch for metal expansion. The default value of this variable is 0.

This variable is applicable only to the thermal-aware DC EM flow.

extendedPeakReport

Reports the timestamp of the maximum current for AC-Peak and Max analysis types in the EM analysis report, the .rpt_em file. It adds the Time column in the report. The default value is false.

Example:

extendedPeakReport true

extendPWLMatch

When the EM rules are specified in terms of PWL and the width of metal or the area of via does not match with any width/area of the PWL, the EM limit will not be calculated for this metal resistor/via.

When this variable is set to true, the software interpolates the limit value for the resistor/via from the selected rule PWL as follows:

The minimum of PWL ith value * (metal's width or via's area) / (PWL ith width or PWL area)

extendSHRegion

Specifies whether or not the OD shape extension is to be done. By default, this variable is set to false.

This variable is applicable only to the thermal-aware DC EM flow.

geounit

Defines the scaling of all DSPF geometry parameters (W, L, X, Y). It applies only to the *|NET section, and not to the instance section. The default value is 1.0e-6. The unit of this variable is meter.

geounit_wl

Defines the scaling of DSPF geometry parameters W and L. It applies only to the *|NET section, and not to the instance section. The default value is 1.0e-6. The unit of this variable is meter.

Note: If the geounit_WL and geounit options are specified together, the geounit_WL option takes precedence over the geounit option.

geounit_xy

Defines the scaling of DSPF geometry parameters X and Y. It applies only to the *|NET section, and not to the instance section. The default value is 1.0e-6. The unit of this variable is meter.

Note: If the geounit_xy and geounit options are specified together, the geounit_xy option takes precedence over the geounit option.

layermap

Specifies the mapping between the layer names in the simulation database to those specified in the technology files (qrcTechFile and ICT file) for the EM analysis flow. It maps the layer names in the xDSPF file to the ICT layer names. the syntax is provided below.

layermap (rcxLayer=rcx_layer_name1 ictLayer=ict_layer_name1) (rcxLayer=rcx_layer_name2 ictLayer=ict_layer_name2)

Where

rcxLayer is the layer name in the simulation database

ictLayer is the layer name in the ICT EM file

Example:

layermap [(rcxLayer=M1 ictLayer=T1) (rcxLayer=M2 ictLayer=T2)]

This variable can also be set using the emirutil command.

It can also be specified in the command file as follows:

set_variable layermap “(rcxLayer=rcx_layer_name1 ictLayer=ict_layer_name1) (rcxLayer=rcx_layer_name2 ictLayer=ict_layer_name2)”

mdLayers

Specifies the list of metal diffusion layers that need to be combined for EM analysis. For example, to calculate the distance between terminal vias (Lv2v), for thermal analysis (SHE) and so on.

The default value is shown below.

MD_STI MD_OD MD_STI_SRM MD_OD_SRM M0_OD M0_STI MD_STI_CPP85 MD_OD_CPP85

This variable can also be set using the emirutil command.

mergeMDLayers

Enables combining of metal diffusion layers that are specified using the variable, mdLayers, for calculating the effective Blech length. When set to false, no merging of metal diffusion layers is done for Blech length calculation.

This variable can also be set using the emirutil command.

multiplePeakPercentThreshold

Specifies the threshold percentage for the peak current above which the Td for a particular peak is added to the final Td. This variable is applicable only when the dynamicACPeak analysis is set to multiPeak. The default value of this variables is 5.

This variable can also be set using the emirutil command.

optimisticEMRuleSelection

Specifies whether optimistic or pessimistic values are selected for the specified rules. This is applicable when multiple rules are selected after all conditions match.

By default, the variable is set to false. This means that the pessimistic value is selected.

powerRailGroundNets

Specifies the ground nets to be used for power-rail analysis. These nets will override the nets automatically identified by the software. By default, the software automatically identifies ground nets from the simulation database.

powerRailGroundNets is applicable only to EM analysis. IR analysis will not be affected with this variable.

This variable accepts wildcards. For example:
powerRailGroundNets=”vss vssp*”

powerRailRules

Specifies rules for power-rail analysis. The available options are off, default, n5, n7, and advance.

powerRailSupplyNets

Specifies the supply nets to be used for power-rail analysis. These nets will override the nets automatically identified by the software. By default, the software automatically identifies supply nets from the simulation database.

powerRailSupplyNets is applicable only to EM analysis. IR analysis will not be affected with this variable.

This variable accepts wildcards. For example:
powerRailSupplyNets=”vdd vddp*”

process_scale

Specifies the value by which the width and length values will be multiplied before the EM rules are applied. The default value of this variable is 1. In the GUI, you can set this variable in the Variables form.

In batch mode, you can set this variable in the vfibatch command file by using the following command:

set_variable process_scale 0.8

You can also set this variable in the EMIR control file by using the following command:

emirutil process_scale=0.8

prioritizedPwlRulesLayers

Specifies the list of layers for which area-based PWL search is performed first. When no match is found, then non-PWL rules are used. The default value of this variable is “all”, which means that this behavior is enabled for all layers.

To enable the behavior for specific layers, you can specify a list of layers.

To disable this behavior for all layers, set the value of this variable to none. In the GUI, you can set this variable in the Variables form.

In batch mode, you can set this variable in the vfibatch command file by using the following command:

set_variable prioritizedPwlRulesLayers none

You can also set this variable in the EMIR control file by using the following command:

emirutil prioritizedPwlRulesLayers=none

removeBulkShorting

When set to true, this variable removes bulk-shorting in the design. Bulk-shorting in the design results in an increase in the EM analysis runtime. This variable is only used as a troubleshooting option.

By Default, this variable is set to false.

The syntax is as follows:

removeBulkShorting true | false

Example:

removeBulkShorting true

You can also set this variable in the EMIR control file by using the following command:

emirutil removeBulkShorting=true

reportUnmatchedRuleResistor

When set to true, specifies that resistors that do not match any EM rule for the specified analysis in the ICT file will be reported in the “#.rpt_unmatch” file. The default value of this variable is true. Also, the summary report file, summary.rpt, will report a count of such resistors in a separate column. For example, “iacpeak_num_unmatch”.

If you do not want to create the #.rpt_unmatch file, set this variable to false. For example:

emirutil reportUnmatchedRuleResistor=false

rmsMetalLineNumberPower

Specifies the value of power on the metal lines for RMS EM analysis of power nets.

If this option is not specified, the default value of 0 is considered, which means the software uses the em_dc_rms_metal_line_num value specified in the ICT file.

However, if this option is specified, it overrides the em_dc_rms_metal_line_num value specified in the ICT file.

You can also set this variable in the conf file in the following manner:

emirutil rmsMetalLineNumberPower=number

The default value is 0.

rmsMetalLineNumberSignal

Specifies the value of power on the metal lines for RMS EM analysis of signal nets.

If this option is not specified, the default value of 0 is considered, which means the software uses the em_ac_rms_metal_line_num value specified in the ICT file.

However, if this option is specified, it overrides the em_ac_rms_metal_line_num value specified in the ICT file.

You can also set this variable in the conf file in the following manner:

emirutil rmsMetalLineNumberSignal=number

The default value is 0.

rmsMultiplierPin

Specifies the RMS relaxation factor for EM analysis of power grids. The default value is 1.0.

rmsMultiplierSignal

Specifies the RMS relaxation factor for EM analysis of signal nets. The default value is 1.0.

shEMEffect

Specifies the basis for the re-evaluation of EM effect. Valid values are:

shParamFile

Specifies the self-heating effect (SHE) analysis parameter file, which is required for plotting the SHE analysis plots. This file is used for deltaT FEOL calculation with finger and fin effect considerations.

For SHE with heat-sink effect, this file should include the heat-sink rules.

shRmsLimitThreshold

Specifies the self-heating current limit for the violating resistors displayed in the jacrm_sh plot. The default value is 1e-10.

shXMLFile

Specifies the XML file to be used in the SHE analysis flow. This file is created by model cards with supporting self-heating as an input file for the final deltaT FEOL value calculation during simulation.

simpleSingleViaDefinition

The keyword, single is used to differentiate between a single square cut via and square via array. It is applicable to square via, with width equal to 'vc_width/min_width', only. To support the single keyword for all the via sizes, set the simpleSingleViaDefinition variable to true.

By default, this variable is set to false.

You can also set this variable in the conf file in the following manner:

emirutil simpleSingleViaDefinition=true

splitACDCRules

Specifies different rules for EM analysis of power and signal nets. The default value is false.

Tj

Specifies the temperature to be used for EM analysis. The default value is Tsim or the temperature used while performing simulation.

Tambient

Specifies the ambient temperature for self-heating analysis. If this value is not specified, the software calculates it as Tj-deltaT.

You can also set this variable in the EMIR control file by using the following command:

emirutil Tambient=value

Tlife

Specifies the lifetime for which the EM analysis will be performed. The default unit for this variable is years. You can also specify the value in hours. The tool will convert it into years. For example:

Tlife=”20000hours”

toggleNetFrequency

Specifies the frequency of the nets so that the tool can derive the Td (total on-time period) for multiple clock cycles. You can specify frequencies for different nets as shown below. Wild cards are also supported.

Syntax:

toggleNetFrequency ”(net1,frequency1) (net#,frequency#)”

For example,

toggleNetFrequency ”(CLK*,2.3e9) (NET1,4.6e9)”

toggleNetFrequencyFile

Specifies the name of the file that contains the net names and their corresponding frequency values. This file is used to specify the frequency of nets to compute the Td (total on-time period) for multiple clock cycles. This file contains net names separated by commas and the frequency values.

For example,

toggleNetFrequencyFile freq_file

A sample freq_file is shown below.

VDD, 2e08
D*, 4e08
GSS, 3e08

useEncryptedWidth

Specifies whether encrypted (silicon) width should be used or not. The default value of this variable is false, in which case, the software does not use the encrypted width from the DSPF. When set to true, the software uses the encrypted width but does not report both the width and the minimum width.

useRecoveryFactor

Specifies whether or not layer-wise recovery factor is to be used for calculating the average current density.

If the recovery factor is specified, then the average current density calculation is as follows:

iavg=max(|iavgpos|,|iavgneg|)- recovery_factor*min(|iavgpos|,|iavgneg|)

If not specified, then

iavg=iavgpos+iavgneg

where iavgpos is the average current in the positive direction and iavgneg is the average current in the negative direction

viaCountFromResistance

Specifies the number of vias when third-party DSPF with missing via count ($N) is used for EM analysis. The default value of this variable is false.


Return to top
 ⠀
X