Register maps
In this section the control and status register definitions of each gateware design in the dogma system are listed:
DOGMA_HUB1_DCM
The Dogma Controller Module is the central controller of the Dogma daq system. It distributes the 100MHz Dogma system clock and the trigger signals to all connected dogs (can also be subsequent hubs for higher fanout) and collects daq control signals (raw triggers from front-ends, trigger flow control). It also hosts the central trigger system (trigger priorisation, dead-time).
ADDR |
Name |
Type |
Function |
---|---|---|---|
0x00 |
BASIC_CTRL0 |
s/c |
[0] general reset
[4] FPGA reload from flash
[8] clear statistics counters
[28] inject soft trigger to DCM
|
0x10 |
UID1 |
r/o |
HW_UID[63:32] |
0x11 |
UID0 |
r/o |
HW_UID[31:0] |
0x12 |
HW_INFO |
r/o |
[31:16] hardware module identifier
[15:0] gateware version identifier
|
0x13 |
COMPILE_TIME |
r/o |
32 bit unix timestamp from gateware compilation |
0x14 |
TEMPERATURE |
r/o |
[23:16] die temperature
[11:0] temperature sensor value
|
0x18 |
TRG_ACC_CTR |
r/o |
counts up when trigger is accepted in DCM
[23:0] trigger number
|
0x19 |
TRG_REJ_CTR |
r/o |
DCM rejected physics trigger count (dead time) |
0x1a |
PULSER_TRG_REJ |
r/o |
DCM rejected PULSER trigger count (dead time) |
0x1b |
TRG_REJ_OVW |
r/o |
counter of incoming TRG_REJ signals from connected dogs |
0x1c |
DL_LINK_ESTABL |
r/o |
[29:0] Link established flags of downlinks to connected dogs |
0x20 |
ADDR |
r/w |
[23:0] 24 bit unique dog address
(default value 0x000000 is ignored)
|
0x21 |
MC_ADDR |
r/w |
[23:0] 24 bit dog multicast address (default 0x00d810) |
0x22 |
BIT_ADDR |
r/w |
[23:0] 24 bit dog bit address |
0x23 |
RESERVED_GbE0 |
r/w |
|
0x24 |
RESERVED_GbE1 |
r/w |
|
0x25 |
RESERVED_GbE2 |
r/w |
|
0x26 |
DL_TRG_IN_EN |
r/w |
enable incoming raw trigger signals from dogma downlinks
for injection to trigger system -> 1 bit per downlink
|
0x27 |
DEAD_TIME |
r/w |
set fixed trigger system dead time after trigger acceptance
t_d = VAL * 10ns
|
0x28 |
PULSER_EN |
r/w |
[0] internal trigger pulse generator enable |
0x29 |
PULSER_PERIOD |
r/w |
[27:0] internal trigger pulse generator period
T_PULSER = VAL * 10ns
|
0x2a |
PULSER_TRG_TYP |
r/w |
[3:0] trigger type to be sent when trigger from PULSER is accepted
0x1 = physics trigger, 0xd = calibration trigger
|
0x2b |
MISC_CTRL |
r/w |
[0] disable LEDs |
0x2c |
DL_DISABLE |
r/w |
Seperately disable any downlink |
0x2d |
EXT_TRG_IN_EN |
r/w |
[0] enable trigger input on ADF J_LVDS pin pair PP0
[1] enable trigger input on ADR J_LVDS pin pair PP0
|
0x40 |
DL0_TRG_IN_CTR |
r/o |
Counter of incoming trigger requests from connected dog |
0x60 |
DL0_TRG_REJ_CTR |
r/o |
Counter of incoming TRG_REJ signals from connected dog |
DIRICH5d2_DEP
DIRICH5d2 Dogma End Point design with 32 channel TDC.
ADDR |
Name |
Type |
Function |
---|---|---|---|
0x00 |
BASIC_CTRL0 |
s/c |
[0] reset
[4] reload from flash (reboot)
[8] clear statistics counters
[9] reset dogma clock domain
|
0x10 |
UID1 |
r/o |
HW_UID[63:32] |
0x11 |
UID0 |
r/o |
HW_UID[31:0] |
0x12 |
HW_INFO |
r/o |
[31:16] hardware module identifier
[15:0] gateware version identifier
|
0x13 |
COMPILE_TIME |
r/o |
32 bit unix timestamp from gateware compilation |
0x14 |
TEMPERATURE |
r/o |
[23:16] die temperature
[11:0] temperature sensor value
|
0x18 |
TRG_ACC_CTR |
r/o |
counts up when any trigger arrives on doglink |
0x19 |
PHYS_TRG_CTR |
r/o |
count of accepted physics triggers |
0x1a |
CAL_TRG_CTR |
r/o |
count of accepted calibration triggers |
0x1b |
TRG_REJ_CTR |
r/o |
count of rejected triggers (readout not finished) |
0x1c |
DAQ_DEBUG |
r/o |
[19:16] daq fsm state
[11:0] daq payload fifo word count
|
0x1d |
DOGLINK_STATUS |
r/o |
[29] doglink established
[28] recovered rxclk stable
[23:16] doglink init counter
[15:8] divclk align counter
[7:0] clock recovery toggle FF reset counter
|
0x1e |
TRG_REQ_OUT_CTR |
r/o |
Counter for trigger requests generated from input signals |
0x20 |
ADDR |
r/w |
[23:0] 24 bit unique dog address
(default value 0x000000 is ignored)
|
0x21 |
MC_ADDR |
r/w |
[23:0] 24 bit dog multicast address (default 0x00d5d2) |
0x22 |
BIT_ADDR |
r/w |
[23:0] 24 bit dog bit address |
0x23 |
RESERVED_GbE0 |
r/w |
|
0x24 |
RESERVED_GbE1 |
r/w |
|
0x25 |
RESERVED_GbE2 |
r/w |
|
0x26 |
TRG_GEN_CH_EN |
r/w |
input enable map for trigger generation
(OR of all enabled inputs)
-> 1 bit per signal input
|
0x27 |
TRG_GEN_CH_INV |
r/w |
input invert map for trigger generation
-> 1 bit per signal input
|
0x28 |
TRG_GEN_MON_CTRL |
r/w |
0x0 = monitor asynchronous OR of enabled channels
0x1 = monitor synchronous captured trigger signal
|
0x29 |
DAQ_CTRL |
r/w |
[31] trigger handshake enable (TRG_ACK / TRG_RLS)
[8] enable event builder server/port load sharing
[5:4] number of LSBs from trigger number used to select target server
(allowed values are 0,1,2,3 -> 1/2/4/8 servers)
[2:0] number of LSBs from trigger number (after bits used for server)
used to select target port (allowed values are 0,1,2,3,4 -> 1/2/4/8/16
ports, target port = set port number + i)
|
0x2a |
MISC_CTRL |
r/w |
[8] disable_leds
[3:0] test_line_sel: 0x0 = monitor trigger in, 0x1 = trg_gen_mon_out
|
0x40 |
INP_HIT_CTR_CH0 |
r/o |
[31] input state bit
[30:0] TDC hit counter
|
0x80 |
TDC_CTRL |
r/w |
[8] TDC reset counters
[5] TDC light_mode_en
|
0x81 |
TDC_TRG_WIN |
r/w |
[31] trigger window enable
[26:16] post trigger window
[10:0] pre trigger window
|
0x82 |
TDC_CH_EN |
r/w |
TDC input enable (channels 1-32) |
0x83 |
TDC_CH_INV |
r/w |
TDC input invert (channels 1-32) |
0x84 |
TDC_HIT_FIFO_TH |
r/w |
[6:0] TDC hit buffer full threshold |
0x85 |
DAQ_EVB_PORT |
r/w |
[15:0] DAQ event builder UDP port |
0x86 |
DAQ_EVB0_MAC1 |
r/w |
[31:0] DAQ event builder 0 MAC[63:32] |
0x87 |
DAQ_EVB0_MAC0 |
r/w |
[31:0] DAQ event builder 0 MAC[31:0] |
0x88 |
DAQ_EVB0_IP |
r/w |
[31:0] DAQ event builder 0 IP[31:0] |
0x89 |
DAQ_EVB1_MAC1 |
r/w |
[31:0] DAQ event builder 1 MAC[63:32] |
0x8a |
DAQ_EVB1_MAC0 |
r/w |
[31:0] DAQ event builder 1 MAC[31:0] |
0x8b |
DAQ_EVB1_IP |
r/w |
[31:0] DAQ event builder 1 IP[31:0] |
0x8c |
DAQ_EVB2_MAC1 |
r/w |
[31:0] DAQ event builder 2 MAC[63:32] |
0x8d |
DAQ_EVB2_MAC0 |
r/w |
[31:0] DAQ event builder 2 MAC[31:0] |
0x8e |
DAQ_EVB2_IP |
r/w |
[31:0] DAQ event builder 2 IP[31:0] |
0x8f |
DAQ_EVB3_MAC1 |
r/w |
[31:0] DAQ event builder 3 MAC[63:32] |
0x90 |
DAQ_EVB3_MAC0 |
r/w |
[31:0] DAQ event builder 3 MAC[31:0] |
0x91 |
DAQ_EVB3_IP |
r/w |
[31:0] DAQ event builder 3 IP[31:0] |
0x92 |
DAQ_EVB4_MAC1 |
r/w |
[31:0] DAQ event builder 4 MAC[63:32] |
0x93 |
DAQ_EVB4_MAC0 |
r/w |
[31:0] DAQ event builder 4 MAC[31:0] |
0x94 |
DAQ_EVB4_IP |
r/w |
[31:0] DAQ event builder 4 IP[31:0] |
0x95 |
DAQ_EVB5_MAC1 |
r/w |
[31:0] DAQ event builder 5 MAC[63:32] |
0x96 |
DAQ_EVB5_MAC0 |
r/w |
[31:0] DAQ event builder 5 MAC[31:0] |
0x97 |
DAQ_EVB5_IP |
r/w |
[31:0] DAQ event builder 5 IP[31:0] |
0x98 |
DAQ_EVB6_MAC1 |
r/w |
[31:0] DAQ event builder 6 MAC[63:32] |
0x99 |
DAQ_EVB6_MAC0 |
r/w |
[31:0] DAQ event builder 6 MAC[31:0] |
0x9a |
DAQ_EVB6_IP |
r/w |
[31:0] DAQ event builder 6 IP[31:0] |
0x9b |
DAQ_EVB7_MAC1 |
r/w |
[31:0] DAQ event builder 7 MAC[63:32] |
0x9c |
DAQ_EVB7_MAC0 |
r/w |
[31:0] DAQ event builder 7 MAC[31:0] |
0x9d |
DAQ_EVB7_IP |
r/w |
[31:0] DAQ event builder 7 IP[31:0] |