一种用于低功耗设计的可重用仿真验证方法与流程

文档序号:16249654发布日期:2018-12-11 23:53阅读:232来源:国知局
一种用于低功耗设计的可重用仿真验证方法与流程

本发明属于低功耗仿真验证领域,具体涉及一种用于低功耗设计的可重用仿真验证方法。

背景技术

随着数字集成电路规模的不断扩大,芯片的主频和器件密度都大幅度提高,并且随着工艺技术逐步进入65nm及以下,芯片的漏电流也呈指数级增长,漏电功耗有超过动态功耗的趋势,成为继速度、面积之后第三个制约芯片发展的因素。传统的功能验证并未覆盖芯片电源状态的验证,因此,面对低功耗设计芯片的要求,对芯片的功能仿真验证提出了新的更高的要求。

目前,为了满足功能验证不断增加的需求,验证方法学在过去十年里得到了快速的发展,形成了基于约束的验证、基于断言的形式化验证、基于覆盖率的验证等。同时,以各eda厂商为代表发布了各种验证方法,但是没有一种能有效的完全解决低功耗设计对于功能验证提出的各种新的挑战,并不能有效地覆盖所有的电源状态,不能对于低功耗控制中的各种复杂时序进行有效的检查,同时缺少验证环境的可扩展性、动态配置性、自动化适应性,复用性较差。



技术实现要素:

本发明的目的在于克服上述不足,提供一种用于低功耗设计的可重用仿真验证方法,能够高效快速覆盖所有电源状态、实时监控复杂控制序列,能够极大缩短验证周期,提高验证效率。

为了达到上述目的,本发明包括以下步骤:

步骤一,对芯片端口信号的电源状态信息进行抽象,对验证环境与实际芯片交互的状态约束传输数据进行抽象,并配置测试平台的验证环境;

步骤二,验证环境中的monitor模块对抽象的数据进行实时监控,并将抽象的数据发送至计分板scoreboard;

步骤三,计分板scoreboard统计接收到的抽象数据中电源状态是否已经覆盖,并将抽象的数据发送至coverage模块,之后输出文档记录信息;

步骤四,coverage模块将接受到的抽象数据与阈值进行对比,并将抽象数据通过数据库动态反馈至测试用例,测试用例对抽象数据进行仿真处理,仿真结束前在发送对应的数据包时对coverage模块反馈的抽象数据进行判断,当满足仿真结束要求时,本次仿真即可结束,否则,测试用例继续产生新的数据包并通过sequencer模块发送至driver模块;

步骤五,driver模块将验证环境中的抽象数据包转换为信号级的数据,并发送至待测芯片,进行并完成仿真验证。

步骤一中,抽象的数据将以数据包的形式在验证环境中传递,验证环境中从芯片收集到的电源状态数据转换为抽象的数据包在验证环境中传递。

步骤一中,在测试平台中通过测试用例导入验证参数配置验证环境,测试用例继承于测试基类,测试基类中例化了具体的验证环境。

步骤四中,sequencer模块实时监控driver模块是否将当前数据包接受完毕,如果接受完毕,sequencer模块将会继续发送其他数据包,否则挂起driver模块等待完成当前的驱动任务。

测试平台中通过assertion模块监控芯片的控制时序。

测试平台能够通过factory机制进行组件的动态构建和测试用例的动态构建以及重写覆盖。

芯片端口信号的电源状态信息和验证环境与实际芯片交互的状态能够通过model模块进行模拟。

通过验证环境的自动收集统计电源状态覆盖率功能,能够使验证环境自适应运行和停止。

与现有技术相比,本发明通过对传输的电源状态的动态统计,实现了仿真在满足测试用例指定要求时自动结束;通过在测试平台传递配置参数,实现了验证环境组件、特殊功能的开关作用,同时实现了验证环境在类似设计中的可重用性;通过断言的绑定方法,和设计路径传输的参数化,实现了断言在源代码和网表级的完全复用。采用本发明的验证方法构建的验证平台不仅可以完成传统验证平台的功能覆盖性,同时可以覆盖电路中所有的电源状态。本发明不仅可以实现源代码阶段对于复杂控制时序的检查,还可以实现相同功能电路在网表阶段的检查,从而实现了源代码阶段到网表阶段验证环境的复用,极大的提高了验证效率。本发明使用了参数化的配置和动态的电路状态监测,当电路的指定的电源状态均得到覆盖时,通过参数化的配置,可以自动完成仿真验证,减少了测试用例的数目,极大的缩短了验证的周期,提高了验证的效率。

附图说明

图1为本发明的控制流程图;

图2为本发明中复杂控制序列检查示意图;

图3为本发明中功耗覆盖率统计结果示意图。

具体实施方式

下面结合附图对本发明做进一步说明。

参见图1,本发明包括以下步骤:

步骤一,对芯片端口信号的电源状态信息进行抽象,对验证环境与实际芯片交互的状态约束传输数据进行抽象,并配置测试平台的验证环境;抽象的数据将以数据包的形式在验证环境中传递,验证环境中从芯片收集到的数据转换为抽象的数据包在验证环境中传递;在测试平台中通过测试用例导入验证参数配置验证环境,测试用例继承于测试基类,测试基类中例化了具体的验证环境;

步骤二,验证环境中的monitor模块对抽象的数据进行实时监控,并将抽象的数据发送至计分板scoreboard;

步骤三,计分板scoreboard统计接收到的抽象数据中电源状态是否已经覆盖,并将抽象的数据发送至coverage模块,之后输出文档记录信息;

步骤四,coverage模块将接受到的抽象数据与阈值进行对比,并将抽象数据通过数据库动态反馈至测试用例,测试用例对抽象数据进行仿真处理,仿真结束前在发送对应的数据包时对coverage模块反馈的抽象数据进行判断,当满足仿真结束要求时,本次仿真即可结束,否则,测试用例继续产生新的数据包并通过sequencer模块发送至driver模块;

步骤五,sequencer模块实时监控driver模块是否将当前数据包接受完毕,如果接受完毕,sequencer模块将会继续发送其他数据包,否则挂起driver模块等待完成当前的驱动任务;

步骤六,driver模块将验证环境中的抽象数据包转换为信号级的数据,并发送至待测芯片,进行仿真验证。

测试平台中通过assertion模块监控芯片的控制时序,测试平台能够通过factory机制进行重写覆盖,芯片端口信号的电源状态信息和验证环境与实际芯片交互的状态能够通过model模块进行模拟。通过验证环境的自动收集统计电源状态覆盖率功能,能够使验证环境自适应运行和停止。

通过该验证环境组件的配置、激励与验证环境分离、信号级数据到验证环境中的抽象数据等,使得整个验证平台具有灵活的配置性、可重用性和可扩展性等优点。

基于该验证方法增加的回调机制安置在验证平台与待测设计的交互环节驱动器中,可以对特殊要求的测试激励进行修改,实现异常测试用例,从而增强了验证环境的可扩展性和可重用性。本发明的验证环境引入了参数化类配置机制,在不同的测试用例中通过不同的配置信息改变参数化类中相应的参数,实现对仿真测试验证平台的动态配置,从而仿真验证环境可在不同的测试用例中自动调整结构,达到环境的完全复用。

本发明对一款基于低功耗设计的集成多核的soc进行是仿真验证,并且该芯片已经成功流片,通过应用本发明覆盖了该低功耗设计的各种电源状态组合,对于电路中复杂的控制时序进行了有效的监控,如附图2所示,功耗覆盖率达到了100%,如附图3所示。同时,该仿真验证方法可推广至其他基于低功耗设计的集成电路设计。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1