CN115656792A - 芯片可测性设计的测试方法及测试平台 - Google Patents

芯片可测性设计的测试方法及测试平台 Download PDF

Info

Publication number
CN115656792A
CN115656792A CN202211701298.XA CN202211701298A CN115656792A CN 115656792 A CN115656792 A CN 115656792A CN 202211701298 A CN202211701298 A CN 202211701298A CN 115656792 A CN115656792 A CN 115656792A
Authority
CN
China
Prior art keywords
test
vector
chip
repair
storage
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.)
Granted
Application number
CN202211701298.XA
Other languages
English (en)
Other versions
CN115656792B (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.)
Moore Threads Technology Co Ltd
Original Assignee
Moore Threads Technology 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 Moore Threads Technology Co Ltd filed Critical Moore Threads Technology Co Ltd
Priority to CN202211701298.XA priority Critical patent/CN115656792B/zh
Publication of CN115656792A publication Critical patent/CN115656792A/zh
Application granted granted Critical
Publication of CN115656792B publication Critical patent/CN115656792B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

本公开涉及新一代信息技术领域,提供一种芯片可测性设计的测试方法及测试平台,所述方法应用于测试平台,包括:接收测试用例的执行文件对应的第一测试向量及辅助信息,第一测试向量用于测试被测芯片的存储修复功能;测试被测芯片,包括:基于辅助信息,控制激励信号输出到被测芯片的代码;获取被测芯片的代码输出的实际向量值;以及根据第一测试向量包括的预期向量值与实际向量值的比对结果确定第m次测试的测试结果,测试结果指示被测芯片存储修复功能是否正常。本公开实施例的芯片可测性设计的测试方法在应用于本公开实施例的测试平台时,能够针对规模大的芯片,在芯片在投片前完成可测性设计DFT的测试,使得测试平台具备增强功能。

Description

