AD9695
Recommended for New Designs
The AD9695 is a dual, 14-bit, 1300 MSPS/625 MSPS analog-to-digital converter (ADC). The device has an on-chip buffer and a sample-and-hold circuit designed...
Datasheet
AD9695 on Analog.com
Hi,
I'm pin verifying a Vivado project for a custom board which will connect with several AD9695 chips. (FPGA = xczu4cg-fbvb900-2-e). Vivado 2025.1
I have based the design off the ZCU102 - AD9695 example design.
When compiling for 1.3 GSPS Sample speeds (Device Clock = 325MHz) I get a Pulse Hold timing violation on sysref_reg. It looks like this is a limit of the RXTX_BITSLICE primitive in which 'sysref_reg' is placed due to a constraint in the jesd204_rx IP:

Generated jesd204_rx constraint:
# Make sure that the device clock to sysref skew is at least somewhat
# predictable
set_property IOB true \
[get_cells {i_lmfc/sysref_r_reg}]
In the example design I see sys ref is routed through a clock buffer (BUFG_GT), which causes the above constraint to be ignored.
Currently our SYSREF inputs are non clock capable. I'm wondering if the solution to this is to change the pins and route SYSREF through a clock buffer like the example design (although it would be a BUFG in our case).
Would routing sysref through a BUFG meet the requirement of predictable device clock to sysref skew mentioned in the constraint? Or could the constraint just be ignored without the clock buffer? (Or another solution?)
Thanks in advance
Hello,
Would it be possible to move SYSREF to a clock-capable pin? Routing it through a BUFG could be a suitable approach; however, I would not recommend ignoring the constraint.
A member of our team will review this issue in more detail shortly.
Thank you for your patience and interest,
Stanca
Hi,
The constraint is ignored in the example design because you can't pack a flop into a IOB if it's fed from the global clock network.
The best solution would be to move the sysref into a clock capable pin and route it through the global clock network to minimize skew.
If you can't do that, since the sysref is usually low frequency, it's most of the time enough to just constrain it to have a similar input delay as the device_clk and if the timing passes it usually works.
set_input_delay -clock [get_clocks device_clk] \
[get_property PERIOD [get_clocks device_clk]] \
[get_ports {sysref}]
Regards,
Bogdan
Okay good to know.
We will route sysref to a clock capable pin.
Thanks.