BLK_SingleToDiff : A singled-ended-to-differential converter
A single-ended-to-differential converter converts a single-ended input in into a pair of differential outputs out_pos and out_neg, of which differential-mode and common-mode components are equal to the inputs in and in_ref, respectively.
In other words, the outputs out_pos and out_neg are determined according to the following equations:
V(out_pos) = 0.5*V(in) + V(in_ref)
V(out_neg) = -0.5*V(in) + V(in_ref)
This single-ended-to-differential converter model is described with circuit primitives (vcvs) instead of function primitives (e.g. add) so that it can be enclosed within a feedback loop.
Input/Output Terminals
| Name | I/O | Type | Description |
| out_neg | output | xreal | differential output (neg) |
| out_pos | output | xreal | differential output (pos) |
| in | input | xreal | single-ended input |
| in_ref | input | xreal | reference input |
List of Testbenches
| tb_check : A testbench for checking the basic operation of a single-ended-to-differential converter |
tb_check : A testbench for checking the basic operation of a single-ended-to-differential converter
This testbench checks the basic functionality of a single-ended-to-differential converter, by feeding a single-ended sinusoidal signal to its input in and a DC reference signal to its input in_ref and observing whether the converter produces a differential pair of output signals out_pos and out_neg bearing the differential-mode component equal to in and common-mode component equal to in_ref.
`include "xmodel.h" module tb_check (); xreal in, in_ref; xreal out_pos, out_neg; sin_gen #(.freq(100e6), .amp(1.0), .offset(0.0)) IDM (.out(in)); dc_gen #(.value(0.5)) ICM (.out(in_ref)); BLK_SingleToDiff DUT (.*); // waveform recording initial begin $xmodel_dumpfile(); $xmodel_dumpvars(); end endmodule
Simulation Results
Figure. input and output waveforms.