BLK_DiffToSingle

BLK_DiffToSingle : A differential-to-single-ended converter

A differential-to-single-ended converter converts a pair of differential inputs in_pos and in_neg into a set of singled-ended outputs out and out_ref, each bearing the differential-mode and common-mode components of the input, respectively.

In other words, the outputs out and out_ref are determined according to the following equations:

    V(out) = V(in_pos) - V(in_neg)
    V(out_ref) = 0.5 * (V(in_pos) + V(in_neg))

This differential-to-single-ended 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 output xreal single-ended output
out_ref output xreal reference output
in_neg input xreal differential input (neg)
in_pos input xreal differential input (pos)

List of Testbenches

tb_check : A testbench for checking the basic operation of a differential-to-single-ended converter

tb_check : A testbench for checking the basic operation of a differential-to-single-ended converter

This testbench checks the basic functionality of a differential-to-single-ended converter, by feeding a differential pair of sinusoidal signals to its inputs in_pos and in_neg and observing whether the converter produces their differential-mode component as its output out and common-mode component as out_ref.

`include "xmodel.h"

module tb_check ();
    xreal in_pos, in_neg;
    xreal out, out_ref;

    sin_gen #(.freq(100e6), .amp(0.5), .offset(0.5)) IP (.out(in_pos));
    sin_gen #(.freq(100e6), .amp(-0.5), .offset(0.5)) IN (.out(in_neg));
    BLK_DiffToSingle DUT (.*);

    // waveform recording
    initial begin
        $xmodel_dumpfile();
        $xmodel_dumpvars();
    end
endmodule

Simulation Results

input and output waveforms

Figure. input and output waveforms.