137
Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 12 10 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資 料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報 につきましては、必ず最新英語版をご参照ください。 すべてのバージョンを表示

Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

Vivado Design Suite チュートリアルプログラムおよびデバッグUG936 (v2019.2) 2019 年 12 月 10 日

この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきましては、必ず最新英語版をご参照ください。

すべてのバージョンを表示

Page 2: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

改訂履歴次の表に、この文書の改訂履歴を示します。

セクション 改訂内容2019 年 12 月 10 日 バージョン 2019.2

資料全体。 Vivado 2019.2 用にアップデート。2019 年 5 月 22 日 バージョン 2019.1

資料全体。 編集上のアップデートのみ。技術内容の変更なし。

改訂履歴

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 2

Page 3: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

目次改訂履歴..........................................................................................................................................................................2

第 1 章: Vivado チュートリアルでのデバッグ................................................................................... 5目標..................................................................................................................................................................................5入門..................................................................................................................................................................................6

第 2 章: 演習 1: デザインをデバッグするためのネットリストの挿入............................10手順 1: Vivado New Project ウィザードを使用したプロジェクトの作成................................................................. 10手順 2: デザインの合成................................................................................................................................................ 11手順 3: デバッグ IP のプローブおよび追加.................................................................................................................12手順 4: デザインのインプリメントおよびビットストリームの生成..........................................................................19

第 3 章: 演習 2: HDL インスタンシエーションを使用したデザインのデバッグ.....20手順 1: Vivado New Project ウィザードを使用したプロジェクトの作成................................................................. 20手順 2: デザインの合成、インプリメント、およびビットストリームの生成...........................................................22

第 4 章: 演習 3: Vivado Design Suite でデザインをデバッグするための VIOコアの使用.............................................................................................................................................................23手順 1: Vivado New Project ウィザードを使用したプロジェクトの作成................................................................. 24手順 2: デザインの合成、インプリメント、およびビットストリームの生成...........................................................28

第 5 章: 演習 4: Synplify Pro 合成ツールおよび Vivado Design Suite を使用したデザインのデバッグ............................................................................................................................ 30手順 1: Synplify Pro プロジェクトの作成................................................................................................................... 30手順 2: Synplify プロジェクトの合成.......................................................................................................................... 36手順 3: Synplify Pro で作成したブラック ボックス用の DCP の作成........................................................................37手順 4: Vivado での合成後のプロジェクトの作成...................................................................................................... 37手順 5: プロジェクトへのデバッグ ネットの追加...................................................................................................... 38手順 6: デザインのインプリメントおよびビットストリームの生成..........................................................................41

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ......... 42手順 1: Sine Wave Generator の操作の検証.............................................................................................................. 42手順 2: 正弦波シーケンサー ステート マシンのデバッグ (オプション).................................................................... 51

第 7 章: 演習 6: ECO フローを使用したインプリメンテーション後のデバッグプローブの置換..................................................................................................................................................67

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 3

Page 4: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

第 8 章: 演習 7: インクリメンタル コンパイル フローを使用したデザインのデバッグ.................................................................................................................................................................. 79手順................................................................................................................................................................................79手順 1: サンプル デザインへのデバッグ コアの追加..................................................................................................79手順 2: リファレンス デザインのコンパイル.............................................................................................................. 82手順 3: 新規 run の作成................................................................................................................................................83手順 4: インクリメンタル デバッグの変更..................................................................................................................85手順 5: インクリメンタル コンパイルの実行.............................................................................................................. 87まとめ............................................................................................................................................................................ 89

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ........ 90デザインの概要............................................................................................................................................................. 90手順 1: IBERT デザインの作成、カスタマイズ、および生成.....................................................................................91手順 2: Vivado プロジェクトへの IBERT コアの追加................................................................................................. 92手順 3: IBERT デザインの合成、インプリメンテーション、およびビットストリーム生成.................................... 98手順 4: シリアル I/O 解析を使用した IBERT コアとの対話..................................................................................... 100

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ..................................................................................................................................................................... 115デザインの概要........................................................................................................................................................... 115手順 1: 新規 Vivado プロジェクトの作成、および JTAG-to-AXI および System ILA を含んだ IP インテグレーター デザインの生成.............................................................................................................................................116

手順 2: KC705 ボードのプログラムおよび JTAG to AXI Master コアとの接続....................................................... 126手順 3: AXI 読み出しトランザクションでトリガーするための ILA アドバンスド トリガー機能の使用............... 132

付録 A: その他のリソースおよび法的通知........................................................................................136ザイリンクス リソース...............................................................................................................................................136Documentation Navigator およびデザイン ハブ.................................................................................................... 136お読みください: 重要な法的通知...............................................................................................................................136

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 4

Page 5: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

第 1 章

Vivado チュートリアルでのデバッグこの資料では、複雑な FPGA デザインをデバッグしやすくする目的で、いくつかのチュートリアルがセットになっています。デバッグするときに選択できるデバッグ フローには 4 種類あり、最初の 4 つの演習で各フローを説明します。これらの演習では、FPGA デザインをデバッグする場合に推奨される Vivado® Design Suite デバッグ手動が紹介されています。各演習の手順では、デザインをデバッグしやすくするため、小型の RTL デザインを利用し、さまざまな方法で ILA (Integrated Logic Analyzer) コアを挿入します。5 番目の演習では、Vivado ツールで高速シリアル I/O リンクをデバッグします。6 番目の演習では、Vivado ツールで JTAG-AXI トランザクションをデバッグします。最初の4 つの演習では、ターゲットのハードウェア ボードに接続するまでの手順が説明されています。サンプルの RTL デザインは、Vivado ロジック解析、ILA、Vivado 統合設計環境 (IDE) との間のフローを全体的に統合する方法を説明するために使用されています。このチュートリアルをうまく活用するには、Vivado ツール フローの基本知識がある程度必要です。トレーニング: ザイリンクス では、この資料に含まれるコンセプトを説明するさまざまなトレーニング コースおよび QuickTake ビデオを提供しています。次のリンクから関連するコースを参照してください。• Vivado Design Suite を使用した FPGA の設計 1

• Vivado Design Suite を使用した FPGA の設計 2

• Vivado Design Suite を使用した FPGA の設計 3

• Vivado Design Suite を使用した FPGA の設計 4

• 『Vivado Design Suite ユーザー ガイド: プログラムおよびデバッグ』 (UG908)

目標これらのチュートリアルは次のことを目標にしています。• デバッグ プロセスを迅速かつ簡単にする Vivado デザイン環境に統合された Vivado® ロジック解析機能を活用する方法を紹介する。

• FPGA ロジック デザインに共通の問題をデバッグするため、Vivado IDE および Vivado ロジック解析の使用方法を具体的に紹介する。

• 高速シリアル リンクをデバッグするため、Vivado シリアル I/O 解析の使用方法を具体的に紹介する。このチュートリアルを終了すると、次のことができるようになります。• Vivado 統合設計環境 (IDE) および ILA (Integrated Logic Analyzer) コアを使用して、デザインを検証およびデバッグする。

• Vivado IDE での RTL プロジェクトの作成、デザインのプローブ、ILA コアの挿入、デザインのインプリメント方法を理解する。

• Vivado IDE で IP コア ネットリストを生成しカスタマイズする。

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 5

Page 6: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

• Vivado ロジック解析を使用してリアルタイムでデザインをデバッグし、Vivado IDE、および Kintex®-7 デバイスを含む KC705 評価キット基本ボードを使用してデザインを繰り返し実行する。

• シリアル I/O 解析を使用して高速シリアル リンクを解析する。

入門設定要件このチュートリアルを開始する前に、チュートリアルに含まれる演習に必要なハードウェアおよびソフトウェア コンポーネントが揃っていること、またそれらを把握しておいてください。

ソフトウェアVivado® Design Suite 2019.2

ハードウェア• Kintex®-7 FPGA KC705 評価キット基本ボード• Digilent 社のケーブル• SMA (Sub-miniature バージョン A) ケーブル 2 本

図 1: 主なコンポーネントを示した KC705 ボード

チュートリアル デザインのコンポーネント演習 1 から 4 までには次のものが含まれています。

第 1 章: Vivado チュートリアルでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 6

Page 7: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

• 単純な制御ステート マシン• AXI4-Stream インターフェイス、ネイティブ DDS Compilier を使用した正弦波ジェネレーター 3 つ• 共通プッシュボタン (GPIO_BUTTON)

• DIP スイッチ (GPIO_SWITCH)

• LED ディスプレイ (GPIO_LED) VIO コア (演習 3 のみ)

• プッシュボタン スイッチ: デバウンスおよび制御ステート マシン回路の入力になります。プッシュボタンを押すと、High から Low へと遷移します。生成された出力はそれぞれステート マシンへの入力として使用されます。

• DIP スイッチ: デバウンス回路をイネーブルまたはディスエーブルにします。• デバウンス回路: この例では、イネーブルになっている場合、クリーンなパルスを提供するか、または High から

Low へ遷移します。ボタンを押して放したときの一連のスパイクやグリッチを除去します。• 正弦波シーケンサー ステート マシン: 2 つのプッシュボタンからの入力を取り込んでデコードします。00、01、

10、11 (0 から 3 へ) と遷移し、正弦波を選択し、インジケーター回路の役割を果たします。• LED ディスプレイ: GPIO_LED_0 および GPIO_LED_1 は、ステートマシン出力のセレクト ステータスを表示し、それぞれに高、中、低の異なる正弦波周波数を表します。

演習 5 には次のものが含まれています。• IBERT コア• IBERT コアをインスタンシエートする最上位ラッパー。

ボード サポートおよびピン配置情報表 1: KC705 ボード用のピン配置情報

ピン名 ピン位置 説明CLK_N AD11 [Clock]

CLK_P AD12 [Clock]

GPIO_BUTTONS[0] AA12 [Reset]

GPIO_BUTTONS[1] AG5 正弦波シーケンサーGPIO_SWITCH Y28 デバウンス回路セレクターLEDS_n[0] AB8 正弦波セレクト [0]

LEDS_n[1] AA8 正弦波セレクト [1]

LEDS_n[2] AC9 予約済みLEDS_n[3] AB9 予約済み

デザイン ファイル1. C: ドライブに /Vivado_Debug という名前のフォルダーを作成します。2. ザイリンクス ウェブサイトから、リファレンス デザイン ファイルをダウンロードします。注意: チュートリアルおよびデザイン ファイルは、次のソフトウェア リリースまでにアップデートされたり、変更されたりする可能性があります。最新版のファイルはザイリンクス ウェブサイトからダウンロードできます。

第 1 章: Vivado チュートリアルでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 7

Page 8: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

3. チュートリアルのソース ファイルを解凍して /Vivado_Debug フォルダーに抽出します。演習は 6 つあり、それぞれに異なるデザイン デバッグ方法を使用します。この中から適切な演習を選択し、手順に沿って演習を完了します。

• 演習 1: HDL および合成後ネットリスト (ネットリスト挿入方法) でデバッグ用のネットを指定する手順を説明します。必須ファイルは次のとおりです。• debounce.vhd

• fsm.vhd

• sinegen.vhd

• sinegen_demo.vhd

• sine_high/sine_high.xci

• sine_low/sine_low.xci

• sine_mid/sine_mid.xci

• sinegen_demo_kc705.xdc

• 演習 2: ソースの HDL でデバッグ用のネットを指定し (HDL インスタンシエーション方法)、HDL で ILA コアをインスタンシエートする方法を説明します。必須ファイルは次のとおりです。• debounce.vhd

• fsm.vhd

• sinegen.vhd

• sinegen_demo_inst.vhd

• ila_0/ila_0.xci

• sine_high/sine_high.xci

• sine_low/sine_low.xci

• sine_mid/sine_mid.xci

• sinegen_demo_kc705.xdc

• 演習 3: ハードウェアに物理的にアクセスできなくても、VIO コアを使用してデザインをテストできます。この演習では、VIO コアをデザインの I/O に接続するため、VIO コアのインスタンシエーションおよびカスタマイズの手順を説明します。必須ファイルは次のとおりです。• debounce.vhd

• fsm.vhd

• sinegen.vhd

• sinegen_demo_inst_vio.vhd

• sine_high/sine_high.xci

• sine_low/sine_low.xci

• sine_mid/sine_mid.xci

• ila_0/ila_0.xci

• sinegen_demo_kc705.xdc

第 1 章: Vivado チュートリアルでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 8

Page 9: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

• 演習 4: サードパーティの合成ツールでもデバッグ用にネットを指定できます。その場合は、その合成ツールの指示子を使用します。この演習では、Synplify でデバッグ用のネットを指定し、そこから先のデバッグを Vivado® を使用して実行する手順を説明します。必須ファイルは次のとおりです。• debounce.vhd

• fsm.vhd

• sign_high.dcp

• sign_low.dcp

• sine_mid.dcp

• sine_high.xci

• sine_low.xci

• sine_mid.xci

• sinegen.edn

• sinegen_synplify.vhd

• synplify_1.sdc

• synplify_1.fdc

• sinegen_demo_kc705.xdc

• 演習 5: 演習 1、2、3、4 で作成したデザインを KC705 ボードに読み込みます。• 演習 6: ECO フローを使用してデバッグ プローブを置き換え、インプリメンテーション後のデバッグを改善します。

• 演習 7: デバッグ フローを高速化するため、インクリメンタル コンパイル フローを使用します。以前のインプリメンテーション run の結果を使用するこのフローでは、デバッグの変更を加えてからインプリメンテーションを再実行できます。

• 演習 8: Vivado シリアル I/O 解析を使用して高速シリアル I/O リンクをデバッグします。この演習では、Vivado IPサンプル デザインが使用されます。

• 演習 9: Vivado ILA コアを使用して JTAG-AXI トランザクションをデバッグします。この演習では、Vivado IP サンプル デザインが使用されます。

ボードおよびケーブルの接続1. Digilent ケーブル コネクタから Digilent ケーブルをコンピューターの USB ポートに接続します。2. 次のように、2 本の SMA ケーブル (演習 5 のみ) を接続します。

a. 1 本の SMA ケーブルを J19 (TXP) から J17 (RXP) に接続します。b. もう 1 本の SMA ケーブルを J20 (TXN) から J66 (RXN) に接続します。

ボード上の SMA ケーブルの相対位置が 設定要件 に示されています。

第 1 章: Vivado チュートリアルでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 9

Page 10: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

第 2 章

