Videos > Predicting Serial Channel Performance and Generating Eye Diagram In ANSYS AEDT Using SIwave Solver
Apr 24, 2025

Predicting Serial Channel Performance and Generating Eye Diagram In ANSYS AEDT Using SIwave Solver

Hello, this is Ibrahim Nassar with Ozen Engineering, Inc. In this demo, we will simulate a serial channel on a PCB design using the ANSYS Electronic Desktop. The tools utilized include the HFSS 3D layout, and within this tool, we will use the SIwave solver to extract the S-parameters. Subsequently, we will employ the ANSYS Nixium circuit transient solver to create an eye diagram plot.

Workshop Workflow

  1. Import or open a design.
  2. Set up the model.
  3. Add the I-source and termination, connecting them to the points of interest.
  4. Add the SIwave analysis setup, run the simulation, and extract the S-parameters.
  5. Add a transient circuit simulation setup.
  6. Perform the analysis and generate the eye diagram plot.

Model Overview

The model we are simulating is complex, with numerous components. Our primary interest lies in simulating the connector, the controller, and the connecting lines. The components of interest include the IMX6Q, and we will simulate the transmission lines connecting it to the connector.

Nets of Interest

  • TXMDS1
  • TXMD2 NMP

Simulation Setup

Ports are pre-created in this simulation. The first step is to add an SIwave simulation setup. We will use the SIwave solver due to its efficiency for this type of PCB board file.

SIwave Solution Setup

  1. Right-click on Analysis and add SIwave Solution Setup.
  2. Select the first option for signal integrity simulation with balanced accuracy and speed.
  3. Advanced settings:
    • Do not mesh voids smaller than 2mm².
    • Explicitly mesh pads larger than 1mm².
  4. DC settings: Use the State Space model.
  5. Frequency sweep: 0 to 10 GHz.

Adding I-Source

  1. Access Component Libraries and ensure they are visible under View.
  2. In Symbols, type "i" and show all sources with "i".
  3. Use a differential source and place it appropriately.
  4. Source settings:
    • Rise time: 50 ps
    • Fall time: 50 ps
    • Unit interval: 1/3.2 Gbps
    • PRBS data: Length 15, Seed 1
    • Resistance: 100 ohms (differential)
  5. Copy the source and connect it to the controller.

Connecting Components

  1. Select the source and component, right-click, and connect pins.
  2. Connect negative terminal to J3 and positive terminal to J4.
  3. Repeat for the second source: negative to K3, positive to K4.

Adding Termination

  1. In the component library, type "RIS" for resistance and select the first option.
  2. Place and rotate the resistor, setting its value to 100 ohms.
  3. Copy and connect resistors similarly to the sources.

Simulation and Analysis

Change co-simulation options to use the SIwave simulator, override setup and sweep, then run the SIwave simulation.

Defining Differential Pairs

  1. Right-click on Excitation and select Differential Pair.
  2. Assign pairs: J1 with J3, and J10L4 with J10L6.

Transient Simulation Setup

  1. Right-click on analysis and add Nixium solution setup for transient analysis.
  2. Run from 0.1 ns to 2 µs.

Viewing Results

  1. Right-click on Sweep1 and select Results Network Data Explorer.
  2. Create a standard report for differential pairs.

Creating Eye Diagram

  1. Start transient simulation by right-clicking on the transient setup and clicking analyze.
  2. Create an eye diagram report and plot.
  3. Define a mask if needed, specifying time and voltage.

Thank you for watching!

[This was auto-generated. There may be mispellings.]

Hello, this is Ibrahim Nassar with Ozen Engineering. In this demo, we will be simulating a serial channel on a PCB design using the ANSYS Electronic Desktop. The tools that will be used are the HFSS 3D layout, and within this tool, we will be using the SIwave solver to extract the S-parameters.

Then we will use the ANSYS Nixium circuit transient solver to create an eye diagram plot. Here is the workflow of this workshop. So you will import a design or open a design. Then we will set up the model.

