CN115684896B - 芯片可测性设计测试方法、测试平台及其生成方法及装置 - Google Patents
芯片可测性设计测试方法、测试平台及其生成方法及装置 Download PDFInfo
- Publication number
- CN115684896B CN115684896B CN202211701313.0A CN202211701313A CN115684896B CN 115684896 B CN115684896 B CN 115684896B CN 202211701313 A CN202211701313 A CN 202211701313A CN 115684896 B CN115684896 B CN 115684896B
- Authority
- CN
- China
- Prior art keywords
- test
- vector
- test vector
- chip
- platform
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 1432
- 238000000034 method Methods 0.000 title claims abstract description 107
- 238000013461 design Methods 0.000 title claims abstract description 70
- 238000010998 test method Methods 0.000 title abstract description 31
- 239000013598 vector Substances 0.000 claims abstract description 948
- 238000013100 final test Methods 0.000 claims abstract description 17
- 238000004458 analytical method Methods 0.000 claims description 78
- 230000005284 excitation Effects 0.000 claims description 67
- 239000012634 fragment Substances 0.000 claims description 59
- 238000004088 simulation Methods 0.000 claims description 40
- 230000002457 bidirectional effect Effects 0.000 claims description 19
- 102100028029 SCL-interrupting locus protein Human genes 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 238000013500 data storage Methods 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000611 regression analysis Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Landscapes
- Tests Of Electronic Circuits (AREA)
Abstract
本公开涉及一种芯片可测性设计测试方法、测试平台及其生成方法及装置,应用于新一代信息技术领域,包括接收当前测试向量片段,当前测试向量片段由测试平台可识别的第一测试向量及辅助信息拆分得到或由原始的第二测试向量的片段解析得到,基于辅助信息获取被测芯片的代码输出的实际向量值,根据预期向量值与实际向量值的比对结果确定当前测试向量片段的测试结果;根据当前测试向量片段的测试结果与其他测试向量片段的测试结果得到最终的测试结果。本公开的芯片可测性设计的测试方法在应用于本公开的测试平台时,能够针对规模较大的芯片,在芯片在投片前完成可测性设计DFT的测试,且测试平台的存储空间大小可以灵活设置,提高测试平台的能力。
Description
技术领域
本公开涉及新一代信息技术领域,尤其涉及一种芯片可测性设计测试方法、测试平台及其生成方法及装置。
背景技术
芯片可测性设计(Design for Test,DFT)指的是在芯片原始设计阶段即***各种用于提高芯片可测试性(包括可控制性和可观测性)的硬件逻辑,测试向量引擎软件基于这部分逻辑可生成测试向量,测试向量在自动测试机台上完成测试,达到测试大规模芯片的目的。如果可测性设计DFT本身存在一些功能问题,导致产生的测试向量出现错误,则使用测试向量测试芯片时,将大大增加在自动测试机台(Automatic Test Equipment,ATE)上对测试向量进行调试的时间,可能影响芯片的测试结果的可信度,增加了芯片测试的开销,甚至影响芯片功能,导致流片失败。因此,芯片可测性设计DFT的测试是芯片生产制造后一个非常重要的环节,并需要在芯片投片前完成测试。
当前主流的公知技术是通过软件仿真平台(例如Simulation)进行芯片可测性设计DFT的测试。但随着集成电路的发展,芯片的规模越来越大,由于软件仿真平台不擅长大规模芯片,其在芯片规模和测试时间上捉襟见肘,形成了明显瓶颈,对芯片在投片前完成可测性设计DFT的测试提出了极大挑战。
因此,针对规模较大的芯片,如何在芯片在投片前完成可测性设计DFT的测试,成为本领域的研究热点。
发明内容
有鉴于此,本公开提出了一种芯片可测性设计测试方法、测试平台及其生成方法及装置,本公开实施例的芯片可测性设计的测试方法在应用于本公开实施例的测试平台时,能够针对规模较大的芯片,在芯片在投片前完成可测性设计DFT的测试,且测试平台的存储空间大小可以灵活设置,使得测试平台具备增强功能。
根据本公开的一方面,提供了一种芯片可测性设计的测试方法,所述方法应用于测试平台,所述方法包括:在测试用例的执行文件对应的前一测试向量片段完成被测芯片的测试后,停止芯片时钟,接收测试用例的执行文件对应的当前测试向量片段,所述当前测试向量片段由所述执行文件对应的第一测试向量及辅助信息拆分得到,或者由所述执行文件对应的第二测试向量的片段解析得到,所述第一测试向量是所述测试平台可识别的向量,所述第二测试向量是原始的测试向量,所述辅助信息包括控制所述测试平台对被测芯片进行测试的指导信息;启动芯片时钟并基于所述当前测试向量片段测试所述被测芯片,包括:基于辅助信息,控制所述当前测试向量片段对应的激励信号输出到所述被测芯片的代码;获取所述被测芯片的代码输出的实际向量值;以及根据所述当前测试向量片段包括的预期向量值与所述实际向量值的比对结果确定所述当前测试向量片段对应的测试结果;根据所述当前测试向量片段对应的测试结果与所述第一测试向量及辅助信息拆分得到的其他测试向量片段的测试结果,或与所述第二测试向量的其他片段解析得到的其他测试向量片段的测试结果,得到最终的测试结果,所述最终的测试结果通过用例执行日志展示。
在一种可能的实现方式中,所述基于辅助信息,控制所述当前测试向量片段对应的激励信号输出到所述被测芯片的代码,包括:在所述辅助信息中的测试周期驱动参数指示的时间点,输出所述激励信号到所述被测芯片的代码的输入接口,所述被测芯片的代码的输出接口输出所述实际向量值。
在一种可能的实现方式中,所述根据所述当前测试向量片段包括的预期向量值与所述实际向量值的比对结果确定所述当前测试向量片段对应的测试结果,包括:所述测试向量片段包括的预期向量值指示比对时,比对所述测试向量片段中预期向量值与所述测试周期比对参数指示的时间点处的芯片管脚输出的实际向量值是否匹配;在比对结果是该时间点处的实际向量值和预期向量值不匹配时,记录错误信息,所述错误信息包括该时间点对应的测试周期、该时间点处的实际向量值和预期向量值;根据所述错误信息确定所述当前测试向量片段对应的测试结果。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
根据本公开的另一方面,提供了一种测试平台的生成方法,所述方法包括:接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,所述第二测试向量是原始的测试向量;分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息;根据所述公共信息以及拆分信息生成测试平台,所述拆分信息与所述测试平台的存储空间大小有关。
在一种可能的实现方式中,所述公共信息包括被测芯片的芯片管脚参数、时间参数、测试周期时间定义中的一种或多种。
在一种可能的实现方式中,所述拆分信息用于对所述测试平台可识别的向量进行拆分,所述方法还包括:根据每个第二测试向量对应的测试向量解析数据生成第一测试向量,所述第一测试向量是所述测试平台可识别的向量;根据所述拆分信息对所述第一测试向量及辅助信息进行拆分,得到多个测试向量片段,其中每个测试向量片段的大小小于或等于所述测试平台的存储空间大小,所述测试向量片段在所述测试平台对被测芯片进行测试时使用。
在一种可能的实现方式中,所述根据所述拆分信息对所述第一测试向量及辅助信息进行拆分,得到多个测试向量片段,包括:从所述第一测试向量的起始位置开始,每间隔拆分信息指示的测试向量片段的长度得到一个拆分节点,直到第一测试向量的终止位置与前一拆分节点之间的长度小于或等于所述拆分信息指示的测试向量片段的长度;所述拆分信息指示的测试向量片段的长度小于或等于所述测试平台的存储空间大小;在每个拆分节点处进行拆分,得到多个测试向量片段。
在一种可能的实现方式中,所述拆分信息用于对所述第二测试向量进行拆分,所述方法还包括:根据所述拆分信息对所述第二测试向量进行拆分,得到多个原始向量片段;根据多个原始向量片段对应的测试向量解析数据分别生成多个测试向量片段,其中每个测试向量片段的大小小于或等于所述测试平台的存储空间大小,所述多个测试向量片段是所述测试平台可识别的片段,所述多个测试向量片段在所述测试平台对被测芯片进行测试时使用。
在一种可能的实现方式中,所述方法还包括:根据每个第二测试向量对应的测试向量解析数据生成至少一个执行文件,其中每个执行文件对应于至少一个测试用例,所述测试用例执行时,该测试用例的执行文件对应的多个测试向量片段依次输入到所述测试平台。
在一种可能的实现方式中,所述测试向量解析数据还用于得到辅助信息,所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息以及各第二测试向量的差异信息,所述辅助信息在所述测试平台对被测芯片进行测试时使用。
在一种可能的实现方式中,所述测试向量片段包括该测试向量片段下的每个测试周期内,所述被测芯片的单向管脚的预期向量值和激励向量值以及双向管脚的预期/激励向量值。
在一种可能的实现方式中,所述多个第二测试向量包括不同语言编写的测试向量,包括标准测试接口语言STIL、波形生成语言WGL、测试描述语言TDL中的至少一种。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
根据本公开的另一方面,提供了一种测试平台,包括:接收模块,用于在测试用例的执行文件对应的前一测试向量片段完成被测芯片的测试后,停止芯片时钟,接收测试用例的执行文件对应的当前测试向量片段,所述当前测试向量片段由所述执行文件对应的第一测试向量及辅助信息拆分得到,或者由所述执行文件对应的第二测试向量的片段解析得到,所述第一测试向量是所述测试平台可识别的向量,所述第二测试向量是原始的测试向量,所述辅助信息包括控制所述测试平台对被测芯片进行测试的指导信息;测试模块,用于启动芯片时钟并基于所述当前测试向量片段测试所述被测芯片,包括:基于辅助信息,控制所述当前测试向量片段对应的激励信号输出到所述被测芯片的代码;获取所述被测芯片的代码输出的实际向量值;以及根据所述当前测试向量片段包括的预期向量值与所述实际向量值的比对结果确定所述当前测试向量片段对应的测试结果;第一分析模块,用于根据所述当前测试向量片段对应的测试结果与所述第一测试向量及辅助信息拆分得到的其他测试向量片段的测试结果,或与所述第二测试向量的其他片段解析得到的其他测试向量片段的测试结果,得到最终的测试结果,所述最终的测试结果通过用例执行日志展示。
在一种可能的实现方式中,所述基于辅助信息,控制所述当前测试向量片段对应的激励信号输出到所述被测芯片的代码,包括:在所述辅助信息中的测试周期驱动参数指示的时间点,输出所述激励信号到所述被测芯片的代码的输入接口,所述被测芯片的代码的输出接口输出所述实际向量值。
在一种可能的实现方式中,所述根据所述当前测试向量片段包括的预期向量值与所述实际向量值的比对结果确定所述当前测试向量片段对应的测试结果,包括:所述测试向量片段包括的预期向量值指示比对时,比对所述测试向量片段中预期向量值与所述测试周期比对参数指示的时间点处的芯片管脚输出的实际向量值是否匹配;在比对结果是该时间点处的实际向量值和预期向量值不匹配时,记录错误信息,所述错误信息包括该时间点对应的测试周期、该时间点处的实际向量值和预期向量值;根据所述错误信息确定所述当前测试向量片段对应的测试结果。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
根据本公开的另一方面,提供了一种测试平台的生成装置,包括:第二分析模块,用于接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,所述第二测试向量是原始的测试向量;第三分析模块,用于分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息;第一生成模块,用于根据所述公共信息以及拆分信息生成测试平台,所述拆分信息与所述测试平台的存储空间大小有关。
在一种可能的实现方式中,所述公共信息包括被测芯片的芯片管脚参数、时间参数、测试周期时间定义中的一种或多种。
在一种可能的实现方式中,所述拆分信息用于对所述测试平台可识别的向量进行拆分,所述装置还包括:第二生成模块,用于根据每个第二测试向量对应的测试向量解析数据生成第一测试向量,所述第一测试向量是所述测试平台可识别的向量;第一拆分模块,用于根据所述拆分信息对所述第一测试向量及辅助信息进行拆分,得到多个测试向量片段,其中每个测试向量片段的大小小于或等于所述测试平台的存储空间大小,所述测试向量片段在所述测试平台对被测芯片进行测试时使用。
在一种可能的实现方式中,所述根据所述拆分信息对所述第一测试向量及辅助信息进行拆分,得到多个测试向量片段,包括:从所述第一测试向量的起始位置开始,每间隔拆分信息指示的测试向量片段的长度得到一个拆分节点,直到第一测试向量的终止位置与前一拆分节点之间的长度小于或等于所述拆分信息指示的测试向量片段的长度;所述拆分信息指示的测试向量片段的长度小于或等于所述测试平台的存储空间大小;在每个拆分节点处进行拆分,得到多个测试向量片段。
在一种可能的实现方式中,所述拆分信息用于对所述第二测试向量进行拆分,所述装置还包括:第二拆分模块,用于根据所述拆分信息对所述第二测试向量进行拆分,得到多个原始向量片段;第三生成模块,用于根据多个原始向量片段对应的测试向量解析数据分别生成多个测试向量片段,其中每个测试向量片段的大小小于或等于所述测试平台的存储空间大小,所述多个测试向量片段是所述测试平台可识别的片段,所述多个测试向量片段在所述测试平台对被测芯片进行测试时使用。
在一种可能的实现方式中,所述装置还包括:第四生成模块,用于根据每个第二测试向量对应的测试向量解析数据生成至少一个执行文件,其中每个执行文件对应于至少一个测试用例,所述测试用例执行时,该测试用例的执行文件对应的多个测试向量片段依次输入到所述测试平台。
在一种可能的实现方式中,所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指令以及各第二测试向量的差异信息。
在一种可能的实现方式中,所述测试向量片段包括该测试向量片段下的每个测试周期内,所述被测芯片的单向管脚的预期向量值和激励向量值以及双向管脚的预期/激励向量值。
在一种可能的实现方式中,所述多个第二测试向量包括不同语言编写的测试向量,包括标准测试接口语言STIL、波形生成语言WGL、测试描述语言TDL中的至少一种。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
根据本公开的另一方面,提供了一种测试平台,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述芯片可测性设计的测试方法。
根据本公开的另一方面,提供了一种测试平台的生成装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述测试平台的生成方法。
根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述芯片可测性设计的测试方法,或者实现上述测试平台的生成方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述芯片可测性设计的测试方法,或者执行上述测试平台的生成方法。
根据本公开实施例的芯片可测性设计的测试方法,通过在测试用例的执行文件对应的前一测试向量片段完成被测芯片的测试后,停止芯片时钟,接收测试用例的执行文件对应的当前测试向量片段,当前测试向量片段由执行文件对应的第一测试向量及辅助信息拆分得到,或者由执行文件对应的第二测试向量的片段解析得到,第一测试向量是测试平台可识别的向量,第二测试向量是原始的测试向量,辅助信息包括控制测试平台对被测芯片进行测试的指导信息,可以获取到芯片可测性设计的测试的必要信息;通过启动芯片时钟并基于当前测试向量片段测试被测芯片,包括基于辅助信息,控制当前测试向量片段对应的激励信号输出到被测芯片的代码,获取被测芯片的代码输出的实际向量值,以及根据当前测试向量片段包括的预期向量值与实际向量值的比对结果确定当前测试向量片段对应的测试结果,可以完成单个测试向量片段对应的测试;通过根据当前测试向量片段对应的测试结果与第一测试向量及辅助信息拆分得到的其他测试向量片段的测试结果,或与第二测试向量的其他片段解析得到的其他测试向量片段的测试结果,得到最终的测试结果,可以完成完整的芯片可测性设计的测试。基于本公开实施例的测试平台,本公开实施例的芯片可测性设计的测试方法提出一套全面的测试架构,可以实现精准定位到测试异常所在的测试向量片段和对应的测试周期数。测试结果可通过用例执行日志展示,实现了芯片可测试设计的测试流程的自动化。在测试过程中无需任何非通用自研装置、设备、芯片***电路,从而避免了其他硬件引入不可预知问题,使得本公开实施例的芯片可测性设计的测试方法在测试结果上更加准确。且采用每次接收测试向量片段时停止时钟,进行接收的测试向量片段的测试时启动时钟的方式,可以保证相邻两个测试向量片段对应的测试过程可衔接,即拆分不会影响芯片可测性设计的测试的正确性。测试向量片段的长度可以远小于完成的测试向量,因此测试平台的存储空间大小可以设置为更小,降低测试平台的数据存储压力。
根据本公开实施例的测试平台生成方法,通过接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,分析测试向量解析数据,可以识别得到多个第二测试向量的公共信息;根据公共信息和拆分信息可以生成测试平台。拆分信息与测试平台的存储空间大小有关,使得生成的测试平台的存储空间大小可以灵活调整,降低测试平台的数据存储压力;解析第二测试向量生成测试平台的过程可以实现自动化,释放了用户自己搭建测试环境的精力;第二测试向量是原始的测试向量,对第二测试向量的解析可以不涉及将其转换成某种特定格式,因此可以降低测试向量解析数据以及公共信息与第二测试向量相比的失真程度;根据本公开实施例的测试平台生成方法生成的测试平台可以用于芯片可测性设计的测试,能够保证芯片可测性设计的测试的完备性。该测试平台无需特定的自研硬件装置和芯片***电路,对测试向量的数据存储、测试芯片逻辑规模、管脚数量、管脚驱动能力、出错后的调试能力的限制很小,因此通用性强;且能够实现投片前测试,可以在芯片项目前期发现问题,以更小的代价,更大程度释放芯片可测性设计风险,同时清除测试向量问题,节省在自动测试机台ATE上因为测试向量问题耗费的测试向量调试时间,从而节省自动测试机台ATE的测试开销,降低芯片的测试成本。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开实施例的测试平台的生成方法的流程的示意图。
图2示出根据本公开实施例的测试平台的生成方法的流程的示意图。
图3示出本公开实施例的测试平台在不同的仿真平台上、不同的使用模式下的测试速度的示例。
图4示出根据本公开实施例的拆分信息用于对测试平台可识别的向量进行拆分时的方法的示意图。
图5示出根据本公开实施例的拆分信息用于对测试平台可识别的向量进行拆分时的方法的示意图。
图6a示出根据本公开实施例的芯片可测性设计的测试方法的流程的示意图。
图6b示出根据本公开实施例的芯片可测性设计的测试方法的流程的示意图。
图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、有的现有技术仅支持输入单一的测试向量格式,过于单一;有的现有技术支持多种测试向量格式转换为一种格式,但无法直接支持多种测试向量格式,无法做到从原始输入的测试向量无失真提取数据。
有鉴于此,本公开提出了一种芯片可测性设计测试方法、测试平台及其生成方法及装置,本公开实施例的芯片可测性设计的测试方法在应用于本公开实施例的测试平台时,能够针对规模较大的芯片,在芯片在投片前完成可测性设计DFT的测试,且测试平台的存储空间大小可以灵活设置,使得测试平台具备增强功能。
图1和图2示出根据本公开实施例的测试平台的生成方法的流程的示意图。如图1所示,该测试平台生成方法包括步骤S11-S13:
步骤S11,接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,第二测试向量是原始的测试向量;
步骤S12,分析测试向量解析数据,识别得到多个第二测试向量的公共信息;
步骤S13,根据公共信息以及拆分信息生成测试平台,拆分信息与测试平台的存储空间大小有关。
举例来说,如图2所示,可以设置一个“测试向量解析引擎”,用于执行本公开实施例的测试平台生成方法。用户可以指定包括多种格式的第二测试向量的测试向量文件集(未示出),其中,第二测试向量是原始的测试向量,即未经格式转换的测试向量,可以是利用不同的工具(编程语言)编写或生成的不同格式的测试向量,可针对同一款芯片进行测试。在步骤S11中,通过对接收的多个第二测试向量进行分析,识别第二测试向量的格式,可以抽取每个第二测试向量的有效信息,以每个第二测试向量对应的测试向量解析数据的形式存储在本地数据库中,供后续步骤使用。其中抽取的信息可以是各种格式的测试向量通用的数据,例如管脚以及测试周期等。可选地,如图2所示,在“测试向量解析引擎”中可以设置一个“测试向量解析器”(软件模块),将第二测试向量作为该“测试向量解析器”的输入,该“测试向量解析器”可以执行步骤S11。第二测试向量的格式的示例可以参见下文的相关描述。
在步骤S12中,通过分析测试向量解析数据,可以识别出不同的第二测试向量的解析数据中无差异的部分,得到多个第二测试向量的公共信息。可选地,如图2所示,上述“测试向量解析器”还可以执行步骤S12。每个第二测试向量与其他第二测试向量的差异部分可以作为该第二测试向量的辅助信息存储。辅助信息在对被测芯片进行测试时使用。其中,该步骤分析的测试向量解析数据可以是测试向量文件集中的全部或者部分第二测试向量的测试向量解析数据,本公开对此不作限制。公共信息和辅助信息的示例可以参见下文的相关描述。
在识别公共信息后,在步骤S13中,根据公共信息和拆分信息可以生成测试平台(Testbench,TB)。可选地,如图2所示,可以设置一个“测试平台生成器”(软件模块),将公共信息和拆分信息作为该“测试平台生成器”的输入,该“测试平台生成器”对公共信息做二次综合解析,以解析测试的方式,归纳出测试平台可具备的功能,形成测试平台中的各模块,拆分信息与测试平台的存储空间大小有关,因此可以用于确定测试平台的存储空间的大小,从而自动生成测试平台。可选地,测试平台中的各模块可以是不可综合的软件形态,也可是可综合成硬件的硬件形态。该测试平台可以完成步骤S11分析过的所有第二测试向量关联的被测芯片的测试。测试平台的各模块的示例可以参见下文测试平台执行芯片可测性设计的测试方法部分的描述。
本公开实施例的测试平台可具备如下功能:激励驱动、向量值比对、错误信息(Error Information)记录(存储)和/或输出(打印、上报)。每个功能的示例可以参见下文测试平台执行芯片可测性设计的测试方法部分的描述。
根据本公开实施例的测试平台生成方法,通过接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,分析测试向量解析数据,可以识别得到多个第二测试向量的公共信息;根据公共信息和拆分信息可以生成测试平台。拆分信息与测试平台的存储空间大小有关,与存储完整的测试向量数据相比,极大的缩减了测试平台的存储开销;解析第二测试向量生成测试平台的过程可以实现自动化,释放了用户自己搭建测试环境的精力;第二测试向量是原始的测试向量,对第二测试向量的解析可以不涉及将其转换成某种特定格式,因此可以降低测试向量解析数据以及公共信息与第二测试向量相比的失真程度;根据本公开实施例的测试平台生成方法生成的测试平台可以用于芯片可测性设计的测试,能够保证芯片可测性设计的测试的完备性。该测试平台无需特定的自研硬件装置和芯片***电路,对测试向量的数据存储、测试芯片逻辑规模、管脚数量、管脚驱动能力、出错后的调试能力的限制很小,因此通用性强;且能够实现投片前测试,可以在芯片项目前期发现问题,以更小的代价,更大程度释放芯片可测性设计风险,同时清除测试向量问题,节省在自动测试机台ATE上因为测试向量问题耗费的测试向量调试时间,从而节省自动测试机台ATE的测试开销,降低芯片的测试成本。
在一种可能的实现方式中,多个第二测试向量包括不同语言编写的测试向量,包括标准测试接口语言(Standard Test Interface Language,STIL)、波形生成语言(Waveform Generation Language,WGL)、测试描述语言(Test Description Language,TDL)中的至少一种。
举例来说,参见图2,波形生成语言WGL格式的第二测试向量的编号可以是A0-An,标准测试接口语言STIL格式的第二测试向量的编号可以是B0-Bn,其他格式的第二测试向量的编号可以是C0-Cn。需要注意的是,本公开中提及的A0-An、B0-Bn、C0-Cn仅表示编号,并不表示第二测试向量本身。在图2中以每种格式的第二测试向量的数量均相同且等于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以外的其他格式的第二测试向量,都可以基于第二测试向量包括的特定关键字提取得到上述公共信息,在此不再赘述。
公共信息中的芯片管脚参数、时间参数、测试周期时间定义可以是各第二测试向量的解析数据中,与芯片管脚参数、时间参数、测试周期时间定义的公共部分。通过这种方式,可降低使用公共信息得到测试平台的数据处理成本。
在一种可能的实现方式中,辅助信息包括控制测试平台对被测芯片进行测试的指导信息以及各第二测试向量的差异信息。
举例来说,首先,辅助信息可以用于在测试平台对被测芯片的可测性设计进行测试的过程中,决定测试平台的控制行为,例如控制测试平台执行下文所述的芯片可测性设计的测试方法,因此辅助信息可包括控制测试平台对被测芯片进行测试的指导信息,该指导信息可通过分析测试向量解析数据得到。指导信息中可包括控制激励驱动的方式的测试周期驱动参数以及控制比对方式的测试周期观测比对参数,指导信息的示例性使用方式可以参见下文的芯片可测性设计的测试方法部分的相关描述。
其次,各第二测试向量是存在差异的,可以将每个第二测试向量与其他第二测试向量的差异信息作为辅助信息的一部分,与公共信息伴随存储。例如某个第二测试向量的测试周期时间定义与其他第二测试向量不一致时,该第二测试向量的辅助信息可以包括该第二测试向量中对芯片输入的激励驱动、输出观测时间定义部分。
通过这种方式,使得公共信息与辅助信息结合可以无失真地描述各第二测试向量,且需要存储的数据量更少,降低数据存储成本。
在一种可能的实现方式中,测试平台适配于软件仿真平台和硬件仿真平台。
本公开实施例的测试平台可以由可综合硬件描述语言verilog实现。在此情况下,测试平台可适配于硬件仿真平台,例如硬件加速器(Emulation),使得测试平台执行下文所述的芯片可测性设计的测试方法时速度更快。本公开实施例的测试平台还可以由可综合硬件描述语言verilog以及不可综合的语句实现,不可综合的语句可以用于为测试平台增加调试定位等功能,以提高测试平台的能力。测试平台还可以适配于软件仿真平台,例如软件仿真服务器(Simulation),使得测试平台能够在软件仿真平台和硬件仿真平台中切换,提升测试平台的应用方式的灵活性。图3和表1示出本公开实施例的测试平台在不同的仿真平台上、不同的使用模式下的测试速度的示例。
表1
场景 | 使用模式 | 仿真平台 | 仿真速度 |
Simulator | Simulation | 软件仿真服务器 | ≈10Hz |
EMU-仿真加速 | TBA(Transaction Based Acceleration) | 硬件加速器 | 10K~100KHz |
EMU-原型验证 | ICE(In-Circuit Emulation) | 硬件加速器 | 100K~4MHz |
参见图3和表1,本公开实施例的测试平台应用在软件仿真服务器时,使用模式可以包括simulation模式,该模式下测试平台可以应用在模拟器(Simulator)场景,测试速度(仿真速度)约为10Hz;测试平台应用在硬件加速器时,使用模式可以包括事务级验证加速(Transaction Based Acceleration,TBA)模式以及内部电路仿真(In-CircuitEmulation,ICE)模式,其中事务级验证加速TBA模式下测试平台可以应用在硬件加速器EMU-仿真加速场景,测试速度(仿真速度)可以达到10KHz~100KHz,内部电路仿真ICE模式下测试平台可以应用在硬件加速器EMU-原型验证场景,测试速度(仿真速度)可以达到100KHz~4MHz。可以看出,测试平台应用在硬件加速器时的测试速度(仿真速度)大于应用在软件仿真服务器时的测试速度(仿真速度)。其中,应用在硬件加速器时,在内部电路仿真ICE模式下测试速度(仿真速度)最快。并且,测试平台应用在硬件加速器时支持的被测电路的逻辑规模也远大于应用在软件仿真服务器时。
可选地,测试平台还可以应用于除硬件加速器之外的其他硬件仿真平台,例如现场可编程门阵列FPGA等,以及除软件仿真服务器之外的其他软件仿真平台,本公开对此不作限制。
通过这种方式,使得本公开实施例的测试平台既能实现仿真速度的提升,又能适配于多种平台,提升测试平台的应用方式的灵活性,且使得被测芯片的逻辑规模受限程度降低,提升测试平台的能力。
下面介绍本公开实施例的拆分信息的示例性使用方法。图4示出根据本公开实施例的拆分信息用于对测试平台可识别的向量进行拆分时的方法的示意图。
如图4所示,在一种可能的实现方式中,拆分信息用于对测试平台可识别的向量进行拆分,所述方法还包括:
步骤S14,根据每个第二测试向量对应的测试向量解析数据生成第一测试向量,第一测试向量是所述测试平台可识别的向量;
步骤S15,根据拆分信息对第一测试向量及辅助信息进行拆分,得到多个测试向量片段,其中每个测试向量片段的大小小于或等于测试平台的存储空间大小,测试向量片段在测试平台对被测芯片进行测试时使用。
举例来说,原始的第二测试向量是测试平台不可识别的向量,因此无法在测试平台对被测芯片进行测试时使用。对此,在分析第二测试向量对应的测试向量解析数据时,在步骤S14中,可以根据每个第二测试向量对应的测试向量解析数据生成第一测试向量,例如基于测试周期(test cycle)提取、转换得到各测试向量在各测试周期的向量值(TestCycle Vector),即对原始的第二测试向量的每个测试周期中各管脚输入的激励向量值和各管脚输出的预期向量值,以测试平台可识别的数据格式存储,得到每个第二测试向量一一对应的第一测试向量。此时第一测试向量可以是测试平台可识别的向量。由于每个第二测试向量对应的测试向量解析数据还对应得到该第二测试向量的辅助信息,因此,对应于同一个第二测试向量的辅助信息和第一测试向量也可以是相对应的。
在第一测试向量对应多个测试周期的向量值时,第一测试向量的数据量可能比较大,测试平台使用完整的第一测试向量对被测芯片进行测试时,需要先接收第一测试向量并存储在存储空间中。为了降低测试平台对被测芯片进行测试时的数据存储成本,可以引入用于对测试平台可识别的向量进行拆分的拆分信息,在步骤S15中,可以根据拆分信息对第一测试向量及辅助信息进行拆分,得到多个测试向量片段(测试向量片段1-测试向量片段k),存储在测试向量片段集中。第一测试向量是测试平台可识别的向量,因此第一测试向量及辅助信息拆分得到的测试向量片段也可以在测试平台对被测芯片进行测试时使用。其中每个测试向量片段的大小可以小于或等于测试平台的存储空间大小。可选地,测试平台的生成(步骤S13)先于第一测试向量的拆分(步骤S15)完成时,可以根据测试平台的存储空间大小确定拆分信息,再拆分得到每个第一测试向量对应的测试向量片段,第一测试向量的拆分(步骤S15)先于测试平台的生成(步骤S13)完成时,可以根据拆分信息确定测试平台的存储空间大小。本公开实施例对于步骤S15和步骤S13的执行顺序不作限制。
通过这种方式,能够确定第一测试向量与辅助信息的对应关系,并可以得到第一测试向量与辅助信息拆分后的测试向量片段,使得使用测试平台对被测芯片进行测试成为可能。
在一种可能的实现方式中,步骤S15包括:
从第一测试向量的起始位置开始,每间隔拆分信息指示的测试向量片段的长度得到一个拆分节点,直到第一测试向量的终止位置与前一拆分节点之间的长度小于或等于拆分信息指示的测试向量片段的长度;拆分信息指示的测试向量片段的长度小于或等于测试平台的存储空间大小;
在每个拆分节点处进行拆分,得到多个测试向量片段。
举例来说,拆分信息可包括测试向量片段的长度、每一个测试向量片段的结束条件、每一个第一测试向量拆分得到的测试向量片段的数量等等。根据测试向量片段的长度,从第一测试向量的起始位置开始,每间隔对应长度得到一个拆分节点,直到第一测试向量的终止位置与前一拆分节点之间的长度小于或等于拆分信息指示的测试向量片段的长度,在每个拆分节点处进行拆分,即可完成一个第一测试向量的拆分。
其中,拆分信息包括的测试向量片段的长度可以是一个定值L1,则某个第一测试向量拆分得到的多个测试向量片段中,最后一个测试向量片段的长度可能小于或者等于该定值L1(例如等于L2),其他的测试片段的长度可以等于该定值L1,即多个测试向量片段的长度可以分别是L1、L1、……、L1、L2。
拆分信息包括的测试向量片段的长度也可以是一个数组,例如某个第一测试向量拆分得到的测试向量片段的数量是k时,拆分信息包括的测试向量片段的长度也可以是{L1、L2、……、Lk},其中L1是该第一测试向量拆分得到的第1个测试向量片段的长度,L2是该第一测试向量拆分得到的第2个测试向量片段的长度,……,Lk是该第一测试向量拆分得到的第k个测试向量片段的长度。
可选地,如图2所示,可以设置一个“测试向量片段生成器”(软件模块),将每个第二测试向量对应的测试向量解析数据以及拆分信息(未示出)作为该“测试向量片段生成器”的输入,该“测试向量片段生成器”执行步骤S14和步骤S15。其中各第二测试向量对应的测试向量解析数据可以串行输入到“测试向量片段生成器”中。在图2的示例中,“测试向量片段生成器”输出的测试向量片段的编号可以是M0-Mn。
基于拆分信息指示的测试向量片段的长度进行拆分较为简单,拆分的限定条件较少,实现起来更便捷。
图5示出根据本公开实施例的拆分信息用于对测试平台可识别的向量进行拆分时的方法的示意图。
如图5所示,在一种可能的实现方式中,拆分信息用于对第二测试向量进行拆分,所述方法还包括:
步骤S16,根据拆分信息对第二测试向量进行拆分,得到多个原始向量片段;
步骤S17,根据多个原始向量片段对应的测试向量解析数据分别生成多个测试向量片段,其中每个测试向量片段的大小小于或等于测试平台的存储空间大小,多个测试向量片段是测试平台可识别的片段,多个测试向量片段在测试平台对被测芯片进行测试时使用。
举例来说,原始的第二测试向量是测试平台不可识别的向量,因此无法在测试平台对被测芯片进行测试时使用。对此,在步骤S16中,可以基于拆分信息对第二测试向量进行拆分,得到多个原始向量片段(原始向量片段1-原始向量片段k)。由于在步骤11中已经得到了各第二测试向量对应的测试向量解析数据,因此根据每个原始向量片段,也可以确定对应的测试向量解析数据。在步骤S17中,可以根据多个原始向量片段对应的测试向量解析数据分别生成多个测试向量片段(测试向量片段1-测试向量片段k),其示例性生成方式可以与上文中基于第二测试向量对应的测试向量解析数据生成第一测试向量的示例性方法。此时测试向量片段可以是测试平台可识别的片段,可以在测试平台对被测芯片进行测试时使用。可选地,步骤S16和步骤S17也可以由上文所述的“测试向量片段生成器”执行。
其中每个测试向量片段的大小可以小于或等于测试平台的存储空间大小。一个第二测试向量对应的多个测试向量片段的长度可能不同,因此,步骤S16和步骤S17可以先于步骤S13执行,在步骤S13中,生成测试平台时,可以是根据步骤S16确定的测试向量片段的长度的最大值确定测试平台的存储空间大小的最小值。由于每个第二测试向量对应的测试向量解析数据还可对应得到该第二测试向量的辅助信息,因此,可认为每个原始向量片段对应的测试向量解析数据还可对应得到该原始向量片段的辅助信息,对应于原始向量片段的测试向量片段也指示了该原始向量片段对应的辅助信息。测试平台可以根据辅助信息明确各测试向量片段的起始位置和终止位置,使得在读取存储空间存储的测试向量片段中的向量值时可以准确读取。
通过这种方式,使得生成测试向量片段的方式更灵活。生成测试平台的步骤在生成测试向量片段的步骤之后执行时,测试平台的存储空间大小可以固定,因此更适用于多个第二测试向量的测试场景。
因为第二测试向量的拆分不用考虑当前周期处于哪个阶段(测试(setup)阶段和载入(shift)阶段),因此在多种格式的多个第二测试向量有相同的公共信息的情况下,可统一拆解。对于不同格式的测试向量文件,通过测试向量解析器可实现输入文件格式和输出文件格式的隔离,实现输入文件格式与向量拆分无关化,使得测试平台相比于现有的测试平台不会增加复杂度和维护成本。输出的测试向量片断可进行统一编码(如图2所示的编号M0-Mn),辅助信息还可记录第二测试向量(编号A0-An,B0-Bn,C0-Cn)与测试向量片断(编号M0-Mn)的对应关系,以便测试过程中出现错误时能够进行回溯和问题定位。
在一种可能的实现方式中,测试向量片段包括该测试向量片段下的每个测试周期内,被测芯片的单向管脚的预期向量值和激励向量值以及双向管脚的预期/激励向量值。
举例来说,测试向量片段的长度与测试向量片段下的周期数有关,长度越长周期数越大,长度越短周期数越小。测试平台可识别的测试向量片段的格式可以是一个二维数组,其中二维数组的每行存储的可以是单个测试周期的向量(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
单向管脚激励向量值(2bit) | 描述 |
2’b00 | 芯片管脚输入激励为0 |
2’b01 | 芯片管脚输入激励为1 |
2’b10 | - |
2’b11 | 芯片管脚输入激励为高阻态Z |
表3
单向管脚预期向量值(2bit) | 描述 |
2’b00 | 芯片管脚输出预期为0 |
2’b01 | 芯片管脚输出预期为1 |
2’b10 | - |
2’b11 | 芯片管脚输出预期为X,即不预期 |
表4
双向管脚激励/预期向量值(3bit) | 描述 |
3’b000 | 芯片管脚输入激励为0 |
3’b001 | 芯片管脚输入激励为1 |
3’b010 | - |
3’b011 | 芯片管脚输入激励为高阻态Z |
3’b100 | 芯片管脚输出预期为0 |
3’b101 | 芯片管脚输出预期为1 |
3’b110 | - |
3’b111 | 芯片管脚输出预期为X,即不预期 |
参见表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
芯片管脚a(单向激励) | … | 芯片管脚b(单向预期) | … | 芯片管脚c(双向) | … | 测试周期序号 |
2’b00 | … | 2’b11 | … | 3’b000 | … | 32’h0000_0000 |
2’b01 | … | 2’b11 | … | 3’b001 | … | 32’h0000_0001 |
2’b00 | … | 2’b11 | … | 3’b111 | … | 32’h0000_0002 |
… | … | … | … | … | … | … |
如表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所示的第一测试向量的格式仅为示例,第一测试向量还可以包括更多的信息,例如除管脚的预期/激励向量值以外的其他对芯片的控制信息、调试信息等等,本公开对此不作限制。
在一种可能的实现方式中,所述方法还包括:
步骤S18,根据每个第二测试向量对应的测试向量解析数据生成至少一个执行文件,其中每个执行文件对应于至少一个测试用例,测试用例执行时,该测试用例的执行文件对应的多个测试向量片段依次输入到测试平台。
举例来说,基于测试向量的解析数据,可以产生用于编译/综合的编译/综合执行文件、用于单用例执行的用例执行文件以及用于多用例回归的回归执行文件,以便于用户执行用例与回归。可选地,如图2所示,可以设置一个“执行文件生成器”(软件模块),将测试向量解析数据作为该“执行文件生成器”的输入,该“执行文件生成器”执行步骤S18,生成编译/综合执行文件、用例执行文件、回归执行文件。
其中,针对每个第二测试向量可以对应生成一个用例执行文件,针对所有的被解析的第二测试向量可以对应生成一个回归执行文件。执行某个执行文件对应的测试用例,可以是运行该执行文件中对应的命令行,使得执行文件对应的多个测试向量片段依次输入到测试平台,由测试平台产生用例执行日志。则针对用例执行文件,用例执行日志也可以是单测试用例对应的日志;对于回归执行文件,用例执行日志可以是多个测试用例对应的日志。各种执行文件的用途可以参见下文芯片可测性设计的测试方法部分的描述。
可选地,在步骤S18(生成执行文件的步骤)在步骤S15或步骤S17之后执行时,如图4和图5所示,也可以根据测试向量片段生成至少一个执行文件,只要生成的执行文件可以包括测试用例执行的方法的信息即可,本公开实施例对于生成执行文件使用的具体数据不作限制。
通过这种方式,可以自动生成执行文件,执行文件可以对应至少一个测试用例,使得执行文件对应的测试用例执行时既可实现单用例仿真也可实现多用例回归,提高执行测试用例的便捷性。
图6a-图8示出根据本公开实施例的芯片可测性设计的测试方法的流程的示意图。如图6a所示,所述方法应用于测试平台,所述方法包括:
步骤S21,在测试用例的执行文件对应的前一测试向量片段完成被测芯片的测试后,停止芯片时钟,接收测试用例的执行文件对应的当前测试向量片段,当前测试向量片段由执行文件对应的第一测试向量及辅助信息拆分得到,或者由执行文件对应的第二测试向量的片段解析得到,第一测试向量是测试平台可识别的向量,第二测试向量是原始的测试向量,辅助信息包括控制测试平台对被测芯片进行测试的指导信息;
步骤S22,启动芯片时钟并基于当前测试向量片段测试被测芯片,包括:基于辅助信息,控制当前测试向量片段对应的激励信号输出到被测芯片的代码;获取被测芯片的代码输出的实际向量值,以及根据当前测试向量片段包括的预期向量值与实际向量值的比对结果确定当前测试向量片段对应的测试结果;
步骤S23,根据当前测试向量片段对应的测试结果与第一测试向量及辅助信息拆分得到的其他测试向量片段的测试结果,或与第二测试向量的其他片段解析得到的其他测试向量片段的测试结果,得到最终的测试结果,最终的测试结果通过用例执行日志展示。
举例来说,整芯片的规模通常非常大,流程上一般会对芯片的代码进行编译/综合后再执行测试。如图7所示,基于测试平台,可利用现有技术产生“编译/综合文件”,将一系列命令操作封装成简洁的命令,方便用户操作。在此情况下,在执行测试用例时,用户只需输入测试平台的文件与被测芯片代码。用户修改少量必要的信息(例如测试数据存储路径、执行的是哪个或者哪些测试用例等),运行命令,即可完成测试用例的执行,执行的结果(即测试结果、用例日志等)可以存储在数据库(database)中。
根据用户给出的测试用例的信息,可以确定待执行的测试用例(可能是单个测试用例也可能是多个测试用例),并执行测试用例。如图8和图6b所示,在执行测试用例时,在处理器(未示出)的控制下,可先将测试向量片段集中存储的测试用例的执行文件(单个测试用例对应的是上文所述的用例执行文件,多个测试用例可以对应上文所述的回归执行文件)对应的测试向量片段(测试向量片段1-测试向量片段k)依次加载到测试平台的存储空间里,对于测试平台来说,可以是执行步骤S21,在测试用例的执行文件对应的前一测试向量片段完成被测芯片的测试后,停止芯片时钟,接收(来自测试向量片段集的)测试用例的执行文件对应的当前测试向量片段。其中测试向量片段的示例可以参见上文表2-表5的相关描述,由执行文件对应的第一测试向量及辅助信息拆分得到测试向量片段的示例可以参见上文步骤S15,由执行文件对应的第二测试向量的片段解析得到测试向量片段的示例可以参见上文步骤S17,辅助信息的获得方式的示例可以参见上文步骤S12,第一测试向量的获得方式的示例可以参见上文步骤S14。
其中,如图8所示,测试平台可包括以下模块:存储空间、激励驱动器、控制逻辑、向量值比对器。在步骤S22中,测试被测芯片时,启动芯片时钟,测试平台先读取存储空间中的测试向量片段,并实时分析出公共信息部分和辅助信息部分。辅助信息包括控制测试平台对被测芯片进行测试的指导信息,用例执行时,按照执行文件指示的流程,辅助信息被加载到“控制逻辑”中,“控制逻辑”可控制步骤S22的执行,完成以下功能:基于辅助信息,控制激励信号的发送时序、向量值的比对、比对结果的存储等。所有测试平台行为控制相关的处理都可归纳到该模块中。例如“控制逻辑”可根据辅助信息驱动“激励驱动器”输出激励信号到芯片的代码,并控制“向量值比对器”从“存储空间”获取测试向量片段包括的预期向量值,并根据预期向量值控制“向量值比对器”从芯片的代码处获取实际向量值;以及控制“向量值比对器”对测试向量片段包括的预期向量值与实际向量值进行比对,根据比对结果确定测试结果。其具体实现方式可以参见下文对步骤S22的进一步描述。
因此,可以认为测试平台将存储空间中的测试向量片段全部读取时,该测试向量片段的测试将在一定时间内完成。对此,在测试向量片段由执行文件对应的第一测试向量及辅助信息拆分得到时,如果当前测试向量片段的长度等于存储空间大小,则当测试平台读取到存储空间的最后一行时,可以开始检测当前测试向量片段的测试的完成状态,反馈当前测试向量片段的测试的完成状态到处理器(未示出),使得处理器根据当前测试向量片段的测试的完成状态确定当前测试向量片段的测试已完成时(即本轮测试完成),可以停止芯片时钟并加载下一个测试向量片段到测试平台,开启下一轮测试;确定当前测试向量片段的测试未完成时(即本轮测试未完成),继续当前测试向量片段的测试。如果当前测试向量片段的长度小于存储空间大小,则可以在“控制逻辑”中增加计数功能,当计数与拆分信息指示的测试向量片段的周期数相同时,开始检测当前测试向量片段的测试的完成状态,反馈当前测试向量片段的测试的完成状态到处理器(未示出),使得处理器根据当前测试向量片段的测试的完成状态确定当前测试向量片段的测试已完成时(即本轮测试完成),可以停止芯片时钟并加载下一个测试向量片段到测试平台,开启下一轮测试;确定当前测试向量片段的测试未完成时(即本轮测试未完成),继续当前测试向量片段的测试。处理器根据测试平台反馈的测试完成状态可确定全部测试向量的测试是否完成,在确定全部测试向量的测试完成时,确定测试结束并执行步骤S23(日志分析);在确定全部测试向量的测试未完成时,继续当前测试向量片段的测试。
在步骤S23中,在当前测试向量片段由执行文件对应的第一测试向量及辅助信息拆分得到,且第一测试向量及辅助信息拆分得到的其他测试向量片段的测试结果均已经得到时,或者,在当前测试向量片段由执行文件对应的第二测试向量的片段解析得到,且第二测试向量的其他片段解析得到的其他测试向量片段的测试结果均已经得到时,可以基于当前测试向量片段和其他测试向量片段的测试结果得到最终的测试结果,最终的测试结果可以通过用例执行日志展示。如图7所示,假设每个第二测试向量都对应于一个测试用例,例如编号A0的第二测试向对应于编号A0的测试用例,则对于单用例仿真的测试用例(例如编号A0/编号An/编号Cn的测试用例),可以得到一个用例执行日志(例如编号A0/编号An/编号Cn的用例执行日志),后续通过执行用例调用日志分析功能可以进一步分析日志,判定当前测试用例是通过还是失败。
对于多用例回归的多个测试用例(例如编号A0、编号An、编号Cn的测试用例等),针对每个测试用例对应的用例执行文件或者全部用例对应的回归执行文件,可以分别得到与多个测试用例对应的多个用例执行日志(例如编号A0、编号An、编号Cn的用例执行日志等),后续可以对多个用例执行日志统一进行分析得到芯片可测性测试的回归分析报告。
其中,A0、An、Cn表示编号,不表示测试用例本身。
根据本公开实施例的芯片可测性设计的测试方法,通过在测试用例的执行文件对应的前一测试向量片段完成被测芯片的测试后,停止芯片时钟,接收测试用例的执行文件对应的当前测试向量片段,当前测试向量片段由执行文件对应的第一测试向量及辅助信息拆分得到,或者由执行文件对应的第二测试向量的片段解析得到,第一测试向量是测试平台可识别的向量,第二测试向量是原始的测试向量,辅助信息包括控制测试平台对被测芯片进行测试的指导信息,可以获取到芯片可测性设计的测试的必要信息;通过启动芯片时钟并基于当前测试向量片段测试被测芯片,包括基于辅助信息,控制当前测试向量片段对应的激励信号输出到被测芯片的代码,获取被测芯片的代码输出的实际向量值,以及根据当前测试向量片段包括的预期向量值与实际向量值的比对结果确定当前测试向量片段对应的测试结果,可以完成单个测试向量片段对应的测试;通过根据当前测试向量片段对应的测试结果与第一测试向量及辅助信息拆分得到的其他测试向量片段的测试结果,或与第二测试向量的其他片段解析得到的其他测试向量片段的测试结果,得到最终的测试结果,可以完成完整的芯片可测性设计的测试。基于本公开实施例的测试平台,本公开实施例的芯片可测性设计的测试方法提出一套全面的测试架构,可以实现精准定位到测试异常所在的测试向量片段和对应的测试周期数。测试结果可通过用例执行日志展示,实现了芯片可测试设计的测试流程的自动化。在测试过程中无需任何非通用自研装置、设备、芯片***电路,从而避免了其他硬件引入不可预知问题,使得本公开实施例的芯片可测性设计的测试方法在测试结果上更加准确。且采用每次接收测试向量片段时停止时钟,进行接收的测试向量片段的测试时启动时钟的方式,可以保证相邻两个测试向量片段对应的测试过程可衔接,即拆分不会影响芯片可测性设计的测试的正确性。测试向量片段的长度可以远小于完成的测试向量,因此测试平台的存储空间大小可以设置为更小,降低测试平台的数据存储压力。
在一种可能的实现方式中,步骤S22中,基于辅助信息,控制所述当前测试向量片段对应的激励信号输出到所述被测芯片的代码,包括:
在辅助信息中的测试周期驱动参数指示的时间点,输出激励信号到被测芯片的代码的输入接口,被测芯片的代码的输出接口输出实际向量值。
举例来说,参见上文所述,辅助信息可包括测试周期驱动参数,用于指示在哪些时间点输出激励信号开始一个测试周期等。对此,如图8所示,每个测试用例可以具备相对应的激励信号(即图7中的编号A0/编号An/编号Cn的用例波形等),“控制逻辑”可基于辅助信息中的测试周期驱动参数,控制“激励驱动器”在正确的时间点向被测芯片的代码的输入接口输出激励信号完成驱动,激励信号的波形可以基于多种波形模板(Waveform Table)设置,本公开对此不作限制。被测芯片的代码模拟实际芯片的信号处理过程,得到被测芯片的各管脚的实际向量值,如果芯片可测性设计没有错误出现,则每个管脚的实际向量值与该管脚的预期向量值(在测试向量片段中体现)可以相同。实际向量值可以由被测芯片的代码的输出接口输出。
通过这种方式,可以完成被测芯片的激励驱动。驱动使用的激励信号支持多种波形,能够提升激励驱动方式的灵活性。
在一种可能的实现方式中,步骤S22中,根据当前测试向量片段包括的预期向量值与实际向量值的比对结果确定当前测试向量片段对应的测试结果,包括:
测试向量片段包括的预期向量值指示比对时,比对测试向量片段中预期向量值与测试周期比对参数指示的时间点处的芯片管脚输出的实际向量值是否匹配;
在比对结果是该时间点处的实际向量值和预期向量值不匹配时,记录错误信息,错误信息包括该时间点对应的测试周期、该时间点处的实际向量值和预期向量值;
根据错误信息确定当前测试向量片段对应的测试结果。
举例来说,如图8所示,“控制逻辑”可控制“向量值比对器”从“存储空间”读取预期向量值,预期向量值可决定测试周期内管脚的向量值是否需要比对。例如预期向量值为“2’b01”或者“3’b101”,则指示比对,期望此测试周期内芯片代码的接口管脚输出1,若芯片代码的接口管脚实际输出1,则匹配,否则比对失败;同理预期向量值为“2’b00”或者“3’b100”,则指示比对,期望此测试周期内芯片代码的接口管脚输出0,若芯片代码的接口管脚实际输出0,则匹配,否则比对失败;同理预期向量值为“2’b11”或者“3’b111”,则指示不比对,不关心此测试周期内芯片代码的接口管脚实际输出向量值。辅助信息中的测试周期比对参数用于指示测试周期内获取被测芯片代码的管脚输出实际向量值的时间点。在确定测试周期内管脚的预期向量值指示比对时,可以通过被测芯片的代码的输出接口获取测试周期比对参数指示的时间点处输出的实际向量值,比对该时间点处的实际向量值和预期向量值是否匹配。如果比对结果是该时间点处的实际向量值和预期向量值不匹配,可认为比对失败,可记录错误信息,错误信息可包括该时间点对应的测试周期、该时间点处的实际向量值和预期向量值等。错误信息的存储深度可由用户指定。
测试平台完全由可综合硬件描述语言verilog实现时,存储空间既可支持存储最早出现的错误信息,也可支持刷新为最新出现的错误信息。例如,测试平台在上文所述的内部电路仿真ICE模式下,在错误信息产生时,“控制逻辑”可以触发测试暂停,并通知用户进行向量的调试工作。错误信息可以根据用户需求打印到用例执行日志中或者使用存储空间保存,以供用户分析测试情况。
测试平台由可综合硬件描述语言verilog实现且包括不可综合的语句时,不可综合的语句可用于在错误信息产生时,通过不可综合的语句对应的打印语法把错误信息直接显示出来,使得用户调试更便捷。比如使用Candence的硬件加速器EMU平台,测试平台在上文所述的内部电路仿真ICE模式下,使用“$display”语句,使能测试平台的加速(Acceleratable TestBench,ATB)特性,在逻辑分析(Logic Analyzer,LA)模式下仿真测试;或者可以直接使用直接加速编译器(Incisive Xaccelerator COMpiler,IXCOM)。
通过这种方式,使得芯片可测性设计的测试方法支持比对芯片管脚输出和预期;发现比对错误时,可记录、打印错误信息,定位高效。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
软件仿真平台和硬件仿真平台的示例在上文中已经描述过,在此不再赘述。
本公开实施例还提供了一种测试平台,图9示出根据本公开实施例的测试平台的结构的示意图。
如图9所示,测试平台包括:
接收模块91,用于在测试用例的执行文件对应的前一测试向量片段完成被测芯片的测试后,停止芯片时钟,接收测试用例的执行文件对应的当前测试向量片段,所述当前测试向量片段由所述执行文件对应的第一测试向量及辅助信息拆分得到,或者由所述执行文件对应的第二测试向量的片段解析得到,所述第一测试向量是所述测试平台可识别的向量,所述第二测试向量是原始的测试向量,所述辅助信息包括控制所述测试平台对被测芯片进行测试的指导信息;
测试模块92,用于启动芯片时钟并基于所述当前测试向量片段测试所述被测芯片,包括:基于辅助信息,控制所述当前测试向量片段对应的激励信号输出到所述被测芯片的代码;获取所述被测芯片的代码输出的实际向量值;以及根据所述当前测试向量片段包括的预期向量值与所述实际向量值的比对结果确定所述当前测试向量片段对应的测试结果;
第一分析模块93,用于根据所述当前测试向量片段对应的测试结果与所述第一测试向量及辅助信息拆分得到的其他测试向量片段的测试结果,或与所述第二测试向量的其他片段解析得到的其他测试向量片段的测试结果,得到最终的测试结果,所述最终的测试结果通过用例执行日志展示。
其中,接收模块的功能可以由上文及图8所示的存储空间来实现,测试模块的功能可以由上文及图8所示的激励驱动器、控制逻辑、向量值比对器来实现,第一分析模块的功能可以由上文及图8所示的向量值比对器来实现。
在一种可能的实现方式中,所述基于辅助信息,控制所述当前测试向量片段对应的激励信号输出到所述被测芯片的代码,包括:在所述辅助信息中的测试周期驱动参数指示的时间点,输出所述激励信号到所述被测芯片的代码的输入接口,所述被测芯片的代码的输出接口输出所述实际向量值。
在一种可能的实现方式中,所述根据所述当前测试向量片段包括的预期向量值与所述实际向量值的比对结果确定所述当前测试向量片段对应的测试结果,包括:所述第一测试向量包括的预期向量值指示比对时,比对所述第一测试向量中预期向量值与所述测试周期比对参数指示的时间点处的芯片管脚输出的实际向量值是否匹配;在比对结果是该时间点处的实际向量值和预期向量值不匹配时,记录错误信息,所述错误信息包括该时间点对应的测试周期、该时间点处的实际向量值和预期向量值;根据所述错误信息确定所述当前测试向量片段对应的测试结果。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
本公开实施例还提供了一种测试平台的生成装置,图10示出根据本公开实施例的测试平台的生成装置的结构的示意图。
如图10所示,测试平台的生成装置包括:
第二分析模块101,用于接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,所述第二测试向量是原始的测试向量;
第三分析模块102,用于分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息;
第一生成模块103,用于根据所述公共信息以及拆分信息生成测试平台,所述拆分信息与所述测试平台的存储空间大小有关。
其中,第二分析模块和第三分析模块的功能可以由上文及图2所示的测试向量解析器来实现,第一生成模块的功能可以由上文及图2所示的测试平台生成器来实现。
在一种可能的实现方式中,所述公共信息包括被测芯片的芯片管脚参数、时间参数、测试周期时间定义中的一种或多种。
在一种可能的实现方式中,所述拆分信息用于对所述测试平台可识别的向量进行拆分,所述装置还包括:第二生成模块,用于根据每个第二测试向量对应的测试向量解析数据生成第一测试向量,所述第一测试向量是所述测试平台可识别的向量;第一拆分模块,用于根据所述拆分信息对所述第一测试向量及辅助信息进行拆分,得到多个测试向量片段,其中每个测试向量片段的大小小于或等于所述测试平台的存储空间大小,所述测试向量片段在所述测试平台对被测芯片进行测试时使用。
其中,第二生成模块以及第一拆分模块的功能可以由上文及图2所示的测试向量片段生成器来实现。
在一种可能的实现方式中,所述根据所述拆分信息对所述第一测试向量及辅助信息进行拆分,得到多个测试向量片段,包括:从所述第一测试向量的起始位置开始,每间隔拆分信息指示的测试向量片段的长度得到一个拆分节点,直到第一测试向量的终止位置与前一拆分节点之间的长度小于或等于所述拆分信息指示的测试向量片段的长度;所述拆分信息指示的测试向量片段的长度小于或等于所述测试平台的存储空间大小;在每个拆分节点处进行拆分,得到多个测试向量片段。
在一种可能的实现方式中,所述拆分信息用于对所述第二测试向量进行拆分,所述装置还包括:第二拆分模块,用于根据所述拆分信息对所述第二测试向量进行拆分,得到多个原始向量片段;第三生成模块,用于根据多个原始向量片段对应的测试向量解析数据分别生成多个测试向量片段,其中每个测试向量片段的大小小于或等于所述测试平台的存储空间大小,所述多个测试向量片段是所述测试平台可识别的片段,所述多个测试向量片段在所述测试平台对被测芯片进行测试时使用。
其中,第二拆分模块以及第三生成模块的功能可以由上文及图2所示的测试向量片段生成器来实现。
在一种可能的实现方式中,所述装置还包括:第四生成模块,用于根据每个第二测试向量对应的测试向量解析数据生成至少一个执行文件,其中每个执行文件对应于至少一个测试用例,所述测试用例执行时,该测试用例的执行文件对应的多个测试向量片段依次输入到所述测试平台。
其中,第四生成模块的功能可以由上文及图2所示的执行文件生成器来实现。
在一种可能的实现方式中,所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指令以及各第二测试向量的差异信息。
在一种可能的实现方式中,所述测试向量片段包括该测试向量片段下的每个测试周期内,所述被测芯片的单向管脚的预期向量值和激励向量值以及双向管脚的预期/激励向量值。
在一种可能的实现方式中,所述多个第二测试向量包括不同语言编写的测试向量,包括标准测试接口语言STIL、波形生成语言WGL、测试描述语言TDL中的至少一种。
在一种可能的实现方式中,所述测试平台适配于软件仿真平台和硬件仿真平台。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述芯片可测性设计的测试方法,或者实现上述测试平台的生成方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种测试平台,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述芯片可测性设计的测试方法。
本公开实施例还提出一种测试平台的生成装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述测试平台的生成方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述芯片可测性设计的测试方法,或者执行上述测试平台的生成方法。
图11示出根据本公开实施例的装置1900的框图。其中,装置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 (18)
1.一种芯片可测性设计的测试方法,其特征在于,所述方法应用于测试平台,所述方法包括:
在测试用例的执行文件对应的前一测试向量片段完成被测芯片的测试后,停止芯片时钟,接收测试用例的执行文件对应的当前测试向量片段,所述当前测试向量片段由所述执行文件对应的第一测试向量及辅助信息拆分得到,或者由所述执行文件对应的第二测试向量的片段解析得到,所述第一测试向量是所述测试平台可识别的向量,所述第二测试向量是原始的测试向量,所述辅助信息包括控制所述测试平台对被测芯片进行测试的指导信息;
启动芯片时钟并基于所述当前测试向量片段测试所述被测芯片,包括:基于辅助信息,控制所述当前测试向量片段对应的激励信号输出到所述被测芯片的代码;获取所述被测芯片的代码输出的实际向量值;以及根据所述当前测试向量片段包括的预期向量值与所述实际向量值的比对结果确定所述当前测试向量片段对应的测试结果;
根据所述当前测试向量片段对应的测试结果与所述第一测试向量及辅助信息拆分得到的其他测试向量片段的测试结果,或与所述第二测试向量的其他片段解析得到的其他测试向量片段的测试结果,得到最终的测试结果,所述最终的测试结果通过用例执行日志展示;
其中所述当前测试向量片段的大小小于或等于所述测试平台的存储空间大小。
2.根据权利要求1所述的方法,其特征在于,所述基于辅助信息,控制所述当前测试向量片段对应的激励信号输出到所述被测芯片的代码,包括:
在所述辅助信息中的测试周期驱动参数指示的时间点,输出所述激励信号到所述被测芯片的代码的输入接口,所述被测芯片的代码的输出接口输出所述实际向量值。
3.根据权利要求2所述的方法,其特征在于,所述根据所述当前测试向量片段包括的预期向量值与所述实际向量值的比对结果确定所述当前测试向量片段对应的测试结果,包括:
所述测试向量片段包括的预期向量值指示比对时,比对所述测试向量片段中预期向量值与所述测试周期比对参数指示的时间点处的芯片管脚输出的实际向量值是否匹配;
在比对结果是该时间点处的实际向量值和预期向量值不匹配时,记录错误信息,所述错误信息包括该时间点对应的测试周期、该时间点处的实际向量值和预期向量值;
根据所述错误信息确定所述当前测试向量片段对应的测试结果。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述测试平台适配于软件仿真平台和硬件仿真平台。
5.一种测试平台的生成方法,其特征在于,所述方法包括:
接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,所述第二测试向量是原始的测试向量;
分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息,所述公共信息包括被测芯片的芯片管脚参数、时间参数、测试周期时间定义中的一种或多种;
根据所述公共信息以及拆分信息生成测试平台,所述拆分信息用于确定所述测试平台使用的存储空间大小,所述拆分信息指示的测试向量片段的长度小于或等于所述测试平台使用的存储空间大小,所述测试向量片段在所述测试平台对被测芯片进行测试时使用。
6.根据权利要求5所述的方法,其特征在于,所述拆分信息用于对所述测试平台可识别的向量进行拆分,所述方法还包括:
根据每个第二测试向量对应的测试向量解析数据生成第一测试向量,所述第一测试向量是所述测试平台可识别的向量;
根据所述拆分信息对所述第一测试向量及辅助信息进行拆分,得到多个测试向量片段,其中每个测试向量片段的大小小于或等于所述测试平台的存储空间大小,所述测试向量片段在所述测试平台对被测芯片进行测试时使用。
7.根据权利要求6所述的方法,其特征在于,所述根据所述拆分信息对所述第一测试向量及辅助信息进行拆分,得到多个测试向量片段,包括:
从所述第一测试向量的起始位置开始,每间隔拆分信息指示的测试向量片段的长度得到一个拆分节点,直到第一测试向量的终止位置与前一拆分节点之间的长度小于或等于所述拆分信息指示的测试向量片段的长度;所述拆分信息指示的测试向量片段的长度小于或等于所述测试平台的存储空间大小;
在每个拆分节点处进行拆分,得到多个测试向量片段。
8.根据权利要求7所述的方法,其特征在于,所述拆分信息用于对所述第二测试向量进行拆分,所述方法还包括:
根据所述拆分信息对所述第二测试向量进行拆分,得到多个原始向量片段;
根据多个原始向量片段对应的测试向量解析数据分别生成多个测试向量片段,其中每个测试向量片段的大小小于或等于所述测试平台的存储空间大小,所述多个测试向量片段是所述测试平台可识别的片段,所述多个测试向量片段在所述测试平台对被测芯片进行测试时使用。
9.根据权利要求7或8所述的方法,其特征在于,所述方法还包括:
根据每个第二测试向量对应的测试向量解析数据生成至少一个执行文件,其中每个执行文件对应于至少一个测试用例,所述测试用例执行时,该测试用例的执行文件对应的多个测试向量片段依次输入到所述测试平台。
10.根据权利要求5所述的方法,其特征在于,所述测试向量解析数据还用于得到辅助信息,所述辅助信息包括控制所述测试平台对所述被测芯片进行测试的指导信息以及各第二测试向量的差异信息,所述辅助信息在所述测试平台对被测芯片进行测试时使用。
11.根据权利要求6-8中任一项所述的方法,其特征在于,所述测试向量片段包括该测试向量片段下的每个测试周期内,所述被测芯片的单向管脚的预期向量值和激励向量值以及双向管脚的预期/激励向量值。
12.根据权利要求5所述的方法,其特征在于,所述多个第二测试向量包括不同语言编写的测试向量,包括标准测试接口语言STIL、波形生成语言WGL、测试描述语言TDL中的至少一种。
13.根据权利要求5所述的方法,其特征在于,所述测试平台适配于软件仿真平台和硬件仿真平台。
14.一种测试平台,其特征在于,包括:
接收模块,用于在测试用例的执行文件对应的前一测试向量片段完成被测芯片的测试后,停止芯片时钟,接收测试用例的执行文件对应的当前测试向量片段,所述当前测试向量片段由所述执行文件对应的第一测试向量及辅助信息拆分得到,或者由所述执行文件对应的第二测试向量的片段解析得到,所述第一测试向量是所述测试平台可识别的向量,所述第二测试向量是原始的测试向量,所述辅助信息包括控制所述测试平台对被测芯片进行测试的指导信息;
测试模块,用于启动芯片时钟并基于所述当前测试向量片段测试所述被测芯片,包括:基于辅助信息,控制所述当前测试向量片段对应的激励信号输出到所述被测芯片的代码;获取所述被测芯片的代码输出的实际向量值;以及根据所述当前测试向量片段包括的预期向量值与所述实际向量值的比对结果确定所述当前测试向量片段对应的测试结果;
第一分析模块,用于根据所述当前测试向量片段对应的测试结果与所述第一测试向量及辅助信息拆分得到的其他测试向量片段的测试结果,或与所述第二测试向量的其他片段解析得到的其他测试向量片段的测试结果,得到最终的测试结果,所述最终的测试结果通过用例执行日志展示;
其中所述当前测试向量片段的大小小于或等于所述测试平台的存储空间大小。
15.一种测试平台的生成装置,其特征在于,包括:
第二分析模块,用于接收多个第二测试向量并分析得到每个第二测试向量对应的测试向量解析数据,所述第二测试向量是原始的测试向量;
第三分析模块,用于分析所述测试向量解析数据,识别得到所述多个第二测试向量的公共信息,所述公共信息包括被测芯片的芯片管脚参数、时间参数、测试周期时间定义中的一种或多种;
第一生成模块,用于根据所述公共信息以及拆分信息生成测试平台,所述拆分信息用于确定所述测试平台使用的存储空间大小,所述拆分信息指示的测试向量片段的长度小于或等于所述测试平台使用的存储空间大小,所述测试向量片段在所述测试平台对被测芯片进行测试时使用。
16.一种测试平台,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为在执行所述存储器存储的指令时,实现权利要求1至4中任意一项所述的方法。
17.一种测试平台的生成装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为在执行所述存储器存储的指令时,实现权利要求5至13中任意一项所述的方法。
18.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至4中任意一项所述的方法,或者实现权利要求5至13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211701313.0A CN115684896B (zh) | 2022-12-29 | 2022-12-29 | 芯片可测性设计测试方法、测试平台及其生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211701313.0A CN115684896B (zh) | 2022-12-29 | 2022-12-29 | 芯片可测性设计测试方法、测试平台及其生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115684896A CN115684896A (zh) | 2023-02-03 |
CN115684896B true CN115684896B (zh) | 2023-07-25 |
Family
ID=85055003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211701313.0A Active CN115684896B (zh) | 2022-12-29 | 2022-12-29 | 芯片可测性设计测试方法、测试平台及其生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115684896B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI833602B (zh) * | 2023-03-10 | 2024-02-21 | 華邦電子股份有限公司 | 測試裝置以及測試方法 |
CN117233581B (zh) * | 2023-11-10 | 2024-03-01 | 紫光同芯微电子有限公司 | 一种芯片测试方法、装置、设备及介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6304837B1 (en) * | 1998-02-21 | 2001-10-16 | Adaptec, Inc. | Automated test vector generation and verification |
CN102655101A (zh) * | 2012-03-30 | 2012-09-05 | 北京大学 | 3d芯片tsv互连的内建自测试及内建自修复技术 |
CN103679008B (zh) * | 2012-09-03 | 2018-08-17 | 江苏东大集成电路***工程技术有限公司 | 一种高效的安全芯片功耗攻击测试方法 |
CN106019125A (zh) * | 2016-07-18 | 2016-10-12 | 南通大学 | 32通道低频rfid晶圆测试***及方法 |
CN115308562A (zh) * | 2021-05-08 | 2022-11-08 | 腾讯科技(深圳)有限公司 | 芯片测试方法及相关设备 |
CN114325336A (zh) * | 2021-12-31 | 2022-04-12 | 眸芯科技(上海)有限公司 | 基于fpga的面向wgl的芯片测试***及应用 |
-
2022
- 2022-12-29 CN CN202211701313.0A patent/CN115684896B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115684896A (zh) | 2023-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115684896B (zh) | 芯片可测性设计测试方法、测试平台及其生成方法及装置 | |
CN115656791B (zh) | 芯片可测性设计的测试方法及测试平台 | |
US7478028B2 (en) | Method for automatically searching for functional defects in a description of a circuit | |
US8924937B1 (en) | Method and system for generating verification information and tests for software | |
CN115656792B (zh) | 芯片可测性设计的测试方法及测试平台 | |
CN102169846B (zh) | 一种在集成电路晶圆测试过程中实现多维变量密码并行写入的方法 | |
CN107783873B (zh) | 一种烧录器自动化测试平台的实现方法 | |
CN115202947A (zh) | 基于调试接口的芯片测试向量生成方法 | |
CN110632499B (zh) | 基于测试对象的测试向量生成方法及存储介质 | |
US7228262B2 (en) | Semiconductor integrated circuit verification system | |
CN111950212A (zh) | 高效的多模式验证平台及方法 | |
CN116224042B (zh) | 生成测试待测器件的测试向量的方法、***、设备和介质 | |
US7047174B2 (en) | Method for producing test patterns for testing an integrated circuit | |
CN111965530A (zh) | 一种基于jtag的fpga芯片自动化测试方法 | |
CN116580757B (zh) | 一种虚拟ate测试方法及*** | |
CN114325333A (zh) | 一种高效率规范化的soc***级验证方法及装置 | |
CN116362198A (zh) | 一种提高芯片验证效率的方法、***、存储介质及计算设备 | |
CN115684894B (zh) | 芯片可测性设计的测试方法及测试平台 | |
CN117787155A (zh) | 一种芯片可测性代码动态仿真测试***及测试方法 | |
JP2006500695A (ja) | ソフトウェアの双方向プロービング | |
CN115684895B (zh) | 芯片可测性设计测试方法、测试平台及其生成方法及装置 | |
Damljanovic et al. | Post-silicon validation of ieee 1687 reconfigurable scan networks | |
CN106546910A (zh) | 基于位流回读的fpga测试平台 | |
CN115422865B (zh) | 仿真方法及装置、计算设备、计算机可读存储介质 | |
CN116629195A (zh) | 一种集成电路仿真验证平台 |
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 |