CN116029236A - 可综合的参数化自测试模型结构及测试方法 - Google Patents
可综合的参数化自测试模型结构及测试方法 Download PDFInfo
- Publication number
- CN116029236A CN116029236A CN202310309344.XA CN202310309344A CN116029236A CN 116029236 A CN116029236 A CN 116029236A CN 202310309344 A CN202310309344 A CN 202310309344A CN 116029236 A CN116029236 A CN 116029236A
- Authority
- CN
- China
- Prior art keywords
- test
- module
- tested
- excitation
- reference model
- 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
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Tests Of Electronic Circuits (AREA)
Abstract
本发明提供一种可综合的参数化自测试模型结构,包括采用可综合的HDL实现的多个程序顶层模块,所述多个程序顶层模块包含:待测设计模块、激励驱动模块和可综合参考模型模块;所述待测设计模块的数据输入端口和控制信号端口和所述激励驱动模块的输出端口分别连接;所述激励驱动模块的输出端口还分别与所述可综合参考模型模块的输入端口连接;所述待测设计模块是实例化配置完成的IP核;所述参可综合参考模型模块与所述待测设计模块功能相同。通过将通用验证方法学验证平台的部分组件,以可综合硬件描述语言的形式集成到了板级或机台量产测试向量中,实现了以最少的测试向量覆盖全面的测试点,对测试向量集合增减的灵活性好,结果分析的效率高。
Description
技术领域
本发明属于集成电路测试技术领域,具体涉及一种可综合的参数化自测试模型结构及测试方法。
背景技术
集成电路的应用越来越深入,以Field Programmable Gate Array(可编程逻辑阵列,FPGA)器件为例,FPGA器件中包含了逻辑资源和存储资源。普通的移位寄存器通过硬件描述语言描述实现,占用逻辑资源。基于RAM(Random Access Memory,随机存取存储器)的移位寄存器通过配置并实例化参数化的IP核(知识产权核或知识产权模块)实现,使用FPGA器件的存储资源,在需要使用大量移位寄存器的复杂应用场景时可用其替代逻辑资源寄存器,以节省逻辑资源,并降低EDA软件布线难度。
将软IP(用硬件描述语言描述的电路模块。软IP可以认为是一种电路的“源代码”。)下载至FPGA器件进行板级验证和测试时,为了保证验证的完备性,需要尽可能全面地覆盖IP核所支持的配置选项,并将每种配置结果作为待测设计以施加合理的激励集合,该集合一般包含定向激励(极值、多样化的特殊值等)和随机激励。复杂的激励组合增加了结果分析的难度,采用人工方法确认结果,会耗费大量时间,但不依赖人工又缺乏有效的技术手段。企业在实际测试工作中仅仅在一组测试向量里面覆盖很少的点,这样测试就会需要很多测试向量或者存在测试不充分的问题。
在IP测试工作中,企业往往会把IP放入UVM(通用验证方法学,UniversalVerification Methodology)仿真环境里面去仿真,以便于验证得更充分。但是实际板级测试或原型验证开发出的测试向量是比较简单直接的,仿真验证也不能做到全面的验证,且很难做到用较少的测试向量,覆盖最多的测试点,不能满足全面测试的实际需求。
举例来说,采用传统板级测试方案,八个测试点需要八个测试向量来实现,由于测试条件的限制,也可能无法实现或考虑到这些因素并设计这八个测试点(例如随机值,随机值的概念在UVM仿真环境的激励中是很重要的部分,但在板级测试中,则覆盖不到随机值,因为就算给了随机值,测试人员也不方便判断结果正误)。传统板级测试方案由于缺少可综合参考模型的概念,所以对于复杂的激励,结果不容易比较。此外,板级测试的一般情况中,必须用硬件描述语言如verilog语言描述功能,通过软件执行综合,布局布线后,生成码流文件,有了码流文件才能将该文件下载到FPGA里。但参考模型的概念是在UVM仿真验证环境里的,使用的是软件语言,是不进行综合的。
因此,亟需研究如何将验证的理念融入到芯片板级测试中,搭建一种可综合的参数化自测试模型,实现自动化分析输出结果,提高软IP不同配置的测试工作的灵活性和复用性。
发明内容
本发明是为解决上述现有技术的全部或部分问题,本发明一方面提供了一种可综合的参数化自测试模型结构,将仿真验证的设计与实际板级测试结合,提供自动化测试解决方案;本发明另一方面还提供了相应的板级测试方法。本发明利用FPGA的资源结构特性,利用占用RAM资源的IP核例化文件作为待测设计,结合占用逻辑资源的可综合参考模型,实现了仿真验证环境集成到实际硬件的定向测试中。
本发明提供的一种可综合的参数化自测试模型结构,包括采用可综合的HDL(Hardware Description Language,硬件描述语言)实现的多个程序顶层模块;所述多个程序顶层模块包含:待测设计模块、激励驱动模块和可综合参考模型模块;所述待测设计模块的数据输入端口和控制信号端口和所述激励驱动模块的输出端口分别连接;所述激励驱动模块的输出端口还分别与所述可综合参考模型模块的输入端口连接;所述激励驱动模块用于产生激励,并将所述激励同步发送给所述待测设计模块和所述可综合参考模型模块;所述待测设计模块是实例化配置完成的IP核,用于接收所述激励进行仿真输出实际值;所述可综合参考模型模块与所述待测设计模块功能相同,且其中每个测试点的实际行为都符合所述待测设计模块的IP设计文档的描述,用于接收所述激励进行仿真输出预期值;所述预期值用于和所述实际值比对,以分析得到测试结果。
基于RAM的移位寄存器软IP配置生成的RTL文件,由于实际板级应用场景无法对其进行实时配置,每一个配置参数组合生成的结果文件将作为一组定向测试向量的待测设计(DUT),本发明通过参数化可综合自测试模型中实例化待测设计模块将待测设计嵌入,能在自测试模型内部对所述待测设计模块灌入激励,捕捉输出信号,以自动化分析结果,不受限于常规的板级测试中外部激励的做法,不依赖于直接通过管脚灌入激励。本发明采用了内部程序,通过所述激励驱动模块赋予激励,参数化的自测试模型也为新增或减少或改变激励提供了方便且能保证激励的覆盖面更加全面。通过设置完全针对所需测试的IP所搭建的且经过充分验证的所述可综合参考模型模块,其输出作为测试结果的预期值可以用于和所述待测设计模块输出的实际值进行后续比对分析,企业可以灵活地应用于自身特定的软IP,且可灵活复用于该软IP不同配置的测试。
一般的情况中,所述多个程序顶层模块还包含结果比对模块;所述结果比对模块的输入端口分别与所述待测设计模块、所述可综合参考模型模块的输出端口连接,用于对所述实际值和所述预期值实时采样并比对,输出比对结果和自动测试状态。
所述结果比对模块是把待测设计模块的结果和可综合参考模型模块输出的结果进行比对,设置了可综合参考模型的所述可综合参考模型模块,进一步通过设置所述结果比对模块,能够自动化对比所述预期值和所述实际值,分析得到并输出测试结果,实现了测试的自动化,进一步提高了确认测试结果的自动化程度,节约了人工,能够提升测试效率且完全避免了人工比对结果可能产生的可靠性低,遗漏测试点、比对不及时,结果不够精确的问题。
所述结果比对模块包含同步有限状态机;所述同步有限状态机用于在激励有效阶段分析所述预期值和所述实际值的一致性。
所述激励驱动模块包含同步有限状态机;所述同步有限状态机用于控制激励状态跳转。在所述激励驱动模块中引入了可扩展的状态机,使得一组测试向量测到的内容更全面,以最少的用例,覆盖最多的测试点。
所述可综合参考模型模块的端口信号包含控制信号和数据输入输出总线信号;所述可综合参考模型模块的输入端口数量与所述待测设计模块支持的输入端口数量的最大值一致。所述待测设计模块为IP核,该IP核在不同的配置会产生不同的端口数量,而作为可综合参考模型模块,一般以模版的形式存在,通过全局的参数配置,使用逻辑资源就可以实现与待测设计模块一样的功能,所述可综合参考模型模块的输入端口数量与所述待测设计模块所能支持的最多的输入端口数量,能更全面的覆盖各种具体情况,且能够根据不同的测试点,可以灵活地配置端口(配到了哪些端口,就用哪些端口),应用的灵活性程度更高。
所述多个程序顶层模块还包含时钟发生模块;所述时钟发生模块的输出端口分别与所述激励驱动模块、所述待测设计模块连接;所述时钟发生模块包含实例化的锁相环,用于接收晶振时钟对其进行倍频、分频后输出时钟。通过设置包含实例化锁相环的所述时钟发生模块,自测试模型能够对系统的运行频率进行处理来倍频和/或分频,企业可以在自测试模型中使用自身的锁相环的IP核,增加了针对频率方面进行测试时的方便性。
所述多个程序顶层模块还包含参数配置模块;所述参数配置模块用于将所述待测设计模块所配置的参数和自测试环境的运行所需的变量通过宏定义的方式全局共享。在板级测试中通过设置所述参数配置模块,能进一步提高增加用例的效率,通过套用模型模版,能以最小的改动量(根据测试点调整参数即可),完成一个新用例的开发。
本发明另一方面提供的一种测试方法,基于本发明的可综合的参数化自测试模型结构,包括:实例化配置待测IP核得到待测设计模块;配置与所述待测设计模块功能相同的可综合参考模型模块;定义激励状态,产生激励;将激励同时发送给所述待测设计模块和所述可综合参考模型模块;实时获取相应的实际值和预期值,基于所述实际值和所述预期值自动化分析比对;将比对结果和测试状态信号引出至管脚。
在针对基于RAM的移位寄存器IP核的实际板级测试场景中结合了通用验证方法学(Universal Verification Methodology,UVM)中仿真验证的设计,利用参数化的模型和模版提高测试向量的开发效率,利用可综合参考模型和结果自动化比较的方式提高结果确认效率,以最少的测试向量,覆盖最多的测试点,能在精简测试向量的前提下实现充分测试。
所述产生激励包括采用同步有限状态机控制所述激励状态的跳转;定义激励状态包括:定义所述同步有限状态机的状态参数以设置激励集合的数量;定义所述激励集合;其中,所述激励集合包括针对控制信号的激励集合和针对数据端口的激励集合;所述针对控制信号的激励集合包含:控制信号单独作用、多控制信号组合作用;所述针对数据端口的激励集合包含:最大值、最小值、中间值、递增、递减和随机值。通过修改状态参数灵活增加或减少模型中的激励集合。通过修改状态参数灵活增加或减少模型中的激励集合;通过定义所述激励集合所包含的内容,能达到使用最少的测试用例,覆盖最多的测试点的目的。
所述针对数据端口的激励集合还包含特殊值;所述特殊值是指预定义的测试中存在异常风险的值,包括临界值和/或出现过异常的记录值。
定义激励状态的方法包括宏定义和解析算法;所述解析算法用硬件描述语言拼接的方法处理状态定义的数字部分。
在使用所述可综合参考模型模块之前,验证所述可综合参考模型模块的功能,确认所述可综合参考模型模块所列出的测试点的实际行为都符合所述待测IP核的设计文档的描述;将所述可综合参考模型模块所列出的测试点全部或部分直接用于待测设计的测试。
所述测试方法还包括:设置参数配置模块,将所述待测IP核所配置的参数和自测试环境的运行所需的变量通过宏定义的方式全局共享。将仿真环境中的做法应用到板级测试中,增加用例的效率更高。
针对不同定向测试的待测设计向量,配置所述参数配置模块的参数,使自测试模型的端口和所述待测设计模块的端口保持一致。端口一致更方便顶层实例化时模块端口间的连接,条理更清晰。
所述测试方法还包括:接收晶振时钟并将所述晶振时钟进行倍频、分频后为自测试模型提供工作时钟。进一步提高了在针对频率方面进行测试时的便捷性。
所述自动化分析结果的方法包括:对所述待测设计模块的输出和所述可综合参考模型模块的输出实时采样相应获取所述实际值和所述预期值;在激励有效阶段分析所述预期值和所述实际值的一致性,若出现不一致,则报错并中断自测试流程。
所述报错并中断自测试流程的方法包括:在激励有效的任意阶段所述预期值和所述实际值不一致,采用状态机对报错信号进行逻辑方向,并在下一个时钟周期对结束信号进行逻辑反向,结束流程并表明测试失败。
所述报错并中断自测试流程的方法还包括:若所述激励集合已经全部发送,并完成对所述待测设计模块完全动作的等待后采样得到的所述预期值和所述实际值一致,则采用状态机对结束信号进行逻辑反向,表明测试成功。
与现有技术相比,本发明的主要有益效果:
1、本发明的可综合的参数化自测试模型结构,通过将通用验证方法学(UniversalVerification Methodology ,UVM)验证平台的部分组件,以可综合硬件描述语言的形式集成到了板级或机台量产测试向量中,将整个可综合的测试环境做成参数化的代码模型,复用到每个测试向量中,通过这样的方式,测试向量的产出效率高;将验证平台以可综合的形式集成到参数化的实际硬件测试向量中,实现了将UVM(通用验证方法学)仿真环境的结构,结合到了实际板级测试中,提高了对测试向量集合增减的灵活性,并在保证激励完备性和扩展性的同时以自动化的方式提升了结果分析的效率。
2、本发明的测试方法,具有相应优势,将仿真验证与硬件测试工程师开发出的测试向量有效结合,用最少的测试向量,覆盖最多的测试点,利用可综合参考模型和结果自动化比较的方式提高结果确认效率,在不增加测试向量开发工作的前提下能够充分测试,且效率更高。
附图说明
图1为本发明实施例的自测试模型结构示意图。
图2为本发明实施例的测试方法示意图。
图3(a)至图3(j)为本发明实施例的测试结果波形示意图。
实施方式
下面将对本发明具体实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中示例的自测试模型结构如图1所示,是一种可综合的参数化自测试模型结构,包括采用可综合的HDL(Hardware Description Language,硬件描述语言)实现的多个程序顶层模块。图1中包含了各关键模块,主要端口信号,以及模块之间的主要连接关系。示例的情况中,多个程序顶层模块有:参数配置模块parameter(图1中未示出)、时钟发生模块Clock Generator、激励驱动模块Driver、可综合参考模型模块ReferenceModel、结果比对模块Scoreboard,顶层模块实例化配置完成的IP核,即示例的待测设计模块DUT。将待测设计模块数据输入端口和控制信号端口与激励驱动模块Driver相应的输出端口相连。图1示例的激励驱动模块Driver的输出端口有数据输出端口、控制信号1端口、控制信号2端口,对应与待测设计模块DUT的数据输入端口、控制信号1端口和控制信号2端口通信连接。可综合参考模型模块Reference Model中的算法实现了与待测设计模块DUT相同的功能,激励驱动模块Driver在给待测设计模块DUT灌入激励的同时,将相同的激励发送给可综合参考模型模块Reference Model。在本实施例中还设置有结果比对模块Scoreboard以获取待测设计模块DUT和可综合参考模型模块Reference Model的输出数据并进行实时比对,将比对结果和自动测试状态输出。有些实施例中多个程序顶层模块中也可以没有结果比对模块Scoreboard,并不限定。待测设计模块DUT接收激励进行仿真输出实际值,可综合参考模型模块Reference Model接收激励进行仿真输出预期值;预期值用于和实际值比对,以分析得到测试结果。
在常规实际的板级测试中,采用外部激励,即直接通过管脚灌入激励。而在本实施例中采用了内部程序,通过激励驱动模块赋予激励,参数化的设计也为新增或减少或改变激励提供了方便,而且能保证激励的覆盖面是比较全面的。
示例的情况中可综合参考模型模块Reference Model具体通过包含引用参数配置模块中针对待测设计所配置的宏定义保持和待测设计模块相同的端口数量和功能。在保证可综合参考模型模块Reference Model的充分验证的条件下,其输出可以作为结果的预期值传给结果比对模块Scoreboard,用于后续自动化比对分析。示例的可综合参考模型模块Reference Model是完全针对所测试的IP搭建的,企业可以根据自身特有的IP相应搭建,灵活性非常高。如果板级测试模型没有设置可综合参考模型模块Reference Model,对于这样复杂的激励,很难有效且快捷地分析测试结果,也没有实施自动化比对分析的可行性。反之亦然,由于一般板级测试方法中不会有可综合参考模型模块Reference Model,因此也就不会设置示例情况中的结果比对模块Scoreboard。可综合参考模型模块Reference Model的作用主要是结果确认时方便确认,只需观察结果信号一个信号和结束信号即可,大幅提高了确认结果的效率,没有可综合参考模型模块Reference Model就没有自动比对,缺乏可综合参考模型模块也导致了传统的测试方法确认结果时效率难以进一步提高。
在本实施例中,示例的激励驱动模块Driver的激励状态跳转由米勒型同步有限状态机(Mearly Finite State Machine)控制。有些实施例也可以采用摩尔型同步有限状态机,并不限定。示例的状态机使用独热码(One Hot Code)表示各激励状态,也可以采用格雷码等其他编码方式并不限定。
在一些实施例中,可综合参考模型模块的端口信号包含控制信号(图1示例中的控制信号1和控制信号2)和数据输入、输出总线信号。在一些较好的示例中可综合参考模型模块的输入端口数量与待测设计模块支持的输入端口数量的最大值一致。
在一些实施例中,结果比对模块Scoreboard包含同步有限状态机。同步有限状态机用于在激励有效阶段分析预期值和实际值的一致性。示例的情况中采用米勒型同步有限状态机(Mearly Finite State Machine)。
在本实施例中,设置了时钟发生模块Clock Generator,示例的时钟发生模块Clock Generator采用锁相环(示例的锁相环是实例化的PLL锁相环,但不限定,也可以是DLL锁相环)实现,为其他模块提供时钟。图1示例的情况中时钟发生模块Clock Generator接收晶振时钟对其进行倍频、分频后输出时钟。有些实施例中也可以没有时钟发生模块Clock Generator,也可以用其他模块或者算法替代,并不限定。采用锁相环的时钟发生模块Clock Generator主要功能是生成时钟信号,有些企业自有成熟的锁相环的IP核,就可以直接把锁相环加入程序顶层模块,更方便针对频率相关的测试点增加用例。
本实施例中的程序顶层模块还包含了参数配置模块parameter,该模块将IP核所配置的参数和自测试环境的运行所需的变量通过宏定义的方式全局共享。示例的情况中可以根据测试点调整参数通过参数配置模块parameter全局共享,可以更加便捷地完成一个新用例的开发。有些实施例中的自测试模型也可以不包含参数配置模块parameter,并不限定。
在一个示例的情况中,针对不同定向测试的待测设计向量,通过在参数配置模块parameter中的参数配置,使自测试模型的端口和待测设计模块的端口保持一致。端口可以一致也可以不一致,并不限定。一致的时候更方便顶层实例化时模块端口间的连接,程序代码的条理可以更清晰。
本实施例中还提供的测试方法,基于本实施例提供的自测试模型结构进行,如图2示例了主要流程,包括:实例化配置待测IP核得到待测设计模块;使用逻辑资源配置与待测设计模块功能相同的可综合参考模型模块;定义激励状态,产生激励;将激励同时发送给待测设计模块和可综合参考模型模块;实时获取相应的实际值和预期值,基于实际值和预期值自动化分析结果;将比对结果和测试状态信号引出至管脚。在实际板级测试中,本实施例在参数化可综合自测试模型中实例化待测设计将其嵌入,在自测试模型内部对其灌入激励,捕捉输出信号,并自动化分析比对,能够将比对结果和测试状态信号引出至管脚,进而更好地利用EDA(电子设计自动化Electronic Design Automation)软件等自动设计软件生成对应器件的码流,烧入FPGA中进行实际板级测试。
示例的情况中,产生激励包括采用同步有限状态机控制激励状态的跳转;定义激励状态包括:定义同步有限状态机的状态参数以设置激励集合的数量;定义激励集合;其中,激励集合包括针对控制信号的激励集合和针对数据端口的激励集合;针对控制信号的激励集合包含:控制信号单独作用、多控制信号组合作用;针对数据端口的激励集合包含:最大值、最小值、中间值、递增、递减和随机值。其中,对于数据端口的随机值由线性反馈移位寄存器(Linear Feedback Shift Register)算法实现。激励集合所包含的示例的这些参数有利于充分测试,结合了仿真验证过程中(虚拟的环境,而非实际)所考虑的因素,同时避免了实际板级测试的时候考虑不够充分的缺陷,也克服了实际板级测试中考虑多个因素的困难(具体的一个困难主要体现在需要每一个项目专门做一个用例,这样一来每一种IP可配置出来的模式下,如果要测得充分,就必须开发很多用例,非常耗时。而且这仅仅是开发用例阶段,如果需要测试这么多用例,那就更耗时)。
有些实施例中,针对数据端口的激励集合还包含特殊值;特殊值是指预定义的测试中存在异常风险的值,包括临界值和/或出现过异常的记录值。示例的特殊值指的是比较容易出问题的值,比如一些临界值,或是在先前的测试中曾经出过问题的值,有效利用了测试工作中的经验数据,进一步避免出现过问题的测试点重复出问题。
有些实施例中使用宏定义和解析算法定义激励状态,可修改状态参数灵活增加或减少模型中的激励集合。定义激励状态的方法包括宏定义和解析算法;示例的解析算法用verilog语言(verilog是术语“验证”和“逻辑”的组合,verilog语言是硬件描述语言的一种,它的代码是描述一个电路,让EDA软件理解实现,是一种人与EDA软件交流的语言。)拼接的方法处理状态定义的数字部分。
示例的情况中整个激励驱动模块的激励状态机采用了三段式结构,分为三部分:一是状态声明部分,二是状态的跳转条件声明部分,三是各状态输出逻辑描述部分。本实施例中解析算法中针对“状态声明部分”进行了处理,使用了硬件描述语言中的拼接的语法,结合参数`NUM_OF_STATE,减少了新增状态时候的改动量。
状态机的状态定义中状态声明部分常规的写法:
IDLE = 00000000000001;
DRIVE_MAX = 00000000000010;
DRIVE_MIN = 00000000000100;
DRIVE_INCREMENT = 00000000001000;
DRIVE_SPECIAL_69 = 00000000010000;
DRIVE_SPECIAL_5A = 00000000100000;
DRIVE_SPECIAL_3C = 00000001000000;
DRIVE_RANDOM = 00000010000000;
DRIVE_CTRL_RDREQ = 00000100000000;
DRIVE_CTRL_WRREQ = 00001000000000;
DRIVE_CTRL_ACLR = 00010000000000;
DRIVE_CTRL_COMBO = 00100000000000;
DRIVE_DELAY = 01000000000000;
DRIVE_DONE = 10000000000000;
其中,等号右边的二进制的处理就属于本实施例提到的“独热码”,也就是每个状态的二进制表述只有一个1, 相邻状态的区别是“1”的左移或右移。如果需要任意位置添加或删减新的状态,则需要在等号右边,逐个在正确的位置添加“0”,如果采用上述状态声明部分常规的写法较容易出错。
因此在本实施例中使用了以下的模版形式对其规律进行了包装,就是用verilog语言拼接的方法, 把等号右边的二进制描述成:“(状态总数-状态索引)个零” + 1 + “(状态索引-1)个零”。示例的情况中,在任意处增加或删减新状态时,仅仅需要新添加一行,并且只需对新增行之后的状态逐个修改状态索引即可。
本实施例在使用可综合参考模型模块之前,还验证可综合参考模型模块的功能,确认可综合参考模型模块所列出的测试点的实际行为都符合待测IP核的设计文档的描述;将可综合参考模型模块所列出的测试点全部或部分直接用于待测设计的测试。示例的情况中进行验证的方法主要是从不同的角度,即根据不同的功能点和测试点,使用不同的参数来配置模型,灌入激励,并判断结果的正确性。其中,结果的正确性,通过对比实际板级测试中抓出来的波形与文档描述的行为进行判断。可综合参考模型模块的意义之一也在于对待测试的验证更完善,因为这相当于根据设计文档,做了一遍设计,测试过程中出现结果不一致时,会将问题放大,通过进一步理解设计文档判断是待测设计正确,还是模型正确。这样也保证了不因人工疏忽,遗漏确认所测试的点。
本实施例中,针对参考模型所列出的测试点,可直接用于最终对DUT的测试。
示例的测试方法还包括:设置参数配置模块,将待测IP核所配置的参数和自测试环境的运行所需的变量通过宏定义的方式全局共享。在一些实施例中针对不同定向测试的待测设计向量,配置参数配置模块的参数,使自测试模型的端口和待测设计模块的端口保持一致。有些实施例中端口也可以不一致,并不限定。
示例的测试方法还包括:接收晶振时钟并将晶振时钟进行倍频、分频后为自测试模型提供工作时钟。
示例的自动化分析结果的方法包括:对待测设计模块的输出和可综合参考模型模块的输出实时采样相应获取实际值和预期值;在激励有效阶段分析预期值和实际值的一致性,若出现不一致,则报错并中断自测试流程。
有些具体的实施例中,报错并中断自测试流程的方法包括:在激励有效的任意阶段预期值和实际值不一致,采用状态机对报错信号进行逻辑方向,并在下一个时钟周期对结束信号进行逻辑反向,结束流程并表明测试失败。
有些实施例中,若激励集合已经全部发送,并完成对待测设计模块完全动作的等待后采样得到的预期值和实际值一致,则采用状态机对结束信号进行逻辑反向,表明测试成功。
如图3(a)至图3(j)示例的情况中,如果在激励有效的任意阶段预期值和实际值不一致,状态机会将报错信号拉高,并在下一时钟周期拉高结束信号中断自测试流程,表明测试失败;如果激励驱动模块已经完成了所有激励集合的发送,并完成对待测设计完全动作的等待后预期值仍然和实际值一致,状态机则将结束信号拉高(此时报错信号保持默认值,即为低)表明测试成功。并不限定拉高信号的做法,只需将该逻辑进行反向,即可。可以结合企业具体规定相应设置为拉高或拉低,示例的情况中规定的是错误时拉高。
图3 (a) 展示了本实施例的实际结果波形,当driver_state (激励驱动状态)为2时,重点测试pattern_data(数据端口激励)为最大值的情况,此时,按照该知识产权核的特性,exp_shiftout (期待移位输出) 和actual_shiftout(实际移位输出) 保持上一激励状态的值。由于期待值与实际值一致,error_index (错误指示)信号保持拉低,由于测试状态没有结束,test_done(结束)信号保持拉低。
图3 (b) 展示了本实施例的实际结果波形,当driver_state (激励驱动状态)为4时,重点测试pattern_data(数据端口激励)为中间值的情况,此时,按照该知识产权核的特性,exp_shiftout (期待移位输出) 和actual_shiftout(实际移位输出) 保持上一激励状态的值。由于期待值与实际值一致,error_index (错误指示)信号保持拉低,由于测试状态没有结束,test_done(结束)信号保持拉低。
图3 (c) 展示了本实施例的实际结果波形,当driver_state (激励驱动状态)为8时,重点测试pattern_data(数据端口激励)为累加值的情况,此时,按照该知识产权核的特性,exp_shiftout (期待移位输出) 和actual_shiftout(实际移位输出) 保持上一激励状态的值。由于期待值与实际值一致,error_index (错误指示)信号保持拉低,由于测试状态没有结束,test_done(结束)信号保持拉低。
图3 (d) 展示了本实施例的实际结果波形,当driver_state (激励驱动状态)为16时,重点测试pattern_data(数据端口激励)为随机值的情况,此时,按照该知识产权核的特性,exp_shiftout (期待移位输出) 和actual_shiftout(实际移位输出) 保持上一激励状态的值。由于期待值与实际值一致,error_index (错误指示)信号保持拉低,由于测试状态没有结束,test_done(结束)信号保持拉低。
图3 (e) 展示了本实施例的实际结果波形,当driver_state (激励驱动状态)为32时,重点测试控制信号clken(时钟使能)的翻转情况,此时,按照该知识产权核的特性,exp_shiftout (期待移位输出) 和actual_shiftout(实际移位输出) 在该信号拉低时数值保持不变。由于期待值与实际值一致,error_index (错误指示)信号保持拉低,由于测试状态没有结束,test_done(结束)信号保持拉低。
图3 (f) 展示了本实施例的实际结果波形,当driver_state (激励驱动状态)为32时,重点测试控制信号clken(时钟使能)的翻转情况,此时,按照该知识产权核的特性,exp_shiftout (期待移位输出) 和actual_shiftout(实际移位输出) 在该信号从低到高时数值恢复随pattern data改变。由于期待值与实际值一致。error_index (错误指示)信号保持拉低,由于测试状态没有结束,test_done(结束)信号保持拉低。
图3 (g) 展示了本实施例的实际结果波形,当driver_state (激励驱动状态)为64时,重点测试控制信号aclr(异步清零)的翻转情况,此时,按照该知识产权核的特性,exp_shiftout (期待移位输出) 和actual_shiftout(实际移位输出) 在该信号从低到高时数值全部清零。由于期待值与实际值一致,error_index (错误指示)信号保持拉低,由于测试状态没有结束,test_done(结束)信号保持拉低。
图3 (h) 展示了本实施例的实际结果波形,当driver_state (激励驱动状态)为128时,重点测试控制信号aclr(异步清零)和clken(时钟使能)的共同生效情况,此时,按照该知识产权核的特性,exp_shiftout (期待移位输出) 和actual_shiftout(实际移位输出) 在此状态均输出数值零。由于期待值与实际值一致,error_index (错误指示)信号保持拉低,由于测试状态没有结束,test_done(结束)信号保持拉低。
图3 (i)展示了本实施例的实际结果波形,当driver_state (激励驱动状态)为256时,进行数据等待缓冲,此时,按照该知识产权核的特性,exp_shiftout (期待移位输出) 和actual_shiftout(实际移位输出) 的输出应根据上一状态的条件,即输出为数值0。由于期待值与实际值一致,error_index (错误指示)信号保持拉低,由于测试状态没有结束,test_done(结束)信号保持拉低。
图3 (j)展示了本实施例的实际结果波形,当driver_state (激励驱动状态)为512时,结束测试,由于期待值与实际值一致,error_index (错误指示)信号保持拉低,test_done(结束)信号保持拉高表示结束, 测试结果正确。
图3(a)至图3(j)示例的情况中,包含了一个测试用例的测试点描述、参数配置描述和结果分析,以及波形结果和资源统计结果。示例的情况中,测试点有:一.IP核配置为12(位宽)×3(tap数量)×128(tap距离)的运行状况;二.数据端激励:极值、中间值、累加值、随机值;三.控制信号clken的翻转;四.控制信号aclr的翻转;五.clken+aclr组合控制生效;六.资源是否为1个M4K资源(12×3×128=4608,即一个M4K的总memory bit)。
参数及对应的示例值为:数据位宽:12;TAP数量:3;TAP距离:128;翻转控制信号时钟使能clken:是;翻转控制信号异步清零aclr:是。
结果分析的示例过程:一.数据延迟3×128=384个时钟周期(波形结果中pattern_data的第一个值,经过384周期延时后在actual_shiftout中输出);二.clken拉低后生效(波形结果中的紫色部分);三.aclr拉高后生效(波形结果中的橙色部分);四.clken+aclr组合控制生效(Driver_state为128时);五.期待输出与实际输出始终一致(exp_shiftout和actual_shiftout);六.test_done拉高前error_index始终为低;(Driver_state等于512之前);七.Memory资源为1个m4k(资源统计中memory部分);结果:通过。
示例的测试用例测的是将基于RAM的移位寄存器IP核配置成“数据位宽=12,tap数量=3,tap距离=128,有时钟使能信号clken,有异步清零信号aclr”的情况。其中测试点包含了对各种配置下的:数据端输入最大值,最小值,中间值,累加值,随机值,控制信号时钟使能和异步清零的翻转,和两个控制信号共同生效时的各种组合。
图3(a)至图3(j)所示例的波形结果是借助了综合工具,利用了实时消除故障(debug)功能,记录了将板级测试的实际结果。以下是波形中关键信号的描述:
一.Driver_state:激励状态机的状态,此处为了方便观察,使用了十进制;
二.clken: 时钟使能信号,高有效,Driver_state为32和128时翻转;
三.aclr:异步清零信号,高有效,Driver_state为64和128时翻转;
四.pattern_data:数据端口激励信号,状态0驱动最小值,状态2驱动最大值,状态4驱动中间值,状态8驱动每一时钟周期的累加值,状态16之后均驱动每一时钟周期的随机值;
五.exp_shiftout: 可综合参考模型模块所输出的结果;
六.actual_shiftout:实际IP,即待测设计的输出结果;
七.error_index:预期结果和实际结果的实时比对,只要有不一致,就拉高;
八.test_done:测试结束信号,所有激励都发送完成,并延迟一个状态后,拉高。如果在任何一个状态发现error_index拉高了,则表示测试结束,但结果是:不正确。
如下表1所示,实施例中资源统计同样是借助了综合工具,计算出了上述测试用例综合后M4K(一种以4kbits,4k为一块的存储单元)资源。本向量测试目标为存储资源正好为1时的临界资源。
表1. 测试向量资源使用情况
资源分类 | 占用量 | 可用量 | 占用率% |
端口信号 | 4 | 339 | 1.18 |
存储资源 | 1 | 1200 | 0.08 |
锁相环 | 1 | 8 | 12.5 |
逻辑资源 | 503 | 13600 | 3.7 |
基于RAM的移位寄存器IP核使用了存储资源,该用例的参数配置针对临界情况,即,正好占满一个存储资源进行配置12×3×128=4608。
本发明为了便于叙述清楚而采用的一些常用的英文名词或字母只是用于示例性指代而非限定性解释或特定用法,不应以其可能的中文翻译或具体字母来限定本发明的保护范围。
Claims (18)
1.可综合的参数化自测试模型结构,其特征在于:包括采用可综合的硬件描述语言实现的多个程序顶层模块;
所述多个程序顶层模块包含:待测设计模块、激励驱动模块和可综合参考模型模块;
所述待测设计模块的数据输入端口和控制信号端口和所述激励驱动模块的输出端口分别连接;
所述激励驱动模块的输出端口还分别与所述可综合参考模型模块的输入端口连接;
所述激励驱动模块用于产生激励,并将所述激励同步发送给所述待测设计模块和所述可综合参考模型模块;
所述待测设计模块是实例化配置完成的IP核,用于接收所述激励进行仿真输出响应实际值;
所述可综合参考模型模块与所述待测设计模块功能相同,且其中每个测试点的实际行为都符合所述待测设计模块的IP设计文档的描述,用于接收所述激励进行仿真输出预期值;
所述预期值用于和所述实际值比对,以分析得到测试结果。
2.根据权利要求1所述的可综合的参数化自测试模型结构,其特征在于:所述多个程序顶层模块还包含结果比对模块;
所述结果比对模块的输入端口分别与所述待测设计模块、所述可综合参考模型模块的输出端口连接,用于对所述实际值和所述预期值实时采样并比对,输出比对结果和自动测试状态。
3.根据权利要求2所述的可综合的参数化自测试模型结构,其特征在于:所述结果比对模块包含同步有限状态机;所述同步有限状态机用于在激励有效阶段分析所述预期值和所述实际值的一致性。
4.根据权利要求1所述的可综合的参数化自测试模型结构,其特征在于:所述激励驱动模块包含同步有限状态机;所述同步有限状态机用于控制激励状态跳转。
5.根据权利要求1所述的可综合的参数化自测试模型结构,其特征在于:所述可综合参考模型模块的端口信号包含控制信号和数据输入输出总线信号;所述可综合参考模型模块的输入端口数量与所述待测设计模块支持的输入端口数量的最大值一致。
6.根据权利要求1-5任一项所述的可综合的参数化自测试模型结构,其特征在于:所述多个程序顶层模块还包含时钟发生模块;所述时钟发生模块的输出端口分别与所述激励驱动模块、所述待测设计模块连接;所述时钟发生模块包含实例化的锁相环,用于接收晶振时钟对其进行倍频、分频后输出时钟。
7.根据权利要求1-5任一项所述的可综合的参数化自测试模型结构,其特征在于:所述多个程序顶层模块还包含参数配置模块;所述参数配置模块用于将所述待测设计模块所配置的参数和自测试环境的运行所需的变量通过宏定义的方式全局共享。
8.一种测试方法,其特征在于:基于权利要求1至7任一项所述的可综合的参数化自测试模型结构,包括:
实例化配置待测IP核得到待测设计模块;
配置与所述待测设计模块功能相同的可综合参考模型模块;
定义激励状态,产生激励;
将激励同时发送给所述待测设计模块和所述可综合参考模型模块;
实时获取相应的实际值和预期值,基于所述实际值和所述预期值自动化分析比对;将比对结果和测试状态信号引出至管脚。
9.根据权利要求8所述的测试方法,其特征在于:所述产生激励包括采用同步有限状态机控制所述激励状态的跳转;
定义激励状态包括:定义所述同步有限状态机的状态参数以设置激励集合的数量;定义所述激励集合;
其中,所述激励集合包括针对控制信号的激励集合和针对数据端口的激励集合;
所述针对控制信号的激励集合包含:控制信号单独作用、多控制信号组合作用;
所述针对数据端口的激励集合包含:最大值、最小值、中间值、递增、递减和随机值。
10.根据权利要求9所述的测试方法,其特征在于:所述针对数据端口的激励集合还包含特殊值;所述特殊值是指预定义的测试中存在异常风险的值,包括临界值和/或出现过异常的记录值。
11.根据权利要求8所述的测试方法,其特征在于:定义激励状态的方法包括宏定义和解析算法;所述解析算法用硬件描述语言拼接的方法处理状态定义的数字部分。
12.根据权利要求8所述的测试方法,其特征在于:在使用所述可综合参考模型模块之前,验证所述可综合参考模型模块的功能,确认所述可综合参考模型模块所列出的测试点的实际行为都符合所述待测IP核的设计文档的描述;将所述可综合参考模型模块所列出的测试点全部或部分直接用于待测设计的测试。
13.根据权利要求8-12任一项所述的测试方法,其特征在于:所述测试方法还包括:设置参数配置模块,将所述待测IP核所配置的参数和自测试环境的运行所需的变量通过宏定义的方式全局共享。
14.根据权利要求13所述的测试方法,其特征在于:针对不同定向测试的待测设计向量,配置所述参数配置模块的参数,使自测试模型的端口和所述待测设计模块的端口保持一致。
15.根据权利要求8-12任一项所述的测试方法,其特征在于:所述测试方法还包括:接收晶振时钟并将所述晶振时钟进行倍频、分频后为自测试模型提供工作时钟。
16.根据权利要求9或10所述的测试方法,其特征在于:所述自动化分析结果的方法包括:对所述待测设计模块的输出和所述可综合参考模型模块的输出实时采样相应获取所述实际值和所述预期值;在激励有效阶段分析所述预期值和所述实际值的一致性,若出现不一致,则报错并中断自测试流程。
17.根据权利要求16所述的测试方法,其特征在于:所述报错并中断自测试流程的方法包括:在激励有效的任意阶段所述预期值和所述实际值不一致,采用状态机对报错信号进行逻辑方向,并在下一个时钟周期对结束信号进行逻辑反向,结束流程并表明测试失败。
18.根据权利要求17所述的测试方法,其特征在于:所述报错并中断自测试流程的方法还包括:若所述激励集合已经全部发送,并完成对所述待测设计模块完全动作的等待后采样得到的所述预期值和所述实际值一致,则采用状态机对结束信号进行逻辑反向,表明测试成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310309344.XA CN116029236B (zh) | 2023-03-28 | 2023-03-28 | 可综合的参数化自测试模型结构及测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310309344.XA CN116029236B (zh) | 2023-03-28 | 2023-03-28 | 可综合的参数化自测试模型结构及测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116029236A true CN116029236A (zh) | 2023-04-28 |
CN116029236B CN116029236B (zh) | 2023-08-11 |
Family
ID=86077905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310309344.XA Active CN116029236B (zh) | 2023-03-28 | 2023-03-28 | 可综合的参数化自测试模型结构及测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116029236B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116227398A (zh) * | 2023-05-10 | 2023-06-06 | 中科亿海微电子科技(苏州)有限公司 | 一种自动化生成ip核测试激励的方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104486169A (zh) * | 2015-01-07 | 2015-04-01 | 北京华力创通科技股份有限公司 | 可重用自动检测及随机验证系统和方法 |
CN108763981A (zh) * | 2018-05-15 | 2018-11-06 | 佛山市顺德区中山大学研究院 | 一种基于uvm的rfid阅读器验证平台及验证方法 |
CN113220518A (zh) * | 2021-05-19 | 2021-08-06 | 北京奕斯伟计算技术有限公司 | 芯片验证系统、芯片验证方法 |
CN115686655A (zh) * | 2022-11-14 | 2023-02-03 | 沐曦集成电路(上海)有限公司 | 用于gpu ip验证的联合仿真系统 |
-
2023
- 2023-03-28 CN CN202310309344.XA patent/CN116029236B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104486169A (zh) * | 2015-01-07 | 2015-04-01 | 北京华力创通科技股份有限公司 | 可重用自动检测及随机验证系统和方法 |
CN108763981A (zh) * | 2018-05-15 | 2018-11-06 | 佛山市顺德区中山大学研究院 | 一种基于uvm的rfid阅读器验证平台及验证方法 |
CN113220518A (zh) * | 2021-05-19 | 2021-08-06 | 北京奕斯伟计算技术有限公司 | 芯片验证系统、芯片验证方法 |
CN115686655A (zh) * | 2022-11-14 | 2023-02-03 | 沐曦集成电路(上海)有限公司 | 用于gpu ip验证的联合仿真系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116227398A (zh) * | 2023-05-10 | 2023-06-06 | 中科亿海微电子科技(苏州)有限公司 | 一种自动化生成ip核测试激励的方法及系统 |
CN116227398B (zh) * | 2023-05-10 | 2023-08-22 | 中科亿海微电子科技(苏州)有限公司 | 一种自动化生成ip核测试激励的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116029236B (zh) | 2023-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6460148B2 (en) | Enhanced embedded logic analyzer | |
US7418681B2 (en) | Simulation system, simulation method and simulation program for verifying logic behavior of a semiconductor integrated circuit | |
US20090100304A1 (en) | Hardware and Software Co-test Method for FPGA | |
US7185293B1 (en) | Universal hardware device and method and tools for use therewith | |
CN116029236B (zh) | 可综合的参数化自测试模型结构及测试方法 | |
CN102466776A (zh) | 面向复杂可编程逻辑器件的批量测试方法 | |
US9304881B2 (en) | Trace routing network | |
JPH1091472A (ja) | 集積回路内部の信号にアクセスするための方法及び装置 | |
CN101153892A (zh) | 现场可编程门阵列输入输出模块验证方法 | |
US7047174B2 (en) | Method for producing test patterns for testing an integrated circuit | |
CN112067978A (zh) | 一种基于fpga的fpga筛选测试系统及方法 | |
Koczor et al. | Verification approach based on emulation technology | |
US20120005547A1 (en) | Scalable system debugger for prototype debugging | |
KR20030023485A (ko) | 에뮬레이션과 시뮬레이션 정식검증을 혼용한 설계 검증 장치 | |
US6769101B2 (en) | Systems and methods providing scan-based delay test generation | |
CN105203946A (zh) | 一种嵌入式芯核测试壳装置及其设计方法 | |
CN112034331B (zh) | 一种基于fpga的电路模块测试方法 | |
CN110442986B (zh) | 一种基于cpld逻辑代码生成器管理服务器主板的方法 | |
JP2004280426A (ja) | 論理集積回路の内部信号トレース装置 | |
Ferry | FPGA-based universal embedded digital instrument | |
Sachße et al. | Architecture of an adaptive test system built on FPGAs | |
Xia et al. | Dynamic test emulation for EDA-based mixed-signal test development automation | |
US7130787B1 (en) | Functional replicator of a specific integrated circuit and its use as an emulation device | |
EP1236222B1 (en) | Universal hardware device and method and tools for use therewith | |
JPH1173440A (ja) | エミュレーション装置 |
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 |