演習 1: デザインをデバッグするためのネットリストの挿入

この演習では、ソースの HDL および合成後のネットリストでデバッグするために信号を指定します。それから、ILA(Integrated Logic Analyzer) コアを作成し、デザインをインプリメンテーションまで進めます。最後に、Vivado® ツールを使用して KC705 ターゲット ボードに接続し、Vivado Integrated Logic Analyzer を使用してデザインをデバッグします。

手順 1: Vivado New Project ウィザードを使用したプロジェクトの作成

プロジェクトを作成するには New Project ウィザードを使用し、プロジェクト名を指定し、RTL ソース ファイルおよび制約ファイルを追加し、ターゲット デバイスを指定します。1. Vivado® IDE を起動します。2. [Getting Started] ページで [Create Project] をクリックして New Project ウィザードを開始します。[Next] をクリックします。

3. [Project Name] ページで新規プロジェクトの名前を「proj_netlist」に設定し、プロジェクト ディレクトリ (C:/Vivado_Debug) を設定します。[Create Project Subdirectory] が選択されていることを確認し [Next] をクリックします。

4. [Project Type] ページで、[Type of Project] を指定し RTL プロジェクトを作成します。[Next] をクリックします。5. [Add Sources] ページで次のように設定します。

a. [Target Language] を [VHDL] に設定します。b. [+] 記号をクリックしてから [Add Files] をクリックします。c. [Add Source Files] ダイアログ ボックスで /src/lab1 ディレクトリを参照します。d. すべての VHD ソース ファイルを選択し、[OK] をクリックします。e. ファイルが追加され、[Copy Sources into project] が選択されていることを確認します。

6. [Add] をクリックします。7. [Add Directories] ダイアログ ボックスで /src/lab1 ディレクトリを参照します。8. sine_high、sine_low、および sine_mid ディレクトリを選択して [Select] をクリックします。9. これらのディレクトリが追加されていることを確認します。[Next] をクリックします。10. [Add Constraints] ダイアログ ボックスで [+] 記号をクリックしてから、[Add Files] をクリックします。11. /src/lab1 ディレクトリを参照して sinegen_demo_kc705.xdc を選択します。[Next] をクリックします。

第 2 章: 演習 1: デザインをデバッグするためのネットリストの挿入

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 10

Page 11: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

12. [Default Part] ダイアログ ボックスで KC705 プラットフォームの [xc7k325tffg900-2] を選択します。[Boards]をクリックしてから [Kintex-7 KC705 Evaluation Platform] を選択することもできます。[Next] をクリックします。

13. [New Project Summary] ページを確認します。上記の手順で設定したとおりにデータが表示されていることを確認し、[Finish] をクリックします。注記: プロジェクトの初期化に少し時間がかかる場合があります。

手順 2: デザインの合成1. 次の図のように [Project Manager] で [Settings] をクリックします。

重要: オプションの手順ですが、[Settings] ダイアログ ボックスの左側で [Synthesis] を選択し、[flatten hierarchy] を[none] に変更します。[none] に変更すると、合成ツールでのバウンダリ最適化実行を防ぐことができます。

2. Vivado® Flow Navigator の [Synthesis] ドロップダウン リストから [Run Synthesis] を選択します。[Launch Runs]ダイアログ ボックスで、デフォルト設定をすべて受け入れ (ローカル ホストで run を起動する設定のまま)、[OK]をクリックします。注記: 合成が実行すると、進捗状況が表示されるので、合成が実行しているのがわかります。完了まで数分がかかる場合があります。

第 2 章: 演習 1: デザインをデバッグするためのネットリストの挿入

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 11

Page 12: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

3. 次の図のように [Synthesis Completed] ダイアログ ボックスで [Cancel] をクリックします。デザインのインプリメンテーションは後で実行します。

手順 3: デバッグ IP のプローブおよび追加Vivado® ILA コアをデザインに追加するには、Vivado IDE と Vivado ロジック解析とを統合するフローを利用します。この手順では、次のタスクを実行します。• プロジェクトにデバッグ ネットを追加。• Set Up Debug ウィザードを実行。• デザインをインプリメントし、開く。• ビットストリームを生成。

プロジェクトへのデバッグ ネットの追加Vivado® IDE を使用しデバッグ ネットを追加するには、次の方法があります。• HDL ファイルに MARK_DEBUG 属性を追加する。

• VHDL:

attribute mark_debug : string; attribute mark_debug of sine : signal is "true";attribute mark_debug of sineSel : signal is "true";

• Verilog:

(* mark_debug = "true" *) wire sine;(* mark_debug = "true" *) wire sineSel;

第 2 章: 演習 1: デザインをデバッグするためのネットリストの挿入

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 12

Page 13: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

この方法であれば、HDL デザイン レベルで信号をプローブできます。これで信号の最適化を防ぐことが可能です。また、合成後用に指定されている信号をデバッグ コアに挿入し、FPGA 操作中にその信号の値を確認することもできます。この方法なら、HDL 信号名が合成後に保持される可能性が最も高くなります。

• 合成済みネットリストで信号を右クリックし、[Mark Debug] または [Unmark Debug] を選択する。この方法なら、Vivado IDE で合成済みネットリストをプローブできるだけでなく、デザインの任意の階層でMARK_DEBUG 属性を追加/削除できるので、柔軟性があります。また、HDL ソースを変更する必要がありません。ただし、ネットリストの最適化によりデザイン構造が吸収または統合されると、合成で信号が保持されない場合があります。

• Tcl プロンプトを使用し、合成済みネットリストに MARK_DEBUG 属性を設定する。set_property mark_debug true [get_nets -hier [list {sine[*]}]]

現在開いているネットリストに MARK_DEBUG 属性が適用されます。この方法は、Tcl コマンドで MARK_DEBUG のオン/オフを切り替えることができるので柔軟性があります。また、HDL ソースを変更する必要がありません。ただし、ネットリストの最適化によりデザイン構造が吸収または統合されるので、合成で信号が保持されません。

次の手順では、Vivado IDE を使用して、デバッグ ネットを HDL および合成済みデザインに追加する方法を学びます。ヒント: 作業を進める前に、左側にある Flow Navigator がイネーブルになっていることを確認してください。このオン/オフを切り替えるには、Ctrl + Q キーを押します。

1. 次の図のように、Flow Navigator の [Synthesis] ドロップダウン リストから [Open Synthesized Design] をクリックします。

2. [Window] で [Debug] を選択します。[Debug] ウィンドウが開いたら、ウィンドウがまだ選択されていない場合は、そのウィンドウをクリックします。

3. [Unassigned Debug Nets] フォルダーを展開します。次の図は、sinegen_demo.vhd で MARK_DEBUG 属性が設定されているデバッグ ネットを示しています。

第 2 章: 演習 1: デザインをデバッグするためのネットリストの挿入

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 13

Page 14: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

4. [Netlist] ウィンドウの [Nelist] タブを選択し、ネットを展開表示します。次の図のように、デバッグするネットを選択します。• GPIO_BUTTONS_IBUF[0] および GPIO_BUTTONS_IBUF[1] - 最上位にある [Nets] フォルダー• sel(2) - U_SINEGEN 階層にある [Nets] フォルダー• sine(20)- U_SINEGEN 階層にある [Nets] フォルダー

第 2 章: 演習 1: デザインをデバッグするためのネットリストの挿入

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 14

Page 15: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

注記: これらの信号は、このデザインの重要な動作を表すもので、後の手順でデザインの検証およびデバッグに使用されます。

5. 次の図のように、選択したネットを右クリックし [Mark Debug] を選択します。

6. 次に、[Tcl Console] でデバッグするネットを指定します。次の Tcl コマンドを実行し、U_SINEGEN 階層の下にある「sine(20)」をデバッグ用に指定します。set_property mark_debug true [get_nets -hier [list {sine[*]}]]

ヒント: [Debug] ウィンドウに、先ほど選択した、割り当てられていないネットが表示されます。次の 2 つの図のように、[Netlist] ウィンドウには、各スカラーまたはバスの横に緑色の虫の形をしたアイコンも表示されます。このアイコンは、ネットに mark_debug = true と属性が設定されていることを示します。

第 2 章: 演習 1: デザインをデバッグするためのネットリストの挿入

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 15

Page 16: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

Set Up Debug ウィザードの実行1. [Debug] ウィンドウのツールバーまたは [Tools] メニューから [Set Up Debug] をクリックします。Set Up Debugウィザードが開きます。

第 2 章: 演習 1: デザインをデバッグするためのネットリストの挿入

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 16

Page 17: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

2. Set Up Debug ウィザードが開いたら、[Next] をクリックします。

3. 次の図のように [Nets to Debug] ページですべてのネットがデバッグ用に追加されたことを確認し、[Next] をクリックします。

第 2 章: 演習 1: デザインをデバッグするためのネットリストの挿入

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 17

Page 18: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

4. [ILA Core Options] ページの [Trigger and Storage Settings] セクションで [Capture Control] および [AdvancedTrigger] の両方を選択します。[Next] をクリックします。

5. [Setup Debug Summary] ページで、すべての情報が正しく、予期どおりであることを確認します。[Finish] をクリックします。

[Finish] をクリックすると、ILA コアを挿入する XDC コマンドが生成されます。

第 2 章: 演習 1: デザインをデバッグするためのネットリストの挿入

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 18

Page 19: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

手順 4: デザインのインプリメントおよびビットストリームの生成

1. Flow Navigator で [Program and Debug] → [Generate Bitstream] をクリックします。

2. [Save Project] ダイアログ ボックスで [Save] をクリックします。これにより、合成結果が古くなってしまうことを示すメッセージが表示されたら、[OK] をクリックします。新しく指定したネットに MARK_DEBUG プロパティが適用されます。これらの制約は、sinegen_demo_kc705.xdc ファイルを確認するとチェックできます。

3. [No Implementation Results Available] ダイアログ ボックスが開いたら、[Yes] をクリックします。[Launch Runs]ダイアログ ボックスで、デフォルト設定をすべて受け入れ (ローカル ホストで run を起動する設定のまま)、[OK]をクリックします。

4. ビットストリームの生成が完了すると、[Bitstream Generation Completed] ダイアログ ボックスが開きます。[OK] をクリックします。

5. インプリメント済みデザインを開く前に合成済みデザインを閉じるように促すダイアログ ボックスが表示されます。[Yes] をクリックします。

6. タイミング サマリ レポートで、すべての指定タイミング制約が満たされていることを確認します。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ に進んで、デザインのデバッグを終了させてください。

第 2 章: 演習 1: デザインをデバッグするためのネットリストの挿入

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 19

Page 20: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

第 3 章

演習 2: HDL インスタンシエーションを使用したデザインのデバッグ

Vivado® ツールのデバッグ プロービングには 2 つの方法があり、その 1 つが HDL インスタンシエーションを使用したデバッグです。このフローを使用する場合は、Vivado IP カタログを使用して ILA IP を生成し、ほかの IP の場合と同じように手動でデザインにインスタンシエートします。

手順 1: Vivado New Project ウィザードを使用したプロジェクトの作成

プロジェクトを作成するには New Project ウィザードを使用し、プロジェクト名を指定し、RTL ソース ファイルおよび制約ファイルを追加し、ターゲット デバイスを指定します。1. Vivado® IDE を起動します。2. [Getting Started] ページで [Create Project] をクリックして New Project ウィザードを開始します。[Next] をクリックします。

3. [Project Name] ページで新規プロジェクトの名前を「proj_hdl」に設定し、プロジェクト ディレクトリ (C:/Vivado_Debug) を設定します。[Create project subdirectory] チェック ボックスがオンになっていることを確認します。[Next] をクリックします。

4. [Project Type] ページで、[Type of Project] を指定し RTL プロジェクトを作成します。[Next] をクリックします。5. [Add Sources] ページで次のように設定します。

a. [Target Language] を [VHDL] に設定します。b. [+] 記号をクリックしてから [Add Directories] をクリックします。c. [Add Source Directories] ダイアログ ボックスで /src/lab2 ディレクトリを参照し、sine_high、sine_low、

sine_mid、および ila_0 のディレクトリを選択します。[Select] をクリックします。d. ディレクトリが追加され、[Copy Sources into Project] が選択されていることを確認します。e. [+] 記号をクリックしてから [Add File] をクリックします。f. [Add Source Files] ダイアログ ボックスで /src/lab2 ディレクトリを参照し、debounce.vhd、fsn.vhd、

sinegen.vhd、および sinegen_demo_inst.vhd ファイルを選択します。[OK] をクリックします。g. ソースおよびディレクトリが追加され、[Copy Sources into Project] が選択されていることを確認します。

[Next] をクリックします。6. [Add Constraints] ダイアログ ボックスで [+] 記号をクリックしてから、[Add Files] をクリックします。7. /src/lab1 ディレクトリを参照して sinegen_demo_kc705.xdc を選択します。[Next] をクリックします。

第 3 章: 演習 2: HDL インスタンシエーションを使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 20

Page 21: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

8. [Default Part] ダイアログ ボックスで KC705 プラットフォームの [xc7k325tffg900-2] を選択します。[Boards]をクリックしてから [Kintex-7 KC705 Evaluation Platform] を選択することもできます。[Next] をクリックします。

9. [New Project Summary] ページを確認します。上記の手順で設定したとおりにデータが表示されていることを確認します。[Finish] をクリックします。

10. Vivado IDE の [Sources] ウィンドウで、sinegen_demo_inst を展開して、この演習用のソース ファイルを表示させます。ila_0 コアがプロジェクトに追加されている点に注目してください。

11. 次の図のように、sinegen_demo_inst.vhd ファイルをダブルクリックして開き、HDL コードで ILA コアのインスタンシエーションおよびポート マップを確認します。

第 3 章: 演習 2: HDL インスタンシエーションを使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 21

Page 22: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

手順 2: デザインの合成、インプリメント、およびビットストリームの生成

1. Flow Navigator の [Program and Debug] ドロップダウン リストから [Generate Bitstream] をクリックします。これでデザインの合成、インプリメント、ビットストリーム生成が実行されます。

2. [No Implementation Results Available] ダイアログ ボックスが開きます。[Yes] をクリックします。[Launch Runs]ダイアログ ボックスで、デフォルト設定をすべて受け入れ (ローカル ホストで run を起動する設定のまま)、[OK]をクリックします。

