• 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. Mixed-Signal Design
  3. Correct way to model noise in a VCO in verilog-A

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 64
  • Views 18359
  • 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

Correct way to model noise in a VCO in verilog-A

ddkdd
ddkdd over 4 years ago

Hi ,

I am trying to model a VCO of 1 GHz frequency with added flicker and white noise. While running the PNOISE I am seeing a spur at 1GHz and 10 GHz frequency also white noise is not visible. Please let me know how to correct the spur and is this the correct way to add noise in VCO in Verilog-A model.

Thank you for your time.

PNOISE

Here is the code:

// VerilogA for verilog_ams_model, vco_question, veriloga

`include "constants.vams"
`include "disciplines.vams"




`define PI      3.14159265358979323846264338327950288419716939937511


module vco_question (vin, vout);

input vin;
output vout;
electrical vin, vout;
parameter real amp = 1;
parameter real center_freq = 1K;
parameter real vco_gain = 1K;
parameter integer steps_per_period = 32;

   real phase;
   real inst_freq;        // instanteous frequency
 real Fl_n;real W_n;




   analog begin

      inst_freq = center_freq + vco_gain * V(vin);
      $bound_step (1.0 / (steps_per_period*inst_freq));
        Fl_n =  flicker_noise(1e-14,2);
        W_n = white_noise(8.28e-16);


      phase = idtmod(inst_freq,0,1);

    V(vout) <+ amp * sin (2 * `PI * phase);
    V(vout) <+ W_n + Fl_n ;
 

   end
endmodule

  • Cancel
  • ShawnLogan
    ShawnLogan over 4 years ago

    Dear ddkdd,

    I am definitely seeing the impact of white noise in your simulated phase noise output. White noise, with a flat spectral density, will appear as a region in a phase noise plot with a slope of -20 dB/decade. I've annotated your plot in Figure 1 to illustrate the region I am referring to where the slope is -20 dB/decade. Please also refer to Figure 2 where I illustrate the four noise common regions of a phase noise plot. The reference for this diagram is also included in Figure 2.

    With respect to your comment about the 1 GHz and 10 GHz tones visible, recall that the phase noise essentially represents a folding of the spectral content and essentially represents a demodulated signal. Hence, with the sampled nature of your simulation data, there are frequency components in the result that result from the folding and sampling process. The components of interest are typically below the fundamental VCO rate of 1 GHz in your application. From one pot the Cadence On-line support articles, the following quotation explains my comment in a bit more detail:

    "The nonlinear behavior inherent in practical oscillators results in noise folding. Noise mixes with the oscillation signal and its harmonics and get converted up or down in frequency by one or more multiples of the fundamental frequency. Besides the effect noise folding has on the noise level, it also introduces two noteworthy and easily identifiable artifacts.

      First, the phase noise present near the oscillation frequency is mixed up and down, resulting in smaller, but still quite noticeable noise peaks at DC and each harmonic.""

    I would suggest, however, that you perhaps view the tutorial phase noise simulation Cadence video from its On-line support site at URL:

     https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O0V000006AjoXUAS&pageName=ArticleContent&sq=005d0000004BfZiAAK_201882102416390  

    and the many references such as URL:

    https://community.cadence.com/cadence_blogs_8/b/rf/posts/measurement-of-phase-noise-in-oscillators

    However, In looking at your results, the phase noise you are showing appears very high and I a am a bit concerned that, perhaps, your pss and pnoise simulation settings might need to be re-examined. I hope these few comments provide some insight for you!  

    Shawn

    Figure 1

    Figure 2

    • Cancel
    • Vote Up +2 Vote Down
    • Cancel
  • ddkdd
    ddkdd over 4 years ago in reply to ShawnLogan

    Hi Shawn,

    Thank you for the reply. I am using this setup for PSS ans PNOISE. Please let me know if this is ok. 

      

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

    Dear ddldd,

    ddkdd said:
    am using this setup for PSS ans PNOISE. Please let me know if this is ok. 

    Without more knowledge about your VC, I can not provide any specific suggestions (as the simulation settings are highly dependent on the VCO type). However, I do see a few items that I might suggest could be responsible for your data.

    1. In your pss analysis, you are not running an initial transient analysis to allow your VCO frequency to settle to its steady-state value. This could result in performing a noise analysis on an oscillator waveform that does not truly provide a good estimate of its steady-state waveform and will impact the accuracy of your phase noise result. I would suggest verifying what time length of simulation is required in a conventional transient simulation before running your pss analysis to achieve a VCO frequency that is close to your steady-state frequency and then including that time as a value of "stab" in your pss analysis.

    2. It does not appear as if you have specified a value for "errpreset" in your pss analysis. I would suggest choosing "conservative" to assure it starts from numerical noise and provides an accurate estimate of the waveform.

    3. I do not know the specifics of your VCO and hence cannot comment on your choice of 7 harmonics as sufficient to capture all the noise folding.

    4. In your pnoise GUI, I don't think it is worth setting the maximum analysis frequency to 100 times your fundamental frequency based on my comments with respect to this in my initial response. I might suggest using, for example, your fundamental or a range over which you are interested in doing further analysis based on the specification for your VCO.

    As I noted, these are just a  few general comments as I do not know the specifics of your VCO design, spectre version, etc...

    I hope they are somewhat helpful!

    Shawn

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

    Hi Shawn,

    Thank you for the reply. I am using the virtuoso 6.1.8-64b, Spectre 20.10.073 and XCELLIUM 20 versions. 

    Unknown said:
    As I noted, these are just a  few general comments as I do not know the specifics of your VCO design, spectre version, etc...

    The PSS I am running is on the Verilog A model of the VCO that I have posted in my first question. 

    For step 1, 2 and 4 I have modified the settings.

    For step 3 please suggest how much side band I should add. 

    From my current verilog A model I am not able to see the 1/f^3, 1/f, and white PM nosie.  What is the modification I need to do in my verilog code to get that this in the PNOISE plot?

    Thank you. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 4 years ago in reply to ddkdd
    ddkdd said:
    For step 3 please suggest how much side band I should add. 

    You need to examine the number of harmonics in your output waveform. This is not evident to me as I don't know your transition times (likely related to your simulation setting since you did not specify a transition time) nor what load impedance you are applying to the VCO. How can I tell, therefore, how many harmonics (nd hence sidebands) are required?

    ddkdd said:
    From my current verilog A model I am not able to see the 1/f^3, 1/f, and white PM nosie.  What is the modification I need to do in my verilog code to get that this in the PNOISE plot?

    If I take your white noise and flicker noise coefficients from your verilog-a code and plot them, I obtain the results shown in Figure 1. Please note that you are plotting the phase noise starting at 100 Hz but the flat noise component dominates for frequencies over about 3 Hz.

    Shawn

    Figure 1

    • 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