我可以在SystemVerilog中创建const对象吗?

我可以在SystemVerilog中创建const对象吗?,verilog,system-verilog,Verilog,System Verilog,我想在SystemVerilog类中创建一个const对象。SystemVerilog支持常量对象(以及如何支持?),还是只支持常量原语类型 我想做一些类似的事情: const my_object MY_CONST; const begin MY_CONST = new(); MY_CONST.param1 = "value1"; MY_CONST.param2 = "value2"; end 您可以创建常量类实例 类的实例(对象句柄)也可以用 const关键字 co

我想在SystemVerilog类中创建一个const对象。SystemVerilog支持常量对象(以及如何支持?),还是只支持常量原语类型

我想做一些类似的事情:

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关键字

const class_name object = new(5,3);
换句话说,, 对象的行为类似于无法写入的变量。争论 对于新方法,应使用常数表达式(见11.2.1)。这个 可以写入对象的成员(除了 声明为常量)


我本想对Adam12的答案发表评论,但我不能,所以我将发布一个新的答案,叹气

在SV
MY_CONST
中,只能是一个常量句柄。因此,您可能无法将另一个对象指定给句柄,但句柄指向的对象的内容仍然可以修改


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

我本想对Adam12的答案发表评论,但我不能,所以我将发布一个新的答案,叹气

在SV
MY_CONST
中,只能是一个常量句柄。因此,您可能无法将另一个对象指定给句柄,但句柄指向的对象的内容仍然可以修改


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

我看到了对它的引用,但VCS编译器似乎在2009或2011版本的工具中不接受它。也许
const
在系统Verilog规范中,但它没有为您的编译器实现。我不认为三个主要的SV模拟器(VCS、NCSim、ModelSim)都支持所有的SV规范。它们目前都支持不同的子集,afaik。我在上面看到了对它的引用,但VCS编译器似乎在2009或2011版本的工具中不接受它。也许
const
在系统Verilog规范中,但它不是为您的编译器实现的。我认为三个主要的SV模拟器(VCS、NCSim、ModelSim)都不支持所有的SV规范。它们目前都支持不同的子集,afaik。