3. ビットストリームの生成が完了すると、[Bitstream Generation Completed] ダイアログ ボックスが開きます。デフォルトで [Open Implemented Design] がオンになっています。[OK] をクリックします。

4. [Timing] ウィンドウの [Design Timing Summary] ページで、すべてのタイミング制約が満たされていることを確認します。

5. 第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ に進んで、この演習の残りを終了させてください。

第 3 章: 演習 2: HDL インスタンシエーションを使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 22

Page 23: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

第 4 章

演習 3: Vivado Design Suite でデザインをデバッグするための VIO コアの使用

VIO (Virtual Input/Output) は、内部 FPGA 信号をリアルタイムに監視および駆動できるカスタマイズ可能なコアです。FPGA デザインとインターフェイスするため、入力および出力ポートの数や幅をカスタマイズできます。VIO コアは監視および駆動しているデザインに同期するので、そのデザインに適用されるデザイン クロック制約はすべて、VIO コアのコンポーネントにも適用されます。このコアにランタイムにアクセスするには、Vivado® ツールのロジック解析機能を使用する必要があります。次の図は、新しい VIO コアのブロック図です。

図 2: VIO ブロック図

この演習では、VIO コアのインスタンシエーションおよびコンフィギュレーションの手順を説明します。また、VIOコアをデザインの I/O に接続する手順も説明します。このコアを使用すると、ハードウェアへアクセスできない場合や、ハードウェアがリモートに存在するときにデザインをデバッグできます。次のポートが作成されます。• 4 ビットの PROBE_IN0 ポート 1 つ。有限ステートマシン (FSM) からの 2 ビットの正弦波セレクト出力を監視するのに 2 ビット、ボードのほかの LED 2 つのステートを模倣するのに 2 ビット使用されます。KC705 ボードで表示される LED を模倣するため、ランタイム中はこれらの 4 ビット信号を LED としてコンフィギュレーションします。

• FSM の入力ボタンを駆動するための、2 ビットの PROBE_IN0 ポート 1 つ。1 ビットは、PUSH_BUTTON スイッチ SW3 を模倣するため、ランタイム中にトグル スイッチとして使用できるようにし、2 番目のビットはPUSH_BUTTON スイッチ SW6 として使用するよう、コンフィギュレーションします。

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 23

Page 24: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

手順 1: Vivado New Project ウィザードを使用したプロジェクトの作成

プロジェクトを作成するには New Project ウィザードを使用し、プロジェクト名を指定し、RTL ソース ファイルおよび制約ファイルを追加し、ターゲット デバイスを指定します。1. Vivado IDE を起動します。2. [Getting Started] ページで [Create Project] をクリックして New Project ウィザードを開始します。[Next] をクリ

ックします。3. [Project Name] ページで新規プロジェクトの名前を「[proj_hdl_vio]」に設定し、プロジェクト ディレクトリ (C:/

Vivado_Debug) を設定します。[Create project subdirectory] がオンになっていることを確認します。[Next] をクリックします。

4. [Project Type] ページで、[Type of Project] を [RTL Project] に指定し、プロジェクトを作成します。[Next] をクリックします。

5. [Add Sources] ページで次のように設定します。a. [Target Language] を [VHDL] に設定します。b. [Add Files] をクリックします。c. [Add Source Files] ダイアログ ボックスで /src/lab3 ディレクトリを参照します。d. すべての VHD ソース ファイルを選択し、[OK] をクリックします。e. ファイルが追加され、[Copy Sources into Project] が選択されていることを確認します。

6. [+] 記号をクリックしてから [Add Directories] をクリックします。7. [Add Source Directories] ダイアログ ボックスで /src/lab3 ディレクトリを参照し、[sine_high]、[sine_low]、

[sine_mid]、および [ ila_0] ファイルを選択します。[Select] をクリックします。8. ディレクトリが追加され、[Copy sources into project] が選択されていることを確認します。[Next] をクリックします。

9. [Add Constraints] ダイアログ ボックスで [+] 記号をクリックしてから、[Add Files] をクリックします。10. /src/lab3 ディレクトリを参照して [sinegen_demo_kc705.xdc] を選択します。[Next] をクリックします。11. [Default Part] ページで、[xc7k325tffg900-2] プラットフォームを指定します。[Boards] をクリックしてから

[Kintex-7 KC705 Evaluation Platform] を選択することもできます。[Next] をクリックします。12. [New Project Summary] ページを確認します。上記の手順で設定したとおりにデータが表示されていることを確認します。[Finish] をクリックします。注記: プロジェクトの初期化に少し時間がかかる場合があります。

13. Vivado IDE の [Sources] ウィンドウで、sinegen_demo_inst_vio を展開して、この演習用のソース ファイルを表示させます。ila_0 コアがプロジェクトに追加されている点に注目してください。ただし、vio_0 (VIO コア)が抜けています。

第 4 章: 演習 3: Vivado Design Suite でデザインをデバッグするための VIO コアの使用

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 24

Page 25: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

14. この VIO コアを次のようにインスタンシエートしてコンフィギュレーションします。Flow Navigator で [IPCatalog] をクリックして [Debug & Verification] を展開し、次に [Debug] を展開してから VIO をダブルクリックします。[Customize IP] ダイアログ ボックスが開きます。

15. [General Options] タブで [Component Name] をデフォルトの「vio_0」にしたまま、[Input Probe Count] を [1]に、[Output Probe Count] を [1] に設定し、[Enable Input Probe Activity Detectors] チェック ボックスをオンにします。

16. [PROBE_IN Ports] タブで [Probe Width] を [4] に設定します。

第 4 章: 演習 3: Vivado Design Suite でデザインをデバッグするための VIO コアの使用

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 25

Page 26: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

17. [PROBE_OUT Ports] タブで [Probe Width] を [2] に、[Initial Value] を [0x0] に設定します。

18. [OK] をクリックして IP を生成します。[Generate Output Products] ダイアログ ボックスが表示されます。[Generate] をクリックします。アウト オブ コンテキスト モジュールの実行を開始することを示すダイアログ ボックスが表示されたら、[OK] をクリックします。

第 4 章: 演習 3: Vivado Design Suite でデザインをデバッグするための VIO コアの使用

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 26

Page 27: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

出力ファイルの生成には 1 分弱かかるはずです。これで VIO のカスタマイズが完了しました。このコアは既に最上位デザインにインスタンシエートされています。

この時点で、[Sources] ウィンドウは次のようになっているはずです。

第 4 章: 演習 3: Vivado Design Suite でデザインをデバッグするための VIO コアの使用

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 27

Page 28: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

19. [Sources] ウィンドウで [sinegen_demo_inst.vhd] ファイルをダブルクリックして開き、HDL コードで ILA コアのインスタンシエーションおよびポート マップを確認します。

手順 2: デザインの合成、インプリメント、およびビットストリームの生成

1. Flow Navigator の [Program and Debug] ドロップダウン リストから [Generate Bitstream] をクリックします。これでデザインの合成、インプリメント、ビットストリーム生成が実行されます。

2. [Missing Implementation Results Available] ダイアログ ボックスが開きます。[OK] をクリックします。3. ビットストリームの生成が完了すると、[Bitstream Generation Completed] ダイアログ ボックスが開きます。デフォルトで [Open Implemented Design] がオンになっています。[OK] をクリックします。

4. タイミング サマリ レポートを開いて、すべてのタイミング制約が満たされていることを確認します。

第 4 章: 演習 3: Vivado Design Suite でデザインをデバッグするための VIO コアの使用

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 28

Page 29: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

5. 第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ に進んで、デザインのデバッグを終了させてください。それから、演習 5 の手順 2 の VIO コア アクティビティの検証 (演習 3 のみを対象) に進んで、この演習の残りを終了させてください。

第 4 章: 演習 3: Vivado Design Suite でデザインをデバッグするための VIO コアの使用

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 29

Page 30: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

第 5 章

演習 4: Synplify Pro 合成ツールおよびVivado Design Suite を使用したデザインのデバッグ

この簡単なチュートリアルでは、次のことを実行する方法を学びます。• 波形ジェネレーター デザイン用の Synplify Pro プロジェクトを作成。• Synplify Pro 制約ファイルおよび VHDL ソース ファイルでデバッグ用にネットを指定。• EDIF ネットリスト作成のため Synplify Pro プロジェクトを合成。• Synplify Pro ネットリストをベースにした Vivado® プロジェクトの作成。• Synplify Pro を使用して合成したデザインをデバッグするため、Vivado® IDE を使用して設定。

手順 1: Synplify Pro プロジェクトの作成1. Synplify Pro を起動し、[File] → [New] をクリックします。2. 次の図のように、[File Type] を [Project File (Project)] に設定します。3. [New File Name] に「[synplify_1]」と入力します。4. [OK] をクリックします。

第 5 章: 演習 4: Synplify Pro 合成ツールおよび Vivado Design Suite を使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 30

Page 31: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

5. 新しくディレクトリを作成するよう促すダイアログ ボックスが表示された場合は、[OK] をクリックします。

6. 次の図のように、Synplify Pro のウィンドウの左側で [Add File] をクリックします。

7. [Add Files to Project] ダイアログ ボックスで [Files of Type] を [HDL Files] に変更します。C:\Vivado_Debug\src\lab4 を参照します。ここに、この演習に必要な VHDL ソース ファイルがすべて表示されています。Ctrlキーを押しながら次の 3 つのファイルを選択します。

第 5 章: 演習 4: Synplify Pro 合成ツールおよび Vivado Design Suite を使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 31

Page 32: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

• debounce.vhd

• fsm.vhd

• sinegen_demo.vhd

8. [Add] をクリックします。

9. 同じダイアログ ボックスで [Files of Type] を [Constraints Files] に変更します。これで synplify_1.sdc ファイルが表示されます。次の図のように、ファイルを選択して [Add] をクリックします。

第 5 章: 演習 4: Synplify Pro 合成ツールおよび Vivado Design Suite を使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 32

Page 33: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

10. 同じダイアログ ボックスで [Files of Type] を [FPGA Constraint Files] に変更します。これで synplify_1.fdc ファイルが表示されます。次の図のように、ファイルを選択して [Add] をクリックします。[OK] をクリックします。

第 5 章: 演習 4: Synplify Pro 合成ツールおよび Vivado Design Suite を使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 33

Page 34: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

11. 次に、インプリメンテーションのオプションを設定する必要があります。12. 次の図のように、Synplify Pro のウィンドウで [Implementation Options] をクリックします。

13. 次の図のように [Implementation Options] ダイアログ ボックスが開きます。[Device] タブで [Technology] を[Xilinx Kintex7] に、[Part] を [XC7K325T] に、[Package] を [FFG900]、[Speed] を [-2] を設定します。その他のオプションはすべてデフォルトのままにしておきます。[OK] をクリックします。

第 5 章: 演習 4: Synplify Pro 合成ツールおよび Vivado Design Suite を使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 34

Page 35: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

14. HDL ファイルに属性を設定して、デバッグする必要のあるネット名を保持する必要があります。これらの属性は既に、このチュートリアルの sinegen_demo.vhd ファイルに設定されています。sinegen_demo.vhd ファイルを開き、次の行を確認します。

15. singen_demo.vhd ファイルからのコードの抜粋に示すように、デバッグ用に信号を指定するため、ソースのHDL ファイルで MARK_DEBUG 属性を指定することもできます。

16. synplify_1.sdc ファイルには、ピン位置、I/O 規格、クロック定義など、さまざまな種類の制約が含まれています。synplify_1.fdc ファイルには、コンパイラの指示子が含まれています。デバッグ用に指定されたネットの位置がこちらです。次の図に、デバッグ用に選択された属性およびネットが示されています。

第 5 章: 演習 4: Synplify Pro 合成ツールおよび Vivado Design Suite を使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 35

Page 36: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

上記の制約では、syn_black_box 属性を使用して sinegen がブラック ボックスとして定義されています。また、このブロックの I/O が最適化により削除されないように、syn_no_prune 属性が使用されています。最後に、Vivado® IDE でさらにデバッグするため、sine[20:0] および sel[1:0] の 2 つのネットが合成済みのデザインに表示されるように、この 2 つのネットに MARK_DEBUG 属性が割り当てられています。これらの属性についての詳細は、Synplify Pro のユーザー マニュアルおよび Synplify Pro のリファレンス マニュアルを参照してください。

手順 2: Synplify プロジェクトの合成1. プロジェクトをインプリメントする前に、出力ネットリスト ファイルの名前を設定する必要があります。デフォルトの出力ネットリスト ファイル名は synplify_1.edf です。この名前を変更するには、Tcl コマンド プロンプトに次のコマンドを入力します。%project -result_file "./rev_1/sinegen_demo.edf"

このファイルを Vivado® IDE で使用します。2. 設定をすべて確認したら、Synplify Pro のウィンドウの左側にある [Run] をクリックして、デザインの合成を開始します。

3. 合成中 [Tcl Script] タブにステータス メッセージが表示されます。警告メッセージが表示されるはずですが、エラー メッセージはないはずです。詳細メッセージを確認するには、Synplify Pro コンソールの左下にある[Messages] タブをクリックします。

4. 合成が完了すると、出力ネットリスト ファイルが rev_1/sinegen_demo.edf に書き込まれます。[オプション] ネットリストを表示させるには、[View] → [View Result File] をクリックします。

5. [File] → [Save All] をクリックしてプロジェクトを保存してから、[File] → [Exit] をクリックします。

第 5 章: 演習 4: Synplify Pro 合成ツールおよび Vivado Design Suite を使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 36

Page 37: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

手順 3: Synplify Pro で作成したブラック ボックス用のDCP の作成

Synplify Pro プロジェクトで作成されたブラック ボックス「sinegen」には、Direct Digital Synthesizer IP が含まれています。このブロック用に合成済みデザインを作成する必要があります。このためには、次の手順に沿って Vivado®

IDE で RTL タイプのプロジェクトを作成します。1. Vivado IDE を起動します。2. [Create Project] をクリックします。New Project ウィザードが開きます。[Next] をクリックします。3. [Project Name] を「proj_synplify_netlist」に設定します。[Next] をクリックします。4. [Project Type] を [RTL Project] に設定します。[Next] をクリックします。5. [Add Sources] で [Add Files] をクリックし、Vivado_Debug/src/lab4 フォルダーを参照して sinegen.vhdを選択します。[Target Language] を [VHDL] に設定します。[Copy sources into project] チェック ボックスがオンになっていることを確認します。[Next] をクリックします。

