# 操作原理
## 架构与模块划分
RBPU16 是一款用于超导量子比特态信息读出的 SoC 基带芯片。芯片模拟部分包含 ADC、DAC、PLL、LVDS、POR 及温度传感器;数字部分包含 DAQ、AWG、PlsGen、Feedback 及 System 模块。

### 信号流概述
**激励信号生成路径**:AWG 控制激励通道波形输出 → DAC 转换为基带读出激励信号 → AWG 同步触发 PlsGen 发出脉冲使能外部 Pump 通道。
**回波信号处理路径**:ADC 采集反射的读出基带信号 → DAQ 对基带信号进行分析处理 → 结果通过 LVDS 接口发送 → DAQ 触发 Feedback 模块将部分结果上报或下发到外部芯片。
### 辅助模块
| 模块 | 功能 |
|:-|:-|
| PLL | 管理芯片时钟,为 ADC/DAC/数字模块生成所需频率 |
| POR | 上电复位,保障芯片正常启动 |
| 温度监视 | 实时监测芯片温度变化 |
| System | 管理芯片控制状态,支撑运维和调试 |
读出芯片支持 ASIC 模式和 FPGA 模式两种工作方式。两种模式受限于资源及外部 ADC/DAC 硬件性能差异,部分功能实现存在不同,阅读时需注意区分。
## 关键数据路径
### 读出激励输出通道
读出激励输出通道(RO 通道)由 AWG 模块和 Pump 模块协同工作,产生基带读出激励信号和 Pump 使能信号。
#### 编程资源
AWG 模块需编程六类数据资源:
| 资源 | 地址空间 | 说明 |
|:-|:-|:-|
| MCU 指令 (MCU_INS) | `0x700000` | MCU 执行的指令流 |
| MCU 数据 (MCU_DAT) | `0x800000` | 指令引用的初始数据 |
| 控制寄存器 (AWG_REG) | `0x900000` | AWG 工作模式与参数 |
| 波形映射表 (AWG_IDX) | `0xA00000` | 码字 → 波形段映射 |
| 波形数据 (AWG_WVE) | `0xB00000` | 波形采样点存储 |
| 模拟配置 (SYS_ANA) | — | DAC 输出模式与偏置校准 |
#### 波形输出流程
1. MCU 每 3 个时钟周期执行一条指令,发出控制码字
2. `WAVE_ID` 字段经查找表映射为波形段起始地址和长度
3. 波形数据经希尔伯特变换生成 I/Q 两路
4. I/Q 信号与 NCO 混频,实现频率搬移
5. 经数字调幅、半带插值滤波
6. 输出至 DAC 转换为模拟信号
#### 输出模式
| 模式 | 频率范围 | 应用场景 |
|:-|:-|:-|
| **NRZ 直出** | DC–3 GHz | 多音基带信号,多量子比特并行读出 |
| **MIX 混频** | 0.3–2.4 GHz | NCO 精确频点控制,腔频扫描 |
| **NCO Only** | — | 芯片测试,连续波形输出 |
| **HBMIX 半带混频** | 高频段 | 启用半带插值,提升高频信号质量 |
**射频直出**:NRZ 模式下利用高阶奈奎斯特区可实现 6–7 GHz 射频直出,功率平坦度约 2 dB(受 sinc 滚降限制)。
**Pump 通道**:MCU 码字 `PUMP_EN` 位触发 PlsGen 产生可编程脉宽信号,经 `PO_PUMP_EN` 管脚输出使能外部 Pump 上变频通道。
**软复位**:写 AWG_REG 软复位寄存器可复位 AWG 内部状态机和 FIFO,复位后需重新编程所有资源。
### 读出回波信号处理
读出回波输入通道(RI 通道)由 ADC 和 DAQ 模块构成,采集并处理反射基带信号。
#### 模拟前端
RF 回波信号 → 外部混频器下变频为基带 → 巴伦差分转换 → ADC 采样。
FPGA 平台:8 位 @ 4 GSPS;ASIC 平台:8 位 @ 6 GSPS。
#### 编程资源
DAQ 模块需编程五类数据资源:
| 资源 | 地址空间 | 说明 |
|:-|:-|:-|
| MCU 指令 (MCU_INS) | `0x200000` | DAQ MCU 执行指令流 |
| MCU 数据 (MCU_DAT) | `0x300000` | 指令引用的初始数据 |
| 控制寄存器 (DAQ_REG) | `0x400000` | DAQ 工作模式与参数 |
| 读出参数 (DAQ_PAR) | `0x500000` | 解模参数 |
| 匹配滤波器系数 (DAQ_FLT) | `0x580000` | 匹配滤波器权重(ASIC 模式) |
| 模拟配置 (SYS_ANA) | — | ADC 参考电压选择 |
#### 数据处理流程
1. ADC 采集原始波形
2. 数字解模:原始波形与匹配滤波器相关运算 → I/Q 复数数据
3. 态判定:根据 I/Q 判定量子态(0 / 1 / 2 / 未定义)
4. 态统计:多次测量结果计数
5. 结果输出:经 `RSLT_PUSH` LVDS 接口发送
#### 采集模式
| 模式 | 输出数据量 | 应用场景 |
|:-|:-|:-|
| 原始波形 | 最大 | 调试与原始数据分析 |
| IQ 数据 | 64 bit × N | 解模结果分析 |
| 态数据 | 2 bit × N | 高速态读出 |
| 态统计 | 最小 | 多次测量汇总 |
**软复位**:写 DAQ_REG 软复位寄存器可复位 DAQ 状态机。
## 接口控制协议
### SPI 配置协议
SPI 采用四线模式,CPOL = 1(空闲高电平),CPHA = 1(首沿输出、次沿采样)。

