One main idea is to keep the possibility to replace the Master FPGA with an LpGBT chip on the final design So we need to use:
A bonus will be to have a first version of the SEU mitigation but it's not compulsory at this stage.
It is responsible of all communication, synchronisation and data formatting
The underlying protocol is provided by the CERN IP
The message structure is the following:
The message structure is the following:
No documentation found on GBT-FPGA, expected special data with 32 bits encoded (see CIC doc)
The GBT firmware should handle BC0 and RESYNC commands:
It should be simple but the GBT interface is not trivial.
We need to implement the block getting the BC0 from the start of the window and propagating back a BUSY. One line is also dedicated for RESYNC (no firmware)
There is also a TRIGGER
line that should be connected to one TDC channel, but no firmware is needed
It's being implemented currently but not yet tested, 3 separated sockets mechanism
Each socket should have a block to decode incoming data to register and a block to encode outgoing buffer (packet structure)
Additional debug port , firmware can be inherited from SDHCAL (ILC) DIF boards. It's a low priority
Data collection from all TDCs is done via a switch IP , a first version is being implemented on FEBV1.
The EPort IP should be part of the GBT-FPGA firmware from CERN and should be interfaced to the the switch.
BUSY is generated by an OR of all TDC channel (almost Full FIFO) and should be propagated to Master FPGA
Pending block to the master FPGA one:
Two parts:
Ongoing work on those blocks for a new version of FEBV1
Standalone block that mitigate the RESET of the latch on PETIROC. Copy from FEBV1 firmware