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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1969|回复: 5

[原创] UVM中如何等待一个packet的到来

[复制链接]
发表于 2020-9-3 16:55:18 | 显示全部楼层 |阅读模式

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

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

x


if(actual_queue.size > 0)begin
     tmp_tran = actual_queue.pop_front();
end else begin

end
请问scoreboard中如何匹配两个数据包进行比较,如果actual_queue队列有数据,就pop出来,如果没有数据就需要等待actual数据包的到来,请问这个else begin end 代码如何表述?

发表于 2020-9-3 17:57:57 | 显示全部楼层
一直从actual_port上get信号,get是阻塞的,如果是空的,那么当前的进程阻塞直到一个数据被放置到port。直接拿到数据包就不用往队列里面push_back了。不知道对不对,我是新手。
发表于 2020-9-3 21:06:50 | 显示全部楼层
我自己的……求指教,不同环境不同操作,仅供参考……具体需求仔细想想应该就清楚了
while(1)
    act_port.get(get_actual);
    if(expect_queue.size() >0) begin
        tmp_tran = expect_queue.pop_front();
        compare_packet;     //function
    end
    else begin
        `uvm_error("scb", "Received from DUT, while expect queue is empty")
        `uvm_error("scb", "The unexpected packet is")
        if(this.get_report_verbosity_level()==500) begin
            get_actual.print();
        end
     end
end
发表于 2020-9-4 09:31:24 | 显示全部楼层


anpengfei 发表于 2020-9-3 21:06
我自己的……求指教,不同环境不同操作,仅供参考……具体需求仔细想想应该就清楚了
while(1)
    act_port ...


你这样run可能会卡住的。。。
发表于 2020-9-4 09:39:14 | 显示全部楼层
这个不就是《UVM实战》书上的例子么,你可以自己去第二章看看那scoreboard怎么写的
发表于 2020-9-4 09:48:39 | 显示全部楼层


789ww 发表于 2020-9-4 09:31
你这样run可能会卡住的。。。


???卡住什么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-22 05:55 , Processed in 0.017692 second(s), 6 queries , Gzip On, Redis On.

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