vivado design suite - xilinx...プログラムおよびデバッグ japan.xilinx.com 2 ug908...

86
Vivado Design Suite ユーザー ガイド プログラムおよびデバッグ UG908 (v2013.1) 2013 3 20

Upload: others

Post on 11-Oct-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado Design Suite ユーザー ガイド

プログラムおよびデバッグ

UG908 (v2013.1) 2013 年 3 月 20 日

Page 2: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

プログラムおよびデバッグ japan.xilinx.com 2UG908 (v2013.1) 2013 年 3 月 20 日

Notice of DisclaimerThe information disclosed to you hereunder (the “Materials”) is provided solely for the selection and use of Xilinx products.To the maximum extent permitted by applicable law:(1) Materials are made available "AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether in contract or tort, including negligence, or under any other theory of liability) for any loss or damage of any kind or nature related to, arising under, or in connection with, the Materials (including your use of the Materials), including for any direct, indirect, special, incidental, or consequential loss or damage (including loss of data, profits, goodwill, or any type of loss or damage suffered as a result of any action brought by a third party) even if such damage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the same.Xilinx assumes no obligation to correct any errors contained in the Materials or to notify you of updates to the Materials or to product specifications.You may not reproduce, modify, distribute, or publicly display the Materials without prior written consent.Certain products are subject to the terms and conditions of the Limited Warranties which can be viewed at http://www.xilinx.com/warranty.htm; IP cores may be subject to warranty and support terms contained in a license issued to you by Xilinx.Xilinx products are not designed or intended to be fail-safe or for use in any application requiring fail-safe performance; you assume sole risk and liability for use of Xilinx products in Critical Applications:http://www.xilinx.com/warranty.htm#critapps.© Copyright 2012 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are trademarks of Xilinx in the United States and other countries.All other trademarks are the property of their respective owners.

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

この資料に関するフ ィードバッ クおよびリ ンクなどの問題につきましては、[email protected] までお知らせください。 いただきましたご意見を参考に早急に対応させていただきます。 なお、 このメール アドレスへのお問い合わせは受け付けており ません。 あらかじめご了承ください。

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

日付 バージョ ン 改訂内容

2012 年 7 月 25 日 2012.2 初版

2012 年 10 月 16 日 2012.3 ビッ ト ス ト リーム設定をアップデート

2012 年 12 月 18 日 2012.4 波形コンフ ィギュレーシ ョ ンのセクシ ョ ンを追加、 波形ビューアーの制限事項を削除

2013 年 3 月 20 日 2013.1 • 2013.1 リ リース用にアップデート

• インシステム シ リ アル I/O デバッグに関する新しいセクシ ョ ンを追加。hw_tcl コマンドを説明する新しいセクシ ョ ンを追加。

• HDL インスタンシエーシ ョ ン フローで使用する Vivado IP の新しいデバッグ コアの表を追加

Page 3: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

目次

改訂履歴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

第 1 章 : 概要はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

第 2 章 : デバイスのプログラム概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

ビッ ト ス ト リームの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

ビッ ト ス ト リーム ファ イルのフォーマッ ト設定の変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

デバイス コンフ ィギュレーシ ョ ン ビッ ト ス ト リーム設定の変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

FPGA デバイスのプログラム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Vivado ハード ウェア セッシ ョ ンを使用した FPGA デバイスのプログラム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

iMPACT の起動. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

第 3 章 : デザインのデバッグ概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

RTL レベル デザイン シ ミ ュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

インプリ メンテーシ ョ ン後のデザイン シ ミ ュレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

インシステム ロジッ ク デザインのデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

インシステム シ リ アル I/O デザインのデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

第 4 章 : インシステム ロジッ ク デザイン デバッグ フロー概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

インシステム デバッグ用のデザインのプローブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

ネッ ト リ ス ト挿入デバッグ プローブ フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

HDL インスタンシエーシ ョ ン プローブ フローの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

HDL インスタンシエーシ ョ ン デバッグ プローブ フロー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

デバッグ コアを含むデザインのインプリ メンテーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

第 5 章 : ハードウェアでのロジック デザインのデバッグ概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

ChipScope Pro Analyzer を使用したデザインのデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Vivado ロジッ ク解析を使用したデザインのデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

ハードウェア ターゲッ トに接続して FPGA デバイスをプログラム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

計測のための ILA コアの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

ILA コアの ト リガー条件の設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

ILA コアの ト リガー位置の設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

ILA プローブ情報の記述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

ILA プローブ情報の読み出し . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

ILA プローブの表示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

ILA プローブの ト リガー比較値の設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

プログラムおよびデバッグ japan.xilinx.com 3UG908 (v2013.1) 2013 年 3 月 20 日

Page 4: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ILA プローブの比較値の設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

ILA コアの ト リガーの供給. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

ILA コアの ト リガーの停止. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

ILA コアのステータスの表示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

ILA コアからのデータを波形ビューアーで表示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

ILA コアでキャプチャされたデータの保存および復元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

計測のための VIO コアの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

VIO コアのステータスの表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

VIO コアの入力プローブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

VIO コアの出力プローブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

ラボ環境での Vivado ロジッ ク解析の使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Vivado ロジッ ク解析機能と ChipScope Pro Analyzer の同時使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

ハードウェア セッシ ョ ンの Tcl オブジェク トおよびコマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

ハードウェア セッシ ョ ンの Tcl コマンドの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

第 6 章 : 波形ウィンドウを使用した ILA プローブ データの表示概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

波形コンフ ィギュレーシ ョ ンと波形ウ ィンド ウ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

波形コンフ ィギュレーシ ョ ンの信号およびバス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

波形コンフ ィギュレーシ ョ ンの ILA プローブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

波形コンフ ィギュレーシ ョ ンのカスタマイズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

オブジェク ト名の変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

基数およびアナログ波形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

ズーム機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

第 7 章 : インシステム シリアル I/O デバッグ フロー概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Vivado IP カタログを使用した IBERT コアの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

IBERT サンプル デザインの生成と インプリ メンテーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

第 8 章 : ハードウェアでのシリアル I/O デザインのデバッグ概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

Vivado シ リアル I/O 解析を使用したデザインのデバッグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

付録 A : デバイス コンフ ィギュレーシ ョ ン ビッ トス ト リーム設定

付録 B : その他のリソースザイ リ ンクス リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

ソ リ ューシ ョ ン センター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

参考資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

プログラムおよびデバッグ japan.xilinx.com 4UG908 (v2013.1) 2013 年 3 月 20 日

Page 5: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

プログラムおよびデバッグ japan.xilinx.com 5UG908 (v2013.1) 2013 年 3 月 20 日

第 1 章

概要

はじめにデザインをインプ リ メ ン ト したら、 FPGA デバイスをプログラムし、 デザインをインシステムでデバッグしながらハード ウェアでデザインを実行します。FPGA デバイスのプログラムおよびインシステム デバッグの実行に必要なコマンドはすべて、 Vivado® 統合設計環境 (IDE) の Flow Navigator の [Program and Debug] にあ り ます (図 1-1 参照)。

X-Ref Target - Figure 1-1

図 1-1 : Flow Navigator の [Program and Debug]

Page 6: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

第 2 章

デバイスのプログラム

概要ハード ウェアのプログラムは、 次の 2 つの段階に分けるこ とができます。

1. インプリ メン ト済みデザインからビッ ト ス ト リーム データ プログラム ファ イルを生成

2. ハード ウェアに接続し、 プログラム ファ イルをターゲッ ト FPGA デバイスにダウンロード

ビッ トス ト リームの生成ビッ ト ス ト リーム データ ファ イルを生成する前に、 ビッ ト ス ト リーム設定が正しいかど うかを確認するこ とが重要です。

Vivado® IDE では、 次の 2 つのビッ ト ス ト リーム設定があ り ます。

1. ビッ ト ス ト リーム ファ イルのフォーマッ ト設定

2. デバイス コンフ ィギュレーシ ョ ン設定

Flow Navigator の [Bitstream Settings] を ク リ ッ クするか、 [Flow] → [Bitstream Settings] を ク リ ッ クする と、 [ProjectSettings] ダイアログ ボッ クスの [Bitstream] ページが開きます (図 2-1)。 ビッ ト ス ト リーム設定が正しいこ とを確認したら、 write_bistream Tcl コマン ド または Flow Navigator の [Generate Bitstream] を使用してビ ッ ト ス ト リーム データファイルを生成できます。

プログラムおよびデバッグ japan.xilinx.com 6UG908 (v2013.1) 2013 年 3 月 20 日

Page 7: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ビッ トスト リーム ファイルのフォーマッ ト設定の変更

ビッ トス ト リーム ファイルのフォーマッ ト設定の変更デフォルトでは、 write_bistream Tcl コマンドでバイナリ ビッ ト ス ト リーム ファ イル (.bit) が生成されます。 生成されるファ イルのフォーマッ ト を変更するには、 次のオプシ ョ ンを使用します。

• -raw_bitfile (オプシ ョ ン) : ロー ビッ ト ファ イル (.rbt) を生成します。ロー ビッ ト ファ イルには、バイナリ ビット ス ト リーム ファ イルと同じ情報が ASCII 形式で含まれます。 出力ファイル名は filename.rbt とな り ます。

• -mask_file (オプシ ョ ン) : マスク ファ イル (.msk) を生成します。マスク ファ イルには、ビッ ト ス ト リーム ファ イルのコンフ ィギュレーシ ョ ン データが含まれる場所を示すマスク データが含まれます。 このファイルは、 検証時にビッ ト ス ト リームのどのビッ ト を リードバッ ク データ と比較するべきかを判断するために使用します。マスク ビッ トが 0 の場合はそのビッ トはビッ ト ス ト リーム データに対して検証され、 マスク ビッ トが 1 の場合はそのビッ トは検証されません。 出力ファイル名は file.msk とな り ます。

• -no_binary_bitfile (オプシ ョ ン) : バイナリ ビッ ト ス ト リーム ファ イル (.bit) を生成しません。 このオプシ ョ ンは、 バイナリ ビッ ト ス ト リーム ファ イルを生成せずに、 ASCII 形式のビッ ト ス ト リーム ファ イルまたはマスクファ イルを生成したり、 ビッ ト ス ト リーム レポート を生成したりする場合に使用します。

X-Ref Target - Figure 2-1

図 2-1 : [Project Settings] ダイアログ ボックスの [Bitstream] ページ

プログラムおよびデバッグ japan.xilinx.com 7UG908 (v2013.1) 2013 年 3 月 20 日

Page 8: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

デバイス コンフ ィギュレーシ ョ ン ビッ トスト リーム設定の変更

• -logic_location_file (オプシ ョ ン) : ラ ッチ、 フ リ ップフロ ップ、 LUT、 ブロ ッ ク RAM、 I/O ブロ ッ ク入力および出力のビッ ト ス ト リーム位置を示す ASCII 形式のロジッ ク ロケーシ ョ ン ファ イル (.ll) を生成します。 このロケーシ ョ ン ファ イルではビッ トがフレームおよびビッ ト番号で示され、FPGA レジスタの内容を調べるのに役立ちます。

• -bin_file (オプシ ョ ン) : デバイス プログラム データのみを含むバイナリ ファ イル (.bin) を生成します。 通常のビッ ト ス ト リーム ファ イル (.bit) に含まれるヘッダー情報は含まれません。

• -reference_bitfile <arg> (オプシ ョ ン) : 参照ビッ ト ス ト リーム ファ イルを読み込み、 指定した参照ファイルからの変更部分のみを含むインク リ メ ンタル ビッ ト ス ト リーム ファ イルを生成します。 このパーシャル ビッ ト ス トリームは、既存のデバイスをアップデート されたデザインでインク リ メンタルにプログラムする場合に使用できます。

デバイス コンフ ィギュレーショ ン ビッ トスト リーム設定の変更コンフ ィギュレーシ ョ ン設定で も頻繁に変更されるのは、デバイス コンフ ィギュレーシ ョ ン設定です。これらの設定はデバイ ス モデルのプロパテ ィ であ り、 合成済みデザイン ネッ ト リ ス ト の [Properties] ビューで変更します。[Properties] ビューでさまざまなビッ ト ス ト リーム プロパティを変更するには、 次の手順に従います。

1. 合成済みデザインの [Netlist] ビューで 上位デザインを選択します。

2. [Netlist Properties] ビューの [Properties] タブで緑色のプラス記号 (+) をク リ ッ ク し、 [Add Properties] ダイアログボッ クスを開きます。

3. [Add Properties] ダイアログ ボッ クスの [Search] フ ィールドに 「BITSTREAM」 と入力します。 検索されたプロパティから必要なビッ ト ス ト リーム プロパティを選択し、 [OK] をク リ ッ ク します (図 2-2)。

X-Ref Target - Figure 2-2

図 2-2 : ビッ トスト リーム プロパティの追加

プログラムおよびデバッグ japan.xilinx.com 8UG908 (v2013.1) 2013 年 3 月 20 日

Page 9: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

FPGA デバイスのプログラム

4. [Properties] タブで、 ビッ ト ス ト リーム プロパティに適切な値を設定します (図 2-3)。

ビッ ト ス ト リーム プロパティは、XDC ファ イルで set_property コマンドを使用して設定するこ と も可能です。次の例では、 スタート アップ DONE サイクル プロパティを変更しています。

set_property BITSTREAM.STARTUP.DONE_CYCLE 4 [current_design]

その他の例は、 Vivado テンプレートに含まれています。 付録 A 「デバイス コンフ ィギュレーシ ョ ン ビッ ト ス ト リーム設定」 に、 すべてのデバイス コンフ ィギュレーシ ョ ン設定が説明されています。

FPGA デバイスのプログラムビッ ト ス ト リーム データ プログラム ファ イルを生成したら、 ターゲッ ト FPGA デバイスにダウンロード します。 これには、 2 つの方法があ り ます。

• ハード ウェア セッシ ョ ンを開き、Vivado IDE に含まれているネイティブ インシステム デバイス プログラ ミ ング機能を使用します。

• Flow Navigator で [Launch iMPACT] をク リ ッ クするか、 [Flow] → [Launch iMPACT] をク リ ッ ク して、 iMPACT デバイス プログラム ツールを起動します。

X-Ref Target - Figure 2-3

図 2-3 : ネッ ト リス トの BITSTREAM プロパティ

プログラムおよびデバッグ japan.xilinx.com 9UG908 (v2013.1) 2013 年 3 月 20 日

Page 10: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado ハードウェア セッシ ョ ンを使用した FPGA デバイスのプログラム

Vivado ハードウェア セッシ ョ ンを使用した FPGA デバイスのプログラムVivado IDE ツールには、 1 つ以上の FPGA デバイスを含むハード ウェアに接続し、 それらの FPGA デバイスをプログラムし、 それらの FPGA デバイスにアクセスする機能が含まれています。 ハードウェアへの接続は、 Vivado IDE GUIまたは Tcl コマンドで実行できます。 どちらの場合も、 ハードウェアに接続し、 ターゲッ ト FPGA デバイスをプログラムする手順は同じです。

1. ハード ウェア セッシ ョ ンを開きます。

2. ホス ト コンピューター上で稼働中のハード ウェア サーバーで制御されているハード ウェア ターゲッ ト を開きます。

3. ビッ ト ス ト リーム データ プログラム ファ イルを適切な FPGA デバイスに関連付けます。

4. プログラム ファ イルをハード ウェア デバイスにプログラム (ダウンロード ) します。

ハードウェア セッシ ョ ンを開く

デザインをハード ウェアにプログラムした りデバッグするには、 まずハード ウェア セッシ ョ ンを開きます。 ハードウェア セッシ ョ ンを開くには、 次のいずれかを実行します。

• プロジェク ト を開いている場合は、 Flow Navigator で [Program and Debug] → [Open Hardware Session] をク リ ッ クします。

• [File] → [Open Hardware Session] をク リ ッ ク します。

• [Tcl Console] ビュー で open_hw コマンドを実行します。

ハードウェア ターゲッ ト接続を開く

次に、 ハード ウェア ターゲッ ト (1 つ以上の FPGA デバイスで構成される JTAG チェーンを含むハードウェア ボードなど) を開き、 ハード ウェア ターゲッ ト への接続を制御するハード ウェア サーバー (Vivado CSE サーバーまたはvcse_server アプリ ケーシ ョ ンと も呼ばれる ) に接続します。 これには、 次のいずれかを実行します。

• [Hardware] ビューの [Open New Hardware Target] リ ンクをク リ ッ ク し、 ウ ィザードを使用してハード ウェア ターゲッ トへの新しい接続を開きます。

• [Hardware] ビューの [Open Recent Hardware Target] リ ンクをク リ ッ ク し、 近接続したハード ウェア ターゲッ トへの接続を開きます。

• Tcl コマンドを使用して、 ハードウェア ターゲッ トへの接続を開きます。

hw_server TCF エージェン ト を使用したハードウェア ターゲッ トへの接続

Vivado では、 ハード ウェア ターゲッ トに接続するのに 2 つの方法がサポート されます。

• ネイティブ CSE プラグインを使用

• TCF (Target Communication Framework) エージェン ト プラグインを使用

ザイ リ ンクス TCF エージェン トは、ハード ウェア サーバー (hw_server) と呼ばれます。現在のと ころ、 hw_server TCFエージェン ト を使用して接続可能なハードウェア ターゲッ トは、Digilent 社 高速 JTAG ケーブル (HS1 および HS2) とその表面実装型 (SMT1 および SMT2) のみです。

プログラムおよびデバッグ japan.xilinx.com 10UG908 (v2013.1) 2013 年 3 月 20 日

Page 11: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado ハードウェア セッシ ョ ンを使用した FPGA デバイスのプログラム

ザイ リ ンク ス TCF エージェン ト を使用して互換性のある Digilent 社 USB JTAG ケーブルまたはハード ウェアに接続するには、 USB JTAG ケーブルが接続されたマシンで hw_server TCF エージェン ト アプ リ ケーシ ョ ンを起動します。Windows プラ ッ ト フォームでは、 cmd プロンプ トで次のコマンドを実行します。

C:\Xilinx\Vivado\vivado_release.version\bin\hw_server.bat

重要 : Vivado では、CSE プラグインを使用する前に、hw_server を使用して互換性のある JTAG ターゲッ トへの接続が自動的に試行されます。標準 CSE プラグインを使用して Digilent 社 USB JTAG ケーブルに接続する場合は、hw_serverTCF エージェン トが実行されていないこ とを確認して ください。

hw_server TCF エージェン ト を起動したら、次のセクシ ョ ンの手順に従って、このエージェン ト を使用して新しいハード ウェア ターゲッ トへの接続を開きます。

新しいハードウェア ターゲッ ト を開く

Open New Hardware Target ウ ィザードでは、 ウ ィザードの指示に従いながら、 ハードウェア サーバーと ターゲッ ト を接続できます。 次の手順に従います。

1. ターゲッ ト ボードが接続されているマシン上のハード ウェア ターゲッ ト を制御する、 ホス ト名と Vivado CSEサーバー (vcse_server と も呼ばれる ) のポート を指定します (図 2-4)。

注記 : ホス ト名と して [localhost] または Vivado ツールを実行しているマシンのホス ト名/IP アドレスを使用すると、 マシンで vcse_server プロセスが自動的に開始し、 ウ ィザードのこの後のページで使用されます。

X-Ref Target - Figure 2-4

図 2-4 : Vivado CSE サーバー名の指定

プログラムおよびデバッグ japan.xilinx.com 11UG908 (v2013.1) 2013 年 3 月 20 日

Page 12: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado ハードウェア セッシ ョ ンを使用した FPGA デバイスのプログラム

2. ハード ウェア サーバーで制御されているターゲッ トのリ ス トから、 適切なハードウェア ターゲッ ト を選択します。 ターゲッ ト を選択する と、 そのハード ウェア ターゲッ トで使用可能なハード ウェア デバイスが表示されます (図 2-5)。

重要 : Vivado では、 CSE プラグインを使用する前に、 hw_server TCF エージェン ト アプリケーシ ョ ンを使用して互換性のある JTAG ターゲッ トへの接続が自動的に試行されます。 標準 CSE プラグインを使用して Digilent 社 USB JTAGケーブルに接続する場合は、 hw_server TCF エージェン トが実行されていないこ とを確認して ください。

3. TCK クロ ッ ク ピンの周波数など、ハードウェア ターゲッ トのプロパティを設定します。ハード ウェア ターゲットによって、設定可能なプロパティは異なり ます。プロパティの詳細は、各ハード ウェア ターゲッ トの資料を参照して ください。

近開いたハードウェア ターゲッ ト を開く

Open New Hardware Target ウ ィザードは、 [Open Recent Hardware Target] リ ンクをク リ ッ ク した場合に使用される 近接続したハード ウェア ターゲッ トの リ ス ト もアップデート します。[Hardware] ビューの [Open Recent Hardware Target]リ ンクをク リ ッ クする と、ウ ィザードを使用してハードウェア ターゲッ トに接続する代わりに、 近接続したハードウェア ターゲッ トへの接続を再開できます。

X-Ref Target - Figure 2-5

図 2-5 : ハードウェア ターゲッ トの選択

プログラムおよびデバッグ japan.xilinx.com 12UG908 (v2013.1) 2013 年 3 月 20 日

Page 13: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado ハードウェア セッシ ョ ンを使用した FPGA デバイスのプログラム

Tcl コマンドを使用してハードウェア ターゲッ ト を開く

Tcl コマンドを使用して、 ハード ウェア サーバー /ターゲッ トに接続するこ と も可能です。 たとえば、 localhost:60001上の vcse_server で制御される digilent_plugin ターゲッ ト (シ リアル番号 210203339395) に接続するには、 次の Tclコマンドを使用します。

connect_hw_server -host localhost -port 60001current_hw_target [get_hw_targets */digilent_plugin/SN:210203339395]open_hw_target

ハード ウェア ターゲッ トへの接続を開く と、 [Hardware] ビューにハード ウェア サーバー、ハードウェア ターゲッ ト、およびターゲッ トのハードウェア デバイスが表示されます (図 2-6)。

プログラム ファイルをハードウェア デバイスに関連付け

ハード ウェア ターゲッ トに接続したら、 FPGA デバイスをプログラムする前に、 ビッ ト ス ト リーム データ プログラム フ ァ イルをデバイ スに関連付ける必要があ り ます。 [Hardware] ビ ューでハード ウ ェア デバイ ス を選択し、[Properties] ビューで [Programming File] プロパティが適切なビッ ト ス ト リーム データ ファ イル (.bit) に設定されているこ とを確認します。

注記 : Vivado IDE では、 開いているハード ウェア ターゲッ トの 初のデバイスの [Programming File] プロパティ値として、 現在のインプリ メン ト済みデザインの .bit ファ イルが自動的に使用されます。

また、 set_property Tcl コマンドを使用して、 ハードウェア デバイスの PROGRAM.FILE プロパティを設定できます。

set_property PROGRAM.FILE {C:/design.bit} [lindex [get_hw_devices] 0]

ハードウェア デバイスのプログラム

プログ ラ ム フ ァ イルをハード ウ ェア デバイ スに関連付けたら、 [Hardware] ビューでデバイ スを右ク リ ッ ク し、[Program Device] をク リ ッ ク して、 ハードウェア デバイスをプログラムします。 program_hw_device Tcl コマンドでも同じ操作を実行できます。 たとえば、 JTAG チェーンの 初のデバイスをプログラムするには、 次の Tcl コマンドを使用します。

program_hw_devices [lindex [get_hw_devices] 0]

進捗状況インジケーターでプログラ ムが 100% 完了したこ とが示されたら、 プログラ ムが正常に完了したかを[Hardware Device Properties] ビューの DONE のステータスで確認できます (図 2-7)。

X-Ref Target - Figure 2-6

図 2-6 : ハードウェア ターゲッ トへの接続を開いた後の [Hardware] ビュー

プログラムおよびデバッグ japan.xilinx.com 13UG908 (v2013.1) 2013 年 3 月 20 日

Page 14: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado ハードウェア セッシ ョ ンを使用した FPGA デバイスのプログラム

DONE のステータスは、 get_property Tcl コマンドでも確認できます。 たとえば、 JTAG チェーンの 初のデバイスである Kintex™-7 デバイスの DONE ステータスを確認するには、 次の Tcl コマンドを使用します。

get_property REGISTER.IR.BIT5_DONE [lindex [get_hw_devices] 0]

