Tessent专栏第五篇:TessentMemoryBIST用户手册第二章下

这篇主要是翻译《Tessent MemoryBIST User's Manual For Use with Tessent Shell》的第二章后五节的内容,在这里作为一个学习的记录,仅供参考。(部分流程名词不作翻译,防止翻译不准引起歧义)

 上篇的链接如下:

https://blog.csdn.net/qq_29117599/article/details/123308059?spm=1001.2014.3001.5501icon-default.png?t=M276https://blog.csdn.net/qq_29117599/article/details/123308059?spm=1001.2014.3001.5501

         欢迎大家关注微信公众号“微电子之路”,后续继续更新关于TessentMBIST的学习记录。

                                             

 

2.6 Extract ICL 提取ICL

“提取ICL”步骤验证使用process_dft_specification命令插入的ICL模块的连接是否正确,并且在未检测到违反DRC的情况下,提取top-level ICL描述。

extract_icl命令还创建了一个可用于综合的SDC文件。更多信息请参考RTL Design Flow Synthesis部分。有关IJTAG网络和相关数据(如用于控制插入memory BIST的ICL)的更深入解释,请参考Tessent IJTAG User's Manual

下游工具使用这个来创建模式。您可以使用open_visualizer命令调试ICL提取DRC违规。

2.6.1 Preparation for Pattern Generation 模式生成的准备

extract_icl命令通过查找所有模块(包括Tessent instruments和non-Mentor Graphics instruments)及其关联的ICL模块,为模式生成准备当前设计,如果未检测到违反DRC的情况,则为当前设计创建ICL。

在设计加载(Design Loading)步骤的设计细化过程中,使用set_current_design命令指定了设计的根。创建模式规范(Create Patterns Specification)和过程模式规范(Process Patterns Specification)步骤使用为设计的根创建的ICL。您可以使用open_visualizer命令调试ICL提取DRC违规。请参考《Tessent IJTAG用户手册》中的“Debugging DRC Violations with Tessent Visualizer”一节。

例子

下面显示了如何将所有ICL模块提取到设计的根。该示例显示了在当前设计级别执行ICL提取时的脚本。

INSERTION> extract_icl  
//  Note: Updating the hierarchical data model to reflect RTL design changes. 
//  Module 'blockA' synthesized (Time = 1.30 sec). 
//  Module 'blockB' synthesized (Time = 1.02 sec). 
//  Module 'core' synthesized (Time = 1.00 sec). 
//  Warning: Rule FN1 violation occurs 534406 times 
//  Warning: Rule FP13 violation occurs 108 times 
//  Flattening process completed,  design_cells=369  leaf_cells=242  
//  library_primitives=115  netlist_primitive=6443  sim_gates=2165  PIs=9  POs=2  
//  CPU time=1.07 sec. 
//  --------------------------------------------------------------------------- 
//  Begin circuit learning analyses. 
//  -------------------------------- 
//  Learning completed, CPU time=0.08 sec. 
//  --------------------------------------------------------------------------- 
//  Begin ICL extraction. 
//  --------------------- 
//  ICL extraction completed, ICL instances=27, CPU time=0.42 sec. 
//  --------------------------------------------------------------------------- 
//  Writing ICL file : 
//  ./tsdb_outdir/dft_inserted_designs/core_rtl.dft_inserted_design/core.icl 

2.7 Create Patterns Specification 创建模式规范

 Create Patterns Specification 步骤创建默认模式规范。模式规范是一个配置文件,它告诉您将使用process_patterns_specification创建哪些测试。您可以编辑或配置默认模式规范,以生成所需的模式规范。

2.7.1 Automatically Created Patterns Specification 自动创建的模式规范

使用create_patterns_specification命令创建的默认模式规范仅存储在memory中。当运行process_patterns_specification命令时,会将一个副本写入TSDB输出目录的模式目录中,并且验证不会产生错误。要查看规范,请使用report_config_data命令。

