• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. Format/Syntax for Writing Aged Model Files for Reliability...

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 126
  • Views 2557
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Format/Syntax for Writing Aged Model Files for Reliability Simulations

rahulsingh
rahulsingh over 1 year ago

Hello all,

I am working on the unified reliability interface (URI) on Cadence Virtuoso, which lets us use custom equations for transistor reliability modeling.

Reading through the RelXpert documentation (Chapter 2. Hot Carrier Degradation Model for MOS Transistors >> Degraded model generation), there are two methods for generating degraded parameters, one of them being aged model files. Aged models files are degraded SPICE parameters for different age values.

The manual does not mention the format/syntax to write aged model files, which I need to know. How to write the aged model files, and specifically what is the format/syntax for it? Is there any resource you could guide me to?

Thanks in advance!

Regards,

Rahul

  • Cancel
Parents
  • ShawnLogan
    ShawnLogan over 1 year ago

    Dear Rahul,

    rahulsingh said:
    The manual does not mention the format/syntax to write aged model files, which I need to know. How to write the aged model files, and specifically what is the format/syntax for it? Is there any resource you could guide me to?

    I am not an expert with Cadence's URI, but have used a similar tool for years. As a result, I think there may be some misunderstanding concerning what "aged model files" are. The foundry (source of your PDK) may provide aging parameters for your technology. If so, these are used to create a "degraded" or "aged" netlist that one uses in the third of three simulations to evaluate the reliability of a circuit

    1. For a given circuit, one initially runs a simulation that evaluates some metric of circuit performance. This is often referred to as a "fresh" netlist simulation as it uses your normal PDK device models and the metric(s) represent a value or values without any aging stress effects.

    2. A second simulation is then performed but under circuit stress conditions (i.e., maximum or minimum junction temperature (depending on aging mechanism), maximum operating voltage, and under a circuit state that will maximum the environmental stress conditions). This second simulation uses a set of aging models provided by the foundry. Outputs of this simulation are one or more files that are used to create a "degraded" netlist for use in a third "degraded" netlist simulation.

    3. In the third simulation, you use the degraded netlist you created from the files from your second stress simulation and perform the same simulation as your first simulation to re-evaluate the circuit metric(s) post aging. One then compares the circuit performance before and after the aging stress to verify that its metric(s) is within speciication.

    Hence, you do not "write aged model files", but use a PDK supplied aging model file in your stress simulatilon and use one or more output files from that simulation to create the degraded netlist. Each device in the degraded netlist does not undergo the same aging stress and hence each device may have different amounts of aging degradation.

    I hope this helps. I tried to understand your question Rahul and hope I did!

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • ShawnLogan
    ShawnLogan over 1 year ago

    Dear Rahul,

    rahulsingh said:
    The manual does not mention the format/syntax to write aged model files, which I need to know. How to write the aged model files, and specifically what is the format/syntax for it? Is there any resource you could guide me to?

    I am not an expert with Cadence's URI, but have used a similar tool for years. As a result, I think there may be some misunderstanding concerning what "aged model files" are. The foundry (source of your PDK) may provide aging parameters for your technology. If so, these are used to create a "degraded" or "aged" netlist that one uses in the third of three simulations to evaluate the reliability of a circuit

    1. For a given circuit, one initially runs a simulation that evaluates some metric of circuit performance. This is often referred to as a "fresh" netlist simulation as it uses your normal PDK device models and the metric(s) represent a value or values without any aging stress effects.

    2. A second simulation is then performed but under circuit stress conditions (i.e., maximum or minimum junction temperature (depending on aging mechanism), maximum operating voltage, and under a circuit state that will maximum the environmental stress conditions). This second simulation uses a set of aging models provided by the foundry. Outputs of this simulation are one or more files that are used to create a "degraded" netlist for use in a third "degraded" netlist simulation.

    3. In the third simulation, you use the degraded netlist you created from the files from your second stress simulation and perform the same simulation as your first simulation to re-evaluate the circuit metric(s) post aging. One then compares the circuit performance before and after the aging stress to verify that its metric(s) is within speciication.

    Hence, you do not "write aged model files", but use a PDK supplied aging model file in your stress simulatilon and use one or more output files from that simulation to create the degraded netlist. Each device in the degraded netlist does not undergo the same aging stress and hence each device may have different amounts of aging degradation.

    I hope this helps. I tried to understand your question Rahul and hope I did!

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • rahulsingh
    rahulsingh over 1 year ago in reply to ShawnLogan

    Thanks a lot Shawn!

    I am an undergraduate student working on this, and I do not have access to foundry PDKs with reliability parameters.

    I was wondering if you could recommend something, even as a proof of concept, to understand the aging flow. Probably, I can get the BSIM parameters, and make various instances of it by changing threshold voltage?

    Only if I could have access to one example file would have made this simpler.

    Thanks,

    Rahul

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 1 year ago in reply to rahulsingh

    Rahul,

    The Spectre Unified Reliability Interface Reference manual actually points at some examples in the Spectre installation - both of the URI code and the models to test them. These can be found at <SPECTREinstDir>/tools.lnx86/relxpert/uri/apiexamples (the model files using the parameters  are in the test directory, and the code is in the sample directory). Details of all of this is in the manual.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • rahulsingh
    rahulsingh over 1 year ago in reply to Andrew Beckett

    Hello Andrew,

    Thank you for your reply!

    I have referred to the manual.

    If you are referring to the model.scs file in the /test directory, I have used them. There's basically the nmos and pmos model definitions, and the reliability parameters (for agelevel 0, 1,  and 103).

    For the user defined model (agelevel 103), they are probably not aged model files which Shawn and I are referring to. They are the reliability parameters from what I gather.

    Could you please elucidate if there's something else you are referring to?

    Thanks,

    Rahul

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 1 year ago in reply to rahulsingh

    Hi Rahul,

    Apologies - I misinterpreted your original question, partly because I never see anyone actually using the "aged model files" method. Usually aging is done by using an agemos model or URI which takes the aging model parameters (as in the example I referenced) and then computing the degradation to the fresh model from the extrapolated stress simulation information, to produce degraded models used in the aged simulations. This is either done in memory (if using the more common, and more efficient spectre-native approach) or if using the standalone relxpert tool it will generate aged models and new netlists referring the aged models (this is slower and has fewer features available; normally it's used only during model development).

    The aged model files approach (from reading the manual - as I said, I never see people doing this) is covered in a section headed Setting Up Aged Model Files for MOS Transistors in Chapter 6 - Setting Up Models for Simulation (this can also be found easily from the index under aged model files). In essence these are models derived from experimental data using the age parameter so that it knows which model is for which age, and the .ageproc command is used to specify the models (there's a link to this statement in this section).

    Hope that helps. Not sure why you are using this approach - usually with URI you'd define how the degradation works based on information gathered during the stress, and not have pre-generated aged model files.

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • rahulsingh
    rahulsingh over 1 year ago in reply to Andrew Beckett

    Hello Andrew,

    Thank you for your reply - I am using the aged model files because I read up the paper on BERT by Chenming Hu, and wanted to test something similar.

    Also, in the URI example, I find it really hard to understand the vector vth0 which is [2000 1] that is passed as a reliability parameter, which gets passed to variables hd1 and hn1, respectively in nmosNitScaleParam() function of the C sample code.

    Could you let me know what the vector means?

    Thanks,

    Rahul

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information