《数字系统测试与可测性设计》
实验指导书(二)
实验教师:
2012年4月9日
I. 实验名称和目的
实验名称:ATPG应用
实验目的:了解Mentor公司的FastScan-(ATPG生成工具)业界最杰出的测试向量自动生成工具。了解测试各种基准电路的标准输入格式,运用FastScan工具生成测试向量。深入理解单固定故障模型相关概念。
II.实验前的预习及准备工作:
1、 充分理解课堂上学习的故障模型相关概念。 2、 Mentor公司的测试相关工具的介绍
缩略语清单: ATPG ATE BIST CUT DFT DRC PI PO
:Automatic Test Pattern Generation :Automated Test Equipment :Built In Self Test :Chip/Circuit Under Test :Design For Testability :Design Rule Checking :Primary Input :Primary Output
组合ATPG生成工具FastScan
FastScan是业界最杰出的测试向量自动生成(ATPG)工具,为全扫描IC设计或规整的部分扫描设计生成高质量的测试向量。FastScan支持所有主要的故障类型,它不仅可以对常用的Stuck-at模型生成测试向量,还可针对transition模型生成at-speed测试向量、针对IDDQ模型生成IDDQ测试向量。此外FastScan还可以利用生成的测试向量进行故障仿真和测试覆盖率计算。
另外,FastScan MacroTest模块支持小规模的嵌入模块或存储器的测试向量生成。针对关键时序路径,Fastscan CPA模块可以进行全面的分析。
主要特点:
?支持对全扫描设计和规整的部分扫描设计自动生成高性能、高质量的测试向量; ?提供高效的静态及动态测试向量压缩性能,保证生成的测试向量数量少,质量高; ?支持多种故障模型:stuck-at、toggle、transition、critical path和IDDQ;
?支持多种扫描类型:多扫描时钟电路,门控时钟电路和部分规整的非扫描电路结构; ?支持对包含BIST电路,RAM/ROM和透明Latch的电路结构生成ATPG; ?支持多种测试向量类型:Basic,clock-sequential,RAM-Sequential,clock PO,Multi-load; ?利用简易的Procedure文件,可以很方便地与其他测试综合工具集成;
?通过进行超过140条基于仿真的测试设计规则检查,保证高质量的测试向量生成; ?FastScan CPA选项支持at-speed测试用的路径延迟测试向量生成;
1
?FastScan MacroTest选项支持小规模的嵌入模块或存储器的测试向量生成;
?FastScanDiagnostics选项可以通过分析ATE机上失败的测试向量来帮助定位芯片上的故障;
?ASICVector Interfaces选项可以针对不同的ASIC工艺与测试仪来生成测试向量; 最新的ATPG Accelerator技术可以支持多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的输入需要以下几个文件:带Scan chain 的电路网表,库描述文件
2
和FastScan的三个控制文件(*.dofile,*.testproc,Timplate),下面分别进行详细解释。
1.电路网表(*.v)
已经带有扫描链的Verilog格式的网表。 2.库描述文件(fs_lib)
用于连接厂家提供的Mentor模型库。 3.timeplate文件
timeplate文件描述了ATPG向量中各时间点(输入跳变点,输出取样点,时钟沿位置,周期等) timescale 和测试过程文件(procedure file)文件名,可以根据需要加以修改。
FastScan是以事件为基础的。其时序模型是基于以测试周期划分事件的,主要包含了下列一些事件:
force_pi:对PI(Primary Input)输入值。
measure_po:测量PO(Primary Output)的输出值。 capture_clock_on:把捕获时钟打开。 capture_clock_off:把捕获时钟关闭。
ram_clock_on:把用于读写RAM的时钟打开。 ram_clock_off:把用于读写RAM的时钟关闭。 其基本格式如下:
timeplate “timeplate_name”= timeplate_statement;... end;
以下是一个实例:
// Example Timeplare
// 指定了以后所有的时间单位为纳秒(ns),刻度为1,这一步是必须的。 set time scale 1nS;
// 指定采样(strobe)窗口的宽度为1,由于前面定义了时间刻度为1ns,所以strobe窗口实际宽度为1ns
set strobe_window time 1;
// 定义了名字为tp0的timeplate文件 timeplate \
// 定义了在0时刻对PI输入
force_pi 0; // 定义了在80时刻对PO采样
measure_po 80; // 定义了在100时刻把捕获时钟打开 capture_clock_on 100;
3
// 定义了在120时刻把捕获时钟关闭 capture_clock_off 120;
// 定义了周期为200,即在200时刻所有动作结束,重新开始新一周期动作 period 200; end;
// 指定后面要用到的测试过程文件名为design.testproc,scan group名为grp1 set procedure file \
4.design.dofile
.dofile文件主要是Mentor提供的一个批处理文件,可以自动控制FastScan的操作。
下列design.dofile中主要描述了Scan chain的组成管脚和group定义(见下例中 add scan chains 命令和add scan group命令)。时钟的定义及其值,由于FastScan认为所有改变时序元件的状态的信号都为时钟,包括了复位信号,置位信号和系统时钟信号等。reset信号表示为时钟,其值赋为无效电平。在测试状态下需要保持恒定逻辑值的管脚如TEST_ENABLE,测试覆盖率的设定。 //sample .dofile
// 定义了scan group
add scan groups grp1 design.testproc // 定义了Scan chain的组成管脚
add scan chains chain1 grp1 SCAN_IN SCAN_OUT // 使RESET信号无效 add clocks 1 RESET
// 使SCAN_CLOCK信号有效 add clocks 0 SCAN_CLOCK // 设置TEST_ENABLE为恒1
add pin constraints TEST_ENABLE C1 // 设置最大覆盖率
set atpg li -test_coverage 90
5. 测试过程文件(*.testproc)
测试过程文件定义了扫描电路的操作,主要包括时钟的定义和一些管脚的逻辑值设定, 可以手工生成,也可自动生成。
测试过程文件仅仅包含了扫描相关事件的时序信息,然而ATPG过程本身不需要测试过程文件来包含实际时序信息,自动测试设备(ATE)和某些仿真器需要这些信息。因此必须修改用于ATPG的测试过程文件来包含实际时序信息。 定义了扫描电路的操作。
测试过程文件有自己的规则如: 每一句必须占一单行,双斜杠//后面的内容
4
都是注释,所有语句必须在procedure和end之间,可以有空白行等等。其基本格式如下:
procedure
在一个测试过程文件中通常有以下几个过程: ?Test_Setup(optional)
这个过程用来为Load_Unload过程设置非扫描元件的状态。如果在设置了管脚约束之后运行ATPG,需要在这个过程中限制这些管脚,否则FastScan自动会为你限制这些管脚,但可能会导致时序冲突。
在下面这个实例中,设置了SCAN_ENABLE和TEST_ENABLE的初始值,并定义了周期。
procedure test_setup =
// at time 0 force the SCAN_ENABLE a value of 0 force SCAN_ENABLE 0 0;
// at time 0 force the TEST_ENABLE a value of 1 force TEST_ENABLE 1 0;
// 表明整个周期在400ns结束,即周期为400ns period 400; end;
?Shift(required)
这个过程描述了如何通过翻转时钟,在输入端输入值以及采样输出端等方式来将数据顺着扫描链移动一个位置。其数据流向如下图:
í?1 移位过程
在这个过程中,必须要包括force命令,force_sci命令(或者force_sci_equiv命令)和measure_sco命令。
在下面这个实例中,定义了一个典型扫描移位操作。由于我们前面定义了时
5
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库数字系统测试与可测性设计实验指导书-ATPG应用在线全文阅读。
相关推荐: