如果我收到枚举:
my_cmd cmd = my_cmd'(value_from_bus);
如何轻松检查cmd
是否为有效的cmd?
typedef enum int {
ADD = 1,
SUBTRACT = 3,
MULTIPLY = 7
} my_cmd;
答案 0 :(得分:9)
您也可以使用$cast
检查它是否有效,并同时复制。
所以不要这样做:cmd = my_cmd'(value_from_bus);
,你可以这样做:
if ($cast(cmd, value_from_bus))
$display("Valid: %s", cmd.name());
else
$display("Invalid");
上的示例
答案 1 :(得分:3)
您可以使用枚举的名称()功能:
if (cmd.name() == "")
$display("%0d is bad", cmd);
else
$display("%s:%0d is good", cmd.name(), cmd);
上的示例