前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【日更计划117】数字IC基础题【UVM部分】

【日更计划117】数字IC基础题【UVM部分】

作者头像
空白的贝塔
发布2021-06-17 14:47:50
6910
发布2021-06-17 14:47:50
举报
文章被收录于专栏:摸鱼范式摸鱼范式

上期答案

[311] 如何在UVM中实现仿真超时机制?

如果由于超出最大时间的某些错误而导致测试无法进行,那么仿真超时机制有助于停止仿真。在UVM中,set_global_timeout(timeout)是一个便捷函数,用于将uvm_top.phase_timeout变量设置为超时值。如果run()阶段在该这个时间内之前没有结束,则仿真将停止并报告错误。

在顶层模块中调用此函数,该模块会按以下方式启动测试

代码语言:javascript
复制
module test;
    initial begin
        set_global_timeout(1000ns);
    end
    
    initial begin
        run_test();
    end
endmodule
[312] uvm中的phase机制是什么意思?

与基于module的测试平台(所有module静态地存在于层次结构中)不同,基于类的测试平台需要管理不同对象的创建以及这些对象中各种task和function的执行。phase是基于类的测试平台中重要的概念,它具有一致的测试平台执行流程。从概念上讲,测试执行可以分为以下阶段-配置,创建测试平台组件,运行时激励和测试结束。UVM为每一个阶段中定义了标准phase。

[313] uvm_component有哪些phase?UVM的run_phase有哪些子phase?

UVM使用标准phase来排序仿真过程中发生的主要步骤。有三组阶段,按以下顺序执行。

  • Build phases-在Build phases;测试平台将会被配置和构建。它具有以下子phase,这些子phase都在uvm_component基类中作为虚方法实现。
    • build_phase()
    • connect_phase()
    • end_of_elaboration()
  • Run time phases-这些phase会消耗时间,这是大多数测试执行的地方。
    • pre_reset
    • reset
    • post_reset
    • pre_configure
    • configure
    • post_configure
    • pre_main
    • main
    • post_main
    • pre_shutdown
    • shutdown
    • post_shutdown
    • start_of_simulation()
    • run_phase(),run_phase()进一步分为以下12个子phase:
  • Clean up phase -此phase 在测试结束后执行,用于收集并报告测试的结果和统计信息。包括以下子phase :
    • extract()
    • check()
    • report()
    • final()
[314] 为什么build_phase是自顶向下执行的?

在UVM中,所有组件(例如test,Env,Agent,Driver,Sequencer)都基于uvm_component类,并且组件始终具有层次结构。build_phase()方法是uvm_component类的一部分,用于从父组件构造所有子组件。因此,要构建测试平台层次结构,始终需要先拥有一个父对象,然后才能构造其子对象,并可以使用build_phase进一步构造其子对象。因此,build_phase()总是自顶向下执行。

例如:uvm_test类调用build_phase,构造该test的所有uvm_env组件,而每个uvm_env类的build_phase()应该构造属于该uvm_env的所有uvm_agent组件,然后继续。对于所有其他phase,调用顺序实际上并不重要。所有组件的run_phase()是并行运行的。

本期题目

[316] 什么是uvm_config_db?它的作用是?
[317] 如何使用uvm_config_db的get()和set()方法?
[318] 在验证平台层次结构中较低的组件是否可以使用get / set config方法将句柄传递给较高层次结构中的组件?
[319] 在UVM中,将虚接口分配给不同组件的最佳方法是什么?
[320] 在UVM中,如何结束仿真?

正确答案将在下一期公布,或者到下面的文章获取答案

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 摸鱼范式 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本期题目
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档