AlteraのCyclone® V SoCは、柔軟な周辺ハードウェア設計を可能にするARM プロセッサを統合した FPGA® です。925 MHz ARM Cortex-A9® MPCore™ プロセッサには、シングルコアまたはデュアルコアのオプションがあります。
ARMプロセッサは、驚異的なパフォーマンスと電力効率を提供するだけでなく、ARM NEONTM SIMDメディア エンジンを通じて高度な2D/3Dグラフィックスと信号処理の高速化も実現します。包括的なドキュメント、強力なコミュニティ サポート、機能豊富な開発キット、幅広い設計例が用意されているため、 Cyclone V SoC を使用した設計を簡単に開始できます。
図1: Altera Cyclone V SoC アーキテクチャ
FPGAはソフトウェア設計者にとって脅威となる可能性があります。したがって、設計プロセスを容易にするには、信頼性の高いプラットフォーム、優れた開発ツール、強力なオペレーティング システムのサポートが必要です。ソフトウェア設計者は、ハードウェアの反復の煩わしさなしに、システム周辺機器とメモリ帯域幅にアクセスする必要があります。ただし、アプリケーション固有のハードウェア要素を常に対応する必要があるため、両方に対応するシステム ソリューションを見つけることが課題となります。Cyclone V SoC FPGAは、両方の長所を提供するように特別に設計されたエコシステムにより、これら両方の要件を満たすように設計されています。
開発キットですぐに始められます
ソフトウェア設計者は、Atlas-SoCキット、Cyclone V SX SoC開発キット、Arrow Electronics SoCKit、またはその他の利用可能なボードを使用してすぐに作業を開始し、実用的な設計例の1つに基づいて基盤となるアーキテクチャを構築できます。これらのボードには、ほとんどの設計に必要な周辺コンポーネントの共通セットが組み込まれており、高速バス トランシーバー、DDR2/DDR3 メモリ デバイス、 イーサネット、USB、SDカード、LCDインターフェイスなど、テスト済みで実証済みの多数の高速デジタル ハードウェアにすぐにアクセスできます。
カスタムFPGAロジック デザインは、FPGAとHPSパーティション間のシンプルなやり取りを可能にする標準化されたバスを介してCyclone V SoCハード プロセッシング システム (HPS) とインターフェイスします。I/OにはGPIOアプリケーション プログラミング インターフェイス (API) からアクセスでき、ダイレクト メモリ アクセス (DMA) メモリ間転送を使用してカスタムFPGAとHPS間で高度な抽象化を実現できます。これは、DMA APIを介してアクセスされるHPS DMA、独自の組み込みDMAを備えたインテリジェントFPGAモジュール、またはAlteraのQSYSシステム統合ツール設計でインスタンス化されたDMAモジュールによって行われます。
図2: Atlas SOC KitF
Atlas-SoCキットは、Arduinoインターフェイス ヘッダーを統合することでさらなる利点を提供し、シールドと呼ばれる膨大な数の拡張ボードへの扉をすぐに開きます。シールドは、 センサー、モーターおよびサーボ コントローラー、802.11b/g WiFi、Bluetooth、GPSなどのさまざまな周辺機器のドロップイン プロトタイプ機能を提供します。電圧レベルに互換性がない場合には、変換シールドが利用できます。
Arrow SoCキットおよびCyclone V SX SoC開発キットには、高速メザニン カード (HSMC) インターフェイスが組み込まれており、イメージ センサー、高速アナログ - デジタル コンバーター、SDI PHYインターフェイスなど、多くの高性能ドーター カードを使用できます。
図4: Cyclone V SX SoC開発キットとArrow SoCキット
設計を合理化する設計ツール
ハードウェア イメージのコンパイルは完全にmakefile駆動型で実行でき、例はGitHubでホストされています。AlteraのSoC Embedded Design Suite (EDS) は完全な開発環境であり、Altera SoC Embedded Design Suiteユーザー ガイドに詳細が記載されています。SoC EDSは、ARM Development Studio 5 (DS-5TM) Altera Edition Toolkitの機能を活用し、さまざまなユーティリティ プログラムとLinuxアプリケーション サンプルを含む定義済みランタイム ソフトウェアを使用してコード開発を迅速化します。完全なツールチェーンの無料バージョンもダウンロード可能です。
OpenCLは、異種並列デバイスをプログラミングするための標準としてますます普及しつつあります。これは、SoC統合メディア エンジン、デュアル プロセッサ、および可能なFPGAアクセラレーションの並列処理能力を活用しながら、より高いレベルの抽象化を維持するのに最適な標準です。Altera SDK for OpenCL: Cyclone V SoCスタート ガイドは、Altera SDK for OpenCLのセットアップと使用に役立ちます。多くの組み込み設計ではリアルタイム パフォーマンスが重要であるため、リアルタイム コード実行プロファイリング用の設計例が用意されています。
強力なオペレーティングシステムのサポート
Cyclone V SoCとその関連開発キットには、以下に示すような包括的なオペレーティング システム エコシステム サポートが備わっています。
- Linux は、ARMベースのSoCで使用される最も一般的な汎用オペレーティング システムです。Cyclone V SoCも例外ではなく、Alteraと大規模なユーザー コミュニティの両方から包括的なサポートが提供されます。使用方法をステップバイステップで説明したビルド済みのLinuxバイナリがすぐに利用できます。より高度なカスタマイズが必要な場合は、Altera Yoctoオープン ソース コミュニティ プロジェクトで全体的な再構築プロセスが文書化されています。
- アンドロイド デモ キットやIce Cream Sandwichなどのさまざまなバージョンなど、さまざまなソースから入手できます。
- フリーRTOS Cyclone V SoCのCortex-A9プロセッサ向けに、詳細なビルド手順と例が提供されています。Androidをインストールするための詳細な手順と、グラフィックスや3DアニメーションなどのAPIをデモンストレーションするいくつかのサンプル アプリケーションが用意されています。
- 翻訳 Wind RiverのBSPは、Cyclone V SX SoC開発キットで利用できます。
- スレッド Express Logicsより。
- エコスプロ eCosCentricより。
単なるプロセッサ以上の、未来のあるプロセッサです。
Cyclone V SoCは、単なるARMベースのSoCではありません。ツール、アプリケーション、オペレーティング システム、サポートにおけるソフトウェア開発の面では、FPGA非対応デバイスと同じ利点がありますが、FPGAが真価を発揮するのは、統合、高速化、カスタマイズ、アップグレードの領域です。
統合
ほとんどの組み込みアプリケーションには、アプリケーション固有のハードウェアが必要です。多くのデザインには専用の マイクロコントローラ インターフェイスを管理したり、シグナル処理を実行してオペレーティング システムの負荷を軽減したりします。Qsysを通じて、Cyclone V SoC設計にはNiosなどの専用ソフトコアマイクロプロセッサを組み込むことができます。® IIプロセッサは、HPSインターフェイスを介してシステム メモリと通信できます。このカスタマイズ可能なソフトコア マイクロプロセッサにより、追加のデバイスを必要とせずに周辺コントローラと信号処理を統合できます。
アクセラレーション
カスタマイズ可能なロジックにより、システムはアプリケーション固有の大規模な処理能力を備えるようになります。これにより、アルゴリズムをハードコードして、ARMプロセッサのアクセラレータやコプロセッサとして機能させることができます。高速受信機のダウン/アップ変換、モデム、コーデック、 エンコーダー、デコーダーなど、ARMプロセッサで実装するのが非現実的な集中的な操作は、ソフトウェアよりもカスタム ハードウェアを使用するとより効率的に実装できます。FPGAロジックには、数百の特殊用途のデジタル信号処理 (DSP) 数学モジュールと小さなメモリ ブロックが組み込まれています。これらをロジック要素と組み合わせて使用することで、特定のアルゴリズムを同時に効率的に実装することができ、シーケンシャル命令マイクロプロセッサでは達成できないレベルのパフォーマンスを実現できます。
カスタマイズ
Cyclone V SoC HPSには、非常に柔軟で高性能な周辺要素とI/Oが備わっていますが、統合FPGAにより、設計に追加の周辺インターフェイスを組み込むことができます。製品要件が変化すると、カスタマイズ可能なハードウェアはソフトウェアとともに変更され、新しい機能を導入できるようになります。デバイスI/Oの柔軟性が高まるにつれて、同じマイクロプロセッサを複数の製品間で再利用できる可能性が高くなります。
アップグレード可能性
製品は、ソフトウェアのアップデートに合わせてハードウェア設計をアップグレードできます。これにより、複雑なハードウェア アルゴリズムをプログラムして機能セットを更新し、バグを修正できるようになります。これにより、ハードウェア アクセラレーションと並列処理の改善を設計の存続期間中に導入することも可能になり、反復によって効率とパフォーマンスを向上させることができます。これにより、ある程度の「将来性」が確保され、複雑なハードウェア設計に対してより積極的な配信戦略を採用できるようになります。
設計フローの簡単な例
ステップ1: 適切なプロトタイピングプラットフォームを確立する
周辺機器とデバイス ロジック要素に基づいて、どの開発キットがプログラミング ニーズに最も適しているかを評価します。拡張ボードが必要な場合は、電圧を含むI/Oの互換性を確認してください。迅速な開発プロジェクトでは、特別な周辺機器の要件に合わせて開発キットで使用できる拡張ボードをすぐに「作成」するのが一般的です。ハードウェアが個別に開発されている間に、ソフトウェア設計チームは開発キットと拡張ボードを組み合わせて、ソフトウェア設計の大部分のプロトタイプを作成できます。キット用のドキュメントとオープン設計が用意されているため、ハードウェア設計者は設計の適切な要素を再利用して設計リスクを軽減できます。
ステップ2: FPGAシステムアーキテクチャに同意する
ハードウェア設計者と協力して、基盤となるFPGAプロセッサ アーキテクチャを確立します。要件にほぼ一致する設計例を見つけ、Qsys構成を変更して追加の周辺機器、メモリ、およびインターフェイスを組み込みます。ハードウェア インターフェイスのプロトコルについて合意するには、今がよいタイミングです。ハードウェア設計者は、このインターフェイスの開発を優先し、関連する条件付きでコンパイルされたテスト コードを使用して、ハードウェア設計が完了する前にインターフェイスを設計およびテストできるようにすることができます。
ステップ3: 適切な設計例を修正する
ソフトウェア分野で実現したいことに最も近い設計例を見つけます。選択したオペレーティング システムに基づいて設計例を選択し、段階的に新しいものを導入します。ハードウェア設計者が自分の側の設計を優先的に開発できるように、シンプルなテスト ソフトウェア セットを提供することを検討してください。そうすることで、後の段階でより迅速な統合が可能になります。実際のハードウェアが利用可能になったらすぐに移行するのではなく、まずソフトウェアの高度な安定性を確保してから移行を試みてください。ハードウェアとソフトウェアの両方を同時にデバッグすることほど悪いことはありません。
ステップ4: プロジェクトを作成する
ソフトウェアとハードウェアの両方を組み合わせた完全なメイクを実装する責任者がいることを確認します。これは見落とされがちですが、ビルドとリビジョンのプロセスを制御する上で重要な部分です。また、ツールIDEとそのGUIへの依存も排除され、コンパイル時にエラーが発生する可能性のある手動介入なしでバックグラウンド ビルドが可能になります。
図5: QsysのHPSを備えたシステム (拡大表示)
ぜひお試しください!
Alteraは、ソフトウェア設計者とハードウェア設計者の両方を念頭に置いてSoC FPGAを開発しました。これは、統合とスマートデバイスの増加の世界におけるエキサイティングな次のステップです。Cyclone V SoCは、ハードウェアとソフトウェア間の従来の境界を曖昧にし、両者間の競合を回避しながら、より強力で効率的な実装を可能にします。AlteraのQsysシステム統合ツールは、ソフトウェア ドメインとハードウェア ドメイン間のシステム レベルの契約を確立するための優れたツールです。HPSからFPGAへのパーティショニングにより、2つの領域間での技術的な理解をほとんど必要とせずに、独立した開発作業が可能になります。これは、強力なサポート、堅牢な開発エコシステム、および設計のベースとなる多くの設計例を備えた、賢明でエキサイティングなテクノロジです。設計者は、数多くの開発キットの1つに基づいてアーキテクチャを構築し、拡張ボードのさまざまなオプションを活用してすぐに作業を開始できます。SoCを使用した設計はこれまでになく簡単になりました。次のステップをどのように実現できるかについて、Alteraの担当者にお問い合わせください。