SystemVerilog枚举可以为null吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SystemVerilog枚举可以为null吗?相关的知识,希望对你有一定的参考价值。
我正在使用枚举方法name()
来打印枚举变量的字符串值。
我应该先进行null
检查吗?
答案
name()
方法不能返回null
。如果值与枚举值不对应,它将返回空字符串。建议进行空字符串检查。
引自IEEE std 1800-2012§6.19.5.6名称()
The name() method returns the string representation of the given enumeration value. If the given value is not a member of the enumeration, the name() method returns the empty string.
另一答案
不,你不需要担心null
枚举。但是,如果枚举没有与0
对应的状态,则可以取消初始化枚举
例如:
typedef enum {STATE0, STATE1} plain_enum;
typedef enum {VAL0=1, VAL1} special_enum;
module test;
initial begin
plain_enum plain;
special_enum special;
$display("plain: %s", plain.name());
$display("special: %s", special.name());
end
endmodule
返回:
# plain: STATE0
# special:
因为special_enum
没有对应0
的状态
在这里编辑/重新运行代码:http://www.edaplayground.com/s/4/647
以上是关于SystemVerilog枚举可以为null吗?的主要内容,如果未能解决你的问题,请参考以下文章