12-07-2017 10:02 AM
I'm trying to synchronize the outputs of two physically separated Spartan-6 FPGAs. Ideally, the skew between the two device's outputs would be less than 1ns.
The outputs are differential pins controlled by an OSERDES2.
One possibility might be to distribute a reference clock to the two FPGAs. The signal would be routed so that it arrives at each FPGA at "exactly the same" time.
The reference clock would be passed through a PLL, with feedback through a BUFIO2_FB device. As shown in the clocking resources example:
Will this feedback mechanism cancel out clock insertion delay, so that the IOCLK is in phase with clock input pin?
The ISERDES2 in the same IOCLK domain would register a reference data signal which simply denotes a particular clock edge to align the output with.
Are there other device variations which will prevent the outputs from being deterministically in phase?
For example I'm concerned the propagation delay from OSERDES2 to output pin could vary greatly between devices. Based on timing datasheet:
Does this specification of 0.94 ns mean that the propagation can be anywhere from 0 to 0.94ns across different devices?
Is there a more sound approach to this problem?
If this approach won't work, it's really helpful to know what timing specification tells me that, or what my misunderstanding of some function is.
02-16-2018 04:51 AM
Not sure I fully understand the question but I think concern is the Clock to Out of the Serdes and how much that can vary between 2 FPGAs on the same board.
If you do a Timing Analysis or just use speedprint you can get the min and max of this parameter.
https://www.xilinx.com/support/answers/6067.html
Toscko_OQ (600/637, 681/723) (846/898, 965/1025)
Toscko_TQ (600/637, 681/723) (846/898, 965/1025)
This covers PVT, if the temperature and voltage of the FPGAs are the same it would be even closer.