CN112578260B - 一种基于多线程技术提高芯片测试效率的方法 - Google Patents

一种基于多线程技术提高芯片测试效率的方法 Download PDF

Info

Publication number
CN112578260B
CN112578260B CN201910931907.2A CN201910931907A CN112578260B CN 112578260 B CN112578260 B CN 112578260B CN 201910931907 A CN201910931907 A CN 201910931907A CN 112578260 B CN112578260 B CN 112578260B
Authority
CN
China
Prior art keywords
test
data
thread
item
site
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910931907.2A
Other languages
English (en)
Other versions
CN112578260A (zh
Inventor
吕效军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ingenic Semiconductor Co Ltd
Original Assignee
Beijing Ingenic Semiconductor Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Ingenic Semiconductor Co Ltd filed Critical Beijing Ingenic Semiconductor Co Ltd
Priority to CN201910931907.2A priority Critical patent/CN112578260B/zh
Publication of CN112578260A publication Critical patent/CN112578260A/zh
Application granted granted Critical
Publication of CN112578260B publication Critical patent/CN112578260B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/2851Testing of integrated circuits [IC]
    • G01R31/2855Environmental, reliability or burn-in testing
    • G01R31/2856Internal circuit aspects, e.g. built-in test features; Test chips; Measuring material aspects, e.g. electro migration [EM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明提供一种基于多线程技术提高芯片测试效率的方法,包括:S1建立所需所有测试项;S2建立多测试站点测试;S3获取每个测试项执行时各阶段的测试时间;S4合并调整优化测试项,使各测试项的Upload、Calc和Judge的总和时间等于与其Setup和Meas的总和时间;S5根据测试站点个数建立线程池;S6从线程池创建主线程,并在创建主线程前申请并开辟专属数据空间,各测试项的Meas阶段时向此空间写入获取的数据,Upload阶段读取此空间的数据并通过总线上传给工作站进行处理;S7启动并运行主线程执行测试项1的Setup及Meas阶段;S8根据步骤S6的设置,执行的线程调度,这样以此类推,依次完成所有测试站点所有测试项的测试;S9最后同步各测试站点子线程并释放回收完成整个测试流程。

Description

一种基于多线程技术提高芯片测试效率的方法
技术领域
本发明涉及集成电路测试领域,特别涉及一种基于多线程技术提高芯片测试效率的方法。
背景技术
随着社会的发展,人们对电子产品功能的多样性和丰富性提出了越来越高的需求。而随着集成电路设计和制造技术的进步,这一需求的实现变为了可能,但芯片规模越来越大,一个芯片中不仅集成了中央处理器CPU、存储器Memory、通用外设接口USB、MIPI、SPI等,还集成了图形处理器GPU、图像处理器VPU、音频处理器Audio,甚至加密引擎AES、SHA等各种复杂的功能模块。
而芯片功能的复杂性和规模的扩大性,对芯片的测试提出了严峻的挑战,不仅增加了测试程序开发时间,还极大地增加了芯片的测试时间,提高了测试成本。
目前芯片的测试基本都是应用通用ATE测试机完成。常见的ATE测试机有V93000、T2000、J750等。通用ATE测试机主要由工作站、测试头组成,其中测试头由多块测试板卡组成,测试板卡内置测试向量发生器、时钟发生器、驱动器、比较器,并包含多个测试通道,可以实现与各Site待测器件的连接,对待测器件施加激励或捕获响应。
工作站负责对测试板卡的控制,通过API编程建立测试向量及相应的控制指令,通过下行总线发送给目标测试板卡,测试板卡执行测试并获取芯片响应数据,再通过上行总线上传到工作站,然后工作站对数据进行处理和判断,得出芯片的测试结果。如图1为ATE测试连接图。
芯片的测试往往包含多个测试项,每个测试项都分为测试向量建立(Setup)、测试数据获取(Meas)、测试数据上传(Upload)、测试数据处理(Calc)、结果判断(Judge)五个阶段,而ATE测试机一般也只能完成一个测试项的整个流程再进行下一个测试项的测试,相当于是测试项一个接一个的串行执行。
传统的提高芯片测试效率的做法是芯片的多测试站点(Site)并行测试,即设置同样的测试向量,同时启动测试卡对多个芯片进行测试,但由于测试板卡是共享与工作站之间的通信总线,工作站获取各Site芯片测试数据需要依次选中对应板卡通过总线顺序进行上传,然后再进行数据处理和结果判定。
传统的多测试站点(site)并行测试,只能实现芯片单个测试项的部分并行,即测试向量的设置及数据获取阶段,数据的上传、处理及结果判断site间依然是串行处理,整体并行度并不高,导致芯片测试效率及测试成本并不理想。
发明内容
为了解决上述问题,本发明的目的在于克服现有技术的不足,提供一种多线程的处理技术,实现了测试项测试数据上传、测试数据处理及结果判断三个阶段的时间隐藏,无论单Site还是多Site都极大地提高了芯片测试并行率,成倍地减少了测试时间,显著地降低了测试成本,具有很高的应用价值。
具体地,提供一种基于多线程技术提高芯片测试效率的方法,包括以下步骤:
S1,根据芯片的规格定义,建立所需所有测试项,测试项总数为Nitem
S2,根据测试机资源,建立多测试站点测试,总测试站点个数为Nsite
S3,在测试机执行各测试项,获取每个测试项执行时各阶段的测试时间;S4,根据步骤S3对各测试项时间的获取,合并调整优化测试项,使各测试项的数据上传、数据处理和结果判断的总和的时间小于等于与其数据建立和数据获取的总和时间,优选为两个总和的时间相等;
S5,根据测试站点个数建立线程池,可容纳线程数为Nthread=Nsite+1,其中一个为主线程,其余为各测试站点独立子线程;
S6,根据测试流程,从线程池创建主线程,并在创建主线程前申请并开辟专属数据空间,各测试项的数据获取阶段时向此空间写入获取的数据,数据上传阶段读取此空间的数据并通过总线上传给工作站进行处理;
S7,启动并运行主线程执行测试项1的测试向量建立及获取阶段;
S8,根据步骤S6的设置,执行的线程调度:所述的主线程只负责各测试项的测试向量建立和数据获取阶段,并且在测试项1的测试向量建立和数据获取结束后立即启动测试项2的测试向量建立和数据获取,同时启动测试站点1子线程执行数据上传和数据处理以及结果判断阶段,并且在测试站点1的数据上传结束后启动测试站点2子线程执行数据上传和数据处理以及结果判断,这样以此类推,依次完成所有测试站点所有测试项的测试;
S9,最后同步各测试站点子线程并释放回收完成整个测试流程。
由此,本申请的优势在于:上述基于多线程并行执行步骤实现了各测试项Upload、Calc、Judge时间的隐藏,相当于各测试项由传统的Setup、Meas、Upload、Calc、Judge五个阶段变为了Setup、Meas两个阶段,Upload、Calc、Judge实现了错位隐藏,节省了测试时间。
本发明还可以通过对多线程的应用,合理分配资源,隐藏了测试数据上传、计算及处理判断时间,实现了测试项及测试站点Site间的并行,达到了很高的测试效率,极大地缩短了测试时间,减少了测试成本,具有很高的实用价值及推广价值。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。
图1是本发明涉及的现有技术的ATE测试连接示意框图。
图2是本发明涉及的功能示意框图。
图3是本发明涉及的基于多线程技术提高芯片测试效率的方法的示意流程图。
图4是本发明涉及的一个测试执行的流程图。
图5是传统单site测试执行时间图。
图6是传统多site测试执行时间图。
图7是多线程多site测试执行时间图。
图8是多线程数据隐藏单site测试执行时间图。
图9是多线程数据隐藏多site测试执行时间图。
具体实施方式
为了能够更清楚地理解本发明的技术内容及优点,现结合附图对本发明进行进一步的详细说明。
参见图3所示,本发明提供一种基于多线程技术提高芯片测试效率的方法,包括以下步骤:
S1,根据芯片的规格定义,建立所需所有测试项,测试项总数为Nitem
S2,根据测试机资源,建立多测试站点测试,总测试站点个数为Nsite
S3,在测试机执行各测试项,获取每个测试项执行时各阶段的测试时间;S4,根据步骤S3对各测试项时间的获取,合并调整优化测试项,使各测试项的数据上传、数据处理和结果判断的总和的时间小于等于与其数据建立和数据获取的总和时间,优选为两个总和的时间相等;
S5,根据测试站点个数建立线程池,可容纳线程数为Nthread=Nsite+1,其中一个为主线程,其余为各测试站点独立子线程;
S6,根据测试流程,从线程池创建主线程,并在创建主线程前申请并开辟专属数据空间,各测试项的数据获取阶段时向此空间写入获取的数据,数据上传阶段读取此空间的数据并通过总线上传给工作站进行处理;
S7,启动并运行主线程执行测试项1的测试向量建立及获取阶段;
S8,根据步骤S6的设置,执行的线程调度:所述的主线程只负责各测试项的测试向量建立和数据获取阶段,并且在测试项1的测试向量建立和数据获取结束后立即启动测试项2的测试向量建立和数据获取,同时启动测试站点1子线程执行数据上传和数据处理以及结果判断阶段,并且在测试站点1的数据上传结束后启动测试站点2子线程执行数据上传和数据处理以及结果判断,这样以此类推,依次完成所有测试站点所有测试项的测试;
S9,最后同步各测试站点子线程并释放回收完成整个测试流程。
所述的步骤S2中,所述的数据空间的大小设为测试项所需获取最大数据量的大小。
所述的步骤S2中,所述的空间是利用测试机板卡双端口RAM可以同时读写的特性。
所述的步骤S1中,所述主线程用于执行各测试项的数据测试向量建立、数据测试获取阶段,测试站点子线程用于执行各对应测试站点的数据上传、数据处理、结果判断阶段。
所述的步骤S1中,所述的子线程为独立子线程。
进一步包括,根据芯片的规格定义,建立所需所有测试项,测试项总数为Nitem
进一步包括,根据测试机资源,建立多测试站点测试,总测试站点个数为Nsite
所述的多测试站点为2n测试站点,其中,n为大于等于1的正整数,包括但不限于2测试站点(site)、4测试站点(site)、8测试站点(site)。
具体地,以北京君正集成电路股份有限公司的一款SOC芯片的测试为例,执行流程如附图4,具体为:
1.根据芯片的规格定义,建立所需所有测试项,测试项总数为Nitem
2.根据测试机资源,建立多site测试,总site个数为Nsite。常用的如2site、4site、8site等。
3.在测试机执行各测试项,获取每个测试项执行时各阶段的测试时间。即测试向量建立(Setup)阶段、测试数据获取(Meas)阶段、测试数据上传(Upload)阶段、测试数据计算(Calc)及结果判断(Judge)阶段所需时间。如附图5为传统单Site测试执行时间图,附图6为传统多Site测试执行时间图,并且以2个Site为例。
4.根据Site个数建立线程池,可容纳线程数为Nthread=Nsite+1,其中一个为主线程,其余为各site独立子线程。
5.根据测试流程,从线程池创建主线程。
6.启动并运行主线程执行测试项1的测试向量建立及获取阶段,即Setup与Meas阶段。
7.主线程执行Site1测试项1的Upload阶段,完成后启动Site1子线程执行Site1测试项1的Calc+Judge阶段,同时主线程执行Site2测试项1的Upload阶段,待完成后启动Site2子线程执行Site2测试项1的Calc+Judge阶段。
8.如步骤7,依次由主线程执行各Site的Upload,并按顺序调度启动各Site子线程执行其对应Site的Calc+Judge阶段,然后进行线程同步,待全部执行完毕后释放各Site子线程。
9.循环执行步骤6-8,依次按顺序完成测试项1、测试项2到测试项Nitem的测试,即完成整个测试流程,如附图7为多线程多site测试执行时间图。
10.进一步地,为充分利用测试机板卡双端口RAM可以同时读写的特性,可以在步骤5创建主线程前申请并开辟专属数据空间,各测试项Meas阶段时向此空间写入获取的数据,upload阶段读取此空间的数据并通过总线上传给工作站进行处理。数据空间的大小应设为测试项所需获取最大数据量的大小。
11.根据步骤10的设置,调整步骤6-8执行的线程调度。主线程只负责各测试项的Setup+Meas阶段,并且在测试项1的Setup+Meas结束后立即启动测试项2的Setup+Meas,同时启动Site1子线程执行Upload+Calc+Judge阶段,并且在Site1的Upload结束后启动Site2子线程执行Upload+Calc+Judge,这样依次完成所有Site所有测试项的测试,最后同步各Site子线程并释放回收完成整个测试流程,如附图8为多线程数据隐藏单Site测试,附图9为多线程数据隐藏多Site测试。
12.更进一步地,可以根据步骤3对各测试项时间的获取,合并调整优化测试项,使各测试项Upload+Calc+Judge的时间小于并尽量与其Setup+Meas时间相等,这样就可以将各测试项Upload+Calc+Judge阶段最大限度地完全隐藏起来,获得更好的测试并行度,减少测试时间,降低测试成本。
以Site个数为Nsite,测试项个数为Nitem,单位测试项测试时间为Titem,单位测试项Setup、Meas、Upload、Calc、Judge阶段的测试时间分别为Tsetup、Tmeas、Tuplod、TCalc及TJudge
对比图5和图6可以看出,传统单Site测试,每个测试项都需要Setup、Meas、Upload、Calc、Judge五个阶段的测试时间,传统多Site测试,每个测试项的每个Site间Setup、Meas阶段并行执行,相当于节省了Site个数减一倍的Setup加Meas时间,即节省(Nsite-1)*(Tsetup+Tmeas)。
对比图5和图8可以看出,单Site测试下,本发明的多线程数据隐藏方式只需要各测试项的Setup、Meas时间,每个测试项的Upload、Calc、Judge阶段都隐藏到了后一测试项的Setup、Meas阶段,相当于比传统单Site测试节省了测试项个数减一倍的Upload、Calc、Judge时间,即节省(Nitem-1)*(Tuplod+TCalc+TJudge)。
对比图6和图9可以看出,多Site测试下,本发明的多线程数据隐藏方式每个测试项的Upload、Calc、Judge阶段也都隐藏到了后一测试项的Setup、Meas阶段,Site间Setup、Meas阶段为并行执行,相当于比传统多Site测试节省了测试项个数减一并乘以Site个数倍的Upload、Calc、Judge时间,即节省Nsite*(Nitem-1)*(Tuplod+TCalc+TJudge)。
对比图5和图9可以看出,本发明的多线程数据隐藏方式比传统单Site测试,不仅每个测试项Site间Setup、Meas阶段并行执行,前一测试项的Upload、Calc、Judge阶段还都会被隐藏到后一测试项的Setup、Meas阶段,节省了
(Nsite-1)*Nitem*(Tsetup+Tmeas)+Nsite*(Nitem-1)*(Tuplod+TCalc+TJudge)
=(Nsite-1)*(Nitem-1)*(Tsetup+Tmeas)+(Nsite-1)*(Tsetup+Tmeas)
+(Nsite-1)*(Nitem-1)*(Tuplod+TCalc+TJudge)+(Nitem-1)*(Tuplod+TCalc+TJudge)
=(Nsite-1)*(Nitem-1)*Titem+(Nsite-1)*(Tsetup+Tmeas)+(Nitem-1)*(Tuplod+TCalc+TJudge)
即相当于节省了Site个数减一乘以测试项个数减一倍的单位测试项时间加Site个数减一倍的Setup、Meas时间和测试项个数减一倍的upload、Calc、Judge时间,而且,随Site个数和测试项数目的增加而增加,在更多的测试项数目需求更多的Site个数应用下会获得更高的测试收益,更大地减少测试时间。
由此可见,本发明方法无论在单Site还是多Site测试都能够完全隐藏测试数据上传、处理及判定阶段,获得非常理想的并行度,可以成倍地减少测试时间,极大地降低了测试成本,获得很好的使用效益。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种基于多线程技术提高芯片测试效率的方法,其特征在于,包括以下步骤:
S1,根据芯片的规格定义,建立所需所有测试项,测试项总数为Nitem;
S2,根据测试机资源,建立多测试站点测试,总测试站点个数为Nsite;
S3,在测试机执行各测试项,获取每个测试项执行时各阶段的测试时间;
S4,根据步骤S3对各测试项时间的获取,合并调整优化测试项,使各测试项的数据上传、数据处理和结果判断时间的总和小于等于其数据建立和数据获取时间的总和;
S5,根据测试站点个数建立线程池,可容纳线程数为Nthread=Nsite+1 ,其中一个为主线程,其余为各测试站点独立子线程;
S6,根据测试流程,从线程池创建主线程,并在创建主线程前申请并开辟专属数据空间,各测试项的数据获取阶段时向此空间写入获取的数据,数据上传阶段读取此空间的数据并通过总线上传给工作站进行处理;
S7,启动并运行主线程执行测试项1的测试向量建立及获取阶段;
S8,根据步骤S6的设置,执行的线程调度:所述的主线程只负责各测试项的测试向量建立和数据获取阶段,并且在测试项1的测试向量建立和数据获取结束后立即启动测试项2的测试向量建立和数据获取,同时启动测试站点1子线程执行数据上传和数据处理以及结果判断阶段,并且在测试站点1的数据上传结束后启动测试站点2子线程执行数据上传和数据处理以及结果判断,这样以此类推,依次完成所有测试站点所有测试项的测试;
S9,最后同步各测试站点子线程并释放回收完成整个测试流程。
2.根据权利要求1所述的一种基于多线程技术提高芯片测试效率的方法,其特征在于,所述的步骤S2中,数据空间的大小设为测试项所需获取最大数据量的大小。
3.根据权利要求1所述的一种基于多线程技术提高芯片测试效率的方法,其特征在于,所述的步骤S1中,主线程用于执行各测试项的数据测试向量建立、数据测试获取阶段,测试站点子线程用于执行各对应测试站点的数据上传、数据处理、结果判断阶段。
4.根据权利要求1所述的一种基于多线程技术提高芯片测试效率的方法,其特征在于,所述的步骤S1中,子线程为独立子线程。
5.根据权利要求1所述的一种基于多线程技术提高芯片测试效率的方法,其特征在于,所述的多测试站点为2n测试站点,其中,n为大于等于1的正整数。
6.根据权利要求5所述的一种基于多线程技术提高芯片测试效率的方法,其特征在于,所述的2n测试站点优选为2测试站点、4测试站点、8测试站点。
CN201910931907.2A 2019-09-29 2019-09-29 一种基于多线程技术提高芯片测试效率的方法 Active CN112578260B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910931907.2A CN112578260B (zh) 2019-09-29 2019-09-29 一种基于多线程技术提高芯片测试效率的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910931907.2A CN112578260B (zh) 2019-09-29 2019-09-29 一种基于多线程技术提高芯片测试效率的方法

Publications (2)

Publication Number Publication Date
CN112578260A CN112578260A (zh) 2021-03-30
CN112578260B true CN112578260B (zh) 2022-06-28

Family

ID=75111076

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910931907.2A Active CN112578260B (zh) 2019-09-29 2019-09-29 一种基于多线程技术提高芯片测试效率的方法

Country Status (1)

Country Link
CN (1) CN112578260B (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1245810C (zh) * 2002-09-03 2006-03-15 华为技术有限公司 一种通信设备测试仪中多线程测试方法
CN1212569C (zh) * 2002-11-01 2005-07-27 英业达股份有限公司 多线程自动测试方法
CN101364219B (zh) * 2007-08-06 2010-06-23 北京华大泰思特半导体检测技术有限公司 面向集成电路测试的测试数据转换方法
KR20110080073A (ko) * 2010-01-04 2011-07-12 삼성전자주식회사 멀티쓰레드 환경을 테스트하는 커버리지 장치 및 방법
CN106546899A (zh) * 2015-09-16 2017-03-29 中国电力科学研究院 一种电能表用rs-485芯片自动测试系统
CN108333497A (zh) * 2017-11-28 2018-07-27 上海华力微电子有限公司 一种芯片测试的方法

Also Published As

Publication number Publication date
CN112578260A (zh) 2021-03-30

Similar Documents

Publication Publication Date Title
US10545189B2 (en) Granular dynamic test systems and methods
US8127187B2 (en) Method and apparatus of ATE IC scan test using FPGA-based system
CN103744009B (zh) 一种串行传输芯片测试方法、系统及集成芯片
JP4380907B2 (ja) 複数の仮想テスタをサポートする半導体テストシステム
US8438437B2 (en) Structures and control processes for efficient generation of different test clocking sequences, controls and other test signals in scan designs with multiple partitions, and devices, systems and processes of making
TW200809232A (en) Test module with blocks of universal and specific resources
CN113514759B (zh) 一种多核测试处理器及集成电路测试系统与方法
CN106597250A (zh) 一种可编程逻辑器件测试方法及设备
CN106816178B (zh) 一种单芯片上多块嵌入式存储器的内建自测试设计方法
CN114002577A (zh) 一种芯片测试方法、装置、设备及可读存储介质
CN112578260B (zh) 一种基于多线程技术提高芯片测试效率的方法
CN112578259B (zh) 一种具有数据空间设置的线程调度方法
CN108957301B (zh) 用于可测试芯片的测试方法、装置及可测试芯片内置电路
CN111693848A (zh) 一种SiP模块的电参数测试程序注入及多模测试实现方法
CN112579367B (zh) 一种测试过程中设置数据空间的处理方法
CN108334428B (zh) 一种系统功能的并行测试方法
CN112579306B (zh) 一种线程设置和线程调度的方法
CN112579262B (zh) 一种具有测试项调整的多线程并行的处理方法
CN102183727B (zh) 一种具有检错功能的边界扫描测试方法
KR20150058041A (ko) 유연성 있는 테스트 사이트 동기화
JP3257425B2 (ja) テスト回路及びテスト方法
JP2005528596A (ja) マルチタスク・アルゴリズミック・パターン・ジェネレータを有する半導体試験システム
US20150377960A1 (en) Simultaneous transition testing of different clock domains in a digital integrated circuit
TWI334187B (en) Wafer, test system thereof, test method thereof and test fixture thereof
US9557382B1 (en) Inter-block scan testing with share pads

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant