Main Content

Design IBIS-AMI Models to Support DC Offset

This example shows how to create Rx AMI models that support DC Offset as defined in the IBIS 7.1 specification by modifying the library blocks in SerDes Toolbox™. This example will add DC Offset to a Saturation block to demonstrate the setup and impact of DC Offset.

Background

Statistical simulations with AMI models use an Impulse Response as the input to the Init function. Since an Impulse Response loses any DC information about a signal, an AMI simulation will always be centered around the mid-point of the resulting signal swing. Since AMI models are now being used in single-ended NRZ channels (such as DDR5), the signal will have lost the original mid-point of its signal swing. Losing this original DC information means the receiver AMI model cannot accurately model things like saturation.

IBIS 7.1 added a new AMI reserved parameter, DC_Offset, which allows the EDA tool to compute the mid-point of the signal-swing and pass this value to the receiver AMI model. The input value of DC_Offset is the mean value of the steady state high and low voltages of the analog channel step response at the Rx pad.

This example introduces DC Offset in SerDes Toolbox by showing how to generate and test an IBIS-AMI executable that supports DC_Offset.

Rx IBIS-AMI Model Setup in SerDes Designer App

The first part of this example sets up some typical Rx equalization blocks using the SerDes Designer app. Launch the app with the following command:

>> serdesDesigner

Configuration Setup

Begin by setting the following values in the Configuration panel:

  • Set the Symbol Time to 200ps (5.0GHz).

  • Set the Target BER to 1e-12.

  • Verify that Modulation is set to NRZ (non-return to zero).

  • Set the Signaling to Single-ended.

Tx Model Setup

The Tx requires no equalization blocks. Since this example is focused on the Rx model, the Tx block will be untouched.

Analog Channel Setup

  • Set the Channel loss to 5 dB, which is typical of DDR channels.

  • Set the Single-ended impedance to 40 ohms.

  • Set the Target Frequency to 2.5 GHz, which is the Nyquist frequency for 5.0 GHz.

Rx Model Setup

  • Set the Rx Analog model so that R (input resistance) is 40 ohms and C (capacitance) is 0.65pF.

  • Add a CTLE block with the Specification set to DC Gain and AC Gain, a Peaking frequency of 2.5GHz, 9 DC Gain settings (0 to -8 dB) and an AC gain of 0dB.

  • Add a Saturating Amplifier block and keep all settings at their defaults.

  • Add a DFECDR block with four DFE taps and the Initial tap weights set to 0, the Minimum tap values set to [-0.2 -0.1 -0.1 -0.1]V, and the Maximum tap values set to [0.2 0.1 0.1 0.1]V. Note: the DFECDR offers an option for "2X Taps." Check this option to have pulse response values match the convention used by JEDEC. Uncheck this option to use pulse response values directly from the plot. For this example, we will leave this option checked.

The final SerDes system should look like this:

app_serdes_system.jpg

Plot Statistical Results

Use the SerDes Designer Add Plots button to visualize the results of the setup. Add the BER plot from Add Plots and observe the result:

app_ber_plot.jpg

Export SerDes System to Simulink

Click Save and then click on the Export button to export the configuration to Simulink, where you will add support for DC Offset and generate AMI model executables.

Rx Model Setup in Simulink

The second part of this example takes the SerDes system exported by the SerDes Designer app and customizes it in Simulink.

Review Simulink Model Setup

This Simulink SerDes system contains the standard configuration: Stimulus, Configuration, Analog Channel, Tx and Rx blocks, with all values carried over from the SerDes Designer app. Review each of these blocks to verify the setup is as expected.

sim_serdes_system2.jpg

Enable DC Offset

The DC Offset functionality is enabled via the SerDes IBIS-AMI Manager. Open the Manager via the Configuration block, select the AMI-Rx tab, then click on Reserved Parameters... This will bring up the Add/Remove dialog where the DC_Offset parameter can be enabled:

dcOffset_addRemoveDialog.jpg

Check the box for DC_Offset, then click OK to add the DC_Offset parameter to the Reserved_Parameters section of the Rx AMI tree:

