在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)
有相应的注册方式。