VCO Testbench

Validate voltage controlled oscillator (VCO) by measuring phase noise metrics or VCO characteristics

  • Library:
  • Mixed-Signal Blockset / PLL / Measurements & Testbenches

Description

The VCO Testbench block validates the VCO device under test (DUT) by measuring one of the two target metrics: phase noise, or voltage sensitivity and quiescent frequency. You can use the testbench to validate a VCO of your own implementation, or you can use the VCO block from the Mixed-Signal Blockset™.

The Simulink® model to validate the VCO must contain only two blocks, the VCO DUT and the VCO Testbench.

Ports

Input

expand all

Input signal, which flows from the output of the VCO DUT. This input signal is used to calculate either the phase noise metric, or the voltage sensitivity and free running frequency of the VCO, depending on the Measurement option chosen.

Data Types: double

Output

expand all

Output signal, which provides control voltage stimulus to the input of VCO DUT.

Data Types: double

Parameters

expand all

Determines which of the two given target metrics is being measured.

Select Phase noise if you want the testbench to measure and compare phase noise to a target phase noise profile.

Select Kvco and Fo if you want the testbench to compute voltage sensitivity (Kvco) and quiescent frequency (Fo) using a range of control voltages.

Programmatic Use

  • Use get_param(gcb,'MeasureOptions') to view the current Measurement option.

  • Use set_param(gcb,'MeasureOptions',value) to set Measurement to a specific option.

Plots the relevant VCO metrics based on the Measurement options.

Selecting Phase noise in Measurement plots the power spectrum and phase noise profile of VCO.

Selecting Kvco and Fo in Measurement plots the VCO characteristics and Kvco.

Exports the relevant VCO metrics based on the Measurement options to an excel file.

Selecting Phase noise in Measurement exports the phase noise profile of VCO.

Selecting Kvco and Fo in Measurement exports the VCO characteristics and Kvco.

Stimulus

Control voltage provided by VCO Testbench, expressed as a scalar in V. The value specified in Control Voltage flows through the to vco port that provides the input of VCO.

Dependencies

This parameter is only available when you select Phase noise as the Measurement option.

Programmatic Use

  • Use get_param(gcb,'ControlVoltage') to view current Control voltage value.

  • Use set_param(gcb,'ControlVoltage',value) to set Control voltage to a specific value.

Data Types: double

Control voltage provided by VCO Testbench, expressed as a two-element row vector in V. This parameter specifies the minimum and maximum values of control voltage, which is used to generate ten control voltage value points, including the provided values. These ten values of control voltage are sent to VCO input to measure Kvco and Fo.

Dependencies

This parameter is only available when you select Kvco and Fo as the Measurement option.

Programmatic Use

  • Use get_param(gcb,'ControlVoltageRange') to view the current Range of control voltage values.

  • Use set_param(gcb,'ControlVoltage',value) to set Range of control voltage to specific values.

Data Types: double

Setup

Click this button to automatically populate setup parameters (Sampling frequency, Resolution bandwidth, and No. of spectral averages) for phase noise measurement.

If the DUT is a VCO from Mixed-Signal Blockset, the Spectrum Estimator inside the VCO testbench automatically calculates setup parameters based on the VCO specifications.

Dependencies

  • This button only works if the VCO DUT is a VCO block from Mixed-Signal Blockset.

  • This button is only available when you select Phase noise as the Measurement option.

Sample rate of the VCO input signal, specified as a real positive scalar in Hz. Sampling frequency is used to configure the Spectrum Estimator inside the VCO Testbench. To achieve the best performance metrics, specify a sample rate at least eight times the frequency of the VCO output.

If the DUT is a VCO block from the Mixed-Signal Blockset library, you can use the Autofill setup parameters button to automatically calculate sampling frequency if you select the Phase noise as Measurement option.

If you select Kvco and Fo as the Measurement option, use a large sampling frequency, ideally eight times the intended maximum operating frequency of the VCO.

Programmatic Use

  • Use get_param(gcb,'SampleFrequency') to view the current Sampling frequency value.

  • Use set_param(gcb,'SampleFrequency',value) to set Sampling frequency to a specific value.

Data Types: double

