• 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. Blogs
  2. Analog/Custom Design
  3. Things You Didn't Know About Virtuoso: Measurements Across…
stacyw
stacyw

Community Member

Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
CDNS - RequestDemo

Have a question? Need more information?

Contact Us
Corners
Virtuoso IC6.1.5
custom/analog
IC 6.1
Corners analysis
IC615
IC 6.1.5
Virtuoso Analog Design Environment
Virtuoso
Analog Design Environment
ADE-XL
Custom IC Design

Things You Didn't Know About Virtuoso: Measurements Across Corners

9 Feb 2012 • 1 minute read

In Virtuoso IC 6.1.5 ISR6, we released a new feature in ADE XL, which had been requested by many customers--the ability to define a measurement expression which operates on the results of another measurement expression across corners.  For example, I can create an expression to measure, say, a delay.  Call it "myDelay".  Now I can create another expression which calculates, for example, the maximum value of "myDelay" over all the corners I ran.

To do this, I simply add an expression in the ADE XL Outputs Setup pane, give it a name (optional), and set the cyclic in the "EvalType" column (you were wondering what that new column was for, weren't you?) to "corners".  The line will now be highlighted in blue to distinguish it from regular waveform and scalar expressions.  Now create your expression.  If you use the functions ymax, ymin, average, peakToPeak or stddev, the argument "?overall t" will automatically be added to the function to ensure the values are treated by the function as discrete, rather than continuous points.

It should be fairly obvious what the above functions do--you run a simulation over corners and you can find the max, min, average, spread (peakToPeak), and stddev of any scalar measurement over those corners.

  • ymax(myDelay)
  • ymin(myDelay)
  • average(myDelay)
  • peakToPeak(myDelay)
  • stddev(myDelay)

Perhaps not so obvious is the fact that you can use other functions to measure across corners as well.  For example, if you create a set of corners as a temperature sweep (remember, the definition of corners in ADE XL isn't restricted to PVT--you can create a variable out of pretty much anything and then sweep it in the Corners form), you can create a MAC expression using the cross() function to find the temperature at which an expression reaches a certain value:

cross(myDelay 200n 1 "either" nil nil)

Or you can use the value() function to find the value of an expression at an interpolated temperature value (or whatever variable you swept in your corners run):

value(myDelay 65)

MAC expressions are also supported for Monte Carlo analysis and Local and Global Optimization.

I'm sure you'll find this new feature useful.  As always, comments and feedback are welcome!

Stacy Whiteman

 

 


CDNS - RequestDemo

Try Cadence Software for your next design!

Free Trials

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

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