2015 年 3 月 Lattice Diamond 日本語ユーザガ イ ド
© 2014 Lattice Semiconductor Corp. (註 : 本 Lattice Diamond 日本語マニ ュ アルは、 日本語に よ る理解のため一助 と し て提供 し てい ます。 その作成にあ た っ ては各 ト ピ ッ ク について、 それぞれ可能な限 り 正確を期 し てお り ますが、 必ず し も 網羅的ではな く 、 或いは最新でない可能性があ り ます。 ま た、 意図せずオ リ ジナル英語版
第 14 章 配置配線
本章では Lattice Diamond の配置配線 (Place & Route Design) プ ロ セ ス の ス ト ラ テジ (Strategy) 設定方法 や、 設定の詳細について説明 し ます。
14.1 Place & Route Design プ ロ セ ス の概要
[Place & Route Design] プ ロ セ ス は、 [Map Design] プ ロ セ ス で生成 さ れた SLICE 等の配置 と 配線経路を決定 す る プ ロ セ ス です。
14.2 Place and Route Design プ ロ セ ス の ス ト ラ テ ジ設定
14.2.1 ス ト ラ テジ設定 ウ イ ン ド ウ の起動
プ ロ ジ ェ ク ト ・ ナビ ゲー タ 左上に配置 さ れてい る File List ウ イ ン ド ウ に、 プ ロ ジ ェ ク ト に イ ン ポー ト さ れ てい る ス ト ラ テジの一覧が表示 さ れてい ます ( イ ンプ リ メ ン テーシ ョ ンで使用 さ れ る のは、 太字で表示 さ れ てい る 1 つだけです)。 こ の中か ら 変更 し たい ス ト ラ テジ名を ダブル ク リ ッ ク す る と 、 ス ト ラ テジ設定 ウ イ ン ド ウ が開 き ます。
図 14-1. Place & Route Design の ス ト ラ テジ
ス ト ラ テジはプ ロ セ ス ご と に表示 さ れます。 Place & Route Design の ス ト ラ テジ設定を行 う 場合は、 左側の リ ス ト か ら [Place & Route Design] を選択 し ます。
14.2.2 設定内容の詳細
以下に各設定の詳細を説明 し ます。 なお、 デバ イ ス フ ァ ミ リ に よ っ ては、 サポー ト さ れないオプシ ョ ン も あ り ます。
Auto Hold-Time Correction
パ ラ メ ー タ : On / Off デフ ォ ル ト : On (Diamond 2.0 ま では Off) 配置配線時のホール ド 時間エ ラ ーの解析お よ び対策に関す る 設定です。
Diamond 2.1 以降では、 デフ ォ ル ト で配置配線時にホール ド 時間エ ラ ーの解析を行い、 エ ラ ーがあ る 場合はデー タ パ ス の配線を長 く し て対処 し ます。 [Off] を選択 し た場合、 配置配線時にホール ド 時間 エ ラ ーのチ ェ ッ ク お よ び対策は行い ません。 14.6.1 項を併せて参照 し て く だ さ い。
Clock Skew Minimization
パ ラ メ ー タ : Off / 1 / 2 デフ ォ ル ト : Off 専用配線 (Primary/Secondary Clock) にアサ イ ン さ れなか っ た ク ロ ッ ク の ス キ ュ ーを最小にす る ため の設定です。 デフ ォ ル ト では、 ク ロ ッ ク は通常の配線アルゴ リ ズ ムで配線 さ れます。 [1] を選択 し た場合、 接続 さ れてい る SLICE 数が少ない場合 (一桁程度) に ク ロ ッ ク ス キ ュ ーが小 さ く な り やすいアルゴ リ ズ ムで ク ロ ッ ク 配線を行い ます。 [2] を選択 し た場合、 接続 さ れてい る SLICE 数が比較的多い場合に ク ロ ッ ク ス キ ュ ーが小 さ く な り や すいアルゴ リ ズ ムで ク ロ ッ ク 配線を行い ます。
Command Line Options
パ ラ メ ー タ : 文字列 デフ ォ ル ト 値 : ブ ラ ン ク 以下で紹介 し てい る GUI の リ ス ト に表示 さ れていない特別なオプシ ョ ン を使用す る 場合に、 直接引 数等を記述 し ます。 設定す る 場合は、 以下の よ う に各オプシ ョ ンは コ ロ ン 「:」 で区切っ て記述 し ま す。 最後のオプシ ョ ンの後は何 も 記述す る 必要あ り ません。 -exp オプシ ョ ン 1 : オプシ ョ ン 2 : オプシ ョ ン 3 Congestion-Driven Placement パ ラ メ ー タ : 0 / 1 / Auto デフ ォ ル ト 値 : デバ イ ス依存 配置アルゴ リ ズ ムの設定です。 デフ ォ ル ト [Auto] では、 ツールが使用率等か ら 上記の ど ち ら を選択 す る か自動的に決定 し ます。 ど ち ら が選択 さ れたかは、 レ ポー ト に メ ッ セージ と し て出力 さ れます。 [0] を選択 し た場合、 個別にパ ス の配線 し やす さ を考慮 し た配置を行い ます。 [1] を選択 し た場合、 全体的な配線の混み具合を予測 し 、 配線混雑度が高 く な り に く い よ う に配置処 理を行い ます。
図 14-2. Auto 設定で ON が選択 さ れた場合の メ ッ セージ
図 14-3. Auto 設定で OFF が選択 さ れた場合の メ ッ セージ
以下の様な場合は、 [1] ま たは [Auto] を選択す る こ と を推奨 し ます。 ・ 70kLUT 未満のデバ イ ス で SLICE 使用率が 50% 以上の場合。 ・ 使用率にかかわ ら ず 70kLUT 以上のデバ イ ス を使用す る 場合。 ・ デバ イ ス を問わず EBR/DSP ブ ロ ッ ク の使用率が 70% 以上の場合。なお、 [Congestion-Driven Placement] を ON ([1] を選択) に し た場合は、 [Congestion-Driven Routing] も ON ([1] を選択) にす る か、 [Routing Method] で [NBR] を選択す る こ と を推奨 し ます。
Congestion-Driven Routing
パ ラ メ ー タ : 0 / 1 / Auto デフ ォ ル ト 値 : デバ イ ス依存
配線アルゴ リ ズ ムの設定です。 [Congestion Driven Placement] が On の場合 (ま たは Auto 設定で ON が選択 さ れた場合) のみ有効にな り ます。 デフ ォ ル ト [Auto] では、 ツールが使用率等か ら 上記の ど ち ら を選択す る か自動的に決定 し ます。
[0] を選択 し た場合、 配線の混雑度を考慮せず、 配線 リ ソ ース の使用効率や処理時間を優先 し て配線 処理を行い ます。
[1] を選択 し た場合、 配線の混雑度を制限 し た配線処理を行い ます。 Create Delay Static File
パ ラ メ ー タ : True / False デフ ォ ル ト 値 : False
配置配線実行後の遅延情報フ ァ イ ル出力に関す る 設定です。 デフ ォ ル ト では、 フ ァ イ ルは出力 さ れま せん。
[True] を選択 し た場合、 全ネ ッ ト の遅延が記載 さ れた遅延情報フ ァ イ ル (*.dly) が出力 さ れます。 こ の フ ァ イ ル内の遅延は小数点以下 2 桁で四捨五入 さ れた値です。
Disable Timing Driven
パ ラ メ ー タ : True/False デフ ォ ル ト 値 : False
配置配線実行時に タ イ ミ ン グ制約を考慮す る か否かの設定です。 デフ ォ ル ト では、 タ イ ミ ン グ制約を 考慮 し た配置配線が行われます。
[True] を選択 し た場合、 タ イ ミ ン グ制約を無視 し て配置配線を行い ます。 Generate TRACE report for each iteration
パ ラ メ ー タ : True/False デフ ォ ル ト 値 : False 配置配線後の タ イ ミ ン グ解析実行に関す る 設定です。デフ ォ ル ト では タ イ ミ ン グ解析は自動的に行わ れません。 [True] を選択 し た場合、 配置配線完了後に自動的に タ イ ミ ン グ解析を実行 し 、 レ ポー ト を出力 し ま す。 タ イ ミ ン グ解析は コ ス ト テーブルご と に行われ、 レ ポー ト は イ ンプ リ メ ン テーシ ョ ン ・ フ ォ ルダ の下にあ る フ ォ ルダに以下の フ ァ イ ル名で出力 さ れます。 [ プ ロ ジ ェ ク ト 名 ]_[ イ ンプ リ メ ン テーシ ョ ン名 ].dir\[Effort Level]_[ コ ス ト テーブル ].twr Guided PAR Matching Factor
パ ラ メ ー タ : 数値 デフ ォ ル ト 値 : ブ ラ ン ク [Guided PAR] の リ ソ ース一致基準に関す る 設定です。 デフ ォ ル ト (ブ ラ ン ク ) の値は [100] にな っ て い ます。 値はパーセ ン テージで、 配置お よ び配線を固定す る 接続を決定す る 際の閾値 と な り ます。 参照元 と 新 し いデザ イ ン で、 リ ソ ー ス 間の接続が設定 し た値以上の割合で一致 し て い る リ ソ ー ス (ネ ッ ト 、 SLICE 等) に関 し ては、 参照元 と 同 じ にな る よ う 配置お よ び配線が固定 さ れ、 異な る 部分 のみが再配置配線 さ れます。 接続が設定 し た値以上に一致 し ていない リ ソ ース は、 その接続全て配置配線がや り 直 さ れます。 Guided PAR Report Matches
パ ラ メ ー タ : True / False デフ ォ ル ト 値 : False
[Guided PAR] を実行 し た際の レ ポー ト に関す る 設定です。 デフ ォ ル ト では、 レ ポー ト (*.gpr) には [Guide File] と 不一致だっ た リ ソ ース名のみが レ ポー ト さ れます。
Ignore Preference Errors
パ ラ メ ー タ : True / False デフ ォ ル ト 値 : True
制約設定フ ァ イ ル (*.prf) 内の記述や設定内容にエ ラ ーが あ っ た場合の処理に関す る 設定です。 デ フ ォ ル ト では、制約フ ァ イ ル内にエ ラ ーがあ っ て も エ ラ ー メ ッ セージ を出力す る だけで配置配線処理 は継続 さ れます。
[False] を選択 し た場合、 制約フ ァ イ ル内にエ ラ ーがあ る と エ ラ ー メ ッ セージ を表示す る だけでな く 配置配線処理が中止 さ れます。
Multi-Tasking Node List
パ ラ メ ー タ : フ ァ イ ル名 デフ ォ ル ト 値 : ブ ラ ン ク 配置配線の並列処理を行 う 場合の環境設定です。 複数の CPU コ ア を も つマシ ンで、 CPU コ ア ご と に 異な っ た条件での配置配線を並列処理 さ せ る 場合に、 環境設定を記述 し た フ ァ イ ルを指定 し ます。 フ ァ イ ルの記述方法については 14.3 節を参照 し て く だ さ い。 NCD Guide File パ ラ メ ー タ : フ ァ イ ル名 デフ ォ ル ト 値 : ブ ラ ン ク
以前の配置配線結果を参照 し なが ら 配置配線を行 う [Guided PAR] に関す る 設定です。[Guided PAR] の 際に参照す る 以前の配置配線結果 (*.ncd) フ ァ イ ル名を設定 し ます。 比較の結果、 接続や構成が変 更 さ れていないネ ッ ト やス ラ イ ス は以前の配置配線に固定 さ れ、変更 さ れたネ ッ ト やス ラ イ ス だけに 対 し て処理が行われます。 Guide File を使用 し た場合は、 参照結果等が *.gpr フ ァ イ ルに レ ポー ト さ れます。 何 も 参照 し ない場 合は、 ブ ラ ン ク の ま ま に し て く だ さ い。 Path-based Placement パ ラ メ ー タ : On / Off デフ ォ ル ト : Off 配置のアルゴ リ ズ ムに関す る 設定です。 デフ ォ ル ト では、 SLICE 間の接続を重視 し た配置が行われま す。 [On] を選択 し た場合、 パ ス (レ ジ ス タ - レ ジ ス タ 間) の経路を考慮 し た配置を行い ます。 Placement Effort Level
パ ラ メ ー タ : [1-5] デフ ォ ル ト 値 : 5
パフ ォーマ ン ス (動作周波数) と 処理時間の ト レー ド オ フ設定です。 数値が大 き いほ ど タ イ ミ ン グ制 約を満たす可能性が高 く な り ますが、 処理時間が長 く な り ます。
Placement Iteration Start Pt.
パ ラ メ ー タ : [1-100] デフ ォ ル ト 値 : 1
配置処理で使用す る コ ス ト テーブル (配置配線時に参照す る デー タ ベース) に関す る 設定です。 1 回 目の配置処理で使用す る コ ス ト テーブルの番号を設定 し ます。 [Placement Iterations] の設定値が 2 以 上の場合、 2 回目以降は毎回 1 増加 し た番号の コ ス ト テーブル ("Seed") が使用 さ れます。
例 :
Placement Iterations = 5, Placement Iteration Start Pt. = 3 の場合、 使用 さ れ る コ ス ト テーブルは 3,4,5,6,7 と な り ます。
Diamond 2.1 以降か ら 、 配置配線処理の繰 り 返 し に係わ る 新アルゴ リ ズ ムが導入 さ れま し た。 複数の コ ス ト テーブル (Placement Iterations が 2 以上) を指定 し た場合、 ト ー タ ル ・ ラ ン タ イ ム 20% 程度短 縮 さ れ る 可能性があ り ます (後述の Stop Once Timing is Met = [True] に し た場合)。
後で実行 さ れ る Seed に対 し て、 それ以前の Seed に よ る PAR 結果 よ り 良い結果が出 る こ と が予想 さ れない場合は、 処理を打ち切 り 、 次の Seed に移行 し ます。 その場合、 コ ン ソ ールには以下の よ う な メ ッ セージが表示 さ れ (PAR レ ポー ト に も 含まれます)、 処理を打ち切っ た こ と を通知 し ます。 こ のアルゴ リ ズ ムはデフ ォ ル ト で ON にな っ てい ます。 強制的にオ フ にす る ためには コ マ ン ド オプ シ ョ ン を以下の よ う に与え ます。 -exp parASE=0
図 14-4. PAR 処理打ち切 り を通知す る メ ッ セージ例
Placement Iterations パ ラ メ ー タ : [0-100] デフ ォ ル ト 値 : 1 配置処理の繰 り 返 し 回数の設定です。 [1] ~ [99] を設定 し た場合、 設定 し た回数配置処理を繰 り 返 し ます。 [0] を設定 し た場合は、 タ イ ミ ン グ制約を満たすま で (最大 100 回) 配置処理を繰 り 返 し ます。 なお、 配置処理は毎回異な る コ ス ト テーブル (配置配線時に参照す る デー タ ベース) を用いて行われます。 Placement Save Best Runパ ラ メ ー タ : [1-100] デフ ォ ル ト 値 : 1
プ ロ セ ス終了後に、 フ ァ イ ル と し て保存す る レ ポー ト お よ びネ ッ ト リ ス ト の数に関す る 設定です。 配 置回数が複数の場合、 結果が良い順に設定 し た数だけのネ ッ ト リ ス ト と レ ポー ト が保存 さ れます。
*****---• [Generate TRACE report for each iteration] オプシ ョ ンが [True] に設定 さ れてい る 場合、 こ のオプシ ョ ンは無視 さ れ、 全てのネ ッ ト リ ス ト と レ ポー ト が保存 さ れます。
*****---Placement Sort Best Run (Diamond 2.1 以降)
パ ラ メ ー タ : Worst Slack / Timing Score デフ ォ ル ト 値 : Worst Slack
Diamond 2.1 以降か ら 新たに導入 さ れた、 プ ロ セ ス終了後の PAR レ ポー ト 表記形式に関す る 設定で、 ソ ー ト 順の対象 と な る 値を指定 し ます。 デフ ォ ル ト の [Worst Slack] では、 下図の よ う に ス ラ ッ ク 、 即ち タ イ ミ ン グが メ ッ ト し てい る 場合は 最 も タ イ ミ ン グマージ ンが多い順、 メ ッ ト し ていない場合は タ イ ミ ン グ違反が少ない順 (WNS: Worst Nagative Slack) に ソ ー ト し て表示 し ます。 [Timing Score] を選択 し た場合、 従来の よ う に タ イ ミ ン グ ス コ アが小 さ い順に レ ポー ト さ れます。
図 14-5. ス ラ ッ ク (WNS) 順に ソ ー ト し た レ ポー ト 例
*****---• Diamond 2.1 以降で複数のシー ド (Placement Iteration が 2 以上) を指定 し た場合、 「自動シー ド ・ ス キ ッ プ」 機能がデフ ォ ル ト で有効にな り ます。 即ち後で実行 さ れ る シー ド の途中経過でそれ以前に実行 さ れた結果 よ り も 良 く な ら ない と 判断 さ れた ら 、 処理を中断 し て次のシー ド に移行 し ます。 こ れに よ り ト ー タ ルの ラ ン タ イ ム を短縮 し ます。 コ ス ト テーブルサマ リ は図 14-6 の よ う に ”Skip” と 表示 さ れま す。 本機能を無効にす る 場合は次の よ う な コ マ ン ド を ス ト ラ テジ ・ ウ ィ ン ド ウ 内 [Command line Options] 欄に記載 し ます “-exp parASE=0”
*****---図 14-6. PAR 処理が ス キ ッ プ さ れたシー ド の結果を含む コ ス ト テーブルサマ リ レ ポー ト の例
Remove previous design directory
パ ラ メ ー タ : True / False デフ ォ ル ト 値 : True
以前に実行 し た配置配線のテ ン ポ ラ リ フ ァ イ ルの削除に関す る 設定です。 配置配線では、 [Placement Effort Level]や[Placement Iterations] の設定ご と にネ ッ ト リ ス ト や各種レ ポー ト を一旦テ ン ポ ラ リ フ ォ ルダに出力 し ます。そ し てプ ロ セ ス終了後に最 も パフ ォーマ ン ス の高か っ たネ ッ ト リ ス ト を イ ンプ リ
メ ン テーシ ョ ン ・ フ ォ ルダに コ ピー し ます。
[True] (デフ ォ ル ト ) を選択 し た場合、 プ ロ セ ス開始時に以前のテ ン ポ ラ リ 出力フ ァ イ ルは全て削除 さ れます。
[False] を選択 し た場合、 以前のテ ン ポ ラ リ 出力フ ァ イ ルは削除 さ れません。 し か し 、 フ ァ イ ル名が [Effort Level] + [Cost table (後述) ] + 拡張子 であ る ため、 同 じ 設定の結果は上書 き さ れます。 Routing Delay Reduction Passes
パ ラ メ ー タ : [0-100] デフ ォ ル ト 値 : 0
通常の配線処理後に行 う 配線の最適化処理の実行回数設定です。通常の配線処理はデバ イ ス全体に対 し て最適化を行い ますが、こ のオプシ ョ ンに よ る 配線の最適化は ロ ーカルな配線に対 し てのみ行われ ます。
*****---• ロ ーカルに配線の最適化を行 う と い う 点では [Routing Resource Optimization] と 同 じ ですが、 最適化に は異な る アルゴ リ ズ ムが使用 さ れます。
*****---こ の最適化処理は、 [Routing Method] と し て [Default] を選択 し た場合のみ行われます。 Routing Passes
パ ラ メ ー タ : [1-1000] デフ ォ ル ト 値 : 6
1回の配置処理に対す る 配線処理の最大繰 り 返 し 回数の設定です。全ての タ イ ミ ン グ制約を満たせば、 設定 し た回数分だけ配線処理を繰 り 返 し ていな く て も プ ロ セ ス は終了 し ます。
こ の設定は、 Routing method オプシ ョ ンで Default (PAR) を選択 し た場合のみ有効にな り ます。 Routing Resource Optimization
パ ラ メ ー タ : [0-6] デフ ォ ル ト 値 : 0
通常の配線処理後に行 う 配線の最適化処理の実行回数設定です。通常の配線処理はデバ イ ス全体に対 し て最適化を行い ますが、こ のオプシ ョ ンに よ る 配線の最適化は ロ ーカルな配線に対 し てのみ行われ ます。
*****---• ロ ーカルに配線の最適化を行 う と い う 点では [Routing Delay Reduction Passes] と 同 じ ですが、 最適化 には異な る アルゴ リ ズ ムが使用 さ れます。
*****---こ の最適化処理は、 [Routing Method] と し て [Default] を選択 し た場合のみ行われます。 Routing method
パ ラ メ ー タ : NBR/CDR デフ ォ ル ト 値 : NBR
配線アルゴ リ ズ ムの選択オプシ ョ ンです。Diamond 2.0 か ら デフ ォ ル ト 設定が NBR に変更 さ れま し た。 NBR (Negotiation Based Routing) では、 初めに全てのパ ス に対 し て最適な配線を行い ます。 その際使 用す る 配線 リ ソ ー ス が他のパ ス で使用 さ れてい る か ど う かは無視 さ れ ま す。 全てのパ ス の配線完了 後、 同 じ 配線 リ ソ ース を競合使用 し てい る パ ス同士で、 配線 リ ソ ース の調整を し ます。 こ の調整を全 競合パ ス に対 し て個別に処理を行い ます。
[CDR] (Congestion Driven Routing) では、 タ イ ミ ン グが ク リ テ ィ カルなパス か ら 順番に、 配線の混雑 度を考慮 し なが ら 処理を行い ます。
Run Placement Only
パ ラ メ ー タ : True/False デフ ォ ル ト 値 : False
配線処理の実施に関す る 設定です。 デフ ォ ル ト では配置処理後に配線処理 も 行われます。
[True] を選択 し た場合、 配置処理だけが行われます。 配置のオプシ ョ ン設定は変更せず配線処理のオ プシ ョ ン を変更 し て結果を比較す る 場合等は、 配置だけ を先に行い、 その結果に対 し て異な る オプ シ ョ ン設定で配線処理のみを実行すれば、 配置処理にかか る 時間を短縮で き ます。
Stop Once Timing is Met
パ ラ メ ー タ : True/False デフ ォ ル ト 値 : False
配線処理を繰 り 返 し 処理 (Placement Iterations ≠ 1) し た際に、 繰 り 返 し の途中で タ イ ミ ン グ要求が 満た さ れた場合の処理を指定す る 設定です。
[False] (デフ ォ ル ト ) を選択 し た場合、 途中で タ イ ミ ン グ要求が満た さ れて も 指定 し た回数の配置配 線が行われます。
[True] を選択 し た場合、 タ イ ミ ン グ要求が満た さ れ る と 以降の配置配線を行い ません。 直近の Seed で タ イ ミ ン グ ス コ アがゼ ロ にな る か、 指定 Seed 全部が処理終了す る か、 いずれかが先に成立す る と 配置配線を終了 し ます。 Ver.1.3 ま では ラ ン マネージ ャ で配置配線を実行 し た場合に本オプシ ョ ンが無効で し たが、 Ver.1.4 か ら は有効です。 なお、 以下の場合は こ のオプ シ ョ ン が True に設定 さ れて いて も 、 必ず Placement Iterations オプシ ョ ン で指定 し た回数の配置配線が行われます。
・ Generate TRACE report for each iteration オプシ ョ ンの設定が True
14.3 複数 CPU コ アに よ る 配置配線の並列処理
配置配線のオプシ ョ ン [Placement Iterations] で [1] 以外を設定 し て配置配線を複数回実行 さ せ る 場合、複数 の CPU コ ア を持つマシ ンでは各 コ アに [Cost Table] の異な る 配置配線プ ロ セ ス を並列実行 さ せ る こ と がで き ます。 並列処理を行 う こ と で、 ト ー タ ルの処理時間を短縮す る こ と がで き ます (図 14-7)。 *****---• メ モ リ へのア ク セ ス競合等の影響に よ り [Cost Table] ご と の配置配線時間は、 並列処理の方が逐次処 理 よ り 若干長 く な り ます *****--- 配置配線の並列処理を行 う 場合は、 以下の フ ォ ーマ ッ ト で記述 さ れた テ キ ス ト フ ァ イ ルのパ ス を、 [Multi Tasking Node List] オプシ ョ ンで指定 し ます。
-- 記述フ ォーマ ッ ト [ コ ン ピ ュ ー タ 名 ] SYSTEM = シ ス テ ムの タ イ プ (PC or LINUX) CORENUM = CPU コ ア数 --- 記述例 [DemoPC] SYSTEM = PC CORENUM = 2 なお、 実際に搭載 さ れてい る コ ア数以上の値を設定す る と 、 処理性能が極端に悪 く な り ます。 コ ア数 の設定値は搭載 さ れてい る コ ア数以内に収めて く だ さ い。 ま た、 ラ ン マネージ ャ で複数 イ ンプ リ メ ン テーシ ョ ン を並列処理 さ せ る 場合、こ のオプシ ョ ン設定を行っ てい る と 期待 し てい る 以上のプ ロ セ ス が同時実行 さ れて し ま う こ と があ り ます。 注意 し て く だ さ い。
図 14-7. 並列処理に よ る処理時間短縮の例
14.4 Place & Route Design の レ ポー ト
14.4.1 出力 さ れ る レ ポー ト フ ァ イ ル名
Place & Route Design プ ロ セ ス実行時には、 イ ンプ リ メ ン テーシ ョ ン ・ フ ォ ルダに html と テ キ ス ト 形式の レ ポー ト が出力 さ れます。 内容はど ち ら も 同 じ です。 フ ァ イ ル名はそれぞれ以下の よ う にな り ます。
html 形式 : プ ロ ジ ェ ク ト 名 _ イ ンプ リ メ ン テーシ ョ ン名 _par.html テ キ ス ト 形式 : プ ロ ジ ェ ク ト 名 _ イ ンプ リ メ ン テーシ ョ ン名 .par
Html 形式の レ ポー ト は、 Lattice Diamond の Report ウ イ ン ド ウ で見 る こ と がで き ます。
図 14-8. Place & Route Design の レ ポー ト 例
14.4.2 レ ポー ト 内容の概要
Place & Route Design プ ロ セ ス の結果は、 大 き く 以下の様な内容ご と に分類 さ れて レ ポー ト さ れます。 Cost Table Summary
主な レ ポー ト 内容 Cost Table 毎の処理結果 ~ Timing Score や処理時間等 Best Par Run
主な レ ポー ト 内容 実行 し た Place & Route プ ロ セ ス のなかで最 も 良い結果を残 し た ケース の cost- table 等の情報
Device Utilization summary
主な レ ポー ト 内容 各種 リ ソ ース の使用率 Clock Report
14.4.3 Place & Route Design の Error / Warning メ ッ セージ
本項では、 よ く 出 る Warning/Error メ ッ セージの意味 と 対処方法について説明 し ます。 ※ メ ッ セージはデバ イ ス フ ァ ミ リ に よ っ て若干変わ り ます。
メ ッ セージ
WARNING - par: Signal < ク ロ ッ ク名 > is selected to use Primary clock resources; however its driver comp < ク ロ ッ ク名 > is located at < ピ ン番号 >, which is not a dedicated pin for connecting to Primary clock resources. General routing has to be used to route this signal, and it may suffer from excessive delay or skew.
ま たは
WARNING - par: The driver of primary clock net ク ロ ッ ク名 is not placed on one of the PIO sites which are dedicated for primary clocks. This primary clock will be routed to a H-spine through general routing resource or be routed as secondary clock and may suffer from excessive delay or skew.
意味 : Primary/Secondary ク ロ ッ ク 配線にアサ イ ン さ れた信号の ソ ース が ク ロ ッ ク ピ ンではない場合、 ま たは ク ロ ッ ク ピ ン が使用 さ れていて も ク ロ ッ ク バ ッ フ ァ ま での接続に専用配線が使用 さ れていない 場合に、 それを知 ら せ る メ ッ セージです。
対策 : 信号の ソ ース が ク ロ ッ ク ピ ンの場合 と そ う でない場合では、 デバ イ ス内の ク ロ ッ ク バ ッ フ ァ に到 達す る ま での遅延時間は変わ り ますが、 ク ロ ッ ク 信号 と し ての品質に差はで ません ( メ ッ セージの最 後の skew は他の ピ ンか ら 入力 さ れた ク ロ ッ ク と の skew を表 し てお り 、 FPGA 内部の レ ジ ス タ 間の ク
ロ ッ ク skew ではあ り ません)。 ピ ン アサ イ ンの間違いでないのな ら 無視 し てか ま い ません。 メ ッ セージ
WARNING - par: (user pref. secondary clock) PLL CLKOP=>CLKFB feedback signal " 信号名 " is assigned to use secondary clock resources in the preference; however, this signal has to use a primary clock tree. The preference will be ignored.
ま たは
WARNING - par: (User pref. secondary clock) Signal " ク ロ ッ ク ネ ッ ト 名 " is not selected to use secondary clock resources due to the limited availability of clock driver and/or clock spine resources.
意味 : 制約フ ァ イ ル内で Secondary ク ロ ッ ク にアサ イ ンす る よ う 記述 さ れてい る ク ロ ッ ク が、 ク ロ ッ ク ソ ー ス が適切でないために Secondary ク ロ ッ ク にアサ イ ン で き ない場合に出力 さ れ る メ ッ セージで す。 対策 : Secondary にアサ イ ン で き ない理由 (主にデバ イ ス のアーキ テ ク チ ャ に起因) を確認 し 、 適当な ク ロ ッ ク リ ソ ース に割 り 当て ら れ る よ う 設定を変更す る 。 メ ッ セージ
ERROR - par: init_place_piopgroup () : Failed to place PIO PGROUP comp " ポー ト 名 ". ま たは
ERROR - par: Cannot place PIO comp " ポー ト 名 " on PIO site " ピ ン番号/ PAD 番号 " (I/O bank *). 意味 : ピ ン アサ イ ンが不適切なため配置で き なか っ た場合に出力 さ れ る メ ッ セージです。 対策 : ピ ン アサ イ ンが不適切だ と さ れ る 理由 (主にハー ド ウ エアのアーキ テ ク チ ャ に起因) を確認 し 、 適 当な ピ ン アサ イ ンに修正 し ます。 *****---• 多 く は、 BANK 内での IO タ イ プの混在や、 特定信号 (DQS や Vref 等) のアサ イ ンルール違反に起因 し ます
*****---メ ッ セージ
ERROR - par: chipcheck: differential driver polarity mismatch. Condition: A true differential PIO signal, " ポー ト 名 " (IO タ イ プ) , has been locked to a complementary LVDS driver, device site (Pin = ピ ン番 号). Recommendation: Move the assignment to a device site with a true LVDS driver. For more information of LVDS support, see the sysIO Buffer topic in the device data sheet.
意味 : 差動 IO を使用 し た場合に、 極性が適当でない場合に出力 さ れ る メ ッ セージです。 対策 : ピ ン アサ イ ン を確認/修正 し て く だ さ い。
メ ッ セージ
WARNING - par: The hold-time optimization process will be skipped because the design currently has [hold-time エ ラ ー数 ] hold-time violations, which exceeds the limits (default is 250) . To change default value, please read online help.
意味 : [Auto Hold-time Correction] オプシ ョ ン を [On] に し た際に、 エ ラ ーす る パ ス数がケ アす る 上限の設 定値 (デフ ォ ル ト :250) よ り 大 き い と 出力 さ れ る メ ッ セージです。 こ の メ ッ セージが出力 さ れ る と [Auto Hold-time Correction] は ス キ ッ プ さ れます。
対策 : [Auto Hold-time Correction] の上限のパス数の変更を [Command line Options] オプシ ョ ンで行い ま す。 詳細は 14.6.1 項を参照 し て く だ さ い。
メ ッ セージ
Warning: There are 未配線信号数 unrouted connections after first iteration which indicats that the design is hard to route.
意味 : 1 度目の配線処理で未配線 (配線で き ない信号) が多い と 出力 さ れ る メ ッ セージです。 こ の メ ッ セージが出力 さ れた場合は、 2 回目以降の配線処理は行われません。
対策 : [Congestion Driven Placement/Routing] オプシ ョ ン を [On] に設定す る か、 デバ イ ス のサ イ ズ を変更 す る 等の方法で回避で き る こ と があ り ます。
14.5 Place & Route Design プ ロ セ ス後の タ イ ミ ン グ解析
Process ウ イ ン ド ウ では Place & Route Design の ツ リ ーに [Place & Route Trace] (実配線遅延に タ イ ミ ン グ解 析) プ ロ セ ス と [I/O Timing Analysis] (I/O のみの タ イ ミ ン グ解析) が表示 さ れてい ます (図 14-9)。
プ ロ セ ス名の左側にチ ェ ッ ク ボ ッ ク ス があ り 、 チ ェ ッ ク が入っ てい る と Place & Route Design 実行後に、 こ れ ら のプ ロ セ ス も 続けて実行 さ れます。 チ ェ ッ ク が入っ ていない場合は、 必要に応 じ て Place & Route Design プ ロ セ ス完了後にプ ロ セ ス名を ダブル ク リ ッ ク すれば実行 さ せ る こ と がで き ます。
14.6 Place & Route プ ロ セ ス実行の注意事項
14.6.1 Auto Hold-time Correction オプシ ョ ンの注意事項
ク ロ ッ ク 信号が ク ロ ッ ク 配線 (Primary ま たは Secondary) にアサ イ ン さ れていれば、 ク ロ ッ ク ド メ イ ン内 のパ ス でホール ド 時間エ ラ ーは発生 し ないので、 こ のオプシ ョ ンは [Off] 設定で構い ません。 し か し 、 ク ロ ッ
ク 配線にアサ イ ン さ れていない ク ロ ッ ク があ る 場合は、必ず こ のオプシ ョ ン を [On] に設定 し て ホール ド 時間 エ ラ ーの対処を行 う よ う に し ます。
AHC オプシ ョ ンが On で も 、 デフ ォ ル ト では、 Auto Hold-time Correction (AHC) 処理は、 Timing Score=0 でかつホール ド 違反のあるパス数がデ フ ォル ト で 250 本以下の場合にのみ起動 さ れます。 こ の上限値を変更 す る 場合は コ マ ン ド ・ オプシ ョ ンで以下の よ う に記述 し ます。 -exp parHoldlimit= 上限値 ま た、 「Timing Score=0」 の条件をはず し たい (無効にす る ) 場合、 は以下の コ マ ン ド ・ オプシ ョ ン を指定 し ます。 -exp parHold=1
さ ら に、 Auto Hold-time Correction はデフ ォ ル ト の ス ピー ド グ レー ド [-m] で実行 さ れますが、 こ れを変更 す る 場合は、 以下の よ う に記述 し ます。
-exp parHoldSpeedGrade= ス ピー ド グ レー ド
14.7 改訂履歴
***
---Ver. Date page 内 容