uvm_event和系统verilog事件的区别
uvm_event and system verilog event difference
uvm_event
相对于 SystemVerilog event
的优势是什么?
有人可以用小伪代码解释一下吗?
UVM 只不过是一个基于 SystemVerilog 开发的包装器库。因此,uvm_event
和 SystemVerilog 事件是相同的,但 uvm_event
具有一些额外的功能。
The uvm_event class is a wrapper class around the SystemVerilog
event construct. It provides some additional services such as setting
callbacks and maintaining the number of waiters.
传统的 Systemverilog 事件没有在触发事件时传递数据的功能。而 uvm_event
添加此功能。因此,您可以在触发某些事件时传递事务 class 句柄。
就像传统的 SV 事件一样,uvm_event 也有 触发和持续触发模式(而 SV 有 wait(ev.triggered)
和 @(ev)
对应物) .
您还可以在触发事件时添加回调。这是通过为特定事件注册回调 class 来完成的。
就事件而言,它们的开销似乎很大。您可以在 uvm_event
上获得许多示例,例如 this one。
除非您需要 uvm_event
附加功能包括添加一个 uvm_object 与触发器相关联,以及预订信息,例如跟踪服务员人数和上次触发 uvm_event 的时间。
我没有看到这些附加功能有多大用处,而且对于大多数测试平台来说,事件通常级别太低而无法处理。
uvm_event
相对于 SystemVerilog event
的优势是什么?
有人可以用小伪代码解释一下吗?
UVM 只不过是一个基于 SystemVerilog 开发的包装器库。因此,uvm_event
和 SystemVerilog 事件是相同的,但 uvm_event
具有一些额外的功能。
The uvm_event class is a wrapper class around the SystemVerilog event construct. It provides some additional services such as setting callbacks and maintaining the number of waiters.
传统的 Systemverilog 事件没有在触发事件时传递数据的功能。而 uvm_event
添加此功能。因此,您可以在触发某些事件时传递事务 class 句柄。
就像传统的 SV 事件一样,uvm_event 也有 触发和持续触发模式(而 SV 有 wait(ev.triggered)
和 @(ev)
对应物) .
您还可以在触发事件时添加回调。这是通过为特定事件注册回调 class 来完成的。
就事件而言,它们的开销似乎很大。您可以在 uvm_event
上获得许多示例,例如 this one。
除非您需要 uvm_event
附加功能包括添加一个 uvm_object 与触发器相关联,以及预订信息,例如跟踪服务员人数和上次触发 uvm_event 的时间。
我没有看到这些附加功能有多大用处,而且对于大多数测试平台来说,事件通常级别太低而无法处理。