BIST会对锁步核做什么?
在采用锁步核(Lockstep Cores) 设计的系统中(常见于高可靠性应用,如汽车电子、航空航天、工业控制等),BIST(内建自测试)的实施需要特别考虑锁步架构的特性,其核心目标是确保冗余核的同步性不被破坏,同时有效测试每个核的硬件完整性。以下是BIST对锁步核的关键处理逻辑和设计进行的整理:
1. 锁步核的核心原理
- 冗余执行: 两个或多个完全相同的处理器核(如Core A和Core B)同步执行相同的指令流。
- 实时比较: 每个时钟周期,两个核的输出(如数据、地址、状态信号)会被一个比较器(Comparator) 实时比对。
- 错误检测: 如果输出不一致,比较器触发错误信号(如中断、复位或安全状态切换),实现故障容错。
2. BIST对锁步核的测试挑战
- 同步性保护: BIST测试过程不能破坏两个核的锁步同步,否则会触发虚假错误。
- 比较器可靠性: 比较器本身也需要测试(否则可能成为单点故障)。
- 测试覆盖完整性: 需确保两个核及比较器均被充分测试,避免隐藏缺陷。
3. BIST的应对策略与设计
(1) 同步化测试激励注入
-
测试向量同步生成:
BIST控制器为两个核生成完全相同的测试向量序列,确保两者在测试期间保持输入同步。示例流程:
BIST Controller → 生成测试向量 → 同时输入 Core A 和 Core B -
时钟与时序控制:
测试时钟需与系统时钟严格同步,避免因时序偏移导致锁步失配。
(2) 响应采集与签名分析
-
独立响应捕获:
每个核的输出响应被独立捕获到各自的响应分析器(如MISR)中,生成独立签名(Signature A, Signature B)。 -
签名双重验证:
- 核内自检: 每个核的签名与自身预期签名比较(由BIST控制器完成)。
- 核间一致性检查: 比较 Signature A 和 Signature B 是否一致(验证锁步同步性)。
安全逻辑:
若 Signature A ≠ 预期签名 → 标记 Core A 故障
若 Signature B ≠ 预期签名 → 标记 Core B 故障
若 Signature A ≠ Signature B → 标记锁步同步故障
(3) 比较器自测试(Critical!)
-
比较器BIST(Comparator BIST):
专门设计测试逻辑,向比较器注入人为制造的差异信号,验证其能否正确检测不一致:测试步骤:
- 控制Core A输出固定模式X,Core B输出模式Y(X≠Y);
- 检查比较器是否触发错误信号;
- 恢复同步输出,检查错误信号是否解除。
-
冗余比较器: 高可靠系统中可能部署双比较器,通过BIST交叉验证其功能。
(4) 测试模式切换控制
- 安全状态机:
BIST控制器需在安全状态(如空闲态) 下启动测试,避免干扰关键任务。 - 原子化测试执行:
测试过程需快速、原子化完成,减少系统暴露在非锁步状态的时间。
4. 典型工作流程
- 启动: 系统进入安全状态(如复位后),BIST控制器激活。
- 初始化: 复位所有测试逻辑,确保核同步。
- 执行测试:
- 同步向双核注入相同测试向量;
- 独立捕获响应并生成签名;
- 触发比较器自测试逻辑。
- 结果判定:
- 检查每个核的签名是否正确;
- 验证双核签名是否一致;
- 确认比较器能否正确报错。
- 输出: 生成全局报告(如 PASS / FAULT_CoreA / FAULT_Comparator)。
总结
BIST对锁步核的核心逻辑是:通过同步化测试激励保持双核锁步,独立验证每个核的硬件正确性,并专门测试比较器功能。这种设计确保了冗余架构的可靠性不被测试过程破坏,同时满足了高安全性场景对“自测试能力”的苛刻要求。