Article #1039

既に発行済みのブログであっても適宜修正・追加することがあります。
We may make changes and additions to blogs already published.

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度呼ばれているためかもしれません。

PCやbscの更新により、かつて1時間以上かかっていたコンパイルが今では1分を切るようになりました。まさに隔世の感があります。当初は論理の構築に集中しており、コンパイル時間も長く、思うように検証を進められませんでした。一方、現在は論理が固まったことで最適化も容易になり、コンパイル時間は劇的に短縮されました。この効果を当初に得られていればと感じます。


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

Leave a Comment

Your email address will not be published.

You may use Markdown syntax. If you include an ad such as http://, it will be invalidated by our AI system.

Please enter the numbers as they are shown in the image above.