一种半导体测试方法、系统及存储介质与流程

    专利查询2022-07-07  175



    1.本技术涉及半导体技术领域,尤其涉及一种半导体测试方法、系统及存储介质。


    背景技术:

    2.目前,存储芯片测试主要是在各种测试条件下,验证数据读写,数据保持的正确性,以及极端条件下芯片的运行时长来模拟芯片的未来使用寿命。对于一些复杂的测试,如读写,擦除,随机地址测试等,主机无法快速区分芯片读取的数据是否正确,从而影响了测试效率和测试的可靠性。


    技术实现要素:

    3.本技术实施例期望提供一种半导体测试方法、系统及存储介质。
    4.本技术的技术方案是这样实现的:
    5.本技术实施例第一方面提供一种半导体测试方法,所述方法包括:
    6.创建测试数据表;所述测试数据表包括第一子表和第二子表;
    7.根据预设测试流程,对待测芯片组进行测试;所述预设测试流程包括将测试数据写入所述待测芯片组和读取所述待测芯片组中的测试数据;
    8.将写入所述待测芯片组的所述测试数据存储至所述第一子表中;
    9.基于所述测试数据生成第一校验信息,并将所述第一校验信息存储至所述第二子表中;
    10.基于读取所述待测芯片组中的测试数据得到的读出数据生成第二校验信息;
    11.基于所述第一校验信息和所述第二校验信息对所述待测芯片组进行校验。
    12.可选地,所述根据预设测试流程,对待测芯片组进行测试之前,所述方法还包括:
    13.根据所述预设测试流程中包括的测试指令的数量设置多个测试阶段;
    14.每个所述测试阶段包括多个测试子阶段。
    15.可选地,所述方法还包括:
    16.针对每个所述测试阶段,基于所述待测芯片组中各待测芯片在首个测试子阶段的测试时间差,确定各待测芯片的预设延迟时间;
    17.基于所述预设延迟时间,确定每个所述测试阶段中的各个所述测试子阶段中的测试指令的数量。
    18.可选地,所述创建测试数据表,包括:
    19.为所述待测芯片组中的每个待测芯片创建一个测试数据表;每个所述测试数据表均包括第一子表和第二子表。
    20.可选地,所述将写入所述待测芯片组的所述测试数据存储至所述第一子表中,包括:
    21.针对每个测试阶段,将写入每个待测芯片的测试数据存储至该待测芯片对应的所述测试数据表的第一子表中。
    22.可选地,所述基于所述测试数据生成第一校验信息,并将所述第一校验信息存储至所述第二子表中,包括:
    23.针对每个待测芯片,基于写入所述待测芯片的测试数据生成第一校验信息,并将所述第一校验信息存储至所述待测芯片对应的所述测试数据表的第二子表中。可选地,所述创建测试数据表,包括:
    24.为所述待测芯片组创建一个测试数据表;所述测试数据表中的第一子表用于存储所述待测芯片组中所有待测芯片写入的测试数据;所述测试数据表中的第二子表用于缓存所述待测芯片组中所有待测芯片的第一校验信息。
    25.可选地,所述根据预设测试流程,对待测芯片组进行测试之前,所述方法还包括:
    26.为所述待测芯片组中的每个待测芯片创建一个缓存表;所述缓存表包括第三子表和第四子表,所述第三子表用于缓存写入每个待测芯片的测试数据,所述第四子表用于缓存每个待测芯片的第一校验信息。
    27.可选地,所述将写入所述待测芯片组的所述测试数据存储至所述第一子表中,包括:
    28.针对每个测试阶段,将写入待测芯片组的所述测试数据和所述测试数据对应的地址存储至第三子表;
    29.每个测试阶段结束后,将所述测试数据从所述第三子表存储至所述第一子表。
    30.可选地,所述将所述第一校验信息存储至所述第二子表,包括:
    31.针对每个测试阶段,将生成的所述第一校验信息存储至第四子表;
    32.每个测试阶段结束后,将所述第一校验信息从所述第四子表存储至所述第二子表。
    33.可选地,所述将写入所述待测芯片组的所述测试数据存储至所述第一子表中,包括:
    34.将写入所述待测芯片组的所述测试数据存储至所述第一子表的预设地址中;
    35.所述预设地址与所述测试数据对应的地址相同。
    36.可选地,所述基于所述第一校验信息和所述第二校验信息对所述待测芯片组进行校验,包括:
    37.将所述第一校验信息和所述第二校验信息进行比较;
    38.若所述第一校验信息和所述第二校验信息相同,则表征所述待测芯片组通过校验;
    39.若所述第一校验信息和所述第二校验信息不同,则执行复验步骤。
    40.可选地,所述基于所述第一校验信息和所述第二校验信息对所述待测芯片组进行校验,包括:
    41.从所述第四子表和/或所述第二子表中获取所述第一校验信息;
    42.将所述第一校验信息和所述第二校验信息进行比较;
    43.若所述第一校验信息和所述第二校验信息相同,则表征所述待测芯片组通过校验;
    44.若所述第一校验信息和所述第二校验信息不同,则执行复验步骤。
    45.可选地,所述复验步骤包括:
    46.将写入所述待测芯片组的所述测试数据和所述读出数据进行比较;
    47.若所述测试数据与所述读出数据相同,则表征所述待测芯片组通过校验;
    48.若所述测试数据与所述读出数据不同,则表征所述待测芯片组未通过校验。本技术实施例第二方面提供一种半导体测试系统,所述系统包括:
    49.创建模块,用于创建测试数据表,所述测试数据表包括第一子表和第二子表;
    50.测试模块,用于根据预设测试流程,对待测芯片组进行测试;所述预设测试流程包括将测试数据写入所述待测芯片组和读取所述待测芯片组中的测试数据;
    51.存储模块,用于将写入所述待测芯片组的所述测试数据存储至所述第一子表中;
    52.生成模块,用于基于所述测试数据生成第一校验信息,并将所述第一校验信息存储至所述第二子表中;以及,用于基于读取所述测试数据得到的读出数据生成第二校验信息;
    53.校验模块,用于基于所述第一校验信息和所述第二校验信息对所述待测芯片组进行校验。
    54.可选地,所述系统还包括设置单元,所述设置单元用于:
    55.根据所述预设测试流程中包括的测试指令的数量设置多个测试阶段;
    56.每个所述测试阶段包括多个测试子阶段。
    57.可选地,所述系统还包括确定单元,所述确定单元用于:
    58.针对每个所述测试阶段,基于所述待测芯片组中各待测芯片在首个测试子阶段的测试时间差,确定各待测芯片的预设延迟时间;
    59.基于所述预设延迟时间,确定每个所述测试阶段中的各个所述测试子阶段中的测试指令的数量。
    60.可选地,所述创建模块用于:
    61.为所述待测芯片组中的每个待测芯片创建一个测试数据表;每个所述测试数据表均包括第一子表和第二子表。
    62.可选地,所述存储模块具体用于:
    63.针对每个测试阶段,将写入每个待测芯片的测试数据存储至该待测芯片对应的所述测试数据表的第一子表中。
    64.可选地,所述生成模块具体用于:针对每个待测芯片,基于写入所述待测芯片的测试数据生成第一校验信息,并将所述第一校验信息存储至所述待测芯片对应的所述测试数据表的第二子表中。
    65.可选地,所述创建模块还用于:
    66.为所述待测芯片组创建一个测试数据表;所述测试数据表中的第一子表用于存储所述待测芯片组中所有待测芯片写入的测试数据;所述测试数据表中的第二子表用于缓存所述待测芯片组中所有待测芯片的第一校验信息。
    67.可选地,所述创建模块具体还用于:
    68.为所述待测芯片组中的每个待测芯片创建一个缓存表;所述缓存表包括第三子表和第四子表,所述第三子表用于缓存写入每个待测芯片的测试数据,所述第四子表用于缓存每个待测芯片的第一校验信息。
    69.可选地,所述存储模块具体还用于:
    70.针对每个测试阶段,将写入待测芯片组的所述测试数据和所述测试数据对应的地址存储至第三子表;
    71.每个测试阶段结束后,将所述测试数据从所述第三子表存储至所述第一子表。
    72.可选地,所述存储模块具体用于:
    73.针对每个测试阶段,将生成的所述第一校验信息存储至第四子表;
    74.每个测试阶段结束后,将所述第一校验信息从所述第四子表存储至所述第二子表。
    75.可选地,所述存储模块具体用于:
    76.将写入所述待测芯片组的所述测试数据存储至所述第一子表的预设地址中;
    77.所述预设地址与所述测试数据对应的地址相同。
    78.可选地,所述校验模块具体用于:
    79.将所述第一校验信息和所述第二校验信息进行比较;
    80.若所述第一校验信息和所述第二校验信息相同,则表征所述待测芯片组通过校验;
    81.若所述第一校验信息和所述第二校验信息不同,则执行复验步骤。
    82.可选地,所述校验模块具体还用于:
    83.从所述第四子表和/或所述第二子表中获取所述第一校验信息;
    84.将所述第一校验信息和所述第二校验信息进行比较;
    85.若所述第一校验信息和所述第二校验信息相同,则表征所述待测芯片组通过校验;
    86.若所述第一校验信息和所述第二校验信息不同,则执行复验步骤。
    87.可选地,所述复验步骤包括:
    88.将写入所述待测芯片组的所述测试数据和所述读出数据进行比较;
    89.若所述测试数据与所述读出数据相同,则表征所述待测芯片组通过校验;
    90.若所述测试数据与所述读出数据不同,则表征所述待测芯片组未通过校验。
    91.本技术实施例第三方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述第一方面的任一项所述方法的步骤。
    92.本技术公开了一种半导体测试方法、系统及存储介质,所述方法包括:创建测试数据表;所述测试数据表包括第一子表和第二子表;根据预设测试流程,对待测芯片组进行测试;所述预设测试流程包括将测试数据写入所述待测芯片组和读取所述待测芯片组中的测试数据;将写入所述待测芯片组的所述测试数据存储至所述第一子表中;基于所述测试数据生成第一校验信息,并将所述第一校验信息存储至所述第二子表中;基于读取所述待测芯片组中的测试数据得到的读出数据生成第二校验信息;基于所述第一校验信息和所述第二校验信息对所述待测芯片组进行校验。本技术提供的一种半导体测试方法通过创建测试数据表,并将测试数据及第一校验信息分别存储至测试数据表的第一子表和第二子表中,如此,只需要基于第二子表中的第一校验数据以及读取第一子表中相应的测试数据得到第二校验数据,即可实现对待测芯片组的校验,解决了在通过随机地址测试时无法快速区分读取的数据是否正确导致校验困难的问题,提高了测试效率。
    附图说明
    93.图1为本技术实施例提供的一种半导体测试方法的流程示意图;
    94.图2为本技术实施例提供的测试场景的示意图;
    95.图3为本技术实施例提供的一种半导体测试方法的待测芯片组示意图;
    96.图4为本技术实施例提供的一种测试阶段示意图;
    97.图5为本技术实施例提供的一种测试场景示意图一;
    98.图6为本技术实施例提供的一种半导体测试方法的流程示意图一;
    99.图7为本技术实施例提供的一种测试场景示意图二;
    100.图8为本技术实施例提供的一种半导体测试方法的流程示意图二;
    101.图9为本技术实施例提供的一种半导体测试系统的结构示意图。
    具体实施方式
    102.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
    103.当前,对于需要同时进行测量的大批量芯片而言,由于大批量芯片中各芯片自身的细微差异,部分芯片运行速度快,提前完成了测试任务,仍需要继续等待执行速度慢的芯片。而有些测试,对执行前、后两个测试环节的时间间隔有要求,需要让所有芯片之间的测试时间差满足时间间隔要求。另外,对于一些复杂的测试,如读写,擦除,随机地址测试等,主机控制器(host controller)无法快速区分芯片读取的数据是否正确,从而影响了测试效率和测试的可靠性。
    104.基于此,提出本技术以下各实施例。
    105.请参阅图1,图1为本技术实施例提供的一种半导体测试方法的流程示意图。本技术实施例提供的一种半导体测试方法包括:
    106.s101,创建测试数据表;所述测试数据表包括第一子表和第二子表。
    107.在本实施例中,创建的测试数据表包括第一子表和第二子表,第一子表用于存储测试数据,第二子表用于存储基于测试数据生成的第一校验信息。其中,第一子表和第二子表可以是位于同一存储芯片上的不同位置,也可以是位于不同的存储芯片上,本技术对此不作限制。需要说明的是,创建测试数据表时,测试数据表为空表,具体地,第一子表和第二子表为空表。第一子表用于在后续的测试过程中存储测试数据,第二子表用于在后续的测试过程中存储基于测试数据生成的第一校验信息。
    108.s102,根据预设测试流程,对待测芯片组进行测试;预设测试流程包括将测试数据写入待测芯片组和读取待测芯片组中的测试数据。
    109.具体地,请参阅图2,图2为本技术实施例提供的测试场景的示意图,主机控制器201向测试板202上的mcu芯片203(microcontroller unit,微控制单元)芯片发送测试信号,mcu芯片203接收到指令后,根据内部编程功能模块调用相应的测试函数,同时配合fpga(field-programmable gate array,现场可编程门阵列)控制器204内部时序逻辑向待测芯片组205中的每个待测芯片发送测试指令。fpga控制器204向待测芯片内写入测试数据。
    110.在本实施例中,待测芯片组包括多个待测芯片,本实施例提供的半导体测试方法可以同时对多个待测芯片进行测试。示例性,如图3所示,图3为本技术实施例提供的一种半导体测试方法的待测芯片组示意图。其中,每四个芯片为一个待测芯片组,每个待测芯片组由测试器上的一个主机控制器进行控制。
    111.在一个具体实施例中,在s102之前,还包括:
    112.根据预设测试流程中包括的测试指令的数量设置多个测试阶段;每个测试阶段包括多个测试子阶段。
    113.示例性的,如图4所示,图4为本技术实施例提供的一种测试阶段示意图,图中的数字x和y表征测试时长,单位为天。对于当前测试环节,假定待测芯片组中测试速度最快的待测芯片1执行完60000行测试指令需要x天完成,而测试最慢的待测芯片4执行完60000行测试指令需要y天完成也就是说该待测芯片组中各个待测芯片之间的最大测试时间差为[y-x]天。这里,各个待测芯片之间的最大测试时间差即为测试速度最快的待测芯片与测试速度最慢的待测芯片完成测试的时间间隔。若前、后两个测试环节的时间间隔要求为a个小时。即在当前测试环节中,需要保证测试速度最快的待测芯片与测试速度最慢的待测芯片之间的最大测试时间差不能超过a个小时,而最大测试时间差[y-x]天是要大于a个小时的。因此,本实施例中根据测试指令的数量设置多个测试阶段,例如,将60000行指令划分为k个测试阶段(k=24(y-x)/a),每个测试阶段包括60000/k条测试指令,在每个测试阶段中,待测芯片1处于间断循环测试,即在完成60000/k条测试指令后,变为等待状态,直至下一个测试阶段开始时结束等待,而待测芯片4在每个测试阶段中,一直处于测试状态,由此,使得待测芯片1与待测芯片4完成测试的间隔时间始终不会超过a个小时,在此基础上,待测芯片组中的其他待测芯片与待测芯片1与待测芯片4完成测试指令的时间间隔也不会超过a小时,从而使得待测芯片组的测试满足预设延迟时间需求。
    [0114]
    需要说明的是,上述待测芯片组中待测芯片的最短测试时间(x天)和最长测试时间(y天)等参数,可以根据历史测试数据得到,也可以根据同批次的其他待测芯片组的历史测试数据得到。优选地,基于当前测试环节中的一个子测试阶段的时长计算得到总的测试时间。
    [0115]
    例如,若测试为写入测试,该写入测试的测试指令的数量为60000行,k=6,,则可以将测试划分为6个测试阶段,确定每个测试阶段中的各个测试子阶段中的测试指令的数量为10000行。在一个具体实施例中,针对每个测试阶段,基于待测芯片组中各待测芯片在首个测试子阶段的测试时间差,确定各待测芯片的预设延迟时间;
    [0116]
    基于预设延迟时间,确定每个测试阶段中的各个测试子阶段中的测试指令的数量。
    [0117]
    示例性的,若当前测试阶段对应n行测试指令,可以将n行指令划分为多个子阶段,每个子阶段包含的测试指令的数量可以相同,也可以不同,对此不作限制。其中,首个测试子阶段对应m(m小于n)行测试指令,在待测芯片组中的每个待测芯片均执行完m条测试指令后,基于执行m条测试指令所需的时长,可以确定各待测芯片的预设延迟时间,即按照当前的测试速率,待测芯片组中的各个待测芯片执行完n条测试指令后,用时最长的芯片与用时最短的测试芯片之间的时间差。由此,基于预设延迟时间,确定每个测试阶段中的各个测试子阶段中的测试指令的数量,从而将测试阶段划分为多个测试子阶段,缩小了待测芯片组
    中的各个待测芯片完成测试阶段的时间差,确保了待测芯片组中的各个待测芯片可以同步进入下一测试阶段。优选地,各测试子阶段对应相同数量的测试指令。
    [0118]
    s103,将写入待测芯片组的测试数据存储至第一子表中。
    [0119]
    具体地,待测芯片组每完成一个测试阶段,将待测芯片组对应于该测试阶段的测试数据存储至所述第一子表中。每个测试阶段包括多个测试子阶段,对于测试速度最慢的待测芯片而言,其对应的多个测试子阶段是连续的,而对于测试速度快的待测芯片而言,其对应的多个测试子阶段中,每个测试子阶段不仅包括测试段,还包括等待段,即非连续测试。针对每个测试阶段,同一个待测芯片组内的所有待测芯片完成后,再将测试数据存储至第一子表中。
    [0120]
    s104,基于测试数据生成第一校验信息,并将第一校验信息存储至第二子表中。
    [0121]
    这里,第一校验信息可以是测试数据的一部分,或者是与测试数据存在关联性的其他信息。
    [0122]
    在一些实施例中,如图5所示,图5为本技术实施例提供的一种测试场景示意图一,图5以为待测芯片组中的每个待测芯片创建一个测试数据表为例进行说明,其中,每个测试数据表包括第一子表和第二子表。图5中dut1表征待测芯片组中的待测芯片1,dut4表征待测芯片组中的待测芯片4,图5以待测芯片组包括4个待测芯片为例进行说明。针对图5中的待测芯片组中的4个待测芯片,创建4个测试数据表。针对每个测试阶段,将写入每个待测芯片的测试数据存储至该待测芯片对应的所述测试数据表的第一子表中。在一些实施例中,可以在待测芯片组中的每个待测芯片每完成一行测试指令,就将该行测试指令对应的测试数据存储至与该待测芯片对应的测试数据表的第一子表中,也可以在待测芯片组中的每个待测芯片均完成测试后,再将写入每个待测芯片的测试数据存储至与该待测芯片对应的测试数据表的第一子表中。
    [0123]
    在一些实施例中,针对每个测试阶段,将写入每个待测芯片的测试数据存储至该待测芯片对应的测试数据表的第一子表中。
    [0124]
    在本实施例中,待测芯片组中的每个待测芯片均对应于一测试数据表,测试数据表中的第一子表用于存储写入与之对应的待测芯片中的测试数据。这里,优选为写入每个待测芯片的测试数据相同。
    [0125]
    在一些实施例中,针对每个待测芯片,基于写入待测芯片的测试数据生成第一校验信息,并将第一校验信息存储至待测芯片对应的测试数据表的第二子表中。
    [0126]
    每个待测芯片对应的测试数据表中,除第一子表外,还包括第二子表,测试数据表中的第二子表用于存储基于写入待测芯片的测试数据生成的第一校验信息。当写入每个待测芯片的测试数据相同时,各待测芯片对应的第一校验信息也可以相同。
    [0127]
    在一些实施例中,图6为本技术实施例提供的一种半导体测试方法的流程示意图一,该半导体测试方法可以应用于对主机控制器的dram内存要求较低的情况。这里,图6为针对图5示意的测试场景的流程示意图。半导体测试方法包括以下步骤:
    [0128]
    s601、主机控制器读取待测芯片组中待测芯片的类型、容量。
    [0129]
    主机控制器读取待测芯片的基本参数,确定各待测芯片的应用类型及其存储容量。
    [0130]
    s602、主机控制器为每一个待测芯片创建一个合适大小的测试数据表;其中,测试
    数据表包括第一子表和第二子表。
    [0131]
    这里,主机控制器基于各待测芯片的应用类型及其存储容量,为其创建一个合适大小的测试数据表,测试数据表包括第一子表和第二子表。每个待测芯片对应的测试数据表中第一子表用于存储写入该待测芯片的测试数据,第二子表用于存储基于写入该待测芯片的测试数据生成第一校验信息。
    [0132]
    s603、每执行一个测试阶段,将测试数据分别写入各待测芯片对应的第一子表中。
    [0133]
    这里,以测试为写入测试为例,该测试的写入行数总量为60000行,每个测试阶段的写入操作行数(写入次数)为10000行。则每执行10000行的写入操作,在同一个fpga控制器控制的待测芯片组中的每个待测芯片完成测试后,再对该10000行的写入操作的测试数据进行存储。
    [0134]
    在一些实施例中,可以在待测芯片组中的每个待测芯片每完成一行测试指令,就将该行测试指令对应的测试数据存储至与该待测芯片对应的测试数据表的第一子表中。
    [0135]
    需要说明的是,主机控制器控制多个fpga控制器,每个fpga控制器控制一个待测芯片组。主机控制器通过fpga控制器向待测芯片组中的待测芯片下发指令,以控制测试进程。
    [0136]
    在一些实施例中,半导体测试方法还包括以下步骤:
    [0137]
    s604,每执行一个测试阶段,将第一校验信息分别写入各待测芯片对应的第二子表中。
    [0138]
    这里,每个待测芯片均对应有一个第二子表,用于存储校验信息。
    [0139]
    与上述示例相对的,针对每个测试阶段,可以在待测芯片组中的每个待测芯片每完成一行测试指令,就将该行测试指令对应的测试数据存储至与该待测芯片对应的测试数据表的第一子表中,相应的,将基于该行测试指令对应的测试数据生产的第一校验信息分别写入对应的第二子表中。针对每个测试阶段,还可以在待测芯片组中的每个待测芯片均完成测试后,再将写入每个待测芯片的全部测试数据存储至与该待测芯片对应的测试数据表的第一子表中,此时,基于该阶段全部的测试指令对应的测试数据生产第一校验信息,并分别写入对应的第二子表中。
    [0140]
    在一些实施例中,半导体测试方法还可以包括以下步骤:
    [0141]
    s605,将第二子表的第一校验信息与基于读取待测芯片组中的测试数据得到的读出数据生成的第二校验信息进行比较,对待测芯片组进行校验。
    [0142]
    这里,存在多个第二子表,每个第二子表中包含了各自对应的待测芯片的校验信息。在一些实施例中,如图7所示,图7为本技术实施例提供的一种测试场景意图二,图7以一个待测芯片组创建一个测试数据表为例进行说明。图7中dut1为待测芯片组中的待测芯片1,dut4为待测芯片组中的待测芯片4,图7以待测芯片组包括4个待测芯片为例进行说明。这里,为待测芯片组中的所有待测芯片创建一个共同的测试数据表,测试数据表包括第一子表和第二子表。测试数据表中的第一子表用于存储待测芯片组中所有待测芯片写入的测试数据;测试数据表中的第二子表用于缓存待测芯片组中所有待测芯片的第一校验信息。第一校验信息为读取相应的测试数据生成的校验信息。
    [0143]
    在一些实施例中,为待测芯片组中的每个待测芯片创建一个缓存表,缓存表包括第三子表和第四子表。第三子表用于缓存写入每个待测芯片的测试数据,第四子表用于缓
    存每个待测芯片的第一校验信息。针对每个测试阶段,待测芯片中的每个待测芯片每完成测试阶段中的一个测试指令后,将待测芯片的测试数据存储至对应的缓存表的第三子表中,并在每个被测芯片均完成测试后,将第三子表中的测试数据存储至第一子表中。
    [0144]
    在一些实施例中,针对每个测试阶段,待测芯片中的每个待测芯片每完成测试阶段中的一个测试指令后,将待测芯片的校验信息存储至对应的缓存表的第四子表中,并在每个被测芯片均完成测试后,将第四子表中的测试数据存储至第二子表中。
    [0145]
    在一些实施例中,图8为本技术实施例提供的一种半导体测试方法的流程示意图二,该半导体测试方法可以应用于对主机控制器的dram内存要求较高的情况。这里,图7为针对图7示意的测试场景的流程示意图。半导体测试方法包括以下步骤:
    [0146]
    s801、主机读取待测芯片组中待测芯片的类型、容量。
    [0147]
    主机控制器读取待测芯片的基本参数,确定各待测芯片的应用类型及其存储容量。
    [0148]
    s801、主机为同一个待测芯片组中的所有待测芯片创建一个共同的测试数据表,测试数据表包括第一子表和第二子表,以及为待测芯片组中的每个待测芯片均创建一个缓存表;缓存表包括第三子表和第四子表。
    [0149]
    s803、每执行一个测试指令,将测试数据分别写入各待测芯片对应的第三子表中,执行完一个测试阶段后,再将第三子表中的测试数据写入第一子表中。
    [0150]
    这里,以测试为写入测试为例,该写入测试的测试指令的数量为60000行,每个测试阶段的测试指令的数量(写入的行数)为10000行。则每执行1行测试指令,将测试数据分别写入各待测芯片对应的第三子表中,每执行10000行的写入操作,在同一个fpga控制器控制的待测芯片组中的每个待测芯片均完成写入测试后,再将第三子表中的测试数据写入第一子表中。
    [0151]
    需要说明的是,主机控制器控制多个fpga控制器,每个fpga控制器控制一个待测芯片组。主机控制器通过fpga控制器向待测芯片组中的待测芯片下发指令,以控制测试进程。
    [0152]
    通过上述针对一个待测芯片组创建一个测试数据表的情况,这样能用较少的存储空间实时记录所有待测芯片的测试状态,还可以实现中断继续测试的功能,测试数据表可以实时记录芯片的全盘写入数据,不论数据的复杂性,不需要针对不同测试项目,保存不同的数据,如此降低了测试程序复杂度。
    [0153]
    在一些实施例中,半导体测试方法还包括以下步骤:
    [0154]
    s804,每执行一个测试指令,将第一校验信息分别写入各待测芯片对应的第四子表中,执行完一个测试阶段后,再将第四子表中的第一校验信息写入第二子表中。
    [0155]
    这里,每个待测芯片均对应有一个第四子表,用于暂时存储第一校验信息;待测芯片所属的待测芯片组对应有一个第二子表,用于在执行完一个测试阶段后存储同一个待测芯片组内所有待测芯片的第一校验信息。由于第四子表是作为一个暂时存储的子表,因此并不需要太大的存储空间,从而降低了对主机控制器的dram内存的要求,而第二子表统一存储待测芯片组内所有待测芯片的第一校验信息,不需要对不同测试项目,保存不同的检验信息,降低了数据存储的复杂度,减少对主机控制器的dram内存的消耗。
    [0156]
    在一些实施例中,半导体测试方法还可以包括以下步骤:
    [0157]
    s805,将第二子表的第一校验信息与基于读取待测芯片组中的测试数据得到的读出数据生成的第二校验信息进行比较,对待测芯片组进行校验。
    [0158]
    这里,一个待测芯片组只对应有一个第二子表,该第二子表中包含了同一待测芯片组内所有待测芯片的校验信息。
    [0159]
    在一些实施例中,将写入待测芯片组的测试数据存储至第一子表的预设地址中;预设地址与测试数据对应的地址相同。
    [0160]
    对于一些复杂的测试,如读写,擦除,随机地址测试等,主机无法快速区分待测芯片读取的数据是否正确,尤其是当测试地址为随机地址时,需要花费较多的时间确定读取的数据是否正确。因此,将写入待测芯片组的测试数据存储至第一子表的预设地址中,可以快速准确的得到与预设地址相对应的测试数据,进而在基于读出操作生成第二校验信息后,可以准确快速将第一校验信息与对应的第二校验信息进行比较,节省测试时间。
    [0161]
    s105,基于读取待测芯片组中的测试数据得到的读出数据生成第二校验信息。
    [0162]
    这里,对待测芯片组中每个待测芯片中的测试数据执行读出操作,得到读出数据,并基于读出数据生成第二校验信息;第二校验信息可以是读出数据的一部分,也可以是与读出数据存在关联性的其他信息。例如,第二校验信息可以是读出数据的首位和末位的组合,为了确保校验的准确性,组合的位数可以是三位,四位甚至更多。s106,基于第一校验信息和所述第二校验信息对待测芯片组进行校验。
    [0163]
    通常,在进行芯片测试时,往往是直接基于测试数据进行比较,然而,对于一些复杂的测试,主机控制器无法快速区分芯片读取的数据是否正确,从而影响了测试效率和测试的可靠性。基于此,本技术实施例中通过测试数据生成第一校验信息,并将第一校验信息独立进行存储,即将第一校验信息存储至所述第二子表中,并将第一校验信息与基于读取待测芯片组中的测试数据得到的读出数据生成的第二校验信息进行比较,对待测芯片进行校验。
    [0164]
    在一些实施例中,将第一校验信息和第二校验信息进行比较;
    [0165]
    若第一校验信息和第二校验信息相同,则表征待测芯片组通过校验;
    [0166]
    若第一校验信息和第二校验信息不同,则执行复验步骤。
    [0167]
    在本实施例中,第一校验信息是基于写入待测芯片的测试数据生成的校验信息,第二校验信息是基于对测试数据进行读出操作得到读出数据,进而基于读出数据生成。第一校验信息可以是测试数据的一部分,第二校验信息可以是测试数据上与第一校验信息对应的部分,如果二者相同,则表征待测芯片组工作状态良好,通过校验;反之,若二者不同,则表征待测芯片组工作状态异常,未通过校验,需要进行进一步的复验。
    [0168]
    在一些实施例中,从第四子表和/或第二子表中获取第一校验信息;
    [0169]
    将第一校验信息和第二校验信息进行比较;
    [0170]
    若第一校验信息和第二校验信息相同,则表征待测芯片组通过校验;
    [0171]
    若第一校验信息和第二校验信息不同,则执行复验步骤。
    [0172]
    这里,若在创建测试数据表阶段,为待测芯片组中的每个待测芯片创建一个测试数据表,即该测试数据表包括用于存储第一验证信息的第二子表时,从第二子表中获取第一校验信息。若在创建测试数据表阶段,为一个待测芯片组创建一个测试数据表,为待测芯片组中的每个待测芯片创建一个缓存表时,可以从缓存表的第四子表中获取第一校验信
    息。由此将第一校验信息和第二校验信息进行比较。
    [0173]
    在一些实施例中,复验步骤包括:
    [0174]
    将写入待测芯片组的测试数据和读出数据进行比较;
    [0175]
    若测试数据与读出数据相同,则表征待测芯片组通过校验;
    [0176]
    若测试数据与读出数据不同,则表征待测芯片组未通过校验。
    [0177]
    在通过第一校验信息和第二校验信息对待测芯片组进行校验的过程中,可能会存在一些偶然误差,导致第一校验信息和第二校验信息存在区别,由此,会影像校验结果的准确性,因此,可以将写入待测芯片组的测试数据和读出数据进行比较,当二者相同时,也可以认定为待测芯片组通过校验;若二者不同,也认定待测芯片组未通过校验。
    [0178]
    在一个实施例中,第一校验信息可以为crc校验信息,crc校验信息可以为一段二进制数。基于该校验信息对测试数据进行crc校验,具体步骤包括:在测试完成后,对测试数据进行读出操作得到读出数据,并基于读出数据生成第二校验信息,第二校验信息为与crc校验信息对应的信息;若第二校验信息与第一校验信息相同,则表征待测芯片性能良好;若第二校验信息与第一校验信息不同,则表征待测芯片性能不良。当然,还可以通过将读出数据与写入的测试数据进行比较,若读出数据与测试数据一致,则标准待测芯片对应的测试性能良好;若读出数据与测试数据不一致,则标准待测芯片对应的测试性能不良。在主机控制器控制的所有待测芯片均完成当前测试环节后,主机控制器控制所有待测芯片开始进入下一个测试环节。后续测试环节的测试方法可以参照上述实施例,并可以基于实际应用场景进行适应性调整,对此不作限制。本技术实施例中,通过对预设测试流程的合理规划,将待测芯片组中的所有待测芯片之间的测试时间差控制在预设延迟时间内,从而可以满足从当前测试环节到下一测试环节的时间间隔要求,还提高了待测芯片测试的自动化程度。这里,预设延迟时间可以等于当前测试环节到下一测试环节的时间间隔,预设延迟时间也可以小于当前测试环节到下一测试环节的时间间隔。
    [0179]
    本技术实施例通过创建测试数据表,并将测试数据及校验信息分别存储至测试数据表的第一子表和第二子表中,从而基于第二子表中的第一校验信息以及基于读出数据生成的第二校验信息进行比较,完成对待测芯片组的快速校验,提高了测试效率和测试结果的可靠性和校验效率,并且,通过对预设测试流程的合理规划,将待测芯片组中的所有待测芯片之间的测试时间差控制在预设延迟时间内,缩小了待测芯片组中待测芯片之间的测试时间差异,便于大规模存储芯片同时测试。
    [0180]
    请参阅图9,图9为本技术实施例提供的一种半导体测试系统的结构示意图。本技术实施例提供的一种半导体测试系统包括:
    [0181]
    创建模块901,用于创建测试数据表,测试数据表包括第一子表和第二子表;
    [0182]
    测试模块902,用于根据预设测试流程,对待测芯片组进行测试;预设测试流程包括将测试数据写入待测芯片组和读取待测芯片组中的测试数据;
    [0183]
    存储模块903,用于将写入待测芯片组的测试数据存储至第一子表中;
    [0184]
    生成模块904,用于基于测试数据生成第一校验信息,并将第一校验信息存储至第二子表中;以及,用于基于读取测试数据得到的读出数据生成第二校验信息;
    [0185]
    校验模块905,用于基于第一校验信息和第二校验信息,对待测芯片组进行校验。
    [0186]
    在本实施例中,在本实施例中,创建的测试数据表包括第一子表和第二子表,第一
    子表用于存储测试数据,第二子表用于存储第一校验信息。其中,第一子表和第二子表可以是位于同一存储芯片上的不同位置,也可以是位于不同的存储芯片上,对此不作限制。
    [0187]
    具体地,主机控制器向测试板上的mcu(microcontroller unit,微控制单元)芯片发送测试信号,mcu芯片接收到指令后,根据内部编程功能模块调用相应的测试函数,同时配合fpga(field-programmable gate array,现场可编程门阵列)控制器内部时序逻辑向待测芯片组中的每个待测芯片发送测试指令。fpga控制器向待测芯片内写入测试数据,并将测数据存储至测试数据表的第一子表中基于写入的测试数据可以生成第一校验信息,并将第一校验信息存储至;再对待测芯片的测试数据进行读出操作得到读出数据,基于读出数据生成第二校验信息。将第二校验信息与第一校验信息进行对比,得到对比结果,即测试结果。
    [0188]
    在一些实施例中,所述系统还包括设置单元,设置单元用于:
    [0189]
    根据预设测试流程中包括的测试指令的数量设置多个测试阶段;
    [0190]
    每个测试阶段包括多个测试子阶段。
    [0191]
    在一些实施例中,所述系统还包括确定单元,确定单元用于:
    [0192]
    针对每个测试阶段,基于待测芯片组中各待测芯片在首个测试子阶段的测试时间差,确定各待测芯片的预设延迟时间;
    [0193]
    基于预设延迟时间,确定每个测试阶段中的各个测试子阶段中的测试指令的数量。
    [0194]
    在一些实施例中,创建模块901用于:
    [0195]
    为待测芯片组中的每个待测芯片创建一个测试数据表;每个所述测试数据表均包括第一子表和第二子表。
    [0196]
    在一个实施例中,存储模块903具体用于:
    [0197]
    针对每个测试阶段,将写入每个待测芯片的测试数据存储至该待测芯片对应的所述测试数据表的第一子表中。
    [0198]
    在一些实施例中,生成模块904具体用于:
    [0199]
    针对每个待测芯片,基于写入待测芯片的测试数据,生成第一校验信息,并将第一校验信息存储至待测芯片对应的测试数据表的第二子表中。
    [0200]
    在一些实施例中,创建模块901还用于:
    [0201]
    为待测芯片组创建一个测试数据表;测试数据表中的第一子表用于存储待测芯片组中所有待测芯片写入的测试数据;测试数据表中的第二子表用于缓存待测芯片组中所有待测芯片的第一校验信息。
    [0202]
    在一些实施例中,创建模块901还用于:为待测芯片组中的每个待测芯片创建一个缓存表;缓存表包括第三子表和第四子表;第三子表用于缓存写入每个待测芯片的测试数据,第四子表用于缓存每个待测芯片的第一校验信息。
    [0203]
    在一个实施例中,存储模块903具体还用于:
    [0204]
    针对每个测试阶段,将写入待测芯片的测试数据和测试数据对应的地址存储至对应的缓存表的第三子表中;
    [0205]
    每个测试阶段结束后,将测试数据从第三子表中存储至第一子表中。
    [0206]
    在一些实施例中,存储模块903具体还用于:针对每个测试阶段,将生成的第一校
    验信息存储至第四子表;
    [0207]
    每个测试阶段结束后,将所述第一校验信息从所述第四子表存储至所述第二子表。
    [0208]
    在一些实施例中,存储模块903具体还用于:将写入所述待测芯片组的所述测试数据存储至所述第一子表的预设地址中;
    [0209]
    所述预设地址与所述测试数据对应的地址相同。
    [0210]
    在一个实施例中,校验模块905具体用于:
    [0211]
    将第一校验信息和第二校验信息进行比较;
    [0212]
    若第一校验信息和第二校验信息相同,则表征待测芯片组通过校验;
    [0213]
    若第一校验信息和第二校验信息不同,则执行复验步骤。
    [0214]
    在一个实施例中,校验模块905还用于:
    [0215]
    从第四子表和/或第二子表中获取所述第一校验信息;
    [0216]
    将第一校验信息和第二校验信息进行比较;
    [0217]
    若第一校验信息和第二校验信息相同,则表征待测芯片组通过校验;
    [0218]
    若第一校验信息和第二校验信息不同,则执行复验步骤。
    [0219]
    在一些实施例中,复验步骤包括:
    [0220]
    将写入待测芯片组的测试数据和读出数据进行比较;
    [0221]
    若测试数据与读出数据相同,则表征待测芯片组通过校验;
    [0222]
    若测试数据与读出数据不同,则表征待测芯片组未通过校验。本实施例提供的一种半导体测试系统,本技术实施例通过创建测试数据表,并将测试数据及第一校验信息分别存储至测试数据表的第一子表和第二子表中,从而基于第二子表中的第一校验信息和基于读出数据生成的第二校验信息,完成对待测芯片组的快速校验,提高了测试效率和测试结果的可靠性和校验效率,并且,通过对预设测试流程的合理规划,将待测芯片组中的所有待测芯片之间的测试时间差控制在预设延迟时间内,保证了整体测试节奏。具体示例请参照上述方法实施例所述,在此不再一一赘述。
    [0223]
    可选地,该终端设备中的各个组件可通过总线系统耦合在一起。可以理解,总线系统用于实现这些组件之间的连接通信。总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
    [0224]
    可选地,存储器可以由任何类型的易失性或非易失性存储设备、或者它们的组合来实现。
    [0225]
    可选地,处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过软件形式的指令完成,还可以通过硬件的集成逻辑电路完成。上述的处理器可以是通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
    [0226]
    本技术还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,可以完成上述一种半导体测试方法中的任一步骤。
    [0227]
    本技术所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
    [0228]
    本技术所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组
    合,得到新的产品实施例。
    [0229]
    本技术所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
    [0230]
    在本技术所提供的几个实施例中,应该理解到,所揭露的方法、装置和存储介质,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
    [0231]
    上述作为分离部件说明的模块可以是、或也可以不是物理上分开的,作为模块显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络模块上;可以根据实际的需要选择其中的部分或全部模块来实现本实施例方案的目的。
    [0232]
    另外,在本技术各实施例中的各功能模块可以全部集成在一个处理模块中,也可以是各模块分别单独作为一个模块,也可以两个或两个以上模块集成在一个模块中;上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
    [0233]
    以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
    转载请注明原文地址:https://tc.8miu.com/read-946.html

    最新回复(0)