Implement 10 GbE local readout for the CTP7
[Based on top of !131 (merged).]
This MR updates the local readout from 1 GbE to 10 GbE for the GEM CTP7. The main complication comes from the fact that the event building is slower than the spy link. Therefore, the Ethernet packets must be built in advance and buffered to be sent on the link.
The data format is preserved despite basing the spy data path on 64 bits words instead of 16 bits words. This is required to maintain compatibility with the 1 GbE readout (all flavors but the ones based on the GEM CTP7).
In order to port the other GEM boards to the 10 GbE local readout, it should be enough to create an UltraScale MGT configuration and enable the appropriate build options.
Once the 1 GbE will be removed, the following improvements are worth being implemented:
- Delete the (1) GbE test from the GEM test module (such a feature is replaced by the internal MAC-PCS packet generator).
- Delete the spy RX counters in the OptoHybrid registers (should it even be under the OptoHybrid registers?)
- Move the new local readout modules under the
gem_amc
module (if used by a single SLR) or under the top-level module (if used by multiple SLR).- That should match the behavior of the AMC13/DAQLink and S-link Rocket path. The spy FIFO is meant to remain in the DAQ module while the send operations are done at a higher level.