微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 在uvm中,怎样在同一时间发送多个包?

在uvm中,怎样在同一时间发送多个包?

时间:10-02 整理:3721RD 点击:

我尝试过设置多个sequence来发,效果不是很理想
比如我要同一时间发送4个包,这4个包的到来顺序最好是同时的

用 fork join

我是把所有sequence放在forkjoin里的,sequence的get_next_item()一次只能接受一个包

把四个包做成一个大包发送?在同一个sequencer上多个包仲裁肯定会有点后顺序的吧。

好像在factory模式注册的时候自定义的包注册不进去,只能接受bit int这些固有的数据类型

可否说的具体一些,不太明白你说的factory注册具体指什么。

一般来说包里的数据都要注册进factory模式
`uvm_object_utils_begin()
`uvm_field_int(addr,uvm_all_on)
`uvm_object_utils_end
这里的addr是个bit类型,这里没问题
大包里包括小包就要面临下边的问题
`uvm_object_utils_begin()
`uvm_field_int(my_inst,uvm_all_on)
`uvm_object_utils_end
my_inst是大包里边的一个小包,自定义的类的实例,是报错的

写了一大堆东西提示我要审核

看到了,应该是field automation,不只是int bit可以,枚举类型队列等等都可以的。

`uvm_field_int(addr,uvm_all_on)
这里的addr如果是bit类型那没问题,如果是大包里添加的小包,那就无法这样写了

自定义的包也是可以注册的吧,应该和这没有关系
`uvm_field_object(user_define_packet,UVM_ALL_ON)

有相应的注册方式。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top