Comments
Transcript
Vivado Design Suite プロパティ リファレンス ガイド (UG912)
Vivado Design Suite プ ロパテ ィ リ フ ァ レ ン ス ガイ ド UG912 (v2015.4) 2015 年 11 月 18 日 本資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資 料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情 報につきましては、必ず最新英語版をご参照ください。 改訂履歴 次の表に、 こ の文書の改訂履歴を示 し ます。 日付 バージ ョ ン 改訂内容 2015 年 11 月 18 日 2015.4 第 3 章の 「CASCADE_HEIGHT」 を追加 デザ イ ン階層の最上位での使用に関 し て第 3 章の 「CLOCK_DEDICATED_ROUTE」 に注 記を追加 UltraScale™ アーキテ ク チ ャ デバ イ ス のみに適用 さ れ る ロ ジ ッ ク 値に関 し て明確にする た めの記述を、 第 3 章の 「USE_DSP48」 に追加 文章の若干変更 2015 年 10 月 08 日 2015.3 標準フ ォーマ ッ ト の図に置 き 換え 「CLOCK_BUFFER_TYPE」 と 「IO_BUFFER_TYPE」 と の関係に関 し て詳細な説明を追加 第 3 章の 「CLOCK_DELAY_GROUP」 を追加 第 3 章の 「USER_CLOCK_ROOT」 を追加 し 、 「CLOCK_ROOT」 がユーザー定義のプ ロ パ テ ィ ではな く な っ た こ と を追記 「GENERATE_SYNTH_CHECKPOINT」 を追加 「INTERNAL_VREF」 に詳細を追加 「HIODELAY_GROUP」 と 第 3 章の 「IODELAY_GROUP」 と の違いに関 し て詳細な説明を 追加 DRC チ ェ ッ ク オブジ ェ ク ト プ ロ パテ ィ 「IS_ENABLED」 お よ び 「SEVERITY」 について の詳細を追加 制約フ ァ イ ルの 「PROCESSING_ORDER」 に関 し て情報を追加 差動ペア信号の 「PULLTYPE」 に関す る パ ラ メ ー タ ー制御についての説明を追加 2015 年 6 月 24 日 2015.2 第 2 章に 「NODE」、 「PIP ま たは SITE_PIP」、 お よ び 「WIRE」 を追加 第 3 章の 「PULLTYPE」 を追加 2015 年 4 月 1 日 2015.1 第 1 章 「Vivado Design Suite フ ァ ース ト ク ラ ス オブジ ェ ク ト 」 のオブジ ェ ク ト リ ス ト を カ テ ゴ リ 別に分類 し 、 第 2 章 「フ ァ ース ト ク ラ ス オブジ ェ ク ト リ ス ト (アルフ ァ ベ ッ ト 順)」 のオブジ ェ ク ト リ ス ト を アルフ ァ ベ ッ ト 別に分類 第 2 章に 「IO_BANK」、 「IO_STANDARD」、 「PACKAGE_PIN」、 「PKGPIN_BYTEGROUP」、 「PKGPIN_NIBBLE」、 お よ び 「SLR」 を追加 第 3 章に 「CLOCK_REGION」、 「DELAY_BYPASS」、 お よ び 「KEEP」 を追加 UltraScale 値を反映 さ せ る ため 第 3 章の 「INTERNAL_VREF」 を更新 第 3 章に 「KEEPER」、 「PULLDOWN」、 お よ び 「PULLUP」 を追加 し 、 RTL シ ミ ュ レー シ ョ ンでは こ れ ら の属性が表示 さ れない こ と を示す注記を追加 第 3 章の 「LVDS_PRE_EMPHASIS」 お よ び 「PRE_EMPHASIS」 に ENABLE_PRE_EMPHASIS も イ ネーブルにす る 必要があ る こ と を追記 第 3 章の 「POST_CRC_SOURCE」 に、 こ のプ ロ パテ ィ が 7 シ リ ーズ FPGA にのみ適用 さ れ る こ と を示す記述を追加. Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 2 目次 改訂履歴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 第 1 章 : Vivado Design Suite フ ァ ース ト ク ラ ス オブ ジ ェ ク ト 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 本書か ら 例を コ ピーす る 場合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 ネ ッ ト リ ス ト お よ びデバ イ ス オブジ ェ ク ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 ブ ロ ッ ク デザ イ ン オブジ ェ ク ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 ハー ド ウ ェ ア マネージ ャ ー オブジ ェ ク ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アルフ ァ ベ ッ ト 順) BD_ADDR_SEG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BD_ADDR_SPACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BD_CELL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BD_INTF_NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BD_INTF_PIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BD_INTF_PORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BD_NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BD_PIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BD_PORT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BEL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BEL_PIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CELL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CLOCK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CLOCK_REGION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DIAGRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HW_AXI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HW_BITSTREAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HW_CFGMEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HW_DEVICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HW_ILA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HW_ILA_DATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HW_PROBE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HW_SERVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HW_SIO_GT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HW_SIO_GTGROUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HW_SIO_IBERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HW_SIO_PLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HW_SIO_RX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HW_SIO_TX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HW_SYSMON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HW_TARGET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 13 15 17 19 20 22 24 25 26 28 32 34 37 39 41 42 43 45 46 49 51 52 53 54 64 65 67 68 74 78 81 3 HW_VIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IO_BANK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IO_STANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PACKAGE_PIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 84 86 88 91 93 95 PIP ま たは SITE_PIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 PKGPIN_BYTEGROUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 PKGPIN_NIBBLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 PORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 SITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 SLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 TILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 TIMING_PATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 WIRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 第 3 章 : 主な プ ロパテ ィ の説明 プ ロ パテ ィ 情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ASYNC_REG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BEL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BLACK_BOX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BUFFER_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CASCADE_HEIGHT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CFGBVS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CLOCK_BUFFER_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CLOCK_DEDICATED_ROUTE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CLOCK_DELAY_GROUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CLOCK_REGION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CLOCK_ROOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CONFIG_MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CONFIG_VOLTAGE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CONTAIN_ROUTING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DCI_CASCADE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DELAY_BYPASS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DIFF_TERM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DIFF_TERM_ADV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DIRECT_ENABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DIRECT_RESET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DONT_TOUCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DRIVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EDIF_EXTRA_SEARCH_PATHS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EQUALIZATION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EXCLUDE_PLACEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FSM_ENCODING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FSM_SAFE_STATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GATED_CLOCK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GENERATE_SYNTH_CHECKPOINT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 120 123 125 126 126 127 128 130 132 133 134 135 137 138 139 140 141 143 145 146 147 150 152 153 154 155 156 157 159 H_SET お よ び HU_SET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 HIODELAY_GROUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 4 HLUTNM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IBUF_LOW_PWR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IN_TERM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INTERNAL_VREF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IO_BUFFER_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IOB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IOBDELAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IODELAY_GROUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IOSTANDARD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IP_REPO_PATHS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IS_ENABLED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . KEEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . KEEP_COMPATIBLE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . KEEP_HIERARCHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . KEEPER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LOC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LOCK_PINS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LUTNM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LVDS_PRE_EMPHASIS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MARK_DEBUG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MAX_FANOUT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ODT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OFFSET_CNTRL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PACKAGE_PIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PATH_MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PBLOCK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . POST_CRC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . POST_CRC_ACTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . POST_CRC_FREQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . POST_CRC_INIT_FLAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . POST_CRC_SOURCE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PRE_EMPHASIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PROCESSING_ORDER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PROHIBIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PULLDOWN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PULLTYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PULLUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . REF_NAME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . REF_PIN_NAME. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RLOC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RLOCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RLOC_ORIGIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ROUTE_STATUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RPM_GRID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SEVERITY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SLEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . U_SET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . USE_DSP48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . USED_IN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 166 169 170 172 173 175 176 178 180 182 183 185 187 188 191 193 195 198 201 202 204 205 206 207 209 210 211 213 214 215 216 218 219 220 221 222 224 226 227 228 231 233 235 236 237 239 240 242 245 246 5 USER_CLOCK_ROOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 VCCAUX_IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 付録 A : その他の リ ソ ース ザ イ リ ン ク ス リ ソ ース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ソ リ ュ ーシ ョ ン セ ン タ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 参考資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ト レーニ ン グ リ ソ ース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . お読み く だ さ い : 重要な法的通知 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 252 252 252 253 254 6 第 1章 Vivado Design Suite フ ァ ース ト ク ラ ス オブ ジェク ト 概要 本書では、 フ ァ ース ト ク ラ ス オブジ ェ ク ト 、 ザ イ リ ン ク ス Vivado® Design Suite で使用可能なオブジ ェ ク ト のプ ロ パ テ ィ について説明 し ます。 含まれ る 内容は次の と お り です。 • 第 1 章 Vivado Design Suite フ ァ ース ト ク ラ ス オブジ ェ ク ト は、 FPGA デザ イ ン デー タ ベース を モデル化す る た め Vivado Design Suite で使用 さ れ る さ ま ざ ま なデザ イ ンお よ びデバ イ ス のオブジ ェ ク ト について説明 し ます。 カ テ ゴ リ 別にオブジ ェ ク ト を示 し 、 次の章のオブジ ェ ク ト の説明への リ ン ク を示 し ます。 • 第 2 章 「フ ァ ース ト ク ラ ス オブジ ェ ク ト リ ス ト (アルフ ァ ベ ッ ト 順)」 は、 Vivado Design Suite のフ ァ ース ト ク ラ ス オブジ ェ ク ト を アルフ ァ ベ ッ ト 順に リ ス ト し てい ます。 オブジ ェ ク ト の定義、 関連オブジ ェ ク ト の リ ス ト 、 各 オブジ ェ ク ト に関連付け ら れてい る プ ロ パテ ィ の リ ス ト を含みます。 • 第 3 章 「主なプ ロ パテ ィ の説明」 : Vivado Design Suite プ ロ パテ ィ の説明、 サポー ト さ れてい る アーキ テ ク チ ャ 、 適用可能エ レ メ ン ト 、 値、 構文例 (Verilog、 VHDL、 XDC)、 影響のあ る デザ イ ン フ ロ ー ス テ ッ プな ど について項 目別に説明 し ます。 • 付録 A 「その他の リ ソ ース」 : http://japan.xilinx.com/support のザ イ リ ン ク ス サポー ト ウ ェ ブサ イ ト か ら 入手可能 な リ ソ ースお よ び資料を リ ス ト し ます。 本書から例を コ ピーする場合 注意 : 本書か ら コ ー ド に構文ま たは コ ー ド 例を コ ピーする 前に、 こ のセ ク シ ョ ン を よ く お読み く だ さ い。 本書には、 構文お よ び コ ー ド 例が多 く 含 ま れ、 コ ー ド にプ ロ パテ ィ を挿入で き る よ う にな っ てい ま す。 こ れ ら の コ ピーを PDF か ら 直接 コ ー ド に コ ピーす る 場合、 次の よ う な問題が発生す る 場合があ り ます。 • ダ ッ シ ュ (-) は、 PDF か ら Vivado ツールの Tcl コ ン ソ ール、 Tcl ス ク リ プ ト 、 ま たは XDC フ ァ イ ルへ貼 り 付け る と き 、 en ダ ッ シ ュ ま たは em ダ ッ シ ュ に置 き 換え ら れ る こ と があ り ます。 • PDF 資料の改行マー ク が例に挿入 さ れて し ま い、 Tcl ス ク リ プ ト や XDC フ ァ イ ルでエ ラ ーを引 き 起 こ し ます。 • 次のページに ま たが る よ う な例を コ ピーす る と 、PDF のヘ ッ ダーお よ びフ ッ タ ー情報 も 一緒に コ ピー さ れて し ま い、 Tcl ス ク リ プ ト や XDC フ ァ イ ルでエ ラ ーを引 き 起 こ し ます。 こ れ ら の問題を回避す る には、 ASCII テ キ ス ト エデ ィ タ ーで コ ー ド 例にあ る 不必要なマーカーや情報を削除 し てか ら 、 コ ー ド 、 Vivado Design Suite の Tcl シ ェ ル、 ま たは Tcl コ ン ソ ールに貼 り 付け る よ う に し て く だ さ い。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 7 第 1 章 : Vivado Design Suite フ ァ ース ト ク ラ ス オブ ジ ェ ク ト ネ ッ ト リ ス ト およびデバイ ス オブ ジ ェ ク ト Vivado Design Suite では、 イ ン メ モ リ デザ イ ン デー タ ベース で数多 く の フ ァ ース ト ク ラ ス オブジ ェ ク ト がサポー ト さ れてい ます。 こ のオブジ ェ ク ト は、 論理デザ イ ンのセル、 ネ ッ ト 、 ポー ト のほか、 タ ーゲ ッ ト ザ イ リ ン ク ス デバ イ ス のデバ イ ス リ ソ ース、 プ ラ ッ ト フ ォーム ボー ド 、 Vivado Design Suite 特有の機能で使用 さ れ る オブジ ェ ク ト (IP イ ン テ グ レー タ ーで使用 さ れ る ブ ロ ッ ク デザ イ ン オブジ ェ ク ト や Vivado ハー ド ウ ェ ア マネージ ャ ーで使用 さ れ る ハー ド ウ ェ ア オブジ ェ ク ト な ど) です。論理デザ イ ンのネ ッ ト リ ス ト オブジ ェ ク ト は、Vivado Design Suite で タ ーゲ ッ ト デバ イ ス ま たはボー ド のデバ イ ス オブジ ェ ク ト にマ ッ プ さ れ ま す。 8 ページの図 1-1は、 Vivado ツールの一部の フ ァ ース ト ク ラ ス オブジ ェ ク ト の関係を表 し てい ます。 こ の図は例示用で、 すべての Vivado ツールのフ ァ ース ト ク ラ ス オブジ ェ ク ト やその関係を示 し てい る わけではあ り ません。 X-Ref Target - Figure 1-1 1HW 3RUW 3LQ &ORFN 7LPLQJ 3DWK 1RGH &HOO %HO3LQ &ORFN 5HJLRQ 3NJ3LQ B1LEEOH %HO :LUH 3DFNDJH 3LQ 6LWH&/% 6LWH3LQ 3NJ3LQ B%\WH*URXS 6LWH3LS 3LS ,2%DQN 7LOH ,2 6WDQGDUG 6/5 ; 図 1‐1 : ネ ッ ト リ ス ト およびデバイ ス オブ ジ ェ ク ト 図 1-1 の上部に表示 さ れてい る ネ ッ ト リ ス ト オブジ ェ ク ト は、 FPGA にプ ロ グ ラ ムす る ための論理デザ イ ンの一部で す。 図の下半分の青色で表示 さ れてい る デバ イ ス オブジ ェ ク ト は、 実際の物理的な FPGA デバ イ ス の一部で、 ク ロ ッ ク 領域、 タ イ ル、 サ イ ト 、 CLB な ど のエ リ ア リ ソ ース が含まれます。 ま た、 デバ イ ス オブジ ェ ク ト には、 緑色で表 示 さ れてい る パ ッ ケージ ピ ンお よ び I/O バン ク 、 紫色で表示 さ れてい る ノ ー ド 、 ワ イ ヤ、 PIP な ど の配線 リ ソ ース も 含まれてい ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 8 第 1 章 : Vivado Design Suite フ ァ ース ト ク ラ ス オブ ジ ェ ク ト Vivado Design Suite には、ネ ッ ト リ ス ト デザ イ ン と 一緒に ま と め ら れて タ イ ミ ン グ レ ポー ト を作成する タ イ ミ ン グ オ ブジ ェ ク ト な ど、 フ ァ ース ト ク ラ ス オブジ ェ ク ト のカ テ ゴ リ がほかに も あ り ます。 ネ ッ ト リ ス ト お よ びデバ イ ス オ ブジ ェ ク ト に関連付け ら れてい る タ イ ミ ン グ オブジ ェ ク ト を利用する こ と で、イ ンプ リ メ ン ト さ れたデザ イ ンの タ イ ミ ン グ解析を完全に行 う こ と がで き ます。 タ イ ミ ン グ オブジ ェ ク ト には、 ク ロ ッ ク 、 タ イ ミ ン グ パ ス、 遅延オブジ ェ ク ト があ り ます。 オブジ ェ ク ト 間の関連性は、 オブジ ェ ク ト 同士を結ぶ矢印で示 さ れてい ます。 • 矢印が両方のオブジ ェ ク ト を指 し てい る 場合は、 ク エ リ ーを ど ち ら の方向か ら も 指定で き る 関係であ る こ と を示 し てい ます。 た と えば、 特定ネ ッ ト に接続 さ れてい る セル (get_cells -of_objects [get_nets]) を ク エ リ ー処理 し た り 、 特定セルに接続 さ れてい る ネ ッ ト (get_nets -of_objects [get_cells]) を ク エ リ ー処 理す る こ と がで き ます。 • 矢印が一方のみを指 し てい る 場合は、 その矢印の方向にのみ ク エ リ ーを指定で き る 関係であ る こ と を示 し てい ま す。 た と えば、 図 1-1 の例を使用 し て説明す る と 、 特定 ク ロ ッ ク 領域に あ る 基本エ レ メ ン ト は取得で き ま すが (get_bels -of_objects [get_clock_regions])、 特定の基本エ レ メ ン ト に関連付け ら れた ク ロ ッ ク 領域 を取得す る こ と はで き ません。 フ ァ ース ト ク ラ ス オブジ ェ ク ト の説明、 ほかのオブジ ェ ク ト と の関係、 オブジ ェ ク ト で定義 さ れてい る プ ロ パテ ィ については、 後で説明 し ます。 ネ ッ ト リ ス ト オブ ジ ェ ク ト 34 ページの 「CELL」 37 ページの 「CLOCK」 88 ページの 「NET」 95 ページの 「PIN」 104 ページの 「PORT」 115 ページの 「TIMING_PATH」 デバイ ス リ ソ ース オブ ジ ェ ク ト 28 ページの 「BEL」 32 ページの 「BEL_PIN」 39 ページの 「CLOCK_REGION」 84 ページの 「IO_BANK」 86 ページの 「IO_STANDARD」 91 ページの 「NODE」 93 ページの 「PACKAGE_PIN」 98 ページの 「PIP ま たは SITE_PIP」 100 ページの 「PKGPIN_BYTEGROUP」 102 ページの 「PKGPIN_NIBBLE」 107 ページの 「SITE」 110 ページの 「SLR」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 9 第 1 章 : Vivado Design Suite フ ァ ース ト ク ラ ス オブ ジ ェ ク ト 112 ページの 「TILE」 117 ページの 「WIRE」 ブ ロ ッ ク デザイ ン オブ ジ ェ ク ト ブ ロ ッ ク デザ イ ンは、 イ ン タ ーコ ネ ク ト さ れた IP コ アか ら 成 り 立つ複雑なサブシ ス テ ム デザ イ ンで、 ス タ ン ド ア ロ ン デザ イ ン と し て使用で き る ほか、 その他のデザ イ ン に統合す る こ と も で き ます。 ブ ロ ッ ク デザ イ ン ま たはダ イ ア グ ラ ム は、 Vivado Design Suite の IP イ ン テ グ レ ー タ ー機能を使用 し て作成で き ま す。 こ れ ら は、 Vivado Design Suite IDE の IP イ ン テ グ レー タ ーのキ ャ ンバ ス、 ま たは Tcl コ マ ン ド を使用 し て イ ン タ ラ ク テ ィ ブに作成で き ます。 ブ ロ ッ ク デザ イ ン ダ イ ア グ ラ ム オブジ ェ ク ト は、 前に説明 し たネ ッ ト リ ス ト オブジ ェ ク ト に構造的にかな り 類似 し てい ます。 図 1-2 は、 ブ ロ ッ ク デザ イ ン ま たはダ イ ア グ ラ ム を構成す る 異な る デザ イ ン オブジ ェ ク ト 間の関係を示 し てい ます。 X-Ref Target - Figure 1-2 EGBSLQ GLDJUDP EGBSRUW EGBLQWIBSRUW EGBQHW EGBLQWIBQHW EGBLQWIBSLQ EGBFHOO EGBDGGUBVSDFH EGBDGGUBVHJ ; 図 1‐2 : ブ ロ ッ ク デザイ ン オブ ジ ェ ク ト 次の図に示す よ う に、 ブ ロ ッ ク ダ イ ア グ ラ ム オブジ ェ ク ト には次が含まれます。 41 ページの 「DIAGRAM」 15 ページの 「BD_ADDR_SPACE」 13 ページの 「BD_ADDR_SEG」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 10 第 1 章 : Vivado Design Suite フ ァ ース ト ク ラ ス オブ ジ ェ ク ト 17 ページの 「BD_CELL」 19 ページの 「BD_INTF_NET」 20 ページの 「BD_INTF_PIN」 22 ページの 「BD_INTF_PORT」 24 ページの 「BD_NET」 25 ページの 「BD_PIN」 26 ページの 「BD_PORT」 ハー ド ウ ェ ア マネージ ャ ー オブ ジ ェ ク ト ハー ド ウ ェ ア マネージ ャ ーは Vivado Design Suite の機能で、 デバ イ ス プ ロ グ ラ マーま たはデバ ッ グ ボー ド へ接続 し た り 、 プ ロ グ ラ ム さ れたハー ド ウ ェ ア デバ イ ス を実行 し た り で き ます。 ハー ド ウ ェ ア マネージ ャ ーを使用す る と 、デ バ イ ス 上のデバ ッ グ ロ ジ ッ ク を実行 し て、 現在の値を設定 ま たは取 り 出す信号に ア ク セ ス で き る よ う にな り ま す。 図 1-3 は、 Vivado ハー ド ウ ェ ア マネージ ャ ーのデバ ッ グ コ ア と オブジ ェ ク ト の多 く を示 し てい ます。 X-Ref Target - Figure 1-3 KZBFIJPHP KZBVHUYHU KZBWDUJHW KZBGHYLFH KZBELWVWUHDP KZBVLRBVZHHS KZBVLRBVFD Q KZBD[L KZBV\VPRQ KZBLOD KZBVLRBLEHUW KZBYLR KZBVLRBOLQN KZBV\VPRQBUHJ KZBSUREH KZBVLRBJW KZBVLRBSOO KZBVLRBOLQNJURXS KZBD[LBW[Q KZBLODBGDWD KZBVLRBW[ KZBVLRBU[ KZBVLRBJWJURXS ; 図 1‐3 : ハー ド ウ ェ ア マネージ ャ ー オブ ジ ェ ク ト デバ ッ グ コ アは、ザ イ リ ン ク ス IP カ タ ロ グ を使用 し て RTL デザ イ ンに イ ン ス タ ン シエー ト で き ます。 ILA ま たは VIO デバ ッ グ コ アの場合は、 ネ ッ ト リ ス ト ベー ス のデバ ッ グ フ ロ ーを使用 し て合成済みネ ッ ト リ ス ト に挿入で き ます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908) [参照 23] を参照 し て く だ さ い。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 11 第 1 章 : Vivado Design Suite フ ァ ース ト ク ラ ス オブ ジ ェ ク ト 上記の図に示す よ う に、 Vivado ハー ド ウ ェ ア マネージ ャ ー オブジ ェ ク ト には次の も のが含まれます。 42 ページの 「HW_AXI」 43 ページの 「HW_BITSTREAM」 45 ページの 「HW_CFGMEM」 46 ページの 「HW_DEVICE」 49 ページの 「HW_ILA」 51 ページの 「HW_ILA_DATA」 52 ページの 「HW_PROBE」 53 ページの 「HW_SERVER」 54 ページの 「HW_SIO_GT」 64 ページの 「HW_SIO_GTGROUP」 65 ページの 「HW_SIO_IBERT」 67 ページの 「HW_SIO_PLL」 68 ページの 「HW_SIO_RX」 74 ページの 「HW_SIO_TX」 78 ページの 「HW_SYSMON」 81 ページの 「HW_TARGET」 82 ページの 「HW_VIO」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 12 第 2章 フ ァース ト ク ラス オブジ ェ ク ト リ ス ト (アル フ ァベッ ト 順) BD_ADDR_SEG 説明 ア ド レ ス セグ メ ン ト (bd_addr_seg オブジ ェ ク ト ) は、 メ モ リ 範囲の位置お よ びサ イ ズ を示す も ので、 範囲 (サ イ ズ) と オプシ ョ ンで開始オ フ セ ッ ト を含みます。 さ ま ざ ま な メ モ リ マ ッ プ さ れたマ ス タ ーお よ びス レーブ イ ン タ ーフ ェ イ ス の場合、 IP イ ン テ グ レー タ ーで業界標準 の IP-XACT デー タ フ ォーマ ッ ト に従っ て、終点のマ ス タ ーお よ びス レーブの メ モ リ 要件お よ び機能を取 り 込みます。 ア ド レ ス指定可能な ス レーブ イ ン タ ーフ ェ イ ス では、 メ モ リ マ ッ プ と 呼ばれ る ア ド レ ス セグ メ ン ト コ ン テナーが参 照 さ れます。 こ れ ら の メ モ リ マ ッ プには、 た と えば S_AXI の よ う に、 通常ス レーブ イ ン タ ーフ ェ イ ス ピ ンに従っ て 名前がつけ ら れます (必須ではあ り ません)。 メ モ リ マ ッ プには、 ス レーブ ア ド レ ス セグ メ ン ト が含まれます。 こ れ ら のア ド レ ス セグ メ ン ト は、 メ モ リ マ ッ プ を 参照す る ス レーブ イ ン タ ーフ ェ イ ス のア ド レ ス デ コ ー ド ウ ィ ン ド ウ に該当 し ま す。 メ モ リ マ ッ プで指定 さ れ る 場 合、 ス レーブ セ グ メ ン ト には範囲を含め る 必要があ る ほか、 オプシ ョ ン でハー ド オ フ セ ッ ト ( ス レ ーブがそのオ フ セ ッ ト ま たはアパーチ ャ にあ る マ ス タ ー ア ド レ ス空間にのみマ ッ プ可能な こ と を示す) を含め る こ と がで き ます。 た と えば、 通常 AXI4-Lite ス レーブ イ ン タ ーフ ェ イ ス は、 メ モ リ 範囲を示す 1 つのア ド レ ス セグ メ ン ト のみを使用 し て ア ド レ ス セ グ メ ン ト を参照 し ますが、 ブ リ ッ ジの よ う に、 ス レーブの中には複数のア ド レ ス セ グ メ ン ト が含まれ た り 、 各ア ド レ ス デ コ ー ド ウ ィ ン ド ウ のア ド レ ス範囲が含ま れ る も のがあ り ます。 ス レ ーブ ア ド レ ス セ グ メ ン ト は、 assign_bd_address ま たは create_bd_addr_seg コ マ ン ド を使用 し てマ ス タ ー ア ド レ ス空間に割 り 当て ら れます。 マ ス タ ー イ ン タ ーフ ェ イ ス のア ド レ ス を指定す る と 、 ア ド レ ス空間 (bd_addr_space) と 呼ばれ る ア ド レ ス セグ メ ン ト コ ン テナーが参照 さ れ ま す。 こ のア ド レ ス空間はセルの イ ン タ ーフ ェ イ ス ピ ン (bd_intf_pin) で参照 さ れ ま す。 外部 AXI マ ス タ ーの場合、 ア ド レ ス空間は外部 イ ン タ ーフ ェ イ ス ポー ト (bd_intf_port) で参照 さ れ ます。 さ ま ざ ま なプ ロ ト コ ルの複数の イ ン タ ーフ ェ イ ス は、 同 じ マ ス タ ー ア ド レ ス空間を参照 し ます。 た と えば、 MicroBlaze プ ロ セ ッ サの デー タ ア ド レ ス空間は、 DLMB、 M_AXI_DP、 お よ び M_AXI_DC イ ン タ ーフ ェ イ ス で参照 さ れます。 ア ド レ ス空間には、 マ ス タ ー ア ド レ ス セグ メ ン ト が含まれます。 こ れ ら のマ ス タ ー ア ド レ ス セグ メ ン ト はマ ス タ ー ア ド レ ス空間に割 り 当て ら れた ス レーブ ア ド レ ス セグ メ ン ト と 、 マ ス タ ーがア ク セ スす る オ フ セ ッ ト と 範囲を参照 し ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 13 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-1 EGBQHW EGBLQWIBQHW EGBLQWIBSLQ EGBFHOO EGBDGGUBVSDFH EGBDGGUBVHJ ; 図 2‐1 : ブ ロ ッ ク デザイ ンのア ド レ ス空間およびア ド レ ス セグ メ ン ト bd_addr_seg オブジ ェ ク ト は、 マ ス タ ー ア ド レ ス セ グ メ ン ト と ス レ ーブ ア ド レ ス セ グ メ ン ト の両方を参照 し ま す。 bd_addr_space オブジ ェ ク ト は、 メ モ リ マ ッ プ と マ ス タ ー ア ド レ ス空間の両方を参照 し ます。 関連す る ア ド レ ス空間 と ア ド レ ス セグ メ ン ト 間は、 すべて取得で き ます。 次は、 その例です。 # Get the slave address segments of a memory map space. get_bd_addr_segs -of_objects [get_bd_addr_spaces /mdm_1/S_AXI] # Get the master address segments of amaster address space. get_bd_addr_segs -of_objects [get_bd_addr_spaces /Microblaze_0/Data] # Get the slave adress segment from its referenced master address segment, or the # master address segment from its referencing slave address segment. get_bd_addr_segs -of_objects [get_bd_addr_segs <slave or master>_segment] # Get the addr_segs referencing/referenced by interfaces. # Get all Master or slave interfaces. set vMB [get_bd_intf_pins -of_objects [get_bd_cells *] -filter {Mode == "Master"}] set vSB [get_bd_intf_pins -of_objects [get_bd_cells *] -filter {Mode == "Slave"}] # Get master segments set vMS [get_bd_addr_segs -of_objects $vMB] # Get slave segments set vSS [get_bd_addr_segs -of_objects $vSB] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 14 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) プ ロパテ ィ 次に、 ブ ロ ッ ク デザ イ ンのア ド レ ス セグ メ ン ト オブジ ェ ク ト (bd_addr_seg) のプ ロ パテ ィ と 値の例を示 し ます。 Property Type Read-only Visible Value ACCESS string true true read-write CLASS string true true bd_addr_seg MEMTYPE string false true data NAME string false true SEG_mig_0_C0_DDR4_ADDRESS_BLOCK OFFSET string false true 0x80000000 PATH string true true /microblaze_0/Data/SEG_mig_0_C0_DDR4_ADDRESS_BLOCK RANGE string false true 2147483648 USAGE string false true register bd_addr_seg オブジ ェ ク ト のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ル ま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_bd_addr_segs ] 0] BD_ADDR_SPACE 説明 ア ド レ ス空間 (bd_addr_space オブジ ェ ク ト ) は、 マ ス タ ー イ ン タ ーフ ェ イ ス、 ま たはブ ロ ッ ク デザ イ ン外部の AXI マ ス タ ーへ接続 さ れた AXI イ ン タ ーフ ェ イ ス ポー ト の論理的にア ド レ ス指定可能な メ モ リ 空間に割 り 当て ら れます。 Vivado Design Suite の IP イ ン テ グ レー タ ーは、 業界標準の IP-XACT デー タ フ ォーマ ッ ト に従っ て、 メ モ リ 要件お よ び機能を キ ャ プチ ャ し ます。ブ ロ ッ ク の中には複数のマ ス タ ー イ ン タ ーフ ェ イ ス に関連す る ア ド レ ス空間が 1 つ含ま れ る も のがあ り ま す。 た と えば、 シ ス テ ム バ ス お よ び高速 メ モ リ バ ス の付いたプ ロ セ ッ サな ど です。 その他の コ ン ポーネ ン ト には、 複数のマ ス タ ー イ ン タ ーフ ェ イ ス (命令用 1 つ、 デー タ 用 1 つ) に関連す る ア ド レ ス空間が複数含 まれ る も のがあ り ます。 マ ス タ ー イ ン タ ーフ ェ イ ス は、 ア ド レ ス空間 (bd_addr_space オブジ ェ ク ト ) を参照 し ます。 AXI ス レーブがマ ス タ ー ア ド レ ス空間にマ ッ プ さ れ る 場合は、 マ ス タ ー ア ド レ ス セグ メ ン ト (bd_addr_seg) オブジ ェ ク ト が作成 さ れ、 ス レー ブのア ド レ ス セグ メ ン ト がマ ス タ ーへマ ッ プ さ れます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 15 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-2 EGBQHW EGBLQWIBQHW EGBLQWIBSLQ EGBFHOO EGBDGGUBVSDFH EGBDGGUBVHJ ; 図 2‐2 : ブ ロ ッ ク デザイ ンのア ド レ ス空間およびア ド レ ス セグ メ ン ト マ ス タ ー ア ド レ ス セグ メ ン ト (bd_addr_seg) は、 ブ ロ ッ ク デザ イ ンで見つか っ た AXI マ ス タ ー イ ン タ ーフ ェ イ ス の ア ド レ ス空間に関連付け ら れてお り 、 ア ド レ ス空間はセルの イ ン タ ーフ ェ イ ス ピ ン (bd_intf_pin) で参照 さ れます。 外 部 AXI マ ス タ ーは、 イ ン タ ーフ ェ イ ス ポー ト (bd_intf_port) に関連 し てい ます。 こ れ ら の関連オブジ ェ ク ト の bd_addr_space オブジ ェ ク ト は、 次を使用する と 取得で き ます。 get_bd_addr_spaces -of_objects [get_bd_cells /microblaze_0] get_bd_addr_segs -of_objects [get_bd_addr_spaces -of_objects [get_bd_cells /microblaze_0]] 次を使用す る と 、 ブ ロ ッ ク デザ イ ンのア ド レ ス空間に関連する オブジ ェ ク ト を取得する こ と も で き ます。 get_bd_intf_pins -of_objects [get_bd_addr_spaces *SLMB] プ ロパテ ィ 次に、 ブ ロ ッ ク デザ イ ンのア ド レ ス空間オブジ ェ ク ト (bd_addr_space) のプ ロ パテ ィ と 値の例を示 し ます。 Property Type Read-only Visible Value CLASS string true true bd_addr_space NAME string false true SLMB OFFSET string false true PATH string true true /microblaze_0_local_memory/dlmb_bram_if_cntlr/SLMB RANGE string false true 4096 TYPE string false true bd_addr_space オブジ ェ ク ト のプ ロ パテ ィ を確認する には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_bd_addr_spaces ] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 16 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) BD_CELL 説明 ブ ロ ッ ク デザ イ ン セル (bd_cell オブジ ェ ク ト ) は、 IP イ ン テ グ レー タ ーの IP コ ア オブジ ェ ク ト の イ ン ス タ ン ス、 ま たは階層ブ ロ ッ ク デザ イ ン セルです。 最下位セルは、 IP カ タ ロ グか ら の コ アです。 階層セルはモジ ュ ールま たはブ ロ ッ ク で、 1 つ以上の レベルの ロ ジ ッ ク を含み、 最下位セル も 含みます。 bd_cell オブジ ェ ク ト の TYPE プ ロ パテ ィ では、ブ ロ ッ ク デザ イ ン セルが IP カ タ ロ グか ら の最下位セル と し て (TYPE == IP)、 ま たは追加 ロ ジ ッ ク を含む階層モジ ュ ール と し て (TYPE == HIER) 識別 さ れます。 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-3 EGBSLQ GLDJUDP EGBQHW EGBLQWIBQHW EGBLQWIBSLQ EGBFHOO EGBDGGUBVSDFH 図 2‐3 : ブ ロ ッ ク デザイ ン セル 図 2-3 に示す よ う に、 ブ ロ ッ ク デザ イ ン セル (bd_cell) はブ ロ ッ ク デザ イ ン ま たはダ イ ア グ ラ ム オブジ ェ ク ト に含ま れ ます。 セルには、 ブ ロ ッ ク デザ イ ン ピ ン (bd_pin) と イ ン タ ーフ ェ イ ス ピ ン (bd_intf_pin) があ り ます。 ま た、 階層 にブ ロ ッ ク デザ イ ン ポー ト (bd_port) お よ び イ ン タ ーフ ェ イ ス ポー ト (bd_intf_port) を含め る こ と がで き ます。こ れ ら は、 ネ ッ ト (bd_net) お よ び イ ン タ ーフ ェ イ ス ネ ッ ト (bd_intf_net) に よ り 接続 さ れます。 メ モ リ 関連のブ ロ ッ ク デザ イ ン セルには、ア ド レ ス空間 (bd_addr_space) と ア ド レ ス セグ メ ン ト (bd_addr_seg) も 含め る こ と がで き ます。た と えば、 次を使用す る と 、 こ れ ら のオブジ ェ ク ト に関連す る ブ ロ ッ ク デザ イ ン セルを取得で き ます。 get_bd_cells -of_objects [get_bd_addr_spaces] 次を使用す る と 、 ブ ロ ッ ク デザ イ ン セルに関連す る オブジ ェ ク ト を取得で き ます。 get_bd_addr_spaces -of_objects [get_bd_cells] ま た、 次を使用す る と 、 別のブ ロ ッ ク デザ イ ン セルの階層的オブジ ェ ク ト であ る ブ ロ ッ ク デザ イ ン セルを取得す る こ と も で き ます。 get_bd_cells -of_objects [get_bd_cells microblaze_0_axi_periph] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 17 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) プ ロパテ ィ ブ ロ ッ ク デザ イ ン セル オブジ ェ ク ト の特定のプ ロ パテ ィ は、 そのオブジ ェ ク ト の示すネ ッ ト の タ イ プに よ っ て異な り ます。 次の表には、 Vivado Design Suite で bd_cell オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ の一部を その値の例 と 共に リ ス ト し てい ます。 Property CLASS CONFIG.C_BRK CONFIG.C_DATA_SIZE CONFIG.C_DBG_MEM_ACCESS CONFIG.C_DBG_REG_ACCESS CONFIG.C_INTERCONNECT CONFIG.C_JTAG_CHAIN CONFIG.C_MB_DBG_PORTS CONFIG.C_M_AXIS_DATA_WIDTH CONFIG.C_M_AXIS_ID_WIDTH CONFIG.C_M_AXI_ADDR_WIDTH CONFIG.C_M_AXI_DATA_WIDTH CONFIG.C_M_AXI_THREAD_ID_WIDTH CONFIG.C_S_AXI_ACLK_FREQ_HZ CONFIG.C_S_AXI_ADDR_WIDTH CONFIG.C_S_AXI_DATA_WIDTH CONFIG.C_TRACE_CLK_FREQ_HZ CONFIG.C_TRACE_CLK_OUT_PHASE CONFIG.C_TRACE_DATA_WIDTH CONFIG.C_TRACE_OUTPUT CONFIG.C_TRIG_IN_PORTS CONFIG.C_TRIG_OUT_PORTS CONFIG.C_USE_BSCAN CONFIG.C_USE_CONFIG_RESET CONFIG.C_USE_CROSS_TRIGGER CONFIG.C_USE_UART CONFIG.C_XMTC CONFIG.Component_Name LOCATION NAME PATH SCREENSIZE TYPE VLNV Type string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string Read-only true false false false false false false false false false false false false false false false false false false false false false false false false false false false false false true false true true Visible true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true Value bd_cell 0 32 0 0 2 2 1 32 7 32 32 1 100000000 32 32 200000000 90 32 0 1 1 0 0 0 0 0 design_migU_mdm_1_0 2 530 140 mdm_1 /mdm_1 120 80 ip xilinx.com:ip:mdm:3.2 bd_cell オブジ ェ ク ト のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま た は Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_bd_cells] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 18 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) BD_INTF_NET 説明 イ ン タ ーフ ェ イ ス と は共通の フ ァ ン ク シ ョ ン を共有す る 信号を グループ化 し た も ので、 個別信号 と 複数バ ス の両方が 含まれます。 た と えば、 AXI4-Lite マ ス タ ーには多 く の信号 と 複数のバ ス が含まれ、 こ れ ら はすべて接続に必要です。 こ れ ら の信号お よ びバ ス を イ ン タ ーフ ェ イ ス にグループ化す る と 、Vivado IP イ ン テ グ レー タ ーで共通の イ ン タ ーフ ェ イ ス が識別で き る よ う にな り 、 自動的に 1 つの手順で自動的に複数の接続が実行 さ れます。 イ ン タ ーフ ェ イ ス は、 IP-XACT 規格を使用 し て定義 さ れます。 ザ イ リ ン ク ス か ら 提供 さ れてい る 標準 イ ン タ ーフ ェ イ ス は、Vivado ツールの イ ン ス ト ール デ ィ レ ク ト リ data/ip/interfaces にあ り ます。 イ ン タ ーフ ェ イ ス ネ ッ ト 、 ピ ン、 ポー ト についての詳細は、 『Vivado Design Suite ユーザー ガ イ ド IP イ ン テ グ レー タ ーを使用 し た IP サブシ ス テ ムの設計』 (UG994) [参照 27] を参照 し て く だ さ い。 ブ ロ ッ ク デザ イ ンの イ ン タ ーフ ェ イ ス ネ ッ ト (bd_intf_net オブジ ェ ク ト ) は、 ブ ロ ッ ク デザ イ ン セルの イ ン タ ーフ ェ イ ス ピ ン を ほかの イ ン タ ーフ ェ イ ス ピ ン ま たは外部 イ ン タ ーフ ェ イ ス ポー ト に接続 し ます。 bd_intf_net オブジ ェ ク ト は、複数レベルのデザ イ ン階層を介 し て接続 さ れ、 ブ ロ ッ ク デザ イ ン セルが接続 さ れます。すべての イ ン タ ーフ ェ イ ス ネ ッ ト には、 デザ イ ン で識別で き る よ う な名前が付 き ます。 こ れ ら のネ ッ ト へ接続 さ れ る すべてのブ ロ ッ ク デ ザ イ ン セル、 イ ン タ ーフ ェ イ ス ピ ン、 お よ び イ ン タ ーフ ェ イ ス ポー ト は電気的に接続 さ れてい ます。 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-4 EGBSLQ GLDJUDP EGBSRUW EGBLQWIBSRUW EGBQHW EGBLQWIBQHW EGBLQWIBSLQ EGBFHOO EGBDGGUBVSDFH 図 2‐4 : ブ ロ ッ ク デザイ ン イ ン タ ー フ ェ イ ス ネ ッ ト 19 ページの図 2-4 に示す よ う に、 ブ ロ ッ ク デザ イ ン イ ン タ ーフ ェ イ ス ネ ッ ト (bd_intf_net オブジ ェ ク ト ) はブ ロ ッ ク デザ イ ン ま たはダ イ ア グ ラ ムで発生 し 、 イ ン タ ーフ ェ イ ス ポー ト (bd_intf_port) に接続 さ れ、 イ ン タ ーフ ェ イ ス ピ ン (bd_intf_pin) を介 し てダ イ ア グ ラ ムのブ ロ ッ ク デザ イ ン セル (bd_cell) に接続 さ れます。 ダ イ ア グ ラ ムの bd_intf_nets、 bd_cell、 bd_intf_pin、 お よ び bd_intf_port オブジ ェ ク ト は次の よ う に取得で き ます。 get_bd_intf_nets -of_objects [get_bd_ports] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 19 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) ま た、 特定の bd_intf_net に接続 さ れ る ブ ロ ッ ク デザ イ ン セル (bd_cell)、 bd_intf_pins、 ま たは bd_intf_port オブジ ェ ク ト は次の よ う に取得で き ます。 get_bd_cells -of_objects [get_bd_intf_nets /INTERRUPT_1_1] プ ロパテ ィ bd_intf_net オブジ ェ ク ト のプ ロ パテ ィ には次の も のがあ り ます。 Property Type Read-only Visible Value CLASS string true true bd_intf_net NAME string false true microblaze_0_axi_periph_to_s00_couplers PATH string true true /microblaze_0_axi_periph/microblaze_0_axi_periph_to_s00_couplers bd_intf_net オブジ ェ ク ト のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ル ま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_bd_intf_nets] 0] BD_INTF_PIN 説明 イ ン タ ーフ ェ イ ス と は共通の フ ァ ン ク シ ョ ン を共有す る 信号を グループ化 し た も ので、 個別信号 と 複数バ ス の両方が 含まれます。 た と えば、 AXI4-Lite マ ス タ ーには多 く の信号 と 複数のバ ス が含まれ、 こ れ ら はすべて接続に必要です。 こ れ ら の信号お よ びバ ス を イ ン タ ーフ ェ イ ス にグループ化す る と 、Vivado IP イ ン テ グ レー タ ーで共通の イ ン タ ーフ ェ イ ス が識別で き る よ う にな り 、 自動的に 1 つの手順で自動的に複数の接続が実行 さ れます。 イ ン タ ーフ ェ イ ス は、 IP-XACT 規格を使用 し て定義 さ れます。 ザ イ リ ン ク ス か ら 提供 さ れてい る 標準 イ ン タ ーフ ェ イ ス は、Vivado ツールの イ ン ス ト ール デ ィ レ ク ト リ data/ip/interfaces にあ り ます。 イ ン タ ーフ ェ イ ス ネ ッ ト 、 ピ ン、 ポー ト についての詳細は、 『Vivado Design Suite ユーザー ガ イ ド IP イ ン テ グ レー タ ーを使用 し た IP サブシ ス テ ムの設計』 (UG994) [参照 27] を参照 し て く だ さ い。 ブ ロ ッ ク デザ イ ン イ ン タ ーフ ェ イ ス ピ ン (bd_intf_pin オブジ ェ ク ト ) は、 ブ ロ ッ ク デザ イ ン セルの論理的接続ポ イ ン ト です。 イ ン タ ーフ ェ イ ス ピ ン では、 セルの内部は取 り 除いて、 使用 し やすい よ う に簡素化 さ れ ま す。 イ ン タ ー フ ェ イ ス ピ ンは、 階層ブ ロ ッ ク デザ イ ン セルま たは最下位セルに使用 さ れます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 20 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-5 EGBQHW EGBLQWIBQHW EGBLQWIBSLQ EGBFHOO EGBDGGUBVSDFH EGBDGGUBVHJ ; 図 2‐5 : ブ ロ ッ ク デザイ ン イ ン タ ー フ ェ イ ス ピ ン ブ ロ ッ ク デザ イ ン イ ン タ ーフ ェ イ ス ピ ンは、 ブ ロ ッ ク デザ イ ン セル (bd_cell) に接続 さ れ、 ブ ロ ッ ク デザ イ ン ま た は ダ イ ア グ ラ ム の イ ン タ ー フ ェ イ ス ネ ッ ト (bd_intf_net) を 使用す る こ と で、 そ の 他 の イ ン タ ー フ ェ イ ス ピ ン (bd_intf_pin) ま たは イ ン タ ーフ ェ イ ス ポー ト (bd_intf_port) に接続で き ます。 bd_addr_space、 bd_addr_seg、 bd_cell、 お よ び bd_intf_net オブジ ェ ク ト の bd_intf_pins は、 次の よ う に取得で き ます。 get_bd_intf_pins -of_objects [get_bd_cells clk_wiz_1] ま た、 次を使用す る と 、 特定の bd_intf ピ ンの bd_addr_spaces、 bd_addr_segs, bd_cells、 お よ び bd_intf_nets を取得す る こ と も で き ます。 get_bd_addr_spaces -of_objects [get_bd_intf_pins microblaze_0/*] プ ロパテ ィ ブ ロ ッ ク デザ イ ン イ ン タ ーフ ェ イ ス ピ ン オブジ ェ ク ト の特定のプ ロ パテ ィ は、 その ピ ンの タ イ プに よ っ て変わ る こ と があ り ます。 次の表には、 マ ス タ ー AXI イ ン タ ーフ ェ イ ス の ピ ン オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ の一 部を その値の例 と 共に リ ス ト し てい ます。 Property BRIDGES CLASS CONFIG.ADDR_WIDTH CONFIG.ARUSER_WIDTH CONFIG.AWUSER_WIDTH CONFIG.BUSER_WIDTH CONFIG.CLK_DOMAIN CONFIG.DATA_WIDTH CONFIG.FREQ_HZ CONFIG.ID_WIDTH Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 Type string string string string string string string string string string Read-only false true true true true true true true true true japan.xilinx.com Visible false true true true true true true true true true Value bd_intf_pin 32 0 0 0 /clk_wiz_0_clk_out1 32 100000000 0 21 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) CONFIG.MAX_BURST_LENGTH string CONFIG.NUM_READ_OUTSTANDING string CONFIG.NUM_WRITE_OUTSTANDING string CONFIG.PHASE string CONFIG.PROTOCOL string CONFIG.READ_WRITE_MODE string CONFIG.RUSER_WIDTH string CONFIG.SUPPORTS_NARROW_BURST string CONFIG.WUSER_WIDTH string LOCATION string MODE string NAME string PATH string TYPE string VLNV string xilinx.com:interface:aximm_rtl:1.0 true true true true true true true true true false true false true true true true true true true true true true true true true true true true true true 1 1 1 0.0 AXI4LITE READ_WRITE 0 0 0 Master M_AXI_DP /microblaze_0/M_AXI_DP ip bd_intf_pin オブジ ェ ク ト のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ル ま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_bd_intf_pins */*] 0] ま たは、 次の Tcl ス ク リ プ ト を使用す る と 、 各ブ ロ ッ ク デザ イ ン セルの bd_intf_pin オブジ ェ ク ト それぞれのプ ロ パ テ ィ が レ ポー ト さ れます。 foreach x [get_bd_intf_pins -of_objects [get_bd_cells]] { puts "Next Interface Pin starts here ..............................................." report_property -all $x } BD_INTF_PORT 説明 イ ン タ ーフ ェ イ ス と は共通の フ ァ ン ク シ ョ ン を共有す る 信号を グループ化 し た も ので、 個別信号 と 複数バ ス の両方が 含まれます。 た と えば、 AXI4-Lite マ ス タ ーには多 く の信号 と 複数のバ ス が含まれ、 こ れ ら はすべて接続に必要です。 こ れ ら の信号お よ びバ ス を イ ン タ ーフ ェ イ ス にグループ化す る と 、Vivado IP イ ン テ グ レー タ ーで共通の イ ン タ ーフ ェ イ ス が識別で き る よ う にな り 、 自動的に 1 つの手順で自動的に複数の接続が実行 さ れます。 イ ン タ ーフ ェ イ ス は、 IP-XACT 規格を使用 し て定義 さ れます。 ザ イ リ ン ク ス か ら 提供 さ れてい る 標準 イ ン タ ーフ ェ イ ス は、Vivado ツールの イ ン ス ト ール デ ィ レ ク ト リ data/ip/interfaces にあ り ます。 イ ン タ ーフ ェ イ ス ネ ッ ト 、 ピ ン、 ポー ト についての詳細は、 『Vivado Design Suite ユーザー ガ イ ド IP イ ン テ グ レー タ ーを使用 し た IP サブシ ス テ ムの設計』 (UG994) [参照 27] を参照 し て く だ さ い。 ブ ロ ッ ク デザ イ ン イ ン タ ーフ ェ イ ス ポー ト は、特別な タ イ プの階層ピ ン (ブ ロ ッ ク ダ イ ア グ ラ ムの最上位の ピ ン) で す。 ブ ロ ッ ク デザ イ ンでは、 ポー ト お よ び イ ン タ ーフ ェ イ ス が FPGA デザ イ ン全体ま たはシ ス テ ム レベル デザ イ ン 内外のブ ロ ッ ク デザ イ ン ま たはダ イ ア グ ラ ム と 外部接続 と の通信に使用 さ れ る 主なポー ト にな り ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 22 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-6 EGBSLQ EGBSRUW EGBLQWIBSRUW EGBQHW EGBLQWIBQHW GLDJUDP EGBLQWIBSLQ EGBFHOO EGBDGGUBVSDFH 図 2‐6 : ブ ロ ッ ク デザイ ン イ ン タ ー フ ェ イ ス ポー ト ブ ロ ッ ク デザ イ ン イ ン タ ーフ ェ イ ス ポー ト (bd_intf_port オブジ ェ ク ト ) はブ ロ ッ ク デザ イ ン ま たはダ イ ア グ ラ ム で 発生 し 、ブ ロ ッ ク デザ イ ン イ ン タ ーフ ェ イ ス ネ ッ ト (bd_intf_net) に よ っ てブ ロ ッ ク デザ イ ン セル (bd_cell) の ピ ン ま でに接続 さ れ ます。 ダ イ ア グ ラ ム の bd_intf_ports、 ま たはブ ロ ッ ク デザ イ ン イ ン タ ーフ ェ イ ス ネ ッ ト へ接続 さ れ る も のは、 次の よ う に取得で き ます。 get_bd_intf_ports -of_objects [get_bd_intf_nets] 次を使用す る と 、 bd_intf_port に接続 さ れ る イ ン タ ーフ ェ イ ス ネ ッ ト を取得す る こ と も で き ます。 get_bd_intf_nets -of_objects [get_bd_intf_ports CLK*] プ ロパテ ィ ブ ロ ッ ク デザ イ ン イ ン タ ーフ ェ イ ス ポー ト オブジ ェ ク ト の特定のプ ロ パテ ィ は、 そのポー ト の タ イ プに よ っ て変わ る こ と があ り ます。 次の表には、 ク ロ ッ ク の bd_intf_port オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ の一部を その値 の例 と 共に リ ス ト し てい ます。 Property CLASS LOCATION MODE NAME PATH VLNV Type string string string string string string Read-only true false true false true true Visible true true true true true true Value bd_intf_port 1950 430 Master ddr4_sdram /ddr4_sdram xilinx.com:interface:ddr4_rtl:1.0 bd_intf_port オブジ ェ ク ト のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ル ま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_bd_intf_ports] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 23 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) BD_NET 説明 ブ ロ ッ ク デザ イ ン ネ ッ ト (bd_net オブジ ェ ク ト ) は、 IP イ ン テ グ レー タ ー ブ ロ ッ ク デザ イ ン セルの ピ ン を その他の ピ ン ま たは外部ポー ト に接続 し ます。 bd_net オブジ ェ ク ト は、 複数レベルのデザ イ ン階層を介 し て接続 さ れ、 ブ ロ ッ ク デザ イ ン セルが接続 さ れます。すべてのネ ッ ト には、デザ イ ン で識別で き る よ う な名前が付 き ます。 こ れ ら のネ ッ ト へ接続 さ れ る すべてのブ ロ ッ ク デザ イ ン セル、 ピ ン、 お よ びポー ト は電気的に接続 さ れてい ます。 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-7 EGBSLQ EGBSRUW EGBLQWIBSRUW EGBQHW EGBLQWIBQHW EGBFHOO GLDJUDP EGBDGGUBVSDFH 図 2‐7 : ブ ロ ッ ク デザイ ン ネ ッ ト ブ ロ ッ ク デザ イ ン ネ ッ ト (bd_net オブジ ェ ク ト ) はブ ロ ッ ク デザ イ ン ま たはダ イ ア グ ラ ムで発生 し 、 ポー ト (bd_port) に接続 さ れ、 ピ ン (bd_pin) を介 し てダ イ ア グ ラ ムのブ ロ ッ ク デザ イ ン セル (bd_cell) に接続 さ れます。 ダ イ ア グ ラ ム の bd_nets、 bd_cell、 bd_pin、 お よ び bd_port オブジ ェ ク ト は次の よ う に取得で き ます。 get_bd_nets -of_objects [get_bd_ports] ま た、 特定の bd_net に接続 さ れ る bd_cells、 bd_pins、 ま たは bd_port オブジ ェ ク ト は次の よ う に取得で き ます。 get_bd_cells -of_objects [get_bd_nets clk_wiz*] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 24 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) プ ロパテ ィ bd_net オブジ ェ ク ト のプ ロ パテ ィ には次の も のがあ り ます。 Property CLASS NAME PATH Type string string string Read-only true false true Visible true true true Value bd_net clk_wiz_1_locked /clk_wiz_1_locked bd_net オブジ ェ ク ト のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま た は Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_bd_nets] 0] BD_PIN 説明 ブ ロ ッ ク デザ イ ン ピ ン (bd_pin オブジ ェ ク ト ) は、 ブ ロ ッ ク デザ イ ン セルの論理的接続ポ イ ン ト です。 ブ ロ ッ ク デ ザ イ ン ピ ン を使用す る と 、 セルの内部 ロ ジ ッ ク を取 り 除いて、 使用 し やすい よ う に簡素化で き ま す。 ピ ンは、 ス カ ラ ーま たはバ ス ピ ンで、 階層ブ ロ ッ ク デザ イ ン セルま たは最下位セルで使用で き ます。 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-8 EGBSLQ EGBQHW GLDJUDP EGBLQWIBQHW EGBFHOO EGBDGGUBVSDFH 図 2‐8 : ブ ロ ッ ク デザイ ン ピ ン 図 2-8 に示す よ う に、 ブ ロ ッ ク デザ イ ン ピ ンは、 ブ ロ ッ ク デザ イ ン セル (bd_cell) に接続 さ れ、 ブ ロ ッ ク デザ イ ン ま たはダ イ ア グ ラ ム のネ ッ ト (bd_net) を使用す る こ と で、 その他の ピ ン (bd_pin) ま たはポー ト (bd_port) に接続で き ま す。 bd_cell お よ び bd_net オブジ ェ ク ト の bd_pins は、 次の よ う に取得で き ます。 get_bd_pins -of_objects [get_bd_cells clk_wiz_1] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 25 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) ま た、 次を使用す る と 、 特定の bd_pin の bd_cell ま たは bd_net を取得する こ と も で き ます。 get_bd_cells -of [get_bd_pins */Reset] プ ロパテ ィ ブ ロ ッ ク デザ イ ン ピ ン オブジ ェ ク ト の特定のプ ロ パテ ィ は、 その ピ ンの タ イ プに よ っ て変わ る こ と があ り ます。 次 の表には、 Vivado Design Suite で CLK タ イ プの bd_pin オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ の一部を その値の 例 と 共に リ ス ト し てい ます。 Property Type Read-only Visible Value CLASS string true true bd_pin CONFIG.ASSOCIATED_BUSIF string true true CONFIG.ASSOCIATED_RESET string true true CONFIG.CLK_DOMAIN string true true design_migU_mig_0_1_c0_ddr4_ui_clk CONFIG.FREQ_HZ string true true 250000000 CONFIG.PHASE string true true 0.00 DIR string true true I INTF string true true FALSE LEFT string true true LOCATION string false true NAME string false true clk_in1 PATH string true true /clk_wiz_0/clk_in1 RIGHT string true true TYPE string true true clk bd_net オブジ ェ ク ト のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま た は Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_bd_pins */*] 0] BD_PORT 説明 ブ ロ ッ ク デザ イ ン ポー ト は、特別な タ イ プの階層ピ ン (ダ イ ア グ ラ ムの最上位の ピ ン) です。ブ ロ ッ ク デザ イ ン では、 ポー ト は、 FPGA デザ イ ン全体ま たはシ ス テ ム レベル デザ イ ン内外のブ ロ ッ ク デザ イ ン ま たはダ イ ア グ ラ ム と の外 部接続 と の通信に使用 さ れ る 主なポー ト です。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 26 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-9 EGBSLQ EGBSRUW EGBLQWIBSRUW EGBQHW EGBLQWIBQHW GLDJUDP EGBFHOO EGBDGGUBV 図 2‐9 : ブ ロ ッ ク デザイ ン ポー ト ブ ロ ッ ク デザ イ ン ポー ト (bd_port オブジ ェ ク ト ) はブ ロ ッ ク デザ イ ン ま たはダ イ ア グ ラ ムで発生 し 、 ブ ロ ッ ク デザ イ ン ネ ッ ト (bd_net) に よ っ て、 ダ イ ア グ ラ ム のブ ロ ッ ク デザ イ ン セル (bd_cell) の ピ ン (bd_pin) ま で接続 さ れ ます。 ダ イ ア グ ラ ムの bd_ports、 ま たはブ ロ ッ ク デザ イ ン ネ ッ ト へ接続 さ れ る も のは、 次の よ う に取得で き ます。 get_bd_ports -of_objects [get_bd_nets] 次を使用す る と 、 bd_port オブジ ェ ク ト に接続 さ れ る イ ン タ ーフ ェ イ ス ネ ッ ト を取得で き ます。 get_bd_nets -of_objects [get_bd_ports aux_reset_in] プ ロパテ ィ ブ ロ ッ ク デザ イ ン ポー ト オブジ ェ ク ト の特定のプ ロ パテ ィ は、そのポー ト の タ イ プに よ っ て変わ る こ と があ り ます。 次の表には、 Vivado Design Suite で RESET タ イ プの bd_port オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ の一部を その 値の例 と 共に リ ス ト し てい ます。 Property CLASS CONFIG.POLARITY DIR INTF LEFT LOCATION NAME PATH RIGHT TYPE Type string string string string string string string string string string Read-only true false true true false false false true false true Visible true true true true true true true true true true Value bd_port ACTIVE_LOW I FALSE 130 560 aux_reset_in /aux_reset_in rst bd_port オブジ ェ ク ト のプ ロ パテ ィ を確認する には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま た は Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_bd_ports] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 27 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) BEL 説明 BEL ま たは基本エ レ メ ン ト は、 デザ イ ンのネ ッ ト リ ス ト ビ ュ ーの最下位セルに該当す る も ので、 タ ーゲ ッ ト ザ イ リ ン ク ス FPGA のデバ イ ス オブジ ェ ク ト で、 フ リ ッ プ フ ロ ッ プ、 LUT、 キ ャ リ ー ロ ジ ッ ク な ど の基本ネ ッ ト リ ス ト オ ブジ ェ ク ト をデバ イ ス に配置ま たはマ ッ プす る ための も のです。 BEL はデバ イ ス上で ス ラ イ スや I/O ブ ロ ッ ク (IOB) な ど の SITE オブジ ェ ク ト に ま と め ら れてい ます。1 つのサ イ ト に は BEL が 1 つま たは複数存在 し ます。 こ の BEL を使用 し て、デザ イ ン ネ ッ ト リ ス ト を タ ーゲ ッ ト デバ イ ス の特定の ロ ケーシ ョ ンやデバ イ ス リ ソ ース に ロ ジ ッ ク を割 り 当て ます。 ザ イ リ ン ク ス FPGA ご と に さ ま ざ ま な異な る BEL タ イ プがあ り ます。 次は、 Kintex®-7 パーツ、 XC7K70TFBG676 の BEL の タ イ プです。 BEL には、 次の よ う に さ ま ざ ま な タ イ プがあ り ます。 AFF AFF2 BFF BFF2 BITSLICE_CONTROL_BEL BSCAN1 BSCAN2 BSCAN3 BSCAN4 BSCAN_BSCAN BUFCE_BUFCE BUFCE_BUFCE_LEAF BUFCE_BUFCE_ROW BUFFER BUFGCE_DIV_BUFGCE_DIV BUFGCTRL_BUFGCTRL BUFG_GT_BUFG_GT BUFG_GT_BUFG_GT_SYNC BUFHCE_BUFHCE BUFIO_BUFIO BUFMRCE_BUFMRCE BUFR_BUFR CAPTURE_CAPTURE CARRY4 CARRY8 CFF CFF2 CFG_IO_ACCESS DCIRESET DCIRESET_DCIRESET DFF DFF2 DNA_PORT DNA_PORT_DNA_PORT DSP48E1_DSP48E1 DSP_ALU DSP_A_B_DATA DSP_C_DATA DSP_MULTIPLIER DSP_M_DATA DSP_OUTPUT DSP_PREADD DSP_PREADD_DATA EFF EFF2 EFUSE_USR EFUSE_USR_EFUSE_USR F7MUX F8MUX F9MUX FFF FFF2 FF_INIT FIFO18E1_FIFO18E1 FRAME_ECC FRAME_ECC_FRAME_ECC GCLK_DELAY GFF GFF2 GTHE3_CHANNEL_GTHE3_CHANNEL GTHE3_CHANNEL_IPAD1 GTHE3_CHANNEL_IPAD2 GTHE3_CHANNEL_OPAD1 GTHE3_CHANNEL_OPAD2 GTHE3_COMMON_GTHE3_COMMON GTHE3_COMMON_PADN GTHE3_COMMON_PADP GTXE2_CHANNEL_GTXE2_CHANNEL GTXE2_COMMON_GTXE2_COMMON HARD0 HARD1 HARD_SYNC_SYNC_UNIT HFF HFF2 HPIOBDIFFINBUF_DIFFINBUF HPIOBDIFFOUTBUF_DIFFOUTBUF HPIOB_IBUFCTRL HPIOB_INBUF HPIOB_OUTBUF HPIOB_PAD HPIOB_PULL HPIO_OUTINV HPIO_VREF Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 28 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) HRIODIFFINBUF_DIFFINBUF HRIODIFFOUTBUF_DIFFOUTBUF HRIO_IBUFCTRL HRIO_INBUF HRIO_OUTBUF HRIO_OUTINV HRIO_PAD HRIO_PULL IBUFDS0_GTE3 IBUFDS1_GTE3 IBUFDS_GTE2_IBUFDS_GTE2 ICAP_BOT ICAP_ICAP ICAP_TOP IDELAYCTRL_IDELAYCTRL IDELAYE2_FINEDELAY_IDELAYE2_FINEDELAY IDELAYE2_IDELAYE2 ILOGICE2_IFF ILOGICE3_IFF ILOGICE3_ZHOLD_DELAY INVERTER IN_FIFO_IN_FIFO IOB18M_INBUF_DCIEN IOB18M_OUTBUF_DCIEN IOB18M_TERM_OVERRIDE IOB18S_INBUF_DCIEN IOB18S_OUTBUF_DCIEN IOB18S_TERM_OVERRIDE IOB18_INBUF_DCIEN IOB18_OUTBUF_DCIEN IOB18_TERM_OVERRIDE IOB33M_INBUF_EN IOB33M_OUTBUF IOB33M_TERM_OVERRIDE IOB33S_INBUF_EN IOB33S_OUTBUF IOB33S_TERM_OVERRIDE IOB33_INBUF_EN IOB33_OUTBUF IOB33_TERM_OVERRIDE LUT5 LUT6 LUT_OR_MEM5 LUT_OR_MEM6 MASTER_JTAG MMCME2_ADV_MMCME2_ADV MMCME3_ADV_MMCM_TOP OBUFDS0_GTE3 OBUFDS1_GTE3 ODELAYE2_ODELAYE2 OLOGICE2_MISR OLOGICE2_OUTFF OLOGICE2_TFF OLOGICE3_MISR OLOGICE3_OUTFF OLOGICE3_TFF OUT_FIFO_OUT_FIFO PAD PCIE_2_1_PCIE_2_1 PCIE_3_1_PCIE_3_1 PHASER_IN_PHY_PHASER_IN_PHY PHASER_OUT_PHY_PHASER_OUT_PHY PHASER_REF_PHASER_REF PHY_CONTROL_PHY_CONTROL PLLE2_ADV_PLLE2_ADV PLLE3_ADV_PLL_TOP PLL_SELECT_BEL PMV2_PMV2 PULL_OR_KEEP1 RAMB18E1_RAMB18E1 RAMB18E2_U_RAMB18E2 RAMBFIFO18E2_RAMBFIFO18E2 RAMBFIFO36E1_RAMBFIFO36E1 RAMBFIFO36E2_RAMBFIFO36E2 REG_INIT RIU_OR_BEL RXTX_BITSLICE SELMUX2_1 SLICEL_A5LUT SLICEL_A6LUT SLICEL_B5LUT SLICEL_B6LUT SLICEL_C5LUT SLICEL_C6LUT SLICEL_CARRY4_AMUX SLICEL_CARRY4_AXOR SLICEL_CARRY4_BMUX SLICEL_CARRY4_BXOR SLICEL_CARRY4_CMUX SLICEL_CARRY4_CXOR SLICEL_CARRY4_DMUX SLICEL_CARRY4_DXOR SLICEL_D5LUT SLICEL_D6LUT SLICEL_E5LUT SLICEL_E6LUT SLICEL_F5LUT SLICEL_F6LUT SLICEL_G5LUT SLICEL_G6LUT SLICEL_H5LUT SLICEL_H6LUT SLICEM_A5LUT SLICEM_A6LUT SLICEM_B5LUT SLICEM_B6LUT SLICEM_C5LUT SLICEM_C6LUT SLICEM_CARRY4_AMUX SLICEM_CARRY4_AXOR SLICEM_CARRY4_BMUX SLICEM_CARRY4_BXOR SLICEM_CARRY4_CMUX SLICEM_CARRY4_CXOR SLICEM_CARRY4_DMUX SLICEM_CARRY4_DXOR SLICEM_D5LUT SLICEM_D6LUT Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 29 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) SLICEM_E5LUT SLICEM_E6LUT SLICEM_F5LUT SLICEM_F6LUT SLICEM_G5LUT SLICEM_G6LUT SLICEM_H5LUT SLICEM_H6LUT STARTUP STARTUP_STARTUP SYSMONE1_SYSMONE1 SYSMON_IPAD1 SYSMON_IPAD2 TRISTATE_TX_BITSLICE USR_ACCESS USR_ACCESS_USR_ACCESS XADC_XADC XIPHY_FEEDTHROUGH_BEL 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-10 1HW 3RUW 3LQ &ORFN 7LPLQJ 3DWK 1RGH &HOO %HO3LQ &ORFN 5HJLRQ %HO :LUH 3DFNDJH 3LQ 6LWH 6LWH3LQ 6LWH3LS 3LS ,2%DQN 7LOH ,2 6WDQGDUG 6/5 ; 図 2‐10 : BEL オブ ジ ェ ク ト 30 ページの図 2-10 にあ る よ う に、 ネ ッ ト リ ス ト デザ イ ンの最下位セルは タ ーゲ ッ ト パーツ の BEL にマ ッ プす る こ と がで き ます。 BEL は タ ーゲ ッ ト ザ イ リ ン ク ス デバ イ ス のサ イ ト に ま と め ら れ、 BEL と サ イ ト の両方が タ イ ル と ク Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 30 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) ロ ッ ク 領域に ま と め ら れ ます。 各 BEL にはセルの ピ ン にマ ッ プす る BEL ピ ンがあ り 、 ま た BEL がネ ッ ト リ ス ト オ ブジ ェ ク ト であ る ネ ッ ト への接続点にな り ます。 次を使用す る と 、 SLR、 サ イ ト 、 セル、 ク ロ ッ ク 領域、 ネ ッ ト の BEL を取得で き ます。 get_bels -of [get_clock_regions X1Y3] セル、 サ イ ト 、 タ イ ル、 BEL オブジ ェ ク ト のBEL ピ ン も 次の よ う に取得で き ます。 get_cells -of [get_bels SLICE_X104Y100/B6LUT] プ ロパテ ィ BEL オブジ ェ ク ト に割 り 当て ら れ る プ ロ パテ ィ は タ イ プに よ っ て異な り ます。 次は、 BEL の BUFIO タ イ プに割 り 当 て ら れたプ ロ パテ ィ と その値の例を示 し てい ます。 Property CLASS CONFIG.DELAY_BYPASS.VALUES IS_RESERVED IS_TEST IS_USED NAME NUM_BIDIR NUM_CONFIGS NUM_INPUTS NUM_OUTPUTS NUM_PINS PROHIBIT TYPE Type string string bool bool bool string int int int int int bool string Read-only true true true true true true true true true true true false true Visible true true true true true true true true true true true true true Value bel FALSE, TRUE 0 0 0 BUFIO_X0Y13/BUFIO 0 1 1 1 2 0 BUFIO_BUFIO BEL オブジ ェ ク ト に割 り 当て ら れ る プ ロ パテ ィ は TYPE に よ っ て異な り ます。 上記に リ ス ト さ れてい る BEL の各 タ イ プのプ ロ パテ ィ を確認す る には、 report_property コ マ ン ド を使用 し ます。 report_property -all [lindex [get_bels -filter {TYPE == <BEL_TYPE>}] 0] <BEL_TYPE> には リ ス ト さ れてい る BEL タ イ プの 1 つが入 り ます。 次は、 その例です。 report_property -all [lindex [get_bels -filter {TYPE == SLICEM_CARRY4_AXOR}] 0] report_property -all [lindex [get_bels -filter {TYPE == LUT5}] 0] report_property -all [lindex [get_bels -filter {TYPE == IOB33S_OUTBUF}] 0] ヒ ン ト : report_property コ マ ン ド は、 現在のデザ イ ン で関連オブジ ェ ク ト が見つか ら なか っ た場合、 オブジ ェ ク ト が 見つか ら ない と い う 内容の警告 メ ッ セージ を返す こ と があ り ます。 こ の コ マ ン ド の詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 31 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) BEL_PIN 説明 X-Ref Target - Figure 2-11 1HW 3RUW 3LQ &ORFN 7LPLQJ 3DWK 1RGH &HOO %HO3LQ &ORFN 5HJLRQ %HO :LUH DJH Q 6LWH 6LWH3LQ 6LWH3LS 3LS DQN 7LOH 2 GDUG 6/5 ; 図 2‐11 : BEL_PIN オブ ジ ェ ク ト BEL_PIN は、 BEL オブジ ェ ク ト の ピ ン ま たは接続ポ イ ン ト で、 ロ ジ ッ ク CELL の PIN (NET の接続ポ イ ン ト ) の よ う なネ ッ ト リ ス ト オブジ ェ ク ト に関連す る デバ イ ス オブジ ェ ク ト です。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 32 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 関連オブ ジ ェ ク ト 図 2-11 に示す よ う に、 BEL_PIN オブジ ェ ク ト は、 BEL お よ び SITE デバ イ ス リ ソ ース と 、 PIN お よ び NET ネ ッ ト リ ス ト オブジ ェ ク ト に関連 し てい ます。次の Tcl コ マ ン ド 形式を使用す る と 、BEL、SITE、PIN、 ま たは NET の BEL_PIN を取得で き ます。 get_bel_pins -of_objects [get_pins usbEngine0/usbEngineSRAM/Ram_reg_9/CLKARDCLK] ま た、 SLR、 お よ び BEL_PIN が存在す る TILE や、 BEL_PIN に関連す る NODE も 取得で き ます。 get_slr -of_objects [get_bel_pins SLICE_X8Y176/D5LUT/WA5] プ ロパテ ィ 次は BEL_PIN オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ と その値の例です。 Property CLASS DIRECTION INDEX INDEX_IN_BEL INDEX_IN_BUS INDEX_IN_ELEMENT INDEX_IN_TILE IS_BAD IS_BIDIR IS_CLOCK IS_DATA IS_ENABLE IS_INPUT IS_OPTIONALLY_INVERTIBLE IS_OUTPUT IS_PART_OF_BUS IS_RESET IS_SET IS_TEST IS_USED NAME SITE_ID SPEED_INDEX Type string enum int int int int int bool bool bool bool bool bool bool bool bool bool bool bool bool string int int Read-only true true true true true true true true true true true true true true true true true true true true true true true Visible true true true true true true true true true true true true true false true true true true true true true true true Value bel_pin IN 1 1 1023 1 65535 0 0 0 0 1 1 0 0 0 0 0 0 0 IOB_X0Y197/OUTBUF/TRI 188 0 Vivado Design Suite Tcl シ ェ ル ま たは Tcl コ ン ソ ールで次の FOREACH ループ を使用す る と 、 特定 BEL オブジ ェ ク ト の BEL_PIN すべてのプ ロ パテ ィ を レ ポー ト で き ます。 foreach x [get_bel_pins -of [get_bels <bel_name>]] { puts "****************** $x *****************" report_property -all $x } <bel_name> は、 レ ポー ト す る BEL オブジ ェ ク ト の名前です。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 33 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) CELL 説明 CELL は、 ネ ッ ト リ ス ト ロ ジ ッ ク オブジ ェ ク ト の イ ン ス タ ン ス で、 最下位セルであ っ た り 、 階層セルであ っ た り し ま す。 最下位セルはプ リ ミ テ ィ ブ ま たはプ リ ミ テ ィ ブ マ ク ロ で、 ネ ッ ト リ ス ト には ロ ジ ッ ク の詳細はあ り ません。 階層 セルはモジ ュ ールま たはブ ロ ッ ク で、 1 つ以上の レベルの ロ ジ ッ ク を含み、 最終的には最下位セル も 含みます。 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-12 1HW 3RUW 3LQ &ORFN 7LPLQJ 3DWK 1RGH &HOO %HO3LQ &ORFN 5HJLRQ %HO :LUH 3DFNDJH 3LQ 6LWH 6LWH3LQ 図 2‐12 : CELL オブ ジ ェ ク ト 図 2-12 にあ る よ う に、 セルには外部ネ ッ ト リ ス ト を定義す る ためネ ッ ト に接続 さ れてい る ピ ンがあ り ます。 階層セ ルにはピ ンに関連付け ら れてい る ポー ト も 含まれ、 階層の内部ネ ッ ト リ ス ト を定義す る ためネ ッ ト に内部接続 さ れて い ます。 最下位セルは タ ーゲ ッ ト のザ イ リ ン ク ス FPGA のデバ イ ス リ ソ ース に配置ま たはマ ッ プ さ れ ます。 フ リ ッ プ フ ロ ッ プ、 LUT、 MUX な ど の基本 ロ ジ ッ ク の場合、 セルは BEL オブジ ェ ク ト に配置 さ れ、 BRAM や DSP な ど の大型 ロ ジ ッ ク セルの場合、 セルはサ イ ト オブジ ェ ク ト に配置 さ れます。 BEL は さ ら に大 き なサ イ ト であ る ス ラ イ ス に も ま と め ら れ る ので、 セルは BEL お よ びサ イ ト オブジ ェ ク ト に関連付け る こ と がで き る のです。 サ イ ト は ク ロ ッ ク 領域お よ び タ イ ルに ま と め ら れます。 ま た、 セルはデザ イ ンの タ イ ミ ン グ パ ス に関連付け ら れ る ので、 DRC 違反に も 関連付け る こ と がで き 、 デザ イ ンに 関す る 問題をすばや く 見つけ出 し 解決す る のに役立ち ます。 次を使用す る と 、 ピ ン、 タ イ ミ ン グ パ ス、 ネ ッ ト 、 BEL、 ク ロ ッ ク 領域、 サ イ ト 、 ま たは DRC 違反に関連付け ら れ たセルを取得で き ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 34 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) get_cells -of [get_nets clk] プ ロパテ ィ 最下位セル オブジ ェ ク ト には、 次の よ う に PRIMITIVE_GROUP、 PRIMITIVE_SUBGROUP、 PRIMITIVE_TYPE と い う プ ロ パテ ィ で定義 さ れてい る タ イ プがあ り ます。 表 2‐1 : PRIMITIVE_GROUP PRIMITIVE_SUBGROUP PRIMITIVE_TYPE BLOCKRAM BRAM BLOCKRAM.BRAM.RAMB18E2 BLOCKRAM.BRAM.RAMB36E2 CLB CARRY CLB.CARRY.CARRY8 LUT CLB.LUT.LUT1 CLB.LUT.LUT2 CLB.LUT.LUT3 CLB.LUT.LUT4 CLB.LUT.LUT5 CLB.LUT.LUT6 LUTRAM CLB.LUTRAM.RAM32M CLB.LUTRAM.RAM32M16 CLB.LUTRAM.RAM32X1D MUXF CLB.MUXF.MUXF7 CLB.MUXF.MUXF8 SRL CLB.SRL.SRL16E CLB.SRL.SRLC16E CLB.SRL.SRLC32E Others CLB.others.LUT6_2 BUFFER CLOCK.BUFFER.BUFGCE CLOCK.BUFFER.BUFGCE_DIV PLL CLOCK.PLL.MMCME3_ADV CLOCK.PLL.PLLE3_ADV CONFIGURATION BSCAN CONFIGURATION.BSCAN.BSCANE2 I/O BDIR_BUFFER I/O.BIDIR_BUFFER.IOBUFDS BITSLICE I/O.BITSLICE.BITSLICE_CONTROL I/O.BITSLICE.RIU_OR I/O.BITSLICE.RXTX_BITSLICE I/O.BITSLICE.TX_BITSLICE_TRI INPUT_BUFFER I/O.INPUT_BUFFER.HPIO_VREF I/O.INPUT_BUFFER.IBUF I/O.INPUT_BUFFER.IBUFDS OUTPUT_BUFFER I/O.OUTPUT_BUFFER.IOBUFE3 I/O.OUTPUT_BUFFER.OBUF I/O.OUTPUT_BUFFER.OBUFDS CLOCK Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 35 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) PRIMITIVE_GROUP PRIMITIVE_SUBGROUP PRIMITIVE_TYPE others others.others.others OTHERS.others.AND2B1L OTHERS.others.GND OTHERS.others.VCC REGISTER SDR REGISTER.SDR.FDCE REGISTER.SDR.FDPE REGISTER.SDR.FDRE REGISTER.SDR.FDSE RTL_GATE buf RTL_GATE.buf.RTL_INV logical RTL_GATE.logical.RTL_AND RTL_GATE.logical.RTL_OR RTL_GATE.logical.RTL_XOR ram RTL_MEMORY.ram.RTL_RAM rom RTL_MEMORY.rom.RTL_ROM RTL_MUX mux RTL_MUX.mux.RTL_MUX RTL_OPERATOR arithmetic RTL_OPERATOR.arithmetic.RTL_ADD RTL_OPERATOR.arithmetic.RTL_MULT RTL_OPERATOR.arithmetic.RTL_SUB equality RTL_OPERATOR.equality.RTL_EQ shift RTL_OPERATOR.shift.RTL_RSHIFT flop RTL_REGISTER.flop.RTL_REG OTHERS RTL_MEMORY REGISTER すべてのセルに共通のプ ロ パテ ィ セ ッ ト があ り ますが、各セルのグループ、 サブグループお よ び タ イ プに も 独自のプ ロ パテ ィ があ る 場合があ り ます。PRIMITIVE_GROUP、PRIMITIVE_SUBGROUP ま たは PRIMITIVE_TYPE プ ロ パテ ィ の値で フ ィ ル タ ーす る と 、 特定 タ イ プのセル オブジ ェ ク ト のプ ロ パテ ィ を確認で き ます。 PRIMITIVE_TYPE は列挙プ ロ パテ ィ で、 定義 さ れた値は list_property_value コ マ ン ド で戻 さ れます。 list_property_value -class cell PRIMITIVE_TYPE ただ し 、 デザ イ ン には定義 さ れた PRIMITIVE_TYPE ご と にセルはおそ ら く 含ま れ ません。 次の Tcl コ ー ド では、 デ ザ イ ン中の階層が検索 さ れ、 デザ イ ンのすべてのセルの PRIMITIVE_TYPE プ ロ パテ ィ が返 さ れます。 foreach x [get_cells -hierarchical *] { lappend primTypes [get_property PRIMITIVE_TYPE $x] } join [lsort -unique $primTypes] \n 次の コ マ ン ド を使用す る と 、 返 さ れた リ ス ト ($primTypes) か ら 特定の PRIMITIVE_TYPE のプ ロ パテ ィ を確認で き ます。 report_property -all [lindex [get_cells -hier -filter {PRIMITIVE_TYPE == <val>}] 0] <val> には具体的な PRIMITIVE_TYPE を指定 し ます。 た と えば、 BLOCKRAM.BRAM.RAM18E2 タ イ プのセルのプ ロ パテ ィ を返すには、 次の コ マ ン ド を使用 し ます。 report_property -all [lindex [get_cells -hier -filter {PRIMITIVE_TYPE == "BLOCKRAM.BRAM.RAMB18E2"}] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 36 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) ヒ ン ト : report_property コ マ ン ド は、 現在のデザ イ ン で関連オブジ ェ ク ト が見つか ら なか っ た場合、 オブジ ェ ク ト が 見つか ら ない と い う 内容の警告 メ ッ セージ を返す こ と があ り ます。 こ の コ マ ン ド の詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 次の Tcl コ マ ン ド を使用す る と 、 階層セルま たは非最下位セルか ら プ ロ パテ ィ を戻す こ と も で き ます。 report_property -all [lindex [get_cells -hier -filter {!IS_PRIMITIVE}] 0] も ち ろん、 特定セルのプ ロ パテ ィ を単に返す こ と も で き ます。 report_property -all [get_cells <cell_name>] CLOCK 説明 CLOCK オブジ ェ ク ト を使用す る と 、 Vivado Design Suite で時間基準が考慮 さ れ る よ う にな り 、 信頼性を持っ て レ ジ ス タ 間のデー タ を伝送で き る よ う にな り ます。 Vivado タ イ ミ ン グ エン ジ ンでは、 CLOCK オブジ ェ ク ト のプ ロ パテ ィ を 使用 し て、 デザ イ ンのセ ッ ト ア ッ プ要件 と ホール ド 要件を計算 し 、 ス ラ ッ ク 計算でデザ イ ン タ イ ミ ン グ マージ ン を レ ポー ト し ます。 タ イ ミ ン グ パス をで き る だけ正確に網羅する ためには、 CLOCK オブジ ェ ク ト を正 し く 定義す る 必 要があ り ます。 ク ロ ッ ク は、 PERIOD と WAVEFORM プ ロ パテ ィ を使用 し て定義 し ます。 PERIOD (周期) はナ ノ 秒で指定 し 、 ク ロ ッ ク サ イ ク ルの長 さ を定義 し ます。 こ れは波形が繰 り 返す時間の間隔に対応 し ます。 波形は、 ク ロ ッ ク 周期内の立ち上 が り エ ッ ジお よ び立ち下が り エ ッ ジの絶対時間 (ns) の リ ス ト です。 ク ロ ッ ク の定義については、 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 19] を参照 し て く だ さ い。 周期お よ び波形は、 ク ロ ッ ク の理想的な特性を表 し ま す。 ク ロ ッ ク が FPGA デバ イ ス に入力 さ れ、 ク ロ ッ ク ツ リ ー を介 し て伝搬 さ れ る と 、 ク ロ ッ ク エ ッ ジに遅延が発生 し 、 ノ イ ズお よ びハー ド ウ ェ アの動作に よ り 変動す る 可能性が あ り ます。 こ れ ら は ク ロ ッ ク ネ ッ ト ワー ク レ イ テ ン シお よ び ク ロ ッ ク のば ら つき と 呼ばれます。 Vivado Design Suite では、 ク ロ ッ ク はデフ ォ ル ト で レ イ テ ン シお よ びば ら つ き を含む伝搬 さ れた ク ロ ッ ク と し て処理 さ れ、 ク ロ ッ ク ツ リ ー挿入遅延お よ びば ら つ き を含む正確な ス ラ ッ ク 値が算出 さ れます。 Vivado ツールでは、 さ ま ざ ま な タ イ プの ク ロ ッ ク がサポー ト さ れます。 • プ ラ イ マ リ ク ロ ッ ク - プ ラ イ マ リ 入力ポー ト ま たはギガ ビ ッ ト ト ラ ン シーバー ピ ン を介 し て Vivado デザ イ ン に入力す る シ ス テ ム レベルの ク ロ ッ ク で、 create_clock コ マ ン ド で定義 し ます。 プ ラ イ マ リ ク ロ ッ ク のデザ イ ン ソ ース では、遅延値を計算す る 際に Vivado タ イ ミ ン グ エン ジ ンで使用 さ れ る タ イ ム ゼ ロ お よ び伝搬ポ イ ン ト を定義 し ます。 • 仮想 ク ロ ッ ク - デザ イ ンの ど のネ ッ ト リ ス ト エ レ メ ン ト に も 物理的に接続 さ れていない CLOCK オブジ ェ ク ト で、 ク ロ ッ ク を割 り 当て る ソ ース オブジ ェ ク ト を指定せずに create_clock コ マ ン ド で定義 し ます。 • 生成 ク ロ ッ ク - MMCM な ど の ク ロ ッ ク 調整ブ ロ ッ ク と 呼ばれ る 特別なセルま たはユーザー ロ ジ ッ ク に よ り 駆動 さ れます。 生成 ク ロ ッ ク は、 create_generated_clock コ マ ン ド でマ ス タ ー ク ロ ッ ク か ら 派生 さ れた も ので、 IS_GENERATED プ ロ パテ ィ が含まれます。生成 ク ロ ッ ク の周期お よ び波形を指定する 代わ り に、マ ス タ ー ク ロ ッ ク が調整回路で ど の よ う に変換 さ れ る か を記述す る 必要があ り ます。 ク ロ ッ ク は、 専用デバ イ ス リ ソ ース を使用 し てデザ イ ンに伝搬 さ れ ます。 ク ロ ッ ク リ ソ ース の詳細については、 『7 シ リ ーズ FPGA ク ロ ッ キ ン グ リ ソ ース ユーザー ガ イ ド 』 (UG472) [参照 3] ま たは 『UltraScale アーキ テ ク チ ャ ク ロ ッ キ ン グ リ ソ ース ユーザー ガ イ ド 』 (UG572) [参照 9] を参照 し て く だ さ い。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 37 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-13 1HW 3RUW 3LQ &ORFN 7LPLQJ 3DWK 1RGH &HOO 図 2‐13 : CLOCK オブ ジ ェ ク ト CLOCK オブジ ェ ク ト は、 その ソ ー ス で あ る PORT、 NET、 CELL、 ま たは PIN に関連 し てお り 、 create_clock コ マ ン ド で 定義 さ れ ま す。 ネ ッ ト リ ス ト オ ブ ジ ェ ク ト に 関連す る ク ロ ッ ク は、 get_clock ま たは get_generated_clocks コ マ ン ド を使用す る と 取得で き ます。 get_clocks -of_objects [get_ports <port_name>] ク ロ ッ ク に関連す る ネ ッ ト リ ス ト オブジ ェ ク ト (NET、 PIN、 PORT) を取得する こ と も で き ます。 get_nets -of_objects [get_clocks] プ ロパテ ィ 次は ク ロ ッ ク オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ と その値の例です。 Property CLASS DIVIDE_BY DUTY_CYCLE EDGES EDGE_SHIFT INPUT_JITTER IS_GENERATED IS_INVERTED IS_PROPAGATED IS_USER_GENERATED IS_VIRTUAL MASTER_CLOCK MULTIPLY_BY NAME PERIOD SOURCE SOURCE_PINS SYSTEM_JITTER WAVEFORM Type string int double int* double* double bool bool bool bool bool clock int string double pin string* double double* Read-only true true true true true true true true true true true true true true true true true true true Visible true true true true true true true true true true true true true true true true true true true Value clock 0.000 1 0 1 0 0 sysClk 1 fftClk_0 10.000 clkgen/mmcm_adv_inst/CLKIN1 clkgen/mmcm_adv_inst/CLKOUT5 0.050 0.000 5.000 report_property コ マ ン ド を使用す る と 、 CLOCK オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ を確認で き ます。 詳 細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 特定 ク ロ ッ ク のプ ロ パテ ィ を確認す る には、 Vivado Design Suite の Tcl シ ェ ルま たは Tcl コ ン ソ ールで次の コ マ ン ド を使用 し ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 38 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) report_property -all [get_clocks <clock_name>] <clock_name> は、 レ ポー ト す る ク ロ ッ ク の名前です。 CLOCK_REGION X-Ref Target - Figure 2-14 &ORFN 7LPLQJ 3DWK 1RGH &HOO %HO3LQ &ORFN 5HJLRQ %HO :LUH 3DFNDJH 3LQ 6LWH 6LWH3LQ 6LWH3LS 3LS ,2%DQN 7LOH ,2 6WDQGDUG 6/5 ; 図 2‐14 : CLOCK_REGION オブ ジ ェ ク ト 説明 ク ロ ッ ク 供給目的で、 各デバ イ ス は ク ロ ッ ク 領域に分割 さ れます。 CLOCK_REGION は、 ザ イ リ ン ク ス FPGA、 ま た は ク ロ ッ ク リ ソ ー ス のセ ッ ト が使用 さ れ る デバ イ ス のエ リ ア を区別す る デバ イ ス オブジ ェ ク ト です。 ク ロ ッ ク 領域 には、 コ ン フ ィ ギ ャ ラ ブル ロ ジ ッ ク ブ ロ ッ ク (CLB)、 DSP ス ラ イ ス、 ブ ロ ッ ク RAM、 イ ン タ ーコ ネ ク ト 、 関連す る ク ロ ッ ク が含まれます。 ク ロ ッ ク 領域の数は、 デバ イ ス のサ イ ズに よ っ て異な り ます。 UltraScale デバ イ ス は、 分割 さ れた ク ロ ッ ク 領域の列 と 行に分割 さ れ ま す。 こ れ ら の ク ロ ッ ク 領域は、 タ イ ルに並べ ら れ、 デバ イ ス の幅半分には広が ら ないので、 前の フ ァ ミ リ と は異な り ます。 UltraScale デバ イ ス の場合、 ク ロ ッ ク 領域の高 さ は、 60 個分の CLB、 24 個分の DSP ス ラ イ ス、 12 個分のブ ロ ッ ク RAM で、 中央には水平 ク ロ ッ ク ス パ イ ン (HCS) があ り ます。 ク ロ ッ ク 領域に一致す る 間隔にはバン ク ご と に I/O が 52 個、 ギガ ビ ッ ト ト ラ ン シーバー (GT) が 4 つあ り ます。 7 シ リ ーズ デバ イ ス の場合、 ク ロ ッ ク 領域には 50 個の CLB、 50 個の I/O を含む I/O バン ク 1 つ、 真ん中には水平 ク ロ ッ ク 行 (HROW) があ り ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 39 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) ク ロ ッ ク 領域の I/O バン ク には、 ク ロ ッ ク 領域内の ク ロ ッ ク 配線 リ ソ ース にユーザー ク ロ ッ ク を使用す る CC (Clock Capable) ピ ンが含まれます。 ク ロ ッ ク 領域 と そ こ に含まれ る リ ソ ース の詳細については、『7 シ リ ーズ FPGA ク ロ ッ キ ン グ リ ソ ース ユーザー ガ イ ド 』 (UG472) [参照 3] ま たは 『UltraScale アーキ テ ク チ ャ ク ロ ッ キ ン グ リ ソ ース ユーザー ガ イ ド 』 (UG572) [参照 9] を 参照 し て く だ さ い。 関連オブ ジ ェ ク ト CLOCK_REGION オブジ ェ ク ト は、 ク ロ ッ ク 領域のあ る デバ イ ス の SLR (Super Logic Region)、 ま たは ク ロ ッ ク 領域で 見つか っ た TILE、 SITE、 ま たは PACKAGE_BANK デバ イ ス オブジ ェ ク ト に関連づけれ ら れてい ます。 ま た、 CELL ネ ッ ト リ ス ト オブジ ェ ク ト が配置 さ れてい る CLOCK_REGION を取得す る こ と も で き ます。 次の よ う な Tcl コ マ ン ド を使用す る と 、 関連オブジ ェ ク ト の CLOCK_REGION を取得で き 、 指定セルが配置 さ れ る ク ロ ッ ク 領域が返 さ れます。 get_clock_regions -of [get_cells usbEngine0/u1/u0/crc16_sum_reg[7]] ま た、 CLOCK_REGION に関連付け ら れてい る 、 ま たは CLOCK_REGION に あ る SLR、 TILE、 SITE、 BEL、 お よ び IO_BANK デバ イ ス オブジ ェ ク ト を取得す る こ と も で き ます。 た と えば、 次の Tcl コ マ ン ド を使用す る と 、 指定セル が配置 さ れた同 じ ク ロ ッ ク 領域にあ る I/O バン ク が返 さ れます。 get_iobanks -of_objects [get_clock_regions -of \ [get_cells usbEngine0/u1/u0/crc16_sum_reg[7]]] プ ロパテ ィ report_property コ マ ン ド を使用す る と 、CLOCK_REGION のプ ロ パテ ィ を確認で き ます。詳細は、『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 次は clock_region オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ と その値の例です。 Property BOTTOM_RIGHT_TILE CLASS COLUMN_INDEX FULL_NAME NAME NUM_SITES ROW_INDEX TOP_LEFT_TILE Type string string int string string int int string Read-only true true true true true true true true Visible true true true true true true true true Value NULL_X116Y105 clock_region 1 CLOCKREGION_X1Y2 X1Y2 1418 2 CLBLL_L_X26Y149 特定の CLOCK_REGION のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ル ま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [get_clock_regions <name>] <name> は、 レ ポー ト す る ク ロ ッ ク 領域の名前です。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 40 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) DIAGRAM 説明 ブ ロ ッ ク デザ イ ン (.bd) は、 Vivado Design Suite の IP イ ン テ グ レー タ ー機能で作成 さ れた イ ン タ ー コ ネ ク ト さ れた IP コ アの複雑なシ ス テ ムです。 Vivado IP イ ン テ グ レー タ ー機能を使用する と 、 Vivado IP カ タ ロ グか ら の IP を イ ン ス タ ン シエー ト お よ び イ ン タ ー コ ネ ク ト し て、 複雑なデザ イ ン を作成で き ます。 ブ ロ ッ ク デザ イ ンは、 デ ィ ス ク 上の フ ァ イ ル (.bd) に書 き 込む こ と ので き る 階層デザ イ ンですが、Vivado ツール メ モ リ 内でダ イ ア グ ラ ム オブジ ェ ク ト と し て 格納 さ れます。 ブ ロ ッ ク デザ イ ンは、 通常 イ ン タ ーフ ェ イ ス レベルで構築 さ れて生産性が向上す る よ う にな っ てい ますが、 ポー ト ま たはピ ン レベルで編集す る こ と で よ り 細か く 制御す る こ と も で き ます。 Vivado Design Suite プ ロ ジ ェ ク ト には、 デ ザ イ ン階層の さ ま ざ ま な レベルに複数のダ イ ア グ ラ ム を含め る こ と がで き ます し 、 最上位デザ イ ン と し て 1 つのダ イ ア グ ラ ム を指定す る こ と も で き ます。 関連オブ ジ ェ ク ト 10 ページの図 1-2 に示す よ う に、 ダ イ ア グ ラ ム オブジ ェ ク ト には bd_cells、 bd_nets、 お よ び bd_ports な ど、 その他の IP イ ン テ グ レー タ ー ブ ロ ッ ク デザ イ ン (bd) オブジ ェ ク ト が含ま れ ます。 こ れ ら のオブジ ェ ク ト 間の関係は、 セル、 ピ ン、 ネ ッ ト な ど の標準的なネ ッ ト リ ス ト オブジ ェ ク ト 間の関係 と 類似 し てい ます。 ユーザーは、 指定 し たダ イ ア グ ラ ム オブジ ェ ク ト か ら セル、 ア ド レ ス空間、 ア ド レ ス セグ メ ン ト 、 ネ ッ ト 、 ピ ン、 ポー ト 、 イ ン タ ーフ ェ イ ス ネ ッ ト 、 イ ン タ ーフ ェ イ ス ピ ンお よ び イ ン タ ーフ ェ イ ス ポー ト な ど のブ ロ ッ ク デザ イ ンの各オブジ ェ ク ト を取得で き ま す。 た と えば、 ブ ロ ッ ク デザ イ ンのネ ッ ト を取得する には、 次の Tcl コ マ ン ド を使用 し ます。 get_bd_nets -of_objects [current_bd_design] プ ロパテ ィ 次の表には、 Vivado Design Suite でダ イ ア グ ラ ム オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ を その値の例 と 共に リ ス ト し てい ます。 Property CLASS COLOR FILE_NAME NAME USE_IP_SHARED_DIR Type string string string string bool Read-only true false true true false Visible true true true true true Value diagram design_1.bd design_1 1 ダ イ ア グ ラ ム オブジ ェ ク ト のプ ロ パテ ィ は、 次の コ マ ン ド を使用 し て確認で き ます。 report_property -all [lindex [get_bd_designs] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 41 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) HW_AXI 説明 JTAG-to-AXI Master コ ア (ハー ド ウ ェ ア AXI オブジ ェ ク ト ) は、 AXI ト ラ ンザ ク シ ョ ン を駆動 し 、 ザ イ リ ン ク ス FPGA デバ イ ス (ハー ド ウ ェ ア デバ イ ス オブジ ェ ク ト ) 上の AXI 信号を駆動す る AXI マ ス タ ー と し て機能す る カ ス タ マ イ ズ可能な IP コ ア です。 AXI Master コ アは、 AXI4 イ ン タ ー フ ェ イ ス お よ び AXI-Lite プ ロ ト コ ル を サポー ト し ま す。 AXI デー タ バ ス の幅は設定可能 です。 AXI コ ア で は、 AXI4 イ ン タ ー コ ネ ク ト を 介 し て メ モ リ に マ ッ プ さ れ た AXI4-Lite ま たは AXI4 ス レーブ を駆動で き ます。 こ の コ アは、 マ ス タ ー と し て イ ン タ ー コ ネ ク ト に接続す る こ と も 可 能です。 JTAG to AXI Master コ アは、 ザ イ リ ン ク ス IP カ タ ロ グ か ら RTL コ ー ド に イ ン ス タ ン シエー ト す る 必要があ り ま す。 JTAG-to-AXI コ アの詳細は、 『LogiCORE IP JTAG to AXI Master 製品ガ イ ド 』 (PG174) [参照 28] を参照 し て く だ さ い。 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-15 KZBFIJPHP KZBWDUJHW KZBGHYLFH KZBELWVWUHDP KZBVLR KZBYLR KZBD[L KZBV\VPRQ KZBVLRBLEHUW KZBVLRBOLQN UREH KZBVLRBJW KZBVLRBSOO KZBD[LBW[Q KZBVLRBW[ KZBVLRBU[ 図 2‐15 : ハー ド ウ ェ ア AXI オブ ジ ェ ク ト AXI マ ス タ ー コ アは、 ザ イ リ ン ク ス IP カ タ ロ グか ら RTL ソ ース フ ァ イ ルのデザ イ ンに追加で き ます。 AXI コ アは、 get_debug_cores コ マ ン ド を使用 し て合成済みネ ッ ト リ ス ト デザ イ ンで検索で き ます。 こ れ ら は Vivado Design Suite の ハー ド ウ ェ ア マネージ ャ ーで検索 さ れ る AXI マ ス タ ー コ ア オブジ ェ ク ト (hw_axi) ではあ り ませんが、関連は し てい ます。 hw_axi コ アは、 プ ロ グ ラ ム済みのハー ド ウ ェ ア デバ イ ス オブジ ェ ク ト (hw_device) のハー ド ウ ェ ア マネージ ャ ーに 含まれます。 hw_device の hw_axi は次の よ う に取得で き ます。 get_hw_axis -of [get_hw_devices] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 42 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) ま た、 hw_axi コ アには関連す る AXI ト ラ ンザ ク シ ョ ン も 含まれ、 次の よ う に取得で き ます。 get_hw_axi_txns -of [get_hw_axis] プ ロパテ ィ report_property コ マ ン ド を使用す る と 、 hw_axi コ アに割 り 当て ら れたプ ロ パテ ィ を確認で き ま す。 詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 次は hw_axi オブジ ェ ク ト に 割 り 当て ら れたプ ロ パテ ィ と その値の例です。 Property CLASS HW_CORE NAME PROTOCOL STATUS.AXI_READ_BUSY STATUS.AXI_READ_DONE STATUS.AXI_WRITE_BUSY STATUS.AXI_WRITE_DONE STATUS.BRESP STATUS.RRESP Type string string string string bool bool bool bool string string Read-only true true true true true true true true true true Visible true false true true true true true true true true Value hw_axi core_8 hw_axi_1 AXI4_Full 0 0 0 0 OKAY OKAY 特定の hw_axi のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_hw_axis] 0] HW_BITSTREAM 説明 ハー ド ウ ェ ア ビ ッ ト ス ト リ ーム オブジ ェ ク ト (hw_bitstream) は、 ビ ッ ト ス ト リ ーム フ ァ イ ルか ら 作成 さ れ、 Vivado Design Suite のハー ド ウ ェ ア マネージ ャ ー機能でハー ド ウ ェ ア デバ イ ス オブジ ェ ク ト (hw_device) に関連付け ら れま す。 ビ ッ ト ス ト リ ーム フ ァ イ ルは、 write_bitstream コ マ ン ド を使用 し て配置配線済みデザ イ ンか ら 作成 さ れます。 ハー ド ウ ェ ア ビ ッ ト ス ト リ ーム オブジ ェ ク ト は、 create_hw_bitstream コ マ ン ド を使用す る と ビ ッ ト ス ト リ ーム フ ァ イ ルか ら 手動で作成 さ れます。 ハー ド ウ ェ ア デバ イ ス が program_hw_device コ マ ン ド でプ ロ グ ラ ム さ れ る 場合は、 自動で作 成 さ れます。 ハー ド ウ ェ ア ビ ッ ト ス ト リ ーム オブジ ェ ク ト は、 デバ イ ス の PROGRAM.HW_BITSTREAM プ ロ パテ ィ を使用 し て指 定のハー ド ウ ェ ア デバ イ ス に関連付け ら れます。 こ のプ ロ パテ ィ は、 create_hw_bitstream コ マ ン ド に よ り 自動的に設 定 さ れます。 PROGRAM.FILE プ ロ パテ ィ には、 指定のビ ッ ト ス ト リ ーム フ ァ イ ルのフ ァ イ ル パ ス も 含まれます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 43 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-16 KZBFIJPHP KZBVHUYHU KZBWDUJHW KZBGHYLFH KZBELWVWUHDP KZBVLRBVZHHS KZBVLRBVFDQ KZBLOD KZBYLR KZBD[L KZBV\VPRQ KZBVLRBLEHUW KZBVLRBOLQN KZBSUREH KZBVLRBJW KZ VLR SOO KZBVLRBOLQNJURXS 図 2‐16 : ハー ド ウ ェ ア ビ ッ ト ス ト リ ーム オブ ジ ェ ク ト hw_bitstream オブジ ェ ク ト は PROGRAM.BITSTREAM プ ロ パテ ィ を使用 し て hardware_device に関連付け ら れます。次 の よ う に get_property コ マ ン ド を使用 し て hw_bitstream オブジ ェ ク ト を取得す る と 、 プ ロ パテ ィ のオブジ ェ ク ト を返 す こ と がで き ます。 get_property PROGRAM.HW_BITSTREAM [current_hw_device] プ ロパテ ィ report_property コ マ ン ド を使用す る と 、 ハー ド ウ ェ ア ビ ッ ト ス ト リ ーム オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ を 確認で き ます。 詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 hw_bitsream オブジ ェ ク ト には次の よ う なプ ロ パテ ィ があ り ます。 値 も 例示 し ます。 Property Type Read-only Visible Value CLASS string true true hw_bitstream DESIGN string true true ks_counter2 DEVICE string true true xc7k325t NAME string true true C:/Data/ks_counter2_k7/project_1/project_1.runs/impl_1/ks_counter2.bit PART string true true xc7k325tffg900-3 SIZE string true true 11443612 USERCODE string true true 0XFFFFFFFF hw_bitsream オ ブ ジ ェ ク ト のプ ロ パ テ ィ を 確認す る には、 Vivado ロ ジ ッ ク 解析で get_property コ マ ン ド を 使用 し て hw_device の PROGRAM.HW_BITSTREAM プ ロ パテ ィ で定義 さ れたオブジ ェ ク ト が戻 さ れ る よ う に し ます。次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [get_property PROGRAM.HW_BITSTREAM [current_hw_device]] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 44 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) HW_CFGMEM 説明 ザ イ リ ン ク ス FPGA を コ ン フ ィ ギ ュ レーシ ョ ンす る には、 ハー ド ウ ェ ア デバ イ ス の内部 メ モ リ にデザ イ ン特定の コ ン フ ィ ギ ュ レ ーシ ョ ン デー タ を ビ ッ ト ス ト リ ーム フ ァ イ ルの形で読み込み ま す。 hw_cfgmem では、 Vivado Design Suite のハー ド ウ ェ ア マネージ ャ ー機能でザ イ リ ン ク ス FPGA デバ イ ス を コ ン フ ィ ギ ュ レーシ ョ ンお よ びブー ト す る ために使用 さ れ る フ ラ ッ シ ュ メ モ リ デバ イ ス が定義 さ れます。 hw_cfgmem オブジ ェ ク ト を プ ロ グ ラ ムす る には、 create_hw_cfgmem コ マ ン ド を使用 し ます。 create_hw_cfgmem オブ ジ ェ ク ト を作成 し 、 ハー ド ウ ェ ア デバ イ ス に関連付けた ら 、 program_hw_cfgmem コ マ ン ド を使用 し て コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ を ビ ッ ト ス ト リ ームお よ びその他のデー タ でプ ロ グ ラ ムで き ます。 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-17 KZBFIJPHP KZBVHUYHU KZBWDUJHW KZBGHYLFH KZBELWVWUHDP KZBVLRBVZHHS 図 2‐17 : ハー ド ウ ェ ア CFGMEM オブ ジ ェ ク ト hw_cfgmem オブジ ェ ク ト は、 デバ イ ス オブジ ェ ク ト の PROGRAM.HW_CFGMEM プ ロ パテ ィ を使用 し て指定のハー ド ウ ェ ア デバ イ ス オブジ ェ ク ト に関連付け ら れます。 hw_cfgmem オブジ ェ ク ト は、 get_property コ マ ン ド を使用 し て ハー ド ウ ェ ア デバ イ ス か ら オブジ ェ ク ト を取得 し ます。 get_property PROGRAM.HW_CFGMEM [current_hw_device] プ ロパテ ィ report_property コ マ ン ド を使用す る と 、 hw_cfgmem オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ を確認で き ます。 詳細 は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 hw_cfgmem オブ ジ ェ ク ト には次の よ う なプ ロ パテ ィ があ り ます。 値 も 例示 し ます。 Property Type CFGMEM_NAME string CFGMEM_PART cfgmem_part CLASS string NAME string PROGRAM.ADDRESS_RANGE string PROGRAM.BIN_OFFSET int PROGRAM.BLANK_CHECK bool PROGRAM.BPI_RS_PINS string PROGRAM.CFG_PROGRAM bool PROGRAM.ERASE bool PROGRAM.FILE string C:/Data/Vivado_Debug/kc705_8led.mcs PROGRAM.FILE_1 string C:/Data/Vivado_Debug/kc705_8led.mcs PROGRAM.FILE_2 string Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 Read-only true false true false false false false false false false false Visible true true true true true true true true true true true false true false true japan.xilinx.com Value 28f00ap30t-bpi-x16_0 28f00ap30t-bpi-x16 hw_cfgmem 28f00ap30t-bpi-x16_0 use_file 0 0 NONE 0 1 45 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) PROGRAM.VERIFY PROGRAM.ZYNQ_FSBL bool string false false true true 0 hw_cfgmem オブジ ェ ク ト のプ ロ パテ ィ を確認す る には、 ハー ド ウ ェ ア マネージ ャ ー機能が開いてい る と き に、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [get_property PROGRAM.HW_CFGMEM [current_hw_device] ] HW_DEVICE 説明 Vivado Design Suite のハー ド ウ ェ ア マネージ ャ ー機能内では、 各ハー ド ウ ェ ア タ ーゲ ッ ト にプ ロ グ ラ ム ま たはデバ ッ グ目的で使用す る ザ イ リ ン ク ス FPGA デバ イ ス を 1 つま たは複数含め る こ と がで き ます。hw_device オブジ ェ ク ト は、 hw_server を使用 し て開いた hw_target の物理的パーツ です。現在のデバ イ ス は current_hw_device コ マ ン ド を使用 し て 指定す る か、 ま たは検索 し ます。 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-18 KZBFIJPHP KZBVHUYHU KZBWDUJHW KZBGHYLFH KZBELWVWUHDP K KZBVLRBVF KZBLOD KZBYLR KZBD[L KZBV\VPRQ KZBVLRBLEHUW KZBVLRBOLQN 図 2‐18 : ハー ド ウ ェ ア デバイ ス オブ ジ ェ ク ト ハー ド ウ ェ ア デバ イ ス はハー ド ウ ェ ア タ ーゲ ッ ト に関連付け ら れてお り 、 次の よ う に hw_target オブジ ェ ク ト のオブ ジ ェ ク ト と し て取得で き ます。 get_hw_devices -of [get_hw_targets] 次を使用す る と 、 ハー ド ウ ェ ア デバ イ ス オブジ ェ ク ト にプ ロ グ ラ ム さ れてい る デバ ッ グ コ ア を取得で き ます。 get_hw_ilas -of [current_hw_device] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 46 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) プ ロパテ ィ hw_device オブジ ェ ク ト のプ ロ パテ ィ は、 選択 し た タ ーゲ ッ ト パーツ に よ っ て変わ り ます。 report_property コ マ ン ド を使用す る と 、 hw_device オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ を確認で き ます。 詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 次は hw_device オブジ ェ ク ト に割 り 当て ら れ る プ ロ パテ ィ と その値の例を示 し てい ます。 プ ロ パテ ィ CLASS type DID string IDCODE string INDEX int IR_LENGTH int IS_SYSMON_SUPPORTED bool MASK int NAME string PART string PROBES.FILE string PROGRAM.FILE string PROGRAM.HW_BITSTREAM hw_bitstream PROGRAM.HW_CFGMEM hw_cfgmem PROGRAM.HW_CFGMEM_BITFILE string PROGRAM.HW_CFGMEM_TYPE string PROGRAM.IS_SUPPORTED bool PROGRAM.OPTIONS string REGISTER.BOOT_STATUS string REGISTER.BOOT_STATUS.BIT00_0_STATUS_VALID string REGISTER.BOOT_STATUS.BIT01_0_FALLBACK string string REGISTER.BOOT_STATUS.BIT02_0_INTERNAL_PROG string REGISTER.BOOT_STATUS.BIT03_0_WATCHDOG_TIMEOUT_ERROR string REGISTER.BOOT_STATUS.BIT04_0_ID_ERROR string REGISTER.BOOT_STATUS.BIT05_0_CRC_ERROR string REGISTER.BOOT_STATUS.BIT06_0_WRAP_ERROR string REGISTER.BOOT_STATUS.BIT07_RESERVED string REGISTER.BOOT_STATUS.BIT08_1_STATUS_VALID string REGISTER.BOOT_STATUS.BIT09_1_FALLBACK string REGISTER.BOOT_STATUS.BIT10_1_INTERNAL_PROG string REGISTER.BOOT_STATUS.BIT11_1_WATCHDOG_TIMEOUT_ERROR string REGISTER.BOOT_STATUS.BIT12_1_ID_ERROR string REGISTER.BOOT_STATUS.BIT13_1_CRC_ERROR string REGISTER.BOOT_STATUS.BIT14_1_WRAP_ERROR string REGISTER.BOOT_STATUS.BIT15_RESERVED string REGISTER.CONFIG_STATUS string REGISTER.CONFIG_STATUS.BIT00_CRC_ERROR string REGISTER.CONFIG_STATUS.BIT01_DECRYPTOR_ENABLE string REGISTER.CONFIG_STATUS.BIT02_PLL_LOCK_STATUS string Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 47 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) REGISTER.CONFIG_STATUS.BIT03_DCI_MATCH_STATUS string REGISTER.CONFIG_STATUS.BIT04_END_OF_STARTUP_(EOS)_STATUS string REGISTER.CONFIG_STATUS.BIT05_GTS_CFG_B_STATUS string REGISTER.CONFIG_STATUS.BIT06_GWE_STATUS string REGISTER.CONFIG_STATUS.BIT07_GHIGH_STATUS string REGISTER.CONFIG_STATUS.BIT08_MODE_PIN_M[0] string REGISTER.CONFIG_STATUS.BIT09_MODE_PIN_M[1] string REGISTER.CONFIG_STATUS.BIT10_MODE_PIN_M[2] string REGISTER.CONFIG_STATUS.BIT11_INIT_B_INTERNAL_SIGNAL_STATUS string REGISTER.CONFIG_STATUS.BIT12_INIT_B_PIN string REGISTER.CONFIG_STATUS.BIT13_DONE_INTERNAL_SIGNAL_STATUS string REGISTER.CONFIG_STATUS.BIT14_DONE_PIN string REGISTER.CONFIG_STATUS.BIT15_IDCODE_ERROR string REGISTER.CONFIG_STATUS.BIT16_SECURITY_ERROR string REGISTER.CONFIG_STATUS.BIT17_SYSTEM_MONITOR_OVER-TEMP_ALARM_S TATUS REGISTER.CONFIG_STATUS.BIT18_CFG_STARTUP_STATE_MACHINE_PHASE string string REGISTER.CONFIG_STATUS.BIT21_RESERVED string REGISTER.CONFIG_STATUS.BIT25_CFG_BUS_WIDTH_DETECTION string REGISTER.CONFIG_STATUS.BIT27_HMAC_ERROR string REGISTER.CONFIG_STATUS.BIT28_PUDC_B_PIN string REGISTER.CONFIG_STATUS.BIT29_BAD_PACKET_ERROR string REGISTER.CONFIG_STATUS.BIT30_CFGBVS_PIN string REGISTER.CONFIG_STATUS.BIT31_RESERVED string REGISTER.IR string REGISTER.IR.BIT0_ALWAYS_ONE string REGISTER.IR.BIT1_ALWAYS_ZERO string REGISTER.IR.BIT2_ISC_DONE string REGISTER.IR.BIT3_ISC_ENABLED string REGISTER.IR.BIT4_INIT_COMPLETE string REGISTER.IR.BIT5_DONE string REGISTER.USERCODE string SET_UNKNOWN_DEVICE bool USER_CHAIN_COUNT string hw_device のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_hw_devices] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 48 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) HW_ILA 説明 Integrated Logic Analyzer (ILA) デバ ッ グ コ ア を使用する と 、 コ アのデバ ッ グ プ ロ ーブ を介 し て イ ンプ リ メ ン ト さ れた デザ イ ンの信号を イ ン シ ス テ ム監視で き ます。 ILA コ アは、 特定ハー ド ウ ェ ア イ ベン ト が リ アル タ イ ム で ト リ ガー さ れて、 シ ス テ ム速度でプ ロ ーブのデー タ が取 り 込まれ る よ う に コ ン フ ィ ギ ュ レーシ ョ ンで き ます。 ILA デバ ッ グ コ ア をデザ イ ンに追加す る には、 IP カ タ ロ グか ら ILA コ ア を RTL デザ イ ンに イ ン ス タ ン シエー ト す る か、 create_debug_core コ マ ン ド を使用 し て合成済みネ ッ ト リ ス ト に ILA コ ア を追加 し ます。 ILA デバ ッ グ コ アのデザ イ ンへの追加に関す る 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908) [参照 23] を参照 し て く だ さ い。 デザ イ ン か ら ビ ッ ト ス ト リ ー ム を 生成 し 、 program_hw_devices コ マ ン ド を 使用 し てデバ イ ス を プ ロ グ ラ ム す る と 、 get_hw_ilas コ マ ン ド を使用 し てハー ド ウ ェ ア マネージ ャ ーか ら デザ イ ンに含まれ る ILA デバ ッ グ コ アにア ク セ ス で き ます。 デザ イ ンの ILA デバ ッ グ コ アに割 り 当て ら れてい る デバ ッ グ プ ロ ーブは、 get_hw_probes コ マ ン ド を使用 し て取得で き ます。 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-19 KZBVHUYHU KZBLOD KZBWDUJHW KZBYLR KZBD[L KZBGHYLFH KZBV\VPRQ KZBSUREH KZBLODBGDWD KZBVL KZBD[LBW[Q KZBVLRBW[ 図 2‐19 : ハー ド ウ ェ ア ILA オブ ジ ェ ク ト ILA デバ ッ グ コ アは、 RTL ソ ース フ ァ イ ルま たは create_debug_core コ マ ン ド でデザ イ ンに追加で き ます。 デバ ッ グ コ アは、get_debug_cores コ マ ン ド を使用 し て合成済みネ ッ ト リ ス ト デザ イ ン で検索で き ます。 こ れ ら は Vivado Design Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 49 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) Suite のハー ド ウ ェ ア マネージ ャ ーに含まれ る ILA デバ ッ グ オブジ ェ ク ト (hw_ila) ではあ り ませんが、 関連は し てい ます。 ハー ド ウ ェ ア ILA デバ ッ グ コ アは、プ ロ グ ラ ム済みのハー ド ウ ェ ア デバ イ ス オブジ ェ ク ト (hw_device) のハー ド ウ ェ ア マネージ ャ ーに含まれます。 hw_device の hw_ila は次の よ う に取得で き ます。 get_hw_ilas -of [current_hw_device] ハー ド ウ ェ ア プ ロ ーブの よ う なハー ド ウ ェ ア ILA デバ ッ グ コ ア と 関連する オブジ ェ ク ト と コ アか ら キ ャ プチ ャ さ れ たデー タ サンプル も あ り ます。 ILA デバ ッ グ コ アに関連す る オブジ ェ ク ト は、 次の よ う に取得で き ます。 get_hw_ila_datas -of_objects [get_hw_ilas hw_ila_2] プ ロパテ ィ report_property コ マ ン ド を使用す る と 、 特定の hw_ila に割 り 当て ら れた実際のプ ロ パテ ィ を確認で き ます。 詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 次は hw_ila オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ と その値の例です。 Property CLASS CONTROL.CAPTURE_CONDITION CONTROL.CAPTURE_MODE CONTROL.DATA_DEPTH CONTROL.IS_ILA_TO_DRIVE_TRIG_OUT_ENABLED CONTROL.IS_TRIG_IN_TO_DRIVE_TRIG_OUT_ENABLED CONTROL.IS_TRIG_IN_TO_ILA_ENABLED CONTROL.TRIGGER_CONDITION CONTROL.TRIGGER_MODE CONTROL.TRIGGER_POSITION CONTROL.TRIG_OUT_MODE CONTROL.TSM_FILE CONTROL.WINDOW_COUNT CORE_REFRESH_RATE_MS HW_CORE INSTANCE_NAME NAME STATIC.IS_ADVANCED_TRIGGER_MODE_SUPPORTED STATIC.IS_BASIC_CAPTURE_MODE_SUPPORTED STATIC.IS_TRIG_IN_SUPPORTED STATIC.IS_TRIG_OUT_SUPPORTED STATIC.MAX_DATA_DEPTH STATIC.TSM_COUNTER_0_WIDTH STATIC.TSM_COUNTER_1_WIDTH STATIC.TSM_COUNTER_2_WIDTH STATIC.TSM_COUNTER_3_WIDTH STATUS.CORE_STATUS STATUS.DATA_DEPTH STATUS.IS_TRIGGER_AT_STARTUP STATUS.SAMPLE_COUNT STATUS.TRIGGER_POSITION STATUS.TSM_FLAG0 STATUS.TSM_FLAG1 STATUS.TSM_FLAG2 STATUS.TSM_FLAG3 STATUS.TSM_STATE STATUS.WINDOW_COUNT TRIGGER_START_TIME_SECONDS Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com Type string enum enum int bool bool bool string enum int enum string int int string string string bool bool bool bool int int int int int string int bool int int bool bool bool bool int int string Read-only true false false false true true true false false false true false false false true true true true true true true true true true true true true true true true true true true true true true true true Visible true true true true true true true true true true true true true true false true true true true true true true true true true true true true true true true true true true true true true true Value hw_ila AND ALWAYS 1024 0 0 0 AND BASIC_ONLY 0 DISABLED 1 500 core_1 u_ila_0 hw_ila_1 1 1 0 0 1024 15 15 15 15 IDLE 2147483647 0 0 2147483647 1 1 1 1 0 2147483647 50 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) TRIGGER_STOP_TIME_SECONDS string true true 特定の HW_ILA のプ ロ パテ ィ を確認す る には、次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_hw_ilas] 0] HW_ILA_DATA 説明 ハー ド ウ ェ ア ILA デー タ オブジ ェ ク ト は、 現在のハー ド ウ ェ ア デバ イ ス にプ ロ グ ラ ム さ れた ILA デバ ッ グ コ ア で キ ャ プチ ャ さ れたデー タ リ ポジ ト リ です。 hw_ila_data オブジ ェ ク ト は、 upload_hw_ila_data コ マ ン ド に よ る FPGA デ バ イ ス (hw_device) 上の ILA デバ ッ グ コ ア (hw_ila) か ら のデー タ を キ ャ プチ ャ す る プ ロ セ ス で作成 さ れます。 ま た、 read_hw_ila_data コ マ ン ド でデ ィ ス ク か ら ILA デー タ フ ァ イ ルを読み込んだ と き に も 作成 さ れます。 hw_ila_data オブジ ェ ク ト は、display_hw_ila_data コ マ ン ド を使用 し て Vivado ロ ジ ッ ク 解析機能の波形ウ ィ ン ド ウ に表 示で き 、 write_hw_ila_data コ マ ン ド を使用 し てデ ィ ス ク に保存で き ます。 関連オブ ジ ェ ク ト 49 ページの図 2-19 に示す よ う に、ハー ド ウ ェ ア ILA デー タ オブジ ェ ク ト はハー ド ウ ェ ア デバ イ ス にプ ロ グ ラ ム さ れ た ILA デバ ッ グ コ アに関連 し てい ます。 デー タ オブジ ェ ク ト は次の よ う に取得で き ます。 get_hw_ila_datas -of_objects [get_hw_ilas] プ ロパテ ィ report_property コ マ ン ド を使用す る と 、 hw_ila_data オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ を確認で き ます。 詳細 は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 プ ロ パテ ィ は、 次の と お り です。 Property CLASS HW_ILA NAME TIMESTAMP Type string string string string Read-only true true true true Visible true true true true Value hw_ila_data hw_ila_1 hw_ila_data_1 Sat Mar 08 11:05:49 2014 hw_ila_data オブジ ェ ク ト のプ ロ パテ ィ を確認する には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ル ま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 -all [lindex [get_hw_ila_datas] 0] japan.xilinx.com 51 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) HW_PROBE 説明 ハー ド ウ ェ ア プ ロ ーブ オブジ ェ ク ト (hw_probe) は、 デザ イ ン内の信号へのア ク セ ス に使用 さ れ、 信号の値を監視お よ び駆動 し 、 FPGA デバ イ ス のハー ド ウ ェ ア イ ベン ト を追跡 し ます。 ハー ド ウ ェ ア プ ロ ーブは、 ILA お よ び VIO デ バ ッ グ コ アの両方に追加で き ます。 デバ ッ グ プ ロ ーブは、 コ ア と 一緒に RTL デザ イ ン ソ ース の ILA デバ ッ グ コ アに追加する か、 合成済みネ ッ ト リ ス ト デザ イ ンの ILA コ アに追加で き (create_debug_probe コ マ ン ド を使用)、 その後 connect_debug_probe コ マ ン ド を使用 し てデザ イ ンの信号に接続で き ます。 RTL デザ イ ンで VIO デバ ッ グ コ アにプ ロ ーブ を追加で き る のは、IP カ タ ロ グか ら IP コ ア を カ ス タ マ イ ズ ま たは再カ ス タ マ イ ズす る 際に信号がその コ アに接続 さ れてい る 場合のみです。 デザ イ ンへの ILA お よ び VIO デバ ッ グ コ ア と 信号プ ロ ーブの追加に関す る 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908) [参 照 23] を参照 し て く だ さ い。 デバ ッ グ コ ア と プ ロ ーブは write_debug_probes コ マ ン ド を使用 し てプ ロ ーブ フ ァ イ ル (.ltx) に記述 し 、 ハー ド ウ ェ ア デバ イ ス オブジ ェ ク ト の PROBES.FILE お よ び PROGRAM.FILE プ ロ パテ ィ を使用 し て ビ ッ ト ス ト リ ーム フ ァ イ ル と 共 に ハ ー ド ウ ェ ア デ バ イ ス に 関 連 付 け ま す。 ハ ー ド ウ ェ ア デ バ イ ス に こ の 情報 を プ ロ グ ラ ム す る に は、 program_hw_devices コ マ ン ド を使用 し ます。 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-20 KZBLOD KZBYLR KZBD[L KZBSUREH KZBLODBGDWD KZBD[LBW[Q 図 2‐20 : ハー ド ウ ェ ア プ ローブ オブ ジ ェ ク ト ハー ド ウ ェ ア プ ロ ーブ オブジ ェ ク ト は、 hw_server を使用 し て開いた hw_target のハー ド ウ ェ ア デバ イ ス にプ ロ グ ラ ム さ れた ILA お よ び VIO デバ ッ グ コ アに関連付け ら れてい ま す。 こ れ ら のデバ ッ グ コ ア オブジ ェ ク ト に関連す る hw_probe オブジ ェ ク ト は、 次の よ う に取得で き ます。 get_hw_probes -of [get_hw_ilas hw_ila_2] get_hw_probes -of [get_hw_vios] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 52 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) プ ロパテ ィ デバ ッ グ プ ロ ーブには、 ILA、 VIO_INPUT、 お よ び VIO_OUTPUT の 3 つの タ イ プがあ り ます。 hw_probe オブジ ェ ク ト に割 り 当て ら れ る プ ロ パテ ィ は、 プ ロ ーブの タ イ プに よ っ て異な り ま す。 report_property コ マ ン ド を使用す る と 、 hw_probe オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ を確認で き ま す。 詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 次は、 ILA タ イ プの hw_probe オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ と その値の例を示 し てい ます。 Property CAPTURE_COMPARE_VALUE CLASS COMPARATOR_COUNT COMPARE_VALUE.0 CORE_LOCATION DISPLAY_HINT DISPLAY_VISIBILITY HW_ILA NAME PROBE_PORT PROBE_PORT_BITS PROBE_PORT_BIT_COUNT TRIGGER_COMPARE_VALUE TYPE Type string string int string string string string string string int int int string string Read-only false true true false true false false true true true true true false true Visible true true true false false false false true true true true true true true Value eq2'hX hw_probe 4 eq2'hX 1:0 hw_ila_1 GPIO_BUTTONS_dly 3 0 2 eq2'hX ila 特定の hw_probe オブ ジ ェ ク ト のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピ ー し て Vivado Design Suite の Tcl シ ェ ルま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_hw_probes -filter {TYPE == ila}] 0] report_property -all [lindex [get_hw_probes -filter {TYPE == vio_input}] 0] report_property -all [lindex [get_hw_probes -filter {TYPE == vio_output}] 0] HW_SERVER 説明 ハー ド ウ ェ ア サーバーは、FPGA デザ イ ン をプ ロ グ ラ ムお よ びデバ ッ グす る ために使用す る 1 つま たは複数のザ イ リ ン ク ス FPGA デバ イ ス で構成 さ れた JTAG チ ェ ーン を含むハー ド ウ ェ ア ボー ド ハー ド ウ ェ ア タ ーゲ ッ ト への接続を 制御 し ます。 open_hw コ マ ン ド でハー ド ウ ェ ア マ ネージ ャ ー を 開い た ら 、 connect_hw_server コ マ ン ド を 使用 し てハー ド ウ ェ ア サーバーに ロ ーカル ま たは リ モー ト のいずれかで接続で き ます。 こ れに よ り 、 hw_server アプ リ ケーシ ョ ンが起動 さ れ、 hw_server オブジ ェ ク ト が作成 さ れます。 関連オブ ジ ェ ク ト 11 ページの図 1-3 に示す よ う に、 ハー ド ウ ェ ア サーバーは、 ハー ド ウ ェ ア マネージ ャ ーの先端のオブジ ェ ク ト で、 ハー ド ウ ェ ア タ ーゲ ッ ト への接続を管理 し ます。 hw_server に関す る オブジ ェ ク ト は、 次の よ う に取得で き ます。 get_hw_targets -of [get_hw_servers] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 53 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) プ ロパテ ィ report_property コ マ ン ド を使用す る と 、hw_server オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ を確認で き ます。詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 次は、 hw_target オブ ジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ と その値の例を示 し てい ます。 Property CLASS HOST NAME PASSWORD PORT SID VERSION Type string string string string string string string Read-only true true true true true true true Visible true true true true true true true Value hw_server localhost localhost 60001 TCP:xcoatslab-1:3121 20 hw_target のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [get_hw_servers] HW_SIO_GT 説明 カ ス タ マ イ ズ可能なザ イ リ ン ク ス FPGA 用の LogiCORE™ IP Integrated Bit Error Ratio Tester (IBERT) コ アは、ギガ ビ ッ ト ト ラ ン シーバー (GT) を評価お よ び監視す る ために設計 さ れてい ます。 IBERT コ アは イ ン シ ス テ ム シ リ アル I/O の 検証お よ びデバ ッ グ を イ ネーブルに し 、 デザ イ ン内の高速シ リ アル I/O リ ン ク を計測お よ び最適化で き る よ う に し ま す。詳細は、『LogiCORE IP Integrated Bit Error Ratio Tester (IBERT) for 7 Series GTX Transceivers v3.0 製品ガ イ ド 』 (PG132) [参照 29] を参照 し て く だ さ い。 IBERT デバ ッ グ コ ア を使用す る と 、 GTX ト ラ ン シーバーのダ イ ナ ミ ッ ク リ コ ン フ ィ ギ ュ レーシ ョ ン ポー ト (DRP) ポー ト を介 し て GT ト ラ ン ス ミ ッ タ ー と レ シーバーを設定お よ び調整で き ます。 こ れに よ り 、 GT のプ ロ パテ ィ 設定 を変更 し た り 、 ポー ト 上の値を制御す る レ ジ ス タ を変更で き ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 54 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-21 KZBVLRBVFD Q ZBYLR KZBD[L KZBV\VPRQ KZBVLRBLEHUW KZBVLRBOLQN KZBVLRBJW KZBVLRBOLQNJURXS KZBVLRBSOO KZBD[LBW[Q KZBVLRBW[ KZBVLRBU[ KZBVLRBJWJURXS ; 図 2‐21 : hw_sio_gt オブ ジ ェ ク ト hw_sio_gt オ ブ ジ ェ ク ト は、 hw_server、 hw_target、 hw_device、 hw_sio_gt、 hw_sio_common、 hw_sio_pll、 hw_sio_tx、 hw_sio_rx、 ま たは hw_sio_link オブジ ェ ク ト に接続 さ れます。 こ れ ら のオブジ ェ ク ト に関連付け ら れた GT オブジ ェ ク ト は、 次の よ う に取得で き ます。 get_hw_sio_gts -of_objects [get_hw_sio_links] 次を使用す る と 、 hw_sio_gt オブジ ェ ク ト に関連付け ら れたオブジ ェ ク ト を取得す る こ と も で き ます。 get_hw_sio_gtgroups -of [get_hw_sio_gts *MGT_X0Y9] プ ロパテ ィ report_property コ マ ン ド を使用す る と 、 特定の hw_sio_gt に割 り 当て ら れた実際のプ ロ パテ ィ を確認で き ま す。 詳細 は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 次は hw_sio_gt オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ と その値の例です。 Property CLASS CPLLREFCLKSEL CPLL_FBDIV CPLL_FBDIV_45 CPLL_REFCLK_DIV DISPLAY_NAME DRP.ALIGN_COMMA_DOUBLE DRP.ALIGN_COMMA_ENABLE DRP.ALIGN_COMMA_WORD DRP.ALIGN_MCOMMA_DET DRP.ALIGN_MCOMMA_VALUE DRP.ALIGN_PCOMMA_DET DRP.ALIGN_PCOMMA_VALUE DRP.CBCC_DATA_SOURCE_SEL Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 Type string enum enum enum enum string string string string string string string string string japan.xilinx.com Read-only true false false false false true false false false false false false false false Visible true true true true true true true true true true true true true true Value hw_sio_gt GTREFCLK0 1 4 1 MGT_X0Y8 0 07F 1 1 283 1 17C 1 55 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) DRP.CHAN_BOND_KEEP_ALIGN DRP.CHAN_BOND_MAX_SKEW DRP.CHAN_BOND_SEQ_1_1 DRP.CHAN_BOND_SEQ_1_2 DRP.CHAN_BOND_SEQ_1_3 DRP.CHAN_BOND_SEQ_1_4 DRP.CHAN_BOND_SEQ_1_ENABLE DRP.CHAN_BOND_SEQ_2_1 DRP.CHAN_BOND_SEQ_2_2 DRP.CHAN_BOND_SEQ_2_3 DRP.CHAN_BOND_SEQ_2_4 DRP.CHAN_BOND_SEQ_2_ENABLE DRP.CHAN_BOND_SEQ_2_USE DRP.CHAN_BOND_SEQ_LEN DRP.CLK_CORRECT_USE DRP.CLK_COR_KEEP_IDLE DRP.CLK_COR_MAX_LAT DRP.CLK_COR_MIN_LAT DRP.CLK_COR_PRECEDENCE DRP.CLK_COR_REPEAT_WAIT DRP.CLK_COR_SEQ_1_1 DRP.CLK_COR_SEQ_1_2 DRP.CLK_COR_SEQ_1_3 DRP.CLK_COR_SEQ_1_4 DRP.CLK_COR_SEQ_1_ENABLE DRP.CLK_COR_SEQ_2_1 DRP.CLK_COR_SEQ_2_2 DRP.CLK_COR_SEQ_2_3 DRP.CLK_COR_SEQ_2_4 DRP.CLK_COR_SEQ_2_ENABLE DRP.CLK_COR_SEQ_2_USE DRP.CLK_COR_SEQ_LEN DRP.CPLL_CFG DRP.CPLL_FBDIV DRP.CPLL_FBDIV_45 DRP.CPLL_INIT_CFG DRP.CPLL_LOCK_CFG DRP.CPLL_REFCLK_DIV DRP.DEC_MCOMMA_DETECT DRP.DEC_PCOMMA_DETECT DRP.DEC_VALID_COMMA_ONLY DRP.DMONITOR_CFG DRP.ES_CONTROL DRP.ES_CONTROL_STATUS DRP.ES_ERRDET_EN DRP.ES_ERROR_COUNT DRP.ES_EYE_SCAN_EN DRP.ES_HORZ_OFFSET DRP.ES_PMA_CFG DRP.ES_PRESCALE DRP.ES_QUALIFIER DRP.ES_QUAL_MASK DRP.ES_RDATA DRP.ES_SAMPLE_COUNT DRP.ES_SDATA DRP.ES_SDATA_MASK DRP.ES_UT_SIGN DRP.ES_VERT_OFFSET DRP.FTS_DESKEW_SEQ_ENABLE Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string japan.xilinx.com false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true 0 7 17C 100 100 100 F 100 100 100 100 F 0 0 0 0 13 0F 1 00 11C 100 100 100 F 100 100 100 100 F 0 0 BC07DC 10 0 00001E 01C0 10 0 0 0 000A01 00 0 0 0000 1 000 000 00 00000000000000000000 00000000000000000000 00000000000000000000 0000 00000000000000000000 00000000000000000000 0 000 F 56 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) DRP.FTS_LANE_DESKEW_CFG DRP.FTS_LANE_DESKEW_EN DRP.GEARBOX_MODE DRP.OUTREFCLK_SEL_INV DRP.PCS_PCIE_EN DRP.PCS_RSVD_ATTR DRP.PD_TRANS_TIME_FROM_P2 DRP.PD_TRANS_TIME_NONE_P2 DRP.PD_TRANS_TIME_TO_P2 DRP.PMA_RSV DRP.PMA_RSV2 DRP.PMA_RSV2_BIT4 DRP.PMA_RSV3 DRP.PMA_RSV4 DRP.RXBUFRESET_TIME DRP.RXBUF_ADDR_MODE DRP.RXBUF_EIDLE_HI_CNT DRP.RXBUF_EIDLE_LO_CNT DRP.RXBUF_EN DRP.RXBUF_RESET_ON_CB_CHANGE DRP.RXBUF_RESET_ON_COMMAALIGN DRP.RXBUF_RESET_ON_EIDLE DRP.RXBUF_RESET_ON_RATE_CHANGE DRP.RXBUF_THRESH_OVFLW DRP.RXBUF_THRESH_OVRD DRP.RXBUF_THRESH_UNDFLW DRP.RXCDRFREQRESET_TIME DRP.RXCDRPHRESET_TIME DRP.RXCDR_CFG DRP.RXCDR_FR_RESET_ON_EIDLE DRP.RXCDR_HOLD_DURING_EIDLE DRP.RXCDR_LOCK_CFG DRP.RXCDR_PH_RESET_ON_EIDLE DRP.RXDFELPMRESET_TIME DRP.RXDLY_CFG DRP.RXDLY_LCFG DRP.RXDLY_TAP_CFG DRP.RXGEARBOX_EN DRP.RXISCANRESET_TIME DRP.RXLPM_HF_CFG DRP.RXLPM_LF_CFG DRP.RXOOB_CFG DRP.RXOUT_DIV DRP.RXPCSRESET_TIME DRP.RXPHDLY_CFG DRP.RXPH_CFG DRP.RXPH_MONITOR_SEL DRP.RXPMARESET_TIME DRP.RXPRBS_ERR_LOOPBACK DRP.RXSLIDE_AUTO_WAIT DRP.RXSLIDE_MODE DRP.RX_BIAS_CFG DRP.RX_BUFFER_CFG DRP.RX_CLK25_DIV DRP.RX_CLKMUX_PD DRP.RX_CM_SEL DRP.RX_CM_TRIM DRP.RX_DATA_WIDTH DRP.RX_DDI_SEL Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string japan.xilinx.com false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true F 0 0 3 0 000000000000 03C 3C 64 001E7080 2070 1 0 00000000 01 1 8 0 1 1 0 0 1 3D 0 04 01 01 0B800023FF10200020 0 0 15 0 0F 001F 030 0000 0 01 00F0 00F0 06 0 01 084020 000000 00 03 0 7 0 004 00 04 1 3 4 5 00 57 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) DRP.RX_DEBUG_CFG DRP.RX_DEFER_RESET_BUF_EN DRP.RX_DFE_CTLE_STAGE1 DRP.RX_DFE_CTLE_STAGE2 DRP.RX_DFE_CTLE_STAGE3 DRP.RX_DFE_GAIN_CFG DRP.RX_DFE_H2_CFG DRP.RX_DFE_H3_CFG DRP.RX_DFE_H4_CFG DRP.RX_DFE_H5_CFG DRP.RX_DFE_KL_CFG DRP.RX_DFE_KL_CFG2 DRP.RX_DFE_LPM_CFG DRP.RX_DFE_LPM_HOLD_DURING_EIDLE DRP.RX_DFE_UT_CFG DRP.RX_DFE_VP_CFG DRP.RX_DFE_XYD_CFG DRP.RX_DISPERR_SEQ_MATCH DRP.RX_INT_DATAWIDTH DRP.RX_OS_CFG DRP.RX_SIG_VALID_DLY DRP.RX_XCLK_SEL DRP.SAS_MAX_COM DRP.SAS_MIN_COM DRP.SATA_BURST_SEQ_LEN DRP.SATA_BURST_VAL DRP.SATA_CPLL_CFG DRP.SATA_EIDLE_VAL DRP.SATA_MAX_BURST DRP.SATA_MAX_INIT DRP.SATA_MAX_WAKE DRP.SATA_MIN_BURST DRP.SATA_MIN_INIT DRP.SATA_MIN_WAKE DRP.SHOW_REALIGN_COMMA DRP.TERM_RCAL_CFG DRP.TERM_RCAL_OVRD DRP.TRANS_TIME_RATE DRP.TST_RSV DRP.TXBUF_EN DRP.TXBUF_RESET_ON_RATE_CHANGE DRP.TXDLY_CFG DRP.TXDLY_LCFG DRP.TXDLY_TAP_CFG DRP.TXGEARBOX_EN DRP.TXOUT_DIV DRP.TXPCSRESET_TIME DRP.TXPHDLY_CFG DRP.TXPH_CFG DRP.TXPH_MONITOR_SEL DRP.TXPMARESET_TIME DRP.TX_CLK25_DIV DRP.TX_CLKMUX_PD DRP.TX_DATA_WIDTH DRP.TX_DEEMPH0 DRP.TX_DEEMPH1 DRP.TX_DRIVE_MODE DRP.TX_EIDLE_ASSERT_DELAY DRP.TX_EIDLE_DEASSERT_DELAY Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string japan.xilinx.com false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true 000 1 8 3 0 020FEA 000 040 0F0 0E0 00FE 3010D90C 0954 0 11E00 03F03 0000 1 1 0080 09 0 40 24 F 4 0 4 08 15 07 04 0C 04 1 10 0 0E 00000000 1 0 001F 030 0000 0 0 01 084020 0780 00 01 04 1 5 00 00 00 6 4 58 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) DRP.TX_INT_DATAWIDTH DRP.TX_LOOPBACK_DRIVE_HIZ DRP.TX_MAINCURSOR_SEL DRP.TX_MARGIN_FULL_0 DRP.TX_MARGIN_FULL_1 DRP.TX_MARGIN_FULL_2 DRP.TX_MARGIN_FULL_3 DRP.TX_MARGIN_FULL_4 DRP.TX_MARGIN_LOW_0 DRP.TX_MARGIN_LOW_1 DRP.TX_MARGIN_LOW_2 DRP.TX_MARGIN_LOW_3 DRP.TX_MARGIN_LOW_4 DRP.TX_PREDRIVER_MODE DRP.TX_QPI_STATUS_EN DRP.TX_RXDETECT_CFG DRP.TX_RXDETECT_REF DRP.TX_XCLK_SEL DRP.UCODEER_CLR ES_HORZ_MIN_MAX GT_TYPE LINE_RATE LOGIC.DEBUG_CLOCKS LOGIC.ERRBIT_COUNT LOGIC.ERR_INJECT_CTRL LOGIC.FRAME_LEN LOGIC.GT_SOURCES_SYSCLK LOGIC.IDLE_DETECTED LOGIC.IFG_LEN LOGIC.LINK LOGIC.MAX_LINERATE LOGIC.MAX_REFCLK_FREQ LOGIC.MGT_COORDINATE LOGIC.MGT_ERRCNT_RESET_CTRL LOGIC.MGT_ERRCNT_RESET_STAT LOGIC.MGT_NUMBER LOGIC.MGT_RESET_CTRL LOGIC.MGT_RESET_STAT LOGIC.PROTOCOL_ENUM LOGIC.RXPAT_ID LOGIC.RXRECCLK_FREQ_CNT LOGIC.RXRECCLK_FREQ_TUNE LOGIC.RXUSRCLK2_FREQ_CNT LOGIC.RXUSRCLK2_FREQ_TUNE LOGIC.RXUSRCLK_FREQ_CNT LOGIC.RXUSRCLK_FREQ_TUNE LOGIC.RXWORD_COUNT LOGIC.RX_DCM_LOCK LOGIC.RX_DCM_RESET_CTRL LOGIC.RX_DCM_RESET_STAT LOGIC.RX_FRAMED LOGIC.SILICON_VERSION LOGIC.TIMER LOGIC.TXOUTCLK_FREQ_CNT LOGIC.TXOUTCLK_FREQ_TUNE LOGIC.TXPAT_ID LOGIC.TXUSRCLK2_FREQ_CNT LOGIC.TXUSRCLK2_FREQ_TUNE LOGIC.TXUSRCLK_FREQ_CNT Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string japan.xilinx.com false false false false false false false false false false false false false false false false false false false false true false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true 1 0 0 4E 49 45 42 40 46 44 42 40 40 0 0 1832 4 0 0 32 7 Series GTX 0.000 0 000000000000 0 0000 0 0 00 0 0001DCD65000 07735940 0008 0 0 0075 0 0 0000 1 0000 4000 0000 4000 0000 4000 000000000000 1 0 0 0 0300 009736E7B9BC 0000 4000 1 0000 4000 0000 59 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) LOGIC.TXUSRCLK_FREQ_TUNE string false true 4000 LOGIC.TX_DCM_LOCK string false true 1 LOGIC.TX_DCM_RESET_CTRL string false true 0 LOGIC.TX_DCM_RESET_STAT string false true 1 LOGIC.TX_FRAMED string false true 0 LOOPBACK enum false true None NAME string true true localhost/xilinx_tcf/Digilent/210203327463A/0_1/IBERT/Quad_117/MGT_X0Y8 PARENT string true true localhost/xilinx_tcf/Digilent/210203327463A/0_1/IBERT PLL_STATUS string false true LOCKED PORT.CFGRESET string false true 0 PORT.CLKRSVD string false true 0 PORT.CPLLFBCLKLOST string false true 0 PORT.CPLLLOCK string false true 1 PORT.CPLLLOCKDETCLK string false true 0 PORT.CPLLLOCKEN string false true 1 PORT.CPLLPD string false true 0 PORT.CPLLREFCLKLOST string false true 0 PORT.CPLLREFCLKSEL string false true 1 PORT.CPLLRESET string false true 0 PORT.DMONITOROUT string false true 1F PORT.EYESCANDATAERROR string false true 0 PORT.EYESCANMODE string false true 0 PORT.EYESCANRESET string false true 0 PORT.EYESCANTRIGGER string false true 0 PORT.GTREFCLKMONITOR string false true 1 PORT.GTRESETSEL string false true 0 PORT.GTRSVD string false true 0000 PORT.GTRXRESET string false true 0 PORT.GTTXRESET string false true 0 PORT.LOOPBACK string false true 0 PORT.PCSRSVDIN string false true 0000 PORT.PCSRSVDIN2 string false true 00 PORT.PCSRSVDOUT string false true 01F3 PORT.PHYSTATUS string false true 1 PORT.PMARSVDIN string false true 00 PORT.PMARSVDIN2 string false true 00 PORT.RESETOVRD string false true 0 PORT.RX8B10BEN string false true 0 PORT.RXBUFRESET string false true 0 PORT.RXBUFSTATUS string false true 0 PORT.RXBYTEISALIGNED string false true 0 PORT.RXBYTEREALIGN string false true 0 PORT.RXCDRFREQRESET string false true 0 PORT.RXCDRHOLD string false true 0 PORT.RXCDRLOCK string false true 0 PORT.RXCDROVRDEN string false true 0 PORT.RXCDRRESET string false true 0 PORT.RXCDRRESETRSV string false true 0 PORT.RXCHANBONDSEQ string false true 0 PORT.RXCHANISALIGNED string false true 0 PORT.RXCHANREALIGN string false true 0 PORT.RXCHARISCOMMA string false true 00 PORT.RXCHARISK string false true 00 PORT.RXCHBONDEN string false true 0 PORT.RXCHBONDI string false true 10 PORT.RXCHBONDLEVEL string false true 0 PORT.RXCHBONDMASTER string false true 0 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 60 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) PORT.RXCHBONDO PORT.RXCHBONDSLAVE PORT.RXCLKCORCNT PORT.RXCOMINITDET PORT.RXCOMMADET PORT.RXCOMMADETEN PORT.RXCOMSASDET PORT.RXCOMWAKEDET PORT.RXDATAVALID PORT.RXDDIEN PORT.RXDFEAGCHOLD PORT.RXDFEAGCOVRDEN PORT.RXDFECM1EN PORT.RXDFELFHOLD PORT.RXDFELFOVRDEN PORT.RXDFELPMRESET PORT.RXDFETAP2HOLD PORT.RXDFETAP2OVRDEN PORT.RXDFETAP3HOLD PORT.RXDFETAP3OVRDEN PORT.RXDFETAP4HOLD PORT.RXDFETAP4OVRDEN PORT.RXDFETAP5HOLD PORT.RXDFETAP5OVRDEN PORT.RXDFEUTHOLD PORT.RXDFEUTOVRDEN PORT.RXDFEVPHOLD PORT.RXDFEVPOVRDEN PORT.RXDFEVSEN PORT.RXDFEXYDEN PORT.RXDFEXYDHOLD PORT.RXDFEXYDOVRDEN PORT.RXDISPERR PORT.RXDLYBYPASS PORT.RXDLYEN PORT.RXDLYOVRDEN PORT.RXDLYSRESET PORT.RXDLYSRESETDONE PORT.RXELECIDLE PORT.RXELECIDLEMODE PORT.RXGEARBOXSLIP PORT.RXHEADER PORT.RXHEADERVALID PORT.RXLPMEN PORT.RXLPMHFHOLD PORT.RXLPMHFOVRDEN PORT.RXLPMLFHOLD PORT.RXLPMLFKLOVRDEN PORT.RXMCOMMAALIGNEN PORT.RXMONITOROUT PORT.RXMONITORSEL PORT.RXNOTINTABLE PORT.RXOOBRESET PORT.RXOSHOLD PORT.RXOSOVRDEN PORT.RXOUTCLKFABRIC PORT.RXOUTCLKPCS PORT.RXOUTCLKSEL PORT.RXPCOMMAALIGNEN Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string japan.xilinx.com false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 7F 0 FF 0 0 0 0 0 1 0 61 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) PORT.RXPCSRESET PORT.RXPD PORT.RXPHALIGN PORT.RXPHALIGNDONE PORT.RXPHALIGNEN PORT.RXPHDLYPD PORT.RXPHDLYRESET PORT.RXPHMONITOR PORT.RXPHOVRDEN PORT.RXPHSLIPMONITOR PORT.RXPMARESET PORT.RXPOLARITY PORT.RXPRBSCNTRESET PORT.RXPRBSERR PORT.RXPRBSSEL PORT.RXQPIEN PORT.RXQPISENN PORT.RXQPISENP PORT.RXRATE PORT.RXRATEDONE PORT.RXRESETDONE PORT.RXSLIDE PORT.RXSTARTOFSEQ PORT.RXSTATUS PORT.RXSYSCLKSEL PORT.RXUSERRDY PORT.RXVALID PORT.SETERRSTATUS PORT.TSTIN PORT.TSTOUT PORT.TX8B10BBYPASS PORT.TX8B10BEN PORT.TXBUFDIFFCTRL PORT.TXBUFSTATUS PORT.TXCHARDISPMODE PORT.TXCHARDISPVAL PORT.TXCHARISK PORT.TXCOMFINISH PORT.TXCOMINIT PORT.TXCOMSAS PORT.TXCOMWAKE PORT.TXDEEMPH PORT.TXDETECTRX PORT.TXDIFFCTRL PORT.TXDIFFPD PORT.TXDLYBYPASS PORT.TXDLYEN PORT.TXDLYHOLD PORT.TXDLYOVRDEN PORT.TXDLYSRESET PORT.TXDLYSRESETDONE PORT.TXDLYUPDOWN PORT.TXELECIDLE PORT.TXGEARBOXREADY PORT.TXHEADER PORT.TXINHIBIT PORT.TXMAINCURSOR PORT.TXMARGIN PORT.TXOUTCLKFABRIC Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string japan.xilinx.com false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true 0 0 0 0 0 0 0 00 0 04 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 0 0 FFFFF 000 FF 0 4 0 00 00 00 0 0 0 0 0 0 C 0 1 0 0 0 0 0 0 0 0 0 0 00 0 1 62 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) PORT.TXOUTCLKPCS PORT.TXOUTCLKSEL PORT.TXPCSRESET PORT.TXPD PORT.TXPDELECIDLEMODE PORT.TXPHALIGN PORT.TXPHALIGNDONE PORT.TXPHALIGNEN PORT.TXPHDLYPD PORT.TXPHDLYRESET PORT.TXPHDLYTSTCLK PORT.TXPHINIT PORT.TXPHINITDONE PORT.TXPHOVRDEN PORT.TXPISOPD PORT.TXPMARESET PORT.TXPOLARITY PORT.TXPOSTCURSOR PORT.TXPOSTCURSORINV PORT.TXPRBSFORCEERR PORT.TXPRBSSEL PORT.TXPRECURSOR PORT.TXPRECURSORINV PORT.TXQPIBIASEN PORT.TXQPISENN PORT.TXQPISENP PORT.TXQPISTRONGPDOWN PORT.TXQPIWEAKPUP PORT.TXRATE PORT.TXRATEDONE PORT.TXRESETDONE PORT.TXSEQUENCE PORT.TXSTARTSEQ PORT.TXSWING PORT.TXSYSCLKSEL PORT.TXUSERRDY RXDFEENABLED RXOUTCLKSEL RXOUT_DIV RXPLL RXRATE RXTERM RXTERMMODE RXUSRCLK2_FREQ RXUSRCLK_FREQ RX_BER RX_DATA_WIDTH RX_DFE_CTLE RX_INTERNAL_DATAPATH RX_PATTERN RX_RECEIVED_BIT_COUNT STATUS SYSCLK_FREQ TXDIFFSWING TXOUTCLKSEL TXOUT_DIV TXPLL TXPOST TXPRE Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string enum enum enum enum enum enum enum string string string enum enum enum enum string string string enum enum enum enum enum enum japan.xilinx.com false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 03 0 0 0 07 0 0 0 0 0 0 0 0 0 00 0 0 3 1 1 RXOUTCLKPCS 1 QPLL Use RX_OUT_DIV 900 mV Programmable 0.048828 0.048828 inf 40 4-byte PRBS 7-bit 0 NO LINK 100.000000 1.018 V (1100) TXOUTCLKPMA 1 QPLL 0.68 dB (00011) 1.67 dB (00111) 63 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) TXRATE TXUSRCLK2_FREQ TXUSRCLK_FREQ TX_DATA_WIDTH TX_INTERNAL_DATAPATH TX_PATTERN enum string string enum enum enum false false false false false false true true true true true true Use TXOUT_DIV 0.048828 0.048828 40 4-byte PRBS 7-bit hw_sio_gt オブジ ェ ク ト のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_hw_sio_gts] 0] HW_SIO_GTGROUP 説明 GT グループはハー ド ウ ェ ア デバ イ ス 上の GT IO バ ン ク に関連 し てい る ので、 使用可能な GT ピ ンお よ びバ ン ク は タ ーゲ ッ ト のザ イ リ ン ク ス FPGA に よ っ て決ま り ます。 た と えば、 Kintex-7 XC7K325 パーツには 4 つのグループがあ り 、 それぞれに 4 つの差動 GT ピ ンのペアが含まれてい ます。 各 GT ピ ンには、 独自の レ シーバー (hw_sio_rx) と ト ラ ン ス ミ ッ タ ー (hw_sio_tx) が含まれてい ます。 GT グループには、 区画ご と に共有 PLL ( ク ワ ッ ド PLL) も 1 つ含まれて い ます。 GT グループは IBERT デバ ッ グ コ アで定義 さ れてお り 、 IBERT を RTL デザ イ ンに追加する と き に多数の設 定を使用 し て カ ス タ マ イ ズで き ま す。 詳細は、 『LogiCORE IP Integrated Bit Error Ratio Tester (IBERT) for 7 Series GTX Transceivers v3.0 製品ガ イ ド 』 (PG132) を参照 し て く だ さ い。 関連オブ ジ ェ ク ト GT グ ル ー プ は、 hw_device、 hw_sio_ibert、 hw_sio_gt、 hw_sio_common、 hw_sio_pll、 hw_sio_tx、 hw_sio_rx、 お よ び hw_sio_link オブジ ェ ク ト に接続 さ れます。 こ れ ら のグループに接続 さ れた GT オブジ ェ ク ト は、 次の よ う に取得で き ます。 get_hw_sio_gtgroups -of [get_hw_sio_gts *MGT_X0Y9] プ ロパテ ィ report_property コ マ ン ド を使用す る と 、hw_sio_gtgroup オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ を確認で き ます。詳 細 は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [ 参照 13] を 参照 し て く だ さ い。 次 は hw_sio_gtgroup オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ と その値の例です。 Property Type Read-only Visible Value CLASS string true true hw_sio_gtgroup DISPLAY_NAME string true true Quad_117 GT_TYPE string true true 7 Series GTX NAME string true true localhost/xilinx_tcf/Digilent/210203327463A/0_1/IBERT/Quad_117 PARENT string true true localhost/xilinx_tcf/Digilent/210203327463A/0_1/IBERT 特定の hw_sio_gtgroup のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_hw_sio_gtgroups] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 64 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) HW_SIO_IBERT 説明 カ ス タ マ イ ズ可能なザ イ リ ン ク ス FPGA 用の LogiCORE™ IP Integrated Bit Error Ratio Tester (IBERT) コ アは、ギガ ビ ッ ト ト ラ ン シーバー (GT) を評価お よ び監視す る ために設計 さ れてい ます。 IBERT コ アは イ ン シ ス テ ム シ リ アル I/O の 検証お よ びデバ ッ グ を イ ネーブルに し 、 FPGA ベース シ ス テ ムの高速シ リ アル I/O リ ン ク を計測お よ び最適化で き る よ う に し ます。 詳細は、 『LogiCORE IP Integrated Bit Error Ratio Tester (IBERT) for 7 Series GTX Transceivers v3.0 製品ガ イ ド 』 (PG132) を参照 し て く だ さ い。 IBERT デバ ッ グ コ ア を使用す る と 、 次の よ う なデバ イ ス の主な GT 機能を設定お よ び制御で き ます。 • TX プ リ エン フ ァ シ スお よ びポ ス ト エン フ ァ シ ス • TX 差動振幅 • RX イ コ ラ イ ゼーシ ョ ン • 判定帰還等化 (DFE) • 位相 ロ ッ ク ループ (PLL) の分周設定 IBERT コ アは、 単純な ク ロ ッ ク や接続の問題か ら 複雑なマージ ン解析お よ びチ ャ ネル最適化の問題ま で、 さ ま ざ ま な イ ン シ ス テ ム デバ ッ グお よ び検証の問題を解決する ために使用で き ます。 関連オブ ジ ェ ク ト 66 ペ ー ジ の 図 2-22 に 示す よ う に、 SIO IBERT デ バ ッ グ コ ア は、 hw_server、 hw_target、 hw_device、 hw_sio_gt、 hw_sio_common、 hw_sio_pll、 hw_sio_tx、 hw_sio_rx、 ま たは hw_sio_link オブジ ェ ク ト に接続 さ れます。 接続 さ れたオブジ ェ ク ト の IBERT デバ ッ グ コ アは、 次の よ う に取得で き ます。 get_hw_sio_iberts -of [get_hw_sio_plls *MGT_X0Y8/CPLL_0] 次を使用す る と 、 特定の IBERT コ アに接続 さ れたオブジ ェ ク ト も 取得で き ます。 get_hw_sio_commons -of [get_hw_sio_iberts] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 65 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) X-Ref Target - Figure 2-22 KZBFIJPHP KZBWDUJHW KZBGHYLFH KZBELWVWUHDP KZBVLRBVZHHS KZBVLRBVFDQ KZBYLR KZBD[L KZBV\VPRQ KZBVLRBLEHUW KZBVLRBOLQN H KZBVLRBJW KZBVLRBSOO KZBVLRBOLQNJURXS KZBD[LBW[Q KZBVLRBW[ KZBVLRBU[ KZBVLRBJWJURXS ; 図 2‐22 : hw_sio_ibert オブ ジ ェ ク ト プ ロパテ ィ report_property コ マ ン ド を使用す る と 、 特定の hw_sio_ibert に割 り 当て ら れた実際のプ ロ パテ ィ を確認で き ます。 詳細 は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 次は hw_sio_ibert オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ と その値の例です。 Property Type Read-only Visible Value CLASS string true true hw_sio_ibert CORE_REFRESH_RATE_MS int false true 0 DISPLAY_NAME string true true IBERT NAME string true true localhost/xilinx_tcf/Digilent/210203327463A/0_1/IBERT USER_REGISTER int true true 1 特定の hw_sio_ibert のプ ロ パテ ィ を確認す る には、次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_hw_sio_iberts] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 66 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) HW_SIO_PLL 説明 ギガ ビ ッ ト ト ラ ン シーバー (GT) を含むザ イ リ ン ク ス デバ イ ス の場合、 シ リ アル ト ラ ン シーバー チ ャ ネルそれぞれ に Channel PLL (CPLL) と い う リ ン グ PLL (位相 ロ ッ ク ループ) が含まれます。ザ イ リ ン ク ス UltraScale お よ び 7 シ リ ー ズ FPGA では、 GTX の各区画に ク ワ ッ ド PLL (QPLL) と 呼ばれ る 追加の共有 PLL があ り ます。 こ の QPLL は、 高速、 高パフ ォーマ ン ス、 低消費電力のマルチ レーン アプ リ ケーシ ョ ン をサポー ト す る ための共有 LC PLL です。 関連オブ ジ ェ ク ト hw_sio_pll オブジ ェ ク ト は、 hw_server、 hw_target、 hw_device、 hw_sio_ibert、 hw_sio_gt、 ま たは hw_sio_common に接 続 さ れます。 接続 さ れたオブジ ェ ク ト の PLL は次の よ う に取得で き ます。 get_hw_sio_plls -of [get_hw_sio_commons] 次を使用す る と 、 PLL に接続 さ れたオブジ ェ ク ト も 取得で き ます。 get_hw_sio_iberts -of [get_hw_sio_plls *MGT_X0Y8/CPLL_0] プ ロパテ ィ report_property コ マ ン ド を 使用す る と 、 特定の hw_sio_pll に割 り 当 て ら れ た プ ロ パ テ ィ を 確認で き ま す。 詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 次は、 QPLL タ イ プ の hw_sio_pll オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ と その値の例を示 し てい ます。 Property Type Read-only Visible Value CLASS string true true hw_sio_pll DISPLAY_NAME string true true COMMON_X0Y2/QPLL_0 DRP.QPLL_CFG string false true 06801C1 DRP.QPLL_CLKOUT_CFG string false true 0 DRP.QPLL_COARSE_FREQ_OVRD string false true 10 DRP.QPLL_COARSE_FREQ_OVRD_EN string false true 0 DRP.QPLL_CP string false true 01F DRP.QPLL_CP_MONITOR_EN string false true 0 DRP.QPLL_DMONITOR_SEL string false true 0 DRP.QPLL_FBDIV string false true 0E0 DRP.QPLL_FBDIV_MONITOR_EN string false true 1 DRP.QPLL_FBDIV_RATIO string false true 1 DRP.QPLL_INIT_CFG string false true 000028 DRP.QPLL_LOCK_CFG string false true 21E8 DRP.QPLL_LOWER_BAND string false true 1 DRP.QPLL_LPF string false true F DRP.QPLL_REFCLK_DIV string false true 10 LOGIC.QPLLRESET_CTRL string false true 0 LOGIC.QPLLRESET_STAT string false true 0 LOGIC.QPLL_LOCK string false true 0 NAME string true true localhost/xilinx_tcf/Digilent/210203327463A/0_1/IBERT/Quad_117/COMMON_X0Y2/QPLL_0 PARENT string true true localhost/xilinx_tcf/Digilent/210203327463A/0_1/IBERT/Quad_117/COMMON_X0Y2 PORT.QPLLDMONITOR string false true EC Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 67 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) PORT.QPLLFBCLKLOST PORT.QPLLLOCK PORT.QPLLLOCKEN PORT.QPLLOUTRESET PORT.QPLLPD PORT.QPLLREFCLKLOST PORT.QPLLREFCLKSEL PORT.QPLLRESET PORT.QPLLRSVD1 PORT.QPLLRSVD2 QPLLREFCLKSEL QPLL_N_DIVIDER QPLL_REFCLK_DIV STATUS string string string string string string string string string string enum enum enum string false false false false false false false false false false false false false false true true true true true true true true true true true true true true 0 1 1 0 0 0 1 0 0000 1F GTREFCLK0 64 1 LOCKED hw_sio_pll オブジ ェ ク ト のプ ロ パテ ィ を確認する には、次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_hw_sio_gts] 0] HW_SIO_RX 説明 ハー ド ウ ェ ア デバ イ ス上では、 各 GT に PCS お よ び PMA で構成 さ れ る 独立 し た レ シーバー (hw_sio_rx) が含ま れて い ます。 高速シ リ アル デー タ は、 ボー ド 上の ト レース か ら GTX/GTH ト ラ ン シーバー RX の PMA、 PCS、 そ し て最後 に FPGA ロ ジ ッ ク に送信 さ れます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 68 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-23 KZBELWVWUHDP KZBVLRBVZHHS KZBVLRBVFDQ KZBD[L KZBV\VPRQ KZBVLRBLEHUW KZBVLRBOLQN KZBVLRBJW KZBVLRBSOO KZBVLRBOLQNJURXS KZBD[LBW[Q KZBVLRBW[ KZBVLRBU[ KZBVLRBJWJURXS ; 図 2‐23 : ハー ド ウ ェ ア SIO RX および TX オブ ジ ェ ク ト hw_sio_rx オブジ ェ ク ト は、 hw_server、 hw_target、 hw_device、 hw_sio_ibert、 hw_sio_gt、 ま たは hw_sio_link に接続 さ れます。 接続 さ れたオブジ ェ ク ト の hw_sio_rx オブジ ェ ク ト は、 次の よ う に取得で き ます。 get_hw_sio_rxs -of [get_hw_sio_gts] 次を使用す る と 、 特定の hw_sio_rx に接続 さ れたオブジ ェ ク ト も 取得で き ます。 get_hw_sio_links -of [get_hw_sio_rxs] プ ロパテ ィ report_property コ マ ン ド を使用す る と 、 特定の hw_sio_rx オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ を確認で き ます。 詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を 参照 し て く だ さ い。 次 は、 hw_sio_rx オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ と その値の例を示 し てい ます。 Property CLASS DISPLAY_NAME DRP.ES_CONTROL DRP.ES_CONTROL_STATUS DRP.ES_ERRDET_EN DRP.ES_ERROR_COUNT DRP.ES_EYE_SCAN_EN DRP.ES_HORZ_OFFSET Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 Type Read-only string true string true string false string false string false string false string false string false japan.xilinx.com Visible true true true true true true true true Value hw_sio_rx MGT_X0Y8/RX 00 0 0 0000 1 000 69 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) DRP.ES_PMA_CFG DRP.ES_PRESCALE DRP.ES_QUALIFIER DRP.ES_QUAL_MASK DRP.ES_RDATA DRP.ES_SAMPLE_COUNT DRP.ES_SDATA DRP.ES_SDATA_MASK DRP.ES_UT_SIGN DRP.ES_VERT_OFFSET DRP.FTS_DESKEW_SEQ_ENABLE DRP.FTS_LANE_DESKEW_CFG DRP.FTS_LANE_DESKEW_EN DRP.RXBUFRESET_TIME DRP.RXBUF_ADDR_MODE DRP.RXBUF_EIDLE_HI_CNT DRP.RXBUF_EIDLE_LO_CNT DRP.RXBUF_EN DRP.RXBUF_RESET_ON_CB_CHANGE DRP.RXBUF_RESET_ON_COMMAALIGN DRP.RXBUF_RESET_ON_EIDLE DRP.RXBUF_RESET_ON_RATE_CHANGE DRP.RXBUF_THRESH_OVFLW DRP.RXBUF_THRESH_OVRD DRP.RXBUF_THRESH_UNDFLW DRP.RXCDRFREQRESET_TIME DRP.RXCDRPHRESET_TIME DRP.RXCDR_CFG DRP.RXCDR_FR_RESET_ON_EIDLE DRP.RXCDR_HOLD_DURING_EIDLE DRP.RXCDR_LOCK_CFG DRP.RXCDR_PH_RESET_ON_EIDLE DRP.RXDFELPMRESET_TIME DRP.RXDLY_CFG DRP.RXDLY_LCFG DRP.RXDLY_TAP_CFG DRP.RXGEARBOX_EN DRP.RXISCANRESET_TIME DRP.RXLPM_HF_CFG DRP.RXLPM_LF_CFG DRP.RXOOB_CFG DRP.RXOUT_DIV DRP.RXPCSRESET_TIME DRP.RXPHDLY_CFG DRP.RXPH_CFG DRP.RXPH_MONITOR_SEL DRP.RXPMARESET_TIME DRP.RXPRBS_ERR_LOOPBACK DRP.RXSLIDE_AUTO_WAIT DRP.RXSLIDE_MODE DRP.RX_BIAS_CFG DRP.RX_BUFFER_CFG DRP.RX_CLK25_DIV DRP.RX_CLKMUX_PD DRP.RX_CM_SEL DRP.RX_CM_TRIM DRP.RX_DATA_WIDTH DRP.RX_DDI_SEL DRP.RX_DEBUG_CFG Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string japan.xilinx.com false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true 000 00 00000000000000000000 00000000000000000000 00000000000000000000 0000 00000000000000000000 00000000000000000000 0 000 F F 0 01 1 8 0 1 1 0 0 1 3D 0 04 01 01 0B800023FF10200020 0 0 15 0 0F 001F 030 0000 0 01 00F0 00F0 06 0 01 084020 000000 00 03 0 7 0 004 00 04 1 3 4 5 00 000 70 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) DRP.RX_DEFER_RESET_BUF_EN string false true 1 DRP.RX_DFE_CTLE_STAGE1 string false true 8 DRP.RX_DFE_CTLE_STAGE2 string false true 3 DRP.RX_DFE_CTLE_STAGE3 string false true 0 DRP.RX_DFE_GAIN_CFG string false true 020FEA DRP.RX_DFE_H2_CFG string false true 000 DRP.RX_DFE_H3_CFG string false true 040 DRP.RX_DFE_H4_CFG string false true 0F0 DRP.RX_DFE_H5_CFG string false true 0E0 DRP.RX_DFE_KL_CFG2 string false true 3010D90C DRP.RX_DFE_KL_CFG string false true 00FE DRP.RX_DFE_LPM_CFG string false true 0954 DRP.RX_DFE_LPM_HOLD_DURING_EIDLE string false true 0 DRP.RX_DFE_UT_CFG string false true 11E00 DRP.RX_DFE_VP_CFG string false true 03F03 DRP.RX_DFE_XYD_CFG string false true 0000 DRP.RX_DISPERR_SEQ_MATCH string false true 1 DRP.RX_INT_DATAWIDTH string false true 1 DRP.RX_OS_CFG string false true 0080 DRP.RX_SIG_VALID_DLY string false true 09 DRP.RX_XCLK_SEL string false true 0 DRP.TXBUF_RESET_ON_RATE_CHANGE string false true 0 DRP.TXPCSRESET_TIME string false true 01 DRP.TXPMARESET_TIME string false true 01 DRP.TX_LOOPBACK_DRIVE_HIZ string false true 0 DRP.TX_RXDETECT_CFG string false true 1832 DRP.TX_RXDETECT_REF string false true 4 ES_HORZ_MIN_MAX string false true 32 LINE_RATE string false true 0.000 LOGIC.ERRBIT_COUNT string false true 000000000000 LOGIC.GT_SOURCES_SYSCLK string false true 0 LOGIC.LINK string false true 0 LOGIC.MGT_ERRCNT_RESET_CTRL string false true 0 LOGIC.MGT_ERRCNT_RESET_STAT string false true 0 LOGIC.MGT_RESET_CTRL string false true 0 LOGIC.MGT_RESET_STAT string false true 0 LOGIC.RXPAT_ID string false true 1 LOGIC.RXRECCLK_FREQ_CNT string false true 0000 LOGIC.RXRECCLK_FREQ_TUNE string false true 4000 LOGIC.RXUSRCLK2_FREQ_CNT string false true 0000 LOGIC.RXUSRCLK2_FREQ_TUNE string false true 4000 LOGIC.RXUSRCLK_FREQ_CNT string false true 0000 LOGIC.RXUSRCLK_FREQ_TUNE string false true 4000 LOGIC.RXWORD_COUNT string false true 000000000000 LOGIC.RX_DCM_LOCK string false true 1 LOGIC.RX_DCM_RESET_CTRL string false true 0 LOGIC.RX_DCM_RESET_STAT string false true 0 LOGIC.RX_FRAMED string false true 0 LOGIC.TX_DCM_RESET_CTRL string false true 0 LOGIC.TX_DCM_RESET_STAT string false true 1 LOOPBACK enum false true Near-End PCS NAME string true true localhost/xilinx_tcf/Digilent/210203327463A/0_1/IBERT/Quad_117/MGT_X0Y8/RX PARENT string true true localhost/xilinx_tcf/Digilent/210203327463A/0_1/IBERT/Quad_117/MGT_X0Y8 PORT.CFGRESET string false true 0 PORT.CPLLRESET string false true 0 PORT.EYESCANDATAERROR string false true 0 PORT.EYESCANMODE string false true 0 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 71 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) PORT.EYESCANRESET PORT.EYESCANTRIGGER PORT.GTRESETSEL PORT.GTRXRESET PORT.GTTXRESET PORT.LOOPBACK PORT.RESETOVRD PORT.RX8B10BEN PORT.RXBUFRESET PORT.RXBUFSTATUS PORT.RXBYTEISALIGNED PORT.RXBYTEREALIGN PORT.RXCDRFREQRESET PORT.RXCDRHOLD PORT.RXCDRLOCK PORT.RXCDROVRDEN PORT.RXCDRRESET PORT.RXCDRRESETRSV PORT.RXCHANBONDSEQ PORT.RXCHANISALIGNED PORT.RXCHANREALIGN PORT.RXCHARISCOMMA PORT.RXCHARISK PORT.RXCHBONDEN PORT.RXCHBONDI PORT.RXCHBONDLEVEL PORT.RXCHBONDMASTER PORT.RXCHBONDO PORT.RXCHBONDSLAVE PORT.RXCLKCORCNT PORT.RXCOMINITDET PORT.RXCOMMADET PORT.RXCOMMADETEN PORT.RXCOMSASDET PORT.RXCOMWAKEDET PORT.RXDATAVALID PORT.RXDDIEN PORT.RXDFEAGCHOLD PORT.RXDFEAGCOVRDEN PORT.RXDFECM1EN PORT.RXDFELFHOLD PORT.RXDFELFOVRDEN PORT.RXDFELPMRESET PORT.RXDFETAP2HOLD PORT.RXDFETAP2OVRDEN PORT.RXDFETAP3HOLD PORT.RXDFETAP3OVRDEN PORT.RXDFETAP4HOLD PORT.RXDFETAP4OVRDEN PORT.RXDFETAP5HOLD PORT.RXDFETAP5OVRDEN PORT.RXDFEUTHOLD PORT.RXDFEUTOVRDEN PORT.RXDFEVPHOLD PORT.RXDFEVPOVRDEN PORT.RXDFEVSEN PORT.RXDFEXYDEN PORT.RXDFEXYDHOLD PORT.RXDFEXYDOVRDEN Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string japan.xilinx.com false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 0 10 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) PORT.RXDISPERR PORT.RXDLYBYPASS PORT.RXDLYEN PORT.RXDLYOVRDEN PORT.RXDLYSRESET PORT.RXDLYSRESETDONE PORT.RXELECIDLE PORT.RXELECIDLEMODE PORT.RXGEARBOXSLIP PORT.RXHEADER PORT.RXHEADERVALID PORT.RXLPMEN PORT.RXLPMHFHOLD PORT.RXLPMHFOVRDEN PORT.RXLPMLFHOLD PORT.RXLPMLFKLOVRDEN PORT.RXMCOMMAALIGNEN PORT.RXMONITOROUT PORT.RXMONITORSEL PORT.RXNOTINTABLE PORT.RXOOBRESET PORT.RXOSHOLD PORT.RXOSOVRDEN PORT.RXOUTCLKFABRIC PORT.RXOUTCLKPCS PORT.RXOUTCLKSEL PORT.RXPCOMMAALIGNEN PORT.RXPCSRESET PORT.RXPD PORT.RXPHALIGN PORT.RXPHALIGNDONE PORT.RXPHALIGNEN PORT.RXPHDLYPD PORT.RXPHDLYRESET PORT.RXPHMONITOR PORT.RXPHOVRDEN PORT.RXPHSLIPMONITOR PORT.RXPMARESET PORT.RXPOLARITY PORT.RXPRBSCNTRESET PORT.RXPRBSERR PORT.RXPRBSSEL PORT.RXQPIEN PORT.RXQPISENN PORT.RXQPISENP PORT.RXRATE PORT.RXRATEDONE PORT.RXRESETDONE PORT.RXSLIDE PORT.RXSTARTOFSEQ PORT.RXSTATUS PORT.RXSYSCLKSEL PORT.RXUSERRDY PORT.RXVALID PORT.TXDETECTRX PORT.TXDLYSRESET PORT.TXDLYSRESETDONE PORT.TXPCSRESET PORT.TXPHDLYRESET Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string japan.xilinx.com false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true 00 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 7F 0 FF 0 0 0 1 0 1 0 0 0 0 0 0 0 0 00 0 04 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 0 0 0 0 0 0 73 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) PORT.TXPMARESET string false true 0 PORT.TXRESETDONE string false true 0 RXDFEENABLED enum false true 1 RXOUTCLKSEL enum false true RXOUTCLKPCS RXOUT_DIV enum false true 1 RXPLL enum false true QPLL RXRATE enum false true Use RX_OUT_DIV RXTERM enum false true 900 mV RXTERMMODE enum false true Programmable RXUSRCLK2_FREQ string false true 0.048828 RXUSRCLK_FREQ string false true 0.048828 RX_BER string false true inf RX_DATA_WIDTH enum false true 40 RX_DFE_CTLE enum false true RX_INTERNAL_DATAPATH enum false true 4-byte RX_PATTERN enum false true PRBS 7-bit RX_PLL string true true localhost/xilinx_tcf/Digilent/210203327463A/0_1/IBERT/Quad_117/COMMON_X0Y2/QPLL_0 RX_RECEIVED_BIT_COUNT string false true 0 STATUS string false true NO LINK hw_sio_rx オブジ ェ ク ト のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_hw_sio_rxs] 0] HW_SIO_TX 説明 ハー ド ウ ェ ア デバ イ ス上では、 各 GT に PCS お よ び PMA で構成 さ れ る 独立 し た ト ラ ン ス ミ ッ タ ー (hw_sio_tx) が含 まれてい ます。パ ラ レル デー タ は、デバ イ ス ロ ジ ッ ク か ら FPGA TX イ ン タ ーフ ェ イ ス に送信 さ れ、PCS お よ び PMA を介 し て TX ド ラ イ バーか ら 高速シ リ アル デー タ と し て出力 さ れます。 関連オブ ジ ェ ク ト 69 ペー ジ の図 2-23 は、 hw_sio_tx オ ブ ジ ェ ク ト と そ の 他の ハー ド ウ ェ ア オ ブ ジ ェ ク ト の関係 を 示 し て い ま す。 hw_sio_tx オブジ ェ ク ト は、 hw_server、 hw_target、 hw_device、 hw_sio_ibert、 hw_sio_gt、 ま たは hw_sio_link に接続 さ れます。 接続 さ れたオブジ ェ ク ト の hw_sio_tx オブジ ェ ク ト は、 次の よ う に取得で き ます。 get_hw_sio_txs -of [get_hw_sio_gts] 次を使用す る と 、 特定の hw_sio_tx に接続 さ れたオブジ ェ ク ト も 取得で き ます。 get_hw_sio_links -of [get_hw_sio_txs] プ ロパテ ィ report_property コ マ ン ド を使用す る と 、 特定の hw_sio_tx オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ を確認で き ます。 詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を 参照 し て く だ さ い。 次 は、 hw_sio_tx オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ と その値の例を示 し てい ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 74 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) Property Type Read-only Visible Value CLASS string true true hw_sio_tx DISPLAY_NAME string true true MGT_X0Y8/TX DRP.TXBUF_EN string false true 1 DRP.TXBUF_RESET_ON_RATE_CHANGE string false true 0 DRP.TXDLY_CFG string false true 001F DRP.TXDLY_LCFG string false true 030 DRP.TXDLY_TAP_CFG string false true 0000 DRP.TXGEARBOX_EN string false true 0 DRP.TXOUT_DIV string false true 0 DRP.TXPCSRESET_TIME string false true 01 DRP.TXPHDLY_CFG string false true 084020 DRP.TXPH_CFG string false true 0780 DRP.TXPH_MONITOR_SEL string false true 00 DRP.TXPMARESET_TIME string false true 01 DRP.TX_CLK25_DIV string false true 04 DRP.TX_CLKMUX_PD string false true 1 DRP.TX_DATA_WIDTH string false true 5 DRP.TX_DEEMPH0 string false true 00 DRP.TX_DEEMPH1 string false true 00 DRP.TX_DRIVE_MODE string false true 00 DRP.TX_EIDLE_ASSERT_DELAY string false true 6 DRP.TX_EIDLE_DEASSERT_DELAY string false true 4 DRP.TX_INT_DATAWIDTH string false true 1 DRP.TX_LOOPBACK_DRIVE_HIZ string false true 0 DRP.TX_MAINCURSOR_SEL string false true 0 DRP.TX_MARGIN_FULL_0 string false true 4E DRP.TX_MARGIN_FULL_1 string false true 49 DRP.TX_MARGIN_FULL_2 string false true 45 DRP.TX_MARGIN_FULL_3 string false true 42 DRP.TX_MARGIN_FULL_4 string false true 40 DRP.TX_MARGIN_LOW_0 string false true 46 DRP.TX_MARGIN_LOW_1 string false true 44 DRP.TX_MARGIN_LOW_2 string false true 42 DRP.TX_MARGIN_LOW_3 string false true 40 DRP.TX_MARGIN_LOW_4 string false true 40 DRP.TX_PREDRIVER_MODE string false true 0 DRP.TX_QPI_STATUS_EN string false true 0 DRP.TX_RXDETECT_CFG string false true 1832 DRP.TX_RXDETECT_REF string false true 4 DRP.TX_XCLK_SEL string false true 0 LOGIC.ERR_INJECT_CTRL string false true 0 LOGIC.TXOUTCLK_FREQ_CNT string false true 0000 LOGIC.TXOUTCLK_FREQ_TUNE string false true 4000 LOGIC.TXPAT_ID string false true 1 LOGIC.TXUSRCLK2_FREQ_CNT string false true 0000 LOGIC.TXUSRCLK2_FREQ_TUNE string false true 4000 LOGIC.TXUSRCLK_FREQ_CNT string false true 0000 LOGIC.TXUSRCLK_FREQ_TUNE string false true 4000 LOGIC.TX_DCM_LOCK string false true 1 LOGIC.TX_DCM_RESET_CTRL string false true 0 LOGIC.TX_DCM_RESET_STAT string false true 1 LOGIC.TX_FRAMED string false true 0 NAME string true true localhost/xilinx_tcf/Digilent/210203327463A/0_1/IBERT/Quad_117/MGT_X0Y8/TX PARENT string true true localhost/xilinx_tcf/Digilent/210203327463A/0_1/IBERT/Quad_117/MGT_X0Y8 PORT.GTTXRESET string false true 0 PORT.TX8B10BBYPASS string false true FF Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 75 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) PORT.TX8B10BEN PORT.TXBUFDIFFCTRL PORT.TXBUFSTATUS PORT.TXCHARDISPMODE PORT.TXCHARDISPVAL PORT.TXCHARISK PORT.TXCOMFINISH PORT.TXCOMINIT PORT.TXCOMSAS PORT.TXCOMWAKE PORT.TXDEEMPH PORT.TXDETECTRX PORT.TXDIFFCTRL PORT.TXDIFFPD PORT.TXDLYBYPASS PORT.TXDLYEN PORT.TXDLYHOLD PORT.TXDLYOVRDEN PORT.TXDLYSRESET PORT.TXDLYSRESETDONE PORT.TXDLYUPDOWN PORT.TXELECIDLE PORT.TXGEARBOXREADY PORT.TXHEADER PORT.TXINHIBIT PORT.TXMAINCURSOR PORT.TXMARGIN PORT.TXOUTCLKFABRIC PORT.TXOUTCLKPCS PORT.TXOUTCLKSEL PORT.TXPCSRESET PORT.TXPD PORT.TXPDELECIDLEMODE PORT.TXPHALIGN PORT.TXPHALIGNDONE PORT.TXPHALIGNEN PORT.TXPHDLYPD PORT.TXPHDLYRESET PORT.TXPHDLYTSTCLK PORT.TXPHINIT PORT.TXPHINITDONE PORT.TXPHOVRDEN PORT.TXPISOPD PORT.TXPMARESET PORT.TXPOLARITY PORT.TXPOSTCURSOR PORT.TXPOSTCURSORINV PORT.TXPRBSFORCEERR PORT.TXPRBSSEL PORT.TXPRECURSOR PORT.TXPRECURSORINV PORT.TXQPIBIASEN PORT.TXQPISENN PORT.TXQPISENP PORT.TXQPISTRONGPDOWN PORT.TXQPIWEAKPUP PORT.TXRATE PORT.TXRATEDONE PORT.TXRESETDONE Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string string false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false japan.xilinx.com true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true 0 4 0 00 00 00 0 0 0 0 0 0 C 0 1 0 0 0 0 0 0 0 0 0 0 00 0 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 03 0 0 0 07 0 0 0 0 0 0 0 0 0 76 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) PORT.TXSEQUENCE string false true 00 PORT.TXSTARTSEQ string false true 0 PORT.TXSWING string false true 0 PORT.TXSYSCLKSEL string false true 3 PORT.TXUSERRDY string false true 1 TXDIFFSWING enum false true 1.018 V (1100) TXOUTCLKSEL enum false true TXOUTCLKPMA TXOUT_DIV enum false true 1 TXPLL enum false true QPLL TXPOST enum false true 0.68 dB (00011) TXPRE enum false true 1.67 dB (00111) TXRATE enum false true Use TXOUT_DIV TXUSRCLK2_FREQ string false true 0.048828 TXUSRCLK_FREQ string false true 0.048828 TX_DATA_WIDTH enum false true 40 TX_INTERNAL_DATAPATH enum false true 4-byte TX_PATTERN enum false true PRBS 7-bit TX_PLL string true true localhost/xilinx_tcf/Digilent/210203327463A/0_1/IBERT/Quad_117/COMMON_X0Y2/QPLL_0 hw_sio_tx オブジ ェ ク ト のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_hw_sio_txs] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 77 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) HW_SYSMON 説明 シ ス テ ム モニ タ ー (HW_SYSMON) は、 ザ イ リ ン ク ス デバ イ ス上の Analog-to-Digital Converter (ADC) 回路で、 温度お よ び電圧な ど の動作状況を測定す る ために使用 さ れ ます。 HW_SYSMON は、 オ ンチ ッ プ温度お よ び供給セ ンサーを 使用 し て物理的な環境を監視 し ます。 ADC は広範囲のアプ リ ケーシ ョ ンに対 し 高精度のアナ ロ グ イ ン タ ーフ ェ イ ス を提供 し ます。 ADC は最大で 17 の外部アナ ロ グ入力チ ャ ネルにア ク セ ス で き ます。 X-Ref Target - Figure 2-24 KZBVHUYHU KZBD[L KZBWDUJHW KZBV\VPRQ KZBGHYLFH KZBLOD KZBVLRB KZBYLR KZBV\VPRQBUHJ KZBSUREH KZBVLRBJW KZBD[LBW[Q KZBLODBGDWD KZBVLRBW[ KZBVLRB 図 2‐24 : HW_SYSMON オブ ジ ェ ク ト HW_SYSMON には、 デー タ レ ジ ス タ (HW_SYSMON_REG オブジ ェ ク ト ) が含まれ、 温度お よ び電圧の現在の値が格 納 さ れます。 現在の hw_device での こ れ ら の レ ジ ス タ の値には、 ハー ド ウ ェ ア サーバー と タ ーゲ ッ ト に接続 さ れ る 場 合、 Vivado Design Suite のハー ド ウ ェ ア マネージ ャ ー機能を使用 し て ア ク セ ス で き ます。 hw_sysmon は、 Virtex-7 と UltraScale で異な り ます。 特定の XADC に関する 詳細、 お よ びその使用方法については、 『UltraScale アーキ テ ク チ ャ シ ス テ ム モニ タ ー ユーザー ガ イ ド 』(UG580) [参照 12] ま たは 『7 シ リ ーズ FPGA お よ び Zynq-7000 All Programmable SoC XADC デ ュ アル 12 ビ ッ ト 1 MSPS アナ ロ グ - デジ タ ル コ ンバー タ ー ユーザー ガ イ ド 』 (UG480) [参照 6] を参照 し て く だ さ い。 特定の レ ジ ス タ の値は get_hw_sysmon_reg コ マ ン ド を使用 し て System Monitor の レ ジ ス タ に格納 さ れた 16 進数値に ア ク セ ス し て取得す る こ と も で き ますが、hw_sysmon オブジ ェ ク ト の フ ォーマ ッ ト さ れたプ ロ パテ ィ と し て表示す る こ と も で き ま す。 た と えば、 レ ジ ス タ の 16 進数に直接ア ク セ ス す る のではな く 、 次の コ ー ド を 使用 し て、 指定の hw_sysmon オブジ ェ ク ト の TEMPERATURE プ ロ パテ ィ を取得で き ます。 get_property TEMPERATURE [get_hw_sysmons] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 78 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 関連オブ ジ ェ ク ト hw_sysmon オブジ ェ ク ト は、 現在のhw_target お よ び hw_server にプ ロ グ ラ ム さ れた hw_device のハー ド ウ ェ ア マネー ジ ャ ーに含まれてい ます。 hw_device の hw_sysmon は次の よ う に取得で き ます。 get_hw_sysmons -of [get_hw_devices] プ ロパテ ィ report_property コ マ ン ド を使用す る と 、hw_sysmon オブジ ェ ク ト に割 り 当て ら れた実際のプ ロ パテ ィ を確認で き ます。 詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 hw_sysmon のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ル ま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_hw_sysmons] 0] 次は、 hw_sysmon オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ と その値の例を示 し てい ます。 Property ADC_A_GAIN ADC_A_OFFSET ADC_B_GAIN ADC_B_OFFSET CLASS CONFIG_REG.ACQ CONFIG_REG.ALM0 CONFIG_REG.ALM1 CONFIG_REG.ALM2 CONFIG_REG.ALM3 CONFIG_REG.ALM4 CONFIG_REG.ALM5 CONFIG_REG.ALM6 CONFIG_REG.AVG CONFIG_REG.BU CONFIG_REG.CAL0 CONFIG_REG.CAL1 CONFIG_REG.CAL2 CONFIG_REG.CAL3 CONFIG_REG.CAVG CONFIG_REG.CD CONFIG_REG.CH CONFIG_REG.EC CONFIG_REG.MUX CONFIG_REG.OT CONFIG_REG.PD CONFIG_REG.SEQ DESCRIPTION FLAG.ALM0 FLAG.ALM1 FLAG.ALM2 FLAG.ALM3 FLAG.ALM4 FLAG.ALM5 FLAG.ALM6 FLAG.JTGD FLAG.JTGR FLAG.OT Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 Type hex hex hex hex string binary binary binary binary binary binary binary binary binary binary binary binary binary binary binary binary binary binary binary binary binary binary string binary binary binary binary binary binary binary binary binary binary Read-only true true true true true false false false false false false false false false false false false false false false false false false false false false false true true true true true true true true true true true japan.xilinx.com Visible true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true Value 0000 007e 0000 ffbb hw_sysmon 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 00000000 00000 0 0 0 00 0000 XADC 0 0 0 0 0 0 0 0 0 0 79 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) FLAG.REF binary true true 0 LOWER_TEMPERATURE string false true -273.1 LOWER_TEMPERATURE_SCALE enum false true CELSIUS LOWER_VCCAUX string false true 0.000 LOWER_VCCBRAM string false true 0.000 LOWER_VCCINT string false true 0.000 LOWER_VCCO_DDR string false true 0.000 LOWER_VCCPAUX string false true 0.000 LOWER_VCCPINT string false true 0.000 MAX_TEMPERATURE string true true 41.7 MAX_TEMPERATURE_SCALE enum false true CELSIUS MAX_VCCAUX string true true 1.805 MAX_VCCBRAM string true true 0.997 MAX_VCCINT string true true 1.000 MAX_VCCO_DDR string true true 0.000 MAX_VCCPAUX string true true 0.000 MAX_VCCPINT string true true 0.000 MIN_TEMPERATURE string true true 37.3 MIN_TEMPERATURE_SCALE enum false true CELSIUS MIN_VCCAUX string true true 1.800 MIN_VCCBRAM string true true 0.993 MIN_VCCINT string true true 0.997 MIN_VCCO_DDR string true true 2.999 MIN_VCCPAUX string true true 2.999 MIN_VCCPINT string true true 2.999 NAME string true true localhost/xilinx_tcf/Digilent/210203336599A/xc7k325t_0/SYSMON SUPPLY_A_OFFSET hex true true 006b SUPPLY_B_OFFSET hex true true ffa9 SYSMON_REFRESH_RATE_MS int false true 0 TEMPERATURE string true true 37.8 TEMPERATURE_SCALE enum false true CELSIUS UPPER_TEMPERATURE string false true -273.1 UPPER_TEMPERATURE_SCALE enum false true CELSIUS UPPER_VCCAUX string false true 0.000 UPPER_VCCBRAM string false true 0.000 UPPER_VCCINT string false true 0.000 UPPER_VCCO_DDR string false true 0.000 UPPER_VCCPAUX string false true 0.000 UPPER_VCCPINT string false true 0.000 VAUXP0_VAUXN0 string true true 0.000 VAUXP1_VAUXN1 string true true 0.000 VAUXP2_VAUXN2 string true true 0.000 VAUXP3_VAUXN3 string true true 0.000 VAUXP4_VAUXN4 string true true 0.000 VAUXP5_VAUXN5 string true true 0.000 VAUXP6_VAUXN6 string true true 0.000 VAUXP7_VAUXN7 string true true 0.000 VAUXP8_VAUXN8 string true true 0.000 VAUXP9_VAUXN9 string true true 0.000 VAUXP10_VAUXN10 string true true 0.000 VAUXP11_VAUXN11 string true true 0.000 VAUXP12_VAUXN12 string true true 0.000 VAUXP13_VAUXN13 string true true 0.000 VAUXP14_VAUXN14 string true true 0.000 VAUXP15_VAUXN15 string true true 0.000 VCCAUX string true true 1.802 VCCBRAM string true true 0.995 VCCINT string true true 0.999 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 80 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) VCCO_DDR VCCPAUX VCCPINT VP_VN VREFN VREFP string string string string string string true true true true true true true true true true true true 0.000 0.000 0.000 0.000 0.000 0.000 HW_TARGET 説明 ハー ド ウ ェ ア タ ーゲ ッ ト (hw_target) と は、 ビ ッ ト ス ト リ ーム フ ァ イ ルを使用 し てプ ロ グ ラ ム、 ま たはデザ イ ン をデ バ ッ グす る ために使用す る 、 1 つ以上のザ イ リ ン ク ス FPGA デバ イ ス か ら 構成 さ れ る JTAG チ ェーン を含むシ ス テ ム ボー ド です。シ ス テ ム ボー ド 上のハー ド ウ ェ ア タ ーゲ ッ ト と Vivado Design Suite と の接続は、ハー ド ウ ェ ア サーバー オブジ ェ ク ト (hw_server) で制御 さ れます。 使用可能なハー ド ウ ェ ア タ ーゲ ッ ト の 1 つへの接続を開 く には、 open_hw_target コ マ ン ド を使用 し ます。 開いた タ ー ゲ ッ ト は、 自動的に現在のハー ド ウ ェ ア タ ーゲ ッ ト と な り ます。 Vivado の ロ ジ ッ ク 解析では、 プ ロ グ ラ ムお よ びデ バ ッ グ コ マ ン ド が hw_server 接続を使用 し て開いた タ ーゲ ッ ト の FPGA デバ イ ス オブジ ェ ク ト (hw_device) に使用 さ れます。 hw_target は、 open_hw_target コ マ ン ド に -jtag_mode オプシ ョ ン を付けて開 く と 、 タ ーゲ ッ ト を JTAG テ ス ト モー ド に し てデバ イ ス の命令レ ジ ス タ (IR) と デー タ レ ジ ス タ (DR)、 ま たは タ ーゲ ッ ト のデバ イ ス にア ク セ ス で き ます。 タ ー ゲ ッ ト を JTAG モー ド で開 く と 、 Vivado Design Suite のハー ド ウ ェ ア マネージ ャ ー機能に hw_jtag オブジ ェ ク ト が作 成 さ れ、 JTAG TAP コ ン ト ロ ー ラ ーへア ク セ ス で き る よ う にな り ます。 サポー ト さ れ る JTAG ダ ウ ン ロ ー ド ケーブルお よ びデバ イ ス の リ ス ト は、『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908) [参照 23] を参照 し て く だ さ い。 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-25 KZBFIJPHP KZBVHUYHU KZBWDUJHW KZBGHYLFH KZBELWVWUHDP 図 2‐25 : ハー ド ウ ェ ア タ ーゲ ッ ト オブ ジ ェ ク ト ハー ド ウ ェ ア タ ーゲ ッ ト はハー ド ウ ェ ア サーバーに接続 さ れてお り 、次の よ う に hw_server オブジ ェ ク ト のオブジ ェ ク ト と し て取得で き ます。 get_hw_target -of [get_hw_servers] ま た、 次を使用す る と 、 ハー ド ウ ェ ア タ ーゲ ッ ト に接続 さ れたハー ド ウ ェ ア デバ イ ス を取得で き ます。 get_hw_devices -of [current_hw_target] タ ーゲ ッ ト を JTAG モー ド で開 く と 、 タ ーゲ ッ ト の HW_JTAG プ ロ パテ ィ を使用 し て作成 さ れた hw_jtag オブジ ェ ク ト にア ク セ ス で き る よ う にな り ます。 get_property HW_JTAG [current_hw_target] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 81 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) プ ロパテ ィ report_property コ マ ン ド を使用す る と 、 hw_target オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ を確認で き ます。 詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 次は、 hw_target オブ ジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ と その値の例を示 し てい ます。 Property Type Read-only Visible CLASS string true true DEVICE_COUNT int true true HW_JTAG hw_jtag true true IS_OPENED bool true true NAME string true true localhost/xilinx_tcf/Digilent/210203327463A PARAM.DEVICE string true true PARAM.FREQUENCY enum true true PARAM.TYPE string true true TID string true true UID string true true Value hw_target 1 1 jsn-JTAG-SMT1-210203327463A 15000000 xilinx_tcf jsn-JTAG-SMT1-210203327463A Digilent/210203327463A hw_target のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [get_hw_targets] HW_VIO 説明 VIO (Virtual Input/Output) デバ ッ グ コ ア (hw_vio) は、 ザ イ リ ン ク ス FPGA デバ イ ス にプ ロ グ ラ ム さ れてい る 内部信号 を リ アル タ イ ム で監視お よ び駆動で き ま す。 タ ーゲ ッ ト ハー ド ウ ェ アへの物理的な ア ク セ ス がない場合は、 こ のデ バ ッ グ機能を使用 し て、 物理デバ イ ス上の信号を駆動お よ び監視で き ます。 VIO コ アは、 ハー ド ウ ェ ア プ ロ ーブ オブジ ェ ク ト を使用 し てデザ イ ンの特定の信号を監視お よ び駆動 し ます。 入力 プ ロ ーブは、 VIO コ アへの入力 と し て信号を監視 し ます。 出力プ ロ ーブは、 VIO コ アか ら 信号を指定の値に駆動 し ま す。 プ ロ ーブの値は set_property コ マ ン ド で定義 さ れ、 commit_hw_vio コ マ ン ド でプ ロ ーブの信号に駆動 さ れます。 VIO デバ ッ グ コ アは、 ザ イ リ ン ク ス IP カ タ ロ グか ら RTL コ ー ド に イ ン ス タ ン シエー ト す る 必要があ り ます。 こ のた め、 デザ イ ン をデバ ッ グす る 前に ど のネ ッ ト を監視お よ び駆動する のか知っ てお く 必要があ り ます。 VIO コ アは、 IP カ タ ロ グ の [Debug & Verification] → [Debug] カ テ ゴ リ に あ り ま す。 VIO コ ア IP の 詳 細 は、 『LogiCORE IP Virtual Input/Output 製品ガ イ ド 』 (PG159) を参照 し て く だ さ い。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 82 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-26 KZBF KZBVHUYHU KZBWDUJHW KZBGHYLFH KZBE KZBLOD KZBYLR KZBD[L KZBV\VPRQ KZBSUREH KZBVLRBLEHUW KZBVLRBJW KZ 図 2‐26 : hw_vio オブ ジ ェ ク ト VIO デバ ッ グ コ アは、 ザ イ リ ン ク ス IP カ タ ロ グか ら RTL ソ ース フ ァ イ ルのデザ イ ンに追加で き ます。 デバ ッ グ コ アは、 get_debug_cores コ マ ン ド を使用 し て合成済みネ ッ ト リ ス ト デザ イ ン で検索で き ます。 こ れ ら は Vivado Design Suite のハー ド ウ ェ ア マネージ ャ ーに含ま れ る VIO デバ ッ グ コ ア オブジ ェ ク ト (hw_vio) ではあ り ませんが、 関連は し てい ます。 ハー ド ウ ェ ア VIO デバ ッ グ コ アは、プ ロ グ ラ ム済みのハー ド ウ ェ ア デバ イ ス オブジ ェ ク ト (hw_device) のハー ド ウ ェ ア マネージ ャ ーに含まれます。 hw_device の hw_vio は次の よ う に取得で き ます。 get_hw_vios -of [current_hw_device] ま た、 hw_vio デバ ッ グ コ アには、 それに接続 さ れたプ ロ ーブが含まれてお り 、 次の よ う に取得で き ます。 get_hw_probes -of [get_hw_vios] プ ロパテ ィ report_property コ マ ン ド を使用す る と 、 hw_vio オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ を確認で き ます。 詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 Property CLASS CORE_REFRESH_RATE_MS HW_CORE INSTANCE_NAME IS_ACTIVITY_SUPPORTED NAME Type string int string string bool string Read-only true false true true true true Visible true true false true true true Value hw_vio 500 core_1 i_vio_new 1 hw_vio_1 hw_vio オブジ ェ ク ト のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま た は Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_hw_vios] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 83 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) IO_BANK X-Ref Target - Figure 2-27 3RUW 3LQ &ORFN 7LPLQJ3DWK &HOO %HO3LQ &ORFN 5HJLRQ 3NJ3LQ B1LEEOH 3DFNDJH3LQ %HO 6LWH&/% 6LWH3LQ 3NJ3LQ B%\WH*URXS 6LWH3LS ,2%DQN 7LOH 6/5 ,26WDQGDUG 図 2‐27 : IO_BANK オブ ジ ェ ク ト 説明 ザ イ リ ン ク ス 7 シ リ ーズ FPGA お よ び UltraScale アーキ テ ク チ ャ には、 通常、 ハ イ パフ ォーマ ン ス (HP) お よ びハ イ レ ン ジ (HR) I/O バン ク があ り ます。 I/O バン ク は、 I/O ブ ロ ッ ク (IOB) の集合体で、 さ ま ざ ま な標準 イ ン タ ーフ ェ イ ス を広 く サポー ト す る 、 コ ン フ ィ ギ ャ ラ ブルな SelectIO ド ラ イ バーお よ びレ シーバー (シ ン グルエン ド と 差動の両方) が 含ま れ ます。 HP I/O バン ク は、 高速 メ モ リ と その他の最大 1.8V 電圧ま でのチ ッ プ ト ゥ チ ッ プ イ ン タ ーフ ェ イ ス の パフ ォーマ ン ス要件を満たす よ う に設計 さ れてお り 、 最大 3.3 V 電圧ま での広い範囲の I/O 規格がサポー ト さ れてい ます。 各 I/O バン ク には、 出力駆動電流お よ びスルー レー ト のプ ロ グ ラ マブル制御、 デジ タ ル制御 イ ン ピーダ ン ス (DCI) を 使用 し たオンチ ッ プ終端、 基準電圧 (INTERNAL_VREF) を内部生成する 機能な ど が含まれます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 84 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) UltraScale デバ イ ス の場合、ほ と ん ど の I/O バン ク に 52 個の IOB が含まれます (HR I/O ミ ニバン ク には 26 個の IOB)。 7 シ リ ーズの場合は、 ほ と ん ど の I/O バン ク に 50 個の IOB ( ク ロ ッ ク 領域の高 さ と 同 じ ) が含 ま れ ま す。 デバ イ ス の I/O バン ク 数は、 サ イ ズ と パ ッ ケージ ピ ン配置に よ っ て異な り ます。 I/O バン ク お よ び、 I/O 割 り 当てに関す る ルールについては、 『7 シ リ ーズ FPGA SelectIO リ ソ ース ユーザー ガ イ ド 』 (UG471) [参照 2] お よ び 『UltraScale アーキ テ ク チ ャ SelectIO リ ソ ース ユーザー ガ イ ド 』 (UG571) [参照 8] を参照 し て く だ さ い。 関連オブ ジ ェ ク ト 84 ページの図 2-27 は、 I/O バン ク と ポー ト ネ ッ ト リ ス ト オブジ ェ ク ト 、 デバ イ ス の package_pin、 I/O ブ ロ ッ ク で イ ンプ リ メ ン ト さ れた I/O 規格 と の関連を示 し てい ます。 関連する パ ッ ケージ ピ ン、 ポー ト 、 ク ロ ッ ク 領域、 ま たはサ イ ト の I/O バン ク は、 次を使用す る と 取得で き ます。 get_iobanks -of [get_clock_regions X0Y2] I/O バ ン ク に関連付け ら れた ポー ト 、 ク ロ ッ ク 領域、 サ イ ト 、 SLR、 I/O 規格、 パ ッ ケージ ピ ン、 pkgpin_bytegroup、 お よ び pkgpin_nibble オブジ ェ ク ト は、 次を使用する と 取得で き ます。 get_sites -of [get_iobanks 227] プ ロパテ ィ 次は、 I/O バン ク で検出 さ れたプ ロ パテ ィ と その値の例を示 し てい ます。 Property BANK_TYPE CLASS DCI_CASCADE INTERNAL_VREF IS_MASTER IS_SLAVE MASTER_BANK NAME VCCOSENSEMODE Type string string string* double bool bool string string string Read-only true true false false true true true true false Value BT_HIGH_PERFORMANCE iobank 0 0 46 I/O バン ク のプ ロ パテ ィ は、 次の コ マ ン ド を使用す る と 確認で き ます。 report_property -all [lindex [get_iobanks] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 85 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) IO_STANDARD X-Ref Target - Figure 2-28 1HW 3RUW 3LQ &ORFN 7LPLQJ 3DWK 1RGH &HOO %HO3LQ &ORFN 5HJLRQ 3NJ3LQ B1LEEOH %HO :LUH 3DFNDJH 3LQ 6LWH&/% 6LWH3LQ 3NJ3LQ B%\WH*URXS 6LWH3LS 3LS ,2%DQN 7LOH ,2 6WDQGDUG 6/5 ; 図 2‐28 : IO_STANDARD オブ ジ ェ ク ト 説明 IO_STANDARD オブジ ェ ク ト では、 タ ーゲ ッ ト ザ イ リ ン ク ス デバ イ ス でサポー ト さ れ る 使用可能な IOSTANDARD が定義 さ れます。IO_STANDARD オブジ ェ ク ト は IOSTANDARD プ ロ パテ ィ を使用 し て PORT オブジ ェ ク ト に割 り 当 て る と 、 現在のデザ イ ン で入力、 出力ま たは双方向ポー ト を コ ン フ ィ ギ ュ レーシ ョ ンで き ます。 サポー ト さ れてい る 規格については、 『7 シ リ ーズ FPGA SelectIO リ ソ ース ユーザー ガ イ ド 』 (UG471) [参照 2] お よ び 『UltraScale アーキ テ ク チ ャ SelectIO リ ソ ース ユーザー ガ イ ド 』 (UG571) [参照 8] を参照 し て く だ さ い。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 86 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 関連オブ ジ ェ ク ト 特定の BEL、 SITE、 PACKAGE_PIN、 IO_BANK、 ま たは PORT に関連付け ら れた IO_STANDARD は、 次を使用す る と 取得で き ます。 get_io_standards -of [get_ports ddr4_sdram_dm_n[0]] ま た、 特定の IO_STANDARD を イ ンプ リ メ ン ト する PORT オブジ ェ ク ト は、 次を使用する と 取得で き ます。 get_ports -of [get_io_standards POD12_DCI] ヒ ン ト : こ の場合、 ポー ト は IOSTANDARD プ ロ パテ ィ で も 検出で き ます。 get_ports -filter {IOSTANDARD==POD12_DCI} プ ロパテ ィ 次は、 package_pin オブジ ェ ク ト で検出 さ れたプ ロ パテ ィ と その値の例を示 し てい ます。 Property CLASS DIRECTION DRIVE_STRENGTH HAS_VCCO_IN HAS_VCCO_OUT HAS_VREF INPUT_TERMINATION IS_DCI IS_DIFFERENTIAL NAME OUTPUT_TERMINATION SLEW SUPPORTS_SLEW VCCO_IN VCCO_OUT VREF Type string string string bool bool bool string bool bool string string string bool double double double Read-only true true true true true true true true true true true true true true true true Value io_standard INPUT OUTPUT BIDIR NA 1 1 1 SINGLE 1 0 POD12_DCI DRIVER SLOW MEDIUM FAST 0 1.200 1.200 0.840 package_pin オブジ ェ ク ト のプ ロ パテ ィ は、 次の コ マ ン ド を使用する と 確認で き ます。 report_property -all [lindex [get_io_standards] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 87 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) NET X-Ref Target - Figure 2-29 1HW 3RUW 3LQ &ORFN 7LPLQJ 3DWK 1RGH &HOO %HO3LQ &ORFN 5HJLRQ %HO :LUH 3DFNDJH 3LQ 6LWH 6LWH3LQ 6LWH3LS 3LS 2%DQN 7LOH 図 2‐29 : NET オブ ジ ェ ク ト 説明 NET と い う のは、 イ ン タ ー コ ネ ク ト さ れた ピ ン、 ポー ト お よ びワ イ ヤのセ ッ ト を指 し ます。 ど の ワ イ ヤに も ネ ッ ト 名 があ り 、 その名前で ワ イ ヤ を区別 し ます。 2 本以上の ワ イ ヤに同 じ ネ ッ ト 名が付いてい る こ と があ り ます。 同 じ ネ ッ ト 名が付いてい る ワ イ ヤは、 1 つのネ ッ ト に含まれてい る こ と を示 し 、 こ う し た ワ イ ヤに接続 さ れてい る ピ ン ま たは ポー ト はすべて電気的に接続 さ れてい ます。 RTL ソ ース フ ァ イ ルを 1 つのネ ッ ト リ ス ト デザ イ ンにエ ラ ボ レーシ ョ ン ま たは コ ンパ イ ル し てい る と き 、 ネ ッ ト リ ス ト デザ イ ンにネ ッ ト オブジ ェ ク ト が追加 さ れ る たびにデフ ォ ル ト ネ ッ ト 名がそのオブジ ェ ク ト に割 り 当て ら れま す。 手動でネ ッ ト に名前を付け る こ と も で き ます。 ネ ッ ト は 1 つの信号か ら 成 る ス カ ラ ー ネ ッ ト であ っ た り 、 複数の信号か ら 成 る ス カ ラ ー ネ ッ ト のグループであ る バ ス ネ ッ ト であ る 場合があ り ます。 バ ス を使用す る と 関連信号を便利に ま と め る こ と がで き 、 回路図を簡潔で理解 し や すい も のにす る こ と がで き ます。 ま た、 主 と な る 回路 と ブ ロ ッ ク シ ン ボル と の接続 も 明確にな り ます。 バ ス は特に次 の場合において便利です。 • 回路図のあ る サ イ ド か ら 、 も う 一方へ と 多数の信号を配線する 場合 • 1 つのブ ロ ッ ク シ ン ボルに複数の信号を接続する 場合 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 88 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) • 1 つの I/O マーカーに接続す る こ と で、 階層レベルを ま た ぐ 複数の信号を接続する 場合 関連オブ ジ ェ ク ト デザ イ ン ネ ッ ト リ ス ト で、 ネ ッ ト を セルの ピ ン ま たはポー ト に接続で き ます。 ま た、 ポー ト を介 し てデザ イ ンに供給 さ れ る ク ロ ッ ク にネ ッ ト は関連付け ら れ、 デザ イ ンの タ イ ミ ン グ パ スへ と 接続 さ れます。 デザ イ ンに関す る 問題をす ばや く 見つけ出 し 解決で き る よ う に、 DRC 違反にネ ッ ト を関連付け る こ と も で き ま す。 こ れ ら の異な る デザ イ ン に 関連す る ネ ッ ト オブジ ェ ク ト は、 次の よ う に取得で き ます。 get_nets -of [get_cells dbg_hub] デザ イ ンが タ ーゲ ッ ト のザ イ リ ン ク ス FPGA にマ ッ プ さ れ る と 、 ネ ッ ト は、 デバ イ ス の ワ イ ヤ、 ノ ー ド 、 PIP な ど の 配線 リ ソ ース にマ ッ プ さ れ、 BEL ピ ン を介 し て BEL へ、 サ イ ト ピ ン を介 し てサ イ ト へ と 接続 さ れます。 特定のネ ッ ト ま たはデザ イ ン内のネ ッ ト に関連付け ら れた ク ロ ッ ク 、 ピ ン、 BEL、 BEL_PIN、 SITE、 SITE_PIN、 TILE、 NODE、 PIP、 WIRE は、 次を使用す る と 取得で き ます。 get_bel_pins -of [get_nets ddr4_sdram_adr[0]] プ ロパテ ィ ネ ッ ト オブジ ェ ク ト の特定のプ ロ パテ ィ は、 そのオブジ ェ ク ト の示すネ ッ ト の タ イ プに よ っ て異な り ます。 次の表に は、 Vivado Design Suite でネ ッ ト オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ の一部を その値の例 と 共に リ ス ト し てい ます。 Property AREA_GROUP BEL BLKNM BUFFER_TYPE BUFG BUS_NAME BUS_START BUS_STOP BUS_WIDTH CLASS CLOCK_BUFFER_TYPE CLOCK_DEDICATED_ROUTE CLOCK_REGION_ASSIGNMENT CLOCK_ROOT COLLAPSE COOL_CLK DATA_GATE DCI_VALUE DIFF_TERM DIRECT_ENABLE DIRECT_RESET DONT_TOUCH DRIVE DRIVER_COUNT ESSENTIAL_CLASSIFICATION_VALUE FILE_NAME FIXED_ROUTE FLAT_PIN_COUNT FLOAT GATED_CLOCK HBLKNM HD.NO_ROUTE_CONTAINMENT Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 Type string string string enum enum string int int int string enum enum string string* bool bool bool int bool bool bool bool int int int string string int bool bool string bool Read-only true true true false true true true true true true false false false false true true true false false false false false true true false true false true true false true false japan.xilinx.com Visible true true true true true true true true true true true true true true true true true true true true true true false true true true true true true true true true Value DataIn_pad_0_i 7 0 8 net 1 1 89 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) HIERARCHICALNAME HU_SET IBUF_DELAY_VALUE IBUF_LOW_PWR IFD_DELAY_VALUE IN_TERM IOB IOBDELAY IOSTANDARD IO_BUFFER_TYPE IS_CONTAIN_ROUTING IS_INTERNAL IS_REUSED IS_ROUTE_FIXED KEEP KEEPER LINE_NUMBER LOC MARK_DEBUG MAXDELAY MAXSKEW MAX_FANOUT METHODOLOGY_DRC_VIOS MULTI_CLOCK_ROOT NAME NODELAY NOREDUCE OUT_TERM PARENT PARENT_CELL PIN_COUNT PULLDOWN PULLUP PWR_MODE RAM_STYLE REUSE_STATUS RLOC RLOC_ORIGIN RLOC_RANGE ROM_STYLE ROUTE ROUTE_STATUS RPM_GRID RTL_KEEP RTL_MAX_FANOUT S SCHMITT_TRIGGER SLEW SUSPEND TYPE USELOWSKEWLINES USE_DSP48 U_SET WEIGHT WIREAND XBLKNM XLNX_LINE_COL XLNX_LINE_FILE _HAVE_MD_DT Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 string string double bool double enum enum enum string enum bool bool bool bool bool bool int string bool double double string string string* string bool bool enum string string int bool bool enum enum enum string string string enum string enum enum string string bool bool string string enum bool enum string int bool string int long bool true true true false true true false false true false true true true false true true true true false true true false false false true true true true true true true true true true false true true true true false false true true true true true true true true true true false true false true true false false true japan.xilinx.com false false true true true true true true false true true true true true true true true true true true true true true true true true true true true true true true true true true true true false false true true true true false false true true true true true true true false true true true false false false top.DataIn_pad_0_i[0] LVCMOS18 0 0 0 0 0 DataIn_pad_0_i[0] DataIn_pad_0_i[0] 1 INTRASITE SIGNAL 90 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) async_reg string false true ネ ッ ト オブジ ェ ク ト のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま た は Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [lindex [get_nets] 0] NODE 説明 X-Ref Target - Figure 2-30 1HW 3RUW 3LQ &ORFN 7LPLQJ 3DWK 1RGH &HOO %HO3LQ &ORFN 5HJLRQ 3DFNDJH 3LQ %HO :LUH 6LWH&/% 6LWH3LQ 6LWH3LS 3LS ,2%DQN 7LOH ,2 6WDQGDUG 6/5 ; 図 2‐30 : NODE オブ ジ ェ ク ト NODE は、 ザ イ リ ン ク ス パーツ で接続 ま たは NET を配線す る ために使用す る デバ イ ス オブジ ェ ク ト です。 こ れは WIRE の集合体で、 物理的に も 電気的に も 相互接続 さ れてい る 複数の タ イ ルに ま たが っ てい ま す。 NODE は 1 つの SITE_PIN に接続 し た り 、 ま たは ど の ピ ン に も 接続 し ないでお く こ と がで き ま す。 単に NET を SITE に配線 し た り 、 SITE を ま たがっ て配線す る ためだけに使用 し ます。 NODE は任意数の PIP に接続で き 、 ま た電源/グ ラ ン ド で駆動す る こ と も 可能です。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 91 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 関連オブ ジ ェ ク ト 91 ページの図 2-30にあ る よ う に、 NODE オブジ ェ ク ト は SLR、 TILE、 NET、 SITE_PIN、 WIRE、 PIP、 お よ びほかの NODE に関連付け ら れます。 次の Tcl コ マ ン ド で、 NODE を ク エ リ ーで き ます。 get_nodes -of_objects [get_nets cpuClk] ま た、 SLR、 お よ び NODE のあ る TILE、 ま たは特定 NODE が関連付け ら れてい る PIP、 SITE_PIN、 SPEED_MODEL、 WIRE を ク エ リ ーす る こ と も で き ます。 get_slrs -of_objects [get_nodes LIOB33_SING_X0Y199/IOB_T_OUT0] プ ロパテ ィ 次の よ う な コ マ ン ド を使用 し て、 NODE オブジ ェ ク ト のプ ロ パテ ィ はレ ポー ト で き ます。 report_property -all [lindex [get_nodes -filter {IS_COMPLETE}] 0] ヒ ン ト : デバ イ ス上の NODE の数は非常に多いため、 検索結果を絞 り 込むための -of_objects や -filters を使 用 し て、 get_nodes Tcl コ マ ン ド を実行す る よ う に し て く だ さ い。 プ ロ パテ ィ には次の よ う な も のがあ り ます (例 と し て値 も 表示 さ れてい ます)。 Property CLASS COST_CODE COST_CODE_NAME IS_BAD IS_COMPLETE IS_GND IS_INPUT_PIN IS_OUTPUT_PIN IS_PIN IS_VCC NAME NUM_WIRES PIN_WIRE SPEED_CLASS Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 Type string int enum bool bool bool bool bool bool bool string int int int Read-only true true true true true true true true true true true true true true Value node 14 OUTBOUND 0 1 0 0 0 0 0 CLBLL_L_X2Y50/CLBLL_LOGIC_OUTS4 2 65535 191 japan.xilinx.com 92 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) PACKAGE_PIN X-Ref Target - Figure 2-31 3RUW 3LQ &ORFN 7LPLQJ3DWK &HOO % &ORFN 5HJLRQ 3NJ3LQ B1LEEOH 3DFNDJH 3LQ %HO 6LWH&/% 6LWH3LQ 3NJ3LQ B%\WH*URXS 6LWH3LS ,2%DQN 7LOH 図 2‐31 : PACKAGE_PIN オブ ジ ェ ク ト 説明 PACKAGE_PIN オブジ ェ ク ト は、 デザ イ ン の特定の入力ま たは出力に関連す る ザ イ リ ン ク ス デバ イ ス パ ッ ケージの 物理的な ピ ン を示 し ます。 PACKAGE_PIN への I/O ポー ト の割 り 当てについては、 『Vivado Design Suite ユーザー ガ イ ド : I/O お よ び ク ロ ッ ク プ ラ ン ニ ン グ』 (UG899) [参照 17] を参照 し て く だ さ い。 PACKAGE_PIN オブジ ェ ク ト は、 PACKAGE_PIN プ ロ パテ ィ を使用 し て PORT オブジ ェ ク ト に関連付け る こ と がで き ます。 関連オブ ジ ェ ク ト PACKAGE_PIN オブジ ェ ク ト は、 デザ イ ン ネ ッ ト リ ス ト の PORT オブジ ェ ク ト に関連す る ほか、 タ ーゲ ッ ト デバ イ ス の SITE、 BEL、 ま た は IO_BANK オ ブ ジ ェ ク ト に 関連 し て い ま す。 ま た、 PACKAGE_PIN オ ブ ジ ェ ク ト は PKGPIN_BYTEGROUP お よ び PKGPIN_NIBBLE オブジ ェ ク ト に も 関連 し てい ま す。 PACKAGE_PIN は、 次の Tcl コ マ ン ド を使用す る と 取得で き ます。 get_package_pins ま たは、 関連オブジ ェ ク ト を使用 し て取得で き ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 93 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) get_package_pins -of [get_ports] 特定のパ ッ ケージ ピ ン を 使用 し て、 ポー ト 、 サ イ ト 、 SLR、 IO_BANK、 IO_STANDARD、 PKGPIN_BYTEGROUP、 PKGPIN_NIBBLE を取得す る こ と も で き ます。 get_port -of [get_package_pins AG17] ヒ ン ト : こ の場合、 ポー ト は PACKAGE_PIN プ ロ パテ ィ で も 見つけ る こ と がで き ます。 get_ports -filter {PACKAGE_PIN==AG17} プ ロパテ ィ 次は、 package_pin オブジ ェ ク ト で検出 さ れたプ ロ パテ ィ と その値の例を示 し てい ます。 Property BANK BUFIO_2_REGION CLASS DIFF_PAIR_PIN IS_BONDED IS_DIFFERENTIAL IS_GENERAL_PURPOSE IS_GLOBAL_CLK IS_LOW_CAP IS_MASTER IS_VREF IS_VRN IS_VRP MAX_DELAY MIN_DELAY NAME PIN_FUNC PIN_FUNC_COUNT Type string string string string bool bool bool bool bool bool bool bool bool int int string enum int Read-only true true true true true true true true true true true true true true true true true true Visible true true true true true true true true true true true true true true true true true true Value 44 BL package_pin AE21 1 1 1 0 0 1 0 0 0 72405 71685 AD21 IO_L1P_T0L_N0_DBC_44 1 package_pin オブジ ェ ク ト のプ ロ パテ ィ は、 次の コ マ ン ド を使用する と 確認で き ます。 report_property -all [lindex [get_package_pins] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 94 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) PIN X-Ref Target - Figure 2-32 1HW 3RUW 3LQ &ORFN 7LPLQJ 3DWK 1RGH &HOO %HO3LQ &ORFN 5HJLRQ %HO :LUH 3DFNDJH 3LQ 6LWH 6LWH3LQ 図 2‐32 : PIN オブ ジ ェ ク ト 説明 PIN はプ リ ミ テ ィ ブ ま たは階層セルの論理的な接続点です。 ピ ンに よ り セルの内容は抽象化 さ れ、 ロ ジ ッ ク は使いや す く す る ため簡易化 さ れます。 ま た、 ピ ンは接続を 1 つ含むス カ ラ ー と し て、 ま たは複数の信号を ま と め る バ ス ピ ン と し て定義す る こ と がで き ます。 関連オブ ジ ェ ク ト ピ ン はセルに接続 さ れ ま す。 ま た ネ ッ ト に よ り ほかのセルの ピ ン に接続す る こ と がで き ま す。 ま た、 セルの ピ ン は BEL オブジ ェ ク ト の BEL ピ ンに関連付け ら れ、 セルがマ ッ プ さ れてい る サ イ ト のサ イ ト ピ ンに も 関連付け ら れてい ます。 ク ロ ッ ク ド メ イ ンの一部 と し て ピ ンは ク ロ ッ ク に関連付け ら れてお り 、 パ ス の起点、 終点、 中間点 と し て定義 さ れてい る 場合は タ イ ミ ン グ パス の一部にな り ます。 ま た、デザ イ ンに関す る 問題をすばや く 見つけ出 し 解決で き る よ う に、DRC 違反に ピ ン を関連付け る こ と も で き ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 95 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) プ ロパテ ィ PIN オブジ ェ ク ト には、 ク ロ ッ ク お よ び コ ン ト ロ ール ピ ンの ピ ン タ イ プ を定義す る プ ロ パテ ィ の集合体が含ま れ ま す。 こ れ ら の属性を使用す る と 、 Tcl ス ク リ プ ト を記述 し た り 、 PIN オブジ ェ ク ト を使用す る 際に タ イ プ別に ピ ン の リ ス ト を フ ィ ル タ ーす る こ と がで き ます。 次の表は、 プ ロ パテ ィ を リ ス ト し た も のです。 表 2‐2 : プ ロパテ ィ 名 ク ロ ッ ク と の関係 IS_CLEAR 非同期 IS_CLOCK 説明 例 ブ ロ ッ ク 出力を 0 ス テー ト に指定 FDCE の CLR ピ ン 基準 ピ ンにはほかの ピ ン と の間にセ ッ ト ア ッ プ/ホール ド ま たは リ カバ リ / リ ムーバル関係があ り 、 その関 係では基準ピ ン と し て動作 FDRE の C ピ ン IS_ENABLE 同期 ブ ロ ッ ク のデー タ キ ャ プチ ャ を許可ま たは阻止 FDRE の CE ピ ン IS_PRESET 非同期 ブ ロ ッ ク 出力を 1 ス テー ト に指定 FDPE の PRE ピ ン IS_RESET 同期 ブ ロ ッ ク 出力を次の ク ロ ッ ク で 0 ス テー ト に変更 FDRE の R ピ ン IS_SET 同期 ブ ロ ッ ク 出力を次の ク ロ ッ ク で 1 ス テー ト に変更 FDSE の S ピ ン IS_SETRESET プ ロ グ ラ マブル プ ロ グ ラ マ ブル同期 ま た は非同期セ ッ ト / リ セ ッ ト 。 ピ ンの ビヘ イ ビ アーはブ ロ ッ ク の属性で制御 RAMB36E2 の RSTRAMB ピ ン IS_WRITE_ENABLE 同期 メ モ リ ブ ロ ッ ク で書 き 込み動作を許可ま たは阻止 す る ピ ン イ ネーブル RAMB36E2 WES ピ ン の ピ ン タ イ プ を定義す る こ れ ら のプ ロ パテ ィ 以外に も 、PIN オブジ ェ ク ト には次の よ う な さ ま ざ ま なプ ロ パテ ィ があ り ます。 Property Type BEL string BUS_DIRECTION enum BUS_NAME string BUS_START int BUS_STOP int BUS_WIDTH int CLASS string CLOCK_DEDICATED_ROUTE enum DCI_VALUE int DIRECTION enum ESSENTIAL_CLASSIFICATION_VALUE int FB_ACTIVE bool HD.ASSIGNED_PPLOCS string* HD.CLK_SRC string HD.LOC_FIXED bool HD.PARTPIN_LOCS string* HD.PARTPIN_RANGE string* HD.PARTPIN_TIEOFF bool HD.TANDEM int HIERARCHICALNAME string top.cpuEngine.dwb_biu.\retry_cntr_reg[0] HOLD_DETOUR int HOLD_SLACK double IS_CLEAR bool IS_CLOCK bool IS_CONNECTED bool IS_ENABLE bool IS_INVERTED bool Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 Read-only false true true true true true true false false true false false true false false false false false false true .C false true true true true true false japan.xilinx.com Visible true true true true true true true true true true true true true true false true true true true false true true true true true true true Value pin IN 0 needs timing update*** 0 1 1 0 0 96 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) IS_LEAF bool IS_ORIG_PIN bool IS_PRESET bool IS_RESET bool IS_REUSED bool IS_SET bool IS_SETRESET bool IS_WRITE_ENABLE bool LOGIC_VALUE string MARK_DEBUG bool NAME string cpuEngine/dwb_biu/retry_cntr_reg[0]/C ORIG_PIN_NAME string PARENT_CELL cell cpuEngine/dwb_biu/retry_cntr_reg[0] REF_NAME string REF_PIN_NAME string SETUP_SLACK double TARGET_SITE_PINS string* XLNX_LINE_COL int XLNX_LINE_FILE long true true true true true true true true true false true true true true true true true true true true true true true true true true true true true false false false true true true true false false 1 0 0 0 0 0 0 0 unknown FDCE C needs timing update*** 次の コ マ ン ド を使用 し て ピ ンのプ ロ パテ ィ は確認で き ます。 report_property -all [lindex [get_pins] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 97 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) PIP または SITE_PIP 説明 X-Ref Target - Figure 2-33 1HW 3RUW 3LQ &ORFN 7LPLQJ 3DWK 1RGH &HOO %HO3LQ &ORFN 5HJLRQ 3NJ3LQ B1LEEOH 3DFNDJH 3LQ %HO :LUH 6LWH&/% 6LWH3LQ 3NJ3LQ B%\WH*URXS 6LWH3LS 3LS ,2%DQN 7LOH ,2 6WDQGDUG 6/5 ; 図 2‐33 : PIP オブ ジ ェ ク ト PIP は、 ザ イ リ ン ク ス パーツ で接続ま たは NET を配線する ために使用する デバ イ ス オブジ ェ ク ト です。 PIP は ARC と も 呼ばれますが、あ る WIRE を別の WIRE に接続す る ためにプ ロ グ ラ ムす る こ と がで き る 接続マルチプ レ ク サーの こ と を言い ます。 つま り 、 NODE を接続 し て、 デザ イ ンの特定 NET に必要な配線を作成 し ます。 SITE_PIP は配線 BEL と も いい、 SITE 内にあ る 接続マルチプ レ ク サーで、 BEL_PIN を別の BEL_PIN に、 ま たは SITE 内の SITE_PIN に接続で き ます。 関連オブ ジ ェ ク ト 98 ページの図 2-33にあ る よ う に、 PIP オブジ ェ ク ト は SLR、 TILE、 NODE、 NET、 WIRE に関連付け ら れてい ま す。 次の Tcl コ マ ン ド で、 PIP を ク エ リ ーで き ます。 get_pips -of [get_nodes INT_R_X7Y47/NW6BEG1] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 98 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) ま た、 SLR、 お よ び PIP のあ る TILE、 ま たは特定 PIP が関連付け ら れてい る NODE、 SPEED_MODEL、 WIRE を ク エ リ ーす る こ と も で き ます。 get_nodes -of_objects [get_pips INT_R_X7Y47/INT_R.BYP_ALT0->>BYP_BOUNCE0] SITE_PIP は SITE に関連付け ら れてい ます。 get_site_pips -of [get_sites SLICE_X8Y79] PIP プ ロパテ ィ 次の よ う な コ マ ン ド を使用 し て、 PIP オブジ ェ ク ト のプ ロ パテ ィ はレ ポー ト で き ます。 report_property -all [lindex [get_pips -of [get_tiles INT_R_X7Y47]] 0] ヒ ン ト : デバ イ ス上の PIP の数は非常に多いため、検索結果を絞 り 込むための -of_objects や -filters を使用 し て、 get_pips Tcl コ マ ン ド を実行す る よ う に し て く だ さ い。 プ ロ パテ ィ には次の よ う な も のがあ り ます (例 と し て値 も 表示 さ れてい ます)。 Property Type Read-only Visible Value CAN_INVERT bool true true 0 CLASS string true true pip IS_BUFFERED_2_0 bool true true 0 IS_BUFFERED_2_1 bool true true 1 IS_DIRECTIONAL bool true true 1 IS_EXCLUDED_PIP bool true true 0 IS_FIXED_INVERSION bool true true 0 IS_INVERTED bool true true 0 IS_PSEUDO bool true true 0 IS_SITE_PIP bool true true 0 IS_TEST_PIP bool true true 0 NAME string true true INT_R_X7Y47/INT_R.BYP_ALT0->>BYP_BOUNCE0 SPEED_INDEX int true true 2336 TILE string true true INT_R_X7Y47 VORPAL_ID int true false SITE_PIP プ ロパテ ィ SITE_PIP のプ ロ パテ ィ は、 次の コ マ ン ド で レ ポー ト で き ます。 get_site_pips -of [get_sites SLICE_X8Y79] SITE_PIP のプ ロ パテ ィ には次の よ う な も のがあ り ます (例 と し て値 も 表示 さ れてい ます)。 Property CLASS FROM_PIN IS_FIXED IS_USED NAME SITE TO_PIN Type string string bool bool string string string Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 Read-only true true true true true true true Visible true true true true true true true Value site_pip A1 0 0 SLICE_X8Y79/D6LUT:A1 SLICE_X8Y79 O6 japan.xilinx.com 99 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) PKGPIN_BYTEGROUP X-Ref Target - Figure 2-34 3RUW 3LQ &ORFN 7LPLQJ3DWK &HOO %HO3LQ &ORFN 5HJLRQ 3NJ3LQ B1LEEOH 3DFNDJH 3LQ %HO 6LWH&/% 6LWH3LQ 3NJ3LQ B%\WH*URXS 6LWH3LS ,2%DQN 7LOH ,2 6WDQGDUG 6/5 ; 図 2‐34 : PKGPIN_BYTEGROUP オブ ジ ェ ク ト 説明 7 シ リ ーズ デバ イ ス では、 I/O バン ク の階層に I/O バン ク と パ ッ ケージ ピ ンの 2 つのオブジ ェ ク ト タ イ プが含まれて い ます。 ザ イ リ ン ク ス UltraScale アーキ テ ク チ ャ では、 I/O バン ク 階層にバ イ ト グループ と ニブルの 2 つが追加 さ れ てい ます。 UltraScale デバ イ ス での こ れ ら のオブジ ェ ク ト の関係は、 次の よ う に定義 さ れてい ます。 • 52 個の ピ ンの IO_BANK には、 4 つの pkgpin_bytegroups (26 個のピ ンの小型 IO_BANK には 2 つの bytegroups) が 含まれてい ます。 • 各 pkgpin_bytegroup には 13 個のパ ッ ケージ ピ ンが含まれ、 2 個 (上部 と 下部) の pkgpin_nibbles が含まれてい ま す。 • 各パ ッ ケージ ピ ン ニブル (pkgpin_nibble) には 6 ~ 7 本の ピ ンが含まれ、 pkgpin_bytegroup の上位ま たは下位ニブ ルです。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 100 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) • パ ッ ケージ ピ ン (package_pin) は、I/O バン ク (iobank)、pkgpin_bytegroup、ま たは pkgpin_nibble の 1 つの ピ ン です。 UltraScale では、I/O バン ク に接続 さ れた bitslice ロ ジ ッ ク が pkgpin_bytegroups と pkgpin_nibbles に ま と め ら れます。 こ れ ら のオブジ ェ ク ト を使用す る と 、 bitslice のグループの よ う な I/O ピ ンに関連す る 配置が実行 し やす く な り ます。 た と えば、バ イ ト グループ と ニブルを UltraScale デバ イ ス の メ モ リ コ ン ト ロ ー ラ ーの I/O ピ ン割 り 当てに使用で き ます。 メ モ リ I/O ピ ン グループ を自動ま たは手動で I/O バン ク と バ イ ト レーンに割 り 当て ら れ る よ う に し た メ モ リ バン ク / バ イ ト プ ラ ンナーを使用す る と 、 Vivado IDE でエ ラ ボ レー ト し た RTL デザ イ ン ま たは合成 し たデザ イ ンのいずれか を開いて I/O プ ラ ン ニ ン グ を イ ン タ ラ ク テ ィ ブに実行で き ます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : I/O お よ び ク ロ ッ ク プ ラ ン ニ ン グ』 (UG899) [参照 17] の 「UltraScale デバ イ ス の メ モ リ IP の I/O プ ラ ン ニ ン グ」 を参照 し て く だ さ い。 関連オブ ジ ェ ク ト PKGPIN_BYTEGROUP と PKGPIN_NIBBLE は前述の よ う に、 IO_BANK、 PACKAGE_PIN、 お よ び PORT と 関連 し て い ます。 ま た、 各 PKGPIN_BYTEGROUP はザ イ リ ン ク ス デバ イ ス の SITE に関連 し てい ます。 関連オブジ ェ ク ト の PKGPIN_BYTEGROUP は、 次の よ う な Tcl コ マ ン ド を使用す る と 取得で き ます。 get_pkgpin_bytegroups -of [get_package_pins AG17] 次を使用す る と 、 特定の pkgpin_bytegroups に関連する パ ッ ケージ ピ ン オブジ ェ ク ト も 取得で き ます。 get_package_pins -of [get_pkgpin_bytegroups BANK45_BYTE2] プ ロパテ ィ 次は、 PKGPIN_BYTEGROUP オブジ ェ ク ト で検出 さ れたプ ロ パテ ィ と その値の例を示 し てい ます。 Property CLASS INDEX_IN_IOBANK IOBANK NAME Type string int int string Read-only true true true true Value pkgpin_bytegroup 2 45 BANK45_BYTE2 バ イ ト グループ オブジ ェ ク ト のプ ロ パテ ィ は、 次の コ マ ン ド を使用する と 確認で き ます。 report_property -all [lindex [get_pkgpin_bytegroups] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 101 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) PKGPIN_NIBBLE X-Ref Target - Figure 2-35 3RUW 3LQ &ORFN 7LPLQJ3DWK &HOO %HO3LQ &ORFN 5HJLRQ 3NJ3LQ B1LEEOH 3DFNDJH 3LQ %HO 6LWH&/% 6LWH3LQ 3NJ3LQ B%\WH*URXS 6LWH3LS ,2%DQN 7LOH ,2 6WDQGDUG 6/5 ; 図 2‐35 : PKGPIN_NIBBLE オブ ジ ェ ク ト 説明 PKGPIN_NIBBLE は、 PKGPIN_BYTEGROUP の一部です。 こ のオブジ ェ ク ト の詳細は、 100 ページの 「PKGPIN_BYTEGROUP」 を参照 し て く だ さ い。 関連オブ ジ ェ ク ト PKGPIN_BYTEGROUP と PKGPIN_NIBBLE は前述の よ う に、 IO_BANK、 PACKAGE_PIN、 お よ び PORT と 関連 し て い ま す。 ま た、 各 PKGPIN_NIBBLE は ザ イ リ ン ク ス デバ イ ス の SITE に 関連 し て い ま す。 関連 オ ブ ジ ェ ク ト の PKGPIN_NIBBLE は、 次の よ う な Tcl コ マ ン ド を使用する と 取得で き ます。 get_pkgpin_nibbles -of [get_iobanks 45] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 102 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 次を使用す る と 、 特定の PKGPIN_NIBBLE に関連する パ ッ ケージ ピ ン オブジ ェ ク ト も 取得で き ます。 get_package_pins -of [get_pkgpin_nibbles BANK45_BYTE2_L] プ ロパテ ィ 次は、 PKGPIN_NIBBLE オブジ ェ ク ト で検出 さ れたプ ロ パテ ィ と その値の例を示 し てい ます。 Property CLASS IOBANK NAME PKGPIN_BYTEGROUP TYPE Type string int string string string Read-only true true true true true Value pkgpin_nibble 45 BANK45_BYTE2_L BANK45_BYTE2 L PKGPIN_NIBBLE オブジ ェ ク ト のプ ロ パテ ィ は、 次の コ マ ン ド を使用する と 確認で き ます。 report_property -all [lindex [get_pkgpin_nibbles] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 103 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) PORT X-Ref Target - Figure 2-36 1HW 3RUW 3LQ &ORFN 7LPLQJ 3DWK 1RGH &HOO %HO3LQ &ORFN 5HJLRQ 3NJ3LQ B1LEEOH 3DFNDJH 3LQ %HO :LUH 6LWH&/% 6LWH3LQ 3NJ3LQ B%\WH*URXS 6LWH3LS 3LS ,2%DQN 7LOH ,2 6WDQGDUG 6/5 ; 図 2‐36 : PORT オブ ジ ェ ク ト 説明 ポー ト は特殊 タ イ プの階層ピ ンで、 階層デザ イ ンの最上位で外部 と の接続点にな る こ と も あれば、 階層セルの ピ ンに 内部 ロ ジ ッ ク を接続す る ため、 階層セルやブ ロ ッ ク モジ ュ ールの内部接続点にな る こ と も あ り ます。 ま た、 ポー ト は 接続を 1 つ含むス カ ラ ー と し て、 ま たは複数の信号を ま と め る バ ス ポー ト と し て定義する こ と がで き ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 104 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 関連オブ ジ ェ ク ト デザ イ ンの最上位にあ る ポー ト は、 デバ イ ス パ ッ ケージの PACKAGE_PIN を介 し て、 FPGA 外部のダ イ の IO_BANK ま で接続 さ れます ( こ の際、 割 り 当て ら れた IOSTANDARD が使用 さ れます)。 ま た、 ポー ト はシ ス テ ム ま たはボー ド か ら デザ イ ンに ク ロ ッ ク 定義を マ ッ プす る こ と がで き 、 set_input_delay ま たは set_output_delay 制約を使用 し て外部シ ス テ ム レベル パ ス遅延に割 り 当て る 必要があ り ます。 こ れ ら の制 約については、 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 19] を参照 し て く だ さ い。 次の よ う な Tcl コ マ ン ド を使用す る と 、 特定のパ ッ ケージ ピ ン、 IO バ ン ク 、 I/O 規格、 サ イ ト 、 セル、 ネ ッ ト 、 ク ロ ッ ク 、 タ イ ミ ン グ パ ス、 DRC 違反に割 り 当て ら れたポー ト を取得で き ます。 get_ports -of [get_clocks] デザ イ ン内では、 階層ネ ッ ト リ ス ト を構築す る ために、 ポー ト はネ ッ ト を介 し てセルに接続 さ れ ます。 次の コ マ ン ド 形式を使用す る と 、 ネ ッ ト 、 タ イ ミ ン グ パ ス、 サ イ ト 、 I/O バン ク 、 I/O 規格、 パ ッ ケージ ピ ン、 パ ッ ケージ ピ ン グ ループ、 パ ッ ケージ ピ ン ニブルな ど のポー ト に関連す る オブジ ェ ク ト が取得で き ます。 get_package_pins -of [all_inputs] プ ロパテ ィ 次は、 ポー ト オブジ ェ ク ト で検出 さ れたプ ロ パテ ィ と その値の例を示 し てい ます。 Property Type BOARD_PART_PIN string BOARD_PIN string BUFFER_TYPE enum BUS_DIRECTION enum BUS_NAME string BUS_START int BUS_STOP int BUS_WIDTH int CLASS string CLOCK_BUFFER_TYPE enum DIFFTERMTYPE bool DIFF_PAIR_PORT string DIFF_PAIR_TYPE enum DIFF_TERM bool DIRECTION enum DQS_BIAS enum DRIVE enum DRIVE_STRENGTH enum ESSENTIAL_CLASSIFICATION_VALUE int HD.ASSIGNED_PPLOCS string* HD.CLK_SRC string HD.LOC_FIXED bool HD.PARTPIN_LOCS string* HD.PARTPIN_RANGE string* HD.PARTPIN_TIEOFF bool HOLD_SLACK double IBUF_LOW_PWR bool INTERFACE string INTERMTYPE enum IN_TERM enum IOB enum IOBANK int IOSTANDARD enum Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com Read-only Visible Value false true false false false true true true true true true true true true true true true true port false true false false 0 true true true true false true 0 false true IN false true false true 12 false false 12 false true true true false true false false 0 false true false true false true true true needs timing update*** false true 0 false true false false NONE false true NONE false true true true 33 false true LVCMOS18 105 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) IOSTD IO_BUFFER_TYPE IS_BEL_FIXED IS_FIXED IS_GT_TERM IS_LOC_FIXED IS_REUSED KEEP KEEPER LOAD LOC LOGIC_VALUE NAME OFFCHIP_TERM OUT_TERM PACKAGE_PIN PIN_TYPE PIO_DIRECTION PULLDOWN PULLTYPE PULLUP SETUP_SLACK SITE SLEW SLEWTYPE SLEW_ADV UNCONNECTED USE_INTERNAL_VREF VCCAUX_IO XLNX_LINE_COL XLNX_LINE_FILE X_INTERFACE_INFO enum false enum false bool false bool false bool true bool false bool true string false bool false double false site false string true string false string false enum false package_pin false enum true enum false bool false string false bool false double true site false enum false enum false enum false bool true enum false enum false int false long false string false false LVCMOS18 true false 1 false 1 true 0 true 1 true true false 0 true true IOB_X1Y43 true unknown true reset true NONE true true W9 false true false 0 true false 0 true needs timing update*** false IOB_X1Y43 true false false true 0 true true false false true 次の コ マ ン ド を使用 し てポー ト のプ ロ パテ ィ は確認で き ます。 report_property -all [lindex [get_ports] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 106 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) SITE X-Ref Target - Figure 2-37 1HW 3RUW 3LQ &ORFN 7LPLQJ 3DWK 1RGH &HOO %HO3LQ &ORFN 5HJLRQ 3NJ3LQ B1LEEOH 3DFNDJH 3LQ %HO :LUH 6LWH&/% 6LWH3LQ 3NJ3LQ B%\WH*URXS 6LWH3LS 3LS ,2%DQN 7LOH ,2 6WDQGDUG 6/5 ; 図 2‐37 : SITE オブ ジ ェ ク ト 説明 SITE は、 タ ーゲ ッ ト のザ イ リ ン ク ス FPGA で使用可能な さ ま ざ ま な タ イ プの ロ ジ ッ ク リ ソ ース の 1 つを表すデバ イ ス オブジ ェ ク ト で、 ル ッ ク ア ッ プテーブル (LUT)、 フ リ ッ プ フ ロ ッ プ、 マルチプ レ ク サー、 キ ャ リ ー ロ ジ ッ ク リ ソ ース な ど の基本エ レ メ ン ト (BEL) の集合体であ る SLICE/CLB が含まれてお り 、 高速な加算、 減算、 比較演算を イ ン プ リ メ ン ト す る ため に使用 さ れ ま す。 SLICE/CLB には、 幅の大 き なマルチプ レ ク サー と 、 ス ラ イ ス か ら ス ラ イ ス を垂直方向に結ぶ専用 キ ャ リ ー チ ェ ーンが含まれます。 デバ イ ス には、 次の 2 種類の タ イ プがあ り ます。 • SLICEM は分散 RAM と し て コ ン フ ィ ギ ュ レーシ ョ ン可能です。 分散 メ モ リ は一部の LUT の コ ン フ ィ ギ ュ レー シ ョ ン機能で、 小型の 64 ビ ッ ト メ モ リ と し て動作 し ます。 • SLICEL LUT は ロ ジ ッ ク と し てのみ機能 し 、 メ モ リ と し ては機能 し ません。 7 シ リ ーズ FPGA では、 2 つの ス ラ イ ス が 1 つの コ ン フ ィ ギ ャ ラ ブル ロ ジ ッ ク ブ ロ ッ ク (CLB) に ま と め ら れ、 2 つの CLB がデバ イ ス の 1 つの TILE オブジ ェ ク ト に ま と め ら れてい ます。UltraScale アー ク テ ク チ ャ の CLB には SLICE が Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 107 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 1 つ含 ま れ て い ま す。 詳細は、 『7 シ リ ーズ FPGA コ ン フ ィ ギ ュ レ ー シ ョ ン ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド 』 (UG474) [参照 4] ま た は 『UltraScale アーキ テ ク チ ャ ン フ ィ ギ ュ レ ーシ ョ ン ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド 』 (UG574) [参照 10] を参照 し て く だ さ い。 SITE には、 ブ ロ ッ ク RAM、 DSP、 I/O ブ ロ ッ ク 、 ク ロ ッ ク リ ソ ース、 GT ブ ロ ッ ク な ど さ ま ざ ま なデバ イ ス リ ソ ー ス も 含まれてい ます。 デバ イ ス リ ソ ース を利用す る には、 Vivado 合成を使用 し て HDL ソ ース か ら 推論 し た り 、 FPGA ラ イ ブ ラ リ か ら プ リ ミ テ ィ ブやマ ク ロ を イ ン ス タ ン シエー ト し た り 、 Vivado IP カ タ ロ グか ら IP コ ア を使用 し ます。 『 ラ イ ブ ラ リ ガ イ ド 』 には、 イ ン ス タ ン シエー ト 可能なプ リ ミ テ ィ ブの リ ス ト があ り ます。 使用可能な SITE タ イ プは、 使用 さ れ る ザ イ リ ン ク ス デバ イ ス に よ っ て変わ り ます。 一部ですが、 SITE タ イ プには次 の よ う な も のがあ り ます。 AMS_ADC AMS_DAC BSCAN BSCAN_JTAG_MONE2 BUFG BUFGCTRL BUFG_LB BUFHCE BUFIO BUFMRCE BUFR CAPTURE DCIRESET DNA_PORT DRP_AMS_ADC DRP_AMS_DAC DSP48E1 EFUSE_USR FIFO18E1 FIFO36E1 FRAME_ECC GLOBALSIG GTHE2_CHANNEL GTHE2_COMMON GTPE2_CHANNEL GTPE2_COMMON GTXE2_CHANNEL GTXE2_COMMON GTZE2_OCTAL IBUFDS_GTE2 ICAP IDELAYCTRL IDELAYE2 IDELAYE2_FINEDELAY ILOGICE2 ILOGICE3 IN_FIFO IOB IOB18 IOB18M IOB18S IOB33 IOB33M IOB33S IOBM IOBS IPAD ISERDESE2 KEY_CLEAR MMCME2_ADV ODELAYE2 ODELAYE2_FINEDELAY OLOGICE2 OLOGICE3 OPAD OSERDESE2 OUT_FIFO PCIE_2_1 PCIE_3_0 PHASER_IN PHASER_IN_ADV PHASER_IN_PHY PHASER_OUT PHASER_OUT_ADV PHASER_OUT_PHY PHASER_REF PHY_CONTROL PLLE2_ADV PMV2 RAMB18E1 RAMB36E1 RAMBFIFO36E1 SLICEL SLICEM STARTUP TIEOFF USR_ACCESS XADC Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 108 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 関連オブ ジ ェ ク ト 107 ページの図 2-37にあ る よ う に、サ イ ト は さ ま ざ ま なネ ッ ト リ ス ト お よ びデバ イ ス オブジ ェ ク ト に関連付け ら れて い ます。 フ リ ッ プ フ ロ ッ プお よ び ラ ッ チの よ う な最下位セルは、BEL (SLICEL お よ び SLICEM な ど のサ イ ト にマ ッ プ さ れてい る ) にマ ッ プ さ れてい る か、 BRAM や DSP な ど のサ イ ト に直接マ ッ プ さ れてい ます。 BEL お よ びサ イ ト は タ イ ルに ま と め ら れ、 デバ イ ス の ク ロ ッ ク 領域お よ び SLR に割 り 当て ら れます。 ポー ト 、 ピ ン、 I/O バン ク 、 パ ッ ケー ジ ピ ンは I/O ブ ロ ッ ク (IOB) に関連 し てい ますが、 こ の IOB も サ イ ト です。 さ ら に、サ イ ト にはピ ン ま たは SITE_PIN があ り 、 こ れ ら は NODE、 PIP、 PIN、 お よ び NET にマ ッ プ さ れます。 こ れ ら のオブジ ェ ク ト に関連する サ イ ト は、 次 の よ う に取得で き ます。 get_sites -of [get_cells -hier microblaze_0] サ イ ト は、 ELL、 PORT、 BEL、 BEL_PIN、 CLOCK_REGION、 SITE_PIN、 SLR、 TILE、 IO_BANK、 IO_STANDARD、 PACKAGE_PIN、 PKGPIN_BYTEGROUP、 PKGPIN_NIBBLE、 PIP、 お よ び SITE_PIP な ど の関連オブジ ェ ク ト を取得 す る ために も 使用で き ます。 次は、 その例です。 get_clock_regions -of [get_sites DSP48E2_X2Y119] プ ロパテ ィ ザ イ リ ン ク ス FPGA には 80 種類を越え る SITE タ イ プがあ り ますが、 すべて次のプ ロ パテ ィ を共有 し てい ます。 値の 例 も 示 し ます。 Property ALTERNATE_SITE_TYPES CLASS CLOCK_REGION IS_BONDED IS_CLOCK_BUFFER IS_CLOCK_PAD IS_GLOBAL_CLOCK_BUFFER IS_GLOBAL_CLOCK_PAD IS_PAD IS_REGIONAL_CLOCK_BUFFER IS_REGIONAL_CLOCK_PAD IS_RESERVED IS_TEST IS_USED MANUAL_ROUTING NAME NUM_ARCS NUM_BELS NUM_INPUTS NUM_OUTPUTS NUM_PINS PRIMITIVE_COUNT PROHIBIT PROHIBIT_FROM_PERSIST RPM_X RPM_Y SITE_PIPS SITE_TYPE Type string string string bool bool bool bool bool bool bool bool bool bool bool string string int int int int int int bool bool int int string enum Read-only true true true true true true true true true true true true true true false true true true true true true true false true true true false true Visible true true true true true true true true true true true true true true true true true true true true true true true true true true true true Value IOB33S IOB33M site X0Y6 1 0 0 0 0 1 0 0 0 0 0 IOB_X0Y349 9 7 12 5 17 0 0 0 1 698 IOB33 サ イ ト オブジ ェ ク ト に割 り 当て ら れてい る プ ロ パテ ィ はど のサ イ ト タ イ プで も 同 じ です。 上記に リ ス ト さ れてい る SITE_TYPE のプ ロ パテ ィ を確認す る には、 report_property コ マ ン ド を使用 し ます。 report_property -all [lindex [get_sites -filter {SITE_TYPE == <SITE_TYPE>}] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 109 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) <SITE_TYPE> には リ ス ト さ れてい る サ イ ト タ イ プの 1 つが入 り ます。 次は、 その例です。 report_property -all [lindex [get_sites -filter {SITE_TYPE == DSP48E1}] 0] report_property -all [lindex [get_sites -filter {SITE_TYPE == RAMB36E1}] 0] report_property -all [lindex [get_sites -filter {SITE_TYPE == IBUFDS_GTE2}] 0] SLR X-Ref Target - Figure 2-38 1HW 3RUW 3LQ &ORFN 7LPLQJ 3DWK 1RGH &HOO %HO3LQ &ORFN 5HJLRQ %HO :LUH 3DFNDJH 3LQ 6LWH&/% 6LWH3LQ 6LWH3LS 3LS ,2%DQN 7LOH ,2 6WDQGDUG 6/5 ; 図 2‐38 : SLR オブ ジ ェ ク ト 説明 SLR (Super Logic Region) は、 ス タ ッ ク ド シ リ コ ン イ ン タ ー コ ネ ク ト (SSI) デバ イ ス に含まれ る 1 つの FPGA ダ イ ス ラ イ ス です。 SSI テ ク ノ ロ ジでは、 パ ッ シブ シ リ コ ン イ ン タ ーポーザーを マ イ ク ロ バンプ と Si 貫通電極 (TSV) と 一 緒に使用す る こ と で、 SLR (Super Logic Region) と 呼ばれ る 複数の FPGA ダ イ ス ラ イ ス が 1 つのパ ッ ケージに ま と め ら れます。 各 SLR には、 ほ と ん ど のザ イ リ ン ク ス FPGA デバ イ ス に使用 さ れ る 能動回路が含まれ、 シ リ コ ン イ ン タ ーポーザー の SLL (Super Long Lines) を介 し て接続 さ れ ま す。 SSI コ ン ポーネ ン ト の詳細は、 『UltraFast 設計手法 (Vivado Design Suite 用)』 (UG949) [参照 24] の 「SSI デバ イ ス での設計」 を参照 し て く だ さ い。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 110 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 関連オブ ジ ェ ク ト SLR (Super Logic Region) は、 ザ イ リ ン ク ス FPGA アーキ テ ク チ ャ ま たはデバ イ ス のダ イ ス ラ イ ス で、 110 ページの 図 2-38 に示す よ う に、 各 SLR には ク ロ ッ ク 領域、 タ イ ル、 サ イ ト 、 サ イ ト ピ ン、 BEL、 BEL ピ ン、 ノ ー ド 、 PIP、 セ ル、 ピ ン、 I/O バン ク 、 お よ びパ ッ ケージ ピ ンが含まれます。 こ れ ら の異な る タ イ プのオブジ ェ ク ト それぞれに関連 付け ら れてい る SLR は、 次の Tcl コ マ ン ド を使用 し て検索で き ます。 こ の コ マ ン ド を実行する と 、 指定 さ れたセルに 割 り 当て ら れてい る SLR が返 さ れます。 get_slrs -of [get_cells DataIn_pad_0_i_IBUF[3]_inst] SLR に関連す る ク ロ ッ ク 領域、 タ イ ル、 サ イ ト 、 ま たは BEL も 検索で き ます。 次の Tcl コ マ ン ド を使用する と 、 特定 の SLR に関連す る ク ロ ッ ク 領域の I/O バン ク が取得で き ます。 get_iobanks -of [get_clock_regions -of [get_slrs SLR3]] プ ロパテ ィ report_property コ マ ン ド を使用す る と 、 SLR のプ ロ パテ ィ を確認で き ます。 詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 次は SLR オブジ ェ ク ト のプ ロ パテ ィ と その値 の例です。 Property ARCH CHIP_TYPE CLASS CONFIG_ORDER_INDEX IS_FABRIC IS_MASTER LOWER_RIGHT_CORNER LOWER_RIGHT_X LOWER_RIGHT_Y MAX_SITE_INDEX MAX_TILE_INDEX MIN_SITE_INDEX MIN_TILE_INDEX NAME NUM_CHANNELS NUM_SITES NUM_SLLS NUM_TILES NUM_TOP_CLOCK_CONNECTIONS NUM_TOP_DATA_CONNECTIONS SLR_INDEX UPPER_LEFT_CORNER UPPER_LEFT_X UPPER_LEFT_Y Type string string string int bool bool int int int int int int int string int int int int int int int int int int Read-only true true true true true true true true true true true true true true true true true true true true true true true true Visible true true true true true true true true true true true true true true true true true true true true true true true true Value virtex7 xc7vx1140t 0 slr 0 1 1 (0,157) 0 157 278381 266114 185588 177410 SLR1 220 92794 10780 23169 32 10780 1 (564,313) 564 313 特定の SLR のプ ロ パテ ィ を確認す る には、 次の コ マ ン ド を コ ピー し て Vivado Design Suite の Tcl シ ェ ルま たは Tcl コ ン ソ ールに貼 り 付け ます。 report_property -all [get_slrs <name>] <name> は、 レ ポー ト す る SLR の名前です。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 111 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) TILE 説明 X-Ref Target - Figure 2-39 7LPLQJ 3DWK 1RGH &HOO %HO3LQ &ORFN 5HJLRQ %HO :LUH FNDJH 3LQ 6LWH 6LWH3LQ 6LWH3LS 3LS 2%DQN 7LOH ,2 DQGDUG 6/5 ; 図 2‐39 : TILE オブ ジ ェ ク ト TILE は、SITE オブジ ェ ク ト を 1 つま たは複数含むデバ イ ス オブジ ェ ク ト です。プ ロ グ ラ マブル ロ ジ ッ ク TILE には、 SLICE/CLB、 BRAM、 I/O ブ ロ ッ ク 、 ク ロ ッ ク リ ソ ース、 GT ブ ロ ッ ク な ど さ ま ざ ま なオブジ ェ ク ト があ り ます。 構 造的には、 各 タ イ ルには入力お よ び出力が多数あ っ て、 あ る タ イ ルの入力 と 出力を別の タ イ ルに接続す る プ ロ グ ラ マ ブル イ ン タ ー コ ネ ク ト があ り ます。 TILE の タ イ プは、使用 さ れ る ザ イ リ ン ク ス デバ イ ス に よ っ て異な り ます。使用可能な TILE_TYPE は次の と お り です。 AMS_ADC_TOP AMS_BRAM AMS_CLB_INTF_IOB AMS_CLK AMS_CMT AMS_DAC_TOP AMS_DRP_ADC_TOP AMS_DRP_DAC_TOP AMS_DSP AMS_INT AMS_INT_L AMS_INT_R AMS_IOI AMS_VBRK_INTF BRAM_INT_INTERFACE_L BRAM_INT_INTERFACE_R BRAM_L BRAM_R BRKH_BRAM BRKH_B_TERM_INT BRKH_CLB BRKH_CLK BRKH_CMT BRKH_DSP_L BRKH_DSP_R BRKH_GTX BRKH_INT BRKH_TERM_INT B_TERM_INT B_TERM_INT_SLV CFG_CENTER_BOT CFG_CENTER_MID CFG_CENTER_MID_SLAVE CFG_CENTER_TOP CFG_CENTER_TOP_SLAVE Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 112 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) CLBLL_L CLBLL_R CLBLM_L CLBLM_R CLK_BALI_REBUF CLK_BALI_REBUF_GTZ_BOT CLK_BALI_REBUF_GTZ_TOP CLK_BUFG_BOT_R CLK_BUFG_REBUF CLK_BUFG_TOP_R CLK_FEED CLK_HROW_BOT_R CLK_HROW_TOP_R CLK_MTBF2 CLK_PMV CLK_PMV2 CLK_PMV2_SVT CLK_PMVIOB CLK_TERM CMT_FIFO_L CMT_FIFO_R CMT_PMV CMT_PMV_L CMT_TOP_L_LOWER_B CMT_TOP_L_LOWER_T CMT_TOP_L_UPPER_B CMT_TOP_L_UPPER_T CMT_TOP_R_LOWER_B CMT_TOP_R_LOWER_T CMT_TOP_R_UPPER_B CMT_TOP_R_UPPER_T DSP_L DSP_R GTH_CHANNEL_0 GTH_CHANNEL_1 GTH_CHANNEL_2 GTH_CHANNEL_3 GTH_COMMON GTH_INT_INTERFACE GTH_INT_INTERFACE_L GTX_CHANNEL_0 GTX_CHANNEL_1 GTX_CHANNEL_2 GTX_CHANNEL_3 GTX_COMMON GTX_INT_INTERFACE GTX_INT_INTERFACE_L GTZ_BOT GTZ_BRAM GTZ_CLB_INTF_IOB GTZ_CLK GTZ_CLK_B GTZ_CMT GTZ_DSP GTZ_INT GTZ_INT_L GTZ_INT_LB GTZ_INT_R GTZ_INT_RB GTZ_IOI GTZ_TOP GTZ_VBRK_INTF HCLK_BRAM HCLK_CLB HCLK_CMT HCLK_CMT_L HCLK_DSP_L HCLK_DSP_R HCLK_FEEDTHRU_1 HCLK_FEEDTHRU_2 HCLK_FIFO_L HCLK_GTX HCLK_INT_INTERFACE HCLK_IOB HCLK_IOI HCLK_IOI3 HCLK_L HCLK_L_BOT_UTURN HCLK_L_SLV HCLK_L_TOP_UTURN HCLK_R HCLK_R_BOT_UTURN HCLK_R_SLV HCLK_R_TOP_UTURN HCLK_TERM HCLK_TERM_GTX HCLK_VBRK HCLK_VFRAME INT_FEEDTHRU_1 INT_FEEDTHRU_2 INT_INTERFACE_L INT_INTERFACE_R INT_L INT_L_SLV INT_L_SLV_FLY INT_R INT_R_SLV INT_R_SLV_FLY IO_INT_INTERFACE_L IO_INT_INTERFACE_R LIOB18 LIOB18_SING LIOB33 LIOB33_SING LIOI LIOI3 LIOI3_SING LIOI3_TBYTESRC LIOI3_TBYTETERM LIOI_SING LIOI_TBYTESRC LIOI_TBYTETERM L_TERM_INT L_TERM_INT_BRAM MONITOR_BOT MONITOR_BOT_SLAVE MONITOR_MID MONITOR_TOP NULL PCIE3_BOT_RIGHT PCIE3_INT_INTERFACE_L PCIE3_INT_INTERFACE_R PCIE3_RIGHT PCIE3_TOP_RIGHT PCIE_BOT PCIE_BOT_LEFT PCIE_INT_INTERFACE_L PCIE_INT_INTERFACE_LEFT_L PCIE_INT_INTERFACE_R PCIE_NULL PCIE_TOP PCIE_TOP_LEFT RIOB18 RIOB18_SING RIOI RIOI_SING RIOI_TBYTESRC RIOI_TBYTETERM R_TERM_INT R_TERM_INT_GTX TERM_CMT T_TERM_INT T_TERM_INT_SLV VBRK VBRK_EXT VFRAME Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 113 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 関連オブ ジ ェ ク ト TILE オブジ ェ ク ト は SLR、 CLOCK_REGION、 SITE、 SITE_PIN、 BEL お よ び BEL_PIN デバ イ ス リ ソ ース、 NODE、 WIRE、 PIP 配線 リ ソ ース、 お よ び NET ネ ッ ト リ ス ト オブジ ェ ク ト に関連 し てい ます。 た と えば、 次の コ マ ン ド を使用す る と 、 関連す る オブジ ェ ク ト の TILE を取得で き 、 タ イ ルを通 る 指定 し たネ ッ ト が 表示 さ れます。 get_tiles -of_objects [get_nets wbClk] ま た、 TILE に関連 し た、 ま た は TILE 内で見つか っ た SLR、 CLOCK_REGION、 NODE、 PIP、 WIRE、 SITE、 BEL、 お よ び NET オブジ ェ ク ト も 取得で き ます。 get_bels -of_objects [get_tiles -filter {TILE_TYPE == GTX_CHANNEL_1}] プ ロパテ ィ TILE オブジ ェ ク ト には さ ま ざ ま な タ イ プがあ り 、TILE_TYPE プ ロ パテ ィ で設定で き ますが、すべての TILE オブジ ェ ク ト に同 じ プ ロ パテ ィ セ ッ ト が含まれます。 report_property コ マ ン ド を使用す る と 、 TILE オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ を確認で き ます。 詳細 は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 次は TILE オブジ ェ ク ト の CLBLL タ イ プに割 り 当て ら れたプ ロ パテ ィ と その値の例です。 Property CLASS COLUMN DEVICE_ID FIRST_SITE_ID GRID_POINT_X GRID_POINT_Y INDEX INT_TILE_X INT_TILE_Y IS_CENTER_TILE IS_DCM_TILE IS_GT_CLOCK_SITE_TILE IS_GT_SITE_TILE NAME NUM_ARCS NUM_SITES ROW SLR_REGION_ID TILE_PATTERN_IDX TILE_TYPE TILE_TYPE_INDEX TILE_X TILE_Y TYPE Type string int int int int int int int int bool bool bool bool string int int int int int enum int int int string Read-only true true true true true true true true true true true true true true true true true true true true true true true true Visible true true true true true true true true true true true true true true true true true true true true true true true true Value tile 50 0 46 50 1 167 17 0 1 0 0 0 CLBLL_L_X18Y199 146 2 1 0 13 CLBLL_L 19 -16260 320944 CLBLL_L 上記に リ ス ト さ れてい る TILE_TYPE のプ ロ パテ ィ を確認す る には、 report_property コ マ ン ド を使用 し ます。 report_property -all [lindex [get_sites -filter {TILE_TYPE == <TILE_TYPE>}] 0] <SITE_TYPE> には リ ス ト さ れてい る サ イ ト タ イ プの 1 つが入 り ます。 次は、 その例です。 report_property -all [lindex [get_tiles -filter {TILE_TYPE == DSP_L}] 0] report_property -all [lindex [get_tiles -filter {TILE_TYPE == BRAM_L}] 0] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 114 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) report_property -all [lindex [get_tiles -filter {TILE_TYPE == GTX_CHANNEL_1}] 0] TIMING_PATH 説明 TIMING_PATH は、 デザ イ ンのエ レ メ ン ト 間の接続に基づいて定義 さ れます。 デジ タ ル デザ イ ンでは、 タ イ ミ ン グ パ ス は同 じ ク ロ ッ ク ま たは異な る 2 つの ク ロ ッ ク で制御 さ れ る 順次エ レ メ ン ト のペアで形成 さ れ、 信号の ソ ースお よ び デス テ ィ ネーシ ョ ンにな り ます。 典型的な タ イ ミ ン グ パ ス では、 1 ク ロ ッ ク 周期内で 2 つのシーケ ン シ ャ ル セル間をデー タ が転送 さ れ ます。 た と え ば、 送信エ ッ ジが 0ns だ と す る と 、 到着エ ッ ジは 1 CLOCK 周期後にな り ます。 よ く 使用 さ れ る タ イ ミ ン グ パ ス は、 次の と お り です。 • 入力ポー ト か ら 内部シーケ ン シ ャ ル セルま でのパス • シーケ ン シ ャ ル セル間の内部パス • 内部シーケ ン シ ャ ル セルか ら 出力ポー ト ま でのパス • 内部ポー ト か ら 出力ポー ト ま でのパ ス タ イ ミ ン グ パ ス はそれぞれ独自の始点、 通過点、 終点で定義 さ れ ます。 パ ス の始点はシーケ ン シ ャ ル セルの ク ロ ッ ク ピ ン ま たはデー タ 入力ポー ト で、 パ ス の終点はシーケ ン シ ャ ル セルのデー タ 入力ピ ン ま たはデー タ 出力ポー ト で す。 TIMING_PATH オブジ ェ ク ト は、 詳細をいろいろ と 設定 し なが ら 、 選択ま たは指定で き ます。 1 つの タ イ ミ ン グ パ ス は、 始点、 通過点、 終点の組み合わせで定義 さ れます。 共通の始点ま たは共通の終点か ら 、 複数の タ イ ミ ン グ パ ス を 指定で き ます。 制約は、 タ イ ミ ン グ パ ス の定義に従っ て タ イ ミ ン グ パ ス に適用 さ れます。 制約の適用 さ れ る 優先順は タ イ ミ ン グ パ ス に も 適用 さ れ、 次の順序で優先 さ れます。 1. -from -through -to (1 つの タ イ ミ ン グ パ ス) 2. -from -to 3. -from -through 4. -from 5. -through -to 6. -to 7. -through ( こ の点を通 る タ イ ミ ン グ パ スすべて) タ イ ミ ン グ パ ス の詳細については、 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン解析お よ び ク ロ ージ ャ テ ク ニ ッ ク 』 (UG906) [参照 22] を参照 し て く だ さ い。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 115 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) 関連オブ ジ ェ ク ト X-Ref Target - Figure 2-40 1HW 3RUW 3LQ &ORFN 7LPLQJ 3DWK 1RGH &HOO %HO3LQ 図 2‐40 : TIMING_PATH オブ ジ ェ ク ト TIMING_PATH オブ ジ ェ ク ト は、 get_timing_paths コ マ ン ド で取得で き ま す。 こ れに よ り 、 関連す る CLOCK、 PIN、 PORT、 ま たは CELL オブジ ェ ク ト を使用 し て タ イ ミ ン グ を指定 し 、 パ ス の始点、 通過点、 終点を識別す る こ と がで き ます。 get_timing_paths -from fftEngine/control_reg_reg[1] -max_paths 10 ま た、 指定 し た タ イ ミ ン グ パ ス に関連する CELL、 NET、 PIN、 ま たは PORT オブジ ェ ク ト も 取得で き ます。 get_nets -of_objects [get_timing_paths -max_paths 10] プ ロパテ ィ 次は TIMING_PATH オブジ ェ ク ト に割 り 当て ら れたプ ロ パテ ィ と その値の例です。 Property Type Read-only Visible CLASS string true true CLOCK_PESSIMISM double true true CORNER string true true DATAPATH_DELAY double true true DELAY_TYPE string true true ENDPOINT_CLOCK clock true true ENDPOINT_CLOCK_DELAY double true true ENDPOINT_CLOCK_EDGE double true true ENDPOINT_PIN pin true true cpuEngine/or1200_immu_top/qmemimmu_cycstb_o_reg/D EXCEPTION string true true GROUP string true true INPUT_DELAY double true true INTER_SLR_COMPENSATION double true true LOGIC_LEVELS int true true NAME string true true cpuEngine/or1200_immu_top/qmemimmu_cycstb_o_reg/D} OUTPUT_DELAY double true true REQUIREMENT double true true SKEW double true true SLACK double true true STARTPOINT_CLOCK clock true true STARTPOINT_CLOCK_DELAY double true true Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com Value timing_path -0.661 Slow 6.934 max cpuClk_3 -2.149 20.000 cpuClk_3 16 {usbEngine0/u4/inta_reg/C --> 10.000 -0.057 2.865 usbClk_2 -2.754 116 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) STARTPOINT_CLOCK_EDGE STARTPOINT_PIN UNCERTAINTY USER_UNCERTAINTY double pin double double true true true true true true true true 10.000 usbEngine0/u4/inta_reg/C 0.202 TIMING_PATH オブジ ェ ク ト のプ ロ パテ ィ は、 次の コ マ ン ド を使用 し て確認で き ます。 report_property -all [lindex [get_timing_paths] 0] WIRE 説明 X-Ref Target - Figure 2-41 1HW 3RUW 3LQ &ORFN 7LPLQJ 3DWK 1RGH &HOO %HO3LQ &ORFN 5HJLRQ %HO :LUH H 6LWH&/% 6LWH3LQ 6LWH3LS 3LS QN 7LOH UG 6/5 ; 図 2‐41 : WIRE オブ ジ ェ ク ト WIRE は、 ザ イ リ ン ク ス パーツ での接続点ま たは NET を配線する ために使用する デバ イ ス オブジ ェ ク ト です。 ワ イ ヤは、 1 つの タ イ ルの中にあ る イ ン タ ー コ ネ ク ト の金属線です。 ワ イ ヤは、 PIP、 電源/グ ラ ン ド 、 SITE_PIN の間を接 続 し ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 117 第 2 章 : フ ァ ース ト ク ラ ス オブ ジ ェ ク ト リ ス ト (アル フ ァ ベ ッ ト 順) ヒ ン ト : WIRE オブジ ェ ク ト を、 デザ イ ン の Verilog フ ァ イ ルの ワ イ ヤ エ ン テ ィ テ ィ と 混同 し ない よ う に し て く だ さ い。 こ れ ら の ワ イ ヤは、 WIRE オブジ ェ ク ト で定義 さ れ る デザ イ ンの配線 リ ソ ース ではな く 、 デザ イ ンの NET に関連 付け ら れていてい ます。 関連オブ ジ ェ ク ト 98 ページの図 2-33にあ る よ う に、 WIRE オブジ ェ ク ト は TILE、 NODE、 PIP、 NET に関連付け ら れてい ます。 次の Tcl コ マ ン ド で、 WIRE を ク エ リ ーで き ます。 get_wires -of [get_tiles INT_R_X7Y47] ま た、 WIRE のあ る TILE、 ま たは特定 WIRE が関連付け ら れてい る NODE を ク エ リ ーする こ と も で き ます。 get_nodes -of_objects [get_wires INT_R_X7Y47/NW6BEG1] プ ロパテ ィ 次の よ う な コ マ ン ド を使用 し て、 WIRE オブジ ェ ク ト のプ ロ パテ ィ はレ ポー ト で き ます。 report_property -all [lindex [get_wires -of [get_nodes INT_R_X7Y47/NW6BEG1]] 0] ヒ ン ト : デバ イ ス上の WIRE の数は非常に多いため、検索結果を絞 り 込むための -of_objects や -filters を使用 し て、 get_wires Tcl コ マ ン ド を実行す る よ う に し て く だ さ い。 プ ロ パテ ィ には次の よ う な も のがあ り ます (例 と し て値 も 表示 さ れてい ます)。 Property CLASS COST_CODE ID_IN_TILE_TYPE IS_CONNECTED IS_INPUT_PIN IS_OUTPUT_PIN IS_PART_OF_BUS NAME NUM_DOWNHILL_PIPS NUM_INTERSECTS NUM_PIPS NUM_TILE_PORTS NUM_UPHILL_PIPS SPEED_INDEX TILE_NAME TILE_PATTERN_OFFSET Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 Type string int int bool bool bool bool string int int int int int int string int Read-only true true true true true true true true true true true true true true true true Visible true true true true true true true true true true true true true true true true japan.xilinx.com Value wire 3 123 1 0 0 0 INT_R_X7Y47/NW6BEG1 0 1 20 0 20 2232 INT_R_X7Y47 0 118 第 3章 主な プ ロパテ ィ の説明 プ ロパテ ィ 情報 本章では、 ザ イ リ ン ク ス Vivado® Design Suite プ ロ パテ ィ について説明 し ます。 各プ ロ パテ ィ の説明には、 該当す る 場合は次の情報が含ま れます。 • プ ロ パテ ィ の説明 (主な使用方法 も 含む) • プ ロ パテ ィ をサポー ト す る ザ イ リ ン ク ス FPGA デバ イ ス アーキ テ ク チ ャ (UltraScale™を含む)。 例外は注記済み • プ ロ パテ ィ をサポー ト す る オブジ ェ ク ト ま たはデバ イ ス リ ソ ース • プ ロ パテ ィ に割 り 当て可能な値 • Verilog、 VHDL、 XDC の構文 • プ ロ パテ ィ の影響を受け る デザ イ ン フ ロ ーの ス テ ッ プ • 関連プ ロ パテ ィ への相互参照 重要 : HDL と XDC の両方でプ ロ パテ ィ が定義 さ れてい る 場合は、 XDC の方が優先 さ れ、 HDL プ ロ パテ ィ は上書 き さ れます。 Vivado Design Suite での こ れ ら のプ ロ パテ ィ の使用方法については、 『Vivado Design Suite ユーザー ガ イ ド : 制約の使 用』 (UG903) [参照 19] を参照 し て く だ さ い。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 119 第 3 章 : 主な プ ロパテ ィ の説明 ASYNC_REG 重要 : ASYNC_REG と IOB の両方が レ ジ ス タ に割 り 当て ら れ る と 、 「IOB」 プ ロ パテ ィ が ASYNC_REG よ り も 優先 さ れ、 レ ジ ス タ が SLICE/CLB ロ ジ ッ ク ではな く 、 ILOGIC ブ ロ ッ ク に配置 さ れます。 ASYNC_REG 属性は、 Vivado ツール フ ロ ーの さ ま ざ ま なプ ロ セ ス に影響 し ます。 ASYNC_REG では、 次が指定 さ れ ます。 • ソ ース ク ロ ッ ク に相対 し て D 入力ピ ンで、 レ ジ ス タ は非同期デー タ を受信で き る ま たは • レ ジ ス タ が同期チ ェーン内の同期レ ジ ス タ であ る X-Ref Target - Figure 3-1 VQG! UFY ,%8) FON , ,%8) %8)* , FON WF FON & & V\QF &( %8)* V\QF BQBLQY &( 4 & &/5 &/5 &( ' 4 ' )'&( ' , , /87 &/5 HQ 4 )'&( )'&( VHQGHU UHFHLYHUB ,%8) , FON %8)* , ; 図 3‐1 : ク ロ ッ ク ド メ イ ンの同期 シ ミ ュ レ ーシ ョ ン中に タ イ ミ ン グ違反が発生す る と 、 デ フ ォ ル ト では レ ジ ス タ エ レ メ ン ト か ら X ま たは未知の ス テー ト (1 で も 0 で も ない値) が出力 さ れます。 こ の場合、 エ レ メ ン ト の駆動する も のすべての入力が X と 表示 さ れ、 未知の ス テー ト にな り ます。 こ の状態の ま ま に し てお く と 、 デザ イ ンのかな り の部分が未知にな っ た り 、 シ ミ ュ レー タ で こ の ス テー ト か ら 回復で き ない こ と があ り ます。 ASYNC_REG では、 タ イ ミ ン グ違反が発生 し て も 最後の既知の 値を出力す る よ う に レ ジ ス タ が変更 さ れます。 Vivado 合成では、 こ の属性は 「DONT_TOUCH」 属性 と し て処理 さ れ、 ASYNC_REG プ ロ パテ ィ を ネ ッ ト リ ス ト に挿 入 し ます。 こ れに よ り 、 合成で レ ジ ス タ ま たは周辺 ロ ジ ッ ク が最適化 さ れな く な り 、 デザ イ ン フ ロ ーのダ ウ ン ス ト リ ーム ツールに ASYNC_REG プ ロ パテ ィ が渡 さ れます。 ASYNC_REG を指定す る と 、 最適化、 配置、 配線に も 影響 し 、 メ タ ス テーブルにな る 可能性のあ る MTBF (平均故障 間隔) が改善 さ れます。 ASYNC_REG が指定 さ れてい る と 、 配置ツールで非同期チ ェーンの フ リ ッ プ フ ロ ッ プ同士が 近 く に配置 さ れ、 MTBF を最長にで き ます。 ASYNC_REG が設定 さ れ直接接続 さ れてい る レ ジ ス タ に、 互換性のあ る 制御セ ッ ト があ り 、 ま た レ ジ ス タ 数が ス ラ イ ス の使用可能な リ ソ ース数を超え ない場合は、 グループに ま と め ら れて 1 つの ス ラ イ ス に一緒に配置 さ れます。 ヒ ン ト : UltraScale デバ イ ス の場合、 report_synchronizer_mtbf を使用す る と 、 MTBF (平均故障間隔) が ASYNC_REG で 識別 さ れた レ ジ ス タ を同期す る ために レ ポー ト で き ます。 次は、120 ページの図 3-1 にあ る フ リ ッ プ フ ロ ッ プ を 2 つ使用 し た、ま たは 1 段のシ ン ク ロ ナ イ ザーの Verilog 例です。 レ ジ ス タ は、 個別の ク ロ ッ ク ド メ イ ン か ら の値を同期 さ せます。 ASYNC_REG プ ロ パテ ィ の値が TRUE なのでシ ン ク ロ ナ イ ザー段に適用 さ れます。 (* ASYNC_REG = "TRUE" *) reg sync_0, sync_1; Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 120 第 3 章 : 主な プ ロパテ ィ の説明 always @(posedge clk) begin sync_1 <= sync_0; sync_0 <= en; ... ASYNC_REG プ ロ パテ ィ を使用す る と 、 レ ジ ス タ がグループ化 さ れ る ので、 で き る だけ近 く に配置す る こ と がで き ま す。 X-Ref Target - Figure 3-2 図 3‐2 : レ ジ ス タ のグループ化 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • ソ ース RTL で宣言 さ れた信号 • イ ン ス タ ン シエー ト さ れた レ ジ ス タ セル (get_cells) ° レ ジ ス タ (FD、 FDCE、 FDPE、 FDRE、 FDSE) 値 • TRUE : レ ジ ス タ は同期チ ェーンの一部で、 イ ンプ リ メ ン テーシ ョ ン中 も 保持 さ れ、 チ ェーンのその他の レ ジ ス タ の近 く に配置 さ れて、 MTBF レ ポー ト に使用 さ れます。 • FALSE : レ ジ ス タ は最適化で削除 さ れ る か、 SRL、 DSP、 ま たは RAMB な ど のブ ロ ッ ク に吸収 さ れます。 特殊な シ ミ ュ レーシ ョ ン、 配置、 配線規則は適用 さ れません(デフ ォ ル ト )。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 121 第 3 章 : 主な プ ロパテ ィ の説明 構文 Verilog 構文 Verilog 属性はレ ジ ス タ の イ ン ス タ ン シエーシ ョ ン ま たは reg 宣言の直前に配置 し ます。 (* ASYNC_REG = "{TRUE|FALSE}" *) Verilog の構文例 // Designates sync_regs as receiving asynchronous data (* ASYNC_REG = "TRUE" *) reg [2:0] sync_regs; VHDL 構文 推論 さ れた ロ ジ ッ ク に対 し て次の よ う に VHDL 属性を宣言お よ び指定 し ます。 attribute ASYNC_REG : string; attribute ASYNC_REG of name: signal is "TRUE"; ま たは、 イ ン ス タ ン シエー ト さ れた ロ ジ ッ ク に対 し て次の よ う に VHDL 属性を指定 し ます。 attribute ASYNC_REG of name: label is "TRUE"; name は、 次のいずれかにな り ます。 • シ ン ク ロ ナ イ ザー レ ジ ス タ に推論 さ れ る 宣言済みの信号 • イ ン ス タ ン シエー ト さ れた レ ジ ス タ の イ ン ス タ ン ス名 VHDL の構文例 attribute ASYNC_REG : string; signal sync_regs : std_logic_vector(2 downto 1); -- Designates sync_regs as receiving asynchronous data attribute ASYNC_REG of sync_regs: signal is "TRUE"; XDC 構文 set_property ASYNC_REG value [get_cells <instance_name>] 説明 : • <instance_name> はレ ジ ス タ セルです。 XDC の構文例 # Designates sync_regs as receiving asynchronous data set_property ASYNC_REG TRUE [get_cells sync_regs*] 影響のある処理 • launch_xsim • synth_design • place_design • route_design Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 122 第 3 章 : 主な プ ロパテ ィ の説明 • phys_opt_design • power_opt_design • report_drc • write_verilog • write_vhdl 関連項目 175 ページの 「IOB」 BEL BEL は、 SLICE/CLB 内の、 ま たは複数のセルを含んでい る 可能性のあ る ほかのサ イ ト 内の特定の配置を指定 し ます。 通常 LOC プ ロ パテ ィ と 一緒に使用 し て、 レ ジ ス タ ま たは LUT の正確な配置を指定 し ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • セル (get_cells) ° レ ジ ス タ (FD、 FDCE、 FDPE、 FDRE、 FDSE) ° LUT (LUT1、 LUT2、 LUT3、 LUT4、 LUT5、 LUT6、 LUT6_2) ° SRL (SRL16E、 SRLC32E) ° LUTRAM (RAM32X1S、 RAM64X1S) ° コ ン フ ィ ギ ュ レーシ ョ ン コ ン ポーネ ン ト (BSCAN、 ICAP な ど) 値 • BEL = <name> BEL の ロ ジ ッ ク コ ン テ ン ツ次第で、 BEL の名前は変わ り ます。 ま た、 BEL 名には BEL のサ イ ト 名を含め る こ と も で き ます。 た と えば、 BSCAN_X0Y0/BSCAN お よ び SLICE_X1Y199/A5FF な ど が有効な BEL 名です。 構文 Verilog 構文 Verilog 属性を イ ン ス タ ン シエーシ ョ ンの直前に配置 し ます。推論 さ れた レ ジ ス タ の SRL ま たは LUTRAM の reg 宣言 前に配置す る こ と も で き ます。 (* BEL = "site_name" *) Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 123 第 3 章 : 主な プ ロパテ ィ の説明 Verilog の構文例 // Designates placed_reg to be placed in FF site A5FF (* BEL = "A5FF" *) reg placed_reg; VHDL 構文 VHDL 属性は次の よ う に宣言 し ます。 attribute BEL : string; イ ン ス タ ン シエー ト 済み イ ン ス タ ン ス の場合は、 次の よ う に指定 し ます。 attribute BEL of instance_name : label is "site_name"; 説明 : • instance_name は LUT、 SRL、 LUTRAM な ど の イ ン ス タ ン シエー ト 済みレ ジ ス タ の イ ン ス タ ン ス名です。 VHDL の構文例 -- Designates instantiated register instance placed_reg to be placed in FF site A5FF attribute BEL of placed_reg : label is "A5FF"; 推論済み イ ン ス タ ン ス の場合、 VHDL 属性は次の よ う に指定 し ます。 attribute BEL of signal_name : signal is "site_name"; 説明 : • signal_name は LUT、 SRL、 LUTRAM な ど の推論済みレ ジ ス タ の信号名です。 VHDL の構文例 -- Designates instantiated register instance placed_reg to be placed in FF site A5FF attribute BEL of placed_reg : signal is "A5FF"; XDC 構文 set_property BEL site_name [get_cells instance_name] 説明 : • instance_name はレ ジ ス タ、 LUT、 SRL、 LUTRAM ま たはその他のセル イ ン ス タ ン ス です。 XDC の構文例 # Designates placed_reg to be placed in FF site A5FF set_property BEL A5FF [get_cells placed_reg] 影響のある処理 • デザ イ ンの フ ロ アプ ラ ン • place_design Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 124 第 3 章 : 主な プ ロパテ ィ の説明 関連項目 193 ページの 「LOC」 BLACK_BOX BLACK_BOX 属性は、 すべての階層レベルをオ フ に し 、 合成でそのモジ ュ ールま たはエン テ ィ テ ィ に対 し てブ ラ ッ ク ボ ッ ク ス を作成で き る よ う にす る デバ ッ グ用の属性です。 こ の属性を指定する と 、 モジ ュ ールま たはエン テ ィ テ ィ に 対 し て有効な ロ ジ ッ ク があ っ た と し て も 、 合成ツールでその レベルに対 し てブ ラ ッ ク ボ ッ ク ス が作成 さ れます。 こ の 属性はモジ ュ ール、 エン テ ィ テ ィ 、 コ ン ポーネ ン ト に設定で き ます。 こ の属性は合成 コ ンパ イ ラ に影響す る ので、 RTL でのみ設定可能です。 ブ ラ ッ ク ボ ッ ク ス の コ ー ド 記述に関 し ては、 『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) [参照 18] の こ のセ ク シ ョ ン を参照 し て く だ さ い。 アーキテ ク チ ャ サポー ト • すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • ソ ース RTL のモジ ュ ール、 エン テ ィ テ ィ 、 ま たは コ ン ポーネ ン ト 値 • TRUE (ま たは YES) : 合成中に コ ン ポーネ ン ト ま たはモジ ュ ールをブ ラ ッ ク ボ ッ ク ス と し てマー ク し ます。 • FALSE (ま たは NO) : コ ン ポーネ ン ト ま たはモジ ュ ールを ブ ラ ッ ク ボ ッ ク ス と し てマー ク し ません。 こ れがデ フ ォ ル ト です。 構文 Verilog 構文 Verilog の場合、 モジ ュ ールの BLACK_BOX 属性には値が必要な く 、 その存在自体でブ ラ ッ ク ボ ッ ク ス が定義 さ れま す。 (* black_box *) module test(in1, in2, clk, out1); VHDL 構文 attribute black_box attribute black_box : string; of beh : architecture is "yes"; XDC 構文 該当な し Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 125 第 3 章 : 主な プ ロパテ ィ の説明 影響のある処理 • 合成 BUFFER_TYPE 重要 : こ のプ ロ パテ ィ はサポー ト さ れな く な り ま し た。 「CLOCK_BUFFER_TYPE」 お よ び 「IO_BUFFER_TYPE」 プ ロ パテ ィ に置 き 換え ら れてい ます。 CASCADE_HEIGHT CASCADE_HEIGHT 属性は、 ブ ロ ッ ク RAM に配置 さ れ る 大型 RAM のカ ス ケー ド チ ェーンの長 さ を指定 し ます。 複 数のブ ロ ッ ク RAM で構成 さ れ る RAM を記述する と 、 Vivado 合成で ど の よ う に コ ン フ ィ ギ ュ レーシ ョ ン さ れ る かが 決定 さ れます。 通常は、 ブ ロ ッ ク RAM がカ ス ケー ド 接続 さ れます。 こ の属性は、 チ ェーンの長 さ を短 く し た り 、 長 さ に制限を加え た り す る のに使用で き ます。 値を 0 ま たは 1 に設定する と 、 ブ ロ ッ ク RAM のカ ス ケー ド 接続がオ フ にな り ます。 こ の属性は、 合成で処理 さ れ る ので、 RTL ソ ース フ ァ イ ルで RAM に設定 さ れます。 アーキテ ク チ ャ サポー ト • すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • RAM セル (get_cells) 値 • <VALUE>: CASCADE_HEIGHT には整数を指定 し ます。 構文 Verilog 構文 (* cascade_height = 4 *) reg [31:0] ram [(2**15) - 1:0]; VHDL 構文 attribute cascade_height : integer; attribute cascade_height of ram : signal is 4; Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 126 第 3 章 : 主な プ ロパテ ィ の説明 XDC 構文 該当な し 影響のある処理 • 合成 CFGBVS ザ イ リ ン ク ス デバ イ ス では 3.3V、 2.5V、 1.8V、 ま たは 1.5V の I/O を使用 し た コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス がサポー ト さ れます。 コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス には、 バン ク 0 の JTAG ピ ン、 バン ク 0 の専用 コ ン フ ィ ギ ュ レーシ ョ ン ピ ンが含ま れ る ほか、 特定 コ ン フ ィ ギ ュ レーシ ョ ン モー ド に関連 し た ピ ンが 7 シ リ ーズの 場合はバン ク 14 と 15 に、 UltraScale アーキ テ ク チ ャ の場合はバン ク 65 に含まれます。 バン ク 0 で適切な コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス電圧をサポー ト する には、 I/O バン ク を 3.3V/2.5 ま たは 1.8V/1.5V 操作用に コ ン フ ィ ギ ュ レーシ ョ ンす る ため、 CFGBVS (Configuration Bank Voltage Select) ピ ン を VCC_0 ま た は GND に それぞれ設定す る 必要が あ り ま す。 CFGBVS は、 VCCO_0 と GND を 参照す る ロ ジ ッ ク 入力 ピ ン です。 CFGBVS ピ ンが VCCO_0 電源に接続 さ れてい る 場合、 コ ン フ ィ ギ ュ レーシ ョ ン中、 バン ク 0 の I/O は 3.3V ま たは 2.5 V での操作をサポー ト し ます。 CFGBVS ピ ン が GND に接続 さ れてい る 場合、 コ ン フ ィ ギ ュ レーシ ョ ン中、 バン ク 0 の I/O は 1.8V ま たは 1.5V での操作をサポー ト し ます。 CFGBVS ピ ン の設定に よ り 常にバン ク 0 の I/O 電圧サポー ト が決ま り ま す。 7 シ リ ーズ デバ イ ス の場合はバン ク 14 お よ びバン ク 15 が、 UltraScale アーキテ ク チ ャ の場合はバン ク 65 が HR バン ク タ イ プなので、 CFGBVS ピ ン と それ に該当す る 「CONFIG_VOLTAGE」 プ ロ パテ ィ に よ り 、 コ ン フ ィ ギ ュ レーシ ョ ン中にサポー ト さ れ る I/O 電圧が決ま り ます。 重要 : 1.8V/1.5V I/O 操作の場合に CFGBVS が GND に設定 さ れてい る 場合、 ザ イ リ ン ク ス FPGA への損傷を避け る た め、 バン ク 0 への VCCO_0 電源お よ び I/O 信号は 1.8V 以下にする 必要があ り ます。 CFGBVS に 関 し て は、 『7 シ リ ー ズ FPGA コ ン フ ィ ギ ュ レ ー シ ョ ン ユ ー ザ ー ガ イ ド 』 (UG470) [ 参照 1] ま た は 『UltraScale アーキ テ ク チ ャ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG570) [参照 7] を参照 し て く だ さ い。 デ ザ イ ン の CONFIG_MODE 設 定 の 互換性 を 確認す る た め、 Report CONFIG_VOLTAGE をチ ェ ッ ク し ます。 DRC コマン ド が CFGBVS および アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • デザ イ ン (current_design) 値 • VCCO : 3.3V/2.5V 操作の場合、 I/O バン ク 0 を コ ン フ ィ ギ ュ レーシ ョ ン • GND : 1.8V/1.5V 操作の場合、 I/O バン ク 0 を コ ン フ ィ ギ ュ レーシ ョ ン Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 127 第 3 章 : 主な プ ロパテ ィ の説明 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property CFGBVS [VCCO | GND] [current_design] XDC の構文例 # Configure I/O Bank 0 for 3.3V/2.5V operation set_property CFGBVS VCCO [current_design] 影響のある処理 • I/O プ ラ ン ニ ン グ • DRC レ ポー ト • write_bitstream 関連項目 135 ページの 「CONFIG_MODE」 137 ページの 「CONFIG_VOLTAGE」 CLOCK_BUFFER_TYPE デ フ ォ ル ト で は、 Vivado 合成 で は、 ク ロ ッ ク ポ ー ト に対 し 入力バ ッ フ ァ ー と グ ロ ーバル ク ロ ッ ク バ ッ フ ァ ー (IBUF/BUFG) の組み合わせた も のが推論 さ れ ま すが、 「IO_BUFFER_TYPE」 お よ び CLOCK_BUFFER_TYPE プ ロ パ テ ィ を 一緒に使用 し て、 Vivado 合成 ツ ールで、 デ フ ォ ル ト バ ッ フ ァ ー タ イ プ を 変更 し た り (IBUF/BUFR ペアや、 BUFIO ク ロ ッ ク バ ッ フ ァ ーで入力バ ッ フ ァ ーな し に変更する な ど)、 こ れ ら のバ ッ フ ァ ーを ま と めて削除 し た り で き ます。 CLOCK_BUFFER_TYPE プ ロ パテ ィ は、指定ネ ッ ト やポー ト オブジ ェ ク ト に対 し 、 ど の タ イ プの ク ロ ッ ク バ ッ フ ァ ー を 推論す る か を 指定 し ま す。 「IO_BUFFER_TYPE」 プ ロ パテ ィ は、 ポー ト に対 し 、 入力バ ッ フ ァ ー ま たは出力バ ッ フ ァ ーの ど ち ら を推論す る か を指定 し ます。 ヒ ン ト : CLOCK_BUFFER_TYPE プ ロ パテ ィ を使用す る 場合は、 タ ーゲ ッ ト ネ ッ ト に KEEP が設定 さ れ る こ と にな り ます。 こ れは、 ネ ッ ト 名を保持 し 、 RTL 最適化中にネ ッ ト が削除 さ れない よ う にする ための も のです。 CLOCK_BUFFER_TYPE は RTL ま たは XDC で定義で き ます。 注記 : MAX_FANOUT は、 CLOCK_BUFFER_TYPE の設定 さ れてい る ネ ッ ト には設定で き ません。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 128 第 3 章 : 主な プ ロパテ ィ の説明 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports) : CLOCK_BUFFER_TYPE を最上位 ク ロ ッ ク ポー ト に適用 し 、 ど の タ イ プの ク ロ ッ ク バ ッ フ ァ ーを使用す る か、 ま たは ク ロ ッ ク バ ッ フ ァ ーを使用 し ないか を設定 し ます。 • ネ ッ ト (get_nets) : CLOCK_BUFFER_TYPE を最上位 ク ロ ッ ク ポー ト に接続 さ れてい る 信号に適用 し 、 ど の タ イ プ の ク ロ ッ ク バ ッ フ ァ ーを使用す る か、 ま たは ク ロ ッ ク バ ッ フ ァ ーを使用 し ないか を設定 し ます。 値 • BUFG、 BUFH、 BUFIO、 BUFMR、 BUFR : ク ロ ッ ク ポー ト ま たはネ ッ ト に対 し 、 指定 ク ロ ッ ク バ ッ フ ァ ーを 推論す る よ う に し ます。 • NONE : ク ロ ッ ク に対 し 、 ク ロ ッ ク バ ッ フ ァ ーを推論 し ない よ う に し ます。 注記 : 「IO_BUFFER_TYPE」 を NONE に指定す る と 、 Vivado 合成はバ ッ フ ァ ーを推論 し ません。 構文 Verilog 構文 (* clock_buffer_type = "none" *) input clk1; VHDL 構文 entity test is port( in1 : std_logic_vector (8 downto 0); clk : std_logic; out1 : std_logic_vector(8 downto 0)); attribute clock_buffer_type : string; attribute clock_buffer_type of clk: signal is "BUFR"; end test; XDC 構文 set_property CLOCK_BUFFER_TYPE BUFMR [get_ports <port_name>] 影響のある処理 • 合成 関連項目 173 ページの 「IO_BUFFER_TYPE」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 129 第 3 章 : 主な プ ロパテ ィ の説明 CLOCK_DEDICATED_ROUTE デフ ォ ル ト では、 CLOCK_DEDICATED_ROUTE プ ロ パテ ィ は イ ネーブル (TRUE) にな っ ていて、 ク ロ ッ ク リ ソ ース 配置 DRC はエ ラ ー コ ンデ ィ シ ョ ン と みな さ れ る よ う にな っ てい ま す。 こ のエ ラ ー コ ンデ ィ シ ョ ン は、 配線ま たは ビ ッ ト ス ト リ ーム生成の前に修正す る 必要が あ り ま す。 CLOCK_DEDICATED_ROUTE=FALSE の設定にな っ てい る と 、 配置 DRC が警告レベルに下げ ら れ る ので、 Vivado の配線プ ロ グ ラ ムでデバ イ ス配線を使用 し て、 ク ロ ッ ク 兼用 I/O (CCIO) を、 MMCM な ど のグ ロ ーバル ク ロ ッ ク リ ソ ース に接続で き ます。 注意 : CLOCK_DEDICATED_ROUTE を FALSE に設定す る と 、 ク ロ ッ ク 遅延が最適な も のにな ら ない可能性があ り 、 タ イ ミ ン グ違反な ど の問題が発生す る 場合があ り ます。 外部ユーザー ク ロ ッ ク は、 ク ロ ッ ク 兼用入力 (CCIO) と 呼ばれ る 差動 ク ロ ッ ク ピ ン ペア を介 し て FPGA に供給す る 必要があ り ます。 こ れ ら の CCIO は、 さ ま ざ ま な ク ロ ッ ク 供給機能の タ イ ミ ン グ を確約する ため、 内部のグ ロ ーバル お よ び リ ージ ョ ナル ク ロ ッ ク リ ソ ースへの専用、高速配線を提供 し ます。 ク ロ ッ ク 配置ルールに関 し ては、『7 シ リ ー ズ FPGA ク ロ ッ キ ン グ リ ソ ース ユーザー ガ イ ド 』 (UG472) [参照 3] ま たは 『UltraScale アーキ テ ク チ ャ ク ロ ッ キ ン グ リ ソ ース ユーザー ガ イ ド 』 (UG572) [参照 9] を参照 し て く だ さ い。 通常、 タ ーゲ ッ ト の FPGA の専用 ク ロ ッ ク ツ リ ーか ら ク ロ ッ ク 配線を外 し た り 、 標準配線チ ャ ネルを使用する と いっ た目的で、 ク ロ ッ ク コ ン ポーネ ン ト を配置する 必要が出て き た と き に、 CLOCK_DEDICATED_ROUTE プ ロ パ テ ィ は使用 さ れます。 こ のデバ イ ス配線は、 ク ロ ッ ク が内部専用であれば問題はないか も し れませんが、 ク ロ ッ ク は、 妥当な ス ピー ド の I/O イ ン タ ーフ ェ イ ス には使用で き ません。 専用配線が使用で き ない場合は、 CLOCK_DEDICATED_ROUTE を FALSE に設定す る と 、 ク ロ ッ ク ソ ース が ロ ー ド ク ロ ッ ク バ ッ フ ァ ーに比べて最適 ではない位置に配置 さ れてい る と き 、 ク ロ ッ ク 配置 DRC がエ ラ ーか ら 警告にな り ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • グ ロ ーバル ク ロ ッ ク バ ッ フ ァ ー (BUFG、 BUFGCE、 BUFGMUX、 BUGCTRL) の入力に接続 さ れてい る ネ ッ ト (get_nets) 重要 : CLOCK_DEDICATED_ROUTE は、 デザ イ ン階層の最上位にあ る ネ ッ ト セ グ メ ン ト 、 ま たは最上位ネ ッ ト に設 定す る 必要があ り ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 130 第 3 章 : 主な プ ロパテ ィ の説明 値 • TRUE : ク ロ ッ ク 配置 DRC 違反がエ ラ ーにな り ます (デフ ォ ル ト )。 • FALSE : ク ロ ッ ク 配置 DRC 違反が警告に格下げ さ れます。 専用高速 ク ロ ッ ク 配線が使用 さ れない よ う にす る た め、 ク ロ ッ ク コ ン ポーネ ン ト (BUFG、 MMCM、 PLL な ど) が配置 さ れ る たびに こ れを使用する 必要があ り ます。 • BACKBONE : 基本的な ク ロ ッ ク 配置ルールに違反す る ロ ケーシ ョ ン制約を割 り 当て る 場合は こ の値を使用す る 必要があ る こ と があ り ますが、 通常は推奨 さ れません。 MMCM ま たは PLL が ソ ース の CCIO ピ ンか ら かな り 離 れた位置に配置 さ れ る 場合は こ の値を使用 し ます。 ワ イ ヤの長 さ が長 く な る 分、 CCIO か ら MMCM ま での タ イ ミ ン グ パ ス に遅延が追加 さ れ ますが、 こ れは MMCM や PLL フ ィ ー ド バ ッ ク に よ っ ては完全には削除 さ れ ませ ん。 遅延が追加 さ れて も デザ イ ンの タ イ ミ ン グが満た さ れ る 場合は BACKBONE を使用 し ます。 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property CLOCK_DEDICATED_ROUTE [TRUE | FALSE | BACKBONE] [get_nets net_name] 説明 : • net_name は、 グ ロ ーバル ク ロ ッ ク バ ッ フ ァ ーの入力に接続 さ れた信号名です。 XDC の構文例 # Designates clk_net to have relaxed clock placement rules set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets clk_net] 影響のある処理 • place_design • report_drc Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 131 第 3 章 : 主な プ ロパテ ィ の説明 CLOCK_DELAY_GROUP CLOCK_DELAY_GROUP プ ロ パテ ィ は、 同 じ MMCM ま たは PLL ソ ース を持つ関連 ク ロ ッ ク を設定 し ます。 こ れ ら の ク ロ ッ ク は、 配置お よ び配線中にグループに ま と めて、 ク ロ ッ ク 間の タ イ ミ ン グ パ ス の ク ロ ッ ク ス キ ュ ーを低減 す る 必要があ り ます。 ヒ ン ト : ク ロ ッ ク 比較 (CLOCK_DELAY_GROUP を使用) は、 同 じ PLL/MMCM か ら の ク ロ ッ ク に対 し て使用 さ れ ま す。 アーキテ ク チ ャ サポー ト UltraScale アーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • ク ロ ッ ク ネ ッ ト (get_nets) 値 • NAME : 指定 ク ロ ッ ク ネ ッ ト の遅延に一致す る よ う 、 配線プ ロ グ ラ ムで使用 さ れ る 名前 (文字列) 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property CLOCK_DELAY_GROUP <name> [get_nets <clk_nets>] 説明 : • <name> は、 指定 ク ロ ッ ク ネ ッ ト に関連付け ら れ る 名前です。 • <clk_nets> は、 共通の MMCM ま たは PLL ソ ース を共有する ク ロ ッ ク ネ ッ ト の リ ス ト です。 XDC の構文例 # Define a clock group to reduce skew between the nets. set_property CLOCK_DELAY_GROUP grp12 [get_nets {clk1_net clk2_net} 影響のある処理 • place_design • report_drc Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 132 第 3 章 : 主な プ ロパテ ィ の説明 CLOCK_REGION こ のプ ロ パテ ィ を使用す る と 、 ク ロ ッ ク バ ッ フ ァ ーを UltraScale デバ イ ス の特定の CLOCK_REGION に割 り 当て る こ と がで き ます。 Vivado 配置ツールでは、 ク ロ ッ ク バ ッ フ ァ ーがその領域内の最適なサ イ ト に割 り 当て ら れます。 UltraScale デバ イ ス の場合、 7 シ リ ーズ デザ イ ン の ク ロ ッ ク プ ラ ン ニ ン グ の場合 と 異な り 、 な る べ く ク ロ ッ ク バ ッ フ ァ ーを特定サ イ ト に固定 し ない よ う に し て く だ さ い。 その代わ り 、 ク ロ ッ ク バ ッ フ ァ ーを特定の CLOCK_REGION に割 り 当てて、 Vivado 配置ツールで ク ロ ッ ク リ ソ ース を使用で き る よ う に し て、 最適な ソ リ ュ ーシ ョ ンに し ます。 アーキテ ク チ ャ サポー ト UltraScale デバ イ ス 適用可能なオブ ジ ェ ク ト • グ ロ ーバル ク ロ ッ ク バ ッ フ ァ ー セル (get_cells) ° BUFG セル (BUFGCE、 BUFGCTRL、 BUFG_GT、 BUFGCE_DIV) 値 • <VALUE>: セルを配置す る CLOCK_REGION を指定 し ます。 CLOCK_REGION は、 X#Y# の よ う な名前で指定す る か、 ま たは get_clock_regions Tcl コ マ ン ド で渡 さ れ る 値を使用 し ます。 注記 : get_clock_regions コ マ ン ド の詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参 照 13] を参照 し て く だ さ い。 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property CLOCK_REGION [VALUE] [get_cells <cell>] 説明 : • <cell> は、 グ ロ ーバル ク ロ ッ ク バ ッ フ ァ ーの イ ン ス タ ン ス です。 XDC の構文例 CLOCK_RERGION のユーザー割 り 当ては、 次の よ う に XDC で実行で き ます。 set_property CLOCK_REGION X4Y6 [get_cells {sys_clk_pll/inst/clkf_buf}] 影響のある処理 • place_design • report_drc Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 133 第 3 章 : 主な プ ロパテ ィ の説明 関連項目 128 ページの 「CLOCK_BUFFER_TYPE」 134 ページの 「CLOCK_ROOT」 CLOCK_ROOT CLOCK_ROOT は読み出 し 専用のプ ロ パテ ィ で、 物理デザ イ ンのグ ロ ーバル ク ロ ッ ク ネ ッ ト の ク ロ ッ ク ルー ト ま た は ド ラ イ バーの現在の リ ソ ース割 り 当て を反映 し てい ます。 重要 : CLOCK_ROOT プ ロ パテ ィ は、 ユーザー定義可能で し たが、 読み出 し 専用に変更にな り ま し た。 ユーザー定義 で き る プ ロ パテ ィ は、 USER_CLOCK_ROOT に変更にな っ てい ます。 CLOCK_ROOT は読み出 し 専用のプ ロ パテ ィ で、Vivado 配置プ ロ グ ラ ムに よ っ て割 り 当て ら れ る ク ロ ッ ク ルー ト を反 映 し てい ます。 デフ ォ ル ト では、 配置配線ツールで自動的に ク ロ ッ ク ルー ト が割 り 当て ら れ、 そのデザ イ ンに最適な タ イ ミ ン グ特性が達成 さ れます。 CLOCK_ROOT の値は、 ユーザー定義の 「USER_CLOCK_ROOT」 プ ロ パテ ィ が定義 さ れてい る 場合は、 それに一致 し てい る 必要があ り ます。 USER_CLOCK_ROOT を使用する 場合は、 ク ロ ッ ク ルー ト を手動で割 り 当て る こ と がで き ます。 アーキテ ク チ ャ サポー ト UltraScale デバ イ ス 適用可能なオブ ジ ェ ク ト • ネ ッ ト - グ ロ ーバル ク ロ ッ ク ネ ッ ト (get_nets) 値 • <clock_region | pblock_name> : タ ーゲ ッ ト パーツ の ク ロ ッ ク 領域名、 ま たは現在のデザ イ ン で定義 さ れてい る Pblock 名を指定 し ます。 • <object> : 1 つま たは複数の ク ロ ッ ク ネ ッ ト 、 ま たはネ ッ ト セグ メ ン ト を指定 し ます。 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property CLOCK_ROOT <clock_region | pblock> <List of clock nets> XDC の構文例 set_property CLOCK_ROOT X0Y0 [get_nets {clk1 clk2}] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 134 第 3 章 : 主な プ ロパテ ィ の説明 set_property CLOCK_ROOT [get_clock_regions X1Y3] [get_nets {clk1 clk2}] 影響のある処理 • 配置 • 配線 関連項目 128 ページの 「CLOCK_BUFFER_TYPE」 133 ページの 「CLOCK_REGION」 248 ページの 「USER_CLOCK_ROOT」 CONFIG_MODE CONFIG_MODE プ ロ パテ ィ は、 ピ ン割 り 当て、 DRC レ ポー ト 、 ビ ッ ト ス ト リ ーム生成に対 し 、 ど のデバ イ ス コ ン フ ィ ギ ュ レーシ ョ ン モー ド を使用す る か を定義 し ます。 重 要 : COMPATIBLE_CONFIG_MODES プ ロ パ テ ィ は 2013. 3 リ リ ー ス で サ ポ ー ト さ れ な く な り ま し た。 こ の CONFIG_MODE プ ロ パテ ィ に置 き 換え ら れてい ます。 ザ イ リ ン ク ス FPGA は、 特別な コ ン フ ィ ギ ュ レーシ ョ ン ピ ン を使用 し て、 アプ リ ケーシ ョ ン別の コ ン フ ィ ギ ュ レー シ ョ ン デー タ ま たはビ ッ ト ス ト リ ーム を内部 メ モ リ に読み込む こ と に よ っ て、 コ ン フ ィ ギ ュ レーシ ョ ン さ れます。 コ ン フ ィ ギ ュ レーシ ョ ン デー タ パ ス には一般的に 2 種類あ り ます。 必要なデバ イ ス ピ ンの数を最小限に抑え る ために 使用 さ れ る シ リ ア ル デー タ パ ス、 よ り 高速 な コ ン フ ィ ギ ュ レ ー シ ョ ン 用 の パ ラ レ ル デー タ パ ス の 2 つ で す。 CONFIG_MODE プ ロ パテ ィ を使用 し て、 デザ イ ンに対 し ど のモー ド を使用す る か を定義 し ます。 デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ン モー ド に関 し ては、 『7 シ リ ーズ FPGA コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG470) [参照 1] ま たは 『UltraScale アーキ テ ク チ ャ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG570) [参照 7] を参 照 し て く だ さ い。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • デザ イ ン (current_design) 値 ヒ ン ト : 次の値がすべて、 すべてのアーキ テ ク チ ャ に適用 さ れ る わけではあ り ません。 7 シ リ ーズ FPGA の コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド [参照 1] ま たは UltraScale アーキ テ ク チ ャ の コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド [参照 7] を参照 し て く だ さ い。 • S_SERIAL Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 135 第 3 章 : 主な プ ロパテ ィ の説明 • M_SERIAL • S_SELECTMAP • M_SELECTMAP • B_SCAN • S_SELECTMAP+READBACK • M_SELECTMAP+READBACK • B_SCAN+READBACK • S_SELECTMAP32 • S_SELECTMAP32+READBACK • S_SELECTMAP16 • S_SELECTMAP16+READBACK • SPIx1 • SPIx2 • SPIx4 • BPI8 • BPI16 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property CONFIG_MODE <value> [current_design] <value> には コ ン フ ィ ギ ュ レーシ ョ ン モー ド を指定 し ます。 XDC の構文例 # Specify using Configuration Mode Serial Peripheral Interface, 4-bit width set_property CONFIG_MODE {SPIx4} [current_design] 影響のある処理 • I/O プ ラ ン ニ ン グ • place_design • report_drc • write_bitstream Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 136 第 3 章 : 主な プ ロパテ ィ の説明 CONFIG_VOLTAGE ザ イ リ ン ク ス デバ イ ス では 3.3V、 2.5V、 1.8V、 ま たは 1.5V の I/O を使用 し た コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス がサポー ト さ れます。 コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス には、 バン ク 0 の JTAG ピ ン、 バン ク 0 の専用 コ ン フ ィ ギ ュ レーシ ョ ン ピ ンが含ま れ る ほか、 特定 コ ン フ ィ ギ ュ レーシ ョ ン モー ド に関連 し た ピ ンが 7 シ リ ーズの 場合はバ ン ク 14 と 15 に、 UltraScale アーキ テ ク チ ャ の場合はバ ン ク 65 に含 ま れ ま す。 CONFIG_VOLTAGE プ ロ パ テ ィ や VCCO_0 電圧は 3.3、 2.5、 1.8、 ま たは 1.5 に設定で き ます。 バン ク 0 の ピ ンの I/O 電圧サポー ト を決め る には、 CONFIG_VOLTAGE を正 し い コ ン フ ィ ギ ュ レーシ ョ ン電圧に設定 す る 必要があ り ます。コ ン フ ィ ギ ュ レーシ ョ ン電圧に関 し ては、『7 シ リ ーズ FPGA コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG470) [参照 1] ま たは 『UltraScale アーキテ ク チ ャ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG570) [参 照 7] を参照 し て く だ さ い。 CFGBVS ピ ン の設定に よ り 常にバン ク 0 の I/O 電圧サポー ト が決ま り ま す。 7 シ リ ーズ デバ イ ス の場合はバン ク 14 お よ びバン ク 15 が、 UltraScale アーキテ ク チ ャ の場合はバン ク 65 が HR バン ク タ イ プなので、 CFGBVS ピ ン と それ に該当す る CONFIG_VOLTAGE プ ロ パテ ィ に よ り 、 コ ン フ ィ ギ ュ レーシ ョ ン中にサポー ト さ れ る I/O 電圧が決ま り ま す。 デザ イ ンで CONFIG_MODE 設定の互換性を確認する ため、 Report DRC チ ェ ッ ク がバン ク 0、 14、 15 (7 シ リ ーズ)、 65 (UltraScale ア ー キ テ ク チ ャ ) で実行 さ れ ま す。 DRC の メ ッ セー ジ は、 そ のバ ン ク に対す る IOSTANDARD お よ び CONFIG_VOLTAGE 設定に基づいて表示 さ れます。 コ ン フ ィ ギ ュ レーシ ョ ン電圧は、 IBIS モデルを エ ク ス ポー ト す る 際に も 使用 さ れます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • デザ イ ン (current_design) 値 • 1.5、 1.8、 2.5、 ま たは 3.3 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property CONFIG_VOLTAGE {1.5 | 1.8 | 2.5 | 3.3} [current_design] XDC の構文例 # Configure I/O Bank 0 for 1.8V operation set_property CONFIG_VOLTAGE 1.8 [current_design] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 137 第 3 章 : 主な プ ロパテ ィ の説明 影響のある処理 • place_design • report_drc • write_bitstream 関連項目 127 ページの 「CFGBVS」 135 ページの 「CONFIG_MODE」 CONTAIN_ROUTING CONTAIN_ROUTING プ ロ パテ ィ は、 Pblock 内に含 ま れ る 信号の配線を その Pblock で定義 さ れ る エ リ ア内の配線 リ ソ ース に制限す る ために使用 し ます。 こ れに よ り 、 Pblock 内の信号が Pblock 外に配線 さ れ る こ と はな く な る ので、 デ ザ イ ンの再利用性が高 く な り ます。 デフ ォ ル ト では、 Pblock の定義に よ り Pblock に割 り 当て ら れ る ロ ジ ッ ク の配置が Pblock で定義 さ れたエ リ ア内に制 限 さ れます。 こ のプ ロ パテ ィ には、 配線 と 同 じ 効果があ り ます。 CONTAIN_ROUTING は Pblock 専用のプ ロ パテ ィ で、 XDC フ ァ イ ルで create_pblock コ マ ン ド の後に指定す る 必要があ り ます。 ヒ ン ト : CONTAIN_ROUTING は、 階層デザ イ ン フ ロ ーの OOC モジ ュ ールに関連す る すべての Pblock に使用する こ と をお勧め し ます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 階層デザ イ ン』 (UG905) [参照 21] を参照 し て く だ さ い。 Pblock で し か使用 さ れない信号のみが Pblock に含まれます。 た と えば、 Pblock 内に BUFGMUX リ ソ ース がない場合 は、 BUFGMUX か ら のパ ス ま たは BUFGMUX へのパ ス は含め る こ と がで き ません。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • PBlock (get_pblocks) 値 • TRUE : Pblock 内の信号の配線が Pblock 範囲で定義 さ れたエ リ アに含まれます。 • FALSE : Pblock 内に信号の配線は含まれません。 こ れがデフ ォ ル ト です。 構文 Verilog および VHDL 構文 該当な し Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 138 第 3 章 : 主な プ ロパテ ィ の説明 XDC 構文 set_property CONTAIN_ROUTING <TRUE | FALSE> [get_pblocks <pblock_name>] 説明 : • <pblock_name> には、 プ ロ パテ ィ を設定する Pblock 名を指定 し ます。 XDC の例 set_property CONTAIN_ROUTING true [get_pblocks pblock_usbEngine0] set_property CONTAIN_ROUTING true [get_pblocks pblock_usbEngine1] 影響のある処理 • 配線 関連項目 154 ページの 「EXCLUDE_PLACEMENT」 210 ページの 「PBLOCK」 DCI_CASCADE DCI_CASCADE は、 ハ イ パフ ォーマ ン ス (HP) I/O バン ク のグループ内でのマ ス タ ー /ス レーブ関係を定義 し ます。 デ ジ タ ル制御 イ ン ピーダ ン ス (DCI) の基準電圧は、 マ ス タ ーの I/O バン ク か ら ス レーブの I/O バン ク ま でチ ェーン接続 さ れてい ます。 DCI_CASCADE は、 ど の隣接バン ク が DCI カ ス ケー ド 機能を使用す る か を指定す る ので、 基準抵抗器を マ ス タ ー バ ン ク と 共有す る こ と にな り ます。 同 じ I/O バン ク 列にあ る 複数の I/O バン ク が DCI を使用 し ていて、 同 じ VRN/VRP 抵抗値を使用す る 場合、 1 ペアの ピ ンだけ を高精度抵抗器に接続すれば よ い よ う にす る ため、 内部 VRN お よ び VRP ノ ー ド がカ ス ケー ド さ れ ます。 DCI_CASCADE はマ ス タ ー バン ク 、 お よ び こ の機能に関連付け ら れてい る すべての ス レーブ バン ク を識別 し ます。 詳細は、 『7 シ リ ーズ FPGA SelectIO リ ソ ース ユーザー ガ イ ド 』 (UG471) [参照 2] ま たは 『UltraScale アーキ テ ク チ ャ SelectIO リ ソ ース ユーザー ガ イ ド 』 (UG571) [参照 8] を参照 し て く だ さ い。 アーキテ ク チ ャ サポー ト • Kintex®-7 デバ イ ス • Kintex UltraScale デバ イ ス • Virtex®-7 デバ イ ス • Virtex UltraScale デバ イ ス • 大型 タ イ プの Zynq®-7000 All Programmable SoC デバ イ ス 適用可能なオブ ジ ェ ク ト • I/O バン ク (get_iobanks) ° High Performance (HP) バン ク タ イ プ Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 139 第 3 章 : 主な プ ロパテ ィ の説明 値 有効な HP バン ク 番号。 詳細は、 『7 シ リ ーズ FPGA パ ッ ケージ お よ びピ ン配置ユーザー ガ イ ド 』 (UG475) [参照 5] ま たは 『UltraScale お よ び UltraScale+ FPGA のパ ッ ケージお よ びピ ン配置製品仕様ユーザー ガ イ ド 』 (UG575) [参照 11] を参照 し て く だ さ い。 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property DCI_CASCADE {slave_banks} [get_iobanks master_bank] 説明 : • slave_banks は ス レーブ バン ク のバン ク 番号の リ ス ト です。 • master_bank は指定 さ れたマ ス タ ー バン ク のバン ク 番号です。 XDC の構文例 # Designate Bank 14 as a master DCI Cascade bank and Banks 15 and 16 as its slaves set_property DCI_CASCADE {15 16} [get_iobanks 14] 影響のある処理 • I/O プ ラ ン ニ ン グ • place_design • DRC • write_bitstream • report_power DELAY_BYPASS DELAY_BYPASS プ ロ パテ ィ を使用す る と 、 ザ イ リ ン ク ス 7 シ リ ーズ FPGA で BUFIO を介 し て遅延を削減で き ます。 BUFIO には、 BUFR の遅延 と 一致 さ せ る ための内在遅延があ り 、 ド メ イ ン間で ス ムース なデー タ 転送がで き る よ う に な っ てい ます。 7 シ リ ーズ デバ イ ス の場合は、 こ のプ ロ パテ ィ に よ り その遅延はデ ィ ス エーブルにな り ます。 アーキテ ク チ ャ サポー ト 7 シ リ ーズ FPGA 適用可能なオブ ジ ェ ク ト • BUFIO (get_cells) Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 140 第 3 章 : 主な プ ロパテ ィ の説明 値 • TRUE : 遅延バ イ パ ス を イ ネーブルに し ます。 • FALSE : 遅延バ イ パス をデ ィ ス エーブルに し ます(デフ ォ ル ト )。 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property DELAY_BYPASS TRUE [get_ cells <cells>] 説明 : • <cells> は内在遅延をバ イ パ スす る BUFIO セルの リ ス ト です。 XDC の構文例 set_ property -name DELAY_ BYPASS TRUE [get_ cells clk_ bufio] 使用可能な段階 • タ イ ミ ン グ解析 DIFF_TERM 差動終端 (DIFF_TERM) プ ロ パテ ィ は入力お よ び双方向ポー ト の差動 I/O 規格を サポー ト し ます。 ビル ト イ ン さ れた 100 の差動終端を イ ネーブル/デ ィ ス エーブルす る のに使用 し ま す。 詳細は、 『7 シ リ ーズ FPGA SelectIO リ ソ ー ス ユーザー ガ イ ド 』 (UG471) [参照 2] を参照 し て く だ さ い。 DIFF_TERM は、 差動の入力お よ び双方向ポー ト バ ッ フ ァ ーに差動終端を使用す る 必要があ り 、 ま た Vivado ツール がポー ト にオンチ ッ プ終端を追加す る 必要のあ る こ と を示 し ます。 アーキテ ク チ ャ サポー ト 7 シ リ ーズ FPGA 推奨 : UltraScale アーキ テ ク チ ャ デバ イ ス の場合は、 差動終端を イ ネーブルにす る ため、 「DIFF_TERM_ADV」 を使用 す る 必要があ り ます。 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports) ° • 差動入力バ ッ フ ァ ーに接続 さ れた入力ポー ト ま たは双方向ポー ト 次の I/O 規格のいずれか を使用 し てい る エ レ メ ン ト : Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 141 第 3 章 : 主な プ ロパテ ィ の説明 ° LVDS、 LVDS_25、 MINI_LVDS_25 ° PPDS_25 ° RSDS_25 値 • TRUE : 差動終端は イ ネーブルにな り ます。 • FALSE : 差動終端はデ ィ ス エーブルにな り ます(デフ ォ ル ト )。 構文 推奨 : 言語テ ンプ レー ト ま たは 『Vivado Design Suite 7 シ リ ーズ ラ イ ブ ラ リ ガ イ ド 』 (UG953) [参照 25] か ら の イ ン ス タ ン シエーシ ョ ン テ ンプ レー ト を使用 し て、 適切な構文を指定 し て く だ さ い。 Verilog 構文 DIFF_TERM パ ラ メ ー タ ーを ポー ト 宣言の直前に配置 し ます。 (* DIFF_TERM = "TRUE" *) input PORT Verilog の構文例 // Enables differential termination on the specified port (* DIFF_TERM = "TRUE" *) input CLK; VHDL 構文 VHDL 属性は次の よ う に宣言 し て指定 し ます。 attribute DIFF_TERM : string; attribute DIFF_TERM of port_name : signal is "TRUE"; VHDL の構文例 -- Designates differential termination on the specified port attribute DIFF_TERM of CLK : signal is "TRUE"; XDC 構文 set_property DIFF_TERM TRUE [get_ports port_name] 説明 : • set_property DIFF_TERM はポー ト オブジ ェ ク ト に割 り 当て る こ と がで き ます。 • port_name は差動バ ッ フ ァ ーに接続 さ れ る 入力ポー ト ま たは双方向ポー ト です。 XDC の構文例 # Enables differential termination on port named CLK_p set_property DIFF_TERM TRUE [get_ports CLK_p] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 142 第 3 章 : 主な プ ロパテ ィ の説明 影響のある処理 • I/O プ ラ ン ニ ン グ • report_ssn • report_power 関連項目 143 ページの 「DIFF_TERM_ADV」 169 ページの 「IBUF_LOW_PWR」 180 ページの 「IOSTANDARD」 DIFF_TERM_ADV ア ド バン ス差動終端 (DIFF_TERM_ADV) プ ロ パテ ィ は UltraScale アーキ テ ク チ ャ でのみ使用す る も ので、 入力ま たは 双方向ポー ト の、 ビル ト イ ン さ れた 100 の差動終端を イ ネーブル/デ ィ ス エーブルす る ために使用 し ます。 DIFF_TERM_ADV は入力お よ び双方向ポー ト にのみ使用で き 、 ま た適切な VCCO 電圧で し か使用で き ません。 100 の実効差動終端を提供す る には、 I/O バン ク の VCCO は、 HP I/O バン ク の場合は 1.8V に接続 し 、 HR I/O バン ク の場合 は 2.5V に接続す る 必要があ り ます。詳細は、『UltraScale アーキ テ ク チ ャ SelectIO リ ソ ース ユーザー ガ イ ド 』 (UG571) [参照 8] を参照 し て く だ さ い。 ヒ ン ト : 7 シ リ ーズ デザ イ ン を UltraScale アーキ テ ク チ ャ に移行する には、「DIFF_TERM」 プ ロ パテ ィ を使用す る と 適 切な DIFF_TERM_ADV 値に自動的にア ッ プデー ト さ れます。 DIFF_TERM_ADV お よ び DIFF_TERM は、 差動の入力お よ び双方向ポー ト バ ッ フ ァ ーに差動終端を使用す る 必要が あ り 、 ま た Vivado Design Suite がポー ト にオンチ ッ プ終端を追加する 必要のあ る こ と を示 し ます。 アーキテ ク チ ャ サポー ト UltraScale デバ イ ス 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports) ° • 差動入力バ ッ フ ァ ーに接続 さ れた入力ポー ト ま たは双方向ポー ト 次の I/O 規格のいずれか を使用 し てい る オブジ ェ ク ト : ° LVDS、 LVDS_25、 MINI_LVDS_25、 SUB_LVDS、 お よ び SUB_LVDS_25 ° LVPECL ° PPDS_25 ° RSDS_25 ° SLVS_400_25、 お よ び SLVS_400_18 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 143 第 3 章 : 主な プ ロパテ ィ の説明 値 • TERM_100 : オンチ ッ プ差動終端で100 を使用する 。 • TERM_NONE : オンチ ッ プ差動終端を使用 し ません。 (デフ ォ ル ト )。 注記 : UltraScale デバ イ ス には DIFF_TERM プ ロ パテ ィ も 使用で き ます。 ° DIFF_TERM = TRUE の場合、 DIFF_TERM_ADV = TERM_100 にな り ます。 ° DIFF_TERM = FALSE の場合、 DIFF_TERM_ADV = TERM_NONE にな り ます。 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property DIFF_TERM_ADV TERM_100 [get_ports port_name] 説明 : • set_property DIFF_TERM_ADV は入力ま たは双方向ポー ト に割 り 当て る こ と がで き ます。 • port_name は差動バ ッ フ ァ ーに接続 さ れ る 入力ポー ト ま たは双方向ポー ト です。 XDC の構文例 # Enables differential termination on port named CLK_p set_property DIFF_TERM_ADV TERM_100 [get_ports CLK_p] 影響のある処理 • I/O プ ラ ン ニ ン グ • report_ssn • report_power 関連項目 141 ページの 「DIFF_TERM」 180 ページの 「IOSTANDARD」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 144 第 3 章 : 主な プ ロパテ ィ の説明 DIRECT_ENABLE 入力ポー ト ま たはその他の信号に DIRECT_ENABLE を指定す る と 、 複数の イ ネーブルがあ る 可能性があ る 場合や合 成ツールで フ リ ッ プ フ ロ ッ プの イ ネーブル ラ イ ンが必ず使用 さ れ る よ う に し たい場合、 それ ら の信号が フ リ ッ プ フ ロ ッ プの イ ネーブル ラ イ ンに直接送 ら れ る よ う にな り ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト DIRECT_ENABLE 属性はポー ト ま たは信号に設定で き ます。 値 • TRUE (ま たは YES) : フ リ ッ プ フ ロ ッ プの イ ネーブル ラ イ ン を使用 し ます。 • FALSE (ま たは NO) : 合成ツールに フ リ ッ プ フ ロ ッ プの イ ネーブル ラ イ ン を使用する よ う に伝え ません。 こ れが デフ ォ ル ト です。 構文 Verilog 例 (* direct_enable = “yes” *) input ena3; VHDL コ ー ド 例 entity test is port( in1 : std_logic_vector (8 downto 0); clk : std_logic; ena1, ena2, ena3 : in std_logic out1 : std_logic_vector(8 downto 0)); attribute direct_enable : string; attribute direct_enable of ena3: signal is "yes"; end test; XDC 構文 該当な し 影響のある処理 • 合成 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 145 第 3 章 : 主な プ ロパテ ィ の説明 関連項目 146 ページの 「DIRECT_RESET」 157 ページの 「GATED_CLOCK」 DIRECT_RESET 入力ポー ト ま たはその他の信号に DIRECT_RESET を 指定す る と 、 複数の リ セ ッ ト が あ る 可能性が あ る 場合や合成 ツールで フ リ ッ プ フ ロ ッ プの リ セ ッ ト ラ イ ンが必ず使用 さ れ る よ う に し たい場合、 それ ら の信号が フ リ ッ プ フ ロ ッ プの リ セ ッ ト ラ イ ンに直接送 ら れ る よ う にな り ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト DIRECT_RESET 属性はポー ト ま たは信号に設定で き ます。 値 • TRUE (ま たは YES) : 合成ツールに フ リ ッ プ フ ロ ッ プの RESET ラ イ ン を使用する よ う に伝え ます。 • FALSE (ま たは NO) : 合成ツールに フ リ ッ プ フ ロ ッ プの RESET ラ イ ン を使用す る よ う に伝え ません。 こ れがデ フ ォ ル ト です。 構文 Verilog 例 (* direct_reset = "yes" *) input rst3; VHDL コ ー ド 例 entity test is port( in1 : std_logic_vector (8 downto 0); clk : std_logic; rst1, rst2, rst3 : in std_logic out1 : std_logic_vector(8 downto 0)); attribute direct_reset : string; attribute direct_reset of rst3: signal is “yes”; end test; XDC 構文 該当な し Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 146 第 3 章 : 主な プ ロパテ ィ の説明 影響のある処理 • 合成 関連項目 145 ページの 「DIRECT_ENABLE」 DONT_TOUCH DONT_TOUCH は、 ユーザー階層ま たは イ ン ス タ ン シエー ト 済み コ ン ポーネ ン ト を最適化 し ない よ う に指定す る も の で、 こ れに よ り 最適化がバ ウ ン ダ リ を越えて実行 さ れない よ う にな り ます。 こ れで フ ロ アプ ラ ン、 解析、 デバ ッ グが し やす く な り ますが、 最適化が抑止 さ れ る ので、 デザ イ ンが大 き く 、 遅 く な っ て し ま う こ と があ り ます。 DONT_TOUCH プ ロ パテ ィ は KEEP ま たは KEEP_HIERARCHY プ ロ パテ ィ と 同 じ よ う に機能 し ますが、 KEEP お よ び KEEP_HIERARCHY と は異な り 配置配線に フ ォ ワ ー ド ア ノ テー ト さ れ る ので、 イ ン プ リ メ ン テーシ ョ ン中に ロ ジ ッ ク 最適化で削除 さ れ る こ と はあ り ません。 推奨 : DONT_TOUCH が適用 さ れてい る モジ ュ ール イ ン ス タ ン ス の出力すべてに レ ジ ス タ を付け ます。 こ の属性は、 合成前に適用す る と 最 も 効果的です。 注記 : モ ジ ュ ール ま たはエ ン テ ィ テ ィ のポー ト には設定で き ま せん。 特定のポー ト を 保持す る 必要が あ る 場合は、 flatten_hierarchy = “none” に設定す る か、 モジ ュ ールま たはエン テ ィ テ ィ 自体に DONT_TOUCH を設定 し ます。 推奨 : こ の属性は RTL で設定す る こ と をお勧め し ます。 XDC フ ァ イ ルが読み込まれ る 前に、 保持す る 必要のあ る 信 号が最適化で削除 さ れて し ま う こ と があ り ます。 こ の属性を RTL で設定 し ておけば、 必ず適用 さ れます。 DONT_TOUCH、 KEEP、 ま たは KEEP_HIERARCHY を使用す る 場合は注意が必要です。 ほかの属性が DONT_TOUCH 属性 と 競合す る 場合は、 DONT_TOUCH 属性が優先 さ れます。 ネ ッ ト に設定 さ れた DONT_TOUCH はそのネ ッ ト が保持 さ れ る こ と のみを確約 し 、 ド ラ イ バーや駆動 さ れてい る ロ ジ ッ ク は変更す る 可能性があ り ます。 階層ネ ッ ト の場合は、 DONT_TOUCH が設定 さ れてい る 部分のみが保持 さ れ る ので、 保持す る 必要のな る セグ メ ン ト にはすべて DONT_TOUCH を設定す る 必要があ り ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • こ の属性は信号、 モジ ュ ール、 エン テ ィ テ ィ 、 コ ン ポーネ ン ト に設定で き ます。 ° セル (get_cells) ° ネ ッ ト (get_nets) Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 147 第 3 章 : 主な プ ロパテ ィ の説明 値 • FALSE : 階層を越え て最適化 さ れます。 こ れがデフ ォ ル ト 設定です。 • TRUE : 最適化が階層バ ウ ン ダ リ を越えない よ う にな り 、 階層が保持 さ れます。 イ ン ス タ ン シエー ト さ れた コ ン ポーネ ン ト ま たはネ ッ ト が最適化に よ り 削除 さ れて し ま わない よ う 、 保持 さ れます。 構文 Verilog 構文 Verilog 属性をユーザーの階層 イ ン ス タ ン シエーシ ョ ンの直前に配置 し ます。 (* DONT_TOUCH = "{TRUE|FALSE}" *) Verilog の構文例 // Preserve the hierarchy of instance CLK1_rst_sync (* DONT_TOUCH = "TRUE" *) reset_sync #( .STAGES(5) ) CLK1_rst_sync ( .RST_IN(RST | ~LOCKED), .CLK(clk1_100mhz), .RST_OUT(rst_clk1) ); ワ イ ヤの例 (* dont_touch = "true" *) wire sig1; assign sig1 = in1 & in2; assign out1 = sig1 & in2; モ ジ ュ ールの例 (* DONT_TOUCH = "true|yes" *) module example_dt_ver (clk, In1, In2, out1); イ ン ス タ ン スの例 (* DONT_TOUCH = "true|yes" *) example_dt_ver U0 (.clk(clk), .in1(a), .in2(b), out1(c)); VHDL 構文 VHDL 属性は次の よ う に宣言 し ます。 attribute DONT_TOUCH : string; VHDL 属性は次の よ う に指定 し ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 148 第 3 章 : 主な プ ロパテ ィ の説明 attribute DONT_TOUCH of name: label is "{TRUE|FALSE}"; 説明 : • name はユーザー定義の イ ン ス タ ン ス の名前です。 VHDL の構文例 attribute DONT_TOUCH : string; -- Preserve the hierarchy of instance CLK1_rst_sync attribute DONT_TOUCH of CLK1_rst_sync: label is "TRUE"; … CLK1_rst_sync : reset_sync PORT MAP ( RST_IN => RST_LOCKED, CLK => clk1_100mhz, RST_OUT => rst_clk1 ); XDC 構文 set_property DONT_TOUCH {TRUE|FALSE} [get_cells <instance_name>] set_property DONT_TOUCH {TRUE|FALSE} [get_nets <net_name>] 説明 : • instance_name は最下位セルま たは階層セルにな り ます。 • net_name は階層ネ ッ ト の名前にな り ます。 XDC の構文例 # Preserve the hierarchy of instance CLK1_rst_sync set_property DONT_TOUCH TRUE [get_cells CLK1_rst_sync] # Preserve all segments of the hierarchical net named by the Tcl variables set_property DONT_TOUCH [get_nets -segments $hier_net] 影響のある処理 • synth_design • opt_design • phys_opt_design • floorplanning 関連項目 185 ページの 「KEEP」 188 ページの 「KEEP_HIERARCHY」 202 ページの 「MARK_DEBUG」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 149 第 3 章 : 主な プ ロパテ ィ の説明 DRIVE プ ロ グ ラ マブル出力駆動電流をサポー ト す る I/O 規格で コ ン フ ィ ギ ュ レーシ ョ ン さ れた出力バ ッ フ ァ ーに対 し 、 出力 バ ッ フ ァ ーの駆動電流を mA で指定 し ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports) ° 出力バ ッ フ ァ ーに接続 さ れた出力ま たは双方向ポー ト 値 整数値 : • 2 • 4 • 6 • 8 • 12 (デフ ォ ル ト ) • 16 • 24 (UltraScale アーキテ ク チ ャ には こ の値は使用で き ません) 構文 Verilog 構文 推論 さ れて イ ン ス タ ン シエー ト さ れた出力バ ッ フ ァ ーの場合、 適切な Verilog 属性構文を最上位出力ポー ト 宣言の前 に配置 し ます。 (* DRIVE = "{2|4|6|8|12|16|24}" *) Verilog の構文例 // Sets the drive strength on the STATUS output port to 2 mA (* DRIVE = "2" *) output STATUS, VHDL 構文 推論 さ れて イ ン ス タ ン シエー ト さ れた出力バ ッ フ ァ ーの場合、適切な VHDL 属性構文を最上位出力ポー ト 宣言の前に 配置 し ます。 VHDL 属性は次の よ う に宣言 し て指定 し ます。 attribute DRIVE : integer; Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 150 第 3 章 : 主な プ ロパテ ィ の説明 attribute DRIVE of port_name : signal is value; 説明 : • port_name は最上位出力ポー ト です。 VHDL の構文例 STATUS : out std_logic; attribute DRIVE : integer; -- Sets the drive strength on the STATUS output port to 2 mA attribute DRIVE of STATUS : signal is 2; XDC 構文 set_property DRIVE value [get_ports port_name] 説明 : • port_name は出力ま たは双方向ポー ト です。 XDC の構文例 # Sets the drive strength of the port STATUS to 2 mA set_property DRIVE 2 [get_ports STATUS] 影響のある処理 • I/O プ ラ ン ニ ン グ • ノ イ ズ レ ポー ト • 消費電力レ ポー ト 関連項目 『Vivado Design Suite 7 シ リ ーズ FPGA ラ イ ブ ラ リ ガ イ ド 』 (UG953) [参照 25] ま たは 『UltraScale アーキ テ ク チ ャ ラ イ ブ ラ リ ガ イ ド 』 (UG974) [参照 26] にあ る 次のデザ イ ン エ レ メ ン ト を参照 し て く だ さ い。 • OBUF • OBUFT • IOBUF Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 151 第 3 章 : 主な プ ロパテ ィ の説明 EDIF_EXTRA_SEARCH_PATHS こ のプ ロ パテ ィ を使用 し 、 Vivado Design Suite の現在の フ ァ イ ルセ ッ ト で検索パ ス を定義 し 、 デザ イ ン で参照 さ れ る EDIF フ ァ イ ルが検索 さ れ る よ う に し ます。 ヒ ン ト : Vivado Design Suite でブ ラ ッ ク ボ ッ ク ス に関連す る EDIF ネ ッ ト リ ス ト が検出で き なか っ た場合は、 イ ンプ リ メ ン テーシ ョ ンに次の よ う なエ ラ ー メ ッ セージが表示 さ れます。 こ れは、 EDIF_EXTRA_SEARCH_PATHS: を定義す る と 修正で き ます。 “ERROR: [Opt 31-30] Blackbox module11 is driving pin I of primitive cell OBUF_inst.The blackbox cannot be found in the existing library.” アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • ソ ース フ ァ イ ルセ ッ ト (current_fileset) 値 • Pathname : 現在の フ ァ イ ルセ ッ ト で使用 さ れ る EDIF フ ァ イ ルを検出で き る よ う に Vivado ツールの検索パ ス を 指定 し ます。 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property EDIF_EXTRA_SEARCH_PATHS <path_to_edif_file> [current_fileset] XDC の構文例 # Specifies search path for EDIF files set_property EDIF_EXTRA_SEARCH_PATHS C:/Data/Design1/EDIF [current_fileset] 影響のある処理 • link_design • opt_design Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 152 第 3 章 : 主な プ ロパテ ィ の説明 EQUALIZATION EQUALIZATION は伝送 ラ イ ン での周波数に依存 し た減衰を な く すめ、 差動レ シーバーで使用で き 、 特定の I/O 規格 を イ ンプ リ メ ン ト し ます。 リ ニア レ シーバーの EQUALIZATION は レ シーバーで AC ゲ イ ン を提供 し 、伝送 ラ イ ン での高周波 ロ ス を補正 し ます。 ヒ ン ト : 全体的なシ グナル イ ン テ グ リ テ ィ を向上 さ せ る ため、 レ シーバーでの イ コ ラ イ ゼーシ ョ ンは、 ト ラ ン ス ミ ッ タ ーでの 「PRE_EMPHASIS」 と 組み合わせる こ と がで き ます。 アーキテ ク チ ャ サポー ト UltraScale デバ イ ス 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports) 値 重要 : EQUALIZATION の値は特にキ ャ リ ブ レーシ ョ ン さ れてい ません。 デザ イ ン で使用 さ れてい る 周波数 と 伝送 ラ イ ンに合わせたベス ト な設定を決め る には、 シ ミ ュ レーシ ョ ン を実行す る こ と を推奨 し ます。 場合に よ っ ては、 イ コ ラ イ ゼーシ ョ ンの レベルが低いほ う が高い場合 よ り も 良い結果を生む こ と があ り ます。 イ コ ラ イ ゼーシ ョ ンの レベル を上げ過ぎ る と 、 信号の質を改善す る よ り も 悪化 さ せ る こ と があ り ます。 EQUALIZATION 属性に使用で き る 値は次の と お り です。 • • HP I/O バン ク ° EQ_LEVEL0 ° EQ_LEVEL1 ° EQ_LEVEL2 ° EQ_LEVEL3 ° EQ_LEVEL4 ° EQ_NONE (デフ ォ ル ト ) HR I/O バン ク ° EQ_LEVEL0、 EQ_LEVEL0_DC_BIAS ° EQ_LEVEL1、 EQ_LEVEL1_DC_BIAS ° EQ_LEVEL2、 EQ_LEVEL2_DC_BIAS ° EQ_LEVEL3、 EQ_LEVEL3_DC_BIAS ° EQ_LEVEL4、 EQ_LEVEL4_DC_BIAS ° EQ_NONE (デフ ォ ル ト ) Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 153 第 3 章 : 主な プ ロパテ ィ の説明 構文 Verilog および VHDL 構文 該当な し XDC 構文 XDC フ ァ イ ルでは EQUALIZATION 属性を次の よ う な構文で使用 し ます。 set_property EQUALIZATION value [get_ports port_name] 説明 : • set_property EQUALIZATION は入力バ ッ フ ァ ーでの リ ニ ア イ コ ラ イ ゼーシ ョ ン を イ ネーブルに し ます。 • <Value> には指定のポー ト に対 し サポー ト さ れてい る EQUALIZATION 値の 1 つが入 り ます。 • port_name は差動バ ッ フ ァ ーに接続 さ れ る 入力ポー ト ま たは双方向ポー ト です。 関連項目 201 ページの 「LVDS_PRE_EMPHASIS」 218 ページの 「PRE_EMPHASIS」 EXCLUDE_PLACEMENT EXCLUDE_PLACEMENT は、 Pblock で定義 さ れたエ リ ア内のデバ イ ス リ ソ ース を Pblock に含まれ る ロ ジ ッ ク にのみ 使用す る こ と を示すためのプ ロ パテ ィ です。 デフ ォ ル ト では、 Vivado 配置ツールで Pblock に割 り 当て ら れない ロ ジ ッ ク を Pblock で予約 さ れた リ ソ ース範囲内に 配置で き ます。 こ のプ ロ パテ ィ を使用す る と それがで き な く な り 、 Pblock 用に ロ ジ ッ ク リ ソ ース が予約 さ れます。 ヒ ン ト : こ れは Pblock の ロ ジ ッ ク リ ソ ー ス を限定す る だけで、 外部の ロ ジ ッ ク では、 Pblock で定義 さ れたエ リ ア内 の配線 リ ソ ース が ま だ使用で き ます。 アーキテ ク チ ャ サポー ト すべてのデバ イ ス 適用可能なオブ ジ ェ ク ト • Pblock (get_pblocks) 値 • TRUE : Pblock 内のデバ イ ス ロ ジ ッ ク リ ソ ース を Pblock に割 り 当て ら れた ロ ジ ッ ク で使用 さ れ る よ う に予約 し 、 それ以外の外部 ロ ジ ッ ク には配置 さ れない よ う に し ます。 • FALSE : Pblock 内で ロ ジ ッ ク リ ソ ース は予約 さ れません。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 154 第 3 章 : 主な プ ロパテ ィ の説明 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property EXCLUDE_PLACEMENT TRUE [get_pblocks test] 影響のある処理 • フ ロ アプ ラ ン • 配置 関連項目 138 ページの 「CONTAIN_ROUTING」 210 ページの 「PBLOCK」 FSM_ENCODING FSM_ENCODING は、 合成中の ス テー ト マシ ンのエン コ ー ド 方法を指定 し ます。 デフ ォ ル ト では、 デザ イ ンに対 し ベス ト な ソ リ ュ ーシ ョ ン を決め る 内部アルゴ リ ズ ムに基づいて、 Vivado 合成ツール が ス テー ト マシ ン のエ ン コ ーデ ィ ン グ プ ロ ト コ ルを選択 し ます。 し か し 、 FSM_ENCODING プ ロ パテ ィ を使用す る 場合は、 ユーザーが ス テー ト マシ ンのエン コ ーデ ィ ン グ を指定する こ と がで き ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • ス テー ト マシ ン レ ジ ス タ 値 • AUTO : FSM_ENCODING を指定 し ない場合、 こ れがデフ ォ ル ト です。 Vivado 合成ツールで最適な ス テー ト マシ ン エン コ ーデ ィ ン グ方式が決定 さ れ る よ う にな り ます。同 じ デザ イ ン で も ス テー ト マシ ン レ ジ ス タ が異な る と 、 別のエン コ ーデ ィ ン グ ス タ イ ルが使用 さ れ る こ と があ り ます。 • ONE_HOT • SEQUENTIAL • JOHNSON • GRAY Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 155 第 3 章 : 主な プ ロパテ ィ の説明 • NONE : Vivado 合成ツール内で指定 し た ス テー ト マシ ン レ ジ ス タ の ス テー ト マシ ン エン コ ーデ ィ ン グがデ ィ ス エーブルにな り ます。 こ の場合、 ス テー ト マシ ンは ロ ジ ッ ク と し て合成 さ れます。 Verilog 構文 (* fsm_encoding = "one_hot" *) reg [7:0] my_state; VHDL 構文 type count_state is (zero, one, two, three, four, five, six, seven); signal my_state : count_state; attribute fsm_encoding : string; attribute fsm_encoding of my_state : signal is "sequential"; XDC 構文 該当な し 影響のある処理 • 合成 関連項目 156 ページの 「FSM_SAFE_STATE」 FSM_SAFE_STATE こ の属性は RTL と XDC の両方で設定で き ます。 Vivado 合成は、 「FSM_ENCODING」 プ ロ パテ ィ ま たは Vivado 合成の -fsm_extraction コ マ ン ド ラ イ ン オプシ ョ ン で指 定 さ れ る さ ま ざ ま な コ ン フ ィ ギ ュ レーシ ョ ンで、 有限ス テー ト マシ ン (FSM) の抽出をサポー ト し てい ます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) [参照 18] を参照 し て く だ さ い。 し か し 、 ス テー ト マシ ンは、 デザ イ ンがエ ラ ーにな っ て し ま う 無効ス テー ト 、 ま たは到達不可能な ス テー ト に遷移す る こ と があ り ます。 FSM_SAFE_STATE 属性は、 ス テー ト マシ ンが不正な ス テー ト にな っ た と き に次の ク ロ ッ ク サ イ ク ルで既知の ス テー ト にす る ロ ジ ッ ク を、 ス テー ト マ シ ン に挿入 し ま す。 FSM が無効な ス テー ト に遷移 し た場合、 FSM_SAFE_STATE プ ロ パテ ィ で FSM が Vivado 合成で合成 さ れ る と き に使用 さ れ る 回復ス テー ト が定義 さ れます。 ヒ ン ト : こ のプ ロ パテ ィ は FSM ス テー ト を セーフ リ カバ リ にす る のですが、 合成結果の質に も 影響す る 可能性があ り ます。 通常は、 エ リ アが大 き く な っ て し ま い。 パフ ォーマ ン ス が落ち る こ と があ り ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 156 第 3 章 : 主な プ ロパテ ィ の説明 適用可能なオブ ジ ェ ク ト • ス テー ト マシ ン レ ジ ス タ 値 • reset_state : Vivado 合成で指定 さ れてい る よ う に RESET ス テー ト ま で ス テー ト マシ ン を再実行 し ます。 • power_on_state : Vivado 合成で指定 さ れてい る よ う に POWER_ON ス テー ト ま で ス テー ト マシ ン を再実行 し ます。 • default_state : 1 ビ ッ ト /フ リ ッ プの Hamming-2 エン コ ー ド 検出を使用 し て、 ス テー ト マシ ン で定義 さ れた よ う に、 ス テー ト マシ ン をデフ ォ ル ト ス テー ト に、 その ス テー ト に到達で き ない場合で も 戻 し ます。 • auto_safe_state : Hamming-3 エン コ ーデ ィ ン グ を暗示 し ます。 構文 Verilog 例 (* fsm_safe_state = "reset_state" *) reg [2:0] state; (* fsm_safe_state = "reset_state" *) reg [7:0] my_state; VHDL コ ー ド 例 type count_state is (zero, one, two, three, four, five, six, seven); signal my_state : count_state; attribute fsm_safe_state : string; attribute fsm_safe_state of my_state : signal is "power_on_state"; XDC の例 set_property fsm_safe_state reset_state [get_cells state_reg*] 影響のある処理 • 合成 関連項目 155 ページの 「FSM_ENCODING」 GATED_CLOCK GATED_CLOCK プ ロ パテ ィ を使用す る と 、 Vivado 合成でゲーテ ッ ド ク ロ ッ ク の変換が実行で き る よ う にな り ます。 ク ロ ッ ク ゲーテ ィ ン グ ロ ジ ッ ク を変換 し て、 フ リ ッ プ フ ロ ッ プ イ ネーブル ピ ン を使用可能な場合は使用 し て く だ さ い。 こ の最適化に よ り ロ ジ ッ ク が削除 さ れ、 ネ ッ ト リ ス ト が簡略化 さ れます。 こ の RTL 属性ではゲーテ ッ ド ロ ジ ッ ク の ど の信号が ク ロ ッ ク か を指定 し ます。 こ の属性は、 ク ロ ッ ク 信号ま たは ク ロ ッ ク ポー ト に設定で き ます。 RTL でのみ設定可能です。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 157 第 3 章 : 主な プ ロパテ ィ の説明 注記 : ま た、 Vivado 合成ツールでオプシ ョ ン を使用 し て、 変換が実行 さ れ る よ う 指定する こ と も で き ます。 synth_design -gated_clock_conversion アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • ク ロ ッ ク 入力ポー ト • ク ロ ッ ク 信号 値 • FALSE : ゲーテ ッ ド ク ロ ッ ク の変換をデ ィ ス エーブルに し ます。 • TRUE : GATED_CLOCK 属性が RTL コ ー ド で設定 さ れてい る 場合に、ゲーテ ッ ド ク ロ ッ ク の変換を実行 し ます。 こ の設定では、 結果を よ り 制御で き ます。 • AUTO : 次のいずれかの条件が満た さ れ る 場合に、 ゲーテ ッ ド ク ロ ッ ク の変換を実行 し ます。 ° GATED_CLOCK プ ロ パテ ィ が TRUE に設定 さ れてい る 。 ° Vivado 合成でゲー ト が検出 さ れ、 有効な ク ロ ッ ク 制約セ ッ ト があ る 。 こ の設定では、 ツールで自動的に判断 さ れます。 構文 Verilog 例 (* gated_clock = "true" *) input clk; VHDL コ ー ド 例 entity test is port ( in1, in2 : in std_logic_vector(9 downto 0); en : in std_logic; clk : in std_logic; out1 : out std_logic_vector( 9 downto 0)); attribute gated_clock : string; attribute gated_clock of clk : signal is "true"; end test; XDC の例 該当な し 影響のある処理 • 合成 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 158 第 3 章 : 主な プ ロパテ ィ の説明 GENERATE_SYNTH_CHECKPOINT デフ ォ ル ト では、 Vivado Design Suite は、 ア ウ ト オブ コ ン テ キ ス ト (OOC) デザ イ ン フ ロ ーを使用 し て、 Vivado IP カ タ ロ グか ら の IP コ アお よ び Vivado IP イ ン テ グ レー タ ーか ら のブ ロ ッ ク デザ イ ン を合成 し ます。OOC フ ロ ーでは、合 成結果をデザ イ ン チ ェ ッ ク ポ イ ン ト (DCP) フ ァ イ ルに保存で き る ので、 デザ イ ン サ イ ク ル時間を短縮 し 、 デザ イ ン の反復作業を省 く こ と がで き ます。 GENERATE_SYNTH_CHECKPOINT プ ロ パテ ィ は、 合成後のチ ェ ッ ク ポ イ ン ト を 生成す る と き に、 出力フ ァ イ ルを関連 IP フ ァ イ ル (XCI) 用にす る か、 ブ ロ ッ ク デザ イ ン (BD) フ ァ イ ル用にす る か を 設定 し ま す。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : IP を使用 し た設計』 (UG896) [参照 16] の こ のセ ク シ ョ ン、 ま たは 『Vivado Design Suite ユーザー ガ イ ド : IP イ ン テ グ レー タ ーを使用 し た IP サブシ ス テ ムの設計』 (UG994) [参照 27] の こ のセ ク シ ョ ン を参照 し て く だ さ い。 Vivado Design Suite は自動的に合成 さ れたデザ イ ン チ ェ ッ ク ポ イ ン ト フ ァ イ ル (DCP) を生成 し ます。 こ れは、 IP ま た はブ ロ ッ ク デザ イ ンの出力フ ァ イ ルを生成する と き に、 ア ウ ト オブ コ ン テ キ ス ト (OOC) デザ イ ン フ ロ ーをサポー ト す る ために必要な フ ァ イ ルです。 合成 さ れたデザ イ ン が開 き 、 すべての OOC チ ェ ッ ク ポ イ ン ト が統合 さ れ る ま で、 OOC モジ ュ ールは最上位デザ イ ンではブ ラ ッ ク ボ ッ ク ス と し て表示 さ れます。 重要 : Vivado イ ンプ リ メ ン テーシ ョ ンでは、 IP お よ び BD の DCP か ら ネ ッ ト リ ス ト を抽出 し て、 ブ ラ ッ ク ボ ッ ク ス が解決 さ れます。 含まれてい る IP ま たは BD の出力フ ァ イ ルを生成す る と き 、合成デザ イ ン チ ェ ッ ク ポ イ ン ト (DCP) の作成な ど、OOC フ ロ ーを使用す る か ど う か、 ま たは IP を最上位デザ イ ン の一部 と し て グ ロ ーバルに合成す る か決め る こ と がで き ま す。 OOC フ ロ ーをデ ィ ス エーブルに し 、 指定 さ れた XCI ま たは BD フ ァ イ ルの合成 さ れた DCP 出力フ ァ イ ルを生成 し な い よ う にす る には、 GENERATE_SYNTH_CHECKPOINT プ ロ パテ ィ を FALSE ま たは 0 に設定 し ます。 こ のプ ロ パテ ィ は、 何 ら かの理由で IP が ロ ッ ク さ れてい る 場合のみ、 読み出 し 専用にな り ます。 こ の場合は、 Vivado IDE で [Tools] → [Report IP Status] を ク リ ッ ク する か、 report_ip_status と い う Tcl コ マ ン ド を実行 し て、 IP がなぜ ロ ッ ク さ れてい る のか を確認 し ます。 DCP は、 Vivado IP カ タ ロ グの最新バージ ョ ンに IP を ア ッ プグ レー ド し てか ら でな い と 、 生成で き ません。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : IP を使用 し た設計』 (UG896) [参照 16] の こ の セ ク シ ョ ン を参照 し て く だ さ い。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • IP フ ァ イ ル (XCI) ま たはブ ロ ッ ク デザ イ ン フ ァ イ ル (BD) • (get_files) 値 • TRUE : OOC デザ イ ン フ ロ ーを イ ネーブルにす る ため、 IP ま たはブ ロ ッ ク デザ イ ンの出力フ ァ イ ルの一部 と し て、 合成デザ イ ン チ ェ ッ ク ポ イ ン ト (DCP) を生成 し ます(デフ ォ ル ト )。 • FALSE : 合成 DCP を生成せず、 OOC フ ロ ーをデ ィ ス エーブルに し ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 159 第 3 章 : 主な プ ロパテ ィ の説明 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property GENERATE_SYNTH_CHECKPOINT {TRUE | FALSE} [get_files <filename>] 説明 : • <filename> は IP (XCI) ま たはブ ロ ッ ク デザ イ ン (BD) の フ ァ イ ル名です。 XDC の構文例 set_property GENERATE_SYNTH_CHECKPOINT false [get_files char_fifo.xci] ヒ ン ト : XCI ま たは BD 以外の フ ァ イ ルで、 オブジ ェ ク ト に GENERATE_SYNTH_CHECKPOINT を割 り 当てた り 、 ク エ リ ー し よ う と す る と 、 警告が表示 さ れます。 影響のある処理 • 合成 • イ ンプ リ メ ン テーシ ョ ン H_SET および HU_SET HDL ソ ース フ ァ イ ルで定義 さ れてい る よ う に、 デザ イ ンの階層に基づいて ま と め ら れた ロ ジ ッ ク エ レ メ ン ト の集合 体が階層セ ッ ト です。 H_SET、 HU_SET、 U_SET は HDL デザ イ ン ソ ース フ ァ イ ル内の属性で、 合成 さ れたデザ イ ン や イ ン プ リ メ ン ト さ れたデザ イ ンには表れません。 こ れ ら は、 RPM (Relatively Placed Macro) を RTL デザ イ ン で定義 す る と き に使用 さ れます。 こ れ ら のプ ロ パテ ィ の使用お よ び RPM の定義については、 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 19] を参照 し て く だ さ い。 デザ イ ンの階層にあ る ロ ジ ッ ク セルに RLOC プ ロ パテ ィ が設定 さ れてい る と 、 H_SET は暗示的に使用 さ れます。 あ る 階層ブ ロ ッ ク 内の ロ ジ ッ ク エ レ メ ン ト で、RLOC プ ロ パテ ィ が設定 さ れてい る も のは、同 じ 階層セ ッ ト (H_SET) に 自動的に割 り 当て ら れます。 モ ジ ュ ールの イ ン ス タ ン ス 名に基づい て、 各階層モ ジ ュ ールに H_SET プ ロ パテ ィ が割 り 当て ら れ ま す。 各階層モ ジ ュ ールに H_SET 名は 1 つ し かない場合があ り 、 ま たその階層内のすべての ロ ジ ッ ク エ レ メ ン ト は、 その H_SET の エ レ メ ン ト にな り ます。 注記 : HU_SET ま たは U_SET が定義 さ れていないが、 RLOC が定義 さ れてい る 場合は、 H_SET のみが定義 さ れます。 ま た、 デザ イ ン の階層に依存 し ない ユーザー定義階層セ ッ ト (HU_SET) ま たはユーザー定義セ ッ ト (U_SET) を手動 で作成す る こ と がで き ます。 1 つの階層モジ ュ ールに対 し 複数の HU_SET 名を定義 し 、特定階層の イ ン ス タ ン ス を特定 HU_SET に割 り 当て る こ と がで き ます。 こ れで、 1 つの階層モジ ュ ールの ロ ジ ッ ク エ レ メ ン ト を複数の HU_SET に分け る こ と がで き ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 160 第 3 章 : 主な プ ロパテ ィ の説明 重要 : H_SET ま たは HU_SET を使用 し てい る 場合、 合成 さ れたデザ イ ンで RPM の階層を保持する には、 Vivado 合成 で KEEP_HIERARCHY プ ロ パテ ィ も 必要にな り ます。 RTL ソ ー ス フ ァ イ ルに RLOC も あ る 場合は、 H_SET、 HU_SET、 U_SET プ ロ パテ ィ は、 合成後ネ ッ ト リ ス ト でセル に対す る 読み出 し 専用の RPM プ ロ パテ ィ に変換 さ れます。 Vivado Design Suite のテ キ ス ト エデ ィ タ ーで RTL ソ ース フ ァ イ ルを開 く と 、 HU_SET お よ び U_SET が表示 さ れますが、 セル オブジ ェ ク ト の [Properties] ビ ュ ーでは RPM プ ロ パテ ィ が表示 さ れます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト 次のデザ イ ン エ レ メ ン ト 、 ま たはそのカ テ ゴ リ ーで HU_SET は使用す る こ と がで き ます。 特定デザ イ ン エ レ メ ン ト の詳細については、 『Vivado Design Suite 7 シ リ ーズ FPGA ラ イ ブ ラ リ ガ イ ド 』 (UG953) [参照 25] ま たは 『UltraScale アーキ テ ク チ ャ ラ イ ブ ラ リ ガ イ ド 』 (UG974) [参照 26] を参照 し て く だ さ い。 • レジス タ • LUT • マク ロ インスタンス • RAMS • RAMD • RAMB18/FIFO18 • RAMB36/FIFO36 • DSP48 値 • <NAME> : HU_SET の名前 構文 Verilog 構文 こ れは、 合成後ネ ッ ト リ ス ト で RPM を定義す る 階層ブ ロ ッ ク のセ ッ ト の内容を定義す る ため、 RLOC プ ロ パテ ィ と 組み合わせた Verilog 構文です。 Verilog 属性は ロ ジ ッ ク エ レ メ ン ト の イ ン ス タ ン シエーシ ョ ン直前に配置 し ます。 (* RLOC = "X0Y0", HU_SET = "h0" *) FD sr0 (.C(clk), .D(sr_1n), .Q(sr_0)); Verilog 例 こ れは、モジ ュ ールでのシ フ ト レ ジ ス タ フ リ ッ プ フ ロ ッ プの RLOC お よ び HU_SET プ ロ パテ ィ を定義する Verilog モ ジ ュ ールです。 module ffs ( input clk, input d, output q ); Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 161 第 3 章 : 主な プ ロパテ ィ の説明 wire wire wire wire wire wire wire wire sr_0, sr_1, sr_2, sr_3, sr_4, sr_5, sr_6, sr_7, wire inr, inrn, outr; inv inv inv inv inv inv inv inv inv (sr_0, sr_0n); (sr_1, sr_1n); (sr_2, sr_2n); (sr_3, sr_3n); (sr_4, sr_4n); (sr_5, sr_5n); (sr_6, sr_6n); (sr_7, sr_7n); (inr, inrn); (* (* (* (* (* (* (* (* (* FD i0 i1 i2 i3 i4 i5 i6 i7 i8 sr_0n; sr_1n; sr_2n; sr_3n; sr_4n; sr_5n; sr_6n; sr_7n; RLOC = "X0Y0", HU_SET = "h0" *) FD sr0 RLOC = "X0Y0", HU_SET = "h0" *) FD sr1 RLOC = "X0Y1", HU_SET = "h0" *) FD sr2 RLOC = "X0Y1", HU_SET = "h0" *) FD sr3 RLOC = "X0Y0", HU_SET = "h1" *) FD sr4 RLOC = "X0Y0", HU_SET = "h1" *) FD sr5 RLOC = "X0Y1", HU_SET = "h1" *) FD sr6 RLOC = "X0Y1", HU_SET = "h1" *) FD sr7 LOC = "SLICE_X0Y0" *) FD inq (.C(clk), outq (.C(clk), .D(sr_0n), .Q(outr)); (.C(clk), .D(sr_1n), .Q(sr_0)); (.C(clk), .D(sr_2n), .Q(sr_1)); (.C(clk), .D(sr_3n), .Q(sr_2)); (.C(clk), .D(sr_4n), .Q(sr_3)); (.C(clk), .D(sr_5n), .Q(sr_4)); (.C(clk), .D(sr_6n), .Q(sr_5)); (.C(clk), .D(sr_7n), .Q(sr_6)); (.C(clk), .D(inrn), .Q(sr_7)); .D(d), .Q(inr)); assign q = outr; endmodule // ffs 先ほ ど の例では、 ffs モジ ュ ールの イ ン ス タ ン ス に KEEP_HIERARCHY プ ロ パテ ィ を指定 し て、 階層を保持 し 、 合成 さ れたデザ イ ンで RPM を定義す る 必要があ り ます。 module top ( input clk, input d, output q ); wire c1, c2; (* KEEP_HIERARCHY = "YES" *) ffs u0 (clk, d, c1); (* KEEP_HIERARCHY = "YES" *) ffs u1 (clk, c1, c2); (* KEEP_HIERARCHY = "YES" *) ffs u2 (clk, c2, q); endmodule // top VHDL 構文 VHDL 属性は次の よ う に宣言 し ます。 attribute HU_SET : string; Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 162 第 3 章 : 主な プ ロパテ ィ の説明 VHDL 制約は次の よ う に指定 し ます。 attribute HU_SET of {component_name | entity_name | label_name} : {component|entity|label} is "NAME"; 説明 : • {component_name | entity_name | label_name} はデザ イ ン エ レ メ ン ト です。 • {component|entity|label} は指定 し たデザ イ ン エ レ メ ン ト の イ ン ス タ ン ス ID です。 • "NAME" には HU_SET の名前を指定 し ます。 XDC 構文 HU_SET プ ロ パテ ィ は XDC 制約を使用 し ては定義で き ません。 RLOC と と も に ロ ジ ッ ク エ レ メ ン ト に設定 さ れてい る HU_SET プ ロ パテ ィ は、 RPM を定義 し 、 その結果合成 さ れたデザ イ ンのネ ッ ト リ ス ト に読み出 し 専用の RPM プ ロ パテ ィ が設定 さ れます。 ヒ ン ト : デ ザ イ ン 内 で RPM の よ う に 機能す る マ ク ロ オ ブ ジ ェ ク ト を Vivado Design Suite で 定義す る に は、 create_macro ま たは update_macro を使用 し ます。 こ れ ら の コ マ ン ド の詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 影響のある処理 • デザ イ ンの フ ロ アプ ラ ン • place_design • synth_design 関連項目 188 ページの 「KEEP_HIERARCHY」 228 ページの 「RLOC」 231 ページの 「RLOCS」 233 ページの 「RLOC_ORIGIN」 236 ページの 「RPM」 242 ページの 「U_SET」 HIODELAY_GROUP HIODELAY_GROUP は IDELAYCTRL コ ン ポーネ ン ト を関連す る IDELAY ま たは ODELAY イ ン ス タ ン ス と と も にグ ループに ま と め、 配置お よ び複製が正 し く 行われ る よ う にす る プ ロ パテ ィ です。 HIODELAY_GROUP を使用 し て IDELAYCTRL にグループ名を割 り 当て る 場合は、 同 じ HIODELAY_GROUP プ ロ パ テ ィ を使用 し てそのグループに IDELAY ま たは ODELAY セル も 関連付け る 必要があ り ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 163 第 3 章 : 主な プ ロパテ ィ の説明 重要 : HIODELAY_GROUP には複数のセルを含め る こ と がで き ますが、1 つのセルに 1 つの HIODELAY_GROUP し か 割 り 当て ら れません。 次の例は、 set_property を使用 し て、 特定の IDELAYCTRL に関連付け ら れてい る IDELAY/ODELAY エ レ メ ン ト をす べて グループに ま と めてい ます。 set_property HIODELAY_GROUP IO_DLY1 [get_cells MY_IDELAYCTRL_inst] set_property HIODELAY_GROUP IO_DLY1 [get_cells MY_IDELAY_inst] set_property HIODELAY_GROUP IO_DLY1 [get_cells MY_ODELAY_inst] HIODELAY_GROUP と IODELAY_GROUP の相違点 HIODELAY_GROUP の名前は階層ご と に決め ら れてい ますが、 IODELAY_GROUP の名前は階層を越え て も その ま ま 使用で き ます。 HIODELAY_GROUP は、 次の場合に使用 し ます。 • IDELAYCTRL を含むモジ ュ ールの イ ン ス タ ン ス が複数あ る および • 指定 イ ン ス タ ン ス を、 ほかの論理階層にあ る IDELAY ま たは ODELAY イ ン ス タ ン ス と ま と め る つ も り がない アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • セル (get_cells) ° IDELAY、 ODELAY、 ま たは IDELAYCTRL イ ン ス タ ン ス 値 指定 し た グループ名 構文 Verilog 構文 Verilog 属性は IDELAY、 ODELAY、 ま たは IDELAYCTRL の イ ン ス タ ン シエーシ ョ ン直前に配置 し ます。 (* HIODELAY_GROUP = "value" *) Verilog の構文例 // // // // // Specifies a group name of DDR_INTERFACE to an instantiated IDELAYCTRL IDELAYCTRL: IDELAYE2/ODELAYE2 Tap Delay Value Control Virtex-7 Xilinx HDL Language Template, version 2014.1 Specifies DDR_INTERFACE group name for IDELAYs/ODELAYs and IDELAYCTRL (* HIODELAY_GROUP = “DDR_INTERFACE” *) IDELAYCTRL DDR_IDELAYCTRL_inst ( .RDY(), // 1-bit output: Ready output Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 164 第 3 章 : 主な プ ロパテ ィ の説明 .REFCLK(REFCLK), // 1-bit input: Reference clock input .RST(1’b0) // 1-bit input: Active high reset input ); // End of DDR_IDELAYCTRL_inst instantiation VHDL 構文 VHDL 属性は次の よ う に宣言 し ます。 attribute HIODELAY_GROUP : string; イ ン ス タ ン シエー ト 済み イ ン ス タ ン ス の場合は、 次の よ う に指定 し ます。 attribute HIODELAY_GROUP of instance_name : label is "group_name"; 説明 : • instance_name は イ ン ス タ ン シエー ト 済みの IDELAY、 ODELAY、 ま たは IDELAYCTRL の イ ン ス タ ン ス名です。 VHDL の構文例 // Specifies a group name of DDR_INTERFACE to an instantiated IDELAYCTRL attribute HIODELAY_GROUP : STRING; attribute HIODELAY_GROUP of DDR_IDELAYCTRL_inst: label is "DDR_INTERFACE"; begin -- IDELAYCTRL: IDELAYE2/ODELAYE2 Tap Delay Value Control -Virtex-7 -- Xilinx HDL Language Template, version 2014.1 DDR_IDELAYCTRL_inst : IDELAYCTRL port map ( RDY => open, -- 1-bit output: Ready output REFCLK => REFCLK, -- 1-bit input: Reference clock input RST => ‘0’ -- 1-bit input: Active high reset input ); -- End of DDR_IDELAYCTRL_inst instantiation XDC 構文 set_property HIODELAY_GROUP group_name [get_cells instance_name] 説明 : • instance_name は IDELAY、 ODELAY、 ま たは IDELAYCTRL の イ ン ス タ ン ス名です。 XDC の構文例 # Specifies a group name of DDR_INTERFACE to an instantiated IDELAYCTRL set_property HIODELAY_GROUP DDR_INTERFACE [get_cells DDR_IDELAYCTRL_inst] 影響のある処理 place_design 関連項目 178 ページの 「IODELAY_GROUP」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 165 第 3 章 : 主な プ ロパテ ィ の説明 『Vivado Design Suite 7 シ リ ーズ FPGA ラ イ ブ ラ リ ガ イ ド 』 (UG953) [参照 25] ま たは 『UltraScale アーキ テ ク チ ャ ラ イ ブ ラ リ ガ イ ド 』 (UG974) [参照 26] にあ る 次のデザ イ ン エ レ メ ン ト を参照 し て く だ さ い。 • IDELAYCTRL • IDELAYE2 • ODELAYE2 HLUTNM HLUTNM を使用す る と 、互換性のあ る 入力を持つ 2 つの LUT5、SRL16 ま たは LUTRAM コ ン ポーネ ン ト が同 じ LUT6 サ イ ト に配置 さ れます。 階層ご と に HLUTNM を使用 し て、 ど ち ら も 同 じ グループ名で互換性のあ る イ ン ス タ ン ス タ イ プであ る 必要があ り ます。 HLUTNM と LUTNM の相違点 ヒ ン ト : HLUTNM と LUTNM の目的は類似 し てい る ので、 同 じ 階層で使用 さ れ る 場合はそれぞれ異な る 値を設定す る 必要があ り ます。 LUTNM と HLUTNM の値が同 じ LUT は Vivado の配線プ ロ グ ラ ム で ま と め ら れ る か、 ま たは値 に関 し て警告 メ ッ セージが表示 さ れます。 • 異な る 階層にあ る 場合 も 含め、 デザ イ ンの ど こ かに存在す る LUTNM を使用 し ます。 • 階層モジ ュ ールの イ ン ス タ ン ス が複数デザ イ ンに含まれ る 場合は、 HLUTNM を使用 し て、 その階層モジ ュ ール の LUT コ ン ポーネ ン ト を ま と め ます。 ° 2 つの LUT コ ン ポーネ ン ト を ま と め る には、 HLUTNM は各階層に 1 つ し か使用で き ません。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • セル (get_cells) ° LUT (LUT1、 LUT2、 LUT3、 LUT4、 LUT5) ° SRL (SRL16E) ° LUTRAM (RAM32X1S) 値 一意のグループ名 構文 Verilog 構文 Verilog 属性は LUT の イ ン ス タ ン シエーシ ョ ン直前に配置 し ます。 Verilog 属性は、 同 じ 論理階層のペアで使用す る 必 要があ り ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 166 第 3 章 : 主な プ ロパテ ィ の説明 (* HLUTNM = "group_name" *) Verilog の構文例 // Designates state0_inst to be placed in same LUT6 as state1_inst // LUT5: 5-input Look-Up Table with general output (Mapped to a LUT6) // Virtex-7 // Xilinx HDL Language Template, version 2014.1 (* HLUTNM = "LUT_group1" *) LUT5 #( .INIT(32'ha2a2aea2) // Specify LUT Contents ) state0_inst ( .O(state_out[0]), // LUT general output .I0(state_in[0]), // LUT input .I1(state_in[1]), // LUT input .I2(state_in[2]), // LUT input .I3(state_in[3]), // LUT input .I4(state_in[4]) // LUT input ); // End of state0_inst instantiation // LUT5: 5-input Look-Up Table with general output (Mapped to a LUT6) // Virtex-7 // Xilinx HDL Language Template, version 2014.1 (* HLUTNM = "LUT_group1" *) LUT5 #( .INIT(32'h00330073) // Specify LUT Contents ) state1_inst ( .O(state_out[1]), // LUT general output .I0(state_in[0]), // LUT input .I1(state_in[1]), // LUT input .I2(state_in[2]), // LUT input .I3(state_in[3]), // LUT input .I4(state_in[4]) // LUT input ); // End of state1_inst instantiation VHDL 構文 VHDL 属性は次の よ う に宣言 し ます。 attribute HLUTNM : string; イ ン ス タ ン シエー ト 済み イ ン ス タ ン ス の場合は、 次の よ う に指定 し ます。 attribute HLUTNM of instance_name : label is "group_name"; 説明 : • instance_name は LUT1、 LUT2、 LUT3、 LUT4、 LUT5、 SRL16、 ま たは LUTRAM イ ン ス タ ン ス です。 VHDL 属性は、 同 じ 論理階層のペアで使用する 必要があ り ます。 VHDL の構文例 -- Designates state0_inst to be placed in same LUT6 as state1_inst attribute HLUTNM : string; attribute HLUTNM of state0_inst : label is "LUT_group1"; attribute HLUTNM of state1_inst : label is "LUT_group1"; begin -- LUT5: 5-input Look-Up Table with general output (Mapped to SLICEM LUT6) -Virtex-7 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 167 第 3 章 : 主な プ ロパテ ィ の説明 -- Xilinx HDL Language Template, version 2014.1 state0_inst : LUT5 generic map ( INIT => X"a2a2aea2") -- Specify LUT Contents port map ( O => state_out(0), -- LUT general output I0 => state_in(0), -- LUT input I1 => state_in(1), -- LUT input I2 => state_in(2), -- LUT input I3 => state_in(3), -- LUT input I4 => state_in(4) -- LUT input ); -- End of state0_inst instantiation -- LUT5: 5-input Look-Up Table with general output (Mapped to SLICEM LUT6) -Virtex-7 -- Xilinx HDL Language Template, version 2014.1 State1_inst : LUT5 generic map ( INIT => X"00330073") -- Specify LUT Contents port map ( O => state_out(1), -- LUT general output I0 => state_in(0), -- LUT input I1 => state_in(1), -- LUT input I2 => state_in(2), -- LUT input I3 => state_in(3), -- LUT input I4 => state_in(4) -- LUT input ); -- End of state1_inst instantiation XDC 構文 set_property HLUTNM group_name [get_cells instance_name] 説明 : • instance_name は LUT1、 LUT2、 LUT3、 LUT4、 LUT5、 SRL16、 ま たは LUTRAM イ ン ス タ ン ス です。 XDC の構文例 # Designates state0_inst LUT5 to be placed in same LUT6 as state1_inst set_property HLUTNM LUT_group1 [get_cells state0_inst] set_property HLUTNM LUT_group1 [get_cells state1_inst] 影響のある処理 • place_design 関連項目 198 ページの 「LUTNM」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 168 第 3 章 : 主な プ ロパテ ィ の説明 IBUF_LOW_PWR IBUF_LOW_PWR プ ロ パテ ィ は、 パフ ォーマ ン ス と 消費電力の ト レー ド オ フ を オプシ ョ ンで提供 し ます。 IBUF_LOW_PWR プ ロ パテ ィ は入力ポー ト に適用 さ れます。 デフ ォ ル ト では TRUE に設定 さ れ、 低電力モー ド でその ポー ト に対 し て入力バ ッ フ ァ ーが イ ンプ リ メ ン ト さ れ ます。 FALSE に設定 し た場合は、 ハ イ パフ ォ ーマ ン ス モー ド にな り ます。 消費電力の変更は XPE (XPower Estimator) ま たは Vivado Design Suite の report_power コ マ ン ド を使用 し て予測で き ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • SSTL や HSTL な ど の VREF ベース の I/O 規格、ま たは LVDS や DIFF_HSTL な ど の差動規格が指定 さ れてい る 入 力ポー ト (get_ports) 値 • TRUE : 低電力モー ド でそのポー ト に対 し て入力ま たは双方向バ ッ フ ァ ーを イ ンプ リ メ ン ト し ます。 こ れがデ フ ォ ル ト 値です。 • FALSE : ハ イ パフ ォーマ ン ス モー ド で入力ま たは双方向バ ッ フ ァ ーを イ ンプ リ メ ン ト し ます。 構文 Verilog 構文 推論 さ れて イ ン ス タ ン シエー ト さ れた入力バ ッ フ ァ ーお よ び双方向バ ッ フ ァ ーの場合、 適切な Verilog 属性構文を最 上位出力ポー ト 宣言の前に配置 し ます。 (* IBUF_LOW_PWR = "FALSE" *) Verilog の構文例 // Sets the input buffer to high performance (* IBUF_LOW_PWR = "FALSE" *) input STATE, VHDL 構文 推論 さ れて イ ン ス タ ン シエー ト さ れた入力バ ッ フ ァ ーの場合、適切な VHDL 属性構文を最上位出力ポー ト 宣言の前に 配置 し ます。 VHDL 属性は次の よ う に宣言 し て指定 し ます。 attribute IBUF_LOW_PWR : boolean; attribute IBUF_LOW_PWR of port_name : signal is TRUE | FALSE; Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 169 第 3 章 : 主な プ ロパテ ィ の説明 説明 : • port_name は最上位出力ポー ト です。 VHDL の構文例 STATE : in std_logic; attribute IBUF_LOW_PWR : boolean; -- Sets the input buffer to high performance attribute IBUF_LOW_PWR of STATE : signal is FALSE; XDC 構文 DIRECTION が IN ま たは INOUT のポー ト オブジ ェ ク ト に IBUF_LOW_PWR をプ ロ パテ ィ と し て割 り 当て ます。 set_property IBUF_LOW_PWR TRUE [get_ports port_name] 説明 : • set_property IBUF_LOW_PWR はポー ト オブジ ェ ク ト に割 り 当て る こ と がで き ます。 • port_name は入力ま たは双方向ポー ト です。 影響のある処理 • report_power • report_timing 関連項目 180 ページの 「IOSTANDARD」 IN_TERM IN_TERM は、 キ ャ リ ブ レー ト さ れない入力終端の イ ン ピーダ ン ス値を指定 し 、 ハ イ レ ン ジ (HR) バン ク 入力でのみ サ ポ ー ト さ れ て い ま す。 ハ イ パ フ ォ ー マ ン ス (HP) バ ン ク の入力に は、 オ ン チ ッ プ終端の DCI (Digital Controlled Impedance) の 「IOSTANDARD」 を使用 し ます。 重要 : UltraScale アーキ テ ク チ ャ の場合、 キ ャ リ ブ レー ト さ れない終端を指定する には、 IN_TERM ではな く 「ODT」 を使用 し て く だ さ い。 終端は常に入力にあ り 、 ま た出力バ ッ フ ァ ーが ト ラ イ ス テー ト にな っ てい る 場合は双方向ピ ンにあ り ます。 し か し 、 キ ャ リ ブ レー ト さ れない分割終端オプシ ョ ン と 、 ト ラ イ ス テー ト の分割終端 DCI と の重要な違いは、 DCI の場合は、 VRN お よ び VRP ピ ン での外部基準抵抗にキ ャ リ ブ レー ト す る のですが、 こ の機能の場合は、 温度、 プ ロ セ ス、 電圧 の変動を補正す る ためのキ ャ リ ブ レーシ ョ ン ルーチンのない内部抵抗を使用す る 点です。 こ のオプシ ョ ンには、 40、 50、 60 の テ ブナ ン 等価抵抗値 を 指定で き ま す。 詳細は、 『7 シ リ ーズ FPGA SelectIO リ ソ ー ス ユーザー ガ イ ド 』 (UG471) [参照 2] を参照 し て く だ さ い。 アーキテ ク チ ャ サポー ト ハ イ レ ン ジ (HR) バン ク 入力でのみ 7 シ リ ーズ デバ イ ス はサポー ト さ れてい ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 170 第 3 章 : 主な プ ロパテ ィ の説明 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports) ° 接続 さ れた入力ポー ト ま たは双方向ポー ト 値 • NONE (デフ ォ ル ト ) • UNTUNED_SPLIT_40 • UNTUNED_SPLIT_50 • UNTUNED_SPLIT_60 構文 Verilog 構文 こ の属性を設定す る には、 適切な Verilog 属性構文を最上位入力ま たは双方向ポー ト 宣言の前に配置 し ます。 (* IN_TERM = "{NONE|UNTUNED_SPLIT_40|UNTUNED_SPLIT_50|UNTUNED_SPLIT_60}" *) Verilog の構文例 // Sets an on-chip input impedance of 50 Ohms to input ACT5 (* IN_TERM = "UNTUNED_SPLIT_50" *) input ACT5, VHDL 構文 こ の属性を設定す る には、 適切な VHDL 属性構文を最上位入力ま たは双方向ポー ト 宣言の前に配置 し ます。 VHDL 属性は次の よ う に宣言 し ます。 attribute IN_TERM : string; VHDL 属性は次の よ う に指定 し ます。 attribute IN_TERM of port_name : signal is value; 説明 : • port_name は最上位の入力ま たは双方向ポー ト です。 VHDL の構文例 ACT5 : in std_logic; attribute IN_TERM : string; -- Sets an on-chip input impedance of 50 Ohms to input ACT5 attribute IN_TERM of ACT5 : signal is “UNTUNED_SPLIT_50”; XDC 構文 set_property IN_TERM value [get_ports port_name] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 171 第 3 章 : 主な プ ロパテ ィ の説明 説明 : • IN_TERM はポー ト オブジ ェ ク ト 、 お よ びポー ト オブジ ェ ク ト に接続 さ れてい る ネ ッ ト に割 り 当て る こ と がで き ます。 • port_name は入力ま たは双方向ポー ト です。 XDC の構文例 # Sets an on-chip input impedance of 50 Ohms to input ACT5 set_property IN_TERM UNTUNED_SPLIT_50 [get_ports ACT5] 影響のある処理 • I/O プ ラ ン ニ ン グ • ノ イ ズ レ ポー ト • 消費電力レ ポー ト 関連項目 139 ページの 「DCI_CASCADE」 141 ページの 「DIFF_TERM」 INTERNAL_VREF 差動入力バ ッ フ ァ ーのシ ン グルエン ド I/O 規格には、 入力基準電圧 (VREF) が必要です。 VREF が I/O バン ク 内で必要 な場合は、 外部 VREF 供給 と し て専用 VREF ピ ン を使用す る か、 INTERNAL_VREF プ ロ パテ ィ を使用 し て内部生成 さ れた VREF を使用 し ます。 あ る いは、 UltraScale デバ イ ス の HP I/O バン ク の場合は、 HPIO_VREF プ リ ミ テ ィ ブ を 介 し てア ク セ スす る VREF ス キ ャ ン を使用 し ます。 INTERNAL_VREF プ ロ パテ ィ は、 基準電圧を必要 と す る I/O 規格の基準電圧 (VREF) を供給す る ため、 I/O バン ク に 内部レ ギ ュ レー タ を使用す る こ と を指定 し ます。 内部で生成 さ れた基準電圧を使用する と 、 プ リ ン ト 回路基板 (PCB) の電源レールを介 し て特定の VREF を提供す る 必要がな く な り 、 シ ス テ ム レベル デザ イ ンの配線混雑を削減で き ま す。 ヒ ン ト : 特定の VREF 電圧提供レベルを必要 と す る ザ イ リ ン ク ス デバ イ ス がそのボー ド /シ ス テ ム上の唯一のデバ イ ス であ る 場合は、 内部 VREF を使用 し てみて く だ さ い。 詳細については、『7 シ リ ーズ FPGA SelectIO リ ソ ース ユーザー ガ イ ド 』 (UG471) [参照 2] ま たは 『UltraScale アーキ テ ク チ ャ SelectIO リ ソ ース ユーザー ガ イ ド 』 (UG571) [参照 8] を参照 し て く だ さ い。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • I/O バン ク (get_iobanks) Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 172 第 3 章 : 主な プ ロパテ ィ の説明 値 • 0.60 • 0.675 • 0.7 (UltraScale のみ) • 0.75 • 0.84 (UltraScale のみ) • 0.90 注記 : すべての値がすべての タ イ プの I/O バン ク でサポー ト さ れ る わけではあ り ません。 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property INTERNAL_VREF {value} [get_iobanks bank] 説明 : • value は基準電圧値です。 XDC の構文例 # Designate Bank 14 to have a reference voltage of 0.75 Volts set_property INTERNAL_VREF 0.75 [get_iobanks 14] 影響のある処理 • I/O プ ラ ン ニ ン グ • place_design • DRC • report_power IO_BUFFER_TYPE 最上位ポー ト に IO_BUFFER_TYPE を適用 し 、 IBUF お よ び OBUF を使用す る か、 入力ま たは出力バ ッ フ ァ ーを使用 し ないか を設定 し ます。 こ の属性は、 任意のプ ラ イ マ リ ポー ト ま たは信号に設定で き ます。 デフ ォ ル ト では、 Vivado 合成で入力ポー ト には入力バ ッ フ ァ ーが、 出力ポー ト には出力バ ッ フ ァ ーが推論 さ れ ま す が、 手動で IO_BUFFER_TYPE プ ロ パテ ィ を使用 し て、 指定ポー ト ま たはネ ッ ト に対 し 、 こ のデフ ォ ル ト 動作をデ ィ ス エーブルにす る こ と がで き ます。 ヒ ン ト : IO_BUFFER_TYPE プ ロ パテ ィ を使用す る 場合は、 タ ーゲ ッ ト ネ ッ ト に KEEP が設定 さ れ る こ と にな り ます。 こ れは、 ネ ッ ト 名を保持 し 、 RTL 最適化中にネ ッ ト が削除 さ れない よ う にする ための も のです。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 173 第 3 章 : 主な プ ロパテ ィ の説明 IO_BUFFER_TYPE は、 「CLOCK_BUFFER_TYPE」 と 併用 し て使用す る と 、 ク ロ ッ ク 信号に対 し 、 推論す る べ き バ ッ フ ァ ーの組み合わせを決め る こ と がで き ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports): IO_BUFFER_TYPE を最上位ポー ト に適用 し て、 バ ッ フ ァ ー挿入をデ ィ ス エーブルに し ます。 • ネ ッ ト (get_nets): IO_BUFFER_TYPE を最上位ポー ト に接続 さ れてい る 任意の信号に適用 し て、 バ ッ フ ァ ー挿入 をデ ィ ス エーブルに し ます。 値 • NONE : こ の値を入力ポー ト ま たは出力ポー ト に指定す る と 、 入力ま たは出力バ ッ フ ァ ーは推論 さ れな く な り ま す。 構文 Verilog 例 (* io_buffer_type = "none" *) input in1; VHDL コ ー ド 例 entity test is port( in1 : std_logic_vector (8 downto 0); clk : std_logic; out1 : std_logic_vector(8 downto 0)); attribute io_buffer_type : string; attribute io_buffer_type of out1: signal is "none"; end test; XDC の例 set_property IO_BUFFER_TYPE NONE [get_ports <port_name>] 影響のある処理 • 合成 関連項目 128 ページの 「CLOCK_BUFFER_TYPE」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 174 第 3 章 : 主な プ ロパテ ィ の説明 IOB IOB を使用す る と 、Vivado ツールで入力ま たは出力 ロ ジ ッ ク ブ ロ ッ ク (I/O ブ ロ ッ ク ま たは IOB) に接続 さ れた レ ジ ス タ が配置 さ れ る よ う にな り 、 タ イ ミ ン グが改善 さ れ ます。 こ の属性は、 I/O バ ッ フ ァ ーに配置す る レ ジ ス タ に接続 さ れたポー ト に設定 し ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports) ° レ ジ ス タ に接続 さ れ る ポー ト すべて 値 • TRUE : 接続 し た レ ジ ス タ を I/O ブ ロ ッ ク に配置 し ます。 • FALSE : 指定 し た レ ジ ス タ を I/O ブ ロ ッ ク に配置 し ません(デフ ォ ル ト )。 構文 Verilog 構文 こ の属性を設定す る には、 適切な Verilog 属性構文を最上位ポー ト 宣言の前に配置 し ます。 (* IOB = "{TRUE|FALSE}" *) Verilog の構文例 // Place the register connected to ACK in the input logic site (* IOB = "TRUE" *) input ACK, VHDL 構文 こ の属性を設定す る には、 適切な VHDL 属性構文を最上位ポー ト 宣言の前に配置 し ます。 VHDL 属性は次の よ う に宣言 し て指定 し ます。 attribute IOB : string; attribute IOB of <port_name>: signal is "{TRUE|FALSE}"; 説明 : • port_name は最上位ポー ト です。 VHDL の構文例 ACK : in std_logic; attribute IOB : string; -- Place the register connected to ACK in the input logic site Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 175 第 3 章 : 主な プ ロパテ ィ の説明 attribute IOB of ACK: signal is "TRUE"; XDC 構文 set_property IOB value [get_ports port_name] 説明 : • value は TRUE ま たは FALSE です。 XDC の構文例 # Place the register connected to ACK in the input logic site set_property IOB TRUE [get_ports ACK] 影響のある処理 • place_design IOBDELAY IOBDELAY (Input Output Block Delay) プ ロ パテ ィ は、 シ ス テ ム同期デー タ 入力を取 り 込むための入力ホール ド タ イ ム を緩和す る ため、 ILOGIC ブ ロ ッ ク の遅延の追加/削除を指定 し ます。 ILOGIC ブ ロ ッ ク は I/O ブ ロ ッ ク (IOB) の隣にあ り 、 IOB を介 し て FPGA にデー タ が入 る たびにそのデー タ を取 り 込 む同期エ レ メ ン ト を含んでい ます。 7 シ リ ーズ FPGA の ILOGIC ブ ロ ッ ク は、 HP I/O バン ク では ILOGICE2 と し て、 HR I/O バン ク では ILOGICE3 と し て コ ン フ ィ ギ ュ レーシ ョ ンする こ と がで き ます。 ILOGICE2 と ILOGICE3 は機能的 には同 じ ですが、 ILOGICE3 には IOBDELAY と と も に コ ン フ ィ ギ ュ レーシ ョ ン で き る ゼ ロ ホール ド 遅延エ レ メ ン ト (ZHOLD) があ る のが違いです。IOBDELAY の詳細は、『7 シ リ ーズ FPGA SelectIO リ ソ ース ユーザー ガ イ ド 』 (UG471) [参照 2] ま たは 『UltraScale アーキ テ ク チ ャ SelectIO リ ソ ース ユーザー ガ イ ド 』 (UG571) [参照 8] を参照 し て く だ さ い。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports) • セル • ネッ ト 値 • NONE : IBUF お よ び入力フ リ ッ プ フ ロ ッ プ (IFD) パ ス の両方に対 し 、 遅延を OFF に設定 し ます。 • IBUF • ° I/O コ ン ポーネ ン ト 内の任意の レ ジ ス タ に対 し 、 遅延を OFF に設定 し ます。 ° ILOGIC ブ ロ ッ ク ま でのバ ッ フ ァ ーの付いたパ ス に対 し 、 遅延を ON に設定 し ます。 IFD Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 176 第 3 章 : 主な プ ロパテ ィ の説明 • ° I/O コ ン ポーネ ン ト 内の IFF レ ジ ス タ に対 し 、 遅延を ON に設定 し ます。 ° ILOGIC ブ ロ ッ ク ま でのバ ッ フ ァ ーの付いたパ ス に対 し 、 遅延を OFF に設定 し ます。 BOTH : IBUF お よ び IFD パス の両方に対 し 、 遅延を ON に設定 し ます。 構文 Verilog 例 Verilog 制約をモジ ュ ールま たは イ ン ス タ ン シエーシ ョ ンの直前に配置 し ます。 Verilog 制約は次の よ う に指定 し ます。 (* IOBDELAY = {NONE|BOTH|IBUF|IFD} *) VHDL コ ー ド 例 VHDL 制約は次の よ う に宣言 し ます。 attribute iobdelay: string; VHDL 制約は次の よ う に指定 し ます。 attribute iobdelay of {component_name |label_name }: {component|label} is “{NONE|BOTH|IBUF|IFD}”; XDC 構文 set_property IOBDELAY value [get_cells cell_name] 説明 : • value には、 NONE、 IBUF、 IFD、 BOTH のいずれかが入 り ます。 XDC の構文例 set_property IOBDELAY "BOTH" [get_nets {data0_I}] 影響のある処理 • タ イ ミ ング • 配置 • 配線 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 177 第 3 章 : 主な プ ロパテ ィ の説明 IODELAY_GROUP IODELAY_GROUP は IDELAYCTRL セルを関連す る IDELAY お よ び ODELAY セル と と も にグループに ま と め、 配置 お よ び複製が正 し く 行われ る よ う に し ます。 IODELAY_GROUP を使用 し て IDELAYCTRL にグループ名を割 り 当て る 場合は、 同 じ IODELAY_GROUP プ ロ パテ ィ を使用 し てそのグループに IDELAY ま たは ODELAY セル も 関連付け る 必要があ り ます。 重要 : IODELAY_GROUP には複数のセルを含め る こ と がで き ますが、 1 つのセルに 1 つの IODELAY_GROUP し か割 り 当て ら れません。 . 次の例は、 set_property を使用 し て、 特定の IDELAYCTRL に関連付け ら れてい る IDELAY/ODELAY エ レ メ ン ト をす べて グループに ま と めてい ます。 set_property IODELAY_GROUP IO_DLY1 [get_cells MY_IDELAYCTRL_inst] set_property IODELAY_GROUP IO_DLY1 [get_cells MY_IDELAY_inst] set_property IODELAY_GROUP IO_DLY1 [get_cells MY_ODELAY_inst] IODELAY_GROUP と HIODELAY_GROUP の相違点 IODELAY_GROUP は違 う 階層にあ る エ レ メ ン ト 同士を ま と め る こ と がで き ますが、 HIODELAY_GROUP の名前は階 層 ご と に 決 め ら れ て い ま す。 異 な る 階 層 の I/O 遅延 コ ン ポ ー ネ ン ト を 1 つ の グ ル ー プ に ま と め る に は、 IODELAY_GROUP を使用 し ます。 HIODELAY_GROUP は、 同 じ 階層モジ ュ ールにあ る I/O 遅延コ ン ポーネ ン ト を グループに ま と め ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • セル (get_cells) ° IDELAY、 ODELAY、 ま たは IDELAYCTRL イ ン ス タ ン ス 値 指定 し た グループ名 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 178 第 3 章 : 主な プ ロパテ ィ の説明 構文 Verilog 構文 Verilog 属性は IDELAY、 ODELAY、 ま たは IDELAYCTRL の イ ン ス タ ン シエーシ ョ ン直前に配置 し ます。 (* IODELAY_GROUP = "value" *) Verilog の構文例 // // // // // Specifies a group name of DDR_INTERFACE to an instantiated IDELAYCTRL IDELAYCTRL: IDELAYE2/ODELAYE2 Tap Delay Value Control Virtex-7 Xilinx HDL Language Template, version 2014.1 Specifies DDR_INTERFACE group name for IDELAYs/ODELAYs and IDELAYCTRL (* IODELAY_GROUP = “DDR_INTERFACE” *) IDELAYCTRL DDR_IDELAYCTRL_inst ( .RDY(), // 1-bit output: Ready output .REFCLK(REFCLK), // 1-bit input: Reference clock input .RST(1’b0) // 1-bit input: Active high reset input ); // End of DDR_IDELAYCTRL_inst instantiation VHDL 構文 VHDL 属性は次の よ う に宣言 し ます。 attribute IODELAY_GROUP : string; イ ン ス タ ン シエー ト 済み イ ン ス タ ン ス の場合は、 次の よ う に指定 し ます。 attribute IODELAY_GROUP of instance_name : label is "group_name"; 説明 : • instance_name は イ ン ス タ ン シエー ト 済みの IDELAY、 ODELAY、 ま たは IDELAYCTRL の イ ン ス タ ン ス名です。 VHDL の構文例 // Specifies a group name of DDR_INTERFACE to an instantiated IDELAYCTRL attribute IODELAY_GROUP : STRING; attribute IODELAY_GROUP of DDR_IDELAYCTRL_inst: label is "DDR_INTERFACE"; begin -- IDELAYCTRL: IDELAYE2/ODELAYE2 Tap Delay Value Control -Virtex-7 -- Xilinx HDL Language Template, version 2014.1 DDR_IDELAYCTRL_inst : IDELAYCTRL port map ( RDY => open, -- 1-bit output: Ready output REFCLK => REFCLK, -- 1-bit input: Reference clock input RST => ‘0’ -- 1-bit input: Active high reset input ); -- End of DDR_IDELAYCTRL_inst instantiation Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 179 第 3 章 : 主な プ ロパテ ィ の説明 XDC 構文 set_property IODELAY_GROUP group_name [get_cells instance_name] 説明 : • group_name はユーザー指定の IODELAY_GROUP 名です。 • instance_name は IDELAY、 ODELAY、 ま たは IDELAYCTRL の イ ン ス タ ン ス名です。 XDC の構文例 # Specifies a group name of DDR_INTERFACE to an instantiated IDELAYCTRL set_property IODELAY_GROUP DDR_INTERFACE [get_cells DDR_IDELAYCTRL_inst] 影響のある処理 • 配置 関連項目 163 ページの 「HIODELAY_GROUP」 『Vivado Design Suite 7 シ リ ーズ FPGA ラ イ ブ ラ リ ガ イ ド 』 (UG953) [参照 25] ま たは 『UltraScale アーキ テ ク チ ャ ラ イ ブ ラ リ ガ イ ド 』 (UG974) [参照 26] にあ る 次のデザ イ ン エ レ メ ン ト を参照 し て く だ さ い。 ° IDELAYCTRL ° IDELAYE2 ° ODELAYE2 IOSTANDARD IOSTANDARD は、 タ ーゲ ッ ト デバ イ ス で入力、 出力、 ま たは双方向ポー ト を コ ン フ ィ ギ ュ レーシ ョ ンす る のに ど の プ ロ グ ラ マブル I/O 規格を使用す る か を指定 し ます。 重 要 : Vivado Design Suite が デ ザ イ ン か ら ビ ッ ト ス ト リ ー ム を 生成す る 前 に、 I/O バ ン ク の す べ て の ポ ー ト で IOSTANDARD を定義す る 必要があ り ます。 ただ し 、 IOSTANDARD は GT ま たは XADC には適用で き ません。 1 つの I/O バン ク に複数の異な る IOSTANDARD を含め る こ と がで き ますが、 こ れ ら の IOSTANDARD には互換性が な く てはな り ません。 1 つの I/O バン ク に異な る 入力、 出力、 双方向 I/O 規格を組み合わせ る 場合は、 次のルールに 従っ て く だ さ い。 1. 同 じ 出力 CCO 要件を持つ出力規格は、 同 じ バン ク に ま と め る こ と がで き ます。 2. 同 じ CCO お よ び VREF要件を持つ入力規格は、 同 じ バン ク に ま と め る こ と がで き ます。 3. 同 じ CCO 要件を持つ入力規格お よ び出力規格は、 同 じ バン ク に ま と め る こ と がで き ます。 4. ほかの規格 と 双方向 I/O 規格を組み合わせる 場合は、 双方向規格が最初の 3 つのルールに沿っ てい る こ と を確認 し て く だ さ い。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 180 第 3 章 : 主な プ ロパテ ィ の説明 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports) ° 任意のポー ト - I/O ポー ト の RTL ソ ース で IOSTANDARD を定義す る か、 ポー ト セルの XDC 制約 と し て定 義 し ます。 値 タ ーゲ ッ ト にす る ザ イ リ ン ク ス FPGA に よ っ て有効な I/O 規格は異な り ます。 デバ イ ス別の IOSTANDARD について は、 『7 シ リ ー ズ FPGA SelectIO リ ソ ー ス ユーザー ガ イ ド 』 (UG471) [参照 2] お よ び 『UltraScale ア ー キ テ ク チ ャ SelectIO リ ソ ース ユーザー ガ イ ド 』 (UG571) [参照 8] を参照 し て く だ さ い。 構文 Verilog 構文 こ のパ ラ メ ー タ ーを設定す る には、 適切な Verilog 構文を最上位ポー ト 宣言の前に配置 し ます。 (* IOSTANDARD = "value" *) Verilog の構文例 // Sets the I/O Standard on the STATUS output to LVCMOS12 (* IOSTANDARD = "LVCMOS12" *) output STATUS, VHDL 構文 適切な VHDL 属性構文を最上位ポー ト 宣言の前に配置 し ます。 VHDL 属性は次の よ う に宣言 し て指定 し ます。 attribute IOSTANDARD : string; attribute IOSTANDARD of <port_name>: signal is "<standard>"; 説明 : • port_name は最上位出力ポー ト です。 VHDL の構文例 STATUS : out std_logic; attribute IOSTANDARD : string; -- Sets the I/O Standard on the STATUS output to LVCMOS12 attribute IOSTANDARD of STATUS: signal is "LVCMOS12"; XDC 構文 IOSTANDARD は、 デザ イ ン内のポー ト オブジ ェ ク ト に XDC 制約 と し て定義する こ と も で き ます。 set_property IOSTANDARD value [get_ports port_name] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 181 第 3 章 : 主な プ ロパテ ィ の説明 説明 : • port_name は最上位ポー ト です。 XDC の構文例 # Sets the I/O Standard on the STATUS output to LVCMOS12 set_property IOSTANDARD LVCMOS12 [get_ports STATUS] 影響のある処理 • I/O プ ラ ン ニ ン グ • ノ イ ズ レ ポー ト • 消費電力レ ポー ト • DRC レ ポー ト • place_design 関連項目 『Vivado Design Suite 7 シ リ ーズ FPGA ラ イ ブ ラ リ ガ イ ド 』 (UG953) [参照 25] ま たは 『UltraScale アーキ テ ク チ ャ ラ イ ブ ラ リ ガ イ ド 』 (UG974) [参照 26] にあ る 次のデザ イ ン エ レ メ ン ト を参照 し て く だ さ い。 • OBUF • OBUFT • IOBUF IP_REPO_PATHS こ のプ ロ パテ ィ を使用す る と 、 Vivado Design Suite で使用す る カ ス タ ム IP カ タ ロ グ を作成で き ます。 IP_REPO_PATHS プ ロ パテ ィ は、 サー ド パーテ ィ ま たはユーザー定義の IP を含む 1 つま たは複数のデ ィ レ ク ト リ への パ ス を定義 し ま す。 指定 し たデ ィ レ ク ト リ お よ び下位デ ィ レ ク ト リ で IP 定義が検索 さ れ、 Vivado Design Suite IP カ タ ロ グに追加 さ れ、 デザ イ ン入力や IP イ ン テ グ レー タ ー機能で使用で き る よ う にな り ます。 こ のプ ロ パテ ィ は、 現在のプ ロ ジ ェ ク ト の現在の フ ァ イ ルセ ッ ト に割 り 当て ら れます。 ヒ ン ト : IP_REPO_PATHS プ ロ パテ ィ が作成時にそれぞれの新規プ ロ ジ ェ ク ト に割 り 当て ら れ る よ う に Vivado Design Suite を設定す る には、 Vivado IDE で [Tools] →[Options] → [General] → [IP Catalog] フ ィ ール ド の [Default IP Repository Search Paths] でパ ス を指定 し ます。 こ のデフ ォ ル ト の IP リ ポジ ト リ 検索パ ス は、 vivado.ini フ ァ イ ルに保存 さ れ、 IP_REPO_PATHS を使用 し て新 し いプ ロ ジ ェ ク ト に追加 さ れます。 IP_REPO_PATHS は <component>.xml フ ァ イ ルを検索 し ま す。 こ の <component> はカ タ ロ グ に追加す る IP の名前で す。 XML フ ァ イ ルでは、 IP を定義する さ ま ざ ま な フ ァ イ ルが識別 さ れます。 IP_REPO_PATHS プ ロ パテ ィ では、 リ ポ ジ ト リ の各 IP の XML フ ァ イ ルを直接指定する 必要はあ り ません。 IP カ タ ロ グが指定 し た IP リ ポジ ト リ の下位フ ォ ルダーか ら 、 カ タ ロ グに追加す る IP が検索 さ れます。 重要 : IP_REPO_PATHS プ ロ パテ ィ に IP カ タ ロ グへ追加 さ れ る 新 し い IP リ ポジ ト リ デ ィ レ ク ト リ が含ま れ る よ う に 設定 し た後は、 update_ip_catalog コ マ ン ド を使用す る 必要があ り ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 182 第 3 章 : 主な プ ロパテ ィ の説明 リ ポジ ト リ のサー ド パーテ ィ ま たはユーザー定義 IP で現在のプ ロ ジ ェ ク ト ま たはデザ イ ン で使用中のデバ イ ス の製 品 フ ァ ミ リ がサポー ト さ れ る 場合、 その IP はカ タ ロ グ に互換性の あ る IP と し て追加 さ れ ま す。 IP の互換性に タ ー ゲ ッ ト パーツ が含まれない場合、 その IP が現在のプ ロ ジ ェ ク ト ま たはデザ イ ン と 互換性がな く 、 IP カ タ ロ グには表 示 さ れない こ と があ り ます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : IP を使用 し た設計』 (UG896) [参照 16] を 参照 し て く だ さ い。 アーキテ ク チ ャ サポー ト UltraScale デバ イ ス 適用可能なオブ ジ ェ ク ト • current_fileset 値 • <dir_name> - ユーザー定義 IP が格納 さ れ る 1 つま たは複数のデ ィ レ ク ト リ 名を指定 し ます。 デ ィ レ ク ト リ 名は、 相対的ま たは絶対的に指定で き 、 別々に指定す る か、 スペース で区切っ て指定 し 、 中か っ こ { } か二重引用符 " " で囲む必要があ り ます。 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property IP_REPO_PATHS {<ip_directories>} [current_fileset] 説明 : • <ip_directories> は、 サー ド パーテ ィ ま たはユーザー定義のパ ッ ケージ さ れた IP 定義を含むデ ィ レ ク ト リ を 1 つ ま たは複数指定 し ます。 XDC の構文例 set_property IP_REPO_PATHS {c:/Data/Designs C:/myIP} [current_fileset] update_ip_catalog 使用可能な段階 • デザ イ ン入力 IS_ENABLED IS_ENABLED プ ロ パテ ィ は、 Report DRC を 実行す る と き 、 Vivado Design Suite で個々のデザ イ ン ルール チ ェ ッ ク (DRC) を イ ネーブルにす る かデ ィ ス エーブルにす る か決め る こ と がで き ます。DRC の実行に関 し ては、『Vivado Design Suite ユーザー ガ イ ド : シ ス テ ム レベル デザ イ ン入力』 (UG895) [参照 15] の こ のセ ク シ ョ ン を参照 し て く だ さ い。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 183 第 3 章 : 主な プ ロパテ ィ の説明 ビル ト イ ン DRC で も カ ス タ ム DRC で も 、 イ ネーブル/デ ィ ス エーブルにす る こ と がで き ます。 カ ス タ ム のデザ イ ン ルール チ ェ ッ ク を記述す る 場合は、 『Vivado Design Suite ユーザー ガ イ ド : Tcl ス ク リ プ ト 機能の使用』 (UG894) [参 照 14] の こ のセ ク シ ョ ン を参照 し て く だ さ い。 重要 : Vivado ではビル ト イ ン DRC オブジ ェ ク ト の重要度をデ ィ ス エーブルに し た り 、 格下げす る こ と がで き ますが、 不測の結果を招いた り 、デバ イ ス を恒久的に損傷 し て し ま う 可能性があ る ため、で き る 限 り 変更は し ないで く だ さ い。 DRC オブジ ェ ク ト をデフ ォ ル ト 設定に リ セ ッ ト する には、 reset_drc_check と い う Tcl コ マ ン ド を使用 し ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • デザ イ ン ルールチ ェ ッ ク オブジ ェ ク ト (get_drc_checks) 値 • TRUE : report_drc コ マ ン ド 実行中に使用する 指定 DRC を イ ネーブルに し ます。 (デフ ォ ル ト )。 • FALSE : report_drc 実行中にルールが評価 さ れない よ う に、 DRC をデ ィ ス エーブルに し ます。 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property IS_ENABLED {TRUE | FALSE} [get_drc_checks <id>] 説明 : • <id> は Vivado Design Suite で認識 さ れ る DRC ID です。 XDC の構文例 set_property IS_ENABLED false [get_drc_checks RAMW-1] 影響のある処理 • report_drc • write_bitstream 関連項目 239 ページの 「SEVERITY」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 184 第 3 章 : 主な プ ロパテ ィ の説明 KEEP 最適化が実行 さ れない よ う にす る には、 KEEP 属性を使用 し ます。 信号が削除 さ れた り ロ ジ ッ ク ブ ロ ッ ク に吸収 さ れ る よ う な場合に、 こ の属性を指定す る と 、 配置 さ れた信号を保持 し 、 その信号を ネ ッ ト リ ス ト に抽出で き る よ う にな り ます。 た と えば、 2 ビ ッ ト の AND ゲー ト の出力で別の AND ゲー ト を駆動する 信号に KEEP 制約を設定す る と 、 信号は両方 の AND ゲー ト を含む よ り 大 き い LUT には統合 さ れません。 KEEP は、 タ イ ミ ン グ制約 と も よ く 併用 さ れます。 通常は最適化 さ れ る 信号に タ イ ミ ン グ制約が設定 さ れてい る 場合、 KEEP を設定す る と 最適化 さ れな く な り 、 正 し い タ イ ミ ン グ規則が使用 さ れます。 ただ し 、何 も 駆動 し ていない信号に KEEP を設定する 際には注意が必要です。 こ う いっ た信号が合成で保持 さ れ る と 、 ダ ウ ン ス ト リ ーム プ ロ セ ス で問題 と な る こ と があ り ます。 注記 : KEEP はモジ ュ ールま たはエン テ ィ テ ィ のポー ト には設定で き ません。 特定のポー ト を保持す る 必要があ る 場 合は、 flatten_hierarchy = “none” に設定す る か、 モジ ュ ールま たはエン テ ィ テ ィ 自体に DONT_TOUCH を設定 し ます。 注意 : KEEP を ほかの属性 と 共に使用す る 場合は注意が必要です。 ほかの属性が KEEP 属性 と 競合す る 場合、 通常 KEEP 属性が優先 さ れます。 例: • あ る 信号に MAX_FANOUT 属性が設定 さ れてお り 、 こ の信号で駆動 さ れ る 信号に KEEP 属性が設定 さ れてい る 場合、 KEEP 属性が設定 さ れてい る 信号ではフ ァ ン ア ウ ト 複製は実行 さ れません。 • RAM STYLE="block" と 設定 さ れてい る 場合、 その RAM の一部 と な る べ き レ ジ ス タ に KEEP が設定 さ れてい る と 、 KEEP 属性のためにブ ロ ッ ク RAM が推論 さ れません。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • こ の属性は信号、 レ ジ ス タ 、 ワ イ ヤに設定で き ます。 ° get_nets ° get_cells 値 • TRUE : 信号を保持 し ます。 • FALSE : 信号が必要に応 じ て最適化 さ れ る よ う に し ます。 FALSE を使用 し て も 、 信号が無条件に削除 さ れ る こ と はあ り ません。 デフ ォ ル ト は FALSE です。 推奨 : こ の属性は RTL のみで設定 し て く だ さ い。 XDC フ ァ イ ルが読み込ま れ る 前に、 保持す る 必要のあ る 信号が最 適化で削除 さ れて し ま う こ と があ り ます。 こ の属性を RTL で設定 し ておけば、 必ず適用 さ れます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 185 第 3 章 : 主な プ ロパテ ィ の説明 構文 こ のセ ク シ ョ ンの構文例は、 特定の ツールま たは手法で こ の制約を使用する 方法を示 し てい ます。 ツールま たは手法 が リ ス ト さ れていない場合は、 その ツールま たは手法では こ の制約は使用で き ません。 Verilog 構文 Verilog 制約をモジ ュ ールま たは イ ン ス タ ン シエーシ ョ ンの直前に配置 し ます。 Verilog 制約は次の よ う に指定 し ます。 (* KEEP = “{TRUE|FALSE|SOFT}” *) Verilog 例 (* keep = “true” *) wire sig1; assign sig1 = in1 & in2; assign out1 = sig1 & in2; VHDL 構文 VHDL 制約は次の よ う に宣言 し ます。 attribute keep : string; VHDL 制約は次の よ う に指定 し ます。 attribute keep of signal_name : signal is “{TRUE|FALSE}”; VHDL 例 signal sig1 : std_logic; attribute keep : string; attribute keep of sig1 : signal is “true”; .... .... sig1 <= in1 and in2; out1 <= sig1 and in3; XDC 構文 該当な し 使用可能な段階 • 合成 関連項目 147 ページの 「DONT_TOUCH」 188 ページの 「KEEP_HIERARCHY」 202 ページの 「MARK_DEBUG」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 186 第 3 章 : 主な プ ロパテ ィ の説明 KEEP_COMPATIBLE FPGA デザ イ ン プ ロ セ ス 中に、 デバ イ ス を よ り 大 き い も のや、 別のパーツ に変更す る 必要が出て く る こ と があ り ま す。 KEEP_COMPATIBLE プ ロ パテ ィ では、 必要に応 じ てデザ イ ンの タ ーゲ ッ ト デバ イ ス を変更す る こ と がで き る よ う に、 現在のデザ イ ン と 互換性があ る はずの 1 つま たは複数のザ イ リ ン ク ス FPGA パーツの リ ス ト を定義 し ます。 こ れに よ り 、 指定 し たデバ イ ス間には互換性のない IO ま たは PACKAGE_PINS が使用 さ れない よ う にな り 、 デザ イ ン が現在のパーツ ま たは互換性のあ る パーツにマ ッ プで き る よ う にな り ます。 KEEP_COMPATIBLE プ ロ パテ ィ を使用する と 、 I/O ピ ン割 り 当てが指定 し た互換性のあ る デバ イ ス の リ ス ト 間で動作 す る よ う に、 デザ イ ン フ ロ ーの早期段階で互換性のあ る 代替デバ イ ス を定義で き ます。 Vivado Design Suite では、 全 パーツ で共通ではない ピ ンへ I/O ポー ト が割 り 当て ら れない よ う にパ ッ ケージ ピ ン に PROHIBIT プ ロ パテ ィ が定義 さ れます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • current_design 値 COMPATIBLE_PART は、 現在の タ ーゲ ッ ト パーツのデバ イ ス と パ ッ ケージ を組み合わせて定義 さ れます。 た と えば、 xc7k70tfbg676-2 パーツには、 次の よ う なプ ロ パテ ィ があ り ます。 NAME xc7k325tffg676-2 DEVICE xc7k325t PACKAGE ffg676 COMPATIBLE_PARTS xc7k160tfbg676 xc7k160tffg676 xc7k325tfbg676 xc7k410tfbg676 xc7k410tffg676 xc7k70tfbg676 パーツ オブジ ェ ク ト の COMPATIBLE_PARTS プ ロ パテ ィ では、 さ ま ざ ま な DEVICE お よ び PACKAGE が リ ス ト さ れ ます。 SPEED は指定 さ れません。 こ の結果、 互換性のあ る パーツは次の よ う にな り ます。 xc7k160tfbg676-1 xc7k160tfbg676-2 xc7k160tfbg676-2L xc7k160tfbg676-3 xc7k160tffg676-1 xc7k160tffg676-2 xc7k160tffg676-2L xc7k160tffg676-3 xc7k325tfbg676-1 xc7k325tfbg676-2 xc7k325tfbg676-2L xc7k325tfbg676-3 xc7k410tfbg676-1 xc7k410tfbg676-2 xc7k410tfbg676-2L xc7k410tfbg676-3 xc7k410tffg676-1 xc7k410tffg676-2 xc7k410tffg676-2L Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 187 第 3 章 : 主な プ ロパテ ィ の説明 xc7k410tffg676-3 xc7k70tfbg676-1 xc7k70tfbg676-2 xc7k70tfbg676-2L xc7k70tfbg676-3 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property KEEP_COMPATIBLE {value1 value2 valueN} [current_design] {value1 value2 valueN} は、 PART オブジ ェ ク ト に定義 さ れ る 、 1 つま たは複数の COMPATIBLE_PARTS にな り ます。 現 在のデザ イ ンの タ ーゲ ッ ト パーツ に対する COMPATIBLE_PART は、 次の Tcl コ マ ン ド を使用する と 取得で き ます。 get_property COMPATIBLE_PARTS [get_property PART [current_design]] XDC の構文例 set_property KEEP_COMPATIBLE {xc7k160tfbg676 xc7k410tffg676} [current_design] 使用可能な段階 • I/O プ ラ ン ニ ン グ • 配置 KEEP_HIERARCHY KEEP_HIERARCHY は、 最適化がバ ウ ン ダ リ を越えて実行 さ れない よ う にす る ため、 ユーザー階層の保持を指示 し ま す。 こ れで フ ロ アプ ラ ン、 解析、 デバ ッ グが し やす く な り ますが、 最適化が抑止 さ れ る ので、 デザ イ ンが大き く 、 遅 く な っ て し ま う こ と があ り ます。 推奨 : 悪影響が出ない よ う にす る には、KEEP_HIERARCHY が適用 さ れてい る モジ ュ ール イ ン ス タ ン ス の出力すべて に レ ジ ス タ を付け ます。 こ の属性は、 合成前に適用す る と 最 も 効果的です。 KEEP_HIERARCHY は、 階層レベルが変更 さ れない よ う にす る ためのプ ロ パテ ィ です。 Vivado 合成では、 RTL で指定 さ れたの と 同 じ 階層が保持 さ れ る よ う に し ますが、 QoR (結果の品質) を改善す る ために階層が フ ラ ッ ト に さ れた り 、 変更 さ れ る こ と も あ り ます。 イ ン ス タ ン ス に KEEP_HIERARCHY を指定す る と 、 合成でその階層レベルは変更 さ れません。 こ れが QoR に影響を与え る 場合があ り ます。 ま た、 ト ラ イ ス テー ト 出力お よ び I/O バ ッ フ ァ ーの制御 ロ ジ ッ ク を記述 す る モジ ュ ールには使用 し ないで く だ さ い。 KEEP_HIERARCHY は、 モジ ュ ール、 アーキ テ ク チ ャ レベル、 ま たは イ ン ス タ ン ス に指定で き ます。 RTL でのみ設定可能です。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 188 第 3 章 : 主な プ ロパテ ィ の説明 アーキテ ク チ ャ サポー ト すべて 適用可能なオブ ジ ェ ク ト • セル (get_cells) ° ユーザー定義の イ ン ス タ ン ス 値 • FALSE (デフ ォ ル ト ) 階層を越え て最適化 さ れます。 • TRUE 最適化が階層バ ウ ン ダ リ を越え ない よ う にな り 、 階層が保持 さ れます。 構文 Verilog 構文 Verilog 属性をユーザーの階層 イ ン ス タ ン シエーシ ョ ンの直前に配置 し ます。 (* KEEP_HIERARCHY = "{TRUE|FALSE}" *) Verilog の構文例 // Preserve the hierarchy of instance CLK1_rst_sync (* KEEP_HIERARCHY = "TRUE" *) reset_sync #( .STAGES(5) ) CLK1_rst_sync ( .RST_IN(RST | ~LOCKED), .CLK(clk1_100mhz), .RST_OUT(rst_clk1) ); モ ジ ュ ールの場合 (* keep_hierarchy = "yes" *) module bottom (in1, in2, in3, in4, out1, out2); イ ン ス タ ン スの場合 (* keep_hierarchy = "yes" *)bottom u0 (.in1(in1), .in2(in2), .out1(temp1)); VHDL 構文 VHDL 属性は次の よ う に宣言 し ます。 attribute KEEP_HIERARCHY : string; VHDL 属性は次の よ う に指定 し ます。 attribute KEEP_HIERACHRY of name: label is "{TRUE|FALSE}"; Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 189 第 3 章 : 主な プ ロパテ ィ の説明 説明 : • name はユーザー定義の イ ン ス タ ン ス の名前です。 VHDL の構文例 attribute KEEP_HIERARCHY : string; -- Preserve the hierarchy of instance CLK1_rst_sync attribute KEEP_HIERARCHY of CLK1_rst_sync: label is "TRUE"; … CLK1_rst_sync : reset_sync PORT MAP ( RST_IN => RST_LOCKED, CLK => clk1_100mhz, RST_OUT => rst_clk1 ); モ ジ ュ ールの場合 attribute keep_hierarchy : string; attribute keep_hierarchy of beh : architecture is "yes"; イ ン ス タ ン スの場合 attribute keep_hierarchy : string; attribute keep_hierarchy of u0 : label is "yes"; XDC 構文 set_property KEEP_HIERARCHY {TRUE|FALSE} [get_cells instance_name] 説明 : • instance_name はレ ジ ス タ イ ン ス タ ン ス です。 XDC の構文例 # Preserve the hierarchy of instance CLK1_rst_sync set_property KEEP_HIERARCHY TRUE [get_cells CLK1_rst_sync] 影響のある処理 • デザ イ ンの フ ロ アプ ラ ン • opt_design • phys_opt_design • synth_design 関連項目 147 ページの 「DONT_TOUCH」 185 ページの 「KEEP」 202 ページの 「MARK_DEBUG」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 190 第 3 章 : 主な プ ロパテ ィ の説明 KEEPER 重要 : KEEPER プ ロ パテ ィ はサポー ト さ れな く な り ま し た。 「PULLTYPE」 に置き 換え て く だ さ い。 KEEPER は、 ト ラ イ ス テー ト 出力ま たは双方向ポー ト に ウ ィ ー ク ド ラ イ バーを適用 し 、駆動 さ れていない と き に値を 保持 し ます。 ポー ト に接続 さ れ る 出力ネ ッ ト の値が保持 さ れます。 た と えば、 指定 し たポー ト を介 し て ロ ジ ッ ク 1 が駆動 さ れ る 場合、 KEEPER は ウ ィ ー ク ま たは抵抗 1 を そのポー ト ま で駆動 し ま す。 その後ネ ッ ト ド ラ イ バーが ト ラ イ ス テー ト 状態に な る と 、 KEEPER は接続 さ れた ポー ト を 介 し て ウ ィ ー ク ま たは抵抗 1 を ネ ッ ト に駆動 し 続け、 値を保持 し ます。 入力バ ッ フ ァ ー (IBUF な ど)、 ト ラ イ ス テー ト 出力バ ッ フ ァ ー (OBUFT な ど)、 お よ び双方向バ ッ フ ァ ー (IOBUF な ど ) には、 ウ ィ ー ク プルア ッ プ抵抗、 ウ ィ ー ク プルダ ウ ン抵抗、 ま たは ウ ィ ー ク キーパー回路を含め る こ と がで き ま す。 バ ッ フ ァ ーに接続 さ れてい る ポー ト オブジ ェ ク ト に次の値のいずれか を設定 し て、 PULLTYPE プ ロ パテ ィ を追 加す る と 、 こ の機能を実行で き ます。 • PULLUP • PULLDOWN • KEEPER 注記 : こ の属性が適用 さ れた場合、 RTL シ ミ ュ レーシ ョ ン中には KEEPER 機能が表示 さ れないので、 RTL シ ミ ュ レー シ ョ ン と イ ンプ リ メ ン ト 済みデザ イ ン間の機能的な差が出て く る 可能性があ り ます。 こ の機能は、 ゲー ト レベルのシ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト を使用 し て検証で き ます。あ る いは、 こ のプ ロ パテ ィ を使用する 代わ り に、PULLDOWN UNISIM を イ ン ス タ ン シエー ト し て、 RTL シ ミ ュ レーシ ョ ンに こ の動作を反映 さ せます。 アーキテ ク チ ャ サポー ト すべて 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports): 最上位ポー ト に適用 し ます。 値 • TRUE | YES : 指定 し たポー ト に接続 さ れたネ ッ ト の値を保持する ためキーパー回路を使用 し ます。 • FALSE | NO : キーパー回路を使用 し ません。 デフ ォ ル ト です。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 191 第 3 章 : 主な プ ロパテ ィ の説明 構文 Verilog 構文 Verilog 制約を ポー ト 宣言の直前に配置 し ます。 Verilog 制約は次の よ う に指定 し ます。 (* KEEPER = " {YES|NO|TRUE|FALSE}" *) VHDL 構文 VHDL 制約は次の よ う に宣言 し て指定 し ます。 attribute keeper: string; attribute keeper of signal_name : signal is “{YES|NO|TRUE|FALSE}”; XDC 構文 set_property KEEPER {TRUE|FALSE} [get_ports port_name] 説明 : • port_name は、 入力、 出力、 入出力ポー ト の名前です。 XDC の構文例 # Use a keeper circuit to preserve the value on the specified port set_property KEEPER TRUE [get_ports wbWriteOut] 影響のある処理 • 論理か ら 物理へのマ ッ ピ ン グ 関連項目 221 ページの 「PULLDOWN」 222 ページの 「PULLTYPE」 224 ページの 「PULLUP」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 192 第 3 章 : 主な プ ロパテ ィ の説明 LOC LOC は、 タ ーゲ ッ ト のザ イ リ ン ク ス FPGA のデバ イ ス リ ソ ース に ロ ジ ッ ク セルを配置 し ます。 推奨 : デバ イ ス パ ッ ケージの物理的ピ ン に I/O ポー ト を割 り 当て る には、 LOC ではな く PACKAGE_PIN プ ロ パテ ィ を使用 し ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • セル (get_cells) ° プ リ ミ テ ィ ブ セルすべて 値 サ イ ト 名 (SLICE_X15Y14 ま たは RAMB18_X6Y9 な ど) 構文 Verilog 構文 Verilog 属性は コ ン ポーネ ン ト の イ ン ス タ ン シエーシ ョ ンの直前に配置 し ます。 推論 さ れた レ ジ ス タ の SRL ま たは LUTRAM の reg を 1 つのデバ イ ス サ イ ト に配置で き る 場合は、 こ の Verilog 属性 はその reg 宣言前に も 配置で き ます。 (* LOC = "site_name" *) // Designates placed_reg to be placed in SLICE site SLICE_X0Y0 (* LOC = "SLICE_X0Y0" *) reg placed_reg; VHDL 構文 VHDL 属性は次の よ う に宣言 し ます。 attribute LOC : string; イ ン ス タ ン シエー ト 済み イ ン ス タ ン ス の場合は、 次の よ う に指定 し ます。 attribute LOC of instance_name : label is "site_name"; 説明 : • instance_name は イ ン ス タ ン シエー ト 済みプ リ ミ テ ィ ブの イ ン ス タ ン ス名です。 VHDL の構文例 -- Designates instantiated register instance placed_reg to be placed -- in SLICE site SLICE_X0Y0 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 193 第 3 章 : 主な プ ロパテ ィ の説明 attribute LOC of placed_reg : label is "SLICE_X0Y0"; 推論済み イ ン ス タ ン ス の場合、 VHDL 属性は次の よ う に指定 し ます。 attribute LOC of signal_name : signal is "site_name"; 説明 : • signal_name は 1 つのサ イ ト に配置可能な推論済みプ リ ミ テ ィ ブの信号名です。 VHDL の構文例 -- Designates inferred register placed_reg to be placed in SLICE site SLICE_X0Y0 attribute LOC of placed_reg : signal is "SLICE_X0Y0"; XDC 構文 set_property LOC site_name [get_cells instance_name] 説明 : • instance_name はプ リ ミ テ ィ ブ イ ン ス タ ン ス です。 XDC の構文例 # Designates placed_reg to be placed in SLICE site SLICE_X0Y0 set_property LOC SLICE_X0Y0 [get_cells placed_reg] 影響のある処理 • デザ イ ンの フ ロ アプ ラ ン • place_design 関連項目 123 ページの 「BEL」 207 ページの 「PACKAGE_PIN」 210 ページの 「PBLOCK」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 194 第 3 章 : 主な プ ロパテ ィ の説明 LOCK_PINS LOCK_PINS はセル プ ロ パテ ィ で、 ザ イ リ ン ク ス FPGA デバ イ ス リ ソ ース の物理 LUT 入力 (A6、 A5、 A4...) への論理 LUT 入力 (I0、 I1、 I2...) のマ ッ ピ ン グ を指定 し ます。 タ イ ミ ン グ ク リ テ ィ カルな LUT 入力を、 最高速の A6 お よ び A5 の物理 LUT 入力にマ ッ プす る ために使用す る のが一般的です。 デフ ォ ル ト では、 LUT ピ ンは番号の大 き い も のか ら 小 さ い も のへ順番にマ ッ プ さ れます。 最大番号の論理ピ ンは最大 番号の物理ピ ンにマ ッ プ さ れます。 • A6LUT に配置 さ れた LUT6 のデフ ォ ル ト の ピ ン マ ッ ピ ン グは次の よ う にな り ます。 I5:A6 I4:A5 I3:A4 I2:A3 I1:A2 I0:A1 • A5LUT に配置 さ れた LUT5 のデフ ォ ル ト の ピ ン マ ッ ピ ン グは次の よ う にな り ます。 I5:A5 I4:A4 I3:A3 I2:A2 I1:A1 • A6LUT に配置 さ れた LUT2 のデフ ォ ル ト の ピ ン マ ッ ピ ン グは次の よ う にな り ます。 I1:A6 I0:A5 LOCK_PINS プ ロ パテ ィ は Vivado 配線で使用 さ れますが、 タ イ ミ ン グ を改善で き る よ う な場合で も 、 ロ ッ ク さ れてい る LUT での ピ ン マ ッ ピ ン グは変更 さ れ ません。 LOCK_PINS は指定配線で も 重要です。 指定配線に よ り 接続 さ れて い る ピ ンが別の ピ ン と ス ワ ッ プ さ れ る 場合、 指定配線はその LUT の接続 と 一致 し な く な り 、 エ ラ ーにな り ます。 指 定配線ネ ッ ト に よ り 駆動 さ れ る LUT セルすべての ピ ンは、 LOCK_PINS を使用 し て ロ ッ ク し てお く 必要があ り ます。 指定配線の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ン テーシ ョ ン』 (UG904) [参照 20] を参照 し て く だ さ い。 注記 : DONT_TOUCH は LOCK_PINS を暗示 し ません。 「phys_opt_design -critical_pin_opt」 と い う コ マ ン ド で最適化を実行する 場合、 LOCK_PINS プ ロ パテ ィ が 設 定 さ れ て い る セ ル は 最 適 化 さ れ ず、 LOCK_PINS で 指定 さ れ て い る ピ ン マ ッ ピ ン グ は 保 持 さ れ ま す。 phys_opt_design コ マ ン ド の詳細は、『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を 参照 し て く だ さ い。 LOCK_PINS プ ロ パテ ィ がセルか ら 削除 さ れ る と 、 ピ ン マ ッ ピ ン グは消去 さ れ、 ピ ン を自由に ス ワ ッ プで き る よ う に な り ます。 し か し 、 現行の ピ ン割 り 当てはす ぐ に変更にはな り ません。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • LUT セル (get_cells) 値 • LOCK_PINS {I0:A6 I1:A5} : 1 つま たは複数の ピ ン マ ッ ピ ン グ ペア。論理ピ ン と 物理ピ ンのペア を使用 し て、 LUT 論理ピ ンが LUT 物理ピ ンに割 り 当て ら れます。 ° LOCK_PINS の値にはピ ン マ ッ ピ ン グ を順不同に リ ス ト で き 、 HDL の場合はカ ン マで、 XDC の場合はホ ワ イ ト スペース で区切 り ます。 ° イ ン ス タ ン ス ピ ンの範囲は LUT1 の場合は I0、 LUT6 の場合は I0 か ら I5 ま でにな り ます。 物理ピ ンの範囲 は、 LUT6 の場合は A6 (最速) か ら A1 ま で、 LUT5 の場合は A5 (最速) か ら A1 ま でにな り ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 195 第 3 章 : 主な プ ロパテ ィ の説明 ヒ ン ト : ISE でサポー ト さ れてい る ALL の値、 ま たは ALL を暗示す る 値な し は、 Vivado Design Suite ではサポー ト さ れてい ません。 すべての ピ ン を ロ ッ ク す る には、 各ピ ン を明示的に指定す る 必要があ り ます。 リ ス ト さ れていない論 理ピ ンは、 デフ ォ ル ト のマ ッ ピ ン グで物理ピ ンにマ ッ プ さ れます。 構文 Verilog 構文 LOCK_PINS の値は Verilog 属性 と し て、 イ ン ス タ ン シエー ト さ れた LUT セル (LUT6、 LUT5 な ど) に配置 し て割 り 当 て る こ と がで き ます。 次の例は、 LOCK_PINS を使用 し て、 I1 を A5 に、 I2 を A6 に ピ ン マ ッ プ し 、 LUT_inst_0 と い う LUT セルに配置 し て い ます。 (* LOCK_PINS = "I1:A5, I2:A6" *) LUT6 #(.INIT(64'h1) ) LUT_inst_0 (... Verilog 例 module top ( i0, i1, i2, i3, i4, i5, o0); input i0; input i1; input i2; input i3; input i4; input i5; output o0; (* LOCK_PINS = "I1:A5,I2:A6" *) LUT6 #( .INIT(64'h0000000000000001)) LUT_inst_0 (.I0(i0), .I1(i1), .I2(i2), .I3(i3), .I4(i4), .I5(i5), .O(o0)); endmodule VHDL 構文 LOCK_PINS の値は VHDL 属性 と し て、 イ ン ス タ ン シエー ト さ れた LUT セル (LUT6、 LUT5 な ど) に配置 し て割 り 当 て る こ と がで き ます。 次の例は、 LOCK_PINS を使用 し て、 I1 を A5 に、 I2 を A6 に ピ ン マ ッ プ し 、 LUT_inst_0 と い う LUT セルに配置 し て い ます。 attribute LOCK_PINS : string; Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 196 第 3 章 : 主な プ ロパテ ィ の説明 attribute LOCK_PINS of LUT_inst_0 : label is "I1:A5, I2:A6"; ... VHDL の例 entity top is port ( i0, i1, i2, i3, i4, i5 : in std_logic; o0 : out std_logic ); end entity top; architecture struct of top is attribute lock_pins : string; attribute lock_pins of LUT_inst_0 : label is "I1:A5, I2:A6"; begin LUT_inst_0 : LUT6 generic map ( INIT => "1" ) port map ( I0 => i0, I1 => i1, I2 => i2, I3 => i3, I4 => i4, I5 => i5, O => o0 ); end architecture struct; XDC 構文 Vivado Design Suite で set_property と い う Tcl コ マ ン ド を使用 し 、LUT セルに LOCK_PINS プ ロ パテ ィ を設定で き ます。 set_property LOCK_PINS {pin pairs} [get_cells instance_name] 説明 : • instance_name には LUT セルが 1 つま たは複数入 り ます。 重要 : XDC の場合は Tcl リ ス ト 構文に合わせ る ため、ピ ン ペア を ホ ワ イ ト スペース で区切る 必要があ り ますが、HDL 構文の場合はカ ン マで値を区切 る 必要があ り ます。 XDC の構文例 % set myLUT2 [get_cells u0/u1/i_365] % set_property LOCK_PINS {I0:A5 I1:A6} $myLUT2 % get_property LOCK_PINS $myLUT2 I0:A5 I1:A6 % reset_property LOCK_PINS $myLUT2 % set myLUT6 [get_cells u0/u1/i_768] % set_property LOCK_PINS I0:A6 ; # mapping of I1 through I5 are dont-cares 影響のある処理 • phys_opt_design Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 197 第 3 章 : 主な プ ロパテ ィ の説明 • route_design 関連項目 123 ページの 「BEL」 147 ページの 「DONT_TOUCH」 193 ページの 「LOC」 LUTNM LUTNM を使用す る と 、 互換性のあ る 入力を持つ 2 つの LUT5、 SRL16 ま たは LUTRAM コ ン ポーネ ン ト が同 じ LUT6 サ イ ト に配置 さ れます。 LUTNM はペアで指定する 必要があ り 、 ど ち ら も 同 じ グループ名で互換性のあ る イ ン ス タ ン ス タ イ プであ る 必要があ り ます。 HLUTNM と LUTNM の相違点 ヒ ン ト : HLUTNM と LUTNM の目的は類似 し てい る ので、 同 じ 階層で使用 さ れ る 場合はそれぞれ異な る 値を設定す る 必要があ り ます。 LUTNM と HLUTNM の値が同 じ LUT は Vivado の配線プ ロ グ ラ ム で ま と め ら れ る か、 ま たは値 に関 し て警告 メ ッ セージが表示 さ れます。 • 異な る 階層にあ る 場合 も 含め、 デザ イ ンの ど こ かに存在す る LUTNM を使用 し ます。 • 階層モジ ュ ールの イ ン ス タ ン ス が複数デザ イ ンに含まれ る 場合は、 HLUTNM を使用 し て、 その階層モジ ュ ール の LUT コ ン ポーネ ン ト を ま と め ます。 ° 2 つの LUT コ ン ポーネ ン ト を ま と め る には、 HLUTNM は各階層に 1 つ し か使用で き ません。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • セル (get_cells) ° LUT (LUT1、 LUT2、 LUT3、 LUT4、 LUT5) ° SRL (SRL16E) ° LUTRAM (RAM32X1S) 値 グループ名 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 198 第 3 章 : 主な プ ロパテ ィ の説明 構文 Verilog 構文 Verilog 属性は LUT の イ ン ス タ ン シエーシ ョ ン直前に配置 し ます。 Verilog 属性は、 同 じ 論理階層のペアで使用す る 必 要があ り ます。 (* LUTNM = "group_name" *) Verilog の構文例 // Designates state0_inst to be placed in same LUT6 as state1_inst // LUT5: 5-input Look-Up Table with general output (Mapped to a LUT6) (* LUTNM = "LUT_group1" *) LUT5 #( .INIT(32'ha2a2aea2) // Specify LUT Contents ) state0_inst ( .O(state_out[0]), // LUT general outpu .I0(state_in[0]), // LUT input .I1(state_in[1]), // LUT input .I2(state_in[2]), // LUT input .I3(state_in[3]), // LUT input .I4(state_in[4]) // LUT input ); // End of state0_inst instantiation // LUT5: 5-input Look-Up Table with general output (Mapped to a LUT6) // Virtex-7 // Xilinx HDL Language Template, version 2014.1 (* LUTNM = "LUT_group1" *) LUT5 #( .INIT(32'h00330073) // Specify LUT Contents ) state1_inst ( .O(state_out[1]), // LUT general output .I0(state_in[0]), // LUT input .I1(state_in[1]), // LUT input .I2(state_in[2]), // LUT input .I3(state_in[3]), // LUT input .I4(state_in[4]) // LUT input ); // End of state1_inst instantiation VHDL 構文 VHDL 属性は次の よ う に宣言 し ます。 attribute LUTNM : string; イ ン ス タ ン シエー ト 済み イ ン ス タ ン ス の場合は、 次の よ う に指定 し ます。 attribute LUTNM of instance_name : label is "group_name"; 説明 : • instance_name は LUT1、 LUT2、 LUT3、 LUT4、 LUT5、 SRL16、 ま たは LUTRAM イ ン ス タ ン ス です。 VHDL 属性は、 同 じ 論理階層のペアで使用する 必要があ り ます。 VHDL の構文例 -- Designates state0_inst to be placed in same LUT6 as state1_inst Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 199 第 3 章 : 主な プ ロパテ ィ の説明 attribute LUTNM : string; attribute LUTNM of state0_inst : label is "LUT_group1"; attribute LUTNM of state1_inst : label is "LUT_group1"; begin -- LUT5: 5-input Look-Up Table with general output (Mapped to SLICEM LUT6) state0_inst : LUT5 generic map ( INIT => X"a2a2aea2") -- Specify LUT Contents port map ( O => state_out(0), -- LUT general output I0 => state_in(0), -- LUT input I1 => state_in(1), -- LUT input I2 => state_in(2), -- LUT input I3 => state_in(3), -- LUT input I4 => state_in(4) -- LUT input ); -- End of state0_inst instantiation -- LUT5: 5-input Look-Up Table with general output (Mapped to SLICEM LUT6) -Virtex-7 -- Xilinx HDL Language Template, version 2014.1 State1_inst : LUT5 generic map ( INIT => X"00330073") -- Specify LUT Contents port map ( O => state_out(1), -- LUT general output I0 => state_in(0), -- LUT input I1 => state_in(1), -- LUT input I2 => state_in(2), -- LUT input I3 => state_in(3), -- LUT input I4 => state_in(4) -- LUT input ); -- End of state1_inst instantiation XDC 構文 set_property LUTNM group_name [get_cells instance_name] 説明 : • instance_name は LUT1、 LUT2、 LUT3、 LUT4、 LUT5、 SRL16、 ま たは LUTRAM イ ン ス タ ン ス です。 XDC の構文例 # Designates state0_inst LUT5 to be placed in same LUT6 as state1_inst set_property LUTNM LUT_group1 [get_cells U1/state0_inst] set_property LUTNM LUT_group1 [get_cells U2/state1_inst] 影響のある処理 • place_design 関連項目 「HLUTNM」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 200 第 3 章 : 主な プ ロパテ ィ の説明 LVDS_PRE_EMPHASIS UltraScale で は、 伝送 ラ イ ン で 高周波 ロ ス が 発生す る 高周波信号 の シ グ ナ ル イ ン テ グ リ テ ィ を 改善す る た め、 LVDS_PRE_EMPHASIS プ ロ パテ ィ が使用 さ れます。 あ る I/O 規格を イ ンプ リ メ ン ト す る ド ラ イ バーでの伝送 ラ イ ン ロ ス を補 う ため、 LVDS ト ラ ン ス ミ ッ タ ーのプ リ エン フ ァ シ ス は信号遷移で電圧をブース ト し ます。DDR4 HP I/O バン ク お よ び LVDS TX HP/HR I/O バン ク のプ リ エン フ ァ シ ス は、 シ ン ボル間の干渉を低減 し 、 伝送 ラ イ ン ロ ス の影響を最低限に抑え る ために使用で き ます。 ヒ ン ト : 全体的な シ グナル イ ン テ グ リ テ ィ を向上 さ せ る ため、 ト ラ ン ス ミ ッ タ ーでのプ リ エ ン フ ァ シ ス は、 レ シー バーでの 「EQUALIZATION」 と 組み合わせ る こ と がで き ます。 ト ラ ン ス ミ ッ タ ーのプ リ エン フ ァ シ ス は、 レ シーバー側でのシ グナル イ ン テ グ リ テ ィ に も 重要です。 プ リ エン フ ァ シ ス は信号エ ッ ジ レー ト を高め、 それは周辺信号の ク ロ ス ト ー ク も 高め ます。 プ リ エ ン フ ァ シ ス の影響は伝送 ラ イ ン特性に依存 し てい る ため、 影響が最小限の も ので あ る こ と を確認す る にはシ ミ ュ レーシ ョ ンが必要です。 信号をオーバーエン フ ァ シ スする と 、 信号の質は改善 さ れ る よ り む し ろ悪化す る 可能性 があ り ます。 LVDS_PRE_EMPHASIS=TRUE お よ び LVDS_PRE_EMPHASIS=FALSE を使用する と 、 2 つの異な る I/O 規格にな り 、 1 つの I/O バン ク に配置で き な く な り 、 report_drc 中に次の配置デザ イ ン ルール違反にな る 可能性があ り ます。 ERROR : [DRC 23-20] Rule violation (DIFFSTDLIMIT-1) Too many true differential output standards in bank. アーキテ ク チ ャ サポー ト UltraScale デバ イ ス 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports) 値 • TRUE : 差動入力お よ び双方向バ ッ フ ァ ーのプ リ エン フ ァ シ ス を イ ネーブルに し 、 LVDS I/O を イ ンプ リ メ ン ト し ます。 TRUE に設定す る 場合は、 TX_BITSLICE の ENABLE_PRE_EMPHASIS プ ロ パテ ィ も TRUE に設定す る 必 要があ り ます。 • FALSE : プ リ エン フ ァ シ ス を イ ネーブルに し ません(デフ ォ ル ト )。 構文 Verilog および VHDL 構文 該当な し XDC 構文 XDC フ ァ イ ルでは LVDS_PRE_EMPHASIS 属性を次の よ う な構文で使用 し ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 201 第 3 章 : 主な プ ロパテ ィ の説明 set_property LVDS_PRE_EMPHASIS <TRUE|FALSE> [get_ports port_name] 説明 : • set_property LVDS_PRE_EMPHASIS は、 ト ラ ン ス ミ ッ タ ーでプ リ エン フ ァ シ ス を イ ネーブルに し ます。 • port_name は差動バ ッ フ ァ ーに接続 さ れ る 出力ポー ト ま たは双方向ポー ト です。 関連項目 153 ページの 「EQUALIZATION」 218 ページの 「PRE_EMPHASIS」 MARK_DEBUG ハー ド ウ ェ ア デバ ッ グ用に、 ネ ッ ト を合成中に保持す る よ う にす る には、 MARK_DEBUG を使用 し ます。 最適化に よ り 、 指定信号の名前が削除 さ れて し ま っ た り 、 変更 さ れた り する 可能性を防ぐ こ と がで き ます。 MARK_DEBUG が 設定 さ れてい る 信号の値は、 ハー ド ウ ェ ア デバ ッ グ中に簡単に監視で き ます。 重要 : MARK_DEBUG を使用す る と 、 最適化に影響が出 る ので、 エ リ アが増加 し た り 、 パフ ォーマ ン ス が落ちた り す る こ と があ り ます。 MARK_DEBUG は、 特に、 デザ イ ン の タ イ ミ ン グ ク リ テ ィ カルなエ リ アには慎重に使用 し て く だ さ い。 ま た、 デザ イ ンの同期ポ イ ン ト にのみ適用 し て、 タ イ ミ ン グ ク ロ ージ ャ ーの影響お よ びエ リ ア と 消費電力の 増加を抑え る よ う に し て く だ さ い。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • ネ ッ ト (get_nets) ° 内部配列にア ク セ ス可能なネ ッ ト すべて 注記 : 一部のネ ッ ト には専用 コ ネ ク テ ィ ビ テ ィ な ど があ り 、 デバ ッ グの と き に表示 さ れな く な る よ う な も の があ り ます。 値 • TRUE : デバ ッ グ中に使用す る 信号を保持 し ます。 • FALSE : 信号を保持 し ません。 (デフ ォ ル ト )。 構文 Verilog 構文 こ の属性を設定す る には、 適切な Verilog 属性構文を最上位出力ポー ト 宣言の前に配置 し ます。 (* MARK_DEBUG = "{TRUE|FALSE}" *) Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 202 第 3 章 : 主な プ ロパテ ィ の説明 Verilog の構文例 // Marks an internal wire for debug in Vivado hardware manager (* MARK_DEBUG = "TRUE" *) wire debug_wire, VHDL 構文 こ の属性を設定す る には、 適切な VHDL 属性構文を最上位出力ポー ト 宣言の前に配置 し ます。 VHDL 属性は次の よ う に宣言 し ます。 attribute MARK_DEBUG : string; VHDL 属性は次の よ う に指定 し ます。 attribute MARK_DEBUG of signal_name : signal is “{TRUE|FALSE}”; 説明 : • signal_name は内部信号です。 VHDL の構文例 signal debug_wire : std_logic; attribute MARK_DEBUG : string; -- Marks an internal wire for debug in Vivado hardware manager attribute MARK_DEBUG of debug_wire : signal is “TRUE”; XDC 構文 set_property MARK_DEBUG value [get_nets <net_name>] 説明 : <net_name> は信号名です。 XDC の構文例 # Marks an internal wire for debug set_property MARK_DEBUG TRUE [get_nets debug_wire] 影響のある処理 • synth_design • opt_design • place_design • Vivado ハー ド ウ ェ ア マネージ ャ ー 関連項目 147 ページの 「DONT_TOUCH」 185 ページの 「KEEP」 188 ページの 「KEEP_HIERARCHY」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 203 第 3 章 : 主な プ ロパテ ィ の説明 MAX_FANOUT MAX_FANOUT は、 レ ジ ス タ お よ び信号の フ ァ ン ア ウ ト の制限を設定 し ます。 整数値を指定 し ます。 MAX_FANOUT は、 合成のグ ロ ーバル オプシ ョ ン -fanout_limit のデフ ォ ル ト 値 よ り も 優先 さ れます。 デザ イ ン全体の デ フ ォ ル ト 値 は、 [Project Settings] ダ イ ア ロ グ ボ ッ ク ス の [Synthesis] ペー ジ ま た は synth_design コ マ ン ド の -fanout_limit オプシ ョ ン を使用 し て設定 し ます。 重要 : MAX_FANOUT 属性は強制的に適用 さ れ ま すが、 -fanout_limit はガ イ ド ラ イ ン と し て使用 さ れ、 強制 さ れ ませ ん。 フ ァ ン ア ウ ト を厳密に制御す る 必要があ る 場合は、 MAX_FANOUT を使用 し て く だ さ い。 ま た、 -fanout_limit オ プシ ョ ン と は異な り 、 MAX_FANOUT は制御信号に も 適用 さ れます。 -fanout_limit オプシ ョ ンは制御信号 (セ ッ ト 、 リ セ ッ ト 、ク ロ ッ ク イ ネーブルな ど) には適用 さ れないので、こ れ ら の信号を複製す る 必要があ る 場合は MAX_FANOUT を使用 し て く だ さ い。 こ の属性は、 レ ジ ス タ お よ び組み合わせ信号にのみ使用で き ます。 フ ァ ン ア ウ ト の制限に従 う ため、 レ ジ ス タ ま たは 組み合わせ信号を駆動す る 信号が複製 さ れます。 こ の属性は RTL ま たは XDC で設定で き ます。 アーキテ ク チ ャ すべてのデバ イ ス 適用可能エ レ メ ン ト • レ ジ ス タ お よ び組み合わせ信号 値 • 整数値 : 信号を分配す る ために、 ド ラ イ バーを複製する 回数の最大値を指定 し ます。 構文 Verilog 構文 信号 (* max_fanout = 50 *) reg sig1; VHDL 構文 signal sig1 : std_logic; attribute max_fanout : integer; attribute max_fanout of sig1: signal is 50; XDC 構文 set_property MAX_FANOUT <number> [get_nets -hier <net_name>] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 204 第 3 章 : 主な プ ロパテ ィ の説明 影響のある処理 • 合成 ODT ODT (On-Die Termination) プ ロ パテ ィ は、 サポー ト さ れてい る I/O 規格の DCI (digitally controlled impedance) お よ び非 DCI バージ ョ ンの両方に対 し 、 ODT の値を定義する のに使用 し ます。 外部抵抗ではな く ODT を使用す る 利点は、 レ シーバー側の ス タ ブ を完全に除去す る こ と でシ グナル イ ン テ グ リ テ ィ が改善 さ れ る 点です。 ODT は、 HSTL、 SSTL、 POD、 お よ び HSUL 規格の入力で分割終端ま たはシ ン グル終端をサポー ト し てい ます。 I/O バン ク の VCCO は、 予期どお り の動作を得 る ため、 ODT 属性に合わせた電圧レベルに接続 し てお く 必要があ り ます。 特定 I/O 規格に必要 な VCCO レ ベルに関 し て は、 『UltraScale ア ー キ テ ク チ ャ SelectIO リ ソ ー ス ユーザー ガ イ ド 』 (UG571) [参照 8] を参照 し て く だ さ い。 パ ラ レル終端をサポー ト す る I/O 規格の場合は、 DCI は VCCO /2 の電圧レベルのテブナン等価抵抗ま たは分割終端抵 抗を作成 し ます。 POD お よ び HSUL 規格の場合は、 DCI は VCCO 電圧レベルのシ ン グル終端をサポー ト し てい ます。 終端抵抗の正確な値は ODT の値に よ っ て決ま り ます。 分割抵抗の DCI に使用可能な ODT 値は、 RTT_40、 RTT_48、 RTT_60、 RTT_NONE です。 注記 : DCI はハ イ パフ ォーマ ン ス (HP) I/O バン ク でのみ使用可能です。ハ イ レ ン ジ (HR) I/O バン ク では DCI はサポー ト さ れてい ません。 HR お よ び HP の I/O バン ク の両方に、 オプシ ョ ンのキ ャ リ ブ レーシ ョ ン な し のオンチ ッ プ分割終端機能があ り 、 こ れ は、 HSTL お よ び SSTL 規格に対 し 、 タ ーゲ ッ ト 抵抗値の 2 倍の抵抗を付加す る 2 つの内部抵抗器を使用 し てテブナ ン等価回路を作成 し ます。 POD お よ び HSUL の I/O 規格の場合は、 キ ャ リ ブ レーシ ョ ン な し のオンチ ッ プ シ ン グル 終端機能があ り ます。 終端は常に入力にあ り 、 ま た出力バ ッ フ ァ ーが ト ラ イ ス テー ト にな っ てい る 場合は双方向ポー ト にあ り ます。 DCI ベース の I/O 規格を使用す る こ と に よ り 、デザ イ ン で DCI ま たはキ ャ リ ブ レー ト な し の終端の ど ち ら が使用 さ れ る かが決ま り ます。 DCI と キ ャ リ ブ レー ト な し の両方の I/O 規格で、 終端抵抗の値は ODT 属性に よ っ て決ま り ます。 し か し 、 キ ャ リ ブ レー ト な し のオプシ ョ ン と DCI と の重要な違いは、 DCI の場合は、 VRN お よ び VRP ピ ン での外部 基準抵抗にキ ャ リ ブ レー ト す る のですが、 キ ャ リ ブ レー ト な し の入力終端機能の場合は、 温度、 プ ロ セ ス、 電圧の変 動を補正す る ためのキ ャ リ ブ レーシ ョ ン ルーチンのない、ODT 属性に よ っ て決定 さ れ る 内部抵抗を使用する 点です。 アーキテ ク チ ャ サポー ト UltraScale デバ イ ス 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports) ° 入力お よ び双方向バ ッ フ ァ ーに接続 さ れてい る も の 値 • RTT_40 • RTT_48 • RTT_60 • RTT_120 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 205 第 3 章 : 主な プ ロパテ ィ の説明 • RTT_240 • RTT_NONE 注記 : 使用可能な I/O 規格お よ び コ ン フ ィ ギ ュ レーシ ョ ンすべてに対 し 、 すべての値が使用で き る わけではあ り ません。 構文 Verilog および VHDL 構文 該当な し XDC 構文 XDC フ ァ イ ルでは ODT 属性を次の よ う な構文で使用 し ます。 set_property ODT <VALUE> [get_ports port_name] 説明 : • set_property ODT は ODT を イ ネーブルに し ます。 • <Value> には指定の IOSTANDARD に対 し サポー ト さ れてい る ODT 値の 1 つが入 り ます。 • port_name は差動バ ッ フ ァ ーに接続 さ れ る 入力ポー ト ま たは双方向ポー ト です。 関連項目 180 ページの 「IOSTANDARD」 OFFSET_CNTRL レ シーバー オ フ セ ッ ト 制御であ る OFFSET_CNTRL は、 プ ロ セ ス変動を補正す る ため、 UltraScale デバ イ ス で一部の I/O 規格に対 し 使用で き ます。 OFFSET_CNTRL はハ イ パフ ォーマ ン ス (HP) I/O にのみ割 り 当て る こ と がで き ます。 I/O 規格のサブセ ッ ト の場合、 HP I/O バン ク で、 ±35 mV ま でのプ ロ セ ス変動が原因で発生す る 入力バ ッ フ ァ ーのオ フ セ ッ ト を キ ャ ン セルす る オプシ ョ ンが UltraScale アーキ テ ク チ ャ にはあ り ます。 こ の機能は入力お よ び双方向バ ッ フ ァ ー プ リ ミ テ ィ ブに対 し 使用で き ます。 オ フ セ ッ ト キ ャ リ ブ レーシ ョ ン では、 ユーザーの イ ン タ ー コ ネ ク ト ロ ジ ッ ク デザ イ ンに制御 ロ ジ ッ ク を構築す る こ と が求め ら れます。 詳細は、 『UltraScale アーキ テ ク チ ャ SelectIO リ ソ ース ユーザー ガ イ ド 』 (UG571) [参照 8] を参照 し て く だ さ い。 アーキテ ク チ ャ サポー ト UltraScale デバ イ ス 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports) ° 最上位ポー ト Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 206 第 3 章 : 主な プ ロパテ ィ の説明 値 OFFSET_CNTRL 属性に使用で き る 値は次の と お り です。 • CNTRL_NONE (デフ ォ ル ト ) - オ フ セ ッ ト キ ャ ン セルを イ ネーブルに し ません。 • FABRIC - 任意の I/O バン ク でオ フ セ ッ ト キ ャ ン セルを実行 し ます。 重要 : オ フ セ ッ ト キ ャ ン セルを実行す る には、 デバ イ ス にオ フ セ ッ ト 制御回路が必要です。 構文 Verilog および VHDL 構文 該当な し XDC 構文 XDC フ ァ イ ルでは OFFSET_CNTRL 属性を次の よ う な構文で使用 し ます。 set_property OFFSET_CNTRL value [get_ports port_name] 説明 : • set_property OFFSET_CNTRL はオ フ セ ッ ト キ ャ ン セル機能を イ ネーブルに し ます。 • <Value> には有効な OFFSET_CNTRL 値のいずれかが入 り ます。 • port_name は接続 さ れてい る 入力ま たは双方向ポー ト です。 影響のある処理 • 配置 • 配線 PACKAGE_PIN PACKAGE_PIN では、デバ イ ス の物理的なパ ッ ケージ ピ ンへの論理デザ イ ンの最上位ポー ト の割 り 当て ま たは配置を 定義ます。 推奨 : デバ イ ス パ ッ ケージの物理的ピ ン に I/O ポー ト を割 り 当て る には、 LOC ではな く PACKAGE_PIN プ ロ パテ ィ を使用 し ます。 タ ーゲ ッ ト ザ イ リ ン ク ス FPGA のデバ イ ス リ ソ ース に ロ ジ ッ ク セルを割 り 当て る には、 LOC プ ロ パ テ ィ を使用 し ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 207 第 3 章 : 主な プ ロパテ ィ の説明 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports) ° 最上位ポー ト 値 パ ッ ケージ ピ ン名 構文 Verilog 構文 Verilog 属性を ポー ト 宣言の直前に配置 し ます。 (* PACKAGE_PIN = "pin_name" *) Verilog の構文例 // Designates port CLK to be placed on pin B26 (* PACKAGE_PIN = "B26" *) input CLK; VHDL 構文 VHDL 属性は次の よ う に宣言 し ます。 attribute PACKAGE_PIN : string; VHDL 属性は次の よ う に指定 し ます。 attribute PACKAGE_PIN of port_name : signal is "pin_name"; VHDL の構文例 -- Designates CLK to be placed on pin B26 attribute PACKAGE_PIN of CLK : signal is "B26"; XDC 構文 set_property PACKAGE_PIN pin_name [get_ports port_name] XDC の構文例 # Designates CLK to be placed on pin B26 set_property PACKAGE_PIN B26 [get_ports CLK] 影響のある処理 • ピ ン プラ ンニング • place_design Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 208 第 3 章 : 主な プ ロパテ ィ の説明 関連項目 193 ページの 「LOC」 PATH_MODE PATH_MODE は、 フ ァ イ ルを検索す る 際、 ま たはパス ベース の制約ま たはプ ロ パテ ィ を読み出す際に、 Vivado Design Suite でパ ス がど の よ う に処理 さ れ る か を決定する プ ロ パテ ィ です。 プ ロ ジ ェ ク ト のすべての フ ァ イ ル、 お よ びフ ァ イ ル と デ ィ レ ク ト リ を参照する ほ と ん ど のプ ロ パテ ィ に対 し て、 フ ァ イ ルま たはデ ィ レ ク ト リ への相対パ ス と 絶対パ ス の両方を Vivdado Design Suite は保存お よ び維持 し よ う と し ます。プ ロ ジ ェ ク ト を開 く と 、 その フ ァ イ ルお よ びデ ィ レ ク ト リ の検索に、 こ れ ら のパ ス が使用 さ れ ます。 デフ ォ ル ト では、 Vivado Design Suite は こ れ ら のパス の検索に [RelativeFirst] が使用 さ れ る ので、 最初に相対パ ス が、 その後に絶対パ ス が検索 さ れ ます。 PATH_MODE プ ロ パテ ィ を使用す る と 、 Vivado ツールでの指定 し たオブジ ェ ク ト の フ ァ イ ル パ ス ま たはプ ロ パテ ィ の処理方法を変更で き ます。 ヒ ン ト : 一部のパ ス では、 特に Windows でパス の ド ラ イ ブが異な る 場合、 Vivado では相対パス が維持で き ません。 こ れ ら の場合、 絶対パ ス のみが保存 さ れます。 [RelativeFirst] ま たは [AbsoluteFirst] 設定が使用 さ れ る と 、 オブジ ェ ク ト の検索に代替パ ス ま たは 2 つ目のパ ス を使用 す る 必要があ る 場合、 Vivado ツールで警告が表示 さ れます。 アーキテ ク チ ャ サポー ト すべてのデバ イ ス 適用可能なオブ ジ ェ ク ト • ソ ース フ ァ イ ル (get_files) 値 • RelativeFirst : プ ロ ジ ェ ク ト ま での相対パ ス を使用 し て フ ァ イ ルを検索 し ます。 こ のパ ス を使用 し て フ ァ イ ルを 検索で き ない場合は、 絶対パ ス を使用 し ます。 こ れがデフ ォ ル ト 値で、 ほ と ん ど の場合に適 し てい ます。 • AbsoluteFirst : 絶対パス を使用 し て フ ァ イ ルを検索 し ます。 フ ァ イ ルを検索で き ない場合は、 相対パ ス を使用 し ます。 AbsoluteFirst ま たは AbsoluteOnly は、 フ ァ イ ルが決ま っ た リ ポジ ト リ に保存 さ れてい る 場合 (た と えば、 デ ザ イ ン グループ ま たは会社全体で使用 さ れ る 標準フ ァ イ ル) や IP の ラ イ ブ ラ リ に向いてい ます。 • RelativeOnly : 相対パ ス のみを使用 し て フ ァ イ ルを検索 し ます。フ ァ イ ルを検索で き ない場合は、それを示す メ ッ セージが表示 さ れ、 フ ァ イ ルが存在 し ない も の と し て処理 さ れ ま す。 RelativeOnly ま たは AbsoluteOnly 設定は、 同 じ フ ァ イ ル名の フ ァ イ ルが複数あ り 、 正 し い フ ァ イ ルを必ず見つけ出す必要のあ る 場合に向いてい ます。 • AbsoluteOnly : 絶対パ ス のみを使用 し て フ ァ イ ルを検索 し ます。フ ァ イ ルを検索で き ない場合は、それを示す メ ッ セージが表示 さ れ、 フ ァ イ ルが存在 し ない も の と し て処理 さ れます。 構文 Verilog および VHDL 構文 該当な し Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 209 第 3 章 : 主な プ ロパテ ィ の説明 XDC 構文 set_property PATH_MODE AbsoluteFirst [get_files *IP/*] 影響のある処理 • プ ロ ジ ェ ク ト 管理お よ びフ ァ イ ルの位置 PBLOCK PBLOCK は Vivado Design Suite で Pblock に割 り 当て ら れ る セルに設定する 読み出 し 専用のプ ロ パテ ィ です。 Pblock と はセルの集合体で、 1 つま たは複数の長方形のエ リ ア/領域を指 し 、 こ のエ リ アで Pblock に含め ら れ る デバ イ ス リ ソ ース を指定 し ます。 Pblock は、 関連 ロ ジ ッ ク を グループに ま と めて、 タ ーゲ ッ ト デバ イ ス のあ る 領域にそ れを割 り 当て る ため、 フ ロ アプ ラ ン ニ ン グ中に使用 さ れます。デザ イ ンの フ ロ アプ ラ ン ニ ン グでの Pblock の使用につ いては、 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン解析お よ び ク ロ ージ ャ テ ク ニ ッ ク 』 (UG906) [参照 22] を参 照 し て く だ さ い。 Pblock は create_pblock Tcl コ マ ン ド を使用 し て作成 し 、 add_cells_to_pblock コ マ ン ド を使用 し てセルに追 加 し ます。 次の コ ー ド で Pblock を定義 し ます。 create_pblock Pblock_usbEngine add_cells_to_pblock [get_pblocks Pblock_usbEngine] [get_cells -quiet [list usbEngine1]] resize_pblock [get_pblocks Pblock_usbEngine] -add {SLICE_X8Y105:SLICE_X23Y149} resize_pblock [get_pblocks Pblock_usbEngine] -add {DSP48_X0Y42:DSP48_X1Y59} resize_pblock [get_pblocks Pblock_usbEngine] -add {RAMB18_X0Y42:RAMB18_X1Y59} resize_pblock [get_pblocks Pblock_usbEngine] -add {RAMB36_X0Y21:RAMB36_X1Y29} 1 行目は Pblock を作成 し 、 それに名前を指定 し ます。 2 行目は Pblock に ロ ジ ッ ク セルを割 り 当て ます。 こ の場合、 指定の階層モジ ュ ールにあ る セルがすべて Pblock に割 り 当て ら れます。 特定の Pblock に割 り 当て ら れたセルには PBLOCK プ ロ パテ ィ が割 り 当て ら れます。 後続の コ マ ン ド resize_pblock は、 Pblock 内に含まれ る デバ イ ス リ ソ ース の範囲を指定 し て、 Pblock のサ イ ズ を 定義 し ます。 Pblock には、 SLICE/CLB、 DSP48、 RAMB18、 RAMB36 と い う 4 つのデバ イ ス リ ソ ース タ イ プのグ リ ッ ド に分かれてい ます。 こ れ ら の タ イ プに当てはま ら ない ロ ジ ッ ク は、デバ イ ス の任意位置に配置す る こ と がで き ます。 特定の階層レベルにブ ロ ッ ク RAM のみを制約す る には、 それ以外の Pblock グ リ ッ ド をデ ィ ス エーブルに し ます (ま たは単に定義 し ない)。 上記の Tcl コ マ ン ド の詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • セル (get_cells) Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 210 第 3 章 : 主な プ ロパテ ィ の説明 値 • <NAME> : セルが割 り 当て ら れ る Pblock の名前です。 こ の Pblock 名は、 create_pblock コ マ ン ド で Pblock を 作成す る と き に定義 し ます。 構文 Verilog および VHDL 構文 該当な し XDC 構文 Pblock は 次の Tcl コ マ ン ド を使用 し て、 XDC フ ァ イ ルあ る いは直接デザ イ ン で定義す る こ と がで き ます。 create_pblock <pblock_name> XDC の例 次の コ ー ド で Pblock を定義 し ます。 create_pblock Pblock_usbEngine add_cells_to_pblock [get_pblocks Pblock_usbEngine] [get_cells -quiet [list usbEngine1]] resize_pblock [get_pblocks Pblock_usbEngine] -add {SLICE_X8Y105:SLICE_X23Y149} resize_pblock [get_pblocks Pblock_usbEngine] -add {DSP48_X0Y42:DSP48_X1Y59} resize_pblock [get_pblocks Pblock_usbEngine] -add {RAMB18_X0Y42:RAMB18_X1Y59} resize_pblock [get_pblocks Pblock_usbEngine] -add {RAMB36_X0Y21:RAMB36_X1Y29} 影響のある処理 • デザ イ ンの フ ロ アプ ラ ン • place_design 関連項目 123 ページの 「BEL」 138 ページの 「CONTAIN_ROUTING」 193 ページの 「LOC」 154 ページの 「EXCLUDE_PLACEMENT」 POST_CRC POST_CRC は、コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク の巡回冗長検査 (CRC) と い う エ ラ ー検出機能のオン/オ フ を設定 し 、 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ への変更があれば通知 さ れ る よ う に し ます。 POST_CRC プ ロ パテ ィ を イ ネーブルにす る と 、 ビ ッ ト ス ト リ ーム にあ ら か じ め計算 さ れた CRC 値が生成 さ れ ま す。 コ ン フ ィ ギ ュ レーシ ョ ン デー タ フ レームが読み込まれ る と 、 デバ イ ス は コ ン フ ィ ギ ュ レーシ ョ ン デー タ パケ ッ ト か Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 211 第 3 章 : 主な プ ロパテ ィ の説明 ら CRC 値を計算 し ます。 コ ン フ ィ ギ ュ レーシ ョ ン デー タ フ レームの読み込みが終了する と 、 コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ームはデバ イ ス に対 し Check CRC 命令を出力 し 、 それに続いて あ ら か じ め計算 さ れた CRC 値が出力 さ れます。デバ イ ス に よ り 計算 さ れた CRC 値がビ ッ ト ス ト リ ームの期待 CRC 値に一致 し ない と 、デバ イ ス は INIT_B を Low に し 、 コ ン フ ィ ギ ュ レーシ ョ ン を中止 し ます。 詳細は、 『7 シ リ ーズ FPGA コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG470) [参照 1] ま たは 『UltraScale アーキテ ク チ ャ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG570) [参 照 7] を参照 し て く だ さ い。 CRC がデ ィ ス エーブルの場合、 CRC 値の代わ り に定数値が ビ ッ ト ス ト リ ームに挿入 さ れ、 デバ イ ス で CRC 値は算出 さ れません。 アーキテ ク チ ャ サポー ト すべてのデバ イ ス 適用可能なオブ ジ ェ ク ト • デザ イ ン (current_design) ° 現在の イ ンプ リ メ ン ト 済みのデザ イ ン 値 • DISABLE : Post CRC チ ェ ッ ク 機能をデ ィ ス エーブルに し ます (デフ ォ ル ト )。 • ENABLE : Post CRC チ ェ ッ ク 機能を イ エーブルに し ます。 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property POST_CRC ENABLE | DISABLE [current_design] XDC の構文例 set_property POST_CRC Enable [current_design] 影響のある処理 • write_bitstream • launch_runs 関連項目 213 ページの 「POST_CRC_ACTION」 214 ページの 「POST_CRC_FREQ」 215 ページの 「POST_CRC_INIT_FLAG」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 212 第 3 章 : 主な プ ロパテ ィ の説明 216 ページの 「POST_CRC_SOURCE」 POST_CRC_ACTION POST_CRC_ACTION は コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク CRC エ ラ ー検出モー ド に使用 さ れ ま す。 こ のプ ロ パテ ィ は、 CRC の不一致が検出 さ れた と き のデバ イ ス の対処方法を決め る も ので、 その対処方法には、 エ ラ ー訂正、 操作実 行、 コ ン フ ィ ギ ュ レーシ ョ ン停止があ り ます。 リ ー ド バ ッ ク 中、 シ ン ド ロ ーム ビ ッ ト は毎フ レーム計算 さ れます。 シ ン グル ビ ッ ト エ ラ ーが検出 さ れ る と 、 リ ー ド バ ッ ク はす ぐ に中止 さ れ ま す。 POST_CRC_ACTION プ ロ パテ ィ に よ り 訂正が行われ る 場合、 リ ー ド バ ッ ク CRC ロ ジ ッ ク がシ ン グル ビ ッ ト エ ラ ーの訂正を実行 し ます。 エ ラ ーが出てい る フ レームは再度 リ ー ド バ ッ ク さ れ、 シ ン ド ロ ームの情報を使用 し て、 エ ラ ーにな っ てい る ビ ッ ト は修正 さ れて フ レームに書 き 戻 さ れます。 POST_CRC_ACTION が Correct_And_Continue に設定 さ れ て い る 場合は、 リ ー ド バ ッ ク ロ ジ ッ ク が最初の ア ド レ ス か ら 再開始 し ま す。 Correct_And_Halt に設定 さ れてい る 場合は、 リ ー ド バ ッ ク ロ ジ ッ ク は訂正後に停止 し ます。詳細は、『7 シ リ ーズ FPGA コ ン フ ィ ギ ュ レ ーシ ョ ン ユーザー ガ イ ド 』 (UG470) [参照 1] ま たは 『UltraScale アーキ テ ク チ ャ コ ン フ ィ ギ ュ レ ー シ ョ ン ユーザー ガ イ ド 』 (UG570) [参照 7] を参照 し て く だ さ い。 「POST_CRC」 が ENABLE に設定 さ れてい る 場合にのみ こ のプ ロ パテ ィ は使用で き ます。 アーキテ ク チ ャ サポー ト すべてのデバ イ ス 適用可能なオブ ジ ェ ク ト • デザ イ ン (current_design) ° 現在の イ ンプ リ メ ン ト 済みのデザ イ ン 値 • HALT : CRC の不一致が検出 さ れ る と 、 ビ ッ ト ス ト リ ームの リ ー ド バ ッ ク 、 比較 CRC の計算、 そ し て あ ら か じ め 計算 さ れた CRC と の比較が中止にな り ます。 • CONTINUE : CRC の比較に よ り CRC の不一致が検出 さ れ る と 、ビ ッ ト ス ト リ ームの リ ー ド バ ッ ク 、比較 CRC の 計算、 あ ら か じ め計算 さ れた CRC と の比較は続行 し ます。 • CORRECT_AND_CONTINUE : CRC の比較に よ り CRC の不一致が検出 さ れ る と 、 それは訂正 さ れ、 ビ ッ ト ス ト リ ームの リ ー ド バ ッ ク 、 比較 CRC の計算、 あ ら か じ め計算 さ れた CRC と の比較は続行 し ます。 • CORRECT_AND_HALT : CRC の不一致が検出 さ れ る と 、 それは訂正 さ れ、 ビ ッ ト ス ト リ ームの リ ー ド バ ッ ク 、 比較 CRC の計算、 あ ら か じ め計算 さ れた CRC と の比較は中止にな り ます。 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property POST_CRC_ACTION <VALUE> [current_design] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 213 第 3 章 : 主な プ ロパテ ィ の説明 説明 : • <VALUE> には POST_CRC_ACTION プ ロ パテ ィ で使用可能な値の 1 つが入 り ます。 XDC の構文例 set_property POST_CRC_ACTION correct_and_continue [current_design] 影響のある処理 • write_bitstream • launch_runs 関連項目 211 ページの 「POST_CRC」 214 ページの 「POST_CRC_FREQ」 215 ページの 「POST_CRC_INIT_FLAG」 216 ページの 「POST_CRC_SOURCE」 POST_CRC_FREQ POST_CRC_FREQ は、 現在のデザ イ ンに対 し 、 コ ン フ ィ ギ ュ レーシ ョ ン CRC チ ェ ッ ク が実行 さ れ る 周波数を設定 し ます。 「POST_CRC」 が ENABLE に設定 さ れてい る 場合にのみ こ のプ ロ パテ ィ は使用で き ます。 POST_CRC プ ロ パテ ィ を イ ネーブルにす る と 、ビ ッ ト ス ト リ ームの予め計算 さ れてい る 値 と 、コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ セルを リ ー ド バ ッ ク す る こ と で計算 さ れ る 内部 CRC 値を周期的に比較で き る よ う にな り ます。 POST_CRC_FREQ は、 リ ー ド バ ッ ク の周波数を MHz で定義 し 、 デフ ォ ル ト 値は 1MHz です。 アーキテ ク チ ャ サポー ト すべてのデバ イ ス 適用可能なオブ ジ ェ ク ト • デザ イ ン (current_design) ° 現在の イ ンプ リ メ ン ト 済みのデザ イ ン 値 • MHz で周波数を定数で指定 し ます。 使用で き る 値は次の と お り です。 ° 1 2 3 4 6 7 8 10 12 13 16 17 22 25 26 27 33 40 44 50 66 100 ° デフ ォ ル ト = 1 MHz Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 214 第 3 章 : 主な プ ロパテ ィ の説明 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property POST_CRC_FREQ <VALUE> [current_design] 説明 : • <VALUE> には POST_CRC_FREQ プ ロ パテ ィ で使用可能な値の 1 つが入 り ます。 XDC の構文例 set_property POST_CRC_FREQ 50 [current_design] 影響のある処理 • write_bitstream • launch_runs 関連項目 211 ページの 「POST_CRC」 213 ページの 「POST_CRC_ACTION」 215 ページの 「POST_CRC_INIT_FLAG」 216 ページの 「POST_CRC_SOURCE」 POST_CRC_INIT_FLAG POST_CRC_INIT_FLAG は、SEU (Single Event Upset) エ ラ ー信号の出力 と し て INIT_B ピ ン を イ ネーブルにす る か ど う か を決定 し ます。 エ ラ ー コ ンデ ィ シ ョ ンは常に FRAME_ECC サ イ ト か ら 出力 さ れ ます。 し か し 、 POST_CRC_INIT_FLAG が イ ネーブ ルにな っ てい る 場合 (デフ ォ ル ト )、 CRC エ ラ ーが発生する と INIT_B ピ ン も それを フ ラ グ し ます。 「POST_CRC」 が ENABLE に設定 さ れてい る 場合にのみ こ のプ ロ パテ ィ は使用で き ます。 アーキテ ク チ ャ サポー ト すべてのデバ イ ス 適用可能なオブ ジ ェ ク ト • デザ イ ン (current_design) Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 215 第 3 章 : 主な プ ロパテ ィ の説明 ° 現在の イ ンプ リ メ ン ト 済みのデザ イ ン 値 • DISABLE : INIT_B ピ ン を使用せず、 FRAME_ECC サ イ ト が CRC エ ラ ー信号の ソ ース にな り ます。 • ENABLE : INIT_B ピ ンは イ ネーブルにな り 、 こ れが CRC エ ラ ー信号の ソ ース にな り ます。 こ れがデフ ォ ル ト 設 定です。 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property POST_CRC_INIT_FLAG ENABLE | DISABLE [curent_design] XDC の構文例 set_property POST_CRC_INIT_FLAG Enable [current_design] 影響のある処理 • write_bitstream • launch_runs 関連項目 211 ページの 「POST_CRC」 213 ページの 「POST_CRC_ACTION」 214 ページの 「POST_CRC_FREQ」 216 ページの 「POST_CRC_SOURCE」 POST_CRC_SOURCE POST_CRC_SOURCE は、 コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ への変更通知用に コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク CRC のエ ラ ー検出機能が使用 さ れ る と き の、 CRC 値の ソ ース を指定 し ます。 「POST_CRC」 が ENABLE に設定 さ れてい る 場合にのみ こ のプ ロ パテ ィ は使用で き ます。 POST_CRC プ ロ パテ ィ を イ ネーブルにす る と 、 ビ ッ ト ス ト リ ーム にあ ら か じ め計算 さ れた CRC 値が生成 さ れ ま す。 コ ン フ ィ ギ ュ レーシ ョ ン デー タ フ レームが読み込まれ る と 、 デバ イ ス は コ ン フ ィ ギ ュ レーシ ョ ン デー タ パケ ッ ト か ら CRC 値を計算 し ます。 POST_CRC_SOURCE プ ロ パテ ィ は、 期待 CRC 値が予め計算 さ れた値か ら く る も のなのか、 ま たは最初の リ ー ド バ ッ ク の コ ン フ ィ ギ ュ レーシ ョ ン デー タ か ら 得 ら れ る も のなのか を定義 し ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 216 第 3 章 : 主な プ ロパテ ィ の説明 アーキテ ク チ ャ サポー ト 7 シ リ ーズ FPGA 適用可能なオブ ジ ェ ク ト • デザ イ ン (current_design) ° 現在の イ ンプ リ メ ン ト 済みのデザ イ ン 値 • PRE_COMPUTED : ビ ッ ト ス ト リ ームか ら 期待 CRC 値を決定 し ます。 こ れがデフ ォ ル ト 設定です。 • FIRST_READBACK : こ の後繰 り 返 さ れ る リ ー ド バ ッ ク での比較用に、 最初の リ ー ド バ ッ ク か ら 実際の CRC 値を 取得 し ます。 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property POST_CRC_SOURCE FIRST_READBACK | PRE_COMPUTED [current_design] XDC の構文例 set_property POST_CRC_SOURCE PRE_COMPUTED [current_design] 影響のある処理 • write_bitstream • launch_runs 関連項目 211 ページの 「POST_CRC」 213 ページの 「POST_CRC_ACTION」 214 ページの 「POST_CRC_FREQ」 215 ページの 「POST_CRC_INIT_FLAG」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 217 第 3 章 : 主な プ ロパテ ィ の説明 PRE_EMPHASIS 伝送 ラ イ ンで高周波 ロ ス が発生す る 高周波信号のシ グナル イ ン テ グ リ テ ィ を改善する ため、 PRE_EMPHASIS プ ロ パ テ ィ が使用 さ れ ます。 ト ラ ン ス ミ ッ タ ー プ リ エ ン フ ァ シ ス (PRE_EMPHASIS) 機能に よ り 、 あ る I/O 規格の信号 ド ラ イ バーにプ リ エン フ ァ シ ス を使用で き る よ う にな り ます。 ヒ ン ト : 全体的な シ グナル イ ン テ グ リ テ ィ を向上 さ せ る ため、 ト ラ ン ス ミ ッ タ ーでのプ リ エ ン フ ァ シ ス は、 レ シー バーでの 「EQUALIZATION」 と 組み合わせ る こ と がで き ます。 理想的な信号は、 周波数のシ ン ボル間隔内で ロ ジ ッ ク 遷移を実行 し ます。 し か し ロ ス の多い伝送 ラ イ ン ではシ ン ボル 間隔が長 く な る 可能性があ り ます。 伝送 ラ イ ン ロ ス を踏ま え、 プ リ エン フ ァ シ ス は遷移で電圧ゲ イ ン を提供 し ます。 周波数 ド メ イ ンでは、 プ リ エン フ ァ シ ス に よ り デー タ ス ト リ ームの各遷移で高周波が引き 上げ ら れます。 プ リ エン フ ァ シ ス の選択は、 レ シーバー側でのシ グナル イ ン テ グ リ テ ィ に も 重要です。 プ リ エン フ ァ シ ス は信号エ ッ ジ レー ト を高め、 それは周辺信号の ク ロ ス ト ー ク も 高め ます。 プ リ エン フ ァ シ ス の ク ロ ス ト ー ク お よ び信号不連続性の影響は伝送 ラ イ ン特性に依存 し てい る ため、 影響が最小限の も のであ る こ と を確認す る にはシ ミ ュ レーシ ョ ンが必要です。 信号をオーバーエン フ ァ シ スする と 、 信号の質は改善 さ れ る よ り む し ろ悪化す る 可能性があ り ます。 アーキテ ク チ ャ サポー ト UltraScale 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports) 値 PRE_EMPHASIS 属性に使用で き る 値は次の と お り です。 • RDRV_240 : プ リ エン フ ァ シ ス を イ ネーブルに し ます。 イ ネーブルにす る 場合は、 TX_BITSLICE の ENABLE_PRE_EMPHASIS プ ロ パテ ィ も TRUE に設定する 必要があ り ます。 • RDRV_NONE : ト ラ ン ス ミ ッ タ ーのプ リ エン フ ァ シ ス を イ ネーブルに し ません(デフ ォ ル ト )。 構文 Verilog および VHDL 構文 該当な し XDC 構文 XDC フ ァ イ ルでは PRE_EMPHASIS 属性を次の よ う な構文で使用 し ます。 set_property PRE_EMPHASIS value [get_ports port_name] 説明 : • set_property PRE_EMPHASIS は、 ト ラ ン ス ミ ッ タ ーでプ リ エン フ ァ シ ス を イ ネーブルに し ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 218 第 3 章 : 主な プ ロパテ ィ の説明 • port_name は差動バ ッ フ ァ ーに接続 さ れ る 出力ポー ト ま たは双方向ポー ト です。 関連項目 153 ページの 「EQUALIZATION」 201 ページの 「LVDS_PRE_EMPHASIS」 PROCESSING_ORDER PROCESSING_ORDER プ ロ パ テ ィ は、 Vivado Design Suite で XDC フ ァ イ ル が 処理 さ れ る 順 序 を 設定 し ま す。 PROCESSING_ORDER に指定で き る 値は、 EARLY、 NORMAL、 LATE のいずれかです。 デフ ォ ル ト では、Vivado Design Suite は IP コ アの XDC フ ァ イ ルを まず読み込み、それか ら 最上位デザ イ ンの制約フ ァ イ ルセ ッ ト に定義 さ れてい る ユーザー XDCフ ァ イ ルを読み込みます。 こ の順序で処理す る と 、 IP コ アに必要な制約 を IP に定義 し 、後で処理 さ れ る ユーザー制約で こ れ ら の IP 制約を上書き する こ と がで き ます。詳細は、『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 19] の こ のセ ク シ ョ ン を参照 し て く だ さ い。 制約フ ァ イ ルのデフ ォ ル ト の処理順序は次の と お り です。 1. ユーザー制約を EARLY に設定 2. IP 制約を EARLY に設定 (デフ ォ ル ト ) 3. ユーザー制約を NORMAL に設定 4. IP 制約を LATE に設定 ( ク ロ ッ ク 依存関係を含む) 5. ユーザー制約を LATE に設定 共通の PROCESSING_ORDER が設定 さ れてい る ユーザー制約フ ァ イ ルは、 制約セ ッ ト に定義 さ れてい る 順序で処理 さ れ ます。 つ ま り Vivado IDE に表示 さ れてい る 順序で処理 さ れ ます。 Vivado IDE で フ ァ イ ルの コ ンパ イ ル順序を変 更す る か、 reorder_files コ マ ン ド を使用す る と 、 こ の フ ァ イ ルの処理順序を変更で き ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • 制約フ ァ イ ル、 XDC ま たは Tcl (get_files) 値 • EARLY : ほかの制約フ ァ イ ル よ り も 先に、 こ の フ ァ イ ルを処理 し ます。 • NORMAL : EARLY に設定 さ れてい る フ ァ イ ルの後、 LATE に設定 さ れてい る フ ァ イ ルの前に、 こ の フ ァ イ ルを 処理 し ます(デフ ォ ル ト )。 • LATE : ほかの制約フ ァ イ ルの後に、 こ の フ ァ イ ルを処理 し ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 219 第 3 章 : 主な プ ロパテ ィ の説明 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property PROCESSING_ORDER {EARLY | NORMAL | LATE} [get_files <filename>] 説明 : • <filename> は XDC ま たは Tcl フ ァ イ ルの名前にな り ます。 XDC の構文例 set_property PROCESSING_ORDER EARLY [get_files char_fifo_ooc.xdc] 影響のある処理 • 合成 • イ ンプ リ メ ン テーシ ョ ン PROHIBIT PROHIBIT では、 BEL ま たは SITE を配置に使用で き ない よ う に指定 し ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • SITE (get_sites) • BEL (get_bels) 値 • TRUE (ま たは 1) : 指定 し た BEL ま たは SITE が配置中に使用 さ れない よ う に し ます。 構文 Verilog および VHDL 構文 該当な し Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 220 第 3 章 : 主な プ ロパテ ィ の説明 XDC 構文 set_property PROHIBIT 1 [get_sites site] XDC の構文例 # Prohibit the use of package pin Y32 set_property prohibit 1 [get_sites Y32] 影響のある処理 • I/O プ ラ ン ニ ン グ • place_design PULLDOWN 重要 : PULLDOWN プ ロ パテ ィ はサポー ト さ れな く な り ま し た。 「PULLTYPE」 に置 き 換えて く だ さ い。 PULLDOWN は ト ラ イ ス テー ト 出力ま たは双方向ポー ト に ウ ィ ー ク Low を適用 し 、 フ ロ ーテ ィ ン グ し ない よ う に し 、 ト ラ イ ス テー ト ネ ッ ト が駆動 さ れていない と き に フ ロ ーテ ィ ン グ し ない よ う 、 ロ ジ ッ ク Low に確約 し ます。 入力バ ッ フ ァ ー (IBUF な ど)、 ト ラ イ ス テー ト 出力バ ッ フ ァ ー (OBUFT な ど)、 お よ び双方向バ ッ フ ァ ー (IOBUF な ど ) には、 ウ ィ ー ク プルア ッ プ抵抗、 ウ ィ ー ク プルダ ウ ン抵抗、 ま たは ウ ィ ー ク キーパー回路を含め る こ と がで き ま す。 バ ッ フ ァ ーに接続 さ れ て い る ポ ー ト ま た は ネ ッ ト オ ブ ジ ェ ク ト に次の プ ロ パ テ ィ の いずれ か を 設定 し て、 PULLTYPE プ ロ パテ ィ を追加す る と 、 こ の機能を実行で き ます。 • PULLUP • PULLDOWN • KEEPER 注記 : こ のプ ロ パテ ィ が適用 さ れ る と 、 PULLDOWN 機能は、 RTL シ ミ ュ レーシ ョ ン中には表示 さ れません。 RTL シ ミ ュ レーシ ョ ン と イ ンプ リ メ ン ト さ れたデザ イ ン と では、機能的な差が出て く る 可能性があ り ます。こ の機能は、ゲー ト レベルのシ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト を使用 し て検証で き ます。 あ る いは、 こ のプ ロ パテ ィ を使用す る 代わ り に、 PULLDOWN UNISIM を イ ン ス タ ン シエー ト し て、 RTL シ ミ ュ レーシ ョ ンに こ の動作を反映 さ せます。 詳細は、 『Vivado Design Suite 7 シ リ ーズ FPGA ラ イ ブ ラ リ ガ イ ド 』 (UG953) [参照 25] ま たは 『UltraScale アーキ テ ク チ ャ ラ イ ブ ラ リ ガ イ ド 』 (UG974) [参照 26] を参照 し て く だ さ い。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports): 最上位ポー ト に適用 し ます。 値 • TRUE | YES : 駆動 さ れていない と き に信号が フ ロ ーテ ィ ン グ し ない よ う プルダ ウ ン回路を使用 し ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 221 第 3 章 : 主な プ ロパテ ィ の説明 • FALSE | NO : プルダ ウ ン回路を使用 し ません(デフ ォ ル ト )。 構文 Verilog 構文 Verilog 属性をモジ ュ ールま たは イ ン ス タ ン シエーシ ョ ンの直前に配置 し ます。 次の よ う に指定 し ます。 (* PULLDOWN = " {YES|NO|TRUE|FALSE}" *) VHDL 構文 VHDL 属性は次の よ う に宣言 し ます。 attribute pulldown: string; VHDL 属性は次の よ う に指定 し ます。 attribute pulldown of signal_name : signal is “{YES|NO|TRUE|FALSE}”; XDC 構文 set_property PULLDOWN {TRUE|FALSE} [get_ports port_name] 説明 : • port_name は、 入力、 出力、 入出力ポー ト の名前です。 XDC の構文例 # Use a pulldown circuit set_property PULLDOWN TRUE [get_ports wbWriteOut] 影響のある処理 • 論理か ら 物理へのマ ッ ピ ン グ 関連項目 191 ページの 「KEEPER」 224 ページの 「PULLUP」 PULLTYPE 重要 : 「KEEPER」、 「PULLDOWN」、 「PULLUP」 プ ロ パテ ィ はサポー ト さ れな く な り ま し た。 PULLTYPE プ ロ パテ ィ に置 き 換え ら れてい ます。 入力バ ッ フ ァ ー (IBUF な ど)、 ト ラ イ ス テー ト 出力バ ッ フ ァ ー (OBUFT な ど)、 お よ び双方向バ ッ フ ァ ー (IOBUF な ど ) には、 ウ ィ ー ク プルア ッ プ抵抗、 ウ ィ ー ク プルダ ウ ン抵抗、 ま たは ウ ィ ー ク キーパー回路を含め る こ と がで き ま Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 222 第 3 章 : 主な プ ロパテ ィ の説明 す。 バ ッ フ ァ ーに接続 さ れ て い る ポ ー ト ま た は ネ ッ ト オ ブ ジ ェ ク ト に次の プ ロ パ テ ィ の いずれ か を 設定 し て、 PULLTYPE プ ロ パテ ィ を追加す る と 、 こ の機能を実行で き ます。 • PULLUP • PULLDOWN • KEEPER 注記 : こ のプ ロ パテ ィ が適用 さ れ る と 、 KEEPER、 PULLDOWN、 ま たは PULLUP 機能は、 RTL シ ミ ュ レーシ ョ ン中 には表示 さ れません。 RTL シ ミ ュ レーシ ョ ン結果 と 、 イ ンプ リ メ ン ト さ れたデザ イ ン と では、 機能的な差が出て く る 可能性があ り ま す。 RTL シ ミ ュ レーシ ョ ン に こ の動作を反映 さ せ る には、 PULLTYPE プ ロ パテ ィ を使用す る 代わ り に、 オブジ ェ ク ト を含む合成後のゲー ト レベル ネ ッ ト リ ス ト を使用す る か、 デザ イ ン に適切な UNISIM オブジ ェ ク ト を イ ン ス タ ン シエー ト す る と 、 こ の機能を検証で き ます。 差動入力ま たは出力に対 し ては、 次のパ ラ メ ー タ ーを設定 し 、 優先す る 終端ス ト ラ テジ を定義 し ます。 set_parameter iconstr.diffPairPulltype { AUTO | SAME | OPPOSITE } 説明 : • AUTO : すべてのアーキテ ク チ ャ で こ れがデフ ォ ル ト の値です。 ° 7 シ リ ーズ デバ イ ス の場合は、 差動ペアに最後に指定 し た PULLTYPE プ ロ パテ ィ が優先 さ れます。 ° UltraScale お よ び UltraScale+ アーキ テ ク チ ャ の場合は、 AUTO も OPPOSITE も 同 じ です。 • SAME : 正 も 負 も 同 じ 値にな り ます (PULLTYPE プ ロ パテ ィ で定義 さ れてい る 値に よ り ますが、 PULLUP ま たは PULLDOWN にな る )。 • OPPOSITE : PULLTYPE の設定にかかわ ら ず、 P 側は PULLUP、 N 側は PULLDOWN にな り ます。 詳細は、 『Vivado Design Suite 7 シ リ ーズ FPGA ラ イ ブ ラ リ ガ イ ド 』 (UG953) [参照 25] ま たは 『UltraScale アーキ テ ク チ ャ ラ イ ブ ラ リ ガ イ ド 』 (UG974) [参照 26] を参照 し て く だ さ い。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports) : 最上位ポー ト に適用 し ます。 値 • KEEPER : 指定 し たポー ト に接続 さ れたネ ッ ト の値を保持す る ためキーパー回路を使用 し ます。 • PULLDOWN : 駆動 さ れていない と き に信号が フ ロ ーテ ィ ン グ し ない よ う プルダ ウ ン回路を使用 し ます。 • PULLUP : 駆動 さ れていない と き に信号が フ ロ ーテ ィ ン グ し ない よ う プルア ッ プ回路を使用 し ます。 • {} (NULL) : キーパー、 プルダ ウ ン、 ま たはプルア ッ プ回路を使用 し ません。 (デフ ォ ル ト )。 構文 Verilog 構文 Verilog 属性をモジ ュ ールま たは イ ン ス タ ン シエーシ ョ ンの直前に配置 し ます。 次の よ う に指定 し ます。 (* PULLTYPE = " {KEEPER|PULLDOWN|PULLUP| }" *) Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 223 第 3 章 : 主な プ ロパテ ィ の説明 VHDL 構文 VHDL 属性は次の よ う に宣言 し ます。 attribute PULLTYPE: string; VHDL 属性を次の よ う に指定 し ます。 attribute PULLTYPE of signal_name : signal is “{KEEPER|PULLDOWN|PULLUP| }”; XDC 構文 set_property PULLTYPE {KEEPER|PULLDOWN|PULLUP| } [get_ports port_name] 説明 : • port_name は、 入力、 出力、 入出力ポー ト の名前です。 XDC の構文例 set_property PULLTYPE PULLUP [get_ports wbWriteOut] ま たは set_property PULLTYPE {} [get_ports wbWriteOut] 影響のある処理 • 論理か ら 物理へのマ ッ ピ ン グ 関連項目 191 ページの 「KEEPER」 221 ページの 「PULLDOWN」 224 ページの 「PULLUP」 PULLUP 重要 : PULLUP プ ロ パテ ィ はサポー ト さ れな く な り ま し た。 「PULLTYPE」 に置き 換え て く だ さ い。 PULLUP は ト ラ イ ス テー ト 出力ま たは双方向ポー ト に ウ ィ ー ク High を適用 し 、 フ ロ ーテ ィ ン グ し ない よ う に し ます。 ト ラ イ ス テー ト ネ ッ ト が駆動 さ れていない と き に フ ロ ーテ ィ ン グ し ない よ う 、 ロ ジ ッ ク High に確約 し ます。 入力バ ッ フ ァ ー (IBUF な ど)、 ト ラ イ ス テー ト 出力バ ッ フ ァ ー (OBUFT な ど)、 お よ び双方向バ ッ フ ァ ー (IOBUF な ど ) には、 ウ ィ ー ク プルア ッ プ抵抗、 ウ ィ ー ク プルダ ウ ン抵抗、 ま たは ウ ィ ー ク キーパー回路を含め る こ と がで き ま す。 バ ッ フ ァ ーに接続 さ れてい る ポー ト オブジ ェ ク ト に次の値のいずれか を設定 し て、 PULLTYPE プ ロ パテ ィ を追 加す る と 、 こ の機能を実行で き ます。 • PULLUP • PULLDOWN Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 224 第 3 章 : 主な プ ロパテ ィ の説明 • KEEPER 注記 : こ のプ ロ パテ ィ が適用 さ れ る と 、 PULLUP 機能は、 RTL シ ミ ュ レーシ ョ ン中には表示 さ れません。 RTL シ ミ ュ レーシ ョ ン と イ ンプ リ メ ン ト さ れたデザ イ ン と では、 機能的な差が出て く る 可能性があ り ます。 こ の機能は、 ゲー ト レベルのシ ミ ュ レーシ ョ ン ネ ッ ト リ ス ト を使用 し て検証で き ます。 あ る いは、 こ のプ ロ パテ ィ を使用す る 代わ り に、 PULLUP UNISIM を イ ン ス タ ン シエー ト し て、 RTL シ ミ ュ レーシ ョ ンに こ の動作を反映 さ せます。 詳細は、 『Vivado Design Suite 7 シ リ ーズ FPGA ラ イ ブ ラ リ ガ イ ド 』 (UG953) [参照 25] ま たは 『UltraScale アーキ テ ク チ ャ ラ イ ブ ラ リ ガ イ ド 』 (UG974) [参照 26] を参照 し て く だ さ い。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports) : 最上位ポー ト に適用 し ます。 値 • TRUE | YES : 駆動 さ れていない と き に信号が フ ロ ーテ ィ ン グ し ない よ う プルア ッ プ回路を使用 し ます。 • FALSE | NO : プルア ッ プ回路を使用 し ませんデフ ォ ル ト です。 構文 Verilog 構文 Verilog 属性をモジ ュ ールま たは イ ン ス タ ン シエーシ ョ ンの直前に配置 し ます。 次の よ う に指定 し ます。 (* PULLUP = " {YES|NO|TRUE|FALSE}" *) VHDL 構文 VHDL 属性は次の よ う に宣言 し ます。 attribute pullup: string; VHDL 属性は次の よ う に指定 し ます。 attribute pullup of signal_name : signal is “{YES|NO|TRUE|FALSE}”; XDC 構文 set_property PULLUP {TRUE|FALSE} [get_ports port_name] 説明 : • port_name は、 入力、 出力、 入出力ポー ト の名前です。 XDC の構文例 set_property PULLUP TRUE [get_ports wbWriteOut] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 225 第 3 章 : 主な プ ロパテ ィ の説明 影響のある処理 • 論理か ら 物理へのマ ッ ピ ン グ 関連項目 191 ページの 「KEEPER」 221 ページの 「PULLDOWN」 222 ページの 「PULLTYPE」 REF_NAME こ れはデザ イ ンのセルに設定す る 読み出 し 専用のプ ロ パテ ィ で、 セルを識別す る 論理セル名を指定 し ます。 こ の REF_NAME プ ロ パテ ィ は Vivado Design Suite に よ り 自動的に定義 さ れ、 HDL や XDC でユーザーが変更す る こ と はで き ません。 参照用に使用 し ます。 こ のプ ロ パテ ィ はデザ イ ン フ ロ ーには影響 し ませんが、特定セルやほかのオブジ ェ ク ト を識別す る ため、 フ ィ ル タ ー お よ び Vivado Tcl コ マ ン ド ク エ リ ーを定義す る のに非常に便利です。 た と えば、 RAM セルの ク ロ ッ ク ピ ン を選択す る には、 セルの REF_NAME プ ロ パテ ィ に基づいて ピ ン オブジ ェ ク ト を フ ィ ル タ ーにかけ ます。 get_pins -hier */*W*CLK -filter {REF_NAME =~ *RAM* && IS_PRIMITIVE} アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • セル (get_cells) 値 該当な し 構文 該当な し 影響のある処理 なし Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 226 第 3 章 : 主な プ ロパテ ィ の説明 REF_PIN_NAME こ れはデザ イ ンの ピ ンに設定す る 読み出 し 専用のプ ロ パテ ィ で、 ピ ン を識別す る 論理セル名を指定 し ます。 REF_PIN_NAME は、 ピ ンの NAME ま たは HIERARCHICAL NAME か ら 自動的に定義 さ れ、 HDL や XDC でユーザー が変更す る こ と はで き ません。 参照用に使用 し ます。 こ のプ ロ パテ ィ はデザ イ ン フ ロ ーには影響 し ませんが、特定セルやほかのオブジ ェ ク ト を識別す る ため、 フ ィ ル タ ー お よ び Vivado Tcl コ マ ン ド ク エ リ ーを定義す る のに非常に便利です。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • ピ ン (get_pins) 値 該当な し 構文 該当な し 影響のある処理 なし Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 227 第 3 章 : 主な プ ロパテ ィ の説明 RLOC H_SET、 HU_SET、 U_SET な ど のセ ッ ト に割 り 当て ら れてい る ロ ジ ッ ク エ レ メ ン ト の相対的な配置を RLOC 制約は 定義 し ます。 RLOC が RTL ソ ース フ ァ イ ルにあ る 場合、 H_SET、 HU_SET、 U_SET プ ロ パテ ィ は、 合成後のネ ッ ト リ ス ト でセル の読み出 し 専用に RPM プ ロ パテ ィ に変換 さ れ ます。 RLOC プ ロ パテ ィ は保持 さ れ ますが、 合成後には読み出 し 専用 プ ロ パテ ィ にな り ます。 こ れ ら のプ ロ パテ ィ の使用お よ び RPM の定義については、 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 19] を参照 し て く だ さ い。 ヒ ン ト : 階層 RPM を ビル ド す る 際は、synth_design -flatten_hierarchy none を使用 し て RLOC プ ロ パテ ィ が該当す る 階層レベルで保持 さ れ る よ う にす る 必要があ り ます。 タ ーゲ ッ ト デバ イ スへのセ ッ ト 全体の実際の配置には関係な く 、セ ッ ト に含まれ る ほかのエ レ メ ン ト に相対 し てセ ッ ト 内のエ レ メ ン ト の配置を定義で き ます。 た と えば、 RLOC 制約が 1 列に ま と め ら れた 8 個の フ リ ッ プ フ ロ ッ プか ら 成 る グループに適用 さ れてい る 場合、 マ ッ プ プ ロ グ ラ ムはその列を維持 し 、 1 つのユニ ッ ト と し て フ リ ッ プ フ ロ ッ プ のグループ全体を移動 し ます。 それ と は対照的に、 LOC 制約は、 ほかのデザ イ ン エ レ メ ン ト への参照な し に、 タ ー ゲ ッ ト デバ イ ス にデザ イ ン エ レ メ ン ト の絶対 ロ ケーシ ョ ン を定義 し ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • RTL ソ ース フ ァ イ ルの イ ン ス タ ン ス ま たはモジ ュ ール 値 ス ラ イ ス ベース の XY 軸を使用 し て RLOC は指定 さ れます。 RLOC=XmYn 説明 : • m は X 軸の値を示す整数です。 • n は Y 軸の値を示す整数です。 ヒ ン ト : RLOC 制約の X お よ び Y の値はデザ イ ン エ レ メ ン ト 間の順序お よ び関連性を定義 し 、 タ ーゲ ッ ト デバ イ ス での絶対 ロ ケーシ ョ ン を定義す る も のではないため、 こ れ ら の値は負の値にな る 場合があ り ます。 構文 Verilog 構文 RLOC プ ロ パテ ィ は、 RTL ソ ース フ ァ イ ル内で H_SET、 HU_SET、 ま たは U_SET で指定 さ れ る セ ッ ト 内のデザ イ ン エ レ メ ン ト の相対配置を定義す る Verilog 属性です。 Verilog 属性は ロ ジ ッ ク エ レ メ ン ト の イ ン ス タ ン シエーシ ョ ン直 前に配置 し ます。 (* RLOC = "XmYn", HU_SET = "h0" *) FD sr0 (.C(clk), .D(sr_1n), .Q(sr_0)); Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 228 第 3 章 : 主な プ ロパテ ィ の説明 Verilog 例 こ れは、 ffs 階層モジ ュ ールでシ フ ト レ ジ ス タ フ リ ッ プ フ ロ ッ プの RLOC プ ロ パテ ィ を定義す る Verilog モジ ュ ール です。 module inv (input a, output z); LUT1 #(.INIT(2'h1)) lut1 (.I0(a), .O(z)); endmodule // inv module ffs ( input clk, input d, output q ); wire wire wire wire wire wire wire wire sr_0, sr_1, sr_2, sr_3, sr_4, sr_5, sr_6, sr_7, wire inr, inrn, outr; inv inv inv inv inv inv inv inv inv (sr_0, sr_0n); (sr_1, sr_1n); (sr_2, sr_2n); (sr_3, sr_3n); (sr_4, sr_4n); (sr_5, sr_5n); (sr_6, sr_6n); (sr_7, sr_7n); (inr, inrn); (* (* (* (* (* (* (* (* (* FD i0 i1 i2 i3 i4 i5 i6 i7 i8 sr_0n; sr_1n; sr_2n; sr_3n; sr_4n; sr_5n; sr_6n; sr_7n; RLOC = "X0Y0" *) FD sr0 (.C(clk), .D(sr_1n), .Q(sr_0)); RLOC = "X0Y1" *) FD sr1 (.C(clk), .D(sr_2n), .Q(sr_1)); RLOC = "X0Y2" *) FD sr2 (.C(clk), .D(sr_3n), .Q(sr_2)); RLOC = "X0Y3" *) FD sr3 (.C(clk), .D(sr_4n), .Q(sr_3)); RLOC = "X0Y4" *) FD sr4 (.C(clk), .D(sr_5n), .Q(sr_4)); RLOC = "X0Y5" *) FD sr5 (.C(clk), .D(sr_6n), .Q(sr_5)); RLOC = "X0Y6" *) FD sr6 (.C(clk), .D(sr_7n), .Q(sr_6)); RLOC = "X0Y7" *) FD sr7 (.C(clk), .D(inrn), .Q(sr_7)); LOC = "SLICE_X0Y0" *) FD inq (.C(clk), .D(d), .Q(inr)); outq (.C(clk), .D(sr_0n), .Q(outr)); assign q = outr; endmodule // ffs ヒ ン ト : 先の例では、RLOC プ ロ パテ ィ があ る ので、ffs 階層モジ ュ ールの FD イ ン ス タ ン ス に H_SET プ ロ パテ ィ が使 用 さ れてい る こ と が暗示 さ れてい ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 229 第 3 章 : 主な プ ロパテ ィ の説明 先の例では、 ffs モジ ュ ールの イ ン ス タ ン ス に KEEP_HIERARCHY プ ロ パテ ィ を指定 し て、 合成 さ れたデザ イ ンで 階 層を保持 し 、 RPM を定義す る 必要があ り ます。 module top ( input clk, input d, output q ); wire c1, c2; (* RLOC_ORIGIN = "X1Y1", KEEP_HIERARCHY = "YES" *) ffs u0 (clk, d, c1); (* RLOC_ORIGIN = "X3Y3", KEEP_HIERARCHY = "YES" *) ffs u1 (clk, c1, c2); (* RLOC_ORIGIN = "X5Y5", KEEP_HIERARCHY = "YES" *) ffs u2 (clk, c2, q); endmodule // top VHDL 構文 VHDL 制約は次の よ う に宣言 し ます。 attribute RLOC: string; VHDL 制約は次の よ う に指定 し ます。 attribute RLOC of {component_name | entity_name | label_name} : {component|entity|label} is “XmYn”; 説明 : • {component_name | entity_name | label_name} にはデザ イ ン エ レ メ ン ト を指定 し ます。 • {component|entity|label} は指定 し たデザ イ ン エ レ メ ン ト の イ ン ス タ ン ス ID です。 • XmYn は指定 さ れたデザ イ ン エ レ メ ン ト の RLOC 値を定義 し ます。 XDC 構文 RLOC プ ロ パテ ィ は XDC 制約を使用 し ては定義で き ません。 RLOC プ ロ パテ ィ は相対的に配置 さ れたマ ク ロ (RPM) のオブジ ェ ク ト の相対 ロ ケーシ ョ ン を定義 し 、 ま た合成 さ れたデザ イ ンのネ ッ ト リ ス ト では読み出 し 専用の RPM お よ び RLOC プ ロ パテ ィ にな り ます。 ヒ ン ト : デ ザ イ ン 内 で RPM の よ う に 機能す る マ ク ロ オ ブ ジ ェ ク ト を Vivado Design Suite で 定義す る に は、 create_macro ま たは update_macro を使用 し ます。 こ れ ら の コ マ ン ド の詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 影響のある処理 • 論理か ら 物理へのマ ッ ピ ン グ • place_design • synth_design 関連項目 160 ページの 「H_SET お よ び HU_SET」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 230 第 3 章 : 主な プ ロパテ ィ の説明 228 ページの 「RLOC」 231 ページの 「RLOCS」 233 ページの 「RLOC_ORIGIN」 236 ページの 「RPM」 237 ページの 「RPM_GRID」 242 ページの 「U_SET」 RLOCS RLOCS は、Vivado Design Suite の create_macro Tcl コ マ ン ド に よ り 作成 さ れた XDC マ ク ロ オブジ ェ ク ト に割 り 当 て ら れ る 読み出 し 専用のプ ロ パテ ィ です。RLOCS が update_macro コ マ ン ド でア ッ プデー ト さ れ る と マ ク ロ に割 り 当て ら れます。こ れ ら の コ マ ン ド の詳細は、『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 RPM と 同様に、 XDC マ ク ロ はセル グループ を相対的に配置 し ます。 マ ク ロ は多 く の点で RPM の類似 し てい ますが、 大 き な違い も あ り ます。 • RLOC プ ロ パテ ィ と 、 H_SET、 HU_SET、 ま たは U_SET プ ロ パテ ィ の組み合わせで RTL ソ ース フ ァ イ ルで RPM は定義 さ れます。 • RPM は合成後のデザ イ ン では変更で き ません。 • マ ク ロ は、 相対配置制約に よ り グループ化 さ れた最下位セルか ら 作成 さ れ、 合成後に変更で き ます。 • RPM を自動的にマ ク ロ に変換す る こ と はで き ません。 • RPM はデザ イ ン オブジ ェ ク ト ではな く 、 XDC マ ク ロ コ マ ン ド を RPM に使用す る こ と はで き ません。 rlocs 引数にあ る よ う に、 update_macro コ マ ン ド でRLOCS プ ロ パテ ィ の相対配置の値を指定 し ます。 "cell0 rloc0 cell1 rloc1 … cellN rlocN" XDC マ ク ロ オブジ ェ ク ト の割 り 当て ら れてい る RLOCS プ ロ パテ ィ を変更する には、 update_macro コ マ ン ド を使 用 し ます。 RLOCS プ ロ パテ ィ は XDC マ ク ロ の一部であ る 個々のセルそれぞれに対 し RLOC プ ロ パテ ィ に変換 さ れ ま す。 こ の 後、RLOC プ ロ パテ ィ は、マ ク ロ のセルの相対配置を定義す る こ と に よ り 、RPM に対す る の と 同 じ よ う に機能 し ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • セル (get_cells) 値 • Cell1 RLOC1 Cell2 RLOC2 Cell3 RLOC3... : マ ク ロ のセルの名前 と 、 その相対 ロ ケーシ ョ ンはペアに し ます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 231 第 3 章 : 主な プ ロパテ ィ の説明 構文 Verilog および VHDL 構文 該当な し XDC 構文 XDC マ ク ロ が作成 さ れ、 セルお よ び相対 ロ ケーシ ョ ンが自動入力 さ れ る と き 、 RLOCS プ ロ パテ ィ が間接的に定義 さ れます。 XDC の例 create_macro macro1 update_macro macro1 {u1/sr3 X0Y0 u1/sr4 X1Y0 u1/sr5 X0Y1} report_property -all [get_macros macro1] Property Type Read-only Visible ABSOLUTE_GRID bool true true CLASS string true true NAME string true true RLOCS string* true true Value 0 macro macro1 u1/sr3 X0Y0 u1/sr4 X1Y0 u1/sr5 影響のある処理 • 論理か ら 物理へのマ ッ ピ ン グ • place_design • synth_design 関連項目 160 ページの 「H_SET お よ び HU_SET」 228 ページの 「RLOC」 233 ページの 「RLOC_ORIGIN」 236 ページの 「RPM」 237 ページの 「RPM_GRID」 242 ページの 「U_SET」 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 232 第 3 章 : 主な プ ロパテ ィ の説明 RLOC_ORIGIN RTL デザ イ ンで相対配置マ ク ロ (RPM) の絶対 ロ ケーシ ョ ン、 ま たは LOC を決め る のが RLOC_ORIGIN プ ロ パテ ィ で す。 RPM の定義お よ び RLOC_ORIGIN プ ロ パテ ィ の使用については、 『Vivado Design Suite ユーザー ガ イ ド : 制約の 使用』 (UG903) [参照 19] を参照 し て く だ さ い。 RPM は、 RTL デザ イ ンで H_SET、 HU_SET、 ま たは U_SET プ ロ パテ ィ を使用 し て、 セ ッ ト にデザ イ ン エ レ メ ン ト を 割 り 当て る こ と で定義 さ れます。 こ の後、 RLOC プ ロ パテ ィ を使用 し て、 相互相対的にデザ イ ン エ レ メ ン ト の配置が 割 り 当て ら れます。 タ ーゲ ッ ト デバ イ スへのセ ッ ト 全体の実際の配置には関係な く 、 セ ッ ト に含まれ る ほかのエ レ メ ン ト に相対 し てセ ッ ト 内のエ レ メ ン ト の配置を定義で き ます。 RPM のエ レ メ ン ト 、その相対的配置を定義 し 終え る と 、RLOC_ORIGIN プ ロ パテ ィ で、タ ーゲ ッ ト デバ イ スへの RPM の絶対配置を定義で き ます。 RLOC_ORIGIN プ ロ パテ ィ は、 合成中に LOC 制約に変換 さ れます。 Vivado Design Suite では、 RLOC_ORIGIN プ ロ パテ ィ は RPM の左下 を定義 し ま す。 こ れは、 RLOC_ORIGIN プ ロ パ テ ィ が X0Y0 のデザ イ ン エ レ メ ン ト であ る こ と が一般的です。 RPM の残 り のセルは、 グループの原点を基準 と し た 相対 ロ ケーシ ョ ン (RLOC) を使用 し て配置 さ れます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • RTL ソ ース フ ァ イ ル内の イ ン ス タ ン ス 値 ス ラ イ ス ベース の XY 軸を使用 し て RLOC は指定 さ れます。 RLOC_ORIGIN=XmYn 説明 : • m は整数の値で、 RPM の左下、 タ ーゲ ッ ト デバ イ ス の X 軸の絶対値を表 し ます。 • n は整数の値で、 RPM の左下、 タ ーゲ ッ ト デバ イ ス の Y 軸の絶対値を表 し ます。 構文 Verilog 構文 RLOC_ORIGIN プ ロ パテ ィ は、 タ ーゲ ッ ト デバ イ ス での RPM の絶対配置を定義す る Verilog 属性です。 Verilog 属性 は ロ ジ ッ ク エ レ メ ン ト の イ ン ス タ ン シエーシ ョ ン直前に配置 し ます。 (* RLOC_ORIGIN = "XmYn", HU_SET = "h0" *) FD sr0 (.C(clk), .D(sr_1n), .Q(sr_0)); Verilog 例 次の最上位 Verilog モジ ュ ールは、 デザ イ ンの ffs モジ ュ ールの RLOC_ORIGIN プ ロ パテ ィ を定義 し てい ます。 module top ( Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 233 第 3 章 : 主な プ ロパテ ィ の説明 input clk, input d, output q ); wire c1, c2; (* RLOC_ORIGIN = "X1Y1", KEEP_HIERARCHY = "YES" *) ffs u0 (clk, d, c1); (* RLOC_ORIGIN = "X3Y3", KEEP_HIERARCHY = "YES" *) ffs u1 (clk, c1, c2); (* RLOC_ORIGIN = "X5Y5", KEEP_HIERARCHY = "YES" *) ffs u2 (clk, c2, q); endmodule // top 次の例は最初の例 と 非常に類似 し てい ますが、RLOC_ORIGIN は最初の ffs モジ ュ ール u0 だけに割 り 当て ら れていて、 残 り は相対配置用に RLOC プ ロ パテ ィ で定義 さ れてい る 点が異な り ます。 module top ( input clk, input d, output q ); wire c1, c2; // what would happen if the origin places the RPM outside // device? (* RLOC_ORIGIN = "X74Y15", RLOC = "X0Y0" *) ffs u0 (clk, d, c1); (* RLOC = "X1Y1" *) ffs u1 (clk, c1, c2); (* RLOC = "X2Y2" *) ffs u2 (clk, c2, q); endmodule // top VHDL 構文 VHDL 制約は次の よ う に宣言 し ます。 attribute RLOC_ORIGIN: string; VHDL 制約は次の よ う に指定 し ます。 attribute RLOC_ORIGIN of {component_name | entity_name | label_name} : {component|entity|label} is “XmYn”; 説明 : • {component_name | entity_name | label_name} にはデザ イ ン エ レ メ ン ト を指定 し ます。 • {component|entity|label} は指定 し たデザ イ ン エ レ メ ン ト の イ ン ス タ ン ス ID です。 • XmYn は指定 さ れたデザ イ ン エ レ メ ン ト の RLOC_ORIGIN 値を定義 し ます。 XDC 構文 RLOC_ORIGIN プ ロ パテ ィ は合成 さ れたデザ イ ンで LOC プ ロ パテ ィ に変換 さ れます。タ ーゲ ッ ト デバ イ ス に RPM の エ レ メ ン ト の 1 つを配置す る こ と で、 RPM の LOC プ ロ パテ ィ は指定で き ます。 RPM のほかにエ レ メ ン ト は、 こ の ロ ケーシ ョ ンに相対的に配置 さ れ、 LOC プ ロ パテ ィ に割 り 当て ら れます。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 234 第 3 章 : 主な プ ロパテ ィ の説明 影響のある処理 • 論理か ら 物理へのマ ッ ピ ン グ • place_design • synth_design 関連項目 160 ページの 「H_SET お よ び HU_SET」 228 ページの 「RLOC」 231 ページの 「RLOCS」 236 ページの 「RPM」 237 ページの 「RPM_GRID」 242 ページの 「U_SET」 ROUTE_STATUS ROUTE_STATUS は読み出 し 専用のプ ロ パテ ィ で、 ネ ッ ト 配線の最新情報を反映 さ せる ため、 Vivado 配線プ ロ グ ラ ム でネ ッ ト に割 り 当て ます。 こ のプ ロ パテ ィ は、 get_property ま たは report_property コ マ ン ド を使用 し て、 個々のネ ッ ト 別ま たはネ ッ ト のグループ別に検索で き ます。 デザ イ ン全体の ROUTE_STATUS を確認する には、 report_route_status コ マ ン ド を使用 し ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • ネ ッ ト (get_nets) 値 • ROUTED : ネ ッ ト が完全に配置配線 さ れます。 • PARTIAL : ネ ッ ト のすべての ピ ンお よ びポー ト が配置 さ れ、 ネ ッ ト の一部は配線 さ れてい ますが、 配線 さ れてい ない部分があ る ので route_design を実行する 必要があ り ます。 • UNPLACED : 配置 さ れていない ピ ンやポー ト があ り 、 配置を完了 さ せる ため place_design を実行す る 必要が あ り ます。 • UNROUTED : ネ ッ ト のすべての ピ ンお よ びポー ト が配置 さ れてい ますが、 ネ ッ ト に配線デー タ がないため、配線 を完了 さ せ る のに route_design を実行する 必要があ り ます。 • INTRASITE : タ ーゲ ッ ト デバ イ ス の同 じ サ イ ト 内で配線全体が完了 し ていて、接続を完了 さ せ る のに配線 リ ソ ー ス は不要です。 こ れはエ ラ ーではあ り ません。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 235 第 3 章 : 主な プ ロパテ ィ の説明 • NOLOADS : 配線に論理 ロ ー ド がないか、 配線可能な ロ ー ド ピ ンがないので、 配線は不要です。 こ れはエ ラ ーで はあ り ません。 • NODRIVER : 配線に論理 ド ラ イ バーがないか、 配線可能な ド ラ イ バーがないので、 配線は不要です。 こ れはデザ イ ン エ ラ ーです。 • HIERPORT : 配線可能な ロ ー ド ま たは ド ラ イ バーのない最上位階層ポー ト に配線が接続 さ れてい ます。 こ れはエ ラ ーではあ り ません。 • ANTENNAS : 配線に最低 1 つのア ン テナが含まれ る か (ア ン テナ と はサ イ ト ピ ンに接続する 枝葉を指すが、 その サ イ ト ピ ンが こ の論理ネ ッ ト に接続 さ れてい る こ と を表 し ていない)、 配線に少な く と も 1 つの島が含ま れます (島 と は論理ネ ッ ト に関連付け ら れてい る サ イ ト ピ ンのいずれに も 接続 さ れていない配線の一部を指す)。 こ れは 配線エ ラ ーです。 • CONFLICTS : 配線プ ロ グ ラ ムに次の配線エ ラ ーが 1 つ以上見 ら れます。 ° 配線の競合 : こ の配線の ノ ー ド が 1 つ以上、 ほかの配線、 ま たは同 じ 配線の別の分岐で も 使用 さ れてい ます。 ° サ イ ト ピ ンの競合 : サ イ ト 内のサ イ ト ピ ンに接続 さ れてい る 論理ピ ン と 、サ イ ト 外に配線を介 し て接続 さ れ てい る 論理ネ ッ ト が異な り ます。 ° 無効サ イ ト の競合 : サ イ ト のプ ロ グ ラ ミ ン グが無効な状態であ る サ イ ト のサ イ ト のサ イ ト ピ ンに配線が接 続 さ れていて、 サ イ ト 内の配線が正 し く 接続 さ れてい る か判断で き ない状態です。 • ERROR : 配線ス テー タ ス を判断す る にあ た っ て内部エ ラ ーが発生 し た状態です。 • NONET : 配線ス テー タ ス用に指定 さ れてい る ネ ッ ト オブジ ェ ク ト が存在 し ないか、 ま たは入力 し た よ う には検 出 さ れません。 • NOROUTE : エ ラ ーのため、 指定のネ ッ ト に対 し 配線オブジ ェ ク ト を検出で き ません。 • NOROUTESTORAGE : エ ラ ーのため、 こ のデバ イ ス に対 し ては配線ス ト レージ オブジ ェ ク ト は使用で き ません。 • UNKNOWN : エ ラ ーのため、 配線ス テー ト は計算で き ません。 構文 ROUTE_STATUS プ ロ パテ ィ の値は、 先に説明 し た値の 1 つにな り ます。 ま た、 Vivado 配線に よ り 割 り 当て ら れ る 読 み出 し 専用プ ロ パテ ィ で、 直接変更はで き ません。 影響のある処理 • デザ イ ンの配線 RPM RTL ソ ース フ ァ イ ルで H_SET、 HU_SET、 ま たは U_SET プ ロ パテ ィ を使用 し て定義 さ れたセ ッ ト の ロ ジ ッ ク エ レ メ ン ト に RPM は割 り 当て ら れ、 読み出 し 専用にな っ てい ます。 RTL ソ ー ス フ ァ イ ルに RLOC も あ る 場合は、 H_SET、 HU_SET、 U_SET プ ロ パテ ィ は、 合成後ネ ッ ト リ ス ト でセル に対す る 読み出 し 専用の RPM プ ロ パテ ィ に変換 さ れます。 Vivado Design Suite のテ キ ス ト エデ ィ タ ーで RTL ソ ース フ ァ イ ルを開 く と 、 HU_SET お よ び U_SET が表示 さ れますが、 セル オブジ ェ ク ト の [Properties] ビ ュ ーでは RPM プ ロ パテ ィ が表示 さ れます。 こ れ ら のプ ロ パテ ィ の使用お よ び RPM の定義については、 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 19] を参照 し て く だ さ い。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 236 第 3 章 : 主な プ ロパテ ィ の説明 適用可能なオブ ジ ェ ク ト • 合成 さ れたデザ イ ンのセル (get_cells) 値 • NAME : RTL ソ ース フ ァ イ ルに H_SET、 HU_SET、 ま たは U_SET プ ロ パテ ィ と と も に RLOC があ る 場合のセ ッ ト 定義か ら く る RPM の名前です。 構文 RPM を定義す る ための H_SET、 HU_SET、 ま たは U_SET と RLOC が あ る RTL デザ イ ン を合成す る と RPM プ ロ パ テ ィ は派生 し 、 読み出 し 専用です。 RPM プ ロ パテ ィ を直接定義 し た り 変更す る こ と はで き ません。 関連項目 160 ページの 「H_SET お よ び HU_SET」 228 ページの 「RLOC」 231 ページの 「RLOCS」 233 ページの 「RLOC_ORIGIN」 237 ページの 「RPM_GRID」 242 ページの 「U_SET」 RPM_GRID RPM_GRID プ ロ パテ ィ は RLOC グ リ ッ ド を相対座標ではな く 絶対座標で定義 し ます。 RPM_GRID シ ス テ ムは、 セル が異な る サ イ ト タ イ プ (ス ラ イ ス、 ブ ロ ッ ク RAM、 DSP な ど の組み合わせ) に属す RPM に使用 さ れます。 セルは さ ま ざ ま なサ イ ズのサ イ ト に配置 さ れ る 可能性があ る ので、 タ ーゲ ッ ト デバ イ ス に直接配置で き る RPM_GRID シ ス テ ムでは絶対座標の RPM_GRID を使用 し ます。 RPM_GRID 値は、 Vivado IDE でサ イ ト を選択す る と 、 [Site Properties] ビ ュ ーに表示 さ れます。 座標は、 RPM_X お よ び RPM_Y サ イ ト プ ロ パテ ィ を使用 し て Tcl コ マ ン ド で検索す る こ と も で き ます。 RPM_GRID プ ロ パテ ィ の使用、 絶 対座標を使用 し た RPM の定義については、 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 19] を 参照 し て く だ さ い。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • セル (get_cells) Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 237 第 3 章 : 主な プ ロパテ ィ の説明 値 • ”GRID” : 指定のRLOC が、 通常 RLOC で指定 さ れ る 相対座標ではな く 、 タ ーゲ ッ ト デバ イ ス か ら の絶対座標で あ る こ と を Vivado Design Suite に知 ら せ る ため、 RPM_GRID プ ロ パテ ィ と GRID キーワー ド を組み合わせます。 構文 Verilog 構文 Verilog 属性をモジ ュ ールま たは イ ン ス タ ン シエーシ ョ ンの直前に配置 し ます。 次の よ う に指定 し ます。 (* RPM_GRID = "GRID" *) Verilog 例 module iddr_regs ( input clk, d, output y, z ); (* RLOC = "X130Y195" *) IDDR ireg (.C(clk_i), .D(d), .Q1(q1), .Q2(q2)); defparam ireg.DDR_CLK_EDGE = "SAME_EDGE"; (* RLOC = "X147Y194" *) FD q1reg (.C(clk_i), .D(q1), .Q(y)); (* RLOC = "X147Y194", RPM_GRID = "GRID" *) FD q2reg (.C(clk_i), .D(q2), .Q(z)); endmodule // iddr_regs VHDL 構文 RPM_GRID シ ス テ ム を使用す る には、 まず属性を定義 し 、 それをデザ イ ン エ レ メ ン ト の 1 つに追加 し ます。 attribute RPM_GRID of ram0 : label is "GRID"; VHDL 制約は次の よ う に宣言 し ます。 attribute RPM_GRID : string; VHDL 制約は次の よ う に指定 し ます。 attribute RPM_GRID of {component_name | entity_name} : {component|entity} is “GRID”; XDC 構文 RPM_GRID プ ロ パテ ィ は RTL ソ ース フ ァ イ ルで割 り 当て ら れ、 XDC フ ァ イ ルや Tcl コ マ ン ド では定義す る こ と はで き ません。し か し 、XDC マ ク ロ の場合は、update_macros コ マ ン ド に -absolute_grid オプシ ョ ン を使用 し ます。 影響のある処理 • 論理か ら 物理へのマ ッ ピ ン グ • place_design • synth_design Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 238 第 3 章 : 主な プ ロパテ ィ の説明 関連項目 160 ページの 「H_SET お よ び HU_SET」 228 ページの 「RLOC」 231 ページの 「RLOCS」 233 ページの 「RLOC_ORIGIN」 236 ページの 「RPM」 242 ページの 「U_SET」 SEVERITY SEVERITY プ ロ パ テ ィ を 設定 し て、 Report DRC を 実行す る と き の、 Vivado Design Suite で個々のデザ イ ン ルール チ ェ ッ ク (DRC) に割 り 当て ら れてい る 重要度を変更で き ます。DRC の実行に関 し ては、『Vivado Design Suite ユーザー ガ イ ド : シ ス テ ム レベル デザ イ ン入力』 (UG895) [参照 15] の こ のセ ク シ ョ ン を参照 し て く だ さ い。 ビル ト イ ン DRC、 カ ス タ ム DRC の ど ち ら に対 し て も 、 重要度を設定で き ます。 カ ス タ ム のデザ イ ン ルール チ ェ ッ ク を記述す る 場合は、 『Vivado Design Suite ユーザー ガ イ ド : Tcl ス ク リ プ ト 機能の使用』 (UG894) [参照 14] の こ のセ ク シ ョ ン を参照 し て く だ さ い。 た と えば、 次の コ マ ン ド はエ ラ ーを警告に格下げ し ます。 set_property SEVERITY {Warning} [get_drc_checks REQP-83] 重要 : Vivado ではビル ト イ ン DRC オブジ ェ ク ト の重要度をデ ィ ス エーブルに し た り 、 格下げす る こ と がで き ますが、 不測の結果を招いた り 、デバ イ ス を恒久的に損傷 し て し ま う 可能性があ る ため、で き る 限 り 変更は し ないで く だ さ い。 DRC オブジ ェ ク ト をデフ ォ ル ト 設定に リ セ ッ ト する には、 reset_drc_check と い う Tcl コ マ ン ド を使用 し ます。 ビル ト イ ン DRC チ ェ ッ ク の場合は、 Vivado ツールで定義 さ れてい る デフ ォ ル ト 設定に戻 り ます。 カ ス タ ム DRC の場合は、 create_drc_check コ マ ン ド で作成 し た と き に定義 し たデフ ォ ル ト 設定に戻 り ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • デザ イ ン ルールチ ェ ッ ク オブジ ェ ク ト (get_drc_checks) 値 • Fatal • Error • {Critical Warning} • Warning • Advisory Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 239 第 3 章 : 主な プ ロパテ ィ の説明 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property SEVERITY {<VALUE>} [get_drc_checks <id>] 説明 : • <VALUE> は、 Vivado ツールで認識 さ れてい る DRC 重要度、 Advisory、 Warning、 {Critical Warning}、 Error、 Fatal のいずれかにな り ます。 • <id> は Vivado Design Suite で認識 さ れ る DRC ID です。 XDC の構文例 set_property SEVERITY {Critical Warning} [get_drc_checks RAMW-1] 影響のある処理 • report_drc • write_bitstream 関連項目 183 ページの 「IS_ENABLED」 SLEW SLEW は、 プ ロ グ ラ ム可能な出力 ス ルー レ ー ト を サポー ト す る I/O 規格で コ ン フ ィ ギ ュ レ ーシ ョ ン さ れた出力バ ッ フ ァ ーに対 し 、 出力バ ッ フ ァ ーの スルー レー ト を指定 し ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports) ° • 接続 さ れた出力ポー ト ま たは双方向ポー ト セル (get_cells) ° 出力バ ッ フ ァ ー (すべての OBUF) Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 240 第 3 章 : 主な プ ロパテ ィ の説明 値 • SLOW (デフ ォ ル ト ) • MEDIUM - UltraScale アーキ テ ク チ ャ の場合は、 ハ イ パフ ォーマ ン ス (HP) I/O でのみ使用で き ます。 • FAST 構文 Verilog 構文 I/O バ ッ フ ァ ーを推論す る 際に こ の属性を設定す る には、適切な Verilog 属性構文を最上位出力ポー ト 宣言の前に配置 し ます。 (* DRIVE = "{SLOW|FAST}" *) Verilog の構文例 // Sets the Slew rate to be FAST (* SLEW = "FAST" *) output FAST_DATA, VHDL 構文 I/O バ ッ フ ァ ーを推論す る 際に こ の属性を設定す る には、 適切な VHDL 属性構文を最上位出力ポー ト 宣言の前に配置 し ます。 VHDL 属性は次の よ う に宣言 し ます。 attribute SLEW : string; VHDL 属性は次の よ う に指定 し ます。 attribute SLEW of port_name : signal is value; 説明 : • port_name は最上位出力ポー ト です。 VHDL の構文例 FAST_DATA : out std_logic; attribute SLEW : string; -- Sets the Slew rate to be FAST attribute SLEW of STATUS : signal is “FAST”; XDC 構文 set_property SLEW value [get_ports port_name] 説明 : • port_name は出力ま たは双方向ポー ト です。 XDC の構文例 # Sets the Slew rate to be FAST set_property SLEW FAST [get_ports FAST_DATA] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 241 第 3 章 : 主な プ ロパテ ィ の説明 影響のある処理 • I/O プ ラ ン ニ ン グ • ノ イ ズ レ ポー ト • 消費電力レ ポー ト 関連項目 『Vivado Design Suite 7 シ リ ーズ FPGA ラ イ ブ ラ リ ガ イ ド 』 (UG953) [参照 25] ま たは 『UltraScale アーキ テ ク チ ャ ラ イ ブ ラ リ ガ イ ド 』 (UG974) [参照 26] にあ る 次のデザ イ ン エ レ メ ン ト を参照 し て く だ さ い。 • OBUF • OBUFT • IOBUF • IOBUF_DCIEN • IOBUF_INTERMDISABLE U_SET RLOC 制約を使用 し て、 デザ イ ン階層を ま たいで分散 し てい る デザ イ ン エ レ メ ン ト を 1 つのセ ッ ト に ま と め ます。 U_SET は HDL デザ イ ン ソ ー ス フ ァ イ ル内の属性で、 合成 さ れたデザ イ ンや イ ン プ リ メ ン ト さ れたデザ イ ンには表 れません。 U_SET は、 RPM (Relatively Placed Macro) を RTL デザ イ ン で定義す る と き に使用 さ れます。 こ れ ら のプ ロ パテ ィ の使用お よ び RPM の定義については、 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 19] を参照 し て く だ さ い。 H_SET ま た は HU_SET はデザ イ ン 階層に基づい て ロ ジ ッ ク エ レ メ ン ト のセ ッ ト を 定義す る のに使用 さ れ ま すが、 U_SET を使用す る と 、 ユーザー定義の ロ ジ ッ ク エ レ メ ン ト を手動で作成で き 、 こ のセ ッ ト はデザ イ ンの階層には依 存 し ません。 RTL ソ ース フ ァ イ ルに RLOC も あ る 場合は、 H_SET、 HU_SET、 U_SET プ ロ パテ ィ は、 合成後ネ ッ ト リ ス ト でセル に対す る 読み出 し 専用の RPM プ ロ パテ ィ に変換 さ れます。 Vivado Design Suite のテ キ ス ト エデ ィ タ ーで RTL ソ ース フ ァ イ ルを開 く と 、 HU_SET お よ び U_SET が表示 さ れますが、 セル オブジ ェ ク ト の [Properties] ビ ュ ーでは RPM プ ロ パテ ィ が表示 さ れます。 重要 : 階層モジ ュ ールに U_SET 制約を設定す る と 、 それ以下の階層にあ る RLOC 制約が設定 さ れたすべてのプ リ ミ テ ィ ブ シ ン ボルに U_SET 制約が適用 さ れます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ 適用可能なオブ ジ ェ ク ト 次のデザ イ ン エ レ メ ン ト 、 ま たはそのカ テ ゴ リ ーで U_SET は使用する こ と がで き ます。 特定デザ イ ン エ レ メ ン ト の 詳細については、『Vivado Design Suite 7 シ リ ーズ FPGA ラ イ ブ ラ リ ガ イ ド 』 (UG953) [参照 25] ま たは『UltraScale アー キ テ ク チ ャ ラ イ ブ ラ リ ガ イ ド 』 (UG974) [参照 26] を参照 し て く だ さ い。 • レジス タ Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 242 第 3 章 : 主な プ ロパテ ィ の説明 • マク ロ インスタンス • RAMS* • RAMD* • RAMB* • DSP48* 値 • NAME : U_SET の名前 構文 Verilog 構文 こ れは、 合成後ネ ッ ト リ ス ト で RPM を定義す る 階層ブ ロ ッ ク のセ ッ ト の内容を定義す る ため、 RLOC プ ロ パテ ィ と 組み合わせた Verilog 構文です。 Verilog 属性は ロ ジ ッ ク エ レ メ ン ト の イ ン ス タ ン シエーシ ョ ン直前に配置 し ます。 (* RLOC = "X0Y0", HU_SET = "h0" *) FD sr0 (.C(clk), .D(sr_1n), .Q(sr_0)); Verilog 例 こ れは、 モジ ュ ールでのシ フ ト レ ジ ス タ フ リ ッ プ フ ロ ッ プの RLOC お よ び U_SET プ ロ パテ ィ を定義す る Verilog モ ジ ュ ールです。 module ffs ( input clk, input d, output q ); wire wire wire wire wire wire wire wire sr_0, sr_1, sr_2, sr_3, sr_4, sr_5, sr_6, sr_7, wire inr, inrn, outr; inv inv inv inv inv inv inv inv inv (sr_0, sr_0n); (sr_1, sr_1n); (sr_2, sr_2n); (sr_3, sr_3n); (sr_4, sr_4n); (sr_5, sr_5n); (sr_6, sr_6n); (sr_7, sr_7n); (inr, inrn); i0 i1 i2 i3 i4 i5 i6 i7 i8 sr_0n; sr_1n; sr_2n; sr_3n; sr_4n; sr_5n; sr_6n; sr_7n; (* RLOC = "X0Y0", U_SET = "Uset0" *) FD sr0 (.C(clk), .D(sr_1n), .Q(sr_0)); (* RLOC = "X0Y0", U_SET = "Uset0" *) FD sr1 (.C(clk), .D(sr_2n), .Q(sr_1)); (* RLOC = "X0Y1", U_SET = "Uset0" *) FD sr2 (.C(clk), .D(sr_3n), .Q(sr_2)); Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 243 第 3 章 : 主な プ ロパテ ィ の説明 (* (* (* (* (* (* FD RLOC = "X0Y1", U_SET = "Uset0" *) FD sr3 (.C(clk), .D(sr_4n), .Q(sr_3)); RLOC = "X0Y0", U_SET = "Uset1" *) FD sr4 (.C(clk), .D(sr_5n), .Q(sr_4)); RLOC = "X0Y0", U_SET = "Uset1" *) FD sr5 (.C(clk), .D(sr_6n), .Q(sr_5)); RLOC = "X0Y1", U_SET = "Uset1" *) FD sr6 (.C(clk), .D(sr_7n), .Q(sr_6)); RLOC = "X0Y1", U_SET = "Uset1" *) FD sr7 (.C(clk), .D(inrn), .Q(sr_7)); LOC = "SLICE_X0Y0" *) FD inq (.C(clk), .D(d), .Q(inr)); outq (.C(clk), .D(sr_0n), .Q(outr)); assign q = outr; endmodule // ffs 定義 さ れてい る 特定の階層に設定す る HU_SET プ ロ パテ ィ と は異な り 、 U_SET プ ロ パテ ィ は階層全体に設定で き ま す。 こ の例では、 最上位モジ ュ ールに よ り フ リ ッ プ フ ロ ッ プ モジ ュ ールの イ ン ス タ ン ス が 3 つ定義 さ れてい ますが、 U_SET は Uset_0 お よ び Uset_1 の 2 つ し か作成 さ れてい ません。 こ の 2 つのセ ッ ト には、 次に定義 さ れてい る 3 つの フ リ ッ プ フ ロ ッ プ モジ ュ ール イ ン ス タ ン スすべてか ら のフ リ ッ プ フ ロ ッ プが含まれてい ます。 module top ( input clk, input d, output q ); wire c1, c2; ffs u0 (clk, d, c1); ffs u1 (clk, c1, c2); ffs u2 (clk, c2, q); endmodule // top VHDL 構文 VHDL 属性は次の よ う に宣言 し ます。 attribute U_SET : string; VHDL 制約は次の よ う に指定 し ます。 attribute U_SET of {component_name | entity_name | label_name} : {component|entity|label} is "NAME"; 説明 : • {component_name | entity_name | label_name} にはデザ イ ン エ レ メ ン ト を指定 し ます。 • {component|entity|label} は指定 し たデザ イ ン エ レ メ ン ト の イ ン ス タ ン ス ID です。 • "NAME" には U_SET の名前を指定 し ます。 XDC 構文 U_SET プ ロ パテ ィ は XDC 制約を使用 し ては定義で き ません。 RLOC と と も に ロ ジ ッ ク エ レ メ ン ト に設定 さ れてい る U_SET プ ロ パテ ィ は、 RPM を定義 し 、 その結果合成 さ れたデザ イ ン のネ ッ ト リ ス ト に読み出 し 専用の RPM プ ロ パ テ ィ が設定 さ れます。 ヒ ン ト : デ ザ イ ン 内 で RPM の よ う に 機能す る マ ク ロ オ ブ ジ ェ ク ト を Vivado Design Suite で 定義す る に は、 create_macro ま たは update_macro を使用 し ます。 こ れ ら の コ マ ン ド の詳細は、 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 13] を参照 し て く だ さ い。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 244 第 3 章 : 主な プ ロパテ ィ の説明 影響のある処理 • デザ イ ンの フ ロ アプ ラ ン • place_design • synth_design 関連項目 188 ページの 「KEEP_HIERARCHY」 160 ページの 「H_SET お よ び HU_SET」 228 ページの 「RLOC」 USE_DSP48 USE_DSP48 プ ロ パテ ィ を使用す る と 、 Vivado Design Suite で数学モジ ュ ールが タ ーゲ ッ ト デバ イ ス で DSP48 ブ ロ ッ ク に合成 さ れ る よ う にな り ます。 デ フ ォ ル ト では、 乗算器、 乗加算器、 乗減算器、 乗累算器 タ イ プ の構造が DSP48 ブ ロ ッ ク に割 り 当 て ら れ ま す。 USE_DSP48 プ ロ パテ ィ を指定 し ない場合、 Vivado 合成では ロ ジ ッ ク が自動的に正 し く 推論 さ れます。 加算器、 減算 器、 ア キ ュ ム レー タ も こ れ ら のブ ロ ッ ク に含め る こ と はで き ますが、デフ ォ ル ト では DSP48 ブ ロ ッ ク ではな く ロ ジ ッ ク を使用 し て イ ン プ リ メ ン ト さ れ ます。 USE_DSP48 属性を使用す る と 、 こ のデフ ォ ル ト 動作が変更 さ れ、 デバ イ ス で DSP48 ブ ロ ッ ク を使用 し て こ れ ら の構造が定義 さ れ る よ う に も な り ます。 DSP48 は、 カ ウ ン タ ー、 マルチプ レ ク サー、 お よ びシ フ ト レ ジ ス タ な ど、 数学以外の多 く の ロ ジ ッ ク フ ァ ン ク シ ョ ン を イ ンプ リ メ ン ト す る ために も 使用で き ます。 ただ し 、 マルチプ レ ク サーな ど の複雑なモジ ュ ールの場合は、 手動 で DSP48 を手動で イ ン ス タ ン シエー ト する 必要があ り ます。 こ のプ ロ パテ ィ は、 次の よ う に RTL で信号上の属性 と し て設定で き ます。 (* use_dsp48 = "yes" *) module test(clk, in1, in2, out1); USE_DSP48 は RTL ソ ース でモジ ュ ールに適用で き ますが、 それが指定 さ れたモジ ュ ールにのみ適用 さ れ ます。 下位 モジ ュ ールには個別に指定す る か、 指定 し ないで く だ さ い。 こ れは、 デザ イ ンの階層セルに XDC 制約 と し て適用す る こ と も で き ます。 アーキテ ク チ ャ サポー ト すべてのデバ イ ス 適用可能なオブ ジ ェ ク ト こ の属性は、 RTL の信号、 アーキ テ ク チ ャ お よ び コ ン ポーネ ン ト 、 エ ン テ ィ テ ィ お よ びモジ ュ ールに指定で き ます。 優先順位は次の と お り です。 1. 信号 2. アーキ テ ク チ ャ お よ び コ ン ポーネ ン ト 3. モジ ュ ールお よ びエン テ ィ テ ィ Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 245 第 3 章 : 主な プ ロパテ ィ の説明 値 • YES : DSP48 ブ ロ ッ ク を使用 し て数学フ ァ ン ク シ ョ ン を イ ンプ リ メ ン ト し ます。 • NO : Vivado 合成のデフ ォ ル ト ビヘ イ ビ アーは変更 さ れません。 • LOGIC : UltraScale アーキ テ ク チ ャ のみ。 DSP48 ブ ロ ッ ク を使用 し て大型/幅広の フ ァ ン ク シ ョ ン を イ ンプ リ メ ン ト し ます。 構文 Verilog 構文 (* use_dsp48 = "yes" *) module test(clk, in1, in2, out1); VHDL 構文 attribute use_dsp48 : string; attribute use_dsp48 of P_reg : signal is "no" XDC 構文 set_property use_dsp48 yes [get_cells -hier ….] 影響のある処理 • 合成 USED_IN USED_IN プ ロ パテ ィ は Vivado Design Suite のデザ イ ン フ ァ イ ル (v、 vhd、 xdc、 tcl) に設定 し 、 こ れ ら の フ ァ イ ルが FPGA デザ イ ンの ど の段階で使用 さ れ る か を指定 し ます。 た と えば、 イ ンプ リ メ ン テーシ ョ ンではな く 、 Vivado 合成で XDC フ ァ イ ルを使用す る よ う 、 USED_IN プ ロ パテ ィ で 指定で き ます。 ま た、 合成ではな く シ ミ ュ レーシ ョ ンで HDL ソ ース フ ァ イ ル (v ま たは vhd) を使用す る よ う 指定す る こ と も で き ます。 ヒ ン ト : USED_IN_SYNTHESIS、 USED_IN_SIMULATION、 USED_IN_IMPLEMENTATION プ ロ パテ ィ は USED_IN プ ロ パテ ィ に関連付け ら れてお り 、 ツールに よ り 自動的に USED_IN ({synthesis, simulation, implementation} に変換 さ れ ます。 ま た、 Tcl フ ァ イ ルを単に イ ンプ リ メ ン テーシ ョ ン で使用す る よ う に設定す る のではな く 、 USED_IN opt_design ま た は place_design で使用す る よ う に細か く 設定す る こ と も で き ます。 アーキテ ク チ ャ サポー ト すべてのアーキ テ ク チ ャ Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 246 第 3 章 : 主な プ ロパテ ィ の説明 適用可能なオブ ジ ェ ク ト • フ ァ イル 値 • synthesis • implementation • simulation • out_of_context • opt_design • power_opt_design • place_design • phys_opt_design • route_design • write_bitstream • post_write_bitstream • synth_blackbox_stub • testbench • board • single_language 構文 Verilog および VHDL 構文 該当な し XDC 構文 set_property USED_IN {<value>} [get_files <files>] 説明 : • <value> には有効な USED_IN 値が 1 つま たは複数入 り ます。 • <files> には USED_IN プ ロ パテ ィ を設定す る フ ァ イ ル名が入 り ます。 XDC の構文例 # Designates the specified files as used in simulation set_property USED_IN {synthesis simulation} [get_files *.vhdl] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 247 第 3 章 : 主な プ ロパテ ィ の説明 影響のある処理 • 合成 • シ ミ ュ レーシ ョ ン • イ ンプ リ メ ン テーシ ョ ン • ビ ッ ト ス ト リ ーム生成 USER_CLOCK_ROOT ク ロ ッ ク ド ラ イ バー、 ま たはルー ト を、 タ ーゲ ッ ト デバ イ ス の特定の ク ロ ッ ク 領域ま たは Pblock に割 り 当て る のに 使用 し ます。 USER_CLOCK_ROOT プ ロ パテ ィ は、 デバ イ ス全体の ク ロ ッ ク ス キ ュ ーを管理 し やす く す る ための も のです。 デフ ォ ル ト では、 配置配線ツールで自動的に ク ロ ッ ク ルー ト が割 り 当て ら れ、 そのデザ イ ンに最適な タ イ ミ ン グ特性が達成 さ れます。 ツールで割 り 当て ら れた ク ロ ッ ク ルー ト は、 読み出 し 専用の 「CLOCK_ROOT」 プ ロ パテ ィ で定義 さ れま す。 USER_CLOCK_ROOT を使用す る 場合は、 ク ロ ッ ク ルー ト を手動で割 り 当て る こ と がで き ます。 重要 : USER_CLOCK_ROOT プ ロ パテ ィ はグ ロ ーバル ク ロ ッ ク ネ ッ ト に設定で き 、 グ ロ ーバル ク ロ ッ ク バ ッ フ ァ ー (BUFG) で直接駆動 さ せ る ネ ッ ト セグ メ ン ト にのみ割 り 当て る こ と がで き ます。 USER_CLOCK_ROOT プ ロ パテ ィ は ク ロ ッ ク リ ソ ース配線中に検証 さ れ使用 さ れ る ので、 配置の前に、 割 り 当て を し てお く 必要があ り ます。 し か し 、 プ ロ パテ ィ を配置の後に割 り 当てた場合は、 ク ロ ッ ク ツールを イ ンプ リ メ ン ト す る ために配置を再実行す る 必要があ り ます。 アーキテ ク チ ャ サポー ト UltraScale デバ イ ス 適用可能なオブ ジ ェ ク ト • ネ ッ ト - グ ロ ーバル ク ロ ッ ク ネ ッ ト (get_nets) 値 • <clock_region | pblock_name> : タ ーゲ ッ ト パーツ の ク ロ ッ ク 領域名、 ま たは現在のデザ イ ン で定義 さ れてい る Pblock 名 を 指 定 し ま す。 ク ロ ッ ク 領域 は、 名前 で 指定す る か、 ま た は get_clock_regions コ マ ン ド で clock_region オブジ ェ ク ト と し て渡 し ます。 同様に Pblock も 、 名前で指定す る j か、 ま たは get_pblocks コ マ ン ド で渡 し ます。 • <object> : 1 つま たは複数の ク ロ ッ ク ネ ッ ト 、 ま たはネ ッ ト セグ メ ン ト を指定 し ます。 構文 Verilog および VHDL 構文 該当な し Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 248 第 3 章 : 主な プ ロパテ ィ の説明 XDC 構文 set_property USER_CLOCK_ROOT <clock_region | pblock> <List of clock nets> XDC の構文例 set_property USER_CLOCK_ROOT X1Y0 [get_nets {clk1 clk2}] set_property USER_CLOCK_ROOT [get_clock_regions X0Y0] [get_nets {clk1 clk2}] ヒ ン ト : 次の例に示す よ う に、 グ ロ ーバル バ ッ フ ァ ー イ ン ス タ ン ス、 ま たは出力ピ ン を使用 し て、 ク ロ ッ ク ネ ッ ト を定義す る こ と も で き ます。 set_property USER_CLOCK_ROOT X1Y0 [get_nets -of [get_pins bufferName/O]] 影響のある処理 • 配置 • 配線 関連項目 128 ページの 「CLOCK_BUFFER_TYPE」 133 ページの 「CLOCK_REGION」 134 ページの 「CLOCK_ROOT」 VCCAUX_IO VCCAUX_IO は、 指定 し た I/O の VCCAUX_IO レールの動作電圧を指定 し ます。 VCCAUX_IO プ ロ パテ ィ の割 り 当てが正 し い こ と をチ ェ ッ ク す る DRC があ り ます。 • VCCAUXIOBT (警告) : VCCAUX_IO の値が NORMAL ま たは HIGH にな っ てい る ポー ト が HP バン ク のみに配置 さ れてい る こ と を確認 し ます。 • VCCAUXIOSTD (警告) : VCCAUX_IO の値が NORMAL ま たは HIGH にな っ てい る ポー ト が HR バン ク でのみサ ポー ト さ れてい る IOSTANDARD を使用 し ていない こ と を確認 し ます。 • VCCAUXIO (エ ラ ー ) : VCCAUX_IO の値が NORMAL にな っ てい る ポー ト が、 VCCAUX_IO の値が HIGH にな っ てい る ポー ト と し て同 じ バン ク に制約/配置 さ れていない こ と を確認 し ます。 アーキテ ク チ ャ サポー ト 7 シ リ ーズ FPGA、 お よ び Zynq All Programmable SoC デバ イ ス のハ イ パフ ォーマ ン ス (HP) バン ク I/O のみ 適用可能なオブ ジ ェ ク ト • ポー ト (get_ports) Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 249 第 3 章 : 主な プ ロパテ ィ の説明 値 • DONTCARE (デフ ォ ル ト ) • NORMAL • HIGH 構文 Verilog 構文 こ の属性を設定す る には、 適切な Verilog 属性構文を最上位出力ポー ト 宣言の前に配置 し ます。 (* VCCAUXIO = "{DONTCARE|NORMAL|HIGH}" *) Verilog の構文例 // Specifies a “HIGH” voltage for the VCCAUX_IO rail connected to this I/O (* VCCAUX_IO = "HIGH" *) input ACT3, VHDL 構文 こ の属性を設定す る には、 適切な VHDL 属性構文を最上位出力ポー ト 宣言の前に配置 し ます。 VHDL 属性は次の よ う に宣言 し ます。 attribute VCCAUX_IO : string; VHDL 属性は次の よ う に指定 し ます。 attribute VCCAUX_IO of port_name : signal is value; 説明 : • port_name は最上位ポー ト です。 VHDL の構文例 ACT3 : in std_logic; attribute VCCAUX_IO : string; -- Specifies a HIGH voltage for the VCCAUX_IO rail connected to this I/O attribute VCCAUX_IO of ACT3 : signal is “HIGH”; XDC 構文 set_property VCCAUX_IO value [get_ports port_name] 説明 : • port_name は最上位ポー ト です。 XDC の構文例 # Specifies a HIGH voltage for the VCCAUX_IO rail connected to this I/O set_property VCCAUX_IO HIGH [get_ports ACT3] Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 250 第 3 章 : 主な プ ロパテ ィ の説明 影響のある処理 • I/O プ ラ ン ニ ン グ • place_design • 消費電力レ ポー ト Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 251 付録 A その他の リ ソ ース ザイ リ ン ク ス リ ソ ース ア ンサー、 資料、 ダ ウ ン ロ ー ド 、 フ ォー ラ ム な ど のサポー ト リ ソ ース は、 ザ イ リ ン ク ス サポー ト サ イ ト を参照 し て く だ さ い。 ソ リ ュ ーシ ョ ン セ ン タ ー デバ イ ス、 ツール、 IP のサポー ト については、 ザ イ リ ン ク ス ソ リ ュ ーシ ョ ン セ ン タ ーを参照 し て く だ さ い。 ト ピ ッ ク には、 デザ イ ン ア シ ス タ ン ト 、 ア ド バ イ ザ リ 、 ト ラ ブルシ ュ ー ト ヒ ン ト な ど が含まれます。 参考資料 こ のガ イ ド の補足情報は、 次の資料を参照 し て く だ さ い。 1. 『7 シ リ ーズ FPGA コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG470 : 英語版、 日本語版) 2. 『7 シ リ ーズ FPGA SelectIO リ ソ ース ユーザー ガ イ ド 』 (UG471 : 英語版、 日本語版) 3. 『7 シ リ ーズ FPGA ク ロ ッ キ ン グ リ ソ ース ユーザー ガ イ ド 』 (UG472 : 英語版、 日本語版) 4. 『7 シ リ ーズ FPGA コ ン フ ィ ギ ャ ラ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド 』 (UG474 : 英語版、 日本語版) 5. 『7 シ リ ーズ FPGA パ ッ ケージお よ びピ ン配置ガ イ ド 』 (UG475 : 英語版、 日本語版) 6. 『7 シ リ ーズ FPGA お よ び Zynq-7000 All Programmable SoC XADC デュ アル 12 ビ ッ ト 1MSPS アナ ロ グ-デジ タ ル コ ンバー タ ー ユーザー ガ イ ド 』 (UG480 : 英語版、 日本語版) 7. 『UltraScale アーキ テ ク チ ャ コ ン フ ィ ギ ュ レーシ ョ ン ユーザー ガ イ ド 』 (UG570 : 英語版、 日本語版) 8. 『UltraScale アーキ テ ク チ ャ SelectIO リ ソ ース ユーザー ガ イ ド 』 (UG571 : 英語版、 日本語版) 9. 『UltraScale アーキ テ ク チ ャ ク ロ ッ キ ン グ リ ソ ース ユーザー ガ イ ド 』 (UG572 : 英語版、 日本語版) 10. 『UltraScale アーキ テ ク チ ャ コ ン フ ィ ギ ャ ラ ブル ロ ジ ッ ク ブ ロ ッ ク ユーザー ガ イ ド 』 (UG574 : 英語版、日本語版) 11. 『Kintex UltraScale お よ び Virtex UltraScale FPGA のパ ッ ケージお よ びピ ン配置ユーザー ガ イ ド 』 (UG575 : 英語版、 日本語版) 12. 『UltraScale アーキ テ ク チ ャ シ ス テ ム モニ タ ー ユーザー ガ イ ド 』 (UG580 : 英語版、 日本語版) 13. 『Vivado Design Suite Tcl コ マ ン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) 14. 『Vivado Design Suite ユーザー ガ イ ド : Tcl ス ク リ プ ト 機能の使用』 (UG894) 15. 『Vivado Design Suite ユーザー ガ イ ド : シ ス テ ム レベル デザ イ ン入力』 (UG895) Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 252 付録 A : その他の リ ソ ース 16. 『Vivado Design Suite ユーザー ガ イ ド : IP を使用 し た設計』 (UG896) 17. 『Vivado Design Suite ユーザー ガ イ ド : I/O お よ び ク ロ ッ ク プ ラ ン ニ ン グ』 (UG899) 18. 『Vivado Design Suite ユーザー ガ イ ド : 合成』 (UG901) 19. 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) 20. 『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ン テーシ ョ ン』 (UG904) 21. 『Vivado Design Suite ユーザー ガ イ ド : 階層デザ イ ン』 (UG905) 22. 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン解析お よ び ク ロ ージ ャ テ ク ニ ッ ク 』 (UG906) 23. 『Vivado Design Suite ユーザー ガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908) 24. 『UltraFast 設計手法 (Vivado Design Suite 用)』 (UG949) 25. 『Vivado Design Suite 7 シ リ ーズ FPGA ラ イ ブ ラ リ ガ イ ド 』 (UG953) 26. 『UltraScale アーキ テ ク チ ャ ラ イ ブ ラ リ ガ イ ド 』 (UG974) 27. 『Vivado Design Suite ユーザー ガ イ ド : IP イ ン テ グ レー タ ーを使用 し た IP サブシ ス テ ムの設計』 (UG994) 28. 『LogiCORE IP JTAG to AXI Master 製品ガ イ ド 』 (PG174) 29. 『LogiCORE IP Integrated Bit Error Ratio Tester (IBERT) for 7 Series GTX Transceivers』 (PG132) 30. Vivado Design Suite の資料 ト レーニ ング リ ソ ース ザ イ リ ン ク ス では、本書に含まれ る コ ン セプ ト を説明す る さ ま ざ ま な ト レーニ ン グ コ ースお よ びオン ラ イ ン ビデオを 提供 し てい ます。 次の リ ン ク か ら 関連す る ト レーニ ン グ リ ソ ース を参照 し て く だ さ い。 1. Vivado Design Suite ビデオ チ ュ ー ト リ アル 2. Vivado Design Suite ビデオ チ ュ ー ト リ アル : デザ イ ン制約の概要 3. Vivado での FPGA 設計導入 ト レーニ ン グ コ ース 4. Vivado Design Suite での FPGA 設計実践 5. UltraScale アーキテ ク チ ャ を含むデザ イ ン Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 253 付録 A : その他の リ ソ ース お読み く だ さ い : 重要な法的通知 本通知に基づいて貴殿ま たは貴社 (本通知の被通知者が個人の場合には 「貴殿」 、 法人その他の団体の場合には 「貴社」 。 以下同 じ ) に開示 さ れ る 情報 (以下 「本情報」 と いい ます) は、 ザ イ リ ン ク ス の製品を選択お よ び使用す る こ と のためにのみ提供 さ れ ます。 適 用 さ れ る 法律が許容す る 最大限の範囲で、 (1) 本情報は 「現状有姿」、 お よ びすべて受領者の責任で (with all faults) と い う 状態で提供 さ れ、 ザ イ リ ン ク ス は、 本通知を も っ て、 明示、 黙示、 法定を問わず (商品性、 非侵害、 特定目的適合性の保証を含みますが こ れ ら に限 ら れません)、 すべての保証お よ び条件を負わない (否認す る ) も の と し ます。 ま た、 (2) ザ イ リ ン ク ス は、 本情報 (貴殿ま たは貴 社に よ る 本情報の使用を含む) に関係 し 、 起因 し 、 関連す る 、 いかな る 種類 ・ 性質の損失ま たは損害について も 、 責任を負わない (契約上、 不法行為上 (過失の場合を含む)、 その他のいかな る 責任の法理に よ る かを問わない) も の と し 、 当該損失ま たは損害には、 直接、 間接、 特別、 付随的、 結果的な損失 ま たは損害 (第三者が起 こ し た行為の結果被っ た、 デー タ 、 利益、 業務上の信用の損失、 その他あ ら ゆ る 種類の損失や損害を含みま す) が含 ま れ る も の と し 、 それは、 た と え当該損害や損失が合理的に予見可能で あ っ た り 、 ザ イ リ ン ク ス がそれ ら の可能性について助言を受け ていた場合であ っ た と し て も 同様です。 ザ イ リ ン ク ス は、 本情報に含ま れ る いかな る 誤 り も 訂正す る 義務を負わず、本情報ま たは製品仕様のア ッ プデー ト を貴殿ま たは貴社に知 ら せ る 義務 も 負い ません。事前 の書面に よ る 同意のない限 り 、 貴殿ま たは貴社は本情報を再生産、 変更、 頒布、 ま たは公に展示 し てはな り ません。 一定の製品は、 ザ イ リ ン ク ス の限定的保証の諸条件に従 う こ と と な る ので、 http://japan.xilinx.com/legal.htm#tos で見 ら れ る ザ イ リ ン ク ス の販売条件 を参照 し て く だ さ い。 IP コ アは、 ザ イ リ ン ク ス が貴殿ま たは貴社に付与 し た ラ イ セ ン ス に含ま れ る 保証 と 補助的条件に従 う こ と に な り ます。 ザ イ リ ン ク ス の製品は、 フ ェ イ ルセーフ と し て、 ま たは、 フ ェ イ ルセーフ の動作を要求す る アプ リ ケーシ ョ ンに使用す る ために、設計 さ れた り 意図 さ れた り し てい ません。 その よ う な重大な アプ リ ケーシ ョ ンにザ イ リ ン ク ス の製品を使用す る 場合の リ ス ク と 責任は、 貴殿ま たは貴社が単独で負 う も のです。 http://japan.xilinx.com/legal.htm#tos で見 ら れ る ザ イ リ ン ク ス の販売条件を参照 し て く だ さ い。 こ の資料に関す る フ ィ ー ド バ ッ ク お よ び リ ン ク な ど の問題につ き ま し ては、 [email protected] ま で、 ま たは各ページの 右下にあ る [フ ィ ー ド バ ッ ク 送信] ボ タ ン を ク リ ッ ク す る と 表示 さ れ る フ ォ ーム か ら お知 ら せ く だ さ い。 フ ィ ー ド バ ッ ク は日本語で 入力可能です。 いただ き ま し た ご意見を参考に早急に対応 さ せていただ き ます。 なお、 こ の メ ール ア ド レ スへのお問い合わせは受 け付けてお り ません。 あ ら か じ めご了承 く だ さ い。 Vivado プ ロパテ ィ リ フ ァ レ ン ス UG912 (v2015.4) 2015 年 11 月 18 日 japan.xilinx.com 254