FPGA受託開発のフローは?メリットやデメリットも紹介します

FPGAの開発の依頼を考えているものの、FPGA自体や開発フローがわからないため依頼に二の足を踏んでいる方もいるかと思います。そこで本記事では、FPGA開発のフローやメリット、デメリットについて解説します。FPGAとは何なのか、多用されている分野などもお伝えしますのでご覧ください。

なお、FPGA開発に対応しているシステム開発会社の探し方・選び方がわからない!という方はシステム幹事にお気軽にご相談ください。貴社の目的・予算にあった最適な会社を厳選してご紹介します。相談料・会社紹介料などは無料です。

【無料】FPGA開発に対応しているシステム開発会社を紹介してもらう

目次
  1. 1. FPGAとは?
    1. 1-1. FPGA開発が使用されている分野
  2. 2. FPGAのメリット
    1. 2-1. 汎用性が高くプログラムを書き換えやすい
    2. 2-2. 実行時間を想定しやすい
    3. 2-3. 集積回路としての精度が高い
  3. 3. FPGAのデメリット
    1. 3-1. プログラミング難易度が高い
    2. 3-2. コストが高い
  4. 4. FPGA受託開発のフロー
    1. 4-1. (1)FPGAの仕様を決める
    2. 4-2. (2)論理回路を設計する
    3. 4-3. (3)機能を検証する
    4. 4-4. (4)コンパイルを行う
    5. 4-5. (5)タイミング制約・検証を行う
    6. 4-6. (6)データをダウンロードして動作検証を行う
  5. 5. 【まとめ】FPGA受託開発の概要やフローを紹介しました

FPGAとは?

FPGAとは「Field Programmable Gate Array」の頭文字を取った製品で、直訳すると「現場で構成できる回路配列」を意味します。何度でも書き換えられる「集積回路(IC)」として知られており、一度設計された後でも機能の変更や追加が可能です。

FPGA開発では、機能を持たない配列に対して内部の回路構成を書き換えることで、さまざまな機能をカスタマイズできるようになります。FPGAを生産している主要企業としては、ザイリンクスやインテル、クイックロジックなどが挙げられます。

FPGA開発が使用されている分野

FPGA開発は、主に電子機器開発の現場で行われます。通信から乗り物、PCやスマートフォンなどの民生機器、医療機器までさまざまです。プログラムした機能を電子機器に載せて検証を行います。ASIC開発(半導体の集積回路)と比べて開発スピードが速いため、修正やチューンナップも容易です。

【無料】FPGA受託開発に対応しているシステム開発会社を紹介してもらう

FPGAのメリット

FPGAのメリット

続いて、FPGAのメリットをご紹介します。

汎用性が高くプログラムを書き換えやすい

FPGAの代表的なメリットとして挙げられるのが、汎用性の高さです。プログラムの書き換えによって機能を自由に変更できるため、さまざまな電子機器に対して使用できます。FPGAを基盤に搭載した後もプログラムの書き換えが可能です。

実行時間を想定しやすい

FPGAでは、データの特定部分を隠したり、無効化したりする「マスク処理」が必要ありません。そのため処理速度も安定しており、実行時間を想定しやすいのが特徴です。実行中の処理が中断される割り込みの心配もないことから、開発自体のスケジューリングをしやすいメリットがあります。

集積回路としての精度が高い

FPGAはコストがかかるため出荷量は少ないものの、集積回路としての精度は非常に高いです。画像や音声、振動などのデータ処理時の遅延が少なく、演算性能に優れています。産業用ロボットや高性能通信ソリューション、情報保護など高精度の求められる分野で活用されています。

FPGAのデメリット

FPGAのデメリット

一方でFPGAには以下のようなデメリットもあるので注意が必要です。

プログラミング難易度が高い

FPGAのプログラミングには、ハードウェア記述言語(VHDLやVerilogなど)が必要です。ハードウェア記述言語はFPGAやASICに用いられる特別な言語であり、難易度も高くなります。ハードウェア記述言語を扱える人材も多くはないため、FPGA開発を依頼する際は確認しておく必要があるでしょう。

コストが高い

FPGAは集積回路としての精度は高いものの、コストがかかります。データの処理や演算に用いられるCPUやSoCが1つあたり数百円程度なのに対し、FPGAは数万円以上することが多いです。スマートフォンをはじめとする民生機器が普及したことで、昔と比べて価格差は小さくなっていますが、FPGA開発を行うにあたってコストは無視できないでしょう。

【無料】FPGA受託開発に対応しているシステム開発会社を紹介してもらう

FPGA受託開発のフロー

FPGA受託開発のフロー

FPGAの受託開発は、次のようなフローで進めます。

(1)FPGAの仕様を決める

まずは、FPGAの仕様を決めます。具体的には、実装したい機能や回路、他の部品との組み合わせ、回路の動作タイミング制御などです。仕様をまとめ、仕様に見合ったFPGAを設計します。

(2)論理回路を設計する

続いて、FPGAの論理回路を設計します。このプロセスは「デザインエントリ」とも呼ばれ、ハードウェア記述言語を使って進められます。

(3)機能を検証する

設計を終えたら、ファンクションシミュレーションと呼ばれる機能検証を行います。ここでは、設計回路が意図したように動くかどうかを確認し、意図と異なれば回路記述を修正、正しい動作であれば次に進みます。

(4)コンパイルを行う

コンパイルとは、記述したプログラムをコンピュータが読み取れる形式に変換することです。FPGAにおけるコンパイルでは、ハードウェア記述から論理式を生成する、実際に回路を配置して配線を決める、などのプロセスを踏みます。

(5)タイミング制約・検証を行う

タイミング制約とは、クロック(信号)によって動作タイミングを制御することを指します。ツールに対する時間的な要求を満たせるよう、タイミング制約によって回路構成を最適化します。また、回路の配置や配線をもとに遅延時間をシミュレーションし、タイミングに問題がないか検証を進めます。

(6)データをダウンロードして動作検証を行う

FPGAに生成した回路データをダウンロードし、動作検証を行います。ここでは実際にFPGAを動かして、機能に不具合がないかをチェック。動作検証のやり方として、回路を確認できる「評価ボード」を使う方法や、システムにFPGAを搭載して検証する実機検証の方法があります。

【まとめ】FPGA受託開発の概要やフローを紹介しました

FPGAはCPUやSoCと比べて精度が高いですが、プログラミング難易度やコストのかかる集積回路といえます。開発を依頼する際は、そもそもFPGA開発に対応しているか、ハードウェア記述言語のできる人材がいるかどうかなどを確認しましょう。

なお、FPGA開発に対応しているシステム開発会社の探し方・選び方がわからない!という方はシステム幹事にお気軽にご相談ください。貴社の目的・予算にあった最適な会社を厳選してご紹介します。相談料・会社紹介料などは無料です。

【無料】FPGA開発に対応しているシステム開発会社を紹介してもらう