• 検索結果がありません。

Vivado Design Suite ユーザー ガイド: 合成 (UG901)

N/A
N/A
Protected

Academic year: 2021

シェア "Vivado Design Suite ユーザー ガイド: 合成 (UG901)"

Copied!
285
0
0

読み込み中.... (全文を見る)

全文

(1)

Vivado Design Suite

ユーザー

ガイ ド

合成

UG901 (v2016.4) 2016 年 11 月 30 日

この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料に

よっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきまし

ては、必ず最新英語版をご参照ください。

(2)

次の表に、 こ の文書の改訂履歴を示 し ます。 日付 バージ ョ ン 改訂履歴 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 の ス テータ ス を追加。

(3)

第 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 でのみサポー ト さ れる こ と を記述

(4)

改訂履歴 . . . 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 コーデ ィ ン グ手法 . . . 98

(5)

RAM 内容の初期化 . . . 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 デー タ 型 . . . 262

(6)

package 文 . . . 273 合成可能な SystemVerilog コ ン ス ト ラ ク ト . . . 274

第 8 章: 混合言語サポー ト

概要 . . . 278 VHDL と Verilog の混合 . . . 278 イ ン ス タ ン シエーシ ョ ン . . . 278 VHDL お よび Verilog ラ イ ブ ラ リ . . . 279 VHDL お よび Verilog の境界規則 . . . 279 バ イ ン ド . . . 280

付録 A: その他の リ ソ ースおよび法的通知

ザ イ リ ン ク ス リ ソ ース . . . 283 ソ リ ュ ーシ ョ ン セン ター . . . 283 Documentation Navigator およびデザ イ ン ハブ. . . 283 参考資料 . . . 284 お読み く だ さ い: 重要な法的通知 . . . 285

(7)

Vivado 合成

概要

合成は、RTL で記述 さ れたデザ イ ン をゲー ト レベル記述に変換する プ ロ セ ス です。 Vivado® 合成は タ イ ミ ン グ ド リ ブ ンであ り 、 メ モ リ 使用量お よ びパフ ォーマ ン ス で最適化 さ れてい ます。Vivado 合成では、 次の言語の合成可能な サブセ ッ ト がサポー ト さ れます。 • SystemVerilog

SystemVerilog (統合ハー ド ウ ェ ア設計、 仕様、 および検証言語) の 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] を参照し て く だ さ い。 こ の章では、 両方のモー ド を使用 し た合成を個別のセ ク シ ョ ンで説明 し ます。

(8)

合成手法

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

(9)

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

(10)

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

(11)

