Main Content

PCIe4 Transmitter/Receiver IBIS-AMI Model

This example shows how to create generic PCIe Generation 4 (PCIe4) transmitter and receiver IBIS-AMI models using the library blocks in SerDes Toolbox™. The generated models conform to the IBIS-AMI and PCI-SIG PCIe4 specifications.

For a visual walkthrough of the example, watch the video.

PCIe4 Tx/Rx IBIS-AMI Model Setup in SerDes Designer App

The first part of this example sets up the target transmitter and receiver AMI model architecture using the blocks required for PCIe4 in the SerDes Designer app. The model is then exported to Simulink® for further customization.

This example uses the SerDes Designer model pcie4_txrx_ami. Type the following command in the MATLAB® command window to open the model:

>> serdesDesigner('pcie4_txrx_ami')

A PCIe4 compliant transmitter uses a 3-tap feed forward equalizer (FFE) with one pre-tap and one post-tap, and ten presets. The receiver model uses a continuous time linear equalizer (CTLE) with seven pre-defined settings, and a 2-tap decision feedback equalizer (DFE). To support this configuration the SerDes System is set up as follows:

Configuration Setup

  • Symbol Time is set to 62.5 ps, since the maximum allowable PCIe4 operating frequency is 16 GHz

  • Target BER is set to 1e-12.

  • Samples per Symbol, Modulation, and Signaling are kept at default values, which are respectively 16, NRZ (non-return to zero), and Differential.

Transmitter Model Setup

  • The Tx FFE block is set up for one pre-tap and one post-tap by including three tap weights. Specific tap presets will be added in later in the example when the model is exported to Simulink.

  • The Tx AnalogOut model is set up so that Voltage is 1.05 V, Rise time is 12 ps, R (output resistance) is 50 Ohms, and C (capacitance) is 0.5 pF according to the PCIe4 specification.

Channel Model Setup

  • Channel loss is set to 15 dB.

  • Target Frequency is set to the Nyquist frequency, 8 GHz.

  • Differential impedance is kept at default 100 Ohms.

Receiver Model Setup

  • The Rx Analogin model is set up so that R (input resistance) is 50 Ohms and C (capacitance) is 0.5 pF according to the PCIe4 specification.

  • The Rx CTLE block is set up for 7 configurations. The GPZ (Gain Pole Zero) matrix data is derived from the transfer function given in the PCIe4 Behavioral CTLE specification. Later, you will set the Mode to adapt, but currently you will see that currently the CTLE is configured to Mode fixed and Configuration select 0.

  • The Rx DFE/CDR block is set up for two DFE taps. The limits for each tap have been individually defined according to the PCIe4 specification to +/-30 mV for tap1 and +/-20 mV for tap2.

Plot Statistical Results

Use the SerDes Designer plots to visualize the results of the PCIe4 setup.

Add the BER plot from ADD Plots and observe the results.

Change the Rx CTLE Configuration select parameter value from 0 to 6 and observe how this changes the data eye.

Change the value of the Tx FFE Tap weights from [0 1 0] to [-0.125 0.750 -0.125] and observe the results.

Change the Rx CTLE Mode to Adapt and observe the results. In this mode all CTLE values are swept to find the optimal setting.

Before continuing, reset the value of the Tx FFE TapWeights back to [0 1 0] and Rx CTLE ConfigSelect back to 0. Leave the Rx CTLE Mode at Adapt. Resetting these values here will avoid the need to set them again after the model has been exported to Simulink. These values will become the defaults when the final AMI models are generated.

Export SerDes System to Simulink

Click on the Export button to export the above configuration to Simulink for further customization and generation of the AMI model executables.

PCIe4 Tx/Rx IBIS-AMI Model Setup in Simulink

The second part of this example takes the SerDes system exported by the SerDes Designer app and customize it as required for PCIe4 in Simulink.

Review Simulink Model Setup

The SerDes System imported into Simulink consists of Configuration, Stimulus, Tx, Analog Channel and Rx blocks. All the settings from the SerDes Designer app have been transferred to the Simulink model. Save the model and review each block setup.

  • Double click the Configuration block to open the Block Parameters dialog box. The parameter values for Symbol time, Samples per symbol, Target BER, Modulation and Signaling is carried over from the SerDes Designer app.

  • Double click the Stimulus block to open the Block Parameters dialog box. You can set the Waveform Creation Method to Serial PRBS (pseudorandom binary sequence) and the number of symbols to simulate. This block is not carried over from the SerDes Designer app.

  • Double click the Tx block to look inside the Tx subsystem. The subsystem has the FFE block carried over from the SerDes Designer app. An Init block is also introduced to model the statistical portion of the AMI model.

  • Double click the Analog Channel block to open the Block Parameters dialog box. The parameter values for Target frequency, Loss, Impedance and Tx/Rx analog model parameters is carried over from the SerDes Designer app.

  • Double click on the Rx block to look inside the Rx subsystem. The subsystem has the CTLE and DFECDR blocks carried over from the SerDes Designer app. An Init block is also introduced to model the statistical portion of the AMI model.