例子

以下示例创建默认的签核(SignOff)模式规范,并将该规范存储在名为pat_spec的变量中,然后使用该变量在memory中报告模式规范。

set pat_spec [create_patterns_specification]  

report_config_data $pat_spec 

2.7.2 根据您的要求编辑/配置模式规范

根据您的需求,使用以下方法之一来编辑或创建模式规范。通常,您不需要编辑默认的signoff模式规范。原因是它执行所有插入的测试逻辑,通常是IJTAG网络和相关仪器以及所有memory BIST控制器。只有制造模式规范可能需要根据您的需求进行编辑。

1)方法1:在memory中编辑模式规范

这是首选方法,因为当您在memory中编辑模式规范时,所使用的命令是在Tcl或dofile中指定的。这种方法通过只使用脚本就可以在下一次迭代中轻松地重复编辑。

例子

以下示例显示tester_period的默认值为100ns,可以通过在memory中编辑模式规范来更改。有关可更改的一组全面的配置值,请参考《Tessent Shell参考手册》中的“PatternsSpecification”一节。

set pat_spec [create_patterns_specification]  

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

2)方法2:写出模式规范,编辑文件,然后读回文件

虽然这种方法更简单,但不建议这样做,因为每次运行主Tcl脚本或dofile时,写出的模式规范都会覆盖您的编辑。为了确保使用脚本进行的编辑是可重用和可重复的,请制作一份模式规范的副本,然后在重新读入之前编辑该规范。

例子

以下示例将模式规范写入名为initial_mbist_cfg.pat_spec的文件。在对该文件的副本进行所需的编辑后,该文件将被重新读入。请注意,写出的文件与读入的编辑文件不同。

create_patterns_specification  

report_config_data  

write_config_data initial_mbist_cfg.pat_spec -wrappers PatternsSpecification(blockA,signoff)  

read_config_data bonding1_config_edited.pat_spec  

report_config_data  

3)方法3:使用图形用户界面编辑模式规范

第三个选项是使用add_config_tab PatternsSpecification()命令,并通过GUI编辑模式规范。

例子

下面的例子调用了blockA的模式规范。

add_config_tab PatternsSpecification(blockA,rtl,signoff)  

在本例中,您使用图形用户界面来编辑已经创建的模式规范。您使用图形用户界面进行的编辑和应用会更新内存中的模式规范。如果您希望流程下次在没有图形用户界面编辑的情况下工作,并且更加基于脚本,您可以使用report_config_data命令显示您所做的编辑,然后使用read_config_data命令将它们添加到DFT规范中。

2.8 Process Patterns Specification

 Process Patterns Specification步骤创建模式和测试平台。

2.8.1 Process Patterns According to the Patterns Specification

在这一步中,您将根据默认模式规范或您在上一步中创建的已编辑模式规范来创建模式或测试平台。

例子

以下示例生成了测试工作台

process_patterns_specification 

2.9 Run and Check Test Bench Simulations

 Run and Check Test Bench Simulations步骤是使用Tessent Shell插入memoryBIST的最后一步。在这里,您运行 memoryBIST验证的模拟,然后检查结果。

2.9.1 Run Simulations

使用run_testbench_simulations命令调用仿真管理器来运行一组仿真测试平台。

run_testbench_simulations命令编译并模拟从process_patterns_specification命令生成的测试工作台,这些测试工作台位于<tsdb_outdir>/patterns/<design>.patterns_signoff中。有关run_testbench_simulations命令及其用法的详细说明,请参见Tessent Shell参考手册

例子

以下示例运行模式规范中定义的所有模式的模拟。

run_testbench_simulations 

2.9.2 Check Results

使用check_testbench_simulations命令检查先前由run_testbench_simulations命令启动的模拟的状态。有关check_testbench_simulations命令及其用法的详细说明,请参见Tessent Shell参考手册

例子

以下示例检查模拟结果是否有错误

