const对象句柄作为函数中的参数

时间:2019-06-08 16:18:17

标签: system-verilog modelsim

我正在尝试编写一个函数,该函数接受作为const对象句柄的参数。

function void example(const MyClass ob);
    //--
endfunction 

当我尝试运行此代码时,出现错误:

syntax error, unexpected type name. The type 'MyClass' is defined at test.sv(1).

您可以创建一个const对象句柄,但是为什么不能在函数参数列表中做到这一点呢? 顺便说一句-我知道这只是一个const对象句柄,而不是const类对象,并且(不幸的)在SystemVerilog中使const类对象成为不可能。

1 个答案:

答案 0 :(得分:2)

没有 const对象 handle 这样的东西。有 const类变量 。像任何 const变量一样,它们会在声明中分配一次值,然后在声明后变为只读。

变量的值是类对象 handle 。您希望能够复制带有传递为函数输入的句柄的函数参数。如果SystemVerilog允许您将参数声明为const变量,则无法对其进行赋值。

const ref函数参数的概念,但是它的价值很小,因为它只能防止修改本地参数变量。您仍然可以写入给定对象句柄的任何类成员。