• 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. Stop Time in Transient Analysis

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 126
  • Views 20476
  • 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

Stop Time in Transient Analysis

Hadi Hayati
Hadi Hayati over 11 years ago

Hi

I have designed an oscillator which its center frequency is 2GHz and there seems to be a problem with its stop time I guess...

When I choose stop time for example 50ns, the oscillator works well and I can see the output waveforms. And if stop time is greater than 50ns (0.5us for example), then all I have at outputs is a straight line... There is no signal.

Anybody can help me out with this?

 

Regards,

Hadi

 

  • Cancel
  • skillUser
    skillUser over 11 years ago

    Hi Hadi,

    The first thing that comes to mind is that the simulator step interval is dependent on the stop time, so as the stop time grows, so does the step interval; this might increase the timestep interval to the point where the oscillator cannot get started.  This might also indicate a possible issue with the simulator tolerances (relative tolerance, absolute tolerance)? You might investigate initial conditions as a way to aid the oscillator starting, or perhaps set the maxstep parameter to about 1/10 of the oscillator period.

    Hopefully this helps.

    Regards,

    Lawrence.

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

     Dear Hadi,

     

    I agree with Lawrence. Depending on the value of errpreset you set in your simulation, the default value of the  maximum integration timestep varies with the value of TSTOP. For example, I believe for an errpreset of "moderate", the value of maxstep is TSTOP/50.There are numerous tables in the spectre manual that outline the default value settings for maxstep, reltol, iabstol...for a specific errpreset and TSTOP setting. For an oscillator where the the period is far less than the value of TSTOP, you might manually set the value of maxstep to, say, 1/50 or 1/100 of the expected oscillation period depending on the Q of your resonator.

    You might also check the negative resistance of your sustaining amplifier to assure there is sufficient margin to start-up with your resonator in case the oscillation is not self-sustaining.

    Good luck Hadi,

    Shawn

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

    Hi Hadi,

    This may be more information than you want to know...but here it goes.  :-)

    • When simulating an oscillator in transient analysis, you need to make sure you've started the oscillator (otherwise, you will see a straight line when you simulate).
    • When simulating oscillators, you should set errpreset=conservative.
    • Starting in MMSIM 12.1, transient analysis has been enhanced to calculate the intial conditions for rapid oscillator startup. 
      • linearic enables the linear IC method to calculate the initial conditions automatically from a type of stability analysis in the range [0.5*oscfreq,11.5*oscfreq].  The linearic parameter overrides the user-defined initial conditions, if instability is detected.
      • oscfreq: provides an estimation of the oscillator frequency when the linear IC method is enabled.

    For more information, see the Virtuoso Spectre Circuit Simulator Reference Guide.

    Now, having said all of that....

    If you are simulating an oscillator at 2GHz, I strongly recommend using SpectreRF. 

    • Use hb analysis if a sinusoidal/LC/high Q oscillator or pss if a ring oscillator (rather than transient analysis). 
    • There are step by step design examples in the MMSIM 12.1.1 and 13.1 Virtuoso Spectre Circuit Simulator and Accelerated Parallel Simulator RF User Guide. 
      • See Appendix A:  Ring oscillator and LC oscillator examples
      • Chapter 3 - Frequency domain analysis - Harmonic balance
      • Chapter 4 - Single Input Large and Small Signal analysis (pss)
    • In MMSIM 13.1.1, we have a new Oscillator Tuning Mode analysis.  Here's a snippet from the SpectreRF manual:  Oscillator tuning mode 

      Tuning mode adjusts a parameter in the circuit to produce the set frequency target. This is done automatically when tuning mode is enabled without setting any sweep parameters or interpolation of the resulting curves. When the tuning frequency is reached, any small-signal analyses like noise are run. This allows the simulator to tune the oscillator to a specified frequency and then make a noise measurement. This is useful in Monte Carlo analysis to see how the oscillator performs with process variations. The parameter to be tuned can be a variable, temperature, or a specified device parameter. Oscillator tuning mode is also supported in the pss analysis using the shooting or harmonic balance engines. See Chapter 4, "Single Input Large and Small-signal Analyses," for details.

      In this mode, the target frequency to tune to is the frequency that is specified in the harmonic balance form as the fundamental frequency. You specify a parameter that is to be varied to achieve the desired frequency. This can be a variable, a device parameter, or temperature. When the analysis runs, the oscillator will be tuned to the desired frequency, and then all the small-signal analyses will be run.

    • There are also Articles on Cadence Online Support for simulating oscillators.  http://support.cadence.com .

    best regards,

    Tawna

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Hadi Hayati
    Hadi Hayati over 11 years ago

    Thank you all

    The problem was all about "step time". Seems we should define step time manually... 

     One more question: Why should we enable conservative in errpreste? I enabled conservative mode and I found out the frequency of output waveform varied slightly. Which one is correct, enable it or not?

    regards

    Hadi

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

     Dear Hadi,

     > Why should we enable conservative in errpreste?

    As Tawna and I mentioned, the use of an errpreset setting of "conservative" reduces the values of a number of simulation variables relative to the settings "moderate" and "conservative". In essence, this forces the simulator to further iterate on a solution to reduce its error from the desired solution.

    In an oscillator application, the use of an errpreset of "conservative" will result in a more accurate estimate of oscillation frequency than, for example, an errpreset setting of "moderate". However, the simulation times will be increased. The need to choose an errpreset of "conservative" is dependent on your need for the accuracy of the frequency estimate.

     I'm sure others will have valuable  thoughts and opinions.

    Shawn

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

    Hi Hadi,

    > Why should we enable conservative in errpreste?  

    To quote one of my favorite engineers...I've never met a designer who favored a quick result over an accurate one in their final oscillator design...   :-)

    Unless you really understand the simulator options, what each one does, and how they affect each other, you shouldn't modify them.  We have a class "Using Spectre Effectively" that goes into great detail on most of the simulator options.  It's a very good class.

    We do not want users having to tweak with options.  (I know...because we are engineers...if there are "knobs to tweak", we must fiddle with every single one.  <grin>)   Seriously, R&D has spent a lot of time optimizing the simulator and options so that the only "knob" you should need to "tweak" is errpreset=liberal, moderate, or conservative.  Like everything in life, there are exceptions.  Sometimes with oscillators (particularly high Q), you may need to tighten reltol and vabstol even tighter than errpreset=conservative.  How can you tell if you need to further tighten tolerances?  One way is to plot in ViVA your transient output signal.  Really zoom in to an area of curvature.  If you see "piecewise linear behavior" as opposed to a smooth cure, you need to tighten tolerances. 

    And really, for oscillators I would use SpectreRF for accuracy - and the fact that you can plot things like phase noise, print noise contributors, use the oscillator tuning mode, etc.

    best regards,

    Tawna

    Cadence

    • 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