2

SystemVerilogを使用しています。私のコードは次のとおりです。

function write_pixel_data(datastr ds);
 /* some stuff here... but no return */
endfunction

次に、次のように関数を呼び出します。

write_pixel_data(someval);

そして、私はvcs警告を受け取ります:

Warning-[SV-NFIVC] Non-void function used in void context.

しかし、私は何も返していません。警告を取り除くために関数呼び出しをvoidにキャストできることを知っています。しかし、なぜそれがこの警告を与えるのですか?? !!

ありがとう。

4

2 に答える 2

4

関数をとして宣言しておらvoidず、戻り値を何も割り当てずに呼び出すと、このエラーが表示されます。簡単な修正:

function void write_pixel_data(datastr ds);
 /* some stuff here... but no return */
endfunction

ただし、関数で「時間がかかる」ことはできません。そのために必要になりますtask

于 2012-03-13T17:20:38.127 に答える
3

暗黙の型で宣言された関数はを返しますlogic。それがあなたの意図であるならば、あなたは戻り型が無効であることを明示的に宣言しなければなりません。

于 2012-03-13T17:19:47.103 に答える