Verilog で次のようなステートメントを作成しましたinteger level = log(N)(ここで、N はパラメーターであり、レベルを決定する必要があります)。しかし、Verilog では複雑な数学ステートメントを実行できないことを理解しているので、上記の問題に対する別の解決策があるかどうか疑問に思っています。
フィードバックをいただければ幸いです。
実行しようとしているのが2を底とする対数の場合は、組み込み関数を使用できます$clog2()。
しかし、Verilog で複雑な数学ステートメントを実行できないことは理解しています
Verilog は何よりもまずハードウェア記述言語です。どのようなハードウェアlog(N)ステートメントが説明されていますか? 最新の FPGA は、LUT、フロップ、小さな組み込みメモリ、MAC (積和演算) プリミティブを実装する単純な DSP で構成されています。log(N)また、その他の複雑な数学ステートメントは、これらのプリミティブに直接マップすることはできません。同じことがASICにも当てはまります。
類推するとlog(N)、プロセッサによって実行されません。そのために、一連の下位レベルのアセンブリ命令を呼び出します。これらのアセンブリ命令は、log(N)ライブラリ (C、C++ など)の一部です。
ASIC/FPGA 用に合成できるようにするには、 IP コアlog(N)のインスタンスが必要です。log(N)