High Bandwidth Memory (HBM2) Interface Intel FPGA IPデザイン例 ユーザーガイド
バージョン情報
更新対象: |
---|
インテル® Quartus® Prime デザインスイート 19.2 |
IPバージョン 19.2.0 |
1. High Bandwidth Memory (HBM2) Interface Intel FPGA IPについて
1.1. リリース情報
IPバージョンは、v19.1までは インテル® Quartus® Primeデザインスイートのソフトウェア・バージョンと同一です。 インテル® Quartus® Primeデザインスイートのソフトウェア・バージョン19.2以降のIPコアは、新しいIPバージョン管理スキームによります。
IPバージョン管理スキーム (X.Y.Z) 番号は、ソフトウェア・バージョンごとに変わります。
- Xの変更は、IPのメジャーリビジョンを示します。インテルQuartus Primeソフトウェアを更新したら、IPを再生成してください。
- Yの変更は、IPに新しい機能が含まれていることを示します。IPを再生成して、新しい機能を含めてください。
- Zの変更は、IPに新しい機能が含まれていることを示します。IPを再生成して、新しい機能を含めてください。
項目 | 説明 |
---|---|
IPバージョン | 19.2.0 |
インテル® Quartus® Primeバージョン | 19.2 |
リリース日 | 2019.07.01 |
2. High Bandwidth Memory (HBM2) Interface Intel FPGA IPデザイン例 クイック・スタート・ガイド
IP Parameter Editor ProウィンドウのExample DesignsタブとGenerate Example Designsボタンを使用して、合成およびシミュレーションのデザイン例ファイルセットを指定、生成できます。このファイルセットでHBM2 IPを検証します。
生成されたデザイン例で反映するパラメーター化は、IP Parameter Editor Proウィンドウで設定したものです。デザイン例を生成し、評価用のインテルFPGA開発キットと一致させることができます。もしくは、デザイン例を生成して、実際のシステム要件に一致させ、それを出発点として独自のシステムを作成することもできます。
2.1. HBM2システム向け インテル Quartus Primeプロジェクトの作成
-
インテル®
Quartus® Prime開発ソフトウェアを起動します。File > New Project Wizardを選択し、Nextをクリックします。
-
ディレクトリー名 (<user
project directory>) 、
インテル®
Quartus® Prime
プロジェクト名 (<user project name>) 、およびトップレベル・デザイン・エンティティー名 (<user top-level
instance name>) を指定して、Nextをクリックします。
-
Empty Projectが選択されていることを確認します。
Nextを2回クリックします。
-
ダイアログボックスのDevice Familyの欄で、
インテル®
Stratix® 10をFamilyに選択し、DeviceにStratix 10 MXを選択します。使用するデバイスの具体的な部品番号がすでに分かっている場合は、Name filterフィールドにそのデバイスの部品番号を入力します。
注: 生成されたHBM2 IPのターゲットは、ユーザーが指定する具体的な インテル® Stratix® 10MXデバイスです。異なる インテル® Stratix® 10 MX部品番号によって識別されるデバイスでは、HBM2デバイスの数や、HBM2デバイスの位置、スタック数、高さ、密度のプロパティーが異なる場合があります。次の手順に進む前に インテル® Stratix® 10 MXデバイスの正しい部品番号を指定することが重要です。
-
Available Devicesから適切なデバイスを選択します。
- Finishをクリックします。システムでは、 (<user project directory>).qpf および (<user project directory>).qsf ファイルを (<user project directory>) 内で生成します。
2.2. High Bandwidth Memory (HBM2) Interface Intel FPGA IPのコンフィグレーション
- IP Catalogウィンドウが表示されていることを確認します。 IP Catalogウィンドウが表示されていない場合は、View > Utility Windows > IP Catalogを選択します。
-
IP Catalogウィンドウで、Installed IP > Library > Memory Interfaces and Controllers > High Bandwidth Memory (HBM2) Interface Intel FPGA IPを選択します。
-
New IP Variantウィンドウで、
File NameフィールドにユーザーのHBM2 IP名 (<user instance name>) を入力します。
Createをクリックします。
-
IP Parameter Editor
Proウィンドウで、各タブのパラメーターのコンフィグレーションを行って、インテルFPGA開発キットの要件、または実際のHBM2インターフェイスおよびシステムの要件を反映させます。個々のパラメーターについては、 High Bandwidth
Memory (HBM2) Interface Intel FPGA IP ユーザーガイドのHigh Bandwidth Memory (HBM2) Interface
Intel FPGA IPのパラメーター化の項を参照してください 。
2.3. High Bandwidth Memory (HBM2) Interface Intel FPGA IP向けIP Parameter Editor Proのガイドライン
Parameter Editorのタブ | ガイドライン |
---|---|
General | 次のパラメーターを正しく入力して、インテルFPGA開発キットの要件、またはHBM2インターフェイスおよびシステムの要件を反映させます。
|
Controller # | パラメーターを設定して、実際のHBM2インターフェイスおよびコントローラーのシステム要件を反映させます。 |
Diagnostic |
初期のプロジェクト調査では、Diagnosticタブのデフォルト設定が使用できます。 ハードウェア・テストで合成可能なデザイン例を使用している場合、 Enable In-System-Sources-and-Probesチェックボックスをオンにすると 、High Bandwidth Memory (HBM2) Interface Intel FPGA IPデザイン例システムの制御と監視が インテル® Quartus® Primeソフトウェアで簡単にできるようになります。 効率テストを合成デザインとシミュレーション・デザインの両方で行うには、Use Efficiency PatternおよびEnable Efficiency Test Modeチェックボックスをオンにします。読み出しカウントと書き込みカウントの両方を同じにして、有効性チェックに合格するようにします。テスト用にData Sequence (Random/Sequential) オプションを選択し、Enable data check for efficiency measurementをオンにして、データ有効性チェックをします。 シミュレーションの場合、イネーブルにした各HBMチャネルの効率番号をシミュレーションで報告するには、Enable Efficiency Monitorチェックボックスをオンにします。(ハードウェア・テストで合成可能なデザイン例プロジェクトを使用している場合は、Efficiency Monitorをイネーブルしないでください。これは、この機能では、インターフェイスでコア・クロック・ドメインのタイミングを閉じる頻度が減少するためです。) また、Diagnosticsタブの他のパラメーターを使用すると、High Bandwidth Memory (HBM2) Interface Intel FPGA IPの評価、検証、およびデバッグの支援ができます。 |
Example Designs |
正しいデザイン例ファイルセットを取得するには、Example Design FilesセクションでSimulationまたはSynthesisチェックボックス、あるいはその両方を必ずチェックしてください。生成されたデザイン例は、完全なHBM2システムです。その構成は、High Bandwidth Memory (HBM2) Interface Intel FPGA IPおよびドライバーです。このドライバーでは、ランダム・トラフィックを生成してメモリー・インターフェイスを検証します。 |
2.4. 合成可能なHigh Bandwidth Memory (HBM2) Interface Intel FPGA IPデザイン例の生成
-
DiagnosticsタブでExample Design > Enable In-System-Sources-and-Probesを選択すると、デザイン例に統合された使用可能なデバッグ機能へのアクセスが提供されます。
- Diagnosticsタブで、Traffic Generator > Use efficiency patternを選択すると、デザイン例に統合された高効率の同時トラフィック・パターン機能が提供されます。異なる数の読み出し/書き込みトランザクションをコンフィグレーションし、シーケンシャルまたはランダムのトラフィック・アドレス指定を選択し、データ一致チェックをイネーブルまたはディスエーブルします。このオプションでは、 Read command round trip latency機能もイネーブルにします。レイテンシーの測定期間は、有効な読み出しコマンドをドライバーで開始してから、応答が受信されるまでです。
-
まだチェックがない場合は、Example DesignsタブのExample Design FilesでSynthesisチェックボックスをオンにします。
注: システムでは、SimulationとSynthesisの両方のチェックボックスをデフォルトでイネーブルします。
-
File > Saveをクリックします。システムでは、現在の設定の作成と保存をユーザーIPバリエーション・ファイル (<user
instance name>.ip) で行います。このファイルは、ユーザーが指定した <user project directory> にあります。
- ウィンドウの右上隅にあるGenerate Example Designをクリックします。
-
生成したデザイン例のディレクトリー
(<design example directory>) を指定し、OKをクリックします。システムでは、次のデザイン例ファイルセットを指定されたディレクトリー内に作成します。
- IP Parameter Editor Proウィンドウを終了するには、File > Exitをクリックします。
2.5. 合成可能なHigh Bandwidth Memory (HBM2) Interface Intel FPGA IPの高効率生成
-
Controllerタブで、Controller configuration > Enable Reorder Bufferオプションの選択を解除します。Reorder Bufferでは、読み出しデータの並べ替えをリクエストが発行された順序で行います。
- Diagnosticsタブで、Traffic Generator > Force traffic generator to issue different AXI Read/Write IDsを選択します。またTraffic Generator > Use efficiency patternを選択します。
- Read CountとWrite Countの両方の値を最小で 2500に設定して、Sequentialオプションをデータ・トラフィックSequenceとして選択します。(ランダムアドレスを持つトラフィックの効率を測定する場合 、 Sequenceオプションの設定はRandom にします。)
-
DiagnosticsタブでPerformance > Enable Efficiency
Monitorを選択します。また、
Performance > Enable Efficiency Test Modeを選択します。Enable In-System-Sources-and-Probesチェックボックスがまだチェックされていない場合は、Example Designグループボックスでオンにします。
- パラメーター・エディターの右上隅にあるGenerate Example Designをクリックして、合成可能なデザイン例を生成します。
- 開発キットに特定のピン配置を適用し、デザインをコンパイルします。
- デザイン例を回路基板にプログラムしたら、効率性能の結果が取得できます。これには、ISSPエディターを使用します。
- トランザクションの完了の監視と確認が、In-System Sources and Probes (ISSP) EditorのEFFTプローブ上に1で示されます。
EFFR 32ビットプローブ信号で表示するのは、有効な書き込みおよび読み出しトランザクションの値とアクティブなトランザクションの総数です。
EFFWは、3ビット入力セットソース入力信号です。これにより、EFFR 32ビットプローブ信号での出力が可能になります。次の表で示すのは、EFFWの入力値とそれに対応するEFFRカウンターの出力値です。
表 3. EFFWソース値 EFFR出力 (32ビット幅) の説明 3'b 000 有効な書き込みデータ・トランザクションの数です。 3'b 001 有効な読み出しデータ・トランザクションの数です。 3'b 010 アクティブなトランザクションの総数です。 3'b 100 最小読み出しレイテンシーです。 3'b 101 最大読み出しレイテンシーです。 - 効率を計算するには、次の式を使用します。カウンター値に基づいて行います。
Efficiency=[(Number of Write Data transactions + Number of Read Data transactions accepted by HBM2 controller) ÷ (total active transaction count) × [(core clock frequency) × 2) ÷ (HBM2 interface frequency)] × 100.
例えば次の値の場合、
- 書き込みデータ・トランザクション : 5000
- 読み出しデータ・トランザクション : 5000
- アクティブなトランザクションの総数 : 10358
- コアクロック周波数 : 250 MHz
- HBM2インターフェイス周波数 : 600 MHz
効率 = [(5000+5000)÷(10358)×(250)×2÷650]×100=81.3%
- トラフィック・ジェネレーターの実行時に使用する効率パターンは、デフォルトで1つのテストループに対するものです。テストを再開するには、HBM2デザイン例をリセットします。これには、ISSPエディターを使用します。 RSTN信号を使用して、HBM2のデザイン例をリセットするには、0を書き込んでから1を書き込みます。
2.6. High Bandwidth Memory (HBM2) Interface Intel FPGA IPのシミュレーション用生成
-
Diagnosticsタブで、Performance > Enable Efficiency Monitorをクリックすると、シミュレーション中のインターフェイスの効率に関する統計を収集、報告します。
注: In-System-Sources-and-Probesをイネーブルすると、そのインスタンス化が行われるのは、 インテル® Quartus® Prime開発ソフトウェアによって合成された場合のみです。シミュレーションの場合、対応する信号はアースまたはVccに接続されます。
- Diagnosticsタブで、Traffic Generator > Use efficiency patternを選択すると、デザイン例に統合された高効率の同時トラフィック・パターン機能が提供されます。異なる数の読み出し/書き込みトランザクションをコンフィグレーションし、シーケンシャルまたはランダムのトラフィック・アドレス指定を選択し、データ一致チェックをイネーブルまたはディスエーブルします。このオプションでは、 Read command round trip latency機能も有効にします。レイテンシーの測定期間は、有効な読み出しコマンドをドライバーで開始してから、応答が受信されるまでです。
-
Example
DesignsタブのExample Design FilesでSimulationチェックボックスがオンになっていることを確認します。
注: デフォルトでは、 SimulationとSynthesisの両方のチェックボックスがチェックされています。
-
File > Saveをクリックします。システムでは、現在の設定の作成と保存をユーザーIPバリエーション・ファイル (<user
instance name>.ip) で行います。このファイルは、ユーザーが指定した <user project directory> にあります。
- ウィンドウの右上隅のGenerate Example Designをクリックします。
-
生成したデザイン例のディレクトリー
(<design example directory>) を指定し、OKをクリックします。システムでは、次のデザイン例ファイルセットを指定されたディレクトリー内に作成します。
- IP Parameter Editor Proウィンドウを終了するには、File > Exitをクリックします。
2.7. High Bandwidth Memory (HBM2) Interface Intel FPGA IPデザイン例の変更後の再生成