芯片可测性设计的测试方法及测试平台
技术领域
本公开涉及新一代信息技术领域,尤其涉及一种芯片可测性设计的测试方法及测试平台。
背景技术
芯片可测性设计(Design for Test,DFT)指的是在芯片原始设计阶段即插入各种用于提高芯片可测试性(包括可控制性和可观测性)的硬件逻辑,测试向量引擎软件基于这部分逻辑可生成测试向量,测试向量在自动测试机台上完成测试,达到测试大规模芯片的目的。如果可测性设计DFT本身存在一些功能问题,导致产生的测试向量出现错误,则使用测试向量测试芯片时,将大大增加在自动测试机台(Automatic Test Equipment,ATE)上对测试向量进行调试的时间,可能影响芯片的测试结果的可信度,增加了芯片测试的开销,甚至影响芯片功能,导致流片失败。因此,芯片可测性设计DFT的测试是芯片生产制造后一个非常重要的环节,并需要在芯片投片前完成测试。
根据用户需求,在编写测试向量时可以针对被测芯片的特定电路的功能进行测试,得到对应类型的测试向量,例如,比较典型的一种类型是存储内建自测试(MemoryBuild-in Self Test,MBIST)类型,该种类型的测试向量用于测试被测芯片的存储修复功能。
当前主流的公知技术是通过软件仿真平台(例如Simulation)进行存储修复功能的测试。但随着集成电路的发展,芯片的规模越来越大,由于软件仿真平台不擅长大规模芯片,其在芯片规模和测试时间上捉襟见肘,形成了明显瓶颈,对芯片在投片前完成存储修复功能的测试提出了极大挑战。
因此,针对规模较大的芯片,如何在芯片在投片前完成存储修复功能的测试,成为本领域的研究热点。
发明内容
有鉴于此,本公开提出了一种芯片可测性设计的测试方法及测试平台,本公开实施例的芯片可测性设计的测试方法在应用于本公开实施例的测试平台时,能够针对规模较大的芯片,在芯片在投片前完成存储修复功能的测试,使得测试平台具备增强功能。
根据本公开的一方面,提供了一种芯片可测性设计的测试方法,所述方法应用于测试平台,所述方法包括:在对被测芯片的存储修复功能的第m次测试中,接收测试用例的执行文件对应的第一测试向量及辅助信息,所述第一测试向量是所述测试平台可识别的向量,所述第一测试向量用于测试被测芯片的存储修复功能,所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息;测试所述被测芯片,包括:基于所述辅助信息,控制所述第一测试向量对应的激励信号输出到所述被测芯片的代码;获取所述被测芯片的代码输出的实际向量值;以及根据所述第一测试向量包括的预期向量值与所述实际向量值的比对结果确定第m次测试的测试结果,1≤m≤N且为整数,N是正整数;所述测试结果指示被测芯片存储修复功能是否正常,所述测试结果通过用例执行日志展示。
在一种可能的实现方式中,所述被测芯片包括至少一个数据存储电路、至少一个存储修复电路和修复信息存储电路,至少一个数据存储电路与至少一个存储修复电路一一对应;所述数据存储电路是芯片工作时使用的数据存储单元,测试被测芯片的存储修复功能时作为测试、修复的对象;所述存储修复电路用于在对应的数据存储电路产生存储错误时对所述存储错误进行修复并更新修复信息中与对应的数据存储电路有关的部分,所述修复信息包括产生的存储错误是否已经修复和采用的修复方式;所述修复信息存储电路用于存储所述修复信息。
在一种可能的实现方式中,所述基于所述辅助信息,控制所述第一测试向量对应的激励信号输出到所述被测芯片的代码,包括:所述测试平台输出指示上电的激励信号到所述被测芯片的代码的接口,控制所述被测芯片上电;所述被测芯片上电后,将所述修复信息存储电路中存储的修复信息加载至所述至少一个存储修复电路;所述测试平台输出指示所述存储修复电路启动的激励信号到所述被测芯片的代码的接口,控制所述存储修复电路启动;所述存储修复电路启动后,根据接收到的修复信息对已有的存储错误进行修复,和/或在所述数据存储电路产生新的存储错误时对新的存储错误进行修复;所述存储修复电路更新自身存储的修复信息中与对应的数据存储电路有关的部分,所述实际向量值指示所述数据存储电路的修复情况;在所有产生存储错误的数据存储电路的修复均完成后,在m=1时,所述修复信息存储到所述修复信息存储电路。
在一种可能的实现方式中,第m次测试结束后,所述测试所述被测芯片还包括:所述测试平台判断被测芯片的存储修复功能的测试是否满足最终结束条件,在不满足最终结束条件时,开始第m+1次测试;所述结束条件包括m=N。
在一种可能的实现方式中,所述基于所述辅助信息,控制所述第一测试向量对应的激励信号输出到所述被测芯片的代码,包括:在所述辅助信息中的测试周期驱动参数指示的时间点,输出所述激励信号到所述被测芯片的代码的接口,所述被测芯片的代码的接口输出所述实际向量值。
在一种可能的实现方式中,所述根据所述第一测试向量包括的预期向量值与所述实际向量值的比对结果确定第m次测试的测试结果,包括:所述第一测试向量包括的预期向量值指示比对时,比对所述第一测试向量中预期向量值与所述测试周期比对参数指示的时间点处的芯片管脚输出的实际向量值是否匹配;在比对结果是该时间点处的实际向量值和预期向量值不匹配时,记录错误信息,所述错误信息包括该时间点对应的测试周期、该时间点处的实际向量值和预期向量值;根据所述错误信息确定第m次测试的测试结果。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
根据本公开的另一方面,提供了一种测试平台的生成方法,所述方法包括:接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,所述第二测试向量是原始的测试向量,所述第二测试向量用于测试被测芯片的存储修复功能;分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息;根据所述公共信息生成测试平台。
在一种可能的实现方式中,所述公共信息包括被测芯片的芯片管脚参数、时间参数、测试周期时间定义中的一种或多种。
在一种可能的实现方式中,所述方法还包括:根据每个第二测试向量对应的测试向量解析数据生成第一测试向量,所述第一测试向量是所述测试平台可识别的向量,所述第一测试向量在所述测试平台对被测芯片进行测试时使用,用于测试被测芯片的存储修复功能。
在一种可能的实现方式中,所述方法还包括:根据每个第二测试向量对应的测试向量解析数据生成至少一个执行文件,其中每个执行文件对应于至少一个测试用例,所述测试用例执行时,该测试用例的执行文件对应的至少一个第一测试向量及辅助信息依次输入到所述测试平台,所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息以及各第二测试向量的差异信息。
在一种可能的实现方式中,所述第一测试向量包括每个测试周期内,所述被测芯片的单向管脚的预期向量值和激励向量值以及双向管脚的预期/激励向量值。
在一种可能的实现方式中,所述多个第二测试向量包括不同语言编写的测试向量,包括标准测试接口语言STIL、波形生成语言WGL、测试描述语言TDL中的至少一种。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
根据本公开的另一方面,提供了一种测试平台,包括:接收模块,用于在对被测芯片的存储修复功能的第m次测试中,接收测试用例的执行文件对应的第一测试向量及辅助信息,所述第一测试向量是所述测试平台可识别的向量,所述第一测试向量用于测试被测芯片的存储修复功能,所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息;测试模块,用于测试所述被测芯片,包括:基于所述辅助信息,控制所述第一测试向量对应的激励信号输出到所述被测芯片的代码;获取所述被测芯片的代码输出的实际向量值;以及根据所述第一测试向量包括的预期向量值与所述实际向量值的比对结果确定第m次测试的测试结果,1≤m≤N且为整数,N是正整数;所述测试结果指示被测芯片存储修复功能是否正常,所述测试结果通过用例执行日志展示。
在一种可能的实现方式中,所述被测芯片包括至少一个数据存储电路、至少一个存储修复电路和修复信息存储电路,至少一个数据存储电路与至少一个存储修复电路一一对应;所述数据存储电路是芯片工作时使用的数据存储单元,测试被测芯片的存储修复功能时作为测试、修复的对象;所述存储修复电路用于在对应的数据存储电路产生存储错误时对所述存储错误进行修复并更新修复信息中与对应的数据存储电路有关的部分,所述修复信息包括产生的存储错误是否已经修复和采用的修复方式;所述修复信息存储电路用于存储所述修复信息。
在一种可能的实现方式中,所述基于所述辅助信息,控制所述第一测试向量对应的激励信号输出到所述被测芯片的代码,包括:所述测试平台输出指示上电的激励信号到所述被测芯片的代码的接口,控制所述被测芯片上电;所述被测芯片上电后,将所述修复信息存储电路中存储的修复信息加载至所述至少一个存储修复电路;所述测试平台输出指示所述存储修复电路启动的激励信号到所述被测芯片的代码的接口,控制所述存储修复电路启动;所述存储修复电路启动后,根据接收到的修复信息对已有的存储错误进行修复,和/或在所述数据存储电路产生新的存储错误时对新的存储错误进行修复;所述存储修复电路更新自身存储的修复信息中与对应的数据存储电路有关的部分,所述实际向量值指示所述数据存储电路的修复情况;在所有产生存储错误的数据存储电路的修复均完成后,在m=1时,所述修复信息存储到所述修复信息存储电路。
在一种可能的实现方式中,第m次测试结束后,所述测试所述被测芯片还包括:所述测试平台判断被测芯片的存储修复功能的测试是否满足最终结束条件,在不满足最终结束条件时,开始第m+1次测试;所述结束条件包括m=N。
在一种可能的实现方式中,所述基于所述辅助信息,控制所述第一测试向量对应的激励信号输出到所述被测芯片的代码,包括:在所述辅助信息中的测试周期驱动参数指示的时间点,输出所述激励信号到所述被测芯片的代码的接口,所述被测芯片的代码的接口输出所述实际向量值。
在一种可能的实现方式中,所述根据所述第一测试向量包括的预期向量值与所述实际向量值的比对结果确定第m次测试的测试结果,包括:所述第一测试向量包括的预期向量值指示比对时,比对所述第一测试向量中预期向量值与所述测试周期比对参数指示的时间点处的芯片管脚输出的实际向量值是否匹配;在比对结果是该时间点处的实际向量值和预期向量值不匹配时,记录错误信息,所述错误信息包括该时间点对应的测试周期、该时间点处的实际向量值和预期向量值;根据所述错误信息确定第m次测试的测试结果。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
根据本公开的另一方面,提供了一种测试平台的生成装置,包括:第一分析模块,用于接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,所述第二测试向量是原始的测试向量,所述第二测试向量用于测试被测芯片的存储修复功能;第二分析模块,用于分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息;第一生成模块,用于根据所述公共信息生成测试平台。
在一种可能的实现方式中,所述公共信息包括被测芯片的芯片管脚参数、时间参数、测试周期时间定义中的一种或多种。
在一种可能的实现方式中,所述装置还包括:第二生成模块,用于根据每个第二测试向量对应的测试向量解析数据生成第一测试向量,所述第一测试向量是所述测试平台可识别的向量,所述第一测试向量在所述测试平台对被测芯片进行测试时使用,用于测试被测芯片的存储修复功能。
在一种可能的实现方式中,所述装置还包括:第三生成模块,用于根据每个第二测试向量对应的测试向量解析数据生成至少一个执行文件,其中每个执行文件对应于至少一个测试用例,所述测试用例执行时,该测试用例的执行文件对应的至少一个第一测试向量及辅助信息依次输入到所述测试平台,所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息以及各第二测试向量的差异信息。
在一种可能的实现方式中,所述第一测试向量包括每个测试周期内,所述被测芯片的单向管脚的预期向量值和激励向量值以及双向管脚的预期/激励向量值。
在一种可能的实现方式中,所述多个第二测试向量包括不同语言编写的测试向量,包括标准测试接口语言STIL、波形生成语言WGL、测试描述语言TDL中的至少一种。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
根据本公开的另一方面,提供了一种测试平台,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述芯片可测性设计的测试方法。
根据本公开的另一方面,提供了一种测试平台的生成装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述测试平台的生成方法。
根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述芯片可测性设计的测试方法,或实现上述测试平台的生成方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述芯片可测性设计的测试方法,或执行上述测试平台的生成方法。
根据本公开实施例的芯片可测性设计的测试方法,通过在对被测芯片的存储修复功能的第m次测试中,接收测试用例的执行文件对应的第一测试向量及辅助信息,第一测试向量是测试平台可识别的向量,辅助信息包括控制测试平台对被测芯片进行测试的指导信息,可以获取到芯片可测性设计的测试的必要信息;通过基于辅助信息控制第一测试向量对应的激励信号输出到被测芯片的代码;获取被测芯片的代码输出的实际向量值;以及根据第一测试向量包括的预期向量值与实际向量值的比对结果确定第m次测试的测试结果,可以完成芯片可测试设计的测试。第一测试向量用于测试被测芯片的存储修复功能,使得第一测试向量可以是存储内建自测试类型的向量;测试结果指示被测芯片存储修复功能是否正常,使得芯片可测性设计的测试方法可以应用于存储内建自测试场景。基于本公开实施例的测试平台,本公开实施例的芯片可测性设计的测试方法提出一套全面的测试架构,可以实现精准定位到测试异常所在的第一测试向量和对应的测试周期数。测试结果可通过用例执行日志展示,实现了芯片可测试设计的测试流程的自动化。在测试过程中无需任何非通用自研装置、设备、芯片外围电路,从而避免了其他硬件引入不可预知问题,使得本公开实施例的芯片可测性设计的测试方法在测试结果上更加准确。
根据本公开实施例的测试平台生成方法,通过接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,分析测试向量解析数据,可以识别得到多个第二测试向量的公共信息;根据公共信息可以生成测试平台。第二测试向量用于测试被测芯片的存储修复功能,因此第二测试向量可以是存储内建自测试类型的测试向量,使得生成的测试平台可以在存储内建自测试场景下使用,完成存储修复功能的测试;解析第二测试向量生成测试平台的过程可以实现自动化,释放了用户自己搭建测试环境的精力;第二测试向量是原始的测试向量,对第二测试向量的解析可以不涉及将其转换成某种特定格式,因此可以降低测试向量解析数据以及公共信息与第二测试向量相比的失真程度;根据本公开实施例的测试平台生成方法生成的测试平台可以用于芯片可测性设计的测试,能够保证芯片可测性设计的测试的完备性。该测试平台无需特定的自研硬件装置和芯片外围电路,对测试向量的数据存储、测试芯片逻辑规模、管脚数量、管脚驱动能力、出错后的调试能力的限制很小,因此通用性强;且能够实现投片前测试,可以在芯片项目前期发现问题,以更小的代价,更大程度释放芯片可测性设计风险,同时清除测试向量问题,节省在自动测试机台ATE上因为测试向量问题耗费的测试向量调试时间,从而节省自动测试机台ATE的测试开销,降低芯片的测试成本。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出现有技术的被测芯片的结构的示意图。
图2示出根据本公开实施例的测试平台的生成方法的流程的示意图。
图3示出根据本公开实施例的测试平台的生成方法的流程的示意图。
图4示出本公开实施例的测试平台在不同的仿真平台上、不同的使用模式下的测试速度的示例。
图5示出根据本公开实施例的芯片可测性设计的测试方法的流程的示意图。
图6示出根据本公开实施例的芯片可测性设计的测试方法的流程的示意图。
图7示出根据本公开实施例的芯片可测性设计的测试方法的流程的示意图。
图8示出根据本公开实施例的测试平台的结构图。
图9示出根据本公开实施例的测试平台的生成装置的结构图。
图10示出根据本公开实施例的装置1900的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
现有技术一的方案提出了一种基于现场可编程门阵列(Field-ProgrammableGate Array,PFGA)的芯片可测性设计DFT的测试系统。该系统包括文件处理装置和自动化测试平台,自动化测试平台包括硬件底板和现场可编程门阵列PFGA子板:文件处理装置仅能处理波形生成语言(Waveform Generation Language,WGL)格式的测试向量,脚本将波形生成语言WGL格式的测试向量转换成可综合代码文件,并对可综合代码文件进行综合等处理后烧写到现场可编程门阵列FPGA子板上;现场可编程门阵列FPGA子板在上电复位启动后,将输入/输出(input/output,IO)激励信息通过插槽发送给硬件底板的被测芯片,并获取被测芯片输出的实际返回值后与预设的理想返回值进行比对以验证波形生成语言WGL格式的测试向量的正确性。
该方法存在如下不足:需要被测芯片设置在硬件底板上,因此无法实现投片前测试;仅面向波形生成语言WGL格式的测试向量,对于其他语言编写的测试向量并不适应;系统需要定制芯片外围电路,外围电路将引入不可预期问题;无法适配于除现场可编程门阵列PFGA之外的其他硬件仿真平台或软件仿真平台;现场可编程门阵列FPGA的选型会限制测试向量的数据存储、被测芯片逻辑规模、管脚数量;基于现场可编程门阵列FPGA的测试,对测试向量的调试能力非常有限。
现有技术二的方案提出了一种基于通用硬件设备或自研硬件装置的芯片可测性设计DFT的测试方法。该方法针对多种格式的测试向量,分别提出对应的测试向量解析方式,将测试向量解析为通用硬件设备或自研硬件装置可处理的数据;配合控制流程、服务器或自研硬件装置,模拟自动测试机台ATE的测试环境,实现对芯片可测性设计DFT的测试。
该方案存在如下不足:无法实现投片前测试;自研硬件装置与硬件仿真平台强相关,无法适配于软件仿真平台;需要流片完成后定制芯片外围电路;需要硬件仿真平台达到与自动测试机台ATE等价的性能,如真实的时钟频率、信号完整性等,对于大规模、多输入/输出的芯片,将是非常大的挑战。
现有技术三的方案提出了一种将自动测试机台ATE不可识别的格式的测试向量转换为自研的硬件装置可识别的格式,再使用自研的硬件装置进行测试的方法。测试向量的格式转换的正确性在自研硬件装置上测试。
该方案存在如下不足:无法实现投片前测试;无法直接支持多种测试向量格式,而转换后的测试向量存在一定的失真,会降低测试结果的准确性。
下面结合被测芯片的结构介绍存储内建自测试类型的测试向量的特征。图1示出现有技术的被测芯片的结构的示意图。
如图1所示,一些芯片可能被设计时为具备存储修复功能,这种具备存储修复功能的芯片可包括至少一个数据存储电路、至少一个存储修复电路和修复信息存储电路,其中至少一个数据存储电路与至少一个存储修复电路一一对应。数据存储电路是芯片工作时使用的数据存储单元,测试被测芯片的存储修复功能时作为测试、修复的对象;存储修复电路用于在对应的数据存储电路产生存储错误时对存储错误进行修复并更新修复信息中与对应的数据存储电路有关的部分,修复信息包括产生的存储错误是否已经修复和采用的修复方式;修复信息存储电路用于存储修复信息。其中修复信息存储电路通常使用FUSE存储电路,对压缩的修复信息一次固化,永久保存。芯片还可包括接口,用于与测试平台进行通信,芯片通过接口可以接收测试平台下发的指令,并输出修复信息到测试平台等等。接口通常使用TAP接口。
相应地,这种芯片的芯片可测性设计的测试也应包括对被测芯片的存储修复功能进行测试。被测芯片的存储修复功能可以指数据存储电路产生存储错误时,存储修复电路对存储错误进行修复的能力。对此,提出了对被测芯片的存储修复功能进行测试的存储内建自测试类型的测试向量。存储内建自测试类型的测试向量对被测芯片的存储修复功能进行测试时,可以是针对每个产生存储错误的数据存储电路对应的存储修复电路,均测试确认存储修复电路对存储错误进行修复的能力是否满足需求。根据测试的结果确定被测芯片的存储修复功能。
结合上文所述可知,现有技术的方案在完成存储修复功能的测试时存在如下问题:
1、无法实现投片前测试;在回片后测试,发现问题过晚,也不能完全替代自动测试机台ATE测试;
2、平台可以移植性差,不能在软件仿真平台(如Simulation等)、硬件仿真平台(如Emulation、现场可编程门阵列FPGA等)中灵活切换;
3、硬件装置会限制测试向量的数据存储、测试芯片逻辑规模、管脚数量、管脚驱动能力,出错后的调试能力,特别是自研硬件装置,会对芯片测试带来额外的硬件问题,业内的通用性差;
4、需要流片完成后定制芯片外围电路,外围电路将引入不可预期问题;
5、有的现有技术仅支持输入单一的测试向量格式,过于单一;有的现有技术支持多种测试向量格式转换为一种格式,但无法直接支持多种测试向量格式,无法做到从原始输入的测试向量无失真提取数据。
有鉴于此,本公开提出了一种芯片可测性设计的测试方法及测试平台,本公开实施例的芯片可测性设计的测试方法在应用于本公开实施例的测试平台时,能够针对规模较大的芯片,在芯片在投片前存储修复功能的测试,使得测试平台具备增强功能。
图2和图3示出根据本公开实施例的测试平台的生成方法的流程的示意图。如图2所示,该测试平台生成方法包括步骤S11-S13:
步骤S11,接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,第二测试向量是原始的测试向量,第二测试向量用于测试被测芯片的存储修复功能;
步骤S12,分析测试向量解析数据,识别得到多个第二测试向量的公共信息;
步骤S13,根据公共信息生成测试平台。
举例来说,如图3所示,可以设置一个“测试向量解析引擎”,用于执行本公开实施例的测试平台生成方法。用户可以指定包括多种格式的第二测试向量的测试向量文件集(未示出),其中,第二测试向量是原始的测试向量,即未经格式转换的测试向量,可以是利用不同的工具(编程语言)编写或生成的不同格式的测试向量,第二测试向量的类型可以是存储内建自测试类型,可针对同一款芯片进行测试。
在步骤S11中,通过对所有第二测试向量进行分析,识别每个第二测试向量的格式,可以抽取每个第二测试向量的有效信息,以每个第二测试向量对应的测试向量解析数据的形式存储在本地数据库中,供后续步骤使用。其中抽取的信息可以是各种格式的测试向量通用的数据,例如管脚以及测试周期等。可选地,如图3所示,在“测试向量解析引擎”中可以设置一个“测试向量解析器”(软件模块),将第二测试向量作为该“测试向量解析器”的输入,该“测试向量解析器”可以执行步骤S11。第二测试向量的格式的示例可以参见下文的相关描述。
在步骤S12中,通过分析测试向量解析数据,可以识别出不同的第二测试向量的解析数据中无差异的部分,得到多个第二测试向量的公共信息。可选地,如图3所示,上述“测试向量解析器”还可以执行步骤S12。每个第二测试向量与其他第二测试向量的差异部分可以作为该第二测试向量的辅助信息存储。辅助信息在对被测芯片进行测试时使用。其中,该步骤分析的测试向量解析数据对应的第二测试向量可以是测试向量文件集中的全部或者部分,本公开对此不作限制。公共信息和辅助信息的示例可以参见下文的相关描述。
在识别公共信息后,在步骤S13中,根据公共信息可以生成测试平台(Testbench,TB)。可选地,如图3所示,可以设置一个“测试平台生成器”(软件模块),将公共信息作为该“测试平台生成器”的输入,该“测试平台生成器”对公共信息做二次综合解析,以解析测试的方式,归纳出测试平台可具备的功能,形成测试平台中的各模块,从而自动生成测试平台。可选地,测试平台中的各模块可以是不可综合的软件形态,也可是可综合成硬件的硬件形态。该测试平台可以完成步骤S11分析过的所有第二测试向量关联的被测芯片的测试。测试平台的各模块的示例可以参见下文测试平台执行芯片可测性设计的测试方法部分的描述。
本公开实施例的测试平台可具备如下功能:激励驱动、向量值比对、错误信息(Error Information)记录(存储)和/或输出(打印、上报)。每个功能的示例可以参见下文测试平台执行芯片可测性设计的测试方法部分的描述。
根据本公开实施例的测试平台生成方法,通过接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,分析测试向量解析数据,可以识别得到多个第二测试向量的公共信息;根据公共信息可以生成测试平台。第二测试向量用于测试被测芯片的存储修复功能,因此第二测试向量可以是存储内建自测试类型的测试向量,使得生成的测试平台可以在存储内建自测试场景下使用,完成存储修复功能的测试;解析第二测试向量生成测试平台的过程可以实现自动化,释放了用户自己搭建测试环境的精力;第二测试向量是原始的测试向量,对第二测试向量的解析可以不涉及将其转换成某种特定格式,因此可以降低测试向量解析数据以及公共信息与第二测试向量相比的失真程度;根据本公开实施例的测试平台生成方法生成的测试平台可以用于芯片可测性设计的测试,能够保证芯片可测性设计的测试的完备性。该测试平台无需特定的自研硬件装置和芯片外围电路,对测试向量的数据存储、测试芯片逻辑规模、管脚数量、管脚驱动能力、出错后的调试能力的限制很小,因此通用性强;且能够实现投片前测试,可以在芯片项目前期发现问题,以更小的代价,更大程度释放芯片可测性设计风险,同时清除测试向量问题,节省在自动测试机台ATE上因为测试向量问题耗费的测试向量调试时间,从而节省自动测试机台ATE的测试开销,降低芯片的测试成本。
在一种可能的实现方式中,多个第二测试向量包括不同语言编写的测试向量,包括标准测试接口语言(Standard Test Interface Language,STIL)、波形生成语言(Waveform Generation Language,WGL)、测试描述语言(Test Description Language,TDL)中的至少一种。
举例来说,参见图3,波形生成语言WGL格式的第二测试向量的编号可以是A0-An,标准测试接口语言STIL格式的第二测试向量的编号可以是B0-Bn,其他格式的第二测试向量的编号可以是C0-Cn。需要注意的是,本公开中提及的A0-An、B0-Bn、C0-Cn仅表示编号,并不表示第二测试向量本身。在图3中以每种格式的第二测试向量的数量均相同且等于n为示例,本领域人员应理解,各格式的第二测试向量的数量也可以不同,本公开对此不作限制。
本公开实施例的第二测试向量可以是被编写为能够完成下述测试流程的向量:
1)芯片上电,启动第一次测试,测试过程中,仿真器强制产生存储错误;
2)存储修复电路对存储错误进行修复,产生存储修复信息(RepairInformation),转存修复信息到修复信息存储电路,仿真器将修复信息存储电路中的修复信息读出;
3)芯片再次上电,仿真器将修复信息以后门访问方式载入修复信息存储电路中;
4)启动下一次测试,检查修复结果是否符合预期,或者,测试过程中,仿真器强制产生新的存储错误,重复步骤2)及之后的步骤。
可选地,在编写第二测试向量时,上述测试流程在第二测试向量中可以体现为下文所述的芯片管脚参数、时间参数、测试周期时间定义等等。
由于存储错误是在控制下产生的,因此如何修复存储错误也是可以预期的,在编写第二测试向量时,可以将预期的修复信息也编写进来。
本领域技术人员应理解,第二测试向量的格式还可以进一步拓展,只要是现有技术中能够用于编写芯片可测性设计的测试向量的编程语言均可,本公开对于第二测试向量的具体格式不作限制。第二测试向量还可以包括更多与存储修复的测试有关的内容,本公开对此不作限制。
通过这种方式,可以实现测试向量格式的多元化。
下面分别介绍分析测试向量解析数据识别得到的公共信息以及辅助信息的示例。
在一种可能的实现方式中,公共信息包括被测芯片的芯片管脚参数、时间参数、测试周期时间定义中的一种或多种。
其中,芯片管脚参数可以指示测试使用的芯片管脚及其输入属性、输出属性、输入和输出双向属性等等与芯片管脚有关的信息。例如,对于标准测试接口语言STIL格式的第二测试向量,测试使用的芯片管脚可以是第二测试向量中Signals关键字下的管脚,各管脚的输入属性、输出属性、输入和输出双向属性,可以分别通过第二测试向量中Signals关键字下的各管脚的In、Out、InOut来描述;对于波形生成语言WGL格式的第二测试向量,测试使用的芯片管脚可以是第二测试向量中signal关键字下的管脚,各管脚的输入属性、输出属性、输入和输出双向属性,可以分别通过第二测试向量中signal关键字下各管脚input、output、bidi来描述。芯片管脚参数还可以指示芯片管脚的分组信息,例如对于标准测试接口语言STIL格式的第二测试向量,芯片管脚的分组信息可以通过第二测试向量中SignalGroups关键字下的多个信号分组来描述。
时间参数可以指示测试周期,芯片可测性设计的测试可对应多个测试周期。例如,对于标准测试接口语言STIL格式的第二测试向量,时间参数可以通过第二测试向量中Spec关键字下的测试机台周期(test_periods)、激励驱动时刻(t_time)、激励驱动窗长(t_width)、输出观测时刻(strobe_t)、输出观测窗长(strobe_window_tmp)等参数值来描述;对于波形生成语言WGL格式的第二测试向量,时间参数可以通过第二测试向量中equationsheet关键字来描述。
测试周期时间定义可以指示测试周期内激励信号的波形、观测芯片输出的向量值时间,其中激励信号可用于输出至被测芯片的代码,被测芯片的代码根据激励信号可产生并输出向量值,芯片输出的向量值可以用于进行向量值比对。例如,对于标准测试接口语言STIL格式的第二测试向量,激励信号的波形可以通过第二测试向量中Timing关键字下,对WaveformTable关键字下Waveforms的描述,结合时间参数,定义了在测试周期内,激励信号的波形以及观测芯片输出的向量值的时间点;对于波形生成语言WGL格式的第二测试向量,测试周期时间定义可以通过第二测试向量中timeplate关键字下各管脚输入的激励、输出观测来描述。
对于标准测试接口语言STIL、波形生成语言WGL以外的其他格式的第二测试向量,都可以基于第二测试向量包括的特定关键字提取得到上述公共信息,在此不再赘述。
公共信息中的芯片管脚参数、时间参数、测试周期时间定义可以是各第二测试向量的解析数据中,与芯片管脚参数、时间参数、测试周期时间定义的公共部分。通过这种方式,可降低使用公共信息得到测试平台的数据处理成本。
在一种可能的实现方式中,辅助信息包括控制测试平台对被测芯片进行测试的指导信息以及各第二测试向量的差异信息。
举例来说,首先,辅助信息可以用于在测试平台对被测芯片的可测性设计进行测试的过程中,决定测试平台的控制行为,例如控制测试平台执行下文所述的芯片可测性设计的测试方法,因此辅助信息可包括控制测试平台对被测芯片进行测试的指导信息,该指导信息可通过分析测试向量解析数据得到。指导信息中可包括控制激励驱动的方式的测试周期驱动参数以及控制比对方式的测试周期观测比对参数,指导信息的示例性使用方式可以参见下文的芯片可测性设计的测试方法部分的相关描述。
各第二测试向量是存在差异的,可以将每个第二测试向量与其他第二测试向量的差异信息作为辅助信息的一部分,与公共信息伴随存储。例如某个第二测试向量的测试周期时间定义与其他第二测试向量不一致时,该第二测试向量的辅助信息可以包括该第二测试向量中对芯片输入的激励驱动、输出观测时间定义部分。
通过这种方式,使得公共信息与辅助信息结合可以无失真地描述各第二测试向量,且需要存储的数据量更少,降低数据存储成本。
在一种可能的实现方式中,测试平台适配于软件仿真平台和硬件仿真平台。
本公开实施例的测试平台可以由可综合硬件描述语言verilog实现。在此情况下,测试平台可适配于硬件仿真平台,例如硬件加速器(Emulation),使得测试平台执行下文所述的芯片可测性设计的测试方法时速度更快。本公开实施例的测试平台还可以由可综合硬件描述语言verilog以及不可综合的语句实现,不可综合的语句可以用于为测试平台增加调试定位等功能,以提高测试平台的能力。测试平台还可以适配于软件仿真平台,例如软件仿真服务器(Simulation),使得测试平台能够在软件仿真平台和硬件仿真平台中切换,提升测试平台的应用方式的灵活性。图4和表1示出本公开实施例的测试平台在不同的仿真平台上、不同的使用模式下的测试速度的示例。
表1
Figure DEST_PATH_IMAGE001
参见图4和表1,本公开实施例的测试平台应用在软件仿真服务器时,使用模式可以包括simulation模式,该模式下测试平台可以应用在模拟器(Simulator)场景,测试速度(仿真速度)约为10Hz;测试平台应用在硬件加速器时,使用模式可以包括事务级验证加速(Transaction Based Acceleration,TBA)模式以及内部电路仿真(In-CircuitEmulation,ICE)模式,其中事务级验证加速TBA模式下测试平台可以应用在硬件加速器EMU-仿真加速场景,测试速度(仿真速度)可以达到10KHz~100KHz,内部电路仿真ICE模式下测试平台可以应用在硬件加速器EMU-原型验证场景,测试速度(仿真速度)可以达到100KHz~4MHz。可以看出,测试平台应用在硬件加速器时的测试速度(仿真速度)大于应用在软件仿真服务器时的测试速度(仿真速度)。其中,应用在硬件加速器时,在内部电路仿真ICE模式下测试速度(仿真速度)最快。并且,测试平台应用在硬件加速器时支持的被测电路的逻辑规模也远大于应用在软件仿真服务器时。
可选地,测试平台还可以应用于除硬件加速器之外的其他硬件仿真平台,例如现场可编程门阵列FPGA等,以及除软件仿真服务器之外的其他软件仿真平台,本公开对此不作限制。
通过这种方式,使得本公开实施例的测试平台既能实现仿真速度的提升,又能适配于多种平台,提升测试平台的应用方式的灵活性,且使得被测芯片的逻辑规模受限程度降低,提升测试平台的能力。
在一种可能的实现方式中,所述方法还包括:
步骤S14,根据每个第二测试向量对应的测试向量解析数据生成第一测试向量,第一测试向量是测试平台可识别的向量,第一测试向量在测试平台对被测芯片进行测试时使用,用于测试被测芯片的存储修复功能。
举例来说,原始的第二测试向量是测试平台不可识别的向量,因此无法在测试平台对被测芯片进行测试时使用。对此,在分析第二测试向量对应的测试向量解析数据时,在步骤S14中,也可以基于测试周期(test cycle)提取、转换得到各测试向量在各测试周期的向量值(Test Cycle Vector),即对原始的第二测试向量的每个测试周期中各管脚输入的激励向量值和各管脚输出的预期向量值,以测试平台可识别的数据格式存储,得到每个第二测试向量一一对应的第一测试向量。此时第一测试向量可以是测试平台可识别的向量,能够在测试平台对被测芯片进行测试时使用。第一测试向量可以与其对应的第二测试向量完成同样的测试流程。例如与其对应的第二测试向量包括完成相同流程的芯片管脚参数、测试周期时间定义以及预期的修复信息等等,其中触发各种流程的可以是第一测试向量中的激励信号(激励向量值),预期的修复信息可以通过第一测试向量中的预期向量值体现。
可选地,如图3所示,可以设置一个“第一测试向量生成器”(软件模块),将每个第二测试向量对应的测试向量解析数据作为该“第一测试向量生成器”的输入,该“第一测试向量生成器”执行步骤S14。其中各第二测试向量对应的测试向量解析数据可以串行输入到“第一测试向量生成器”中。
通过这种方式,可以得到测试平台可识别的第一测试向量,并且能够确定第一测向量与辅助信息的对应关系,使得使用测试平台对被测芯片进行测试成为可能。
在一种可能的实现方式中,第一测试向量包括每个测试周期内,被测芯片的单向管脚的预期向量值和激励向量值以及双向管脚的预期/激励向量值。
举例来说,测试平台可识别的第一测试向量的格式可以是一个二维数组,其中二维数组的每行存储的可以是单个测试周期的向量(Vector)数据,例如数组有m行时,第一行可存储测试周期(Test cycle)0的向量数据,以此类推,第m行可存储测试周期m-1的向量数据,即该第一测试向量的测试周期数与二维数组的深度(行数)相等。该二维数组可以是二进制数组,使得第一测试向量可以直接加载到测试平台的存储区域中。本领域技术人员应理解,二维数组也可以是测试平台存储空间可识别的其他格式的数组,本公开对此不作限制。
基于此,针对第二测试向量的测试向量解析数据,可以先分析出每个测试周期的数据。例如,对于基本语法,以测试周期为单位,可直接提取测试向量解析数据中对应于每个测试周期的部分,对于标准测试接口语言STIL格式的第二测试向量的测试向量解析数据,可以分析V关键字下的部分;对于波形生成语言WGL格式的第二测试向量的测试向量解析数据,可以分析vector关键字下的部分。
对于循环语法,可将解析数据中针对测试向量的循环描述展开为每个测试周期的数据,例如对于标准测试接口语言STIL格式的第二测试向量的测试向量解析数据,可以展开Loop关键字下的部分。
对于扫描链语法,在解析时可能获得扫描链定义和一些宏定义。其中,扫描链定义可以是对于扫描链中扫描单元的声明,以及扫描链的结构描述、状态描述等,例如对于标准测试接口语言STIL格式的第二测试向量的测试向量解析数据,扫描链的结构描述可以记载于ScanStructures关键字下,包括对各扫描链链长、反向次数、输入管脚、输出管脚、扫描时钟的描述;对于波形生成语言WGL格式的第二测试向量的测试向量解析数据,扫描链的结构描述可以记载于scancell、scanchain关键字下,扫描链的状态描述可以记载于scanstate关键字下。宏定义可以包括测试向量的宏定义模板,例如对于标准测试接口语言STIL格式的第二测试向量的测试向量解析数据,宏定义可以记载于MacroDefs关键字下。结合扫描链定义和宏定义,可以解析得到每个测试周期的数据。
可以理解的是,对测试向量解析数据进行分析得到每个测试周期的数据的示例应不限于上述方式,只要是现有技术能实现的分析方式即可,本公开实施例对此不作限制。
在得到每个测试周期的数据后,可基于每个测试周期的数据对应得到第一测试向量中一行的向量数据(Vector)。每行的向量数据可包括如下部分:被测芯片的单向管脚的激励向量值和预期向量值,即在整个测试过程中该管脚的输入/输出属性不改变,分别占用2bit;被测芯片的双向管脚的预期/激励向量值,即在整个测试过程中该管脚的输入/输出属性会改变,共占用3bit。可选地,还可以包括测试周期序号,即向量数据在整个第一测试向量中的测试周期序号,测试周期序号可在调试第一测试向量时使用,可占用32bit。可选地,还可以扩展增加其他信息,自行定义比特位宽。单向管脚的激励向量值和单向管脚的预期向量值的示例可以分别参见表2和表3。双向管脚的预期/激励向量值的示例可以参见表4。
表2
Figure DEST_PATH_IMAGE002
表3
Figure DEST_PATH_IMAGE003
表4
Figure DEST_PATH_IMAGE004
参见表2,根据测试向量解析数据确定芯片单向管脚输入激励为0时,可以得到单向管脚的激励向量值2’b00;确定芯片单向管脚输入激励为1时,可得到单向管脚的激励向量值2’b01;确定芯片单向管脚输入激励为高阻态Z时,可以得到单向管脚的激励向量值2’b11。其中“2’b”用于描述单向管脚的激励向量值占据的比特位宽为2,且数值为二进制。
参见表3,根据测试向量解析数据确定芯片单向管脚输出预期为0时,可以得到单向管脚的预期向量值2’b00;确定芯片单向管脚输出预期为1时,可得到单向管脚的预期向量值2’b01;确定芯片单向管脚输出预期为X,即不预期时,可以得到单向管脚的预期向量值2’b11。
参见表4,根据测试向量解析数据确定芯片双向管脚输入激励为0时,可以得到双向管脚的激励向量值3’b000;确定芯片管脚输入激励为1时,可得到双向管脚的激励向量值3’b001;确定芯片管脚输入激励为高阻态Z时,可以得到双向管脚的激励向量值3’b011;确定芯片双向管脚输出预期为0时,可以得到双向管脚的预期向量值3’b100;确定芯片双向管脚输出预期为1时,可得到双向管脚的预期向量值3’b101;确定芯片双向管脚输出预期为X,即不预期时,可以得到双向管脚的预期向量值3’b111。其中“3’b”用于描述双向管脚的预期/激励向量值占据的比特位宽为3,且数值为二进制。
确定第一测试向量中的每行向量数据之后,按照测试周期序号由小到大的顺序可确定每行向量数据在二维数组中的位置,即可得到上文所述的二维数组格式的第一测试向量。表5示出根据本公开实施例的第一测试向量的格式的示例。
表5
Figure DEST_PATH_IMAGE005
如表5所示,每个测试周期中每个管脚可以有不同的激励/预期向量值。在表5的示例中,被测芯片可包括3个以上的测试周期(测试周期序号为32’h0000_0000、32’h0000_0001、32’h0000_0002、……),并包括2个以上的单向管脚(芯片管脚a、芯片管脚b、……),1个以上的双向管脚(芯片管脚c、……)。其中,以测试周期序号为32’h0000_0000的测试周期为例,该测试周期中,芯片管脚a的输入激励可以是0(激励向量值2’b00),芯片管脚b的输出预期可以是1(预期向量值2’b11),芯片管脚c的输入激励可以是0(激励/预期向量值3’b000)。“32’h”表示测试周期序号占据的比特位宽为32,且数值为十六进制。
可以理解的是,表2-表4示出的二进制形式的激励/预期向量值与管脚的输入激励/输出预期的对应关系仅为示例,例如二者的对应关系也可以是激励向量值2’b10时对应单向管脚的输入激励为高阻态等,只要能满足激励/预期向量值与管脚的输入/输出状态一一对应,且管脚的不同状态对应的激励/预期向量值不同即可,本公开对此不作限制。可选地,还可改变激励/预期向量值的位宽等等,本公开对此不作限制。表5所示的第一测试向量的格式仅为示例,第一测试向量还可以包括更多的信息,例如除管脚的预期/激励向量值以外的其他对芯片的控制信息、调试信息等等,本公开对此不作限制。
在一种可能的实现方式中,所述方法还包括:
步骤S15,根据每个第二测试向量和对应的测试向量解析数据生成至少一个执行文件,其中每个执行文件对应于至少一个测试用例,测试用例执行时,该测试用例的执行文件对应的至少一个第一测试向量及辅助信息依次输入到测试平台。
举例来说,基于测试向量的解析数据,可以产生用于编译/综合的编译/综合执行文件、用于单用例执行的用例执行文件以及用于多用例回归的回归执行文件,以便于用户执行用例与回归。可选地,如图3所示,可以设置一个“执行文件生成器”(软件模块),将测试向量解析数据作为该“执行文件生成器”的输入,该“执行文件生成器”执行步骤S15,生成编译/综合执行文件、用例执行文件、回归执行文件。
其中,针对每个第二测试向量可以对应生成一个用例执行文件,针对所有的被解析的第二测试向量可以对应生成一个回归执行文件。执行某个执行文件对应的测试用例,可以是运行该执行文件中对应的命令行,使得执行文件对应的至少一个第一测试向量及辅助信息输入到测试平台,由测试平台产生用例执行日志。则针对用例执行文件,用例执行日志也可以是单测试用例对应的日志;对于回归执行文件,用例执行日志可以是多个测试用例对应的日志。各种执行文件的用途可以参见下文芯片可测性设计的测试方法部分的描述。
在生成执行文件时,可根据用户需求在执行文件中增加“存储错误产生命令”,在此情况下,在测试用例执行时,对芯片进行测试的过程中,硬件/软件仿真平台会以强制(force)方式或者其他方式模拟真实芯片中存储错误导致的故障,使得基于该故障可以完成芯片的存储修复功能的测试。存储错误产生命令可基于不同的硬件/软件仿真平台所支持的语法格式编写适配,本公开对于存储错误产生命令的具体编写方式不作限制。
“存储错误产生命令”可以是通过指定产生存储错误的数据存储电路和/或指定产生的存储错误的类型来编写。在指定产生存储错误的数据存储电路时,只要数据存储至该数据存储电路中的特定比特就会产生存储错误;在指定产生的存储错误的类型时,可以是无论何种数据存储至数据存储电路中的特定比特,该比特最终存储的数据均为固定值,例如固定值为0或者1。本领域技术人员应理解,“存储错误产生命令”还可以有更多的编写方式,并支持多种存储错误类型,本公开对此不作限制。
针对生成的存储错误,在执行用例中还增加存储修复流程相关的命令。在执行测试用例时,基于测试用例对应的执行文件,可以完成执行文件中的存储修复流程,根据修复信息确定测试结果。存储修复流程相关的命令可以基于现有技术实现,在此不再赘述。存储修复流程的示例可以参见下文芯片可测性设计的测试方法部分的描述。
通过这种方式,可以自动生成执行文件,执行文件可以对应至少一个测试用例,使得执行文件对应的测试用例执行时既可实现单用例仿真也可实现多用例回归,提高执行测试用例的便捷性。
图5-图7示出根据本公开实施例的芯片可测性设计的测试方法的流程的示意图。如图5所示,该芯片可测性设计的测试方法包括:
步骤S21,在对被测芯片的存储修复功能的第m次测试中,接收测试用例的执行文件对应的第一测试向量及辅助信息,第一测试向量是测试平台可识别的向量,第一测试向量用于测试被测芯片的存储修复功能,辅助信息包括控制测试平台对被测芯片进行测试的指导信息;
步骤S22,测试被测芯片,包括基于辅助信息,控制第一测试向量对应的激励信号输出到被测芯片的代码;获取被测芯片的代码输出的实际向量值;以及根据第一测试向量包括的预期向量值与实际向量值的比对结果确定第m次测试的测试结果,1≤m≤N且为整数,N是正整数;
测试结果指示被测芯片存储修复功能是否正常,测试结果通过用例执行日志展示。
举例来说,整芯片的规模通常非常大,流程上一般会对芯片的代码进行编译/综合后再执行测试。如图6所示,基于测试平台,可利用现有技术产生“编译/综合文件”,将一系列命令操作封装成简洁的命令,方便用户操作。在此情况下,在执行测试用例时,用户只需输入测试平台的文件与被测芯片代码。用户修改少量必要的信息(例如测试数据存储路径、执行的是哪个或者哪些测试用例等),运行命令,即可完成测试用例(如图6中的用例A0和/或用例An和/或用例Cn)的执行,用例执行日志(如图6中的用例A0日志和/或用例An日志和/或用例Cn日志)可以存储在数据库中,等待用户查询或者主动上报给用户。
根据用户给出的测试用例的信息,可以确定待执行的测试用例(可能是单个测试用例也可能是多个测试用例),并执行测试用例。如图7所示,在执行测试用例(例如用例A0)时,根据执行文件可依次启动对被测芯片的存储修复功能的N次测试,N是正整数。在对被测芯片的存储修复功能的第m次测试中,可先将测试用例的执行文件(单个测试用例对应的是上文所述的用例执行文件,多个测试用例可以对应上文所述的回归执行文件)对应的第一测试向量及辅助信息加载到测试平台的存储空间里,对于测试平台来说,可以是执行步骤S21,接收测试用例的执行文件对应的第一测试向量及辅助信息。其中第一测试向量的示例可以参见上文表2-表5的相关描述,辅助信息的获得方式的示例可以参见上文步骤S12的相关描述。
其中,如图7所示,测试平台可包括以下模块:存储空间、激励驱动器、控制逻辑、向量值比对器。用例执行时,按照执行文件指示的流程,辅助信息被加载到“控制逻辑”中,“控制逻辑”可控制步骤S22的执行,完成以下功能:基于辅助信息,控制激励信号的发送时序、向量值的比对、比对结果的存储等。所有测试平台行为控制相关的处理都可归纳到该模块中。例如在第m次测试中,“控制逻辑”可驱动“激励驱动器”输出激励信号到芯片的代码,使芯片产生存储错误并驱动芯片完成存储错误的修复,再控制“向量值比对器”从“存储空间”获取第一测试向量包括的预期向量值,并根据预期向量值控制“向量值比对器”从芯片的代码处获取芯片的管脚的实际向量值来获取到实际的修复信息;由上文描述可知,预期的修复信息可通过第一测试向量中的预期向量值来体现,因此根据第一测试向量包括的预期向量值与实际向量值的比对结果确定第m次测试的测试结果。其具体实现方式可以参见下文对步骤S22的进一步描述。
由于比对结果是预期向量值与实际向量值的比对结果,因此相当于预期的修复信息与实际的修复信息的比对结果,可以用于确认实际的修复信息是否符合预期。在此情况下,根据比对结果得到的测试结果可指示被测芯片存储修复功能是否正常,可以通过用例执行日志展示。如图6所示,假设每个第二测试向量都对应于一个测试用例,例如编号A0的第二测试向对应于编号A0的测试用例,则对于单用例仿真的测试用例(例如编号A0/编号An/编号Cn的测试用例),可以得到一个用例执行日志(例如编号A0/编号An/编号Cn的用例执行日志),后续通过执行用例调用日志分析功能可以进一步分析日志,判定当前测试用例是通过还是失败。
对于多用例回归的多个测试用例(例如编号A0、编号An、编号Cn的测试用例等),针对每个测试用例对应的用例执行文件或者全部用例对应的回归执行文件,可以分别得到与多个测试用例对应的多个用例执行日志(例如编号A0、编号An、编号Cn的用例执行日志等),后续可以对多个用例执行日志统一进行分析得到芯片可测性测试的回归分析报告。
其中,A0、An、Cn表示编号,不表示测试用例本身。
根据本公开实施例的芯片可测性设计的测试方法,通过在对被测芯片的存储修复功能的第m次测试中,接收测试用例的执行文件对应的第一测试向量及辅助信息,第一测试向量是测试平台可识别的向量,辅助信息包括控制测试平台对被测芯片进行测试的指导信息,可以获取到芯片可测性设计的测试的必要信息;通过基于辅助信息控制第一测试向量对应的激励信号输出到被测芯片的代码;获取被测芯片的代码输出的实际向量值;以及根据第一测试向量包括的预期向量值与实际向量值的比对结果确定第m次测试的测试结果,可以完成芯片可测试设计的测试。第一测试向量用于测试被测芯片的存储修复功能,使得第一测试向量可以是存储内建自测试类型的向量;测试结果指示被测芯片存储修复功能是否正常,使得芯片可测性设计的测试方法可以应用于存储内建自测试场景。基于本公开实施例的测试平台,本公开实施例的芯片可测性设计的测试方法提出一套全面的测试架构,可以实现精准定位到测试异常所在的第一测试向量和对应的测试周期数。测试结果可通过用例执行日志展示,实现了芯片可测试设计的测试流程的自动化。在测试过程中无需任何非通用自研装置、设备、芯片外围电路,从而避免了其他硬件引入不可预知问题,使得本公开实施例的芯片可测性设计的测试方法在测试结果上更加准确。
在一种可能的实现方式中,被测芯片包括至少一个数据存储电路、至少一个存储修复电路和修复信息存储电路,至少一个数据存储电路与至少一个存储修复电路一一对应;
数据存储电路是芯片工作时使用的数据存储单元,测试被测芯片的存储修复功能时作为测试、修复的对象;
存储修复电路用于在对应的数据存储电路产生存储错误时对存储错误进行修复并更新修复信息中与对应的数据存储电路有关的部分,修复信息包括产生的存储错误是否已经修复和采用的修复方式;
修复信息存储电路用于存储所述修复信息。
被测芯片的示例性结构可以参见上文及图1的相关描述,在此不再赘述。
下面介绍对被测芯片的存储修复功能进行测试的示例性测试流程。
在一种可能的实现方式中,基于辅助信息,控制第一测试向量对应的激励信号输出到被测芯片的代码,包括:
测试平台输出指示上电的激励信号到被测芯片的代码的接口,控制被测芯片上电。被测芯片上电后,将修复信息存储电路中存储的修复信息加载至至少一个存储修复电路。
举例来说,存储修复功能的测试可用于在芯片裁切前的晶圆测试中筛选合格芯片。对于被测芯片的数据存储电路,由用户提供对数据存储电路的存储器大小的需求,而数据存储电路在实际应用时存储器的每个比特都有一定概率损坏,损坏的比特无法存储数据。因此在设计芯片时,通常使每一数据存储电路的存储器大小比需求的更大,需求的大小可称为需求空间,超出需求的比特数的部分可称为裕量空间(Redundancy)。例如,数据存储电路的需求空间是宽度64比特、深度128,共64*128比特,实际设计时的数据存储电路可以是宽度66比特、深度129,共66*129比特,则裕量空间的比特数可以是66*129-64*128。一旦需求空间的比特损坏,出现存储错误,裕量空间可以提供同样大小的比特代替损坏的比特。
由于裕量空间的比特数是有限的,因此如果出现存储错误的比特数过大,超出了裕量空间的修复能力,则超出部分的存储错误将无法被修复。在此情况下,可以认为该芯片的存储修复结果为不可修复,芯片需要降规格使用(即用户不使用不可修复的数据存储电路),或者认为芯片不合格(即不可用的坏片)。反之,如果存储错误的比特数在裕量空间的修复能力范围内,且存储修复电路和修复信息存储电路均工作正常,可以认为芯片的存储修复功能正常,是合格的芯片。裕量空间的修复能力与数据存储电路的硬件结构有关,修复能力可以基于现有技术确定,在此不再赘述。数据存储电路未产生存储错误时,对应的修复信息可以是“0”,在产生存储错误并被修复后,对应的修复信息可不再是“0”,可以是其他值。本公开对此不作限制。
指示上电的激励信号可以与第一测试向量中与芯片上电相关的管脚的激励向量值有关。被测芯片上电后,修复信息存储电路中的控制器(Fuse Controller)自动开启,在修复信息存储电路中存储有修复信息时,该控制器可以获取修复信息存储电路中存储的修复信息,解压缩并加载解压缩后的修复信息到对应的存储修复电路。在m=1时,存储器中与全部数据存储电路对应的修复信息可以是“0”;在m≠1时,存储器中与部分数据存储电路对应的修复信息可不再是“0”。该控制器可以将修复信息存储电路中存储的修复信息加载至至少一个存储修复电路,在m=1时,向每个存储修复电路输出的修复信息可以是“0”,修复信息“0”指示该存储修复电路对应的数据存储电路不使用裕量空间工作;在m≠1时,针对修复信息中产生存储错误的数据储存储电路,向该数据储存储电路对应的存储修复电路输出的修复信息可以是对应的非0的其他值,向其余未产生存储错误的数据储存储对应的存储修复电路输出的修复信息可以是“0”,非0的其他值指示存储修复电路对应的数据存储电路使用裕量空间工作。
其中,每个存储修复电路可以包括内建自修复(Build-In Self-Repair,BISR)寄存器,至少一个存储修复电路中的内建自修复BISR寄存器可以形成内建自修复寄存器链(Build-In Self-Repair Register Chain),向每个存储修复电路输出修复信息。
芯片上电后,通过芯片的代码的接口获取激励信号(例如下文所述的指示存储修复电路启动的激励信号等),存储修复电路中的内建自测试(Build-in Self Test,BIST)控制器启动对被测芯片的存储修复功能的测试(即启动自修复),将自修复指令(预先存储在控制器中)通过内建自测试BIST接口下发到存储修复电路上,内建冗余分析(Build-InRedundancy Analyze,BIRA)引擎开始运行。同时数据存储电路根据接收到的修复信息进行工作。在工作过程中,在满足“存储错误产生指令”的条件时,数据存储电路可能会产生存储错误。
测试平台输出指示存储修复电路启动的激励信号到被测芯片的代码的接口,控制存储修复电路启动。存储修复电路启动后,根据接收到的修复信息对已有的存储错误进行修复,和/或在数据存储电路产生新的存储错误时对新的存储错误进行修复;存储修复电路更新自身存储的修复信息中与对应的数据存储电路的存储错误有关的部分,芯片的代码输出的实际向量值指示数据存储电路的修复情况。软件/硬件仿真平台可下发指令到存储修复电路,用于导出修复信息并比对。
举例来说,指示存储修复电路启动的激励信号可以是第一测试向量中与存储修复电路启动相关的管脚的激励向量值。存储修复电路启动后,此时存储修复电路可以对存储错误进行修复。在m=1时,在对被测芯片的存储修复功能的第1次测试中,如上文所述,存储错误可以是满足“存储错误产生指令”的条件时通过软件/硬件仿真平台产生,直接对产生的存储错误的修复即可;在m≠1时,软件/硬件仿真平台可通过现有技术的后门访问方式将修复信息写回修复信息存储电路中的存储器。修复信息存储电路中的控制器可以加载存储器中的修复信息并进行解压缩,将解压缩的修复信息输出至内建自修复BISR寄存器链,使得本次测试之前的测试过程中产生的存储错误的修复信息能够加载到各存储修复电路,执行文件可以保留第1次测试时强制产生存储错误的指令,也可以额外增加强制产生新的存储错误的指令,可以通过软件/硬件仿真平台产生新的存储错误,对新产生的存储错误进行修复,这种修复方式也称为“软修复”。“软修复”可设计用于芯片出厂后,每次上电或者工作中检查芯片存储的功能是否正常,在一些应用场景中是有价值的,甚至是必须的;虽然对于上电会有自测试时间开销,但提高了芯片的裕量空间的使用率,延长了芯片的使用寿命,提升了芯片应用的安全性。
使用裕量空间修复存储错误的过程,举例来说,可以是本次测试过程中数据存储电路1中编号x1的存储行或列出现存储错误,经存储修复电路修复后使用了数据存储电路1的裕量空间中编号y1的存储行或列的情况下,更新后的修复信息中与数据存储电路1有关的部分可以包括数据存储电路1产生存储错误、存储错误已经修复、修复的方式是裕量空间中编号y1的存储行或列代替需求空间中编号x1的存储行或列存储数据。其示例性执行方式可以参见下文的相关描述。如果存储错误未能成功修复,则可以上报存储错误无法修复的信息。
在所有产生存储错误的数据存储电路的修复均完成后,在m=1时,修复信息存储到修复信息存储电路。由于每次芯片下电时寄存器中的数据会被清空,因此存储修复功能的第1次(m=1)测试的修复信息可以被存储到一块永久性的存储空间,也即修复信息存储电路中存储。例如修复信息可以先从内建冗余分析BIRA寄存器转移至内建自修复BISR寄存器链中,再控制修复信息存储电路中的控制器的工作模式为编程模式,编程模式下该控制器可以控制内建自修复BISR寄存器链。该控制器可以将内建自修复寄存器链中的修复信息扫描出来,经过压缩电路(未示出)的处理编程到修复信息存储电路的存储器中存储。修复信息存储电路中存储的修复信息对软件/硬件仿真平台可见,软件/硬件仿真平台能够通过现有技术的方式(例如后门访问方式等)将压缩的修复信息导出,后续流程可写回修复信息存储电路。
可选地,软件/硬件仿真平台具备直接导出修复信息存储电路的存储器中存储的数据的功能,因此如果执行文件中包括导出修复信息存储电路中存储的修复信息的语句,则执行测试用例时,软件/硬件仿真平台可以直接将修复信息存储电路的存储器中存储的修复信息导出。导出后可以根据与压缩电路(未示出)的压缩方式相对应的解压缩方式,将修复信息解压,并与分析是否符合预期。
通过这种方式,使得测试用例执行时,第一测试向量及辅助信息输入测试平台后,测试平台可以完成原始的第二测试向量所包括的测试流程。从而按照用户的需求,完成存储修复功能的多次测试。整个过程可以自动完成,减少人为干预,可以提高用户体验。
在一种可能的实现方式中,第m次测试结束后,步骤S22还包括:
测试平台判断被测芯片的存储修复功能的测试是否满足最终结束条件,在不满足最终结束条件时,开始第m+1次测试;
所述结束条件包括m=N。
举例来说,可以预先设置测试的最终结束条件,并以语句的形式增加在执行文件中,测试用例执行时,测试平台可以在每次测试结束时,判断被测芯片的存储修复功能的测试是否满足最终结束条件。最终结束条件可以设置为m=N,即总测试次数达到预设的N次,或者也可以由用户可指定其他条件来结束仿真,本公开对此不作限制。
通过这种方式,可以提高测试结束方式的灵活性。
在一种可能的实现方式中,步骤S22中,基于辅助信息,控制第一测试向量对应的激励信号输出到所述被测芯片的代码,包括:
在辅助信息中的测试周期驱动参数指示的时间点,输出激励信号到被测芯片的代码的输入接口,被测芯片的代码的输出接口输出实际向量值。
举例来说,参见上文所述,辅助信息可包括测试周期驱动参数,用于指示在哪些时间点输出激励信号开始一个测试周期等。对此,如图7所示,每个测试用例可以具备相对应的激励信号(即图6中的编号A0/编号An/编号Cn的用例波形等),“控制逻辑”可基于辅助信息中的测试周期驱动参数,控制“激励驱动器”在正确的时间点向被测芯片的代码的输入接口输出激励信号完成驱动,激励信号的波形可以基于多种波形模板(Waveform Table)设置,本公开对此不作限制。被测芯片的代码根据激励信号模拟实际芯片的信号处理过程,得到被测芯片的各管脚的实际向量值,如果芯片可测性设计没有错误出现,则每个管脚的实际向量值与该管脚的预期向量值(在第一测试向量中体现)可以相同。实际向量值可以由被测芯片的代码的输出接口输出。
通过这种方式,可以完成被测芯片的激励驱动。驱动使用的激励信号支持多种波形,能够提升激励驱动方式的灵活性。
在一种可能的实现方式中,步骤S22中,根据第一测试向量包括的预期向量值与实际向量值的比对结果确定第m次测试的测试结果,包括:
在所述第一测试向量包括的预期向量值指示比对时,比对所述第一测试向量中预期向量值与所述测试周期比对参数指示的时间点处的芯片管脚输出的实际向量值是否匹配;
在比对结果是该时间点处的实际向量值和预期向量值不匹配时,记录错误信息,错误信息包括该时间点对应的测试周期、该时间点处的实际向量值和预期向量值;
根据错误信息确定第m次测试的测试结果。
举例来说,如图7所示,“控制逻辑”可控制“向量值比对器”从“存储空间”读取预期向量值,预期向量值可决定测试周期内管脚的向量值是否需要比对。例如预期向量值为“2’b01”或者“3’b101”,则指示比对,期望此测试周期内芯片代码的接口管脚输出1,若芯片代码的接口管脚实际输出1,则匹配,否则比对失败;同理预期向量值为“2’b00”或者“3’b100”,则指示比对,期望此测试周期内芯片代码的接口管脚输出0,若芯片代码的接口管脚实际输出0,则匹配,否则比对失败;同理预期向量值为“2’b11”或者“3’b111”,则指示不比对,不关心此测试周期内芯片代码的接口管脚实际输出向量值。辅助信息中的测试周期比对参数用于指示测试周期内获取被测芯片代码的管脚输出实际向量值的时间点。在确定测试周期内管脚的预期向量值指示比对时,可以通过被测芯片的代码的输出接口获取测试周期比对参数指示的时间点处输出的实际向量值,比对该时间点处的实际向量值和预期向量值是否匹配。如果比对结果是该时间点处的实际向量值和预期向量值不匹配,可认为比对失败,可记录错误信息,错误信息可包括该时间点对应的测试周期、该时间点处的实际向量值和预期向量值等。错误信息的存储深度可由用户指定。
测试平台完全由可综合硬件描述语言verilog实现时,存储空间既可支持存储最早出现的错误信息,也可支持刷新为最新出现的错误信息。例如,测试平台在上文所述的ICE模式下,在错误信息产生时,“控制逻辑”可以触发测试暂停,并通知用户进行向量的调试工作。错误信息可以根据用户需求打印到用例执行日志中或者使用存储空间保存,以供用户分析测试情况。
测试平台由可综合硬件描述语言verilog实现且包括不可综合的语句时,不可综合的语句可用于在错误信息产生时,通过不可综合的语句对应的打印语法把错误信息直接显示出来,使得用户调试更便捷。比如使用Candence的硬件加速器EMU平台,测试平台在上文所述的ICE模式下,使用“$display”语句,使能测试平台的加速(AcceleratableTestBench,ATB)特性,在逻辑分析(Logic Analyzer,LA)模式下仿真测试;或者可以直接使用直接加速编译器(Incisive Xaccelerator COMpiler,IXCOM)。
通过这种方式,使得芯片可测性设计的测试方法支持比对芯片管脚输出和预期;发现比对错误时,可记录、打印错误信息,定位高效。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
软件仿真平台和硬件仿真平台的示例在上文中已经描述过,在此不再赘述。
本公开实施例还提供了一种测试平台,图8示出根据本公开实施例的测试平台的结构图。
如图8所示,测试平台包括:
接收模块101,用于在对被测芯片的存储修复功能的第m次测试中,接收测试用例的执行文件对应的第一测试向量及辅助信息,所述第一测试向量是所述测试平台可识别的向量,所述第一测试向量用于测试被测芯片的存储修复功能,所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息;测试模块102,用于测试所述被测芯片,包括:基于所述辅助信息,控制所述第一测试向量对应的激励信号输出到所述被测芯片的代码;获取所述被测芯片的代码输出的实际向量值;以及根据所述第一测试向量包括的预期向量值与所述实际向量值的比对结果确定第m次测试的测试结果,1≤m≤N且为整数,N是正整数;所述测试结果指示被测芯片存储修复功能是否正常,所述测试结果通过用例执行日志展示。
其中,接收模块的功能可以由上文及图7所示的存储空间来实现,测试模块的功能可以由上文及图7所示的激励驱动器、控制逻辑、向量值比对器来实现。
在一种可能的实现方式中,所述被测芯片包括至少一个数据存储电路、至少一个存储修复电路和修复信息存储电路,至少一个数据存储电路与至少一个存储修复电路一一对应;所述数据存储电路是芯片工作时使用的数据存储单元,测试被测芯片的存储修复功能时作为测试、修复的对象;所述存储修复电路用于在对应的数据存储电路产生存储错误时对所述存储错误进行修复并更新修复信息中与对应的数据存储电路有关的部分,所述修复信息包括产生的存储错误是否已经修复和采用的修复方式;所述修复信息存储电路用于存储所述修复信息。
在一种可能的实现方式中,所述基于所述辅助信息,控制所述第一测试向量对应的激励信号输出到所述被测芯片的代码,包括:所述测试平台输出指示上电的激励信号到所述被测芯片的代码的接口,控制所述被测芯片上电;所述被测芯片上电后,将所述修复信息存储电路中存储的修复信息加载至所述至少一个存储修复电路;所述测试平台输出指示所述存储修复电路启动的激励信号到所述被测芯片的代码的接口,控制所述存储修复电路启动;所述存储修复电路启动后,根据接收到的修复信息对已有的存储错误进行修复,和/或在所述数据存储电路产生新的存储错误时对新的存储错误进行修复;所述存储修复电路更新自身存储的修复信息中与对应的数据存储电路有关的部分,所述实际向量值指示所述数据存储电路的修复情况;在所有产生存储错误的数据存储电路的修复均完成后,在m=1时,所述修复信息存储到所述修复信息存储电路。
在一种可能的实现方式中,第m次测试结束后,所述测试所述被测芯片还包括:所述测试平台判断被测芯片的存储修复功能的测试是否满足最终结束条件,在不满足最终结束条件时,开始第m+1次测试;所述结束条件包括m=N。
在一种可能的实现方式中,所述基于所述辅助信息,控制所述第一测试向量对应的激励信号输出到所述被测芯片的代码,包括:在所述辅助信息中的测试周期驱动参数指示的时间点,输出所述激励信号到所述被测芯片的代码的接口,所述被测芯片的代码的接口输出所述实际向量值。
在一种可能的实现方式中,所述根据所述第一测试向量包括的预期向量值与所述实际向量值的比对结果确定第m次测试的测试结果,包括:所述第一测试向量包括的预期向量值指示比对时,比对所述第一测试向量中预期向量值与所述测试周期比对参数指示的时间点处的芯片管脚输出的实际向量值是否匹配;在比对结果是该时间点处的实际向量值和预期向量值不匹配时,记录错误信息,所述错误信息包括该时间点对应的测试周期、该时间点处的实际向量值和预期向量值;根据所述错误信息确定第m次测试的测试结果。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
本公开实施例还提供了一种测试平台的生成装置,图9示出根据本公开实施例的测试平台的生成装置的结构图。
如图9所示,测试平台的生成装置包括:
第一分析模块111,用于接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,所述第二测试向量是原始的测试向量,所述第二测试向量用于测试被测芯片的存储修复功能;第二分析模块112,用于分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息;第一生成模块113,用于根据所述公共信息生成测试平台。
其中,第一分析模块和第二分析模块的功能可以由上文及图3所示的测试向量解析器来实现,第一生成模块的功能可以由上文及图3所示的测试平台生成器来实现。
在一种可能的实现方式中,所述公共信息包括被测芯片的芯片管脚参数、时间参数、测试周期时间定义中的一种或多种。
在一种可能的实现方式中,所述装置还包括:第二生成模块,用于根据每个第二测试向量对应的测试向量解析数据生成第一测试向量,所述第一测试向量是所述测试平台可识别的向量,所述第一测试向量在所述测试平台对被测芯片进行测试时使用,用于测试被测芯片的存储修复功能。
其中,第二生成模块的功能可以由上文及图3所示的第一测试向量生成器来实现。
在一种可能的实现方式中,所述装置还包括:第三生成模块,用于根据每个第二测试向量对应的测试向量解析数据生成至少一个执行文件,其中每个执行文件对应于至少一个测试用例,所述测试用例执行时,该测试用例的执行文件对应的至少一个第一测试向量及辅助信息依次输入到所述测试平台,所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息以及各第二测试向量的差异信息。
其中,第三生成模块的功能可以由上文及图3所示的执行文件生成器来实现。
在一种可能的实现方式中,所述第一测试向量包括每个测试周期内,所述被测芯片的单向管脚的预期向量值和激励向量值以及双向管脚的预期/激励向量值。
在一种可能的实现方式中,所述多个第二测试向量包括不同语言编写的测试向量,包括标准测试接口语言STIL、波形生成语言WGL、测试描述语言TDL中的至少一种。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述芯片可测性设计的测试方法,或实现上述测试平台的生成方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种测试平台,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述芯片可测性设计的测试方法。
本公开实施例还提出一种测试平台的生成装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述测试平台的生成方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
图10示出根据本公开实施例的装置1900的框图。其中,装置1900可以是上述测试平台或者测试平台的生成装置,装置1900可以被提供为一服务器或终端设备。参照图10,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出接口1958(I/O接口)。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM, LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由装置1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (19)

