• 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. IC 6.1.6, ADE XL: Calculating scalar after the sweep using...

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 124
  • Views 3698
  • 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

IC 6.1.6, ADE XL: Calculating scalar after the sweep using expression in Output tab

FormerMember
FormerMember over 11 years ago

Hi,

This is my first post here, I find this forum extremelly informative and helpful. Hope that somebody can point me into right direction.

I simulate ring VCO and want to calculate a scalar of control voltage vctrl_0 resulting in a particular frequency f0. I want to use this voltage for another test. In order to do this I do the following:

1. I sweep a control voltage and calculate output frequency using vco_frq=frequency(clip(VT("/out") tstart tstop))  from .tran simulation.

2. To find control voltage of interest I use vctrl_0=cross(vco_frq f0 1 "rising" nil nil) after the sweep, using calculator. This works fine, I can get the scalar I'm looking for.

3. But when I add vctrl_0 expression to the output tab, ADE XL tries to calculate it for every sweep point instead of set, obviously resulting in error as to find vctrl_0 whole set of frquency points is necessary in first place.

Is there any way to define the expression in Output tab such it's going to be calculated for whole set of vco_frq data?

As you can suspect, I'm quite new to ADE XL. 

Regards

Greg 

 

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    Hi Greg,

    Unfortunately there's no option in ADE XL to produce "measurements over sweeps". There is however "measurements over corners", so if you put the sweep into a corner (corners can contain sweeps), then it can be done with a bit of jiggery pokery if you set the evaltype to corners - you'd have to do this with an OCEAN script measurement.

    Rather than trying to describe all this complexity (we're working on a general solution to analysing over portions of the data rather than per-point), there's a better (and faster solution) using SpectreRF if using IC616 and MMSIM131. In the pss or hb analysis, when you've enabled "oscillator", you would normally give it a guess of the oscillation frequency and ask it to solve for the actual frequency. 

    Now there is an option "Enable tuning mode analysis". When you turn this on, you can tell it the variable or component parameter which is the tuning parameter for the VCO, and the frequency you specify is the actual frequency you want. You can then get the value of the tuning parameter from the result of the simulation - and it solves for the fixed frequency.

    You can then apply a sweep around that (for example, sweeping temperature), and see how the tuning parameter varies with temperature to give you fixed frequency.

    Definitely a more efficient way of doing things...

    There's an example of doing this in the SpectreRF workshop that is provided in the MMSIM131 installation at:

    <MMSIMinstDir>/tools/spectre/examples/SpectreRF_workshop/rfworkshop.tar.Z

    when unpacked, there's a doc directory, including a PDF for VCOs.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • FormerMember
    FormerMember over 11 years ago

    Cheers Andrew, that clarifies a lot.

    So pss is the way then. A bit of OT: I have an old Ocean script that do exactly what I wanted to achieve in a first place but it's somewhat buggy (and I'm under time pressure currently) so I wanted to see if I can get it done the same way, directly from ADE XL.

    Either way: case closed as far as I'm concerned.

    Have a nice weekend everyone.

    Regards

    Greg 

    • 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