フラ ッシュ デバイスを使用したり、 iMPACT ツールなどの外部デバイス プログラム ツールを使用するなど、 別の方法でハード ウェア デバイスをプログラムした場合は、 ハード ウェア デバイスを右ク リ ッ ク して [Refresh Device] をクリ ッ クするか、 refresh_hw_device Tcl コマンドを実行する と、 ハード ウェア デバイスのステータスを更新できます。これによ り、 DONE ステータスだけでなく、 デバイスのさまざまなプロパティが更新されます。

ハードウェア ターゲッ ト を閉じる

ハードウェア ターゲッ ト を閉じるには、 [Hardware] ビューでハードウェア ターゲッ ト を右ク リ ッ クし、 [Close Target] をク リ ッ クします。 Tcl コマンドでも同じ操作を実行できます。 たとえば、 localhost サーバー上の xilinx_platformusb/USB21ターゲッ ト を閉じるには、 次の Tcl コマンドを使用します。

close_hw_target {localhost/xilinx_platformusb/USB21}

ハードウェア サーバーへの接続を閉じる

ハード ウェア サーバーへの接続を閉じるには、 [Hardware] ビューでハード ウェア サーバーを右ク リ ッ ク し、 [CloseServer] をク リ ッ ク します。 Tcl コマンドでも同じ操作を実行できます。 たとえば、 localhost サーバーへの接続を閉じるには、 次の Tcl コマンドを使用します。

disconnect_hw_server localhost

X-Ref Target - Figure 2-7

図 2-7 : FPGA デバイスの DONE ステータスを確認

プログラムおよびデバッグ japan.xilinx.com 14UG908 (v2013.1) 2013 年 3 月 20 日

Page 15: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

iMPACT の起動

iMPACT の起動iMPACT ツールでは、 デバイス コンフ ィギュレーシ ョ ンとファ イルの生成を実行できます。

• デバイス コンフ ィギュレーシ ョ ンでは、 JTAG ダウンロード ケーブル (ザイ リ ンクス パラレル ケーブル IV、 ザイ リ ンクス プラ ッ ト フォーム ケーブル USB、 ザイ リ ンクス プラ ッ ト フォーム ケーブル USB II、 または DigilentJTAG ケーブル) を使用して、 ザイ リ ンクス FPGA および PROM を直接コンフ ィギュレーシ ョ ンできます。

• バウンダ リ スキャン モードで実行する と、 ザイ リ ンクス FPGA、 CPLD、 PROM をコンフ ィギュレーシ ョ ンまたはプログラムできます。

• ファ イル生成では、 System ACE™ CF、 PROM、 SVF、 STAPL、 および XSVF などのプログラム ファ イルを作成できます。

iMPACT では、 次も実行できます。

• デザインのコンフ ィギュレーシ ョ ン データのリードバッ クおよび検証

• コンフ ィギュレーシ ョ ン エラーのデバッグ

• SVF および XSVF ファ イルの実行

iMPACT は、 [Generate Bitstream] コマンドが実行されているどのインプ リ メン ト済みデザインでも、 Vivado IDE から直接起動できます。 iMPACT を起動するには、 Flow Navigator で [Launch iMPACT] をク リ ッ ク します。

Vivado ツールから iMPACT を起動した場合、BIT ビッ ト ス ト リーム ファ イルが自動的に iMPACT に読み込まれます。iMPACT の詳細は、 iMPACT ヘルプを参照してください。

プログラムおよびデバッグ japan.xilinx.com 15UG908 (v2013.1) 2013 年 3 月 20 日

Page 16: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

第 3 章

デザインのデバッグ

概要FPGA デザインのデバッグは複数の段階を含む反復作業です。 複雑な問題を処理する場合と同様に、 FPGA デザインのデバッグ プロセスも、一度にデザイン全体を処理するのではなく、細分化してセクシ ョ ンごとに集中して作業するのがベス トです。 1 回に 1 モジュールを追加しながらデザイン フローを反復し、デザイン全体の中でそれを正し く機能させるよ うにするのが、実績のあるデザインおよびデバッグ手法の 1 つです。 この手法は、デザイン フローの次の段階で使用できます。

• RTL レベル デザイン シ ミ ュレーシ ョ ン

• インプリ メンテーシ ョ ン後のデザイン シ ミ ュレーシ ョ ン

• インシステム デバッグ

RTL レベル デザイン シミ ュレーシ ョ ンシ ミ ュレーシ ョ ン検証プロセス中にデザインの機能をデバッグできます。ザイ リ ンクスの Vivado® IDE では、フル デザイン シ ミ ュレーシ ョ ン機能が提供されています。 デザインの RTL シ ミ ュレーシ ョ ンを実行するには、 Vivado デザイン シ ミ ュレータを使用できます。 RTL レベル シ ミ ュレーシ ョ ン環境でデザイン デバッグを実行する と、 デザイン全体を完全に表示でき、 デザイン/デバッグ サイクルをすばやく反復実行できるなどの利点があ り ますが、 大型デザインを妥当な時間内にシ ミ ュレーシ ョ ンした り、実際のシステム環境を正確にシ ミ ュレーシ ョ ンするのが困難であるなどの制限があ り ます。 Vivado シ ミ ュレータの使用については、 『Vivado Design Suite ユーザー ガイ ド : ロジッ ク シミ ュレーシ ョ ン』 (UG937) [参照 1] を参照して ください。

インプリ メンテーシ ョ ン後のデザイン シミ ュレーシ ョ ンVivado シ ミ ュレータは、 インプ リ メンテーシ ョ ン後のデザイン シ ミ ュレーシ ョ ンにも使用できます。 Vivado シ ミ ュレータを使用してインプリ メンテーシ ョ ン後のデザインをデバッグする と、デザインのタイ ミ ング精度の高いモデルを使用できるなどの利点があ り ますが、前のセクシ ョ ンで述べたよ うに、 ランタイムが長いこ とや、システム モデルでの正確さなどの制限があ り ます。

プログラムおよびデバッグ japan.xilinx.com 16UG908 (v2013.1) 2013 年 3 月 20 日

Page 17: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

インシステム ロジック デザインのデバッグ

インシステム ロジック デザインのデバッグVivado IDE には、インプ リ メンテーシ ョ ン後の FPGA デザインをインシステムでデバッグできるロジッ ク解析機能もあ り ます。 インシステムでのデザインのデバッグには、 インプリ メンテーシ ョ ン後のデザインを、 実際のシステム環境で、システム スピードで、 タイ ミ ング精度の高いデバッグを実行できる という利点があ り ますが、シ ミ ュレーシ ョン モデルを使用した場合に比べてデバッグ信号を確認しづらい、 デザインのサイズや複雑さによってはデザイン/インプリ メンテーシ ョ ン/デバッグの反復実行のランタイムが長くなる可能性があるなどの制限があ り ます。

Vivado ツールでは複数のデバッグ方法が提供されているので、 ニーズに応じた方法でデザインをデバッグできます。Vivado IDE のインシステム ロジッ ク デバッグ機能については、 第 4 章 「インシステム ロジッ ク デザイン デバッグフロー」 で説明します。

インシステム シリアル I/O デザインのデバッグインシステム シ リアル I/O の検証およびデバッグを可能にするため、Vivado IDE にはシ リ アル I/O 解析機能が含まれています。 この機能を使用する と、 FPGA ベース システムの高速シ リアル I/O リ ンクを計測および 適化できます。Vivado シ リアル I/O 解析機能は、単純なクロ ッ クや接続の問題から複雑なマージン解析およびチャネル 適化の問題まで、 さまざまなインシステム デバッグおよび検証の問題を解決するために使用できます。Vivado シ リ アル I/O 解析機能を使用する と、ほかの外部装置を使用するのと比較して、受信信号にレシーバー イコライゼーシ ョ ンが適用された後の信号の質が計測される という利点があ り ます。 これによ り、 TX から RX へのチャネルの 適なポイン ト 、 つま り実際の正しいデータが計測されます。

Vivado ツールでは、 ギガビッ ト ト ランシーバー エンドポイン ト を実行するために使用されるデザインおよびランタイム ソフ ト ウェアを生成でき、高速シ リ アル I/O チャネルを計測し、 適化するのに利用できます。 IBERT デザインを生成する方法は、 第 7 章 「インシステム シ リ アル I/O デバッグ フロー」 を参照して ください。 ランタイム Vivadoシ リ アル I/O 解析機能の使用方法は、 第 8 章 「ハード ウェアでのシ リアル I/O デザインのデバッグ」 を参照してください。

プログラムおよびデバッグ japan.xilinx.com 17UG908 (v2013.1) 2013 年 3 月 20 日

Page 18: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

第 4 章

インシステム ロジック デザイン デバッグ フロー

概要Vivado® ツールには、実際のハードエア デバイス上でデザインのインシステム デバッグを実行する機能が多数含まれています。 インシステム デバッグ フローには、 次の 3 つの段階があ り ます。

1. プローブ : デザインでプローブする信号を特定し、 プローブ方法を指定します。

2. インプリ メンテーシ ョ ン : プローブするネッ トに追加されたデバッグ IP を含むデザインをインプリ メン ト します。

3. 解析 : デザインに含まれるデバッグ IP にアクセスし、 機能的な問題をデバッグおよび検証します。

このインシステム デバッグ フローは、前のセクシ ョ ンで説明した反復デザイン/デバッグ フローを使用するこ とを意図しています。 インシステム デバッグ フローを使用する場合は、 デザイン サイクルのできるだけ早い段階で、 デザインの一部がハード ウェアで機能するよ うにするこ とをお勧めします。 この章では、 インシステム デバッグ フローの 3 つの段階を説明し、 Vivado ロジッ ク デバッグ機能を使用してデザインがハード ウェア上で機能するよ うにする方法を示します。

インシステム デバッグ用のデザインのプローブインシステム デバッグ フローのプローブ段階には、 次の 2 つの段階があ り ます。

1. プローブする信号またはネッ ト を特定します。

2. デザインにデバッグ コアを追加する方法を決めます。

多くの場合、 プローブする信号およびそのプローブ方法は、 ほかの信号のプローブに影響します。 まず、 デザインソース コードにデバッグ IP コンポーネン ト インスタンスを手動で追加するか (HDL インスタンシエーシ ョ ン プローブ フロー )、合成済みネッ ト リ ス トに Vivado ツールで自動的にデバッグ コアが追加されるよ うにするか (ネッ ト リ スト挿入プローブ フロー ) を決定する と有益です。 表 4-1 に、 異なるデバッグ方法の利点と欠点を示します。

プログラムおよびデバッグ japan.xilinx.com 18UG908 (v2013.1) 2013 年 3 月 20 日

Page 19: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ネッ ト リスト挿入デバッグ プローブ フロー

ネッ ト リス ト挿入デバッグ プローブ フローVivado ツールでデバッグ コアを挿入する方法は、 さまざまなニーズに対応できるよ う複数あ り ます。

• シンプルなウ ィザードを使用し、 デバッグするネッ トに基づいて、 ILA (Integrated Logic Analyzer) v2.1 コアを自動的に生成および設定します。 これが一番簡単な方法です。

• [Debug] ビューを使用して、 個々のコア、 ポート、 およびパラ メーターを設定します。 [Debug] ビューを開くには、 レイアウ ト セレク ターで [Debug] を選択、 [Layout] → [Debug] をク リ ッ ク、 または [Windows] → [Debug] をク リ ッ ク します。

• Tcl デバッグ コマンドを手動で入力するか、 スク リプ ト を作成します。

これらの方法を組み合わせて利用し、 デバッグ コアを挿入およびカスタマイズするこ と もできます。

デバッグする HDL 信号のマーク

合成の前に HDL ソース レベルでデバッグする信号を特定するには、 mark_debug 制約を使用します。 HDL でデバッグ用にマーク された信号に対応するネッ ト が、 [Debug] ビューの [Debug Nets] および [Debug Cores] タブの両方で[Unassigned Debug Nets] の下に表示されます。

注記 : [Debug] ビューの [Debug Nets] タブはデバッグに選択したネッ トのネッ ト中心の表示で、 [Debug Cores] タブはコア プロパティを表示および設定可能なコア中心の表示です。

デバッグ用にネッ ト をマークする方法は、 プロジェク トが RTL ソース ベースであるか合成済みネッ ト リ ス ト ベースであるかによって異なり ます。 RTL ネッ ト リ ス ト ベースのプロジェク トの場合は、 次の方法を使用します。

• Vivado 合成を使用する場合、 VHDL および Verilog ソース ファ イルで mark_debug 制約を使用してデバッグ用のネッ ト をマークできます。 mark_debug 制約に有効な値は、 TRUE または FALSE です。 Vivado 合成では、 この制約の値を SOFT に設定するこ とはできません。

• XST (Xilinx Synthesis Technology) を使用する場合、 VHDL および Verilog ソース ファ イルで mark_debug 制約を使用してデバッグ用のネッ ト をマークできます。有効な値は TRUE または FALSE だけでなく、SOFT に設定して指定ネッ ト を 適化できます。

表 4-1 : デバッグ スト ラテジ

デバッグ目標 推奨デバッグ プログラム フロー

HDL ソース コードでデバッグ信号を特定し、 フローの後の方でデバッグをイネーブル/ディ スエーブルにでき るよ うにする

• mark_debug プロパティを使用して、 HDL でデバッグ用の信号にタグを付ける

• Set up Debug ウ ィザードを使用して、ネッ ト リ ス ト挿入プローブ フローを実行する

HDL ソース コード を変更せずに、 合成済みデザイ ン ネ ッ ト リ ス ト でデバッグ ネッ ト を特定する

• 合成済みデザイン ネッ ト リ ス トでネッ ト を右ク リ ッ クして [Mark Debug]をク リ ッ クし、 デバッグするネッ ト を選択する

• Set up Debug ウ ィザードを使用して、ネッ ト リ ス ト挿入プローブ フローを実行する

Tcl コマン ド を使用してデバッ グ プローブ フローを自動化する

• set_property Tcl コマンドを使用し、デバッグするネッ トに mark_debug プロパティを設定する

• ネッ ト リ ス ト挿入プローブ フロー用の Tcl コマンドを使用し、デバッグコアを作成してデバッグ ネッ トに接続する

HDL ソースで ILA デバッグ コア インスタンスに信号を接続する

• デバッグする HDL 信号を特定する

• HDL インスタンシエーシ ョ ン プローブ フローを使用し、ILA (IntegratedLogic Analyzer) コアを生成してインスタンシエー ト し、 デザインのデバッグ信号に接続する

プログラムおよびデバッグ japan.xilinx.com 19UG908 (v2013.1) 2013 年 3 月 20 日

Page 20: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ネッ ト リスト挿入デバッグ プローブ フロー

合成済みネッ ト リ ス ト ベースのプロジェク トの場合は、 次の方法を使用します。

• Synopsis® 社の Synplify® 合成ツールを使用する場合、 VHDL または Verilog で mark_debug および syn_keep 制約を使用するか、 SDC (Synopsys Design Constraints) ファ イルで mark_debug 制約を使用して、 デバッグ用にネッ トをマークできます。 Synplify では SOFT 値はサポート されません。 これは、 この動作が syn_keep 制約で制御されるためです。

• Mentor Graphics® 社の Precision® 合成ツールを使用する場合、 VHDL または Verilog で mark_debug 制約を使用してデバッグ用にネッ ト をマークできます。

次のセクシ ョ ンに、 Vivado 合成、 XST、 Synplify、 および Precision ソース ファ イルの構文例を示します。

Vivado 合成での mark_debug の構文例

次に、 Vivado 合成を使用する場合の VHDL および Verilog の構文例を示します。

• VHDL の構文例

attribute mark_debug : string;attribute mark_debug of char_fifo_dout: signal is "true";

• Verilog の構文例

(* mark_debug = "true" *) wire [7:0] char_fifo_dout;

XST での mark_debug の構文例

次に、 XST を使用する場合の VHDL および Verilog の構文例を示します。

• VHDL の構文例

attribute mark_debug : string;attribute mark_debug of char_fifo_dout: signal is "true";

• Verilog の構文例

(* mark_debug = "true" *) wire [7:0] char_fifo_dout;

Synplify での mark_debug の構文例

次に、 Synplify を使用する場合の VHDL、 Verilog、 SDC の構文例を示します。

• VHDL の構文例

attribute syn_keep : boolean;attribute mark_debug : string;attribute syn_keep of char_fifo_dout: signal is true;attribute mark_debug of char_fifo_dout: signal is "true";

• Verilog の構文例

(* syn_keep = "true", mark_debug = "true" *) wire [7:0] char_fifo_dout;

• SDC の構文例

define_attribute {n:char_fifo_din[*]} {mark_debug} {"true"}

重要 : SDC ソースのネッ ト名には、 接頭辞と して n: を付ける必要があ り ます。

注記 : SDC (Synopsys Design Constraints) は、 特にタイ ミ ング解析において設計の要件をツールに渡すための業界標準です。 SDC 仕様のリ ファレンス コピーは、 次の Synopsys 社のサイ トから登録をする と入手できます。

http://www.synopsys.com/Community/Interoperability/Pages/TapinSDC.aspx

プログラムおよびデバッグ japan.xilinx.com 20UG908 (v2013.1) 2013 年 3 月 20 日

Page 21: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ネッ ト リスト挿入デバッグ プローブ フロー

Precision での mark_debug の構文例

次に、 Precision を使用する場合の VHDL、 Verilog、 XCF の構文例を示します。

• VHDL の構文例

attribute mark_debug : string;attribute mark_debug of char_fifo_dout: signal is "true";

• Verilog の構文例

(* mark_debug = "true" *) wire [7:0] char_fifo_dout;

デザインの合成

次に、 Vivado IDE で [Run Synthesis] をク リ ッ クするか、 次の Tcl コマンドを使用して、 デバッグ コアを含むデザインを合成します。

launch_runs synth_1wait_on_run synth_1

synth_design Tcl コマンドを使用してデザインを合成するこ と もできます。デザインのさまざまな合成方法は、『VivadoDesign Suite ユーザー ガイ ド : 合成』 (UG901) [参照 2] を参照して ください。

合成済みデザインでデバッグ用のネッ ト をマーク

Flow Navigator で [Open Synthesized Design] をク リ ッ ク して合成済みデザインを開き、 [Debug] レイアウ ト を選択して[Debug] ビューを表示します。デバッグ用にマークした HDL 信号に対応するネッ トが、 [Debug] ビューの [UnassignedDebug Nets] フォルダーの下に表示されます (図 4-1)。

• [Netlist]、 [Schematic] などの任意のビューでネッ ト を右ク リ ッ ク し、 [Mark Debug] をク リ ッ ク します。

• 任意のビューでネッ ト を選択し、 [Debug] ビューの [Unassigned Debug Nets] フォルダーにド ラ ッグ アンド ド ロ ップします。

• Set up Debug ウ ィザードでネッ ト を選択します。 詳細は、 「Set Up Debug ウ ィザードを使用したデバッグ コアの挿入」 を参照して ください。

X-Ref Target - Figure 4-1

図 4-1 : [Debug] ビューの [Unassigned Debug Nets] フォルダー

プログラムおよびデバッグ japan.xilinx.com 21UG908 (v2013.1) 2013 年 3 月 20 日

Page 22: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ネッ ト リスト挿入デバッグ プローブ フロー

Set Up Debug ウィザードを使用したデバッグ コアの挿入

デバッグ用にネッ ト をマーク したら、 それらのネッ ト をデバッグ コアに割り当てます。 Vivado IDE の Set up Debugウ ィザードを使用する と、デバッグ コアを自動作成し、デバッグ ネッ ト をコアの入力に割り当てるこ とができます。

Set Up Debug ウ ィザードを使用してデバッグ コアを挿入するには、 次の手順に従います。

1. [Debug] ビューの [Unassigned Debug Nets] フォルダーを使用するか、 ネッ ト を直接ク リ ッ ク して、 デバッグするネッ ト を選択します (オプシ ョ ン)。

2. Vivado IDE メ イン メニューから [Tools] → [Set up Debug] をク リ ッ ク します。

3. [Next] をク リ ッ ク します。 [Specify Nets to Debug] ページが開きます (図 4-2)。

4. [Add/Remove Nets] をク リ ッ ク し、 ネッ ト を追加するか、 既存のネッ ト を削除します。

5. デバッグ ネッ ト を右ク リ ッ ク して [Select Clock Domain] をク リ ッ ク し、ネッ トの値をサンプリ ングするク ロ ッ クド メ インを変更します。

注記 : Set up Debug ウ ィザードでは、 同期エレメン トのパスを検索するこ とによ り、 デバッグ ネッ トに適切なクロ ック ド メ インが自動的に選択されます。 自動的に選択されたク ロ ッ ク ド メ インを変更する必要がある場合に、 [SelectClock Domain] ダイアログ ボッ クスを使用します。 ただし、 表に示される各ク ロ ッ ク ド メ インに対して個別の ILAv2.1 コア インスタンスが作成されるので、 注意が必要です。

6. デバッグ ネッ トの選択が完了したら、 [Next] をク リ ッ ク します。

注記 : Set up Debug ウ ィザードは、 クロ ッ ク ド メ インにつき 1 つの ILA コアを挿入します。 デバッグ用に選択されたネッ トは、 挿入された ILA v2.1 コアのプローブ ポートに自動的に割り当てられます。 ウ ィザードの 終ページはコア生成のサマリ ページで、 検出されたクロ ッ ク数、 生成および削除される ILA コアの数が示されます。

7. 内容を確認したら [Finish] をク リ ッ ク し、 合成済みデザイン ネッ ト リ ス トに ILA v2.1 コアを挿入および接続します。

X-Ref Target - Figure 4-2

図 4-2 : Set up Debug ウィザード

プログラムおよびデバッグ japan.xilinx.com 22UG908 (v2013.1) 2013 年 3 月 20 日

Page 23: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ネッ ト リスト挿入デバッグ プローブ フロー

8. これで、 デバッグ ネッ トが ILA v2.1 デバッグ コアに割り当てられました (図 4-3)。

[Debug] ビューを使用したデバッグ コアの追加とカスタマイズ

[Debug] ビューの [Debug Cores] タブでは、 Set up Debug ウ ィザードにない ILA v2.1 コアおよびデバッグ コア ハブの挿入に関する詳細な設定を実行できます。 コアの生成および削除、 デバッグ ネッ トの接続、 コア パラ メーターの設定などを実行できます。

[Debug] ビューの [Debug Cores] タブには、 次のものが表示されます。

• debug_core_hub コアに接続されているデバッグ コアのリ ス ト

• 割り当てられていないネッ トの リ ス ト

デバッグ コアおよびポートは、 ポップアップ メニューまたはビューの上部にあるツールバーから制御できます。

デバッグ コアの生成および削除

[Debug] ビューでデバッグ コアを生成するには、 ツールバーの [Create Debug Core] をク リ ッ ク します。 [Create DebugCore] ダイアログ ボッ クス (図 4-4) を使用する と、 親インスタンスおよびデバッグ コア名を変更したり、 コアのパラメーターを設定できます。 既存のデバッグ コアを削除するには、 [Debug] ビューでコアを右ク リ ッ ク し、 [Delete] をク リ ッ ク します。

X-Ref Target - Figure 4-3

図 4-3 : 割り当てられたデバッグ ネッ ト

X-Ref Target - Figure 4-4

図 4-4 : [Create Debug Core] ダイアログ ボックス

プログラムおよびデバッグ japan.xilinx.com 23UG908 (v2013.1) 2013 年 3 月 20 日

Page 24: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ネッ ト リスト挿入デバッグ プローブ フロー

デバッグ コア ポートの追加、 削除、 およびカスタマイズ

デバッグ コアの追加および削除だけでなく、 各デバッグ コアのポート を追加、 削除、 およびカスタマイズできます。デバッグ ポート を追加するには、 次の手順に従います。

1. [Debug] ビューでデバッグ コアを選択します。

2. ツールバーの [Create Debug Port] をク リ ッ ク します。 [Create Debug Port] ダイアログ ボッ クスが表示されます (図 4-5)。

3. ポート幅を指定します。

4. [OK] をク リ ッ ク します。

5. デバッグ ポート を削除するには、 [Debug] ビューでポート を右ク リ ッ ク し、 [Delete] をク リ ッ ク します。

デバッグ コアへのネッ トの接続および接続解除

