使用DFTMAX LogicBIST和SpyGlass的内建自测经验分享

SNUG Taiwan 2016 2016 17 页

使用DFTMAX LogicBIST和SpyGlass的内建自测经验分享

作者: CN Ho, Karl Chang (GUC) 会议: SNUG Taiwan 2016 页数: 17 源文件: SNUG_TPC_Spyglass_Dorso_Untitled_paper_1.pdf


Page 1

Figure

使用DFTMAX LogicBIST和SpyGlass的内建自测经验分享

CN Ho, Karl Chang GUC Sep 7, 2016 SNUG Taiwan


Page 2

Figure

议程 - 背景 - 使用DFTMAX LogicBIST进行系统内测试 - 使用SpyGlass DFT ADV提高LogicBIST可测试性 - 案例经验分享 - 结论


Page 3

Figure

背景 — 示例应用 - 网络:上电测试、"在线"核心测试 - 汽车:上电测试、安全关键核心的"在线"测试 - 医疗:装配验证、系统内测试 - 军工:无需复杂线缆和连接器即可轻松测试 - Logic BIST需求:上电测试、系统内测试


Page 4

Figure

系统内测试架构 设计考虑因素: - 时钟源 - 将芯片初始化为系统BIST模式 - 通过/失败比较 - 超时状态

SOC ← 系统Logic BIST控制模块 ← BIST模式 → PLL/分频器 → 模式发生器 → DFTMAX LogicBIST


Page 5

Figure

DFTMAX LogicBIST架构 主要组件: - LogicBIST解压缩器 - LogicBIST压缩器 - LogicBIST控制器 - LogicBIST时钟控制器

主要信号:LBIST_EN, START, STATUS_0/STATUS_1, Scan-in/Scan-out, BIST Clock

架构包含:BIST控制器(FSM, 向量计数器, 移位计数器), PRPG, MISR, XOR移相器, XOR压缩器


Page 6

Figure

状态信号行为

Status[1]Status[0]行为
00IDLE
01Test Running
10Test complete and passed
11Test complete and failed

指示测试完成和通过/失败状态:比较MISR的签名值和用户指定的期望签名值


Page 7

Figure

LogicBIST测试期间隔离设计 - 使用核心封装(core wrapping)功能插入封装链,在自测试期间隔离设计 - 输入可被控制以避免X捕获 - 输出可被观测以确保覆盖率


Page 8

Figure

DFTMAX LogicBIST流程 LogicBIST流程: 1. LogicBIST插入 2. 种子和签名生成 3. 向量生成 4. 验证

使用VCS(或其他)仿真自主LogicBIST,检查PASS和DONE结果。通过TetraMAX运行ATPG,计算PRPG种子、MISR签名和故障覆盖率。反复运行LogicBIST ATPG以找到具有最佳覆盖率的种子。


Page 9

Figure

LogicBIST插入脚本

set_dft_signal -type MasterClock -port CLK -timing {45 55} -view existing_dft
set_dft_configuration -scan_compression enable -logicbist enable -wrapper enable \
  -clock_controller enable
define_test_mode ScanCompression_mode -usage scan_compression -encoding [list ...]
define_test_mode LBIST -usage logicbist -encoding [list ...] ...
set_scan_configuration -chain_count 8 -test_mode wrp_if
set_scan_compression_configuration -chain_count 60 -base_mode wrp_if -test_mode \
  ScanCompression_mode -xtolerance high
set_wrapper_configuration -chain_count 2 -maximize_reuse disable -class core_wrapper
set_logicbist_configuration -chain_count 60 -base_mode wrp_if -test_mode LBIST -clock CLK \
  -pattern_counter_width 16 -reset_weights [list ...] -occ_clock_weights [list ...]
set_dft_signal -port SI0... -type ScanDataIn -view spec ...
set_dft_signal -port SO0... -type ScanDataOut -view spec ...
create_test_protocol
dft_drc
preview_dft
set_dft_insertion_configuration -synthesis_optimization none
insert_dft
write -format verilog -out design_lbist.v -hier
write_test_protocol -test_mode ScanCompression_mode -output ScanCompression.spf
write_test_protocol -test_mode LBIST -output top_lbist.spf

