# 5. 处理器EXC-Pump编程模型

EXC-Pump通道的编程包括：
MCU的指令、MCU的数据、控制寄存器、波形索引表、波形仓库、混频板与泵浦板配置7类数据。

- MCU指令+MCU数据可用于编程发出触发码字以及实时修改控制寄存器；
- 控制寄存器可用于指定调制频率、调制相位、工作模式等参数；
- 波形索引表定义了从波形ID到波形地址和长度的映射；
- 波形仓库定义了波形具体的采样点数据；
- 混频板配置用于设置本振频率（增益为预留接口）；
- 泵浦板配置用于配置Pump通道的频率和功率等；

> 混频板上下变频通道共享同一个本振设置。增益为预留接口，支持情况取决于混频板硬件形态。

数字部分（MCU的指令、MCU的数据、控制寄存器、波形索性表、波形仓库）的编程模型如下图所示：
![读出RI-Pump通道控制模型](../assets/readout_ri.png)

1. EXC-Pump通道的波形输出由AWG模块MCU发出的码字触发。
对于输出波形而言，MCU发出的码字定义波形的索引ID，
1. 索引ID输入到波形索引表之后输出波形在波形仓库中的起始地址和长度，
接着波形仓库利用起始地址和长度将对应采样点的原始数据输出。
1. 原始数据经过希尔伯特变换后增加了虚部数据（滤除了负频），
接着数据进入正交数字混频模块，与NCO产生的单音信号混频后得到调频数据。
1. 经过模式选择器后，数据首先经过调幅模块，接着经过半带滤波器进行插值、然后再经过MIX模块进行采样频率搬移
1. 最后数字信号经过DAC转换后输出基带信号，基带信号经过上变频输出读出系统

上述过程中模式选择器可以选择原始波形数据、希尔伯特虚部数据、正交调制数据以及NCO自身产生的单音数据。

  - 原始波形模式：用于量子实验，通过直接输出包含多个读出频率的波形，可以实现对多个量子比特的并行读出；
    - 正交调制模式：用于腔频扫描等应用，通过实时修改NCO频率，可以实时改变输出频率，配合DAQ进行实时读取，可以实现扫频功能。若基带信号包含多个频点，还能实现多频点并行扫描功能；
    - NCO Only模式：可以输出连续波形，方便连接外部仪器上进行测试，用于芯片本身性能的测试。
    - 希尔伯特虚部模式：输出波形经过希尔伯特变换后的正交部分，仅用于调试。

最后数字信号经过DAC转换成基带信号，基带信号再和外部本振信号模拟混频后输出读出激励波形。
读出芯片不同模式输出的频响曲线如下图所示：

![output_response](../assets/output_response.png)

为了兼容混频输出和射频直出两种工作模式以及在FPGA和ASIC平台上实现，半带滤波器和MIX模块都支持旁路功能，因此最终波形输出支持NRZ、MIX、HBNRZ和HBMIX四种模式。

- NRZ模式：适合低频输出，可用于外部混频情况，无需插值滤波器，ASIC和FPGA平台可用。
- MIX模式：适合高频输出，可用于射频直出情况，无需插值滤波器，ASIC和FPGA平台可用。
- HBNRZ模式：在NRZ模式的基础上增加了插值滤波器，优化了输出平坦度，仅ASIC平台支持。
- HBMIX模式：在MIX模式的基础上增加了插值滤波器，优化了输出平坦读，仅ASIC平台支持。

射频直出主要为ASIC平台预留，使用HBMIX模式时，读取激励信号使用了高阶奈奎斯特域频率，考虑DAC采样率超频到8 GSps，使用mix-mode模式时等价采样率为16 GSps。6~7 GHz的输入频率会由于0阶保持输出功率存在sinc滚降，归一化的信号输出功率如上图绿色曲线所示。可以看到7 GHz输出相比直流输出功率下降了6.5 dB，6~7GHz工作范围内，功率平坦度约为2 dB。

Pump通道输出的使能信号由MCU码字触发输出，
当MCU输出码字的对应位使能后，脉冲发生模块从寄存器或波形索引表得到脉冲长度控制数据，
并将指定长度的脉冲信号通过I/O直接输出。

> ez-Q 2.5 FPGA/ASIC平台的Pump通道需要提前配置频率、功率和输出使能

由于EXC-Pump通道有且仅有数字部分存在状态机，
为了清除EXC-Pump通道由于上位机强制中断程序或者MCU配置了错误指令而产生异常，
EXC-Pump通道提供了软复位功能，支持通过调用驱动API来执行软复位操作，
软复位可使得状态机从异常中恢复，从而使得下一次历史无关配置项能够正确执行。
