Vivado Design Suite
ユーザー
ガイ ド
合成
UG901 (v2016.4) 2016 年 11 月 30 日この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料に
よっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきまし
ては、必ず最新英語版をご参照ください。
次の表に、 こ の文書の改訂履歴を示 し ます。 日付 バージ ョ ン 改訂履歴 2016 年 11 月 30 日 2016.4 vivado-synthesis-examples.zip への リ ン ク を変更。 第 1 章の 「ボ ト ム ア ッ プ ア ウ ト オブ コ ン テキ ス ト フ ローの設定」か ら テ キ ス ト を削除。 第 5 章の 「固定小数点のサポー ト 」 にシ ミ ュ レーシ ョ ンへの リ ン ク を追加。 2016 年 10 月 21 日 2016.3 11 ページの [-directive] の説明にデフ ォ ル ト 合成ス ト ラ テジ AreaOptimizedMedium の説明 を追加。 図 1-2 を変更。 第 2 章の 「MARK_DEBUG」 に注記を追加。 第 2 章の 「SRL_STYLE」 の注意の記述を変更。 第 2 章の 「USE_DSP48」 に logic 値の説明を追加。 第 3 章の 「外部データ フ ァ イ ルか ら のブ ロ ッ ク RAM 初期化の コー ド 例 (Verilog)」 お よ び第 3 章の 「外部データ フ ァ イ ルか ら のブ ロ ッ ク RAM 初期化の コー ド 例 (VHDL)」 に 注記を追加。 第 3 章の 「Vivado 合成での UltraRAM の推論」 を追加。 第 3 章の 「3D RAM の推論」 を追加。 第 4 章の 「VHDL の定義済み IEEE 固定および浮動小数点パ ッ ケージ」 を削除。 第 4 章の 「VHDL ジ ェ ネ リ ッ ク 」 に注記を追加。 第 5 章の 「固定小数点のサポー ト 」 を追加。 第 6 章の 「イ ン ク ルー ド フ ァ イ ル」 を変更。
233 ページの表 6-5 で $write を 「サポー ト な し」 に変更。表 6-5 に $floor、 $ceil、 $rtoi、 お よ び $itor の ス テータ ス を追加。
第 2 章の 「DIRECT_ENABLE の XDC 例」 を追加 2016 年 4 月 6 日 2016.1 コ ー ド 例を ア ッ プデー ト 第 1 章: 「run ス ト ラ テジの作成」 をわか り やす く 書 き 換え 「新規ス ト ラ テジの作成」 を追加 「合成の使用」 で -directive を変更 「合成の使用」 に -retiming を追加 「合成の使用」、「Tcl での合成の実行」、 お よ び 「Vivado であ ら か じ め定義 さ れてい る合 成ス ト ラ テジ」 に -max_uram、 -max_bram_cascade_height、
-max_uram_cascade_height、 -assert、 お よ び -no_srlextract を追加
図 1-2 を リ リ ース に併せて変更
図 1-5、図 1-6、図 1-11、図 1-12 を リ リ ース に併せて変更 第 2 章:
「RAM_STYLE」 で registers オプシ ョ ン を register オプシ ョ ンに修正
「KEEP_HIERARCHY の例 (VHDL)」 を ア ッ プデー ト
「ASYNC_REG」 を変更
「DONT_TOUCH」 を yes のみを示す よ う 変更
「MARK_DEBUG」 の推奨事項を変更
「EXTRACT_ENABLE」 お よ び 「EXTRACT_RESET」 を追加
「RAM_STYLE」 で、ULTRA オプシ ョ ン を追加 し、 RAM ま たは階層に設定可能で下位階 層には影響 し ない こ と を説明 「XDC フ ァ イ ルでの合成属性の使用」 でテ キ ス ト を変更 第 3 章: 「UltraRAM の コー ド テ ンプレー ト 」 を追加 「SystemVerilog の利点」 の説明を変更 「正ゲー ト お よ び非同期 リ セ ッ ト 付 き ラ ッ チの コ ー ド 例 (Verilog)」 を追加 第 4 章: 「VHDL の assert 文」 に注意記述を追加 第 5 章: 「VHDL-2008 を使用する ための Vivado の設定」 を変更 「サポー ト さ れ る VHDL-2008 の機能」 の注記を削除 「デー タ 型」 で説明を変更 第 6 章: 表 6-5 に $clog2 を追加 し、 SystemVerilog でのみサポー ト さ れる こ と を記述
改訂履歴 . . . 2
第 1 章: Vivado 合成
概要 . . . 7 合成手法 . . . 8 合成の使用 . . . 8 Vivado IP と サー ド パーテ ィ 合成ツール . . . 27 プ ロ セ ス のバ ッ ク グ ラ ウ ン ド への移動 . . . 27 合成実行の監視 . . . 28 合成終了後の フ ロ ー . . . 28 合成結果の解析 . . . 29 合成済みデザ イ ン環境の使用 . . . 30 レ ポー ト の表示 . . . 31 ロ ジ ッ ク の解析 . . . 31 Tcl での合成の実行 . . . 33 RTL 合成のマルチス レ ッ ド . . . 36 Vivado であ ら か じ め定義 さ れてい る合成ス ト ラ テジ . . . 37第 2 章: 合成属性
概要 . . . 39 サポー ト さ れ る 属性 . . . 39 Vivado でのカ ス タ ム属性のサポー ト . . . 56 XDC フ ァ イ ルでの合成属性の使用. . . 57第 3 章: HDL コ ーデ ィ ング手法
概要 . . . 59 VHDL の利点 . . . 59 Verilog の利点 . . . 59 SystemVerilog の利点 . . . 60 フ リ ッ プ フ ロ ッ プ、 レ ジ ス タ 、 お よ び ラ ッ チ . . . 60 ラ ッ チ . . . 64 ト ラ イ ス テー ト . . . 66 シ フ ト レ ジ ス タ . . . 68 ダ イ ナ ミ ッ ク シ フ ト レ ジ ス タ . . . 72 乗算器 . . . 75 複素乗算の コ ー ド 例 . . . 79 DSP ブ ロ ッ ク の前置加算器 . . . 83 UltraScale DSP ブ ロ ッ ク の 2 乗算出機能の使用 . . . 85 FIR フ ィ ル ター . . . 87 偶数丸め (LSB 訂正手法) . . . 92 RAM の HDL コーデ ィ ン グ手法 . . . 98RAM 内容の初期化 . . . 143 3D RAM の推論 . . . 150 ブ ラ ッ ク ボ ッ ク ス . . . 162 FSM コ ンポーネン ト . . . 163 ROM の HDL コーデ ィ ン グ手法 . . . 168
第 4 章: VHDL サポー ト
概要 . . . 171 サポー ト さ れ る VHDL データ型 と サポー ト さ れない VHDL データ型 . . . 171 VHDL オブジ ェ ク ト . . . 175 VHDL のエン テ ィ テ ィ と アーキテ ク チ ャ の記述 . . . 176 VHDL の組み合わせ回路 . . . 185 generate 文 . . . 186 組み合わせプ ロ セ ス . . . 188 VHDL の順序 ロ ジ ッ ク . . . 194 VHDL の初期値 と セ ッ ト / リ セ ッ ト . . . 196 VHDL の関数 と プ ロ シージ ャ . . . 198 VHDL の定義済みパ ッ ケージ . . . 201 独自のVHDL パ ッ ケージの定義 . . . 203 VHDL 構文のサポー ト ス テータ ス . . . 205 VHDL の予約語 . . . 208第 5 章: VHDL-2008 言語サポー ト
概要 . . . 209 VHDL-2008 を使用する ための Vivado の設定 . . . 209 サポー ト さ れ る VHDL-2008 の機能 . . . 210第 6 章: Verilog サポー ト
概要 . . . 219 Verilog デザ イ ン . . . 219 Verilog の機能 . . . 220 Verilog コ ン ス ト ラ ク ト . . . 231 Verilog のシ ス テ ム タ ス ク および関数 . . . 233 変換関数の使用 . . . 234 Verilog プ リ ミ テ ィ ブ . . . 235 Verilog の予約キーワー ド . . . 236 Verilog ビヘ イ ビ アー記述 . . . 237 モジ ュ ール . . . 245 手続 き 代入文 . . . 247 タ ス ク お よ び関数 . . . 253第 7 章: SystemVerilog サポー ト
概要 . . . 261 特定の フ ァ イ ルで SystemVerilog を使用 . . . 261 デー タ 型 . . . 262package 文 . . . 273 合成可能な SystemVerilog コ ン ス ト ラ ク ト . . . 274
第 8 章: 混合言語サポー ト
概要 . . . 278 VHDL と Verilog の混合 . . . 278 イ ン ス タ ン シエーシ ョ ン . . . 278 VHDL お よび Verilog ラ イ ブ ラ リ . . . 279 VHDL お よび Verilog の境界規則 . . . 279 バ イ ン ド . . . 280付録 A: その他の リ ソ ースおよび法的通知
ザ イ リ ン ク ス リ ソ ース . . . 283 ソ リ ュ ーシ ョ ン セン ター . . . 283 Documentation Navigator およびデザ イ ン ハブ. . . 283 参考資料 . . . 284 お読み く だ さ い: 重要な法的通知 . . . 285Vivado 合成
概要
合成は、RTL で記述 さ れたデザ イ ン をゲー ト レベル記述に変換する プ ロ セ ス です。 Vivado® 合成は タ イ ミ ン グ ド リ ブ ンであ り 、 メ モ リ 使用量お よ びパフ ォーマ ン ス で最適化 さ れてい ます。Vivado 合成では、 次の言語の合成可能な サブセ ッ ト がサポー ト さ れます。 • SystemVerilogSystemVerilog (統合ハー ド ウ ェ ア設計、 仕様、 および検証言語) の IEEE 標準規格 (IEEE Std 1800-2012) • Verilog
Verilog ハー ド ウ ェ ア記述言語の IEEE 標準規格 (IEEE 標準規格 1364-2005) • VHDL VHDL 言語の IEEE 標準規格 (IEEE 標準規格 1076-2002) VHDL 2008 • 混合言語 VHDL、 Verilog、 および SystemVerilog の混合をサポー ト Vivado ツールでは、業界標準の Synopsys デザ イ ン制約 (SDC) に基づ く ザ イ リ ン ク ス デザ イ ン制約 (XDC) も サポー ト さ れてい ます。
重要: Vivado 合成では、 UCF 制約はサポー ト されません。 UCF 制約は XDC 制約に変換する必要があ り ます。 詳細 は、 『ISE か ら Vivado Design Suite への移行ガ イ ド 』 (UG911) [参照 15] の 「UCF 制約の XDC 制約への移行」 を参照し て く だ さ い。
合成を設定 し て実行す る には、 次の 2 つの方法があ り ます。 • プ ロ ジ ェ ク ト モー ド を使用
• 非プ ロ ジ ェ ク ト モー ド を使用 (Tcl コ マン ド ま たはス ク リ プ ト を実行 し、 デザ イ ン フ ァ イ ルをユーザーが制御)
操作モー ド の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン フ ローの概要』 (UG892) [参照 1] を参照し て く だ さ い。 こ の章では、 両方のモー ド を使用 し た合成を個別のセ ク シ ョ ンで説明 し ます。
合成手法
Vivado IDE では、 合成お よび イ ンプ リ メ ン テーシ ョ ン run を ボ タ ン を ク リ ッ ク する だけで実行可能な環境が提供 さ れ てい ます。run のデー タ は自動的に管理 さ れ、 さ ま ざ ま な RTL ソ ース バージ ョ ン、 ターゲ ッ ト デバ イ ス、 合成お よ び イ ンプ リ メ ン テーシ ョ ン オプシ ョ ン、 物理制約およびタ イ ミ ン グ制約を使用 し て繰 り 返 し実行で き ます。 Vivado IDE では、 次の操作を実行で き ます。 • ス ト ラ テジ を作成お よ び保存。 ス ト ラ テジ と は、 合成ま たは イ ンプ リ メ ン テーシ ョ ンのデザ イ ン run に適用 さ れ る コ マ ン ド オプシ ョ ンの設定です。 詳細は、「run ス ト ラ テジの作成」 を参照 し て く だ さ い。 • 複数の合成お よ び イ ンプ リ メ ン テーシ ョ ン run を設定 し、 順次に、 ま たはマルチプ ロ セ ッ サ マシ ンで同時に実 行。 詳細は、「合成の実行」 を参照 し て く だ さ い。 • 合成ま たは イ ンプ リ メ ン テーシ ョ ンの進捗状況を監視、 ロ グ レ ポー ト を確認、 run を キ ャ ンセル。 詳細は、「合 成実行の監視」 を参照 し て く だ さ い。
合成の使用
こ のセ ク シ ョ ンでは、Vivado 統合設計環境 (IDE) を使用 し て Vivado 合成を設定および実行する方法を説明 し ます。 各 Vivado IDE 操作の下に、 同等の Tcl コ マン ド を示 し ます。 Tcl コ マン ド の詳細および Tcl の使用方法は、 次のガ イ
ド を参照 し て く だ さ い。
• 『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 6]
• 『Vivado Design Suite ユーザー ガ イ ド : Tcl ス ク リ プ ト 機能の使用』 (UG894) [参照 8]
ビデオ: 詳細は、 次の QuickTake ビデオを参照し て く だ さ い。 • Vivado Design Suite QuickTake ビデオ: 合成オプシ ョ ン
• Vivado Design Suite QuickTake ビデオ: デザ イ ンの合成
合成設定
デザ イ ンの合成オプシ ョ ン を設定す る には、 次の手順に従い ます。 1. Flow Navigator で [Synthesis] → [Synthesis Settings] を ク リ ッ ク し ます。
図 1-2 に示す [Project Settings] ダ イ ア ロ グ ボ ッ ク ス が開き ます。
X-Ref Target - Figure 1-1
2. [Project Settings] ダ イ ア ロ グ ボ ッ ク ス で、 次の よ う に設定し ます。
a. [Synthesis] ページの [Constraints] で、 [Default constraint set] にア ク テ ィ ブな制約セ ッ ト と する制約セ ッ ト を選 択 し ます。 制約セ ッ ト は、 ザ イ リ ン ク ス デザ イ ン制約 (XDC) で記述 さ れたデザ イ ン制約を含む複数の制約 フ ァ イ ルのセ ッ ト です。 デザ イ ン制約には、 次の 2 種類があ り ます。 - 物理制約: ピ ン配置、 ブ ロ ッ ク RAM、 LUT、 フ リ ッ プフ ロ ッ プな どのセルの絶対配置ま たは相対配置、 お よ びデバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ン設定を定義 し ます。 - タ イ ミ ン グ制約: デザ イ ンの周波数要件を定義し ます。 タ イ ミ ン グ制約を設定し ない場合、 デザ イ ンが ワ イ ヤの長 さ お よ び配線の密集度にのみ基づいて最適化 さ れます。
制約管理の詳細は、『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 9] のこ のセ ク シ ョ ンを 参照 し て く だ さ い。
選択 し た制約セ ッ ト は新 し い run に使用 さ れ、 デザ イ ンの変更 も こ の制約セ ッ ト に保存 さ れます。 Tcl コ マン ド
X-Ref Target - Figure 1-2
b. [Options] エ リ アで、 [Strategy] ド ロ ッ プダ ウ ン リ ス ト か ら 合成 run に使用する合成ス ト ラ テジ を選択 し ます。 次の図に示す定義済みス ト ラ テジがあ り ます。 あ ら か じ め定義 さ れた ス ト ラ テジか ら 選択す る か、 ま たは独自の ス ト ラ テジ を定義で き ます。 合成ス ト ラ テジ を選択す る と 、 使用可能な Vivado ス ト ラ テジがダ イ ア ロ グ ボ ッ ク ス に表示 さ れます。 オプシ ョ ンの値 を変更す る と 、「run ス ト ラ テジの作成」 に説明 さ れてい る よ う に、 合成ス ト ラ テジの設定を変更で き ます。 すべての ス ト ラ テジお よ びその設定は、 次の -directive オプシ ョ ンの リ ス ト および表 1-2 を参照 し て く だ さ い。 c. 表示 さ れてい る オプシ ョ ンか ら 選択 し ます。 ° [-flatten_hierarchy]: Vivado 合成での階層の制御方法を指定 し ます。 - [none]: 階層を フ ラ ッ ト 化 し ません。 合成の出力には、 元の RTL と 同 じ階層が含まれます。 - [full]: 最上位以外の階層をすべて フ ラ ッ ト 化 し ます。 - [rebuilt]: 階層を フ ラ ッ ト 化 し て合成を実行 し た後に、 元の RTL に基づいて階層を再構築 し ます。 こ の 設定を使用す る と 、 境界を越えた最適化を実行で き る ので QoR が向上 し、 最終的な階層は RTL と 似た も のにな る ので解析 し やす く な り ます。 ° [-gated_clock_conversion]: ゲーテ ッ ド ク ロ ッ ク を イ ネーブルに変換する機能をオン/オフに し ます。 ゲーテ ッ ド ク ロ ッ ク の変換を使用する には、 RTL 属性 も 必要です。 詳細は、「GATED_CLOCK」 を参照 し て く だ さ い。 ° [-bufg]: デザ イ ンで推論可能な BUFG の最大数を指定 し ます。 こ のオプシ ョ ンは、 デザ イ ン ネ ッ ト リ ス ト の ほかの BUFG が合成プ ロ セ ス で認識 さ れない場合に使用 し ます。 RTL に イ ン ス タ ン シエー ト さ れてい る BUFG の数が検出 さ れ、 指定 さ れた数ま での BUFG が推論 さ れます。 た と えば、 –bufg オプシ ョ ン を 12 に設定し 、 RTL に 3 つの BUFG が イ ン ス タ ン シエー ト さ れてい る と する と 、 あ と 9 個の BUFG を推論可能です。 ° [-fanout_limit]: 信号で駆動可能な ロー ド の最大数を指定 し ます。 ロー ド の数が こ れ よ り 大き く な る場合は、 ロ ジ ッ ク が複製 さ れます。 こ のグ ロ ーバル設定は一般的なガ イ ド ラ イ ンであ り 、 ツールで必要 と 判断 さ れ た場合は無視 さ れます。 制限を強制す る 必要があ る 場合は、第 2 章 「合成属性」 に説明 さ れてい る MAX_FANOUT を参照し て く だ さ い。 注記: -fanout_limit オプシ ョ ンは、 制御信号 (セ ッ ト 、 リ セ ッ ト 、 ク ロ ッ ク イ ネーブルな ど) には適用 さ れません。 こ れ ら の信号を複製す る 必要があ る 場合は、 MAX_FANOUT を使用し て く だ さ い。
X-Ref Target - Figure 1-3
° [-directive]: [-effort_level] に置き換わ る オプシ ョ ンで、 Vivado 合成の最適化方法を指定 し ます。 すべての ス ト ラ テジ と その設定は、表 1-2 を参照 し て く だ さ い。 値は次の と お り です。 - [Default]: デフ ォル ト 設定。表 1-2 を参照 し て く だ さ い。 - [RuntimeOptimized]: 実行する最適化を少な く し 、 い く つかの RTL 最適化を削除し て、 合成の ラ ン タ イ ム を短縮 し ます。 - [AreaOptimized_high]: 三項加算 イ ンプ リ メ ン テーシ ョ ンの強制、 コ ンパレータ のキ ャ リ ー チ ェーンの 使用に対す る 新 し い し き い値の適用、 エ リ アで最適化 さ れたマルチプ レ ク サーの イ ンプ リ メ ン ト を含 む、 全般的なエ リ ア最適化を実行 し ます。 - [AreaOptimized_medium]: 制御セ ッ ト 最適化し き い値の変更、 三項加算イ ンプ リ メ ン テーシ ョ ンの強制、 専用 DSP ブ ロ ッ ク 推論の し き い値の低減、 シ フ ト レ ジ ス タ のブ ロ ッ ク RAM 内への移動、 コ ンパレー タ のキ ャ リ ー チ ェーンの使用に対する し き い値の低減、 エ リ アで最適化 さ れたマルチプ レ ク サーの操 作を含む、 全般的なエ リ ア最適化を実行 し ます。
- [AlternateRoutability]: 配線性を向上する アルゴ リ ズ ム を実行 し ます。 MUXF および CARRY の使用数が 削減 し ます。 - [AreaMapLargeShiftRegToBRAM]: 大型のシ フ ト レ ジ ス タ を検出し 、 専用ブ ロ ッ ク RAM を使用 し て イ ン プ リ メ ン ト し ます。 - [AreaMultThresholdDSP]: 専用 DSP ブ ロ ッ ク 推論の し き い値を低 く し ます。 - [FewerCarryChains]: オペ ラ ン ド サ イ ズの し き い値を高 く し、 キ ャ リ ー チ ェーンの代わ り に LUT を使用 し ます。 ° [-retiming]: 組み合わせゲー ト ま たは LUT の反対側に レ ジ ス タ を自動的に移動する こ と に よ り 、 回路のパ フ ォーマ ン ス を向上 し ます。 元の動作お よ び回路の レ イ テ ン シは保持 さ れ、RTL ソ ース を変更する必要は あ り ません。 デフ ォ ル ト はオ フ です。 ° [-fsm_extraction]: 有限ス テー ト マシ ンの抽出およびマ ッ プ方法を指定 し ます。 オプシ ョ ンについては、 「FSM_ENCODING」 を参照 し て く だ さ い。 ° [-keep_equivalent_registers]: 同 じ入力ロ ジ ッ ク を使用する レ ジ ス タ が統合 さ れない よ う に し ます。
° [-resource_sharing]: 異な る信号間での算術演算子の共有を設定 し ます。 設定可能な値は [auto]、 [on]、 [off] で
す。 [auto] に設定する と リ ソ ース の共有はデザ イ ンの タ イ ミ ン グに応 じ て実行 さ れ、 [on] に設定する と リ ソ ース の共有は常にオン、[off] に設定する と 常にオフです。 ° [-control_set_opt_threshold]: ク ロ ッ ク イ ネーブル最適化の し き い値を設定 し、 制御セ ッ ト の数を削減 し ます。 デフ ォ ル ト は [auto] で、 ターゲ ッ ト デバ イ ス に基づいて ツールに よ り 値が選択 さ れます。 有効な値は正の 整数です。 制御セ ッ ト を レ ジ ス タ の D ロ ジ ッ ク に移動する ために必要な フ ァ ン ア ウ ト の数を指定し ます。 フ ァ ン ア ウ ト が指定の値 よ り 大 き い場合は、 その信号で レ ジ ス タ の制御セ ッ ト ピ ンが駆動 さ れる よ う 試み ら れます。 ° [-no_lc]: オンにする と 、 LUT の組み合わせがオフにな り ます。 ° [-no_srlextract]: オンにする と デザ イ ン全体で SRL の抽出がオ フにな り 、 SRL は単純な レ ジ ス タ と し て イ ン プ リ メ ン ト さ れます。 ° [-shreg_min_size]: SRL の推論の し き い値を設定し ます。 デフ ォル ト 値は 3 です。 こ の値は、 遅延が固定 さ れ たチ ェーンの SRL (ス タ テ ィ ッ ク SRL) が推論 さ れる順次エレ メ ン ト の数を設定し ます。 ス ト ラ テジに よ っ て は、 こ れは 5 および 10 に も設定 さ れます。 すべてのス ト ラ テジ と その設定は、表 1-2 を参照し て く だ さ い。
° [-max_bram]: デザ イ ンで使用可能なブ ロ ッ ク RAM の最大数を指定 し ます。 こ のオプシ ョ ンは通常、 デザ イ ンにブ ラ ッ ク ボ ッ ク ス ま たはサー ド パーテ ィ ネ ッ ト リ ス ト が含まれてお り 、 こ れ ら のネ ッ ト リ ス ト 用にエ リ ア を確保す る ために使用 し ます。 注記: デフ ォル ト 設定は -1 で、 指定のパーツ で使用可能な最大数が選択 さ れます。 ° [-max_uram]: デザ イ ンで使用可能な UltraRAM ブ ロ ッ ク の最大数を指定 し ます。 デフ ォル ト 設定は -1 で、 指定のパーツ で使用可能な最大数が選択 さ れます。 ° [-max_dsp]: デザ イ ンで使用可能な DSP ブ ロ ッ ク の最大数を指定 し ます。 こ のオプシ ョ ンは通常、 デザ イ ン にブ ラ ッ ク ボ ッ ク ス ま たはサー ド パーテ ィ ネ ッ ト リ ス ト が含まれてお り 、 こ れ ら のネ ッ ト リ ス ト 用に エ リ ア を確保す る ために使用 し ます。 デフ ォ ル ト 設定は -1 で、 指定のパーツ で使用可能な最大数が選択 さ れ ます。 ° [-max_bram_cascade_height]: ツールでカ ス ケー ド 接続可能なブ ロ ッ ク RAM の最大数を指定 し ます。 デフ ォ ル ト 設定は -1 で、 指定のパーツで使用可能な最大数が選択 さ れます。
° [-max_uram_cascade_height]: ツールでカ ス ケー ド 接続可能な UtlraScale RAM (URAM) の最大数を指定 し ま
す。 デフ ォ ル ト 設定は -1 で、 指定のパーツ で使用可能な最大数が選択 さ れます。
° [-cascade_dsp]: DSP ブ ロ ッ ク 出力の合計の加算を イ ンプ リ メ ン ト する方法を制御 し ます。 デフ ォ ル ト では、
DSP 出力の合計はブ ロ ッ ク のビル ト イ ン加算チ ェーン を使用し て算出 さ れます。 [tree] に設定する と 、 合計 はフ ァ ブ リ ッ ク に イ ンプ リ メ ン ト さ れます。 設定可能な値は [auto]、 [tree]、 [force] で、 デフ ォル ト は [auto] です。
° [-assert]: VHDL アサー ト 文の評価を イ ネーブルに し ます。 エ ラ ーの場合は合成フ ローが停止し てエ ラ ー
メ ッ セージが表示 さ れ、 警告の場合は警告 メ ッ セージが表示 さ れます。
° [tcl.pre] および [tcl.post]: 合成の前後に実行する Tcl フ ァ イ ルを指定し ます。
注記: tcl.pre および tcl.post ス ク リ プ ト 内のパスは、 現在のプ ロ ジ ェ ク ト に関連付け ら れてい る run デ ィ レ ク ト リ <project>/<project.runs>/<run_name> を基準 と し ています。
Tcl ス ク リ プ ト の詳細は、『Vivado Design Suite ユーザー ガ イ ド : Tcl ス ク リ プ ト 機能の使用』 (UG894) [参照 8]
のこ のセ ク シ ョ ンを参照 し て く だ さ い。
現在のプ ロ ジ ェ ク ト ま たは現在の run の DIRECTORY プ ロ パテ ィ を使用 し て、 ス ク リ プ ト 内の相対パス を定 義で き ます。
プ ロパテ ィ を取得する Tcl コ マ ン ド
- get_property DIRECTORY [current_project] - get_property DIRECTORY [current_run]
run ス ト ラ テ ジの作成
ス ト ラ テ ジは、 合成ツールお よ び イ ン プ リ メ ン テーシ ョ ン で実行 さ れ る さ ま ざ ま なユーテ ィ リ テ ィ やプ ロ グ ラ ム の オプシ ョ ン のあ ら か じ め定義 さ れたセ ッ ト です。 各 メ ジ ャ ー リ リ ース には、 そのバージ ョ ン専用の ス ト ラ テジがあ
り ます。
ビデオ: 詳細は、Vivado Design Suite QuickTake ビデオ: run の作成および管理を参照 し て く だ さ い。
1. Flow Navigator で [Synthesis] → [Synthesis Settings] を ク リ ッ ク し ます。
2. [Strategy] ド ロ ッ プダ ウ ン リ ス ト か ら ス ト ラ テジ を選択し 、 [OK] を ク リ ッ ク し ます。
変更 し たス ト ラ テ ジの保存
1. [Project Settings] ダ イ ア ロ グ ボ ッ ク ス の [Synthesis] ページで、 既存の run ス ト ラ テジ を選択 し てオプシ ョ ン を変 更 し ます。
2. [Save Strategy As] ボ タ ン を ク リ ッ ク し ます。
次の図に示す [Save Strategy As] ダ イ ア ロ グ ボ ッ ク ス が表示 さ れます。
3. ス ト ラ テジの名前 ([User defined strategy name]) および説明 ([Description]) を入力 し ます。 4. [OK] を ク リ ッ ク し ます。
作成 し た ス ト ラ テジは、[Strategy] ド ロ ッ プダ ウ ン リ ス ト の [User Defined Strategies] の下に表示 さ れます。
X-Ref Target - Figure 1-4
新規ス ト ラ テ ジの作成
カ ス タ ム ス ト ラ テジは、 [Vivado Options] ダ イ ア ロ グ ボ ッ ク ス の [Strategies] ページか ら も 作成で き ます。
1. [Tools] → [Options] を ク リ ッ ク し、 左側のペ イ ンで [Strategies] を ク リ ッ ク し ます。
2. [Flow] ド ロ ッ プダ ウ ン リ ス ト か ら [Vivado Synthesis] を選択 し、 既存の ス ト ラ テジのいずれかを選択し ます。 3. 次のいずれか を実行 し ます。
° ツールバーの [Copy Strategy] ボ タ ン を ク リ ッ ク し 、 既存の ス ト ラ テジの コ ピーを作成 し ます。 必要に応 じ
て変更を加え、[Apply] を ク リ ッ ク し ます。
° ツールバーの [Create Strategy] ボ タ ン を ク リ ッ ク し ます。 [New Strategy] ダ イ ア ロ グ ボ ッ ク ス が開き ます。
ス ト ラ テジの名前 ([Name])、 ス ト ラ テジの タ イ プ ([Type])、 ツール バージ ョ ン ([Tool version])、 説明 ([Description]) を入力 し、 [OK] を ク リ ッ ク し ます。
作成 し た ス ト ラ テジは、[User Defined Strategies] の下に表示 さ れます。
X-Ref Target - Figure 1-5
合成への入力
Vivado 合成には、 RTL ソ ース コー ド およびタ イ ミ ン グ制約を入力で き ます。 RTL ま たは制約フ ァ イ ルを追加する に は、 次の手順に従い ます。
1. Flow Navigator で [Add Sources] を ク リ ッ ク し、 Add Sources ウ ィ ザー ド を開き ます。
X-Ref Target - Figure 1-6
2. 追加す る フ ァ イ ルに対応す る オプシ ョ ン を オンに し ます。
図 1-7 は、 最初のページで [Add or Create Design Sources] をオンに し て [Next] を ク リ ッ ク し た と き に表示 さ れる ページ を示 し ます。
3. 制約、RTL、 ま たはその他のプ ロ ジ ェ ク ト フ ァ イ ルを追加 し ます。
RTL ソ ース プ ロ ジ ェ ク ト 作成の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : シ ス テ ム レベル デザ イ ン入力』 (UG895) [参照 2] のこ のセ ク シ ョ ンを参照 し て く だ さ い。
Vivado 合成では、 ザ イ リ ン ク ス ツールでサポー ト さ れる VHDL、 Verilog、 SystemVerilog、 ま たは混合言語 の フ ァ イ ルの合成可能なサブセ ッ ト を読み込む こ と がで き ます。 サポー ト さ れ る HDL 構文は、 次の章を参照 し て く だ さ い。 • 第 3 章 「HDL コーデ ィ ン グ手法」 • 第 4 章 「VHDL サポー ト 」 • 第 5 章 「VHDL-2008 言語サポー ト 」 • 第 6 章 「Verilog サポー ト 」 • 第 7 章 「SystemVerilog サポー ト 」 • 第 8 章 「混合言語サポー ト 」 Vivado 合成では、 合成での処理を制御する い く つかの RTL 属性 も サポー ト さ れてい ます。 こ れ ら の属性の説明は、 第 2 章 「合成属性」 を参照 し て く だ さ い。 Vivado 合成は、 タ イ ミ ン グ制約に XDC フ ァ イ ルが使用 さ れます。
重要: Vivado Design Suite では、 UCF フ ォーマ ッ ト はサポー ト さ れません。 UCF か ら XDC への変換手順は、 『ISE か ら Vivado Design Suite への移行ガ イ ド 』 (UG911)[参照 15] のこ のセ ク シ ョ ンを参照 し て く だ さ い。
X-Ref Target - Figure 1-7
フ ァ イルの コ ンパイル順
あ る フ ァ イ ルに宣言が含まれ、 別の フ ァ イ ルがその宣言に依存 し てい る 場合、 特定の コ ンパ イ ル順が必要にな り ま す。Vivado IDE では、 RTL ソ ース フ ァ イ ルの コ ンパ イ ル順は、 [Sources] ウ ィ ン ド ウ の [Compile Order] ビ ューに上か
ら 下への順序で表示 さ れます。
Vivado ツールでは、 最上位モジ ュール と し て最適なモジ ュールが自動的に特定 さ れ、 コ ンパ イ ル順が自動的に管理 さ れます。 ア ク テ ィ ブ階層に含まれ る 最上位モジ ュ ール フ ァ イ ルおよびすべての ソ ース フ ァ イ ルが、 合成お よびシ ミ ュ レーシ ョ ンで正 し い順序で使用 さ れます。
[Sources] ウ ィ ン ド ウ のポ ッ プア ッ プ メ ニ ューには [Hierarchy Update] コ マン ド があ り 、 最上位モジ ュールへの変更、 デザ イ ンの ソ ース フ ァ イ ルへの変更な どの処理方法を指定 し て階層を ア ッ プデー ト で き ます。
デフ ォ ル ト 設定は [Automatic Update and Compile Order] で、 次の よ う に処理 さ れます。
• [Compile Order] ビ ューに示すよ う に コ ンパ イ ル順が管理 さ れます。
• [Hierarchy] ビ ューにどのモジ ュールが使用 さ れ、 階層ツ リ ーのど こ に位置する かが表示 さ れます。
ソ ース フ ァ イ ルを変更する と 、 コ ンパ イ ル順が自動的に更新 さ れます。
合成の前に コ ンパ イ ル順を変更す る には、 次の手順に従い ます。
1. フ ァ イ ルを選択 し て右 ク リ ッ ク し 、[Hierarchy Update] → [Automatic Update, Manual Compile Order] を ク リ ッ ク し て、 デザ イ ンに最適な最上位モジ ュ ールが自動的に選択 さ れ、 コ ンパ イ ル順は手動で指定で き る よ う に し ます。
手動 コ ンパ イ ル順はデフ ォ ル ト ではオ フ です。[Sources] ウ ィ ン ド ウ の [Compile Order] ビ ュ ーで フ ァ イ ルを選択 し て移動す る と 、 手動 コ ンパ イ ル順を オ ン にす る か ど う か を尋ね る 次の図に示すダ イ ア ロ グ ボ ッ ク ス が表示 さ れ ます。
2. [Sources] ウ ィ ン ド ウ の [Compile Order] ビ ューで、 フ ァ イ ルを ド ラ ッ グする か、 ポ ッ プア ッ プ メ ニ ューの [Move Up] ま たは [Move Down] コ マン ド を使用 し て、 コ ンパ イ ル順を変更し ます。
[Hierarchy Update] メ ニ ューには、 次の図に示すよ う にほかのオプシ ョ ン も あ り ます。
X-Ref Target - Figure 1-8
図 1-8: Move Sources Option
デザ イ ン フ ローの詳細は、 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン フ ローの概要』 (UG892) [参照 1] のこ のセ ク シ ョ ンを参照 し て く だ さ い。
グローバル イ ン クルー ド フ ァ イルの定義
Vivado IDE では、 1 つま たは複数の Verilog ま たは Verilog ヘ ッ ダー フ ァ イ ルを グ ローバル イ ン ク ルー ド フ ァ イ ル と し て指定で き ます。 こ れ ら の フ ァ イ ルは、 ほかの ソ ース の前に処理 さ れます。
Verilog では通常、 別の Verilog フ ァ イ ルやヘ ッ ダー フ ァ イ ルか ら の内容を参照する Verilog ソ ース フ ァ イ ルの冒頭に `include 文を含め る必要があ り ます。 共通ヘ ッ ダー フ ァ イ ルを使用するデザ イ ンでは、 複数の Verilog ソ ース にそれぞれ複数の `include 文を含め る必要 があ る 場合 も あ り ます。 Verilog フ ァ イ ルま たは Verilog ヘ ッ ダー フ ァ イ ルを グ ローバル イ ン ク ルー ド フ ァ イ ル と し て指定する には、 次を実 行 し ます。 1. [Sources] ウ ィ ン ド ウ でフ ァ イ ルを選択 し ます。
2. [Source File Properties] ウ ィ ン ド ウ の [Properties] ビ ューで [IS_GLOBAL_INCLUDE] チ ェ ッ ク ボ ッ ク ス をオンに し ます (図 1-10)。
ヒ ン ト: Verilog では、 1 つの Verilog ソースのみに適用するヘ ッ ダー フ ァ イル (特定の `define マ ク ロ など) は、 グ ロ ーバル イ ン ク ルー ド フ ァ イ ル と し て指定する のではな く `include 文を使用 し て参照する必要があ り ます。
[Sources] ウ ィ ン ド ウ の詳細は、『Vivado Design Suite ユーザー ガ イ ド : Vivado IDE の使用』 (UG893) [参照 7] のこ のセ ク シ ョ ンを参照 し て く だ さ い。
X-Ref Target - Figure 1-10
合成の実行
合成 run では、 合成中に使用 さ れるデザ イ ンの詳細を定義および設定で き ます。 合成 run は次を定義し ます。 • 合成中に タ ーゲ ッ ト と す る ザ イ リ ン ク ス デバ イ ス • 適用す る 制約セ ッ ト • 1 つま たは複数の合成 run を実行する オプシ ョ ン • 合成エン ジ ンの結果を制御す る オプシ ョ ン RTL ソ ース フ ァ イ ルの run および制約を定義する には、 次の手順に従い ます。1. メ イ ン メ ニ ューか ら [Flow] → [Create Runs] を ク リ ッ ク する か、[Create Runs] ボ タ ン を ク リ ッ ク し ます。
Create New Runs ウ ィ ザー ド が開き ます。
X-Ref Target - Figure 1-11
2. [Synthesis] をオンに し、 [Next] を ク リ ッ ク し ます。
次の図に示す [Configure Synthesis Runs] ページが表示 さ れます。
run の名前 ([Name])、 制約セ ッ ト ([Constraints Set])、 デバ イ ス ([Part])、 ス ト ラ テジ ([Strategy]) を選択 し、 こ の run を ア ク テ ィ ブ run と する場合は [Make Active] をオンに し ます。
Vivado IDE にはデフ ォル ト の ス ト ラ テジが含まれてい ます。 ス ト ラ テジ run には、 特定の名前を指定する か、 デ フ ォ ル ト 名 (synth_1、 synth_2 な ど) を使用 し ます。 カ ス タ ム ス ト ラ テジの作成方法は、「run ス ト ラ テジの作 成」 を参照 し て く だ さ い。
制約の詳細は、『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 9] のこ のセ ク シ ョ ンを参照 し て く だ さ い。 制約の処理順の詳細は、 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 9] のこ のセ ク シ ョ ンを参照 し て く だ さ い。
一部の制約がプ ロ ジ ェ ク ト 用に処理 さ れ る と 、 それ ら の制約属性はデザ イ ンの 「プ ロ パテ ィ 」 と な り ます。 プ ロ パテ ィ の詳細は、 『Vivado Design Suite プ ロパテ ィ リ フ ァ レ ン ス ガ イ ド 』 (UG912) [参照 16] を参照し て く だ さ い。
X-Ref Target - Figure 1-12
[Next] を ク リ ッ ク し ます。 [Launch Options] ページが表示 さ れます。
3. [Launch Options] ページで次のオプシ ョ ン を設定し 、 [Next] を ク リ ッ ク し ます。
° [Launch directory] ド ロ ッ プダ ウ ン リ ス ト か ら run を実行するデ ィ レ ク ト リ を選択 し ます。 ° [Options] エ リ アで次のいずれかをオンに し ます。
- [Launch runs on local host]: 作業中のマシ ンで run を実行し ます。 [Number of jobs] で実行する run の数を 指定 し ます。
- [Launch runs on local host] (Linux のみ): run を リ モー ト ホ ス ト で実行 し、 そのホ ス ト を設定 し ます。
Linux の リ モー ト ホ ス ト での run の実行については、 『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ン テーシ ョ ン』 (UG904) [参照 10] のこ のセ ク シ ョ ンを参照 し て く だ さ い。[Configure Hosts] を ク リ ッ ク す る と 、 ホ ス ト を設定す る ダ イ ア ロ グ ボ ッ ク ス が開き ます。
- [Generate scripts only]: 後で実行する ス ク リ プ ト を生成 し ます。 runme.bat (Windows) ま たは runme.sh (Linux) を使用 し て run を開始 し ます。
- [Do not launch now]: 前のページの設定を保存 し、 run を後で実行で き る よ う に し ます。 4. [Finish] を ク リ ッ ク し て run を作成 し ます。
作成 し た run を実行する と 、 次の図に示す [Design Runs] ウ ィ ン ド ウ に結果が表示 さ れます。
X-Ref Target - Figure 1-13
図 1-13: [Launch Options] ページ
[Design Runs] ウ ィ ン ド ウの使用
[Design Runs] ウ ィ ン ド ウ には、 プ ロ ジ ェ ク ト で作成 さ れた合成 run と イ ンプ リ メ ン テーシ ョ ン run のすべてが表示 さ れ、 それ ら を設定、 管理、 実行す る ための コ マ ン ド を実行で き ます。
[Design Runs] ウ ィ ン ド ウ が表示 さ れていない場合は、 [Window] → [Design Runs] を ク リ ッ ク し ます。 1 つの合成 run に、 複数の イ ンプ リ メ ン テーシ ョ ン run を含め る こ と がで き ます。 プ ラ ス記号 (+) やマ イ ナス記号 (-) を ク リ ッ ク する
と 、 合成 run のツ リ ー表示を展開 し た り 、 閉 じ た り で き ます。 [Design Runs] ウ ィ ン ド ウ には、 run の ス テータ ス (実行 さ れていない、 進行中、 完了、 最新の状態でない) が示 さ れます。
ソ ース フ ァ イ ル、 制約、 ま たはプ ロ ジ ェ ク ト 設定を変更する と 、 run は最新の状態ではな く な り ます。
特定の run を リ セ ッ ト ま たは削除する には、 run を右 ク リ ッ ク し て [Reset Runs] ま たは [Delete] を ク リ ッ ク し ます。
ア ク テ ィ ブ run の設定
Vivado IDE で一度にア ク テ ィ ブにで き る には、 1 つの合成 run と 1 つの イ ンプ リ メ ン テーシ ョ ン run のみです。 すべ ての レ ポー ト お よ び ウ ィ ン ド ウ には、 ア ク テ ィ ブな run の情報が表示 さ れます。 [Project Summary] には、 ア ク テ ィ ブ な run の コ ンパ イ ル、 リ ソ ース、 およびサマ リ 情報が表示 さ れます。 別の run を ア ク テ ィ ブにする には、 [Design Runs] ウ ィ ン ド ウ で run を右 ク リ ッ ク し、 [Make Active] コ マン ド を ク リ ッ ク し ます。
合成 run の実行
合成 run を実行する には、 次のいずれかを実行 し ます。
• Flow Navigator で [Run Synthesis] を ク リ ッ ク し ます。
• メ イ ン メ ニ ューか ら [Flow] → [Run Synthesis] を ク リ ッ ク し ます。
• [Design Runs] ウ ィ ン ド ウ で run を右 ク リ ッ ク し、 [Launch Runs] を ク リ ッ ク し ます。
最初の 2 つのオプシ ョ ンでは、 ア ク テ ィ ブな合成 run が実行 さ れます。 3 つ目のオプシ ョ ンでは、 [Launch Selected Runs] ダ イ ア ロ グ ボ ッ ク ス が開き ます。
こ のダ イ ア ロ グ ボ ッ ク ス で、 run を ローカル ホ ス ト ま たは リ モー ト ホ ス ト で実行する か、 あ る いは ス ク リ プ ト を生 成す る か を指定で き ます。 リ モー ト ホ ス ト の使用については、 『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ン テーシ ョ ン』 (UG904) [参照 10] のこ のセ ク シ ョ ンを参照 し て く だ さ い。
ヒ ン ト: run を実行する たびに、 別のプ ロ セ スが開始されます。 メ ッ セージを確認する際は、 プ ロ セ ス特定の も のに 注意 し て く だ さ い。
ボ ト ムア ッ プ アウ ト オブ コ ン テキス ト フ ローの設定
HDL オブジ ェ ク ト を独立階層モジ ュール と し てア ウ ト オブ コ ン テキ ス ト (OOC) フ ローを実行する こ と に よ り 、 ボ ト ム ア ッ プ フ ローを設定で き ます。 OOC フ ローの概要は、 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン フ ローの 概要』 (UG892) [参照 1] のこ のセ ク シ ョ ンを参照 し て く だ さ い。 OOC フ ローは、 次の よ う に実行 さ れます。 • 下位 OOC モジ ュールは最上位か ら 独立 さ せて実行 さ れ、 独自の制約セ ッ ト があ り ます。 • OOC モジ ュールは必要に応 じ て実行で き ます。 • OOC モジ ュールを一度合成 し た ら 、 その run の RTL ま たは制約を変更し ない限 り 、 再度合成を実行する必要は あ り ません。 こ れに よ り 、 デザ イ ン全体を合成す る 必要がな く な る ので、 最上位の実行時間を大幅に短縮で き ます。 OOC run 用にモジ ュールを設定する には、 次の手順に従います。
1. [Sources] ウ ィ ン ド ウ の [Hierarchy] ビ ューでモジ ュールを右 ク リ ッ ク し、 [Set as Out-of Context for Synthesis] を ク リ ッ ク し ます。
次の図に示す [Set as Out-of Context for Synthesis] ダ イ ア ロ グ ボ ッ ク ス が開き ます。
[Set as Out-of Context for Synthesis] ダ イ ア ロ グ ボ ッ ク ス には、 次の情報およびオプシ ョ ンが表示 さ れます。
° [Source Node]: OOC と し て設定する モジ ュール。 ° [New Fileset]: 新 し いフ ァ イ ルセ ッ ト 名。 変更可能です。
° [Generate Stub]: ス タ ブ フ ァ イ ルを作成する場合にオンに し ます。
° [Clock Constraint File]: 新 し い XDC テ ンプ レー ト が作成 さ れる よ う にする か、 ド ロ ッ プダ ウ ン リ ス ト か ら 既
存の XDC フ ァ イ ルを選択 し てその XDC フ ァ イ ルが こ のフ ァ イ ルセ ッ ト に コ ピー さ れる よ う に設定し ます。 こ の XDC フ ァ イ ルには、 OOC モジ ュールのすべての ク ロ ッ ク ピ ンの ク ロ ッ ク 定義が含まれます。
X-Ref Target - Figure 1-15
図 1-15: [Set as Out-of Context for Synthesis] コ マ ン ド
X-Ref Target - Figure 1-16
2. [OK] を ク リ ッ ク し ます。
OOC run が自動的に設定 さ れます。
作成 さ れた OOC run は [Design Runs] ウ ィ ン ド ウ に新 し い run と し て表示 さ れます。 OOC と し て設定 し たモ ジ ュ ールは、[Sources] ウ ィ ン ド ウ の [Compile Order] ビ ューで [Block Sources] の下に表示 さ れます。
ア ウ ト オブ コ ン テキ ス ト (OOC) フ ローを設定する と 、 新 し い run が設定 さ れます。
こ の run を実行する には、 run を右 ク リ ッ ク し て [Launch Runs] を ク リ ッ ク し ます ( 「合成 run の実行」 を参照)。 こ れ に よ り 下位モジ ュ ールが最上位モジ ュ ール と し て設定 さ れ、I/O バ ッ フ ァ ーを作成せずに合成が実行 さ れます。 合成で生成 さ れたネ ッ ト リ ス ト が保存 さ れ、 ス タ ブ フ ァ イ ルを作成する オプシ ョ ン をオンに し た場合は後で使用で き る よ う に ス タ ブ フ ァ イ ルが作成 さ れます。 ス タ ブ フ ァ イ ルは、 ブ ラ ッ ク ボ ッ ク ス属性が設定 さ れた、 入力 と 出力 を持つ下位モジ ュ ールです。 最上位モジ ュ ールを再実行す る と 、 ボ ト ム ア ッ プ合成に よ り ス タ ブ フ ァ イ ルがフ ローに挿入 さ れ、 下位モジ ュール がブ ラ ッ ク ボ ッ ク ス と し て コ ンパ イ ル さ れます。 イ ンプ リ メ ン テーシ ョ ン run では下位ネ ッ ト リ ス ト が挿入 さ れ、 デザ イ ン を完了 し ます。
注意: OOC モジ ュールの下位に OOC モー ド のザ イ リ ン ク ス IP が含まれる場合は、 ボ ト ムア ッ プ OOC フ ローを使用 し ないで く だ さ い。OOC モジ ュールにザ イ リ ン ク ス IP を含め る場合は、 IP の OOC モー ド をオ フに し て く だ さ い。 ま た、OOC モジ ュールにパ ラ メ ーターが設定 さ れてい る場合や、 OOC モジ ュールのポー ト がユーザー定義タ イ プで あ る 場合 も 、 こ の フ ロ ーを使用 し ないで く だ さ い。 こ れ ら の状況では、 フ ロ ーの後の方で問題が発生 し ます。
X-Ref Target - Figure 1-17
ボ ト ムア ッ プ フ ローの手動設定と ネ ッ ト リ ス ト のイ ンポー ト
ボ ト ム ア ッ プ フ ローを手動で実行する には、 下位ネ ッ ト リ ス ト ま たはサー ド パーテ ィ ネ ッ ト リ ス ト をブ ラ ッ ク ボ ッ ク ス と し て イ ン ス タ ン シエー ト し ます。 こ の よ う にす る と 、Vivado ツールに よ り 合成の完了後にデザ イ ンにブ ラ ッ ク ボ ッ ク ス が挿入 さ れます。 次のセ ク シ ョ ンで、 こ のプ ロ セ ス について説明 し ます。 重要: Vivado 合成では、 暗号化さ れている場合で も さ れていない場合で も、 合成済みネ ッ ト リ ス ト は合成ま たは最適 化 さ れません。 そのため、XDC 制約ま たは合成属性は イ ンポー ト さ れた コ ア ネ ッ ト リ ス ト には影響し ません。 ま た、 デフ ォ ル ト では コ アのネ ッ ト リ ス ト が読み込まれて イ ン ス タ ン シエー ト 済み コ ン ポーネ ン ト が変更 さ る こ と は あ り ません。 ただ し 、 セキ ュ ア IP の RTL は合成 さ れる ので、 制約が合成結果に影響 し ます。下位ネ ッ ト リ ス ト の作成
下位ネ ッ ト リ ス ト を作成す る には、 ネ ッ ト リ ス ト を最上位モジ ュ ール と し て指定 し てプ ロ ジ ェ ク ト を設定 し ます。 合成を実行す る 前に、 次の図に示す よ う に OOC モー ド を設定し ます。こ の よ う に [More Options] フ ィ ール ド に -mode out_of_context を入力する と 、 合成で こ の レベルに I/O バ ッ フ ァ ーは挿 入 さ れません。
合成が終了 し た ら 合成済みデザ イ ン を開 き 、[Tcl Console] ウ ィ ン ド ウ に次の コ マン ド を入力 し ます。
write_edif <design_name>.edf
X-Ref Target - Figure 1-18
下位ネ ッ ト リ ス ト のデザイ ンへのイ ン ス タ ン シ エーシ ョ ン
最上位デザ イ ン を下位ネ ッ ト リ ス ト ま たはサー ド パーテ ィ ネ ッ ト リ ス ト と 共に実行する には、 下位ネ ッ ト リ ス ト を ブ ラ ッ ク ボ ッ ク ス と し て イ ン ス タ ン シエー ト し ます。 こ れには、 下位ネ ッ ト リ ス ト のポー ト を Vivado ツールに示す 必要があ り ます。「ボ ト ム ア ッ プ ア ウ ト オブ コ ン テキ ス ト フ ローの設定」 では、 こ れを ス タ ブ フ ァ イ ル と 呼んでい ます。 重要: Vivado ツールに示すポー ト 名 と ネ ッ ト リ ス ト のポー ト 名が一致し ている必要があ り ます。 VHDL では、 次の コー ド 例に示すよ う に、 component 文にポー ト を記述 し ます。 component <name>port (in1, in2 : in std_logic; out1 : out std_logic);
end component;
Verilog には コ ンポーネン ト に相当する も のはないので、 ラ ッ パー フ ァ イ ルを使用 し て Vivado ツールにポー ト を示 し ます。 ラ ッ パー フ ァ イ ルは通常の Verilog フ ァ イ ル と 同じ ですが、 次の例に示すよ う に、 ポー ト リ ス ト のみが含まれ ます。
module <name> (in1, in2, out1); input in1, in2;
output out1; endmodule
下位ネ ッ ト リ ス ト の統合
下位ネ ッ ト リ ス ト を作成 し て最上位ネ ッ ト リ ス ト に正 し く イ ン ス タ ン シエー ト し た ら 、 プ ロ ジ ェ ク ト モー ド では下 位ネ ッ ト リ ス ト を Vivado プ ロ ジ ェ ク ト に追加 し、 非プ ロ ジ ェ ク ト モー ド では read_edif ま たは read_verilog コ マ ン ド を使用 し て下位ネ ッ ト リ ス ト を読み込みます。
ど ち ら のモー ド で も 、 合成後にネ ッ ト リ ス ト が結合 さ れます。
注記: デザ イ ンがサー ド パーテ ィ ネ ッ ト リ ス ト でのみ構成 さ れてお り 、 プ ロ ジ ェ ク ト にほかの RTL フ ァ イ ルがない 場合は、 プ ロ ジ ェ ク ト を それ ら のネ ッ ト リ ス ト のみで作成す る か、 非プ ロ ジ ェ ク ト モー ド では read_edif および read_verilog Tcl コ マン ド と link_design Tcl コ マン ド を使用 し ます。
Vivado IP と サー ド パーテ ィ 合成ツール
Vivado IP カ タ ロ グか ら 使用可能なザ イ リ ン ク ス IP は、 Vivado Design Suite で作成、 制約、 および検証 し ます。
ザ イ リ ン ク ス が提供す る ほ と ん ど の IP には IEEE P1735 で暗号化 さ れた HDL があ り 、 サー ド パーテ ィ 合成ツールで のサポー ト は提供 さ れてい ません。 Vivado IDE で提供 さ れる ザ イ リ ン ク ス IP をサー ド パーテ ィ 合成ツールに イ ン ス タ ン シエー ト する には、 次のフ ロー を使用す る こ と をお勧め し ます。 1. [Manage IP] 環境で IP カ ス タ マ イ ズ を作成し ます。 2. 合成デザ イ ン チ ェ ッ ク ポ イ ン ト (DCP) を含めた IP の出力フ ァ イ ルを生成 し ます。
Vivado IDE で ス タ ブ HDL フ ァ イ ル (_stub.v|_stub.vhd) が作成 さ れます。 こ の ス タ ブ HDL フ ァ イ ルをサー ド パーテ ィ 合成ツールで使用 し て、IP のブ ラ ッ ク ボ ッ ク ス を推論し ます。
ス タ ブ フ ァ イ ルには、 I/O バ ッ フ ァ ーが推論 さ れない よ う にする指示子が含まれています。 ほかの合成ツールの 指示子をサポー ト す る には、 こ れ ら の フ ァ イ ルを変更す る 必要があ る 場合があ り ます。
3. ザ イ リ ン ク ス IP の ス タ ブ フ ァ イ ルを含むデザ イ ン を合成 し ます。
4. サー ド パーテ ィ 合成ツールで生成 さ れたネ ッ ト リ ス ト と ザ イ リ ン ク ス IP の DCP フ ァ イ ルを使用 し て、 Vivado イ ンプ リ メ ン テーシ ョ ン を実行 し ます。 詳細は、『Vivado Design Suite ユーザー ガ イ ド : IP を使用し た設計』 (UG896)
[参照 3] のこ のセ ク シ ョ ンを参照 し て く だ さ い。
プ ロ セスのバ ッ ク グ ラ ウン ド への移動
Vivado IDE で合成ま たは イ ンプ リ メ ン テーシ ョ ン を実行する と 、 ダ イ ア ロ グ ボ ッ ク ス にプ ロ セ ス をバ ッ ク グ ラ ウ ン ド で実行す る オプシ ョ ンが表示 さ れます。run をバ ッ ク グ ラ ウ ン ド に移動する と 、 レ ポー ト を表示する な ど、 Vivado IDE でほかの機能を実行で き る よ う にな り ます。
合成実行の監視
合成 run の ス テータ スは、 次の図に示す [Log] ウ ィ ン ド ウ で確認 し ます。 合成中に こ の ウ ィ ン ド ウ に表示 さ れ る メ ッ セージは、 合成 ロ グ フ ァ イ ルに も 含まれます。
合成終了後のフ ロー
run が完了する と 、 次の図に示す [Synthesis Completed] ダ イ ア ロ グ ボ ッ ク ス が表示 さ れます。
X-Ref Target - Figure 1-19
図 1-19: [Log] ウ ィ ン ド ウ
X-Ref Target - Figure 1-20
次のいずれか を オンに し ます。
° [Run Implementation]: イ ンプ リ メ ン テーシ ョ ン を現在の イ ンプ リ メ ン テーシ ョ ン プ ロ ジ ェ ク ト 設定を使用し
て実行 し ます。
° [Open Synthesized Design]: 合成済みネ ッ ト リ ス ト 、 ア ク テ ィ ブな制約セ ッ ト 、 ターゲ ッ ト デバ イ ス を合成済
みデザ イ ン環境で開 き 、I/O ピ ン配置、 デザ イ ン解析、 フ ロ アプ ラ ン を実行で き る よ う に し ます。
° [View Reports]: [Reports] ウ ィ ン ド ウ を開き、 レ ポー ト を表示で き る よ う に し ます。
° [Don't show this dialog again] をオンにする と 、 次回か ら こ のダ イ ア ロ グ ボ ッ ク スは表示 さ れな く な り ます。
ヒ ン ト: こ のダ イ ア ロ グ ボ ッ ク スが再び表示さ れる よ う にするには、 [Tools] → [Options] を ク リ ッ ク し、 左側のペイ ンで [Window Behavior] を ク リ ッ ク し ます。
合成結果の解析
合成が終了 し た ら 、 合成レ ポー ト を表示 し 、 合成済みデザ イ ン を開いて解析で き ます。[Reports] ウ ィ ン ド ウ には、 合成お よ び イ ンプ リ メ ン テーシ ョ ンで生成 さ れた レ ポー ト の リ ス ト が表示 さ れます。
ビデオ: 詳細は、Vivado Design Suite QuickTake ビデオ: Vivado を使用し た高度な合成を参照 し て く だ さ い。
[Reports] ウ ィ ン ド ウ を開き、 レ ポー ト を開いて特定の run の詳細を確認 し ます。
X-Ref Target - Figure 1-21
合成済みデザイ ン環境の使用
Vivado IDE には、 デザ イ ン を さ ま ざ ま な面か ら 解析する環境が含まれてい ます。 合成済みデザ イ ン を開 く と 、 合成 済みネ ッ ト リ ス ト 、 ア ク テ ィ ブな制約セ ッ ト 、 お よ び タ ーゲ ッ ト デバ イ ス が読み込まれます。
合成済みデザ イ ン を開 く には、Flow Navigator で [Synthesis] → [Open Synthesized Design] を ク リ ッ ク し ます。 ま たは、 メ イ ン メ ニ ューか ら [Flow] → [Open Synthesized Design] を ク リ ッ ク し て も 同 じ動作を実行で き ます。
合成済みデザ イ ン を開 く と 、 次の図に示す [Device] ウ ィ ン ド ウ が表示 さ れます。
こ の環境か ら 、 デザ イ ン ロ ジ ッ ク と 階層の確認、 リ ソ ース使用率およびタ イ ミ ン グ見積 も り の表示、 デザ イ ン ルー ル チ ェ ッ ク (DRC) を実行で き ます。 詳細は、『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン解析および ク ロージ ャ テ
ク ニ ッ ク 』 (UG906) [参照 12] を参照し て く だ さ い。
X-Ref Target - Figure 1-22
レポー ト の表示
Vivado 合成を実行する と 、 [Reports] ウ ィ ン ド ウ か ら Vivado 合成レ ポー ト および使用率レ ポー ト を表示で き ます。
ロ ジ ッ ク の解析
Vivado IDE には、 ロ ジ ッ ク を解析する ウ ィ ン ド ウ が複数あ り ます。 1 つの ウ ィ ン ド ウ で選択 し た情報はほかの ウ ィ ン ド ウ で も 選択 さ れ る よ う にな っ てお り 、 必要な情報をすばや く 見つけ る こ と がで き ます。
• [Netlist] ウ ィ ン ド ウおよび [Sources] ウ ィ ン ド ウ の [Hierarchy] ビ ューには、 ナビゲー ト 可能な階層ツ リ ー形式の 表示が含まれます。 • [Schematic] ウ ィ ン ド ウ では、 選択し た ロ ジ ッ ク を展開し た り 階層表示にで き ます。 • [Device] ウ ィ ン ド ウ は、 デバ イ ス、 配置ロ ジ ッ ク オブジ ェ ク ト 、 および接続を グ ラ フ ィ カルに表示 し ます。
ロ ジ ッ ク階層の表示
[Netlist] ウ ィ ン ド ウ には、 合成済みデザ イ ンの ロ ジ ッ ク 階層が表示 さ れます。 ネ ッ ト リ ス ト 内の ロ ジ ッ ク イ ン ス タ ン ス ま たはネ ッ ト を、 展開 し て選択で き ます。 別の ウ ィ ン ド ウ で ロ ジ ッ ク オブジ ェ ク ト を選択する と 、[Netlist] ウ ィ ン ド ウ が自動的に展開 さ れて選択し た ロ ジ ッ ク オブジ ェ ク ト が表示 さ れ、[Instance Properties] ま たは [Net Properties] ウ ィ ン ド ウ に イ ン ス タ ン ス ま たはネ ッ ト に関す る 情報が表示 さ れます。[Sources] ウ ィ ン ド ウ の [Hierarchy] ビ ューには、 RTL ロ ジ ッ ク 階層がグ ラ フ ィ カルに表示 さ れます。 各モジ ュールの 大 き さ が、 その他のモジ ュ ールに相対的な比率で表示 さ れ る ので、 選択 し た ロ ジ ッ ク モジ ュールのサ イ ズや位置を 判断で き ます。
[Sources] ウ ィ ン ド ウ の [Hierarchy] ビ ューを開 く には、 次の手順に従い ます。
X-Ref Target - Figure 1-23
ロ ジ ッ ク回路図の解析
[Schematic] ウ ィ ン ド ウ では、 選択し た ロ ジ ッ ク を展開し て表示で き ます。 [Schematic] ウ ィ ン ド ウ を表示する には、 少な く と も 1 つの ロ ジ ッ ク オブジ ェ ク ト を選択する必要があ り ます。 [Schematic] ウ ィ ン ド ウ で、 任意の ロ ジ ッ ク を選択および表示し ます。 タ イ ミ ン グ パス のグループを表示 し て、 その パ ス上のすべての イ ン ス タ ン ス を表示で き ます。 こ れに よ り 、 タ イ ミ ン グ ク リ テ ィ カルなモジ ュールが含まれ る箇 所を視覚的に表示で き る ので、 フ ロ アプ ラ ン し やす く な り ます。 [Schematic] ウ ィ ン ド ウ を開 く には、 次の手順に従い ます。 1. 1 つま たは複数の イ ン ス タ ン ス、 ネ ッ ト 、 タ イ ミ ン グ パス を選択 し ます。 2. ツールバーま たは右 ク リ ッ ク メ ニ ューで [Schematic] を ク リ ッ ク する か、 F4 キーを押 し ます。 [Schematic] ウ ィ ン ド ウ が開き、 選択し たモジ ュールが表示 さ れます。 こ の後、 ピ ン、 イ ン ス タ ン ス、 階層モジ ュ ールを選択 し て、 ロ ジ ッ ク を展開で き ます。X-Ref Target - Figure 1-24
図 1-24: [Show Hierarchy] コ マ ン ド
X-Ref Target - Figure 1-25
タ イ ミ ン グ解析の実行
合成済みデザ イ ンの タ イ ミ ン グ解析は、 イ ンプ リ メ ン テーシ ョ ン を効率的に実行す る ために必要な制約がパ ス に設 定 さ れてい る か ど う か を確認す る のに有益です。Vivado 合成は タ イ ミ ン グ ド リ ブンであ り 、 設定 し た制約に基づい て出力が調整 さ れます。 Pblock や LOC 制約の よ う な物理制約をデザ イ ンに割 り 当ててい く と 、 よ り 正確な タ イ ミ ン グ解析結果が得 ら れる よ う にな り ますが、 こ れ ら の結果に含まれ る のはパ ス遅延の見積 も り 値です。 合成済みデザ イ ンでは、 配線遅延の見 積 も り 値を使用 し て解析が実行 さ れます。 こ の時点で タ イ ミ ン グ解析を実行す る と 、 パ ス が正 し く 制約 さ れてい る か、 お よ び タ イ ミ ン グ パス の全体的な状況 を確認で き ます。 重要: 実際の配線遅延が含まれる のは、 イ ンプ リ メ ンテーシ ョ ン (配置配線) 後の タ イ ミ ン グ解析のみです。 合成済み デザ イ ンの タ イ ミ ン グ解析は、 イ ンプ リ メ ン ト 済みデザ イ ンの タ イ ミ ン グ解析ほ ど正確ではあ り ません。Tcl での合成の実行
合成を実行す る Tcl コ マン ド は synth_design です。 通常 こ の コ マン ド は、 次の例の よ う に複数のオプシ ョ ン を使 用 し て実行 し ます。synth_design -part xc7k30tfbg484-2 -top my_top
こ の例では、 synth_design が -part オプシ ョ ンおよび -top オプシ ョ ン を使用 し て実行 さ れます。
Tcl コ ン ソ ールか ら 、 Tcl コ マン ド オプシ ョ ン を使用 し て合成オプシ ョ ン を設定 し て合成を実行で き ます。 [Tcl Console] ウ ィ ン ド ウ で 「synth_design -help」 と 入力する と 、 オプシ ョ ンの リ ス ト を取得で き ます。 次に、 「synth_design –help」 と 入力 し た場合の出力の一部を示 し ます。
Description:
Synthesize a design using Vivado Synthesis and open that design Syntax:
synth_design [-name <arg>] [-part <arg>] [-constrset <arg>] [-top <arg>]\ [-include_dirs <args>] [-generic <args>] \
[-verilog_define <args>] [-flatten_hierarchy <arg>]\ [-gated_clock_conversion <arg>] [-directive <arg>\] [-rtl][-retiming <arg>] [-bufg <arg>] [-no_lc]
[-fanout_limit <arg>][-shreg_min_size <arg>] [-mode <arg>]\ [-fsm_extraction <arg>][-assert] [-no_srlextract]\
[-keep_equivalent_registers] [-resource_sharing <arg>]\ [-control_set_opt_threshold <arg>] [-max_bram <arg>]\ [-max_dsp <arg>][-max_uram] [-cascade_dsp <arg>]\ [-max_cascade_bram_height <arg>] [-max_cascade_uram_height <arg>]\ [-quiet] [-verbose]\ Returns: design object Usage: Name Description
[-constrset] Constraint fileset to use [-top] Specify the top module name
[-include_dirs] Specify verilog search directories [-generic] Specify generic parameters.
Syntax: -generic <name>=<value> -generic <name>=<value>...
[-verilog_define] Specify verilog defines.Syntax:
-verilog_define <macro_name>[=<macro_text>] -verilog_define <macro_name>[=<macro_text>] [-flatten_hierarchy] Flatten hierarchy during LUT mapping.
Values:
full, none, rebuilt Default: rebuilt
[-gated_clock_conversion] Convert clock gating logic to flop enable. Values: off, on, auto
Default: off
[-directive] Synthesis directive. Values: default, AreaOptimized_high, AreaMutlThresholdDSP AlternateRoutability FewerCarryChains RunTimeOptimized AreaOptimized_medium AreaMapLargeShiftRegToBRAM Default: default
[-retiming] This boolean option <on|off> provides an option improve circuit performance for intra-clock sequential paths by
automatically moving registers
(register balancing) across combinatorial gates or LUTs. Default: off
[-rtl] Elaborate and open an rtl design.
[-bufg] Max number of global clock buffers used by synthesis
Default: 12
[-no_lc] Disable LUT combining.
Do not allow combining. Default: off LUT pairs into single dual output LUTs. [-fanout_limit] Fanout limit. This switch does not impact control signals (such as set,reset, clock enable) use MAX_FANOUT to replicate these signals if needed.
Default: 10000
[-shreg_min_size] Minimum length for chain of registers to be mapped onto SRL.
Default: 3
[-mode] The design mode. Values: default, out_of_context
Default: default
[-fsm_extraction] FSM Extraction Encoding. Values: off, one_hot, sequential, johnson, gray, auto Default: auto
[-keep_equivalent_registers] Prevents registers sourced by the same logic from being merged.
(Note that the merging can
otherwise be prevented using the synthesis KEEP attribute)
on, off Default: auto
[-control_set_opt_threshold] Threshold for synchronous control set optimization to lower number
of control sets.
Valid values are 'auto', integer 0 to 16. The higher the number, the more control set optimization will be performed and fewer control sets will result.
To disable control set optimization completely, set to 0.
Default: auto
[-max_bram] Maximum number of block RAM allowed in design. (Note -1 means that the tool will choose the max number allowed for the part in question
Default: -1
[-max_uram] Maximum number of URAM allowed in
design. (Note -1 means that the tool will choose the max number allowed for the part in question.
Default: -1
[-max_dsp] Maximum number of block DSP allowed in design. (Note -1 means that the tool will choose the max number allowed for the part Default: -1
[-cascade_dsp] Controls how adders in sum DSP block outputs are implemented.
[-max_bram_cascade_height] Controls the maximum number of BRAM that can be cascaded by the tool. The default setting of -1 indicates that the tool chooses the maximum number allowed for the specified part.
[-max_uram_cascade_height] Controls the maximum number of URAM that can be cascaded by the tool. The default setting of -1 indicates that the tool chooses the maximum number allowed for the specified part.
[-assert] Enable VHDL assert statements to be evaluated. A severity level of failure stops the synthesis flow and produces an error.
[-no_srlextract] Prevents the extraction of shift registers so that they get implemented as simple registers.
[-quiet] Ignore command errors
[-verbose] Suspend message limits during execution
-generic オプシ ョ ンで VHDL ブール値および std_logic ベ ク ター型を指定する場合、 こ れ ら はほかの形式には 存在 し ないので特別な処理が必要です。 た と えば、 TRUE、 FALSE、 ま たは 0010 の代わ り に Verilog 標準を使用する 必要があ り ます。
ブール値の場合、 FALSE 値は次の よ う に指定 し ます。
重要: 文字列ジ ェ ネ リ ッ ク ま たはパラ メ ーターの変更はサポー ト さ れていません。
重要: 最上位に -mode out_of_context オプシ ョ ン を使用する場合は、 RTL に I/O バ ッ フ ァーが イ ン ス タ ンシエー ト さ れてい る 場合を除 き 、 PACKAGE_PIN プ ロ パテ ィ を使用し ないで く だ さ い。 out_of_context オプシ ョ ン を設 定す る と 、 ト ラ イ ス テー ト バ ッ フ ァ ーを含むすべての I/O バ ッ フ ァ ーが挿入 さ れな く な り ます。 バ ッ フ ァ ーがない 場合、 配置でエ ラ ーが発生 し ます。
コ マ ン ド の詳細は、 『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 6] を参照 し て く だ さ い。 Vivado IDE での操作に対応する Tcl コ マン ド を確認する には、 Vivado IDE で コ マン ド を実行 し、 [Tcl Console] ウ ィ ン
ド ウ ま たは ロ グ フ ァ イ ルを参照 し て く だ さ い。
RTL 合成のマルチス レ ッ ド
マルチプ ロ セ ッ サ シ ス テ ムでは、 RTL 合成でデフ ォル ト で複数の CPU コ ア (最大 4 個) を利用 し て コ ンパ イ ル時間を 短縮で き ます。
同時に実行可能な ス レ ッ ド の最大数は、 シ ス テ ム上のプ ロ セ ッ サ、OS、 およびフ ローの段階に よ っ て異な り ます。 詳細は、 『Vivado Design Suite ユーザー ガ イ ド : イ ンプ リ メ ン テーシ ョ ン』 (UG904) [参照 10] のこ のセ ク シ ョ ンを参照
し て く だ さ い。
Vivado のすべての ス レ ッ ド に共通の Tcl パ ラ メ ーター general.maxThreads を使用し て、 RTL 合成を実行する際 の ス レ ッ ド 数を指定で き ます。 次に例を示 し ます。
Vivado% set_param general.maxThreads <new limit>
<new limit> に有効な値は、 1 ~ 8 の整数値です。 RTL 合成では、 実質的に設定可能な最大ス レ ッ ド 数は 4 です。
Tcl ス ク リ プ ト 例
次に、 synth_design の Tcl ス ク リ プ ト 例を示 し ます。
# Setup design sources and constraints
read_vhdl -library bftLib [ glob ./Sources/hdl/bftLib/*.vhdl ] read_vhdl ./Sources/hdl/bft.vhdl
read_verilog [ glob ./Sources/hdl/*.v ] read_xdc ./Sources/bft_full.xdc
# Run synthesis
synth_design -top bft -part xc7k70tfbg484-2 -flatten_hierarchy rebuilt # Write design checkpoint
write_checkpoint -force $outputDir/post_synth # Write report utilization and timing estimates report_utilization -file utilization.txt
制約の設定
次の表に、Vivado タ イ ミ ン グ制約にサポー ト さ れる Tcl コ マン ド を示し ます。 各コ マン ド の リ ン ク を ク リ ッ ク する と 、 『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 6] の コ マン ド を説明するページが開き ます。
こ れ ら の コ マ ン ド の詳細は、 次の資料を参照 し て く だ さ い。
• 『Vivado Design Suite Tcl コ マン ド リ フ ァ レ ン ス ガ イ ド 』 (UG835) [参照 6]
• 『Vivado Design Suite ユーザー ガ イ ド : 制約の使用』 (UG903) [参照 9]
• 『Vivado Design Suite チ ュー ト リ アル: 制約の使用』 (UG945) [参照 17]
• 『Vivado Design Suite ユーザー ガ イ ド : デザ イ ン解析および ク ロージ ャ テ ク ニ ッ ク 』 (UG906) [参照 12]
Vivado であ ら か じ め定義 さ れている合成ス ト ラ テ ジ
次の表に、 各ス ト ラ テジ と その設定を示 し ます。 表 1-1: サポー ト さ れる合成 Tcl コ マ ン ド
コ マ ン ド タ イ プ コ マ ン ド
タ イ ミ ング制約
create_clock create_generated_clock set_false_path set_input_delay set_output_delay set_max_delay set_multicycle_path get_cells set_clock_latency set_clock_groups set_disable_timing get_ports
オブ ジ ェ ク ト ア ク セス all_clocks all_inputs all_outputs