发明内容
鉴于现有技术所存在的不足,本发明的目的是提供一种面向集成电路测试的测试数据转换方法。该方法针对目前业界通用的J750系列测试机实现,能够将ASCII码的J750测试数据批量转换为用户所需的其它数据格式。
为实现上述的发明目的,本发明采用下述的技术方案:
一种面向集成电路测试的测试数据转换方法,针对J750系列测试机实施,其特征在于包括如下步骤:
(1)将所述测试机输出的原始数据文件按照预定的路径存放,并且按照预定的格式生成新建数据文件的文件名;
(2)根据原始数据文件中的内容,在所述新建数据文件中填写相关项;
(3)在多个芯片并行测试的情况下,首先在所述新建数据文件的列标题处填写预定数据项,然后启动多线程扫描原始数据中同一个坐标的不同测试项得出的数据,分别填写在对应的测试名称下;
(4)在执行完毕后,在wafer log日志文件中写入表示数据转换完毕的信息,所述wafer log日志文件是对已经完成数据处理的晶片进行记录的文件。
其中,所述步骤(1)中,所述原始数据中包括原始测试数据和复测数据,所述该原始测试数据放置在Test Data/Device/Lot/Data目录之下,所述复测数据放置在Test Dat a/Device/Lot/Retest目录之下。
所述步骤(1)中,通过记事本程序打开所述原始数据文件,识别该项测试起始时的日期和时间、任务名称和节点名称,再从Lot log日志文件中得到晶片的信息,把这些信息拆分并整合,得出新建数据文件的文件名,其中所述Lot log日志文件是对已经完成整个批次数据处理的批号进行记录的文件。
所述步骤(2)中,根据原始数据文件中的内容,在所述新建数据文件中填写相关项,确定行标题和列标题。
所述步骤(3)中,所述预定数据项包括但不限于坐标、地点、ID序列、自动识别产生的测试名称以及最后测试结果信息。
所述数据转换方法在执行前,通过读取wafer log日志文件,判断此片数据是否已经处理;如果已经进行处理则放弃该数据,转而进行下一批待处理数据的处理;如果还未进行处理则判断是否有需要进行复测的数据文件,然后按先原始数据、再复测数据的顺序读取数据文件,获取数据并把数据写入临时文件中。
本发明所提供的测试数据转换方法能够批量处理测试过程中产生的ASCII数据,可以做到完全自动化,无人工干预,定时完成数据处理。
具体实施方式
本发明所提供的测试数据转换方法主要针对现有J750系列测试机实现,其核心的技术思想在于:从J750系列测试机所输出的ASCII码格式的输出文件中提取相关信息,按照用户需要的数据格式进行相应的数据处理,批量生成符合用户格式要求的数据文件。
J750系列测试机的输出数据格式为基于ASCII码的文本文件,输出数据包括的信息有:测试时间、Job Name、Operator、Tester Name、Channelmap以及每颗芯片的X、Y坐标、ID String、测试结果等。在本专利申请中,用data文件表示J50的输出数据,BHTC文件表示经过数据转换的文件,MAP文件表示生成的wafer(晶片)map文件。
下面详细介绍本测试数据转换方法的具体实施步骤。
首先,按照规定的路径存放测试的原始数据,并且按照规定的格式生成文件名。
图1是在J750系列测试机中,用于放置测试数据的目录示意图。在J750系列测试机进行测试之后,需要被转换的测试数据分为两类,一类是原始测试数据。该原始测试数据放置在Test Data/Device/Lot/Data目录之下;另外一类是复测数据,该复测数据放置在Test Data/Device/Lot/Retest目录之下。此处将Teradyne J750测试机随时产生的测试数据按照规定的路径存放,并且按照规定的格式生成文件名的处理方式不需要操作员为大量的检测数据设置存储路径和文件名,降低了操作员的工作量,避免了操作员的误操作,提高了工作效率。
J750系列测试机的输出数据都是采用ASCII码的文件,该文件可以通过记事本程序打开。文件打开后,自动识别该项测试起始时的date&time(日期和时间),job name(任务名称),node name(节点名称),在本目录下新建记事本文档,文件名则根据这三个信息的内容按照预定格式要求编写。
例如,在原始数据的Job Name自动获取任务名(例如:Hed0409_bv65_8Site_Sortl),再从Lot log日志文件中得到图2所示关于wafer(晶片)的信息,之后把这些信息拆分并整合,得出文件名(Hed0409_h6×7273_bv65_90_Sortl_01.bhtc)。
图3是本测试数据转换方法中,判断Lot目录下的数据是否已经处理的流程示意图。处理过程从步骤101开始,进入Test Data目录(步骤201)后开始遍历Test Data目录下的文件或目录,对每一个进行判断(步骤202),如果是文件就返回步骤201,如果是目录就到步骤301。如果跳到步骤301,这说明找到一种Devi c e的测试数据目录,进入Device目录后,开始遍历Device目录下的文件或目录,也对每一个进行判断(步骤302),如果是文件,就跳回到步骤301,如果是目录说明找到一个新的批次的数据就到步骤303,这时需要通过读Lot log日志文件(Lot log日志文件是一个对已经完成整个批次数据处理的批号进行记录的文件)检查此批次的数据是否已经做过数据处理,如果已经完成数据处理,那么跳回到步骤301进行下一批次。如果没有就到步骤401进入此批次的目录下。
在判断数据是否已经得到处理的过程中,可以通过设置时钟控件自动在规定的时间间隔内执行上述的检查判断工作,从而实时检查数据是否需要更新。
图4是本测试数据转换方法中,通过读取wafer log日志文件判断数据是否已经处理的流程示意图。首先在步骤401,开始查找Lot目录下是否存在data目录,如果不存在说明此文件夹不是存放数据目录,就跳回到步骤401,如果存在就进入data目录。到步骤501,开始遍历data目录下的文件,也对每一个文件进行判断(步骤502),如果不是data文件,就跳回到步骤501,如果是data文件跳到步骤503获取DeviceName(设备名称)、Test Type(测试类型)、Test Time(测试时间)和WaferID(晶片ID)信息,这时需要到步骤504通过读wafer log日志文件(waferlog日志文件是一个对已经完成数据处理的晶片进行记录的文件)检查此片的数据是否已经做过数据处理,如果已经完成数据处理,那么跳回到步骤501进行下一片数据处理。
图5是本测试数据转换方法中,在数据未曾处理的情况下,通过读取data文件获取数据并把数据写入临时文件的流程示意图。如果通过wafer log日志文件判断此片晶片的数据没有处理,那么到步骤403,判断此批号下面是否存在retest目录,如果不存在,就到步骤505。如果存在,就到步骤601进入retest目录,检查是否此片晶片的复测数据,如果没有,就跳到步骤505,如果有,找出此片晶片的所有复测数据,按时间先后顺序排序。进入步骤505到配置文件中检查是否有此设备的相关信息,如果不存在就输出错误日志到error log(步骤507),然后跳到步骤401。如果存在,从配置文件中找出此设备的相关信息(步骤506),根据设备的相关信息,按先原始数据,再复测数据的顺序读取data文件,获取数据并把数据写入临时文件中(步骤508)。
图6是本测试数据转换方法中,执行数据批量转换的流程示意图。在步骤509中,从临时文件读取数据按要求输出需要的相关格式的文件,最后到步骤510写入相关的信息到wafer log日志文件。在此数据批量转换过程中,可以将TeradyneJ750测试机产生的文本格式的ASCII测试数据转换成客户需要格式的数据,装换后信息量不变,存储空间减小,而且转换后的数据可以导入excel,利用excel工具进行数据分析,为进行检测数据分析提供了便利。另外,将TeradyneJ750测试机产生的文本格式的测试数据自动定时转换成wafer map,转换生成的wafer map可以代替扫描探针台生成的wafer map,从而实现自动存储。
在执行数据批量转换之前,要根据测试数据文档中的内容,在新建记事本中填写相关项,确定行标题和列标题。值得一提的是,因为两个文档的数据项不一致,某些信息较为零散或者集中,需要集合或拆分原始数据以便达到客户对文档的要求,这就要求原始数据的信息字段分配固定。
举例说:在原始数据中同时测试的8个site的ID String表示为:Coordinate:X-43Y16_X-42Y16_X-41Y16_X-40Y16_X-39Y16_X-38Y16_X-37Y16_X-36Y16
ID String:061114_0001977_01_Coordinate
但是在客户文档中将这8个芯片拆分开,ID String设为:
X | Y |Site|ID Strings
—43|16 |0 |061114000197701-043+016
在多个芯片并行测试的情况下,原始数据是按照多个不同坐标芯片的多项测试为一组进行记录的。用于执行本发明所述方法的数据转换程序需要把这些分散、凌乱的数据重新组合起来写进客户文档。因此,首先在文档写上坐标、Site(地点)、IDStrings(ID序列)、自动识别产生的测试名称,以及最后测试结果等信息填写到列标题处。之后启动多线程扫描原始数据中同一个坐标的不同测试项得出的数据,分别填写在对应的测试名称下。如果一个待测芯片的每一项测试均为pass(通过),在测试结果一栏填写pass;反之若其中一项或多项测试fail(失败)导致随后的测试不能进行,则在缺测项里以*号代替,并且将该消息传递给测试结果,使它设为fail。这种标志方法能够保证客户文档中的测试数据准确、易懂,而不会产生串行或缺值。
这一步骤是本测试数据转换方法的核心步骤,其核心在于将测试机产生的每一项原始测试数据填写到以芯片在整个晶片中的坐标为行,测试项序号为列的交叉点上。
例如,对于提供原始数据的DATA文件,其中的数据经过信息提取和数据处理,转换成用户所需格式的文件(命名为BHTC文件)中的数据,其对应关系举例如下:
例1:
DATA文件中的数据:
Coordinate:X-35Y34_X-34Y34_X-33Y34_X-32Y34_X-31Y34_X-30Y34_X-29Y34_X-28Y34
ID String:061114_0001977_01_Coordinate
对应BHTC文件中的数据:
X |Y |Site|ID Strings
-35|34|0 |061114000197701-035+034
例2:
DATA文件中的数据:
Sit e Bin
0 1
对应BHTC文件中的数据:
Bin|X | Y|Site|
1 |—35|34|0 |
例3:
DATA文件中的数据:
Number Site TestName Pin Channel Measured
0 0 cont_gnd mrst 136 -500.6259mV
1 0 cont_gnd mclk 9 -499.8950mV
16 0 cont_vdd I01 2 656.2770mV
17 0 cont_vdd I02 17 655.5902mV
18 0 Idd_rst0 VDD 2 153.8121uA
Number Site Result TestName
19 0 PASS Sortl
20 0 PASS CPTEST_0
对应BHTC文件中的数据:
Site|test0|test1|test16|test17|test18|test19|test20|
0|-500.6259|-499.8950|656.2770|655.5902153.8121|PASS|PASS|
例4:
DATA文件中的数据:
Number Site Result TestName
19 1 FAIL Sortl
后面项的数据没有。
对应BHTC文件中的数据:
Site|test19|test20|test21|test22|test23|
1 |* | * |**** |* |* |
其中缺少的数据用*代替。
当实现到步骤404时,说明完成一片晶片的数据处理,检查此数据是否是这一批的最后一片数据,如果不是就跳到步骤401,如果是就跳到步骤304。当跳到步骤304时,说明当前一个批次的晶片数据已经处理完成,检查是否是最后一个lot,如果不是就跳到步骤301,如果是就跳到步骤203。当跳到步骤203时,说明当前设备下所有的数据已经完成,然后检查时候还有其他设备,如果有,就跳到步骤201,如果没有,就退出数据转换工作。
上面虽然通过实施例描绘了本发明,但本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,所附的权利要求将包括这些变形和变化。