• Home
  • :
  • Community
  • :
  • Blogs
  • :
  • RF Design
  • :
  • How to Specify Phase Noise as an Instance Parameter in Spectre…

RF Design Blogs

Tawna
Tawna
20 May 2014
Subscriptions

Get email delivery of the Cadence blog featured here

  • All Blog Categories
  • Breakfast Bytes
  • Cadence Academic Network
  • Cadence on the Beat
  • Cadence Support
  • Custom IC Design
  • 定制IC芯片设计
  • Digital Implementation
  • Functional Verification
  • IC Packaging and SiP Design
  • The India Circuit
  • Insights on Culture
  • Mixed-Signal Design
  • PCB Design
  • PCB、IC封装:设计与仿真分析
  • RF Design
  • Signal and Power Integrity (PCB/IC Packaging)
  • Silicon Signoff
  • Spotlight Taiwan
  • System Design and Verification
  • Tensilica, Design, and Verification IP
  • Whiteboard Wednesdays
  • Archive
    • Industry Insights
    • Logic Design
    • Low Power
    • The Design Chronicles

How to Specify Phase Noise as an Instance Parameter in Spectre Sources (e.g. vsource, isource, Port)

Last year, I wrote a blog post entitled Modeling Oscillators with Arbitrary Phase Noise Profiles.  We now have an easier way to do this.  

Starting in MMSIM 13.1, you can specify the phase noise as an instance parameter in Spectre sources, including port, vsource and isource. The use model is similar to the existing noise file/noise vector approach. The only difference is the addition of a Noise type parameter, which indicates whether you are specifying a noise voltage spectrum or SSB phase noise, the latter of which is modeled as pure-PM.

A command-line (netlist) example would look something like this:

PORT0 (in 0) port r=50 type=sine freq=1G dbm=10 noisetype=ssbphasenoise noisevec=[ 100K -110 1M -140 10M -160 100M -165 ]

v0 (vsource_out 0) vsource type=sine freq=2G fundname="f1"  noisetype=ssbphasenoise noisevec=[ 100K -110 1M -140 10M -160 100M  -165 ]

 

Below is what the IC6.1.6 GUI looks like for the analogLib port, showing how to enter phase noise data directly into the port Edit Object Properties/Add Instance form:

   

In the port Edit Properties/Add Instance form, scroll down to the bottom:

  • Click Display Noise Parameters. The form will expand.
  • Specify Noise Type. In this example, choose SSB phase noise(dBc). 
    The noise can also be specified as the spectral density, Noise voltage(V^2/Hz).
  • Select Noise Entry Method
    • For File, enter the Noise file name.
    • For Noise/Frequency points, specify the Num. of noise/freq pairs. The form will expand. Enter the Frequency and Noise data for each Noise/Frequency point, as shown above.

 For more information,  type in an xterm 'spectre -h port', 'spectre -h vsource', or 'spectre -h isource'.

 

Best regards,

 

Tawna

 

 

 

  • Spectre RF
  • phase noise
  • spectreRF
  • analogLib
  • port
  • noise profiles

Share Your Comment

  • Hakaunga
    Hakaunga

    Dear Tawna. This is a very good explanation and thank you for that. I am trying to simulate a current source (isource) driven by an equation I = Vbe*gm*e^(-jwt) = qIc/kBT *(1-jwt) where w is the angular frequency, t is the transit time delay of transconductance. The challenge I have is that I have no idea of how to edit the current source properties so that it is driven by this equation. I don't have an idea of how to implement the complex part and really to understand which parameter goes where in the edit object properties. I will greatly appreciate your guidance. I know this may be a bit different topic from what you posted here. Best regards, Brilliant

    • over 2 years ago
    • More
    • Cancel
  • analogRFarch
    analogRFarch

    Hi Tawna, the above method is very useful to apply phase noise to a sinusoidal source. I need to apply baseband noise to an oscillator and want to see it getting up-converted to phase noise around the oscillator. What is the best way to do it? I tried to use the port as mentioned above but freq=0Hz did not work.

    • over 3 years ago
    • More
    • Cancel
  • VijaySM
    VijaySM

    Hi Tawna, this is really helpful however, we do not have the required MMSIM version yet. So i used the verilogA version which you suggested (mentioned at the start of this post). I faced few issues while using that approach, mentioned below: 1. The phase noise plot is incorrect if the points per decade(in pnoise analysis) is increased to more than 1(1 being the value used in the spectre_state provided in the post). 2. I used the freq_divider block(from rfLib) to divide the pll output by 2. The division worked fine but  phase noise at the divider output did not make sense. It is supposed to be roughly 6dB better but it shows a value which is completely wrong. Can you please let me know if these are limitations of these blocks behavior or am I doing some thing wrong. Thank you!!

    • over 4 years ago
    • More
    • Cancel
  • Tawna
    Tawna

    Hi Silpa,  You probably need to use a later version of IC and/or Spectre.   Try IC6.1.6 and MMSIM 13.1.1 or later releases.

    • over 4 years ago
    • More
    • Cancel
  • Anonymous
    Anonymous

    Hi..I tried to add noise in the same way as u mentioned.But there is no option like 'noise type' in both port and also vsource from analogLib.What should I do?

    • over 4 years ago
    • More
    • Cancel
  • Tawna
    Tawna

    Finishing my thoughts....  When set to ssbphasenoise, the noise data represents single-sideband phase noise in dBc.  The frequencies are offset from carrier.    (what you see when you plot phase noise after a pnoise simulation)  

    This is also noted in the SpectreRF User Guide (MMSIM13.1.1) and Spectre User Guide (MMSIM 13.1.1).

    • over 4 years ago
    • More
    • Cancel
  • Tawna
    Tawna

    Hi Mina,    This is not supported for square waves (only sinusoids).   Please contact Cadence Customer Support and request an enhancement CCR.  (More customer interest=greater chance of supporting this feature.)

    • over 4 years ago
    • More
    • Cancel
  • Anonymous
    Anonymous

    Very interesting and helpful option. It will help characterizing the effect of PN on other more complex systems.

    I was just looking around today on a way to model arbitrary PN, and I'm very excited about this feature.

    I just have two questions:

    1. Is this feature available for square wave sources, and how would it be considered in PN/Jitter simulations?

    2. By SSB do you mean one side from PN skirt as in the PN simulation, or the SSB representation of PSD of the noise?

    I'm asking because it will differ by a factor of 3 dBs

    • over 4 years ago
    • More
    • Cancel
  • Tawna
    Tawna

    Hi Aba,  Please post your question to the RF community (since it's a new question)  rather than commenting on an existing blog.  You'll get a quicker response that way.    

    • over 4 years ago
    • More
    • Cancel
  • Anonymous
    Anonymous

    Dear Tawna,  I am trying to determine the bias current and the size of a bipolar transistor at the input of a LNA for minimum noise figure by simulation with ADE L.  Can you please provide indications on how to set the tool to sweep the base voltage and plot NFmin as a function of the transistor base voltage,  Best Regards, Aba

    • over 4 years ago
    • More
    • Cancel
  • Anonymous
    Anonymous

    We once use Newdigitalworks.com to design the PCB for us, and they also do the RF simulation, hope they can help you with this issue.

    • over 4 years ago
    • More
    • Cancel

Add Yours

Post (Login required)