CN115684895B - 芯片可测性设计测试方法、测试平台及其生成方法及装置 - Google Patents

芯片可测性设计测试方法、测试平台及其生成方法及装置 Download PDF

Info

Publication number
CN115684895B
CN115684895B CN202211701311.1A CN202211701311A CN115684895B CN 115684895 B CN115684895 B CN 115684895B CN 202211701311 A CN202211701311 A CN 202211701311A CN 115684895 B CN115684895 B CN 115684895B
Authority
CN
China
Prior art keywords
test
vector
chip
platform
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211701311.1A
Other languages
English (en)
Other versions
CN115684895A (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 CN202211701311.1A priority Critical patent/CN115684895B/zh
Publication of CN115684895A publication Critical patent/CN115684895A/zh
Application granted granted Critical
Publication of CN115684895B publication Critical patent/CN115684895B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本公开涉及新一代信息技术领域,提供一种芯片可测性设计测试方法、测试平台及其生成方法及装置,所述芯片可测性设计测试方法应用于测试平台,包括:接收第一测试向量及辅助信息,不同的第一测试向量使用的芯片管脚不完全相同;测试被测芯片,包括:基于辅助信息,获取被测芯片的代码输出的实际向量值;根据第一测试向量包括的预期向量值与实际向量值的比对结果确定测试结果。本申请实施例的芯片可测性设计的测试方法在应用于本申请实施例的测试平台时,能够针对规模较大的芯片,在芯片在投片前完成扫描链的测试,使得测试平台具备增强功能。

Description

芯片可测性设计测试方法、测试平台及其生成方法及装置
技术领域
本公开涉及新一代信息技术领域,尤其涉及一种芯片可测性设计测试方法、测试平台及其生成方法及装置。
背景技术
芯片可测性设计(Design for Test,DFT)指的是在芯片原始设计阶段即插入各种用于提高芯片可测试性(包括可控制性和可观测性)的硬件逻辑,测试向量引擎软件基于这部分逻辑可生成测试向量,测试向量在自动测试机台上完成测试,达到测试大规模芯片的目的。如果可测性设计DFT本身存在一些功能问题,导致产生的测试向量出现错误,则使用测试向量测试芯片时,将大大增加在自动测试机台(Automatic Test Equipment,ATE)上对测试向量进行调试的时间,可能影响芯片的测试结果的可信度,增加了芯片测试的开销,甚至影响芯片功能,导致流片失败。因此,芯片可测性设计DFT的测试是芯片生产制造后一个非常重要的环节,并需要在芯片投片前完成测试。
根据用户需求,在编写测试向量时可以针对被测芯片的特定电路的功能进行测试,得到对应类型的测试向量,例如,比较典型的一种类型是扫描链(Scan Chain)类型,该种类型的测试向量与自动测试向量产生技术(Automatic Test Pattern Generation,ATPG)相关,用于测试被测芯片中逻辑扫描链电路(简称为扫描链)的功能。
当前主流的公知技术是通过软件仿真平台(例如软件仿真服务器Simulation)进行扫描链的测试。但随着集成电路的发展,芯片的规模越来越大,由于软件仿真平台不擅长大规模芯片,其在芯片规模和测试时间上捉襟见肘,形成了明显瓶颈,对芯片在投片前完成扫描链的测试提出了极大挑战。
因此,针对规模较大的芯片,如何在芯片在投片前完成扫描链的测试,成为本领域的研究热点。
发明内容
有鉴于此,本公开提出了一种芯片可测性设计测试方法、测试平台及其生成方法及装置,本公开实施例的芯片可测性设计的测试方法在应用于本公开实施例的测试平台时,能够针对规模较大的芯片,在芯片在投片前完成扫描链的测试,使得测试平台具备增强功能。
根据本公开的一方面,提供了一种芯片可测性设计的测试方法,所述方法应用于测试平台,所述方法包括:接收测试用例的执行文件对应的第一测试向量及辅助信息,所述第一测试向量是所述测试平台可识别的向量,不同的第一测试向量使用的芯片管脚不完全相同;所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息以及测试平台的存储空间到所述第一测试向量使用的芯片管脚的映射信息;测试所述被测芯片,包括:基于所述辅助信息,控制所述测试用例对应的激励信号输出到所述被测芯片的代码;获取所述被测芯片的代码输出的实际向量值;以及根据所述第一测试向量包括的预期向量值与所述实际向量值的比对结果确定测试结果;所述测试结果通过用例执行日志展示。
在一种可能的实现方式中,所述基于所述辅助信息,控制所述测试用例对应的激励信号输出到所述被测芯片的代码,包括:基于所述映射信息,确定所述存储空间中的激励信号与芯片管脚的对应关系;在所述辅助信息中的测试周期驱动参数指示的时间点,通过所述被测芯片代码的输入接口,输出所述激励信号到对应的芯片管脚;通过所述被测芯片代码的输出接口获取所述激励信号对应的芯片管脚输出的所述实际向量值。
在一种可能的实现方式中,所述根据所述第一测试向量包括的预期向量值与所述实际向量值的比对结果确定测试结果,包括:基于所述映射信息,确定所述存储空间中的预期向量值与接收到的实际向量值的对应关系;在所述第一测试向量包括的预期向量值指示比对时,比对所述第一测试向量中预期向量值与所述测试周期比对参数指示的时间点处的芯片管脚输出的实际向量值是否匹配;在比对结果是该时间点处的实际向量值和预期向量值不匹配时,记录错误信息,所述错误信息包括该时间点对应的测试周期、该时间点处的实际向量值和预期向量值;根据所述错误信息确定测试结果。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
根据本公开的另一方面,提供了一种测试平台的生成方法,所述方法包括:接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,所述第二测试向量是原始的测试向量,不同的第二测试向量使用的芯片管脚不完全相同;分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息并生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息;根据所述公共信息和所述映射信息生成测试平台,所述测试平台的存储空间大小与所述第二测试向量使用的芯片管脚的数量的最大值有关。
在一种可能的实现方式中,所述公共信息包括被测芯片的芯片管脚参数、时间参数、测试周期时间定义中的一种或多种。
在一种可能的实现方式中,所述方法还包括:根据每个第二测试向量对应的测试向量解析数据生成第一测试向量,所述第一测试向量是所述测试平台可识别的向量,所述第一测试向量在所述测试平台对被测芯片进行测试时使用,所述第一测试向量使用的芯片管脚与对应的第二测试向量相同。
在一种可能的实现方式中,每个第二测试向量对应的测试向量解析数据包括该第二测试向量使用的芯片管脚信息,测试平台的存储空间包括多个子空间,每个子空间用于存储一个芯片管脚的信息,所述分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息并生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息,包括:分析所述测试向量解析数据,确定所述多个第二测试向量的公共管脚,以及每个第二测试向量中除公共管脚外的差异管脚;生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息,其中公共管脚和差异管脚使用不同的映射方式;将测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息,作为测试平台的存储空间到该第二测试向量对应的第一测试向量使用的芯片管脚的映射信息。
在一种可能的实现方式中,所述方法还包括:根据每个第二测试向量和对应的测试向量解析数据生成至少一个执行文件,其中每个执行文件对应于至少一个测试用例,所述测试用例执行时,该测试用例的执行文件对应的至少一个第一测试向量及辅助信息依次输入到所述测试平台;所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息、测试平台的存储空间到所述第一测试向量使用的芯片管脚的映射信息以及辅助信息对应的第二测试向量与其他第二测试向量的差异信息。
在一种可能的实现方式中,所述第一测试向量包括每个测试周期内,所述被测芯片的单向管脚的预期向量值和激励向量值以及双向管脚的预期/激励向量值。
在一种可能的实现方式中,所述多个第二测试向量包括不同语言编写的测试向量,包括标准测试接口语言STIL、波形生成语言WGL、测试描述语言TDL中的至少一种。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
根据本公开的另一方面,提供了一种测试平台,包括:接收模块,用于接收测试用例的执行文件对应的第一测试向量及辅助信息,所述第一测试向量是所述测试平台可识别的向量,不同的第一测试向量使用的芯片管脚不完全相同;所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息以及测试平台的存储空间到所述第一测试向量使用的芯片管脚的映射信息;测试模块,用于测试所述被测芯片,包括:基于所述辅助信息,控制所述测试用例对应的激励信号输出到所述被测芯片的代码;获取所述被测芯片的代码输出的实际向量值;以及根据所述第一测试向量包括的预期向量值与所述实际向量值的比对结果确定测试结果;所述测试结果通过用例执行日志展示。
在一种可能的实现方式中,所述基于所述辅助信息,控制所述测试用例对应的激励信号输出到所述被测芯片的代码,包括:基于所述映射信息,确定所述存储空间中的激励信号与芯片管脚的对应关系;在所述辅助信息中的测试周期驱动参数指示的时间点,通过所述被测芯片代码的输入接口,输出所述激励信号到对应的芯片管脚;通过所述被测芯片代码的输出接口获取所述激励信号对应的芯片管脚输出的所述实际向量值。
在一种可能的实现方式中,所述根据所述第一测试向量包括的预期向量值与所述实际向量值的比对结果确定测试结果,包括:基于所述映射信息,确定所述存储空间中的预期向量值与接收到的实际向量值的对应关系;在所述第一测试向量包括的预期向量值指示比对时,比对所述第一测试向量中预期向量值与所述测试周期比对参数指示的时间点处的芯片管脚输出的实际向量值是否匹配;在比对结果是该时间点处的实际向量值和预期向量值不匹配时,记录错误信息,所述错误信息包括该时间点对应的测试周期、该时间点处的实际向量值和预期向量值;根据所述错误信息确定测试结果。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
根据本公开的另一方面,提供了一种测试平台的生成装置,包括:
第一分析模块,用于接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,所述第二测试向量是原始的测试向量,不同的第二测试向量使用的芯片管脚不完全相同;第二分析模块,用于分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息并生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息;第一生成模块,用于根据所述公共信息和所述映射信息生成测试平台,所述测试平台的存储空间大小与所述第二测试向量使用的芯片管脚的数量的最大值有关。
在一种可能的实现方式中,所述公共信息包括被测芯片的芯片管脚参数、时间参数、测试周期时间定义中的一种或多种。
在一种可能的实现方式中,所述装置还包括:第二生成模块,用于根据每个第二测试向量对应的测试向量解析数据生成第一测试向量,所述第一测试向量是所述测试平台可识别的向量,所述第一测试向量在所述测试平台对被测芯片进行测试时使用,所述第一测试向量使用的芯片管脚与对应的第二测试向量相同。
在一种可能的实现方式中,每个第二测试向量对应的测试向量解析数据包括该第二测试向量使用的芯片管脚信息,测试平台的存储空间包括多个子空间,每个子空间用于存储一个芯片管脚的信息,所述分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息并生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息,包括:分析所述测试向量解析数据,确定所述多个第二测试向量的公共管脚,以及每个第二测试向量中除公共管脚外的差异管脚;生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息,其中公共管脚和差异管脚使用不同的映射方式;将测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息,作为测试平台的存储空间到该第二测试向量对应的第一测试向量使用的芯片管脚的映射信息。
在一种可能的实现方式中,所述装置还包括:第三生成模块,用于根据每个第二测试向量和对应的测试向量解析数据生成至少一个执行文件,其中每个执行文件对应于至少一个测试用例,所述测试用例执行时,该测试用例的执行文件对应的至少一个第一测试向量及辅助信息依次输入到所述测试平台;所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息、测试平台的存储空间到所述第一测试向量使用的芯片管脚的映射信息以及辅助信息对应的第二测试向量与其他第二测试向量的差异信息。
在一种可能的实现方式中,所述第一测试向量包括每个测试周期内,所述被测芯片的单向管脚的预期向量值和激励向量值以及双向管脚的预期/激励向量值。
在一种可能的实现方式中,所述多个第二测试向量包括不同语言编写的测试向量,包括标准测试接口语言STIL、波形生成语言WGL、测试描述语言TDL中的至少一种。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
根据本公开的另一方面,提供了一种测试平台,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述芯片可测性设计的测试方法。
根据本公开的另一方面,提供了一种测试平台的生成装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述测试平台的生成方法。
根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述芯片可测性设计的测试方法,或实现上述测试平台的生成方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述芯片可测性设计的测试方法,或执行上述测试平台的生成方法。
根据本公开实施例的芯片可测性设计的测试方法,通过接收测试用例的执行文件对应的第一测试向量及辅助信息,第一测试向量是测试平台可识别的向量,辅助信息包括控制测试平台对被测芯片进行测试的指导信息以及测试平台的存储空间到第一测试向量使用的芯片管脚的映射信息,使得可以获取到芯片可测性设计的测试的必要信息;不同的第一测试向量使用的芯片管脚不完全相同,使得芯片可测性设计的测试方法可以应用于扫描链场景;基于辅助信息,控制测试用例对应的激励信号输出到被测芯片的代码,获取被测芯片的代码输出的实际向量值,以及根据第一测试向量包括的预期向量值与实际向量值的比对结果确定测试结果,可以完成芯片可测试设计的测试。基于本公开实施例的测试平台,本公开实施例的芯片可测性设计的测试方法提出一套全面的测试架构,可以实现精准定位到测试异常所在的第一测试向量和对应的测试周期数。测试结果可通过用例执行日志展示,实现了芯片可测试设计的测试流程的自动化。在测试过程中无需任何非通用自研装置、设备、芯片外围电路,从而避免了其他硬件引入不可预知问题,使得本公开实施例的芯片可测性设计的测试方法在测试结果上更加准确。
根据本公开实施例的测试平台生成方法,通过接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,分析测试向量解析数据,可以识别得到多个第二测试向量的公共信息并生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息;根据公共信息和映射信息可以生成测试平台。不同的第二测试向量使用的芯片管脚不完全相同,因此第二测试向量可以是扫描链类型的测试向量,使得生成的测试平台可以在扫描链场景下使用,完成扫描链的测试;测试平台的存储空间大小与第二测试向量使用的芯片管脚的数量的最大值有关,使得生成的测试平台的存储空间大小不必容纳芯片所有的管脚的信息,降低测试平台的数据存储压力;解析第二测试向量生成测试平台的过程可以实现自动化,释放了用户自己搭建测试环境的精力;第二测试向量是原始的测试向量,对第二测试向量的解析可以不涉及将其转换成某种特定格式,因此可以降低测试向量解析数据以及公共信息与第二测试向量相比的失真程度;根据本公开实施例的测试平台生成方法生成的测试平台可以用于芯片可测性设计尤其是扫描链的测试,能够保证芯片可测性设计的测试的完备性。该测试平台无需特定的自研硬件装置和芯片外围电路,对测试向量的数据存储、测试芯片逻辑规模、管脚数量、管脚驱动能力、出错后的调试能力的限制很小,因此通用性强;且能够实现投片前测试,可以在芯片项目前期发现问题,以更小的代价,更大程度释放芯片可测性设计风险,同时清除测试向量问题,节省在自动测试机台ATE上因为测试向量问题耗费的测试向量调试时间,从而节省自动测试机台ATE的测试开销,降低芯片的测试成本。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出示出根据本公开实施例的测试平台的生成方法的流程的示意图。
图2a示出根据本公开实施例的测试平台的生成方法的流程的示意图。
图2b示出本公开实施例的测试平台的存储空间与芯片管脚的映射关系的示例。
图2c示出本公开实施例的测试平台的存储空间与芯片管脚的映射关系的示例。
图3示出本公开实施例的测试平台在不同的仿真平台上、不同的使用模式下的测试速度的示例。
图4示出根据本公开实施例的第二测试向量(编号A0~An)使用的芯片管脚的示意图。
图5示出根据本公开实施例的芯片可测性设计的测试方法的流程的示意图。
图6示出根据本公开实施例的芯片可测性设计的测试方法的流程的示意图。
图7示出根据本公开实施例的芯片可测性设计的测试方法的流程的示意图。
图8示出根据本公开实施例的芯片可测性设计的测试方法的流程的示意图。
图9示出根据本公开实施例的测试平台的结构图。
图10示出根据本公开实施例的测试平台的生成装置的结构图。
图11示出根据本公开实施例的装置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、无法实现投片前测试;在回片后测试,发现问题过晚,也不能完全替代自动测试机台ATE测试;
2、平台可以移植性差,不能在软件仿真平台(如Simulation等)、硬件仿真平台(如Emulation、现场可编程门阵列FPGA等)中灵活切换;
3、硬件装置会限制测试向量的数据存储、测试芯片逻辑规模、管脚数量、管脚驱动能力,出错后的调试能力,特别是自研硬件装置,会对芯片测试带来额外的硬件问题,业内的通用性差;
4、需要流片完成后定制芯片外围电路,外围电路将引入不可预期问题;
5、有的现有技术仅支持输入单一的测试向量格式,过于单一;有的现有技术支持多种测试向量格式转换为一种格式,但无法直接支持多种测试向量格式,无法做到从原始输入的测试向量无失真提取数据。
有鉴于此,本公开提出了一种芯片可测性设计测试方法、测试平台及其生成方法及装置,本公开实施例的芯片可测性设计的测试方法在应用于本公开实施例的测试平台时,能够针对规模较大的芯片,在芯片在投片前完成扫描链的测试,使得测试平台具备增强功能。
图1和图2a示出根据本公开实施例的测试平台的生成方法的流程的示意图。如图1所示,该测试平台生成方法包括步骤S11-S13:
步骤S11,接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,第二测试向量是原始的测试向量,不同的第二测试向量使用的芯片管脚不完全相同;
步骤S12,分析测试向量解析数据,识别得到多个第二测试向量的公共信息并生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息;
步骤S13,根据公共信息和所述映射信息生成测试平台,测试平台的存储空间大小与第二测试向量使用的芯片管脚的数量的最大值有关。
举例来说,如图2a所示,可以设置一个“测试向量解析引擎”,用于执行本公开实施例的测试平台生成方法。用户可以指定包括多种格式的第二测试向量的测试向量文件集(未示出),其中,第二测试向量是原始的测试向量,即未经格式转换的测试向量,可以是利用不同的工具(编程语言)编写或生成的不同格式的测试向量,第二测试向量的类型可以是扫描链类型,可针对同一款芯片进行测试。不同的第二测试向量使用的芯片管脚不完全相同,可以参见图4中的测试向量A0-An的示例。
在步骤S11中,通过对所有第二测试向量进行分析,识别每个第二测试向量的格式,可以抽取每个第二测试向量的有效信息,以每个第二测试向量对应的测试向量解析数据的形式存储在本地数据库中,供后续步骤使用。其中抽取的信息可以是各种格式的测试向量通用的数据,例如每个第二测试向量使用的管脚以及每个第二测试向量使用的各管脚在各测试周期的向量值等。该步骤中可以找到使用的管脚最多的第二测试向量,该第二测试向量的管脚数量即第二测试向量使用的芯片管脚的数量的最大值,可以用于确定步骤S13将要生成的测试平台的存储空间的大小。示例性地,测试平台的存储空间的大小可以设置为大于或等于第二测试向量使用的芯片管脚的数量的最大值占用的空间。
可选地,如图2a所示,在“测试向量解析引擎”中可以设置一个“测试向量解析器”(软件模块),将第二测试向量作为该“测试向量解析器”的输入,该“测试向量解析器”可以执行步骤S11。第二测试向量的格式的示例可以参见下文的相关描述。
在步骤S12中,通过分析测试向量解析数据,可以识别出不同的第二测试向量的解析数据中无差异的部分,得到多个第二测试向量的公共信息。可选地,如图2a所示,上述“测试向量解析器”还可以执行步骤S12。每个第二测试向量与其他第二测试向量的差异部分可以作为该第二测试向量的辅助信息中的一部分存储。辅助信息在对被测芯片进行测试时使用。其中,该步骤分析的测试向量解析数据对应的第二测试向量可以是测试向量文件集中的全部或者部分,本公开对此不作限制。公共信息和辅助信息的示例可以参见下文的相关描述。
在识别公共信息后,在步骤S13中,根据公共信息可以生成测试平台(Testbench,TB)。可选地,如图2a所示,可以设置一个“测试平台生成器”(软件模块),将公共信息作为该“测试平台生成器”的输入,该“测试平台生成器”对公共信息做二次综合解析,以解析测试的方式,归纳出测试平台可具备的功能,形成测试平台中的各模块,从而自动生成测试平台。可选地,测试平台中的各模块可以是不可综合的软件形态,也可是可综合成硬件的硬件形态。该测试平台可以完成步骤S11分析过的所有第二测试向量关联的被测芯片的测试。测试平台的各模块的示例可以参见下文测试平台执行芯片可测性设计的测试方法部分的描述。
本公开实施例的测试平台可具备如下功能:激励驱动、管脚映射、向量值比对、错误信息(Error Information)记录(存储)和/或输出(打印、上报)。每个功能的示例可以参见下文测试平台执行芯片可测性设计的测试方法部分的描述。
根据本公开实施例的测试平台生成方法,通过接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,分析测试向量解析数据,可以识别得到多个第二测试向量的公共信息并生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息;根据公共信息和映射信息可以生成测试平台。不同的第二测试向量使用的芯片管脚不完全相同,因此第二测试向量可以是扫描链类型的测试向量,使得生成的测试平台可以在扫描链场景下使用,完成扫描链的测试;测试平台的存储空间大小与第二测试向量使用的芯片管脚的数量的最大值有关,使得生成的测试平台的存储空间大小不必容纳芯片所有的管脚的信息,降低测试平台的数据存储压力;解析第二测试向量生成测试平台的过程可以实现自动化,释放了用户自己搭建测试环境的精力;第二测试向量是原始的测试向量,对第二测试向量的解析可以不涉及将其转换成某种特定格式,因此可以降低测试向量解析数据以及公共信息与第二测试向量相比的失真程度;根据本公开实施例的测试平台生成方法生成的测试平台可以用于芯片可测性设计尤其是扫描链的测试,能够保证芯片可测性设计的测试的完备性。该测试平台无需特定的自研硬件装置和芯片外围电路,对测试向量的数据存储、测试芯片逻辑规模、管脚数量、管脚驱动能力、出错后的调试能力的限制很小,因此通用性强;且能够实现投片前测试,可以在芯片项目前期发现问题,以更小的代价,更大程度释放芯片可测性设计风险,同时清除测试向量问题,节省在自动测试机台ATE上因为测试向量问题耗费的测试向量调试时间,从而节省自动测试机台ATE的测试开销,降低芯片的测试成本。
图2b和图2c分别示出本公开实施例的测试平台的存储空间与芯片管脚的映射关系的示例。
如图2b所示,被测芯片的管脚可包括管脚0~N,如果不考虑多个第二测试向量对管脚的使用差异,则测试平台的存储空间中需要为所有的芯片都设置一一对应的存储空间,导致存储开销较大;如图2c所示,如果考虑多个第二测试向量对管脚的使用差异(参见下文及图4的相关描述),第二测试向量使用的管脚的数量的最大值是5,则对于测试平台,通过生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息,实现测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射功能,使得存储空间只需设置与5个管脚一一对应的存储空间,从而有效优化多个第二测试向量对管脚的使用差异带来的测试平台的存储空间浪费,实现存储空间到管脚的灵活映射,缩减存储空间位宽开销,并能够满足所有用例的执行。
在一种可能的实现方式中,多个第二测试向量包括不同语言编写的测试向量,包括标准测试接口语言(Standard Test Interface Language,STIL)、波形生成语言(Waveform Generation Language,WGL)、测试描述语言(Test Description Language,TDL)中的至少一种。
举例来说,参见图2a,波形生成语言WGL格式的第二测试向量的编号可以是A0-An,标准测试接口语言STIL格式的第二测试向量的编号可以是B0-Bn,其他格式的第二测试向量的编号可以是C0-Cn。需要注意的是,本公开中提及的A0-An、B0-Bn、C0-Cn仅表示编号,并不表示第二测试向量本身。在图2a中以每种格式的第二测试向量的数量均相同且等于n为示例,本领域人员应理解,各格式的第二测试向量的数量也可以不同,本公开对此不作限制。
本领域技术人员应理解,第二测试向量的格式还可以进一步拓展,只要是现有技术中能够用于编写芯片可测性设计的测试向量的编程语言均可,本公开对于第二测试向量的具体格式不作限制。
通过这种方式,可以实现测试向量格式的多元化。
下面分别介绍分析测试向量解析数据识别得到的公共信息的示例。
在一种可能的实现方式中,公共信息包括被测芯片的芯片管脚参数、时间参数、测试周期时间定义中的一种或多种。
其中,芯片管脚参数可以指示测试使用的芯片管脚及其输入属性、输出属性、输入和输出双向属性等等与芯片管脚有关的信息。例如,对于标准测试接口语言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以外的其他格式的第二测试向量,都可以基于第二测试向量包括的特定关键字提取得到上述公共信息,在此不再赘述。
公共信息中的芯片管脚参数、时间参数、测试周期时间定义可以是各第二测试向量的解析数据中,与芯片管脚参数、时间参数、测试周期时间定义的公共部分。通过这种方式,可降低使用公共信息得到测试平台的数据处理成本。
在一种可能的实现方式中,辅助信息包括控制测试平台对被测芯片进行测试的指导信息、测试平台的存储空间到第一测试向量使用的芯片管脚的映射信息以及辅助信息对应的第二测试向量与其他第二测试向量的差异信息。
举例来说,辅助信息可以用于在测试平台对被测芯片的可测性设计进行测试的过程中,决定测试平台的控制行为,例如控制测试平台执行下文所述的芯片可测性设计的测试方法,因此辅助信息可包括控制测试平台对被测芯片进行测试的指导信息,该指导信息可通过分析测试向量解析数据得到。指导信息中可包括控制激励驱动的方式的测试周期驱动参数以及控制比对方式的测试周期观测比对参数,指导信息的示例性使用方式可以参见下文的芯片可测性设计的测试方法部分的相关描述。
其次,各第二测试向量是存在差异的,可以将每个第二测试向量与其他第二测试向量的差异信息作为辅助信息的一部分,与公共信息伴随存储。例如某个第二测试向量的测试周期时间定义与其他第二测试向量不一致时,该第二测试向量的辅助信息可以包括该第二测试向量中对芯片输入的激励驱动、输出观测时间定义部分。又例如扫描链类型的第二测试向量使用的芯片管脚不完全相同,因此差异信息也包括对应的第二测试向量与其他第二测试向量的差异管脚等等。
为了节省测试平台存储空间,本公开提出对存储空间和芯片管脚做映射,使得存储空间中的每一块可用于存储单个芯片管脚的数据的区域能够与至少一个第二测试向量中的特定管脚存在对应关系。第一测试向量与对应的第二测试向量包括的管脚相同,因此这种对应关系可以作为测试平台的存储空间到第一测试向量使用的芯片管脚的映射信息,并作为第二测试向量对应的辅助信息的一部分。映射信息的示例性获取方式可以参见下文对步骤S12的进一步描述。在图2a的示例中,“第一测试向量生成器”输出的第一测试向量及辅助信息的编号可以是A0-Cn。
通过这种方式,使得公共信息与辅助信息结合可以无失真地描述各第二测试向量,且需要存储的数据量更少,降低数据存储成本。
在一种可能的实现方式中,测试平台适配于软件仿真平台和硬件仿真平台。
本公开实施例的测试平台可以由可综合硬件描述语言verilog实现。在此情况下,测试平台可适配于硬件仿真平台,例如硬件加速器(Emulation),使得测试平台执行下文所述的芯片可测性设计的测试方法时速度更快。本公开实施例的测试平台还可以由可综合硬件描述语言verilog以及不可综合的语句实现,不可综合的语句可以用于为测试平台增加调试定位等功能,以提高测试平台的能力。测试平台还可以适配于软件仿真平台,例如软件仿真服务器(Simulation),使得测试平台能够在软件仿真平台和硬件仿真平台中切换,提升测试平台的应用方式的灵活性。图3和表1示出本公开实施例的测试平台在不同的仿真平台上、不同的使用模式下的测试速度的示例。
表1
Figure 82485DEST_PATH_IMAGE001
参见图3和表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),即对原始的第二测试向量的每个测试周期中各管脚输入的激励向量值和各管脚输出的预期向量值,以测试平台可识别的数据格式存储,得到每个第二测试向量一一对应的第一测试向量。此时第一测试向量可以是测试平台可识别的向量,能够在测试平台对被测芯片进行测试时使用。
可选地,如图2a所示,可以设置一个“第一测试向量生成器”(软件模块),将每个第二测试向量对应的测试向量解析数据作为该“第一测试向量生成器”的输入,该“第一测试向量生成器”执行步骤S14。其中各第二测试向量对应的测试向量解析数据可以串行输入到“第一测试向量生成器”中。
通过这种方式,可以得到测试平台可识别的第一测试向量,并且能够确定第一测向量与辅助信息的对应关系,使得使用测试平台对被测芯片进行测试成为可能。
在一种可能的实现方式中,每个第二测试向量对应的测试向量解析数据包括该第二测试向量使用的芯片管脚信息,测试平台的存储空间包括多个子空间,每个子空间用于存储一个芯片管脚的信息,。
步骤S12包括:
分析测试向量解析数据,确定多个第二测试向量的公共管脚,以及每个第二测试向量中除公共管脚外的差异管脚;
生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息,其中公共管脚和差异管脚使用不同的映射方式;
将测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息,作为测试平台的存储空间到该第二测试向量对应的第一测试向量使用的芯片管脚的映射信息。
举例来说,每个第二测试向量对应的测试向量解析数据可以包括该第二测试向量使用的芯片管脚信息,例如芯片管脚的数量、编号、使用的每个管脚的激励向量值、预期向量值等等。测试平台的存储空间可包括多个子空间,每个子空间用于存储一个芯片管脚的信息(数据量为2~3bit)。每个子空间存储的芯片管脚信息的示例可以参见下文及表2~4的相关描述。假设第二测试向量使用的芯片管脚的数量的最大值是5,则测试平台可包括5个子空间。第一测试向量又与第二测试向量一一对应,因此确定测试平台的存储空间到第一测试向量使用的芯片管脚的映射信息,可以是确定子空间到第二测试向量使用的芯片管脚的映射信息。
在步骤S12中,首先可以分析测试向量解析数据,根据所有第二测试向量对芯片管脚的使用情况,找出所有第二测试向量都使用的公共管脚、以及每个第二测试向量使用的除公共管脚之外的差异管脚。图4示出根据本公开实施例的第二测试向量使用的芯片管脚的示意图。如图4所示,被测芯片的管脚可包括管脚0~6和7~N,其中管脚0~1可以是所有第二测试向量都使用的公共管脚;管脚2~4可以是编号A0的第二测试向量使用的除公共管脚之外的差异管脚(即图中的编号A0的第二测试向量的差异管脚),管脚4~6可以是编号A1的第二测试向量使用的除公共管脚之外的差异管脚(即图中的编号A1的第二测试向量的差异管脚),管脚7~9可以是编号A2的第二测试向量使用的除公共管脚之外的差异管脚(即图中的编号A2的第二测试向量的差异管脚)……管脚(N-2)~N可以是编号An的第二测试向量使用的除公共管脚之外的差异管脚(即图中的编号An的第二测试向量的差异管脚)。
确定公共管脚和差异管脚之后,可以根据公共管脚的数量在存储空间的多个子空间中选择同样数量的子空间,专门用于存储公共管脚的信息。基于此可以产生特定子空间与多个第二测试向量使用的公共管脚的映射方案。在测试平台的存储空间包括5个子空间时,结合图4的示例,可以选择子空间0~1分别存储公共管脚1~2的信息。存储空间中的其余子空间可以用于存储差异管脚的信息。结合图4的示例,可以是子空间2~4用于存储差异管脚的信息。
由于每个第二测试向量使用的除公共管脚之外的差异管脚不同,因此,存储空间用于存储不同的第二测试向量对应的第一测试向量及辅助信息时,同一个子空间可能用于存储不同的管脚的信息,基于此可以产生每个子空间与多个第二测试向量使用的差异管脚的映射方案。例如参见图4,存储空间用于存储编号A0的第二测试向量对应的第一测试向量及辅助信息时,子空间2可以用于存储编号A0的第二测试向量使用的管脚2的信息,子空间3可以用于存储编号A0的第二测试向量使用的管脚3的信息,子空间4可以用于存储编号A0的第二测试向量使用的管脚4的信息;存储空间用于存储编号A1的第二测试向量对应的第一测试向量及辅助信息时,子空间2可以用于存储编号A1的第二测试向量使用的管脚5的信息,子空间3可以用于存储编号A1的第二测试向量使用的管脚6的信息,子空间4可以用于存储编号A1的第二测试向量使用的管脚4的信息(使用与编号A10第二测试向量相同的对应关系);存储空间用于存储编号A2的第二测试向量对应的第一测试向量及辅助信息时,子空间2可以用于存储编号A2的第二测试向量使用的管脚7的信息,子空间3可以用于存储编号A2的第二测试向量使用的管脚8的信息,子空间4可以用于存储编号A2的第二测试向量使用的管脚9的信息;存储空间用于存储编号An的第二测试向量对应的第一测试向量及辅助信息时,子空间2可以用于存储编号An的第二测试向量使用的管脚N-2的信息,子空间3可以用于存储编号An的第二测试向量使用的管脚N-1的信息,子空间4可以用于存储编号An的第二测试向量使用的管脚N的信息。以此类推可以得到其他子空间与各测试向量使用的管脚间的映射关系。本领域技术人员应理解,以上示出的映射方案仅为示例,本公开对映射方案的具体实现方式不作限制。
得到子空间与多个第二测试向量使用的公共管脚和差异管脚的映射方案之后,可以检查方案中每个子空间对应的第二测试向量的数量,判断该数量值与第一阈值的大小关系。第一阈值可以是用户指定具体的值或根据现有技术的算法公式确定。使用算法公式确定时,例如可以是基于所有差异管脚使用的子空间对应的第二测试向量的有效数量(需要说明的是,图4的示例中,子空间4对应于编号A0和编号A1的第二测试向量时均是用于存储管脚4的信息,可以认为编号A0和编号A1的第二测试向量对子空间4对应的第二测试向量的有效数量贡献值为1,不为2),取平均值乘以公式中的膨胀系数得到第一阈值,也可取中位数替换平均值得到第一阈值。此申请不限于示例的第一阈值。在任意一个子空间对应的第二测试向量的数量大于第一阈值时,表示这个子空间与过多的第二测试向量都有映射,即映射关系过多,这使得想要让测试平台以硬件方式实现时,可能会出现有的子空间与大量管脚都需要连线,有的子空间仅需要与少量管脚连线的情况,导致硬件实现难度增加。因此,需要预设映射方案的优化方案,在映射方案中映射关系过多时进行优化,例如可以预设一个第一阈值,如果检查到子空间对应的第二测试向量的数量大于第一阈值,可以对映射方案进行优化,比如将检查到的对应的第二测试向量的数量大于第一阈值的一个子空间拆解成两个子空间,使两个子空间对应的第二测试向量的数量均小于第一阈值,在此情况下拆分得到的两个子空间即可分担映射拥塞。以此类推,对映射方案进行优化,直到每个子空间对应的第二测试向量的数量小于或等于第一阈值。本领域技术人员应理解,以上示出的优化方案仅为示例,本公开对优化方案的具体实现方式不作限制。此时的测试平台存储空间与每个第二测试向量管脚的映射方案,可以基于可综合的代码在测试平台中实现映射功能。执行用例时,基于上述映射方案和优化方案配置测试平台的“管脚映射器”模块(参见图7)就可实现第二测试向量对应的存储子空间到管脚的映射功能。第一阈值可以基于用户需求选择,本公开对其具体数值不作限制。
由于第一测试向量使用的芯片管脚与对应的第二测试向量相同,因此测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息也可以作为测试平台的存储空间到每个第一测试向量使用的芯片管脚的映射信息。依次将测试平台的存储空间到每个第一测试向量使用的芯片管脚的映射信息缓存至辅助信息中,可以在后续执行芯片可测性设计的测试方法时使用。其示例性使用方式可以参见下文的相关描述。
在一种可能的实现方式中,第一测试向量包括每个测试周期内,被测芯片的单向管脚的预期向量值和激励向量值以及双向管脚的预期/激励向量值。
举例来说,测试平台可识别的第一测试向量的格式可以是一个二维数组,其中二维数组的每行存储的可以是单个测试周期的向量(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 796363DEST_PATH_IMAGE002
表3
Figure 857992DEST_PATH_IMAGE003
表4
Figure 112255DEST_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。其中“2’b”用于描述单向管脚的预期向量值占据的比特位宽为2,且数值为二进制。
参见表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 262046DEST_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,根据每个第二测试向量和对应的测试向量解析数据生成至少一个执行文件,其中每个执行文件对应于至少一个测试用例,测试用例执行时,该测试用例的执行文件对应的至少一个第一测试向量及辅助信息依次输入到测试平台;
所述辅助信息包括控制测试平台对被测芯片进行测试的指导信息、测试平台的存储空间到第一测试向量使用的芯片管脚的映射信息以及辅助信息对应的第二测试向量与其他第二测试向量的差异信息。
举例来说,基于测试向量的解析数据,可以产生用于编译/综合的编译/综合执行文件、用于单用例执行的用例执行文件以及用于多用例回归的回归执行文件,以便于用户执行用例与回归。可选地,如图2a所示,可以设置一个“执行文件生成器”(软件模块),将测试向量解析数据作为该“执行文件生成器”的输入,该“执行文件生成器”执行步骤S15,生成编译/综合执行文件、用例执行文件、回归执行文件。
其中,针对每个第二测试向量可以对应生成一个用例执行文件,针对所有的被解析的第二测试向量可以对应生成一个回归执行文件。执行某个执行文件对应的测试用例,可以是运行该执行文件中对应的命令行,使得执行文件对应的至少一个第一测试向量及辅助信息输入到测试平台,由测试平台产生用例执行日志。则针对用例执行文件,用例执行日志也可以是单测试用例对应的日志;对于回归执行文件,用例执行日志可以是多个测试用例对应的日志。各种执行文件的用途可以参见下文芯片可测性设计的测试方法部分的描述。辅助信息的示例性获取方式可以参见上文步骤S12的相关描述。
通过这种方式,可以自动生成执行文件,执行文件可以对应至少一个测试用例,使得执行文件对应的测试用例执行时既可实现单用例仿真也可实现多用例回归,提高执行测试用例的便捷性。
图5-图8示出根据本公开实施例的芯片可测性设计的测试方法的流程的示意图。如图5所示,该芯片可测性设计的测试方法包括:
步骤S21,接收测试用例的执行文件对应的第一测试向量及辅助信息,第一测试向量是所述测试平台可识别的向量,不同的第一测试向量使用的芯片管脚不完全相同;辅助信息包括控制测试平台对被测芯片进行测试的指导信息以及测试平台的存储空间到第一测试向量使用的芯片管脚的映射信息;
步骤S22,测试被测芯片,包括基于辅助信息,控制测试用例对应的激励信号输出到被测芯片的代码;获取被测芯片的代码输出的实际向量值;以及根据第一测试向量包括的预期向量值与实际向量值的比对结果确定测试结果;测试结果通过用例执行日志展示。
举例来说,整芯片的规模通常非常大,流程上一般会对芯片的代码进行编译/综合后再执行测试。如图6所示,基于测试平台,可利用现有技术产生“编译/综合文件”,将一系列命令操作封装成简洁的命令,方便用户操作。在此情况下,在执行测试用例时,用户只需输入测试平台的文件与被测芯片代码。用户修改少量必要的信息(例如测试数据存储路径、执行的是哪个或者哪些测试用例等),运行命令,即可完成测试用例的执行,用例执行日志可以存储在数据库中,等待用户查询或者主动上报给用户。
根据用户给出的测试用例的信息,可以确定待执行的测试用例(可能是单个测试用例也可能是多个测试用例),并执行测试用例。如图7所示,在执行测试用例时,可先将测试用例的执行文件(单个测试用例对应的是上文所述的用例执行文件,多个测试用例可以对应上文所述的回归执行文件)对应的第一测试向量及辅助信息加载到测试平台的存储空间里,对于测试平台来说,可以是执行步骤S21,接收测试用例的执行文件对应的第一测试向量及辅助信息。其中第一测试向量可以是测试平台可识别的向量,其示例可以参见上文表2-表5的相关描述。辅助信息可以包括控制所述测试平台对所述被测芯片进行测试的指导信息以及测试平台的存储空间到第一测试向量使用的芯片管脚的映射信息,其示例性获得方式的示例可以参见上文步骤S12的相关描述。
其中,如图7所示,测试平台可包括以下模块:存储空间、管脚映射器、激励驱动器、控制逻辑、向量值比对器。在测试被测芯片时,存储空间中的辅助信息先被传输到“控制逻辑”中,辅助信息包括控制测试平台对被测芯片进行测试的指导信息,用例执行时,按照执行文件指示的流程,辅助信息被加载到“控制逻辑”中,“控制逻辑”可控制步骤S22的执行,完成以下功能:基于辅助信息,控制激励信号的发送时序、向量值的比对、比对结果的存储等。所有测试平台行为控制相关的处理都可归纳到该模块中。例如“控制逻辑”可根据辅助信息驱动“激励驱动器”输出激励信号到芯片的代码,并控制“向量值比对器”从“存储空间”获取测试向量片段包括的预期向量值,并根据预期向量值控制“向量值比对器”从芯片的代码处获取实际向量值,以及控制“向量值比对器”对测试向量片段包括的预期向量值与实际向量值进行比对,得到测试向量片段对应的比对结果。其具体实现方式可以参见下文对步骤S22的进一步描述。
测试结果可以通过用例执行日志展示。如图6所示,假设每个第二测试向量都对应于一个测试用例,例如编号A0的第二测试向对应于编号A0的测试用例,则对于单用例仿真的测试用例(例如编号A0/编号An/编号Cn的测试用例),可以得到一个用例执行日志(例如编号A0/编号An/编号Cn的用例执行日志),后续通过执行用例调用日志分析功能可以进一步分析日志,判定当前测试用例是通过还是失败。
对于多用例回归的多个测试用例(例如编号A0、编号An、编号Cn的测试用例等),针对每个测试用例对应的用例执行文件或者全部用例对应的回归执行文件,可以分别得到与多个测试用例对应的多个用例执行日志(例如编号A0、编号An、编号Cn的用例执行日志等),后续可以对多个用例执行日志统一进行分析得到芯片可测性测试的回归分析报告。
其中,A0、An、Cn表示编号,不表示测试用例本身。
根据本公开实施例的芯片可测性设计的测试方法,通过接收测试用例的执行文件对应的第一测试向量及辅助信息,第一测试向量是测试平台可识别的向量,辅助信息包括控制测试平台对被测芯片进行测试的指导信息以及测试平台的存储空间到第一测试向量使用的芯片管脚的映射信息,使得可以获取到芯片可测性设计的测试的必要信息;不同的第一测试向量使用的芯片管脚不完全相同,使得芯片可测性设计的测试方法可以应用于扫描链场景;基于辅助信息,控制测试用例对应的激励信号输出到被测芯片的代码,获取被测芯片的代码输出的实际向量值,以及根据第一测试向量包括的预期向量值与实际向量值的比对结果确定测试结果,可以完成芯片可测试设计的测试。基于本公开实施例的测试平台,本公开实施例的芯片可测性设计的测试方法提出一套全面的测试架构,可以实现精准定位到测试异常所在的第一测试向量和对应的测试周期数。测试结果可通过用例执行日志展示,实现了芯片可测试设计的测试流程的自动化。在测试过程中无需任何非通用自研装置、设备、芯片外围电路,从而避免了其他硬件引入不可预知问题,使得本公开实施例的芯片可测性设计的测试方法在测试结果上更加准确。
在一种可能的实现方式中,步骤S22中,基于辅助信息,控制测试用例对应的激励信号输出到被测芯片的代码,包括:
基于映射信息,确定存储空间中的激励信号与芯片管脚的对应关系;
在辅助信息中的测试周期驱动参数指示的时间点,通过被测芯片代码的输入接口,输出激励信号到对应的芯片管脚;
通过被测芯片代码的输出接口获取激励信号对应的芯片管脚输出的实际向量值。
举例来说,参见上文所述,辅助信息可包括测试平台的存储空间到第一测试向量使用的芯片管脚的映射信息,测试平台的存储空间存储的是接收到的第一测试向量及辅助信息,第一测试向量可包括激励信号(例如图6中的编号A0/编号An/编号Cn的用例波形等),因此根据映射信息可以确定存储空间中的激励信号与芯片管脚的对应关系。这一步骤可以由“管脚映射器”完成。激励信号的波形可以基于多种波形模板(Waveform Table)设置,本公开对此不作限制。例如,参见上文所述,测试平台的存储空间包括多个子空间,每个子空间用于存储一个芯片管脚的信息,在第一测试向量对应于第二测试向量A0,且映射信息按照上文中测试平台的生成方法的相关描述中的示例获取时,根据映射信息可以确定子空间0~1存储的激励信号与芯片管脚0~1分别对应,子空间2存储的激励信号与芯片管脚2对应。
辅助信息可包括测试周期驱动参数,用于指示在哪些时间点输出激励信号开始一个测试周期等。对此,如图7所示,“控制逻辑”首先可向“管脚映射器”中加载配置信息,使得“管脚映射器”具备实现激励信号到芯片管脚的映射的功能。然后,“控制逻辑”可基于辅助信息中的测试周期驱动参数,控制“激励驱动器”在正确的时间点通过被测芯片代码的输入接口输出激励信号到“管脚映射器”,“管脚映射器”可以包括现有技术的解复用器电路代码或者其他能够实现解复用的电路代码,能够将激励信号映射至对应的芯片管脚完成驱动(即通过被测芯片代码的输入接口,输出激励信号到对应的芯片管脚)。被测芯片的代码根据激励信号模拟实际芯片的信号处理过程,得到被测芯片的各管脚的实际向量值,实际向量值可以由被测芯片的代码的输出接口输出。对于测试平台来说,可以是通过被测芯片代码的输出接口获取激励信号对应的芯片管脚输出的实际向量值。“管脚映射器”还可以包括现有技术的复用器电路代码或者其他能够实现复用的电路代码,也能将芯片管脚输出的实际向量值映射至对应的测试平台子空间,从而在“向量值比对器”中实现与子空间的预期向量值比对。如果复用器/解复用器的电路代码体量过大而造成了时序上的“关键路径”,还可在“管脚映射器”中增加现有技术的时序逻辑电路代码,解决“关键路径”问题。
通过这种方式,可以完成被测芯片的激励驱动。驱动使用的激励信号支持多种波形,能够提升激励驱动方式的灵活性。
在一种可能的实现方式中,步骤S22中,根据第一测试向量包括的预期向量值与实际向量值的比对结果确定测试结果,包括:
基于映射信息,确定存储空间中的预期向量值与接收到的实际向量值的对应关系;
在所述第一测试向量包括的预期向量值指示比对时,比对所述第一测试向量中预期向量值与所述测试周期比对参数指示的时间点处的芯片管脚输出的实际向量值是否匹配;
在比对结果是该时间点处的实际向量值和预期向量值不匹配时,记录错误信息,错误信息包括该时间点对应的测试周期、该时间点处的实际向量值和预期向量值;
根据错误信息确定测试结果。
举例来说,如果芯片可测性设计没有错误出现,则每个管脚的在同一时间点的实际向量值与预期向量值(在第一测试向量中体现)可以相同。如图7所示,“控制逻辑”向“管脚映射器”中加载配置信息,还可使得“管脚映射器”具备完成预期向量值与接收到的实际向量值的映射(匹配)的功能。“控制逻辑”可控制“管脚映射器”根据映射信息,确定存储空间中的预期向量值与实际向量值的对应关系,该步骤可以有两种实现方式。
在一个示例中,参见图7,可以使得“管脚映射器”除了包括现有技术的解复用器电路代码或者其他能够实现解复用的电路代码,还包括现有技术的复用器电路代码或者其他能够实现复用的电路代码,因此“管脚映射器”能够以与激励信号映射到芯片管脚时相反的映射方式,得到实际向量值与存储空间的映射关系,则可以认为对应相同的子空间的实际向量值与预期向量值是能够进行比对的。“控制逻辑”可控制“管脚映射器”将映射后的实际向量值输出至“向量值比对器”。
在另一个示例中,参见图8,可以设置两个“管脚映射器”,例如分别是“第一管脚映射器”和“第二管脚映射器”,现有技术的解复用器电路代码或者其他能够实现解复用的电路代码可以设置在“第一管脚映射器”中,“第二管脚映射器”也可以包括现有技术的复用器电路代码或者其他能够实现复用的电路代码,因此,“控制逻辑”可控制“第二管脚映射器”从“存储空间”中的子空间读取预期向量值,“第二管脚映射器”能够以与激励信号映射到芯片管脚时相同的映射方式,得到预期向量值与芯片管脚的映射关系,则可以认为对应相同的芯片管脚的实际向量值与预期向量值是能够进行比对的。“控制逻辑”可控制“第一管脚映射器”将接收的实际向量值直接转发至“向量值比对器”,并控制“第二管脚映射器”将映射后的预期向量值输出至“向量值比对器”。
“控制逻辑”可控制“向量值比对器”从“存储空间”读取预期向量值,预期向量值可决定测试周期内管脚的向量值是否需要比对。例如预期向量值为“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)。
通过这种方式,使得芯片可测性设计的测试方法支持比对芯片管脚输出和预期;发现比对错误时,可记录、打印错误信息,定位高效。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
软件仿真平台和硬件仿真平台的示例在上文中已经描述过,在此不再赘述。
进一步地,扫描链场景下可使用压缩电路实现被测芯片的代码,压缩电路中含有异或逻辑,对电路的不定态(X态)敏感,在测试时,可以模拟寄存器初始值为不定态,即使得寄存器的每比特初始值随机为0或1。
“测试向量解析引擎”生成执行文件时,可以结合用户指示的、测试平台适配的软件仿真平台或硬件仿真平台的特性,完成寄存器初始值的随机,验证不定态对扫描链的影响。其中,对于硬件仿真平台,例如硬件加速器,可以使用平台的xreg特性,在SA模式下初始化寄存器的每个比特位的值为0或1的随机值;对于服务器,可以使用initreg特性,对所有寄存器生成0/1/随机(random)的初始值。
本公开实施例还提供了一种测试平台,图9示出根据本公开实施例的测试平台的结构图。
如图9所示,测试平台包括:
接收模块101,用于接收测试用例的执行文件对应的第一测试向量及辅助信息,所述第一测试向量是所述测试平台可识别的向量,不同的第一测试向量使用的芯片管脚不完全相同;所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息以及测试平台的存储空间到所述第一测试向量使用的芯片管脚的映射信息;
测试模块102,用于测试所述被测芯片,包括:基于所述辅助信息,控制所述测试用例对应的激励信号输出到所述被测芯片的代码;获取所述被测芯片的代码输出的实际向量值;以及根据所述第一测试向量包括的预期向量值与所述实际向量值的比对结果确定测试结果;所述测试结果通过用例执行日志展示。
其中,接收模块的功能可以由上文及图7、图8所示的存储空间来实现,测试模块的功能可以由上文及图7、图8所示的激励驱动器、控制逻辑、向量值比对器来实现。
在一种可能的实现方式中,所述基于所述辅助信息,控制所述测试用例对应的激励信号输出到所述被测芯片的代码,包括:基于所述映射信息,确定所述存储空间中的激励信号与芯片管脚的对应关系;在所述辅助信息中的测试周期驱动参数指示的时间点,通过所述被测芯片代码的输入接口,输出所述激励信号到对应的芯片管脚;通过所述被测芯片代码的输出接口获取所述激励信号对应的芯片管脚输出的所述实际向量值。
在一种可能的实现方式中,所述根据所述第一测试向量包括的预期向量值与所述实际向量值的比对结果确定测试结果,包括:基于所述映射信息,确定所述存储空间中的预期向量值与接收到的实际向量值的对应关系;在所述第一测试向量包括的预期向量值指示比对时,比对所述第一测试向量中预期向量值与所述测试周期比对参数指示的时间点处的芯片管脚输出的实际向量值是否匹配;在比对结果是该时间点处的实际向量值和预期向量值不匹配时,记录错误信息,所述错误信息包括该时间点对应的测试周期、该时间点处的实际向量值和预期向量值;根据所述错误信息确定测试结果。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
本公开实施例还提供了一种测试平台的生成装置,图10示出根据本公开实施例的测试平台的生成装置的结构图。
如图10所示,测试平台的生成装置包括:
第一分析模块111,用于接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,所述第二测试向量是原始的测试向量,不同的第二测试向量使用的芯片管脚不完全相同;
第二分析模块112,用于分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息并生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息;
第一生成模块113,用于根据所述公共信息和所述映射信息生成测试平台,所述测试平台的存储空间大小与所述第二测试向量使用的芯片管脚的数量的最大值有关。
其中,第一分析模块和第二分析模块的功能可以由上文及图2a所示的测试向量解析器来实现,第一生成模块的功能可以由上文及图2a所示的测试平台生成器来实现。
在一种可能的实现方式中,所述公共信息包括被测芯片的芯片管脚参数、时间参数、测试周期时间定义中的一种或多种。
在一种可能的实现方式中,所述装置还包括:
第二生成模块,用于根据每个第二测试向量对应的测试向量解析数据生成第一测试向量,所述第一测试向量是所述测试平台可识别的向量,所述第一测试向量在所述测试平台对被测芯片进行测试时使用,所述第一测试向量使用的芯片管脚与对应的第二测试向量相同。
其中,第二生成模块的功能可以由上文及图2a所示的第一测试向量生成器来实现。
在一种可能的实现方式中,每个第二测试向量对应的测试向量解析数据包括该第二测试向量使用的芯片管脚信息,测试平台的存储空间包括多个子空间,每个子空间用于存储一个芯片管脚的信息,所述分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息并生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息,包括:分析所述测试向量解析数据,确定所述多个第二测试向量的公共管脚,以及每个第二测试向量中除公共管脚外的差异管脚;生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息,其中公共管脚和差异管脚使用不同的映射方式;将测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息,作为测试平台的存储空间到该第二测试向量对应的第一测试向量使用的芯片管脚的映射信息。
在一种可能的实现方式中,所述装置还包括:第三生成模块,用于根据每个第二测试向量和对应的测试向量解析数据生成至少一个执行文件,其中每个执行文件对应于至少一个测试用例,所述测试用例执行时,该测试用例的执行文件对应的至少一个第一测试向量及辅助信息依次输入到所述测试平台;所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息、测试平台的存储空间到所述第一测试向量使用的芯片管脚的映射信息以及辅助信息对应的第二测试向量与其他第二测试向量的差异信息。
其中,第三生成模块的功能可以由上文及图2a所示的执行文件生成器来实现。
在一种可能的实现方式中,所述第一测试向量包括每个测试周期内,所述被测芯片的单向管脚的预期向量值和激励向量值以及双向管脚的预期/激励向量值。
在一种可能的实现方式中,所述多个第二测试向量包括不同语言编写的测试向量,包括标准测试接口语言STIL、波形生成语言WGL、测试描述语言TDL中的至少一种。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述芯片可测性设计的测试方法,或实现上述测试平台的生成方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种测试平台,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述芯片可测性设计的测试方法。
本公开实施例还提出一种测试平台的生成装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述测试平台的生成方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
图11示出根据本公开实施例的装置1900的框图。例如,装置1900可以被提供为一服务器或终端设备。参照图11,装置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 (15)

