Не пустая функция, используемая в пустом контексте? - PullRequest
2 голосов
/ 13 марта 2012

Я использую 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, чтобы избавиться от предупреждения.Но почему он дает это предупреждение ?? !!

Спасибо.

Ответы [ 2 ]

4 голосов
/ 13 марта 2012

Если вы не объявили функцию как void и вызываете ее, не присваивая возвращаемое значение чему-либо, вы увидите эту ошибку.Простое исправление:

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

Осторожно, вы не можете делать в функции ничего, что «требует времени».Вам понадобится task для этого.

2 голосов
/ 13 марта 2012

Функция, объявленная с неявным типом, возвращает logic. Вы должны явно объявить тип возврата недействительным, если вы этого хотите.

...