Wiki

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
resources:fpga:docs:util_xcvr [11 Oct 2021 14:42] – Edit next page to be Using and modifying the HDL design Iulia Moldovanresources:fpga:docs:util_xcvr [13 Jun 2023 10:55] (current) – Fix spelling mistakes Iulia Moldovan
Line 1: Line 1:
 ====== 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'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 technologiesplease 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+]])
   * GTHE4 ([[xilinx>support/documentation/user_guides/ug576-ultrascale-gth-transceivers.pdf|Ultrascale and Ultrascale+]])   * GTHE4 ([[xilinx>support/documentation/user_guides/ug576-ultrascale-gth-transceivers.pdf|Ultrascale and Ultrascale+]])
   * GTYE4 ([[xilinx>support/documentation/user_guides/ug578-ultrascale-gty-transceivers.pdf|Ultrascale and Ultrascale+]])   * GTYE4 ([[xilinx>support/documentation/user_guides/ug578-ultrascale-gty-transceivers.pdf|Ultrascale and Ultrascale+]])
 +
 +
 ===== Features ===== ===== Features =====
  
   * 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 }}
Line 46: Line 49:
 | ''RX_CDR_CFG'' | Configure the RX clock data recovery circuit for GTXE2, see User Guide for more info | 72'h0b000023ff10400020 |  | ''RX_CDR_CFG'' | Configure the RX clock data recovery circuit for GTXE2, see User Guide for more info | 72'h0b000023ff10400020 | 
 | ''RX_LANE_INVERT'' | Per lane polarity inversion. Set the n-th bit to invert the polarity of the n-th receive lane. | 0 | | ''RX_LANE_INVERT'' | Per lane polarity inversion. Set the n-th bit to invert the polarity of the n-th receive lane. | 0 |
 +
 +
 ===== Interface ===== ===== Interface =====
  
Line 78: Line 83:
 | **Eye Scan DRP interface** |||| | **Eye Scan DRP interface** ||||
 |              | ''up_es_*'' | ''IO'' | The Eye-Scan DRP interface, must be connected to the equivalent DRP ports of UTIL_ADXCVR. This is a channel interface, one per each transceiver lane. This interface is available only if parameter TX_OR_RX_N is set to 0x0. | |              | ''up_es_*'' | ''IO'' | The Eye-Scan DRP interface, must be connected to the equivalent DRP ports of UTIL_ADXCVR. This is a channel interface, one per each transceiver lane. This interface is available only if parameter TX_OR_RX_N is set to 0x0. |
 +
  
 ===== Design Guidelines ===== ===== Design Guidelines =====
  
-For porting on different Xilinx transceiver types, there is the following [[.:xgt_wizard|guide]]. +<note> 
 +Please refer to [[.:xgt_wizard|Xilinx FPGAs Transceivers Wizard]] to generate the optimal parameters needed to configure the transceivers for your project.  
 +</note> 
 +==== 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. 
 + 
 +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: 
 +{{ :resources:fpga:docs:xcvr_mapping_example.jpg?nolink |}} 
 + 
 +So in this case we end up with a conflict during implementation: 
 +{{ :resources:fpga:docs:xcvr_conflict.jpg?nolink |}} 
 +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 |}} 
 +or by rearranging the Tx connections of the util_adxcvr: 
 +{{ :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. 
  
 ===== Software Guidelines ===== ===== Software Guidelines =====
  
 The software can configure this core through the [[.:axi_adxcvr|AXI_ADXCVR]] IP core. The software can configure this core through the [[.:axi_adxcvr|AXI_ADXCVR]] IP core.
 +
  
 ===== References ===== ===== References =====
Line 93: Line 120:
   * [[xilinx>support/documentation/user_guides/ug576-ultrascale-gth-transceivers.pdf|UltraScale Architecture GTH Transceivers]]   * [[xilinx>support/documentation/user_guides/ug576-ultrascale-gth-transceivers.pdf|UltraScale Architecture GTH Transceivers]]
   * [[xilinx>support/documentation/user_guides/ug578-ultrascale-gty-transceivers.pdf|UltraScale Architecture GTY Transceivers]]   * [[xilinx>support/documentation/user_guides/ug578-ultrascale-gty-transceivers.pdf|UltraScale Architecture GTY Transceivers]]
 +
  
 ===== More Information ===== ===== More Information =====
Line 98: Line 126:
   * [[resources:fpga:peripherals:jesd204|JESD204B High-Speed Serial Interface Support]]   * [[resources:fpga:peripherals:jesd204|JESD204B High-Speed Serial Interface Support]]
  
-{{navigation #axi_ip|AXI IP#hdl|Main page#tips|Using and modifying the HDL design}}+{{navigation HDL User Guide#ip_cores|IP cores#hdl|Main page#tips|Using and modifying the HDL design}}
resources/fpga/docs/util_xcvr.1633956154.txt.gz · Last modified: 11 Oct 2021 14:42 by Iulia Moldovan