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.