出力制約についても、エッジ・アラインから考えてみましょう。
外部のタイミング・スペックを、図5に示します。受信デバイスのACスペックは、受信クロックに対するスキュー「Tskew」として定義されます。入力の場合と同様、最も早い場合、最も遅い場合が決まっています。
データとクロックの伝搬遅延を無視して考えると、タイムチャートからデータ遅延時間は以下のようになります。「Tck」はクロックの周期を表しています。
<最大データ遅延時間> = Tck − Tskew_max <最小データ遅延時間> = Tskew_min
データとクロックの伝搬遅延を考慮すると、データ伝搬時間だけ遅延が増えて、クロック伝搬時間だけ遅延が減ります。最大と最小に気を付けて書くと、以下の式が導き出せます。
<最大データ遅延時間> = Tck − Tskew_max + Tdata_max − Tclk_min <最小データ遅延時間> = Tskew_min + Tdata_min − Tclk_max
ソース・シンクロナス方式の出力の場合、クロックの定義にも注意が必要です。送信クロックに対して制約を行うので、あらかじめ送信クロックを定義しておく必要があります。これには、第2回「SDCを使ったタイミング制約を押さえよう」で紹介した「create_generated_clock」コマンドを使います。
図5の例では、FPGAの入力クロックが、そのまま出力されています。そこで、送信クロック「CLKOUT」を入力クロック「CLKIN」から派生したクロックとして定義します。こうして定義しておくことで、タイミング解析ツールが送信データと送信クロックの間のタイミング関係を計算して、解析を行ってくれます。
create_clock -name clkin -period <クロック周期> [get_ports CLKIN] create_generated_clock -name clkout -source [get_ports CLKIN] [get_ports CLKOUT] set_output_delay -clock clkout -max <最大データ遅延時間> [get_ports DATAOUT] set_output_delay -clock clkout -min <最小データ遅延時間> [get_ports DATAOUT]
次に、センター・アラインの外部のタイミング・スペックを、図6に示します。受信デバイスのACスペックは、送信クロックに対するセットアップ、ホールド時間「Tsu/Th」として定義されます。エッジ・アラインの場合と同様に、データとクロックの伝搬遅延を「Tdata」「Tclk」で表します。
エッジ・アラインの場合と同様に考えて、タイムチャートから以下の関係が得られます。
<最大データ遅延時間> = Tsu + Tdata_max − Tclk_min <最小データ遅延時間> = −Th + Tdata_min − Tclk_max
エッジ・アラインの場合と同じように、送信クロックを派生クロックとして定義しておきます。クロックの定義を含めたタイミング制約は、以下のようになります。
create_clock -name clkin -period <クロック周期> [get_ports CLKIN] create_generated_clock -name clkout -source [get_ports CLKIN] [get_ports CLKOUT] set_output_delay -clock clkout -max <最大データ遅延時間> [get_ports DATAOUT] set_output_delay -clock clkout -min <最小データ遅延時間> [get_ports DATAOUT]
Copyright © ITmedia, Inc. All Rights Reserved.