1

我想在我的 SystemVerilog 类中创建一个const对象。SystemVerilog 是否支持 const 对象(以及如何支持?),还是仅支持 const 原始类型。

我想做类似的事情:

const my_object MY_CONST;

const begin
    MY_CONST = new();
    MY_CONST.param1 = "value1";
    MY_CONST.param2 = "value2";
end
4

2 回答 2

2

您可以创建常量类实例。

类的实例(对象句柄)也可以用 const 关键字声明。

const class_name object = new(5,3);

换句话说,对象就像一个无法写入的变量。新方法的参数应该是常量表达式(见 11.2.1)。可以写入对象的成员(声明为 const 的成员除外)。

于 2012-03-07T15:15:41.377 回答
2

我本来想评论 Adam12 的答案,但我不能,所以我会发布一个新的答案,叹息!

在 SVMY_CONST中只会是一个常量句柄。所以可能你不能将另一个对象分配给句柄,但是句柄指向的对象的内容仍然可以修改。

我还没有听说过任何const begin ... end构造。我认为调用有一个限制new——它应该在分配给const句柄时调用,或者如果句柄是类的成员,new则可以在构造函数中调用。我猜想,句柄const的成员函数可以在任何地方调用。const

于 2013-05-17T10:16:49.217 回答