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