この例では、次の図に示すデザインにタイミング例外を適用する方法を示します。デザインには、完全に制約されています (clk
と入力/出力遅延を clk
に対して設定)。
図 1. タイミング例外の例で使用する完全に制約されたデザイン
Report
Exception コマンドの 1 つ目の操作モードは、report_exceptions
です。
- をクリックします。
-
Timing Constraints ウィンドウで次のタイミング例外をデザインに追加します。
set_multicycle_path 3 -from [get_cell int10_reg] -to [get_cell int20_reg]
id="ab439753">set_multicycle_path 4 -to [get_cell int20_reg] set_false_path -from [get_ports in6] -to [get_cell int20_reg] set_false_path -to [get_ports out5] set_false_path -to [get_cell int21_reg] set_false_path -from [get_ports in6] -to [get_ports out6] set_max_delay 5 -to [get_ports out6] set_min_delay 3 -from [get_cells int10_reg] -to [get_cell int20_reg]
Timing Constraints ウィンドウに、デザインに適用されたタイミング制約が表示されます。
図 2. タイミング制約の変更を表示する Timing Constraints ウィンドウ
実際の例外レポート (report_exceptions
) を次の図に示します。
図 3. 例外レポート
例外レポートには、次の情報が表示されます。
- Position 列: 制約の位置番号を示します。これは、Timing Constraint ウィンドウ (前の図) でレポートされる番号と同じです。
-
From/Through/To 列:
-*from/-*through/-*to
コマンド ライン オプションで指定したパターンまたはオブジェクトを示します (これらのオプションのrise/fall
バージョンもすべて含む)。関連するオプションが指定されていない場合は、アスタリスク (*) が表示されます。 -
Setup/Hold 列: 制約がセットアップ チェックまたはホールド チェックのいずれかまたは両方に適用されるかどうかを示します。Setup/Hold 列の命名規則は、次のとおりです。
表 1. Setup/Hold 列の命名規則 省略名 タイミング例外 cycles=
set_multicycle_path
false
set_false_path
max=
set_max_delay
max_dpo=
set_max_delay -datapath_only
min=
set_min_delay
clock_group=
set_clock_group
-
Status 列: 制約が別のタイミング例外により一部無視されている場合にメッセージを表示します。Status 列の命名規則は、次のとおりです。
表 2. Status 列の命名規則 省略名 タイミング例外 MCP マルチサイクル パス FP フォルス パス MXD 最大遅延 MND 最小遅延 CG クロック グループ 注記: クロック グループは、report_timing -ignored
コマンドを実行したときに、クロック グループに制約により別のタイミング例外が無視される場合に Status 列にレポートされます。
この例では、一部無視される制約に関するメッセージが 2 つ表示されます。
- タイミング制約位置番号 5 (Timing Constraints ウィンドウの
set_multicycle_path 4 -to [get_cell int20_reg]
) は、マルチサイクル制約位置番号 4 (set_multicycle_path 3 -from [get_cell int10_reg] -to [get_cell int20_reg]
) とフォルス パス制約位置番号 6 (set_false_path -from [get_ports in6] -to [get_cell int20_reg]
) により一部が無視されます。 - タイミング制約位置番号 10 (
set_max_delay 5 -to [get_ports out6]
) は、フォルス パス位置番号 9 (set_false_path -from [get_ports in6] -to [get_ports out6]
) により一部が無視されます。