Mentor-dft 学习笔记 day45-MTFI

news2025/2/3 20:43:50
Using MTFI Files
此节介绍MTFI(Mentor Tessend Fault Information)功能,可用于ATPG工具和Tessent LogicBIST。MTFI是用于存储故障状态信息的通用且可扩展的文件格式。
MTFI File Format
MTFI是在“dft-edt”和“patterns-scan”上下文中读取和写入故障信息的默认(但可选)文件格式。

MTFI是一种ASCII文件格式,用于存储ATPG工具可以读取和写入的实例的故障信息。

Format
The following simple MTFI example shows the minimum required keywords in bold:
FaultInformation {
: version : 1;
FaultType (Stuck) {
FaultList {
Format : Identifier, Class, Location;
Instance ("/i1") {
0, DS, "F1";
1, DS, "F2";
}
}
}
}
Parameters
MTFI的基本语法元素如下:

•Comments

“//”标识注释的开始,直到行尾。

•FaultInformation{…}

指定顶级块和文件类型的关键字。

•version:integer

指定MTFI文件语法版本的关键字。

•FaultType(type){…}

指定数据故障类型的关键字:Stuck、Iddq、Toggle、Transition、Path_delay、Bridge和Udfm。关键字。

•FaultList{…}

定义存储每个故障数据的数据块的关键字。

•UnlistedFaultsData{…}

定义数据块的关键字,该数据块存储特定灰箱实例的覆盖信息,以允许分层故障统计。

•FaultCollapsing {true|false}

指定故障列表中故障崩溃状态的关键字。值“true”表示列表中的故障已折叠;值“false”表示列表中的错误未失效。只能在FaultList数据块中使用此语句。

•DetectionLimit : integer

指定DS故障检测下降限制的关键字。

•Format

关键字,指定存储在特定数据块(FaultList或UnlistedFaultData)中的值序列。以下关键字可用于Format语句:

o等级

指定故障类别和子类别(例如,DS、UC、AU.BB)的必需关键字。有关更多信息,请参阅“故障支持”

类和子类”。

o位置

指定pin路径名的关键字。只能在FaultList数据块中使用此关键字。如果故障stuck-at,则需要关键字。

o标识符

指定故障标识符的必需关键字。在卡滞或过渡故障的情况下,该值可以是0或1。不支持其他故障类型。

o检测

可选关键字,指定故障类型停留和转换的检测次数。 

o折叠故障计数

指定折叠故障数的必需关键字。只能在UnlistedFaultsData数据块中使用此关键字。

o未故障计数

指定未失效故障数的必需关键字。只能在UnlistedFaultsData数据块中使用此关键字。

•实例(“路径名”){…}

指定数据块中所有引脚的实例路径名的必需关键字。必须将路径名括在括号和双引号中。路径名可以是空字符串。

Examples
The following is an example of a typical MTFI file:
//
// Tessent FastScan v9.6
//
// Design = test.v
// Created = Tue Dec 20 20:08:46 2011
//
// Statistics:
// Test Coverage = 50.00%
// Total Faults = 6
// UC (uncontrolled) = 2
// DS (det_simulation) = 1
// DI (det_implication) = 1
// AU (atpg_untestable) = 2
//
FaultInformation {
version : 1;
FaultType ( Stuck ){
FaultList {
FaultCollapsing : false;
Format : Identifier, Class, Location;
Instance ( “” ) {
1, DS, “/i1/IN0”;
1, AU, “/i1/IN1”;
1, EQ, “/i2/Y”;
0, UC, “/i5/Z”;
1, DI, “/i5/Z”;
0, AU, “/i4/IN1”;
1, UC, “/i4/IN1”;
}
}
}
}
Support of Fault Classes and Sub-Classes
MTFI提供了允许您指定故障类别和子类别的功能。 以下示例显示MTFI如何使用Format语句的Class关键字支持故障类和子类:
FaultInformation {
version : 1;
FaultType ( Stuck ){
FaultList {
FaultCollapsing : false;
Format : Identifier, Class, Location;
Instance ( “” ) {
1, DS, “/i1/IN0”;
1, AU, “/i1/IN1”;
1, EQ, “/i2/Y”;
0, UC, “/i5/Z”;
1, DI, “/i5/Z”;
0, AU, “/i4/IN1”;
1, UC, “/i4/IN1”;
}
}
}
}
在以下示例中,一个AU故障被识别为由于黑匣子而导致的AU,一个DI故障被指定为由于LBIST而导致的。因此,对于这两个故障,MTFI文件同时报告类和子类值。
FaultInformation {
version : 1;
FaultType ( Stuck ) {
FaultList {
FaultCollapsing : false;
Format : Identifier, Class, Location;
Instance ( “” ) {
1, DS, “/i1/IN0”;
1, AU, “/i1/IN1”;
1, EQ, “/i2/Y”;
0, UC, “/i5/Z”;
1, DI, “/i5/Z”;
1, DI.LBIST, “/i5/Z”;
0, AU.BB, “/i4/IN1”;
1, UC, “/i4/IN1”;
}
}
}
}

