FPGA上の組み込みLinux


10

FPGAの使用経験は非常に限られています(Altera-ビジュアルデザインツールのみを使用)。

FPGAが必要な新しいプロジェクトを計画しています。同じボードで実行されている実際のLinux(主にTCP通信と一部のDSP)から多くの恩恵を受けることができます。

私の質問は、サポートされている組み込みLinuxが用意されている推奨FPGAはありますか?派手なドライバーはありません(ただのイーサネット、wifiはプラスかもしれません...)。私は、FPGAに組み込まれたマイクロコントローラーがあると想像します(これは、FPGAを大量に消費し、より大きなFPGAが必要になることを意味します)。

回答:


15

非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スタックが少ないメモリで問題を解決できるのかという問題があります。


6

ザイリンクスのMicroblazeはLinuxを問題なく実行しますが、目的に対して十分高速であると仮定します-安価なデバイスでは数10 MIPSしか実行せず、高価なファミリーでは100〜200 MIPSです。

ザイリンクスにはgit repoがあるか、いくつかのザイリンクス固有のディストリビューションがあります。FPGAの柔軟性は、メモリマップとIRQマッピング、またはプロジェクトの開発中に利用可能なペリフェラルさえも変更する可能性があるので、ちょっとした苦痛であると同時に恩恵でもあります。

Petalinuxには、この種のものを管理し、最新かつ最高のシステム設計に基づいて重要なカーネル構成のビットを更新するスクリプトがあります。


4

ザイリンクスのVirtexラインには、ハードコアPowerPCを備えたFPGAバージョンがあります。LinuxをPowerPCで実行するのはかなり簡単です。私の生徒たちは多くの上級設計プロジェクトでそれを実行しています。彼らはまだあなたのハードウェア設計を満たすための多くの設定可能なファブリックを持っています。

Virtex2 Proの評価ボードは、教育や学術研究プロジェクトでは非常に一般的でした。ザイリンクスは最近のツールでこのバージョンチップのサポートを終了したため、かなり安価に入手できます。9.x程度まではサポートされていたと思います。うーん。それは数年前のことなので、少し懐かしいかもしれません。とにかく、私はまだこれらのボードを興味のある学生に渡し、彼らが彼らと一緒にしたいことのほとんど何でもできるようにしています。


1
私がそれほど間違っていない場合、それらはVirtex xilinx.com/onlinestore/v2pro_boards.htm
Ali

1
@アリ-私はあなたが間違っているとは思いません、そしてあなたはあなたの主張についてかなり信頼できるリファレンスを持っています。このような状況で編集を提案してください!
ケビンフェルメール

3

アクテルのSmartFusionは、FPGAをハードIP ARM Cortex-M3コアおよび高度なアナログエンジンとシングルチップデバイスに統合します。

uClinuxは、SmartFusionのCortex-M3コアで非常にうまく動作します。詳細については、このサイトを確認しください。


2

タイムフレームによっては、ARMプロセッサとArtix-7またはKintex-7を組み合わせたザイリンクスの新しいZynq-7000ラインを検討することもできます。ザイリンクスは、2012年後半に量産出荷する予定であると述べています。

他のベンダーが同様の製品を持っている場合があります。ザイリンクスがZynqサポートを無料のISE WebPackに提供するかどうか、またはいつ提供するかはわかりません。現在、彼らはISE Embedded Editionが必要だと主張しています。


なぜこの回答コミュニティWikiを作成したのですか?それはおそらく不要でした。
Kevin Vermeer
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.