3. 验证需求捕获与追踪

在星载电子设备的研制流程中,系统接口控制文档(ICD,Interface Control Document)是接口验证需求的原始来源。ICD 定义了设备之间的物理连接、信号定义、时序约束和协议格式,但这些描述是"系统级"的,不能直接作为验证用例的输入。验证工程师需要完成一次关键转换:把 ICD 中的接口约定,翻译成可执行、可度量、可追踪的验证需求,并建立需求—用例—覆盖率之间的双向追踪矩阵。

本节以某星载综合电子单元(IEU)与姿态控制计算机(AOCC)之间的高速 LVDS 数据接口为例,说明从 ICD 到验证需求的完整捕获过程。该接口采用 4 对 LVDS 差分线,单向传输,线速率 200 Mbps,帧长 1024 字节,帧头为 0xAA55,帧尾为 16 位 CRC。这些参数在 ICD 中以表格形式给出,验证工程师要做的第一件事,是把它们逐条"翻译"为可验证的陈述。

从 ICD 条目到验证需求的翻译规则

ICD 中的描述通常是"陈述性"的,例如"数据在时钟上升沿采样"。验证需求必须是"可判定"的,即存在明确的通过/失败判据。翻译时遵循三条规则:第一,把物理参数转为测量条件,如"线速率 200 Mbps"转为"在 200 Mbps ± 100 ppm 下连续传输 10^7 帧无错误";第二,把协议字段转为激励与检查点,如"帧头 0xAA55"转为"注入错误帧头 0xAA54,接收端应在 2 个时钟周期内丢弃该帧并置位帧错误标志";第三,把时序约束转为边界扫描,如"建立时间 ≥ 0.3 UI"转为"在 0.25 UI、0.30 UI、0.35 UI 三个建立时间点各注入 1000 帧,统计误码率"。

下表给出该接口的部分 ICD 条目与对应验证需求的映射示例。表中参数为教学示例,用于说明翻译方法,不代表真实型号数据。

ICD 条目原始描述验证需求(可判定)验证方法
IF-LVDS-01线速率 200 Mbps在 200 Mbps ± 100 ppm 下连续发送 10^7 帧,误帧率 ≤ 1×10^-9误码率测试
IF-LVDS-02帧头 0xAA55注入错误帧头,接收端应在 2 个时钟周期内丢弃并置帧错误标志故障注入
IF-LVDS-03帧长 1024 字节发送 1023、1024、1025 字节帧,仅 1024 字节帧被接收边界测试
IF-LVDS-04CRC-16 校验单比特翻转、双比特翻转各注入 1000 次,全部被检出故障注入
IF-LVDS-05建立时间 ≥ 0.3 UI在 0.25/0.30/0.35 UI 下各测 1000 帧,0.30 UI 及以上误码率为 0时序扫描

双向追踪矩阵的建立

验证需求确定后,需要建立"需求—用例—覆盖率"三者的双向追踪。正向追踪回答"每条需求由哪些用例覆盖",反向追踪回答"每个用例为什么存在、覆盖了哪条需求"。双向追踪的价值在于:当某条需求变更时,能立即定位受影响的用例;当某个用例失败时,能立即定位对应的系统接口条目。

追踪矩阵的字段建议包括:需求编号、需求描述、来源 ICD 条目、验证用例编号、用例类型(正常/边界/故障注入)、覆盖率点、当前状态。覆盖率点要具体到信号或字段,例如"帧头错误标志位"、"CRC 校验失败计数器"、"帧长计数器溢出位",而不是笼统的"接口功能覆盖"。

下面用一张关系图展示从 ICD 条目到验证需求、再到用例与覆盖率点的追踪链路。图中左侧为 ICD 条目,中间为验证需求,右侧为用例与覆盖率点,箭头表示追踪方向。

ICD → 验证需求 → 用例/覆盖率 双向追踪关系 ICD 条目 验证需求 用例 / 覆盖率点 IF-LVDS-01 线速率 200 Mbps IF-LVDS-02 帧头 0xAA55 IF-LVDS-03 帧长 1024 字节 IF-LVDS-04 CRC-16 校验 IF-LVDS-05 建立时间 ≥ 0.3 UI REQ-01 误帧率 ≤ 1e-9 REQ-02 错误帧头丢弃 REQ-03 帧长边界判定 REQ-04 CRC 全检出错 REQ-05 时序边界无误码 TC-01 / 误帧率 正常 + 长时 TC-02 / 帧错误标志 故障注入 TC-03 / 帧长计数器 边界扫描 TC-04 / CRC 计数器 故障注入 TC-05 / 时序眼图 时序扫描 反向追踪:用例失败 → 定位需求 → 回溯 ICD 条目 正向:ICD → 需求 → 用例 反向:用例 → 需求 → ICD

覆盖率闭环与变更影响分析

追踪矩阵建立后,需要与覆盖率数据形成闭环。覆盖率不是单一数字,而是分层指标:接口级覆盖率(所有 ICD 条目是否都有对应用例)、字段级覆盖率(帧头、帧长、CRC 等字段是否都有正常与异常用例)、时序级覆盖率(建立/保持时间边界是否扫描)、故障级覆盖率(单比特、双比特、突发错误是否注入)。每一层覆盖率都应能追溯到具体用例编号。

当 ICD 发生变更时,例如帧长从 1024 字节改为 2048 字节,追踪矩阵应能立即给出影响范围:REQ-03 需要修改,TC-03 的边界值从 1023/1024/1025 改为 2047/2048/2049,帧长计数器覆盖率点需要重新确认位宽是否足够。这种变更影响分析能力,正是双向追踪矩阵的核心价值。

建议在需求管理工具中为每条验证需求设置唯一编号,并在用例脚本头部以注释形式标注对应的需求编号。这样即使工具链变更,追踪关系也不会丢失。
常见误区:把 ICD 条目直接复制为验证需求。ICD 描述的是"接口应该是什么样",验证需求描述的是"如何证明接口确实是这样"。前者是设计输入,后者是验证判据,两者不能混用。

最后给出一个可填写的追踪矩阵片段,供实际项目参考。字段可根据项目规模裁剪,但"需求编号—用例编号—覆盖率点—状态"四列建议保留。

需求编号  来源ICD      验证需求摘要           用例编号   覆盖率点              状态
REQ-01   IF-LVDS-01  误帧率≤1e-9            TC-01     误帧率计数器          通过
REQ-02   IF-LVDS-02  错误帧头2周期内丢弃     TC-02     帧错误标志位          通过
REQ-03   IF-LVDS-03  仅1024字节帧被接收      TC-03     帧长计数器溢出位      待测
REQ-04   IF-LVDS-04  单/双比特翻转全检出     TC-04     CRC失败计数器         通过
REQ-05   IF-LVDS-05  0.30UI及以上误码率为0   TC-05     时序眼图裕量          待测

通过上述过程,ICD 中的接口约定被逐条转化为可判定的验证需求,再通过用例与覆盖率点形成双向追踪。这样一套矩阵,既能在验证执行阶段指导用例选择,也能在接口变更时快速评估影响范围,是星载高速接口验证中不可或缺的基础设施。