Mentor-dft 学习笔记 day40-Saving Timing Patterns(1)

news2024/11/25 0:47:05

Timeplate Examples

例如,移位周期40ns,占空比为50%,timeplate所示:

timeplate tp_shift =
force_pi 0;
measure_po 5;
pulse_clock 10 20;
period 40;
end;
拉伸的timeplate可用于将时钟脉冲延迟40ns,同时保持相同的20ns占空比:
timeplate tp_load_and_capture =
force_pi 0;
measure_po 5;
pulse_clock 50 20;
period 80;
end;
11-3,拉伸波形增加了从捕获到移位以及从移位到捕获的地址转换的延迟。

 

Default Timeplate
可以显式指定工具使用timeplate,也可以使用过程文件中的“set default_timeplate”语句更改默认时timeplate。建议不要更改默认计时器,因为该工具可能会自动创建不同的程序,并将使用换档程序的计时器来执行此操作。定义默认计时器可能会导致工具使用拉伸的计时器,这并不总是理想的。
Transitions From Shift to Capture
许多设计都有测试硬件,使用SE在换档期间禁用异步控制信号(如设置和重置)。Tessent工具中DFT信号插入的逻辑也使用SE来实现此目的。不能使用将post-shift cycle 添加到load_unload procedure  中,因为这会迫使SE在加载卸载结束之前转换到0。除非在移位和捕获期间关闭设置/复位信号,否则扫描单元数据将受到干扰,工具将报告D1 DRC违规。

有四种方法允许捕获中的第一个时钟脉冲被延迟,而不需要在加载-卸载过程中添加 post-shift dead cycles。

Stretched Timeplate in Capture (Recommended)
在SE转换为0后延迟捕获脉冲的推荐方法是在所有扫描启用转换后延迟时钟(推荐)中所述的延长timeplate。图11-4中的波形显示了相同的解决方案,如果仅适用于捕获到地址的shift-to-capture transitions.。
Extended Clock Sequential and Capture Procedures
如果限制无法改变移位和捕获之间的时钟周期,则时钟顺序和捕获过程可以延长到一个以上的周期,以实现与捕获中的拉伸时间板(推荐)部分中所述的拉伸时间盘方法类似的效果。 通过明确定义clock_sequential和捕获过程,可以扩展捕获过程。以下clock_sequential和捕获过程具有一个没有时钟脉冲的周期,之后是另一个包含时钟脉冲的循环。
timeplate tp1 =
force_pi 0;
measure_po 5;
pulse_clock 10 20;
period 40;
end;
procedure clock_sequential =
timeplate tp1;
cycle =
force_pi;
measure_po;
end ;
cycle =
pulse_capture_clock;
end;
end;
procedure capture =
timeplate tp1;
cycle =
force_pi;
measure_po;
end ;
cycle =
pulse_capture_clock;
end;
end;

图11-5和图11-6中的波形说明,如果需要在最后一个时钟脉冲之后立即出现捕获时钟,则在捕获过程开始时具有死循环可能不适合于全速测试。如果这是精确的全速测试所需的,并且测试仪可以支持创建这样的波形,则可能需要删除捕获过程中的死循环,如本代码和图11-7所示: 

procedure capture =
timeplate tp1;
cycle =
force_pi;
measure_po;
pulse_capture_clock;
end;
end;

 

External Capture Procedures
对于at-speed测试,也可以在外部捕获过程中定义额外的死周期,以延迟捕获中的第一个时钟脉冲。使用set_external_capture_options命令在dofile中引用外部捕获过程。
An example is shown in this code and in Figure 11-8
procedure external_capture ext_fast_cap_proc =
timeplate tp1 ;
cycle =
force_pi ;
end;
cycle =
end;
cycle =
end;
cycle =
pulse clock;
end;
end;

 

