本章节描述如何使用Tessent Shell插入Tessent MemoryBIST。
DFT Flow Using Tessent Shell
Tessent MemoryBIST在Tessent Shell中有high-level flow序列(应该是要先插入MBIST)。

Prerequisites
为了插入memory BIST到设计中,需要由RTL或者门级网表和memories BIST library。
如果设计包含标准单元,还需要Tessent cell library或者ATPG library。对于其他的IP blocks既没有RTL也没有library模型,可以使用read_verilog或者read_vhdl -interface_only命令来加载仿真模型,这指示工具忽略filename参数中指定的所有模块的内部内容,只提取模块端口定义和参数。
Design Loading
是使用Tessent Shell插入TessentMemoryBIST的第一步,包括设置正确的context、读取library、读设计、和elaborating设计。
Set the Context
在Tessent Shell中,设置context包括两件事,首先,为了创建memory BIST硬件,必须将context设置为dft,其次,必须指定被读入地设计类型是否为RTL,如果是,则必须指定为-rtl。如果读入的设计是门级网表,则应该指定为-no_rtl。当使用-no_rtl mode时,在dft插入阶段结束时写出一个拼接后的网表。在rtl mode下,在dft插入结束时写出具有新创建的测试IP的修改后的文件,并且保留输入设计的文件结构。可以读取的网表格式为verilog、VHDL或者混合型。
如果一个block已经插入memory BIST,需要集成到更高的层级(top读子模块),必须打开子模块的tsdb(open_tsdb),如果child和parent设计使用了相同的tsdb,则不需要打开。
Read the Libraries
使用read_cell_library命令为能在设计中例化的library cells读取library文件。当在RTL -only设计中插入memoryBIST时,读取memory BIST library是足够的,但是不常见,因为在RTL设计中例化的一些library cells为了pad cell和clock control。当Tessent cell libraries不包括pad信息时,read_cell_library命令支持LV pad library,可能被使用以扩展Tessent cell libraries(包括pad信息)。
Memory BIST library 被称为Tessent core descriptions(TCD)。
Read the Design
在设置context和加载所需library后,可以使用read_verilog命令来读取设计。
Memory placement (布局布线)和电源域数据也会在这一步被加载,这些数据影响memory BIST在memroy分区和controller分配的规划。
Eaborate the Design
使用set_current_design命令来elaborate设计。指定在设计上进行的所有后续操作的根,如果缺少对任一模块的描述,设计elaboration识别他们。对于memory BIST插入,如果modules不包含memories或者输入没有时钟树元素则被允许识别为未定义,使用add_black_box命令指定为blackbox。
Specify and Verify DFT Requirements
下一步指定DFT要求,添加约束,验证指定的DFT要求是否正确(进行DRC检查)。
Set DFT Specification Requirements
为了插入MemoryBIST,必须要使用set_dft_speification_requirements命令指定DFT规格要求,这将启用特定用MemoryBIST的DRC,并指示create_dft_specification命令包含MemoryBIST wrapper。
Add Properties and Constraints
可以添加或者改变特性和约束从而影响DFT规格创建。
Define Clocks
下一步是使用add_clocks命令定义时钟。当elaborating 设计时,Tessent Shell从memory的时钟pins到时钟源自动追溯时钟。
Run DRC
下一步是执行DRC检查以保证所有的约束时正确的,
Create DFT Specification
下一步时创建DFT规格。
使用create_dft_specification命令基于指定的DFT要求创建默认的DFT规格。可以使用report_config_data命令来报告创建的DFT规格,有几种不同的方法可编辑或配置DFT规格以满足自定义要求。
Invoke create_dft_specification
使用create_dft_specification命令会自动创建DFT规格,DFT规格被存储在memory中。使用report_config_data命令报告memory中的DFT规格。DFT规格包括ijtagNetwork wrapper(用于指定编辑BIST控制器的访问电路)和MemoryBist wrapper(指定memory BIST配置:是指memory BIST都包含什么东西)。
Edit/Configure the DFT Specification According to Your Requirements
可以根据需求编辑或配置已生成的DFT规格,如果不需要编辑,则使用默认的规格。
返回setup模式,改变要求,重新生成DFT规格。
Validate the DFT Specification
可选,但是推荐进行这个步骤,验证DFT规格没有错误。
Process DFT Specification
这一步骤处理DFT规格,创建和插入DFT规格中所有组件的硬件。
Create DFT Hardware with the DFT Specification
使用process_dft_specification命令来生成和插入DFT规格要求的DFT硬件,当插入芯片级时,插入TAP控制器,当插入physical和sub_block级时,则插入IJTAG主扫描接口。
Extract ICL
Extract ICL步骤验证了插入的ICL模块的正确连接性(proper connectivity),当没有DRC违例时,提取top级的ICL描述。
extract_icl命令也会创建SDC文件用以综合,工具后续使用ICL文件来创建patterns,可使用open_visualizer命令来debug ICL提却的DRC违例。
Preparation for Pattern Generation
extract_icl命令通过查找所有模块及其相关的ICL模块来为patterns生成准备当前设计,如果没有检测到DRC违例,则为当前设计创建ICL。
Create Patterns Specification
该步骤创建默认的pattens规格,patterns规格是一个配置文件,告诉我们使用process_patterns_specification会创建什么样的测试,可以编辑和配置默认的规格来生成想要的patterns规格。
Automatically Created Patterns Specification
使用create_patterns_specification命令自动创建默认patterns规格,只被存储在memory中。使用report_config_data命令来查看规格。
Edit/Configure the Patterns Specification According to Your Requirements
可以根据需求编辑和配置patterns 规格。通常不需要编辑默认signoff patterns规格,因为它执行所有插入的测试逻辑,通常是IJTAG网络和相关的instruments,和所有的memory BIST控制器。只有制造patterns规格可能需要编辑规格。
Process Patterns Specification
这一步创建patterns和测试台。
Run and Check Test Bench Simulations
这是使用Tessent Shell进行MemoryBIST的最后一步,可执行memoryBIST验证仿真并检查结果。
Run Simulations
使用run_testbench_simulations命令调用仿真管理器来执行一系列仿真测试台
Check Results
使用check_testbench_simulations命令来检查仿真的状态。
Formal Verifivation
当前的Tessent Shell产品不能生成用于Synopsys形式验证的脚本。但是可以在设计中设置约束,手动创建脚本用于像是验证。
Test Logic Synthesis
在处理RTL和门级设计时,测试逻辑的综合过程是不同的。
在MemoryBIST逻辑综合期间,综合工具会发出两种与寄存器优化有关的warnings。当综合工具非常可靠时,这些warnings可能被忽略。通常使用fml验证功能不会被影响。warning类型时:
- 没有fanout并且组合逻辑驱动inputs的寄存器被移除。
- inputs和outputs相同的寄存器被合并。

