当前位置:文档之家› 数字系统测试与可测性设计实验指导书ATPG应用

数字系统测试与可测性设计实验指导书ATPG应用

《数字系统测试与可测性设计》实验指导书(二)实验教师:2012年4月9日I.实验名称和目的实验名称:ATPG应用实验目的:了解Mentor公司的FastScan-(ATPG生成工具)业界最杰出的测试向量自动生成工具。

了解测试各种基准电路的标准输入格式,运用FastScan工具生成测试向量。

深入理解单固定故障模型相关概念。

II.实验前的预习及准备工作:1、充分理解课堂上学习的故障模型相关概念。

2、Mentor公司的测试相关工具的介绍缩略语清单:ATPG :Automatic Test Pattern GenerationATE :Automated Test EquipmentBIST :Built In Self TestCUT :Chip/Circuit Under TestDFT :Design For TestabilityDRC :Design Rule Check ingPI :Primary InputPO :Primary Output组合ATPG生成工具FastScanFastScan是业界最杰出的测试向量自动生成(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测试用的路径延迟测试向量生成;•FastScan MacroTest 选项支持小规模的嵌入模块或存储器的测试向量生成;•FastScanDiagnostics 选项可以通过分析ATE 机上失败的测试向量来帮助定位芯片上的故障;•ASICVector Interfaces 选项可以针对不同的ASIC 工艺与测试仪来生成测试向量; 最新的ATPG Accelerator 技术可以支持多CPU 分布式运算;•智能的 ATPG 专家技术简单易用,用户即使不懂ATPG ,也能够由工具自动生成高质量的测试向量;•支持32位或64位的UNIX 平台(Solaris,HP-PA)及LINUX 操作平台;FastScan 的A TPG 流程由上图可知,在启动FastScan 时,FastScan 首先读入、解释并检查门级网表和一个DFT 库。

如果遇到问题,FastScan 会退出并发布一个消息。

如果没有遇到问题,FastScan 直接进入到配置(Setup)模式。

在配置模式,可以使用交互方式或者使用Dofile 批处理方式,来建立关于电路和扫描的基本信息,以及指定在设计展平(flattening)阶段时影响生成仿真模型的条件。

完成所有配置后,退出配置模式就直接进入到DRC 检查阶段,进行DRC 检查。

如果检查通过,那么直接进入到A TPG 模式。

进入A TPG 模式后由上图可看出,有四个过程:生成错误列表,生成测试模式,压缩测试模式和储存测试向量。

FastScan 的输入需要以下几个文件:带Scan chain的电路网表,库描述文件和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_nam e”=timeplate_statemen t;...end;以下是一个实例:// Example Timeplare// 指定了以后所有的时间单位为纳秒(ns),刻度为1,这一步是必须的。

set time scale 1nS;// 指定采样(strobe)窗口的宽度为1,由于前面定义了时间刻度为1ns,所以strobe 窗口实际宽度为1nsset strobe_window time 1;// 定义了名字为tp0的timeplate文件timeplate "tp0" =// 定义了在0时刻对PI输入force_pi 0;// 定义了在80时刻对PO采样measure_po 80;// 定义了在100时刻把捕获时钟打开capture_clock_on 100;// 定义了在120时刻把捕获时钟关闭capture_clock_off 120;// 定义了周期为200,即在200时刻所有动作结束,重新开始新一周期动作period 200;end;// 指定后面要用到的测试过程文件名为design.testproc,scan group名为grp1set procedure file "grp1" "design.testproc";4.design.dofile.dofile文件主要是Mentor提供的一个批处理文件,可以自动控制FastScan的操作。

下列design.dofile中主要描述了Scan chain的组成管脚和group定义(见下例中add scan chains 命令和add scan group命令)。

时钟的定义及其值,由于FastScan认为所有改变时序元件的状态的信号都为时钟,包括了复位信号,置位信号和系统时钟信号等。

reset信号表示为时钟,其值赋为无效电平。

在测试状态下需要保持恒定逻辑值的管脚如TEST_ENABLE,测试覆盖率的设定。

//sample .dofile// 定义了scan groupadd 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为恒1add pin constraints TEST_ENABLE C1// 设置最大覆盖率set atpg li -test_coverage 905.测试过程文件(*.testproc)测试过程文件定义了扫描电路的操作,主要包括时钟的定义和一些管脚的逻辑值设定,可以手工生成,也可自动生成。

测试过程文件仅仅包含了扫描相关事件的时序信息,然而ATPG过程本身不需要测试过程文件来包含实际时序信息,自动测试设备(ATE)和某些仿真器需要这些信息。

因此必须修改用于ATPG的测试过程文件来包含实际时序信息。

定义了扫描电路的操作。

测试过程文件有自己的规则如:每一句必须占一单行,双斜杠//后面的内容都是注释,所有语句必须在procedure和end之间,可以有空白行等等。

其基本格式如下:procedure <procedure_type> <procedure_name>=procedure_statemen t;...end;在一个测试过程文件中通常有以下几个过程:•Test_Setup(optional)这个过程用来为Load_Unload过程设置非扫描元件的状态。

如果在设置了管脚约束之后运行ATPG,需要在这个过程中限制这些管脚,否则FastScan自动会为你限制这些管脚,但可能会导致时序冲突。

在下面这个实例中,设置了SCAN_ENABLE和TEST_ENABLE的初始值,并定义了周期。

procedure test_setup =// at time 0 force the SCAN_ENABLE a value of 0force SCAN_ENABLE 0 0;// at time 0 force the TEST_ENABLE a value of 1force TEST_ENABLE 1 0;// 表明整个周期在400ns结束,即周期为400nsperiod 400;end;•Shift(required)这个过程描述了如何通过翻转时钟,在输入端输入值以及采样输出端等方式来将数据顺着扫描链移动一个位置。

其数据流向如下图:ͼ1 移位过程在这个过程中,必须要包括force命令,force_sci命令(或者force_sci_equiv命令)和measure_sco命令。

在下面这个实例中,定义了一个典型扫描移位操作。

由于我们前面定义了时间刻度为1ns ,所以在测试过程文件中所有的时间都以1ns 为刻度,即所有时间数字都倍乘1ns 。

procedure shift =// force scan chain input at time 20nsforce_sci 20;// measure scan chain output at time 40nsmeasure_sco 40;// pulse the clockforce cp.0 1 100;force cp.0 0 200;// a unit of dead time for stabilityperiod 400;end;针对上面实例的详细时序见下图:ͼ1 移位过程时序显然在这个过程包含了四个扫描事件:在20ns 时刻输入,在40ns 采样,时钟在100ns 变为1,在200ns 变为0,周期为400ns 。

相关主题