Tessent Mbist工具使用说明

EDA软件 0 12761 佚名 收藏

1. 工具整体思路

mbist流程的整体思路是:

  1. 根据第一步的设置创建dft specification,这里面包含了插入电路需要用到的所有信息。

  2. 根据创建的dft specification产生并插入指定的电路。

  3. 产生测试pattern。

     

2.插入mbist具体流程

2.1提前准备的文件

  1. RTL或者gate-level的netlist:需要插入mbist 的design

  2. 能被tessent识别的Memory BIST libraries:描述memory的端口信息和使用的算法,

  3. 能被Tessent识别的 cell library:design中存在standard cell时,工具使用对应的cell library来link standard cell

  4. verilog model:memory的verilog模型

2.2  TESSENT MBIST INSERT FOLW

insert memory bist的思路是首先生成dft_specification,然后工具根据dft specification生成并插入测试逻辑。

具体如下:

  1. 脚本执行:

    tessent –shell -64 –log mbist.log –replace –dofile mbist_insert.do

  2. Do文件解析

  1. 设置context

    在RTL level插入mbist时,需要将context设置为dft,指示工具对设计文件做修改,加上rtl选项,指示在RTL level进行修改。

    命令:Set_context dft -rtl

  2. 加载设计文件以及库文件

    需要明确读入的设计文件应该包含:

    例化了memory的module、memory的verilog module、memory的clock路径经过的module、例化mbist控制器的module(为mbist提供插入位置)、mbist信号穿过的module。对于不需要明确读入的module,应该把它们设置成black box或者读入它们的仿真model。

    命令:read_verilog *.v

    需要读入的库文件有两种:

  • 这里的库文件是Tessent cell library,它里面包含了cell的功能信息和insertion attribute。其中功能信息可以被Tessent用来仿真,insertion attributes可以用于测试逻辑的插入。在RTL level,用到的library是PAD library,告诉工具哪些cell是PAD以及这个PAD的功能。工具在插入电路时将内部信号接到PAD 合适的pin上面。类似于synopsys的lib文件。

命令:read_cell_library *

  • memory的TCDs(Tessent core descriptions)。这是memory的端口描述,用来告诉工具各个port的宽度和用途等信息,类似于mbistarchitect中的memory model

命令read_core_descriptions *

  1. 设置current design和design level

    Set_current_design设置design的top level,后续的命令作用于这个level

     

    Set_design_level设置current design的level,chip、physical_block或者sub_block。告诉工具这个design是处于chip level还是physical_level、sub_level。

    Physical level和sublevel是芯片内部的层次,physicallevel的范围比sublevel的范围更大,即sublevel是physicallevel的子集。这二者造成的影响是工具会为physicallevel产生对应的sdc,不会为sublevel产生。

  2. 设置dft_specification_resuirements,告诉工具需要插入mbist

    如果要插入memory bist,那么需要用命令set_dft_specification_requirements告诉工具。

  3. 添加约束

    这些约束在后续步骤中会体现在dft specification中。常见的命令有

    set_attribute_value和set_config_value。

    set_attribute_value用来设置object的某个attribute的值;插入tap controller时,需要用这个命令设置tap 的5个PAD;

    例子,设置TCK

    set_attribute_value PAD_35 –name function –value TCK

     

    set_config_value用来设置dft specification中某个object的值。

  4. 指定memory的clock

    使用add_clocks定义出clock的source,工具会从memory的clock pin trace,直到定义的clocksource,如果trace不到clock source,那么工具报错,所以必须定义clock。

  5. 进行DRC

    确保通过之前的设置,当前设计已经满足插入mbist的规则

    使用命令check_design_rule

  6. 生成dft specification

    这个文件是根据4、5、6步骤中的设置产生的。其中的内容引导工具生成并插入需要的测试逻辑,包括ijtag网络、memory bist controller;需要查看里面的内容时,可以写到文件中或者report到屏幕上。

    使用create_dft_specification可以创建default DFT specification。创建的DFT specification存在于内存中。

    可以使用report_config_data来报出DFT specification。

    总的来说,DFT Specification告诉工具要插入什么电路,以及插入时用到其他的信息。

  7. 检查第8步生成的dft specification,如果不符合期望,就进行修改;

生成default configuration后,如果需要修改,可以使用三种方法修改:

  • 回到setup mode,修改constraint,重新生成DFT specification

  • 使用GUI来编辑DFT specification

  • 在内存中修改DFT specification,推荐使用这种方法,因为编辑命令可以写在脚本中,能重复使用。

例子:在内存中使用命令修改

Dft specification 中包含memory bist controller的clock,需要改变时,可以使用命令set_config_value 来修改

  1. 编辑dft specification后,推荐核实一下编辑后的dft specification没有错误;

    命令process_dft_specification –validate_only

  2. 根据第9步的dft specification,工具生成并插入需要的测试逻辑;

    命令process_dft_specification

    创建完DFT Specification后,就可以生成并且插入所有在DFT specification中要求的DFT hardware。对于Tessent MemoryBIST,在chip level插入时,TAP controller被插入;在physical 或者sub-block level插入时,IJTAG host scan interface被插入。

    命令是process_dft_specification

  3. 提取ICL网络,后续用于产生测试pattern;

    使用命令extract_icl核实插入的ICL modules之间的连接性是否合适,如果没有DRC violation,提取出top-level的ICL描述。ICL描述了ijtag网络的连接关系,被用来产生pattern。这个命令也创建SDC file,可以用于综合。

  4. 对插入了mbist的设计产生测试pattern

3.产生测试pattern的流程

  1. 设置context,告诉工具需要工作在什么context下,dft或者pattern;

产生测试pattern,需要设置context为patterns,加上ijtag选项表示产生的是给ijtag网络使用的 pattern

命令:set_context patterns -ijtag

  1. 读入之前生成的icl文件;

将之前产生的icl读入

命令:read_icl *.icl

  1. 设置current design;

使用命令set_current_design设置

  1. 生成pattern specification。这个文件引导工具产生测试向量;

Pattern类型有两类,仿真使用和测试使用的。使用create_patterns_specificaton命令产生pattern specification,它存在于内存中。需要查看时可以用reprot_config_data将其报告到屏幕上。

 

  1. 检查第4步生成的pattern specification,如果不符合期望,就进行修改;

通常情况下不需要修改default pattern specification,因为default specification会测量所有插入的test logic,通常是IJTAG 网络、以及所有相关的instruments。测试相关的pattern可以根据需要通过修改来产生。修改的方法有3中。

  • 在内存中编辑,推荐这种方法,因为在内存中编辑是使用tcl或者dofile,可以形成脚本,重复使用。

    例子,将测试周期修改为50ns

    set pat_spec [create_patterns_specification]

    set_config_value –in $pat_spec/Patterns(MemoryBist_P1)/tester_period 50ns

  • 将pattern specification写出到文件中,编辑后读回。

  • 在GUI中编辑pattern specification

  1. 工具根据pattern specification产生测试向量

    根据第4步产生的pattern specification,使用命令process_patterns_specification可以产生patterns和testbench。

相关推荐:

网友留言:

您需要 登录账户 后才能发表评论

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
验证码