久しぶりに浮動小数点演算器を触っているのだが、自作CPUに浮動小数点演算器を組み込む場合にどうすればいいのかを調査している。 一からFPUを作るのは嫌なので、HardFloatを使って生成されたVerilogファイルをそのまま組み込みたい。 その場合の方法について調査した。
berkeley-hardfloat
は以下でGitHubで管理されているので、これをそのままダウンロードしてChiselからVerilogファイルを生成してみる。
これをそのままダウンロードして、make
をしてみる。すると一応Verilogファイルが生成された。
色々見てみると、どうもこれはクロックを使わずに全部組み合わせ回路として表現されているらしい。
これはちょっと実回路としては使えないなあ。
もう一つ考えられるのは、Rocket-ChipのFMAPipe
のデザインを持ってくることだ。この方が多少はパイプラインの制御ができるが、Chiselから生成されるのが少し面倒だ。
それか、最初からSystemVerilogデザインであるFPNewを使ってみるという手もある。FPUNewの方がConfigurabilityが高そうなので、こっちを調査してみよう。