Hi,
I am working on interfacing an AD12D1600RF to a Xilinx Virtex7 FPGA and have been having a little difficulty with the constraints meeting timing even at a sample rate of 1.0GSPS in Demux mode (LVDS running at 250 MHz). I found Application Report SLAA545 for interfacing Altera FPGAs to the ADS4249 and it seems that this would be similar to the constraints for a Xilinx FPGA and the ADC12D2600RF . I am using Vivado xdc constraints by the way. I tried the following constraints based on the SLAA545 but I am still failing timing:
create_clock -period 4.000 -name ADC_DATA_CLK_i [get_ports ADC_dclki_p]
create_clock -period 4.000 -name ADC_LAUNCH_CLK_i -waveform {3 5}
set ADC_LATCH_CLK_i [get_clocks clk_out1_adc_clk_mmcm]
set_input_delay -clock [get_clocks ADC_LAUNCH_CLK_i] -max 0.500 [get_ports {ADC_di_n[*]}]
set_input_delay -clock [get_clocks ADC_LAUNCH_CLK_i] -min -0.500 [get_ports {ADC_di_n[*]}]
set_input_delay -clock [get_clocks ADC_LAUNCH_CLK_i] -max 0.500 [get_ports {ADC_di_n[*]}] -clock_fall -add_delay
set_input_delay -clock [get_clocks ADC_LAUNCH_CLK_i] -min -0.500 [get_ports {ADC_di_n[*]}] -clock_fall -add_delay
set_false_path -setup -rise_from [get_clocks ADC_LAUNCH_CLK_i] -fall_to $ADC_LATCH_CLK_i
set_false_path -setup -fall_from [get_clocks ADC_LAUNCH_CLK_i] -rise_to $ADC_LATCH_CLK_i
set_false_path -hold -rise_from [get_clocks ADC_LAUNCH_CLK_i] -rise_to $ADC_LATCH_CLK_i
set_false_path -hold -fall_from [get_clocks ADC_LAUNCH_CLK_i] -fall_to $ADC_LATCH_CLK_i
Do these constraints appear to be correct? Or did I miss something here?
Also, it seems fairly common for ADC reference designs to not constrain the input delay for the FPGA at all. Is that a valid approach to these interfaces and why?
Thanks,
Evan