- Control and Mask register
- 0x1 - TTCRX QPLL Link error (bit 0)
- 0x2 - Trigger errors from CTP (bit 1)
- 0x4 - Timeout BCNT reset (bit 2)
- 0x8 - Trigger errors from master trigger control FSM in router (bit 3)
- 0x10 - DAQ Link not ready (bit 4)
- 0x20 - Error optical link of HS (bit 5)
- 0x40 - Error optical connection (bit 6)
- 0x80..0x1000 - Error HS LinkRx 0 ... 5 (bits 7..12)
- 0x2000 - Timeout HS (bit 13)
- 0x4000 - Data error format (bit 14)
- 0x8000 - FastOr missing in data (bit 15)
- 0x10000 - Error longer busy (bit 16)
- 0x20000 - Error TTCFEEReset during router busy (bit 17)
- 0x40000 - High multiplicity (bit 18)
Control and Mask register
-
hAA: the error is decoded properly and with the correct priority
- hEE: the error is not decoded properly and its details are not used.
Inside the Router the errors are organized in order to have, for each class, a global definition (1 bit only) defined as an OR combination of all the errors that belong to the class.
A dedicated register has been implemented within the Router in order to store all the settings needed for the error handling. This register is completely decoupled from the Router operation and also from the Router reset signals, so that the resets do not have any effect on it. This ensures that no additional operations (i.e. new settings, etc) are needed after a reset of this register. The register address (internal displacement) is ‘hf0’, the register format is the following:
BIT NUMBER | MASK ERROR |
0 | Enable / disable error handling |
1 | TTCRX and QPLL link error |
2 | Trigger errors from TTC |
3 | Timeout Bunch Crossing reset error |
4 | Trigger errors from Router FSM |
5 | Errors from DAQ state machine |
6 | Optical link errors (RxReady & RxError) |
7 | RX error (half-stave optical link) |
8 | Error format (HS error format communication) |
9 | Error data transfer (half-stave error optical data transfer not coherent) |
10 | Error control int (command non properly recognized by the MCM) |
11 | Error event number (error in MCM event number) |
12 | HS_0 global error (idle, busy violation, linkRx fatal errors, etc.) |
13 | HS_1 global error (idle, busy violation, linkRx fatal errors, etc.) |
14 | HS_2 global error (idle, busy violation, linkRx fatal errors, etc.) |
15 | HS_3 global error (idle, busy violation, linkRx fatal errors, etc.) |
16 | HS_4 global error (idle, busy violation, linkRx fatal errors, etc.) |
17 | HS_5 global error (idle, busy violation, linkRx fatal errors, etc.) |
18 | Half-stave timeout errors during acquisition |
19 | Error data format (from Router data format check) |
20 | Error Fast-OR in data stream |
21 | Longer busy error |
22 | High multiplicity error |
23 .. 32 | Don’t care |
0x1 - TTCRX and QPLL link error (CDH error 355)
Defined in router_fpga_core.v
Check the status of the TTC optical link and the QPLL lock status (LEDs on the Router front panel).
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | TTC_QPLL_Link_Error |
- TTCRX_QPLL_Link_error 0000000001
- TTCRX_QPLL_Link_error, removed 0000000000
Detail 2 (32 bits): QPLL error counter
0x2 - Trigger errors from CTP (CDH error 357, SPDmood 19)
- invalid trigger pattern sent to the back-end electronics;
- L0-L1 delay not properly set;
- LTU not well configured;
-
TTCRX chip not well configured (as a consequence of a TTCInit command not sent to the chip).
- reset the TTCRX chip on all the Routers;
- send a ttcInit command from the LTU client;
-
send a ttcFEEReset command from the LTU client.
0 | 0 | 0 | 0 | L0_error | L1_error |
L1_message missing |
L2_message missing |
L1_message spurious |
L2_message spurious |
- L0_error 0000100000
- L1_error 0000010000
- L1_message_missing 0000001000
- L2_message_missing 0000000100
- L1_message_spurious 0000000010
- L2_message_spurious 0000000001
Detail 2 (32 bits): difference L1 - L2
0x4 - Timeout BCNT reset
Defined in TTC.v
- reset TTCRX chip on the Router;
- send TTCInit command from LTU client;
- send ttcFEEreset command from LTU client.
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Timeout_BCNT_reset |
- In timeout 0000000001
- Timeout removed 0000000000
Detail 2 (32 bits): NOT USED
0x8 - Trigger_errors from master trigger control FSM in router
Defined in router_fpga_core.v
- Router reset
- Link Rx reset
- DPI reset
0 | 0 | 0 | 0 | 0 | 0 | 0 |
L0_error_from_L0 control _FSM |
L1_error_from_L1 control _FSM |
L2_error_from_L2 control _FSM |
- L0_error_from_L0_control_FSM: 0000000100 (highest priority)
- L1_error_from_L1_control_FSM: 0000000010
- L2_error_from_L2_control_FSM: 0000000001 (lowest priority)
Detail 2 (32 bits): difference L1 – L2
0x10 - DAQ Link not ready
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | DAQ status |
- In timeout 0000000001
- Timeout removed 0000000000
Detail 2 (32 bits): NOT USED
0x20 - Error optical link of half-staves (HS_Optical_Link_Status)
Also during the data acquisition the error indicates is one half-stave switches off or has optical fiber problems.
Defined in RXLinkStatus.v
- disable the half-stave from the Router manual control OR
- switch ON the half-stave
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Error_Optical_Link |
- Error_Optical_Link present 0000000001
- Error_Optical_Link removed 0000000000
Detail 2 (12 bits): status of the G-Link, Serial and Clock connections
0x40 - Error optical connection
- errors in the Agilent component of the LinkRX connection;
- sequences CAV-DAV not coherent;
- First, Last, Clear bit events not coherent;
- undefined command decoded by the PILOT2003 deserializer;
- MCM event counter number not coherent.
0 | 0 | 0 | 0 | 0 | Error_eventnumber | Error_control | Error_data_trans | Error_format | Rx error |
- Error_eventnumber 0000010000 (highest priority)
- Error_control 0000001000
- Error_data_trans 0000000100
- Error_format 0000000010
- Rx_error 0000000001 (lowest priority)
Detail 2: error counter
NOTE:
Error_eventnumber = it must increase by 1 for each L1 received
Error_control = the MCM has decoded an unidentified command
Error_data_trans = sequence first-last words not coherent
Error_format = CAV-DAV sequences not correct
Rx_error: the link is inactive or the half-stave is momentarily unlocked
0x80 .. 0x1000 - Error_HS_LinkRx_0 ... 5 (CDH error 355, SPDmood 18)
It happens when the half-stave is not properly configured.
Defined in slm_check.v
- Router reset
- LinkRx reset
- DPI + Data Reset
- bit 9: linkrx_fatal_error 1000000000 (highest priority)
- bit 8: idle_violation 1100000000
- bit 7: busy_violation 1010000000
- bit 6: fifo_read_overflow_reg 1001000000 (pixel level)
- bit 5: fifo_write_overflow_reg 1000100000 (pixel level)
- bit 4: pixel_fifo_full_reg 1000010000 (pixel level)
- bit 3: event_fifo_read_overflow 1000001000 (event level)
- bit 2: event_fifo_write_overflow 1000000100 (event level)
- bit 1: event_desc_full_violation 1000000010 (event level)
- bit 0: linkrx_dpm_full 1000000001
Detail 2: NOT USED
NOTE:
Idle violation = L2y or L2n received without the corresponding L1
Busy violation = L1 trigger received with the busy signal asserted
0x2000 - Timeout HS
It normally occurs when the multi-event buffer is not properly set on the MCM.
Defined in slm_check.v
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | timeout_finished |
- timeout_finished present: 0000000001
- timeout_finished not present: 0000000000
Detail 2: NOT USED
0x4000 - Data error format
Defined in data_error_checking.v
- Router reset
- LinkRx reset
- DPI reset
- Bit 5: error_data_header_missing_flag: 0000100000
- Bit 4: error_wrong_chip_number_flag: 0000010000
- Bit 3: error_wrong_event_number_flag: 0000001000
- Bit 2: error_data_missing_flag: 0000000100
- Bit 1: error_data_trailer_missing_flag: 0000000010
- Bit 0: error_fill_word_missing_flag: 0000000001
Detail 1: event number [6..0]
Detail 2: chip number
0x8000 - FastOr missing in data
Defined in data_error_checking.v
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Error_FastOr_missing_in_data |
- Error_FastOr_missing_in_data present: 0000000001
- Error_FastOr_missing_in_data not present: 0000000000
Detail 2: NOT USED
NOTE:
The delay is 46 (??) with MCM stimuli and 83 at P2.
0x10000 - Error longer busy
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Error_Longer_Busy |
- Error longer busy present: 0000000001
- Error longer busy not present: 0000000000
Detail 2: L1 ID
0x20000 - TTCFEEReset during router busy
Defined in TTC.v
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Error_TTCFEEReset_Router_Busy |
- Error TTCFEEReset during router busy present: 0000000001
- Error TTCFEEReset during router busy not present: 0000000000
Detail 2: orbit number
0x40000 - High multiplicity
Defined in ErrorManager.v
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | High_multiplicity |
- High_multiplicity present: 0000000001
- High_multiplicity not present: 0000000000
Detail 1: 6 bits to indicate the HS with high multiplicity event
Detail 2: orbit number