5.1.1. 目的
5.1.2. ソフトウェア開発プラットフォームのコンポーネントの構築
5.1.3. アプリケーションに向けたオペレーティング・システムの選択
5.1.4. Linuxに向けたソフトウェア開発プラットフォームの構築
5.1.5. ベアメタル・アプリケーションに向けたソフトウェア開発プラットフォームの構築
5.1.6. パートナーOSまたはRTOSに向けたソフトウェア開発プラットフォームの構築
5.1.7. ブート・ローダー・ソフトウェアの選択
5.1.8. 開発、デバッグおよびトレースに向けたソフトウェア・ツールの選択
5.1.9. ボードの立ち上げに関する考慮事項
5.1.10. ブートおよびコンフィグレーションに関するデザインの考慮事項
5.1.11. フラッシュ・デバイス・ドライバーに関するデザインの考慮事項
5.1.12. HPS ECCに関するデザインの考慮事項
5.1.13. セキュリティーに関するデザインの考慮事項
5.1.14. エンベデッド・ソフトウェアのデバッグとトレース
2.2.3. FPGAとデータを共有するMPU
データのスループットは、HPSとFPGA間においてデータを共有する正しい方法を選択することで最適化することができます。この章では、HPS SDRAMがデータソースであり、FPGAでそれにアクセスする必要があると仮定します。FPGAがHPS SDRAMを起源とするデータにアクセスする方法は、主に3つあります。
- FPGAがFPGA-to-SDRAMポートを介してデータに直接アクセスする
- FPGAがFPGA-to-HPSブリッジを介してデータに直接アクセスする
- FPGAがHPS DMAを介してFPGAに移されたデータのコピーにアクセスする (非推奨)
SDRAMのデータがデータの最新のコピー (ソフトウェアで管理されるコヒーレンシー) である場合、最高のスループットでデータにアクセスする方法は、FPGAのマスターがFPGA-to-SDRAMポートを介してデータに直接アクセスすることです。
SDRAMのデータがデータの最新のコピーではない可能性があり、ソフトウェアがMPUキャッシュをフラッシュしてシステム全体のコヒーレンシーを維持しない場合は、FPGAマスターでFPGA-to-HPSブリッジにキャッシュ可能なトランザクションを実行し、最新のデータがアクセスされるようにします。
ガイドライン: HPS DMAコントローラーを使用してFPGAとHPS間でデータを移動させることは避けてください。代わりに、FPGAファブリックのソフトDMAコントローラーを使用します。HPS DMAコントローラーは、HPS内でのメモリーコピーまたはペリフェラル・データの移動にのみ使用します。
HPS SDRAMへのDMA帯域幅は制限されているため、FPGAへのデータの移動にHPS DMAを使用しないでください。HPS DMAは、MPUに代わってバッファーを移動させるために使用する、もしくはペリフェラルとメモリー間の転送に使用することを目的としています。そのため、FPGAがHPSメモリーのバッファーにアクセスする必要がある場合、もしくはHPSがFPGAに保存されているデータにアクセスする必要がある場合は、HPSでこれらの転送を開始するのではなく、FPGAのマスターでこれらの転送を実行することが常に推奨されます。