更新一些内容

This commit is contained in:
guocheng 2025-09-24 09:18:46 +08:00
parent 6c37951431
commit d0134c3098
7 changed files with 198 additions and 14 deletions

BIN
assets/lvds_prot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

BIN
assets/rbpu_schematic.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

BIN
assets/spi_prot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

View File

@ -1,6 +1,2 @@
# 数据手册
本项目为读出子系统的操作手册内容涵盖下列四个部分通过阅读本文档量子实验用户、QOS开发用户、驱动开发用户以及实验运维用户和能够更好理解和使用本系统。
* 读出子系统的编程控制模型
* 读出子系统历史无关功能配置集
* 读出子系统运维操作手册
* 读出子系统软件接口描述表
# 读出基带处理芯片数据手册
本项目为读出基带处理芯片的数据手册,本文档可以帮助相关工程师开展芯片性能评估、芯片硬件设计、芯片驱动开发以及芯片使用等工作。

16
seg_define.csv Normal file
View File

@ -0,0 +1,16 @@
功能划分,子模块,开始地址,大小
系统配置状态,系统控制监视,0x000000,32B
模拟配置状态,ADC控制监视,0x100000,64 B
^,DAC控制监视,0x100100,128 B
DAQ配置状态,控制器指令,0x200000,32 KB
^,控制器数据,0x300000,32 KB
^,寄存器配置,0x400000,256 B
^,读出参数+滤波器权重,0x500000,8KB +24 KB
^,匹配滤波器系数*,0x580000,512 KB
^,读出结果,0x600000,128 KB
AWG配置状态,控制器指令,0x700000,32 KB
^,控制器数据,0x800000,32 KB
^,寄存器配置,0x900000,32 B
^,波形映射表,0xA00000,1 KB
^,波形数据,0xB00000,128 KB
PLL配置状态,PLL控制监视,0x1F00000,16B
1 功能划分 子模块 开始地址 大小
2 系统配置状态 系统控制监视 0x000000 32B
3 模拟配置状态 ADC控制监视 0x100000 64 B
4 ^ DAC控制监视 0x100100 128 B
5 DAQ配置状态 控制器指令 0x200000 32 KB
6 ^ 控制器数据 0x300000 32 KB
7 ^ 寄存器配置 0x400000 256 B
8 ^ 读出参数+滤波器权重 0x500000 8KB +24 KB
9 ^ 匹配滤波器系数* 0x580000 512 KB
10 ^ 读出结果 0x600000 128 KB
11 AWG配置状态 控制器指令 0x700000 32 KB
12 ^ 控制器数据 0x800000 32 KB
13 ^ 寄存器配置 0x900000 32 B
14 ^ 波形映射表 0xA00000 1 KB
15 ^ 波形数据 0xB00000 128 KB
16 PLL配置状态 PLL控制监视 0x1F00000 16B

13
specification.md Normal file
View File

@ -0,0 +1,13 @@
|规格项|最小值|典型值|
|:-|:-|:-|
|SPI速率|50 Mbps|-|
|LVDS速率|750 Mbps|-|
|标识|定义|时序ns|
|:-|:-|:-|
|Tc2s|SPI帧开始时CSN下降沿到SCLK下降沿的时间|>3|
|Tms|MOSI数据的建立时间|>3|
|Tmh|MOSI数据的保持时间|>3|
|Tss|MISO数据的保持时间|>3|
|Tsh|MISO数据的保持时间|>3|
|Tc2s|SPI帧结束时SCLK上升沿到CSN上升沿的时间|>3|

View File

