JESD Specifications
JESD Specifications
JESD Specifications
Chapter 1: Overview
Transmitter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Core Level Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Unsupported Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Licensing and Ordering Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Appendix D: Debugging
Finding Help on Xilinx.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Debug Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Simulation Debug. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Hardware Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Interface Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Overview
The LogiCORE™ IP JESD204 core implements a JESD204B interface supporting line rates
between 1 and 12.5 Gb/s(1) on 1 to 8 lanes using GTX, GTH, GTP or GTY (UltraScale and
UltraScale+ only) transceivers. See the device data sheets for maximum line rates supported
by each device and family. The JESD204 core can be configured as transmit or receive and
multiple cores can be used to realize links requiring greater than 8 lanes.
The JESD204 core is a fully-verified solution design delivered by using the Xilinx® Vivado®
Design Suite. In addition, an example design is provided in Verilog.
Transmitter
Figure 1-1 shows an overview block diagram for the transmitter of the JESD204 core.
X-Ref Target - Figure 1-1
TX Lane(s)
Alignment
Character JESD204_PHY
Generator
AXI4-Stream Scrambler JESD204
Text
Lane Serial Data
Text
Alignment
Sequence
RPAT
Generator
Sync/SYSREF TX Counters
JSPAT
Generator
AXI4-Lite AXI4-Lite/IPIF
Control Registers
Receiver
Figure 1-2 shows an overview block diagram for the receiver of the JESD204 core.
X-Ref Target - Figure 1-2
-(6'5HFHLYH&RUH
5;/DQH V
JESD204_PHY
7H[W
7H[W 5HSODFH
JESD204 'HVFUDPEOHU $OLJQPHQW
'DWD
Serial Data $;,6WUHDP
'HFRGH/DQH
$OLJQPHQW
6HTXHQFH
/LQN
(UURU
&RXQWHU
/0)&DQG
6<65() 6\QF
6WDWXV
$;,/LWH $;,/LWH,3,)
&RQWURO 5HJLVWHUV
° ILA capture
° Descrambling
° Alignment character detection and replacement logic
Core-level Verilog wrappers are provided to instantiate the JESD204 IP, the clock/reset logic,
Management block, the JESD204_PHY transceiver, the JSPAT and RPAT pattern generator
blocks, and the Error Counting blocks depending on whether the core is a transmitter or a
receiver. The core support layer, delivered with the example design, is intended for
instantiation in simple unidirectional designs.
The Management block provides core Control and Status registers with a standard AXI4-Lite
interface. The RPAT and JSPAT blocks are optional test pattern generators which can be
included in a TX core. Link Error counter blocks are included in a receiver core to support
data link layer test modes and link status monitoring.
A Verilog example design is provided which instantiates the core-level wrapper, together
with example interface modules. This is a device-level design and can be used to run the
core through the Xilinx tool flow, but is not intended to be used directly in customer
designs.
The transmit and receive logic is completely independent; a core can be generated as a
transmitter or a receiver. The core can be generated with the JESD204 PHY, instantiated
either:
or
• Inside the example design for applications that require sharing the transceivers with
other JESD204 cores (e.g., TX and RX sharing transceivers) or access to the extended
features available using JESD204 PHY AXI-lite register interface (see Shared Logic Tab).
Applications
JESD204 is a high-speed serial interface designed to connect Analog-to-Digital Converter
(ADCs) and Digital-to-Analog Converter (DACs) to logic devices. The JESD204 interface is
specified in the JEDEC® JESD204B Specification [Ref 1]. Figure 1-3 and Figure 1-4 show how
the JESD204 provides the interface between an ADC/DAC and user logic over an example
four lane interface.
X-Ref Target - Figure 1-3
JESD204B RX
JESD204B TX
ADC
User
Logic
ADC
x12138
JESD204B RX
JESD204B TX
DAC
User
Logic
DAC
x12139
Unsupported Features
Sample data mapping/demapping is not provided by the core, because of the requirement
that it be customized for different converter devices. For more information, see Interfacing
to the AXI4-Stream Data Interface.
• Vivado synthesis
• Vivado implementation
• write_bitstream (Tcl command)
IMPORTANT: IP license level is ignored at checkpoints. The test confirms a valid license exists. It does
not check IP license level.
License Type
This Xilinx LogiCORE IP module is provided under the terms of the Xilinx Core License
Agreement. The module is shipped as part of the Vivado Design Suite. For full access to all
core functionalities in simulation and in hardware, you must purchase a license for the core.
Contact your local Xilinx sales representative for information about pricing and availability.
Information about other Xilinx LogiCORE IP modules is available at the Xilinx Intellectual
Property page. For information on pricing and availability of other Xilinx LogiCORE IP
modules and tools, contact your local Xilinx sales representative.
A free evaluation version of the core is provided with the Xilinx Vivado Design Suite which
lets you assess the core functionality and demonstrates the various interfaces of the core in
simulation. To access the evaluation version visit the JESD204 IP Evaluation page.
License Options
The JESD204 core provides three licensing options. After installing the Vivado Design Suite
and the required IP Service Packs, choose a license option.
Simulation Only
The Simulation Only Evaluation license key is provided with the Xilinx Vivado Design Suite.
This key lets you assess core functionality with either the example design provided with the
JESD204 core, or alongside your own design and demonstrates the various interfaces to the
core in simulation. (Functional simulation is supported by a dynamically generated HDL
structural model.)
In addition, the license key lets you generate a bitstream from the placed and routed
design, which can then be downloaded to a supported device and tested in hardware. The
core can be tested in the target device for a limited time before timing out (ceasing to
function), at which time it can be reactivated by reconfiguring the device.
Full
The Full license key is available when you purchase the core and provides full access to all
core functionality both in simulation and in hardware, including:
Simulation License
No action is required to obtain the Simulation Only Evaluation license key; it is provided by
default with the Xilinx Vivado Design Suite.
Product Specification
The JESD204 core supports JESD204B. The original JESD204 specification defined a serial
link between one data converter and a logic device. The link was made up of one lane.
Revisions A and B extend this to cover multiple converters, each linked to the logic device
using multiple lanes. See Figure 2-1.
X-Ref Target - Figure 2-1
Standards
JEDEC® Serial Interface for Data Converters (JESD204B) available from www.jedec.org.
Performance
For details about performance, visit the Performance and Resource Utilization web page.
Resource Utilization
For details about resource utilization, visit the Performance and Resource Utilization web
page.
Port Descriptions
The port descriptions for the JESD204 core are described in the following sections.
Table 2‐1: TX Core: Clock and Reset Ports – Shared Logic in Example Design
Signal Name Direction Description
Core logic clock input.
tx_core_clk In
Frequency = serial line rate/40.
tx_reset In Core asynchronous logic reset.
JESD204_PHY TX datapath reset output. Core output to reset the
tx_reset_gt Out
transmit datapath in a connected JESD204B_PHY.
JESD204_PHY reset done input. Indicates the JESD204B_PHY has
tx_reset_done In
completed the transmit reset process.
AXI4-Stream reset. Active-Low. Associated with the transmit data
tx_aresetn Out
interface.
s_axi_aclk In AXI4-Lite clock. Associated with the management interface.
AXI4-Lite reset. Active-Low. Associated with the management
s_axi_aresetn In
interface.
Table 2‐2: TX Core: Clock and Reset Ports – Shared Logic in Core
Signal Name Direction Description
Differential transceiver reference clock input.
refclk_p/refclk_n In
Reference clock for the transceiver(s) and Quad Common PLL(s)
Differential core logic clock input. Additional global logic clock
required for Subclass 1 or Subclass 2 operation where the
glblclk_p/glblclk_n In reference clock cannot be used for the synchronous capture of
SYSREF or SYNC.
Frequency = serial line rate/40. (See Clocking)(1)
Core logic clock input.
tx_core_clk In
Frequency = serial line rate/40(2)
Dynamic Reconfiguration Port (DRP) clock. A free-running DRP
drpclk In
clock is required for UltraScale architecture-based devices.
Clock output from the QPLL (Quad 0) associated with serial lanes
common0_pll_clk_out Out
0–3. This port is only present when using QPLL.
Reference Clock output from the QPLL (Quad 0) associated with
common0_pll_refclk_out Out
serial lanes 0–3. This port is only present when using QPLL.
Table 2‐2: TX Core: Clock and Reset Ports – Shared Logic in Core (Cont’d)
Signal Name Direction Description
Clock Lock output from the QPLL (Quad 0) associated with serial
common0_pll_lock_out Out lanes 0–3. This port is only present when using QPLL.
• 1 = Indicates that the QPLL is locked
Clock output from the QPLL (Quad 1) associated with serial lanes
common1_pll_clk_out Out 4–7. This port is only present for configurations with 5 to 8 lanes
and QPLL is selected.
Reference Clock output from the QPLL (Quad 1) associated with
common1_pll_refclk_out Out serial lanes 4–7. This port is only present for configurations with 5
to 8 lanes.
Clock Lock output from the QPLL (Quad 1) associated with serial
lanes 4–7. This port is only present for configurations with 5 to 8
common1_pll_lock_out Out
lanes and QPLL is selected.
• 1 = Indicates that the QPLL is locked.
Core logic clock output.
tx_core_clk_out Out
Frequency = serial line rate/40
AXI4-Stream reset. Active-Low. Associated with the transmit data
tx_aresetn Out
interface.
s_axi_aclk In AXI4-Lite clock. Associated with the management interface.
AXI4-Lite reset. Active-Low. Associated with the management
s_axi_aresetn In
interface.
1. Port available on 7 Series devices only.
2. Port available on UltraScale devices only.
Table 2‐3: RX Core: Clock and Reset Ports – Shared Logic in Example Design
Signal Name Direction Description
Core logic clock.
rx_core_clk In
Frequency = serial line rate/40
rx_reset In Core asynchronous logic reset.
JESD204_PHY RX datapath reset output. Core output to reset the
rx_reset_gt Out
receive datapath in a connected JESD204B_PHY.
JESD204_PHY reset done input. Indicates the JESD204B_PHY has
rx_reset_done In
completed the receive reset process.
AXI4-Stream reset. Active-Low. Associated with the receive data
rx_aresetn Out
interface.
s_axi_aclk In AXI4-Lite clock. Associated with the management interface.
AXI4-Lite reset. Active-Low. Associated with the management
s_axi_aresetn In
interface.
Table 2‐4: RX Core: Clock and Reset Ports – Shared Logic in Core
Signal Name Direction Description
Differential transceiver reference clock input. Reference clock for
refclk_p/refclk_n In
the transceiver(s) and Quad Common PLL(s).
Differential core logic clock input. Additional global logic clock
required for Subclass 1 or Subclass 2 operation where the
glblclk_p/glblclk_n In reference clock cannot be used for the Synchronous capture of
SYSREF or SYNC.
Frequency = serial line rate/40. (See Clocking).(1)
Core logic clock.
rx_core_clk In
Frequency = serial line rate/40(2)
DRP clock. A free-running DRP clock is required for UltraScale
drpclk In
architecture-based devices.
Clock output from the QPLL (Quad 0) associated with serial lanes
common0_pll_clk_out Out
0–3. This port is present only when QPLL is selected.
Reference Clock output from the QPLL (Quad 0) associated with
common0_pll_refclk_out Out
serial lanes 0–3. This port is present only when QPLL is selected.
Clock lock output from the QPLL (Quad 0) associated with serial
common0_pll_lock_out Out lanes 0–3. This port is present only when QPLL is selected.
• 1 = Indicates that the QPLL is locked
Clock output from the QPLL (Quad 1) associated with serial lanes
common1_pll_clk_out Out 4–7. This port is only present for configurations with 5 to 8 lanes
and QPLL is selected.
Reference Clock output from the QPLL (Quad 1) associated with
common1_pll_refclk_out Out serial lanes 4–7. This port is only present for configurations with 5
to 8 lanes and QPLL is selected.
Table 2‐4: RX Core: Clock and Reset Ports – Shared Logic in Core (Cont’d)
Signal Name Direction Description
Clock Lock output from the QPLL (Quad 1) associated with serial
common1_pll_lock_out Out lanes 4–7. 1 = Indicates that the QPLL is locked. This port is only
present for configurations with 5 to 8 lanes and QPLL is selected.
Core logic clock output.
rx_core_clk_out Out
Frequency = serial line rate/40
AXI4-Stream reset. Active-Low. Associated with the RX data
rx_aresetn Out
interface.
s_axi_aclk In AXI4-Lite clock. Associated with the management interface.
AXI4-Lite reset. Active-Low. Associated with the management
s_axi_aresetn In
interface.
1. Port available on 7 Series devices only.
2. Port available on UltraScale devices only.
Table 2‐5: TX Core: JESD204 PHY Interface Ports – Shared Logic in Example Design
Signal Name Direction Description
gtN_txdata[31:0] Out TX data to JESD204 PHY. N = Lanes - 1
gtN_txcharisk[3:0] Out TX Char is K to JESD204 PHY. N = Lanes - 1
TX PRBS generator test pattern control to transceivers. Number of
gt_prbssel_out[X:0] Out bits (X) varies by transceiver type. Refer to the relevant transceiver
documentation for further details.
Table 2‐7: RX Core: JESD204 PHY Interface Ports – Shared Logic in Example Design
Signal Name Direction Description
gtN_rxdata[31:0] In RX data from JESD204 PHY. N = 0 to (Lanes - 1)
gtN_rxcharisk[3:0] In RX Char is K from JESD204 PHY. N = Lanes - 1
Table 2‐7: RX Core: JESD204 PHY Interface Ports – Shared Logic in Example Design (Cont’d)
Signal Name Direction Description
gtN_rxdisperr[3:0] In RX disparity error from JESD204 PHY. N = Lanes - 1
gtN_rxnotintable[3:0] In RX Not In Table from JESD204 PHY. N = Lanes - 1
rxencommalign_out Out RX enable comma alignment to JESD204 PHY
Note: tx_tdata transfers the JESD204B transport layer - not raw converter samples. Refer to the
appropriate converter datasheet for information on correctly mapping samples into the transport
layer.
For example, in a four lane configuration when tx_start_of_frame = 0001 the first byte
of four new frames appears in tx_tdata in a single cycle, tx_tdata[7:0],
tx_tdata[39:32], tx_tdata[71:64], and tx_tdata[103:96].
X-Ref Target - Figure 2-2
TX?CORE?CLK
TX?TREADY
TX?TDATA;= $$$$ $$$$ $$$$ $$$$ $$$$ $$$$ $$$$ $$$$ $$$$ $$$$
TX?START?OF?FRAME;=
Figure 2-3 and Figure 2-4 show the timing of rx_start_of_frame and rx_end_of_frame
relative to the AXI data. rx_start_of_frame and rx_start_of_frame are fixed at 4
bits wide because the internal data width of each lane is 32 bits and the start (or end) of
frame can occur in any of the 4-byte positions of the 32-bit word. For multi-lane
configurations the start (or end) of frame signal indicates the byte position of the first byte
of a frame in rx_tdata[31:0], rx_tdata[63:32], rx_tdata[95:64], etc.
For example, in a four lane configuration when rx_start_of_frame = 0001 the first byte
of four new frames appears in rx_tdata in a single cycle, rx_tdata[7:0],
rx_tdata[39:32], rx_tdata[71:64], and rx_tdata[103:96].
Note: rx_tdata transfers the JESD204B transport layer - not raw converter samples. Refer to the
appropriate converter datasheet for information on correctly mapping samples from the transport
layer.
X-Ref Target - Figure 2-3
RX?CORE?CLK
RX?TVALID
RX?TDATA;= $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $
&RAME 3IZE
RX?CORE?CLK
RX?TVALID
RX?TDATA;= $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $
RX?START?OF?FRAME;=
RX?END?OF?FRAME;=
&RAME 3IZE
The transceiver debug interface (when present) provides access to transceiver control and
status pins for debug purposes. See the appropriate transceiver user guide (UltraScale
Architecture GTH Transceivers User Guide (UG576) [Ref 6], UltraScale Architecture GTY
Transceivers User Guide (UG578) [Ref 7], 7 Series FPGAs GTX/GTH Transceivers User Guide
(UG476) [Ref 8], or 7 Series FPGAs GTP Transceivers User Guide (UG482) [Ref 9]) for a
detailed description of these pins. This interface is only present on the core when Include
Shared Logic in core and Additional transceiver control and status ports options are
selected when generating the core.
Notes:
1. N is the number of the transceiver channel.
2. If you are migrating from a 7 series to an UltraScale architecture-based device, the prefixes of the optional transceiver debug
ports for single-lane cores are changed from gt0, gt1 to gt, and the postfix _in and _out are dropped. For multi-lane
cores, the prefixes of the optional transceiver debug ports gt(n) are aggregated into a single port (see Table 2-13).
Table 2‐13: Optional Transceiver Debug Ports (UltraScale Architecture-Based Devices) (Cont’d)
Signal Name(1) Direction Clock Domain Description
gt_rxbufstatus
Out rx_core_clock RX Elastic Buffer Status
[(LANES*3)-1:0]
gt_cplllock Active-High signal indicating that the channel PLL has
Out refclk
[(LANES-1):0] locked to the input reference clock
gt_rxrate
In rx_core_clock Link signaling rate control
[(LANES*3)-1:0]
gt_eyescantrigger
In rx_core_clock A High on this port causes an EYESCAN trigger event
[(LANES-1):0]
gt_eyescanreset
In Async Port is pulsed High to initiate the EYESCAN reset process
[(LANES-1):0]
gt_eyescandataerror
Out Async Asserted when an EYESCAN error occurs
[(LANES-1):0]
Transceiver Loopback:
• 000: No loopback
gt_loopback • 001: Near-End PCS Loopback
In Async
[(LANES*3)-1:0] • 010: Near-End PMA Loopback
• 100: Far-End PMA Loopback
• 110: Far-End PCS Loopback
gt_rxpolarity
In rx_core_clock Set High to invert the incoming serial data
[(LANES-1):0]
gt_txpolarity
In tx_core_clock Set High to invert the outgoing serial data
[(LANES-1):0]
gt_rxdfelpmreset
In Async Reset for the LPM and DFE datapath
[(LANES-1):0]
gt_rxlpmen
In Async Set to 1 to select the LPM datapath
[(LANES-1):0]
gt_txprecursor
In tx_core_clock Transmitter pre-cursor pre-emphasis control
[(LANES*5)-1:0]
gt_txpostcursor
In tx_core_clock Transmitter post-cursor pre-emphasis control
[(LANES*5)-1:0]
gt_txdiffctrl
In Async Driver swing control
[(LANES*4)-1:0]
gt_txprbsforceerr
In tx_core_clock Set High to drive errors into the PRBS transmitter
[(LANES-1):0]
gtN_txinhibit In tx_core_clock TX Inhibit
gt_pcsrsvdin
In Async DRP Reset (Bits 2, 18, 34,....)
[(LANES*16)-1:0]
gt_txprbssel
In tx_core_clock Transmitter PRBS generator test pattern control
[(LANES*4)-1:0]
gt_rxprbssel
In rx_core_clock Receiver PRBS checker test pattern control
[(LANES*4)-1:0]
Table 2‐13: Optional Transceiver Debug Ports (UltraScale Architecture-Based Devices) (Cont’d)
Signal Name(1) Direction Clock Domain Description
gt_rxprbserr
In rx_core_clock A High on this port indicates that PRBS errors have occurred
[(LANES-1):0]
gt_rxprbscntreset
In rx_core_clock Reset the PRBS error counter
[(LANES-1):0]
gt_rxcdrhold
In Async Hold the CDR control loop frozen
[(LANES-1):0]
gt_dmonitorout
Out Async Digital Monitor Output Bus
[(LANES*15-1):0]
gt_rxdisperr
Out rx_core_clock Receiver disparity error indicator
[(LANES*4-1):0]
gt_rxnotintable
Out rx_core_clock Receiver not in table error indicator
[(LANES*4-1):0]
gt_rxcommadet A High on this port indicates that the comma alignment
Out rx_core_clock
[(LANES-1):0] block has detected a valid comma
RX Power Down
gt_rxpd [(LANES*2-1):0] In Async 00=Normal Operation
11=Lowest power mode
TX Power Down
gt_txpd [(LANES*2-1):0] In tx_core_clock 00=Normal Operation
11=Lowest power mode
Notes:
1. N is the number of the transceiver channel.
Register Space
The JESD204 core is configured using an AXI4-Lite Register Interface. The register map is
shown in Table 2-14.
The RX and TX cores share a common address map and register definitions where possible,
exceptions are highlighted.
RECOMMENDED: Xilinx recommends that if significant configuration changes are made using the
control registers (in particular, changes to framing parameters), the core should be reset to ensure that
the link is resynchronized using the updated parameters.
Notes:
1. Applicable to GTXE2 transceivers only.
Notes:
1. When Enable ILA Support is 1, a TX core transmits an Inter Lane Alignment (ILA) sequence; an RX core expects to
receive an ILA sequence. Should always be enabled for Subclass 1 or 2 operation and any multi-lane configuration.
31:1 – Reserved
0 0 1 = Enable Scrambling; 0 = Disable Scrambling
31:17 – Reserved
SYSREF Required on Re-Sync
1 = A SYSREF event is required following a Link Re-Sync event:
TX core transmits K28.5 until a SYSREF re-aligns the LMFC;
16 0 RX core does not deassert SYNC until a SYSREF event re-aligns the LMFC.
0 = No SYSREF event is required on a Link Re-Sync event:
TX core transmits ILA sequence on the next LMFC.
RX core deasserts SYNC on the next LMFC.
15:12 – Reserved
1. When bit [4] is set, enabling the transceiver PRBS test patterns, the JESD204 data output is disabled.
2. These test modes are only applicable to the JESD204 transmitter IP. They are used to set the transceiver to output
specific patterns that may be used to evaluate the electrical characteristics of a link using tools such as IBERT. A
JESD204 receiver core will not synchronize or function if these test patterns are received.
Notes:
1. The status bits can only be set when the core has completed initial lane synchronization, errors during
synchronization and comma alignment are ignored. This register is cleared on read or when the core is reset. The
contents might be cleared if the watchdog timer is enabled.
31:5 – Reserved
Frames per Multiframe (K)
Parameter range 1–32;
4:0 0x1F
Program register with required value minus 1
(for example, for K = 16, 0x0F should be programmed)
31:12 – Reserved
Lanes in Use: Allows the number of active lanes to be set.
Each bit corresponds to a single lane, when set to “1” lane is
active.
Varies depending on Number Lanes 0 to X are active if bits 0 to X are set to 1.
7:0 of Lanes which the core was For example, for three active lanes (lanes 0 to 2 active), 0x07 is
generated for programmed. But if you wanted lane 2 and 0 active, program
0x05.
Note: You cannot activate any lane > X which is set during
customization.
31:10 – Reserved
RX Buffer Delay
RX Buffer Delay can be programmed, in conjunction with the RX Buffer Adjust values
read from the lanes, to minimize the overall RX Latency. See Minimum Deterministic
Latency Support.
An indication of the maximum allowable reduction of the latency is output on the
9:0 0
rx_buffer_adjust register. This provides an indication of the difference between the
write and read pointers of the receiver elastic buffer in each lane. The number of
octets output in each 10-bit value give an indication of the buffer fill level in each lane.
The lowest number given can be programmed to the rx_buffer_delay register to
reduce the overall latency by that number of octets.
Notes:
1. The status bits 3:2 latch when set and are cleared on read or when the core is reset. If the core is streaming data
when these bits are cleared, they are instantly set again. The purpose of these bits is to detect whether these
conditions have occurred since SYNC was asserted.
2. The status bits 1:0 show instantaneous status.
31:5 – Reserved
ID of lane N. Value can be anywhere between 0 and 31. The default value N is set to
the lane number. For interfaces using more than 8 lanes and hence multiple JESD204
4:0 N
cores. This register should be programmed to ensure each lane has the correct
identifier.
Notes:
1. RX only: captured configuration data from the ILA sequence (per lane);
TX: Not applicable, the values transmitted in the ILA sequence are generated automatically by the core based on
the configuration.
Notes:
1. RX only: captured configuration data from the ILA sequence (per lane);
TX: Not applicable, the values transmitted in the ILA sequence are generated automatically by the core based on
the configuration.
Notes:
1. RX only: captured Configuration data from the ILA sequence (per lane);
TX: Not Applicable, the values transmitted in the ILA sequence are generated automatically by the core based on
the configuration.
Notes:
1. RX: captured configuration data from the ILA sequence (per lane);
TX: Sets the values to be transmitted in the ILA sequence for all lanes. LID and L values cannot be programmed,
they are generated automatically by the core based on the configuration.
Notes:
1. RX: captured configuration data from the ILA sequence (per lane);
TX: Sets the values to be transmitted in the ILA sequence for all lanes.
31:29 – Reserved
28:24 00000 CF (Control Words per Frame). Binary value.
23:17 – Reserved
Notes:
1. RX: captured configuration data from the ILA sequence (per lane);
TX: Sets the values to be transmitted in the ILA sequence for all lanes. SCR value cannot be programmed, it is
generated automatically by the core based on the configuration.
31:24 – Reserved
23:16 0x00 FCHK (Checksum) [RX only, not writeable for TX]. Binary value.
15:8 0x00 RES2 (Reserved Field 2)
7:0 0x00 RES1 (Reserved Field 1)
Notes:
1. RX: captured configuration data from the ILA sequence (per lane);
TX: Sets the values to be transmitted in the ILA sequence for all lanes. FCHK value cannot be programmed, it is
calculated automatically by the core for each lane.
See Chapter 5, Example Design for information about using and customizing the example
designs for the JESD204 core.
Keep It Registered
To simplify timing and increase system performance in an FPGA design, keep all inputs and
outputs registered between your application and the core. This means that all inputs and
outputs from your application should come from or connect to a flip-flop. While registering
signals might not be possible for all paths, it simplifies timing analysis and makes it easier
for the Xilinx tools to place-and-route the design.
Contact your local Xilinx representative for a closer review and estimation for your specific
requirements.
In most instances, the serial line rate selection is governed by the specifications of the ADC/
DAC Converter device(s) to which the core is interfaced. The required operating serial line
rate directly relates to the clock rate at which the core logic operates (core clock); the serial
line rate also governs the selection of the reference clock required by the transceiver(s).
Core Clock
The JESD204 core operates using a 32-bit (4-byte) datapath. The core clock frequency is
always the line rate divided by 40. For example, for a serial line rate of 6.25 Gbs, the core
clock frequency is 156.25 MHz. The AXI-streaming RX and TX data interfaces operate at this
core clock frequency.
Reference Clock
The GTP/GTX/GTH/GTY serial transceivers in the JESD204_PHY require a stable, low-jitter
reference clock which has a device and speed grade-dependent range. In some
circumstances, it can be advantageous to use the same clock frequency or source for both
core clock and reference clock. However this might not always be practical. It is important
to understand the limitations imposed on the reference clock and core clock, together with
system-level implications such as the synchronous capture of SYSREF/SYNC for Subclass 1
or 2 deterministic latency. See Clocking for more information.
As well as allowing the selection of the main core parameters, the Vivado IDE allows the
selection of how the core and some of its supporting logic is delivered; this is using the
Shared Logic Tab in the Vivado IDE. The default selection is Include Shared Logic in
Example Design where the core is delivered without shared logic. In this case, the JESD204
PHY core is not delivered directly with the core.
To access the JESD204 PHY core and other supporting logic, it is necessary to open the IP
example design (using the right-click menu). This opens a separate Vivado project which
instantiates the IP within the example design. The example design instantiates the core
support layer, which includes the JESD204 PHY core and other supporting logic such as
clock modules. The example design and the support layer delivered in the example design
project are intended to provide a useful example and starting point for you own design.
If Include Shared Logic in Core is selected, the core is delivered complete with a support
layer including the JESD204 PHY core and other supporting logic such as clock buffers. For
simple core implementations where there is no requirement for transceiver sharing, the line
rate is configurable in the Vivado IDE. To perform this, select the Include Shared Logic in
Core option.
For more complex core implementations, for example, transceiver sharing, PLL and/or clock
sharing, select Include Shared Logic in Example Design and use the IP example design as
a starting point for your own design.
Transceiver Sharing
Because JESD204B is defined as a unidirectional protocol, the JESD204 core is customized
and delivered as either a transmitter or as a receiver. The Xilinx GTP/GTX/GTH/GTY
transceivers are duplex, each transceiver supporting both transmit and receive directions. In
a system implementation using both TX and RX JESD204 links, you might want to use both
the TX and RX directions of a transceiver (or group of transceivers), and connect to both TX
and RX JESD204 cores. Such transceiver sharing is supported by the JESD204 core by using
the JESD204_PHY core (within the limitations and constraints imposed by line rates and
clock sources). See Sharing Transceivers between Transmit and Receive.
Subclass Mode
The core supports operation in the three JESD204B Subclass modes. This is controlled by a
register setting. By default the core operates in Subclass 1 mode. The core pinout supports
all three subclass modes of operation; however an externally generated SYSREF is required
for Subclass 1 operation. For Subclasses 0 and 2, the SYSREF input signal is not required and
can be tied off.
Subclass 0
Subclass 0 is backwards compatible with JESD204A, with extended line rate range support
up to 12.5 Gb/s. There is no support for Deterministic Latency. SYSREF is not required.
Subclass 1
Subclass 1 supports deterministic latency through the use of a common SYSREF signal. The
SYSREF signal is generated external to the core, and is distributed to all devices in a system.
SYSREF is permitted by the JESD204B standard to be either a “one-shot”, periodic, or
gapped periodic. The core is capable of operating with any of these selections. The timing
and clocking requirements for the reliable capture of SYSREF are key to achieving reliable
deterministic latency (see Clocking).
Subclass 2
Subclass 2 supports deterministic latency using only the SYNC signal. The timing and
clocking requirements for the launch (by an RX core), and capture (by a TX core) of the
SYNC signal are key to achieving reliable deterministic latency (see Clocking).
For correct operation and bring-up of a JESD204 link, it is important that the major framing
and link operation parameters match at both ends of the link:
These parameters are dictated by the configurations available in the ADC/DAC converter
device to which the core is interfacing.
For TX cores, in addition to these parameters, some of the additional content of the
configuration data which is transmitted in the ILA sequence at link start-up is also
programmed through the register interface. The data values transmitted in the ILA
configuration data are not normally critical to the operation of the link, but this is
dependent on the behavior of the receiving device.
For RX cores, the configuration data received in the ILA sequence is captured, for each lane,
and can be examined using the register interface.
Clocking
This section describes the options available for clocking the JESD204 core and the
transceiver(s).
IMPORTANT: It is strongly recommended that you use one of the clocking schemes
presented in this section. Use of alternative clocking schemes may lead to design failure.
• Device Clock – The JESD204B specification defines a device clock which is distributed
to each device in the system. The device clocks to different devices such as DAC/ADC
converters and FPGAs can run at different rates to suit the individual devices, but must
all be related in frequency and be generated from a common source. See the JESD204B
specification [Ref 1], paragraphs 4.7 and 4.8, for definitions.
• Byte Clock – The frame and multiframe periods in each device are derived from the
device clock. The frame/multiframe periods must match for the transmitting and
receiving devices. From the frame period the octet (byte) clock rate can be directly
inferred (F octets per frame).
• Serial Line Rate – The serial line rate for all lanes is common, and runs at 10 times the
byte clock rate on each lane.
• Core Clock – The JESD204 core operates using a 32-bit (4-byte) datapath. The device
clock for the core logic therefore runs at one quarter of the byte clock rate (1/40th of
the serial line rate). For the JESD204 core, this is referred to as the core clock.
• Reference Clock – The GTP/GTX/GTH/GTY serial transceivers require a stable, low-jitter
reference clock which has a device and speed grade dependent range. In some
circumstances, the same source clock can supply both the reference clock and core
clock.
Depending on the Shared Logic selection made when generating the core, a clocking
module is delivered as part of the core (Shared Logic in Core) or as part of the Core
Support Layer delivered with the Example Design project (Shared Logic in Example
Design). This clocking module contains example clocking resources relevant to the selected
device and the core customization choices.
RECOMMENDED: For the greatest flexibility in implementing system-level clocking, Xilinx recommends
that the FPGA pinout and system-level clocking resources are designed to provide both of these clocks
to the FPGA.
For Subclass 0, where there are no such constraints, the clocking requirements are
simplified, and alternative clocking arrangements can be used.
For a transmit interface, the lane ID of each lane of a transmit core can be independently
programmed using the Lane ID registers (see Table 2-31).
For a receive interface, the lane ID of each lane can be read from the LID field of the ILA
Config Data 3 register for each lane (see Table 2-35).
This programmable Lane ID feature can also be utilized to share a single JESD core with
multiple synchronous converters. For example, eight one lane converters may be connected
to a single JESD204 core. If this is a transmitter core, the lanes can all be programmed to be
lane 0.
This has the advantage of potentially aligning the data from all the converter as well as
reducing the logic overhead that would be generated if eight individual cores were used.
To Converter(s)
Device Clock (800 MHz*)
SYSREF (Subclass 1)
FPGA
JESD204_PHY
(400 MHz*)
Clock Generator REFCLK
Source Clocking
Clock Module
VCO TX/RX_CORE_CLK
refclk (400 MHz*) IBUFDS_GT
*
example frequencies
Figure 3‐1: Clock Configuration using Separate refclk and Core Clock
Figure 3-1 shows the most generic and flexible clocking scheme, where separate refclk
and glblclk inputs are used to provide the transceiver reference clock and the core clock,
respectively. With this configuration, the reference clock and core clock are physically
separate clocks and can be run at independent frequencies, without additional constraints.
The reference clock can be run at any frequency within the limitations of the transceiver for
the selected line rate. The core clock always runs at the required rate (1/40th of the serial
line rate).
7 Series Devices
This configuration must be used for Artix-7, Kintex-7 and Virtex-7 where the reference
clock frequency is out of the range that can be used for the core clock and supports the
reliable capture of SYSREF/SYNC. This frequency range is governed by the particular device
family and speed grade (see Tables 3-1 to Table 3-3).
UltraScale Devices
This configuration must also be used for Kintex UltraScale and Virtex UltraScale when the
reference clock is not required to run at the same rate as the core clock.
To Converter(s)
Device Clock (1228.8 MHz*)
SYSREF (Subclass 1)
FPGA
JESD204_PHY
(153.6 MHz*)
Clock Generator REFCLK
Source Clocking
Clock Module
VCO TX/RX_CORE_CLK
refclk (153.6 MHz*) IBUFDS_GT
JESD204 CORE
LOGIC
BUFG
SYSREF TX/RX_CORE_CLK
Generation
(Subclass 1) SYSREF (Subclass 1)
SYSREF (Subclass 1)
*example frequencies
Figure 3‐2: Artix-7 Kintex-7 and Virtex-7 Clock Configuration using refclk as Core Clock
7 Series Devices
Figure 3-2 shows a clocking scheme that can be used for Artix-7, Kintex-7 and Virtex-7
devices when the reference clock frequency is in the range that can be used for the core
clock and supports the reliable capture of SYSREF/SYNC. This frequency range is governed
by the particular device family and speed grade (see Tables 3-1 to Table 3-3).
Note: When using the simple clocking scheme shown in Figure 3-3, the GT_POWERGOOD output
from the JESD204_PHY must be connected to the CE pin on the BUFG_GT.
FPGA
GT_POWERGOOD
200 MHz*
JESD204 CORE
LOGIC
SYSREF TX/RX_CORE_CLK
Generation
(Subclass 1) SYSREF
(Subclass 1) SYSREF (Subclass 1)
*
Example Frequencies
Figure 3‐3: UltraScale and UltraScale+ - Simple Clock example
Notes:
1. Further limitations might apply: see the Artix-7 FPGAs Data Sheet: DC and AC Switching Characteristics (DS181)
[Ref 10] and the Zynq-7000 All Programmable SoC (Z-7010, Z-7015, and Z-7020): DC and AC Switching
Characteristics (DS187) [Ref 11] for full specifications.
2. For -1 speed grade devices, the line rate is limited to 3.75 Gb/s and the GTP PLL VCO lower limit prevents selecting
a refclk lower than 80 MHz.
3. If these conditions are met, the clocking in Figure 3-2 can be used. Otherwise, the clocking in Figure 3-1 must be
used.
Table 3‐2: Frequency Ranges for Kintex-7, Virtex-7 and Zynq-7000 Devices
Device Family: Kintex-7, Virtex-7 and Zynq-7000 (GTXE2 Transceiver)
Speed Grade
Parameter
-3 -2 -1
(1)
Line Rate MAX (Gb/s) 12.5 10.3 8.0
Line Rate MIN (Gb/s) (1) 0.5 0.5 0.5
refclk MAX (MHz) (1) 700 670 670
(1)
refclk MIN (MHz) 60 60 60
MAX frequency for refclk as core clock (MHz) (3) 165 165 165
MIN frequency for refclk as core clock (MHz) (3) 80 80 80
Notes:
1. Further limitations might apply—see the Kintex-7 FPGAs Data Sheet: DC and AC Switching Characteristics (DS182)
[Ref 12] and Virtex-7 FPGAs Data Sheet: DC and AC Switching Characteristics (DS183) [Ref 13] and Zynq-7000 All
Programmable SoC (Z-7030, Z-7045, and Z-7100): DC and AC Switching Characteristics (DS191) [Ref 14] for full
specifications.
2. The GTXE2 can operate with refclk as low as 60 MHz, but the operating band of the CPLL VCO prevents refclk
and core clock sharing at frequencies less than 80 MHz (CPLL) or 75 MHz (QPLL).
3. If these conditions are met, the clocking in Figure 3-2 can be used. Otherwise, the clocking in Figure 3-1 must be
used.
Table 3‐3: Frequency Ranges for Virtex-7 Devices Using GTHE2 (Cont’d)
Device Family: Virtex-7 (GTHE2 Transceiver)
Speed Grade
Parameter
-3 -2 -1
MAX frequency for refclk as core clock (MHz) (2) 165 165 165
MIN frequency for refclk as core clock (MHz) (2) 80 80 80
Notes:
1. Further limitations might apply —see the Virtex-7 FPGAs Data Sheet: DC and AC Switching Characteristics (DS183)
[Ref 12] for full specifications.
2. If these conditions are met, the clocking in Figure 3-2 can be used. Otherwise, the clocking in Figure 3-1 must be
used.
Table 3‐4: Frequency Ranges for Kintex and Virtex UltraScale Architecture-GTHE3 Based
Devices
Device Family: Kintex UltraScale (GTHE3 Transceiver)
Speed Grade
Parameter
-3 -2 -1
Line Rate MAX (Gb/s) (1) 12.5 12.5 12.5
Line Rate MIN (Gb/s) (1) 0.5 0.5 0.5
(1)
refclk MAX (MHz) 820 820 820
(1)
refclk MIN (MHz) 60 60 60
MAX frequency for refclk as core clock (MHz) (2) 312.5 312.5 312.5
(2)
MIN frequency for refclk as core clock (MHz) 80 80 80
Notes:
1. Further limitations might apply—see the Kintex UltraScale Architecture Data Sheet: DC and AC Switching
Characteristics (DS892) [Ref 15] and Virtex Ultrascale Architecture Data Sheet: DC and AC switching Characteristics
(DS893) [Ref 25] for full specifications.
2. If these conditions are met, the clocking in Figure 3-3 can be used. Otherwise, the clocking in Figure 3-1 must be
used.
Table 3‐5: Frequency Ranges for Kintex and Virtex UltraScale Architecture-GTYE3 Based
Devices
Device Family: Kintex and Virtex UltraScale (GTYE3 Transceiver)
Speed Grade
Parameter
-3 -2 -1
Line Rate MAX (Gb/s) (1) 12.5 12.5 12.5
Line Rate MIN (Gb/s) (1) 0.5 0.5 0.5
refclk MAX (MHz) (1) 820 820 820
(1)
refclk MIN (MHz) 60 60 60
MAX frequency for refclk as core clock (MHz) (2) 312.5 312.5 312.5
MIN frequency for refclk as core clock (MHz) (2) 80 80 80
Notes:
1. Further limitations might apply—See the Kintex UltraScale Architecture Data Sheet: DC and AC Switching
Characteristics (DS892) [Ref 15], and the Virtex Ultrascale Architecture Data Sheet: DC and AC switching
Characteristics (DS893) [Ref 25] for full specifications.
2. If these conditions are met, the clocking in Figure 3-3 can be used. Otherwise, the clocking in Figure 3-1 must be
used.
Table 3‐6: Frequency Ranges for Kintex, Virtex and Zynq Ultrascale+ Architecture-GTHE4 Based
devices.
Device Family: Kintex UltraScale (GTHE4 Transceiver)
Speed Grade
Parameter
-3 -2 -1
(1)
Line Rate MAX (Gb/s) 12.5 12.5 12.5
Line Rate MIN (Gb/s) (1) 0.5 0.5 0.5
refclk MAX (MHz) (1) 820 820 820
refclk MIN (MHz) (1) 60 60 60
MAX frequency for refclk as core clock (MHz) (2) 312.5 312.5 312.5
MIN frequency for refclk as core clock (MHz) (2) 80 80 80
Notes:
1. Further limitations might apply—see the Kintex UltraScale Architecture Data Sheet: DC and AC Switching
Characteristics (DS892) [Ref 15] and Virtex Ultrascale Architecture Data Sheet: DC and AC switching Characteristics
(DS893) [Ref 25] for full specifications.
2. If these conditions are met, the clocking in Figure 3-3 can be used. Otherwise, the clocking in Figure 3-1 must be
used.
Table 3‐7: Frequency Ranges for Kintex, Virtex and Zynq Ultrascale+ Architecture-GTYE4 Based
devices.
Device Family: Kintex, Virtex and Zynq UltraScale (GTYE4 Transceiver)
Speed Grade
Parameter
-3 -2 -1
Line Rate MAX (Gb/s) (1) 12.5 12.5 12.5
Line Rate MIN (Gb/s) (1) 0.5 0.5 0.5
(1)
refclk MAX (MHz) 820 820 820
refclk MIN (MHz) (1) 60 60 60
MAX frequency for refclk as core clock (MHz) (2) 312.5 312.5 312.5
(2)
MIN frequency for refclk as core clock (MHz) 80 80 80
Notes:
1. Further limitations might apply—see the Kintex UltraScale Architecture Data Sheet: DC and AC Switching
Characteristics (DS892) [Ref 15] and Virtex Ultrascale Architecture Data Sheet: DC and AC switching Characteristics
(DS893) [Ref 25] for full specifications.
2. If these conditions are met, the clocking in Figure 3-3 can be used. Otherwise, the clocking in Figure 3-1 must be
used.
Detailed Clocking
For all device families (GTP, GTXE2, GTHE2, GTHE3, GTYE3, GTHE4 and GTYE4 transceivers),
the clocking schemes described in Basic Generic Clocking Schemes can be used. Depending
on the Shared Logic selection at core generation time, example clocking source code
modules are delivered as part of the core, or as part of the core example design project.
For GTP based devices, the JESD204_PHY core has a 16-bit internal data path rather than
32-bit used by other devices. This imposes an extra requirement that the transceiver be
supplied with another clock running at twice the core clock rate. For JESD204 designs
generated with shared logic in the core or shared logic in the example design, the extra
clock is catered for by the inclusion of an MMCM in the JESD204_PHY core. For designs that
generate the JESD204_PHY core separately with shared logic in the example design
selected. The user must supply this 2x clock to the TX/RXUSERCLK pins on the JESD204_PHY
core. An example of this is shown in Figure 3-4.
X-Ref Target - Figure 3-4
Artix-7 FPGA
refclk
JESD204_PHY
153.6 MHz* IBUFDS_GT
153.6 MHz*
REFCLK
glblclk
76.8 MHz* IBUFDS MMCM BUFG 153.6 MHz*
CLKINx2 TX/RXUSRCLK
BUFG BUFG 76.8 MHz*
FBOUT TX/RX_CORE_CLK
FBIN
JESD204 CORE
LOGIC
TX/RX_CORE_CLK
*
example frequencies
Figure 3‐4: Artix-7 Clock Configuration Using external MMCM to supply JESD204_PHY clocks
For Kintex UltraScale and Virtex UltraScale devices, the clocking arrangement in Figure 3-3
can be used. For Artix-7, Kintex-7 and Virtex-7 devices, it is possible to use the TXOUTCLK
from the JESD204_PHY core to generate the core clock. Figure 3-5 shows the generic use
case for most devices. However, GTP transceiver devices using a JESD204_PHY core
configured to use shared logic in the example design still require an additional MMCM
(described earlier) for generation of TXUSRCLK/RXUSRCLK at twice the core clock.
Note: No example of this clocking configuration is generated for any Artix-7, Kintex-7 or Virtex-7
configuration of the JESD204 core. The IP is configured to use the Subclass 1 clocking scheme as
seen above. If this clocking scheme is required, it is suggested that the standard clocking module
generated with the core (or example design), is used as a starting point to create the required
clocking configuration.
X-Ref Target - Figure 3-5
FPGA
Clocking Module
refclk JESD204_PHY
307.2 MHz IBUFDS_GT
REFCLK
TXOUTCLK
BUFG
153.6 MHz*
TX/RX_CORE_CLK
JESD204
CORE LOGIC
TX/RX_CORE_CLK
*
example frequencies
Resets
The JESD204 core uses the following resets.
System Reset
An asynchronous reset is provided to reset the complete system (core logic and
transceiver). On a transmit core this signal is tx_reset and on a receiver the reset signal
is rx_reset. The AXI4-Lite interface and configuration registers are unaffected by these
reset signals. A separate reset signal (s_axi_aresetn) is provided for the AXI4-Lite
interface which resets the configuration registers to the default values.
Software Reset
A register is provided through the AXI4-Lite interface which triggers a data path reset
sequence for the transmit or receive logic data path under software control. The
configuration registers are unaffected by this operation.
Note: The use of this reset does not reset the PLLs.
A Watchdog timeout reset acts in the same manner as the Software Reset.
The Watchdog timer can be disabled, if necessary, using a register access (see Reset
register), for example, during system testing where a link can be held out of SYNC for test
purposes. In normal system operation, Xilinx recommends that the Watchdog remain
enabled.
AXI4-Stream Reset
When either a system reset or software reset is performed the rx_aresetn or
tx_aresetn outputs are asserted Low until the reset cycle is completed.
TX?TDATA;= );= );= );= );= );= );= );= );= );= );= );= );=
TX?TDATA;= );= );= );= );= );= );= );= );= );= );= );= );=
TX?TDATA;= 1;= 1;= 1;= 1;= 1;= 1;= 1;= 1;= 1;= 1;= 1;= 1;=
TX?TDATA;= 1;= 1;= 1;= 1;= 1;= 1;= 1;= 1;= 1;= 1;= 1;= 1;=
,ANE );= );= );= );= );= );= );= );= );= );= );=
,ANE );= );= );= );= );= );= );= );= );= );= );=
,ANE 1;= 1;= 1;= 1;= 1;= 1;= 1;= 1;= 1;= 1;= 1;=
,ANE 1;= 1;= 1;= 1;= 1;= 1;= 1;= 1;= 1;= 1;= 1;=
Figure 3‐6: Four Lane DAC, Frame Size (F) = 1, 16 Bit I and Q with I Sample in Lanes 0 & 1
and Q Sample in Lanes 3 & 4
Transport Layer
The following examples show transport layer functions for some common ADC converters.
The JESD204 core is configured and monitored using control and status registers accessible
through an AXI4-Lite interface.The AXI4-Lite address map is detailed in Register Space.
Subclass 1 Operation
Also to supporting lane operation at up to 12.5 Gb/s, devices of Subclass 1 support
deterministic latency using the SYSREF interface. Figure 3-7 shows the timing relationships
between the signals on a JESD204B link. Subclass 1 is recommended for designs requiring
deterministic latency.
X-Ref Target - Figure 3-7
3932%&
+ + + + + + + + + + + + + + + + + + + +2 $ $ $ $! 21 # #$ $! 2 $ $ $ $!
4RANSMIT ,ANES
3932%&
,-&#
28
$EVICE %ARLIEST
!RRIVAL + + + + + + + + + + + + + + + + + + + +2 $ $ $ $! 21 # #$ $! 2 $ $
,ANE
,ATEST
!RRIVAL + + + + + + + + + + + + + + + + + + + + + + + +2 $ $ $ $! 21 # #$ $! 2 $ $
,ANE
!LIGNED ,ANE
/UTPUT ON ALL + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2 $ $ $ $! 21 # #$ $! 2 $ $
,ANES
$ETERMINISTIC DELAY
FROM 4X ),! OUTPUT
TO 2X ),! OUTPUT 8
The SYSREF signal is distributed to all devices in a system. On assertion, the JESD204
receiver aligns its internal Local Multiframe Clock (LMFC) to the incoming SYSREF signal
and deasserts SYNC~. The LMFC counts through the octets in a multiframe. A LMFC crossing
occurs at the end of each multiframe. The device clock for the FPGA is the FPGA logic clock
(tx_core_clk or rx_core_clk).
When the transmit device detects the SYNC~ signal going High, it waits until the next LMFC
crossing and starts transmitting data. If ILA generation is supported, then this is the ILA
sequence; otherwise it is normal frame data. When the receiver detects that all lanes have
valid data, it buffers the data until the next LMFC crossing. Now the buffers are released and
the data sent to the client interface. In this manner the latency between the data output and
the SYSREF signal can be accurately ascertained and the end-to-end latency of the system
is deterministic and repeatable.
The length of the multiframe is intended by the JESD204B specification to be larger than
the longest possible delay across any lane in the JESD204B link. This might not be
achievable in practice in real systems due to short multiframe sizes dictated by A/D and
D/A devices.
SYSREF Timing
When JESD204B is used in Subclass 1, the SYSREF signal is the master timing reference for
the system. To achieve accurate deterministic latency the SYSREF signal must be captured
synchronously to the core clock. The SYSREF period must also be a multiple of 4-byte clock
periods because the core uses a 4-byte internal datapath. In the example provided with the
core, by default the SYSREF signal is captured on the falling edge of the core clock to allow
the rising edge of the clock and SYSREF to be aligned at the edge of the device; this is the
case typically when a divided device clock is used for SYSREF. See Clocking for details.
SYSREF Handling
The correct handling of SYSREF is critical in Subclass 1 operation. The JESD204B
specification allows SYSREF to be generated in any of the following ways:
• Periodic
• One-Shot
• “Gapped” Periodic
The JESD204 core provides several options for how SYSREF is handled for Subclass 1
operation to support maximum flexibility.
Note: The JESD204 core operates using a 32-bit (4-byte) datapath. If a periodic or gapped periodic
SYSREF is used in the system, the SYSREF period must be an integer multiple of the multiframe
period. But it must also be a multiple of 4-byte clocks if the multiframe period is not itself a multiple
of 4-byte clocks.
The default setting is for SYSREF to be sampled on the negative edge of core clock. This is
based on the assumption that an externally generated SYSREF is synchronous to the clock
supplied to the core (depending on clocking options, refclk or glblclk—see Clocking),
and thus arrives edge-aligned at the FPGA I/O. This is generally the case when SYSREF is
generated as a divided version of the source clock. Negative edge clocking in this case
provides the best timing margin.
To provide flexibility in the design, however, the core can be generated to use a positive
edge sampling of SYSREF. This should be used where the system-level timing is suitable for
such an approach.
Capturing SYSREF using the negative edge of the clock allows SYSREF to be a divided
clock with rising edges aligned to the device clock. In this case, a low skew clock divider
chip is used to generate both the device clock and SYSREF.
Constraints can be applied in the example design to align the clock and SYSREF edges
within 1 ns, for example, as follows.
# Set +/- 0.5ns between the rising edges of the clock and sysref
set_input_delay -clock jesd204_0_refclk -max 0.5 [get_ports *x_sysref]
set_input_delay -clock jesd204_0_refclk -min -0.5 [get_ports *x_sysref]
The timing of SYSREF can be confirmed using the report_datasheet command in the
Vivado Design Suite. An example is shown in Figure 3-8. This example uses the following
settings:
The report_datasheet command gives a setup of 1.2 ns and hold of 1.8 ns for the
SYSREF input. Figure 3-8 is a timing diagram based on these values.
REFCLK
3932%& )NPUT
NS NS SETUP NS HOLD NS
3932%& 6ALID
Capturing SYSREF using the positive edge is an option in the core. When this option is
selected, no constraint is applied to the SYSREF input. The timing of the SYSREF input can
be checked using the report_datasheet command in the Vivado Design Suite. An
example is shown in Figure 3-9. This example uses the following settings:
The report_datasheet command gives a setup of 4.6 ns and hold of -1.5 ns for the
SYSREF input. Figure 3-9 is a timing diagram based on these values.
X-Ref Target - Figure 3-9
REFCLK
SETUP NS
HOLD NS
3932%& 6ALID
SYSREF Always
The core provides a programmable option allowing the choice of how a periodic SYSREF is
used internally. This is selected using the SYSREF Always control bit in the SYSREF
handling register (See Table 2-19).
When SYSREF Always is set to 0, only an initial SYSREF event seen after reset (or on link
resynchronization) is used to align the internal LMFC counter.
When SYSREF Always is set to 1, all SYSREF events are used to (re)align the LMFC counter.
This setting requires that the SYSREF period be a correct multiple of the multiframe period.
• An RX core requires an initial SYSREF event to align the LMFC, and then deasserts
SYNC on the next LMFC boundary when code group sync has been achieved. The core
does not deassert SYNC until an initial SYSREF event is detected.
• A TX core requires a SYSREF event to align the LMFC. The core begins ILA transmission
on an LMFC boundary after SYNC is deasserted. The core does not begin ILA
transmission until an initial SYSREF event is detected.
The system must ensure that SYSREF to the JESD204 core is generated after the core has
completed reset. This is of particular importance if the system is operating a One-shot
SYSREF.
When SYSREF Required on Re-Sync is set to 0, no SYSREF event is required for the link to
re-synchronize (the assumption is that LMFC counters continue to free-run and remain
valid).
• An RX core deasserts SYNC on the next LMFC boundary after code group sync.
• A TX core transmits ILA sequence on the next LMFC boundary after SYNC is deasserted.
When SYSREF Required on Re-Sync is set to 1, a SYSREF event is required for the link to
re-establish SYNC following a re-sync request.
• An RX core waits for a SYSREF event to realign the LMFC counter, and only deasserts
SYNC on the next LMFC boundary.
• A TX core waits for a SYSREF event to realign the LMFC counter, and only then begins
ILA transmission on an LMFC boundary after SYNC is deasserted.
SYSREF Delay
The deterministic latency mechanism as defined in the JESD204B standard requires that the
multiframe size be larger than the maximum possible delay across the link. In practice, this
is difficult to achieve, particularly with small frame sizes. However, as long as the multiframe
size is greater than the maximum variation in delay across the link, then deterministic
latency can be achieved.
A potential issue occurs when the maximum delay variation causes the overall latency to
straddle the boundary between two adjacent LMFC periods. In such a case, latency
variations of exactly one LMFC period can be observed between system restarts. Calculation
of the overall system latency (see RX End to End Latency or TX End to End Latency) should
be carried out to determine if this is a likely scenario.
In cases where this situation arises, the LMFC boundary in TX or RX devices can be moved
relative to each other by adding additional delay to SYSREF in one of the devices. The
JESD204 core supports this shifting of the internal LMFC by allowing an additional delay in
the internal SYSREF handling logic. This is programmed using the SYSREF Delay field in
the SYSREF handling register (see Table 2-19) which allows a delay of 0 to 15 core clock
cycles to be inserted between the SYSREF event detection and LMFC counter reset. A
change in value for SYSREF delay requires a core reset to force the link to realign.
Subclass 2 Operation
The operation of the JESD204B circuit in Subclass 2 mode is similar to a device in Subclass
1 mode. In this case deterministic latency across the link is achieved using the SYNC~
interface. When the receiver has aligned to the incoming idle characters from the
transmitter, it deasserts the SYNC~ signal. The transmitter detects this and waits until the
next LMFC crossing before transmitting data or the ILA sequence (depending on the setting
of the enable link synchronization control bit). The receiver buffers the data at its input until
the next LMFC crossing at its side of the link, before sending the received data to the client.
In Subclass 2 devices the transmitter and receiver latencies are as listed in the previous
Subclass 1 section.
JESD204B Receiver
This section covers implementation and system-level details for a JESD204B receiver core.
Lane Skew
The JESD204B receiver core has been verified to function with a lane to lane skew of up to
8 octets.
Receive Latency
The latency variation is critical for JESD204B systems. The latency through the IP core is
fixed (it can be varied under user control—see Minimum Deterministic Latency Support for
details), but the transceiver introduces some variation as the internal receive elastic buffer
of the transceiver is included in the datapath. The receive datapath latencies are shown in
Table 3-8. The variation in latency is compensated automatically by the core to ensure that
the overall end-to-end latency has no variation. Refer to the Latency calculations checklist
AR#66143.
Notes:
1. Latency values are given in byte clocks. See RX End to End Latency for
detailed use.
ADC Timing
The key parameters of the ADC required to calculate end to end latency are:
The delay from SYSREF to LMFC and analogue data in to LMFC must be fixed for a Subclass
1 device but the delay from LMFC to JESD204 serial data out can vary because it is
compensated for in the receiver during alignment to LMFC. See Figure 3-10.
3932%&
,-&#
44X,-&#
!NALOG $ATA )N
44X).
44X/54
Core Timing
The key parameters of the FPGA receiver required to calculate end to end latency are:
The delay from SYSREF to LMFC and from LMFC to AXI Data output must be fixed for a
Subclass 1 device but the delay from JESD204 serial data in to LMFC can vary because the
receiver buffer compensates for variations in end to end latency. In the latency calculations
T RXOUT = 0 and all the fixed delays are included in TRXLMFC. See Figure 3-11.
X-Ref Target - Figure 3-11
3932%&
,-&#
42X,-&#
42X).
42X/54
3932%&
44X,-&# 42X,-&#
4X ,-&#
2X ,-&#
4 ,-&#
!NALOG $ATA )N
44X). 44X/54
4X $ATA /UT
47)2%
2X $ATA )N
42X). 42X/54
4,!4
The delay between LMFC at TX and LMFC at RX (T) is an integer number (N) of LMFC periods
adjusted by the internal delays from SYSREF to LMFC of TX and RX:
To ensure the overall propagation delay is constant between system restarts, the maximum
propagation delay must be less than T plus one LMFC period:
It is possible that no valid value for N can be found if the received data arrives close to an
RX LMFC boundary and the variation in the link causes it to fall just before or just after the
boundary after resetting the system. This would be seen as a jump in latency of exactly one
LMFC period between system restarts. If no valid value can be found for N then the SYSREF
signals can be delayed relative to one another to move the RX LMFC boundary relative to
the TX LMFC boundary. For each cycle of delay added to TX SYSREF add 4 to T TXLMFC.
Additional delay can be added to the SYSREF processing in the JESD204 core to accomplish
this; see the SYSREF Handling register.
The data is received after N LMFC periods and before N+1 LMFC periods so the minimum
deterministic latency is T plus one LMFC plus the fixed input delay at the FPGA and the fixed
output delay at the DAC:
Example
78 > 77 (margin = 1)
The data is received after 2 LMFCs (N) and less than 3 LMFCs (N+1) so the latency is 3*LMFC
plus fixed delays:
T LAT = T + T TXIN
= 96 - 3 + 16 + 14 = 123
Note that in this case the margin (how far after the RX LMFC the data arrives) is very small
(1-byte periods) and any variation introduced by the ADC or connection between the ADC
and FPGA could cause the data to be received early causing the data to be received before
the LMFC boundary. There is plenty of margin before the third LMFC so, in this case, it is
advisable to delay the TX LMFC by 1 or 2 to increase the margin and therefore the reliability
of the system. If delaying the TX LMFC is not possible then the RX LMFC can be delayed by
5 cycles and N reduced by 1 as follows:
The margin numbers at min delay and max delay are closer in value which means the system
is operating with the received multiframe boundary close to the middle of the RX LMFC
period; this reduces the chances of the latency changing due to delay variations in the link.
The data is received after one LMFCs (N) and less than two LMFCs (N+1) so the latency is
2*LMFC plus fixed delays:
T LAT = T + T TXIN
= 64 - 3 + 36 + 14 = 111
Because high speed transceiver based links, such as those used for the physical layer in
JESD204B do not maintain the same data path latency through a reset or a power cycle,
issues may arise in systems where the start data arrival at the receive core is very close to
the LMFC boundary. Such systems may be unable to manage the small variability in delay
through the link that may occur between restarts.
Figure 3-13 shows the start of sample data arriving ''Just before'' and ''Just after'' the LMFC
boundary, illustrating the effect a restart can have. It can be seen that a very small
difference in data arrival time at the core can cause a change in the timing of the output
data equal to 1 LMFC period.
3932%&
,-&#
$!4! ). ! " # $
$!4! 6!,)$
$!4! ). ! " # $
$!4! 6!,)$
Figure 3‐13: Data arrives ''Just before'' vs ''Just after'' the LMFC boundary
To protect against this problem, a margin must be introduced, around the LMFC boundary,
which the start of data must avoid. Figure 3-14 shows this.
X-Ref Target - Figure 3-14
,-&#
28 $!4! !RRIVAL
,-&# PERIOD
,-&#
28 $!4! !RRIVAL
Note: This assumes that any variation in the output timing of the ADC is less than four octets. If the
output variation is greater than four octets, the margin can be increased and the TW decreased
accordingly.
The solution is to adjust the internal LMFC relative to the fixed data arrival such that arriving
data falls within the target window shown in Figure 3-15 (i.e., move the window).
This is achieved by starting the link, and using core registers to determine the amount of
data which was buffered, then taking steps to adjust the LMFC boundary until acceptable
values are attained. This process should only be required to be performed once during
development as when the system has been adjusted to ensure the data arrival is within the
target window, it should not require further adjustment.
BUFFER ADJUST: The JESD204B core contains a readable BUFFER ADJUST register (see
Table 2-44) for every JESD204B lane. This register indicates how much data was in the lane
alignment buffer for each lane at the LMFC boundary when the output data was released.
Note: The value in the BUFFER ADJUST register may be different for each lane due to inter-lane
skew on the link. The value of interest is the smallest value of all the lanes. This marks the starting
point in time when all lanes had valid data. This is the point where the core was actually ready to
release data. The value in this register is a count in octets and there are four octets per CORE CLK
cycle.
SYSREF DELAY: Located in the SYSREF HANDLING register (seeTable 2-19): This register
delays the internal LMFC boundaries relative to SYSREF by an integer number of CORE CLK
cycles. Therefore programming a SYSREF DELAY of 0x1 will cause the LMFC to be delayed by
four octets.
The larger the value of MF, the greater the target window will be. It is recommended to
pick a value for K that results in a MF of at least 32 octets.
2. Calculate the TW maximum value in octets based on the MF size. This is:
Max = (MF-0x8)
3. Configure the system and start the link. At this point all delays can be unknown.
4. Once the link is running, read the JESD204B RX core BUFFER ADJUST register for every
JESD204B lane in use. Select the smallest value read from the BUFFER ADJUST register
and call this value BUF_FILL.
5. If BUF_FILL falls between the Min and Max values (calculated at step 2), the data arrival
is within the safe TW and no further action is required. If however the BUF_FILL does not
fall between the Min and Max values then the following action should be taken.
a. Program the SYSREF DELAY register with a delay value calculated as follows:
If the BUF_FILL value is low then the SYSREF DELAY value programmed should be
increased by 1 or 2 as follows:
If BUF_FILL < Min but > Min - 4. Then SYSREF DELAY should be increased by 1
If the buffer is almost full, then the SYSREF DELAY value programmed should be
increased by 3 or 4 (i.e., 1 or 2 plus the low margin of 2) as follows:
b. Reset the JESD204B receive core and reinitialize the link. This step must be
performed before the modified SYSREF_DELAY value will affect the LMFC.
c. Re-read the BUFFER ADJUST register for every lane to confirm the data arrival is now
within the target window.
The calculated SYSREF DELAY value should be stored for future use when configuring
this link.
A reset of the JESD204 receive core and a full link resynchronization cycle must take place
before the modified latency setting is acted upon. A minimum latency example is shown in
Figure 3-16.
3932%&
+ + + + + + + + + + + + + + + + + + + +2 $ $ $ $! 21 # #$ $! 2 $ $ $ $!
4RANSMIT ,ANES
3932%&
,-&#
28
$EVICE %ARLIEST
!RRIVAL + + + + + + + + + + + + + + + + + + + +2 $ $ $ $! 21 # #$ $! 2 $ $
,ANE
,ATEST
!RRIVAL + + + + + + + + + + + + + + + + + + + + + + + +2 $ $ $ $! 21 # #$ $! 2 $ $
,ANE
!LIGNED ,ANE
/UTPUT ON ALL + + + + + + + + + + + + + + + + + + + + + + + + + +2 $ $ $ $! 21 # #$ $! 2 $ $
,ANES
$ETERMINISTIC
DELAY
FROM 4X ),!
OUTPUT
8
TO 2X ),! OUTPUT
The SYNC~ signal is a 1-bit output; this enables the correct error output for a frame size of
down to two octets. The signal is Low when the receiver has detected an error. An error
occurs when an idle or an unexpected control character is received during normal frame
transmission.
To give a frame-accurate SYNC~ output when the frame size is one octet the SYNC~ signal
should be asserted for only half a cycle of the device clock. This is not implemented in the
core as it would require a dedicated clock (either twice the device clock speed or an inverted
device clock). If accurate timing of SYNC~ assertion for error reporting is required logic
must be added externally to generate a half cycle pulse on the external SYNC~ pin if the
core SYNC~ signal is asserted for a single cycle and F = 0.
Link Re-initialization
In the JESD204B RX core. Errors that require a full link re-initialization are signaled by
deasserting SYNC~ for a period sixteen frames. When this occurs, the transmitter should
fall back out of data transmission mode and renegotiate the link as described in the
previous device subclass sections.
A TX may initiate a re-initialization using the data interface by sending 4 consecutive Kx.y
characters. This causes the error condition above to be triggered in the receiver. K28.5
(0xBC) would normally be used for this.
JESD204B Transmitter
This section covers implementation and system-level details for a JESD204B transmitter
core.
Transmit Latency
The latency variation is critical for JESD204B systems. The latency through the IP core is
fixed but the transceiver introduces some variation as the internal transmit elastic buffer of
the transceiver is included in the datapath.
The transmit datapath latencies are shown in Table 3-9. Refer to the Latency calculations
checklist AR#66143.
Notes:
1. Latency values are given in byte clocks. See TX End to End Latency for detailed use.
Core Timing
The key parameters of the FPGA transmitter required to calculate end to end latency are:
The delay from SYSREF to LMFC and AXI data in to LMFC must be fixed for a Subclass 1
device but the delay from LMFC to JESD204 serial data out can vary because it is
compensated for in the receiver during alignment to LMFC. See Figure 3-17.
X-Ref Target - Figure 3-17
3932%&
,-&#
44X,-&#
$IGITAL $ATA )N
44X).
44X/54
DAC Timing
The key parameters of the DAC receiver required to calculate end to end latency are:
The delay from SYSREF to LMFC and from LMFC to output must be fixed for a Subclass 1
device but the delay from JESD204 serial data in to LMFC can vary as the receiver buffer
compensates for variations in end to end latency. See Figure 3-18.
X-Ref Target - Figure 3-18
3932%&
,-&#
42X,-&#
42X).
42X/54
3932%&
44X,-&# 42X,-&#
4X ,-&#
2X ,-&#
4 ,-&#
!8) $ATA )N
44X). 44X/54
4X $ATA /UT
47)2%
2X $ATA )N
42X). 42X/54
4,!4
To ensure the overall propagation delay is constant between system restarts, the maximum
propagation delay must be less than T plus one LMFC period:
It is possible that no valid value for N can be found if the received data arrives close to an
RX LMFC boundary and the variation in the link causes it to fall just before or just after the
boundary after resetting the system. This would be seen as a jump in latency of exactly 1
LMFC period between system restarts. If no valid value can be found for N then the SYSREF
signals can be delayed relative to one another to move the RX LMFC boundary relative to
the TX LMFC boundary. For each cycle of delay added to TX SYSREF add 4 to TTXLMFC.
Additional delay can be added to the SYSREF processing in the JESD204 core to accomplish
this; see the SYSREF Handling register.
Example
Try N = 4
The data is received after 4 LMFCs (N) and less than 5 LMFCs (N+1) so the latency is 5*LMFC
plus fixed delays:
T LAT = T + T TXIN
In Subclass 2 devices, the DAC receiver deasserts the SYNC~ signal on its internal LMFC
boundary. At the FPGA transmitter it is the responsibility of the client logic to detect the
deassertion of the SYNC~ signal and to compare its timing to that of the transmitter LMFC.
If adjustment of the DAC LMFC phase is required, the client inputs the required adjustment
step count to the tx_cfg_adjcnt register. The direction of the phase adjustment is input
on tx_cfg_adjdir and an adjustment request is signaled by the assertion of the
tx_cfg_phadj register.
The values on the phase adjustment ports are embedded in bytes 1 and 2 of the ILA
sequence that is sent to the DAC during link initialization. On the reception of the ILA, the
DAC adjusts its LMFC phase by the step count value and sends back an error report with the
new LMFC phase information. This process can be repeated until the LMFC at the DAC and
the FPGA are aligned.
Note: This section does not apply to the JESD204 receiver core.
Modified RPAT
This mode transmits a continuous sequence of a modified random pattern. This pattern is
generated by the RPAT block and must be selected in the Vivado IDE. The block generates a
32-bit output containing four RPAT sequences which is then sent to each transmitter. To
transmit this pattern, set Test Mode Select in the Configuration register to 101.
JSPAT
This mode transmits a continuous sequence of a scrambled jitter pattern. This pattern is
generated by the JSPAT block and must be selected in the Vivado IDE. The block generates a
32-bit output containing four JSPAT sequences which is then sent to each transmitter. To
transmit this pattern, set Test Mode Select in the Configuration register to 111.
On the receiver side, an Error Counting block is used to calculate the number of errors in the
received data. The counter has been modified to calculate all the errors in the received data.
To enable this block, signal rx_cfg_link_test_enable must be set High. A block is
created for each transceiver and uses the rx_disperr and rxnotintable signals to
calculate the number of errors. The block produces a 32-bit output which is then written to
a register.
Link Re-initialization
In the JESD204B TX core. A full link re-initialization will be triggered if the RX deasserts
SYNC~ for a period of 5 tx_core_clk cycles (20 octets).
An example of a two lane TX and two lane RX sharing two transceivers is shown in
Figure 3-20. The transmitter is configured for 3 Gb/s and the receiver configures for 6 Gb/
s. The refclk is 150 MHz and shared between TX and RX. Separate core clocks are
provided for TX and RX to support subclass 1 (see Figure 3-1 in Clocking, page 46).
X-Ref Target - Figure 3-20
The connections between the JESD204 cores and the JESD204_PHY can be seen more
clearly in Figure 3-21, which has the external I/O removed.
X-Ref Target - Figure 3-21
When sharing transceivers between cores with different lane counts there should be
multiple JESD204_PHY cores instantiated to ensure the JESD204 links can be reset
independently. For an example, see Figure 3-22. In this example, three independent, two
lane transmitters are connected to three JESD204_PHYs and a single six lane receiver shares
the transceivers.
All signals are connected directly between the JESD204 and JESD204_PHY as in the previous
examples, except the rx_reset_done from each JESD204_PHY must be AND’d together to
ensure all six transceivers have completed reset before the six lane receiver is enabled.
Sharing a QPLL
To share the QPLL between two JESD204_PHYs, one JESD204_PHY should be configured
with shared logic in core (jesd204_phy_1 in Figure 3-23) and the other with shared logic
in the example design (jesd204_phy_0 in Figure 3-23). The QPLL outputs are available on
the core containing the shared logic and can be connected to the QPLL inputs on the core
without shared logic as shown in Figure 3-23.
For designs that are generated with shared logic in the core with Transceiver Debug
enabled, the user must drive the GT_PD (Power Down) bits of the unused GT channels, if
required.
For designs that are generated with shared logic in the example design, the JESD204 PHY
core controls the power down state of the individual GT channels. Powering down individual
TX and RX lanes can be achieved using either the AXI register interface or the Transceiver
debug pins.
• Vivado Design Suite User Guide: Designing IP Subsystems using IP Integrator (UG994)
[Ref 18]
• Vivado Design Suite User Guide: Designing with IP (UG896) [Ref 17]
• Vivado Design Suite User Guide: Getting Started (UG910) [Ref 19]
• Vivado Design Suite User Guide: Logic Simulation (UG900) [Ref 21]
If you are customizing and generating the core in the IP integrator, see the Vivado Design
Suite User Guide: Designing IP Subsystems using IP Integrator (UG994) [Ref 18] for detailed
information. IP integrator might auto-compute certain configuration values when
validating or generating the design. To check whether the values do change, see the
description of the parameter in this chapter. To view the parameter value you can run the
validate_bd_design command in the Tcl console.
You can customize the IP for use in your design by specifying values for the various
parameters associated with the IP core using the following steps:
For details, see the Vivado Design Suite User Guide: Designing with IP (UG896) [Ref 17] and
the Vivado Design Suite User Guide: Getting Started (UG910) [Ref 19].
Note: Figures in this chapter are illustrations of the JESD204 GUI in the Vivado Integrated Design
Environment (IDE). This layout might vary from the current version.
Configuration Tab
X-Ref Target - Figure 4-1
• Component Name – The component name is used as the base name of the output files
generated for the core. Names must begin with a letter and must be composed from
these characters: a through z, 0 through 9 and “_” (underscore).
• Transmit or Receive – The core can be configured as a transmitter, for connection to
DAC devices, or receiver, for connection to ADC devices. Separate Transmit and Receive
cores can optionally share transceivers (see Sharing Transceivers between Transmit and
Receive).
• LMFC Buffer Settings in Receiver – LMFC buffer (buffer for lane alignment and
deterministic latency support). The size of this buffer (per serial lane) can be selected.
IMPORTANT: The LMFC buffer size option is included to allow minimal resource use where appropriate.
The LMFC buffer size should be greater than the MAXIMUM multiframe size which is used in the
implemented design (multiframe size is F*K, where F = octets per frame; K = frames per multiframe)
• Number of Lanes – The core supports 1 to 8 lanes. For interfaces requiring more than
8 lanes, multiple core must be used. The Lane ID registers can then be programmed to
signal the correct number for each lane.
• Pattern Generators – Select “Include RPAT” and/or “Include JSPAT” to include the logic
required to generate these test patterns if required. See Link Test Modes for more
information.
• AXI4-Lite Clock Frequency – The frequency of the clock connected to the AXI4-Lite
Management Interface.
For UltraScale™ architecture devices the valid frequency range is from 10 MHz to
200 MHz.
For 7 series devices, the valid frequency range available is dependent on the Shared
Logic Selection:
° When Include Shared Logic in core is selected, the AXI clock is common with the
Transceiver DRP clock. The maximum frequency is limited to the maximum DRP
clock frequency for the selected device.
° When Include Shared Logic in example design is selected, the valid range is from
10 MHz to 200 MHz.
• Clocking Options, SYSREF Sampling Edge – The clock edge which is used to sample
SYSREF can be selected. See SYSREF Handling for more information.
• Drive JESD204 Core Clock using Global Clock – This option is only available under
certain conditions. See Clocking section for details.
• Default Link Parameters – All of the following parameters set the default (reset) value
stored in the equivalent configuration register, see Register Space in Chapter 2. The
value set during core generation is overwritten if the register is written through the
AXI4-Lite configuration bus. If software is used to configure the converter frame
parameters, there is no need to configure values here. These configuration settings can
be used to use the IP without an AXI4-Lite master connected. Only a small subset of the
registers can be configured this way. To access all configuration settings and monitor
link status, the AXI4-Lite interface should be connected.
° Octets per Frame (F) – Sets the default (reset) value of register 0x020. See
Table 2-23.
° Frames per Multiframe (K) – Sets the default (reset) value of register 0x024. See
Table 2-24.
° Scrambling Enabled – Sets the default (reset) value of register 0x00C. See
Table 2-18.
° SYSREF Always – Sets the default (reset) value of bit 0 of register 0x010. See
Table 2-19.
° SYSREF Required on Re-Sync – Sets the default (reset) value of bit 16 of register
0x010. See Table 2-19.
° Subclass – Sets the default (reset) value of register 0x02C. See Table 2-26.
The JESD204 IP can be generated with the shared logic included in the core or with the
shared logic included in the example design to enable the sharing of logic between multiple
IP cores as shown in Figure 4-4. Select Include Shared Logic in core to include the JESD204
PHY core and clock buffers, if applicable in the core. Select Include Shared Logic in
example design to instantiate the JESD204 core and clock buffers in the example design so
they can be shared with other IP cores, if desired.
<component_name>
No Shared Logic Encrypted RTL
clk clk
rst rst
AXI-S AXI4-Stream
Transceiver
I/F
AXI4-Lite Config
AXI4-Lite Control & Status
IPIF Registers
jesd204_phy_v1_0
<component_name>
Includes Shared Logic
QPLL
rst rst
GT_CHANNEL
AXI-S AXI4-Stream Serial I/O
Transceiver
I/F
Figure 4‐4: Difference Between Cores Including and Excluding Shared Logic
For simple unidirectional lanes, including the shared logic in the core is preferred. The QPLL
output signals are available as top-level ports enabling the QPLL to be shared with other IP
cores using the same transceiver quad. If you need to create a design where the transceiver
is shared between a receive and transmit core, then generate cores with the shared logic in
the example design and see Sharing Transceivers between Transmit and Receive, page 80.
• Transceiver Parameters – The line rate and reference clock frequency can be selected
using the Vivado IDE (see Figure 4-1). For any selected line rate, valid reference clock
frequencies can be selected from a drop-down list.
For UltraScale architecture devices, a free-running DRP clock must be supplied, and the
frequency (within the displayed valid range) must be entered in the DRP Clock
Frequency box.
Devices that support GTYE3 or GTYE4 may also support transceiver type selection (GTH
or GTY).
For 7 series devices, depending on the Shared Logic configuration, a DRP clock can be
provided. When Shared Logic in the core = 1, the DRP clock is tied to the AXI clock.
User Parameters
Table 4-1 shows the relationship between the GUI fields in the Vivado IDE and the User
Parameters (which can be viewed in the Tcl console).
Notes:
1. Parameter values are listed in the table where the Vivado IDE parameter value differs from the user parameter
value. Such values are shown in this table as indented below the associated parameter.
2. Receiver only.
3. Transmitter only.
4. Varies depending on device.
Output Generation
For details, see the Vivado Design Suite User Guide: Designing with IP (UG896) [Ref 17]. The
final step in generating IP is to select DCP. If you have included the shared logic in the core
and need to change the transceiver configuration then ensure that DCP is not selected.
Required Constraints
This section defines the constraint requirements for the core. Constraints are provided in
several XDC files which are delivered with the core and the example design to give a
starting point for constraints for the user design.
There are four XDC constraint files associated with this core:
• <corename>_example_design.xdc
• <corename>_ooc.xdc
• <corename>.xdc
• <corename>_clocks.xdc
The first is used only by the example design; the second file is used for Out Of Context
support where this core can be synthesized without any wrappers; the third file is the main
XDC file for this core. The last file defines constraints which depend on clock period
definition, either those defined by other XDC files or those generated automatically by the
Xilinx tools, and this XDC file is marked for automatic late processing within the Vivado
design tools to ensure that definitions exist.
Clock Frequencies
The reference clock and core clock frequency constraints vary depending on the selected
line rate and reference clock when generating the core. See the generated XDC for details.
SYSREF Constraints
The example design provided with the JESD204 core has an example of a setup and hold
window assuming the SYSREF and clock have aligned edges. The following example is for
a transmit design with a 1 ns setup and hold window (the exact requirements for these
constraints depend on the chosen method of generating SYSREF and the board layout, the
constraints provided with the core are for example only):
If the SYSREF input sampling edge is changed, these constraints require modification. See
SYSREF Sampling Clock Edge in Chapter 3 for more details.
Clock Domains
There are also several paths where clock domains are crossed. These include the
management interface. See the generated XDC file for details.
Clock Management
Reference clock and core clock resources require location constraints appropriate to your
top-level design.
Clock Placement
Reference clock input should be given location constraints appropriate to your top-level
design and to the placement of the transceivers.
Core clock input (if required) should be given location constraints appropriate to your
top-level design.
Banking
All ports should be given location constraints appropriate to your top-level design within
banking limits.
Transceiver Placement
Transceivers should be given location constraints appropriate to your design. In some cases,
example transceiver location constraints can be found in the example design XDC file.
Simulation
TFor comprehensive information about Vivado simulation components, as well as
information about using supported third party tools, see the Vivado Design Suite User
Guide: Logic Simulation (UG900) [Ref 21].
IMPORTANT: For cores targeting 7 series or Zynq-7000 AP SoC devices, UNIFAST libraries are not
supported. Xilinx IP is tested and qualified with UNISIM libraries only.
Example Design
The JESD204 IP can be generated as an IP in TX or RX configuration. Both selections come
with a lightweight test harness to enable familiarization with the design and signal
interface.
In Vivado®, create a new empty project. Be sure to select the FPGA part that you wish to
use. Using the Vivado IP catalog, select the JESD204 IP core and configure as required.
Right-click the block under Design Sources and select Open IP Example Design, as shown
in Figure 5-1. This opens a new Vivado project containing the complete RX or TX design
example.
X-Ref Target - Figure 5-1
Valid configurations are 112, 222, 332, 442, 552, 662, 772, 882, 992, 10102, 11112 and
12122.
X-Ref Target - Figure 5-2
Sine Wave Transport Layer JESD204 JESD204 Transport Layer Sine Wave
Generation to 32-bit JESD TX IP RX IP from 32-bit * L Checking
TX Interface JESD RX Interface
This design example packages two samples per 32-bit data word passed to the AXI4-Stream
interface. Each sample is made up of a 14-bit sine wave sample and two example control
bits. The mapping is consistent across each lane. Samples are not distributed between
lanes. There is one sample per frame, and the sample bit mapping is:
Transport Layer interface, per LANE in TX design example Transport Layer interface, per LANE, in RX design example
Sample generation, from sine wave lookup Mapping to the De-mapping of Unpacked samples
table. Example CTRL bits are added to each 32 bit JESD TX 32-bit * L JESD
sample. A frame is made up of 2 samples interface RX interface
LLS1
LLS5
LLS1
LLS3
LLS5
TX IP RX IP
(N+1) (N+1)
Samples as they appear on a TX GT lane. These are transmitted as 8b/10b
symbols. Transmission is from right to left
(L-1 * 32) (L-1 * 32)
0 0 0 + 16 + 16 0 0 0
LLS5 LLS4 LLS3 LLS2 LLS1 LLS0
15 15 15 (L-1 * 32) (L-1 * 32) 15 15 15
14 14 14 + 15 + 15 14 14 14
13 13 13 Frame 5 Frame 4 Frame 3 Frame 2 Frame 1 Frame 0 13 13 13
Sample Sample
LLS0
LLS2
LLS4
LLS0
LLS4
LLS2
(N) (N)
Figure 5‐3: Per-lane Data Generation and Transport Layer Mapping of Data
X-Ref Target - Figure 5-4
Octet mapping in the transport layer, per LANE, in TX Transport layer interface, per LANE, in RX design
design example example
15 15 15 15
oct3
oct7
14 14
oct7
oct3
14 14
13 13 JESD204 JESD204 13 13
LLS1
LLS3
TX IP RX IP
LLS3
LLS1
oct2
oct6
oct6
oct2
oct5
oct1
14 14
oct5
oct1
14 14
13 13 Frame 2 Frame 1 Frame 0 13 13
LLS0
LLS2
LLS2
LLS0
oct0
oct4
oct4
oct0
sysref Generation
The sysref signal is generated in both the TX and RX test bench using tx_core_clk/
rx_core_clk.
TX Block Layout
The design example is the same for both shared logic options. There is a subtle hierarchical
name change denoting the top-level of the IP within the example design. In Figure 5-5 and
Figure 5-6, the blocks included in the generated top-level IP are shown within the shaded
box.
X-Ref Target - Figure 5-5
<component_name>_example_design
<component_name>_support
<component_name>
<component_name>_clocking
(IP Core top level)
<component_name>_block
Configuration registers
AXI Lite IPIF
Test pattern generators
<component_name>_phy
Mapping to
Per lane,
32-bit * L JESD204_vX.X_top
14-bit Sine +
AXI-Stream (encrypted RTL)
2-bit Ctrl
Interface
<component_name>_example_design
<component_name>
(IP Core top level)
<component_name>_support
<component_name>_block
<component_name>_clocking
Configuration registers
AXI Lite IPIF
Test pattern generators
Mapping to <component_name>_phy
Per lane,
32-bit * L JESD204_vX.X_top
14-bit Sine +
AXI-Stream (encrypted RTL)
2-bit Ctrl
Interface
15 15 15 (L-1 * 32)
14 14 14 + 31
13 13 13 JESD204
Sample
LLS5
LLS3
LLS1
TX IP
(N+1)
Samples as they appear on a TX GT lane. These are transmitted
as 8b/10b symbols. Transmission is from right to left.
(L-1 * 32)
0 0 0 + 16
LLS5 LLS4 LLS3 LLS2 LLS1 LLS0
15 15 15 (L-1 * 32)
14 14 14 + 15
13 13 13 Frame 5 Frame 4 Frame 3 Frame 2 Frame 1 Frame 0
Sample
LLS4
LLS2
LLS0
(N)
(L-1 * 32)
0 0 0 +0
Figure 5‐7: Per-lane Generation and Transport Layer Mapping of Data for the TX Data Path
JESD204
Sample TX IP
(N+1)
Samples as they appear on a TX GT lane. These are transmitted
L2S5
L2S3
L2S1
as 8b/10b symbols. Transmission is from right to left.
48
L2S5 L2S4 L2S3 L2S2 L2S1 L2S0
47
L2S4
L2S2
L2S0
32
31
Sample
(N+1)
Samples as they appear on a TX GT lane. These are transmitted
L1S5
L1S3
L1S1
16
L1S5 L1S4 L1S3 L1S2 L1S1 L1S0
15
L1S4
L1S2
L1S0
Figure 5‐8: Data Generation and Transport Layer Mapping for a 2-Lane Example, LMF= 222
RX Block Layout
Similar to the TX, the design example is the same for both shared logic options. There is a
subtle hierarchical name change denoting the top-level of the IP within the example design.
In Figure 5-9 and Figure 5-10, the blocks included in the generated top-level IP are shown
within the shaded box.
X-Ref Target - Figure 5-9
<component_name>_example_design
<component_name>_support
Per lane,
14-bit Sine + <component_name> <component_name>_clocking
2-bit Ctrl (IP Core top level)
<component_name>_block
<component_name>_phy
De-mapping
Data stream from
check 32-bit * L JESD204_vX.X_top
function AXI-Stream (encrypted RTL)
Interface
<component_name>_example_design
<component_name>
(IP Core top level)
Per lane,
14-bit Sine + <component_name>_support
2-bit Ctrl
<component_name>_block <component_name>_clocking
De-mapping <component_name>_phy
Data stream from
check 32-bit * L JESD204_vX.X_top
function AXI-Stream (encrypted RTL)
Interface
(L-1 * 32) 15 15 15
+ 31 14 14 14
JESD204 13 13 13
Sample
LLS1
LLS3
LLS5
RX IP
(N+1)
Samples as they appear on a TX GT lane. These are transmitted
as 8b/10b symbols. Transmission is from right to left.
(L-1 * 32)
+ 16 0 0 0
LLS5 LLS4 LLS3 LLS2 LLS1 LLS0
(L-1 * 32) 15 15 15
+ 15 14 14 14
Frame 5 Frame 4 Frame 3 Frame 2 Frame 1 Frame 0 13 13 13
Sample
LLS0
LLS2
LLS4
(N)
(L-1 * 32)
+0 0 0 0
Figure 5‐11: Per-lane Generation and Transport Layer Mapping of Data for the RX Data Path
63
JESD204
RX IP Sample
(N+1)
Samples as they appear on a TX GT lane. These are transmitted
L2S1
L2S3
L2S5
as 8b/10b symbols. Transmission is from right to left.
48
L2S5 L2S4 L2S3 L2S2 L2S1 L2S0
47
L2S0
L2S2
L2S4
Frame 5 Frame 4 Frame 3 Frame 2 Frame 1 Frame 0
Sample
(N)
32
31
Sample
(N+1)
Samples as they appear on a TX GT lane. These are transmitted
L1S1
L1S3
L1S5
as 8b/10b symbols. Transmission is from right to left.
16
L1S5 L1S4 L1S3 L1S2 L1S1 L1S0
15
L1S0
L1S2
L1S4
Frame 5 Frame 4 Frame 3 Frame 2 Frame 1 Frame 0
Sample
(N)
Figure 5‐12: Data Generation and Transport Layer Mapping for a 2-Lane Example, LMF= 222
Test Bench
The example design supplied with the JESD204 core provides a complete simulation
environment including a demonstration test bench that allows you to simulate the core and
view the inputs and outputs using the Vivado® Design Suite.
The test bench instantiates the example design described in Chapter 5, Example Design and
provides the necessary stimulus to show the example design functioning. The test bench
can be run at all stages of the design process from behavioral simulation of the RTL code
through full post-implementation timing simulation.
The demonstration test bench is delivered, in one of two formats depending on whether
you have created a transmitter or receiver core, as described in Chapter 5, Example Design.
Figure 6-1 shows the transmitter core test bench and Figure 6-2 shows the receiver core
test bench.
X-Ref Target - Figure 6-1
demo_tb.v
Example Design (TX) SYSREF
SYSREF
Stimulus
REFCLK
Clock GLBLCLK
Stimulus
AXI_CLK
Decode
N Test Control
and Lane
JESD204 Lanes and Checker
Alignment
AXI4-Lite
Control
Interface AXI_BUS SYNC
Stimulus
demo_tb.v
Example Design (RX) SYSREF
SYSREF
Stimulus
REFCLK
Clock GLBLCLK
Stimulus
AXI_CLK
N
Encode Test Control
JESD204 Lanes
AXI4-Lite and Checker
Control
Interface AXI_BUS SYNC
Stimulus
RX_TDATA_OUT_PASS
• Clocking – Includes clocking stimulus for REFCLK, GLBLCLK (if required by the
selected configuration), and the AXI4-Lite interface clock s_axi_aclk. The generated
clock frequencies reflect the frequency choices selected in the JESD204 core
configuration GUI.
• SYSREF – The test bench generates a repeating SYSREF signal with a period of four
multi-frames (equal to F*K frame clock periods).
• Configuration – The test bench configures the programmable core parameters using
the core register interface over the AXI4-Lite bus interface (see Register Space in
Chapter 2 for more details). The parameters are configured as shown in Table 6-1. The
following procedure is followed when programming the core registers:
a. Program the required core registers.
b. Assert core reset by writing 0x1 to the core reset register.
c. Poll the core reset register until the reset bit has cleared.
• Decode the 8B/10B serialized data streams from the TX ports of the example design.
• Align the received data lanes.
• Check the data from the example design. The test bench expects 14-bit sine wave
samples with 2-bit control information generated in the transmitter core example
design.
• Generate and map 14-bit sine wave samples with 2-bit control information as expected
by the receiver core example design.
• Encode and serialize 8B/10B data into the RX ports of the example design.
• Check the rx_tdata_out_pass signal from the example design. This output bit
confirms the example design has received the data as expected.
To run the test bench and simulate the example design, ensure you have first opened the
example design and select Run Simulation under the Simulation flow in the Vivado IDE. For
further details on setting up the simulation, see the Vivado Design Suite User Guide:
Designing with IP (UG896) [Ref 17].
• Compiles the test bench and example design including your generated core.
• Launches the simulator.
• Opens the waveforms widow and displays the signals in the test bench.
• Runs the simulation for 1 ms.
Now, the simulation has only just started. You are required to manually run the simulator
until the simulation completes. You should see the following log output in the simulator
console after a successful simulation run.
TX core log:
RX core log:
To gain a better understanding of the operation of the signals into and out of your
generated core, observe in the simulation what is happening inside the example design. To
see this, right-click the DUT instance and select Add To Wave Window. This shows all the
signals from the example design level of the hierarchy. You must rerun the simulation from
the start to see the values for the added waveforms.
Simulation
A highly parameterizable transaction-based simulation test suite has been used to verify
the core. Tests include:
Hardware Testing
The core has been used in many hardware test platforms within Xilinx and in interoperability
testing with external hardware vendors.
Device Migration
If you are migrating from a 7 series GTX or GTH device to an UltraScale GTH device, the
prefixes of the optional transceiver debug ports for single-lane cores are changed from
gt0, gt1 to gt, and the postfix _in and _out are dropped. For multi-lane cores, the
prefixes of the optional transceiver debug ports gt(n) are aggregated into a single port.
For example, gt0_gtrxreset and gt1_gtrxreset now become gt_gtrxreset
[1:0]. This is true for all ports, with the exception of the DRP buses which follow the
convention of gt(n)_drpxyz.
It is important to update your design to use the new transceiver debug port names. For
more information about migration to UltraScale architecture-based devices, see the
UltraScale Architecture Migration Methodology Guide (UG1026) [Ref 23].
For Ultrascale Designs generated with Shared logic in Core, the single ended core clock
input has been replaced with a differential clock input (global clock). The option to enable
or disable this input (depending on IP settings) has been added to the GUI.
To simplify system level clocking. The AXI stream clock ports tx_aclk and rx_aclk have
been removed.
These clock output ports were copies of tx_core_clk and rx_core_clk respectively.
Designs that use these clocks must be modified to use the clock driving the tx_core_clk
or rx_core_clk input to the core to also drive the logic previously driven by tx_aclk or
rx_aclk.
For UltraScale devices generated with shared logic in the core, there is no longer a
differential input for glblclk. This has been replaced with a single ended input called
tx_core_clk or rx_core_clk. Designs which require glblclk can instantiate the
differential buffer external to the core.
• Lane 0
To change a design using v5.2 of the core to use v6.0, follow the changes shown in
Figure C-1.
X-Ref Target - Figure C-1
This scenario is now possible because the transceiver parameters can be updated using the
JESD204 IP GUI. To perform the upgrade:
1. Upgrade the JESD204 IP and ignore the critical warnings about pin changes.
2. Double-click on the JESD204 XCI file to re-customize the IP.
3. Change from using shared logic in example design to shared logic in core in the Shared
Logic Tab.
4. Check that the transceiver line rate and reference clock match the values used in your
existing Transceiver Wizard instantiation.
5. Allow the IP to regenerate.
Figure C‐2: Upgrading Transmitter with Shared Logic in Ex. Des. Converted to Incl. Shared Logic in Core
TIP: There will be redundant files in the project which can be removed, these contain the old Transceiver
Wizard and associated logic.
To change a design using v5.2 of the core to use v6.0, make the changes to the IP
instantiation as shown in Figure C-3.
X-Ref Target - Figure C-3
This is now possible because the transceiver parameters can be updated using the JESD204
IP GUI. To perform the upgrade:
1. Upgrade the JESD204 IP and ignore the critical warnings about pin changes.
2. Double-click the JESD204 XCI file to re-customize the IP.
3. Change from using shared logic in example design to shared logic in core in the Shared
Logic Tab.
4. Check that the transceiver line rate and reference clock match the values used in your
existing Transceiver Wizard instantiation.
5. Allow the IP to regenerate.
6. Modify the instantiation of jesd204_0_support in jesd204_0_example_design.v or
your own RTL top-level that instantiates jesd204_0_support, as shown in Figure C-4.:
Figure C‐4: Upgrading Receiver with Shared Logic in Ex. Des. Converted to Include Shared Logic in Core
• common_pll0_lock_out
• common_pll0_refclk_out
• common_pll0_clk_out
• tx_pll_select
• txusrclk_out
• txclk_rdy_out
• common_pll0_lock_out
• common_pll0_refclk_out
• common_pll0_clk_out
• rx_pll_select
• rxusrclk_out
• rxclk_rdy_out
Debugging
This appendix includes details about resources available on the Xilinx Support website and
debugging tools.
TIP: If the IP generation halts with an error, there might be a license issue. See License Checkers in
Chapter 1 for more details.
Documentation
This product guide is the main document associated with the JESD204. This guide, along
with documentation related to all products that aid in the design process, can be found on
the Xilinx Support web page or by using the Xilinx Documentation Navigator.
Download the Xilinx Documentation Navigator from the Downloads page. For more
information about this tool and the features available, open the online help after
installation.
Answer Records
Answer Records include information about commonly encountered problems, helpful
information on how to resolve these problems, and any known issues with a Xilinx product.
Answer Records are created and maintained daily ensuring that users have access to the
most accurate information available.
Answer Records for this core can be located by using the Search Support box on the main
Xilinx support web page. To maximize your search results, use proper keywords such as:
• Product name
• Tool message(s)
A filter search is available after results are returned to further target the results.
AR: 54480
Technical Support
Xilinx provides technical support at the Xilinx Support web page for this LogiCORE™ IP
product when used as described in the product documentation. Xilinx cannot guarantee
timing, functionality, or support if you do any of the following:
• Implement the solution in devices that are not defined in the documentation.
• Customize the solution beyond that allowed in the product documentation.
• Change any section of the design labeled DO NOT MODIFY.
To contact Xilinx Technical Support, navigate to the Xilinx Support web page.
Debug Tools
There are many tools available to address JESD204 design issues. It is important to know
which tools are useful for debugging various situations.
The Vivado logic analyzer is used with the logic debug LogiCORE IP cores, including:
See the Vivado Design Suite User Guide: Programming and Debugging (UG908) [Ref 24].
Reference Boards
Various Xilinx development boards support the JESD204. These boards can be used to
prototype designs and establish that the core can communicate with the system.
° KC705
° AC701
° ZC706
° VC709
• Kintex Ultrascale evaluation board:
° KCU105
Simulation Debug
The simulation debug flow for QuestaSim is illustrated in Figure D-1. A similar approach can
be used with other simulators.
X-Ref Target - Figure D-1
1UESTA3IM
3IMULATION $EBUG
9ES
9ES
)F THE LIBRARIES ARE NOT COMPILED AND
MAPPED CORRECTLY IT WILL CAUSE ERRORS
SUCH AS
%RROR VOPT &AILED TO ACCESS .EED TO COMPILE AND MAP THE
9ES CORRECT LIBRARIES 3EE THE 6IVADO
LIBRARY gSECUREIPg AT SECUREIP $O YOU GET ERRORS REFERRING TO
.O SUCH FILE OR DIRECTORY FAILING TO ACCESS LIBRARY $ESIGN 3UITE 5SER 'UIDE ,OGIC
ERRNO %./%.4 3IMULATION 5'
%RROR EXAMPLE?DESIGN
XAUI?CORE?BLOCKV
,IBRARY SECUREIP NOT FOUND .O
4O MODEL THE -'4S THE 3ECURE)0 &OR VERILOG SIMULATIONS ADD THE , SWITCH
$O YOU GET ERRORS INDICATING 9ES WITH THE APPROPRIATE LIBRARY REFERENCE TO THE
MODELS ARE USED 4HESE MODELS '40?$5!, OR OTHER ELEMENTS LIKE
MUST BE REFERENCED DURING THE VSIM VSIM COMMAND LINE &OR EXAMPLE , SECUREIP
"5&' NOT DEFINED OR , UNISIMS?VER
CALL !LSO IT IS NECESSARY TO
REFERENCE THE UNISIMS LIBRARY
.O
.O
Hardware Debug
Hardware issues can range from link bring-up to problems seen after hours of testing. This
section provides debug steps for common issues. The debug feature is a valuable resource
to use in hardware debug. The signal names mentioned in the following individual sections
can be probed using the debug feature for debugging the specific problems.
General Checks
• Ensure that the core is correctly wired up. If using the JESD204_PHY core, ensure that
the lane based signals are wired to the correct location.
• Ensure that all the timing constraints for the core were met during implementation.
• Ensure that all clock sources are clean and in particular that the transceiver reference
clocks meet the transceiver requirements from the appropriate FPGA Data Sheet.
• Ensure all clock sources are stable before deasserting the external reset signal to the
core.
• Ensure that all transceiver PLLs have obtained lock by monitoring the QPLLLOCK_OUT
and/or CPLLLOCK_OUT port either using the debug feature or by routing the signals to
a spare pin.
Interface Debug
AXI4-Lite Interfaces
Read from a register that does not have all 0s as a default to verify that the interface is
functional. Output s_axi_arready asserts when the read address is valid, and output
s_axi_rvalid asserts when the read data/response is valid. If the interface is
unresponsive, ensure that the following conditions are met:
Xilinx Resources
For support resources such as Answers, Documentation, Downloads, and Forums, see the
Xilinx Support web page.
References
These documents provide supplemental material useful with this product guide:
15. Kintex UltraScale Architecture Data Sheet: DC and AC Switching Characteristics (DS892)
16. Xilinx Vivado AXI Reference Guide (UG1037)
17. Vivado Design Suite User Guide: Designing with IP (UG896)
18. Vivado Design Suite User Guide: Designing IP Subsystems Using IP Integrator (UG994)
19. Vivado Design Suite User Guide: Getting Started (UG910)
20. 7 Series data sheets
21. Vivado Design Suite User Guide: Logic Simulation (UG900)
22. ISE to Vivado Design Suite Migration Guide (UG911)
23. UltraScale Architecture Migration Methodology Guide (UG1026)
24. Vivado Design Suite User Guide: Programming and Debugging (UG908)
25. Virtex Ultrascale Architecture Data Sheet: DC and AC switching Characteristics (DS893)
Revision History
The following table shows the revision history for this document.