更新日
eFPGA(組み込みFPGA)は、製造後に回路の働きを変えられる部分を、ASICやSoCの内部に組み込んだものです。たとえば通信チップにeFPGAを組み込み、設定を更新できるように設計しておけば、出荷後もパケットの分類ルールやデータ処理を変更できます。

eFPGAと単体FPGAの違い
FPGAは、用途に合わせてデジタル回路を設定できる半導体です。単体FPGAは基板に載せる独立した部品で、eFPGAはその仕組みを別のチップの中で使うための設計ブロックです。ASICは特定の用途向けに設計した集積回路、SoCはCPUやメモリー制御など、システムに必要な機能を1つのチップにまとめたものです。
| 比較する点 | 単体FPGA | eFPGA |
|---|---|---|
| どこにあるか | 基板に載せる独立したチップ | ASICやSoCの中に入る回路ブロック |
| 回路の規模 | 必要な論理回路や入出力を備えた製品を選ぶ | チップの設計段階で用途に合わせて規模を決める |
| ほかの回路との接続 | 端子や基板上の配線を使って別のチップと通信する | チップ内のバスや信号線を使って接続する |
| 向いている用途 | 基板の試作や、独立した処理部品を追加する設計 | チップの一部に出荷後も変更できる処理を残す設計 |
回路の試作や開発ボードでの実験については、ITIGICの初心者向けFPGAガイド(英語)も参考になります。
eFPGAの基本構造と信号の流れ
基本形は、小さな論理ブロックを並べ、その間を設定可能な配線でつなぐ構造です。論理ブロックには、入力の組み合わせごとに出力を決めるLUT(ルックアップテーブル)や、途中の値を保持するレジスターがあります。用途に応じてメモリーや演算専用ブロックを備える製品もあります。
- コネクションボックス(CB)は、論理ブロックの入出力と近くの配線を結びます。
- スイッチボックス(SB)は、配線どうしをつなぎ、信号が次に通る経路を選びます。
たとえば論理ブロックAの出力をBに届けるとき、信号はA側のCBから配線へ出ます。途中でSBを通って必要な配線に移り、B側のCBからBに入ります。この経路と各LUTの働きを決める設定データがビットストリームです。構造の詳しい例はFPGA設計フレームワークPRGAの論文(英語、PDF)にあります。
出荷後に何を変えられる?
たとえばネットワーク機器で、受信データの特定の項目を検査する処理をeFPGAに持たせます。新しい形式に対応する場合は、その処理の回路を設計し直して、対象チップ用のビットストリームを作ります。製品が更新に対応していれば、検証済みの設定を読み込んで処理を切り替えられます。
通信の処理を変更するには、端子や電気信号を扱う物理回路(PHY)が必要な規格と速度に対応していることが条件です。組み込んだ論理ブロックの数、メモリー容量、配線、信号が届くまでの時間にも設計上の上限があります。設定の作成と検証の流れはAchronixのSpeedcore eFPGA技術資料(英語)で確認できます。
どんな製品に使われる?
通信機器では、規格や顧客の要件が変わりやすい処理に向いています。2021年には、ソシオネクストが5G基地局向けに開発するASICでEFLX 4Kを使うためのライセンス契約を、IP供給元のFlex Logixが発表しました。Flex Logixの発表(英語)
チップ内でデータを受け渡す設計では、外付けFPGAとの通信に使う基板上の配線や部品を減らせる場合があります。一方、書き換えに必要なスイッチや設定用メモリーには面積と電力がかかります。製品設計では、将来変わりそうな処理と、速度や電力を優先する処理を見極めて、書き換え可能な範囲を決めます。
よくある質問
eFPGAの「e」は何の略?
embedded(組み込み)の略です。eFPGA IPと呼ぶ場合のIPは、チップに組み込んで使える回路設計ブロックを指します。
スイッチボックスとコネクションボックスはどう違う?
スイッチボックスは配線と配線を、コネクションボックスは論理ブロックと配線をつなぎます。どちらもビットストリームの設定に従って信号の経路を作ります。
eFPGAとSoC FPGAは同じもの?
「eFPGA IP」は、独自のASICやSoCに組み込むための回路設計ブロックを指します。「SoC FPGA」は、CPUとFPGA領域を同じチップにまとめた製品によく使われます。MicrochipのSoC FPGA解説(英語)
出荷後に利用者が自由に書き換えられる?
更新できる範囲と方法は製品ごとに決まります。メーカーが公開する更新機能や開発ツールがあれば、その手順と対象チップ用のビットストリームを使います。