系统芯片的自动化测试方法、装置、芯片、设备及系统与流程

文档序号:32619131发布日期:2022-12-20 22:11阅读:86来源:国知局
系统芯片的自动化测试方法、装置、芯片、设备及系统与流程

1.本技术实施例涉及芯片技术领域,特别涉及一种系统芯片的自动化测试方法、装置、芯片、设备及系统。


背景技术:

2.传统的系统芯片(system on chip,soc)的测试高度依赖可测性设计(design for testability,dft),可测性设计可以提供高故障覆盖率的测试激励,保证半导体测试可以用最小的时间成本筛选出有故障的系统芯片。但是随着系统芯片中软硬件复杂度的提高,许多问题无法或很难抽象出相应的故障模型,这部分测试一般使用自动测试机台(automatic test equipment,ate)进行测试。
3.目前,自动测试机台在测试系统芯片时,通常是通过无盘启动rom接口(boot rom)或者旁路接口下载一段测试程序到系统芯片中,系统芯片运行测试程序后返回测试结果,或者,通过一个旁路接口对系统芯片的内部直接访问。但是,这种两种测试方法的测试速度都比较慢,且系统芯片的安全性存在隐患。


技术实现要素:

4.本技术实施例提供了一种系统芯片的自动化测试方法、装置、芯片、设备及系统,用于解决通过下载测试程序来测试系统芯片时,测试速度较慢,系统芯片的安全性存在隐患的问题。所述技术方案如下:一方面,提供了一种系统芯片的自动化测试方法,所述方法包括:在系统芯片中配置测试单元;接收所述自动测试机台发送的测试内容;根据所述测试内容调用所述系统芯片中配置的测试单元,根据所述测试单元对所述系统芯片进行测试;根据测试后得到的测试结果生成指纹,将所述指纹发送给所述自动测试机台,所述自动测试机台用于将所述指纹与标准指纹进行比较,并根据比较结果确定所述系统芯片的测试结果。
5.在一种可能的实现方式中,所述根据所述测试内容调用所述系统芯片中配置的测试单元,根据所述测试单元对所述系统芯片进行测试,包括:当所述测试内容包括单个测试单元的指针和测试参数时,根据所述指针调用所述系统芯片中配置的测试单元,根据所述测试单元和所述测试参数对所述系统芯片进行测试。
6.在一种可能的实现方式中,所述根据所述测试内容调用所述系统芯片中配置的测试单元,根据所述测试单元对所述系统芯片进行测试,包括:当所述测试内容包括多个测试单元的调用信息和测试参数时,根据所述调用信息依次调用所述系统芯片中配置的测试单元,根据所述测试单元和所述测试参数对所述系统
芯片进行测试。
7.在一种可能的实现方式中,在所述接收所述自动测试机台发送的测试内容之前,所述方法还包括:向所述自动测试机台发送随机数;接收所述自动测试机台发送的第一消息认证码,所述第一消息认证码是所述自动测试机台利用约定密码对接收到的所述随机数计算消息认证码后生成的;利用所述约定密码对所述随机数计算消息认证码,得到第二消息认证码;当所述第一消息认证码和所述第二消息认证码相同时,确定认证成功,触发执行所述接收所述自动测试机台发送的测试内容的步骤。
8.在一种可能的实现方式中,所述方法还包括:当所述第一消息认证码与所述第二消息认证码不同时,确定认证失败;当认证失败的次数超过预设的次数阈值时,烧写一次性可编程otp标志位,所述otp标志位表示所述系统芯片不再进行自动化测试。
9.在一种可能的实现方式中,当所述系统芯片中配置有多个测试单元时,所述多个测试单元对应于至少两个层级,且不同层级的测试单元之间能够相互调用。
10.在一种可能的实现方式中,当所述多个测试单元对应于三个层级时,第一层级的测试单元用于调用所述系统芯片中的基础功能函数,第二层级的测试单元用于调用所述第一层级的测试单元以测试所述系统芯片中的中级功能函数;第三层级的测试单元用于调用所述第二层级的测试单元和/或所述第一层级的测试单元以测试所述系统芯片中的高级功能函数。
11.在一种可能的实现方式中,当所述系统芯片包括多个处理器和多个待测的功能dut时,所述接收所述自动测试机台发送的测试内容,包括:每个处理器从所述自动测试机台发送的多个测试内容中选择与自身的处理器标识对应的测试内容;所述根据所述测试内容调用所述系统芯片中配置的测试单元,根据所述测试单元对所述系统芯片进行测试,包括:所述多个处理器根据所述测试内容并行调用所述系统芯片中配置的测试单元,根据多个所述测试单元对多个dut进行并行测试。
12.一方面,提供了一种系统芯片的自动化测试方法,所述方法包括:生成测试内容;将所述测试内容发送给系统芯片,所述系统芯片用于根据所述测试内容调用所述系统芯片中配置的测试单元,根据所述测试单元对所述系统芯片进行测试,根据测试后得到的测试结果生成指纹,将所述指纹发送给自动化测试机台;接收所述系统芯片发送的所述指纹;将所述指纹与标准指纹进行比较,根据比较结果确定所述系统芯片的测试结果。
13.在一种可能的实现方式中,所述方法还包括:获取所述测试内容对应的标准测试结果,根据所述标准测试结果生成标准指纹;所述根据比较结果确定所述系统芯片的测试结果,包括:当所述指纹与所述标准指纹相同时,确定所述系统芯片的测试成功;当所述指纹与所述标准指纹不同时,确定所述系统芯片的测试失败。
14.一方面,提供了一种系统芯片的自动化测试装置,所述装置包括:
配置模块,用于在系统芯片中配置测试单元;接收模块,用于接收所述自动测试机台发送的测试内容;测试模块,用于根据所述测试内容调用所述系统芯片中配置的测试函数,根据所述测试单元对所述系统芯片进行测试;发送模块,用于根据测试后得到的测试结果生成指纹,将所述指纹发送给所述自动测试机台,所述自动测试机台用于将所述指纹与标准指纹进行比较,并根据比较结果确定所述系统芯片的测试结果。
15.一方面,提供了一种系统芯片的自动化测试装置,所述装置包括:生成模块,用于生成测试内容;发送模块,用于将所述测试内容发送给系统芯片,所述系统芯片用于根据所述测试内容调用所述系统芯片中配置的测试单元,根据所述测试单元对所述系统芯片进行测试,根据测试后得到的测试结果生成指纹,将所述指纹发送给自动化测试机台;接收模块,用于接收所述系统芯片发送的所述指纹;比较模块,用于将所述指纹与标准指纹进行比较,根据比较结果确定所述系统芯片的测试结果。
16.一方面,提供了一种系统芯片,所述系统芯片包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上所述的系统芯片的自动化测试方法。
17.一方面,提供了一种自动测试机台,所述自动测试机台包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上所述的系统芯片的自动化测试方法。
18.一方面,提供了一种自动化测试系统,所述自动化测试系统包括如上所述的系统芯片和自动测试机台。
19.本技术实施例提供的技术方案的有益效果至少包括:由于系统芯片中配置有测试单元,所以,自动测试机台只需要向系统芯片发送测试内容即可,无需向系统芯片发送测试单元,系统芯片能够根据测试内容调用自身配置的测试单元来完成测试,从而减少了测试过程中的数据传输,提高了测试速度。
20.系统芯片向自动测试机台发送的是测试结果的指纹,由于指纹的数据量小于测试结果的数据量,所以,可以减少数据传输,提高测试速度。另外,根据指纹无法反推出测试结果,所以,可以提高系统芯片的安全性。
21.系统芯片根据消息认证码对自动测试机台进行认证,在认证成功后进行测试,在认证失败的次数超过预设的次数阈值时,烧写otp标志位,以通过该otp标志位来表示系统芯片不再进行自动化测试,从而避免系统芯片丢失后被测试。
22.当系统芯片包括多个处理器和多个dut时,多个处理器能够根据测试内容并行调用系统芯片中配置的测试单元,根据多个测试单元对多个dut进行并行测试,从而提高了测试效率。
附图说明
23.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使
用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
24.图1是本技术一个实施例提供的系统芯片的自动化测试方法的方法流程图;图2是本技术一个实施例提供的一种测试单元的存储位置示意图;图3是本技术一个实施例提供的一种系统芯片与自动测试机台的认证流程示意图;图4是本技术一个实施例提供的一种并行测试dut的流程示意图;图5是本技术一个实施例提供的一种并行测试dut的流程示意图;图6是本技术一个实施例提供的系统芯片的自动化测试方法的方法流程图;图7是本技术一个实施例提供的调用fuse烧写函数烧写快速fuse的流程示意图;图8是本技术一个实施例提供的调用trim函数对模拟量进行调整的流程示意图;图9是本技术一个实施例提供的系统芯片的自动化测试装置的结构框图;图10是本技术一个实施例提供的系统芯片的自动化测试装置的结构框图;图11是本技术一个实施例提供的系统芯片的自动化测试装置的结构框图。
具体实施方式
25.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
26.请参考图1,其示出了本技术一个实施例提供的系统芯片的自动化测试方法的方法流程图,该系统芯片的自动化测试方法可以应用于系统芯片中。该系统芯片的自动化测试方法,可以包括:步骤101,在系统芯片中配置测试单元。
27.测试单元是指在测试系统芯片的某一项功能时调用的最小单元。在一个示例中,测试单元包括一个测试函数,或者,测试单元包括一个测试函数以及其他在测试过程中可能用到的数据、参数等,该测试函数用于单独测试系统芯片的某一项功能。在另一个实例中,测试单元包括一系列测试函数,或者,测试单元包括一系列测试函数以及其他在测试过程中可能用到的数据、参数等,这一系列的测试函数用于联合测试系统芯片的某一项功能,此时的测试单元可以理解为一个小的测试程序。需要说明的是,在系统芯片中配置的测试单元与相关技术中的自动测试机台中配置的测试单元相同。
28.本实施例中设计的测试单元可以根据系统芯片的测试需求进行设置和调整。当系统芯片中配置有多个测试单元时,多个测试单元对应于至少两个层级,且不同层级的测试单元之间能够相互调用。这样,可以通过设计调用关系来灵活测试系统芯片的不同功能,从而提高了测试的灵活性。
29.本实施例中将多个测试单元划分为三个层级,第一层级的测试单元用于调用系统芯片中的基础功能函数,第二层级的测试单元用于调用第一层级的测试单元以测试系统芯片中的中级功能函数;第三层级的测试单元用于调用第二层级的测试单元和/或第一层级的测试单元以测试系统芯片中的高级功能函数。
30.为了便于理解,下面对一些常用的测试单元进行举例说明。在实际使用时,系统芯
片中配置的测试单元可以包含例举的全部或部分测试单元,也可以包含本实施例中未例举的测试单元。
31.第一层级的测试单元用于调用以下基础功能函数来实现以下功能:(1)顺序读一段地址或固定地址中的一定长度内容,返回读取内容的指纹;(2)从一个固定地址或者连续地址搬运确定长度的数据到固定地址或者一段连续地址,其中,固定地址是处理fifo(first in first out,先进先出)的情况;(3)从一个固定地址或者连续地址搬运不确定长度的数据到固定地址或者一段连续地址,直到数据中的值与配置的测试内容中的值匹配;(4)连续读取一个地址直到该地址的值变化为预期值时,往另一个地址写入一个特定值,并返回等待时间或者读取次数,例如等待中断后清除中断动作;(5)在一段地址的数据内寻找一个与测试内容相匹配的数据,并返回该数据的地址;(6)将pll(phase locked loop,锁相环)配置为某一个频率;第二层级的测试单元用于调用以下中级功能函数实现以下功能:(1)烧写一段数据到otp(one time programmable,一次性编程),返回烧写结果的指纹;(2)烧写一段数据到flash /eeprom(electrically erasable programmable read only memory,带电可擦可编程只读存储器),返回烧写结果的指纹;(3)analog(模拟)量测量过程中,trim 配置顺序增加或减少,与外部io(input/output,输入输出)或者timer(定时器)进行handshanke(握手);(4)往一段连续或固定地址写入一段长度的数据,并从另一个固定地址或一段连续地址不断读取,并返回读取数据的指纹,比如,用作某些外设的loopback(回环)测试;(5)系统芯片自定制的一些工作流程,例如,进入低功耗工作模式或者进入最大功耗模式等,可以测量各种模式的电流;第三层级的测试单元用于调用以下高级功能函数,例如一些高级的数字信号处理函数和特定ip的定制函数,来实现以下功能:(1)对数据统计平均值、方差;(2)计算一段数据的fft(fast fourier transform,快速傅里叶变换)或者ifft(inverse fast fourier transform,快速傅里叶逆变换);(3)计算ad(模数)/da(数模)数据信噪比,线性度等;(4)为ad/da做数据采集或输出准备。
32.在设计好测试单元后,可以将这些测试单元配置在系统芯片中。具体的,可以将测试单元配置在rom中,也可以在测试开始前,将测试单元下载到片内sram(static random-access memory,静态随机存取存储器)中。
33.请参考图2,图2中的ate tester表示自动测试机台,pattern表示测试内容,soc表示系统片,ate i/f表示系统芯片的接口,test mode ctrl表示测试模式控制器,用于控制系统芯片处于测试模式或正常工作模式,ate ctrl表示机台控制器,ate dut表示待测的功能,ate function表示测试单元,且测试单元配置在rom中。
34.在配置好测试单元后,系统芯片可以与自动测试机台建立连接,以便自动测试机
台对系统芯片进行测试。对于一些高安全性要求的系统芯片,系统芯片可以使用密码(password)与自动测试机台建立连接,只有已知密码和握手协议的自动测试机台才能够建立测试认证。
35.具体的,在建立连接时,系统芯片可以向自动测试机台发送随机数;接收自动测试机台发送的第一消息认证码,第一消息认证码是自动测试机台利用约定密码对接收到的随机数计算消息认证码后生成的;利用约定密码对随机数计算消息认证码,得到第二消息认证码;当第一消息认证码和第二消息认证码相同时,确定认证成功,执行步骤102。当第一消息认证码与第二消息认证码不同时,确定认证失败,更新认证失败的次数。当认证失败的次数超过预设的次数阈值时,系统芯片烧写otp标志位,otp标志位表示系统芯片不再进行自动化测试,从而避免系统芯片丢失后被测试。
36.其中,消息认证码的算法可以是hmac(hash-based message authentication code,基于哈希运算的消息认证码)或者cmac(cipher block chaining-message authentication code,基于对称秘钥分组加密算法的消息认证码)等,本实施例中不作限定。
37.请参考图3,图3中的第一步是系统芯片向自动测试机台发送随机数(random number),第二步是自动测试机台向系统芯片发送第一消息认证码(mac),第三步是系统芯片向自动测试机台发送认证通过/失败的结果。
38.这样,系统芯片无需发送密码即可对自动测试机台进行认证,可以避免密码被泄露给其他设备时,其他设备伪装成自动测试机台来攻击系统芯片,提高了系统芯片的安全性。另外,每次发送的随机数都是不同的,即使随机数被泄露给其他设备,其他设备也无法复制该随机数来攻击系统芯片,进一步提高了系统芯片的安全性。
39.步骤102,接收自动测试机台发送的测试内容。
40.测试内容用于定义测试系统芯片的某一项功能时所需调用的测试单元和测试参数。由于系统芯片中已经配置有测试单元,所以,测试内容中无需包括测试单元的内容,从而减少了测试内容的数据量,可以减少测试过程中的数据传输,提高了测试速度。
41.在第一种实现方式中,当需要调用单个测试单元进行测试时,测试内容包括单个测试单元的指针和测试参数。
42.在第二种实现方式中,当需要调用多个测试单元进行测试时,测试内容包括多个测试单元的调用信息和测试参数。比如,调用信息是测试单元1的指针-测试单元2的指针-测试单元3的指针,则表示先调用测试单元1,再调用测试单元2,最后调用测试单元3。
43.步骤103,根据测试内容调用系统芯片中配置的测试单元,根据测试单元对系统芯片进行测试。
44.在第一种实现方式中,根据测试内容调用系统芯片中配置的测试单元,根据测试单元对系统芯片进行测试,可以包括:当测试内容包括单个测试单元的指针和测试参数时,根据指针调用系统芯片中配置的测试单元,根据测试单元和测试参数对系统芯片进行测试。
45.在第二种实现方式中,根据测试内容调用系统芯片中配置的测试单元,根据测试单元对系统芯片进行测试,可以包括:当测试内容包括多个测试单元的调用信息和测试参数时,根据调用信息依次调用系统芯片中配置的测试单元,根据测试单元和测试参数对系
统芯片进行测试。
46.步骤104,根据测试后得到的测试结果生成指纹,将指纹发送给自动测试机台,自动测试机台用于将指纹与标准指纹进行比较,并根据比较结果确定系统芯片的测试结果。
47.系统芯片向自动测试机台发送的是测试结果的指纹,由于指纹的数据量小于测试结果的数据量,所以,可以减少数据传输,提高测试速度。另外,根据指纹无法反推出测试结果,所以,可以提高系统芯片的安全性。
48.根据测试结果生成指纹的算法有很多种,本实施例中不限定具体的算法。在一个示例中,系统芯片可以采用消息摘要算法对测试结果进行计算,此时得到的指纹是消息摘要,这里所说的消息摘要算法可以是哈希算法或crc等其他压缩算法。
49.系统芯片将指纹发送给自动测试机台,自动测试机台可以根据测试内容仿真得到标准测试结果,根据标准测试结果生成标准指纹,将接收到的指纹与标准指纹进行比较,当指纹与标准指纹相同时,确定系统芯片的测试成功;当指纹与标准指纹不同时,确定系统芯片的测试失败。
50.需要说明的是,对于不会返回测试结果的测试单元,系统芯片会根据测试情况生成通过或失败的信号,将该信号发送给自动测试机台,自动测试机台根据该信号确定系统芯片的测试结果。
51.本实施例中所说的测试,不光可以包含对于电路正确性的测试,还可以包含有对于系统芯片内非易失存储器进行烧写的测试,例如,在出厂前需要对系统芯片内的otp或者flash进行烧写,可以采用本实施例提供的方法来提高效率。
52.本实施例中所说的测试方法可以应用于系统芯片的各个测试阶段,包括cp(晶圆测试)、ft(封装后测试)、system test(系统测试)、回厂测试等,并不限制于某一阶段的测试。
53.综上所述,本技术实施例提供的系统芯片的自动化测试方法,由于系统芯片中配置有测试单元,所以,自动测试机台只需要向系统芯片发送测试内容即可,无需向系统芯片发送测试单元,系统芯片能够根据测试内容调用自身配置的测试单元来完成测试,从而减少了测试过程中的数据传输,提高了测试速度。
54.系统芯片向自动测试机台发送的是测试结果的指纹,由于指纹的数据量小于测试结果的数据量,所以,可以减少数据传输,提高测试速度。另外,根据指纹无法反推出测试结果,所以,可以提高系统芯片的安全性。
55.系统芯片根据消息认证码对自动测试机台进行认证,在认证成功后进行测试,在认证失败的次数超过预设的次数阈值时,烧写otp标志位,以通过该otp标志位来表示系统芯片不再进行自动化测试,从而避免系统芯片丢失后被测试。
56.当系统芯片包括多个处理器和多个dut(design under test,待测的功能)时,多个处理器可以并行测试多个dut,请参考图4所示的并行测试流程。
57.步骤401,在系统芯片中配置测试单元。
58.其中,测试单元的配置流程详见步骤101中的描述,此处不再赘述。
59.步骤402,每个处理器从自动测试机台发送的多个测试内容中选择与自身的处理器标识对应的测试内容。
60.请参考图5,系统芯片中的机台控制器通过ate i/f接口接收到多个测试内容后,
按照测试内容对应的处理器标识,将每个测试内容分发给对应的处理器。
61.步骤403,多个处理器根据测试内容并行调用系统芯片中配置的测试单元,根据多个测试单元对多个dut进行并行测试。
62.图5中,pattern for dut1表示dut1的测试内容,pattern for dut2表示dut2的测试内容。
63.一个处理器在获取到一个测试内容后,根据该测试内容中的测试参数确定待测试的dut,这样,多个处理器可以并行测试系统芯片中的不同dut。
64.步骤404,根据测试后得到的测试结果生成指纹,将指纹发送给自动测试机台,自动测试机台用于将指纹与标准指纹进行比较,并根据比较结果确定系统芯片的测试结果。
65.当系统芯片包括多个处理器和多个dut时,多个处理器能够根据测试内容并行调用系统芯片中配置的测试单元,根据多个测试单元对多个dut进行并行测试,从而提高了测试效率。
66.请参考图6,其示出了本技术一个实施例提供的系统芯片的自动化测试方法的方法流程图,该系统芯片的自动化测试方法可以应用于自动测试机台中。该系统芯片的自动化测试方法,可以包括:步骤601,生成测试内容。
67.测试内容用于定义测试系统芯片的某一项功能时所需调用的测试单元和测试参数。由于系统芯片中已经配置有测试单元,所以,测试内容中无需包括测试单元的内容,从而减少了测试内容的数据量,可以减少测试过程中的数据传输,提高了测试速度。
68.在第一种实现方式中,当需要调用单个测试单元进行测试时,测试内容包括单个测试单元的指针和测试参数。
69.在第二种实现方式中,当需要调用多个测试单元进行测试时,测试内容包括多个测试单元的调用信息和测试参数。
70.需要说明的是,当系统芯片中包括多个处理器和多个dut时,自动测试机台生成多个测试内容,每个测试内容对应于一个处理器标识,以指示对应的处理器来测试对应的dut。
71.步骤602,将测试内容发送给系统芯片,系统芯片用于根据测试内容调用系统芯片中配置的测试单元,根据测试单元对系统芯片进行测试,根据测试后得到的测试结果生成指纹,将指纹发送给自动化测试机台。
72.步骤603,接收系统芯片发送的指纹。
73.步骤604,将指纹与标准指纹进行比较,根据比较结果确定系统芯片的测试结果。
74.在确定测试结果之前,自动测试机台需要获取测试内容对应的标准测试结果,根据标准测试结果生成标准指纹。其中,标准指纹的生成算法与指纹的生成算法相同,具体是采用一个完全正确的芯片原型进行运行得到,该芯片原型可以是eda仿真或者硬件加速器仿真。
75.当指纹与标准指纹相同时,确定系统芯片的测试成功;当指纹与标准指纹不同时,确定系统芯片的测试失败。
76.综上所述,本技术实施例提供的系统芯片的自动化测试方法,由于系统芯片中配置有测试单元,所以,自动测试机台只需要向系统芯片发送测试内容即可,无需向系统芯片
发送测试单元,系统芯片能够根据测试内容调用自身配置的测试单元来完成测试,从而减少了测试过程中的数据传输,提高了测试速度。
77.系统芯片向自动测试机台发送的是测试结果的指纹,由于指纹的数据量小于测试结果的数据量,所以,可以减少数据传输,提高测试速度。另外,根据指纹无法反推出测试结果,所以,可以提高系统芯片的安全性。
78.下面以测试单元为fuse烧写函数(fuse burn function),且调用fuse烧写函数烧写快速fuse为例,对测试流程进行说明,请参考图7。
79.(1)通过ate i/f接口向ram中写入待烧写的数值(values to be burn)。
80.(2)机台控制器接收到测试内容后向cpu发送测试内容,cpu根据测试内容调取内置在rom中的fuse烧写函数。
81.(3)cpu执行fuse烧写函数,读取ram中写入的数值。
82.(4)cpu将数值顺序烧写到fuse中,完成后cpu读取全部已烧写的内容并计算指纹。
83.(5)cpu将指纹返回给ate i/f接口。
84.(6)ate i/f接口向指纹发送给ate tester,ate tester根据指纹判断烧写是否成功。
85.下面对比本发明和传统方式,对比fuse烧写时需要的周期数和存储空间要求。
86.假设需要烧写1kb的数据,每次烧写otp的固定流程是,首先要写入地址到otp 控制器的寄存器,然后写入数据到otp 控制器的寄存器,随后配置otp控制寄存器进行对应地址的写入操作,随后读取otp控制器的寄存器确认写入完成,可以写入下一笔数据。
87.写入完成后,需要读取otp的数据确认是否写入成功,读取每个地址的过程是,写入地址到otp 控制器的寄存器,随后配置otp控制寄存器进行对应地址读取操作,随后读取otp控制器的寄存器确认读取完成,随后可以从otp控制器的数据寄存器中读取otp对应地址中存储的数据。
88.假设ate接口可以运行到50mhz频率,cpu可以运行到300mhz,ate访问一次内部空间的word的需要30个周期,而cpu需要5个周期(实际cpu对于连续地址操作可以采用burst方式进行,且可以打开cache,速度会更快)。对于1kb数据的烧写,如果采用传统方式和本发明的方式,需要的时间对比。
89.传统方式中需要分别进行读写操作,所以,需要2kb的存储空间;本发明中只需要进行读操作,写入的指纹的数据量很小,可以忽略不计,所以,需要1kb的存储空间。
90.下面以测试单元为trim函数(trim function),且调用trim函数对模拟(analog)量进行调整为例,对测试流程进行说明,请参考图8。
91.(1)通过atei/f接口向ram中写入测试内容(trim program),该测试内容包括analog的初始化和trim流程控制。
92.(2)机台控制器接收到测试内容后向cpu发送测试内容,启动cpu。
93.(3)cpu调用rom中存储的trim函数的参数,参数包括analog trim值的寄存器地
址、初始值、每次增加值的配置以及握手的条件(采用io)。
94.(4)cpu准备完毕后在analog io设置第一个trim值,并在gpio控制器的端口发出握手请求,等待ate tester响应。
95.(5)ate tester等待系统芯片发出握手请求后,在analog io进行analog 量的测量,测量完毕后对系统芯片的握手请求进行响应。
96.(6)得到握手请求的响应后,将trim寄存器的值配置为当前值++,通过analog io输出,在gpio控制器的端口发出握手请求,等待ate tester响应。
97.(7)重复上述两个步骤直到trim设置完毕后停止,cpu返回测试完成。
98.(8)ate tester根据trim初始值和每次握手后trim增加的约定,对比analog量的测试项,得到最理想情况下的trim值并记录。
99.请参考图9,其示出了本技术一个实施例提供的系统芯片的自动化测试装置的结构框图,该系统芯片的自动化测试装置可以应用于系统芯片中。该系统芯片的自动化测试装置,可以包括:配置模块910,用于在系统芯片中配置测试单元;接收模块920,用于接收自动测试机台发送的测试内容;测试模块930,用于根据测试内容调用系统芯片中配置的测试函数,根据测试单元对系统芯片进行测试;发送模块940,用于根据测试后得到的测试结果生成指纹,将指纹发送给自动测试机台,自动测试机台用于将指纹与标准指纹进行比较,并根据比较结果确定系统芯片的测试结果。
100.在一个可选的实施例中,测试模块930,还用于:当测试内容包括单个测试单元的指针和测试参数时,根据指针调用系统芯片中配置的测试单元,根据测试单元和测试参数对系统芯片进行测试。
101.在一个可选的实施例中,测试模块930,还用于:当测试内容包括多个测试单元的调用信息和测试参数时,根据调用信息依次调用系统芯片中配置的测试单元,根据测试单元和测试参数对系统芯片进行测试。
102.在一个可选的实施例中,发送模块940,还用于在接收自动测试机台发送的测试内容之前,向自动测试机台发送随机数;接收模块920,还用于接收自动测试机台发送的第一消息认证码,第一消息认证码是自动测试机台利用约定密码对接收到的随机数计算消息认证码后生成;请参考图10,该装置还包括加密模块950,用于利用约定密码对随机数计算消息认证码,得到第二消息认证码;确定模块960,用于当第一消息认证码和第二消息认证码相同时,确定认证成功,触发执行接收自动测试机台发送的测试内容的步骤。
103.在一个可选的实施例中,确定模块960,还用于当第一消息认证码与第二消息认证码不同时,确定认证失败;该装置还包括烧写模块970,用于当认证失败的次数超过预设的次数阈值时,烧写一次性可编程otp标志位,otp标志位表示系统芯片不再进行自动化测试。
104.在一个可选的实施例中,当系统芯片中配置有多个测试单元时,多个测试单元对
应于至少两个层级,且不同层级的测试单元之间能够相互调用。
105.在一个可选的实施例中,当多个测试单元对应于三个层级时,第一层级的测试单元用于调用系统芯片中的基础功能函数,第二层级的测试单元用于调用第一层级的测试单元以测试系统芯片中的中级功能函数;第三层级的测试单元用于调用第二层级的测试单元和/或第一层级的测试单元以测试系统芯片中的高级功能函数。
106.在一个可选的实施例中,当系统芯片包括多个处理器和多个dut时,接收模块920,还用于通过每个处理器从自动测试机台发送的多个测试内容中选择与自身的处理器标识对应的测试内容;测试模块930,还用于:通过多个处理器根据测试内容并行调用系统芯片中配置的测试单元,根据多个测试单元对多个dut进行并行测试。
107.综上所述,本技术实施例提供的系统芯片的自动化测试装置,由于系统芯片中配置有测试单元,所以,自动测试机台只需要向系统芯片发送测试内容即可,无需向系统芯片发送测试单元,系统芯片能够根据测试内容调用自身配置的测试单元来完成测试,从而减少了测试过程中的数据传输,提高了测试速度。
108.系统芯片向自动测试机台发送的是测试结果的指纹,由于指纹的数据量小于测试结果的数据量,所以,可以减少数据传输,提高测试速度。另外,根据指纹无法反推出测试结果,所以,可以提高系统芯片的安全性。
109.系统芯片根据消息认证码对自动测试机台进行认证,在认证成功后进行测试,在认证失败的次数超过预设的次数阈值时,烧写otp标志位,以通过该otp标志位来表示系统芯片不再进行自动化测试,从而避免系统芯片丢失后被测试。
110.当系统芯片包括多个处理器和多个dut时,多个处理器能够根据测试内容并行调用系统芯片中配置的测试单元,根据多个测试单元对多个dut进行并行测试,从而提高了测试效率。
111.请参考图11,其示出了本技术一个实施例提供的系统芯片的自动化测试装置的结构框图,该系统芯片的自动化测试装置可以应用于自动测试机台中。该系统芯片的自动化测试装置,可以包括:生成模块1110,用于生成测试内容;发送模块1120,用于将测试内容发送给系统芯片,系统芯片用于根据测试内容调用系统芯片中配置的测试单元,根据测试单元对系统芯片进行测试,根据测试后得到的测试结果生成指纹,将指纹发送给自动化测试机台;接收模块1130,用于接收系统芯片发送的指纹;比较模块1140,用于将指纹与标准指纹进行比较,根据比较结果确定系统芯片的测试结果。
112.在一个可选的实施例中,生成模块1110,还用于获取测试内容对应的标准测试结果,根据标准测试结果生成标准指纹;比较模块1140,还用于当指纹与标准指纹相同时,确定系统芯片的测试成功;当指纹与标准指纹不同时,确定系统芯片的测试失败。
113.综上所述,本技术实施例提供的系统芯片的自动化测试装置,由于系统芯片中配置有测试单元,所以,自动测试机台只需要向系统芯片发送测试内容即可,无需向系统芯片
发送测试单元,系统芯片能够根据测试内容调用自身配置的测试单元来完成测试,从而减少了测试过程中的数据传输,提高了测试速度。
114.系统芯片向自动测试机台发送的是测试结果的指纹,由于指纹的数据量小于测试结果的数据量,所以,可以减少数据传输,提高测试速度。另外,根据指纹无法反推出测试结果,所以,可以提高系统芯片的安全性。
115.本技术一个实施例提供了一种系统芯片,所述系统芯片包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上所述的系统芯片的自动化测试方法。
116.本技术一个实施例提供了一种自动测试机台,所述自动测试机台包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上所述的系统芯片的自动化测试方法。
117.本技术一个实施例提供了一种自动化测试系统,所述自动化测试系统包括如上所述的系统芯片和自动测试机台。
118.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
119.以上所述并不用以限制本技术实施例,凡在本技术实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术实施例的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1