マッピング後のタイミング解析

マ ッ ピ ング後の タ イ ミ ング解析
Lattice Diamond 日本語ユーザガ イ ド
2015 年 3 月
第 13 章 マ ッ ピ ン グ後の タ イ ミ ング解析
マ ッ ピ ン グ (Map Design) プ ロ セ ス完了後 (配置配線実行前) には、 仮配線遅延での静的 タ イ ミ ン グ解析
(Map Trace) と 、 ネ ッ ト リ ス ト に よ る シ ミ ュ レーシ ョ ンでの機能検証を行 う こ と がで き ます。 本章では タ イ
ミ ン グ解析の実行方法 と オプシ ョ ン設定の詳細、 それにシ ミ ュ レーシ ョ ン用のネ ッ ト リ ス ト 生成方法等につ
いて説明 し ます。
13.1 Map Trace
タ イ ミ ン グ解析 (ま たは Map Trace) は Map Design 完了後のネ ッ ト リ ス ト を使っ た、 静的 タ イ ミ ン グ検証
(STA) です。 Place & Route プ ロ セ ス実行前に検証を行 う こ と に よ り 、 事前に ク リ テ ィ カルパ ス にな り そ う な
パ ス に対 し て対策を行 う こ と がで き ます。
13.1.1 Map Trace におけ る 配線遅延
タ イ ミ ン グ解析は LUT やレ ジ ス タ 等のゲー ト 遅延、 デー タ パ ス の配線遅延、 お よ び ク ロ ッ ク 配線の遅延を
使用 し て行われます。 LUT やレ ジ ス タ 等のゲー ト 遅延は配置配線前で も 分か っ てい る ので適当な値で解析が
行われますが、 配置配線前ではデー タ パ スお よ び ク ロ ッ ク の配線遅延を正確に知 る こ と がで き ません。 こ の
ため Map Trace では、 配線遅延は見積 も っ た値 (見積 も り 方法は後述) を使用 し て解析を行い ます。
13.1.2 Map Trace の実行
仮配線遅延での タ イ ミ ン グ解析プ ロ セ ス は、 Process ウ イ ン ド ウ の Map Design プ ロ セ ス ツ リ ーの下にあ る
[Map Trace] です (図 13-1)。
図 13-1. タ イ ミ ン グ検証の実行
プ ロ セ ス名の左側にあ る チ ェ ッ ク ボ ッ ク ス にチ ェ ッ ク が入っ てい る と 、 Map Design プ ロ セ ス完了後に自動
的に実行 さ れます。 チ ェ ッ ク が入っ ていない場合で も 、 プ ロ セ ス名を ダブル ク リ ッ ク すれば実行 さ れます。
13.1.3 タ イ ミ ン グ検証の ス ト ラ テ ジ設定
仮配線遅延での タ イ ミ ン グ検証では、 ス ト ラ テジ設定に よ る 検証条件やレ ポー ト ス タ イ ル等を変更す る こ
と がで き ます。
© 2014 Lattice Semiconductor Corp. (註 : 本 Lattice Diamond 日本語マニ ュ アルは、 日本語に よ る理解のため一助 と し て提供 し てい ます。 その作成にあ た っ ては各 ト
ピ ッ ク について、 それぞれ可能な限 り 正確を期 し てお り ますが、 必ず し も 網羅的ではな く 、 或いは最新でない可能性があ り ます。 ま た、 意図せずオ リ ジナル英語版
オン ラ イ ンヘルプや リ リ ース ノ ー ト な ど と 不一致があ る 場合 も あ り 得ます。 疑義が生 じ た場合は、 ラ テ ィ ス セ ミ コ ン ダ ク タ ー正規代理店の技術サポー ト 担当にお問
い合わせ頂 く か、 ま たは極力最新の英語オ リ ジナル ・ ソ ース ド キ ュ メ ン ト を併せて参照する よ う にお願い致 し ます。)
www.latticesemi.com
13-1
JUG_D3.3MapTrace_v1.0
Lattice Diamond 日本語ユーザガ イ ド
図 13-2. Map Trace の ス ト ラ テジ
仮配線遅延での タ イ ミ ン グ検証は、 ス ト ラ テジ設定ウ イ ン ド ウ 左側の一覧か ら [Map Trace] を選択 し ます
(図 13-2)。 以下に各オプシ ョ ンの詳細を説明 し ます。
Analysis Option
パ ラ メ ー タ : Standard Setup and Hold Analysis / Standard Setup Analysis / Hold Analysis / Standard
Setup with Hold Analysis on IO
デフ ォ ル ト 値 : Standard Setup and Hold Analysis
実行す る 解析内容の選択です。 解析内容は表 13-1 の よ う にな り ます。
表 13-1. 解析オプシ ョ ン と 内容
解析内容選択
内部レジスタ間タイミング
入力信号タイミング
出力信号タイミング
最大動作速度
内部レジスタ間
Setup-time Hold-time 最大遅延 最小遅延
(周期 or 周波数)
Hold-time
Standard Setup and
Hold Analysis
○
○
△
△
△
△
Standard SetupAnalysis
○
×
△
×
△
×
Hold Analysis
×
○
×
△
×
△
Standard Setup with
Hold Analysis on IO
○
×
△
△
△
△
○ : 解析が実行 さ れ る (基本的には制約が設定 さ れてい る 場合のみ)
△ : 解析は実行 さ れ る が、 (特に ク ロ ッ ク が) 仮配線遅延では参考にな ら ない
× : 解析は実行 さ れない
Auto Timing
パ ラ メ ー タ : True / False
デフ ォ ル ト 値 : True
制約フ ァ イ ル (lpf) 内に タ イ ミ ン グ制約が全 く 設定 さ れていない場合の処理に関す る 設定です。 True
(デフ ォ ル ト ) では、 lpf フ ァ イ ル内に全 く 制約が設定 さ れていない と 、 自動的に制約が設定 さ れてそ
れが prf ( タ イ ミ ン グ検証で使用す る 制約フ ァ イ ル) に記述 さ れます。
False を選択 し た場合は、 prf には タ イ ミ ン グ制約が記述 さ れません。 ただ し 、 こ の場合で も 解析は行
われ、 パ ス遅延の大 き なパ ス か ら 順に レ ポー ト さ れます。
JUG_D3.3MapTrace_v1.0
13-2
マ ッ ピ ング後の タ イ ミ ング検証
Check Unconstrained Connections (Diamond 2.x 以降)
パ ラ メ ー タ : True / False
デフ ォ ル ト 値 : False
タ イ ミ ン グ制約の対象外 (制約がない、 或いは BLOCK 制約) と な る コ ネ ク シ ョ ンの レ ポー ト に関す
る 設定です。 デフ ォ ル ト (False) では何 も レ ポー ト さ れません。
True を選択 し た場合は、 解析対象外 と な っ た コ ネ ク シ ョ ンの リ ス ト が レ ポー ト さ れます。
Check Unconstrained Paths
パ ラ メ ー タ : True / False
デフ ォ ル ト 値 : False
タ イ ミ ン グ制約の対象外 (制約がない、 或いは BLOCK 制約) と な る パ ス の レ ポー ト に関す る 設定で
す。 False (デフ ォ ル ト ) では何 も レ ポー ト さ れません。
True の場合は、 解析対象外 と な っ たパス の リ ス ト が レ ポー ト さ れます。
Full Name
パ ラ メ ー タ : True / False
デフ ォ ル ト 値 : False
レ ポー ト 内の長い リ ソ ー ス名の表示に関す る 設定です。 False (デフ ォ ル ト ) では、 リ ソ ー ス名が長
い と (問題ない範囲で) 省略 し て表示 さ れます。
True を選択す る と 、 常に省略 さ れずに全て表示 さ れます。
Number of Unconstrained Paths (0 to 4096) (Diamond 2.x 以降)
パ ラ メ ー タ : [0 - 4096]
デフ ォ ル ト 値 : な し (無効)
レ ポー ト す る 未制約パ ス数に関す る 設定です。 「Check Unconstrained Paths] を [True] に し た場合に、
レ ポー ト すべ き パ ス数を数値で入力 し ます。 Check Unconstrained Paths を True に し た場合にのみ入
力が可能にな り ます。
Report Asynchronous Timing Loops
パ ラ メ ー タ : True / False
デフ ォ ル ト 値 : False
非同期で信号がループす る パ ス の レ ポー ト に関す る 設定です。 False (デフ ォ ル ト ) の場合は、 何 も
レ ポー ト さ れません。
True を選択す る と 、 図 13-3 の よ う な レ ジ ス タ を解 さ ないループや非同期 リ セ ッ ト 等を解 し た非同期
のループ等、単純な遅延の加算では正 し く 解析がで き ない可能性のあ る パ ス について レ ポー ト さ せ る
こ と がで き ます。
図 13-3. 非同期ループパス の例
13-3
JUG_D3.3MapTrace_v1.0
Lattice Diamond 日本語ユーザガ イ ド
Report Style
パ ラ メ ー タ : Verbose Timing Report / Error Timing Report
デフ ォ ル ト 値 : Verbose Timing Report
レ ポー ト す る 内容についての設定です。 デフ ォ ル ト (Verbose Timing Report) の場合は タ イ ミ ン グエ
ラ ーの有無に関わ ら ず、 制約に対 し てマージ ンの小 さ いパス か ら レ ポー ト さ れます。 従っ て タ イ ミ ン
グエ ラ ーが無 く て も ワース ト ケースパ ス を知 る こ と がで き ます。
Error Timing Report を選択 し た場合は、 タ イ ミ ン グエ ラ ーをお こ し たパス だけが レ ポー ト さ れます。
従っ て、 タ イ ミ ン グ エ ラ ーが無か っ た場合、 最大動作周波数は レ ポー ト さ れ ま すがパ ス の情報は レ
ポー ト さ れません ( 図 13-4)。
図 13-4. Error Timing Report を選択 し た場合の レ ポー ト の例
Route Estimate Algorithm (%)
パ ラ メ ー タ : 0 ま たは 1 ~ 100
デフ ォ ル ト 値 : 0
解析の際の仮配線遅延の見積 も り に関す る 設定です。 0 (デフ ォ ル ト 値) の場合は、 デフ ォ ル ト で設
定 さ れてい る 配線遅延が使用 さ れます。
1 ~ 100 ま での場合は、 選択 し た値がパ ス全体に占め る ゲー ト 遅延の割合 (%) にな る よ う 計算 さ れ
た配線遅延が使用 さ れます。 例えば [30] を設定 し た場合、 ゲー ト 遅延の合計が 6ns だ と す る と 配線
遅延の合計が 14ns にな る よ う な値が適用 さ れます。
設定値は 「配線遅延の割合」 ではないので注意 し て く だ さ い。
図 13-5. Route Estimate Algorithm を 30 に設定 し た場合の レ ポー ト
Worst Case Paths (0-4096)
パ ラ メ ー タ : 1 ~ 4096 ま たは 0
デフ ォ ル ト 値 : 1
JUG_D3.3MapTrace_v1.0
13-4
マ ッ ピ ング後の タ イ ミ ング検証
詳細が レ ポー ト さ れ る パ ス数の設定です。 1 ~ 4096 の場合は、 制約ご と にその値 と 同 じ だけのパ ス
の詳細 (経路や各 リ ソ ース の遅延等) が レ ポー ト さ れます。
0 の場合は、 全てのパス の詳細が レ ポー ト さ れます。 大 き なデザ イ ンだ と フ ァ イ ルサ イ ズが大 き 過ぎ
て開けな く な る こ と も あ る ので注意 し て く だ さ い。
13.2 Map Trace レ ポー ト
13.2.1 出力 さ れ る レ ポー ト フ ァ イ ル
Map Trace プ ロ セ ス実行時には、 イ ンプ リ メ ン テーシ ョ ン ・ フ ォ ルダに html と テ キ ス ト 形式の レ ポー ト が
出力 さ れ ま す。 内容は ど ち ら も 同 じ ですが、 フ ァ イ ル名はそれぞれ以下の よ う にな り ま す。 html 形式の レ
ポー ト は、 Lattice Diamond の Report ウ イ ン ド ウ で見 る こ と がで き ます。
html 形式
テ キ ス ト 形式
: プ ロ ジ ェ ク ト 名 _ イ ンプ リ メ ン テーシ ョ ン名 _tw1.html
: プ ロ ジ ェ ク ト 名 _ イ ンプ リ メ ン テーシ ョ ン名 .tw1
図 13-6. Map Trace レ ポー ト 例
解析内容の表示
(Setup or Hold)
対象デバイス/スピードグレードや解析対象のネ
ットリスト/制約ファイルの情報
13.2.2 レ ポー ト 内容の概要
レ ポー ト には、 解析の結果 と し て主に以下の よ う な内容について レ ポー ト さ れます (レ ポー ト 順)。
•
•
•
•
•
•
•
解析実行環境の レ ポー ト
各制約に対す る 解析の詳細レ ポー ト
解析結果のサマ リ
ク リ テ ィ カルネ ッ ト 情報
ク ロ ッ ク ド メ イ ン解析情報
解析対象外 コ ネ ク シ ョ ンやパ ス の レ ポー ト
総パ ス数や解析カバレ ッ ジの レ ポー ト
13-5
JUG_D3.3MapTrace_v1.0
Lattice Diamond 日本語ユーザガ イ ド
13.2.2.1 解析実行環境のレポー ト
図 13-6 の よ う に レ ポー ト フ ァ イ ルの先頭には、ヘ ッ ダ と し て解析を行っ た ツールや ラ イ ブ ラ リ のバージ ョ
ン、 解析対象のネ ッ ト リ ス ト お よ び制約フ ァ イ ル等の情報が レ ポー ト さ れます。 「Report Information」 の後に
は 「Preference Summary」 と し て 各周波数制約 に 対す る サ マ リ 部 が 続 き 、 そ の 後 Diamond 2.x 以降 で は
「Unconstrained:」 と し て未制約パ ス に関す る サマ リ 部が設け ら れてい ます (図 13-7 左)。
こ れは ス ト ラ テジ設定で 「Check Unconstrained Paths」 を [True] に し た場合に レ ポー ト さ れます。 制約 タ
イ プ と し て CLOCK_DOMAIN、 INPUT_SETUP、 CLOCK_TO_OUTPUT、 お よ び MAXDELAY の 4 つが リ ス ト さ
れます。 それぞれ ク リ ッ ク す る と ジ ャ ンプす る 詳細レ ポー ト ・ セ ク シ ョ ン をチ ェ ッ ク す る こ と に よ り (図 137 右)、 本来制約 さ れ る べ き 箇所が漏れていないかの把握がで き ます。
図 13-7. 未制約パス のサマ リ 部 と 詳細例
未制約パスのサマリ
クリックで詳細へ
13.2.2.2 各制約に対する解析の詳細レポー ト
設定 し た制約毎に詳細な解析情報が レ ポー ト さ れます。 先頭には、 制約記述、 その制約の対象 と な っ たパ
ス数お よ びエ ラ ーの数が レ ポー ト さ れます。なお、解析対象パ ス数の表示は、ス ト ラ テジの [Worst Case Paths]
の設定値に依存 し ます。 [0] 以外が設定 さ れてい る 場合には、 対象パ ス が [4096] を超え ていて も 表示 さ れ る
最大値は [4096] です。 [0] を設定 し た場合は、 [4096] を超えた値 も 表示 さ れます。
*****-----------------• レ ポー ト の解析パ ス数の表示が [4096] であ っ て も 、 解析は 4096 を超え る 全てのパ ス を対象に行われ
てい ます
*****----------------- その後に、 タ イ ミ ン グマージ ンの少ないパ ス か ら 順に、 詳細情報が レ ポー ト さ れます。
パ ス ご と の レ ポー ト の 1 行目には タ イ ミ ン グ制約に対す る 合否判定 と 、 タ イ ミ ン グマージ ン (エ ラ ーの場
合は不足分) が表示 さ れます。 行頭に [Passed] と 書かれていれば、 タ イ ミ ン グ要求を満た し てい る こ と を表
し ます。 行末に書かれてい る 数値は タ イ ミ ン グマージ ンです。
タ イ ミ ン グ要求が満た さ れていない場合は行頭に [Error] と 表示 さ れます。 こ の場合、 行末に記載 さ れてい
る 数値は、 要求値に対す る 不足/超過分にな り ます。
JUG_D3.3MapTrace_v1.0
13-6
マ ッ ピ ング後の タ イ ミ ング検証
図 13-8. 詳細レ ポー ト 例
エラーパス数
解析の対象パス数
タイミング要求に対する合否
判定と、タイミングマージン
解析対象パスの始点と終点
パスの経路と遅延情報
次に レ ポー ト さ れ る のはパ ス の始点お よ び終点のオブジ ェ ク ト 名の情報です。 ク ロ ッ ク エ ッ ジで動作す る
オブジ ェ ク ト (FF やブ ロ ッ ク メ モ リ 等) は、 オブジ ェ ク ト 名の右側括弧内に使用 さ れてい る ク ロ ッ ク 名 と
エ ッ ジ (+: 立ち上が り 、 - : 立下 り ) が表示 さ れます。
個別パ ス レ ポー ト の最後は、 パ ス の経路 と 遅延情報です。 Map Trace では配線遅延に見積 も り 値が使用 さ
れてお り 、 レ ポー ト 内にそれを表すため遅延値の左側に [e] の文字が表示 さ れてい ます。
パ ス の経路 と 遅延情報は、 制約の種類や回路構成に応 じ て必要 と さ れ る デー タ パ スや ク ロ ッ ク 遅延等が レ
ポー ト さ れます。
13.2.2.3 解析結果のサマ リ
制約 と 検証結果のサマ リ が レ ポー ト さ れます (図 13-9)。 [Preference] は制約記述、 [Constraint] はその解析
で適用 さ れた制約の要求値、 [Actual] は解析結果、 [Levels] は ク リ テ ィ カルパ ス の論理回路段数です。 制約を
満たせてない項目については、 論理回路段数の右側に [*] 印が表示 さ れます。
図 13-9. Map Trace の Report Summary の例
要求値を満たせて
いない場合に表示
される印
13-7
JUG_D3.3MapTrace_v1.0
Lattice Diamond 日本語ユーザガ イ ド
13.2.2.4 ク リ テ ィ カルネ ッ ト 情報 タ イ ミ ン グエ ラ ーがあ る 場合、 解析結果のサマ リ に続 き タ イ ミ ン グ要求を満た し ていないパ ス に共通 し て
含まれてい る ネ ッ ト 名が レ ポー ト さ れます (図 13-10)。 全ての タ イ ミ ン グ要求を満た し てい る 場合は、 こ の
項目はレ ポー ト さ れません。 [Critical Nets] は該当す る ネ ッ ト 名、 [% of total] はそのネ ッ ト を含む タ イ ミ ン グ
エ ラ ーパ ス の割合を表 し ます。
図 13-10. ク リ テ ィ カルネ ッ ト の レ ポー ト 例
13.2.2.5 ク ロ ッ ク ド メ イ ン解析情報
図 13-11. ク ロ ッ ク ド メ イ ン解析レ ポー ト 例
抽出ドメインと制約
各ドメインを終点とする別
ドメイン始点のパスと制約
タ イ ミ ン グ解析ツールがネ ッ ト リ ス ト か ら 抽出 し た ク ロ ッ ク ネ ッ ト と 、 それに適用 さ れた タ イ ミ ン グ制約
の リ ス ト が レ ポー ト さ れます。
ク ロ ッ ク ド メ イ ン を ま た ぐ パ ス があ っ た場合は、ネ ス ト さ れてパス の始点側レ ジ ス タ の ク ロ ッ ク の情報 と 、
そのパ ス に適用 さ れた制約や、 その制約の対象 と な っ たパ ス数が レ ポー ト さ れます。 こ の レ ポー ト で、 必要
な制約が全て設定 さ れてい る こ と を確認 し て く だ さ い。
JUG_D3.3MapTrace_v1.0
13-8
マ ッ ピ ング後の タ イ ミ ング検証
13.2.2.6 未制約コ ネ ク シ ョ ン ・ レポー ト
ス ト ラ テジで 「Check Unconstrained Connections」 を [True] に設定 し た場合、 タ イ ミ ン グ制約解析の対象 と
な ら なか っ た コ ネ ク シ ョ ン の情報が レ ポー ト さ れ ま す。 従来の タ イ ミ ン グ詳細レ ポー ト と 同様の形式です。
本来は制約が与え ら れ る べ き コ ネ ク シ ョ ンが含まれていない こ と の確認を推奨 し ます。
図 13-12. 未制約 コ ネ ク シ ョ ン ・ レ ポー ト 例
13.2.2.7 総コ ネ ク シ ョ ン数 と 解析カバレ ッ ジのレポー ト
レ ポー ト の最後には、 コ ネ ク シ ョ ンに対す る 解析のカバレ ッ ジが レ ポー ト さ れます。 カバレ ッ ジが 100% で
あ る 必要はあ り ませんが、 必ず詳細レ ポー ト で解析 さ れていないパ ス の確認を行っ て く だ。
図 13-13. 解析カバレ ッ ジの レ ポー ト 例
13.3 シ ミ ュ レーシ ョ ン用ネ ッ ト リ ス ト の作成
シ ミ ュ レーシ ョ ン用のネ ッ ト リ ス ト を作成は、 Process ウ イ ン ド ウ の Map Design プ ロ セ ス ツ リ ーの下にあ
る [VHDL Simulation File] お よ び [Verilog Simulation File] プ ロ セ ス です (図 13-14)。
図 13-14. シ ミ ュ レーシ ョ ン用ネ ッ ト リ ス ト 出力
13-9
JUG_D3.3MapTrace_v1.0
Lattice Diamond 日本語ユーザガ イ ド
プ ロ セ ス名の左側にあ る チ ェ ッ ク ボ ッ ク ス にチ ェ ッ ク が入っ てい る と 、 Map Design プ ロ セ ス完了後に自動
的に実行 さ れます。 チ ェ ッ ク が入っ ていない場合で も 、 プ ロ セ ス名を ダブル ク リ ッ ク すれば実行 さ れます。
こ れ ら のプ ロ セ ス を実行す る と シ ミ ュ レーシ ョ ン用のネ ッ ト リ ス ト フ ァ イ ル と sdf フ ァ イ ルが、 イ ンプ リ
メ ン テーシ ョ ン ・ フ ォ ルダに出力 さ れます。 作成 さ れ る フ ァ イ ル名は、 それぞれ以下の よ う にな り ます。
ネッ
SDF
ネッ
SDF
ト リ ス ト (VHDL)
(VHDL)
ト リ ス ト (Verilog HDL)
(Verilog HDL)
:
:
:
:
[ プロジェ ク
[ プロジェ ク
[ プロジェ ク
[ プロジェ ク
ト 名 ]_[
ト 名 ]_[
ト 名 ]_[
ト 名 ]_[
イ ンプ リ
イ ンプ リ
イ ンプ リ
イ ンプ リ
メ ン テーシ ョ ン名 ]_mapvho.vho
メ ン テーシ ョ ン名 ]_mapvho.sdf
メ ン テーシ ョ ン名 ]_mapvo.vo
メ ン テーシ ョ ン名 ]_mapvo.sdf
なお、 sdf 内は LUT やレ ジ ス タ 等の遅延は適当な も のが入っ てい ますが、 配線遅延は全て 0ps です。 タ イ
ミ ン グ検証 と 違い値を入れ る こ と はで き ません。
13.4 改訂履歴
Ver.
Date
page
内 容
13-2, 3
Strategy: 図 13-2 差 し 替え、 項目記述追加 (Check Unconstrained Connections,
Number of Unconstrained Paths)
2.3F
June 30
2014
13-5, 6
未制約レ ポー ト に関す る 図 13-8 と 記述を追加
13-5, 9
図 13-6、 図 13-7、 図 13-12 更新
13-10
3.3
旧 リ ス ト 2-1 「Unconstrained path レ ポー ト の例」 削除
Mar. 2015
1
図 13-13 「解析対象外パ ス の レ ポー ト 」 を 「未制約 コ ネ ク シ ョ ン ・ レ ポー ト 」 と
し て更新
旧図 13-1 削除
--- *** ---
JUG_D3.3MapTrace_v1.0
13-10