1. Synopsys TetraMax(Mentor对应的为Fastscan)简介:
TetraMAX是一个高速、高性能的自动测试激励产生工具(ATPG automatic test pattern generation),它能产生最大测试覆盖的测试激励,同时使用最 少的测试向量,可以应用了范围广泛的设计类型和设计流图,也适用于百万门级设计。这是 Synopsys 公司的测试工具,它可以和很多 EDA 工具一起来完成测试 工作。TetraMAX 具有以下几个主要的 ATPG 能力:
a) 能够读入以
verilog、V
hdl 和 EDIF格式的设计网表和 STIL 格式的 测试协议信息
b) 能够生成各种标准和非标准的测试激励文件:WGL、STIL、VHDL、Fujitsu TDL、TI TDL91、Toshiba TSTL2
c) 提供 ATPG 模式的选择:B
asic-scan ATPG、
Fast-sequential ATPG、 full-sequential ATPG
d) 支持以下的 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 IEEE 1149.1-compliant boundary scan)
e) 产生和验证 ATPG 激励, 避免 bus contention 和 float conditions
f) 提供交互式的分析和调试工具 GSV graphical schematic viewer)
g) 提供连接verilog和VHDL仿真器
h) 提供一个整合的故障仿真器支持功能激励的故障仿真
i) 能够运行direct automated test equipment(ATE)诊断,允许你快速定位设计中的故障位置产生的测试错误
TetraMAX 的测试激励产生支持五种类型的故障模式
a) Stuck-at faults:是测试激励产生的标准模式
b) IDDQ faults
c) Transition delay faults
d) Path delay faults
e) Bridging faults
f) TetraMAX 可以兼容大量的design-for-test工具
TetraMAX 可以兼容大量的design-for-test工具象DFT compiler。使用了DFT Compiler和TetraMAX ATPG的设计流程简便并且结果有质量保证
2. TetraMax安装:
论坛上的2010sp2环境变量设置为:
set path = ( /usr/synopsys/tx_vD-2010.03-SP2/bin $path )
set path = ( /usr/synopsys/tx_vD-2010.03-SP2/linux/syn/bin $path )
用命令tmaxgui就可以启动图形界面。
tmaxgui在/usr/synopsys/tx_vD-2010.03-SP2/linux/syn/bin 中,打开/bin下tmax看看就知道了,tmax指定tmaxgui的,不能启动是因为论坛上那个版本没有tmax kernel造成tmax启动失败的。所以直接启动tmaxgui就可以了。
直接启动tmaxgui是可以启动图形界面,但点击什么都没有反应。我看了一下,在DC2010.03和ICC2010.03的amd64/syn/bin/下面都有tmaxgui、tamx32、tmax64这三个文件,从而可知,tmaxgui只是个图形界面程序,而不是可以使用的tetramax,还是按照某位老兄说的,要么把2010的tetramax安装在DC的目录下,要么就使用tetrmax single这个版本,才能使用。
3. 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
//开始测试DRC
run drc
report rules -fail
report nonscan cells -summary
report bus -summary
report feedback paths -summary
//
set atpg -abort 50 -pat 1500 -mergehigh
//ATPG准备
//add nofaults here for enhance faults converage
add faults -all
//运行ATPG
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
4. 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产生,也可以手动产生这个文件。
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)
分析所有的不需要扫描的设备;
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
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)。