2017-05-24 5 views
1

ChiselのVerilogパワーオペレーター**を探しています。 Chisel Cheat sheettutorialに行きましたが、私が探していたものが見つかりませんでした。チゼルで書かれた設計を経て、私はlog2xxの機能が人気のある選択肢であることを発見しました。もちろん、私は常にシフト演算子を使って2の累乗を得ることができますが、私はChiselに一般的な累乗演算子があることを期待していました。スカラの数学関数を仕事に使ってみましたが、コンパイルエラーが出ました。Chiselのパワーオペレーター

+1

説明のために、指数を計算できるハードウェアを作成しようとしていますか、または定数またはビット幅を計算しようとしていますか? – jkoenig

+0

ビット幅を計算しようとしています – maskarih

答えて

1

エラボレーション時間で計算されたビット幅を計算しようとしているので(つまり、Scalaがハードウェアグラフを精緻化しているとき)、Scala関数を使用できます。 Scalaはpower function for Doublesしか提供していませんが、この場合はうまくいきます。 math.pow(base, exp).toIntを試してください。baseexpは両方ともIntsであり、Scalaは関数呼び出しのために自動的にDoublesに変換します。ビット幅として使用するために、結果のDoubleをIntに変換するだけで済みます。

関連する問題