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

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

FPGAスペックが決まっている場合の入力制約

 次にFPGAのACスペックが決まっている場合を考えます。入力の場合、FPGAのセットアップ時間と、ホールド時間が設計条件です。

 FPGAのセットアップ時間は、「これ以上データの到着が遅いと、データを受け取れない」ことを示す値です。そこで、図3に示すように、セットアップ時間(Tsu)と、最大データ遅延時間、クロック周期(Tck)の間には、次の関係があります。


<最大データ遅延時間> = Tck - Tsu 

 ホールド時間はセットアップ時間とは逆に、「これ以上データの到着が速いと、データを受け取れない」ことを示す値です。同じように、ホールド時間(Th)と、最小データ遅延時間の間に、次の関係があります。

<最小データ遅延時間> = Th 

 従って、入力制約は次のように、書けばよいことになります。

set_input_delay -clock vclk -max <Tck - Tsu> [get_ports DATAIN]
set_input_delay -clock vclk -min <Th> [get_ports DATAIN] 

セットアップ時間(Tsu)と、最大データ遅延時間、クロック周期(Tck)の関係 図3 セットアップ時間(Tsu)と、最大データ遅延時間、クロック周期(Tck)の関係

共通クロック方式の出力制約

 出力の場合も、まずはFPGA外部のACスペックが決まっている場合から考えます。

 出力制約には、「set_output_delay」というコマンドを使います。このコマンドは、FPGAの出力ポートでのデータの遅延時間を制約します。次のように、最大と最小の制約をセットで使います。

set_output_delay -clock vclk -max <最大データ遅延時間> [get_ports DATAOUT]
set_output_delay -clock vclk -min <最小データ遅延時間> [get_ports DATAOUT] 

  • 「-clock」オプションは、基準となるクロックの定義名を指定します。仮想クロックを基準クロックとして使います。
  • 「-max」オプションは、データの最大遅延時間を指定します。基準クロックに届くまでに、データが必要とする最大の時間です。この制約が出力のセットアップ解析に使われます。
  • 「-min」オプションは、データの最小所要時間を指定します。基準クロックに届くまでに、データが必要とする最小の時間です。この制約が出力のホールド解析に使われます。
  • 最後に遅延時間を定義する対象の出力ポートを指定します。

 FPGA外部のACスペックは、図4に示すとおりです。受信デバイスのセットアップ時間(Tsu)、ホールド時間(Th)、データの伝搬遅延(Tdata)、受信デバイスへのクロックの伝搬遅延(Tclk1)、ターゲットFPGAへのクロックの伝搬遅延(Tclk2)が分かっています。

FPGA外部のACスペックとタイムチャート 図4 FPGA外部のACスペックとタイムチャート

 データの所要時間は、FPGAの出力ポートで、受信デバイスのクロックに対して設定します。受信デバイスのクロックは、FPGA内にはないので仮想クロックとして定義しておきます。

 図4にデータの到達が最も速い場合と、最も遅い場合のタイムチャートを示しています。データの遅延時間は、タイムチャートから次のようになります。最後の項はマイナスのため、最大と最小が入れ替わっているので注意してください。

<最大データ遅延時間> = Tdata_max + Tsu + Tclk2_max - Tclk1_min
<最小データ遅延時間> = Tdata_min - Th + Tclk2_min - Tclk1_max 

 具体的な数値を入れて書くと、図2の回路に対する制約例は次のようになります。

create_clock -name clkin -period 10 [get_ports CLKIN]
create_clock -name vclk -period 10
 
set_output_delay -clock vclk -max 5 [get_ports DATAOUT]
set_output_delay -clock vclk -min 2 [get_ports DATAOUT] 

FPGAスペックが決まっている場合の出力制約

 次にFPGAのACスペックが決まっている場合を考えます。出力の場合、FPGAの最大と最小の出力遅延が設計条件です。

 図5に示すように、出力遅延の最大値(Tco_max)と、最大データ遅延時間、クロック周期(Tck)の間には、次の関係があります。

<最大データ遅延時間> = Tck - Tco_max 

出力遅延の最大値(Tco_max)と、最大データ遅延時間、クロック周期(Tck)の関係 図5 出力遅延の最大値(Tco_max)と、最大データ遅延時間、クロック周期(Tck)の関係

 従って、出力制約は次のように、書けばよいことになります。

set_output_delay -clock vclk -max <Tck - Tco_max> [get_ports DATAOUT]
set_output_delay -clock vclk -min <- Tco_min> [get_ports DATAOUT] 

関連キーワード

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


Copyright © ITmedia, Inc. All Rights Reserved.