Skip to content

Latest commit

 

History

History
326 lines (281 loc) · 35.2 KB

rb_address_table.org

File metadata and controls

326 lines (281 loc) · 35.2 KB

Module DRS adr = 0x0

Implements various control and monitoring functions of the DRS Logic

DRS.CHIP

Registers for configuring the DRS ASIC Directly

NodeAdrAdr8BitsPermDefDescription
DMODE0x00x01rw0x1set 1 = continuous domino, 0=single shot
STANDBY_MODE0x00x02rw0x0set 1 = shutdown drs
TRANSPARENT_MODE0x00x03rw0x0set 1 = transparent mode
DRS_PLL_LOCK0x00x04rDRS PLL Locked
CHANNEL_CONFIG0x00x0[31:24]rw0xFFWrite Shift Register Configuration
# of chn - # of cells per ch - bit pattern
8 - 1024 - 11111111b
4 - 2048 - 01010101b
2 - 4096 - 00010001b
1 - 8192 - 00000001b
DTAP_FREQ0x10x4[15:0]rFrequency of DTAP in units of 100Hz
CLK_IDELAY0x20x8[4:0]rw0xFDRS CLK IDELAY Setting 0-31 in 78 ps increments
CYLON_MODE0x30xc0rw0x01 for cylon mode
START_TIMER0x30xc[11:4]rw0x69Number of clock cycles to delay before allowing triggers.
LOSS_OF_LOCK0x40x100rRaw reading of LOL signal
LOSS_OF_LOCK_STABLE0x40x101rLoss of lock stable over the past ~second

DRS.READOUT

Registers for configuring the readout state machine

NodeAdrAdr8BitsPermDefDescription
ROI_MODE0x100x400rw0x1Set to 1 to enable Region of Interest Readout
BUSY0x100x401rDRS is busy
ADC_LATENCY0x100x40[9:4]rw0x9Latency from first sr clock to when ADC data should be valid
SAMPLE_COUNT0x100x40[21:12]rw0x3FFNumber of samples to read out (0 to 1023)
EN_SPIKE_REMOVAL0x100x4022rw0x1set 1 to enable spike removal
READOUT_MASK0x110x44[8:0]rw0x1FF8 bit mask, set a bit to 1 to enable readout of that channel. 9th is auto-read if any channel is enabled and AUTO_9TH_CHANNEL set to 1
AUTO_9TH_CHANNEL0x110x449rw0x1Set to 1 to auto read the 9th channel
START0x120x480wPulseWrite 1 to take the state machine out of idle mode
REINIT0x130x4c0wPulseWrite 1 to reinitialize DRS state machine (restores to idle state)
CONFIGURE0x140x500wPulseWrite 1 to configure the DRS. Should be done before data taking
DRS_RESET0x150x540wPulseWrite 1 to completely reset the DRS state machine logic
DAQ_RESET0x160x580wPulseWrite 1 to completely reset the DAQ state machine logic
DMA_RESET0x170x5c0wPulseWrite 1 to completely reset the DMA state machine logic
WAIT_VDD_CLKS0x180x60[15:0]rw0x14DNumber of ADC clocks to wait before reading out the drs, allowing vdd to stabilize; default=0x14d=10us
DRS_DIAGNOSTIC_MODE0x190x640rw0x01 will make the DRS read out the cell ID instead of ADC data
POSNEG0x1a0x680rw0x01 to sample on positive edge, 0 on negative
SROUT_POSNEG0x1a0x681rw0x01 to sample on positive edge, 0 on negative
SROUT_LATENCY0x1a0x68[6:4]rw0x2Latency of the SROUT readout
DMA_CLEAR0x1b0x6c0wPulseWrite 1 to clear the DMA memory (write zeroes)
SOFT_RESET0x1c0x700wPulseWrite 1 to soft reset the readout buffers.
SOFT_RESET_DRS_EN0x1d0x740rw0x0Soft reset DRS.
SOFT_RESET_DAQ_EN0x1d0x741rw0x0Soft reset DAQ.
SOFT_RESET_DMA_EN0x1d0x742rw0x1Soft reset DMA.
SOFT_RESET_PTR_EN0x1d0x743rw0x1Soft reset occupancy pointer.
SOFT_RESET_BUF_EN0x1d0x745rw0x1Soft reset buffers.
SOFT_RESET_WAIT_DRS0x1d0x748rw0x1Wait for DRS to idle.
SOFT_RESET_WAIT_DAQ0x1d0x749rw0x1Wait for DAQ to idle.
SOFT_RESET_WAIT_DMA0x1d0x7410rw0x1Wait for DMA to idle.
SOFT_RESET_DONE0x1d0x7415rSoft reset is finished.
SOFT_RESET_WATCHDOG_EN0x1e0x7811rw0x1Enable a watchdog timer for the soft reset module.
DRS_DEADTIME0x1e0x78[15:0]rMeasured last deadtime of the DRS in clock cycles

DRS.FPGA.DNA

FPGA Device DNA

NodeAdrAdr8BitsPermDefDescription
DNA_LSBS0x200x80[31:0]rDevice DNA [31:0]
DNA_MSBS0x210x84[24:0]rDevice DNA [56:32]

DRS.FPGA.TIMESTAMP

Timestamp

NodeAdrAdr8BitsPermDefDescription
TIMESTAMP_LSBS0x240x90[31:0]rDevice TIMESTAMP [31:0]
TIMESTAMP_MSBS0x250x94[15:0]rDevice TIMESTAMP [47:32]

DRS.FPGA.XADC

Zynq XADC