dcOffset_RxTab.jpg

Add DC Offset to Desired block(s)

Once DC Offset has been enabled in the Rx model, a Constant block is used to pass the value of DC_Offset to the block of interest. Highlight DC_Offset in the AMI tree and click on Edit... to bring up the Add DC_Offset dialog. A list of all current Rx data path blocks will be listed where you can select the block(s) that you would like to add the value of DC_Offset to:

dcOffset_addBlockDialog_SatAmp.jpg

Check the box next to SatAmp, then click OK. This will add a new DC_Offset constant block to the SatAmp Rx data path block:

sim_new_dcoffset_constant2.jpg

Modify the SatAmp Block

Per the IBIS 7.1 specification, “It is assumed that the waveform input to the Rx AMI GetWave function is the physical Rx input waveform minus the input value of this DC_Offset. The Rx AMI_GetWave function may choose to reconstruct the physical input waveform by adding the input value of DC_Offset to the input waveform.”

Also per IBIS 7.1, “The Rx AMI_GetWave output waveform returned by the AMI model shall swing around zero volts.” Therefore, after the saturation amplifier, the value of DC Offset must be subtracted from the outgoing waveform to retain the original signal swing.

Inside the SatAmp block, add Sum blocks to the input and output nodes and connect them to the DC_Offset Constant block. Note that the first sum block is adding the value of DC_Offset to the In signal, and the second sum block is subtracting the value of DC_Offset from the Out signal. This will allow the saturation amplifier to be applied to the waveform with the correct signal swing while still meeting the IBIS specification. The final SatAmp block should look like the following:

sim_satamp_block_final2.jpg

Run the Simulink Model

The Simulink model is ready to run. Press the run button to launch the simulation.

As the simulation runs, the Time Domain eye diagram gets constantly updated. With DC Offset set to 0.0V in the AMI Manager, the eye diagram should look like the following:

baseline_td_eye.jpg

After the simulation is complete, the Init Statistical and Time Domain Analysis Results plot becomes available:

baseline_init_td_results.jpg

Changing the current value of DC_Offset

The SerDes IBIS-AMI Manager is used to set the current value of DC_Offset for testing purposes. While the DC_Offset parameter is an input to the AMI model, the EDA tool ignores any value specified in the .ami file and instead calculates the correct value at simulation time and passes this value to the model instead. This value is not calculated by Simulink, but it can be manually set to verify proper operation.

Testing DC Offset

Open the SerDes IBIS-AMI Manager, select the AMI-Rx tab, highlight the DC_Offset parameter, and set the Current value to 0.85V. Re-run the simulation. Now the Time Domain eye diagram should look like the following. Note the reduced signal swing due to the saturation.

dcOffset_0p85_td_eye.jpg

After the simulation is complete, the Init Statistical and Time Domain Analysis Results plot becomes available. Note that the Statistical eye remains unchanged, while the Time Domain eye is showing the non-linear effects of saturation.

dcOffset_0p85_init_td_results.jpg

Note that since DC Offset only affects the Time Domain results, the Statistical results do not reflect the effects of DC Offset.

Generate Rx IBIS-AMI Model

The final part of this example takes the customized Simulink model and generates IBIS-AMI compliant model executables, IBIS and AMI files for the generic transmitter and the DC Offset receiver.

Export Models

Open the SerDes IBIS-AMI Manager and select the Export tab. On the Export tab:

  • Update the Tx model name to generic_tx

  • Update the Rx model name to dc_offset_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 Rx AMI Model Settings. This will create a model executable that supports both statistical (Init) and time domain (GetWave) analysis.

  • Set the Rx model Bits to ignore value to 1000 to allow enough time for the external clock waveform to settle during time domain simulations.

  • Set Models to export to Both Tx and Rx.

  • Set the IBIS file name to be dc_offset.ibs

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

Test Generated IBIS-AMI Models

The DC Offset receiver IBIS-AMI model is now complete and ready to be tested in any industry standard AMI model simulator that supports IBIS 7.1.

References

IBIS-AMI Specification