このエラー メッセージは、戻り値に対して何もせずに値を返す関数を呼び出していることを意味します。Brian が指摘したように、$value$plusargs
は値を返すので、それを何かに割り当てるか、SystemVerilog で を使用して無視する必要がありvoid'(..)
ます。
// For Verilog
reg result;
result = $value$plusargs(...);
-
// For SystemVerilog
void'($value$plusargs(...));
plusarg が一致したかどうかを知りたい場合もあります。その場合、次のようにコーディングするのが最適です。
if ($value$plusargs(...)) begin
// do something
end
突然これが表示されるようになった理由の 1 つは、ソースが Verilog ではなく SystemVerilog としてコンパイルされるように何かを変更した場合です。これはツールに依存しますが、特定のコンパイラが SystemVerilog でこれについて文句を言うことがありますが、Verilog ではそうではありません。