FPGA設計

FPGA設計 とは?

FPGA(Field-Programmable Gate Array)とは、プログラムによって機能を自由に変更できる集積回路です。 マスク工程が不要なため、他のICに比べて設計期間や開発コストを抑えられます。また、製造後や基板実装後、さらには最終製品出荷後でもプログラムを書き換えられるため、非常にフレキシブルで汎用性の高いICとして知られています。 1枚のFPGA評価ボードにさまざまなペリフェラルなどの周辺機器が搭載されていれば、内部の論理回路を切り替えるだけで多用途に対応可能です。こうした柔軟性と高性能から、画像処理・ディープラーニング・通信機器など多彩な分野で採用が進んでいます。

FPGA・CPU・ASICの違い

FPGAは並列処理に強く、後から仕様変更が可能な点が大きなメリットです。一方、CPUは汎用性を重視しており、消費電力や並列処理性能ではFPGAに劣る場合があります。ASICは特定用途に合わせて最適化されるため、消費電力やチップ単価を低減しやすい反面、一度開発した後の修正が困難です。 下記は主な要素を比較したマトリックスです(◎=優れた特性、○=やや優位、△=やや劣位):

項目 FPGA CPU ASIC
価格
開発費
消費電力
熱対策
ゲート規模
メモリ容量
速度
設計方法
仕様変更
製造TAT
インスタントオン
小型外形
  • FPGAは、ハードウェア記述言語(VerilogやVHDLなど)で回路構成を定義可能。並列処理が得意で、後から仕様変更しやすいため、試行錯誤を繰り返すディープラーニングや大規模データ処理に強みがあります。
  • CPUは、汎用性に特化した回路で、様々なタスクをこなせる集積回路です。メモリ内に実行プログラムを入れて自由に計算できます。製造時点でどんな作業をさせられるかわからない場合に使えますが、消費電力が高く、並列計算には弱いです。
  • ASICは、特定の機器や用途のために最適化された集積回路です。 回路を最適化できるため、チップ単価や消費電力が低くなります。 開発費がかかり、一度開発すると修正もできませんが、大量生産で小型化する場合に向いています。

FPGA設計のポイント

FPGA設計の大きなメリットは2つ。「従来の回路構成では処理が追いつかない高度な演算や高速処理」「推論・画像処理・制御制御など、多様なニーズに応じて現場で柔軟に設計を変更」できることです。

FPGA設計フロー

FPGA設計フローは以下のような工程からなります。

  1. 回路設計(デザインエントリ)
    HDL(Verilog/VHDL)や回路図エディタを用いて、実現したい機能を定義します。
  2. 論理シミュレーション
    設計した回路が仕様どおりに動作するか、シミュレータを用いて検証します。
  3. 制約の設定
    タイミング制約やピン配置など、動作条件を指定します。
  4. 配置配線
    開発ツールがロジックブロックの配置や配線を自動的に行います。
  5. タイミング解析
    配置配線後の設計が制約を満たしているか確認し、最適化します。
  6. コンフィギュレーションデータ生成
    最終的な回路情報からビットストリームを生成します。
  7. コンフィギュレーション
    生成したデータをFPGAに書き込み、実機へ適用します。
  8. 実機動作検証
    評価ボードや実際の基板上で動作をテストし、問題がないか確認します。

ディー・クルー・テクノロジーズのFPGA設計の特長

当社では、豊富なFPGA設計開発の経験を持つエンジニアチームが下記のサービスを提供しています。

  • EOLなどで改版を希望する回路基板のフィジビリティスタディ
  • FPGAへのIPポーティング、およびFPGA向け新規IPコア開発
  • FPGA評価ボードの開発支援
  • FPGAからASICへの移行開発

FPGA設計による課題解決例

●事例1 FPGAによる大規模演算の開発事例

課題

ある案件にて大規模な演算を高速で行いたいという課題がありました。単純な演算であれば通常GPU を使用して高速化を図るのが一般的であるものの、このケースでは演算器が多数必要な複雑な演算であり、GPUには向かないものでした。

解決策

当社ではその演算の高速化をFPGA を使って実現しました。PCI Expressカード上のFPGAに、演算ブロックを実装した結果、FPGAと従来のGPUとの演算時間を比較したところ、約14~15倍程度の向上がみられました。
またFPGAには、大規模演算に必要な要素ブロックであるAPI、演算器、PCIe、制御、Clockがすでに開発済みであるため、今後の開発は短期間で行うことが可能です。

●事例2 レーザープリンタ向けデータ転送基板の開発事例

課題

ある企業のレーザープリンタ開発において、印刷データを高速伝送し印紙にずれなく高速印刷したいが、印刷データと印紙ローラー、プリンタヘッドの同期制御を行う技術が弱く、仕様の明確化が困難で開発を実施できていませんでした。そこで基板、デジタル設計、ファームウェア設計技術を持つエンジニアに相談したいと考えていました。

解決策

当社では、印刷ライン制御用PCからの印刷データをリアルタイムに制御。現場で微調整を行いながら、印刷機械の紙送り装置とプリンタヘッドのレーザー発射タイミングを同期させ、超高速印刷を実現しました。
このプリンタヘッド内の制御基板とコントローラー内の印字画像データ転送基板、印刷ライン制御用PC内のPCI基板に、FPGAを用いています。

●事例3 反応拡散モデルのシミュレーション演算高速化の事例

課題

ある研究機関で実施している、反応拡散モデルのシミュレーション(化学反応や物質の拡散過程を表現したモデルに基づくシミュレーション)は現在Pythonで実施している。しかし現行技法では計算を終えるまでに1時間39分の時間がかかっていました。

解決策

弊社のFPGA演算高速化ソリューション「Nプログラム」を用いて演算を実施。従来の1時間39分➡9分と計算速度を約11分の1、約90%高速化しました。

FPGA設計のご相談はディー・クルー・テクノロジーズへ

FPGA設計開発のアウトソーシングはディー・クルー・テクノロジーズにお任せください。
これまで培った技術を集約し、貴社の課題解決に貢献します。

お問い合わせはこちら