TetraMAX使用注意事项
1.在*.spf文件中的扫描状态的初始化过程,即是使系统进入到扫描测试状态的JTAG信号输入流程必须放在“test_setup”过程中,否则生成的测试激励在测试中可能会产生无法匹配错误,从而导致扫描过程出错。
2.TetraMAX中的GSV分析工具非常有用。使用GSV可以查看激励运行的各种信息,包括扫描链信息、扫描激励串行移位时load_unload、shift、capture各过程的状态信息值。
3.对生成的测试激励的评价主要是故障覆盖率指标。如果故障覆盖率很低的话,可以通过增加测试激励数、去掉不需要测试的电路模块等方法增加覆盖率。
TetraMAX介绍
TetraMAX是一个高速、高性能的自动测试激励产生工具(ATPG automatic test patterngeneration),它能产生最大测试覆盖的测试激励,同时使用最少的测试向量,可以应用了范围广泛的设计类型和设计流图,也适用于百万门级设计。这是synopsys公司的测试工具,它可以和很多EDA工具一起来完成测试工作。
1. TetraMAX具有以下几个主要的ATPG能力:
能够读入以verilog、VHDL和EDIF格式的设计网表和STIL格式的测试协议信息;
能够生成各种标准和非标准的测试激励文件:WGL、STIL、VHDL、FujitsuTDL、TITDL91、ToshibaTSTL2;
提供ATPG模式的选择:Basic-scan ATPG、Fast-sequential ATPG、full-sequential ATPG;
支持以下的design-for-test(DFT)类型:
ü Various scan flip-flop types (multiplexed flip-flop,master, slave,transparent latch, and so on);
ü Internal, nondecoded three-state buses
ü Bus keepers
ü RAM and ROM models
ü Proprietary and standard test controllers (such as IEEE1149.1-compliant boundary scan)
产生和验证ATPG激励,避免bus contention和float conditions;
提供交互式的分析和调试工具GSV(graphicalschematic viewer);
提供连接verilog和VHDL仿真器;
提供一个整合的故障仿真器支持功能激励的故障仿真;
能够运行direct automatedtestequipment(ATE)诊断,允许你快速定位设计中的故障位置产生的测试错误;
2. TetraMAX的测试激励产生支持五种类型的故障模式:
Stuck-at faults:是测试激励产生的标准模式;
IDDQ faults:
Transition delay faults:
Path delay faults:
Bridging faults:
3. TetraMAX可以兼容大量的design-for-test工具
TetraMAX可以兼容大量的design-for-test工具象DFT compiler。使用了DFT compiler和TetraMAXATPG的设计流程简便并且结果有质量保证。
ATPG脚本范例
这是本人参与的一款CPU流片测试时所写的TetraMAX生成测试激励的教本,仅共参考,呵呵!
read netlist smic/lib/*.v
read netlist map/netlist.v
set build -black_box r128x21
set build -black_box r128x22
set build -black_box r256x128_1
set build -black_box dualram128
set build -black_boxS018PLLGS_500
run build_model ppc_top_PAD
add pi constraint 1 PAD_rst_n
add pi constraint 1 PAD_trst_n
add pi constraint 0 PAD_tms
//add pi constraint 0 PAD_tck
set drc map/750.spf
run drc
report rules -fail
report nonscan cells -summary
report bus -summary
report feedback paths -summary
set atpg -abort 50 -pat 1500 -mergehigh
//add nofaults here for enhance faultsconverage
add faults -all
run atpg -auto
//run atpg basic_scan_only
//run atpg fast_sequential_only
//run atpg full_sequential_only
report summaries
analyze faults -class an
report summaries
report faults -level 5 64 -class au -collapse -verbose
write patterns ./dft/pattern_dft.v -formatVERILOG_Single_file -serial -replace
write patterns ./dft/pattern_dft.wgl-format WGL -serial -replace
ATPG流程分析(一)
1.读入网表文件
可以使用图形界面设置,或者是命令行设置,具体设置参数见帮助文档。网表文件类型可以是标准ASCII格式或是GZIP(一般UNIX的压缩格式), TetraMAX在读文件前自动检测压缩文件并解压缩。设计中如果有多个文件,可以多次使用readnetlist命令依次读入文件,同样可以使用通配符(如:./sim/*.v)来代替多个文件,如:BUILD>read netlist/proj1234/shared_verilog/*.v–noabort。当网表文件已经读入了,要想重新读入网表文件,需要使用命令 Readnetlist –delete或者Read netlist filename–delete先清除已有的文件。
2.构造ATPG模式
使设计中的各个部分成为TetraMAX过程的一部分,所作工作是删除层次,把它们放入TetraMAX可以使用的内存映象中。同样可以使用图形界面或是命令行runbuild_model。
3.执行设计规则检查
这是最重要的一步。DRC(Design RuleChecking)检查包括:
扫描链输入输出是否逻辑连接
是否时钟和异步set/reset针与扫描链翻转的连接由唯一的输入端口控制
是否当从正常模式切换到扫描变换模式时,时钟/set/reset是off
TetraMAX完成这些DRC检查,你应该提供以下信息:时钟端口,扫描链以及其他控制信息,这些都在STILtest protocol file(.SPF)中给出.这个文件由DFTCompiler产生,也可以手动产生这个文件。
ATPG流程分析(二)
4.开始测试DRC
使用命令run drcfilename运行DRC测试。
1) Review DRC结果
2) 在GSV中显示违背规则
在GSV中可以直观的看到违背的规则(GSV grahpical schematicviewer)。
3) 测试设计规则目录
测试设计规则被分成了10个类别分别为
B (Build rules)
C (Clock rules)
L (LBIST rules)
N (Netlistrules)
P (Path Delayrules)
S (Scan Chainrules)
T (Testerrules)
V (Vectorrules)
X (X-staterules)
Z (Tristaterules)
在线帮助中对每类都有详细的介绍,详见Contents 中的 Error and WarningMessages
TetraMAX提供命令可改变设计规则严重级别(severity)
每个设计规则都有四个严重级别:Ignore、Warning、Error、Fatal。可以使用命令set rules来改变级别。也可以使用命令reprotrules决定规则级别的设定以及已经发生的违反的规则数目。例如:set rules B5 warning
4) DRC执行的详细过程
在执行DRC过程中,TetraMAX做了以下工作:
读.SPF文件收集信息,检查语法和连接(consistency)故障;
完成总线和线网逻辑的连接能力检查;(Z rules)
在SPF中模拟测试过程,看某些情况是否满足要求;
根据定义的测试过程的方向模拟每条扫描链,确保扫描路径对每条扫描链规则来说都是可操作和可靠的。(S rules)
分析所有的时钟和定时设备是否满足ATPG规则。(C rules)
分析所有的不需要扫描的设备;
ATPG流程分析(三)
5.ATPG准备
初始化故障列表,选择pattern source. choosesettings for bus contention checking, and specify the patterngeneration effort.
1)使用命令setfaults设置故障列表
例如:
TEST> add faults –all表示包括所有可能的故障。
TEST> read faultsfault_list_filename表示使用名字为fault_list_filename的故障列表
也可以将一些指定的blocks, instances, gates, orpins排除到故障列表外,使用下面的方法:
TEST> addnofault /sub_block_A/adder
TEST> addnofault /io/demux/alu
TEST> addfaults -all
表示先去除模块adder和alu,再添加故障列表。
2) 删除故障列表使用命令removefaults,例如:
TEST> addfaults -all
TEST>remove faults /sub_block_A/adder
TEST>remove faults /io/demux/alu
指定ATPG设置,例如:DRC> set atpg-patterns 400 -abort_limit 5
6运行ATPG
使用命令run atpg –random,首先是Basic-ScanATPG,然后是Fast-SequentialATPG,和Full-SequentialATPG。Run atpg–auto_compression
ü Basic-Scan ATPG:
有效的,仅适用于组合电路的全扫描模式。为了得到高的测试覆盖率需要使用该测试模式。
ü Fast-Sequential ATPG
ü Full-Sequential ATPG
ATPG流程分析(四)
7.ATPG激励压缩
在测试激励合并的基础上还可以进行测试激励的压缩,使用如下命令:
TEST> run pattern_compress 99 2-noverbose
8.ATPG激励压缩
在测试激励合并的基础上还可以进行测试激励的压缩,使用如下命令:
TEST> run pattern_compress 99 2-noverbose
9.保存故障列表
TetraMAX包含了关于设计中潜在的faults的列表,可以使用命令report faults或者write faults。Report faults表示查看故障列表,而write faults表示将故障列表写入文件。
例如:
TEST> write faults faults.AU -class au–replace。
下面的命令写所有的故障列表:
TEST> write faults filename -all–replace;
下面的命令只写undetectable blocked (UB) and undetectable redundant(UR)故障类型:
TEST> write faults filename -class UB -class UR-replace;
10.使用脚本文件
写脚本文件*.tcl完成ATPG操作类似于WINDOWS中的批处理文件。在我们的TETRAMAX环境中采用了脚本运行的方式,所有的上面提到的ATPG流程都写到一个脚本文件中(tmax.tcl)。