CN106291312A - 一种用于加速芯片仿真和调试的方法和芯片测试系统 - Google Patents
一种用于加速芯片仿真和调试的方法和芯片测试系统 Download PDFInfo
- Publication number
- CN106291312A CN106291312A CN201510325694.0A CN201510325694A CN106291312A CN 106291312 A CN106291312 A CN 106291312A CN 201510325694 A CN201510325694 A CN 201510325694A CN 106291312 A CN106291312 A CN 106291312A
- Authority
- CN
- China
- Prior art keywords
- subsystem
- chip
- excitation
- measured
- test system
- 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.)
- Pending
Links
Landscapes
- Tests Of Electronic Circuits (AREA)
Abstract
本发明涉及一种用于在芯片测试系统中加速芯片仿真和调试的方法,所述芯片测试系统包括待测子系统和激励子系统,其中,所述激励子系统充当所述待测子系统的激励源并且为所述待测子系统提供激励信号,其中,所述激励子系统能够被虚拟激励发生器替换,所述虚拟激励发生器被配置成产生虚拟激励信号,所述虚拟激励信号与所述激励子系统的激励信号相同。此外,本发明还涉及一种配置成用于实现在芯片测试系统中加速芯片仿真和调试的方法的芯片测试系统。
Description
技术领域
本发明大体上涉及集成电路技术。具体地说,本发明涉及芯片设计和验证,尤其是涉及一种用于加速芯片仿真和调试的方法以及配置成用于实现所述方法的芯片测试系统。
背景技术
在当前的硅芯片设计中,由于设计复杂程度增加导致设计成本增加。随着芯片的门数增加,设计复杂程度和成本也显著增加。同时,由于要求增多以及激烈的市场竞争,芯片产品更新换代非常快,芯片厂商不得不缩短芯片设计周期,以便尽快将芯片产品市场化并且赢得竞争优势。
随着芯片设计的设计复杂程度增加,编译和模拟时间变得越来越长,并且大多数编译和模拟被用来进行缺陷追踪以及验证现存缺陷是否已被修好。典型地,对于当今的图形处理单元(GPU),编译时间需要一个小时,但是模拟时间更长,例如六个小时或者更长。当芯片级模拟中存在错误的时候,知识产权(IP)设计者通常没有独立的测试平台来产生任意定义的激励,因此设计者不得不使用整个芯片级测试平台来重现失败。这非常耗时,并且其他IP设计者不能积极地参与并行调试,因为复制所述失败的另一副本来进行调试是非常耗时的,更不用说用于调试的另一个设计树所需要的巨大磁盘需求了。当设计者找到潜在漏洞时,他必须修改、重新编译和重新模拟所述芯片设计,在他通常发现所做的修补工作无效之前,这可能就需要好几个小时,并且不得不将修补-调试步骤重新来一遍。
本领域中存在几种公知解决方案来加速编译和模拟。一种公知的解决方案是分区编译(例如预先编译的IP,也被称为PIP),其意味着分割整个测试平台(即测试系统)并且仅仅重新编译经修改的分区以减少重新编译时间。这种解决方案既没有减少模拟时间也不能使加速设计周期的调试活动并行化。
另一种解决方案是保存/复原(saving/restoring),其意味着保存模拟快照并且在下一轮模拟中复原状态。但是,这种技术仅仅适用于System C实现方式,而不能用于更广泛的寄存器传输级(RTL)实现方式,并且当芯片设计变化的时候,所保存的快照可能不可靠并因此并不适用于取回。
另一种公知解决方案是仿真模型替换,其意味着利用算法或者功能模型来替换未处于调试中的模块。但是,周期准确C模型几乎不可用,所以不能总应用这种解决方案。
发明内容
如上面所提到的那样,增加的芯片集成度和复杂性不仅增加了设计成本,而且导致芯片设计周期延长。在芯片测试和验证中,芯片设计者花费大量时间编译和模拟复杂的测试系统。对复杂的测试系统的编译和模拟是耗费时间的并且浪费了设计者的宝贵时间,并因此使得芯片设计变得效率低下并且令人沮丧。如果用于编译和模拟的时间能够被节省下来或者芯片测试系统中的芯片仿真和调试能够被加速的话,那么芯片设计周期会显著缩短。
为了缩短芯片设计周期,本发明的各个方面提供了一种用于在芯片测试系统中加速芯片仿真和调试的方法和一种配置成用于实现根据本发明的方法的芯片测试系统。
根据本发明的一个方面,提供了一种用于在芯片测试系统中加速芯片仿真和调试的方法,所述芯片测试系统包括待测子系统和激励子系统,其中,所述激励子系统充当所述待测子系统的激励源并且为所述待测子系统提供激励信号,所述方法包括:从第一时间点开始,在芯片测试系统中运行芯片测试程序;从所述第一时间点开始,记录所述激励子系统的激励信号;如果所述待测子系统的响应信号在第二时间点发生错误,则停止运行所述芯片测试程序,并且利用所记录的激励信号生成虚拟激励发生器,其中,所述虚拟激励发生器能够产生虚拟激励信号,所述虚拟激励信号与所述激励子系统从所述第一时间点至所述第二时间点所提供的激励信号相同;修改至少一个芯片设计参数;以及利用所述虚拟激励发生器替换所述激励子系统,并且通过使用所述虚拟激励发生器作为所述待测子系统的激励源在所述芯片测试系统中重新运行所述芯片测试程序。
根据本发明的用于在芯片测试系统中加速芯片仿真和调试的方法能够实现一种高效的并且节省时间的设计测试和验证,从而缩短了芯片设计周期。
在一个方面,所述方法进一步包括:检测所述待测子系统的响应信号是否发生错误,如果所述待测子系统的响应信号未发生错误,则继续运行所述芯片测试程序直至所述芯片测试程序运行结束。
根据本发明的另一个方面,提供了一种芯片测试系统,所述芯片测试系统包括:待测子系统和激励子系统,其中,所述激励子系统充当所述待测子系统的激励源并且为所述待测子系统提供激励信号;用于从第一时间点开始记录所述激励子系统的激励信号的记录模块,芯片测试程序从所述第一时间点开始在所述芯片测试系统中运行;用于检测所述待测子系统的响应信号是否发生错误的检测模块;配置成如果所述待测子系统的响应信号在第二时间点发生错误则停止运行所述芯片测试程序的操作模块;以及用于在所述待测子系统的响应信号在第二时间点发生错误时利用所记录的激励信号生成虚拟激励发生器的生成模块,其中,所述虚拟激励发生器被配置成产生虚拟激励信号,所述虚拟激励信号与所述激励子系统从所述第一时间点至所述第二时间点所提供的激励信号相同;其中,所述激励子系统能够被所述虚拟激励发生器替换,以便通过使用所述虚拟激励发生器作为所述待测子系统的激励源在所述芯片测试系统中从所述第一时间点开始重新运行所述芯片测试程序。利用所述虚拟激励发生器,显著减少了重新编译和重新模拟的时间消耗并且设计者能够在短时间内通过从第一时间点开始在芯片测试系统中重新运行芯片测试程序来检查经修改的待测子系统,从而确保芯片设计的现有缺陷已被移除。
在一个方面,基于所记录的激励信号自动产生所述虚拟激励发生器。
根据本发明的另一个方面,提供了一种配置成用于实现根据本发明所述的用于在芯片测试系统中加速芯片仿真和调试的方法的芯片测试系统。
如上面所描述的那样,为了加速针对大型设计的编译、模拟和并行化调试,本发明在一个失败的时间点之后利用虚拟激励发生器替换测试平台或者测试系统中除了有待调试的模块之外的所有模块,所述虚拟激励发生器在有待调试的模块的接口输入端上精确地产生激励,所述激励与第一轮使用实际的芯片级测试平台所转存的激励信号相同。因为在所述测试平台中仅仅存在有待调试的模块和激励发生器(类似于程序语言接口装载所保存的激励),编译和模拟时间得以极度简化,并且调试折返时间得以最小化。因为设计者总是关心在失败时间点之前反馈给待调试模块的激励以及来自于待调试模块的响应,尽管激励器在来自有待调试模块的响应变化时不能改变激励,但是使用所述激励来转存所述有待调试的模块中的所有细节对设计者来说还是非常有帮助的。通常,在系统失败中定位根本原因是很困难的。利用根据本发明的虚拟激励发生器的技术,几个IP设计者能够利用他们特定的简化的测试平台并行地进行调试,并且利用这种分治(divide-and-conquer)方式能够更快地找到根本原因。
本发明专注于加速仿真和调试。在第一轮仿真中,可以定义一系列有待调试的模块并且转存这些有待调试模块的接口上所有的波形。如果仿真失败,在本发明中创建针对每个有待调试模块的小的测试平台,并且每个小的测试平台由两部分组成,即有待调试的模块和虚拟激励发生器,所述虚拟激励发生器精确地产生转存在先前运行中的相同的接口信号。原始测试平台因此被分割成几个小的简化的测试平台,因此芯片设计者能够并行地调试有待调试的模块,编译时间和模拟时间得以显著减少。这种技术能够通过简化和并行化所述芯片调试而显著地加速芯片调试,这对于大型设计例如GPU设计来说特别有用。本发明的其他方面和实施方式将在下文中加以描述。
附图说明
下面参考附图通过举例的方式(但并不限于此)阐述本发明,其中:
图1示出根据本发明的一个方面的简化的芯片测试系统,其中激励子系统充当待测子系统的激励源。
图2示出根据本发明的一个方面的激励子系统的激励信号和待测子系统的响应信号的示意图。
图3示出根据本发明的一个方面的简化的芯片测试系统,其中虚拟激励发生器充当待测子系统的激励源。
图4示出根据本发明的一个方面的用于在芯片测试系统中实现芯片仿真和调试的方法的流程图。
图5示出根据本发明的一个方面的用于在芯片测试系统中加速芯片仿真和调试的方法的流程图。
具体实施方式
现在参考附图中所示的一些实施方式来详细描述本发明的几个方面。在下面的说明书中,许多具体细节都是用来提供对具体实施方式的完全理解。但是,对本领域技术人员来说显而易见的是,所述实施方式能够以不带有一些或全部具体细节的方式实施。在其他情况下,公知的步骤和/或结构并未进行详细阐述,以免不必要地造成具体实施方式难于理解。本领域技术人员能理解的是,本次讨论仅仅是对示例性实施方式的描述,其用意并不在于限制本发明在示例性结构中具体实施的较宽范围。
图1示例性地示出根据本发明的一个方面的简化的芯片测试系统。在图1中示例性地示出芯片测试系统100,其中,所述芯片测试系统100至少包括待测子系统(SUT)110和激励子系统(ES)120。所述芯片测试系统的其他公知部件在这里并未加以显示和描述,以免不必要地造成本发明的具体实施方式难于理解。如图1中所示,所述待测子系统(SUT)110和所述激励子系统(ES)120具有各自的接口111、121。所述待测子系统(SUT)110和所述激励子系统(ES)120通过至少一个连接装置130、140连接。
在图1中所示的根据本发明的一种简化的实施方式中,所述待测子系统(SUT)110和所述激励子系统(ES)120通过第一连接装置130和第二连接装置140连接,所述第一连接装置130和所述第二连接装置140构成所述待测子系统(SUT)110与所述激励子系统(ES)120之间的通讯和电气连接。所述激励子系统(ES)120充当激励源并且通过第一连接装置130给所述待测子系统(SUT)110提供激励信号。响应于所述激励信号,所述待测子系统(SUT)110通过第二连接装置140以响应信号向所述激励子系统(ES)120作出响应。
图1仅仅示出一种极其简化的芯片测试系统。一般情况下,实际使用的芯片测试系统是大型的、错综复杂的,其中,所述待测子系统(SUT)可以是整个芯片测试系统的一小部分并且包括至少一个电路元件或者电路,在一种实施方式中,整个芯片测试系统除了所述待测子系统(SUT)的其他部分都可以被看作是所述待测子系统(SUT)的激励源。
图2示出根据本发明的一个方面的激励子系统的激励信号和待测子系统的响应信号的示意图。激励子系统的激励信号(即接口信号)充当待测子系统的输入信号。作为回应,待测子系统的响应信号被看作是所述激励子系统的反馈信号。如图2中示例性所示,数字信号b1、b2由激励子系统120(参见图1)从第一时间点T1开始产生并且通过第一连接装置130作为输入信号提供给待测子系统110,其中,第一数字信号b1不同于第二数字信号b2。第一数字信号b1和第二数字信号b2分别充当待测子系统110的激励信号。在一种简单的实施方式中,在第一数字信号b1和第二数字信号b2的激励下,待测子系统110向激励子系统120响应出数字信号d1、d2,其中,第三数字信号d1对应于第一数字信号b1,而第四数字信号d2对应于第二数字信号b2。在一种实施方式中,如图2所示,第三数字信号d1符合设计者的预期并且表明所述待测子系统110已经通过了基于第一数学信号b1的测试和验证,但是,第四数字信号d2在第二时间点T2处发生了错误,其表明至少一个设计缺陷存在于所述待测子系统110中并且设计者需要修改待测子系统110的设计。
在根据本发明的一种实施方式中,当芯片测试程序开始在芯片测试系统中运行以进行芯片测试和验证的时候,从第一时间点T1开始记录并转存所述激励子系统120的激励信号(S1)。如果待测子系统110已经通过了所述芯片测试程序的设计测试和验证的话,那么所述待测子系统110将在另一个测试程序下进行测试和验证,直至所述待测子系统110通过所有的所要求的测试程序,最终,它将被转交给设计工艺的下一阶段。如果待测子系统110的响应信号在第二时间点T2发生错误(参见图2),那么所述芯片测试程序停止运行并且相应地利用所记录的激励信号(S1)产生虚拟激励发生器(VSG),其中,所述虚拟激励发生器(VSG)能够产生虚拟激励信号(S2),其与所述激励子系统120从第一时间点(T1)至第二时间点(T2)所提供的激励信号(S1)相同。根据本发明的一个方面,所述虚拟激励发生器(VSG)能够基于所记录的激励信号(S1)自动产生。
万一芯片设计存在缺陷(其由响应信号中的错误来表明),需要在分析设计测试和验证中所发生的失败的原因之后对现有芯片设计进行修改。例如,设计者可能需要进一步修改至少一个芯片设计参数或者相关的电路结构,例如芯片设计中的一个电路元件、一个电路或者连接关系。在修改所述芯片设计之后,可以在芯片测试系统中对经修改的待测子系统再次进行测试和验证。根据本发明的一个方面,为了实现一种有效的并且节约时间的芯片测试和验证以及允许并行地调试多个待测子系统,可以利用相应的虚拟激励发生器来替换各自的激励子系统,从而用于各自的待测子系统的相应激励源(即所述相应的虚拟激励发生器)不需要重新编译和重新模拟,其中,所述相应的虚拟激励发生器可以提供相应的虚拟激励信号,所述相应的虚拟激励信号以一种极其简化、有效并且节约时间的方式与各自的激励子系统的相应激励信号一样。利用所述相应的虚拟激励发生器,显著减少了重新编译和重新模拟的时间消耗,并且设计者能够在短时间内通过从第一时间点(T1)开始在芯片测试系统中重新运行芯片测试程序来检查经修改的待测子系统,从而确保所发现的芯片设计缺陷被移除。
图3示例性地示出根据本发明的一个方面的简化的芯片测试系统,其中虚拟激励发生器充当经修改的待测子系统的激励源。与图1相比,图3中的芯片测试系统与图1中的芯片测试系统之间的区别在于,图1中的待测子系统110被修改成图3中的经修改的待测子系统(MSUT)110’,并且利用图3中的虚拟激励发生器(VSG)320替换图1中的激励子系统120。
如图3所示,所述芯片测试系统300至少包括经修改的待测子系统(MSUT)110’和虚拟激励发生器(VSG)320。所述芯片测试系统的其他公知部件在这里并未加以显示和描述,以免不必要地造成本发明的具体实施方式难于理解。在图3中,所述经修改的待测子系统(MSUT)110’和所述虚拟激励发生器(VSG)320具有各自的接口111、121。所述经修改的待测子系统(MSUT)110’和所述虚拟激励发生器(VSG)320通过至少一个连接装置130、140连接。
在图3中所示的根据本发明的一种简化的实施方式中,所述经修改的待测子系统(MSUT)110’和所述虚拟激励发生器(VSG)320通过第一连接装置130和第二连接装置140连接,所述第一连接装置130和所述第二连接装置140构成所述经修改的待测子系统(MSUT)110’与所述虚拟激励发生器(VSG)320之间的通讯和电气连接。所述虚拟激励发生器(VSG)320充当激励源并且通过第一连接装置130给经修改的待测子系统(MSUT)110’提供激励信号。响应于所述激励信号,所述经修改的待测子系统(MSUT)110’通过第二连接装置140向所述虚拟激励发生器(VSG)320回复响应信号。
如图1和图2所示,根据本发明的一个方面,芯片测试程序从第一时间点(T1)开始在芯片测试系统中运行,并且在所述芯片测试程序运行期间在第二时间点(T2)发生错误。鉴于该错误,可以提供图3中所示的经修改的待测子系统(MSUT)110’,并且利用图1中所示的激励子系统的从第一时间点(T1)至第二时间点(T2)所记录的激励信号自动地产生图3中所示的虚拟激励发生器(VSG)320。相应地,所述虚拟激励发生器(VSG)320能够产生虚拟激励信号(S2),其与所述激励子系统从第一时间点(T1)至第二时间点(T2)所提供的激励信号(S1)相同。
通过运用图3中所示的芯片测试系统300,所述芯片测试系统300中的芯片测试程序可以从第一时间点(T1)开始重新运行,并且检查所述经修改的待测子系统110’以确保芯片设计的现有缺陷已被移除。与图1中的芯片测试系统100可能需要很多时间(例如至少一个小时)来编译和模拟所述激励子系统120以便为待测子系统(SUT)110提供激励信号相比,图3中的芯片测试系统300只需要少量时间来编译和模拟激励源,因为所述虚拟激励发生器(VSG)320可以直接为所述经修改的待测子系统(MSUT)110’提供激励信号,所述激励信号与激励子系统的激励信号(S1)相同。因此,在图3中实施的设计测试和验证是有效并且节约时间的,并且它允许并行调试多个待测子系统。
利用这种虚拟激励发生器(VSG)可以针对大型设计使得芯片设计的编译和调试得以加速和并行化。在一种根据本发明的实施方式中,多于一个IP设计者可以利用他们特定的简化的测试系统并行地进行调试并且以这种分治方式找到芯片设计中现有缺陷的根本原因。
图4示出根据本发明的一个方面的用于在芯片测试系统中实现芯片仿真和调试的方法的流程图。如图4所示,芯片测试系统中的芯片仿真和调试在多个步骤中实现。首先,在步骤401中,芯片测试程序在芯片测试系统中运行。由于设计复杂性增加,设计者经常花费数个小时在芯片设计的编译和模拟上。在一个方面,编译时间可能是一个小时,而模拟时间可能是六个小时或者更多。在芯片测试程序运行期间,激励子系统(ES)充当激励源并且为相应的待测子系统(SUT)提供激励信号,并且所述相应的待测子系统(SUT)向所述激励子系统(ES)响应以响应信号。然后,在步骤402中,需要检测待测子系统的响应信号是否发生错误,如果所述待测子系统的响应信号中未发生错误,那么芯片测试程序继续运行直至芯片测试程序在步骤405中运行结束。如果所述待测子系统的响应信号发生错误,那么芯片测试程序停止运行,如步骤403所示。所述错误表明至少一个设计缺陷存在于所述待测子系统(SUT)中,需要修改所述待测子系统(SUT),以满足芯片设计的要求并且符合设计者的期望。在一个方面,如步骤404中所示,可以修改至少一个芯片设计参数,以避免现有设计缺陷。在此修改之后,需要在芯片测试系统中再次测试和验证所述芯片设计,从而能够检查所述待测子系统(SUT)中的设计缺陷是否已被移除。因此,返回步骤401并且从头开始再次重新运行所述芯片测试程序,以确保芯片设计的存在缺陷已被移除。在下一个步骤中,类似于步骤402,进一步检测所述待测子系统的响应信号是否发生错误。此后,以上面所描述的类似方式和顺序在芯片测试系统中实施芯片仿真和调试,直到芯片测试程序成功运行结束。
通常,需要好几次修改来移除一个缺陷。就这一点而言,需要重复实施芯片修改、芯片测试和验证。例如,一个芯片设计参数会被修改不止一次,或者不止一个芯片设计参数会被修改,在这之后,需要进一步重复地重新编译和重新模拟所述芯片设计,以确保芯片设计的现有缺陷已被移除。在每次修改之后,需要编译和模拟整个测试系统,以确保芯片设计的现有缺陷已被移除。而且,每次编译和模拟或者每次重新编译和重新模拟都需要处理大量数据,并且这些数据处理是非常耗时的,必然导致芯片设计周期效率低下。
图5示出根据本发明的一个方面的用于在芯片测试系统中加速芯片仿真和调试的方法的流程图。所述用于加速芯片仿真和调试的方法能够在修改相应的待测子系统(SUT)之后显著地节省用于重新编译和重新模拟芯片设计的时间,并因此大大提高芯片设计的效率。
如图5所示,所述用于在芯片测试系统中加速芯片仿真和调试的方法以多个步骤来实施。首先,在步骤501中,芯片测试程序从第一时间点(T1)开始在芯片测试系统中运行。所述芯片测试系统包括待测子系统(SUT)和激励子系统(ES),其中,所述激励子系统充当待测子系统的激励源并且给待测子系统提供激励信号。在步骤502中,从第一时间点(T1)开始记录所述激励子系统的激励信号(S1)。在芯片测试程序运行期间,所述待测子系统(SUT)向所述激励子系统(ES)响应以响应信号。然后,在步骤503中,检测所述待测子系统的响应信号是否发生错误,如果所述待测子系统的响应信号未发生错误的话,那么所述芯片测试程序继续运行直至所述芯片测试程序在步骤511中运行结束;如果所述待测子系统的响应信号在第二时间点(T2)发生错误的话,那么所述芯片测试程序停止运行,并且利用所记录的激励信号(S1)产生虚拟激励发生器(VSG),其中,所述虚拟激励发生器(VSG)能够产生虚拟激励信号(S2),其与激励子系统从第一时间点(T1)至第二时间点(T2)所提供的激励信号(S1)相同,如步骤504中所示。所述错误表明所述待测子系统(SUT)中存在至少一个设计缺陷,需要对所述待测子系统(SUT)进行修改,从而满足芯片设计的要求并且符合设计者的期望。
在根据上面所描述的各个方面的一个方面中,如步骤505中所示,修改至少一个芯片设计参数,以避免现有设计缺陷。在此修改之后,需要在芯片测试系统中再次测试和验证芯片设计,从而能够检查所述待测子系统(SUT)中的设计缺陷是否已被移除。为了加速芯片仿真和调试,在步骤506中利用虚拟激励发生器(VSG)替换所述激励子系统。所述虚拟激励发生器不需要重新编译就能够直接用于模拟以提供虚拟激励信号,其与所述激励子系统从第一时间点(T1)至第二时间点(T2)所提供的激励信号完全一样。由此可见,激励信号在这里以一种极其简化、有效并且节约时间的方式被提供。利用所述虚拟激励发生器,用于重新编译和重新模拟的时间消耗被显著降低,并且设计者能够在很短的时间内通过从第一时间(T1)开始在芯片测试系统中重新运行芯片测试程序来检查经修改的待测子系统(如步骤507中所示),从而确保芯片设计的现存缺陷已被移除。接下来,在步骤508中,进一步检测所述待测子系统的响应信号是否发生错误,如果所述待测子系统的响应信号未发生错误,则继续运行所述芯片测试程序直至所述芯片测试程序在步骤511中运行结束;如果所述待测子系统的响应信号发生错误,则停止运行所述芯片测试程序,如步骤509中所示。所述错误表明至少一个设计缺陷存在于所述待测子系统(SUT)中,需要进一步对所述待测子系统(SUT)进行修改,从而满足芯片设计的要求并且符合设计者的期望。在一个方面,失败可能来自先前的设计缺陷并且相应的修改并没有移除这个设计缺陷,以致于设计者不得不再次修改芯片设计。在一个方面,如步骤509所示,类似地修改至少一个芯片设计参数,以避免现存设计缺陷。在当前的修改之后,需要在芯片测试系统中再次测试和验证所述芯片设计,从而设计者能够检查所述待测子系统(SUT)中的设计缺陷是否最终被移除。因此,返回步骤507并且从第一时间点(T1)开始重新运行所述芯片测试程序,以确保芯片设计的现有缺陷已被移除。在下一个步骤中,类似于步骤508,进一步检测所述待测子系统的响应信号是否发生错误。此后,以上面所描述的类似方式和顺序在芯片测试系统中实施芯片仿真和调试,直到芯片测试程序成功运行结束。
如上面所提到的那样,通常,需要好几次修改来移除单个缺陷,并且需要重复地实施芯片修改、芯片测试和验证。例如,可能需要不止一次地修改一个芯片设计参数,或者修改不止一个芯片设计参数,在这之后,需要进一步重复地重新运行所述芯片测试程序,以确保芯片设计的现有缺陷已被移除。同时,根据图5中所示的用于在芯片测试系统中加速芯片仿真和调试的方法,在一次修改之后,当确定芯片设计的现存缺陷是否已被移除的时候,不需要编译和模拟整个测试系统。只需要在第一次在芯片测试系统中实施芯片仿真和调试的时候编译和模拟整个系统,同时记录激励子系统的激励信号(S1)。在发现错误之后,可以利用虚拟激励发生器(VSG)来提供虚拟激励信号(S2),所述虚拟激励信号(S2)与所述激励子系统的激励信号(S1)相同,因此,用于重新编译和重新模拟激励子系统的时间被节省下来了。当现存缺陷没有通过一次修改被移除而要求不止一次地重新运行所述芯片测试程序的时候,使用所述虚拟激励发生器(VSG)来提供激励子系统的相同的激励信号(S1)显著减少了用于重新编译和重新模拟的时间消耗。因此,芯片测试系统中的芯片仿真和调试得以明显加速,并且相应地通过图5中所示的方法能够实现高效的芯片设计周期。同时,在芯片测试系统中使用虚拟激励发生器能够因此缩短芯片研发周期。
根据本发明的一个方面的用于在芯片测试系统中加速芯片仿真和调试的方法能够显著降低编译时间和模拟时间,同时,所述方法允许并行地测试和调试多个待测子系统,可以用相应的虚拟激励发生器来替换各自的激励子系统,从而用于各自的待测子系统的相应激励源(即所述相应的虚拟激励发生器)不需要重新编译和重新模拟,其中,所述相应的虚拟激励发生器可以提供相应的虚拟激励信号,其以一种极其简化、有效并且节约时间的方式与各自的激励子系统的相应激励信号相同。
根据上面所描述的各个方面的一个方面,复杂的激励子系统能够被简单的虚拟激励发生器替换。用于重新编译和重新模拟带有虚拟激励发生器的新的测试系统的时间远远小于重新编译和重新模拟带有复杂激励子系统的测试系统的时间,因此,带有虚拟激励发生器的新的测试系统具有改善的且更快的重新编译速度和模拟速度。
在上面所描述的各个方面的一个方面中,根据本发明的一个方面的虚拟激励发生器可以是程序语言接口(PLI)模块,其并不具有相应被替换的激励子系统的所有功能,而是仅仅产生与所述激励子系统的激励信号相同的虚拟激励信号。在一个方面中,所述虚拟激励发生器可以通过程序语言接口(PLI)或者C语言来实现。所述虚拟激励发生器也可以通过直接程序接口(DPI)或者硬件描述语言(HDL)例如由Verilog HDL、VHDL、SystemC、Systemverilog等直接描述的激励源来实现。
如图1和图3中所示,本发明的一个方面提供芯片测试系统100、300,其包括待测子系统(SUT)110和激励子系统(ES)120,其中,所述激励子系统120充当所述待测子系统110的激励源并且为所述待测子系统110提供激励信号。
在一个方面,所述芯片测试系统100、300可以进一步包括用于记录所述激励子系统的激励信号(S1)的记录模块(未示出),其中,所述记录模块与所述激励子系统120连接并且从第一时间点(T1)开始记录所述激励子系统的激励信号(S1),芯片测试程序在所述芯片测试系统中从所述第一时间点(T1)开始运行。
在上面所描述的各个方面的一个方面中,所述芯片测试系统100、300可以进一步包括用于检测所述待测子系统110的响应信号是否发生错误的检测模块(未示出),其中,所述检测模块与所述待测子系统110连接。
在上面所描述的各个方面的一个方面中,所述芯片测试系统100、300可以进一步包括配置成如果所述待测子系统的响应信号在第二时间点(T2)发生错误则停止运行所述芯片测试程序的操作模块(未示出)。
在上面所描述的各个方面的一个方面中,所述芯片测试系统100、300可以进一步包括用于生成虚拟激励发生器(VSG)的生成模块(未示出),其中,所述生成模块与所述记录模块连接,并且在所述待测子系统110的响应信号在第二时间点(T2)发生错误时,所述生成模块利用所记录的激励信号(S1)生成虚拟激励发生器(VSG)。所述虚拟激励发生器(VSG)能够被配置成产生虚拟激励信号(S2),所述虚拟激励信号(S2)与所述激励子系统从所述第一时间点(T1)至所述第二时间点(T2)所提供的激励信号(S1)相同。
在上面所描述的各个方面的一个方面中,能够利用所述虚拟激励发生器(VSG)320替换所述激励子系统120,以便通过使用所述虚拟激励发生器作为所述待测子系统的激励源在所述芯片测试系统中从所述第一时间点(T1)开始重新运行所述芯片测试程序。
在上面所描述的各个方面的一个方面中,基于所记录的激励信号(S1)自动产生所述虚拟激励发生器(VSG)。
在上面所描述的各个方面的一个方面中,所述虚拟激励发生器(VSG)320具有与所述激励子系统120相同的接口121。
根据本发明的一个方面,提供了一种配置成用于实现根据本发明的上述方法的芯片测试系统。
对本领域技术人员来说,显而易见的是,可以针对这里所描述的实施方式实现大量的改进方案和变形方案,而它们并未离开要求保护的主题的范围。因此,本说明书的用意在于,涵盖这里所描述的不同实施方式的改进方案和变形方案,只要所述改进方案和变形方案处于附加的权利要求和它们的等效方案的范围之内。
Claims (13)
1.一种用于在芯片测试系统中加速芯片仿真和调试的方法,所述芯片测试系统包括待测子系统和激励子系统,其中,所述激励子系统充当所述待测子系统的激励源并且为所述待测子系统提供激励信号,所述方法包括:
-从第一时间点(T1)开始,在芯片测试系统中运行芯片测试程序;
-从所述第一时间点(T1)开始,记录所述激励子系统的激励信号(S1);
-如果所述待测子系统的响应信号在第二时间点(T2)发生错误,则停止运行所述芯片测试程序,并且利用所记录的激励信号(S1)生成虚拟激励发生器,其中,所述虚拟激励发生器被配置成产生虚拟激励信号(S2),所述虚拟激励信号(S2)与所述激励子系统从所述第一时间点(T1)至所述第二时间点(T2)所提供的激励信号(S1)相同;
-修改至少一个芯片设计参数;以及
-利用所述虚拟激励发生器替换所述激励子系统,并且通过使用所述虚拟激励发生器作为所述待测子系统的激励源在所述芯片测试系统中从所述第一时间点(T1)开始重新运行所述芯片测试程序。
2.根据权利要求1所述的方法,其中,所述方法进一步包括:检测所述待测子系统的响应信号是否发生错误,如果所述待测子系统的响应信号未发生错误,则继续运行所述芯片测试程序直至所述芯片测试程序运行结束。
3.根据权利要求2所述的方法,其中,所述方法进一步包括:在从所述第一时间点(T1)开始重新运行所述芯片测试程序之后,检测所述待测子系统的响应信号是否发生错误,如果所述待测子系统的响应信号发生错误,则停止运行所述芯片测试程序,修改至少一个芯片设计参数,并且返回到从所述第一时间点(T1)开始重新运行所述芯片测试程序。
4.根据权利要求1至3之一所述的方法,其中,基于所记录的激励信号(S1)自动产生所述虚拟激励发生器。
5.根据权利要求1至3之一所述的方法,其中,所述虚拟激励发生器具有与所述激励子系统相同的接口。
6.根据权利要求1至3之一所述的方法,其中,所述虚拟激励发生器通过编程语言接口、C语言、直接编程接口或者硬件描述语言来实现。
7.一种芯片测试系统,其包括:
-待测子系统和激励子系统,其中,所述激励子系统充当所述待测子系统的激励源并且为所述待测子系统提供激励信号;
-用于从第一时间点(T1)开始记录所述激励子系统的激励信号(S1)的记录模块,芯片测试程序从所述第一时间点(T1)开始在所述芯片测试系统中运行;
-用于检测所述待测子系统的响应信号是否发生错误的检测模块;
-配置成如果所述待测子系统的响应信号在第二时间点(T2)发生错误则停止运行所述芯片测试程序的操作模块;以及
-用于在所述待测子系统的响应信号在第二时间点(T2)发生错误时利用所记录的激励信号(S1)生成虚拟激励发生器的生成模块,其中,所述虚拟激励发生器被配置成产生虚拟激励信号(S2),所述虚拟激励信号(S2)与所述激励子系统从所述第一时间点(T1)至所述第二时间点(T2)所提供的激励信号(S1)相同;
其中,所述激励子系统能够被所述虚拟激励发生器替换,以便通过使用所述虚拟激励发生器作为所述待测子系统的激励源在所述芯片测试系统中从所述第一时间点(T1)开始重新运行所述芯片测试程序。
8.根据权利要求7所述的芯片测试系统,其中,所述操作模块配置成:如果所述待测子系统的响应信号未发生错误,则允许所述芯片测试程序继续运行直至所述芯片测试程序运行结束。
9.根据权利要求8所述的芯片测试系统,其中,所述检测模块进一步配置成:在所述芯片测试程序从所述第一时间点(T1)开始重新运行期间,检测所述待测子系统的响应信号是否发生错误,如果所述检测模块检测到在重新运行期间所述待测子系统的响应信号发生错误,则所述操作模块被进一步配置成:停止运行所述芯片测试程序,修改至少一个芯片设计参数,并且启动所述芯片测试程序从所述第一时间点(T1)开始重新运行。
10.根据权利要求7至9之一所述的芯片测试系统,其中,基于所记录的激励信号(S1)自动产生所述虚拟激励发生器。
11.根据权利要求7至9之一所述的芯片测试系统,其中,所述虚拟激励发生器具有与所述激励子系统相同的接口。
12.根据权利要求7至9之一所述的芯片测试系统,其中,所述虚拟激励发生器通过编程语言接口、C语言、直接编程接口或者硬件描述语言来实现。
13.一种配置成用于实现根据权利要求1至6之一所述的方法的芯片测试系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510325694.0A CN106291312A (zh) | 2015-06-12 | 2015-06-12 | 一种用于加速芯片仿真和调试的方法和芯片测试系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510325694.0A CN106291312A (zh) | 2015-06-12 | 2015-06-12 | 一种用于加速芯片仿真和调试的方法和芯片测试系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106291312A true CN106291312A (zh) | 2017-01-04 |
Family
ID=57650116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510325694.0A Pending CN106291312A (zh) | 2015-06-12 | 2015-06-12 | 一种用于加速芯片仿真和调试的方法和芯片测试系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106291312A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108959678A (zh) * | 2017-03-24 | 2018-12-07 | 波音公司 | 用于测试卫星线束和信号处理单元的设计的方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SU1285411A1 (ru) * | 1983-07-28 | 1987-01-23 | Рижский Краснознаменный Институт Инженеров Гражданской Авиации Им.Ленинского Комсомола | Устройство дл контрол генераторов |
CN101329385A (zh) * | 2008-08-01 | 2008-12-24 | 炬力集成电路设计有限公司 | 一种片上系统的调测系统、调测方法以及片上系统 |
CN102096634A (zh) * | 2010-12-31 | 2011-06-15 | 中国航空工业集团公司第六三一研究所 | 基于事件级的机载分布式节点调试方法 |
CN103154753A (zh) * | 2010-10-05 | 2013-06-12 | 晶像股份有限公司 | 高速输入输出装置的测试 |
CN103713993A (zh) * | 2013-05-30 | 2014-04-09 | 深圳市汇春科技有限公司 | 芯片验证平台及其实现芯片测试的方法 |
CN103823747A (zh) * | 2012-11-16 | 2014-05-28 | 上海华虹集成电路有限责任公司 | 自动回归测试的方法 |
-
2015
- 2015-06-12 CN CN201510325694.0A patent/CN106291312A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SU1285411A1 (ru) * | 1983-07-28 | 1987-01-23 | Рижский Краснознаменный Институт Инженеров Гражданской Авиации Им.Ленинского Комсомола | Устройство дл контрол генераторов |
CN101329385A (zh) * | 2008-08-01 | 2008-12-24 | 炬力集成电路设计有限公司 | 一种片上系统的调测系统、调测方法以及片上系统 |
CN103154753A (zh) * | 2010-10-05 | 2013-06-12 | 晶像股份有限公司 | 高速输入输出装置的测试 |
CN102096634A (zh) * | 2010-12-31 | 2011-06-15 | 中国航空工业集团公司第六三一研究所 | 基于事件级的机载分布式节点调试方法 |
CN103823747A (zh) * | 2012-11-16 | 2014-05-28 | 上海华虹集成电路有限责任公司 | 自动回归测试的方法 |
CN103713993A (zh) * | 2013-05-30 | 2014-04-09 | 深圳市汇春科技有限公司 | 芯片验证平台及其实现芯片测试的方法 |
Non-Patent Citations (1)
Title |
---|
柳颖 等: "免测试码编程的引俄装备数字电路诊断系统", 《舰船电子工程》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108959678A (zh) * | 2017-03-24 | 2018-12-07 | 波音公司 | 用于测试卫星线束和信号处理单元的设计的方法和装置 |
CN108959678B (zh) * | 2017-03-24 | 2023-09-22 | 波音公司 | 用于测试卫星线束和信号处理单元的设计的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Civera et al. | An FPGA-based approach for speeding-up fault injection campaigns on safety-critical circuits | |
Ziade et al. | A survey on fault injection techniques | |
KR100491461B1 (ko) | SoC 설계 검증을 위한 방법 및 장치 | |
US20100229061A1 (en) | Cell-Aware Fault Model Creation And Pattern Generation | |
US8473273B2 (en) | Fault support in an emulation environment | |
US20080127009A1 (en) | Method, system and computer program for automated hardware design debugging | |
US6886145B2 (en) | Reducing verification time for integrated circuit design including scan circuits | |
US8560988B2 (en) | Apparatus and method thereof for hybrid timing exception verification of an integrated circuit design | |
US8402405B1 (en) | System and method for correcting gate-level simulation accuracy when unknowns exist | |
US20090248390A1 (en) | Trace debugging in a hardware emulation environment | |
US7496816B2 (en) | Isolating the location of defects in scan chains | |
US11579994B2 (en) | Fast and scalable methodology for analog defect detectability analysis | |
US8701060B2 (en) | Digital circuit verification monitor | |
US6721914B2 (en) | Diagnosis of combinational logic circuit failures | |
CN114757135A (zh) | 一种基于需求驱动验证的可编程逻辑器件验证方法及系统 | |
US11295051B2 (en) | System and method for interactively controlling the course of a functional simulation | |
CN106291312A (zh) | 一种用于加速芯片仿真和调试的方法和芯片测试系统 | |
US20190294738A1 (en) | System and method for generating a functional simulations progress report | |
Vanhauwaert et al. | A flexible SoPC-based fault injection environment | |
Bertacco | Post-silicon debugging for multi-core designs | |
US6829572B2 (en) | Method and system for efficiently overriding array net values in a logic simulator machine | |
Zhong-hai et al. | The improvement for transaction level verification functional coverage | |
Bhaskar et al. | A universal random test generator for functional verification of microprocessors and system-on-chip | |
Civera et al. | FPGA-based fault injection techniques for fast evaluation of fault tolerance in VLSI circuits | |
US20240232485A1 (en) | Test point insertion in analog circuit design testing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170104 |