Product Documentation
Spectre Circuit Simulator Reference
Product Version 23.1, September 2023

Reliability Analysis (reliability)

Description

This analysis computes the reliability for MOSFETs and the circuit. The three reliability modules are:

1. MOSFET Hot-Carrier Injection(HCI) module:

Predicts transistor and circuit performance degradation due to HCI effects.

2. PMOSFET Negative Bias Temperature Instability(NBTI) module:

Predicts PMOSFET and circuit performance degradation due to NBTI and NBTI recovery effects.

3. NMOSFET Positive Bias Temperature Instability(PBTI) module:

Predicts NMOSFET and circuit performance degradation due to PBTI effects.

Synopsis:

name reliability  <global options> {

<reliability control statements> ...

<stress simulation statements> ...

<aging testbench statements> ...

<aging/post-stress simulation statements> ...

}

Note: Starting from MMSIM10.1.0 release version, the <global options> are ignored.

The other four sections should be listed in the specified order.

Syntax

Name reliability parameter=value ...

Parameters

Analysis parameters

Analysis title.

age time

[...]

The time in future when the transistor degradation and degraded SPICE model parameters are to be calculated.

deltad value

[...]

Specifies the degradation value. The degradation value can be transconductance, linear or saturation drain current degradation, threshold voltage shift, or any other degradation monitor, depending on the definitions of the lifetime parameters H and m..

vec_deltad item

[...]

Specifies the degradation value in vector.

deltad mod

[...]

Specifies the name of a model whose lifetime is calculated. The model name must be the same as specified in the .model card.

maskdev type

include

Includes or excludes the specified devices or the devices that belong to the listed subcircuit or model during reliability analysis. Possible values are include and exclude.

deg_ratio type

include

Includes or excludes the specified devices for built-in agemos model. Possible values are include and exclude.

deg_ratio dev

[...]

Specifies the instances to be included or excluded for degradation ratio of built-in agemos model.

maskdev mod

[...]

Specifies the models for which the related devices should be included or excluded while performing reliability analysis.

maskdev dev

[...]

Specifies the instances to be included or excluded during reliability analysis.

maskdev sub

[...]

Specifies the subcircuit(s) for which the related devices should be included or excluded while performing reliability analysis.

maskdev tmioff

all

Specifies the analysis  which needs to be turned off for masked devices in tmi. Possible values are none, aging, rtshe and all.

report_model_param value

no

Determines whether to print the stress and aged parameters in the.bm# file. Possible values are no and yes.

load_external_cmi value

no

Load the external user-defined CMI flag. Possible values are no and yes.

load_external_cmi debug

no

The flag of outputting thedebug information for loading external customerdefined CMI shared library.

accuracy level

1

Specifies methods used in the reliability simulation when performing integration and substrate current calculation. Possible values are 1 and 2.

minage value

0.0

Specifies the smallest age value for which degraded SPICE model parameters are calculated.

igatemethod type

calc

Specifies the method used for obtaining the gate currents of MOSFETs. Possible values are calc and spice.

idmethod type

ids

Specifies how the simulator obtains the drain current (Id) of MOSFETs to perform reliability calculations. Possible values are ids, idrain and idstatic.

dumpagemodel file

Output file name of dump age model.

output_aging_model_info file

Output file of aging model info.

dumpagemodel dev

[...]

Specifies the instances whose aged modelcard will be output.

urilib file

Specifies URI library file name.

urilib files

[...]

Specifies URI libraries file name for multiple uri libraries.

urilib uri_mode

scaleparam

Specifies which method should be used to perform aging simulation.. Possible values are agemos, scaleparam, mixed_mode, appendage, new_appendage, appendage2 and appendage1.

urilib debug

0

Specifies the debug mode for URI library. The value can be 0 or positve. When specified, a flag is added to the URI library indicating whether the debug information should be printed. debugMode is not 0 prints debug messages. Default value is 0.

bias_mode_urilib bjt

-1

Specifies the bjt bias mode for pnp type..

relxtran start

0.0

Specifies the start time of reliability analysis during transient simulation.

relxtran stop

0.0

Specifies the stop time of reliability analysis during transient simulation. If stop_time is not specified, the software stops in .tran statement.

isubmethod type

calc

Specifies the method used for obtaining the substrate currents of MOSFET. Possible values are calc and spice.

opmethod type

calc

Specifies whether the Igate or Isub value should be obtained from the SPICE models (such as BSIM3 or BSIM4) or whether the internal Igate or Isub equation should be used. Possible values are calc and spice.

degsort threshold

0.0

Prints MOS transistors based on the threshold and number settings. The results are sorted in the descending order of degradation.

