144 lines
8.6 KiB
Markdown
144 lines
8.6 KiB
Markdown
|
|
# 操作原理
|
|||
|
|
|
|||
|
|
## 原理及模块划分
|
|||
|
|
|
|||
|
|
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 模块用于管理芯片上控制的状态,为芯片运维和调试提供支撑。
|
|||
|
|
|
|||
|
|
<div class="important">
|
|||
|
|
读出芯片不仅支持以 ASIC 芯片模式工作,也支持部分核心控制在 FPGA 内部工作。这两种工作模式受制于 ASIC 和 FPGA 资源以及外部 ADC、DAC 硬件性能不同,部分功能实现存在差异,后续阅读时需要重点关注。
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
## 关键数据路径
|
|||
|
|
|
|||
|
|
### 读出激励输出通道
|
|||
|
|
|
|||
|
|
<!-- MERGED from ../readout_program/ri_datapath.md -->
|
|||
|
|
|
|||
|
|
读出激励输出通道(RO 通道)由 AWG 模块和 Pump 模块协同工作,负责产生基带读出激励信号和 Pump 使能信号。
|
|||
|
|
|
|||
|
|
AWG 模块需要编程六类数据:
|
|||
|
|
|
|||
|
|
1. **控制器指令 (MCU_INS)**:控制 MCU 执行指令流,指令位于地址空间 `0x700000`
|
|||
|
|
2. **控制器数据 (MCU_DAT)**:MCU 指令需要引用的初始数据,位于地址空间 `0x800000`
|
|||
|
|
3. **控制寄存器 (AWG_REG)**:配置 AWG 工作模式与参数,位于地址空间 `0x900000`
|
|||
|
|
4. **波形映射表 (AWG_IDX)**:码字 → 波形段的映射查找表,位于地址空间 `0xA00000`
|
|||
|
|
5. **波形数据存储 (AWG_WVE)**:实际输出的波形采样点,位于地址空间 `0xB00000`
|
|||
|
|
6. **模拟配置 (SYS_ANA)**:DAC 输出模式(NRZ/MIX/HBMIX)与偏置校准
|
|||
|
|
|
|||
|
|
波形输出流程如下:
|
|||
|
|
|
|||
|
|
1. MCU 每 3 个时钟周期执行一条指令,发出控制码字
|
|||
|
|
2. 码字中的 `WAVE_ID` 字段通过查找表映射为波形段的起始地址和长度
|
|||
|
|
3. 波形数据从 WVE 存储中读取,经希尔伯特变换生成 I/Q 两路
|
|||
|
|
4. I/Q 信号与 NCO 混频,实现频率搬移
|
|||
|
|
5. 经数字调幅、半带插值滤波
|
|||
|
|
6. 输出至 DAC 转换为模拟信号
|
|||
|
|
|
|||
|
|
AWG 支持以下输出模式:
|
|||
|
|
|
|||
|
|
| 模式 | 描述 | 特点 |
|
|||
|
|
|:-|:-|:-|
|
|||
|
|
| **直出模式 (NRZ)** | 基带波形直接输出 | 输出频率 DC–3 GHz,适用于直接产生多音基带信号 |
|
|||
|
|
| **调制模式 (MIX)** | 基带波形与 NCO 混频 | 输出频率 0.3–2.4 GHz,通过 NCO 频率控制精确频点定位 |
|
|||
|
|
| **NCO Only 模式** | 仅 NCO 连续波形 | 方便连接外部仪器进行芯片测试 |
|
|||
|
|
| **半带调制模式 (HBMIX)** | 混频 + 半带插值 | 提升高频输出信号质量 |
|
|||
|
|
|
|||
|
|
<div class="note">
|
|||
|
|
一般情况下,直出模式用于量子实验,通过直接输出包含多个读出频率的波形,可以实现对多个量子比特的并行读出;调制模式用于腔频扫描等应用,通过实时修改 NCO 频率实现扫频功能;NCO Only 模式可以输出连续波形,方便连接外部仪器上进行测试。
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
**射频直出**:在 NRZ 模式下利用高阶奈奎斯特区输出,可以实现 6–7 GHz 的射频直出,功率平坦度约 2 dB(受限于 sinc 滚降特性)。
|
|||
|
|
|
|||
|
|
**Pump 通道**:由 MCU 码字中的 `PUMP_EN` 位触发 PlsGen 模块,产生可编程宽度的脉冲信号,通过 `PO_PUMP_EN` 管脚输出,用于使能外部 Pump 上变频通道。
|
|||
|
|
|
|||
|
|
**软复位**:通过写 AWG_REG 中的软复位寄存器,可复位 AWG 内部状态机和 FIFO,复位后需重新编程。
|
|||
|
|
|
|||
|
|
### 读出回波信号处理
|
|||
|
|
|
|||
|
|
<!-- MERGED from ../readout_program/ro_datapath.md -->
|
|||
|
|
|
|||
|
|
读出回波输入通道(RI 通道)由 ADC + DAQ 模块构成,负责采集和处理反射回来的基带信号。
|
|||
|
|
|
|||
|
|
**模拟信号路径**:RF 回波信号经外部混频器下变频为基带 → 巴伦差分转换 → ADC 采样(FPGA 平台 8 位 @4 GSPS,ASIC 平台 8 位 @6 GSPS)。
|
|||
|
|
|
|||
|
|
DAQ 模块需要编程五类数据:
|
|||
|
|
|
|||
|
|
1. **控制器指令 (MCU_INS)**:DAQ 内部 MCU 的执行指令流,位于地址空间 `0x200000`
|
|||
|
|
2. **控制器数据 (MCU_DAT)**:MCU 需要引用的初始数据,位于地址空间 `0x300000`
|
|||
|
|
3. **控制寄存器 (DAQ_REG)**:配置 DAQ 工作模式与参数,位于地址空间 `0x400000`
|
|||
|
|
4. **读出参数与滤波器权重 (DAQ_PAR + DAQ_FLT)**:解模参数、匹配滤波器系数,位于地址空间 `0x500000` 和 `0x580000`
|
|||
|
|
5. **模拟配置 (SYS_ANA)**:ADC 参考电压选择
|
|||
|
|
|
|||
|
|
数据处理流程:
|
|||
|
|
|
|||
|
|
1. ADC 采集原始波形数据
|
|||
|
|
2. 数字解模:原始波形与匹配滤波器进行相关运算,得到 I/Q 复数数据
|
|||
|
|
3. 态判定:根据 I/Q 数据判定量子态(0 态/1 态/2 态/未定义)
|
|||
|
|
4. 态统计:对多次测量的态结果进行计数统计
|
|||
|
|
5. 结果输出:通过 `RSLT_PUSH` LVDS 接口发送数据
|
|||
|
|
|
|||
|
|
DAQ 支持多种数据采集模式:
|
|||
|
|
|
|||
|
|
| 模式 | 输出数据量 | 适用场景 |
|
|||
|
|
|:-|:-|:-|
|
|||
|
|
| 原始波形 | 最大 | 调试、原始数据分析 |
|
|||
|
|
| IQ 数据 | 中等 (64 bit × N) | 解模结果分析 |
|
|||
|
|
| 态数据 | 小 (2 bit × N) | 高速态读出 |
|
|||
|
|
| 态统计 | 最小 | 多次测量统计 |
|
|||
|
|
|
|||
|
|
软复位功能:通过写 DAQ_REG 中的软复位寄存器复位 DAQ 状态机。
|
|||
|
|
|
|||
|
|
## 接口控制协议
|
|||
|
|
|
|||
|
|
### SPI 配置协议
|
|||
|
|
|
|||
|
|
读出芯片通过 SPI 来配置内部寄存器和内存,SPI 采用四线模式。时钟极性 CPOL = 1,即时钟在空闲时处于高电平状态;时钟相位 CPHA = 1,即在第一个时钟沿输出数据,第二个时钟沿采样数据。SPI 的通信数据格式采用自定义协议,支持流模式发送接收。
|
|||
|
|
|
|||
|
|