Then after that, we will add the I-source and the termination and connect them to the points that we need to analyze. After that, we will add the SIwave analysis setup and run the simulation and extract the S-parameters.

After that, we will add a transient circuit simulation setup, and finally, we will do the analysis and generate the eye diagram plot. Here is the model that we are going to simulate.

As you see, it is a complex model; it has a lot of components, and we will be basically interested in simulating this connector and this controller and the lines that connect between them. We can look at the components from this tab here.

So this is basically the components that we want to simulate, which is the IMX6Q, and we will simulate the transmission lines that connect it all the way to this connector. We can also go to Nets here and show the Nets of Interest, which are the TXMDS1 and TXMD2 NMP.

So if I right-click and say Show and Hide All Others, so these are the Nets that we are going to simulate. The ports are already created in this simulation. We can select one port here and select Select in Layout. This is the first port; this is the second port, and the other ports are on this end.

The first thing we need to do is to add an SIwave simulation setup here. We're going to use the SIwave solver since it's more efficient for this type of PCB board file. To do that, we can right-click on Analysis and add SIwave Solution Setup and select this first option, which is already here done.

So if we just double-click to view it here, so we will use it for signal integrity simulation with a balanced accuracy and speed. Here are the settings of the Advanced tab.

We will basically not mesh voids that are less than 2mm square, and we will explicitly mesh pads that are larger than 1mm^ 2. Here is the DC settings, the DC Advanced, and the S-parameters; we will rely on the State Space model.

Okay, if we hit cancel here, and this is basically the frequency sweep that we are going to simulate over, from 0 all the way to 10 GHz. Ok, let's hit OK now. So now we will add the I-source; we will be adding two I-sources, and we connect them to this controller.

To do that, we click on Component Libraries, and we type in, if this is not visible, make sure to go to View and make sure these component libraries are checked.

So here, if we go to Symbols and type "i" and then click Show All to show all the sources with "i", and we will be using this one, which is a differential source. And let's just place it somewhere here.

Now let's change the settings of the source so we will be using 50 ps for the rise time, and the fall time is 50 as well.

We will be using a bit per second unit interval, and we will change that to be 1 over the 3.2 gigabit per second, or you can also change the bit pattern by entering the PRBS data, change this number to 15, PRBSLength to 15, and PRPSSeed to 1. Hit OK.

The resistance of the source is 100, since this will be differential. Now we can CTRL-C and click somewhere and hit CTRL-V on the keyboard to make a copy of the source. Now we will connect the source to this component. So while the source is selected with the CTRL key, select this component.

And we right-click and say select connect pins. So we will connect now the negative pin of the I-source to this component.

So to select the Nets that we need, we can type in this filter multiplication symbol Tx0_underscore T and hit enter, and we will connect the negative terminal to the J3, and then we click on this bottom here. Now the positive terminal will be connected to the J 4. Okay, and we hit OK.

Now you see that the source is placed here, which is behind the solder balls. To have the wallet selected, we can go to Footprint and uncheck the option to Dynamic Symbol, and this will make the source appear on the site.

We are not seeing the connections because we have to check this option if we select Trads to be visible. Now we see the connection lines. Now, same thing, we can select this source and we select this component again and right-click and select connect pins.

Similarly, in the filter, we type multiplication symbol Tx0_underscore T and hit enter, and we will connect the negative terminal to K3, and the positive terminal to K 4. And we hit OK, and same thing, to have it appear on the side, we can go to the Footprint tab and uncheck the option to dynamic symbol.

Okay, so now we connected the sources to this. Now we connect the controller to the controller. We have to add a 100-ohm termination and connect it to this connector. To do that, we go to the component library again, and we type here RIS for resistance, and we select the first one.

And let's place it next to here, and we can, while before placing it somewhere, hit the R letter, as in Robert, on the keyboard to make it rotate, and we can change now its value from the properties window to 100 ohm.

Now, same thing, we want to make two copies of it, and now, similarly, we want to connect these resistors here, so we select one resistor, and we select the component, and we right-click, select connect pins, same thing, we will connect the terminal 0 to the point that is this one J10L6DX0, and we click here, and for terminal 1, we will connect it to J04, and click here.

