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

上篇的链接如下:

https://blog.csdn.net/qq_29117599/article/details/123308059?spm=1001.2014.3001.5501https://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

Tessent专栏第五篇:TessentMemoryBIST用户手册第二章下相关推荐

  1. Tessent专栏第4篇:TessentMemoryBIST用户手册第二章上

    这篇主要是翻译<Tessent MemoryBIST User's Manual For Use with Tessent Shell>的第二章前五节的内容,在这里作为一个学习的记录,仅供 ...

  2. 第五篇:mig读写时序下板实现

    FPGA开源工作室将通过五篇文章来给大家讲解xilinx FPGA 使用mig IP对DDR3的读写控制,旨在让大家更快的学习和应用DDR3. 本实验和工程基于Digilent的Arty Artix- ...

  3. 笔记篇:操作系统第二章 进程管理

    笔记篇:操作系统第二章 进程管理 目录 笔记篇:操作系统第二章 进程管理 2.1 进程的基本概念 2.1.1 程序的顺序执行及其特征 2.1.2 前驱图 2.1.3 程序的并发执行及其特征 2.1.4 ...

  4. 金字塔原理--第一篇读后感(第二章)

    金字塔原理-第一篇表达的逻辑 自己的表达能力不太行,敲本书,瞅瞅别人的表达方式,学习下,共同进步呀! 文章目录 金字塔原理-第一篇表达的逻辑 第二章:金字塔内部的结构 一.纵向关系 二.横向关系 三. ...

  5. 信息安全工程师----五天修炼(第二章 安全法规和标准)

    第二章 安全法规和标准 信息安全法律法规 我国信息安全的法律体系可分为4个层面: 一般性法律规定 规范和惩罚信息网络犯罪的法律 针对信息安全的特别规定 具体规范信息安全技术,信息安全管理等方面的法律法 ...

  6. 通信电子线路期末复习第二章下

    文章目录 第二章 高频谐振放大器 2.5 丙类谐振高频放大器 练习题 第二章 高频谐振放大器 2.5 丙类谐振高频放大器 练习题 用到这个图

  7. Word设置二级标题的编号后,第二章下的二级标题的编号仍为1.X

    Word二级标题自动编号,本来应该是2.1,可是却变成1.3,怎么办?就如下图所示. 1.  先双击选择一级标题的标号,并点击多级列表: 2.  然后选择"定义新的多级列表": 3 ...

  8. Tessent专栏第三篇:TessentMemoryBIST用户手册_1

    这篇主要是翻译<Tessent MemoryBIST User's Manual For Use with Tessent Shell>的第一章的内容,在这里作为一个学习的记录,仅供参考. ...

  9. 数学建模专栏 | 第五篇:MATLAB优化模型求解方法(上):标准模型

    最优化赛题是数学建模大赛中最常见的问题类型之一.一般说来,凡是寻求最大.最小.最远.最近.最经济.最丰富.最高效.最耗时的目标,都可以划入优化问题的范畴.MATLAB 优化工具箱和全局优化工具箱对多个 ...

最新文章

  1. Eclipse安装SVN最新版插件
  2. 信捷伺服刚性调整_伺服系统增益协调的作用及举例说明,文末有伺服产品调试学习PPT!...
  3. 事务隔离级别,看这一篇就够了
  4. Linux下Shell的for循环语句
  5. windows编译MaskRCNN
  6. 【java笔记】线程间通信(1):等待唤醒机制
  7. python谱聚类算法_谱聚类 - python挖掘 - 博客园
  8. Android 自定义View(一)常用属性
  9. Unity与Android通信
  10. 【边缘检测】基于matlab蚁群算法图像边缘检测【含Matlab源码 1189期】
  11. sourceforge.net居然被劫持??
  12. 微信小程序云开发源码(垃圾分类源码)
  13. 大数据基础和硬件介绍
  14. 嵌入式系统与普适计算
  15. 微信小程序请求头header_微信小程序开发:http请求
  16. modprobe 找不到文件
  17. 初识大数据(一)什么是大数据
  18. 痞子衡嵌入式:在串口波特率识别实例里逐步展示i.MXRT上提升代码执行性能的十八般武艺...
  19. MATLAB 数字图像处理---车牌简单识别【亲测有效】
  20. C语言入门——编程题

热门文章

  1. 初中计算机认识ppt课程教案,初中信息技术《PPT模板的制作》教案
  2. 探寻企业app开发的特色功能和技术特点
  3. Python的自定义模块细讲
  4. secureCRT保存屏幕输出内容
  5. 在100ask stm32mp157板子上运行超级玛丽
  6. 美国队长的工资 python代码-用Python绘制美国队长盾牌
  7. 教你设置dsn,brd文件关联到cadence
  8. Jmeter 启动时报错:Not able to find Java executable or version. Please check your Java installation.
  9. sealed密封类的使用
  10. layuiAdmin 框架iframe文档