关于randomize的使用问题
随机处理实在uvm_do或者 start_itemfinish_item之间做的。当然也可以用uvm_do_with(item,{item.xxx== yyy;})
一般随机化动作在uvm_object派生出来的uvm_sequence的body()里做,不用uvm_component派生出来的组件里做。当然一定要的话,那就在run_phase里做吧,然后用tlm传出去。随机化可以用randomize, 也可以用do_with系列宏,若出于灵活性的考量,直接使用randomize为宜
您好:就是我的代码,是在generator中需要对实例化的帧包进行赋值,然后传递到driver中,在run task中,需要生成一个帧包,那是否可以将其randomize,然后连接上tlm接口呢?
您好:那是否意味着,在run task中可以直接randomize帧包,然后用tlm通道传递到driver中去呢?
可以,用mailbox传递也可以
我不太明白你的意思。 UVM是在sequence中进行随机,通过sequencer传递给driver的, 你是要在generator中进行随机化处理吗?
您好:因为我们公司不使用sequence机制,所以需要在generator中进行随机化处理
当然需要在generator里面执行randomize了。driver是用于驱动数据的,它不能产生数据。所以送给driver之前数据已经randomize好了。按照你的描述,你只能在generator里面randomize,没有其它的选择。
那就在generator中进行实例化和随机吧,然后通过端口发送给驱动。 SV里面有讲这方面的
generator不是VMM里的么?难道可以通用?
起了一个generator的名字而已,本质上是个Uvm_component。
恩,现在好像只能这样做了