プラットフォーム (PFM) インターフェイスおよびプロパティの定義 - 2019.2 Japanese

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2020-02-28
Version
2019.2 Japanese

PFM インターフェイスおよびプロパティは、IP インテグレーター ブロック デザインの [Platform Interfaces] ビューから宣言します。まだ開いていない場合、Vivado メニューで Window > Platform Interfaces をクリックして [Platform Interfaces] ビューを開き、Enable platform interfaces リンクをクリックします。

Tcl コマンドを使用してプラットフォーム プロパティを設定する方法は、プラットフォーム インターフェイス プロパティのコンフィギュレーション を参照してください。

[Platform Interfaces] ビューには、デザイン内のさまざまな IP ブロック、およびアプリケーション アクセラレーション フローで Vitis コンパイラがリンクする使用可能なインターフェイス ポートが表示されます。次の手順に従うと、カーネルをハードウェア デザインに統合する際に、インターフェイスの v++ リンカーでの使用をイネーブルまたはディスエーブルに宣言できます。

ヒント: Ctrl または Shift キーを使用すると、複数のインターフェイスを選択して同時に設定できます。
  1. [Platform Interfaces] ビューで zynq_ultra_ps_e_0 ブロックを展開し、ディスエーブルのままにしておくべき次のインターフェイスを除いたインターフェイスを右クリックし、Enable をクリックしてすべてのインターフェイスをイネーブルにします。
    • S_AXI_ACP_FPD
    • S_AXI_LPD
    • pl_clk0
  2. clk_wiz_0 ブロックを展開して、clk_out1 から clk_out5 まですべてのクロックをイネーブル。
  3. clk_out3 をクリックし、Platform Interface Properties ビューでそのプロパティを変更して、プラットフォームのデフォルト クロックとして定義します。
    1. Options タブをクリックします。
    2. id = 0 に設定します。
      重要: 編集後に変更を保存するには、Enter をクリックする必要があります。
    3. is_default をオンにします。
    4. status = fixed になっていることを確認します。

さまざまなプラットフォーム インターフェイスを指定した後、プロジェクト プロパティを設定し、オプションでエミュレーションをイネーブルにし、ブロック デザインを検証し、出力ファイルを生成し、必要な XSA を生成します。

  1. プロジェクト プロパティも設定して、インプリメンテーション ツールを実行してビットストリームを生成する前に、ターゲット プラットフォームのハードウェア デザインで使用されるダウンストリーム ツールに伝えるようにする必要があります。
    set_property platform.design_intent.embedded true [current_project]
    set_property platform.design_intent.server_managed false [current_project]
    set_property platform.design_intent.external_host false [current_project]
    set_property platform.design_intent.datacenter false [current_project]
    set_property platform.default_output_type "sd_card" [current_project]
    
  2. これは、プラットフォームにハードウェア エミュレーション サポートを追加するためのオプションの手順です。zynq_ultra_ps_e_0 ブロックを選択し、[Block Properties] ビューで SELECTED_SIM_MODEL プロパティを rtl から tlm に変更します。
    ヒント: 次の Tcl コマンドでも同じ操作を実行できます。
    set_property SELECTED_SIM_MODEL tlm [get_bd_cells /zynq_ultra_ps_e_0]
  3. IP インテグレーター キャンバスで右クリックして Validate Design をクリックし、ブロック デザインに問題がないかどうかを検証します。
  4. [Sources] ビューで BD design (design_1.bd) を右クリックし、Generate Output Products をクリックします
    1. 合成オプションには、デフォルトの [Out-of-context per IP] を使用します。
    2. run 設定には、デフォルトの [On local host] を使用します。
    3. Generate をクリックします。
    4. 生成が終了したら、[Design Run] タブで [Out-of-Context Module Runs] を展開し、デザイン名の横に緑のチェックマークが表示されたことを確認します。
  5. [Sources] ビューで BD design を右クリックし、Create HDL Wrapper をクリックします。
    1. デフォルト オプションである [Let Vivado manage wrapper and auto-update] をオンにします。
    2. OK をクリックします。
  6. Flow Navigator でProgram and Debug > Generate Bitstream をクリックします。
    1. Yes をクリックして合成およびインプリメンテーションを開始します。
    2. [Launch Runs] ダイアログ ボックスの設定はデフォルトのままにして OK をクリックします。
    3. 「Bitstream Generation Completed」というメッセージが表示されたら、Cancel をクリックして続行します。
  7. 次の Tcl コマンドで XSA を作成します。
    write_hw_platform -include_bit zcu102_min.xsa
  8. XSA を検証します。
    validate_hw_platform ./zcu102_min.xsa
  9. XSA (zcu102_min.xsa) が生成されて、Vivado プロジェクト ディレクトリと同じレベルにあることを確認します。

カーネル サポートを含む XSA が作成され、Vitis ターゲット プラットフォーム プロジェクトでハードウェア コンポーネントとして使用して、カーネル ベースのアプリケーションが提供できるようになりました。ターゲット プラットフォームには、ソフトウェア コンポーネントも必要です。Linux ソフトウェア コンポーネントを生成するには PetaLinux ツールを使用し、XRT ライブラリ サポートと追加アイテム (ソフトウェア コンポーネントの作成 を参照) を含めます。