commit 2975e29ca52855cb5abb56cc986f746df70225fd Author: guocheng Date: Fri Sep 19 11:20:06 2025 +0800 init project diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7effc6f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +读出子系统历史无关配置集.pdf diff --git a/README.md b/README.md new file mode 100644 index 0000000..555ed02 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# 读出子系统历史无关配置集 +本项目为读出系统历史无关配置集,该配置集能够在系统处于任何非异常历史配置状态下完成当前配置集指定的任务。 + +**主要内容** +* 2个RI通道输出配置项 +* 5个RO通道读出配置项 +* 2个Pump通道输出配置项 diff --git a/读出子系统历史无关配置集.md b/读出子系统历史无关配置集.md new file mode 100644 index 0000000..a992109 --- /dev/null +++ b/读出子系统历史无关配置集.md @@ -0,0 +1,805 @@ +# 读出系统历史无关的功能配置项 +本文以常用的超导量子比特读出操作为例,将读出操作可能涉及到的相关功能拆解成最小功能项,并给出对每个功能项的历史无关配置集。 +超导量子比特读出操作涉及到RI、RO和Pump三类通道, +本文将基于ez-Q 2.5 FPGA平台读出系统的的通道为控制对象进行功能分解。 +本文所指的`历史无关配置`限定为实验相关配置部分, +而与对芯片的校准(例如ADC、DAC、时钟配置)、读出子系统初始化(例如通信校准、同步校准)等操作不在本文讨论范围。 + +# RI通道 + +RI通道用于为量子比特读出产生激励信号, +对RI通道的输出控制包括MCU指令、MCU数据、波形索引、波形仓库、基带控制寄存器配置以及变频电路配置。 +其中MCU指令+MCU数据用于控制实验流程和产生执行命令; +波形索引+波形仓库用于完成从命令到数字波形信号的翻译; +基带控制寄存器用于控制数字波形信号处理过程; +变频电路用于控制模拟波形信号处理过程。 + +## RI.1 直接波形输出功能 +直接波形输出功能将用户配置以采样点配置的波形数据直接发到DAC, +数字信号经过DAC转换成模拟基带信号, +接着基带信号再经过模拟变频电路变频后得到读出激励信号。 +实现直接波形所需的全部配置项如下表所示 + +|配置项|说明| +|:-:|:-| +|MCU指令|用于产生码字的指令| +|MCU数据|非必要配置,配合MCU指令| +|波形映射表|配置码字到波形地址和长度的映射表| +|波形仓库|存储映射表对应的波形| +|控制寄存器|控制波形的输出模式| +|模拟寄存器|控制变频增益和频率| + +### 编程规范 +用户通过编程MCU来生成码字指令,编程需要满足以下规范: +|说明项|说明内容| +|:-:|:-| +|1|MCU数据根据需要配置,若存在访存指令则需配置,否则可不配置| +|2|波形输出通过发出码字来控制| +|3|程序结束应该调用exit来退出运行。| +|4|指令和数据的最大容量为16 KB| + +以下示例是一个用于发出码字为`0x00000000`的汇编程序, +该程序不存在访存指令,可不配置MCU数据。 +程序通过`send`指令发送码字信号,并通过`exit`指令退出运行。 + +```{.line-numbers} +send x0, x0, 0 +exit x0, x0, 0 +``` + +### 码字约束 +对直接波形输出功能有影响的码字如下表所示: + +|配置项|值|说明| +|:-|:-:|:-| +|CODEWORD[12]|0|允许波形输出| +|CODEWORD[11]|0|使用码字索引波形| +|CODEWORD[7:0]|ID|设置用于指定的波形的ID| + +例如码字`0x00000000`可以触发输出形索引ID为`0`对应的波形。 + +### 控制寄存器配置 +对直接波形输出功能有影响的寄存器如下表所示: + +|配置项|值|说明| +|:-:|:-:|:-| +|ACW|0x4000|设置归一化幅度为1| +|AMP_SEL|0|使用AWG内部调幅值| +|INTP_SEL|0|使用邻近插值滤波器| +|MIX_MODE|0|NRZ输出模式| +|AWG_MODE|0|直接波形输出模式| + +例如设置`amplitude`寄存器高16位为16‘h4000,`function`寄存器为32’h00000000, +表示采用NRZ模式直接将存储在波形仓库中的采样点输出。 + +### 波形映射表 + 波形仓库 +编程过程中发射的波形ID必须要有对应的映射表进行转换, +而编程的映射表必须要有对应的波形采样点进行匹配。 +映射表的一个配置项用32比特表示,高16比特对应地址,低16比特对应长度, +地址和长度的单位都是时钟周期,在FPGA平台上,一个时钟周期对应16个采样点。 + +例如映射表配置成 +```{.line-numbers} +0x00000080 +0x00800040 +``` +当`ID==0`是从0地址输出128个时钟周期的波形(对应2048个采样点),当`ID==1`时,从128地址开始输出一个长度为64个时钟周期的波形(对应1024个采样点),波形起始地址和波形长度。波形地址加上波形长度的访问范围是12比特,对应最大4096个时钟周期波形输出。 +``` +S1S2S3...S16 +... +S2033...S2048 +... +S3057...S3072 +``` +此时波形仓库中的数据应该如上所示,总共存储了192个时钟周期,FPGA的主频为250 MHz,DAC的更新率为4Gsps,192个时钟周期对应3072个采样点数据,其中`S1-2048`采样点对应`ID==0`时输出,`S2049-S3072`采样点对应`ID==1`时输出. + + +### 模拟配置 +ez-Q 2.5 FPGA平台变频电路沿用ez-Q 2.0的硬件, +目前不支持变频增益控制,LO本振频率控制暂不开放, +LO频率固定为5.5 GHz,因此这部分无需配置。 + +## RI.2 调制波形输出功能 +该模式受限于FPGA时序,FPGA平台暂不支持。 +调制波形输出功能将用户配置以采样点经过调制处理后发到DAC, +数字信号经过DAC转换成模拟基带信号, +接着基带信号再经过模拟变频电路变频后得到读出激励信号。 +实现波形调制输出所需的全部配置项如下表所示 + +|配置项|说明| +|:-:|:-| +|MCU指令|用于产生码字的指令| +|MCU数据|非必要配置,配合MCU指令| +|波形映射表|配置码字到波形地址和长度的映射表| +|波形仓库|存储映射表对应的波形| +|控制寄存器|控制波形的输出模式,驱动模式,调幅| +|模拟寄存器|控制变频增益和频率| + +### 编程规范 +|说明项|说明内容| +|:-:|:-| +|1|MCU数据根据需要配置,若存在访存指令则需配置,否则可不配置| +|2|波形输出通过发出码字来控制| +|3|程序结束应该调用exit来退出运行。| +|4|指令和数据的最大容量为16 KB| + +以下示例是一个用于发出码字为`0x00000400`的汇编程序, +该程序不存在访存指令,可不配置MCU数据。 +程序通过`send`指令发送码字信号,并通过`exit`指令退出运行。 + +```{.line-numbers} +send x0, x0, 0x400 +exit x0, x0, 0 +``` + +### 码字约束 +对波形调制输出功能有影响的码字如下表所示: + +|配置项|值|说明| +|:-|:-:|:-| +|CODEWORD[12]|0|允许波形输出| +|CODEWORD[11]|0|使用码字索引波形| +|CODEWORD[10]|EN|清零NCO相位| +|CODEWORD[7:0]|ID|设置用于指定的波形的ID| + +例如码字`0x00000400`可以触发输出形索引ID为`0`对应的波形,使能NCO相位清零。 + +### 控制寄存器配置 +|配置项|值|说明| +|:-:|:-:|:-| +|ACW|acw|设置输出波形的调幅值,amp = acw/2^14| +|FCW|fcw|设置NCO调制频率,freq = fcw/2^32*sample_rate| +|PCW|pcw|相位控制字,phi = pcw/2^16\*2*pi| +|AMP_SEL|0|使用AWG内部调幅值| +|INTP_SEL|0|使用邻近插值滤波器| +|MIX_MODE|0|NRZ输出模式| +|AWG_MODE|1|波形调制输出模式| + +例如设置Amplitude寄存器高16位为16‘h4000, +Frequency为32'h10000000, +Phase高16位为16’h0000, +Function寄存器为32’h00000001, +采用NRZ模式将存储在波形仓库中的采样点输出, +经过希尔伯特变换后然后再与频率为250 MHz相位为0的NCO载波调制后输出。 + +### 波形映射表 + 波形仓库 +编程过程中发射的波形ID必须要有对应的映射表进行转换, +而编程的映射表必须要有对应的波形进行匹配。 +映射表的一个配置项用32比特表示,高16比特对应地址, +低16比特对应长度,地址和长度的单位都是时钟周期, +在FPGA平台上,一个时钟周期对应16个采样点。 + +例如映射表配置成 +```{.line-numbers} +0x00000080 +0x00800040 +``` +当`ID==0`是从0地址输出128个时钟周期的波形(对应2048个采样点),当`ID==1`时,从128地址开始输出一个长度为64个时钟周期的波形(对应1024个采样点),波形起始地址和波形长度。波形地址加上波形长度的访问范围是12比特,对应最大4096个时钟周期波形输出。 +``` +S1S2S3...S16 +... +S2033...S2048 +... +S3057...S3072 +``` +此时波形仓库中的数据应该如上所示,总共存储了192个时钟周期,FPGA的主频为250 MHz,DAC的更新率为4Gsps,192个时钟周期对应3072个采样点数据,其中`S1-2048`采样点对应`ID==0`时输出,`S2049-S3072`采样点对应`ID==1`时输出. + +### 模拟配置 +ez-Q 2.5 FPGA平台变频电路沿用ez-Q 2.0的硬件, +目前不支持变频增益控制,LO本振频率控制暂不开放, +LO频率固定为5.5 GHz,因此这部分无需配置。 + + +# RO通道 + +## RO.1 波形采集功能 +波形采集功能将ADC采集到的原始波形数据采集并上传到上位机。 + +|配置项|说明| +|:-:|:-| +|MCU指令|用于产生码字的指令| +|MCU数据|非必要配置,配合MCU指令| +|控制寄存器|控制采集参数| +|模拟寄存器|控制变频增益和频率| + +### 编程规范 +不同于激励信号输出可以做到背靠背输出, +波形采集需要保证两次采集之间预留50ns的死时间。 +其中死时间定义为两次触发的间隔时间减去波形持续的时间。 + +|说明项|说明内容| +|:-:|:-| +|1|MCU数据根据需要配置,若存在访存指令则需配置,否则可不配置| +|2|波形采集通过发出码字来控制| +|3|程序结束应该调用exit来退出运行。| +|4|指令和数据的最大容量为16 KB| +|5|生成触发码字的死时间应≥50 ns| +|6|波形持续采集数据速率应≤ 200 Mbps(数据上报速率)| +|7|波形突发采集数据量≤ 128 KB(片内缓存容量)| + +以下示例是一个用于发出码字为`0x00001000`的汇编程序, +该程序不存在访存指令,可不配置MCU数据。 +程序通过`send`指令发送码字信号,并通过`exit`指令退出运行。 + +``` +lui x1, 0x1 +send x0, x1, 0x0 +exit x0, x0, 0 +``` + +### 码字约束 + +与波形采集相关的码字如下表所示: +|配置项|值|说明| +|:-|:-:|:-| +|CODEWORD[12]|1'h1|采集波形数据| + +建议通过设置`0`来关闭其它功能选项, +例如码字为`0x00001000`时,表示仅触发波形采集功能, +若开启其它选项,采集死时间受不同的功能组合而改变。 + +### 控制寄存器配置 + +在波形采集实验中,主要配置的寄存器参数包括波形采集的深度和数据回传方式。 +下表设置采用数据自动推送,该模式先采集的数据先推送,数据以流模式返回。 + +|配置项|值|说明| +|:-|:-:|:-| +|spi_rd_en|1'h0|设置为主动数据推送模式| +|sample_depth|16’h0|要采集数据的深度,单位是时钟周期| + +### 模拟寄存器配置 +ez-Q 2.5 FPGA平台变频电路沿用ez-Q 2.0的硬件, +目前不支持变频增益控制,LO本振频率控制暂不开放, +LO频率固定为5.5 GHz,因此这部分无需配置。 + +## RO.2 IQ采集功能 +IQ采集功能利用解模算法计算输入信号的IQ值, +并将IQ值采集并推送到上位机。 +受限于FPGA的计算资源,FPGA平台仅支持系数直读模式,不支持权重计算模式, +因此FPGA平台下需要配置匹配滤波器系数。 +而ASIC平台滤波器系数是自动生成的,无该配置项。 +以下是ez-Q 2.5 FPGA平台下所需的配置项: + +|配置项|说明| +|:-:|:-| +|MCU指令|用于产生码字的指令| +|MCU数据|非必要配置,配合MCU指令| +|控制寄存器|控制解模采集相关参数| +|读出控制参数表|定义了解模所用的参数索引| +|匹配滤波器系数|定义了解模匹配滤波器系数| +|模拟寄存器|控制变频增益和频率| + +### 编程规范 +解模采集需要保证两次采集之间预留50ns的死时间。 +其中死时间定义为两次触发的间隔时间减去比特最大解模时间。 + +|说明项|说明内容| +|:-:|:-| +|1|MCU数据根据需要配置,若存在访存指令则需配置,否则可不配置| +|2|IQ解模数据采集通过发出码字来控制| +|3|程序结束应该调用exit来退出运行。| +|4|指令和数据的最大容量为16 KB| +|5|生成触发码字的死时间应≥50 ns| +|6|IQ数据持续采集数据速率应≤ 200 Mbps(数据上报速率)| +|7|IQ数据突发采集数据量≤ 128 KB(片内缓存容量)| + +以下示例是一个用于发出码字为`0xFFFF2110`的汇编程序, +该程序不存在访存指令,可不配置MCU数据。 +程序通过`send`指令发送码字信号,并通过`exit`指令退出运行。 + +``` +lui x1, 0xFFFF2 +send x0, x1, 0x110 +exit x0, x0, 0 +``` + +### 码字约束 +与IQ解模采集相关的码字如下表所示: +|配置项|值|说明| +|:-|:-|:-| +|CODEWORD[31:16]|QUBIT_EN|需要采集的频点,最大16个| +|CODEWORD[13]|1'h1|使能IQ数据采集| +|CODEWORD[11:10]|2'h0|使用参数表中配置| +|CODEWORD[8]|DEMOD_CLR_VAL|IQ数据求和清零| +|CODEWORD[4]|DEMOD_SUM_VAL|IQ数据求和使能| +|CODEWORD[3:0]|PARA_ID|IQ解模选择的参数| + + +例如码字为`0xFFFF2110`时,表示仅触发IQ采集功能, +该码字使能了全部16个频点的IQ数据采集功能, +同时使能了IQ求和和IQ求和清零操作, +此时会先执行清零再执行求和,得到单次解模结果, +解模使用的参数为`PARA_ID=0`索引参数。 +建议通过设置`0`来关闭其它功能选项, +若开启其它选项,采集死时间受不同的功能组合而改变。 + +如果需要对`N`次解模IQ进行求和, +那么第一次操作应该使能求和清零和解模求和不使能存储, +中间`N-2`次使能解模求和不使能清零和存储, +最后一次使能存储和解模求和不使能清零。 +当需要采集多次求和结果时,重复上述过程即可。 + +### 控制寄存器配置 + +在IQ采集实验中,主要配置的寄存器参数为采集的深度和数据回传方式和IQ数据的截取范围。 + +|配置项|值|说明| +|:-|:-:|:-| +|spi_rd_en|1'h0|设置为主动数据推送模式| +|iq_scale|1’h0|选择小iq范围| + +上述设置数据自动推送,先采集的数据先推送,仅使能的频点数据返回, +同时采集的多个频点数据先返回频点序号较小的数据,数据以流模式持续推送直至推送完成。 + +### 解模参数配置 +码字为`0xFFFF2110`使用了PARA_ID为0的解模参数, +对于每个比特而言,由于只执行解模,仅需要配置参数组中的mtf_idx域。 +下表为qubit0的配置结构,由于只用了一组参数,因此只需要配置一组参数。 +由于使能了16个qubit,因此每个qubit都需要配置, +不同qubit配置格式相同,仅偏移地址不同,这里不再赘述。 + +|地址|值|说明| +|:-|:-:|:-| +|0x00500000|dds_pfw|无需配置| +|0x00500004|mtf_idx|需要配置| + +### 匹配滤波器系数配置 +由于解模使用参数配置表中的`mtf_idx`来索引匹配滤波器系数, +因此匹配滤波器系数对应区域需要配置。 +例如当`mtf_idx`等于`0x00000020`时, +表示使用从0偏移地址开始的32个地址内存储的匹配滤波器系数。 +每个地址i、q数据分别存储16个系数,每个系数占用1个字节 +下图是qubit0解模i、q系数的存储示意图, +不同qubit配置格式相同,仅偏移地址不同,这里不再赘述。 + +|地址|值| +|:-|:-:| +|0x00580000|I0...I15| +|...|...| +|0x005801FC|I496...I511| +|0x00584000|Q0...Q15| +|...|...| +|0x005841FC|Q496...Q511| + +### 模拟寄存器配置 +ez-Q 2.5 FPGA平台变频电路沿用ez-Q 2.0的硬件, +目前不支持变频增益控制,LO本振频率控制暂不开放, +LO频率固定为5.5 GHz,因此这部分无需配置。 + +## RO.3 态采集功能 +态采集功能首先利用解模算法计算IQ值, +接着用态判断算法计算IQ值对应的比特状态, +最后将计算出来的态信息采集并推送到上位机。 +态采集功能会利用IQ解模结果, +除配置解模所需参数外还需要额外配置态判断所需参数。 +以下是ez-Q 2.5 FPGA平台下所需的配置项: + +|配置项|说明| +|:-:|:-| +|MCU指令|用于产生码字的指令| +|MCU数据|非必要配置,配合MCU指令| +|控制寄存器|采集的相关配置| +|读出控制参数表|定义了读出所用的参数索引| +|匹配滤波器系数|定义了解模匹配滤波器系数| +|模拟寄存器|控制变频增益和频率| + + +### 编程规范 +态采集需要保证两次态采集之间预留50ns的死时间。 +其中死时间定义为两次触发的间隔时间减去比特解模解模时间。 + +|说明项|说明内容| +|:-:|:-| +|1|MCU数据根据需要配置,若存在访存指令则需配置,否则可不配置| +|2|IQ解模数据采集通过发出码字来控制| +|3|程序结束应该调用exit来退出运行。| +|4|指令和数据的最大容量为16 KB| +|5|生成触发码字的死时间应≥50 ns| +|6|态持续采集数据速率应≤ 200 Mbps(数据上报速率)| +|7|态数据突发采集数据量≤ 128 KB(片内缓存容量)| + +以下示例是一个用于发出码字为`0xFFFF4000`的汇编程序, +该程序不存在访存指令,可不配置MCU数据。 +程序通过`send`指令发送码字信号,并通过`exit`指令退出运行。 + +``` +lui x1, 0xFFFF4 +send x0, x1, 0x0 +exit x0, x0, 0 +``` + +### 码字约束 +与态采集相关的码字如下表所示: +|配置项|值|说明| +|:-|:-|:-| +|CODEWORD[31:16]|QUBIT_EN|需要采集的频点,最大16个| +|CODEWORD[14]|1'h1|使能态数据采集| +|CODEWORD[11:10]|2'h0|使用参数表中配置| +|CODEWORD[3:0]|PARA_ID|IQ解模选择的参数| + +例如码字为`0xFFFF4000`时,表示仅触发态采集功能, +该码字使能了全部16个频点的态数据采集功能, +解模使用的参数为`PARA_ID=0`索引参数。 +建议通过设置`0`来关闭其它功能选项, +若开启其它选项,采集死时间受不同的功能组合而改变。 + +### 控制寄存器配置 + +在IQ采集实验中,主要配置的寄存器参数为采集的深度和数据回传方式和IQ数据的截取范围。 + +|配置项|值|说明| +|:-|:-:|:-| +|spi_rd_en|1'h0|设置为主动数据推送模式| +|iq_scale|1’h0|选择小iq范围| +|two_state_en|1‘b0|不用两态判定| + +上述设置数据自动推送,先采集的数据先推送, +只要发生采集操作即将全部16个qubit数据推送, +数据以流模式持续推送直至推送完成。 + +### 解模参数配置 +码字为`0xFFFF4000`使用了PARA_ID为0的解模参数, +对于每个比特而言,需要执行解模和态判断, +因此需要配置参数组中的mtf_idx、ab[0,1,2]、c[0,1,2]域。 +下表为qubit0的配置结构,由于只用了一组参数,因此只需要配置一组参数。 +由于使能了16个qubit,因此每个qubit都需要配置, +不同qubit配置格式相同,仅偏移地址不同,这里不再赘述。 + +|地址|值|说明| +|:-|:-:|:-| +|0x00500000|dds_pfw|无需配置| +|0x00500004|mtf_idx|需要配置| +|0x00500008|ab0|需要配置| +|0x0050000c|c0|需要配置| +|0x00500010|ab1|需要配置| +|0x00500014|c1|需要配置| +|0x00500018|ab2|需要配置| +|0x0050001c|c2|需要配置| + +### 匹配滤波器系数配置 +由于解模使用参数配置表中的`mtf_idx`来索引匹配滤波器系数, +因此匹配滤波器系数对应区域需要配置。 +例如当`mtf_idx`等于`0x00000020`时, +表示使用从0偏移地址开始的32个地址内存储的匹配滤波器系数。 +每个地址i、q数据分别存储16个系数,每个系数占用1个字节 +下图是qubit0解模i、q系数的存储示意图, +不同qubit配置格式相同,仅偏移地址不同,这里不再赘述。 + +|地址|值| +|:-|:-:| +|0x00580000|I0...I15| +|...|...| +|0x005801FC|I496...I511| +|0x00584000|Q0...Q15| +|...|...| +|0x005841FC|Q496...Q511| + +### 模拟寄存器配置 +ez-Q 2.5 FPGA平台变频电路沿用ez-Q 2.0的硬件, +目前不支持变频增益控制,LO本振频率控制暂不开放, +LO频率固定为5.5 GHz,因此这部分无需配置。 + +## RO.4 计数采集功能 + +态计数采集功能利用解模算法计算输入信号的IQ值, +接着利用态判断算法到量子比特的状态, +最后对0态、1态、2态和3态进行计数统计, +最后将将每个比特的四个计数值采集并推送到上位机。 +受限于FPGA的计算资源,FPGA平台解模仅支持系数直读模式,不支持权重计算模式, +因此FPGA平台下需要配置匹配滤波器系数。 +而ASIC平台滤波器系数是自动生成的,无该配置项。 +以下是ez-Q 2.5 FPGA平台下所需的配置项: + +|配置项|说明| +|:-:|:-| +|MCU指令|用于产生码字的指令| +|MCU数据|非必要配置,配合MCU指令| +|控制寄存器|控制态统计采集相关参数| +|读出控制参数表|定义了解模所用的参数索引| +|匹配滤波器系数|定义了解模匹配滤波器系数| +|模拟寄存器|控制变频增益和频率| + +### 编程规范 +解模采集需要保证两次采集之间预留50ns的死时间。 +其中死时间定义为两次触发的间隔时间减去比特最大解模时间。 + +|说明项|说明内容| +|:-:|:-| +|1|MCU数据根据需要配置,若存在访存指令则需配置,否则可不配置| +|2|IQ解模数据采集通过发出码字来控制| +|3|程序结束应该调用exit来退出运行。| +|4|指令和数据的最大容量为16 KB| +|5|生成触发码字的死时间应≥50 ns| +|6|IQ数据持续采集数据速率应≤ 200 Mbps(数据上报速率)| +|7|IQ数据突发采集数据量≤ 128 KB(片内缓存容量)| + +以下示例是一个用于发出码字为`0xFFFF8220`的汇编程序, +该程序不存在访存指令,可不配置MCU数据。 +程序通过`send`指令发送码字信号,并通过`exit`指令退出运行。 + +``` +lui x1, 0xFFFF8 +send x0, x1, 0x220 +exit x0, x0, 0 +``` + +### 码字约束 +与态计数采集相关的码字如下表所示: +|配置项|值|说明| +|:-|:-|:-| +|CODEWORD[31:16]|QUBIT_EN|需要采集的频点,最大16个| +|CODEWORD[15]|1'h1|使能态计数数据采集| +|CODEWORD[11:10]|2'h0|使用参数表中配置| +|CODEWORD[9]|STATE_CLR_VAL|态计数统计清零| +|CODEWORD[5]|STATE_STS_VAL|态计数统计使能| +|CODEWORD[3:0]|PARA_ID|IQ解模选择的参数| + + +例如码字为`0xFFFF8220`时,表示仅触发态计数采集功能, +该码字使能了全部16个频点的IQ数据采集功能, +同时使能了计数统计和计数清零操作, +此时会先执行清零再执行统计,得到单次计数结果, +解模使用的参数为`PARA_ID=0`索引参数。 +建议通过设置`0`来关闭其它功能选项, +若开启其它选项,采集死时间受不同的功能组合而改变。 + +态计数一般应用存在多次读出过程的实验中, +对于需要对`N`次读出进行态计数统计的实验, +那么第一次操作应该使能计数清零和计数统计且不使能计数存储, +中间`N-2`次使能计数统计不使能计数清零和计数存储, +最后一次使能计数存储和计数统计不使能计数清零。 +当需要采集多次计数统计结果时,重复上述过程即可。 + +### 控制寄存器配置 + +在态计数采集实验中,主要配置的寄存器参数为数据回传方式和IQ数据的截取范围以及是否使能2态判定。 + +|配置项|值|说明| +|:-|:-:|:-| +|spi_rd_en|1'h0|设置为主动数据推送模式| +|iq_scale|1’h0|选择小iq范围| +|two_state_en|1‘b0|不用两态判定| + +上述设置数据自动推送,先采集的数据先推送,仅使能的频点数据返回, +同时采集的多个频点数据先返回频点序号较小的数据,数据以流模式持续推送直至推送完成。 + +### 解模参数配置 +码字为`0xFFFF8220`使用了PARA_ID为0的解模参数, +对于每个比特而言,由于只执行解模和态判断, +因此需要配置参数组中的mtf_idx、ab[0,1,2]、c[0,1,2]域。 +下表为qubit0的配置结构,由于只用了一组参数,因此只需要配置一组参数。 +由于使能了16个qubit,因此每个qubit都需要配置, +不同qubit配置格式相同,仅偏移地址不同,这里不再赘述。 + +|地址|值|说明| +|:-|:-:|:-| +|0x00500000|dds_pfw|无需配置| +|0x00500004|mtf_idx|需要配置| +|0x00500008|ab0|需要配置| +|0x0050000c|c0|需要配置| +|0x00500010|ab1|需要配置| +|0x00500014|c1|需要配置| +|0x00500018|ab2|需要配置| +|0x0050001c|c2|需要配置| + +### 匹配滤波器系数配置 +由于解模使用参数配置表中的`mtf_idx`来索引匹配滤波器系数, +因此匹配滤波器系数对应区域需要配置。 +例如当`mtf_idx`等于`0x00000020`时, +表示使用从0偏移地址开始的32个地址内存储的匹配滤波器系数。 +每个地址i、q数据分别存储16个系数,每个系数占用1个字节 +下图是qubit0解模i、q系数的存储示意图, +不同qubit配置格式相同,仅偏移地址不同,这里不再赘述。 + +|地址|值| +|:-|:-:| +|0x00580000|I0...I15| +|...|...| +|0x005801FC|I496...I511| +|0x00584000|Q0...Q15| +|...|...| +|0x005841FC|Q496...Q511| + +### 模拟寄存器配置 +ez-Q 2.5 FPGA平台变频电路沿用ez-Q 2.0的硬件, +目前不支持变频增益控制,LO本振频率控制暂不开放, +LO频率固定为5.5 GHz,因此这部分无需配置。 + + +## RO.5 读出反馈功能 +态读出反馈功能首先利用解模算法得到IQ值, +接着利用态判断算法计算IQ值对应的比特状态, +最后将计算出来的态信息通过上行和下行反馈端口发出。 +以下是ez-Q 2.5 FPGA平台下所需的配置项: + +|配置项|说明| +|:-:|:-| +|MCU指令|用于产生码字的指令| +|MCU数据|非必要配置,配合MCU指令| +|控制寄存器|读出的相关配置| +|读出控制参数表|定义了读出所用的参数索引| +|匹配滤波器系数|定义了解模匹配滤波器系数| +|模拟寄存器|控制变频增益和频率| + +### 编程规范 +态读出反馈需要保证两次态采集之间预留50ns的死时间。 +其中死时间定义为两次触发的间隔时间减去比特解模解模时间。 + +|说明项|说明内容| +|:-:|:-| +|1|MCU数据根据需要配置,若存在访存指令则需配置,否则可不配置| +|2|IQ解模数据采集通过发出码字来控制| +|3|程序结束应该调用exit来退出运行。| +|4|指令和数据的最大容量为16 KB| +|5|生成触发码字的死时间应≥50 ns| + +以下示例是一个用于发出码字为`0xFFFF00C0`的汇编程序, +该程序不存在访存指令,可不配置MCU数据。 +程序通过`send`指令发送码字信号,并通过`exit`指令退出运行。 + +``` +lui x1, 0xFFFF0 +send x0, x1, 0x0C0 +exit x0, x0, 0 +``` + +### 码字约束 +与态采集相关的码字如下表所示: +|配置项|值|说明| +|:-|:-|:-| +|CODEWORD[31:16]|QUBIT_EN|需要采集的频点,最大16个| +|CODEWORD[11:10]|2'h0|使用参数表中配置| +|CODEWORD[7]|上行端口发送使能| +|CODEWORD[6]|下行端口发送使能| +|CODEWORD[3:0]|PARA_ID|IQ解模选择的参数| + +例如码字为`0xFFFF00C0`时,表示仅触发反馈读出功能, +该码字使能了全部16个频点的态数据读出上下行反馈功能, +解模使用的参数为`PARA_ID=0`索引参数。 +建议通过设置`0`来关闭其它功能选项, +若开启其它选项,采集死时间受不同的功能组合而改变。 + +### 控制寄存器配置 + +在态读出反馈实验中,主要配置的寄存器参数为IQ数据的截取范围和态判断的模式。 + +|配置项|值|说明| +|:-|:-:|:-| +|iq_scale|1’h0|选择小iq范围| +|two_state_en|1‘b0|不用两态判定| + + +### 解模参数配置 +码字为`0xFFFF00C0`使用了PARA_ID为0的解模参数, +对于每个比特而言,需要执行解模和态判断, +因此需要配置参数组中的mtf_idx、ab[0,1,2]、c[0,1,2]域。 +下表为qubit0的配置结构,由于只用了一组参数,因此只需要配置一组参数。 +由于使能了16个qubit,因此每个qubit都需要配置, +不同qubit配置格式相同,仅偏移地址不同,这里不再赘述。 + +|地址|值|说明| +|:-|:-:|:-| +|0x00500000|dds_pfw|无需配置| +|0x00500004|mtf_idx|需要配置| +|0x00500008|ab0|需要配置| +|0x0050000c|c0|需要配置| +|0x00500010|ab1|需要配置| +|0x00500014|c1|需要配置| +|0x00500018|ab2|需要配置| +|0x0050001c|c2|需要配置| + +### 匹配滤波器系数配置 +由于解模使用参数配置表中的`mtf_idx`来索引匹配滤波器系数, +因此匹配滤波器系数对应区域需要配置。 +例如当`mtf_idx`等于`0x00000020`时, +表示使用从0偏移地址开始的32个地址内存储的匹配滤波器系数。 +每个地址i、q数据分别存储16个系数,每个系数占用1个字节 +下图是qubit0解模i、q系数的存储示意图, +不同qubit配置格式相同,仅偏移地址不同,这里不再赘述。 + +|地址|值| +|:-|:-:| +|0x00580000|I0...I15| +|...|...| +|0x005801FC|I496...I511| +|0x00584000|Q0...Q15| +|...|...| +|0x005841FC|Q496...Q511| + +### 模拟寄存器配置 +ez-Q 2.5 FPGA平台变频电路沿用ez-Q 2.0的硬件, +目前不支持变频增益控制,LO本振频率控制暂不开放, +LO频率固定为5.5 GHz,因此这部分无需配置。 + +# Pump通道 + +Pump通道用于为参量放大器提供能量,对Pump通道的输出控制包括模拟电路配置。模拟电路通过小数分配锁相环来合成指定频率,并通过功率驱动电路后输出。 + +## Pump.1 Pump开关输出功能 +Pump开关输出功能使用与激励信号同一个MCU来产生码字, +通道利用码字来触发产生一个指定脉冲宽度的数字信号, +并利用这个数字信号使能Pump通道微波信号输出, +从而实现泵浦通道与激励信号实时同步输出。 + +|配置项|说明| +|:-:|:-| +|MCU指令|用于产生码字的指令| +|MCU数据|非必要配置,配合MCU指令| +|控制寄存器|控制脉冲输出的宽度| +|模拟寄存器|控制Pump的频率和功率| + +### 编程规范 +|说明项|说明内容| +|:-:|:-| +|1|MCU数据根据需要配置,若存在访存指令则需配置,否则可不配置| +|2|波形输出通过发出码字来控制| +|3|程序结束应该调用exit来退出运行| +|4|指令和数据的最大容量为16 KB| + +以下示例是一个用于发出码字为`0x00000300`的汇编程序, +该程序不存在访存指令,可不配置MCU数据。 +程序通过`send`指令发送码字信号,并通过`exit`指令退出运行。 +由于使能了仅脉冲输出,因此没有配置波形和索引表。 + +```{.line-numbers} +lui x1, 0x00001 +send x0, x1, 0x300 +exit x0, x0, 0 +``` +### 码字约束 +与使能脉冲输出相关的控制码字如下: + +|配置项|值|说明| +|:-|:-:|:-| +|CODEWORD[12]|1|仅使能脉冲输出| +|CODEWORD[8]|1|使能Pump脉冲输出| + +例如码字`0x00001100`可以触发输出pump通道使能控制脉冲而不触发波形输出, +此时脉冲的宽度等于pump_width指定的长度。 +用户也可以通过设置`CODEWORD[12]=0`来同时输出波形, +当允许波形输出时,使能脉冲的长度等于波形长度加上pump_width指定的长度。 +允许波形输出时必须同时配置好RI通道相关配置。 + +### 控制寄存器配置 +控制器寄存器主要包括对使能脉冲的延迟和宽度的配置。 +|配置项|值|说明| +|:-:|:-:|:-| +|pump_inv|0|不反转极性,默认低电平输出| +|pump_ctrl|{delay,width}|pump脉冲输出延迟和宽度| + + +### 模拟寄存器 +模拟寄存器用于配置模拟电路生成pump信号的参数 +|配置项|值|说明| +|:-|:-|:-| +|pump_freq|FCW|输出频率控制字,freq = FCW*1000| +|pump_power|PCW|PCW范围[-1300,-200],码值与输出功率正相关| +|pump_enable|32'h11|使能pump通道模拟输出| + +## Pump.2 Pump连续输出功能 +Pump连续输出功能通过配置寄存器令使能脉冲始终处于高电平, +从而允许pump通道始终输出微波信号。 +连续输出所需配置项如下表所示: +|配置项|说明| +|:-:|:-| +|控制寄存器|控制脉冲输出的极性| +|模拟寄存器|控制Pump的频率和功率| + +### 码字约束 +Pump通道连续输出功能本身无需编程MCU, +但是当需要触发RI波形输出时, +必须禁止码字Pump脉冲输出功能 + +### 控制寄存器配置 +控制器寄存器主要包括对使能脉冲的延迟和宽度的配置。 +|配置项|值|说明| +|:-:|:-:|:-| +|pump_inv|1|反转极性,控制脉冲默认输出高电平| + +### 模拟寄存器 +|配置项|值|说明| +|:-|:-|:-| +|pump_freq|FCW|输出频率控制字,freq = FCW*1000| +|pump_power|PCW|PCW范围[-1300,-200],码值与输出功率正相关| +|pump_enable|32'h11|使能pump通道模拟输出| \ No newline at end of file