---
html:
toc: true
embed_local_images: true
embed_svg: true
---
# 版本信息
| 版本号 | 作者 | 修订原因 | 修订内容 | 日期 |
| :----: | :----------: | :------- | :------------------------------------------------------- | :--------: |
| v1.0 | 周爽| 初始版本 | - | 2026.04.13 |
# 1. 引言
本文档具体描述了 ez-Q 2.5 测控电子学固件的设计、仿真、测试等方面的具体要求与实现方案,是固件设计人员进行固件功能开发、固件系统集成与测试等工作的依据。
# 2. 依据文件
| 序号 | 文件编号及文件名称 | 版本号 |
| :--: | :------------------------------------------------------------: | :----: |
| 1 | ez-Q 2.5-RS-01_ez-Q 2.5测控系统研制项目需求文档 | v1.2 |
| 2 | ez-Q 2.5-SDD-01_ez-Q 2.5测控系统研制项目总体设计报告 | v1.0 |
| 3 | ez-Q 2.5-SDD-03_ez-Q 2.5测控系统标准交互协议及控制服务接口设计 | v1.3 |
| 4 | ez-Q 2.5-TK-SDD-001-调控子系统设计报告 | v1.0 |
| 5 | ez-Q 2.5-RD-SDD-01_ez-Q 2.5读出子系统总体设计 | v1.0 |
| 6 | ez-Q 2.5-CC-SDD-01_ez-Q 2.5通信子系统设计报告 | v1.0 |
| 7 | ez-Q 2.5-FB-SDD-01_ez-Q 2.5反馈子系统设计报告 | v0.2 |
| 8 | ez-Q 2.5-SDD-05_ez-Q 2.5测控系统调控通道编程控制模型 | v0.3 |
| 9 | ez-Q 2.5-SDD-09_ez-Q 2.5测控系统调控通道历史无关的配置功能项 | v0.3 |
| 10 | ez-Q 2.5-SDD-07_ez-Q 2.5读出子系统编程控制模型 | v0.1 |
| 11 | ez-Q 2.5-SDD-08_ez-Q 2.5读出子系统历史无关配置集 | v0.1 |
| 12 | ez-Q 2.5子系统间通信协议 | v0.1 |
# 3. 定义、简写和缩略语
| 序号 | 名词/缩写 | 解释 |
| :--: | :-------: | :-------------------------------------------------------------------------------------------------- |
| 1 | ez-Q 2.5 | CMOS测控系统的室温芯片板卡版本(ez-Q 2.0机箱框架) |
| 2 | FPGA | Field Programmable Gate Array,现场可编程逻辑门阵列 |
| 3 | DDR | Double Data Rate SDRAM,双倍速率同步动态随机存储器 |
| 4 | Flash | Flash Memory,非失性存储 |
| 5 | SFP | Small Form Pluggable,小型可插拔模块 |
| 6 | UDP | User Datagram Protocol,用户数据报协议 |
| 7 | TCP | Transmission Control Protocol,传输控制协议 |
| 8 | GT | Gigabit Transceiver,吉比特收发器 |
| 9 | TOE | Tcp Offload Engine,TCP卸载引擎 |
| 10 | IIC | Inter-Integrated Circuit,集成电路总线 |
| 11 | UART | Universal Asynchronous Receiver/Transmitter,通用异步收发器 |
| 12 | PL | Progarmmable Logic,可编程逻辑 |
| 13 | PS | Processing System,处理系统 |
| 14 | Aurora | 基于Serdes技术的Xilinx高速串行通信协议 |
| 15 | eMMC | embedded MultiMediaCard, 嵌入式多媒体卡 |
| 16 | EEPROM | Electrically Erasable Programmableread only memory,带电可擦可编程只读存储器 |
| 17 | LVDS | Low-Voltage Differential Signaling,低压差分信号 |
| 18 | PUMP | 泵浦信号,控制量子放大器的高频微波信号(>6GHz) |
| 19 | SMA | SubMiniature version A,一种常用的射频同轴连接器类型 |
# 4. 固件设计需求
本章节基于 ez-Q2.5 测控电子学固件的任务背景和需求来源,提炼出各个子系统的固件设计需求。
## 4.1. 调控子系统固件需求
| 序号 | 功能 | 固件需求 |
| :--: | :----------------: | :------------------------------------------------------------------------------------------------ |
| 1 | 与通信子系统通信 | 具备与通信子系统的Aurora高速通信功能,接口数据率 ≥ 6Gbps; |
| 2 | XY信号输出 | 具备对XY芯片的控制功能,通过SPI接口对XY芯片进行配置,实现XY信号的输出; |
| 3 | RESET信号输出 | 具备对RESET芯片的控制功能,通过SPI接口对RESET芯片进行配置,实现RESET信号的输出; |
| 4 | Qubit Z信号输出 | 具备对Z芯片的控制功能,通过SPI接口对Z芯片进行配置,实现Qubit Z信号的输出; |
| 5 | Coupler Z信号输出 | 具备对Z芯片的控制功能,通过SPI接口对Z芯片进行配置,实现Coupler Z信号的输出; |
| 6 | 温度监视 | 具备对调控板的温度信息收集功能; |
| 7 | 状态上报 | 具备关键业务信息监测、单板状态监测以及状态信息上报功能; |
| 8 | 掉电不易失存储功能 | 具备对非易失性存储的读写功能,实现参数管理与控制; |
| 9 | 大容量数据存储 | 具备通过DDR进行大容量数据存储的功能; |
| 10 | 固件注入重载功能 | 具备固件远程升级功能; |
## 4.2. 读出子系统固件需求
| 序号 | 功能 | 固件需求 |
| :--: | :----------------------: | :----------------------------------------------------------------------------------------------- |
| 1 | 与通信子系统通信 | 具备与通信子系统的Aurora高速通信功能,接口数据率 ≥ 6Gbps; |
| 2 | 读出激励信号输出 | 具备对RBPU芯片的控制功能,通过SPI接口对RBPU芯片进行配置,实现读出激励信号的输出; |
| 3 | 读出基带信号处理 | 具备对RBPU芯片采集数据的处理功能,通过LVDS接口接收RBPU芯片采集的数据,实现读出基带信号处理; |
| 4 | 全局反馈态传输和分发功能 | 具备对全局反馈态数据的的传输和分发功能,通过高速接口传输给反馈子系统,接口数据率 ≥ 10Gbps; |
| 5 | 温度监视 | 具备对读出板的温度信息收集功能; |
| 6 | 状态上报 | 具备关键业务信息监测、单板状态监测以及状态信息上报功能; |
| 7 | 掉电不易失存储功能 | 具备对非易失性存储的读写功能,实现参数管理与控制; |
| 8 | 大容量数据存储 | 具备通过DDR进行大容量数据存储的功能; |
| 9 | 固件注入重载功能 | 具备固件远程升级功能; |
## 4.3. 通信子系统固件需求
| 序号 | 功能 | 固件需求 |
| :--: | :----------------: | :----------------------------------------------------------- |
| 1 | 与上位机通信 | 具备与上位机的万兆以太网通信功能,支持UDP协议与TCP协议; |
| 2 | 与调控板通信 | 具备与调控板Aurora高速通信功能,接口数据率 ≥ 6Gbps; |
| 3 | 与读出板通信 | 具备与读出板Aurora高速通信功能,接口数据率 ≥ 6Gbps; |
| 4 | PUMP通信控制功能 | 具备对PUMP板卡的控制功能,包括频率设置,功率设置,状态查询; |
| 5 | 混频通信控制功能 | 具备对混频板卡的控制功能,包括频率设置,衰减设置,状态查询; |
| 6 | 同步控制功能 | 具备同步信号的产生与分发功能; |
| 7 | 机箱控制功能 | 具备机箱风扇控制,机箱内板卡独立上下电功能; |
| 8 | 温度监视 | 具备对通信板的温度信息收集功能; |
| 9 | 状态上报 | 具备关键业务信息监测、单板状态监测以及状态信息上报功能; |
| 10 | 掉电不易失存储功能 | 具备对非易失性存储的读写功能,实现参数管理与控制; |
| 11 | 大容量数据存储 | 具备通过DDR进行大容量数据存储的功能; |
| 12 | 运维管理功能 | 具备运维管理功能,支持独立的运维管理通道; |
| 13 | 固件注入重载功能 | 具备固件远程升级功能; |
## 4.4. 反馈子系统固件需求
| 序号 | 功能 | 固件需求 |
| :--: | :----------------: | :------------------------------------------------------------------------- |
| 1 | 与上位机通信 | 具备与上位机的万兆以太网通信功能,支持UDP协议与TCP协议; |
| 2 | 态汇聚功能 | 具备态信息汇聚功能,支持与读出板间的高速通信,接口数据率 ≥ 10Gbps; |
| 3 | 反馈命令分发功能 | 具备反馈命令分发功能,支持与读出板间的高速通信,接口数据率 ≥ 10Gbps; |
| 4 | 比特动态映射 | 具备在一个线路中动态切换任意比特映射表的功能; |
| 5 | 全局反馈总延迟 | 要求包括汇聚、处理和分发,含通信在内的传输时间不超过1us; |
| 6 | 温度监视 | 具备对反馈板的温度信息收集功能; |
| 7 | 状态上报 | 具备关键业务信息监测、单板状态监测以及状态信息上报功能; |
| 8 | 掉电不易失存储功能 | 具备对非易失性存储的读写功能,实现参数管理与控制; |
| 9 | 大容量数据存储 | 具备通过DDR进行大容量数据存储的功能; |
| 10 | 固件注入重载功能 | 具备固件远程升级功能; |
## 4.5. 易用性和可测试性需求
对于用户而言,机箱固件基本等同于黑盒,出现问题时很难通过远程访问对固件进行问题排查于定位。为提升固件系统的易用性和可测试性,从以下几方面入手:
1. 固件内增加异常监控,对传输错误、解码错误等异常进行监测记录;
2. 对关键状态机增加状态机活跃监测机制,状态机卡死时报告异常;
3. 对关键状态机记录状态机跳转日志,便于排查状态机跳转是否正常;
4. 反馈固件支持历史信息读取;
5. 支持运行状态监控,定时上报状态信息;
6. 支持远程复位,实现固件远程一键重启;
7. 支持固件远程升级;
8. 支持参数存储与加载。将部分配置参数提前写入板卡上的非易失性存储,上电时固件自动加载,减少配置操作。
提高易用性和可测试性的具体方案如下表所示。
| 序号 | 需求 | 设计方案 |
| :--: | :----------------: | :------------------------------------------------------------------------- |
| 1 | 状态机活跃监测机制 | 检测状态机的状态停留时间,通过状态停留是否超时判断状态机是否卡死。状态机卡死时,将异常信息记录至固件寄存器,支持上位机远程读取异常信息; |
| 2 | 状态机跳转日志 | 记录状态机最近若干次的状态与对应的状态停留时间,作为状态机跳转日志,支持上位机远程读取该日志; |
| 3 | 反馈历史信息读取 | 在DDR中记录最近若干条的反馈信息,支持上位机远程读取该信息;|
| 4 | 状态监测与异常告警 | 固件内记录系统的各种状态信息与异常告警,并定期上报。需要记录的内容包括但不限于:链路状态、流量统计、数据错误统计、温度信息等; |
| 5 | 远程复位 | 固件内定义复位寄存器,上位机软件通过写入该寄存器来触发远程复位; |
| 6 | 固件远程升级 | 固件支持flash的读写控制;机箱系统支持并行升级; |
|7| 参数存储与加载 | 固件支持eMMC/EEPROM的读写控制,上电初始化阶段自动从eMMC/EEPROM读出配置参数。|
# 5. 仿真与测试要求
各子系统的固件要经过固件仿真、固件自测、系统测试等阶段,来排查固件设计中可能存在的问题,充分验证固件设计的正确性、可靠性。本章节从固件仿真和固件自测2个方面来具体描述。
## 5.1. 固件模块仿真要求
为验证固件功能、查找功能缺陷,需要对固件进行模块级仿真,并输出仿真报告。固件模块仿真需要包括功能验证与代码覆盖率分析两部分。
功能验证阶段,需要结合仿真波形分析模块的输入输出时序、内部关键信号、状态机跳转等是否与设计相符,以验证模块是否满足了设计要求。对于有性能需求的模块(如数据率、输入输出延迟等),需要结合仿真波形给出性能评估。
代码覆盖率分析包括行覆盖率、分支覆盖率、条件覆盖率、翻转覆盖率和FSM覆盖率等,它可以衡量验证工作是否充分全面,具体要求如下表所示。
| 序号 | 验证项 | 指标 | 仿真工具 |
| :--: | :----------------: | :--------: | :--: |
| 1 | 行覆盖率 | ≥ 95% | VCS、QuestaSim 等|
| 2 | 分支覆盖率 | ≥ 90% | VCS、QuestaSim 等|
| 3 | 条件覆盖率 | ≥ 90% | VCS、QuestaSim 等|
| 4 | 翻转覆盖率 | ≥ 95% | VCS、QuestaSim 等|
| 5 | FSM覆盖率 | ≥ 95% | VCS、QuestaSim 等|
## 5.2. 固件自测试要求
完成固件模块仿真后,对固件进行板卡级自测试,并输出固件自测试报告,固件需保证如下功能正常:
1. 通信接口基础测试:
- 完成与系统联调相关的所有通信接口(如:SPI、网络接口、自定义数据链路等)的初始化、配置与基础连通性测试;
- 接口应能稳定地发送和接收测试数据帧,并验证数据的基本完整性与正确性;
2. 硬件基础自检:
- 完成对关键硬件资源的初始化与功能性检查;
- 验证电源、时钟源、关键存储器(如RAM, Flash, eMMC, EEPROM)的基本读写功能与完整性;
3. 核心功能模块自验证:
- 完成对固件内部核心功能模块(如:数据处理流水线、控制算法、关键状态机、中断服务程序等)的基础功能测试;
- 测试应覆盖模块的主要输入输出路径和处理逻辑,使用模拟输入、预设模式或内部激励源进行验证;
- 模块输出结果需符合预期设计规格,或在预设容差范围内。关键模块需报告其自检状态(通过/失败);
4. 异常处理与容错能力:
- 错误检测与恢复机制:验证固件中实现的错误检测机制能够准确识别异常情况,并采取适当的措施进行恢复或报告;
- 边界条件测试:对所有输入参数和操作条件执行边界值分析,确保固件能够在极端条件下稳定运行。
# 6. 文档输出要求
固件设计人员需输出 **《固件设计文档》、《固件IDS表》、《固件仿真报告》和《固件调试报告》** 作为后续验收的内容。
# 7. 固件功能实现方案
本章节对部分固件功能给出实现方案,供固件设计人员参考。
## 7.1. 状态机监测机制
对于关键路径的状态机(如 Transaction 的收发与解析)加入活跃监测与日志记录机制,便于故障定位。状态机监测机制具体包括:
1. 通过计时器记录状态机在各个状态停留的时间;
2. 根据状态机设计给出各个状态的超时标准;如果超时,输出异常指示,记录至寄存器,也可将必要的异常信息记录至寄存器,这些寄存器支持从上位机读取;例如,Transaction 解析的状态机出现异常,将 Transaction 的 64-bit 头部作为异常信息记录至寄存器;
3. 通信链路上的状态机(如 Aurora 通信)出现超时异常时,固件需要对状态机进行复位,保证异常出现时上位机仍然可以访问固件寄存器;
4. 将状态机在各个状态停留的时间和状态跳转记录作为日志记录到寄存器,支持从上位机读取;每条日志 32-bit,其中 [31:24] 为状态,[23:0] 为状态停留时间;日志条数可根据状态数量调整,不少于状态数量的两倍;状态机日志格式如下表所示。
| 序号 | [31:24] | [23:0] |
| :--: | :--------: | :------: |
| 1 | 当前状态 | 停留时间 |
| 2 | 上次状态 | 停留时间 |
| 3 | 上上次状态 | 停留时间 |
| 4 | ... | ... |
## 7.2. 固件远程更新
支持固件远程更新的板卡包括通信板、反馈板、调控板和读出板,通过远程控制 FPGA 给 flash 写入 Bin 数据的方式实现固件更新。
### 7.2.1. 工作流程
固件更新流程由上位机发起,如图7.1所示,主要包括3个步骤:
- (1)上位机通过 TCP 发送 Bin 数据至通信板(通信板、调控板和读出板的 Bin)和反馈板(反馈板的 Bin);通信板将调控板和读出板的 Bin 数据转发至对应的板卡;
- (1.1)对于通信板和反馈板,PL 将接收到的 Bin 数据缓存到 PL 侧的 DDR 中;对于调控板和读出板,FPGA 将接收到的 Bin 数据缓存到 DDR 中;
- (2)完成 Bin 数据发送后,上位机在指定的固件寄存器(具体查看固件 IDS 表)处写入固件更新指令;
- (2.1)固件接收到固件更新指令后;对于通信板和反馈板,PL 将 Bin 数据从 DDR 中读出;对于调控板和读出板,FPGA 将 Bin 数据从 DDR 中读出;
- (2.2)对于通信板和反馈板,PL 将 Bin 数据发送给 PS;
- (2.3)对于通信板和反馈板,PS 将 Bin 数据写入 flash;对于调控板和读出板,FPGA 将 Bin 数据写入 flash;
- (3)上位机通过读取固件寄存器来获取固件更新状态;