一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于测试一个或多个被测器件的自动化测试设备、过程和计算机程序,其中不同的测试活动利用被测器件资源的子集的制作方法

2022-06-16 12:55:00 来源:中国专利 TAG:


1.根据本发明的实施例涉及自动化测试设备。根据本发明的其他实施例涉及系统级测试。根据本发明的其他实施例涉及片上系统测试。根据本发明的实施例涉及覆盖测试。


背景技术:

2.尽管某些设备通过了结构和/或参数测试,但它们未能通过系统级测试(slt),这是经验观察或事实。这通常归因于结构测试期间不切实际的测试条件。
3.例如,与系统级测试相比,结构测试期间跨管芯区域的活动模式非常不同。结构测试大部分时间都花在频率非常低但模式活动非常高的移位操作上。这会导致电源负载不自然,因此电压曲线与管芯上的位置和时间之间的关系是不切实际的。
4.另一个示例是,由于自动测试模式生成的困难,电源域交叉和/或时钟域交叉通常不包括在结构测试中。该区域的故障既不会被敏感化,也不会被检测到。
5.结构测试受到不切实际的测试条件的影响,它们针对出色的故障检测能力进行了优化。相反,slt完全由合法用户场景组成。在不知道任何故障模型的情况下,人们一致认为或普遍认为未通过slt会识别出真正坏的器件。
6.系统级测试存在某些缺点,例如slt绝不是详尽无遗的,因为被测器件(dut)在仅一个选定的环境中仅运行一小部分可能的用途和场景,例如电源电压、频率、温度。
7.另一个缺点是slt未通过难以调试,因为故障敏感和检测之间的时间可能非常长和/或所有活动的确切顺序未知和/或slt的模拟时间将太长。
8.此外,slt的运行时间很长,十分钟或更长时间也不例外。
9.此外,slt很难在测试室中部署,因为针对每个dut,必须维护大量的系统板。
10.需要改进系统级测试,以在可能的用户场景、运行时长和实用性之间提供更好的权衡。


技术实现要素:

