例: タイミング解析に影響するタイミング例外のレポート - 2022.1 日本語

Vivado Design Suite ユーザー ガイド: デザイン解析およびクロージャ テクニック (UG906)

Document ID
UG906
Release Date
2022-05-04
Version
2022.1 日本語

この例では、次の図に示すデザインにタイミング例外を適用する方法を示します。デザインには、完全に制約されています (clk と入力/出力遅延を clk に対して設定)。

図 1. タイミング例外の例で使用する完全に制約されたデザイン

[Report Exception] コマンドの 1 つ目の操作モードは、report_exceptions です。

  1. Window > Timing Constraints をクリックします。
  2. [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]) により一部が無視されます。