Get email delivery of the Cadence blog featured here
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:
For more information, type in an xterm 'spectre -h port', 'spectre -h vsource', or 'spectre -h isource'.
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
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.
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!!
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.
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?
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).
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.)
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
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.
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
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.