Electronic – deserializing high speed data

fpgaparallelserialxilinx

I am trying deserialize data that come out of a LM98640 into 14 bits words:

Attached you can find a figure of the signals out of the LM98640.
http://www.ti.com/lit/ds/symlink/lm98640qml-sp.pdf
(Figure 24 page 31)

I need to deserialize the signals TXOUT1 and TXOUT2:

A differential clock (TXCLK) is also output with transitions aligned with the center of the data eye. Data rates
range from 80Mbps up to 640 Mbps.

(TXOUT1 and TXOUT2 changes as fast as a 640 MHz clock)

What kind of FPGA should i use to work at these rates?

Can i use flip flops to capture the data and a 14 bit wide shift register to pack this into words of 14 bits wide?

Or is it more complex at these rates? Am i going to face metastability problems since i assume a will be facing crossing time domains between the clock sampling the DATA out of the LM98640 and the clock of the FPGA.

The data deserialized is going to be provided to a NI DAQ or stored in a RAM.

What kind of xilinx FPGA should i use?

Thank you for your help

Best Answer

640Mb/s DDR is a bit quick for fabric logic, but may be manageable with a DDR configured IO block in a reasonably fast part.

However every even semi recent xilinx part has an ISERDES available on the inputs, and these are more then quick enough to deal with 640Mb/s DDR mode data even in speed grade 1.

I note that your chosen ADC is radiation hardened, if you need it, that may well be a bigger issue then link speed as it will massively reduce your FPGA (And configuration device) options. If you don't need rad hard, there are probably far cheaper ADCs that would get it done.

What FPGA, depends on what you need, I would go 7 series just because that gets you Vivado as a tool chain that is getting more love then ISE (Also its constraints file format is less annoying IMHO).