• 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. RF Design
  3. Convergence problem in LPTV circuit (Switched capacitor...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 63
  • Views 14601
  • 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

Convergence problem in LPTV circuit (Switched capacitor circuit)

Binhngo1210
Binhngo1210 over 4 years ago

Hi, hope all you guys be fine during this covid time! 
I am dealing with PSS/PSP simulation on the LPTV circuit, the circuit works out at 1 GHz for my first running. However, when changing it slightly to 1.1GHz ( to test some properties), the convergence issue (that was quite troublesome to me often in other circuits) appears. 
I try looking for some suggested solutions on this page, but it still gets me stuck, such as: 
 + change "reltol" to 1e-5 /vabstol = 1e-8/iabstol=1e-15

 + switch between "gear2only" and "traponly"

 + also adjust time step to be smaller (10p) 

 + switch between HB and Shooting method 

in simulation, I let the number of harmonics equal to 20, and let the simulator itself decides the "tstab" time 
my tool version is IC 616.500.14 and MMSIM 14.1 
the output log file/input.scs are also included here 
very appreciate you for debugging it! 
thanks. 

lptv_bug.rar

  • Cancel
Parents
  • Tawna
    Tawna over 4 years ago

    Hi Binhngo1210,

    This is a super quick response...  I don't have time to debug.

    1. Please use a more recent version of software (both virtuoso and Spectre). What you're using is ancient.   I suggest IC6.1.8 ISR9 (IC618 ISR12 is current) or later and MMSIM 19.1 or 20.1 (20.1 ISR4 is the latest).   

    2. Don't mess with the spectre options (unless you really understand them).  You shouldn't need to modify them most of the time.   (I know...we are engineers...we love to play with options.   <grin>)   You are pretty much guaranteeing non-convergence with an iabstol of 1e-15.    I rarely (like never over the past 10 years) change iabstol from the default value of 1e-12. 

    Use the default options.  Start with errpreset=moderate.  If you need more accuracy, try errpreset=conservative.   

    If you see trapezoidal ringing, you may want to change the method from trapony to trap.  Or from trap to gear2only (dampens).   Otherwise, leave this alone.

    If you are simulating an oscillator, you often need to use traponly or trap (gear2only can damp the oscillation and the oscillator won't start).

    Setting maxstep to 10p (or a very small number) is a brute force method to enforce accuracy and is rarely needed for most circuits.   You are slowing down spectre needlessly by doing this.

    3.  I don't know if you're at a university?  If so, ask the professor to download these articles from https://support.cadence.com .

    20463331 FAQ: Spectre RF Convergence Tips for Shooting PSS Analysis
    20409487 FAQ: Convergence tips for driven and autonomous circuits in Harmonic Balance

    4.  Shooting newton pss is best for strongly nonlinear circuits (think very fast rise times).  Harmonic balance is idea for circuits with sinusoidal-ish waveforms.  (This is a gross simplification, but you'll get the idea)

    11310266 FAQ: Basic Guidelines for When to Use Shooting Newton vs. Harmonic Balance Analyses

    5.  Accuracy in hb is largely determined by the number of harmonics.  (Too few harmonics = poor accuracy.  Too many = lots of memory).   Accuracy in shooting newton pss is largely determined by errpreset. (use moderate or conservative for SpectreRF). The SpectreRF User Guide will give detailed information. 

    6. In the hierarchy, we have example workshops.   I believe that the RF_Doc_Database library ExampleLibRF is located in the  <MMSIM14.1.1>/tools/spectre/examples/SpectreRF_workshop directory.  (We have an updated version for Spectre 19.1 and 20.1)

    Simply uncompress and untar  RF_Doc_Database.tar.gz  .   Note:  Be sure to read the introductory set up chapter - I think it might be in Appendix A of the SpectreRF User Guide....your version of software is so old that I don't recall where we kept it.   If using Spectre 19.1 or 20.1, see this Article and look at the RF_Doc_Database examples:

    20463330 SpectreRF AppNotes and Tutorials - One of our best kept secrets!

    6. Another article (contains best practices) which you may find helpful:  

    20491292 Getting the Most Out of Spectre® APS RF 19.1: Maximizing Performance

    Best regards,

    Tawna

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 4 years ago in reply to Tawna

    Dear Binhngo1210,

    I see Tawna has already answered your post - she is fast! Her recommendations, of course, provide some very valuable tips.

    I did have a chance to review your spectre output log as well as your input.scs file and have some specific comments....see what you think!

    1. Your input. scs file contains the following pss analysis command:

    pss  pss  fund=1.1G  harms=20  errpreset=conservative  autotstab=yes +    saveinit=yes  method=traponly  tstabmethod=traponly  annotate=status

    However, in viewing your output log, I see the following for the spectre command and pss portion of your log:

    Command line:     /tools/cadence/mmsim/mmsim141_hotfix14/tools.lnx86/bin/spectre  \         input.scs +escchars +log ../psf/spectre.out +inter=mpsc  \         +mpssession=spectre1_2759_2 -format psfxl -raw ../psf  \         +errpreset=conservative +lqtimeout 900 -maxw 5 -maxn 5

    ================================= `pss': time = (0 s -> 32.0091 ns) =================================  Output and IC/nodeset summary:                  save   18      (current)                  save   222     (voltage)  Important parameter values in tstab integration:     start = 0 s     outputstart = 0 s     stop = 32.0091 ns     period = 909.091 ps     maxperiods = 20     step = 32.0091 ps     maxstep = 36.3636 ps     ic = all     useprevic = no     skipdc = no     reltol = 10e-06     abstol(V) = 10 nV     abstol(I) = 1 fA     temp = 27 C     tnom = 27 C     tempeffects = all     method = gear2only     lteratio = 3.5     relref = sigglobal     cmin = 0 F     gmin = 1 pS

    Hence, your integration method choice is being overwritten to "gear2only". I don't view this as a major issue since this is a driven circuit.

    2. What I do note is that you have set the tstab interval to "auto" and following the pss tran portion of your simulation, the output log notes:

    "Warning from spectre at time = 32.0091 ns during periodic steady state analysis `pss'.
        WARNING (SPCRTRF-15311): Steady-state has not been detected after 32.0091 ns.
            If the circuit does not converge, set a longer transient stop time manually.
            The number of tone-1 harmonics is set to 20."

    Further the measure of steady-state convergence after the transient portion of the pss simulation, is very large ("Conv norm = 1.25e+06")  and does not appear to be converging as the number of iterations increases (final value is Conv norm = 1.25e+06). Hence, I am thinking you might want to increase your value of tstab beyond the automatically assigned value. Please inspect the tstab portion of your simulation results and examine the waveforms near the end of the 32 ns tstab simulation. Do the DC and transient performance of your output signals appear close to what you expect for their steady-state values? If not, you might try to disable the "auto" tstab and assign a value that you think will provide an end result that is closer to a steady-state solution.

    3. I don't know if you are concerned with simulation time, but if you are, you might also consider saving the state of the tstab portion of your simulation. In this manner, if you need to further extend the stab portion of the simulation, you can use the saved state and avoid re-simulating the tstab portion from time = 0. The periodic save state feature is found in the transient simulation GUI Options "State file" tab.

    I hope this is useful Binhngo1210....

    Shawn

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Reply
  • ShawnLogan
    ShawnLogan over 4 years ago in reply to Tawna

    Dear Binhngo1210,

    I see Tawna has already answered your post - she is fast! Her recommendations, of course, provide some very valuable tips.

    I did have a chance to review your spectre output log as well as your input.scs file and have some specific comments....see what you think!

    1. Your input. scs file contains the following pss analysis command:

    pss  pss  fund=1.1G  harms=20  errpreset=conservative  autotstab=yes +    saveinit=yes  method=traponly  tstabmethod=traponly  annotate=status

    However, in viewing your output log, I see the following for the spectre command and pss portion of your log:

    Command line:     /tools/cadence/mmsim/mmsim141_hotfix14/tools.lnx86/bin/spectre  \         input.scs +escchars +log ../psf/spectre.out +inter=mpsc  \         +mpssession=spectre1_2759_2 -format psfxl -raw ../psf  \         +errpreset=conservative +lqtimeout 900 -maxw 5 -maxn 5

    ================================= `pss': time = (0 s -> 32.0091 ns) =================================  Output and IC/nodeset summary:                  save   18      (current)                  save   222     (voltage)  Important parameter values in tstab integration:     start = 0 s     outputstart = 0 s     stop = 32.0091 ns     period = 909.091 ps     maxperiods = 20     step = 32.0091 ps     maxstep = 36.3636 ps     ic = all     useprevic = no     skipdc = no     reltol = 10e-06     abstol(V) = 10 nV     abstol(I) = 1 fA     temp = 27 C     tnom = 27 C     tempeffects = all     method = gear2only     lteratio = 3.5     relref = sigglobal     cmin = 0 F     gmin = 1 pS

    Hence, your integration method choice is being overwritten to "gear2only". I don't view this as a major issue since this is a driven circuit.

    2. What I do note is that you have set the tstab interval to "auto" and following the pss tran portion of your simulation, the output log notes:

    "Warning from spectre at time = 32.0091 ns during periodic steady state analysis `pss'.
        WARNING (SPCRTRF-15311): Steady-state has not been detected after 32.0091 ns.
            If the circuit does not converge, set a longer transient stop time manually.
            The number of tone-1 harmonics is set to 20."

    Further the measure of steady-state convergence after the transient portion of the pss simulation, is very large ("Conv norm = 1.25e+06")  and does not appear to be converging as the number of iterations increases (final value is Conv norm = 1.25e+06). Hence, I am thinking you might want to increase your value of tstab beyond the automatically assigned value. Please inspect the tstab portion of your simulation results and examine the waveforms near the end of the 32 ns tstab simulation. Do the DC and transient performance of your output signals appear close to what you expect for their steady-state values? If not, you might try to disable the "auto" tstab and assign a value that you think will provide an end result that is closer to a steady-state solution.

    3. I don't know if you are concerned with simulation time, but if you are, you might also consider saving the state of the tstab portion of your simulation. In this manner, if you need to further extend the stab portion of the simulation, you can use the saved state and avoid re-simulating the tstab portion from time = 0. The periodic save state feature is found in the transient simulation GUI Options "State file" tab.

    I hope this is useful Binhngo1210....

    Shawn

    • Cancel
    • Vote Up +1 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