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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4327|回复: 16

[求助] uvm例程中的问题求解

[复制链接]
发表于 2017-9-15 08:59:52 | 显示全部楼层 |阅读模式

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

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

x
各位前辈早上好~  本菜鸟看例程代码有些不太理解的地方,以下是粗略:

class iMonitor extends uvm_monitor;
    ................
    ................
    ................
    virtual task run_phase(uvm_phase phase);
        packet tr;
        forever begin
           tr= packet::type_id::create("tr",this);
           get_packet(tr);
           analysis_port.write(tr);
        end
    endtask: run_phase

    virtual get_packet(packet tr);
        ............
        ............
        forever begin
           ........
           ........
        end
    endtask: get_packet

endclass

首先这个例程可以正常仿真并且结果也正确,可是以上这段我就理解不上去了,run_phase里面调用了get_packet(), get_packet()里面又有一个forever循环,那么为啥analysis_port.write(tr)最终还会被调用嘞。
希望看到帖子的各位老师帮小弟分析解惑一下,感激不尽。

附件中时iMonitor全部源代码。
iMonitor.rar (1.96 KB, 下载次数: 4 )
发表于 2017-9-15 09:16:55 | 显示全部楼层
回复 1# dreamore

当vif.iMonClk.frame_n[port_id] == 1 且 i == 8的时候就return. 这时就退出get_packet(),可以继续执行analysis_port.write()

    Image 1.png
发表于 2017-9-15 09:21:14 | 显示全部楼层
同上,搜return
 楼主| 发表于 2017-9-15 09:30:37 | 显示全部楼层
回复 2# chenfengrugao

昂  这样  吼吼  谢谢峰哥! 里面有一句 for(int i=0;i<8;i=i)
这写法是啥意思嘞
 楼主| 发表于 2017-9-15 09:32:00 | 显示全部楼层
回复 3# angry_grina


   谢谢谢谢 ,非常感谢
 楼主| 发表于 2017-9-15 09:34:28 | 显示全部楼层
回复 2# chenfengrugao


   看到您的VIM 界面就顺便再问下哈, umv的语法高亮是咋弄嘞
发表于 2017-9-15 10:45:38 | 显示全部楼层
回复 4# dreamore


    我觉得是i=i是笔误吧,是你不小心删了吧。你查查最原始的代码?
发表于 2017-9-15 10:49:23 | 显示全部楼层
回复 6# dreamore


    我的不是VIM,是emacs。VIM的话,你看看这个http://bbs.eetop.cn/viewthread.php?tid=297523  我没试过,不保证能用,哈哈。
发表于 2017-9-15 10:53:22 | 显示全部楼层
回复 4# dreamore


   其实可以空着的,如for(;;),可能uvm不支持这种写法,所以写了个多此一举的操作i=i,而真正需要的i++在for循环主体里datum[i++]里实现了
发表于 2017-9-15 12:16:57 | 显示全部楼层




    在syntax\systemverilog.vim中增加两行:

syntax match svUVM "\(`\?uvm_\w\+\)"
highlight! default link svUVM Function

效果如下:
Image 2.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-25 01:02 , Processed in 0.029741 second(s), 8 queries , Gzip On, Redis On.

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