Home > Community > Blogs > RF Design > modeling oscillators with arbitrary phase noise profiles

 Login with a Cadence account. Not a member yet? Create a permanent login account to make interactions with Cadence more conveniennt. Register | Membership benefits
 Get email delivery of the RF Design blog (individual posts).

## Email

Recipients email * (separate multiple addresses with commas)

Message *

 Send yourself a copy

## Subscribe

Intro copy of the newsletter section here, some intro copy of the newsletter. Instruction of how to subscribe to this newsletter.

First Name *

Last Name *

Email *

Company / Institution *

 Send Yourself A Copy

# Modeling Oscillators with Arbitrary Phase Noise Profiles

When you need to include noisy oscillators in SpectreRF transceiver simulations, you have at least 3 options:

1) Semi-autonomous simulation is the most accurate approach, recommended whenever the transistor-level model of the oscillator is available.

2) rfLib/osc model is less accurate but it’s well-suited for "what-if" design exploration. Since rfLib/osc uses Leeson’s noise formula, it doesn’t allow for arbitrary specification of phase noise profiles as a function of frequency.

3) Use PORTs and other sources with noisefiles. This approach lets users specify arbitrary noise profiles, but it omits sideband correlation data. In practice, this means that AM and PM components of the noise are modeled incorrectly. For oscillators in particular, the AM component is grossly exaggerated and the PM component of the noise is underestimated. As a result, this approach isn’t recommend for oscillator noise modeling.

Our Goal: Develop a Behavioral Oscillator Model w/ an Arbitrary Phase Noise Profile for Use in Virtuoso/SpectreRF

One strategy is:

Use a frequency-dependent noise source which directly phase-modulates an otherwise ideal oscillator.

The noise source is modeled using a voltage source + noisefile.

This gives us two main benefits:

1.  By virtue of direct phase modulation the oscillator’s noise is now all PM, which a good model of near-carrier oscillator noise.

2.  By virtue of using noisefiles, we can now specify arbitrary noise profiles as a function of frequency.

A Simple Mathematical Model of the Oscillator

Below is a simple mathematical model of the oscillator.

Let v(t) be the open-circuit voltage of our oscillator and
φ(t) the random phase:

Using the small noise assumption, and remembering that sin(x+y)=cos(x)sin(y)+sin(x)cos(y),

An equivalent system model of the above equation (1) is shown below:

Below is the Verilog-A Implementation

`include "constants.vams"

`include "disciplines.vams"

// power: available power (dBm) default: 10 dBm

// freq: output frequency (Hz) default: 1 GHz

// rout: output impedance (Ohm) default: 50 Ohm

`define db10_real(x) pow(10, (x)/10)

`define dbm2pow(x) `db10_real( ((x)-30) )

`define pow2v(x,r) sqrt(8*(r)*(x))

module oscwphnoise(out, ph);

inout out;

input ph;

electrical out;

electrical ph;

electrical gnd;

ground gnd;

electrical int;

parameter real power = 10 ;

parameter real rout = 50 ;

parameter real freq = 1e+09 ;

isource #(.type("sine"), .ampl(`pow2v(`dbm2pow(power),rout)/rout), .freq(freq) ) is1(gnd,out);

vsource #(.type("sine"), .ampl(`pow2v(`dbm2pow(power),rout)/rout), .sinephase(-90), .freq(freq) ) vs1(gnd,int);

analog begin

I(out) <+ -V(int)*V(ph);

I(out) <+ V(out)/rout;

end

endmodule

What Do We Apply to the Terminal φ to Model Noise?

Assume that the single sideband noise to carrier ratio (a.k.a. ‘phase noise’) is known and expressed in dBc.

Use the well-known relationship between the single sideband noise to carrier ratio and the spectral density of φ(t), which is valid for small offsets f:

L(f) = 0.5*Sφ(f)

So the phase φ(t) is a signal whose noise spectrum is given by:

2*pow(10, LdBc(f)/10)

To model this in Spectre, use a DC voltage source and specify the noise spectrum in a noisefile. You calculate the noisefile using Excel.

Calculating the Noisefile Contents in Excel

A Complete Model

The complete model is shown below:

Example Results

Below are results showing hb and hbnoise (phase noise) results:

To explore this further, login into Cadence Online Support and see http://support.cadence.com Solution 11775686.

Have fun simulating!

best regards,

Tawna