パラメータを持つ関数を使用して Verilog のモジュール内で関数を呼び出し、それにパラメータを定義するにはどうすればよいですか?
些細な例の場合:
function automatic void inv();
parameter W = 1;
input logic [W:0] in;
output logic [W:0] out;
out = ~in;
endfunction
これをどのように呼び出して、呼び出しで W を定義しますか?
パラメータを持つ関数を使用して Verilog のモジュール内で関数を呼び出し、それにパラメータを定義するにはどうすればよいですか?
些細な例の場合:
function automatic void inv();
parameter W = 1;
input logic [W:0] in;
output logic [W:0] out;
out = ~in;
endfunction
これをどのように呼び出して、呼び出しで W を定義しますか?
parameter
を呼び出すときに値を上書きすることはできませんfunction
。IEEE Std(1800-2009)で指定されているこの構文はありません。
述べたように、パラメータは一定であり、設計の精緻化後に変更することはできません。ディメンションはデータ型の一部であるため、設計の作成中にも一定である必要があります。すべての関数呼び出しが手続き型コンテキストの外にある場合は、引数として定数を渡すことで回避できる可能性があります。これを行うことはお勧めしません。