IBIS-AMI models: an integration reference
An IBIS-AMI handoff needs the selected buffer model, its parameter file, the matching executable model and a documented simulation configuration. Record the transmitter and receiver selections separately, including their operating conditions and supported analysis modes. A set of filenames is an inventory; it becomes useful integration evidence when each file is tied to a version, a chosen model and a specific run.
Separate the model description from the executable
An IBIS-AMI package commonly combines an .ibs description, an .ami parameter file and a platform-specific executable library. The description identifies the algorithmic model relationship; the parameter file exposes its controls; the executable supplies the algorithmic behavior. Keysight documents these separate package elements and distinguishes standard reserved parameters from model-specific parameters1. Keep those elements together in the inventory without treating them as interchangeable files.
For example, receiving a new parameter file does not by itself identify which executable it belongs with. Receiving an executable with the expected filename does not show that it is the same build used in an earlier analysis. Assign an internal package revision, record each file’s hash and preserve the provider’s release identifier. Those are practical bookkeeping choices for reproducing an analysis, not new requirements imposed on a model vendor.
Also keep the channel data and the model package separate in your record. If a result changes, the engineer should be able to distinguish a new receiver model from a changed interconnect, a different port mapping or a modified analysis setting. Combining all those changes under one generic “model update” label makes a later comparison harder to interpret.
Use a versioned reference, not an assumed common baseline
IBIS 8.0 was ratified on 5 December 2025. Its algorithmic interface describes supported combinations involving AMI_Init, AMI_GetWave and AMI_Close, with resolve functions for relevant cases2. Older or tool-specific explanations may focus on only the three familiar functions. Record the version declared by the model and the interface expected by the receiving tool instead of inferring universal support from an introductory diagram.
A standards version and a product release answer different questions. The first identifies the definitions being used; the second identifies an implementation and its documented limits. If a tool’s feature list says that it supports an AMI flow, capture the relevant release and conditions. Do not turn that sentence into a claim that the particular model package you received has already loaded and run successfully.
The same discipline applies to examples and tutorials. A demonstration can show the syntax of a parameter or the structure of a flow without exercising every combination of transmitter and receiver capabilities. Keep the explanation available as a reference, but preserve the configuration and observations from your own chosen pair as separate evidence.
Integration reference table
The following records are intended to travel with a selected model pair. “Unverified” means the corresponding item has not been established for that handoff; it does not mean the provider lacks it. The final column describes the question the record helps an engineer resolve, not a pass/fail judgement about a product.
| Record | What to retain | Integration question |
|---|---|---|
| Package identity | Provider release, acquisition date, file hashes | Are these the same input bytes? |
| IBIS selection | File, component, pin and model identifiers | Which buffer description was selected? |
| Algorithmic pairing | Referenced parameter and executable files | Does each selection point to the intended companion files? |
| Parameter snapshot | Defaults, overrides and returned values | Which settings actually described this run? |
| Executable target | OS, architecture and dependency information | Can the selected environment load this build? |
| Standard baseline | Declared IBIS/AMI version | Which definitions does the package claim to use? |
| Tool baseline | Product release, build and selected flow | Which implementation interpreted the model? |
| Transmitter capabilities | Recorded initialization and waveform support | Which transmitter processing path was selected? |
| Receiver capabilities | Recorded initialization and waveform support | Which receiver processing path was selected? |
| Channel identity | File hashes, ports, units and orientation | Was the intended interconnect connected? |
| Operating point | Data rate and documented model conditions | Is this a justified configuration for the model? |
| Analysis settings | Mode, stimulus, duration and saved controls | Can another run repeat the setup? |
| Initialization evidence | Literal messages and returned parameters | Did initialization complete as reported? |
| Output identity | Result files, metric definition and run ID | What observation belongs to this setup? |
| Open issues | Missing files, unknown settings and limitations | What remains unresolved before using the result? |
Select the analysis mode explicitly
MathWorks distinguishes statistical analysis from bit-by-bit time-domain analysis, with different assumptions about the modeled behavior. Its documentation also describes Init-based time-domain processing when an impulse response is used with a stimulus sequence3. The distinction matters when recording a result: an eye generated by one analysis path should not silently stand in for a result from another path.
Create separate entries for the transmitter and receiver rather than one combined “AMI supported” checkbox. Record the selected mode and the capability declarations that informed it. If one side uses an initialization response while the other supplies waveform processing, keep that choice visible in the run configuration. The configuration record should make a later reviewer ask the right implementation question without needing to guess how a graphical interface chose the path.
When comparing two results, hold the intended comparison boundary constant. If the receiver setting changes but the channel file and transmitter selection are meant to stay fixed, compare their hashes and saved selections first. A plot labelled with the same project name does not establish that those inputs were unchanged. A structured run record makes that check concrete.
Preserve parameter meaning as well as parameter values
The .ami file contains standard reserved parameters and may contain model-specific controls. MathWorks documents examples including AMI_Version, Init_Returns_Impulse, GetWave_Exists, Modulation and Ignore_Bits in its export workflow4. Use the actual selected package as the source for names and values; do not substitute a generic list of familiar parameters for the file that accompanied the executable.
Record three things for an overridden control: its supplied value, the reason it was selected and the relevant model or tool documentation. A value chosen to match an intended operating point has a different status from a value changed experimentally to explore sensitivity. Keep that distinction in the record so an exploratory run is not mistaken for the nominal setup.
Returned parameters deserve their own field. An input setting and a reported result can have similar names while playing different roles in the workflow. Preserve the literal returned record alongside the chosen input values, and state which field supplied any number quoted in an engineering note. This prevents an edited configuration from overwriting the evidence of what a previous run actually reported.
Check the executable environment before interpreting results
An executable model has a platform and dependency boundary. The IBIS programming guide discusses the executable interface and dependency considerations2. Your handoff should therefore name the target environment and retain the load or initialization messages from the selected tool, rather than reporting only that a file with an expected extension exists.
A useful diagnostic record separates discovery, loading, initialization and completion. If the tool cannot find a referenced file, that is different from finding it but rejecting the executable. If initialization fails, the presence of an output directory does not establish that the intended analysis completed. Keep each stage’s message with the run so the next engineer can investigate the actual boundary that failed.
For a model supplied in several platform builds, preserve the selection made for the particular run. Avoid renaming a library simply to make a path match without recording the original identity. A clean inventory can include both the provider filename and the chosen local path, with the same hash linking them. That supports reproducibility without implying that different builds are interchangeable.
Keep channel assumptions visible
The channel belongs in the reproducibility record even when it arrives through a separate workflow. Record the selected data file, port order, units and any transformations applied before analysis. If an engineer reverses a connection or substitutes a newly processed channel, that change should be visible independently of an AMI model revision.
Describe what each saved result is intended to measure. An eye opening, a waveform sample and a bit-error-rate estimate are different outputs with different configuration dependencies. Include the metric definition and the run identifier when carrying a number into a report. That lets the recipient trace the number to its setup rather than treating a screenshot as a complete specification of the experiment.
The reference table deliberately leaves room for open issues. If the channel orientation, operating range or package revision is unresolved, record that uncertainty where it affects the selected result. A missing fact should not be replaced by a plausible default simply because the software can continue with one. The useful next step is to establish the intended condition and rerun the affected analysis.
Make comparison claims only at the level of the evidence
There are several legitimate outcomes from an integration review: the package is inventoried, its references resolve, the executable loads, the chosen analysis completes, or a defined result has been reproduced. Name the outcome you actually established. These statements form a sequence of engineering checks, but one does not automatically prove the next.
For a handoff between teams, attach the selected package record and the exact run configuration to the result. For a comparison between model revisions, record which inputs changed and which remained fixed. For a model that has not been executed locally, describe it as documented or received, with the unresolved execution work still visible.
The reproducible handoff guide provides an original file-identity example that can inform this record keeping. Its small RTL simulation is not an AMI demonstration. The shared principle is narrower: preserve selected inputs, separate configuration from observations, and make a change detectable before attributing a changed result to the wrong cause.
Not covered on this page
- Running or validating a vendor’s executable AMI model.
- Channel compliance testing or hardware correlation.
- Predicting eye opening or bit-error rate from a file inventory.
- Redistributing model packages or interpreting their licence terms.
Sources
Code on this page is original and MIT licensed.
How we test: methodology. Found a mistake? Corrections.