21 |
GameFSMの改良 (16) |
2番目にボディが厚い関数の最適化をトライします。対象はupdatePlayerBullet()(自弾処理関数)で、64行あります。
自弾処理関数(updatePlayerBullet())の最適化前後 | 前 | 後 | 比較 | |
---|---|---|---|---|
BSV合成 | コンパイル時間 | 1'15'' | 1'03'' | ▲16.0% |
Verilog合成 | ファイルサイズ[KB] | 5,253 | 4,283 | ▲18.5% |
合成時間 | 0'52'' | 0'58'' | 11.5% | |
Vivado LUT数 | 5,490 | 5,582 | 1.7% | |
Vivado FF数 | 1,894 | 1,907 | 0.7% |
結果としては、おなじくFSMオーバヘッドが想定されそのとおりになりました。一方、ボディが厚かったため、bscコンパイル時間とverilog量の削減となりました。
Leave a Comment