Named Capture Procedures
如果使用命名捕获程序(NCP),则可以使用所描述的技术、通过延长周期或通过显式增加死周期来延迟时钟脉冲
Post-shift Cycles
正如前面在“从移位到捕获的转换”的介绍中所解释的,只有不使用SE来禁用异步控制(例如设置和重置)的设计才能添加移位后死区以延迟时钟脉冲。这允许SE在捕获时钟脉冲之前有足够的时间从1过渡到0。但是,由于此解决方案不适用于许多设计,因此不建议使用。
Transition from Capture to Shift
扫描启用(SE)转换为1后,有两种方法可以处理慢速扫描启用转换。
Stretched Timeplate in load_unload (Recommended)
The在SE转换为1后延迟捕获脉冲的推荐方法是在所有扫描启用转换后延迟时钟中描述的拉伸timeplate
Dead Cycles Before Shift
为了让SE有足够的时间在移位的第一个时钟脉冲之前从0转换到1,请在“apply shift”语句之前向load_unload过程添加任何数量的无时钟脉冲的死循环。该代码和图11-10中显示了一个示例:
timeplate tp1 =
force_pi 0;
measure_po 5;
pulse_clock 10 20;
period 40;
end;
procedure load_unload =
timeplate tp1;
cycle =
force clk 0;
force scan_en 1;
end;
cycle =
end;
cycle =
end;
apply shift 100;
end;

 

Delaying Other Signals in load_unload That Require Additional Delay
从捕获到转换中讨论的示例是无压缩设计的简单过程。类似的方法可用于EDT的设计,其中EDT_update信号也可能具有高扇出。此示例在edt_update的每个转换之后以及edt和移位时钟的脉冲之前添加一个死循环。
procedure load_unload =
timeplate tp1;
cycle =
force RST 0;
force CLK 0;
force scan_en 1;
force edt_update 1;
end;
cycle =
end;
cycle =
pulse edt_clock;
end;
cycle =
force edt_update 0;
end;
cycle =
end;
apply shift 100;
end;
Saving Timing Patterns
可以编写ATPG过程中生成的pattern,用于时序模拟和ATE上使用。 在测试过程文件中创建正确的计时信息后,该工具使用内部测试模式数据格式化程序以以下格式生成pattern:
Text format (ASCII)
Binary format
Wave Generation Language (WGL)
Standard Test Interface Language (STIL)
Verilog
Texas Instruments Test Description Language (TDL 91)
Fujitsu Test data Description Language (FTDL-E)
Mitsubishi Test Description Language (MITDL)
Toshiba Standard Tester interface Language 2 (TSTL2)
Features of the Formatter
以下是测试pattern数据格式化程序的主要特性。

•生成基本测试pattern数据格式。文本、Verilog和WGL(ASCII和binary)。

•生成ASIC供应商测试数据格式:TDL 91、FTDL-E、MITDL和TSTL2。

•支持并行加载扫描单元(Verilog格式)。

•读取外部输入pattern和输出响应,并直接转换为其中一种格式。

•读取外部输入pattern,执行良好或错误的机器模拟以生成输出响应,然后转换为任何格式。

•以任何测试数据格式仅写出pattern的子集。

•通过使测试数据文件在测试仪循环编号和模式编号之间交叉引用信息,促进故障分析。

•支持每种模拟数据格式的差分扫描输入引脚

Serial Versus Parallel Scan Chain Loading
当模拟测试pattern时,大多数时间都用于加载和卸载扫描链,而不是实际模拟电路对测试模式的响应。可以使用串行或并行加载,每个加载都会不同地影响总模拟时间。 模拟串行加载的主要优点是它模拟模式在测试仪上的加载方式。因此,可以获得电路操作的非常现实的指示。缺点是,对于每个模式,必须为扫描链寄存器计时至少与您所拥有的次数相同 扫描最长链中的cell。对于大型设计,模拟串行加载需要非常长的时间来处理一整套模式。 模拟扫描链的并行加载的主要优点是与串行加载相比,它大大减少了模拟时间。可以直接(并行)使用必要的测试模式值加载仿真模型,因为您可以在模拟器中访问设计中的内部节点。并行加载使您能够在合理的时间内使用ModelSim等使用Verilog格式的流行模拟器对整个pattern集执行时序模拟。
Parallel Scan Chain Loading
Y 可以通过扫描子链(一个或多个扫描单元的链,建模为单个库模型)的扫描输入和扫描输出引脚来完成并行加载,因为这些引脚对于时序模拟器模型和Tessent Shell内部模型都是唯一的。例如,您可以通过使用Verilog force语句更改每个子链的扫描输入引脚的值来并行加载扫描链。