1.一种芯片可测性设计的测试方法,其特征在于,所述方法应用于测试平台,所述方法包括:
在对被测芯片的存储修复功能的第m次测试中,接收测试用例的执行文件对应的第一测试向量及辅助信息,所述第一测试向量是所述测试平台可识别的向量,所述第一测试向量用于测试被测芯片的存储修复功能,所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息;
测试所述被测芯片,包括:基于所述辅助信息,控制所述第一测试向量对应的激励信号输出到所述被测芯片的代码;获取所述被测芯片的代码输出的实际向量值;以及根据所述第一测试向量包括的预期向量值与所述实际向量值的比对结果确定第m次测试的测试结果,1≤m≤N且为整数,N是正整数;
所述测试结果指示被测芯片存储修复功能是否正常,所述测试结果通过用例执行日志展示。
2.根据权利要求1所述的方法,其特征在于,所述被测芯片包括至少一个数据存储电路、至少一个存储修复电路和修复信息存储电路,至少一个数据存储电路与至少一个存储修复电路一一对应;
所述数据存储电路是芯片工作时使用的数据存储单元,测试被测芯片的存储修复功能时作为测试、修复的对象;
所述存储修复电路用于在对应的数据存储电路产生存储错误时对所述存储错误进行修复并更新修复信息中与对应的数据存储电路有关的部分,所述修复信息包括产生的存储错误是否已经修复和采用的修复方式;
所述修复信息存储电路用于存储所述修复信息。
3.根据权利要求2所述的方法,其特征在于,所述基于所述辅助信息,控制所述第一测试向量对应的激励信号输出到所述被测芯片的代码,包括:
所述测试平台输出指示上电的激励信号到所述被测芯片的代码的接口,控制所述被测芯片上电;
所述被测芯片上电后,将所述修复信息存储电路中存储的修复信息加载至所述至少一个存储修复电路;
所述测试平台输出指示所述存储修复电路启动的激励信号到所述被测芯片的代码的接口,控制所述存储修复电路启动;
所述存储修复电路启动后,根据接收到的修复信息对已有的存储错误进行修复,和/或在所述数据存储电路产生新的存储错误时对新的存储错误进行修复;所述存储修复电路更新自身存储的修复信息中与对应的数据存储电路有关的部分,所述实际向量值指示所述数据存储电路的修复情况;
在所有产生存储错误的数据存储电路的修复均完成后,在m=1时,所述修复信息存储到所述修复信息存储电路。
4.根据权利要求3所述的方法,其特征在于,第m次测试结束后,所述测试所述被测芯片还包括:
所述测试平台判断被测芯片的存储修复功能的测试是否满足最终结束条件,在不满足最终结束条件时,开始第m+1次测试;
所述结束条件包括m=N。
5.根据权利要求4所述的方法,其特征在于,所述基于所述辅助信息,控制所述第一测试向量对应的激励信号输出到所述被测芯片的代码,包括:
在所述辅助信息中的测试周期驱动参数指示的时间点,输出所述激励信号到所述被测芯片的代码的接口,所述被测芯片的代码的接口输出所述实际向量值。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第一测试向量包括的预期向量值与所述实际向量值的比对结果确定第m次测试的测试结果,包括:
所述第一测试向量包括的预期向量值指示比对时,比对所述第一测试向量中预期向量值与所述测试周期比对参数指示的时间点处的芯片管脚输出的实际向量值是否匹配;
在比对结果是该时间点处的实际向量值和预期向量值不匹配时,记录错误信息,所述错误信息包括该时间点对应的测试周期、该时间点处的实际向量值和预期向量值;
根据所述错误信息确定第m次测试的测试结果。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述测试平台适配于软件仿真平台和硬件仿真平台。
8.一种测试平台的生成方法,其特征在于,所述方法包括:
接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,所述第二测试向量是原始的测试向量,所述第二测试向量用于测试被测芯片的存储修复功能;
分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息;
根据所述公共信息生成测试平台。
9.根据权利要求8所述的方法,其特征在于,所述公共信息包括被测芯片的芯片管脚参数、时间参数、测试周期时间定义中的一种或多种。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
根据每个第二测试向量对应的测试向量解析数据生成第一测试向量,所述第一测试向量是所述测试平台可识别的向量,所述第一测试向量在所述测试平台对被测芯片进行测试时使用,用于测试被测芯片的存储修复功能。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
根据每个第二测试向量对应的测试向量解析数据生成至少一个执行文件,其中每个执行文件对应于至少一个测试用例,所述测试用例执行时,该测试用例的执行文件对应的至少一个第一测试向量及辅助信息依次输入到所述测试平台,所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息以及各第二测试向量的差异信息。
12.根据权利要求10或11所述的方法,其特征在于,所述第一测试向量包括每个测试周期内,所述被测芯片的单向管脚的预期向量值和激励向量值以及双向管脚的预期/激励向量值。
13.根据权利要求12所述的方法,其特征在于,所述多个第二测试向量包括不同语言编写的测试向量,包括标准测试接口语言STIL、波形生成语言WGL、测试描述语言TDL中的至少一种。
14.根据权利要求13所述的方法,其特征在于,所述测试平台适配于软件仿真平台和硬件仿真平台。
15.一种测试平台,其特征在于,包括:
接收模块,用于在对被测芯片的存储修复功能的第m次测试中,接收测试用例的执行文件对应的第一测试向量及辅助信息,所述第一测试向量是所述测试平台可识别的向量,所述第一测试向量用于测试被测芯片的存储修复功能,所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息;
测试模块,用于测试所述被测芯片,包括:基于所述辅助信息,控制所述第一测试向量对应的激励信号输出到所述被测芯片的代码;获取所述被测芯片的代码输出的实际向量值;以及根据所述第一测试向量包括的预期向量值与所述实际向量值的比对结果确定第m次测试的测试结果,1≤m≤N且为整数,N是正整数;所述测试结果指示被测芯片存储修复功能是否正常,所述测试结果通过用例执行日志展示。
16.一种测试平台的生成装置,其特征在于,包括:
第一分析模块,用于接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,所述第二测试向量是原始的测试向量,所述第二测试向量用于测试被测芯片的存储修复功能;
第二分析模块,用于分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息;
第一生成模块,用于根据所述公共信息生成测试平台。
17.一种测试平台,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为在执行所述存储器存储的指令时,实现权利要求1至7中任意一项所述的方法。
18.一种测试平台的生成装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为在执行所述存储器存储的指令时,实现权利要求8至14中任意一项所述的方法。
19.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至7中任意一项所述的方法,或者实现权利要求8至14中任一项所述的方法。
CN202211701298.XA 2022-12-29 2022-12-29 芯片可测性设计的测试方法及测试平台 Active CN115656792B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211701298.XA CN115656792B (zh) 2022-12-29 2022-12-29 芯片可测性设计的测试方法及测试平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211701298.XA CN115656792B (zh) 2022-12-29 2022-12-29 芯片可测性设计的测试方法及测试平台