ネッ トおよびバス (バス ネッ ト ) を [Schematic] または [Netlist] ビューからデバッグ コアのポート にド ラ ッグ アンドド ロ ップできます。 ネッ ト選択内容に応じてポートが自動的に拡張されます。 また、 ネッ ト またはバスを右ク リ ッ クし、 [Assign to Debug Port] をク リ ッ ク しても、 ネッ ト またはバスをデバッグ ポートに割り当てるこ とができます。

デバッ グ コアのポー ト からネ ッ ト の接続を解除するには、 ポー ト に接続されているネ ッ ト を右ク リ ッ ク し、[Disconnect Net] をク リ ッ ク します。

X-Ref Target - Figure 4-5

図 4-5 : [Create Debug Port] ダイアログ ボックス

プログラムおよびデバッグ japan.xilinx.com 24UG908 (v2013.1) 2013 年 3 月 20 日

Page 25: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ネッ ト リスト挿入デバッグ プローブ フロー

デバッグ コアのプロパティの変更

各デバッグ コアには、 コアの動作をカスタマイズするパラ メーターがあ り ます。debug_core_hub デバッグ コアのプロパティの変更については、 31 ページの 「デバッグ コア ハブの BSCAN ユーザー スキャン チェーンの変更」 を参照して ください。

ILA v2.1 デバッグ コアのプロパティ も変更できます。 たとえば、 ILA v2.1 デバッグ コアでキャプチャされるサンプルの数を変更するには、 次の手順に従います (図 4-6)。

1. [Debug ] ビューで ILA コア (u_ila_0 など) を選択します。

2. [Instance Properties] ビューで [Debug Core Options] タブをク リ ッ ク します。

3. [C_DATA_DEPTH] のド ロ ップダウン リ ス トから、 キャプチャするサンプル数を選択します。 X-Ref Target - Figure 4-6

図 4-6 : ILA v2.1 コアのデータの深さを変更

プログラムおよびデバッグ japan.xilinx.com 25UG908 (v2013.1) 2013 年 3 月 20 日

Page 26: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ネッ ト リスト挿入デバッグ プローブ フロー

Tcl コマンドを使用したデバッグ コア挿入

Set up Debug ウ ィザードの使用に加え、 Tcl コマンドを使用してデバッグ コアを作成、 接続、 および合成済みデザイン ネッ ト リ ス トに挿入できます。

1. ILA v2.1 コアのブラ ッ ク ボッ クスを作成します。

create_debug_core u_ila_0 labtools_ila_v2

2. ILA v2.1 コアのデータ深さプロパティを設定します。

set_property C_DATA_DEPTH 1024 [get_debug_cores u_ila_0]

3. ILA v2.1 コアの CLK ポートの幅を 1 に設定し、 適切なクロ ッ ク ネッ トに接続します。

set_property port_width 1 [get_debug_ports u_ila_0/CLK]connect_debug_port u_ila_0/CLK [get_nets [list clk ]]

注記 : ILA v2.1 コアの CLK ポートは、 create_debug_core コマンドで自動的に作成されるので、 改めて作成する必要はあ り ません。

4. PROBE0 ポートの幅を、 そのポートに接続するネッ トの数に設定します。

set_property port_width 1 [get_debug_ports u_ila_0/PROBE0]

注記 : ILA v2.1 コアの 初のプローブ ポート (PROBE0) は、 create_debug_core コマンドで自動的に作成されるので、 改めて作成する必要はあ り ません。

5. PROBE0 ポート を、 そのポートに接続するネッ トに接続します。

connect_debug_port u_ila_0/PROBE0 [get_nets [list A_or_B]]

6. (オプシ ョ ン) 必要なだけプローブ ポート を作成し、 幅を設定して、 デバッグするネッ トに接続します。

create_debug_port u_ila_0 PROBEset_property port_width 2 [get_debug_ports u_ila_0/PROBE1]connect_debug_port u_ila_0/PROBE1 [get_nets [list {A[0]} {A[1]}]]

7. (オプシ ョ ン) デバッグ コアを合成し、 合成済みデザインのほかの部分と共にフロアプランできるよ うにします。

implement_debug_core [get_debug_cores]

これらのコマンドおよびその他の関連コマンドの詳細は、 Tcl コンソールで 「help -category ChipScope」 と入力して ください。

デザインのインプリ メンテーシ ョ ン

デバッグ コアを挿入、 接続、 カスタマイズしたら、 デザインをインプ リ メン ト します。 詳細は、 「デバッグ コアを含むデザインのインプリ メンテーシ ョ ン」 を参照して ください。

プログラムおよびデバッグ japan.xilinx.com 26UG908 (v2013.1) 2013 年 3 月 20 日

Page 27: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

HDL インスタンシエーシ ョ ン プローブ フローの概要

HDL インスタンシエーシ ョ ン プローブ フローの概要HDL インスタンシエーシ ョ ン プローブ フローでは、 HDL デザイン ソースで直接デバッグ コア コンポーネン ト をカスタマイズ、 インスタンシエート、および接続します。 表 4-2 に、 このフローでサポート される新しいデバッグ コアを示します。 表 4-3 に、 このフローでサポート されるレガシ デバッグ コアを示します。

ICON、VIO、および ILA v1.x コアは、これらのコアを含むレガシ デザインとの互換性のため、Vivado ツールでサポート されています。

ただし、 これらのコアは Vivado IP カタログには含まれていません。 ISE CORE Generator を使用して生成したレガシデバッグ コア ネッ ト リ ス ト ファ イル (.ngc)、 合成テンプレート ファ イル (.v または .vhd)、 および制約ファイル(.xdc) を Vivado プロジェ ク ト のソース ファ イルと して含める必要があ り ます。 また、 これらのファ イルのプロパティ を適切に設定して、 Vivado ツール フローで機能するよ うにする必要があ り ます。 次に、 Vivado プロジェク トにレガシ ICON、 ILA、 および VIO ファ イルを追加する例を示します。

• .ngc および .v ファ イルを追加します。

add_files -norecurse {./icon_v1_06a.ngc} add_files -norecurse {./ila_v1_05a.ngc} add_files -norecurse {./vio_v1_05a.ngc} add_files -norecurse {./icon_v1_06a.v} add_files -norecurse {./ila_v1_05a.v} add_files -norecurse {./vio_v1_05a.v}

表 4-2 : HDL インスタンシエーシ ョ ン プローブ フローで使用可能な Vivado IP カタログに含まれるデバッグ コア

デバッグ コア バージ ョ ン 説明 解析ツール

ILA (Integrated Logic Analyzer) v2.1 ハード ウ ェア イベン ト を ト リ ガーし、データをシステム速度でキャプチャするために使用するデバッグ コア

Vovado ロジッ ク解析

VIO (Virtual Input/Output) v2.0 デザイ ンの信号を JTAG チェーン スキャン レー トで監視または制御するために使用するデバッグ コア

Vovado ロジッ ク解析

表 4-3 : HDL インスタンシエーシ ョ ン プローブ フローで使用可能なレガシ ChipScope Pro デバッグ コア

デバッグ コア バージ ョ ン 説明 解析ツール

ICON (Integrated Controller) v1.06a ILA 1.05a および VIO 1.05a コアを JTAGチェーンに接続するためのデバッグ コア ハブ

ChipScope Pro Analyzer

VIO (Virtual Input/Output) v1.05a デザイ ンの信号を JTAG チェーン スキャン レー ト で監視または制御するために使用するデバッグ コア (ICON コアへの接続が必要)

ChipScope Pro Analyzer

ILA (Integrated Logic Analyzer) v1.05a ハード ウェア イベン ト を ト リ ガーし、データをシステム速度でキャプチャするために使用するデバッグ コア (ICONコアへの接続が必要)

ChipScope Pro Analyzer

ILA (Integrated Logic Analyzer) v2.0 ハード ウェア イベン ト を ト リ ガーし、データをシステム速度でキャプチャするために使用するデバッグ コア

Vovado ロジッ ク解析

プログラムおよびデバッグ japan.xilinx.com 27UG908 (v2013.1) 2013 年 3 月 20 日

Page 28: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

HDL インスタンシエーシ ョ ン デバッグ プローブ フロー

• .xdc ファ イルをインポート し、 合成で使用されないよ うに指定します。

import_files -fileset constrs_1 -force -norecurse {./icon_v1_06a.xdc} import_files -fileset constrs_1 -force -norecurse {./ila_v1_05a.xdc} import_files -fileset constrs_1 -force -norecurse {./vio_v1_05a.xdc} set_property used_in_synthesis false [get_files icon_v1_06a.xdc] set_property used_in_synthesis false [get_files vio_v1_05a.xdc] set_property used_in_synthesis false [get_files ila_v1_05a.xdc]

• レガシ ILA コアの .xdc ファ イルのスコープを ILA コア モジュールのセル参照に設定します。

set_property SCOPED_TO_REF {ila_v1_05a} [get_files ila_v1_05a.xdc]

ILA v2.1 コアには、 ILA v1.x コアと比較して次のよ う な利点があ り ます。

• Vivado ロジッ ク解析で機能します。 詳細は、 33 ページの 「ハードウェアでのロジッ ク デザインのデバッグ」 を参照して ください。

• ICON コアの挿入および接続は必要あ り ません。

HDL インスタンシエーシ ョ ン デバッグ プローブ フローHDL インスタンシエーシ ョ ン フローの手順は、 次のとおりです。

1. プローブする信号用に、適切な数のプローブ ポート を含む ILA v2.1 デバッグ コアをカスタマイズして生成します。

2. デバッグ コアを含むデザインを合成します。

3. (オプシ ョ ン) デバッグ コアのプロパティを変更します。

4. デバッグ コアを含むデザインをインプ リ メン ト します。

デバッグ コアのカスタマイズおよび生成

Flow Navigator で [Project Manager] → [IP Catalog] をク リ ッ ク し、必要なデバッグ コアを選択してカスタマイズします。

デバッグ コアは、 IP カタログの [Debug & Verification] → [Debug] カテゴ リにあ り ます (図 4-7)。 デバッグ コアをカス

タマイズするには、 IP コアをダブルク リ ッ クするか、 右ク リ ッ ク して [Customize IP] をク リ ッ ク します。

• ILA v2.1 コアのカスタマイズの詳細は、LogiCORE IP Integrated Logic Analyzer (ILA) v2.0 データシート (DS875) を参照して ください。

• VIO v2.0 コアのカスタマイズの詳細は、LogiCORE IP Virtual Input/Output (VIO) v2.0 製品ガイ ド (PG159) を参照して ください。

コアをカスタマイズしたら、 [Generate] ボタンをク リ ッ ク します。 カスタマイズされたデバッグ コアが生成され、[Sources] ビューに追加されます。

プログラムおよびデバッグ japan.xilinx.com 28UG908 (v2013.1) 2013 年 3 月 20 日

Page 29: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

HDL インスタンシエーシ ョ ン デバッグ プローブ フロー

デバッグ コアのインスタンシエーシ ョ ン

デバッグ コアを生成したら、 HDL ソースにインスタンシエート し、 デバッグ用にプローブする信号に接続します。次に、 Verilog HDL ソース ファ イルの ILA v2.1 インスタンスの例を示します。

ila_v2_1_0 i_ila ( .CLK(clk), .PROBE0(counterA), .PROBE1(counterB), .PROBE2(counterC), .PROBE3(counterD), .PROBE4(A_or_B), .PROBE5(B_or_C), .PROBE6(C_or_D), .PROBE7(D_or_A));

注記 : ILA v2.1 コア インスタンスでは、レガシ VIO および ILA v1.x コアとは異なり、ICON コア インスタンスへの接続は必要あ り ません。 その代わりに debug_core_hub デバッグ コアが合成済みデザイン ネッ ト リ ス トに自動的に挿入され、 ILA v2.1 コアと JTAG スキャン チェーンの間が接続されます。

デバッグ コアを含むデザインの合成

次に、 Vivado IDE で [Run Synthesis] をク リ ッ クするか、 次の Tcl コマンドを使用して、 デバッグ コアを含むデザインを合成します。

launch_runs synth_1wait_on_run synth_1

synth_design Tcl コマンドを使用してデザインを合成するこ と もできます。デザインのさまざまな合成方法は、『VivadoDesign Suite ユーザー ガイ ド : 合成』 (UG901) [参照 2] を参照して ください。

X-Ref Target - Figure 4-7

図 4-7 : IP カタログのデバッグ コア

プログラムおよびデバッグ japan.xilinx.com 29UG908 (v2013.1) 2013 年 3 月 20 日

Page 30: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

HDL インスタンシエーシ ョ ン デバッグ プローブ フロー

合成済みデザインでのデバッグ コアの表示

デザインを合成したら、 合成済みデザインを開いてデバッ グ コアを表示し、 プロパテ ィ を変更できます。 FlowNavigator で [Open Synthesized Design] を ク リ ッ ク して合成済みデザイ ンを開き、 [Debug] レ イアウ ト を選択して[Debug] ビューを表示します。 debug_core_hub に接続されている ILA v2.1 コアが表示されます (図 4-8)。

X-Ref Target - Figure 4-8

図 4-8 : debug_core_hub と ILA v2.1 コアが表示された [Debug] ビュー

プログラムおよびデバッグ japan.xilinx.com 30UG908 (v2013.1) 2013 年 3 月 20 日

Page 31: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

HDL インスタンシエーシ ョ ン デバッグ プローブ フロー

デバッグ コア ハブの BSCAN ユーザー スキャン チェーンの変更

debug_core_hub の BSCAN ユーザー スキャン チェーン インデッ クスを表示および変更するには、 [Debug] ビュー でdebug_core_hub を選択し、[Instance Properties] ビューで [Debug Core Options] をク リ ッ ク して、[C_USER_SCAN_CHAIN]の値を変更します (図 4-9)。

重要 : レガシ ICON、 ILA、 または VIO v1.x コ ア と ILA v2.1 コ アを両方使用する場合は、 debug_core_hub のC_USER_SCAN_CHAIN プロパティ を ICON v1.x コアのバウンダ リ スキャン チェーン設定と競合しない値に設定する必要があ り ます。 そのよ うにしないと、 インプリ メンテーシ ョ ン フローの後の方でエラーが発生します。

X-Ref Target - Figure 4-9

図 4-9 : debug_core_hub のユーザー スキャン チェーン プロパティの変更

プログラムおよびデバッグ japan.xilinx.com 31UG908 (v2013.1) 2013 年 3 月 20 日

Page 32: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

デバッグ コアを含むデザインのインプリ メンテーシ ョ ン

デバッグ コアを含むデザインのインプリ メンテーシ ョ ンVivado ツールでは、 debug_core_hub デバッグ コアは、 初ブラ ッ クボッ クス と して作成されます。 これらのコアは、配置配線を実行する前にインプリ メン ト しておく必要があ り ます。

デバッグ コアのインプリ メンテーシ ョ ン

デバッグ コアのインプ リ メンテーシ ョ ンは、デザインをインプリ メン トする と自動的に実行されますが、フロアプランまたはタイ ミ ング解析用に手動でインプリ メン トするこ と もできます。 コアを手動でインプ リ メン トするには、次のいずれかを実行します。

• [Debug] ビューのツールバーの [Implement Debug Cores] をク リ ッ ク します。

• [Debug] ビューでデバッグ コアを右ク リ ッ ク し、 [Implement Debug Cores] をク リ ッ ク します。

各ブラ ッ ク ボッ クス デバッグ コアが生成され、 合成されます。 この処理には、 多少時間がかかる場合があ り ます。この間、 進捗状況を示すダイアログ ボッ クスが表示されます。 デバッグ コアのインプ リ メンテーシ ョ ンが完了すると、 デバッグ コアのブラ ッ ク ボッ クスが処理され、 生成されたインスタンスにアクセスできます。

デザインのインプリ メンテーシ ョ ン

デバッグ コアを含むデザインをインプ リ メン トするには、 Vivado IDE で [Run Implementation] をク リ ッ クするか、 次の Tcl コマンドを使用します。

launch_runs impl_1wait_on_run impl_1

インプリ メンテーシ ョ ン コマンド opt_design、 place_design、 および route_design を使用して、 デザインをインプ リ メン トするこ と も可能です。デザインのさまざまなインプリ メンテーシ ョ ン方法は、『Vivado Design Suite ユーザー ガイド : インプリ メンテーシ ョ ン』 (UG904) [参照 3] を参照してください。

プログラムおよびデバッグ japan.xilinx.com 32UG908 (v2013.1) 2013 年 3 月 20 日

Page 33: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

第 5 章

ハードウェアでのロジック デザインのデバッグ

概要デザインにデバッグ コアを追加したら、 ランタイム ロジッ ク解析機能を使用して、 ハード ウェア上でデザインをデバッグできます。 デザインに含まれるデバッグ コアによって、 次の 2 つのツールを使用できます。

• ChipScope™ Pro Analyzer : ICON v1.x、 ILA v1.x、 VIO v1.x、 および IBERT v2.x デバッグ コアで使用

• Vivado® ロジッ ク解析機能 : ILA v2.1、 VIO v2.0、 および IBERT v3.x デバッグ コアで使用

デザインに ICON/ILA/VIO v1.x と ILA/VIO v2.x デバッグ コアの両方が含まれている場合は、 ChipScope Pro Analyzerツールと Vivado ロジッ ク解析機能を同時に使用して、同じハード ウェア ターゲッ ト ボード上で動作している同じデザインをデバッグできます。 詳細は、 34 ページの 「Vivado ロジッ ク解析を使用したデザインのデバッグ」 を参照して ください。

ChipScope Pro Analyzer を使用したデザインのデバッグChipScope Pro Analyzer ツールは、 デザインに含まれる ICON v1.x、 ILA v1.x、 VIO v1.x デバッグ コアにアクセスするために使用します。 ChipScope Pro Analyzer ツールがインス トールされている場合は、 [Generate Bitstream] が実行されているインプリ メン ト済みデザインに対して、 Vivado IDE から直接起動できます。

重要 : ChipScope Pro および iMPACT ツールは Vivado Design Suite インス トールには含まれません。 これらのツールはISE Design Suite ラボ ツールと して提供されており、http://japan.xilinx.com/downloads から無償でダウンロードできます。

ChipScope Pro Analyzer を起動するには、 次のいずれかの操作を実行します。

• メ イン メニューから [Flow ] → [Launch ChipScope Analyzer] をク リ ッ ク します。

• Tcl コンソールから launch_chipscope_analyzer Tcl コマンドを実行します。

ビッ ト ス ト リーム ファ イル (BIT) と CDC ネッ ト接続名ファイルが、自動的に ChipScope Pro Analyzer で読み込まれます。 ChipScope Pro Analyzer の詳細は、 次のサイ トから ChipScope Pro Analyzer の資料を参照してください。

http://japan.xilinx.com/support/index.html/content/xilinx/ja/supportNav/design_tools/chipscope_pro.html

プログラムおよびデバッグ japan.xilinx.com 33UG908 (v2013.1) 2013 年 3 月 20 日

Page 34: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado ロジック解析を使用したデザインのデバッグ

Vivado ロジック解析を使用したデザインのデバッグVivado ロジッ ク解析機能は、デザインに含まれる ILA v2.1 デバッグ コアにアクセスするために使用します。 Vivado ロジッ ク解析機能を使用するには、 Flow Navigator で [Program and Debug] → [Open Hardware Session] をク リ ッ ク します。

デザインのデバッグ手順は、 次のとおりです。

1. ハード ウェア ターゲッ トに接続し、 FPGA デバイスを .bit ファ イルでプログラムします。

2. ILA デバッグ コアの ト リ ガー条件とプローブ比較条件を設定します。

3. ILA デバッグ コアを ト リ ガー待機状態にします。

4. 波形ビューアーで ILA デバッグ コアからのデータを表示します。

ハードウェア ターゲッ トに接続して FPGA デバイスをプログラムデバッグの前に FPGA デバイスをプログラムする手順は、 第 2 章の 「Vivado ハード ウェア セッシ ョ ンを使用したFPGA デバイスのプログラム」 で説明されている手順と同じです。 ILA v2.1 および VIO v2.0 コアを含む .bit ファ イルでデバイスをプログラムする と、 [Hardware] ビューにデバイスのスキャンで検出された ILA および VIO コアが表示されます (図 5-1)。

ILA コアの使用に関する詳細は、 「計測のための ILA コアの設定」 を参照して ください。 VIO コアの使用に関する詳細は、 「計測のための VIO コアの設定」 を参照して ください。

X-Ref Target - Figure 5-1

図 5-1 : ILA および VIO デバッグ コアが表示された [Hardware] ビュー

プログラムおよびデバッグ japan.xilinx.com 34UG908 (v2013.1) 2013 年 3 月 20 日

Page 35: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

計測のための ILA コアの設定

計測のための ILA コアの設定デザインに追加した ILA コアは、 [Hardware] ビューのターゲッ ト デバイスの下に表示されます。 ILA コアが表示されない場合は、 デバイスを右ク リ ッ ク して [Refresh Hardware] をク リ ッ ク します。 FPGA デバイスが再度スキャンされ、[Hardware] ビューの表示が更新されます。

注記 : FPGA デバイスをプログラムまたは更新しても ILA コアが表示されない場合は、デバイスが正しい .bit ファイルでプログラムされているか、 インプリ メン ト済みデザインに ILA v2.1 コアが含まれているかを確認してください。

ILA コア (図 5-1 では hw_ila_1) を選択する と、 [ILA Core Properties] ビューにプロパテ ィ が表示されます。 [DebugProbes] ビューの [ILA Cores] タブでも、 ILA コアのいくつかの設定を変更できます。

• ト リ ガー条件

• ト リ ガー位置

• データの深さ

ILA コアのト リガー条件の設定[Debug Probes] ビ ューの [ILA Cores] タブにあ る [Trigger Cond] 列または [ILA Core Properties] ビ ューの [TriggerCondition] プロパティを使用して、 ト リガー条件を [AND] または [OR] に設定します。 [AND] に設定する と、 すべての ILA プローブ比較が一致した場合に ト リガー イベン トが発生します。 [OR] に設定する と、 ILA プローブ比較のいずれかが一致した場合に ト リガー イベン トが発生します。set_property Tcl コマンドを使用しても ILA コアの ト リガー条件を変更できます。

set_property CONTROL.TRIGGER_CONDITION AND [get_hw_ilas hw_ila_1]

ILA コアのト リガー位置の設定[Debug Probes] ビューの [ILA Cores] タブにある [Trigger Pos] 列または [ILA Core Properties] ビューの [Trigger Position]プロパティを使用して、キャプチャ データ バッファーのト リ ガー マークの位置を設定します。 ト リガー位置は、キャプチャ データ バッファーの任意のサンプル番号に設定できます。たとえば、サンプル数が 1024 のキャプチャ データバッファーの場合は次のよ うにな り ます。

• サンプル番号 0 は、 キャプチャ データ バッファーの 初 (一番左) のサンプルに対応します。

• サンプル番号 1023 は、 キャプチャ データ バッファーの 後 (一番右) のサンプルに対応します。

• サンプル番号 511 および 512 は、 キャプチャ データ バッファーの中央のサンプルに対応します。

set_property Tcl コマンドを使用しても ILA コアの ト リガー位置を変更できます。

set_property CONTROL.TRIGGER_POSITION 512 [get_hw_ilas hw_ila_1]

プログラムおよびデバッグ japan.xilinx.com 35UG908 (v2013.1) 2013 年 3 月 20 日

Page 36: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ILA プローブ情報の記述

ILA コアのデータ深さの設定

[Debug Probes] ビューの [ILA Cores] タブにある [Data Depth] 列または [ILA Core Properties] ビューの [Capture data depth]プロパティを使用して、 ILA コアのキャプチャ データ バッファーのデータ深さを設定します。データ深さは、 1 から大データ深さの間の 2 のべき乗に設定できます。

注記 : ネッ ト リ ス ト挿入プローブ フローでデザインに追加した ILA コアのキャプチャ バッファーの 大データ深さを設定する方法は、 25 ページの 「デバッグ コアのプロパティの変更」 を参照してください。

set_property Tcl コマンドを使用しても ILA コアのデータ深さを変更できます。

set_property CONTROL.DATA_DEPTH 512 [get_hw_ilas hw_ila_1]

ILA プローブ情報の記述[Debug Probes] ビューの [ILA Cores] タブには、 ILA v2.1 コアを使用してプローブされるデザインのネッ トに関する情報が表示されます。この情報はデザインから抽出され、通常は .ltx とい う拡張子のデータ ファ イルに保存されます。

