インテル® Quartus® Primeプロ・エディションのユーザーガイド: タイミング・アナライザー

ID 683243
日付 1/31/2023
Public
ドキュメント目次

2.5.5. 制約とタイミングレポートの関連付け

タイミング制約と違反がタイミング解析レポートにどのように表示されるかを理解することは、結果を理解するうえで重要です。以下の例は、特定の制約がタイミング解析レポートに与える影響を示しています。 ほとんどのタイミング制約は、クロックの起動エッジとラッチエッジにのみ影響します。具体的には、create_clockcreate_generated_clock はデフォルトの関係でクロックを作成します。ただし、set_multicycle_path 例外はデフォルトのセットアップとホールドの関係を変更します。set_max_delay および set_min_delay 制約は低レベルのオーバーライドで、起動エッジおよびラッチエッジの最大および最小遅延を明示的に示します。

次の図は、特定のパスで Report Timing を実行した際の結果を示しています。遅延のインクリメントは、Report Timing を実行後に Data Path および Waveform タブで確認することができます。Waveform タブでは、Data Path のデータと元の .sdc 制約を視覚的に参照することができます。Waveform タブを使用すると、制約がどのように適用されているか、およびその位置を簡単に確認することができます。

図 85. Report Timing (Waveform タブ)
次の例のデザインには、送信元および送信先のレジスターを 10ns の周期で駆動するクロックが含まれています。よって、次のコマンドでは、セットアップ関係が 10ns (起動エッジ = 0ns、ラッチエッジ = 10ns)、ホールド関係が 0ns (起動エッジ = 0ns、ラッチエッジ = 0ns) になります。
create_clock -name clocktwo -period 10.000 [get_ports {clk2}]
図 86. 10ns のセットアップ関係
図 87. 0ns のホールド関係
set_multicycle_path 制約を追加すると、複数サイクルが追加されてセットアップ関係が緩和します。もしくは、ウィンドウを開き、セットアップ関係を 20ns にして、ホールド関係を 0ns のまま維持します。
set_multicycle_path -from clocktwo -to clocktwo -setup -end 2 set_multicycle_path -from clocktwo -to clocktwo -hold -end 1
図 88. 20ns のセットアップ関係

次の set_max_delay 制約を追加すると、セットアップ関係が明示的にオーバーライドされます。

set_max_delay -from [get_registers {regA}] -to \
     [get_registers {regB}] 15

これらのさまざまな制約で変更されるのは、セットアップおよびホールド解析の起動エッジ時間とラッチエッジ時間のみであることに注意してください。他の項目はすべて、FPGA 内の遅延を元にしており、特定のフィットに対して静的です。これらのレポートを確認し、制約がタイミングレポートに与える影響を解析します。

図 89. set_max_delay の使用

I/O の場合は、次の例で示すように、set_input_delay および set_output_delay 制約を追加する必要があります。これらの制約は、デザインの I/O ポートに接続する FPGA デザイン外部からの信号の遅延を表します。

create_clock -period 10 [get_ports clk] 
# Clock used by the transfer, clock relationship is 10ns

# Setup constraints
set_output_delay -clock clk -max 1.2 [get_ports out] 
# Subtracted from Data Required Path as oExt
set_max_delay -from [get_registers B] 12 
# Sets latch edge time

# Hold constraints
set_output_delay -clock clk -min 2.3 [get_ports out] 
# Subtracted from Data Required Path as oExt
set_min_delay -from [get_registers B] 8 
# Sets latch edge time

これらの制約の値は、外部レジスターとデザインのポート間の外部信号の遅延です。set_input_delay および set_output_delay-clock 引数は、外部信号が属するクロックドメイン、つまり I/O ポートに接続された外部レジスターのクロックドメインを指定します。-min および -max オプションは、ワーストケースまたはベストケースの遅延を指定します。オプションをいずれも指定しない場合は、ワーストケースとベストケースの遅延が等しくなります。I/O 遅延は、Type 列で iExt または oExt として表示されます。次のレポート例を参照してください。

図 90. レジスターと出力間の同一クロック転送におけるセットアップ・スラック・パス・レポートと波形
図 91. レジスターと出力間の同一クロック転送におけるホールド・スラック・パス・レポートと波形

クロック関係は、転送の起動クロックエッジとラッチ・クロック・エッジの差であり、クロック波形、マルチサイクル制約、最小および最大遅延制約によって決まります。また、タイミング・アナライザーは、set_output_delay の値を oExt の値として追加します。この値は解析部分の外にあるため、出力では、これは Data Required Path の一部となります。セットアップ・レポートでは、-max の値が減算され、セットアップ関係を満たすのが難しくなります。ここでは、Data Arrival Path の遅延は Data Required Path の遅延よりも短くなければなりません。タイミング・アナライザーは、-min の値も減算します。この減算が、負の値によってホールドのタイミングがより厳しくなる理由です。この場合、Data Arrival Path の遅延は Data Required Path の遅延よりも長くなければなりません。