Mentor-dft 学习笔记 day42-ASCII File Format(2)

news2024/11/25 14:38:07
FORCE “primary_input_pin” <value> <time>;
此命令用于在给定时间强制选定主输入引脚上的值(0,1、X或Z)。时间值不得低于该程序的先前时间值。每个程序的时间在时间0再次开始。主输入引脚将用双引号括起来。
APPLY “scan_group_procedure_name” <#times> <time>;
此命令指示所选程序名称将从所选时间开始应用所选次数。扫描组过程名称将用双引号括起来。此命令只能在加载和卸载过程中使用。
FORCE_SCI “scan_chain_name” <time>;
该命令指示移位过程中的时间,值将被放置在扫描链输入上。扫描链名称将用双引号括起来。
MEASURE_SCO “scan_chain_name” <time>;
该命令指示移位过程中扫描链输出上测量值的时间。扫描链名称将用双引号括起来。
Functional_Chain_Test
functional_chain_test部分包含要测试电路中所有扫描链的功能扫描链测试的定义。对于每个扫描链组,扫描链测试将包括加载交替的双0和双1(00110011…),然后卸载组中所有扫描链的这些值。
The format is as follows:
CHAIN_TEST =
APPLY “test_setup” <value> <time>;
PATTERN = <number>;
APPLY “scan_group_load_name” <time> =
CHAIN “scan_chain_name1” = “values....”;
CHAIN “scan_chain_name2” = “values....”;
....
....
END;
APPLY “scan_group_unload_name” <time> =
CHAIN “scan_chain_name1” = “values....”;
CHAIN “scan_chain_name2” = “values....”;
....
....
END;
END;

如果setup_Data部分中有测试设置过程,则在功能链测试模式的开头应用可选的“test_setup”行。pattern的编号是从零开始的pattern编号,其中要测试电路中所有扫描链的功能扫描链测试。扫描组加载和卸载名称以及扫描链名称将用双引号括起来。加载和卸载扫描链的值将用双引号括起来。在扫描链加载期间,相应扫描链的每个值都将放置在其扫描链输入引脚上。移位程序将通过扫描链移位值,并继续移位下一个值,直到所有扫描链的所有值都已加载。由于移位的数量由最长扫描链的长度决定,所以X(不必在意)放在较短扫描链的开头。这将确保正确加载扫描链的所有值。在扫描链卸载期间,将在其扫描链输出引脚处测量相应扫描链的每个值。移位程序将值移出扫描链,并继续移位下一个值,直到所有扫描链的所有值都已卸载。同样,由于移位的数量由最长扫描链的长度决定,所以X(不测量)位于较短扫描链的末端。这将确保扫描链的所有值都将被快速卸载。

CHAIN_TEST =
APPLY “test_setup” 1 0;
PATTERN = 0;
APPLY “g1_load” 0 =
CHAIN “c2” = “XXXXXXXXX0011001100110011001100”;
CHAIN “c1” = “XXXXXXXXXXXXX001100110011001100”;
CHAIN “c0” = “0011001100110011001100110011001”;
END;
APPLY “g1_unload” 1 =
CHAIN “c2” = “0011001100110011001100XXXXXXXXX”;
CHAIN “c1” = “001100110011001100XXXXXXXXXXXXX”;
CHAIN “c0” = “0011001100110011001100110011001”
END;
END;
Scan_Test
The scan_test section contains the definition of the scan test patterns that were created by
Tessent Shell.
A scan pattern will normally include the following:
SCAN_TEST =
PATTERN = <number>;
FORCE “PI” “primary_input_values” <time>;
APPLY “scan_group_load_name” <time> =
CHAIN “scan_chain_name1” = “values....”;
CHAIN “scan_chain_name2” = “values....”;
....
....
END;
FORCE “PI” “primary_input_values” <time>;
MEASURE “PO” “primary_output_values” <time>;
PULSE “capture_clock_name1” <time>;
PULSE “capture_clock_name2” <time>;
APPLY “scan_group_unload_name” <time> =
CHAIN “scan_chain_name1” = “values....”;
CHAIN “scan_chain_name2” = “values....”;
....
....
END;
....
....
....
END;

