[Altera][TSR] get_clocks

2008/11/24FPGA::QuartusIIimport

[Altera][TSR] get_clocks

Usage

get_clocks [-nocase] [-nowarn] <filter>

Options

-nocase
Specifies the matching of node names to be case-insensitive
-nowarn
Do not issue warnings messages about unmatched patterns
Valid destinations (string patterns are matched using Tcl string matching)

Description

デザイン内のclockのコレクションを返します.
他のコマンドの引数として使うとき(例えば,"set_multicycle_path"のオプション"-from"か"-to"のような),そのclock内の各ノードは,コレクション内のclocksによって駆動される全てのノードを意味します.

# The following multicycle constraint applies to all paths ending at registers
# driven by clk
set_multicycle_path -to [get_clocks clk] 2

コレクションのフィルタは,ワイルドカードのTcl listであり,続いて標準TclまたはTimeQuestextension置換規約*1が必要です.
詳細は,"use_timequest_style_escaping"を参照ください.


Example

project_open chiptrip
create_timing_netlist
read_sdc
update_timing_netlist
set clocks [get_clocks c* -nocase]
foreach_in_collection clk $clocks {
  set name [get_clock_info -name $clk]
  set period [get_clock_info -period $clk]
  puts "$name: $period"
}
delete_timing_netlist
project_close


*1 : TimeQuestextension substitution rules

注意事項

英語力の弱い人が適当に訳しています.自分では意味がわかるようにとれたものと,そうでないものとがあります.概要理解の参考にしていただければ幸いですが,オリジナルの英文を参照されることを強く推奨いたします.

[Altera][TSR] get_keepers

2008/11/24FPGA::QuartusIIimport

[Altera][TSR] get_keepers

Usage

get_keepers [-no_duplicates] [-nocase] [-nowarn] <filter>

Options

-no_duplicates
Do not match duplicated keeper names
-nocase
Specifies the matching of node names to be case-insensitive
-nowarn
Do not issue warnings messages about unmatched patterns
Valid destinations (string patterns are matched using Tcl string matching)

Description

デザイン内の,非組み合わせ(non-combinational)か"keeper"nodeのコレクションを返します.
デフォルトのマッチングスキームでは,指定されたフィルタにマッチする名称の非組み合わせnodeのみではなく,"keepers"によって複製された非組み合わせnodeも返します.(Quatusによって,"keepers"から自動的に生成された"cell"を参照)

複製された"keepers"を除くためには,"-no_duplicates"オプションを使用してください.

コレクションのためのフィルタには,特定の型のコレクションを生成するのに使うwildcardのTcl list,または,TimeQuestextension置換規約*1が必要です.
詳細は,"use_timequest_style_escaping"を参照ください.


Example

project_open chiptrip
create_timimg_netlist
set kprs [get_keepers *reg*]
foreach_in_collection kpr $kprs {
  puts [get_object_info -name $kpr]
}
delete_timing_netlist
project_close


*1 : TimeQuestextension substitution rules

注意事項

英語力の弱い人が適当に訳しています.自分では意味がわかるようにとれたものと,そうでないものとがあります.概要理解の参考にしていただければ幸いですが,オリジナルの英文を参照されることを強く推奨いたします.

[Altera][TSR] set_clock_groups

2008/11/24FPGA::QuartusIIimport

[Altera][TSR] set_clock_groups

Usage

set_clock_groups [-asynchronous] [-exclusive] -group <names>

Options

-asynchronous
Specify mutually exclusive clocks (same as the -exclusive option). Exists for compatibility.
-exclusive
Specify mutually exclusive clocks
-group
Valid destinations (string patterns are matched using Tcl string matching)

Description

"Clock groups"は,どのclockが関連しないかを指定するのに早くて便利な方法を提供します.Clock groups provide a quick and convenient way to specify which clocks are not related.

非同期clockは,完全に関係のないものです*1.(例えば,独立した異なるclock源を持つとき)

排他的なclock,同時にはactiveにならないものです*1.(例えば,multiplexされたclock)

TimeQuestは,まるでそれらが同じであるかのように,どちらのオプションも扱います("-exclusive" , "-asynchronous").

"set_clock_groups"の結果は,どんなgroup内の全てのclockも,他の各group内のclock全てから遮断(cut)されます.このコマンドは,全部のgroupの各clockから,他のgroupの各clockへ"set_false_path"を呼び出すのと等価です.clockドメインを切り離す指定を容易にするため,"set_clock_groups"を作りました(?).

単品の"-group"オプションを使うことは,TimeQuestに,"デザイン内のほかの全てのclockから,このgroupを切り離せ"と伝えます.


Example

