当前位置: 首页 > news >正文

标准测试测试数据STDF学习笔记

原文链接:https://zhuanlan.zhihu.com/p/690981476

下载链接:

1. STDF Record Structure

STDF(Standard Test Data Format)是一种行业标准,用于定义在ATE上生成的测试数据的格式和结构。

1.1 STDF record类型:

每个STDF record都是以一个record头开始的,record头里面包含以下三部分信息:

REC_LEN:record头的字节数

REC_TYP:STDF record类型的分组,共10个分组,对应REC_TYP code分别为:0、1、2、5、10、15、20、50、180、181

REC_SUB:在每个REC_TYP分组中又细分了具体的STDF record类型,可见下表:

前25种record是需要我们了解的,末尾两种在实际STDF解析过程中暂时不需要用到。

1.2 数据类型

STDF指定了一些数据类型,这些数据类型和C语言中的数据类型有相似之处,以下是这些数据类型的汇总:

1.3 关于时间和日期的说明

在STDF规范中时间和日期被定义为4个字节(32bit),并且是已1970.1.1零点为基数,计算距离这个时间的秒数为日期和时间。

1.4 空缺/无效数据

每种STDF record中都由一列用来标志空缺/无效数据,每种数据类型都由自己的方式表示空缺/无效数据,如下表:

2. STDF Record类型

2.1 Initial Sequence

STDF文件中开头部分是初始化内容,即initial sequence,大部分record类型都是出现initial sequence之后的。initial sequence也是由record组成,这些record出现的顺序如下:

File Attributes Record(FAR)和Master Information Record(MIR)是每个STDF文件必须包含的,并且FAR是STDF文件中第一个FAR。所有其他STDF record类型都是出现在initial sequence之后的。

2.2 File Attributes Record(FAR)

功能:FAR中包含的信息决定了如何解析STDF文件

数据内容:

出现的位置:STDF文件中的第一个record

2.3 Audit Trail Record(ATR)

功能:记录任何改变STDF文件内容的操作

数据内容:

是否必须:否

出现的位置:在FAR和MIR之间

2.4 Master Information Record (MIR)

功能:MIR和MRR(Master Results Record)包含lot的所有全局信息,并且每个数据流中都有MIR,STDF解析软件可以直接获取这些信息。

数据内容:

出现频率:每个数据流中都存在

出现的位置:紧跟着FAR和ATR

应用:作为STDF解析报告的头信息

2.5 Master Results Record (MRR)

功能:MRR是MIR的一个延伸,每个数据流必须要有一个MRR作为最后的record

数据内容:

出现频率:每个数据流中都存在一个MRR

出现的位置:数据流中的最后一个record

2.6 Part Count Record(PCR)

功能:包含每个site的测试次数,每个数据流中至少有一个PCR

数据内容:

出现频率:每个数据流中都至少存在一个PCR

出现的位置:在initial sequence和MRR之间的任意位置,通常来说靠近数据流的末尾

应用:summary报告

2.7 Hardware Bin Record(HBR)

功能:在测试结束后存储分了HBin的芯片数量,该数量信息中细分了各site的情况

数据内容:

出现频率:每个site都有各自HBin,还有所有site汇总的HBin情况

出现的位置:在initial sequence和MRR之间的任意位置,通常来说靠近数据流的末尾

应用:summary报告

2.8 Software Bin Record(SBR)

功能:在测试结束后存储分了SBin的芯片数量,该数量信息中细分了各site的情况

数据内容:

出现频率:每个site都有各自SBin,还有所有site汇总的SBin情况

出现的位置:在initial sequence和MRR之间的任意位置,通常来说靠近数据流的末尾

应用:summary报告

2.8 Software Bin Record(SBR)

功能:提供了测试机通道名称、pin的物理名称和逻辑名称

数据内容:

出现的频率:测试程序中用到的每个通道和pin都会体现出来

出现的位置:在initial sequence之后,第一个PGR、PLR、FTR、MPR之前

2.9 Pin Group Record(SBR)

功能:记录pin group信息

数据内容:

出现的频率:测试程序中的每个pin group信息都会被记录

出现的位置:PMR之后,第一个PLR之前

2.10 Pin List Record(SBR)

功能:定义pin和pin group的工作模式(93K程序中一般不涉及)

数据内容:

出现的频率:当测试程序中pin或pin group的使用发生改变时

出现的位置:所有PMR和PGR之后,第一个FTR之后

2.11 Retest Data Record(SBR)

功能:表示STDF文件中该部分数据属于复测部分

数据内容:

出现的频率:可选

