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

关于UVM的复用

时间:10-02 整理:3721RD 点击:
各位大侠:

最近在使用UVM中遇到一个问题,我在写一个agent,发现除了data,其他都一样,这种情况如何复用呢?只有数据结构不一样

agent里面包含了driver和monitor等组件,这个data是什么意思?data在哪一个层次?data是item里面的属性吗?如果是的话,不同的sequence即可区分,agent简单多例化几个就好。还是把你的场景描述清楚比较好。

哦,不好意思,描述不清楚,这里data就是item的意思,是整个item不一样,是不是可以用override的方法,正在试验中,也请高手们帮忙

还是不太清楚你的应用场景,是要多个agent,还是只有一个agent?一般来说一个agent就对应一套接口协议,所以如果仅仅是item的差异,我想没必要写多个agent,只是在写sequence的时候来区分验证场景的不同。另外你说的data之间的差异是什么,也最好描述一下,既然能共用一个agent,那肯定有相同的地方,也许你说的不同更多只是约束和方法的不同。

试试callback

大侠,是这样的,我如果想同时替换掉driver还想替换掉driver上传递的数据结构呢?
我目前的结构是这样
sequence->sequencer->driver
sequence里面用的是class pps_tod_packet,现在想用class item_1
sequence里面是申明的也是class pps_tod_sequencer extends uvm_sequencer #(pps_tod_packet);
那如何将pps_tod_packet替换成item_1

请大家帮忙

忘记factory机制能不能重载item的东西,你可以找和factory有关的资料看看。

不能让tod_packet 和 item_1都来自一个共同的父类吗?

可以在同一个seqence中,使用不同sequence_item,如果要动态替换item,就创造另一个不同sequence, 不同的driver可以在factory注册以后,用set_config来替换吧。

Sequence Item Overrides:
In principle, the same factory override mechanism could be used for sequence_items. However, it would require a driver
to be written with prior knowledge of the derived type, so that it could cast a received sequence_item to the right type.
Therefore, from a practical point of view, sequence_items are unlikely to be overriden.
根据这么说可能item的override不是太灵,不知道我理解的对不对

BFM调用item提供的function或者task来完成数据的pack或者unpack,这样,只要接口不变,数据结构怎么变,都可以只override item提供的pack/unpack。

No you need not change any bit of code,use instance_override_by_* methods from the factory ovrride the instance of sequence_item in your sequence

First you should review the UVM guide and OVM guide, Be sure you master the basic verification mthodology!

ye guanzhu

you have got the point about this question!

同问

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

网站地图

Top