pattern的编号表示加载扫描链、放置和测量值、脉冲任何捕获时钟以及卸载扫描链的pattern编号。pattern编号从零开始,必须以零开始。如果使用transition fault,将在每个测试pattern的开始处应用额外的force陈述。扫描组加载和卸载名称以及扫描链名称将用双引号括起来。pattern的所有时间值不得低于该pattern中的先前时间值。加载和卸载扫描链的值将用双引号括起来。

主要输入值将与设置部分中定义的主要输入一一对应。主输出值也将与设置部分中定义的主输出一一对应。如果setup_Data部分中有一个test_setup过程,则应用测试设置过程的第一个事件必须在应用第一个pattern之前发生:

APPLY “test_setup” <value> <time>;
如果有任何写入control lines,则在主输入端施加值后,将对其进行脉冲处理:
PULSE “write_control_input_name” <time>;

如果有捕获时钟,则在主输出端测量值后,它们将在相同的选定时间脉冲。可以使用任何扫描时钟将数据捕获到被观察到的扫描单元中,扫描pattern将参考适当的测试程序,以定义如何控制和观察扫描单元。如果要将主机的内容放入其扫描单元的输出中,可以通过应用卸载操作进行观察,则必须在卸载扫描链之前应用master_observe程序:

APPLY “scan_group_master_observe_name” <value> <time>;
如果要将shadow的内容放入扫描单元的输出中,通过应用卸载操作可以观察到shadow,则必须在卸载扫描链之前应用shadow_observe程序:
APPLY “scan_group_shadow_observe_name” <value> <time>;
如果扫描单元的主单元和slave单元将处于不同的检测值,则必须在加载扫描链后应用skew_load procedure :
APPLY “scan_group_skew_load_name” <value> <time>;
每个扫描pattern都具有独立于所有其他扫描pattern的特性。正常pattern模式将包含以下事件:
1. Load values into the scan chains.
2. Force values on all non-clock primary inputs.
3. Measure all primary outputs not connected to scan clocks.
4. Exercise a capture clock. (optional)
5. Apply observe procedure (if necessary)
6. Unload values from scan chains.
卸载最后一个pattern时,工具将再次加载最后一个pattern,以完全移动最后一个捕获周期的内容,从而使输出与计算值匹配。尽管加载和卸载操作是单独给出的,但强烈建议在测试仪上应用pattern时,加载与卸载前一pattern同时进行。

为了观察连接到时钟的主要输出,将有一种额外的扫描pattern,其中包含以下事件:

1.将值加载到扫描链中。

2.强制所有主要输入值,包括时钟。

3.测量连接到扫描时钟的所有主输出。

Scan_Cell
scan_cell部分包含电路中使用的扫描单元的定义。 扫描单元数据的格式如下:
SCAN_CELLS =
SCAN_GROUP “group_name1” =
SCAN-CHAIN “chain_name1” =
SCAN_CELL = <cellid> <type> <sciinv> <scoinv>
<relsciinv> <relscoinv> <instance_name>
<model_name> <input_pin> <output_pin>;
....
END;
SCAN_CHAIN “chain_name2” =
SCAN_CELL = <cellid> <type> <sciinv> <scoinv>
<relsciinv> <relscoinv> <instance_name>
<model_name> <input_pin> <output_pin>;
....
END;
....
END;
....
END;

扫描单元存储元件的element如下:

•cellid-标识扫描链中扫描单元位置的数字。数字0表示最接近扫描输出引脚的扫描单元。

•type-扫描存储元件的类型。类型可以是MASTER、SLAVE、SHADOW、OBS_HADOW、COPY或EXTRA。

•sciinv-扫描单元库输入引脚相对于扫描链输入引脚的反转。该值可以是T(反转)或F(无反转)。