Run the Model

Run the model to simulate the SerDes System.

Two plots are generated. The first is a live time-domain (GetWave) eye diagram that is updated as the model is running.

The second plot contains views of the statistical (Init) and time domain (GetWave) results, similar to what is available in the SerDes Designer App.

Update Tx FFE Block

  • Inside the Tx subsystem, double click the FFE block to open the FFE Block Parameters dialog box.

  • Expand the IBIS-AMI parameters to show the list of parameters to be included in the IBIS-AMI model.

  • Deselect the Mode parameter to remove this parameter from the AMI file, effectively hard-coding the current value of Mode in final AMI model to Fixed.

Review Rx CTLE Block

  • Inside the Rx subsystem, double click the CTLE block to open the CTLE Block Parameters dialog box.

  • Gain pole zero data is carried over from the SerDes Designer app. This data is derived from the transfer function given in the PCIE4 Behavioral CTLE specification.

  • CTLE Mode is set to Fixed, which means an optimization algorithm built into the CTLE system object selects the optimal CTLE configuration at run time.

Update Rx DFECDR Block

  • Inside the Rx subsystem, double click the DFECDR block to open the DFECDR Block Parameters dialog box.

  • Expand the IBIS-AMI parameters to show the list of parameters to be included in the IBIS-AMI model.

  • Clear the Phase offset and Reference offset parameters to remove these parameters from the AMI file, effectively hard-coding these parameters to their current values.

Generate PCIe4 Tx/Rx IBIS-AMI Model

The final part of this example takes the customized Simulink model, modifies the AMI parameters for PCIe4, then generates IBIS-AMI compliant PCIe4 model executables, IBIS and AMI files.

Open the Block Parameter dialog box for the Configuration block and click on the Open SerDes IBIS/AMI Manager button. In the IBIS tab inside the SerDes IBIS/AMI manager dialog box, the analog model values are converted to standard IBIS parameters that can be used by any industry standard simulator. In the AMI-Rx tab in the SerDes IBIS/AMI manager dialog box, the reserved parameters are listed first followed by the model specific parameters following the format of a typical AMI file.

Update Transmitter AMI Parameters

Open the AMI-Tx tab in the SerDes IBIS/AMI manager dialog box. Following the format of a typical AMI file, the reserved parameters are listed first followed by the model specific parameters.

Inside the Model_Specific parameters, you can set the TX FFE tap values in three different ways:

  • Leave the Tx FFE tap values at their default configuration and you can enter any floating point value for the pre/main/post taps values.

  • Create a new AMI parameter to automatically select preset values - see Managing AMI Parameters.

  • Directly specify the ten preset coefficients as defined in the PCIe4 specification - shown below in this example.

When you directly specify the preset coefficients, you change the format of the three TapWeights and specify the exact value to use for each preset. Only these ten defined presets will be allowed, and all three taps must be set to the same preset to get the correct values.

Set Preshoot Tap

  • Select TapWeight -1, then click the Edit... button to bring up the Add/Edit AMI Parameter dialog.

  • Set the Current Value to 0.000.

  • Change the Description to Preshoot tap value.

  • Change the Format from Range to List.

  • Change the Default value to 0.000.

  • In the List values box enter: [0.000 0.000 0.000 0.000 0.000 -0.100 -0.125 -0.100 -0.125 -0.166].

  • In the List_Tip values box enter: ["P0" "P1" "P2" "P3" "P4" "P5" "P6" "P7" "P8" "P9"].

  • Click OK to save the changes.

Set Main Tap

  • Select TapWeight 0, then click the Edit... button to bring up the Add/Edit AMI Parameter dialog.

  • Set the Current Value to 0.750.

  • Change the Description to Main tap value.

  • Change the Format from Range to List.

  • Change the Default value to 0.750.

  • In the List values box enter: [0.750 0.833 0.800 0.875 1.000 0.900 0.875 0.700 0.750 0.834].

  • In the List_Tip values box enter: ["P0" "P1" "P2" "P3" "P4" "P5" "P6" "P7" "P8" "P9"].

  • Click OK to save the changes.

