- ハードウェア マネージャーを開き、ターゲット ボードに接続します。
ターゲット ボードは、ローカルのものでも、リモート サーバー上のものでもかまいません。この接続方法の詳細は、ユーザーのセットアップによって異なります。デザインにリモートにアクセスする場合は、VIO または ILA デバッグ コアを介します。
- ボードに接続できたら、次は FPGA インスタンスを右クリックし、Program Device をクリックします。デフォルトで、top.bit ファイルが project_1.runs/impl_1 ディレクトリから選択されているはずです。選択されていない場合は、impl_1 プロジェクト run ディレクトリから top.bit を選択します。top.ltx プローブ ファイルは自動的に選択されます。これは、乗算器 RM が含まれている完全なデバイス ビットストリームです。
- [hw_vio_1] ダッシュボード タブをクリックします。これが表示されていない場合は、[Dashboard Options] を開いて [hw_vio_1] チェック ボックスをオンにします。
- [+] ボタンをクリックし、[Add Probes] ダイアログ ボックスからすべてのプローブを選択し、OK をクリックします。図 1. デバッグ用プローブの選択
- プローブを右クリックし、次のように設定します。
- 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 ダッシュボード
- vio_select の値を 1 に変更します。これで物理的なボード上のボタンがディスエーブルになるので、VIO を介し、一時停止、リセット、およびトグル ボタンをイネーブルにします。
- [Pause_vio_out] の [Value] をクリックして、[pause] ボタンを選択します。特定の値で LED のカウンターが停止します。[count_out_OBUF] の値は符号なしの 2 進数である点に注意してください。このスクリーンショットでは値は 12 です。図 3. VIO を介したカウンターの監視
- [toggle_vio_out] ボタンをクリックします。現在の RM は乗算器なので、count_out_OBUF バスの値は二乗になっています。この場合は 144 です。
- [pause] ボタンをクリックするとカウンターが開始します。これで、count_out_OBUF の値は、0 から 15 までの値を二乗した値でカウントされるようになります (1、4、9、16、25 とカウントされる)。注記: ハードウェア マネージャーの内部クロックの相対的な周波数やサンプリング レートを考慮すると、すべての値を順番に確認できるわけではありません。
- リセット ボタンを押し、デフォルト ステートにデザインを戻します。カウントが最初の 0 から 15 までの範囲で再開します。
- デザインを理解するため、これらのボタンを何度か押してみてください。ローカル ボードがある場合は、vio_select をトグルし、ボード上のボタンや LED を使用して、同じ動作になるかどうかを確認します。
- ILA ダッシュボードに切り替えます。ここまでは、スタティック デザインにある VIO を使用してきました。乗算器の結果は確認できますが、この RM 内の波形を確認する必要がある場合は、その中にある ILA を使用して確認できます。
- [Trigger Setup] ウィンドウで [+] ボタンをクリックし、my_math/mult[7:0] プローブを追加します。([Trigger Setup] および波形ウィンドウの両方で) 基数を [unsigned decimal] に変更し、その値を 196 (14x14 など) に設定します。図 4. mult RM 内のプローブの定義
- ILA の設定ウィンドウでトリガー位置を 512 に変更します。図 5. トリガー位置の設定
- 波形のツールバーにある [run trigger] ボタンをクリックします。波形が 169 から 196 へと (132 から 142) 遷移するのが確認されます。 注記: VIO がデザインを停止させていないことを確認してください。デザインが停止していると、トリガーが発生しません。図 6. 乗算ファンクションの確認
- 加算器のパーシャル ビットストリームを読み込みます。ハードウェア ビューでターゲット パーツを右クリックし、 Program Device を選択します。
- UltraScale パーツをターゲットにしている場合は、まずクリア ビットストリームをプログラムして、次のパーシャル ビットストリームのデザインを準備する必要があります。ビットストリーム ファイルには、乗算器のクリア ビットストリームを選択します。project_1.runs/impl1/ ディレクトリに移動し、my_math_mult_partial_clear.bit ファイルを参照します。図 7. 現在の RM に対応するクリア ビットストリームの選択
LTX ファイルのペアが自動的に選択されます。Program をクリックします。
- VIO ダッシュボードに切り替え、カウンターがまだカウント実行中であることを確認します。乗算器の出力に切り替えるのにトグル ボタンをクリックする場合は、値が 255 に保持されます。これは、RP のロジックが現在ディスエーブルになっているためです。トグル ボタンをクリックして、カウンターに戻ります。リモート制御するには、vio_select を 1 に設定する必要があることを思い出してください。
- [Hardware] ビューでターゲット パーツを右クリックし、Program Device を選択します。
- ビットストリーム ファイルの場合は、project_1.runs/child_0_impl_1/ ディレクトリに移動し、my_math_add_partial.bit ファイルを参照します。 図 8. 新規パーシャル ビットストリームの選択
ここでも LTX ファイルのペアが自動的に選択されます。Program をクリックします。
図 9. 動作中の加算ファンクション
- VIO ダッシュボードで、[pause] を選択します。この場合、値は 6 で停止します。1 回トグルした後、値は 18 になります。加算器により同じ値が 3 回追加されます。
- ILA ダッシュボードに切り替えます。[Trigger Setup] ウィンドウで [+] をクリックし、my_math/outtemp2[5:0] バスを追加します。トリガーの設定を次のように変更します。
- 基数 = 符号なし 10 進数
- 値 = 30
- ILA の設定ウィンドウでトリガー位置を 512 に変更します。
- 波形ウィンドウで [+] ボタンをクリックし、my_math/outtemp2[5:0] プローブを波形に追加します。プローブを右クリックし、基数を符号なしの 10 進数に設定します。
- 波形ウィンドウで、ILA のトリガー ボタンをクリックします。27 (9+9+9) から 30 (10+10+10) へと遷移するのが確認されます。注記: VIO がデザインを停止させていないことを確認してください。図 10. 加算ファンクションの確認
すべてが正しく機能していることが確認できたら、ハードウェア マネージャーを閉じます。