как вызвать функцию в Verilog и указать ей параметры?

Как я могу вызвать функцию внутри модуля в Verilog с функцией, имеющей параметры, и определить для нее параметры?

Для тривиального примера:

function automatic void inv();
  parameter W = 1;
  input logic [W:0] in;
  output logic [W:0] out;

  out = ~in;

endfunction

Как бы я назвал это и определил W в вызове?


person A J    schedule 30.08.2012    source источник
comment
В каком контексте вызывается функция? Нам нужен более полный пример.   -  person    schedule 30.08.2012
comment
возможный дубликат функций, не зависящих от ширины (решение найдено)   -  person Greg    schedule 15.04.2014


Ответы (2)


Вы не можете переопределить значение parameter при вызове function. Для этого нет синтаксиса, указанного в IEEE Std (1800-2009).

person toolic    schedule 30.08.2012

Ведь заявленные параметры постоянны и не могут быть изменены после проработки проекта. Размеры являются частью типа данных, поэтому они также должны быть постоянными при разработке проекта. Если все ваши вызовы функций находятся вне процедурных контекстов, вы могли бы обойтись без передачи константы в качестве аргумента. Я не рекомендую этого делать.

person Community    schedule 31.08.2012