# 应用信息

## 模拟接口

### DAC 输出接口

DAC 输出频率范围 DC–12 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 直出 | DC–3 GHz | 基带波形直接输出，适合多音基带信号 |
| MIX 混频 | 0.3–2.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 耦合。

| 参数 | 规格 | 单位 |
|:-|:-|:-|
| 频率范围 | 50–250 | MHz |
| 典型频率 | 100 或 125 | MHz |
| 要求 | 低相噪时钟源 | — |

内部 PLL 倍频分配：

| 输出 | 频率范围 | 用途 |
|:-|:-|:-|
| DAC_CLK | 6–12 GHz | DAC 更新时钟 |
| ADC_CLK | 3–6 GHz | ADC 采样时钟 |
| DIG_CLK | 250–500 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`