1.一种芯片可测性设计的测试方法,其特征在于,所述方法应用于测试平台,所述方法包括:
接收测试用例的执行文件对应的第一测试向量及辅助信息,所述第一测试向量是所述测试平台可识别的向量,不同的第一测试向量使用的芯片管脚不完全相同;所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息以及测试平台的存储空间到所述第一测试向量使用的芯片管脚的映射信息;
测试所述被测芯片,包括:基于所述辅助信息,控制所述测试用例对应的激励信号输出到所述被测芯片的代码;获取所述被测芯片的代码输出的实际向量值;以及根据所述第一测试向量包括的预期向量值与所述实际向量值的比对结果确定测试结果;所述测试结果通过用例执行日志展示;
其中,所述根据所述第一测试向量包括的预期向量值与所述实际向量值的比对结果确定测试结果,包括:
基于所述映射信息,确定所述存储空间中的预期向量值与接收到的实际向量值的对应关系;
在所述第一测试向量包括的预期向量值指示比对时,比对所述第一测试向量中预期向量值与测试周期比对参数指示的时间点处的芯片管脚输出的实际向量值是否匹配;
在比对结果是该时间点处的实际向量值和预期向量值不匹配时,记录错误信息,所述错误信息包括该时间点对应的测试周期、该时间点处的实际向量值和预期向量值;
根据所述错误信息确定测试结果。
2.根据权利要求1所述的方法,其特征在于,所述基于所述辅助信息,控制所述测试用例对应的激励信号输出到所述被测芯片的代码,包括:
基于所述映射信息,确定所述存储空间中的激励信号与芯片管脚的对应关系;
在所述辅助信息中的测试周期驱动参数指示的时间点,通过所述被测芯片代码的输入接口,输出所述激励信号到对应的芯片管脚;
通过所述被测芯片代码的输出接口获取所述激励信号对应的芯片管脚输出的所述实际向量值。
3.根据权利要求1或2所述的方法,其特征在于,所述测试平台适配于软件仿真平台和硬件仿真平台。
4.一种测试平台的生成方法,其特征在于,所述方法包括:
接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,所述第二测试向量是原始的测试向量,不同的第二测试向量使用的芯片管脚不完全相同;
分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息并生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息;
根据所述公共信息和所述映射信息生成测试平台,所述测试平台的存储空间大小与所述第二测试向量使用的芯片管脚的数量的最大值有关;
其中,每个第二测试向量对应的测试向量解析数据包括该第二测试向量使用的芯片管脚信息,测试平台的存储空间包括多个子空间,每个子空间用于存储一个芯片管脚的信息,
所述分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息并生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息,包括:
分析所述测试向量解析数据,确定所述多个第二测试向量的公共管脚,以及每个第二测试向量中除公共管脚外的差异管脚;
生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息,其中公共管脚和差异管脚使用不同的映射方式;
将测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息,作为测试平台的存储空间到该第二测试向量对应的第一测试向量使用的芯片管脚的映射信息。
5.根据权利要求4所述的方法,其特征在于,所述公共信息包括被测芯片的芯片管脚参数、时间参数、测试周期时间定义中的一种或多种。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据每个第二测试向量对应的测试向量解析数据生成第一测试向量,所述第一测试向量是所述测试平台可识别的向量,所述第一测试向量在所述测试平台对被测芯片进行测试时使用,所述第一测试向量使用的芯片管脚与对应的第二测试向量相同。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
根据每个第二测试向量和对应的测试向量解析数据生成至少一个执行文件,其中每个执行文件对应于至少一个测试用例,所述测试用例执行时,该测试用例的执行文件对应的至少一个第一测试向量及辅助信息依次输入到所述测试平台;
所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息、测试平台的存储空间到所述第一测试向量使用的芯片管脚的映射信息以及辅助信息对应的第二测试向量与其他第二测试向量的差异信息。
8.根据权利要求6或7所述的方法,其特征在于,所述第一测试向量包括每个测试周期内,所述被测芯片的单向管脚的预期向量值和激励向量值以及双向管脚的预期/激励向量值。
9.根据权利要求8所述的方法,其特征在于,所述多个第二测试向量包括不同语言编写的测试向量,包括标准测试接口语言STIL、波形生成语言WGL、测试描述语言TDL中的至少一种。
10.根据权利要求9所述的方法,其特征在于,所述测试平台适配于软件仿真平台和硬件仿真平台。
11.一种测试平台,其特征在于,包括:
接收模块,用于接收测试用例的执行文件对应的第一测试向量及辅助信息,所述第一测试向量是所述测试平台可识别的向量,不同的第一测试向量使用的芯片管脚不完全相同;所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息以及测试平台的存储空间到所述第一测试向量使用的芯片管脚的映射信息;
测试模块,用于测试所述被测芯片,包括:基于所述辅助信息,控制所述测试用例对应的激励信号输出到所述被测芯片的代码;获取所述被测芯片的代码输出的实际向量值;以及根据所述第一测试向量包括的预期向量值与所述实际向量值的比对结果确定测试结果;所述测试结果通过用例执行日志展示;
其中,所述根据所述第一测试向量包括的预期向量值与所述实际向量值的比对结果确定测试结果,包括:
基于所述映射信息,确定所述存储空间中的预期向量值与接收到的实际向量值的对应关系;
在所述第一测试向量包括的预期向量值指示比对时,比对所述第一测试向量中预期向量值与测试周期比对参数指示的时间点处的芯片管脚输出的实际向量值是否匹配;
在比对结果是该时间点处的实际向量值和预期向量值不匹配时,记录错误信息,所述错误信息包括该时间点对应的测试周期、该时间点处的实际向量值和预期向量值;
根据所述错误信息确定测试结果。
12.一种测试平台的生成装置,其特征在于,包括:
第一分析模块,用于接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,所述第二测试向量是原始的测试向量,不同的第二测试向量使用的芯片管脚不完全相同;
第二分析模块,用于分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息并生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息;
第一生成模块,用于根据所述公共信息和所述映射信息生成测试平台,所述测试平台的存储空间大小与所述第二测试向量使用的芯片管脚的数量的最大值有关;
其中,每个第二测试向量对应的测试向量解析数据包括该第二测试向量使用的芯片管脚信息,测试平台的存储空间包括多个子空间,每个子空间用于存储一个芯片管脚的信息,
所述分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息并生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息,包括:
分析所述测试向量解析数据,确定所述多个第二测试向量的公共管脚,以及每个第二测试向量中除公共管脚外的差异管脚;
生成测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息,其中公共管脚和差异管脚使用不同的映射方式;
将测试平台的存储空间到每个第二测试向量使用的芯片管脚的映射信息,作为测试平台的存储空间到该第二测试向量对应的第一测试向量使用的芯片管脚的映射信息。
13.一种测试平台,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为在执行所述存储器存储的指令时,实现权利要求1至3中任意一项所述的方法。
14.一种测试平台的生成装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为在执行所述存储器存储的指令时,实现权利要求4至10中任意一项所述的方法。
15.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至3中任意一项所述的方法,或者实现权利要求4至10中任一项所述的方法。
CN202211701311.1A 2022-12-29 2022-12-29 芯片可测性设计测试方法、测试平台及其生成方法及装置 Active CN115684895B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211701311.1A CN115684895B (zh) 2022-12-29 2022-12-29 芯片可测性设计测试方法、测试平台及其生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211701311.1A CN115684895B (zh) 2022-12-29 2022-12-29 芯片可测性设计测试方法、测试平台及其生成方法及装置