project_open top
create_timing_netlist
create_clock -period 10.000 -name clkA [get_ports sysclk[0]]
create_clock -period 10.000 -name clkB [get_ports sysclk[1]]

# Set clkA and clkB to be mutually exclusive clocks.
set_clock_groups -exclusive -group {clkA} -group {clkB}

# The previous line is equivalent to the following two commands.
set_false_path -from [get_clocks clkA] -to [get_clocks clkB]
set_false_path -from [get_clocks clkB] -to [get_clocks clkA]

*1 : テキトウ.例文で把握されたし.

[Altera][TSR] set_max_delay

2008/11/24FPGA::QuartusIIimport

[Altera][TSR] set_max_delay

Usage

set_max_delay [-fall_from <names>] [-fall_to <names>] [-from <names>] [-rise_from <names>] [-rise_to <names>] [-through <names>] [-to <names>] <value>

Options

-fall_from
Valid source clocks (string patterns are matched using Tcl string matching)
-fall_to
Valid destination clocks (string patterns are matched using Tcl string matching)
-from
Valid sources (string patterns are matched using Tcl string matching)
-rise_from
Valid source clocks (string patterns are matched using Tcl string matching)
-rise_to
Valid destination clocks (string patterns are matched using Tcl string matching)
-through
Valid through nodes (string patterns are matched using Tcl string matching)
-to
Valid destinations (string patterns are matched using Tcl string matching)
Time Value

Description

与えられたpathの,最大遅延(maximum delay)例外を与えます.最大遅延は,inputまたはoutput遅延を指定せずに,input portまたはoutput portに(遅延を)適用することを除いて,setupの関係(ラッチクロックエッヂ*1 - ラウンチクロックエッヂ*2)を変更することに似ています.

最大遅延は,いつもどのようなclock delayとも関係します(ソースまたはデスティネーションがレジスタである場合)し,どのようなinputまたはoutput delayとも関係します(ソースまたはデスティネーションがportである場合).

その結果,データ到着時間にinput delayとclockレイテンシが加算されます.clockレイテンシもまた,データ要求時間に加算され,output delayはデータ要求時間から減算されます."-from"と"-to"の値は,デザイン内のclock・register・port・pin・cellのコレクションです."-from"または"-to"の値が指定されない場合,コレクションは自動的に"[get_keepers *]"に変換されます.指定されないコレクションの片方が,クロックのコレクションである場合,クロックコレクションとして明示的に,この(省略された)コレクションを指定することは,より効果的であることに注意するべきです..(しかし,クロックのコレクションもまた,希望した設定を生成するのみであれば.)

(後略rise/from/toの説明は,ほとんどのコマンドに存在し,説明も同様.)

Example

# Apply a 10ns max delay between two unrelated clocks
set_max_delay -from [get_clocks clkA] -to [get_clocks clkB] 10.000

# Apply a 2ns max delay for an input port (TSU)
set_max_delay -from [get_ports in[*]] -to [get_registers *] 2.000

# Apply a 2ns max delay for an output port (TCO)
set_max_delay -from [get_registers *] -to [get_ports out[*]] 2.000

# Apply a 2ns max delay for an input port to an output port (TPD)
set_max_delay -from [get_ports in[*]] -to [get_ports out[*]] 2.000

# Apply a 2ns max delay for an input port only to nodes driven by
# the rising edge of clock CLK
set_max_delay -from [get_ports in[*]] -rise_to [get_clocks CLK] 2.000



*1 : 駆動される側のクロック入力端

*2 : 駆動する側のクロック出力端

注意事項

英語力の弱い人が適当に訳しています.自分では意味がわかるようにとれたものと,そうでないものとがあります.概要理解の参考にしていただければ幸いですが,オリジナルの英文を参照されることを強く推奨いたします.

[Altera][TSR] set_output_delay

2008/11/24FPGA::QuartusIIimport

[Altera][TSR] set_output_delay

Usage

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

Option

-add_delay
既存の遅延に加えて上書きします.
-clock
Clock name
-clock_fall
立下りエッヂ基準でoutput delayを指定します.
-fall
portにおいて,立下り時のoutput delayを指定します.
-max
最大データ要求時間を適用します.(Applies value as maximum data required time)
-min
最小データ要求時間を適用します.(Applies value as minimum data required time)
-reference_pin
Specifies a port in the design to which the output delay is relative
-rise
立上りエッヂ基準でoutput delayを指定します.
-source_latency_included
Specifies input delay already includes added source latency
Time value
Collection or list of output ports


Description

