IBERT¶
The Integrated Bit Error Ratio Tester (IBERT) core is an integrated feature in the multi-gigabit transceivers (GTs) of Versal ACAP devices. The IBERT core feature is available for use at runtime for any Versal ACAP design that instantiates the GT-related IPs using the Vivado GT Wizard. The IBERT ChipScoPy APIs provides users functionality to access to all available attributes for the GTs, create TX/RX links, modify relevant TX and/or RX parameters and run 2D statistical eye scans.
Discovering IBERT¶
To discover the IBERT core(s) on a device, call the discover_and_setup_cores()
method with the
ibert_scan
argument as true
from chipscopy import create_session
CS_URL = "TCP:localhost:3042"
HW_URL = "TCP:localhost:3121"
session = create_session(cs_server_url=CS_URL, hw_server_url=HW_URL)
device = session.devices.at(index=0)
device.discover_and_setup_cores(ibert_scan=True)
To access the IBERT cores that were found and setup, access the ibert_cores
attribute that
is part of the Device
class.
iberts = device.ibert_cores
ibert_0 = ibert.at(index=0)
Hierarchy of objects¶
The hierarchy of serial objects is useful when trying to access the children of certain object. To print the
hierarchy to stdout
, use the report_hierarchy()
method.
report_hierarchy(ibert_0)
The output is similar to the linux tree
command.
Below is a sample IBERT Versal GTY
core with Quad_103
as the only active GT Group.
Reset¶
To reset all the RX
, TX
and PLL
in the child GT Group(s), use the reset()
method
ibert_0.reset()
Attributes of IBERT object¶
The attributes of the IBERT
class instance are listed here and are accessible via the python .
operator i.e. <ibert_obj>.<attribute>
.
Attribute |
Description |
---|---|
Name of the IBERT core |
|
Serial object type. This is always equal to |
|
Handle of the IBERT from cs_server |
|
Direct children of the IBERT core |
|
Children of type |