Publications (2)

Publication Number Publication Date
CN115656792A true CN115656792A (zh) 2023-01-31
CN115656792B CN115656792B (zh) 2023-03-17

Family

ID=85022835

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211701298.XA Active CN115656792B (zh) 2022-12-29 2022-12-29 芯片可测性设计的测试方法及测试平台

Country Status (1)

Country Link
CN (1) CN115656792B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116298825A (zh) * 2023-05-08 2023-06-23 杭州长川科技股份有限公司 芯片测试系统和方法、设备、驱动访问装置和方法
CN117494638A (zh) * 2023-11-09 2024-02-02 摩尔线程智能科技(上海)有限责任公司 芯片功能的验证方法、验证平台、电子设备及存储介质
CN117648895A (zh) * 2024-01-26 2024-03-05 全智芯(上海)技术有限公司 失效分析方法及装置、计算机可读存储介质、终端

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070204190A1 (en) * 2006-02-28 2007-08-30 Advanced Micro Devices, Inc. Test algorithm selection in memory built-in self test controller
CN102183726A (zh) * 2011-03-16 2011-09-14 建荣集成电路科技(珠海)有限公司 一种基于fpga的集成电路芯片测试系统与方法
DE102013101441A1 (de) * 2012-02-29 2013-08-29 Samsung Electronics Co. Ltd. Verfahren und Vorrichtung zum Reparieren einer Speicherzelle und Speichersystem mit der Vorrichtung
CN106339312A (zh) * 2015-07-17 2017-01-18 腾讯科技(深圳)有限公司 Api测试方法和系统
CN112735505A (zh) * 2020-12-30 2021-04-30 中国电力科学研究院有限公司 一种用于对存储器芯片进行测试的系统及方法
CN114203253A (zh) * 2021-11-30 2022-03-18 青岛信芯微电子科技股份有限公司 芯片的存储器故障修复装置和芯片
CN114325333A (zh) * 2021-12-30 2022-04-12 江苏集萃智能集成电路设计技术研究所有限公司 一种高效率规范化的soc系统级验证方法及装置
CN114386366A (zh) * 2021-12-31 2022-04-22 北京得瑞领新科技有限公司 在ic验证环境中芯片读写性能的自动检测系统和方法
CN114678057A (zh) * 2022-03-28 2022-06-28 长鑫存储技术有限公司 存储器测试修复电路、存储装置和存储器测试修复方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070204190A1 (en) * 2006-02-28 2007-08-30 Advanced Micro Devices, Inc. Test algorithm selection in memory built-in self test controller
CN102183726A (zh) * 2011-03-16 2011-09-14 建荣集成电路科技(珠海)有限公司 一种基于fpga的集成电路芯片测试系统与方法
DE102013101441A1 (de) * 2012-02-29 2013-08-29 Samsung Electronics Co. Ltd. Verfahren und Vorrichtung zum Reparieren einer Speicherzelle und Speichersystem mit der Vorrichtung
CN106339312A (zh) * 2015-07-17 2017-01-18 腾讯科技(深圳)有限公司 Api测试方法和系统
CN112735505A (zh) * 2020-12-30 2021-04-30 中国电力科学研究院有限公司 一种用于对存储器芯片进行测试的系统及方法
CN114203253A (zh) * 2021-11-30 2022-03-18 青岛信芯微电子科技股份有限公司 芯片的存储器故障修复装置和芯片
CN114325333A (zh) * 2021-12-30 2022-04-12 江苏集萃智能集成电路设计技术研究所有限公司 一种高效率规范化的soc系统级验证方法及装置
CN114386366A (zh) * 2021-12-31 2022-04-22 北京得瑞领新科技有限公司 在ic验证环境中芯片读写性能的自动检测系统和方法
CN114678057A (zh) * 2022-03-28 2022-06-28 长鑫存储技术有限公司 存储器测试修复电路、存储装置和存储器测试修复方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116298825A (zh) * 2023-05-08 2023-06-23 杭州长川科技股份有限公司 芯片测试系统和方法、设备、驱动访问装置和方法
CN116298825B (zh) * 2023-05-08 2023-10-20 杭州长川科技股份有限公司 芯片测试系统和方法、设备、驱动访问装置和方法
CN117494638A (zh) * 2023-11-09 2024-02-02 摩尔线程智能科技(上海)有限责任公司 芯片功能的验证方法、验证平台、电子设备及存储介质
CN117648895A (zh) * 2024-01-26 2024-03-05 全智芯(上海)技术有限公司 失效分析方法及装置、计算机可读存储介质、终端
CN117648895B (zh) * 2024-01-26 2024-04-12 全智芯(上海)技术有限公司 失效分析方法及装置、计算机可读存储介质、终端

