数字系统测试与可测性设计实验指导书ATPG应用.docx
- 文档编号:10278355
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:16
- 大小:64.01KB
数字系统测试与可测性设计实验指导书ATPG应用.docx
《数字系统测试与可测性设计实验指导书ATPG应用.docx》由会员分享,可在线阅读,更多相关《数字系统测试与可测性设计实验指导书ATPG应用.docx(16页珍藏版)》请在冰豆网上搜索。
数字系统测试与可测性设计实验指导书ATPG应用
《数字系统测试与可测性设计》
实验指导书
(二)
实验教师:
2012年4月9日
I.实验名称和目的
实验名称:
ATPG应用
实验目的:
了解Mentor公司的FastScan-(ATPG生成工具)业界最杰出的测试向量自动生成工具。
了解测试各种基准电路的标准输入格式,运用FastScan工具生成测试向量。
深入理解单固定故障模型相关概念。
II.实验前的预习及准备工作:
1、充分理解课堂上学习的故障模型相关概念。
2、Mentor公司的测试相关工具的介绍
缩略语清单:
ATPG:
AutomaticTestPatternGeneration
ATE:
AutomatedTestEquipment
BIST:
BuiltInSelfTest
CUT:
Chip/CircuitUnderTest
DFT:
DesignForTestability
DRC:
DesignRuleChecking
PI:
PrimaryInput
PO:
PrimaryOutput
组合ATPG生成工具FastScan
FastScan是业界最杰出的测试向量自动生成(ATPG)工具,为全扫描IC设计或规整的部分扫描设计生成高质量的测试向量。
FastScan支持所有主要的故障类型,它不仅可以对常用的Stuck-at模型生成测试向量,还可针对transition模型生成at-speed测试向量、针对IDDQ模型生成IDDQ测试向量。
此外FastScan还可以利用生成的测试向量进行故障仿真和测试覆盖率计算。
另外,FastScanMacroTest模块支持小规模的嵌入模块或存储器的测试向量生成。
针对关键时序路径,FastscanCPA模块可以进行全面的分析。
主要特点:
•支持对全扫描设计和规整的部分扫描设计自动生成高性能、高质量的测试向量;
•提供高效的静态及动态测试向量压缩性能,保证生成的测试向量数量少,质量高;
•支持多种故障模型:
stuck-at、toggle、transition、criticalpath和IDDQ;
•支持多种扫描类型:
多扫描时钟电路,门控时钟电路和部分规整的非扫描电路结构;
•支持对包含BIST电路,RAM/ROM和透明Latch的电路结构生成ATPG;
•支持多种测试向量类型:
Basic,clock-sequential,RAM-Sequential,clockPO,Multi-load;
•利用简易的Procedure文件,可以很方便地与其他测试综合工具集成;
•通过进行超过140条基于仿真的测试设计规则检查,保证高质量的测试向量生成;
•FastScanCPA选项支持at-speed测试用的路径延迟测试向量生成;
•FastScanMacroTest选项支持小规模的嵌入模块或存储器的测试向量生成;
•FastScanDiagnostics选项可以通过分析ATE机上失败的测试向量来帮助定位芯片上的故障;
•ASICVectorInterfaces选项可以针对不同的ASIC工艺与测试仪来生成测试向量;
最新的ATPGAccelerator技术可以支持多CPU分布式运算;
•智能的ATPG专家技术简单易用,用户即使不懂ATPG,也能够由工具自动生成高质量的测试向量;
•支持32位或64位的UNIX平台(Solaris,HP-PA)及LINUX操作平台;
FastScan的ATPG流程
由上图可知,在启动FastScan时,FastScan首先读入、解释并检查门级网表和一个DFT库。
如果遇到问题,FastScan会退出并发布一个消息。
如果没有遇到问题,FastScan直接进入到配置(Setup)模式。
在配置模式,可以使用交互方式或者使用Dofile批处理方式,来建立关于电路和扫描的基本信息,以及指定在设计展平(flattening)阶段时影响生成仿真模型的条件。
完成所有配置后,退出配置模式就直接进入到DRC检查阶段,进行DRC检查。
如果检查通过,那么直接进入到ATPG模式。
进入ATPG模式后由上图可看出,有四个过程:
生成错误列表,生成测试模式,压缩测试模式和储存测试向量。
FastScan的输入需要以下几个文件:
带Scanchain的电路网表,库描述文件和FastScan的三个控制文件(*.dofile,*.testproc,Timplate),下面分别进行详细解释。
1.电路网表(*.v)
已经带有扫描链的Verilog格式的网表。
2.库描述文件(fs_lib)
用于连接厂家提供的Mentor模型库。
3.timeplate文件
timeplate文件描述了ATPG向量中各时间点(输入跳变点,输出取样点,时钟沿位置,周期等)timescale和测试过程文件(procedurefile)文件名,可以根据需要加以修改。
FastScan是以事件为基础的。
其时序模型是基于以测试周期划分事件的,主要包含了下列一些事件:
force_pi:
对PI(PrimaryInput)输入值。
measure_po:
测量PO(PrimaryOutput)的输出值。
capture_clock_on:
把捕获时钟打开。
capture_clock_off:
把捕获时钟关闭。
ram_clock_on:
把用于读写RAM的时钟打开。
ram_clock_off:
把用于读写RAM的时钟关闭。
其基本格式如下:
timeplate“timeplate_name”=
timeplate_statement;...
end;
以下是一个实例:
//ExampleTimeplare
//指定了以后所有的时间单位为纳秒(ns),刻度为1,这一步是必须的。
settimescale1nS;
//指定采样(strobe)窗口的宽度为1,由于前面定义了时间刻度为1ns,所以strobe窗口实际宽度为1ns
setstrobe_windowtime1;
//定义了名字为tp0的timeplate文件
timeplate"tp0"=
//定义了在0时刻对PI输入
force_pi0;
//定义了在80时刻对PO采样
measure_po80;
//定义了在100时刻把捕获时钟打开
capture_clock_on100;
//定义了在120时刻把捕获时钟关闭
capture_clock_off120;
//定义了周期为200,即在200时刻所有动作结束,重新开始新一周期动作
period200;
end;
//指定后面要用到的测试过程文件名为design.testproc,scangroup名为grp1
setprocedurefile"grp1""design.testproc";
4.design.dofile
.dofile文件主要是Mentor提供的一个批处理文件,可以自动控制FastScan的操作。
下列design.dofile中主要描述了Scanchain的组成管脚和group定义(见下例中addscanchains命令和addscangroup命令)。
时钟的定义及其值,由于FastScan认为所有改变时序元件的状态的信号都为时钟,包括了复位信号,置位信号和系统时钟信号等。
reset信号表示为时钟,其值赋为无效电平。
在测试状态下需要保持恒定逻辑值的管脚如TEST_ENABLE,测试覆盖率的设定。
//sample.dofile
//定义了scangroup
addscangroupsgrp1design.testproc
//定义了Scanchain的组成管脚
addscanchainschain1grp1SCAN_INSCAN_OUT
//使RESET信号无效
addclocks1RESET
//使SCAN_CLOCK信号有效
addclocks0SCAN_CLOCK
//设置TEST_ENABLE为恒1
addpinconstraintsTEST_ENABLEC1
//设置最大覆盖率
setatpgli-test_coverage90
5.测试过程文件(*.testproc)
测试过程文件定义了扫描电路的操作,主要包括时钟的定义和一些管脚的逻辑值设定,可以手工生成,也可自动生成。
测试过程文件仅仅包含了扫描相关事件的时序信息,然而ATPG过程本身不需要测试过程文件来包含实际时序信息,自动测试设备(ATE)和某些仿真器需要这些信息。
因此必须修改用于ATPG的测试过程文件来包含实际时序信息。
定义了扫描电路的操作。
测试过程文件有自己的规则如:
每一句必须占一单行,双斜杠//后面的内容都是注释,所有语句必须在procedure和end之间,可以有空白行等等。
其基本格式如下:
procedure
procedure_statement;...
end;
在一个测试过程文件中通常有以下几个过程:
•Test_Setup(optional)
这个过程用来为Load_Unload过程设置非扫描元件的状态。
如果在设置了管脚约束之后运行ATPG,需要在这个过程中限制这些管脚,否则FastScan自动会为你限制这些管脚,但可能会导致时序冲突。
在下面这个实例中,设置了SCAN_ENABLE和TEST_ENABLE的初始值,并定义了周期。
proceduretest_setup=
//attime0forcetheSCAN_ENABLEavalueof0
forceSCAN_ENABLE00;
//attime0forcetheTEST_ENABLEavalueof1
forceTEST_ENABLE10;
//表明整个周期在400ns结束,即周期为400ns
period400;
end;
•Shift(required)
这个过程描述了如何通过翻转时钟,在输入端输入值以及采样输出端等方式来将数据顺着扫描链移动一个位置。
其数据流向如下图:
ͼ1移位过程
在这个过程中,必须要包括force命令,force_sci命令(或者force_sci_equiv命令)和measure_sco命令。
在下面这个实例中,定义了一个典型扫描移位操作。
由于我们前面定义了时间刻度为1ns,所以在测试过程文件中所有的时间都以1ns为刻度,即所有时间数字都倍乘1ns。
procedureshift=
//forcescanchaininputattime20ns
force_sci20;
//measurescanchainoutputattime40ns
measure_sco40;
//pulsetheclock
forcecp.01100;
forcecp.00200;
//aunitofdeadtimeforstability
period400;
end;
针对上面实例的详细时序见下图:
ͼ1移位过程时序
显然在这个过程包含了四个扫描事件:
在20ns时刻输入,在40ns采样,时钟在100ns变为1,在200ns变为0,周期为400ns。
图中引入X是为了表示测试过程文件执行的顺序性,X表示任何一个时刻。
•Load_Unload(required)
这个过程描述了如何装载和卸载扫描链。
为了扫描链顺利装载,必须为移位寄存器保持在一个合适的状态,在这个状态时钟、复位和RAM的写信号等信号无效,而且如果扫描输出端是双向端口,则双向端口处在输出状态。
然后可以使用applyshift语句来指定移位周期数,这个数目等于所有扫描链中的最大扫描元件数目。
在下面这个实例中,定义了一个典型的load_unload过程,其中假设所有扫描链中的最大扫描元件数目是N。
procedureload_unload=
//forceclocksoffattime0
forceSCAN_ENABLE10;
forceRESET10;
//forcescanclocksonattime0
forceSCAN_CLK00;
//shiftdatathrueachofNcells,Nisthemaximumscancellnumberinallchains
applyshiftN200;
period200;
end;
注意,为apply语句指定的时间仅仅是相对于load_unload过程的时刻。
因此,为load_unload过程指定的周期200ns并不包含执行内嵌apply命令的时间。
实际的周期是(200+400*N)ns,其详细时间关系见下图:
ͼ1load_unload过程的时间顺序示意图
由于开始shift时刻是200ns,而period也是200ns,因此在shift过程结束的同时load_unload过程结束。
上面三个文件可分开成三个测试过程文件,也可合成一个扫描测试文件。
其中在编辑时需注意各值的设定和单链上最大cell数的设定。
以上各文件除电路网表外均可以人工编辑生成,也可以运行一次DFTadvisor得到模版文件加以修改。
有了以上各控制文件就可以用FastScan生成ATPG测试向量。
DesignforTest可测性设计技术
随着SoC/ASIC设计技术的迅猛发展,可测性设计(Design-For-Test)逐渐为SoC/ASIC设计流程不可缺少的必要环节,DFT的应用也逐渐变得深入,MentorGraphics公司作为全球SoC/ASIC设计中DFT领域的领导者,一直以来倡导高质量和低成本(HighQuality&LowCost)的DFT设计理念,并拥有业界最为优秀和完善的全线DFT设计工具,多年来一直居于业界领导地位,引领着EDA行业DFT工具的技术发展方向。
测试综合工具DFTAdvisor
DFTAdvisor利用友好的图形用户界面引导完成可测性分析并优化测试结构的插入,执行全面的测试规则检查,从而保证在ATPG之前不存在任何遗留的可测性设计问题。
DFTAdvisor测试综合工具自动插入测试结构电路,支持全扫描或部分扫描的测试逻辑,能够自动识别电路中的时序单元并自动转换成可扫描的单元,并能够把电路中可扫描的单元串接成扫描链,从而大大增强了IC和ASIC设计的可测试性。
此外,利用它在设计过程的早期阶段进行可测性分析,测试综合生成和测试向量自动生成之前发现并修改违反测试设计规则的问题,尽可能提高ATPG的效率并缩短测试开发的周期。
III.实验项目
一、熟悉FastScan的图形化界面(GUI)
二、演示生成测试向量的过程(以pipe_net_noscan.v文件为例)
扫描插入之前做的准备
进入以下路径
DFT/ATPG/atpg_data/lab2/exercise_1/
1、启动DFTAdvisor
shell>dftadvisorpipe_net_noscan.v–verilog-lib../../libraries_1_to_4/adk.atpg
-logresults/ex_1dfta.log–rep
.log–日志文件,存相关信息,可以打开查看
pipe_net_noscan.v---没插入扫描链的网表文件
2.自动分析时钟信号/控制信号
SETUP>analyzecontrolsignals-auto_fix
3.进入DFT模式.
SETUP>setsystemmodedft
此时报告了哪些信息?
此时可以看电路,在DFTAdvisorControlPanel里点击OpenDFTVisualizer
4.设置扫描识别.
DFT>setupscanidentificationfull_scan
DFT>setuptest_pointidentification-control0-observe0
DFT>reportcellmodels-typemux
默认的扫描类型是什么?
_______mux21_cacro_________________________
5.开始扫描.
DFT>run
DFT>reportstatistics
在本设计中有多少个连续的单元?
____1________
识别了多少个扫描单元?
______1___________
生成插入扫描的网表并生成ATPG配置文件
1.插入扫描链
DFT>inserttestlogic-scanon-test_pointon-ramon-number1
2.报告结果.
DFT>reportstatistics
连续的单元数量是多少?
___________1________
插入的扫描链的数量?
___________1___________
新插入的pins的数量?
___________2__________
3.报告插入扫描单元和扫描链的结果.
DFT>reportscancells
4.保存Verilog网表和ATPG的配置文件.
DFT>write_design–output_fileresults/pipe_scan.v–replace
pipe_scan.v—已插入扫描链的网表文件
DFT>write_atpg_setupresults/pipe_scan-replace-procfile
5.退出DFTAdvisor.
DFT>exit
产生测试向量
BasicATPGFlow
1.启动fastscan.
shell>fastscanresults/pipe_scan.v-verilog-lib../../libraries_1_to_4/adk.atpg
-logresults/ex_1tk.log-rep
此时可以看电路,在FastScanControlPanel里点击OpenDFTVisualizer,点击windows下的brower,下面的pipe右键选择AddtoDesign,可以看到插入扫描链后的电路图。
2.导入dofile文件pipe_scan.dofile.
SETUP>dofileresults/pipe_scan.dofile
批处理包含了一个导入测试过程文件(testprocedurefile)的命令,是什么?
command:
add_scan_groupsgrp1results/pipe_scan.testproc
FAST所需的文件
✧编译库文件(library)
✧读入插入扫描链后的网表文件(pipe_scan.v)
✧读入测试过程文件(testprocedurefile)
✧读入批处理文件(pipe_scan.dofile)
3.进入ATPG模式.
SETUP>setsystemmodeatpg
4.加入故障、生成测试向量.
ATPG>setfaulttypestuck
ATPG>addfaults-all
ATPG>createpatterns
5.检查结果.
ATPG>reportstatistics
写出运行结果
#test_patterns_________5________
#simulated_patterns_________32________
CPU_time(secs)_________0.3________
test_coverage_________100%________
fault_coverage_________94%________
atpg_effectiveness_________100%________
6.通过三种压缩方法压缩测试向量.
ATPG>compresspatterns3
写出三种压缩方法的结果
#patterns
simulated
testcoverage
#faults
inlist
#faultsdetected
#eff.patterns
#testpatterns
processCPUtime
Pass1
5
100%
0
33
5
5
0
Pass2
5
100%
0
33
5
5
0
Pass3
5
100%
0
33
5
5
0
7.保存测试向量.(并行)
ATPG>savepatternsresults/pat1_par.v-verilog-procfile-parallel-begin0-all_test-mode_internal–replace
8.保存测试向量.(串行).
ATPG>setpatternfiltering-sample5
ATPG>savepatternsresults/pat1_ser.v-verilog-procfile-serial-all_test-mode_internal
-replace
9.退出.
ATPG>exit
三.简单的组合电路
1、用verilog语言(门级)描述电路(库DFT/ATPG/atpg_data/libraries_1_to_4/adk.atpg)
2、按照上面的演示用ATPG生成测试向量,最后要求列出ATPG完成后生成的测试向量文件内容。
3、分别画出插入扫描链前后的电路图
插入扫描链前的电路图:
在设置成dft模式前查看。
图形化界面:
openDFTvisulalizer
插入扫描链后的电路图:
Dftadvisor完成后,把设计导入Fastscan,这时可以看插入扫描链的电路图。
四.测试一位加法器
加法器是数字电路中应用比较广泛的器件。
一位全加器的电路图如下所示:
图2一位加法器
该加法器的表达式为:
1、用verilog语言(门级)描述电路(库DFT/ATPG/atpg_data/libraries_1_to_4/adk.atpg)
2、按照上面的演示用ATPG生成测试向量(要求列出ATPG完成后的生成的测试向量文件内容)
3、分别画出插入扫描链前后的电路图
插入扫描链前的电路图:
在设置成dft模式前查看。
图形化界面:
openDFTvisulalizer
插入扫描链后的电路图:
Dftadvisor完成后,把设计导入Fastscan,这时可以看插入扫描链的电路图。
IV实验步骤
1、用fastscan对组合电路进行ATPG。
2、对一位全加器,寻找测试向量。
V评分标准
项目
分值的比例
检查时间
实验预习
15%
实验开始前
演示实验
补充过程
15%
实验过程中
组合电路
代码书写
10%
实验过程中
测试向量生成
10%
1位加法器
代码书写
10%
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 系统 测试 可测性 设计 实验 指导书 ATPG 应用
![提示](https://static.bdocx.com/images/bang_tan.gif)