在并行加载之后,您应用几次移位过程(取决于最长子链中扫描单元的数量,但通常仅一次),以将扫描值加载到子链中。仅几次模拟换档过程可以显著提高定时模拟性能。然后,可以观察每个子链的扫描输出引脚处的扫描输出值。并行加载确保扫描子链中的所有存储器元件实现与串行加载时相同的状态。此外,该技术与扫描设计风格或设计使用的扫描单元类型无关。此外,当使用并行加载编写模式时,不必指定时序模拟器和Tessent Shell之间的子链中内存元素的映射。该方法不限制扫描单元的库模型开发。

例如,测试pattern timing检查器在读取以下换档程序及其相应的timeplate时会发出错误消息:

timeplate gen_tp1 =
force_pi 0;
measure_po 100;
pulse CLK 200 100;
period 300; // Period same as shift clock off time
end;
procedure shift =
scan_group grp1;
timeplate gen_tp1;
cycle =
force_sci;
measure_sco;
pulse CLK; // Force shift clock on and off
end;
end;
The error message would state:
// Error: There is at least one stable high scan cell in the design. The
shift procedure period must be greater than the shift clock off time to
avoid simulation timing violations.
The following modified timeplate would pass timing rules checks:
timeplate gen_tp1 =
force_pi 0;
measure_po 100;
pulse CLK 200 100;
period 400; // Period greater than shift clock off time
end;

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

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

相关文章

计算机研究生就业方向之运营商(移动,联通,电信)

我一直跟学生们说你考计算机的研究生之前一定要想好你想干什么,如果你只是转码,那么你不一定要考研,至少以下几个职位研究生是没有啥优势的: 1,软件测试工程师(培训一下就行) 2,前…

[附源码]Nodejs计算机毕业设计基于Java网络游戏后台管理系统Express(程序+LW)

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

HackTheBox Precious CVE-2022-25765利用,YAML反序列化攻击提权

靶机网址: https://app.hackthebox.com/machines/Precious枚举 使用nmap枚举靶机 nmap -sC -sV 10.10.11.189发现域名,我们本地DNS解析一下 echo "10.10.11.189 precious.htb" >> /etc/hosts然后访问网站 CVE-2022-25765利用 他的功…

网络流量分析帮助企业提升OA应用性能(一)

需求简介 某外高桥公司的OA系统是其重要的业务系统,OA系统负责人表示,部分用户反馈,访问OA系统时比较慢。需要通过分析系统看一下实际情况。 信息部已对企业领导定义了独立的组,本次要主动分析OA使用体验快慢。如果OA系统存在访…

mybatis入门02:Mybatis核心文件配置

目录 2.1 MyBatis核心配置文件层级关系 2.2MyBatis常用配置解析 1.environments标签 2.mapper标签 3.properties标签 4.typeAlisases标签 2.3 Mybatis相应的API 1.SqlSessionFactory工厂构造器SqlSessionFactoryBuilder 2.SqlSession工厂对象SqlSessionFactory 3.SqlSe…

实时监控网络流量,精准辨别网络性能瓶颈

网络流量反映网络运作状态,是辨别网络运行是否正常的关键指标,通过对网络流量进行监测不仅能反映交换机、路由器等设备的工作状态,更能体现整个网络资源的运行性能。同时,用户在网络中的行为可以通过其承载的流量动态来展现&#…

使用个从版gitee时向远程库push修改后内容时报remote: error: File: xxx 129.03 MB, exceeds 100.00 MB

1、报错时截图如下(我以下所有命令都是在Git Bash中执行的): 这是先前git push报的提示,明显说LFS(即large file system,此处大文件应该就是指过超过100M的单一文件)仅仅针对企业版gitee用户才…

.Net 7 CLR和ILC编译函数过程

楔子 由于甲方的需求,随着研究深入,发现CLR编译函数与ILC编译是两种不同的截然方式,除了JIT部分编译一样,其它部分貌似完全不一。 本篇来梳理这些东西。QQ:676817308。wx公众号:江湖评谈 示例: 作为例子…

