(57)【要約】  【課題】  データパスとクロックパスの遅延バラツキに対するマージンをとってタイミング解析を行う際に、過剰マージンが設定されないようにする。  【解決手段】  データパスの経路中の各セルのチップ上の配置領域の広さに応じてそのデータパスの遅延バラツキのマージン係数を決定し、且つクロックパスの経路中の各セルのチップ上の配置領域の広さに応じてそのクロックパスの遅延バラツキのマージン係数を決定する。【選択図】  図１
2006235889.tif 000002
【特許請求の範囲】
【請求項１】
クロック分岐ポイントから第１のラッチ手段と組み合わせ論理回路を経由して第２のラッチ手段のデータ入力ピンに至るデータパスの遅延を、当該データパスの遅延計算値に遅延バラツキのマージン係数をかけて得るとともに、前記クロック分岐ポイントから前記第２のラッチ手段のクロック入力ピンに至るクロックパスの遅延を、当該クロックパスの遅延計算値に遅延バラツキのマージン係数をかけて得て、前記第２のラッチ手段の前記データ入力ピンのデータ入力タイミングと前記クロック入力ピンのクロック入力タイミングを解析するタイミング解析方法において、
前記データパスの経路中の各セルのチップ上の配置領域の広さに応じて前記データパスの遅延バラツキのマージン係数を決定し、且つ前記クロックパスの経路中の各セルのチップ上の配置領域の広さに応じて前記クロックパスの遅延バラツキのマージン係数を決定することを特徴とするタイミング解析方法。
【請求項２】
請求項１に記載のタイミング解析方法において、前記データパスおよび前記クロックパスの各々の遅延バラツキのマージン係数の決定は、
当該パスの経路中の各セルの配置のＸ／Ｙ座標を取得する第１のステップと、
該得られた各セルのＸ／Ｙ座標の内から最大座標および最小座標を求める第２のステップと、
前記パスの経路中の最大座標および最小座標から前記パスを構成するセルの配置領域の対角線の長さを求める第３のステップと、
前記得られた対角線の長さに応じて前記パスの遅延バラツキのマージン係数を決定する第４のステップとを具備することを特徴とするタイミング解析方法。
【請求項３】
請求項１又は２に記載のタイミング解析方法において、
前記第２のラッチ手段でのホールドタイム解析のワースト条件では、前記データパスの遅延の遅延バラツキのマージン係数を１よりも小さい範囲で決定し、前記クロックパスの遅延バラツキのマージン係数を１とし、
前記第２のラッチ手段でのホールドタイム解析のベスト条件では、前記データパスの遅延の遅延バラツキのマージン係数を１とし、前記クロックパスの遅延バラツキのマージン係数を１よりも大きい範囲で決定し、
前記第２のラッチ手段でのセットアップタイム解析のワースト条件では、前記データパスの遅延の遅延バラツキのマージン係数を１とし、前記クロックパスの遅延バラツキのマージン係数を１よりも小さい範囲で決定し、
前記第２のラッチ手段でのセットアップタイム解析のベスト条件では、前記データパスの遅延の遅延バラツキのマージン係数を１より大きい範囲で決定し、前記クロックパスの遅延バラツキのマージン係数を１とすることを特徴とするタイミング解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データパスの遅延バラツキとクロックパスの遅延バラツキとを考慮して所定のラッチ手段へのデータ入力とクロック入力のタイミング解析を行う方法に関するものである。
【背景技術】
【０００２】
半導体チップ内に点在する同種類の複数のセルに同じ鈍りの信号が入力されたとき、それらのセルが同じ配線負荷を駆動している場合には、遅延計算値（バラツキを考慮しない設計における計算値、以下同じ）は全く同じであるが、実際の半導体チップでは、チップ内の各セルのトランジスタのでき具合（プロセスバラツキ）や供給電圧の違いによって、その遅延にバラツキが発生する。
【０００３】
この遅延バラツキをマージンとして考慮し、所定のラッチ手段へのデータ入力とクロック入力のタイミング解析を行うものとして、On Chip Variation（チップ内バラツキ）タイミング解析という手法がある（例えば、特許文献１参照）。図５はこれを説明するためのモデル回路の回路図である。図５において、１，２はデータのラッチ手段としてのフリップフロップ、３は複数の入力データから１つのデータを生成して出力する組み合わせ論理回路（図５では入力データは１つのみを示した。）、４〜６はクロックバッファ（クロックドライバ）である。
【０００４】
この図５に示したモデル回路は、入力クロックＣＬＫが分岐ポイントＰ０で分岐して、一方はデータ転送を行うフリップフロップ１のクロック入力ピンに入力し、他方は該フリップフロップ１の出力データを組み合わせ論理回路３で処理したデータを入力するフリップフロップ２のクロック入力ピンに入力する。フリップフロップ１のデータ入力ピンにはデータＤＡＴＡが入力する。Ｐ１はデータパス（Launch Path)、Ｐ２はクロックパス(Capture Path)である。
【０００５】
このようなモデル回路について、フリップフロップ２におけるホールドタイムの解析を行う際は、クロック分岐ポイントＰ０からフリップフロップ２のデータ入力ピンまでのデータパスＰ１の遅延計算値と、同フリップフロップ２のクロック入力ピンまでのクロックパスＰ２の遅延計算値に対して、それぞれ所定の遅延バラツキのマージン係数Ｋをかけることで最終遅延量を得て、その解析を行う。
【０００６】
なお、上記したホールドタイムとは、図６に示すように、フリップフロップが正常に入力データＤＡＴＡを読み込むためにクロックＣＬＫの有効なエッジ（図６の場合は立上りエッジ）以後に入力データＤＡＴＡを保持しなければならない最小時間である。また、後記するセットアップタイムとは、入力データＤＡＴＡを正常に読み込むためにクロックＣＬＫの有効なエッジ以前に入力データＤＡＴＡを安定させていなければならない最小時間である。
【０００７】
図５のモデル回路において、クロックＣＬＫの分岐ポイントＰ０がフリップフロップ２から遠く、その分岐ポイントＰ０からの遅延が大きいパスほど、その遅延バラツキが大きくなるので、遅延計算値に遅延バラツキのより大きなマージン係数をかけて、タイミング解析が行われる。つまり、大きなマージンを持たせてタイミング収束するよう設計することが要求される。
【特許文献１】特開平１０−３０１９８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところが、年々、回路が高速化していくと、セットアップタイムとホールドタイムを同時に満たすことが難しくなる。特に、上記のOn Chip Variationタイミング解析によれば、タイミング収束がさらに難しくなり、最悪では、セットアップタイムとホールドタイムの両方を満たすことができない場合がある。
【０００９】
また、上記のOn Chip Variationタイミング解析のマージン係数は、通常は最悪の場合を想定した係数であり、これは設計に際して同様のパスについて一律に使用される。しかし、実際には、マージン係数がより小さくても大丈夫なパスは存在するが、上記手法では、このようなパスに対して過剰なマージンを設定して解析が行われることになり、設計期間が長くなる場合がある。
【００１０】
本発明の目的は、データパスとクロックパスの遅延バラツキをマージンとしてタイミング解析を行う際に、セルの配置領域の広さに応じてマージン係数を決めることにより、過剰マージンが設定されないようにして、設計期間を短縮できるようにしたタイミング解析方法を提供することである。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明は、クロック分岐ポイントから第１のラッチ手段と組み合わせ論理回路を経由して第２のラッチ手段のデータ入力ピンに至るデータパスの遅延を、当該データパスの遅延計算値に遅延バラツキのマージン係数をかけて得るとともに、前記クロック分岐ポイントから前記第２のラッチ手段のクロック入力ピンに至るクロックパスの遅延を、当該クロックパスの遅延計算値に遅延バラツキのマージン係数をかけて得て、前記第２のラッチ手段の前記データ入力ピンのデータ入力タイミングと前記クロック入力ピンのクロック入力タイミングを解析するタイミング解析方法において、前記データパスの経路中の各セルのチップ上の配置領域の広さに応じて前記データパスの遅延バラツキのマージン係数を決定し、且つ前記クロックパスの経路中の各セルのチップ上の配置領域の広さに応じて前記クロックパスの遅延バラツキのマージン係数を決定することを特徴とする。
【００１２】
ここで、前記データパスおよび前記クロックパスの各々の遅延バラツキのマージン係数の決定は、当該パスの経路中の各セルの配置のＸ／Ｙ座標を取得する第１のステップと、該得られた各セルのＸ／Ｙ座標の内から最大座標および最小座標を求める第２のステップと、前記パスの経路中の最大座標および最小座標から前記パスを構成するセルの配置領域の対角線の長さを求める第３のステップと、前記得られた対角線の長さに応じて前記パスの遅延バラツキのマージン係数を決定する第４のステップとを具備するものであることが好ましい。
【００１３】
また、前記第２のラッチ手段でのホールドタイム解析のワースト条件では、前記データパスの遅延の遅延バラツキのマージン係数を１よりも小さい範囲で決定し、前記クロックパスの遅延バラツキのマージン係数を１とし、前記第２のラッチ手段でのホールドタイム解析のベスト条件では、前記データパスの遅延の遅延バラツキのマージン係数を１とし、前記クロックパスの遅延バラツキのマージン係数を１よりも大きい範囲で決定し、前記第２のラッチ手段でのセットアップタイム解析のワースト条件では、前記データパスの遅延の遅延バラツキのマージン係数を１とし、前記クロックパスの遅延バラツキのマージン係数を１よりも小さい範囲で決定し、前記第２のラッチ手段でのセットアップタイム解析のベスト条件では、前記データパスの遅延の遅延バラツキのマージン係数を１より大きい範囲で決定し、前記クロックパスの遅延バラツキのマージン係数を１とすることが望ましい。
【発明の効果】
【００１４】
本発明によれば、パスの経路中の各セルのチップ上の配置領域の広さに応じて当該パスの遅延バラツキのマージン係数を決定するので、当該パスに最適な遅延バラツキのマージン係数を決定することができ、よって、過剰マージン係数を防止でき、設計期間の短縮が可能となる。
【発明を実施するための最良の形態】
【００１５】
データパスとクロックパスのそれぞれ遅延バラツキの要素としては、半導体チップ内にランダムに発生する要素（例えば、トランジスタのポリシリコンゲート長が周りの他のセルの配置密度に依存して変化することによるもの等）と、半導体チップ内でなだらかに変化する要素（例えば、電圧降下等の要因）がある。後者の要素としては、タイミング解析の対象のパスの経路中の各セルが狭い範囲の領域内に留まっていれば、その遅延バラツキのマージンは小さく見積もっても良く、逆にそのパスの経路中の各セルの配置範囲が広ければ、その遅延バラツキのマージンは大きく見積もる必要がある。
【００１６】
そこで、本発明では、タイミング解析の対象のフリップフロップが含まれるデータパスおよびクロックパスの経路中の各セルの配置領域をチェックし、その配置領域の広さに応じて、データパスの遅延バラツキのマージン係数およびクロックパスの遅延バラツキのマージン係数を決定し、過剰なマージン設定を防止して、設計時間の短縮化を図る。
【実施例】
【００１７】
従来では一律に設定していた半導体チップ内のデータパスの遅延バラツキのマージン係数とクロックパスの遅延バラツキのマージン係数を、本実施例では、そのデータパスの経路中の各セルの配置領域の広さに応じて、またクロックパスの経路中の各セルの配置領域の広さに応じて、それぞれ個別に設定する。以下では、図５に示したモデル回路のパスについて具体的に説明する。図１はその遅延バラツキのマージン係数の決定を行う処理のフローチャートである。
【００１８】
まず、タイミング解析の対象となる２個のフリップフロップ１，２のクロック経路をたどって、それぞれのクロック信号が分岐する分岐ポイントＰ０を特定する（Ｓ１）。
【００１９】
次に、クロック分岐ポイントＰ０からパスの終点である受け側のフリップフロップ２のデータ入力ピンまでのデータパスＰ１の経路中の各セルの配置座標Ｘ／Ｙを取得する。同様に、クロック分岐ポイントＰ０からフリップフロップ２のクロック入力ピンまでのクロックパスＰ２の経路中の各セルの配置座標のＸ／Ｙを取得する。これらの座標は例えば、セルの左下角の座標とする（Ｓ２）。
【００２０】
次に、データパスＰ１、クロックパスＰ２の各々について、得られた各セルの配置座標Ｘ／Ｙの内から最大座標と最小座標、つまりＸmax、ＹmaxとXmin、Yminを求める（Ｓ３）。
【００２１】
次に、データパスＰ１の配置領域の広さを表現するものとして、配置座標Ｘ／Ｙの最大座標と最小座標から、（Ｘmax−Xmin）2＋（Ｙmax−Ｙmin）2の平方根を計算する。これにより求められた値は、当該データパスＰ１を構成するセルの配置領域の矩形の対角線の長さである。この対角線の長さは、矩形が同じ面積であっても、より縦長、あるいは横長の場合は正方形に比べて大きくなり、配置領域がより広く、遅延バラツキがより大きいことを示している。よって、この対角線の長さを配置領域の広さの評価関数とする。クロックパスＰ２についても、同様にして当該パスを構成するセルの配置領域の矩形の対角線の長さを求める（Ｓ４）。
【００２２】
次に、得られたデータパスＰ１，クロックパスＰ２の配置領域の対角線の長さに基づいて、予め登録しておいたライブラリから、それぞれ遅延バラツキのマージン係数を決定する（Ｓ５）。
【００２３】
以降では、この遅延バラツキのマージン係数を用いて、データパスＰ１の最終遅延量、クロックパスＰ２の最終遅延量を求め、フリップフロップ２の入力側での入力データと入力クロックのタイミング解析を行う。
【００２４】
図２は最終遅延量の変動の特性図である。通常のタイミング解析では、遅延がこれ以上大きくならないワースト条件と、これ以上小さくならないベスト条件を用いて行われる。図２では、ワースト条件は右上のコーナー、ベスト条件は左下のコーナーに当たる。
【００２５】
ここで、半導体チップ内のデータパスＰ１とクロックパスＰ２の遅延バラツキを考慮してフリップフロップ２の入力側でのデータとクロックのタイミング解析を行う場合は、例えば、ホールドタイム解析時のワースト条件を例にとると、実チップではデータパスＰ１もクロックパスＰ２も遅延が遅延計算値より小さい方にぶれる可能性があり、両者がぶれた場合には相対遅延は小さくなる。しかし、データパスＰ１の遅延のみが小さくなる方向にぶれると、ホールドタイムの解析は悲観的になる。これは、図２では、(a)の方向にデータパスの遅延のみが小さくなる方向に計算され、解析されることを意味する。この場合は、図３(a)に示すように、データパスＰ１の遅延バラツキのマージン係数がＫ１（Ｋ１＜１）となる。クロックパスＰ２の遅延バラツキのマージン係数は１である。
【００２６】
一方、ホールドタイム解析時のベスト条件の場合は、クロックパスＰ２の遅延バラツキが大きくなる方向にぶれた場合である。この場合は、図３(b)に示すように、クロックパス２の遅延バラツキのマージン係数がＫ２（Ｋ２＞１）となる。データパスＰ１の遅延バラツキのマージン係数は１である。
【００２７】
さらに、セットアップタイム解析時のワースト条件の場合は、クロックパスＰ２の遅延が小さくなる方向にぶれた場合である。この場合は、図３(c)に示すように、データパスＰ１の遅延バラツキのマージン係数がＫ３（Ｋ３＜１）となる。データパスＰ１の遅延バラツキのマージン係数は１である
【００２８】
さらに、セットアップタイム解析時のベスト条件の場合は、データパスＰ１の遅延バラツキが大きくなる方向にぶれた場合である。この場合は、図３(d)に示すように、データパスＰ１の遅延バラツキのマージン係数がＫ４（Ｋ４＞１）となる。クロックパスＰ２の遅延バラツキのマージン係数は１である。
【００２９】
以上のように、フリップフロップ２の入力データと入力クロックのタイミング解析において、ホールドタイムの解析では、ワースト条件でのデータパスＰ１の遅延バラツキのマージン係数Ｋ１と、ベスト条件でのクロックパスＰ２の遅延バラツキのマージン係数Ｋ２が必要となる。また、セットアップタイムの解析では、ワースト条件でのクロックパスＰ２の遅延バラツキのマージン係数Ｋ３と、ベスト条件でのデータパスＰ１の遅延バラツキのマージン係数Ｋ４が必要となる。
【００３０】
そこで、前記した対角線の長さを評価関数Ｌとして、図４に示すようにマージン係数Ｋ１〜Ｋ４の組み合わせのテーブルをライブラリに登録しておいて、図１で説明したステップＳ５によって、対角線の長さＬに基づいて、遅延バラツキのマージン係数Ｋ１〜Ｋ４の最適な組み合わせを読み出し、データパスＰ１とクロックパスＰ２の最終遅延量を求めて、フリップフロップ２の入力データと入力クロックのホールドタイムとセットアップタイムのタイミング解析を行う。そして、このタイミング解析の結果に基づいて、ホールドタイムとセットアップタイムが確保されるように回路設計を行う。
【図面の簡単な説明】
【００３１】
【図１】本発明のタイミング解析に使用する遅延バラツキのマージン係数の決定の処理のフローチャートである。
【図２】データパスとクロックパスの最終遅延量の変動特性図である。
【図３】ホールドタイムとセットアップタイムのワースト条件、ベスト条件でのタイミング解析に使用する最終遅延量の説明図である。
【図４】遅延バラツキのマージン係数のテーブルの説明図である。
【図５】タイミング解析のモデル回路の回路図である。
【図６】セットアップタイムとホールドタイムの説明図である。
【図１】
2006235889.tif 000003
【図２】
2006235889.tif 000004
【図３】
2006235889.tif 000005
【図４】
2006235889.tif 000006
【図５】
2006235889.tif 000007
【図６】
2006235889.tif 000008