ROMトラブル編(コンフィグレーション失敗の原因は容量不足)
FPGA Boot Failure Debug: ROM Size Mismatch in Configuration Flash
English Samary
While bringing up an FPGA design from configuration flash, I encountered an unexpected failure when generating the ROM file. The root cause turned out to be insufficient flash capacity for the bitstream.
This issue highlights two critical checks when selecting a configuration ROM:
(1) the required bitstream size for the target FPGA device, and
(2) compatibility with the FPGA toolchain (e.g., Vivado).
After identifying the problem, I quickly replaced the flash with a higher-capacity device and successfully booted the FPGA from ROM. This article walks through the debugging process and key lessons learned to avoid similar pitfalls.
■ デバッグが一段落ついて、、
ある程度デバッグが進んできたタイミングで、
「そろそろROMから起動させよう」というフェーズに入りました。
つまり、FPGAをコンフィグレーションROM(Flash)からブートさせる段階です。
■ 事件発生:ROMファイルが作れない
まず必要なのが、コンフィグレーション用のROMファイル生成です。
しかしここで問題発生。
👉 なぜかエラーが出て生成できない
■ 最初の認識
- 回路は過去に動いていたもののコピー
- 配線ミスの可能性は低いはず
👉 「これはおかしい…」
■ 原因調査
いろいろ調べた結果、原因はシンプルでした。
👉 ROM容量が足りない
■ ここが重要(知見ポイント)
コンフィグレーションROMを選ぶときは、必ずこの2つを確認する必要があります。
① FPGAが要求するビットストリームサイズ
- デバイスごとに必要容量が違う
- 例:Artix-7 / Spartan-7 / Zynq などで差あり
② Vivado がサポートしているFlash
- 対応していないROMだと生成や書き込みで詰む
- 特に古い or マイナーな型番は注意
👉 この2つを外すとどうなるか
- ROMファイルが生成できない
- 書き込みできない
- 最悪、原因特定に時間を溶かす
■ 今回の対応
原因が分かったので即対応。
- 発注元に連絡(受注案件なので重要)
- 容量の大きいROMを緊急手配
購入先:
👉 チップワンストップ
■ 現場的に助かったポイント
- パッケージは違うが
- ピン配置・ピッチが同一
👉 手ハンダで交換可能
これはかなりラッキーでした。

■ 結果
- 翌日到着
- ROM交換
- 書き込み成功
👉 ROMからのFPGA起動に成功
■ まとめ(教訓)
今回のポイントはこれです👇
- ROMは「回路図流用」でも安心しない
- 必ず容量を再確認する
- ツール対応(Vivado)も確認する
👉 地味だけど、ここ外すと普通に詰みます
■ 一言
ちゃんとやってるつもりでも、こういう「ポロポロしたミス」は出ますね。
でも逆に言うと、
👉 このレベルで止まるなら、まだ安全圏
設計フローに組み込めば再発防止できます。
次回:VCD編(波形解析・ログ活用)
これもかなり面白いところなので期待です👍
FPGAインフォメーションのホームページはこちらです。
