データ ムーバー選択の制御

この演習では、lab3 のソース コードにデータ ムーバー プラグマを追加して、ハードウェアとソフトウェア間での配列の転送に使用するデータ ムーバーを指定します。その後プロジェクトをビルドして、生成されたレポート (data_motion.html) を確認して、これらのプラグマの効果を確認します。ビルドでハードウェアが合成されないように、ビットストリームおよびブート ファイルの生成はオフにしておきます。

データ ムーバー プラグマを追加して各配列に使用されるデータ ムーバーのタイプを指定するには、次の手順に従います。

  1. [Project Explorer] タブで lab3/src の下の mmultadd.h をダブルクリックします。
  2. mmult 関数宣言の上に次の行を挿入して各配列に別のデータ ムーバーを指定し、ファイルを保存します。
    #pragma SDS data data_mover(A:AXIDMA_SG, B:AXIDMA_SIMPLE, C:AXIFIFO)
  3. プロジェクトの最上位フォルダーを右クリックして、[Clean Project] をクリックします。
  4. プロジェクトの最上位フォルダーを右クリックして、[Build Project] をクリックします。
    重要: ビルド プロセスが完了するまでに、約 5 ~ 10 分かかります。
  5. ビルドが完了したら、[Project Explorer] の [Reports] タブで [Data Motion Report] をダブルクリックして開きます。
    一番右の [Connection] 列に、行列乗算の各入力/出力配列に割り当てられたデータ ムーバーが示されます。
    注記: [Pragmas] 列には、使用されたプラグマがリストされます。AXIFIFO データ ムーバーは M_AXI_GP0 ポートに割り当てられ、その他 2 つのデータ ムーバーは S_AXI_ACP に関連付けられています。

  6. 手順 2 で入力したプラグマ #pragma SDS data data_mover(A:AXIDMA_SG, B:AXIDMA_SIMPLE, C:AXIFIFO) を削除し、ファイルを保存します。