手順 2: KC705 ボードのプログラムおよび JTAG to AXI Master コアとの接続 - 2023.2 日本語

Vivado Design Suite チュートリアル: プログラムおよびデバッグ (UG936)

Document ID
UG936
Release Date
2023-11-01
Version
2023.2 日本語
  1. KC705 ボードの USB-JTAG インターフェイスを AMD Vivado™ IDE およびケーブル ドライバーがインストールされているコンピューターに接続し、ボードの電源を入れます。
  2. ハードウェア マネージャーのウィンドウが開きます。Open New Target をクリックします。[Open New Hardware Target] が開きます。

  3. [Connect to] フィールドで Local server を選択し、Next をクリックします。

    注記: 接続スピードによりますが、約 10 秒から 15 秒かかる場合があります。
  4. 接続するターゲットが複数ある場合は、Hardware Target ページで複数のエントリが表示されます。このチュートリアルでは、次の図に示すように 1 つのターゲットのみ表示されます。これらの設定をすべてデフォルトのままにし、Next をクリックします。

  5. 次のように、これらの設定をすべてデフォルトのままにしておきます。Next をクリックします。
  6. 次の図のように [Open Hardware Target Summary] ページで Finish をクリックします。

    ハードウェアが完了するまで待ちます。ハードウェアとの接続が完了したら、次の図のように [Hardware] ウィンドウが開きます。

    注記: [Debug] ビューの [Hardware] タブでは、ハードウェア ターゲットおよび XC7K325T デバイスが JTAG チェーンで検出されていることが確認できます。


  7. 次に、次の図のように、XC7K325T デバイスを右クリックして Program Device を選択し、前に作成しておいたビットストリーム (拡張子は .bit) を使用して XC7K325T デバイスをプログラムします。
  8. [Program Device] ダイアログ ボックスでビットストリーム (.bit) がこの演習で使用しているものであることを確認します。Program をクリックしてデバイスをプログラムします。

    注記: デバイスのプログラムが完了するまで待ちます。完了まで数分がかかる場合があります。
  9. [Hardware Manager] ウィンドウに hw_axi_1 および hw_ila_1 インスタンスが表示されていることを確認し、JTAG to AXI Master および ILA コアが検出されていることを確認します。

  10. JTAG to AXI Master コアには Tcl コマンドでのみ通信可能です。AXI の読み出しおよび書き込みトランザクションは run_hw_axi コマンドを使用して開始します。ただし、これらのトランザクションを開始する前に、JTAG to AXI Master コアをリセットしてください。jtag_axi_0 コア インスタンスの aresetn 入力ポートは何にも接続されていないので、次の Tcl コマンドを使用してコアをリセットする必要があります。
    reset_hw_axi [get_hw_axis hw_axi_1]


  11. 次は、ブロック RAM の最初の 4 つのロケーションに書き込む 4 ワードの AXI バースト トランザクションを作成します。
    set wt [create_hw_axi_txn write_txn [get_hw_axis hw_axi_1] -type WRITE -address C0000000 -len 128 -data {44444444_33333333_22222222_11111111}]

    説明:

    • write_txn はトランザクション名です。
    • [get_hw_axis hw_axi_1] は hw_axi_1 オブジェクトを返します。
    • -address C0000000 は開始アドレスです。
    • -len 128 は AXI バースト長を 128 ワードに設定します。
    • -data {44444444_33333333_22222222_11111111} は書き込まれるデータです。
    注記: MSB (例: address 3) から LSB (例: address 0) に向かって指定します。このデータは、バースト全体を埋めるまで、LSB から MSB へと繰り返されます。
  12. 次は、AXI-BRAM コアの最初の 4 つのロケーションの内容を読み出す 128 ワードの AXI バースト トランザクションを作成します。
    set rt [create_hw_axi_txn read_txn [get_hw_axis hw_axi_1] -type READ -address C0000000 -len 128]

    説明:

    • read_txn はトランザクション名です。
    • [get_hw_axis hw_axi_1] は hw_axi_1 オブジェクトを返します。
    • -address C0000000 は開始アドレスです。
    • -len 128 は AXI バースト長を 4 ワードに設定します。
  13. トランザクションを作成したら run_hw_axi コマンドを使用して書き込みトランザクションとして実行できます。
    run_hw_axi $wt

    このコマンドを実行すると、次が返されるはずです。

    INFO: [Labtools 27-147] : WRITE DATA is : 44444444333333332222222211111111…
  14. トランザクションを作成したら run_hw_axi コマンドを使用して読み出しトランザクションとして実行できます。
    run_hw_axi $rt

    このコマンドを実行すると、次が返されるはずです。

    INFO: [Labtools 27-147] : READ DATA is : 44444444333333332222222211111111…