6. もう一度 [Add Files] をクリックし、Vivado_Debug/src/lab4 フォルダーを参照して sine_high.xci、sine_low.xci、および sine_mid.xci ファイルを選択します。[Next] をクリックします。

7. [Default Parts] で [Boards] をクリックし、[Kintex-7 KC705 Evaluation Platform] およびハードウェアの正しいバージョンを選択します。[Next] をクリックします。

8. [New Project Summary] ですべての設定が正しいことを確認します。[Finish] をクリックします。9. プロジェクトを作成したら、Vivado Flow Navigator で [Project Manager] の下にある [Settings] をクリックします。ダイアログ ボックスの左側にある [Synthesis] をクリックします。ダイアログ ボックス右側にあるプルダウン メニューで set -flatten_hierarchy を none に設定します。[OK] をクリックします。

10. Vivado IDE の Flow Navigator で [Synthesis] → [Run Synthesis] をクリックします。11. 合成が完了すると、[Synthesis Completed] ダイアログ ボックスが開きます。[Open Synthesized Design] をオンに

して、[OK] をクリックします。12. Vivado IDE で [File] → [Exit] をクリックします。ダイアログ ボックスが表示されるので、[OK] をクリックしてそ

のダイアログ ボックスを終了します。

手順 4: Vivado での合成後のプロジェクトの作成1. Vivado® IDE を起動します。2. [Create Project] をクリックします。New Project ウィザードが開きます。[Next] をクリックします。3. [Project Name] を proj_synplify に設定します。[Next] をクリックします。4. [Project Type] で [Post-synthesis Project] をクリックします。[Next] をクリックします。5. [Add Netlist Sources] で [Add Files] をクリックし、Vivado_Debug/synopsys/rev_1 フォルダーを参照して

sinegen_demo.edf を選択します。[OK] をクリックします。6. 前のセクションで作成したネットリスト ファイルを追加します。もう一度 [Add Files] をクリックし、

proj_synplify_netlist/proj_synplify_netlist.runs/synth1 フォルダーを参照してsinegen.dcp を選択します。

第 5 章: 演習 4: Synplify Pro 合成ツールおよび Vivado Design Suite を使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 37

Page 38: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

前のセクションでサブモジュール IP 用に作成した DCP ファイルを追加します。もう一度 [Add Directories] をクリックし、proj_synplify_netlist/proj_synplify_netlist.srcs/sources_1/ip フォルダーを参照して次を選択します。• sine_high

• sine_mid

• sine_low

[Add Source Files] ダイアログ ボックスで [OK] をクリックします。[Add Netlist Sources] ダイアログ ボックスで、[Copy constraints files into project] がオンになっていることをクリックします。[Next] をクリックします。

7. もう一度 [Add Files] をクリックし、Vivado_Debug/src フォルダーを参照して sinegen_demo_kc705.xdcファイルを選択します。このファイルにはこの Vivado プロジェクトに必要な制約が含まれています。[AddConstraints Files] ダイアログ ボックスで [OK] をクリックします。[Add Constraints (optional)] ダイアログ ボックスで、[Copy constraints files into project] がオンになっていることをクリックします。[Next] をクリックします。

8. [Default Part] で [Boards] をクリックして [Kintex-7 KC705 Evaluation Platform] および使用しているハードウェアのバージョン番号を選択します。[Next] をクリックします。

9. [New Project Summary] ですべての設定が正しいことを確認し、[Finish] をクリックします。10. [Sources] ウィンドウで sinegen_demo.edf が最上位モジュールとして選択されていることを確認します。

手順 5: プロジェクトへのデバッグ ネットの追加1. Vivado® IDE の Flow Navigator で、[Netlist Analysis] フォルダーから [Open Synthesized Design] をクリックしま

す。2. [Netlist] ウィンドウの [Nelist] タブを選択し、ネットを展開表示します。デバッグ用に次のネットを選択します。

• GPIO_BUTTONS_c(2)

• sine (20)

指定ネットをすべて選択したら、次の図のようにネットを右クリックして [Mark Debug] をクリックします。

第 5 章: 演習 4: Synplify Pro 合成ツールおよび Vivado Design Suite を使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 38

Page 39: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

3. 次の図のように、デバッグ用に指定したネットがすべて表示されるはずです。

第 5 章: 演習 4: Synplify Pro 合成ツールおよび Vivado Design Suite を使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 39

Page 40: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

Set Up Debug ウィザードの実行1. [Debug] ウィンドウで [Set up Debug] アイコンをクリックするか、または [Tools] メニューから [Set up Debug] をクリックします。Set Up Debug ウィザードが開きます。

2. Vivado® ロジック解析デバッグ コアを作成するため、デフォルト設定のままウィザードをクリックしていきます。注記: [Specify Nets to Debug] ダイアログ ボックスで、デバッグ用に指定されているネットのすべてのクロックドメインが同じであることを確認します。

第 5 章: 演習 4: Synplify Pro 合成ツールおよび Vivado Design Suite を使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 40

Page 41: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

手順 6: デザインのインプリメントおよびビットストリームの生成

1. Flow Navigator の [Program and Debug] ドロップダウン リストから [Generate Bitstream] を選択します。2. [Save Project] ダイアログ ボックスで [Save] をクリックします。3. ビットストリームの生成が完了すると、[Bitstream Generation Completed] ダイアログ ボックスが表示され、デ

フォルトで [Open Implemented Design] がオンになっています。[OK] をクリックします。4. インプリメント済みデザインを開く前に合成済みデザインを閉じるように促すダイアログ ボックスが表示された場合は、[Yes] をクリックします。

5. 第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ に進んで、この演習の残りを終了させてください。

第 5 章: 演習 4: Synplify Pro 合成ツールおよび Vivado Design Suite を使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 41

Page 42: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

第 6 章

演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

デバッグの最終手順では、ILA (Integrated Logic Analyzer) を使用してハードウェアに接続してデザインをデバッグします。作業を続ける前に、KC705 ハードウェアがコンピューターに接続されていることを確認します。この手順では、次について学びます。• Vivado® ロジック解析を使用したデザインのデバッグ方法。• ターゲット ボード (KC705) と通信するため、現在サポートされている Tcl コマンドの使用方法。• プッシュボタン スイッチの意図していない動作を特定し、回路の問題を発見し、修正する方法。• デザイン データをトリガーして取り込むための便利なテクニック。

手順 1: Sine Wave Generator の操作の検証設定を終えたら、Sine Wave Generator が正しく機能していることを検証するため、Vivado ロジック アナライザーを使用します。検証すべき主な目標は次のとおりです。• 正弦波の選択がすべて正しい。• セレクト ロジックが正しく機能する。

ターゲット ボードおよびサーバーの設定• ターゲット ボードのリモート接続: ターゲット ボードをリモート接続する場合は、KC705 ボードがコンピューターに接続されていて、そこで hw_server アプリケーションが実行されているのを確認する必要があります。ターゲット ボードをローカル接続する場合は、手順 1 から 5 を飛ばして、「ターゲット ボードのローカル接続」に進んでください。1. KC705 ボードの Digilent USB JTAG ケーブルを Windows システムの USB ポートに接続します。2. ボードが接続されていて電源が入っていることを確認します。3. ボードの電源サイクルを一巡させて、デバイスをクリアにします。4. DIP スイッチを (SW11 のピン 1、デバウンス イネーブル) OFF にします。5. 5.KC705 ボードを 64 ビットの Windows コンピューターに接続し、ローカル ドライブではなくて、ネットワークから hw_server を実行していることを確認してから、cmd プロンプトを開き、次を入力します。<Xilinx_Install>\Vivado\2019.x\bin\hw_server

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 42

Page 43: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

hw_server 実行中は cmd プロンプトを開いたままにしておきます。使用しているコンピューター名をメモに取ります。後で、hw_server アプリケーションのこのインスタンスへの接続を開くときにこの名前を使用します。

• ターゲット ボードのローカル接続: ターゲット ボードをローカル接続する場合は、KC705 ボードが Windows コンピューターに接続されていることを確認し、次の手順を実行します。1. KC705 ボードの Digilent USB JTAG ケーブルを Windows システムの USB ポートに接続します。2. ボードが接続されていて電源が入っていることを確認します。3. ボードの電源サイクルを一巡させて、デバイスをクリアにします。4. DIP スイッチを (SW13 のピン 1、デバウンス イネーブル) OFF にします。

Vivado ILA (Integrated Logic Analyzer) の使用1. Flow Navigator で [Program and Debug] → [Open Hardware Manager] をクリックします。

2. ハードウェア マネージャーのウィンドウが開きます。[Open Target] → [Open New Target] をクリックします。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 43

Page 44: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

3. Open New Hardware Target ウィザードが開きます。[Next] をクリックします。4. [Hardware Server Setting] ページの [Connect to] フィールドにサーバーの名前を入力します (またはターゲット

がローカル コンピューターの場合は [Local server] を選択します)。[Next] をクリックします。

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

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 44

Page 45: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

6. 次の図のように [Open Hardware Target Summary] ページで [Finish] をクリックします。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 45

Page 46: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

7. ハードウェアが完了するまで待ちます。ハードウェアが接続している間に、次の図のようなダイアログ ボックスが表示されます。

ハードウェアとの接続が完了したら、次の図のように [Hardware] ウィンドウが開きます。注記: [Debug] ビューの [Hardware] タブでは、ハードウェア ターゲットおよび XC7K325T デバイスが JTAG チェーンで検出されていることが確認できます。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 46

Page 47: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

8. 次に、次の図のように、XC7K325T デバイスを右クリックして [Program Device] を選択し、前に作成しておいたビットストリーム (拡張子は .bit) を使用して XC7K325T デバイスをプログラムします。

9. 次の図のように、[Program Device] ダイアログ ボックスで、この演習で使用している .bit および .ltx ファイルが正しいことを確認し、[Program] をクリックしてデバイスをプログラムします。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 47

Page 48: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

注意: プログラムするビットストリームおよびデバッグ プローブのファイル パスは演習ごとに異なります。相対パスが正しいことを確認します。注記: デバイスのプログラムが完了するまで待ちます。完了まで数分がかかる場合があります。

10. [Debug] ビューの [Hardware] タブで ILA が検出されていることを確認します。

11. 次の図のように、ILA のダッシュボードが開きます。

正弦波アクティビティの検証1. ハードウェア ウィンドウで、[Run Trigger Immediate] をクリックして、次の図のようにデータをすぐにトリガー

し、取り込みます。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 48

Page 49: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

2. 次のずのように、波形ウィンドウで 20 ビットの sine 信号にアクティビティがあることを検証します。

正弦波の表示1. 次の図のように、[U_SINEGEN/sine[19:0]] 信号を右クリックし、[Waveform Style] → [Analog] をクリックします。

注意: 波形は正弦波のようには見えません。これは、次に説明するように、基数の設定を [Hex] から [Signed Decimal]に変更する必要があるからです。

2. [U_SINEGEN/sine[19:0] ]信号を右クリックし、[Radix] → [Signed Decimal] をクリックします。これで四角い波ではなく、次の図のように高周波数の正弦波が表示されるはずです。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 49

Page 50: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

正弦波の表示の修正中周波数および低周波数の出力正弦波を表示させるには、次の操作を実行します。1. 次の図のように、GPIO_SW_E プッシュボタンを押して、正弦波シーケンサー回路の電源を一巡させます。

2. [Run Trigger Immediately] をもう一度クリックし、新しく選択された正弦波を確認します。次の図のように中周波数が確認できるはずです。予期どおりに sel 信号が 0 から 1 に変更になっていることにも注目してください。

3. 手順 1 および 2 を繰り返し、ほかの正弦波出力も表示させます。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 50

Page 51: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

注記: 正弦波が遷移していく様子を確認していると、LED が予期される順序で点灯しないことに気づくかもしれません。この点については、このチュートリアルの次のセクションでデバッグします。ここでは、各 LED に対し、正しい正弦波が表示されていることを確認します。波形ウィンドウの信号の配置が前出の 3 つの図で変更になっている点にも注目してください。

手順 2: 正弦波シーケンサー ステート マシンのデバッグ(オプション)

正弦波の表示を修正したので、正弦波シーケンサー ボタンを押しても、LED が順番に点灯しない可能性があります。ボタンを押すたびに、GPIO_BUTTONS_re[1] 信号に 1 サイクルのパルスが 1 回あるはずです。これが 2 回以上ある場合は、LED の動作が不規則になります。このチュートリアルのこのセクションでは、Vivado ロジック解析を使用して、正弦波シーケンサー ステート マシンをプローブし、この問題の根本的な原因を確認して修正します。実際のデバッグ プロセスを開始する前に、正弦波シーケンサー ステート マシンについてよく理解しておくことが重要です。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 51

Page 52: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

正弦波シーケンサー ステート マシンの概要正弦波シーケンサー ステート マシンは、4 つある正弦波の中から 1 つを選択し、デザインの最上位にある sine 信号にそれを駆動します。このステート マシンには入力が 1 つ、出力が 1 つあります。次の図は、このステート マシンの回路図です。この後に続く説明を読みながら、またステート マシン グリッチを表示させ、修正するための手順に沿いながら、この図を参照してください。• 入力は「button」という名前のスカラー信号です。button 入力が 1 のとき、ステート マシンはあるステートから次のステートに遷移します。

• 出力は「Y」という名前の 2 ビットの信号ベクターで、4 つある正弦波ジェネレーターのうちどれが選択されているかを示します。

入力信号 button は、正弦波シーケンサー ボタンの Low から High への遷移インジケーターである最上位信号GPIO_BUTTONS_re[1] に接続します。出力信号 Y は、正弦波を選択する最上位信号 sineSel に接続します。

図 3: 正弦波シーケンサー ボタンの回路図

ステート マシン グリッチの表示上記の問題を、GPIO_BUTTON [1] 入力信号そのものにデバッグ プローブを接続して、トラブルシュートすることはできません。GPIO_BUTTON [1] 入力信号は、FPGA ファブリックからは直接アクセスでき PAD 信号なのです。代わりに、GPIO_BUTTON [1] 入力信号の入力バッファーの出力に接続されている GPIO_BUTTON_IBUF 信号の Low からHigh への遷移 (立ち上がりエッジ) でトリガーする必要があります。前に説明したように、グリッチは、GPIO_BUTTONS_IBUF_1 信号に Low から High への遷移が複数あるときに現れますが、これは断続的に発生します。グリッチの検出にはボタンを数回押す必要があるため、Vivado のロジック解析ツールを繰り返しトリガー実行モードに設定します。このモードに設定しておくと、ボタンを繰り返し押す操作と、波形ビューアーでイベントを確認する作業が簡単になります。1. hw_ila_1 の [Settings] タブで、次のように設定します。

• [Trigger mode]: BASIC_ONLY

• [Capture mode]: BASIC

• [Window data depth]: 1024

• [Trigger position in window]: 512

• [Trigger Setup] ウィンドウで [+] 記号を押して、GPIO_BUTTONS_IBUF_1 プローブを追加します。次の図のように、[Value] で [RX] を選択して、値を変更します。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 52

Page 53: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

注意: ほかの演習では、GPIO_BUTTONS_IBUF が違ったように表示されていたり、button_in4_in のように別の名前が付いている可能性があります。2 つの個々のビットとして表示される場合もありますし、1 つのバスに 2 ビットが一緒になっている場合もあります。このバスのビット 1 を使用して、トリガー コンディションを設定するようにしてください。2 ビット バスの場合は、[Compare Value] のダイアログ ボックスの [Value] フィールドを [RX] に設定します。

2. 次の図のように ILA デバッグ コアに [Enable Auto Re-Trigger] を選択します。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 53

Page 54: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

注意: 別の演習では、ILA のプロパティ ウィンドウが少し異なっている可能性があります。Auto Retrigger モードに設定した後、[Run Trigger] または [Run Trigger Immediate] コマンドを実行すると、AutoRetrigger モードをディスエーブルにするまで、ILA コアで次の操作が繰り返し実行されます。• トリガーの準備。• トリガーの待機。• 波形のアップロードおよび表示。

3. KC705 ボード上で、GPIO_BUTTONS_IBUF_1 信号に複数の遷移が見られるまで、[Sine Wave Sequencer] ボタンを押します (10 回以上押す必要がある場合があります)。これは、入力で起きるグリッチの可視化です。グリッチの例は次の 2 つの図に示されています。

注意: グリッチを表示するには、前の 2 つの手順を何度か繰り返す必要がある場合があります。グリッチを表示できたら、信号グリッチが次の図とまったく同じ場所にないことを確認できます。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 54

Page 55: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

信号グリッチの修正および正しいステート マシン動作の検証ボタンを押すときに、そのボタンが電気接触をしたり、その接触を切ったりするため、複数の遷移グリッチまたは「バウンス」が発生します。この信号バウンスをなくすには、「デバウンス」回路が必要です。1. KC705 ボードで DIP スイッチの位置を ON または UP に設定し、デバウンス回路をイネーブルにします (図 1 に「De-bounce Enable」と書いてある箇所)。

2. ILA デバッグ コアでオートリトリガー モードをイネーブルにし、ILA コアで [Run Trigger] をクリックします。• 正弦波シーケンサー ボタンを 1 回押しても、GPIO_BUTTON_re[1] 信号で複数の遷移が見られなくなっていることを確認します。

• ボタンを押すたびに、sineSel 信号が 00 から 01、10、11 へと遷移し、00 に戻るのを確認して、ステート マシンが正しく動作していることを検証します。

VIO コア アクティビティの検証 (演習 3 のみを対象)1. Flow Navigator の [Program and Debug] から [Open Hardware Manager] をクリックします。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 55

Page 56: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

ハードウェア マネージャーのウィンドウが開きます。2. [Open a new hardware target] をクリックします。

3. Open New Hardware Target ウィザードが開きます。[Next] をクリックします。4. [Hardware Server Setting] ページの [Connect to] フィールドにサーバーの名前を入力します (またはターゲット

がローカル コンピューターの場合は [Local server] を選択します)。5. [Hardware Targets] ページでターゲットを選択し、正しいターゲットに接続されていることを確認します。ター

ゲットが 1 つだけの場合は、それがデフォルトで選択されます。[Next] をクリックします。6. [Set Hardware Target Properties] ページで [Next] をクリックします。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 56

Page 57: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

7. [Open Hardware Target Summary] ページで、すべての情報が正しいことを確認し、[Finish] をクリックします。8. [Sources] ウィンドウでデバイスを右クリックし、[Program Device] を選択して、デバイスをプログラムします。

9. [Program Device] ダイアログ ボックスで、プログラムするビット ファイルが正しいことを確認します。[OK] をクリックします。

10. FPGA デバイスをプログラムしたら、VIO および ILA コアが [Hardware] ウィンドウに表示されます。

次の図のように、ILA コアのデバッグ ダッシュボードが表示されます。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 57

Page 58: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

11. [Run Trigger Immediate] をクリックしてデータをすぐに取り込みます。

12. sine [19:0] 信号にアクティビティがあることを確認します。13. 波形ウィンドウで sine 信号を右クリックして、[Waveform Style] → [Analog] をクリックします。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 58

Page 59: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

14. 波形ウィンドウで sine 信号をもう一度右クリックして、[Radix] → [Signed Decimal] をクリックします。波形ウィンドウに正弦波が表示されているはずです。

15. 各正弦波出力周波数をサイクルさせるのに GPIO_SW プッシュボタンを使用するのではなく、VIO コアからの仮想トグル スイッチ push_button_vio を使用します。

16. これで、ILA ダッシュボードのオプションをカスタマイズして、VIO ウィンドウを含めることができるようになりました。このウィンドウを含めると、VIO 出力ドライバーをトグルさせ、すべての ILA 波形ウィンドウの様子を 1 つのダッシュボードで確認できるようになります。[Dashboard Options] をスライドさせます。

17. [hw_vio_1] を選択して、ILA ダッシュボードに VIO ウィンドウを追加します。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 59

Page 60: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

注記: これで、ILA ダッシュボードに VIO ウィンドウも含まれるようになりました。18. 次の図のように、[Trigger Setup – hw_ila_1] ウィンドウおよび [hw_vio_1] ウィンドウが横並びになるよう、ウィンドウを調整します。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 60

Page 61: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

19. [hw_vio_1] ウィンドウで、[+] 記号をクリックし、[hw_vio_1] の下にあるすべてのプローブを選択します。20. [OK] をクリックします。注記: すべてのプローブの初期値です。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 61

Page 63: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

22. [push_button_reset] を右クリックし、[Toggle Button] を選択して、push_button_reset 出力プローブを設定します。これで、クリックするたびに、出力ドライバーがロジック 0 から 1 へ、そして 0 へとトグルします。プッシュボタンの動作と似ていますが、プッシュボタンのように押すことにより機械的にバウンスすることがありません。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 63

Page 64: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

push_button_reset の [Value] フィールドがハイライトされています。23. [Value] フィールドをクリックし、値を 1 に変更します。

24. 上記の手順に従って、push_button_vio もトグル ボタンに変更します。25. [PROBE_IN0[0]] および [PROBE_IN0[1]] を右クリックし [LED] を選択して、sineSel 入力プローブのこれらの 2 ビットを設定します。

26. [Select LED Colors] ダイアログ ボックスで、LED の [Low Value Color] および [High Value Color] を設定し、[OK]をクリックします。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 64

Page 65: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

27. 設定を完了すると、ハードウェア マネージャーの [VIO Probes] ウィンドウは次の図のようになります。

28. VIO コアからの仮想の push_button_vio を使用して、それぞれ異なる正弦波出力周波数をサイクルするには、次の簡単な手順に従います。a. [Value] 列の下に表示されているロジックをクリックして、push_button_vio 出力ドライバーの値を 0 から 1へ、そして 0 へとトグルします。sineSel の LED が、それに合わせて -0、1、2、3、0... と変化することに注目してください。

b. 前の手順で選択した正弦波信号が hw_ila_1 で取り込まれ、表示されるよう、[Run Trigger] をクリックします。

第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 65

Page 67: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

第 7 章

演習 6: ECO フローを使用したインプリメンテーション後のデバッグ プローブの置換

この簡単なチュートリアルでは、Vivado® Design Suite の ECO (Engineering Change Order: 設計変更指示) フローを使用し、配置配線済みデザインの ILA コアに接続されているネットを置換する方法を説明します。注記: ECO フローについては、『Vivado Design Suite ユーザー ガイド: プログラムおよびデバッグ』 (UG908) のインプリメンテーション後のデザインのデバッグを参照してください。1. Vivado® Design Suite を開き、[File] → [Open Checkpoint] をクリックします。

2. 第 3 章: 演習 2: HDL インスタンシエーションを使用したデザインのデバッグ で作成した配線済みチェックポイントを開きます。

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 67

Page 68: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

Vivado Design Suite のツールバーのドロップダウン リストでレイアウトを [ECO] に変更します。

第 7 章: 演習 6: ECO フローを使用したインプリメンテーション後のデバッグ プローブの置換

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 68

Page 69: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

注記: Flow Navigator が ECO Navigator に変更され、異なるオプションが表示されます。

3. ECO Navigator で [Replace Debug Probes] をクリックして [Replace Debug Probes] ダイアログ ボックスを開きます。デザインには、Debug Hub および ILA コアが含まれています。

第 7 章: 演習 6: ECO フローを使用したインプリメンテーション後のデバッグ プローブの置換

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 69

Page 70: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

重要: ILA および Debug Hub コアに関連付けられているクロック ネットは、できる限り置き換えないようにしてください。

4. [Replace Debug Probes] ダイアログ ボックスで、変更する必要のあるネットのプローブをハイライトします。この演習では、プローブされている GPIO_BUTTONS_dly[0] ネットを置き換えます。

5. GPIO_BUTTONS_dly[0] プローブの右側にある [Edit Probes] ボタンをクリックし、[Choose Nets] ダイアログ ボックスを開きます。

第 7 章: 演習 6: ECO フローを使用したインプリメンテーション後のデバッグ プローブの置換

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 70

Page 71: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

6. [Choose Nets] ダイアログ ボックスで、U_DEBOUNCE_0/clear ネットを選択して、既存の GPIO_BUTTONS_dly[0]プローブ ネットを置き換えます。[OK] をクリックします。

第 7 章: 演習 6: ECO フローを使用したインプリメンテーション後のデバッグ プローブの置換

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 71

Page 72: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

7. [Name] フィールドで「*clear net」と入力し、[Find] をクリックします。[Found] に [U_DEBOUNCE_0] ネットが表示されています。[->] を使用して [U_DEBOUNCE_0/clear net] を選択し、[OK] をクリックします。U_DEBOUNCE_0/clear ネットは、既存の GPIO_BUTTONS_dly[0] プローブ ネットと置き換えられます。

第 7 章: 演習 6: ECO フローを使用したインプリメンテーション後のデバッグ プローブの置換

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 72

Page 74: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

8. [Replace Debug Probes] ダイアログ ボックスで [OK] をクリックします。ネットが DONT_TOUCH とマークされている場合は、それを削除しないと先に進めないことを示すダイアログ ボックスが表示されます。この場合、[Unset Property and Continue] をクリックします。

第 7 章: 演習 6: ECO フローを使用したインプリメンテーション後のデバッグ プローブの置換

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 74

Page 75: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

重要: [Tcl Console] ウィンドウに警告またはエラーが表示されていないことを確認します。

第 7 章: 演習 6: ECO フローを使用したインプリメンテーション後のデバッグ プローブの置換

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 75

Page 76: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

9. 変更を新しいチェックポイントに保存します。ECO Navigator で [Save Checkpoint As] オプションを使用して、[Save Checkpoint As] ダイアログ ボックスを開きます。DCP ファイルの名前を指定し、[OK] をクリックします。

10. ECO Navigator で [Write Debug Probes] をクリックします。[Write Debug Probes] ダイアログ ボックスが開いたら、[OK] をクリックして、デバッグ プローブ用に新しい LTX ファイルを生成します。

第 7 章: 演習 6: ECO フローを使用したインプリメンテーション後のデバッグ プローブの置換

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 76

Page 77: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

11. ECO Navigator で [Generate Bitstream] をクリックします。[Generate Bitstream] ダイアログ ボックスが表示されたら、[Bit File] フィールドでビット ファイル名をproject_sinegen_demo_routed_debug_changes.bit に変更し、[OK] をクリックして、デバッグ プローブの変更を反映させた新しい .bit ファイルを生成します。

12. ECO Navigator で [Open Hardware Manager] を選択し、Vivado ハードウェア マネージャーに接続します。13. 第 6 章: 演習 5: Vivado ロジック解析を使用したハードウェアでのデバッグ の「ターゲット ボードおよびサーバーの設定」に記されている手順に従い、ローカル ハードウェア サーバーに接続します。前の手順で作成した .bit ファイルおよび .ltx ファイルを使用してデバイスをプログラムします。

14. Vivado Design Suite のツールバーから [Window] → [Debug Probes] をクリックします。手順 8 および 9 で置き換えたプローブが hw_ila_1 に関連付けられているプローブに反映されていることを確認します。

第 7 章: 演習 6: ECO フローを使用したインプリメンテーション後のデバッグ プローブの置換

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 77

Page 78: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

15. ILA でトリガーを実行します。手順 8 および 9 で置き換えたプローブが波形ウィンドウにも反映されていることを確認します。

第 7 章: 演習 6: ECO フローを使用したインプリメンテーション後のデバッグ プローブの置換

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 78

Page 79: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

第 8 章

演習 7: インクリメンタル コンパイル フローを使用したデザインのデバッグ

この演習では、デザインの先のインプリメンテーションにデバッグ コアを追加、編集、削除するための Vivado® インクリメンタル コンパイル フローについて説明します。

手順この演習には、概要の説明の後に、5 つの大まかな手順と補足的な詳細手順が続きます。スキル レベルに合った手順を参照しながら、演習を進めてください。大まかな手順だけでは情報が不十分な場合は詳細な手順を参照したり、既に知っている内容であれば、詳細手順を飛ばして次に進んだりできます。この演習には次の 5 つの手順があります。1. 手順 1: サンプル デザインへのデバッグ コアの追加2. 手順 2: リファレンス デザインのコンパイル3. 手順 3: 新規 run の作成4. 手順 4: インクリメンタル デバッグの変更5. 手順 5: インクリメンタル コンパイルの実行

手順 1: サンプル デザインへのデバッグ コアの追加1. Vivado IDE を起動します。次のいずれかの方法で Vivado IDE を起動します。• Windows デスクトップの Vivado IDE のアイコンをダブルクリックします。• コマンド ターミナルで「vivado」と入力します。Getting Started ページで [Open Example Project.] をクリックします。

