メニュー
    製品・サービス

    FPGA / Zynq SoC とは? 組み込み開発で選ばれる理由を解説

    FPGA / Zynq SoC とは? 組み込み開発で選ばれる理由を解説

    組み込み機器の開発では、CPU 上でソフトウェアを動かすだけでなく、センサー入力、画像処理、モーター制御、通信インターフェースなどを決められたタイミングで扱う必要があります。

    このような処理では、CPU だけで構成するよりも、FPGA や Zynq SoC を組み合わせた方が適している場合があります。特に、低遅延の画像処理、リアルタイム制御、多様なインターフェースの統合が求められる装置では、FPGA の特性が活きます。

    本記事では、FPGA / Zynq SoC とは何か、組み込み開発で選ばれる理由、導入時に検討すべきポイントを、発注者・企画担当者の方向けに整理します。

    この記事で分かること

    • FPGA と CPU の基本的な違い
    • 組み込み開発で FPGA が選ばれる理由
    • Zynq SoC で FPGA と Arm プロセッサを組み合わせる考え方
    • FPGA を採用する前に検討すべきポイント

    FPGA とは何か

    FPGA は、用途に合わせて内部の論理回路を構成できるデバイスです。

    一度作った回路構成を固定する専用 IC とは異なり、設計に応じて回路構成を書き換えられる点も特徴です。製品仕様によっては、出荷後の機能更新に FPGA の再構成を活用する場合もあります。

    CPU は命令を順番に実行するのに対し、FPGA は必要な処理をハードウェア回路として構成し、複数の処理を並列に動かせます。そのため、入力信号を受けてすぐに出力を変える処理や、一定周期で繰り返す制御、画像データのように大量のデータを連続して扱う処理に向いています。

    FPGA は CPU の代わりに使うものではありません。CPU だけでは扱いにくい処理を FPGA 側に分担させ、システム全体として必要な応答性や安定性を実現するための選択肢です。

    CPU と FPGA の違い

    CPU と FPGA の違いを整理すると、次のようになります。

    項目 CPU FPGA
    処理方式 順次実行 並列処理
    柔軟性 高い 回路設計が必要
    リアルタイム性 OS や他タスクの影響を受ける場合がある 安定しやすい
    得意分野 UI、通信、ログ、アプリケーション処理 信号処理、画像処理、制御、タイミング処理

    FPGA が選ばれる主な理由

    リアルタイム性を確保しやすい

    産業機器や制御装置では、入力に対して一定時間内に出力することが求められます。

    CPU で動くソフトウェアは柔軟ですが、OS の処理や他タスクの影響を受ける場合があります。一方、FPGA は処理を専用回路として構成できるため、入力から出力までの遅延を小さく、一定にしやすい特徴があります。

    たとえば、カメラから入った映像をフレーム単位で処理し、表示や外部出力へすぐに渡す用途では、処理の遅れが操作感や判定タイミングに影響します。

    映像入力、前処理、判定、出力を FPGA 側でパイプライン化すると、各段の処理を並行して進められるため、低遅延の構成を取りやすくなります。

    センサー入力の監視、PWM 生成、タイミング制御、安全停止に関わる信号処理などでも、この特性が重要になります。

    並列処理に向いている

    FPGA は、複数の処理を同時に動かせます。

    画像処理であれば、画素データの取り込み、前処理、判定、出力をパイプライン化できます。制御装置であれば、複数の入力信号を監視しながら、通信や出力制御を並行して扱えます。

    CPU と、処理を並列に構成できる FPGA では、得意な領域が異なります。大量のデータを一定周期で処理する用途では、FPGA の並列性が有効です。

    専用インターフェースに対応しやすい

    組み込み機器では、標準的な Ethernet や USB だけでなく、装置固有の信号、既存設備との接続、タイミング制約のある入出力を扱うことがあります。

    FPGA は、用途に合わせた I/F 回路を構成しやすいため、汎用 CPU や一般的なマイコンだけでは対応しにくい信号処理にも使われます。

    既存設備との接続条件を満たしながら、新しい制御機能や通信機能を組み込む場面でも、FPGA が選択肢になります。

    長期運用を見据えた構成を取りやすい

    産業用の組み込み機器は、短期間で入れ替える消費者向け製品とは異なり、長く使われることが多くあります。

    FPGA を使う場合、用途に合わせた回路構成を設計し、必要な機能を装置側に持たせることができます。長期運用を前提に、処理の役割分担や将来の仕様変更を検討しやすい点も、組み込み機器で採用される理由の一つです。

    Zynq SoC が有効になるケース

    Zynq SoC は、FPGA 部分(PL: Programmable Logic)と Arm プロセッサ部分(PS: Processing System)を組み合わせたデバイスです。

    AMD/Xilinx の Zynq SoC では、FPGA 側がリアルタイム性の必要な処理や並列処理を担当し、Arm プロセッサ側が通信、UI、ログ管理、アプリケーション処理などを担当できます。Arm 側では、組み込み Linux やベアメタルソフトウェアを用途に応じて使い分けます。

    この構成により、次のような役割分担ができます。

    領域 主な役割
    FPGA 部分(PL) 低遅延処理、信号処理、画像処理、タイミング制御、専用 I/F
    Arm プロセッサ部分(PS) 通信、設定管理、ログ、UI、上位アプリケーション、外部システム連携

    重要なのは、FPGA とソフトウェアを別々に考えないことです。どの処理を FPGA 側に置き、どの処理をソフトウェア側に置くかを、開発初期からシステム全体で検討する必要があります。

    組み込み開発での活用例

    FPGA / Zynq SoC は、次のような用途で活用されます。

    • 低遅延の映像処理 — 映像入力から表示・出力までの遅延を抑えたい装置
    • 産業用画像処理 — カメラ入力をもとに、一定周期で判定や出力を行う装置
    • モーション制御 — 複数の信号を監視しながら、タイミング精度が必要な制御を行う装置
    • 入退室管理・設備制御 — センサー、通信、表示、ログなどを組み合わせるコントローラ
    • パワーデバイス制御用コントローラ — 高速な制御信号、保護動作、通信 I/F を組み合わせる産業機器

    当社でも、AMD/Xilinx FPGA や Zynq SoC を用いたロジック設計、組み込みソフトウェア開発、回路設計・基板開発を組み合わせた開発に対応しています。

    FPGA を採用する前に検討すべきこと

    FPGA は有効な選択肢ですが、すべての組み込み機器に必要なわけではありません。

    FPGA は高度な技術ですが、装置全体を FPGA で構成する必要はありません。必要な処理だけを FPGA 側へ分担し、通信や UI、ログ管理などは CPU 側のソフトウェアで扱う構成も一般的です。

    処理内容によっては、マイコンや Arm ベースの SBC、産業用 PC の方が適している場合もあります。FPGA を採用するかどうかは、次の観点から検討します。

    • 必要な応答時間や遅延の許容範囲
    • 並列処理の必要性
    • 入出力インターフェースの種類とタイミング制約
    • ソフトウェアで処理する場合の負荷
    • 開発期間、量産数、保守性
    • 将来の仕様変更や機能追加の見込み

    大切なのは、デバイス単体で判断しないことです。CPU、FPGA、回路、基板開発、ソフトウェアを含めて、システム全体の役割分担を決める必要があります。

    FPGA は高価で難しいのか

    FPGA はマイコンや汎用 CPU よりも設計の専門性が高く、HDL によるロジック設計や周辺回路との整合が求められます。そのため、単純な制御や小規模な処理であれば、FPGA を使わない構成の方が適している場合もあります。

    一方で、低遅延処理や複数 I/F の同時制御が必要な場合は、ソフトウェアだけで無理に処理するよりも、FPGA に必要な処理を分担させた方がシステム全体を整理しやすくなることがあります。

    また、保守面では、HDL、組み込みソフトウェア、回路図、設定データ、更新手順をひとつのシステムとして管理することが重要です。どの機能を FPGA 側で処理しているのかを明確にしておけば、仕様変更や不具合対応の際にも切り分けしやすくなります。

    FPGA の採用可否は、デバイス価格だけでなく、開発期間、保守性、量産時の安定性を含めて検討する必要があります。

    ハードウェアとソフトウェアを一体で考える

    FPGA / Zynq SoC を使う開発では、ロジック設計だけでなく、回路設計、基板開発、組み込みソフトウェア、通信仕様、量産時の検査方法まで関係します。

    たとえば、リアルタイム処理を FPGA 側に置くとしても、その処理結果をどのようにソフトウェアへ渡すか、設定値をどこで管理するか、異常時にどの層で停止させるのかも含めて設計していく必要があります。

    そのため、FPGA を含む組み込み機器では、ハードウェアとソフトウェアを分けて発注するよりも、システム全体を見ながら開発を進める体制を整えることが求められます。

    ハードウェア・ソフトウェア協調設計とは? 分業体制の課題と一体開発のメリット/blog/soft-hard-cooperative-design/

    まとめ

    FPGA / Zynq SoC は、リアルタイム性、並列処理、多様なインターフェース統合が求められる組み込み機器で有効な選択肢です。

    一方で、FPGA は単体で採用を決めるものではありません。CPU やソフトウェアとの役割分担、回路設計・基板開発との整合性、量産や保守までを含めて検討する必要があります。

    FPGA を含む組み込み機器では、ハードウェアとソフトウェアを分けず、システム全体として設計する考え方が重要になります。

    サービス紹介ページ/service/
    開発実績ページ/works/
    お問い合わせ/contact/
    Contact

    お気軽にご相談ください

    お電話でのお問い合わせ

    072-853-3553

    平日 10:00〜17:30