# 附录A. IDS寄存器索引表

本附录提供读出子系统通道配置寄存器的地址索引（IDS, Index Data Sheet），
供软件编程时通过基地址 + 偏移地址访问具体寄存器。

以下所有表格数据来源于 IDS JSON 数据文件（对应2509批次读出芯片），
由构建时自动渲染生成，确保与硬件设计数据库保持同步。

## A.1. 地址空间映射

读出子系统的配置访问采用四级寻址层级，从网络到寄存器的完整链路如下：

1. **网络地址（IP）** — 定位机箱。软件通过指定目标机箱的 IP 地址来确定与哪个机箱内的板卡通信。一个机箱内可安装多块 PXIe 板卡，IP 地址是整个通信链路的起点。

2. **扩展地址（Exaddr）** — 定位槽位和总线。[7:3]对应槽位号，exaddr[2:0]对应总线号。读出基带板允许安装在4或者15槽，混频和泵浦功能单元位于基带板相邻槽位（分离形态下混频板和泵浦板分别在基带板左右两侧；合并形态下混频/泵浦合板位于基带板右侧槽位）。软件仅需指定基带板槽位号即可定位全部功能单元。

3. **片选地址（Cid）** — 定位总线上芯片ID。采用5比特编码最大支持32颗芯片挂载到同一个spi总线上，在当前的实现中，直接使用总线编址通道号，每个芯片独占一个总线，因此Cid固定为0。

4. **配置基地址（Base）** — 定位具体配置项。采用25比特编码，其中高5比特用来定位不同模块，配合20比特的偏移地址用来具体指定配置项目。


芯片控制存在MCU视角和配置视角，区别是基地址不同。从MCU操控视角来看，AWG和DAQ模块寄存器统一映射在对应 MCU 的 **`0x200000`** 地址空间。从上位机配置视角看，基地址和偏移地址定义如下表所示：

### A.1.1. ACQ 通道模块基地址

对应 `msmt_acq` 通道类型（采集通道），共 4 个通道（ch0~ch3），
每个通道包含 5 个功能模块：

@import "../../rbpu_datasheet/data/ids.json" using render_ids_acq_map

### A.1.2. EXC 通道模块基地址

对应 `msmt_exc` 通道类型（激励通道），共 4 个通道（ch0~ch3），
每个通道包含 5 个功能模块：

@import "../../rbpu_datasheet/data/ids.json" using render_ids_exc_map

## A.2. DAQ_REG — ACQ 寄存器

ACQ 通道配置寄存器，对应采集通道的 DAQ 模块。寄存器基地址参见
[A.1.1 节](#a11-acq) 中 `DAQ_REG` 行。
各寄存器通过偏移地址在模块内部索引，如下表所示。

@import "../../rbpu_datasheet/data/ids.json" using render_ids_daq_reg

## A.3. AWG_REG — EXC-Pump 寄存器

EXC-Pump 通道配置寄存器，对应激励通道的 AWG 模块。寄存器基地址参见
[A.1.2 节](#a12-exc) 中 `AWG_REG` 行。
各寄存器通过偏移地址在模块内部索引，如下表所示。

@import "../../rbpu_datasheet/data/ids.json" using render_ids_awg_reg

## A.4. 寄存器访问说明

- 所有寄存器支持 **SPI** 和 **MCU** 双端口访问
- 静态参数建议通过 SPI 配置后保持不变，动态参数通过 MCU 实时更新
- 寄存器位宽均为 **32 位**（不足 32 位的高位保留）
- 返回数据统一采用 **大端字节序**
- MCU 以固定 **3 个时钟周期/指令** 的速率执行
- 权限缩写：`RW` = 读写，`RO` = 只读，`WC` = 只写（写清除）