Resolution bandwidth of the Spectrum Estimator inside the VCO Testbench, specified as a real positive scalar in Hz. The Spectrum Estimator inside the VCO Testbench uses the Resolution bandwidth to determine window length for spectral analysis using the Welch method.

In general, Resolution bandwidth (Hz) should be less than or equal to the lowest offset frequency from the phase noise data.

If the DUT is a VCO block from the Mixed-Signal Blockset library, you can use the Autofill setup parameters button to automatically calculate resolution bandwidth.

Dependencies

This parameter is only available when you select Phase noise as the Measurement option.

Programmatic Use

  • Use get_param(gcb,'ResBandwidth') to view current Resolution bandwidth value.

  • Use set_param(gcb,'ResBandwidth',value) to set Resolution bandwidth to a specific value.

Data Types: double

Number of spectral averages, specified as a positive integer scalar. The Spectrum Estimator inside the VCO Testbench computes the current power spectrum estimate by averaging the last N power spectrum estimates, where N is the number of spectral averages defined in No. of spectral averages.

If the DUT is a VCO block from the Mixed-Signal Blockset library, you can use the Autofill setup parameters button to automatically calculate number of spectral averages.

Dependencies

This parameter is only available when you select Phase noise as the Measurement option.

Programmatic Use

  • Use get_param(gcb,'SpectralAverages') to view current No. of spectral averages value.

  • Use set_param(gcb,'SpectralAverages',value) to set No. of spectral averages to a specific value.

Data Types: double

Select to enable increased buffer size during simulation. This increases the buffer size of the Discrete to Continuous Converter subsystem inside the VCO block. By default, this option is deselected.

Number of samples of the input buffering available during simulation, specified as a positive integer scalar. This sets the buffer size of the Discrete to Continuous Converter subsystem inside the VCO block.

Selecting 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

This parameter is only available when Enable increased buffer size option is selected in the Configuration tab.

Programmatic Use

  • Use get_param(gcb,'NBuffer') to view the current value of Buffer size.

  • Use set_param(gcb,'NBuffer',value) to set Buffer size to a specific value.

Hold-off period, specified as a nonnegative scalar in s. Hold-off time delays measurement analysis by the specified amount of time to avoid corrupting simulation results due to transients.

Programmatic Use

  • Use get_param(gcb,'HoldOffTime') to view the current Hold-off time value.

  • Use set_param(gcb,'HoldOffTime',value) to set Hold-off time to a specific value.

Target Metric

Click this button to automatically populate the target phase noise metric from VCO specifications.

Dependencies

  • This button will only work if the VCO DUT is a VCO block from Mixed-Signal Blockset.

  • This button is only available when you select Phase noise as Measurement option.

The frequency offsets of phase noise from the carrier frequency, collected from the data sheet, specified as a real valued vector in Hz.

If the DUT is a VCO block from the Mixed-Signal Blockset library, you can use the Autofill target metric button to automatically transfer VCO phase noise frequency offset vector values to the VCO Testbench.

Dependencies

This parameter is only available when you select Phase noise as Measurement option.

Programmatic Use

  • Use get_param(gcb,'PhaseNoiseFreqOffset') to view the current Phase noise frequency offset vector value.

  • Use set_param(gcb,'PhaseNoiseFreqOffset',value) to set Phase noise frequency offset vector to a specific value.

Data Types: double

The phase noise power in a 1 Hz bandwidth centered at the specified frequency offsets relative to the carrier, collected from the data sheet, specified as a real valued vector in dBc/Hz. The elements of Phase noise vector corresponds to relative elements in the Phase noise frequency offset vector.

If the DUT is a VCO block from the Mixed-Signal Blockset library, you can use the Autofill target metric button to automatically transfer VCO phase noise vector values to the testbench.

Dependencies

This parameter is only available when you select Phase noise as Measurement option.

Programmatic Use

  • Use get_param(gcb,'PhaseNoiseVector') to view the current Phase noise vector value.

  • Use set_param(gcb,'PhaseNoiseVector',value) to set Phase noise vector to a specific value.

More About

expand all

References

[1] Banerjee, Dean. PLL Performance, Simulation and Design. Indianapolis, IN: Dog Ear Publishing, 2006.

See Also

Introduced in R2019a