- - 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)が出力される場合の遅延という意味です。そのほかも同様です。
| RR、FF遅延 | ANDやORなど正論理のゲート |
| RF、FR遅延 | NANDやNORなど負論理のゲート |
| RR、FF、RF、FR遅延 | XORなどのゲート |
それでは図8に示す回路を考えてみましょう。
![]() |
||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
図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 |
|
関連記事 半導体/エレクトロニクス
- 連載:イチから作って丸ごと学ぶ! H8マイコン道
- 特集:組み込みシステムに吹く“仮想化”の風
- 連載:組み込みマルチコア進化論(連載中)
- 連載:必修! FPGAタイミング解析の基礎(全5回)
- 連載:−ザ・組み込み−ソフトウェアのハードウェア化(連載中)
- 連載:S08ではじめるマイコン制御プログラミング(全6回)
- 連載:マイコン制御基礎の次(連載中)
- 連載:マイコン制御基礎の基礎(全10回)
- 連載:マイコン制御基礎以前(全10回)
- 連載:H8で学ぶマイコン開発入門(全13回)
- 連載:触って学ぼう FPGA開発入門(全6回)
- 連載:FPGA開発テクニック、チューニングの心得(全6回)
- 特集:いまさら聞けない FPGA入門
- 連載:バラして納得! 電子部品入門(全18回)
- 連載:完全マスター! 電子回路ドリル III(全14回)
- 連載:完全マスター! 電子回路ドリル II(全25回)
- 連載:完全マスター! 電子回路ドリル(全25回)
- 目指せ! 電子回路マスターへの道
- 目指せ! 電子回路マスターへの道 Part2
- 分かっておきたい、IP活用の落とし穴
組み込み開発フォーラム 新着記事
- フルスクラッチの“Hello World”を動かしてみよう(2011/3/31)
- FlexRayプロトコルの概要(その2)(2011/3/29)
- JASA、東北地域に拠点を置く会員企業を支援(2011/3/25)
- NEC、震災の影響を受けた4拠点の生産再開を発表(2011/3/23)
- 内部ブロック図の基礎と共通要素(2011/3/22)
- インテル、被災地におけるITインフラの復旧を支援(2011/3/22)
- Facts on AUTOSAR/AUTOSAR導入の現実(2011/3/18)
- 計測器・震災被害ホットラインを開設、テクトロニクス(2011/3/18)
- ZMP、地震の揺れを多角的に計測するアプリ無償配布(2011/3/16)
- メンター、3Dテレビ・マルチメディア検証プラットフォーム(2011/3/16)
- 【番外編】タチの良い計測値、悪い計測値とは?(2011/3/15)
- tarファイルシステムをAndroidに組み込む!!(2011/3/10)
