**帧格式:**
| 字段 | RW | ADDR | CHIP_ID | RSV | DATA |
|:-:|:-:|:-:|:-:|:-:|:-:|
| 位宽 | 1 | 25 | 5 | 1 | 32 × N |
| 说明 | 0: 读, 1: 写 | 32 MB 地址空间 | 片选 ID | 保留 | 数据 (N ≥ 1) |
协议以流模式传输:先发送 1 bit 读写标志 + 25 bit 地址 + 5 bit 片选 ID,之后发送/接收 N × 32 bit 数据,直至主控端拉低 CSN 结束通信。每完成 32 bit 后地址自动递增 4 字节。
### LVDS 通信协议
芯片数据推送 (`rslt_push_[p,n]`)、反馈上报 (`glb_tx_[p,n]`) 和反馈下发 (`glb_rx_[p,n]`) 接口采用定制 LVDS 协议。
**帧格式:**
```
+---------------------------------------+
| LVDS DATA FRAME |
+------+-------------------+------------+
| 4 | 16/32/64/128 | 8 |
+------+-------------------+------------+
| HEAD | Payload | CRC8 |
+------+-------------------+------------+
MSB LSB
```
HEAD 字段定义:
| Bit | 说明 |
|:-|:-|
| [3] | 启动标志(1 = 启动传输) |
| [2] | 保留(置 0) |
| [1:0] | 载荷长度:0 = 16 bit,1 = 32 bit,2 = 64 bit,3 = 128 bit |
CRC8 多项式:
$$x^8 + x^2 + x + 1$$

**同步机制**:接收端必须先与发送端同步方可接收数据。发送端发送同步码 `hfnl`(32 bit),达到设定次数后发送结束码 `exit`(32 bit)。接收端状态转移:
* 初始 → **未同步**:等待同步码
* **未同步** → **确认**:收到足够次数的同步码
* **确认** → **就绪**:收到结束码
* **就绪** → **未同步**:数据接收中 CRC8 校验错误
**空闲**:无数据传输时 LVDS 电平拉高;发送数据时拉低两个数据周期后开始发送。