我想在我的 SystemVerilog 类中创建一个const对象。SystemVerilog 是否支持 const 对象(以及如何支持?),还是仅支持 const 原始类型。
我想做类似的事情:
const my_object MY_CONST;
const begin
MY_CONST = new();
MY_CONST.param1 = "value1";
MY_CONST.param2 = "value2";
end
我想在我的 SystemVerilog 类中创建一个const对象。SystemVerilog 是否支持 const 对象(以及如何支持?),还是仅支持 const 原始类型。
我想做类似的事情:
const my_object MY_CONST;
const begin
MY_CONST = new();
MY_CONST.param1 = "value1";
MY_CONST.param2 = "value2";
end
您可以创建常量类实例。
类的实例(对象句柄)也可以用 const 关键字声明。
const class_name object = new(5,3);
换句话说,对象就像一个无法写入的变量。新方法的参数应该是常量表达式(见 11.2.1)。可以写入对象的成员(声明为 const 的成员除外)。
我本来想评论 Adam12 的答案,但我不能,所以我会发布一个新的答案,叹息!
在 SVMY_CONST
中只会是一个常量句柄。所以可能你不能将另一个对象分配给句柄,但是句柄指向的对象的内容仍然可以修改。
我还没有听说过任何const begin ... end
构造。我认为调用有一个限制new
——它应该在分配给const
句柄时调用,或者如果句柄是类的成员,new
则可以在构造函数中调用。我猜想,句柄const
的成员函数可以在任何地方调用。const