• 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. High Q XOSC - PSS shooting engine: erroneous results

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 63
  • Views 1801
  • 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

High Q XOSC - PSS shooting engine: erroneous results

AlbertoGS
AlbertoGS over 10 years ago

Hi,

I am designing a simple high Q 16M XTAL + INV oscillator in MMSIM 14.10.576 (I think this is the latest version?) using PSS with the shooting engine. The reason I went for the shooting engine rather than the hb is that there is a significant amnount of distortion in the waveforms. On top of that I found that the hb engine gives convergence problems in some of my corners (typically 2 or 3 of my 22 corners will fall over). These errors can be fixed by tightening reltol and vabstol as recommended in the SpectreRF documentation, however, doing so will make other corners not converge!

Therefore I switched to the shooting engine which I was hoping would give me reliable results over all coners. Unluckily, I find even though the simulation always converge, I get strange results 1 corner (very low amplitude steady state). Changing simulation engine parameters will not help, the results will always be very similar. I checked the behaviour of the design in that particular corner with a transient noise simulation and the oscillator reaches the expected steady state with a normal amplitude. What it is more when I use the hb engine in that corner the results are the right one :s

So I guess my questions are:

- Any insight in why the shooting engine is giving the wrong steady state solution? What can I tweak to improve solution accuracy?

- Is there any way to rerun a set of corners in which several BUT not all the analysis in a test have failed AND add the results together to the corners Job? I know it is possible to rerun erroneous corners but in order to be able to do so all the analysis should have failed. So far I am putting a note to the corners Job but it is messy

Many thanks!

Alberto

  • Cancel
  • Tawna
    Tawna over 10 years ago

    Unknown said:

    I am designing a simple high Q 16M XTAL + INV oscillator in MMSIM 14.10.576 (I think this is the latest version?) using PSS with the shooting engine. The reason I went for the shooting engine rather than the hb is that there is a significant amnount of distortion in the waveforms. On top of that I found that the hb engine gives convergence problems in some of my corners (typically 2 or 3 of my 22 corners will fall over). These errors can be fixed by tightening reltol and vabstol as recommended in the SpectreRF documentation, however, doing so will make other corners not converge!

    Therefore I switched to the shooting engine which I was hoping would give me reliable results over all coners. Unluckily, I find even though the simulation always converge, I get strange results 1 corner (very low amplitude steady state). Changing simulation engine parameters will not help, the results will always be very similar. I checked the behaviour of the design in that particular corner with a transient noise simulation and the oscillator reaches the expected steady state with a normal amplitude. What it is more when I use the hb engine in that corner the results are the right one :s

    So I guess my questions are:

    - Any insight in why the shooting engine is giving the wrong steady state solution? What can I tweak to improve solution accuracy?

    - Is there any way to rerun a set of corners in which several BUT not all the analysis in a test have failed AND add the results together to the corners Job? I know it is possible to rerun erroneous corners but in order to be able to do so all the analysis should have failed. So far I am putting a note to the corners Job but it is messy

     

    => It would be helpful if you posted your shooting pss and hb analysis statements as well as your options statements.

    Not having that information, I'll offer some generic suggestions...

    In hb analysis, there are autotstab and autoharmonics features which are very helpful in cases such as this.   I would try that first with errpreset=moderate or conservative.   Don't tweak any other options - leave at defaults.  You will need to set oversample.  Depending on the level of distortion in the signal, try oversample = 4 or 8.

    In shooting, use the new autotstab feature.   If errpreset=conservative doesn't work in shooting (too many convergence issues) and errpreset=moderate isn't accurate enough, try tightening:   reltol=1e-5, vabstol=3e-8 errpreset=moderate

     

    Best regards,

    Tawna

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • AlbertoGS
    AlbertoGS over 10 years ago

    Hi again,

    Many thanks for your reply. My analysis statements are:

    => pss

    analysis('pss ?fund "16M"  ?harms "100"  ?saveinit "yes"  ?oscana t  ?p "/xoscp"  ?n "/gnd!"  ?oscic "lin"  ?method "traponly"  ?ppv ""  )

    => hb

    analysis('hb ?saveinit "yes"  ?autoharms "yes"  ?autotstab "yes" ?oversample list("1")  ?fundfreqs list("(16M)")  ?maxharms list("5")  ?errpreset "conservative" ?oscana t  ?p "/xoscp"  ?n ""  ?oscic "lin" ?oscmethod "onetier"  ?pinnode ""  ?ppv ""  ?tstabmethod "traponly"  )

    For the hb analysis I was using autotstab and autoharmonics, I ll try to increment the oversampling factor to 4 or 5 as suggested.

    In pss I tried with errpreset=conservative reltol=1e-4, vabstol=1e-6 first and then with errpreset=conservative reltol=1e-5, vabstol=3e-8. In both cases I ended up running into convergence issues in some of the corners (different corners for each configuration). I will try using errpreset=moderate


    Best,

    Alberto

    • 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