File registers.h
FileList > midas_fe > registers.h
Go to the source code of this file
Definitions for MUDAQ register and memory layout. More...
#include "registers/a10_counters.h"#include "registers/a10_pcie_registers.h"#include "registers/feb_sc_registers.h"#include "registers/lvds_registers.h"#include "registers/mupix_registers.h"#include "registers/mutrig_registers.h"#include "registers/sorter_registers.h"
Macros
| Type | Name |
|---|---|
| define | MUDAQ_BLOCK_LEN (1 << MUDAQ\_BLOCK\_ORDER) |
| define | MUDAQ_BLOCK_MASK (MUDAQ\_BLOCK\_LEN - 1) |
| define | MUDAQ_BLOCK_ORDER 9 |
| define | MUDAQ_BUFFER_CTRL_SIZE (4 \* 4) |
| define | MUDAQ_DMABUF_CTRL_INDEX 4 |
| define | MUDAQ_DMABUF_CTRL_WORDS 4 |
| define | MUDAQ_DMABUF_DATA_LEN (1 << MUDAQ\_DMABUF\_DATA\_ORDER) |
| define | MUDAQ_DMABUF_DATA_MASK (MUDAQ\_DMABUF\_DATA\_LEN - 1) |
| define | MUDAQ_DMABUF_DATA_ORDER 25 |
| define | MUDAQ_DMABUF_DATA_ORDER_WORDS (MUDAQ\_DMABUF\_DATA\_ORDER - 2) |
| define | MUDAQ_DMABUF_DATA_WORDS (1 << MUDAQ\_DMABUF\_DATA\_ORDER\_WORDS) |
| define | MUDAQ_DMABUF_DATA_WORDS_MASK (MUDAQ\_DMABUF\_DATA\_WORDS - 1) |
| define | MUDAQ_MEM_RO_INDEX 3 |
| define | MUDAQ_MEM_RO_LEN (1 << MUDAQ\_MEM\_RO\_ORDER) |
| define | MUDAQ_MEM_RO_MASK (MUDAQ\_MEM\_RO\_LEN - 1) |
| define | MUDAQ_MEM_RO_ORDER 16 |
| define | MUDAQ_MEM_RW_INDEX 2 |
| define | MUDAQ_MEM_RW_LEN (1 << MUDAQ\_MEM\_RW\_ORDER) |
| define | MUDAQ_MEM_RW_MASK (MUDAQ\_MEM\_RO\_LEN - 1) |
| define | MUDAQ_MEM_RW_ORDER 16 |
| define | MUDAQ_REGS_RO_INDEX 1 |
| define | MUDAQ_REGS_RO_LEN 256 |
| define | MUDAQ_REGS_RW_INDEX 0 |
| define | MUDAQ_REGS_RW_LEN 256 |
| define | N_BUFFERS (MUDAQ\_DMABUF\_DATA\_LEN / (PAGES\_PER\_INTERRUPT \* PAGE\_SIZE)) |
| define | N_PAGES (MUDAQ\_DMABUF\_DATA\_LEN / PAGE\_SIZE) |
| define | PAGES_PER_INTERRUPT 64 |
Detailed Description
This header defines constants representing the register indices, lengths, and memory map for MUDAQ hardware used in the MUPIX DAQ system. These constants are essential for interfacing with the FPGA registers, control buffers, and DMA memory regions.
Categories of definitions include: * Register Banks: Read/Write and Read-Only register indices and lengths. * Device Memory: Indexing, size orders, and masks for address range control. * DMA Buffers: Constants for data and control buffer sizes and alignments. * Block Access: Sizes and masks for FPGA's internal data blocks.
These definitions ensure correct addressing and bounds checking in low-level hardware access routines. All sizes are in terms of uint32_t words unless otherwise noted.
Note:
All memory access is assumed to be 32-bit aligned.
Macro Definition Documentation
define MUDAQ_BLOCK_LEN
#define MUDAQ_BLOCK_LEN `(1 << MUDAQ_BLOCK_ORDER)`
define MUDAQ_BLOCK_MASK
#define MUDAQ_BLOCK_MASK `(MUDAQ_BLOCK_LEN - 1)`
define MUDAQ_BLOCK_ORDER
#define MUDAQ_BLOCK_ORDER `9`
define MUDAQ_BUFFER_CTRL_SIZE
#define MUDAQ_BUFFER_CTRL_SIZE `(4 * 4)`
define MUDAQ_DMABUF_CTRL_INDEX
#define MUDAQ_DMABUF_CTRL_INDEX `4`
define MUDAQ_DMABUF_CTRL_WORDS
#define MUDAQ_DMABUF_CTRL_WORDS `4`
define MUDAQ_DMABUF_DATA_LEN
#define MUDAQ_DMABUF_DATA_LEN `(1 << MUDAQ_DMABUF_DATA_ORDER)`
define MUDAQ_DMABUF_DATA_MASK
#define MUDAQ_DMABUF_DATA_MASK `(MUDAQ_DMABUF_DATA_LEN - 1)`
define MUDAQ_DMABUF_DATA_ORDER
#define MUDAQ_DMABUF_DATA_ORDER `25`
define MUDAQ_DMABUF_DATA_ORDER_WORDS
#define MUDAQ_DMABUF_DATA_ORDER_WORDS `(MUDAQ_DMABUF_DATA_ORDER - 2)`
define MUDAQ_DMABUF_DATA_WORDS
#define MUDAQ_DMABUF_DATA_WORDS `(1 << MUDAQ_DMABUF_DATA_ORDER_WORDS)`
define MUDAQ_DMABUF_DATA_WORDS_MASK
#define MUDAQ_DMABUF_DATA_WORDS_MASK `(MUDAQ_DMABUF_DATA_WORDS - 1)`
define MUDAQ_MEM_RO_INDEX
#define MUDAQ_MEM_RO_INDEX `3`
define MUDAQ_MEM_RO_LEN
#define MUDAQ_MEM_RO_LEN `(1 << MUDAQ_MEM_RO_ORDER)`
define MUDAQ_MEM_RO_MASK
#define MUDAQ_MEM_RO_MASK `(MUDAQ_MEM_RO_LEN - 1)`
define MUDAQ_MEM_RO_ORDER
#define MUDAQ_MEM_RO_ORDER `16`
define MUDAQ_MEM_RW_INDEX
#define MUDAQ_MEM_RW_INDEX `2`
define MUDAQ_MEM_RW_LEN
#define MUDAQ_MEM_RW_LEN `(1 << MUDAQ_MEM_RW_ORDER)`
define MUDAQ_MEM_RW_MASK
#define MUDAQ_MEM_RW_MASK `(MUDAQ_MEM_RO_LEN - 1)`
define MUDAQ_MEM_RW_ORDER
#define MUDAQ_MEM_RW_ORDER `16`
define MUDAQ_REGS_RO_INDEX
#define MUDAQ_REGS_RO_INDEX `1`
define MUDAQ_REGS_RO_LEN
#define MUDAQ_REGS_RO_LEN `256`
define MUDAQ_REGS_RW_INDEX
#define MUDAQ_REGS_RW_INDEX `0`
define MUDAQ_REGS_RW_LEN
#define MUDAQ_REGS_RW_LEN `256`
define N_BUFFERS
#define N_BUFFERS `(MUDAQ_DMABUF_DATA_LEN / (PAGES_PER_INTERRUPT * PAGE_SIZE))`
define N_PAGES
#define N_PAGES `(MUDAQ_DMABUF_DATA_LEN / PAGE_SIZE)`
define PAGES_PER_INTERRUPT
#define PAGES_PER_INTERRUPT `64`
The documentation for this class was generated from the following file midas_fe/registers.h