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'.