在前面的示例中,子类信息是类值的一部分,并由点分隔。任何AU、UC、UO和DI故障类别都可以进一步划分为不同的子类别。 该工具支持以下UC和UO故障子类:ATPG_Abort(AAB)、Unsuccessful(UNS)、EDT Abort(EAB)。该工具支持DI故障的预定义故障子类EDT。

User-Defined Fault Sub-Classes
除了前面描述的预定义故障子类之外,该工具还支持AU和DI故障的用户定义子类。用户定义的子类可以是基于以下字符集的任何字符串:
A-Z
a-z
0-9
-
_

你有责任确保用户定义的子类的名称不同于任何预定义的子类。否则,可能会错误地解释故障。请注意,当您使用“report_statistics-detailed_reportDI”命令时,以及当特定子类别中存在一些DI故障时,统计报告会显示DI故障的明细。

Support of Stuck and Transition Fault Information
MTFI 能够以类似于经典格式的方式表示stuck-at的故障信息。 如下例所示:
FaultInformation {
version : 1;
FaultType ( Stuck ) {
FaultList {
FaultCollapsing : false;
Format : Identifier, Class, Location;
Instance ( “” ) {
1, UC, “/in1”;
0, DS, “/in1”;
0, DS, “/i1/IN0”;
1, DS, “/i1/OUT”;
1, DS, “/i1/IN0”;
1, AU, “/i1/IN1”;
1, EQ, “/i2/Y”;
0, UC, “/i5/Z”;
1, DS, “/out”;
1, DI, “/i5/Z”;
}
}
}
}
Support of N-Detect Values
对于FaultList块中的单个故障以及UnlistedFaultsData块中的一组故障,可以处理检测到故障的频率信息。 在FaultList块中,可以使用Format语句的Detections关键字将值添加到列表中。该值必须是指定此故障检测次数的正整数。除DS之外的所有类的值都必须为0。 在以下示例中,检测下降极限为4。对于检测到四次或更多次的任何DS故障,工具将检测值报告为“4”。
FaultInformation {
version : 1;
FaultType ( Stuck ) {
FaultList {
FaultCollapsing : false;
DetectionLimit : 4;
Format : Identifier, Class, Detections, Location;
Instance ( “” ) {
1, DS, 3, “/i1/OUT”;
1, DS, 4, “/i1/IN0”;
1, AU.BB, 0, “/i1/IN1”;
1, EQ, 0, “/i2/Y”;
0, UC, 0, “/i5/Z”;
1, DS, 2, “/out”;
1, DI, 0, “/i5/Z”;
}
}
}
}
In general, the same rules are valid for the UnlistedFaultsData block, as shown in the following
example:
FaultInformation {
version : 1;
FaultType ( Stuck ) {
UnlistedFaultsData {
DetectionLimit : 4;
Format : Class,Detections,CollapsedFaultCount,
UncollapsedFaultCount;
Instance ( “/CoreD/i1” ) {
UC, 0, 1252, 2079;
UC.EAB, 0, 452, 543;
DS, 1, 69873, 87232;
DS, 2, 12873, 21432;
DS, 3, 9752, 11974;
DS, 4, 487, 6293;
AU.BB, 0, 8708, 10046;
AU, 0, 2374, 3782;
}
}
}
}

