So now all I need to do is make some API changes to libscopehal and update the ngscopeclient GUI accordingly (right now it assumes BERTs have a single global timebase and doesn't support a per-lane timebase configuration).
At which point I should be able to synthesize PRBSes at 10.3125 Gbps divided by 1, 2, 4, 8, or 16, or 5 Gbps divided by 1, 2, 4, or 8 (div 16 would be 312.5 Mbps which is below the 500 Mbps minimum for the GTX).
More options possible if I add support for runtime partial reconfiguration of the CPLL but I can do this much with fixed CPLL and QPLL frequencies, just muxing between the two and configuring sub-rates.