2. [Open Example Project] ダイアログ ボックスで [Next] をクリックします。3. CPU (合成済み) デザイン テンプレートを選択し、[Next] をクリックします。4. [Project Name] ページで次のように設定します。

• [Project name]: project_cpu_incremental

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 79

Page 80: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

• [Project location]: <Project_Dir>

[Next] をクリックします。5. [Default Part] で [xc7k70tfbg676-2] を選択し、[Next] をクリックします。6. [New Project Summary] にプロジェクトの詳細が表示されます。内容を確認し、[Finish] をクリックします。7. デフォルト ビューで Vivado IDE が開いたら、合成済みデザインを開きます。8. [Netlist] ウィンドウで cpuEngine 階層で指定されている次の信号セットを選択し、右クリックして [Mark

Debug] を選択し、MARK_DEBUG プロパティを適用します。cpuEngine/dcqmem_dat_qmem[*],cpuEngine/dcpu_dat_qmem[*],cpuEngine/dcqmem_adr_qmem[*],cpuEngine/du_dsr[*],cpuEngine/dvr0__0[*],cpuEngine/du_dsr[*],cpuEngine/dcqmem_sel_qmem[*]

第 8 章: 演習 7: インクリメンタル コンパイル フローを使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 80

Page 81: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

または次の Tcl コマンドを使用して、指定の信号に MARK_DEBUG プロパティを設定します。set_property mark_debug true [get_nets [list {cpuEngine/dcqmem_dat_qmem[*]} {cpuEngine/dcpu_dat_qmem[*]} {cpuEngine/dcqmem_adr_qmem[*]} {cpuEngine/du_dsr[*]} {cpuEngine/dvr0__0[*]} {cpuEngine/du_dsr[*]} {cpuEngine/dcqmem_sel_qmem[*]}]]

9. Flow Navigator で [ Set Up Debug] をクリックし、Set Up Debug ウィザードを起動します。

10. Set Up Debug ウィザードが開いたら、[Next] をクリックします。

第 8 章: 演習 7: インクリメンタル コンパイル フローを使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 81

Page 82: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

11. [ILA Core Options] が表示されたら [Next] をもう一度クリックします。12. [Set Up Debug Summary] が表示されたら、デバッグ コアが 1 つ作成されているのを確認し、[Finish] をクリックします。

13. [Debug] ウィンドウで u_ila_0 コアがデザインに挿入されているのを確認します。

14. [File] → [Constraints] → [Save] をクリックするか、[Save Constraints] ボタンをクリックして新しいデバッグ XDCコマンドを保存します。

手順 2: リファレンス デザインのコンパイルリファレンス デザインにインプリメントを実行するには、次の手順に従います。1. Flow Navigator で、[Run Implementation] をクリックします。

第 8 章: 演習 7: インクリメンタル コンパイル フローを使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 82

Page 83: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

2. インプリメンテーションが完了すると、[Implementation Completed] ダイアログ ボックスが開きます。[Cancel]をクリックします。

3. プロジェクトベースのデザインでは、Vivado® Design Suite により、中間インプリメンテーション結果がデザイン チェックポイントとしてインプリメンテーション run ディレクトリに保存されます。インクリメンタル コンパイル フローのインプリメンテーションから保存されたデザイン チェックポイントの 1 つを使用します。

ヒント: インプリメンテーションを再実行する場合、前の結果は削除されます。中間インプリメンテーション結果を新しいディレクトリに保存します。または、インクリメンタル コンパイル用に基準となるインプリメンテーションrun ディレクトリを維持するよう、新しいインプリメンテーション run を作成します。

4. [Design Runs] ウィンドウで [impl_1] を右クリックし、[Open Run Directory] を選択します。次の図のように、ファイル ブラウザーに run ディレクトリが開きます。run ディレクトリには配線済みのチェックポイント(top_routed.dcp) が含まれています。これは、インプリメンテーション コンパイル フローの後段階で使用されます。インプリメンテーション run ディレクトリの場所は run のプロパティです。

5. [Tcl Console] で次のコマンドを入力して、現在の run ディレクトリの場所を取得します。get_property DIRECTORY [current_run]

これで、デザイン チェックポイントを含む現在の run ディレクトリ パスが返されます。この Tcl コマンド、DIRECTORY プロパティを使用して、インクリメンタル コンパイル フローに必要な DCP ファイルの位置を確認します。

手順 3: 新規 run の作成この手順では、現在の run の結果を保存するため、合成およびインプリメンテーション run を新しく定義します。その後、デザインにデバッグ関連の変更を加え、合成およびインプリメンテーションを再実行します。新しい run を作成しない場合は、Vivado により現在の結果が上書きされます。1. Vivado ツールバーから [Flow] → [Create Runs] をクリックして、Create New Runs ウィザードを起動します。2. Create New Runs ウィザードで [Next] をクリックします。3. 次の図のように [Configure Implementation Runs] が開きます。[Make Active] チェック ボックスをオンにして

[Next] をクリックします。

第 8 章: 演習 7: インクリメンタル コンパイル フローを使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 83

Page 84: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

4. [Launch Options] で [Do not launch now] をオンにし [Next] をクリックします。

5. [Create New Runs Summary] で [Finish] をクリックし、新しい run を作成します。[Design Runs] ウィンドウに新しい run が大文字で表示されます。

第 8 章: 演習 7: インクリメンタル コンパイル フローを使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 84

Page 85: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

手順 4: インクリメンタル デバッグの変更この手順では、デバッグコアを追加、削除、変更するために、合成済みネットリストを再度開く必要があります。SetUp Debug ウィザードを使用してデバッグ関連の変更をデザインに加えます。1. 合成済みネットリストを閉じている場合は、Flow Navigator で合成済みデザインに戻ります。2. このチュートリアルでは、既にデバッグ済みのネットに加え、さらにほかのネットをデバッグする必要があるも

のと想定します。ただし、前回の配置配線結果を再利用する必要があります。そこで今回は、ネットfftEngine/fifo_out[*] をデバッグします。

3. [Netlist] ウィンドウでこのバスに MARK_DEBUG プロパティを適用します。

