FPGA vs マイコン:プロジェクトに最適なプログラマブルデバイス選定ガイド
根本的な違い
| 項目 | マイクロコントローラ (MCU) | FPGA |
|---|---|---|
| アーキテクチャ | ハーバード(命令/データメモリ分離)、固定ハードウェア | ルックアップテーブル(LUT)・FF・配線リソースの海、ハードウェア再構成可能 |
| プログラミング | C/C++/Rust(ソフトウェア) | VHDL/Verilog/SystemVerilog(ハードウェア記述) |
| 実行モデル | 逐次実行(パイプライン・スーパースカラで並列化限定的) | 真の並列処理(全ロジック同時動作) |
| 周辺機能 | オンチップ内蔵(UART/SPI/I²C/ADC/PWM/タイマー/USB/Ethernet等) | 原則外付け(ソフトIPコアで内部実装可、リソース消費大) |
| 開発難易度 | 低〜中(IDE充実、ライブラリ豊富) | 高(合成・配置配線・タイミング収束・シミュレーション必須) |
| 消費電力 | 低(µAスリープ、数mA動作)、省電力モード充実 | 高(未使用ロジックも漏れ電流、高速動作時大) |
| コスト | 安(数十円〜数百円) | 高(数百円〜数万円、大容量品) |
| 向く用途 | 制御・通信・UI・プロトコルスタック・エッジAI推論 | 高速信号処理・プロトコル変換・カスタムインターフェース・超低レイテンシ制御・ASIC前検証 |
マイクロプロセッサ(MPU)との違いも整理
- MPU:外部メモリ必須、MMU搭載でOS(Linux/Android)動作、GHzオーダー、高消費電力、汎用コンピューティング向け
- MCU:内蔵メモリ/ペリフェラルで完結、ベアメタル/RTOS、MHz〜数百MHz、組み込み制御向け
選定フローチャート
- **並列・高速・決定論的タイミング**が必須? → Yes: FPGA検討
- **標準ペリフェラル・ソフトウェア主体・低消費電力・低コスト**? → Yes: MCU採用
- **両方必要**? → **SoC FPGA (Xilinx Zynq / Intel Cyclone V SoC / Microchip PolarFire SoC)** または **MCU + 小型FPGA/CPLD** のハイブリッド構成
- 量産見込み大・仕様固定? → ASIC検討(FPGAでプロトタイピング→ASIC移行)
電力効率の現実
- FPGAはASIC比10〜100倍の電力/面積オーバーヘッド
- 未使用ロジックもスタティック電流消費→パワーゲーティング・クロックゲーティング設計必須
- ハイブリッド構成で「制御=MCU、データプレーン=FPGA」分担がベストプラクティス化
結論
「安く・早く・省電力」ならMCU。「並列・高速・ハードウェアレベルカスタマイズ」ならFPGA。現代の複雑システムでは**両方併用**が正解になるケース増加中。要件定義の段階でアーキテクチャ選択を誤らないことが肝要。
産業技術
- ValentFX が BeagleBone と Raspberry Pi 向けオープンソース FPGA アドオンを発表
- 電気回路図における配線接続規約:明確なガイド
- 電子工学における数値と記号の解読
- マイクロプロセッサプログラミングの基礎
- 交流回路における抵抗器、インダクタ、コンデンサの包括的まとめ
- FPGAとマイクロコントローラの主な違いを徹底解説
- PCBのマイクロクラック(メズリング)と剥離:原因、予防、品質管理
- IoT向けPCB設計の完全ガイド:フレックス基板とHDI基板の活用
- インダストリー4.0:メリット、リスク、導入の課題
- SCADAシステムとインダストリー4.0:リモートプロセス制御に革命をもたらす
- ホーニングとラッピングの違い:精密金属仕上げの要点