在UnlistedFaultsData的情况下,前面的示例显示了检测次数之后的故障计数。通常,每次检测都有一条线,直到达到电流检测极限。因此,在前面的示例中,故障数量已达到4的检测极限。还要注意,在前面的示例中,行UC,0,1252,2079显示了未分类子类(即不属于任何预定义或用户定义子类的UC故障)中UC故障的崩溃和未崩溃故障计数

同样,AU,0,2374,3782线显示了未分类AU故障的故障计数。加载MTFI文件时,文件中存储的n检测数上限为工具中当前设置的检测极限。这适用于FaultList数据块和UnlistedFaultsData块中的检测编号。根据开关的不同,外部MTFI文件中的n检测数据可以附加到相应故障的内部检测编号,或替换内部故障列表中相应故障的检测编号。

Support of Different Fault Types in the Same File
允许你在单个文件中手动指定多个故障类型。 使用read_faults命令读取MTFI文件时,当前故障类型(使用set_fault_type设置)必须与MTFI文件中的指定故障类型匹配。为了在故障类型“stuck-at ”和“transition ”之间共享故障信息,MTFI允许 在同一文件中手动指定两种故障类型,如下例所示:
FaultInformation {
version : 1;
FaultType ( Stuck, Transition ) {
FaultList {
FaultCollapsing : false;
Format : Identifier, Class, Location;
Instance ( "" ) {
1, AU.PC, "/i1/OUT";
1, AU.PC, "/i1/IN0";
1, AU.BB, "/i1/IN1";
1, AU.BB, "/i2/Y";
0, AU.TC, "/i5/Z";
1, AU.TC, "/out";
1, AU.TC, "/i5/Z";
}
}
}
}
MTFI不支持stuck-at和transition以外的组合。请注意,没有支持MTFI的工具可以输出包含多种故障类型的MTFI文件。
Support for Hierarchical Fault Accounting
MTFI 允许有效地处理分层设计的故障信息,在分层设计中测试单个小内核,并将其故障统计信息保存在单个MTFI文件中。 然后可以使用小内核的“灰盒”版本加上MTFI文件中的故障信息,在更大的内核中实例化这些小内核。使用这种方法,大内核的测试pattern不需要处理小内核的内部细节,只需要处理它们的灰盒版本(其中只包含下一个更高级别测试所需的逻辑子集)。
考虑图15-1中的示例。Core_A和Core_B是独立设计,具有各自的测试pattern和故障列表。在Core_A和Core_B上运行ATPG后,使用以下命令将故障信息存储在MTFI文件中:
ANALYSIS> write_faults Core_A.mtfi
ANALYSIS> write_faults Core_B.mtfi
注意,Core_A和Core_B中的逻辑是完全可观察和可控的,因此Core_A.mtfi,Core_b.mtfi中没有未列出的故障。 

如果给定核心存在多个故障列表,每个故障列表反映了不同测试模式实现的覆盖范围,并且目的是将这些结果合并到核心的单个覆盖范围中,则必须在核心级ATPG运行期间执行合并。这是因为当您在下一层次结构中使用“read_faults-graybox”命令时,该命令只支持每个内核一个故障列表。请注意,您只能合并单个故障类型的故障列表。例如,您不能在核心级别合并stuck-at和transition的故障列表。以前面描述的Core_A为例,在写出核心的最终故障列表之前,首先合并任何其他先前运行的测试pattern的故障列表。以下命令序列就是一个示例:

