Skip to Main Content Skip to Search
Home |   Select Country  Choose Country  |  Contact Us  |  Cart Store 
Create Account | Log In
Products & Services Solutions Academia Support User Community Company
spacer spacer spacer spacer spacer spacer

 

RF Toolbox 2.6

Modeling a High-Speed Backplane (Part 1: Measured 16-Port S-Parameters to 4-Port S-Parameters)

This demo is in four parts. This first part shows how to use RF Toolbox™ to import n-port S-parameters representing high-speed backplane channels, and converts 16-port S-parameters to 4-port S-parameters to model the channels and the crosstalk between the channels.

With the 4-port S-parameters, a rational function model can be built for a differential channel. The second part of the demo -- Modeling a High-Speed Backplane (Part 2: 4-Port S-Parameters to a Rational Function Model) -- will show how to use rational functions to model a differential high-speed backplane channel.

With the rational function model, a Simulink® model can be built for a differential channel. The third part of the demo -- Modeling a High-Speed Backplane (Part 3: Rational Function Model to a Simulink Model) -- will show how to build a Simulink model from a rational function model.

With the rational function model, a Verilog-A module can also be generated for a differential channel. The fourth part of the demo -- Modeling a High-Speed Backplane (Part 4: Rational Function Model to a Verilog-A Module) -- will show how to generate a Verilog-A module from a rational function model.

Figure 1: 16-Port differential backplane

Contents

Read the Single-Ended 16-Port S-Parameters

Read a S16P Touchstone® data file into an RFDATA.DATA object using the object's READ method. The data in this file are the 50-ohm S-parameters of a 16-port differential backplane designed for 2 Gbps high-speed signal, shown in Figure 1, measured at 1496 frequencies ranging from 50 MHz to 15 GHz.

FileName = 'default.s16p';
SingleEnded16PortData = read(rfdata.data, FileName);
Freq = SingleEnded16PortData.Freq;
nFreq = length(Freq)
nFreq =

        1496

Convert the 16-Port S-Parameters to 4-Port S-Parameters to Model a Differential Channel

Use the SNP2SMP function to convert 16-port S-parameters to 4-port S-parameters that represent the first differential channel. The port index of this differential channel, N2M_Index, which specifies how the ports of the 16-port S-parameters map to the ports of the 4-port S-parameters, is [1 16 2 15]. (The port indices of the second, third and fourth channels are [3 14 4 13], [5 12 6 11] and [7 10 8 9], respectively). The other 12 ports, [3 4 5 6 7 8 9 10 11 12 13 14], are terminated with Z0. Then, create an RFCKT object with 4-port S-parameters for the first differential channel.

                 (Port 1)         (Port 16)
        Port 1  > ----->|         |<----- <   Port 2
                        |   DUT   |
        Port 3  > ----->|         |<----- <   Port 4
                 (Port 2)         (Port 15)
N2M_Index = [1 16 2 15];
ZT = SingleEnded16PortData.Z0;
First4PortSParams = snp2smp(SingleEnded16PortData.S_Parameters, ...
    SingleEnded16PortData.Z0, N2M_Index, ZT);
First4PortChannel = rfckt.passive('NetworkData', ...
    rfdata.network('Data',  First4PortSParams, 'Freq', Freq));
First4PortSParamsDataObj = First4PortChannel.NetworkData
First4PortSParamsDataObj =

    Name: 'Network parameters'
    Type: 'S-Parameters'
    Freq: [1496x1 double]
    Data: [4x4x1496 double]
      Z0: 50

Plot the S21 and S43 parameters of the first differential channel.

fig = figure;
plot(First4PortChannel, 'S21', 'S43'); legend show;
% If you want to write the 4-port S-parameters of the differential channel
% into a .S4P file, then uncomment the line below.
%
% write(First4PortChannel, 'firstchannel.s4p');

Convert 16-Port S-Parameters to 4-Port S-Parameters to Model the Crosstalk Between Two Differential Channels

Use SNP2SMP function to convert 16-port S-parameters to 4-port S-parameters that represent the crosstalk between port [3 4] and port [16 15]. As shown in Figure 1, these ports are on different channels. The other 12 ports, [1 2 5 6 7 8 9 10 11 12 13 14], are terminated with Z0. Then, create an RFCKT object with 4-port S-parameters for the crosstalk.

                 (Port 3)         (Port 16)
        Port 1  > ----->|         |<----- <   Port 2
                        |   DUT   |
        Port 3  > ----->|         |<----- <   Port 4
                 (Port 4)         (Port 15)
N2M_Index = [3 16 4 15];
ZT = SingleEnded16PortData.Z0;
CrossTalk4PortSParams = snp2smp(SingleEnded16PortData.S_Parameters, ...
    SingleEnded16PortData.Z0, N2M_Index, ZT);
CrossTalk4PortModel = rfckt.passive('NetworkData', ...
    rfdata.network('Data',  CrossTalk4PortSParams, 'Freq', Freq));
CrossTalk4PortSParamsDataObj = CrossTalk4PortModel.NetworkData
CrossTalk4PortSParamsDataObj =

    Name: 'Network parameters'
    Type: 'S-Parameters'
    Freq: [1496x1 double]
    Data: [4x4x1496 double]
      Z0: 50

Plot the S21, S43, S12 and S34 parameters to show the crosstalk between these two channels.

plot(CrossTalk4PortModel, 'S21', 'S43', 'S12', 'S34'); legend show;
% If you want to write the 4-port S-parameters of the crosstalk into a .S4P
% file, then uncomment the line below.
%
% write(CrossTalk4PortModel, 'crosstalk.s4p');
close(fig);
Contact sales
Free technical kit
Trial software
E-mail this page

Get Pricing and
Licensing Options