We hit OK, same thing, we can go to footprint and uncheck the dynamic symbol.

Now we select the other resistor, and we select the component, right-click, connect pins, and here we will select the terminal 0 with the J10L3, Click here, and terminal 1 will be connected to Jyotin L1, and click here, and then we hit OK. Similarly, we go to footprint and uncheck the dynamic.

Here we see, like there's a problem here, so let's see if the connection was made correctly. So let's select again this resistor and this component, right-click, connect pins, and yeah, it's just a visibility, yeah, it was just a visibility thing. Okay, let's now save.

So now we have the sources and the terminations connected properly. One other thing we can do, let's, we can, or we can define differential pairs, but let's do this as a post-processing.

So one thing here we need to change the co-simulation options, so by double-clicking here, and we need to use the SIwave simulator, not the HFSS, and we want to use a setup override, and the sweep to be overridden as well. And hit OK. Now we can run the SIwave simulation.

While it is running, we can define the differential pairs by right-clicking on Excitation and selecting Differential Pair. Here I already placed them, but the way you do it, they will appear here, and you just move them. So let's remove them and reassign them.

So the J1, and you can move them between here and this side. So the J1 will be connected as a differential pair with J3, and so this one with this one, add this pair, and the J10L4 and J10L6 will be the second pair, so this is correct.

This is basically by looking at the ports that were connected here to these two differential pair lines. Select this and this, and we hit add pairs. And now we have the differential pairs defined. Okay, now, while the simulation is running, we can also add the transient simulation setup.

To do that, we right-click on analysis and add Nixium solution setup, and we select transient analysis. So the SIwave analysis basically will be used to extract the S-parameters, and after the simulation is done, we will run a transient circuit analysis without the need to create a circuit design.

So here we just define the analysis, and we already added the sources and the termination. And we will run this from 0.1 nanosecond all the way to 2 microseconds. And we hit OK.

So now we have everything defined; we just need to wait for the SIwave analysis to complete, which will be very fast, so now it's doing the interpolating sweep. Now the simulation is done. To view the results, we can right-click on Sweep1 and select Results Network Data Explorer.

This way we can look and select multiple traces. For differential pairs here, you have to redefine them. Or since we already defined them inside HFSS 3D layout, we can right-click on Results, Create Standard Report, Rectangular Plot.

Now we select the SIwave as a parameter of the simulation, and the sweep, and here we show the differential pairs, and now we can look at Diff1, we can look also at the coupling between Diff2 and Diff1, and the coupling with Diff3 and Diff4, and click on New Report, and these are the results.

Now to create the eye diagram, we first have to start the transient simulation. Since the transient simulation now will basically take the S-parameters that were calculated by the SIwave solver. So to start it, right-click on the transient setup and click analyze.

ANSYS circuit simulation, so it will be fast. Now it's doing the time sweep. While we're waiting for the simulation to be done, let's create the eye diagram plot. To do that, right-click on results, select create eye diagram report, and rectangular plot.

Let's plot, for example, 4 and 6 by CTRL-K, we can select to trace the quantity here. Let's look at the difference between them. So by hitting add the minus sign, I'm sorry, four and six, and we had the negative sign.

And we need to change the unit intervals, so to be one over the 3.2 gigabit per second, E9, and we make sure that the unit is second, and now we hit a new report. So this is the eye diagram plot.

If you would like to define a mask, you can easily do that by selecting the report and click on mask and click select the mask tab and then click on edit.

If we click on edit here, then we can define the time and the voltage for the mask, which will be 200, 250, 375, 425, 375, 250, 200, and the voltage will be 0, 200, 200, and the voltage will be 0, 200, 200, and then enter it as 0-200-200- 0. So this is basically the mask I want to define, but you can define any mask you want, and give it a color, so hit OK, and here also you hit OK, and that's it.

So that's it for this demo, and thank you for watching. Thank you for watching!