n3xx: Add comments on clock_source=external,time_source=gpsdo

It is, in principle, possible to use an external clock to synchronize
N3x0 devices in frequency, and then use a GPSDO for a coarse time
synchronization. This use case is deliberately not supported, as the
GPSDO PPS signal and the external clock signal are by definition not
matched, which will remove any guarantees on time/phase alignment.

Because there are certain, niche use cases where the lack of phase
alignment is acceptable, but only an external clock is available (no
shared external PPS), usage of GPS for generating a PPS signal may be
fine. This patch does not enable the usage of this combination out of
the box, but adds comments and an update to the manual to explain the
risks of this combination, and how to enable it (by patching MPM).


Original-commit: 76e004db07a3714139e64ff396a81b90c372b2bb
This commit is contained in:
David Raeman
2024-02-21 06:40:57 -06:00
committed by Aki Tomita
parent f4e2c89e4c
commit ea7c48ad38
+7 -1
View File
@@ -237,11 +237,17 @@ module n3xx_clocking (
// ____________| PPS | // ____________| PPS |
// | Clocks | External | FPGA | GPSDO | WR | // | Clocks | External | FPGA | GPSDO | WR |
// |--------------------------------------------| // |--------------------------------------------|
// |External 10 | x | x | | | // |External 10 | x | x | (x) | |
// |Internal 25 | | x | | x | // |Internal 25 | | x | | x |
// |GPSDO 20 | | | x | | // |GPSDO 20 | | | x | |
// |--------------------------------------------| // |--------------------------------------------|
// //
// A note on external clock + GPSDO timing: The hardware doesn't prohibit this
// use case, but GPSDO and external clock are guaranteed to be not matched, so
// this will certainly cause a non-deterministic time alignment between devices.
// Using this combination will still allow receiving samples, but there is no
// guarantee regarding phase/time alignment whatsoever.
//
/////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////
wire pps_ext_refclk; wire pps_ext_refclk;