之所以要突出这一点,是因为一些用户在实际中,会不恰当地直接操作item对象,直接修改其中的数据,或者将它的句柄发送给其它组件使用,这就无形中修改了item的基因,或者延长了一个item对象的寿命。这种不合适的对象操作方式是用户需要注意的,可以取代的方式则是合理利用copy和clone等方法。 接下来我们需要理清item和sequence,...
do_copy 方法可以单独使用,也可以通过 uvm_objects.clone() 方法调用,该方法会创建对象的独立副本。对于 sequence_item 而言,该方法将按如下方式实现: 代码语言:javascript 代码运行次数:0 复制 Cloud Studio代码运行 // do_copy method:functionvoiddo_copy(uvm_object rhs);bus_item rhs_;if(!$cast(rhs_,rhs...
item 是基于 uvm_object 类的,这表明它具备 UVM 核心基类所必需的数据操作方法,例如 copy()、 clone()、 compare()、 record()等, 这里不再赘述。 还要了解的是, item 通常应具备什么类型的数据成员。 我们将它们划分为如下几类: • 控制类。 比如总线协议上的读写类型、 数据长度、 传送模式等。 • ...
Sequence Item 在上一节《新手上路》中,我们已经提出item是基于uvm_object,这表明了它具备UVM核心基类所必要的数据操作方法,例如copy、clone、compare、record等,这里我们不再做赘述。读者需要了解到的是,通常对于一个item,应该有什么用途的数据成员被定义在item中呢?我们可以将它们划分下如下几类: 控制类。譬如总线协...
在上一节《新手上路》中,我们已经提出item是基于uvm_object,这表明了它具备UVM核心基类所必要的数据操作方法,例如copy、clone、compare、record等,这里我们不再做赘述。读者需要了解到的是,通常对于一个item,应该有什么用途的数据成员被定义在item中呢?我们可以将它们划分下如下几类: ...
在上一节《新手上路》中,我们已经提出item是基于uvm_object,这表明了它具备UVM核心基类所必要的数据操作方法,例如copy、clone、compare、record等,这里我们不再做赘述。读者需要了解到的是,通常对于一个item,应该有什么用途的数据成员被定义在item中呢?我们可以将它们划分下如下几类: ...
在上一节《新手上路》中,我们已经提出item是基于uvm_object,这表明了它具备UVM核心基类所必要的数据操作方法,例如copy、clone、compare、record等,这里我们不再做赘述。读者需要了解到的是,通常对于一个item,应该有什么用途的数据成员被定义在item中呢?我们可以将它们划分下如下几类: ...
在上一节《新手上路》中,我们已经提出item是基于uvm_object,这表明了它具备UVM核心基类所必要的数据操作方法,例如copy、clone、compare、record等,这里我们不再做赘述。读者需要了解到的是,通常对于一个item,应该有什么用途的数据成员被定义在item中呢?我们可以将它们划分下如下几类: 控制类。譬如总线协议上的读写类...