ILA プローブ ファ イルは、インプ リ メンテーシ ョ ン プロセス中に自動的に作成されますが、write_debug_probes Tcl コマンドを使用してデバッグ プローブ情報をファイルに書き出すこ と もできます。

1. 合成済みデザインまたはネッ ト リ ス ト デザインを開きます。

2. Tcl コマンド write_debug_probes filename.ltx を実行します。

ILA プローブ情報の読み出しILA プローブ ファ イルの名前が debug_nets.ltx で、 デバイスに関連付けられているビッ ト ス ト リーム プログラム ファ イル (.bit) と同じディ レク ト リにある場合、 自動的に FPGA ハード ウェア デバイスに関連付けられます。

プローブ ファ イルの場所を指定するには、 次の手順に従います。

1. [Hardware] ビューで FPGA デバイスを選択します。

2. [Hardware Device Properties] ビューの [Probes file] でファイルの場所を設定します。

3. [Apply] をク リ ッ ク して変更を適用します。

プローブ ファ イルの場所は、 次の set_property Tcl コマンドを使用しても設定できます。

set_property PROBES.FILE {C:/myprobes.ltx} [lindex [get_hw_devices] 0]

プログラムおよびデバッグ japan.xilinx.com 36UG908 (v2013.1) 2013 年 3 月 20 日

Page 37: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ILA プローブの表示

ILA プローブの表示[Debug Probes] ビューの [ILA Cores] タブには、 各 ILA コアに関連付けられているプローブが表示されます。 FPGAハード ウェア デバイスにプローブ ファ イルを関連付けたら、ハード ウェア デバイスを右ク リ ッ ク し、[Refresh Device]をク リ ッ ク して、 [Debug Probes] ビューの [ILA Cores] タブを更新します (図 5-2)。

ILA プローブのト リガー比較値の設定ILA v2.1 コアのプローブ入力における等価条件または不等価条件の検出には、 ILA プローブ ト リ ガー コンパレータが使用されます。 ト リガー条件は、各 ILA プローブ ト リ ガー コンパレータの結果を AND または OR で統合した結果です。 詳細は、 35 ページの 「ILA コアの ト リガー条件の設定」 を参照してください。 ILA プローブの比較値を指定するには、 [Debug Probes] ビューの [ILA Cores] タブで [Compare Value] セルを選択し、 [Compare Value] ダイアログ ボックスを開きます (図 5-3)。

X-Ref Target - Figure 5-2

図 5-2 : [Debug Probes] ビューの [ILA Cores] タブ

X-Ref Target - Figure 5-3

図 5-3 : ILA プローブの [Compare Value] ダイアログ ボックス

プログラムおよびデバッグ japan.xilinx.com 37UG908 (v2013.1) 2013 年 3 月 20 日

Page 38: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ILA プローブの比較値の設定

ILA プローブの比較値の設定[Compare Value] ダイアログ ボッ クスでは、 次の 3 つのフ ィールドを設定できます。

1. [Operator] : 比較演算子を指定します。 有効な値は、 次のとおりです。

° == (等価)

° != (不等価)

° < (小なり )

° <= (以下)

° > (大なり )

° >= (以上)

2. [Radix] : 値の基数を指定します。 有効な値は、 次のとおりです。

° [B] (2 進数)

° [H] (16 進数)

° [O] (8 進数)

° [A] ASCII

° [U] (符号なし 10 進数)

° [S] (符号付き 10 進数)

3. [Value] : ILA v2.1 デバッグ コアのプローブ入力に接続されているデザインのネッ ト上の実際の値と、[Operator] で指定した演算子を使用して比較する値を指定します。 [Radix] の設定によって、 次の値を指定できます。

° 2 進数

- 0 : 論理 0

- 1 : 論理 1

- X : ドン ト ケア

- R : 立ち上がり遷移

- F : 立ち下がり遷移

- B : 立ち上がり遷移または立ち下がり遷移のいずれか

- N : 遷移なし (現在のサンプル値は前の値と同じ )

° 16 進数

- X : ドン ト ケア

- 0 ~ 9 : 0 ~ 9 の値

- A ~ F : 10 ~ 15 の値

° 8 進数

- X : ドン ト ケア

- 0 ~ 7 : 0 ~ 7 の値

° ASCII

- ASCII 文字で構成される文字列

° 符号なし 10 進数

- 正の整数値

° 符号付き 10 進数

- 整数値

プログラムおよびデバッグ japan.xilinx.com 38UG908 (v2013.1) 2013 年 3 月 20 日

Page 39: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ILA コアのト リガーの供給

ILA コアのト リガーの供給ILA コアに ト リガーを供給する方法には、 次の 2 つのモードがあ り ます。

• [Run Trigger] : [Hardware] ビューまたは [Debug Probes] ビューで ILA コアを選択し、ツールバーの [Run Trigger] をク リ ッ クする と、ILA コアで ト リガー条件およびプローブ比較値で定義された ト リガー イベン ト を検出できる状態になり ます。

• [Run Trigger Immediate] : [Hardware] ビューまたは [Debug Probes] ビューで ILA コアを選択し、 ツールバーの [RunTrigger Immediate] をク リ ッ クする と、 ILA コア ト リ ガー条件およびプローブ比較値の設定にかかわらず、すぐにILA コアが ト リガーされます。 このコマンドは、 ILA コアのプローブ入力にある任意の値をキャプチャする場合に有益です。

ILA コアを右ク リ ッ ク し、 [Run Trigger] または [Run Trigger Immediate] をク リ ッ ク しても、 同じ操作を実行できます (図 5-4)。

ILA コアのト リガーの停止ILA コアの ト リガーを停止するには、[Hardware] ビューまたは [Debug Probes] ビューで ILA コアを選択し、ツールバーの [Stop Trigger] をク リ ッ ク します。 ILA コアを右ク リ ッ ク し、 [Stop Trigger] をク リ ッ ク しても、 同じ操作を実行できます (図 5-4)。

X-Ref Target - Figure 5-4

図 5-4 : ILA コアのト リガー コマンド

プログラムおよびデバッグ japan.xilinx.com 39UG908 (v2013.1) 2013 年 3 月 20 日

Page 40: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ILA コアのステータスの表示

ILA コアのステータスの表示[Hardware] ビューの [Status] 列には、 各 ILA コアのステータスが示されます (表 5-1)。

ILA コアからのデータを波形ビューアーで表示ILA コアでキャプチャされたデータが Vivado IDE にアップロード される と、波形ビューアーに表示されます。 ILA コアでキャプチャされたデータの表示に波形ビューアーを使用する場合の詳細は、第 6 章 「波形ウ ィンド ウを使用したILA プローブ データの表示」 を参照して ください。

ILA コアでキャプチャされたデータの保存および復元ILA コアから直接アップロード されたキャプチャ データを表示するだけでなく、ファ イルに保存して、ファ イルからデータを読み込むこ と もできます。

ILA コアでキャプチャされたデータのファイルへの保存

ILA コアでキャプチャされたデータをアップロード してファ イルに保存するには、 次の Tcl コマンドを使用します。

write_hw_ila_data my_hw_ila_data_file.zip [upload_hw_ila_data hw_ila_1]

この Tcl コマンドによ り、 ILA コアでキャプチャされたデータがアップロード され、 my_hw_ila_data_file.zipとい う アーカイブ ファ イルに保存されます。 このアーカイブ ファ イルには、 波形データベース ファ イル、 波形コンフ ィギュレーシ ョ ン ファ イル、波形 CSV (Comma Separated Value) ファ イル、およびデバッグ プローブ ファ イルが含まれます。

表 5-1 : ILA コアのステータス

ILA コアのステータス 説明

IDLE ILA コアはアイ ドル状態であ り、 ト リガー待機状態になっていません。

ARMED ILA コアはト リガー待機状態であ り、 ト リガー条件が満たされるのを待機中です。 ト リ ガー位置 0 で ト リガー待機状態にされたステートです。

CAPTURING ILA コアはデータをデータ キャプチャ バッファーに取り込み中です。 ト リガー位置が 0 よ り大きい値に設定されている場合、 このステートはト リガー待機状態であるこ と も表します。

FULL ILA コア キャプチャ バッファーがフルであ り、 ホス トに表示するよ う アップロード中です。

プログラムおよびデバッグ japan.xilinx.com 40UG908 (v2013.1) 2013 年 3 月 20 日

Page 41: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

計測のための VIO コアの設定

ILA コアでキャプチャされたデータのファイルからの読み込み

ILA コアでキャプチャされたデータをファイルから読み込むには、 次の Tcl コマンドを使用します。

display_hw_ila_data [read_hw_ila_data my_hw_ila_data_file.zip]

この Tcl コマンドによ り、保存されている ILA コア キャプチャ データが読み込まれ、波形ウ ィンド ウに表示されます。

注記 : ILA データ波形ウ ィンド ウの波形コンフ ィギュレーシ ョ ン設定 (仕切り、 マーカー、 色、 プローブの基数など)も、 ILA キャプチャ データ アーカイブ ファ イルに保存されます。 保存されている ILA データを表示する と、 保存されている波形コンフ ィギュレーシ ョ ン設定が使用されます。

計測のための VIO コアの設定デザインに追加した VIO コアは、 [Hardware] ビューのターゲッ ト デバイスの下に表示されます。 VIO コアが表示されない場合は、 デバイスを右ク リ ッ ク して [Refresh Hardware] をク リ ッ ク します。 FPGA デバイスが再度スキャンされ、 [Hardware] ビューの表示が更新されます。

注記 : FPGA デバイスをプログラムまたは更新しても VIO コアが表示されない場合は、デバイスが正しい .bit ファイルでプログラムされているか、 インプリ メン ト済みデザインに VIO v2.0 コアが含まれているかを確認してください。

VIO コア (図 5-5 では hw_vio_1) を選択する と、 [VIO Core Properties] ビューにプロパティが表示されます。

VIO コアが Vivado IDE と同期しな くなるこ とがあ り ます。 VIO ステータス インジケーターの解釈方法については、40 ページの 「ILA コアのステータスの表示」 を参照して ください。

VIO コアの値を読み出したり書き込んだりするには、 オブジェク ト プロパティを使用します。

• VIO 入力プローブの値を読み出すには、 まず hw_vio オブジェク ト を VIO コアの値で更新し、 hw_vio オブジェクトのプロパティ値を取得します。 詳細は、 42 ページの 「VIO コアの入力プローブ」 を参照してください。

• VIO 出力プローブの値を書き込むには、 まず hw_probe オブジェク トのプロパティ値を設定し、 これらのプロパティ値をハード ウェアの VIO コアに確定して、値をコアの出力プローブ ポートに書き込みます。詳細は、44 ページの 「VIO コアの出力プローブ」 を参照して ください。

X-Ref Target - Figure 5-5

図 5-5 : [Hardware] ビューに表示される VIO コア

プログラムおよびデバッグ japan.xilinx.com 41UG908 (v2013.1) 2013 年 3 月 20 日

Page 42: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

VIO コアのステータスの表示

VIO コアのステータスの表示VIO コアには、 入力プローブが 0 個以上、 出力プローブが 0 個以上あり ます (少なく と も入力プローブまたは出力プローブが 1 個以上必要)。 [Hardware] ビューの示される VIO コアのステータスは、 VIO コアの出力プローブの現在の状態を示します。 表 5-2 に、 VIO コアのステータス と必要な操作を示します。

VIO コアの入力プローブVIO コアの入力プローブは、実際のハードウェアの FPGA で実行されているデザインからの値を読み出すために使用します。VIO 入力プローブは通常、テス ト中のデザインのステータス インジケーターと して使用されます。図 5-6 に、VIO 入力プローブの表示例を示します。

表 5-2 : VIO コアのステータスと必要なユーザー操作

VIO のステータス 説明 必要なユーザー操作

OK – Outputs Reset VIO コアの出力は Vivado IDE と同期しており、 出力は初期 ( リセッ ト )状態です。

なし

OK VIO コアの出力は Vivado IDE と同期していますが、 出力は初期 ( リセッ ト ) 状態ではあ り ません。

なし

Outputs out-of-sync VIO コアの出力が Vivado IDE と同期していません。

次の 2 つのいずれかの操作を実行する必要があ り ます。

• [Hardware] ビューで VIO コアを右ク リ ッ ク して [Commit VIO Core Outputs] をク リ ッ ク し、Vivado IDEからの値を VIO コアに書き込みます。

• [Hardware] ビューで VIO コアを右ク リ ッ ク して [Refresh Input and Output Values from VIO Core] を クリ ッ ク し、Vivado IDE を VIO コア出力プローブ ポートの現在の値でアップデート します。

X-Ref Target - Figure 5-6

図 5-6 : [Debug Probes] ビューの VIO 入力

プログラムおよびデバッグ japan.xilinx.com 42UG908 (v2013.1) 2013 年 3 月 20 日

Page 43: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

VIO コアの入力プローブ

[VIO Cores] タブを使用した VIO 入力の読み出し

VIO 入力プローブは、 [Debug Probes] ビューの [VIO Cores] タブに表示されます。各入力プローブが表で個別の行に表示されます。 VIO 入力プローブの値は、 [Value] 列に示されます (図 5-6)。 VIO コアの入力値は、 VIO コアの更新レートに基づいて、 定期的にアップデート されます。 更新レート を変更するには、 [VIO Properties] ビューで [Refresh Rate(ms)] の値を変更するか、 次の Tcl コマンドを使用します。

set_property CORE_REFRESH_RATE_MS 1000 [get_hw_vios hw_vio_1]

注記 : 更新レート を 0 に設定する と、VIO コアからのすべての自動更新が停止します。また、小さい値を設定する と、Vivado IDE の動作が遅くなるこ とがあ り ます。 更新レートは 500ms 以上に設定するこ とをお勧めします。

VIO 入力プローブの値を手動で読み出すには、 Tcl コマン ド を使用し ます。 た と えば、 VIO コ ア hw_vio_1 のBUTTON_IBUF とい う入力プローブの値を更新して読み出すには、 次の Tcl コマンドを使用します。

refresh_hw_vio [get_hw_vios {hw_vio_1}]get_property INPUT_VALUE [get_hw_probes BUTTON_IBUF]

VIO 入力の表示タイプと基数の設定

VIO 入力プローブの表示タイプは、[Debug Probes] ビューの [VIO Cores] タブで VIO 入力プローブを右ク リ ッ ク し、次のいずれかを選択します。

• [Text] : 入力をテキス ト フ ィールド と して表示します。 これが、 VIO 入力プローブ ベクター (幅が 2 ビッ ト以上)の唯一の表示タイプです。

• [LED] : 入力を LED グラフ ィ ッ クで表示します。 この表示タイプは、 VIO 入力プローブ スカラーおよび VIO 入力プローブ ベクターの個々のエレメン トにのみ選択可能です。 High および Low の値を、 次の 4 つの色のいずれかに設定できます。

° グレー (オフ)

° 赤

° 緑

° 青

VIO 入力プローブの表示タイプを [Text] に設定する と、基数を変更できます。これには、[Debug Probes] ビューの [VIOCores] タブで VIO 入力プローブを右ク リ ッ ク し、 次のいずれかを選択します。

• [Radix] → [Binary] : 基数を 2 進数に設定します。

• [Radix] → [Octal] : 基数を 8 進数に設定します。

• [Radix] → [Hex] : 基数を 16 進数に設定します。

• [Radix] → [Unsigned] : 基数を符号なしの 10 進数に設定します。

• [Radix] → [Signed] : 基数を符号付きの 10 進数に設定します。

VIO 入力プローブの基数は、 Tcl コマンドでも設定できます。 たとえば、 BUTTON_IBUF とい う VIO 入力プローブの基数を変更するには、 次の Tcl コマンドを使用します。

set_property INPUT_VALUE_RADIX HEX [get_hw_probes BUTTON_IBUF]

プログラムおよびデバッグ japan.xilinx.com 43UG908 (v2013.1) 2013 年 3 月 20 日

Page 44: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

VIO コアの出力プローブ

VIO 入力アクテ ィビテ ィの監視と制御

VIO 入力プローブから値を読み出すだけでな く、 VIO 入力プローブのアクテ ィ ビテ ィ を監視する こ と もできます。Vivado IDE の周期的なアップデートの間に VIO 入力の値が変化する と、 それが示されます。

VIO 入力プローブのアクティビティは、 [Debug Probes] ビューの [VIO Cores] タブの [Activity] 列に示されます。

• 上向き矢印 : アクティビティ持続間隔の間に、 入力プローブの値が 0 から 1 に遷移したこ とを示します。

• 下向き矢印 : アクティビティ持続間隔の間に、 入力プローブの値が 1 から 0 に遷移したこ とを示します。

• 上下矢印 : アクティビティ持続間隔の間に、 入力プローブの値が 1 から 0 に、 および 0 から 1 に少なく と も 1 回以上遷移したこ とを示します。

入力アクティ ビティ ステータスの表示が持続される期間を変更するには、 [Debug Probes] ビューの [VIO Cores] タブで VIO 入力プローブを右ク リ ッ クし、 次のいずれかを選択します。

• [Activity Persistence] → [Infinite] : アクティビティ値をユーザーがリセッ トするまで累積し、 保持します。

• [Activity Persistence] → [Long (80 samples)] : アクティビティ値を長い期間累積し、 保持します。

• [Activity Persistence] → [Short (8 samples)] : アクティビティ値を短い期間累積し、 保持します。

Tcl コマンドでもアクティビティ持続間隔を設定できます。 たとえば、 BUTTON_IBUF とい う VIO 入力プローブのアクティビティ持続間隔を長い期間に変更するには、 次の Tcl コマンドを使用します。

set_property ACTIVITY_PERSISTENCE LONG [get_hw_probes BUTTON_IBUF]

コアのすべての入力プローブのアクティビティを リセッ トするには、[Hardware] ビューで VIO コアを右ク リ ッ ク して[Reset All Input Activity] をク リ ッ ク します。 次の Tcl コマンドでも同じ操作を実行できます。

reset_hw_vio_activity [get_hw_vios {hw_vio_1}]

VIO コアの出力プローブVIO コアの出力プローブは、実際のハードウェアの FPGA で実行されているデザインに値を書き込むために使用します。 VIO 出力プローブは通常、 テス ト中のデザインの低バンド幅の制御信号と して使用されます。 図 5-7 に、 VIO 出力プローブの表示例を示します。

X-Ref Target - Figure 5-7

図 5-7 : [Debug Probes] ビューの VIO 出力

プログラムおよびデバッグ japan.xilinx.com 44UG908 (v2013.1) 2013 年 3 月 20 日

Page 45: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

VIO コアの出力プローブ

[VIO Cores] タブを使用した VIO 出力の書き込み

VIO 出力プローブは、 [Debug Probes] ビューの [VIO Cores] タブで設定できます。各出力プローブが表で個別の行に示されます。 VIO 出力プローブの値は、 [Value] 列に示されます (図 5-7)。 VIO コアの出力値は、 [Value] 列に新しい値を入力する とアップデート されます。[Value] 列をク リ ッ クする と、プルダウン ボッ クスが表示されます。[Value] フ ィールドに適切な値を入力し、 [OK] をク リ ッ ク します。

Tcl コマンドを使用して、 VIO コアに新しい値を書き込むこ と もできます。 たとえば、 基数が 2 進数に設定されている vio_slice5_fb_2 とい う VIO 出力プローブに 2 進数 11111 を書き込むには、 次の Tcl コマンドを使用します。

set_property OUTPUT_VALUE 11111 [get_hw_probes vio_slice5_fb_2]commit_hw_vio [get_hw_probes {vio_slice5_fb_2}]

VIO 出力の表示タイプと基数の設定

VIO 出力プローブの表示タイプは、[Debug Probes] ビューの [VIO Cores] タブで VIO 出力プローブを右ク リ ッ ク し、次のいずれかを選択します。

• [Text] : 入力をテキス ト フ ィールド と して表示します。 これが、 VIO 出力プローブ ベクター (幅が 2 ビッ ト以上)の唯一の表示タイプです。

• [Toggle Button] : 出力を ト グル ボタン グラフ ィ ッ クで表示します。 この表示タイプは、 VIO 出力プローブ スカラーおよび VIO 出力プローブ ベクターの個々のエレ メン トにのみ選択可能です。

VIO 出力プローブの表示タイプを [Text] に設定する と、基数を変更できます。これには、[Debug Probes] ビューの [VIOCores] タブで VIO 出力プローブを右ク リ ッ ク し、 次のいずれかを選択します。

• [Radix] → [Binary] : 基数を 2 進数に設定します。

• [Radix] → [Octal] : 基数を 8 進数に設定します。

• [Radix] → [Hex] : 基数を 16 進数に設定します。

• [Radix] → [Unsigned] : 基数を符号なしの 10 進数に設定します。

• [Radix] → [Signed] : 基数を符号付きの 10 進数に設定します。

VIO 出力プローブの基数は、 Tcl コマンドでも設定できます。 たとえば、 vio_slice5_fb_2 とい う VIO 出力プローブの基数を 16 進数に設定するには、 次の Tcl コマンドを使用します。

set_property OUTPUT_VALUE_RADIX HEX [get_hw_probes vio_slice5_fb_2]

VIO コアの出力プローブのリセッ ト

VIO v2.0 コアでは、 各出力プローブ ポートの初期値を指定できます。 VIO コアの出力プローブ ポート をこれらの初期値にリセッ トするには、[Hardware] ビューで VIO コアを右ク リ ッ ク し、[Reset VIO Core Outputs] をク リ ッ ク します。Tcl コマンドで VIO コアの出力を リセッ トするには、 次のコマンドを使用します。

reset_hw_vio_outputs [get_hw_vios {hw_vio_1}]

注記 : VIO 出力プローブを初期値にリセッ トする と、出力プローブの値が Vivado IDE と同期しなくなる可能性があ ります。 この状況の対処方法は、 「VIO コアの出力値を Vivado IDE に同期」 を参照してください。

プログラムおよびデバッグ japan.xilinx.com 45UG908 (v2013.1) 2013 年 3 月 20 日

Page 46: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ラボ環境での Vivado ロジック解析の使用

VIO コアの出力値を Vivado IDE に同期

VIO 出力を リセッ ト、FPGA を再プログラム、または現在のインスタンスが開始する前に Vivado ツールの別のインスタンスで出力値を設定する と、VIO コアの出力プローブが Vivado IDE と同期しな くな り ます。 この場合、VIO ステータスが 「Outputs out-of-sync」 とな り、 次のいずれかの操作を実行する必要があ り ます。

• [Hardware] ビューで VIO コアを右ク リ ッ ク して [Commit VIO Core Outputs] をク リ ッ ク し、Vivado IDE からの値をVIO コアに書き込みます。 次の Tcl コマンドでも同じ操作を実行できます。

commit_hw_vio [get_hw_vios {hw_vio_1}]

• [Hardware] ビューで VIO コアを右ク リ ッ ク して [Refresh Input and Output Values from VIO Core] をク リ ッ ク し、Vivado IDE を VIO コア出力プローブ ポートの現在の値でアップデート します。 次の Tcl コマンドでも同じ操作を実行できます。

refresh_hw_vio -update_output_values 1 [get_hw_vios {hw_vio_1}]

ラボ環境での Vivado ロジック解析の使用Vivado ロジッ ク解析機能は Vivado IDE の一部なので、 ラボ環境で Vivado ロジッ ク解析機能を使用してターゲッ トボード上で実行されているデザインをデバッグするには、 次のいずれかを実行する必要があ り ます。

• ラボ マシンに Vivado IDE をインス トールして実行します。

• ラボ マシンに 新の ISE ラボ ツールをインス トールし、ローカル マシン上の Vivado ロジッ ク解析機能を使用して Vivado CSE サーバー (vcse_server) のリモート インスタンスに接続します。

ラボ マシンに Vivado IDE をインス トールして実行

ラボ マシンに Vivado IDE をインス トールする際の要件は、 『Vivado Design Suite ユーザー ガイ ド : リ リース ノート、インス トールおよびライセンス』 (UG973) [参照 4] を参照して ください。

