OSC_LinearVCO8O : A voltage-controlled oscillator (VCO) with a linear V-to-f characteristic and 8 outputs
A voltage-controlled oscillator (VCO) generates one or more clock signals out of which frequency varies with the control input in. In particular, this VCO model describes a VCO of which frequency varies linearly with the input in, as described by the following equation:
frequency = freq0 + Kvco * (in - in0)
The parameter freq0 sets the nominal frequency of the VCO when the input is at its nominal value set by the parameter in0. And the parameter Kvco defines the VCO gain, defining the rate of change in the VCO frequency with respect to the input.
This VCO model is described using a poly_func primitive followed by a freq_to_clk primitive. The poly_func primitive calculates the frequency value from the input in and the freq_to_clk primitive produces clocks with the corresponding frequency. The phase noise characteristics of the VCO can be modeled by defining the phase noise parameters of the freq_to_clk primitive, such as PN_fcenter, PN_foffset, PN_dbc, PN_fcorner, and PN_floor. For more information on these parameters, please refer to the documentation on the freq_to_clk primitive.
Input/Output Terminals
| Name | I/O | Type | Description |
| out[7:0] | output | xbit | output clock |
| in | input | xreal | input voltage |
Parameters
| Name | Type | Default | Description |
| in0 | real | 0.5 | nominal input value (V) |
| freq0 | real | 16G | VCO frequency at nominal input value (Hz) |
| Kvco | real | 1G | VCO gain (Hz/V) |
| PN_fcenter | real | -1.0 | phase noise center frequency (Hz) |
| PN_foffset | real | 0.0 | phase noise offset frequency (Hz) |
| PN_dbc | real | -`INFINITY | phase noise measured in dBc/Hz (dBc/Hz) |
| PN_fcorner | real | 0.0 | 1/f^3 phase noise corener frequency (Hz) |
| PN_floor | real | -`INFINITY | phase noise floor measured in dBc/Hz (dBc/Hz) |
| RJ_kappa | real | 0.0 | RMS accumulated random jitter after 1 second (second) |
| RJ_rms | real | 0.0 | RMS independent random jitter (second) |
List of Testbenches
| tb_meas_tfdc : A testbench for measuring the voltage-to-frequency characteristic of a VCO |
tb_meas_tfdc : A testbench for measuring the voltage-to-frequency characteristic of a VCO
This testbench measures the voltage-to-frequency (V-to-f) characteristic of a voltage-controlled oscillator (VCO) by applying a gradually-varying voltage to the VCO input and measuring its output frequency.
The measured frequency is expected to change with the input voltage according the V-to-f equation assumed by the VCO model.
`include "xmodel.h" module tb_meas_tfdc(); xreal vctrl; // input voltage xbit [7:0] out; // output clock xbit out0; // alias for out[0] // stimuli pwl_gen #(.data('{100e-9, 0.1, 900e-9, 0.9})) vctrl_gen(vctrl); // DUT (device-under-test) OSC_LinearVCO8O DUT(.in(vctrl), .out(out)); // measurements assign out0 = out[0]; probe_xreal probe_vctrl(vctrl); probe_freq probe_out(out0); endmodule
Simulation Results
Figure. the V-to-f characteristic of the VCO.