DFT ATPG实验.docx
《DFT ATPG实验.docx》由会员分享,可在线阅读,更多相关《DFT ATPG实验.docx(9页珍藏版)》请在冰豆网上搜索。
DFTATPG实验
实验一DFTCompiler
1.实验目的:
●熟悉DFTCompiler操作流程,完成对设计tcrm.v的自动扫描链插入。
●回顾使用DesignCompile进行逻辑综合的流程。
2.实验内容:
DFTCompiler是一款功能强大的用于可测性设计的工具,提供从前端逻辑域到后端物理域完整的可测性设计解决方案,自动综合为带有扫描链的可测性设计。
本文通过DFTCompiler将设计tcrm.v综合为带有扫描链的门级网表tcrm_scan.vg,并输出测试协议文件tcrm_stil.spf,为进一步完成自动测试向量生成作数据准备。
设计的原理图如图2.1所示。
图2.1tcrm原理图
其Verilog代码形式详见tcrm.v
3.DFTCompiler流程与基本命令
4.相关文件组织
DFT/Lab1/
script///脚本文件夹
tcrm.con//设计约束
tcrm.tmv//测试时间约束变量设置
tcrm.tp//测试协议
tcrm.tcl//实验完整流程与命令集
SMIC_db///库文件夹
typical.db//前端综合库
src///设计文件夹
tcrm.v//设计数据
report///报告文件夹,用来存放生成的报告
mapped///存放综合过的网表文件
5.实验步骤
A)启动
DFTCompiler是DC_Ultra中一个组件,因此其启动命令与DC相同,在DC中输入DFT相关命令就可以使用DFTCompiler。
[root@svr580Lab1]$design_vision//启动DC图形化界面
B)读入库文件和设计
在图形界面的命令行中输入如下命令,读入库文件和设计文件。
design_vision-xg-t>settarget_librarySMIC_db/typical.db//工艺库设置
design_vision-xg-t>setlink_librarySMIC_db/typical.db//链接库设置
design_vision-xg-t>sethdlin_enable_rtldrc_infotrue//设置允许RTLDRC检查
design_vision-xg-t>read_verilogsrc/tcrm.v//读入设计
design_vision-xg-t>link//连接库文件和设计
以上过程也可以在图形界面下通过菜单操作来完成。
C)设计约束
本设计的所有约束和工作环境定义都写入脚本,直接读入脚本即可。
design_vision-xg-t>sourcetcrm.con//运行约束脚本
D)综合
design_vision-xg-t>compile
综合后的电路示意图如图5.1所示
图5.1未加入扫描单元的综合示意图
与预想的设计比较完全一样,图2.1中的U1和U2单元分别对应DFFRHQX1实例化后的U1_reg和U2_reg单元。
综合后电路单元的面积是153unit
下文对此设计进行修改,用带扫描单元的器件替换图中不带扫描单元的器件
E)设置扫描类型
在加入扫面单元前要设置插入的扫描单元类型,一共有4中,本文插入常用multiplexed_flip_flop类型,命令如下:
design_vision-xg-t>set_scan_configuration-stylemultiplexed_flip_flop
F)测试延时约束变量设置
为满足Tetramax工具中对延时约束,这里对测试中的一些延迟变量做设定,具体参数详见脚本tcrm.tmv
design_vision-xg-t>sourcetcrm.tmv
G)带扫描单元的综合
输入如下命令,综合出带有扫描单元的设计。
综合后的结果如图5.2所示
design_vision-xg-t>compile-scan
图5.2加入扫描单元的综合示意图
由图可以看出,U1和U2单元发生了变换,用SDFFRHQX1代替了DFFRHQX1,增加了SI和SE两个用于测试的输入。
综合后的面积为179units。
对比不带扫描单元的综合结果,电路面积略有增加,在时序方面也略有变化。
H)输入测试协议
对于测试电路的输入和输出需要做一些初始化设置才能在自动测试中完整的测试每一个被测单元并得到正确的结果,根据本设计编写的测试协议存放在tcrm.tp脚本中,运行即可。
design_vision-xg-t>sourcetcrm.tp
I)DRC校验
为成功插入扫描链需要先对设计的DRC(designrulescheck)进行查验,没有规则违背才能进行下一步插入扫描链。
design_vision-xg-t>dft_drc
在图形化界面输入dft_drc后会调用ViolationBrowser,图形化的DRC查验工具,当所有违背都修改完毕后关闭ViolationBrowser。
J)插入扫面链
design_vision-xg-t>insert_dft
插入扫描后的综合示意图如图5.3所示。
图5.3插入扫描链后的综合示意图
插入扫描链后将U1的输出接入到了U2的SI端,in3分别接入U1和U2的SE端,构成扫面链。
在以上设计中U1_reg/Q端到U2_reg/SI端,没有经过任何组合逻辑,不消耗时间,会造成holdtime的时序违反,因此对此段路径做处理,加入buffer以满足holdtime。
design_vision-xg-t>set_min_delay0.2–fromU1_reg/Q–toU2_reg/SI
design_vision-xg-t>set_fix_holdclk
design_vision-xg-t>compile–incremental_mapping
再次综合后的结果如图5.4所示
图5.4加入buffer后的综合示意图
K)设计输出
保存网表和测试协议,为Tetramax的ATPG实验提供数据输入。
design_vision-xg-t>write-formatVerilog–outputmapped/tcrm_scan.vg
design_vision-xg-t>write_test_protocol–outputreport/tcrm.spf
实验二TetraMAX的ATPG测试向量生成
1.实验目的:
熟悉TetraMAX中ATPG的操作流程。
学会利用TetraMAX工具自动生成测试激励文件。
2.实验内容:
TetraMAX是业界功能最强、最易于使用的自动测试向量生成工具。
针对不同的设计,TetraMAX可以在最短的时间内,生成具有最高故障覆盖率的最小的测试向量集。
TetraMAX支持全扫描、或不完全扫描设计,同时提供故障仿真和分析能力。
本实验以上一节DFTCompiler生成的具有扫描链的tcrm.vg网表文件为输入。
针对此设计,添加故障,自动生成能够检测全部故障的最小测试向量,并自动生成testbench文件,为设计的仿真提供数据。
3.实验流程:
4.文件组织:
TMAX/Lab1/
script///脚本文件夹
tcrm_tmax.tcl//实验完整命令脚本
src///实验数据
tcrm_scan.vg//DFT生成的可测性网表文件
tcrm.spf//DFT生成的测试协议文件
SMIC_db///库文件夹
smic18.v//模型库
output///输出文件夹
5.实验步骤:
A)启动TetraMAX
[root@svr580Lab1]$tmax
如图5.1是TetraMAX工具的显示界面,提供命令行和菜单两种方式命令执行方式。
图5.1TetraMAX工作界面
B)读入设计网表
BUILD>readnetlistsrc/tcrm_scan.vg
C)读入模型库
BUILD>readnetlistSMIC_db/smic18.v
D)构造ATPG模型
BUILD>RUnBuild_modeltcrm//注意大小写
E)DRC检查
DRC>rundrcsrc/tcrm.spf
F)添加故障
TEST>addfaults–all
TetraMAX中一个可以设计五种故障,参数-all表示添加所有可能发生的故障。
运行命令后会显示50faultswereaddedtofaultlist。
具体的故障详见文档all_fault.txt
G)运行ATPG,自动生成测试向量
TEST>runatpg
生成的报告如下:
可以看出一共生成了5个测试向量,故障覆盖率达到100%
H)保存结果,自动生成测试激励文件
TEST>writepatternsoutput/tcrm_testbench.v–formVerilog
命令运行后会在output目录下生成5个文本文件,tcrm_testbench.pis,tcrm_testbench.pos,tcrm_testbench.scn,tcrm_testbench.seq,tcrm_testbench.v。
其中tcrm_testbench.pis测试激励序列,tcrm_testbench.pos存放理想响应序列,tcrm_testbench.v是自动生成的测试文件,可以用于vcs仿真。
表1完备测试序列和理想响应
测试激励
理想响应
01101X
00
100010
01
010011
00
011011
10
101011
11