degsort number

0

Prints only the specified number of  transistors having the highest degradations. For example, if number=100, the software will print the first 100 transistors with highest degradations.

agelevel_only value

[...]

Sets the level for reliability analysis, which is essentially the age level number of the reliability analysis to be performed.

gradual_aging_agestep type

lin

Sets the type of agestep, linear or logarithm, the default type is linear. Possible values are lin and log.

gradual_aging_agestep start

0

Specifies the start time of agestep in gradual aging flow, the default value is 0.

gradual_aging_agestep stop

0

Specifies the stop time of agestep in gradual aging flow.

gradual_aging_agestep total_step

1

Specifies the total step numbers of agestep in gradual aging flow.

gradual_aging_agestep profile

no

Select this option to run profile gradual aging. In profile gradual aging, results of next age step doesn't depend on the results of the previous age step. Possible values are no and yes.

gradual_aging_agepoint points

[...]

Specifies points of agepoints.

gradual_aging_agepoint profile

no

Select this option to run profile gradual aging. In profile gradual aging, results of next age point doesn't depend on the results of the previous age point. Possible values are no and yes.

gradual_aging_save steps

[...]

Save the specified step of gradual aging result files.

gradual_aging_save savedatainseparatedir

Dump the waveform files in a separate directory for gradual aging result files. Possible values are no and yes.

rel_savedatainseparatedir value

no

Dump the waveform files in a separate directory. Possible values are no and yes.

gradual_aging_alter time

[...]

Set time for gradualAging alter.

gradual_aging_alter param

[...]

Set params for gradualAging alter.

gradual_aging_alter value

[...]

Set values for gradualAging alter.

simmode type

Mode of reliability analysis. Possible values are stress, aging and all.

simmode file

File of simMode.

simmode mapping

Device Name Mapping File of simMode.

simmode tmifile

Input file for TMI Aging flow.

macrodevice sub

[...]

Specifies the instances for macrodevice.

combinedeg value

no

Determines whether to combine the external URI results with internal URI results in the bo0 file. Possible values are no and yes.

keep_aged_data value

yes

Determines whether to keep the value of the aged model parameters after reliability analysis. Possible values are no and yes.

check_neg_aging type

error

Specifies the message type to check the negative value in bt0. Default is error. Possible values are error, warn and ignore.

check_neg_aging clamp

no

Clamps the negative age value in the bt0 file. Possible values are no and yes.

enable_negative_age value

no

Enable negative age value. Possible values are no and yes.

output_binary_file value

no

Specifies the format of reliability analysis output file. Possible values are no and yes.

deg_ratio hci

1.0

The degradation ratio for HCI effect.

deg_ratio nbti

1.0

The degradation ratio for NBTI effect.

deg_ratio pbti

1.0

The degradation ratio for PBTI effect.

deg_ratio bti

1.0

The degradation ratio for NBTI/PBTI effect.

type_urilib append

inline

Compatibility with RelXpert. Possible values are inline, sub and dev.

enable_ade_process value

no

Enable reliability in ADE. Possible values are no and yes.

macrodevice type

appendparams

Specifies the instances for macrodevice. Possible values are appendparams and agemos.

tmi_aging_mode type

Mode of tmi aging flow. Possible values are aging, she and all.

omi_aging_mode type

Mode of omi aging flow. Possible values are aging, she and all.

simmode omifile

Input file for OMI Aging flow.

output_region_param value

no

Prints the region method of the parameter. Possible values are no and yes.

tmi_she_mindtemp value

0.0

The minimum delta temperature of self-heating.

enable_tmi_uri value

no

Enable the TMI and URI flow. Possible values are no and yes.

fast_aging_mode type

Mode of XPS native reliability. Possible values are agemos and ratio.

aging_analysis_name value

Aging analysis name. Possible values are tran, dc and ac.

deg_ratio hcin

1.0

The degradation ratio for NMOS HCI effect, it is for TMI aging flow only.

deg_ratio hcip

1.0

The degradation ratio for PMOS HCI effect, it is for TMI aging flow only.

deg_ratio btin

1.0

The degradation ratio for PBTI effect, it is for TMI aging flow only.

deg_ratio btip

1.0

The degradation ratio for NBTI effect, it is for TMI aging flow only.

output_device_degrad vdd

[...]

Sets the bias voltage for the device degradation.

output_device_degrad tmi_lib_inc

Sets the TMI library include/section for gm/gds degradation.

deltad item

Specifies the electrical parameter for lifetime estimation. It is only available for TMI aging flow. Possible values are didsat, didlin, dvtlin, dvtsat and lifetime.

