Both sides previous revisionPrevious revision | |
resources:fpga:docs:util_xcvr [29 Nov 2022 17:29] – Note in [Design Guidelines] Andrei Dragomir | resources:fpga:docs:util_xcvr [13 Jun 2023 10:55] (current) – Fix spelling mistakes Iulia Moldovan |
---|
====== UTIL_ADXCVR core for Xilinx devices ====== | ====== UTIL_ADXCVR core for Xilinx devices ====== |
| |
The [[https://github.com/analogdevicesinc/hdl/tree/master/library/xilinx/util_adxcvr|util_adxcvr]] IP core instantiate a Gigabit Transceiver (GT) and set's up the required configuration. Basically is a simple wrapper file for a GT* Column, exposing just the necessary ports and attributes. | The [[https://github.com/analogdevicesinc/hdl/tree/master/library/xilinx/util_adxcvr|util_adxcvr]] IP core instantiates a Gigabit Transceiver (GT) and sets up the required configuration. Basically, it is a simple wrapper file for a GT* Column, exposing just the necessary ports and attributes. |
| |
<note important>To understand the below wiki page is important to have a basic understanding about [[http://lmgtfy.com/?q=High+Speed+Serial+IO|High Speed Serial I/O]] interfaces and Gigabit Serial Transceivers. To find more information about these technologies please visit the [[xilinx>support/answers/37181.html|Xilinx's solution center]]. | <note important>To understand the below wiki page is important to have a basic understanding about [[http://lmgtfy.com/?q=High+Speed+Serial+IO|High Speed Serial I/O]] interfaces and Gigabit Serial Transceivers. To find more information about these technologies, please visit the [[xilinx>support/answers/37181.html|Xilinx's solution center]]. |
</note> | </note> |
| |
Currently this IP supports three different GT type: | Currently this IP supports three different GT types: |
* GTXE2 ([[xilinx>support/documentation/user_guides/ug476_7Series_Transceivers.pdf|7 Series devices]]) | * GTXE2 ([[xilinx>support/documentation/user_guides/ug476_7Series_Transceivers.pdf|7 Series devices]]) |
* GTHE3 ([[xilinx>support/documentation/user_guides/ug576-ultrascale-gth-transceivers.pdf|Ultrascale and Ultrascale+]]) | * GTHE3 ([[xilinx>support/documentation/user_guides/ug576-ultrascale-gth-transceivers.pdf|Ultrascale and Ultrascale+]]) |
| |
* Supports GTX2, GTH3 and GTH4 \\ | * Supports GTX2, GTH3 and GTH4 \\ |
* Exposes all the necessary attribute for QPLL/CPLL configuration \\ | * Exposes all the necessary attributes for QPLL/CPLL configuration \\ |
* Supports shared transceiver mode \\ | * Supports shared transceiver mode \\ |
* Support dynamic reconfiguration \\ | * Supports dynamic reconfiguration \\ |
* RX Eye Scan | * RX Eye Scan |
| |
===== Block Diagram ===== | ===== Block Diagram ===== |
| |
The following diagram shows a GTXE2 Column, which contains four GT Quad. Each quad contains a GTEX2_COMMON and four GTXE2_CHANNEL primitive. | The following diagram shows a GTXE2 Column, which contains four GT Quads. Each quad contains a GTEX2_COMMON and four GTXE2_CHANNEL primitives. |
| |
{{ :resources:fpga:docs:hdl:gtx_column.png | GTXE2 Column }} | {{ :resources:fpga:docs:hdl:gtx_column.png | GTXE2 Column }} |
| |
<note> | <note> |
Please refer to [[.:xgt_wizard|Xilinx FPGAs Transceivers Wizard]] in order to generate the optimal parameters needed to configure the transceivers for your project. | Please refer to [[.:xgt_wizard|Xilinx FPGAs Transceivers Wizard]] to generate the optimal parameters needed to configure the transceivers for your project. |
</note> | </note> |
==== Physical constraints considerations ==== | ==== Physical constraints considerations ==== |
| |
the util_adxcvr allocates resources/quads (channels and common) sequentially. Meaning if you have 8 lanes, it will insert two quads, 4 channels and a common block for each quad. | The util_adxcvr allocates resources/quads (channels and common) sequentially. Meaning, if you have 8 lanes it will insert two quads, 4 channels and a common block for each quad. |
| |
Channels within a quad are tightly coupled to the common block, the placement of the channel resources can be permuted within a quad and is affected by the constraint file with the restriction that rx_<N>_p/n connect to tx_<N>_p/n must connect to the same channel. | Channels within a quad are tightly coupled to the common block, the placement of the channel resources can be permuted within a quad and is affected by the constraint file with the restriction that rx_<N>_p/n connect to tx_<N>_p/n must connect to the same channel. |
| |
Supposing we have the following pin constraints and connections to the util_adxcvr: | Supposing we have the following pin constraints and connections to the util_adxcvr: |
So in this case we end up with a conflict during implementation: | So in this case we end up with a conflict during implementation: |
{{ :resources:fpga:docs:xcvr_conflict.jpg?nolink |}} | {{ :resources:fpga:docs:xcvr_conflict.jpg?nolink |}} |
We have to ensure that in implementation the mapping is correct either by rearranging the Rx connections. | We have to ensure that in implementation the mapping is correct either by rearranging the Rx connections |
{{ :resources:fpga:docs:xcvr_rx_rearrangement.jpg?nolink |}} | {{ :resources:fpga:docs:xcvr_rx_rearrangement.jpg?nolink |}} |
or the Tx connections of the util_adxcvr | or by rearranging the Tx connections of the util_adxcvr: |
{{ :resources:fpga:docs:xcvr_tx_rearrangement.jpg?nolink |}} | {{ :resources:fpga:docs:xcvr_tx_rearrangement.jpg?nolink |}} |
| |
In such cases when rearrangement is required due placement constraints, complementary reordering is required either in the converter device (lane crossbars) or inside the FPGA between the physical and link layer to connect the logical lanes with the same index on both end of the link. | In such cases, when rearrangement is required due placement constraints, complementary reordering is required either in the converter device (lane crossbars) or inside the FPGA between the physical and link layer, to connect the logical lanes with the same index on both end of the link. |
| |
| |