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

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

Document ID
UG947
Release Date
2023-11-29
Version
2023.2 日本語
  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 をクリックします。

  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 – トグル ボタン

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



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

  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 など) に設定します。

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

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


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

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

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

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



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


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