4. [Set Up] Debug をクリックして、Flow Navigator で Set Up Debug ウィザードを起動します。5. [Existing Debug Netsl タブで [Continue debugging 110 nets connected to existing debug cores] を選択します。

第 8 章: 演習 7: インクリメンタル コンパイル フローを使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 85

Page 86: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

6. [Next] をクリックして、新しい、割り当てられていないデバッグ ネットをデバッグします。

7. [Next] をクリックして、[Nets to Debug] に新しいネットがリストされていることを確認します。

第 8 章: 演習 7: インクリメンタル コンパイル フローを使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 86

Page 87: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

8. [Next] をクリックして、2 つのデバッグ コアが作成されていることを確認し、[Finish] をクリックします。9. [Save Constraints] ボタンをクリックするか、Vivado ツールバーから [File] → [ Constraints] → [ Save] をクリックし

て、新しいデバッグ XDC コマンドを保存します。

手順 5: インクリメンタル コンパイルの実行前の手順で、デバッグの変更を加え、デザインをアップデートしました。デザインを配置配線し、タイミング要件を満たすために、新しいネットリストにインプリメンテーションを実行できる状態です。ところが、前回の実行と今回の実行とでは若干の変更しかありません。そこで、インクリメンタル コンパイル フローを利用すれば、前回のデバッグ、配置配線のエフォートの大半を再利用できます。デザインを何度か繰り返し実行してタイミングを満たすには時間がかかりますが、その時間を大きく短縮できるのです。詳細は、『Vivado Design Suite ユーザー ガイド: インプリメンテーション』 (UG904: 英語版、日本語版) を参照してください。1. まず、デザイン チェックポイント (DCP) を定義するところから始めます。これをインクリメンタル コンパイル

フローのリファレンス デザインとして使用します。このデザインから Vivado Design Suite に配置配線データが読み込まれます。

2. [Design Runs] ウィンドウで [ impl_2 run] を右クリックし、[Set Incremental Implementation] を選択します。[SetIncremental Implementation] ダイアログ ボックスが開きます。

3. [Automatically use the checkpoint from the previous run] をクリックします。4. [OK] をクリックします。この情報は、選択されている run の INCREMENTAL_CHECKPOINT プロパティに保存されます。このプロパティを設定すると、Vivado Design Suite でインプリメンテーション中にインクリメンタルコンパイル フローが実行されます。

第 8 章: 演習 7: インクリメンタル コンパイル フローを使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 87

Page 88: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

5. 次の Tcl コマンドを使用すると、現在の run でこのプロパティをチェックできます。get_property INCREMENTAL_CHECKPOINT [current_run]

これで、top_routed.dcp チェックポイントへのフル パスが返されます。ヒント: 現在の run のインクリメンタル コンパイルをディスエーブルにするには、INCREMENTAL_CHECKPOINT プロパティをクリアにします。[Set Incremental Compile] ダイアログ ボックスを使用するか、直接 [Properties] ウィンドウでプロパティを編集するか、reset_property コマンドを実行して、プロパティをクリアにします。

6. Flow Navigator で、[Run Implementation] をクリックします。これで、インクリメンタル コンパイル フローのリファレンス デザインとして top_routed.dcp ファイルを使用し、現在の run でインプリメンテーションが実行されます。run が完了すると、[Implementation Completed]ダイアログ ボックスが開きます。

7. [Open Implemented Design] を選択して [OK] をクリックします。次の図のように、[Design Runs] ウィンドウにはインプリメンテーション run の impl_2 と impl_1 の経過時間が示されています。

注記: これは非常に小さなデザインです。インクリメンタル コンパイル フローは、これよりも大型で、複雑なデザインで、さらに大きな効果を発揮します。

8. 次の図のように、[Results] ウィンドウで [Reports] タブを選択し、[Place Design] の下にある [Incremental ReuseReport] をダブルクリックします。

Vivado IDE のテキスト エディターでインクリメンタル再利用レポートが開きます。このレポートには、再利用されたセル、ポート、ネットの割合が示されています。このパーセンテージが高いほど、インクリメンタル チェックポイントから配置配線が効果的に再利用されていることになります。

第 8 章: 演習 7: インクリメンタル コンパイル フローを使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 88

Page 89: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

このレポートでは、フルに再利用されたネットは、リファレンス デザインからネットの配線全体が再利用されたことを示します。部分的に再利用されたネットは、リファレンス デザインからネットの配線が一部再利用されたことを示します。セル、セルの配置、またはその両方が変更されたため、一部のセグメントが再配線されています。再利用されていないネットは、現在のデザインのネットがリファレンス デザインと一致しなかったことを示します。

まとめこれでこの演習は終了です。現在のプロジェクトを閉じ、Vivado IDE を終了させます。この演習では、前回インプリメント済みのデザインのチェックポイントを使用し、インクリメンタル コンパイル デバッグ フローの実行方法を学びました。合成済みネットリストで Set Up Debug ウィザードを使用して、新しいデバッグ コアを挿入しました。インクリメンタル リユース レポートを開いて、リファレンス デザインのチェックポイントと現在のデザインの類似点を確認しました。

第 8 章: 演習 7: インクリメンタル コンパイル フローを使用したデザインのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 89

Page 90: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

第 9 章

演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

シリアル I/O 解析機能は、デザインに含まれる IBERT デバッグ IP コアにアクセスするため使用されます。これは、高速シリアル I/O リンクでの問題をデバッグし検証する目的で使用されます。シリアル I/O 解析には次の利点があります。• Vivado® IDE とのしっかりとした統合。• ネットリスト カスタマイズ/生成中、およびシリアル ハードウェア デバッグ中のスクリプト作成機能。• Vivado ILA (Integrated Logic Analyzer) との共通インターフェイス。7 シリーズ FPGA GTX トランシーバー用のカスタマイズ可能な LogiCORE™ IP Integrated Bit Error Ratio Tester(IBERT) コアは、GTX トランシーバーを評価および監視するために設計されています。このコアには、FPGA にインプリメントされるパターン ジェネレーターおよびパターン チェッカーが含まれています。またこのコアにより、ポート、および GTX トランシーバーのダイナミック リコンフィギュレーション ポート属性へのアクセスが提供されます。通信ロジックも含まれ、JTAG を介して時間割でデザインを実行できます。このチュートリアルでは、次のことを学びます。• Vivado ツールを使用して、Integrated Bit Error Ratio Tester (IBERT) コア デザインを作成、カスタマイズ、生成します。

• デザインでシリアル I/O 解析を使用します。ターゲットの KC705 ボードへ接続し、デバイスをコンフィギュレーションして、IBERT/Transceiver IP コアにアクセスします。

• IBERT スイープ プロット GUI 機能を使用したトランシーバー チャネルを最適化し、データをプロットするためのスイープ テストを実行します。

デザインの概要IBERT コアをカスタマイズし、それを使用して、さまざまな ザイリンクス デバイス用にトランシーバーを評価および監視できます。このチュートリアルで扱うのは Kintex®-7 GTX トランシーバーです。それに合わせ、このチュートリアルで使用するボードは KC705 ボードになります。次の図は、Kintex-7 トランシーバーを使用した IBERT Kintex-7 GTX コア インターフェイス間のブロック図です。• DRP インターフェイスおよび GTX ポート レジスタ: IBERT を使用し、GTX トランシーバーのポートおよび属性を柔軟に変更できます。ダイナミック リコンフィギュレーション ポート (DRP) ロジックが含まれていますが、このロジックは、ランタイム ソフトウェアで IBERT コアに含まれている GTX トランシーバーの属性を確認および変更できるようにします。該当する場合は、読み出し可能および書き込み可能のレジスタも含まれます。これらのレジスタは GTX トランシーバーのポートに接続されます。すべては Vivado® ロジック解析を使用してランタイム時にアクセス可能です。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 90

Page 91: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

• パターン ジェネレーター: IBERT デザインでイネーブルにされる各 GTX トランシーバーには、パターン ジェネレーターとパターン チェッカーの両方が含まれます。パターン ジェネレーターによりトランスミッターを介してデータが送信されます。

• エラー検出器: IBERT デザインでイネーブルにされる各 GTX トランシーバーには、パターン ジェネレーターとパターン チェッカーの両方が含まれます。パターン チェッカーにレシーバーからのデータが入力されると、内部生成されたパターンと比較してチェックされます。

図 4: IBERT のデザイン フロー

手順 1: IBERT デザインの作成、カスタマイズ、および生成

プロジェクトを作成するには New Project ウィザードを使用し、プロジェクト名を指定し、RTL ソース ファイルおよび制約ファイルを追加し、ターゲット デバイスを指定します。1. Vivado® IDE を起動します。2. [Vivado Quick Start] ページで [Create Project] をクリックし、New Project ウィザードを起動し、[Next] をクリッ

クします。3. [Project Name] ページで新規プロジェクトの名前を「ibert_tutorial」に設定し、プロジェクト ディレクトリ (C:/

ibert_tutorial) を設定します。[Create Project Subdirectory] がオンになっていることを確認します。[Next]をクリックします。

4. [Project Type] ページで、[Type of Project] を指定し RTL プロジェクトを作成します。[Next] をクリックします。5. [Add Sources] ページで [Next] をクリックします。6. [Add Existing IP] ページで [Next] をクリックします。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 91

Page 92: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

7. [Add Constraints] ページで [Next] をクリックします。8. [Default Part] ページで [Boards] に [Kintex-7 KC705 Evaluation Platform] を選択します。[Next] をクリックします。

9. [New Project Summary] ページを確認します。上記の手順で設定したとおりにデータが表示されていることを確認します。[Finish] をクリックします。注記: プロジェクトの初期化に少し時間がかかる場合があります。

手順 2: Vivado プロジェクトへの IBERT コアの追加1. Flow Navigator で [IP Catalog] をクリックします。

IP カタログが開きます。

2. IP カタログの [Search] フィールドに「IBERT」と入力して、IBERT 7 series GTX IP を検索します。

3. [IBERT 7 series GTX IP] をダブルクリックします。IBERT をカスタマイズする GUI が開きます。4. [Customize IP] ダイアログ ボックスの [Protocol Definition] タブで次のオプションを選択します。

a. [Component Name] フィールドにコンポーネント名を入力します。この場合は、デフォルト名のibert_7series_gtx_0 をそのまま使用します。

b. [Silicon Verion] で [General ES/Production] が選択されていることを確認します。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 92

Page 93: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

c. [Number of Protocols] が 1 に設定されていることを確認します。d. [LineRate (Gb/s)] を 8 に変更します。e. [DataWidth] を 40 に変更します。f. [Refclk (MHz)] を 125 に変更します。g. [Quad Count] が 2 に設定されていることを確認します。h. [Quad PLL] チェック ボックスがオンになっていることを確認します。

5. [Protocol Selection] タブでは、次を変更します。a. GTX ロケーション QUAD_117 に対しては、[Protocol Selected] 列のプルダウン メニューから[ Custom 1 / 8

Gbps] を選択します。これで [Refclk Selection] が自動的に [MGTREFCLK0 117] になり、[TXUSRCLK Source]が [Channel 0] になるはずです。

b. GTX ロケーション QUAD_118 に対しては、次のように設定します。i. [Protocol Selected] 列のプルダウン メニューから [Custom 1 / 8 Gbps] を選択します。ii. [Refclk Selection] で値を [MGTREFCLK0 117] に変更します。iii. [TXUSRCLK Source] で値を [Channel 0] に変更します。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 93

Page 94: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

6. [Clock Settings] タブをクリックして、QUAD_117 および QUAD_118 の両方に対して次のように変更します。a. [Source] 列の値はデフォルトの [External] のままにします。b. [I/O Standard] を [DIFF SSTL15] に変更します。c. [P Package Pin] を [AD12] に変更します。d. [N Package Pin] を [AD11] に変更します。e. [Frequency (MHz)] 列の値はデフォルトの [200.00] のままにします。

7. [Summary] タブをクリックし、内容が次の図と同じであることを確認してから、[OK] をクリックします。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 94

Page 95: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

8. [Generate Output Products] ダイアログ ボックスが表示されたら、[Generate] をクリックします。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 95

Page 96: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

9. [Sources] ウィンドウで IP を右クリックし、[Open IP Example Design] をクリックします。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 96

Page 97: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

10. [Open IP Example Design] ダイアログ ボックスで、プロジェクト ディレクトリの場所を指定します。[Overwriteexisting example project] チェック ボックスがオンになっていることを確認し、[OK] をクリックします。注記: Vivado® IDE の新しいインスタンスに新しいサンプル デザインが開きます。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 97

Page 98: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

手順 3: IBERT デザインの合成、インプリメンテーション、およびビットストリーム生成

1. Vivado IDE のインスタンスを新しく開き、Flow Navigator で[Generate Bitstream] をクリックします。[Noimplementation Results Available] ダイアログ ボックスが開きます。[Yes] をクリックします。

ビットストリームの生成が完了すると、[Bitstream Generation Completed] ダイアログ ボックスが開きます。2. [Open Hardware Manager] をオンにして、[OK] をクリックします。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 98

Page 100: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

手順 4: シリアル I/O 解析を使用した IBERT コアとの対話

この手順では、KC705 ボードに接続し、前の手順で作成したビットストリームをプログラムしてから、シリアル I/O解析を使用して、手順 1 で作成した IBERT デザインと対話させます。さまざまな入力パターンおよびループバックモードを使用してある程度の解析を実行しつつ、ビット エラー カウントを確認します。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 100

Page 101: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

1. [Open New Target] をクリックします。Open Hardware Target ウィザードが開いたら、[Next] をクリックします。

2. [Connect to] フィールドでローカル サーバーを選択します。[Next] をクリックします。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 101

Page 102: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

3. [Select Hardware Target] ページで [Next] をクリックします。この場合は、接続するターゲット ボードが 1 つしかないので、このデフォルト ボードが選択されています。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 102

Page 103: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

4. [Open Hardware Target Summary] ページで、選択したオプションを確認します。[Finish] をクリックします。

5. Vivado IDE の [Hardware] ウィンドウには、KC705 ボード上にあるターゲットの FPGA のステータスが表示されているはずです。

6. [Hardware] ウィンドウで [XC7K325T_0(0)] を右クリックして、[Program Device] をクリックします。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 103

Page 104: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

7. [Program Device] ダイアログ ボックスが開きます。正しいビット ファイルが選択されているのを確認し、[Program] をクリックします。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 104

Page 105: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

8. [Hardware] ウィンドウには、前の手順でカスタマイズしインプリメントした IBER IP が表示されています。これには、QUAD が 2 つ含まれていて、それぞれに 4 つの GTX トランシーバーがあります。ビットストリームをダウンロードした後にデバイスをスキャンすると、IBERT のこれらのコンポーネントが検出されます。QUAD が表示されていない場合は、[XC7K325] デバイスを右クリックして [Refresh Device]を選択します。

9. 次に、8 つのトランシーバーすべてに対しリンクを作成します。Vivado シリアル I/O 解析はリンク ベースの解析機能で、IBERT デザイン内の任意のトランスミッターとレシーバーをリンクさせることができます。このチュートリアルでは、同じチャネルの TX および RX をリンクさせるだけです。リンクを作成するには、[Hardware] ウィンドウで [IBERT Core] を右クリックし [Create Links] をクリックします。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 105

Page 106: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

[Create Links] ダイアログ ボックスが開きます。10. 最初のトランシーバー ペア (MGT_X0Y8/TX および MGT_X0Y8/RX) が選択されていることを確認します。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 106

Page 107: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

11. [+] ボタンをクリックし、新しくリンクを追加します。[Link group description] フィールドに「Link Group SMA」と入力します。[Internal Loopback] チェック ボックスをオンにします。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 107

Page 108: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

最初のリンク グループの名前は、SMA ケーブルを介してリンクされる唯一のトランシーバー チャネルなので「Link Group SMA」にします。この新しいリンクがリンクのウィンドウに表示されます。

12. [Create Link] を再度クリックして、残りのトランシーバー ペアにもリンク グループを作成します。トランシーバー ペアが選択されていることを確認し、すべてのリンクが「Link Group Internal Loopback」という名前の新しいリンク グループに追加されるまで、[+] ボタンを繰り返しクリックします。[OK] をクリックします。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 108

Page 109: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

13. リンクが作成されると、次のようにウィンドウにリンクが追加されます。

リンクのステータスを確認すると、8.0 Gbps のライン レートであることがわかります。このウィンドウのほかの列の詳細は、『Vivado Design Suite ユーザー ガイド: プログラムおよびデバッグ』(UG908: 英語版、日本語版) を参照してください。

14. 残りのトランシーバーの GT プロパティを先に説明したように変更します。15. 次に、2D スキャンを作成します。リンク ウィンドウで [Create Scan] をクリックします。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 109

Page 110: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

[Create Scan] ダイアログ ボックスが開きます。このダイアログ ボックスで、さまざまなスキャン プロパティを変更できます。この場合は、すべてデフォルト値のままにしておき、[OK] をクリックします。スキャン プロパティの詳細は、『Vivado Design Suite ユーザー ガイド: プログラムおよびデバッグ』 (UG908: 英語版、日本語版)を参照してください。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 110

Page 112: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

2D スキャン プロットは BER 値のヒート マップです。先に作成したリンクでスイープ テストを実行することもできます。

16. リンク ウィンドウで、[Link Group SMA] という名前のリンクの下にある [Link 0] を右クリックして、[CreateSweep] をクリックします。

17. 次の図のように [Create Sweep] ダイアログ ボックスが開きます。スイープ テストのさまざまなプロパティをこのダイアログ ボックスで変更できます。すべてデフォルト値のままにしておき、[OK] をクリックします。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 112

Page 113: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

ここでは 4 つの異なるスイープ プロパティがあって、([Values to Sweep] 列にあるように) それぞれのプロパティに 3 つの異なる値があるので、合計 81 のスイープ テストが実行されます。スキャン ウィンドウには、選択したリンクに対して実行されたスキャンすべての結果が表示されます。

注意: 81 のスキャンが実行されるので、すべて完了するまでに数分かかる可能性があります。

実行されたスキャンの結果を確認するには、スキャンを右クリックし [Display Scan Plots] を選択します。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 113

Page 114: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

実行されたスキャンの詳細を表示する [Scan Plots] ウィンドウが開きます。

第 9 章: 演習 8: Vivado シリアル解析を使用したシリアル リンクのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 114

Page 115: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

第 10 章

演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

この演習では、ILA コアのアドバンスド トリガーおよびキャプチャ機能を使用して、ILA コアを JTAG to AXI MasterIP コアのサンプル デザインに挿入する方法を説明します。

JTAG to AXI Master IP コアとはLogiCORE™LogiCORE IP JTAG-AXI コアはカスタマイズ可能なコアで、AXI トランザクションを生成し、ランタイム時に AXI 信号を FPGA 内部に駆動できます。すべてのメモリ マップド AXI インターフェイス (AXI4-Stream を除く) および Lite プロトコルがサポートされ、パラメーターを使用して選択できます。AXI データ バスの幅はカスタマイズ可能です。この IP はどの AXI4-Lite またはメモリ マップド スレーブも直接駆動できます。また、マスターとしてインターコネクトに接続することも可能です。このコアにランタイムにアクセスするには、Vivado® ロジック解析機能を使用する必要があります。

主な機能• AXI4 マスター インターフェイス• AXI4 および AXI4-Lite インターフェイスを選択するオプション• ユーザー制御可能な AXI リードおよびライト イネーブル• ユーザー制御可能な AXI データ幅 (32 および 64)

• ハードウェアと対話するための Vivado ILA の Tcl コンソール インターフェイス

その他の資料『JTAG to AXI Master LogiCORE IP 製品ガイド』 (PG174) を参照してください。

デザインの概要このセクションには次の 3 つの手順があります。1. IP インテグレーターで、System ILA および JTAG-to-AXI マスターを含む単純なデザインを作成。2. Kintex®-7 FPGA KC705 評価キット基本ボードをプログラムし、JTAG to AXI Master IP コアと接続。3. AXI 読み出しトランザクションでトリガーするため、ILA アドバンス ドトリガー機能を使用。

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 115

Page 116: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

手順 1: 新規 Vivado プロジェクトの作成、および JTAG-to-AXI および System ILA を含んだ IP インテグレーター デザインの生成

プロジェクトを作成するには New Project ウィザードを使用し、プロジェクト名を指定し、RTL ソース ファイルおよび制約ファイルを追加し、ターゲット デバイスを指定します。1. Vivado® IDE を起動します。2. [Getting Started] ページで [Create Project] をクリックして New Project ウィザードを開始します。[Next] をクリ

ックします。3. [Project Name] ページで新規プロジェクトの名前を「jtag_2_axi_tutorial」に設定し、プロジェクト ディレクトリ (C:/jtag_2_axi_tutorial) を設定します。[Create Project Subdirectory] がオンになっていることを確認します。[Next] をクリックします。

4. [Project Type] ページで、[Type of Project] を指定し RTL プロジェクトを作成します。[Do not specify sources atthis time] チェック ボックスがオンになっていることを確認します。[Next] をクリックします。

5. [Default Part] ページで [Boards] をクリックし、[Kintex-7 KC705 Evaluation Platform] を選択します。[Next] をクリックします。

6. [New Project Summary] ページを確認し、[Finish] をクリックします。

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 116

Page 117: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

7. Flow Navigator で [Project Manager] → [Create Block Diagram] をクリックします。ダイアログ ボックスが表示されるので、ブロック図名を指定します。カスタム名を指定するか、デフォルト値をそのまま使用できます。[OK] をクリックします。

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 117

Page 118: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

8. ウィンドウの右端に「Diagram」というタイトルの空のブロック図デザインがあります。そのウィンドウの中央またはツールバーにある [+] 記号をクリックし、検索ウィンドウを開きます。[Search] フィールドに「JTAG toAXI」と入力し、[JTAG to AXI Master] をダブルクリックしてブロック図に追加します。

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 118

Page 119: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

9. JTAG-to-AXI Master コアが IP インテグレーターのキャンバスに表示されます。このコアをダブルクリックして[Re-Customize] ダイアログ ボックスを開きます。設定を確認し、[OK] をクリックしてデフォルトのコア設定を受け入れます。

10. 同じ手順を繰り返し、ブロック図に AXI BRAM Controller および Block Memory Generator の IP をさらに追加します。これで、System ILA コアのデバッグ機能を見せる AXI トランザクションを作成するための単純な AXI インフラストラクチャを使用して、デザインが作成されます。

11. 作業を続ける前に、AXI BRAM Controller および Block Memory Generator をカスタマイズする必要があります。ブロック図キャンバスで AXI BRAM Controller を検索し、それをダブルクリックします。IP をカスタマイズするダイアログ ボックスが開きます。[Number of BRAM interfaces] を 1 に設定します。[OK] をクリックします。

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 119

Page 120: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

12. 次に、ブロック図で Block Memory Generator を検索し、同じようにダブルクリックして、IP をカスタマイズするダイアログ ボックスを開きます。[Enable Safety Circuit] チェック ボックスをオフにします。[OK] をクリックします。

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 120

Page 122: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

14. ブロック図キャンバスの上部に設計アシスタンスを使用できることを示す緑色のバナーが表示されています。このバナーにある [Run Connection Automation] をクリックします。[Connection Automation] ウィンドウが開くので、[All Automation] ボタンをクリックしてから [OK] をクリックします。

15. Clocking Wizard、Processor System Reset、AXI SmartConnect もデザインに自動追加されています。ClockingWizard のクロックおよびリセット入力は接続されておらず、[Run Connection Automation] のバナーがまだ表示されています。これらの入力は、Clocking Wizard でカスタマイズするときに、KC705 ボードのボタンに接続されている FPGA の物理的な入力ポートに接続されます。

16. ブロック図キャンバスで Clocking Wizard IP をダブルクリックすると、カスタマイズ用のダイアログ ボックスが開きます。ダイアログ ボックスが開いたら、[CLKIN_1] を [sys_diff_clk] に、[EXT_RESET¬_IN] を [reset] に設定します。[OK] をクリックします。注記: 評価ボードおよびターゲット デバイスを使用してプロジェクトが生成されていて、IP により sys_diff_clk を使用して制約情報が選択できるので、これらのポートの制約を追加する必要はありません。

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 122

Page 123: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

17. 先ほどと同じように、設計アシスタンスが利用可能であることを示す緑色のバナーが表示されているので、[RunConnection Automation] をクリックします。[Run Connection Automation] ダイアログ ボックスで、[AllAutomation] をクリックします。[OK] をクリックします。

18. これで sys_diff_clk および rest が外部ポートに接続されました。デザインのコネクティビティを確認し、JTAG to AXI Master と AXI BRAM Controller スレーブとの間の AXI トランザクションを監視する必要がある可能性があります。AXI BRAM Controller と JTAG to AXI Master との間の AXI バスをプローブするため SystemILA が追加される場合は、その可能性があります。

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 123

Page 124: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

19. デザインに System ILA を追加するには、前の手順と同じように [+] 記号をクリックします。System ILA を検索してダブルクリックし、ブロック図に追加します。ブロック図キャンバスに System ILA が表示されたら、それをダブルクリックしてカスタマイズ用のダイアログ ボックスを開きます。[Capture Control] および [AdvancedTrigger] の両方が選択されていることを確認します。さらに、[Number of Comparators] を 3 に設定します。[OK]をクリックします。

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 124

Page 125: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

20. System ILA の SLOT_0_AXI ポートと AXI BRAM Controller の S_AXI ポートとを接続します。[SLOT_0_AXI ポートをクリックし、AXI BRAM Controller の [S_AXI] ポートをさらにクリックして接続します。

21. [Run Connection Automation] のリンクがある緑色のバナーが表示されたら、それをクリックし、[All Automation]をクリックします。それから [OK] をクリックします。System ILA の clk および resetn ポートが AXI クロックおよび AXI リセットに接続されている点に注目してください。

22. Vivado IDE の左上で [File] → [Save Block Design] をクリックします。同じメニューから [File] → [Close BlockDesign] をクリックし、クロック デザインを閉じます。

23. [Sources] ウィンドウで [design_1 block design] を右クリックし、[Create HDL Wrapper] を選択します。VivadoIDE でラッパーを自動管理し、[OK] をクリックします。

24. Vivado IDE の左側にある Flow Navigator で [Generate Bitstream] をクリックします。25. [OK] をクリックしてデザインをインプリメントします。26. Vivado のステータス ウィンドウに write_bitstream が完了したことが表示されるまで待ちます。27. [Bitstream Generation Completed] ダイアログ ボックスで [Open Hardware Manager] を選択し、[OK] をクリックします。

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 125

Page 126: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

手順 2: KC705 ボードのプログラムおよび JTAG to AXIMaster コアとの接続

1. KC705 ボードの USB-JTAG インターフェイスを Vivado® IDE およびケーブル ドライバーがインストールされているコンピューターに接続し、ボードの電源を入れます。

2. ハードウェア マネージャーのウィンドウが開きます。[Open New Target] をクリックします。[Open NewHardware Target] が開きます。

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

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 126

Page 127: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

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

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 127

Page 128: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

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

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 128

Page 129: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

ハードウェアが完了するまで待ちます。ハードウェアとの接続が完了したら、次の図のように [Hardware] ウィンドウが開きます。注記: [Debug] ビューの [Hardware] タブでは、ハードウェア ターゲットおよび XC7K325T デバイスが JTAG チェーンで検出されていることが確認できます。

7. 次に、次の図のように、XC7K325T デバイスを右クリックして [Program Device] を選択し、前に作成しておいたビットストリーム (拡張子は .bit) を使用して XC7K325T デバイスをプログラムします。

8. [Program Device] ダイアログ ボックスでビットストリーム (.bit) がこの演習で使用しているものであることを確認します。[Program] をクリックしてデバイスをプログラムします。

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 129

Page 130: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

注記: デバイスのプログラムが完了するまで待ちます。完了まで数分がかかる場合があります。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 toAXI Master コアをリセットしてください。jtag_axi_0 コア インスタンスの aresetn 入力ポートは何にも接続されていないので、次の Tcl コマンドを使用してコアをリセットする必要があります。reset_hw_axi [get_hw_axis hw_axi_1]

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 130

Page 131: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

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 (例: アドレス 3) 右が LSB (例: アドレス 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…

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 131

Page 132: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

手順 3: AXI 読み出しトランザクションでトリガーするための ILA アドバンスド トリガー機能の使用

1. [ILA – hw_ila_1] ダッシュボードの [Trigger Mode Settings] で [Trigger mode] を [ADVANCED_ONLY] に設定します。

2. [Capture Mode Settings] で [Trigger position in window] を [512] に設定します。3. [Trigger State Machine] で [Create new trigger state machine] リンクをクリックします。

4. [New Trigger State Machine File] ダイアログ ボックスでステート マシンのスクリプト名を [txns.tsm] に設定します。

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 132

Page 133: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

5. トリガー ステート マシン スクリプトの基本テンプレートが [Trigger State Machine] ガジェットに表示されます。ILA ダッシュボードでこのガジェットを展開します。ステート マシン スクリプトの 17 行目以降の次のスクリプトをコピーして、ファイルを保存します。# The "wait_for_arvalid" state is used to detect the start # of the read address phase of the AXI transaction which# is indicated by the axi_arvalid signal equal to '1'#state wait_for_arvalid: if (design_1_i/system_ila_0/U0/net_slot_0_axi_arvalid == 1'b1) then goto wait_for_rready; else goto wait_for_arvalid; endif## The "wait_for_rready" state is used to detect the start # of the read data phase of the AXI transaction which# is indicated by the axi_rready signal equal to '1'#state wait_for_rready: if (design_1_i/system_ila_0/U0/net_slot_0_axi_rready == 1'b1) then goto wait_for_rlast; else goto wait_for_rready; endif

## The "wait_for_rlast" state is used to detect the end # of the read data phase of the AXI transaction which# is indicated by the axi_rlast signal equal to '1'.# Once the end of the data phase is detected, the ILA core# will trigger.#state wait_for_rlast: if (design_1_i/system_ila_0/U0/net_slot_0_axi_rlast == 1'b1) then trigger; else goto wait_for_rlast; endif

注記: AXI 読み出しトランザクションのさまざまなフェーズを検出するには、ステート マシンを使用します。• 読み出しアドレス フェーズの開始。• 読み出しデータ フェーズの開始。• 読み出しデータ フェーズの終了。

6. ハードウェア マネージャー ウィンドウで [hw_ila_1 core] を右クリックし、[Run Trigger] を選択して、ILA のトリガーを準備します。

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 133

Page 134: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

7. [Trigger Capture Status] ウィンドウで ILA コアがトリガーの発生を待機していることと、トリガー ステート マシンが wait_for_a_valid ステートにあることを確認します。512 サンプルのトリガー前の取り込みは完了しました。

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 134

Page 135: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

8. [Tcl Console] で、このチュートリアルの前のセクションで設定した読み出しトランザクションを実行します。run_hw_axi $rt

注記: ILA がトリガーし、トリガー ステート マシン プログラムが意図したとおりに、axi_rlast 信号が 1 のサンプルにトリガー マークが付いています。

第 10 章: 演習 9: Vivado ILA コアを使用した JTAG-AXI トランザクションのデバッグ

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 135

Page 136: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

付録 A

その他のリソースおよび法的通知

ザイリンクス リソースアンサー、資料、ダウンロード、フォーラムなどのサポート リソースは、ザイリンクス サポート サイトを参照してください。

Documentation Navigator およびデザイン ハブザイリンクス Documentation Navigator (DocNav) では、ザイリンクスの資料、ビデオ、サポート リソースにアクセスでき、特定の情報を取得するためにフィルター機能や検索機能を利用できます。DocNav を開くには、次のいずれかを実行します。• Vivado® IDE で [Help] → [Documentation and Tutorials] をクリックします。• Windows で [スタート] → [すべてのプログラム ] → [Xilinx Design Tools] → [DocNav] をクリックします。• Linux コマンド プロンプトに「docnav」と入力します。ザイリンクス デザイン ハブには、資料やビデオへのリンクがデザイン タスクおよびトピックごとにまとめられており、これらを参照することでキー コンセプトを学び、よくある質問 (FAQ) を参考に問題を解決できます。デザイン ハブにアクセスするには、次のいずれかを実行します。• DocNav で [Design Hub View] タブをクリックします。• ザイリンクス ウェブサイトでデザイン ハブ ページを参照します。注記: DocNav の詳細は、ザイリンクス ウェブサイトの Documentation Navigator ページを参照してください。DocNav からは、日本語版は参照できません。ウェブサイトのデザイン ハブ ページをご利用ください。

お読みください: 重要な法的通知本通知に基づいて貴殿または貴社 (本通知の被通知者が個人の場合には「貴殿」、法人その他の団体の場合には「貴社」。以下同じ) に開示される情報 (以下「本情報」といいます) は、ザイリンクスの製品を選択および使用することのためにのみ提供されます。適用される法律が許容する最大限の範囲で、(1) 本情報は「現状有姿」、およびすべて受領者の責任で (with all faults) という状態で提供され、ザイリンクスは、本通知をもって、明示、黙示、法定を問わず (商品性、非侵害、特定目的適合性の保証を含みますがこれらに限られません)、すべての保証および条件を負わない (否認する) ものとします。また、(2) ザイリンクスは、本情報 (貴殿または貴社による本情報の使用を含む) に関係し、起

付録 A: その他のリソースおよび法的通知

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 136

Page 137: Vivado Design Suite チュートリアル: プログラムお …...Vivado Design Suite チュート リアル プログラムおよびデバッグ UG936 (v2019.2) 2019 年 12 月

因し、関連する、いかなる種類・性質の損失または損害についても、責任を負わない (契約上、不法行為上 (過失の場合を含む)、その他のいかなる責任の法理によるかを問わない) ものとし、当該損失または損害には、直接、間接、特別、付随的、結果的な損失または損害 (第三者が起こした行為の結果被った、データ、利益、業務上の信用の損失、その他あらゆる種類の損失や損害を含みます) が含まれるものとし、それは、たとえ当該損害や損失が合理的に予見可能であったり、ザイリンクスがそれらの可能性について助言を受けていた場合であったとしても同様です。ザイリンクスは、本情報に含まれるいかなる誤りも訂正する義務を負わず、本情報または製品仕様のアップデートを貴殿または貴社に知らせる義務も負いません。事前の書面による同意のない限り、貴殿または貴社は本情報を再生産、変更、頒布、または公に展示してはなりません。一定の製品は、ザイリンクスの限定的保証の諸条件に従うこととなるので、https://japan.xilinx.com/legal.htm#tos で見られるザイリンクスの販売条件を参照してください。IP コアは、ザイリンクスが貴殿または貴社に付与したライセンスに含まれる保証と補助的条件に従うことになります。ザイリンクスの製品は、フェイルセーフとして、または、フェイルセーフの動作を要求するアプリケーションに使用するために、設計されたり意図されたりしていません。そのような重大なアプリケーションにザイリンクスの製品を使用する場合のリスクと責任は、貴殿または貴社が単独で負うものです。https://japan.xilinx.com/legal.htm#tos で見られるザイリンクスの販売条件を参照してください。

自動車用のアプリケーションの免責条項オートモーティブ製品 (製品番号に「XA」が含まれる) は、ISO 26262 自動車用機能安全規格に従った安全コンセプトまたは余剰性の機能 (「セーフティ設計」) がない限り、エアバッグの展開における使用または車両の制御に影響するアプリケーション (「セーフティ アプリケーション」) における使用は保証されていません。顧客は、製品を組み込むすべてのシステムについて、その使用前または提供前に安全を目的として十分なテストを行うものとします。セーフティ設計なしにセーフティ アプリケーションで製品を使用するリスクはすべて顧客が負い、製品責任の制限を規定する適用法令および規則にのみ従うものとします。

Copyright

© Copyright 2012-2019 Xilinx, Inc. Xilinx、Xilinx のロゴ、Alveo、Artix、Kintex、Spartan、Versal、Virtex、Vivado、Zynq、およびこの文書に含まれるその他の指定されたブランドは、米国およびその他各国のザイリンクス社の商標です。 すべてのその他の商標は、それぞれの保有者に帰属します。

この資料に関するフィードバックおよびリンクなどの問題につきましては、[email protected] まで、または各ページの右下にある [フィードバック送信] ボタンをクリックすると表示されるフォームからお知らせください。フィードバックは日本語で入力可能です。いただきましたご意見を参考に早急に対応させていただきます。なお、このメール アドレスへのお問い合わせは受け付けておりません。あらかじめご了承ください。

付録 A: その他のリソースおよび法的通知

UG936 (v2019.2) 2019 年 12 月 10 日 japan.xilinx.comプログラムおよびデバッグ 137