Memory BIST Getting Started

本章节描述如何使用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.运行和检查测试台。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值