我试图了解UVM自动化宏。 除其他外,我从文本中发现了一些句子“ UVM系统Verilog调用库还包括自动实现打印,复制,克隆,比较,打包和解压缩方法以及更多内容的宏”。
,我发现很多示例都具有以下用法。 例如,
....
uvm_object_utils_begin(apb_transfer)
'uvm_field_int(addr, UVM_DEFAULT)
'uvm_field_int(data, UVM_DEFAULT)
...
uvm_object_utils_end
但是我不明白。 uvm_field_int()的用法只是定义变量,而不是复制,克隆,比较...。
我如何理解要执行的uvm自动化宏? 甚至我也很好奇为什么这些东西被称为自动化?我找不到自动的东西。
答案 0 :(得分:0)
正如您所说,UVM 字段自动化宏会生成许多类实用程序方法,例如复制,打印和克隆,其中包括已注册的字段。而已。我猜使用了“自动化”这个名称,因为它们会自动编写代码,因此您不必这样做。
我的公司(Doulos)建议您不要使用这些宏,除非您知道自己在做什么。这是因为它们可能难以调试,可能会生成比您所需更多的代码,并且会产生奇怪的副作用(可以在您不知情的情况下自动从配置数据库中读取值)。当然,使用它们的好处是您可以免费获得一大堆代码-复制,比较,打印方法等。
UVM下载随附的HTML文档非常好。搜索`uvm_object_utils并跟随您的鼻子。