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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2891|回复: 2

[原创] 第一帖---Phase机制的理解

[复制链接]
发表于 2020-2-6 23:55:25 | 显示全部楼层 |阅读模式

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

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

x
个人理解phase机制的目:UVM方法学提前帮user定义各个phase需要做的事,从name上看可以让user明白各个phase大体上做的事情(不同时间做不同的事情,方便验证平台的开发)。需要注意的几个点:
(1)component的实例化在build_phase中完成,object的实例化可以在任何phase完成。
      特别注意:function phase中build_phase是“自上而下”的执行----上下指树结构
   (2) UVM提倡使用mian_phase,RAL可能会在configure_phase或mian_phase等phase访问寄存器,所以RAL使用run_phase更好
   (3) test启动后,按照从上往下顺序执行各个phase
   (4) 若想执行一些耗费时间的event,至少要在此phase下raise_objection,否则该phase不会执行
   (5)phase的仿真时间,由raise_objection最长的component的时间决定
   (6)进入某一phase,UVM会收集此phase所有的objection,并实时监控所有objection是否已被drop。若都drop就关闭此phase,并进入下一个phase。所有phase都执行完毕后,调用$finish关闭验证平台
   (7)phase之间可以跳转。例如正常工作时,发生reset,应该用main_phase跳转到reset_phase。在项目中,当TB遭遇到free run reset一般处理起来都很麻烦,特别是异步reset,建议在做VIP时,最好将异步reset也考虑进去
     
   举个栗子说明各个phase可以做的事情:
     build_phase: (1)override ENV  (2)load templates files(.txt) (3)coverage related settings (4) set default top-level sequence
     connect_phase: (1) override master & slave scenario (2)set SCB type
     end_of_elaboration: update agents before start simulation;(disable_agent_scenario()/set_agent_scenario_weight())
  说明:以上例子是在实际工作中见到的一些做法
   
      
         
   
发表于 2020-2-8 10:31:08 | 显示全部楼层
:o:o:o
发表于 2020-2-9 20:32:10 | 显示全部楼层
Thank You.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-25 00:48 , Processed in 0.013701 second(s), 6 queries , Gzip On, Redis On.

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