ANALYSIS> read_faults Core_A_mode1.mtfi -merge
ANALYSIS> read_faults Core_A_mode2.mtfi -merge
ANALYSIS> write_faults Core_A.mtfi
接下来,通过实例化Core_A和Core_B的灰盒版本创建Core_C,然后使用之前使用以下命令编写的故障信息:
ANALYSIS> read_faults Core_A.mtfi-Instance Core_C/Core_A -Graybox
ANALYSIS> read_faults Core_B.mtfi -Instance Core_C/Core_B -Graybox
TheGraybox开关指示工具将其能够映射到Core_C中的现有网络的任何故障,并通过将其分类为未列出的故障来基本上丢弃剩余的故障。该工具保留未列出故障的故障统计信息。
在Core_C上运行ATPG后,可以将故障信息写入MTFI文件:
ANALYSIS> write_faults Core_C.mtfi
该命令将写入发出read_faults命令时创建的列出和未列出故障的数据。然后,可以在更大的内核Core_D中实例化Core_C的灰盒版本,并从Core_C.mtfi文件 加载故障信息 ,这样, Core_A、Core_B和Core_C将已经完全测试,不会再次测试, 但是来自所有三个核心的故障统计信息将可用于查看和分析Core_D中列出的故障。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/103669.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

运用大O来给代码提速(冒泡排序)

本文内容借鉴一本我非常喜欢的书——《数据结构与算法图解》。学习之余,我决定把这本书精彩的部分摘录出来与大家分享。 本章内容 写在前面 1.冒泡排序 2.冒泡排序实战 3.冒泡排序的实现 4.冒泡排序的效率 5.二次问题 6.线性解决 7.总结 写在前面 大 O记…

Diffusion Model合集 part2

扩散模型原理介绍2五,逆扩散过程(Reverse Process)六,扩散过程中的后验的条件概率q(xt−1∣xt,x0)q(x_{t-1}|x_{t},x_{0})q(xt−1​∣xt​,x0​)七,目标数据分布的似然函数八,Diffusion Probabilistic Model的算法代码五&#xff…

“专利费用减缓”怎么申请?

在专利申请时,很多申请人对“专利费用减缓”的概念并不了解,或者不太清楚。甚至有很多申请人一听到专利申请可以请求费用减缓,就以为申请专利是不要钱的。当然,这样的理解就存在了很大的偏差了,所以,我们今…

Java Arrays类

JavaArrays类\huge{Java \space Arrays类}Java Arrays类 概述 Arrays类Arrays类Arrays类:本质就是一个工具类,用于操作数组元素的。 常用API ①. toString()(重写过的toString方法) toString()toString()toString()&#xff1a…

人才招聘网 招聘系统源码找工作源代码 各行业的招聘网站门户源码

运行环境:VS2015SqlServer2008R2.NET4.0 系统介绍: 适用于各地方或者各行业的招聘网站门户,相当强大的人才招聘网站,可登陆注册、支持第三方登陆,强大额后台管理,功能全面,界面美观 职位和简历…

如何用yolov5 训练自己的数据

文章目录 说明数据准备划分数据集转换数据label 格式训练前准备修改图片路径修改训练配置文件 voc.yaml修改 yolo配置文件开始训练没有GPU 或显存不够的说明 利用yolov5 训练自己的数据集通常需要利用自己标注的数据进行训练 接下来记录下如何训练自己的数据 数据准备 我这用的…

【数据结构】- 面试题

