• 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. Setting up a jitter simulation for Ring Oscillator

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 125
  • Views 16204
  • 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

Setting up a jitter simulation for Ring Oscillator

harish patruni
harish patruni over 4 years ago

Hi,

I am designing a programmable CMOS ring oscillator in Virtuoso ICADV12.3-64b environment.

By using different digital control settings, I can choose the odd number of inverters in the ring correspondingly.

Aim is to find out the ways that they can affect the periodicity.

I was able to get the time periods for each ring across the process, supply voltage, temperature variations. And also with help of Monte-Carlo simulations I was able to find the standard deviation of the time period.

I wanted to know what are the other possibilities that they can affect the periodicity. I think one is the random jitter.

I guess to find out the amount of jitter for the ring oscillator, pss + pnoise is the way. Correct me if I am wrong.

 

Some questions:

  1. Why are there two separate analysis PSS, PNOISE to measure Jitter ? And What do they do  ?

PSS:

  1. Shooting or Harmonic balance , which is most preferrable for RO based designs and why ?
  2. Is Beat frequency equal to frequency of RO ? If I just choose 'Auto calculate' will the tool be able to pick up correct RO frequency ?
  3. What is the safe and best value for to choose number of harmonics ? Does it vary with the different RO frequencies ?

PNOISE:

  1. What does 'Output frequency range'  do in the PNOISE simulations ?
  2. Noise type 'Jitter' -> is it the random phase jitter of clock ?
  3. Are the number of sidebands in PNOISE should be equal to number of harmonics defined in the PSS ?

 

I am new to run these set of simulations.

Could you please throw some light on how to get started and please help me in this regard ?

 

Thanks & Regards,

Harish

  • Cancel
