(57)【要約】【課題】集積回路において、全てのパスへの影響を考慮してタイミングエラーを修正することが可能なタイミング調整方法、及びそのコンピュータプログラムを提供すること。【解決手段】本発明にかかるタイミング調整方法は、集積回路の各パスにおけるタイミングエラーを、パスを構成するセルへのバッファセルの挿入により修正する。その際、パスごとにタイミング規定に対する余裕であるスラックへの影響度を示す感度情報が各セルについて備えられる。この感度情報を用いてタイミングエラーが修正される。これにより、タイミングエラーのないパス（ＭＥＴパス）への影響を考慮したタイミングエラーの修正が可能となる。したがって、タイミングエラーのあるパス（エラーパス）の誘発を防ぐことができる。【選択図】図３
2009163490.tif 000002
【特許請求の範囲】
【請求項１】
集積回路の各パスにおけるタイミングエラーを、前記パスを構成するセルへのバッファセルの挿入により修正するタイミング調整方法であって、
前記パスごとにタイミング規定に対する余裕であるスラックへの影響度を示す感度情報を各セルについて備える工程と、
前記感度情報を用いて前記タイミングエラーを修正する工程とを備えることを特徴とするタイミング調整方法。
【請求項２】
前記修正する工程は前記バッファセルを挿入する位置の検索において、
タイミングエラーのないパスであるＭＥＴパスに影響を与えるセルを除外する工程と、
タイミングエラーのあるパスであるエラーパスの集中するセルを特定する工程と、
前記バッファセルを挿入する位置を特定する工程とを備えることを特徴とする請求項１に記載のタイミング調整方法。
【請求項３】
前記感度情報はｍｅａｎ値感度とｓｉｇｍａ値感度とを備え、
前記ＭＥＴパスに影響を与えるセルを除外する工程において、前記ＭＥＴパスに対する前記ｍｅａｎ値感度の値を参照して、前記ＭＥＴパスに影響を与えるセルを特定することを特徴とする請求項２に記載のタイミング調整方法。
【請求項４】
前記感度情報はｍｅａｎ値感度とｓｉｇｍａ値感度とを備え、
前記エラーパスの集中するセルを特定する工程において、前記エラーパスに対する前記ｍｅａｎ値感度の値を参照して、前記エラーパスの集中するセルを特定することを特徴とする請求項２または３に記載のタイミング調整方法。
【請求項５】
前記感度情報はｍｅａｎ値感度とｓｉｇｍａ値感度とを備え、
前記バッファセルを挿入する位置を特定する工程において、前記エラーパスに対する前記ｓｉｇｍａ値感度の値を参照して、前記バッファセルを挿入する位置を特定することを特徴とする請求項２乃至４の少なくとも何れか１項に記載のタイミング調整方法。
【請求項６】
集積回路の各パスにおけるタイミングエラーを、前記パスを構成するセルへのバッファセルの挿入により修正してタイミング調整を行うコンピュータプログラムであって、
請求項１乃至５の少なくとも何れか１項に記載のタイミング調整方法が備える工程をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路のタイミング調整に関する。特に、集積回路の各パスにおけるタイミングエラーを、パスを構成するセル（遅延素子、以下、セルと表記する。）へのバッファセルの挿入により修正するタイミングＥＣＯ処理に関する。
【背景技術】
【０００２】
集積回路のレイアウトでは、信号のタイミングが考慮される。レイアウトツールは静的タイミング解析（Static Timing Analysis、以下、ＳＴＡと表記する。）において回路遅延を修正、改善する。信号の静的なタイミングには、セットアップタイムとホールドタイムとがあり、その両方のタイミング規定が満たされる必要がある。ＳＴＡの結果、タイミング規定が満たされているか否かが判断される。タイミング規定が満たされていない場合は、タイミングEngineering Change Order（以下、タイミングＥＣＯと表記する。）においてタイミングエラーが修正される。
【０００３】
図１は、セットアップタイムとホールドタイムとを説明する図である。図１（ａ）に示されるように、一般に集積回路は、フリップフロップＦＦ１、ＦＦ２の間に何段かの回路セルを備えるパスに分解される。回路セルとしては一般的に、バッファ、インバータ、論理ゲートなどが挙げられる。図１（ａ）に示されるパスにおいて、フリップフロップＦＦ２はフリップフロップＦＦ１の出力Ｑから出力されるデータＤａｔａを、バッファセルを介して入力Ｄから取り込む。フリップフロップＦＦ２によるデータＤａｔａの取り込みは、クロックＣＬＫの立ち上がりエッジに応答して行われる。
【０００４】
図１（ｂ）は、フリップフロップＦＦ２によるデータＤａｔａの取り込みのタイミングチャートを示す。データＤａｔａの確定時とクロックＣＬＫの立ち上がりエッジとの間がセットアップタイムＳＴである。クロックＣＬＫの立ち上がりエッジとデータＤａｔａの終了時との間がホールドタイムＨＴである。このセットアップタイムＳＴとホールドタイムＨＴとが、それぞれフリップフロップＦＦ２の特性から決まる規定値以上であることが必要とされる。
【０００５】
例えば、図１（ｃ）のようにデータＤａｔａに対してクロックＣＬＫが遅延すると、クロックＣＬＫの立ち上がりエッジからデータＤａｔａの終了までが短くなる。ホールドタイムＨＴが規定値に満たないような場合はホールドエラーとなる。
【０００６】
その場合は、タイミングＥＣＯにおいて例えば図１（ｄ）に示されるようにＦＦ１の出力ＱとＦＦ２の入力Ｄとの間に遅延バッファセルＢ１が挿入される。遅延バッファセルＢ１の挿入によりデータＤａｔａのタイミングを遅らせてクロックＣＬＫのタイミングと合わせることで、ホールドタイムＨＴを確保するのである。
【０００７】
しかし、セットアップタイムＳＴも余裕がないような場合、遅延バッファセルＢ１の挿入により、図１（ｅ）に示されるようにセットアップタイムＳＴが短くなる。その結果、セットアップタイムＳＴが規定値に満たなくなりセットアップエラーが発生することも起こりうる。
【０００８】
特許文献１には、このタイミングＥＣＯに関連する技術が開示されている。
【０００９】
【特許文献１】特開２００３−１６２５５６号公報
【００１０】
一方、集積回路の設計で考慮される信号の遅延要因については、近年の集積回路プロセスの微細化により、製造バラツキ等の統計的要因の影響が大きくなってきている。そこで、ＳＴＡにおいて回路遅延を統計的に扱う技術が提案されている。例えば、特許文献２、３である。
【００１１】
【特許文献２】特開２００６−２６８４７９号公報
【特許文献３】特開２００４−２５２８３１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
タイミングＥＣＯでは、上述の通りホールドエラーを修正するための遅延バッファセルの挿入により、新たなセットアップエラーが発生することがある。上記の特許文献１に開示された背景技術では、セットアップタイムのマージンを参照しながら、複数のタイミング制約でタイミングエラーが発生しないようにデータパスに遅延バッファセルを挿入してホールドエラーの修正を行う。
【００１３】
しかし、例えばパスを構成するセルのうち駆動能力の大きいセルの前後に遅延バッファセルが挿入された場合は、遅延が予想より大きくなることがある。そうすると、あるパスのホールドエラーを修正した結果、別のパスでセットアップエラーを誘発してしまうことがある。あるパスのタイミングエラーを修正した影響で、タイミングエラーのないパス（以下、ＭＥＴパスと表記する。）がタイミングエラーのあるパス（以下、エラーパスと表記する。）になってしまい問題である。
【００１４】
また、特許文献２、３にも回路遅延を統計的に扱うことで上記の問題に対処する手段については開示されていない。
【００１５】
本発明は上記の課題に鑑み提案されたものである。本発明は、集積回路において、全てのパスへの影響を考慮してタイミングエラーを修正することが可能なタイミング調整方法、及びそのコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明にかかるタイミング調整方法は、集積回路の各パスにおけるタイミングエラーを、パスを構成するセルへのバッファセルの挿入により修正するものである。上述された課題を解決し目的を達成するべく、本発明にかかるタイミング調整方法では、パスごとにタイミング規定に対する余裕であるスラックへの影響度を示す感度情報が各セルについて備えられる。この感度情報を用いてタイミングエラーが修正されることを特徴とする。
【００１７】
また、本発明にかかるコンピュータプログラムは、集積回路という物理的または技術的な対象において、その信号のタイミングという物理的性質または技術的性質に基づく情報処理に関するものであり、自然法則を利用した技術的思想の創作に属するものである。
本発明にかかるコンピュータプログラムは、上記のタイミング調整方法が備える工程をコンピュータに実行させることを特徴とする。
【００１８】
これにより、ＭＥＴパスへの影響を考慮したタイミングエラーの修正が可能となる。したがって、エラーパスの誘発を防ぐことができる。パスごとにスラックへの影響度である感度情報が各セルについて備えられるため、どの位置に遅延バッファセルを挿入すべきかを特定することができる。また、感度情報からエラーパスの集中しているセルがわかるため、挿入される遅延バッファセル数を少なくしてタイミングエラーを修正することができる。
【発明の効果】
【００１９】
本発明にかかる集積回路のタイミング調整方法、及びそのコンピュータプログラムによれば、集積回路において、全てのパスへの影響を考慮してタイミングエラーを修正することが可能となる。
【発明を実施するための最良の形態】
【００２０】
図２を参照して、本発明にかかる集積回路のタイミング調整方法において、集積回路のパスごとに各セルについて備えられる感度情報の説明をする。図２（ａ）に示されるパスを例に説明する。図２（ａ）では、データＤａｔａのラインとして使用されるデータパスＰ１とクロックＣＬＫのラインとして使用されるクロックパスＰ２とが示されている。それぞれのパスはいくつかのバッファセルを備えて構成されている。例えば、フリップフロップＦＦ１とＦＦ２との間のパスＰ１には、バッファセルＢ１〜Ｂ４が備えられている。
【００２１】
パスを構成するバッファセルＢ１〜Ｂ４などのセルはそれぞれ、例えば図２（ｂ）に示されるような遅延分布を有している。図２（ｂ）は製造バラツキや温度、電源電圧など種々の遅延の変動要因による遅延のバラツキを、統計的に遅延の確率分布として表したものである。ここで、μは平均値を、σは標準偏差を表す。
【００２２】
データパスＰ１にタイミングエラーがある場合、タイミングＥＣＯにおけるタイミング修正では、例えば図２（ｃ）に示されるようにバッファセルＢ２が遅延分布１を有するセルから遅延分布２を有するセルへと変更される。図２（ｃ）の例においてｍ１、ｍ２をｍｅａｎ値と、ｓ１、ｓ２をｓｉｇｍａ値と呼ぶ。具体的には、例えば、ｍ１、ｍ２はそれぞれ遅延分布１、２の平均値μで与えられ、ｓ１、ｓ２はそれぞれ遅延分布１、２についてμ−３σ、すなわち平均値から標準偏差の３倍を引いた値で与えられる。
【００２３】
図２（ｄ）は、データパスＰ１のタイミング規定に対する余裕であるスラック（この例ではホールドタイムマージン）の分布を示す。データパスＰ１のスラック（ホールドタイムマージン）分布は、データパスＰ１を構成するバッファセルＢ１〜Ｂ４の各セルが有する遅延分布から計算される。例えば、図２（ｃ）のようにバッファセルＢ２について遅延分布１から遅延分布２へ変更されると、データパスＰ１のスラック（ホールドタイムマージン）は図２（ｄ）のようにスラック分布１からスラック分布２へ変化する。図２（ｄ）の例においてｍｐ１、ｍｐ２をｍｅａｎ値と、ｓｐ１、ｓｐ２をｓｉｇｍａ値と呼ぶ。具体的には、図２（ｃ）と同様に例えば、ｍｐ１、ｍｐ２はそれぞれスラック分布１、２の平均値μで与えられ、ｓｐ１、ｓｐ２はそれぞれスラック分布１、２についてμ−３σ、すなわち平均値から標準偏差の３倍を引いた値で与えられる。
【００２４】
図２（ｃ）、（ｄ）に示されるように、バッファセルＢ２の遅延分布を変更することで、データパスＰ１のスラック（ホールドタイムマージン）が増加する。すなわち、遅延分布２を有するバッファセルをバッファセルＢ２のセルの前または後に挿入することで、データパスＰ１のスラック（ホールドタイムマージン）が改善され、タイミングエラーが修正されるのである。
【００２５】
感度情報とは、タイミングエラーの修正において、パスを構成するセルへのバッファセルの挿入によりパスのスラックが受ける影響度を示すものである。感度情報は、ｍｅａｎ値感度とｓｉｇｍａ値感度とを備える。例えば、図２（ｃ）、（ｄ）の例においては、バッファセルＢ２のセルのｍｅａｎ値感度ＳｍＢ２は、ｍｐ２＝ｍｐ１＋ＳｍＢ２（ｍ２−ｍ１）を満たす。バッファセルＢ２のセルのｓｉｇｍａ値感度ＳｓＢ２は、ｓｐ２＝ｓｐ１＋ＳｓＢ２（ｓ２−ｓ１）を満たす。すなわち、ｍｅａｎ値感度とは、パスを構成するセルの遅延分布におけるｍｅａｎ値を微小修正（例えば、１［ｐｓ］）したときの対象パスのスラック分布におけるｍｅａｎ値の変化割合のことである。ｓｉｇｍａ値感度とは、パスを構成するセルの遅延分布におけるｓｉｇｍａ値を微小修正（例えば、１［ｐｓ］）したときの対象パスのスラック分布におけるｓｉｇｍａ値の変化割合のことである。したがって、感度情報が備えるｍｅａｎ値感度、ｓｉｇｍａ値感度の値が大きいセルほど対象パスのスラックに与える影響が大きくなる。
【００２６】
図３は、本発明にかかる集積回路のタイミング調整方法によるタイミングＥＣＯを含んだ、集積回路のレイアウト処理全体のフロー図の一例である。集積回路のレイアウト処理では、例えばまず、レジスタ転送レベル（Register Transfer Level、ＲＴＬ）のハードウェア記述言語（Hardware Description Language、ＨＤＬ）による記述が論理合成される（Ｓ１）。次に、論理合成された回路のレイアウト、すなわち物理的な配置配線が行われる（Ｓ２）。レイアウトの終了後、もしくはレイアウトと並行してＳＴＡが行われる（Ｓ３）。ＳＴＡでは遅延計算が行われ、タイミング解析が実行される。また、感度情報Ｆ１が生成される。ＳＴＡの結果、サインオフにおいてタイミング規定が満たされているか否かの判断がされる（Ｓ４）。タイミング規定が満たされていない場合（Ｓ４：ＮＧ）、タイミングＥＣＯに移行する。
【００２７】
セットアップタイムは、データの確定が早いほど満足することができるが、論理回路をレイアウトした後では、データのタイミングを早めることは困難である。一方、ホールドタイムは、データの終了が遅いほど満足することができるが、論理回路をレイアウトした後でも、遅延バッファセルを挿入することにより、そのタイミングを遅らせることは容易にできる。したがって、レイアウトツールでは一般に、セットアップエラーが発生しないようにセルのレイアウトを行い、その後レイアウトされた集積回路に対してホールドエラーのチェックを行い、ホールドエラーが発生するパス（エラーパス）に遅延バッファセルを挿入してホールドエラーを修正する。そのため、タイミングＥＣＯでは、エラーパスを構成するセルへのバッファセルの挿入によりタイミングエラーが修正される（Ｓ５）。このタイミングＥＣＯにおけるタイミングエラーの修正では、感度情報Ｆ１が参照される。また、バッファセル挿入による回路修正情報Ｆ２が生成される。
【００２８】
タイミングＥＣＯにおけるタイミングエラーの修正が終わると、回路修正情報Ｆ２に基づき、再度レイアウトが行われる。
【００２９】
一方、サインオフにおいてタイミング規定が満たされている場合（Ｓ４：ＯＫ）、Ｖｅｒｉｆｉｃａｔｉｏｎで、物理上の問題がないことの検証とテストシミュレーションによる問題がないことの検証とが行われる（Ｓ６）。
【００３０】
図４を参照して、図３のタイミングＥＣＯ（Ｓ５）の詳細な処理フローについて説明する。ここで、スラックとは前述の通り、タイミング規定に対する余裕、すなわち、マージンのことである。以下では、セットアップタイムマージンをセットアップスラック、ホールドタイムマージンをホールドスラックと表記する。
【００３１】
タイミングＥＣＯではエラーパスの修正に先立って、必要なデータが入力される（Ｓ５１〜Ｓ５３）。Ｓ５１のタイミングリストの入力では、図３のＳＴＡ（Ｓ３）の結果からエラーパスの読み込みが行われる。Ｓ５２のスラック情報の入力では、ＳＴＡの結果からセットアップスラックが読み込まれ、各セルの端子ごとにセットアップスラックが設定される。このとき、複数のパスが通るセルに対しては、最も条件の厳しいセットアップスラック、すなわち、最小のセットアップスラックが設定される。Ｓ５３の感度情報の入力では、ＳＴＡで生成された感度情報Ｆ１が読み込まれる。具体的には、各パスについて、パスを構成するセルの端子ごとにｍｅａｎ値感度、ｓｉｇｍａ値感度が設定される。
【００３２】
必要なデータの入力が終わると、エラーパスの修正に移行する。エラーパスの修正ではまず、Ｓ５１で読み込まれたエラーパスのうちタイミングエラー修正の対象となるエラーパスについて、タイミングエラーのないＭＥＴパスに影響するセルが、バッファセルを挿入する候補となるセルから除外される（Ｓ５０１）。ＭＥＴパスに影響を与えるセルの特定は、感度情報Ｆ１からＭＥＴパスに対するｍｅａｎ値感度の値を参照して行われる。
【００３３】
ＭＥＴパスに影響するセルが除外された後、残ったセルについて、感度情報Ｆ１からエラーパスに対するｍｅａｎ値感度の値を参照して、その値の高いセルが検索される（Ｓ５０２）。
【００３４】
Ｓ５０２の検索がされた結果、エラーパスに対するｍｅａｎ値感度の値が高かったセルについて、今度は感度情報Ｆ１からエラーパスに対するｓｉｇｍａ値感度の値を参照して、その値の高いセルが検索される（Ｓ５０３）。
【００３５】
Ｓ５０３の検索がされた結果、エラーパスに対するｓｉｇｍａ値感度の値が高かったセルが、バッファセルを挿入する位置（セル）として特定される。Ｓ５２で設定されたセットアップスラックの値を超えないような遅延バッファセルが、特定されたセルの前または後に挿入される（Ｓ５０４）。
【００３６】
Ｓ５０４のバッファセル挿入の後、ホールドスラック及びセットアップスラックの再計算が行われる（Ｓ５０５、５０６）。スラックの再計算の結果、セットアップタイムとホールドタイムとが規定を満たしているか否かが判断される（Ｓ５０７、Ｓ５０８）。遅延バッファセルの挿入により、セットアップタイムが規定値に満たなくなりセットアップエラーが発生している場合（Ｓ５０７：Ｎｏ）、その遅延バッファセルでは駆動能力が高過ぎて、遅延が大きくなり過ぎるということになる。そのため、挿入したバッファセルが削除され（Ｓ５０９）、駆動能力が１ランク下のバッファセルが挿入され（Ｓ５１０）、スラックの再計算（Ｓ５０５、５０６）に戻る。
【００３７】
セットアップタイムが規定を満たし（Ｓ５０７：Ｙｅｓ）、ホールドエラーが発生している場合（Ｓ５０８：Ｎｏ）、依然として遅延量が不足しているということになる。そのため、セットアップスラックにまだ余裕があるか否かが判断される（Ｓ５１１）。セットアップスラックに余裕がある場合（Ｓ５１１：Ｙｅｓ）、さらに遅延させることが可能ということになる。したがって、先程のＳ５０４と同じ位置（セル）に同じ遅延バッファセルがさらに挿入され（Ｓ５１２）、スラックの再計算（Ｓ５０５、５０６）に戻る。
【００３８】
セットアップスラックに余裕がない場合（Ｓ５１１：Ｎｏ）、先程のＳ５０４と同じ位置（セル）への更なる遅延バッファセルの挿入はできないということになる。したがって、１ランク下のｓｉｇｍａ値感度の高いセル、すなわち２番目にｓｉｇｍａ値感度の高いセルが検索され（Ｓ５１３）、そのセルの前または後に遅延バッファセルが挿入され（Ｓ５１４）、スラックの再計算（Ｓ５０５、５０６）に戻る。
【００３９】
ホールドタイムも規定を満たす場合（Ｓ５０８：Ｙｅｓ）、タイミングエラー修正の対象とされたエラーパスについて、タイミングエラーが修正されたということになる。したがって、バッファセル挿入による回路修正情報Ｆ２が生成される。このように、タイミングエラー修正の対象となる次のエラーパスがなくなるまで、図４のエラーパス修正ループが繰り返される。
【００４０】
図５〜図７を参照して、タイミングＥＣＯの具体的な処理について説明する。図５はタイミングＥＣＯ処理の対象となる回路の一例を示す。図５の回路に含まれるパスＦＦ１‐ＦＦ３、パスＦＦ２‐ＦＦ３、パスＦＦ５‐ＦＦ４の３つのパスを例に説明する。ここで、例えば、パスＦＦ１‐ＦＦ３とは、フリップフロップＦＦ１からセルＡ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇを経てフリップフロップＦＦ３に至るパスのことである。説明のため、各パスが有するスラックをホールドスラック、セットアップスラックの順に、パスＦＦ１‐ＦＦ３は−５０［ｐｓ］、５０［ｐｓ］、パスＦＦ２‐ＦＦ３は−１００［ｐｓ］、１５０［ｐｓ］、パスＦＦ５‐ＦＦ４は５０［ｐｓ］、５０［ｐｓ］であるとする。ここで、マイナスの値は、スラックがその分だけ不足して規定値に満たないタイミングエラーが発生しているということを意味する。すなわち、パスＦＦ１‐ＦＦ３とパスＦＦ２‐ＦＦ３とはエラーパスであり、パスＦＦ５‐ＦＦ４はＭＥＴパスである。なお、各スラックの値は、図４のＳ５１、Ｓ５２で入力されるものである。
【００４１】
図６は、感度情報Ｆ１の一例を示す。「StartPoint」、「EndPoint」はそれぞれパスの始点、終点を表す。「Instance」の列にはパスを構成するセルが端子ごとに示される。「Incr」は各セルの遅延を表す。例えば、「/INSTANCE_name1/A  3.0」は、セルINSTANCE_name1の端子Aまでの配線遅延が3.0であることを意味し、「/INSTANCE_name1/X  6.0」は、セルINSTANCE_name1自体の遅延が6.0であることを意味する。「Path」は各セルの遅延「Incr」が加算された値を表す。四角で囲われた「mean sensitivity」、「sigma sensitivity」はそれぞれ、パスに対する各セルのｍｅａｎ値感度、ｓｉｇｍａ値感度を表す。「slack」はパスのホールドスラックの値である。すなわち、この「slack」がマイナスの値であるパスはエラーパスである。図４のＳ５３では、図６に示されるように、各パスについて、パスを構成するセルの端子ごとにｍｅａｎ値感度、ｓｉｇｍａ値感度が設定されることになる。
【００４２】
図７は感度情報テーブルの一例を示す。感度情報テーブルは、図６の感度情報Ｆ１に基づいて生成される。前述したように感度情報Ｆ１は、各パスについて、パスを構成するセルの端子ごとにｍｅａｎ値感度、ｓｉｇｍａ値感度を設定するものである。感度情報テーブルは、各パス個別の感度情報Ｆ１を、集積回路に含まれる全てのセルの端子ごとに、エラーパスに対するｍｅａｎ値感度、エラーパスに対するｓｉｇｍａ値感度、ＭＥＴパスに対するｍｅａｎ値感度としてまとめたものである。ここで説明される具体例においては、感度情報Ｆ１の参照は、この感度情報テーブルにより行われる。
【００４３】
図７に示される感度情報テーブルにおいて、インスタンスセルの欄はセル名と端子名とからなる。ここで、図７のセル名と図５のセル名とは対応している。Globalslackの欄には、図４のＳ５２で設定されるセットアップスラックの値が入る。エラーパスのｍｅａｎ値、エラーパスのｓｉｇｍａ値、ＭＥＴパスのｍｅａｎ値の各感度の欄には、感度情報Ｆ１に基づいて設定される値が入る。複数のパスが通るセルに対しては、各パスの感度のうち０を除いた最小の値が入る。感度の値が０であるということは、パスに対して全く影響を与えないということを意味するため、考慮に入れる必要がないからである。例えば、セルＣを例に説明すると、セルＣの出力端子Ｃ．ｏｕｔは、前述した図５のパスＦＦ１‐ＦＦ３、パスＦＦ２‐ＦＦ３、パスＦＦ５‐ＦＦ４の３つのパスのうち、パスＦＦ１‐ＦＦ３とパスＦＦ２‐ＦＦ３とが通る。ともにエラーパスであるため、パスＦＦ１‐ＦＦ３、パスＦＦ２‐ＦＦ３のそれぞれが通るセルＣの入力端子Ｃ．ｉｎ１、Ｃ．ｉｎ２のエラーパスのｍｅａｎ値感度から、それぞれのｍｅａｎ値感度は１．０１と１．０２であることがわかる。よって、パスＦＦ１‐ＦＦ３とパスＦＦ２‐ＦＦ３の両パスが通るセルＣの出力端子Ｃ．ｏｕｔには、パスＦＦ１‐ＦＦ３、パスＦＦ２‐ＦＦ３のそれぞれのｍｅａｎ値感度１．０１と１．０２のうちの最小の値である１．０１が入るのである。
【００４４】
図５のエラーパスＦＦ１‐ＦＦ３がタイミングエラー修正の対象であるとき、パスＦＦ１‐ＦＦ３を構成するセルＡ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇがバッファセルを挿入する位置（セル）の候補となる。タイミングエラーのないＭＥＴパスＦＦ５‐ＦＦ４に影響するセルが、バッファセルを挿入する候補となるセルＡ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇから除外される（図４のＳ５０１）。図７の感度情報テーブルからＭＥＴパスのｍｅａｎ値感度の値が参照される。セルＡ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇのうち、セルＥ、ＦはＭＥＴパスＦＦ５‐ＦＦ４に影響することがわかる（枠１）。したがって、セルＥ、Ｆがバッファセルを挿入する位置（セル）の候補から除外される。
【００４５】
ＭＥＴパスＦＦ５‐ＦＦ４に影響するセルＥ、Ｆが除外された後、残ったセルＡ、Ｃ、Ｄ、Ｇについて、図７の感度情報テーブルからエラーパスのｍｅａｎ値感度の値が参照されて、その値の高いセルが検索される（図４のＳ５０２）。ここで、例えばセルＣのように端子によって値が異なる場合は、前述の通り０を除いた最小の値がセルの値となる。セルＡ、Ｃ、Ｄ、Ｇについて、エラーパスのｍｅａｎ値感度の値は１．０１で同じである（枠２）。そのため、この具体例では、セルＡ、Ｃ、Ｄ、Ｇがそのまま全て選択される。
【００４６】
エラーパスのｍｅａｎ値感度の値の高いセルが検索された結果、エラーパスのｍｅａｎ値感度の値が高かったセルＡ、Ｃ、Ｄ、Ｇについて、今度は図７の感度情報テーブルからエラーパスのｓｉｇｍａ値感度の値が参照されて、その値の高いセルが検索される（図４のＳ５０３）。セルＡ、Ｃ、Ｄ、Ｇのうち、セルＤのエラーパスのｓｉｇｍａ値感度の値が最も高いことがわかる（枠３）。
【００４７】
エラーパスのｓｉｇｍａ値感度の値の高いセルが検索された結果、エラーパスのｓｉｇｍａ値感度の値が高かったセルＤが、バッファセルを挿入する位置（セル）として特定される。したがって、セルＤのGlobalslackの値５０［ｐｓ］を超えないような遅延バッファセルがセルＤの前または後に挿入される（図４のＳ５０４）。
【００４８】
このように、タイミングエラーを修正するために遅延バッファセルが挿入される位置（セル）の検索において、ＭＥＴパスのｍｅａｎ値感度の値が参照される。複数のパスが通るセルについては、各パスの感度のうち０を除いた最小の値が参照される。したがって、ＭＥＴパスに少しでも影響を与えるセルを特定し、バッファセルを挿入する位置（セル）の候補から除外することができる。よって、ＭＥＴパスへの影響を考慮したタイミングエラーの修正ができ、エラーパスの誘発を防ぐことができる。
【００４９】
エラーパスのｍｅａｎ値感度の値が参照されて、その値の高いセルが検索される。複数のパスが通るセルについては、各パスの感度のうち０を除いた最小の値が参照される。これにより、エラーパスの集中するセルを特定することができる。したがって、一度に複数のエラーパスを修正することが可能になる。少ない挿入バッファセル数でのタイミングエラーの修正を期待することができる。
【００５０】
エラーパスのｓｉｇｍａ値感度の値が参照されて、その値の高いセルが検索される。複数のパスが通るセルについては、各パスの感度のうち０を除いた最小の値が参照される。これにより、最低限のタイミングエラー改善の保証の下、バッファセルを挿入する位置（セル）として、タイミングエラー改善に与える影響が最も大きい、すなわち、バッファセルの挿入に最も適した位置（セル）を特定することができる。
【００５１】
バッファセルを挿入する位置（セル）のGlobalslackの値を超えないような遅延バッファセルが挿入される。前述の通り、複数のパスが通るセルについては、Globalslackの値は、最も条件の厳しい最小のセットアップスラックの値とされる。そのため、遅延バッファセルの挿入によるセットアップエラーの発生を防止することができる。
【００５２】
ここで、特許請求の範囲との対応は以下の通りである。
感度情報Ｆ１は、感度情報の一例である。
静的タイミング解析ＳＴＡは、感度情報を各セルについて備える工程の一例である。
タイミングＥＣＯは、感度情報を用いてタイミングエラーを修正する工程の一例である。
ＭＥＴパスに影響するセルを除外する工程Ｓ５０１は、ＭＥＴパスに影響を与えるセルを除外する工程の一例である。
ｍｅａｎ値感度の高いセルを検索する工程Ｓ５０２は、エラーパスの集中するセルを特定する工程の一例である。
ｓｉｇｍａ値感度の高いセルを検索する工程Ｓ５０３は、バッファセルを挿入する位置（セル）を特定する工程の一例である。
【００５３】
以上、詳細に説明したように、本発明によれば、集積回路の各パスにおけるタイミングエラーを、パスを構成するセルへのバッファセルの挿入により修正する。その際、パスごとにタイミング規定に対する余裕であるスラックへの影響度を示す感度情報が各セルについて備えられる。この感度情報を用いてタイミングエラーが修正される。
【００５４】
これにより、ＭＥＴパスへの影響を考慮したタイミングエラーの修正が可能となるため、エラーパスの誘発を防ぐことができる。パスごとにスラックへの影響度である感度情報が各セルについて備えられるため、どの位置（セル）に遅延バッファセルを挿入すべきかを特定することができる。また、感度情報からエラーパスの集中しているセルがわかるため、挿入される遅延バッファセル数を抑えたタイミングエラーの修正ができる。本発明にかかる集積回路のタイミング調整方法、及びそのコンピュータプログラムによれば、集積回路において、全てのパスへの影響を考慮してタイミングエラーを修正することが可能となる。
【００５５】
なお、本発明は前記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内での種々の改良、変更が可能であることは言うまでもない。
例えば、図４に示されるタイミングＥＣＯ処理のフローにおいて、Ｓ５０２、Ｓ５０３では、ｍｅａｎ値感度、ｓｉｇｍａ値感度の高いセルが検索されるが、これに限られるものではない。セットアップスラックに余裕がない場合は、最低限のエラー修正ができるように、ｍｅａｎ値感度、ｓｉｇｍａ値感度の低いセルを検索するようにしてもよい。ケースに応じて処理を切り替えることも当然に考えられる。また、Ｓ５０７の判断がＮｏの場合、挿入したバッファセルが削除され（Ｓ５０９）、駆動能力が１ランク下のバッファセルが挿入される（Ｓ５１０）。しかし、これに限られるものではない。Ｓ５０７の判断がＮｏの場合、１ランク下のｓｉｇｍａ値感度の高いセルに遅延バッファセルが挿入されるようにしてもよい。
【図面の簡単な説明】
【００５６】
【図１】セットアップタイムとホールドタイムとを説明する図である。
【図２】本発明に関連して感度情報を説明するための図である。
【図３】本発明にかかる集積回路のレイアウト処理全体のフロー図の一例である。
【図４】本発明にかかるタイミングＥＣＯ処理のフロー図の一例である。
【図５】本発明にかかるタイミングＥＣＯ処理の対象となる回路の一例である。
【図６】本発明にかかる感度情報Ｆ１の一例である。
【図７】本発明にかかる感度情報テーブルの一例である。
【符号の説明】
【００５７】
Ａ〜Ｊ    セル
Ｂ１〜Ｂ４    バッファセル
ＣＬＫ    クロック
Ｄａｔａ    データ
Ｆ１    感度情報
Ｆ２    回路修正情報
ＦＦ１〜ＦＦ５    フリップフロップ
ＨＴ    ホールドタイム
Ｐ１、Ｐ２    パス
ＳＴ    セットアップタイム
【図１】
2009163490.tif 000003
【図２】
2009163490.tif 000004
【図３】
2009163490.tif 000005
【図４】
2009163490.tif 000006
【図５】
2009163490.tif 000007
【図６】
2009163490.tif 000008
【図７】
2009163490.tif 000009