•scoinv-扫描单元库输出引脚相对于扫描链输出引脚的反转。该值可以是T(反转)或F(无反转)。

•relsciinv—存储元件相对于扫描单元库输入引脚的反转。值可以是T(反转)或F(无反转)

•relscoinv—存储元件相对于扫描单元库输出引脚的反转。该值可以是T(反转)或F(无反转)。

•instance_name—扫描单元中内存元素的顶层边界instance名称。

•model_name—扫描单元中内存元素的内部实例路径名(if used - blank otherwise)。

•input_pin-扫描单元的库输入引脚(if used - blank otherwise)。

•output_pin-扫描单元的库输出引脚(if used - blank otherwise)

Example Circuit
Figure 12-1 illustrates the scan cell elements in a typical scan circuit
BIST Pattern File Format
上一节中描述的所有测试pattern文件格式也直接适用于BIST模式。然而,一组额外的BIST特定格式被添加到ASCII模式文件格式中。 BIST特定格式在本节中描述
BIST Pattern Setup_Data
BIST的setup_data部分包含定义BIST pattern特定地配置。本小节包括BIST pattern中 signature register (prpg_register和misr_register)的文件版本标识符和定义。 BIST特定语句用于标识以下配置是特定地 BIST pattern 。BIST特定语句的格式如下:
declare bist pattern specific configuration =
version标签用于指示BISTpattern version。version标记的格式如下:
BIST_ASCII_PATTERN_FILE_SUBVERSION
Here is an example of a BIST pattern-specific statement combined with a version tag statement:
declare bist pattern specific configuration =
BIST_ASCII_PATTERN_FILE_SUBVERSION = 1;
pattern_internal_view开关,指示BIST模式内部视图是否被写入pattern文件;其可能值为“ON”或“OFF”。如果开关设置为on,如以下示例所示,BISTpattern将包含在pattern文件中。关于pattern格式类型的信息:
pattern_internal_view = “on”
prpg_register和misr_register标识符定义BIST pattern中的signature寄存器,如prpg和misr。signature寄存器语句使用以下格式:
gnature_register <name of signature register> =
length = <length of the register>;
type = <type of the register>;
init_value = <initial state of the register>;
end;
Here are some examples of signature register statements:
prpg_register “decomp1” =
length = 22;
type = PRPG;
init_value = “0000000000000000000000”;
end;
prpg_register “decomp2” =
length = 12;
type = PRPG;
init_value = “000000000000”;
end;
prpg_register “prpg1” =
length = 16;
type = PRPG;
init_value = “0000000000000000”;
end;
prpg_register “prpg2” =
length = 16;
type = PRPG;
init_value = “0000000000000000”;
end;
misr_register “misr1” =
length = 32;
type = MISR;
init_value = “11111111111111111111111111111111”;
end;
misr_register “misr2” =
length = 24;
type = MISR;
init_value = “111111111111111111111111”;
end;
Scan_Test for BIST
每个BISTpattern包括一个lfsm_snapshot语句。在pattern语句中,关键字pre_load、pre_unload或post_unload,后跟一个寄存器名,以指示何时获取寄存器的快照。
The keywords are applied as follows:
pre_load — Used for PRPG type registers.
pre_unload and post_unload — Used for MISR type registers

快照语句的组成使得每个BISTpattern的模拟独立于所有其他pattern:

•给定PRPG寄存器的pre_load值,可以计算每个BISTpattern的加载数据。

•给定MISR寄存器的预卸载值,可以计算并验证卸载后的MISR寄存器。

pattern = 0;
lfsm_snapshot =
pre_load “decomp1” = “0000000000000000000000”;
pre_load “decomp2” = “000000000000”;
pre_load “prpg1” = “1111111111111111”;
pre_load “prpg2” = “1111111111111111”;
pre_unload “misr1” = “11111111111111111111111111111111”;
pre_unload “misr2” = “111111111111111111111111”;
post_unload “misr1” = “11111111110001111110111111101111”;
post_unload “misr2” = “111111110000000011111111”;
end;
apply “grp1_load” 0 =
...
end;
force “PI” “....” 1;
measure “PO” “....” 2;
apply “grp1_unload” 3 =
...
end;

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

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

