AMI models: What, why and how?
The rise/fall time from the Flex DCA software shows that the signal meets the PCIe rise/fall time specifications. The model shown in Figure 5 has a voltage swing of 1 V. Changing the logic level to the required TX voltage swing can be accomplished in many ways. For example, the designer can adjust the signal amplitude by adding a gain block in the signal path and using it with an IBIS file that defines the device’s termination impedance. Another way of controlling the signal amplitude is by providing a full description of pull up/pull down device characteristics, along with the voltage range parameter, in an IBIS file with a 0 to 1 V voltage swing.
AMI model generation
The remaining task is to convert the TX representation into a C++ model, convert it into a .dll file and then generate the supporting .ami and .dll files. SystemVue's AMI code generation capability makes this task quite trivial. To access this capability, the designer needs to add C++ code generation to the SystemVue workspace and edit the C++ code generation dialog box accordingly, using the C++ code generation options as shown in Figure 6.
The C++ code generation dialog generates C++ code for the TX block and exports it to Microsoft Visual C++. During this code synthesis process, various wrappers such as .ami and IBIS .txt files are automatically created (Figure 8).
Figure 7: The C++ code generation dialog box.