Publications (2)

Publication Number Publication Date
CN115684895A CN115684895A (zh) 2023-02-03
CN115684895B true CN115684895B (zh) 2023-03-21

Family

ID=85055043

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211701311.1A Active CN115684895B (zh) 2022-12-29 2022-12-29 芯片可测性设计测试方法、测试平台及其生成方法及装置

Country Status (1)

Country Link
CN (1) CN115684895B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106339312A (zh) * 2015-07-17 2017-01-18 腾讯科技(深圳)有限公司 Api测试方法和系统
CN109885488A (zh) * 2019-01-30 2019-06-14 上海卫星工程研究所 用例表驱动的卫星轨道计算软件自动化测试方法及系统
CN111856258A (zh) * 2020-07-24 2020-10-30 北京百度网讯科技有限公司 用于芯片的测试的方法、设备、存储介质和相应的芯片
CN112444731A (zh) * 2020-10-30 2021-03-05 海光信息技术股份有限公司 芯片测试方法、装置、处理器芯片及服务器
CN112735505A (zh) * 2020-12-30 2021-04-30 中国电力科学研究院有限公司 一种用于对存储器芯片进行测试的系统及方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113391184A (zh) * 2020-03-11 2021-09-14 长鑫存储技术有限公司 控制芯片的测试方法及相关设备
CN114398848A (zh) * 2022-02-23 2022-04-26 无锡玖熠半导体科技有限公司 一种测试向量生成方法、装置及存储介质
CN114678057A (zh) * 2022-03-28 2022-06-28 长鑫存储技术有限公司 存储器测试修复电路、存储装置和存储器测试修复方法
CN115047317A (zh) * 2022-06-15 2022-09-13 安测半导体技术(江苏)有限公司 一种基于ate平台的芯片测试方法
CN115202947B (zh) * 2022-08-02 2023-05-23 无锡众星微系统技术有限公司 基于调试接口的芯片测试向量生成方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106339312A (zh) * 2015-07-17 2017-01-18 腾讯科技(深圳)有限公司 Api测试方法和系统
CN109885488A (zh) * 2019-01-30 2019-06-14 上海卫星工程研究所 用例表驱动的卫星轨道计算软件自动化测试方法及系统
CN111856258A (zh) * 2020-07-24 2020-10-30 北京百度网讯科技有限公司 用于芯片的测试的方法、设备、存储介质和相应的芯片
CN112444731A (zh) * 2020-10-30 2021-03-05 海光信息技术股份有限公司 芯片测试方法、装置、处理器芯片及服务器
CN112735505A (zh) * 2020-12-30 2021-04-30 中国电力科学研究院有限公司 一种用于对存储器芯片进行测试的系统及方法