Also Published As

Publication number Publication date
CN115656792B (zh) 2023-03-17

Similar Documents

Publication Publication Date Title
CN115656792B (zh) 芯片可测性设计的测试方法及测试平台
CN115202947B (zh) 基于调试接口的芯片测试向量生成方法
CN104516818B (zh) 一种适用于逻辑组态软件中编译器的自动化测试系统及其方法
US7480826B2 (en) Test executive with external process isolation for user code modules
US10209306B2 (en) Methods and systems for generating functional test patterns for manufacture test
CN115684896B (zh) 芯片可测性设计测试方法、测试平台及其生成方法及装置
US7895575B2 (en) Apparatus and method for generating test driver
US6327556B1 (en) AT-speed computer model testing methods
US7228262B2 (en) Semiconductor integrated circuit verification system
CN114325333A (zh) 一种高效率规范化的soc系统级验证方法及装置
CN114266210A (zh) 芯片ate测试中的wgl文件处理方法及应用
CN115684894B (zh) 芯片可测性设计的测试方法及测试平台
CN110658438A (zh) 扫描测试系统及其控制装置和控制方法
CN115684895B (zh) 芯片可测性设计测试方法、测试平台及其生成方法及装置
CN115656791B (zh) 芯片可测性设计的测试方法及测试平台
US7484142B2 (en) System and method for testing a memory for a memory failure exhibited by a failing memory
CN106546910A (zh) 基于位流回读的fpga测试平台
CN113378502B (zh) 验证信号走向配码的测试方法、装置、介质及设备
CN115421020A (zh) 一种集成电路测试信号的生成方法与测试方法
US6760904B1 (en) Apparatus and methods for translating test vectors
US10811115B1 (en) Test method for built-in memory in computer device
CN112035300A (zh) 服务器bmc自动化测试系统、方法、存储介质、电子设备
CN116973736B (zh) 一种基于fail周期的ATE测试方法及系统
CN111427731B (zh) 一种自动化拆分码流及验证码流的测试方法和系统
JP2004348596A (ja) Icテスタ用プログラムのデバッグ装置、方法、及びプログラム

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