重要 : Vivado ロジッ ク解析機能は、Vivado CSE サーバー (Windows プラッ ト フォームでは vcse_server.exe、Linux プラ ット フォームでは vcse_server ) とのみ互換性があ り、 ISE ラボ ツールの一部と してインス トールされるレガシ CSE サーバー (Windows プラッ ト フォームでは cse_server.exe、Linux プラッ ト フォームでは cse_server) とは互換性があり ません。レガシ CSE サーバー アプリケーシ ョ ンは、 レガシ ChipScope Pro Analyzer ツールとのみ互換性があ り ます。 Vivado ロジッ ク解析機能で元のプロジェク トから必要なのは、 ビッ ト ス ト リーム プログラム ファイル (.bit) とプローブ ファイル (.ltx) の 2 つのみです。

ラボ マシンで Vivado ロジッ ク解析機能を使用するには、 次の手順に従います。

1. ラボ マシンに Vivado IDE をインス トールします。

2. ビッ ト ス ト リーム プログラム ファ イル (.bit) とプローブ ファ イル (.ltx) をラボ マシンにコピーします。

3. Vivado IDE を GUI モードで起動します。

4. [File] → [Open Hardware Session] をク リ ッ クするか、 [Tcl Console] ビューで 「open_hw」 と入力してハードウェアセッシ ョ ンを開きます。

5. 「ハード ウェア ターゲッ トに接続して FPGA デバイスをプログラム」 の手順に従って、 ラボ マシンに接続されているターゲッ ト ボードへの接続を開きます。 ラボ マシンにコピーしたビッ ト ス ト リーム プログラム ファ イル(.bit) でターゲッ ト FPGA デバイスをプログラムします。

6. 「計測のための ILA コアの設定」 以降の手順に従って、 ハード ウェア上でデザインをデバッグします。 「ILA プローブ情報の読み出し」 の手順では、 ラボ マシンにコピーしたプローブ ファ イル (.ltx) を使用します。

プログラムおよびデバッグ japan.xilinx.com 46UG908 (v2013.1) 2013 年 3 月 20 日

Page 47: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado ロジック解析機能と ChipScope Pro Analyzer の同時使用

ラボ マシンで動作中のリモート CSE サーバーへの接続

ラボ マシンにネッ ト ワークで接続されている場合、 リモート ラボ マシン上で動作中の CSE サーバーに接続してターゲッ ト ボードに接続できます。 Vivado ロジッ ク解析機能を使用してラボ マシンで動作中の Vivado CSE サーバー(Windows プラ ッ ト フォームでは vcse_server.exe、Linux プラ ッ ト フォームでは vcse_server) に接続するには、次の手順に従います。

1. ラボ マシンに 新の Vivado Design Suite をインス トールします。

重要 : Vivado ツールのハード ウェア セッシ ョ ン機能 (Vivado ロジッ ク解析、 Vivado シ リ アル I/O 解析など) を実行するのに、 ソフ ト ウェア ラ イセンスは必要あ り ません。

2. リモート ラボ マシンで vcse_server アプリケーシ ョ ンを起動します。ラボ マシンが 64 ビッ ト Windows マシンで、Vivado Design Suite がデフォルトの場所にインス トールされている場合、 次のコマンドを使用します。

C:\Xilinx\Vivado\vivado_release.version\bin\vcse_server.bat -port 60001

3. ラボ マシン以外のマシンで Vivado IDE を GUI モードで起動します。

4. 「ハード ウェア ターゲッ トに接続して FPGA デバイスをプログラム」 の手順に従って、 ラボ マシンに接続されているターゲッ ト ボードへの接続を開きます。 ただしこ こでは、 localhost 上の Vivado CSE サーバーに接続するのではなく、 ラボ マシンのホス ト名を使用します。

5. 「計測のための ILA コアの設定」 以降の手順に従って、 ハード ウェア上でデザインをデバッグします。

Vivado ロジック解析機能と ChipScope Pro Analyzer の同時使用Vivado ロジッ ク解析機能と ChipScope Pro Analyzer ツールを同時に使用して、 同じターゲッ ト ボード上の同じデザインをデバッグできます。 この使用方法は、 次のよ うな場合に重要です。

• デザインに ILA v2.1 デバッグ コアと VIO v1.x デバッグ コアが含まれており、 それぞれに Vivado ロジッ ク解析機能と ChipScope Pro Analyzer を使用してアクセスする必要がある場合

• デザインに含まれる ILA v2.1 デバッグ コアに Vivado ロジッ ク解析機能を使用してアクセスし、 ChipScope ProAnalyzer ツールのシステム モニターを使用して XADC の温度または電圧センサーを監視する場合

• 7 シ リーズ デバイス と 6 シ リーズ デバイスを、それぞれに Vivado ロジッ ク解析機能と ChipScope Pro Analyzer を使用して同時にデバッグする必要がある場合

このセクシ ョ ンでは、デザインに ILA v2.1 デバッグ コアと VIO v1.x デバッグ コアが含まれている 初のケースについて説明します。 この機能を活用するには、 次のよ うにする必要があ り ます。

1. 各 JTAG コン ト ローラー コアに個別の BSCAN ユーザー スキャン チェーンを使用します。

2. 各ランタイム アプリ ケーシ ョ ンに対して個別の CSE サーバーを起動します。

3. Vivado ロジッ ク解析機能と ChipScope Pro Analyzer ツールを使用します。

個別の BSCAN ユーザー スキャン チェーンの使用

ILA v2.1 コアを BSCANE2 プリ ミ ティブに接続する debug_core_hub コアと、VIO v1.x コアを BSCANE2 コアに接続する ICON v1.x コアが、 異なるユーザー スキャン チェーンを使用してコンフ ィギュレーシ ョ ンされているこ とを確認します。詳細は、第 4 章の 「デバッグ コア ハブの BSCAN ユーザー スキャン チェーンの変更」 を参照して ください。

プログラムおよびデバッグ japan.xilinx.com 47UG908 (v2013.1) 2013 年 3 月 20 日

Page 48: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado ロジック解析機能と ChipScope Pro Analyzer の同時使用

個別の CSE サーバーの設定

ターゲッ ト ボードに接続されているマシンで、2 つの CSE サーバー インスタンスが動作しているこ とを確認します。Windows 64 ビッ ト プラ ッ ト フォームでは、 2 つの cmd ウ ィンド ウで次を実行します。

1. ラボ マシンに 新の Vivado Design Suite および ISE ラボ ツールがインス トールされているこ とを確認します。この例では、 ISE ラボ ツールおよび Vivado Design Suite がどちらもデフォルトの場所にインス トールされている場合を示します。

2. 初の cmd ウ ィンド ウを開き、 次を実行して Vivado CSE サーバーを起動します。

C:\Xilinx\Vivado\vivado_release.version\bin\vcse_server.bat –port 60001

3. 2 つ目の cmd ウ ィンド ウを開き、 次を実行してレガシ CSE サーバーを起動します。

C:\Xilinx\ise_release.version\LabTools\LabTools\bin\nt64\cse_server –port 50001

ポー ト 60001上の Vivado CSE サーバーは Vivado ロジッ ク解析機能で、 ポー ト 50001 上のレガシ CSE サーバーはChipScope Pro Analyzer ツールで使用されます。

Vivado ロジック解析機能と ChipScope Pro Analyzer ツールの実行

デザインと CSE サーバーを設定したら、次の手順に従って Vivado ロジッ ク解析機能と ChipScope Pro Analyzer ツールを使用してデザインをデバッグします。

1. Vivado IDE を GUI モードで起動します。

2. Flow Navigator で [Open Hardware Session] をク リ ッ クするか、 [File] → [Open Hardware Server] をク リ ッ ク します。

3. localhost:60001 上の Vivado CSE サーバーに接続し、 ターゲッ ト デバイスをプログラムします。 詳細は、 第 2 章の 「Vivado ハード ウェア セッシ ョ ンを使用した FPGA デバイスのプログラム」 を参照してください。

4. [Flow] → [Launch ChipScope Analyzer] をク リ ッ ク して ChipScope Pro Analyzer を起動します。

5. ChipScope Pro Analyzer ツールで [JTAG Chain] → [Server Host Setting] をク リ ッ ク します。サーバーを localhost:50001に変更します (図 5-8)。

6. ChipScope Pro Analyzer で、 [JTAG Chain] メニューの適切なケーブルを使用してターゲッ ト ボードに接続します。

X-Ref Target - Figure 5-8

図 5-8 : ChipScope Pro Analyzer ツールでサーバー ホスト設定を変更

プログラムおよびデバッグ japan.xilinx.com 48UG908 (v2013.1) 2013 年 3 月 20 日

Page 49: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado ロジック解析機能と ChipScope Pro Analyzer の同時使用

7. 各解析ツールを使用して、 それぞれのデバッグ コアにアクセスします (図 5-9)。

X-Ref Target - Figure 5-9

図 5-9 : Vivado ロジック解析機能と ChipScope Pro Analyzer ツールを使用してデザインをデバッグ

プログラムおよびデバッグ japan.xilinx.com 49UG908 (v2013.1) 2013 年 3 月 20 日

Page 50: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ハードウェア セッシ ョ ンの Tcl オブジェク トおよびコマンド

ハードウェア セッシ ョ ンの Tcl オブジェク トおよびコマンドテス ト中のハード ウェアにアクセスするには、Tcl コマンドを使用できます。ハード ウェアには、階層第一級 Tcl オブジェク トがあ り ます (表 5-3)。

ハード ウェア セッシ ョ ン コマンドの詳細は、Tcl コンソールで「help -category hardware」と入力して ください。

hw_server の Tcl コマンド

表 5-4 に、 ハードウェア サーバーにアクセスするために使用する Tcl コマンドを示します。

表 5-3 : ハードウェア セッシ ョ ンの Tcl オブジェク ト

Tcl オブジェク ト 説明

hw_server CSE サーバーを参照するオブジェク ト 。 各 hw_server オブジェクトには、1 つまたは複数の hw_target オブジェク ト を関連付けることができます。

hw_target JTAG ケーブルまたはボードを参照するオブジェク ト。各 hw_target オブジェク トには、1 つまたは複数の hw_device オブジェク ト を関連付けるこ とができます。

hw_device ザイ リ ンクス FPGA デバイスなど、 JTAG チェーンに含まれるデバイスを参照するオブジェ ク ト 。 各 hw_device オブジェ ク ト には、1 つまたは複数の hw_ila オブジェク ト を関連付けるこ とができます。

hw_ila ザイ リ ンクス FPGA デバイスに含まれる ILA コアを参照するオブジェ ク ト 。 各 hw_ila オブジェク トには、 1 つの hw_ila_data オブジェク トのみを関連付けるこ とができます。各 hw_ila オブジェク トには、1 つまたは複数の hw_probe オブジェク ト を関連付けるこ とができます。

hw_ila_data ILA デバッグ コアからアップロード されたデータを参照するオブジェク ト。

hw_probe ILA デバッグ コアのプローブ入力を参照するオブジェク ト 。

hw_vio ザイ リ ンク ス FPGA デバイスに含まれる VIO コアを参照するオブジェク ト。

表 5-4 : hw_server の Tcl コマンド

Tcl コマンド 説明

connect_hw_server ハード ウェア サーバーへの接続を開きます。

current_hw_server 現在のハード ウェア サーバーを取得または設定します。

disconnect_hw_server ハード ウェア サーバーへの接続を閉じます。

get_hw_servers CSE サーバーのハード ウェア サーバー名のリ ス ト を取得します。

refresh_hw_server ハード ウェア サーバーへの接続を更新します。

プログラムおよびデバッグ japan.xilinx.com 50UG908 (v2013.1) 2013 年 3 月 20 日

Page 51: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ハードウェア セッシ ョ ンの Tcl オブジェク トおよびコマンド

hw_target の Tcl コマンド

表 5-5 に、 ハード ウェア ターゲッ トにアクセスするために使用する Tcl コマンドを示します。

hw_device の Tcl コマンド

表 5-6 に、 ハードウェア デバイスにアクセスするために使用するhw_device の Tcl コマンドを示します。

hw_ila の Tcl コマンド

表 5-7 に、 ILA v2.1 デバッグ コアにアクセスするために使用する hw_ila の Tcl コマンドを示します。

表 5-5 : hw_target の Tcl コマンド

Tcl コマンド 説明

close_hw_target ハード ウェア ターゲッ ト を閉じます。

current_hw_target 現在のハード ウェア ターゲッ ト を取得または設定します。

get_hw_targets ハード ウェア サーバーのハード ウェア ターゲッ ト名の リ ス ト を取得します。

open_hw_target ハード ウェア サーバー上のハード ウェア ターゲッ トへの接続を開きます。

refresh_hw_target ハード ウェア ターゲッ トへの接続を更新します。

表 5-6 : hw_device の Tcl コマンド

Tcl コマンド 説明

current_hw_device 現在のハード ウェア デバイスを取得または設定します。

get_hw_device ターゲッ トのハード ウェア デバイスのリ ス ト を取得します。

program_hw_device ザイ リ ンクス FPGA デバイスをプログラムします。

refresh_hw_device ハード ウェア デバイスを更新します。

表 5-7 : hw_ila の Tcl コマンド

Tcl コマンド 説明

current_hw_ila 現在のハード ウェア ILA を取得または設定します。

get_hw_ilas ターゲッ トのハード ウェア ILA のリ ス ト を取得します。

reset_hw_ila hw_ila の制御プロパティをデフォルト値にリセッ ト します。

run_hw_ila hw_ila を ト リガー待機状態にします。

wait_on_hw_ila すべてのデータがキャプチャされるまで待機します。

プログラムおよびデバッグ japan.xilinx.com 51UG908 (v2013.1) 2013 年 3 月 20 日

Page 52: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ハードウェア セッシ ョ ンの Tcl オブジェク トおよびコマンド

hw_ila_data の Tcl コマンド

表 5-8 に、 キャプチャされた ILA データにアクセスするために使用する hw_ila_data の Tcl コマンドを示します。

hw_probe の Tcl コマンド

表 5-9 に、 キャプチャされた ILA データにアクセスするために使用する Tcl コマンドを示します。

hw_vio の Tcl コマンド

表 5-10 に、 VIO コアにアクセスするために使用する Tcl コマンドを示します。

表 5-8 : hw_ila_data の Tcl コマンド

Tcl コマンド 説明

current_hw_ila_data 現在のハード ウェア ILA データを取得または設定します。

display_hw_ila_data hw_ila_data を波形ビューアーに表示します。

get_hw_ila_data hw_ila_data オブジェク トの リ ス ト を取得します。

read_hw_ila_data ファ イルから hw_ila_data を読み込みます。

upload_hw_ila_data ILA コアでのデータのキャプチャを停止し、 キャプチャ されたデータをアップロード します。

write_hw_ila_data hw_ila_data をファ イルに記述します。

表 5-9 : hw_probe の Tcl コマンド

Tcl コマンド 説明

get_hw_probes ハード ウェア プローブのリ ス ト を取得します。

表 5-10 : hw_vio の Tcl コマンド

Tcl コマンド 説明

commit_hw_vio ハード ウェア プローブの OUTPUT_VALUE プロパティ値を VIOコアに書き込みます。

get_hw_vios ハード ウェア VIO のリ ス ト を取得します。

refresh_hw_vios ハードウェア プローブの INPUT_VALUE および ACTIVITY_VALUEプロパティを VIO コアから読み出した値でアップデート します。

reset_hw_vio_activity 指定のハード ウ ェア VIO オブジェ ク ト に関連付けられているハード ウェア プローブに対し、 ACTIVITY_VALUE プロパティをリセッ ト します。

reset_hw_vio_outputs VIO コアの出力を初期値にリセッ ト します。

プログラムおよびデバッグ japan.xilinx.com 52UG908 (v2013.1) 2013 年 3 月 20 日

Page 53: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ハードウェア セッシ ョ ンの Tcl コマンドの使用

ハードウェア セッシ ョ ンの Tcl コマンドの使用次のよ うなシステムにアクセスする Tcl コマンド スク リプ トの例を示します。

• localhost:60001 上の Vivado CSE サーバーを介してアクセス可能な 1 つの KC705 ボードの Digilent JTAG-SMT1ケーブル (シ リアル番号 12345)

• デザインに ILA コアが 1 つ含まれており、 KC705 ボード上の XC7K325T デバイスで実行

• ILA コアに counter[3:0] とい うプローブが含まれる

Tcl コマンド スクリプ ト例

# Connect to the Digilent Cable on localhost:60001connect_hw_server -host localhost -port 60001current_hw_target [get_hw_targets */digilent_plugin/SN:12345]open_hw_target

# Program and Refresh the XC7K325T Devicecurrent_hw_device [lindex [get_hw_devices] 0]refresh_hw_device -update_hw_probes false [lindex [get_hw_devices] 0]set_property PROGRAM.FILE {C:/design.bit} [lindex [get_hw_devices] 0]set_property PROBES.FILE {C:/design.ltx} [lindex [get_hw_devices] 0]program_hw_devices [lindex [get_hw_devices] 0]refresh_hw_device [lindex [get_hw_devices] 0]

# Set Up ILA Core Trigger Position and Probe Compare Valuesset_property CONTROL.TRIGGER_POSITION 512 [get_hw_ilas hw_ila_1]set_property COMPARE_VALUE.0 eq4'b0000 [get_hw_probes counter]

# Arm the ILA trigger and wait for it to finish capturing datarun_hw_ila hw_ila_1wait_on_hw_ila hw_ila_1

# Upload the captured ILA data, display it, and write it to a filecurrent_hw_ila_data [upload_hw_ila_data hw_ila_1]display_hw_ila_data [current_hw_ila_data]write_hw_ila_data my_hw_ila_data [current_hw_ila_data]

プログラムおよびデバッグ japan.xilinx.com 53UG908 (v2013.1) 2013 年 3 月 20 日

Page 54: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

第 6 章

波形ウィンドウを使用した ILA プローブ データの表示

概要Vivado® Integrated Design Environment (IDE) シ ミ ュレータを開く と、 波形ウ ィ ン ド ウを使用してデザインを解析し、コードをデバッグできます。 Vivado ロジッ ク解析では、 [Hardware] ビューや [ILA Debug Probes] ビューなどでもデザイン データを確認できます。

波形コンフ ィギュレーシ ョ ンと波形ウィンドウ波形コンフ ィギュレーシ ョ ンと WCFG ファ イルはどちら もカスタマイズされた波形のリ ス ト を指しますが、この 2 つには概念的な違いがあ り ます。

• 波形コンフ ィギュレーシ ョ ンはオブジェク トであ り、 メモ リに読み込んで操作します。

• WCFG ファ イルは、 ディ スクに保存される波形コンフ ィギュレーシ ョ ンの形式です。

波形コンフ ィギュレーシ ョ ンには、 デフォル ト で 「Untitled #」 とい う名前が付きます。 名前は、 波形ウ ィ ン ド ウのビューに表示されます。

プログラムおよびデバッグ japan.xilinx.com 54UG908 (v2013.1) 2013 年 3 月 20 日

Page 55: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

波形コンフ ィギュレーシ ョ ンと波形ウィンドウ

WCFG ファイルを開く

ILA 波形ウ ィンド ウで使用する WCFG ファ イルを開くには、 次の手順に従います。

重要 : WCFG ファ イルを開く前に、ILA プローブを含む波形ウ ィンド ウを開いておく必要があ り ます。そ うでないと、エラーが発生します。

1. [File] → [Open Waveform Configuration] をク リ ッ ク します。

[Open Waveform Configuration] ダイアログ ボッ クスが開きます。

2. WCFG ファ イルを選択します。

3. [OK] をク リ ッ ク します。

ILA プローブ データが、 開いた WCFG ファ イルに含まれる波形コンフ ィギュレーシ ョ ンを使用して表示されます。

注記 : これで、元の波形コンフ ィギュレーシ ョ ンと、新し く開いた波形コンフ ィギュレーシ ョ ンを使用して、同じデータが 2 つの波形ウ ィンド ウに表示されます。 どちらのウ ィンド ウでも、 基になる波形データは同じです。 この後新しく開いた波形コンフ ィギュレーシ ョ ンを使用する場合は、元の波形コンフ ィギュレーシ ョ ンを使用した波形ウ ィンドウを閉じても問題あ り ません。

注記 : ハード ウェア プローブ オブジェク トへの参照を含む WCFG ファ イルを開く と、 これらのオブジェク トは無視され、 読み込まれた波形コンフ ィギュレーシ ョ ンには含まれません。

波形コンフ ィギュレーシ ョ ンの保存

波形コンフ ィギュレーシ ョ ンを WCFG ファ イルに保存するには、 [File] → [Save Waveform Configuration As] をク リ ック し、 波形コンフ ィギュレーシ ョ ンの名前を指定します。

重要 : 波形コンフ ィギュレーシ ョ ンを WCFG ファ イルに保存する際は、 <project>/.Xil ディ レク ト リ以外のディレク ト リ を選択して ください。 このディ レク ト リは一時ディ レク ト リであ り、 その中身は Vivado を終了する と削除されます。 このディ レク ト リに WCFG ファ イルを保存する と、 そのファイルも削除されます。

プログラムおよびデバッグ japan.xilinx.com 55UG908 (v2013.1) 2013 年 3 月 20 日

Page 56: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

波形コンフ ィギュレーシ ョ ンの信号およびバス

波形コンフ ィギュレーシ ョ ンの信号およびバス 波形ウ ィンド ウのスカラーおよびベクターの ILA プローブは、 波形のデザイン オブジェク トです。

ILA プローブの横には、そのタイプを示すアイコンが表示されます。 アイコン上にマウス ポインターを置く と、詳細が表示されます。 図 6-1 に、 波形コンフ ィギュレーシ ョ ンの ILA プローブの例を示します。

ILA プローブの ID、 名前、 値が表示されています。 ツールバー ボタンをク リ ッ クする と、 次のセクシ ョ ンで説明するナビゲーシ ョ ン機能を使用できます。

X-Ref Target - Figure 6-1

図 6-1 : 波形の ILA プローブ

プログラムおよびデバッグ japan.xilinx.com 56UG908 (v2013.1) 2013 年 3 月 20 日

Page 57: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

波形コンフ ィギュレーシ ョ ンの ILA プローブ

ズーム機能の使用

波形コンフ ィギュレーシ ョ ンのズーム機能には、 ツールバー ボタンを使用します。

波形をク リ ッ ク して Ctrl キーを押しながらマウス ホイールを使用する と、 オシロスコープのダイヤル操作のよ うにズーム表示をするこ と もできます。

[Waveform Options] スライ ドアウト

[Waveforms Options] ボタン をク リ ッ クする と、 [Waveforms Options] スライ ドアウ トが開きます (図 6-2)。

設定できるオプシ ョ ンは次のとおりです。

• [General] : デフォルトの基数を設定します。

• [Show signal indices] : このチェッ クボッ クスをオンにする と、 信号番号の間に短い定義文が表示されます。

• [Colors] : 波形内のオブジェク トの色を設定します。

波形コンフ ィギュレーシ ョ ンの ILA プローブILA プローブのスカラー (信号) およびベクター (バス) を波形コンフ ィギュレーシ ョ ン ファ イルに追加し、 そのコンフ ィギュレーシ ョ ンを WDB ファ イルに保存できます。 ILA コアからのプローブを波形ウ ィン ド ウに表示するには、メニュー コマンドを使用するか、 または Tcl コンソールで Tcl コマンドを使用します。

波形コンフ ィギュレーシ ョ ンに ILA プローブを追加するには、 次の手順に従います。

1. [Debug Probes] ビューの [ILA Cores] タブで ILA コアを展開し、 プローブを選択します。

2. 右ク リ ッ ク して [Add Probes to Waveform] をク リ ッ ク します。

波形を比較するため、同じ信号またはバスのコピーを波形コンフ ィギュレーシ ョ ンに追加できます。同じ信号またはバスのコピーは、 グループや仮想バスなど、 波形コンフ ィギュレーシ ョ ンの任意の位置に配置できます。

X-Ref Target - Figure 6-2

図 6-2 : [Waveform Options] スライドアウト

プログラムおよびデバッグ japan.xilinx.com 57UG908 (v2013.1) 2013 年 3 月 20 日

Page 58: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

波形コンフ ィギュレーシ ョ ンのカスタマイズ

信号またはバスのコピーを追加するには、 次の手順に従います。

1. 波形コンフ ィギュレーシ ョ ンで信号またはバスを選択します。

2. [Edit] → [Copy] をク リ ッ クするか、 または Ctrl + C キーを押します。

信号名がク リ ップボードにコピーされます。

3. [Paste] をク リ ッ クするか、 Ctrl +V キーを押します。

