diff --git a/.gitignore b/.gitignore index 2170986..a9456b5 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -读出子系统编程控制模型.pdf \ No newline at end of file +读出子系统编程控制模型.html \ No newline at end of file diff --git a/ri_codeword.md b/ri_codeword.md index d1212be..cea1a1e 100644 --- a/ri_codeword.md +++ b/ri_codeword.md @@ -10,9 +10,9 @@ AWG模块仅使用码字指令的低13位,其余位保留, |[8]|PUMP_EN| 泵浦脉冲输出使能, 高有效| |[7:0]|WAVE_ID| 波形编号, 最大索256个波形输出| -- 码字比特[7:0]用作波形索引,总共可以索引256种波形,能够实现多个比特不同排列组合下的读取操作; -- 码字比特[8]用于触发发出Pump脉冲输出,该脉冲可用于使能外部开关,避免Pump信号持续输出加热制冷机; -- 码字比特[9]用于触发Marker脉冲输出,该脉冲能够触发外部仪器,可协同控制与外部芯片或者仪器,方便调试; -- 码字比特[10]用作内部NCO清零信号,该功能可以在调制输出模式下,复位NCO的累积相位; +- 码字比特[12]用于禁用波形输出,通过使能该比特可以仅输出Pump或者Marker脉冲而不输出该指令码字[7:0]索引的波形。 - 码字比特[11]用于使能动态波形输出功能,该功能直接使用wave_ctrl寄存器中来索引波形,暂不使用该功能; -- 码字比特[12]用于禁用波形输出,通过使能该比特可以仅输出Pump或者Marker脉冲而不输出该指令码字[7:0]索引的波形。 \ No newline at end of file +- 码字比特[10]用作内部NCO清零信号,该功能可以在调制输出模式下,复位NCO的累积相位; +- 码字比特[9]用于触发Marker脉冲输出,该脉冲能够触发外部仪器,可协同控制与外部芯片或者仪器,方便调试; +- 码字比特[8]用于触发发出Pump脉冲输出,该脉冲可用于使能外部开关,避免Pump信号持续输出加热制冷机; +- 码字比特[7:0]用作波形索引,总共可以索引256种波形,能够实现多个比特不同排列组合下的读取操作; \ No newline at end of file diff --git a/ri_datapath.md b/ri_datapath.md index 1b1bd37..0a4c6f7 100644 --- a/ri_datapath.md +++ b/ri_datapath.md @@ -1,7 +1,7 @@ EXC-Pump通道的编程包括: MCU的指令、MCU的数据、控制寄存器、波形索性表、波形仓库和模拟电路配置6类数据。 - MCU指令+MCU数据可用于编程发出触发码字以及实时修改控制寄存器; -- 控制寄存器可用于指定调制频率、调制相位等参数; +- 控制寄存器可用于指定调制频率、调制相位、工作模式等参数; - 波形索引表定义了从波形ID到波形地址和长度的映射,波形仓库定义了波形具体的采样点数据。 - 模拟电路配置用于设置变频增益和本振频率以及Pump通道的频率和功率等。 @@ -15,7 +15,8 @@ MCU的指令、MCU的数据、控制寄存器、波形索性表、波形仓库 接着波形仓库利用起始地址和长度将对应采样点的原始数据输出。 1. 原始数据经过希尔伯特变换后增加了虚部数据(滤除了负频), 接着数据进入正交数字混频模块,与NCO产生的单音信号混频后得到调频数据。 -1. 经过模式选择器后,数据首先经过调幅模块,接着经过半带滤波器进行插值、然后再经过MIX模块进行采样频率搬移, +1. 经过模式选择器后,数据首先经过调幅模块,接着经过半带滤波器进行插值、然后再经过MIX模块进行采样频率搬移 +1. 最后数字信号经过DAC转换后输出基带信号,基带信号经过上变频输出读出系统 上述过程中模式选择器可以选择原始波形数据、希尔伯特虚部数据、正交调制数据以及NCO自身产生的单音数据。 - 原始波形模式:用于量子实验,通过直接输出包含多个读出频率的波形,可以实现对多个量子比特的并行读出; @@ -42,7 +43,7 @@ Pump通道输出的使能信号由MCU码字触发输出, 当MCU输出码字的对应位使能后,脉冲发生模块从寄存器或波形索引表得到脉冲长度控制数据, 并将指定长度的脉冲信号通过I/O直接输出。 ``` -ez-Q 2.2的Pump通道需要提前配置频率、功率和输出使能 +ez-Q 2.5 FPGA平台的Pump通道需要提前配置频率、功率和输出使能 ``` 由于EXC-Pump通道有且仅有基带处理单元存在状态机, diff --git a/ro_codeword.md b/ro_codeword.md index 9ef6c86..c06b0fb 100644 --- a/ro_codeword.md +++ b/ro_codeword.md @@ -1,4 +1,4 @@ -RO通道通过产生32位的码字来控制读出行为,32位的操控码字功能定义如下表所示。 +ACQ通道通过产生32位的码字来控制读出行为,32位的操控码字功能定义如下表所示。 |比特位|名字|功能描述| |:-|:-|:-| @@ -17,22 +17,32 @@ RO通道通过产生32位的码字来控制读出行为,32位的操控码字 |[4]|DEMOD_SUM_VAL| 解模求和命令有效, 高电平使能解模求和功能| |[3:0]|PARA_ID| 读出参数查找表索引, 总共支持最大16组参数| -- 码字比特[3:0]用于选择要实时从存储中加载的解模和态判断参数,总共支持16组参数进行快速切换; -- 码字比特[4]用于对解模数据进行求和操作,通过采集求和数据可降低芯片推送数据量; -- 码字比特[5]用于对态判断结果进行计数统计,通过采集计数结果可降低芯片推送数据量; -- 码字比特[6]用于使能读出比特数据通过并行接口发出,用于支持系统局部反馈功能; -- 码字比特[7]用于使能读出比特数据通过串行接口发出,用于支持系统全局反馈功能; -- 码字比特[8]用于对IQ求和数据进行清零,清零后可开启新一轮统计; -- 码字比特[9]用于对态计数数据进行清零,清零后可开启新一轮统计; -- 码字比特[10]用于使能寄存器控制NCO,可通过MCU实时控制,突破参数个数限制。 -- 码字比特[11]用于使能寄存器索引权重/系数,可通过MCU实时控制,突破参数个数限制。 -- 码字比特[15:12]使能要存储数据,同时存储多种数据会导致死时间会增加,推荐仅使能一种数据; - 码字比特 [31:16]用于使能对对每个比特的控制,读出芯片最大支持16个量子比特。 +- 码字比特[15:12]使能要存储数据,同时存储多种数据将导致死时间增加,推荐仅使能一种数据; +- 码字比特[11]用于使能寄存器索引权重/系数,可通过MCU实时控制,突破参数个数限制。 +- 码字比特[10]用于使能寄存器控制NCO,可通过MCU实时控制,突破参数个数限制。 +- 码字比特[9]用于对态计数数据进行清零,清零后可开启新一轮统计; +- 码字比特[8]用于对IQ求和数据进行清零,清零后可开启新一轮统计; +- 码字比特[7]用于使能读出比特数据通过串行接口发出,用于支持系统全局反馈功能; +- 码字比特[6]用于使能读出比特数据通过并行接口发出,用于支持系统局部反馈功能; +- 码字比特[5]用于对态判断结果进行计数统计,通过采集计数结果可降低芯片推送数据量; +- 码字比特[4]用于对解模数据进行求和操作,通过采集求和数据可降低芯片推送数据量; +- 码字比特[3:0]用于选择要实时从存储中加载的解模和态判断参数,总共支持16组参数进行快速切换; - -当同一个码字指令驱动的多个量子比特解模长度不同时, -解模时间等于最长那个比特的解模时间。 -解模在当同时使能四种数据存储时, -存储的先后顺序为波形数据、解模IQ数据、态判断数据和计数数据。 -* 在一个指令中同时使能了解模求和清零、解模求和和求和存储时:先执行求和清零,再执行求和,最后执行求和结果存储 -* 在一个指令中同时使能了态计数清零、态计数和计数存储时:先执行态计数清零,再执行态计数,最后执行计数结果存储 \ No newline at end of file +**注意码字存在优先级和时序:** +* 当同一个指令中同时对多个量子比特解模/读出时, + * 解模时间等于最长那个比特的解模时间 + * 读出时间等于最长那个比特的读出时间 +* 在一个指令中同时使能四种数据存储时,存储的先后顺序为: + 1. 波形数据 + 1. 解模IQ数据 + 1. 态判断数据 + 1. 态计数数据 +* 在一个指令中同时使能了解模求和清零、解模求和和求和存储时,顺序为: + 1. 先执行求和清零, + 1. 再执行求和 + 1. 最后执行求和结果存储 +* 在一个指令中同时使能了态计数清零、态计数和计数存储时,顺序为: + 1. 先执行态计数清零 + 1. 再执行态计数 + 1. 最后执行计数结果存储 \ No newline at end of file diff --git a/ro_datapath.md b/ro_datapath.md index 84355a0..e6c546c 100644 --- a/ro_datapath.md +++ b/ro_datapath.md @@ -2,26 +2,29 @@ 混频板模拟调理电路主要负责将输入功率和频率的信号转换成基带板卡能够处理的中频信号, 对模拟调理电路的编程包括变频增益控制和变频本振频率控制。 模拟信号进入基带处理单元后,先经过巴伦将单端信号转换成ADC所需的差分信号。 -接着读出芯片利用ADC(8 bit@5.6Gsps)采样输入信号并给到数字电路。 -对读出基带单元RO通道数字电路的编程包括:MCU的指令、MCU的数据、RO通道控制寄存器、解模参数、模拟电路配置5类数据。 +接着读出芯片`RBPU`利用ADC(FPGA平台为8 bit@4 Gsps,ASIC 平台为8 bit@6 Gsps)采样输入信号并给到数字电路。 +数字电路对数据进行处理后将结果通过数据推送接口`rslt_push`发送到上位机。 +对读出基带单元RO通道数字电路的编程包括:MCU的指令、MCU的数据、ACQ通道控制寄存器、解模参数、模拟电路配置5类数据。 - MCU指令+MCU数据可用于编程发出触发码字以及实时修改控制寄存器; -- 控制寄存器可用于指定解模频率、解模相位、解模权重数据索引地址和长度等参数; +- ACQ通道控制寄存器用于指定解模频率、相位、权重/系数数据的索引等参数; - 解模参数数据定义了具体的权重数据和量子态判断参数等数据。 - 模拟电路配置用于设置变频增益和本振频率。 -当前模拟电路无需配置,下图是ACQ通道的编程控制模型。 +目前FPGA平台模拟电路无需配置,下图是FPGA平台ACQ通道数字部分编程控制模型。 -![读出RI-Pump通道控制模型](D:/code/ezq3p0/manual_doc/readout_program/assets/readout_ro.png) +![读出ACQ通道控制模型](D:/code/ezq3p0/manual_doc/readout_program/assets/readout_ro.png) - 射频信号经过混频板下变频后进入到ADC - ADC采集的原始波形数据①从图中右侧端口输入,接着输入到解模模块中 -- 解模模块利用匹配滤波器模块生成的解模参数对输入波形进行解模运算得到IQ数据② +- 解模模块利用匹配滤波器模块存储的解模参数对输入波形进行解模运算得到IQ数据② - 接着解模IQ数据②输入到态判断模块中,经过态判定后得到态数据④ - 最后态数据④经过态统计后得到态统计结果⑤ 上述过程中,数据①②③④⑤都可以在数据转发模块缓存后通过`rslt_push`接口发送出去, 需要注意到的是数据②是解模求和数据③在求和次数为1的特殊情况。 -由于RO通道有且仅有基带处理单元存在状态机,因此需要考虑到异常状态恢复,因此RO通道提供了软复位功能 -当RO通道由于上位机强制中断或者MCU配置了错误指令而产生异常时,可以通过调用驱动API函数执行复位操作, +由于ACQ通道有且仅有基带处理单元存在状态机, +因此需要考虑到异常状态恢复,因此ACQ通道提供了软复位功能 +当RO通道由于上位机强制中断或者MCU配置了错误指令而产生异常时, +可以通过调用驱动API函数执行复位操作, 其能够将状态机从异常中复位(同时也复位部分寄存器的默认值), 从而使得下一次历史无关配置项能够正确执行。 \ No newline at end of file diff --git a/读出子系统编程控制模型.md b/读出子系统编程控制模型.md index fff4082..45b01bb 100644 --- a/读出子系统编程控制模型.md +++ b/读出子系统编程控制模型.md @@ -1,13 +1,27 @@ -[TOC] +--- +export_on_save: + html: true + +html: + toc: true + embed_local_images: true + embed_svg: true + +title: 读出子系统历史无关功能配置项 +author: 郭成 +date: +--- # 修订记录 |版本|修订日期|修订原因|修订内容|修订人| |:-|:-|:-|:-|:-| |v0.1|2025/10/27|统一格式|初始版本|郭成| +|v0.2|2025/10/31|评审意见|内容补充|郭成| # 1. 前言 ## 1.1. 目的与范围 本文档的目的是介绍读出芯片激励产生和采集处理相关控制, +该文档适用于ez-Q 2.5 FPGA/ASIC平台读出子系统编程。 本文档作为开放文档供大家阅读。 ## 1.2. 阅读对象 @@ -15,30 +29,28 @@ ## 1.3. 文档概述 本文档首先介绍了测控系统总体的编程对象和规范, -针对读出相关的三种类型通道的编程进行了详细介绍。 -读出三类通道中,EXC和ACQ通道控制较为复杂,其包含MCU编程控制。 -针对这两个通道,本文详细介绍了MCU码字定义、 -寄存器控制和相关存储区配置。 +针对读出ACQ/EXCT/Pump三种类型通道对应的ACQ/EXCT-Pump编程模型进行了详细介绍。 ## 1.4. 引用文档 |文档编号|标题|版本| |:-|:-|:-| -|-|读出子系统历史无关配置集|V1.0| -|-|读出子系统IDS表|-| +|-|读出子系统历史无关配置集.md|V1.0| +|-|读出子系统IDS表.xls|V1.0| +|ez-Q 2.5-SDD-04|ez-Q 2.5 测控系统研制项目指令集设计报告_V1.0.docx|V1.0| ## 1.5. 术语定义 |名字|全称|解释| |:-|:-|:-| -|EXC|Excitation|读出激励生成发送通道| |ACQ|Acquisition|读出回波采集处理通道| +|EXCT|Excitation|读出激励生成发送通道| # 2. 编程控制模型概述 ## 2.1 测控系统编程概述 超导量子计算机利用微波信号来驱动量子比特和读出量子比特状态,量子比特不同类型的操作依赖不同类型的信号来控制。 -ez-Q 2.5测控系统包含5种物理通道,对应5类硬件接口,分别是处理器EXC、处理器ACQ、Pump、XYZ/Reset和ZCP通道; -系统具有7种控制信号,对应7种编程对象,分别是EXC、ACQ、Pump、XY、Reset、Z和ZCP信号; -系统具有4种控制模型,对应4种编程类型,分别是ACQ、EXC-Pump、XY/Reset和Z/ZCP模型,分类关系如下表所示。 +ez-Q 2.5测控系统包含5种物理通道,对应5类硬件接口,分别是ACQ、EXCT、Pump、XYZ/Reset和ZCP通道; +系统具有7种控制信号,对应7种编程对象,分别是EXCT、ACQ、Pump、XY、Reset、Z和ZCP信号; +系统具有4种控制模型,对应4种编程类型,分别是ACQ、EXCT-Pump、XY/Reset和Z/ZCP模型,分类关系如下表所示。 |5种物理通道|7种控制对象|4种控制模型| |:-:|:-:|:-:| @@ -47,14 +59,35 @@ ez-Q 2.5测控系统包含5种物理通道,对应5类硬件接口,分别是 |^|Z信号|Z/ZCP控制模型| |ZCP通道|ZCP信号|Z/ZCP控制模型| |ACQ通道|ACQ(RO)信号|ACQ控制模型| -|EXC通道|EXC(RI)信号|EXC-Pump控制模型| +|EXCT通道|EXCT(RI)信号|EXCT-Pump控制模型| |Pump通道|Pump信号|^| -- 测控系统中的每种控制模型实现的功能都是通过微控制器发出的码字+当前寄存器+配置数据+模拟电路配置这4种数据来定义, -其中部分寄存器状态支持微控制器实时修改,从而让通道的输入/输出控制具备动态控制能力。 +- 测控系统中的每种控制模型实现的功能都是通过以下四类数据进行定义, + - 通道微控制器码字指令 + - 通道寄存器配置数据 + - 通道SRAM配置数据 + - 通道模拟电路配置 + - 测控系统的寄存器、配置数据和模拟电路配置返回数据统一采用**大端字节序**。 -本文档通过对不同编程模型下码字定义、控制寄存器、配置数据和模拟电路设置进行介绍,旨在让用户能够对信号的产生和处理进行编程控制。针对实验流程和码字产生的编程,读者需要查看对应指令集文档或者编程语言文档。 +通道寄存器配置数据支持微控制器实时修改,从而让通道的输入/输出控制具备动态控制能力。 +ACQ和EXCT-Pump通道配置寄存器定义参考[读出子系统IDS表.xls](TODO)的`DAQ_REG`和`AWG_REG`页。 +ACQ的配置数据定义参考 + +本文档通过对不同编程模型下码字指令、通道寄存器配置数据、通道SRAM配置数据和通道模拟电路配置进行介绍, +旨在让用户掌握对读出激励信号的产生和采集信号处理的编程方法。 +其中码字指令通过MCU来产生,MCU的编程关键参数如下: + +* ACQ通道和EXCT-Pump通道使用**相同MCU**; +* MCU分别使用**16 KB**的ITCM和DTCM; +* FPGA平台MCU主时钟频率为**250 MHz**, +* ASIC平台MCU主钟频率暂定**750 MHz**; +* MCU以固定的**3个时钟周期每指令**的速度运行; +* MCU通过**0x100000**地址访问MCU数据空间; +* MCU通道**0x200000**地址访问通道配置寄存器空间; + +针对具体的指令定义和使用方法, +读者可查看[《量子编程指令集》](TODO)了解相关信息。 ## 2.2 读出子系统编程 @@ -65,29 +98,37 @@ ez-Q 2.5 ASIC平台读出子系统由读出基带板、读出混频板和读出 因此可以通过仅指定读出基带板槽位号来定位混频板和泵浦板槽位号, 读出子系统硬件架构如下图所示。 - 读出基带板负责产生、输出、采集和处理基带信号以及为泵浦通道产生使能信号; -- 读出混频板通过产生一个本振信号,用于实现基带信号与射频信号之间的转换, -- 而读出泵浦板负责产生一个指定功率频率的单音信号,并利用外部使能信号来实时使能微波信号的输出。 - -``` -在ez-Q 2.5 FPGA平台读出子系统混频板和泵浦板复用同一个硬件板卡。 -``` +- 读出混频板自身产生一个本振信号,用于实现基带信号与射频信号之间的转换; +- 而读出泵浦板负责产生一个指定功率频率的单音信号,并在外部使能信号控制下输出; ![读出子系统组成](./assets/readout_system.png) 当软件需要对不同通道编程时,其通过ip地址指定机箱、通过槽位号指定板卡、 通过扩展地址指定同一个板卡内的多个通道、通过地址指定一个通道内的不同配置项。 + ``` -地址维护由专门的表来定义,本文不对地址翻译进行赘述。 +索引基地址由《读出子系统IDS表.xls》的mapping页定义,本文不对地址翻译进行赘述。 ``` +本文所述的三类编程通道具体定义如下: +* ACQ 编程通道定义从混频板`rf_in`输入端口到基带板卡内部DAQ模块; +* EXCT 编程通道定义为从基带板内部AWG模块混频板到`rf_out`接口; +* Pump 编程通道定义为从基带板卡内部AWG模块到泵浦板`pump_out`接口; + +ASIC和FPGA平台具有以下区别: +* ez-Q 2.5 FPGA平台读出子系统混频板和泵浦板复用同一个硬件板卡。 +* ez-Q 2.5 FPGA平台将读出基带芯片RBPU和FPGA集成在一个FPGA中。 +* ez-Q 2.5 FPGA平台使用外部商用ADC、DAC和PLL来替换RBPU的对应功能。 +* ez-Q 2.5 FPGA平台ADC、DAC采样率为4 Gsps, ASIC平台暂定为6 Gsps + # 3. 处理器ACQ通道编程模型 @import "ro_datapath.md" -## 3.1. 模拟调理电路配置 +## 3.1. 下变频电路配置 来自量子比特RO端口的射频信号需要经过前端模拟电路处理后才能够被读出基带处理单元采集处理。 -前端模拟调理电路包括增益和本振,这里需要注意同一个混频板上四个通道上下变频使用同一个本振信号。 +前端下变频电路包括增益和本振,这里需要注意同一个混频板上四个通道上下变频使用同一个本振信号。 |配置名|描述| |:-:|:-:| @@ -104,10 +145,9 @@ mix_gain 设置;仅支持 lo_freq 变频本振频率设置 ## 3.3 ACQ寄存器功能定义 ACQ通道寄存器的地址空间可以被SPI和MCU同时访问, -因此用户可通过SPI或者MCU设置参数。 - +因此用户可通过SPI或者MCU设置参数,建议: ``` -建议静态参数通过SPI配置完成就保持不变, +静态参数通过SPI配置完成就保持不变, 需要动态控制的参数通过MCU来实时更新。 ``` @@ -118,9 +158,13 @@ ACQ通道寄存器的地址空间可以被SPI和MCU同时访问, |mtf_idx_q[15:0]|解模参数控制,分别对应16个频点| |dds_fpw_q[15:0]|解模频率相位控制,分别对应16个频点| -- sample_depth用于控制波形采集模式下采集波形的长度; +- sample_depth用于控制波形采集模式下采集波形的长度,单位是时钟周期; - mtf_idx_q在使能寄存器控制情况下,用于直接索引匹配滤波器权重/系数; -- dds_fpw_q在使能寄存器控制情况下,用于控制解模的频率和相位; + - 高16比特对应索引地址,单位是时钟周期 + - 低16比特对应索引长度,单位是时钟周期 +- dds_fpw_q在使能寄存器控制情况下,用于控制解模载波的频率和相位; + - 高20位对应载波频率控制字fcw,$F_{c}=fcw/2^{20}*sample\_rate$ + - 低12位对应载波相位控制字pcw,$\phi_{c} = pcw/2^{12}*2*\pi$ - function用来控制整个读出基带板数据处理行为; function功能寄存器与实验控制相关的具体控制位包括: @@ -133,36 +177,53 @@ function功能寄存器与实验控制相关的具体控制位包括: |[3]|IQ_SCALE| 解模动态范围设置| |[2]|TWO_STA_EN| 两态读出使能, 高电平使能| -系数计算模式支持通过设置`CONST_EN=1`来启用常量权重功能,此时权重值为`WEIGHT_IQ`。 -而当`CONST_EN=0`时,权重数据通过`mtf_idx_q`来索引得到, -并通过`STEP_CTRL`控制每个权重值对应多少个时钟周期的采样点。 +* WEIGHT_IQ 常数权重值,可用于长时间解模 +* CONST_EN 常数权重使能 + * `CONST_EN=0`时,权重数据通过`mtf_idx_q`来索引得到 + * `CONST_EN=1`来启用常量权重功能,此时权重值为`WEIGHT_IQ`。 +* STEP_CTRL 权重点步长控制 + - `STEP_CTRL==0` 1个权重数据点可对应1个时钟周期采样点。 + - `STEP_CTRL==1` 1个权重数据点可对应2个时钟周期采样点。 + - `STEP_CTRL==2` 1个权重数据点可对应4个时钟周期采样点。 + - `STEP_CTRL==3` 1个权重数据点可对应8个时钟周期采样点。 + - `STEP_CTRL==4` 1个权重数据点可对应16个时钟周期采样点。 +* IQ_SCALE 解模结果截断位置控制 + - `IQ_SCALE =0` IQ结果截位[27:8] + - `IQ_SCALE =1` IQ结果截位[31:12] +* TWO_STA_EN 两态读出使能 + - `TWO_STA_EN==0` 默认三态读出 + - `TWO_STA_EN==1` 使能二态读出 + ``` -ez-Q 2.5 FPGA平台采用系数直读模式,因此不支持上述功能。 -即在ez-Q 2.5平台下,WEIGHT_IQ,CONST_EN 控制位无实际效果 +ez-Q 2.5 FPGA平台采用系数直读模式,因此不支持系数生产相关功能。 +即在ez-Q 2.5 FPGA平台下,dds_fpw 寄存器无实际效果; +function寄存器WEIGHT_IQ,CONST_EN, STEP_CTRL 位无实际效果 ``` 解模完成后,可以通过`TWO_STA_EN`来控制是否启动2态判定, 当`TWO_STA_EN=1`时,可以只配置一组直线方程系数进行态判断。 ## 3.4 匹配滤波器 -匹配滤波器在FPGA/ASIC两种平台下由于资源不同实现的形式也不同。 +匹配滤波器在FPGA/ASIC两种平台下由于资源不同实现的形式也不同,区别如下: +* 由于ASIC多计算少存储,因而ASIC平台使用系数计算模式以节省存储资源。 +* 由于FPGA 多存储少计算,因此FPGA平台使用系数直读模式以节省DSP资源。 + +### 3.4.1 读出参数存储 -### 3.4.1 ASIC平台 -由于ASIC多计算少存储,因而ASIC平台时使用系数计算模式。 系数计算模式下,匹配滤波器的系数由DDS生成的载波乘以权重参数得到。 -- 其中载波的频率和相位由dds_pfd控制,其高20为作为频率控制字,低12位作为相位控制字。 +- 载波的频率和相位由dds_pfd控制,其高20为作为频率控制字,低12位作为相位控制字。 - 权重参数的选择由mtf_idx控制,其高16位作为地址,低16位作为长度。 +- mtf_idx索引得到的权重数据颗粒度是权重数据点,一个数据点可对应多个周期采样点; - 寄存器dds_pfw_q 和mtf_idx_q 的详细定义与查找表中定义保持相同。 -读出系统的的相关参数的存储格式如下图所示。 -系数只读模式只使用`Ctrl`部分中的数据,并忽略`dds_pfw`控制字. +读出系统的的读出参数存储格式如下图所示。 +FPGA平台下的系数直读模式只使用`Ctrl`部分中的数据,并忽略`dds_pfw`控制字. ![读出ACQ通道控制模型](./assets/readout_para.png) -### 3.4.2 FPGA平台 -由于FPGA 多存储少计算资源,因此FPGA平台时使用系数直读模式以节省DSP资源。 +### 3.4.2 匹配滤波器系数 -ez-Q 2.5 FPGA平台使用系数只读模式,其需要额外配置匹配滤波器系数。 +ez-Q 2.5 FPGA平台使用系数直读模式,其需要额外的存储空间来配置匹配滤波器系数。 - 其中mtf_idx的含义从索引权重数据变为索引匹配滤波器系数。 - 匹配滤波器系数索引的粒度是时钟周期, - 在FPGA平台下每个时钟周期对应16个采样点数据。 @@ -174,11 +235,8 @@ ez-Q 2.5 FPGA平台使用系数只读模式,其需要额外配置匹配滤波 ![读出ACQ通道控制模型](./assets/readout_mtf.png) -``` -ez-Q 2.5平台为FPGA平台 -``` -# 4. 处理器EXC-Pump编程模型 +# 4. 处理器EXCT-Pump编程模型 @import "ri_datapath.md" @@ -186,7 +244,7 @@ ez-Q 2.5平台为FPGA平台 @import "ri_codeword.md" ## 4.2 寄存器功能定义 -EXC-Pump通道的全部寄存器可以被SPI和MCU同时访问, +EXCT-Pump通道的全部寄存器可以被SPI和MCU同时访问, 用户可以根据需要决定使用SPI还是MCU来控制寄存器的值。 |名字|功能描述| |:-|:-| @@ -198,71 +256,67 @@ EXC-Pump通道的全部寄存器可以被SPI和MCU同时访问, |pump_ctrl|pump使能脉冲控制| |mark_ctrl|标记使能脉冲控制| -- `wave_ctrl`的格式定义保持和波形索引表格式相同,绕过波形查找表,直接控制AWG波形输出。 -- `amplitude`高16为用于设置调幅幅度,码值范围0\~16384,对应归一化范围0~1。 -- `frequency`对应NCO的48位FCW的高32位,而FCW的低16位恒为0。 -$F_{nco}= fcw/2^{48}*F_s$。其中`F_s`是输出采样率。 -- `phase`寄存器的高16位用于设置NCO的相位控制字(PCW), -$\phi_{nco} = pcw/2^{16}*2*\pi$。 -- `funciton`寄存器和实验相关的控制包括: +- `wave_ctrl`波形输出直接控制,可直接从波形仓库取采样点输出。 + - 高16位为索引地址,单位是时钟周期 + - 低16为为索引长度,单位是时钟周期 +- `amplitude`调制幅度控制字 + - 高16为幅度控制字acw,范围0\~16384,归一化幅度$Amp = acw/2^{16}$ +- `frequency`调制频率控制 + - 32比特频率控制字fcw,$F_{nco}= fcw/2^{32}*F_s$,其中$F_s$是输出采样率。 +- `phase`调制相位控制 + - 高16位相位控制字pcw: $\phi_{nco} = pcw/2^{16}*2*\pi$。 +- `funciton`寄存器用于设置AWG的工作模式 +- `pump_ctrl`泵浦脉冲使能控制 + - 高16位控制输出延迟时钟周期,范围(1~65535) + - 低16位控制附加持续时钟周期,范围(1~65535) +- `mark_ctrl`标记脉冲使能控制 + - 高16位控制输出延迟时钟周期,范围(1~65535) + - 低16位控制脉冲持续时钟周期,范围(1~65535) +function的详细控制如下所示: |比特位|名字|功能描述| |:-|:-|:-| |[3]|INTP_SEL| 插值模式选择,1:半带插值,0:邻近插值| -|[2]|MIX_MODE| 混频模式,用于将采用率翻倍| -|[1:0]|AWG_MODE| AWG工作模式, 直出、调制、NCO、Hilbert| +|[2]|MIX_MODE| 混频模式选择,1:混频模式,0:基带模式| +|[1:0]|AWG_MODE| AWG模式, 00:直出,01:调制,10:Hilbert,11:NCO| -``` -对于实验一般选用直出模式或者调制模式,其余两种模式用于调试。 -``` - -``` -MIX_MODE用于直接输出射频信号,由于采用了模拟混频方案,不使能该功能。 -``` -``` -`INTP_SEL`在FPGA平台下受限于DSP资源,只能设置为邻近插值模式。 -``` +* `INTP_SEL`在FPGA平台下受限于DSP资源,只能设置为邻近插值模式。 +* `MIX_MODE`用于直接输出射频信号,由于采用了模拟混频方案,仅使用基带模式。 +* `AWG_MODE`设置AWG模式,实验选用直出模式或者调制模式,其余两种模式用于调试。 ## 4.3 波形索引表定义 波形查找表的深度为256条(1 kB),每个条目的位宽为32比特, 其通过8比特的波形id来索引输出波形的参数(地址和长度),最大支持256种不同的输出波形。 索引表格式定义如下图所示: wave_id是mcu产生的码字,其可以作为地址索引波形控制参数。 -波形控制参数包括波形地址`addr`和波形长度`len`参数。 +波形控制参数包括波形地址`addr`和波形长度`len`参数,颗粒度是时钟周期。 -``` -ezq2.5 ASIC平台下读出地址和长度单位是8个采样点; -ezq2.5 FPGA平台下读出地址和长度单位是16个采样点。 -``` - -``` -每个采样点为16比特的二进制补码数据。 -``` ![波形查找表和波形仓库](./assets/readout_lut.png) - ## 4.4 波形仓库定义 -ASIC平台下,每个时钟周期对应8个采样点, -数据更新率为6 Gsps,每个采样点持续时间为167 皮秒(6 GS/s)。 -在FPGA平台下,每个时钟周期对应16个采样点, -数据更新率为 4 GSps,每个采样点持续时间为250皮秒。 -对于EXC输出频率F(例如6.7 GHz),在本振为5.5GHz本振频率下, -则存储区描绘的基带波形频率为1.2 GHz ,等于F(6.7 GHz)-本振(5.5 GHz)。 -波形仓库的容量为128 KB,在FPGA平台和ASIC平台下最大分别支持16 us和10 us波形输出。 +* ASIC平台下,每个时钟周期对应8个采样点,采样点个数需要为8的整数倍,数据更新率为6 Gsps,每个采样点持续时间为167 皮秒(6 GS/s)。 +* 在FPGA平台下,每个时钟周期对应16个采样点,采样点个数需要为16的整数倍,数据更新率为 4 GSps,每个采样点持续时间为250皮秒。 +* 每个采样点为16比特的二进制补码数据; +* 波形仓库的容量为128 KB,在FPGA平台和ASIC平台下最大分别支持16 us和10 us波形输出。 -## 4.5 模拟调理电路 -来自读出基带板输出端口的中频信号需要经过前端模拟电路处理后才能够被发送到量子芯片。 -前端模拟调理电路包括增益和本振,这里需要注意同一个混频板上四个通道上下变频使用同一个本振信号。 +对于EXCT输出频率$F_{out}$(例如6.7 GHz),在本振为$F_{LO}$(例如5.5GHz)本振频率下, +则存储区描绘的基带波形频率$F_{s}$为1.2 GHz ,$F_s = F_{out} - F_{LO}$。 + + +## 4.5 EXCT上变频电路配置 +来自读出基带板输出端口的中频信号需要经过混频板上变频电路处理后才能够被发送到量子芯片。 +前端上变频电路包括增益和本振,这里需要注意同一个混频板上四个通道上下变频使用同一个本振信号。 目前ez-Q 2.5 FPGA平台硬件暂不支持变频增益设置。 |配置名|描述| |:-:|:-:| |lo_freq|变频本振频率设置| -# 5. 处理器Pump编程模型 +* lo_freq:32比特整数,范围[5400000, 5600000]单位是kHz +## 4.6 Pump模拟电路配置 对处理器Pump通道的编程包括模拟电路配置项和使能配置项。模拟电路用于将Pump通道配置输出一个指定功率和频率的微波信号,而使能配置项用于控制微波信号的实时开关。 -## 5.1 模拟配置项定义 + Pump输出时,需要使能输出并配置好输出频率和功率,以下是具体配置项。 |配置名|描述| |:-|:-| @@ -270,6 +324,6 @@ Pump输出时,需要使能输出并配置好输出频率和功率,以下是 |pump_power|pump信号输出功率| |pump_enable|pump信号输出使能| -## 5.2 输出使能配置项定义 -Pump通道的输出使能配置采用处理器EXC-Pump通道编程模型, -其寄存器控制和码字控制参考处理器EXC-Pump编程模型,这里不再赘述。 \ No newline at end of file +* pump_freq: 32比特整数,范围[7000000, 9000000], 单位是kHz +* pump_power: 32比特整数,范围[-1100, -300], 具体映射关系取决于硬件 +* pump_enable: 0x11 为使能,0x00为关闭 \ No newline at end of file