面试题1. 删除链表中的节点2. 反转一个链表(非递归解法)3. 判断一个链表是否有环(快慢指针)问题:[快慢指针为什么一定会相遇](https://blog.csdn.net/Leslie5205912/article/details/89386769)4. 获取单链表的节点个数…

【轻量级开源ROS 的机器人设备(5)】--(3)拟议的框架——µROS节点

前文链接:(2条消息) 【轻量级开源ROS 的机器人设备(5)】--(2)拟议的框架——ROS节点 五、静态栈分析 在处理运行多个资源的严格受限平台时线程,重要的是将堆栈使用保持在最低限度。这甚至 在利用具有同质堆…

技嘉电脑怎么开启vt模式?

电脑开启vt模式后,可以提高主板的运行速率,提高性能。那就有一些使用技嘉电脑的用户问技嘉主板怎么开启vt模式?下面小编就来教教大家技嘉电脑开启vt模式的方法。 Intel芯片组的技嘉主板 1、一般情况下,也就是在电脑开机的时候&…

计算机网络、操作系统刷题笔记15

计算机网络、操作系统刷题笔记15 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sq…

差分详细讲解(C++)

每日一句:平凡的我在人多的地方曾极力小心翼翼, 但不知从何时起 ,我不太在意别人的目光了。比起被人觉得是个怪人,我现在更害怕浪费时间。 差分一、一维差分二、二维差分一、一维差分 差分就是前缀和的逆运算,如果你不懂什么是前缀和,看这里…

移动技术在仓库运营管理中的作用

作者:Mike Kay,Mendix公司合作伙伴The Config Team渠道客户经理 市面上出现越来越多的仓库管理系统(WMS)以满足企业更好地管理供应链的需求。想要充分挖掘WMS的优点,一般可以通过移动解决方案来将关键的供应链运作进…

浪潮信息工程师:带你了解设备透传虚拟机的快速启动技术优化方案

编者按:将物理设备通过 vfio 透传给虚拟机是虚拟化常用的技术,但当为虚拟机分配比较大的内存时,虚拟机的启动时间会明显变慢,可能由十几秒延长至数分钟,严重影响用户使用体验。本文整理自龙蜥大讲堂 51 期,…

小林coding阅读笔记:计算机网络基础篇-TCP\IP模型

前言 参考/导流: 小林coding - 2.1 TCP/IP 网络模型有哪几层?学习意义 学习分层设计思想构建网络层次以及各层协议作用知识体系为网络编程奠定理论基础,对于RPC框架or分布式系统通信都是极为重要的一节,是提升整个系统效率的关键…

ubunt配置samba服务器,匿名访问

1. 环境 ubuntu14.04 2. 安装samba服务器 sudo apt-get install samba 3. 配置samba文件 vim /etc/samba/smb.conf 在最后添加如下内容 [muchx]comment Shared Folder with username and passwordpath /home/muchx/sharepublic yeswritable yesvalid users muchxcre…

二、基于kubeadm安装kubernetes1.25集群第一篇

1、概述 Kubeadm 是一个提供了 kubeadm init 和 kubeadm join 的工具, 作为创建 Kubernetes 集群的 “快捷途径” 的最佳实践。 kubeadm 通过执行必要的操作来启动和运行最小可用集群。 按照设计,它只关注启动引导,而非配置机器。同样的&…

虹科分享 | 硬件加密U盘 | 管理密码安全的四大工具

随着网络攻击变得越来越突出,密码安全变得越来越重要。为了为每个帐户创建安全密码,许多人正在转向密码管理工具来帮助防止敏感数据的泄露。 考虑到这一点,以下是一些顶级密码管理工具。 领先的密码管理工具 Keeper密码管理器和数字保险库 …

kali linux手动编译网卡驱动(以mt7612u为例)

〇、linux常用命令 《Linux入门与基础》课程教案_小王小王指定辉煌的博客-CSDN博客_linux入门与基础教案 linux常用命令笔记(二)_小王小王指定辉煌的博客-CSDN博客 一、下载源码 查看系统版本号 uname -r uname -a cat /proc/version 或/lib/module…

手撕红黑树的构建与验证

上篇文章我们介绍了AVL树的构建与适用场景,我们知道了AVL树虽然查找效率很高,但是不适合频繁插入或删除的场景。为了解决这个问题又诞生了新的数据结构:红黑树 那么本篇文章就着重介绍红黑树的性质与如何构建。 1.红黑树的性质 1.结点颜色非黑…

邓俊辉 《数据结构》笔记1 绪论

邓俊辉 《数据结构》笔记1 绪论 CSDN转图床总是崩,如果全写完再上传一次要调好多,感觉很麻烦,所以写一点更新一点,会持续更新 提前发出来还有个好处就是push自己更新不会咕咕咕,哈哈 参考资料 MOOC 数据结构上MOOC 数…