AN 802: インテル Stratix 10 SoC デバイスのデザイン・ガイドライン
バージョン情報
更新対象: |
---|
インテル® Quartus® Prime デザインスイート 18.1 |
1. インテル Stratix 10 SoCデバイスのデザイン・ガイドライン概要
このデザイン・ガイドラインは、 インテル® Stratix® 10 SoC FPGAデバイスを使用するデザインに向けた一連のガイドラインと推奨事項、および考慮すべき項目を提供することを目的にしています。このガイドラインは、 インテル® Stratix® 10 SoC FPGAデザイン、プラットフォーム・デザイナーのサブシステム・デザイン、ボードデザイン、ソフトウェア・アプリケーション・デザインのプランニングおよび初期設計段階において役立ちます。
このアプリケーション・ノートには、 インテル® Stratix® 10ハード・プロセッサー・システム (HPS) デバイスの詳細、機能、ハードウェアまたはソフトウェア・システムのデザインに関する情報がすべて含まれているわけではありません。
インテル® Stratix® 10 HPSの機能および各ペリフェラルについての詳細は、Intel Stratix 10 Hard Processor System Technical Reference Manualを参照ください。
インテル Quartus Prime 開発ソフトウェア・スタンダード・エディションで開発されたハードウェアは、 インテル® SoC FPGAエンベデッド開発スイート・スタンダート・エディションで開発されたソフトウェアのみをサポートします。
1.1. Stratix 10 SoCデバイスのデザイン・ガイドライン概要の改訂履歴
ドキュメント・バージョン |
変更内容 |
---|---|
2019.04.17 | メンテナンス・リリース |
2019.03.19 | メンテナンス・リリース |
2018.12.24 | メンテナンス・リリース |
2018.09.24 | メンテナンス・リリース |
2018.05.07 | メンテナンス・リリース |
2018.03.01 | メンテナンス・リリース |
2017.11.06 | 初版 |
2. Stratix 10 SoC FPGAのボード・デザイン・ガイドライン
2.1. HPSのクロックおよびリセットのデザインにおける考慮事項
- HPS_OSC_CLKデバイスI/Oピン—HPS PLLの外部クロックソースです。HPS PLLは、MPUサブシステム、CCU、SMMU、L3インターコネクト、HPSペリフェラルおよびHPS-to-FPGAユーザークロックにクロックを生成します。
- nCONFIGデバイスI/Oピン—SoCデバイス全体のリセット入力で、FPGAをリコンフィグレーションし、HPSをコールドリセットします。
- HPS_COLD_nRESETデバイスI/Oピン—オプションのリセット入力で、HPSのみをコールドリセットし、双方向動作にコンフィグレーションされます。
ガイドライン: HPS_COLD_nRESETピンは、オープンになっている任意のSDM I/Oピンにコンフィグレーションできます。
- Assignments > Deviceの順にクリックします。
- 「Device and Pin Options」ボタンをクリックします。
- 「Configuration」タブに移動します。
- 「Configuration Pin Options」ボタンをクリックします。
- 「USE_HPS_COLD_nRESET」のチェックボックスをクリックし、利用可能なSDM_IOピンを選択します。
2.1.1. HPSクロックのプランニング
- HPS PLL
- MPUサブシステム
- L3インターコネクト
- HPSペリフェラル
- HPS-to-FPGAユーザークロック
HPSクロックのプランニングは、ボードレベルのクロック・プランニング、デバイスのFPGA部分のクロック・プランニング、およびHPSペリフェラルの外部インターフェイスのプランニングに依存します。よって、ボードデザインを確定する前にHPSクロックのコンフィグレーションを検証することが重要です。
ガイドライン: プラットフォーム・デザイナーを使用し、MPUおよびペリフェラルのクロックを検証します。
プラットフォーム・デザイナーを使用し、HPSコンポーネントのコンフィグレーションを最初に定義します。HPS入力クロック、ペリフェラル・ソース・クロックおよび周波数を設定します。プラットフォーム・デザイナーの警告またはエラーメッセージに注意し、クロックの設定を変更するか、警告がアプリケーションに悪影響を及ぼさないことを確認することで対応します。
2.1.2. 早期ピン・プランニングおよびI/O割り当ての解析
HPSクロック入力は、イーサネット、大容量ストレージ・フラッシュ、UARTコンソールなどのHPSペリフェラルからのI/Oと共有されるHPS専用I/Oバンクにあります。このバンク内での位置はユーザーがコンフィグレーションできます。
ガイドライン: HPS専用I/OのI/O電圧レベルを選択します。
HPS専用I/Oは、1.8 Vの電圧レベルをサポートするLVCMOS/LVTTLです。HPS専用I/Oバンクを使用するようにコンフィグレーションされるHPSペリフェラル・インターフェイス (イーサネットPHY、UARTコンソールなど) およびHPSのボードレベルのクロック回路が、1.8 V LVCMOS信号と互換性があることを確認してください。
2.1.3. HPSクロック、リセット、PoRのピン機能と接続
HPSクロックピンとオプションのリセットピンには、ボードレベルのリセットロジックおよび回路のプランニングとデザインを行う際に考慮すべき特定の機能的な動作と要件があります。
ガイドライン: HPSクロック入力のピン位置を選択します。
HPS_OSC_CLKは、HPS専用I/Oバンクの任意の位置に配置できます。HPSプラットフォーム・デザイナーのコンポーネントを使用してHPS_OSC_CLKのピンを選択し、そのバンクに割り当てられているほかのHPSペリフェラルI/Oの位置との互換性を確認します。
ガイドライン: nCONFIGおよびHPS_COLD_nRESETの最小アサート時間仕様に従います。
nCONFIGとHPS_COLD_nRESETピンのリセット信号は、インテル Stratix 10 デバイス・データシートのHPSの章で指定されている最小時間のあいだアサートする必要があります。
ガイドライン: HPS_COLD_nRESETをSDM QSPIリセットに接続しないでください。
HPS_COLD_nRESETは、HPSおよびそのペリフェラルのコールドリセット手順を開始するためにSDMに入力される双方向ピンです。HPS_COLD_nRESET出力は、HPSがリセットされる際にリセットする必要があるボード上のそのほかのデバイスをリセットするために使用することができます。ただし、SDMはソフトウェアを介してQSPIのリセットを処理します。HPS_COLD_nRESETをSDM QSPIリセットに接続すると、未定義のシステム動作が発生する可能性があります。
2.1.4. リモート・システム・アップデート (RSU) 機能に向けたDirect-to-Factoryピンのサポート
インテル® Stratix® 10 SoCは、リモート・アップデート・システム (RSU) 機能をサポートしています。この機能を使用する場合、複数のプロダクション・イメージをフェイルセーフのファクトリー・イメージとともに外部SDMフラッシュに保存するオプションが使用できます。PORが終了すると、SDMは特定のシーケンスでプロダクション・イメージのロードを試みます。プロダクション・イメージすべてのロードに失敗した場合、フェイルセーフのファクトリー・イメージがロードされます。
ガイドライン: Direct-to-Factoryイメージピンを使用し、POR終了時にファクトリー・イメージもしくはアプリケーション・イメージをロードするようSDMに指示します。
Direct-to-Factoryイメージは、RSU機能で使用できるオプションのピンです。1このピンがPOR中にアサートされると、SDMはプロダクション・イメージのロードを試みるのではなく、外部SDMフラッシュから直接ファクトリー・イメージをロードします。
HPSをRSU機能とともに使用する方法の詳細は、Intel Stratix 10 SoC Remote System Update (RSU) User Guideを参照ください。
2.1.5. 内部クロック
HPSクロックのコンフィグレーション・プランニング・ガイドラインの説明に従いHPSクロックのコンフィグレーションを検証後、ソフトウェア制御下でHPSクロックの設定を実装する必要があります。これは通常、ブートローダー・ソフトウェアによって行われます。また、HPSとFPGA間でリファレンス・クロックを転送するためのガイドラインにも従う必要があります。
ガイドライン: HPSとFPGA間でPLLをカスケード接続しないでください。
FPGAとHPS間でPLLをカスケード接続することは特性評価されていません。ジッター解析を行わない限り、FPGAとHPS PLLをチェーン接続しないでください。HPSからの出力クロックは、FPGAのPLLに供給されることを目的にしていません。
ソフトウェア制御下でHPS PLLおよびクロックを管理するには特定の要件があります。
詳細は、Intel Stratix 10 Hard Processor System Technical Reference Manualの「Clock Manager」の章を参照ください。
2.1.6. HPSペリフェラルのリセット管理
HPSペリフェラルおよびサブシステムには、特定のリセットシーケンス要件があります。SoC EDSで提供されるブートローダー・ソフトウェアは、リセット・マネージャーの章に記載されている要件に基づきリセット管理シーケンスを実装します。
ガイドライン: SoC EDSの最新のブートローダー・ソフトウェアを使用しHPSリセットを管理します。
要求されるソフトウェア・フローに関する詳細は、Intel Stratix 10 Hard Processor System Technical Reference Manualの「Reset Manager」の章を参照ください。
2.2. デバイスI/OをHPSペリフェラルおよびメモリーに接続するためのデザインにおける考慮事項
HPSをコンフィグレーションする際の最も重要な考慮事項の1つは、 インテル® Stratix® 10 SoCデバイス上でのI/O構成を理解することです。
1. HPS専用I/O
これらの48のI/Oは物理的にHPSに配置され、HPSに専用のものです。また、HPSクロックおよび、大容量ストレージ・フラッシュ・メモリーを含むペリフェラルに使用されます。
2. SDM専用I/O
SDMには24の専用I/Oがあり、それにはJTAG、クロック、リセット、コンフィグレーション、リファレンス電圧、ブートおよびコンフィグレーション・フラッシュ・インターフェイス、MSELが含まれます。
3. HPS EMIF I/O
SDRAMメモリーに接続可能なモジュラーI/Oバンクは3つあります。そのうちの1つは、アドレス、コマンド、およびECCデータ信号の接続に使用されます。残りの2つのバンクは、データ信号を接続するためのものです。
4. FPGA I/O
汎用I/OはFPGAロジック、FPGA外部メモリー・インターフェイス、および高速シリアル・インターフェイスに使用することができます。ほとんどのHPSペリフェラル・インターフェイスは、FPGAファブリックにエクスポートし、FPGA I/Oへのカスタム適応およびルーティングが可能です。
HPS専用I/O | SDM専用I/O | HPS EMIF I/O | FPGA I/O | |
---|---|---|---|---|
利用可能なI/O数 | 48 | 24 | 3つのI/O 48バンク | ほかのすべてのデバイスI/O |
位置 | HPS内 |
SDM内 |
FPGA I/Oバンク2L、2M、2N | I/O列はFPGAデバイス内にあります |
サポートされる電圧 | 1.8 V | 1.8 V | DDR3およびDDR4プロトコルのLVDS I/Oバンクサポート | LVDS I/Oバンク、3V I/Oバンクおよび高速シリアル・トランシーバー |
用途 |
HPSクロック、HPSペリフェラル、大容量ストレージ・フラッシュ、HPS JTAG |
FPGA JTAG (SDM専用ピンを使用)、クロック、リセット、コンフィグレーション、リファレンス電圧、ブートおよびコンフィグレーション・フラッシュ・インターフェイス | HPSメインメモリー | 汎用およびトランシーバーI/O |
タイミング制約 | 固定 | 固定 | メモリー・コントローラーIPによる | ユーザー定義 |
推奨されるペリフェラル |
HPSペリフェラルI/O (イーサネットPHY、USB PHY、NANDやSD/MMCなどの大容量ストレージ・フラッシュ、TRACEデバッグなど) |
ブートおよびコンフィグレーション・ソース、SDM専用ピンを介するFPGA JTAG、およびMSEL信号がSDMに接続されます | DDR3、DDR4、SDRAM |
低速HPSペリフェラル (I2C、SPI、EMAC-MII)、FPGA EMIFなどのFPGA I/O、高速LVDS I/O、トランシーバーI/O、その他の並列およびコントロール/ステータスI/O |
ブートおよびコンフィグレーション中のコンソール出力に関する詳細は、「UARTインターフェイスのデザイン・ガイドライン」の章を参照ください。
2.2.1. HPSピンの多重化におけるデザインの考慮事項
HPS専用I/Oピンは合計48あります。プラットフォーム・デザイナーのHPSコンポーネントは、ピンの多重化設定と、ほとんどのペリフェラルをFPGAファブリックにルーティングするオプションを提供します。
ガイドライン: USBを先頭に、USB、EMACおよびフラッシュ・インターフェイスをHPS専用I/Oに最初にルーティングします。
インテルではまず、USB、イーサネット、フラッシュなどの高速インターフェイスを専用I/Oにルーティングすることから始めることを推奨しています。
2.2.2. HPS I/Oの設定: 制約とドライブ強度
ガイドライン: HPS専用I/Oに向けてI/O設定を正しくコンフィグレーションしていることを確認してください。
HPSピン位置の割り当ては、HPSを含むプラットフォーム・デザイナー・システムを生成する際に自動的に管理されます。同様に、HPS SDRAMインターフェイスのタイミングおよびI/O制約は、HPS IPに向けた インテル® Stratix® 10外部メモリー・インターフェイスによって管理されます。HPS専用I/Oに対するI/O制約 (ドライブ強度、ウィーク・プルアップ・イネーブル、終端設定) を、 インテル® Quartus® Prime開発ソフトウェアを使用しFPGA I/Oと同じ方法で管理する必要があります。FPGA I/Oを使用するようにコンフィグレーションされるペリフェラルもまた、ピン位置を含め インテル® Quartus® Prime開発ソフトウェアで完全に制約される必要があります。
2.3. HPSインターフェイスにおけるデザイン・ガイドライン
2.3.1. HPS EMAC PHYインターフェイス
- Reduced Media Independent Interface (RMII)
- Reduced Gigabit Media Independent Interface (RGMII)
ガイドライン: PHYデバイスを選択する際は、要求するイーサネット・レート、使用可能なI/Oおよびトランシーバー、スキュー制御機能を提供するPHYデバイス、およびデバイスドライバーの可用性を考慮してください。
インテル® Stratix® 10 SoC開発キットはMicrochip KSZ9031 Ethernet PHYを使用しています。このデバイスは、 インテル® Stratix® 10 HPSイーサネットPHYインターフェイスおよびソフトウェア・デバイス・ドライバーで動作することが分かっています。
HPSコンポーネントによってFPGAファブリックに公開されるMIIまたはGMII PHYインターフェイスは、FPGAのソフト適応ロジックと汎用FPGA I/OおよびトランシーバーFPGA I/Oの機能を使用し、RMII、SGMII、SMII、TBIなどのほかのPHYインターフェイス標準に適合させることが可能です。
詳細については、ご利用のオペレーティング・システムで使用可能なデバイスドライバー、または インテル® Stratix® 10 SoC開発キットで提供されるLinuxデバイスドライバーを参照してください。
EMACは、HPSおよびFPGA I/Oを介してさまざまなPHYインターフェイスと制御オプションを提供します。
ガイドライン: GMII-to-SGMIIアダプターは、トランシーバー・ベースのSGMII光モジュールに自動的に適合させるために使用可能です。
- i2c_emac_0
- i2c_emac_1
- i2c_emac_2
2.3.1.1. PHYインターフェイス
RMIIおよびRGMII PHYインターフェイスにおける考慮事項
2.3.1.1.1. RMII
RMIIは、システムに同期する50 MHzの単一中央クロックソース (REF_CLK) をすべてのポートの送信パスおよび受信パスに使用します。これは、各ポートのTX_CLKとRX_CLKのソース・シンクロナスのクロック・ペアではなく、単一のボード・オシレーターをデザインで使用できるため、ポート密度が高いシステムにおいてシステムのクロックを簡素化しピン数を低減します。
RMIIは2ビット幅の送信および受信データパスを使用します。すべてのデータおよび制御信号は、REF_CLK立ち上がりエッジに同期しています。RX_ER制御信号は使用されません。10 Mbpsモードでは、データおよび制御信号はすべて、10 REF_CLKクロックサイクル間有効に保たれます。
インターフェイス・クロック・スキーム
EMACおよびRMII PHYは、50 MHzのREF_CLKソースを提供できます。HPS_OSC_CLK入力などの既存のクロックソースを使用することで、内部PLLはシステムのクロック・デザインをさらに簡素化し、クロックソースの追加を不要にします。
この章では、HPS EMACまたはPHYをソースとするREF_CLKのデザインシナリオを説明します。
ガイドライン: アプリケーションのREF_CLKソース選択に関する詳細は、PHYデータシートを確認してください。
- HPSをソースとするREF_CLK
- PHYをソースとするREF_CLK
2.3.1.1.2. RGMII
RGMIIは、PHY層で10 Mbps、100 Mbps、および1000 Mbpsの接続速度をサポートするため、最も一般的なインターフェイスです。
RGMIIは、4ビット幅の送信データパスおよび受信データパスを使用しており、それぞれが独自のソース・シンクロナスのクロックを備えています。送信データおよび制御信号はすべてTX_CLKにソース・シンクロナスで、受信データおよび制御信号はすべてRX_CLKにソース・シンクロナスです。
すべての速度モードにおいて、TX_CLKはMACによってソースされ、RX_CLKはPHYによってソースされます。1000 Mbpsモードでは、TX_CLKおよびRX_CLKは125 MHzであり、デュアル・データ・レート (DDR) 信号が使用されます。10 Mbpsおよび100 Mbpsモードでは、TX_CLKおよびRX_CLKはそれぞれ2.5 MHzおよび25 MHzであり、立ち上がりエッジのシングル・データ・レート (SDR) 信号が使用されます。
I/Oピンのタイミング
この章では、1000 Mbpsモードの要件を満たすという観点からRGMIIインターフェイスのタイミングについて説明します。インターフェイスのタイミングマージンは1000 Mbpsモードにおいて最も要求が厳しいため、これはここで考慮する唯一のシナリオです。
125 MHzにおける周期は8 nsですが、両方のエッジが使用されるため、有効周期はわずか4 nsになります。TXバスおよびRXバスは独立しておりソース・シンクロナスであるため、タイミングが簡潔になります。RGMIIの仕様では、レシーバー側でCLKがDATAから一方の方向に最小1.0 nsおよび最大2.6 ns遅延するように要求しています。
すなわち、TX_CLKはMAC出力からPHY入力に、RX_CLKはPHY出力からMAC入力に遅延する必要があります。信号は、出力ピンで測定された場合に各方向+/- 500 ps RGMIIスキュー仕様内でソース・シンクロナスに送信されます。それぞれの方向に必要な最小遅延は1 nsですが、インテルでは1.5 nsから2.0 nsの遅延をターゲットとし、大幅なタイミングマージンを確保することを推奨しています。
送信パスのセットアップおよびホールド
送信に重要なのは、TX_CTLとTXD[3:0] に対するTX_CLKのセットアップおよびホールドのみです。 インテル® Stratix® 10のI/Oは、出力で最大2.4 nsの追加遅延を150 psの増分で提供することができます。この遅延は、 インテル® Quartus® PrimeのAssignment Editorの出力遅延ロジックオプションを使用し有効にします。
ガイドライン: Stratix 10からのTX_CLKの場合、1.8 nsのI/O遅延を導入し、RGMII仕様にある1.0 nsのPHY最小入力セットアップおよびホールド時間を満たす必要があります。
インテル® Stratix® 10 SoC HPS専用I/OおよびFPGA I/Oは、最大2.4 nsの追加出力遅延を150 psの増分でサポートします。HPS専用I/Oを使用する場合にMACのTX_CLK出力に追加される遅延は、HPSプラットフォーム・デザイナーのIPコンポーネントでコンフィグレーションできます。
ガイドライン: 要求される遅延をHPS EMAC出力にコンフィグレーションするために必要なIntel設定がデザインに含まれていることを確認してください。
インテル® Stratix® 10 SoC開発キットおよび関連する インテル® Stratix® 10ゴールデン・ハードウェア・リファレンス・デザイン (GHRDはGSRDのハードウェア・コンポーネントです) において、TX_CLKの出力遅延設定の設定を行う例は、HPSプラットフォーム・デザイナーのIPコンポーネント・コンフィグレーションにあります。
受信パスのセットアップおよびホールド
受信タイミングを考慮する際に必要なのは、RX_CTLとRXD[3:0] に対するRX_CLKのセットアップおよびホールドのみです。 インテル® Stratix® 10のI/Oは、最大3200 psの遅延を入力に追加できます。 インテル® Stratix® 10の入力の場合、3.2 nsのI/O遅延は、PHY側もしくはボードトレースの遅延側のほかの内容を考慮することなくRX_CLKのこのタイミングを達成できます。
ガイドライン: PHYがRGMII-IDをサポートしていない場合、Stratix 10 SoC HPS専用I/OもしくはFPGA I/Oのコンフィグレーション可能な遅延要素を使用し、RX_CLKをRX_DATAおよびCTLデータの有効ウィンドウの中央に配置します。
HPS I/Oを使用する場合、HPSプラットフォーム・デザイナーのIPコンポーネントでRX_CLKの遅延をコンフィグレーションします。FPGA I/Oを使用する場合は、プロジェクト設定ファイル (.qsf) の入力遅延設定でRX_CLK入力に遅延を追加します。
2.3.1.2. FPGA I/Oを介して接続されるPHYインターフェイス
HPS EMAC PHYインターフェイスにFPGA I/Oを使用することは、PHYインターフェイスに対応する空きが十分にない場合や、HPS EMACでネイティブにサポートされていないPHYインターフェイスに適応する場合に有効です。
ガイドライン: プラットフォーム・デザイナーでHPSコンポーネントをコンフィグレーションする際は、PHYインターフェイスの送信クロック周波数を指定します。
他のPHYインターフェイスに適応させる場合も含め、GMIIもしくはMIIには、HPS EMAC PHYインターフェイスの最大送信パスクロック周波数を指定します。この設定により、プラットフォーム・デザイナーのシステム生成時に、適切なクロックタイミング制約がPHYインターフェイスの送信クロックに適用されます。
2.3.1.2.1. GMIIおよびMII
GMIIおよびMIIは、EMAC信号をFPGAコア・ルーティング・ロジックに駆動し、最終的にFPGA I/OピンまたはFPGAコアの内部レジスターに駆動することで、 インテル® Stratix® 10でのみ使用可能です。
ガイドライン: タイミング制約を適用し、Timing Analyzerでタイミングを検証します。
配線遅延はFPGAコアとI/O構造で大きく異なる可能性があるため、タイミングレポートを確認し、特にGMIIの場合は、タイミング制約を作成することが重要です。GMIIは125 MHzのクロックを備えており、RGMIIとは異なり単一データレートです。ただしGMIIでは、CLKとDATAのスキューに関してRGMIIと同じ内容を考慮する必要はありません。信号はネガティブエッジで起動され、立ち上がりエッジでキャプチャーされることで、デザインによって自動的に中央に配置されます。
ガイドライン: インターフェイスI/OはFPGA I/O境界で登録します。
コアおよびI/Oの遅延は8 nsを簡単に超えるため、 インテル® ではこれらのバスを各方向でI/Oエレメント (IOE) レジスターに登録し、それらがコアFPGAロジック・ファブリックを移動する際にアライメントが維持されるようにすることを推奨しています。送信データと制御では、HPS EMACからのemac[0,1,2]_gtx_clk出力の立ち下がりエッジでこれらの信号をラッチすることにより、clock-to-data/controlの関係を維持します。受信データと制御は、FPGA I/O入力においてPHYをソースとするRX_CLKの立ち上がりエッジでラッチします。
ガイドライン: MIIモードの送信タイミングを検討します。
MIIは、PHYが100 Mbpsモードの場合は25 MHz、PHYが10 Mbpsモードの場合は2.5 MHzであるため、最短クロック周期は40 nsです。PHYは、送信方向と受信方向の両方にクロックを供給します。送信タイミングはPHYによって供給されるTX_CLKクロックに相対するため、ターンアラウンド・タイムが懸念されることがありますが、40 nsの長いクロック周期のため通常問題ではありません。
リファレンス・クロックはFPGAを介して送信され、その後データに出力されます。15 nsの入力セットアップ時間を考慮すると、往復の遅延は25 ns未満でなければなりません。送信データと制御は、PHYをソースとするTX_CLKのネガティブエッジでHPS EMAC送信パスロジックによってFPGAファブリックに起動されます。これにより、40 nsのクロックからセットアップまで (Clock-to-Setup) のタイミング・バジェットのうち20 nsが取られることに注意してください。
PHYからSoCボードの伝播遅延を引き起こすデータ到着タイミングにおける往復のクロック・パス遅延に加え、SoCピンからHPS EMAC送信クロック・マルチプレクサーでの内部パス遅延が残りの20 nsのセットアップ・タイミング・バジェットを消費するため、MIIモードの送信データと制御では、場合によってはFPGAファブリックのphy_txclk_oクロック出力レジスターの立ち上がりエッジに、送信データと制御をリタイミングする必要があります。
2.3.1.2.2. RGMIIへの適合
インテル® Stratix® 10 SoCデバイスは、FPGA I/Oピンを使用するHPS EMAC信号のRGMIIへの適合をサポートしていません。
2.3.1.2.3. RMIIへの適合
FPGAのロジックを使用し、MII HPS EMAC PHY信号をFPGA I/OピンでRMII PHYインターフェイスに適合させることができます。
ガイドライン: 50 MHzのREF_CLKソースを提供します。
RMII PHYは、単一の50 MHzリファレンス・クロック (REF_CLK) を送信と受信のデータおよび制御に使用します。ボードレベルのクロックソース、FPGAファブリックから生成されるクロック、もしくはREF_CLKの生成が可能なPHYのいずれかで50 MHzのREF_CLKを提供します。
ガイドライン: 送信と受信のデータおよび制御パスを適応させます。
FPGAファブリックで公開されるHPS EMAC PHYインターフェイスはMIIであり、2.5 MHzおよび25 MHzの個別の送信クロック入力と受信クロック入力を、それぞれ10 Mbpsおよび100 Mbpsの動作モードで必要とします。送信データパスと受信データパスはどちらも4ビット幅です。RMII PHYは10 Mbpsと100 Mbpsの両方の動作モードにおいて、50 MHzのREF_CLKを送信データパスと受信データパスに使用します。RMIIの送信および受信データパスは2ビット幅です。10 Mbpsにおいて、送信および受信のデータと制御は10クロックサイクルの50 Mhz REF_CLK間安定します。FPGAファブリックの適応ロジックを提供し、HPS EMAC MIIと外部RMII PHYインターフェイスを適応させる必要があります。すなわち、25MHzおよび2.5 MHzの4ビットと50 MHzの2ビットを適応させ、10 Mbpsモードにおいては10倍のオーバーサンプリングを行います。
ガイドライン: HPS EMAC MIIのtx_clk_inクロック入力でグリッチのないクロックソースを提供します。
HPSコンポーネントのMIIインターフェイスは、emac[0,1,2]_tx_clk_in入力ポートで2.5および25 MHzの送信クロックを必要とします。2.5 MHzと25 MHzの切り替えは、HPS EMACの要求に応じてグリッチなしで行う必要があります。FPGA PLLを使用し2.5 MHzおよび25 MHzの送信クロックを提供し、それに加えてALTCLKCTRL IPブロックでカウンター出力をグリッチなしで選択することが可能です。
2.3.1.2.4. SGMIIへの適合
GMII-to-SGMIIアダプターコアを使用し、FPGAトランシーバーI/OピンでGMII HPS EMAC PHY信号をSerial Gigabit Media Independent Interface (SGMII) PHYインターフェイスに適合させることができます。これにはFPGAのロジックとマルチギガビット・トランシーバーI/OまたはソフトCDRモードのLVDS SERDESを使用します。この適合にカスタムロジックをデザインすることは可能ですが、この章ではプラットフォーム・デザイナーのアダプターIPを使用する方法を説明します。
ガイドライン: プラットフォーム・デザイナーで利用可能なGMII-to-SGMIIアダプターIPを使用します。
プラットフォーム・デザイナーでHPSコンポーネントをEMAC 「To FPGA」 I/Oインスタンスにコンフィグレーションし、GMIIをPHYインターフェイス・タイプとして管理インターフェイスとともに選択します。生成されるHPSコンポーネントのGMII信号をプラットフォーム・デザイナーでエクスポートしないでください。代わりに、インテルGMII-to-SGMIIアダプターIPをプラットフォーム・デザイナーのサブシステムに追加し、HPSコンポーネントのGMII信号に接続します。GMII-to-SGMIIアダプターIPは、プラットフォーム・デザイナーのインテル HPS EMACインターフェイス・スプリッターIPを使用し、「emac」 コンジットをHPSコンポーネントから切り離し、GMII-to-SGMIIアダプターで使用します。アダプターIPは、1000BASE-X/SGMII PCS PHY-onlyモード (つまり、ソフトMACコンポーネントなし) でコンフィグレーションされたインテルTriple Speed Ethernet (TSE) MAC IPをインスタンス化します。インテルGMII-to-SGMIIアダプターIPの使用方法に関する詳細は、Embedded Peripherals User Guideを参照ください。
ガイドライン: 1000BASE-X PCSオプションでのTSE MAC IPはトランシーバーI/Oのオプションを提供しなくなったため、FPGAトランシーバーI/Oを使用してSGMII PHYインターフェイスを インテル® Stratix® 10 HPS EMACインスタンスに実装するには、「NONE」をPCS I/Oオプションに選択します。これによりTBIインターフェイスが提供されます。トランシーバーPHY IPは、 インテル® Stratix® 10で個別にインスタンス化および接続する必要があります。
2.3.1.3. MDIO
インテル® MDIO (Management Data Input/Output) PHY管理バスには、各MACごとにMDCとMDIOの2つの信号があります。MDCはクロック出力で、フリーランニングではありません。 2.5 MHzでの最小周期は400 nsです。MDIOは、High-Zバスのターンアラウンド周期を備えた双方向データ信号です。
MACがPHYに書き込むと、データは立ち下がりエッジで起動されます。つまり、200 ns -10 ns = 190 nsがフライトタイム、信号の整定、およびレシーバーでのセットアップにあります。また、データは次のネガティブエッジまで切り替わらないため、200 nsのホールド時間があります。これらの要件は、ほぼすべてのボードトポロジーで簡単に満たすことができます。MACがPHYから読み取る場合、PHYは読み取りデータを0から300 nsでMACに戻し、100 nsから10 nsを引いたセットアップ時間、つまり90 nsをフライトタイム、信号の整定、およびレシーバーでのセットアップに残す必要があります。この要件もまた、非常に簡単に満たすことができます。
ガイドライン: MDCおよびMDIOのボードプルアップ
どちらの信号も外部プルアップ抵抗を必要とします。正確なプルアップ抵抗値については、お使いのPHYのデータシートを確認してください。1K Ωが一般的な抵抗値です。
ガイドライン: MDIOが要求するインターフェイスのタイミングを確認します。
MDIOは、MDCに関して10 nsのデータのセットアップとホールド時間を必要とします。
2.3.1.4. PHYインターフェイス・デザインの一般的な考慮事項
2.3.1.4.1. シグナル・インテグリティー
ガイドライン: SoCデバイスのオンチップ終端 (OCT) を利用します。
インテル® Stratix® 10デバイスは、多くの設定に合わせて出力を調整できます。50 Ωの出力インピーダンスが多くの場合において最適な値です。 インテル® Quartus® Primeは、RGMII出力でのキャリブレーションなしに自動的に直列OCTを使用します。 インテル® Quartus® Primeのフィッターレポートを確認し、インターフェイスの出力のOCT設定を検証してください。
ガイドライン: 適切なボードレベルの終端をPHY出力で使用します。
いくつかのPHYのみが出力のI/O調整を提供するため、 インテル® では、シミュレーターを使用し インテル® Stratix® 10デバイスへの信号パスを検証することを推奨しています。必要に応じてPHY出力ピン付近の各信号に直列抵抗を配置し、反射を減らします。
ガイドライン: PHY TX_CLKおよびEMAC RX_CLK入力での反射を最小限に抑え、ダブルクロッキングを防ぎます。
接続が「T」としてルーティングされる場合、REF_CLKロードでダブルエッジが見られないようにシグナル・インテグリティーを維持する必要があることに注意してください。REF_CLKロードでの反射を最小限に抑え、ダブルクロッキングを防ぎます。
ガイドライン: シグナル・インテグリティー (SI) シミュレーション・ツールを使用します。
SIシミュレーションは、これらの単方向信号で容易に使用できます。これらの信号はほとんどの場合においてポイントツーポイントであるため、各信号に配置する適切な直列抵抗を決定するだけで通常は十分です。多くの場合この抵抗は必要ありませんが、これを決定する際はデバイスのドライブ強度とトレース長、およびトポロジーを検討する必要があります。
2.3.2. USBインターフェイスのデザイン・ガイドライン
インテル® Stratix® 10 HPSでは、1.8 Vの専用HPS I/Oを使用し、組み込みUSB MACを業界標準のUSB 2.0 ULPI PHYに直接接続することができます。FPGA配線リソースを使用せず、タイミングが固定されているため、デザインは簡潔になります。
このガイドでは、サポートされているすべてのPHY動作速度 (高速HS 480 Mbps、フルスピードFS 12 Mbps、および低速LS 1.5 Mbps) を網羅するデザイン・ガイドラインについて説明します。
ガイドライン: インテル® では、デバイスがクロックを供給する場合のUSB PHYモードと、外部クロックがソースの場合のUSB PHYモードをどちらもサポートするボードをデザインすることを推奨しています。
Stratix 10 SoC開発キットはMicrochip USB3320 USB PHYを使用します。このデバイスは、HPS USBモジュールで動作することが知られています。
- STP
- NXT
- DIR
最後に、60 MHzの静的クロックがPHYまたは外部オシレーターから駆動され、一部のHPSからUSB MACのレジスターアクセスなどの動作に必要とされます。PHYメーカーより提供されているリセットおよび電源投入に関する推奨事項に従っていることを確認してください。
- 出力モード—出力クロックモードでは、クロックはUSB
PHYによって生成されます。信号はすべてこのクロックに同期しています。図 5. 出力モード
- 入力モード—入力クロックモードでは、PHYは外部ソースからのクロックを受信します。信号はすべてこのクロックに同期しています。このモードにおいてクロックは、FPGAのPLLまたは外部ソースで生成できます。図 6. 入力モード
ガイドライン: USB信号のトレース長が最小になっていることを確認します。
ガイドライン: シグナル・インテグリティーが考慮されていることを確認します。
シグナル・インテグリティーは主に、PHYからHPSのMACに駆動されるCLK信号において重要です。これらの信号は最大長のポイントツーポイントであるため、通常は終端せずに実行できますが、インテルでは、トレースをシミュレーションし、反射を最小限に抑えることを推奨しています。シミュレーションで特に示されない限り、FPGAからの50 Ω出力設定を使用することが一般的に推奨されます。可能であれば、PHYベンダーが提供する同様の設定を使用します。
ガイドライン: OTG動作を使用する場合はデザインを適切に行います。
On-the-Go (OTG) 機能を使用する場合、SoCはホストまたはエンドポイントになることができます。ホストモードにおいては、USBフラッシュドライブをサポートしている場合や、潜在的にUSBハードドライブをサポートしている場合などの電力供給を考慮してください。これらの電力要件と逆電流は通常、インテルStratix 10 SoC FPGA 開発キットで使用されているような外部ダイオードと電流リミッターを使用し考慮する必要があります。
インテルStratix 10 SoC開発ボードの回路図に関する内容は、Stratix 10 FPGA Development Kit User Guideを参照ください。
2.3.3. SD/MMCおよびeMMCカード・インターフェイスのデザイン・ガイドライン
- SDバージョン3.0に加え3.01
- Embedded MMC (eMMC) バージョン4.53 に加え4.51および5.0
ガイドライン:1.8VのSDカードを使用している場合、電圧変換トランシーバーが適切に実装されていることを確認してください。
HPS I/Oは、1.8 Vの固定電圧レベルを使用します。多くのSDカードには、1.8 Vまたは3.3 Vで信号を送るオプションがありますが、初期電源投入時の電圧要件は3.3 Vです。3.3VのSDカードを使用する場合は、電圧切り替えが必要です。カードに電力を供給するための正しい電圧レベルを得るには、電圧変換トランシーバーが必要です。
Stratix 10 Hard Processor System Technical Reference Manualの「SD/MMC Controller」の章にあるVoltage Switchingの項目で説明されているガイドラインに従ってください。
HPS I/Oバンクの電圧 | SDカードの電圧 | レベルシフターの必要性 |
---|---|---|
1.8 V | 3.0 V | あり |
1.8 V | 1.8 V | なし |
2.3.4. フラッシュ・インターフェイスのデザイン・ガイドライン
ガイドライン: QSPIフラッシュをSoCデバイスに接続します。
HPSにはQSPIフラッシュ・コントローラーがありません。HPSは、SDMのQSPIコントローラーにアクセスできます。
インテル® Stratix® 10 SoC開発キットは、MT25QU02GCBB8E12-0SIT QSPIフラッシュメモリーを使用しています。このデバイスは、SDM QSPIコントローラーで動作することが分かっています。
QSPIフラッシュをSDM QSPIインターフェイスに接続する際の考慮事項については、Intel Stratix 10 Hard Processor System Technical Reference Manualを参照ください。
2.3.4.1. NANDフラッシュ・インターフェイスのデザイン・ガイドライン
ガイドライン: 選択したNANDフラッシュデバイスが、8ビットまたは16ビットのONFI 1.0に準拠するデバイスであることを確認してください。
- 8ビットまたは16ビットのONFI 1.0に準拠する外部フラッシュデバイス
- 大容量ストレージ使用に向けたx16のサポート
- シングルレベル・セル (SLC) もしくはマルチレベル・セル (MLC)
- ce#とrb#ピンのペアは1組のみブートソースに利用可能です。大容量ストレージには3組まで追加ペアを使用できます。
- ページサイズ: 512バイト、2 KB、4 KB、 8 KB
- ブロックごとのページ: 32、64、128、256、384、512
- 誤り訂正符号 (ECC) セクターサイズは、512バイト (4、8、16ビット訂正)、または1024バイト (24ビット訂正) にプログラム可能です。
製品番号 | 製造元 | 容量 | 電圧 | サポートカテゴリー |
---|---|---|---|---|
MT29F8G16ABBCAH4-IT |
Micron | 8 GB | 1.8 V | 動作確認済み |
2.3.5. UARTインターフェイスのデザイン・ガイドライン
HPSブート・ファームウェアは、ブートプロセス全体を通してコンソール・ステータス・メッセージをHPS UARTポートに出力します。ブート・ファームウェア・コンソール出力を確認する場合は、次のガイドラインを考慮し、HPS UARTペリフェラルをHPSブート時に使用可能なデバイスI/Oに割り当てます。
ガイドライン: HPS先行のブートおよびコンフィグレーション・スキームでは、HPS UARTペリフェラルをHPS専用I/Oバンクに割り当てます。
SDMは、HPSを起動する前にHPS専用I/OおよびHPS SDRAM I/Oをコンフィグレーショし、ユーザーモードにリリースします (Early I/O Releaseフロー)。そのほかのFPGA I/Oおよびファブリックは、ブートフローの後半で残りのFPGAがコンフィグレーショされるまで使用できません。
ガイドライン: FPGA先行のブートおよびコンフィグレーション・スキームでは、HPS UARTをHPS専用I/OもしくはFPGA I/Oに割り当てることができます。
SDMはHPSを起動する前に、I/Oリング全体を含むFPGA部分全体をコンフィグレーションします。
ガイドライン: FPGAファブリックを介してUART信号をルーティングする場合、フロー制御信号を適切に接続します。
信号 | 方向 | 接続 |
---|---|---|
CTS | 入力 | Low |
DSR | 入力 | High |
DCD | 入力 | High |
RI | 入力 | High |
DTR | 出力 | 接続なし |
RTS | 出力 | 接続なし |
OUT1_N | 出力 | 接続なし |
OUT2_N | 出力 | 接続なし |
詳細はIntel Stratix 10 Hard Processor System Technical Reference Manualの「UART Controller」の章を参照ください。
2.3.6. I2Cインターフェイスのデザイン・ガイドライン
ガイドライン: FPGAファブリックを介してI2C信号をルーティングする際は、オープンドレイン・バッファーをインスタンス化します。
FPGAを介しI2C信号をルーティングする場合、HPSからFPGAファブリックへのI2Cピン (i2c*_out_data、i2c*_out_clk) はオープンドレインではなく、論理レベルが反転していることに注意してください。よって、論理レベル0をI2Cバスに駆動するには、対応するピンをHighに駆動します。この実装は、それらをトライステート・バッファーの出力イネーブルに直接結び付けるために使用できるので便利です。オープンドレイン・バッファーを実装するには、altiobuffを使用する必要があります。
ガイドライン: プルアップがボードデザインの外部SDAおよびSCL信号に追加されていることを確認します。
I2C信号はオープンドレインであるため、バス上のデバイスがバスをLowに引き下げていない際に、バスを確実にHighに引き上げるためにプルアップが必要です。
ガイドライン: HighおよびLowのクロックカウントが、I2Cインターフェイスの速度に対して正確にコンフィグレーションされていることを確認します。
- SDM—125 MHz
- HPS—100 Mhz
2.4. HPS EMIFデザインの考慮事項
HPSの重要なコンポーネントは、外部SDRAMメモリーです。以下に示すデザインに関する考慮事項は、SDRAMメモリーとHPS間のインターフェイスを適切にデザインするためのものです。
外部SDRAMをHPSに接続する際は、次のEMIFプランニング・ツールと必須ドキュメントを参照してください。
EMIFプランニング・ツール
ツール | 説明 |
---|---|
インテル® FPGA 向け外部メモリー・インターフェイス IP - サポート・センター | インテル® FPGA 向け外部メモリー・インターフェイス IP - サポート・センターは、 インテル® FPGAに向けた外部メモリー・インターフェイスのデザインを支援する一連のツールおよびドキュメント・リソースです。 |
EMIFデバイスセレクター | これは、アプリケーションの各外部メモリー・インターフェイスの種類およびパフォーマンス特性に基づき、 インテル® Stratix® 10 SoCデバイスパッケージのリストを短時間で特定するための使い勝手の良いツールです。このツールは、リスト内の各デバイスパッケージの残りの汎用I/Oおよびトランシーバー数を報告します。 |
EMIFスペック・エスティメーター | これは、必要なSoCデバイスの速度グレードを決定するための使いやすいツールです。アプリケーションのメモリー・インターフェイスの数、タイプおよびパフォーマンス特性を実装できるデバイスパッケージを特定後にこのツールを使用します。 |
EMIF IPの生成および、 インテル® Quartus® Primeのコンパイルとタイミング・クロージャー支援ツールに関しては、インテル FPGA 向け外部メモリー・インターフェイス IP - サポート・センターを参照ください。
必須ドキュメント
ドキュメント | 説明 |
---|---|
Intel Stratix 10 General Purpose I/O User Guide |
Intel Stratix 10 General Purpose I/O User Guideは、I/Oカラムのアーキテクチャーと、HPSにアクセス可能な特定のハード・メモリー・コントローラー・ブロックの位置について説明しています。 HPSにアクセス可能なハード・メモリー・コントローラー・ブロックをHPSに接続するためのガイダンスについては、General Purpose I/O User GuideのSection 1.3: Modular I/O Banks Location and Pin Counts in Stratix 10 Devicesを参照ください。この章は、 インテル® Stratix® 10ファミリーのすべてのバリアントにおけるデバイスとパッケージの組み合わせすべてに対するI/Oカラムとバンク位置を示しています。これには、アクセス可能なバンクに対するHPSの相対的な位置も含まれます。 |
External Memory Interfaces Intel Stratix 10 FPGA IP User Guide |
Intel Stratix 10 External Memory Interfaces User Guideには、HPS外部メモリー・インターフェイスに使用される特定のI/Oバンクおよび、アドレスもしくはコマンド、ECCおよびデータ信号の位置を理解するための詳細が含まれています。このユーザーガイドにはまた、それらの外部メモリー・インターフェイス信号のバンク内での配置における制約や、デフォルトの配置から変更することができる柔軟性についての重要な情報も含まれます。インテルでは、このユーザーガイドで提供されている内容すべてを十分に把握することを推奨していますが、アプリケーションでHPS IPに向けて インテル® Stratix® 10 EMIFを適切にデザインするためには、次の章を理解していることが前提となります。
|
次のデザイン・ガイドラインは、上記の参照ドキュメントに記載されている情報を補足します。
2.4.1. HPSをSDRAMに接続するための考慮事項
インテル® Stratix® 10 HPSのハード・メモリー・コントローラーは、ほかのハード・メモリー・コントローラーとともにFPGA I/Oカラムにあります。HPSは1つのハード・メモリー・コントローラーのみを使用でき、それは、アドレスまたはコマンド、およびECC信号が属するI/Oバンク2MのHPSブロックの最も近くに配置されます。I/Oバンク2Nは、16ビットおよび32ビットのインターフェイスDQ/DQSデータグループ信号に使用します。I/Oバンク2Lは、64ビットのインターフェイスDQ/DQSデータグループ信号に使用されます。
インテル® Stratix® 10 HPS EMIF IPのインスタンス化
外部SDRAMを インテル® Stratix® 10 HPSに接続するには、HPSに固有のEMIF IPを使用する必要があります。次のガイドラインに従い、正しいEMIF IPをHPSに適切にインスタンス化およびコンフィグレーションしてください。
ガイドライン: プラットフォーム・デザイナーで、 インテル® Stratix® 10外部メモリー・インターフェイスをHPS IPに向けてインスタンス化します。
プラットフォーム・デザイナーで特定のEMIF IPを使用し、HPSを外部SDRAMメモリーに接続する必要があります。
EMIFモジュールはIPカタログペインにあります。Library > Processors and Peripherals > Hard Processor Components > External Memory Interfaces for HPS Intel Stratix 10 の順に選択してください。
ガイドライン: hps_emifコンジットをHPSコンポーネントに接続します。
プラットフォーム・デザイナーでHPSをEMIFに接続するには、インスタンス化されたemif_s10_hps_0モジュールのhps_emifコンジットを、stratix10_hps_0 moduleのhps_emifコンジットに接続する必要があります。
ガイドライン: デバイスのコンフィグレーションを開始する前に、フリーランニングで安定したリファレンス・クロック・ソースを外部メモリー・インターフェイスに提供する必要があります。
詳細は、Intel Stratix 10 External Memory Interfaces IP User Guideを参照ください。
ガイドライン: HPSが外部SDRAMまたはL3 SDRAMインターコネクトのリソースにアクセスしている間、HPS EMIF IPブロックがリセットされないようにしてください。
アプリケーションがHPS EMIF IPのリセットアサートと連携してコンテキストを保存および回復できない限り、HPS EMIF IPブロックへのリセットのアサートは、HPSのリセットアサートに一致する必要があります。これは、HPS EMIFリセット入力を、HPSリセット出力 (h2f_reset、h2f_cold_resetなど) または、HPSコールドリセット入力もソースするシステム内のほかのリセット (nCONFIGおよびHPS_COLD_nRESETリセット入力ピンなど) ソースからのリセットの1つまたは組み合わせに接続するだけで実現できます。
上記で説明されている方法ではなく、HPSをリセットせずにHPS EMIF IPをリセットする場合、アプリケーションはHPS EMIF IPリセットがアサートされる前に、リセット・マネージャーのbrgmodrstレジスター、ビット6 (ddrsch) を使用してL3 SDRAMインターコネクトをリセットにする必要があります。また、HPS EMIF IOPLLがロックされるまでそれを維持し続ける必要があります。そうでなければ、外部SDRAM、またはL3 SDRAMインターコネクトのリソースへのその後のアクセスにおいてプロセッサーがロックアップする可能性があります。
ガイドライン:HPSメモリー・コントローラーのデータ・マスク (DM) ピンが有効になっていることを確認します。
ガイドライン: HPS IPに向けたStratix 10 EMIFおよび、ご利用の特定のデバイスとパッケージの組み合わせでサポートされているコンフィグレーションのDDR3またはDDR4コンポーネント、もしくはモジュールのみを選択します。
インテルの外部メモリー・インターフェイス・スペック・エスティメーターは、インテルFPGAおよびSoCデバイスでサポートされている外部メモリー・インターフェイスの種類、コンフィグレーションおよび最大のパフォーマンス特性を比較できるパラメトリック・ツールです。
2.4.2. HPS SDRAM I/Oの位置
HPS IPに向けた インテル® Stratix® 10 EMIFは、すべての外部メモリー・インターフェイス信号に対するデフォルトのピン位置の割り当てを制約ファイル内に含みます。これはIP生成時に作成され、インテル Quartus Prime 開発ソフトウェア・プロ・エディションはデザインのコンパイル時にそれを読み取ります。
ガイドライン: インテルでは、自動的に生成されるこれらのデフォルトのピン位置割り当てを開始点として使用することを推奨しています。
場合によっては、このセクションに示されている制約を満たすために、デフォルトのピンアウトを変更する必要があります。
ガイドライン: ボードレイアウトを確定する前に、「output_files」サブフォルダーにある インテル® Quartus® Primeプロジェクトのピンアウトファイルで、HPSメモリー・コントローラーI/Oの位置を確認します。
インテル® Quartus® Primeはデフォルトで、出力レポート、ログファイルおよびプログラミング・ファイルをプロジェクト・フォルダーの「output_files」サブフォルダーに生成します。HPS EMIFのピン位置を含むデザインのピンアウトは、コンパイル後に.pinテキストファイルを確認します。
ガイドライン: HPSメモリー・インターフェイスに関連するI/Oがすべて、アクティブなHPS EMIF I/Oバンク内にあることを確認します。
EMIF幅 | バンク2Nのレーン | バンク2Mのレーン | バンク2Lのレーン | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
3 | 2 | 1 | 0 | 3 | 2 | 1 | 0 | 3 | 2 | 1 | 0 | |
16ビット | GPIO | 16ビットデータ | NC4 | アドレス/コマンド/RZQ/RefClk | GPIO | |||||||
16ビット + ECC | GPIO | 16ビットデータ + ECC | アドレス/コマンド/RZQ/RefClk | GPIO | ||||||||
32ビット | 32ビットデータ | NC | アドレス/コマンド/RZQ/RefClk | GPIO | ||||||||
32ビット + ECC | 32ビットデータ + ECC | アドレス/コマンド/RZQ/RefClk | GPIO | |||||||||
64ビット | 64ビットデータ | NC | アドレス/コマンド/RZQ/RefClk | 64ビットデータ | ||||||||
64ビット + ECC | 64ビットデータ + ECC | アドレス/コマンド/RZQ/RefClk | 64ビットデータ + ECC |
ピンの割り当て
- DQピンは、インデックス1、2、3、6、7、8、9、10のピンを使用する必要があります。最終的なピンアウトがこれらのインデックスのピンのみを使用している限り、DQビット間で位置を入れ替えることが可能です。つまり、DQ[0]とDQ[3]の位置を入れ替えることが可能です。
- DM/DBIピンはインデックス11のピンを使用する必要があります。これを柔軟に変更することはできません。
- DQSはインデックス4のピンを使用し、DQS#はインデックス5のピンを使用する必要があります。これを柔軟に変更することはできません。
- ALERT#ピンはI/Oバンク2N、レーン0、ピン・インデックス0または、I/Oバンク2N、レーン1、ピン・インデックス0に配置します。それ以外は、許可される場合にHPS REFCLK_P、アドレス、コマンド、RZQ、RefClkまたは汎用I/Oに使用される場合を除き、ピン・インデックス0は「接続なし」でなければなりません。
- データレーンの割り当ては、上記表に示されているとおりに行う必要があります。最終的なピンアウトが、上記表のとおりHPS EMIFコンフィグレーションで許可されるレーンのみを使用している限り、バイトレーン全体の位置を入れ替えることが可能です。つまり、バイト0とバイト1の位置を入れ替えることができます。
- I/Oバンク2Mのレーン0、1および2はアドレス、コマンド、RZQ、RefClkにのみ使用し、それ以外の場合は「接続なし」でなければなりません。
- アドレスおよびコマンドピンの配置はデフォルトから変更することはできません。
- ECCを使用しない場合、IOバンク2Mのレーン3は「接続なし」にする必要があります。ECCを使用している場合、ECC DQSグループは、特に制限されていない単一のデータレーンのいずれかに配置できます。つまり、2Mに配置されるECC DQSグループに対する要件はありません。
- HPS REFCLK_PはIOバンク2Mのレーン2、ピン・インデックス0を使用し、HPS REFCLK_NはIOバンク2Mのレーン2、ピン・インデックス1を使用する必要があります。
- RZQはIOバンク2Mのレーン2、ピン・インデックス2を使用する必要があります。
DQまたはDQSグループの配置
コンフィグレーション | DQSグループの配置 |
---|---|
16ビット | 2NのI/Oレーン0および1に配置する必要があります。 |
16ビット + ECC | 2NのI/Oレーン0と1、および2MのI/Oレーン3に配置する必要があります。 |
32ビット | 2Nに配置する必要があります。 |
32ビット + ECC | 2Nおよび2MのI/Oレーン3に配置する必要があります。 |
64ビット | 2Nと2Lに配置する必要があります。 |
64ビット + ECC | 2N、2Lおよび2MのI/Oレーン3に配置する必要があります。 |
未使用のHPS EMIF I/OをFPGA GPIOとして利用する
- バンク2N (データ[31:0])—16ビット・インターフェイスの未使用レーンはFPGA GPIOに利用可能です。
- バンド2M (Addr/Cmd/ECC)
- レーン0、1、2はFPGA GPIOとして利用できません。
- ECCを使用していない場合、レーン3はFPGA GPIOとして利用できません。
- バンク2L (データ[63:32])—32ビット以下のインターフェイスの未使用レーンはFPGA GPIOとして利用可能です。
2.5. HPSメモリーのデバッグ
ガイドライン:FPGA EMIFと外部メモリー・ツールキットを使用し、 メモリー・インターフェイスが動作することを確認します。
HPS SDRAMコントローラーは外部メモリー・インターフェイス・ツールキットをサポートしていないため、まずHPSメモリー・コントローラー以外を使用しメモリー・インターフェイスが動作することを確認してください。FPGAメモリー・コントローラーをインスタンス化し、HPSメモリー・コントローラーが使用するI/Oと同じI/Oにルーティングするデザインを作成します。インターフェイスがEMIFツールキットで動作することを確認後、HPS IPに向けた インテル® Stratix® 10外部メモリー・インターフェイスを適切にインスタンス化してください。インスタンス化は、External Memory Interface Handbook Volume 3: Reference Materialの「Compiling Intel Stratix 10 EMIF IP with the Intel Quartus Prime Software」の章にあるサブセクション、Instantiating the Intel Stratix 10 EMIF IPの説明に従い行います。
- External Memory Interface Handbook Volume 3: Reference Material
- External Memory Interfaces Intel Stratix 10 FPGA IP User Guide
- インテル® FPGA デバイス用 ピンアウトファイル
2.6. HPSのバウンダリー・スキャン
HPS JTAG インターフェイスは、バウンダリー・スキャン・テスト (BST) をサポートしていません。HPS I/Oでバウンダリー・スキャン・テストを実行するには、最初にFPGA JTAGとHPS JTAGを内部でチェーン接続し、FPGA JTAGからバウンダリー・スキャンを発行する必要があります。
ガイドライン: FPGA JTAGインターフェイスとHPS JTAGインターフェイスを内部でチェーン接続し、バウンダリー・スキャン・テストを実行します。
FPGAとHPS JTAGを内部でチェーン接続するには、QuartusのDevice and Pins Optionsに移動し、Configurationカテゴリーを選択します。HPS debug access port (DAP) 設定で、ドロップダウン・オプションからSDM Pinsを選択します。バウンダリー・スキャンを使用しない場合、FPGA JTAGとHPS JTAGインターフェイスは個別に使用することができます。HPS専用I/OをHPS JTAGのインターフェイスとして選択するには、ドロップダウン・オプションからHPS Pinsを選択します。
2.7. エンベデッド・ソフトウェアのデバッグとトレース
このデバイスには、FPGA JTAGおよびHPS JTAGのJTAGポートが1つだけあります。FPGA JTAGおよびHPS JTAGはチェーン接続したり個別に使用したりできます。
ガイドライン: インテル® では、開発およびフィールド問題のデバッグや診断に使用することができる、ボードへの利用可能なJTAG接続を備えることを推奨しています。
HPSは、2つのトレース・インターフェイスをHPS専用I/OもしくはFPGA I/Oを介して提供します。HPS専用I/Oを介するインターフェイスは16ビットDDRインターフェイスで、低帯域幅トラフィックのトレースに使用できます (低周波数で動作するMPUなど)。
トレース帯域幅を向上させるには、標準トレース・インターフェイスであるFPGAへの32ビット・シングル・データレート・インターフェイスを使用することができます。トレースモジュールは一般的にトレースデータがダブル・データレートで送信されることを想定しているため、シングル・データレートのトレースデータをダブル・データレートに変換する必要があります。
インテルでは、DDIO Megawizard IPをインスタンス化し、それを出力専用モードに設定してこの変換を実行することを推奨しています。トレースデータの最下位16ビットは最初にオフチップに送信される必要があるため、それらのビットをDDIO IPのdatain_l[15:0]ポートに接続します。
2.8. インテル Stratix 10 SoC FPGAのボード・デザイン・ガイドライン改訂履歴
ドキュメント・バージョン |
変更内容 |
---|---|
2019.04.17 | RGMIIを使用する際のタイミング問題のため、「HPS EMAC PHYインターフェイス」および「RGMIIへの適合」の章からRGMIIのインスタンスを削除しました。 |
2019.02.27 | リモート・システム・アップデート (RSU) の内容を追加しました。 |
2018.12.24 |
|
2018.09.24 |
|
2018.05.07 |
|
2018.03.01 |
|
2017.11.06 | 初版 |
3. Stratix 10 SoC FPGAのFPGAとの接続
HPSとFPGAファブリック間のメモリーマップによる接続は、デザインの最良のパフォーマンスを実現するための重要なツールです。推奨されるトポロジーに関するこの章のガイドラインを使用し、システムのパフォーマンスを最適化してください。
デザインのFPGAの残りの部分に関するデザイン・ガイドラインは、Stratix 10 デバイスのデザイン・ガイドラインで提供されています。
3.1. HPSメモリーマップド・インターフェイスの概要
- HPS-to-FPGAブリッジ: 32、64、または128ビット幅のAdvanced Microcontroller Bus Architecture ( AMBA* ) Advanced eXtensible Interface ( AXI* )-4
- Lightweight HPS-to-FPGAブリッジ: 32ビット幅AXI-4
- FPGA-to-HPSブリッジ: 128ビット幅ACE*-Lite
- FPGA-to-SDRAM AXI-4ポート: 32、64、128ビット幅の3つのインターフェイスにより、HPSに接続するSDRAMにFPGAが直接アクセスすることを可能にします。
3.1.1. HPS-to-FPGAブリッジ
ガイドライン: HPS-to-FPGAブリッジを使用し、FPGAがホストするメモリーをHPSに接続します。
HPS-to-FPGAブリッジにより、マイクロプロセッサー・ユニット (MPU)、DMA、または統合されたマスターを備えるペリフェラルなどのHPSのマスターは、SoCデバイスのFPGA部分がホストをするメモリーにアクセスできます。このブリッジは32、64、128ビットのデータパスをサポートするため、ブリッジに接続されたFPGAファブリックの最大スレーブデータ幅に合わせて幅を調整できます。このブリッジは、バースト転送を実行するマスターが使用することを目的としており、FPGAファブリックのペリフェラル・レジスターにアクセスするために使用することは避けてください。コントロールおよびステータス・レジスター・アクセスは、Lightweight HPS-to-FPGAブリッジに送信します。
ガイドライン: HPS-to-FPGAブリッジに接続されたメモリーがHPSブートに使用される場合、SoCデバイスのFPGA部分を最初にコンフィグレーションしてください。
HPS-to-FPGAブリッジは、MPUをFPGAから起動する場合にアクセスされます。MPUをFPGAから起動する前に、SoCデバイスのFPGA部分をコンフィグレーションし、HPS-to-FPGAブリッジをアドレス指定可能なスペースに再マッピングする必要があります。これを行わないと、ブートプロセス中のHPS-to-FPGAブリッジへのアクセスでバスエラーが発生します。これらの要件を満たすには、FPGA先行のブートおよびコンフィグレーション・スキームを使用します。ブート・ファームウェア生成のための標準ツールフローは、HPS-to-FPGAブリッジをアドレス指定可能なメモリー・スペースにマッピングします。
FPGA先行のブートおよびコンフィグレーション・スキーム、Stratix 10 HPSに向けたブート・ファームウェア生成に関する詳細は、Intel Stratix 10 SoC Boot User Guideを参照ください。
3.1.2. Lightweight HPS-to-FPGAブリッジ
ガイドライン: Lightweight HPS-to-FPGAブリッジを使用し、HPSで制御する必要があるIPを接続します。
Lightweight HPS-to-FPGAブリッジによりHPSのマスターは、SoCデバイスのFPGA部分のメモリーマップされたコントロール・スレーブ・ポートにアクセスできます。通常、HPS内のMPUのみがこのブリッジにアクセスし、FPGAのペリフェラルへのコントロールおよびステータス・レジスター・アクセスを実行します。
ガイドライン: Lightweight HPS-to-FPGAブリッジをFPGAメモリーに使用しないでください。代わりに、HPS-to-FPGAブリッジをメモリーに使用します。
MPUがペリフェラル内のコントロールおよびステータス・レジスターにアクセスする場合、これらのトランザクションは通常、厳しく順序付けられます (ポストされません)。Lightweight HPS-to-FPGAブリッジをレジスター・アクセス専用にすることで、バースト・トラフィックが代わりにHPS-to-FPGAブリッジにルーティングされるため、アクセス時間が最小限に抑えられます。ほとんどのIPコアは32ビットのコントロールおよびステータス・レジスターを実装しているため、Lightweight HPS-FPGAブリッジは、FPGAファブリックへの固定32ビット幅の接続を備えています。ただしプラットフォーム・デザイナーは、FPGA部分で生成されたインターコネクトで、32ビット以外の幅にトランザクションを適応させることができます。
3.1.3. FPGA-to-HPSブリッジ
ガイドライン: FPGA-to-HPSブリッジを、FPGAのマスターからHPSへのキャッシュ・コヒーレンシーなメモリー・アクセスに使用します。
FPGA-to-HPSブリッジにより、FPGAファブリックに実装されたマスターは、HPS内のメモリーおよびペリフェラルにアクセスできます。このブリッジは、固定の128ビットのデータパスをサポートします。プラットフォーム・デザイナーは、生成されたインターコネクトで幅の狭いマスターに対しデータ幅を適応させることができます。
ガイドライン: FPGA-to-HPSブリッジは、キャッシュ・コヒーレンシーなメモリー・アクセスをACE-Liteプロトコルでサポートします。
FPGAマスターは、キャッシュ・コヒーレンシーなアクセスにACE-Liteのキャッシュ信号拡張を使用する必要があります。
キャッシュ・コヒーレンシーなトランザクションのためのACE-Liteプロトコル拡張に関しては、 Arm* DeveloperウェブサイトのAXI and ACE Protocol Specificationを参照ください。
3.1.4. FPGA-to-SDRAMポート
ガイドライン: FPGAのマスターからHPS SDRAMへのキャッシュ不可能なアクセスには、FPGAto-SDRAM ポートを使用します。
FPGA-to-SDRAMポートにより、FPGAファブリックに実装されたマスターは、CCUを経由するトランザクションなしにHPS SDRAMに直接アクセスできるようになります。FPGA-to-SDRAMポートは3つあり (FPGA-to-SDRAM0、FPGA-to-SDRAM1、FPGA-to-SDRAM2)、32、64、128ビットのデータパスをサポートしています。これらのインターフェイスはHPS SDRAMサブシステムにのみ接続するため、インテルでは、FPGAがHPS SDRAMへの高スループットで低レイテンシーなアクセスを必要とする場合に、デザインにそれらを使用することを推奨しています。FPGAがキャッシュ・コヒーレンシーなアクセスを必要とし、ACE-Liteプロトコルでキャッシュ・コヒーレンシーなアクセスをサポートするFPGA-to-HPSブリッジを使用する場合は、この推奨事項は当てはまりません。
3.1.5. インターフェイス帯域幅
HPSとFPGAファブリック間でデータを移動するために使用するインターフェイスを特定するには、各インターフェイスの帯域幅を理解する必要があります。次の図は、HPSとFPGAファブリック間で利用可能なピーク・スループットおよびHPSの内部帯域幅を表しています。ここに示す例では、FPGAファブリックは400 MHz、MPUは1200 MHz、そして64ビットの外部SDRAMは1067 MHzで動作することを想定しています。
各HPSインターフェイスの相対遅延とスループット
インターフェイス |
トランザクションの使用例 |
レイテンシー |
スループット |
---|---|---|---|
HPS-to-FPGA |
MPUがFPGAのメモリーにアクセスする場合 |
中 |
中 |
HPS-to-FPGA |
MPUがFPGAのペリフェラルにアクセスする場合 |
中 |
非常に低い |
Lightweight HPS-to-FPGA |
MPUがFPGAのレジスターにアクセスする場合 |
低 |
低 |
Lightweight HPS-to-FPGA |
MPUがFPGAのメモリーにアクセスする場合 |
低 |
非常に低い |
FPGA-to-HPS |
FPGAマスターがキャッシュ・コヒーレントではないSDRAMにアクセスする場合 |
高 |
中 |
FPGA-to-HPS |
FPGAマスターがHPSオンチップRAMにアクセスする場合 |
低 |
高 |
FPGA-to-HPS |
FPGAマスターがHPSペリフェラルにアクセスする場合 |
低 |
低 |
FPGA-to-HPS |
FPGAマスターがコヒーレント・メモリーにアクセスしキャッシュミスになる場合 |
高 |
中 |
FPGA-to-HPS |
FPGAマスターがコヒーレント・メモリーにアクセスしキャッシュヒットになる場合 |
低 |
中から高 |
FPGA-to-SDRAM |
FPGAマスターが単一のFPGA-to-SDRAMポートを介してSDRAMにアクセスする場合 |
中 |
高 |
FPGA-to-SDRAM |
FPGAマスターが複数のFPGA-to-SDRAMポートを介してSDRAMにアクセスする場合 |
中 |
非常に高い |
ガイドライン: HPS-to-FPGAブリッジを使用し、MPUからFPGAのペリフェラル・レジスターにアクセスすることは避けてください。
HPS-to-FPGAブリッジはトラフィックのバーストに最適化されており、ペリフェラル・アクセスは通常、1ビートのみの短いワードサイズのアクセスです。そのため、HPS-to-FPGAブリッジを介してペリフェラルにアクセスした場合、すでにインフライト状態のほかのバースト・トラフィックによってトランザクションがストールする可能性があります。
ガイドライン: Lightweight HPS-to-FPGAブリッジを使用し、MPUからFPGAのメモリーにアクセスすることは避けてください。
Lightweight HPS-to-FPGAブリッジは、非バーストのトラフィックに向け最適化されており、メモリーアクセスは通常、バーストとして実行されます (キャッシュ動作のために多くの場合32バイトです)。そのため、Lightweight HPS-to-FPGAブリッジを介してメモリーにアクセスすると、スループットが制限されます。
ガイドライン: FPGA-to-HPSブリッジを使用し、非キャッシュ・コヒーレントのSDRAMにFPGAのマスターからアクセスすることは避けてください。
FPGA-to-HPSブリッジは、SDRAM以外のアクセス (ペリフェラル、オンチップRAM) に向け最適化されています。そのため、非コヒーレントなアクセスを実行してSDRAMに直接アクセスすると、FPGA-to-SDRAMポートへのアクセスに比べてレイテンシーが増加し、スループットが制限されます。
ガイドライン: FPGAのソフトロジック (DMAコントローラーなど) を使用し、共有データをHPSとFPGA間で移動します。MPUおよびHPS DMAコントローラーをこの目的で使用することは避けてください。
HPSとFPGA間で共有データを移動する場合、インテルでは、MPUまたはHPS DMAコントローラーを使用してデータを移動するのではなく、FPGAから行うことを推奨しています。FPGAがキャッシュ・コヒーレントのデータにアクセスする必要がある場合は、適切なACE-Liteキャッシュ拡張信号でFPGA-to-HPSブリッジにアクセスし、キャッシュ可能なトランザクションを発行する必要があります。キャッシュ・コヒーレントではないデータをFPGAまたはHPSに移動する必要がある場合は、FPGAロジックに実装されているDMAエンジンでFPGA-to-SDRAMブリッジポートの1つを介してデータを移動することにより、可能な限り最高のスループットを実現します。HPS内には、HPSとFPGAの間でデータを移動できるDMAエンジンが含まれていますが、その目的は、メモリーをマスターしないペリフェラルの支援、またはメモリー間のデータ移動をMPUに代わって提供することです。
3.2. 推奨されるシステムトポロジー
適切なシステムトポロジーを選択することは、可能な限り最高のスループットをデザインで実現することにつながります。最適なパフォーマンスを得るため、HPSとFPGA間でデータを移動するためのインテルのトポロジー・ガイドラインに従ってください。これらのガイドラインは、キャッシュ・コヒーレントおよび非キャッシュ・コヒーレントのデータ移動をどちらも網羅しています。
3.2.1. FPGAファブリックへのHPSのアクセス
HPSのマスターがFPGAファブリックにアクセスするために使用できるブリッジは2つあります。それぞれのブリッジは特定のトラフィック・パターンに対して最適化されているため、HPSマスターがFPGAファブリックにアクセスする必要がある場合、どちらのブリッジがシステムに適切かを決定する必要があります。
ガイドライン: Lightweight HPS-to-FPGAブリッジを介し、HPSをFPGAのソフト・ロジック・ペリフェラルに接続します。
ハードウェア・デザインにHPSからアクセス可能なペリフェラルがある場合、それらをLightweight HPS-to-FPGAブリッジに接続する必要があります。ペリフェラルは通常、厳密に順序付けられた (ポストされない) アクセスによって1レジスターずつHPS MPUからアクセスされます。アクセスは厳密に順序付けられているため、MPUからのトランザクションはスレーブからの応答が返されるまで完了しません。そのため、厳しく順序付けられたアクセスはレイテンシーに影響されやすくなります。よって、Lightweight HPS-to-FPGAブリッジをHPSに含むことで、厳密に順序付けられたアクセスのレイテンシーを低減させます。
ガイドライン: HPSは、HPS-to-FPGAブリッジを介しFPGAメモリーに接続します。
ハードウェア・デザインにHPSからアクセス可能なメモリーがある場合、それをHPS-to-FPGAブリッジに接続する必要があります。Lightweight HPS-to-FPGAブリッジとは異なり、HPS-to-FPGAブリッジは、DMA転送やFPGAメモリーからのMPUソフトウェア実行などのバースト・トラフィックに使用することを目的としています。
ガイドライン: HPSがFPGAロジックのメモリーおよびペリフェラルにアクセスする必要がある場合、HPS-to-FPGAブリッジとLightweight HPS-to-FPGAブリッジを使用します。
FPGAロジックにHPSからアクセス可能なメモリーとペリフェラルが混在する場合、HPS-to-FPGAブリッジとLightweight HPS-to-FPGAブリッジをどちらもデザインに含めることが重要です。ペリフェラル・アクセスは通常レイテンシーに影響されやすいため、これらのアクセスにLightweight HPS-to-FPGAブリッジを使用することで、ほかのバーストアクセスがHPS-to-FPGAブリッジを介してFPGAファブリックに行われる際にスタベーションを防ぎます。複数のHPSマスターがFPGAファブリックに同時にアクセスしている場合、両方のブリッジには並行してアクセス可能なため、ブリッジをどちらも含めることはシステムのパフォーマンス向上にもつながります。
3.2.2. 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 DMAを使用しデータをFPGAに移動させることは、HPS SDRAMへのDMA帯域幅が制限されているため非推奨です。HPS DMAは、MPUに代わってバッファーを移動させるために使用する、もしくはペリフェラルとメモリー間の転送に使用することを目的としています。そのため、FPGAがHPSメモリーのバッファーにアクセスする必要がある場合、もしくはHPSがFPGAに保存されているデータにアクセスする必要がある場合は、HPSがこれらの転送を開始するのではなく、FPGAのマスターがこれらの転送を実行することが常に推奨されます。
3.2.3. FPGAからのキャッシュ可能およびキャッシュ不可能なデータアクセスの例
3.2.3.1. 例1: FPGAでHPS SDRAMから直接データを読み取る
MPUがアクセスするものと同じデータのコピーにFPGAがアクセスするには、L1データキャッシュとL2キャッシュにデータのコピーが既にある場合はそれらをフラッシュする必要があります。HPS SDRAMにデータの最新コピーが含まれている場合にFPGAがこのデータにアクセスする最適なパスは、FPGAマスターがFPGA-to-SDRAMポートを介してデータを読み取ることです。
Stratix 10 HPSは、SDRAMへの128ビットポートを最大3つサポートするため、FPGAに最大3つのマスターを実装し、各ポートを介してSDRAMのデータにアクセスすることで読み取りスループットを最大化できます。FPGA-to-SDRAMポートを介してSDRAMへのパスを複数実装する場合、各ポートはそれぞれ独立して処理されるため、システムレベルで同期を行うようにしてください。1つのポートをほかのポートよりも優先する場合、各ポートのQoS設定を調整し、アプリケーションの必要性に応じてトラフィック・パターンを形成できます。 インテル® では、バースト対応可能なFPGAのマスターを使用し、4ビート以上のバースト長をポストできるFPGA-to-SDRAMポートから読み取ることを推奨しています。5
3.2.3.2. 例 2: FPGAでHPS SDRAMに直接データを書き込む
この例では、HPS MPUはFPGA内を起源とするデータへのアクセスを必要とします。データが書き込まれた後にMPUがコヒーレンシーを持ってデータにアクセスするためには、転送が開始される前にソフトウェアがキャッシュラインをフラッシュまたは無効化し、書き込み後、確実にSDRAMに最新データが含まれるようにする必要があります。キャッシュ操作を実行しないと、1つまたは複数のキャッシュラインが最終的にエビクションされ、FPGAマスターによって書き込まれたデータが上書きされる可能性があります。
3.2.3.3. 例3: FPGAでキャッシュ・コヒーレンシーなデータをHPSから読み取る
この例では、FPGAはHPSを起源とするデータへのアクセスを必要とします。HPSのMPUがこのデータに最近アクセスしたため、データがまだキャッシュに含まれている可能性があります。よって、FPGAがキャッシュされたデータにアクセスすることが最適だと考えられます。ダーティー・キャッシュ・ラインをフラッシュするソフトウェアのオーバーヘッドを回避するために、FPGAはFPGA-to-HPSブリッジに対してキャッシュ・コヒーレンシーな読み取りを実行できます。読み取られるバッファーは比較的小さいことが重要です。そうでない場合、L2キャッシュはほとんどの転送で、SDRAMからのデータの読み取りをスラッシングする可能性があります。大規模なバッファーの転送には、例1で示されているように、FPGAがFPGA-to-SDRAMポートから直接データを読み取るほうがより適切です。
ガイドライン: FPGA-to-HPSブリッジをターゲットとするフルアクセスを実行します。
トランザクションをキャッシュ可能にするには、FPGAマスターがFPGA-to-HPSブリッジから読み取りを行い、ACE-Liteプロトコルのキャッシュ拡張信号を利用する必要があります。キャッシュ・コヒーレンシーなアクセスのためのACE-Liteプロトコル信号拡張の詳細については、「関連情報」を参照ください。
ガイドライン: FPGA-to-HPSブリッジをターゲットにし、64バイトにアライメントされたキャッシュ可能なアクセスを実行します。
HPSのCCUは、キャッシュラインと同じサイズ (64バイト) のトランザクションに向けて最適化されています。そのため、データを64バイト境界に揃え、データ幅の調整後に、128ビットのFPGA-to-HPSブリッジポートへのバースト長が4ビートであることを確認する必要があります。例えば64ビットのFPGAマスターは、データを64バイトにアライメントし、バースト長8で64ビット全体のアクセスを実行する必要があります。
ガイドライン: キャッシュ可能なトランザクションごとに64バイトにアクセスします。
各バースト・トランザクションが64バイトにアクセスするようにします。各トランザクションは、64バイト境界で開始する必要があります。
FPGAマスター幅 (ビット) | アクセスサイズ (バイト) | バースト長 |
---|---|---|
32 | 4 | 16 |
64 | 8 | 8 |
128 | 16 | 4 |
3.2.3.4. 例4: FPGAでキャッシュ・コヒーレンシーなデータをHPSに書き込む
この例では、HPS MPUはFPGAを起源とするデータへのアクセスを必要とします。小さなデータブロックをMPUと共有する最も効率的なメカニズムは、FPGA内のロジックにHPSへのキャッシュ可能な書き込みを実行させることです。HPSに書き込まれるデータは、比較的小さなブロックの形式であることが重要です。これは、大きなブロックの書き込みはL2キャッシュのスラッシングにつながり、ほとんどの転送でキャッシュがSDRAMに書き込まれるようになるためです。大規模なバッファー転送においては、例2に示すようにFPGAがFPGA-to-SDRAMポートに直接データを書き込むほうが適切です。
ガイドライン: FPGA-to-HPSブリッジをターゲットとするフルアクセスを実行します。
トランザクションをキャッシュ可能にするには、FPGAマスターがFPGA-to-HPSブリッジに書き込み、ACE-Liteプロトコルのキャッシュ拡張信号を使用する必要があります。キャッシュ・コヒーレンシーなアクセスのためのACE-Liteプロトコル信号拡張に関する詳細は、関連情報を参照ください。
ガイドライン: FPGA-to-HPSブリッジをターゲットとし、32バイトにアライメントされたキャッシュ可能なアクセスを実行します。
HPSのCCUスレーブは、キャッシュラインと同じサイズ (32バイト) のトランザクションに向けて最適化されています。そのため、データを32バイト境界に揃え、データ幅の調整後に64ビットのCCUスレーブへのバースト長が4ビートであることを確認する必要があります。例えば、FPGA-to-HPSブリッジが128ビットのトランザクションに向けて設定されている場合、データを32バイトに揃え、バースト長2で128ビット全体のアクセスを実行する必要があります。
ガイドライン: L2 ECCが有効になっている場合、FPGA-to-HPSブリッジへのキャッシュ可能なアクセスが8バイト境界でアライメントされていることを確認します。
L2キャッシュでエラー検出と訂正 (ECC) を有効にする場合はまた、8バイトの各データグループが完全に書き込まれるようにする必要があります。L2キャッシュは64ビット境界でECC動作を実行するため、キャッシュ可能なアクセスを実行する際はかならずアクセスを8バイト境界に揃え、一度に8つのレーンすべてに書き込む必要があります。これらの規則に従わないとダブル・ビット・エラーが発生し、回復することができません。
ECCが有効になっているか無効になっているかにかかわらず、64バイトのキャッシュ・トランザクションは最高のパフォーマンスをもたらします。64バイトのキャッシュ・トランザクションの詳細については、例3「FPGAでキャッシュ・コヒーレンシーなデータをHPSから読み取る」の章にあるガイドライン: キャッシュ可能なトランザクションごとに64バイトにアクセスしますを参照してください。
ガイドライン: L2 ECCが有効になっている場合、FPGA-to-HPSブリッジへのキャッシュ可能なアクセスで8つの書き込みストローブのグループが有効になっていることを確認します。
- 32ビットFPGAマスターからのFPGA-to-HPSアクセスでは、書き込みバイトストローブをすべて有効にし、バースト長を2、4、8または16にする必要があります。
- 64ビットFPGAマスターからのFPGA-to-HPSアクセスでは、すべての書き込みバイトストローブを有効にする必要があります。
- 128ビットFPGAマスターからのFPGA-to-HPSアクセスでは、上位8または下位8 (もしくは両方) の書き込みバイトストローブを有効にする必要があります。
3.3. HPS-to-FPGAインターフェイス・デザインに推奨される開始点
ご利用のトポロジーに応じて、2つのハードウェア・リファレンス・デザインのいずれかをご自身のハードウェア・デザインの開始点として選択できます。
ガイドライン: インテルでは、HPSをFPGAのソフトIPに接続する例として、ゴールデン・ハードウェア・リファレンス・デザイン (GHRD) を開始点として使用することを推奨します。
ゴールデン・ハードウェア・リファレンス・デザイン (GHRD) は、デザインを開始するにあたり、システムのベースとして使用するのに最適なデフォルト設定とタイミングを備えています。
詳細は、「ゴールデン・ハードウェア・リファレンス・デザイン (GHRD)」の章を参照してください。
3.4. FPGAアクセラレーターに向けたタイミング・クロージャー
FPGAに公開されているHPSブリッジとFPGA-to-SDRAMポートは同期しています。また、クロック・クロッシングはインターフェイス内で実行されます。そのため、FPGAに面しているロジックとユーザーデザインのタイミングが収束することのみをTiming Analyzerで確認してください。HPSは割り込みを非同期と見なすため、HPSロジックはそれらを内部HPSクロックドメインに再同期します。よって、割り込みのタイミングを収束する必要はありません。
3.5. ブリッジのコンフィグレーションおよび使用方法に関する情報
デフォルトで、SSBLはすべてのブリッジのリセット解除しか行わず、自動的にブリッジをコンフィグレーションしたり有効にしたりしません。すべてのブリッジはデザインに応じてコンフィグレーションし有効にする必要があります。これは、SSBLによって実行される“u-boot.scr”スクリプトファイルを作成することで実現できます。ここでSSBLは、ブリッジのコンフィグレーションに必要なレジスターを変更します。この時点でブリッジはコンフィグレーションされ有効になり、その後のFPGAコンフィグレーション中にSSBLによって変更することはできません。
3.6. インテル Stratix 10 SoC FPGAのFPGAとの接続の改訂履歴
ドキュメント・バージョン |
変更内容 |
---|---|
2019.04.17 | メンテナンス・リリース |
2019.03.19 | メンテナンス・リリース |
2018.12.24 | メンテナンス・リリース |
2018.09.24 | FPGA先行のコンフィグレーション・モードと、HPS先行のブートモードにおけるブリッジのコンフィグレーションおよび使用方法に関する情報を追加しました。 |
2018.05.07 | メンテナンス・リリース |
2018.03.01 | メンテナンス・リリース |
2017.11.06 | 初版 |
4. Stratix 10 SoC FPGAのシステムに関する考慮事項
4.1. タイミングに関する考慮事項
- HPS EMAC PHYインターフェイス
- Reduced Media Independent Interface (RMII)
- Reduced Gigabit Media Independent Interface (RGMII)
- FPGA I/Oを介して接続されるPHYインターフェイス
- GMII/MII
- RMII—MII-to-RMIIアダプターを使用
-
Serial Gigabit Media Independent Interface (SGMII)—GMII-to-SGMIIアダプターを使用
- インテル® Management Data Input/Output (MDIO)
- GMII/MII
これらPHYインターフェイスのタイミングに関する考慮事項の詳細は、「HPSインターフェイスにおけるデザイン・ガイドライン」の章にある内容をそれぞれ参照してください。
4.1.1. FPGAアクセラレーターに向けたタイミング・クロージャー
FPGAに公開されているHPSブリッジとFPGA-to-SDRAMポートは同期しています。また、クロック・クロッシングはインターフェイス内で実行されます。そのため、FPGAに面しているロジックとユーザーデザインのタイミングが収束することのみをTiming Analyzerで確認してください。HPSは割り込みを非同期と見なすため、HPSロジックはそれらを内部HPSクロックドメインに再同期します。よって、割り込みのタイミングを収束する必要はありません。
コンジットは、プラットフォーム・デザイナーでサポートされる標準インターフェイスに適合しない信号を伝えます。このコンジットには、FPGAファブリックにルーティングされるHPSペリフェラル外部インターフェイスや、HPS DMAペリフェラル・リクエスト・インターフェイスなどがあります。
4.1.1.1. HPS先行のブートまたはFPGA先行のブートにおける考慮事項
ガイドライン: エンジニアリング・サンプル・デバイスの制約
エンジニアリング・サンプル (ES) デバイスは、デュアルフラッシュを使用するHPS先行ブートモードのみをサポートします。ESデバイスを使用し構築されるボードはすべて、HPS先行のブートモードをサポートするようにデザインする必要があります。本番環境で別のブートスキームを使用する場合は、デュアルフラッシュまたはシングルフラッシュで、HPS先行ブートおよびFPGA先行ブートの両方にボードをデザインすることが可能です。
ガイドライン: HPS先行のブートモードはEarly I/O Releaseを使用します。
このドキュメントのガイドラインに従い、Early I/O Releaseに向けてHPS SDRAMインターフェイスのボードおよびSoCデバイスのピン配置を適切にデザインしてください。
サポートされているブートモードの詳細については、Intel Stratix 10 SoC Boot User GuideおよびIntel Stratix 10 Hard Processor System Technical Reference Manualの「Boot and Configuration」の章を参照ください。
4.1.2. USBインターフェイスのデザイン・ガイドライン
インテル® Stratix® 10 HPSでは、1.8 Vの専用HPS I/Oを使用し、組み込みUSB MACを業界標準のUSB 2.0 ULPI PHYに直接接続することができます。FPGA配線リソースを使用せず、タイミングが固定されているため、デザインは簡潔になります。
このガイドでは、サポートされているすべてのPHY動作速度 (高速HS 480 Mbps、フルスピードFS 12 Mbps、および低速LS 1.5 Mbps) を網羅するデザイン・ガイドラインについて説明します。
ガイドライン: インテルでは、デバイスがクロックを供給する場合のUSB PHYモードと、外部クロックがソースの場合のUSB PHYモードをどちらもサポートするようにボードをデザインすることを推奨しています。
Stratix 10 SoC開発キットはMicrochip USB3320 USB PHYを使用します。このデバイスは、HPS USBモジュールで動作することが知られています。
- STP
- NXT
- DIR
最後に、60 MHzの静的クロックがPHYまたは外部オシレーターから駆動され、一部のHPSからUSB MACのレジスターアクセスなどの動作に必要とされます。PHYメーカーより提供されているリセットおよび電源投入に関する推奨事項に従っていることを確認してください。
- 出力モード—出力クロックモードでは、クロックはUSB
PHYによって生成されます。信号はすべてこのクロックに同期しています。図 17. 出力モード
- 入力モード—入力クロックモードでは、PHYは外部ソースからのクロックを受信します。信号はすべてこのクロックに同期しています。このモードにおいてクロックは、FPGAのPLLまたは外部ソースで生成できます。図 18. 入力モード
ガイドライン: USB信号のトレース長が最小になっていることを確認します。
ガイドライン: シグナル・インテグリティーが考慮されていることを確認します。
シグナル・インテグリティーは主に、PHYからHPSのMACに駆動されるCLK信号において重要です。これらの信号は最大長のポイントツーポイントであるため、通常は終端せずに実行できますが、インテルでは、トレースをシミュレーションし反射を最小限に抑えることを推奨しています。シミュレーションで特に示されない限り、FPGAからの50 Ω出力設定を使用することが一般的に推奨されます。可能であれば、PHYベンダーが提供する同様の設定を使用します。
ガイドライン: OTG動作を使用する場合はデザインを適切に行います。
On-the-Go (OTG) 機能を使用する場合、SoCはホストまたはエンドポイントになることができます。ホストモードにおいては、USBフラッシュドライブをサポートしている場合や、潜在的にUSBハードドライブをサポートしている場合などの電力供給を考慮してください。これらの電力要件と逆電流は通常、インテルStratix 10 SoC FPGA 開発キットで使用されているような外部ダイオードと電流リミッターを使用し考慮する必要があります。
インテルStratix 10 SoC 開発ボードの回路図に関しては、Stratix 10 FPGA Development Kit User Guideを参照ください。
4.2. 最大限のパフォーマンスの実現
HPSとFPGAファブリック間のメモリーマップによる接続は、デザインのパフォーマンスを最大限に引き上げるための重要なツールです。
システムのパフォーマンスを最適にするために推奨されるトポロジーについては、「FPGAとの接続」の章にあるガイドラインを参照してください。
4.3. システムレベルのキャッシュ・コヒーレンシー
キャッシュ・コヒーレンシーは、システム内の複数のマスター間で常にデータを共有する必要があることを理解するための基本的な内容です。SoCデバイスにおけるこれらのマスターは、MPU、DMA、マスター・インターフェイスを備えるペリフェラル、およびHPSに接続されるFPGAのマスターになります。MPUにはレベル1およびレベル2のキャッシュ・コントローラーが含まれているため、システムのメインメモリーよりも多くの最新コンテンツを保持できます。HPSは、システム内のマスターがメモリーの一貫したビューをもつための2つのメカニズムをサポートします。つまり、メインメモリーに最新の値が含まれるようにする、またはACE-Liteインターフェイスを使用しマスターがディレクトリーベースのCCUファブリックにアクセスするようにします。
MPUはバッファーをキャッシュ不可になるように割り当て、L1およびL2キャッシュによってデータがキャッシュされないようにすることができます。MPUはまた、キャッシュ可能なデータにアクセスし、ほかのマスターがデータへのアクセスを試みる前にデータをメインメモリーにフラッシュするか、キャッシュ不可のバッファーにコピーすることができます。オペレーティング・システムは通常、キャッシュ・コヒーレンシーを維持する上記の両方の方法のメカニズムを提供します。
システム内のマスターは、MPUに依存しデータをキャッシュせずにメインメモリーに配置する、もしくはシステム内のマスターにCCUを介してキャッシュ可能なアクセスを実行させることにより、コヒーレンシーなデータにアクセスします。使用するメカニズムは、マスターがアクセスしているメモリーのバッファーサイズによって異なります。
詳細については、「FPGAとの接続」の章を参照してください。
ガイドライン: スラッシングのオーバーヘッドを回避するため、CCUを介してアクセスされるデータが1 MBのL2キャッシュに収まるようにします。
L2キャッシュのサイズは1 MBであるため、合計サイズが1 MBを超えるバッファーにシステム内のマスターが頻繁にアクセスするとスラッシングが発生します。
キャッシュのスラッシングは、データサイズがキャッシュサイズを超え、キャッシュが頻繁にエビクションとメインメモリーへのプリフェッチを引き起こす状況です。スラッシングは、データをキャッシュすることによるパフォーマンス上の利点を無効にします。
スラッシングの可能性がある状況では、マスターにキャッシュ以外のコヒーレンシーなデータにアクセスさせ、MPUで実行されるソフトウェアにシステム全体のデータ・コヒーレンシーを維持させる方法がより合理的です。
ガイドライン: MPUとシステムマスターで共有されるデータの小さなバッファーの場合、システムマスターにキャッシュ可能なアクセスを実行させ、キャッシュのフラッシュ動作によるオーバーヘッドを回避することを検討します。
システム内のマスターがより小さなコヒーレント・データ・ブロックへのアクセスを必要とする場合、MPUがキャッシュ可能なメモリーとしてバッファーにアクセスし、システム内のマスターがデータへのキャッシュ可能なアクセスを実行することを検討する必要があります。FPGA-to-HPSブリッジでサポートされているACE-Liteプロトコルでのキャッシュ可能なCCUへのアクセスは、マスターとMPUがデータの同じコピーにアクセスすることを保証しています。MPUがキャッシュ可能なバッファーを使用し、システムマスターがキャッシュ可能なアクセスを実行することで、ソフトウェアは、MPUとシステムマスターがデータの同じコピーをもつようシステム全体のコヒーレンシーを維持する必要がなくなります。
4.4. Stratix 10 SoC FPGAのシステムに関する考慮事項の改訂履歴
ドキュメント・バージョン |
変更内容 |
---|---|
2019.04.17 | RGMIIを使用する際のタイミング問題のため、「タイミングに関する考慮事項」の章においてRGMIIのインスタンスを削除しました。 |
2019.03.19 | メンテナンス・リリース |
2018.12.24 | メンテナンス・リリース |
2018.09.24 | メンテナンス・リリース |
2018.05.07 | メンテナンス・リリース |
2018.03.01 | メンテナンス・リリース |
2017.11.06 | 初版 |
5. インテル Stratix 10 SoC FPGA向けエンベデッド・ソフトウェアのデザイン・ガイドライン
5.1. 概要
この章では、 インテル® Stratix® 10ハード・プロセッサー・システムに向けてソフトウェア開発プラットフォームを構築するためのデザイン上の考慮事項について説明します。
記載されている推奨事項に従い、最終アプリケーションのパフォーマンス、サポート、および市場投入までの時間に関する要件に合うコンポーネントをソフトウェア・プラットフォームに選択する必要があります。
5.2. ソフトウェア開発プラットフォームのコンポーネントの組み立て
ソフトウェア開発プラットフォームを正常に構築するため、 インテル® では、HPSシステムの適切なコンフィグレーションとして知られているベースライン・プロジェクトから始めることを推奨しています。その後、最終アプリケーションに合わせてベースライン・プロジェクトを変更することが可能です。
- 次のオペレーティング・システムのいずれかを選択します。
- ベアメタル
- Linux*または パートナーのオペレーティング・システム
- リアルタイム・オペレーティング・システム
- アプリケーションとドライバー (どちらかもしくは両方) の書き込みおよび更新 (どちらかもしくは両方) を行います。
5.3. ゴールデン・ハードウェア・リファレンス・デザイン (GHRD)
GHRDはゴールデン・システム・リファレンス・デザイン (GSRD) の一部であり、 インテル® Stratix® 10 SoC開発キット向けの完全なHPSデザインを含む インテル® Quartus® Primeプロジェクトです。GHRDは、ブートソース、SDRAMメモリーおよび、開発ボード上のその他のペリフェラルへの接続を備えています。
HPSの機能を利用することを選択した場合は常に、 インテル® Stratix® 10 SoCを備えるハードウェア・デザインを使用する必要があります。ハードウェア・デザインの目的は、FPGA部分、HPSのピン・マルチプレクサーとI/O、およびDDRAMを含むSoCをコンフィグレーションすることです。ソフトウェア・プロジェクトはすべて、ハードウェア・デザインに依存します。
GHRDは、Quartus Primeデザイン・スイート (QPDS) のすべてのメジャーリリースにおいて回帰テストが行われています。また、既知のハードウェアの問題に対する最新のバグ修正が含まれています。そのためGHRDは、SoC FPGAハードウェア・システムの優れたコンフィグレーションとして機能することが知られています。
ガイドライン: 最新のGHRDを新規SoC FPGAハードウェア・プロジェクトのベースラインとして使用します。その後、エンド・アプリケーションの必要性に応じてデザインを変更することが可能です。
- Linux向けGSRDのウェブページ—このウェブページには、最良のコンフィグレーションとして知られる最新バージョンが含まれます。
- SoC EDSインストール・フォルダー—<SoC EDS Installation directory>\examples\hardware\s10_soc_devkit_ghrd—このフォルダーには、対応するSoC EDSのバージョンでサポートされるバージョンが含まれており、SoC EDSで提供される インテル® ・ハードウェア・ライブラリー (HWLIB) デザイン例のベースとして使用されています。これは最新のコンフィグレーションではない場合があります。
5.4. アプリケーションのオペレーティング・システムの選択
5.4.1. LinuxまたはRTOSの使用
インテル® Stratix® 10 SoCをサポートするオペレーティング・システムは、Linux OSを含めていくつかあります。
詳細は、OS SoCパートナーのエコシステム・ウェブページを参照ください。
- オペレーティング・システムの機能
- ライセンス条項
- オペレーティング・システムに基づく共同ソフトウェア・プロジェクトおよびフレームワークの可用性
- 利用可能なデバイスドライバーおよびリファレンス・ソフトウェア
- 社内のレガシーコードおよび、オペレーティング・システムに関する知識
- システムのリアルタイム要件
- アプリケーションに必要な機能上の安全性およびその他の認証
アプリケーションに適したオペレーティング・システムを選択するには、SoC FPGAで利用可能なオープンソースおよび市販のオペレーティング・システムで提供される機能とサポートサービスに関して理解する必要があります。インテルのOSパートナーのウェブサイトには、選択を行う際に参考となる情報が提供されています。
インテル® は、Yocto Projectと互換性のあるÅngströmディストリビューションをサポートします。
パートナーOSプロバイダーは、SoC FPGAデバイスに向けたボード・サポート・パッケージおよび商用サポートを提供しています。Linuxコミュニティーもまた、SoC FPGAデバイスに向けたボード・サポート・パッケージおよびコミュニティー・サポートを提供しています。
オペレーティング・システムのリアルタイム・パフォーマンスとベアメタル・アプリケーションに関してはいくつかの誤解があります。 Arm* Cortex* のAクラス・プロセッサーの場合、ランタイム・アプリケーションを管理するために提供される機能に加え、リアルタイム・オペレーティング・システムはプロセッサーのリソースを効率的に使用する機能をいくつか提供します。
これらの効率性はアプリケーションに十分なリアルタイム・パフォーマンスをもたらし、利用可能なデバイスドライバー、ミドルウェア・パッケージ、ソフトウェア・アプリケーションおよびサポートサービスの大部分を継承できるようになります。オペレーティング・システムを選択する際にはこの内容を考慮する必要があります。
5.4.2. ベアメタル・アプリケーションの開発
HPSはベアメタル・コンフィグレーション (オペレーティング・システムなし) で使用でき、インテルでは、高レベルAPIおよび低レベルマクロで構成されるハードウェア・ライブラリー (HWLIB) をほとんどのHPSペリフェラルに提供しています。
ベアメタル・ソフトウェアはボードの起動に通常使用されますが、ベアメタルは実際のアプリケーション・プラットフォームとしても使用できます。HPSに向けてベアメタル・アプリケーションを開発するには、ランタイム機能の開発について理解し、ベアメタル・アプリケーションがマイクロプロセッサー・ユニット (MPU) のサブシステムで利用可能なリソースを効率的に使用できるようにする必要があります。
次に例を示します。
- 一般的なベアメタル・アプリケーションは単一のコアのみを使用します。MPUのサブシステムをフル活用するには、4つのコアすべてを管理するランタイム機能を開発する必要があります。
- アプリケーションが複雑になるにつれ、プロセスの管理とスケジュール、プロセス間通信の処理、およびアプリケーション内のイベントの同期を行う機能を構築することが必要になる場合があります。
そのため、小さなLightweight RTOSでさえも、MPUサブシステムのリソースをより効率的に使用する簡単なスケジューリング、プロセス間通信、および割り込み処理機能を提供します。
5.4.3. ベアメタル・フレームワークとしてのブートローダーの使用
アプリケーションが比較的シンプルで、マルチコアやマルチタスクなどの複雑な機能を必要としない場合、アプリケーションをブートローダーに含めることが1つの選択肢になります。
アプリケーションをブートローダーに含めることには次の利点があります。
- ブート時間短縮の可能性
- 大容量ストレージやネットワークなど、ブートローダーにすでに実装されている機能へのアクセス
以下は、利用可能なブートローダーとそのソースコードです。
- U-Boot—オープンソースGPLライセンス
- UEFI—オープンソースBSDライセンス
- Arm* Trusted Firmware (ATF)—オープンソースBSDライセンス
5.4.4. 対称型および非対称型マルチプロセッシング・モード (SMPおよびAMP)
インテル® Stratix® 10 HPSのクアッドコア Arm* Cortex-A53 MPCore* は、対称型マルチプロセッシング (SMP) と非対称型マルチプロセッシング (AMP) のオペレーティング・モードをサポートします。
SMPモードでは、単一のオペレーティング・システムのインスタンスが4つのコアすべてを制御します。SMPコンフィグレーションは、さまざまなオペレーティング・システム・メーカーによってサポートされており、マルチプロセッシングの最も一般的で複雑ではないコンフィグレーション・モードです。
Linuxおよび商業用に開発されたオペレーティング・システムは、CPUコアのリソースを最大限に活用する機能を提供しており、それらを効率的に使用することで、最適なパフォーマンスと使いやすさを実現します。例えば、SMP対応のオペレーティング・システムは、プロセッサー親和性を設定するオプションを提供します。つまり、各タスクまたはスレッドを特定のコアで実行するように割り当てることができます。この機能により、それぞれの Arm* Cortex-A53コアへのワークロード分散をより適切に制御し、AMPの代替としてシステムの応答性を高めることができます。
ガイドライン: 市販のオペレーティング・システムで利用可能なパフォーマンスおよび最適化を理解し、SMP対応のオペレーティング・システムまたはRTOSが、要求するパフォーマンスおよびリアルタイム要件を満たしているかを確認します。
AMPのコンフィグレーションでは、最大4つの異なるオペレーティング・システムを4つの Cortex*-A53コアで動作させることができるため、より有効な組み合わせの実現が可能になります。AMPとSMPを組み合わせ、2つのコアでSMPを実行し、残りの2つのコアでAMPを実行することも可能です。
特別に考慮する内容
- AMPは、プロセスの管理とスケジュール、プロセス間通信の処理、イベントの同期、およびオペレーティング・システムの2つのインスタンス間の安全なプロセス管理の手法を十分に理解している場合にのみ使用します。
- OSプロバイダーは一般的に、提供するオペレーティング・システムをAMPモードで使用するためのサポートを提供しません。そのため、それらをAMPモードで使用する場合は通常、特別なサポート契約が必要になります。
- AMPを使用する場合は、Cortex-A53のバーチャライゼーション・フィーチャーを利用することが推奨されます。Cortex-A53にはバーチャライゼーションに向けたネイティブ・ ハードウェア・サポートが含まれており、AMPのリソース共有問題のほとんどを解決します。
5.5. Linuxに向けたソフトウェア開発プラットフォームの構築
5.5.1. Linux向けゴールデン・システム・リファレンス・デザイン (GSRD)
- GHRD - QPDSプロジェクト
- U-Bootベースのリファレンス・ブートローダー
- リファレンスLinux* BSP
- サンプルLinux*アプリケーション
Linux*向けのGSRDは十分にテストされた優れたデザインとして知られ、HPSとFPGAリソースをどちらも使用するシステムを紹介しています。これは、ベースライン・プロジェクトとして使用することを目的にしています。
ガイドライン: Linux*ソフトウェア開発プラットフォームを正常に構築するため、インテルでは、最新のGSRDをベースライン・プロジェクトとして使用することを推奨しています。
GSRDは、インテル SoC開発ボードをターゲットとしており、ソースおよびプリコンパイルの両方の形式で提供されます。Rocketboards.orgからGSRDをダウンロードし、ご自身のアプリケーションの必要性に応じて変更します。
5.5.2. ソースコード管理における考慮事項
GSRDのビルドプロセスは、オンラインで入手可能ないくつかのGitツリーに依存しています。以下にその一部を示します。
Gitツリー |
リンク |
---|---|
インテルSoC FPGA Linuxカーネル |
|
インテルSoC FPGA Linuxデザイン |
|
インテルSoC FPGA Angstromレシピ |
https://github.com/altera-opensource/angstrom-socfpga |
ガイドライン: インテル・オープンソース・サイトにあるリポジトリーのコンテンツが永続的に利用可能であると想定せず、独自にGitリポジトリーを管理してください。Gitリポジトリーの管理は、Gitサービス・プロバイダーを利用するなどさまざまな方法で実現できます。独自のGitリポジトリーを管理する利点には、ビルドの再現性、ソースコードの管理、Gitによって有効になった分散モデルの活用などがあります。
GSRDは、Yoctoレシピを使用し構築されたAngstromのrootfilesystemを使用します。レシピはさまざまなオープンソースのパッケージ・ソースを取り込み、それらをrootfilesystemに構築しています。これらのレシピの一部は汎用であり、特定のバージョンを参照しないため、最終結果はビルドごとに異なる場合があります。
ガイドライン: Angstromのrootfilesystemを再構築し、再現性が必要な場合は、ビルドに使用したYoctoダウンロード・フォルダーのコピーを保持しておく必要があります。
5.6. ベアメタル・アプリケーションに向けたソフトウェア開発プラットフォームの構築
HWLIBは、SoC EDSで提供される一連の低レベル・ベアメタル・ソフトウェア・ユーティリティーであり、HPSのさまざまなコンポーネントを制御するためにデザインされています。HWLIBはまた、 インテル® のOSパートナーにおけるオペレーティング・システムに向けたボード・サポート・パケージの構築において一般的に使用されています。
HWLIBには2つのコンポーネントがあります。
- SoC抽象化レイヤー (SoCAL): HPSアドレス空間内のデバイスレジスターの直接アクセスと制御を可能にするレジスター抽象化レイヤーです。
- ハードウェア・マネージャー (HWMgr): より高度なユース・ケース・シナリオに向けてより複雑な機能とドライバーを提供するAPIです。
HWLibを使用するソフトウェア・アプリケーションには、MPUサブシステムのリソースを管理するためのランタイム・プロビジョニングが必要です。これらのプロビジョニングは通常、オペレーティング・システムが提供します。
ガイドライン: アプリケーションを管理するランタイム・プロビジョニングの開発について十分に理解している場合にのみ、HWLIBを使用します。
ガイドライン: <SoC EDS installation folder>/embedded/examples/software/で提供されるHWLIB例を、ベアメタル開発の開始点として使用します。
- Intel SoC FPGA Embedded Design Suite User Guide
- インテル® WikiのGetting Started with HWLIBs Bare-metal Developmentウェブページ
5.7. パートナーOSまたはRTOSに向けたソフトウェア開発プラットフォームの構築
パートナーOSのプロバイダーは、 インテル® SoC FPGAデバイスに向けたサポートパッケージおよび商用サポートを提供します。サポートには通常、プロジェクトを開始するための例と関連するドキュメントが含まれています。
パートナーOSまたはRTOSをターゲットとするソフトウェア開発プラットフォームの構築方法に関する詳細は、パートナーが提供するドキュメントおよびサポートサービスを参照してください。
5.8. ブートローダー・ソフトウェアの選択
Stratix 10 SoC HPSの一般的なブートフローを次の図に表しています。
ブートローダー・ソフトウェアは、ソフトウェア開発プラットフォームにおいて最も重要なコンポーネントの1つです。ブートローダーはシステムを初期化し、次のブートイメージであるオペレーティング・システムまたはベアメタル・アプリケーションに制御をロードし渡します。
- 第1ステージ・ブートローダー (FSBL) – FPGAコンフィグレーション・ビットストリームからHPS側のオンチップメモリーにSDMによってロードされます。
- HPSをコンフィグレーションするために不可欠な初期のハードウェア設定を提供します
- HPSのフラッシュおよびペリフェラル・コンポーネントを制御するソフトウェア機能
- 早期デバッグおよびトラブルシューティングを可能にするユーティリティー
- 第2ステージ・ブートローダー (SSBL) – FSBLによってDDRAMにロードされ、ネットワーク・アクセス、コマンドライン・インターフェイス、スクリプティング・サポートなど、潜在的にFSBLよりもはるかに多くの機能を備えます。
- U-Bootブートローダー: オープンソース・コミュニティーから入手可能な機能の一部を継承しており、Linux* OSユーザーの間で広く利用されています。U-BootブートローダーはGPLライセンスによって管理されています。SoC EDSの一部として入手可能で、Linux*向けGSRDに使用されます。
- UEFIブートローダー: 機能が豊富で、RTOSユーザーに広く利用されています。オープンソースのBSDスタイルライセンスで管理されています。
- ATF (ARM Trusted Firmware) ブートローダー: UEFIで利用され、第1ステージ・ブートローダーのみを提供します。BSDスタイルライセンスを使用し、SSBLに代わりベアメタル・アプリケーションを直接ロードするために使用可能です。
ガイドライン: ソフトウェア開発プラットフォームに適したブートローダーを選択するには、最新バージョンを使用し、また、GPLおよびオープンソースのBSDライセンスについて十分に理解し、どのライセンス条項がご自身の要求に最適かを検討します。
一般的なHPSシステムには数百のレジスターがあり、それらをMPUサブシステム、ネットワークオンチップ・インターコネクト・コンポーネント、DDRAMメモリー、フラッシュ・ブート・ソース、およびペリフェラル・インターフェイスの特定のコンフィグレーションに設定する必要があります。
ガイドライン: 必要とされる初期化設定の量を考えると、ブートローダーをゼロから作成することは推奨されません。提供されているブートローダーのオプションには、HPSのさまざまな部分に向けた最適なデフォルト・コンフィグレーション設定が含まれています。
5.9. 開発、デバッグ、およびトレースに向けたソフトウェア・ツールの選択
この章では、さまざまなソフトウェア開発ツールを選択するためのデザイン上の考慮事項について説明します。
5.9.1. ソフトウェア・ビルド・ツールの選択
- コンパイラー
- アセンブラー
- リンカー
- アーカイバー
Arm* Development Studio 5* インテル® SoC FPGAエディションには、 Arm* V8-Aソフトウェア・ビルド・ツールである Arm* ベアメタル・コンパイラー6が含まれます。
U-Bootは、Linaro*リリース・ウェブページで入手可能なLinaro* GCCコンパイラーでコンパイルされます。
その他の開発ツールも、他のサードパーティー・プロバイダーから提供されています。
5.9.2. ソフトウェア・デバッグ・ツールの選択
使用するソフトウェア・デバッグ・ツールを決定する必要があります。
Arm* DS-5* インテル® SoC FPGA Editionには、フル機能を備えたEclipseベースのデバッグ環境が含まれます。そのほかにはLauterbach* T32など、サードパーティー・プロバイダーから提供されているデバッグツールもあります。
デバッグツールには、 インテル® SoC FPGAデバイスへのJTAG接続が必要です。JTAG接続は、以下を使用し実現可能です。
- インテル® Stratix® 10 SoC開発キットなどで入手可能なエンベデッド・ Intel® FPGA Download Cable II
- 外部JTAGハードウェア (Lauterbach* T32ツール使用時に場合によっては必要になるものと同様のもの)
5.9.3. ソフトウェア・トレース・ツールの選択
トレースは、パフォーマンスのボトルネックのプロファイリング、クラッシュシナリオのデバッグ、および複雑なケースのデバッグに非常に有効です。トレースの実行には2つの方法があります。
- 非リアルタイム: トレースデータをシステムメモリー (SDRAMなど) または組み込みトレースバッファーに格納後、システムを停止し、JTAGを介してトレース情報をダウンロードし分析します。
- リアルタイム: 外部アダプターを使用し、トレースポートからトレースデータをキャプチャーします。ターゲットボードはこのシナリオをサポートしている必要があります。
デバッグツールは通常、エンベデッド・ソフトウェア・プログラムの実行におけるトレースも提供しますが、外部ハードウェアが必要になる場合があります。例えば、SoC EDSで提供される Arm* DS-5* インテル® SoC FPGA Editionは、非リアルタイムおよびリアルタイムのトレースをどちらもサポートします。リアルタイム・トレースに使用する場合は、 Arm* DSTREAMと呼ばれる外部トレースユニットが必要です。
Lauterbach* T32もまた、リアルタイム・トレースに外部ハードウェアが必要です。
5.10. ブートおよびコンフィグレーションにおける考慮事項
インテル® Stratix® 10 SoC HPSはブートROMを備えていません。代わりにSDMには、初期のFPGAコンフィグレーション・ビットストリームをロードするBootROMがあります。このビットストリームには、HPSの第1ステージ・ブートローダー (FSBL) バイナリーも含まれています。
詳細は、Intel Stratix 10 SoC FPGA Boot User Guideを参照ください。
5.10.1. コンフィグレーション・ソース
初期のFPGAコンフィグレーションおよびHPS FSBLは初期コンフィグレーション・ビットストリームの一部であり、いくつかのソースから取得可能です。
- Avalon® -Stデータソース: Avalon® -STマスターはビットストリームを提供します。
- JTAGインターフェイス: 外部JTAGマスター (通常はホストツールで駆動されます) はビットストリームを提供します。
- SDMフラッシュ: SDM側に接続されたフラッシュデバイスはビットストリームを提供します。
次のタイプのフラッシュデバイスをSDMに接続できます。
フラッシュタイプ |
サポート状況 |
---|---|
QSPI |
現在 インテル® Quartus® Primeプロ・エディション 18.1リリースでサポートされています。 |
SD/eMMC |
今後の インテル® Quartus® Primeプロ・エディションのリリースにてサポートされます。 |
5.10.2. コンフィグレーション・フラッシュ
次のQSPIデバイスが インテル® Stratix® 10 SoCコンフィグレーションに検証されています。
ベンダー | 部品番号 | 容量 |
---|---|---|
Micron* | MT25QU128 | 128 Mb |
Micron* | MT25QU256 | 256 Mb |
Micron* | MT25QU512 | 512 Mb |
Micron* | MT25QU01G | 1 Gb |
Micron* | MT25QU02G | 2 Gb |
Macronix* | MX25U128 | 128 Mb |
Macronix* | MX25U256 | 256 Mb |
Macronix* | MX25U512 | 512 Mb |
Macronix* | MX66U512 | 512 Mb |
Macronix* | MX66U1G | 1 Gb |
Macronix* | MX66U2G | 2 Gb |
ガイドライン: FPGAをフラッシュからコンフィグレーションする場合、互換性のあるQSPIデバイスを選択します。
ガイドライン: デザインに合うQSPIデバイスを選択します。より大きなデバイスを使用することで、デザインのビットストリーム・サイズの増加に備えます。
5.10.3. コンフィグレーション・クロック
ガイドライン: インテル® Quartus® Primeプロ・エディション GUIで、選択したQSPIフラッシュデバイスの能力に合うコンフィグレーション・クロック速度を選択します。
5.10.4. HPSブートオプションの選択
インテル® Quartus® Primeプロ・エディションの「FPGA Interfaces」タブにある「HPS Boot Source」サブウィンドウから、コンフィグレーションとブートモードを選択する必要があります。
- FPGA Configuration First: SDMは、FPGAコアおよびすべてのペリフェラルI/Oをコンフィグレーションした後に、FSBLをHPSオンチップRAMにロードし、HPSをリセットから解除します。初期コンフィグレーショ中にエラーが発生した場合、HPSはリセットから解除されません。
- HPS First: SDMはHPS SDRAMに必要なI/Oのみをコンフィグレーションし、HPSをリセットから解除する前にFSBLをHPSオンチップRAMにロードします。FPGAコアおよびほかの未使用のI/Oはコンフィグレーショされません。HPSがFPGAの残りの部分をコンフィグレーションします。
5.10.5. HPSブートソース
HPS FSBLは、初期のFPGAコンフィグレーション・ビットストリームに含まれます。HPS SSBLはいくつかの位置に配置できます。
HPS SSBLの位置 | サポート状況 |
---|---|
SDM QSPI | 現在 インテル® Quartus® Primeプロ・エディション 18.1リリースでサポートされています。 |
HPS SD/eMMC | 現在 インテル® Quartus® Primeプロ・エディション 18.1リリースでサポートされています。 |
HPS NAND | 今後の インテル® Quartus® Primeプロ・エディション・リリースにてサポートされます。 |
ガイドライン: インテル® では、HPS SSBLをHPS SD/eMMCフラッシュに配置することを推奨しています。
5.10.6. リモート・システム・アップデート (RSU)
インテル® Stratix® 10 SoCは、リモート・システム・アップデート (RSU) の機能をサポートしています。この機能を使用する場合、複数のプロダクション・イメージをフェイルセーフのファクトリー・イメージとともに外部SDMフラッシュに保存するオプションがあります。PORを終了すると、SDMは特定のシーケンスでプロダクション・イメージのロードを試みます。すべてのプロダクション・イメージのロードに失敗した場合、フェイルセーフのファクトリー・イメージがロードされます。
RSUの機能に関する詳細は、Intel Stratix 10 SoC Remote System Update (RSU) User Guide を参照ください。
5.11. システムリセットにおける考慮事項
- HPS Cold reset
- HPS Warm reset
- HPS Cold reset and trigger remote update
-
HPS Cold reset
- HPSへの影響—SDMはプロセッサーをリセット状態に維持します。SDMは、コールドリセットの前にデバイスにロードされたものと同じビットストリームから、FSBLをHPSオンチップメモリーにロードします。正常に終了すると、SDMはHPSのリセットを解除し、プロセッサーはリセット例外アドレスからコードの実行を開始します。
- FPGAへの影響—リセット中にFPGAコア・ファブリックは変更されません。リセット終了後、ソフトウェアはFPGA部分をリコンフィグレーションするかどうかを決定します。
-
HPS Warm reset
- HPSへの影響—SDMはプロセッサーをリセット状態に維持します。FSBLはウォームリセット中にオンチップRAMに維持されます。SDMがプロセッサーのリセットを解除し、プロセッサーはオンチップRAMのFSBLを実行します。
- FPGAへの影響—FPGA部分はリセット中に維持されます。リセット終了後、ソフトウェアはFPGA部分をリコンフィグレーションするかどうかを決定します。
-
HPS Cold reset and trigger a remote Update
- HPSへの影響—SDMはプロセッサーをリセット状態に維持します。SDMは、次に有効な *.pofイメージまたはファクトリー・イメージからFSBLをHPSオンチップメモリーにロードします。*.pofには、SoCのFPGA部分をコンフィグレーションするためのデータとFSBLペイロードが含まれます。正常に終了すると、SDMはHPSのリセットを解除し、プロセッサーがリセット例外アドレスからコードの実行を開始します。
- FPGAへの影響—FPGA部分がまず消去された後に、次に有効なコアRBFまたはファクトリー・コアRBFでリコンフィグレーションされます。有効なファクトリーRBFが常に存在している必要があります。
5.12. フラッシュの考慮事項
5.12.1. フラッシュのプログラミング方法
SDMに接続されるフラッシュは、 インテル® Quartus® Primeプロ・エディションおよび インテル® SoC FPGAエンベデッド開発スイート (SoC EDS) の一部である インテル® Quartus® Primeプログラマー・ツールでプログラムされます。
ガイドライン: インテル® Quartus® Primeプロ・エディションのプログラマーを使用し、SDMフラッシュに書き込みます。
HPSに接続されるフラッシュのプログラムはご自身で行ってください。いくつかのオプションが利用可能です。
- バススイッチを使用し、プログラミングを行う外部マスターにフラッシュ信号をルーティングする。
- HPSで実行されているソフトウェアを使用しプログラミングを行う。例えば、U-Bootは Arm* デバッガーまたはシステムコンソールでロードし、フラッシュのプログラムに使用できます。
ガイドライン: ボードデザインに影響を与える場合や、ツールサポートが追加で必要になる場合があるため、HPSフラッシュのプログラミング方法はプロジェクト・ライフサイクルの早期段階において計画します。
5.12.2. FPGAコンフィグレーションおよびHPS大容量ストレージへのシングルフラッシュの使用
SDMに接続されるQSPIデバイスには、HPSから直接アクセスすることも可能です。ただし、この方法は速度を大幅に低下させます。最終アプリケーションにおいて速度低下が許容されるかどうかを判断してください。
参考のため、パフォーマンスの数値を以下に示します。
- HPS eMMCの最大読み取り速度: 50Mbytes/秒
- HPS SDの最大読み取り速度: 25Mbytes/秒
- SDM QSPIからのHPSの最大読み取り速度: 4Mbytes/秒
ガイドライン: 最良のパフォーマンスを実現するため、 インテル® では、HPSに接続されるフラッシュデバイスをHPSの大容量ストレージに使用することを推奨しています。
5.13. エンベデッド・ソフトウェアのデバッグとトレース
HPSデバッグ・アクセス・ポート (DAP) には、JTAGとしてコンフィグレーションされる専用HPSピン、もしくはFPGA JTAGインターフェイス・ピンを介してアクセスすることができます。
FPGA JTAGピンを介してHPS JTAGインターフェイスにアクセスするオプションは、 インテル® Quartus® Primeプロ・エディションのプロジェクトで利用可能です。
電源投入時に、FPGAはJTAGチェーンの最初のデバイスとして表示されます。HPS JTAGインターフェイスをFPGA JTAGピンで使用できるようにするイメージでFPGAがコンフィグレーションされると、HPSはJTAGチェーンの最初のインターフェイスとして表示され、FPGAは2番目のインターフェイスとして表示されます。そのため、 インテル® Quartus® Primeプロ・エディション・プログラマーなどのFPGAツールは、電源投入時に使用する場合とFPGAコンフィグレーション後に使用する場合では異なる接続設定を必要とします。
ガイドライン: 開発およびフィールド問題のデバッグと診断に使用できる、ボードへの利用可能なJTAG接続が必要です。
HPSは、2つのトレース・インターフェイスをHPS専用I/OもしくはFPGA I/Oのいずれかで提供します。HPS専用I/Oで提供されるインターフェイスは低速トレース・インターフェイスであり、低帯域幅トラフィック (低周波数で動作するMPUなど) をトレースするために使用できます。
トレース帯域幅を向上させるために、標準トレース・インターフェイスであるFPGAへの32ビット・シングル・データ・レート・インターフェイスを使用することができます。
トレースベンダーより提供されているデータシートを参照し、トレースバスに終端が必要かの判断を行ってください。トレースベンダーが必要と示す終端を含めない場合、トレースデータの破損につながる、またはインターフェイスの最大動作周波数が制限される可能性があります。
5.14. インテル Stratix 10 SoC FPGA向けエンベデッド・ソフトウェアのデザイン・ガイドライン改訂履歴
ドキュメント・バージョン |
変更内容 |
---|---|
2019.04.17 | メンテナンス・リリース |
2019.03.19 | リモート・システム・アップデート (RSU) の内容を追加しました。 |
2018.12.24 | Intel Stratix 10 SoC FPGA Boot User Guideへのリンクを追加しました。 |
2018.09.24 | 新しく「システムリセットにおける考慮事項」の章を追加しました。この章では、SDMが実行する3つの種類のリセットを説明しています。 |
2018.05.07 | 次の内容を追加しました。
|
2018.03.01 | メンテナンス・リリース |
2017.11.06 | 初版 |
6. Stratix 10 SoC FPGAに関連する推奨リソース
6.1. デバイスのドキュメント
- Intel Stratix 10 Hard Processor System Technical Reference Manual
- インテル® Stratix® 10デバイス・データシート
- インテルFPGAデバイス用ピンアウトファイル
- Hard Processor System Pin Information for Intel Stratix 10 Devices (version 2017.10.09)
- インテル® Stratix® 10デバイスファミリー・ピン接続ガイドライン
- インテル® Stratix® 10デバイスのデザイン・ガイドライン
- インテル® Stratix® 10高性能デザイン・ハンドブック
- External Memory Interfaces Intel Stratix 10 FPGA IP User Guide
- Intel Stratix 10 External Memory Interface Pin Information for Devices (version 2018.1.23)
- AN 692: インテル® Cyclone® 10 GX、 インテル® Arria® 10、および インテル® Stratix® 10デバイスの電源シーケンスについての考慮事項
- Differences Among Intel SoC Device Families
- Intel Stratix 10 SoC FPGA Boot User Guide
- Early Power Estimator for Intel Stratix 10 FPGAs User Guide
- インテル® Stratix® 10 SX ES Device Errata
6.2. ツールとソフトウェアのウェブページ
6.3. インテル Stratix 10 SoC FPGAに関連する推奨リソースの改訂履歴
ドキュメント・バージョン |
変更内容 |
---|---|
2019.04.17 | メンテナンス・リリース |
2019.03.19 | メンテナンス・リリース |
2018.12.24 | Intel Stratix 10 SoC FPGA Boot User Guideへのリンクを追加しました。 |
2018.09.24 | メンテナンス・リリース |
2018.05.07 | メンテナンス・リリース |
2018.03.01 | メンテナンス・リリース |
2017.11.06 | 初版 |