@asmi Thanks, that's interesting!
I'm interfacing to a DAC, not an ADC. Might be a bit easier - instead of having a ton of data to process or store, I just need to repeat the same pattern to the output. Patterns are short, usually 1000 points or so (maybe 5k-10k points max).
Sorry I confused your topic with another one that's going on here
Is there a similar limit for OSERDES in DDR mode only doing 4:1?
No, OSERDES in DDR mode can do 2,4,6, 8, as well as 10 or 14 when cascaded. But there still is a question of where the data comes from at such rate.
I hear you about wide bus... what is the effective total throughput to BRAM? Can I use distributed (LUT) RAM?
For middle speed grade (-2) maximum frequency of FIFO is 460 MHz, so in 2:1 serialization it gives 920 Mbps per pin pair. Highest speed grade has 509 MHz max FIFO frequency, but it's very expensive and hard to find in stock. If you want to achieve higher rate, you will need to use higher order of serialization. This will also make achieving timing closure easier because clock frequency will be lower.
For BRAM, it can be configured in 4k x 2, 2k x 9, 1k x 18 or 512 x 36 mode for "half BRAM" (18Kb), or 8k x 4, 4k x 9, 2k x 18, 1k x 36 or 512 x 72 mode for a full module (36Kb). So if you use x72 config and run it at max frequency, you can get 72 x 460 = 33120 Mbps. But again, I'm almost certain you won't be able to feed it from any logic at 460 MHz, so the max burst is only 512 transfers.
If you want to go faster, you have a couple of choices:
1. First of all, if you have a freedom to choose a DAC, you may want to prefer the one that has serial JESD204 interface as Artix's MGTs support that interface.
2. Alternatively, you can opt to use Kintex-based Zynqs (Z030 and above), they have significantly faster fabric, but they are quite expensive.