|
|||
|
|
|
|||
|
|
**SPI 帧格式:**
|
|||
|
|
|
|||
|
|
| 字段 | RW | ADDR | CHIP_ID | RSV | DATA |
|
|||
|
|
|:-:|:-:|:-:|:-:|:-:|:-:|
|
|||
|
|
| 位宽 | 1 | 25 | 5 | 1 | 32 × N |
|
|||
|
|
| 含义 | 0: 读, 1: 写 | 32 MB 寻址空间 | 总线片选 | 保留位 | 数据 |
|
|||
|
|
|
|||
|
|
<div class="note">
|
|||
|
|
协议首先发送 1 比特读写标识位,然后发送 25 比特地址位,接着再发送 5 比特的芯片选择信号,最后再发送/接收数据。数据发送/接收以 32 比特为单位,以流模式发送,支持发送/接收 N × 32 位的数据,直到主控端将 CSN 拉低后结束通信(N ≥ 1)。流模式要求从设备在完成 32 比特数据接收/发送后自动对地址进行 4 字节递增。
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
### 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
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
帧头包含 4 比特数据,其中最高位比特用于指示是否启动数据传输,次高位置 0 保留,最低两位用于指示本次传输的数据量(0: 16 比特,1: 32 比特,2: 64 比特,3: 128 比特)。载荷后面附带 8 比特 CRC 校验码,校验多项式为:
|
|||
|
|
|
|||
|
|
$$x^8 + x^2 + x + 1$$
|
|||
|
|
|
|||
|
|

|
|||
|
|
|
|||
|
|
**同步机制**:接收端在接收数据之前必须先和发送端同步。发送端通过发送同步码来同步接收端,当完成设定数量的同步码发送完毕后发送一个结束码结束同步过程。同步码为字符串 "hfnl" 对应的 32 比特数据,结束码为 "exit" 对应的 32 比特数据。
|
|||
|
|
|
|||
|
|
接收端在启动时被初始化到未同步状态,此时必须接收到足够次数的同步码之后才能进入确认状态,直到接收到结束码之后发送端和接收端同时进入就绪状态。接收端后续如果在接收数据过程中发现 CRC8 校验码出错,会再次进入未同步状态。
|
|||
|
|
|
|||
|
|
**空闲状态**:当处于空闲状态不用传输数据时,发送端将 LVDS 信号电平拉高。当传输数据时,发送端将 LVDS 电平拉低两个数据周期启动数据发送。
|