出现的位置:如果使用到了这个record,必须出现在MIR之后

应用:告诉数据解析软件怎么处理复测数据

2.12 Site Description Record(SDR)

功能:包含一个测试头上一个或多个site的配置信息

数据内容:

出现的频率:当site或site group的配置不同时会使用到

出现的位置:紧跟着MIR和RDR之后

应用:将良率和设备做correlation

2.13 Wafer Information Record(WIR)

功能:作为wafer从什么时候开始测试的标记,仅在CP测试中使用

数据内容:

出现的频率:每片wafer测试时都会用到

出现的位置:initial sequence之后,MRR之前的任何位置

应用:wafer summary

2.14 Wafer Result Record(WIR)

功能:包含每片测试wafer的最终信息,这个record也是仅在CP测试中使用,WIR和WRR时一对record,有相同的HEAD_NUM和SITE_GRP

数据内容:

出现的频率:每片wafer测试时都会用到

出现的位置:WIR之后的的任何位置

应用:wafer summary

2.15 Wafer Configuration Record(WCR)

功能:包含CP测试时wafer的配置信息,比如:中心坐标,取向,晶圆尺寸

数据内容:

出现的频率:每片wafer测试时都会用到

出现的位置:initial sequence之后,MRR之前的任何位置

应用:画wafer map时会用到

2.16 Part Information Record(PIR)

功能:作为每次测试时site位置的标记,PIR和PRR包含测试site、die坐标、测试时间的所有信息

数据内容:

出现的频率:每次测试都会保存PIR信息

出现的位置:initial sequence之后,PRR之前的任何位置

应用:datalog

2.17 Part Result Record(PRR)

功能:包含每次测试时关于site、坐标、bin等信息,PRR和PIR一起包含了所有信息

数据内容:

出现的频率:每次测试都会有一条记录

出现的位置:MRR之前,PIR之后的任意位置

2.18 Test Synopsis Record(TSR)

功能:包含参数测试和功能测试的测试次数和失效次数,另外还包含一些统计信息:最小值、最大值等。TSR和FTR、PTR、MRR之间通过test number、head number和site number关联

数据内容:

出现的频率:每一次测试都会被记录

出现的位置:initial sequence之后,MRR之前的任何位置

应用:Final Summary、map、直方图等

2.19 Parametric Test Record(PTR)

功能:参数测试的测试结果,包含极限值、单位、标度、测量值等信息,PTR和TSR之间通过test number、head number和site number关联

数据内容:

出现的频率:每一次测试都会被记录

出现的位置:PIR之后,PRR之前的任意位置

应用:Final Summary、map、直方图等

2.20 Multiple-Result Parametric Record(MPR)

功能:包含多结果参数测试项的测试结果信息,MPR和TSR之间通过test number、head number和site number关联

数据内容:

出现的频率:每个多结果参数测试都会记录

出现的位置:PRR之前,PIR之后的任意位置

应用:datalog

2.21 Functional Test Record(FTR)

功能:包含功能测试项的测试结果,FTR和TSR之间通过test number、head number和site number关联

数据内容:

出现的频率:每个功能测试都会记录

出现的位置:PRR之前,PIR之后的任意位置

应用:datalog

2.22 Begin Program Section Record(BPS)

功能:标记新程序开始使用

数据内容:

2.23 End Program Section Record(EPS)

功能:标记程序结束使用

数据内容:

2.24 Generic Data Record(GDR)

功能:包含任何不符合STDF规范的其他record类型

数据内容:

2.25 Datalog Text Record(DTR)

功能:包含datalog中打印输出的文本信息,在datalog中作为注释存在

数据内容:

3. 基于pystdf的STDF解析方法

3.1 pystdf简介

pystdf是一款开源的STDF文件解析器,该解析器基于事件开发,在回调函数中可以获取record事件的内容,即测试数据。

3.2 利用pystdf解析STDF的方法

3.2.1 pystdf自带的脚本

pystdf库自带了stdf2excel.py脚本,该脚本可以将stdf转成excel,具体如下:

利用STDF2DataFrame方法将stdf转成rec->dataframe型的字典,并将其写入到excel中,转后的excel包含该stdf中包含的所有rec类型及其内容,如下图所示:

该脚本虽然可以将stdf转成excel,但是受限于excel最大行数1048576的限制,对于较大的stdf文件在转成excel时可能会报错,特别是在写入PTR和MPR这两个record数据的时候。对于这类较大的stdf,如果需要将其转成excel,需要修改该脚本。

除了stdf2excel.py,pystdf库还自带了stdf2text、stdf2xml等方法。