11.根据本发明的实施例包括自动化测试设备,用于测试一个或多个被测器件(dut),例如片上系统(soc)。自动化测试设备(ate)被配置为自动、动态地生成一个或多个(优选地多个)测试场景,测试场景包括多个测试活动。不同的测试活动(例如a1、a2、a3)利用dut资源的子集,这些子集可以重叠,例如a1:cpu2、mem3,a2:mem3,a3:mpeg。自动化测试设备被配置为生成多个测试场景,使得与测试场景的多个测试活动相关联的dut的资源不相互冲突。
12.可以预计片上系统测试(ocst)会发现比slt更多的相关问题,因为与slt相比,它使dut暴露于更多的合法测试条件。当在测试活动的组合期间发生问题时,该问题可以被认为是相关的,这可以模拟真实用例或成为真实用例的一部分。
13.ocst可能会改变外部测试条件,例如电源电压和频率,以使故障和/或内部测试条件(例如测试活动的强度,例如数据移动的速度)敏感,以便使工作负载相关的故障敏感。一
旦对故障敏感,ocst就可以提供良好的可观察性来检测未通过行为。
14.ocst可以通过显示它能够找到slt未通过的哪个子集来证明其有效性。换句话说,ocst可能能够找到slt的未通过子集。
15.理想情况下,ocst测试可以在模拟环境中重现,例如用于调试。ocst还应利用现有的片上资源,例如用于测试的设计(dft)、用于调试的设计(dfd)、扫描链、逻辑内置自测(lbist)和/或内存内置自测(mbist)。此外,在多核dut和多个ate资源之间的接口处可以支持多线程。
16.在优选实施例中,给定测试场景的多个测试活动被配置为同时执行。
17.由于ate被配置为生成测试场景,其中测试活动使用不重叠的dut资源,因此测试场景的测试活动不会相互冲突。也就是说,可以通过同时执行给定测试场景的测试活动来加快测试。
18.本发明的总体思路是使用dut资源同时在dut上运行大量简单、现实的自检测试活动,例如数据块移动或测试活动强度和并发的变化组合中的内置自检。每个测试活动可以检查选定或涉及的ip块,但也可以通过加载电源、时钟树和热耦合来影响其他块的测试条件。
19.根据实施例,测试活动中的一个或多个与一个或多个测试参数(例如电压、速度、数据传输的大小、数据传输之间的时间、总数据传输被分割成的块大小等)相关联。测试参数控制测试活动的行为。测试参数由相应的测试参数值表征,例如开/关、5v、50gb/s等,和/或与一个或多个例如用于动态创建测试参数值的约束或限值(limit)相关联。
20.可以在包括一个或多个测试场景的测试序列中执行具有不同参数值的相同测试活动。测试活动可与一个以上的测试参数和/或约束相关联。例如,作为测试参数(诸如电压)的值的测试参数值可以随测试活动而变化。测试活动也可能有一些约束或限制,例如,以保护dut或dut资源,或者避免在实际使用中不会发生的场景。这种约束可能是受限的写入速度、温度限值、内存的受限使用等。
21.根据实施例,测试活动中的一个或多个的特征在于一个或多个测试参数值超出预定限制(limitation)或超出芯片规范,例如太低的电压值和/或太快的频率。
22.超出或略微超出预定限制或芯片规范的dut测试结果可能与在预义限制或芯片规范内的dut性能相关。也就是说,在芯片规范之外具有良好测试结果的dut可能暗示在芯片规范内dut的良好性能。相反,芯片规范之外的测试未通过不被认为是芯片规范内未通过测试的硬提示或证明,而是表明存在缺陷。
23.根据实施例,在与给定测试场景的多个测试活动相关联的被测器件的资源不相互冲突的约束下,随机选择给定测试场景的多个测试活动,以便避免来自不同测试活动的对使用或测试参数值的冲突要求。
24.为了测试在真实工作环境中发生的活动或测试活动之间的未知交互,需要在测试场景中随机混合测试活动。可参数化测试活动的随机化涵盖了本地工作负载的许多组合,因此模拟了大量被认为是造成许多系统级故障的实际工作负载模式。
25.在优选实施例中,自动化测试设备包括用于生成测试场景的约束求解器,以防止在被测器件的资源之间发生冲突。
26.每个测试活动都可有测试参数和可选约束。例如,数据块写入和回读测试活动可
以具有初始时间延迟、块大小、起始地址、子块大小、回读之前的时间延迟的测试参数。约束也可以在测试场景级别,涉及来自多个测试活动的测试参数。
27.工作站或控制器(例如片上ocst控制器或ocst卡)可以使用约束求解器从测试活动自动生成测试场景。约束求解器匹配可以同时共存而不违反资源约束的测试活动。
28.在优选实施例中,测试活动中的一个或多个包括激活布置在被测器件上的压力发生器,例如片上压力发生器,例如到内部和/或外部总线的流量发生器。
29.例如,现有的或新的用于测试的设计(dft)结构可以产生受控压力并增加可观察性,以增加检测的可能性(或用于更可能的故障检测)。压力发生器可以包括到内部总线的流量发生器,和/或到外部输入的流量发生器,以便模拟来自遗漏的外部器件的流量。压力发生器允许在选定的封装ip块中运行内置自测(bist),例如内存或逻辑内置自测(mbist、lbist)。此外,压力发生器可以运行输入/输出(i/o)环回测试。此外,压力发生器可以使用封装器(例如ieee1500封装器)隔离ip块,并将其扫描链切换到线性反馈移位寄存器(lfsr)。
30.根据实施例,自动化测试设备被配置为生成测试序列,例如测试场景的一系列测试步骤。
31.生成测试场景的测试序列,以测试并发测试活动的不同组合,以模拟可能的现实工作负载组合。
32.根据实施例,测试序列包括具有相同测试活动的两个或更多个测试场景,其中测试场景相差至少一个测试参数值。
33.测试序列可以包括具有不同测试参数值的相同测试活动的测试场景,以便测试测试参数对测试结果的影响。仅更改dut的ip块的一个测试参数值也可能影响dut的另一个ip块。
34.此外,以相同的测试活动但不同的测试参数值进行测试场景可以进一步帮助在测试评估过程中定位有故障的ip块。
35.在优选实施例中,测试序列的多个测试场景是随机选择和/或排序的,以便模拟现实的工作负载模式,例如通过自动测试设备或通过控制器进行。
36.测试序列的测试场景的随机化通过创建或生成真实的工作负载来进一步改进测试过程。理想情况下,测试场景是相互独立的,即测试场景执行顺序的变化不预期改变dut的行为。该场景执行顺序的随机化可以例如测试来自先前测试场景的暂置热量或暂置数据是否会影响当前测试场景。
37.在优选实施例中,自动化测试设备被配置为生成测试序列,使得测试序列被配置为由控制器执行以收集测试数据。
38.生成的测试序列由控制器或ocst控制器执行。控制器的任务是触发多个测试活动的执行并读出测试结果,例如通过/未通过结果和/或测量结果。控制器知道使用哪个测试参数值执行哪个测试场景。发生错误时需要调试。
39.根据实施例,控制器是片上处理器,例如连同操作系统,或控制器卡,例如作为自动测试设备的一部分,被配置为与自动测试设备和被测器件进行通信。
40.控制器在dut上执行测试序列,并向ate提供测量数据或测量结果。ate中带有操作系统的片上处理器或控制器卡将测量值或测试结果或从dut收集的数据传送到ate。
41.在优选实施例中,控制器包括一个或多个接口,该接口被配置为读出dut数据,例如存储器数据和/或被测器件传感器数据,例如片上传感器数据。因此,ate被配置为设置控制器以读出dut数据和/或dut传感器数据。
42.通过接口读出dut测试数据和/或dut传感器数据通过允许将结果数据和/或结果传感器数据与预期结果数据或预期传感器数据进行比较来进一步改进测试。控制器、ocst控制器优选地是片上处理器以及可选的测试操作系统,其与片上ijtag接口以便读出片上传感器数据。
43.根据实施例,控制器接口到分布在被测器件区域上的一个或多个传感器,使得控制器被配置为读出一个或多个传感器的传感器测试数据。因此,自动测试设备被配置为设置控制器以读出分布在控制器所包括的被测器件区域上的一个或多个传感器的传感器测试数据。
44.无论控制器是片上处理器还是与dut或ate工作站通信的ocst控制卡,控制器都可以包括分布在dut管芯区域上的附加传感器,以便检测局部异常。应用的传感器可以包括例如温度、电流和/或电压传感器。
45.在优选实施例中,控制器被配置为在收集的测试数据满足预定条件(例如超过一个或多个预定阈值)的情况下作出反应,例如收集额外数据,例如存储的系统数据、程序计数器或存储器寄存器信息。因此,自动测试设备被配置为设置控制器以在收集的测试数据满足预定条件的情况下作出反应。
46.例如,例如在razor电路中,控制器可以接口到一个或多个传感器,该传感器具有针对温度值(例如电流/最大/最小峰值温度)、电压值(例如电流/最大/最小峰值电压)和/或时序违规的可选阈值警报能力。该警报能力可以触发例如对重要系统数据(例如程序计数器、存储器控制器寄存器)的存储,以便简化调试。
47.根据实施例,控制器被配置为将收集的测试数据传送到自动化测试设备。
48.收集的测试数据,无论是测试结果数据还是测得数据,或者任何由测得数据或测试结果数据触发的收集的数据,都由控制器提供给ate。
49.根据实施例,控制器或自动化测试设备被配置为基于测试活动约束和/或基于收集的测试数据来动态地创建测试参数值。
50.收集的测试数据可以由ate或控制器在测试过程期间进行分析,以便修改现有的测试参数值或将一个或多个测试场景添加到具有新测试参数值的测试序列中。新测试参数值的创建可以考虑给定测试活动的约束。
51.在优选实施例中,控制器或自动化测试设备被配置为分析收集的测试数据以优化测试序列,例如解决最小覆盖集问题、减少冗余和/或从不会未通过测试活动。
52.收集的测试数据不仅用于动态地创建测试参数值,还用于优化测试序列。测试的一般概念是识别那些影响测试未通过发生的测试参数。冗余测试活动可有助于评估例如单个或一小组测试参数的影响。在识别出影响最大的测试活动和/或测试场景之后,可以将测试场景或测试场景中的测试活动的数量减少到最小的测试活动集,以减少测试序列的运行时间。
53.根据实施例,自动化测试设备的控制器被配置为比较或计算在预定限制之内的系统级测试的结果与在预定限制之内和/或之外的收集的测试数据(例如被测器件数据、被测
器件传感器数据、传感器测试数据)的相关性,以优化测试时间。
54.测试在dut的预定限制或规范之外进行,并与预定限制之内的系统级测试进行比较。具有超出预定限制的正测试结果的测试活动可能表明在预定限制之内通过系统级测试。将预定限制之内的测试结果与预定限制之外的测试结果进行比较可有助于减少测试场景和/或测试场景内的测试活动的数量。它还可以帮助识别或决定测试参数值可以在预定限制之外的程度,以便在预定限制之内和之外执行的测试之间提供良好的相关性。
55.在优选实施例中,自动化测试设备包括人工智能或机器学习单元,其中控制器或自动化测试设备被配置为利用系统级测试的结果和/或利用收集的测试数据和/或利用系统级测试与收集的测试数据的比较来训练人工智能或机器学习单元,以优化测试序列。
56.此外,在优选实施例中,经过训练的人工智能或机器学习单元被配置为基于收集的测试数据来预测系统级测试的结果。
57.人工智能或机器学习单元可以用系统级测试的结果结合收集的测试数据和/或收集的传感器数据进行训练,以将系统级测试结果与收集的测试数据进行比较,以便基于收集的测试数据或测量数据来预测系统级测试的结果。
58.使用基于收集的测试数据对系统级测试结果进行预测可以进一步减少测试场景的数量和/或具有测试序列的测试场景中的测试活动的数量。
59.在优选实施例中,控制器或自动化测试设备被配置为分析收集的测试数据以获得测试结果,例如以识别有故障的被测器件和/或有故障的被测器件资源,和/或对被测器件进行分类。
60.通过例如使用统计方法分析收集的测试数据可能必须定义dut的故障ip块,或对dut的ip块进行分类。
61.在优选实施例中,经过训练的人工智能或机器学习单元被配置为分析收集的测试数据以便优化测试序列和/或获得的测试结果。
62.已经训练的机器学习单元可以进一步改进测试序列和/或改进统计方法以对dut的ip块进行分类和/或定义dut的故障ip块。
63.根据本发明的其他实施例创建了相应的方法和相应的计算机程序。
64.但是,应该注意,这些方法是基于与相应的自动化测试设备相同的考虑。此外,这些方法可以通过本文关于自动化测试设备描述的任何特征、功能和细节来补充,无论是以单独的方式还是组合的方式。
附图说明
65.随后将参照附图描述根据本技术的实施例,其中:
66.图1示出了根据实施例的包括用于测试一个或多个被测器件的自动化测试设备的测试布置的示意图;
67.图2示出了根据实施例的描述由测试布置进行的测试过程的框图;
68.图3示出了根据实施例的示例性测试活动表、约束求解器的输入;
69.图4示出了根据实施例的由约束求解器使用的示例性资源冲突表;
70.图5示出了根据实施例的由约束求解器使用的示例性测试场景表;
71.图6示出了根据实施例的由约束求解器使用的示例性测试步骤表;
72.图7示出了根据实施例的具有由约束求解器创建的示例性测试序列的空测试结果表;
73.图8示出了根据实施例的用于优化测试步骤数量的示例性每测试步骤故障表;
74.图9示出了根据实施例的slt测试和ocst测试之间的对照表;
75.图10示出了根据实施例的将收集的测试数据与用作机器学习模块的训练数据集的slt结果相结合的表;
76.图11示出了根据实施例的将收集的测试数据与用作机器学习模块的训练数据集的ocst结果相结合的表。
具体实施方式
77.在下文中,将描述不同的发明实施例和方面。此外,进一步的实施例将由所附权利要求限定。
78.应当注意,如权利要求限定的任何实施例可以由本文描述的任何细节、特征和功能来补充。此外,本文描述的实施例可以单独使用,也可以可选地由权利要求中包括的任何细节、特征和功能来补充。此外,应当注意,本文所述的各个方面可以单独使用或组合使用。因此,可以将细节添加到所述各个方面中的每一个,而无需将细节添加到所述方面中的另一个方面。还应注意,本公开内容明确或隐含地描述了可用于自动化测试设备的特征。因此,本文描述的任何特征都可以在自动化测试设备的上下文中使用。
79.此外,本文公开的与方法有关的特征和功能也可以用在被配置为执行这种功能的装置中。此外,本文公开的关于装置的任何特征和功能也可以用于相应的方法中。换言之,本文公开的方法可以由关于装置描述的任何特征和功能来补充。
80.从下面给出的详细描述和本发明实施例的附图中将更充分地理解本发明,然而,这不应被认为将本发明限制于所描述的具体实施例,而仅用于解释和理解。
81.根据图1的实施例
82.图1示出了测试布置100的示意图,测试布置100包括用于测试一个或多个被测器件(dut)120的自动化测试设备(ate)110。图1还包括示例性dut 120,该示例性dut 120包括多个dut资源130a-e。dut资源130a-e可以包括不同的ip块,例如cpu、存储器、mpeg等。
83.ate 110被配置为生成多个测试场景140a-c,每个测试场景包括多个测试活动。例如,测试场景140c包括测试活动150a-c。
84.每个测试活动被配置为利用一个或多个dut资源130a-e。例如,测试活动150a被配置为使用dut资源130e。或者例如,测试活动150b被配置为使用dut资源130c和130d。另一个示例可以是测试活动150c,其被配置为使用dut资源130a和130b。
85.自动化测试设备110被配置为生成多个测试场景,例如测试场景140a-c,使得与多个测试活动(例如测试活动)相关联150a-c的dut资源(例如dut资源130a-e)不互相冲突。例如,测试活动150a-c被分组到测试场景140c中,使得测试活动150a-c的dut资源130a-e是不冲突的,从而允许给定测试场景140c的测试活动150a-c的并发执行。
86.片上系统测试(ocst)的一般思想是使用dut资源130a-e在dut 120上同时运行大量简单、真实的测试活动,其中并发测试活动的组合和/或强度变化。每个测试活动可以检查涉及的ip模块,但也可以通过加载电源、时钟树和热耦合来影响其他ip块的测试条件。测
216c和测试参数p4 216d的第二测试活动212b。第三场景可以包括具有测试参数p3 216c和p5 216e的第三测试活动212c。第四场景可以包括具有测试参数p2 216b和测试参数p4 266d的第四测试活动212d。
100.控制器270将测试序列表260作为输入并输出测试结果表280。由测试块270提供的测试结果表280包括在dut 282上执行的测试场景262的一个或多个测试活动212的测试结果288。测试结果表280被馈送到ate 220和/或返回到控制器270。
101.ate 220或控制器270已经接受测试结果表280作为输入并且提供改进的测试序列表260和/或结果表292作为输出。
102.改进的测试序列表260还可以用作控制器270的输入,以提供新的测试结果表280,该表可以反馈到ate 220或控制器270中。
103.由ate 220或控制器270提供的结果表292包括dut资源296的通过/未通过测试结果298。另外和/或另选地,结果表292可以包括dut资源296的分类。
104.具有测试活动212所需的约束218、测试参数216和资源214的测试活动表210被提供给约束求解器250。测试活动表210或测试活动库还可以包括用于控制器270或ocst控制器270的代码池以激活或执行测试活动212。库还可以知道给定测试活动212使用哪些dut或片上和ate资源。
105.约束求解器250被配置为从测试活动表210创建测试序列表260。测试序列表260包括测试场景262,其中测试场景262包括一个或多个测试活动212a-e,其可以共存或可以在不违反资源约束218的情况下同时执行。测试场景262由在工作站和/或控制器270(例如ocst卡或片上ocst控制器)上运行的约束求解器250自动生成。约束可以在pss中建模。
106.由约束求解器250提供的测试序列表260包括场景262,其中可以同时执行与一个或多个测试参数216a-e相关联的一个或多个测试活动212a-d。表征各个测试参数216a-e的测试参数值是随机选择的,或具有强调极值。例如,测试场景262的顺序是随机生成的,以便模拟现实生活中的工作负载。
107.生成的测试序列表260被提供给控制器270,例如片上ocst控制器,其被配置为执行测试序列表260的测试场景262,以便收集测试数据280。控制器270可以包括与ate通信的接口和/或与dut通信的接口。
108.控制器270可以读出dut测试数据和/或dut传感器数据和/或控制器可以包括dut区域或管芯区域上的传感器以检测局部异常。如果测量值和/或传感器值满足某些预定条件,则测得的值或收集的数据280可以触发控制器270收集进一步的信息,例如dut的存储器信息或状态信息。
109.控制器270被配置为将场景262的测试活动212的测试结果288或收集的测试数据280传送到ate 220。ate 220或控制器270被配置为进一步改进测试过程和/或调试或诊断dut。
110.控制器270(例如片上ocst控制器或ocst卡)或ate 220被配置为动态地创建或修改测试场景的测试参数集,这可以满足约束并且可以允许知道用于调试的当前测试参数。为测试活动212创建测试参数值集的方法包括随机化,其遵循期望的分布,该分布可选地强调极值,使用例如约束求解器来最大化覆盖,或使用例如嵌套循环用于一些测试参数的详尽覆盖。
111.为了进一步改善测试环境,可能需要测试学习环境。广泛的表征测试是测试学习的基础,其中许多dut暴露于许多测试步骤或许多测试场景。优选地,不是所有的dut 282都暴露于相同的测试步骤或测试场景,以便覆盖测试参数216的大量组合。为了避免测试场景偏向某些dut 282,测试步骤或测试场景以随机排列顺序执行。
112.ate 220或控制器270也可以使用用收集的测试结果数据280和系统级测试结果训练的机器学习或ai模块。机器学习模块可以分析收集的测试结果数据280和系统级测试结果,并且可以基于新的一组收集的测试数据280来预测系统级测试结果。
113.ai模块可以进一步通过没有规范限制的测得的结果数据(例如片上传感器数据)或通过超出规范限制的测试参数(例如过低的电压或过快的频率)来训练,以便从测试结果预测系统级测试未通过。超出规范限制的未通过的测试步骤或测试活动并不是dut不良的证据。
114.但是,可以构建机器学习模块或模型以根据测试步骤或测试活动结果来预测系统级测试结果,包括没有或超出规范限制的测得结果,并且包括具有超出规范的测试参数的测试步骤或场景和测试步骤或场景相关属性,例如涉及的测试活动和测试资源。
115.这样的模型可能会发现一些先前漏掉的slt未通过,但也可能使一些通过slt并通过所有其他合法ocst测试的dut未通过。这些情况可能被认为是通过测试导致了产量损失,并且可以谨慎地与另外发现的slt未通过进行对换,优选基于成本模型。只有那些附加的测试步骤或场景可以包括在此类模型所需的生产步骤中。其他附加的测试步骤可以再次被移除。
116.ate 220或控制器270还可被配置为调试和/或诊断dut。由于测试结果表280包括测试场景262的同时执行的测试活动212的结果288,因此需要进一步分析收集的测试数据280以便识别和/或分类有故障的dut或dut资源。
117.调试或诊断的总体思路是识别那些最影响ocst未通过发生的测试参数216。与涉及特定ip块中的某些动作的测试活动212相关联的测试参数216为调试提供信息提示。
118.通过将测试步骤或场景与测试活动、dut资源、测试参数、测试结果和整体ocst结果(可选地用于多个dut)相结合的表训练的机器学习模块可用于分类或识别有故障的dut资源。机器学习模块或机器学习特征选择算法可以识别哪些测试活动、测试或dut资源和测试结果对于解释导致ocst未通过发生的ocst结果是重要的。
119.换言之,控制器270控制测试过程。控制器或ocst控制器优选是带有可选测试操作系统的片上处理器,但也可以是与dut或ate工作站通信的ocst卡。
120.例如,ocst控制器的任务可以是触发多个测试活动的执行并读出它们的通过/未通过结果和/或测量结果。测试活动可以包括可选的压力生成和/或可选的故障检测的组合。
121.下面列出了测试活动的更多示例:
122.·
ate设置dut的外部测试条件,例如dut电源电压或频率,即ocst控制器可以控制ate资源。
123.·
ate执行测量,例如电源电流测量。
124.·
在ip核之间移动数据块并在之前和/或之后检查内容。
125.·
在片上cpu上运行内存测试。
126.·
运行内存自检。
127.·
压缩和解压缩图像并检查原始图像和解压缩图像之间的差异(压力和检查)
128.·
运行i/o环回测试。
129.·
应用压力生成,使用dft技术。
130.·
使用dft技术激活和读出任何可观察性结构。
131.控制器始终知道使用哪些测试(活动)参数执行哪个测试场景,这对于发生错误时的调试是必要的。
132.此外,控制器或ocst控制器可以基于约束动态地创建或修改测试活动参数,和/或可以对它们进行操纵或从预先计算的列表中导入它们。此外,控制器或运行ocst控制器代码的处理器也可以生成测试活动。
133.根据图3的示例性测试活动表
134.图3示出了根据实施例的示例性测试活动表300。测试活动表300类似于图2的测试活动表210或者是图2的测试活动表210的示例。
135.测试活动表300包括测试活动、资源、测试参数和可能结果的列。测试活动表被配置为列出所有可能在dut上执行的测试以及所需的资源、可调整参数和可能的效果或结果。
136.测试活动表300可以被约束求解器(例如图2的约束求解器250)用作输入以便创建测试序列。测试序列可以定义在哪个dut上以什么顺序执行具有哪个测试参数的测试活动。
137.测试活动表300可以包括常见的测试活动或dut特定的测试活动。示例性测试活动表300包含测试活动的一些示例。
138.例如,第一测试活动a1可以包括处理单元2(cpu2),其将数据写入存储器3(mem3)并检查mem3的内容。活动a1需要资源r1:cpu2、r2:mem3、r3:ate dps用于核心供应。测试活动a1的可调整测试参数为p1:带宽,p2:dps电压。结果可能包括两个值r1和r2,r1是未通过/通过值,r2是电流值。
139.例如,测试活动a2是mem3的内存内置自测(mbist),它需要资源r2,即mem3,没有任何可调整的参数并且以通过/未通过值的结果作为结果。
140.例如,测试活动a3是mpeg自测试,需要具有可调整块大小的mpeg资源作为测试参数p3,结果为通过/未通过值。
141.根据图4的资源冲突表
142.图4示出了可以由图2的约束求解器250使用和/或创建的资源冲突表400。资源冲突表400具有测试活动列和用于dut的每个资源的列。表400的每个测试活动使用一个或多个dut测试资源,其由相应资源列中的“x”表示。
143.约束求解器(例如图2的约束求解器250)可以采用测试活动表(例如图3的表300)作为输入,以便创建测试序列。创建测试序列的步骤要创建资源冲突表,例如资源冲突表400。资源冲突表400显示哪些测试活动正在使用相同的dut资源,因此哪些测试活动不能同时运行。
144.例如,资源冲突表400显示测试活动表300的测试活动的冲突资源。例如,测试活动a1使用资源r1、r2、r3并且不使用r4。例如,测试活动a2仅使用r2作为资源。例如,测试活动a3使用dut资源r4。
145.如资源冲突表400所示,测试活动a1和测试活动a2是冲突的测试活动,因为它们都
需要测试资源r2。测试活动a1和a2都需要测试资源r2,因此不能同时运行。即测试活动a1和测试活动a2不能同时运行,例如不能放在相同的测试场景中。没有资源冲突的测试活动可被组合成测试场景。
146.根据图5的测试场景表
147.图5示出了可以由图2的约束求解器250使用或创建的测试场景表500。测试场景表500包括测试场景列和用于所提供的每个测试活动的列。测试场景表500包括所有可能的测试场景。测试场景的一个或多个测试活动同时运行。
148.测试场景表500显示了所有可能从测试活动(如图3的测试活动表300的测试活动a1、a2和a3)创建的测试场景。测试场景的测试活动需要是不冲突的。冲突的测试活动显示在资源冲突表中,类似于图4的资源冲突表400。从测试场景表(例如测试场景表500)中所有可能的具有不冲突测试活动的测试场景结果中排除具有取自资源冲突表的冲突测试活动的测试场景。
149.例如,测试场景表500包括测试场景列和用于每个测试活动(例如a1、a2、a3)的列。根据图4的资源冲突表400,a1和a2使用相同的资源r2,因此测试活动a1和测试活动a2不能同时运行,并且不能在相同测试场景中。
150.例如,图3的示例性测试活动的测试场景是具有测试活动a1的测试场景s1、具有测试活动a2的测试场景s2、具有测试活动a3的测试场景s3、具有并发测试活动a1、a3的测试场景s4、以及具有并发测试活动a2、a3的测试场景s5。由于资源限制,没有测试场景同时运行测试活动a1和a2。
151.测试活动是否真正同时运行可以取决于测试参数设置和其他未知因素。测试序列或测试套件由多个测试步骤组成,这些步骤执行给定的测试场景,其中为其测试活动利用指定的测试参数值。
152.根据图6的测试步骤表
153.图6示出了可由图2的约束求解器250使用或创建的测试步骤表600。测试步骤表包括测试步骤、测试场景、测试活动的列以及对应于测试活动的测试参数的列。
154.测试步骤表600的测试步骤列包括流水号以便识别不同的测试步骤。测试场景列可以包括所有可能的测试场景至少一次。可以使用几个不同的测试参数对测试场景进行多次测试。与图5的测试场景表500类似,测试场景的测试活动由相应的测试活动列中的“x”表示。
155.如果测试场景包括测试活动,则对应的测试参数列包括测试参数值。测试参数值优选地被随机地生成,可选地遵循预定分布地和/或可选地以特定百分比集中于比随机生成的测试参数值倾向于引发更多问题的极值而被生成。
156.通过将测试步骤表600的测试步骤随机地映射到dut或遵循预定分布地(以便引发比随机映射的测试序列更多的问题)映射到dut,从测试步骤表600生成测试序列,例如图2的测试序列表260。
157.测试场景列包括所有可能的测试场景,例如来自测试场景表500的测试场景s1到s5,其中测试场景可以用几个不同的测试参数进行测试。
158.例如,第一测试步骤可能是具有测试活动a1的第一测试场景s1,对应于测试参数p1,带宽为10gb/s,以及测试参数p2,dps电压为0.9v。例如,测试步骤2包括相同的测试场景
s1,具有不同的测试参数p1,带宽为20gb/s,以及p2,dps电压为0.86v。
159.例如,测试步骤3可以包括测试场景s2,其包括没有任何可调整测试参数的测试活动a2。
160.例如,测试步骤4包括具有测试活动a3的测试场景s3,其中测试参数p3是128kb的块大小。例如,测试步骤5包括相同场景s3,具有1mb块大小的测试参数p3。
161.例如,测试步骤6包括具有测试活动a1和a3的测试场景s4,具有测试参数p1,带宽为50gb/s,测试参数p2,dps电压为1.04v,以及测试参数p3,块大小为6mb。例如,步骤7包括相同的场景s4,具有测试参数p3,带宽为3gb/s,测试参数p2,dps电压为0.97v,测试参数p3,块大小为500kb。例如,步骤8包括相同的场景s4,具有测试参数p1,带宽为27gb/s,测试参数p2,dps电压为0.88v,测试参数p3,块大小为21mb。
162.例如,测试步骤9包括测试场景s5,具有测试活动a2,没有测试参数,以及测试活动a3,具有测试参数p3,块大小为7mb。例如,测试步骤10包括与s5相同的测试场景,具有测试参数p3,块大小为780kb。例如,步骤11包括与s5相同的测试场景,具有测试参数p3,块大小为13mb。
163.根据图7的测试结果表
164.图7示出了空测试结果表700,在进行图2的测试序列表260的测试活动之后,控制器可以填写该表。测试结果表包括dut、测试步骤、测试活动的测试结果的列,以及总体测试结果列。
165.测试结果表700包括测试序列,例如图2的测试序列表260。测试结果表700的前两列,dut和测试步骤列,定义在哪个dut上执行哪个测试步骤。测试序列是通过将测试步骤表600的测试步骤随机映射到dut或遵循预定分布地和/或满足预定条件地(以便引发比随机映射测试序列更多的问题)映射到dut而从图6的测试步骤表600生成的。
166.示例性测试序列可以包括例如通过测试步骤6、11、7、1和8测试的dut1,以及通过测试步骤5、2、10、4和9测试的dut2。
167.控制器(例如片上控制器或控制器卡)根据测试序列执行测试。由列r1(#未通过)、r2(电流)、r3(#未通过)、r4(p/f)表示的测试活动结果由控制器收集。总体ocst结果可以基于所有测试活动的结果或测试活动结果的子集。附加地或替代地,ocst结果可以包括基于测试活动结果或一些测试活动结果做出的dut分类。
168.在此示例中,总体ocst结果是根据结果r1、r3和r4计算得出的,也就是说,测得结果r2不会对过度测试结果做出贡献,因为它在此示例中没有规范限制。
169.根据图8的每测试步骤未通过表
170.图8示出了每测试步骤未通过表800,包括dut列和每个测试步骤的列。被测试的dut在dut列中列出。被测dut的行在给定的测试步骤列中包含字母“p”(如果被测dut已通过给定的测试步骤),以及包含具有突出背景的字母“f”(如果dut未通过给定的测试步骤)。
171.控制器或ate被配置为使用每测试步骤未通过表800来优化(优选地减少)测试步骤的数量。例如,可以减少从不会未通过的测试和/或冗余测试步骤的数量。控制器或ate的任务可以包括选择最小的测试步骤集,这被称为最小覆盖集问题,它具有已知的解。
172.例如,在每测试步骤未通过表800可以包括四个dut(dut 1-4)的测试结果的情况下。例如,dut 1可能通过除测试步骤6之外的所有测试步骤。例如,dut 2可能通过除测试步
骤2和4之外的所有测试步骤。例如,dut 3可能通过除测试步骤1和6之外的所有测试步骤。例如,dut 4可能通过除测试步骤8之外的所有测试步骤。
173.例如,当控制器或ate分析每测试步骤未通过表800时,控制器可以得出测试步骤3、5和7永远不会未通过并且因此可以从生产测试中移除的结论。此外,测试步骤4对于测试步骤2是冗余的并且也可以被移除。
174.根据图9比较ocst和slt
175.图9示出了ocst测试结果和slt测试结果之间的示例性比较表900。示例性比较表900显示了当用ocst测试方法和slt测试方法测试同一组dut时可能出现的差异。
176.在此示例中,9900个器件通过了ocst和slt这两种测试方法,70个器件未通过。25个器件或dut未通过ocst测试,但通过了slt测试,而只有5个dut通过了ocst测试并且未通过slt测试。
177.换句话说,在上面的示例中,ocst漏掉了未通过slt的5个器件,但在25个dut中发现了slt未发现的问题,假设所有测试步骤都描述了具有真实测试参数值的真实场景,这会是很好的平衡。
178.根据图10的结合测试结果和slt结果的训练表
179.图10示出了将收集的测试数据与slt结果相结合的训练表1000。训练表1000被配置为用作机器学习或ai模块的训练表或训练数据集。训练表1000可以包括在dut上进行的测试步骤的所有测试活动、测试资源和测试结果以及对应的slt结果。训练表1000可以包括在多个dut上执行的多个测试步骤。
180.训练表1000可以包括在dut规范之外或稍微在dut规范之外收集的测试数据结合slt结果,其中slt测试是在dut规范内进行的。例如,在这种情况下,未通过的ocst结果不被视为不合格dut的强烈迹象,但超出规范限制的通过ocst测试可能被视为良好dut的强烈迹象,并可能导致将dut归类为高质量的dut。
181.ate或控制器可以包括机器学习单元或ai模块,其可以由训练表1000训练并且可以被配置为根据对dut新进行的测试步骤来预测slt结果。机器学习单元也可用于改进测试过程。
182.根据图11的带有测试结果的训练表
183.图11示出了包括收集的测试数据和总体ocst结果的训练表1100。训练表1100被配置为用作机器学习或ai模块的训练表或训练数据集。训练表1100可以包括在dut上进行的测试步骤的测试活动、测试资源和测试结果以及相应的总体ocst结果。
184.表1100用于调试和诊断目的。调试的一般思路是识别那些最影响ocst未通过发生的测试参数。ate或控制器可以包括ai或机器学习单元,以便识别和/或分类经常未通过的dut资源或dut。出于效率原因,该表可能限于未通过器件。分析仪可以在许多dut上进行,以识别经常发生的故障机制。
185.机器学习单元或模块可以由测试结果表1100训练以便预测未通过的dut或dut资源。
186.替代实现方式
187.尽管已经在装置的上下文中描述了一些方面,但显然这些方面也表示相应方法的描述,其中块或设备对应于方法步骤或方法步骤的特征。类似地,在方法步骤的上下文中描
述的方面也表示对应装置的对应块或项或特征的描述。
188.取决于某些实现方式要求,本发明的实施例可以以硬件或软件来实施。该实现方式可以使用其上存储有电子可读控制信号的数字存储介质来执行,例如软盘、dvd、cd、rom、prom、eprom、eeprom或闪存,其与可编程计算机系统协作(或能够协作),从而执行相应的方法。
189.根据本发明的一些实施例包括具有电子可读控制信号的数据载体,其能够与可编程计算机系统协作,从而执行本文描述的方法之一。
190.通常,本发明的实施例可以实现为具有程序代码的计算机程序产品,当计算机程序产品在计算机上运行时,该程序代码可操作用于执行方法之一。程序代码例如可以存储在机器可读载体上。
191.其他实施例包括存储在机器可读载体上的用于执行本文描述的方法之一的计算机程序。
192.换言之,本发明方法的实施例因此是具有程序代码的计算机程序,该程序代码用于当计算机程序在计算机上运行时执行本文描述的方法之一。
193.因此,本发明方法的另一个实施例是一种数据载体(或数字存储介质,或计算机可读介质),其上记录有用于执行本文描述的方法之一的计算机程序。数据载体、数字存储介质或记录介质通常是有形的和/或非暂态的。
194.因此,本发明方法的另一实施例是表示用于执行本文描述的方法之一的计算机程序的数据流或信号序列。数据流或信号序列可以例如被配置为通过数据通信连接(例如通过互联网)传输。
195.另一实施例包括处理装置,例如计算机或可编程逻辑器件,其被配置为或适于执行本文描述的方法之一。
196.另一实施例包括其上安装有用于执行本文描述的方法之一的计算机程序的计算机。
197.根据本发明的另一实施例包括一种装置或系统,其被配置为将用于执行本文描述的方法之一的计算机程序(例如,电子地或光学地)传送到接收器。例如,接收器可以是计算机、移动设备、存储设备等。例如,该装置或系统可以包括用于将计算机程序传送到接收器的文件服务器。
198.在一些实施例中,可编程逻辑器件(例如现场可编程门阵列)可用于执行本文描述的方法的一些或所有功能。在一些实施例中,现场可编程门阵列可以与微处理器协作以执行本文描述的方法之一。通常,这些方法优选地由任何硬件装置来执行。
199.本文描述的装置可以使用硬件装置、或者使用计算机、或者使用硬件装置和计算机的组合来实现。
200.本文描述的装置或本文描述的装置的任何组件可以至少部分地以硬件和/或软件实现。
201.本文描述的方法可以使用硬件装置、或者使用计算机、或者使用硬件装置和计算机的组合来执行。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献