Posts Issued on September 26, 2026

GameFSMの結果

posted by sakurai on September 26, 2026 #1131

Vivado 2026.1で合成したゲーム全体の各モジュールの物量を表1131.1に示します。ロジックはすべてBSVで記述し、トップ配線とメモリ、クロック生成のみVerilogで書いています。論理合成はトップからのフラット合成で、物量は階層別レポートから読みました。小さなモジュールはフラット合成で親に吸収され計上されるため、その分は親の残差として示し、注記します。

表1131.1 各モジュールの物量
モジュール 説明 BSV行数 生成Verilog行数※1 物量
LUT数 LUT割合[%] FF数 FF割合[%] BRAM数
mkGameFSM 自機、インベーダ、UFO、自弾、敵弾、スコア等を処理するFSM 1,554 31,439 2,904 48.7 1,807 73.0 -
mkBlitter VRAMへの矩形転送、消去、衝突判定を実行するFSM(mkGameFSMから分離) 335 1,406 2,073 34.8 128 5.2 -
mkSoundFSM3 UFO音を演奏するFSM 261※2 1,968 215 3.6 116 4.7 -
mkSoundFSM0 自弾発射音、自機爆発音、自機増加音を演奏するFSM 1,821 201 3.4 116 4.7 -
mkSoundFSM2 インベーダ歩行音を演奏するFSM 1,823 198 3.3 109 4.4 -
mkSoundFSM1 インベーダ爆発音を演奏するFSM 1,796 193 3.2 109 4.4 -
mkGraphicFSM VGA映像信号生成回路 196 410 54 0.9 33 1.3 -
mkParaSeri サウンドパラシリ変換、タイミング生成回路 77 251 23※3 0.4 39※3 1.6 -
mkOneStage ゲームFSMとサウンドFSMの間のバッファ 62 201
mkMixer 4チャネルのサウンドミキサー 59 133
mkButtons スイッチとボタンをORする回路 36 102 85※4 1.4 0 0 -
clock クロック制御回路 - 84 11※5 0.2 19※5 0.8 -
vram ビデオRAM - 34 - - - - 8
sound_rom0 自弾発射音、自機爆発音、自機増加音を格納するROM - 26※6 - - - - 8
sound_rom3 UFO音を格納するROM - - - - - 8
sound_rom1 インベーダ爆発音を格納するROM - - - - - 2
sound_rom2 インベーダ歩行音を格納するROM - - - - - 2
pattern_rom 自機、インベーダ、UFO、自弾、敵弾、スコア等の図形を格納するROM - - - - - 4
合計 5,958 100 2,476 100 32
  • ※1 bscが生成するVerilogには、$displayによるエラー・デバッグ表示やルール衝突検知など、合成時に除去されシミュレーションでのみ働く記述が含まれる。合成対象となるのは概ね半分程度で、この行数がそのまま記述の圧縮率を表すわけではない。
  • ※2 BSVのソースは1つで、defineにより0~3のバリエーションを生成する。
  • ※3 mkParaSeri、mkOneStage、mkMixerはフラット合成で親のsoundモジュールに吸収され計上されるため、階層別レポートに個別の行が立たない。3つの合計を、soundの物量から4つのサウンドFSMを引いた残差として示す。
  • ※4 mkButtonsは親のmasterモジュールに吸収されるため、masterの残差として示す。トップ配線のグルーロジックを含む。
  • ※5 clockはトップ直下に吸収されるため、トップの残差として示す。
  • ※6 ROM(rom.v)は共通のパラメタ化モジュールで、4つのサウンドROMとパターンROMが同一ソースを共有する。

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