• 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. Harmonic Index of PSS data is not found?

Stats

  • Locked Locked
  • Replies 18
  • Subscribers 63
  • Views 22637
  • 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

Harmonic Index of PSS data is not found?

SharjeelRiaz
SharjeelRiaz over 5 years ago

Hi,

I am simulating a 32.768 kHz Pierce oscillator for phase noise. I have attached the details of my PSS+PNOISE setups in screenshots. Post completion of the analysis, I am unable to get the Direct PLot Main Form to plit the phase noise and get the message in the subject.

One more query query that I would like to be addressed is which of the two analysis, PSS or HB is suited to my design. Now I know that HB gives good results for linear and weakly non-linear oscillators (LC, Colpitts, pierce, etc) and PSS (shooting) for strongly non-linear like ring. The thing is although my osc is a Pierce Oscillator which generates sinusoidal or nearly sinusoidal outputs , I am driving a comparator with these sinusoidal outputs to get a square wave output. Does this imply that I need to use PSS (shooting) if want to see the phase noise/jitter at comparator output and HB if looking for phase noise at osc outputs (with sinusoidal waveforms). 

By the way, what is the penalty to be paid if PSS shooting is used for linear and weakly non-linear oscillators?

Thanks,

Sharjeel

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago

    A quick search didn't reveal anything obvious as to why this would happen. A few things to ask:

    1. Which IC subversion are you using? (Help->About will reveal this)
    2. Which spectre subversion are you using (this will be in the spectre.out file when you're running simulation)
    3. Can you post a screenshot of the results browser (the resuls database names)?
    4. Can you post the analysis statements from the bottom of the input.scs file?

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • SharjeelRiaz
    SharjeelRiaz over 5 years ago in reply to Andrew Beckett

    Hi Andrew,

    1. It's version IC 6.1.8-64b.500.8

    2. Spectre is Version 18.1.0.464.isr11 64bit -- 21 Sep 2019

    3. Database names are in the snapshot below (hoping this is what you wanted?)

    4. Analysis Statements from netlist posted below:

    simulatorOptions options psfversion="1.1.0" reltol=1e-3 vabstol=1e-6 \
    iabstol=1e-12 temp=temp_cor tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 \
    gmindc=1e-15 rforce=1 maxnotes=5 maxwarns=5 digits=5 cols=80 \
    pivrel=1e-3 sensfile="../psf/sens.output" checklimitdest=both
    pss ( comp_out gnda ) pss fund=32768 harms=40
    + errpreset=conservative autotstab=yes saveinit=yes oscic=lin
    + method=trap annotate=status
    pnoise ( comp_out gnda ) pnoise sweeptype=relative
    + relharmnum=1 start=100 stop=16384 dec=20 maxsideband=40
    + noiseout=[pm] annotate=status

    Digging further on this, I did notice this to be working fine if under "Output Harmonics" in pss form I choose "Select from Range" (which i set to 0 Hz to 4*32768 Hz) rather than choosing "Number of Harmonics"  (setting the field to 40) option which is what i originally got the error for.  In that case (i.e. when choosing Select from range in pss form) , the analysis statements at the bottom of netlist are:

    simulatorOptions options psfversion="1.1.0" reltol=1e-3 vabstol=1e-6 \
    iabstol=1e-12 temp=temp_cor tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 \
    gmindc=1e-15 rforce=1 maxnotes=5 maxwarns=5 digits=5 cols=80 \
    pivrel=1e-3 sensfile="../psf/sens.output" checklimitdest=both
    pss ( comp_out gnda ) pss fund=32768 harmsvec=[1]
    + errpreset=conservative autotstab=yes saveinit=yes oscic=lin
    + method=trap annotate=status
    pnoise ( comp_out gnda ) pnoise sweeptype=relative
    + relharmnum=1 start=100 stop=16384 dec=20 maxsideband=40
    + noiseout=[pm] annotate=status

    Thanks,

    Sharjeel

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 5 years ago in reply to SharjeelRiaz

    Dear SharjeelRiaz,

    Just to add to Andrew's observations, I have a  few comments and things to check if I may...

    1. I noticed you are setting spectre to both automatically determine the time required to achieve steady-state oscillation and ignoring any initial conditions you may have in your simulation setup. Have you examined the waveforms under the pss_tran results to verify they are what you expect at the end of the stab phase?

    2. What was the value of tstab that spectre used?

    3. Have you examined the resulting estimated time domain steady-state solution following the pss analysis under the  pss_td analysis results. Is the frequency close to 32.768 KHz and do the results appear close to what you expect?

    Perhaps these may provide some additional clues into your problem. I've had a lot of experience with simulating quartz based XO and VCXO and thought I might at least pose some thoughts....

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • SharjeelRiaz
    SharjeelRiaz over 5 years ago in reply to ShawnLogan

    Hi Shawn,

    Thanks for your input

    1. I haven't used IC parameter to set initial conditions of my oscillator at least for PSS sims and using calculate IC seems to work well

    2. For the particular load in my design (~17 pF), spectre seems to converge to steady state within 300 ms and does indeed settle very nicely to expected oscillation frequency (to within about ~ 20 ppm) : The Estimated oscillating frequency from Tstab Tran is = 32.7685 kHz .

    3. Yes, I have plotted the pss outputs and yes they look as expected.

    By the way, I am trying to replicate the issue again as i deleted the database last night, so can dump more data later if needed.

    Regards,

    Sharjeel

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 5 years ago in reply to SharjeelRiaz

    Dear Sharjeel,

    Thank you for your responses! Two other thoughts...for your consideration only.

    1. Have you looked at the spectrum in the pss-fd data and sidebands? I am wondering if the high-Q nature of your circuit is leading to issues given the narrow sidebands. 

    2. What is the Q of your resonator model?  I am assuming you are using a variant of the Butterworth model. I am also wondering if it might be worth reducing the resonator  Q a bit and re-submiting your simulation with a few values of lesser Q.

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • SharjeelRiaz
    SharjeelRiaz over 5 years ago in reply to ShawnLogan

    Thanks for staying with this, Shawn.

    1. I will try to de-Q my resonator and then step up to a very tight Q and see if that works. By the way, two of the sims I fired last night have  failed to converge (I am digging further). There is quite a bit of data to process, so i will get back later with consolidated findings. Btw,  My tstab method was unset which I believe defaults to traponly. I have specifically set it to trap now and see if that leads me anywhere (spectreRF manual suggestion if trapezoidal ringing causes convergence to fail)

    2. The Q of my model is around 11000. It's a an RLC tank with a shunt cap (generalized model of quartz crystals). Sorry, could you please elaborate on what you mean by a variant of butterworth model? 

    Regards,

    Sharjeel

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

    Hi Sharjeel,

    One more thing to add (if it hasn't been stated already), if you are simulating a high Q circuit, it's typically better to use hb instead of pss. Ideally both will give the same answer, but hb is more suited for highQ oscillators.  Shooting Newton is better for strongly nonlinear circuits (rapidly changing waveforms in time), but it can struggle with high Q oscillators.   If you have a high Q oscillator followed by strongly nonlinear circuitry, try using hb, but you'll need to use many harmonics.  

    • Set the number of harmonics to the period divided by the fastest rise/fall time in the circuit. The risetime here is calculated by taking the highest slew rate in the transition, and calculating the 0 to 100% risetime​ based on that maximum slew rate.  
    • Set oversample to 2.    

    Do you have access to Cadence Online Support?  If so, check out these articles: 

    • 20486872    Getting The Most Out Of Spectre® APS RF 18.1 - Maximizing Performance  
    • 20444400  How to simulate a high Q (LC or crystal) oscillator followed by strongly nonlinear circuitry (e.g. hard switching buffers )

    best regards,

    Tawna

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to SharjeelRiaz

    Hi Sharjeel,

    Looking further at the original issue, the only way I can replicate the problem is if i specify the number of harmonics for pss to save to be 0 (zero). With 40 I get no problem.

    Something strange is happening here - because it's clearly converged (otherwise the results wouldn't be there at all) - the fact that you say the output signal appears in the pss_fd results with harmonics also suggests that it ought to work.

    You should contact customer support - it's going to be pretty hard to diagnose this further here.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • SharjeelRiaz
    SharjeelRiaz over 5 years ago in reply to Tawna

    Hi Tawna,

    Sorry for circling back to this after three months. Although, I did manage to make PSS+PNOISE work by adjusting various parameters using shooting method, my simulations have always been plagued with inconsistency of results. Coming back to this page, I thought maybe I should try using HB noise once again as per your suggestions and articles,  and see if there is more consistency. 

    However I am not sure if choosing ~150000 (comparator output edge rise time in my circuit ~ 200 ps; Tclk = 1/32768 ) harmonics for an HB analysis is reasonable. Could you please advise?

    Thanks,

    Sharjeel

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 5 years ago in reply to SharjeelRiaz

    support.cadence.com/.../ArticleAttachmentPortal

    First and foremost, I do not intend not imply that I can provide the insight that either Tawna or Andrew can provide!

    Nevertheless, in the hope of providing some information to you in light of it being a US Holiday, the number of harmonics specified on the pss options GUI, sets the maximum time step of the integration within the pss transient simulation. Hence, if you do not separately specify a value for parameter “maxstep”, spectre will use the number of harmonics to compute a value for parameter “maxstep”. This is detailed in the article at URL:

    support.cadence.com/.../ArticleAttachmentPortal

    I’ve included some text from that article below for your convenience. In your case, if the number of harmonics is specified as 150,000 relative to a frequency of 32.868 kHz, the value of maxstep computed by spectre will be 8.138 ps or 1/25th of a period of 150e3*32868 Hz = 4.9152 GHz. This is not an unreasonable value for maxstep given your high Q resonator, but you may find it to be more efficient simulation timewise to reduce the value of reltol from its value with errpreset=“conservative” if you wish.

    Again, Tawna or Andrew may provide more insight than I!

    Shawn

    From URL:

    support.cadence.com/.../ArticleAttachmentPortal

    Maxacfreq forces 5 timesteps in the period of the frequency set by maxacfreq (in pss options form).

    Maximum harmonics sets maxstep to force 20 timepoints in the period of the highest harmonic of the pss (on the choosing analyses form).

     

    Let’s take an example. Say the PSS frequency is 1GHz and you want pnoise to go up to 100GHz. (Think easy math.)

    One way is to set maxacfreq to 100GHz. This forces 5 timepoints in the period of 100GHz.

    The other way is to set 25 harmonics in pss. This forces 20 timepoints in the period of 25GHz.

     

    Note that 20 timepoints in the period of 25GHz is exactly the same as 5 timepoints in the period of 100GHz.

    • 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