1、DFT ATPG实验实验一 DFT Compiler1.实验目的:熟悉DFT Compiler操作流程,完成对设计tcrm.v的自动扫描链插入。回顾使用Design Compile进行逻辑综合的流程。2.实验内容:DFT Compiler是一款功能强大的用于可测性设计的工具,提供从前端逻辑域到后端物理域完整的可测性设计解决方案,自动综合为带有扫描链的可测性设计。本文通过DFT Compiler 将设计tcrm.v综合为带有扫描链的门级网表tcrm_scan.vg,并输出测试协议文件tcrm_stil.spf,为进一步完成自动测试向量生成作数据准备。 设计的原理图如图2.1所示。图2.1 tcr
2、m原理图其Verilog代码形式详见tcrm.v3.DFT Compiler流程与基本命令4.相关文件组织DFT/Lab1/ script/ /脚本文件夹 tcrm.con /设计约束 tcrm.tmv /测试时间约束变量设置 tcrm.tp /测试协议 tcrm.tcl /实验完整流程与命令集 SMIC_db/ /库文件夹 typical.db /前端综合库 src/ /设计文件夹 tcrm.v /设计数据 report/ /报告文件夹,用来存放生成的报告 mapped/ /存放综合过的网表文件5.实验步骤A)启动DFT Compiler 是DC_Ultra中一个组件,因此其启动命令与DC相
3、同,在DC中输入DFT相关命令就可以使用DFT Compiler。rootsvr580 Lab1$ design_vision /启动DC图形化界面 B)读入库文件和设计在图形界面的命令行中输入如下命令,读入库文件和设计文件。design_vision-xg-tset target_library SMIC_db/typical.db / 工艺库设置 design_vision-xg-tset link_library SMIC_db/typical.db / 链接库设置 design_vision-xg-tset hdlin_enable_rtldrc_info true / 设置允许RTL
4、 DRC检查 design_vision-xg-tread_verilog src/tcrm.v / 读入设计 design_vision-xg-tlink / 连接库文件和设计 以上过程也可以在图形界面下通过菜单操作来完成。C)设计约束本设计的所有约束和工作环境定义都写入脚本,直接读入脚本即可。design_vision-xg-t source tcrm.con /运行约束脚本 D)综合design_vision-xg-t compile 综合后的电路示意图如图5.1所示图5.1 未加入扫描单元的综合示意图与预想的设计比较完全一样,图2.1中的U1和U2单元分别对应DFFRHQX1实例化后的
5、U1_reg和U2_reg单元。综合后电路单元的面积是153 unit下文对此设计进行修改,用带扫描单元的器件替换图中不带扫描单元的器件E)设置扫描类型在加入扫面单元前要设置插入的扫描单元类型,一共有4中,本文插入常用multiplexed_flip_flop类型,命令如下:design_vision-xg-t set_scan_configuration -style multiplexed_flip_flop F)测试延时约束变量设置为满足Tetramax工具中对延时约束,这里对测试中的一些延迟变量做设定,具体参数详见脚本tcrm.tmvdesign_vision-xg-t source
6、tcrm.tmv G)带扫描单元的综合输入如下命令,综合出带有扫描单元的设计。综合后的结果如图5.2所示design_vision-xg-t compile -scan 图5.2 加入扫描单元的综合示意图由图可以看出,U1和U2单元发生了变换,用SDFFRHQX1代替了DFFRHQX1,增加了SI和SE两个用于测试的输入。综合后的面积为179 units。对比不带扫描单元的综合结果,电路面积略有增加,在时序方面也略有变化。H)输入测试协议对于测试电路的输入和输出需要做一些初始化设置才能在自动测试中完整的测试每一个被测单元并得到正确的结果,根据本设计编写的测试协议存放在tcrm.tp脚本中,运行
7、即可。design_vision-xg-t source tcrm.tp I)DRC校验为成功插入扫描链需要先对设计的DRC(design rules check)进行查验,没有规则违背才能进行下一步插入扫描链。design_vision-xg-t dft_drc 在图形化界面输入dft_drc后会调用Violation Browser,图形化的DRC查验工具,当所有违背都修改完毕后关闭Violation Browser。J)插入扫面链design_vision-xg-t insert_dft 插入扫描后的综合示意图如图5.3所示。图5.3 插入扫描链后的综合示意图插入扫描链后将U1的输出接入
8、到了U2的SI端,in3分别接入U1和U2的SE端,构成扫面链。在以上设计中U1_reg/Q端到U2_reg/SI端,没有经过任何组合逻辑,不消耗时间,会造成holdtime的时序违反,因此对此段路径做处理,加入buffer以满足holdtime。design_vision-xg-t set_min_delay 0.2 from U1_reg/Q to U2_reg/SI design_vision-xg-t set_fix_hold clk design_vision-xg-t compile incremental_mapping 再次综合后的结果如图5.4所示图5.4 加入buffer后
9、的综合示意图K)设计输出保存网表和测试协议,为Tetramax的ATPG实验提供数据输入。design_vision-xg-twrite -format Verilog output mapped/tcrm_scan.vg design_vision-xg-twrite_test_protocol output report/tcrm.spf 实验二 TetraMAX的ATPG测试向量生成1.实验目的:熟悉TetraMAX中ATPG的操作流程。学会利用TetraMAX工具自动生成测试激励文件。2.实验内容:TetraMAX是业界功能最强、最易于使用的自动测试向量生成工具。针对不同的设计,Tet
10、raMAX可以在最短的时间内,生成具有最高故障覆盖率的最小的测试向量集。TetraMAX支持全扫描、或不完全扫描设计,同时提供故障仿真和分析能力。本实验以上一节DFT Compiler 生成的具有扫描链的tcrm.vg网表文件为输入。针对此设计,添加故障,自动生成能够检测全部故障的最小测试向量,并自动生成testbench文件,为设计的仿真提供数据。3.实验流程:4.文件组织:TMAX/Lab1/script/ /脚本文件夹tcrm_tmax.tcl /实验完整命令脚本 src/ /实验数据tcrm_scan.vg /DFT生成的可测性网表文件 tcrm.spf /DFT生成的测试协议文件 S
11、MIC_db/ /库文件夹 smic18.v /模型库 output/ /输出文件夹5.实验步骤:A)启动TetraMAXrootsvr580 Lab1$ tmax 如图5.1是TetraMAX工具的显示界面,提供命令行和菜单两种方式命令执行方式。图5.1 TetraMAX工作界面B)读入设计网表BUILDread netlist src/tcrm_scan.vg C)读入模型库BUILDread netlist SMIC_db/smic18.v D)构造ATPG模型BUILDRUn Build_model tcrm /注意大小写 E)DRC检查DRCrun drc src/tcrm.spf
12、F)添加故障TEST add faults all TetraMAX中一个可以设计五种故障,参数-all表示添加所有可能发生的故障。运行命令后会显示50 faults were added to fault list。具体的故障详见文档all_fault.txtG)运行ATPG,自动生成测试向量TEST run atpg 生成的报告如下:可以看出一共生成了5个测试向量,故障覆盖率达到100%H)保存结果,自动生成测试激励文件TEST write patterns output/tcrm_testbench.v form Verilog 命令运行后会在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 完备测试序列和理想响应测试激励理想响应01101X0010001001010011000110111010101111
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1