Also Published As

Publication number Publication date
CN115684895A (zh) 2023-02-03

Similar Documents

Publication Publication Date Title
CN115202947B (zh) 基于调试接口的芯片测试向量生成方法
US6292765B1 (en) Method for automatically searching for functional defects in a description of a circuit
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
US8214195B2 (en) Testing in a hardware emulation environment
CN110632499B (zh) 基于测试对象的测试向量生成方法及存储介质
CN115656792B (zh) 芯片可测性设计的测试方法及测试平台
CN111965530A (zh) 一种基于jtag的fpga芯片自动化测试方法
US7228262B2 (en) Semiconductor integrated circuit verification system
CN112417798A (zh) 一种时序测试方法、装置、电子设备及存储介质
CN115684894B (zh) 芯片可测性设计的测试方法及测试平台
CN115656791B (zh) 芯片可测性设计的测试方法及测试平台
CN115684896B (zh) 芯片可测性设计测试方法、测试平台及其生成方法及装置
CN116227398B (zh) 一种自动化生成ip核测试激励的方法及系统
US7404109B2 (en) Systems and methods for adaptively compressing test data
CN106546910A (zh) 基于位流回读的fpga测试平台
CN115684895B (zh) 芯片可测性设计测试方法、测试平台及其生成方法及装置
CN112782562A (zh) 基于ate的soc芯片低电压差分信号测试方法及装置
CN116663467A (zh) 断言等效硬件库的构建方法、装置、电子设备及存储介质
CN113378502B (zh) 验证信号走向配码的测试方法、装置、介质及设备
CN114896922A (zh) 基于形式化验证的芯片io复用验证方法
CN115421020A (zh) 一种集成电路测试信号的生成方法与测试方法
CN114647568A (zh) 自动化测试方法、装置、电子设备及可读存储介质
El-Kharashy et al. A novel assertions-based code coverage automatic cad tool
Boutobza et al. An automatic testbench generator for test patterns validation

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