連載
» 2008年10月31日 00時00分 公開

なぜいま、正しいタイミング解析が重要なのか?必修! FPGAタイミング解析の基礎(1)(3/3 ページ)

[小原成介(日本アルテラ),@IT MONOist]
前のページへ 1|2|3       

I/Oタイミングの考え方は?

 解析ツールは、回路データとクロック定義から、内部パスのスラックを算出します。これに対して、入力回路は送信FFがないため、それだけではスラックの算出ができません。出力回路も同様です。そこで、周辺デバイスを含むシステム・レベルでタイミングを考えることにします。図6のように仮想的に周辺デバイス内のFFを考えると、I/OもFPGA内部と同じ考え方で、セットアップ解析とホールド解析が行えます。


I/Oタイミングの考え方 図6 I/Oタイミングの考え方

 入力回路に対する制約は、送信デバイスとボードの遅延を設定します。つまりFPGAの入力ポートにデータが到着する時間です。セットアップ解析のために最大値を、ホールド解析のために最小値を指定します。この値はタイミング解析では、追加のデータ到達時間として扱われます。これを最大・最小入力遅延として表すと、スラックの式3は以下のようになります(式4)。

式4

・ セットアップ・スラック = セットアップ・データ所要時間 − (データ到着時間 + 最大入力遅延)

・ ホールド・スラック = (データ到着時間 + 最小入力遅延) − ホールド・データ所要時間



 出力回路に対する制約として、FPGAの出力ポートを出てからの必要となる時間を設定します。やはりセットアップ解析のために最大値を、ホールド解析のために最小値を指定します。この値はタイミング解析では、データ所要時間の一部として扱われます。これを最大・最小出力遅延として表すと、スラックの式3は以下のようになります(式5)。

式5

・ セットアップ・スラック = (セットアップ・データ所要時間 − 最大出力遅延) − データ到着時間

・ ホールド・スラック = データ到着時間 − (ホールド・データ所要時間 − 最小出力遅延)



デバイスの動作条件とは?

 半導体デバイスは、プロセス(製造のばらつき)、電圧、温度によって、回路の遅延が変動します。この3つの組み合わせを、「デバイスの動作条件」と呼びます。電圧が高いほど、温度が低いほど、遅延は小さくなり、高速で動作します。最も高速の動作条件を「Fast corner」、最も低速の動作条件を「Slow corner」といいます。タイミングの解析は、少なくともこの2つの動作条件で行います。

 開発ツールは、ゲート(AND、OR、FPGAのルックアップ・テーブル)や配線の遅延情報、FFやRAMのパラメータを、動作条件の数だけライブラリとして持ちます。これを「タイミング・モデル」といいます。

 “少なくとも2つの動作条件”と書いたのは、デバイス(FPGA)ベンダによって考え方が異なるためです。一般的には、Fast/Slowの2つで、すべての条件をカバーできるように、タイミング・モデルに余裕(ガードバンド)を持たせます。動作条件を追加すれば、より正確な解析ができるため、2つ以上の動作条件を使う場合もあります。例えば、アルテラ社のFPGAの場合、90nmまでのFPGAは2つの動作条件ですが、65nm以降のFPGAは3つの動作条件でタイミングを解析します。

Min/Max解析とは?

 では、Slow cornerの解析をする場合、回路のすべてのパスが最も遅い場合だけを考慮すればよいのでしょうか?

 残念ながら、これは正解ではありません。「チップ内ばらつき(On die variation)」の考慮が足りないためです。回路のすべての部分が最も遅く動作するデバイスよりも、チップ内のばらつきにより、ある部分だけが少しだけ速く動作するデバイスの方が、タイミングが厳しくなることがあります。

 式3から、セットアップ・スラックが最小、つまり、タイミングが最も厳しいのは、データ到着時間が最も遅く、データ所要時間がチップ内ばらつき分だけ早い場合です。つまり、セットアップ解析はこの場合について行うのが正解になります。このような解析を「Min/Max解析」と呼びます。

 チップ内ばらつきの扱いも、FPGAベンダによって考え方が異なります。Min/Max解析を行う場合と、Min/Max解析は行わずに、モデルのガードバンドを増やすだけで済ませる場合があります。Min/Max解析のためには、ツールに複雑な計算を行わせる必要がありますが、その結果はより正確なものとなります。図7にチップ内ばらつきの概念を図式的に表します。

チップ内ばらつきの概念図 図7 チップ内ばらつきの概念図

Rise/Fall解析とは?

 ASIC用のタイミング解析ツールでは、信号が立ち上がるときと、立ち下がるときの遅延を別々に計算するのが一般的です。このような解析の仕方を「Rise/Fall解析」と呼びます。FPGA用のツールでは、Rise/Fall解析をするものと、しないものがあります。この違いは何でしょうか?

 Rise/Fall解析をするツールのタイミング・モデルにおいて、各ゲートは以下の表1に示すように、2つまたは4つの遅延パラメータを持ちます。RF遅延とは、ゲートの入力に立ち上がり(Rise)信号が入って、立ち下がり(Fall)が出力される場合の遅延という意味です。そのほかも同様です。

RR、FF遅延 ANDやORなど正論理のゲート
RF、FR遅延 NANDやNORなど負論理のゲート
RR、FF、RF、FR遅延 XORなどのゲート
表1 各ゲートの遅延パラメータ

 それでは図8に示す回路を考えてみましょう。

Rise/Fall解析
Rise/Fallを考慮しない場合
(常に遅い方を選択)
100ps 100ps 120ps 140ps 460ps
Rise/Fallを考慮しない場合
(常に速い方を選択)
90ps 80ps 110ps 120ps 400ps
Rise/Fallを考慮する場合
(Rise信号が伝わる場合)
100ps(RR) 80ps(RF) 120ps(FF) 140ps(FF) 440ps
120ps(FR) 420ps
Rise/Fallを考慮する場合
(Fall信号が伝わる場合)
90ps(FF) 100ps(FR) 110ps(RR) 120ps(RR) 420ps
130ps(RF) 430ps
図8 Rise/Fall解析

 Rise/Fall解析をしない場合、このFF間のパスの合計遅延は2種類考えることができ、最大値は460ps、最小値は400psです。一方、Rise/Fall解析をする場合は、4種類の合計遅延を考えることになり、最大値は440ps、最小値は420psです。Rise/Fall解析の方が最大値が小さく、最小値が大きくなっています。Rise/Fall解析をすると、遅延を正確に計算し、不要なマージンを削減できるため、回路のタイミング解析結果に余裕が生じるのです。



 今回はSDCフォーマットの紹介と、タイミング解析の基本的な考え方の説明をしました。次回以降の連載では、さまざまな回路を題材に、SDCフォーマットによるタイミング制約とタイミング解析の方法を解説していきます。お楽しみに!(次回に続く)


関連キーワード

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


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.