SpyGlass DFT ADV早期可测试性分析:满足汽车电子严苛的可测试性要求
SpyGlass DFT ADV早期可测试性分析:满足汽车电子严苛的可测试性要求
会议: SNUG Taiwan 2018 作者: Kevin Tsai (Synopsys) 页数: 30
议程
1. 为什么可测试性分析必须在RTL编码期间开始 2. SpyGlass DFT ADV如何提供帮助 3. 面向ISO 26262 道路车辆功能安全标准的DFT 4. 测试和功能模式连接性的高效验证
为什么早期开始可测试性分析
RTL中的热点问题: - 大型比较器、大型多路选择器 - 非扫描触发器 - 难以测试的故障,测试点策略 - 不可测试的故障
"我们需要在这个芯片上达到99.5%的覆盖率,你能做到吗?" 从网表开始做是非常困难的。
SpyGlass DFT ADV — 关键特性和优势
五大核心能力:
1. 测试点选择 — 确保RTL可扫描并加速DFT时间 2. ATPG覆盖率估算 — 确定RTL设计是否达到覆盖率目标 3. DFT违例检查 — 提高FC/TC,隔离X源,降低测试成本 4. 连接性验证 — 验证SoC组装时的DFT连接 5. 软错误分析 — 计算ISO 26262的SPFM单点故障度量指标
使用SpyGlass DFT的设计流程
RTL测试签核与SpyGlass DFT ADV — 在流程早期解决可测试性问题:
- 验证扫描准备状态 - 提高故障和测试覆盖率 - 识别和隔离X源 - 提高ATPG 自动测试向量生成效率 - 测试和功能模式的连接性验证
流程:RTL → SpyGlass DFT ADV → 具有高可测试性的RTL → Design Compiler / DFTMAX (DFT) → TetraMAX (ATPG) → ATE
RTL Stuck-At可测试性影响报告
- FC — 故障覆盖率(Fault Coverage) - TC — 测试覆盖率(Test Coverage)
影响ATPG Stuck-At覆盖率的可测试性问题分为10类: - 估计覆盖率报告非常快速地呈现测试覆盖率问题的图景 - 报告从当前估计覆盖率开始,然后给出额外的RTL建议以提高覆盖率
RTL早期可测试性分析 — 设计者视图
故障浏览器(Fault Browser): - 为设计者提供直观的故障定位视图 - 帮助快速识别可测试性问题
原理图(Schematic): - 设计者可以看到故障在原理图中的位置 - 辅助RTL修改决策
提高故障覆盖率和测试覆盖率
- 在RTL上的TP分析为增加ATPG可测试故障数量提供了有针对性的指导 - 示例:使这一条网络可观测可将ATPG可测试故障数量增加1.18%
识别难以测试的模块(随机阻抗)
估计随机模式故障覆盖率: - 识别哪些模块对随机模式具有高阻抗性 - 帮助聚焦测试点插入工作
通过RTL修改解决可测试性问题
识别和修改影响ATPG QoR的RTL: - 在RTL阶段修改设计以改善测试覆盖率 - 比在网表级别修改更高效
测试点以提高ATPG QoR
测试点报告示例:
# Initial Random Pattern Test Coverage : 83.25356
Random Pattern Count : 64000
Requested Test Points : 676
Cut-Off Gain : 0.00000
Index Test_Point_Type Net Comment
1 control-1 PCU.LCwrite_repeat #Gain: 0.39448 Cov: 83.64803
2 observe agu.addr_alu_H.bound_chk... #Gain: 0.35836 Cov: 84.00639
3 observe agu.addr_alu_L.bound_chk... #Gain: 0.35836 Cov: 84.36475
4 observe agu.addr_alu_H.bound_chk... #Gain: 0.27641 Cov: 84.64117
5 observe agu.addr_alu_L.bound_chk... #Gain: 0.27641 Cov: 84.91758
6 control-1 PCU.LCwrite_do #Gain: 0.25549 Cov: 85.17307
7 control-1 agu.aluinH_M[15] #Gain: 0.23299 Cov: 85.40607
[...]
110 observe PCU.LC_do[8] #Gain: 0.01584 Cov: 88.73952
有序测试点列表,用较少的ATPG模式覆盖难以测试的故障:83% → 89%
使能自门控逻辑测试点插入
- 控制点复用现有逻辑 — 减少拥塞和面积开销 - SE上的特殊控制点使冗余故障可测试 - 功能触发器的高复用率
物理感知测试点
流程: SpyGlass DFT ADV → 分析生成测试点 → DFTMAX自动插入测试点 → Netlist with Test Points → TetraMAX ATPG → 紧凑模式集
特点: - 基于SpyGlass的测试点选择 - 调用使用适当设计数据分析 - 结果测试点自动插入DFTMAX
SpyGlass TP在DFTMAX中的集成
set_dft_configuration –testability enable
set_testability_configuration –target { } –control_signal TM
create_test_protocol
dft_drc
change_names –rules verilog –hier
run_test_point_analysis
preview_dft -show all -test_points all
insert_dft
可任意选择组合测试点目标: - 随机阻抗 - X阻断 - 多周期路径 - 自门控
X源识别分析
- 虽然ATPG在捕获模式期间处理X,但这会影响ATPG用最小模式集高效覆盖所有ATPG可测试故障的有效性 - SpyGlass识别会影响ATPG控制/观察的X源(移位、stuck-at捕获和跳变延迟捕获模式) - 用户可以将分析范围限定为X源类型的子集 - X密度分析提供按优先顺序排列的X源列表,用于使用TP优先隔离
X源类型:
| 类型 | 描述 |
| BB | 黑盒实例 |
| PI | 主输入/双向端口 |
| UIO | 不可控的I/O |
| HN | 浮空网络 |
| MD | 多驱动网络/引脚 |
| NSF | 非扫描触发器 |
| NSL | 非扫描锁存器 |
| NTL | 非透明锁存器 |
| FP | 伪路径 |
| MCP | 多周期路径 |
对汽车LBIST至关重要
X密度分析浏览器
- 按设计层次显示X源分布 - 量化受影响的X捕获点数量 - 按设计层次量化X密度 - 数据可按任何列排序
X源可视化
- 设计者可以通过RTL更改解决X源问题 和/或 - 在网表上使用一键式DFTMax流程: - 运行SpyGlass X源分析 - DFTMax插入X源隔离TP
注:对于跳变延迟测试X捕获,如果SpyGlass确定MCP捕获触发器未被禁用,隔离控制信息将被传递给DFTMax。
DFT连接性挑战
常见连接性问题: - 选择信号错误的多路选择器 - 时钟馈送到错误的模块 - 背靠背的片上时钟控制器
SpyGlass DFT ADV在SoC顶层验证数千个DFT连接!
连接性验证场景/示例
要求值检查: - 检查所有PLL复位处于非活动值 - 时钟门控单元测试使能引脚未被固定
连接性检查: - 从A点到B点的跨层次连接 - 功能时钟由CLK整形器输出驱动 - 内核时钟由时钟门控单元驱动
条件检查: - 存储器休眠由IP级引脚控制或由功能模式下的配置寄存器控制
SpyGlass DFT ADV连接性检查
SoC连接性验证框架:验证IP和SoC层面的块级假设
- 跨IP和SoC的连接性意图 - 紧凑和可移植的约束 - 方法论驱动的检查 - 非设计特定 - 可重用 - 补充基于仿真的验证 - 快速找到连接性缺陷的根本原因
路径检查:A → B → C(期望路径),D → E(非法路径) 值检查:1 → 1(期望值),F → G(非法值)
使用设计对象表达连接性意图
预定义设计对象类型(新增):
| 类别 | 对象 |
| 触发器 | FLIP_FLOP_DATA, FLIP_FLOP_OUT, FLIP_FLOP_CLOCK, FLIP_FLOP_ENABLE, FLIP_FLOP_SET, FLIP_FLOP_RESET |
| 锁存器 | LATCH_DATA, LATCH_OUT, LATCH_ENABLE, LATCH_SET, LATCH_RESET |
| 时钟门控单元 | CGC_CLOCK_IN, CGC_CLOCK_OUT, CGC_SYSTEM_ENABLE, CGC_TEST_ENABLE |
| I/O端口 | ALL_PORTS, INPUT_PORTS, OUTPUT_PORTS, INOUT_PORTS |
| 存储器 | MEMORY_ENABLE, MEMORY_CLOCK, MEMORY_ADDRESS, MEMORY_DATA, MEMORY_OUT |
| 黑盒 | BLACK_BOX, BLACK_BOX_INPUT, BLACK_BOX_OUTPUT |
| 杂项 | TIED_1, TIED_0, TIED_SGDC, TIED_1_SGDC, TIED_0_SGDC |
| 扫描触发器 | SCAN_FLIP_FLOP_OUT, SCAN_FLIP_FLOP_ENABLE, SCAN_FLIP_FLOP_CLOCK, SCAN_FLIP_FLOP_SET, SCAN_FLIP_FLOP_RESET |
| 多路选择器 | MUX_SELECT, MUX_DATA, MUX_OUTPUT |
| 其他 | UNDRIVEN_NET, X_SOURCES |
- 设计对象集合 - 为触发器、锁存器、多路选择器、时钟门控单元等的特定引脚预定义逻辑名称 - 紧凑灵活的规范 - 即使在层次路径未知时也可用 - 使能方法论驱动的检查
高级连接性检查 — UDM/Filter_cmt示例
# 找到所有由clkA驱动的mux
require_path –from clkA –to_one_of_type MUX_DATA -constraint_message_tag CLKA_TO_MUX_DATA
对于由ClkA驱动的mux,找到所有也由ClkB驱动的数据
require_path –from clkB –to_one_of_type MUX_DATA \
-instance_filter_in_cmt_to CLKA_TO_MUX_DATA \
-constraint_message_tag CLK_A_B_TO_MUX_DATA
验证由clkA和clkB驱动的mux的选择信号由Tdf_clk_sel驱动
require_path -from Tdf_clk_sel –to_type MUX_SELECT \
-instance_filter_in_cmt_to CLK_A_B_TO_MUX_DATA
在众多多路选择器中,通过特定的信号(ClkA和ClkB)识别特定的"FB_MUX",然后检查其选择信号是否正确连接。
条件/选择性检查使用"filter_cmt"
- 显示感兴趣的多路选择器中哪些通过/未通过连接性要求 - 提供精确的过滤机制进行目标检查
总结:测量、处理和改善早期可测试性问题
RTL签核与SpyGlass DFT ADV的五大支柱:
1. 早期可测试性实现高覆盖率 - 在设计阶段早期解决可测试性问题,包括TP提高覆盖率
2. X源识别 - 隔离具有高密度影响的X源TP
3. 难以测试的故障 - 通过TP减少ATPG模式数和运行时间
4. 功能安全 - 软错误传播的静态分析 - ISO 26262 道路车辆功能安全度量用于设计改进
5. SoC连接性 - 系统检查所有模式下的连接 - 早期验证,补充仿真
致谢
Thank You / 谢谢
图片索引
本文共224张图片,存放于 SNUG_TPC_Spyglass_Tsai_SpyGlass_DFT_ADV_paper_images/ 目录。
由于本文为PPT格式,图片数量众多,完整图片索引请参考原始图片目录。关键图片包括: - SpyGlass DFT ADV五大特性和优势概览 - 使用SpyGlass DFT的设计流程图 - RTL Stuck-At可测试性影响报告 - 故障浏览器和原理图视图 - 测试点增益报告 - X源识别分析表 - X密度分析浏览器 - DFT连接性挑战示意图 - 连接性验证场景示例 - 设计对象类型表 - 高级连接性检查UDM示例 - 五大支柱总结图