概要
- Xilinx Kintex UltraScale+ FPGAを低コストで開発ボードとして活用する方法の検討
- Vivado WebPackライセンスの制約下でのFPGA選定と開発ボード調達戦略
- JTAGデバッグ環境の構築とOpenOCDによる非公式書き込みへの挑戦
- 中古FPGAアクセラレータボードの動作確認と初期テストの実施
- PCIe経由での動作検証および基礎的なPCIe用語の解説
Xilinx Kintex UltraScale+ 開発ボード選定と調達戦略
- 大規模プロジェクト用に Xilinx Virtex UltraScale+ FPGAを希望も、コスト面で Kintexシリーズ に選択肢を絞り込み
- Vivado WebPack ライセンス制限により、Virtex UltraScale+は非対応だが、 XCKU3P/XCKU5P はサポート対象
- 開発ボードに求める条件
- SFP+×2またはQSFP×1 搭載
- JTAGインターフェース 搭載
- PCIe x8 以上のインターフェース実装
- 調達手段
- 自作設計は今回は見送り
- Alinx社製AXKU3/AXKU5 がコストパフォーマンス最良(900〜1050ドル+拡張ボード150ドル)
- eBayでAlibaba Cloud向け中古FPGAアクセラレータ を発見(XCKU3P搭載、$200、ドキュメント無し)
中古FPGAボードのJTAGデバッグ環境構築
- Xilinx純正JTAGプローブ(UG908記載) は高価なため、 OpenOCD と汎用JTAGアダプタによる代替案を模索
- OpenOCDは SVF(Serial Vector Format) に標準対応、Vivadoからエクスポート可能
- 7シリーズ以降のFPGA対応情報は少ないが、 JTAGの基本仕様は共通
- SVFをOpenOCD経由で書き込み、必要に応じてアダプタ固有の修正を加える方針
開発ボード利用までの段階的アプローチ
-
- 動作確認 :フラッシュ未消去なら既存ビットストリームでPCIeエンドポイントやSFPのアイドル信号を確認
-
- JTAG接続 :eBay情報をもとにJTAG端子探索、デイジーチェーン構成機器の特定、SYSMON等のFPGA内部情報取得も検討
-
- ピン配置把握 :外部クロック源やSFP/PCIeトランシーバの接続ピン特定
-
- ビットストリーム書き込み :OpenOCDのvirtex2+pldドライバやSVFリプレイで一時的な構成書き込みを試行、自動化も目指す
中古FPGAボードの到着と初期テスト
- Alibaba Cloudアクセラレータ中古ボード が到着、 SFP28トランシーバ と OS2パッチケーブル が付属
- PCIe to USBアダプタ と 12V電源 も同梱、スタンドアロン動作も可能
- 外観はやや使用感ありだが、 SFPケージやPCIeコネクタは無傷
スタンドアロン動作・PCIe経由の動作確認
- まずスタンドアロンで LED点灯・発熱 による通電確認
- 本格的なテストは Raspberry Pi 5 +外付けPCIeアダプタで実施
- Pi 5の PCIe Gen2 x1 にボードを接続、下位互換性で動作可能
- Pi起動後、 dmesgログ でPCIeエンドポイント認識を確認
PCIe用語・dmesgログの基礎解説
- PCIeデバイスID(domain:bus:device.function) や vendor/device id の意味を解説
- 例:[14e4:2712]はBroadcom BCM2712 PCIe Bridge
- type 01/type 00 でブリッジ/エンドポイント区別
- classコード(0x060400など) はデバイスの機能カテゴリを示す
- 公式IDリストやLinuxカーネルの該当コードへのリンクも紹介
この流れで、次回以降はJTAGデバッグの詳細やピン配置特定、OpenOCDを用いた書き込み手順など、実践的な手順を順次解説予定。