Posts Issued on October 24, 2025

GameFSMの改良 (17)

posted by sakurai on October 24, 2025 #1039

3番目にボディが厚い関数の最適化をトライします。対象はinitAll()(毎回のステージでの初期化関数)で、45行あります。

初期化関数(initAll())の最適化前後 比較
BSV合成 コンパイル時間 1'03'' 0'54'' ▲14.3%
Verilog合成 ファイルサイズ[KB] 4,283 3,554 ▲17.0%
合成時間 0'58'' 0'51'' ▲12.1%
Vivado LUT数 5,582 5,489 ▲1.7%
Vivado FF数 1,907 1,907 0.0%

結果としては、FSMオーバヘッドはほぼ0でした。一方、ボディがやや厚かったため、bscコンパイル時間とverilog量の削減となりました。物量も削減されているのは2度呼ばれているためかもしれません。

かつて1時間以上かかっていたbscコンパイルがPCやbscの更新により16分になり、さらに今回のFSM切り出しにより、とうとう1分を切るようになりました。まさに隔世の感があります。

最初は論理の構築に集中しているため最適化までは手が出せず、コンパイル時間が長いため思うように検証を進められませんでした。

一方、現在は論理が固まったことで最適化も容易になり、コンパイル時間は劇的に短縮されました。皮肉なものですがこの効果を当初に得られていればと感じます。


左矢前のブログ 次のブログ右矢