[Mbist Flow]一、Design Loading

2024-02-26 01:30
文章标签 design loading flow mbist

本文主要是介绍[Mbist Flow]一、Design Loading,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

DFT专栏目录:

  • DFT专栏之1.TessentMbist——Flow and main steps
  • 一、Design Loading

TessentMbist flow
TessentMbist flow

1 Design Loading

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

  • Set the Context
  • Read the Librarier
  • Read the Design
  • Elabrorate the Design
  • Report the Design Data
    在这里插入图片描述
图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部分

这篇关于[Mbist Flow]一、Design Loading的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/747299

相关文章

【 html+css 绚丽Loading 】000046 三才归元阵

前言:哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、信息💡1.简介:💡2.外观描述:💡3.使用方式:💡4.战斗方式:💡5.提升:💡6.传说: 📚三、源代码,上代码,可以直接复制使用🎥效果🗂️目录✍️

GNSS CTS GNSS Start and Location Flow of Android15

目录 1. 本文概述2.CTS 测试3.Gnss Flow3.1 Gnss Start Flow3.2 Gnss Location Output Flow 1. 本文概述 本来是为了做Android 14 Gnss CTS 的相关环境的搭建和测试,然后在测试中遇到了一些问题,去寻找CTS源码(/cts/tests/tests/location/src/android/locat

Axure元件库Ant Design中后台原型模板:提升设计与开发效率的利器

企业对于中后台产品的设计与开发需求日益增长。为了提升用户体验和开发效率,设计者和开发者们不断寻求更加高效、统一的解决方案。Ant Design,作为阿里巴巴开源的一套企业级UI设计语言和React组件库,凭借其丰富的组件和统一的设计风格,已成为众多项目的首选。而在Axure中使用Ant Design元件库,更是为中后台产品的原型设计带来了极大的便利。 Ant Design简介 Ant D

error while loading shared libraries: libnuma.so.1: cannot open shared object file:

腾讯云CentOS,安装Mysql时: 1.yum remove libnuma.so.1 2.yum install numactl.x86_64

【UVA】11400-Lighting System Design(动态规划)

这道题感觉状态式不是很好推。。。 WA了好几次是因为排序的时候出问题了。 这道题出在线性结构里了,先说一下最长上升子序列吧。 dp[i]代表了以array[i]结尾的时候,最长子序列长度。 推导的时候,以起点递增的顺序进行推导。 #include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#i

Understanding the GitHub Flow

这里看下Github的入门介绍    --链接 GitHub Flow is a lightweight, branch-based workflow that supports teams and projects where deployments are made regularly. This guide explains how and why GitHub Flow works

Circuit Design 贴片晶振的区分

贴片晶振脚位的区分(非常详细,尤其是如何区分四脚的有源无源晶振): http://ruitairt.com/Article/tiepian_1.html 如何区分有源和无源晶振: http://ruitairt.com/Article/yzjddbfqsq_1.html

Circuit Design RC 震荡电路

为了测试一个信号放大器,手边又没有合适的信号发生器,所以就需要自己手动来一个信号发生器。。。。。由于所需的频率大概也不会太高,手边也没有电感,所以选择用RC震荡电路来实现这个功能。 借鉴的网页: http://www.eepw.com.cn/article/283745.htm RC振荡电路,采用RC选频网络构成,适用于低频振荡,一般用于产生1Hz~1MHz(fo=1/2πRC)的低频信号。

Circuit Design 三极管驱动蜂鸣器电路 及 蜂鸣器两端电压正确但是不响的解决方案

利用三极管进行电流放大的蜂鸣器驱动电路图: (百度图片找的) 我用有源蜂鸣器实现的这个电路,但是蜂鸣器不响。 details: 1. VCC =5V 蜂鸣器两端的直接电压约为4.5V, 但是蜂鸣器不响。 2. 将蜂鸣器直接接在4.5V的电源两端,蜂鸣器响。(说明蜂鸣器是好的) 3. 测了三极管各个管脚的电压, 和理论上的是一致的。 情况很奇怪,换了好几个三极管结果都是一样的,

ant-design-pro 学习01

1、开始学习ant-design-pro,安装啥的自动忽略,参考文档:https://pro.ant.design/docs/getting-started-cn 根据文档学习,添加页面,新增组件都没问题,可以跟着做,但是到了和服务器交互时就有点蒙了,因为ant-design-pro采用了dva框架实现,前段使用react技术,对于只有后台开发经验的我还停留在springmvc 的工作模式上,对