相关文章

高通Ride软件开发包使用指南(10)

高通Ride软件开发包使用指南&#xff08;10&#xff09;7 平台管理任务7.1 连接到控制台7.1.1 串口连接SOC1和SOC27.1.2 识别 SOC1 或 SOC 27.1.3 识别平台构建7.1.4 串口连接SA9000P7.1.5 通过串口连接到 Aurix7.2 在 SIP1 和 SIP2 上为 SA8xxxP 分配 IP 地址7.2.1 分配静态 I…

【数据预处理机器学习】对于薪资数据的倾斜情况以及盒图离群点的探究

文章目录一.需求背景二. 任务开始2.1 薪酬的中位数、均值和众数和数据倾斜模块详细设计2.2 按不同的类别划分职位中的薪酬数据&#xff0c;画盒图/箱线图&#xff0c;检查孤立点/离群点一.需求背景 课题中心&#xff1a;招聘网站的职位招聘数据预处理 之前的文章&#xff0c;…

【JAVA】final关键字

&#x1f3c6;今日学习目标&#xff1a;final关键字 &#x1f603;创作者&#xff1a;颜颜yan_ ✨个人主页&#xff1a;颜颜yan_的个人主页 ⏰本期期数&#xff1a;第一期 &#x1f389;专栏系列&#xff1a;JAVA 文章目录前言final关键字final关键字修饰类示例&#xff1a;fin…

[附源码]Python计算机毕业设计高校社团管理平台Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

笔试强训(四十五)

目录一、选择题二、编程题2.1 查找兄弟单词2.1.1 题目2.1.2 题解一、选择题 &#xff08;1&#xff09;IP数据报分片的重组通常发生在&#xff08;D&#xff09; A.源主机和数据经过的路由器上 B.源主机上 C.数据报经过的路由器上 D.目的主机上 数据分片是网络层发现上层给的数…

Java反射(通俗易懂!)

文章目录2.反射2.1反射的概述2.2 获取 Class类对象的三种方式2.3反射获取构造方法并使用2.3.1Class 类获取构造方法对象的方法2.3.2Constructor类用于创建对象的方法2.3.3小结2.4反射获取成员变量并使用2.4.1Class类获取成员变量对象的方法2.4.2Field类用于给成员变量赋值的方法…

木字楠后台管理系统开发(5):Vue登陆界面编写以及与后台联调测试

&#x1f3b6; 文章简介&#xff1a;木字楠后台管理系统开发(5)&#xff1a;Vue登陆界面编写以及与后台联调测试 &#x1f4a1; 创作目的&#xff1a;为了带大家完整的体验木字楠后台管理系统模版的开发流程 ☀️ 今日天气&#xff1a;愿冷空气冷藏你的烦恼,让快乐永驻。 &…

PaddleX API开发模式快速上手文档

目录一. 环境安装1.1 PaddlePaddle-gpu安装1.2 PaddleX安装二. 快速训练2.1 准备数据集2.2 定义图像预处理与数据增强2.3 定义并装载数据2.4 开始训练2.5 使用Visual查看训练情况三. 部署推理3.1 模型加载预测PaddleX官方文档(以图像分类为例)&#xff1a;PaddleX/docs/quick_s…

MySQL索引优化(一)

文章目录一、索引介绍1. 什么是MySQL的索引2. 索引数据结构3. 索引优势4. 索引劣势5. 索引使用场景&#xff08;1&#xff09;需要建立索引的场景&#xff08;2&#xff09;不推荐建立索引的场景6. 索引分类&#xff08;1&#xff09;主键索引&#xff08;2&#xff09;唯一索引…

【k8s 实战】Prometheus Operator 高级配置- 监控Kubernetes自动发现

