相信很多工程师,特别是刚入行或准备入行的兄弟们或多或少听过测试相关的东西。如果你想做DFT工程师的,测试工程师的,而对于设计/验证工程师们如果能了解下STIL文件的原理,在和DFT/测试工程师聊技术聊测试pattern的时候就不会一脸懵逼了。

言归正传。STIL就是StandardTestInterfaceLanguage(标准测试接口语言),IEEE1450.x标准就是专门说的它,语法上很有内涵的感觉。但很明显这就是用来描述测试pattern用的语言(Synoposys会采用STIL来描述扫描测试的过程,也就是SPF),就像verilog是用来描述硬件电路的语言一样,会有很多语法规则。那我们来好好详谈语法规则?你肯定晕菜,我也会晕的......所以放弃吧。

通常STIL格式的pattern文件都是工具生成出来的,自己要像用verilog写设计一样写一个完整的pattern文件,这个......你还是让我回家种地吧。

其实对这门语言的了解不需要很深入,只需要能够读懂,然后能依葫芦画瓢的做点小修改就够用了。好了,下面就跟着我来看看应该怎么快速读懂一个STIL描述的pattern文件。

请看这个例子:

这是一个比较简短的扫描测试STIL格式的pattern文件,从左往右基本显示了主要的几个部分。看到这样一个文件,感觉无数草泥马在眼前飞奔有木有?

我们这时需要思考一个问题,那就是这样一个文件记载的究竟是什么逻辑?既然是测试用的pattern文件,显然它最主要的功能就是描述测试所需要用到的输入输出管脚信号名,以及测试的过程。这个过程就包含如何给激励和给什么激励,以及最后期望得到什么输出和如何判断比较输出。从这个角度出发看待这个文件的话,其实就不难了。

首先看看测试用的输入输出管脚怎么描述的:

(1)这个有点复杂。是定义后面WaveFormTable和vector里给的值的含义。注意这里这个定义是针对双向IO的,”0X”就表示给’0’输入激励同时不做任何输出期望,在vector中就用’0’来完全表示,即有这样的映射定义”0X->0”。0就是输入0,1就是输入1,Z就是高阻输入,N就是没有输入,X表示不期望输出,H表示期望输出高,L表示期望输出低,T表示三态输出。

管脚信号的定义有了,那下面就该是定义这些管脚的输入输出的时序波形了,这个定义模块就是Timing里的WaveFormTable了。这个很重要,基本看懂了这个,就看懂了这个STIL文件的一半。在讲解这个时序波形定义之前,需要普及以一个小概念,不然理解要讲的东西就费劲了。这个概念就是测试波形的周期化。简单说来就是测试过程中,所有信号的激励都是按照时钟的周期一个周期一个周期给的,对输出的期望也是一个周期一个周期进行对比检查的。所以测试pattern在波形上是很有规律性的,而这个规律性就是通过下面WaveFormTable来定义的:

这个扫描测试过程定义中的”load_unload”过程就是定义常说的”shift”过程,因为在”shift”过程中,既有扫描输入(load)又有扫描输出(unload)。另外这里有四个(怎么又是四???别想太多,纯属巧合,如有雷同。。。)”*_capture”过程的定义,这个是为不同的pattern类型准备的。在后面具体的pattern里会有调用声明要用哪个capture过程。

有没有发现,其实STIL文件里也是一套套一套,套路相当深。

到这里,其实我们已经差不多可以在脑子里对这个扫描测试的波形有概念了,基本可以画出个大概的波形图了。

具体的波形就要依据定义在Pattern模块里的vector赋值给TMS,TDI和PAD1了。TDO和PAD2是输出,实际输出波形是依赖内部电路逻辑的,可以说不可知,但是我们可以对他们的输出作期望值比较,这个在Pattern模块里也是有给定的。

到此为止,相信你已经也可以比较轻松的看懂这个STIL格式的扫描pattern文件了。突然发觉其实也不难。

额外说一句,与STIL格式类似的还有WGL格式,在理解波形上思路是一致的,在语法上也是有很多相通的地方。

