不知道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基類去聲明一個新的類,都需要有這些模版式的代碼。
-
UVM
+關注
關注
0文章
182瀏覽量
19171
原文標題:UVM中的Field Automation
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論