デザインによっては、一部の信号が特定のモードで定数になります。たとえば、動作モードでは、テスト信号はトグルしないので、そのアクティブ レベルによって VDD または VSS に接続されます。デザインに電源が投入された後にトグルしない信号もこの対象になります。また、多くのデザインには複数の動作モードがあり、ある動作モードではアクティブな信号が別のモードでは非アクティブである場合があります。
解析空間、実行時間、およびメモリ消費量を削減するため、信号が定数値となることを指定しておくことが重要です。これは、機能しないパスおよび無関係なパスがレポートされないようにするためにも重要です。
信号が非アクティブであることを宣言するには、set_case_analysis
コマンドを使用します。このコマンドは、ピンまたはポートに適用できます。
set_case_analysis
などの高度なタイミング例外については、Vivado Design Suite QuickTake ビデオ: 高度なタイミング例外 - フォルス パス、最小/最大遅延、ケース解析を参照してください。
set_case_analysis
コマンドの構文は、次のとおりです。
set_case_analysis <value> <pins or ports objects>
<value> は、次のいずれかになります。
0
、1
、zero
、one
、rise
、rising
、fall
、または falling
rise、rising、fall、または falling を指定した場合、指定のピンまたはポートは指定の遷移でのみタイミング解析で考慮され、ほかの遷移は考慮されません。
ケース値は、ポート、最下位セルのピン、階層モジュールのピンに設定できます。
次の例では、マルチプレクサー clock_sel
の入力ピンに 2 つのクロックが作成されていますが、セレクト ピン S
に定数値が設定されているため、clk_2
のみが出力ピンを介して伝搬されます。
create_clock -name clk_1 -period 10.0 [get_pins clock_sel/I0]
create_clock -name clk_2 -period 15.0 [get_pins clock_sel/I1]
set_case_analysis 1 [get_pins clock_sel/S]
次の例では、BUFG_GT のダイナミック クロック分周ピン DIV[2:0]
は、VCC/GND に接続されているのではなく、ロジックにより駆動されます。
この場合、ツールで出力クロック (1 で分周) のワースト ケースが想定され、入力クロックがバッファー出力に伝搬されます。クロック分周 1 が使用されない場合、このワースト ケースの状況により見積もりが不必要に悪くなり、デザインの制約が厳しすぎるものになる可能性があります。DIV[2:0]
バスに set_case_analysis
制約を設定すると、BUFG_GT 出力ピンに自動生成されるクロックを制御できます。
たとえば、ワースト ケースのクロック分周が 3 の場合、BUFG_GT に次のケース解析を適用する必要があります。
set_case_analysis 0 [get_pins bufg_gt_pclk/DIV[0] ]
set_case_analysis 1 [get_pins bufg_gt_pclk/DIV[1] ]
set_case_analysis 0 [get_pins bufg_gt_pclk/DIV[2] ]
TXOUTCLK
など) があります。この場合、ケース解析は GT_CHANNEL のクロック多重化制御信号 (TXSYSCLKSEL
、TXOUTCLKSEL
など) に同様の方法で使用し、GT_CHANNEL の出力に伝搬する入力または内部クロックを選択します。