CED の使用例 - 2023.2 日本語

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 日本語

サンプル プラットフォームのダウンロード

  1. Vivado を起動します。
  2. Tools > Vivado Store (保存/アラート) をクリックします。
  3. OK をクリックして、ウェブからオープンソースのサンプルのダウンロードに同意します。
  4. Platform > Versal Extensible Embedded Platform をクリックし、ツールバーのダウンロード ボタンをクリックします。
  5. インストールが完了したら、Close をクリックします。

    注記: この例では、Versal エクステンシブル エンベデッド プラットフォームが使用されています。必要なデザイン例を選択します。
  6. インストールが完了したら、Close をクリックします。

    注記: この例では、Versal エクステンシブル エンベデッド プラットフォームが使用されています。必要なデザイン例を選択します。

CED サンプル デザインの作成

  1. File > Project > Open Example (保存/アラート) をクリックします。
  2. [Select Project Template] ウィンドウで Versal Extensible Embedded Platform をオンにします。
  3. project name および project location を入力します。Create project subdirectory はオンのままにします。Next をクリックします。
  4. [Default Part] ページでターゲット ボードを選択します。この例では、Versal VCK190 Evaluation Platform が選択されています。Next をクリックします。

  5. クロック設定を指定します。このページでは、より多くのクロックをイネーブルにしたり、出力周波数をアップデートしたり、デフォルト クロックを定義したりできます。この例では、デフォルト設定が使用されています。
  6. 割り込み設定を指定します。このプラットフォームのサポートする割り込みの数を選択できます。63 割り込みモードの場合、カスケード モードで 2 つの AXI_INTC が使用されます。この例では、デフォルト設定が使用されています。
  7. メモリ設定を指定します。このデザイン例では、デフォルトで DDR4 のみをイネーブルにします。LPDDR4 をイネーブルにすると、DDR4 と LPDDR4 の両方がイネーブルになります。この例では、デフォルト設定が使用されています。
  8. Next をクリックします。
  9. 新しいプロジェクト サマリを確認し、Finish をクリックします。
  10. しばらくすると、サンプル デザインが生成されたことがわかります。

    生成されたデザインでは AI エンジンがインスタンシエートされ、DDR4 コントローラーがイネーブルになり、CIPS に接続されます。また、1 つの割り込みコントローラー、3 つのクロック、および関連する同期リセット信号も提供されます。

Versal エクステンシブル プラットフォーム例のプラットフォーム設定

  1. AXI ポート設定を確認します。
    1. axi_noc_ddr4 では、S01_AXI から S27_AXI がイネーブルになっています。SP TagDDR に設定されています。

    2. icn_ctrl_0 および icn_ctrl_1 では、M01_AXI から M15_AXI がイネーブルになっています。icn_ctrl では、M03_AXI および M04_AXI がイネーブルです。memport は M_AXI_GP に設定されています。[SP Tag] は空です。これらのポートは、PL カーネルを制御する AXI マスター インターフェイスを提供します。ブロック図では、AXI SmartConnect IP にロードが必要なので、icn_ctrl_0 および icn_ctrl_1 は AXI Verification IP に接続します。ここでは、AXI Verification IP をダミーとして使用します。

  2. クロック設定を確認します。
    1. Clock タブで clk_wizard_0 から tab, clk_out1、clk_out2、clk_out3 を id {0,1,2}、frequency {200 MHz, 100 MHz, 300 MHz} を使用してイネーブルにします。デフォルトのクロックは、clk_out1 です。リンク設定でクロックが指定されていない場合、v++ リンカーはこのクロックを使用してカーネルを接続します。[Proc Sys Reset] プロパティは、各クロックに割り当てられた同期リセット信号に設定されます。

  3. [Interrupt] タブを確認します。
    1. Interrupt タブでは、xlconcat の In0 から In31 ポートがイネーブルになっています。

  4. シミュレーション モデルを確認します。
    1. Vivado 統合デザイン環境 (IDE) で、CIPS インスタンスを選択します。Block Properties ウインドウを確認します。Properties タブには、ALLOWED_SIM_MODELStlm および rtlSELECTED_SIM_MODELtlm と表示されます。つまり、このブロックでは 2 つのタイプのシミュレーション モデルがサポートされます。この例では tlm モデルが選択されています。

    2. ブロック図で NoC および AI エンジンのシミュレーション モデル プロパティを確認します。

ハードウェア XSA のエクスポート

  1. ブロック図を生成します。
    1. Flow Navigator から Generate Block Diagram をクリックします。

    2. [Synthesis Options] を [Global] にして、生成時間を短縮します。Generate ボタンをクリックします。

  2. 次のスクリプトを使用してハードウェア プラットフォームをエクスポートします。
    1. File > Export > Export Platform (保存/アラート) をクリックします。または、Flow Navigator ウィンドウで IP Integrator > Export Platform をクリックするか、Platform Setup タブの下にある Export Platform ボタンをクリックします。
    2. Export Hardware Platform ページで Next をクリックします。
    3. Hardware を選択します。シミュレーションをサポートしない IP がある場合は、ハードウェア XSA とハードウェア エミュレーション XSA を別々に生成する必要があります。Next をクリックします。
    4. DFX プラットフォームが作成されないため、Pre-synthesis を選択します。Next をクリックします。
    5. 名前を入力し、Next をクリックします。
    6. ファイル名をアップデートして Next をクリックします。
    7. サマリを確認したら、Finish をクリックします。

ハードウェア エミュレーション XSA のエクスポート

Vitis 2021.2 の変更では、XSCT でプラットフォームを作成する際に、ハードウェアとハードウェア エミュレーションごとに独自の XSA ファイルが必要となりました。2021.2 では、ハードウェアとハードウェア エミュレーションの両方のコンテンツを含む 1 つの XSA も引き続きサポートされますが、今後廃止される予定です。

  1. File > Export > Export Platform (保存/アラート) をクリックします。または、Flow NavigatorIP Integrator > Export Platform をクリックするか、Platform Setup タブの下にある Export Platform ボタンをクリックします。
  2. Export Hardware Platform ページで Next をクリックします。
  3. Hardware Emulation をクリックします。シミュレーションをサポートしない IP がある場合は、ハードウェア XSA とハードウェア エミュレーション XSA を別々に生成する必要があります。Next をクリックします。
  4. DFX プラットフォームが作成されないため、Pre-synthesis を選択します。Next をクリックします。
  5. 名前を入力し、Next をクリックします。
  6. ファイル名をアップデートして Next をクリックします。
  7. サマリを確認したら、Finish をクリックします。
注記: シンプルなプロジェクトの場合、同じハードウェアおよびハードウェア エミュレーション デザインを使用することは問題ありませんが、プロジェクトが複雑な場合は、プラットフォーム開発者が 2 つのデザインを論理的に同一に保つ必要があります。そうしないと、エミュレーション結果がハードウェア デザインを反映できません。