MVD DCIM output packet format
The DCIM sends out packets of 16 bit words. The input data from the MCM's comes as 10 bits + a parity bit for each word -- for a total of 11 bits. The DCIM strips off the parity bit from the input values and saves only the vertical partity bit and the first 7 user words -- which point to the locations of ADC values with parity errors. So, you should never see an ADC value above 3FF (hex).
With the correlator on, our typical running mode, there are 256 ADC values in each packet. With the correlator off (aka raw mode), there are 512 ADC values per packet -- first 256 pre-samples followed by 256 post-samples.
Data word(s) correlated mode | Data word(s) raw mode | contents | expected range of hex values
1
| 1
| all 1's
| FFFF
| 2
| 2
| DetID
| 2
| 3
| 3
| level-1 trigger
| 1,2,... (16 bit word)
| 4
| 4
| ModAdd
| 3E hex (fixed by jumpers on DCIM)
| 5
| 5
| FlagWord
| 0
| 6
| 6
| BeamCounter
| any 8 bit value is possible
| 7
| 7
| AMUCells
| NNMM where NN=MM+2 (hex)
| 8-263
| 8-519
| ADC values
| between 0 and 3FF (10 bits)
| 264
| 520
| User word1
| 0, if non-zero, location of 1st parity error
| ...
| ...
| ...
| ...
| 270
| 526
| User word7
| 0, if non-zero, location of 7th parity error
| 271
| 527
| User word8
| 400 or 4400
| 272
| 528
| Vert.Parity
| parity word
| 273
| 529
| all zero
| 0
| |
F1 = bit 1 = 0 means correlator on (short packet)
F1 = bit 1 = 0 means correlator off = raw mode (long packet)
F2-F15 are always zero