これで信号またはバスが波形コンフ ィギュレーシ ョ ンにコピーされます。 ド ラ ッグ アンド ド ロ ップでこの信号やバスを移動させるこ とができます。

波形コンフ ィギュレーシ ョ ンのカスタマイズ表 6-1 にリ ス ト されている機能を使用して、 波形コンフ ィギュレーシ ョ ンをカスタマイズできます。 この表には機能が簡単に説明されており、 機能名をク リ ッ クするその機能を説明するセクシ ョ ンに移動できます。

カーソル

カーソルは、 サンプル位置を一時的に示すために使用します。 波形エッジ間の距離 (サンプル数) を計測する場合には、 カーソルを頻繁に移動します。

ヒン ト : 複数の計測の時間軸を設定する場合など、一時的ではないインジケーターを設定する必要がある場合は、マーカーを追加します。 詳細は、 59 ページの 「マーカー」 を参照して ください。

波形を 1 回ク リ ッ クする と、 メ イン カーソルが配置されます。

2 つ目のカーソルを配置するには、 Ctrl キーを押しながら ク リ ッ ク し、 マウスを左または右にド ラ ッグします。 カーソルの上に位置を示すフラグが表示されます。

または、 Shift キーを押したまま波形のどこかをク リ ッ ク します。 メ イン カーソルは元の位置に、 も う一方のカーソルはク リ ッ ク した位置に配置されます。

表 6-1 : 波形コンフ ィギュレーシ ョ ンのカスタマイズ機能

機能 説明

カーソル 2 つのカーソルを表示し、 時間を計測できます。 このカーソルの位置が、 ナビゲーシ ョンの基準位置になり ます。

マーカー マーカーを追加して波形をナビゲート し、 特定時の波形値を表示できます。

仕切り 信号を見やすく分けるため仕切り を追加できます。

グループ 関連した信号およびバスをグループにまとめ、波形コンフ ィギュレーシ ョ ンに追加できます。

仮想バス 論理スカラーおよび配列を追加できる仮想バスを波形コンフ ィギュレーシ ョ ンに追加できます。

オブジェク ト名の変更 オブジェク ト、 信号、 バス、 グループの名前を変更できます。

名前の表示 完全な階層名、 信号またはバス名のみ、 または各信号のカスタム名を表示できます。

基数 デフォルト基数は、波形コンフ ィギュレーシ ョ ン、 [Objects] ビュー、およびコンソールに表示されるバスの基数を指定します。

バス ビッ トの順序 上位ビッ ト (MSB) から 下位ビッ ト (LSB)、 またはその逆にバス ビッ ト順を変更できます。

プログラムおよびデバッグ japan.xilinx.com 58UG908 (v2013.1) 2013 年 3 月 20 日

Page 59: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

波形コンフ ィギュレーシ ョ ンのカスタマイズ

注記 : 2 つ目のカーソルの位置を保持しながら メ イン カーソルの位置を変更するには、Shift キーを押しながらク リ ック します。 2 つ目のカーソルをド ラ ッグして配置する場合、 小間隔以上ド ラ ッグしないと 2 つ目のカーソルは表示されません。

カーソルを移動するには、 ポインターが手のひらのマークになるまでマウスを動かし、 ク リ ッ ク して次の位置までカーソルをド ラ ッグします。

カーソルをド ラ ッグする際、 [Snap to Transtion] がオンになっている と (デフォルト )、 中が塗りつぶされていない丸または中が塗りつぶされた丸が表示されます。

• 中が塗りつぶされていない丸 は、 選択した信号の波形の遷移間にあるこ とを示します。

• 中が塗りつぶされている丸 は、選択した信号の波形の遷移地点にあるこ とを示します。カーソル、マーカー、フロート しているルーラーがない場所をク リ ッ クする と、 2 つ目のカーソルが非表示になり ます。

マーカー

波形内の重要イベン ト を恒久的にマークする必要がある場合はマーカーを使用します。マーカーが付けられたイベントに関連した距離 (サンプル数) を計測できます。

マーカーは、 次のよ うに追加、 移動、 削除できます。

• メ イン カーソルの位置に波形コンフ ィギュレーシ ョ ンにマーカーを追加します。

a. マーカーを追加する位置のサンプル番号または遷移をク リ ッ ク して、 メ イン カーソルを配置します。

b. [Edit] → [Add Marker] をク リ ッ クするか、 または [Add Marker] ボタンをク リ ッ ク します。

カーソル位置にマーカーが配置されます。マーカーがその位置に既にある場合は、若干オフセッ ト されます。マーカーのサンプル番号が上部に表示されます。

• マーカーを波形上の別の位置に移動するには、ド ラ ッグ アンド ド ロ ップします。マーカー上部のラベルをク リ ック してド ラ ッグします。

° ド ラ ッグ シンボル は、 マーカーが移動可能であるこ とを示します。 マーカーをド ラ ッグする際、 [Snapto Transtion] がオンになっている と (デフォルト )、 中が塗りつぶされていない丸または中が塗りつぶされた丸が表示されます。

° 中が塗りつぶされている丸 は、 選択した信号の波形の遷移地点、 または別のマーカー上であるこ とを示します。

° マーカーの場合は、 丸は白く塗りつぶされています。

° 中が塗りつぶされていない丸 は、 選択した信号の波形の遷移間にあるこ とを示します。

° 新しい位置にマーカーをド ロ ップするには、 マウスのボタンを放します。

• 1 つのコマンドでマーカーを 1 つ、 またはすべて削除できます。 マーカーを右ク リ ッ ク して、 次のいずれかの操作を実行します。

° マーカーを 1 つ削除するには、 ポップアップ メニューから [Delete Marker] をク リ ッ ク します。

° マーカーをすべて削除するには、 ポップアップ メニューから [Delete All Markers] をク リ ッ ク します。

注記 : また、 Delete キーを使用して選択したマーカーを削除するこ と もできます。

° マーカーの削除を取り消すには、 [Edit] → [Undo] をク リ ッ ク します。

ト リガー マーカー

赤色の ト リガー マーカー (赤文字の T) は、 キャプチャ バッファーのト リガー イベン トの発生を示す特殊マーカーです。 バッファーのト リガー マーカーの位置は、 ト リガー位置設定に直接対応しています (第 5 章の 「ILA コアの ト リガー位置の設定」 を参照)。

注記 : ト リ ガー マーカーは、標準マーカーと同じ方法では移動させるこ とはできません。その位置は ILA コアの ト リガー位置プロパティ設定で設定されています。

プログラムおよびデバッグ japan.xilinx.com 59UG908 (v2013.1) 2013 年 3 月 20 日

Page 60: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

波形コンフ ィギュレーシ ョ ンのカスタマイズ

仕切り

仕切りは、 信号を見やすく区切り ます。 波形コンフ ィギュレーシ ョ ンに仕切り を追加するには次の手順に従います。

1. 波形ウ ィンド ウの [Name] 列で、 下に仕切り を追加する信号をク リ ッ ク します。

2. [Edit] → [New Divider] をク リ ッ クするか、 右ク リ ッ ク して [New Divider] をク リ ッ ク します。

この変更は表示上のもので、 HDL コードには何も追加されません。 新しい仕切りは波形コンフ ィギュレーシ ョン ファ イルを保存したと きに保存されます。

仕切りは、 次の方法で移動または削除できます。

• 仕切り を移動するには、 名前を別の位置にド ラ ッグ アンド ド ロ ップします。

• 仕切り を削除するには、 Delete キーを押すか、 または右ク リ ッ ク してポップアップ メニューから [Delete] をクリ ッ ク します。

仕切りの名前も変更できます。 詳細は、 61 ページの 「オブジェク ト名の変更」 を参照して ください。

グループ

関連した信号をま とめるため、波形コンフ ィギュレーシ ョ ンの信号およびバスをグループに追加できます。 グループは、展開表示したり、閉じた りできます。 グループ自体は波形データを表示しませんが、 その内容の表示/非表示を切り替えるこ とができます。 グループは追加、 変更、 削除できます。

グループを追加するには、 次の手順に従います。

1. 波形コンフ ィギュレーシ ョ ンで、 グループに追加する信号またはバスを 1 つ以上選択します。

注記 : グループには、 仕切り、 仮想バス、 ほかのグループを含めるこ とができます。

2. [Edit] → [New Group] をク リ ッ クするか、 右ク リ ッ ク して [New Group] をク リ ッ ク します。

選択した信号またはバスを含むグループが波形コンフ ィギュレーシ ョ ンに追加されます。

グループは、 グループ アイコンで表されます。

この変更は表示上のもので、 ILA コアには何も追加されません。

信号名やバス名をド ラ ッグ アンド ド ロ ップして、 グループに信号やバスを追加するこ と もできます。

グループは、 次の方法で移動または削除できます。

• グループを移動するには、 [Name] 列のグループ名を別の位置にド ラ ッグ アンド ド ロ ップします。

• グループを削除するには、グループを選択して [Edit] → [Wave Objects] → [Ungroup] をク リ ッ クするか、グループを右ク リ ッ ク して [Ungroup] をク リ ッ ク します。 グループに含まれていた信号またはバスは、 波形コンフ ィギュレーシ ョ ンの一番上に配置されます。

グループ名も変更できます。 詳細は、 61 ページの 「オブジェク ト名の変更」 を参照して ください。

注意 : Delete キーを押すと、 グループと、 それに含まれている信号およびバスが波形コンフ ィギュレーシ ョ ンから削除されます。

プログラムおよびデバッグ japan.xilinx.com 60UG908 (v2013.1) 2013 年 3 月 20 日

Page 61: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

オブジェク ト名の変更

仮想バス

仮想バスを波形コンフ ィギュレーシ ョ ンに追加する と、 論理スカラーおよび配列を追加できます。 仮想バスには、 バスの波形が表示されます。 仮想バスはその下に昇順で表示される信号の波形で構成されており、 1 次元配列にフラ ット化されます。 追加した仮想バスは変更または削除できます。

仮想バスを追加するには、 次の手順に従います。

1. 波形コンフ ィギュレーシ ョ ンで、 仮想バスに追加する信号またはバスを 1 つ以上選択します。

2. [Edit] → [New Virtual Bus] をク リ ッ クするか、 右ク リ ッ ク して [New Virtual Bus] をク リ ッ ク します。

仮想バスは、 仮想バス アイコン で表されます。

この変更は表示上のもので、 HDL コードには何も追加されません。

信号名やバス名をド ラ ッグ アンド ド ロ ップして、 仮想バスに信号やバスを追加するこ と もできます。 波形コンフ ィギュレーシ ョ ン ファ イルを保存する と、新しい仮想バス とそれに含まれる信号やバスも保存されます。 また、仮想バスの名前を波形の別位置にド ラ ッグ アンド ド ロ ップして移動できます。

仮想バスの名前を変更するには、 「オブジェク ト名の変更」 を参照してください。

仮想バスを削除し、 その中に含まれる ものをグループ解除するには、 仮想バスを選択し、 [Edit] → [Wave Objects] →[Ungroup] をク リ ッ クするか、 または右ク リ ッ ク してポップアップ メニューの [Ungroup] をク リ ッ ク します。

注意 : Delete キーを押すと、 仮想バスと、 それに含まれている信号およびバスが波形コンフ ィギュレーシ ョ ンから削除されます。

オブジェク ト名の変更波形ウ ィンド ウの信号、 仕切り、 グループ、 仮想バスなどのオブジェク トの名前を変更できます。

1. [Name] 列でオブジェク ト名を選択します。

2. 右ク リ ッ ク し、 [Rename] をク リ ッ ク します。

3. 新しい名前を入力します。

4. Enter キーを押すか、 名前以外の場所をク リ ッ ク して、 変更を反映させます。

オブジェク ト名をダブルク リ ッ ク して新しい名前を入力するこ と もできます。変更はすぐに反映されます。波形コンフ ィギュレーシ ョ ンでのオブジェク ト名の変更は ILA コアのプローブ入力に接続されているネッ ト名には影響しません。

プログラムおよびデバッグ japan.xilinx.com 61UG908 (v2013.1) 2013 年 3 月 20 日

Page 62: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

オブジェク ト名の変更

名前の表示

名前は、 完全な階層名 ([Long Name])、 信号またはバス名のみ ([Short Name])、 またはカスタム名で表示できます。 波形ウ ィンド ウの信号またはバス名は、波形コンフ ィギュレーシ ョ ンの [Name] 列に表示されます。名前が非表示になっている場合は、 次の操作を実行します。

• 信号名全体が表示されるよ う [Name] 列の幅を調整します。

• [Name] 列のスクロール バーを使用します。

表示名を変更するには、 次の手順に従います。

1. 信号名またはバス名を 1 つ以上選択します。複数の信号を選択する場合は、Shift キーまたは Ctrl キーを押しながら ク リ ッ ク します。

2. 右ク リ ッ ク し、 [Name ] をク リ ッ ク し、 次のいずれかを選択します。

° [Long] : 完全な階層名を表示します。

° [Short] : 信号名またはバス名のみを表示します。

° [Custom] : 信号のカスタム名を表示します。

名前の表示変更はすぐに反映されます。

基数

バスのデータ型を理解するこ とは重要です。デジタルおよびアナログの波形オプシ ョ ンを効果的に使用するには、基数設定とデータ型の関係を知っておく必要があ り ます。 基数設定およびそのアナログ波形解析への影響については、63 ページの 「基数およびアナログ波形」 を参照してください。

波形ウ ィンド ウで個々の信号 (ILA プローブ) の基数を変更するには、 次の手順に従います。

1. バスを右ク リ ッ ク します。

2. [Radix] をク リ ッ ク し、 ド ロ ップダウン メニューからフォーマッ ト を選択します。

° [Binary] (2 進数)

° [Hexadecimal] (16 進数)

° [Unsigned Decimal] (符号なし 10 進数)

° [Signed Decimal] (符号付き 10 進数)

° [Octal] (8 進数)

° [ASCII]

重要 : [Objects] ビューで基数を変更しても、 波形ウ ィンド ウまたは [Tcl Console] の値は変更されません。 波形ウ ィンド ウで個々の信号 (ILA プローブ) の基数を変更するには、 波形ウ ィ ンド ウのポップアップ メニューを使用して ください。

• 実数での 大バス幅は 64 ビッ トです。64 ビッ ト よ り も幅の広いバスの場合は不正な値になる可能性があ り ます。

• 浮動小数点では 32 ビッ トおよび 64 ビッ トの配列のみがサポート されています。

プログラムおよびデバッグ japan.xilinx.com 62UG908 (v2013.1) 2013 年 3 月 20 日

Page 63: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

基数およびアナログ波形

フロート ルーラーの使用

波形ウ ィンド ウの上部にある標準ルーラーの絶対サンプル値以外のサンプル ベースを使用して時間を計測するには、フロート ルーラーを使用する と便利です。

フロート ルーラーは、 表示/非表示を切り替えた り、 波形ウ ィンド ウの任意位置に移動させるこ とができます。 このルーラーのサンプル ベース (サンプル 0) は 2 番目のカーソルで、 このカーソルがない場合は、選択されたマーカーになり ます。

フロート ルーラー ボタンおよびフロート ルーラーは、 2 番目のカーソル (または選択されたマーカー ) がある場合にのみ表示されます。

1. ルーラーの表示/非表示を切り替えるには、 次のいずれかを実行します。

° 2 番目のカーソルを配置

° マーカーを選択

2. [View] → [Floating Ruler] をク リ ッ クするか、 または [Floating Ruler] ボタンをク リ ッ ク します。

この操作は 初に 1 回だけ実行し、繰り返す必要はあ り ません。フロート ルーラーは 2 番目のカーソルが配置されるたび、 またはマーカーが選択されるたびに表示されます。

ルーラーを非表示にするには、 このコマンドをも う一 度ク リ ッ ク します。

バス ビッ トの順序

波形コンフ ィギュレーシ ョ ンでバス ビッ トの順序を逆にして、 信号を MSB から表示するか、 LSB から表示するかを切り替えるこ とができます。

ビッ ト順序を逆にするには、 次の手順に従います。

1. バスを選択します。

2. 右ク リ ッ ク し、 [Reverse Bit Order] をク リ ッ ク します。

これでバス ビッ トの順序が逆になり ます。 [Reverse Bit Order] コマンドの横にチェッ ク マークが表示され、 適用されているこ とが示されます。

基数およびアナログ波形バスの値が数値と して処理される方法は、 バス波形オブジェク トの基数設定によって決ま り ます。

• 2 進数、 8 進数、 16 進数、 ASCII、 および符号なしの 10 進数の基数を使用する と、 バスの値が符号なしの整数として処理されます。 バスのデータ フォーマッ トは基数設定と一致している必要があ り ます。

• 0 または 1 以外のビッ ト を使用する と、 値すべてが 0 と して処理されます。

• 符号付きの 10 進数基数を使用する と、 バスの値が符号付き整数と して処理されます。

• 実数基数を使用する と、バスの値は固定小数点または浮動小数点の実数と して処理されます。 これは、 64 ページの図 6-3 に示す [Real Settings] ダイアログ ボッ クスの設定によって決ま り ます。

プログラムおよびデバッグ japan.xilinx.com 63UG908 (v2013.1) 2013 年 3 月 20 日

Page 64: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

基数およびアナログ波形

設定できるオプシ ョ ンは次のとおりです。

• [Fixed Point] : 選択したバス波形オブジェク トのビッ トが固定小数点の符号付きまたは符号なしの実数と して処理されます。

• [Binary Point] : 2 進数小数点の右側のビッ ト数を指定します。 [Binary Point] で指定する値が波形オブジェク トのビッ ト幅よ り も大きい場合、波形オブジェク トの値は固定小数点と しては処理されず、波形オブジェク トがデジタル波形で表示されたと きにすべての値が <Bad Radix> と表示されます。 アナログ波形と して表示される場合、 すべての値は 0 と して処理されます。

• [Floating Point] : 選択したバス波形オブジェク トのビッ トが IEEE 浮動小数点の実数と して処理されます。

注記 : 単精度および倍精度 (および単/倍精度に設定されている値のカスタム精度) のみがサポート されています。

その他の値は、[Fixed Point] を使用した場合と同様 <Bad Radix> 値になり ます。 [Exponent Width] および [FractionWidth] は、波形オブジェク トのビッ ト幅に必ず追加する必要があ り、追加されない場合は <Bad Radix> 値になり ます。

アナログ波形の表示

デジタル波形をアナログに変換するには、 次の手順に従います。

1. 波形ウ ィンド ウの [Name] でバスを右ク リ ッ ク します。

2. [Waveform Style] → [Analog Settings] をク リ ッ ク して適切な設定を選択します。

バスのデジタル波形がアナログに変換されます。

アナログまたはデジタル波形の高さは、 行をド ラ ッグする と調節できます。

図 6-4 に、 アナログ波形表示を設定する [Analog Settings] ダイアログ ボッ クスを示します。

X-Ref Target - Figure 6-3

図 6-3 : [Real Settings] ダイアログ ボックス

プログラムおよびデバッグ japan.xilinx.com 64UG908 (v2013.1) 2013 年 3 月 20 日

Page 65: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

基数およびアナログ波形

[Analog Settings] ダイアログ ボッ クスのオプシ ョ ンは次のとおりです。

• [Row Height] : 選択した波形オブジェク トの高さをピクセルで指定します。 行の高さを変更しても波形の垂直方向の表示域は変わり ませんが、 波形の高さの伸縮が変わり ます。

アナログとデジタルを切り替える と き、 行の高さはそれぞれに合った適切なデフォルトの高さに設定されます (デジタルの場合は 20、 アナログの場合は 100)。

• [Y Range] : 波形エリ アに表示される数値の範囲を指定します。

° [Auto] : 表示されている時間の範囲の値が現在の範囲を超えたと きに、 表示範囲が拡大されます。

° [Fixed] : 時間範囲を一定にします。

° [Min] : 波形エリ アの一番下に表示される値を指定します。

° [Max] : 波形エリアの一番上に表示される値を指定します。

どちらの値も浮動小数点と して指定できますが、波形オブジェク トの基数が整数の場合、値は整数に切り捨てられます。

• [Interpolation Style] : データ ポイン ト を接続するラインの描画方法を指定します。

° [Linear] : 2 つのデータ ポイン ト間のラインを直線にします。

° [Hold] : 2 つのデータ ポイン トの うち、 左のポイン トから右のポイン トの X 軸に向かって水平ラインを描画し、 そのラインから右のポイン トに向かって別のラインを L 字型に描画します。

• [Off Scale] : 波形エリアの Y 軸を超えた値をどのよ うに描画するかを指定します。

° [Hide] : 範囲外にある値を非表示にします。 波形エリアの上下の範囲外にあるものは、 範囲内に戻るまでは非表示になり ます。

° [Clip] : 範囲外にある値は変更され、波形エリアの上下境界線を超える と範囲内に戻るまでは水平ラインと して表示されます。

° [Overlap] : 波形エリアの境界線を越えていて、 ほかの波形と重なっていても、 波形ウ ィンド ウの境界に達するまでは波形の値がどこにあっても波形が描画されます。

X-Ref Target - Figure 6-4

図 6-4 : [Analog Settings] ダイアログ ボックス

プログラムおよびデバッグ japan.xilinx.com 65UG908 (v2013.1) 2013 年 3 月 20 日

Page 66: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

ズーム機能

• [Horizontal Line] : 指定した値で水平方向のラインを描画するかど うか指定します。 このチェッ クボッ クスがオンの場合、 グ リ ッ ド ラ インが指定した Y 軸の位置で描画されます (値が波形の Y 軸の範囲内にある場合)。

[Min] および [Max] の場合と同様、 Y 軸の値には浮動小数点値を指定できますが、 選択した波形オブジェク トの基数が整数の場合は、 整数値に切り捨てられます。

重要 : アナログ設定は波形コンフ ィギュレーシ ョ ンに保存されますが、Y 軸方向のズーム コン ト ロールは非常にインタラ クティブであるため、基数などのほかの波形プロパティ とは異なり、波形コンフ ィギュレーシ ョ ンの変更には影響しません。 このため、 ズーム設定は波形コンフ ィギュレーシ ョ ンには保存されません。

ズーム機能X 軸方向のズームでサポート されている機能に加え、 アナログ波形の場合は、 図 6-5 に示す追加のズーム機能があ ります。

ズーム機能を使用するには、 マウスの左ボタンを押したまま、 図で示されている方向にマウスをド ラ ッグします。 この図の中央がマウスの位置です。

次の追加ズーム機能があ り ます。

• [Zoom Out Y] : 開始点からマウス ボタンを放した位置までの距離によ り、2 のべき乗分 Y 軸方向にズーム アウ トします。 開始点のマウス位置の Y 値をそのまま維持してズームが実行されます。

• [Zoom Y Range] : 縦方向にラインを描き、 マウス ボタンを離した位置までの Y 軸の範囲を表示します。

• [Zoom In Y] : 開始点からマウス ボタンを放した位置までの距離によ り、 2 のべき乗分 Y 軸方向にズーム インします。 開始点のマウス位置の Y 値をそのまま維持してズームが実行されます。

• [Reset Zoom Y] : 波形ウ ィンド ウにに現在表示されている値に Y の範囲を リセッ ト し、 Y の範囲モードを [Auto]に設定します。

Y 軸の方向のズーム機能はすべて Y の範囲のアナログ値を設定します。 [Reset Zoom Y] は Y の範囲を [Auto] に設定しますが、 ほかのズーム機能は [Fixed] に設定します。

X-Ref Target - Figure 6-5

図 6-5 : アナログ ズームのオプシ ョ ン

プログラムおよびデバッグ japan.xilinx.com 66UG908 (v2013.1) 2013 年 3 月 20 日

Page 67: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

第 7 章

インシステム シリアル I/O デバッグ フロー

概要Vivado® IDE では、 ザイ リ ンクス 7 シ リーズ高速ギガビッ ト ト ランシーバー (GT) テク ノ ロジを使用するシステムをデバッグおよび検証するためのデザインを簡単に生成できます。インシステム シ リ アル I/O デバッグ フローには、次の 3 つの段階があ り ます。

1. IBERT コア生成 : ハード ウェア高速シ リ アル I/O 要件を 適に満たす IBERT コアをカスタマイズおよび生成します。

2. IBERT サンプル デザインの生成およびインプ リ メンテーシ ョ ン : 生成した IBERT コアのサンプル デザインを生成します。

