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 Buffer Issue Resolution Document (BIRD) 197.7 by modifying the library blocks in SerDes Toolbox™. This example will use a DDR5 read transfer (SDRAM to Controller) to demonstrate the setup.
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 new 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 BIRD 197.7, adds 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 Simulink
To begin, load the DC Offset Simulink model and review the model setup. Start by typing the following command:
This will bring up the following SerDes system:
Review Simulink Model Setup
This Simulink SerDes system contains the standard configuration: Stimulus, Tx, Analog Channel and Rx blocks, with a new DC Offset block added to the SatAmp block in the Rx. The setup of each of these blocks will be reviewed below.
Symbol Time is set to
Target BER is set to
Signaling is set to
Samples per Symbol and Modulation are kept at default values, which are
NRZ(nonreturn to zero), respectively.
The Stimulus block is set to default values.
The Tx contains no equalization blocks. Since this example is focused on the Rx model, the Tx block is untouched.
Analog Channel Block
Channel loss is set to
5dB, which is typical of DDR channels.
Single-ended impedance is set to
Target Frequency is set to
2.5GHz, which is the Nyquist frequency for 5.0 GHz
The Tx Analog model is set up so that Voltage is
1.1V, Rise time is
10ps, R (output resistance) is
50 ohms, and C (capacitance) is
The Rx Analog model is set up so that R (input resistance) is
40ohms and C (capacitance) is
The Rx block contains 3 equalization blocks: a CTLE block with an AC gain of 0dB and 8 DC Gain settings, a DFE block that uses four DFE taps with 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.01 0.1 0.1]V, and a SatAmp block.
The SatAmp block has the Limit set to 1.1V and the Linear gain set to 1V/V. It also contains the new DC Offset sub-system.
Per IBIS BIRD 197.7, “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.”
Inside the SatAmp block, the value of DC Offset is being added to the incoming waveform before it is applied to the Saturating Amplifier system object. This allows the saturation amplifier to be applied to the waveform with the correct signal swing.
Also per BIRD 197.7, “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 is subtracted from the incoming waveform to retain the original signal swing.
DC Offset Sub-System (New)
The DC Offset sub-system block 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 the value specified in the .ami file and calculates the correct value at simulation time and passes this value to the model instead. Since this value is not calculated by Simulink, the mask for this sub-system provides a method for specifying this value manually.
This new DC_Offset block is not yet included in the SerDes Toolbox library. You can add this subsystem to a new Simulink model by copy-pasting it from this example. Pasting this block into a new SerDes Toolbox model will also add the required DC_Offset AMI parameter and
DC_Offset Simulink signal to the Model Workspace.
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 mask, the eye diagram should look like the following:
After the simulation is complete, the Init Statistical and Time Domain Analysis Results plot becomes available:
Open the DC Offset mask, change the DC Offset value to 0.755V, then re-run the simulation. Now the Time Domain eye diagram should look like the following. Note the reduced signal swing due to the saturation.
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.
Note that since DC Offset only affects the Time Domain results, the Statistical results do not reflect the effects of DC Offset.
Changing the current value of DC_Offset
The operation of the DC Offset is controlled by the reserved AMI parameter DC_Offset. Changing the current value of this parameter is not supported by the SerDes IBIS-AMI Manager, so all updates to the current value are done from the DC Offset sub-system mask.
Note: If the IBIS-AMI Manager is already open, you may need to close and re-open it for the changes to be visible.
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 DC Offset receiver.
Open the Block Parameter dialog box for the Configuration block and click on the Open SerDes IBIS-AMI Manager button.
The IBIS-AMI Reserved input parameter DC_Offset is required for codegen to work properly. If this parameter is not present in your model the model may codegen, however the DC Offset properties will not be enabled.
On the Export tab in the SerDes IBIS/AMI manager dialog box.
Update the Rx model name to
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 the Rx AMI Model Settings. This will create a model executable that support both statistical (Init) and time domain (GetWave) analysis.
Set the Rx model Bits to ignore value to
10,000to allow enough time for the external clock waveform to settle during time domain simulations.
Set Models to export to Rx only since we are only generating a Rx model.
Set the IBIS file name to be
Press the Export button to generate models in the Target directory.
Review AMI file
The resulting Rx AMI file will look like a normal Rx AMI file with two exceptions. First, the AMI_Version is set to 7.1. The second is the inclusion of the reserved parameter DC_Offset. Since both of these changes are from an unreleased version of the IBIS Specification, either one will cause this AMI file to fail the IBIS AMI Checker (which is currently on version 7.0.1). If this causes any problems in your EDA tool you may want to skip the running of the AMI Checker.
This DC Offset AMI model requires an EDA tool that supports BIRD 197.7.
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 BIRD 197.7.