ソース・シンクロナス・インターフェイスの制約を学ぶ必修! FPGAタイミング解析の基礎(4)(2/4 ページ)

» 2009年02月13日 00時00分 公開
[小原成介(日本アルテラ),@IT MONOist]

エッジ・アラインのSDR出力制約

 出力制約についても、エッジ・アラインから考えてみましょう。

 外部のタイミング・スペックを、図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] 

SDRエッジ・アライン出力 図5 SDRエッジ・アライン出力

センター・アラインのSDR出力制約

 次に、センター・アラインの外部のタイミング・スペックを、図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] 

SDRセンター・アライン出力 図6 SDRセンター・アライン出力

関連キーワード

FPGA関連 | 回路 | FPGA | 設計 | ASIC | 半導体


Copyright © ITmedia, Inc. All Rights Reserved.