[Altera][TSR] set_input_delay

2008/11/24FPGA::QuartusIIimport

[Altera][TSR] set_input_delay

Usage

set_input_delay [-add_delay] -clock <name> [-clock_fall] [-fall] [-max] [-min] [-reference_pin <name>] [-rise] [-source_latency_included] <delay> <targets>

Options

-add_delay
Add to existing delays instead of overriding them
-clock
Clock name
-clock_fall
Specifies that input delay is relative to the falling edge of the clock
-fall
Specifies the falling input delay at the port
-max
Applies value as maximum data arrival time
-min
Applies value as minimum data arrival time
-reference_pin
Specifies a port in the design to which the input delay is relative
-rise
Specifies the rising input delay at the port
-source_latency_included
Specifies that input delay includes added source latency
Time value
List of input port type objects

Description

"-clock"オプションで指定されたクロックを基準として,指定された入力ポートにおける,データが到着する時間を指定します.
"clock"は,デザイン内のclock nameを参照する必要があります.
入力遅延は,クロックの立上がりエッヂ(デフォルト)または立下りエッヂ(-clock_fall)を基準に,指定することができます.

もし,単純な生成されたクロック(1つのターゲットで生成されたクロック*1)について,入力遅延が指定されたならば,生成されたクロックへのクロック到着時間は,データ到着時間に加算されます.

入力遅延は,そのクロックネットワークにおけるポート("-reference_pin"で指定)を基準に指定することができます.ポートを基準としたクロック到着時間は,データ到着時間に加算されます.ポート基準pinがないのは,サポート外です.

入力遅延は常にクロック源のレイテンシを含むことができます.標準(デフォルト)では,クロック基準のクロック源レイテンシは,入力遅延に加算されます.しかし,"-source_latency_included"オプションが指定されたとき,入力遅延に含まれる(ことを指定することとなり)ため,クロック源レイテンシは加算されません.

役メモ:意味がわからんな.
▼データ・パスが入力ポートから内部レジスタの場合 ~ ホールド・スラック時間
として,以下の式が定義されている.

  クロックのセットアップ・スラック時間  =   データ所要時間  -  データ到着時間

ここで,右辺は以下のように定義される.
  データ所要時間  =  ラッチ・エッヂ + ディスティネーション・レジスタまでのクロック・ネットワーク遅延  -  μtSU
  データ到着時間  =  ラウンチ・エッヂ + ソース・レジスタまでのクロック・ネットワーク遅延 + ピンの最大入力遅延 + ピンからレジスタまでの遅延

ここでいう"ピンの最大入力遅延"が,本パラメータで指定する値となるのだろう.
synthesis時に,外部の信号遅延を加味して,論理合成されるので,データシートを参照しつつ,
基準に対して早い・遅いでinput delayを定義すると良いだろう.

最大入力遅延(オプション"-max")は,クロックセットアップやリカバリチェックに使われます.また,最小入力遅延(オプション"-min")は,クロックホールドやremoval checksに使われます.もし,与えられたポートに対して,"-min"または"-max"のいずれか一方のみ指定もしくは,どちらも指定がない場合には,同じ値が双方に使われます.

ポートにおける,立上がり(オプション"-rise"),立下り(オプション"-fall")の到着時間は別々に指定できます.もし,与えられたポートにおいて,いずれか一方が指定された場合には,同じ値が両方に使われます.

デフォルトでは,"set_input_delay"は,ポートに対する他のどのような入力遅延も排除します.ただし,同じ"-clock","-clock_fall","-reference_pin"の組み合わせを伴うものを除きます.

異なるクロック,クロックエッヂ,ピン基準の複数入力遅延は,"-add_delay"オプションを使うことで指定できます.

ターゲット"value"は,特定の型のコレクションを生成するのに使うwildcardのTcl list,または,TimeQuestextension置換規約(TimeQuestextension substitution rules)が必要です.
詳細は,"use_timequest_style_escaping"を参照ください.


Example

# Simple input delay with the same value for min/max and rise/fall:
# 1) set on ports with names of the form myin*
set_input_delay -clock clk 1.5 [get_ports myin*]

# 2) set on all input ports
set_input_delay -clock clk 1.5 [all_inputs]

# Input delay with respect to the falling edge of clock
set_input_delay -clock clk -clock_fall 1.5 [get_ports myin*]

# Input delays for different min/max and rise/fall combinations
set_input_delay -clock clk -max -rise 1.4 [get_ports myin*]
set_input_delay -clock clk -max -fall 1.5 [get_ports myin*]
set_input_delay -clock clk -min -rise 0.7 [get_ports myin*]
set_input_delay -clock clk -min -fall 0.8 [get_ports myin*]

# Adding multiple input delays with respect to more than one clock
set_input_delay -clock clkA -min 1.2 [get_ports myin*]
set_input_delay -clock clkA -max 1.8 [get_ports myin*]
set_input_delay -clock clkA -clock_fall 1.6 [get_ports myin*] -add_delay
set_input_delay -clock clkB -min 2.1 [get_ports myin*] -add_delay
set_input_delay -clock clkB -max 2.5 [get_ports myin*] -add_delay

# Specifying an input delay relative to an external clock output port
set_input_delay -clock clk -reference_pin [get_ports clkout] 0.8 [get_ports myin*]



*1 : 訳注:TimeQuestのreportでType:generatedと表示されている,PLLにより生成されたclockかな?

他参考資料

"hc_h51025_j.pdf" 6. HardCopy II デバイスのためのスクリプト・ベースのデザイン

チップ外部のソースから入力ピンまでの遅延を,定義済みのクロックを基準にして指定するのに使用されます. 引数は、遅延の基準クロックを指定します.引数は、デザインのトップレベルの入力信号であり、 は外部遅延です.外部遅延は、-clock_fall 引数が指定されていない場合、 の正(立ち上がり)エッヂから測定されます.

  • min 引数と-max引数は、 がそれぞれ最小外部遅延または最大外部遅延かどうかを指定するのに使用されます.

@IT内,MONOistの日本アルテラの中の人の記事

http://monoist.atmarkit.co.jp/fembedded/index/timing.html

ここを見て解決.このコンテンツのコメントは古いままですが,認識が間違ってました.基準をsource - destinationの間にとるような絵を考えていました...

リンク先にあるように,sourceよりもクロック源信側のノードを基準に考えるほうが自然ですね.