必修! FPGAタイミング解析の基礎

必修! FPGAタイミング解析の基礎(1)

なぜいま、正しいタイミング解析が重要なのか?

小原 成介 日本アルテラ株式会社 2008/10/31

- PR -

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

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


図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)が出力される場合の遅延という意味です。そのほかも同様です。

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

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

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フォーマットによるタイミング制約とタイミング解析の方法を解説していきます。お楽しみに!(次回に続く)

関連リンク:
CPLDからFPGA、ASICまでそろうアルテラ
http://monoist.atmarkit.co.jp/fembedded/15altera/altera01.html
いまさら聞けない FPGA入門
http://monoist.atmarkit.co.jp/fembedded/special/fpga/fpga01.html
連載記事「触って学ぼう FPGA開発入門」
http://monoist.atmarkit.co.jp/fembedded/index/fpga.html
連載記事「FPGA開発テクニック、チューニングの心得」
http://monoist.atmarkit.co.jp/fembedded/index/fpgatuning.html
  • 連載バックナンバー
  • 全記事インデックス
  • 組み込み開発トップ
  • MONOistトップ

スキルアップ/キャリアアップ(JOB@IT)

スポンサーからのお知らせ

- PR -
@IT Sepcial

震災関連・復興支援情報

震災関連・復興支援情報
@IT MONOist/EE Times Japan/環境メディアの製造業技術者向け3メディアを中心に、震災関連/復興支援情報を集めました

次世代エンベデッドコーナー

次世代エンベデッド
“次世代”の組み込み機器を開発するエンジニアを支援するコーナー。新潮流・新技術をインタビューやコラム、解説記事で分かりやすく紹介!

Windows Embeddedコーナー

Windows Embedded
Windows Embedded専門コーナー。Windows Embedded StandardやWindows Embedded CEをはじめとする「Windows Embedded」ファミリの最新動向や技術情報をお届けします!!

Androidコーナー

Android
Android専門コーナー。組み込みデバイスへの適用からアプリケーション開発、イベントレポート、ニュースなどAndroidに関するさまざまな技術情報がここに集結!!

@IT MONOist 求人情報

- PR -