05-31-2018 03:07 AM
Hello to anyone looking to help.
So I have been using the Vivado IBERT tool for a while now to tune signals from a FPGA back to itself. The data rate is 6.4 GHz and have had success with finding a good set of parameters. However, there are multiple FPGA's on my board that communicate with each other. I would like to also produce eye diagrams for the lines between those FPGA's. So, it is possible to use the IBERT tool to tune links between two FPGAs instead of just one? If so, how do I do this?
Specifically, I would like to tune XC7K325T-1FBG900C chips.
Thanks for your help in advance!
05-31-2018 07:42 AM - edited 05-31-2018 09:32 AM
The IBERT is just sending a PRBS pattern which can be synchronized between devices. On the sending device set up IBERT as normal you can make sure it is working by using the internal loopback and then just let it transmit. The same IBERT setup in the receiving chip should be able to generate an eye from that input. If the chips are not in the same jtag chain and you can use separate host machines to run the IBERT.
05-31-2018 09:00 AM
an advanced feature of Vivado allows to target multiple JTAG chains (and multiple IBERTs)
you can activate this feature by typing the following in the Vivado tcl console:
set_param labtools.enable_multiple_cables true
You can make your own TCL scripts to control TX Swing/pre/post while the RX margin changes.
This is for advanced users
05-31-2018 07:22 PM
I guess ibert cannot support tuning multiple FPGAs at the same time.
for example, sweeping the TX settings in a FPGA and ploting eye diagrams in the receiver of the remote FPGA correspondly. this feature is not supported.
06-01-2018 01:37 AM - edited 06-01-2018 01:40 AM
Thank you @gguasti!
This seems most promising to me. Is there documentation that I can look over to explore the capabilities of this mode? To clarify, this can all be done with the IBERT bit file is programmed in my two FPGA's?
Additionally, it would not be possible to perform sweeps of the parameters correct (using the GUI)? or perhaps is there a way to sweep with a script that will handle the RX and TX channels?
06-04-2018 12:38 AM
are the multiple FPGA placed in a single/common JTAG chain or separate JTAG chains individually?
06-04-2018 01:58 AM
06-04-2018 02:27 AM
if each FPGA is placed in separate jtag chain, you can open two Vivado sessions.
one is connected to JTAG cable 1, the other is connected to jtag cable 2.
Vivado can detect multiple cables.
02-04-2019 03:31 AM - edited 02-04-2019 03:38 AM
Hello, I am using one board as transmitter and other board as receiver as shown in the figure attached .I had instantiated IBERT core on both the boards and trying to observe the eye-diagram on the receiver board. I had set the loop-back to NONE on both the boards . The QPLL of both the transmitter and receiver is locking but the issue is , the link is not happening .So I couldn't get the eye diagram. Is there is anything I have to change in the design please let me know. please find the attachments. Regards, Akshay kumar