3. シ リ アル I/O 解析 : デザインに含まれる IBERT IP にアクセスし、高速シ リ アル I/O リ ンクの問題をデバッグおよび検証します。

この章では、 初の 2 つの段階について説明します。 後の段階は、 第 8 章 「ハードウェアでのシ リ アル I/O デザインのデバッグ」 で説明しています。

Vivado IP カタログを使用した IBERT コアの生成システムの高速シ リ アル I/O インターフェイスをデバッグおよび検証するハード ウェア デザインを生成するための初の段階は、 IBERT コアを生成するこ とです。 これには、 次の手順に従います。

1. Vivado IDE を開きます。

2. Getting Started ページで、 [Manage IP] → [Open IP Catalog] をク リ ッ ク します。

3. デバイス、 パッケージ、 およびスピード グレードを選択します。

4. IP カタログで [Debug & Verification] → [Debug] を展開する と、 前の手順で選択したデバイスに応じて 1 つまたは複数の IBERT コアが表示されます (図 7-1)。

5. IBERT をダブルク リ ッ クし、 コアの [Customize IP] ダイアログ ボッ クスを開きます。

6. ハード ウェア システム要件に合わせて IBERT コアをカスタマイズします。使用可能なさまざまな IBERT コアの詳細は、 製品ガイ ドを参照して ください。

プログラムおよびデバッグ japan.xilinx.com 67UG908 (v2013.1) 2013 年 3 月 20 日

Page 68: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado IP カタログを使用した IBERT コアの生成

X-Ref Target - Figure 7-1

図 7-1 : IP カタログに表示された IBERT 7 Series GTX コア

プログラムおよびデバッグ japan.xilinx.com 68UG908 (v2013.1) 2013 年 3 月 20 日

Page 69: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

IBERT サンプル デザインの生成とインプリ メンテーシ ョ ン

IBERT サンプル デザインの生成とインプリ メンテーシ ョ ンIBERT IP コアを生成する と、 [Sources] ビューに ibert_7series_gtx_v3_0_0 または類似のコアが表示されます。サンプルデザインを生成するには、 [Sources] ビューで IBERT IP を右ク リ ッ ク し、 [Open IP Example Design] をク リ ッ ク します。このコマンドによ り、 サンプル デザインの Vivado プロジェク トが開き、 上位ラ ッパーおよび制約ファイルが追加されます (図 7-2)。

サンプル デザインを生成したら、Vivado IDE の Flow Navigator で [Program and Debug] → [Generate Bitstream] をク リ ックするか、次の Tcl コマンドを使用して、 IBERT サンプル デザインのインプ リ メンテーシ ョ ンおよびビッ ト ス ト リーム生成を実行します。

launch_runs impl_1 -to_step write_bitstreamwait_on_run impl_1

7. デザインのさまざまなインプリ メンテーシ ョ ン方法は、 『Vivado Design Suite ユーザー ガイ ド : デザイン フローの概要』 (UG892) [参照 5] を参照して ください。

X-Ref Target - Figure 7-2

図 7-2 : IBERT サンプル デザイン

プログラムおよびデバッグ japan.xilinx.com 69UG908 (v2013.1) 2013 年 3 月 20 日

Page 70: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

第 8 章

ハードウェアでのシリアル I/O デザインのデバッグ

概要IBERT コアをインプ リ メン ト したら、ランタイム シ リアル解析機能を使用して、ハードウェア上でデザインをデバッグできます。 シ リ アル I/O 解析機能を使用してアクセスできるのは、 IBERT コア v3.x 以降のみです。

Vivado シリアル I/O 解析を使用したデザインのデバッグVivado® シ リ アル I/O 解析機能は、 デザインに含まれる IBERT v3.0 デバッグ IP コアにアクセスするために使用します。 Vivado シ リ アル I/O 解析機能を使用するには、 Flow Navigator で [Program and Debug] → [Open Hardware Session]をク リ ッ ク します。

デザインのデバッグ手順は、 次のとおりです。

1. ハード ウェア ターゲッ トに接続し、 FPGA デバイスを .bit ファ イルでプログラムします。

2. リ ンクを作成します。

3. リ ンク設定を変更してステータスを確認します。

4. 必要に応じてスキャンを実行します。

プログラムおよびデバッグ japan.xilinx.com 70UG908 (v2013.1) 2013 年 3 月 20 日

Page 71: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado シリアル I/O 解析を使用したデザインのデバッグ

ハードウェア ターゲッ トに接続して FPGA デバイスをプログラム

デバッグの前に FPGA デバイスをプログラムする手順は、 第 2 章の 「Vivado ハード ウェア セッシ ョ ンを使用したFPGA デバイスのプログラム」 で説明されている手順と同じです。 IBERT v3.0 コアを含む .bit ファ イルでデバイスをプログラムする と、[Hardware] ビューにデバイスのスキャンで検出された IBERT コアのコンポーネン トが表示されます (図 8-1)。

リンクおよびリンク グループの作成

デザインに含まれる IBERT コアは、 [Hardware] ビューのターゲッ ト デバイスの下に表示されます。 コアが表示されない場合は、 デバイスを右ク リ ッ ク して [Refresh Hardware] をク リ ッ ク します。 FPGA デバイスが再度スキャンされ、[Hardware] ビューの表示が更新されます。

注記 : FPGA デバイスをプログラムまたは更新しても IBERT コアが表示されない場合は、 デバイスが正しい .bitファ イルでプログラムされているか、 インプ リ メ ン ト済みデザインに IBERT v3.0 コアが含まれているかを確認してください。

Vivado シ リアル I/O 解析機能は、 リ ンク とい う概念に基づいて構築されています。 リ ンクはボード上のチャネルと似ており、 ト ランス ミ ッ タおよびレシーバーが含まれます。 ト ランス ミ ッ タおよびレシーバーは、 同じ GT、 同じデバイス、または同じアーキテクチャである場合とそ うでない場合があ り ます。1 つまたは複数のリ ンクを作成するには、Vivado で [Links] タブに移動し、 ツールバーの [Create Links] ボタンをク リ ッ クするか、 右ク リ ッ ク して [Create Links]をク リ ッ ク します。 [Create Links] ダイアログ ボッ クス (図 8-2) が表示されます。

X-Ref Target - Figure 8-1

図 8-1 : IBERT コアが表示された [Hardware] ビュー

プログラムおよびデバッグ japan.xilinx.com 71UG908 (v2013.1) 2013 年 3 月 20 日

Page 72: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado シリアル I/O 解析を使用したデザインのデバッグ

リ ス トから TX または RX を選択します。 [Search] フ ィールドに文字列を入力する と、 リ ス ト をフ ィルターできます。[Add] (+) ボタンをク リ ッ ク し、リ ンクを リ ス トに追加します。必要なすべてのリ ンクに対して同じ操作を実行します。

重要 : 各 TX または RX エンドポイン トは、 1 つのリ ンクにのみ含めるこ とができます。

リ ンクはリ ンク グループに含めるこ と もできます。デフォルトでは、新しいリ ンクすべてがグループ化されます。 リンクをグループに追加しない場合は、 [Create link group] チェ ッ ク ボッ クスをオフにします。 リ ンク グループの名前は、 [Link group description] で指定します。

[Links] ビューでのリンク設定の表示と変更

リ ンクを作成する と、 [Links] ビューに追加されます (図 8-3)。 [Links] ビューでは、 リ ンクの設定を変更した り、 ステータスを確認したりできます。

[Links] ビューの各行は、各リ ンクを示します。一般的なステータスおよび有益なステータスはデフォルトでイネーブルになっており、 リ ンクの状態をすばやく確認できます。 表 8-1 に、 [Links] ビューで表示可能な設定を示します。

X-Ref Target - Figure 8-2

図 8-2 : [Create Links] ダイアログ ボックス

X-Ref Target - Figure 8-3

図 8-3 : [Links] ビュー

プログラムおよびデバッグ japan.xilinx.com 72UG908 (v2013.1) 2013 年 3 月 20 日

Page 73: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado シリアル I/O 解析を使用したデザインのデバッグ

リ ンク グループに含まれるすべてのリ ンクのプロパティを変更するには、リ ンク グループ行で設定を変更します。たとえば、Link Group 0 行の [TX Pattern] を [PRBS 7-bit] に変更する と、この リ ンク グループに含まれるすべてのリ ンクの [TX Pattern] が [PRBS 7-bit] に変更されます。グループ内のすべてのリ ンクの設定が同じでない場合、リ ンク グループ行のプロパティ列に 「Multiple」 と表示されます。

表 8-1 : [Links] ビューに表示可能な設定

[Links] ビューの列名 説明

Name リ ンク名

TX ト ランス ミ ッ タの GT ロケーシ ョ ン

RX レシーバーの GT ロケーシ ョ ン

Status リ ンク されている場合 (予測どおりの入力 RX データ ) は計測されたライン レートが、リンク されていない場合は 「No Link」 と表示されます。

Bits 受信されたビッ ト数

Errors レシーバーでのビッ ト エラー数

BER ビッ ト エラー率 = (1 + エラー数) / (ビッ ト数)

BERT Reset 受信ビッ ト カウンターおよびエラー カウンターを リセッ ト します。

RX Pattern レシーバーで受信されるパターンを選択します。

TX Pattern ト ランス ミ ッ タで送信されるパターンを選択します。

TX Pre-Curser ト ランス ミ ッ タのプ リ カーソル エンファシスを選択します。

TX Post-Cursor ト ランス ミ ッ タのポス ト カーソル エンファシスを選択します。

TX Diff Swing ト ランス ミ ッ タの差動振幅値を選択します。

DFE Enabled レシーバーで判定帰還型イコラ イザー (DFE) をイネーブルにするかど うかを選択します。 使用できないアーキテクチャもあ り ます。

Inject Error 送信パスに 1 つのビッ ト エラーを挿入します。

TX Reset ト ランス ミ ッ タを リセッ ト します。

RX Reset レシーバーおよび BERT カウンターを リセッ ト します ( 「BERT Reset」 を参照)。

Loopback Mode レシーバー GT のループバッ ク モードを選択します。

警告 : この値を変更する と、システム ト ポロジによってはリ ンク ステータスに影響するこ とがあ り ます。

Termination Voltage レシーバーの終端電圧を選択します。

RX Common Mode レシーバーの RX 同相設定を選択します。

TXUSERCLK Freq 計測された TXUSERCLK 周波数を MHz で示します。

TXUSERCLK2 Freq 計測された TXUSERCLK2 周波数を MHz で示します。

RXUSERCLK Freq 計測された RXUSERCLK 周波数を MHz で示します。

RXUSERCLK2 Freq 計測された RXUSERCLK2 周波数を MHz で示します。

TX Polarity Invert 送信データの極性を反転します。

RX Polarity Invert 受信データの極性を反転します。

プログラムおよびデバッグ japan.xilinx.com 73UG908 (v2013.1) 2013 年 3 月 20 日

Page 74: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado シリアル I/O 解析を使用したデザインのデバッグ

リンク スキャンの作成と実行

リ ンクのマージンを解析するには、 ザイ リ ンクス 7 シ リーズ FPGA ト ランシーバー専用のアイ スキャン ハードウェアを使用して リ ンクのスキャンを実行する と有益です。 Vivado シ リ アル I/O 解析機能では、 リ ンク スキャンを定義、実行、 保存、 および呼び出しできます。

スキャンは リ ンク上で実行されます。 スキャンを作成するには、 [Link] ビューで リ ンクを選択し、 右ク リ ッ ク して[Create Scan] をク リ ッ クするか、 ツールバーの [Create Scan] ボタンをク リ ッ ク します。 [Create Scan] ダイアログ ボックスが開きます (図 8-4)。 [Create Scan] ダイアログ ボッ クスには、 表 8-2 に示すスキャンの設定が表示されます。

デフォルトでは、スキャンを作成する と実行されます。スキャンを実行せずに定義だけする場合は、[Run scan] チェック ボッ クスをオフにします。

スキャンを作成したと きに実行しない場合、[Scans] ビュー (図 8-5) でスキャンを右ク リ ッ ク して [Run Scan] をク リ ックする と実行できます。 スキャンを実行中にスキャンを停止するには、 [Scans] ビューでスキャンを選択し、右ク リ ック して [Stop Scann] をク リ ッ クするか、 ツールバーの [Stop Scan] ボタンをク リ ッ ク します。

X-Ref Target - Figure 8-4

図 8-4 : [Create Scan] ダイアログ ボックス

表 8-2 : スキャン設定

スキャン設定 説明

Description スキャンのユーザー定義名

Scan Type 実行するスキャンのタイプ

Horizontal Increment 水平コードをスキップするこ とによ り、 解像度を下げる代わりに速度を向上します。

Horizontal Range 水平範囲を削減して速度を向上します。 デフォルトでは、 アイ全体がスキャンされます(アイの中心に対して -1/2 ユニッ ト インターバルから +1/2 まで)。

Vertical Increment 垂直コードをスキップするこ とによ り、 解像度を下げる代わりに速度を向上します。

Vertical Range 垂直範囲を削減して速度を向上します。デフォルトでは、アイ全体がスキャンされます。

Dwell BER チャートの各点がある時間スキャンされます。 ビッ ト エラー率を選択するこ とによ り、スキャン深さを選択します。

Dwell Time 時間 (秒) を入力するこ とによ り、 スキャン深さを選択します。

プログラムおよびデバッグ japan.xilinx.com 74UG908 (v2013.1) 2013 年 3 月 20 日

Page 75: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado シリアル I/O 解析を使用したデザインのデバッグ

スキャン プロッ トの表示とナビゲート

スキャンを作成する と、 そのスキャンの [Scan Plots] ビューが表示されます。 2D アイスキャンでは、 プロ ッ トは BER値のヒート マップです。

Vivado IDE 内のほかのチャートおよび表示と同様、マウスを左上から右下にド ラ ッグして矩形を描く とそのエ リアを拡大表示、 マウスを右上から左下にド ラ ッグして線を描く と拡大表示、 マウスを左下から右上にド ラ ッグして線を描く と縮小表示、マウスを右下から左上にド ラ ッグして線を描く と全体を表示できます。マウス カーソルをプロ ッ トの上に置く と、 ツール ヒ ン トに現在の水平コード、 垂直コード、 およびスキャンされた BER 値が表示されます。

スキャン プロ ッ トの下のサマリには、スキャン設定とスキャンが実行された時間などの基本情報が表示されます。2Dアイスキャンでは、 エラーのないスキャンのピクセル数が算出され (水平および垂直インク リ メン ト を考慮)、 結果が[Open Area] と して表示されます。 [Scans] ビューを [Open Area] 列で並べ替える と、 スキャンをオープン エリ アの多い順にリ ス トできます (図 8-7)。

X-Ref Target - Figure 8-5

図 8-5 : [Scans] ビュー

X-Ref Target - Figure 8-6

図 8-6 : [Scan Plots] ビュー

プログラムおよびデバッグ japan.xilinx.com 75UG908 (v2013.1) 2013 年 3 月 20 日

Page 76: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado シリアル I/O 解析を使用したデザインのデバッグ

出力結果のファイルへの保存

部分的またはフル 2D アイスキャンのスキャン データが存在する場合、 スキャンを右ク リ ッ ク して [Write Scan Data]をク リ ッ クする と、スキャン結果を CSV ファ イルに保存できます。スキャン結果が CSV 形式のファイルに保存され、スキャン プロ ッ ト を複製するブロ ッ クに BER 値が含まれます。

[Properties] ビュー

[Hardware] ビューで GT または COMMON ブロ ッ ク、 [Links] ビューで リ ンク、 または [Scans] ビューでスキャンを選択する と、 [Properties] ビューにそのオブジェ ク トのプロパティが表示されます。 GT および COMMON に対しては、これらのオブジェ ク ト の属性、 ポート、 およびその他の設定がすべて表示されます。 これらの設定は、 [Properties]ビュー (図 8-8) またはTcl コマンドで変更できます。 プロパティには、 読み出し専用で変更できないものもあ り ます。

X-Ref Target - Figure 8-7

図 8-7 : [Open Area] 列で並べ替えた [Scans] ビュー

X-Ref Target - Figure 8-8

図 8-8 : [Properties] ビュー

プログラムおよびデバッグ japan.xilinx.com 76UG908 (v2013.1) 2013 年 3 月 20 日

Page 77: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado シリアル I/O 解析を使用したデザインのデバッグ

シリアル I/O 解析の Tcl オブジェク トおよびコマンド

テス ト中のハード ウェアにアクセスするには、Tcl コマンドを使用できます。ハード ウェアには、階層第一級 Tcl オブジェク トがあ り ます (表 8-3)。

ハード ウェア セッシ ョ ン コマンドの詳細は、 Tcl コンソールで 「help -category hardware」 と入力して ください。

ハードウェアにアクセスする Tcl コマンド

表 8-4 に、 IBERT コアにアクセスするために使用する Tcl コマンドを示します。

重要 : get_property または set_property コマンドを使用した場合、IBERT コアから情報を読み出したり IBERT コアに情報を書き込むこ とはできません。 ハードウェアから情報を読み出すには refresh_hw_sio コマンド、 ハード ウェアに情報を書き込むには commit_hw_sio コマンドを使用します。

hw_sio_link の Tcl コマンド

表 8-5 に、 リ ンクにアクセスするために使用する Tcl コマンドを示します。

表 8-3 : シリアル I/O 解析の Tcl オブジェク ト

Tcl オブジェク ト 説明

hw_sio_ibert IBERT コアを参照するオブジェ ク ト 。 各 IBERT オブジェ ク ト には、 1 つまたは複数のhw_sio_gt または hw_sio_common オブジェク ト を関連付けるこ とができます。

hw_sio_gt 1 つのザイ リ ンクス ギガビッ ト ト ランシーバー (GT) を参照するオブジェク ト 。

hw_sio_common COMMON ブロ ッ クを参照するオブジェク ト。

hw_sio_tx hw_sio_gt の ト ランス ミ ッ タ側を参照するオブジェ ク ト。 TX 関連のポート、 属性、 ロジッ ク プロパティのみが hw_sio_tx に挿入されます。

hw_sio_rx hw_sio_gt のレシーバー側を参照するオブジェク ト 。 RX 関連のポート、 属性、 ロジッ クプロパティのみが hw_sio_rx に挿入されます。

hw_sio_pll hw_sio_gt または hw_sio_common オブジェク トの PLL オブジェク ト を参照するオブジェク ト 。 関連のポート、 属性、 ロジッ ク プロパティのみが hw_sio_pll に挿入されます。

hw_sio_link リ ンク、 TX-RX ペアを参照するオブジェク ト 。 注記 : リ ンクには、 RX のみまたは RX のみが含まれる場合もあ り ます。

hw_sio_linkgroup リ ンク グループを参照するオブジェク ト 。

hw_sio_scan マージン解析スキャンを参照するオブジェク ト 。

表 8-4 : hw_server の Tcl コマンド

Tcl コマンド 説明

refresh_hw_sio オブジェク トのプロパティ値を読み出します。ハードウェアを参照するすべての hw_sioオブジェク トに対して使用できます。

commit_hw_sio プロパテ ィの変更をハード ウェアに書き込みます。 ハード ウェアを参照するすべてのhw_sio オブジェク トに対して使用できます。

表 8-5 : hw_sio_link の Tcl コマンド

Tcl コマンド 説明

create_hw_sio_link 指定の hw_sio_rx および hw_sio_tx から hw_sio_link オブジェク ト を作成します。

remove_hw_sio_link 指定した リ ンクを削除します。

get_hw_sio_links 指定したオブジェク トの hw_sio_link のリ ス ト を取得します。

プログラムおよびデバッグ japan.xilinx.com 77UG908 (v2013.1) 2013 年 3 月 20 日

Page 78: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado シリアル I/O 解析を使用したデザインのデバッグ

hw_sio_linkgroup の Tcl コマンド

表 8-6 に、 リ ンク グループにアクセスするために使用する Tcl コマンドを示します。

hw_sio_scan の Tcl コマンド

表 8-7 に、 スキャンにアクセスするために使用する Tcl コマンドを示します。

オブジェク ト を取得する Tcl コマンド

表 8-8 に、 シ リ アル I/O オブジェク ト を取得するために使用する Tcl コマンドを示します。

表 8-6 : hw_sio_linkgroup の Tcl コマンド

Tcl コマンド 説明

create_hw_sio_linkgroup hw_sio_link から hw_sio_linkgroup オブジェク ト を作成します。

remove_hw_sio_linkgroup 指定した リ ンクを削除します。

get_hw_sio_linkgroups 指定したオブジェク トの hw_sio_linkgroup のリ ス ト を取得します。

表 8-7 : hw_sio_scan の Tcl コマンド

Tcl コマンド 説明

create_hw_sio_scan スキャン オブジェク ト を作成します。

remove_hw_sio_scan スキャン オブジェク ト を削除します。

run_hw_sio_scan スキャンを実行します。

stop_hw_sio_scan スキャンを停止します。

wait_on_hw_sio_scan run_hw_sio_scan が完了するまで Tcl コンソール プロンプ ト でコマンドを実行できないよ うにします。

display_hw_sio_scan 部分的または完了したスキャンをスキャン プロ ッ トに表示します。

write_hw_sio_scan スキャン データをファイルに記述します。

read_hw_sio_scan スキャン データをファイルからスキャン オブジェク トに読み込みます。

get_hw_sio_scans hw_sio_scan オブジェク トの リ ス ト を取得します。

表 8-8 : オブジェク ト を取得する Tcl コマンド

Tcl コマンド 説明

get_hw_sio_iberts IBERT オブジェク トの リ ス ト を取得します。

get_hw_sio_gts GT のリ ス ト を取得します。

get_hw_sio_commons COMMON ブロ ッ クの リ ス ト を取得します。

get_hw_sio_txs ト ランス ミ ッ タのリ ス ト を取得します。

get_hw_sio_rxs レシーバーのリ ス ト を取得します。

get_hw_sio_plls PLL のリ ス ト を取得します。

get_hw_sio_links リ ンクのリ ス ト を取得します。

get_hw_sio_linkgroups リ ンク グループのリ ス ト を取得します。

get_hw_sio_scans スキャンのリ ス ト を取得します。

プログラムおよびデバッグ japan.xilinx.com 78UG908 (v2013.1) 2013 年 3 月 20 日

Page 79: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

Vivado シリアル I/O 解析を使用したデザインのデバッグ

ハードウェア セッシ ョ ンの Tcl コマンドの使用

次のよ うなシステムにアクセスする Tcl コマンド スク リプ トの例を示します。

• localhost:50001 上の CSE サーバーを介してアクセス可能な 1 つの KC705 ボードの Digilent JTAG-SMT1 ケーブル(シ リ アル番号 12345)

• デザインに IBERT コアが 1 つ含まれており、 KC705 ボード上の XC7K325T デバイスで実行

• IBERT コアで Quad 117 および Quad 118 がイネーブルになっている

Tcl コマンド スクリプ ト例

# Connect to the Digilent Cable on localhost:50001connect_hw_server -host localhost -port 50001current_hw_target [get_hw_targets */digilent_plugin/SN:12345]open_hw_target

# Program and Refresh the XC7K325T Devicecurrent_hw_device [lindex [get_hw_devices] 0]refresh_hw_device -update_hw_probes false [lindex [get_hw_devices] 0]set_property PROGRAM.FILE {C:/design.bit} [lindex [get_hw_devices] 0]program_hw_devices [lindex [get_hw_devices] 0]refresh_hw_device [lindex [get_hw_devices] 0]

# Set Up Link on first GT set tx0 [lindex [get_hw_sio_txs] 0]set rx0 [lindex [get_hw_sio_rxs] 0]set link0 [create_hw_sio_link $tx0 $rx0]set_property DESCRIPTION {Link 0} [get_hw_sio_links $link0]

# Set link to use PCS Loopback, and write to hardwareset_property LOOPBACK "Near-End PCS" $link0commit_hw_sio $link0

# Create, run, display and save scanset scan0 [create_hw_sio_scan 2d_full_eye [get_hw_sio_rxs -of $link0]]run_hw_sio_scan $scan0display_hw_sio_scan $scan0write_hw_sio_scan "scan0.csv" $scan0

プログラムおよびデバッグ japan.xilinx.com 79UG908 (v2013.1) 2013 年 3 月 20 日

Page 80: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

付録 A

デバイス コンフ ィギュレーシ ョ ン ビッ トス ト リーム設定