3.2.2 自编程脚本

1、Setup parser:Parser类在pystdf的IO module里,首先,import这个类,并实例化:

2、添加一个Sink,这个Sink就是一个Event触发后的动作,这里来定义对STDF解析过程中的处理动作:

3、pystdf共有4个Events,分别是:

Events说明
beginThe 'begin' event
fires when the Parser.parse is first called.
sendThe 'send' event
methods will get called on each record in the STDF.
completeThe 'complete' event
methods get called after a successful STDF parse completes.
cancelThe 'cancel' event
methods are called after an error in the STDF parse.

每个event都有before和after两类,执行顺序依次为:before_begin、after_begin、before_send、after_send、before_complete、after_complete、before_cancel、after_cancel,但需要注意的是:除send外,其他函数均只执行依次,before_send和after_send会执行多次,每接收一次数据流都会执行依次,以下是解析stdf过程中获取的实际每个event执行顺序:

利用begin、send、complete和cancel这四类event可以自编程解析stdf,其中最重要的函数是before_send()和after_send(),因为每次接收数据流时这两个函数都会被调用一次,我们只需在这两个函数中定义对数据流的处理,即可得到我们想从stdf中获取的信息。

3.2.3 关于数据流的说明

在自编程脚本解析stdf时,我们只需在before_send()和after_send()两个函数中定义对每次接收的数据流的操作行为,即可完成stdf的解析,但是对数据流的理解会直接决定我们能对stdf完成什么样的解析,因此有必要学习下数据流行为。

通过把每次接收的数据流打印出来,可以看出数据流是按不同record类型先后发送的,其顺序为:

需要注意的是:虽然数据流是按不同record类型发送的,但并不是所有record类型都是数据流全部发送完后再发送下一个record。除PIR、PTR、MPR和PRR这四个record外,其他record类型都是连续发送完该record类型的所有数据,然后发送下一个。

PIR、PTR、MPR、FTR、PRR这几个record是每次连续发送完一次touch down的数据,然后发送下一record记录的一次touch down数据,可以理解为:PIR(一次TD)->PTR/MPR/FTR(一次TD)->PRR(一次TD)-> PIR(一次TD)-> PTR/MPR/FTR(一次TD)->PRR(一次TD)这样循环。从《stdf-specification-V4.pdf》文档中我们也能看出stdf文件中的数据是按这种方式记录的:

3.2.4 实例

更多实例可参考后续更新的《用python搞定ATE测试数据处理的系列教程》

http://www.lryc.cn/news/579514.html

相关文章:

  • MediaCrawler:强大的自媒体平台爬虫工具
  • Spring Boot 多 ActiveMQ 通道配置与多连接消息发送实战(含完整示例与踩坑记录)
  • Ubuntu 24.04 LTS 服务器配置:安装 JDK、Nginx、Redis。
  • 一体机电脑为何热度持续上升?消费者更看重哪些功能?
  • 关于系统无法找到 arm-linux-gcc 命令,这表明你的环境中尚未安装 ARM 交叉编译工具链。以下是详细的解决方案:(DIY机器人工房)
  • 牛客:HJ16 购物单【01背包】【华为机考】
  • 封装 获取paramsByKey 方法
  • 毕业设计(启智模块化机器人的组装与K5的使用
  • 使用Visual Studio 2022创建CUDA编程项目
  • 车载交换机动态MAC学习和静态MAC绑定如何获取MAC地址表
  • jenkins角色权限
  • 这才叫窗口查询!TDEngine官方文档没讲透的实战玩法
  • 微信小程序41~50
  • 佰力博科技与您探讨压电材料的原理与压电效应的应用
  • C++(std::sort)
  • 【轨物洞见】光伏机器人与组件、支架智能化协同白皮书
  • 如何避免服务器出现故障情况?
  • SPLADE 在稀疏向量搜索中的原理与应用详解
  • 【NLP入门系列四】评论文本分类入门案例
  • ubuntu 6.8.0 安装xenomai3.3
  • lspci查看PCI设备详细信息
  • OpenCV篇——项目(二)OCR文档扫描
  • Rust方法语法:赋予结构体行为的力量
  • ConcurrentHashMap 原理
  • Linux多线程(十二)之【生产者消费者模型】
  • 汽车ECU产线烧录和检测软件怎么做?
  • Flutter 3.29+使用isar构建失败
  • HarmonyOS ArkTS卡片堆叠滑动组件实战与原理详解(含源码)
  • Java网络编程:TCP/UDP套接字通信详解
  • I/O 进程 7.2