Должна ли функция VHDL возвращать значение? - PullRequest
0 голосов
/ 05 декабря 2018

Я хотел бы создать функцию для записи файла через библиотеку TEXTIO.Это довольно простая процедура для естественного написания, но для ясности кода я бы предпочел написать ее как функцию.

Я знаю, что типичный способ написания функции следующий:

HEADINGТИП ...

function my_func(my_arg : my_arg_type) return return_type;

ТИП ТЕЛА ...

function my_func(my_arg : my_arg_type) return return_type is

Однако, если я не заинтересован в возврате чего-либо, есть способ избежать критического предупреждения -

return type is not specified

С уважением,

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Нет.Функция всегда должна возвращать значение известного типа.Вместо этого вы должны использовать процедуру.

0 голосов
/ 05 декабря 2018

Нет.Но вместо этого вы можете использовать процедуру :

procedure my_func (my_arg : my_arg_type) is

Вы можете поместить процедуру в пакет:

package P is
  procedure my_func (my_arg : my_arg_type);
end package P;

package body P is
  procedure my_func (my_arg : my_arg_type) is
  begin
    // blah blah blah
  end procedure my_func;
end package body P;

SystemVerilog имеет функции void , которые не имеют возвращаемого типа, но это не может быть сделано с использованием VHDL.

...