次の表に、 Vivado® ロジッ ク解析機能で使用可能なデバイス コンフ ィギュレーシ ョ ン設定を示します。

表 A-1 : デバイス コンフ ィギュレーシ ョ ン設定

設定 デフォルト値 有効な値 説明

BITSTREAM.CONFIG.BPI_1ST_READ_CYCLE

1 1、 2、 3、 4 BPI コンフ ィギュレーシ ョ ンをフラ ッシュ デバイスのページ モード動作のタイ ミ ングと同期させる際に使用し、 初のページの有効読み出しのサイクル数を設定します。 このオプシ ョ ンは、BPI_page_size を 4 または 8 に設定している場合にのみ有効です。

BITSTREAM.CONFIG.BPI_PAGE_SIZE

1 1、 4、 8 BPI コンフ ィギュレーシ ョ ンで、 ページ サイズを指定します。 これは、 フラ ッシュ メモ リでページごとに必要な読み出し数に対応します。

BITSTREAM.CONFIG.BPI_SYNC_MODE

Disable Disable、Type1、 Type2

BPI フラ ッシュ デバイスの異なるタ イプの BPI 同期コンフ ィギュレーシ ョ ン モードを設定します。

• Disable (デフォルト ) : 同期コンフ ィギュレーシ ョ ン モードをディ スエーブルにします。

• Type1 : 同期コンフ ィギュレーシ ョ ン モードをイネーブルにし、Micron G18(F) ファ ミ リ をサポートする設定を使用します。

• Type2 : 同期コンフ ィギュレーシ ョ ン モードをイネーブルにし、 Micron (Numonyx) P30 ファ ミ リ をサポートする設定を使用します。

BITSTREAM.CONFIG.CCLKPIN

Pullup Pullup、Pullnone

Cclk ピンに内部プルアップを追加します。 Pullnone に設定する と、 プルアップは使用されません。

BITSTREAM.CONFIG.CONFIGFALLBACK

Disable Disable、Enable

コンフ ィ ギ ュ レーシ ョ ンでエラーが発生した場合にデフォル ト のビ ッ ト ス ト リームを読み込むかど う かを指定します。

BITSTREAM.CONFIG.CONFIGRATE

3 3、6、9、12、16、22、26、33、40、50、 66

コンフ ィギュレーシ ョ ンがマスター モードの場合、ビッ トス ト リ ームの生成でコンフ ィ ギュ レーシ ョ ン ク ロ ッ ク(Cclk) の生成に内部オシレーターが使用されます。 このオプシ ョ ンは、 Cclk のレート を選択します。

BITSTREAM.CONFIG.DCIUPDATEMODE

AsRequired AsRequired、Continuous、Quiet

デジタル制御インピーダンス (DCI) 回路で DCIIOSTANDARD のインピーダンス一致をアップデートする頻度を指定します。

BITSTREAM.CONFIG.DONEPIN

Pullup Pullup、Pullnone

DONE ピンに内部プルアップを追加します。 Pullnone に設定する と、 プルアップは使用されません。 このオプシ ョ ンは、外部プルアップ抵抗を DONE ピンに接続する場合にのみ使用して ください。 このオプシ ョ ンを使用しない場合、内部プルアップ抵抗が自動的に接続されます。

プログラムおよびデバッグ japan.xilinx.com 80UG908 (v2013.1) 2013 年 3 月 20 日

Page 81: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

BITSTREAM.CONFIG.EXTMASTERCCLK_EN

Disable Disable、div-8、 div-4、div-2、 div-1

すべてのマスター モードで外部ク ロ ッ クをコンフ ィギュレーシ ョ ン ク ロ ッ ク と して使用できるよ うにします。外部ク ロ ッ クは、 多目的 USERCCLK ピンに接続する必要があり ます。

BITSTREAM.CONFIG.INITPIN

Pullup Pullup、Pullnone

INIT ピンにプルアップ抵抗を追加するか、フロート したままにするかを指定します。

BITSTREAM.CONFIG.INITSIGNALSERROR

Enable Enable、Disable

Enabled に設定する と、 CFG エラーが検出された場合にinit_b ピンが 0 に設定されません。

BITSTREAM.CONFIG.M0PIN

Pullup Pullup、Pulldown、Pullnone

M0 ピンに内部プルアップまたはプルダウンを追加するか、 どちら も追加しないかを指定します。 M0 ピンにプルアップ抵抗およびプルダウン抵抗のどちら も追加しない場合は、 Pullnone に設定します。

BITSTREAM.CONFIG.M1PIN

Pullup Pullup、Pulldown、Pullnone

M1 ピンに内部プルアップまたはプルダウンを追加するか、 どちら も追加しないかを指定します。 M1 ピンにプルアップ抵抗およびプルダウン抵抗のどちら も追加しない場合は、 Pullnone に設定します。

BITSTREAM.CONFIG.M2PIN

Pullup Pullup、Pulldown、Pullnone

M2 ピンに内部プルアップまたはプルダウンを追加するか、 どちら も追加しないかを指定します。 M2 ピンにプルアップ抵抗およびプルダウン抵抗のどちら も追加しない場合は、 Pullnone に設定します。

BITSTREAM.CONFIG.NEXT_CONFIG_ADDR

なし 文字列 MultiBoot セッ ト アップの次のコンフ ィギュレーシ ョ ンの開始ア ド レ ス を設定し ます。 これは、 General1 およびGeneral2 レジスタに保存されます。

BITSTREAM.CONFIG.NEXT_CONFIG_REBOOT

Enable Enable、Disable

Disable に設定する と、 BIT ファ イルから IPROG コマンドが削除されます。

BITSTREAM.CONFIG.OVERTEMPPOWERDOWN

Disable Disable、Enable

システム モニターで温度が 大動作範囲を超えたこ とが検出された場合にデバイスがシャ ッ ト ダウンされる よ うにします。 このオプシ ョ ンを使用するには、 システム モニターに外部回路セッ ト アップが必要です。

BITSTREAM.CONFIG.PERSIST

No No、 Yes、CTLReg、X1、 X8、X16、 X32、SPI1、 SPI2、SPI4、 BPI8、BPI

SelectMAP モード ピンをユーザー I/O と して使用できないよ うにします。SelectMAP モード と関連のピンについては、データシー ト を参照して く ださい。 このオプシ ョ ンは、リードバッ クおよびパーシャル リ コンフ ィギュレーシ ョンに SelectMAP コンフ ィギュレーシ ョ ン ピンを使用する場合に必要で、 SelectMAP またはシ リ アル モードを使用してい る場合に使用 し ます。 こ のオプシ ョ ンの設定はSelectMAP ピンのみに適用されますが、 コンフ ィギュレーシ ョ ン後に JTAG 以外のコンフ ィギュレーシ ョ ン ピンにアクセスする際にも使用します。

BITSTREAM.CONFIG.PROGPIN

Pullup Pullup、Pullnone

ProgPin ピンに内部プルアップを追加します。Pullnone に設定する と、 プルアップは使用されません。 プルアップは、コンフ ィギュレーシ ョ ン後のピンに使用されます。

BITSTREAM.CONFIG.REVISIONSELECT

00 00、01、10、11 次のウ ォーム ブー ト のウ ォーム ブー ト 開始ア ド レ ス(WBSTAR) レジスタの RS[1:0] 設定の内部値を指定します。

BITSTREAM.CONFIG.REVISIONSELECT_TRISTATE

Disable Disable、Enable

ウォーム ブートのウォーム ブート開始アドレス(WBSTAR) のオプシ ョ ンを設定するこ とによ り、RS[1:0] トラ イステート をイネーブルにするかど うかを指定します。

表 A-1 : デバイス コンフ ィギュレーシ ョ ン設定 (続き)

設定 デフォルト値 有効な値 説明

プログラムおよびデバッグ japan.xilinx.com 81UG908 (v2013.1) 2013 年 3 月 20 日

Page 82: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

BITSTREAM.CONFIG.SELECTMAPABORT

Enable Enable、Disable

SelectMAP モードのアボート シーケンスをイネーブルまたはディ スエーブルにします。Disable に設定する と、デバイス ピンのアボート シーケンスは無視されます。

BITSTREAM.CONFIG.SPI_32BIT_ADDR

No No、 Yes SPI 32 ビッ ト アドレス形式をイネーブルにします。 この形式は、 256Mb 以上のス ト レージを含む SPI デバイスで必要です。

BITSTREAM.CONFIG.SPI_BUSWIDTH

1 1、 2、 4 サードパーテ ィ SPI フラ ッシュ デバイスからのマスターSPI コンフ ィギュレーシ ョ ンに対して、SPI バスをデュアル(x2) またはクワッ ド (x4) モードに設定します。

BITSTREAM.CONFIG.SPI_FALL_EDGE

No No、 Yes FPGA で SPI データのキャプチャに立ち下がりエッジを使用するよ う設定します。これによ り タイ ミ ング マージンが向上し、コンフ ィギュレーシ ョ ンのク ロ ッ ク レートが上がる可能性があ り ます。

BITSTREAM.CONFIG.TCKPIN

Pullup Pullup、Pulldown、Pullnone

TCK ピン、 JTAG テス ト クロ ッ クにプルアップまたはプルダウンを追加するか、 どちら も追加しないかを指定します。 Pullnone に設定する と、 プルアップもプルダウンも使用されません。

BITSTREAM.CONFIG.TDIPIN

Pullup Pullup、Pulldown、Pullnone

TDI ピン、 JTAG 命令および JTAG レジスタへのシ リ アルデータ入力すべてに、 プルアップまたはプルダウンを追加するか、 どちら も追加しないかを指定します。 Pullnone に設定する と、 プルアップもプルダウンも使用されません。

BITSTREAM.CONFIG.TDOPIN

Pullup Pullup、Pulldown、Pullnone

TdoPin ピン、 JTAG 命令およびデータ レジスタへのシ リアル データ出力すべてに、 プルアップまたはプルダウンを追加するか、どちらも追加しないかを指定します。Pullnone に設定する と、 プルアップもプルダウンも使用されません。

BITSTREAM.CONFIG.TIMER_CFG

なし 8 桁の 16 進文字列

コンフ ィギュレーシ ョ ン モードでのウォ ッチド ッグ タ イマーの値を設定します。 このオプシ ョ ンは、 TIMER_USRと同時に使用するこ とはできません。

BITSTREAM.CONFIG.TIMER_USR

0x00000000 8 桁の 16 進文字列

ユーザー モードでのウォ ッチド ッグ タ イマーの値を設定します。 このオプシ ョ ンは、 TIMER_CFG と同時に使用するこ とはできません。

BITSTREAM.CONFIG.TMSPIN

Pullup Pullup、Pulldown、Pullnone

TMS ピン、TAP コン ト ローラーへのモード入力信号にプルアップまたはプルダウンを追加するか、 どちらも追加しないかを指定します。 TAP コン ト ローラーは、 JTAG の制御ロジッ ク と して使用されます。 Pullnone に設定する と、 プルアップもプルダウンも使用されません。

BITSTREAM.CONFIG.UNUSEDPIN

Pulldown Pulldown、Pullup、Pullnone

未使用の SelectIO ピン (IOB) にプルアップまたはプルダウンを追加するか、 どちら も追加しないかを指定します。 コンフ ィギュレーシ ョ ン専用ピンには適用されません。 コンフ ィギュレーシ ョ ン専用ピンのリ ス トは、 アーキテクチャによって異なり ます。 Pullnone に設定する と、 プルアップもプルダウンも使用されません。

BITSTREAM.CONFIG.USERID

0xFFFFFFFF 8 桁の 16 進文字列

インプリ メンテーシ ョ ンのリ ビジ ョ ンを特定します。 ユーザー ID レジスタには、 8 桁までの 16 進文字列を入力できます。

表 A-1 : デバイス コンフ ィギュレーシ ョ ン設定 (続き)

設定 デフォルト値 有効な値 説明

プログラムおよびデバッグ japan.xilinx.com 82UG908 (v2013.1) 2013 年 3 月 20 日

Page 83: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

BITSTREAM.CONFIG.USR_ACCESS

None None、 8 桁の16 進文字列、TIMESTAMP

AXSS コンフ ィギュレーシ ョ ン レジスタに、8 桁の 16 進文字列またはタイムスタンプを記述します。 タイムスタンプ値のフ ォーマ ッ ト は、 ddddd MMMM yyyyyy hhhhhmmmmmm ssssss (ddddd = 日、 MMMM = 月、 yyyyyy = 年(2000 年は 00000)、 hhhhh = 時、 mmmmmm = 分、 ssssss =秒) です。 このレジスタの内容は、FPGA ファブ リ ッ クにより USR_ACCESS プ リ ミ ティブを介して直接アクセスできます。

BITSTREAM.ENCRYPTION.ENCRYPT

No No、 Yes ビッ ト ス ト リームを暗号化します。

BITSTREAM.ENCRYPTION.ENCRYPTKEYSELECT

bbram bbram、 efuse 使用する AES 暗号化キーの場所を、バッ クアップ機能付きRAM (BBRAM) または eFUSE レジスタのいずれかに指定します。

注記 : このプロパティは ENCRYPT オプシ ョ ンを Yes に設定している場合のみ使用可能です。

BITSTREAM.ENCRYPTION.HKEY

Pick Pick、16 進文字列

ビッ ト ス ト リーム暗号化の HMAC 認証キーを設定します。7 シ リーズ デバイスには、 ハード ウェアにオンチップのビ ッ ト ス ト リ ーム キー付き HMAC (Hash MessageAuthentication Code) アルゴ リズムがインプ リ メン ト されており、 AES 復号化のみの場合よ りセキュ リ ティが強化されています。 これらのデバイスでは、 ビッ ト ス ト リームの読み込み、 変更、 妨害、 コピーに AES と HMAC キーの両方が必要です。 pick に設定する と、 ランダムな値が選択されます。 このオプシ ョ ンを使用するには、 ENCRYPT オプシ ョ ンを Yes に設定する必要があ り ます。

BITSTREAM.ENCRYPTION.KEY0

Pick Pick、16 進文字列

ビッ ト ス ト リーム暗号化の AES 暗号化キーを設定します。pick に設定する と、 ランダムな値が選択されます。 このオプシ ョ ンを使用するには、 ENCRYPT オプシ ョ ンを Yes に設定する必要があ り ます。

BITSTREAM.ENCRYPTION.KEYFILE

なし 文字列 入力暗号化ファ イル (拡張子 .nky) の名前を指定します。このオプシ ョ ンを使用するには、 ENCRYPT オプシ ョ ンをYes に設定する必要があ り ます。

BITSTREAM.ENCRYPTION.STARTCBC

Pick Pick、 32 ビット の 16 進文字列

暗号文ブロッ ク連鎖 (CBC) の開始値を設定します。 pick に設定する と、 ランダムな値が選択されます。

BITSTREAM.GENERAL.COMPRESS

False True、 False ビッ ト ス ト リームの複数フレーム書き込み機能を使用し、ビ ッ ト ス ト リーム ファ イル (.bit) ファ イルだけでな く、ビ ッ ト ス ト リーム自体のサイズも縮小します。 このオプシ ョ ンを使用しても、 ビッ ト ス ト リームのサイズ縮小するとは限り ません。

BITSTREAM.GENERAL.CRC

Enable Enable、Disable

ビ ッ ト ス ト リームの巡回冗長検査 (CRC) 値の生成を制御します。 Enable に設定する と、 ビッ ト ス ト リームの内容に基づいて固有の CRC 値が算出されます。 算出された CRC値がビッ ト ス ト リームの CRC 値と一致しない場合は、 デバイスはコンフ ィギュレーシ ョ ンされません。CRC がディスエーブルの場合、CRC 値の代わりに定数値がビッ ト ス トリームに挿入され、 デバイスで CRC 値は算出されません。

表 A-1 : デバイス コンフ ィギュレーシ ョ ン設定 (続き)

設定 デフォルト値 有効な値 説明

プログラムおよびデバッグ japan.xilinx.com 83UG908 (v2013.1) 2013 年 3 月 20 日

Page 84: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

BITSTREAM.GENERAL.DEBUGBITSTREAM

No No、 Yes デバッグ ビッ ト ス ト リームを生成します。 デバッグ ビット ス ト リームのサイズは、標準のビッ ト ス ト リームよ り もかな り大き くな り ます。 このオプシ ョ ンは、マスターおよびスレーブ シ リ アル コンフ ィギュレーシ ョ ンでのみ使用できます。 バウンダ リ スキャンおよびスレーブ パラレル/SelectMAP では使用でき ません。 デバッ グ ビ ッ ト ス トリームには、標準ビッ ト ス ト リームに加え、次の機能があり ます。 • 同期化ワードの後に LOUT レジスタに 32 個の 0 を書き

込みます。

• 各フレームを個別に読み込みます。

• 各フレーム後に巡回冗長検査 (CRC) を実行します。

• 各フレーム後にフレーム アドレスを LOUT レジスタに書き込みます。

BITSTREAM.GENERAL.DISABLE_JTAG

No No、 Yes コンフ ィギュレーシ ョ ン後に JTAG を介したバウンダ リ スキャン (BSCAN) ブロ ッ クへのアクセスをディ スエーブルにします。

BITSTREAM.GENERAL.JTAG_XADC

Enable Enable、Disable、StatusOnly

XADC への JTAG 接続をイネーブルまたはディ スエーブルにします。

BITSTREAM.GENERAL.XADCENHANCEDLINEARITY

Off Off、 On INL が実際のアナログ パフォーマンスよ り も悪くなるビルト イン デジタル キャ リブレーシ ョ ン機能をディ スエーブルにします。

BITSTREAM.READBACK.ACTIVERECONFIG

No No、 Yes コンフ ィギュレーシ ョ ン中に GHIGH および GSR がアサート されないよ うにします。 これは、 アクティブ パーシャルリ コンフ ィギュレーシ ョ ン向上機能に必要です。

BITSTREAM.READBACK.ICAP_SELECT

Auto A u t o、 To p、Bottom

上または下の ICAP ポート を選択します。

BITSTREAM.READBACK.READBACK

False True、 False 必要な リードバッ ク ファ イルを作成して リードバッ ク機能を実行します。

BITSTREAM.READBACK.SECURITY

None None、Level1、Level2

リ ードバッ クおよびリ コンフ ィ ギュレーシ ョ ンをディ スエーブルにするかど うかを指定します。

注記 : Level1 に設定する と リードバッ クがディ スエーブルにな り、 Level2 に設定する と リードバッ ク と リ コンフ ィギュレーシ ョ ンがディ スエーブルになり ます。

BITSTREAM.READBACK.XADCPARTIALRECONFIG

Disable Disable、Enable

Disable に設定する と、パーシャル リ コンフ ィギュレーシ ョン中も XADC が継続して機能します。 Enable に設定すると、 パーシャル リ コンフ ィギュレーシ ョ ン中は XADC はセーフ モードで機能します。

BITSTREAM.STARTUP.DONEPIPE

Yes Yes、 No CFG_DONE (DONE) ピンが High になり、 初のクロ ッ クエッジが到着してから、 Done ステートに移動します。

BITSTREAM.STARTUP.DONE_CYCLE

4 4、1、2、3、5、6、 Keep

FPGA Done 信号をア ク テ ィ ブにする ス ター ト ア ッ プフェーズを選択します。 DonePipe=Yes の場合、 Done は遅延されます。

BITSTREAM.STARTUP.GTS_CYCLE

5 5、1、2、3、4、6、Done、Keep

I/O バッファーへの内部ト ラ イステート制御を解放するスタート アップ フェーズを選択します。

表 A-1 : デバイス コンフ ィギュレーシ ョ ン設定 (続き)

設定 デフォルト値 有効な値 説明

プログラムおよびデバッグ japan.xilinx.com 84UG908 (v2013.1) 2013 年 3 月 20 日

Page 85: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

BITSTREAM.STARTUP.GWE_CYCLE

6 6、 1、 2、 3、4、 5、 Done、Keep

フ リ ップフロ ップ、 LUT RAM、 およびシフ ト レジスタへの内部イネーブルをアサー トするスター ト アップ フェーズを選択します。 BRAM も イネーブルにします。 このスタート アップ フェーズの前は、BRAM の書き込みおよび読み出しの両方がディ スエーブルです。

BITSTREAM.STARTUP.LCK_CYCLE

NoWait NoWait、 0、1、 2、 3、 4、5、 6

DLL/DCM/PLL がロ ッ ク されるまで待機するスタート アップ フェーズを選択します。 NoWait に設定する と、 スタート アップ シーケンスは DLL/DCM/PLL がロ ッ ク されるまで待機されません。

BITSTREAM.STARTUP.MATCH_CYCLE

Auto Auto、NoWait、 0、1、 2、 3、 4、5、 6

デジタル制御インピーダンス (DCI) 一致信号がアサート されるまで待機するスタート アップ サイクルを指定します。DCI の一致は、 BitGen で設定された Match_cycle では開始しません。スタート アップ シーケンスは DCI が一致するまでこのサイクルで待機します。 DCI が一致するのにかかる時間にはさまざま要素が影響するので、 スター ト アップシーケンスが完了するのに必要な CCLK サイ クル数は、同じシステムでも異なる場合があ り ます。 DONE が High にな る までコ ン フ ィ ギ ュ レーシ ョ ン ソ リ ューシ ョ ンでCCLK を駆動するのが理想的です。

BITSTREAM.STARTUP.STARTUPCLK

Cclk Cclk、UserClk、JtagClk

デバイスのコンフ ィギュレーシ ョ ン後の StartupClk シーケンスは、 Cclk、 ユーザー ク ロ ッ ク、 または JTAG クロ ッ クに同期させるこ とができます。 デフォルトは Cclk です。

• Cclk : FPGA デバイスで供給される内部クロ ッ クに同期します。

• UserClk : STARTUP シンボルの CLK ピンに接続されているユーザー定義信号に同期します。

• JtagClk : JTAG で供給されるクロ ッ クに同期します。 このク ロ ッ クは、 JTAG の制御ロジッ ク と して使用されるTAP コン ト ローラーをシーケンスします。

表 A-1 : デバイス コンフ ィギュレーシ ョ ン設定 (続き)

設定 デフォルト値 有効な値 説明

プログラムおよびデバッグ japan.xilinx.com 85UG908 (v2013.1) 2013 年 3 月 20 日

Page 86: Vivado Design Suite - Xilinx...プログラムおよびデバッグ japan.xilinx.com 2 UG908 (v2013.1) 2013 年 3 月 20 日 Notice of Disclaimer The information disclosed to you hereunder

プログラムおよびデバッグ japan.xilinx.com 86UG908 (v2013.1) 2013 年 3 月 20 日

付録 B

その他のリソース

ザイリンクス リソースアンサー、 資料、 ダウンロード、 フォーラムなどのサポート リ ソースについては、 次のザイ リ ンクス サポート サイト を参照して ください。

http://japan.xilinx.com/support

ザイ リ ンクス資料で使用される用語集については、 次を参照して ください。

http://japan.xilinx.com/company/terms.htm

ソリューシ ョ ン センターデバイス、 ツール、 IP のサポートについては、 ザイ リ ンクス ソ リ ューシ ョ ン センターを参照して ください。 ト ピックには、 デザイン アシスタン ト、 アドバイザリ、 ト ラブルシュート ヒ ン ト などが含まれます。

参考資料このガイ ドの補足情報は、 次の資料を参照して ください。

Vivado® Design Suite 2013.1 の資料 : http://japan.xilinx.com/cgi-bin/docs/rdoc?v=2013.1;t=vivado+docs

1. 『Vivado Design Suite ユーザー ガイ ド : ロジッ ク シ ミ ュレーシ ョ ン』 (UG937)

2. 『Vivado Design Suite ユーザー ガイ ド : 合成』 (UG901)

3. 『Vivado Design Suite ユーザー ガイ ド : インプ リ メンテーシ ョ ン』 (UG904)

4. 『Vivado Design Suite ユーザー ガイ ド : リ リース ノート 、 インス トールおよびライセンス』 (UG973)

5. 『Vivado Design Suite ユーザー ガイ ド : デザイン フローの概要』 (UG892)

ISE Design Suite 14.5 の資料

6. iMPACT ヘルプ : http://www.xilinx.com/cgi-bin/docs/rdoc?l=ja;v=14.5;d=isehelp_start.htm;a=pim_c_overview.htm

7. Integrated Logic Analyzer (ILA) v2 データシート (DS875)