"-clock"で指定されたクロックを基準として,出力端子におけるデータ要求時間(data required times)を与えます.
その(指定する)クロックは,デザイン内のクロック名を参照する必要があります.
"Output delay"は,クロックの立上りエッヂ(default)または立下りエッヂ(-clock_fall)を基準として与えることができます.
もし,output delayが,単純な生成されたクロック(1つのターゲットと生成されたクロック)を基準として与えられるのであれば,生成されたクロックへの,クロック到着時間は,データ要求時間に加算されます.

output delayは,クロックネットワーク内のポートを基準として与えることができます(-reference_pin).参照ポートへのクロック到着時間は,データ要求時間に加算されます.

ポートが未参照のピンについてはサポートしていません.output delayは,クロックソースのレイテンシを含むことができます.デフォルトでは,関係するクロックのクロックソースレイテンシはoutput delay値に加算されます.しかし,"-source_latency_included"オプションが与えられるとき,クロックソースレイテンシは加算されません.なぜならば,それ(クロックソースレイテンシ)は,output delay値に含まれるからです.

maximum output delay(-max)は,clockのセットアップのチェックやリカバリ(recovery)チェックに使われます.minimum output delay(-min)は,clockのホールドチェックや削除(removal)チェックに使われます.もし,与えられたポートに対して,"-min"か"-max"のどちらかのみが指定されたならば,双方に同じ値が使われます.

そのポートに対して,立上がり時間(-rise)と立下り時間(-fall)とを分けて時間要求を指定することができます.もし,与えられたポートに対して"-rise"と"-fall"のいずれか一方のみが指定されたならば,双方に同じ値が使われます.

デフォルトでは,"set_output_delay"は,同じ"-clock"・"-clock_fall"・"-reference_pin"の組み合わせ以外の,どんなほかのportに対するoutput-delayをも取り除きます.

異なるclock・clockエッヂ・基準となる端子との,関連する複数のoutput-delayは,"-add_delay"オプションを使うことで指定できます.ターゲットの値は,collectionか特定の型のcollectionを作成するのに使用されるwildcardのTcl listのどちらかです.使用される値は,標準のTclかTimeQuest-extension代替規則に従わなければなりません.詳しくは,"use_timequest_style_escaping" コマンドヘルプを参照ください.


Example

# Simple output delay with the same value for min/max and rise/fall:
# 1) set on ports with names of the form myout*
set_output_delay -clock clk 0.5 [get_ports myout*]

# 2) set on all output ports
set_output_delay -clock clk 0.5 [all_outputs]

# Output delay with respect to the falling edge of clock
set_output_delay -clock clk -clock_fall 0.5 [get_ports myout*]

# Output delays for different min/max and rise/fall combinations
set_output_delay -clock clk -max -rise 0.5 [get_ports myout*]
set_output_delay -clock clk -max -fall 0.4 [get_ports myout*]
set_output_delay -clock clk -min -rise 0.4 [get_ports myout*]
set_output_delay -clock clk -min -fall 0.3 [get_ports myout*]

# Adding multiple output delays with respect to more than one clock
set_output_delay -clock clkA -min 0.2 [get_ports myout*]
set_output_delay -clock clkA -max 0.8 [get_ports myout*]
set_output_delay -clock clkA -clock_fall 0.6 [get_ports myout*] -add_delay
set_output_delay -clock clkB -min 1.1 [get_ports myout*] -add_delay
set_output_delay -clock clkB -max 1.5 [get_ports myout*] -add_delay

# Specifying an output delay relative to an external clock output port
set_output_delay -clock clk -reference_pin [get_ports clkout] 0.8 [get_ports myout*]

他参照

"hc_h51025_j.pdf"p.24の例の説明

# set_input_delay と set_output_delay を使用してI/O タイミングを設定するTcl スクリプト
set_input_delay -clock ref_clk -max 7.0 [get_ports data_in[0]]
set_input_delay -clock ref_clk -min 3.0 [get_ports data_in[0]]
set_output_delay -clock ref_clk -max 8.0 [get_ports data_out[0]]
set_output_delay -clock ref_clk -min 4.0 [get_ports data_out[0]]

data_in[0] の外部入力遅延は、クロックref_clk の正エッヂを基準にし、
data_out[0] の外部出力遅延はクロックref_clk の負エッヂを基準にします。

むぅ,負エッヂというのは立下りか?英文説明と合わないような.
和文より原文優先ともあるし,参照しているdocumentのほうが新しいので,本文修正ナシとします.気になったのでコレはコレでおいておきます.→エッヂ基準で,時間が正,負という意味ですね,きっと.


注意事項

英語力の弱い人が適当に訳しています.自分では意味がわかるようにとれたものと,そうでないものとがあります.概要理解の参考にしていただければ幸いですが,オリジナルの英文を参照されることを強く推奨いたします.