GT Selection and Pin Planning for CPM4 - 3.4 English

Versal Adaptive SoC CPM DMA and Bridge Mode for PCI Express Product Guide (PG347)

Document ID
PG347
Release Date
2024-05-30
Version
3.4 English

This appendix provides guidance on gigabit transceiver (GT) selection for applicable AMD Versal™ devices and some key recommendations that should be considered when selecting the GT locations. This appendix provides guidance for CPM, PL PCIe® and PHY IP based solutions. In this guide, the CPM related guidance is of primary importance, while the other related guidance might be relevant and is provided for informational purposes.

A GT Quad is comprised of four GT lanes. GT Quad and ref clock locations for CPM4 are in fixed locations depending on the desired link configuration (see GT Quad Locations). When selecting GT Quads for the PHY IP based solution with AMD PCIe MAC, AMD recommends that you use the GT Quads most adjacent to the AMD PCIe macro. While this is not required, it improves place, route, and timing for the design.

  • Link widths of x1, x2, and x4 require one bonded GT Quad and should not split lanes between two GT Quads.
  • A link width of x8 requires two adjacent GT Quads that are bonded and are in the same SLR.
  • A link width of x16 requires four adjacent GT Quads that are bonded and are in the same SLR.
  • PL PCIE blocks should use GTs adjacent to the PCIe block where possible.
  • CPM has a fixed connectivity to GTs based on the CPM configuration.

For GTs on the left side of the device, it is suggested that PCIe lane 0 is placed in the bottom-most GT of the bottom-most GT Quad. Subsequent lanes use the next available GTs moving vertically up the device as the lane number increments. This means that the highest PCIe lane number uses the top-most GT in the top-most GT Quad that is used for PCIe.

For GTs on the right side of the device, it is suggested that PCIe lane 0 is placed in the top-most GT of the top-most GT Quad. Subsequent lanes use the next available GTs moving vertically down the device as the lane number increments. This means that the highest PCIe lane number uses the bottom-most GT in the bottom-most GT Quad that is used for PCIe.

Note: The implemented device view in Vivado shows lane 0 on the bottom-most GT of the bottom-most Quad on the right side of the device, but lane re-ordering is handled in logic to place lane 0 on the top-most GT of the top-most GT Quad. The GT Quad IP does not allow channel level control to remap the GT pins.

The PCIe reference clock uses GTREFCLK0 in the PCIe lane 0 GT Quad for x1, x2, x4, and x8 configurations. For x16 configurations the PCIe reference clock should use GTREFCLK0 on a GT Quad associated with lanes 8-11. This allows the clock to be forwarded to all 16 PCIe lanes.

Note: The reference clock cannot be forwarded between the CPM4 GTs and GTs used by the PL. CPM4 and PL IPs must have separate reference clocks.

The PCIe reset pins for CPM designs must connect to one of specified pins for each of the two PCIe controllers. The PCIe reset pin for PL PCIE and PHY IP designs can be connected to any compatible PL pin location, or the CPM PCIE reset pins when the corresponding CPM PCIE controller is not in use. This is summarized in the following table:

Table 1. PCIe Controller Reset Pin Locations
Versal PCIe Controller Versal Reset Pin Location
CPM PCIE Controller 0 PS MIO 18
PMC MIO 24
PMC MIO 38
CPM PCIE Controller 1 PS MIO 19
PMC MIO 25
PMC MIO 39
PL PCIE Controllers Any compatible single-ended PL I/O pin.
Versal Adaptive SoC PHY IP Any compatible single-ended PL I/O pin.

PCIe PHY IP has the following two Vivado Tcl parameters:

  • lane_reversal with values true or false (Default).
  • lane_order which is only applicable to x1 and x2 configurations with values Bottom (Default) or Top.

For example in a x2 design, by default PIPE signals of the PCIe MAC[1:0] connects to PIPE signals of the GT QUAD[1:0]. When you apply lane_reversal {true}, PIPE signals of the PCIe MAC[1:0] connects to PIPE signals of the GT QUAD[0:1]. When you apply lane_order {Top}, PIPE signals of the PCIe MAC[1:0] connects to PIPE signals of the GT QUAD[3:2].

Following are the commands for using lane_reversal and lane_order:

lane_reversal
set_property -dict [list CONFIG.lane_reversal {true}] [get_bd_cells <ip_name>]
lane_order
set_property -dict [list CONFIG.lane_order {Top}] [get_bd_cells <ip_name>]