Vivado Design Suite ユーザー ガ イ ド プ ログ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資 料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情 報につきましては、必ず最新英語版をご参照ください。 改訂履歴 次の表に、 こ の文書の改訂履歴を示 し ます。 日付 バージ ョ ン 2015 年 6 月 24 日 2015.2 • XVC に関する 新 し いセ ク シ ョ ン を追加 • 付録 A に UltraScale のセ ク シ ョ ン を追加 2015 年 4 月 1 日 2015.1 • • • • Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 改訂内容 Vivado Lab Edition に関す る 新 し い章を追加 読みやす く する ため第 2 章を分割 Vivado ダ ッ シ ュ ボー ド に関す る 新 し いセ ク シ ョ ン を追加 デバ ッ グ ハブに関す る 情報を追加 japan.xilinx.com 2 目次 改訂履歴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 第 1 章 : 概要 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 デバ ッ グ用語集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 第 2 章 : Vivado Lab Edition イ ン ス ト ール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Vivado Lab Edition の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Vivado Lab Edition プ ロ ジ ェ ク ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 プ ロ グ ラ ミ ン グ機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 デバ ッ グ機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 第 3 章 : ビ ッ ト ス ト リ ームの生成 ビ ッ ト ス ト リ ーム フ ァ イ ルの フ ォーマ ッ ト 設定の変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム設定の変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 第 4 章 : FPGA デバイ スのプ ログ ラ ム ハー ド ウ ェ ア マネージ ャ ーを開 く . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ハー ド ウ ェ ア タ ーゲ ッ ト 接続を開 く . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . hw_server を使用 し たハー ド ウ ェ ア タ ーゲ ッ ト への接続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 新 し いハー ド ウ ェ ア タ ーゲ ッ ト を開 く . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ハー ド ウ ェ ア タ ーゲ ッ ト の ト ラ ブルシ ュ ーテ ィ ン グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . プ ロ グ ラ ム フ ァ イ ルをハー ド ウ ェ ア デバ イ ス に関連付け . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ハー ド ウ ェ ア デバ イ ス のプ ロ グ ラ ム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ハー ド ウ ェ ア タ ーゲ ッ ト を閉 じ る . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ハー ド ウ ェ ア サーバーへの接続を閉 じ る . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 低い JTAG ク ロ ッ ク 周波数での タ ーゲ ッ ト デバ イ スへの接続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . JTAG チ ェーンに 32 個を超え る デバ イ ス を含むサーバーへの接続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vivado での リ モー ト デバ ッ グ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 18 19 20 22 23 24 25 25 25 26 27 第 5 章 : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバイ スのプ ログ ラ ム コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス で使用する ビ ッ ト ス ト リ ームの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ フ ァ イ ルの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vivado でハー ド ウ ェ ア タ ーゲ ッ ト に接続. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス の追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス のプ ロ グ ラ ム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . デバ イ ス の起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 32 33 33 35 37 第 6 章 : ア ド バン ス プ ログ ラ ミ ング機能 リ ー ド バ ッ ク お よ び検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 3 eFUSE 操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . バ ッ テ リ ー バ ッ ク ア ッ プ型の RAM (BBR) を使用 し た AES キー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FUSE_DNA : デバ イ ス DNA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . シ ス テ ム モニ タ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 40 43 48 第 7 章 : デザイ ンのデバ ッ グ RTL レベル デザ イ ン シ ミ ュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . イ ンプ リ メ ン テーシ ョ ン後のデザ イ ン シ ミ ュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . イ ン シ ス テ ム ロ ジ ッ ク デザ イ ンのデバ ッ グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . イ ン シ ス テ ム シ リ アル I/O デザ イ ンのデバ ッ グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 51 51 51 第 8 章 : イ ン シ ス テム ロ ジ ッ ク デザイ ンのデバ ッ グ フ ロー イ ン シ ス テ ム デバ ッ グ用のデザ イ ンのプ ロ ーブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ネ ッ ト リ ス ト 挿入デバ ッ グ プ ロ ーブ フ ロ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HDL イ ン ス タ ン シエーシ ョ ン デバ ッ グ プ ロ ーブ フ ロ ーの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HDL イ ン ス タ ン シエーシ ョ ン デバ ッ グ プ ロ ーブ フ ロ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . デバ ッ グ コ ア を含むデザ イ ンの イ ンプ リ メ ン テーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 53 64 64 68 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ Vivado ロ ジ ッ ク 解析を使用 し たデザ イ ンのデバ ッ グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 ハー ド ウ ェ ア タ ーゲ ッ ト に接続 し て FPGA デバ イ ス をプ ロ グ ラ ム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Vivado ハー ド ウ ェ ア マネージ ャ ーのダ ッ シ ュ ボー ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 計測のための ILA コ アの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 ILA プ ロ ーブ情報の記述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 ILA プ ロ ーブ情報の読み出 し . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 ILA コ アか ら のデー タ を波形ビ ュ ーアーで表示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 ILA コ アでキ ャ プチ ャ さ れたデー タ の保存お よ び復元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 計測のための VIO コ アの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 VIO コ アの ス テー タ ス の表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 VIO コ アの出力プ ロ ーブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 JTAG-to-AXI Master デバ ッ グ コ ア を使用 し たハー ド ウ ェ ア シ ス テ ム通信. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 ラ ボ環境での Vivado ロ ジ ッ ク 解析の使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 ハー ド ウ ェ ア マネージ ャ ーの Tcl オブジ ェ ク ト お よ び コ マ ン ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Tcl コ マ ン ド を使用 し た JTAG-to-AXI Master コ アへのア ク セ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 ILA を測定す る Tcl コ マ ン ド の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 ス タ ー ト ア ッ プ時の ト リ ガー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 第 10 章 : 波形ウ ィ ン ド ウ を使用 し た ILA プ ローブ デー タ の表示 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 波形 コ ン フ ィ ギ ュ レーシ ョ ンのカ ス タ マ イ ズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . オブジ ェ ク ト 名の変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . バス の基数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . アナ ロ グ波形の表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ズーム機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 117 120 121 122 124 第 11 章 : イ ン シ ス テム シ リ アル I/O デバ ッ グ フ ロー 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Vivado IP カ タ ロ グ を使用 し た IBERT コ アの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 IBERT サンプル デザ イ ンの生成 と イ ンプ リ メ ン テーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 4 第 12 章 : ハー ド ウ ェ ア でのシ リ アル I/O デザイ ンのデバ ッ グ Vivado シ リ アル I/O 解析を使用 し たデザ イ ンのデバ ッ グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 付録 A : デバイ ス コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム設定 7 シ リ ーズお よ び Zynq 7000 ビ ッ ト ス ト リ ーム設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 UltraScale ビ ッ ト ス ト リ ーム設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 付録 B : ト リ ガー ス テー ト マシ ンの言語記述 ス テー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . goto ア ク シ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 条件分岐 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . カ ウ ン ター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . フラグ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 条件文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 156 156 157 157 158 付録 C : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ のサポー ト Artix-7 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kintex-7 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Virtex-7 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kintex UltraScale コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Virtex UltraScale コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zynq-7000 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 165 167 169 172 174 付録 D : その他のソ ースおよび法的通知 ザ イ リ ン ク ス リ ソ ース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ソ リ ュ ーシ ョ ン セ ン タ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 参考資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ト レーニ ン グ コ ース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 法的通知 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 176 176 176 177 177 5 第 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] Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 6 第 1 章 : 概要 デバ ッ グ用語集 ILA : ILA (Integrated Logic Analyzer) 機能を使用する と 、 FPGA デバ イ ス の イ ンプ リ メ ン ト 後のデザ イ ン を イ ン シ ス テ ムでデバ ッ グで き ます。 こ の機能は、 デザ イ ン で信号を監視す る 必要があ る 場合に使用 し ます。 ハー ド ウ ェ ア イ ベン ト を ト リ ガー し 、 デー タ を シ ス テ ム速度でキ ャ プチ ャ す る ために も 使用で き ます。 ILA コ アは、 RTL コ ー ド に イ ン ス タ ン シエー ト す る か、 Vivado デザ イ ン フ ロ ーの合成後の段階で挿入 し ます。 ILA コ アの詳細お よ びその Vivado Design Suite での使用方法は、 第 8 章お よ び第 9 章を参照 し て く だ さ い。 ILA コ ア IP の詳 細は、 『LogiCORE IP Integrated Logic Analyzer 製品ガ イ ド 』 (PG172) [参照 17] を参照 し て く だ さ い。 VIO : VIO (Virtual Input/Output) は、内部 FPGA 信号を リ アル タ イ ムに監視お よ び駆動で き る デバ ッ グ機能です。 タ ー ゲ ッ ト ハー ド ウ ェ アへの物理的な ア ク セ ス がない場合は、 こ のデバ ッ グ機能を使用 し て、 実際のハー ド ウ ェ アにあ る 信号を駆動お よ び監視で き ます。 こ のデバ ッ グ コ アは RTL コ ー ド に イ ン ス タ ン シエー ト す る 必要があ る ので、 ど のネ ッ ト を駆動す る のか前 も っ て決 めてお く 必要があ り ます。こ の コ アは IP カ タ ロ グの Debug カ テ ゴ リ に含まれます。VIO コ アの詳細お よ びその Vivado Design Suite での使用方法は、 第 9 章を参照 し て く だ さ い。 VIO コ ア IP の詳細は、 『LogiCORE IP Virtual Input/Output 製品ガ イ ド 』 (PG 159) [参照 13] を参照 し て く だ さ い。 IBERT : IBERT (Integrated Bit Error Ratio Tester) Serial Analyzer デザ イ ン を使用す る と 、 イ ン シ ス テ ム シ リ アル I/O の 検証お よ びデバ ッ グが可能にな り ます。 こ の機能を使用する と 、 FPGA ベース シ ス テ ムの高速シ リ アル I/O リ ン ク を 計測お よ び最適化で き ま す。 単純な ク ロ ッ ク や接続の問題か ら 複雑なマージ ン解析お よ びチ ャ ネル最適化の問題ま で、 さ ま ざ ま な イ ン シ ス テ ム デバ ッ グお よ び検証の問題を解決す る には、 IBERT Serial Analyzer デザ イ ン を使用す る こ と をお勧め し ます。 IBERT Serial Analyzer デザ イ ンは、 受信信号に レ シーバー イ コ ラ イ ゼーシ ョ ンが適用 さ れた後の信号の質を計測す る ために も 使用で き ます。 こ れに よ り 、 TX か ら RX へのチ ャ ネルの最適なポ イ ン ト 、 つま り 実際の正 し いデー タ が計 測 さ れ ま す。 こ のデザ イ ン には、 IP カ タ ロ グ か ら IBERT コ ア を選択、 設定、 生成 し て、 こ の コ ア の [Open Example Design] を選択す る と ア ク セ ス で き ます。IBERT コ アの詳細お よ びその Vivado Design Suite での使用方法は、第 8 章お よ び第 9 章を参照 し て く だ さ い。 使用可能な さ ま ざ ま な IBERT デザ イ ンの詳細は、 『LogiCORE IP IBERT for 7 Series GTX Transceivers 製 品 ガ イ ド 』 (PG132) [ 参照 14]、 『LogiCORE IP IBERT for 7 Series GTP Transceivers 製 品 ガ イ ド 』 (PG133) [参照 15]、『LogiCORE IP IBERT for 7 Series GTH Transceivers 製品ガ イ ド 』 (PG152) [参照 16] を参照 し て く だ さ い。 JTAG-to-AXI Master : JTAG-to-AXI Master デバ ッ グ機能は、ハー ド ウ ェ アで動作中の さ ま ざ ま な AXI フルお よ び AXI Lite ス レーブ コ ア と 通信す る AXI ト ラ ンザ ク シ ョ ン を生成す る ために使用 さ れ ます。 AXI ト ラ ンザ ク シ ョ ン を生成 し 、 ラ ン タ イ ムに FPGA 内部で AXI 信号をデバ ッ グお よ び駆動する には、 こ の コ ア を使用す る こ と をお勧め し ます。 こ の コ アは、 プ ロ セ ッ サのないデザ イ ンでで も 使用で き ます。 こ の コ アは IP カ タ ロ グの Debug カ テ ゴ リ に含ま れ ます。 VIO コ アの詳細お よ びその Vivado Design Suite での使用方 法は、 第 9 章を参照 し て く だ さ い。 JTAG-to-AXI コ アの詳細は、 『LogiCORE IP JTAG to AXI Master v1.0 製品ガ イ ド 』 (PG174) [参照 18] を参照 し て く だ さ い。 Debug Hub : Vivado Debug Hub コ アは、 FPGA デバ イ ス の JTAG バ ウ ン ダ リ ス キ ャ ン (BSCAN) イ ン タ ーフ ェ イ ス と 、 次の タ イ プの コ ア を含む Vivado デバ ッ グ コ ア と の間の イ ン タ ーフ ェ イ ス を提供 し ます。 • ILA (Integrated Logic Analyzer) • VIO (Virtual Input/Output) • IBERT (Integrated Bit Error Ratio Test) • JTAG-to-AXI • MIG 重要 : Vivado Debug Hub コ ア を デザ イ ン に イ ン ス タ ン シ エー ト す る こ と はで き ま せん。 こ れは opt_design の段階で Vivado に よ り 挿入 さ れます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 7 第 1 章 : 概要 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 8 第 2章 Vivado Lab Edition Vivado® Lab Edition は フ ル バージ ョ ン の Vivado Design Suite を ス タ ン ド ア ロ ン に イ ン ス ト ールで き る エデ ィ シ ョ ン で、 ザ イ リ ン ク ス FPGA のビ ッ ト ス ト リ ーム を生成 し た後に、 FPGA をプ ロ グ ラ ムお よ びデバ ッ グす る のに必要なす べての機能を備え てい ます。 コ ン ピ ュ ー タ ーのデ ィ ス ク 要領、 メ モ リ 、 コ ネ ク テ ィ ビ テ ィ に関 し て コ ン ピ ュ ー タ ー リ ソ ース が少ない ラ ボ環境でのプ ロ グ ラ ミ ン グやデバ ッ グに使用す る のが一般的です。 Vivado Lab Editon は イ ン ス ト ー ル パ ッ ケージ サ イ ズが 1GB、 イ ン ス ト ール後にハー ド デ ィ ス ク を占め る 容量は約 1.3GB と 、 軽減 さ れてい ます。 イ ン ス ト ール Vivado Lab Edition を イ ン ス ト ールす る には、 Lab Edition イ ン ス ト ー ラ ーが必要です。 詳細な イ ン ス ト ール、 ラ イ セ ン スお よ び リ リ ー ス 情報については、 『Vivado Design Suite ユーザー ガ イ ド : リ リ ー ス ノ ー ト 、 イ ン ス ト ールお よ び ラ イ セ ン ス』 (UG973)[参照 1] を参照 し て く だ さ い。 Windows での Vivado Lab Edition の起動 Vivado Lab Edition を起動す る には、 次の順に ク リ ッ ク し て く だ さ い。 [ス タ ー ト ] → [すべてのプ ロ グ ラ ム] → [Xilinx Design Tools] → [Vivado Lab 2015.2] → [Vivado Lab 2015.2] Windows または Linux の コ マ ン ド ラ イ ンか ら の Vivado Lab Edition の起動 コ マ ン ド プ ロ ンプ ト に次の コ マ ン ド を入力 し ます。 vivado_lab ヒ ン ト : コ マ ン ド プ ロ ンプ ト で vivado_lab を実行す る には、 使用する OS にあわせ、 次のいずれかの ス ク リ プ ト を使 用 し て環境を設定 し ます。 C:\Xilinx\Vivado_Lab\2015.2\settings32.(bat|sh) C:\Xilinx\Vivado_Lab\2015.2\settings64.(bat|sh) 推奨 : Vivado Lab Edition はど のデ ィ レ ク ト リ か ら で も 開 く こ と がで き ますが、こ のエデ ィ シ ョ ンの ロ グ フ ァ イ ルお よ びジ ャ ーナル フ ァ イ ルは起動デ ィ レ ク ト リ に書 き 込ま れ る ので、 プ ロ ジ ェ ク ト デ ィ レ ク ト リ か ら 実行す る こ と をお 勧め し ます。コ マ ン ド プ ロ ンプ ト か ら 実行す る 場合、プ ロ ジ ェ ク ト デ ィ レ ク ト リ か ら Vivado を起動する か、vivado_lab - log お よ び -journal オプシ ョ ン を使用 し て、 デ ィ レ ク ト リ を指定 し ま す。 Windows シ ョ ー ト カ ッ ト を使用す る 場合 は、 シ ョ ー ト カ ッ ト を右 ク リ ッ ク し て [プ ロ パテ ィ ] を ク リ ッ ク し 、 [作業フ ォ ルダー ] を変更す る 必要があ り ま す。 書 き 込み権限のないプ ロ ジ ェ ク ト デ ィ レ ク ト リ か ら 起動する と 、 ツールか ら 警告 メ ッ セージが表示 さ れた り 、 予期 し ない動作が見 ら れます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 9 第 2 章 : Vivado Lab Edition Vivado Lab Edition の使用 Vivado Lab Edition を起動す る と 、 Vivado Lab Edition を使用 し 始め る にあ た っ ての必要な さ ま ざ ま な リ ン ク を含んだ Getting Started ページ (図 2-1) が表示 さ れます。 X-Ref Target - Figure 2-1 図 2‐1 : Vivado Lab Edition の開始ページ プ ロ ジ ェ ク ト の開始 デザ イ ン をプ ロ グ ラ ム ま たはデバ ッ グす る には、 プ ロ ジ ェ ク ト を作成す る か開いて、 タ ーゲ ッ ト サーバーお よ びデバ イ ス に接続 し ます。 Getting Started ページの [Quick Start] セ ク シ ョ ンには、 次の タ ス ク に簡単にア ク セ ス で き る リ ン ク が表示 さ れます。 • 新規プ ロ ジ ェ ク ト を作成す る ためのダ イ ア ロ グ ボ ッ ク ス でプ ロ ジ ェ ク ト を作成 • 既存プ ロ ジ ェ ク ト を開 く 注記 : [Recent Projects] リ ス ト か ら は最近開いたプ ロ ジ ェ ク ト を開 く こ と も で き ます。 ハー ド ウ ェ ア マネージ ャ ーを開 く Vivado Design Suite ハー ド ウ ェ ア マネージ ャ ーを開 く と 、 デザ イ ン ビ ッ ト ス ト リ ーム をデバ イ ス にダ ウ ン ロ ー ド で き ます。 Vivado ロ ジ ッ ク 解析機能お よ び Vivado シ リ アル I/O 解析機能を使用す る と 、 デザ イ ン をデバ ッ グで き ます。 た と えば、 ILA、 VIO お よ び JTAG-to-AXI コ ア をデザ イ ンに追加 し て Vivado ロ ジ ッ ク 解析機能でデバ ッ グ し た り 、 ザ イ リ ン ク ス IP カ タ ロ グか ら IBERT サンプル デザ イ ン を使用 し 、 Vivado シ リ アル I/O 解析機能で GT を テ ス ト お よ び コ ン フ ィ ギ ュ レーシ ョ ン し た り で き ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 10 第 2 章 : Vivado Lab Edition 資料およびビデオの確認 Getting Started ページか ら Xilinx Documentation Navigator を使用 し て、 ユーザー ガ イ ド 、 チ ュ ー ト リ アル、 ビデオ、 リ リ ース ノ ー ト と い っ た資料にア ク セ スする こ と がで き ます。 Vivado Lab Edition プ ロ ジ ェ ク ト Vivado Lab Edition を使用す る と 、 ラ ボ環境でプ ロ ジ ェ ク ト を作成で き ます。 関連 し たプ ロ グ ラ ミ ン グお よ び ラ ン タ イ ム デバ ッ グの環境設定や基本設定はプ ロ ジ ェ ク ト に保存 さ れます。 プ ロ ジ ェ ク ト を も う 1 度開 く と 、 設定は復活 し ます。 Vivado Lab Edition プ ロ ジ ェ ク ト は Vivado Lab Edition ツールお よ び Vivado Design Suite の両方で作成で き ます。 新規プ ロ ジ ェ ク ト の作成 Vivado Lab Edition で新 し く プ ロ ジ ェ ク ト を作成す る には、 次の よ う に [Create New Project] ア イ コ ン を ク リ ッ ク し ま す。 [New Vivado Lab Edition Project] ダ イ ア ロ グ ボ ッ ク ス にプ ロ ジ ェ ク ト 名お よ びデ ィ レ ク ト リ を入力 し ます。新 し い プ ロ ジ ェ ク ト が作成 さ れ る と 、 Vivado Lab Edition がプ ロ ジ ェ ク ト フ ァ イ ルを作成 し ます。 こ のプ ロ ジ ェ ク ト フ ァ イ ルには、 New Project ウ ィ ザー ド で入力 し たプ ロ ジ ェ ク ト 名 と 同 じ 名前が付け ら れ、 .lpr と い う 拡張子が付 き ます。 次 の図 2-2 を参照 し て く だ さ い。 X-Ref Target - Figure 2-2 図 2‐2 : Vivado Lab Edition での新規プ ロ ジ ェ ク ト の作成 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 11 第 2 章 : Vivado Lab Edition Tcl コ マ ン ド を使用 し た プ ロ ジ ェ ク ト の作成 プ ロ ジ ェ ク ト は、 Tcl コ マ ン ド を使用 し て も 作成で き ます。 Vivado Lab Edition の [Tcl Console] ウ ィ ン ド ウ に次の コ マ ン ド を入力す る か、 Tcl フ ァ イ ルか ら source コ マ ン ド で読み込みます。 create_project project_1 C:/Lab_edition/project_1 プ ロ ジ ェ ク ト を開 く 既存のプ ロ ジ ェ ク ト を開 く には、 図 2-3 にあ る ア イ コ ン を ク リ ッ ク する か、 [Recent Projects] リ ス ト にあ る プ ロ ジ ェ ク ト を ダブル ク リ ッ ク し ます。Vivado Lab Edition プ ロ ジ ェ ク ト フ ァ イ ル (.lpr) を開 く ためのダ イ ア ロ グ ボ ッ ク ス が表示 さ れます。 [Recent Projects] リ ス ト にはデフ ォ ル ト で 10 プ ロ ジ ェ ク ト 表示 さ れます。 こ の数は、 [Tools] → [Options] の [General] ページで変更で き ます。 Viivado Lab Edition はプ ロ ジ ェ ク ト を表示す る 前に、 そのプ ロ ジ ェ ク ト デー タ が存 在す る か ど う か を確認 し ます。 X-Ref Target - Figure 2-3 図 2‐3 : [Open Vivado Lab Edition Project] ダ イ ア ログ ボ ッ ク ス Tcl コ マ ン ド を使用 し て プ ロ ジ ェ ク ト を開 く プ ロ ジ ェ ク ト は Tcl コ マ ン ド で も 開 く こ と がで き ます。 Vivado Lab Edition の [Tcl Console] ウ ィ ン ド ウ に次の コ マ ン ド を入力す る か、 Tcl フ ァ イ ルか ら source コ マ ン ド で読み込みます。 open_project C:/Lab_edition/project_1/project_1.lpr Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 12 第 2 章 : Vivado Lab Edition Vivado Lab Edition で既存のビ ッ ト ス ト リ ーム (.bit) およびデバ ッ グ プ ローブ (.ltx) フ ァ イルを使用 Vivado Lab Edition が イ ン ス ト ール さ れてい る ラ ボ コ ン ピ ュ ー タ ーで実行 し た イ ン プ リ メ ン テーシ ョ ン run の既存の BIT フ ァ イ ルお よ び LTX フ ァ イ ルを使用す る こ と がで き ます。 一般的な フ ロ ーは次の よ う にな り ます。 • Vivado Lab Edition プ ロ ジ ェ ク ト を新 し く 作成 し ます。 • ボー ド に接続 し ます。 • プ ロ ジ ェ ク ト の BIT フ ァ イ ルお よ び LTX フ ァ イ ルを指定 し ます。 注記 : フ ァ イ ルは手動で コ ピーす る こ と も で き ます し 、 ネ ッ ト ワ ー ク ド ラ イ ブにあ る フ ァ イ ルを参照す る こ と も で き ます。 • デバ イ ス をプ ロ グ ラ ム し ます。 • ハー ド ウ ェ アでデザ イ ン をデバ ッ グ し ます。 • 変更はプ ロ ジ ェ ク ト に継続的に保存 さ れます。 • ユーザー設定、 ラ ン タ イ ム マネージ ャ ー デバ ッ グ ダ ッ シ ュ ボー ド 、 ウ ィ ン ド ウ設定は継続的にプ ロ ジ ェ ク ト に 保存 さ れます。 • ユーザー設定、 ラ ン タ イ ム マネージ ャ ー デバ ッ グ ダ ッ シ ュ ボー ド 、 ウ ィ ン ド ウ設定はプ ロ ジ ェ ク ト を再度開い た と き に復活 し ます。 Vivado Design Suite Edition からの既存 LPR プ ロ ジ ェ ク ト の使用 Vivado Design Suite はプ ロ ジ ェ ク ト 開始時に LPR フ ァ イ ルを作成 し 、ハー ド ウ ェ ア マネージ ャ ーを使用 し てデザ イ ン をプ ロ グ ラ ム ま たはプ ロ ジ ェ ク ト でデザ イ ン をデバ ッ グす る と き に、 こ の フ ァ イ ルを該当す る 詳細情報 と と も に読み 込み ます。 こ の フ ァ イ ルは、 project_name.hw デ ィ レ ク ト リ に project_name.lpr と い う 名前で保存 さ れてい ます。 こ のプ ロ ジ ェ ク ト フ ァ イ ルは Vivado Lab Edition で開 く こ と がで き ます。 一般的な フ ロ ーは次の よ う にな り ます。 • Vivado Lab Edition の開始ページにあ る [Open Project] を ク リ ッ ク し ます。 • Vivado IDE プ ロ ジ ェ ク ト デ ィ レ ク ト リ にあ る project_name.hw デ ィ レ ク ト リ を参照 し ます。 • project_name.hw デ ィ レ ク ト リ 内にあ る LPR プ ロ ジ ェ ク ト フ ァ イ ルを選択 し 、 [OK] を ク リ ッ ク し ます。 • ハー ド ウ ェ アに接続 し ます。 • 該当す る Vivado の run デ ィ レ ク ト リ か ら の BIT フ ァ イ ルお よ び LTX フ ァ イ ルを使用 し てプ ロ グ ラ ムお よ びデ バ ッ グ を実行 し ます。 • ユーザー設定、 ラ ン タ イ ム マネージ ャ ー デバ ッ グ ダ ッ シ ュ ボー ド 、 ウ ィ ン ド ウ設定はプ ロ ジ ェ ク ト を開いた と き に復活 し ます。 プ ロ グ ラ ミ ング機能 プ ロ ジ ェ ク ト を開 き 、 ハー ド ウ ェ ア マネージ ャ ーを タ ーゲ ッ ト デバ イ ス に接続 し た ら 、 Vivado Lab Edition の Vivado Design Suite で使用で き る プ ロ グ ラ ミ ン グ機能をすべて使用で き ま す。 プ ロ グ ラ ミ ン グ関連の Tcl コ マ ン ド はすべて Vivado Lab Edition でサポー ト さ れてい ます。 プ ロ グ ラ ミ ン グ機能の詳細については、 第 5 章 「 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス のプ ロ グ ラ ム」 を参照 し て く だ さ い。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 13 第 2 章 : Vivado Lab Edition デバ ッ グ機能 プ ロ ジ ェ ク ト を開 き 、 ハー ド ウ ェ ア マネージ ャ ーを タ ーゲ ッ ト デバ イ ス に接続 し た ら 、 Vivado Lab Edition の Vivado Design Suite で使用で き る デバ ッ グ機能 を すべて使用で き ま す。 デバ ッ グ関連の Tcl コ マ ン ド はすべて Vivado Lab Edition でサポー ト さ れてい ます。 デバ ッ グ機能の詳細については、 第 9 章 「ハー ド ウ ェ アでの ロ ジ ッ ク デザ イ ンの デバ ッ グ」 を参照 し て く だ さ い。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 14 第 3章 ビ ッ ト ス ト リ ームの生成 ビ ッ ト ス ト リ ーム デー タ フ ァ イ ルを生成す る 前に、 ビ ッ ト ス ト リ ーム設定が正 し いか ど う か を確認す る こ と が重要 です。 Vivado® IDE には、 次の 2 つのビ ッ ト ス ト リ ーム設定があ り ます。 1. ビ ッ ト ス ト リ ーム フ ァ イ ルのフ ォーマ ッ ト 設定 2. デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ン設定 Flow Navigator の [Bitstream Settings] を ク リ ッ ク す る か、 [Flow] → [Bitstream Settings] を ク リ ッ ク す る と 、 [Project Settings] ダ イ ア ロ グ ボ ッ ク ス の [Bitstream] ページが開 き ます (図 3-1)。 ビ ッ ト ス ト リ ーム設定が正 し い こ と を確認 し た ら 、 write_bistream Tcl コ マ ン ド ま た は Flow Navigator の [Generate Bitstream] を 使用 し て ビ ッ ト ス ト リ ー ム デー タ フ ァ イ ルを生成で き ます。 X-Ref Target - Figure 3-1 図 3‐1 : [Project Settings] ダ イ ア ログ ボ ッ ク スの [Bitstream] ページ Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 15 第 3 章 : ビ ッ ト ス ト リ ームの生成 ビ ッ ト ス ト リ ーム フ ァ イルのフ ォーマ ッ ト 設定の変更 デフ ォ ル ト では、 write_bistream Tcl コ マ ン ド でバ イ ナ リ ビ ッ ト ス ト リ ーム フ ァ イ ル (.bit) が生成 さ れます。 生成 さ れ る フ ァ イ ルの フ ォーマ ッ ト を変更す る には、 次のオプシ ョ ン を使用 し ます。 • -raw_bitfile(オプシ ョ ン) : ロ ー ビ ッ ト フ ァ イ ル (.rbt) を生成 し ます。 ロ ー ビ ッ ト フ ァ イ ルには、 バ イ ナ リ ビ ッ ト ス ト リ ーム フ ァ イ ル と 同 じ 情報が ASCII 形式で含まれます。 出力フ ァ イ ル名は filename.rbt と な り ます。 • -mask_file(オプシ ョ ン) : マ ス ク フ ァ イ ル (.msk) を生成 し ます。 マ ス ク フ ァ イ ルには、 ビ ッ ト ス ト リ ーム フ ァ イ ルの コ ン フ ィ ギ ュ レーシ ョ ン デー タ が含ま れ る 場所を示すマ ス ク デー タ が含まれ ます。 こ の フ ァ イ ルは、 検証 時にビ ッ ト ス ト リ ームの ど のビ ッ ト を リ ー ド バ ッ ク デー タ と 比較する べき か を判断する ために使用 し ます。マ ス ク ビ ッ ト が 0 の場合、 そのビ ッ ト はビ ッ ト ス ト リ ーム デー タ に対 し て検証 さ れ、 1 の場合は検証 さ れません。 出 力フ ァ イ ル名は file.msk と な り ます。 • -no_binary_bitfile(オプシ ョ ン) : バ イ ナ リ ビ ッ ト ス ト リ ーム フ ァ イ ル (.bit) を生成 し ません。こ のオプシ ョ ンは、 バ イ ナ リ ビ ッ ト ス ト リ ーム フ ァ イ ルを生成せずに、 ASCII 形式のビ ッ ト ス ト リ ーム フ ァ イ ルま たはマ ス ク フ ァ イ ルを生成 し た り 、 ビ ッ ト ス ト リ ーム レ ポー ト を生成 し た り する 場合に使用 し ます。 • -logic_location_file(オプシ ョ ン) : ラ ッ チ、 フ リ ッ プ フ ロ ッ プ、 LUT、 ブ ロ ッ ク RAM、 I/O ブ ロ ッ ク 入力お よ び出 力の ビ ッ ト ス ト リ ーム位置 を示す ASCII 形式の ロ ジ ッ ク ロ ケーシ ョ ン フ ァ イ ル (.ll) を 生成 し ま す。 こ の ロ ケーシ ョ ン フ ァ イ ルではビ ッ ト がフ レームお よ びビ ッ ト 番号で示 さ れ る ので、FPGA レ ジ ス タ の内容を調べ る の に役立ち ます。 • -bin_file(オプシ ョ ン) : デバ イ ス プ ロ グ ラ ム デー タ のみを含むバ イ ナ リ フ ァ イ ル (.bin) を生成 し ます。 通常の ビ ッ ト ス ト リ ーム フ ァ イ ル (.bit) に含まれ る ヘ ッ ダー情報は含まれません。 • -reference_bitfile <arg>(オプシ ョ ン) : リ フ ァ レ ン ス ビ ッ ト ス ト リ ーム フ ァ イ ルを読み込み、 指定 し た リ フ ァ レ ン ス フ ァ イ ルか ら の変更部分のみを含む イ ン ク リ メ ン タ ル ビ ッ ト ス ト リ ーム フ ァ イ ル を生成 し ま す。 こ のパー シ ャ ル ビ ッ ト ス ト リ ームは、既存のデバ イ ス を ア ッ プデー ト さ れたデザ イ ン で イ ン ク リ メ ン タ ルにプ ロ グ ラ ムす る 場合に使用で き ます。 デバイ ス コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ー ム設定の変更 コ ン フ ィ ギ ュ レーシ ョ ン設定で最 も 頻繁に変更 さ れ る のは、 デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ン設定です。 こ れ ら の設 定はデバ イ ス モデルのプ ロ パテ ィ で あ り 、 選択 し た合成済み ま たは イ ン プ リ メ ン ト 済みデザ イ ン ネ ッ ト リ ス ト の [Edit Device Properties Properties] ダ イ ア ロ グ ボ ッ ク ス で変更 し ます。 こ の方法で さ ま ざ ま な ビ ッ ト ス ト リ ーム プ ロ パ テ ィ を変更す る には、 次の手順に従い ます。 1. [Tools] → [Edit Device Properties] を ク リ ッ ク し ます。 2. [Edit Device Properties] ダ イ ア ロ グ ボ ッ ク ス (図 3-2) の左側のカ テ ゴ リ か ら いずれか を選択 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 16 第 3 章 : ビ ッ ト ス ト リ ームの生成 ヒ ン ト : 検索フ ィ ール ド にプ ロ パテ ィ を入力 し ます。 た と えば、 jtag と 入力す る と 、 JTAG プ ロ グ ラ ムに関連す る プ ロ パテ ィ が検索 さ れて選択 さ れます。 X-Ref Target - Figure 3-2 図 3‐2 : [Edit Device Properties] ダ イ ア ロ グ ボ ッ ク ス 3. プ ロ パテ ィ に値を設定 し 、 [OK] を ク リ ッ ク し ます。 4. [File] → [Save Constraints] を ク リ ッ ク し 、 ア ッ プデー ト し た制約を タ ーゲ ッ ト XDC フ ァ イ ルに保存 し ます。 ビ ッ ト ス ト リ ーム プ ロ パテ ィ は、 XDC フ ァ イ ルで set_property コ マ ン ド を使用 し て設定す る こ と も 可能です。 次の例 では、 ス タ ー ト ア ッ プ DONE サ イ ク ル プ ロ パテ ィ を変更 し てい ます。 set_property BITSTREAM.STARTUP.DONE_CYCLE 4 [current_design] その他の例は、 Vivado テ ンプ レー ト に含まれてい ます。 付録 A 「デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ー ム設定」 に、 すべてのデバ イ ス コ ン フ ィ ギ ュ レーシ ョ ン設定が説明 さ れてい ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 17 第 4章 FPGA デバイ スのプ ログ ラ ム ビ ッ ト ス ト リ ー ム デー タ プ ロ グ ラ ム フ ァ イ ル を 生成 し た ら 、 タ ーゲ ッ ト FPGA デバ イ ス に ダ ウ ン ロ ー ド し ま す。 Vivado® IDE には、 こ の作業を行 う ための イ ン シ ス テ ム デバ イ ス プ ロ グ ラ ミ ン グ機能があ り ます。 Vivado Design Suite お よ び Vivado Lab Edition には、 1 つ以上の FPGA デバ イ ス を 含むハー ド ウ ェ ア に接続 し 、 その FPGA デバ イ ス を プ ロ グ ラ ム し て ア ク セ スす る 機能が含ま れてい ます。 ハー ド ウ ェ アへの接続は、 Vivado Lab edition ま たは Vivado Design Suite の GUI、 ま たは Tcl コ マ ン ド で実行で き ま す。 ど ち ら の場合 も 、 ハー ド ウ ェ アに接続 し 、 タ ーゲ ッ ト FPGA デバ イ ス をプ ロ グ ラ ムす る 手順は同 じ です。 1. ハー ド ウ ェ ア マネージ ャ ーを開 き ます。 2. ホ ス ト コ ン ピ ュ ー タ ー上で稼働中のハー ド ウ ェ ア サーバーで制御 さ れてい る ハー ド ウ ェ ア タ ーゲ ッ ト を開 き ま す。 3. ビ ッ ト ス ト リ ーム デー タ プ ロ グ ラ ム フ ァ イ ルを適切な FPGA デバ イ ス に関連付け ます。 4. プ ロ グ ラ ム フ ァ イ ルをハー ド ウ ェ ア デバ イ ス にプ ロ グ ラ ム (ダ ウ ン ロ ー ド ) し ます。 ハー ド ウ ェ ア マネージ ャ ーを開 く デザ イ ン をハー ド ウ ェ アにプ ロ グ ラ ム し た り デバ ッ グす る には、 まずハー ド ウ ェ ア マネージ ャ ーを開き ます。 ハー ド ウ ェ ア マネージ ャ ーを開 く には、 次のいずれか を実行 し ます。 • プ ロ ジ ェ ク ト を開いてい る 場合は、Flow Navigator で [Program and Debug] → [Open Hardware Manager] を ク リ ッ ク し ます。 • [Flow] → [Open Hardware Manager] を ク リ ッ ク し ます。 • [Tcl Console] ビ ュ ー で open_hw コ マ ン ド を実行 し ます。 ハー ド ウ ェ ア タ ーゲ ッ ト 接続を開 く 次に、 ハー ド ウ ェ ア タ ーゲ ッ ト (1 つ以上の FPGA デバ イ ス で構成 さ れ る JTAG チ ェーン を含むハー ド ウ ェ ア ボー ド な ど) を開 き 、 ハー ド ウ ェ ア タ ーゲ ッ ト への接続を制御す る ハー ド ウ ェ ア サーバーに接続 し ます。 こ れには、 次のい ずれか を実行 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 18 第 4 章 : FPGA デバイ スのプ ログ ラ ム • Flow Navigator で [Program and Debug] → [Hardware Manager] → [Open Target] を ク リ ッ ク し 、 新規ま たは最近の ハー ド ウ ェ ア タ ーゲ ッ ト を開 き ます (図 4-1)。 X-Ref Target - Figure 4-1 図 4‐1 : Flow Navigator から ハー ド ウ ェ ア タ ーゲ ッ ト を開 く • Hardware Manager 環境の上部にあ る 緑のユーザー ア シ ス タ ン ス バナーの [Open Target] → [Open recent target] ま たは [Open Target] → [Open New Target] を ク リ ッ ク し 、 最近開いた、 ま たは新 し いハー ド ウ ェ ア タ ーゲ ッ ト を開 き ます (図 4-2 を参照)。 X-Ref Target - Figure 4-2 図 4‐2 : ユーザー ア シ ス タ ン ス バナーからハー ド ウ ェ ア タ ーゲ ッ ト を開 く • Tcl コ マ ン ド を使用 し て、 ハー ド ウ ェ ア タ ーゲ ッ ト への接続を開 き ます。 ヒ ン ト : [Auto Connect] を使用す る と 、 ロ ーカル ハー ド ウ ェ ア タ ーゲ ッ ト に自動的に接続 さ れます。 hw_server を使用 し たハー ド ウ ェ ア タ ーゲ ッ ト への 接続 hw_server でサポー ト さ れ る 互換性のあ る JTAG ダ ウ ン ロ ー ド ケーブルお よ びデバ イ ス は、 次の と お り です。 • ザ イ リ ン ク ス プ ラ ッ ト フ ォーム ケーブル USB II (DLC10) • ザ イ リ ン ク ス プ ラ ッ ト フ ォーム ケーブル USB (DLC9G、 DLC9LP、 DLC9) • Digilent 社 JTAG-HS1 • Digilent 社 JTAG-HS2 • Digilent 社 JTAG-HS3 • Digilent 社 JTAG-SMT1 • Digilent 社 JTAG-SMT2 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 19 第 4 章 : FPGA デバイ スのプ ログ ラ ム ロ ー カ ル コ ン ピ ュ ー タ ー上 の タ ー ゲ ッ ト に 接続す る と 、 Vivado に よ り hw_server が 自動的 に 実行 さ れ ま す。 hw_server は、 ロ ー カ ル コ ン ピ ュ ー タ ー ま た は リ モー ト コ ン ピ ュ ー タ ー上で手動で実行す る こ と も で き ま す。 Windows プ ラ ッ ト フ ォーム上の Vivado フル イ ン ス ト ールでは、 コ マ ン ド プ ロ ンプ ト で次の コ マ ン ド を実行 し ます。 C:\Xilinx\Vivado\<Vivado_version>\bin\hw_server.bat Windows プ ラ ッ ト フ ォ ーム上の ス タ ン ド ア ロ ン のハー ド ウ ェ ア サーバー イ ン ス ト ールを使用す る 場合は、 コ マ ン ド プ ロ ンプ ト で次の コ マ ン ド を実行 し ます。 c:\Xilinx\HWSRVR\<Vivado_version>\bin\hw_server.bat 次のセ ク シ ョ ンの手順に従っ て、 こ のエージ ェ ン ト を使用 し て新 し いハー ド ウ ェ ア タ ーゲ ッ ト への接続を開き ます。 新 し いハー ド ウ ェ ア タ ーゲ ッ ト を開 く Open New Hardware Target ウ ィ ザー ド では、 ウ ィ ザー ド の指示に従いなが ら 、 ハー ド ウ ェ ア サーバー と タ ーゲ ッ ト を 接続で き ます。 ウ ィ ザー ド でのプ ロ セ ス は次の と お り です。 1. ハー ド ウ ェ ア タ ーゲ ッ ト を接続す る ロ ーカルま たは リ モー ト サーバーを選択 し ます。 • [Local server] :ハー ド ウ ェ ア タ ーゲ ッ ト を Vivado Lab Edition ま たは Vivado IDE を実行 し てい る コ ン ピ ュ ー タ ー に接続す る 場合に選択 し ます (図 4-3)。 Vivado に よ り 、 ロ ーカル コ ン ピ ュ ー タ ー上で Vivado ハー ド ウ ェ ア サー バー (hw_server) アプ リ ケーシ ョ ンが自動的に開始 さ れます。 • [Remote server] :ハー ド ウ ェ ア タ ーゲ ッ ト を Vivado Lab Edition ま たは Vivado IDE を実行 し てい る 別の コ ン ピ ュ ー タ ーに接続す る 場合に選択 し ます。 リ モー ト コ ン ピ ュ ー タ ーのホ ス ト 名ま たは IP ア ド レ ス と 、 その コ ン ピ ュ ー タ ー上で実行中のハー ド ウ ェ ア サーバー (hw_server) ア プ リ ケーシ ョ ン のポー ト 番号 を 指定 し ま す ( 図 4-4)。 リ モー ト デバ ッ グの詳細は、 105 ページの 「 ラ ボ コ ン ピ ュ ー タ ーで動作中の hw_server サーバーへの接 続」 を参照 し て く だ さ い。 重要 : リ モー ト サーバーを使用す る 場合は、 ハー ド ウ ェ ア サーバーに接続す る のに使用する Vivado のバージ ョ ン と 同 じ バージ ョ ンの Vivado ハー ド ウ ェ ア サーバー (hw_server) アプ リ ケーシ ョ ン を手動で開始す る 必要があ り ます。 ヒ ン ト : ラ ボ コ ン ピ ュ ー タ ーに リ モー ト で接続す る 場合は、その リ モー ト コ ン ピ ュ ー タ ー上に Vivado Design Suite の フル バージ ョ ン を イ ン ス ト ールす る 必要はあ り ません。軽量の Vivado ハー ド ウ ェ ア サーバー (ス タ ン ド ア ロ ン) ツー ルを イ ン ス ト ールで き ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 20 第 4 章 : FPGA デバイ スのプ ログ ラ ム X-Ref Target - Figure 4-3 図 4‐3 : ロー カル ハー ド ウ ェ ア サーバーの使用 X-Ref Target - Figure 4-4 図 4‐4 : リ モー ト ハー ド ウ ェ ア サーバーの使用 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 21 第 4 章 : FPGA デバイ スのプ ログ ラ ム 2. ハー ド ウ ェ ア サーバーで制御 さ れてい る タ ーゲ ッ ト の リ ス ト か ら 、 適切なハー ド ウ ェ ア タ ーゲ ッ ト を選択 し ま す。 タ ーゲ ッ ト を選択す る と 、 そのハー ド ウ ェ ア タ ーゲ ッ ト で使用可能なハー ド ウ ェ ア デバ イ ス が表示 さ れま す (図 4-5)。 X-Ref Target - Figure 4-5 図 4‐5 : ハー ド ウ ェ ア タ ーゲ ッ ト の選択 重要 : JTAG チ ェーンにサー ド パーテ ィ デバ イ ス があ る 場合は、 IDCODE、 IR の長 さ 、 名前を追加する ため、 「Vivado ハー ド ウ ェ ア マネージ ャ ー 2014.2/2014.3/2014.4 - JTAG チ ェ ーン でサー ド パーテ ィ デバ イ ス が認識 さ れない」 (ア ン サー 61312) にあ る 手順に従っ て く だ さ い。 ハー ド ウ ェ ア タ ーゲ ッ ト の ト ラ ブルシ ュ ーテ ィ ング ハー ド ウ ェ ア タ ーゲ ッ ト に接続す る 際に問題が発生する こ と があ り ます。 次に、 よ く 発生す る 問題 と その解決方法を 示 し ます。 • タ ーゲ ッ ト 上のハー ド ウ ェ ア デバ イ ス を正 し く 特定で き ない場合は、ハー ド ウ ェ アがデフ ォ ル ト の タ ーゲ ッ ト 周 波数で動作で き ない可能性があ り ます。 ハー ド ウ ェ ア タ ーゲ ッ ト ま たはケーブルの TCK ピ ンの周波数を調整で き ます (図 4-5)。 ハー ド ウ ェ ア タ ーゲ ッ ト の各 タ イ プでプ ロ パテ ィ が異な る こ と があ り ます。 プ ロ パテ ィ の詳細 は、 各ハー ド ウ ェ ア タ ーゲ ッ ト の資料を参照 し て く だ さ い。 • Vivado ハー ド ウ ェ ア サーバーに よ り JTAG チ ェ ーンに含まれ る すべてのデバ イ ス の命令レ ジ ス タ (IR) 長の自動 的な検出が試み ら れ ますが、 ま れに正 し く 検出で き ない こ と があ り ます。 不明なデバ イ ス の IR 長をチ ェ ッ ク し て、 その長 さ が正 し い こ と を確認 し て く だ さ い。 IR 長を指定す る 必要があ る 場合は、 Open New Hardware Target ウ ィ ザー ド の [Hardware Devices] の表に直接入力で き ます (図 4-5)。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 22 第 4 章 : FPGA デバイ スのプ ログ ラ ム 最近開いたハー ド ウ ェ ア タ ーゲ ッ ト を開 く Open New Hardware Target ウ ィ ザー ド では、前に接続 し たハー ド ウ ェ ア タ ーゲ ッ ト の リ ス ト も 生成 さ れます。ウ ィ ザー ド を使用 し てハー ド ウ ェ ア タ ーゲ ッ ト に接続 し な く て も 、 Hardware Manager 環境で [Open recent target] リ ン ク を ク リ ッ ク し 、 リ ス ト か ら 最近接続 し たハー ド ウ ェ ア サーバー/ タ ーゲ ッ ト の組み合わせを選択す る と 、前に接続 し たハー ド ウ ェ ア タ ーゲ ッ ト への接続 を再開で き ま す。 こ の最近使用 さ れた タ ーゲ ッ ト の リ ス ト には、 Vivado IDE の Flow Navigator の [Program and Debug] → [Hardware Manager] → [Open Target] か ら も ア ク セ ス で き ます。 Tcl コ マ ン ド を使用 し てハー ド ウ ェ ア タ ーゲ ッ ト を開 く Tcl コ マ ン ド を使用 し て、 ハー ド ウ ェ ア サーバー / タ ーゲ ッ ト に接続する こ と も 可能です。 た と えば、 localhost:3121上 の hw_server で制御 さ れ る digilent_plugin タ ーゲ ッ ト (シ リ アル番号 210203339395A) に接続す る には、 次の Tcl コ マ ン ド を使用 し ます。 connect_hw_server -url localhost:3121 current_hw_target [get_hw_targets */xilinx_tcf/Digilent/210203339395A] set_property PARAM.FREQUENCY 15000000 [get_hw_targets \ */xilinx_tcf/Digilent/210203339395A] open_hw_target ハー ド ウ ェ ア タ ーゲ ッ ト への接続を開 く と 、 [Hardware] ビ ュ ーにハー ド ウ ェ ア サーバー、 ハー ド ウ ェ ア タ ーゲ ッ ト 、 お よ び開いてい る タ ーゲ ッ ト 用の さ ま ざ ま なハー ド ウ ェ ア デバ イ ス が表示 さ れます (図 4-6)。 X-Ref Target - Figure 4-6 図 4‐6 : ハー ド ウ ェ ア タ ーゲ ッ ト への接続を開いた後の [Hardware] ビ ュ ー プ ロ グ ラ ム フ ァ イルをハー ド ウ ェ ア デバイ スに関 連付け ハー ド ウ ェ ア タ ーゲ ッ ト に接続 し た ら 、 FPGA デバ イ ス をプ ロ グ ラ ムす る 前に、 ビ ッ ト ス ト リ ーム デー タ プ ロ グ ラ ム フ ァ イ ル を デ バ イ ス に 関連付 け る 必要 が あ り ま す。 [Hardware] ビ ュ ー で ハ ー ド ウ ェ ア デ バ イ ス を 選択 し 、 [Properties] ビ ュ ーで [Programming File] プ ロ パテ ィ が適切な ビ ッ ト ス ト リ ーム デー タ フ ァ イ ル (.bit) に設定 さ れて い る こ と を確認 し ます。 注記 : Vivado IDE では、 開いてい る ハー ド ウ ェ ア タ ーゲ ッ ト の最初のデバ イ ス の [Programming File] プ ロ パテ ィ 値 と し て、 現在の イ ンプ リ メ ン ト 済みデザ イ ンの .bit フ ァ イ ルが自動的に使用 さ れます。 こ の機能は、 Vivado IDE をプ Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 23 第 4 章 : FPGA デバイ スのプ ログ ラ ム ロ ジ ェ ク ト モー ド で使用 し た場合にのみ使用で き ます。 Vivado IDE を非プ ロ ジ ェ ク ト モー ド で使用す る 場合は、 こ のプ ロ パテ ィ を手動で設定す る 必要があ り ます。 ま た、 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 の ス テー タ ス で確認で き ます (図 4-7)。 X-Ref Target - Figure 4-7 図 4‐7 : FPGA デバイ スの DONE ス テー タ ス を確認 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 ス テー タ ス だけでな く 、 デバ イ ス の さ ま ざ ま なプ ロ パテ ィ が更新 さ れます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 24 第 4 章 : FPGA デバイ スのプ ログ ラ ム ハー ド ウ ェ ア タ ーゲ ッ ト を閉 じ る ハー ド ウ ェ ア タ ーゲ ッ ト を閉 じ る には、 [Hardware] ビ ュ ーでハー ド ウ ェ ア タ ーゲ ッ ト を右 ク リ ッ ク し 、 [Close Target] を ク リ ッ ク し ま す。 Tcl コ マ ン ド で も 同 じ 操作 を 実行 で き ま す。 た と え ば、 localhost サーバー上の xilinx_platformusb/USB21 タ ーゲ ッ ト を閉 じ る には、 次の Tcl コ マ ン ド を使用 し ます。 close_hw_target {localhost/xilinx_tcf/Digilent/210203339395A} ハー ド ウ ェ ア サーバーへの接続を閉 じ る ハー ド ウ ェ ア サーバーへの接続を閉 じ る には、 [Hardware] ビ ュ ーでハー ド ウ ェ ア サーバーを右 ク リ ッ ク し 、 [Close Server] を ク リ ッ ク し ます。 Tcl コ マ ン ド で も 同 じ 操作を実行で き ます。 た と えば、 localhost サーバーへの接続を閉 じ る には、 次の Tcl コ マ ン ド を使用 し ます。 disconnect_hw_server localhost 低い JTAG ク ロ ッ ク周波数での タ ーゲ ッ ト デバイ ス への接続 JTAG チ ェ ーン は、 チ ェ ーン内で一番遅いデバ イ ス と 同 じ 速 さ にな り ま す。 JTAG ク ロ ッ ク の周波数を下げ る には、 JTAG ク ロ ッ ク 周波数がデフ ォ ル ト の JTAG ク ロ ッ ク 周波数 よ り も 低い タ ーゲ ッ ト デバ イ ス に接続 し ます。 デフ ォ ル ト の JTAG ク ロ ッ ク 周波数 (ケーブル接続の場合は 15MHz、 USB ケーブル接続の場合は 6MHz) を使用 し て 開いてみ る 必要があ り ます。 こ れ ら の速度で接続で き ない場合は、 次に説明す る よ う に、 デフ ォ ル ト の JTAG 周波数 を さ ら に下げ る こ と をお勧め し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 25 第 4 章 : FPGA デバイ スのプ ログ ラ ム JTAG ク ロ ッ ク 周波数 を 変更す る には、 Vivado Design Suite の Open New Hardware Target ウ ィ ザー ド を 使用 し ま す ( 図 4-8)。 X-Ref Target - Figure 4-8 図 4‐8 : Vivado で低い JTAG 周波数を選択 ま たは、 次の Tcl コ マ ン ド シーケ ン ス を使用 し ます。 open_hw connect_hw_server -host localhost -port 60001 -url machinename:3121 current_hw_target [get_hw_targets */xilinx_tcf/Digilent/210203327962A] set_property PARAM.FREQUENCY 250000 [get_hw_targets */xilinx_tcf/Digilent/210203327962A] open_hw_target JTAG チ ェ ーンに 32 個を超え るデバイ ス を含むサー バーへの接続 Vivado では、 JTAG チ ェ ーンに 32 個を超え る デバ イ ス を含むサーバーへ接続す る こ と が可能です。 ス キ ャ ン チ ェ ー ンでデバ イ ス を検出す る ための機能を有効にす る ため、 hw_server の開始時に max-jtag-devices オプシ ョ ン を 指定す る 必要があ り ます。 こ の設定のデフ ォ ル ト 値は 32 です。 こ の値を大 き く す る と 、 デバ イ ス検出プ ロ セ ス に時 間がかか り 、 ケーブル ア ク セ ス が遅 く な っ て し ま う 可能性があ る こ と に注意 し て く だ さ い。 次の よ う に、 hw_server の開始時に max-jtag-devices オプシ ョ ン を指定 し ます。 hw_server -e "set max-jtag-devices 64" Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 26 第 4 章 : FPGA デバイ スのプ ログ ラ ム Vivado での リ モー ト デバ ッ グ さ ま ざ ま な状況で リ モー ト デバ ッ グが必要にな る こ と が多 く な っ てい ます。 た と えば、 ラ ボへの物理的なア ク セ ス の ない場合に ラ ボでデザ イ ン をデバ ッ グす る 場合、 組織内で リ ソ ース を共有する 場合な ど、 製品のプ ロ ト タ イ プ段階で 必要にな る 可能性があ り ます。 リ モー ト デバ ッ グは、 問題を診断 し た り 、 製品 ラ イ フ サ イ ク ルを延長す る ための イ ン フ ィ ール ド デバ ッ グ/ア ッ プデー ト に必要な こ と も あ り ます。 ザ イ リ ン ク ス では、デザ イ ン を リ モー ト でデバ ッ グ/ア ッ プデー ト する 複数の ソ リ ュ ーシ ョ ン を提供 し てい ます。 こ れ は、 ラ ボでザ イ リ ン ク ス ハー ド ウ ェ ア サーバー製品を使用 し て リ モー ト コ ン ピ ュ ー タ に接続す る と 実行で き ます。 ま た、 ザ イ リ ン ク ス仮想ケーブル (XVC) プ ロ ト コ ルを イ ンプ リ メ ン ト し て も 、 ネ ッ ト ワー ク に接続 さ れたボー ド に接 続で き ます。 こ れ ら の各 ソ リ ュ ーシ ョ ンについては、 次のセ ク シ ョ ンで説明 し ます。 イ ーサネ ッ ト か ら Vivado ハー ド ウ ェ ア サーバーを使用 し たデ バッグ リ モー ト ラ ボ マシ ンには、 Vivado ハー ド ウ ェ ア サーバー製品を使用す る と 接続で き ます。 こ れは、 100MB 未満の小 さ いサ イ ズの ス タ ン ド ア ロ ン ダ ウ ン ロ ー ド で、 ラ ボ マシ ンに イ ン ス ト ール し ます。 こ のオプシ ョ ン を実行す る には、 イ ン ト ラ ネ ッ ト ま たは イ ン タ ーネ ッ ト ア ク セ ス が必要で、 ユーザーの組織内部でのみ使用で き ます。 X-Ref Target - Figure 4-9 +$5':$5(6(59(5 ,17(51(7,175$1(7 'HVN /DE ; 図 4‐9 : イ ン ト ラ ネ ッ ト /イ ン タ ーネ ッ ト か らハー ド ウ ェ ア サーバーを使用 し たデバ ッ グ ザイ リ ン ク ス仮想ケーブル (XVC) ザ イ リ ン ク ス仮想ケーブル (XVC) は、 Vivado IDE 2014.3.1 リ リ ース以降のバージ ョ ンでサポー ト さ れます。 ザ イ リ ン ク ス仮想ケーブルを使用す る と 、 USB ま たはパ ラ レル コ ン フ ィ ギ ュ レーシ ョ ン ケーブルな し にザ イ リ ン ク ス デバ イ ス にア ク セ ス し てデバ ッ グがで き ます。 こ の機能に よ り 、 次の よ う なデザ イ ン を Vivado IDE でデバ ッ グ し やす く な り ます。 • ラ ボ と PC が近 く にない場合に、 ア ク セ ス し に く い位置に FPGA があ る • ボー ド のデバ イ ス ピ ンへの直接ア ク セ ス がない (例 : JTAG ピ ンが ロ ーカル マ イ ク ロ プ ロ セ ッ サ イ ン タ ーフ ェ イ ス か ら のみア ク セ ス可能) XVC は JTAG ケーブルの よ う に動作す る イ ン タ ーネ ッ ト ベース (TCP/IP) プ ロ ト コ ルで、かな り 基本的な ケーブル コ マ ン ド を含みます。 XVC を使用す る と 、 イ ン ト ラ ネ ッ ト を介 し てシ ス テ ム をデバ ッ グで き ます。 こ の機能に よ り 、 コ ス ト のかか る 実行困難な伝搬が少な く な り 、 リ モー ト にあ る シ ス テ ム をデバ ッ グす る のにかか る 時間が削減 さ れ ま す。 XVC イ ンプ リ メ ン テーシ ョ ンはプ ロ グ ラ ム言語であ り 、 プ ラ ッ ト フ ォームが独立 し てい ます。 プ ロ セ ッ サか ら タ ーゲ ッ ト デバ イ スへの適切な JTAG コ マ ン ド を作成する には、 専用の JTAG ヘ ッ ダーを使用す る よ り も 、 既存の イ ーサネ ッ ト 接続 を 使用 し ま す。 XVC v1.0 プ ロ ト コ ル を 使用す る と 、 イ ーサ ネ ッ ト 接続 を 使用 し て Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 27 第 4 章 : FPGA デバイ スのプ ログ ラ ム Vivado か ら 同 じ JTAG コ マ ン ド を使用で き ま す。 既存の Vivado デバ ッ グお よ びプ ロ グ ラ ミ ン グ機能はサポー ト さ れ た ま ま にな り ます。 図 4-10 は よ く あ る ケース で、 デー タ セ ン タ ーでデバ イ ス をデバ ッ グす る 必要があ る 例を示 し てい ます。 こ れ ら のデ バ イ ス は、 ラ ッ ク にマ ウ ン ト さ れたボー ド 上の離れた箇所にあ り ます。 デス ク ト ッ プ/ホ ス ト マシ ンで Vivado IDE お よ びハー ド ウ ェ ア サーバー (hw_server) を実行 し て、 イ ーサネ ッ ト を介 し てデー タ セ ン タ ー と 通信で き る ので、 JTAG を使用 し てマ イ ク ロ プ ロ セ ッ サで実行 さ れ る XVC サーバー と 通信で き ます。 X-Ref Target - Figure 4-10 ;9&6HUYHU (WKHUQHW;9& 7&,3,3 -7$* RU RWKHUSURFHVVRU KZBVHUYHU 7DUJHW )3*$ 'DWD&HQWHU ; 図 4‐10 : イ ーサネ ッ ト か ら XCV サーバーを使用 し たデバ ッ グ XVC サーバー イ ン プ リ メ ン テーシ ョ ン XVC プ ロ ト コ ルを イ ンプ リ メ ン ト し て、 適切なプ ロ セ ッ サに XVC サーバーを作成す る 必要があ り ます。 XVC プ ロ ト コ ル XVC プ ロ ト コ ルを使用す る と 、 イ ーサネ ッ ト を介 し て Vivado IDE か ら JTAG コ マ ン ド を エンベデ ッ ド シ ス テ ムに対 し て実行で き 、 タ ーゲ ッ ト ザ イ リ ン ク ス デバ イ ス がプ ロ グ ラ ム ま たはデバ ッ グで き る よ う にな り ます。 こ れに よ り 、 ど のベン ダーを使用す る かに関係な く 、 ザ イ リ ン ク ス デバ イ ス をデバ ッ グお よ びプ ロ グ ラ ムで き ます。 プ ロ グ ラ ム機 能には、 従来の JTAG 接続 と 同 じ サポー ト が含まれ、 デバ ッ グ機能には、 ザ イ リ ン ク ス シ ス テ ム デバ ッ ガー (XSDB) ま たは Vivado ハー ド ウ ェ ア デバ ッ グ IP を使用 し た操作性が含まれます。 デバ イ スへの JTAG コ マ ン ド は、 プ ロ グ ラ ミ ン グ ケーブルを使用 し て通信 し た場合ま たは Digilent モジ ュ ールを使用 し た場合にデバ イ スへ転送 さ れ る の と 同 じ コ マ ン ド です。 こ の コ マ ン ド に よ り 、 すべての既存の Vivado ハー ド ウ ェ ア デバ ッ グ ツール間で機能が使用で き ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 28 第 4 章 : FPGA デバイ スのプ ログ ラ ム ユーザー XVC 1.0 コ マ ン ド 表 4-1 は、 XVC 1.0 プ ロ ト コ ル コ マ ン ド について ま と めてい ます。 表 4‐1 : XVC コ マ ン ド の説明 コ マン ド 説明 getinfo コ マ ン ド 形式 : getinfo : XCV サービ ス バージ ョ ン を取得 し ます。 getinfo を受信す る と 、 サービ ス か ら 次の文 字列を戻 し ます。 xvcServer_v1.0:<xvc_vector_len>\n <xvc_vector_len> は、 サービ ス にシ フ ト 可能なベ ク タ ーの最大幅です。 shift コ マ ン ド 形式 : shift:[num bits][tms vector][tdi vector] tms_vector お よ び tdi_vecto のバ イ ト ベ ク タ ーを使用 し て num_bits でシ フ ト を実 行 し ます。 • num_bits は リ ト ル エンデ ィ ア ン モー ド の整数です。 こ れは、ベ ク タ ーを シ フ ト ア ウ ト す る のに必要な TCK clk ト グルの数を示 し てい ま す。 • tms_vector は、すべての TMS シ フ ト ビ ッ ト を使用 し たバ イ ト サ イ ズのベ ク タ ー です。 こ のベ ク タ ーのバ イ ト 0 のビ ッ ト 0 が最初にシ フ ト ア ウ ト さ れます。 ベ ク タ ーは num_bits で、 最 も 近いバ イ ト に丸め ら れます。 • tdi_vector は tms_vector と 似てい ますが、 すべての tdi ベ ク タ ーがシ フ ト イ ン さ れ る と こ ろ を示 し てい ます。 こ の コ マ ン ド は、 シ フ ト イ ン さ れ る ビ ッ ト ご と にサ ン プ リ ン グ さ れ る 該当す る tdo ビ ッ ト を使用 し て、 tms_vector と 同 じ サ イ ズのバ イ ト ベ ク タ ーを戻 し ます。 こ のベ ク タ ーのバ イ ト 0 のビ ッ ト 0 は、 シ フ ト か ら 読み出 さ れ る 最初の tdo 値です。 settck コ マ ン ド 形式 : settck:[period] サービ ス tck 周期を [period] に設定 し よ う と し ます。 • [period] は ns で指定 さ れます。 こ れは リ ト ル エンデ ィ ア ンの整数値です。 こ の コ マ ン ド は、 settck: が終了 し た と き に適用 さ れた周期を戻 し ます。 • 戻 さ れた値は ns で指定 さ れます。 こ れは リ ト ル エンデ ィ ア ンの整数値です。 Vivado IDE の hw_server の初期化 Vivado IDE の hw_server が XVC 接続を使用 し て開始 さ れ る と 、 Vivado IDE で USB ケーブル と 同 じ よ う に XVC ケー ブルが認識 さ れます。 こ れには、 次の引数を使用 し て Vivado IDE の hw_server を開始 し ます。 hw_server -e "set auto-open-servers xilinx-xvc:localhost:10200" auto-open-servers オプシ ョ ンは、 起動時に hw_server で初期化 さ れ る よ う に XVC ケーブルを イ ネーブルに し ま す。 既存の XVC ケーブルへの接続が使用 さ れ る よ う に、 ハー ド ウ ェ ア サーバーを初期化で き ます。 サーバーでは、 今後の接続で XVC ケーブルが自動的に認識 さ れ る よ う にな り ます。 auto-open-servers への引数は、 次の よ う にな り ます。 xilinx-xvc:<xvc_host_name>:<xvc_port> 複数のサーバーを指定す る には、 カ ン マで区切 り ます。 ハー ド ウ ェ ア サーバーが開始 さ れ る と 、 指定 し た XVC サー バーへの接続を構築 し よ う と し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 29 第 4 章 : FPGA デバイ スのプ ログ ラ ム こ の例については、 『Xilinx Virtual Cable Running on Zynq-7000 Using the PetaLinux Tools』 (XAPP1251) [参照 12] を参照 し て く だ さ い。 こ の ア プ リ ケ ー シ ョ ン ノ ー ト は、 PetaLinux ツ ール で 生成 さ れ た Linux オ ペ レ ー テ ィ ン グ シ ス テ ム を 使用 し て Zynq®-7000 デバ イ ス で実行 さ れ る ザ イ リ ン ク ス仮想ケーブル (XVC) を取得す る 方法を示 し てい ます。 使用 さ れてい る 参照デザ イ ンは、 Avnet MicroZed ボー ド 用です。 こ のアプ リ ケーシ ョ ン ノ ー ト の タ ーゲ ッ ト デバ イ ス は AC701 で、 Linux で XVC を実行す る MicroZed ボー ド でプ ロ グ ラ ムお よ びデバ ッ グ さ れます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 30 第 5章 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバイ ス のプ ログ ラ ム Vivado デバ イ ス プ ロ グ ラ マ機能を使用す る と 、 ザ イ リ ン ク ス FPGA デバ イ ス を JTAG を介 し て直接プ ロ グ ラ ム で き ます。 Vivado では、 フ ラ ッ シ ュ ベース の コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス を JTAG を介 し て間接的にプ ロ グ ラ ムす る こ と も で き ます。 こ れには、 まず JTAG と フ ラ ッ シ ュ デバ イ ス イ ン タ ーフ ェ イ ス の間にデー タ パ ス を提供 す る 特別な コ ン フ ィ ギ ュ レーシ ョ ン を使用 し てザ イ リ ン ク ス FPGA デバ イ ス を プ ロ グ ラ ム し 、 そのデー タ パ ス を使 用 し て コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス の内容をプ ロ グ ラ ム し ます。 Vivado デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ン機能を使用す る と 、 ザ イ リ ン ク ス FPGA ま たは メ モ リ デバ イ ス をザ イ リ ン ク ス ケーブルま たは Digilent ケーブルを使用 し て直接プ ロ グ ラ ムで き ます。適切な ケーブルの リ ス ト は、19 ページの 「hw_server を使用 し たハー ド ウ ェ ア タ ーゲ ッ ト への接続」 を参照 し て く だ さ い。 バ ウ ン ダ リ ス キ ャ ン モー ド で実行 す る と 、 ザ イ リ ン ク ス FPGA お よ び コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス を コ ン フ ィ ギ ュ レーシ ョ ン ま たはプ ロ グ ラ ムで き ます。 Vivado でサポー ト さ れ る コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス の リ ス ト は、 付録 C 「コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ のサポー ト 」 を参照 し て く だ さ い。 Vivado で コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス をプ ロ グ ラ ム し 、 こ のデバ イ ス か ら 起動す る には、 次の手順に従 い ます。 1. コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス で使用す る ビ ッ ト ス ト リ ーム を生成 し ます。 2. コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ フ ァ イ ル (.mcs) を作成 し ます。 3. Vivado でハー ド ウ ェ ア タ ーゲ ッ ト に接続 し ます。 4. コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス を追加 し ます。 5. Vivado IDE を使用 し て コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス をプ ロ グ ラ ム し ます。 6. FPGA デバ イ ス を起動 し ます (オプシ ョ ン)。 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバイ スで使用す る ビ ッ ト ス ト リ ームの生成 合成済みデザ イ ン ま たは イ ンプ リ メ ン ト 済みデザ イ ン を開き 、 [Tools] → [Edit Device Properties] を ク リ ッ ク し て [Edit Device Properties] ダ イ ア ロ グ ボ ッ ク ス を開 き ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 31 第 5 章 : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバイ スのプ ロ グ ラ ム X-Ref Target - Figure 5-1 図 5‐1 : [Edit Device Properties] ダ イ ア ロ グ ボ ッ ク ス :検索フ ィ ール ド ダ イ ア ロ グ ボ ッ ク ス の左上にあ る 検索フ ィ ール ド を使用 し て、すべての SPI ま たは BPI に関連す る フ ィ ール ド を検索 し 、 適切なオプシ ョ ン を設定 し ます。 デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ン設定の詳細は、 付録 A 「デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム設定」 を参照 し て く だ さ い。 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ フ ァ イルの作成 プ ロ グ ラ ム フ ァ イ ル (.mcs) を作成す る には、 write_cfgmem Tcl コ マ ン ド を使用 し ます。 こ の フ ァ イ ルは、 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス のプ ロ グ ラ ムに使用 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 32 第 5 章 : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバイ スのプ ロ グ ラ ム た と えば、 1G ビ ッ ト の BPI コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス の MCS フ ァ イ ルを生成す る には、 次の コ マ ン ド を使用 し ます。 write_cfgmem -format mcs -interface bpix16 -size 128 -loadbit "up 0x0 design.bit"-file design.mcs \ 注記 : write_cfgmem コ マ ン ド の -size オプシ ョ ンは メ ガ バ イ ト で指定する ので、単位が メ ガ ビ ッ ト の フ ラ ッ シ ュ デバ イ ス の容量 と は異な り ます。 そのため上記の write_cfgmem コ マ ン ド の例では、 1G ビ ッ ト のフ ラ ッ シ ュ デバ イ ス のサ イ ズが 128MB と 指定 さ れてい ます。 write_cfgmem コ マ ン ド では、 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ フ ァ イ ルのサ イ ズが自動的にビ ッ ト ス ト リ ームのサ イ ズに設定 さ れます。 Vivado IDE では、 write_cfgmem コ マ ン ド を使用 し て複数の BIT フ ァ イ ルをチ ェ ーン接続で き ます。 複数の ビ ッ ト ス ト リ ーム を含む 1 つの 1G ビ ッ ト BPI コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス の MCS フ ァ イ ルを生成す る には、 次の コ マ ン ド を使用 し ます。 write_cfgmem -format mcs -interface bpix16 -size 128 -loadbit "up 0 design1.bit up 0xFFFFF design2.bit" -file design1_design2.mcs \ \ write_cfgmem コ マ ン ド の詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 7] を参照 し て く だ さ い。 Vivado でハー ド ウ ェ ア タ ーゲ ッ ト に接続 Vivado でハー ド ウ ェ ア タ ーゲ ッ ト に接続す る には、 次の手順に従い ます。 1. ハー ド ウ ェ ア タ ーゲ ッ ト の FPGA モー ド ピ ンで、 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス か ら FPGA を コ ン フ ィ ギ ュ レーシ ョ ンす る のに適切な コ ン フ ィ ギ ュ レーシ ョ ン モー ド (マ ス タ ー SPI ま たはマ ス タ ー BPI) が選択 さ れてい る こ と を確認 し ます。 詳細は、 タ ーゲ ッ ト デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド を参照 し て く だ さ い。 2. ハー ド ウ ェ ア タ ーゲ ッ ト に接続す る には、 第 4 章 「FPGA デバ イ ス のプ ロ グ ラ ム」 の手順に従っ て く だ さ い。 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバイ スの追加 Vivado デバ イ ス プ ロ グ ラ マでハー ド ウ ェ ア タ ーゲ ッ ト に コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス を追加す る には、 次の手順に従い ます。 1. 前述の手順に従っ てハー ド ウ ェ ア タ ーゲ ッ ト に接続 し た後、 次の図に示す よ う にハー ド ウ ェ ア タ ーゲ ッ ト を右 ク リ ッ ク し て [Add Configuration Memory Device] を ク リ ッ ク し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 33 第 5 章 : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバイ スのプ ロ グ ラ ム X-Ref Target - Figure 5-2 図 5‐2 : [Add Configuration Memory Device] メ ニ ュ ー こ の メ ニ ュ ーを ク リ ッ ク す る と 、 [Add Configuration Memory Device] ダ イ ア ロ グ ボ ッ ク ス が開 き ます。 X-Ref Target - Figure 5-3 図 5‐3 : [Add Configuration Memory Device] ダ イ ア ロ グ ボ ッ ク スのデバイ ス選択ページ Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 34 第 5 章 : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバイ スのプ ロ グ ラ ム 2. 適切な コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス を選択 し 、 [OK] を ク リ ッ ク し ます。 ヒ ン ト : [Search] フ ィ ール ド を使用 し て、 ベン ダー、 集積度、 タ イ プな ど で絞 り 込みます。 こ れでハー ド ウ ェ ア タ ーゲ ッ ト デバ イ ス に コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス が追加 さ れま し た。 X-Ref Target - Figure 5-4 図 5‐4 : ハー ド ウ ェ ア タ ーゲ ッ ト に追加 さ れた コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバイ ス コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバイ スのプ ログ ラム 1. コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス を作成す る と 、 Vivado デバ イ ス プ ロ グ ラ マか ら コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス をす ぐ にプ ロ グ ラ ムす る か ど う か を確認す る メ ッ セージが表示 さ れます。 X-Ref Target - Figure 5-5 図 5‐5 : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバイ ス を プ ログ ラ ムするかど う かを確認する メ ッ セージ Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 35 第 5 章 : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバイ スのプ ロ グ ラ ム [OK] を ク リ ッ ク す る と 、 [Program Configuration Memory Device] ダ イ ア ロ グ ボ ッ ク ス が開 き ます。 X-Ref Target - Figure 5-6 図 5‐6 : [Program Configuration Memory Device] ダ イ ア ログ ボ ッ ク ス 2. こ のダ イ ア ロ グ ボ ッ ク ス のすべてのオプシ ョ ン を適切に設定 し ます。 • [Configuration file] : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス をプ ロ グ ラ ムする のに使用す る MCS フ ァ イ ルを指 定 し ま す。 メ モ リ コ ン フ ィ ギ ュ レ ーシ ョ ン フ ァ イ ルは、 write_cfgmem Tcl コ マ ン ド で作成 し ま す。 詳細は、 32 ページの 「 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ フ ァ イ ルの作成」 を参照 し て く だ さ い。 • [State of non-config mem I/O pins] : ° [Pull-none] : FPGA にプ ロ グ ラ ム さ れた間接 コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ームにあ る 未使用 I/O ピ ン を pull-none に設定 し ます。 ° [Pull-up] : FPGA にプ ロ グ ラ ム さ れた間接コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ームにあ る 未使用 I/O ピ ン を pull-up に設定 し ます。 ° [Pull-down] : FPGA にプ ロ グ ラ ム さ れた間接 コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ームにあ る 未使用 I/O ピ ン を pull-down に設定 し ます。 重要 : 非 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ I/O ピ ンの ス テー ト が write_bitstream プ ロ パテ ィ で設定 し た も の と 一致 し て い る よ う に し て く だ さ い。 こ のプ ロ パテ ィ のデフ ォ ル ト 値は pull-down です。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 36 第 5 章 : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバイ スのプ ロ グ ラ ム • [Program Operations] : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス で実行す る プ ロ グ ラ ム操作を設定 し ます。 ° [Address Range] : プ ロ グ ラ ムす る コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス のア ド レ ス範囲を指定 し ます。有 効なア ド レ ス範囲の値は、 次の と お り です。 - [Configuration File Only] : 消去、ブ ラ ン ク チ ェ ッ ク 、プ ロ グ ラ ム、お よ び検証に メ モ リ コ ン フ ィ ギ ュ レー シ ョ ン フ ァ イ ルで必要な ア ド レ ス空間のみを使用 し ます。 - [Entire Configuration Memory Device] : デバ イ ス全体を消去、 ブ ラ ン ク チ ェ ッ ク 、 プ ロ グ ラ ム、 お よ び検 証 し ます。 • [RS Pins] (オプシ ョ ン) : BPI コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス のみで使用 さ れ る リ ビ ジ ョ ン セ レ ク ト ピ ンのマ ッ ピ ン グ を指定 し ます。 フ ラ ッ シ ュ の上位 2 つの FPGA ア ド レ ス ピ ン が FPGA RS[1:0] に接続 さ れ ます。 こ のオプシ ョ ン を イ ネーブルにす る と 、 プ ロ グ ラ ム用に FPGA RS[1:0] が駆動 さ れ ます。 アプ リ ケーシ ョ ンの使 用法は、 該当す る FPGA コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド を参照 し て く だ さ い。 • [Erase] : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス の内容を消去 し ます。 • [Blank Check] : プ ロ グ ラ ムの前に コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス にデー タ がない こ と を確認 し ます。 • [Program] : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス を指定の コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ル (.mcs) でプ ロ グ ラ ム し ます。 • [Verify] : プ ロ グ ラ ム後に コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス の内容が コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ル (.mcs) に一致す る こ と を検証 し ます。 3. [OK] を ク リ ッ ク し 、 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス に対 し て こ のダ イ ア ロ グ ボ ッ ク ス での選択に応 じ て消去、 ブ ラ ン ク チ ェ ッ ク 、 プ ロ グ ラ ム、 お よ び検証操作を実行 し ます。 各操作が終了す る と 、 それが通知 さ れ ます。 注記 : [Apply] を ク リ ッ ク す る と コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ 設定が保存 さ れ ますが、 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス はプ ロ グ ラ ム さ れません。 [Apply] を ク リ ッ ク し た後に [Cancel] を ク リ ッ ク す る と 、 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス は設定 さ れ、 プ ロ グ ラ ミ ン グは後で行 う こ と がで き ます。 デバイ スの起動 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス を プ ロ グ ラ ム し た ら 、 ソ フ ト ブー ト (JPROGRAM な ど) を実行 し 、 接続 さ れてい る コ ン フ ィ ギ ュ レ ーシ ョ ン メ モ リ デバ イ ス か ら FPGA コ ン フ ィ ギ ュ レーシ ョ ン を開始す る こ と がで き ま す。 タ ーゲ ッ ト FPGA を起動す る には、タ ーゲ ッ ト デバ イ ス を右 ク リ ッ ク し て [Boot from Configuration Memory Device] を ク リ ッ ク し ます。 X-Ref Target - Figure 5-7 図 5‐7 : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバイ スの起動 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 37 第 6章 ア ド バン ス プ ログ ラ ミ ング機能 リ ー ド バ ッ ク および検証 ビ ッ ト ス ト リ ームの検証および リ ー ド バ ッ ク Vivado® IDE では FPGA にダ ウ ン ロ ー ド さ れ る コ ン フ ィ ギ ュ レーシ ョ ン デー タ (BIT フ ァ イ ルな ど) を検証お よ び リ ー ド バ ッ ク で き ます。 write_bitstream を使用 し て BIT フ ァ イ ルを生成す る 場合、 -mask_file オプシ ョ ン を使用 し て対応す る マ ス ク フ ァ イ ル (.msk) を作成 し ます。ビ ッ ト ス ト リ ーム生成オプシ ョ ンの詳細については、Vivado IDE の Tcl コ ン ソ ールで write_bitstream -help を実行 し ます。 検証を実行す る には、 Tcl コ マ ン ド の verify_hw_devices で FPGA か ら デー タ を読み戻 し て、 MSK を使用 し て、 ど の リ ー ド バ ッ ク デー タ ビ ッ ト を飛ばすか、 どれを BIT フ ァ イ ルの該当ビ ッ ト と 比較する かを指定 し ます。 次は、 ビ ッ ト ス ト リ ーム検証の Tcl コ マ ン ド シーケ ン ス例です (BIT お よ び MSK フ ァ イ ルは write_bitstream で 既に生成 さ れてい ます)。 create_hw_bitstream -hw_device [current_hw_device] \ -mask kcu105_cnt_ila_uncmpr.msk kcu105_cnt_ila_uncmpr.bit verify_hw_devices [current_hw_device] Tcl コ マ ン ド の readback_hw_device に少な く と も 次のいずれかのオプ シ ョ ン を 使用 し て、 FPGA コ ン フ ィ ギ ュ レーシ ョ ン デー タ を リ ー ド バ ッ ク し ます。 • リ ー ド バ ッ ク デー タ を ASCII フ ォーマ ッ ト で保存する には、 次のオプシ ョ ン を使用 し ます。 -readback_file <filename.rbd> • リ ー ド バ ッ ク デー タ をバ イ ナ リ フ ォーマ ッ ト で保存す る には、 次のオプシ ョ ン を使用 し ます。 -bin_file <filename.bin> 例 :FPGA コ ン フ ィ ギ ュ レーシ ョ ン デー タ を ASCII と バ イ ナ リ 形式の両方で リ ー ド バ ッ ク し ます。 readback_hw_device [current_hw_device] \ -readback_file kcu105_cnt_ila_uncmpr_rb.rbd \ -bin_file kcu105_cnt_ila_uncmpr_rb.bin Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 38 第 6 章 : ア ド バン ス プ ロ グ ラ ミ ン グ機能 注記 : 1. 2014.3 リ リ ース では、 Tcl コ ン ソ ールを使用 し て ビ ッ ト ス ト リ ーム、 検証、 リ ー ド バ ッ ク 操作を実行 し ます。 2. 検証お よ び リ ー ド バ ッ ク 操作は、暗号化済みビ ッ ト ス ト リ ーム を使用 し てプ ロ グ ラ ム さ れた FPGA には使用で き ません。 暗号化済みビ ッ ト ス ト リ ームには、 リ ー ド バ ッ ク をデ ィ ス エーブルす る コ マ ン ド が含ま れます。 リ ー ド バ ッ ク は、 FPGA PROG ピ ンにパルス を送 る か、 ま たは FPGA/ボー ド がパ ワーダ ウ ン さ れてか ら 再びパ ワーア ッ プ さ れ る と 、 再び イ ネーブルにな り ます。 3. readback_hw_device を使用 し たデー タ リ ー ド バ ッ ク には、 コ ン フ ィ ギ ュ レーシ ョ ン デー タ のみが含まれま す ( コ ン フ ィ ギ ュ レーシ ョ ン コ マ ン ド は含まれません)。 こ れ ら の機能の詳細は、 『Ultrascale アーキ テ ク チ ャ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG570) [参照 10] ま たは 『7 シ リ ーズ FPGA コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG470) [参照 8]を参照 し て く だ さ い。 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ の検証および リ ー ド バ ッ ク ビ ッ ト ス ト リ ーム フ ァ イ ル (.bit) を MCS フ ァ イ ルに変換 し て、write_cfgmem コ マ ン ド を使用 し て、シ リ アル/SPI ま た はパ ラ レ ル/BPI フ ラ ッ シ ュ な ど の コ ン フ ィ ギ ュ レ ー シ ョ ン メ モ リ デバ イ ス に プ ロ グ ラ ム し ま す。 詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835)[参照 7] を参照 し て く だ さ い。 Vivado Design Suite のハー ド ウ ェ ア マネージ ャ ーを使用 し て コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス を検証 し ます ( 図 6-1)。 X-Ref Target - Figure 6-1 図 6‐1 : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ の検証 次の コ ー ド に示す よ う に、HW_CFGMEM プ ロ パテ ィ を設定 し て program_hw_cfgmem を呼び出す と 、 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス を検証す る こ と も で き ます。 set_property PROGRAM.ADDRESS_RANGE {use_file} [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 0 ]] set_property PROGRAM.FILES [list "H:/projects/k7_led/k7_led_325t_afx_x16_33v.mcs" ] \ [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 0]] set_property PROGRAM.BPI_RS_PINS {none} [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 0 ]] set_property PROGRAM.UNUSED_PIN_TERMINATION {pull-none} [ get_property \ PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 0 ]] set_property PROGRAM.BLANK_CHECK 0 [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 0 ]] set_property PROGRAM.ERASE 0 [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 0 ]] set_property PROGRAM.CFG_PROGRAM 0 [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 0 ]] set_property PROGRAM.VERIFY 1 [ get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 0 ]] startgroup if {![string equal [get_property PROGRAM.HW_CFGMEM_TYPE [lindex [get_hw_devices] 0]] [get_property MEM_TYPE [get_property CFGMEM_PART [get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 0 ]]]]] } \ { create_hw_bitstream -hw_device [lindex [get_hw_devices] 0] [get_property PROGRAM.HW_CFGMEM_BITFILE \ Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 39 第 6 章 : ア ド バン ス プ ロ グ ラ ミ ン グ機能 [ lindex [get_hw_devices] 0]]; program_hw_devices [lindex [get_hw_devices] 0]; }; program_hw_cfgmem -hw_cfgmem [get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 0 ]] endgroup コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ の内容は、次の コ マ ン ド シーケ ン ス を使用 し て Vivado Design Suite の Tcl コ ン ソ ール か ら リ ー ド バ ッ ク で き ます。 readback_hw_cfgmem -file test.bin -hw_cfgmem \ [get_property PROGRAM.HW_CFGMEM [lindex [get_hw_devices] 0]] 注記 : Tcl コ ン ソ ールのみを使用 し ての コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ リ ー ド バ ッ ク を実行 こ れ ら の機能の詳細は、 『Ultrascale アーキ テ ク チ ャ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG570) [参照 10] ま たは 『7 シ リ ーズ FPGA コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG470) [参照 8]を参照 し て く だ さ い。 eFUSE 操作 7 シ リ ーズ® お よ び UltraScale® デバ イ ス には、 特定の フ ァ ン ク シ ョ ン を実行す る eFUSE ビ ッ ト と い う ワ ン タ イ ム プ ロ グ ラ マブル ビ ッ ト が含まれます。 eFUSE ビ ッ ト には、 次の よ う に さ ま ざ ま な種類があ り ます。 • FUSE_DNA - デバ イ ス ID ビ ッ ト • FUSE_USER - 32 ビ ッ ト のユーザー定義の コ ー ド を格納 • FUSE_KEY - AES ビ ッ ト ス ト リ ーム復号器で使用する キーを格納 • FUSE_CNTL - キーの使用 と eFUSE レ ジ ス タ への読み出 し /書き 込みア ク セ ス を制御 • FUSE_SEC - UltraScale デバ イ ス の特別なデバ イ ス セキ ュ リ テ ィ 設定を制御 重要 : eFUSE レ ジ ス タ ビ ッ ト のプ ロ グ ラ ムは 1 度 し か実行で き ません。 1 度 eFUSE レ ジ ス タ ビ ッ ト をプ ロ グ ラ ムす る と 、 リ セ ッ ト し てプ ロ グ ラ ム し 直す こ と はで き ませんので、 eFUSE レ ジ ス タ をプ ロ グ ラ ムす る 前に設定を必ず注意 し て確認す る よ う に し て く だ さ い。 バ ッ テ リ ー バ ッ ク ア ッ プ型の RAM (BBR) を使用 し た AES キー 256 ビ ッ ト の AES (Advanced Encryption Standard) キーを使用 し て ビ ッ ト ス ト リ ーム を暗号化す る と 、 ビ ッ ト ス ト リ ー ムの IP を保護で き ます。 こ れは認可 さ れた FPGA でのみ実行で き ます。暗号化 さ れた ビ ッ ト ス ト リ ーム を ダ ウ ン ロ ー ド す る 前に 256 ビ ッ ト のキーを FPGA BBR に読み込んで く だ さ い。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 40 第 6 章 : ア ド バン ス プ ロ グ ラ ミ ン グ機能 暗号化済みビ ッ ト ス ト リ ームの生成 BBR と 動作す る 暗号化 さ れた ビ ッ ト ス ト リ ーム を生成す る には、 Vivado Design Suite で イ ンプ リ メ ン ト 済みデザ イ ン を開 き ます。 [Bitstream Settings] → [Bitstream] → [Configure Additional Bitstream Settings] を ク リ ッ ク し ます。 X-Ref Target - Figure 6-2 図 6‐2 : その他のビ ッ ト ス ト リ ーム設定 [Edit Device Properties] ダ イ ア ロ グ ボ ッ ク ス の左側で [Encryption] を ク リ ッ ク し て、次の暗号 と キー設定を指定 し ます。 • • [Encryption Settings] ° [Enable Bitstream Encryption] を [YES] に設定 し ます。 ° [Select location of encryption key] を [BBRAM] ま たは [EFUSE] のいずれかに設定 し ます。 - キー ロ ケーシ ョ ンは暗号化 さ れた ビ ッ ト ス ト リ ームに埋め込まれます。 - 暗号化 さ れた ビ ッ ト ス ト リ ーム をデバ イ ス にダ ウ ン ロ ー ド す る と 、 FPGA で BBR ま たは eFUSE キー レ ジ ス タ に読み込まれた キーが使用 さ れ、 暗号化 さ れた ビ ッ ト ス ト リ ームが復号 さ れます。 [Key Settings] ° ビ ッ ト ス ト リ ーム を暗号化す る 際に 256 ビ ッ ト のAES キーを使用す る よ う に指定 し ます。 - キーは、 拡張子が .nky の フ ァ イ ルに書き 込まれます。 キーを BBR に読み込む場合、 ま たはキーを eFUSE キー レ ジ ス タ にプ ロ グ ラ ムす る 場合は、 こ の フ ァ イ ルを使用 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 41 第 6 章 : ア ド バン ス プ ロ グ ラ ミ ン グ機能 ° ° [HMAC Authentication key] お よ び [Starting cipher block chaining (CBC) value] を指定 し ます。 - こ れ ら の値が指定 さ れない場合は、 Vivado で ラ ン ダ ム な値が生成 さ れます。 - こ れ ら の値は、 暗号化 さ れた ビ ッ ト ス ト リ ームに埋め込まれ る ので、 FPGA にプ ロ グ ラ ム ま たは読み込 む必要はあ り ません。 [Input encryption file] を指定 し ます。 - 既存の NKY フ ァ イ ルを指定 し て、 暗号化キー設定を取得 し ます。 AES キーのプ ロ グ ラ ム AES キーを BBR にプ ロ グ ラ ムす る には、[Hardware] ビ ュ ーで FPGA デバ イ ス を右 ク リ ッ ク し て [Program BBR Key] を ク リ ッ ク し 、 AES キー フ ァ イ ル (.nky) を指定 し ます。 [OK] を ク リ ッ ク す る と 、 ハー ド ウ ェ ア マネージ ャ ーで BBR にキーがプ ロ グ ラ ム ま たは読み込まれます。 こ れで、 次の よ う な暗号化ビ ッ ト ス ト リ ーム を使用 し て FPGA をプ ロ グ ラ ムで き る よ う にな り ます。 • BBR に読み込まれた も の と 同 じ AES キーを使用 し て暗号化 さ れ る • 指定 し た暗号化キー ロ ケーシ ョ ン と し て選択 し た BBRAM が含まれ る 重要 : UltraScale デバ イ ス の場合、 キーが BBR レ ジ ス タ にプ ロ グ ラ ム さ れ る 前に暗号化 さ れた ビ ッ ト ス ト リ ーム を ダ ウ ン ロ ー ド す る と 、 FPGA が ロ ッ ク さ れ、 BBR キーを読み込む こ と がで き な く な り ます。 暗号化 さ れていないビ ッ ト ス ト リ ームは引 き 続 き ダ ウ ン ロ ー ド で き る のですが、 BBR にキーを ダ ウ ン ロ ー ド で き な く な る ため、 暗号化 さ れた ビ ッ ト ス ト リ ームはダ ウ ン ロ ー ド で き な く な り ます。 UltraScale デバ イ ス の ロ ッ ク を解除す る には、 ボー ド の電源を いっ たん切っ てす ぐ に入れ直 し 、 BBR キーを読み込み直 し て く だ さ い。 eFUSE ビ ッ ト UltraScale FPGA には、 2 つの eFUSE ビ ッ ト を プ ロ グ ラ ムで き る セキ ュ リ テ ィ 機能があ り 、 FPGA デバ イ ス で暗号化 さ れ た ビ ッ ト ス ト リ ー ム のみ を 使用す る よ う にす る こ と が で き ま す。 こ れ ら の eFUSE ビ ッ ト は、 [Program eFUSE Registers] を ク リ ッ ク し て次の手順にそ っ て設定 し ます。 注記 : 7 シ リ ーズ デバ イ ス の場合、 FUSE_KEY レ ジ ス タ の AES キーで暗号化 さ れた ビ ッ ト ス ト リ ーム のみが使用で き ます。 • FUSE_SEC[1:0] を 11 に設定す る と 、FUSE_KEY レ ジ ス タ の AES キーを使用す る 暗号化 さ れた ビ ッ ト ス ト リ ーム のみが使用で き ます。 • FUSE_SEC[1:0] を 10 に設定す る と 、 暗号化 さ れた ビ ッ ト ス ト リ ームのみが使用で き る よ う にな り ますが、 AES キーは BBR ま たは FUSE_KEY に含め る こ と がで き ます。 BBR レ ジ ス タ か らのキーの削除 UltraScale ま たは 7 シ リ ーズ FPGA の BBR レ ジ ス タ か ら キーを削除す る には、 次の手順に従っ て く だ さ い。 • FPGA デバ イ ス名を右 ク リ ッ ク し 、 [Clear BBR Key] を ク リ ッ ク し ます。 • Vbatt ピ ン を接続 し ないで、 ボー ド の電源を切っ て入れ直 し ます。 注記 : ボー ド /FPGA がパ ワ ー ア ッ プ さ れた と き に PROG ピ ン を押 し た り 、 その ピ ンにパルス を送っ て も 、 BBR レ ジ ス タ は削除 さ れません。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 42 第 6 章 : ア ド バン ス プ ロ グ ラ ミ ン グ機能 FUSE_DNA : デバイ ス DNA 各 7 シ リ ーズお よ び UltraScale デバ イ ス には、 ザ イ リ ン ク ス に よ っ て既にプ ロ グ ラ ム さ れた DNA と い う デバ イ ス ID があ り ます。 7 シ リ ーズ デバ イ ス には 64 ビ ッ ト の DNA が、 UltraScale には 96 ビ ッ ト の DNA が含まれます。 こ れ ら は、 Vivado Design Suite の Tcl コ ン ソ ールで次の Tcl コ マ ン ド を実行す る と 読み込む こ と がで き ます。 report_property [lindex [get_hw_device] 0] REGISTER.EFUSE.FUSE_DNA デバ イ ス DNA は、図 6-3 に示す よ う に Vivado Design Suite の [Hardware Device Properties] ビ ュ ーの eFUSE レ ジ ス タ で も 確認で き ます。 X-Ref Target - Figure 6-3 図 6‐3 : eFUSE DNA こ れ ら の機能の詳細は、 『Ultrascale アーキ テ ク チ ャ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG570) [参照 10] ま たは 『7 シ リ ーズ FPGA コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG470) [参照 8]を参照 し て く だ さ い。 FUSE_USER FUSE_USER eFUSE を使用す る と 、 32 ビ ッ ト パ タ ーン をプ ロ グ ラ ムで き る よ う にな り ます。 FUSE_USER ビ ッ ト は、 Vivado eFUSE プ ロ グ ラ ミ ン グ ウ ィ ザー ド を使用 し てプ ロ グ ラ ム さ れます。 7 シ リ ーズ デバ イ ス の場合、 FUSE_USER の下位 8 ビ ッ ト が 256 ビ ッ ト の AES (Advanced Encryption Engine) キー と 同時にプ ロ グ ラ ム さ れます。 FUSE_USER の 上位 24 ビ ッ ト は後で同 じ ウ ィ ザー ド を使用 し てプ ロ グ ラ ム で き ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 43 第 6 章 : ア ド バン ス プ ロ グ ラ ミ ン グ機能 [Hardware Manager] ビ ュ ーで タ ーゲ ッ ト デバ イ ス を 右 ク リ ッ ク し て [Program eFUSE Registers] を ク リ ッ ク す る と 、 Vivado eFUSE プ ロ グ ラ ミ ン グ ウ ィ ザー ド にア ク セ ス で き ます。 図 6-4 は、 Vivado eFUSE プ ロ グ ラ ミ ン グ ウ ィ ザー ド の [Program eFUSE Registers] ダ イ ア ロ グ ボ ッ ク ス を示 し てい ます。 X-Ref Target - Figure 6-4 図 6‐4 : eFUSE レ ジ ス タ のプ ログ ラ ム ‐ AES キーの設定 UltraScale デバ イ ス の場合、 図 6-5 に示す よ う に、 32 ビ ッ ト FUSE_USER の 32 ビ ッ ト すべて を同時にプ ロ グ ラ ム し て、 [Program eFUSE Registers] ダ イ ア ロ グ ボ ッ ク ス で AES キーを個別にプ ロ グ ラ ムす る よ う にで き ます。 X-Ref Target - Figure 6-5 図 6‐5 : eFUSE レ ジ ス タ のプ ログ ラ ム ‐ ユーザー レ ジ ス タ の設定 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 44 第 6 章 : ア ド バン ス プ ロ グ ラ ミ ン グ機能 FUSE_USER eFUSEs をプ ロ グ ラ ム し た ら 、 そのパ タ ーン を次の よ う な方法で読み出す こ と がで き ます。 • Tcl コ マ ン ド を使用 report_property [lindex [get_hw_device] 0] REGISTER.EFUSE.FUSE_USER • refresh_hw_device を実行 し た後の Vivado の [Hardware Device Properties] ビ ュ ー • JTAG イ ン タ ーフ ェ イ ス か ら FUSE_USER コ マ ン ド を使用 FUSE_KEY FUSE_KEY の eFUSE ビ ッ ト は、256 ビ ッ ト の AES キーを格納する ために使用 さ れます。FPGA コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク では、Tcl コ マ ン ド の write_bitstream で暗号化 さ れた ビ ッ ト ス ト リ ームが同 じ キーを使用 し て復号化 さ れます。 暗号化 さ れた ビ ッ ト ス ト リ ームは JTAG イ ン タ ーフ ェ イ ス、 ま たは コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ を通 る BPI/SPI コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス を介 し て FPGA に送信 さ れます。 暗号化 さ れた ビ ッ ト ス ト リ ーム を作成す る と き 、正 し いキー ロ ケーシ ョ ン (例 : [EFUSE]) を指定 し て、FPGA コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク に入っ て く る 暗号化 さ れた ビ ッ ト ス ト リ ーム を復号化する 必要があ り ます。 こ の際、 揮発性 のあ る BBRAM キー レ ジ ス タ か ら ではな く 、FUSE_KEY eFUSEs か ら の AES キーを使用 し て く だ さ い。Vivado Design Suite で [Implemented Design] → [Bitstream Settings] を ク リ ッ ク し て次のビ ュ ーを確認 し て く だ さ い。 X-Ref Target - Figure 6-6 図 6‐6 : [Bitstream] ページ [Configure additional bitstream settings] を ク リ ッ ク し て [Edit Device Properties] ダ イ ア ロ グ ボ ッ ク ス を開 き ます。 暗号化 オプシ ョ ンは、 次の図 6-7 の よ う に設定で き ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 45 第 6 章 : ア ド バン ス プ ロ グ ラ ミ ン グ機能 X-Ref Target - Figure 6-7 図 6‐7 : [Edit Device Properties] ダ イ ア ロ グ ボ ッ ク ス FUSE_CNTL FUSE_CNTL の eFUSE では、 特定のデバ イ ス機能へのア ク セ ス が制御 さ れます。 7 シ リ ーズ デバ イ ス の場合は、 図 6-8 のダ イ ア ロ グ ボ ッ ク ス を使用 し て FUSE_CNTL の eFUSE を指定 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 46 第 6 章 : ア ド バン ス プ ロ グ ラ ミ ン グ機能 X-Ref Target - Figure 6-8 図 6‐8 : eFUSE レ ジス タ ‐ 制御レ ジ ス タ の設定 (7 シ リ ーズ) UltraScale デバ イ ス の場合は、 図 6-9 のダ イ ア ロ グ ボ ッ ク ス を使用 し て FUSE_CNTL の eFUSE を指定 し ます。 X-Ref Target - Figure 6-9 図 6‐9 : eFUSE レ ジ ス タ ‐ 制御レ ジ ス タ の設定 (UltraScale) Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 47 第 6 章 : ア ド バン ス プ ロ グ ラ ミ ン グ機能 FUSE_SEC (UltraScale FPGA のみ) FUSE_SEC の eFUSEs では、UltraScale デバ イ ス でのセキ ュ リ テ ィ 設定が制御 さ れます。図 6-10 に示す よ う に、セキ ュ リ テ ィ 機能を制御す る eFUSE には 6 種類あ り ます。詳細は、『Ultrascale アーキ テ ク チ ャ コ ン フ ィ ギ ュ レーシ ョ ン ユー ザー ガ イ ド 』 (UG570) [参照 10] を参照 し て く だ さ い。 X-Ref Target - Figure 6-10 図 6‐10 : [Program eFUSE Registers] ダ イ ア ロ グ ボ ッ ク ス ‐ sec‐reg‐ultrascale_optional の設定 重要 : JTAG Distable ビ ッ ト がプ ロ グ ラ ム さ れ る と 、 JTAG イ ン タ ーフ ェ イ ス がデ ィ ス エーブルにな り 、 デバ イ ス を テ ス ト し た り 、 コ ン フ ィ ギ ュ レー ト で き な く な り ます。 こ のビ ッ ト は、 JTAG を使用 し てデバ イ スへア ク セ スす る 必要 がな く な っ た場合にのみプ ロ グ ラ ム し て く だ さ い。 こ れ ら の コ ン フ ィ ギ ュ レーシ ョ ン機能の詳細は、 『Ultrascale アーキ テ ク チ ャ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG570) [参照 10] ま たは 『7 シ リ ーズ FPGA コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG470) [参照 8]を参照 し て く だ さ い。 シ ス テム モニ タ ー SYSMON (System Monitor) の ADC (Analog-to-Digital Converter) は、 ハー ド ウ ェ ア デバ イ ス のダ イ 温度 と 電圧を測定 し ます。SYSMON は、オンチ ッ プ温度お よ び電源供給セ ンサーで物理的環境を監視 し ます。ADC は広範囲のアプ リ ケー シ ョ ンに対 し 高精度のアナ ロ グ イ ン タ ーフ ェ イ ス を提供 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 48 第 6 章 : ア ド バン ス プ ロ グ ラ ミ ン グ機能 ADC は最大 で 17 の外部 ア ナ ロ グ 入力チ ャ ネ ル に ア ク セ ス で き ま す。 特定デバ イ ス ア ー キ テ ク チ ャ の詳細は、 『UltraScale アー ク テ ク チ ャ シ ス テ ム モニ タ ー ユーザー ガ イ ド 』 (UG580) [参照 11] ま たは『7 シ リ ーズ FPGA の XADC 12 ビ ッ ト 1MSPS デ ュ アル アナ ロ グ-デジ タ ル コ ンバー タ ー ユーザー ガ イ ド 』 (UG480) [参照 9] を参照 し て く だ さ い。 X-Ref Target - Figure 6-11 図 6‐11 : シ ス テム モニ タ ー hw_sysmon デー タ は、hw_sysmon_reg オブジ ェ ク ト を使用 し て ア ク セ ス で き る ス テー タ ス レ ジ ス タ と 呼ばれ る 専用レ ジ ス タ に格納 さ れます。 シ ス テ ム モニ タ ー レ ジ ス タ の内容は、 get_hw_sysmon_reg コ マ ン ド を使用す る と 取得で き ます。 シ ス テ ム モニ タ ーをサポー ト す る デバ イ ス にはすべて自動的に、 refresh_hw_device が呼び出 さ れ る と 作成 さ れ る hw_sysmon オブジ ェ ク ト が 1 つま たは複数含まれてい ます。 hw_sysmon オブジ ェ ク ト が作成 さ れ る と 、 すべての 温度 と 電圧レ ジ ス タ 、 お よ び制御レ ジ ス タ に対 し て 1 つのプ ロ パテ ィ が割 り 当て ら れます。 hw_sysmon オブジ ェ ク ト では、 温度お よ び電圧レ ジ ス タ に割 り 当て ら れた値が既に摂氏/華氏お よ びボル ト に変換 さ れてい ます。 get_hw_sysmon_reg コ マ ン ド を使用 し て シ ス テ ム モニ タ ーの レ ジ ス タ に格納 さ れた 16 進数値を取得す る こ と も で き ますが、一部の レ ジ ス タ の値は hw_sysmon オブジ ェ ク ト の フ ォーマ ッ ト さ れたプ ロ パテ ィ と し て取得す る こ と も で き ます。た と えば、次の コ ー ド を使用す る と 、レ ジ ス タ の 16 進数に直接ア ク セ スす る のではな く 、指定 さ れた hw_sysmon オブジ ェ ク ト の TEMPERATURE プ ロ パテ ィ を取得で き ます。 set opTemp [get_property TEMPERATURE [lindex [get_hw_sysmons] 0] シ ス テ ム モニ タ ーの コ マ ン ド リ ス ト は、 108 ページの表 9-11を参照 し て く だ さ い。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 49 第 7章 デザイ ンのデバ ッ グ FPGA デザ イ ンのデバ ッ グは複数の段階を含む反復作業です。 複雑な問題を処理す る 場合 と 同様に、 FPGA デザ イ ン のデバ ッ グ プ ロ セ ス も 、 1 度にデザ イ ン全体を処理する のではな く 、 細分化 し てセ ク シ ョ ン ご と に集中 し て作業す る のがベス ト です。 1 回に 1 モジ ュ ールを追加 し なが ら デザ イ ン フ ロ ーを反復 し 、 デザ イ ン全体の中でそれを正 し く 機 能 さ せ る よ う にす る のが、実績のあ る デザ イ ンお よ びデバ ッ グ手法の 1 つです。 こ のデザ イ ンお よ びデバ ッ グ手法は、 次のデザ イ ン フ ロ ー段階のど の組み合わせでで も 使用で き ます。 • RTL レベルのデザ イ ン シ ミ ュ レーシ ョ ン • イ ンプ リ メ ン テーシ ョ ン後のデザ イ ン シ ミ ュ レーシ ョ ン • イ ン シ ス テ ム デバ ッ グ RTL レ ベル デザイ ン シ ミ ュ レーシ ョ ン シ ミ ュ レーシ ョ ン検証プ ロ セ ス中にデザ イ ンの機能をデバ ッ グで き ます。 ザ イ リ ン ク ス の Vivado® IDE では、 フル デ ザ イ ン シ ミ ュ レーシ ョ ン機能が提供 さ れてい ます。 デザ イ ンの RTL シ ミ ュ レーシ ョ ン を実行す る には、 Vivado デザ イ ン シ ミ ュ レー タ を使用で き ます。 RTL レベル シ ミ ュ レーシ ョ ン環境でデザ イ ン デバ ッ グ を実行する と 、 デザ イ ン 全体を完全に表示で き 、 デザ イ ン/デバ ッ グ サ イ ク ルをすばや く 反復実行で き る な ど の利点があ り ますが、 大型デザ イ ン を妥当な時間内にシ ミ ュ レーシ ョ ン し た り 、 実際のシ ス テ ム環境を正確にシ ミ ュ レーシ ョ ンす る のが困難であ る な ど の制限があ り ます。 Vivado シ ミ ュ レー タ の使用については、 『Vivado Design Suite ユーザー ガ イ ド : ロ ジ ッ ク シ ミ ュ レーシ ョ ン』 (UG900) [参照 1] を参照 し て く だ さ い。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 50 第 7 章 : デザイ ンのデバ ッ グ イ ン プ リ メ ン テーシ ョ ン後のデザイ ン シ ミ ュ レー ション Vivado シ ミ ュ レー タ は、 イ ン プ リ メ ン テーシ ョ ン後のデザ イ ン シ ミ ュ レーシ ョ ンに も 使用で き ます。 Vivado シ ミ ュ レー タ を使用 し て イ ンプ リ メ ン テーシ ョ ン後のデザ イ ン をデバ ッ グす る と 、 デザ イ ンの タ イ ミ ン グ精度の高いモデル を使用で き る な ど の利点があ り ますが、 前のセ ク シ ョ ンで述べた よ う に、 ラ ン タ イ ムが長い こ と や、 シ ス テ ム モデル での正確 さ な ど の制限があ り ます。 イ ン シ ス テム ロ ジ ッ ク デザイ ンのデバ ッ グ Vivado Design Suite には、 イ ンプ リ メ ン テーシ ョ ン後の FPGA デザ イ ン を イ ン シ ス テ ムでデバ ッ グで き る ロ ジ ッ ク 解 析機能 も あ り ます。 イ ン シ ス テ ム でのデザ イ ンのデバ ッ グには、 イ ンプ リ メ ン テーシ ョ ン後のデザ イ ン を、 実際のシ ス テ ム環境で、 シ ス テ ム ス ピー ド で、 タ イ ミ ン グ精度の高いデバ ッ グ を実行で き る と い う 利点があ り ます。 一方で、 シ ミ ュ レーシ ョ ン モデルを使用 し た場合に比べてデバ ッ グ信号を確認 し づ ら い、デザ イ ンのサ イ ズや複雑 さ に よ っ て はデザ イ ン/ イ ン プ リ メ ン テーシ ョ ン/デバ ッ グの反復実行の ラ ン タ イ ムが長 く な る 可能性があ る な ど の制限があ り ま す。 Vivado ツールでは複数のデバ ッ グ方法が提供 さ れてい る ので、 必要に応 じ て、 こ れ ら の方法のいずれか を使用 し てデ ザ イ ン をデバ ッ グで き ます。 Vivado Design Suite の イ ン シ ス テ ム ロ ジ ッ ク デバ ッ グ機能については、 第 8 章 「 イ ン シ ス テ ム ロ ジ ッ ク デザ イ ンのデバ ッ グ フ ロ ー」 で説明 し ます。 イ ン シ ス テム シ リ アル I/O デザイ ンのデバ ッ グ イ ン シ ス テ ム シ リ アル I/O の検証お よ びデバ ッ グ を可能にす る ため、 Vivado Design Suite にはシ リ アル I/O 解析機能 が含まれてい ます。 こ の機能を使用す る と 、 FPGA ベース シ ス テ ムの高速シ リ アル I/O リ ン ク を計測お よ び最適化で き ます。 Vivado シ リ アル I/O 解析機能は、 単純な ク ロ ッ ク や接続の問題か ら 複雑なマージ ン解析お よ びチ ャ ネル最適 化の問題ま で、 さ ま ざ ま な イ ン シ ス テ ム デバ ッ グお よ び検証の問題を解決す る ために使用で き ます。 Vivado シ リ ア ル I/O 解析機能を使用す る と 、 ほかの外部装置を使用す る の と 比較 し て、 受信信号に レ シーバー イ コ ラ イ ゼーシ ョ ン が適用 さ れた後の信号の質が計測 さ れ る と い う 利点があ り ます。 こ れに よ り 、 TX か ら RX へのチ ャ ネルの最適なポ イ ン ト 、 つま り 実際の正 し いデー タ が計測 さ れます。 Vivado ツールでは、 ギガ ビ ッ ト ト ラ ン シーバー エ ン ド ポ イ ン ト を実行する ために使用 さ れ る デザ イ ンお よ び ラ ン タ イ ム ソ フ ト ウ ェ ア を生成で き 、 高速シ リ アル I/O チ ャ ネルを計測 し 、 最適化する のに利用で き ます。 IBERT デザ イ ン を生成す る 方法は、 第 8 章 「 イ ン シ ス テ ム ロ ジ ッ ク デザ イ ンのデバ ッ グ フ ロ ー」 を参照 し て く だ さ い。 ラ ン タ イ ム Vivado シ リ アル I/O 解析機能の使用方法は、 第 9 章 「ハー ド ウ ェ アでの ロ ジ ッ ク デザ イ ンのデバ ッ グ」 を参照 し て く だ さ い。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 51 第 8章 イ ン シス テム ロ ジ ッ ク デザイ ンのデバ ッ グ フ ロー Vivado® ツールには、実際のハー ド エア デバ イ ス上でデザ イ ンの イ ン シ ス テ ム デバ ッ グ を実行す る 機能が多数含まれ てい ます。 イ ン シ ス テ ム デバ ッ グ フ ロ ーには、 次の 3 つの段階があ り ます。 1. プ ロ ーブ : デザ イ ンでプ ロ ーブす る 信号を特定 し 、 プ ロ ーブ方法を指定 し ます。 2. イ ンプ リ メ ン テーシ ョ ン : プ ロ ーブする ネ ッ ト に追加 さ れたデバ ッ グ IP を含むデザ イ ン を イ ンプ リ メ ン ト し ま す。 3. 解析 : デザ イ ンに含まれ る デバ ッ グ IP にア ク セ ス し 、 機能的な問題をデバ ッ グお よ び検証 し ます。 こ の イ ン シ ス テ ム デバ ッ グ フ ロ ーは、前のセ ク シ ョ ンで説明 し た反復デザ イ ン/デバ ッ グ フ ロ ーを使用す る こ と を意 図 し てい ます。 イ ン シ ス テ ム デバ ッ グ フ ロ ーを使用す る 場合は、 デザ イ ン サ イ ク ルので き る だけ早い段階で、 デザ イ ン の一部がハー ド ウ ェ アで機能す る よ う にす る こ と をお勧め し ます。 こ の章では、 イ ン シ ス テ ム デバ ッ グ フ ロ ー の 3 つの段階を説明 し 、 Vivado ロ ジ ッ ク デバ ッ グ機能を使用 し てデザ イ ン がハー ド ウ ェ ア上で機能す る よ う にす る 方法を示 し ます。 イ ン シ ス テム デバ ッ グ用のデザイ ンのプ ローブ イ ン シ ス テ ム デバ ッ グ フ ロ ーのプ ロ ーブ段階には、 次の 2 つの段階があ り ます。 1. プ ロ ーブす る 信号ま たはネ ッ ト を特定 2. デザ イ ンにデバ ッ グ コ ア を追加す る 方法を決定 多 く の場合、 プ ロ ーブす る 信号お よ びそのプ ロ ーブ方法は、 ほかの信号のプ ロ ーブに影響 し ま す。 ま ず、 デザ イ ン ソ ース コ ー ド にデバ ッ グ IP コ ン ポーネ ン ト イ ン ス タ ン ス を手動で追加する か (HDL イ ン ス タ ン シエーシ ョ ン プ ロ ー ブ フ ロ ー )、 合成済みネ ッ ト リ ス ト に Vivado ツールで自動的にデバ ッ グ コ アが追加 さ れ る よ う にす る か (ネ ッ ト リ ス ト 挿入プ ロ ーブ フ ロ ー ) を決めてお く と よ いで し ょ う 。 表 8-1 に、 異な る デバ ッ グ方法の利点 と 欠点を示 し ます。 表 8‐1 : デバ ッ グ ス ト ラ テ ジ デバ ッ グ目標 推奨デバ ッ グ プ ログ ラ ム フ ロー HDL ソ ー ス コ ー ド でデバ ッ グ信号 を 特定 し 、 フ ロ ーの後の方でデバ ッ グ を イ ネーブル/デ ィ ス エーブルに で き る よ う にする • mark_debug プ ロ パテ ィ を使用 し て、HDL でデバ ッ グ用の信号に タ グ を付け る • Set Up Debug ウ ィ ザー ド を使用 し て、 ネ ッ ト リ ス ト 挿入プ ロ ーブ フ ロ ーを実 行する HDL ソ ース コ ー ド を変更せずに、合成 済みデザ イ ン ネ ッ ト リ ス ト でデバ ッ グ ネ ッ ト を特定す る • 合成済みデザ イ ン ネ ッ ト リ ス ト でネ ッ ト を右 ク リ ッ ク し て [Mark Debug] を ク リ ッ ク し 、 デバ ッ グする ネ ッ ト を選択する • Set Up Debug ウ ィ ザー ド を使用 し て、 ネ ッ ト リ ス ト 挿入プ ロ ーブ フ ロ ーを実 行する Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 52 第 8 章 : イ ン シ ス テム ロ ジ ッ ク デザイ ンのデバ ッ グ フ ロー 表 8‐1 : デバ ッ グ ス ト ラ テ ジ (続き) デバ ッ グ目標 推奨デバ ッ グ プ ログ ラ ム フ ロー Tcl コ マ ン ド を 使用 し て デ バ ッ グ プ ロ ーブ フ ロ ーを自動化す る • set_property Tcl コ マ ン ド を使用 し 、デバ ッ グす る ネ ッ ト に mark_debug プ ロ パ テ ィ を設定する • ネ ッ ト リ ス ト 挿入プ ロ ーブ フ ロ ー用の Tcl コ マ ン ド を使用 し 、デバ ッ グ コ ア を作成 し てデバ ッ グ ネ ッ ト に接続す る HDL ソ ース で ILA デバ ッ グ コ ア イ ン ス タ ン ス に信号を接続す る • デバ ッ グする HDL 信号を特定す る • HDL イ ン ス タ ン シエーシ ョ ン プ ロ ーブ フ ロ ーを使用 し 、ILA (Integrated Logic Analyzer) コ ア を生成 し て イ ン ス タ ン シエー ト し 、デザ イ ンのデバ ッ グ信号に 接続する ネ ッ ト リ ス ト 挿入デバ ッ グ プ ローブ フ ロー Vivado ツールでデバ ッ グ コ ア を挿入す る 方法は、 さ ま ざ ま なニーズに対応で き る よ う 複数あ り ます。 • シ ンプルな ウ ィ ザー ド を使用 し 、 デバ ッ グす る ネ ッ ト に基づいて、 ILA (Integrated Logic Analyzer) コ ア を自動的 に生成お よ び設定 し ます。 こ れが一番簡単な方法です。 • [Debug] ビ ュ ーを使用 し て、 個々の コ ア、 ポー ト 、 お よ びパ ラ メ ー タ ーを設定 し ます。 [Debug] ビ ュ ーは、 合成済 みデザ イ ン を 開い た状態で レ イ ア ウ ト セ レ ク タ ーで [Debug] を選択、 [Layout] → [Debug] を ク リ ッ ク 、 ま たは [Windows] → [Debug] を ク リ ッ ク す る と 表示 さ れます。 • Tcl の XDC デバ ッ グ コ マ ン ド のセ ッ ト を手動で XDC 制約フ ァ イ ルに入力する か、 Tcl ス ク リ プ ト を作成 し ます。 こ れ ら の方法を組み合わせて利用 し 、 デバ ッ グ コ ア を挿入お よ びカ ス タ マ イ ズする こ と も で き ます。 デバ ッ グする HDL 信号のマー ク 合成の前に HDL ソ ー ス レベルでデバ ッ グす る 信号を特定す る には、 mark_debug 制約を使用 し ます。 HDL でデバ ッ グ用にマー ク さ れた信号に対応す る ネ ッ ト が、 [Debug] ビ ュ ーの [Unassigned Debug Nets] の下に表示 さ れます。 注記 : [Debug] ビ ュ ーの [Debug Nets] タ ブはデバ ッ グに選択 し たネ ッ ト のネ ッ ト 中心の表示で、 [Debug Cores] タ ブは コ ア プ ロ パテ ィ を表示お よ び設定可能な コ ア中心の表示です。 デバ ッ グ用にネ ッ ト を マー ク す る 方法は、 プ ロ ジ ェ ク ト が RTL ソ ース ベース であ る か合成済みネ ッ ト リ ス ト ベース であ る かに よ っ て異な り ます。 RTL ネ ッ ト リ ス ト ベース のプ ロ ジ ェ ク ト の場合は、 次の方法を使用 し ます。 • Vivado 合成を使用す る 場合、 VHDL お よ び Verilog ソ ース フ ァ イ ルで mark_debug 制約を使用 し てデバ ッ グ用の ネ ッ ト を マー ク で き ます。 mark_debug 制約に有効な値は、 TRUE ま たは FALSE です。 Vivado 合成では、 こ の制 約の値を SOFT に設定す る こ と はで き ません。 合成済みネ ッ ト リ ス ト ベース のプ ロ ジ ェ ク ト の場合は、 次の方法を使用 し ます。 • Synopsis® 社の Synplify® 合成ツールを使用する と 、 VHDL や Verilog の場合は mark_debug お よ び syn_keep 制約、 SDC (ynopsys Design Constraints) フ ァ イ ルの場合は mark_debug 制約のみ を 使用 さ し て、 デバ ッ グ用のネ ッ ト を マー ク で き ます (オプシ ョ ン)。 Synplify では SOFT 値はサポー ト さ れません。 こ れは、 こ の動作が syn_keep 制約 で制御 さ れ る ためです。 • Mentor Graphics® 社の Precision® 合成ツールを使用する と 、VHDL や Verilog で mark_debug 制約を使用 し てデバ ッ グ用のネ ッ ト を マー ク で き ます。 次のセ ク シ ョ ンに、 Vivado 合成、 XST、 Synplify、 お よ び Precision ソ ース フ ァ イ ルの構文例を示 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 53 第 8 章 : イ ン シ ス テム ロ ジ ッ ク デザイ ンのデバ ッ グ フ ロー ICON お よび ILA コ ア • 白抜 き にな っ てい る 緑色のア イ コ ン は、 MARK_DEBUG プ ロ パテ ィ がネ ッ ト に設定 さ れてい ますが、 ILA コ アにはネ ッ ト が接続 さ れていない状態を示 し ます。 • 緑色のア イ コ ン は、 MARK_DEBUG プ ロ パテ ィ がネ ッ ト に設定 さ れていて、 ま た ILA コ アにネ ッ ト が接続 さ れてい る 状態を示 し ます。 • 黄色いア イ コ ン を示 し ます。 は、 MARK_DEBUG がネ ッ ト に設定 さ れていないのですが、 ILA コ アに接続 さ れてい る 状態 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; Synplify での mark_debug の構文例 次に、 Synplify を使用す る 場合の VHDL、 Verilog、 SDC の構文例を示 し ます。 • VHDL の構文例 attribute attribute attribute attribute • syn_keep : boolean; mark_debug : string; syn_keep of char_fifo_dout: signal is true; 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"} define_attribute {n:char_fifo_din[*]} {syn_keep} {"true"} 重要 : SDC ソ ース のネ ッ ト 名には、 接頭辞 と し て n: を付け る 必要があ り ます。 注記 : SDC (Synopsys Design Constraints) は、 特に タ イ ミ ン グ解析において設計の要件を ツールに渡すための業界標準 で す。 SDC 仕 様 の リ フ ァ レ ン ス コ ピ ー は、 次 の Synopsys 社 の サ イ ト か ら 登 録 を す る と 入 手 で き ま す。 http://www.synopsys.com/Community/Interoperability/Pages/TapinSDC.aspx 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 プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 54 第 8 章 : イ ン シ ス テム ロ ジ ッ ク デザイ ンのデバ ッ グ フ ロー デザイ ンの合成 次に、 Vivado Design Suite で [Run Synthesis] を ク リ ッ ク す る か、 次の Tcl コ マ ン ド を使用 し て、 デバ ッ グ コ ア を含む デザ イ ン を合成 し ます。 launch_runs synth_1 wait_on_run synth_1 synth_design Tcl コ マ ン ド を使用 し てデザ イ ン を合成す る こ と も で き ます。 デザ イ ンの さ ま ざ ま な合成方法iついては、 『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) [参照 2] を参照 し て く だ さ い。 合成済みデザイ ン でデバ ッ グ用のネ ッ ト を マー ク Flow Navigator で [Open Synthesized Design] を ク リ ッ ク し て合成済みデザ イ ン を開き 、 [Debug] レ イ ア ウ ト を選択 し て [Debug] ビ ュ ーを表示 し ます。 デバ ッ グ用にマー ク し た HDL 信号に対応す る ネ ッ ト が、 [Debug] ビ ュ ーの [Unassigned Debug Nets] フ ォ ルダーの下に表示 さ れます (図 8-1)。 X-Ref Target - Figure 8-1 図 8‐1 : [Debug] ビ ュ ーの [Unassigned Debug Nets] フ ォルダー • [Netlist]、 [Schematic] な ど の任意のビ ュ ーでネ ッ ト を右 ク リ ッ ク し 、 [Mark Debug] を ク リ ッ ク し ます。 • 任意のビ ュ ーでネ ッ ト を選択 し 、 [Debug] ビ ュ ーの [Unassigned Debug Nets] フ ォ ルダーに ド ラ ッ グ ア ン ド ド ロ ッ プ し ます。 • Set Up Debug ウ ィ ザー ド でネ ッ ト を選択 し ます。 詳細は、 「Set Up Debug ウ ィ ザー ド を使用 し たデバ ッ グ コ アの 挿入」 を参照 し て く だ さ い。 Set Up Debug ウ ィ ザー ド を使用 し たデバ ッ グ コ アの挿入 デバ ッ グ用にネ ッ ト を マー ク し た ら 、 それ ら のネ ッ ト をデバ ッ グ コ アに割 り 当て ます。 Vivado Design Suite の Set Up Debug ウ ィ ザー ド を使用す る と 、 デバ ッ グ コ ア を自動作成 し 、 デバ ッ グ ネ ッ ト を コ アの入力に割 り 当て る こ と がで き ます。 Set Up Debug ウ ィ ザー ド を使用 し てデバ ッ グ コ ア を挿入す る には、 次の手順に従い ます。 1. [Debug] ビ ュ ーの [Unassigned Debug Nets] フ ォ ルダーを使用す る か、 ネ ッ ト を直接 ク リ ッ ク し て、 デバ ッ グす る ネ ッ ト を選択 し ます (オプシ ョ ン)。 2. Vivado Design Suite の メ イ ン メ ニ ュ ーか ら [Tools] → [Set Up Debug] を ク リ ッ ク す る か、 Flow Navigator の [Synthesized Design] の下にあ る [Set Up Debug] を ク リ ッ ク し ます。 3. [Next] を ク リ ッ ク し ます。 [Specify Nets to Debug] ページが開 き ます (図 8-2)。 4. オプシ ョ ンで、 さ ら にネ ッ ト を追加 し た り 、 一覧か ら 既存のネ ッ ト を削除す る には、 [Find Nets to Add] を ク リ ッ ク し ます。 デバ ッ グ ネ ッ ト を右 ク リ ッ ク し て [Remove Nets] を ク リ ッ ク し て も 、 表か ら ネ ッ ト を削除で き ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 55 第 8 章 : イ ン シ ス テム ロ ジ ッ ク デザイ ンのデバ ッ グ フ ロー 重要 : [Netlist] ま たはその他のビ ュ ーでネ ッ ト を ク リ ッ ク し て、[Nets to Debug] の リ ス ト に ド ラ ッ グす る こ と も で き ま す。 5. デバ ッ グ ネ ッ ト を右 ク リ ッ ク し て [Select Clock Domain] を ク リ ッ ク し 、 ネ ッ ト の値をサンプ リ ン グす る ク ロ ッ ク ド メ イ ン を変更 し ます。 注記 : Set Up Debug ウ ィ ザー ド は、 同期エ レ メ ン ト のパ ス を検索 し 、 デバ ッ グ ネ ッ ト に最適な ク ロ ッ ク ド メ イ ン を自 動的に選択 し よ う と し ます。 こ の選択は必要に応 じ て [Select Clock Domain] ダ イ ア ロ グ ボ ッ ク ス で変更で き ますが、 表に含まれ る 各 ク ロ ッ ク ド メ イ ンはそれぞれ別の ILA コ ア イ ン ス タ ン ス にな る こ と に注意 し て く だ さ い。 6. デバ ッ グ ネ ッ ト の選択が完了 し た ら 、 [Next] を ク リ ッ ク し ます。 注記 : Set Up Debug ウ ィ ザー ド に よ り 、 ク ロ ッ ク ド メ イ ンにつ き 1 つの ILA コ アが挿入 さ れます。 デバ ッ グのために 選択 さ れたネ ッ ト は、 挿入 さ れた ILA コ アのプ ロ ーブ ポー ト に自動的に割 り 当て ら れ ます。 ウ ィ ザー ド の最終ペー ジは コ ア生成のサマ リ ページで、 検出 さ れた ク ロ ッ ク 数、 生成お よ び削除 さ れ る ILA コ アの数が示 さ れます。 7. ADVANCED ト リ ガー モー ド を イ ネーブルにする 場合は [Advanced Trigger] チ ェ ッ ク ボ ッ ク ス をオンに、 BASIC キ ャ プチ ャ モー ド を イ ネーブルにす る 場合は [Capture Control] チ ェ ッ ク ボ ッ ク ス を オ ン に し ま す。 [Next] を ク リ ッ ク し 、 最後のページに進みます。 注記 : ADVANCED ト リ ガー モー ド ま たは BASIC キ ャ プチ ャ モー ド については、 第 9 章 「ハー ド ウ ェ アでの ロ ジ ッ ク デザ イ ンのデバ ッ グ」 を参照 し て く だ さ い。 8. 内容を確認 し た ら [Finish] を ク リ ッ ク し 、 合成済みデザ イ ン ネ ッ ト リ ス ト に ILA コ ア を挿入お よ び接続 し ます。 X-Ref Target - Figure 8-2 図 8‐2 : Set Up Debug ウ ィ ザー ド Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 56 第 8 章 : イ ン シ ス テム ロ ジ ッ ク デザイ ンのデバ ッ グ フ ロー 9. [ILA (Integrated Logic Analyzer) General Options] ページで ILA デー タ 深 さ ([Sample of Data Depth]、 C_DATA_DEPTH)、 入力パ イ プ段数 ([Input Pipe Stages]、 C_INPUT_PIPE_STAGES)、 キ ャ プチ ャ 制御機能の イ ネー ブル ([Capture Control]、C_EN_STRG_QUAL)、ADVANCED ト リ ガー機能 ([Advanced Trigger]、C_ADV_TRIGGER) を設定 し ます。 こ れ ら のオプシ ョ ンの説明は、 60 ページの表 8-2 を参照 し て く だ さ い。 X-Ref Target - Figure 8-3 図 8‐3 : Set Up Debug ウ ィ ザー ド : [ILA (Integrated Logic Analyzer) General Options] ページ 10. こ れで、 デバ ッ グ ネ ッ ト が ILA デバ ッ グ コ アに割 り 当て ら れま し た (図 8-4)。 X-Ref Target - Figure 8-4 図 8‐4 : 割 り 当て ら れたデバ ッ グ ネ ッ ト [Debug] ビ ュ ーを使用 し たデバ ッ グ コ アの追加 と カ ス タ マ イ ズ [Debug] ビ ュ ーの [Debug Cores] タ ブでは、 Set Up Debug ウ ィ ザー ド にない ILA コ アお よ びデバ ッ グ コ ア ハブの挿入 に関す る 詳細な設定を実行で き ます。 コ アの生成お よ び削除、 デバ ッ グ ネ ッ ト の接続、 コ ア パ ラ メ ー タ ーの設定な ど を実行で き ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 57 第 8 章 : イ ン シ ス テム ロ ジ ッ ク デザイ ンのデバ ッ グ フ ロー [Debug] ビ ュ ーの [Debug Cores] タ ブには、 次の も のが表示 さ れます。 • デバ ッ グ ハブ (dbg_hub) コ アに接続 さ れてい る デバ ッ グ コ アの リ ス ト • 割 り 当て ら れていないネ ッ ト の リ ス ト デバ ッ グ コ アお よ びポー ト は、 ポ ッ プア ッ プ メ ニ ュ ーま たはビ ュ ーの上部にあ る ツールバーか ら 制御で き ます。 デバ ッ グ コ アの生成および削除 [Debug] ビ ュ ーでデバ ッ グ コ ア を生成す る には、 ツールバーの [Create Debug Core] を ク リ ッ ク し ます。 [Create Debug Core] ダ イ ア ロ グ ボ ッ ク ス (図 8-5) を使用す る と 、 親 イ ン ス タ ン スお よ びデバ ッ グ コ ア名を変更 し た り 、 コ アのパ ラ メ ー タ ーを設定で き ます。 既存のデバ ッ グ コ ア を削除す る には、 [Debug] ビ ュ ーで コ ア を右 ク リ ッ ク し 、 [Delete] を ク リ ッ ク し ます。 [Create Debug Core] ダ イ ア ロ グ ボ ッ ク ス に表示 さ れ る ILA コ アのオプシ ョ ン の説明は、 60 ページ の表 8-2 を参照 し て く だ さ い。 X-Ref Target - Figure 8-5 図 8‐5 : [Create Debug Core] ダ イ ア ログ ボ ッ ク ス デバ ッ グ コ ア ポー ト の追加、 削除、 および カ ス タ マ イ ズ デバ ッ グ コ アの追加お よ び削除だけでな く 、 各デバ ッ グ コ アのポー ト を追加、 削除、 お よ びカ ス タ マ イ ズで き ます。 デバ ッ グ ポー ト を追加す る には、 次の手順に従い ます。 1. [Debug] ビ ュ ーでデバ ッ グ コ ア を選択 し ます。 2. ツールバーの [Create Debug Port] を ク リ ッ ク し ます。 [Create Debug Port] ダ イ ア ロ グ ボ ッ ク ス が表示 さ れます (図 8-6)。 3. ポー ト 幅を指定 し ます。 4. [OK] を ク リ ッ ク し ます。 5. デバ ッ グ ポー ト を削除す る には、 [Debug] ビ ュ ーでポー ト を右 ク リ ッ ク し 、 [Delete] を ク リ ッ ク し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 58 第 8 章 : イ ン シ ス テム ロ ジ ッ ク デザイ ンのデバ ッ グ フ ロー X-Ref Target - Figure 8-6 図 8‐6 : [Create Debug Port] ダ イ ア ログ ボ ッ ク ス デバ ッ グ コ アへのネ ッ ト の接続および接続解除 ネ ッ ト お よ びバ ス (バ ス ネ ッ ト ) を [Schematic] ま たは [Netlist] ビ ュ ーか ら デバ ッ グ コ アのポー ト に ド ラ ッ グ ア ン ド ド ロ ッ プで き ます。 ネ ッ ト の選択に応 じ てポー ト が自動的に拡張 さ れます。 ま た、 ネ ッ ト ま たはバ ス を右 ク リ ッ ク し 、 [Assign to Debug Port] を ク リ ッ ク し て も 、 ネ ッ ト ま たはバ ス をデバ ッ グ ポー ト に割 り 当て る こ と がで き ます。 デ バ ッ グ コ ア の ポ ー ト か ら ネ ッ ト の 接続 を 解除す る に は、 ポ ー ト に 接続 さ れ て い る ネ ッ ト を 右 ク リ ッ ク し 、 [Disconnect Net] を ク リ ッ ク し ます。 デバ ッ グ コ アのプ ロパテ ィ の変更 各デバ ッ グ コ アには、 コ アの動作を カ ス タ マ イ ズする パ ラ メ ー タ ーがあ り ます。 debug_core_hub デバ ッ グ コ アの プ ロ パテ ィ の変更については、 67 ページの 「デバ ッ グ コ ア ハブの BSCAN ユーザー ス キ ャ ン チ ェーンの変更」 を参 照 し て く だ さ い。 ILA デバ ッ グ コ アのプ ロ パテ ィ も 変更で き ます。 た と えば、 ILA デバ ッ グ コ アでキ ャ プチ ャ さ れ る サ ン プルの数を 変更す る には、 次の手順に従い ます (図 8-7)。 1. [Debug ] ビ ュ ーで ILA コ ア (u_ila_0 な ど) を選択 し ます。 2. [Cell Properties] ビ ュ ーで [Debug Core Options] タ ブを ク リ ッ ク し ます。 3. [C_DATA_DEPTH] の ド ロ ッ プダ ウ ン リ ス ト か ら 、 キ ャ プチ ャ する サンプル数を選択 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 59 第 8 章 : イ ン シ ス テム ロ ジ ッ ク デザイ ンのデバ ッ グ フ ロー X-Ref Target - Figure 8-7 図 8‐7 : ILA コ アのデー タ の深 さ を変更 ILA コ アのプ ロ パテ ィ の説明は、 表 8-2 を参照 し て く だ さ い。 表 8‐2 : ILA デバ ッ グ コ アのプ ロパテ ィ デバ ッ グ コ アのプ ロパテ ィ 説明 有効な値 C_DATA_DEPTH ILA コ アで格納可能なデー タ サンプルの最大数。こ の値 を増加す る と 、 ILA で使用 さ れ る ブ ロ ッ ク RAM 数が増 加 し 、デザ イ ン パフ ォーマ ン ス に悪影響を与え る こ と が あ り ます。 1024 (デフ ォ ル ト ) 2048 4096 8192 16384 32768 65536 131072 C_TRIGIN_EN ILA コ アの TRIG_IN お よ び TRIG_IN_ACK ポー ト を イ ネーブルに し ます。 こ れ ら のポー ト は、 ア ド バン ス ネ ッ ト リ ス ト 変更 コ マ ン ド を使用 し て、デザ イ ンのネ ッ ト に 接続す る 必要があ り ます。 ILA ト リ ガー入力ま たは出力 信号を使用す る 場合は、 HDL イ ン ス タ ン シエーシ ョ ン 方法を使用 し て ILA をデザ イ ン に追加す る こ と を考慮 し て く だ さ い。 false (デフ ォ ル ト ) true C_TRIGOUT_EN ILA コ アの TRIG_OUT お よ び TRIG_OUT_ACK ポー ト を イ ネーブルに し ます。 こ れ ら のポー ト は、 ア ド バン ス ネ ッ ト リ ス ト 変更 コ マ ン ド を使用 し て、デザ イ ンのネ ッ ト に接続す る 必要があ り ます。 ILA ト リ ガー入力ま たは 出力信号を使用す る 場合は、HDL イ ン ス タ ン シエーシ ョ ン方法を使用 し て ILA をデザ イ ン に追加す る こ と を考 慮 し て く だ さ い。 false (デフ ォ ル ト ) true C_ADV_TRIGGER ILA コ ア の ADVANCED ト リ ガー モー ド を イ ネーブル に し ます。 こ の機能の詳細は、 第 9 章を参照 し て く だ さ い。 false (デフ ォ ル ト ) true Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 60 第 8 章 : イ ン シ ス テム ロ ジ ッ ク デザイ ンのデバ ッ グ フ ロー 表 8‐2 : ILA デバ ッ グ コ アのプ ロパテ ィ デバ ッ グ コ アのプ ロパテ ィ 説明 有効な値 C_INPUT_PIPE_STAGES ILA コ アの PROBE 入力のパ イ プ段に追加レベル (例 : フ リ ッ プ フ ロ ッ プ レ ジ ス タ ) を使用で き る よ う に し ま す。 こ の機能を使用す る と 、 Vivado ツールで ILA コ ア をデ ザ イ ン の ク リ テ ィ カル セ ク シ ョ ン か ら 離 し て配置で き る よ う にな る ので、デザ イ ンの タ イ ミ ン グ パフ ォーマ ン ス を改善で き る こ と があ り ます。 0 (デフ ォ ル ト ) 1 2 3 4 5 6 C_EN_STRG_QUAL ILA コ アの BASIC キ ャ プチ ャ モー ド を イ ネーブルに し ます。 こ の機能の詳細は、 第 9 章を参照 し て く だ さ い。 false (デフ ォ ル ト ) true C_ALL_PROBE_SAME_MU ILA コ アの PROBE 入力をすべて イ ネーブルに し て、 同 じ 数の コ ン パ レ ー タ (比較ユニ ッ ト ) が含 ま れ る よ う に し ます。 こ のプ ロ パテ ィ は常に true に設定 し てお く 必要 があ り ます。 true (デフ ォ ル ト ) false (推奨 し ません) C_ALL_PROBE_SAME_MU_CNT ILA コ アの PROBE 入力ご と の コ ンパレー タ (比較ユ ニ ッ ト ) の数。 必要な コ ンパレー タ の数は、 C_ADV_TRIGGER お よ び C_EN_STRG_QUAL プ ロ パ テ ィ の設定に よ っ て異な り ます。 • C_ADV_TRIGGER が false で C_EN_STRG_QUAL が false の場合は 1 に設定 • C_ADV_TRIGGER が false で C_EN_STRG_QUAL が true の場合は 2 に設定 • C_ADV_TRIGGER が true で C_EN_STRG_QUAL が false の場合は 1 ~ 4 に設定 ( こ の場合は 4 を推奨) • C_ADV_TRIGGER が true で C_EN_STRG_QUAL が true の場合は 2 ~ 4 に設定 ( こ の場合は 4 を推奨) 重要 : 上記の規則に従わない場合、 ILA コ ア を生成 し た と き に イ ンプ リ メ ン テーシ ョ ン中にエ ラ ー メ ッ セージ が表示 さ れます。 1 2 3 4 XDC コ マ ン ド を使用 し たデバ ッ グ コ アの挿入 Set up Debug ウ ィ ザー ド の使用に加え、 XDC コ マ ン ド を使用使用 し て も デバ ッ グ コ ア を作成、 接続 し 、 合成済みデ ザ イ ン ネ ッ ト リ ス ト に挿入で き ます。 次の手順に従っ て、 Tcl コ ン ソ ールに XDC コ マ ン ド を入力 し ます。 1. synth_1 と い う 合成 run か ら 合成済みネ ッ ト リ ス ト を開き ます。 open_run synth_1 重要 : 次の手順の XDC コ マ ン ド は、 合成済みネ ッ ト リ ス ト が開いてい る 場合にのみ使用で き ます。 2. ILA コ アのブ ラ ッ ク ボ ッ ク ス を作成 し ます。 create_debug_core u_ila_0 ila 3. ILA コ アのプ ロ パテ ィ を設定 し ます。 set_property set_property set_property set_property set_property set_property set_property set_property C_DATA_DEPTH 1024 [get_debug_cores u_ila_0] C_TRIGIN_EN false [get_debug_cores u_ila_0] C_TRIGOUT_EN false [get_debug_cores u_ila_0] C_ADV_TRIGGER false [get_debug_cores u_ila_0] C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_0] C_EN_STRG_QUAL false [get_debug_cores u_ila_0] ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0] ALL_PROBE_SAME_MU_CNT 1 [get_debug_cores u_ila_0] Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 61 第 8 章 : イ ン シ ス テム ロ ジ ッ ク デザイ ンのデバ ッ グ フ ロー 4. ILA コ アの 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 コ アの clk ポー ト は、 create_debug_core コ マ ン ド で自動的に作成 さ れ る ので、 ユーザーが作成す る 必要はあ り ません。 重要 : デバ ッ グ コ アのデバ ッ グ ポー ト 名はすべて小文字です。大文字や小文字 と 大文字の混ざ っ たポー ト 名を使用す る と 、 エ ラ ーにな り ます。 5. probe0 ポー ト の幅を、 そのポー ト に接続す る ネ ッ ト の数に設定 し ます。 set_property port_width 1 [get_debug_ports u_ila_0/probe0] 注記 : ILA コ アの最初のプ ロ ーブ ポー ト (probe0) は、create_debug_core コ マ ン ド で自動的に作成 さ れ る ので、ユー ザーが作成す る 必要はあ り ません。 6. probe0 ポー ト を、 そのポー ト に接続する ネ ッ ト に接続 し ます。 connect_debug_port u_ila_0/probe0 [get_nets [list A_or_B]] 7. (オプシ ョ ン) 必要なだけプ ロ ーブ ポー ト を作成 し 、 幅を設定 し て、 デバ ッ グす る ネ ッ ト に接続 し ます。 create_debug_port u_ila_0 probe set_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]}]] こ れ ら の コ マ ン ド お よ びその他の関連 コ マ ン ド の詳細は、 Tcl コ ン ソ ールで 「help -category Debug」 と 入力 し て く だ さ い。 デバ ッ グ XDC コ マ ン ド 実行後の制約の保存 Set up Debug ウ ィ ザー ド を使用 し た後、 Vivado Design Suite を使用 し てデバ ッ グ コ ア ま たはポー ト を作成 し た後、 お よ び次の XDC コ マ ン ド を実行 し た後は、 制約を保存す る 必要があ り ます。 • create_debug_core • create_debug_port • connect_debug_port • set_property (debug_core ま たは debug_port オブジ ェ ク ト に適用) 対応す る XDC コ マ ン ド が タ ーゲ ッ ト 制約フ ァ イ ルに保存 さ れ、 イ ンプ リ メ ン テーシ ョ ン中にデバ ッ グ コ アの挿入お よ び接続に使用 さ れます。 重要 : プ ロ ジ ェ ク ト モー ド で制約を タ ーゲ ッ ト 制約フ ァ イ ルに保存す る と 、合成お よ び イ ンプ リ メ ン テーシ ョ ンが更 新必要な状態にな る こ と があ り ますが、 デバ ッ グ XDC 制約は イ ンプ リ メ ン テーシ ョ ンで し か使用 さ れないので、 合 成 を 再実行す る 必要は あ り ま せん。 合成 を 強制的に最新の状態にす る には、 [Design Runs] ビ ュ ーで合成 run (例 : synth_1) を右 ク リ ッ ク し 、 [Force Up-to-Date] を ク リ ッ ク し ます。 デザイ ンのイ ン プ リ メ ン テーシ ョ ン デバ ッ グ コ ア を挿入、 接続、 カ ス タ マ イ ズ し た ら 、 デザ イ ン を イ ンプ リ メ ン ト し ます。 詳細は、 「デバ ッ グ コ ア を含 むデザ イ ンの イ ンプ リ メ ン テーシ ョ ン」 を参照 し て く だ さ い。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 62 第 8 章 : イ ン シ ス テム ロ ジ ッ ク デザイ ンのデバ ッ グ フ ロー 非プ ロ ジ ェ ク ト モー ド でのデバ ッ グ コ アの挿入 デバ ッ グ コ アは、 プ ロ ジ ェ ク ト モー ド お よ び非プ ロ ジ ェ ク ト モー ド 両方で挿入で き ます。 次のサン プル Tcl ス ク リ プ ト は、 コ ア をデバ ッ グ し 、 デバ ッ グ コ アの属性を設定 し 、 そのデバ ッ グ コ ア プ ロ ーブ をプ ロ ーブ さ れ る デザ イ ン の信号に接続 し ます。 非プ ロ ジ ェ ク ト モー ド の場合、 デバ ッ グ コ アはデザ イ ン合成後、 opt_design 段階の前に挿入す る 必要があ り ます。 重要 : デバ ッ グ コ アの挿入は、 ILA コ アに対 し てのみサポー ト さ れます。 次の Tcl ス ク リ プ ト は、 非プ ロ ジ ェ ク ト フ ロ ーでデバ ッ グ コ ア挿入 コ マ ン ド を使用 し た例です。 #read relevant design source files read_vhdl [glob ./*.vhdl] read_verilog [ glob ./Sources/*.v ] read_xdc ./target.xdc #Synthesize Design synth_design -top top -part xc7k325tffg900-2 #Create the debug core create_debug_core u_ila_0 ila #set debug core properties set_property C_DATA_DEPTH 1024 [get_debug_cores u_ila_0] set_property C_TRIGIN_EN false [get_debug_cores u_ila_0] set_property C_TRIGOUT_EN false [get_debug_cores u_ila_0] set_property C_ADV_TRIGGER false [get_debug_cores u_ila_0] set_property C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_0] set_property C_EN_STRG_QUAL false [get_debug_cores u_ila_0] set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0] set_property ALL_PROBE_SAME_MU_CNT 1 [get_debug_cores u_ila_0] #connect the probe ports in the debug core to the signals being probed in the design set_property port_width 1 [get_debug_ports u_ila_0/clk] connect_debug_port u_ila_0/clk [get_nets [list clk ]] set_property port_width 1 [get_debug_ports u_ila_0/probe0] connect_debug_port u_ila_0/probe0 [get_nets [list A_or_B]] create_debug_port u_ila_0 probe #Optionally, create more probe ports, set their width, # and connect them to the nets you want to debug #Implement design opt_design place_design report_drc -file ./placed_drc_rpt.txt report_timing_summary -file ./placed_timing_rpt.txt route_design report_drc -file ./routed_drc_rpt.txt report_timing_summary -file ./routed_timing_rpt.txt write_bitstream Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 63 第 8 章 : イ ン シ ス テム ロ ジ ッ ク デザイ ンのデバ ッ グ フ ロー HDL イ ン ス タ ン シ エーシ ョ ン デバ ッ グ プ ローブ フ ローの概要 HDL イ ン ス タ ン シエーシ ョ ン プ ロ ーブ フ ロ ーでは、 HDL デザ イ ン ソ ース で直接デバ ッ グ コ ア コ ン ポーネ ン ト を カ ス タ マ イ ズ、 イ ン ス タ ン シエー ト 、 お よ び接続 し ます。 表 8-3 に、 こ の フ ロ ーでサポー ト さ れ る 新 し いデバ ッ グ コ ア を示 し ます。 表 8‐3 : HDL イ ン ス タ ン シ エーシ ョ ン プ ローブ フ ローで使用可能な Vivado IP カ タ ログに含まれるデバ ッ グ コ ア デバ ッ グ コ ア バージ ョ ン 説明 ラ ン タ イム解析ツール ILA (Integrated Logic Analyzer) v5.0 デザ イ ン の信号を JTAG チ ェ ー ン ス キ ャ ン レー ト デー タ を シ ス テ ム速度で キ ャ プチ ャ す る ために使用す る デバ ッ グ コ ア Vivado ロ ジ ッ ク 解析 VIO (Virtual Input/Output) v3.0 デザ イ ン の信号を JTAG チ ェ ー ン ス キ ャ ン レー ト で監視ま たは制御 す る ために使用す る デバ ッ グ コ ア Vivado ロ ジ ッ ク 解析 JTAG-to-AXI Master v1.0 ハー ド ウ ェ ア で動作中の さ ま ざ ま な AXI フルお よ び AXI Lite ス レ ーブ コ ア と 通信す る AXI ト ラ ン ザ ク シ ョ ン を生成す る ため に使用 さ れ る デバ ッ グ コ ア Vivado ロ ジ ッ ク 解析 新 し い ILA コ ア を レ ガシ ILA v1.x コ ア と 比較 し た場合の利点 • Vivado ロ ジ ッ ク 解析で機能 し ます。 詳細は、 第 9 章 「ハー ド ウ ェ アでの ロ ジ ッ ク デザ イ ンのデバ ッ グ」 を参照 し て く だ さ い。 • ICON コ アの挿入お よ び接続は必要あ り ません。 HDL イ ン ス タ ン シ エーシ ョ ン デバ ッ グ プ ローブ フ ロー HDL イ ン ス タ ン シエーシ ョ ン フ ロ ーの手順は、 次の と お り です。 1. プ ロ ーブす る 信号用に、 適切な数のプ ロ ーブ ポー ト を含む ILA お よ び VIO デバ ッ グ コ ア を カ ス タ マ イ ズ し て生 成 し ます。 2. (オプシ ョ ン) JTAG-to-AXI Master デバ ッ グ コ ア を カ ス タ マ イ ズお よ び生成 し て、 デザ イ ンの AXI ペ リ フ ェ ラ ル ま たは イ ン タ ー コ ネ ク ト コ アの AXI ス レーブ イ ン タ ーフ ェ イ ス に接続 し ます。 3. デバ ッ グ コ ア を含むデザ イ ン を合成 し ます。 4. (オプシ ョ ン) デバ ッ グ ハブ コ アのプ ロ パテ ィ を変更 し ます。 5. デバ ッ グ コ ア を含むデザ イ ン を イ ンプ リ メ ン ト し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 64 第 8 章 : イ ン シ ス テム ロ ジ ッ ク デザイ ンのデバ ッ グ フ ロー デバ ッ グ コ アのカ ス タ マ イ ズおよび生成 Flow Navigator で [Project Manager] → [IP Catalog] を ク リ ッ ク し 、必要なデバ ッ グ コ ア を選択 し て カ ス タ マ イ ズ し ます。 デバ ッ グ コ アは、 IP カ タ ロ グの [Debug & Verification] → [Debug] カ テ ゴ リ にあ り ます (図 8-8)。 デバ ッ グ コ ア を カ ス タ マ イ ズす る には、 IP コ ア を ダブル ク リ ッ ク する か、 右 ク リ ッ ク し て [Customize IP] を ク リ ッ ク し ます。 • ILA コ アのカ ス タ マ イ ズについては、 『LogiCORE IP Integrated Logic Analyzer (ILA) v4.0 製品ガ イ ド 』 (PG172) [参 照 17] を参照 し て く だ さ い。 • VIO コ アのカ ス タ マ イ ズについては、 『LogiCORE IP Virtual Input/Output (VIO) v3.0 製品ガ イ ド 』 (PG159) [参照 13] を参照 し て く だ さ い。 • JTAG-to-AXI Master コ アのカ ス タ マ イ ズについては、『LogiCORE IP JTAG to AXI Master v1.0 製品ガ イ ド 』 (PG174) [参照 18] を参照 し て く だ さ い。 コ ア を カ ス タ マ イ ズ し た ら 、 [Generate] ボ タ ン を ク リ ッ ク し ま す。 カ ス タ マ イ ズ さ れたデバ ッ グ コ ア が生成 さ れ、 [Sources] ビ ュ ーに追加 さ れます。 X-Ref Target - Figure 8-8 図 8‐8 : IP カ タ ロ グのデバ ッ グ コ ア Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 65 第 8 章 : イ ン シ ス テム ロ ジ ッ ク デザイ ンのデバ ッ グ フ ロー デバ ッ グ コ アのイ ン ス タ ン シ エーシ ョ ン デバ ッ グ コ ア を生成 し た ら 、 HDL ソ ー ス に イ ン ス タ ン シエー ト し 、 デバ ッ グ用にプ ロ ーブす る 信号に接続 し ま す。 次に、 Verilog HDL ソ ース フ ァ イ ルの ILA イ ン ス タ ン ス の例を示 し ます。 u_ila_0 ( .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 コ ア イ ン ス タ ン ス では、 レ ガシ VIO お よ び ILA v1.x コ ア と は異な り 、 ICON コ ア イ ン ス タ ン スへ の接続は必要あ り ません。 その代わ り に デバ ッ グ コ ア ハブ デバ ッ グ (dbg_hub) が合成済みデザ イ ン ネ ッ ト リ ス ト に自動的に挿入 さ れ、 新 し い ILA コ ア と JTAG ス キ ャ ン チ ェーンが接続 さ れます。 デバ ッ グ コ ア を含むデザイ ンの合成 次に、 Vivado Design Suite で [Run Synthesis] を ク リ ッ ク す る か、 次の Tcl コ マ ン ド を使用 し て、 デバ ッ グ コ ア を含む デザ イ ン を合成 し ます。 launch_runs synth_1 wait_on_run synth_1 synth_design Tcl コ マ ン ド を使用 し てデザ イ ン を合成す る こ と も で き ます。デザ イ ンの さ ま ざ ま な合成方法は、『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) [参照 2] を参照 し て く だ さ い。 合成済みデザイ ン でのデバ ッ グ コ アの表示 デザ イ ン を 合成 し た ら 、 合成済みデザ イ ン を 開い て デバ ッ グ コ ア を 表示 し 、 プ ロ パ テ ィ を 変更で き ま す。 Flow Navigator で [Open Synthesized Design] を ク リ ッ ク し て 合成済みデザ イ ン を 開 き 、 [Debug] レ イ ア ウ ト を 選択 し て、 [Debug] ビ ュ ーでデバ ッ グ ハブ コ ア (dbg_hub) に接続 さ れた ILA デバ ッ グ コ ア を確認 し ます (図 8-9)。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 66 第 8 章 : イ ン シ ス テム ロ ジ ッ ク デザイ ンのデバ ッ グ フ ロー X-Ref Target - Figure 8-9 図 8‐9 : ILA コ ア と デバ ッ グ ハブ コ ア を示す [Debug] ビ ュ ー デバ ッ グ コ ア ハブの BSCAN ユーザー スキ ャ ン チ ェ ーンの変更 デバ ッ グ ハブ コ アの BSCAN ユーザー ス キ ャ ン チ ェーン イ ンデ ッ ク ス を表示お よ び変更す る には、 [Debug] ビ ュ ー で dbg_hub を選択 し 、[Instance Properties] ビ ュ ーで [Debug Core Options] タ ブ を ク リ ッ ク し て、[C_USER_SCAN_CHAIN] の値を変更 し ます (図 8-10)。 重要 : デバ ッ グ ハブ コ アの C_USER_SCAN_CHAIN のデフ ォ ル ト 値は、 1 か 3 です。 デバ ッ グ ハブ コ アに 1 か 3 以 外の ス キ ャ ン チ ェ ーン値を使用す る 場合は、 手動で hw_server を起動す る 必要があ り ます。 2 ま たは 4 のユーザー ス キ ャ ン チ ェ ーンでデバ ッ グ ハブ を検出す る には、 次の コ マ ン ド を使用 し ます。 hw_server -e "set xsdb-user-bscan <C_USER_SCAN_CHAIN scan_chain_number>" 重要 : マ イ ク ロ プ ロ セ ッ サ デバ ッ グ モジ ュ ール (MDM) ま たは BSCAN プ リ ミ テ ィ ブを Vivado ロ ジ ッ ク デバ ッ グ コ ア と 共に使用す る その他の IP を使用す る 場合は、dbg_hub の C_USER_SCAN_CHAIN プ ロ パテ ィ をほかの IP のバ ウ ン ダ リ ス キ ャ ン チ ェーン設定 と 競合 し ない値に設定 し ておかない と 、 イ ンプ リ メ ン テーシ ョ ン フ ロ ーでエ ラ ーが発 生 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 67 第 8 章 : イ ン シ ス テム ロ ジ ッ ク デザイ ンのデバ ッ グ フ ロー X-Ref Target - Figure 8-10 図 8‐10 : デバ ッ グ ハブ コ アのユーザー スキ ャ ン チ ェ ーン プ ロパテ ィ の変更 デバ ッ グ コ ア を含むデザイ ンのイ ン プ リ メ ン テー ション Vivado ツールでは、 デバ ッ グ ハブ コ アは、 最初ブ ラ ッ ク ボ ッ ク ス と し て作成 さ れ ます。 こ の コ アは、 配置配線を実 行す る 前に イ ンプ リ メ ン ト し てお く 必要があ り ます。 デザイ ンのイ ン プ リ メ ン テーシ ョ ン デバ ッ グ コ ア を含むデザ イ ン を イ ンプ リ メ ン ト する には、Vivado Design Suite で [Run Implementation] を ク リ ッ ク す る か、 次の Tcl コ マ ン ド を使用 し ます。 launch_runs impl_1 wait_on_run impl_1 イ ンプ リ メ ン テーシ ョ ン コ マ ン ド opt_design、 place_design、 お よ び route_design を使用 し て、 デザ イ ン を イ ンプ リ メ ン ト す る こ と も 可能です。 デザ イ ンの さ ま ざ ま な イ ン プ リ メ ン ト 方法iついては、 『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ン テーシ ョ ン』 (UG904) [参照 3] を参照 し て く だ さ い。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 68 第 9章 ハー ド ウ ェ アでのロ ジ ッ ク デザイ ンのデ バッグ デザ イ ンにデバ ッ グ コ ア を追加 し た ら 、 ラ ン タ イ ム ロ ジ ッ ク 解析機能を使用 し て、 ハー ド ウ ェ ア上でデザ イ ン をデ バ ッ グで き ます。 Vivado ロ ジ ッ ク解析を使用 し たデザイ ンのデバ ッ グ Vivado® ロ ジ ッ ク 解析機能は、 デザ イ ンに含まれ る 新 し い ILA、 VIO、 お よ び JTAG-to-AXI Master デバ ッ グ コ アにア ク セ ス す る ために使用 し ま す。 Vivado ロ ジ ッ ク 解析機能を使用す る には、 Flow Navigator で [Program and Debug] → [Open Hardware Manager] を ク リ ッ ク し ます。 ILA デバ ッ グ コ ア を使用 し たハー ド ウ ェ アでのデザ イ ンのデバ ッ グ手順は、 次の と お り です。 1. ハー ド ウ ェ ア タ ーゲ ッ ト に接続 し 、 FPGA デバ イ ス を BIT フ ァ イ ルでプ ロ グ ラ ム し ます。 2. ILA デバ ッ グ コ アの ト リ ガーお よ びキ ャ プチ ャ 条件を設定 し ます。 3. ILA デバ ッ グ コ ア を ト リ ガー待機状態に し ます。 4. 波形ビ ュ ーアーで ILA デバ ッ グ コ アか ら のデー タ を表示 し ます。 5. VIO デバ ッ グ コ ア を使用 し て制御信号を駆動 し 、 デザ イ ンの ス テー タ ス信号を確認 し ます。 6. JTAG-to-AXI Master デバ ッ グ コ ア を使用 し て、 デザ イ ン内の さ ま ざ ま な AXI ス レーブ コ アにア ク セ スす る ト ラ ンザ ク シ ョ ン を実行 し ます。 ハー ド ウ ェ ア タ ーゲ ッ ト に接続 し て FPGA デバイ ス を プ ログ ラ ム デバ ッ グの前に FPGA デバ イ ス をプ ロ グ ラ ムす る 手順は、 18 ページの 「FPGA デバ イ ス のプ ロ グ ラ ム」 で説明 さ れて い る 手順 と 同 じ です。 新 し い ILA、 VIO、 お よ び JTAG-to-AXI Master デバ ッ グ コ ア を含む BIT フ ァ イ ルでデバ イ ス を プ ロ グ ラ ムす る と 、 [Hardware] ビ ュ ーにデバ イ ス の ス キ ャ ン で検出 さ れたデバ ッ グ コ アが表示 さ れます (図 9-1)。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 69 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ X-Ref Target - Figure 9-1 図 9‐1 : デバ ッ グ コ アが表示 さ れた [Hardware] ビ ュ ー ILA コ アの使用に関す る 詳細は、 78 ページの 「計測のための ILA コ アの設定」 を参照 し て く だ さ い。 VIO コ アの使 用に関す る 詳細は、 97 ページの 「計測のための VIO コ アの設定」 を参照 し て く だ さ い。 Vivado ハー ド ウ ェ ア マネージ ャ ーのダ ッ シ ュ ボー ド Vivado ハー ド ウ ェ ア マネージ ャ ーのダ ッ シ ュ ボー ド を使用す る と 、 System Monitor、 ILA、 VIO デバ ッ グ コ アの さ ま ざ ま な ウ ィ ン ド ウ が管理 し やす く な り ます。 ダ ッ シ ュ ボー ド を使用 し て、 Vivado Design Suite プ ロ ジ ェ ク ト で こ れ ら の ウ ィ ン ド ウ の設定を作成、 変更、 保存す る こ と がで き ます。 デ フ ォル ト のダ ッ シ ュ ボー ド ハー ド ウ ェ ア デバ イ ス を リ フ レ ッ シ ュ す る と き にデバ ッ グ コ アが検出 さ れ る と 、 各デバ ッ グ コ アに対 し デフ ォ ル ト のダ ッ シ ュ ボー ド が自動的に開 き ます。 デ フ ォル ト のダ ッ シ ュ ボー ド ウ ィ ン ド ウ デフ ォ ル ト ダ ッ シ ュ ボー ド には、 ダ ッ シ ュ ボー ド が作成 さ れたデバ ッ グ コ アに関連 し た ウ ィ ン ド ウ が含まれてい ま す。 ILA デバ ッ グ コ アに対 し て作成 さ れたデフ ォ ル ト のダ ッ シ ュ ボー ド には、 次の 5 つの ウ ィ ン ド ウ が含まれてい ま す。 • [Settings] ウ ィ ン ド ウ • [Status] ウ ィ ン ド ウ • [Trigger Setup] ウ ィ ン ド ウ • [Capture Setup] ウ ィ ン ド ウ • [Waveform] ウ ィ ン ド ウ Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 70 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ デフ ォ ル ト の ILA ダ ッ シ ュ ボー ド の例は次の よ う にな り ます。 X-Ref Target - Figure 9-2 図 9‐2 : デ フ ォル ト の ILA ダ ッ シ ュ ボー ド ま ず、 [Trigger Setup] ウ ィ ン ド ウ の中央に あ る 緑色の + 記号を ク リ ッ ク し て、 プ ロ ーブ を こ の ウ ィ ン ド ウ に追加 し 、 図 9-3 にあ る よ う に [Add Probes] ウ ィ ン ド ウ か ら プ ロ ーブ を選択す る と こ ろか ら 始め ます。 X-Ref Target - Figure 9-3 図 9‐3 : [Add Probes] ウ ィ ン ド ウ Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 71 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ VIO のデフ ォ ル ト ダ ッ シ ュ ボー ド は最初は空白ですが、 こ こ に図 9-4 に示す よ う に、 VIO プ ロ ーブ を追加 し てい き ま す。 X-Ref Target - Figure 9-4 図 9‐4 : VIO プ ローブの追加 デバ ッ グ コ アに関連付け ら れてい る ダ ッ シ ュ ボー ド を表示す る には、 [Hardware] ビ ュ ーでデバ ッ グ コ ア オブジ ェ ク ト を右 ク リ ッ ク し 、 [Dashuboard] オプシ ョ ン を ク リ ッ ク し て、 ダ ッ シ ュ ボー ド 名を選択 し ます。 [Hardware] ビ ュ ーで デバ ッ グ コ ア を ダブル ク リ ッ ク す る と 、 その コ アに関連付け ら れてい る ダ ッ シ ュ ボー ド が開き ます。 X-Ref Target - Figure 9-5 図 9‐5 : 関連付け られている ダ ッ シ ュ ボー ド Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 72 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ ダ ッ シ ュ ボー ド 内のウ ィ ン ド ウ制御 各 ウ ィ ン ド ウ の タ イ ト ル バーには、 ウ ィ ン ド ウ を操作で き る ボ タ ンが含まれます。 • 最小化 • 最大化 • 閉じ る ウ ィ ン ド ウの移動 ウ ィ ン ド ウ を移動 さ せ る には、 次の手順に従い ます。 1. ウ ィ ン ド ウ の タ ブ ま たは タ イ ト ル バーを選択 し 、 ド ラ ッ グ し ます。 グ レーのア ウ ト ラ イ ン で ウ ィ ン ド ウ が ど こ に 移動 さ れ る かが示 さ れます。 2. マ ウ ス ボ タ ン を放 し て ウ ィ ン ド ウ を配置 し ます。 注記 : 既存の ウ ィ ン ド ウ の上に別の ウ ィ ン ド ウ を ド ロ ッ プす る と 、 同 じ 場所に 2 つの ウ ィ ン ド ウ タ ブが表示 さ れ ま す。 重要 : ウ ィ ン ド ウ は ワ ー ク スペース外へ移動で き ませんが、 ワー ク スペース内でサ イ ズ を変更 し た り 、 移動 し た り は で き ます。 ウ ィ ン ド ウのサイ ズ変更 • ウ ィ ン ド ウ のサ イ ズ を変更す る には、 ウ ィ ン ド ウ の枠を ク リ ッ ク し て ド ラ ッ グ し ます。 注記 : ウ ィ ン ド ウ の枠にカー ソ ル置 く と 矢印か ら ド ラ ッ グ用マー ク に変わ る ので、 ド ラ ッ グ し てサ イ ズ を変更 し ます。 • ウ ィ ン ド ウ を最大化す る には、 右上の [Maximize] ボ タ ン を ク リ ッ ク し ます。 • ウ ィ ン ド ウ を元のサ イ ズに戻すには、 ウ ィ ン ド ウ の タ イ ト ル バーま たは タ ブ を ダブル ク リ ッ ク し ます。 ウ ィ ン ド ウ を閉 じ る • ウ ィ ン ド ウ を閉 じ る には、 ウ ィ ン ド ウ右上の [Close] ボ タ ン を ク リ ッ ク し ます。 注記 : こ のボ タ ンが タ ブに表示 さ れ る こ と も あ り ます。 • ウ ィ ン ド ウ の タ ブ ま たは タ イ ト ル バーで右 ク リ ッ ク し 、 [Close] を ク リ ッ ク し ます。 ウ ィ ン ド ウ タ ブ 各 ウ ィ ン ド ウ には タ ブがあ り 、 タ ブ を ク リ ッ ク す る と その タ ブの内容が表示 さ れ ます。 [Trigger Setup] ウ ィ ン ド ウ や [Capture Setup] ウ ィ ン ド ウ な ど の一部の ウ ィ ン ド ウ では タ ブは下に表示 さ れます。 ヒ ン ト : 次の タ ブ を選択す る には、 Ctrl + Tab キーを押 し ます。 前の タ ブ を選択す る には、 Ctrl + Shift + Tab キーを押 し ます。 ウ ィ ン ド ウ を最大化ま たは最小化す る には、 ウ ィ ン ド ウ の タ ブを ダブル ク リ ッ ク す る か、 Alt - を押 し ます。 ダ ッ シ ュ ボー ド のカ ス タ マ イ ズ 通常、 デザ イ ン をデバ ッ グ し た り 、 結果を表示す る のに、 デフ ォ ル ト ダ ッ シ ュ ボー ド の ウ ィ ン ド ウ で十分なのです が、 ダ ッ シ ュ ボー ド のカ ス タ マ イ ズな ど のため、 ウ ィ ン ド ウ を移動 し たい場合があ り ます。 た と えば、 ILA の ス テー タ ス と 波形 ウ ィ ン ド ウ の両方を表示 し つつ、 同 じ ダ ッ シ ュ ボー ド で VIO プ ロ ーブ を制御す る よ う に し たい と し ます。 こ の よ う な場合、 必要に応 じ てダ ッ シ ュ ボー ド を カ ス タ マ イ ズす る こ と をお勧め し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 73 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ ダ ッ シ ュ ボー ド のオプ シ ョ ン ダ ッ シ ュ ボー ド の左端には [Dashboard Options] があ り 、 ス ラ イ ド さ せて表示で き ます。 ダ ッ シ ュ ボー ド 左側にあ る >> ボ タ ン を押す と 、 こ の [Dashboard Options] が開 き ます。 [Dashboard Options] では、 特定ダ ッ シ ュ ボー ド に表示 さ れ る ウ ィ ン ド ウ を制御す る ための設定を行 う こ と がで き ます。 た と えば、 ILA ダ ッ シ ュ ボー ド に VIO ウ ィ ン ド ウ の 1 つを 含め る よ う 、 カ ス タ マ イ ズ し たい と し ま す。 次に示す よ う に、 [Dashboard Options] で含めたい VIO ウ ィ ン ド ウ を ク リ ッ ク す る と 、 ILA ダ ッ シ ュ ボー ド にそれが表示 さ れ る よ う にな り ます。 こ れで VIO プ ロ ーブ を追加 し て、 ILA ウ ィ ン ド ウ を ト リ ガー さ せ る こ と がで き ます。 X-Ref Target - Figure 9-6 図 9‐6 : ダ ッ シ ュ ボー ド オプ シ ョ ンの追加 ま た、 [Dashboard Options] を閉 じ る 場合 も 、 ダ ッ シ ュ ボー ド 左側にあ る >> ボ タ ン を押 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 74 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ 新規ダ ッ シ ュ ボー ド の作成 [Dashboard Options] を使用 し てデフ ォ ル ト のダ ッ シ ュ ボー ド を カ ス タ マ イ ズす る だけでな く 、 新 し いダ ッ シ ュ ボー ド を作成す る こ と も で き ます。 新規ダ ッ シ ュ ボー ド を作成す る には、 図 9-7 の よ う に [Hardware] ビ ュ ーでデバ ッ グ コ ア オブジ ェ ク ト を右 ク リ ッ ク し 、 [Dashboard] → [New Dashboard] を ク リ ッ ク し ます。 X-Ref Target - Figure 9-7 図 9‐7 : 新規ダ ッ シ ュ ボー ド の作成 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 75 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ [New Dashboard] ダ イ ア ロ グ ボ ッ ク ス が表示 さ れた ら 、 必要に応 じ てダ ッ シ ュ ボー ド を カ ス タ マ イ ズ し ます。 X-Ref Target - Figure 9-8 図 9‐8 : [New Dashboard] ダ イ ア ロ グ ボ ッ ク ス 次の図に示す よ う に、 ツールバーの [Dashboard] ボ タ ン を ク リ ッ ク し て新 し いダ ッ シ ュ ボー ド を作成す る こ と も で き ます。 X-Ref Target - Figure 9-9 図 9‐9 : ツールバーの [Dashboard] ボ タ ン ヒ ン ト : デバ ッ グ コ アに関連付け ら れてい る ダ ッ シ ュ ボー ド をすべて表示 さ せ る には、 [Hardware] ビ ュ ーでデバ ッ グ コ ア を右 ク リ ッ ク し 、 [Dashboard] を ク リ ッ ク し ます。 ま たは、 [Hardware] ビ ュ ーでデバ ッ グ コ ア を ダブル ク リ ッ ク す る と 、 その コ アに関連付け ら れてい る ダ ッ シ ュ ボー ド の リ ス ト が開 き ます。 ヒ ン ト : ダ ッ シ ュ ボー ド に 1 つの ウ ィ ン ド ウ を フ ロ ー ト さ せ る 場合は、 その ウ ィ ン ド ウ だけのダ ッ シ ュ ボー ド を作成 し て、 そのダ ッ シ ュ ボー ド を フ ロ ー ト さ せ る こ と をお勧め し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 76 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ ダ ッ シ ュ ボー ド の ILA 波形ウ ィ ン ド ウ ILA 波形 ウ ィ ン ド ウ は 1 つのダ ッ シ ュ ボー ド に 1 つ し か表示で き ません。 別のダ ッ シ ュ ボー ド にあ る 波形ウ ィ ン ド ウ を ク リ ッ ク す る と 、 図 9-10 の よ う に、 ウ ィ ン ド ウ を移動 さ せ る か ど う か を確認す る メ ッ セージが表示 さ れます。 X-Ref Target - Figure 9-10 図 9‐10 : ILA 波形ウ ィ ン ド ウの移動を確認する メ ッ セージ [OK] を ク リ ッ ク す る と 、 波形 ウ ィ ン ド ウ は指定のダ ッ シ ュ ボー ド に移動 し ます。 ヒ ン ト : 波形ウ ィ ン ド ウ を閉 じ る と き は ILA デー タ を保存 し て く だ さ い。 シ ス テム モニ タ ーのダ ッ シ ュ ボー ド XADC/シ ス テ ム モニ タ ーの ウ ィ ン ド ウ は、 別のダ ッ シ ュ ボー ド に含めた り 、 それ用のダ ッ シ ュ ボー ド を作成す る こ と も で き ます。 X-Ref Target - Figure 9-11 図 9‐11 : シ ス テム モニ タ ーのダ ッ シ ュ ボー ド デ フ ォル ト ダ ッ シ ュ ボー ド への リ セ ッ ト ダ ッ シ ュ ボー ド は、 ツールバーの [Dashboard] を ク リ ッ ク し 、 [Reset to Default] を ク リ ッ ク し て、 デフ ォ ル ト の状態に 戻す こ と がで き ます。 X-Ref Target - Figure 9-12 図 9‐12 : デ フ ォル ト ダ ッ シ ュ ボー ド への リ セ ッ ト Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 77 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ ダ ッ シ ュ ボー ド を閉 じ る ツールバーの [Dashboard] を ク リ ッ ク し 、 [Close All] を ク リ ッ ク す る と 、 開いてい る ダ ッ シ ュ ボー ド をすべて閉 じ る こ と がで き ます。 ダ ッ シ ュ ボー ド はすべて削除 さ れ、 こ れ ら のダ ッ シ ュ ボー ド のユーザー設定 も 削除 さ れます。 ウ ィ ン ド ウ の右上にあ る [X] を ク リ ッ ク し て、 ダ ッ シ ュ ボー ド を 1 つずつ閉 じ る こ と も で き ます。 そのダ ッ シ ュ ボー ド のユーザー設定 も 削除 さ れます。 ユーザー ダ ッ シ ュ ボー ド 設定の保存 ユーザー ダ ッ シ ュ ボー ド 設定は Vivado IDE で自動的に保存 さ れます。 プ ロ ジ ェ ク ト を閉 じ て、再び開 く と 、 ユーザー 設定はハー ド ウ ェ ア マネージ ャ ーに戻 り ます。 計測のための ILA コ アの設定 デザ イ ンに追加 し た ILA コ アは、 [Hardware] ビ ュ ーの タ ーゲ ッ ト デバ イ ス の下に表示 さ れます。 ILA コ アが表示 さ れ ていない場合は、 デバ イ ス を右 ク リ ッ ク し て [Refresh Device] を ク リ ッ ク し ま す。 FPGA デバ イ ス が再度 ス キ ャ ン さ れ、 [Hardware] ビ ュ ーの表示が更新 さ れます。 注記 : FPGA デバ イ ス をプ ロ グ ラ ム ま たは更新 し て も ILA コ アが表示 さ れない場合は、 デバ イ ス が正 し い BIT フ ァ イ ルでプ ロ グ ラ ム さ れてい る か、 イ ン プ リ メ ン ト 済みデザ イ ン に ILA コ アが含 ま れてい る か を確認 し て く だ さ い。 ま た、 BIT に該当す る 適切な .LTX プ ロ ーブ フ ァ イ ルがデバ イ ス に関連付け ら れてい る か ど う か確認 し て く だ さ い。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 78 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ ILA コ ア (図 9-1 では hw_ila_1) を選択す る と 、 [ILA Core Properties] ビ ュ ーにプ ロ パテ ィ が表示 さ れます。 ILA コ アに 対応す る プ ロ ーブ をすべて表示 さ せ る には、[Windows] → [Debug Probes] を ク リ ッ ク し ます。こ れで79 ページの図 9-13 にあ る よ う に [Debug Probes] ウ ィ ン ド ウ が開き ます。 X-Ref Target - Figure 9-13 図 9‐13 : さ ま ざ ま な ビ ュ ーの ILA コ ア プ ローブの追加 ILA ダ ッ シ ュ ボー ド の特定 ウ ィ ン ド ウ に関連プ ロ ーブを追加す る には、 ウ ィ ン ド ウ の ツールバーま たは ワー ク スペー ス の緑色の + 記号を ク リ ッ ク し ます。 デバ ッ グ プ ローブ情報の書き込み [Debug Probes] ビ ュ ーには、 ILA お よ び VIO コ ア を使用 し てプ ロ ーブ さ れ る デザ イ ンのネ ッ ト に関す る 情報が表示 さ れ ます。 こ のデバ ッ グ プ ロ ーブ情報はデザ イ ンか ら 抽出 さ れ、 通常 .ltx と い う 拡張子のデー タ フ ァ イ ルに保存 さ れます。 デバ ッ グ プ ロ ーブ フ ァ イ ルは、 イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス中に自動的に作成 さ れますが、 write_debug_probes Tcl コ マ ン ド を使用 し てデバ ッ グ プ ロ ーブ情報を フ ァ イ ルに書き 出す こ と も で き ます。 1. 合成済みデザ イ ン ま たはネ ッ ト リ ス ト デザ イ ン を開 き ます。 2. write_debug_probes filename.ltx と い う Tcl コ マ ン ド を実行 し ます。 重要 : 非プ ロ ジ ェ ク ト モー ド を使用 し てい る 場合は、 opt_design コ マ ン ド のすぐ 後に write_debug_probes コ マ ン ド を手動で呼び出す必要があ り ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 79 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ デバ ッ グ プ ローブ情報の読み出 し デバ ッ グ プ ロ ーブ フ ァ イ ルは、 Vivado IDE がプ ロ ジ ェ ク ト モー ド で、 debug_nets.ltx と い う プ ロ ーブ フ ァ イ ル がデバ イ ス に関連付け ら れてい る ビ ッ ト ス ト リ ーム プ ロ グ ラ ム フ ァ イ ル (.bit) と 同 じ デ ィ レ ク ト リ にあ る 場合、自 動的にハー ド ウ ェ ア デバ イ ス に関連付け ら れます。 プ ロ ーブ フ ァ イ ルの場所を指定す る には、 次の手順に従い ます。 1. [Hardware] ビ ュ ーでハー ド ウ ェ ア デバ イ ス を選択 し ます。 2. [Hardware Device Properties] ビ ュ ーでプ ロ ーブ フ ァ イ ルの場所を設定 し ます。 3. [Hardware] ビ ュ ーでハー ド ウ ェ ア デバ イ ス を右 ク リ ッ ク し 、[Refresh Device] を ク リ ッ ク す る と 、デバ ッ グ プ ロ ー ブ フ ァ イ ルの内容が読み込まれ、 ハー ド ウ ェ ア デバ イ ス で実行 さ れ る デザ イ ン内のデバ ッ グ コ ア と その情報が 関連付け ら れ、 検証 さ れます。 次の Tcl コ マ ン ド を使用 し てデ ィ レ ク ト リ を設定 し 、 C:\myprobes.ltx と い う デバ ッ グ プ ロ ーブ フ ァ イ ルを タ ー ゲ ッ ト ボー ド の最初のデバ イ ス に関連付け る こ と も で き ます。 % set_property PROBES.FILE {C:/myprobes.ltx} [lindex [get_hw_devices] 0] % refresh_hw_device [lindex [get_hw_devices] 0] デバ ッ グ プ ローブの名前変更 [Debug Probes] ビ ュ ーを使用す る と 、 ILA ま たは VIO コ アに含 ま れ る デバ ッ グ プ ロ ーブの名前を変更で き ま す。 デ バ ッ グ プ ロ ーブは、 コ アの既存の波形ビ ュ ーアーに追加す る か、 ILA ダ ッ シ ュ ボー ド の さ ま ざ ま な ト リ ガーお よ び キ ャ プチ ャ ウ ィ ン ド ウ に追加で き ます。 こ れ ら の名前は、 デバ ッ グ プ ロ ーブに関連 し た カ ス タ ム、 ロ ン グ、 シ ョ ー ト のいずれかの形式にで き ます。 こ れ ら を実行す る には、 ILA/VIO コ アのデバ ッ グ プ ロ ーブ を右 ク リ ッ ク し 、 次のいずれか を ク リ ッ ク し ます。 • [Rename] : プ ロ ーブ名を付け直す こ と がで き ます。 • [Name] : デバ ッ グ プ ロ ーブの名前を ロ ン グ、 シ ョ ー ト 、 カ ス タ ム な ど の形式にで き ます。 Vivado IDE のビ ューで は、 デバ ッ グ プ ロ ーブへの参照が、 こ こ でユーザーの選択 し た名前で表示 さ れます。 ° [Long] : プ ロ ーブ さ れ る 信号ま たはバ ス の階層すべてが表示 さ れます。 ° [Short] : プ ロ ーブ さ れ る 信号名ま たはバ ス名が表示 さ れます。 ° [Custom] : 信号ま たはバス に付け ら れた カ ス タ ム名が表示 さ れます。 ILA デ フ ォル ト ダ ッ シ ュ ボー ド の使用 ILA ダ ッ シ ュ ボー ド (81 ページの図 9-14) には、 ILA コ アに関す る すべての ス テー タ スお よ び制御情報が表示 さ れ ま す。 ハー ド ウ ェ ア デバ イ ス の更新に よ り ILA コ アが最初に検出 さ れ る と 、 ILA デフ ォ ル ト ダ ッ シ ュ ボー ド が自動的 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 80 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ に開 き ます。 ダ ッ シ ュ ボー ド を手動で開いた り 、 開き 直 し た り する 必要があ る 場合は、 [Hardware] ビ ュ ーで ILA コ ア オブジ ェ ク ト を右 ク リ ッ ク し 、 [Default Dashboard] を ク リ ッ ク し ます。 X-Ref Target - Figure 9-14 図 9‐14 : ILA ダ ッ シ ュ ボー ド ILA ダ ッ シ ュ ボー ド か ら 、 ILA デバ ッ グ コ ア を次の よ う に操作で き ます。 • ト リ ガー モー ド ([Trigger mode]) を設定 し て、 ト リ ガーする ハー ド ウ ェ アの イ ベン ト を指定 し ます。 ° [BASIC_ONLY] : デバ ッ グ プ ロ ーブ比較結果の基本的な AND/OR 機能が満た さ れた と き に ILA コ ア を ト リ ガー し ます。 ° [ADVANCED_ONLY] : ILA コ ア を ユーザー定義の ス テー ト マシ ン で指定 し た よ う に ト リ ガー し ます。 ° [TRIG_IN_ONLY] : ILA コ アの TRIG_IN ピ ンが Low か ら High にな る と ILA コ ア を ト リ ガー し ます。 ° [BASIC_OR_TRIG_IN] : ILA コ アの TRIG_IN ピ ン と BASIC_ONLY ト リ ガー モー ド の論理 OR の結果に よ り ILA コ ア を ト リ ガー し ます。 ° [ADVANCED_OR_TRIG_IN] : ILA コ アの TRIG_IN ピ ン と ADVANCED_ONLY ト リ ガー モー ド の論理 OR の 結果に よ り ILA コ ア を ト リ ガー し ます。 • ト リ ガー出力モー ド ([TRIG_OUT mode]) を設定 し ます。 • キ ャ プチ ャ モー ド ([Capture mode]) を [ALWAYS] ま たは [BASIC] に設定 し て、 キ ャ プチ ャ さ れ る デー タ を フ ィ ル タ ー処理 し ます。 • ILA キ ャ プチ ャ ウ ィ ン ド ウ ([Number of windows]) の数を設定 し ます。 • ILA キ ャ プチ ャ ウ ィ ン ド ウ のデー タ の深 さ ([Window data depth]) を設定 し ます。 • ト リ ガー位置 ([Trigger position in window]) を キ ャ プチ ャ ウ ィ ン ド ウ 内のサンプルに設定 し ます。 • ILA デバ ッ グ コ アの ト リ ガーお よ びキ ャ プチ ャ ス テー タ ス を監視 し ます。 BASIC ト リ ガー モー ド の使用 BASIC ト リ ガー モー ド は、 ト リ ガー条件 (デバ ッ グ プ ロ ーブ コ ンパレー タ のグ ロ ーバル ブール代数式) を記述す る ために使用 さ れます。 ト リ ガー モー ド を BASIC_ONLY ま たは BASIC_OR_TRIG_IN に設定す る と イ ネーブルにな り ます。 こ の ト リ ガー条件 と デバ ッ グ プ ロ ーブ比較値を作成す る には、 [Basic Trigger Setup] ビ ュ ー (図 9-15) を使用 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 81 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ X-Ref Target - Figure 9-15 図 9‐15 : ILA の [Basic Trigger Setup] ビ ュ ー set_property Tcl コ マ ン ド を 使用 し て も 、 ILA コ ア の ト リ ガ ー モ ー ド を 変更 で き ま す。 た と え ば、 ILA コ ア hw_ila_1 の ト リ ガー モー ド を BASIC_ONLY に変更す る には、 次の コ マ ン ド を使用 し ます。 set_property CONTROL.TRIGGER_MODE BASIC_ONLY [get_hw_ilas hw_ila_1] [Basic Trigger Setup] ビ ュ ーへのプ ローブの追加 BASIC ト リ ガー モー ド を使用す る には、 まず ト リ ガー条件に ど の ILA デバ ッ グ プ ロ ーブ を含め る か を決定 し ます。 こ れには、[Debug Probes] ビ ュ ーで ILA デバ ッ グ プ ロ ーブ を選択 し 、右 ク リ ッ ク し て [Add Probes to Basic Trigger Setup] を ク リ ッ ク す る か、 プ ロ ーブ を [Basic Trigger Setup] ビ ュ ーに ド ラ ッ グ ア ン ド ド ロ ッ プ し ます。 注記 : 最初のプ ロ ーブは [Basic Trigger Setup] ビ ュ ーの ど こ にで も ド ラ ッ グ ア ン ド ド ロ ッ プで き ますが、2 つ目か ら は 最初のプ ロ ーブの上に ド ロ ッ プす る 必要があ り ます。 新 し いプ ロ ーブは、 常に前に追加 さ れたプ ロ ーブの上に追加 さ れます。 同 じ よ う に ド ラ ッ グ ア ン ド ド ロ ッ プ し て、 表内のプ ロ ーブ を並び替え る こ と も で き ます。 重要 : ト リ ガー条件には、 [Basic Trigger Setup] ビ ュ ー内のプ ロ ーブのみを含め る こ と がで き ます。 こ のビ ュ ーに含ま れないプ ロ ーブは ド ン ト ケ ア値に設定 さ れ、 ト リ ガー条件には使用 さ れません。 [Basic Trigger Setup] ビ ュ ーか ら プ ロ ーブを削除する には、 そのプ ロ ーブ を選択 し て Delete キーを押すか、 右 ク リ ッ ク し て [Remove] を ク リ ッ ク し ます。 BASIC ト リ ガー比較値の設定 ILA コ ア のプ ロ ーブ入力におけ る 等価条件 ま たは不等価条件の検出には、 ILA デバ ッ グ プ ロ ーブ ト リ ガー コ ン パ レー タ が使用 さ れます。 ト リ ガー条件は、各 ILA プ ロ ーブ ト リ ガー コ ンパレー タ の結果をブール AND、OR、NAND、 ま たは NOR で計算 し た結果にな り ます。 ILA プ ロ ーブの比較値を指定す る には、 [Basic Trigger Setup] ビ ュ ーの ILA デバ ッ グ プ ロ ーブの [Compare Value] セルを ク リ ッ ク し 、 [Compare Value] ダ イ ア ロ グ ボ ッ ク ス を開き ます (図 9-16)。 X-Ref Target - Figure 9-16 図 9‐16 : ILA プ ローブの [Compare Value] ダ イ ア ログ ボ ッ ク ス ヒ ン ト : 基数を変更す る 前に、 新 し い基数に適用 さ れ る 文字列に値を設定 し てい る こ と を確認 し て く だ さ い。 ILA プ ローブの比較値の設定 [Compare Value] ダ イ ア ロ グ ボ ッ ク ス では、 次の 3 つの フ ィ ール ド を設定 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 82 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ 1. 2. 3. [Operator] : 比較演算子を指定 し ます。 有効な値は、 次の と お り です。 ° == (等価) ° != (不等価) ° < (小な り ) ° <= (以下) ° > (大な り ) ° >= (以上) [Radix] : 値の基数を指定 し ます。 有効な値は、 次の と お り です。 ° [B] (2 進数) ° [H] (16 進数) ° [O] (8 進数) ° [U] (符号な し 10 進数) ° [S] (符号付 き 10 進数) [Value] : ILA デバ ッ グ コ アのプ ロ ーブ入力に接続 さ れてい る デザ イ ンのネ ッ ト 上の実際の値 と 、 [Operator] で指 定 し た演算子を使用 し て比較す る 値を指定 し ます。 [Radix] の設定に よ っ て、 次の値を指定で き ます。 ° ° ° ° [Binary] (2 進数) - 0 : 論理 0 - 1 : 論理 1 - X : ド ン ト ケア - R : 立ち上が り 遷移 - F : 立ち下が り 遷移 - B : 立ち上が り 遷移ま たは立ち下が り 遷移のいずれか - N : 遷移な し (現在のサンプル値は前の値 と 同 じ ) [Hexadecimal] (16 進数) - X : 値の文字に対応す る すべてのビ ッ ト が ド ン ト ケ ア値 - 0 ~ 9 : 0 ~ 9 の値 - A ~ F : 10 ~ 15 の値 [Octal] (8 進数) - X : 値の文字に対応す る すべてのビ ッ ト が ド ン ト ケ ア値 - 0 ~ 7 : 0 ~ 7 の値 [Unsigned Decimal] (符号な し 10 進数) - ° 正の整数値 [Signed Decimal] (符号付 き 10 進数) - 整数値 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 83 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ BASIC ト リ ガー条件の設定 [Basic Trigger Setup] ビ ュ ーの左側の ツールバー ボ タ ンには、 論理ゲー ト のア イ コ ンが表示 さ れます (図 9-17)。 こ れを 使用 し て ト リ ガー条件を設定で き ます。 set_property Tcl コ マ ン ド を使用 し て も 、 ILA コ アの ト リ ガー条件を変更 で き ます。 set_property CONTROL.TRIGGER_CONDITION AND [get_hw_ilas hw_ila_1] 表 9-1 に、 こ れ ら 4 つの値の意味を示 し ます。 X-Ref Target - Figure 9-17 図 9‐17 : BASIC ト リ ガー条件の設定 表 9‐1 : BASIC ト リ ガー条件の設定の説明 GUI の ト リ ガー条件設定 Global AND Global OR Global NAND Global NOR CONTROL.TRIGGER_CONDITION プ ロパテ ィ 値 ト リ ガー条件出力 AND すべて のプ ロ ーブ コ ン パ レ ー タ が true の 場合に ト リ ガー条件が true と な り 、 それ以 外の場合は false と な り ます。 OR 少な く と も 1 つのプ ロ ーブ コ ンパレー タ が true の場合に ト リ ガー条件が true と な り 、 それ以外の場合は false と な り ます。 NAND 少な く と も 1 つのプ ロ ーブ コ ンパレー タ が false の場合に ト リ ガー条件が true と な り 、 それ以外の場合は false と な り ます。 NOR すべてのプ ロ ーブ コ ンパ レ ー タ が false の 場合に ト リ ガー条件が ture と な り 、 それ以 外の場合は false と な り ます。 重要 : ILA コ アに 2 つ以上のデバ ッ グ プ ロ ーブが含ま れ、 それ ら が ILA コ アの物理的なプ ロ ーブ ポー ト 1 つを共有 す る ために連結 さ れてい る 場合、 サポー ト さ れ る ト リ ガー条件は Global AND (AND) お よ び Global NAND (NAND) の みにな り ます。 Global OR (OR) お よ び Global NOR (NOR) 関数は、 プ ロ ーブ ポー ト コ ンパレー タ ロ ジ ッ ク の制限のた め、 サポー ト さ れません。 Global OR (OR) お よ び Global NOR (NOR) ト リ ガー条件設定を使用す る には、 各ネ ッ ト ま たはバ ス ネ ッ ト を ILA コ アの個別のプ ロ ーブ ポー ト に割 り 当て る よ う に し て く だ さ い。 ADVANCED ト リ ガー モー ド の使用 ILA コ アは、コ ア生成時ま たは挿入時に次のア ド バン ス ト リ ガー機能を含め る よ う に コ ン フ ィ ギ ュ レーシ ョ ン で き ま す。 • 最大 16 ス テー ト ま での ス テー ト マシ ン を ト リ ガー • 各ス テー ト には 1 ~ 3 方向条件分岐を含め る こ と が可能 • ト リ ガー ス テー ト マシ ン プ ロ グ ラ ムに最大 4 つのカ ウ ン タ ーを使用 し 、 複数の イ ベン ト を追跡 • ト リ ガー ス テー ト マシ ン プ ロ グ ラ ムに最大 4 つのカ ウ ン タ ーを使用 し 、 特定の分岐がいつ処理 さ れ る か を示す Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 84 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ • ス テー ト マシ ンで goto、 trigger、 さ ま ざ ま な カ ウ ン タ ーお よ びフ ラ グ関連ア ク シ ョ ン を実行可能 ハー ド ウ ェ ア デバ イ ス で実行 さ れ る デザ イ ンに含ま れ る ILA コ アにア ド バン ス ト リ ガー機能があ る 場合、 ILA ダ ッ シ ュ ボー ド の [ILA Properties] ビ ュ ーの [Trigger mode] を [ADVANCED_ONLY] ま たは [ADVANCED_OR_TRIG_IN] に 設定す る と 、 ADVANCED ト リ ガー モー ド を イ ネーブルにで き ます。 ト リ ガー ス テー ト マ シ ン プ ログ ラ ム フ ァ イルの指定 [Trigger mode] を [ADVANCED_ONLY] ま たは [ADVANCED_OR_TRIG_IN] に設定す る と 、 ILA ダ ッ シ ュ ボー ド で次の 2 つが変更 さ れます。 1. [Trigger State Machine] と い う 新 し い ビ ュ ーが [ILA Properties] ビ ュ ー内に表示 さ れます。 2. [Basic Trigger Setup] ビ ュ ーの代わ り に [Trigger State Machine] コ ー ド エデ ィ タ ー ビ ュ ーが表示 さ れます。 ILA ト リ ガー ス テー ト マシ ン プ ロ グ ラ ム を初めて指定する 場合、 [Trigger State Machine] コ ー ド エデ ィ タ ー ビ ュ ーは 図 9-18 の よ う に表示 さ れます。 X-Ref Target - Figure 9-18 図 9‐18 : ト リ ガー ス テー ト マシ ン プ ログ ラ ム フ ァ イルを作成または開 く 新 し い ト リ ガー ス テー ト マシ ン を作成す る には、 [Create new trigger state machine] リ ン ク を ク リ ッ ク し ます。 既存の ト リ ガー ス テー ト マシ ン を開 く には、[Open existing trigger state machine] リ ン ク を ク リ ッ ク し て ト リ ガー ス テー ト マ シ ン プ ロ グ ラ ム フ ァ イ ル (.tsm) を開 き ま す。 既存の ト リ ガー ス テー ト マシ ン プ ロ グ ラ ム フ ァ イ ルは、 ILA ダ ッ シ ュ ボー ド の [ILA Properties] ビ ュ ーの [Trigger state machine] テ キ ス ト フ ィ ール ド ま たは参照ボ タ ン を使用 し て も 開 く こ と がで き ます。 ト リ ガー ス テー ト マ シ ン プ ログ ラ ムの編集 ト リ ガー ス テー ト マシ ン プ ロ グ ラ ム フ ァ イ ルを作成 し た ら 、 [Trigger State Machine] コ ー ド エデ ィ タ ー ビ ュ ーに単 純な ト リ ガー ス テー ト マシ ンがデフ ォ ル ト で表示 さ れます (図 9-19)。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 85 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ X-Ref Target - Figure 9-19 図 9‐19 : 単純なデ フ ォル ト の ト リ ガー ス テー ト マシ ン プ ログ ラ ム 単純なデフ ォ ル ト の ト リ ガー ス テー ト マシ ン プ ロ グ ラ ムは、 デバ ッ グ プ ロ ーブ ま たは ト リ ガー設定に関係な く ILA コ アの コ ン フ ィ ギ ュ レーシ ョ ン を有効にす る ための も のです。 こ れに よ り 、 ト リ ガー ス テー ト マシ ン プ ロ グ ラ ム を 変更 し な く て も ILA コ アに対 し て [Run Trigger] を ク リ ッ ク で き ます。 ト リ ガー ス テー ト マシ ン プ ロ グ ラ ム を変更 し て、高度な ト リ ガー条件を イ ンプ リ メ ン ト する こ と も で き ます。図 9-19 に示す単純な ス テー ト マシ ン の冒頭の コ メ ン ト 部分には、 Vivado IDE の ビ ル ト イ ン言語テ ン プ レ ー ト (87 ページの 図 9-20) を使用 し て ト リ ガー ス テー ト マシ ン プ ロ グ ラ ム を構築す る 方法が説明 さ れてい ます。 例 も 含めた ILA ト リ ガー ス テー ト マシ ン言語の説明は、 付録 B 「 ト リ ガー ス テー ト マシ ンの言語記述」 を参照 し て く だ さ い。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 86 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ X-Ref Target - Figure 9-20 図 9‐20 : ト リ ガー ス テー ト マ シ ンの言語テ ン プ レー ト ト リ ガー ス テー ト マ シ ンの コ ンパイル ト リ ガー ス テー ト マシ ンは、 ILA を ト リ ガーす る たびに コ ンパ イ ル さ れ ます。 ILA を ト リ ガーま たは ト リ ガー待機 状態にせずに ト リ ガー ス テー ト マ シ ン を コ ン パ イ ルす る には、 ILA ダ ッ シ ュ ボー ド の ツ ールバーに あ る [Compile trigger state machine] ボ タ ン を ク リ ッ ク し ます (87 ページの図 9-21)。 X-Ref Target - Figure 9-21 図 9‐21 : ト リ ガー待機状態にせずに ト リ ガー ス テー ト マシ ン を コ ンパイル Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 87 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ ト リ ガー入力ポー ト および出力ポー ト のイ ネーブル ILA コ ア は、 専用 ト リ ガー入力ポー ト (TRIG_IN と TRIG_IN_ACK) お よ び専用 ト リ ガー出力ポー ト (TRIG_OUT と TRIG_OUT_ACK) を含め る よ う 、 コ アの生成時に コ ン フ ィ ギ ュ レーシ ョ ンで き ます。 ILA コ アで ト リ ガー入力ポー ト が イ ネーブルにな っ てい る 場合、 次の ト リ ガー モー ド 設定を使用 し て TRIG_IN ポー ト に イ ベン ト を ト リ ガーで き ま す。 • BASIC_OR_TRIG_IN : ILA コ アの TRIG_IN ピ ン と BASIC_ONLY ト リ ガー モー ド の論理 OR の結果に よ り ILA コ ア を ト リ ガー し ます。 • ADVANCED_OR_TRIG_IN : ILA コ アの TRIG_IN ピ ン と ADVANCED_ONLY ト リ ガー モー ド の論理 OR の結果 に よ り ILA コ ア を ト リ ガー し ます。 • TRIG_IN_ONLY : ILA コ アの TRIG_IN ピ ンが Low か ら High にな る と ILA コ ア を ト リ ガー し ます。 ILA コ アで ト リ ガー出力ポー ト が イ ネーブルにな っ てい る 場合、 次の TRIG_OUT モー ド を使用 し て TRIG_OUT ポー ト への ト リ ガー イ ベン ト の伝搬を制御で き ます。 • DISABLED : TRIG_OUT ポー ト をデ ィ ス エーブルに し ます。 • TRIGGER_ONLY : BASIC/ADVANCED ト リ ガー条件の結果を TRIG_OUT ポー ト に伝搬 し ます。 • TRIG_IN_ONLY : TRIG_IN ポー ト を TRIG_OUT ポー ト に伝搬 し ます。 • TRIGGER_OR_TRIG_IN : BASIC/ADVANCED ト リ ガー条件の論理 OR 結果 と TRIG_IN ポー ト を TRIG_OUT ポー ト に伝搬 し ます。 キ ャ プ チ ャ モー ド 設定の コ ン フ ィ ギ ュ レーシ ョ ン ILA コ アは、 コ アの ス テー タ ス が Pre-Trigger、 Waiting for Trigger、 ま たは Post-Trigger の場合にデー タ サンプルを キ ャ プチ ャ で き ます (詳細は 93 ページの 「 ト リ ガーお よ びキ ャ プチ ャ ス テー タ ス の表示」 を参照)。 各サンプルがキ ャ プ チ ャ さ れ る 前に評価 さ れ る 条件は、 [Capture mode] ド ロ ッ プダ ウ ン リ ス ト か ら 選択 し ます。 • [ALWAYS] : キ ャ プチ ャ 条件に関係な く 指定 し た ク ロ ッ ク サ イ ク ル中のデー タ サンプルを格納 し ます。 • [BASIC] : キ ャ プチ ャ 条件が真の場合にのみ指定 し た ク ロ ッ ク サ イ ク ル中のデー タ サンプルを格納 し ます。 set_property Tcl コ マ ン ド を 使用 し て も 、 ILA コ ア の キ ャ プチ ャ モー ド を 変更で き ま す。 た と え ば、 ILA コ ア hw_ila_1 のキ ャ プチ ャ モー ド を BASIC に変更す る には、 次の コ マ ン ド を使用 し ます。 set_property CONTROL.CAPTURE_MODE BASIC [get_hw_ilas hw_ila_1] BASIC キ ャ プ チ ャ モー ド の使用 BASIC キ ャ プチ ャ モー ド は、 ト リ ガー条件 (デバ ッ グ プ ロ ーブ コ ンパ レー タ のグ ロ ーバル ブール代数式) を記述す る ために使用 さ れます。 こ のキ ャ プチ ャ 条件 と デバ ッ グ プ ロ ーブ比較値を作成す る には、[Basic Capture Setup] ビ ュ ー (図 9-22) を使用 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 88 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ X-Ref Target - Figure 9-22 図 9‐22 : BASIC キ ャ プ チ ャ条件の設定 [Basic Capture Setup] ビ ュ ーの設定 [Basic Capture Setup] ビ ュ ーでデバ ッ グ プ ロ ーブ と BASIC キ ャ プチ ャ 条件を設定す る プ ロ セ ス は、[Basic Trigger Setup] ビ ュ ーのデバ ッ グ プ ロ ーブ を設定す る プ ロ セ ス と ほぼ同 じ です。 • プ ロ ーブ を [Basic Capture Setup] ビ ュ ーに追加する 方法は、 82 ページの 「[Basic Trigger Setup] ビ ュ ーへのプ ロ ー ブの追加」 を参照 し て く だ さ い。 • [Basic Capture Setup] ビ ュ ーで各プ ロ ーブの比較値を設定す る 方法は、 82 ページの 「ILA プ ロ ーブの比較値の設 定」 を参照 し て く だ さ い。 • [Basic Capture Setup] ビ ュ ーで BASIC キ ャ プチ ャ 条件を設定する 方法は、 84 ページの 「BASIC ト リ ガー条件の設 定」 を 参 照 し て く だ さ い。 主 な 違 い は、 キ ャ プ チ ャ 条件 を 制御す る ILA コ アのプ ロ パテ ィ が CONTROL.CAPTURE_CONDITION であ る 点です。 キ ャ プ チ ャ ウ ィ ン ド ウの数の設定 ILA キ ャ プチ ャ デー タ バ ッ フ ァ ーは複数のキ ャ プチ ャ ウ ィ ン ド ウ に分割で き 、 各 ウ ィ ン ド ウ の深 さ は 1 ~ (((バ ッ フ ァ ー サ イ ズ) / ( ウ ィ ン ド ウ の数)) - 1) の間の 2 のべ き 乗値です。 た と えば、 ILA デー タ バ ッ フ ァ ーのサンプル深 さ が 1024 で、 4 つのキ ャ プチ ャ ウ ィ ン ド ウ に分割す る 場合、 各ウ ィ ン ド ウ のサン プル深 さ は 256 ま でにな り ます。 各 キ ャ プチ ャ ウ ィ ン ド ウ には、 キ ャ プチ ャ ウ ィ ン ド ウ にデー タ が格納 さ れ る ト リ ガー イ ベン ト に対応す る 独自の ト リ ガー マー ク があ り ます。 ヒ ン ト : ILA デー タ キ ャ プチ ャ バ ッ フ ァ ーが完全に フルにな る 前に [Stop Trigger] を ク リ ッ ク す る と 、 それ ま でに フ ルにな っ た キ ャ プチ ャ ウ ィ ン ド ウ がア ッ プ ロ ー ド さ れて表示 さ れ ます。 た と えば、 ILA デー タ バ ッ フ ァ ーが 4 つの ウ ィ ン ド ウ に分割 さ れてお り 、 その う ち 3 つが フルにな っ てい る 場合、 [Stop Trigger] を ク リ ッ ク する と ILA コ アが停 止 し 、 フルにな っ てい る 3 つのキ ャ プチ ャ ウ ィ ン ド ウ がア ッ プ ロ ー ド さ れて表示 さ れます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 89 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ 次の表は、 [Number of Capture Windows] に 1 よ り 大 き な値を、 [Trigger Position] に 0 を設定 し た場合の Vivado ラ ン タ イ ム ソ フ ト ウ ェ アお よ びハー ド ウ ェ アの関連を示 し てい ます。 表 9‐2 : [Number of Capture Windows] > 1 および [Trigger Position] = 0 ソフ トウェア ハー ド ウ ェ ア ユーザーが ILA コ アで ト リ ガーを実行 • • • • • • Windows 0 : ILA が待機状態 Windows 0 : ILA が ト リ ガーす る Windows 0 : ILA がキ ャ プチ ャ ウ ィ ン ド ウ 0 を一杯にす る Windows 1 : ILA が再び待機状態 Windows 1 : ILA が ト リ ガーす る Windows 1 : ILA がキ ャ プチ ャ ウ ィ ン ド ウ 1 を一杯にす る … • Window n-1 : ILA が再び待機状態 • Window n-1 : ILA が ト リ ガーする • Window n-1 : ILA がキ ャ プチ ャ ウ ィ ン ド ウ n を一杯にする ILA キ ャ プチ ャ バ ッ フ ァ ー全体が フルにな る デー タ がア ッ プ ロ ー ド さ れ表示 前の ウ ィ ン ド ウ の最後でキ ャ プチ ャ さ れたサ ン プル直後に ク ロ ッ ク サ イ ク ルで ト リ ガーの準備が完了す る よ う に、 ILA コ アが再び待機状態にな り ます。 次の表は、 [Number of Capture Windows] に 1 よ り 大 き な値を、 [Trigger Position] に 0 よ り 大 き な値を設定 し た場合の Vivado ラ ン タ イ ム ソ フ ト ウ ェ アお よ びハー ド ウ ェ アの関連を示 し てい ます。 表 9‐3 : [Number of Capture Windows] > 1 および [Trigger Position] > 0 ソフ トウェア ハー ド ウ ェ ア ユーザーが ILA コ アで ト リ ガーを実行 • Windows 0 : ILA が待機状態 • Windows 0 : ILA がキ ャ プチ ャ バ ッ フ ァ ーを ト リ ガー位置ま で一杯にす る • Windows 0 : ILA が ト リ ガーす る • Windows 0 : ILA がキ ャ プチ ャ ウ ィ ン ド ウ 0 の残 り を一杯に する • Windows 1 : ILA が再び待機状態 • Windows 1 : ILA がキ ャ プチ ャ バ ッ フ ァ ーを ト リ ガー位置ま で一杯にす る • Windows 1 : ILA が ト リ ガーす る • Windows 1 : ILA がキ ャ プチ ャ バ ッ フ ァ ーを一杯にする • Windows 1 : ILA が ウ ィ ン ド ウ 1 を一杯にす る … • Window n-1 : ILA が再び待機状態 • Window n-1 : ILA がキ ャ プチ ャ バ ッ フ ァ ーを ト リ ガー位置 ま で一杯にす る • Window n-1 : ILA が ト リ ガーする • Window n-1 : ILA がキ ャ プチ ャ バ ッ フ ァ ーを一杯にす る • Window n-1 : ILA が ウ ィ ン ド ウ n を一杯にす る ILA キ ャ プチ ャ バ ッ フ ァ ー全体が フルにな る デー タ がア ッ プ ロ ー ド さ れ表示 ILA が キ ャ プチ ャ デー タ を ト リ ガー位置 ま で一杯に し た の で、2 つの ウ ィ ン ド ウ間で ト リ ガーが行われない可能性 も あ り ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 90 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ キ ャ プ チ ャ ウ ィ ン ド ウでの ト リ ガー位置の設定 [Capture Mode Settings] ビ ュ ーの [Trigger position] ま たは [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] キ ャ プ チ ャ ウ ィ ン ド ウでのデー タ 深 さ の設定 [Capture Mode Settings] ビ ュ ーの [Data Depth] ま たは [ILA Core Properties] ビ ュ ーの [Capture data depth] プ ロ パテ ィ を使 用 し て、 ILA コ アのキ ャ プチ ャ デー タ ウ ィ ン ド ウ のデー タ 深 さ を設定 し ます。 デー タ 深 さ は、 1 か ら ILA コ アの最 大デー タ 深 さ の間の 2 のべ き 乗値に設定で き ます ( コ アの生成時ま たは挿入時に設定)。 注記 : ネ ッ ト リ ス ト 挿入プ ロ ーブ フ ロ ーでデザ イ ンに追加 し た ILA コ アのキ ャ プチ ャ バ ッ フ ァ ーの最大デー タ 深 さ を設定す る 方法は、 59 ページの 「デバ ッ グ コ アのプ ロ パテ ィ の変更」 を参照 し て く だ さ い。 set_property Tcl コ マ ン ド を使用 し て も ILA コ アのデー タ 深 さ を変更で き ます。 set_property CONTROL.DATA_DEPTH 512 [get_hw_ilas hw_ila_1] ト リ ガーの実行 ILA コ アに ト リ ガーを供給す る 方法には、 次の 2 つのモー ド があ り ます。 • [Run Trigger] : ILA ダ ッ シ ュ ボー ド ま たは [Hardware] ビ ュ ーで ILA コ ア を選択 し 、 ツールバーの [Run Trigger] を ク リ ッ ク す る と 、 ILA コ アの BASIC ま たは ADVANCED ト リ ガー設定で定義 さ れた ト リ ガー イ ベン ト を検出で き る よ う にな り ます。 • [Run Trigger Immediate] : ILA ダ ッ シ ュ ボー ド ま たは [Hardware] ビ ュ ーで ILA コ ア を選択 し 、 ツールバーの [Run Trigger Immediate] を ク リ ッ ク す る と 、 ILA コ アの ト リ ガー設定に関係な く ILA コ アが即座に ト リ ガー さ れます。 こ の コ マ ン ド は、 ILA コ アのプ ロ ーブ入力のすべてのア ク テ ィ ビ テ ィ を キ ャ プチ ャ し て、 デザ イ ンの動 き を検出 す る のに便利です。 ILA コ ア を右 ク リ ッ ク し 、 [Run Trigger] ま たは [Run Trigger Immediate] を ク リ ッ ク し て も 、 同 じ 操作を実行で き ます (図 9-23)。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 91 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ X-Ref Target - Figure 9-23 図 9‐23 : ILA コ アの ト リ ガー コ マ ン ド ヒ ン ト : [Hardware] ビ ュ ーで ILA コ ア を選択 し て、 [Run Trigger]、 [Run Trigger Immediate] ま たは [Stop Trigger] ボ タ ン を使用す る と 、 複数の ILA コ アの ト リ ガーを実行ま たは停止で き ま す。 ま た、 [Hardware] ビ ュ ーで デバ イ ス を選択 し 、 ツールバーの適切なボ タ ン を ク リ ッ ク す る と 、 そのデバ イ ス のすべての ILA コ アの ト リ ガーを実行ま たは停止で き ます。 ト リ ガーの停止 ILA コ アの ト リ ガーを停止す る には、 ILA コ ア を選択 し 、 ILA ダ ッ シ ュ ボー ド ま たは [Hardware] ビ ュ ーの ツールバー の [Stop Trigger] を ク リ ッ ク し ます。 ILA コ ア を右 ク リ ッ ク し 、 [Stop Trigger] を ク リ ッ ク し て も 、 同 じ 操作を実行で き ます (図 9-23)。 自動再 ト リ ガーの使用 ILA コ アの右 ク リ ッ ク メ ニ ュ ーの [Enable Auto Re-Trigger] ま たは ILA ダ ッ シ ュ ボー ド の ツールバーの対応す る ボ タ ン を ク リ ッ ク す る と 、 ト リ ガー、 ア ッ プ ロ ー ド 、 表示処理が正 し く 完了 し た後に、 ILA コ アが自動的に ト リ ガー待機状 態にな り ます。 ILA コ アに対応す る 波形ビ ュ ーアーに表示 さ れた キ ャ プチ ャ デー タ は、 ト リ ガー イ ベン ト ご と に上 書 き さ れます。 [Auto Re-Trigger] オプシ ョ ンは、 [Run Trigger] お よ び [Run Trigger Immediate] コ マ ン ド と 共に使用で き ます。 動作中の ト リ ガーを停止す る には、 [Stop Trigger] を ク リ ッ ク し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 92 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ 次の表は [Auto Re-Trigger] オプシ ョ ン を使用 し た際の Vivado IDE ラ ン タ イ ム ソ フ ト ウ ェ アお よ びハー ド ウ ェ ア間の 関係を示 し てい ます。 表 9‐4 : [Auto Re‐Trigger] オプ シ ョ ン ソフ トウェア ハー ド ウ ェ ア ILA コ アで [Auto Re-Trigger] オプシ ョ ン をク リ ッ ク • • • • ILA が待機状態 ILA が ト リ ガーする ILA がキ ャ プチ ャ バ ッ フ ァ ーを一杯にす る ILA が フルにな る デー タ がア ッ プ ロ ー ド さ れ表示 • ILA が再び待機状態 • ILA が ト リ ガーする • ILA がキ ャ プチ ャ バ ッ フ ァ ーを一杯にす る • ILA が フルにな る ILA の 「フル」 イ ベン ト と ILA デー タ の表示間多 く の サ イ ク ルがな く な り ます。 重要 : ILA デー タ がい っぱいにな っ て、 デー タ がア ッ プ ロ ー ド さ れて GUI に表示 さ れ る ま での間には遅延が あ る の で、 ILA を ト リ ガーで き たか も し れない イ ベン ト 間のサ イ ク ルを逃 し て し ま う 可能性が高 く な り ます。 ト リ ガーおよびキ ャ プ チ ャ ス テー タ スの表示 ILA デバ ッ グ コ アの ト リ ガーお よ びキ ャ プチ ャ ス テー タ ス は、 Vivado IDE では次の 2 箇所に表示 さ れます。 • [Hardware] ビ ュ ーの ILA デバ ッ グ コ アの行の [Status] 列 • ILA ダ ッ シ ュ ボー ド の [Trigger Capture Status] ビ ュ ー [Hardware] ビ ュ ーの [Status] 列には、 各 ILA コ アの ス テー タ ス が示 さ れます (94 ページの表 9-5)。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 93 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ 表 9‐5 : ILA コ アのス テー タ ス ILA コ アの ス テー タ ス 説明 Idle ILA コ アはア イ ド ル状態であ り 、 ト リ ガーの実行を待機 し てい る 状態です。 ト リ ガー位置 が 0 の場合、 ト リ ガーが実行 さ れ る と ILA コ アが Waiting for Trigger ス テー タ ス にな り ま す。 それ以外の場合は、 Pre-Trigger ス テー タ ス にな り ます。 Pre-Trigger ILA コ アが ト リ ガー前のデー タ をデー タ キ ャ プチ ャ ウ ィ ン ド ウ に取 り 込んでい ます。 ト リ ガー前のデー タ がキ ャ プチ ャ さ れ る と 、 ILA コ アは Waiting for Trigger ス テー タ ス にな り ます。 Waiting for Trigger ILA コ アの ト リ ガー待機状態にな り 、 BASIC ま たは ADVANCED ト リ ガー設定で定義 さ れた ト リ ガー イ ベン ト が発生す る の を待機中です。 ト リ ガーが発生す る と 、 ト リ ガー位 置がキ ャ プチ ャ ウ ィ ン ド ウ の最後のデー タ サンプルに設定 さ れてい る 場合、 ILA コ アは Full ス テー タ ス にな り ます。 それ以外の場合は、 Post-Trigger ス テー タ ス にな り ます。 Post-Trigger ILA コ アが ト リ ガー後のデー タ をデー タ キ ャ プチ ャ ウ ィ ン ド ウ に取 り 込んでい ます。 ト リ ガー後のデー タ がキ ャ プチ ャ さ れ る と 、 ILA コ アは Full ス テー タ ス にな り ます。 Full ILA コ ア キ ャ プチ ャ ウ ィ ン ド ウ がフルであ り 、 ホ ス ト に表示する よ う ア ッ プ ロ ー ド 中で す。 デー タ がア ッ プ ロ ー ド さ れて表示 さ れ る と 、 ILA コ アは Idle ス テー タ ス にな り ます。 ILA ダ ッ シ ュ ボー ド の [Trigger Capture Status] ビ ュ ーの内容は、ILA コ アの [Trigger mode] の設定に よ っ て異な り ます。 部分的バ ッ フ ァ ー キ ャ プ チ ャ ILA デー タ キ ャ プチ ャ バ ッ フ ァ ーが完全に フルにな る 前に [Stop Trigger] を ク リ ッ ク す る と 、 それ ま でに フルにな っ た キ ャ プチ ャ ウ ィ ン ド ウ がア ッ プ ロ ー ド さ れて表示 さ れます。 た と えば、 ILA デー タ バ ッ フ ァ ーが 4 つの ウ ィ ン ド ウ に分割 さ れてお り 、 その う ち 3 つが フルにな っ てい る 場合、 [Stop Trigger] を ク リ ッ ク する と ILA コ アが停止 し 、 フ ルにな っ てい る 3 つのキ ャ プチ ャ ウ ィ ン ド ウ がア ッ プ ロ ー ド さ れて表示 さ れます。 ま た、 [Stop Trigger] を ク リ ッ ク す る と 、 ILA コ アが停止 し て、 一部埋ま っ た キ ャ プチ ャ ウ ィ ン ド ウ が開 き ます (そのキ ャ プチ ャ ウ ィ ン ド ウ で ト リ ガー イ ベン ト が発生 し てい る 場合)。 BASIC ト リ ガー モー ド の ト リ ガーお よびキ ャ プ チ ャ ス テー タ ス [Trigger mode] を BASIC に設定す る と 、 [Trigger Capture Status] ビ ュ ーには次の 2 つの ス テー タ ス イ ン ジ ケー タ ーが表 示 さ れます (図 9-24)。 • [Core status] : ILA コ アの ト リ ガー /キ ャ プチ ャ エン ジ ンの ス テー タ ス を示 し ます (ス テー タ ス イ ン ジ ケー タ ーの 詳細は表 9-5 を参照)。 • [Capture status] : 現在のキ ャ プチ ャ ウ ィ ン ド ウ、 その ウ ィ ン ド ウ でキ ャ プチ ャ さ れた現在のサンプル数、 ILA コ アでキ ャ プチ ャ さ れたサンプル総数を示 し ます。 こ れ ら の数値は、 ILA コ アの ス テー タ ス が Idle にな る と 0 に リ セ ッ ト さ れます。 X-Ref Target - Figure 9-24 図 9‐24 : BASIC ト リ ガー モー ド の [Trigger Capture Status] ビ ュ ー Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 94 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ ADVANCED ト リ ガー モー ド の ト リ ガーおよびキ ャ プ チ ャ ス テー タ ス [Trigger mode] を ADVANCED に設定す る と 、[Trigger Capture Status] ビ ュ ーには次の 4 つの ス テー タ ス イ ン ジ ケー タ ー が表示 さ れます (図 9-25)。 • [Core status] : ILA コ アの ト リ ガー /キ ャ プチ ャ エン ジ ンの ス テー タ ス を示 し ます (ス テー タ ス イ ン ジ ケー タ ーの 詳細は94 ページの表 9-5 を参照)。 • [Trigger State Machine Flags] : 4 つの ト リ ガー ス テー ト マシ ン フ ラ グの現在の ス テー ト を示 し ます。 • [Trigger State] : コ アの ス テー タ ス が Waiting for Trigger の場合、 ト リ ガー ス テー ト マシ ンの現在の ス テー ト を示 し ます。 • [Capture status] : 現在のキ ャ プチ ャ ウ ィ ン ド ウ、 現在のキ ャ プチ ャ ウ ィ ン ド ウ でキ ャ プチ ャ さ れた現時点でのサ ンプル数、 ILA コ アでキ ャ プチ ャ さ れたサンプルの総数を示 し ます。 こ れ ら の数値は、 ILA コ アの ス テー タ ス が Idle にな る と 0 に リ セ ッ ト さ れます。 X-Ref Target - Figure 9-25 図 9‐25 : ADVANCED ト リ ガー モー ド の [Trigger Capture Status] ビ ュ ー ILA プ ローブ情報の記述 [Debug Probes] ビ ュ ーの [ILA Cores] タ ブには、 ILA コ ア を使用 し てプ ロ ーブ さ れ る デザ イ ンのネ ッ ト に関す る 情報が 表示 さ れ ま す。 こ の ILA プ ロ ーブ情報はデザ イ ン か ら 抽出 さ れ、 通常 .ltx と い う 拡張子のデー タ フ ァ イ ルに保存 さ れます。 ILA プ ロ ーブ フ ァ イ ルは、 イ ンプ リ メ ン テーシ ョ ン プ ロ セ ス中に自動的に作成 さ れますが、 write_debug_probes Tcl コ マ ン ド を使用 し てデバ ッ グ プ ロ ーブ情報を フ ァ イ ルに書 き 出す こ と も で き ます。 1. プ ロ ジ ェ ク ト モー ド の場合は、合成済みデザ イ ン ま たはネ ッ ト リ ス ト デザ イ ン を開 き ます。非プ ロ ジ ェ ク ト モー ド の場合は、 合成済みデザ イ ン チ ェ ッ ク ポ イ ン ト を開 き ます。 2. write_debug_probes filename.ltx と い う Tcl コ マ ン ド を実行 し ます。 ILA プ ローブ情報の読み出 し ILA プ ロ ーブ フ ァ イ ルの名前が debug_nets.ltx で、 デバ イ ス に関連付け ら れてい る ビ ッ ト ス ト リ ーム プ ロ グ ラ ム フ ァ イ ル (.bit) と 同 じ デ ィ レ ク ト リ にあ る 場合、 自動的に FPGA ハー ド ウ ェ ア デバ イ ス に関連付け ら れます。 プ ロ ーブ フ ァ イ ルの場所を指定す る には、 次の手順に従い ます。 1. [Hardware] ビ ュ ーで FPGA デバ イ ス を選択 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 95 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ 2. [Hardware Device Properties] ビ ュ ーでプ ロ ーブ フ ァ イ ルのデ ィ レ ク ト リ を設定 し ます。 3. [Apply] を ク リ ッ ク し て変更を適用 し ます。 プ ロ ーブ フ ァ イ ルの場所は、 次の set_property Tcl コ マ ン ド を使用 し て も 設定で き ます。 set_property PROBES.FILE {C:/myprobes.ltx} [lindex [get_hw_devices] 0] ILA コ アからのデー タ を波形ビ ュ ーアーで表示 ILA コ アでキ ャ プチ ャ さ れたデー タ が Vivado IDE にア ッ プ ロ ー ド さ れ る と 、 波形ビ ュ ーアーに表示 さ れます。 ILA コ アでキ ャ プチ ャ さ れたデー タ の表示に波形ビ ュ ーアーを使用す る 場合の詳細は、 第 10 章 「波形 ウ ィ ン ド ウ を使用 し た ILA プ ロ ーブ デー タ の表示」 を参照 し て く だ さ い。 ILA コ アでキャ プチ ャ されたデー タの保存および復元 ILA コ アか ら 直接ア ッ プ ロ ー ド さ れた キ ャ プチ ャ デー タ を表示する だけでな く 、 フ ァ イ ルに保存 し て、 フ ァ イ ルか ら デー タ を読み込む こ と も で き ます。 ILA コ ア でキ ャ プ チ ャ さ れたデー タ の フ ァ イルへの保存 ILA コ アでキ ャ プチ ャ さ れたデー タ を ア ッ プ ロ ー ド し て フ ァ イ ルに保存す る には、 次の Tcl コ マ ン ド を使用 し ます。 write_hw_ila_data my_hw_ila_data_file.ila [upload_hw_ila_data hw_ila_1] こ の Tcl コ マ ン ド に よ り 、 ILA コ アでキ ャ プチ ャ さ れたデー タ がア ッ プ ロ ー ド さ れ、 my_hw_ila_data_file.ila と い う アーカ イ ブ フ ァ イ ルに保存 さ れます。 こ のアーカ イ ブ フ ァ イ ルには、 波形デー タ ベース フ ァ イ ル、 波形 コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ル、 波形 CSV フ ァ イ ル (カ ン マ区切 り 値)、 お よ びデバ ッ グ プ ロ ーブ フ ァ イ ルが含まれま す。 ILA コ ア でキ ャ プ チ ャ さ れたデー タ の フ ァ イルから の読み込み ILA コ アでキ ャ プチ ャ さ れたデー タ を フ ァ イ ルか ら 読み込むには、 次の Tcl コ マ ン ド を使用 し ます。 display_hw_ila_data [read_hw_ila_data my_hw_ila_data_file.ila] こ の Tcl コ マ ン ド に よ り 、保存 さ れてい る ILA コ ア キ ャ プチ ャ デー タ が読み込まれ、波形ウ ィ ン ド ウ に表示 さ れます。 注記 : ILA デー タ 波形 ウ ィ ン ド ウ の波形 コ ン フ ィ ギ ュ レーシ ョ ン設定 (仕切 り 、 マーカー、 色、 プ ロ ーブの基数な ど) も 、 ILA キ ャ プチ ャ デー タ アーカ イ ブ フ ァ イ ルに保存 さ れます。 保存 さ れてい る ILA デー タ を表示する と 、 保存 さ れてい る 波形 コ ン フ ィ ギ ュ レーシ ョ ン設定が使用 さ れます。 重要 : ILA キ ャ プチ ャ デー タ か ら 作成 し た波形を開 く のに open_wave_config コ マ ン ド を使用 し ないで く だ さ い。 こ の コ マ ン ド はシ ミ ュ レーシ ョ ンのみの コ マ ン ド であ り 、 ILA キ ャ プチ ャ デー タ 波形では正 し く 機能 し ません。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 96 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ 計測のための VIO コ アの設定 デザ イ ン に追加 し た VIO コ アは、 [Hardware] ビ ュ ーの タ ーゲ ッ ト デバ イ ス の下に表示 さ れ ます。 VIO コ アが表示 さ れていない場合は、デバ イ ス を右 ク リ ッ ク し て [Refresh Hardware] を ク リ ッ ク し ます。FPGA デバ イ ス が再度ス キ ャ ン さ れ、 [Hardware] ビ ュ ーの表示が更新 さ れます。 注記 : FPGA デバ イ ス をプ ロ グ ラ ム ま たは更新 し て も VIO コ アが表示 さ れない場合は、 デバ イ ス が正 し い BIT フ ァ イ ルでプ ロ グ ラ ム さ れてい る か、 イ ン プ リ メ ン ト 済みデザ イ ン に VIO コ アが含ま れてい る か を確認 し て く だ さ い。 ま た、 BIT に該当す る 適切な .LTX プ ロ ーブ フ ァ イ ルがデバ イ ス に関連付け ら れてい る か ど う か確認 し て く だ さ い。 VIO コ ア (図 9-26 では hw_vio_1) を選択する と 、 [VIO Core Properties] ビ ュ ーにプ ロ パテ ィ が表示 さ れます。 VIO を選 択す る と 、 その VIO コ アが [Debug Probes] ビ ュ ーお よ び Vivado IDE ワ ー ク スペース の VIO ダ ッ シ ュ ボー ド で も 選択 さ れます (図 9-27)。 X-Ref Target - Figure 9-26 図 9‐26 : [Hardware] ビ ュ ーに表示 さ れる VIO コ ア Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 97 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ X-Ref Target - Figure 9-27 図 9‐27 : さ ま ざ ま な ビ ュ ーの VIO コ ア VIO コ アが Vivado IDE と 同期 し な く な る こ と があ り ま す。 VIO ス テー タ ス イ ン ジ ケー タ ーの解釈方法については、 98 ページの 「VIO コ アの ス テー タ ス の表示」 を参照 し て く だ さ い。 VIO コ アの値を読み出 し た り 書 き 込んだ り す る には、 オブジ ェ ク ト プ ロ パテ ィ を使用 し ます。 • VIO 入力プ ロ ーブの値を読み出すには、 まず hw_vio オブジ ェ ク ト を VIO コ アの値で更新 し 、 hw_vio オブジ ェ ク ト のプ ロ パテ ィ 値を取得 し ます。 詳細は、 100 ページの 「VIO コ アの入力プ ロ ーブ」 を参照 し て く だ さ い。 • VIO 出力プ ロ ーブの値を書 き 込むには、 まず hw_probe オブジ ェ ク ト のプ ロ パテ ィ 値を設定 し 、 こ れ ら のプ ロ パ テ ィ 値 を ハー ド ウ ェ ア の VIO コ ア に確定 し て、 値 を コ ア の出力プ ロ ーブ ポ ー ト に書 き 込み ま す。 詳細は、 101 ページの 「VIO コ アの出力プ ロ ーブ」 を参照 し て く だ さ い。 VIO コ アのス テー タ スの表示 VIO コ アには、 入力プ ロ ーブが 0 個以上、 出力プ ロ ーブが 0 個以上あ り ます (少な く と も 入力プ ロ ーブ ま たは出力プ ロ ーブが 1 個以上必要)。 [Hardware] ビ ュ ーの示 さ れ る VIO コ アの ス テー タ ス は、 VIO コ アの出力プ ロ ーブの現在の 状態を示 し ます。 表 9-6 に、 VIO コ アの ス テー タ ス と 必要な操作を示 し ます。 表 9‐6 : VIO コ アのス テー タ ス と 必要なユーザー操作 VIO のス テー タ ス OK – Outputs Reset Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 説明 VIO コ ア の出力は Vivado IDE と 同期 し てお り 、出力は初期 ( リ セ ッ ト ) 状態 です。 japan.xilinx.com 必要なユーザー操作 なし 98 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ 表 9‐6 : VIO コ アのス テー タ ス と 必要なユーザー操作 VIO のス テー タ ス 説明 必要なユーザー操作 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 コ ア出 力プ ロ ーブ ポー ト の現在の値でア ッ プデー ト し ます。 [Debug Probes] ビ ュ ーでの VIO コ アの表示 VIO のダ ッ シ ュ ボー ド で + 記号を ク リ ッ ク する と 、 VIO コ アに関連付け ら れてい る デバ ッ グ プ ロ ーブ を表示、 追加、 削除す る こ と がで き ます。 VIO ダ ッ シ ュ ボー ド の使用 VIO のデフ ォ ル ト ダ ッ シ ュ ボー ド は最初は空白ですが、 図 9-28 に示す よ う に VIO プ ロ ーブ を追加 し てい き ます。 X-Ref Target - Figure 9-28 図 9‐28 : VIO のデ フ ォル ト ダ ッ シ ュ ボー ド VIO ダ ッ シ ュ ボー ド には、 VIO コ アに関す る すべての ス テー タ スお よ び制御情報が表示 さ れ ま す。 ハー ド ウ ェ ア デ バ イ ス の更新に よ り VIO コ アが最初に検出 さ れ る と 、コ アの VIO ダ ッ シ ュ ボー ド が自動的に開き ます。ダ ッ シ ュ ボー ド を手動で開いた り 、 開 き 直 し た り す る 必要があ る 場合は、 [Hardware] ま たは [Debug Probes] ビ ュ ーで VIO コ ア オブ ジ ェ ク ト を右 ク リ ッ ク し て [Open Dashboard] を ク リ ッ ク する と 表示 さ れます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 99 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ VIO コ アの入力プ ローブ VIO コ アの入力プ ロ ーブは、実際のハー ド ウ ェ アの FPGA で実行 さ れてい る デザ イ ンか ら の値を読み出すために使用 し ます。 VIO 入力プ ロ ーブは通常、 テ ス ト 中のデザ イ ン の ス テー タ ス イ ン ジ ケー タ ー と し て使用 さ れ ます。 VIO デ バ ッ グ プ ロ ーブは、VIO ダ ッ シ ュ ボー ド の [VIO Probes] ビ ュ ーに手動で追加する 必要があ り ます。こ の方法は、99 ペー ジの 「[Debug Probes] ビ ュ ーでの VIO コ アの表示」 を参照 し て く だ さ い。 VIO ダ ッ シ ュ ボー ド の [VIO Probes] ビ ュ ー では、 VIO 入力プ ロ ーブは図 9-29 の よ う に表示 さ れます。 X-Ref Target - Figure 9-29 図 9‐29 : コ アの入力プ ローブ [VIO Probes] ビ ュ ーを使用 し た VIO 入力の読み出 し VIO 入力プ ロ ーブは、 VIO ダ ッ シ ュ ボー ド の [VIO Probes] ビ ュ ーに表示 さ れます。 各入力プ ロ ーブが表で個別の行に 表示 さ れ ま す。 VIO 入力プ ロ ーブの値は、 [Value] 列に示 さ れ ます (図 9-29)。 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 入力プ ロ ーブの表示 タ イ プは、 VIO ダ ッ シ ュ ボー ド の [VIO Probes] ビ ュ ーで VIO 入力プ ロ ーブ を右 ク リ ッ ク し 、 次のいずれか を選択す る と 設定で き ます。 • [Text] : 入力を テ キ ス ト フ ィ ール ド と し て表示 し ます。 こ れが、 VIO 出力プ ロ ーブ ベ ク タ ー (幅が 2 ビ ッ ト 以上) の唯一の表示 タ イ プです。 • [LED] : 入力を LED グ ラ フ ィ ッ ク で表示 し ます。 こ の表示 タ イ プは、 VIO 入力プ ロ ーブ ス カ ラ ーお よ び VIO 入 力プ ロ ーブ ベ ク タ ーの個々のエ レ メ ン ト にのみ選択可能です。 High お よ び Low の値を、 次の 4 つの色のいずれ かに設定で き ます。 ° グ レー (オ フ) ° 赤 ° 緑 ° 青 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 100 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ VIO 入力プ ロ ーブの表示 タ イ プ を [Text] に設定する と 、 基数を変更で き ます。 こ れには、 VIO ダ ッ シ ュ ボー ド の [VIO Probes] ビ ュ ーで 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] VIO 入力ア ク テ ィ ビ テ ィ の監視 と 制御 VIO 入力プ ロ ーブか ら 値を読み出すだけで な く 、 VIO 入力プ ロ ーブの ア ク テ ィ ビ テ ィ を監視す る こ と も で き ま す。 Vivado IDE の周期的な ア ッ プデー ト の間に VIO 入力の値が変化する と 、 それが示 さ れます。 VIO 入力プ ロ ーブのア ク テ ィ ビ テ ィ は、 VIO ダ ッ シ ュ ボー ド の [VIO Probes] ビ ュ ーの [Activity] 列に示 さ れます。 • 上向 き 矢印 : ア ク テ ィ ビ テ ィ 保持期間内に、 入力プ ロ ーブの値が 0 か ら 1 に遷移 し た こ と を示 し ます。 • 下向 き 矢印 : ア ク テ ィ ビ テ ィ 保持期間内に、 入力プ ロ ーブの値が 1 か ら 0 に遷移 し た こ と を示 し ます。 • 上下矢印 : ア ク テ ィ ビ テ ィ 保持期間内に、 入力プ ロ ーブの値が 1 か ら 0 に、 お よ び 0 か ら 1 に少な く と も 1 回以 上遷移 し た こ と を示 し ます。 入力ア ク テ ィ ビ テ ィ ス テー タ ス の表示を保持する 期間を変更する には、VIO ダ ッ シ ュ ボー ド の [VIO Probes] ビ ュ ーで 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 コ アの出力プ ローブ VIO コ アの出力プ ロ ーブは、実際のハー ド ウ ェ アの FPGA デバ イ ス で実行 さ れてい る デザ イ ンに値を書 き 込むために 使用 し ま す。 VIO 出力プ ロ ーブは通常、 テ ス ト 中のデザ イ ン の低バン ド 幅の制御信号 と し て使用 さ れ ま す。 VIO デ バ ッ グ プ ロ ーブは、VIO ダ ッ シ ュ ボー ド の [VIO Probes] ビ ュ ーに手動で追加する 必要があ り ます。こ の方法は、99 ペー Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 101 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ ジの 「[Debug Probes] ビ ュ ーでの VIO コ アの表示」 を参照 し て く だ さ い。 VIO ダ ッ シ ュ ボー ド の [VIO Probes] ビ ュ ー では、 VIO 出力プ ロ ーブは図 9-30 の よ う に表示 さ れます。 X-Ref Target - Figure 9-30 図 9‐30 : VIO ダ ッ シ ュ ボー ド の [VIO Probes] ビ ュ ーの VIO 出力 [VIO Probes] ビ ュ ーを使用 し た VIO 出力の書き込み VIO 出力プ ロ ーブは、 VIO ダ ッ シ ュ ボー ド の [VIO Probes] ビ ュ ーで設定で き ます。 各出力プ ロ ーブが表で個別の行に 示 さ れ ます。 VIO 出力プ ロ ーブの値は、 [Value] 列に示 さ れます (図 9-30)。 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 出力プ ロ ーブの表示 タ イ プは、 VIO ダ ッ シ ュ ボー ド の [VIO Probes] ビ ュ ーで VIO 出力プ ロ ーブ を右 ク リ ッ ク し 、 次のいずれか を ク リ ッ ク す る と 設定で き ます。 • [Text] : 出力を テ キ ス ト フ ィ ール ド と し て表示 し ます。 こ れが、 VIO 出力プ ロ ーブ ベ ク タ ー (幅が 2 ビ ッ ト 以上) の唯一の表示 タ イ プです。 • [Toggle Button] : 出力を ト グル ボ タ ン グ ラ フ ィ ッ ク で表示 し ます。 こ の表示 タ イ プは、 VIO 出力プ ロ ーブ ス カ ラ ーお よ び VIO 出力プ ロ ーブ ベ ク タ ーの個々のエ レ メ ン ト にのみ選択可能です。 VIO 出力プ ロ ーブの表示 タ イ プ を [Text] に設定する と 、基数を変更で き ます。 こ れには、[Debug Probes] ビ ュ ーの [VIO Cores] タ ブで 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] Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 102 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ 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 に同期を参照 し て く だ さ い。 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}] JTAG‐to‐AXI Master デバ ッ グ コ ア を使用 し たハー ド ウ ェ ア シス テム通信 JTAG-to-AXI Master デバ ッ グ コ アはカ ス タ マ イ ズ可能な コ ア で、 AXI ト ラ ン ザ ク シ ョ ン を生成 し 、 ラ ン タ イ ム時に AXI 信号を FPGA 内部に駆動で き ま す。 こ の コ アは、 すべての メ モ リ マ ッ プ さ れた AXI お よ び AXI-Lite イ ン タ ー フ ェ イ ス をサポー ト し 、 32 ま たは 64 ビ ッ ト のデー タ 幅の イ ン タ ーフ ェ イ ス をサポー ト で き ます。 デザ イ ンに追加 し た JTAG-to-AXI Master (JTAG-AXI) コ アは、 [Hardware] ビ ュ ーの タ ーゲ ッ ト デバ イ ス の下に表示 さ れ ま す。 JTAG-AXI コ アが表示 さ れていない場合は、 デバ イ ス を右 ク リ ッ ク し て [Refresh Hardware] を ク リ ッ ク し ま す。 FPGA デバ イ ス が再度ス キ ャ ン さ れ、 [Hardware] ビ ュ ーの表示が更新 さ れます。 注記 : FPGA デバ イ ス をプ ロ グ ラ ム ま たは更新 し て も ILA コ アが表示 さ れない場合は、 デバ イ ス が正 し い BIT フ ァ イ ルでプ ロ グ ラ ム さ れてい る か、 イ ンプ リ メ ン ト 済みデザ イ ンに ILA コ アが含まれてい る か を確認 し て く だ さ い。 JTAG-AXI コ ア (図 9-31 の hw_axi_1) を ク リ ッ ク す る と 、 [AXI Core Properties] ビ ュ ーにプ ロ パテ ィ が表示 さ れます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 103 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ X-Ref Target - Figure 9-31 図 9‐31 : [Hardware] ビ ュ ーに表示 さ れる JTAG‐to‐AXI Master コ ア ハー ド ウ ェ アの JTAG‐to‐AXI Master デバ ッ グ コ アへのア ク セス JTAG-to-AXI Master デバ ッ グ コ アは、 Tcl コ マ ン ド を使用 し てのみア ク セ ス で き ます。 AXI 読み出 し お よ び書き 込み ト ラ ンザ ク シ ョ ンの作成 と 実行には、 それぞれ create_hw_axi_txn お よ び run_hw_axi コ マ ン ド を使用 し ます。 JTAG‐to‐AXI Master デバ ッ グ コ アの リ セ ッ ト ト ラ ンザ ク シ ョ ン を作成 し て実行す る 前に、 次の Tcl コ マ ン ド を使用 し て JTAG-to-AXI Master コ ア を リ セ ッ ト し てお く 必要があ り ます。 reset_hw_axi [get_hw_axis hw_axi_1] 読み出 し ト ラ ンザ ク シ ョ ンの作成 と 実行 AXI ト ラ ンザ ク シ ョ ンの作成に使用す る Tcl コ マ ン ド は、 create_hw_axi_txn です。 こ の コ マ ン ド の使用方法は、 Vivado IDE の Tcl コ ン ソ ールに 「help create_hw_axi_txn」 と 入力する と 表示 さ れます。 次に、 ア ド レ ス 0 か ら の 4 ワー ド の AXI 読み出 し バース ト ト ラ ンザ ク シ ョ ン を作成する 例を示 し ます。 create_hw_axi_txn read_txn [get_hw_axis hw_axi_1] -type READ -address 00000000 -len 4 説明 : • read_txn : ト ラ ンザ ク シ ョ ンのユーザー定義名 • [get_hw_axis hw_axi_1] : hw_axi_1 オブジ ェ ク ト を返す • -address 00000000 : 開始ア ド レ ス • -len 4 : AXI バース ト 長を 4 ワ ー ド に設定 こ の後、 run_hw_axi コ マ ン ド を使用 し て作成 し た ト ラ ンザ ク シ ョ ン を実行 し ます。 次にその例を示 し ます。 run_hw_axi [get_hw_axi_txns read_txn] 最後に、 読み出 さ れたデー タ を ト ラ ン ザ ク シ ョ ン を実行 し た結果 と し て取得 し ま す。 デー タ を画面に表示す る には report_hw_axi_txn ま たは report_property コ マ ン ド のいずれか を使用で き ます。 ま た、 get_property を使用 し て、 その戻 り 値をほかの コ マ ン ド で使用で き ます。 report_hw_axi_txn [get_hw_axi_txns read_txn] 0 8 00000000 00000000 00000000 00000000 report_property [get_hw_axi_txns read_txn] Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 104 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ Property CLASS CMD.ADDR CMD.BURST CMD.CACHE CMD.ID CMD.LEN CMD.SIZE DATA HW_AXI NAME TYPE Type string string enum int int int enum string string string enum Read-only true false false false false false false false true true false Visible true true true true true true true true true true true Value hw_axi_txn 00000000 INCR 3 0 4 32 00000000000000000000000000000000 hw_axi_1 read_txn READ 書き込み ト ラ ンザ ク シ ョ ンの作成 と 実行 次に、 ア ド レ ス 0 か ら の 4 ワー ド の AXI 書 き 込みバース ト ト ラ ンザ ク シ ョ ン を作成する 例を示 し ます。 create_hw_axi_txn write_txn [get_hw_axis hw_axi_1] -type WRITE -address 00000000 \ -len 4 -data {11111111_22222222_33333333_44444444} 説明 : • write_txn : ト ラ ンザ ク シ ョ ンのユーザー定義名 • [get_hw_axis hw_axi_1] : hw_axi_1 オブジ ェ ク ト を返す • -address 00000000 : 開始ア ド レ ス • -len 4 : AXI バース ト 長を 4 ワ ー ド に設定 • -data {11111111_22222222_33333333_44444444} : LSB (例 : address 0) か ら MSB (例 : address 3) に向か っ て指定 し ます。 こ の後、 run_hw_axi コ マ ン ド を使用 し て作成 し た ト ラ ンザ ク シ ョ ン を実行 し ます。 次にその例を示 し ます。 run_hw_axi [get_hw_axi_txns write_txn] ラ ボ環境での Vivado ロ ジ ッ ク解析の使用 Vivado ロ ジ ッ ク 解析機能は Vivado IDE お よ び Vivado Lab Edition の一部なので、ラ ボ環境で Vivado ロ ジ ッ ク 解析機能 を使用 し て タ ーゲ ッ ト ボー ド 上で実行 さ れてい る デザ イ ン をデバ ッ グする には、次のいずれか を実行す る 必要があ り ます。 • ラ ボ コ ン ピ ュ ー タ ーに Vivado Lab Edition を イ ン ス ト ール し て実行 し ます。詳細は、こ のユーザー ガ イ ド の第 2 章 「」 を参照 し て く だ さ い。 • ラ ボ コ ン ピ ュ ー タ ーに Vivado IDE を イ ン ス ト ール し て実行 し ます。 • リ モー ト の ラ ボ コ ン ピ ュ ー タ ーに最新版の Vivado Design Suite ま たは Vivado ハー ド ウ ェ ア サーバー (ス タ ン ド ア ロ ン) を イ ン ス ト ール し 、 ロ ーカル コ ン ピ ュ ー タ ーの Vivado ロ ジ ッ ク 解析機能を使用 し て Vivado ハー ド ウ ェ ア サーバー (hw_server) の リ モー ト イ ン ス タ ン ス に接続 し ます。 ラ ボ コ ン ピ ュ ー タ ーで動作中の hw_server サーバーへの接続 ラ ボ コ ン ピ ュ ー タ ーへのネ ッ ト ワ ー ク 接続が あ る 場合、 リ モー ト ラ ボ コ ン ピ ュ ー タ ー上で動作中のハー ド ウ ェ ア サーバーに接続 し て タ ーゲ ッ ト ボー ド に接続で き ます。 Vivado ロ ジ ッ ク 解析機能を使用 し て ラ ボ コ ン ピ ュ ー タ ーで Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 105 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ 動作中の Vivado ハー ド ウ ェ ア サーバー (Windows プ ラ ッ ト フ ォームでは hw_server.bat、 Linux プ ラ ッ ト フ ォーム では hw_server) に接続す る には、 次の手順に従い ます。 1. ラ ボ コ ン ピ ュ ー タ ーに最新版の Vivado Design Suite ま たは Vivado ハー ド ウ ェ ア サーバー (ス タ ン ド ア ロ ン) を イ ン ス ト ール し ます。 重要 : リ モー ト ハー ド ウ ェ ア サーバー機能のみを使用す る 場合は、ラ ボ コ ン ピ ュ ー タ ーに Vivado Design Suite の フル バージ ョ ン ま たは Vivado Lab Edition を イ ン ス ト ールす る 必要はあ り ません。 ただ し 、 ラ ボ コ ン ピ ュ ー タ ーで Vivado ロ ジ ッ ク 解析や Vivado シ リ アル I/O 解析な ど の Vivado ハー ド ウ ェ ア マネージ ャ ーの機能を使用す る 場合は、 ラ ボ コ ン ピ ュ ー タ ーに Vivado Lab Edition を イ ン ス ト ールす る 必要があ り ます。 ま た、 ハー ド ウ ェ ア サーバーま たは Vivado Design Suite ま たは Vivado Lab Edition のハー ド ウ ェ ア マネージ ャ ー機能を実行す る のに ソ フ ト ウ ェ ア ラ イ セ ン ス は 必要あ り ません。 2. リ モー ト ラ ボ コ ン ピ ュ ー タ ーで hw_server アプ リ ケーシ ョ ン を起動 し ます。 ラ ボ コ ン ピ ュ ー タ ーが 64 ビ ッ ト Windows コ ン ピ ュ ー タ ーで、 Vivado ハー ド ウ ェ ア サーバー (ス タ ン ド ア ロ ン) がデフ ォ ル ト の場所に イ ン ス ト ー ル さ れてい る 場合、 次の コ マ ン ド を使用 し ます。 C:\Xilinx\VivadoHWSRV\vivado_release.version\bin\hw_server.bat 3. ラ ボ コ ン ピ ュ ー タ ー以外の コ ン ピ ュ ー タ ーで Vivado IDE を GUI モー ド で起動 し ます。 4. 「ハー ド ウ ェ ア タ ーゲ ッ ト に接続 し て FPGA デバ イ ス を プ ロ グ ラ ム」 の手順に従っ て、 ラ ボ コ ン ピ ュ ー タ ーに接 続 さ れてい る タ ーゲ ッ ト ボー ド への接続を開 き ます。 ただ し こ こ では、 localhost 上の Vivado CSE サーバーに接 続す る のではな く 、 ラ ボ コ ン ピ ュ ー タ ーのホ ス ト 名を使用 し ます。 5. 「計測のための ILA コ アの設定」 以降の手順に従っ て、 ハー ド ウ ェ ア上でデザ イ ン をデバ ッ グ し ます。 ハー ド ウ ェ ア マネージ ャ ーの Tcl オブ ジ ェ ク ト およ びコマン ド テ ス ト 中のハー ド ウ ェ アにア ク セ スす る には、 Tcl コ マ ン ド を使用で き ます。 ハー ド ウ ェ アには、 表 9-7 に示す階層 フ ァ ース ト ク ラ ス Tcl オブジ ェ ク ト があ り ます。 表 9‐7 : ハー ド ウ ェ ア マネージ ャ ーの Tcl オブ ジ ェ ク ト Tcl オブ ジ ェ ク ト 説明 hw_server ハー ド ウ ェ ア サーバーを参照する オブジ ェ ク ト 。 各 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 オブジ ェ ク ト に関連付け る こ と がで き る hw_ila_data オブジ ェ ク ト は 1 つのみです。 ま た、 各 hw_ila オブ ジ ェ ク ト には 1 つま たは複数の hw_probe オブジ ェ ク ト を関連付 け る こ と がで き ます。 hw_ila_data ILA デバ ッ グ コ ア か ら ア ッ プ ロ ー ド さ れたデー タ を参照す る オ ブジ ェ ク ト 。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 106 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ 表 9‐7 : ハー ド ウ ェ ア マネージ ャ ーの Tcl オブ ジ ェ ク ト (続き) Tcl オブ ジ ェ ク ト 説明 hw_probe ILA デバ ッ グ コ アのプ ロ ーブ入力を参照する オブジ ェ ク ト 。 hw_vio ザ イ リ ン ク ス FPGA デバ イ ス に含ま れ る VIO コ ア を参照す る オ ブジ ェ ク ト 。 ハー ド ウ ェ ア マネージ ャ ー コ マ ン ド の詳細は、 [Tcl Console] ビ ュ ーに 「help -category hardware」 と 入力 し て く だ さ い。 hw_server の Tcl コ マ ン ド 表 9-8 に、 ハー ド ウ ェ ア サーバーにア ク セ スする ために使用する Tcl コ マ ン ド を示 し ます。 表 9‐8 : hw_server の Tcl コ マ ン ド Tcl コ マ ン ド 説明 connect_hw_server ハー ド ウ ェ ア サーバーへの接続を開き ます。 current_hw_server 現在のハー ド ウ ェ ア サーバーを取得ま たは設定 し ます。 disconnect_hw_server ハー ド ウ ェ ア サーバーへの接続を閉 じ ます。 get_hw_servers ハー ド ウ ェ ア サーバーのハー ド ウ ェ ア サーバー名の リ ス ト を取 得 し ます。 refresh_hw_server ハー ド ウ ェ ア サーバーへの接続を更新 し ます。 hw_target の Tcl コ マ ン ド 表 9-9 に、 ハー ド ウ ェ ア タ ーゲ ッ ト にア ク セ スする ために使用する Tcl コ マ ン ド を示 し ます。 表 9‐9 : hw_target の Tcl コ マ ン ド Tcl コ マ ン ド 説明 close_hw_target ハー ド ウ ェ ア タ ーゲ ッ ト を閉 じ ます。 current_hw_target 現在のハー ド ウ ェ ア タ ーゲ ッ ト を取得ま たは設定 し ます。 get_hw_targets ハー ド ウ ェ ア サーバーのハー ド ウ ェ ア タ ーゲ ッ ト 名の リ ス ト を 取得 し ます。 open_hw_target ハー ド ウ ェ ア サーバー上のハー ド ウ ェ ア タ ーゲ ッ ト への接続を 開 き ます。 refresh_hw_target ハー ド ウ ェ ア タ ーゲ ッ ト への接続を更新 し ます。 hw_device の Tcl コ マ ン ド 表 9-10 に、 hw_device にア ク セ スす る ために使用す る Tcl コ マ ン ド を示 し ます。 表 9‐10 : hw_device の Tcl コ マ ン ド Tcl コ マ ン ド 説明 current_hw_device 現在のハー ド ウ ェ ア デバ イ ス を取得ま たは設定 し ます。 get_hw_devices タ ーゲ ッ ト のハー ド ウ ェ ア デバ イ ス の リ ス ト を取得 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 107 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ 表 9‐10 : hw_device の Tcl コ マ ン ド Tcl コ マ ン ド 説明 program_hw_device ザ イ リ ン ク ス FPGA デバ イ ス をプ ロ グ ラ ム し ます。 refresh_hw_device ハー ド ウ ェ ア デバ イ ス を更新 し ます。 hw_ila の Tcl コ マ ン ド 表 9-11 に、 ILA デバ ッ グ コ アにア ク セ スする ために使用す る Tcl コ マ ン ド を示 し ます。 表 9‐11 : 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 すべてのデー タ がキ ャ プチ ャ さ れ る ま で待機 し ます。 hw_ila_data の Tcl コ マ ン ド 表 9-12 に、 キ ャ プチ ャ さ れた ILA デー タ にア ク セ スする ために使用する Tcl コ マ ン ド を示 し ます。 表 9‐12 : 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 を フ ァ イ ルに記述 し ます。 hw_probe の Tcl コ マ ン ド 表 9-13 に、 キ ャ プチ ャ さ れた ILA デー タ にア ク セ スする ために使用する Tcl コ マ ン ド を示 し ます。 表 9‐13 : hw_probe の Tcl コ マ ン ド Tcl コ マ ン ド 説明 get_hw_probes ハー ド ウ ェ ア プ ロ ーブの リ ス ト を取得 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 108 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ hw_vio の Tcl コ マ ン ド 表 9-14 に、 VIO コ アにア ク セ スす る ために使用する Tcl コ マ ン ド を示 し ます。 表 9‐14 : hw_vio の Tcl コ マ ン ド Tcl コ マ ン ド 説明 commit_hw_vio hw_probe の OUTPUT_VALUE プ ロ パテ ィ の値を VIO コ アに書き 込みます。 get_hw_vios hw_vio の リ ス ト を取得 し ます。 refresh_hw_vio hw_vio の INPUT_VALUE お よ び ACTIVITY_VALUE プ ロ パテ ィ を VIO コ アか ら 読み出 し た値でア ッ プデー ト し ます。 reset_hw_vio_activity 指定の hw_vio オブジ ェ ク ト に関連付け ら れてい る hw_probe に対 し 、 ACTIVITY_VALUE プ ロ パテ ィ を リ セ ッ ト し ます。 reset_hw_vio_outputs VIO コ アの出力を初期値に リ セ ッ ト し ます。 hw_axi および hw_axi_txn の Tcl コ マ ン ド 表 9-15 に、 JTAG-to-AXI Master コ アにア ク セ スする ために使用する Tcl コ マ ン ド を示 し ます。 表 9‐15 : hw_axi および hw_axi_txn の Tcl コ マ ン ド Tcl コ マ ン ド 説明 create_hw_axi_txn ハー ド ウ ェ ア AXI ト ラ ンザ ク シ ョ ン オブジ ェ ク ト を作成 し ます。 delete_hw_axi_txn ハー ド ウ ェ ア AXI ト ラ ンザ ク シ ョ ン オブジ ェ ク ト を削除 し ます。 get_hw_axi_txns ハー ド ウ ェ ア AXI ト ラ ン ザ ク シ ョ ン オブ ジ ェ ク ト の リ ス ト を 取得 し ま す。 get_hw_axis ハー ド ウ ェ ア AXI オブジ ェ ク ト の リ ス ト を取得 し ます。 refresh_hw_axi ハー ド ウ ェ ア AXI オブジ ェ ク ト の ス テー タ ス を更新 し ます。 report_hw_axi_txn フ ォーマ ッ ト さ れたハー ド ウ ェ ア AXI ト ラ ンザ ク シ ョ ン デー タ を レ ポー ト し ます。 reset_hw_axi ハー ド ウ ェ ア AXI コ アの ス テー ト を リ セ ッ ト し ます。 run_hw_axi ハー ド ウ ェ ア AXI 読み出 し /書 き 込み ト ラ ンザ ク シ ョ ン を実行 し 、 対応す る hw_axi オブジ ェ ク ト の ト ラ ンザ ク シ ョ ン ス テー タ ス を ア ッ プデー ト し ます。 hw_sysmon の Tcl コ マ ン ド 表 9-16 に、 System Monitor コ アにア ク セ スす る ために使用す る Tcl コ マ ン ド を示 し ます。 表 9‐16 : Tcl コ マ ン ド hw_sysmon の説明 Tcl コ マ ン ド 説明 commit_hw_sysmon hw_sysmon オブジ ェ ク ト に定義 さ れた現在のプ ロ パテ ィ 値をハー ド ウ ェ ア デバ イ ス の System Monitor レ ジ ス タ へ 入れます。 get_hw_sysmon_reg 指定 し た hw_sysmon オブジ ェ ク ト の指定ア ド レ ス に定義 さ れた System Monitor レ ジ ス タ の 16 進数値を戻 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 109 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ 表 9‐16 : Tcl コ マ ン ド hw_sysmon の説明 Tcl コ マ ン ド 説明 get_hw_sysmons 現在のハー ド ウ ェ ア デバ イ ス で定義 さ れ た Sysmon デ バ ッ グ コ ア オブジ ェ ク ト を戻 し ます。 refresh_hw_sysmon hw_sysmon オ ブ ジ ェ ク ト の プ ロ パ テ ィ を 現在 の hw_device か ら の System Monitor の値で リ フ レ ッ シ ュ し ます。 set_hw_sysmon_reg 指定 し た ア ド レ ス の System Monitor レ ジ ス タ を指定 し た 16 進数値に設定 し ます。 注記 : こ れ ら の各 コ マ ン ド の詳細なヘルプは、 Vivado の Tcl コ ン ソ ールに <command name> -help と 入力す る と 取 得で き ます。 Tcl コ マ ン ド を使用 し た JTAG‐to‐AXI Master コ アへの ア ク セス 次の よ う なシ ス テ ムにア ク セ スす る Tcl コ マ ン ド ス ク リ プ ト の例を示 し ます。 • localhost:3121 上の Vivado hw_server を介 し て ア ク セ ス可能な 1 つの KC705 ボー ド の Digilent JTAG-SMT1 ケーブ ル (シ リ アル番号 12345) が使用 さ れてい る • KC705 ボー ド 上の XC7K325T デバ イ ス で実行 さ れ る デザ イ ンに JTAG-to-AXI Master コ アが 1 つ含まれてい る • JTAG-to-AXI Master コ アが AXI BRAM Controller Slave コ ア を含む AXI ベース シ ス テ ムに含まれてい る Tcl コ マ ン ド ス ク リ プ ト 例 # Connect to the Digilent Cable on localhost:3121 connect_hw_server -url localhost:3121 current_hw_target [get_hw_targets */xilinx_tcf/Digilent/12345] open_hw_target # Program and Refresh the XC7K325T Device current_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] # Reset the JTAG-to-AXI Master core reset_hw_axi [get_hw_axis hw_axi_1] # Create a read transaction bursts 128 words starting from address 0 create_hw_axi_txn read_txn [get_hw_axis hw_axi_1] -type read \ -address 00000000 -len 128 # Create a write transaction bursts 128 words starting at address 0 # using a repeating fill value of 11111111_22222222_33333333_44444444 # (where LSB is to the left) create_hw_axi_txn write_txn [get_hw_axis hw_axi_1] -type write \ -address 00000000 -len 128 -data {11111111_22222222_33333333_44444444} Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 110 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ # Run the write transaction run_hw_axi [get_hw_axi_txns wrte_txn] # Run the read transaction run_hw_axi [get_hw_axi_txns read_txn] ILA を測定する Tcl コ マ ン ド の使用 次の よ う なシ ス テ ムにア ク セ スす る Tcl コ マ ン ド ス ク リ プ ト の例を示 し ます。 • localhost:3121 上の Vivado CSE サーバーを介 し て ア ク セ ス可能な 1 つの KC705 ボー ド の Digilent JTAG-SMT1 ケーブル (シ リ アル番号 12345) が使用 さ れてい る • KC705 ボー ド 上の XC7K325T デバ イ ス で実行 さ れてい る デザ イ ンに ILA コ アが 1 つ含まれてい る • ILA コ アに counter[3:0] と い う プ ロ ーブが含まれてい る Tcl コ マ ン ド ス ク リ プ ト 例 # Connect to the Digilent Cable on localhost:3121 connect_hw_server -url localhost:3121 current_hw_target [get_hw_targets */xilinx_tcf/Digilent/12345] open_hw_target # Program and Refresh the XC7K325T Device current_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 Values set_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 data run_hw_ila hw_ila_1 wait_on_hw_ila hw_ila_1 # Upload the captured ILA data, display it, and write it to a file current_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] ス タ ー ト ア ッ プ時の ト リ ガー ス タ ー ト ア ッ プ時の ト リ ガーは、 デバ イ ス ス タ ー ト ア ッ プ直後に ト リ ガー さ れ る よ う に、 デザ イ ン の BIT フ ァ イ ル の ILA コ アの ト リ ガー設定を コ ン フ ィ ギ ュ レーシ ョ ンする ために使用 さ れます。 こ れには、 通常はハー ド ウ ェ アのデ Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 111 第 9 章 : ハー ド ウ ェ ア でのロ ジ ッ ク デザイ ンのデバ ッ グ ザ イ ン で実行 さ れ る ILA コ アに適用 さ れ る さ ま ざ ま な ト リ ガー設定を、 イ ン プ リ メ ン ト さ れたデザ イ ン の ILA コ ア に使用 し ます。 重要 : ス タ ー ト ア ッ プ時の ト リ ガーを使用 し た次のプ ロ セ ス では、 ハー ド ウ ェ アで動作する 有効な ILA デザ イ ン を使 用 し てい ます。 ス タ ー ト ア ッ プ時の ト リ ガー機能を使用す る には、 次の手順に従っ て く だ さ い。 1. 2. ILA フ ロ ーの最初のパ ス を通常どお り 実行 し て、 ト リ ガー条件を設定 し ます。 a. タ ーゲ ッ ト を開いてデバ イ ス を コ ン フ ィ ギ ュ レーシ ョ ン し 、 ILA ダ ッ シ ュ ボー ド を立ち上げます。 b. ILA ダ ッ シ ュ ボー ド で ILA コ アに対する ト リ ガー式を入力 し ます。 Vivado の Tcl コ マ ン ド ラ イ ンか ら 、 ILA コ アの ト リ ガー レ ジ ス タ マ ッ プ フ ァ イ ルをエ ク ス ポー ト し ます。 こ の フ ァ イ ルには、 イ ンプ リ メ ン ト 後のネ ッ ト リ ス ト にすべての レ ジ ス タ 設定を戻すための情報が含まれます。 こ の 出力は、 1 つの フ ァ イ ルです。 % run_hw_ila -file ila_trig.tas [get_hw_ilas hw_ila_1] 3. 4. 前に イ ンプ リ メ ン ト し た配線済みデザ イ ン を Vivado IDE に戻っ て開 き ます。 こ れを実行す る 方法は、 プ ロ ジ ェ ク ト フ ロ ーに よ っ て異な り ます。 a. プ ロ ジ ェ ク ト モー ド : Flow Navigator を使用 し て イ ンプ リ メ ン ト 済みデザ イ ン を開 く b. 非プ ロ ジ ェ ク ト モー ド : 配線済みのチ ェ ッ ク ポ イ ン ト 、 %open_checkpoint <file>.dcp を開き ます。 Tcl コ ン ソ ールで メ モ リ 内の現在のデザ イ ン (配線済みネ ッ ト リ ス ト ) に ト リ ガー設定を適用 し ます。 %apply_hw_ila_trigger ila_trig.tas 注記 : ILA コ アが合成中に フ ラ ッ ト にな っ た こ と を示すエ ラ ー メ ッ セージが表示 さ れた ら 、 デザ イ ン を生成 し 直 し て、 合成で ILA コ アの階層が保持 さ れ る よ う に し ます。 必ずハー ド ウ ェ アで動作す る 有効な ILA デザ イ ン が 含まれていて、 ILA コ アが合成フ ロ ー中に フ ラ ッ ト にな ら ない よ う に し て く だ さ い。 5. Tcl コ ン ソ ールで、 ス タ ー ト ア ッ プ時の ト リ ガー設定を使用 し て ビ ッ ト ス ト リ ーム を書 き 出 し ます。 重要 : 配線済みデザ イ ンの変更を認識 さ せる には、 こ れを Tcl コ マ ン ド コ ン ソ ールでのみ実行す る 必要があ り ます。 write_bitstream trig_at_startup.bit 6. 7. [Hardware Manger] に戻っ て、 前の手順で生成 し た新 し い BIT フ ァ イ ルを使用 し て リ コ ン フ ィ ギ ュ レーシ ョ ン し ます。 ア ッ プデー ト さ れた BIT フ ァ イ ル デ ィ レ ク ト リ のプ ロ パテ ィ を GUI か Tcl コ マ ン ド のいずれかか ら 設定 す る 必要があ り ます。 新 し い BIT フ ァ イ ルはハー ド ウ ェ ア ツールの コ ン フ ィ ギ ュ レーシ ョ ン で使用す る よ う に 必ず設定 し てお き ます。 a. ハー ド ウ ェ ア ツ リ ーでデバ イ ス を選択 し ます。 b. 手順 5 で生成 し た BIT フ ァ イ ルを割 り 当て ます。 新 し い BIT フ ァ イ ルを使用 し てデバ イ ス を プ ロ グ ラ ム し ます。 プ ロ グ ラ ムす る と 、 新 し い ILA コ アは ス タ ー ト ア ッ プ時にす ぐ に ト リ ガー イ ベン ト を検出で き る 状態にな り ま す。 ILA コ アの ト リ ガー キ ャ プチ ャ ス テー タ ス に、 ス タ ー ト ア ッ プ時の ト リ ガー機能が付いてい る こ と が示 さ れます。 こ れで ト リ ガーま たはキ ャ プチ ャ イ ベン ト が発生 し た ら 、 ILA コ アがキ ャ プチ ャ さ れたデー タ サ ン プルで生成 さ れ る よ う にな り ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 112 第 10 章 波形ウ ィ ン ド ウ を使用 し た ILA プ ローブ デー タ の表示 概要 Vivado® 統合設計環境 (IDE) の ILA 波形ビ ュ ーアーを使用する と 、 ILA デバ ッ グ コ アか ら キ ャ プチ ャ さ れたデー タ を 解析で き ます。 ILA コ ア を ト リ ガー し てデー タ を キ ャ プチ ャ す る と 、 ILA コ アか ら 取得 さ れたデー タ が対応す る 波形 ビ ュ ーアーに表示 さ れ ます。 Vivado を プ ロ ジ ェ ク ト モー ド で使用 し てい る 場合、 色、 基数、 信号の順序な ど の設定 可能な波形設定は保持 さ れ、 その後の Vivado セ ッ シ ョ ンで も 使用 さ れます。 ILA デー タ と 波形の関係 キ ャ プチ ャ さ れた ハー ド ウ ェ ア ILA デー タ オブジ ェ ク ト (hw_ila_data) と 波形の関係を理解 し てお く と 有益です。 こ の関係を図 10-1 に示 し ます。 X-Ref Target - Figure 10-1 図 10‐1 : ILA デー タ と 波形の関係 ハー ド ウ ェ ア ILA Tcl オブジ ェ ク ト (hw_ila) は、 ハー ド ウ ェ ア内の ILA を示 し ます。 ILA コ アがキ ャ プチ ャ さ れた デー タ を ア ッ プ ロ ー ド す る たびに、 対応す る hw_ila_data Tcl オブジ ェ ク ト に保存 さ れ ます。 こ れ ら のオブジ ェ ク ト にはわか り やすい名前が付け ら れ、 ハー ド ウ ェ アの最初の ILA コ ア hw_ila_1 に対応す る Tcl デー タ オブジ ェ ク ト の名前は hw_ila_data_1 と な り ます。 オン ラ イ ンでハー ド ウ ェ ア を操作す る 際、 図 10-1 に示す よ う に、 各波形 は メ モ リ 内の hw_ila_data オブジ ェ ク ト が基にな っ てお り 、 1 対 1 で対応 し てい ます。 各 hw_ila_data Tcl ハー ド ウ ェ ア ILA デー タ オブ ジ ェ ク ト に対 し て、 波形デー タ ベー ス (WDB) フ ァ イ ル と 波形 コ ン フ ィ ギ ュ レ ーシ ョ ン (WCFG) フ ァ イ ルが作成 さ れ、 Vivado プ ロ ジ ェ ク ト のデ ィ レ ク ト リ に自動的に保存 さ れ ます。 図 10-1 には、 左側の hw_ila か ら 右側の波形表示へのデー タ フ ロ ーが示 さ れてい ます。 波形 コ ン フ ィ ギ ュ レ ーシ ョ ン (WCFG) フ ァ イ ル と 波形デー タ ベー ス (WDB) フ ァ イ ルの組み合わせに、 波形デー タ ベース と Vivado 波形ビ ュ ーアーでの表示のカ ス タ マ イ ズ情報が含まれます。 こ れ ら の波形フ ァ イ ルは Vivado ILA フ ロ ーで自動的に管理 さ れ る ので、 WDB ま たは WCFG フ ァ イ ルを直接変更 し ないで く だ さ い。 波形 コ ン フ ィ ギ ュ レー Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 113 第 10 章 : 波形ウ ィ ン ド ウを使用 し た ILA プ ローブ デー タ の表示 シ ョ ン を変更す る には、 波形ビ ュ ーアーのオブジ ェ ク ト (信号の色、 バ ス の基数、 信号の順序、 マーカーな ど) を変更 し 、 [Save] ボ タ ン を ク リ ッ ク し ます。 こ れに よ り 波形 コ ン フ ィ ギ ュ レーシ ョ ンの変更が Vivado プ ロ ジ ェ ク ト の適切な WCFG フ ァ イ ルに保存 さ れます。 波形 コ ン フ ィ ギ ュ レーシ ョ ンお よ びデー タ を後で表示す る ためにアーカ イ ブす る には、 Tcl コ マ ン ド write_hw_ila_data を使用 し ます。 こ れに よ り 、 hw_ila_data、 波形デー タ ベース、 お よ び波形 コ ン フ ィ ギ ュ レー シ ョ ンがアーカ イ ブに保存 さ れます。 オ フ ラ イ ンでの波形の保存お よ び読み出 し におけ る read_hw_ila_data お よ び write_hw_ila_data コ マ ン ド の使用に関す る 詳細は、 96 ページの 「ILA コ アでキ ャ プチ ャ さ れたデー タ の保 存お よ び復元」 を参照 し て く だ さ い。 波形ビ ュ ーアーのレ イ アウ ト ILA 波形ビ ュ ーアー (波形 コ ン フ ィ ギ ュ レーシ ョ ン と も 呼ばれ る ) は複数のダ イ ナ ミ ッ ク オブジ ェ ク ト で構成 さ れて お り 、 こ れ ら に よ り キ ャ プチ ャ さ れた ILA デー タ が表示 さ れます (図 10-2)。 X-Ref Target - Figure 10-2 図 10‐2 : キ ャ プ チ ャ さ れた ILA デー タ を表示する波形ビ ュ ーアー 図 10-2 に示す各要素は、 次の と お り です。 1. ILA プ ロ ーブ フ ァ イ ル (.ltx) か ら のネ ッ ト 名ま たはバス名 2. カー ソ ル位置でのネ ッ ト ま たはバ ス の値 3. ト リ ガー マーカー (赤線) 4. カー ソ ル (黄色の線) 5. マーカー (青線) 6. ILA キ ャ プチ ャ ウ ィ ン ド ウ の遷移 ( ク リ ア部分 と グ レー部分を交互に表示) 7. フ ロ ー ト 計測ルー ラ ー (黄色のバー ) Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 114 第 10 章 : 波形ウ ィ ン ド ウを使用 し た ILA プ ローブ デー タ の表示 波形ビ ュ ーアーの操作 波形ビ ュ ーアーの [Name] 列に示 さ れ る ス カ ラ ーお よ びバ ス は、 波形のプ ロ ーブ デザ イ ン オブジ ェ ク ト の名前です (図 10-3)。 こ れ ら は、 ILA コ アのハー ド ウ ェ ア プ ロ ーブに対応 し ます (get_hw_probes Tcl コ マ ン ド を参照)。 X-Ref Target - Figure 10-3 図 10‐3 : 波形ビ ュ ーアーに示 さ れる ILA プ ローブの名前 と 値 ILA デー タ を初めて ト リ ガー し て ア ッ プデー ト す る と 、波形ビ ュ ーアーに ILA コ アに接続 さ れてい る すべてのプ ロ ー ブが表示 さ れ ま す。 ビ ュ ーアーに示 さ れ る プ ロ ーブはカ ス タ マ イ ズ可能で、 既存のプ ロ ーブ を削除 し た り 新 し いプ ロ ーブ を追加 し た り で き ます。 こ のセ ク シ ョ ンでは、 波形ビ ュ ーアーの基本的な操作を説明 し ます。 波形から のプ ローブの削除 初回の ト リ ガーお よ びア ッ プ ロ ー ド 操作に よ り 、 すべてのプ ロ ーブがデフ ォ ル ト で波形に追加 さ れます。 波形にすべ てのプ ロ ーブ を表示す る 必要がない場合は、 ビ ュ ーアーか ら プ ロ ーブを削除で き ます。 波形ビ ュ ーアーか ら プ ロ ーブ を削除す る には、 [Name] 列で削除す る ス カ ラ ーま たはバ ス を右 ク リ ッ ク し 、 [Delete] を ク リ ッ ク し ます。 ま たは、 信号ま たはバ ス を選択 し て Delete キーを押 し て も 削除で き ます。 こ の操作に よ り プ ロ ーブ の遷移デー タ が メ モ リ か ら 削除 さ れ る わけではな く 、 ビ ュ ーでプ ロ ーブが非表示にな る だけです。 波形へのプ ローブの追加 波形にプ ロ ーブ を追加す る には、 [Debug Probes] ビ ュ ーで関連の ILA コ アに追加す る プ ロ ーブ を右 ク リ ッ ク し 、 [Add Probes to Waveform] を ク リ ッ ク し ます。 信号ま たはバ ス の も う 1 つの コ ピーを追加す る には、 波形ビ ュ ーアーで信号ま たはバ ス を選択 し 、 [Edit] → [Copy] を ク リ ッ ク す る か Ctrl+C キーを押 し て ク リ ッ プボー ド に コ ピー し て、 [Edit] → [Paste] を ク リ ッ ク す る か Ctrl+V キーを 押 し て波形にオブジ ェ ク ト の コ ピーを貼 り 付け ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 115 第 10 章 : 波形ウ ィ ン ド ウを使用 し た ILA プ ローブ デー タ の表示 ズーム機能の使用 ツールバーには、 波形のズーム機能にア ク セ スする ボ タ ンがあ り ます (図 10-4)。 ま たは、 Ctrl キーを押 し なが ら マ ウ ス ホ イ ールを使用す る と 、 現在選択 し てい る 波形を拡大お よ び縮小表示で き ます。 ズーム レベルは Vivado セ ッ シ ョ ン間で保持 さ れず、 毎回 リ セ ッ ト さ れます。 X-Ref Target - Figure 10-4 図 10‐4 : 波形のズーム ボ タ ン [Waveform Options] ダ イ ア ロ グ ボ ッ ク ス 波形ビ ュ ーアーでは、 オブジ ェ ク ト の表示方法を カ ス タ マ イ ズで き ます。 [Waveforms Options] ボ タ ン を ク リ ッ ク す る と 、 [Waveforms Options] ダ イ ア ロ グ ボ ッ ク ス が開き ます (図 10-5)。 X-Ref Target - Figure 10-5 図 10‐5 : [Waveform Options] ダ イ ア ログ ボ ッ ク ス 設定で き る オプシ ョ ンは次の と お り です。 • [Colors] タ ブ : 波形オブジ ェ ク ト の色を選択 し ます。 • [Default Radix] : バ ス プ ロ ーブのデフ ォ ル ト の基数を設定 し ます。 • [Draw Waveform Shadow] : 1 と 0 を見分けやす く する ため、 ス カ ラ ー 1 の下に緑色の影を表示 し ます。 • [Show signal indices] : ス カ ラ ー名お よ びバス名の左側に イ ンデ ッ ク ス位置番号を表示 し ます。 • [Show trigger markers] : 波形ビ ュ ーアーに赤色の ト リ ガー マーカーを表示 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 116 第 10 章 : 波形ウ ィ ン ド ウを使用 し た ILA プ ローブ デー タ の表示 波形 コ ン フ ィ ギ ュ レーシ ョ ンのカ ス タ マ イ ズ 表 10-1 に リ ス ト さ れてい る 機能を使用 し て、 波形 コ ン フ ィ ギ ュ レーシ ョ ン を カ ス タ マ イ ズで き ます。 こ の表には機 能が簡単に説明 さ れてお り 、 機能名を ク リ ッ ク す る その機能を説明す る セ ク シ ョ ンに移動で き ます。 表 10‐1 : 波形 コ ン フ ィ ギ ュ レーシ ョ ンのカ ス タ マ イ ズ機能 機能 説明 「カー ソ ル」 2 つのカー ソ ルを表示 し 、 時間を計測で き ます。 こ のカー ソ ルの位置 が、 ナビ ゲーシ ョ ンの基準位置にな り ます。 「マーカー」 マーカーを追加 し て波形をナ ビ ゲー ト し 、 特定時の波形値を表示で き ます。 「仕切 り 」 信号を見やす く 分け る ため仕切 り を追加で き ます。 「グループ」 関連 し た 信号お よ びバ ス を グ ループ に ま と め、 波形 コ ン フ ィ ギ ュ レーシ ョ ンに追加で き ます。 「仮想バ ス の使用」 論理 ス カ ラ ーお よ び配列を追加で き る 仮想バ ス を波形 コ ン フ ィ ギ ュ レーシ ョ ンに追加で き ます。 「オブジ ェ ク ト 名の変更」 オブジ ェ ク ト 、 信号、 バス、 グループの名前を変更で き ます。 「基数」 デフ ォ ル ト 基数は、 波形 コ ン フ ィ ギ ュ レーシ ョ ン、 [Objects] ビ ュ ー、 お よ び コ ン ソ ールに表示 さ れ る バス の基数を指定 し ます。 「バ ス ビ ッ ト の順序」 最上位ビ ッ ト (MSB) か ら 最下位ビ ッ ト (LSB)、 ま たはその逆にバ ス ビ ッ ト 順を変更で き ます。 カ ー ソル カー ソ ルは、 サ ン プル位置を一時的に示すために使用 し ます。 波形エ ッ ジ間の距離 (サ ン プル数) を計測す る 場合に は、 カー ソ ルを頻繁に移動 し ます。 ヒ ン ト : 複数の計測の時間軸を設定す る 場合な ど、一時的ではない イ ン ジ ケー タ ーを設定する 必要があ る 場合は、マー カーを追加 し ます。 詳細は、 118 ページの 「マーカー」 を参照 し て く だ さ い。 波形を 1 回 ク リ ッ ク す る と 、 メ イ ン カー ソ ルが配置 さ れます。 2 つ目のカー ソ ルを配置す る には、 Ctrl キーを押 し なが ら ク リ ッ ク し 、 マ ウ ス を左ま たは右に ド ラ ッ グ し ます。 カー ソ ルの上に位置を示すフ ラ グが表示 さ れます。 ま たは、 Shift キーを押 し た ま ま波形の ど こ か を ク リ ッ ク し ます。 メ イ ン カー ソ ルは元の位置に、 も う 一方のカー ソ ルは ク リ ッ ク し た位置に配置 さ れます。 注記 : 2 つ目のカー ソ ルの位置を保持 し なが ら メ イ ン カー ソ ルの位置を変更する には、 Shift キーを押 し なが ら ク リ ッ ク し ます。 2 つ目のカー ソ ルを ド ラ ッ グ し て配置す る 場合、 最小間隔以上 ド ラ ッ グ し ない と 2 つ目のカー ソ ルは表示 さ れません。 カー ソ ルを移動す る には、 ポ イ ン タ ーが手のひ ら のマー ク にな る ま でマ ウ ス を動か し 、 ク リ ッ ク し て次の位置 ま で カー ソ ルを ド ラ ッ グ し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 117 第 10 章 : 波形ウ ィ ン ド ウを使用 し た ILA プ ローブ デー タ の表示 カー ソ ルを ド ラ ッ グす る 際、 [Snap to Transtion] がオンにな っ てい る と (デフ ォ ル ト )、 中が塗 り つぶ さ れていない丸ま たは中が塗 り つぶ さ れた丸が表示 さ れます。 • 中が塗 り つぶ さ れていない丸 • 中が塗 り つぶ さ れてい る 丸 は、選択 し た信号の波形の遷移地点にあ る こ と を示 し ます。 カー ソ ル、マーカー、 フ ロ ー ト し てい る ルー ラ ーがない場所を ク リ ッ ク す る と 、 2 つ目のカー ソ ルが非表示にな り ます。 は、 選択 し た信号の波形の遷移間にあ る こ と を示 し ます。 マー カ ー 波形内の重要 イ ベン ト を恒久的にマー ク す る 必要があ る 場合はマーカーを使用 し ます。 マーカーが付け ら れた イ ベン ト に関連す る 距離 (サンプル数) を計測で き ます。 マーカーは、 次の よ う に追加、 移動、 削除で き ます。 • メ イ ン カー ソ ルの位置に波形 コ ン フ ィ ギ ュ レーシ ョ ンにマーカーを追加 し ます。 a. マーカーを追加す る 位置のサンプル番号ま たは遷移を ク リ ッ ク し て、 メ イ ン カー ソ ルを配置 し ます。 b. [Edit] → [Add Marker] を ク リ ッ ク す る か、 ま たは [Add Marker] ボ タ ン を ク リ ッ ク し ます。 カー ソ ル位置にマーカーが配置 さ れます。マーカーがその位置に既にあ る 場合は、若干オ フ セ ッ ト さ れます。マー カーのサンプル番号が上部に表示 さ れます。 • マーカーを波形上の別の位置に移動す る には、 ド ラ ッ グ ア ン ド ド ロ ッ プ し ます。マーカー上部の ラ ベルを ク リ ッ ク し て ド ラ ッ グ し ます。 ° • ド ラ ッ グ シ ン ボル は、 マーカーが移動可能であ る こ と を示 し ます。 マーカーを ド ラ ッ グす る 際、 [Snap to Transtion] がオ ン にな っ てい る と (デフ ォ ル ト )、 中が塗 り つぶ さ れていない丸 ま たは中が塗 り つぶ さ れた 丸が表示 さ れます。 ° 中が塗 り つぶ さ れてい る 丸 示 し ます。 は、 選択 し た信号の波形の遷移地点、 ま たは別のマーカー上であ る こ と を ° マーカーの場合は、 丸は白 く 塗 り つぶ さ れてい ます。 ° 中が塗 り つぶ さ れていない丸 ° 新 し い位置にマーカーを ド ロ ッ プす る には、 マ ウ ス のボ タ ン を放 し ます。 は、 選択 し た信号の波形の遷移間にあ る こ と を示 し ます。 1 つの コ マ ン ド でマーカーを 1 つ、 ま たはすべて削除で き ます。 マーカーを右 ク リ ッ ク し て、 次のいずれかの操 作を実行 し ます。 ° マーカーを 1 つ削除す る には、 ポ ッ プア ッ プ メ ニ ュ ーか ら [Delete Marker] を ク リ ッ ク し ます。 ° マーカーをすべて削除す る には、 ポ ッ プア ッ プ メ ニ ュ ーか ら [Delete All Markers] を ク リ ッ ク し ます。 注記 : ま た、 Delete キーを使用 し て選択 し たマーカーを削除する こ と も で き ます。 ° マーカーの削除を取 り 消すには、 [Edit] → [Undo] を ク リ ッ ク し ます。 ト リ ガー マー カ ー 赤色の ト リ ガー マーカー (赤文字の T) は、 キ ャ プチ ャ バ ッ フ ァ ーでの ト リ ガー イ ベン ト の発生を示す特殊マーカー です。 バ ッ フ ァ ーの ト リ ガー マーカーの位置は、 ト リ ガー ポジシ ョ ン設定に直接対応 し てい ます (80 ページの 「ILA デフ ォ ル ト ダ ッ シ ュ ボー ド の使用」 を参照)。 注記 : ト リ ガー マーカーは、 標準マーカー と 同 じ 方法で移動 さ せ る こ と はで き ま せん。 位置は ILA コ ア の [Trigger Position] プ ロ パテ ィ 設定で設定 さ れてい ます。 仕切 り 仕切 り は、 信号を見やす く 区切 り ます。 波形 コ ン フ ィ ギ ュ レーシ ョ ンに仕切 り を追加す る には次の手順に従い ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 118 第 10 章 : 波形ウ ィ ン ド ウを使用 し た ILA プ ローブ デー タ の表示 1. 波形ウ ィ ン ド ウ の [Name] 列で、 下に仕切 り を追加する 信号を ク リ ッ ク し ます。 2. [Edit] → [New Divider] を ク リ ッ ク す る か、 右 ク リ ッ ク し て [New Divider] を ク リ ッ ク し ます。 こ の変更は表示上の も ので、 HDL コ ー ド には何 も 追加 さ れ ません。 新 し い仕切 り マー ク は、 波形 コ ン フ ィ ギ ュ レー シ ョ ン フ ァ イ ルを保存 し た と き に保存 さ れます。 仕切 り は、 次の方法で移動ま たは削除で き ます。 • 仕切 り を移動す る には、 名前を別の位置に ド ラ ッ グ ア ン ド ド ロ ッ プ し ます。 • 仕切 り を削除す る には、 Delete キーを押すか、 ま たは右 ク リ ッ ク し てポ ッ プア ッ プ メ ニ ュ ーか ら [Delete] を ク リ ッ ク し ます。 仕切 り の名前を変更す る こ と も で き ます。 詳細は、 120 ページの 「オブジ ェ ク ト 名の変更」 を参照 し て く だ さ い。 グループ 関連 し た信号を ま と め る ため、 波形 コ ン フ ィ ギ ュ レ ーシ ョ ン の信号お よ びバ ス を グループに追加で き ま す。 ま た グ ループの中に含ま れてい る も のを展開表示 さ せた り 、 非表示に し た り で き ます。 グループ自体は波形デー タ を表示 し ませんが、 その内容の表示/非表示を切 り 替え る こ と がで き ます。 グループは追加、 変更、 削除で き ます。 グループ を追加す る には、 次の手順に従い ます。 1. 波形 コ ン フ ィ ギ ュ レーシ ョ ンで、 グループに追加す る 信号ま たはバ ス を 1 つ以上選択 し ます。 注記 : グループには、 仕切 り 、 仮想バ ス、 ほかのグループ を含め る こ と がで き ます。 2. [Edit] → [New Group] を ク リ ッ ク す る か、 右 ク リ ッ ク し て [New Group] を ク リ ッ ク し ます。 選択 し た信号ま たはバ ス を含むグループが波形 コ ン フ ィ ギ ュ レーシ ョ ンに追加 さ れます。 グループは、 グループ ア イ コ ンで表 さ れます。 こ の変更は表示上の も ので、 ILA コ アには何 も 追加 さ れません。 信号名やバ ス名を ド ラ ッ グ ア ン ド ド ロ ッ プ し て、 グループに信号やバ ス を追加す る こ と も で き ます。 グループは、 次の方法で移動ま たは削除で き ます。 • グループ を移動す る には、 [Name] 列のグループ名を別の位置に ド ラ ッ グ ア ン ド ド ロ ッ プ し ます。 • グループ を削除す る には、 グループを選択 し て [Edit] → [Wave Objects] → [Ungroup] を ク リ ッ ク す る か、 グループ を右 ク リ ッ ク し て [Ungroup] を ク リ ッ ク し ます。 グループに含まれていた信号ま たはバ ス は、 波形コ ン フ ィ ギ ュ レーシ ョ ンの一番上に配置 さ れます。 グループ名 も 変更で き ます。 詳細は、 120 ページの 「オブジ ェ ク ト 名の変更」 を参照 し て く だ さ い。 注意 : Delete キーを押す と 、 グループ と 、 それに含ま れてい る 信号お よ びバ ス が波形 コ ン フ ィ ギ ュ レーシ ョ ン か ら 削 除 さ れます。 仮想バスの使用 仮想バ ス を波形 コ ン フ ィ ギ ュ レーシ ョ ンに追加す る と 、 論理ス カ ラ ーお よ び配列を追加で き ます。 仮想バ ス には、 バ ス の波形が表示 さ れます。 仮想バ ス はその下に昇順で表示 さ れ る 信号の波形で構成 さ れてお り 、 1 次元配列に フ ラ ッ ト 化 さ れます。 追加 し た仮想バ ス は変更ま たは削除で き ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 119 第 10 章 : 波形ウ ィ ン ド ウを使用 し た ILA プ ローブ デー タ の表示 仮想バ ス を追加す る には、 次の手順に従い ます。 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 コ アのプ ロ ーブ入力に接続 さ れてい る ネ ッ ト 名には影響 し ま せん。 基数 バ ス のデー タ 型を理解す る こ と は重要です。 デジ タ ルお よ びアナ ロ グの波形オプシ ョ ン を効果的に使用する には、 基 数設定 と デー タ 型の関係を知っ てお く 必要があ り ます。 基数設定お よ びそのアナ ロ グ波形解析への影響については、 121 ページの 「バ ス の基数」 を参照 し て く だ さ い。 波形 ウ ィ ン ド ウ で個々の信号 (ILA プ ロ ーブ) の基数を変更す る には、 次の手順に従い ます。 1. バ ス を右 ク リ ッ ク し ます。 2. [Radix] を ク リ ッ ク し 、 ド ロ ッ プダ ウ ン メ ニ ュ ーか ら フ ォーマ ッ ト を選択 し ます。 ° ° ° ° ° [Binary] (2 進数) [Hexadecimal] (16 進数) [Unsigned Decimal] (符号な し 10 進数) [Signed Decimal] (符号付 き 10 進数) [Octal] (8 進数) Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 120 第 10 章 : 波形ウ ィ ン ド ウを使用 し た ILA プ ローブ デー タ の表示 重要 : [Objects] ビ ュ ーで基数を変更 し て も 、 波形ウ ィ ン ド ウ ま たは [Tcl Console] の値は変更 さ れません。 波形ウ ィ ン ド ウ で個々の信号 (ILA プ ロ ーブ) の基数を変更す る には、 波形 ウ ィ ン ド ウ のポ ッ プア ッ プ メ ニ ュ ーを使用 し て く だ さ い。 • 実数での最大バ ス幅は 64 ビ ッ ト です。 64 ビ ッ ト よ り も 幅の広いバ ス の場合は、 不正な値にな る 可能性があ り ま す。 • 浮動小数点では 32 ビ ッ ト お よ び 64 ビ ッ ト の配列のみがサポー ト さ れてい ます。 フ ロー ト ルー ラ ーの使用 波形 ウ ィ ン ド ウ の上部に あ る 標準ルー ラ ーの絶対サ ン プル値以外のサ ン プル値ベー ス を使用 し てサ ン プルを計測す る には、 フ ロ ー ト ルー ラ ーを使用す る と 便利です。 フ ロ ー ト ルー ラ ーは、 表示/非表示を切 り 替え た り 、 波形ウ ィ ン ド ウ の任意位置に移動 さ せ る こ と がで き ます。 こ の ルー ラ ーのサンプル ベース (サンプル 0) は 2 番目のカー ソ ルで、 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 進数基数を使用す る と 、 バ ス の値が符号付 き 整数 と し て処理 さ れます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 121 第 10 章 : 波形ウ ィ ン ド ウを使用 し た ILA プ ローブ デー タ の表示 • 実数基数を使用す る と 、 バス の値は固定小数点ま たは浮動小数点の実数 と し て処理 さ れます。 こ れは、 図 10-6 に 示す [Real Settings] ダ イ ア ロ グ ボ ッ ク ス の設定に よ っ て決ま り ます。 X-Ref Target - Figure 10-6 図 10‐6 : [Real Settings] ダ イ ア ログ ボ ッ ク ス 設定で き る オプシ ョ ンは次の と お り です。 • [Fixed Point] : 選択 し たバス波形オブジ ェ ク ト のビ ッ ト が固定小数点の符号付 き ま たは符号な し の実数 と し て処 理 さ れます。 • [Binary Point] : 2 進数小数点の右側のビ ッ ト 数を指定 し ます。 [Binary Point] で指定す る 値が波形オブジ ェ ク ト の ビ ッ ト 幅 よ り も 大 き い場合、 波形オブジ ェ ク ト の値は固定小数点 と し ては処理 さ れず、 波形オブジ ェ ク ト がデジ タ ル波形で表示 さ れた と き にすべての値が <Bad Radix> と 表示 さ れ ます。 アナ ロ グ波形 と し て表示 さ れ る 場合、 すべての値は 0 と し て処理 さ れます。 • [Floating Point] : 選択 し たバス波形オブジ ェ ク ト のビ ッ ト が IEEE 浮動小数点の実数 と し て処理 さ れます。 注記 : 単精度お よ び倍精度 (お よ び単/倍精度に設定 さ れてい る 値のカ ス タ ム精度) のみがサポー ト さ れてい ます。 その他の値は、 [Fixed Point] を使用 し た場合 と 同様 <Bad Radix> 値にな り ます。 [Exponent Width] お よ び [Fraction Width] は、 波形オブジ ェ ク ト のビ ッ ト 幅に必ず追加 さ れ る 必要があ り 、 追加 さ れない場合は <Bad Radix> 値にな り ます。 アナ ログ波形の表示 デジ タ ル波形を アナ ロ グに変換す る には、 次の手順に従い ます。 1. 波形ウ ィ ン ド ウ の [Name] 列でバ ス を右 ク リ ッ ク し ます。 2. [Waveform Style] → [Analog Settings] を ク リ ッ ク し て適切な設定を選択 し ます。 バ ス のデジ タ ル波形がアナ ロ グに変換 さ れます。 アナ ロ グ ま たはデジ タ ル波形の高 さ は、 行を ド ラ ッ グす る と 調節で き ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 122 第 10 章 : 波形ウ ィ ン ド ウを使用 し た ILA プ ローブ デー タ の表示 図 10-7 に、 アナ ロ グ波形表示を設定す る [Analog Settings] ダ イ ア ロ グ ボ ッ ク ス を示 し ます。 X-Ref Target - Figure 10-7 図 10‐7 : [Analog Settings] ダ イ ア ログ ボ ッ ク ス [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] : 範囲外にあ る 値は変更 さ れ、波形エ リ アの上下境界線を超え る と 範囲内に戻 る ま では水平 ラ イ ン と し て表示 さ れます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 123 第 10 章 : 波形ウ ィ ン ド ウを使用 し た ILA プ ローブ デー タ の表示 ° • [Overlap] : 波形エ リ アの境界線を越えていて、 ほかの波形 と 重な っ ていて も 、 波形ウ ィ ン ド ウ の境界に達す る ま では波形の値が ど こ にあ っ て も 波形が描画 さ れます。 [Horizontal Line] : 指定 し た値で水平方向の ラ イ ン を描画す る か ど う か指定 し ます。 こ のチ ェ ッ ク ボ ッ ク ス がオン の場合、 グ リ ッ ド ラ イ ンが指定 し た Y 軸の位置で描画 さ れます (値が波形の Y 軸の範囲内にあ る 場合)。 [Min] お よ び [Max] の場合 と 同様、 Y 軸の値には浮動小数点値を指定で き ますが、 選択 し た波形オブジ ェ ク ト の 基数が整数の場合は、 整数値に切 り 捨て ら れます。 重要 : アナ ロ グ設定は波形 コ ン フ ィ ギ ュ レーシ ョ ンに保存 さ れますが、Y 軸方向のズーム コ ン ト ロ ールは非常に イ ン タ ラ ク テ ィ ブであ る ため、 基数な ど のほかの波形プ ロ パテ ィ と は異な り 、 波形 コ ン フ ィ ギ ュ レーシ ョ ンの変更には影 響 し ません。 こ のため、 ズーム設定は波形 コ ン フ ィ ギ ュ レーシ ョ ンには保存 さ れません。 ズーム機能 X 軸方向のズーム でサポー ト さ れてい る 機能に加え、 アナ ロ グ波形の場合は、 図 10-8 に示す追加のズーム機能があ り ます。 X-Ref Target - Figure 10-8 図 10‐8 : アナログ ズームのオプ シ ョ ン ズーム機能を使用す る には、 マ ウ ス の左ボ タ ン を押 し た ま ま、 図で示 さ れてい る 方向にマ ウ ス を ド ラ ッ グ し ます。 こ の図の中央がマ ウ ス の位置です。 次の追加ズーム機能があ り ます。 • [Zoom Out Y] : 開始点か ら マ ウ ス ボ タ ン を放 し た位置ま での距離に よ り 、2 のべき 乗分 Y 軸方向にズーム ア ウ ト し ます。 開始点のマ ウ ス位置の Y 値を その ま ま維持 し てズームが実行 さ れます。 • [Zoom Y Range] : 縦方向に ラ イ ン を描 き 、 マ ウ ス ボ タ ン を離 し た位置ま での Y 軸の範囲を表示 し ます。 • [Zoom In Y] : 開始点か ら マ ウ ス ボ タ ン を放 し た位置ま での距離に よ り 、 2 のべ き 乗分 Y 軸方向にズーム イ ン し ます。 開始点のマ ウ ス位置の Y 値を その ま ま維持 し てズームが実行 さ れます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 124 第 10 章 : 波形ウ ィ ン ド ウを使用 し た ILA プ ローブ デー タ の表示 • [Reset Zoom Y] : 波形 ウ ィ ン ド ウ に現在表示 さ れてい る 値に Y の範囲を リ セ ッ ト し 、 Y の範囲モー ド を [Auto] に 設定 し ます。 Y 軸の方向のズーム機能はすべて Y の範囲のアナ ロ グ値を設定 し ます。 [Reset Zoom Y] は Y の範囲を [Auto] に設定 し ますが、 ほかのズーム機能は [Fixed] に設定 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 125 第 11 章 イ ン シス テム シ リ アル I/O デバ ッ グ フ ロー 概要 Vivado® IDE では、 ザ イ リ ン ク ス の高速ギガ ビ ッ ト ト ラ ン シーバー (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. 最初の画面で [Manage IP] → [New IP Location] を ク リ ッ ク し 、 Open IP Catalog ウ ィ ザー ド が表示 さ れた ら [Next] を ク リ ッ ク し ます。 3. パーツ、 タ ーゲ ッ ト 言語、 タ ーゲ ッ ト シ ミ ュ レー タ 、 お よ び IP デ ィ レ ク ト リ を選択 し ます。 [Finish] を ク リ ッ ク し ます。 4. IP カ タ ロ グで [Debug & Verification] → [Debug] を展開する と 、 前の手順で選択 し たデバ イ ス に応 じ て 1 つま たは 複数の IBERT コ アが表示 さ れます (図 11-1)。 5. IBERT を ダブル ク リ ッ ク し 、 コ アの [Customize IP] ダ イ ア ロ グ ボ ッ ク ス を開 き ます。 ハー ド ウ ェ ア シ ス テ ム 要件 に 合 わ せ て IBERT コ ア を カ ス タ マ イ ズ し ま す。 さ ま ざ ま な IBERT コ ア の 詳細は、 『LogiCORE IP IBERT for 7 Series GTX Transceivers 製品ガ イ ド 』 (PG132) [参照 14]、『LogiCORE IP IBERT for 7 Series GTP Transceivers 製品ガ イ ド 』 (PG133) [参照 15]、 『LogiCORE IP IBERT for 7 Series GTH Transceivers 製品ガ イ ド 』 (PG152) [ 参照 16] な ど の IP 資料を参照 し て く だ さ い。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 126 第 11 章 : イ ン シス テム シ リ アル I/O デバ ッ グ フ ロー X-Ref Target - Figure 11-1 図 11‐1 : IP カ タ ログに表示 さ れた IBERT 7 Series GTX コ ア IBERT サン プル デザイ ンの生成 と イ ン プ リ メ ン テー ション IBERT IP コ ア を生成す る と 、 [Sources] ビ ュ ーに ibert_7series_gtx ま たは類似の コ アが表示 さ れます。 サンプル デザ イ ン を生成す る には、 [Sources] ビ ュ ーで IBERT IP を右 ク リ ッ ク し て [Open IP Example Design] を ク リ ッ ク し 、 表 示 さ れ る ダ イ ア ロ グ ボ ッ ク ス でサンプル デザ イ ン プ ロ ジ ェ ク ト を保存す る デ ィ レ ク ト リ を選択 し ます。 こ の コ マ ン ド に よ り 、 サ ン プル デザ イ ン の Vivado プ ロ ジ ェ ク ト が開 き 、 最上位 ラ ッ パーお よ び制約フ ァ イ ルが追加 さ れ ます ( 図 11-2)。 サンプル デザ イ ン を生成 し た ら 、Vivado IDE の Flow Navigator で [Program and Debug] → [Generate Bitstream] を ク リ ッ ク す る か、 次の Tcl コ マ ン ド を使用 し て、 IBERT サンプル デザ イ ンの イ ンプ リ メ ン テーシ ョ ンお よ びビ ッ ト ス ト リ ー ム生成を実行 し ます。 launch_runs impl_1 -to_step write_bitstream wait_on_run impl_1 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 127 第 11 章 : イ ン シス テム シ リ アル I/O デバ ッ グ フ ロー 6. デザ イ ンの さ ま ざ ま な イ ンプ リ メ ン テーシ ョ ン方法は、 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン フ ロ ー の概要』 (UG892) [参照 5] を参照 し て く だ さ い。 X-Ref Target - Figure 11-2 図 11‐2 : IBERT サン プル デザイ ン Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 128 第 12 章 ハー ド ウ ェ アでのシ リ アル I/O デザイ ンの デバ ッ グ IBERT コ ア を イ ンプ リ メ ン ト し た ら 、 ラ ン タ イ ム シ リ アル I/O 解析機能を使用 し て、 ハー ド ウ ェ ア上でデザ イ ン をデ バ ッ グで き ます。 シ リ アル I/O 解析機能を使用 し て ア ク セ ス で き る のは、 IBERT コ ア v3.0 以降のみです。 Vivado シ リ アル I/O 解析を使用 し たデザイ ンのデ バッグ Vivado® シ リ アル I/O 解析機能は、 デザ イ ン に含 ま れ る IBERT デバ ッ グ IP コ ア に ア ク セ ス す る ために使用 し ま す。 Vivado シ リ アル I/O 解析機能を使用す る には、Flow Navigator で [Program and Debug] → [Open Hardware Manager] を ク リ ッ ク し ます。 デザ イ ンのデバ ッ グ手順は、 次の と お り です。 1. ハー ド ウ ェ ア タ ーゲ ッ ト に接続 し 、 FPGA デバ イ ス を BIT フ ァ イ ルでプ ロ グ ラ ム し ます。 2. リ ン ク を作成 し ます。 3. リ ン ク 設定を変更 し て ス テー タ ス を確認 し ます。 4. 必要に応 じ て ス キ ャ ン を実行 し ます。 ハー ド ウ ェ ア タ ーゲ ッ ト に接続 し て FPGA デバイ ス を プ ログ ラ ム デバ ッ グの前に FPGA デバ イ ス をプ ロ グ ラ ムす る 手順は、 18 ページの 「FPGA デバ イ ス のプ ロ グ ラ ム」 で説明 さ れて い る 手順 と 同 じ です。 IBERT コ ア を含む BIT フ ァ イ ルでデバ イ ス を プ ロ グ ラ ムする と 、 [Hardware] ビ ュ ーにデバ イ ス の ス キ ャ ンで検出 さ れた IBERT コ アの コ ン ポーネ ン ト が表示 さ れます (図 12-1)。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 129 第 12 章 : ハー ド ウ ェ ア でのシ リ アル I/O デザイ ンのデバ ッ グ X-Ref Target - Figure 12-1 図 12‐1 : IBERT コ アが表示 さ れた [Hardware] ビ ュ ー リ ン ク および リ ン ク グループの作成 デザ イ ン に含ま れ る 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] ダ イ ア ロ グ ボ ッ ク ス (図 12-2) が表示 さ れます。 IBERT コ アが検出 さ れ る と 、 ハー ド ウ ェ ア マネージ ャ ーに リ ン ク が存在 し ない こ と を示す緑のバナーが上部に表示 さ れます。 [Create Links] を ク リ ッ ク し て [Create Links] ダ イ ア ロ グ ボ ッ ク ス を開 き ます (図 12-2)。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 130 第 12 章 : ハー ド ウ ェ ア でのシ リ アル I/O デザイ ンのデバ ッ グ X-Ref Target - Figure 12-2 図 12‐2 : [Create Links] ダ イ ア ログ ボ ッ ク ス リ ス ト か ら TX ま たは RX を選択 し ます。 [Search] フ ィ ール ド に文字列を入力す る と 、 リ ス ト を フ ィ ル タ ーで き ます。 追加ボ タ ン (+) を ク リ ッ ク し 、 リ ン ク を リ ス ト に追加 し ます。 必要なすべての リ ン ク に対 し て同 じ 操作を実行 し ます。 重要 : 各 TX ま たは RX エン ド ポ イ ン ト は、 1 つの リ ン ク にのみ含め る こ と がで き ます。 リ ン ク は リ ン ク グループに含め る こ と も で き ます。 デフ ォ ル ト では、 新 し い リ ン ク すべてがグループ化 さ れます。 リ ン ク を グループに追加 し ない場合は、 [Create link group] チ ェ ッ ク ボ ッ ク ス を オ フ に し ま す。 リ ン ク グループの名前 は、 [Link group description] で指定 し ます。 [Links] ビ ュ ーでの リ ン ク 設定の表示 と 変更 リ ン ク を作成す る と 、 [Links] ビ ュ ーに追加 さ れ ます (図 12-3)。 [Links] ビ ュ ーでは、 リ ン ク の設定を変更 し た り 、 ス テー タ ス を確認 し た り で き ます。 X-Ref Target - Figure 12-3 図 12‐3 : [Links] ビ ュ ー [Links] ビ ュ ーの各行は、 各 リ ン ク を示 し ます。 一般的な ス テー タ スお よ び有益な ス テー タ スはデフ ォ ル ト で イ ネーブ ルにな っ てお り 、 リ ン ク の状態をすばや く 確認で き ます。 表 12-1 に、 [Links] ビ ュ ーで表示可能な設定を示 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 131 第 12 章 : ハー ド ウ ェ ア でのシ リ アル I/O デザイ ンのデバ ッ グ 表 12‐1 : [Links] ビ ュ ーに表示可能な設定 [Links] ビ ュ ーの列名 説明 名前 リ ン ク名 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 受信デー タ の極性を反転 リ ン ク グループに含まれ る すべての リ ン ク のプ ロ パテ ィ を変更する には、 リ ン ク グループ行で設定を変更 し ます。た と えば、Link Group 0 行の [TX Pattern] を [PRBS 7-bit] に変更す る と 、 こ の リ ン ク グループに含まれ る すべての リ ン ク の [TX Pattern] が [PRBS 7-bit] に変更 さ れます。グループ内のすべての リ ン ク の設定が同 じ でない場合、 リ ン ク グルー プ行のプ ロ パテ ィ 列に 「Multiple」 と 表示 さ れます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 132 第 12 章 : ハー ド ウ ェ ア でのシ リ アル I/O デザイ ンのデバ ッ グ リ ン ク スキ ャ ンの作成 と 実行 リ ン ク のマージ ン を解析す る には、 ザ イ リ ン ク ス 7 シ リ ーズ FPGA ト ラ ン シーバー専用のア イ ス キ ャ ン ハー ド ウ ェ ア を使用 し て リ ン ク の ス キ ャ ン を実行す る と 有益です。 Vivado シ リ アル I/O 解析機能では、 リ ン ク ス キ ャ ン を定義、 実行、 保存、 お よ び呼び出 し で き ます。 ス キ ャ ン は リ ン ク 上で実行 さ れ ま す。 ス キ ャ ン を作成す る には、 [Link] ビ ュ ーで リ ン ク を選択 し 、 右 ク リ ッ ク し て [Create Scan] を ク リ ッ ク す る か、 ツールバーの [Create Scan] ボ タ ン を ク リ ッ ク し ます。 [Create Scan] ダ イ ア ロ グ ボ ッ ク ス が開 き ます (図 12-4)。 [Create Scan] ダ イ ア ロ グ ボ ッ ク ス には、 表 12-2 に示すス キ ャ ンの設定が表示 さ れます。 X-Ref Target - Figure 12-4 図 12‐4 : [Create Scan] ダ イ ア ログ ボ ッ ク ス 表 12‐2 : スキ ャ ン設定 スキ ャ ン設定 説明 説明 ス キ ャ ンのユーザー定義名 Scan Type 実行す る ス キ ャ ンの タ イ プ Horizontal Increment 水平 コ ー ド を ス キ ッ プす る こ と に よ り 、 解像度を下げ る 代わ り に速度を向上 Horizontal Range 水平範囲を削減 し て速度を向上 し ます。 デフ ォ ル ト では、 ア イ 全体を ス キ ャ ン (ア イ の 中心に対 し て -1/2 ユニ ッ ト イ ン タ ーバルか ら +1/2 ま で)。 Vertical Increment 垂直 コ ー ド を ス キ ッ プす る こ と に よ り 、 解像度を下げ る 代わ り に速度を向上 Vertical Range 垂直範囲を削減 し て速度を向上。 デフ ォ ル ト では、 ア イ 全体を ス キ ャ ン Dwell BER チ ャ ー ト の各点を あ る 時間の間 ス キ ャ ン。 ビ ッ ト エ ラ ー率を選択す る こ と に よ り 、 ス キ ャ ン深 さ を選択 し ます。 Dwell Time 時間 (秒) を入力す る こ と に よ り 、 ス キ ャ ン深 さ を選択 し ます。 デフ ォ ル ト では、 ス キ ャ ン を作成す る と 実行 さ れます。 ス キ ャ ン を実行せずに定義だけする 場合は、[Run scan] チ ェ ッ ク ボ ッ ク ス を オ フ に し ます。 ス キ ャ ン を作成 し た と き に実行 し ない場合、[Scans] ビ ュ ー (図 12-5) で ス キ ャ ン を右 ク リ ッ ク し て [Run Scan] を ク リ ッ ク す る と 実行で き ます。 ス キ ャ ン を実行中に ス キ ャ ン を停止す る には、 [Scans] ビ ュ ーで ス キ ャ ン を選択 し 、 右 ク リ ッ ク し て [Stop Scann] を ク リ ッ ク す る か、 ツールバーの [Stop Scan] ボ タ ン を ク リ ッ ク し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 133 第 12 章 : ハー ド ウ ェ ア でのシ リ アル I/O デザイ ンのデバ ッ グ X-Ref Target - Figure 12-5 図 12‐5 : [Scans] ビ ュ ー リ ン ク ス イ ープの作成 と 実行 リ ン ク のマージ ン を解析す る には、 異な る MGT 設定を使用 し て リ ン ク ス キ ャ ン を複数回実行す る と 便利です。 その 中か ら ど の設定がベス ト なのか判断で き る か ら です。 Vivado シ リ アル I/O 解析機能では、 リ ン ク ス イ ープ ( リ ン ク ス キ ャ ンの コ レ ク シ ョ ン) を定義、 実行、 保存、 お よ び呼び出 し で き ます。 ス イ ープは リ ン ク 上で実行 さ れ ま す。 ス イ ープ を作成す る には、 [Link] ビ ュ ーで リ ン ク を選択 し 、 右 ク リ ッ ク し て [Create Sweep] を ク リ ッ ク す る か、[Link] ビ ュ ー ツールバーの [Create Sweep] ボ タ ン を ク リ ッ ク し ます。[Create Sweep] ダ イ ア ロ グ ボ ッ ク ス が表示 さ れます。こ のダ イ ア ロ グ ボ ッ ク ス は [Create Scan] ダ イ ア ロ グ ボ ッ ク ス に似てい ますが、 ど のプ ロ パテ ィ を ス イ ープす る か、 ど の よ う に ス イ ープす る かを定義す る オプシ ョ ンが含まれます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 134 第 12 章 : ハー ド ウ ェ ア でのシ リ アル I/O デザイ ンのデバ ッ グ X-Ref Target - Figure 12-6 図 12‐6 : [Create Sweep] ダ イ ア ログ ボ ッ ク ス 表 12‐3 : ス イ ープ設定 ス イ ープ設定 説明 説明 ス イ ープのユーザー定義名 Scan Type 実行す る ス キ ャ ンの タ イ プ Horizontal Increment 水平 コ ー ド を ス キ ッ プする こ と に よ り 、 解像度を下げ る 代わ り に速度を向 上 し ます。 Horizontal Range 水平範囲 を削減 し て速度 を向上 し ま す。 デ フ ォ ル ト では、 ア イ 全体 を ス キ ャ ン (ア イ の中心に対 し て -1/2 ユニ ッ ト イ ン タ ーバルか ら +1/2 ま で)。 Vertical Increment 垂直 コ ー ド を ス キ ッ プする こ と に よ り 、 解像度を下げ る 代わ り に速度を向 上 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 135 第 12 章 : ハー ド ウ ェ ア でのシ リ アル I/O デザイ ンのデバ ッ グ 表 12‐3 : ス イ ープ設定 ス イ ープ設定 説明 Vertical Range 垂直範囲 を削減 し て速度 を向上 し ま す。 デ フ ォ ル ト では、 ア イ 全体 を ス キ ャ ン し ます。 Dwell BER チ ャ ー ト の各点を あ る 時間の間ス キ ャ ン。 ビ ッ ト エ ラ ー率 (BER) を選択 す る こ と に よ り 、 ス キ ャ ン深 さ を選択 し ます。 Dwell Time 時間 (秒) を入力する こ と に よ り 、 ス キ ャ ン深 さ を選択 し ます。 Sweep Mode 実行する ス イ ープの タ イ プ。 [Semi Custom]、 [Full Custom]、 [Exhaustive] の いずれか を選択 し ます。 こ れ ら の設定を選択 し た ら 、 ス イ ープ プ ロ パテ ィ を設定 し ます。 リ ン ク の書 き 込み可能なプ ロ パテ ィ はすべて ス イ ー プ可能です。 プ ロ パテ ィ を追加す る には、右側の [+] ボ タ ン を ク リ ッ ク す る と 、 表に新たな行が追加 さ れます。 ス イ ー プす る プ ロ パテ ィ を選択す る には、 [Property Name] セルを ク リ ッ ク し ます。 値を変更す る には、[Values to Sweep] セルの ド ロ ッ プダ ウ ン を ク リ ッ ク し 、 ス イ ープす る 値を選択 し ます。 プ ロ パテ ィ に列挙値が含まれない場合は、 表示 さ れ る テ キ ス ト エ リ アの各行に 1 つずつ 16 進数値を入力 し ます。 X-Ref Target - Figure 12-7 図 12‐7 : ス イ ープ セルへの値の入力 • 図 12-8 に示す よ う に [Semi Custom] を選択 し てい る 場合、 選択 し たプ ロ パテ ィ のすべての組み合わせが 1 つの ス キ ャ ン用に定義 さ れ、 その ス キ ャ ンが ス イ ープ プ ロ パテ ィ に基づいて実行 さ れます。 実行 さ れ る ス イ ープの数お よ びその順序は、 [Preview & Scans] タ ブ を ク リ ッ ク す る と プ レ ビ ュ ーで き ます。 • [Full Custom] の場合、 リ ス ト さ れ る 各プ ロ パテ ィ の最初の選択肢が最初の ス キ ャ ンに使用 さ れ、 2 つ目の選択肢 が 2 つ目の ス キ ャ ンに使用 さ れ る と い う よ う にな り ます。 プ ロ パテ ィ の 1 つの選択肢がほかのプ ロ パテ ィ よ り も 少ない場合は、 最後の選択肢がその後のすべての ス キ ャ ン に使用 さ れ ま す。 同 じ プ ロ パテ ィ の選択で ス イ ープ モー ド が [Full Custom] の場合は、 3 つの ス キ ャ ンのみが実行 さ れます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 136 第 12 章 : ハー ド ウ ェ ア でのシ リ アル I/O デザイ ンのデバ ッ グ X-Ref Target - Figure 12-8 図 12‐8 : [Sweep Properites] フ ィ ール ド • [Exhaustive] の場合、 [Values to Sweep] は変更で き な く な り 、 プ ロ パテ ィ に対 し てすべての値が選択 さ れます。 すべてのプ ロ パテ ィ を設定 し た ら 、 [Run sweep] を オ ン に し た ま ま にす る と 、 各ス キ ャ ン が順に実行 さ れ ます。 [OK] を ク リ ッ ク す る と 、 ス キ ャ ンの リ ス ト が [Scan] ビ ュ ーに表示 さ れます。 ス イ ープ中の進捗状況は [Scan] ビ ュ ーで確認で き ます。 最新の ス キ ャ ンの結果が表示 さ れます。 スキ ャ ン プ ロ ッ ト の表示 と ナ ビゲー ト ス キ ャ ン を作成す る と 、 その ス キ ャ ンの [Scan Plots] ビ ュ ーが表示 さ れます。 2D ア イ ス キ ャ ンでは、 プ ロ ッ ト は BER 値の ヒ ー ト マ ッ プです。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 137 第 12 章 : ハー ド ウ ェ ア でのシ リ アル I/O デザイ ンのデバ ッ グ X-Ref Target - Figure 12-9 図 12‐9 : [Scan Plots] ビ ュ ー Vivado IDE のほかのチ ャ ー ト お よ び表示 と 同様に、 [Scan Plots] ビ ュ ー も 次の よ う に拡大/縮小で き ます。 • エ リ アの拡大 : 拡大表示す る エ リ ア を左上か ら 右下に向か っ て ド ラ ッ グ • 全体表示 : 右下か ら 左上へ向か っ て ド ラ ッ グ • 拡大 : 右上か ら 左下へ向か っ て ド ラ ッ グ • 縮小 : 左下か ら 右上へ向か っ て ド ラ ッ グ マ ウ ス カー ソ ルをプ ロ ッ ト 上に置 く と 、 ツール ヒ ン ト に現在の水平コ ー ド 、垂直 コ ー ド 、お よ びス キ ャ ン さ れた BER 値が表示 さ れ ま す。 プ ロ ッ ト タ イ プ を 変更す る には、 プ ロ ッ ト ビ ュ ーで [Plot Type] ボ タ ン を ク リ ッ ク し 、 [Show Contour (filled)]、 [Show Contour (lines)]、 ま たは [Heat Map] を ク リ ッ ク し ます。 ス キ ャ ン プ ロ ッ ト の下のサマ リ には、ス キ ャ ン設定 と ス キ ャ ンが実行 さ れた時間な ど の基本情報が表示 さ れます。2D ア イ ス キ ャ ンでは、 エ ラ ーのない ス キ ャ ンの ピ ク セル数が算出 さ れ (水平お よ び垂直 イ ン ク リ メ ン ト を考慮)、 結果が [Open Area] と し て表示 さ れます。 [Scans] ビ ュ ーの内容はデフ ォ ル ト で [Open Area] 列順に リ ス ト さ れ る ので、 オープ ン エ リ アが最 も 大 き い ス キ ャ ンが一番上に表示 さ れます。 出力結果の フ ァ イルへの保存 部分的ま たはフル 2D ア イ ス キ ャ ンに よ る ス キ ャ ン デー タ が存在する 場合、 [Scans] ビ ュ ーで [Write Scan] ボ タ ン を ク リ ッ ク す る と 、 ス キ ャ ン結果を CSV フ ァ イ ルに保存で き ます。 ス キ ャ ン結果が CSV 形式の フ ァ イ ルに保存 さ れ、 ス キ ャ ン プ ロ ッ ト を複製す る ブ ロ ッ ク に BER 値が含まれます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 138 第 12 章 : ハー ド ウ ェ ア でのシ リ アル I/O デザイ ンのデバ ッ グ [Properties] ウ ィ ン ド ウ [Hardware] ビ ュ ーで GT ま たは COMMON ブ ロ ッ ク 、 [Links] ビ ュ ーで リ ン ク 、 ま たは [Scans] ビ ュ ーで ス キ ャ ン を選 択す る と 、 [Properties] ビ ュ ーにそのオブジ ェ ク ト のプ ロ パテ ィ が表示 さ れ ま す。 GT お よ び COMMON に対 し ては、 こ れ ら のオブ ジ ェ ク ト の属性、 ポー ト 、 お よ びその他の設定がすべて表示 さ れ ま す。 こ れ ら の設定は、 [Properties] ビ ュ ー (図 12-10) ま たはTcl コ マ ン ド で変更で き ます。プ ロ パテ ィ には、読み出 し 専用で変更で き ない も の も あ り ます。 X-Ref Target - Figure 12-10 図 12‐10 : [Properties] ウ ィ ン ド ウ シ リ アル I/O 解析の Tcl オブ ジ ェ ク ト および コ マ ン ド テ ス ト 中のハー ド ウ ェ アにア ク セ スす る には、 Tcl コ マ ン ド を使用で き ます。 ハー ド ウ ェ アには、 表 12-4 に示す階層 フ ァ ース ト ク ラ ス Tcl オブジ ェ ク ト があ り ます。 表 12‐4 : シ リ アル I/O 解析の Tcl オブ ジ ェ ク ト Tcl オブ ジ ェ ク ト 説明 hw_sio_ibert IBERT コ ア を参照す る オブジ ェ ク ト 。 各 IBERT オブ ジ ェ ク ト には、 1 つ ま たは複数の hw_sio_gt ま たは hw_sio_common オブジ ェ ク ト を関連付け る こ と がで き ます。 hw_sio_gt 1 つのザ イ リ ン ク ス ギガ ビ ッ ト ト ラ ン シーバー (GT) を参照す る オブジ ェ ク ト 。 hw_sio_gtgroups GT の論理グループを参照する オブジ ェ ク ト 。 4 進数ま たは 8 進数に設定で き ます。 hw_sio_common COMMON ブ ロ ッ ク を参照する オブジ ェ ク ト 。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 139 第 12 章 : ハー ド ウ ェ ア でのシ リ アル I/O デザイ ンのデバ ッ グ 表 12‐4 : シ リ アル I/O 解析の Tcl オブ ジ ェ ク ト Tcl オブ ジ ェ ク ト 説明 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 マージ ン解析ス キ ャ ン を参照す る オブジ ェ ク ト 。 Hardware Manager コ マ ン ド の詳細を確認す る には、 Tcl コ ン ソ ールで 「help -category hardware」 と 入力 し て く だ さ い。 ハー ド ウ ェ アにア ク セスする Tcl コ マ ン ド 表 12-5 に、 IBERT コ アにア ク セ スす る ために使用す る Tcl コ マ ン ド を示 し ます。 重要 : get_property ま たは set_property コ マ ン ド を使用 し た場合、IBERT コ アか ら 情報を読み出 し た り IBERT コ アに情 報を書 き 込む こ と はで き ません。 ハー ド ウ ェ アか ら 情報を読み出すには refresh_hw_sio コ マ ン ド 、 ハー ド ウ ェ アに情 報を書 き 込むには commit_hw_sio コ マ ン ド を使用 し ます。 表 12‐5 : hw_server の Tcl コ マ ン ド Tcl コ マ ン ド 説明 refresh_hw_sio オブジ ェ ク ト のプ ロ パテ ィ 値を読み出 し ます。 ハー ド ウ ェ ア を参照す る すべての hw_sio オブジ ェ ク ト に対 し て使用で き ます。 commit_hw_sio プ ロ パテ ィ の変更を ハー ド ウ ェ ア に書 き 込み ま す。 ハー ド ウ ェ ア を 参照す る すべて の hw_sio オブジ ェ ク ト に対 し て使用で き ます。 hw_sio_link の Tcl コ マ ン ド 表 12-6 に、 リ ン ク にア ク セ スす る ために使用す る Tcl コ マ ン ド を示 し ます。 表 12‐6 : 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 の リ ス ト を取得 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 140 第 12 章 : ハー ド ウ ェ ア でのシ リ アル I/O デザイ ンのデバ ッ グ hw_sio_linkgroup の Tcl コ マ ン ド 表 12-7 に、 リ ン ク グループにア ク セ スする ために使用する Tcl コ マ ン ド を示 し ます。 表 12‐7 : 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 の リ ス ト を取得 し ます。 hw_sio_scan の Tcl コ マ ン ド 表 12-8 に、 ス キ ャ ンにア ク セ スす る ために使用す る Tcl コ マ ン ド を示 し ます。 表 12‐8 : 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 オブジ ェ ク ト の リ ス ト を取得 し ます。 オブ ジ ェ ク ト を取得する Tcl コ マ ン ド 表 12-9 に、 シ リ アル I/O オブジ ェ ク ト を取得する ために使用する Tcl コ マ ン ド を示 し ます。 表 12‐9 : オブ ジ ェ ク ト を取得する 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 リ ン ク の リ ス ト を取得 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 141 第 12 章 : ハー ド ウ ェ ア でのシ リ アル I/O デザイ ンのデバ ッ グ 表 12‐9 : オブ ジ ェ ク ト を取得する Tcl コ マ ン ド Tcl コ マ ン ド 説明 get_hw_sio_linkgroups リ ン ク グループの リ ス ト を取得 し ます。 get_hw_sio_scans ス キ ャ ンの リ ス ト を取得 し ます。 IBERT を測定する Tcl コ マ ン ド の使用 次の よ う なシ ス テ ムにア ク セ スす る Tcl コ マ ン ド ス ク リ プ ト の例を示 し ます。 • localhost:3121 上の hw_server を介 し て ア ク セ ス可能な 1 つの KC705 ボー ド の Digilent JTAG-SMT1 ケーブル (シ リ アル番号 12345) が使用 さ れてい る • KC705 ボー ド 上の XC7K325T デバ イ ス で実行 さ れてい る デザ イ ンに IBERT コ アが 1 つ含まれてい る • IBERT コ アで Quad 117 お よ び Quad 118 が イ ネーブルにな っ てい る Tcl コ マ ン ド ス ク リ プ ト 例 # Connect to the Digilent Cable on localhost:3121 connect_hw_server -url localhost:3121 current_hw_target [get_hw_targets */digilent_plugin/SN:12345] open_hw_target # Program and Refresh the XC7K325T Device current_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 hardware set_property LOOPBACK "Near-End PCS" $link0 commit_hw_sio $link0 # Create, run, display and save scan set scan0 [create_hw_sio_scan 2d_full_eye [get_hw_sio_rxs -of $link0]] run_hw_sio_scan $scan0 display_hw_sio_scan $scan0 write_hw_sio_scan "scan0.csv" $scan0 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 142 付録 A デバイ ス コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム設定 7 シ リ ーズおよび Zynq 7000 ビ ッ ト ス ト リ ーム設定 7 シ リ ー ズ ® お よ び Zynq® 7000 デ バ イ ス の デ バ イ ス コ ン フ ィ ギ ュ レ ー シ ョ ン 設定 は、 表 A-1 に 示す よ う に、 set_property <Setting> <Value> [current_design] Vivado® ツール Tcl コ マ ン ド を使用す る と 設定で き ま す。 注記 : Zynq 7000 デバ イ ス の設定については、 説明列に記述 さ れてい ます。 表 A‐1 : 7 シ リ ーズおよび Zynq 7000 ビ ッ ト ス ト リ ーム設定 設定 デ フ ォル ト 値 有効な値 説明 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 お よ び P33 フ ァ ミ リ をサ ポー ト す る 設定を使用 し ます。 BITSTREAM.CONFIG. CCLKPINa 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 の レー ト を選択で き ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 143 付録 A : デバイ ス コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム設定 表 A‐1 : 7 シ リ ーズおよび Zynq 7000 ビ ッ ト ス ト リ ーム設定 (続き) 有効な値 説明 BITSTREAM.CONFIG. DCIUPDATEMODE 設定 AsRequired AsRequired、 Continuous、 Quiet デジ タ ル制御 イ ン ピーダ ン ス (DCI) 回路で DCI IOSTANDARD の イ ン ピーダ ン ス一致を ア ッ プデー ト する 頻度を指定 し ます。 BITSTREAM.CONFIG. DONEPINa Pullup Pullup、 Pullnone DONE ピ ンに内部プルア ッ プ を追加 し ます。 Pullnone に設 定する と 、 プルア ッ プは使用 さ れません。 こ のオプシ ョ ンは、 外部プルア ッ プ抵抗を DONE ピ ンに接続する 場合 にのみ使用 し て く だ さ い。 こ のオプシ ョ ン を使用 し ない 場合、 内部プルア ッ プ抵抗が自動的に接続 さ れます。 BITSTREAM.CONFIG. EXTMASTERCCLK_EN Disable Disable、 div-48、 div-24、 div-12、 div-8、 div-6、 div-4、 div-3、 div-2、 div-1 すべてのマ ス タ ー モー ド で外部 ク ロ ッ ク を コ ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク と し て使用で き る よ う に し ます。 外 部 ク ロ ッ ク は、 多目的 USERCCLK ピ ンに接続す る 必要が あ り ます。 BITSTREAM.CONFIG. INITPINa Pullup Pullup、 Pullnone INIT ピ ンにプルア ッ プ抵抗を追加する か、 フ ロ ー ト し た ま ま にする か を指定 し ます。 BITSTREAM.CONFIG. INITSIGNALSERROR Enable Enable、 Disable Enable の場合、 コ ン フ ィ ギ ュ レーシ ョ ン エ ラ ーが検出 さ れ る と INIT_B ピ ンが 0 にアサー ト さ れます。 BITSTREAM.CONFIG. M0PINa Pullup Pullup、 Pulldown、 Pullnone M0 ピ ンに内部プルア ッ プ ま たはプルダ ウ ン を追加す る か、 ど ち ら も 追加 し ないか を指定 し ます。 M0 ピ ンにプル ア ッ プ抵抗お よ びプルダ ウ ン抵抗の ど ち ら も 追加 し ない 場合は、 Pullnone に設定 し ます。 BITSTREAM.CONFIG. M1PINa Pullup Pullup、 Pulldown、 Pullnone M1 ピ ンに内部プルア ッ プ ま たはプルダ ウ ン を追加す る か、 ど ち ら も 追加 し ないか を指定 し ます。 M1 ピ ンにプル ア ッ プ抵抗お よ びプルダ ウ ン抵抗の ど ち ら も 追加 し ない 場合は、 Pullnone に設定 し ます。 BITSTREAM.CONFIG. M2PINa Pullup Pullup、 Pulldown、 Pullnone M2 ピ ンに内部プルア ッ プ ま たはプルダ ウ ン を追加す る か、 ど ち ら も 追加 し ないか を指定 し ます。 M2 ピ ンにプル ア ッ プ抵抗お よ びプルダ ウ ン抵抗の ど ち ら も 追加 し ない 場合は、 Pullnone に設定 し ます。 BITSTREAM.CONFIG. NEXT_CONFIG_ADDR なし <string> MultiBoot セ ッ ト ア ッ プの次の コ ン フ ィ ギ ュ レーシ ョ ンの 開始ア ド レ ス を設定 し ます。 こ れは、 WBSTAR レ ジ ス タ に保存 さ れます。 BITSTREAM.CONFIG. NEXT_CONFIG_REBOOT Enable Enable、 Disable Disable に設定する と 、 .bit フ ァ イ ルか ら IPROG コ マ ン ド が削除 さ れます。 マルチブー ト セ ッ ト ア ッ プでのマル チブー ト イ メ ージにジ ャ ンプす る のではな く 、 パ ワー ア ッ プ時にゴールデン イ メ ージが読み込まれ る よ う にで き ます。 BITSTREAM.CONFIG. OVERTEMPPOWERDOWN Disable Disable、 Enable XADC で温度が最大動作範囲を超え た こ と が検出 さ れた 場合にデバ イ ス がシ ャ ッ ト ダ ウ ン さ れ る よ う に し ます。 こ のオプシ ョ ン を使用する には、 XADC に外部回路セ ッ ト ア ッ プが必要です (Zynq 7000) Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 デ フ ォル ト 値 japan.xilinx.com 144 付録 A : デバイ ス コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム設定 表 A‐1 : 7 シ リ ーズおよび Zynq 7000 ビ ッ ト ス ト リ ーム設定 (続き) 設定 デ フ ォル ト 値 有効な値 説明 BITSTREAM.CONFIG. PERSIST No No、 Yes コ ン フ ィ ギ ュ レーシ ョ ン後にマルチフ ァ ン ク シ ョ ン コ ン フ ィ ギ ュ レーシ ョ ン ピ ンへの コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク ア ク セ ス を維持 し ます。 以前は リ ー ド バ ッ ク ア ク セ ス用に コ ン フ ィ ギ ュ レーシ ョ ン後 SelectMAP ポー ト を維 持する ために使用 さ れてい ま し たが、 ど の コ ン フ ィ ギ ュ レーシ ョ ン モー ド でで も 使用で き る よ う にな っ てい ます。 PERSIST は、 JTAG ポー ト は専用で常に使用で き る ので、 JTAG コ ン フ ィ ギ ュ レーシ ョ ンには必要あ り ません。 PERSIST お よ び ICAP は同時に使用で き ません。 詳細は、 ユーザー ガ イ ド を参照 し て く だ さ い。 こ のオプ シ ョ ンは、 リ ー ド バ ッ ク お よ びパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンに SelectMAP コ ン フ ィ ギ ュ レーシ ョ ン ピ ン を使用する 場合に必要で、 SelectMAP ま たはシ リ アル モー ド を使用 し てい る 場合に使用 し ます。 BITSTREAM.CONFIG. REVISIONSELECT 00 00、 01、 10、 11 次の ウ ォーム ブー ト の ウ ォーム ブー ト 開始ア ド レ ス (WBSTAR) レ ジ ス タ の RS[1:0] 設定の内部値を指定 し ます。 BITSTREAM.CONFIG. REVISIONSELECT_ TRISTATE Disable Disable、 Enable ウ ォーム ブー ト の ウ ォーム ブー ト 開始ア ド レ ス (WBSTAR) のオプシ ョ ン を設定す る こ と に よ り 、 RS[1:0] ト ラ イ ス テー ト を イ ネーブルにする か ど う か を指定 し ま す。 • RS[1:0] ピ ンは ト ラ イ ス テー ト イ ネーブル • 0 : RS ト ラ イ ス テー ト を イ ネーブル (デフ ォ ル ト ) • 1 : RS ト ラ イ ス テー ト をデ ィ ス エーブル BITSTREAM.CONFIG. SELECTMAPABORT Enable Enable、 Disable SelectMAP モー ド のアボー ト シーケ ン ス を イ ネーブルま た はデ ィ ス エーブルに し ます。 Disable に設定す る と 、 デバ イ ス ピ ンのアボー ト シーケ ン ス は無視 さ れます。 BITSTREAM.CONFIG. SPI_32BIT_ADDR No No、 Yes SPI 32 ビ ッ ト ア ド レ ス形式を イ ネーブルに し ます。 こ の 形式は、 256Mb 以上の ス ト レージ を含む SPI デバ イ ス で必 要です。 BITSTREAM.CONFIG. SPI_BUSWIDTH NONE NONE、 1、 2、 4 サー ド パーテ ィ SPI フ ラ ッ シ ュ デバ イ ス か ら のマ ス タ ー SPI コ ン フ ィ ギ ュ レーシ ョ ンに対 し て、 SPI バ ス をデュ ア ル (x2) ま たは ク ワ ッ ド (x4) モー ド に設定 し ます。 BITSTREAM.CONFIG. SPI_FALL_EDGE No No、 Yes FPGA で SPI デー タ のキ ャ プチ ャ に立ち下が り エ ッ ジ を使 用する よ う 設定 し ます。 こ れに よ り タ イ ミ ン グ マージ ン が向上 し 、 コ ン フ ィ ギ ュ レーシ ョ ンの ク ロ ッ ク レー ト が 上が る 可能性があ り ます。 BITSTREAM.CONFIG. TCKPINa Pullup Pullup、 Pulldown、 Pullnone TCK ピ ン、 JTAG テ ス ト ク ロ ッ ク にプルア ッ プ ま たはプル ダ ウ ン を追加する か、 ど ち ら も 追加 し ないか を指定 し ま す。 Pullnone に設定する と 、 プルア ッ プ も プルダ ウ ン も 使 用 さ れません。 BITSTREAM.CONFIG. TDIPINa Pullup Pullup、 Pulldown、 Pullnone TDI ピ ン、 JTAG 命令お よ び JTAG レ ジ ス タ へのシ リ アル デー タ 入力すべてに、 プルア ッ プ ま たはプルダ ウ ン を追 加する か、 ど ち ら も 追加 し ないか を指定 し ます。 Pullnone に設定する と 、 プルア ッ プ も プルダ ウ ン も 使用 さ れませ ん。 BITSTREAM.CONFIG. TDOPINa Pullup Pullup、 Pulldown、 Pullnone TDO ピ ン、JTAG 命令お よ びデー タ レ ジ ス タ へのシ リ アル デー タ 出力すべてに、 プルア ッ プ ま たはプルダ ウ ン を追 加する か、 ど ち ら も 追加 し ないか を指定 し ます。 Pullnone に設定する と 、 プルア ッ プ も プルダ ウ ン も 使用 さ れませ ん。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 145 付録 A : デバイ ス コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム設定 表 A‐1 : 7 シ リ ーズおよび Zynq 7000 ビ ッ ト ス ト リ ーム設定 (続き) 設定 デ フ ォル ト 値 有効な値 説明 BITSTREAM.CONFIG. TIMER_CFG なし 8 桁の 16 進 文字列 コ ン フ ィ ギ ュ レーシ ョ ン モー ド での ウ ォ ッ チ ド ッ グ タ イ マーの値を設定 し ます。 こ のオプシ ョ ンは、 TIMER_USR と 同時に使用する こ と はで き ません。 BITSTREAM.CONFIG. TIMER_USR 0x00000000 8 桁の 16 進 文字列 ユーザー モー ド での ウ ォ ッ チ ド ッ グ タ イ マーの値を設定 し ます。 こ のオプシ ョ ンは、 TIMER_CFG と 同時に使用す る こ と はで き ません。 BITSTREAM.CONFIG. TMSPINa 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 進文字列を入力 で き ます。 BITSTREAM.CONFIG. USR_ACCESS None None、 8 桁の 16 進文字列、 TIMESTAMP AXSS コ ン フ ィ ギ ュ レーシ ョ ン レ ジ ス タ に、8 桁の 16 進文 字列ま たは タ イ ム ス タ ンプ を記述 し ます。 タ イ ム ス タ ン プ値の フ ォーマ ッ ト は、 ddddd MMMM yyyyyy hhhhh mmmmmm ssssss (ddddd = 日、 MMMM = 月、 yyyyyy = 年 (2000 年は 00000)、 hhhhh = 時、 mmmmmm = 分、 ssssss = 秒) です。 こ の レ ジ ス タ の内容は、 FPGA デバ イ ス に よ り USR_ACCESS プ リ ミ テ ィ ブ を介 し て直接ア ク セ ス で き ま す。 BITSTREAM.ENCRYPTION. ENCRYPT なし No、 Yes ビ ッ ト ス ト リ ーム を暗号化 し ます。 BITSTREAM.ENCRYPTION. ENCRYPTKEYSELECT bbram bbram、 efuse 使用する AES 暗号化キーの場所を、 バ ッ ク ア ッ プ機能付 き RAM (BBRAM) ま たは eFUSE レ ジ ス タ のいずれかに指 定 し ます。 注記 : こ のプ ロ パテ ィ は ENCRYPT オプシ ョ ン を Yes に設 定 し てい る 場合のみ使用可能です。 BITSTREAM.ENCRYPTION. HKEY Pick Pick、 16 進文 字列 ビ ッ ト ス ト リ ーム暗号化の HMAC 認証キーを設定 し ます。 7 シ リ ーズ デバ イ ス には、 ハー ド ウ ェ アにオンチ ッ プの ビ ッ ト ス ト リ ーム キー付 き HMAC (Hash Message Authentication Code) アルゴ リ ズ ムが イ ンプ リ メ ン ト さ れて お り 、 AES 復号化のみの場合 よ り セキ ュ リ テ ィ が強化 さ れてい ます。 こ れ ら のデバ イ ス では、 ビ ッ ト ス ト リ ーム の読み込み、 変更、 遮断、 コ ピーに AES と HMAC キーの 両方が必要です。 Pick に設定する と 、 ラ ン ダ ム な値が選択 さ れます。 こ のオ プシ ョ ン を使用する には、 ENCRYPT オプシ ョ ン を Yes に 設定する 必要があ り ます。 BITSTREAM.ENCRYPTION. KEY0 Pick Pick、 16 進文 字列 ビ ッ ト ス ト リ ーム暗号化の AES 暗号化キーを設定 し ます。 Pick に設定する と 、 ラ ン ダ ム な値が選択 さ れます。 こ のオ プシ ョ ン を使用する には、 ENCRYPT オプシ ョ ン を Yes に 設定する 必要があ り ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 146 付録 A : デバイ ス コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム設定 表 A‐1 : 7 シ リ ーズおよび Zynq 7000 ビ ッ ト ス ト リ ーム設定 (続き) 設定 BITSTREAM.ENCRYPTION. KEYFILE デ フ ォル ト 値 有効な値 説明 なし <string> 入力暗号化フ ァ イ ル (拡張子 .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 値は算出 さ れ ません。 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 Auto、 Top、 Bottom 上ま たは下の ICAP ポー ト を選択 し ます。 BITSTREAM.READBACK. READBACK False True、 False 必要な リ ー ド バ ッ ク フ ァ イ ルを作成 し て リ ー ド バ ッ ク 機 能を実行 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 147 付録 A : デバイ ス コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム設定 表 A‐1 : 7 シ リ ーズおよび Zynq 7000 ビ ッ ト ス ト リ ーム設定 (続き) 設定 デ フ ォル ト 値 有効な値 説明 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 バ ッ フ ァ ーへの内部 ト ラ イ ス テー ト 制御を解放す る ス タ ー ト ア ッ プ フ ェーズ を選択 し ます。 BITSTREAM.STARTUP. GWE_CYCLE 6 6、 1、 2、 3、 4、 5、 Done、 Keep フ リ ッ プ フ ロ ッ プ、 LUT RAM、 お よ びシ フ ト レ ジ ス タ へ の内部 イ ネーブルを アサー ト す る ス タ ー ト ア ッ プ フ ェー ズ を選択 し ます。 BRAM も イ ネーブルに し ます。 こ の ス タ ー ト ア ッ プ フ ェーズの前は、 ブ ロ ッ ク RAM の書き 込み お よ び読み出 し の両方がデ ィ ス エーブルです。 BITSTREAM.STARTUP. LCK_CYCLE NoWait NoWait、 0、 1、 2、 3、 4、 5、 6 DLL/DCM/PLL ロ ッ ク ま で待機す る ため、 ス タ ー ト ア ッ プ 段階を選択 し ます。 NoWait に設定する と 、 ス タ ー ト ア ッ プ シーケ ン ス は DLL/DCM/PLL が ロ ッ ク さ れ る ま で待機 さ れません。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 148 付録 A : デバイ ス コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム設定 表 A‐1 : 7 シ リ ーズおよび Zynq 7000 ビ ッ ト ス ト リ ーム設定 (続き) 有効な値 説明 BITSTREAM.STARTUP. MATCH_CYCLE 設定 Auto デ フ ォル ト 値 Auto、 NoWait、 0、 1、 2、 3、 4、 5、 6 デジ タ ル制御 イ ン ピーダ ン ス (DCI) 一致信号がアサー ト さ れ る ま で待機する ス タ ー ト ア ッ プ サ イ ク ルを指定 し ます。 DCI マ ッ チは MATCH_CYCLE では開始 し ません。 ス タ ー ト ア ッ プ シーケ ン ス は DCI が一致す る ま で こ のサ イ ク ル で待機 し ます。 DCI が一致す る のにかか る 時間には さ ま ざ ま要素が影響する ので、 ス タ ー ト ア ッ プ シーケ ン ス が完 了する のに必要な CCLK サ イ ク ル数は、 同 じ シ ス テ ムで も 異な る 場合があ り ます。 DONE が High にな る ま で コ ン フ ィ ギ ュ レーシ ョ ン ソ リ ュ ーシ ョ ンで CCLK を駆動する のが理想的です。 注記 : Auto に設定す る と 、 write_bitstream に よ り デザ イ ン で DCI I/O 規格が検索 さ れます。 DCI 規格が存在す る 場合 は BITSTREAM.STARTUP.MATCH_CYCLE=2 が、 存在 し ない場合は BITSTREAM.STARTUP.MATCH_CYCLE=NoWait が使用 さ れます。 BITSTREAM.STARTUP. STARTUPCLK Cclk Cclk、 UserClk、 JtagClk デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ン後の StartupClk シーケ ン ス は、 Cclk、 ユーザー ク ロ ッ ク 、 ま たは JTAG ク ロ ッ ク に同期 さ せ る こ と がで き ます。 デフ ォ ル ト は Cclk です。 • Cclk : FPGA デバ イ ス で供給 さ れ る 内部 ク ロ ッ ク に同期 し ます。 • UserClk : STARTUP シ ン ボルの CLK ピ ンに接続 さ れてい る ユーザー定義信号に同期 し ます。 • JtagClk : JTAG で供給 さ れ る ク ロ ッ ク に同期 し ます。 こ の ク ロ ッ ク は、 JTAG の制御 ロ ジ ッ ク と し て使用 さ れ る TAP コ ン ト ロ ー ラ ーを シーケ ン ス し ます。 a. 専用 コ ン フ ィ ギ ュ レーシ ョ ン ピ ンには、 ビ ッ ト ス ト リ ーム設定のデフ ォ ル ト を使用す る こ と をお勧め し ます。 UltraScale ビ ッ ト ス ト リ ーム設定 表 A-2 は、set_property <Setting> <Value> [current_design] Vivado® ツール Tcl コ マ ン ド で使用可能な UltraScale® デバ イ ス のデバ イ ス コ ン フ ィ ギ ュ レーシ ョ ン設定を示 し てい ます。 . 表 A‐2 : UltraScale ビ ッ ト ス ト リ ーム設定 設定 デ フ ォル ト 値 有効な値 説明 BITSTREAM. AUTHENTICATION. AUTHENTICATE No Yes、 No RSA 認証を使用する か ど う か を指定 し ます。 No の場合、 AES_GCM が使用 さ れます。 BITSTREAM. AUTHENTICATION. RSAPRIVATEKEYFILE なし <string> RSA-2048 認証ビ ッ ト ス ト リ ーム をサ イ ンす る ために使用 する べき キー ペア を含む OpenSSL .pem フ ァ イ ルを指定 し ます。 BITSTREAM.CONFIG. BPI_1ST_READ_CYCLE 1 1、 2、 3、 4 BPI コ ン フ ィ ギ ュ レーシ ョ ン を フ ラ ッ シ ュ デバ イ ス のペー ジ モー ド 動作の タ イ ミ ン グ と 同期 さ せ る 際に使用 し 、 最 初のページの有効読み出 し のサ イ ク ル数を設定 し ます。 こ のオプシ ョ ンは、BPI_page_size を 4 ま たは 8 に設定 し て い る 場合にのみ有効です。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 149 付録 A : デバイ ス コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム設定 表 A‐2 : UltraScale ビ ッ ト ス ト リ ーム設定 (続き) 設定 デ フ ォル ト 値 有効な値 説明 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 お よ び P33 フ ァ ミ リ をサ ポー ト す る 設定を使用 し ます。 BITSTREAM.CONFIG. CCLKPINa Pullup Pullup、 Pullnone Cclk ピ ンに内部プルア ッ プ を追加 し ます。 Pullnone に設定 する と 、 プルア ッ プは使用 さ れません。 BITSTREAM.CONFIG. CONFIGFALLBACK Disable Disable、 Enable コ ン フ ィ ギ ュ レーシ ョ ンでエ ラ ーが発生 し た場合にデ フ ォ ル ト のビ ッ ト ス ト リ ーム を読み込むか ど う か を指定 し ます。 BITSTREAM.CONFIG. CONFIGRATE 3 3、 6、 9、 12、 22、 33、 40、 50、 57、 69、 82、 87、 90、 110、 115、 130、 148 マ ス タ ー モー ド で コ ン フ ィ ギ ュ レーシ ョ ンす る 場合、 ビ ッ ト ス ト リ ームの生成で コ ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク (Cclk) の生成に内部オシ レー タ ーが使用 さ れます。 こ のオプシ ョ ン を使用する と 、 Cclk の レー ト を選択で き ます。 BITSTREAM.CONFIG. D00_MOSIa Pullup Pullup、 Pulldown、 Pullnone D00_MOSI ピ ンに内部プルア ッ プ ま たはプルダ ウ ン を追加 する か、 ど ち ら も 追加 し ないか を指定 し ます。 D00_MOSI ピ ンにプルア ッ プ抵抗お よ びプルダ ウ ン抵抗の ど ち ら も 追加 し ない場合は、 Pullnone に設定 し ます BITSTREAM.CONFIG. D01_DINa Pullup Pullup、 Pulldown、 Pullnone D01_DIN ピ ンに内部プルア ッ プ ま たはプルダ ウ ン を追加 する か、 ど ち ら も 追加 し ないか を指定 し ます。 D01_DIN ピ ンにプルア ッ プ抵抗お よ びプルダ ウ ン抵抗の ど ち ら も 追加 し ない場合は、 Pullnone に設定 し ます BITSTREAM.CONFIG. D02a Pullup Pullup、 Pulldown、 Pullnone D02 ピ ンに内部プルア ッ プ ま たはプルダ ウ ン を追加す る か、 ど ち ら も 追加 し ないか を指定 し ます。 D02 ピ ンにプル ア ッ プ抵抗お よ びプルダ ウ ン抵抗の ど ち ら も 追加 し ない 場合は、 Pullnone に設定 し ます BITSTREAM.CONFIG. D03a Pullup Pullup、 Pulldown、 Pullnone D03 ピ ンに内部プルア ッ プ ま たはプルダ ウ ン を追加す る か、 ど ち ら も 追加 し ないか を指定 し ます。 D03 ピ ンにプル ア ッ プ抵抗お よ びプルダ ウ ン抵抗の ど ち ら も 追加 し ない 場合は、 Pullnone に設定 し ます BITSTREAM.CONFIG. DCIUPDATEMODE AsRequired AsRequired、 Continuous、 Quiet デジ タ ル制御 イ ン ピーダ ン ス (DCI) 回路で DCI IOSTANDARD の イ ン ピーダ ン ス一致を ア ッ プデー ト する 頻度を指定 し ます。 BITSTREAM.CONFIG. DONEPINa Pullup Pullup、 Pullnone DONE ピ ンに内部プルア ッ プ を追加 し ます。 Pullnone に設 定する と 、 プルア ッ プは使用 さ れません。 こ のオプシ ョ ンは、 外部プルア ッ プ抵抗を DONE ピ ンに接続する 場合 にのみ使用 し て く だ さ い。 こ のオプシ ョ ン を使用 し ない 場合、 内部プルア ッ プ抵抗が自動的に接続 さ れます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 150 付録 A : デバイ ス コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム設定 表 A‐2 : UltraScale ビ ッ ト ス ト リ ーム設定 (続き) 有効な値 説明 BITSTREAM.CONFIG. EXTMASTERCCLK_EN 設定 Disable Disable、 div-48、 div-24、 div-12、 div-8、 div-6、 div-4、 div-3、 div-2、 div-1 すべてのマ ス タ ー モー ド で外部 ク ロ ッ ク を コ ン フ ィ ギ ュ レーシ ョ ン ク ロ ッ ク と し て使用で き る よ う に し ます。 外 部 ク ロ ッ ク は、 多目的 USERCCLK ピ ンに接続す る 必要が あ り ます。 BITSTREAM.CONFIG. INITPINa Pullup Pullup、 Pullnone INIT ピ ンにプルア ッ プ抵抗を追加する か、 フ ロ ー ト し た ま ま にする か を指定 し ます。 BITSTREAM.CONFIG. INITSIGNALSERROR Enable Enable、 Disable Enable の場合、 コ ン フ ィ ギ ュ レーシ ョ ン エ ラ ーが検出 さ れ る と INIT_B ピ ンが 0 にアサー ト さ れます。 BITSTREAM.CONFIG. M0PINa Pullup Pullup、 Pulldown、 Pullnone M0 ピ ンに内部プルア ッ プ ま たはプルダ ウ ン を追加す る か、 ど ち ら も 追加 し ないか を指定 し ます。 M0 ピ ンにプル ア ッ プ抵抗お よ びプルダ ウ ン抵抗の ど ち ら も 追加 し ない 場合は、 Pullnone に設定 し ます。 BITSTREAM.CONFIG. M1PINa Pullup Pullup、 Pulldown、 Pullnone M1 ピ ンに内部プルア ッ プ ま たはプルダ ウ ン を追加す る か、 ど ち ら も 追加 し ないか を指定 し ます。 M1 ピ ンにプル ア ッ プ抵抗お よ びプルダ ウ ン抵抗の ど ち ら も 追加 し ない 場合は、 Pullnone に設定 し ます。 BITSTREAM.CONFIG. M2PINa Pullup Pullup、 Pulldown、 Pullnone M2 ピ ンに内部プルア ッ プ ま たはプルダ ウ ン を追加す る か、 ど ち ら も 追加 し ないか を指定 し ます。 M2 ピ ンにプル ア ッ プ抵抗お よ びプルダ ウ ン抵抗の ど ち ら も 追加 し ない 場合は、 Pullnone に設定 し ます。 BITSTREAM.CONFIG. NEXT_CONFIG_ADDR なし <string> MultiBoot セ ッ ト ア ッ プの次の コ ン フ ィ ギ ュ レーシ ョ ンの 開始ア ド レ ス を設定 し ます。 こ れは、 WBSTAR レ ジ ス タ に保存 さ れます。 BITSTREAM.CONFIG. NEXT_CONFIG_REBOOT Enable Enable、 Disable Disable に設定する と 、 .bit フ ァ イ ルか ら IPROG コ マ ン ド が削除 さ れます。 マルチブー ト セ ッ ト ア ッ プでのマル チブー ト イ メ ージにジ ャ ンプす る のではな く 、 パ ワー ア ッ プ時にゴールデン イ メ ージが読み込まれ る よ う にで き ます。 BITSTREAM.CONFIG. OVERTEMPSHUTDOWN Disable Disable、 Enable シ ス テ ム モニ タ ーで温度が最大動作範囲を超えた こ と が 検出 さ れた場合にデバ イ ス がシ ャ ッ ト ダ ウ ン さ れ る よ う に し ます。 こ のオプシ ョ ン を使用する には、 シ ス テ ム モ ニ タ ーに外部回路セ ッ ト ア ッ プが必要です BITSTREAM.CONFIG. PERSIST No No、 Yes コ ン フ ィ ギ ュ レーシ ョ ン後にマルチフ ァ ン ク シ ョ ン コ ン フ ィ ギ ュ レーシ ョ ン ピ ンへの コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク ア ク セ ス を維持 し ます。 以前は リ ー ド バ ッ ク ア ク セ ス用に コ ン フ ィ ギ ュ レーシ ョ ン後 SelectMAP ポー ト を維 持する ために使用 さ れてい ま し たが、 ど の コ ン フ ィ ギ ュ レーシ ョ ン モー ド でで も 使用で き る よ う にな っ てい ます。 PERSIST は、 JTAG ポー ト は専用で常に使用で き る ので、 JTAG コ ン フ ィ ギ ュ レーシ ョ ンには必要あ り ません。 PERSIST お よ び ICAP は同時には使用で き ません。 詳細は、 ユーザー ガ イ ド を参照 し て く だ さ い。 こ のオプ シ ョ ンは、 リ ー ド バ ッ ク お よ びパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンに SelectMAP コ ン フ ィ ギ ュ レーシ ョ ン ピ ン を使用する 場合に必要で、 SelectMAP ま たはシ リ アル モー ド を使用 し てい る 場合に使用 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 デ フ ォル ト 値 japan.xilinx.com 151 付録 A : デバイ ス コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム設定 表 A‐2 : UltraScale ビ ッ ト ス ト リ ーム設定 (続き) 設定 デ フ ォル ト 値 有効な値 説明 BITSTREAM.CONFIG. PROGPINa Pullup Pullup、 Pullnone PROGRAM_B ピ ンに内部プルア ッ プ を追加 し ます。 Pullnone に設定する と 、 プルア ッ プは使用 さ れません。 プ ルア ッ プは、 コ ン フ ィ ギ ュ レーシ ョ ン後の ピ ンに使用 さ れます。 BITSTREAM.CONFIG. PUDC_Ba Pullup Pullup、 Pulldown、 Pullnone PUDC_B ピ ンに内部プルア ッ プ ま たはプルダ ウ ン を追加 する か、 ど ち ら も 追加 し ないか を指定 し ます。 PUDC_B ピ ンにプルア ッ プ抵抗お よ びプルダ ウ ン抵抗の ど ち ら も 追加 し ない場合は、 Pullnone に設定 し ます。 BITSTREAM.CONFIG. RDWR_B_FCS_Ba Pullup Pullup、 Pulldown、 Pullnone RDWR_B_FCS_B ピ ンに内部プルア ッ プ ま たはプルダ ウ ン を追加する か、 ど ち ら も 追加 し ないか を指定 し ます。 RDWR_B_FCS_B ピ ンRDWR_B_FCS_B ピ ンにプルア ッ プ 抵抗お よ びプルダ ウ ン抵抗の ど ち ら も 追加 し ない場合は、 Pullnone に設定 し ます。 BITSTREAM.CONFIG. REVISIONSELECT 00 00、 01、 10、 11 次の ウ ォーム ブー ト の ウ ォーム ブー ト 開始ア ド レ ス (WBSTAR) レ ジ ス タ の RS[1:0] 設定の内部値を指定 し ます。 BITSTREAM.CONFIG. REVISIONSELECT_ TRISTATE Disable Disable、 Enable ウ ォーム ブー ト の ウ ォーム ブー ト 開始ア ド レ ス (WBSTAR) のオプシ ョ ン を設定す る こ と に よ り 、 RS[1:0] ト ラ イ ス テー ト を イ ネーブルにする か ど う か を指定 し ま す。 • RS[1:0] ピ ンは ト ラ イ ス テー ト イ ネーブル • 0 : RS ト ラ イ ス テー ト を イ ネーブル (デフ ォ ル ト ) • 1 : RS ト ラ イ ス テー ト をデ ィ ス エーブル BITSTREAM.CONFIG. SELECTMAPABORT Enable Enable、 Disable SelectMAP モー ド のアボー ト シーケ ン ス を イ ネーブルま た はデ ィ ス エーブルに し ます。 Disable に設定す る と 、 デバ イ ス ピ ンのアボー ト シーケ ン ス は無視 さ れます。 BITSTREAM.CONFIG. SPI_32BIT_ADDR No No、 Yes SPI 32 ビ ッ ト ア ド レ ス形式を イ ネーブルに し ます。 こ の 形式は、 256Mb 以上の ス ト レージ を含む SPI デバ イ ス で必 要です。 BITSTREAM.CONFIG. SPI_BUSWIDTH NONE NONE、 1、 2、 4 サー ド パーテ ィ SPI フ ラ ッ シ ュ デバ イ ス か ら のマ ス タ ー SPI コ ン フ ィ ギ ュ レーシ ョ ンに対 し て、 SPI バ ス をデュ ア ル (x2) ま たは ク ワ ッ ド (x4) モー ド に設定 し ます。 BITSTREAM.CONFIG. SPI_FALL_EDGE No No、 Yes FPGA で SPI デー タ のキ ャ プチ ャ に立ち下が り エ ッ ジ を使 用する よ う 設定 し ます。 こ れに よ り タ イ ミ ン グ マージ ン が向上 し 、 コ ン フ ィ ギ ュ レーシ ョ ンの ク ロ ッ ク レー ト が 上が る 可能性があ り ます。 BITSTREAM.CONFIG. TCKPINa Pullup Pullup、 Pulldown、 Pullnone TCK ピ ン、 JTAG テ ス ト ク ロ ッ ク にプルア ッ プ ま たはプル ダ ウ ン を追加する か、 ど ち ら も 追加 し ないか を指定 し ま す。 Pullnone に設定する と 、 プルア ッ プ も プルダ ウ ン も 使 用 さ れません。 BITSTREAM.CONFIG. TDIPINa Pullup Pullup、 Pulldown、 Pullnone TDI ピ ン、 JTAG 命令お よ び JTAG レ ジ ス タ へのシ リ アル デー タ 入力すべてに、 プルア ッ プ ま たはプルダ ウ ン を追 加する か、 ど ち ら も 追加 し ないか を指定 し ます。 Pullnone に設定する と 、 プルア ッ プ も プルダ ウ ン も 使用 さ れませ ん。 BITSTREAM.CONFIG. TDOPINa Pullup Pullup、 Pulldown、 Pullnone TDO ピ ン、JTAG 命令お よ びデー タ レ ジ ス タ へのシ リ アル デー タ 出力すべてに、 プルア ッ プ ま たはプルダ ウ ン を追 加する か、 ど ち ら も 追加 し ないか を指定 し ます。 Pullnone に設定する と 、 プルア ッ プ も プルダ ウ ン も 使用 さ れませ ん。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 152 付録 A : デバイ ス コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム設定 表 A‐2 : UltraScale ビ ッ ト ス ト リ ーム設定 (続き) 設定 デ フ ォル ト 値 有効な値 説明 BITSTREAM.CONFIG. TIMER_CFG なし 8 桁の 16 進 文字列 コ ン フ ィ ギ ュ レーシ ョ ン モー ド での ウ ォ ッ チ ド ッ グ タ イ マーの値を設定 し ます。 こ のオプシ ョ ンは、 TIMER_USR と 同時に使用する こ と はで き ません。 BITSTREAM.CONFIG. TIMER_USR 0x00000000 8 桁の 16 進 文字列 ユーザー モー ド での ウ ォ ッ チ ド ッ グ タ イ マーの値を設定 し ます。 こ のオプシ ョ ンは、 TIMER_CFG と 同時に使用す る こ と はで き ません。 BITSTREAM.CONFIG. TMSPINa 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 進文字列を入力 で き ます。 BITSTREAM.CONFIG. USR_ACCESS None None、 8 桁の 16 進文字列、 TIMESTAMP AXSS コ ン フ ィ ギ ュ レーシ ョ ン レ ジ ス タ に、8 桁の 16 進文 字列ま たは タ イ ム ス タ ンプ を記述 し ます。 タ イ ム ス タ ン プ値の フ ォーマ ッ ト は、 ddddd MMMM yyyyyy hhhhh mmmmmm 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 認証キーを設定 し ます。 Pick に設定する と 、 ラ ン ダ ム な値が選択 さ れます。 こ のオ プシ ョ ン を使用する には、 ENCRYPT オプシ ョ ン を Yes に 設定する 必要があ り ます。 BITSTREAM.ENCRYPTION. KEY0 Pick Pick、 16 進文 字列 ビ ッ ト ス ト リ ーム暗号化の AES 暗号化キーを設定 し ます。 Pick に設定する と 、 ラ ン ダ ム な値が選択 さ れます。 こ のオ プシ ョ ン を使用する には、 ENCRYPT オプシ ョ ン を Yes に 設定する 必要があ り ます。 BITSTREAM.ENCRYPTION. KEYFILE なし <string> 入力暗号化フ ァ イ ル (拡張子 .nky) の名前を指定 し ます。 こ のオプシ ョ ン を使用する には、 ENCRYPT オプシ ョ ン を Yes に設定す る 必要があ り ます。 BITSTREAM.ENCRYPTION. KEYLIFE 4 4~ 2147483647 AES-GCM 認証ビ ッ ト ス ト リ ームに使用す る べ き 単一の キーに対す る 128 ビ ッ ト 暗号化ブ ロ ッ ク の数 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 153 付録 A : デバイ ス コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム設定 表 A‐2 : UltraScale ビ ッ ト ス ト リ ーム設定 (続き) 設定 デ フ ォル ト 値 有効な値 説明 BITSTREAM.ENCRYPTION. RSAKEYLIFEFRAMES 8 8~ 2147483647 RSA 公開キー認証を指定する 場合に、 該当する AES-256 キーに使用する べき コ ン フ ィ ギ ュ レーシ ョ ン フ レーム数 を指定 し ます。 コ ン フ ィ ギ ュ レーシ ョ ン フ レーム値に 8 を指定する のは、 246 の暗号化ブ ロ ッ ク のキーを使用す る の と 同 じ こ と です。 BITSTREAM.ENCRYPTION. OBFUSCATEKEY Disable Enable、 Disable AES キーが読み出 し 保護 さ れていないので、 キーが読み 出 さ れ る と 、 実際のキー値ではな く 、 キーの CRC ハ ッ シ ュ が戻 さ れます。 BITSTREAM.ENCRYPTION. RSAKEYLIFEFRAMES 8 8 RSA 認証ビ ッ ト ス ト リ ームに使用する べき 単一のキーに 対する コ ン フ ィ ギ ュ レーシ ョ ン フ レーム数 BITSTREAM.ENCRYPTION. STARTIVO 最初の AES-GCM メ ッ セージで初期 GCM カ ウ ン ト 値を指 定する のに使用 さ れ る 初期化ベ ク タ ーで、 32 ビ ッ ト の 16 進数値です。 BITSTREAM.ENCRYPTION. STARTIVOBFUSCATE 難読初期化ベ ク タ ー値 (Obfuscate IV0) を開始 し ます。 BITSTREAM.GENERAL. COMPRESS False True、 False ビ ッ ト ス ト リ ームの複数フ レーム書き 込み機能を使用 し 、 ビ ッ ト ス ト リ ーム フ ァ イ ル (.bit) フ ァ イ ルだけでな く 、 ビ ッ ト ス ト リ ーム自体のサ イ ズ も 縮小 し ます。 こ のオプ シ ョ ン を使用 し て も 、 ビ ッ ト ス ト リ ームのサ イ ズが縮小 する と は限 り ません。 BITSTREAM.GENERAL. CRC Enable Enable、 Disable ビ ッ ト ス ト リ ームの巡回冗長検査 (CRC) 値の生成を制御 し ます。 Enable に設定す る と 、 ビ ッ ト ス ト リ ームの内容に 基づいて固有の CRC 値が算出 さ れます。 算出 さ れた CRC 値がビ ッ ト ス ト リ ームの CRC 値 と 一致 し ない場合は、 デ バ イ ス は コ ン フ ィ ギ ュ レーシ ョ ン さ れません。 CRC が デ ィ ス エーブルの場合、 CRC 値の代わ り に定数値がビ ッ ト ス ト リ ームに挿入 さ れ、 デバ イ ス で CRC 値は算出 さ れ ません。 BITSTREAM.GENERAL. DEBUGBITSTREAM No No、 Yes デバ ッ グ ビ ッ ト ス ト リ ーム を生成 し ます。 デバ ッ グ ビ ッ ト ス ト リ ームのサ イ ズは、 標準のビ ッ ト ス ト リ ーム よ り も かな り 大き く な り ます。 こ のオプシ ョ ンは、 マ ス タ ー お よ びス レーブ シ リ アル コ ン フ ィ ギ ュ レーシ ョ ンでのみ 使用で き ます。 バ ウ ン ダ リ ス キ ャ ンお よ びス レーブ パ ラ レル/SelectMAP では使用で き ません。 デバ ッ グ ビ ッ ト ス ト リ ームには、 標準ビ ッ ト ス ト リ ームに加え、 次の機能 があ り ます。 • 同期化ワ ー ド の後に LOUT レ ジ ス タ に 32 個の 0 を書 き 込みます。 • 各フ レーム を個別に読み込みます。 • 各フ レーム後に巡回冗長検査 (CRC) を実行 し ます。 • 各フ レーム後に フ レーム ア ド レ ス を LOUT レ ジ ス タ に 書き 込みます。 BITSTREAM.GENERAL. DISABLE_JTAG No No、 Yes コ ン フ ィ ギ ュ レーシ ョ ン後に JTAG を介 し たバ ウ ン ダ リ ス キ ャ ン (BSCAN) ブ ロ ッ ク へのア ク セ ス をデ ィ ス エーブル に し ます。 BITSTREAM.GENERAL. JTAG_SYSMON Enable Enable、 Disable、 StatusOnly SYSMON への JTAG 接続を イ ネーブルま たはデ ィ ス エー ブルに し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 154 付録 A : デバイ ス コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム設定 表 A‐2 : UltraScale ビ ッ ト ス ト リ ーム設定 (続き) 設定 デ フ ォル ト 値 有効な値 説明 BITSTREAM.GENERAL. SYSMONPOWERDOWN Disable Disable、 Enable SYSMON をパ ワーダ ウ ンで き る よ う に し て節電 し ます。 SYSMON を永久にパ ワ ーダ ウ ンする 場合にのみ推奨 さ れ ます。 BITSTREAM.READBACK. ACTIVERECONFIG No No、 Yes コ ン フ ィ ギ ュ レーシ ョ ン中に GHIGH お よ び GSR がアサー ト さ れない よ う に し ます。 こ れは、 ア ク テ ィ ブ パーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン向上機能に必要です。 BITSTREAM.READBACK. ICAP_SELECT Auto Auto、 Top、 Bottom 上ま たは下の ICAP ポー ト を選択 し ます。 BITSTREAM.READBACK. READBACK False True、 False 必要な リ ー ド バ ッ ク フ ァ イ ルを作成 し て リ ー ド バ ッ ク 機 能を実行 し ます。 BITSTREAM.READBACK. SECURITY None None、 Level1、 Level2 リ ー ド バ ッ ク お よ び リ コ ン フ ィ ギ ュ レーシ ョ ン をデ ィ ス エーブルにする か ど う か を指定 し ます。 注記 : Level1 に設定す る と リ ー ド バ ッ ク がデ ィ ス エーブル にな り 、 Level2 に設定す る と リ ー ド バ ッ ク と リ コ ン フ ィ ギ ュ レーシ ョ ンがデ ィ ス エーブルにな り ます。 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 バ ッ フ ァ ーへの内部 ト ラ イ ス テー ト 制御を解放す る ス タ ー ト ア ッ プ フ ェーズ を選択 し ます。 BITSTREAM.STARTUP. GWE_CYCLE 6 6、 1、 2、 3、 4、 5、 Done、 Keep フ リ ッ プ フ ロ ッ プ、 LUT RAM、 お よ びシ フ ト レ ジ ス タ へ の内部 イ ネーブルを アサー ト す る ス タ ー ト ア ッ プ フ ェー ズ を選択 し ます。 BRAM も イ ネーブルに し ます。 こ の ス タ ー ト ア ッ プ フ ェーズの前は、 ブ ロ ッ ク RAM の書き 込み お よ び読み出 し の両方がデ ィ ス エーブルです。 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 マ ッ チは MATCH_CYCLE では開始 し ません。 ス タ ー ト ア ッ プ シーケ ン ス は DCI が一致す る ま で こ のサ イ ク ル で待機 し ます。 DCI が一致す る のにかか る 時間には さ ま ざ ま要素が影響する ので、 ス タ ー ト ア ッ プ シーケ ン ス が完 了する のに必要な CCLK サ イ ク ル数は、 同 じ シ ス テ ムで も 異な る 場合があ り ます。 DONE が High にな る ま で コ ン フ ィ ギ ュ レーシ ョ ン ソ リ ュ ーシ ョ ンで CCLK を駆動する のが理想的です。 注記 : Auto に設定す る と 、 write_bitstream に よ り デザ イ ン で DCI I/O 規格が検索 さ れます。 DCI 規格が存在す る 場合 は BITSTREAM.STARTUP.MATCH_CYCLE=2 が、 存在 し ない場合は BITSTREAM.STARTUP.MATCH_CYCLE=NoWait が使用 さ れます。 a. 専用 コ ン フ ィ ギ ュ レーシ ョ ン ピ ンの場合は、 デフ ォ ル ト の ビ ッ ト ス ト リ ーム設定を使用す る こ と をお勧め し ます。 . Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 155 付録 B ト リ ガー ス テー ト マ シ ンの言語記述 ト リ ガー ス テー ト マシ ン言語は、ILA デバ ッ グ コ アのア ド バン ス ト リ ガー ロ ジ ッ ク にマ ッ プ さ れ る 複雑な ト リ ガー 条件を記述す る ために使用 さ れます。 ト リ ガー ス テー ト マシ ンには、 次の よ う な機能があ り ます。 • 最大 16 ま での ス テー ト • 複雑な ス テー ト ト ラ ンザ ク シ ョ ンに 1 ~ 3 方向条件分岐を使用 • イ ベン ト のカ ウ ン ト 、 タ イ マーの イ ンプ リ メ ン ト な ど に 4 つのビル ト イ ン 16 ビ ッ ト カ ウ ン タ ーを使用 • ト リ ガー ス テー ト マシ ンの実行ス テー タ ス を監視す る ために 4 つのビル ト イ ン フ ラ グ を使用 • ト リ ガー ア ク シ ョ ン ス テー ト ス テー ト マシ ン プ ロ グ ラ ム では最大 16 ス テー ト ま で を宣言で き ます。 各ス テー ト は、 ス テー ト 宣言 と 本文で構成 さ れます。 state <state_name>: <state_body> goto ア ク シ ョ ン ス テー ト 間の ト ラ ンザ ク シ ョ ンには goto ア ク シ ョ ンが使用 さ れます。次は、goto ア ク シ ョ ン を使用 し て、 ト リ ガー 前に 1 つの ス テー ト か ら 別の ス テー ト への遷移す る 例です。 state my_state_0: goto my_state_1; state my_state_1: trigger; 条件分岐 ト リ ガー ス テー ト マシ ン言語では、 ス テー ト ご と に 1 ~ 3 方向の条件分岐がサポー ト さ れます。 • 1 方向分岐では、 if/elseif/else/endif 構文は使用 さ れず、 goto ア ク シ ョ ンが使用 さ れます。 state my_state_0: goto my_state_1; • 2 方向分岐では、 goto ア ク シ ョ ン と 共に if/else/endif 構文 も 使用 さ れます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 156 付録 B : ト リ ガー ス テー ト マシ ンの言語記述 state my_state_0: if (<condition1>) then goto my_state_1; else goto my_state_0; endif • 3 方向分岐では、 goto ア ク シ ョ ン と 共に if/else/elseif/endif 構文 も 使用 さ れます。 state my_state_0: if (<condition1>) then goto my_state_1; elseif (<condition2>) then goto my_state_2; else goto my_state_0; endif 上記に <condition1> お よ び <condition2> で示 さ れてい る 条件文の作成方法は、 158 ページの 「条件文」 を参照 し て く だ さ い。 カ ウン タ ー 4 つの ビル ト イ ン 16 ビ ッ ト カ ウ ン タ ーには、 それぞれ $counter0、 $counter1、 $counter2、 $counter3 と い う 名前が付いてい ます。 カ ウ ン タ ーは、 条件文内で リ セ ッ ト 、 イ ン ク リ メ ン ト 、 使用で き ます。 • カ ウ ン タ ーを リ セ ッ ト す る には、 reset_counter ア ク シ ョ ン を使用 し ます。 state my_state_0: reset_counter $counter0; goto my_state_1; • カ ウ ン タ ーを イ ン ク リ メ ン ト す る には、 increment_counter ア ク シ ョ ン を使用 し ます。 state my_state_0: increment_counter $counter3; goto my_state_1; 条件文内でのカ ウ ン タ ーの使用方法の詳細は、 158 ページの 「条件文」 を参照 し て く だ さ い。 フ ラグ フ ラ グは、 ト リ ガー ス テー ト マシ ン プ ロ グ ラ ムが実行 さ れてい る と き の進捗状況を監視する ために使用で き ます。 4 つのビル ト イ ン フ ラ グの名前は、 それぞれ $flag0、 $flag1、 $flag2、 $flag3 です。 フ ラ グは、 設定お よ び ク リ アで き ます。 • フ ラ グ を設定す る には、 set_flag ア ク シ ョ ン を使用 し ます。 state my_state_0: set_flag $flag0; goto my_state_1; • フ ラ グ を ク リ アす る には、 clear_flag ア ク シ ョ ン を使用 し ます。 state my_state_0: clear_flag $flag2; Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 157 付録 B : ト リ ガー ス テー ト マシ ンの言語記述 goto my_state_1; 条件文 デバ ッ グ プ ローブの条件 デバ ッ グ プ ロ ーブの条件は、 2 方向お よ び 3 方向の分岐条件文内で使用で き ます。 各デバ ッ グ プ ロ ーブ条件では、 そ のデバ ッ グ プ ロ ーブが接続 さ れた ILA の PROBE ポー ト の 1 つの ト リ ガー コ ンパレー タ が使用 さ れます。 重要 : 各 PROBE ポー ト は、1 ~ 4 つの ト リ ガー コ ンパレー タ を含めて コ ンパ イ ル時に コ ン フ ィ ギ ュ レーシ ョ ン で き ま す。 つま り 、 特定のデバ ッ グ プ ロ ーブは、 PROBE ポー ト の コ ンパレー タ 数に よ っ て、 ト リ ガー ス テー ト マシ ン プ ロ グ ラ ム全体においてデバ ッ グ プ ロ ーブ条件文で 1 ~ 4 回 ま で し か使用で き ません。 ま た、 デバ ッ グ プ ロ ーブが ILA コ アの PROBE ポー ト をほかのデバ ッ グ プ ロ ーブ と 共有する 場合、 各デバ ッ グ プ ロ ーブ条件に よ り 1 つの PROBE コ ンパレー タ が使用 さ れ る と カ ウ ン ト さ れます。 デバ ッ グ プ ロ ーブ条件には、比較演算子 と 値が含まれます。有効なデバ ッ グ プ ロ ーブ条件の比較演算子は次の と お り です。 • == (等価) • != (不等価) • > (大な り ) • < (小な り ) • >= (以上) • <= (以下) 有効な値は、 次の形式にな り ます。 <bit_width>'<radix><value> 説明 : • <bit width> : プ ロ ーブ幅 (ビ ッ ト ) • <radix> : 次のいずれかにな り ます。 • ° b (2 進数) ° h (16 進数) ° u (符号な し 10 進数) <value> : 次のいずれかにな り ます。 ° 0 (論理 0) ° 1 (論理 1) ° X ( ド ン ト ケ ア) ° R (0 か ら 1への遷移) - 1 ビ ッ ト プ ロ ーブの場合にのみ有効 ° F (1 か ら 0 への遷移) - 1 ビ ッ ト プ ロ ーブの場合にのみ有効 ° B (両遷移) - 1 ビ ッ ト プ ロ ーブの場合にのみ有効 ° N (遷移な し ) - 1 ビ ッ ト プ ロ ーブの場合にのみ有効 有効なデバ ッ グ プ ロ ーブ条件値の例を次に示 し ます。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 158 付録 B : ト リ ガー ス テー ト マシ ンの言語記述 • 1 ビ ッ ト の 2 進数値 0 1'b0 • 12 ビ ッ ト の 16 進数値 7A 12'h07A • 9 ビ ッ ト の整数値 123 9'u123 デバ ッ グ プ ロ ーブ条件文の例を次に示 し ます。 • 値が 0 の abc と い う 1 ビ ッ ト デバ ッ グ プ ロ ーブ if (abc == 1'b0) then • 値が 456 以上の xyz と い う 23 ビ ッ ト デバ ッ グ プ ロ ーブ if (xyz >= 23'u456) then • 値が 16 進数 A5 ではない klm と い う 23 ビ ッ ト デバ ッ グ プ ロ ーブ if (klm != 23'h0000A5) then 複数のデバ ッ グ プ ロ ーブ条件文の例を次に示 し ます。 • 2 つのデバ ッ グ プ ロ ーブの比較を OR 関数で組み合わせ if ((xyz >= 23'u456) || (abc == 1'b0)) then • 2 つのデバ ッ グ プ ロ ーブの比較を AND 関数で組み合わせ if ((xyz >= 23'u456) && (abc == 1'b0)) then • 3 つのデバ ッ グ プ ロ ーブの比較を OR 関数で組み合わせ if ((xyz >= 23'u456) || (abc == 1'b0) || (klm != 23'h0000A5)) then • 3 つのデバ ッ グ プ ロ ーブの比較を AND 関数で組み合わせ if ((xyz >= 23'u456) && (abc == 1'b0) && (klm != 23'h0000A5)) then カ ウン タ ー条件 カ ウ ン タ ー条件は、 2 方向お よ び 3 方向の分岐条件文内で使用で き ます。 各カ ウ ン タ ー条件で 1 つのカ ウ ン タ ー コ ン パレー タ が使用 さ れます。 重要 : 各カ ウ ン タ ーに含 ま れ る カ ウ ン タ ー コ ンパ レ ー タ は 1 つのみです。 つま り 、 特定の カ ウ ン タ ーは ト リ ガー ス テー ト マシ ン プ ロ グ ラ ム全体において カ ウ ン タ ー条件内で 1 回 し か使用で き ません。 プ ロ ーブ ポー ト 条件には、 比較演算子 と 値が含まれます。 有効なプ ロ ーブ条件の比較演算子は次の と お り です。 • == (等価) • != (不等価) 重要 : 各カ ウ ン タ ーの幅は常に 16 ビ ッ ト です。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 159 付録 B : ト リ ガー ス テー ト マシ ンの言語記述 有効な カ ウ ン タ ー条件値の例を次に示 し ます。 • 16 ビ ッ ト の 2 進数値 0 16'b0000_0000_0000_0000 16'b0000000000000000 • 16 ビ ッ ト の 16 進数値 7A 16'h007A • 16 ビ ッ ト の整数値 123 16'u123 カ ウ ン タ ー条件文の例を次に示 し ます。 • 2 進数 0 に等 し いカ ウ ン タ ー $counter0 ($counter0 == 16'b0000000000000000) • 10 進数 23 でないカ ウ ン タ ー $counter2 ($counter2 != 16'u23) デバ ッ グ プ ローブ と カ ウ ン タ ー条件の組み合わせ デバ ッ グ プ ロ ーブ条件 と カ ウ ン タ ー条件を組み合わせて、 1 つの条件を作成す る こ と がで き ます。 こ の場合、 次の規 則に従 う 必要があ り ます。 • すべてのデバ ッ グ プ ロ ーブ比較を同 じ || (OR) ま たは && (AND) 演算子を使用 し て組み合わせ る 必要があ り ま す。 • 組み合わ さ れたデバ ッ グ プ ロ ーブ条件は、 デバ ッ グ プ ロ ーブ比較を組み合わせ る のに使用 し た演算子に関係な く 、 || (OR) ま たは && 演算子のいずれか を使用 し て カ ウ ン タ ー条件 と 組み合わせ る こ と がで き ます。 複数のデバ ッ グ プ ロ ーブ と カ ウ ン タ ー条件文を組み合わせた例を次に示 し ます。 • 2 つのデバ ッ グ プ ロ ーブ比較を OR で組み合わせてか ら 、 AND を使用 し て カ ウ ン タ ー条件 と 組み合わせる 場合 if (((xyz >= 23'u456) || (abc == 1'b0)) && ($counter0 == 16'u0023)) then • 2 つのデバ ッ グ プ ロ ーブ比較を AND で組み合わせてか ら 、 OR を使用 し て カ ウ ン タ ー条件 と 組み合わせる 場合 if (((xyz >= 23'u456) && (abc == 1'b0)) || ($counter0 == 16'u0023)) then • 3 つのデバ ッ グ プ ロ ーブ比較を OR で組み合わせてか ら 、 AND を使用 し て カ ウ ン タ ー条件 と 組み合わせる 場合 if (((xyz >= 23'u456) || (abc == 1'b0) || (klm != 23'h0000A5)) && ($counter0 == 16'u0023)) then • 3 つのデバ ッ グ プ ロ ーブ比較を AND で組み合わせてか ら 、 OR を使用 し て カ ウ ン タ ー条件 と 組み合わせる 場合 if (((xyz >= 23'u456) && (abc == 1'b0) && (klm != 23'h0000A5)) || ($counter0 == 16'u0023)) then ト リ ガー ス テー ト マ シ ンの言語文法 注記 : • 大文字/小文字が区別 さ れます。 • コ メ ン ト 文字は # で、 # 文字の後に含まれ る も のは無視 さ れます。 • 'THING' : THING は終端 • {<thing>} : 0 以上の thing • [<thing>] : 0 ま たは 1 つの thing Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 160 付録 B : ト リ ガー ス テー ト マシ ンの言語記述 <program> ::= <state_list> <state_list> ::= <state_list> <state> | <state> <state> ::= 'STATE' <state_label> ':'<if_condition> | <action_block> <action_block> ::= <action_list> 'GOTO' <state_label> ';' | <action_list> 'TRIGGER' ';' | 'GOTO' <state_label> ';' | 'TRIGGER' ';' <action_list> ::= <action_statement> | <action_list> <action_statement> <action_statement> ::= 'SET_FLAG' <flag_name> ';' | 'CLEAR_FLAG' <flag_name> ';' | 'INCREMENT_COUNTER' <counter_name> ';' | 'RESET_COUNTER' <counter_name> ';' <if_condition> ::= 'IF' '(' <condition> ')' 'THEN' <actionblock> ['ELSEIF' '(' <condition> ')' 'THEN' <actionblock>] 'ELSE' <actionblock> 'ENDIF' <condition> ::= <probe_match_list> | <counter_match> | <probe_counter_match> <probe_counter_match> ::= '(' <probe_counter_match> ')' | <probe_match_list> <boolean_logic_op> <counter_match> | <counter_match> <boolean_logic_op> <probe_match_list> <probe_match_list> ::= '(' <probe_match> ')' | <probe_match> <probe_match> ::= <probe_match_list> <boolean_logic_op> <probe_match_list> | <probe_name> <compare_op> <constant> | <constant> <compare_op> <probe_name> <counter_match> ::= '(' <counter_match> ')' | <counter_name> <compare_op> <constant> | <constant> <compare_op> <counter_name> <constant> ::= <integer_constant> | <hex_constant> | <binary_constant> <compare_op> ::= '==' | '!=' | '>' | '>=' | '<' | '<=' <boolean_logic_op> ::= '&&' | '||' --- The following are in regular expression format to simplify expressions: --- [A-Z0-9] means match any single character in AB...Z,0..9 --- [AB]+ means match [AB] one or more times like A, AB, ABAB, AAA, etc --- [AB]* means match [AB] zero or more times <probe_name> ::= [A-Z_\[\]<>/][A-Z_0-9\[\]<>/]+ <state_label> ::= [A-Z_][A-Z_0-9]+ Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 161 付録 B : ト リ ガー ス テー ト マシ ンの言語記述 <flag_name> <counter_name> <hex_constant> <binary_constant> <integer_constant> <integer> <hex_digit> <binary_digit> <digit> Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 ::= ::= ::= ::= ::= ::= ::= ::= ::= \$FLAG[0-3] \$COUNTER[0-3] <integer>*'h<hex_digit>+ <integer>*'b<binary_digit>+ <integer>*'u<integer_digit>+ <digit>+ [0-9ABCDEFBN_] [01XRFBN_] [0-9] japan.xilinx.com 162 付録 C コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ のサポー ト こ のセ ク シ ョ ンでは、 Vivado® ツールでサポー ト さ れ る さ ま ざ ま な フ ラ ッ シ ュ メ モ リ デバ イ ス を示 し ます。 こ のセ ク シ ョ ンは、 ザ イ リ ン ク ス デバ イ ス、 イ ン タ ーフ ェ イ ス、 製造業者、 フ ラ ッ シ ュ デバ イ ス、 集積度、 お よ びデー タ 幅 に応 じ て、 アプ リ ケーシ ョ ンに適 し た コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イ ス を選択す る のにご利用 く だ さ い。 Artix‐7 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバイ ス Artix®-7 デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ンにサポー ト さ れ る フ ラ ッ シ ュ デバ イ ス で、 Vivado ツールで消去、 ブ ラ ン ク チ ェ ッ ク 、 プ ロ グ ラ ム、 お よ び検証可能な も のを表 C-1 に示 し ます。 表 C‐1 : Artix‐7 デバイ ス コ ン フ ィ ギ ュ レーシ ョ ンにサポー ト さ れる フ ラ ッ シ ュ メ モ リ デバイ ス イ ン ターフ ェ イス 製造業者 製造業者 フ ァ ミ リ 集積度 (Mb) デバイ ス (エ イ リ ア ス) デー タ 幅 (ビ ッ ト ) BPI Micron g18 28f128g18f 128 x16 BPI Micron g18 mt28gu256aax1e [28f256g18f] 256 x16 BPI Micron g18 mt28gu512aax1e [28f512g18f] 512 x16 BPI Micron g18 mt28gu01gaax1e [28f00ag18f} 1024 x16 BPI Micron m29ew 28f064m29ewb 64 x16、 x8 BPI Micron m29ew 28f064m29ewh 64 x16、 x8 BPI Micron m29ew 28f064m29ewl 64 x16、 x8 BPI Micron m29ew 28f064m29ewt 64 x16、 x8 BPI Micron m29ew 28f128m29ew 128 x16、 x8 BPI Micron m29ew 28f256m29ew 256 x16、 x8 BPI Micron m29ew 28f512m29ew 512 x16、 x8 BPI Micron m29ew 28f00am29ew 1024 x16、 x8 BPI Micron m29ew 28f00bm29ew 2048 x16、 x8 BPI Micron p30 28f640p30b 64 x16 BPI Micron p30 28f640p30t 64 x16 BPI Micron p30 28f128p30b 128 x16 BPI Micron p30 28f128p30t 128 x16 BPI Micron p30 28f256p30b 256 x16 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 163 付録 C : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ のサポー ト 表 C‐1 : Artix‐7 デバイ ス コ ン フ ィ ギ ュ レーシ ョ ンにサポー ト さ れる フ ラ ッ シ ュ メ モ リ デバイ ス イ ン ターフ ェ イス 製造業者 製造業者 フ ァ ミ リ 集積度 (Mb) デバイ ス (エ イ リ ア ス) デー タ 幅 (ビ ッ ト ) BPI Micron p30 28f256p30t 256 x16 BPI Micron p30 28f512p30b 512 x16 BPI Micron p30 28f512p30e 512 x16 BPI Micron p30 28f512p30t 512 x16 BPI Micron p30 28f00ap30b 1024 x16 BPI Micron p30 28f00ap30e 1024 x16 BPI Micron p30 28f00ap30t 1024 x16 BPI Micron p30 28f00bp30e 2048 x16 BPI Spansion s29glxxxp s29gl128p 128 x8、 x16 BPI Spansion s29glxxxp s29gl256p 256 x8、 x16 BPI Spansion s29glxxxp s29gl512p 512 x8、 x16 BPI Spansion s29glxxxp s29gl01gp 1024 x8、 x16 SPI Spansion s29glxxxp s70gl02gp 2048 x16 SPI Spansion s29glxxxs s29gl128s 128 x16 SPI Spansion s29glxxxs s29gl256s 256 x16 SPI Spansion s29glxxxs s29gl512s 512 x16 SPI Spansion s29glxxxs s29gl01gs 1024 x16 SPI Spansion s29glxxxs s70gl02gs 2058 x16 SPI Macronix mx66l mx66l51235f 512 x1、 x2、 x4 SPI Macronix mx66u mx66u51235f 512 x1、 x2、 x4 SPI Micron mt25ql mt25ql512 512 x1、 x2、 x4 SPI Micron mt25ql mt25ql01g 1024 x1、 x2、 x4 SPI Micron mt25ql mt25ql02g 1048 x1、 x2、 x4 SPI Micron mt25qu mt25qu512 512 x1、 x2、 x4 SPI Micron mt25qu mt25qu01g 1024 x1、 x2、 x4 SPI Micron mt25qu mt25qu02g 2048 x1、 x2、 x4 SPI Micron n25q n25q32-1.8v 32 x1、 x2、 x4 SPI Micron n25q n25q32-3.3v 32 x1、 x2、 x4 SPI Micron n25q n25q64-1.8v 64 x1、 x2、 x4 SPI Micron n25q N25Q64-3.3V 64 x1、 x2、 x4 SPI Micron n25q n25q128-1.8v 128 x1、 x2、 x4 SPI Micron n25q n25q128-3.3v 128 x1、 x2、 x4 SPI Micron n25q n25q256-1.8v 256 x1、 x2、 x4 SPI Micron n25q n25q256-3.3v 256 x1、 x2、 x4 SPI Spansion s25fl1 s25fl132k 32 x1、 x2、 x4 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 164 付録 C : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ のサポー ト 表 C‐1 : Artix‐7 デバイ ス コ ン フ ィ ギ ュ レーシ ョ ンにサポー ト さ れる フ ラ ッ シ ュ メ モ リ デバイ ス イ ン ターフ ェ イス 製造業者 製造業者 フ ァ ミ リ 集積度 (Mb) デバイ ス (エ イ リ ア ス) デー タ 幅 (ビ ッ ト ) SPI Spansion s25fl1 s25fl164k 64 x1、 x2、 x4 SPI Spansion s25flxxxp s25fl032p 32 x1、 x2、 x4 SPI Spansion s25flxxxp s25fl064p 64 x1、 x2、 x4 SPI Spansion s25flxxxs s25fl128sxxxxxx0 [s25fl127s] 128 x1、 x2、 x4 SPI Spansion s25flxxxs s25fl128sxxxxxx1 128 x1、 x2、 x4 SPI Spansion s25flxxxs s25fl256sxxxxxx0 256 x1、 x2、 x4 SPI Spansion s25flxxxs s25fl256sxxxxxx1 256 x1、 x2、 x4 SPI Spansion s25flxxxs s25fl512s 512 x1、 x2、 x4 Kintex‐7 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバイ ス Kintex®-7 デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ンにサポー ト さ れ る フ ラ ッ シ ュ デバ イ ス で、 Vivado ツールで消去、 ブ ラ ン ク チ ェ ッ ク 、 プ ロ グ ラ ム、 お よ び検証可能な も のを表 C-2 に示 し ます。 表 C‐2 : Kintex‐7 デバイ ス コ ン フ ィ ギ ュ レーシ ョ ンにサポー ト さ れる フ ラ ッ シ ュ メ モ リ デバイ ス イ ン ターフ ェ イス 製造業者 製造業者 フ ァ ミ リ デバイ ス (エ イ リ ア ス) 集積度 (Mb) デー タ 幅 (ビ ッ ト ) bpi Micron g18 28f128g18f 128 x16 bpi Micron g18 mt28gu256aax1e [28f256g18f] 256 x16 bpi Micron g18 mt28gu512aax1e [28f512g18f] 512 x16 bpi Micron g18 mt28gu01gaax1e [28f00ag18f] 1024 x16 bpi Micron m29ew 28f064m29ewb 64 x16、 x8 bpi Micron m29ew 28f064m29ewh 64 x16、 x8 bpi Micron m29ew 28f064m29ewl 64 x16、 x8 bpi Micron m29ew 28f064m29ewt 64 x16、 x8 bpi Micron m29ew 28f128m29ew 128 x16、 x8 bpi Micron m29ew 28f256m29ew 256 x16、 x8 bpi Micron m29ew 28f512m29ew 512 x16、 x8 bpi Micron m29ew 28f00am29ew 1024 x16、 x8 bpi Micron m29ew 28f00bm29ew 2048 x16、 x8 bpi Micron p30 28f640p30b 64 x16 bpi Micron p30 28f640p30t 64 x16 bpi Micron p30 28f128p30b 128 x16 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 165 付録 C : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ のサポー ト 表 C‐2 : Kintex‐7 デバイ ス コ ン フ ィ ギ ュ レーシ ョ ンにサポー ト さ れる フ ラ ッ シ ュ メ モ リ デバイ ス イ ン ターフ ェ イス 製造業者 製造業者 フ ァ ミ リ デバイ ス (エ イ リ ア ス) 集積度 (Mb) デー タ 幅 (ビ ッ ト ) bpi Micron p30 28f128p30t 128 x16 bpi Micron p30 28f256p30b 256 x16 bpi Micron p30 28f256p30t 256 x16 bpi Micron p30 28f512p30b 512 x16 bpi Micron p30 28f512p30e 512 x16 bpi Micron p30 28f512p30t 512 x16 bpi Micron p30 28f00ap30b 1024 x16 bpi Micron p30 28f00ap30e 1024 x16 bpi Micron p30 28f00ap30t 1024 x16 bpi Micron p30 28f00bp30e 2048 x16 bpi Micron p33 28f640p33b 64 x16 bpi Micron p33 28f640p33t 64 x16 bpi Micron p33 28f128p33b 128 x16 bpi Micron p33 28f128p33t 128 x16 bpi Micron p33 28f256p33b 256 x16 bpi Micron p33 28f256p33t 256 x16 bpi Micron p33 28f512p33b 512 x16 bpi Micron p33 28f512p33e 512 x16 bpi Micron p33 28f512p33t 512 x16 bpi Micron p33 28f00ap33b 1024 x16 bpi Micron p33 28f00ap33e 1024 x16 bpi Micron p33 28f00ap33t 1024 x16 bpi Spansion s29glxxxp s29gl128p 128 x16、 x8 bpi Spansion s29glxxxp s29gl256p 256 x16、 x8 bpi Spansion s29glxxxp s29gl512p 512 x16、 x8 bpi Spansion s29glxxxp s29gl01gp 1024 x16、 x8 bpi Spansion s29glxxxp s70gl02gp 2048 x16 bpi Spansion s29glxxxs s29gl128s 128 x16 bpi Spansion s29glxxxs s29gl256s 256 x16 bpi Spansion s29glxxxs s29gl512s 512 x16 bpi Spansion s29glxxxs s29gl01gs 1024 x16 bpi Spansion s29glxxxs s70gl02gs 2048 x16 spi Macronix mx66l mx66l51235f 512 x1、 x2、 x4 spi Macronix mx66u mx66u51235f 512 x1、 x2、 x4 spi Micron mt25ql mt25ql512 512 x1、 x2、 x4 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 166 付録 C : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ のサポー ト 表 C‐2 : Kintex‐7 デバイ ス コ ン フ ィ ギ ュ レーシ ョ ンにサポー ト さ れる フ ラ ッ シ ュ メ モ リ デバイ ス イ ン ターフ ェ イス 製造業者 製造業者 フ ァ ミ リ デバイ ス (エ イ リ ア ス) 集積度 (Mb) デー タ 幅 (ビ ッ ト ) spi Micron mt25ql mt25ql01g 1024 x1、 x2、 x4 spi Micron mt25ql mt25ql02g 2048 x1、 x2、 x4 spi Micron mt25qu mt25qu512 512 x1、 x2、 x4 spi Micron mt25qu mt25qu01g 1024 x1、 x2、 x4 spi Micron mt25qu mt25qu02g 2048 x1、 x2、 x4 spi Micron n25q n25q32-1.8v 32 x1、 x2、 x4 spi Micron n25q n25q32-3.3v 32 x1、 x2、 x4 spi Micron n25q n25q64-1.8v 64 x1、 x2、 x4 spi Micron n25q n25q64-3.3v 64 x1、 x2、 x4 spi Micron n25q n25q128-1.8v 128 x1、 x2、 x4 spi Micron n25q n25q128-3.3v 128 x1、 x2、 x4 spi Micron n25q n25q256-1.8v 256 x1、 x2、 x4 spi Micron n25q n25q256-3.3v 256 x1、 x2、 x4 SPI Spansion s25fl1 s25fl132k 32 x1、 x2、 x4 SPI Spansion s25fl1 s25fl164k 64 x1、 x2、 x4 SPI Spansion s25flxxxp s25fl032p 32 x1、 x2、 x4 SPI Spansion s25flxxxp s25fl064p 64 x1、 x2、 x4 SPI Spansion s25flxxxs s25fl128sxxxxxx0 [s25fl127s] 128 x1、 x2、 x4 SPI Spansion s25flxxxs s25fl128sxxxxxx1 128 x1、 x2、 x4 SPI Spansion s25flxxxs s25fl256sxxxxxx0 256 x1、 x2、 x4 SPI Spansion s25flxxxs s25fl256sxxxxxx1 256 x1、 x2、 x4 SPI Spansion s25flxxxs s25fl512s 512 x1、 x2、 x4 Virtex‐7 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバイ ス Virtex®-7 デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ンにサポー ト さ れ る フ ラ ッ シ ュ デバ イ ス で、 Vivado ツールで消去、 ブ ラ ン ク チ ェ ッ ク 、 プ ロ グ ラ ム、 お よ び検証可能な も のを表 C-3 に示 し ます。 表 C‐3 : Virtex‐7 デバイ ス コ ン フ ィ ギ ュ レーシ ョ ンにサポー ト さ れる フ ラ ッ シ ュ メ モ リ デバイ ス イ ン ターフ ェ イス 製造業者 製造業者 フ ァ ミ リ デバイ ス (エ イ リ ア ス) 集積度 (Mb) デー タ 幅 (ビ ッ ト ) bpi Micron g18 28f128g18f 128 x16 bpi Micron g18 m t 2 8 g u 2 5 6 a a x 1 e 256 [28f256g18f] x16 bpi Micron g18 m t 2 8 g u 5 1 2 a a x 1 e 512 [28f512g18f] x16 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 167 付録 C : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ のサポー ト 表 C‐3 : Virtex‐7 デバイ ス コ ン フ ィ ギ ュ レーシ ョ ンにサポー ト さ れる フ ラ ッ シ ュ メ モ リ デバイ ス イ ン ターフ ェ イス 製造業者 製造業者 フ ァ ミ リ デバイ ス (エ イ リ ア ス) 集積度 (Mb) デー タ 幅 (ビ ッ ト ) bpi Micron g18 m t 2 8 g u 0 1 g a a x 1 e 1024 [28f00ag18f] x16 bpi Micron m29ew 28f064m29ewb 64 x16、 x8 bpi Micron m29ew 28f064m29ewh 64 x16、 x8 bpi Micron m29ew 28f064m29ewl 64 x16、 x8 bpi Micron m29ew 28f064m29ewt 64 x16、 x8 bpi Micron m29ew 28f128m29ew 128 x16、 x8 bpi Micron m29ew 28f256m29ew 256 x16、 x8 bpi Micron m29ew 28f512m29ew 512 x16、 x8 bpi Micron m29ew 28f00am29ew 1024 x16、 x8 bpi Micron m29ew 28f00bm29ew 2048 x16、 x8 bpi Micron p30 28f640p30b 64 x16 bpi Micron p30 28f640p30t 64 x16 bpi Micron p30 28f128p30b 128 x16 bpi Micron p30 28f128p30t 128 x16 bpi Micron p30 28f256p30b 256 x16 bpi Micron p30 28f256p30t 256 x16 bpi Micron p30 28f512p30b 512 x16 bpi Micron p30 28f512p30e 512 x16 bpi Micron p30 28f512p30t 512 x16 bpi Micron p30 28f00ap30b 1024 x16 bpi Micron p30 28f00ap30e 1024 x16 bpi Micron p30 28f00ap30t 1024 x16 bpi Micron p30 28f00bp30e 2048 x16 bpi Spansion s29glxxxp s29gl128p 128 x16、 x8 bpi Spansion s29glxxxp s29gl256p 256 x16、 x8 bpi Spansion s29glxxxp s29gl512p 512 x16、 x8 bpi Spansion s29glxxxp s29gl01gp 1024 x16、 x8 bpi Spansion s29glxxxs s29gl128s 128 x16 bpi Spansion s29glxxxs s29gl256s 256 x16 bpi Spansion s29glxxxs s29gl512s 512 x16 bpi Spansion s29glxxxs s29gl01gs 1024 x16 bpi Spansion s29glxxxs s70gl02gs 2048 x16 spi Macronix mx66u mx66u51235f 512 x1、 x2、 x4 spi Micron mt25qu mt25qu512 512 x1、 x2、 x4 spi Micron mt25qu mt25qu01g 1024 x1、 x2、 x4 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 168 付録 C : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ のサポー ト 表 C‐3 : Virtex‐7 デバイ ス コ ン フ ィ ギ ュ レーシ ョ ンにサポー ト さ れる フ ラ ッ シ ュ メ モ リ デバイ ス イ ン ターフ ェ イス 製造業者 製造業者 フ ァ ミ リ デバイ ス (エ イ リ ア ス) 集積度 (Mb) デー タ 幅 (ビ ッ ト ) spi Micron mt25qu mt25qu02g 2048 x1、 x2、 x4 spi Micron n25q n25q32-1.8v 32 x1、 x2、 x4 spi Micron n25q n25q64-1.8v 64 x1、 x2、 x4 spi Micron n25q n25q128-1.8v 128 x1、 x2、 x4 spi Micron n25q n25q256-1.8v 256 x1、 x2、 x4 spi Spansion s25flxxxs s25fl128sxxxxxx0 [s25fl127s] 128 x1、 x2、 x4 spi Spansion s25flxxxs s25fl128sxxxxxx1 128 x1、 x2、 x4 spi Spansion s25flxxxs s25fl256sxxxxxx0 256 x1、 x2、 x4 spi Spansion s25flxxxs s25fl256sxxxxxx1 256 x1、 x2、 x4 spi Spansion s25flxxxs s25fl512s 512 x1、 x2、 x4 Kintex UltraScale コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デ バイ ス Kintex® UltraScale™ デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ンにサポー ト さ れ る フ ラ ッ シ ュ デバ イ ス で、Vivado ツールで消 去、 ブ ラ ン ク チ ェ ッ ク 、 プ ロ グ ラ ム、 お よ び検証可能な も のを表 C-4 に示 し ます。 表 C‐4 : Kintex UltraScale デバイ ス コ ン フ ィ ギ ュ レーシ ョ ン にサポー ト さ れる フ ラ ッ シ ュ メ モ リ デバイ ス イ ン ターフ ェ イス 製造業者 製造業者 フ ァ ミ リ デバイ ス (エ イ リ ア ス) 集積度 (Mb) デー タ 幅 (ビ ッ ト ) bpi Micron g18 28f128g18f 128 x16 bpi Micron g18 mt28gu256aax1e [28f256g18f] 256 x16 bpi Micron g18 mt28gu512aax1e [28f512g18f] 512 x16 bpi Micron g18 mt28gu01gaax1e [28f00ag18f] 1024 x16 bpi Micron m29ew 28f064m29ewb 64 x16、 x8 bpi Micron m29ew 28f064m29ewh 64 x16、 x8 bpi Micron m29ew 28f064m29ewl 64 x16、 x8 bpi Micron m29ew 28f064m29ewt 64 x16、 x8 bpi Micron m29ew 28f128m29ew 128 x16、 x8 bpi Micron m29ew 28f256m29ew 256 x16、 x8 bpi Micron m29ew 28f512m29ew 512 x16、 x8 bpi Micron m29ew 28f00am29ew 1024 x16、 x8 bpi Micron m29ew 28f00bm29ew 2048 x16、 x8 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 169 付録 C : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ のサポー ト 表 C‐4 : Kintex UltraScale デバイ ス コ ン フ ィ ギ ュ レーシ ョ ン にサポー ト さ れる フ ラ ッ シ ュ メ モ リ デバイ ス イ ン ターフ ェ イス 製造業者 製造業者 フ ァ ミ リ デバイ ス (エ イ リ ア ス) 集積度 (Mb) デー タ 幅 (ビ ッ ト ) bpi Micron p30 28f640p30b 64 x16 bpi Micron p30 28f640p30t 64 x16 bpi Micron p30 28f128p30b 128 x16 bpi Micron p30 28f128p30t 128 x16 bpi Micron p30 28f256p30b 256 x16 bpi Micron p30 28f256p30t 256 x16 bpi Micron p30 28f512p30b 512 x16 bpi Micron p30 28f512p30e 512 x16 bpi Micron p30 28f512p30t 512 x16 bpi Micron p30 28f00ap30b 1024 x16 bpi Micron p30 28f00ap30e 1024 x16 bpi Micron p30 28f00ap30t 1024 x16 bpi Micron p30 28f00bp30e 2048 x16 bpi Micron p33 28f640p33b 64 x16 bpi Micron p33 28f640p33t 64 x16 bpi Micron p33 28f128p33b 128 x16 bpi Micron p33 28f128p33t 128 x16 bpi Micron p33 28f256p33b 256 x16 bpi Micron p33 28f256p33t 256 x16 bpi Micron p33 28f512p33b 512 x16 bpi Micron p33 28f512p33e 512 x16 bpi Micron p33 28f512p33t 512 x16 bpi Micron p33 28f00ap33b 1024 x16 bpi Micron p33 28f00ap33e 1024 x16 bpi Micron p33 28f00ap33t 1024 x16 bpi Spansion s29glxxxp s29gl128p 128 x16、 x8 bpi Spansion s29glxxxp s29gl256p 256 x16、 x8 bpi Spansion s29glxxxp s29gl512p 512 x16、 x8 bpi Spansion s29glxxxp s29gl01gp 1024 x16、 x8 bpi Spansion s29glxxxp s70gl02gp 2048 x16 bpi Spansion s29glxxxs s29gl128s 128 x16 bpi Spansion s29glxxxs s29gl256s 256 x16 bpi Spansion s29glxxxs s29gl512s 512 x16 bpi Spansion s29glxxxs s29gl01gs 1024 x16 bpi Spansion s29glxxxs s70gl02gs 2048 x16 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 170 付録 C : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ のサポー ト 表 C‐4 : Kintex UltraScale デバイ ス コ ン フ ィ ギ ュ レーシ ョ ン にサポー ト さ れる フ ラ ッ シ ュ メ モ リ デバイ ス イ ン ターフ ェ イス 製造業者 製造業者 フ ァ ミ リ デバイ ス (エ イ リ ア ス) 集積度 (Mb) デー タ 幅 (ビ ッ ト ) spi Macronix mx66l mx66l51235f 512 x1、 x2、 x4 spi Macronix mx66u mx66u51235f 512 x1、 x2、 x4 spi Micron mt25ql mt25ql512 512 x1、 x2、 x4、 x8 spi Micron mt25ql mt25ql01g 1024 x1、 x2、 x4、 x8 spi Micron mt25ql mt25ql02g 2048 x1、 x2、 x4、 x8 spi Micron mt25qu mt25qu512 512 x1、 x2、 x4、 x8 spi Micron mt25qu mt25qu01g 1024 x1、 x2、 x4、 x8 spi Micron mt25qu mt25qu02g 2048 x1、 x2、 x4、 x8 spi Micron n25q n25q32-1.8v 32 x1、 x2、 x4 spi Micron n25q n25q32-3.3v 32 x1、 x2、 x4 spi Micron n25q n25q64-1.8v 64 x1、 x2、 x4 spi Micron n25q n25q64-3.3v 64 x1、 x2、 x4 spi Micron n25q n25q128-1.8v 128 x1、 x2、 x4 spi Micron n25q n25q128-3.3v 128 x1、 x2、 x4 spi Micron n25q n25q256-1.8v 256 x1、 x2、 x4、 x8 spi Micron n25q n25q256-3.3v 256 x1、 x2、 x4 spi Spansion s25fl1 s25fl132k 32 x1、 x2、 x4 spi Spansion s25fl1 s25fl164k 64 x1、 x2、 x4 spi Spansion s25flxxxp s25fl032p 32 x1、 x2、 x4 spi Spansion s25flxxxp s25fl064p 64 x1、 x2、 x4 spi Spansion s25flxxxs s 2 5 f l 1 2 8 s x x x x x x 0 128 [s25fl127s] x1、 x2、 x4 spi Spansion s25flxxxs s25fl128sxxxxxx1 128 x1、 x2、 x4 spi Spansion s25flxxxs s25fl256sxxxxxx0 256 x1、 x2、 x4 spi Spansion s25flxxxs s25fl256sxxxxxx1 256 x1、 x2、 x4 spi Spansion s25flxxxs s25fl512s 512 x1、 x2、 x4 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 171 付録 C : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ のサポー ト Virtex UltraScale コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバ イス Virtex® UltraScale™ デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ンにサポー ト さ れ る フ ラ ッ シ ュ デバ イ ス で、 Vivado ツールに よ る 消去、 ブ ラ ン ク チ ェ ッ ク 、 プ ロ グ ラ ム、 お よ び検証可能な も のを表 C-5 に示 し ます。 表 C‐5 : Virtex UltraScale デバイ ス コ ン フ ィ ギ ュ レーシ ョ ンにサポー ト さ れる フ ラ ッ シ ュ メ モ リ デバイ ス イ ン ターフ ェ イス 製造業者 製造業者 フ ァ ミ リ デバイ ス (エ イ リ ア ス) 集積度 (Mb) デー タ 幅 (ビ ッ ト ) bpi Micron g18 28f128g18f 128 x16 bpi Micron g18 m t 2 8 g u 2 5 6 a a x 1 e 256 [28f256g18f] x16 bpi Micron g18 m t 2 8 g u 5 1 2 a a x 1 e 512 [28f512g18f] x16 bpi Micron g18 m t 2 8 g u 0 1 g a a x 1 e 1024 [28f00ag18f] x16 bpi Micron m29ew 28f064m29ewb 64 x16、 x8 bpi Micron m29ew 28f064m29ewh 64 x16、 x8 bpi Micron m29ew 28f064m29ewl 64 x16、 x8 bpi Micron m29ew 28f064m29ewt 64 x16、 x8 bpi Micron m29ew 28f128m29ew 128 x16、 x8 bpi Micron m29ew 28f256m29ew 256 x16、 x8 bpi Micron m29ew 28f512m29ew 512 x16、 x8 bpi Micron m29ew 28f00am29ew 1024 x16、 x8 bpi Micron m29ew 28f00bm29ew 2048 x16、 x8 bpi Micron p30 28f640p30b 64 x16 bpi Micron p30 28f640p30t 64 x16 bpi Micron p30 28f128p30b 128 x16 bpi Micron p30 28f128p30t 128 x16 bpi Micron p30 28f256p30b 256 x16 bpi Micron p30 28f256p30t 256 x16 bpi Micron p30 28f512p30b 512 x16 bpi Micron p30 28f512p30e 512 x16 bpi Micron p30 28f512p30t 512 x16 bpi Micron p30 28f00ap30b 1024 x16 bpi Micron p30 28f00ap30e 1024 x16 bpi Micron p30 28f00ap30t 1024 x16 bpi Micron p30 28f00bp30e 2048 x16 bpi Spansion s29glxxxp s29gl128p 128 x16、 x8 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 172 付録 C : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ のサポー ト 表 C‐5 : Virtex UltraScale デバイ ス コ ン フ ィ ギ ュ レーシ ョ ンにサポー ト さ れる フ ラ ッ シ ュ メ モ リ デバイ ス イ ン ターフ ェ イス 製造業者 製造業者 フ ァ ミ リ デバイ ス (エ イ リ ア ス) 集積度 (Mb) デー タ 幅 (ビ ッ ト ) bpi Spansion s29glxxxp s29gl256p 256 x16、 x8 bpi Spansion s29glxxxp s29gl512p 512 x16、 x8 bpi Spansion s29glxxxp s29gl01gp 1024 x16、 x8 bpi Spansion s29glxxxs s29gl128s 128 x16 bpi Spansion s29glxxxs s29gl256s 256 x16 bpi Spansion s29glxxxs s29gl512s 512 x16 bpi Spansion s29glxxxs s29gl01gs 1024 x16 bpi Spansion s29glxxxs s70gl02gs 2048 x16 spi Macronix mx66u mx66u51235f 512 x1、 x2、 x4 spi Micron mt25qu mt25qu512 512 x1、 x2、 x4、 x8 spi Micron mt25qu mt25qu01g 1024 x1、 x2、 x4、 x8 spi Micron mt25qu mt25qu02g 2048 x1、 x2、 x4、 x8 spi Micron n25q n25q32-1.8v 32 x1、 x2、 x4 spi Micron n25q n25q64-1.8v 64 x1、 x2、 x4 spi Micron n25q n25q128-1.8v 128 x1、 x2、 x4 spi Micron n25q n25q256-1.8v 256 x1、 x2、 x4、 x8 spi Spansion s25flxxxs s 2 5 f l 1 2 8 s x x x x x x 0 128 [s25fl127s] x1、 x2、 x4 spi Spansion s25flxxxs s25fl128sxxxxxx1 128 x1、 x2、 x4 spi Spansion s25flxxxs s25fl256sxxxxxx0 256 x1、 x2、 x4 spi Spansion s25flxxxs s25fl256sxxxxxx1 256 x1、 x2、 x4 spi Spansion s25flxxxs s25fl512s 512 x1、 x2、 x4 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 173 付録 C : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ のサポー ト Zynq‐7000 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ デバイ ス Zynq®-7000 デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ン にサポー ト さ れ る フ ラ ッ シ ュ デバ イ ス で、 Vivado ツールで消去、 ブ ラ ン ク チ ェ ッ ク 、 プ ロ グ ラ ム、 お よ び検証可能な も のを表 C-6 に示 し ます。 表 C‐6 : Zynq‐7000 デバイ ス コ ン フ ィ ギ ュ レーシ ョ ンにサポー ト さ れる フ ラ ッ シ ュ メ モ リ デバイ ス イ ン ターフ ェ イス 製造業者 製造業者 フ ァ ミ リ 集積度 (Mb) デバイ ス デー タ 幅 (ビ ッ ト ) nand Micron m29ew mt29f2g08ab 2048 x8 nand Micron m29ew mt29f2g16ab 2048 x16 nand Spansion s34ml s34ml01g1 1024 x16、 x8 nand Spansion s34ml s34ml02g1 2048 x16、 x8 nor Micron m29ew 28f032m29ewt 32 x8 nor Micron m29ew 28f064m29ewt 64 x8 nor Micron m29ew 28f128m29ewh 128 x8 nor Micron m29ew 28f256m29ewh 256 x8 nor Micron m29ew 28f512m29ewh 512 x8 qspi Micron n25q n25q64 64 x4-single、 x8-dual_parallel qspi Micron n25q n25q128 128 x4-dual_stacked, x4-single, x8-dual_parallel qspi Micron n25q n25q128a 128 x4-dual_stacked, x4-single, x8-dual_parallel qspi Micron n25q n25q256 256 x4-dual_stacked, x4-single, x8-dual_parallel qspi Micron n25q n25q512 512 x4-dual_stacked, x4-single, x8-dual_parallel qspi Micron n25q n25q00a 1024 x4-dual_stacked, x4-single, x8-dual_parallel qspi Spansion s25flxxxp s25fl129p 128 x4-dual_stacked, x4-single, x8-dual_parallel qspi Spansion s25flxxxs s25fl128s-1.8v 128 x4-dual_stacked, x4-single, x8-dual_parallel qspi Spansion s25flxxxs s25fl128s-3.3v 128 x4-dual_stacked, x4-single, x8-dual_parallel Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 174 付録 C : コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ のサポー ト 表 C‐6 : Zynq‐7000 デバイ ス コ ン フ ィ ギ ュ レーシ ョ ンにサポー ト さ れる フ ラ ッ シ ュ メ モ リ デバイ ス イ ン ターフ ェ イス 製造業者 製造業者 フ ァ ミ リ デバイ ス 集積度 (Mb) デー タ 幅 (ビ ッ ト ) qspi Spansion s25flxxxs s25fl256s-1.8v 256 x4-dual_stacked, x4-single, x8-dual_parallel qspi Spansion s25flxxxs s25fl256s-3.3v 256 x4-dual_stacked, x4-single, x8-dual_parallel qspi Spansion s25flxxxs s25fl512s 512 x4-dual_stacked, x4-single, x8-dual_parallel qspi Spansion s70flxxxp s70fl01gs_00 1024 x4-dual_stacked qspi Winbond w25q w25q128 128 x4-dual_stacked, x4-single, x8-dual_parallel Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 175 付録 D その他のソ ースおよび法的通知 ザイ リ ン ク ス リ ソ ース ア ンサー、 資料、 ダ ウ ン ロ ー ド 、 フ ォー ラ ム な ど のサポー ト リ ソ ース は、 次のザ イ リ ン ク ス サポー ト サ イ ト を参照 し て く だ さ い。 ソ リ ュ ーシ ョ ン セ ン タ ー デバ イ ス、 ツール、 IP のサポー ト については、 ザ イ リ ン ク ス ソ リ ュ ーシ ョ ン セ ン タ ーを参照 し て く だ さ い。 ト ピ ッ ク には、 デザ イ ン ア シ ス タ ン ト 、 ア ド バ イ ザ リ 、 ト ラ ブルシ ュ ー ト ヒ ン ト な ど が含まれます。 参考資料 次の資料は、 本書を補足す る ための も のです。 Vivado® Design Suite の資料 1. 『Vivado Design Suite ユーザー ガ イ ド : ロ ジ ッ ク シ ミ ュ レーシ ョ ン』 (UG900) 2. 『Vivado Design Suite ユーザー ガ イ ド : 合成 』 (UG901) 3. 『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ン テーシ ョ ン』 (UG904) 4. 『Vivado Design Suite リ リ ース ノ ー ト 、 イ ン ス ト ールお よ び ラ イ セ ン ス』 (UG973) 5. 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン フ ロ ーの概要』 (UG892) 6. 『Vivado Design Suite ユーザー ガ イ ド : I/O お よ び ク ロ ッ ク プ ラ ン ニ ン グ』 (UG899) 7. 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) 8. 『7 シ リ ーズ FPGA コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG470 : 英語版、 日本語版) 9. 『7 シ リ ーズ FPGA お よ び Zynq-7000 All Programmable SoC XADC デュ アル 12 ビ ッ ト 1MSPS アナ ロ グ-デジ タ ル コ ンバー タ ー ユーザー ガ イ ド 』 (UG480 : 英語版、 日本語版) 10. 『UltraScale アーキ テ ク チ ャ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG570 : 英語版、 日本語版) 11. 『UltraScale アーキ テ ク チ ャ シ ス テ ム モニ タ ー ユーザー ガ イ ド 』 (UG580 : 英語版、 日本語版) 12. 『Xilinx Virtual Cable Running on Zynq-7000 Using the PetaLinux Tools』 (XAPP1251) ザイ リ ン ク ス IP の資料 13. 『LogiCORE IP Virtual Input/Output (VIO) v3.0 製品ガ イ ド 』 (PG159) Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 176 付録 D : その他のソ ースおよび法的通知 14. 『LogiCORE IP IBERT for 7 Series GTX Transceivers 製品ガ イ ド 』 (PG132) 15. 『LogiCORE IP IBERT for 7 Series GTP Transceivers 製品ガ イ ド 』 (PG133) 16. 『LogiCORE IP IBERT for 7 Series GTH Transceivers 製品ガ イ ド 』 (PG152) 17. 『LogiCORE IP Integrated Logic Analyzer 製品ガ イ ド 』 (PG172) 18. 『LogiCORE IP JTAG to AXI Master v1.0 製品ガ イ ド 』 (PG174) ト レーニ ング コ ース ザ イ リ ン ク ス では、本書に含まれ る コ ン セプ ト を説明す る さ ま ざ ま な ト レーニ ン グ コ ースお よ びオン ラ イ ン ビデオを 提供 し てい ます。 次の リ ン ク か ら 関連す る ト レーニ ン グ リ ソ ース を参照 し て く だ さ い。 1. Vivado Design Suite 入門 ワー ク シ ョ ッ プ ト レーニ ン グ コ ース 2. Vivado デザ イ ン ツール フ ロ ー ト レーニ ン グ コ ース 3. Vivado での FPGA 設計導入 ト レーニ ン グ コ ース 4. Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado IP イ ン テ グ レー タ ーを使用 し たデザ イ ン 5. Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado IP イ ン テ グ レー タ ーを使用 し た Zynq デバ イ ス の設計 6. Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado でパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ン を実行 7. Vivado Design Suite ビデオ チ ュ ー ト リ アル : Vivado バージ ョ ン管理の概要 8. Vivado ロ ジ ッ ク 解析を使用 し たデバ ッ グ テ ク ニ ッ ク ト レーニ ン グ コ ース 9. Vivado Design Suite ビデオ チ ュ ー ト リ アル 法的通知 The 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 Xilinx’s limited warranty, please refer to Xilinx’s Terms of Sale which can be viewed at http://www.xilinx.com/legal.htm#tos; 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 such critical applications, please refer to Xilinx’s Terms of Sale which can be viewed at http://www.xilinx.com/legal.htm#tos. © Copyright 2012-2015 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. こ の資料に関す る フ ィ ー ド バ ッ ク お よ び リ ン ク な ど の問題につ き ま し ては、 jpn_trans_feedback@xilinx.com ま で、 ま たは各ページの 右下にあ る [フ ィ ー ド バ ッ ク 送信] ボ タ ン を ク リ ッ ク す る と 表示 さ れ る フ ォ ーム か ら お知 ら せ く だ さ い。 フ ィ ー ド バ ッ ク は日本語で 入力可能です。 いただ き ま し た ご意見を参考に早急に対応 さ せていただ き ます。 なお、 こ の メ ール ア ド レ スへのお問い合わせは受 け付けてお り ません。 あ ら か じ めご了承 く だ さ い。 Vivado プ ロ グ ラ ムおよびデバ ッ グ UG908 (v2015.2) 2015 年 6 月 24 日 japan.xilinx.com 177
© Copyright 2024 Paperzz