一种基于关键词的测试数据处理方法与流程

文档序号:25045287发布日期:2021-05-14 11:59阅读:93来源:国知局
1.本发明属于集成电路测试领域,具体涉及一种基于关键词的数据处理方法。
背景技术
::2.随着集成电路的设计规模不断扩大,单一芯片上的电子器件密度越来越大,而电子器件的特征尺寸越来越小。同时,集成电路工艺流程包含着很多复杂的工艺步骤,每一步都存在特定的工艺制造偏差,导致了集成电路芯片的成品率降低。在可制造性设计的背景下,为了提高集成电路产品的成品率,缩短成品率成熟周期,业界普遍采用基于特殊设计的测试芯片的测试方法,通过对测试芯片的测试来获取制造工艺和设计成品率改善所必需的数据。3.但是随着芯片的集成度越来越高,在制造过程中产生的测试数据,也在飞速增长。以高密度测试芯片为例,约包含100万个器件,目前可在25秒内完成测试,即每秒可测40000个器件;如果连续测试24小时,将能完成约35亿个器件的测试,获得的原始测试数据可达9gb,导致占用大量存储空间以及数据传输时间很长等问题。数据压缩可分成两种类型,一种叫做无损压缩,另一种叫做有损压缩。无损压缩是指使用压缩后的数据进行重构(或者叫做还原,解压缩),重构后的数据与原来的数据完全相同;无损压缩用于要求重构的信号与原始信号完全一致的场合。目前常用的无损压缩算法有霍夫曼(huffman)算法和lzw压缩算法。4.霍夫曼编码的基本方法是先对图像数据扫描一遍,计算出各种像素出现的概率,按概率的大小指定不同长度的唯一码字,由此得到一张该图像的霍夫曼码表。编码后的图像数据记录的是每个像素的码字,而码字与实际像素值的对应关系记录在码表中。5.lzw压缩算法有三个重要的对象:数据流(charstream)、编码流(codestream)和编译表(stringtable)。在编码时,数据流是输入对象(文本文件的据序列),编码流就是输出对象(经过压缩运算的编码数据);在解码时,编码流则是输入对象,数据流是输出对象;而编译表是在编码和解码时都须要用借助的对象。6.根据目前的无损压缩算法的技术水平,无损压缩算法一般可以把普通文件的数据压缩到原来的1/2~1/3。针对集成电路中产生的海量测试数据,目前尚未有极具针对性的更高压缩率的数据处理方法,且现有的无损压缩算法也无法对测试数据做异常检测等预处理,急需一种针对测试机在芯片测试过程中产生的大量测试数据,在传输、存储以及数据失效分析前的处理方法。技术实现要素:7.本发明是基于上述现有技术的问题而进行的,目的在于提供一种基于关键词的测试数据处理方法,用于对集成电路中产生的以文本文件存储的测试数据进行处理。8.本发明提供的一种基于关键词的测试数据处理方法,用于对以文本文件存储的测试数据进行处理,所述基于关键词的测试数据处理方法包括:步骤一:获取待处理的文本文件和预定义的关键词表;步骤二:根据关键词表,将文本文件编译成二进制文件,实现数据处理;所述文本文件中包括若干字段;所述关键词表中定义有:所述若干字段及其对应的关键词,关键词是预设的二进制数值。9.具体的,所述若干字段包括:表示芯片信息的字段、表示测试条件的字段和表示测试数据的字段;所述关键词表中定义的若干字段包括:表示芯片信息的字段、表示测试条件的字段和表示测试数据的字段。10.作为进一步的改进,在对文本文件中的字段进行编译时,将该字段的长度、该字段对应的关键词和以二进制表示的该字段的数据信息都写入二进制文件中;该字段的长度是指该字段对应的关键词的字节数和以二进制表示的该字段数据信息的字节数之和。11.在一个具体的实施情况里,所述关键词表中还定义有:若干数据类型及其对应的关键词;对文本文件中的字段进行编译时,将该字段的长度、该字段对应的关键词、该字段数据类型对应的关键词和以二进制表示的该字段的数据信息都写入二进制文件中;该字段的长度是指该字段对应的关键词的字节数、该字段数据类型对应的关键词的字节数和以二进制表示的该字段数据信息的字节数之和。12.其中较好的,所述关键词表中定义的数据类型包括:string、int、float和nodata;其中,nodata表示数据缺失,且仅用于结束符。13.在一个可行的实施方案中,所述关键词表中还定义有:若干分隔符及其对应的关键词;对文本文件进行编译时,当文本文件中出现关键词表中的分隔符时,将该分隔符对应的关键词写入二进制文件中。14.其中可选的,所述关键词表中定义的分隔符包括:开始(begin)、换行(endline)、文件结束(endfile)和终止(end)。15.在另一个可行的实施方案中,所述若干字段还包括表示测试是否出现异常的字段:bad;bad字段的数据类型为string;所述关键词表中还定义有bad字段及其对应的关键词。16.在一个有利的实施例中,所述获取待处理的文本文件有若干个,是批量文本文件;根据关键词表,将所述批量文本文件编译成一个二进制文件,实现数据处理。17.其中将所述批量文本文件编译成一个二进制文件,实现数据处理的过程包括:步骤s1.获取若干个待处理的文本文件,取出一个待处理的文本文件;步骤s2.先在二进制文件中写入表示开始(begin)分隔符的关键词,以及以二进制表示的被取出的所述待处理文本文件的文件名;然后根据关键词表,依次在二进制文件中编译写入被取出的所述待处理文本文件的所有信息;且根据关键词表,将文本文件中的换行(endline)分隔符编译成表示换行(endline)分隔符的关键词写入二进制文件中;完成对这个被取出的文本文件的编译后,在二进制文件中写入表示文件结束(endfile)分隔符的关键词;步骤s3.判断是否还有待处理的文本文件,若有,则取出一个待处理的文本文件至步骤s2;若无,则在二进制文件中写入表示终止(end)分隔符的关键词,完成对所有文本文件的数据处理。18.其中优选的,所述若干字段中,表示芯片信息的字段包括:lot字段、wafer字段、die字段和array字段,用于表示所测的器件信息;表示测试条件(testcondition)的字段包括:测试电压、测试电流;表示测试数据(testdata)的字段为测试得到的电性参数值;其中,所述lot字段表示wafer所属的lot编号;所述wafer字段表示wafer编号;所述die字段包括x坐标和y坐标,表示die字段在wafer中的位置;所述array字段表示array编号;所述lot字段、wafer字段、array字段和表示测试条件(testcondition)的字段,数据类型都是string;所述die字段的数据类型为int;所述表示测试数据(testdata)的字段,数据类型为float。19.在另一个有利的实施例中,对所述若干字段预设有数据标准,在对一个特定字段进行编译时,判断该特定字段的数据是否符合数据标准:若符合数据标准,则将以二进制表示的该特定字段的数据信息写入二进制文件中;若不符合数据标准,则判断该特定字段的数据信息异常,将一个预设的二进制数值(明显表征数据异常)写入二进制文件。20.还有一个具体实施情况中,对所述若干字段预设有默认值,在对一个特定字段进行编译时,若该特定字段没有获取到具体的数据信息,则直接将预设的默认值写入二进制文件中。21.本发明具有如下有益效果:根据本发明所涉及的一种基于关键词的测试数据处理方法,(1)通过关键词,能针对集成电路电性测试中产生的测试数据进行无损压缩,压缩后的测试数据大小约只占压缩前的1/6‑1/7,特别在进行批量文本文件数据压缩时能够达到1/10,大大节省了数据传输到网络平台的时间,具有更好的实时性。(2)能够将批量的测试数据文件处理成一个二进制文件,从而避免出现一个wafer或者die下器件的测试数据文件数量过多,方便测试数据的存储和传输。(3)因为对所述若干字段预设有数据标准或包括了表示测试是否出现异常的字段,能在数据处理过程中对测试数据进行初步的失效分析,初步筛选出异常数据并进行明显标示,方便对测试数据进行实时查看,以及方便后续针对测试数据进行失效分析。附图说明22.图1是本发明的测试数据处理方法示意图。23.图2是本发明的实施例一中批量测试数据文件处理过程的示意图。具体实施方式24.本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解。25.下面将参照附图更详细地描述本发明公开的实施例。虽然附图中显示了本发明公开的某些实施例,然而应当理解的是,本发明公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本发明公开的附图及实施例仅用于示例性作用,并非用于限制本发明公开的保护范围。26.集成电路电性测试中测试机产生的测试数据一般包括信息:lot、wafer、die、array、testcondition、testdata和bad。其中,lot、wafer、die和array表示芯片信息;信息lot表示wafer所属的lot编号;信息wafer表示wafer编号;信息die包括x坐标和y坐标,表示die在wafer中的位置;信息array表示array编号;testcondition表示测试条件,包括:测试电压、测试电流;testdata为测试得到的电性参数值;bad表示在测试过程中因测试失败或异常中断导致测试数据出现异常的情况,测试数据中可包含bad,也可不包含。测试数据以csv文件等文本文件形式进行存储和传输,在文本文件中,lot字段、wafer字段、array字段、bad字段和表示测试条件(testcondition)的字段,数据类型都是string;所述die字段的数据类型为int;所述表示测试数据(testdata)的字段,数据类型为float。以下实施例以这个一般情况为例展开叙述以便于理解本发明,但不能因此限定本发明的范围。27.如图1所示,本发明实施例中公开一种基于关键词的测试数据处理方法,包括:获取待处理的文本文件。根据预定义的关键词表,将文本文件编译成二进制文件,实现测试数据处理。所述文本文件中包括若干字段。所述关键词表中定义有:所述若干字段及其对应的关键词,关键词是预设的二进制数值。28.以下以待处理的文本文件有若干个为例展开叙述,在数据处理中,待处理的文本文件有若干个,是批量文本文件的情况有利于全面理解实施例,但不能因此而限定本发明的其它情况。29.在实施例一中,如图2所示,本实施例公开一种基于关键词的测试数据处理方法,能将批量以文本文件存储的测试数据,具体是wafer级别或者die级别的批量测试数据文件,处理成一个二进制文件,具体包括下述步骤:步骤s1.获取若干个待处理的文本文件,取出一个待处理的文本文件;步骤s2.先在二进制文件中写入表示开始(begin)分隔符的关键词,以及以二进制表示的这一个被取出的文本文件的文件名;然后根据预定义的关键词表,依次在二进制文件中编译写入这个被取出的待处理文本文件的所有信息;且根据预定义的关键词表,将文本文件中的换行(endline)分隔符编译成表示换行(endline)分隔符的关键词写入二进制文件中;完成对这个被取出的待处理文本文件的编译后,在二进制文件中写入表示文件结束(endfile)分隔符的关键词;步骤s3.判断是否还有待处理的文本文件,若有,则取出一个待处理的文本文件至步骤s2;若无,则在二进制文件中写入表示终止(end)分隔符的关键词,完成对所有文本文件的数据处理。30.在编译中使用的关键词表,定义有:若干字段及其对应的关键词,若干数据类型及其对应的关键词,若干分隔符及其对应的关键词(keyword);关键词是指预设的二进制数值。31.在本实施例中,关键词表中定义的字段包括:lot、wafer、die、array、testcondition和testdata。关键词表中定义的数据类型包括:string、int、float和nodata;其中,nodata表示数据缺失,且仅用于结束符。关键词表中定义的分隔符包括:开始(begin)、换行(endline)、文件结束(endfile)和终止(end)。可参考下表1和表2,表中的0x表示十六进制。另外,本实施例中一些较好的做法里,关键词表中还会定义bad字段及其对应的关键词。32.表1关键词中的字段、分隔符部分namekeyworddatatypevaluebegin0x020x030x0203lot0x030x030x0303wafer0x040x030x0403die0x050x010x0501array0x060x030x0603testcondition0x070x030x0703testdata0x0f0x020x0f02endline0x0e0x000x0e00endfile0x100x000x1000end0x110x000x1100bad0x120x030x1203表2关键词中的数据类型部分datatypekeywordnodata0x00int0x01float0x02string0x03需要注意的是,利用上述关键词表,在二进制文件中编译写入该文本文件的所有信息时:①对文本文件中的某个字段进行编译时,将该字段的长度、该字段对应的关键词、该字段数据类型对应的关键词和以二进制表示的该字段的数据信息都写入二进制文件中;所述字段的长度是指该字段对应的关键词的字节数、该字段数据类型对应的关键词的字节数和以二进制表示的该字段数据信息的字节数之和。②对若干字段预设有数据标准,能在对特定字段进行编译时,判断该字段的数据是否符合数据标准:若符合数据标准,则将以二进制表示的该字段的数据信息写入二进制文件中;若不符合数据标准,则判断该字段的数据信息异常,将一个预设的二进制数值(明显表征数据异常的数值为‑32768,二进制表示为1000,0000,0000,0000)写入二进制文件。通过该方式,能在数据压缩的同时,对测试数据中明显异常的数据进行标示,方便后续数据分析。比如对字段testdata设置数据范围,若读取的输入数据不在该预设的数据范围内,则写入一个极小的数值,来明显表征该数据异常。③对若干字段预设有默认值,能在对特定字段进行编译时,若该字段没有获取到具体的数据信息,则直接将预设的默认值写入二进制文件中。比如在处理开始前,根据待处理测试数据所属的lot,对字段lot预设一个默认值,当在处理中未读取到该字段的数据信息时,则直接将该默认值写入二进制文件中。33.下面以一个具体数据处理为例进行说明,使本专业的专业技术人员更全面地理解本发明,但不以任何方式限制本发明。原始wafer06_p2n1包含165个csv文件,共计50.2mb,通过上述基于关键词的测试数据处理方法,能将165个csv文件批量处理生成bin文件,且bin文件的大小仅为9302kb。34.bin文件部分片段如下:begin信息,后面跟csv文件:wafer06_p2n1_n_a1_vg=0.0_2018‑04‑10‑16‑11‑37.csv。35.34000302776166657230365f70326e315f4e5f41315f56473d302e305f323031382d30342d31302d31362d31312d33372e637376此处是一次性将begin信息的长度以两个字节的长度写入bin文件中,默认会从低8位开始写,再写高8位。0x0034的低8位是34,先写入文件,再写高8位的00,则得3400的结果。36.lot信息,默认为“lot”:070003036c6f74。37.wafer信息,“wafer06”:0b00030477616665723036。38.die信息,“(2,ꢀ‑1)”:0c0003050200000001000080。39.array信息,“n_a1”:080003064e5f4131。40.testcondition信息,“vg=0.0”:0f00030756473d302e30。41.testdata信息:0402020fa4079431a4c74e30ꢀ…ꢀb5c78031d24be13104000e00。42.c1291d320083cd31ꢀ…ꢀ71e18d316e56f13104000e00。43.当前文件结束:…ꢀ04001000。44.所有文件结束:…ꢀ04001100。45.bad信息:04000312。46.其中,以单元格字段为:4.30823572121e‑09为例,共17个字节,压缩完成后为:a4079431,仅为4个字节。47.其中具体的,4.30823572121e‑09的编码0.00000000430823572121整数部分0,二进制为0000;小数部分.00000000430823572121,其二进制是.0000000000000000000000000001001010000000111101001,从第一个1数起取24位(后面补0):100101000000011110100100,这部分是有效数字(尾数)。把小数点移到第一个1的后面,需要右移28位(1.00101000000011110100100ꢀ×2^‑28),加上偏移量127:127‑28=99,二进制是01100011,这是阶码。48.因为4.30823572121e‑09是正数,所以符号位是0。把符号位、阶码和尾数连起来。注意,尾数的第一位总是1,所以规定不存这一位的1,只取后23位,那么将符号位,阶码和尾数连接起来就是:00110001100101000000011110100100,变成16进制就是:319407a4,写入bin文件就变为a4079431。49.a4079431的译码具体如下,a4079431颠倒顺序为:319407a4,对应的二进制数是00110001100101000000011110100100。按1,8,23位分成三段:0,01100011,00101000000011110100100。50.最后一段是尾数,前面加上"1.",就是1.00101000000011110100100。51.然后确定小数点位置。阶码是01100011,化成十进制得99,(99‑127=‑28)。因此尾数1.00101000000011110100100是小数点右移28位的结果。要复原它就要左移28位小数点。52.得0.000000000000000000000000000100101000000011110100100,即十进制的4.30823572121e‑09。53.最后是符号:0代表正数,所以最后的结果是4.30823572121e‑09。54.需要指出的是,以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有很多变形。本领域的普通技术人员能从本发明公开的内容中直接导出或联想到的所有变形,均应认为是本发明的保护范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1