本发明涉及验证方法,特别涉及一种基于uvm事件机制的自适应仿真结束方法。
背景技术:
1、uvm(universal verification methodology,通用验证方法学)是以systemverilog语言为基础的验证库;在uvm出现之前,还有ovm(open verificationmethodology,开放验证方法学)和vmm(verification methodology manual,验证方法论手册)在2011年2月由accellera推出,得到了sysnopsys、mentor和cadence的支持。uvm继承了前两者的优点并克服缺点,代表了未来验证方法学发展方向。
2、uvm的phase机制将仿真运行过程分为多个部分,每个部分对应一个phase,如build_phase一般用于各组件例化、连接,main_phase用于执行仿真功能等,目的是为了规范代码执行顺序,划分每个阶段验证环境应该做的事。phase中的objection投票机制用于控制各phase间的跳转,raise_objection表示该phase还不能结束,drop_objection表示该phase可以结束并跳转到下一个phase,一般成对出现。
3、在验证流程中常用的控制仿真结束的方式,一是直接延迟,可以通过phase机制中的set_drain_time方法设置此phase在drop_objection之前延时多久,也可以直接在phase中用“#”方式延时,实际项目中dut(design under test,设计测试)的输出延时会随着激励的变化而变化,这种固定延时的方式会造成仿真提前结束或者浪费仿真时间的情况,因此只适用于场景固定的直接用例;二是等待特定条件再drop_objection,这种方式在某些等待条件无法达成的情况下,会出现仿真无法停止的情况。
技术实现思路
1、本发明的目的在于提供一种基于uvm事件机制的自适应仿真结束方法,以解决背景技术中的问题。
2、为解决上述技术问题,本发明提供了一种基于uvm事件机制的自适应仿真结束方法,包括:
3、步骤a:在需要的位置新建uvm事件并触发;
4、步骤b:建立一个全局事件资源池,将所有新建事件加入到该全局事件资源池中;
5、步骤c:检测事件触发,如果没有事件触发则计数器自加,否则清零计数器;
6、步骤d:在达到计数的阈值时进入仿真结束流程。
7、在一种实施方式中,所述步骤a中,在验证环境中需要的位置新建uvm事件,在符合条件时触发该新建的uvm事件。
8、在一种实施方式中,所述步骤b中,通过uvm内建方法,建立一个全局事件资源池。
9、在一种实施方式中,所述步骤c中,并行检测所述全局事件资源池中的所有事件是否触发,检测到有任何一个事件触发时,将“看门狗”计数器清零,否则“看门狗”计数器自加。
10、在一种实施方式中,所述步骤d中,将“看门狗”计数器的计数值与设定阈值比较,若达到阈值,则停止事件触发监测和计数,进入仿真结束流程。
11、在本发明提供的一种基于uvm事件机制的自适应仿真结束方法中,在验证环境中触发事件,通过“看门狗”机制并行监测是否有事件被触发,通过控制uvm仿真phase的跳转,从而控制仿真结束。这种方式使用简单,适用范围广,在验证环境中例化该组件,在需要的地方新建事件并设置触发条件即可,组件会自动识别并监测新增的事件;设置合适的“看门狗”阈值后,组件即可根据事件触发情况自动调整仿真结束事件,提高验证效率。
1.一种基于uvm事件机制的自适应仿真结束方法,其特征在于,包括:
2.如权利要求1所述的基于uvm事件机制的自适应仿真结束方法,其特征在于,所述步骤a中,在验证环境中需要的位置新建uvm事件,在符合条件时触发该新建的uvm事件。
3.如权利要求1所述的基于uvm事件机制的自适应仿真结束方法,其特征在于,所述步骤b中,通过uvm内建方法,建立一个全局事件资源池。
4.如权利要求1所述的基于uvm事件机制的自适应仿真结束方法,其特征在于,所述步骤c中,并行检测所述全局事件资源池中的所有事件是否触发,检测到有任何一个事件触发时,将“看门狗”计数器清零,否则“看门狗”计数器自加。
5.如权利要求1所述的基于uvm事件机制的自适应仿真结束方法,其特征在于,所述步骤d中,将“看门狗”计数器的计数值与设定阈值比较,若达到阈值,则停止事件触发监测和计数,进入仿真结束流程。