手順 11: ボードへの接続および FPGA のプログラム - 2022.1 日本語

Vivado Design Suite チュートリアル: Dynamic Function eXchange (UG947)

Document ID
UG947
Release Date
2022-05-31
Version
2022.1 日本語
  1. ハードウェア マネージャーを開き、ターゲット ボードに接続します。

    ターゲット ボードは、ローカルのものでも、リモート サーバー上のものでもかまいません。この接続方法の詳細は、ユーザーのセットアップによって異なります。デザインにリモートにアクセスする場合は、VIO または ILA デバッグ コアを介します。

  2. ボードに接続できたら、次は FPGA インスタンスを右クリックし、Program Device をクリックします。デフォルトで、top.bit ファイルが project_1.runs/impl_1 ディレクトリから選択されているはずです。選択されていない場合は、impl_1 プロジェクト run ディレクトリから top.bit を選択します。top.ltx プローブ ファイルは自動的に選択されます。これは、乗算器 RM が含まれている完全なデバイス ビットストリームです。
  3. [hw_vio_1] ダッシュボード タブをクリックします。これが表示されていない場合は、[Dashboard Options] を開いて [hw_vio_1] チェック ボックスをオンにします。
  4. [+] ボタンをクリックし、[Add Probes] ダイアログ ボックスからすべてのプローブを選択し、OK をクリックします。
    図 1. デバッグ用プローブの選択

  5. プローブを右クリックし、次のように設定します。
    • count_out_OBUF[7:0] のバス – 基数 (符号なし 10 進数)
    • count_out_OBUF[7:0] の個々のビット – LED (Low の場合は赤、High の場合は緑)
    • pause_vio_out – アクティブ High のボタン
    • reset_vio_out – アクティブ High のボタン
    • toggle_vio_out – アクティブ High のボタン
    • vio_select – トグル ボタン

    設定後のダッシュボードは次のようになります。

    図 2. デバッグ用の初期 VIO ダッシュボード

  6. vio_select の値を 1 に変更します。これで物理的なボード上のボタンがディスエーブルになるので、VIO を介し、一時停止、リセット、およびトグル ボタンをイネーブルにします。
  7. [Pause_vio_out] の [Value] をクリックして、[pause] ボタンを選択します。特定の値で LED のカウンターが停止します。[count_out_OBUF] の値は符号なしの 2 進数である点に注意してください。このスクリーンショットでは値は 12 です。
    図 3. VIO を介したカウンターの監視

  8. [toggle_vio_out] ボタンをクリックします。現在の RM は乗算器なので、count_out_OBUF バスの値は二乗になっています。この場合は 144 です。
  9. [pause] ボタンをクリックするとカウンターが開始します。これで、count_out_OBUF の値は、0 から 15 までの値を二乗した値でカウントされるようになります (1、4、9、16、25 とカウントされる)。
    注記: ハードウェア マネージャーの内部クロックの相対的な周波数やサンプリング レートを考慮すると、すべての値を順番に確認できるわけではありません。
  10. リセット ボタンを押し、デフォルト ステートにデザインを戻します。カウントが最初の 0 から 15 までの範囲で再開します。
  11. デザインを理解するため、これらのボタンを何度か押してみてください。ローカル ボードがある場合は、vio_select をトグルし、ボード上のボタンや LED を使用して、同じ動作になるかどうかを確認します。
  12. ILA ダッシュボードに切り替えます。ここまでは、スタティック デザインにある VIO を使用してきました。乗算器の結果は確認できますが、この RM 内の波形を確認する必要がある場合は、その中にある ILA を使用して確認できます。
  13. [Trigger Setup] ウィンドウで [+] ボタンをクリックし、my_math/mult[7:0] プローブを追加します。([Trigger Setup] および波形ウィンドウの両方で) 基数を [unsigned decimal] に変更し、その値を 196 (14x14 など) に設定します。
    図 4. mult RM 内のプローブの定義

  14. ILA の設定ウィンドウでトリガー位置を 512 に変更します。
    図 5. トリガー位置の設定

  15. 波形のツールバーにある [run trigger] ボタンをクリックします。波形が 169 から 196 へと (132 から 142) 遷移するのが確認されます。
    注記: VIO がデザインを停止させていないことを確認してください。デザインが停止していると、トリガーが発生しません。
    図 6. 乗算ファンクションの確認

  16. 加算器のパーシャル ビットストリームを読み込みます。ハードウェア ビューでターゲット パーツを右クリックし、 Program Device を選択します。
  17. UltraScale パーツをターゲットにしている場合は、まずクリア ビットストリームをプログラムして、次のパーシャル ビットストリームのデザインを準備する必要があります。ビットストリーム ファイルには、乗算器のクリア ビットストリームを選択します。project_1.runs/impl1/ ディレクトリに移動し、my_math_mult_partial_clear.bit ファイルを参照します。
    図 7. 現在の RM に対応するクリア ビットストリームの選択

    LTX ファイルのペアが自動的に選択されます。Program をクリックします。

  18. VIO ダッシュボードに切り替え、カウンターがまだカウント実行中であることを確認します。乗算器の出力に切り替えるのにトグル ボタンをクリックする場合は、値が 255 に保持されます。これは、RP のロジックが現在ディスエーブルになっているためです。トグル ボタンをクリックして、カウンターに戻ります。リモート制御するには、vio_select を 1 に設定する必要があることを思い出してください。
  19. [Hardware] ビューでターゲット パーツを右クリックし、Program Device を選択します。
  20. ビットストリーム ファイルの場合は、project_1.runs/child_0_impl_1/ ディレクトリに移動し、my_math_add_partial.bit ファイルを参照します。
    図 8. 新規パーシャル ビットストリームの選択

    ここでも LTX ファイルのペアが自動的に選択されます。Program をクリックします。

    図 9. 動作中の加算ファンクション



  21. VIO ダッシュボードで、[pause] を選択します。この場合、値は 6 で停止します。1 回トグルした後、値は 18 になります。加算器により同じ値が 3 回追加されます。
  22. ILA ダッシュボードに切り替えます。[Trigger Setup] ウィンドウで [+] をクリックし、my_math/outtemp2[5:0] バスを追加します。トリガーの設定を次のように変更します。
    • 基数 = 符号なし 10 進数
    • 値 = 30
  23. ILA の設定ウィンドウでトリガー位置を 512 に変更します。
  24. 波形ウィンドウで [+] ボタンをクリックし、my_math/outtemp2[5:0] プローブを波形に追加します。プローブを右クリックし、基数を符号なしの 10 進数に設定します。
  25. 波形ウィンドウで、ILA のトリガー ボタンをクリックします。27 (9+9+9) から 30 (10+10+10) へと遷移するのが確認されます。
    注記: VIO がデザインを停止させていないことを確認してください。
    図 10. 加算ファンクションの確認

    すべてが正しく機能していることが確認できたら、ハードウェア マネージャーを閉じます。