STIL文件(DFT/IC测试方向)的更多相关文章

  1. ashx实现文件下载以及文件MD5码测试

    cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System ...

  2. test文件夹,测试类是放在src目录下的,test测试代码是代码啊,当然要放在代码文件夹下

    test文件夹,测试类是放在src目录下的,test测试代码是代码啊,当然要放在代码文件夹下 Maven的标准工程结构 Maven的标准工程结构如下: |-- pom.xml(maven的核心配置文件 ...

  3. 【技术博客】Postman接口测试教程 - 环境、附加验证、文件上传测试

    Postman接口测试教程 - 环境.附加验证.文件上传测试 v1.0 作者:ZBW 前言 继利用Postman和Jmeter进行接口性能测试之后,我们发现Postman作为一款入门容易的工具,其内置 ...

  4. 【技术博客】 关于laravel5.1中文件上传测试的若干尝试

    关于laravel5.1中文件上传测试的若干尝试 作者:ZGJ 版本:v1.0 PM注:本人这两天也正在尝试解决这一问题,如有进展将及时更新这一博客 在我们的软工第二阶段中,我开始着手进行后端控制器的 ...

  5. 关于web端功能测试的测试方向

    一.功能测试 1.1链接测试 链接是web应用系统的一个很重要的特征,主要是用于页面之间切换跳转,指导用户去一些不知道地址的页面的主要手段,链接测试一般关注三点: 1)链接是否按照既定指示那样,确实链 ...

  6. (转载)关于web端功能测试的测试方向

    一.功能测试 1.1链接测试 链接是web应用系统的一个很重要的特征,主要是用于页面之间切换跳转,指导用户去一些不知道地址的页面的主要手段,链接测试一般关注三点: 1)链接是否按照既定指示那样,确实链 ...

  7. Java基础之访问文件与目录——测试文件或目录的路径(TryPath)

    控制台程序,测试文件或目录的路径. import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.FileSy ...

  8. Python:使用pymssql批量插入csv文件到数据库测试

    并行进程怎么使用? import os import sys import time def processFunc(i): time.sleep(10-i) print i if __name__= ...

  9. Lustre文件系统测试——obdfilter-survey测试

    Lustre文件系统测试--obdfilter-survey测试 介绍 该测试主要是在lustre文件系统工作环境下进行,将直接在ost上生成工作负载模拟并行文件访问,可准确检测盘阵在lustre文件 ...

随机推荐

  1. [毕业设计][期末作业]二手闲置小程序 免费信息发布系统功能源码(小程序+php后台管理)

    最近做了一个小程序,主要是二手闲置免费信息发布系统的功能,里面包括了登录,发布商品,商品管理,违规投诉,canva商品海报生成,分享等一些基础的功能,可以说代码都是自己辛辛苦苦写出来的.可作为毕业设计 ...

  2. C#冒泡排序(完整代码)

    百度百科 冒泡排序是笔试面试经常考的内容,虽然它是这些算法里排序速度最慢的 原理:从头开始,每一个元素和它的下一个元素比较,如果它大,就将它与比较的元素交换,否则不动. 这意味着,大的元素总是在向后慢 ...

  3. 升级到Sharepoint 2013后页面打开速度慢

    这个问题现在有了一些新的发现. 首先,我找到了重现客户那里出现的那个复杂SQL语句的方法.这个现象其实是这样的: 当WebApplication的“List View Threshold” 数量大于 ...

  4. ryu 下发流表配置

    资料链接:http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html 运行ryu进程: ryu-manager --ofp-tcp-listen-p ...

  5. 《快学Scala》第一章 基础

  6. Activity启动流程

    Activity启动过程中做了哪些事情?下面的时序图展示里启动过程中函数的调用过程, 从图中可以知道大概流程. 在介绍细节的时候是从上往下函数调用过程介绍的,如果不知道某个函数是在哪里被谁调用的,可以 ...

  7. 查看npm安装包版本

    npm list 版本号. eg: npm list socket.io

  8. JavaScript求数组Array的并集(javascript面试常见题目)

    var Utils = { joinArray:function(source,target){ for(var i = 0;i<source.length;i++){ var oa = sou ...

  9. eclipse远程debug服务器上的项目(Tomcat),打开、关闭及常见错误汇总

    我们工作中,有时候测试/生产环境,出现的结果会与我们预计的不一样,只看代码又看不出去问题所在,这个时候就需要远程debug下服务器上的项目. 注意:(1)需要debug的代码,本机代码需与服务器上一致 ...

  10. keycloak ssl-required报错问题处理

       两台主机,网段不同,第一台129.30.108.179/24    第二台172.16.160.92/24 都安装keycloak :    docker run -d --name keycl ...