微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 关于randomize的使用问题

关于randomize的使用问题

时间:10-02 整理:3721RD 点击:
请问下,一个帧包要生成不定长的payload,在transcation中生成帧包格式,在generator中对transcation进行了实例化以后,执行run task,是否需要在run task中使用randomize对transcation进行随机化?用的是uvm1.0

随机处理实在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。

恩,现在好像只能这样做了

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

网站地图

Top