OH----基于RK3568的AB分区功能,bsp部分

1、背景: OH master 主线 ,RK3568平台添加AB分区功能,uboot部分完成对ab分区标志位的读取解析,并加载和进入对应的分区,如: kernel_a 或者 kernel_b 2、环境: rk3568 Uboot代码下载&#xff…

股票L2接口和L1接口有什么差距?

股票L2数据的主要特点是能看到资金流向和十档买卖盘,比L1数据更加清晰和全面。 但是就现在的股票市场而言,也不能全部听信L2数据。 很多数据也是庄家做出来的,就是为了给散户看,所以全面分析基本面和技术面才是最重要的。 而且…

[附源码]计算机毕业设计个人博客系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis MavenVue等等组成,B/S模式…

【CSS】多行文字保持垂直居中,移动端布局,grid布局,居中总结

❤️ Author: 老九 ☕️ 个人博客:老九的CSDN博客 🙏 个人名言:不可控之事 乐观面对 😍 系列专栏: 文章目录多行文字垂直居中方法一方法2方法3方法四移动端布局viewport标签典型的手机网页设计grid布局grid…

基于C语言+SQL Server2008实现(控制台)图书管理系统【100010024】

第1章 概述 1.1项目背景 随着科技的发展,尤其是计算机技术的迅猛发展,图书馆管理的问题从以往的人工管理,到现在的电脑化,系统化,是对图书馆管理方法的质的飞跃,这些技术不仅让图书馆管理变得更加方便、快…

【Java EE初阶】创建线程的五种方式

文章目录1. 继承Tread,重写run()2. 实现Runnable接口,重写run()3. 使用匿名内部类,继承Thread4. 使用匿名内部类,实现Runnable5. 使用lambda表达式1. 继承Tread,重写run() 示例:pandas 是基于NumPy 的一种工具,该工具…

Kafka系列之:使用Kafka Manager实现leader分区平衡和broker节点上分区平衡

Kafka系列之:使用Kafka Manager实现leader分区平衡和broker节点上分区平衡 一、需求背景二、leader分区不平衡三、实现leader分区不平衡四、分区在节点不平衡五、实现分区在节点平衡一、需求背景 kafka节点扩容,分区不平衡现在需要leader分区平均分配在每个节点上同时分区副本…

基于Python+Django的项目申报审核平台系统

在各学校的教学过程中,django项目校内申报平台系统是一项非常重要的事情。随着计算机多媒体技术的发展和网络的普及。采用当前流行的B/S模式以及3层架构的设计思想通过Python技术来开发此系统的目的是建立一个配合网络环境的django高校学生项目校内申报平台&#xf…

OMV 5.6入坑指南(一)-openmediavalut 5.6安装

一、DIY NAS服务器 百度网盘里攒了一堆电影、电视剧,想下载到电脑里,买了个4T硬盘,然后发现不够用,然后又买了个还是不够用,然后自己又不想开电脑看电视电影,平时看电视电影都是在ipad上看的,台…

可视化管线

VTK中的可视化管线可用于读取或创建数据、分析和创建此数据的派生版本,并将数据写入磁盘或将其传递给渲染引擎进行显示。例如,您可以从磁盘读取一个三维数据体,对其进行处理以创建一组三角形,这些三角形通过该数据体表示一个等值曲…

全栈Jmeter接口测试(六):json断言元件,jmeter参数化实现

Jmeter(12):json断言元件 json断言元件介绍: json断言元件与响应断言元件的功能类型,它只针对响应正文为json数据格 式的内容进行断言功能。 添加路径:右击http请求——断言——json断言 如下图展示: json断言元件字…

JAVA毕业设计——基于SpringBoot和thymeleaf的疫情信息管理系统 (源码+数据库)

github代码地址 https://github.com/ynwynw/CoronavirusManage-public 毕业设计所有选题地址 https://github.com/ynwynw/allProject 基于SpringBoot及thymeleaf搭建的疫情信息管理系统 (源码数据库)034 一、系统介绍 疫情信息管理系统应当具备两种对象,疫情管理…