degsort item

0

Specifies which item must be used for sorting.  It is only available for TMI aging flow. Possible values are didsat, didlin, dvtlin, dvtsat and lifetime.

output_device_degrad vdlin

[...]

Sets the bias voltage of vdlin for the device degradation.

output_device_degrad vgsat

[...]

Sets the bias voltage of vgsat for the device degradation.

output_device_degrad vglin

[...]

Sets the bias voltage of vglin for the device degradation.

degsort phys

Specify which reliability effect used for sorting  It is only available for TMI aging flow. Possible values are hci_bti, hci and bti.

output_inst_param list

[...]

Specify the parameter names to be output into bo0 or psf file.

degradation_check_exception file

Set degradation check exception list.

degradation_check type

Specify the message type(warning or error) for degradation_check. Possible values are warn and error.

degradation_check parameter

Specify the degradation_check parameter's name. Possible values are deltad, dvth, didlin, didsat, did, dgm and dgds.

degradation_check value

DBL_MAX

Specify the degradation_check value.

degradation_check agelevel

-1

Specify the degradation_check agelevel.

degradation_check error

Set degradation check error message output file.

degradation_check_output file

Set degradation check result output file.

rel_mode type

Specifies the analysis type used for obtaining the device reliability values. Possible values are aging, she, all, aging_she and aging_thermal.

rel_mode tmode

Specifies the temperature mode. Possible values are static and dynamic.

gradual_aging_with_deg value

no

Call calcDegradation before calcAge in gradual aging flow. Possible values are no and yes.

degradation_check sub

[...]

Set subckt for degradation check.

degradation_check dev

[...]

Set device for degradation check.

degradation_check mod

[...]

Set model for degradation check.

output_she_power value

no

Set output device power in SHE flow. Possible values are no and yes.

enable_tmishe_uri value

no

Enable TMI and URI flow and pass dtemp of TMI into URI. Possible values are no and yes.

output_format type

Specifies reliability output format: SQL, DPL or BIN.. Possible values are SQL, DPL and BIN.

skip_tmi_aging_she_tran value

The flag whether to run transient of aging+SHE. Possible values are no and yes.

output_device_degrad file

Specifies file included output_device_degrad options.

vdsmethod type

external

Specifies to get external or internal voltage of Vds. Possible values are external and internal.

output_device_degrad skipaging

no

Output bt0 file and skip aging analysis for saving time. Possible values are no and yes.

output_device_degrad vthsat

no

Output vthsat for the device degradation in bt0 file. Possible values are no and yes.

output_device_degrad op

[...]

Specifies op parameters for device degradation in bt0 file..

output_subckt_degrad op

[...]

Specifies op parameters for subckt degradation in bt0 file..

output_device_degrad vthmod

Specifies method how to calculate vth. Possible values are cmi, max_gm and const_current.

output_device_degrad vgs

Sets the bias voltage of vgs for the dc sweep.

deg_num_output_device_degrad top

100

Output top_deg_num list for the device degradation in bo0 file.

deg_num_output_subckt_degrad top

100

Output top_deg_num list for the subckt degradation in bo0 file.

deg_table_line_break value

yes

Specifies whether to break line when device name is too long in degradation table. Possible values are no and yes.

param_output_inst_param sort

Specify the parameter whose value is to be used to sort output order.

params_output_inst_param sum

[...]

Specify the parameters the sum of whose values must be printed in the output file.

output_subckt_degrad vdd

[...]

Sets the bias voltage for the subckt degradation.

output_subckt_degrad vdlin

[...]

Sets the bias voltage of vdlin for the subckt degradation.

output_subckt_degrad vgsat

[...]

Sets the bias voltage of vgsat for the subckt degradation.

output_subckt_degrad vglin

[...]

Sets the bias voltage of vglin for the subckt degradation.

output_subckt_degrad sub

[...]

Sets the subckt name to do subckt degradation.

output_subckt_degrad node

[...]

Sets subckt terminal nodes mapping to drain, gate, source and bulk for subckt degradation.

enable_tmi_uri tmishe

no

Enable TMI and URI flow and pass dtemp of TMI into URI. Possible values are no and yes.

output_subckt_degrad file

Specifies file included output_subckt_degrad options.

output_subckt_degrad ivthp

0.0

Sets PMOS vth current, it has higher priority than ivth defined in global option.

output_subckt_degrad ivthn

0.0

Sets NMOS vth current, it has higher priority than ivth defined in global option.

output_subckt_degrad ivth

[...]

Sets constant vth current for specified model.

degsort value

no

Specifies to enable to sort degradation data in decreasing order. Possible values are no and yes.

