# Ring Oscillator VCO

Model ring oscillator VCO

• Library:
• Mixed-Signal Blockset / PLL / Building Blocks

## Description

The Ring Oscillator VCO block models the output signal, frequency control, period jitter, and flicker noise of a VCO (voltage controlled oscillator) such as a bias controlled ring oscillator circuit. This block generates the phase noise using a mathematical description of the phase noise of ring oscillators. This allows faster computation of simulation results during both startup and the subsequent simulations. You can also control the phase noise profile by selecting the Gaussian noise level, corner frequency, and flicker exponent. The phase noise spectrum is limited to the spectra that can be produced by the physical model of a ring oscillator.

You can choose the coefficients for the mathematical description of the phase noise. You can provide a specific phase noise spectral density from a data sheet and compare that to the phase noise spectral density that the mathematical coefficients produce. You can then adjust the coefficients to fit the specified phase noise in a way that makes the most sense physically.

Note

If the flicker noise corner frequency is set to zero, the Ring Oscillator VCO block can also be used to model a tank-tuned VCO.

## Ports

### Input

expand all

VCO control voltage used to control the output frequency of the ring oscillator VCO. In a phase-locked loop (PLL) system, vctrl is the output of the Loop Filter that contains the phase error information.

Data Types: `double`

### Output

expand all

Output signal of the ring oscillator VCO. In a PLL system, vco out is the output clock generated by the PLL. It is also fed back to the PFD block through a clock divider to complete the control loop.

Data Types: `double`

## Parameters

expand all

### Parameters

Define how the VCO output frequency is specified:

• Select `Voltage sensitivity` to specify output frequency from the Voltage sensitivity (Hz/V) and Free running frequency (Hz) parameters.

• Select `Output frequency vs. control voltage` to interpolate output frequency from the Control voltage (V) vector versus Output frequency (Hz) vector.

#### Programmatic Use

 Block parameter: `SpecifyUsing` Type: character vector Values: `Voltage sensitivity` | ```Output frequency vs. control voltage``` Default: `Voltage sensitivity`

Measure of change in output frequency for input voltage change, specified as a positive real scalar with units in Hz/V. This parameter is also reported as VCO voltage sensitivity in the Loop Filter tab and is used to automatically calculate the filter component values of the loop filter.

#### Dependencies

To enable this parameter, in the Parameters tab, set Specify using to ```Voltage sensitivity```.

#### Programmatic Use

 Block parameter: `Kvco` Type: character vector Values: positive real scalar Default: `100e6`

Data Types: `double`

Frequency of the VCO without any control voltage input (`0` V) or the quiescent frequency, specified as a positive real scalar in hertz.

#### Dependencies

To enable this parameter, in the Parameters tab, set Specify using to ```Voltage sensitivity```.

#### Programmatic Use

 Block parameter: `Fo` Type: character vector Values: positive real scalar Default: `2.5e9`

Data Types: `double`

Control voltage values of the VCO, specified as a real valued vector in volts.

#### Dependencies

To enable this parameter, in the Parameters tab, set Specify using to ```Output frequency vs. control voltage```.

#### Programmatic Use

 Block parameter: `ControlVoltage` Type: character vector Values: real valued vector Default: `[-5 0 5]`

Data Types: `double`

Output frequency of the VCO corresponding to the Control voltage (V) vector, specified in hertz.

#### Dependencies

To enable this parameter, in the Parameters tab, set Specify using to ```Output frequency vs. control voltage```.

#### Programmatic Use

 Block parameter: `OutputFrequency` Type: character vector Values: positive real valued vector Default: `[2e9 2.5e9 3e9]`

Data Types: `double`

Maximum amplitude of the VCO output voltage, specified as a positive real scalar.

#### Programmatic Use

 Block parameter: `Amplitude` Type: character vector Values: positive real scalar Default: `1`

Data Types: `double`

Select to enable increased buffer size during simulation. This increases the buffer size of the Variable Pulse Delay block inside the Ring Oscillator VCO block. By default, this option is deselected.

Number of samples of input buffering available during simulation, specified as a positive integer scalar. This sets the buffer size of the Variable Pulse Delay block inside the Ring Oscillator VCO block.

Selecting a different simulation solver or sampling strategies can change the number of input samples needed to produce an accurate output sample. Set the Buffer size to a large enough value so that the input buffer contains all the input samples required.

#### Dependencies

To enable this parameter, select Enable increased buffer size.

#### Programmatic Use

 Block parameter: `NBuffer` Type: character vector Values: positive integer scalar Default: `10`

Data Types: `double`

### Impairments

Select to introduce phase noise as a function of frequency to the VCO. By default, this option is selected.

The frequency offsets of the specified phase noise from the carrier frequency, specified as a positive real valued vector in hertz.

#### Dependencies

To enable this parameter, select Add phase noise in the Impairments tab.

#### Programmatic Use

 Block parameter: `Foffset` Type: character vector Values: positive real valued vector Default: `[30e3 100e3 1e6 3e6 10e6]`

Data Types: `double`

The specified phase noise power in a 1 Hz bandwidth centered at the phase noise frequency offsets relative to the carrier, specified as a negative real valued vector in dBc/Hz. The elements of Phase noise level correspond to relative elements in the Phase noise frequency offset (Hz) parameter.

#### Dependencies

To enable this parameter, select Add phase noise in the Impairments tab.

#### Programmatic Use

 Block parameter: `PhaseNoise` Type: character vector Values: negative real valued vector Default: `[-56 -106 -132 -143 -152]`

Data Types: `double`

Click to set the noise parameters to an initial estimate intended to match the specified noise spectrum.

Standard deviation of the period jitter, specified as a positive real scalar in seconds. Period jitter is the deviation in cycle time of a clock signal with respect to the ideal period.

#### Programmatic Use

 Block parameter: `PeriodJitter` Type: character vector Values: positive real scalar Default: `1.7e-15`

Corner frequency of the flicker noise, specified as a scalar in hertz. Flicker corner frequency (Hz) is defined as the frequency at which the phase noise transitions from 1/f2 to 1/f3 due to flicker noise. At this frequency, the spectral densities of period jitter and flicker noise are equal.

#### Programmatic Use

 Block parameter: `CornerFrequency` Type: character vector Values: scalar Default: `5e5`

Select this parameter to customize the power spectral distribution of the flicker noise. Traditionally, flicker noise is defined as the 1/f noise, but it can vary as 1/fV, where 0.8<V<1.5.

Flicker noise power exponent, specified between `0.8` to `1.5`.

#### Programmatic Use

 Block parameter: `FlickerExponent` Type: character vector Values: `1.0` | `0.8` | `0.9` | `1.1` | `1.2` | `1.3` | `1.4` | `1.5` Default: `1.0`

Click to plot the specified phase noise density and expected output phase noise density.

expand all