• 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. Resolving calcVal Parameter Transfer Issue in Cascaded AMS...

Stats

  • Locked Locked
  • Replies 0
  • Subscribers 125
  • Views 2071
  • 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

Resolving calcVal Parameter Transfer Issue in Cascaded AMS Simulations with Multiple Swept Variables

baltaci
baltaci 9 months ago

Hello,

I am using IC23.1.

I am encountering an issue while running cascaded tests in ADE Assembler, specifically when using the calcVal function to transfer parameters between simulations. Below are the details of my setup and the problem:

Simulation Details

  1. First Test (tran_calibration)

    • This performs a calibration under nominal conditions with fixed supply and temperature:
      • vdd = 1.8
      • temperature = 25
    • Outputs a calibration parameter (trim_calibrated), which is used in subsequent simulations.
  2. Second Test (tran_slow)

    • This uses the calibrated value from tran_calibration:
      trim = calcVal("trim_calibrated" "tran_calibration" ?getFirstSweepPoint t)
    • The supply and temperature are swept to extreme corners:
      • vdd = 1.62, 1.98
      • temperature = -40, 85
    • The rise/fall time (t_rf) is set to a high value:
      • t_rf = 10
  3. Third Test (tran_fast)

      • This is similar to tran_slow but with a different rise/fall time:
        • t_rf = 1u
      • The supply and temperature are swept to extreme corners, same as the second test:
        • vdd = 1.62, 1.98
        • temperature = -40, 85
      • The calibrated value from tran_calibration:
        trim = calcVal("trim_calibrated" "tran_calibration" ?getFirstSweepPoint t)
      • The goal is to calculate an output (my_output) from tran_slow and inject it into tran_fast for each supply and temperature combination:
        • (vdd = 1.62, temperature = -40)
        • (vdd = 1.98, temperature = -40)
        • (vdd = 1.62, temperature = 85)
        • (vdd = 1.98, temperature = 85)

Issue

When attempting to use calcVal to transfer my_output from tran_slow to tran_fast, I encounter a netlisting error. I have tried the following expressions, but they all fail:

  1. calcVal("my_output" "tran_slow" ?matchParams "all")
  2. calcVal("my_output" "tran_slow" ?matchParams "all" ?ignoreParams list("t_rf"))
  3. calcVal("my_output" "tran_slow" ?ignoreParams list("t_rf"))

I suspect the issue may be related to parameter matching, as t_rf differs between tran_slow and tran_fast.

Goal

My ultimate goal is to run exhaustive corner and Monte Carlo mismatch simulations as follows:

To clarify my goal for exhaustive corner simulations, here is an example of the process corner combinations I want to explore:

  • device1: ss, sf, tt, fs, ff
  • device2: ss, sf, tt, fs, ff
  • device3: min, typ, max
  • device4: min, typ, max

These values are just an example to illustrate my intention and may not represent the actual parameters in my design.

  • Corners: 225 process corners × 9 simulations (1 tran_calibration, 4 tran_slow, 4 tran_fast) = 2025 runs.
  • Monte Carlo: 100 iterations × 9 simulations = 900 runs.

Before scaling up, I need to ensure the cascaded simulation flow works correctly at nominal corners.

Additional Context

  • I am running an AMS simulation.
  • I am using the functional view for the mixed-signal blocks.

Request for Assistance

Could you guide me on the correct use of calcVal in this context, particularly for handling multiple parameter sweeps? Are there additional settings or best practices to ensure parameter consistency across cascaded simulations?

Thank you for your time and assistance. I look forward to your guidance to resolve this issue.

Best regards,

Can

  • 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