アプリケーションが GMIO 仕様 ( 『AI エンジン カーネルおよびグラフ プログラミング ガイド』 (UG1076) の input_gmio/output_gmio の設定を参照) を使用してグローバル メモリにアクセスする場合、シミュレーションは DDR メモリおよび DDR メモリを PL と AI エンジンに接続する配線ネットワークをモデル化する必要があります。AI エンジンから DDR メモリへの接続は、DMA データ ムーバーにより制御されます。DMA データ ムーバーは AI エンジン アレイ インターフェイスに組み込まれており、PS プログラムの GMIO API で制御されます。PL ブロックの AXI4-Stream ポートから DDR メモリへの接続は、ソフト GMIO データ ムーバー ブロックにより制御されます。このブロックは、シミュレーション用に AI エンジン コンパイラにより自動的に生成されます。このデータ ムーバーは、PL ブロックからのストリーミング インターフェイスを、特定の開始アドレス、ブロック サイズ、およびバースト サイズを持つ NoC 上でのメモリ マップド AXI4 インターフェイス トランザクションへ変換します ( 『AI エンジン カーネルおよびグラフ プログラミング ガイド』 (UG1076) の input_gmio/output_gmio の設定を参照)。
グローバル メモリを使用するシミュレーション中、DDR メモリを定義済みのデータで初期化するメモリ データ ファイルを --gm-init-file オプションを使用して指定できます。テキスト形式のこのファイルは、指定のアドレスから開始する DDR メモリのバイト ダンプです。このファイルのフォーマットは、次のとおりです。
<startaddr>:
<byte>
<byte>
…
AI エンジン シミュレータを起動する際にグローバル メモリを初期化するには、次のコマンドを使用します。
aiesimulator –-pkg-dir=./Work -–gm-init-file=dump.txt
シミュレータは、使用された DDR メモリの出力バイト ダンプもシミュレーション出力ディレクトリ (デフォルトでは aiesimulator_output) に生成します。出力ファイルはベース アドレス 0x0
から開始し、名前は DDR メモリ バンク内の場所に基づいて付けられます (例: DDRMC_SITE_X1Y0.mem)。このファイルを使用してグローバル メモリ トランザクションを確認できます。