Parents
  • ShawnLogan
    ShawnLogan over 4 years ago

    Dear Harish,

    > I guess to find out the amount of jitter for the ring oscillator, pss + pnoise
    > is the way. Correct me if I am wrong.

    A transient noise simulation can also be used, but given your level of experience with this type of simulation, I personally suggest using a pss/pnoise simulation.

     
    > Some questions:
    > 1 Why are there two separate analysis PSS, PNOISE to measure Jitter ?
    > And What do they do?

    The pss portion of the simulation attempts to determine the steady-state response of the waveforms after an initial "tstab" portion of what appears to be a transient simulation. The result of the pss segment of the analysis provides the large signal operating point from which the noise spectrum is derived. Non-linear large signal steady-state waveforms will modulate the noise sources within the devices and produce modulation products that contribute to the phase noise. Without knowledge of the amount of non-linearity of the steady-state waveforms, one cannot determine the phase noise at any frequency offset from the carrier with any degree of accuracy.

    The pnoise segment of the analysis determines the noise components as a function of offset frequency from the carrier frequency (in your case ring oscillator frequency). It determines and includes the modulation of device noise by the non-linear steady-state response and is the final step of the pss/pnoise analysis.

    A more complete and Cadence "authorized" description may be found in the "Periodic Noise Analysis (pnoise)" section of the Spectre Circuit Simulator Reference at the Cadence On-line support URL:

    support.cadence.com/.../techpubDocViewerPage

    > PSS:
    > 1 Shooting or Harmonic balance , which is most preferrable for RO based
    > designs and why?

    In your case, assuming your ring oscillator waveforms are CMOS like (i.e., rail-to-rail with significant harmonic content), a shooting pss analysis is likely to converge and be more efficient than a harmonic balance based pss analysis. The latter will attempt to solve the large signal response using a varying set of coefficients to sinusoids at the specified oscillator frequency. If your steady-state response appears more sinusoidal than the "square wave" CMOS waveform observed in a relatively low frequency CMOS based oscillator, the harmonic balance algorithm is a more efficient algorithm for determining the steady-state waveform response.

    > 2 Is Beat frequency equal to frequency of RO ?

    Yes.

    > If I just choose 'Auto calculate' will the tool be able to pick up correct RO frequency?

    That is the goal of the "auto calculate" radio button, but if you know the oscillator frequency with any degree of accuracy, why not just enter it into the form?

    > 3 What is the safe and best value for to choose number of harmonics ? Does it
    > vary with the different RO frequencies?

    This is a question that is very often raised by those performing a pss/pnoise analysis and there is no "safe and best value" for all simulations. The appropriate number requires knowledge of your steady-state waveform and the required noise floor of your phase noise characteristic. There are a number of articles Cadence has written detailing how the choice of the number of harmonics impacts both the accuracy of one's phase noise estimate as well as the pss simulation time. The number of harmonics is only one of the terms that impacts the simulation and is used with other simulator settings to set simulation accuracy parameters and determine simulation speed/efficiency. I might recommend you take some time to study the Cadence On-line support articles concerning this subject at the following URL:

    "Effects of maxacfreq, number of harmonics, and step size on SpectreRF simulation (shooting engine)"

    support.cadence.com/.../ArticleAttachmentPortal

    "Which is better: Setting pss harmonics or maxacfreq to obtain good pnoise accuracy?"

    support.cadence.com/.../ArticleAttachmentPortal

    "FAQ: Guidelines for setting Pnoise/HBnoise sidebands to get accurate results."

    support.cadence.com/.../ArticleAttachmentPortal

    Of course, the best reference to start your study is the Cadence Virtuoso Spectre Circuit Simulator and Accelerated Parallel Simulator RF Analysis User Guide. There is a Rapid Adoption Kit (RAK) at URL:

    support.cadence.com/.../ArticleAttachmentPortal

    > PNOISE:

    > 1 What does 'Output frequency range'  do in the PNOISE simulations?

    It represents the range of frequencies over which the noise components are determined.

    > 2 Noise type 'Jitter' -> is it the random phase jitter of clock?

    The parameter "noise type" specifies the computation of time-averaged or time-sampled noise information. Its possible values are timeaverage, correlations, timedomain, pmjitter, and sampled. I would recommend you closely study the excellent presentation by Ms. Tawna Wilsey of Cadence at its RL of:

    support.cadence.com/.../ArticleAttachmentPortal

    to determine the most appropriate value for your interest. This document also contains a very nice and concise set of descriptions of the various noise simulations spectreRF provides and will be useful to add to your background information.

    > 3 Are the number of sidebands in PNOISE should be equal to number of
    > harmonics defined in the PSS?

    In shooting pnoise, this number determines the maximum sideband included when computing noise that is either up-converted or down-converted to the output by the periodic drive signal.
     
    > I am new to run these set of simulations.
    > Could you please throw some light on how to get started and please help me in this regard ?

    Hopefully, I have provided background information and a few On-line support articles to allow you to better understand the function of a pss/pnoise simulation. this type of simulation is not a "simple" simulation and requires an understanding of your particular circuit, its performance and requirements, and the impact of a numerous simulator choices/settings. Please take some time to study the latter and have some patience Harish!

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • harish patruni
    harish patruni over 3 years ago in reply to ShawnLogan

    Hello Shawn,

    This is Harish. Hope you are doing good. I have gone through all the docs that you have suggested, i have got some basic understanding of it and I want to know few extra things.

    Just to refresh the memory,

    Design functionality:

    This is a CMOS based programmable ring oscillator. By using different digital control settings, we can choose the odd number of inverters in the ring and derive the clock signal correspondingly.

    For example at one particular digital control setting the design looks like this,

    I have got this task -> what proportion of the accumulated period length jitter standard deviation is anticipated to be due to local Gaussian noise? (ensure that the goal is to set up the simulation to capture only the local gaussian noise (local thermal noise).  Other transients such as flickr and shot noise should not be included in the simulation)

    There could be many ways to do this analysis, I presume 'PSS+PNOISE' is one way to do this (correct me if I am wrong).

    I tried to explain the ADE settings below.

    Let's say oscillation frequency = 512MHz, supply voltage = 0.9V and PSS, PNOISE ADE settings are as shown below.

    1. Why PSS engine is shooting ??

    In PSS analysis, I have chosen engine as 'shooting'. I read somewhere that for the macros like Ring oscillators with sharp edges it is advisable to use shooting method. And I also tried to run sim with 'harmonic balance' engine, but PSS is not converging.

     2. Why number of harmonics in PSS = 40, and maximum side bands in PNOISE = 30 ??

    I took Period Jitter (Jc) over 100 cycles as a metric.

    The results I have got with the above settings is matching with the results I have with the harmonics as high as 50 and selected 'full spectrum' as the side bands. To have lesser run time I chose  harmonics in PSS = 40, and maximum side bands in PNOISE = 30

    Now the ask is At each sample, what proportion of the accumulated period length jitter standard deviation is anticipated to be due to local Gaussian noise? (ensure that the goal is to set up the simulation to capture only the local gaussian noise (local thermal noise).  Other transients such as flickr and shot noise should not be included in the simulation)

     

    I could only get the total noise periodic jitter over multiple cycles as shown in the below direct form,

    Is this the way to measure periodic jitter ? I am unable to separate out the contribution only due to the local gaussian noise from the total noise, is there a way to find out this ??

     

    Your help is much appreciated.

     

    Regards,

    Harish

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 3 years ago in reply to harish patruni

    Dear Harish,

    harish patruni said:
    I have got this task -> what proportion of the accumulated period length jitter standard deviation is anticipated to be due to local Gaussian noise? (ensure that the goal is to set up the simulation to capture only the local gaussian noise (local thermal noise).  Other transients such as flickr and shot noise should not be included in the simulation)

    This request is rather unusual  - i.e., to ignore the flicker and shot noise! Flicker noise components of MOS devices in modern technologies tends to dominate the noise sources over the frequency range of greatest interest in most applications. Is this just a homework assignment of some type?

    harish patruni said:
    Why PSS engine is shooting ??

    For non-sinusoidal inputs, a shooting algorithm is more efficient and far more likely to converge to a steady-state solution than a harmonic balance algorithm. The latter attempts to fit the coefficients of a sinusoidal signal to the steady-state solution. If your waveform has sharp transitions or appears more CMOS in nature, a shooting algorithm is the most appropriate to select to estimate the steady-state waveform.

    harish patruni said:
    And I also tried to run sim with 'harmonic balance' engine, but PSS is not converging.

    Based on my comments and your waveform, it makes sense that the use of a harmonic balance algorithm to estimate the steady-state solution does not converge for your ring oscillator.

    harish patruni said:
    2. Why number of harmonics in PSS = 40, and maximum side bands in PNOISE = 30 ??

    The function of the number of harmonics in the pss settings GUI and maximum side bands in the noise settings GUI are not the same when using the shooting algorithm. For the harmonic balance engine, they are recommend to be the same numeric value (as indicated in documentation from "Help" radio button on pnoise settings GUI - see Figure 1).

    The number of harmonics specified in the pss GUI impacts the maximum integration step size of your pss simulation with parameter maxacfreq. The algorithm to determine the parameter maxstep in a pss analysis is detailed in the Cadence On-line support article at URL:

    support.cadence.com/.../ArticleAttachmentPortal

    From this URL, it states:

    "The PSS algorithm first sets maxstep = (T/#harmonics)/20, which is 1/20th of the period of the highest frequency harmonic requested. Actually,nothing less than 10 is used for #harmonics when it sets maxstep with this equation. In particular, specifying zero harmonics by setting

    #harmonics = 0, maxstep will be set to (T/10)/20 = T/200."

    In your case, you are not setting maxacfreq, so the maxstep parameter is only dependent on the number of harmonics you have set.

    The Maximum Sideband parameter on the pnoise settings GUI sets the number of harmonics used to compute the noise by folding the noise from the number of harmonics you choose for the "Maximum Sideband" parameter. You need to determine an estimate the number of harmonics in your steady-state waveform are significant. In your case, your ring oscillator waveform appears to contain a very high number of significant harmonics as its transition times are far less than its period.

    harish patruni said:
    Is this the way to measure periodic jitter ? I am unable to separate out the contribution only due to the local gaussian noise from the total noise, is there a way to find out this ??

    The methodology appears correct. Please see the steps outline in the SpectreRF manual ("Spectre Circuit Simulator and Accelerated Parallel Simulator RF Analysis in ADE Explorer Workshop", Product Version 21.1, August 2021) starting on page 294 at the Cadence On-line URL:

    https://support.cadence.com/apex/techpubDocViewerPage?xmlName=spectrerfexplorerworkshop.xml&title=Spectre%20Circuit%20Simulator%20and%20Accelerated%20Parallel%20Simulator%20RF%20Analysis%20in%20ADE%20Explorer%20Workshop%20--%20Simulating%20Oscillators%20-%20Running%20the%20PSS%20and%20Pnoise%20analysis&hash=pgfId-1094501&c_version=21.1&path=spectreRFexplorerWorkshop/spectreRFexplorerWorkshop21.1/chap3.html#pgfId-109450

    The only method I am aware of to compile the noise contribution of various noise sources after a pss/pnoise analysis uses a SKILL function written by Cadence. This is described at Cadence URL:

    https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1Od0000000tlwYEAQ&pageName=ArticleContent

    Shawn

    Figure 1:pnoise GUI showing "Help" Radio Button and Resulting Help Detailing Function of Maximum Sideband Parameter

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • ShawnLogan
    ShawnLogan over 3 years ago in reply to harish patruni

    Dear Harish,

    harish patruni said:
    I have got this task -> what proportion of the accumulated period length jitter standard deviation is anticipated to be due to local Gaussian noise? (ensure that the goal is to set up the simulation to capture only the local gaussian noise (local thermal noise).  Other transients such as flickr and shot noise should not be included in the simulation)

    This request is rather unusual  - i.e., to ignore the flicker and shot noise! Flicker noise components of MOS devices in modern technologies tends to dominate the noise sources over the frequency range of greatest interest in most applications. Is this just a homework assignment of some type?

    harish patruni said:
    Why PSS engine is shooting ??

    For non-sinusoidal inputs, a shooting algorithm is more efficient and far more likely to converge to a steady-state solution than a harmonic balance algorithm. The latter attempts to fit the coefficients of a sinusoidal signal to the steady-state solution. If your waveform has sharp transitions or appears more CMOS in nature, a shooting algorithm is the most appropriate to select to estimate the steady-state waveform.

    harish patruni said:
    And I also tried to run sim with 'harmonic balance' engine, but PSS is not converging.

    Based on my comments and your waveform, it makes sense that the use of a harmonic balance algorithm to estimate the steady-state solution does not converge for your ring oscillator.

    harish patruni said:
    2. Why number of harmonics in PSS = 40, and maximum side bands in PNOISE = 30 ??

    The function of the number of harmonics in the pss settings GUI and maximum side bands in the noise settings GUI are not the same when using the shooting algorithm. For the harmonic balance engine, they are recommend to be the same numeric value (as indicated in documentation from "Help" radio button on pnoise settings GUI - see Figure 1).

    The number of harmonics specified in the pss GUI impacts the maximum integration step size of your pss simulation with parameter maxacfreq. The algorithm to determine the parameter maxstep in a pss analysis is detailed in the Cadence On-line support article at URL:

    support.cadence.com/.../ArticleAttachmentPortal

    From this URL, it states:

    "The PSS algorithm first sets maxstep = (T/#harmonics)/20, which is 1/20th of the period of the highest frequency harmonic requested. Actually,nothing less than 10 is used for #harmonics when it sets maxstep with this equation. In particular, specifying zero harmonics by setting

    #harmonics = 0, maxstep will be set to (T/10)/20 = T/200."

    In your case, you are not setting maxacfreq, so the maxstep parameter is only dependent on the number of harmonics you have set.

    The Maximum Sideband parameter on the pnoise settings GUI sets the number of harmonics used to compute the noise by folding the noise from the number of harmonics you choose for the "Maximum Sideband" parameter. You need to determine an estimate the number of harmonics in your steady-state waveform are significant. In your case, your ring oscillator waveform appears to contain a very high number of significant harmonics as its transition times are far less than its period.

    harish patruni said:
    Is this the way to measure periodic jitter ? I am unable to separate out the contribution only due to the local gaussian noise from the total noise, is there a way to find out this ??

    The methodology appears correct. Please see the steps outline in the SpectreRF manual ("Spectre Circuit Simulator and Accelerated Parallel Simulator RF Analysis in ADE Explorer Workshop", Product Version 21.1, August 2021) starting on page 294 at the Cadence On-line URL:

    https://support.cadence.com/apex/techpubDocViewerPage?xmlName=spectrerfexplorerworkshop.xml&title=Spectre%20Circuit%20Simulator%20and%20Accelerated%20Parallel%20Simulator%20RF%20Analysis%20in%20ADE%20Explorer%20Workshop%20--%20Simulating%20Oscillators%20-%20Running%20the%20PSS%20and%20Pnoise%20analysis&hash=pgfId-1094501&c_version=21.1&path=spectreRFexplorerWorkshop/spectreRFexplorerWorkshop21.1/chap3.html#pgfId-109450

    The only method I am aware of to compile the noise contribution of various noise sources after a pss/pnoise analysis uses a SKILL function written by Cadence. This is described at Cadence URL:

    https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1Od0000000tlwYEAQ&pageName=ArticleContent

    Shawn

    Figure 1:pnoise GUI showing "Help" Radio Button and Resulting Help Detailing Function of Maximum Sideband Parameter

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