check_testbench_simulations  

2.9.3 Formal Verification 形式验证

基于Tessent Shell的产品目前不生成用于Synopsys Formality的脚本。

但是,您可以在设计中设置约束,并手动创建一个与Formality一起使用的脚本。有关如何实现这一点的指导,请参考Tessent Shell用户手册中的“Formal Verification”附录。

2.10 Test Logic Synthesis

当处理RTL或门级设计时,测试逻辑合成过程是不同的。以下各节概述了不同的选项。

 

2.10.1 RTL Design Flow Synthesis

将MBIST RTL和相关测试逻辑与RTL设计集成在一起的RTL综合流程是一个自动化流程。以下各节概述了这一过程。

1)将生成的SDC用于MemoryBIST

extract_iclextract_sdc命令都创建了一个Synopsys Design Constraints(SDC)文件,可用于综合、布局和静态时序分析(STA)。由于extract_sdc命令需要ICL,因此需要在extract_icl之后运行。

extract_icl在包含子块的物理块上运行时,会为物理模块和子块生成SDC约束。

创建的SDC由几个程序组成,可以集成到设计综合脚本中。有关如何使用生成的SDC程序的更多信息和示例,请参考《Tessent Shell用户手册》中的“Timing Constraints SDC”一章。还提供了特定于MemoryBIST Instrument程序使用的附加信息。

2)综合RTL设计和测试逻辑

这一过程由一个脚本自动完成,该脚本可以被创建,然后由一个综合工具处理,以综合成一个已插入DFT的RTL设计。

write_design_import_script命令可用于生成一个脚本,该脚本可由综合工具处理,以加载已插入DFT的RTL设计。编写的脚本文件可以与extract_icl期间生成的SDC相结合,以综合物理块或芯片设计单元。

2.10.2 Gate Level Design Flow Synthesis

门级设计流程合成是全自动流程,只需要run_synthesis命令来综合测试逻辑并集成到设计中。

1)Run Synthesis

run_synthesis命令只合成TSDB中包含的测试逻辑RTL。当创建和插入memory BIST、边界扫描或IJTAG逻辑时,在process_dft_specification期间,生成的RTL会自动写入TSDB。

run_synthesis命令调用综合管理器来执行测试逻辑RTL的合成。有关run_synthesis命令及其用法的详细说明,请参阅Tessent Shell参考手册

例子

以下示例为设计执行综合,可以在physical_block或顶层设计级别运行。

run_synthesis 

2)Concatenate Netlist Generation

run_synthesis成功综合时,包含综合的测试逻辑和修改的设计模块的设计的级联网表将被自动创建并放置在TSDB的dft_inserted_designs目录中。

2.11 Run and Check Test Bench Simulations with a Gate Level Netlist

为了对之前在RTL插入了MemoryBIST的设计进行MemoryBIST门级验证,需要重新生成签核signoff模式。下面概述了实现这一目标的主要步骤。

1)Prerequisites

带有MemoryBIST的门级设计,之前插入RTL

2)Procedure

a)将context设置为IJTAG模式

b)指向用来做MemoryBIST RTL插入的TSDB

c)读取单元和memory库

d)读取门级网表

e)阅读TSDB的设计数据,不包括RTL

f)设置当前设计并检查设计规则

g)创建和处理模式规范。

h)运行和检查试验台(test benches)

3)例子

以下示例针对设计“cpu_top”运行上述步骤:

set_context patterns -ijtag
set_tsdb_output_directory tsdb_outdir
read_cell_library adk.tcelllib
read_cell_library memory.lib
read_verilog cpu_top.vg
read_design cpu_top -design_id gate -no_hdl
set_current_design cpu_top
check_design_rules
create_patterns_specification
process_patterns_specification
set_simulation_library_sources -v adk.v -v ram.v
run_testbench_simulations
check_testbench_simulations
check_testbench_simulations -report_status

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值