NodeAdrAdr8BitsPermDefDescription
CALIBRATION0x260x98[11:0]rXADC Calibration
VCCPINT0x260x98[27:16]rXADC vccpint
VCCPAUX0x270x9c[11:0]rXADC Calibration
VCCODDR0x270x9c[27:16]rXADC vccoddr
TEMP0x280xa0[11:0]rXADC Temperature
VCCINT0x280xa0[27:16]rXADC vccint
VCCAUX0x290xa4[11:0]rXADC VCCAUX
VCCBRAM0x290xa4[27:16]rXADC vccbram

DRS.FPGA

FPGA Status

NodeAdrAdr8BitsPermDefDescription
BOARD_ID0x2a0xa8[7:0]rw0x0Board ID Number
DRS_TEMP0x2b0xac[15:0]rw0x3039Copy of the I2C DRS temperature reading
RAT_HOUSEKEEPING0x2c0xb0[31:0]rw0x032 bit RAT housekeeping data. Meaning is software defined.

DRS.DAQ

DAQ

NodeAdrAdr8BitsPermDefDescription
INJECT_DEBUG_PACKET0x300xc00wPulseInjects a fixed format debug packet into the DAQ
DAQ_FRAGMENT_EN0x310xc40rw0x01 to enable daq fragments (header only packets) when the DRS is busy
DAQ_BUSY0x310xc41r1 = DAQ is still busy reading out

DRS.TRIGGER

Trigger

NodeAdrAdr8BitsPermDefDescription
FORCE_TRIGGER0x400x1000wPulseGenerates a trigger
EXT_TRIGGER_EN0x410x1040rw0x0Set to 1 to enable the external trigger
EXT_TRIGGER_ACTIVE_HI0x410x1041rw0x1Set to 1 for active high external trigger
MT_TRIGGER_IS_LEVEL0x410x1042rw0x0Set to 1 for mt level trigger on v2.4 boards
MT_LINK_ID0x410x104[8:3]rMT Link ID Received from MTB
CNT_MT_PRBS_ERRS0x430x10c[31:0]rNumber of PRBS errors on the MT line
MT_PRBS_ERR_RESET0x440x1100wPulseWrite 1 to reset the MT PRBS Error Counter
MT_TRIGGER_MODE0x450x1140rw0x01 to use the MT as the source of the trigger
CNT_MT_CRC_ERR0x460x118[15:0]rNumber of MT CRC errors
TRIGGER_ENABLE0x470x11c0rw0x0Set to 0 to stop all triggers. 1 to enable triggers.
MT_EVENT_CNT0x480x120[31:0]rRecevied event counter
MT_TRIGGER_RATE0x490x124[31:0]rRate of triggers received from the MTB in Hz

DRS.COUNTERS

Counters

NodeAdrAdr8BitsPermDefDescription
CNT_SEM_CORRECTION0x500x140[15:0]rNumber of Single Event Errors corrected by the scrubber
CNT_SEM_UNCORRECTABLE0x510x144[19:16]rNumber of Critical Single Event Errors (uncorrectable by scrubber)
CNT_READOUTS_COMPLETED0x520x148[31:0]rNumber of readouts completed since reset
CNT_DMA_READOUTS_COMPLETED0x530x14c[31:0]rNumber of readouts completed since reset
CNT_LOST_EVENT0x540x150[31:16]rNumber of trigger lost due to deadtime
CNT_EVENT0x550x154[31:0]rNumber of triggers received
TRIGGER_RATE0x560x158[31:0]rRate of triggers in Hz
LOST_TRIGGER_RATE0x570x15c[31:0]rRate of lost triggers in Hz
CNT_RESET0x580x1600wPulseReset the counters

DRS

Implements various control and monitoring functions of the DRS Logic

NodeAdrAdr8BitsPermDefDescription
TRIG_GEN_RATE0x590x164[31:0]rw0x0Rate of generated triggers f_trig = (1/clk_period) * rate/0xffffffff

DRS.HOG

HOG Parameters

NodeAdrAdr8BitsPermDefDescription
GLOBAL_DATE0x600x180[31:0]rHOG Global Date
GLOBAL_TIME0x610x184[31:0]rHOG Global Time
GLOBAL_VER0x620x188[31:0]rHOG Global Version
GLOBAL_SHA0x630x18c[31:0]rHOG Global SHA
REPO_SHA0x640x190[31:0]rHOG Repo SHA
TOP_VER0x650x194[31:0]rHOG Repo Version
HOG_SHA0x660x198[31:0]rHOG SHA
HOG_VER0x670x19c[31:0]rHOG Version

DRS

Implements various control and monitoring functions of the DRS Logic

NodeAdrAdr8BitsPermDefDescription
CNT_SNAP0x800x2000wPulse1 to freeze counters for readout
CNT_SNAP_DIS0x800x2001w0x11 disables counter snapping; values continuously update
CNT_START_READOUT0x810x204[31:0]rCount the number of times the DRS readout has started
CNT_EVENT_WR_EN0x820x208[31:0]rCount the number of times the event queue has been written to
AUTO_PURGE_MODE0x830x20c0rw0x01 for the DAQ to automatically purge any remaining data from the DRS fifo after readout

DRS.DMA

DMA and ram buffer occupancy

NodeAdrAdr8BitsPermDefDescription
RAM_A_OCC_RST0x1000x4000wPulseSets RAM buffer a counter to 0
RAM_B_OCC_RST0x1010x4040wPulseSets RAM buffer b counter to 0
RAM_A_OCCUPANCY0x1020x408[31:0]rRAM buffer a occupancy
RAM_B_OCCUPANCY0x1030x40c[31:0]rRAM buffer b occupancy
DMA_POINTER0x1040x410[31:0]rDMA controller pointer
TOGGLE_RAM0x1050x4140wPulseWrite 1 to switch the dma buffer to the other half