FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

Chiselで記述された浮動小数点演算器HardFloatの調査

久しぶりに浮動小数点演算器を触っているのだが、自作CPUに浮動小数点演算器を組み込む場合にどうすればいいのかを調査している。 一からFPUを作るのは嫌なので、HardFloatを使って生成されたVerilogファイルをそのまま組み込みたい。 その場合の方法について調査した。

berkeley-hardfloatは以下でGitHubで管理されているので、これをそのままダウンロードしてChiselからVerilogファイルを生成してみる。

github.com

これをそのままダウンロードして、makeをしてみる。すると一応Verilogファイルが生成された。 色々見てみると、どうもこれはクロックを使わずに全部組み合わせ回路として表現されているらしい。 これはちょっと実回路としては使えないなあ。

もう一つ考えられるのは、Rocket-ChipのFMAPipeのデザインを持ってくることだ。この方が多少はパイプラインの制御ができるが、Chiselから生成されるのが少し面倒だ。

それか、最初からSystemVerilogデザインであるFPNewを使ってみるという手もある。FPUNewの方がConfigurabilityが高そうなので、こっちを調査してみよう。

github.com