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 クロックによってクロッキングされるその他のコンポーネントです。
図 3. 合成デザイン例
複数のHBMチャネルをイネーブルする場合、合成デザイン例には、トラフィック・ジェネレーターの追加ペアが含まれます。これは、イネーブルするHBMチャネルの数に基づいて行われます。各HBMチャネルとHBM擬似チャネルは独立しているため、追加のトラフィック・ジェネレーターもまた、それぞれ互いに独立しています。ただし、単一のHigh Bandwidth Memory (HBM2) Interface Intel FPGA IPに接続されています。次の図はで示すのは、HBMチャネルがイネーブルになっている例です。
図 4. 3つの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インターフェイス・プロジェクトでインスタンス化します。