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 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 is16
GHzTarget 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), andDifferential
.
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 is12
ps, R (output resistance) is50
Ohms, and C (capacitance) is0.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) is0.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
toList
.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
toList
.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
toList
.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
FFE | CTLE | DFECDR | SerDes Designer