RTL Design Flow Synthesis
RTL综合流程把MBIST RTL和相关的测试逻辑与设计RTL集成在一起,是一个自动的流程。
- Using Generated SDC for MemoryBIST
使用extract_icl和extract_sdc命令创建sdc文件用以综合,布局和sta。因为extract_sdc命令要求ICL,需要在extract_icl之后执行。
- Synthesizeing the RTL Design with Test Logic
通过脚本使该过程自动化,使用综合工具创建并处理,以综合已进行DFT插入的RTL设计
write_design_import_script命令被用来生成脚本,该脚本被综合工具处理来加载已经进行DFT插入的RTL设计,脚本文件被写并与extract_icl期间生成的SDC相组合,来综合物理模块或者芯片设计单元。
Gate Level Design Flow Synthesis
门级设计流程综合是完全自动化的过程,只要求run_synthesis命令来综合测试逻辑并整合进设计中。
- Run Synthesis
run_synthesis命令只综合包含在TSDB中的测试逻辑RTL。
当创建和插入memory BIST,boundary scan 或者IJTAG逻辑时,在process_dft_specification生成的RTL被自动写入TSDB。
run_synthesis命令调用综合管理器以对测试逻辑RTL进行综合。 - Concatenate Netlist Generation
当run_synthesis成功完成后,会自动创建包含综合后的测试逻辑和修改后的设计模块的网表,并放置到TSDB中的dft_inserted_designs目录中。
Run and Check Test Bench Simulations with a Gate Level Netlist
为了在设计上执行MemoryBIST门级验证。
要求:包含先前插入的MemoryBIST的门级设计。
过程:
1.设置-ijtag context;
2.执行被用来做MemoryBIST RTL插入的TSDB;
3.读取cell 和memory lib;
4.读取门级网表;
5.从TSDB中读取除了RTL以外的设计数据;
6.设置当前设计(top)和DRC;
7.创建和处理pattern规格;
8.运行和检查测试台。
714

被折叠的 条评论
为什么被折叠?



