# 寄存器定义
## 寄存器摘要
读出芯片偏移地址空间分配如下所示,用户可以通过读写相应地址来控制读出芯片功能和访问芯片状态。读出芯片地址空间包含系统配置状态、模拟配置状态、DAQ 配置状态、AWG 配置状态以及 PLL 配置状态五个部分。
@import "data/seg_define.csv" using render_address.py
**注 1:** DAQ 和 AWG 各自包含一个 MCU 模块,MCU 模块仅能够访问模块内部的控制器指令、控制器数据和寄存器配置,访问基地址分别重新映射到了 `0x000000`、`0x100000` 和 `0x200000`。
**注 2:** MCU 仅能够显示访问控制器数据和对应寄存器配置数据。对于控制器指令空间,控制器自动读取指令并运行,无法显式访问和修改数据。
**注 3:** 匹配滤波器参数和匹配滤波器权重分别对应 FPGA 和 ASIC 平台。FPGA 平台受限于计算资源有限,采用系数直接存储的方案,需要额外配置 `0x580000` 地址数据,此时 `0x500000` 地址中仅包络参数有效。
**注 4:** 系统状态配置、模拟配置状态、PLL 配置状态属于运维寄存器,实验时禁止修改。实验只需要修改 DAQ 配置状态和 AWG 配置状态。
## 操作码字定义
### 激励输出控制码字
AWG MCU 发出的控制码字格式(13 位):
| Bit | 字段名 | 说明 |
|:-:|:-|:-|
| [12] | PULSE_ONLY | 仅脉冲输出模式。置 1 时仅输出 Pump 脉冲,不输出波形 |
| [11] | PARAMETER_SEL | 参数选择。0: 使用默认参数;1: 使用码字携带的参数 |
| [10] | NCO_CLR_EN | NCO 相位清零使能。置 1 时清零 NCO 相位累加器 |
| [9] | MARK_EN | 标记输出使能。置 1 时在当前波形段输出期间使能标记信号 |
| [8] | PUMP_EN | Pump 使能。置 1 时触发 Pump 脉冲输出 |
| [7:0] | WAVE_ID | 波形段 ID。通过波形映射表查找对应的波形段起始地址和长度 |
### 采集处理控制码字
DAQ MCU 发出的控制码字格式(32 位):
| Bit | 字段名 | 说明 |
|:-:|:-|:-|
| [31:16] | QUBIT_EN | 16 量子比特使能。每比特对应一个量子比特,1 表示使能对应通道 |
| [15] | COUNT_SAVE_EN | 计数统计保存使能 |
| [14] | STATE_SAVE_EN | 态结果保存使能 |
| [13] | IQ_SAVE_EN | IQ 数据保存使能 |
| [12] | WAVE_SAVE_EN | 原始波形保存使能 |
| [11] | MTF_IDX_SEL | 匹配滤波器索引选择 |
| [10] | DDS_FPW_SEL | DDS 频率/相位字选择 |
| [9] | STATE_CLR_VAL | 态统计清零值 |
| [8] | DEMOD_CLR_VAL | 解模累加器清零值 |
| [7] | GLB_FB_VAL | 全局反馈值(下发到外部芯片) |
| [6] | LOC_FB_VAL | 局部反馈值(片上反馈控制) |
| [5] | STATE_STS_VAL | 态统计状态值 |
| [4] | DEMOD_SUM_VAL | 解模求和值 |
| [3:0] | PARA_ID | 读出参数 ID。指向 DAQ_PAR 中的参数组 |
对于多比特解模,DAQ 按每个量子比特通道执行解模运算,运算顺序为 Qubit 0 → Qubit 15。数据存储顺序与解模顺序一致。态判定在解模完成后进行,态统计在态判定完成后进行。
## 寄存器/存储详细定义
读出芯片的详细寄存器/存储定义参考 [读出芯片 IDS 表](../script/读出子系统IDS表.xls)。相应的驱动软件配置文件参考 [读出芯片 IDS 表 JSON](../data/ids.json)。
@import "data/ids.json" using render_registers.py