° [-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 を参照し て く だ さ い。

(12)

° [-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]

(13)

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

(14)

新規ス ト ラ テ ジの作成

カ ス タ ム ス ト ラ テジは、 [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

(15)

合成への入力

Vivado 合成には、 RTL ソ ース コー ド およびタ イ ミ ン グ制約を入力で き ます。 RTL ま たは制約フ ァ イ ルを追加する に は、 次の手順に従い ます。

1. Flow Navigator で [Add Sources] を ク リ ッ ク し、 Add Sources ウ ィ ザー ド を開き ます。

X-Ref Target - Figure 1-6

(16)

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

(17)

フ ァ イルの コ ンパイル順

あ る フ ァ イ ルに宣言が含まれ、 別の フ ァ イ ルがその宣言に依存 し てい る 場合、 特定の コ ンパ イ ル順が必要にな り ま す。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

(18)

デザ イ ン フ ローの詳細は、 『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

(19)

合成の実行

合成 run では、 合成中に使用 さ れるデザ イ ンの詳細を定義および設定で き ます。 合成 run は次を定義し ます。 • 合成中に タ ーゲ ッ ト と す る ザ イ リ ン ク ス デバ イ ス • 適用す る 制約セ ッ ト • 1 つま たは複数の合成 run を実行する オプシ ョ ン • 合成エン ジ ンの結果を制御す る オプシ ョ ン RTL ソ ース フ ァ イ ルの run および制約を定義する には、 次の手順に従い ます。

1. メ イ ン メ ニ ューか ら [Flow] → [Create Runs] を ク リ ッ ク する か、[Create Runs] ボ タ ン を ク リ ッ ク し ます。

Create New Runs ウ ィ ザー ド が開き ます。

X-Ref Target - Figure 1-11

(20)

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

(21)

[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] ページ

(22)

[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 を実行する たびに、 別のプ ロ セ スが開始されます。 メ ッ セージを確認する際は、 プ ロ セ ス特定の も のに 注意 し て く だ さ い。

(23)

ボ ト ムア ッ プ アウ ト オブ コ ン テキス ト フ ローの設定

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

(24)

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

(25)

ボ ト ムア ッ プ フ ローの手動設定と ネ ッ ト リ ス ト のイ ンポー ト

ボ ト ム ア ッ プ フ ローを手動で実行する には、 下位ネ ッ ト リ ス ト ま たはサー ド パーテ ィ ネ ッ ト リ ス ト をブ ラ ッ ク ボ ッ ク ス と し て イ ン ス タ ン シエー ト し ます。 こ の よ う にす る と 、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

(26)

下位ネ ッ ト リ ス ト のデザイ ンへのイ ン ス タ ン シ エーシ ョ ン

最上位デザ イ ン を下位ネ ッ ト リ ス ト ま たはサー ド パーテ ィ ネ ッ ト リ ス ト と 共に実行する には、 下位ネ ッ ト リ ス ト を ブ ラ ッ ク ボ ッ ク ス と し て イ ン ス タ ン シエー ト し ます。 こ れには、 下位ネ ッ ト リ ス ト のポー ト を 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 コ マン ド を使用 し ます。

(27)

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 でほかの機能を実行で き る よ う にな り ます。

(28)

合成実行の監視

合成 run の ス テータ スは、 次の図に示す [Log] ウ ィ ン ド ウ で確認 し ます。 合成中に こ の ウ ィ ン ド ウ に表示 さ れ る メ ッ セージは、 合成 ロ グ フ ァ イ ルに も 含まれます。

合成終了後のフ ロー

run が完了する と 、 次の図に示す [Synthesis Completed] ダ イ ア ロ グ ボ ッ ク ス が表示 さ れます。

X-Ref Target - Figure 1-19

図 1-19: [Log] ウ ィ ン ド ウ

X-Ref Target - Figure 1-20

(29)

次のいずれか を オンに し ます。

° [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

(30)

合成済みデザイ ン環境の使用

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

(31)

レポー ト の表示

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

(32)

ロ ジ ッ ク回路図の解析

[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

(33)

タ イ ミ ン グ解析の実行

合成済みデザ イ ンの タ イ ミ ン グ解析は、 イ ンプ リ メ ン テーシ ョ ン を効率的に実行す る ために必要な制約がパ ス に設 定 さ れてい る か ど う か を確認す る のに有益です。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

(34)

[-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)

(35)

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 値は次の よ う に指定 し ます。

(36)

重要: 文字列ジ ェ ネ リ ッ ク ま たはパラ メ ーターの変更はサポー ト さ れていません。

重要: 最上位に -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

(37)

制約の設定

次の表に、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

図 1-5、 図 1-6、 図 1-11、 図 1-12 を リ リ ース に併せて変更  第 2 章:
図 1-2 に示す [Project Settings] ダ イ ア ロ グ ボ ッ ク ス が開き ます。
図 1-2: [Project Settings] ダ イ ア ログ ボ ッ ク ス
図 1-3: 定義済みス ト ラ テジ
+7

参照

関連したドキュメント

It is suggested by our method that most of the quadratic algebras for all St¨ ackel equivalence classes of 3D second order quantum superintegrable systems on conformally flat

This paper is devoted to the study of maximum principles holding for some nonlocal diffusion operators defined in (half-) bounded domains and its applications to obtain

Since the boundary integral equation is Fredholm, the solvability theorem follows from the uniqueness theorem, which is ensured for the Neumann problem in the case of the

This paper develops a recursion formula for the conditional moments of the area under the absolute value of Brownian bridge given the local time at 0.. The method of power series

Next, we prove bounds for the dimensions of p-adic MLV-spaces in Section 3, assuming results in Section 4, and make a conjecture about a special element in the motivic Galois group

Transirico, “Second order elliptic equations in weighted Sobolev spaces on unbounded domains,” Rendiconti della Accademia Nazionale delle Scienze detta dei XL.. Memorie di

Then it follows immediately from a suitable version of “Hensel’s Lemma” [cf., e.g., the argument of [4], Lemma 2.1] that S may be obtained, as the notation suggests, as the m A

Our method of proof can also be used to recover the rational homotopy of L K(2) S 0 as well as the chromatic splitting conjecture at primes p &gt; 3 [16]; we only need to use the