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

求助:关于uvm的transaction的问题

时间:10-02 整理:3721RD 点击:
各位:
最近正在学习UVM的transaction与sequence。好像是说,用`uvm_do(my_tr)就能完成以下四个过程:
my_tr= my_transaction::type_id::create("my_tr");
start_item(my_tr);
assert(my_tr.randomize());
finish_item(tr);
问题是,书上的例子是my_transaction中的所有field都是随机化的,但是我需要传送的transaction是有一些值得是从文件中读取的。比如说,我想给DUT发图像数据,因此,希望my_transaction中的r、g、b不采用随机值,而是采用从bmp中读取的数值,这个时候我该怎么办呢?
另外,我还需要给DUT进行配置,需要另外一个config_transaction,但是总线配置有时候不光有write操作,还有read操作,这个时候的transaction与sequence该怎么弄呢?

可以用constraint来random出不同的transaction,用sequence来发不同的transaction,用sequence套几个不同的sequence。
你可以把sequence做成random的,让它发你文件中的transaction。反正就是constraint和sequence。

可以在post_randomize()函数里加上把bmp的值赋给transaction对应对象的操作,这个函数是一个虚函数,可以重载的。

对头
还有就是 把那几个field的random关掉, 好像是rand_mode() 这个内嵌方法?

谢谢诸位!

用`uvm_do_with也可以

是这么回事?

和VMM的transaction是一回事吗?

sorry,VMM不懂啊。

二楼好像是正确的。

mentord的cookbook貌似所`uvm_do的效率不高,还不如直接用start_item(my_tr);finish_item(tr);这样就不需要随机了呀。

学习了

学习了

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

网站地图

Top