rbpu_datasheet/chapters/07_applications.md

221 lines
7.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 应用信息
## 模拟接口
### DAC 输出接口
DAC 输出频率范围 DC12 GHz内部集成 50 Ω 电阻网络。外部需接差分 270 nH 电感到地经巴伦差分转单端输出。PCB 走线注意阻抗匹配50 Ω 差分)。
```schemdraw
import schemdraw
from schemdraw import elements as e
with schemdraw.Drawing(show=False) as d:
d.config(fontsize=11)
d += e.Line().right().label('DAC_OUT_P')
d += e.Inductor().down().label('270nH')
d += e.Ground()
d += e.Line().right().at((2.5, 0))
d += e.Transformer().label('Balun')
d += e.Line().right()
d += e.Resistor().down().label('50ohm')
d += e.Ground()
d += e.Line().right().at((0, -2.5)).label('DAC_OUT_N')
d += e.Inductor().up().label('270nH')
d += e.Ground()
d += e.Line().right().at((2.5, -2.5))
d += e.Line().up()
```
DAC 支持以下输出模式:
| 模式 | 频率范围 | 说明 |
|:-|:-|:-|
| NRZ 直出 | DC3 GHz | 基带波形直接输出,适合多音基带信号 |
| MIX 混频 | 0.32.4 GHz | 基带与 NCO 混频,精确频点定位 |
| MIX-HB 半带混频 | 高频段 | 混频 + 半带插值,提升高频信号质量 |
频谱参考见 [DAC 特性](#dac-特性)。
### ADC 输入接口
ADC 采用差分模拟输入,两组独立通道。
| 参数 | 规格 | 单位 |
|:-|:-|:-|
| 满量程输入范围(差分) | 0.7 | Vpp |
| 输入共模电压 | 0.5 | V |
| 差分输入阻抗 | 100 | Ω |
| 输入带宽 (3 dB) | 3 | GHz |
| 采样速率 | 最高 6 | GSPS |
基准电压模式通过 `ADC_REF_SENSE` 选择:
| 电平 | 模式 | 说明 |
|:-|:-|:-|
| 1.8 V | 内部带隙基准 | 无需外部参考 |
| 0.52 V | 外部参考源 | 需提供 ADC_VR850 和 ADC_VR350 |
波形示例参考见 [ADC 特性](#adc-特性)。
### 时钟输入
参考时钟通过 CLK_REF_P / CLK_REF_N 差分输入AC 耦合。
| 参数 | 规格 | 单位 |
|:-|:-|:-|
| 频率范围 | 50250 | MHz |
| 典型频率 | 100 或 125 | MHz |
| 要求 | 低相噪时钟源 | — |
内部 PLL 倍频分配:
| 输出 | 频率范围 | 用途 |
|:-|:-|:-|
| DAC_CLK | 612 GHz | DAC 更新时钟 |
| ADC_CLK | 36 GHz | ADC 采样时钟 |
| DIG_CLK | 250500 MHz | 数字主时钟 |
### 环路滤波器
使用内部 PLL 时需外接环路滤波器。
PLL 电荷泵输出 (CP_OUT) → 外部二阶环路滤波器 → VCTRL。PLL_VREF520 需提供外部 520 mV 参考偏置。
```schemdraw
import schemdraw
from schemdraw import elements as e
with schemdraw.Drawing(show=False) as d:
d.config(fontsize=11)
d += e.Line().left().label('CP_OUT')
d += e.Line().right()
d += e.Resistor().right().label('R1')
d += e.Line().right().label('VCTRL')
d += e.Capacitor().down().at((2, 0)).label('C1')
d += e.Ground()
d += e.Capacitor().down().at((4, 0)).label('C2')
d += e.Ground()
```
**外接元件要求:**
| 端口 | 配置 | 说明 |
|:-|:-|:-|
| BIAS_CAP | 100 nF 去耦电容 | PLL 偏置去耦 |
| RES_2K | 2 kΩ 电阻到地 | PLL 偏置电阻 |
| PORT_BIAS_TB | 10 μF ×1 + 1 μF ×1 + 0.1 μF ×3 到地 | PLL 滤波电容 |
<div class="note">
环路滤波器参数(电荷泵电流、环路带宽、具体阻容值)待 PLL 设计确认后补充。
</div>
### 基准电压与偏置
| 端口 | 电压/配置 | 说明 |
|:-|:-|:-|
| ADC_VR850 | 850 mV | ADC 外部参考,需去耦 |
| ADC_VR350 | 350 mV | ADC 外部参考,需去耦 |
| ADC_REF_SENSE | 1.8 V / 0.52 V | ADC 带隙基准选择 |
| PLL_VREF520 | 520 mV | PLL 外部参考,需去耦 |
| VREF500IN | 500 mV | DAC 外部参考,需去耦 |
| DAC_VBIAS_IREF_RES | 5.2 kΩ + 10 μF 到地 | DAC 偏置基准电流 |
| ADC_VBIAS_IREF_RES | 5.2 kΩ + 10 μF 到地 | ADC 偏置基准电流 |
| PLL_CP_OUT | 电荷泵输出 | 经环路滤波器接 VCTRL |
## 启动与复位
### 上电时序
芯片上电须严格遵循以下顺序:
| 步骤 | 操作 | 说明 |
|:-|:-|:-|
| 1 | 内核供电 (DIG_VDD, DAC_DVDD, PLL_DVDD, ADC_DVDD) | 数字内核上电 |
| 2 | IO 供电 (IO_VDD) | 数字 I/O 上电 |
| 3 | 模拟供电 (DAC_AVDD18, PLL_VDD18, ADC_VDD18, AVDD_ENCODER, AVDD_P2S, PLL_VDD, VCO_VDD, ADC_VDD) | 模拟域上电 |
| 4 | 参考时钟输入 | 提供稳定参考时钟 |
| 5 | 解除复位 (PB_RST_N 拉高) | 芯片启动 |
<div class="note">
上电时序波形图待补充。
</div>
### 复位
| 复位类型 | 触发方式 | 影响范围 |
|:-|:-|:-|
| 上电复位 (POR) | 芯片上电自动触发 | 全芯片 |
| 硬复位 | PB_RST_N 拉低 | 全芯片 |
| 软复位 | 写 SYS_REG 软复位寄存器 | 可分别复位 AWG / DAQ / System |
## 配置与操作流程
读出芯片上电后应先执行校准ADC/DAC/PLL/系统同步),校准流程参见附录 [运维操作手册](#运维操作手册)。实验操作遵循**数据配置 → 实验运行 → 数据采集**三个阶段。
### 数据配置阶段
| 通道 | 配置内容 | 接口 |
|:-|:-|:-|
| RO激励 | 输出模式、波形查找表、波形数据、MCU 程序 | SPI |
| RI采集 | 采集模式、读出参数、匹配滤波器权重、MCU 程序 | SPI |
| Pump | 使能脉宽、码字触发延迟 | SPI |
<div class="important">
若芯片出现异常,实验配置前应通过写寄存器软复位芯片状态机和寄存器默认值。配置用例参考附录 [历史无关配置集](#历史无关配置集)。
</div>
### 实验运行阶段
同步触发信号 (SYNC_IN) 启动芯片运行,确保多芯片间时序确定。同步信号经内部延迟模块为 DAQ 和 AWG 分别补偿延迟,保证协同运行。
MCU 从地址 0 启动,每 3 个时钟周期执行一条指令,通过控制码字驱动:
* **AWG**:波形输出 + Pump 使能
* **DAQ**:数据采集 + 反馈上报/下发
MCU 执行退出指令后进入空闲状态。
### 数据采集阶段
数据采集与 MCU 运行同步启动。若采集量大MCU 可能先于采集结束;数据继续写入缓存,上报模块持续推送,直至缓存清空。
可通过检测推送数据量是否达到目标数据量来判断实验完成。若数据量未知,需在 MCU 结束后等待一定时间,通过检测数据返回来判断。
**速率匹配**:为避免缓存写满,数据产生速率和数据回传速率须匹配。以解模 IQ 数据为例:
*T* 为数据产生间隔,*N* 为并行读出 Qubit 数,*F* 为 LVDS 有效速率,触发间隔须满足:
$$T > \frac{64 \times N}{F}$$
## 异常处理
### 中断管理
芯片通过 INT_STATUS 和 INT_MASK 寄存器管理中断。INT_STATUS = (INT_MASK & 实际状态) | INT_STATUS需写寄存器清零。
### 中断处理流程
1. 读取 INT_STATUS确认中断源
2. 记录异常信息(类型、时间、运行状态)
3. 按中断类型处理:
| 中断源 | 处理措施 |
|:-|:-|
| EXIT_IR | 正常退出,可启动下一轮实验 |
| ILLEGAL_ONE / ILLEGAL_ZERO | 检查并重新下载 MCU 程序,软复位 MCU |
| UNALIGN_SW / UNALIGN_LW | 检查 load/store 指令地址对齐 |
| LINK_DOWN | 检查 LVDS 物理连接和信号完整性,重新同步 |
| FORCE_AWG / FORCE_DAQ | 按外部控制器逻辑处理 |
4. 写 INT_STATUS 清零中断标志
5. 如需恢复运行:软复位 MCU 状态机并重新配置
### 异常预防
* MCU 程序写入后通过回读比对验证正确性
* LVDS 传输前确认收发双方已完成同步
* 实验运行期间禁止访问运维寄存器(系统/模拟/PLL 配置)
* 通过 INT_MASK 启用关注的中断源,屏蔽无关中断
* MCU 程序末尾必须包含退出指令 `exit x0, x0, 0`