Main Content

AMI

Co-design SerDes architecture with other vendor designs

Since R2023b

  • AMI block

Libraries:
SerDes Toolbox / Utilities

Description

The AMI block allows you to co-design SerDes projects with other vendor IPs. It also allows you to correlate the code-generated/compiled IBIS-AMI models with the Simulink® models they were generated from.

The block can replace a transmitter or receiver component or run alongside them. To restore the transmitter or receiver component to their default settings, replace the AMI block with a Tx or Rx block.

You can only use the block in a Simulink model exported from the SerDes Designer app. The SerDes Designer sets up the required AMI tree for the block to work correctly. The block must be used on the top-level of a SerDes Simulink model.

In order to get exact correlation between Rx and AMI, you must add a delay block of length 1024 after the Rx. This delay accounts for the buffer/unbuffer inside the AMI block which handles the Block Size.

Note

You need license to both SerDes Toolbox™ and Signal Integrity Toolbox™ to use this block.

Examples

expand all

Using the correlation workflow, you can compare the results of the IBIS-AMI models generated using SerDes Toolbox with the original Simulink models.

Open the SerDes Designer app. Add a FFE to the transmitter side and a CTLE and DFECDR to the receiver side.

SerDes system with FFE, CTLE, and DFECDR.

Generate the dll/so and ami models by clicking the Export > Make IBIS-AMI model for SerDes System in the app toolstrip. Export the SerDes system to Simulink.

In the Simulink model, add a Delay between the Rx subsystem and the Eye Diagram block. Insert an AMI block and another Eye Diagram and connect them in parallel with the branch containing the Rx subsystem, Delay, and Eye Diagram blocks.

Simulink model for correlation worflow.

Double click the AMI block to open the Block Parameters dialog box. Refer to the dll and ami files for the receiver you created before. The block automatically creates the Input String parameter and populates the AMI tree.

Parameter settings for correlation workflow.

Change the Operation parameter to Rx and select the Correlation Flow option.

Since you are correlating Rx subsystem to the previously generated IBIS-AMI model using the AMI block, double check that the settings for the two systems match.

The AMI block introduces a 1024 sample delay for compatibility with the block size requirement of the IBIS-AMI standard. If you are not doing sample by sample correlation, you can ignore this delay.

Since this example uses sample by sample correlation, you need to mitigate the delay introduced by the AMI block. To do so, set the Delay length of the Delay block to 1024.

Enable data logging for the outputs of the AMI and Delay blocks by selecting the signals and clicking the Log Signals button in the Simulation tab.

Run the simulation. Open the Simulation Data Inspector and select the AMI and Delay signals. The two signals overlay perfectly.

Inspect AMI and Delay signals

To compare the two signals, click the Compare button. Select both signals and set Global Tolerance parameter to 1e-12 to use a small voltage tolerance of 1 pV.

Compare AMI and Delay signals.

Observe in the bottom panel that the difference is well within the tolerance set. Both the Rx subsystem and AMI block outputs correlate extremely well.

Using the co-design workflow, you can integrate IBIS-AMI models from third-party vendors or other team members with an active SerDes System design.

Open the SerDes Designer app. Add a FFE to the transmitter side and a CTLE and DFECDR to the receiver side.

SerDes system with FFE, CTLE, and DFECDR.

Generate the dll/so and ami models by clicking the Export > Make IBIS-AMI model for SerDes System in the app toolstrip. Export the SerDes system to Simulink.

In the Simulink model, delete the Tx subsystem. Add an AMI between the Stimulus and the Analog Channel blocks in place of the Tx subsystem.

Simulink model for co-desgin worflow.

Double click the AMI block to open the Block Parameters dialog box. Refer to the dll and ami files for the transmitter you created before. The block automatically creates the Input String parameter and populates the AMI tree.

Parameter settings for co-design workflow.

Check that the Operation parameter is set to Tx and the Correlation Flow option is deselected.

You can now interactively modify the design of the receiver to work with the transmitter. This example uses the IBIS-AMI models created from the SerDes Designer app, but you can use any IBIS-AMI models, either from your team members or from a third-party vendor.

Ports

Input

expand all

Input signal, specified as a waveform.

Data Types: double

Output

expand all

Modified output data that includes the effect of a lossy printed circuit board transmission line model according to the method outlined in [1].

Data Types: double

Parameters

expand all

Browse to select a DLL or SO file that contains the code and data to execute the SerDes system. You can get the files from a third party vendor you are co-designing with. You can also get them from another SerDes system you designed and exported that you want to correlate to current system.

Browse to select a AMI file that contains the AMI parameters and settings. The contents of the AMI file sets up the AMI tree and defines how to run the DLL files. The AMI tree is represented in the block parameters dialog box. For more information about how to manage the AMI parameters, see Manage Contents of IBIS and AMI files.

A short summary of the AMI tree is reported by the Input String parameter. If you make any changes to the tree parameters, the Input String parameter is updated to reflect the change.

Define whether the block is used as transmitter (Tx) or receiver (Rx). This sets the priority of the operation and calls the block in the right order for Init simulations. For more information about Init simulations, see Statistical Analysis in SerDes Systems.

Select this option to run the AMI block in parallel with another transmitter (Tx) or receiver (Rx).

Version History

Introduced in R2023b