03-17-2015 03:45 AM
I have a board with Kintex-7 and AD9637 (Data Sheet atached), and need to read the ADC data into the FPGA.
The AD9637 uses DDR and one differential LVDS data lane per ADC.
For 75Msps, this results in a line rate of 900Mbit/second. According to DS182, even the HR pins of a -1 speed grade are able to deal with this data rate.
But UG471 implies that the ISERDESE2 element of 7-series FPGAs is not able to deal with 12bit data. I say "implies" because UG471 tells nothing about 12 bit. It just leaves a gap between 10 bit and 14bit.
Then I read XAPP524, and it sounds as if it is possible to read data from a 12bit ADC.
Table 1 in XAPP524 lists
- 12 bit resolution
- 80MHz sample rate
- 1-wire interface
as a valid combination (Comments = OK).
Is it possible to read data from a 12bit ADC with 1-wire interface with a Kintex-7?
I am looking forward to your answers.
12-08-2015 06:31 PM - edited 12-08-2015 06:32 PM
Sadly, there are some weird gaps in the coregen IP these days, and they seem to get less flexible over time rather than more flexible. For instance, you (technically) can't create a MIG that can run from a 48 MHz USB clock anymore because they've severely restricted the clocking options. :( A rant from another thread...
What ADC part are you working with?
12-10-2015 05:19 AM
I am using AD9228 from Analog Devices. I am running it at 32MHz sampling clock.
I was stupid enough to install Vivado 2015.4 to see if anything had changed to better from 2015.2 and I just got a clock wizard change from vhdl/verilog to verilog only output. Not a big issue as I keep old Vivado releases for this kind of upsets, but it adds to the degenerating flexibility of Vivado.
08-09-2016 09:40 PM
I'm using a ADS5281 it's a 12-bit ADC and I'm running it at 40Msps. I have two master SDR ISERDES, one running with data_p and one with data_n with data_p clocking in the even bits and data_n clocking in the odd bits. The odd bit ISERDES has an inverted bit clock and and I have DYN_CLKDIV_INV_EN and DYN_CLK_INV_EN set to true, but I still have not gotten anything out when I try and run it with hardware. It does not make sense to me to invert the divclk, but I have tried pretty much every combination of DYN_CLKDIV_ EN and DYN_CLK_INV_EN with clocks inverted and noninverted with no results. Do you have both ISERDES blocks with DYN_CLKDIV_EN and DYN_CLK_INV_EN set to true, and do you still invert the CLK in one?
08-10-2016 10:33 AM
I found the problem. I was using the lclk from my ADC for both of the ISERDES blocks. This worked in simulation, but did not work on hardware.
06-17-2019 07:22 AM
Hi, I'm trying to do the saming thing as you. I read the discussion of this thread about XAPP524. It's out of data. Could you please share your design about 12bit lvds ADC with DDR mode? Thank you very much.
04-08-2020 03:35 AM
Thanks @041064974 ,
I had exactly same problem and it was solved thanks to this DYNCLKINVSEL = TRUE and DYNCLKDIVINVSEL = TRUE magic. It probably saved me days of headaches, this was a nasty one.
I happened (at least) with Vivado 2017.4