UVM中的field automation机制有哪些用途

电子说

1.3w人已加入

描述

不知道UVM中的field automation机制怎么翻译,不管了,反正就是**机制,理解它能干啥就行了。

UVM中的field automation机制提供了2类宏,也可以理解为有2个用途。

第一类

uvm_object_utils_begin(TYPE) 和uvm_object_utils_end 宏用来声明几个uvm object基本的pure virtual 方法。
1.1 get_type_name() ,返回对象的类型,是一个字符串类型

1.2 create() 实例化一个对象,利用了工厂机制。对象类型能被override。

1.3 get_type()返回对象类型,用于工厂机制

第二类

`uvm_field_* 宏指定特定的属性域段所支持的方法(print(), copy(), clone(),
pack(), unpack(), compare()等等).

`uvm_field_*(field_name, flags)
1 class packet_header extends uvm_object; 
2 rand bit [5:0] length; 
3 rand bit [1:0] addr; 
4 `uvm_object_utils_begin(packet_header) 
5 `uvm_field_int(length, UVM_DEFAULT) 
6 `uvm_field_int(addr, UVM_DEFAULT) 
7 `uvm_object_utils_end 
8 endclass : packet_header

上面的代码示例展示了这2类宏的配合使用方式。

不管你赞不赞同,这种用户类的声明继承方式已经是深入人心的UVM代码风格了。

你需要知道,每一次继承UVM基类去声明一个新的类,都需要有这些模版式的代码。

 

审核编辑:刘清
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • UVM

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分