はじめに
インテル® Stratix® 10 MX FPGA は、パッケージ内に DRAM (HBM2) を、Top側、Bottom側にそれぞれ一つずつ、合計二個実装しており、メモリ帯域は一つあたり最大256GB/s 、合計512GB/s を実現します。
インテル®Quartus®Prime 開発ソフトウエア では、HBM2 の動作確認用に、シミュレーション用および実機動作用の Example Design を生成することができます。
本記事では、このHBM2コントローラーIPコアを使用した Example Design の生成、シミュレーション実行手順について紹介します。
本記事では、以下の環境にて紹介しています。
- インテル®Quartus®Prime 開発ソフトウエア プロ・エディション:バージョン19.1
- ModelSim - Intel® FPGA Edition 10.6d (Quartus Prime Pro 19.1)
- 作成言語:Verilog
Example Design について
生成されるシミュレーション用 Example Design のブロック構成は下図のとおりです。
HBM2コントローラー IP コアに加えて、HBM2 IP Memory Model、コントローラーを制御する Traffic Generator 等が生成されます。
HBM2 IP コアは、1chあたり2つの Pseudo Channel が存在し、Traffic Generator はそれぞれの Pseudo Channel について生成されます。
プロジェクトの生成
まず、インテル®Quartus®Prime 開発ソフトウエア を起動し、プロジェクトを作成します。
詳細は省略しますが、デバイスの選択にはHBM2 の搭載されているMXファミリーを選択する点にご注意ください。
Example Design の生成方法
プロジェクト生成後、IP Catalog で、High Bandwidth Memory (HBM2) Interface Intel FPGA IP を選択します。選択後、”+ Add” をクリック します (またはダブルクリック)。
コア名称を入力し(ここでは”hbm2_core” としています)、Create をクリックします。
以後、コアの各パラメータを設定します。
パラメータ詳細は下記をご参照ください。
■パラメータ詳細:HBM2 IPコア ユーザー・ガイド -3.2 章
- 3.2. Parameterizing the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
General タブでは、使用するHBM2、ch数、クロック周波数等の設定をおこないます。
Controller タブでは、コントローラーの設定、AXI側のI/Fの設定をおこないます。
Diagnostics タブでは、生成するTraffic Generator 、Efficiency Monitor 等の設定をおこないます。
Example Designs タブでは、生成するExample Design の設定をおこないます。
設定後、右上の"Generate Example Designs..." をクリックします。
これにより、Example Design が生成されます。
シミュレーション実行手順
以下、ModelSim を使用して論理シミュレーションを実行する手順について記述します。
ModelSimを起動し、Change Directory で以下のフォルダに移動します。
Transcript window で、"do msom_setup.tcl" と入力します。
Transcript window で、"ld_debug" と入力します。
Transcript window で、"log -r /*" と入力します。これはすべての信号のlog を取るという設定です。
なお今回は、シミュレーション実行後に、wave画面に信号を追加する手順としていますが、あらかじめ信号を設定してからシミュレーションを実行する場合は、ここで信号をwave画面に設定してください。
Transcript window で、"run -all" と入力します。
シミュレーション実行後、Transcript window で、"add wave -radix hexadecimal *" と入力します。
これは、wave画面に、top階層の信号をすべてhex表示で追加する記述です。
これによりwave画面にシミュレーション波形が表示されます。
16.4 us 付近で”sim_traffic_gen_pass = 1” となっていることが確認できます。
生成されたテストベンチは、これによりシミュレーション停止となります。
HBM2 メモリとのI/F波形は下記のようになります。
AXI I/Fの波形は下記のようになります。
論理シミュレーション実行手順の詳細は下記をご参照ください。
■シミュレーション手順:HBM2 IPコア ユーザー・ガイド -4 章
-4. Simulating the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
まとめ
この記事では、HBM2 IPコアの Example Design のシミュレーション手順を紹介しました。
動作確認にお役立てください。
参考資料
本記事は下記資料を参照しています。
■HBM2 IPコア ユーザー・ガイド:
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP User Guide
■HBM2 IPコア Example Design ユーザー・ガイド:
High Bandwidth Memory (HBM2) Interface Intel® FPGA IP Design Example User Guide
■パラメータ詳細:HBM2 IPコア ユーザー・ガイド -3.2 章
- 3.2. Parameterizing the High Bandwidth Memory (HBM2) Interface Intel FPGA IP
■シミュレーション手順:HBM2 IPコア ユーザー・ガイド -4 章
- 4. Simulating the High Bandwidth Memory (HBM2) Interface Intel FPGA IP