Page 10

Figure

种子/签名生成

read_net top.v
Read_net -library lib.v
run_build TOP
set_drc -seq_comp_jtag_lbist_mode light_lbist
run_drc logiclbist.spf -patternexec LBIST
report_violations X2
set_faults -model [stuck | transition]
source ./find_seed.tcl
find_seed -seed_count 10 {run_atpg -auto \
  -jtag_lbist { 1 15000 1 }}
write_patterns lbist_ser.stil -format stil \
  -replace -unified -serial

LogicBIST ATPG repeat to find a seed with optimal coverage


Page 11

Figure

案例经验分享 — DFTMAX LogicBIST基线设置

Case1 (Processor)Case2 (DMA Controller)Case3 (Processor)
门数1,326,167274,350131,752
扫描单元数55,50217,2474,316
Stuck-at ScanCompression (#TC, #Pat)98.79%, 270299.10%, 67996.92%, 1763
Stuck-at LBIST (#TC, #Pat)80.98%, 1500084.64%, 1500077.45%, 15000
Transition ScanCompression (#TC, #Pat)96.19%, 862694.92%, 676492.43%, 6844
Transition LBIST (#TC, #Pat)60.24%, 1500061.38%, 1500050.91%, 15000

Page 12

Figure

如何提高测试覆盖率

(介绍通过测试点插入技术提高LogicBIST可观测性和可控性)


Page 13

Figure

SpyGlass DFT ADV — 测试点选择 - 提高可观测性 - 提高可控性


Page 14

Figure

SpyGlass DFT ADV — 脚本和流程

# SpyGlass script:
set_library ...
read_file netlist.v
current_design TOP
compile_design
read_file -type sgdc top_param.sgdc
define_goal sg_dft_random_resistance_analysis -policy {dft dft_dsm}
{
  set_goal_option rules {Info_random_resistance};
  set_goal_option addrules {Info_coverage}
  set_parameter_dft_rrf_tp_count tp_num;
  ...
}
run_goal -goal sg_dft_random_resistance_analysis
quit -force

DFTMAX script:

random_pattern_dc_testpoints.rpt

set test_set_test_points_from_file ./random_pattern_dc_testpoints.rpt set_dft_configuration -test_points enable set_test_point_configuration ...

Page 15

Figure

可测试性改善结果 — DFTMAX LogicBIST with Test Point Insertion

Case1 (Processor)Case2 (DMA Controller)Case3 (Processor)
门数1,326,167274,350131,752
扫描单元数55,50217,2474,316
测试点数量4,0002,000500
Stuck-at ScanCompression (#TC, #Pat)99.12%, 125799.81%, 59399.23%, 1202
Stuck-at LBIST (#TC, #Pat)91.40%, 1500089.24%, 1500094.70%, 15000
Transition ScanCompression (#TC, #Pat)97.32%, 575295.58%, 261496.64%, 4316
Transition LBIST (#TC, #Pat)84.16%, 1500094.34%, 1500077.55%, 15000

注:LBIST模式下覆盖率的显著提升充分验证了SpyGlass测试点插入的有效性。


Page 16

Figure

总结

DFTMAX LogicBIST的优势: - 通过简单的一次性DFT插入流程实现快速周转时间 - 用于系统内测试的低引脚数接口 - 核心封装和测试点选择以提高LogicBIST QoR - 支持老化测试(burn-in mode) - 复用已有的用于制造测试的扫描链和测试模式控制逻辑

建议: - 针对设计ECO或布局布线后阶段剩余时序违例的增量X-blocking - DFTMAX LogicBIST在仿真和硅片上的调试能力


Page 17

Figure

谢谢!Thank You


图片索引

本文共 80 张图片,存放于 SNUG_TPC_Spyglass_Dorso_Untitled_paper_1_images/ 目录。