SpyGlass DFT ADV早期可测试性分析:满足汽车电子严苛的可测试性要求

SNUG Taiwan 2018 2018 30 页

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 ADV关键特性和优势

使用SpyGlass DFT的设计流程

RTL测试签核与SpyGlass DFT ADV — 在流程早期解决可测试性问题:

- 验证扫描准备状态 - 提高故障和测试覆盖率 - 识别和隔离X源 - 提高ATPG 自动测试向量生成效率 - 测试和功能模式的连接性验证

流程:RTL → SpyGlass DFT ADV → 具有高可测试性的RTL → Design Compiler / DFTMAX (DFT) → TetraMAX (ATPG) → ATE

图:使用SpyGlass DFT的设计流程

RTL Stuck-At可测试性影响报告

- FC — 故障覆盖率(Fault Coverage) - TC — 测试覆盖率(Test Coverage)

影响ATPG Stuck-At覆盖率的可测试性问题分为10类: - 估计覆盖率报告非常快速地呈现测试覆盖率问题的图景 - 报告从当前估计覆盖率开始,然后给出额外的RTL建议以提高覆盖率

图:RTL Stuck-At可测试性影响报告

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示例 - 五大支柱总结图