设置UVM目标phase的额外等待时间的方法技术

技术编号:32473870 阅读:12 留言:0更新日期:2022-03-02 09:35
本发明专利技术公开了一种设置UVM目标phase的额外等待时间的方法,调用UVM的find_by_name方法,获取UVM的目标phase;调用set_drain_time方法,设置目标phase的仿真结束等待时间。本发明专利技术解决了现有技术中存在的因调用遗漏而导致出错的风险,具有代码编写简单、代码重复率低、开发效率高、验证效率高的特点,降低了问题调试过程的难度。试过程的难度。试过程的难度。

【技术实现步骤摘要】
设置UVM目标phase的额外等待时间的方法


[0001]本专利技术涉及芯片验证领域,特别涉及一种设置UVM目标phase的额外等待时间的方法。

技术介绍

[0002]通常我们对RTL进行验证时,广泛使用的验证方法学是UVM(Universal Verification Methodology),在对芯片的验证平台中,为了对代码仿真的执行顺序进行统一的控制管理,通常我们需要利用UVM的phase机制。
[0003]现有技术中,我们一般会在测试用例的基类中调用set_drain_time方法,来完成对额外等待时间的设置,然后在子类中使用super.reset_phase()和super.main_phase()来调用其父类中该phase的方法,从而实现对目标phase额外等待时间的设置。
[0004]现有技术中存在如下缺陷:在每个测试用例中都需要通过super的方式来调用父类中可能存在的drain_time的设置,很可能遗漏而导致出错。
[0005]如果我们希望测试用例中不同phase的额外等待仿真时间不一样的话,那么我们需要在每个phase中都重复上述在test_base基类的phase中设置drain_time的代码,其实有些phase默认情况下在基类中根据实际项目需要是可以不去编写的,但为了完成对drain_time的设置,则必须编写,不但麻烦,而且还出现了代码重复,降低了开发效率。
[0006]通常开发验证平台和实际执行测试用例对DUT进行验证的开发人员可能不是同一个人,那么如果让实际执行测试用例对DUT进行验证的人员记得在相应的phase里通过super的方式来调用验证平台中开发完成的测试用例的基类中的方法的话,那么这就意味着实际执行测试用例对DUT进行验证的人员还需要对验证平台中可能存在的问题进行负责,即必须关心该测试用例基类中相应phase中的逻辑,否则可能会引入一些未知错误,而且出现错误之后,很可能也会给问题调试过程增加难度。
[0007]如果从测试用例的子类中继续派生的话,那么为了完成在该phase中drain_time的设置,该子类的子类也必须使用super的方式调用其父类,也即原先的子类中相应phase的方法,但是很可能这并不是验证开发人员想要的,因为其可能并不想执行其中的逻辑,因此这无疑也会给实际的验证过程带来麻烦。
[0008]
技术实现思路

[0009]根据本专利技术实施例,提供了一种设置UVM目标phase的额外等待时间的方法,包含如下子步骤:调用UVM的find_by_name方法,获取UVM的目标phase;调用set_drain_time方法,设置目标phase的仿真结束等待时间。
[0010]进一步,在UVM的phase机制的Run

phase阶段之前,调用find_by_name方法,获取
目标phase。
[0011]进一步,UVM的phase机制符合singleton设置模式。
[0012]进一步,find_by_name方法设置在phase机制中。
[0013]进一步,set_drain_time方法设置在测试用例基类的end_of_elaboration_phase组件的phase_done中。
[0014]根据本专利技术实施例的设置UVM目标phase的额外等待时间的方法,解决了现有技术中存在的因调用遗漏而导致出错的风险,具有代码编写简单、代码重复率低、开发效率高、验证效率高的特点,降低了问题调试过程的难度。
[0015]要理解的是,前面的一般描述和下面的详细描述两者都是示例性的,并 且意图在于提供要求保护的技术的进一步说明。
[0016]附图说明
[0017]图1为根据本专利技术实施例设置UVM目标phase的额外等待时间的方法的步骤流程图;图2为根据本专利技术实施例设置UVM目标phase的额外等待时间的方法的原理图。
[0018]具体实施方式
[0019]以下将结合附图,详细描述本专利技术的优选实施例,对本专利技术做进一步阐述。
[0020]首先,将结合图1~2描述根据本专利技术实施例的设置UVM目标phase的额外等待时间的方法,用于设置UVM的目标phase的额外等待时间,其应用场景广阔。
[0021]如图1~2所示,本专利技术实施例的设置UVM目标phase的额外等待时间的方法,包含如下子步骤:在S1中,如图1所示,调用UVM的find_by_name方法,获取UVM的目标phase。
[0022]进一步,如图2所示,在UVM的phase机制的Run

phase阶段之前,调用find_by_name方法,获取目标phase。
[0023]进一步,如图2所示,UVM的phase机制符合singleton设置模式。
[0024]进一步,如图2所示,find_by_name方法设置在phase机制中。
[0025]在S2中,如图1所示,调用set_drain_time方法,设置目标phase的仿真结束等待时间。
[0026]进一步,如图2所示,set_drain_time方法设置在测试用例基类的end_of_elaboration_phase组件的phase_done中;phase_done派生于UVM中的uvm_objection对象,UVM使用phase来控制协调整个仿真运行的过程,会在其中划分很多不同的phase,而这些phase执行完毕后会使用uvm_objection类型的phase_done,其可以理解为该phase阶段仿真结束的一个时间节点,在这个节点上调用set_drain_time来设置结束仿真的额外等待时间。
[0027]本专利技术利用UVM的phase机制访问是符合singleton设置模式的特点,在消耗放置时间的Run

phase阶段之前,利用UVM的phase机制的find_by_name方法来获取唯一的目标
phase,使用者在测试用例基类中的end_of_elaboration_phase组件中调用set_drain_time方法来完成对额外的phase仿真结束等待时间的设置。
[0028]以上,参照图1~2描述了根据本专利技术实施例的设置UVM目标phase的额外等待时间的方法,解决了现有技术中存在的因调用遗漏而导致出错的风险,具有代码编写简单、代码重复率低、开发效率高、验证效率高的特点,降低了问题调试过程的难度。
[0029]需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包含
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
...

【技术保护点】

【技术特征摘要】
1.一种设置UVM目标phase的额外等待时间的方法,其特征在于,包含如下子步骤:调用UVM的find_by_name方法,获取所述UVM的目标phase;调用set_drain_time方法,设置所述目标phase的仿真结束等待时间。2.如权利要求1所述设置UVM目标phase的额外等待时间的方法,其特征在于,在所述UVM的phase机制的Run

phase阶段之前,调用所述find_by_name方法,获取所述目标phase。3.如权利要求2所...

【专利技术属性】
技术研发人员:马骁
申请(专利权)人:杭州云合智网技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1