(57)【特許請求の範囲】
【請求項１】
配置配線設計された半導体集積回路のタイミングを計算機により調整する計算機支援タイミング調整方法であって、該半導体集積回路は、第１フリップフロップの出力が組み合わせ回路を介して第２フリップフロップのデータ入力端に供給されクロックに同期して動作する順序回路を含んでおり、
タイミングエラーの種類及びタイミングエラーパスの情報を含むタイミングエラー情報と、該配置配線設計の下での信号伝播遅延に関係した遅延情報と、各セルの機能及び駆動能力の情報を含む論理情報とが記憶装置に格納されており、該計算機が、
該順序回路がセットアップエラーパスであることが該タイミングエラー情報に含まれている場合に、該遅延情報を参照して該組み合わせ回路中の、最大のセットアップエラー発生原因と推定されるセルを選択し、
該論理情報中の、選択した該セルと同一機能で、選択した該セルより駆動能力が大きいセルを探索し、
選択した該セルを探索した該セルに置換し、
該遅延情報にセルの入力信号鈍り値が含まれ、
該選択の工程では、入力信号鈍り値が最大であるセルの前段のセルを該最大のセットアップエラー発生原因と推定されるセルとして選択する、
ことを特徴とする計算機支援タイミング調整方法。
【請求項２】
上記論理情報では、機能及び入出力点数が同一のセルが同一ファミリに纏められており、
上記計算機が、上記探索の工程では、選択された上記セルと同一のファミリの中から選択することを特徴とする請求項１に記載の計算機支援タイミング調整方法。
【請求項３】
上記タイミングエラー情報は、エラー解消に必要な信号伝播遅延時間の増加又は減少量を含み、
入力手段により、タイミングエラー調整前に下限値を設定しておき、
上記計算機が、該増加又は減少量が該下限値より大きいもののみ上記置換又は挿入によるタイミングエラー調整を行う、
ことを特徴とする請求項１に記載の計算機支援タイミング調整方法。
【請求項４】
上記計算機が、上記置換後に、置換したセルを含む調整対象のセットアップエラーパスの信号伝播遅延時間を算出する工程をさらに有し、
上記セルの選択、探索及び置換の工程、並びに該算出工程を、タイミングエラーが解消されるまで該計算機が繰り返し実行する、
ことを特徴とする請求項１記載の計算機支援タイミング調整方法。
【請求項５】
上記計算機が、上記置換後に、置換したセルを含む調整対象のセットアップエラーパスの信号伝播遅延時間を算出する工程をさらに有し、
該計算機が、上記セルの探索及び置換の工程、並びに該算出工程を、タイミングエラーが解消されるまで繰り返し実行する、
ことを特徴とする請求項１記載の計算機支援タイミング調整方法。
【請求項６】
上記計算機が、上記セルの置換が行われた上記半導体集積回路についてタイミングエラーを検出し、上記タイミングエラー情報及び上記遅延情報を更新して、タイミングエラーが無くなるまで上記置換によるタイミング調整を繰り返すことを特徴とする請求項１記載の計算機支援タイミング調整方法。
【請求項７】
請求項１乃至６のいずれか１つに記載の計算機支援タイミング調整方法を実施するためのプログラムが格納されていることを特徴とする記憶媒体。
【請求項８】
配置配線設計された半導体集積回路のタイミングを調整する計算機支援タイミング調整装置であって、該半導体集積回路は、第１フリップフロップの出力が組み合わせ回路を介して第２フリップフロップのデータ入力端に供給されクロックに同期して動作する順序回路を含んでおり、
タイミングエラーの種類及びタイミングエラーパスの情報を含むタイミングエラー情報と、該配置配線設計の下での信号伝播遅延に関係した遅延情報と、各セルの機能及び駆動能力の情報を含む論理情報とを格納するための記憶装置と、
該順序回路がセットアップエラーパスであることが該タイミングエラー情報に含まれている場合に、該遅延情報を参照して該組み合わせ回路中の、最大のセットアップエラー発生原因と推定されるセルを選択し、該論理情報中の、選択した該セルと同一機能で、選択した該セルより駆動能力が大きいセルを探索し、選択した該セルを探索した該セルに置換する計算機と、
を有し、
該遅延情報にセルの入力信号鈍り値が含まれ、該計算機は、該選択において、入力信号鈍り値が最大であるセルの前段のセルを該最大のセットアップエラー発生原因と推定されるセルとして選択することを特徴とする計算機支援タイミング調整装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、レイアウト設計された論理回路のタイミングを自動又は半自動で調整してタイミングエラー（セットアップエラー及びホールドエラー）を解消する計算機支援タイミング調整方法及び装置並びにこの方法を実施するためのプログラムが格納された記憶媒体に関する。
【０００２】
【従来の技術】
論理回路は、その集積化及び微細化の進展に伴い、ゲート遅延時間に対する配線遅延時間の割合が益々大きくなっている。このため、レイアウト設計された論理回路に基づいて計算機によるタイミング解析が行われている。
従来のタイミング調整では、設計者がタイミングエラーパスのゲート遅延時間及び配線遅延時間を参照し、置換または挿入すべきセルを選択し、その置換または挿入を行っていた。
【０００３】
【発明が解決しようとする課題】
この際、信号鈍り値や、複数のタイミングエラーパスが重なった場合のエラーパス数が考慮がされず、効果的なタイミング調整を行うことができなかった。
また、セルの置換や挿入により、その付近のゲート遅延時間及び配線遅延時間が変化するので、ネットリスト及びレイアウトを更新した後にタイミング解析を再度行って、調整結果を確認する必要があり、このような処理を繰り返しの中で、セルの置換や挿入が設計者により手動で行われるため、タイミング調整に長時間を要していた。
【０００４】
本発明の目的は、このような問題点に鑑み、タイミング調整をより効果的に行って調整時間を短縮することが可能な計算機支援タイミング調整方法及び装置並びに記憶媒体を提供することにある。
【０００５】
本発明の第１態様では、配置配線設計された半導体集積回路のタイミングを調整する計算機支援タイミング調整方法であって、該半導体集積回路は、第１フリップフロップの出力が組み合わせ回路を介して第２フリップフロップのデータ入力端に供給されクロックに同期して動作する順序回路を含んでおり、例えば図４に示す如く、
タイミングエラーの種類及びタイミングエラーパスの情報を含むタイミングエラー情報と、該配置配線設計の下での信号伝播遅延に関係した遅延情報と、各セルの機能及び駆動能力の情報を含む論理情報とを準備し、
該順序回路がセットアップエラーパスであることが該タイミングエラー情報に含まれている場合に、該遅延情報を参照して該組み合わせ回路中の、最大のセットアップエラー発生原因と推定されるセルを選択し、
該論理情報中の、選択した該セルと同一機能で、選択した該セルより駆動能力が大きいセルを探索し、
選択した該セルを探索した該セルに置換し、
該遅延情報にセルの入力信号鈍り値が含まれ、
該選択の工程では、入力信号鈍り値が最大であるセルの前段のセルを選択する。
【０００６】
この計算機支援タイミング調整方法によれば、駆動能力の増加分に対するパス遅延値の減少量の割合が比較的大きくなり、効果的であるので、タイミング調整時間が短縮されるという効果を奏する。
【００２１】
請求項２２の計算機支援タイミング調整方法では、請求項１、６、１２、１３又は１７において、上記論理情報では、機能及び入出力点数が同一のセルが同一ファミリに纏められており、
上記探索の工程では、選択された上記セルと同一のファミリの中から選択する。
【００２４】
本発明の第３態様の計算機支援タイミング調整方法では、上記第１態様において、例えば図２に示す如く、上記タイミングエラー情報は、エラー解消に必要な信号伝播遅延時間の増加又は減少量を含み、
入力手段により、タイミングエラー調整前に下限値が設定されており、
上記計算機が、該増加又は減少量が該下限値より大きいもののみ上記置換又は挿入によるタイミングエラー調整を行う。
【００２５】
この計算機支援タイミング調整方法によれば、該増加又は減少量が該下限値より小さくて直接調整対象外であっても、間接的に調整が行われるので、エラーが解消され得る。また、このようにすることにより、過剰調整が防止され、調整時間が短縮される。
本発明の第４態様の計算機支援タイミング調整方法では、上記第１態様において、上記計算機が、例えば図２１に示す如く、上記置換後に、置換したセルを含む調整対象のセットアップエラーパスの信号伝播遅延時間を算出する工程をさらに有し、
該計算機が、上記セルの選択、探索及び置換の工程、並びに該算出工程を、タイミングエラーが解消されるまで繰り返し実行する。
【００２６】
この計算機支援タイミング調整方法によれば、置換又は挿入毎に、効果的な置換セル又はセル挿入位置が選択されるという効果を奏する。
本発明の第５態様の計算機支援タイミング調整方法では、上記第１態様において、例えば図２２に示す如く、上記計算機が、上記置換後に、置換したセルを含む調整対象のセットアップエラーパスの信号伝播遅延時間を算出する工程をさらに有し、
該計算機が、上記セルの探索及び置換の工程、並びに該算出工程を、タイミングエラーが解消されるまで繰り返し実行する。
【００２７】
この計算機支援タイミング調整方法によれば、置換対象のセル数が請求項２６の場合よりも少なくなって、他のパスへの影響が低減されるという効果を奏する。
【００２８】
本発明の第６態様では、上記第１態様において、例えば図２１又は図２２に示す如く、上記計算機が、上記セルの置換が行われた上記半導体集積回路についてタイミングエラーを検出し、上記タイミングエラー情報及び上記遅延情報を更新して、タイミングエラーが無くなるまで上記置換によるタイミング調整を繰り返す。
この計算機支援タイミング調整方法によれば、タイミング調整が全自動で繰り返し行われる。
【００３０】
本発明の第７態様では、配置配線設計された半導体集積回路のタイミングを調整する計算機支援タイミング調整装置であって、該半導体集積回路は、第１フリップフロップの出力が組み合わせ回路を介して第２フリップフロップのデータ入力端に供給されクロックに同期して動作する順序回路を含んでおり、例えば図１及び図４に示す如く、
タイミングエラーの種類及びタイミングエラーパスの情報を含むタイミングエラー情報と、該配置配線設計の下での信号伝播遅延に関係した遅延情報と、各セルの機能及び駆動能力の情報を含む論理情報とを格納するための記憶装置と、
該順序回路がセットアップエラーパスであることが該タイミングエラー情報に含まれている場合に、該遅延情報を参照して該組み合わせ回路中の、最大のセットアップエラー発生原因と推定されるセルを選択し、該論理情報中の、選択した該セルと同一機能で、選択した該セルより駆動能力が大きいセルを探索し、選択した該セルを探索した該セルに置換する計算機とを有し、
該遅延情報にセルの入力信号鈍り値が含まれ、該計算機は、該選択において、入力信号鈍り値が最大であるセルの前段のセルを選択する。
【００３１】
この計算機支援タイミング調整装置によれば、同種複数のタイミングエラーパスでのタイミングが同時に調整され、調整が効果的に行われので、タイミング調整時間が短縮されるという効果を奏する。
【００３５】
【発明の実施の形態】
以下、図面に基づいて本発明の実施形態を説明する。
［第１実施形態］
図３（Ａ）において、レイアウト設計された半導体集積回路１０内でタイミングエラーは、順序回路１１を単位として生じる。この順序回路１１は、フリップフロップＦＦ１の出力端とフリップフロップＦＦ２の入力端との間に、組み合わせ回路１２が接続されている。クロックＣＬＫの立ち上がりのタイミングでフリップフロップＦＦ１に保持されたデータは、組み合わせ回路１２を通り、次のクロックＣＬＫの立ち上がりのタイミングでフリップフロップＦＦ２に保持される。
【００３６】
フリップフロップＦＦ２の入力ピンＤにデータＤＡＴＡ１が到達してからクロックＣＬＫの立ち上がりまでの時間（セットアップタイム）ＴＳが、図３（Ｂ）に示す如く短過ぎると、製造プロセスのばらつきや半導体チップ温度の変化等によりＴＳが負になって、誤動作が生ずる。この誤動作が生じないことを保証する時間がΔＴＳだけ不足しているとすると、タイミングエラー解析においてΔＴＳ＞０のとき、順序回路１１がセットアップエラーパスであると判定される。この場合、後述のように組み合わせ回路１２中のセルＣＥＬ１又はＣＥＬ２を他のセルで置換することにより、図３（Ｂ）において、データＤＡＴＡ１がＤＡＴＡ２となって、すなわちΔＴＳ＜０となって、タイミングエラーが解消される。ここにセルは、アンドゲートやインバータなどの任意の基本ゲートである。
【００３７】
クロックＣＬＫが立ち上がってから、フリップフロップＦＦ２の入力ピンＤでデータＤＡＴＡ１が次のデータに変化するまでの時間（ホールドタイム）ＴＨが、図３（Ｃ）に示す如く長過ぎると、上記同様に誤動作が生ずる。この誤動作が生じないことを保証する時間がΔＴＨだけ不足しているとすると、タイミングエラー解析においてΔＴＨ＞０のとき、順序回路１１がホールドエラーパスであると判定される。この場合、後述のように組み合わせ回路１２中にセルを挿入することにより、図３（Ｃ）において、データＤＡＴＡ１がＤＡＴＡ３となって、すなわちΔＴＨ＜０となって、タイミングエラーが解消される。セルを置換してもよいが、駆動能力が小さくてエリアが狭いセルを挿入した方が面積上有利であり、以下においては、ホールドエラーパスの場合、セルの挿入のみ考える。
【００３８】
図３（Ａ）に示す如く、セルＣＥＬ１の出力端がセルＣＥＬ３を介してフリップフロップＦＦ３の入力ピンＤに接続されている場合、フリップフロップＦＦ１の出力ピンＱとフリップフロップＦＦ３の入力ピンＤとの間に、セルＣＥＬ１とＣＥＬ３とからなる組み合わせ回路１３が接続された順序回路が構成される。この場合、セルＣＥＬ１は、組み合わせ回路１２と１３とで共通部分となっている。
【００３９】
このような構成において、順序回路１１のみがタイミングエラーパスである場合と、両順序回路がタイミングエラーパスである場合とが考えられる。また、後者の場合に、両タイミングエラーの種類が同一である場合と異なる場合とがある。本第１実施形態では、後述のように、各場合に応じて最も効果的にタイミング調整が行われるように工夫している。
【００４０】
図１は、本発明の第１実施形態に係るタイミング調整システムの概略構成を示す。タイミング調整装置２０は、計算機で構成され、記憶装置に格納されたタイミングエラー情報ファイル２１、遅延情報ファイル２２及び論理情報ファイル２３の内容と、キーボード等の入力装置２４からの入力値とに基づいて、タイミング調整を行い、その結果を表示装置２５に表示させる。タイミングエラー情報ファイル２１は、遅延情報ファイル２２及び論理情報ファイル２３に基づいて、公知のタイミング解析装置２６により生成される。
【００４１】
タイミングエラー情報ファイル２１の内容は、図３（Ａ）の回路に付した符号を使用すると、例えば次の通りである。
ＥＲＲＯＲ  ＴＹＰＥ：ＳＥＴＵＰ
ＳＴＡＲＴ  ＰＩＮ  ：ＦＦ１．Ｑ
ＥＮＤ  ＰＩＮ      ：ＦＦ２．Ｄ
ＤＥＬＴＡ          ：１００ｐｓ
ＥＲＲＯＲ  ＴＹＰＥ：ＨＯＬＤ
ＳＴＡＲＴ  ＰＩＮ  ：ＦＦ１．Ｑ
ＥＮＤ  ＰＩＮ      ：ＦＦ３．Ｄ
ＤＥＬＴＡ          ：１０ｐｓ
このリストの内容は、次の通りである。第１のレコードは、フリップフロップＦＦ１の出力ピンＱからフリップフロップＦＦ２の入力ピンＤまでがセットアップエラーパスであり、ΔＴＳ＝１００ｐｓであることを示し、第２のレコードは、フリップフロップＦＦ１の出力ピンＱからフリップフロップＦＦ３の入力ピンＤまでがホールドエラーパスであり、ΔＴＨ＝１０ｐｓであることを示している。
【００４２】
セットアップエラーパス中の組み合わせ回路１２の構成及びホールドエラーパス中の組み合わせ回路１３の構成は、論理情報ファイル２３内のネットリストから知得することができる。この処理を省略するために、タイミングエラー情報ファイル２１の内容を例えば次のようにしてもよい。
0004475691.tif 000002
第１のレコード中のエラーパスは、フリップフロップＦＦ１の出力ピンＱ→セルＣＥＬ１の入力ピンＡ→セルＣＥＬ１の出力ピンＸ→セルＣＥＬ２の入力ピンＡ→セルＣＥＬ２の出力ピンＸ→フリップフロップＦＦ２の入力ピンＤであり、第２のレコード中のエラーパスは、フリップフロップＦＦ１の出力ピンＱ→セルＣＥＬ１の入力ピンＡ→セルＣＥＬ１の出力ピンＸ→セルＣＥＬ３の入力ピンＡ→セルＣＥＬ３の出力ピンＸ→フリップフロップＦＦ３の入力ピンＤである。
【００４３】
遅延情報ファイル２２には、レイアウト設計された半導体集積回路１０についてのゲート入力の信号鈍り値、ゲート遅延時間及びゲート間の配線遅延時間の計算結果が含まれている。信号鈍り値は例えば、立ち上がり時間、立ち下がり時間又は両時間の平均値等である。
論理情報ファイル２３には、ネットリスト及びセルデータが含まれており、セルデータにはセルの駆動能力及び所定条件下でのゲート遅延時間である基本遅延量が含まれている。
【００４４】
次に、タイミング調整装置２０による処理を、図２を参照して説明する。以下、括弧内は図中のステップ識別符号である。
（Ｓ１）調整対象エラーパスの不足時間ΔＴの下限値ΔＴminを、入力装置２４から入力する。ここに不足時間ΔＴは、上記ΔＴＳ又はΔＴＨである。例えばΔＴ＝２０ｐｓの場合、上述のセットアップエラーパスは調整対象となるが、ホールドエラーパスは調整対象外である。調整対象外となっても、後述のように間接的にエラーが解消され得る。ΔＴminはこれを考慮したものであり、その意味は後で明らかになる。
【００４５】
（Ｓ２）タイミングエラー情報ファイル２１から、次のタイミングエラーパスを１つ読み込む。読み込んだタイミングエラーパス（着目タイミングエラーパス）について以下のような調整処理が行われる。
（Ｓ３）着目タイミングエラーパスが有ればステップＳ４へ進み、無ければステップＳ９へ進む。
【００４６】
（Ｓ４）着目タイミングエラーパスについて、ΔＴ＜ΔＴminであれば、ステップＳ２へ戻り、そうでなければステップＳ５へ進む。
（Ｓ５〜Ｓ７）図３（Ａ）についての上述の分類にしたがって、セル選択及び置換、又は、セル挿入位置選択及び挿入の処理を行う。すなわち、着目タイミングエラーパスがセットアップエラーでタイミングエラーパスに重なりがなければステップＳＳ１の処理を行い、重なりがあれば、すなわちマルチエラーパスであれば、ステップＳＳ２の処理を行い、着目タイミングエラーパスがホールドエラーでタイミングエラーパスに重なりがなければステップＳＨ１の処理を行い、重なりがあればステップＳＨ２の処理を行う。これらの処理は、後に詳述する。
【００４７】
（Ｓ８）セルの置換又は挿入に対応して、論理情報ファイル２３内のネットリストを更新する。但し、元のネットリストが必要になる場合も考えられるので、元のネットリストは保存しておき、必要でなくなったときに削除する。次に、ステップＳ２へ戻る。
（Ｓ９）例えば次のような調整結果が遅延情報ファイル２２に表示される。
【００４８】
0004475691.tif 000003
このリストの内容は、次の通りである。
【００４９】
第１のレコードは、フリップフロップＦＦ１の出力ピンＱからフリップフロップＦＦ２の入力ピンＤまでがセットアップエラーパスであり、ΔＴＳ＝１００ｐｓ、パス遅延値（遅延値は正確には信号伝播遅延時間、以下同様）ＤＬＴ＝１５００ｐｓであったものが、エラーパス中のセルＡ（論理情報ファイル２３中のセル名ａ１ｌ）を論理情報ファイル２３中のセルａ１ｈで置換することにより、ＤＬＴ＝１４１０ｐｓとなって、不足時間ΔＴＳが９０減少し、しかしながらΔＴＳ＞０であるのでタイミングエラーが解消していないことを示している。第２のレコードは、フリップフロップＦＦ３の出力ピンＱからフリップフロップＦＦ４の入力ピンＤまでがホールドエラーパスであり、ΔＴＨ＝５０ｐｓ、ＤＬＴ＝１０００ｐｓであったものが、セルＢの出力ピンＸを挿入セルＩＮＳＣ（論理情報ファイル２３中のセル名ａ１ｍ）の入力ピンＡに接続したことにより、ＤＬＴ＝１１００ｐｓとなって、不足時間ΔＴＨが１００増加し、ΔＴＨ＞０であるのでタイミングエラーが解消したことを示している。挿入セルＩＮＳＣの接続先は、ネットリストから分かるので記載されていない。
【００５０】
半導体集積回路１０中にタイミングエラーパスが３００あったものが、図２の処理により、１０個のセルが置換され１００個のセルが挿入され、結果として、２５０のタイミングエラーが解消され、残り５０のタイミングエラーパスのうち、４０は１≦ΔＴ≦１００ｐｓであり、１０は１０１≦ΔＴ≦２００ｐｓであることを示している。
【００５１】
次に、図４（Ａ）〜図４（Ｃ）を参照して、図２中のステップＳＳ１を詳説する。
（Ｓ１０）着目セットアップエラーパス中の入力信号鈍り値を遅延情報ファイル２２から読み取り、このパス中、入力信号鈍り値の最も大きなセルの前段のセルを選択する。
【００５２】
例えば図４（Ｂ）に示す如く、フリップフロップＦＦ１の出力ピンＱがセルＣ１、Ｃ２及びＣ３を介してフリップフロップＦＦ２の入力ピンＤに接続された回路がセットアップエラーパスであり、セルＣ１、Ｃ２及びＣ３の入力信号鈍り値がそれぞれ９４ｐｓ、１１０ｐｓ及び８２ｐｓである場合、セルＣ２の前段のセルＣ１が選択される。
【００５３】
（Ｓ１１）論理情報ファイル２３内の、セルＣ１と同一ファミリーで駆動能力がセルＣ１に最も近くかつ大きいセルＣ１Ａを探索し、セルＣ１をＣ１Ａに置換する。ここで、同一ファミリーとは、機能及び入力出力点数が同一であるセルの集合であり、論理情報ファイル２３内のセルデータ（セル固有のデータ）はファミリーに分類されている。
【００５４】
図４（Ｃ）は、この置換後の回路を示す。太線は、置換したセルを示している（以下同様）。図４（Ｂ）及び（Ｃ）には、ゲート（セル）の遅延値とその入力側配線の遅延値との和ＤＬ（以下、セルの遅延値ＤＬと略記する。）が、各セルについて示されており、この置換によりそのセルと次段のセルの遅延値ＤＬが減少して、パス遅延値ＤＬＴが例えば８４ｐｓ減少する。
【００５５】
このような置換を行えば、駆動能力の増加分に対するパス遅延値ＤＬＴの減少量の割合が比較的大きくなり、効果的である。
次に、図５〜図９（Ｂ）を参照して、図２中のステップＳＳ２を詳説する。図６（Ａ）〜図９（Ｂ）において、ＦＦ１〜ＦＦ４はフリップフロップであり、Ｃ１〜Ｃ５、Ｃ１Ａ及びＣ３Ａはセルである。
【００５６】
（Ｓ２０）タイミングエラー情報ファイル２１を参照し、着目セットアップエラーパスが、他のセットアップエラーパスと重なっている場合にはステップＳ２１へ進み、他のホールドエラーパスと重なっている場合にはステップＳ２８へ進む。
（Ｓ２１）タイミングエラー情報ファイル２１を参照し、着目セットアップエラーパス中の各セルについて、セットアップエラーパス数ＮＳを計数する。
【００５７】
例えば図６（Ａ）において、フリップフロップＦＦ１からＦＦ２までが着目セットアップエラーパスＮＳ１であり、これにフリップフロップＦＦ１からＦＦ３までのセットアップエラーパスＮＳ２とフリップフロップＦＦ１からＦＦ４までのセットアップエラーパスＮＳ３とが部分的に重なっている場合、セットアップエラーパスＮＳ１中のセルＣ１、Ｃ２及びＣ３の各々について、セットアップエラーパス数ＮＳを計数する。この場合、セルＣ１、Ｃ２及びＣ３についての計数値はそれぞれ３、２及び１となる。
【００５８】
（Ｓ２２）セットアップエラーパス数ＮＳが最大のセルを置換対象として選択する。図６（Ａ）の場合には、セルＣ１が選択される。
（Ｓ２３）選択されたセルが１つであればステップ２４へ進み、複数であればステップＳ２５へ進む。
（Ｓ２４）選択したセルを、上記ステップＳ１１同様にして置換する。
【００５９】
これにより、図６（Ａ）のセルＣ１がセルＣ１Ａに置換されて図６（Ｂ）のようになる。セルＣ１及びＣ２の遅延値ＤＬはそれぞれ４８ｐｓ及び１５２ｐｓであり、この置換によりそれぞれ２４ｐｓ及び９０ｐｓに変化し、パス遅延値ＤＬＴの変化量ΔＤＬＴは−８６ｐｓになる。セルＣ１をＣ１Ａに置換することにより、セットアップエラーパスＮＳ１、ＳＥ２及びＳＥ３でのタイミングが同時に調整されたことになり、調整が効果的に行われる。
【００６０】
すなわち、セットアップエラーパスＮＳ２及びＳＥ３は着目タイミングエラーパスではないが、間接的に調整が行われるので、ΔＴがΔＴ＜ΔＴminと小さければ直接調整しなくても、エラーが解消され得る。また、このようにすることにより、過剰調整が防止され、調整時間が短縮される。
次に、図２のステップＳ８へ進む。
【００６１】
（Ｓ２５）選択したセルが複数で、着目セットアップエラーパスの上流側に位置している場合にはステップＳ２６へ進み、下流側に位置している場合にはステップＳ２７へ進む。
（Ｓ２６）着目セットアップエラーパス中の最も上流側のセルを選択する。
例えば図７（Ａ）において、セルＣ１及びＣ２をステップＳ２２で選択した場合、最も上流側のセルＣ１を選択する。セルＣ１及びＣ２の遅延値ＤＬがそれぞれ４８ｐｓ及び１５２ｐｓであった場合、次のステップＳ２４でセルＣ１をＣ１Ａに置換することにより図７（Ｂ）に示す如く、セルＣ１Ａ及びＣ２の遅延値ＤＬがそれぞれ２４ｐｓ及び９０ｐｓとなり、ΔＤＬＴ＝−８６ｐｓとなる。
【００６２】
このようなセルの選択及び置換により、セットアップエラーパスＮＳ１とＳＥ２の共通部分のみの遅延値ＤＬが減少するので、複数のセットアップエラーパスでのタイミングをより効果的に同時に調整することができる。
（Ｓ２７）着目セットアップエラーパス中の最も下流側のセルを選択する。
例えば図８（Ａ）において、セルＣ２及びＣ３をステップＳ２２で選択した場合、最も下流側のセルＣ３を選択する。セルＣ２及びＣ３の遅延値ＤＬがそれぞれ２５ｐｓ及び４８ｐｓであった場合、次のステップＳ２４でセルＣ３をＣ３Ａに置換することにより図８（Ｂ）に示す如く、セルＣ２及びＣ３Ａの遅延値ＤＬがそれぞれ３６ｐｓ及び２４ｐｓとなり、ΔＤＬＴ＝−１３ｐｓとなる。
【００６３】
このようなセルの選択及び置換により、セットアップエラーパスＮＳ１とＳＥ２の共通部分のみの遅延値ＤＬが減少するので、複数のセットアップエラーパスでのタイミングをより効果的に同時に調整することができる。
（Ｓ２８）タイミングエラー情報ファイル２１を参照し、着目セットアップエラーパス中の各セルについて、ホールドエラーパス数ＮＨを計数する。
【００６４】
例えば図９（Ａ）において、フリップフロップＦＦ１からＦＦ２までが着目セットアップエラーパスＮＳ１であり、これにフリップフロップＦＦ１からＦＦ３までのホールドエラーパスＨＥ１とフリップフロップＦＦ１からＦＦ４までのホールドエラーパスＨＥ２とが部分的に重なっている場合、セットアップエラーパスＮＳ１中のセルＣ１、Ｃ２及びＣ３の各々について、ホールドエラーパス数ＮＨを計数する。この場合、セルＣ１、Ｃ２及びＣ３の計数値はそれぞれ２、１及び０となる。
【００６５】
（Ｓ２２）ホールドエラーパス数ＮＨが最小のセルを置換対象として選択する。
図９（Ａ）の場合には、セルＣ３が選択される。次のステップＳ２４でセルＣ３をセルＣ３Ａに置換することにより図９（Ｂ）に示す如く、セルＣ２及びＣ３の遅延値ＤＬがそれぞれ３６ｐｓ及び２４ｐｓとなり、ΔＤＬＴ＝−１３ｐｓとなる。
【００６６】
このようなセルの選択及び置換により、主に着目セットアップエラーパスＮＳ１のみでタイミング調整され、別途調整されるホールドエラーパスの不足時間ΔＴＨの増加を０又は少なくすることができ、複雑なマルチタイミングエラーパスでのタイミングを効果的に調整することができる。
次に、図１０〜図１４（Ｂ）を参照して、図２中のステップＳＨ２を詳説する。図１１（Ａ）〜図１４（Ｂ）において、ＦＦ１〜ＦＦ４はフリップフロップであり、Ｃ１〜Ｃ６はセルである。
【００６７】
（Ｓ３０）タイミングエラー情報ファイル２１を参照し、着目ホールドエラーパスが、他のホールドエラーパスと重なっている場合にはステップＳ３１へ進み、他のセットアップエラーパスと重なっている場合にはステップＳ３８へ進む。
（Ｓ３１）タイミングエラー情報ファイル２１を参照し、着目ホールドエラーパス中の各セルについて、ホールドエラーパス数ＮＨを計数する。
【００６８】
例えば図１１（Ａ）において、フリップフロップＦＦ１からＦＦ２までが着目ホールドエラーパスＨＥ１であり、これにフリップフロップＦＦ１からＦＦ３までのホールドエラーパスＨＥ２とフリップフロップＦＦ１からＦＦ４までのホールドエラーパスＨＥ３とが部分的に重なっている場合、ホールドエラーパスＨＥ１中のセルＣ１、Ｃ２及びＣ３の各々について、ホールドエラーパス数ＮＨを計数する。この場合、セルＣ１、Ｃ２及びＣ３の計数値はそれぞれ３、２及び１となる。
【００６９】
（Ｓ３２）ホールドエラーパス数ＮＨが最大のセルを置換対象として選択する。図１１（Ａ）の場合には、セルＣ１が選択される。
（Ｓ３３）選択されたセルが１つであればステップ３４へ進み、複数であればステップＳ３５へ進む。
（Ｓ３４）選択したセルの入力側又は出力側、例えば入力側の配線に、非反転ゲート、例えば、インバータが２個縦続接続されたセル又は２入力オアゲートの一方の入力を‘０’に固定したセルを論理情報ファイル２３から読み取って挿入する。
【００７０】
これにより、図１１（Ａ）のセルＣ１の入力側配線にセルＣ６が挿入されて図１１（Ｂ）のようになる。図１１（Ｂ）中の太線は、挿入されたセルである（以下、同様）。セルＣ１の遅延値ＤＬは４８ｐｓであり、この挿入後のセルＣ６及びセルＣ１の遅延値ＤＬがそれぞれ３０ｐｓ及び４０ｐｓになって、パス遅延量パス遅延値ＤＬＴの変化量ΔＤＬＴは２２ｐｓになる。セルＣ６の挿入により、ホールドエラーパスＨＥ１、ＨＥ２及びＨＥ３でのタイミングが同時に調整されたことになり、調整が効果的に行われる。
【００７１】
すなわち、ホールドエラーパスＨＥ２及びＨＥ３は着目タイミングエラーパスではないが、間接的にタイミング調整が行われるので、ΔＴがΔＴ＜ΔＴminとちいさければ直接調整しなくても、エラーが解消され得る。また、このようにすることにより、過剰調整が防止され、調整時間が短縮される。
次に、図２のステップＳ８へ進む。
【００７２】
（Ｓ３５）選択したセルが複数で、着目ホールドエラーパスの上流側に位置している場合にはステップＳ３６へ進み、下流側に位置している場合にはステップＳ３７へ進む。
（Ｓ３６）着目ホールドエラーパス中の最も上流側のセルを選択する。
例えば図１２（Ａ）において、セルＣ１及びＣ２をステップＳ３２で選択した場合、最も上流側のセルＣ１を選択する。セルＣ１の遅延値ＤＬが４８ｐｓであった場合、次のステップＳ３４でセルＣ１の入力側に非反転ゲートのセルＣ５を挿入することにより図１２（Ｂ）に示す如く、セルＣ５及びセルＣ１の遅延値ＤＬが３０ｐｓ及び４０ｐｓとなり、ΔＤＬＴ＝２２ｐｓとなる。
【００７３】
このようなセル挿入により、ホールドエラーパスＨＥ１とホールドエラーパスＨＥ２の共通部分のみの遅延値ＤＬが増加するので、複数のセットアップエラーパスでのタイミングをより効果的に同時に調整することができる。
（Ｓ３７）着目ホールドエラーパス中の最も下流側のセルを選択する。
例えば図１３（Ａ）において、セルＣ２及びＣ３をステップＳ３２で選択した場合、最も下流側のセルＣ３を選択する。セルＣ２及びＣ３の遅延値ＤＬがいずれも３４ｐｓであった場合、次のステップＳ３４でセルＣ３の入力側配線に非反転ゲートのセルＣ５を挿入することにより図８（Ｂ）に示す如く、セルＣ２、Ｃ５及びＣ３の遅延値ＤＬがそれぞれ３１ｐｓ、４０ｐｓ及び１３ｐｓとなり、ΔＤＬＴ＝１６ｐｓとなる。
【００７４】
このようなセル挿入により、ホールドエラーパスＨＥ１とＨＥ２の共通部分のみの遅延値ＤＬが増加するので、複数のセットアップエラーパスでのタイミングをより効果的に同時に調整することができる。
（Ｓ３８）着目ホールドエラーパス中の各セルについて、セットアップエラーパス数ＮＳを計数する。
【００７５】
例えば図１４（Ａ）において、フリップフロップＦＦ１からＦＦ２までが着目ホールドエラーパスＨＥ１であり、これにフリップフロップＦＦ１からＦＦ３までのセットアップエラーパスＮＳ１とフリップフロップＦＦ１からＦＦ４までのセットアップエラーパスＮＳ２とが部分的に重なっている場合、ホールドエラーパスＨＥ１中のセルＣ１、Ｃ２及びＣ３の各々について、セットアップエラーパス数ＮＳを計数する。この場合、セルＣ１、Ｃ２及びＣ３の計数値はそれぞれ２、１及び０となる。
【００７６】
（Ｓ３２）セットアップエラーパス数ＮＳが最小のセルを選択する。
図９（Ａ）の場合には、セルＣ３が選択される。次のステップＳ３４でセルＣ３の入力側又は出力側、例えば入力側の配線に、非反転ゲートのセルＣ６を挿入することにより図１４（Ｂ）に示す如く、セルＣ２、Ｃ６及びＣ３の遅延値ＤＬがそれぞれ３１ｐｓ、４０ｐｓ及び１３ｐｓとなり、ΔＤＬＴ＝１６ｐｓとなる。
【００７７】
このようなセル挿入により、主に着目ホールドエラーパスＨＥ１のみでタイミング調整され、別途調整されるセットアップエラーパスの不足時間ΔＴＳの増加を０又は少なくすることができ、複雑なマルチタイミングエラーパスでのタイミングを効果的に調整することができる。
図２中のステップＳＨ１では、着目ホールドエラーパス中に非反転ゲートのセルを挿入する。
【００７８】
この場合、着目ホールドエラーパスが、エラーでないパスとマルチパスになっているときには、エラーでないパスがセットアップエラーである場合と同様に、着目ホールドエラーパス中の共通部分でない部分にセルを挿入することにより、エラーでないパスに対する影響を無くし又は少なくする。これは、図２のステップＳ７においてマルチエラーパスであるかどうかで分岐する替わりにマルチパスであるかどうかにより分岐し、図１０において、エラーでないパスを異種のエラーパスと同様に取り扱うようにしても、同じ結果が得られる。これらの点は、図２中のステップＳＳ１についても同様である。
【００７９】
［第２実施形態］
図１５（Ａ）〜図１５（Ｃ）はそれぞれ本発明の第２実施形態の、図４（Ａ）〜図４（Ｃ）に対応した図である。
（Ｓ１０Ａ）着目セットアップエラーパス中の配線遅延値を遅延情報ファイル２２から読み取り、このパス中、出力側配線遅延値が最も大きいセルを選択する。
【００８０】
例えば図１５（Ｂ）に示す如く、フリップフロップＦＦ１の出力ピンＱがセルＣ１、Ｃ２及びＣ３を介してフリップフロップＦＦ２の入力ピンＤに接続された回路がセットアップエラーパスであり、セルＣ１、Ｃ２及びＣ３の出力側配線遅延値がそれぞれ２ｐｓ、１０ｐｓ及び１ｐｓである場合、セルＣ２が選択される。
【００８１】
次に、図４（Ａ）のステップＳ１１と同じ処理を実行する。
図１５（Ｃ）は、置換後の回路を示す。例えば、置換対象のセルＣ２及び置換セルＣ２Ａの駆動能力（駆動可能な入力負荷容量の上限値）はそれぞれ４００pF及び５００pFである。図１５（Ｂ）及び（Ｃ）には配線遅延値が示されており、この置換によりその前後のセルの遅延値ＤＬが減少して、パス遅延値ＤＬＴが例えば３ｐｓ減少する。
【００８２】
このような置換を行えば、駆動能力の増加分に対するパス遅延値ＤＬＴの減少量の割合が比較的大きくなり、効果的である。
［第３実施形態］
図１６（Ａ）〜図１６（Ｃ）はそれぞれ本発明の第３実施形態の、図４（Ａ）〜図４（Ｃ）に対応した図である。
【００８３】
（Ｓ１０Ｂ）着目セットアップエラーパス中のゲート遅延値を遅延情報ファイル２２から読み取り、このパス中、ゲート遅延値が最も大きいセルのセルを選択する。
例えば図１６（Ｂ）に示す如く、フリップフロップＦＦ１の出力ピンＱがセルＣ１、Ｃ２及びＣ３を介してフリップフロップＦＦ２の入力ピンＤに接続された回路がセットアップエラーパスであり、セルＣ１、Ｃ２及びＣ３のゲート遅延値がそれぞれ２４ｐｓ、４７ｐｓ及び１４６ｐｓである場合、セルＣ２が選択される。
【００８４】
次に、図４（Ａ）のステップＳ１１と同じ処理を実行する。
図１６（Ｃ）は、置換後の回路を示す。例えば、置換対象のセルＣ２及び置換セルＣ２Ａの駆動能力はそれぞれ２００及び５００である。図１６（Ｂ）及び（Ｃ）にはゲート遅延値が示されており、この置換によりその後段のセルの遅延値ＤＬが大きく減少して、パス遅延値ＤＬＴが例えば７５ｐｓ減少する。
【００８５】
このような置換を行えば、駆動能力の増加分に対するパス遅延値ＤＬＴの減少量の割合が比較的大きくなり、効果的である。
［第４実施形態］
図１７は、本発明の第４実施形態の、図５に対応したフローチャートを示す。
図１８（Ａ）は図１７中のステップＳ４０〜Ｓ４６の説明図であり、図１８（Ｂ）は図１８（Ａ）の場合の図１７中のステップ４７の説明図である。図１８（Ａ）及び（Ｂ）において、ＦＦ１〜ＦＦ４はフリップフロップであり、Ｃ１〜Ｃ８及びＣ２Ａはセルである。
【００８６】
（Ｓ４０）着目セットアップエラーパス内のセルについて、入力信号鈍り値が最大のセルの前段のセルを選択する。
例えば、図１８（Ａ）において、フリップフロップＦＦ１からＦＦ２までが着目セットアップエラーパスＮＳ１である場合、セルＣ１〜Ｃ４のうちＣ２〜Ｃ４の入力信号鈍り値は互いに等しく最大であり、その各々の前段のセルＣ１〜Ｃ３を選択する。
【００８７】
（Ｓ４１）選択したセルが、複数の場合にはステップＳ４２へ進み、１つの場合にはステップＳ４７へ進む。
（Ｓ４２）着目セットアップエラーパスの各セルについて、セットアップエラーパス数ＮＳを計数する。
（Ｓ４３）Ｓ４１で選択したセルの内、セットアップエラーパス数ＮＳが最大のセルを選択する。
【００８８】
図１８（Ａ）では、フリップフロップＦＦ１からＦＦ３までがセットアップエラーパスＮＳ２であり、セットアップエラーパス数ＮＳが最大となるのはセルＣ１及びＣ２である。
（Ｓ４４）ステップＳ４３で選択したセルが、複数の場合にはステップＳ４５へ進み、１つの場合にはステップＳ４７へ進みむ。
【００８９】
（Ｓ４５）着目セットアップエラーパスの各セルについて、ホールドエラーパス数ＮＨを計数する。
（Ｓ４６）ステップＳ４３で選択したセルの内、ホールドエラーパス数ＮＨが最小のセルを選択する。
図１８（Ａ）では、フリップフロップＦＦ１からＦＦ４までがホールドエラーパスＨＥ１であり、セルＣ２が選択される。
【００９０】
（Ｓ４７）図５のステップＳ２５〜Ｓ２７及びＳ２４の処理を実行する。
これにより、図１８（Ａ）に示すセルＣ１、Ｃ２及びＣ３の遅延値ＤＬがそれぞれ２５ｐｓ、２８ｐｓ及び１５２ｐｓであったものが、セルＣ２をセルＣ２Ａに置換することにより、図１８（Ｂ）に示す如くセルＣ１、Ｃ２Ａ及びＣ３の遅延値ＤＬがそれぞれ３６ｐｓ、２４ｐｓ及び９０ｐｓになって、ΔＤＬＴ＝−７５ｐｓとなる。この置換により、セットアップエラーパスＮＳ１のみならずセットアップエラーパスＮＳ２のパス遅延値も減少し、さらにホールドエラーパスＨＥ１のパス遅延値が増加するので、セットアップエラーパスＮＳ１でのタイミングを調整することによりセットアップエラーパスＮＳ２及びホールドエラーパスＨＥ１でのタイミングも調整されることになる。
【００９１】
すなわち、セル選択に優先順位を付けることにより、置換対象のセルが１つに絞られて、効果的な調整が行われる。
図２のステップＳ４でΔＴ＜Δminと判定されてセットアップエラーパスＮＳ２又はホールドエラーパスＨＥ１が調整対象外とされても、セットアップエラーパスＮＳ１でのタイミング調整によりセットアップエラーパスＮＳ２及びホールドエラーパスＨＥ１のエラーが解消することもあるので、図２の全体の処理時間が短縮され、かつ、過剰調整が防止される。
【００９２】
［第５実施形態］
図１９は、本発明の第５実施形態の、図１０に対応したフローチャートを示す。
図２０（Ａ）は図１９中のステップＳ５２〜Ｓ４６の説明図であり、図２０（Ｂ）は図１９（Ａ）の場合の、図１９中のステップ５７の説明図である。図２０（Ａ）及び（Ｂ）において、ＦＦ１〜ＦＦ４はフリップフロップであり、Ｃ１〜Ｃ６はセルである。
【００９３】
（Ｓ５２）着目ホールドエラーパスの各セルについて、セットアップエラーパス数ＮＳを計数する。
（Ｓ５３）ステップＳ５１で選択したセルの内、セットアップエラーパス数ＮＳが最小のセルを選択する。
図２０（Ａ）では、フリップフロップＦＦ１からＦＦ４までがセットアップエラーパスＮＳ１であり、セットアップエラーパス数ＮＳが最小となるのはセルＣ２及びＣ３である。
【００９４】
（Ｓ５４）ステップＳ５３で選択したセルが、複数の場合にはステップＳ５５へ進み、１つの場合にはステップＳ５７へ進む。
（Ｓ５５）着目ホールドエラーパスの各セルについて、ホールドエラーパス数ＮＨを計数する。
（Ｓ５６）ステップＳ５３で選択したセルの内、ホールドエラーパス数ＮＨが最大のセルを選択する。
【００９５】
図２０（Ａ）では、フリップフロップＦＦ１からＦＦ２までがホールドエラーパスＨＥ１、フリップフロップＦＦ１からＦＦ３までがホールドエラーパスＨＥ２であり、セルＣ２が選択される。
（Ｓ５７）図１０のステップＳ３５〜Ｓ３７及びＳ３４の処理を実行する。
これにより、図２０（Ａ）に示すセルＣ１、Ｃ２及びＣ３の遅延値ＤＬがそれぞれ２５ｐｓ、４８ｐｓ及び１５２ｐｓであったものが、セルＣ２の入力側にセルＣ６を挿入することにより、図２０（Ｂ）に示す如くセルＣ１、Ｃ６及びＣ２の遅延値ＤＬがそれぞれ２４ｐｓ、３０ｐｓ及び４０ｐｓになって、ΔＤＬＴ＝２１ｐｓとなる。この置換により、ホールドエラーパスＨＥ１のみならずホールドエラーパスＨＥ２の遅延値も増加し、さらにセットアップエラーパスＮＳ１の遅延値が減少するので、ホールドエラーパスＨＥ１でのタイミングを調整することによりホールドエラーパスＨＥ２及びセットアップエラーパスＮＳ１でのタイミングも調整されることになる。
【００９６】
すなわち、セル選択に優先順位を付けることにより、セル挿入位置が１箇所に絞られ、効果的なタイミング調整が行われる。
図２のステップＳ４でΔＴ＜Δminと判定されてホールドエラーパスＨＥ２又はセットアップエラーパスＮＳ１が調整対象外とされても、ホールドエラーパスＨＥ１でのタイミング調整によりホールドエラーパスＨＥ２及びセットアップエラーパスＮＳ１のエラーが解消することもあるので、図２の全体の処理時間が短縮され、かつ、過剰調整が防止される。
【００９７】
［第６実施形態］
図２１（Ａ）は、本発明の第６実施形態のタイミング調整手順の一部を示すフローチャートである。
ステップＳ６０には、図２のステップＳ６又はＳ７から移る。
（Ｓ６０）図２のステップＳＳ１、ＳＳ２、ＳＨ１又はＳＨ２の処理を実行して着目タイミングエラーパス中の置換対象のセルを選択し又はセル挿入位置を決定する。例えば図２１（Ｂ）において、フリップフロップＦＦ１からＦＦ２までのパスがセットアップエラーパスで、セルＣ１〜Ｃ３のうちセルＣ１が選択される。
【００９８】
（Ｓ６１）ステップＳＳ１、ＳＳ２、ＳＨ１又はＳＨ２について説明した上述の方法により、セルを置換し又は挿入する。例えば図２１（Ｂ）のセルＣ１がセルＣ１Ａに置換されて、図２１（Ｂ）に示す如くなる。
（Ｓ６２）図２のステップＳ８と同じ処理を実行する。
（Ｓ６３）着目パスの遅延時間を計算する。
【００９９】
まず、置換又は挿入したセルとその前後の１つずつのセルとこれらのセルのセル間配線について遅延時間を計算する。例えば図２１（Ｃ）の場合、着目パス内でのセルＣ１Ａ及びＣ２のゲート遅延時間並びにセルＣ１Ａの入力側及び出力側の配線遅延時間を計算する。これにより、図２１（Ｂ）のセルＣ１及びＣ２の遅延値ＤＬ＝１６８ｐｓ及び１６３ｐｓが、図２１（Ｃ）のセルＣ１Ａ及びＣ２の遅延値ＤＬ＝１４３ｐｓ及び１０４ｐｓになり、これにセルＣ３の遅延値ＤＬ=１３２ｐｓを加算して、着目パス遅延値ＤＬＴが３７９ｐｓになる。この場合、ＤＬＴ＝−８４ｐｓである。
【０１００】
（Ｓ６４）ΔＴ≧０であればステップＳ６０へ戻り、ΔＴ＜０、すなわちタイミングエラーが解消していれば、図２のステップＳ２へ進む。
図２１（Ｄ）は、２回目でセルＣ２がセルＣ２Ａに置換された状態を示す。
この方法によれば、置換又は挿入毎に、効果的な置換セル又はセル挿入位置が選択される。
【０１０１】
［第７実施形態］
図２２（Ａ）は、本発明の第７実施形態のタイミング調整手順の一部を示すフローチャートである。
この形態では、ステップＳ６４からステップＳ６１に戻ることにより、ステップＳ６０で選択されたセル又は決定されたセル挿入位置に対し、繰り返しループ毎に、ステップＳ６１でセルの置換又は挿入を行う。他の点は、第６実施形態と同一である。
【０１０２】
例えば図２２（Ｂ）に示す回路がセットアップエラーパスで、置換すべきセルとしてセルＣ２が選択されると、１回目で図２２（Ｃ）に示す如くセルＣ２がセルＣ２Ａに置換され、２回目で図２２（Ｄ）に示す如く同じ位置のセルＣ２ＡがセルＣ２Ｂに置換される。
この方法によれば、置換対象のセル数が第６実施形態の場合よりも少なくなって、他のパスへの影響が低減される。
【０１０３】
［第８実施形態］
図２３は、本発明の第８実施形態のタイミング調整手順を示す概略フローチャートである。
（Ｓ７０）図２のタイミング調整を行う。これにより、セルの置換又は挿入に伴う更新された論理情報ファイル２３が得られる。
【０１０４】
（Ｓ７１）論理情報ファイル２３の変更内容に基づいて、レイアウト設計された半導体集積回路１０を更新する。
（Ｓ７２）更新されたレイアウト及び論理情報ファイル２３の変更内容に基づいて、遅延情報ファイル２２を更新する。
（Ｓ７３）更新された遅延情報ファイル２２及び論理情報ファイル２３の内容に基づいて、タイミング解析装置２６によりタイミング解析を行う。
【０１０５】
（Ｓ７４）タイミングエラー情報ファイル２１中にΔＴ≧ΔＴminなるタイミングエラーが残っていれば、ステップＳ７０へ戻り、残っていなければ処理を終了する。
本第８実施形態によれば、タイミング調整が全自動で繰り返し行われる。
ステップ７４において、例えばタイミングエラー数が前回と同一の場合に、自動的にΔＴmaxを減少させ又は０にしてもよい。
【０１０６】
［第９実施形態］
図２４（Ａ）は、本発明の第９実施形態の、挿入すべきセルの選択手順を示すフローチャートである。
ステップＳ８０には、図２のステップＳ７で肯定判定又は否定判定されてから入る。
【０１０７】
（Ｓ８０）図１０又は図１９の方法により、セル挿入位置を決定する。
例えば図２４（Ｂ）において、フリップフロップＦＦ１からＦＦ２までのパスがホールドエラーパスで、セルＣ１とＣ２の間の配線が挿入位置に決定される。
（Ｓ８１）論理情報ファイル２３内の挿入セル（非反転ゲート）のグループの中から、最小駆動能力値のセルを選択する。
【０１０８】
例えば図２４（Ｄ）に示すセルＡ１が選択される。
（Ｓ８２）基本遅延値の合計が不足時間ΔＴＨ以上になるセルの組み合わせを、ステップＳ８０で決定した位置に挿入する。
例えばΔＴＨ＝８０ｐｓの場合、基本遅延値３０でエリア数３のセルＡ１を３個縦続接続したものが挿入されて、図２４（Ｃ）に示す如くなる。最大駆動能力値のセルは図２４（Ｄ）に示すセルＢ１であり、基本遅延値が１００ｐｓでエリア数が１０であって、組み合わせセルの方が最大駆動能力セルを１つ使用する場合よりも使用エリアが少なくなり、面積上の制限が大きい場合に有効である。これは一般的なものである。
【０１０９】
［第１０実施形態］
図２５（Ａ）は、本発明の第１０実施形態の、挿入すべきセルの選択手順を示すフローチャートである。
上記第９実施形態では、ステップＳ８１において最小駆動能力値のセルを選択したが、この第１０実施形態ではステップＳ８１Ａにおいて、図２５（Ｄ）に示す論理情報ファイル２３内の最大駆動能力値のセルＢ１を選択し、図２５（Ｂ）のホールドエラーパス中に、図２５（Ｃ）に示すようにこれを１つ挿入する。他の点は上記第９実施形態の場合と同一である。
【０１１０】
一般に、最小駆動能力セルを複数個使用する場合よりも最大駆動能力セル１個を使用した場合のほうが基本遅延値が大きくなるので、ホールドエラーの場合には少ないセルの挿入でタイミング調整を行うことができる。
［第１１実施形態］
図２６（Ａ）は、本発明の第１１実施形態の、挿入すべきセルの選択手順を示すフローチャートである。
【０１１１】
論理情報ファイル２３は、図２６（Ｄ）に示す如く、挿入セルが基本遅延値の大きさでファミリＡとファミリＢとに分類されている。
ステップＳ８０は図２４（Ａ）の場合と同一であり、例えば図２６（Ｂ）のセルＣ２とＣ３との間の配線がセル挿入位置（太線部分、以下同様）と決定される。
【０１１２】
（Ｓ８１Ｂ）セルが挿入される配線の負荷容量がセル挿入により大幅に変化するのを避けるため、論理情報ファイル２３内の各挿入セルファミリの中から、駆動能力値がセル挿入位置の前段のセルのそれに近いセルを選択する。例えば、図２６（Ｂ）のセルＣ２の駆動能力値が１０であり、図２６（Ｄ）に示す如く、挿入セルファミリＡから駆動能力値が９のセルＡ１が選択され、挿入セルファミリＢから駆動能力値が１１のセルＢ１が選択される。
【０１１３】
（Ｓ８２Ａ）過剰調整を避けるため、選択したセルの中から基本遅延値が不足時間ΔＴＨ以上でこれに近いセルを選択して挿入する。図２６（Ｂ）ではΔＴＨ＝１５ｐｓであるので、基本遅延値３０ｐｓのセルＡ１が選択され、図２６（Ｃ）に示す如く挿入されて、ΔＤＬＴ＝１６ｐｓ＞ΔＴＨとなり、ホールドエラーが解消される。
【０１１４】
［第１２実施形態］
図２７（Ａ）は、本発明の第１２実施形態の、挿入すべきセルの選択手順を示すフローチャートである。
この形態では、図２６（Ａ）のステップＳ８１Ｂの替わりに、次のようなステップＳ８３及びＳ８４の処理が行われる。
【０１１５】
（Ｓ８３）図１の表示装置２５に、図２７（Ｂ）の画像及び論理情報ファイル２３の内容が表示される。操作者は、過剰調整防止のため、論理情報ファイル２３内の挿入セルファミリの中のセルを指定する。
図２７（Ｄ）では、論理情報ファイル２３内のセルＡ１、Ｂ１及びＡ２が操作者により指定される。
【０１１６】
（Ｓ８４）指定したセルのうち、例えば図２６（Ａ）のステップＳ８１Ｂと同一基準で、挿入候補セルを自動的に選択する。
図２７（Ｄ）では、駆動能力値１０に近いセルＡ１とセルＢ１とが選択される。
挿入候補セルの中のセルの選択は、図２６（Ａ）のステップＳ８２Ａと同一であり、セルＡ１が選択されて図２７（Ｂ）の太線部分に挿入され、図２７（Ｃ）に示す如くなる。
【０１１７】
［第１３実施形態］
図２８（Ａ）は、本発明の第１３実施形態の、挿入すべきセルの選択手順を示すフローチャートである。
この形態では、図２７のステップＳ８２Ａの替わりに、次のようなステップＳ８２Ｂ及びＳ８５の処理が行われる。
【０１１８】
（Ｓ８２Ｂ）選択したセルの中から基本遅延値の合計が不足時間ΔＴＨ以上でこれに近いセルの組み合わせを選択する。
図２８（Ｂ）ではΔＴＨ＝５５であるので、図２８（Ｄ）の論理情報ファイル２３内の挿入候補セルＡ１とＢ１とについて、基本遅延値３０ｐｓのセルＡ１が２個の組み合わせと、基本遅延値１００ｐｓの１個のセルＢ１とが選択される。、図２６（Ｃ）に示す如く挿入されて、ΔＤＬＴ＝１６ｐｓ＞ΔＴＨとなり、ホールドエラーが解消される。
【０１１９】
（Ｓ８５）エリア合計値が最小になるセルの組み合わせを選択して、ステップＳ８０で決定した位置に挿入する。
セルＡ１はエリア数３であり、セルＢ１はエリア数８であるので、セルＡ１が２個の組み合わせが選択され、図２８（Ｂ）の太線部分に挿入されて、図２８（Ｃ）に示す如くなる。
【０１２０】
このような方法により、第１２実施形態の場合よりも使用エリアを狭くすることができる。
［第１４実施形態］
図２９（Ａ）は、本発明の第１４実施形態の、挿入すべきセルの選択手順を示すフローチャートである。
【０１２１】
この第１４実施形態では、図２８（Ａ）のステップＳ８５の替わりに次のステップ８６の処理を行う。
（Ｓ８６）挿入しようとするセルの数が最小になる組み合わせを選択して、ステップＳ８０で決定した位置に挿入する。
図２９（Ｂ）では、ΔＴＨ＝１２６であり、ステップＳ８２Ｂにおいて、図２９（Ｄ）に示すセルＡ１とセルＢ１とについて、セルＡ１が４個の組み合わせ（基本遅延値合計１２０ｐｓ）と、セルＡ１とセルＢ１との組み合わせ（基本遅延値合計１３０ｐｓ）のうち、後者が選択され、図２９（Ｂ）の太線部分に挿入されて、図２９（Ｃ）に示す如くなる。ΔＤＬＴ＝１２６ｐｓになり、エラーが解消される。
【０１２２】
この第１４実施形態によれば、エリアに余裕がある場合に、ゲート使用率に最も影響のないようなタイミング調整を行うことができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係るタイミング調整システムの概略ブロック図である。
【図２】図１のタイミング調整装置による調整手順を示すフローチャートである。
【図３】（Ａ）はタイミング調整対象を示す回路図であり、（Ｂ）及び（Ｃ）はそれぞれセットアップエラー及びホールドエラー説明用タイムチャートである。
【図４】（Ａ）は図２中のステップＳＳ１の内容を示すフローチャートであり、（Ｂ）及び（Ｃ）はそれぞれこのステップでのセル置換の前及び後の説明図である。
【図５】図２中のステップＳＳ２の詳細フローチャートである。
【図６】（Ａ）は図５中のステップＳ２０〜Ｓ２２の説明図であり、（Ｂ）は（Ａ）の場合の図５中のステップＳ２４の説明図である。
【図７】（Ａ）及び（Ｂ）はそれぞれ図５中のステップＳ２６及びＳ２４の説明図である。
【図８】（Ａ）及び（Ｂ）はそれぞれ図５中のステップＳ２７及びＳ２４の説明図である。
【図９】（Ａ）は図５中のステップＳ２８及びＳ２９の説明図であり、（Ｂ）は（Ａ）の場合のステップＳ２４の説明図である。
【図１０】図２中のステップＳＨ２の詳細フローチャートである。
【図１１】（Ａ）は図１０中のステップＳ３０〜Ｓ３２の説明図であり、（Ｂ）は（Ａ）の場合の図１０中のステップＳ３４の説明図である。
【図１２】（Ａ）及び（Ｂ）はそれぞれ図１０中のステップＳ３６及びＳ３４の説明図である。
【図１３】（Ａ）及び（Ｂ）はそれぞれ図１０中のステップＳ３７及びＳ３４の説明図である。
【図１４】（Ａ）は図１０中のステップＳ３８及びＳ３９の説明図であり、（Ｂ）は（Ａ）の場合のステップＳ３４の説明図である。
【図１５】（Ａ）〜（Ｃ）はそれぞれ本発明の第２実施形態の、図４（Ａ）〜（Ｃ）に対応した図である。
【図１６】（Ａ）〜（Ｃ）はそれぞれ本発明の第３実施形態の、図４（Ａ）〜（Ｃ）に対応した図である。
【図１７】本発明の第４実施形態の、図５に対応したフローチャートである。
【図１８】（Ａ）は図１７中のステップＳ４０〜Ｓ４６の説明図であり、（Ｂ）は（Ａ）の場合の、図１７中のステップ４７の説明図である。
【図１９】本発明の第５実施形態の、図１０に対応したフローチャートである。
【図２０】（Ａ）は図１９中のステップＳ５２〜Ｓ５６の説明図であり、（Ｂ）は（Ａ）の場合の、図１９中のステップＳ５７の説明図である。
【図２１】（Ａ）は本発明の第６実施形態のタイミング調整手順の一部を示すフローチャートであり、（Ｂ）〜（Ｄ）は（Ａ）の説明図である。
【図２２】（Ａ）は本発明の第７実施形態のタイミング調整手順の一部を示すフローチャートであり、（Ｂ）〜（Ｄ）は（Ａ）の説明図である。
【図２３】本発明の第８実施形態のタイミング調整手順を示す概略フローチャートである。
【図２４】（Ａ）は本発明の第９実施形態の、挿入すべきセルの選択手順を示すフローチャートであり、（Ｂ）〜（Ｄ）は（Ａ）の説明図である。
【図２５】（Ａ）は本発明の第１０実施形態の、挿入すべきセルの選択手順を示すフローチャートであり、（Ｂ）〜（Ｄ）は（Ａ）の説明図である。
【図２６】（Ａ）は本発明の第１１実施形態の、挿入すべきセルの選択手順を示すフローチャートであり、（Ｂ）〜（Ｄ）は（Ａ）の説明図である。
【図２７】（Ａ）は本発明の第１２実施形態の、挿入すべきセルの選択手順を示すフローチャートであり、（Ｂ）〜（Ｄ）は（Ａ）の説明図である。
【図２８】（Ａ）は本発明の第１３実施形態の、挿入すべきセルの選択手順を示すフローチャートであり、（Ｂ）〜（Ｄ）は（Ａ）の説明図である。
【図２９】（Ａ）は本発明の第１４実施形態の、挿入すべきセルの選択手順を示すフローチャートであり、（Ｂ）〜（Ｄ）は（Ａ）の説明図である。
【符号の説明】
１０  半導体集積回路
１１  順序回路
１２、１３  組み合わせ回路
２０  タイミング調整装置
２１  タイミングエラー情報ファイル
２２  遅延情報ファイル
２３  論理情報ファイル
２４  入力装置
２５  表示装置
２６  タイミング解析装置
ＦＦ１〜ＦＦ４  フリップフロップ
ＣＥＬ１〜ＣＥＬ３、Ｃ１〜Ｃ８、Ｃ１Ａ、Ｃ２Ａ  セル
ΔＴＳ、ΔＴＨ、ΔＴ  不足時間
ＤＬ  遅延値
ＤＬＴ  パス遅延値
ΔＤＬＴ  パス遅延変化量
【図１】
0004475691.tif 000004
【図２】
0004475691.tif 000005
【図３】
0004475691.tif 000006
【図４】
0004475691.tif 000007
【図５】
0004475691.tif 000008
【図６】
0004475691.tif 000009
【図７】
0004475691.tif 000010
【図８】
0004475691.tif 000011
【図９】
0004475691.tif 000012
【図１０】
0004475691.tif 000013
【図１１】
0004475691.tif 000014
【図１２】
0004475691.tif 000015
【図１３】
0004475691.tif 000016
【図１４】
0004475691.tif 000017
【図１５】
0004475691.tif 000018
【図１６】
0004475691.tif 000019
【図１７】
0004475691.tif 000020
【図１８】
0004475691.tif 000021
【図１９】
0004475691.tif 000022
【図２０】
0004475691.tif 000023
【図２１】
0004475691.tif 000024
【図２２】
0004475691.tif 000025
【図２３】
0004475691.tif 000026
【図２４】
0004475691.tif 000027
【図２５】
0004475691.tif 000028
【図２６】
0004475691.tif 000029
【図２７】
0004475691.tif 000030
【図２８】
0004475691.tif 000031
【図２９】
0004475691.tif 000032