• 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. SPECTRE PNOISE and JITTER calculations

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 125
  • Views 18628
  • 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

SPECTRE PNOISE and JITTER calculations

RRThomas
RRThomas over 9 years ago

Hello,

I am trying to find out the clk-clk jitter performance of my VCO and after reading the inputs from the forum & Jitter_AN.pdf,  I could set up the simulation.

But the jitter expression, (drplRFJc ?from 1000 ?to 750000000 ?k 1 ?multiplier 1 ?result "pnoise" ?unit "UI") works with a single corner , single Vtune simulation. It annotates the Jc value into the graph. It returns the value in calculator also.

But it fails ( no annotation, calculator also fails to return te jitter value)  when I do a corner simulation.

It also fails when I do a single corner, Vtune sweep. So, in short it seems the jitter calculation fails when I have a family of waves.

I thought I could use famMap function, but couldn't manage to do it.

Could you please help me to solve this issue ?

Best Regards,

Thomas

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    How are you doing the corner simulation? Are you using ADE XL? Which version of the IC tools are you using (Help->About in the CIW).

    The Forum Guidelines (the first post in each forum) ask you to provide such details so that it makes it more efficient to answer questions appropriately.

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RRThomas
    RRThomas over 9 years ago

    Hello,

    I am sorry for the incomplete post.

    1.

    I am using ADE XL.

    -->I took the expression for jitter by right clicking and going to direct plot form.

    --> Jitter expression is not working over Corner and/or Vtune sweep.

    I tried with ADE L a sweep of Vtune also.

    IC6.1.6-64b.500.10 is my version.

    2(a)  Since I get phase noise curves properly , I tried to integrate it to find the area and use the formula

    --> sqrt(2*(10**(Area/10))) radians

    --> divide it by 2*pi*fosc to get rms jitter  in sec.

    Is, integ () function not supposed to use for integration of quantities in dBc  ?

    2(b) Using the formula in Jitter_AN ( Nr 18).

    out_noise_V_sqrtHz = getData("/out" ?result "pnoise");;

    S(f) in eq 18 seems to be square of this. Am I right ?

    Both 2(a) and 2(b) returned different values.

    --> It is also not matching with value returned by (drplRFJc ?from 1000 ?to 750000000 ?k 1 ?multiplier 1 ?result "pnoise" ?unit "UI")

    --> comparion was done with matching units, say sec or UI

    Could you tell me what am I doing wrong ?


    Best Regards

    - Thomas

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    Thomas,

    I would suggest that you use the integration options on the direct plot form - set up what you want and then use the "add to outputs" to get the expression you need added to the ADE XL outputs.

    This is far more sensible than trying to do it yourself - there has been a lot of thought put into ensuring that the calculations are done correctly. Integrating a curve in dBc doesn't make a lot of sense - you'd need to integrate the original noise data rather than having been converted into log units (dBc) - but the direct plot functions do all this for you.

    I only have limited time this week, so can only give a brief response.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RRThomas
    RRThomas over 9 years ago

    Hi Andrew,


    Thank you very much for the reply.
    I understand that calculating myself is lot of effort.


    As mentioned in the first post, my basic problem is that annotating jitter( Jc or Jcc ) from the direct plot form dont work when I have a family of waves. I use sweep function inbuilt in the pss form.  I tried to calculate it myself only because the direct plot didnt work.

    I generated the expression for the Jc, (drplRFJc ?from 1000 ?to 750000000 ?k 1 ?multiplier 1 ?result "pnoise" ?unit "UI")

    from the "direct plot" -> "add to outputs" only.

    --> For a single corner and single Vtune, jitter annotation works fine.

    --> For a single corner + Vtune sweep , jitter annotation DONT work.

    --> For a full corner run and single Vtune, jitter annotation DONT work.

    --> For a full corner run + Vtune sweep, jitter annoation DONT work.

    So my question is whether the expression, (drplRFJc ?from 1000 ?to 750000000 ?k 1 ?multiplier 1 ?result "pnoise" ?unit "UI")  can handle family of waves ? Or, it was supposed to handle only single simulation data.

    Best Regards,

    Thomas

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    Thomas,

    OK, you rather missed out that information - you didn't give all the information in the first post, and then started talking about calculating it yourself in the follow up.

    This is probably a bug; Try using famMap('drplRFJc ?from 1000 ?to 750000000 ?k 1 ?multiplier 1 ?result "pnoise" ?unit "UI") .

    If that fixes it, you should contact customer support so that we can get drplRFJc fixed so that this is unnecessary. If it doesn't work, then you need to contact customer support so that we can fix whatever other problem there is!

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RRThomas
    RRThomas over 9 years ago

    Hi Andrew,

    I tried the famMap.

    famMap('drplRFJc ?from 1000 ?to 750000000 ?k 1 ?multiplier 1 ?result "pnoise" ?unit "UI")

    and the error is,

    *Info* The input waveform has a logarithmic X scale. This scale might not be preserved after the waveform is flipped.

    expression evaluation failed: val is not legal.

    expression evaluation failed: famMap('drplRFJc ?from 1000 ?to 750000000 ?k 1 ?multiplier 1 ?result "pnoise" ?unit "UI")

    "(\"quotient\" 0 t nil (\"*Error* quotient: can't handle (3141.593 / (7.479339e+08 2.718515e+09))\"))"

    So seems some problem is there. I shall report it to customer support.

    Best Regards,

    Thomas

    • 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