非mmuバージョンのLinuxを実行できる教科書32ビットRISCプロセッサコアは、実際にはそれほど大きくする必要はありません。必要な実際のリソースは、FPGAで利用可能なものよりもはるかに多くのRAM(数十メガバイト)であるため、おそらくボードにはSDRAMが必要で、FPGAにはそのためのコントローラーが必要です。
そうは言っても、ささいなレベルのパフォーマンス以上のものが必要な場合は、おそらくいくつかの最適化(パイプライン処理など)を備えたコアが必要であり、サイズが多少増加し始めます。完全なmmuを追加すると、メモリの(再)割り当てがより効率的になり、通常のcopy-on-write fork()動作が有効になります。
両方の主要なFPGAベンダーは、利用可能なLinuxポートを備えたソフトプロセッサコアを持っています-ザイリンクスのMicroblaze、アルテラのNios II。もちろん、時間とともに変化するターゲットであるため、特定のプラットフォームに関する推奨事項については、おそらくそれらのドキュメントをお読みください。サードパーティのコアデザインは、特定のFPGAファミリ向けに特に最適化されていない、より移植性の高い方法で記述されている場合、同様のパフォーマンスを得るために多少大きくなる可能性があります。
これまで、ハードプロセッサコア(多くの場合、powerpc)と構成可能なFPGAファブリックの領域の両方を組み合わせたチップが利用可能でした。もう1つの注目すべきオプションは、FPGAと同じボード上の別のプロセッサ(ARMなど)です。
決定の多くは、プロセッサとFPGAをどの程度緊密に結合する必要があるかに依存します。問題を構成レジスタとデータのストリームに減らすことができる場合、BeagleBoardやRasberryPiなどの組み込みLinuxボードのUSBホストポートから高速USBチップを備えたFPGAボードを吊るすのと同じくらいモジュール式にすることができます。より緊密な統合を行うには、同じボードにFPGAを置き、プロセッサの外部バス上に配置する必要があります。または、データレートが低い場合は、SPIレジスタインターフェイスをFPGAに配置するのは簡単です。UARTインターフェイスは少し複雑ですが、完全に実行可能です。
最後に、実際にLinuxなどの完全なオペレーティングシステムが必要なのか、それともより「マイクロコントローラーサイズ」の埋め込みTCPスタックが少ないメモリで問題を解決できるのかという問題があります。