agelevelonly type

include

Includes or excludes the specified aging levels. Possible values are include and exclude.

preset age

0.0

Specifies age value for preset.

preset agelevel

Specifies agelevel for preset.

preset mod

[...]

Specifies model list for preset.

preset dev

[...]

Specifies device list for preset.

preset deg

0.0

Specifies degradation value for preset.

preset lifetime

0.0 s

Specifies lifetime value (unit is second) for preset.

preset sub

[...]

Specifies subckt list for preset.

urilib scale_mode

original

Specifies parameter scale mode for URI library. The value can be original or effective. If value is original, send original parameter value to URI for param scale, else send effective value. Possible values are original and effective.

gradual_aging_pass_param value

no

Whether to pass URI instance state to next gradual aging step. Possible values are no and yes.

gradual_aging_early_exit value

no

Whether to enable early exit in gradual aging flow. Possible values are no and yes.

win_relxtran mult

[...]

Specifies multiple time windows for reliability analysis.

gradual_aging_early_exit time

gradual aging time from which early exit is triggered.

output_subckt_degrad correct_bias_voltage

yes

Specifies whether to correct the sign of voltage bias defined in output_subckt_degrad for reliability analysis. Possible values are no and yes.

output_subckt_degrad output_bias_voltage

no

Specifies whether to output the subckt names and their bias conditions defined in output_subckt_degrad to bt0 and bt0.dpl files. Possible values are no and yes.

output_device_degrad correct_bias_voltage

yes

Specifies whether to correct the sign of voltage bias defined in output_device_degrad for reliability analysis. Possible values are no and yes.

output_device_degrad output_bias_voltage

no

Specifies whether to output the model names and their bias conditions defined in output_device_degrad to bt0 and bt0.dpl files. Possible values are no and yes.

output_device_degrad keep_zero_result

Output all the devices included devices of zero degradation in bt0 file. Possible values are no and yes.

enable_bias_runaway value

no

Enable bias runaway detecting flow. Possible values are no and yes.

scaleparam_urilib disable

no

Specifies whether need to scale params, the option only works in stress only mode. Possible values are no and yes.

depend_type_urilib bias

all

Specifies the bias dependent type for URI model.. Possible values are all, voltage and none.

depend_params_urilib bias

[...]

Specifies the bias dependent params for URI model..

summary_config_output_device_degrad degradation

Specifies file included degradation_summary_config options.

urilib appendage_check

yes

Specifies the flag that indicates whether a validity check should be run for the given appendage model.. Possible values are no and yes.

Detailed Description and Examples:

age time=[...]

The duration in the future at which the transistor degradation and degraded SPICE model parameters are to be calculated. The degraded SPICE model parameters are used in aged circuit simulation. The calculated transistor degradation can be transconductance, linear or saturation drain current, degradation, threshold voltage shift, and or any other degradation monitor. While specifying the value, attach the suffix y (year), h (hour) or m (minute). There should be no space between the number and suffix. For example, 10m, 1e-5sec. Note: Currently, specifying multiple time values is not supported.

deltad value=<deltad_value>

Requests the calculation of lifetime for each transistor under the circuit operating conditions using the specified degradation value. You can use multiple deltad statements for different types of transistors. The degradation value can be transconductance, linear or saturation drain current degradation, threshold voltage shift, or any other degradation monitor, depending on the definitions of the lifetime parameters H and m. deltad_value can be in decimal notation (xx.xx) or in engineering notation (x.xxe+xx).

maskdev type={include | exclude} {sub=<subckt_list> | mod=<model_list> | dev=<device_list>}

Includes or excludes the specified devices or the devices that belong to the listed subcircuit or model during reliability analysis. Note: Starting from the MMSIM10.1 version, the include and exclude values are mutually exclusive.

report_model_param value={yes | no}(defaults to no)

Determines whether to print the stress and aged parameters in the.bm# file. Possible values are yes and no. When set to yes, the stress and aged parameters are printed to the .bm# file.

accuracy level={1 | 2}(defaults to 1)

Specifies methods used in the reliability simulation when performing integration and substrate current calculation. In other words, specifies trapezoidal integration when performing integrations and calculates Isub for Vgs < Vth. When set to 1, the software uses backward Euler integration and sets Isub=0 when Vgs < Vth. When set to 2, the software uses trapezoidal integration and calculates Isub when Vgs < Vth. Setting accuracy to 2 is more accurate, but increases simulation time when compared to when accuracy is set to 1.

minage value=<minage_value>

