• 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. Consistent path to results for corner simulation?

Stats

  • Locked Locked
  • Replies 1
  • Subscribers 125
  • Views 12049
  • 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

Consistent path to results for corner simulation?

Mike Bichan
Mike Bichan over 4 years ago

I would like to know whether the results of corner simulation can be made to appear in a consistent directory path.

What I see is that corner simulation causes the results to go into numbered directories, but the numbers are not necessarily predictable.

Example: results/maestro/Plan.1.Run.0/1/transient/psf

I am using ADE Assembler.

For reference, what I am trying to do is the following:

- run a transient simulation with certain design variables needed to achieve faster settling time

- use the spectre.fc from the transient to run a pss simulation with slightly different design variables needed to ensure low noise

- then run pnoise and pxf from this pss

I am using a Run Plan to achieve the change in design variables.

But I need the pss run to point to the spectre.fc for the corresponding corner and the location does not seem to be consistent/predictable.

-Mike

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 4 years ago

    Hi Mike,

    Rather than worrying about precisely where it is going to place things, I would add an output on the first test which is running the transient which is called something like "FINALDC" and has an expression:

    sprintf(nil "%L" strcat(asiGetNetlistDir(asiGetCurrentSession()) "/spectre.fc"))

    The result will then be a string which is the path to the spectre.fc from that run. Then have a variable for the nodeset path in the second test in your run plan, set the nodeset (readns) or ic (readic) - whichever you're using to be VAR("NODESET"). Set the variable NODESET to be calcVal("FINALDC" "FirstTest") or similar (calcVal has a bunch of options depending on whether you want the simple one-to-one mapping of corners/points in the second run to the equivalent point in the first run, or you may be able to select a different point - depends on what you're trying to do). You could also pass the variable this way in the run plan - but the idea is essentially to get the first test to output where it stored its data, and have the second test consume that output.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 4 years ago

    Hi Mike,

    Rather than worrying about precisely where it is going to place things, I would add an output on the first test which is running the transient which is called something like "FINALDC" and has an expression:

    sprintf(nil "%L" strcat(asiGetNetlistDir(asiGetCurrentSession()) "/spectre.fc"))

    The result will then be a string which is the path to the spectre.fc from that run. Then have a variable for the nodeset path in the second test in your run plan, set the nodeset (readns) or ic (readic) - whichever you're using to be VAR("NODESET"). Set the variable NODESET to be calcVal("FINALDC" "FirstTest") or similar (calcVal has a bunch of options depending on whether you want the simple one-to-one mapping of corners/points in the second run to the equivalent point in the first run, or you may be able to select a different point - depends on what you're trying to do). You could also pass the variable this way in the run plan - but the idea is essentially to get the first test to output where it stored its data, and have the second test consume that output.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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