@ -19,20 +19,27 @@ RBPU16是一款用于量子比特态信息读出的一款SoC芯片
# 1. 规格参数
@import "specification.md"
# 2. 操作最大值
TODO
# 3. 管脚描述
TODO
# 4. 典型性能特点
# 5. 专业术语
# 6. 操作原理
## 6.1 原理及模块划分
RBPU16是一颗用于完成超导量子比特的态读出的SoC基带芯片。
芯片模拟部分包括ADC、DAC、PLL、LVDS、POR和温度传感器
数字部分主要包括DAQ、AWG、PlsGen、Feedback以及System模块。
读出芯片的总体功能组成如图 1所示。
读出芯片的总体功能组成如图所示。
![rbpu_schematic](assets/rbpu_schematic.png)
在激励信号生成路径上AWG用于控制激励通道待输出的波形
接着波形经过DAC转换成基带读出激励信号
@ -40,6 +47,7 @@ RBPU16是一颗用于完成超导量子比特的态读出的SoC基带芯片。
回波信号处理路径上ADC用于采集反射的读出基带信号
接着DAQ对基带信号进行分析处理结果再通过LVDS接口发送出去
同时DAQ模块触发Feedback模块将部分结果上报或者下发到外部芯片。
片内PLL用于管理整个芯片的时钟为ADC生成采样时钟
为DAC生成更新时钟为数字模块生成主时钟等。
POR用于在芯片上电时对整个芯片进行复位保障芯片正常工作。
@ -51,7 +59,91 @@ System模块用于管理芯片上控制的状态为芯片运维和调试提
这两种工作模式受制于ASIC和FPGA资源以及外部ADC、DAC硬件性能不同
部分功能实现存在差异,后续阅读时需要重点关注。
## 关键数据路径
## 6.2 关键数据路径
### 6.2.1 读出激励输出通道
@import "../readout_program/ri_datapath.md"
### 6.2.2 读出回波信号处理
@import "../readout_program/ro_datapath.md"
## 6.3 接口控制协议
### 6.3.1 SPI配置协议
读出芯片通过SPI来配置内部寄存器和内存SPI采用四线模式。
时钟极性CPOL=1即时钟在空闲时处于高电平状态
时钟相位CPHA=1即在第一个时钟沿输出数据第二个时钟沿采样数据。
SPI的通信数据格式采用自定义协议支持流模式发送接收
SPI的通信协议如下图所示
![spi_prot](assets/spi_prot.png)
协议首先发送1比特读写标识位
然后发送25比特地址位
接着再发送5比特的芯片选择信号
最后再发送/接收数据。
标识控制位含义如下表所示。
数据发送/接收以32比特为单位
以流模式发送,
支持发送/接收N*32位的数据
直到主控端将csn信号拉低后结束通信
这里N为大于等于1的整数。
流模式要求从设备在完成32比特数据接收/发送后自动对地址进行4字节递增。
|字段|RW|ADDR|CHIP_ID|RSV|DATA|
|:-:|:-:|:-:|:-:|:-:|:-:|
|位宽|1|25|5|1|32*N|
|含义|0:读1:写|32 MB寻址空间|总线片选|保留位|数据|
### 6.3.2 LVDS通信协议
从读出芯片到多功能母卡的数据推送接口rslt_push_[p,n],
反馈上报接口glb_tx_[p,n]和从多功能母板到读出芯片的反馈下发接口glb_rx_[p,n]采用了定制的LVDS通信协议
协议帧格式如下图所示:
```ascii
+---------------------------------------+
| LVDS DATA FRAME |
+------+-------------------+------------+
| 4 | 16/32/64/128 | 8 |
+------+-------------------+------------+
| HEAD | Payload | CRC8 |
+-----+--------------------+------------+
MSB LSB
```
帧头包含4比特数据其中最高位比特用于指示是否启动数据传输
次高位置0保留最低两位用于指示本次传输的数据量。
载荷支持16、32、64、128比特四种数据。
最后采用8比特校验码作为结束
校验多项式为: $x^8 + x^2 + x + 1$。
当处于空闲状态不用传输数据时发送端将LVDS信号电平拉高。
当传输数据时发送端将LVDS电平拉低两个数据周期启动数据发送
接着发送两比特数据指示本次载荷数据量,
其中0表示16比特1表示32比特2表示64比特3表示128比特
帧头发送完毕后紧接着将帧头指示的数据量的数据载荷发送;
最后将载荷计算得到的CRC8校验码发送
考虑到接收端可能由于信号亚稳态或者串并转换不能正确采集输入数据,
协议要求接收端在接收数据之前必须先和发送端同步。
发送端通过发送同步码来同步接收端,
当完成设定数量的同步码发送完毕后再发送一个结束码结束同步过程。
同步码为字符串”hfnl”对应的32比特数据
接收码为”exit”对应的32比特数据。
![lvds_prot](assets/lvds_prot.png)
发送和接收的状态机如上图所示,
接收端在启动时会被初始化到未同步状态,
此时必须接收到足够次数的同步码之后才能进入确认状态,
直道接收到确认码之后发送端和接收端会同时进入就绪状态。
接收端后续如果在接收数据过程发现CRC8校验码出错
接收端会再次进入未同步状态。
# 7. 应用注意
@ -64,12 +156,79 @@ System模块用于管理芯片上控制的状态为芯片运维和调试提
* 时钟配置完毕
* 芯片复位
## 7.3 配置流程
读出芯片在上电后应该校准校准过程用于完成片上ADC、DAC、PLL以及系统同步校准过程参考[读出子系统运维操作手册](../readout_operate/读出子系统运维操作手册.md)。
在实验中读出芯片的操作遵循数据配置、实验运行和数据采集三个阶段。
### 7.3.1 数据配置阶段
* RO通道配置外部硬件通过SPI接口对读出芯片的寄存器包括输出模式例如直发模式、NCO Only模式、调制模型、波形查找表、波形仓库、输出MCU控制程序及数据。
* RI通道配置外部硬件通过SPI接口对读出芯片的寄存器包括采集模式例如波形模式、解模模式、态结果模型等、读出参数、匹配滤波器权重、采集控制程序及数据。
* Pump通道配置主要配置Pump通道输出的使能信号宽度和相对码字触发的延迟。
若芯片出现异常,在实验配置前应该通过写寄存器来软复位芯片的状态机和寄存器默认值,数据配置用例参考[读出子系统历史无关配置集](../readout_config_set/读出子系统历史无关配置集.md)
### 7.3.2 实验运行阶段
读出芯片的运行通过同步触发信号来启动,
从而确保多个芯片间具有确定的时序关系。
此外考虑到不同类型通信固有延迟不同,
同步信号在芯片内部首先经过同步延迟模块,
同步延迟模块能够为DAQ和AWG分别延迟不同的时间
从而确保读出芯片的DAQ和AWG模块能够协同运行。
同步信号到达DAQ和AWG模块后DAQ和AWG模块内部的MCU分别启动运行
其按照每三个时钟一个指令的速度执行,
MCU根据编程指令修改控制寄存器与发出控制码字
对于AWG控制码字驱动波形输出和Pump使能输出
对于DAQ控制码字驱动数据采集和反馈上报/下发。
MCU运行到退出指令后退出运行并进入空闲状态。
### 7.3.3 实验数据采集阶段
实验数据采集与MCU运行是同时启动的
如果采集数据量较大存在MCU运行结束但是数据还没采集完成的情况
此时数据继续写入到缓存区,
主动数据上报模块继续从缓存中拿取数据并通过数据上报接口推送出去,
当缓存中数据推送完毕后结束实验,
此时可以通过检测推送数据量与目标数据量是否相等,
控制发出读请求信号来指示实验是否完毕。
若不能提前确定采集的数据量,
则只能在MCU运行结束后通过等待一定的时间
通过检测是否有数据返回来判断实验是否完成。
# 8. 寄存器定义
## 8.1 寄存器摘要
读出芯片偏移地址空间分配如表 2所示用户可以通过读写相应地址来控制读出芯片功能和访问芯片状态。读出芯片地址空间包含系统配置状态、模拟配置状态、DAQ配置状态、AWG配置状态以及PLL配置状态五个部分。
|功能划分|子模块|开始地址|空间大小|
|:-:|:-:|:-:|:-:|
||||
读出芯片偏移地址空间分配如下所示,
用户可以通过读写相应地址来控制读出芯片功能和访问芯片状态。
读出芯片地址空间包含系统配置状态、模拟配置状态、DAQ配置状态、AWG配置状态以及PLL配置状态五个部分。
@import "seg_define.csv"
* 注1DAQ和AWG各自包含一个MCU模块
MCU模块仅能够访问模块内部的控制器指令、控制器数据和寄存器配置
访问基地址分别重新映射到了0x000000, 0x100000和0x200000;
* 注2MCU仅能够显示访问控制器数据和对应寄存器配置数据。
对于控制器指令空间,控制器自动读取指令并运行,无法显式访问和修改数据。
* 注3匹配滤波器参数和匹配滤波器权重分别对应FPGA和ASIC平台
FPGA平台受限于计算资源有限采用系数直接存储的方案
需要额外配置0x580000地址数据此时0x500000地址中仅包络参数有效。
## 8.2 操作码字定义
### 8.2.1 激励输出控制
@import "../readout_program/ri_codeword.md"
### 8.2.2 采集处理控制
@import "../readout_program/ro_codeword.md"
## 8.3 寄存器/存储详细定义
读出芯片的详细寄存器/存储定义参考[读出芯片IDS表](script/读出子系统IDS表.xls)
相应的驱动软件配置文件参考[读出芯片IDS表](ids/读出子系统IDS表.json)。
# 9. 芯片尺寸