Fix Rx termination scheme for Spartan PHY - some SFPs not working with SPEC
Peter reports:
my SFP with tunable laser didn't want to combine with the SPEC. It took
me quite some time to find out that the particular SFP had a smaller
amplitude on its Rx port: 920 mVpp instead of 1,3Vpp usual for other
SFPs. I also found that the Rx termination scheme of the Spartan PHY is
configured in a strange way (I'm to blame, a few years ago), not
following any of the 4 modes suggested in UG386. This dates back to 2010
when this was the default setting used by the Xilinx Core Generator
(version v1.4; we are currently at v1.11).
So for whiterabbitgtp_wrapper_tile_spartan6.vhd
PHY mode was:
AC_CAP_DIS_0 => (true),
RCV_TERM_GND_0 => (false),
RCV_TERM_VTTRX_0 => (true),
Now try PHY mode 2 (see GTP Transceivers UG386) basically terminating
with 3/4 VTTRX instead of using VTTRX:
AC_CAP_DIS_0 => (true),
RCV_TERM_GND_0 => (false),
RCV_TERM_VTTRX_0 => (false),
Using the VTTRX termination, Rx input thresholds are apparently passed when you have large amplitude SFPs. With smaller amplitude you don't pass the thresholds since with the VTTRX termination you are at the wrong common mode level (and you need large amplitudes!). So with the 3/4 VTTRX termination setting my smaller amplitude tunable SFP is working fine as well! Also verified other frequently used SFPs of course.