5
私が列挙された場合は:Verilog enumが有効であることを確認するには?
my_cmd cmd = my_cmd'(value_from_bus);
私は簡単にcmd
が有効CMDであることを確認するにはどうすればよいですか?あなたはまた、それが有効であるかどうかを確認するために$cast
を使用し、同時にコピーすることができますEDA Playground
私が列挙された場合は:Verilog enumが有効であることを確認するには?
my_cmd cmd = my_cmd'(value_from_bus);
私は簡単にcmd
が有効CMDであることを確認するにはどうすればよいですか?あなたはまた、それが有効であるかどうかを確認するために$cast
を使用し、同時にコピーすることができますEDA Playground
に
if (cmd.name() == "")
$display("%0d is bad", cmd);
else
$display("%s:%0d is good", cmd.name(), cmd);
例:あなたが列挙型の名()機能を使用することができます
typedef enum int {
ADD = 1,
SUBTRACT = 3,
MULTIPLY = 7
} my_cmd;
。だから、代わりにやっての :cmd = my_cmd'(value_from_bus);
、あなたはこれを行うことができます。
if ($cast(cmd, value_from_bus))
$display("Valid: %s", cmd.name());
else
$display("Invalid");
例
興味深いEDA Playgroundに!私はそれが合成可能であるとは思っていますが。 – Ari
Quartus Primeでは、これは解析に失敗しました:「名前はこのプレフィックスの下で宣言されていません」 – Purag