FPGA開発日記

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

BOOMの論理合成結果と自作CPUの論理合成結果比較

BOOMと自作CPUの合成結果を比較して、ボトルネックになっている部分を調査したい。まずは面積から。

正直、機能的に正しく動くことを重視しすぎていて、面積とかはほとんどチェックしていなかったのだが、まずは単純にVivadoの論理合成結果から確認したい。 Vivadoの論理合成結果は、階層的に面積を表示することができる。階層を分けて複数表示している。

report_utilization -file ${TOP_NAME}.area.hier1.rpt -hierarchical -hierarchical_depth 1
report_utilization -file ${TOP_NAME}.area.hier2.rpt -hierarchical -hierarchical_depth 2
report_utilization -file ${TOP_NAME}.area.hier3.rpt -hierarchical -hierarchical_depth 3
report_utilization -file ${TOP_NAME}.area.hier.rpt  -hierarchical

2階層まで表示したものは以下。

3階層まで表示したものは以下。

それぞれ面積を比較する。自作CPUは約2倍の大きさになってしまっている。

BOOMv3側はMegaBoomConfigで、自作CPU側と同程度の構成にしているつもりだけど、これはでかいなあ。 構成としてやはりLSUが大きいなというイメージだが、詳細を調べようと思ったが、BOOM側のLSUの内訳があまり詳しく出てこない。

ただLSUだけ見ると、自作CPUは4倍くらい大きいんだな...内訳を調査しなければ。

自作CPU側のLSU面積を内訳すると、STQが異常に大きいな...なんだこれは。

それぞれのSTQはこんな感じ。やはりそれぞれのエントリサイズが大きいのかな。