如何在systemverilog中使用函数?

how to use function in systemverilog?

我找到了这样的句子。

function device check_device ;
        case  ..

在系统verilog代码中。

设备由枚举类型定义组成。 还要检查 _device 什么都没有。

有人知道这是什么吗?你能解释一下吗?

另外为什么->事件存在除了@? 它们之间有什么不同?

给定代码片段,check_device 是您正在定义的函数 的名称。它将 return 类型为 device 的值,正如你所说的 typedefed 作为 enum定义。

在 SystemVerilog 中,您可以声明一个显式事件并等待它。运算符 -> 用于触发显式事件。运算符@,和Verilog里一样,是不是让你等待一个事件

例如:

class Foo;
  event bar;
  // ...
  function void notify_bar;
    ->bar;
  endfunction;
  task wait_for_bar;
    @bar;
  endtask;
endclass