- コンパイル用のプロジェクトを作成するには、デスティネーション・ディレクトリーの quartus_sh -t make_qii_design.tcl スクリプトを実行します。
- シミュレーション用のプロジェクトを作成するには、デスティネーション・ディレクトリーの quartus_sh -t make_sim_design.tcl スクリプトを実行します。
3. High Bandwidth Memory (HBM2) Interface Intel FPGA IPデザイン例の説明
システムでは、ユーザーの選択に従って、シミュレーションまたは合成用の完全なファイルセットを作成します。
3.1. High Bandwidth Memory (HBM2) Interface Intel FPGA IP合成デザイン例
- High Bandwidth Memory (HBM2) Interface Intel FPGA IPのインスタンス。HBM2デバイスへの読み出し、書き込み、およびその他の動作を管理します。
- 独立した2つのトラフィック・ジェネレーターが、イネーブルされているHBMチャネルすべてに備えられています (HBM疑似チャネルごとにトラフィック・ジェネレーター1つ)。トラフィック・ジェネレーターは、合成可能なAXI-4タイプのサンプルドライバーです。これにより、読み出しおよび書き込みの擬似ランダムパターンをパラメーター化されたアドレスの数に対して実装します。また、トラフィック・ジェネレーターでは、メモリーから読み出したデータを監視して、書き込んだデータと一致することを確認し、そうでない場合は失敗をアサートします。
- I/O PLL。HBM2 IPの ext_core_clock ポートに供給する外部コアクロックをエミュレートします。このクロックで最終的にクロッキングするのは、Traffic Generatorのほか、HBM2 IPの wmc_clk_0_clk クロックによってクロッキングされるその他のコンポーネントです。
複数のHBMチャネルをイネーブルする場合、合成デザイン例には、トラフィック・ジェネレーターの追加ペアが含まれます。これは、イネーブルするHBMチャネルの数に基づいて行われます。各HBMチャネルとHBM擬似チャネルは独立しているため、追加のトラフィック・ジェネレーターもまた、それぞれ互いに独立しています。ただし、単一のHigh Bandwidth Memory (HBM2) Interface Intel FPGA IPに接続されています。次の図はで示すのは、HBMチャネルがイネーブルになっている例です。
信号グループ | 信号名 | 入力/出力 | 幅 | 説明 |
---|---|---|---|---|
PLL Ref clk入力 | core_clk_iopll_ref_clk_clk | 入力 | 1 | LVDS差動リファレンス・クロックです。I/O PLLで使用し、ファブリック・コア・クロックを生成します。デザイン例では、コアクロックを生成するI/O PLLを自動インスタンス化します。 |
hbm_0_example_design_pll_ref_ clk_clk | 入力 | 1 | LVDS差動リファレンス・クロックです。UIB PLLで使用します。デザイン例では、UIBサブシステムのクロックを生成するUIB PLLを自動インスタンス化します。 | |
リセット | core_clk_iopll_reset_reset | 入力 | 1 | コアクロックI/O PLLのリセット入力です。リセット極性はアクティブHighです。I/O PLL仕様については、 インテル® Stratix® 10デバイス・データシートを参照してください。 |
hbm_0_example_design_wmcrst_n_ in_reset_n | 入力 | 1 | 一般的なコアロジックのリセットです。アクティブLowです。 | |
hbm_only_reset_in_reset | 入力 | 1 | HBMのみのリセットです。アクティブHighです。現在はサポートされていません。これはLowに接続できます。 | |
バウンダリー・スキャン信号 | m2u_bridge_cattrip | 入力 | 1 | HBM2バウンダリー信号です。トラフィック・ジェネレーターでは駆動しません。これらの信号をデザイン例のトップレベルで公開して、コンパイルを正常に行ってください。この信号はアクティブに駆動しないでください。 インテル® Quartus® Prime開発ソフトウェアでは、これらの信号の配置をHBM2メモリーに接続されているピンに対してします。これらのピンに配置アサインメントを追加しないでください。追加するとコンパイルエラーが発生します。 |
m2u_bridge_temp | 入力 | 3 | ||
m2u_bridge_wso | 入力 | 8 | ||
m2u_bridge_reset_n | 出力 | 1 | ||
m2u_bridge_wrst_n | 出力 | 1 | ||
m2u_bridge_wrck | 出力 | 1 | ||
m2u_bridge_shiftwr | 出力 | 1 | ||
m2u_bridge_capturewr | 出力 | 1 | ||
m2u_bridge_updatewr | 出力 | 1 | ||
m2u_bridge_selectwir | 出力 | 1 | ||
m2u_bridge_wsi | 出力 | 1 | ||
トラフィック・ジェネレーター・ステータス信号 | tgx_0_status_traffic_gen_pass | 出力 | 1 | Pseudo Channel 0のトラフィック・ジェネレーター・ステータス信号 (Pass、Fail、およびTimeout) 、Channelごとです。 |
tgx_0_status_traffic_gen_fail | 出力 | 1 | ||
tgx_0_status_traffic_gen_timeout | 出力 | 1 | ||
tgx_1_status_traffic_gen_pass | 出力 | 1 | Pseudo Channel 1のトラフィック・ジェネレーター・ステータス信号 (Pass、Fail、およびTimeout) 、Channelごとです。 | |
tgx_1_status_traffic_gen_fail | 出力 | 1 | ||
t gx_1_status_traffic_gen_timeout | 出力 | 1 |
複数のHBM2インターフェイスを持つプロジェクトでのデザイン例の使用
Fitterエラーが発生する可能性があるため、プロジェクトでのHBM2デザイン例のインスタンス化は、複数回行わないでください。
HBM2インターフェイスを2つ持つプロジェクトを作成するには、HBM2 IPのインスタンスを2つ作成します。1つはHBM location = Top、もう1つはHBM2 location = bottomです。デザイン例プロジェクトを各IPに対して生成し、それを複数のHBM2インターフェイス・プロジェクトでインスタンス化します。
3.2. High Bandwidth Memory (HBM2) Interface Intel FPGA IPシミュレーション・デザイン例
- シミュレーション例には、合成デザイン例に存在するすべての主要ブロックが含まれています。例えば、トラフィック・ジェネレーターのペアや、High Bandwidth Memory (HBM2) Interface Intel FPGA IPおよび外部コアクロックI/O PLLのインスタンスなどです。このブロックでは、デフォルトでシミュレーション・モデルを抽象化します。これは、高速シミュレーションに適切な場合に行われます。デザイン例には、Efficiency Monitorブロックが含まれる場合もあります。このブロックは、イネーブルした各HBMチャネルに対するものです。Efficiency Monitorブロックでは、特定のHBMチャネルの効率数をシミュレーション終了時に報告します。
- HBM2メモリーモデル。HBM2プロトコル仕様準拠の汎用モデルとして機能します。多くの場合、HBM2ベンダーでは、シミュレーション・モデルを特定のHBM2コンポーネント向けに提供しており、ウェブサイトからダウンロードできます。
- シミュレーション・チェッカー。HBM2 IPおよびトラフィック・ジェネレーターからのステータス信号を監視し、全体としての合格または不合格の状態を知らせます。
- クロックソースおよびリセットソースのインスタンス。Bus Functional Model (BFM) として、リファレンス・クロックおよびリセット信号を生成します。
3.3. High Bandwidth Memory (HBM2) Interface Intel FPGA IPのDesign Example Interfaceタブ
4. High Bandwidth Memory (HBM2) Interface インテル FPGA IPデザイン例 ユーザーガイドのアーカイブ
IPバージョンは、v19.1までは インテル® Quartus® Primeデザインスイートのソフトウェア・バージョンと同一です。 インテル® Quartus® Primeデザインスイートのソフトウェア・バージョン19.2以降では、IPコアは新しいIPバージョン管理スキームによります。
IPコアのバージョンが記載されていない場合は、以前のIPコアバージョン向けのユーザーガイドが適用されます。
5. High Bandwidth Memory (HBM2) Interface インテル FPGA IPデザイン例 ユーザーガイドの改訂履歴
ドキュメント・バージョン | インテル® Quartus® Primeバージョン | IPバージョン | 変更内容 |
---|---|---|---|
2019.08.30 | 19.2 | 19.2.0 |
|
2019.05.03 | 19.1 | 19.1 |
|
2018.12.24 | 18.1.1 | 18.1.1 | 初版 |