Set De-emphasis Tap

  • Select TapWeight 1, then click the Edit... button to bring up the Add/Edit AMI Parameter dialog.

  • Set the Current Value to -0.250.

  • Change the Description to: De-Emphasis tap value.

  • Change the Format from Range to List.

  • Change the Default value to -0.250.

  • In the List values box enter: [-0.250 -0.167 -0.200 -0.125 0.000 0.000 0.000 -0.200 -0.125 0.000].

  • In the List_Tip values box enter: ["P0" "P1" "P2" "P3" "P4" "P5" "P6" "P7" "P8" "P9"].

  • Click OK to save the changes.

Add Tx Jitter Parameters

To add Jitter parameters for the Tx model click the Reserved Parameters... button to bring up the Tx Add/Remove Jitter&Noise dialog, select the Tx_DCD, Tx_Dj and Tx_Rj boxes and click OK to add these parameters to the Reserved Parameters section of the Tx AMI file. The following ranges allow you to fine-tune the jitter values to meet PCIe4 jitter mask requirements.

Set Tx DCD Jitter Value

  • Select Tx_DCD, then click the Edit... button to bring up the Add/Edit AMI Parameter dialog.

  • Set the Current Value to 0.0.

  • Change the Format to Range.

  • Set the Typ value to 0.

  • Set the Min value to 0.

  • Set the Max value to 3.0e-11

  • Click OK to save the changes.

Set Tx Dj Jitter Value

  • Select Tx_Dj, then click the Edit... button to bring up the Add/Edit AMI Parameter dialog.

  • Set the Current Value to 0.0.

  • Change the Format to Range.

  • Set the Typ value to 0.

  • Set the Min value to 0.

  • Set the Max value to 3.0e-11

  • Click OK to save the changes.

Set Tx Rj Jitter Value

  • Select Tx_Rj, then click the Edit... button to bring up the Add/Edit AMI Parameter dialog.

  • Set the Current Value to 0.0.

  • Change the Format to Range.

  • Set the Typ value to 0.

  • Set the Min value to 0.

  • Set the Max value to 2.0e-12

  • Click OK to save the changes.

Update Receiver AMI Parameters

Open the AMI-Rx tab in the SerDes IBIS/AMI manager dialog box. Following the format of a typical AMI file, the reserved parameters are listed first followed by the model specific parameters.

Add Rx Jitter Parameters

To add Jitter parameters for the Rx model click the Reserved Parameters... button to bring up the Rx Add/Remove Jitter&Noise dialog, select the Rx_DCD, Rx_Dj and Rx_Rj boxes and click OK to add these parameters to the Reserved Parameters section of the Rx AMI file. The following ranges allow you to fine-tune the jitter values to meet PCIe4 jitter mask requirements.

Set Rx DCD Jitter Value

  • Select Rx_DCD, then click the Edit... button to bring up the Add/Edit AMI Parameter dialog.

  • Set the Current Value to 0.0.

  • Change the Format to Range.

  • Set the Typ value to 0.

  • Set the Min value to 0.

  • Set the Max value to 3.0e-11

  • Click OK to save the changes.

Set Rx Dj Jitter Value

  • Select Rx_Dj, then click the Edit... button to bring up the Add/Edit AMI Parameter dialog.

  • Set the Current Value to 0.0.

  • Change the Format to Range.

  • Set the Typ value to 0.

  • Set the Min value to 0.

  • Set the Max value to 3.0e-11

  • Click OK to save the changes.

Set Rx Rj Jitter Value

  • Select Rx_Rj, then click the Edit... button to bring up the Add/Edit AMI Parameter dialog.

  • Set the Current Value to 0.0.

  • Change the Format to Range.

  • Set the Typ value to 0.

  • Set the Min value to 0.

  • Set the Max value to 1.0e-12

  • Click OK to save the changes.

Export Models

Open the Export tab in the SerDes IBIS/AMI manager dialog box.

  • Update the Tx model name to pcie4_tx.

  • Update the Rx model name to pcie4_rx.

  • Note that the Tx and Rx corner percentage is set to 10. This will scale the min/max analog model corner values by +/-10%.

  • Verify that Dual model is selected for both the Tx and the Rx AMI Model Settings. This will create model executables that support both statistical (Init) and time domain (GetWave) analysis.

  • Set the Tx model Bits to ignore value to 3 since there are three taps in the Tx FFE.

  • Set the Rx model Bits to ignore value to 20,000 to allow sufficient time for the Rx DFE taps to settle during time domain simulations.

  • Set Models to export as Both Tx and Rx so that all the files are selected to be generated (IBIS file, AMI files and DLL files).

  • Set the IBIS file name to be pcie4_serdes.

  • Press the Export button to generate models in the Target directory.

Test Generated IBIS-AMI Models

The PCIe4 transmitter and receiver IBIS-AMI models are now complete and ready to be tested in any industry standard AMI model simulator.

References

[1] PCI-SIG, https://pcisig.com.

See Also

| | |

Related Topics