中国製FPGAツールチェーンPDSへの移行:VivadoからPango/FudanMicroへの実際の手順
国产化移行というとチップ交換が中心だと思われがちだが、最初の難関は実はツールチェーンだ。VivadoからPangoのPDS、あるいはFudanMicroのEDAへ移行すると、プロジェクトの開き方、制約ファイル、IPのインスタンシエーション、タイミングクローズのすべてが変わる。本稿では移行をステップごとに解説し、各ステップで何が変わるか、陥りがちな罠、必要な工数を示す。
まず理解する:PangoとFudanMicroは移行経路が異なる
Vivadoから国産ツールチェーンへ移行する際、「どのEDAも同じだろう」と考える人が多い。実際にはPangoとFudanMicroは大きく異なるため、まずどちらのラインに直面しているかを把握する:
| 対象チップ | ツールチェーン | プロジェクトの開き方 | 難易度 |
|---|---|---|---|
| Pango Titan3 / Kosmo-2 | Pango Design Suite (PDS) | プロジェクト構造、IPライブラリ、制約構文がVivadoと異なる | 中、フローは似ているがプロジェクトの再構築が必要 |
| FudanMicro JFM7シリーズ | FudanMicro EDA | 7シリーズ互換デバイス、構造が類似 | 中低、IPライブラリのマッピングし直しが必要 |
Pangoは「新アーキテクチャ+自社PDS」路線なので、Vivadoプロジェクトは基本的に再構築が必要。FudanMicroは「7シリーズ互換+類似フロー」路線なので、プロジェクトのより多くを再利用できる。以下のステップは汎用的で両者に適用される。
ステップ1:Vivadoプロジェクトを分割する。丸ごと移動しない
Vivadoの`.xpr`プロジェクトファイルは国産ツールチェーンで開けない。正しいアプローチは、プロジェクトを「再組み立て可能な部品」に分割すること:
1. RTLソース:`.v`/`.vhd`ファイルはプレーンテキストであり、そのまま再利用可能(Xilinx専用プリミティブに依存していない限り)。
2. 制約ファイル:`.xdc`の構文の多くは読めるが、ピン配置とクロック定義は新デバイス向けに書き直す必要がある。
3. IPコア:XilinxのFIFO/BRAM/PCIe/DDR IPは直接使えない。国産ベンダーの対応IPをインスタンシエーションする。
4. シミュレーションとテスト:`tb`ベンチは再利用できるが、シミュレーションに使うIPライブラリのパスは変更が必要。
必要な工数
3〜5人のFPGAチームが、プロジェクト分割と国産ツールチェーンでの骨組み再構築に3〜5営業日を要するのが一般的。実際のコストはここではなく、後述の制約とIPにある。
ステップ2:制約ファイルが最初の落とし穴
`.xdc`の構文はVivadoと非常に近いが、細部が異なり最も罠が多い:
- ピン配置:BGAのBall Mapが異なるため、`set_property PACKAGE_PIN`を新デバイスに対してやり直す必要がある。PangoはPDSの`PACE`ピンツールを使う。FudanMicroも同様のフロー。
- クロック制約:`create_clock`/`create_generated_clock`の構文は互換だが、クロックソースのリソース名(水晶発振器、MMCM/PLL)は変更が必要。
- IO規格:LVDS、LVCMOS、バンク電圧の設定は新デバイスのデータシートに合わせてやり直す。
実践的なヒント:まずPDSで`PACE`を使って初回のピン配置を行い、制約をエクスポートする。手書きで`.xdc`を書くよりはるかに確実で、修正ラウンドを数回節約できる。
ステップ3:IP再インスタンシエーション・チェックリスト(コストの核心)
移行コストの最大部分。IPの種類によって工数が大きく異なる:
| IPタイプ | Vivadoネイティブ | 国産代替 | 工数 |
|---|---|---|---|
| DDRコントローラ | MIG (DDR3/DDR4) | 国産DDR PHY + コントローラ | 高:タイミング、キャリブレーション、トレーニングフローが異なる |
| PCIeハードコア | Integrated Block for PCIe | 国産PCIe PHY + 列挙 | 中:パラメータ再調整、ロジックは再利用可能 |
| 高速トランシーバ | GTX / GTH / HSST | 国産トランシーバPHY | 高:リファレンスクロック、プリエンファシス、イコライザを再調整 |
| FIFO / BRAM / DSP | Generator IP | 国産ベンダーIP | 低:再生成、ロジック再利用可能 |
| PLL / MMCM | Clocking Wizard | 国産クロックIP | 低:パラメータ再入力 |
高速インターフェースIP(DDR、PCIe、SerDes)は「パラメータを変えて終わり」ではなく、ボードレベルの信号完全性を伴う。PCBはXilinxリファレンスデザインに合わせてルーティングされており、国産PHYに切り替えた後はアイダイアグラムの再測定、イコライザの再調整、リンクトレーニングの再実行が必要。これが通常、移行において最も制御困難な部分であり、少なくとも2〜4週間を見込む必要がある。
ステップ4:タイミングクローズと反復
国産FPGAは同クラスでもXilinxよりタイミングマージンが厳しいのが一般的。100MHzで20%のマージンがあった設計でも、移行後は5〜10%になることがある。対応:
1. 国産ツールチェーンで再合成・配置配線を行い、タイミングレポート(PDSの`Report Timing`、FudanMicro相当)を読む。
2. クリティカルパスを特定し、RTLを最適化するかパイプライン段を追加する。
3. タイミングがクローズするまで合成を反復する。
これは通常1〜2週間を要し、設計の複雑さと元のタイミングマージンに依存する。
着地チェックリストと典型的なスケジュール
「Vivado → 国産ツールチェーン」移行を上記4ステップで連鎖させると、典型的には以下のようになる:
| ステップ | 内容 | 標準期間 |
|---|---|---|
| プロジェクト分割 | RTL再利用、骨組み再構築 | 3〜5日 |
| 制約の書き直し | ピン/クロック/IO規格のやり直し | 3〜5日 |
| IP再インスタンシエーション | DDR/PCIe/トランシーバが支配的 | 2〜4週間 |
| タイミングクローズ | 合成+配置配線+反復 | 1〜2週間 |
| ボード検証 | ブリングアップ、アイダイアグラム、リンク回帰 | 2〜4週間 |
中程度の複雑さのプロジェクトで合計1〜2か月、コストはIP再インスタンシエーションとタイミングクローズに集中する。
ボード選定のアドバイス:国産ボード群の構成
移行用のボードを選ぶ際は、まず対象がどのチップラインかを確認し、対応するボードを選ぶ:
- FudanMicro JFM7VX690T (DUF7690T):Virtex-7クラスのリソース、7シリーズとピン互換パッケージ。Xilinx 7シリーズからのピンツーピン移行向け、工業温度対応。
- Pango Titan3 (PG3T500):新アーキテクチャのハイエンドプラットフォーム。大リソースが必要でPDSフローを実行する設計向け。
- Pango Kosmo-2 (PG2K400):ARM+FPGAヘテロジニアス。ZYNQ/MPSoCスタイルの設計を国産SoCへ移行する向け。
国産ツールチェーン移行の真の障壁は、RTLが移せるかどうかではなく、制約、IP、タイミングをすべてやり直す必要があることだ。まずプロジェクトを分割し、制約を書き直し、IPとタイミングクローズに注力し、「1〜2か月、IPが大きな項目」としてスケジュールと予算を計画すれば、移行は途中で頓挫せず計画通りに着地する。
さらに読む
- [国产化移行の実コスト:TCOフレームワーク](/article/china-fpga-migration-tco-cost-framework/)
- [国産ZYNQ代替の実践:XC7Z020からPBC7Z020G/021Gへ](/article/zynq-china-replacement-pbc7z020-practical/)
- [FPGAの選び方:リソース・トランシーバ・価格の意思決定マトリクス](/article/fpga-selection-decision-matrix/)
