PCB Simulation
The increasing complexity of nowadays wireless RF devices increases the demand for accurate and efficient simulations of large and complex PCB designs. Identifying and predicting potential issues early in the design process saves resources, time, and money. SIwave helps you model, simulate and validate high-speed channels and complete power delivery systems typical in modern high-performance electronics. It accurately extracts multi-gigabit SERDES and memory buses, providing product sign-off compliance for various designs. SIwave’s full wave extraction of complete power distribution networks (PDN) enables you to verify noise margins and ensure impedance profiles are met through automatic decoupling analysis in low-voltage designs.
Overview
In this blog we will be setting up a serial channel on a PCB model using the HFSS 3D Layout tool in the ANSYS Electronics Desktop (AEDT) . An eye diagram will be generated from the layout interface of the AEDT, using the ANSYS SIwave and ANSYS Nexxim transient solvers bypassing the need for creating a separate circuit schematic or netlist.
Workflow
The work flow of this demo consists of the following steps:
a portion of the HDMI channel parasitics between the iMX6Q controller (U100) and connector (JL10) will be extracted. HDMI speed is 3.2 Gbps for 1080p with a 60 Hz refresh rate for 1920x1080 resolution. Nets of Interest are only:
- TX_TMDS1_P/N (Data)
- TX_TMDS2_P/N (Data
Adding Eye Sources and Terminations
To create an Eye diagram we need to add Eye Sources and connect them to the controller.
The eye source Properties set to:
- trise= of 50 ps.
- tfall = 50 ps.
- UIorPBS to UnitInterval
- UIorBPSValue to UI with a value of 1/3.2 G.
- click on the BitPattern button, which opens the Bit pattern data dialog box
- In the Bit pattern data dialog box set:
- The radio button by Enter PRBS Data
- PRBS length to 15
- PRBS seed to 1
- Click OK to close the Bit pattern data dialog box
After the 2 eye sources are added, we need to connect them to the controller. To make the connection:
- Select the first source, then hold the Ctrl key and select the U100 iMX6Q controller.
- Right-click and select Connect Pins…, this opens the Pin Connectivity dialog box
- In the Pin Connectivity dialog box, in the U100 column, in the Filter… section, type *TX0_T* and click Enter to down select the signal list
- In the EYESOURCE_DIFF column, select negative
- In the U100 column, select U100.J3.TX0_TMDS1_N[TX0_TMDS1_N]
- Click the --> button to map them
- In the EYESOURCE_DIFF column, select positive
- In the U100 column, select U100.J4.TX0_TMDS1_N[TX0_TMDS1_P]
- Click the --> button to map them
- Click OK to close the Pin Connectivity dialog box
Select the second source and repeat the same steps
- In the EYESOURCE_DIFF column, select negative
- In the U100 column, select U100.K3.TX0_TMDS2_N[TX0_TMDS2_N]
- Click the --> button to map them
- In the EYESOURCE_DIFF column, select positive
- In the U100 column, select U100.K4.TX0_TMDS2_N[TX0_TMDS2_P]
- Click the --> button to map them
- Click OK to close the Pin Connectivity dialog box
Now we need to add 100 ohm terminations to the connector side, similarly:
- In the layout, select the one resistor
- hold the Ctrl key and select the component J10L connector
- Right-click and select Connect Pins…, this opens the Pin Connectivity dialog box
- In the Pin Connectivity dialog box, under the RES_ column, select terminal_0
- In the J10L column, select J10L.6.TX0_TMDS1_N[TX0_TMDS1_N]
- Click the --> button to map them
- In the RES_ column, select terminal_1
- In the J10L column, select J10L.4.TX0_TMDS1_P[TX0_TMDS1_P]
- Click the --> button to map them
- Click OK to close the Pin Connectivity dialog box
Connecting the second resistor:
- select the other resistor
- hold the Ctrl key and select the component J10L connector
- Right-click and select Connect Pins…
- In the Pin Connectivity dialog box, under the RES_ column, select terminal_0
- In the J10L column, select J10L.3.TX0_TMDS2_N[TX0_TMDS2_N]
- Click the --> button to map them
- In the RES_ column, select terminal_1
- In the J10L column, select J10L.1.TX0_TMDS2_P[TX0_TMDS2_P]
- Click the --> button to map them
- Click OK to close the Pin Connectivity dialog box
Adjust SIwave Solution Setup
In this workshop we will be using SIwave solver to extract the SYZ parameters.
- In the Project Manager, expand Analysis
- Double click on Cosim Options (HFSS) to bring up the Co-Simulation Options dialog box
- Check the box for Setup override: and set it to SIwaveSYZ 1
- Check the box for Sweep override: and set it to Sweep1
- Click OK to close the Co-Simulation Options dialog box
Add Transient Solution Setup
After adding the SIwave solution setup, we will define the transient solution setup.
- In the Project Manager, right-click on Analysis
- Select Add Nexxim Solution Setup… -> Transient Analysis
- This brings up the Transient Analysis dialog box
- In the Transient Analysis dialog box, set Start to 0.1 ns and Stop to 2us
- Click OK to close the Transient Analysis dialog box
Create Eye Diagram Plot
After both the SIwave and transient simulations are done, we can create the eye diagram plot following the below procedures;
- In the ribbon, with the Results tab highlighted, click on the small triangle by Eye Diagram Report and select 2D to bring up the Report dialog box
- In the Report dialog box, under Trace tab, set:
- Solution to Transient Setup 1
- Domain to Time
- Unit Interval: enter 1/3.2e9 s
- Eye Diagram: V(J10L.4.TX0_TMDS1_P)-V(J10L.6.TX0_TMDS1_N), which is the differential voltage at the load resistor
- Click on the New Report button
- Click on Close to close the Report dialog box
Below is the diagram plot.
we can also define a mask to be viewed with the eye diagram report. In order to add the data mask, open Edit eye mask dialog box:
- In the eye diagram plot, click on or near the X-axis (Time) at the bottom of the plot to select the X-axis
- In the Properties window select the Mask tab
- Click the Edit button, which brings up the Edit eye mask dialog box
- In the Edit eye mask dialog box, click on the Edit button, which opens the Edit Dataset window
- In the Edit Dataset window, in the Coordinates area, enter the mask data:
- Time[ps]: 200ps and Voltage[mV]: 0mV
- Time[ps]: 250ps and Voltage[mV]: 200mV
- Time[ps]: 375ps and Voltage[mV]: 200mV
- Time[ps]: 425ps and Voltage[mV]: 0mV
- Time[ps]: 375ps and Voltage[mV]: -200mV
- Time[ps]: 250ps and Voltage[mV]: -200mV
- Time[ps]: 200ps and Voltage[mV]: 0mV
- Click OK to close the Edit Dataset window
- Click OK to close the Edit eye mask dialog box
And below is the eye diagram plot with the data mask shown.