在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3379|回复: 3

[求助] 关于UVM中的phase.raise_objectio

[复制链接]
发表于 2019-5-22 23:46:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
请问uvm中的
phase.raise_objection
phase.drop_objection
在看UVM实战时候有点迷糊,到底这个是在main_phase都要加上嘛,不加就无法正常执行
另外在sequence中的body的函数中,这个starting_phase.raise_objection又是干嘛的??为啥这里要加这个

 楼主| 发表于 2019-5-23 07:30:18 | 显示全部楼层
在网上搜了下资料,上边说对于需要消耗时间的代码需要加上raise_objection,那么对于下边的这段代码,消耗时间的指的是uvm_do这个函数嘛??什么样的算消耗时间的代码???
class my_sequence extends uvm_sequence #(my_transaction)
  .......
       virtual task body();
           if(starting_phase != null)
               starting_phapse.raise_objection(this);
           repeat(10) begin
               `uvm_do(m_trans)
           end
           #100;
           if(starting_phase != null)
               starting_phase.drop_objection(this);
       endtask
   endclass
 楼主| 发表于 2019-5-23 07:50:18 | 显示全部楼层
继续查找资料,发现下边一段话
    1. function phase不消耗仿真时间,而function phase也分成两大类:
             a. 继承自uvm_bottemup_phase的自下而上的执行function
             b. 继承自uvm_topdown_phase的自上而下执行的function
     2. 只有run_phase是task phase,消耗仿真时间的,自上而下启动,同时在运行。

那么也就是说对于connect_phase build_phase这类的function_phase都是不消耗时间的,而对于main_phase这类的run_phase都是消耗仿真时间的咯,所以每一个main_phase中都要加上raise_objection嘛????
发表于 2019-5-23 16:00:02 | 显示全部楼层
不用每一个都加,只有你实际用到该组件的main_phase去做一些消耗时间的事务处理才需要,UVM方法学会自动根据组件层次去执行各组件的main_phase的,空的main_phase就表示该组件在这个phase没有任务做就会跳过了。#100也算是耗时间的代码,只要是让仿真时间 往前推进的都算。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-25 04:38 , Processed in 0.016526 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表