ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ATPG-生成测试向量

ATPG-生成测试向量 逻辑电路测试的终极目的是保证芯片的功能正确。而芯片功能的正确除了设计本身功能的正确外生产制造无缺陷带来的问题也是关键的一部分。正确的设计功能通过前仿、后仿等功能仿真完成但生产制造缺陷则需要换其他方式进行验证。这里的其他验证方式则是指DFT-design for test。而做DFT包括了BIST、SCAN等几部分。这里整理的是关于SCAN CHAIN部分的笔记其分为几个阶段1 生成带SCAN CHAIN的网表和规则文件2 用SCAN CHAIN的网表文件和规则文件产生测试向量3 根据生成的测试向量完成SCAN CHAIN流片前的仿真验证4 流片回片后在ATE机台上的测试以及后续的debug。这里仅整理了第二部分的内容——如何使用SCAN CHIAN的网表和规则文件生成测试向量。使用的工具为tetramax该工具可为芯片做DFT设计、ATPG、故障诊断等检验芯片是否存在缺陷问题。如果笔记中有不对的地方敬请各位指正。DFT是design for test的缩写是指在原本的设计中插入扫描链、memory bist等电路在该电路的基础上实现芯片生产制造缺陷等问题的检查。ATPG和故障诊断是针对扫描链的缺陷检查。对于memory bist的缺陷检查有其自己的检查方案。1 关于ATPG的理解ATPG虽是自动测试图形生成的缩写但可以把ATPG理解为是一种验证可以对照芯片的前仿后仿的验证来理解如下表所示。ATPG功能仿真测试计划给出在什么时间节点开展什么任务和完成什么任务的计划给出在什么时间节点开展什么任务和完成什么任务的计划测试目标和测试条件测试是在CP阶段还是FT阶段测试引脚的分配和控制需要测试哪些失效模型以及测试覆盖率要达到多少需要的pattern格式是什么提取功能点给出具体的case-list用vcs和verdi完成定向case和随机case的环境搭建覆盖率环境的搭建测试向量输入和输出的测试波形仿真环境中生成的测试激励用于驱动芯片的功能逻辑测试结果相同的输入波形下和输出波形的对比结果仿真波形、仿真输出数据文件、寄存器值、中断、标志信号等结果分析与前期仿真结果对比分析若和预期结果对比分析根据特定case分析仿真结果是否符合预期Bug/故障修复/隔离若与预期不一致则需分析问题所在找出相应的解决方法若与预期不一致则需分析设计则需采取修改设计、进行ECO、系统应用规避等措施2 生成测试向量的相关概念关于tetramax的user guide可以在tetramax安装路径下找到TetraMAX ATPG User Guide文件。在安装路径下还可以找到另一个文件Test Pattern Validation User Guide也是非常有用的。TetraMAX是一个用于检测可测试性规则和自动生成制造测试向量的工具。设计网表文件格式Verilog、VHDL、EDIF测试信息文件格式STIL输出测试pattern文件格式WGLwaveform generation language、STILstandard test interface language 该格式对ATE工具更友好可参看链接浅谈IC测试向量pattern)及其转换 - 知乎、Verilog、VHDL、Fujitsu TDL、 TI TDL91、Toshiba TSTL2ATPG modesBasic-scan ATPGTetraMAX的默认模式performs combinational ATPG.Fast-sequential ATPGFull-sequential ATPGSCAN设计策略SCAN DesignFull-SCAN Design将所有的时序单元串联起来每一个时序单元都在SCAN链中Partial-SCAN Design允许部分时序单元不在SCAN链中Full-sequential ATPG不等于Full-SCAN Design, full-SCAN Design和Partial-SCAN Design是并列的。full-SCAN Design和Partial-SCAN Design是SCAN的设计策略Partial-SCAN Design可以选用任何一种ATPGA modes。Fault models每种模型下都可以生成对应的测试向量即不同模型下的测试向量可用于发现相应的失效Stuck-at芯片内部某个节点固定为0或者为1的失效情形Transition-delay fault芯片内部存在从0到1或者从1到0变化过于缓慢延时超过了要求的边界从而导致的失效Path delay将芯片运行到最高工作频率以检测由于生产制造的失效或差异导致路径延迟过大而不满足时序的失效IDDQ由于芯片内部出现短路导致过大的电流消耗的失效一组测试向量Test vector就是一组输入激励和其对应的正确的输出相应的组合。相关的理解可看如下原文描述For combinational ATPG, one test vector corresponds to one ATE cycle.“test program” means the collection of all test vectors sets used to test a design.The set of input stimuli and output responses is called a test pattern or scan pattern. This set includes the data at the primary inputs, primary outputs, pseudo-primary inputs, pseudo-primary outputs. A test pattern represents many test vectors because the pseudo-primary-input data must be serialized to be applied at the input of the scan chain, and the pseudo-primary-output data must be serialized to be measured at the output of the scan chain.ATPG工具生成测试向量test vector同时可以统计测试覆盖率失效仿真工具决定测试向量test vector覆盖率。这两个工具都需要logic elements的models这个模型需要半导体制造商提供。芯片内部悬空的节点会导致某些CMOS晶体管导通并消耗电流。3 生成测试向量生成测试向量需要的输入文件如下表所示TetraMAX的输入文件spf文件STIL procedure file网表文件插入了扫描链的网表文件允许三种文件edif文件或者Verilog文件或者VHDL文件Verilog library文件Memory model文件生成测试向量的基本流程如下图所示。1 无scan的DC综合结束后通过DC插入scan链并产生新的网表文件和.spf文件也可通过DFT Compiler/DFTMax读入无scan的综合网表生成新的网表和.spf文件。2通过TetraMax工具读入带scan链的网表和.spf文件设置相关的ATPG生成参数生成需要的patterns。这一部分需要关注测试覆盖率和patterns的大小patterns大小意味着测试时间即测试成本。3 再用VCS仿真patterns。DFT这个阶段在项目flow的中后期项目时间可能比较紧张。因此中后端的迭代速度需要保证其余的时间裕量也需要足够。DFT的人员在完成相关工作时需要关注失效模型的完备性、测试patterns的大小、测试patterns的运行时间、工具的运行速度等方面。4 基础脚本示例Set_meessages -log log_filename.log -replaceReport_version -fullReport_settings -commadSet_atpg -abort_limit 10 -coverage 100.00#read netlist\libraryRead_netlist /net/netlist.v -deleteRead_netlist /xx/library.v -noabortReport_modules -summaryReport_modules -error#building the ATPG modelRun_build_model design_top_moduleReport_rules -fail#define clocks and pin constraintsAdd_clocks 1 clockAdd_pi_constraints 1 test_mode#performing test DRCRun_drc my_stil_file.spf#review the DRC resultsReport_rules -failReport_nonscan_cells -summaryReport_buses -summaryReport_feedback_paths -summaryReport_violations -all#prepare for ATPGadd_nofaults /top_module/A_moduleAdd_faults -all#Set_patterns external b010.vil#specifying ATPG settingsSet_atpg -patterns 400 -abort_limit 5若需要快速估计测试覆盖率可使用如下设置Set_atpg -abort_limit 5 -merge off#run ATPGRun_atpg -autoReport_summaries#writing ATPG patternsWrite_patterns patterns.stil -serial -format stil#write fault listWrite_faults faults_filename -all -replace5 相关参考链接【TetraMax教程】从零开始学习逻辑电路测试的终极指南 - CSDN文库Tips For TetraMax(ATPG software from Synopsys) - alphavor_jay的日志 - EETOP 创芯网论坛 (原名电子顶级开发网) - Powered by Discuz!柚柚汁呀❥(^_-)
返回列表