|
26 |
GameFSMの結果 |
Vivado 2026.1で合成したゲーム全体の各モジュールの物量を表1131.1に示します。ロジックはすべてBSVで記述し、トップ配線とメモリ、クロック生成のみVerilogで書いています。論理合成はトップからのフラット合成で、物量は階層別レポートから読みました。小さなモジュールはフラット合成で親に吸収され計上されるため、その分は親の残差として示し、注記します。
| モジュール | 説明 | 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が同一ソースを共有する。