Cadence Virtuoso Calculator Manual & Guide
The calculator for this page is switched off while it is checked. The formula is below, and the worked example in the article shows how to use it by hand.
The Cadence Virtuoso Calculator is a built-in waveform calculator in Cadence Virtuoso Analog Design Environment (ADE) that lets you perform mathematical operations on simulation results—like finding rise time, average power, or total harmonic distortion—without exporting data to another tool. You open it from the ADE window, type an expression using waveform names and functions, and it returns a computed value or a new waveform. This manual explains the interface, common functions, and practical usage steps.
What Is the Virtuoso Calculator?
The Cadence Virtuoso Calculator is part of the Virtuoso Analog Design Environment (ADE), used for analog and mixed-signal IC design. It appears as a separate window with a keypad of math functions, a display area, and a plot button. You use it to evaluate expressions that reference simulation waveforms (e.g., VOUT or I(M1)) and constants. The calculator can produce a single numeric result (like the 3-dB bandwidth) or a new waveform (like the derivative of a voltage). It is tightly integrated with the ADE waveform viewer, so you can click on a trace to insert its name into the expression.
Opening the Calculator
In ADE, go to Tools → Calculator (or press the calculator icon). A window appears with a display line, a set of number keys, and function categories like Arithmetic, Trig, Integrate, Derivative, and Special Functions. The calculator works with the current simulation results; if you haven’t run a simulation yet, the waveform names won’t be available.
Basic Operations and Syntax
To compute something, you build an expression in the display. For example, to find the average of a voltage VOUT over the entire simulation, you would type:
- Click
VOUTin the waveform list (or type it). - Select Integrate from the function menu, then choose Average.
- Press Apply or Evaluate.
The calculator uses standard operator precedence (^ for power, * for multiply, / for divide). You can also type functions directly, like value(VOUT, 5u) to get the value at 5 microseconds. Waveform names are case-sensitive and must match exactly what appears in the output.
Common Functions and Their Uses
The calculator includes dozens of built-in functions. Here are the ones you’ll use most:
- value(wave, time) – returns the value of the waveform at a specific time.
- average(wave) – computes the time-average over the simulation interval.
- rms(wave) – root-mean-square value.
- integ(wave) – integral over time.
- deriv(wave) – derivative (d/dt).
- cross(wave, threshold, direction) – finds the time when the waveform crosses a value (useful for rise/fall time).
- bandwidth(wave) – estimates the 3-dB bandwidth of a frequency response.
- thd(wave) – total harmonic distortion (requires periodic signal).
For example, to compute the rise time between 10% and 90% of a step response, you would use: riseTime = cross(VOUT, 0.9*VDD, 1) - cross(VOUT, 0.1*VDD, 1).
Working with Waveforms vs. Numbers
The calculator can output two types of results: a single number (scalar) or a waveform. If your expression contains a time-dependent waveform, the result is a waveform. To get a scalar, you must use a function that reduces the waveform to one value, like average() or value(). For instance, VOUT alone gives a waveform; average(VOUT) gives a number. When you evaluate a scalar, the result appears in the display; when you evaluate a waveform, it is plotted in the waveform viewer.
Tips for Efficient Use
- Use the “Plot� button to send a waveform result to the viewer immediately.
- Save expressions as “calculator states� (File → Save State) so you can reuse them across simulations.
- Use the “Eval� button after each change to see the result without closing the window.
- For complex expressions, break them into steps and store intermediate results in variables (e.g.,
a = average(VOUT)).
Frequently Asked Questions
How do I get the value of a waveform at a specific time?
Use the value() function. For example, value(VOUT, 10u) returns the voltage at 10 microseconds. You can type it directly or use the “Value� button in the calculator.
Why is my expression not evaluating?
Check that the waveform names are spelled exactly as they appear in the output (including case and any brackets). Also ensure you have run a simulation and that the expression is syntactically correct—missing parentheses or a typo in a function name will cause an error.
Can I use the calculator to find the 3-dB bandwidth?
Yes, if you have an AC analysis, use the bandwidth() function on the output voltage (e.g., bandwidth(DB(VOUT))). The calculator returns the frequency where the magnitude drops by 3 dB from its low-frequency value.
How do I compute total harmonic distortion (THD)?
Run a transient analysis with a periodic input, then use thd(VOUT). The calculator performs an FFT internally and returns the THD in percent. Make sure the simulation time covers an integer number of periods.
Is there a way to plot a calculated waveform, like the derivative?
Yes. Build the expression (e.g., deriv(VOUT)) and click the “Plot� button. The derivative waveform will appear in the waveform viewer as a new trace.
Can I use the calculator for DC operating point results?
Yes, but DC values are constants. You can still type expressions like VOUT and it will return the DC value. For more complex DC calculations, use the “op� functions (e.g., op(VOUT)).
Related
Formula used
in t | Simulation time | s | 1u | 0 in f | Frequency | Hz | 1MEG | 0 out period | Period | s | 1 / f | 9 out cycles | Cycles in sim time | - | t * f | 2
Each line is one input (in, sel, list) or one result (out: label, unit, formula, decimals). How the calculators work
Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.