上文我们一起学习了如何在 Prometheus Operator 下面自定义一个监控选项&#xff0c;以及自定义报警规则的使用。那么我们还能够直接使用前面课程中的自动发现功能吗&#xff1f;如果在我们的 Kubernetes 集群中有了很多的 Service/Pod&#xff0c;那么我们都需要一个一个的去建…

MATLAB傅里叶变换和加入噪声后的傅里叶变换

1.傅里叶变换代码 查看String为傅里叶变换的button添加callback函数&#xff0c;可以通过查看callback函数快速定位到该位置 function pushbutton37_Callback(hObject, eventdata, handles)%傅里叶变换&#xff08;频谱图&#xff09; axes(handles.show_proImg); global fpat…

[附源码]Nodejs计算机毕业设计基于的二手房交易系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

动态规划——状态机模型

文章目录概述大盗阿福思路代码股票买卖 IV思路代码股票买卖 V思路代码总结概述 定义&#xff1a; 它是一个有向图形&#xff0c;由一组节点和一组相应的转移函数组成。状态机通过响应一系列事件而“运行”。每个事件都在属于“当前” 节点的转移函数的控制范围内&#xff0c;其…

QT 6开发环境搭建——Windows环境

QT 目前不支持离线安装&#xff0c;只支持在线安装。&#xff08;从Qt5.15版本后不支持离线安装&#xff09; 去下面的网址&#xff0c;下载在线安装包&#xff1a; https://download.qt.io/archive/online_installers 我个人选择的是4.3.可以选择更新的版本。选择合适自己电…

时间序列的蒙特卡罗交叉验证

交叉验证应用于时间序列需要注意是要防止泄漏和获得可靠的性能估计本文将介绍蒙特卡洛交叉验证。这是一种流行的TimeSeriesSplits方法的替代方法。 时间序列交叉验证 TimeSeriesSplit通常是时间序列数据进行交叉验证的首选方法。下图1说明了该方法的操作方式。可用的时间序列…

编译原理实验三:算符优先分析算法的设计与实现(python)

实验目的 根据算符优先分析法&#xff0c;对表达式进行语法分析&#xff0c;使其能够判断一个表达式是否正确。通过算符优先分析方法的实现&#xff0c;加深对自下而上语法分析方法的理解。 实验内容 1、输入文法。可以是如下算术表达式的文法&#xff08;你可以根据需要适当…

赋能组织执行力学习-R4管理-结果体系、责任体系、检查与改进体系、及时激励体系

本文向大家介绍R4管理&#xff0c;是由结果体系&#xff08;Result&#xff09;、责任体系&#xff08;Responsibility&#xff09;、检查与改进体系&#xff08;Review&#xff09;、及时激励体系&#xff08;Reward&#xff09;组成&#xff0c;帮助我们如何更好的运用。 马云…

TikTok选品技巧 | 爆品一般是怎么选出来的,快看这些技巧

TikTok电商商家看过来&#xff01;随着短视频时代的兴起与发展&#xff0c;TikTok在全球受到越来越多的用户所追捧。同时&#xff0c;吸引了更多TikTok商家前来发展电商。但是&#xff0c;想要在这里快速实现TikTok变现目标&#xff0c;并非容易。TikTok选品和TikTok营销是最不…

数据库原理及MySQL应用 | 多表查询

在实际应用中&#xff0c;多表查询应用相对较多&#xff0c;根据多表之间的相关列&#xff0c;可以从多个表中检索出所需数据。 在实际应用中&#xff0c;单表查询应用范围相对较少&#xff0c;因为用户需要的数据往往存储在多个不同的表中&#xff0c;这时需要进行多表查询。…

oracle的pkg改为hivesql

1. oracle的() 改为hive左右连接 oracle ()学习_cclovezbf的博客-CSDN博客最近工作需要将oracle的存储过程转化为hive的sql脚本。遇到很多不一样的地方&#xff0c;例如oracle连接中有()号的用法。借鉴这篇文章&#xff0c;但是这个排版比较烂。。。先建表和插入数据首先说明…