Specifies the smallest Age value for which degraded SPICE model parameters are calculated. This statement speeds up aging calculation by using stress SPICE model parameters if the transistor Age value is smaller than the specified minage_value. minage_value can be in decimal notation (xx.xx) or in engineering notation (x.xxe+xx).

igatemethod type={calc | spice}(defaults to calc)

Specifies the method used for obtaining the gate terminal current of a MOSFET. During MOSFET HCI simulation, the gate terminal current is required for calculating the degradation value. The simulator can either calculate this value or obtain it from the SPICE output rawfile if the SPICE simulator in use provides such an option. If this command is not used, the simulator calculates the gate terminal current by using its own model parameters. Possible values are calc (default) and spice. When calc is specified, the gate terminal current is calculated using the model parameters and when spice is specified, the gate terminal current value is obtained from the SPICE output rawfile.

idmethod type={ids | idrain}(defaults to ids)

Specifies how the simulator obtains the drain current (Id) to perform reliability calculations. The following types of drain currents, which are available from SPICE, are supported by reliability analysis:

* Dynamic drain current (also called AC drain current) - this is the current that flows in to the drain node.

* Static drain current (also called channel drain current, DC drain current, or Ids) Possible values are ids (Ids static current ) or idrain (dynamic drain current). Default: ids.

uri_lib file={"filename"} uri_mode={agemos | appendage} debug={0 | 1}

Loads the Unified Reliability interface (URI) shared library and specifies which method (uri_mode) should be used to perform aging simulation. Note: appendage mode is not supported in the MMSIM10.1 release.

relx_tran start=<start_time> stop=<stop_time>

Specifies the start and stop time for reliability analysis during transient analysis. If stop_time is not specified, the software stops in .tran statement.

isubmethod type={calc | spice}(defaults to calc)

Specifies the method used for obtaining substrate terminal current of a MOSFET. During MOSFET HCI simulation, the substrate terminal current is required for calculating the degradation value. The Spectre RelXpert simulator can either calculate this value or obtain it from the SPICE output rawfile if the SPICE simulator in use provides such an option. If this command is not used, the simulator calculates the substrate terminal current by using its own model parameters. Possible values are calc (default) and spice. When calc is specified, the substrate terminal current is calculated using the model parameters and when spice is specified, the substrate terminal current value is obtained from the SPICE output rawfile.n

opmethod type={calc | spice}(defaults to calc)

Specifies whether the Igate or Isub value should be obtained from the SPICE models (for example, BSIM3 or BSIM4) or the internal Igate or Isub equation should be used.  Possible values are calc or spice.  calc calculates the gate and substrate terminal current using the Cadence Igate and Isub model equations (Default). spice obtains the gate and substrate terminal current value from the SPICE model.

degsort {threshold=<threshold_value> | number=<number_value>}

Prints MOS transistors based on the threshold value or number settings. The results are sorted in the descending order of degradation. Note: The threshold and number arguments are mutually exclusive. Therefore, only one of them can be specified with degsort to print the sorted device degradation results. When threshold_value is specified, the transistors having degradation values greater than threshold value are printed. The threshold value can be in decimal notation (xx.xx) or in engineering notation (x.xxe+xx). When number_value is specified, only the first <number_value> transistors having the highest degradations are printed. For example, if number=100, the software will print the first 100 transistors with highest degradations.

agelevel_only value=[<level_value> <model_list>, <level_value> <model_list>, ...]

Specifies the age level for performing reliability analysis on the specified model(s). You can specify different age levels for different set of models. Note: This option also supports the URI defined agelevel statement. If model names are not specified, the simulation is performed on all of the devices at the specified age level. The following levels can be used to specify Cadence internal ageMOS models:

* 1: Specifies HCI reliability analysis.

* 2: Specifies NBTI reliability analysis.

* 3: Specifies PBTI reliability analysis.

Example

    rel reliability {
        // reliability control statements
        age time = [10h 20y 30y]
        deltad value = 0.1
        accuracy level = 2
        agelevel_only value=[0 nch, 1 pch]
        relx_tran start=1us stop=10us
        idmethod type=idrain
        maskdev type=include mod=[pch] dev=[mdut6] sub=[inv]
        minage value = 0.00001
        report_model_param value=yes
        uri_lib file="./libURI.so" uri_mode=agemos debug=1
        degsort number=100
        igatemethod type=spice
        isubmethod type=spice
        opmethod type=spice
        // stress/stress statements.
        tran_stress tran start=0 step=1us stop=10us
        // aging testbench statements.
        change1 alter param=rel_temp value=125
        // aging simulation statements.
        tran_aged tran start = 0 step = 1us stop = 10us
}

Return to top
 ⠀
X