[Mbist Flow]一、Design Loading

本文详细介绍了Mentor TessentMbist工具进行设计加载的流程,包括设置上下文、读取库、读取设计、设计细化和报告设计数据等步骤。在DFT设计中,理解这些步骤对于正确配置和使用TessentMbist进行集成测试、模块测试和功能测试至关重要。
摘要由CSDN通过智能技术生成

DFT专栏目录:

TessentMbist flow
TessentMbist flow

1 Design Loading

Design Loading是使用TessentMbist 的第一步。该步骤如图1所示,包括:

图1
在上一节中,每个step都举了一个简单的例子,其中Design Loading为

Design Loading

set_context dft -rtl 
read_cell_library ../library/adk.tcelllib 
set_design_sources -format verilog -y {../library/mem ../design/rtl} \ 
-extension v 
set_design_sources -format tcd_memory -y ../library/mem -extension lib 
read_verilog ../design/rtl/blockA.v 
set_current_design blockA

具体指令可参考Tessent Reference manual

以下将对step中的每个具体步骤做详细解析:

注意:由于tessent本身就是基于TCL搭建而成的,且DFT设计环境都是基于Tessent指令搭建而成的,所以在学习DFT(使用mentor,现在成为simens EDA工具)时,应该配合Tessent Reference manual一书学习具体指令操作。

1.1 Set the Context

set_context dft -no_rtl #还有其他选项

在testent Shell中,设置context意味着两件事。首先,将context设置为dft,为要创建的 memory BIST硬件。其次,必须指定要读入的设计类型是否写入RTL。如果是,则必须指定-rtl。如果要读取的设计是一个gate_level Verilog netlist(门级网表),则应该指定-no_rtl。当使用-no_rtl模式时,在dft插入阶段的末尾会写出一个连接的门级网表。在rtl模式下,输入设计的文件结构被保留,只有修改过的设计文件在dft插入阶段结束时与新创建的测试IP一起被写入。要读入的门级网表可以是Verilog、VHDL或混合语言。

在启动Tessent shell 后第一个任务就是要设置context和system mode。术语“context”指的是一个广泛的功能类别,通常对应于特定的点工具、产品或许可特性,例如Tessent FastScan。每个context包括几个system mode(setup、analysis和insertion),这些模式指定了工具当前的操作状态。通过设置context和system mode,您可以指示希望Tessent Shell执行的任务类型。
具体可参考tessent user‘s manual中context以及system mode部分了解。

1.2 Read the Librarier

read_cell_library ../library/adk.tcelllib 

你可以使用read_cell_library命令在库文件中读取设计中实例化的库单元格。在将memory BIST插入RTL设计时,此时,读取memory BIST库就足够了,但并不典型,因为一些库单元是在RTL设计中为pad单元和时钟控制实例化的。当Tessent单元库不包括pad信息时,LV pad库由read_cell_library命令支持,可以使用pad信息来增加Tessent单元库。内存BIST库被认为是Tessent Shell中的Tessent Core Descriptions(TCDs),并被加载并称为TCDs。LV flow的内存BIST模型无需修改就与Tessent Shell兼容,并在flow中作为TCDs加载和引用。

例如:
例1——下面的示例说明如何读取Tessent单元格库文件中的pad IO宏。

read_cell_library ../library/adk_complete.tcelllib

例2——下面的例子展示了如何显式地读取内存中的BIST模型。

read_core_descriptions ../library/128x64_RAM.memlib

例3——下面的例子展示了如何使用set_design_sources来引用内存BIST库。使用tcd_memory类型作为-format选项指示工具期望读入内存库文件。

set_design_sources -format tcd_memory -y ../library/memlibs -extensions memlib

1.3 Read the Design

在设置完context和加载完libraries cell之后,可以通过read_verilog命令来读取design。

同时,在此时也可加载Memory placement (DEF, or Design Exchange Format files) 、 power domain data (UPF,
Unified Power Format 和CPF, Common Power Format files) 。这些数据影响内存BIST planning,包括内存patition和内存BIST控制器分配。

例如:
例1——下面的示例显示如何读入一个netlist,该netlist可以是RTL级别,也可以是gate-level级别。

read_verilog ../netlist/cpu_top.v

例2——下面的示例显示如何指定要搜索的文件和目录库Verilog模块。

set_design_sources -format verilog -v ../design/top.v -y ../design -extensions v gv

例3——下面的例子展示了如何读取包含存储器位置信息的DEF(Design Exchange Format files)文件和描述与存储器相关的功率域的UPF(Unified Power Format)文件。

read_upf ../data/design/power/blockA.upf 
read_def ../data/design/layout/blockA.def

1.4 Elabrorate the Design

设计加载的下一步是使用set_current_design命令详细说明设计。

set_current_design命令指定执行所有后续操作的设计的root。如果缺少任何模块描述,设计细化将识别它们。对于memory BIST insertion而言,如果模块不包含内存或内存扇入中不包含时钟树元素,则允许模块没有定义。您可以使用add_black_box -module命令指定它们。

1.5 Report the Design Data

你可以使用几个命令来检查加载的设计和相关库。下面一节提供了更常用的报告命令示例。

例如:
例1——下面的示例运行set_design_sources,然后报告所引用的设计源。

> set_design_sources -format verilog -y {../data/design/mem \ 
../data/design/rtl} -extension v 
> report_design_sources 
// ICL search_design_load_path: activated 
// BoundaryScan search_design_load_path: activated 
// Scan search_design_load_path: activated 
// ---------------------------------------------------- 
// format type path file extensions 
// ------- ---- -------------------- --------------- 
// Verilog dir '../data/design/mem' 'v v.gz' 
// Verilog dir '../data/design/rtl' 'v v.gz'

例2——下面的例子报告了当前加载在testent Shell中的内存模型以及其他测试核心描述。使用-levels 1选项只显示核心名称和类型。当未设置此选项时,将显示整个模型内容。

> report_config_data -partition tcd -levels 1 
Core(SYNC_1R1W_16x8) { 
Memory { 
// Not shown 
	} 
} 
Core(SYNC_1RW_32x16) { 
Memory { 
// Not shown 
	} 
} 
Core(SYNC_2R2W_12x8) { 
Memory { 
// Not shown 
	} 
}

注意:如果加载了内存以外的核心描述,它们也会显示在这个报告中。

例3——下面的示例报告在设计细化过程中发现的内存实例。

> report_memory_instances 
// 
// Memory Instance: blockA_l1_i1/blockA_l2_i1/mem1 
// ---------------------------------------------- 
// bist_data_in_pipelining : off 
// physical_cluster_override : 
// power_domain_island : 
// test_clock_override : 
// use_in_memory_bist_dft_specification : auto 
// use_in_memory_bisr_dft_specification : auto 
// 
// Memory Instance: blockA_l1_i1/blockA_l2_i1/mem2 
// ---------------------------------------------- 
// bist_data_in_pipelining : off 
// physical_cluster_override : 
// power_domain_island : 
// test_clock_override : 
// use_in_memory_bist_dft_specification : auto 
// use_in_memory_bisr_dft_specification : auto

这个report命令提供额外的属性信息以及内存实例路径。可以通过加载额外的设计数据(如UPF文件)来间接设置这些属性,以指定power domain islands,也可以使用set_memory_instance_options命令显式地更改这些属性。

下一节将继续讲解flow中的Specify and Verify DFT Requirements部分

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芯动节奏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值