• 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. Reconciling phase-noise obtained using pss+pnoise analysis...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 125
  • Views 6332
  • 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

Reconciling phase-noise obtained using pss+pnoise analysis with that obtained using transient noise and PN() function

taer
taer over 4 years ago

Hi Andrew, 

The phase-noise simulation results obtained using pss+pnoise analysis is found to be around 10dB lower at various offsets than that obtained from transient noise analysis. The nominal frequency of the oscillator is around 350kHz. The simulation results are attached. What could be the issue here?

In the below, the green curve shows the pss+pnoise simulation results, while the red one shows the results obtained from transient noise. The PN() function uses a windowSize=32768 for the below results. 

The below shows a comparison similar to the above, the only difference being the window size=52488

The settings of the transient analysis are as below: 

The function PN() is set up as below: 

The simulation is setup to run for a time of 5s so as the large window size can be used. 

Thanks. 

  • Cancel
Parents
  • ShawnLogan
    ShawnLogan over 4 years ago

    Dear taer,

    Speaking for myself, there is nowhere near enough detail to pinpoint what the source of your discrepancy might be. There are numerous posts on this topic and correlation between the two type of analyses is good when attention is paid to the details of the simulations.

    Examples of items that lead me to the statement about the lack of sufficient information include:

    a. In your transient noise GUI, the only instance for which noise is enabled is shown as "CtoTFE". I have no idea what this is and how it relates to the circuit for which you performed a css/pnoise analysis.

    b. How ddid you justify your use of max = 20 MHz in your transient noise analysis? This parameter plays a very significant role in the measured transient noise.

    c. The arguments for the PN() function do not include the coherent gain for the window type you are using. The use of a Hanning window modifies the amplitude and the correction factor is about 2.0. You have chosen no coherent gain, and hence comparing your two phase noise plots is not really comparing only the phase noise but also the impact of your Hanning window. Did you try a rectangular window? It will not warp the amplitude.

    d. Does your transient noise analysis include the exact time points required for a 32768 point DFT analysis or even a 524288? The strobe transient option should be used to assure your DFT accuracy is not impacted by interpolation errors.

    e. Have you validated that the two measured frequencies from your transient noise simulation and your pss/pnoise simulation are  identical? If not the phase noise at a given frequency offset cannot be directly compared. You must normalize the two phase noise results so they are, in effect, at measured at an identical frequency. Phase noise is defined on a unit interval basis and if the two unit intervals are not the same, the two phase noise results will differ as a result of the frequency difference.

    f. Have you compared the amplitudes of your pss output (i.e., the output you defined in your pss/pnoise simulation) and your transient noise signal "/out" over the period in which you are doing your PN() analysis? The two must correlate with the latter NOT including any initial conditions where the signal "/out" is reaching its steady-state amplitude.

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • taer
    taer over 4 years ago in reply to ShawnLogan

    Dear ShawnLogan, 

             Thanks a lot for the reply. Appreciate your thoughts. The following are the details: 

    a) only instance for which noise is enabled is shown as "CtoTFE": 

          This instance is the top-level of the oscillator that I am simulating. No other components are there in the testbench, other than voltage sources and ideal capacitors from analogLib. In other words, the noise contributing elements/circuits that are seen by the pss/pnoise analysis are exactly same as that seen by the transient-noise analysis. 

    b)  Choice of Fmax=20MHz. 

          The frequency of the relaxation oscillator (square-wave output) is 328kHz. So 20MHz Fmax is a number that is chosen substantially larger than that. Are there any specific guidelines for choosing this number? Secondly, the transient noise results suggest a worse noise performance than the pss+pnoise. Hence, I believe, the chosen Fmax is sufficient. What do you think?

    c) Arguments of the PN() function. 

           I used a coherent gain factor of 2 as you suggested. However, the results are not very different from the one without the gain factor. A rectangular window however, gives a totally different result. I am running simulations now, will add them to this thread later. 

    d) Exact time points required for a  32768 point DFT: 

           Since the oscillation frequency is ~328kHz or the equivalent time-period is  3.042u, the total transient time period is chosen greater than 3.042u*524288=1.6s, to make sure that there are enough time-points in the simulation. How can we use the strobe option in this case? Since the clock transition edges are dithered by the noise, can we provide a single strobe value that will capture the details? Can you please elaborate how to do this? 

    e)  frequencies from your transient noise simulation and your pss/pnoise simulation are  identical

          Yes. both of them are identical 

    f) Have you compared the amplitudes of your pss output: 

         Yes. the circuit is a square wave oscillator and the amplitudes are equal. 

    Thanks

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 4 years ago in reply to taer

    Dear taer,

    Thank you for supply some additional details of your simulations as it helps my understanding, anyway! In response to your added questions...

    taer said:

    b)  Choice of Fmax=20MHz. 

          The frequency of the relaxation oscillator (square-wave output) is 328kHz. So 20MHz Fmax is a number that is chosen substantially larger than that. Are there any specific guidelines for choosing this number? Secondly, the transient noise results suggest a worse noise performance than the pss+pnoise. Hence, I believe, the chosen Fmax is sufficient. What do you think?

    First, if you are designing a relaxation oscillator, its phase noise performance will not be superior. These types of VCO are known to provide relatively large amounts of phase noise.

    Nevertheless, setting the appropriate value of noisefmax in a transient noise simulation is very important as the noise will be aliased from high frequencies to lower frequencies. There is a discussion outlining the criteria for choosing noisefmax, as well as a tutorial on transient noise, in the application note ""Virtuoso Spectre Transient Noise Analysis", March 2019 at URL:

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

    on pages 29-21. Did you study that reference for some guidance? The discussion recommends performing a few transient noise simulations with increasing values of noisefmax until the transient noise figure of merit you are studying stabilizes. 20 MHz sounds low to me as I am thinking your circuit bandwidths are likely much greater than 20 MHz and the 1/f noise corner of modern devices can be significant relative to 20 MHz.

    taer said:
    I used a coherent gain factor of 2 as you suggested. However, the results are not very different from the one without the gain factor.

    That does not make sense to me anyway. There should be a difference.

    taer said:
    Since the oscillation frequency is ~328kHz or the equivalent time-period is  3.042u, the total transient time period is chosen greater than 3.042u*524288=1.6s, to make sure that there are enough time-points in the simulation. How can we use the strobe option in this case? Since the clock transition edges are dithered by the noise, can we provide a single strobe value that will capture the details? Can you please elaborate how to do this? 

    I think we should review what the phase noise function, as defined in a transient noise simulation context, is doing. The PN() function provides the power spectral density of the time interval error. The time interval error (TIE) is a series of measurements of the degree to which each successive positive (or negative) edge of your oscillator waveform differs from its ideal location. Hence, your TIE data has one sample per period of your VCO. The PN() function relies of converting the TIE data, whose x-axis is time, to the frequency domain using a DFT. For a given size, N, of a DFT, its accuracy is dependent on the accuracy of its input data. Hence, if your TIE data relies on a lot of interpolation of your spectre data, its accuracy will be compromised. If you are simulating a VCO whose exact frequency is not known (i.e., it is not phase-locked), then the accuracy of your TIE data is a function of the number of samples of your VCO waveform as it will use those samples to estimate the threshold crossing times. If the frequency is known, the one sets the strobetime to compute spectre data at exact submultiples of the period so no interpolation is required. This is discussed in the Cadence Application note at URL:

     Getting accurate results when using the calculator DFT and the Fourier component.

    So the questions that come to mind are:

    1. Are you setting any value for maxstep in your transient noise simulation to assure your estimate of the VCO period is sufficiently accurate? If you know the frequency exactly (unlikely...but just in case), have you used the transient GUI panel to set a strobeperiod to avoid interpolation in the DFT computation)?

    2. Have you allowed for some setting time in your transient noise simulation to allow the VCO frequency to settle and clipping the output waveform of the VCO stariing after that settling time in the PN function?

    3. It seems highly unlikely you need N  = 524288 points in your DFT. Since the VCO frequency is 328 KHz, the frequency bin width of your resulting PN() output will be determined by N and fvco/2. 

    There are a lot of questions that I've introduced...but getting an accurate estimate of VCO phase noise - or just circuit noise  using a transient noise simulation requires study and work.

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • ShawnLogan
    ShawnLogan over 4 years ago in reply to taer

    Dear taer,

    Thank you for supply some additional details of your simulations as it helps my understanding, anyway! In response to your added questions...

    taer said:

    b)  Choice of Fmax=20MHz. 

          The frequency of the relaxation oscillator (square-wave output) is 328kHz. So 20MHz Fmax is a number that is chosen substantially larger than that. Are there any specific guidelines for choosing this number? Secondly, the transient noise results suggest a worse noise performance than the pss+pnoise. Hence, I believe, the chosen Fmax is sufficient. What do you think?

    First, if you are designing a relaxation oscillator, its phase noise performance will not be superior. These types of VCO are known to provide relatively large amounts of phase noise.

    Nevertheless, setting the appropriate value of noisefmax in a transient noise simulation is very important as the noise will be aliased from high frequencies to lower frequencies. There is a discussion outlining the criteria for choosing noisefmax, as well as a tutorial on transient noise, in the application note ""Virtuoso Spectre Transient Noise Analysis", March 2019 at URL:

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

    on pages 29-21. Did you study that reference for some guidance? The discussion recommends performing a few transient noise simulations with increasing values of noisefmax until the transient noise figure of merit you are studying stabilizes. 20 MHz sounds low to me as I am thinking your circuit bandwidths are likely much greater than 20 MHz and the 1/f noise corner of modern devices can be significant relative to 20 MHz.

    taer said:
    I used a coherent gain factor of 2 as you suggested. However, the results are not very different from the one without the gain factor.

    That does not make sense to me anyway. There should be a difference.

    taer said:
    Since the oscillation frequency is ~328kHz or the equivalent time-period is  3.042u, the total transient time period is chosen greater than 3.042u*524288=1.6s, to make sure that there are enough time-points in the simulation. How can we use the strobe option in this case? Since the clock transition edges are dithered by the noise, can we provide a single strobe value that will capture the details? Can you please elaborate how to do this? 

    I think we should review what the phase noise function, as defined in a transient noise simulation context, is doing. The PN() function provides the power spectral density of the time interval error. The time interval error (TIE) is a series of measurements of the degree to which each successive positive (or negative) edge of your oscillator waveform differs from its ideal location. Hence, your TIE data has one sample per period of your VCO. The PN() function relies of converting the TIE data, whose x-axis is time, to the frequency domain using a DFT. For a given size, N, of a DFT, its accuracy is dependent on the accuracy of its input data. Hence, if your TIE data relies on a lot of interpolation of your spectre data, its accuracy will be compromised. If you are simulating a VCO whose exact frequency is not known (i.e., it is not phase-locked), then the accuracy of your TIE data is a function of the number of samples of your VCO waveform as it will use those samples to estimate the threshold crossing times. If the frequency is known, the one sets the strobetime to compute spectre data at exact submultiples of the period so no interpolation is required. This is discussed in the Cadence Application note at URL:

     Getting accurate results when using the calculator DFT and the Fourier component.

    So the questions that come to mind are:

    1. Are you setting any value for maxstep in your transient noise simulation to assure your estimate of the VCO period is sufficiently accurate? If you know the frequency exactly (unlikely...but just in case), have you used the transient GUI panel to set a strobeperiod to avoid interpolation in the DFT computation)?

    2. Have you allowed for some setting time in your transient noise simulation to allow the VCO frequency to settle and clipping the output waveform of the VCO stariing after that settling time in the PN function?

    3. It seems highly unlikely you need N  = 524288 points in your DFT. Since the VCO frequency is 328 KHz, the frequency bin width of your resulting PN() output will be determined by N and fvco/2. 

    There are a lot of questions that I've introduced...but getting an accurate estimate of VCO phase noise - or just circuit noise  using a transient noise simulation requires study and work.

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • taer
    taer over 4 years ago in reply to ShawnLogan

    Thanks a lot, for your inputs Shawn. Let me see if I can get to the bottom of things. I will keep you posted. :-) 

    • 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