[Altera][TSR] set_input_delay
[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*]
他参考資料
"hc_h51025_j.pdf" 6. HardCopy II デバイスのためのスクリプト・ベースのデザイン
チップ外部のソースから入力ピンまでの遅延を,定義済みのクロックを基準にして指定するのに使用されます.
- min 引数と-max引数は、
がそれぞれ最小外部遅延または最大外部遅延かどうかを指定するのに使用されます.
@IT内,MONOistの日本アルテラの中の人の記事
http://monoist.atmarkit.co.jp/fembedded/index/timing.html
ここを見て解決.このコンテンツのコメントは古いままですが,認識が間違ってました.基準をsource - destinationの間にとるような絵を考えていました...
リンク先にあるように,sourceよりもクロック源信側のノードを基準に考えるほうが自然ですね.