使用DFTMAX LogicBIST和SpyGlass的内建自测经验分享
📑 目录
- 1. 
- 2. 
- 3. 
- 4. 
- 5. 
- 6. 
- 7. 
- 8. 
- 9. 
- 10. 
- 11. 
- 12. 
- 13. 
- 14. 
- 15. 
- 16. 
- 17. 
使用DFTMAX LogicBIST和SpyGlass的内建自测经验分享
作者: CN Ho, Karl Chang (GUC)
会议: SNUG Taiwan 2016
页数: 17
源文件: SNUG_TPC_Spyglass_Dorso_Untitled_paper_1.pdf
Page 1
使用DFTMAX LogicBIST和SpyGlass的内建自测经验分享
CN Ho, Karl Chang GUC Sep 7, 2016 SNUG Taiwan
Page 2
议程 - 背景 - 使用DFTMAX LogicBIST进行系统内测试 - 使用SpyGlass DFT ADV提高LogicBIST可测试性 - 案例经验分享 - 结论
Page 3
背景 — 示例应用 - 网络:上电测试、"在线"核心测试 - 汽车:上电测试、安全关键核心的"在线"测试 - 医疗:装配验证、系统内测试 - 军工:无需复杂线缆和连接器即可轻松测试 - Logic BIST需求:上电测试、系统内测试
Page 4
系统内测试架构 设计考虑因素: - 时钟源 - 将芯片初始化为系统BIST模式 - 通过/失败比较 - 超时状态
SOC ← 系统Logic BIST控制模块 ← BIST模式 → PLL/分频器 → 模式发生器 → DFTMAX LogicBIST
Page 5
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
状态信号行为
| Status[1] | Status[0] | 行为 |
| 0 | 0 | IDLE |
| 0 | 1 | Test Running |
| 1 | 0 | Test complete and passed |
| 1 | 1 | Test complete and failed |
指示测试完成和通过/失败状态:比较MISR的签名值和用户指定的期望签名值
Page 7
LogicBIST测试期间隔离设计 - 使用核心封装(core wrapping)功能插入封装链,在自测试期间隔离设计 - 输入可被控制以避免X捕获 - 输出可被观测以确保覆盖率
Page 8
DFTMAX LogicBIST流程 LogicBIST流程: 1. LogicBIST插入 2. 种子和签名生成 3. 向量生成 4. 验证
使用VCS(或其他)仿真自主LogicBIST,检查PASS和DONE结果。通过TetraMAX运行ATPG,计算PRPG种子、MISR签名和故障覆盖率。反复运行LogicBIST ATPG以找到具有最佳覆盖率的种子。
Page 9
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
种子/签名生成
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
案例经验分享 — DFTMAX LogicBIST基线设置
| Case1 (Processor) | Case2 (DMA Controller) | Case3 (Processor) | |
| 门数 | 1,326,167 | 274,350 | 131,752 |
| 扫描单元数 | 55,502 | 17,247 | 4,316 |
| Stuck-at ScanCompression (#TC, #Pat) | 98.79%, 2702 | 99.10%, 679 | 96.92%, 1763 |
| Stuck-at LBIST (#TC, #Pat) | 80.98%, 15000 | 84.64%, 15000 | 77.45%, 15000 |
| Transition ScanCompression (#TC, #Pat) | 96.19%, 8626 | 94.92%, 6764 | 92.43%, 6844 |
| Transition LBIST (#TC, #Pat) | 60.24%, 15000 | 61.38%, 15000 | 50.91%, 15000 |
Page 12
如何提高测试覆盖率
(介绍通过测试点插入技术提高LogicBIST可观测性和可控性)
Page 13
SpyGlass DFT ADV — 测试点选择 - 提高可观测性 - 提高可控性
Page 14
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
可测试性改善结果 — DFTMAX LogicBIST with Test Point Insertion
| Case1 (Processor) | Case2 (DMA Controller) | Case3 (Processor) | |
| 门数 | 1,326,167 | 274,350 | 131,752 |
| 扫描单元数 | 55,502 | 17,247 | 4,316 |
| 测试点数量 | 4,000 | 2,000 | 500 |
| Stuck-at ScanCompression (#TC, #Pat) | 99.12%, 1257 | 99.81%, 593 | 99.23%, 1202 |
| Stuck-at LBIST (#TC, #Pat) | 91.40%, 15000 | 89.24%, 15000 | 94.70%, 15000 |
| Transition ScanCompression (#TC, #Pat) | 97.32%, 5752 | 95.58%, 2614 | 96.64%, 4316 |
| Transition LBIST (#TC, #Pat) | 84.16%, 15000 | 94.34%, 15000 | 77.55%, 15000 |
注:LBIST模式下覆盖率的显著提升充分验证了SpyGlass测试点插入的有效性。
Page 16
总结
DFTMAX LogicBIST的优势: - 通过简单的一次性DFT插入流程实现快速周转时间 - 用于系统内测试的低引脚数接口 - 核心封装和测试点选择以提高LogicBIST QoR - 支持老化测试(burn-in mode) - 复用已有的用于制造测试的扫描链和测试模式控制逻辑
建议: - 针对设计ECO或布局布线后阶段剩余时序违例的增量X-blocking - DFTMAX LogicBIST在仿真和硅片上的调试能力
Page 17
谢谢!Thank You
图片索引
本文共 80 张图片,存放于 SNUG_TPC_Spyglass_Dorso_Untitled_paper_1_images/ 目录。