(57)【要約】      （修正有）【課題】セルのタイミング制約値を提供するタイミング制約ライブラリの作成時間を短縮すること。【解決手段】タイミング制約ライブラリ１０の作成方法は、（ａ）タイミング制約ライブラリ１０が格納される記憶装置１１０を提供するステップと、（ｂ）その記憶装置１１０に接続された演算処理装置１２０が、タイミング制約値Ｓｉｊを含む所定の範囲ＳＣ０をスコープＳＣとして設定するステップと、（ｃ）演算処理装置１２０が、そのスコープＳＣ内の仮タイミング制約値を用いて、セルが正常に動作するかどうかのシミュレーションを実行するステップと、（ｄ）演算処理装置１２０が、バイナリサーチ法に基づいて上記（ｃ）ステップを繰り返すことによって、タイミング制約値Ｓｉｊを求めるステップとを備える。上記（ｃ）ステップにおいて、スコープＳＣの大きさが小さくなるほど、シミュレーションの精度は高く設定される。【選択図】      図８
2006039614.tif 000002
【特許請求の範囲】
【請求項１】
セルのタイミング制約値を提供するタイミング制約情報の作成方法であって、
（Ａ）前記タイミング制約情報が格納される記憶装置を提供するステップと、
（Ｂ）前記記憶装置に接続された演算処理装置が、前記タイミング制約値を含む所定の初期範囲をスコープとして設定するステップと、
（Ｃ）前記演算処理装置が、前記スコープからｎ個（ｎは３以上の整数）の仮タイミング制約値を選択するステップと、
（Ｄ）前記演算処理装置が、前記ｎ個の仮タイミング制約値の各々に基づいて、前記セルが正常に動作するかどうかのシミュレーションを実行するステップと、
（Ｅ）前記演算処理装置が、前記（Ｄ）ステップにおける前記シミュレーションの結果に基づいて、前記セルの正常動作と異常動作の境界に最も近い２つの仮タイミング制約値を、前記ｎ個の仮タイミング制約値から抽出するステップと、
（Ｆ）前記演算処理装置が、前記２つの仮タイミング制約値によって規定される範囲を新たな前記スコープとして設定するステップと、
（Ｇ）前記演算処理装置が、前記スコープの大きさが所定の基準値以下になるまで、前記（Ｃ）ステップから前記（Ｆ）ステップを繰り返すことによって、前記タイミング制約値を求めるステップと
を具備し、
前記（Ｄ）ステップにおいて、
前記演算処理装置は、前記スコープの大きさに基づいて、前記シミュレーションの精度を設定する
タイミング制約情報の作成方法。
【請求項２】
請求項１に記載のタイミング制約情報の作成方法であって、
前記（Ｄ）ステップにおいて、
前記演算処理装置は、前記スコープの大きさが小さくなるほど前記シミュレーションの精度が高くなるように、前記シミュレーションの精度を設定する
タイミング制約情報の作成方法。
【請求項３】
請求項１又は２に記載のタイミング制約情報の作成方法であって、
ｎは３であり、
前記ｎ個の仮タイミング制約値は、前記スコープの最大値、最小値、及び前記最大値と前記最小値の平均値から構成される
タイミング制約情報の作成方法。
【請求項４】
請求項１又は２に記載のタイミング制約情報の作成方法であって、
前記ｎ個の仮タイミング制約値は、前記スコープの最大値、最小値、及び前記スコープを（ｎ−１）個の範囲に等分割する（ｎ−２）個の値から構成される
タイミング制約情報の作成方法。
【請求項５】
請求項１乃至４のいずれかに記載のタイミング制約情報の作成方法であって、
前記（Ｄ）ステップにおいて、
前記演算処理装置は、前記スコープの大きさと前記シミュレーションの精度との対応関係を示し前記記憶装置に格納された精度決定テーブルを参照することによって、前記シミュレーションの精度を設定する
タイミング制約情報の作成方法。
【請求項６】
請求項１乃至５のいずれかに記載のタイミング制約情報の作成方法であって、
前記タイミング制約情報は、複数の条件に対する前記タイミング制約値を示すタイミング制約テーブルを備え、
前記タイミング制約情報作成方法は、更に、
（Ｈ）前記演算処理装置が、前記所定の初期範囲より小さい範囲を、新たな前記初期範囲として設定するステップと、
ここで、前記新たな初期範囲は、前記（Ｇ）ステップにおいて求められた前記タイミング制約値としての第１タイミング制約値を含み、前記第１タイミング制約値は、前記複数の条件のうち第１条件に対応しており、
（Ｉ）前記複数の条件のうち前記第１条件と異なる第２条件に対応した第２タイミング制約値を求める際、前記演算処理装置が、前記（Ｈ）ステップで設定された前記新たな初期範囲を用いて、前記（Ｂ）〜（Ｇ）ステップを実行するステップと
を具備する
タイミング制約情報の作成方法。
【請求項７】
請求項６に記載のタイミング制約情報の作成方法であって、
前記第２条件は、前記第１条件に最も近い
タイミング制約情報の作成方法。
【請求項８】
請求項６又は７に記載のタイミング制約情報の作成方法であって、
前記新たな初期範囲は、前記第１タイミング制約値を中心とする範囲として設定される
タイミング制約情報の作成方法。
【請求項９】
セルのタイミング制約値を提供するタイミング制約情報の作成方法であって、
（ａ）前記タイミング制約情報が格納される記憶装置を提供するステップと、
（ｂ）前記記憶装置に接続された演算処理装置が、前記タイミング制約値を含む所定の範囲をスコープとして設定するステップと、
（ｃ）前記演算処理装置が、前記スコープ内の仮タイミング制約値を用いて、前記セルが正常に動作するかどうかのシミュレーションを実行するステップと、
（ｄ）前記演算処理装置が、バイナリサーチ法に基づいて前記（ｃ）ステップを繰り返すことによって、前記タイミング制約値を求めるステップと
を具備し、
前記（ｃ）ステップにおいて、
前記演算処理装置は、前記スコープの大きさが小さくなるにつれて前記シミュレーションの精度が高くなるように、前記シミュレーションの精度を設定する
タイミング制約情報の作成方法。
【請求項１０】
セルのタイミング制約値を提供するタイミング制約情報を作成するシステムであって、
前記タイミング制約情報が格納される記憶装置と、
前記記憶装置に接続された演算処理装置と、
前記演算処理装置によって実行されるライブラリ作成ソフトウェアと、
所定の条件のもとで前記セルが正常に動作するかどうかのシミュレーションを前記演算処理装置上で実行するシミュレータと
を具備し、
前記ライブラリ作成ソフトウェアは、前記タイミング制約値を含む所定の初期範囲をスコープとして設定し、
前記ライブラリ作成ソフトウェアは、前記スコープからｎ個（ｎは３以上の整数）の仮タイミング制約値を選択し、また、前記スコープの大きさに基づいて、前記シミュレーションの精度を決定するという第１動作を実行し、
前記シミュレータは、決定された前記精度に基づき、前記ｎ個の仮タイミング制約値の各々に対して、前記シミュレーションを実行し、
前記ライブラリ作成ソフトウェアは、前記シミュレーションの結果に基づいて、前記セルの正常動作と異常動作の境界に最も近い２つの仮タイミング制約値を、前記ｎ個の仮タイミング制約値から抽出し、前記２つの仮タイミング制約値によって規定される範囲を新たな前記スコープとして設定するという第２動作を実行し、
前記ライブラリ作成ソフトウェア及び前記シミュレータは、前記第１動作、前記第２動作、及び前記シミュレーションを繰り返し実行し、前記スコープの大きさが所定の基準値以下になった時、前記ライブラリ作成ソフトウェアは、前記スコープに基づいて前記タイミング制約値を決定する
タイミング制約情報作成システム。
【請求項１１】
請求項１０に記載のタイミング制約情報の作成システムであって、
前記記憶装置は、前記スコープの大きさと前記シミュレーションの精度との対応関係を示す精度決定テーブルを格納し、
前記ライブラリ作成ソフトウェアは、前記精度決定テーブルを参照することによって、前記シミュレーションの精度を決定する
タイミング制約情報作成システム。
【請求項１２】
入力信号とクロック信号を被テスト回路へ与え、演算処理装置によってシミュレーションした結果により前記被テスト回路から出力される出力信号が、期待値と一致する場合にパスし、一致しない場合にフェイルと前記演算処理装置により判定するステップを、前記入力信号と前記クロック信号の相対的タイミング位置関係、又は前記クロック信号自身のタイミングを所定のスコープであるサーチ範囲内で複数変えて行い、前記判定に基づいて前記サーチ範囲の広さを変えながら前記ステップを繰り返すことで、前記クロック信号に対する前記入力信号のタイミング制約値、又は前記クロック信号自身のタイミング制約値を求めるタイミング制約情報の作成方法において、
前記サーチ範囲の広さを変える際に、前記演算処理装置による前記シミュレーションの演算精度を変化させるステップを有することを特徴とする
タイミング制約情報の作成方法。
【請求項１３】
前記演算精度を変化させるステップは、前記サーチ範囲の広さと前記シミュレーションの演算精度との関連性を示す情報である対応表、又は両者の関係を示す関数を記憶装置に予め記憶しておき、前記サーチ範囲を変更する際に前記演算処理装置により前記記憶装置の前記関連性を示す情報を読み出し、当該情報を用いて前記変更されるサーチ範囲に対応する演算精度に変更するものである
請求項１２記載のタイミング制約情報の作成方法。
【請求項１４】
前記クロック信号と前記入力信号のうち少なくともいずれか一方の立ち上がり、又は立ち下がり波形の傾きを変えた場合の新たな前記タイミング制約値を求める際に、既知のタイミング制約値を挟む２点のタイミング間を初期サーチ範囲として設定するステップを有する
請求項１２記載のタイミング制約情報の作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩ設計の技術に関し、特に、セルのタイミング制約値を提供するタイミング制約情報の作成方法及び作成システムに関する。
【背景技術】
【０００２】
ＬＳＩの設計を行う際、設計や確認の時間を短縮し人為的ミスを抑制するためには、コンピュータやＣＡＤ（Computer Aided Design）の利用は必要不可欠である。このようなＬＳＩ設計において、更に開発効率を向上させるために、特定の機能を有する機能ブロックである「セル」を用いる技術が知られている。このセルを用いたセルベース設計によれば、複数のセルが組み合わされ配置されることにより、所望のＬＳＩが設計される。これにより、設計期間が短縮され、生産性が向上する。
【０００３】
このようなセルが正常に動作するための制約を示す情報は、「タイミング制約情報（タイミング制約値）」と呼ばれている。順序回路のようなセルの場合、このタイミング制約情報は、クロック信号に対するデータ信号の「セットアップ時間」や「ホールド時間」などを含んでいる。このようなタイミング制約情報は、設計・検証済みのセルの回路情報と共に配布される。セットアップ時間を所望の精度で効率良くシミュレーションで求めることを目的とした技術は特許文献１に開示されている。
【０００４】
セルベース設計が行われた後、その設計されたＬＳＩの動作等を解析／検証する「タイミング解析」が行われる。複数のセルを含むＬＳＩに対してタイミング解析を行うには、セル間の配線情報と、複数のセルの各々についての上述のタイミング制約情報が分かればよい。そのため、各セルのタイミング制約情報を提供する「タイミング制約ライブラリ」が用意され、そのタイミング制約ライブラリを参照することによって上記タイミング解析が実行される。
【０００５】
このタイミング制約ライブラリの情報量は膨大であり、その作成時間を短縮することが望まれている。そのために、各セルについてタイミング制約情報をより効率良く決定することが望まれている。
【０００６】
【特許文献１】特開平１０−２１２９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、タイミング制約情報の作成時間を短縮することができる作成方法及び作成システムを提供することにある。
【課題を解決するための手段】
【０００８】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を用いて、［課題を解決するための手段］を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【０００９】
本発明に係るタイミング制約情報（タイミング制約ライブラリ）（１０）の作成方法は、（Ａ）タイミング制約ライブラリ（１０）が格納される記憶装置（１１０）を提供するステップと、（Ｂ）記憶装置（１１０）に接続された演算処理装置（１２０）が、タイミング制約値（Ｓｉｊ）を含む所定の初期範囲（ＳＣ０）をスコープ（ＳＣ）として設定するステップと、（Ｃ）演算処理装置（１２０）が、そのスコープ（ＳＣ）からｎ個（ｎは３以上の整数）の仮タイミング制約値を選択するステップと、（Ｄ）演算処理装置（１２０）が、ｎ個の仮タイミング制約値の各々に基づいて、セルが正常に動作するかどうかのシミュレーションを実行するステップと、（Ｅ）演算処理装置（１２０）が、上記（Ｄ）ステップにおけるシミュレーションの結果に基づいて、セルの正常動作と異常動作の境界に最も近い２つの仮タイミング制約値を、ｎ個の仮タイミング制約値から抽出するステップと、（Ｆ）演算処理装置（１２０）が、その２つの仮タイミング制約値によって規定される範囲（ＳＣ１）を新たなスコープ（ＳＣ）として設定するステップと、（Ｇ）演算処理装置（１２０）が、スコープ（ＳＣ）の大きさ（ＭＡＸ−ｍｉｎ）が所定の基準値以下になるまで、上記（Ｃ）ステップから（Ｆ）ステップを繰り返すことによって、タイミング制約値（Ｓｉｊ）を求めるステップとを備える。
【００１０】
本発明によれば、上記（Ｄ）ステップにおいて、演算処理装置（１２０）は、スコープ（ＳＣ）の大きさ（ＭＡＸ−ｍｉｎ）に基づいて、シミュレーションの精度を設定する。このシミュレーションの精度とは、過渡解析におけるタイムステップ、数値計算上の収束判定基準、選択されるアルゴリズムなどのパラメータ群として定義される。演算処理装置（１２０）は、スコープ（ＳＣ）の大きさ（ＭＡＸ−ｍｉｎ）が小さくなるほどシミュレーションの精度が高くなるように、シミュレーションの精度を設定する。例えば、演算処理装置（１２０）は、スコープ（ＳＣ）の大きさ（ＭＡＸ−ｍｉｎ）とシミュレーションの精度との対応関係を示し記憶装置（１１０）に格納された精度決定テーブル（３０）を参照することによって、そのシミュレーションの精度を設定する。これにより、シミュレーション初期における計算負荷が低減されるので、シミュレーション時間が削減される。すなわち、タイミング制約ライブラリ（１０）を作成する時間が短縮される。また、解の所在が分かってきた段階で、シミュレーション精度は高くなるので、最終的に求まる解の精度は保たれる。すなわち、タイミング制約ライブラリ（１０）の精度は保たれる。
【００１１】
本発明に係るタイミング制約情報の作成方法において、ｎ個の仮タイミング制約値は、スコープ（ＳＣ）の最大値（ＭＡＸ）、最小値（ｍｉｎ）、及びスコープ（ＳＣ）をｎ−１個の範囲に等分割するｎ−２個の値（Ｉｎｔ、Ａｖｅ）から構成される。例えば、ｎは３であり、ｎ個の仮タイミング制約値は、スコープ（ＳＣ）の最大値（ＭＡＸ）、最小値（ｍｉｎ）、及び最大値（ＭＡＸ）と最小値（ｍｉｎ）の平均値（Ａｖｅ）から構成される。この時、タイミング制約値（Ｓｉｊ）は、「バイナリサーチ法」によって探索される。
【００１２】
タイミング制約ライブラリ（１０）は、複数の条件（ａ１〜ａｘ、ｂ１〜ｂｙ）に対するタイミング制約値（Ｓｉｊ）を示すタイミング制約テーブル（２１、２２、２３、２４）を備える。また、上記（Ｇ）ステップにおいて求められたタイミング制約値（Ｓｉｊ）を第１タイミング制約値とし、この第１タイミング制約値は、複数の条件（ａ１〜ａｘ、ｂ１〜ｂｙ）のうち第１条件に対応しているとする。この時、本発明に係るタイミング制約情報の作成方法は、更に、（Ｈ）演算処理装置（１２０）が、上記所定の初期範囲（ＳＣ０）より小さい範囲を、新たな初期範囲（ＳＣ０）として設定するステップと、（Ｉ）複数の条件（ａ１〜ａｘ、ｂ１〜ｂｙ）のうち第１条件と異なる第２条件に対応した第２タイミング制約値を求める際、演算処理装置（１２０）が、上記（Ｈ）ステップで設定された新たな初期範囲（ＳＣ０）を用いて、上記（Ｂ）〜（Ｇ）ステップを実行するステップとを備える。この新たな初期範囲（ＳＣ０）は、第１タイミング制約値を含んでおり、例えば、第１タイミング制約値を中心とする範囲として設定される。これにより、シミュレーション回数が削減されるため、タイミング制約ライブラリ（１０）を作成する時間が更に短縮される。特に、第２条件は、第１条件に最も近いと好適である。
【００１３】
本発明に係るタイミング制約情報の作成システム（１００）は、タイミング制約ライブラリ（１０）が格納される記憶装置（１１０）と、その記憶装置（１１０）に接続された演算処理装置（１２０）と、その演算処理装置（１２０）によって実行されるライブラリ作成ソフトウェア（１５０）と、所定の条件のもとでセルが正常に動作するかどうかのシミュレーションを演算処理装置（１２０）上で実行するシミュレータ（１６０）とを備える。まず、ライブラリ作成ソフトウェア（１５０）は、タイミング制約値（Ｓｉｊ）を含む所定の初期範囲（ＳＣ０）をスコープ（ＳＣ）として設定する。また、ライブラリ作成ソフトウェア（１５０）は、そのスコープ（ＳＣ）からｎ個（ｎは３以上の整数）の仮タイミング制約値を選択し、また、そのスコープ（ＳＣ）の大きさに基づいて、シミュレーションの精度を決定するという「第１動作」を実行する。次に、シミュレータ（１６０）は、決定された精度に基づき、ｎ個の仮タイミング制約値の各々に対して、シミュレーションを実行する。そして、ライブラリ作成ソフトウェア（１５０）は、そのシミュレーションの結果に基づいて、セルの正常動作と異常動作の境界に最も近い２つの仮タイミング制約値を、ｎ個の仮タイミング制約値から抽出し、その２つの仮タイミング制約値によって規定される範囲（ＳＣ１）を新たなスコープ（ＳＣ）として設定するという「第２動作」を実行する。これらライブラリ作成ソフトウェア（１５０）及びシミュレータ（１６０）は、上述の第１動作、第２動作、及びシミュレーションを繰り返し実行する。そして、スコープ（ＳＣ）の大きさが所定の基準値以下になった時、ライブラリ作成ソフトウェア（１５０）は、そのスコープ（ＳＣ）に基づいてタイミング制約値（Ｓｉｊ）を決定する。
【発明の効果】
【００１４】
本発明に係るタイミング制約情報の作成方法及び作成システムによれば、タイミング制約情報の作成時間が短縮される。
【００１５】
本発明に係るタイミング制約情報の作成方法及び作成システムによれば、作成されるタイミング制約情報の精度は保たれる。
【発明を実施するための最良の形態】
【００１６】
添付図面を参照して、本発明によるタイミング制約情報（タイミング制約ライブラリ）の作成方法及び作成システムを説明する。まず、本明細書において用いられる概念及び用語の説明が行われる。
【００１７】
図１は、本発明において作成される対象である「タイミング制約ライブラリ」の構成を示す概念図である。このタイミング制約ライブラリ１０は、複数のセルのそれぞれに対する「タイミング制約情報（タイミング制約値）」を提供する。具体的には、タイミング制約ライブラリ１０は、第１セル用の制約テーブル群１１、第２セル用の制約テーブル群１２、第３セル用の制約テーブル群１３をはじめ複数の制約テーブル群を含んでいる。各制約テーブル群は、対応するセルのタイミング制約値を提供する。このようにしてタイミング制約ライブラリ１０から提供される各セルのタイミング制約値は、ＬＳＩのタイミング解析等において利用される。
【００１８】
図２は、図１で示された制約テーブル群の構成を示す概念図である。図２においては、例として、第１セル用の制約テーブル群１１の構成が示されている。図２に示されるように、第１セル用制約テーブル群１１は、セットアップ時間テーブル２１、ホールド時間テーブル２２、リリース時間テーブル２３、最小パルス幅テーブル２４などを含んでいる。
【００１９】
セットアップ時間テーブル２１は、第１セルに規定された「セットアップ時間」を示している。図３は、このセットアップ時間を説明するための概念図である。この第１セルは、フリップフロップのような順序回路であり、データ信号ＤＡＴＡとクロック信号ＣＬＫを入力する。図３に示されるように、データ信号ＤＡＴＡは時刻ｔＤに入力され、クロック信号ＣＬＫは、時刻ｔＤから所定の遅延時間後の時刻ｔＣに入力されるとする。この時、正常なラッチ動作が行われ得る遅延時間の限界値（最小値）が、「セットアップ時間Ｔｓｅｔｕｐ」と定義される。
【００２０】
同様に、ホールド時間テーブル２２は、第１セルに規定された「ホールド時間」を示している。セルを正常に動作させるためには、クロック信号ＣＬＫの入力時刻ｔＤ以後、データ信号ＤＡＴＡをある一定時間以上保持しなければならない。「ホールド時間」は、その保持時間の最小値を示す。また、リリース時間テーブル２３は、第１セルに規定された「リリース時間」を示している。この「リリース時間」は、リセット信号のクロック信号に対するセットアップ時間を示す。更に、最小パルス幅テーブル２４は、第１セルに規定された「最小パルス幅」を示している。この「最小パルス幅」は、セルが正常に動作するために必要なパルス幅の最小値を示す。
【００２１】
このように、「タイミング制約値」としては、セットアップ時間、ホールド時間、リリース時間、最小パルス幅などが例として挙げられる。
【００２２】
図４は、図２に示されたセットアップ時間テーブル２１の構成を詳細に示す図である。図４に示されるように、セットアップ時間は、２つの条件（テーブルインデックス）の関数として表されている。第１の条件は「入力波形鈍り」であり、入力されるデータ信号ＤＡＴＡの波形鈍りを示す（図３参照）。第２の条件は「クロック波形鈍り」であり、入力されるクロック信号ＣＬＫの波形鈍りを示す（図３参照）。このセットアップ時間テーブル２１は、ｘ種類（ｘは自然数）の入力波形鈍りａ１〜ａｘとｙ種類（ｙは自然数）のクロック波形鈍りｂ１〜ｂｙに対する、（ｘ×ｙ）種類のセットアップ時間Ｓｘｙを示している。例えば、入力波形鈍りがａ２でありクロック波形鈍りがｂ１である場合、このセットアップ時間テーブル２１から、セットアップ時間Ｓ２１が得られる。図２に示された他のテーブルの構成も同様である。
【００２３】
以下に詳述されるように、本発明によれば、このようなタイミング制約ライブラリ１０を作成する方法及びシステムが提供される。タイミング制約ライブラリ１０を作成するためには、各セルについて制約テーブル群（１１、１２、１３）を作成する必要がある（図１参照）。各制約テーブル群を作成するためには、複数のタイミング制約値のそれぞれを示すタイミング制約テーブル（２１、２２、２３、２４）を作成する必要がある（図２参照）。各タイミング制約テーブルを作成するためには、複数の条件のそれぞれに対してタイミング制約値（Ｓｘｙ）を作成する必要がある（図４参照）。以下、代表として、図４に示されたセットアップ時間テーブル２１を作成する場合について説明が行われる。他のテーブルを作成する場合についても同様である。
【００２４】
（第１の実施の形態）
図５は、セットアップ時間を求める方法、つまり、タイミング制約ライブラリ１０を作成する方法を説明するための概念図である。図５において、クロック信号ＣＬＫの波形はｆＣで表され、そのクロック信号ＣＬＫの入力時刻はｔＣで表されている。また、図５において、３パターンのデータ信号ＤＡＴＡが示されており、それぞれの波形はｆＤ１、ｆＤ２、ｆＤ３で表され、それぞれの入力時刻はｔ１、ｔ２、ｔ３で表されている。また、データ信号ＤＡＴＡのクロック信号ＣＬＫに対する遅延時間は、Δｔで表されている。
【００２５】
上述の通り、セットアップ時間は、セルが正常に動作（正常動作）する遅延時間と、セルが正常に動作しない（異常動作）遅延時間との境界を示す。この境界値を求めるために、まず、セルが“必ず”正常動作する遅延時間（以下、「初期最大値ＭＡＸ０」と参照される）と、セルが“必ず”異常動作する遅延時間（以下、「初期最小値ｍｉｎ０」と参照される）が初期値として与えられる。図５においては、波形ｆＤ１で示されるデータ信号ＤＡＴＡに対応した遅延時間Δｔが、初期最大値ＭＡＸ０であり、波形ｆＤ３で示されるデータ信号ＤＡＴＡに対応した遅延時間Δｔが、初期最小値ｍｉｎ０であるとする。また、この初期最大値ＭＡＸ０と初期最小値ｍｉｎ０との間の範囲は、スコープＳＣ（初期スコープＳＣ０）と参照される。この時、初期スコープＳＣ０の大きさは、ＳＣ０＝ＭＡＸ０−ｍｉｎ０により与えられる。
【００２６】
この初期スコープＳＣ０の中から、所定のアルゴリズムを用いることによって、上述の境界値（解）の探索が行われる。この解を効率的に探索するアルゴリズムとして、例えば、「バイナリサーチ法（二分探索法）」が用いられる。
【００２７】
図６は、本発明によるバイナリサーチ法を用いた解（セットアップ時間）の探索方法を説明するための概念図である。図中のグラフの縦軸は、遅延時間Δｔを示している。まず、上述の初期最大値ＭＡＸ０と初期最小値ｍｉｎ０が適宜設定され、解の探索範囲としての初期スコープ（初期範囲）ＳＣ０が決定される。この初期スコープＳＣ０は、求めるべきセットアップ時間（タイミング制約値）を含んでいる。
【００２８】
次に、初期スコープＳＣ０から３つの「仮セットアップ時間（仮タイミング制約値）」が選択される。その３つの仮セットアップ時間は、初期最大値ＭＡＸ０、初期最小値ｍｉｎ０、及び初期最大値ＭＡＸ０と初期最小値ｍｉｎ０の平均値Ａｖｅから構成される。つまり、これら３つの仮セットアップ時間ＭＡＸ０、ｍｉｎ０、Ａｖｅによって、初期スコープＳＣ０は二分割される。
【００２９】
次に、それら３つの仮セットアップ時間ＭＡＸ０、ｍｉｎ０、Ａｖｅの各々に基づいて、セルが正常に動作するかどうかのシミュレーションが実行される。具体的には、３つの仮セットアップ時間ＭＡＸ０、ｍｉｎ０、Ａｖｅのそれぞれに対応した信号対（データ信号ＤＡＴＡ、クロック信号ＣＬＫ）を示す３つのシミュレーション用データが作成される。例えば、図４に示されたセットアップ時間テーブル２１のうちのセットアップ時間Ｓ２１を求める場合、入力波形なまりａ２を有するデータ信号ＤＡＴＡと、クロック波形なまりｂ１を有するクロック信号ＣＬＫとの信号対であって、仮セットアップ時間（遅延時間）ＭＡＸ０に対応した信号対（図５中の波形ｆＤ１、ｆＣを参照）、仮セットアップ時間Ａｖｅに対応した信号対（図５中の波形ｆＤ２、ｆＣを参照）、及び仮セットアップ時間ｍｉｎ０に対応した信号対（図５中の波形ｆＤ３、ｆＣを参照）の３パターンが用意される。このように作成された３つのシミュレーション用データをＳＰＩＣＥ等の所定の回路シミュレータに入力することによって、セル（被テスト回路）が正常に動作するかどうかのシミュレーションが行われる。
【００３０】
図６に示された例の場合、初期最大値ＭＡＸ０と平均値Ａｖｅに基づいたシミュレーションの結果、セルが正常に動作（パス：図中、「ＯＫ」で示されている）し、初期最小値ｍｉｎ０に基づいたシミュレーションの結果、セルが正常に動作しなかった（フェイル：図中、「ＮＧ」で示されている）とする。この時、求めるべき解、すなわちセルの正常動作（ＯＫ）と異常動作（ＮＧ）の境界は、平均値Ａｖｅと初期最小値ｍｉｎ０の間に存在することは明らかである。よって、３つの仮セットアップ時間ＭＡＸ０、ｍｉｎ０、Ａｖｅの中から、求めるべき解に最も近い２つの仮セットアップ時間Ａｖｅ、ｍｉｎ０が選択され抽出される。
【００３１】
次に、これら抽出された２つの仮セットアップ時間Ａｖｅ、ｍｉｎ０によって規定される範囲が、新たなスコープＳＣ１として設定される。つまり、抽出された仮セットアップ時間Ａｖｅが、新たなスコープＳＣ１の最大値ＭＡＸに設定され、抽出された仮セットアップ時間ｍｉｎ０が、新たなスコープＳＣ１の最小値ｍｉｎに設定される。この時、新たなスコープＳＣ１の大きさは、ＳＣ１＝ＭＡＸ−ｍｉｎで与えられる。
【００３２】
次に、この新たなスコープＳＣ１を用いて上述の処理が繰り返される。具体的には、スコープＳＣ１から３つの仮セットアップ時間として、最大値ＭＡＸ、最小値ｍｉｎ、及び最大値ＭＡＸと最小値ｍｉｎの平均値Ａｖｅが選択される。そして、それら３つの仮セットアップ時間ＭＡＸ、ｍｉｎ、Ａｖｅの各々に基づいて、セルが正常に動作するかどうかのシミュレーションが同様に実行される。図６に示された例の場合、最大値ＭＡＸに基づいたシミュレーションの結果、セルが正常に動作し、平均値Ａｖｅと最小値ｍｉｎに基づいたシミュレーションの結果、セルが正常に動作しなかったとする。この時、求めるべき解、すなわちセルの正常動作（ＯＫ）と異常動作（ＮＧ）の境界は、最大値ＭＡＸと平均値Ａｖｅ間に存在することは明らかである。よって、３つの仮セットアップ時間ＭＡＸ、ｍｉｎ、Ａｖｅの中から、求めるべき解に最も近い２つの仮セットアップ時間ＭＡＸ、Ａｖｅが選択され抽出される。
【００３３】
次に、これら抽出された２つの仮セットアップ時間ＭＡＸ、Ａｖｅによって規定される範囲が、新たなスコープＳＣ２として設定される。そして、この新たなスコープＳＣ２を用いて上述の処理が繰り返される。このように、バイナリサーチ法によれば、１ステップ毎にスコープＳＣの大きさ（ＭＡＸ−ｍｉｎ）が半分になる。そして、スコープＳＣの大きさが所定の基準値（粒度）以下になるまで、上述の動作が繰り返される。スコープＳＣの大きさが所定の基準値以下になった時、そのスコープＳＣに基づいて、解である「セットアップ時間」が求められる。求められたセットアップ時間（上記例の場合、セットアップ時間Ｓ２１）が、図４に示されたセットアップ時間テーブル２１に追加される。
【００３４】
本発明によれば、上述の処理において、シミュレーションの精度は一定ではなく、スコープＳＣの大きさ（ＭＡＸ−ｍｉｎ）に基づいて設定される。このシミュレーションの精度は、過渡解析におけるタイムステップ、数値計算上の収束判定基準、選択されるアルゴリズムなどのパラメータ群に依存する。これらのパラメータ群の設定を変更することにより、シミュレーションの精度が変更される。例えば、本発明の実施の形態によれば、スコープＳＣの大きさ（ＭＡＸ−ｍｉｎ）が小さくなるにつれてシミュレーション精度が高くなるように、そのパラメータ群の設定が行われる。つまり、初期の間は荒い精度で計算が行われ、解に近づくほど細かい精度で計算が行われる。このように、本発明によれば計算精度は一定ではなく可変である。
【００３５】
シミュレーション精度の設定は、例えば、所定のテーブルを参照することによって行われる。図７は、本実施の形態において参照される精度決定テーブル３０の構成を示す概念図である。この精度決定テーブル３０は、スコープＳＣの大きさとシミュレーション精度との対応関係を示している。シミュレーション精度は、過渡解析におけるタイムステップ、数値計算上の収束判定基準、選択されるアルゴリズムなどのパラメータ群に依存する。例えば、スコープＳＣの大きさが１ｐｓ以下の場合、パラメータ群ＰＡ１がシミュレータに適用される。同様に、スコープＳＣの大きさが１ｐｓより大きく１０ｐｓ以下の場合、パラメータ群ＰＡ２がシミュレータに適用され、スコープＳＣの大きさが１０ｐｓより大きく２００ｐｓ以下の場合、パラメータ群ＰＡ３がシミュレータに適用される。この時、パラメータ群ＰＡ１が指定するシミュレーション精度が最も高く、スコープＳＣの大きさが大きくなるにつれてパラメータ群が指定するシミュレーション精度は低くなっていく。
【００３６】
このように、本発明に係るタイミング制約ライブラリ１０の作成方法によれば、シミュレーション精度は一定ではなく可変である。つまり、シミュレーション初期の間は荒い精度で計算が行われ、解に近づくほど細かい精度で計算が行われる。シミュレーション初期の間における計算負荷が低減されるので、シミュレーション時間が削減される。すなわち、タイミング制約ライブラリ１０を作成する時間が短縮される。また、解の所在が分かってきた段階で、シミュレーション精度は高くなるので、最終的に求まる解（タイミング制約値）の精度は保たれる。
【００３７】
図８は、上記の作成方法を実現するための「タイミング制約ライブラリ作成システム」の構成を示すブロック図である。本発明に係るタイミング制約ライブラリ作成システム１００は、記憶装置１１０、演算処理装置１２０、入力装置１３０、出力装置１４０、ライブラリ作成ソフトウェア１５０、シミュレータ１６０を備えている。このタイミング制約ライブラリ作成システム１００は、例えば、ワークステーション上に構築される。
【００３８】
演算処理装置１２０は、上述の各装置に接続されており、各種演算処理を実行することによって、このタイミング制約ライブラリ作成システム１００の動作を制御する。
【００３９】
ライブラリ作成ソフトウェア１５０は、演算処理装置１２０によって実行されるソフトウェアプログラムである。このライブラリ作成ソフトウェア１５０は、上述の解の探索（タイミング制約値の決定）を実行する。また、このライブラリ作成ソフトウェア１５０は、解探索部１５１と、入力ファイル生成部１５２と、精度決定部１５３とを備えている。
【００４０】
シミュレータ１６０は、演算処理装置１２０によって実行されるシミュレーションツールである。このシミュレータ１６０は、上述のシミュレーション、すなわち、所定の条件のもとでセルが正常に動作するかどうかのシミュレーションを実行する。
【００４１】
記憶装置１１０は、演算処理装置１２０に接続されており、精度決定テーブル３０（図７参照）、入力ファイル１１１、結果ファイル１１２、セル回路ライブラリ１１５を格納している。入力ファイル１１１は、シミュレータ１６０に入力されるファイルであり、上述の複数の仮セットアップ時間（ＭＡＸ、ｍｉｎ、Ａｖｅ）のそれぞれに対応した信号対（データ信号ＤＡＴＡ、クロック信号ＣＬＫ）を示す。結果ファイル１１２は、シミュレータ１６０によるシミュレーションの結果を示し、セルの出力端子から出力される信号を示す。セル回路ライブラリ１１５は、セルのレイアウト情報を提供している。このセルのレイアウト情報は、シミュレーション時にシミュレータ１６０によって参照される。また、タイミング制約ライブラリ作成システム１００によって作成されるタイミング制約ライブラリ１０（図１参照）は、この記憶装置１１０に格納される。更に、上述のライブラリ作成ソフトウェア１５０及びシミュレータ１６０は、この記憶装置１１０に格納されていてもよい。
【００４２】
入力装置１３０は、演算処理装置１２０に接続されている。この入力装置１３０として、キーボードやマウスが例示される。ユーザは、この入力装置１３０を使用することによって、所定のコマンドやデータをタイミング制約ライブラリ作成システム１００に与えることができる。入力装置１３０から入力されたコマンドやデータは、演算処理装置１２０によって処理される。また、出力装置１４０は、演算処理装置１２０に接続されている。この出力装置１４０として、ディスプレイやスピーカが例示される。ユーザは、この出力装置１４０から出力される情報に基づいて、新たな指示を与えることができる。
【００４３】
図９は、このタイミング制約ライブラリ作成システム１００の動作を示すブロック図である。この図９と既出の図６を参照することによって、セットアップ時間を決定する際の動作を例として説明する。まず、ライブラリ作成ソフトウェア１５０の解探索部１５１は、初期最大値ＭＡＸ０と初期最小値ｍｉｎ０を決定し、解の探索範囲としての初期スコープＳＣ０を設定する。この初期スコープＳＣ０は、求めるべきセットアップ時間（タイミング制約値）を含んでいる。そして、解探索部１５１は、設定されたスコープＳＣ（初期スコープＳＣ０）を示すスコープデータＤＳを、入力ファイル生成部１５２と精度決定部１５３に出力する。
【００４４】
入力ファイル生成部１５２は、スコープデータＤＳを受け取り、設定されたスコープＳＣ（初期スコープＳＣ０）から、３つの仮セットアップ時間を選択する。これら３つの仮セットアップ時間は、初期最大値ＭＡＸ０、初期最小値ｍｉｎ０、及び初期最大値ＭＡＸ０と初期最小値ｍｉｎ０の平均値Ａｖｅから構成される。そして、入力ファイル生成部１５２は、３つの仮セットアップ時間ＭＡＸ０、ｍｉｎ０、Ａｖｅのそれぞれに対応した信号対（データ信号ＤＡＴＡ、クロック信号ＣＬＫ）を示す３つの入力ファイル１１１を作成する。作成された入力ファイル１１１は、記憶装置１１０に格納される。
【００４５】
精度決定部１５３は、スコープデータＤＳを受け取り、設定されたスコープＳＣ（初期スコープＳＣ０）の大きさに基づいて、シミュレーション精度を決定する。具体的には、精度決定部１５３は、スコープＳＣの大きさが小さくなるほどシミュレーション精度が高くなるように、そのシミュレーション精度を決定する。ここで、精度決定部１５３は、所定の関数を用いることによってシミュレーション精度を算出してもよい。あるいは、精度決定部１５３は、記憶装置１１０に格納された精度決定テーブル３０を参照することによって、シミュレーション精度を決定してもよい。そして、精度決定部１５３は、決定されたシミュレーション精度を示すパラメータ群ＰＡをシミュレータ１６０に出力する。
【００４６】
次に、シミュレータ１６０は、精度決定部１５３からのパラメータ群ＰＡに基づいて、シミュレーション精度を設定する。また、シミュレータ１６０は、入力ファイル作成部１５２によって作成された入力ファイル１１１を、記憶装置１１０から読み込む。更に、シミュレータ１６０は、記憶装置１１０に格納されたセル回路ライブラリ１１５から、検証対象のセルのレイアウトを示すセル回路データＤＣを読み込む。そして、シミュレータ１６０は、設定されたシミュレーション精度、入力ファイル１１１、及びセル回路データＤＣに基づいて、シミュレーションを実行する。シミュレーションの結果を示す結果ファイル１１２は、記憶装置１１０に格納される。
【００４７】
次に、解探索部１５１は、記憶装置１１０から結果ファイル１１２を読み込む。この解探索部１５１は、「バイナリサーチ法」を実行するようにプログラムされている。つまり、解探索部１５１は、上記シミュレーションの結果に基づいて、３つの仮セットアップ時間（初期最大値ＭＡＸ０、初期最小値ｍｉｎ０、平均値Ａｖｅ）から２つ（平均値Ａｖｅ、初期最小値ｍｉｎ０）を抽出する。これら２つの仮セットアップ時間は、セルの正常動作と異常動作の境界値に最も近い２つの値を示す。そして、解探索部１５１は、これら２つの仮セットアップ時間（平均値Ａｖｅ、初期最小値ｍｉｎ０）によって規定される範囲を新たなスコープＳＣ１として設定し、その新たなスコープＳＣ１を示すスコープデータＤＳを、入力ファイル生成部１５２と精度決定部１５３に出力する。
【００４８】
以下、ライブラリ作成ソフトウェア１５０とシミュレータ１６０によって、同様の処理が繰り返される。そして、スコープＳＣの大きさが所定の基準値以下になった時、解探索部１５１は、そのスコープＳＣに基づいて、解である「セットアップ時間」を決定する。解探索部１５１は、決定されたセットアップ時間Ｓｉｊ（ｉは１以上ｘ以下の整数，ｊは１以上ｙ以下の整数）を、記憶装置１１０に格納されたセットアップ時間テーブル２１（図４参照）に追加する。
【００４９】
ホールド時間テーブル２２、リリース時間テーブル２３、最小パルス幅テーブル２４（図２参照）を作成する場合も、同様である。このような動作を繰り返すことによって、タイミング制約ライブラリ１０が作成されていく。
【００５０】
図１０は、本実施の形態に係るタイミング制約ライブラリ１０の作成方法を要約して示すフローチャートである。まず、初期最大値ＭＡＸ０と初期最小値ｍｉｎ０を決定することにより、スコープＳＣの初期設定が行われる（ステップＳ１）。次に、設定されたスコープＳＣから、複数の「仮タイミング制約値（例示：仮セットアップ時間）」が選択される（ステップＳ２）。この複数の仮タイミング制約値は、例えば、スコープＳＣの最大値ＭＡＸ、最小値ｍｉｎ、及び平均値Ａｖｅから構成される。次に、設定されたスコープＳＣの大きさ（ＭＡＸ−ｍｉｎ）に基づいて、シミュレーション精度が設定される（ステップＳ３）。具体的には、スコープＳＣの大きさが小さくなるほど、シミュレーション精度は高く設定される。次に、設定されたシミュレーション精度に基づき、複数の仮タイミング制約値の各々を用いてシミュレーションが実行される（ステップＳ４）。次に、そのシミュレーションの結果の解析に基づいて、スコープＳＣが縮小され、新たなスコープＳＣが設定される（ステップＳ５）。スコープＳＣの大きさが所定の基準値より大きい場合（ステップＳ６；Ｎｏ）、上記ステップＳ２〜Ｓ５が繰り返される。スコープＳＣの大きさが所定の基準値以下の場合（ステップＳ６；Ｙｅｓ）、最終的な解としてのタイミング制約値が決定される（ステップＳ７）。
【００５１】
以上に説明されたように、本発明に係るタイミング制約ライブラリ１０の作成方法及び作成システム１００によれば、シミュレーション初期の間は荒い精度で計算が行われ、解に近づくほど細かい精度で計算が行われる。シミュレーション初期における計算負荷が低減されるので、シミュレーション時間が削減される。すなわち、タイミング制約ライブラリ１０を作成する時間が短縮される。また、解の所在が分かってきた段階で、シミュレーション精度は高くなるので、最終的に求まる解の精度は保たれる。すなわち、タイミング制約ライブラリ１０の精度は保たれる。
【００５２】
（第２の実施の形態）
図２に示された各テーブルは、複数の条件のそれぞれに対してタイミング制約値を示す。例えば、図４に示されたように、セットアップ時間テーブル２１は、入力波形鈍りａ１〜ａｘとクロック波形鈍りｂ１〜ｂｙに対するセットアップ時間Ｓｘｙを示している。この時、複数の条件のうちある条件（第１条件）に対するタイミング制約値（第１タイミング制約値）と、その第１条件に近い第２条件に対するタイミング制約値（第２タイミング制約値）はわずかに異なるだけであると考えられる。従って、第２タイミング制約値を求める際、既知の第１タイミング制約値の近傍を解の探索範囲として設定すれば十分であると考えられる。つまり、第２タイミング制約値を求める際の初期スコープＳＣ０は、第１タイミング制約値を求めた際の初期スコープＳＣ０より小さく設定されても十分であると考えられる。これにより、第２タイミング制約値を求める時間が、更に低減される。
【００５３】
図１１は、本発明の第２の実施の形態に係るタイミング制約ライブラリ作成システム１００の動作を概念的に説明する図である。本実施の形態に係るタイミング制約ライブラリ作成システム１００の構成は、図８に示された構成と同様である。まず、ライブラリ作成ソフトウェア１５０は、第１の実施の形態で示された方法によって、第１条件に対応する第１タイミング制約値を求める。
【００５４】
次に、第１条件と異なる第２条件に対応した第２タイミング制約値を求める際、ライブラリ作成ソフトウェア１５０は、既知の第１タイミング制約値をタイミング制約ライブラリ１０から読み込む。そして、ライブラリ作成ソフトウェア１５０は、読み込んだ第１タイミング制約値を含む所定の範囲を、新たな初期スコープＳＣ０として設定する。ここで、この新たな初期スコープＳＣ０は、第１タイミング制約値を求めた際の初期スコープＳＣ０より小さい。例えば、新たな初期スコープＳＣ０の初期最大値ＭＡＸ０は、既知の第１タイミング制約値に所定の値ｗが加えられた値に設定され、新たな初期スコープＳＣ０の初期最小値ｍｉｎ０は、既知の第１タイミング制約値から所定の値ｗが引かれた値に設定される。すなわち、新たな初期スコープＳＣ０の中央値は、既知の第１タイミング制約値である。そして、ライブラリ作成ソフトウェア１５０は、この新たな初期スコープＳＣ０を用い、第１の実施の形態で示された動作を実行することによって、第２条件に対応する第２タイミング制約値を求める。特に、第２条件が第１条件に最も近い場合、第２タイミング制約値を求める時間が削減され好適である。
【００５５】
以下、更に具体的な例を示す。図４に示されたように、セットアップ時間テーブル２１は、入力波形鈍りａ１〜ａｘとクロック波形鈍りｂ１〜ｂｙに対するセットアップ時間Ｓｉｊ（ｉは１以上ｘ以下の整数，ｊは１以上ｙ以下の整数）を示している。ここで、入力波形鈍りａ１〜ａｘが示す値は、昇順あるいは降順にソートされているものとする。また、クロック波形鈍りｂ１〜ｂｙが示す値は、昇順あるいは降順にソートされているものとする。つまり、セットアップ時間テーブル２１において、隣接する２つの要素は近い条件に対する２つのセットアップ時間を示している。
【００５６】
この時、セットアップ時間Ｓｉｊに基づいて、セットアップ時間Ｓｉ＋１,ｊ、Ｓｉ,ｊ＋１、Ｓｉ＋１,ｊ＋１が求められると好ましい。例えば、入力波形鈍りａ１とクロック波形鈍りｂ１に対するセットアップ時間Ｓ１１が最初に求められる。次に、求められたセットアップ時間Ｓ１１に基づいて、セットアップ時間Ｓ１２、Ｓ２１、Ｓ２２が求められる。次に、求められたセットアップ時間Ｓ１２及びＳ２１に基づいて、セットアップ時間Ｓ１３及びＳ３１がそれぞれ求められる。更に、求められたセットアップ時間Ｓ２２に基づいて、セットアップ時間Ｓ２３、Ｓ３２、Ｓ３３が求められる。このような処理が繰り返され、最終的にセットアップ時間Ｓｘ１〜Ｓｘ（ｙ−１）、Ｓ１ｙ〜Ｓ（ｘ−１）ｙ、及びＳｘｙが求められる。このようにして、セットアップ時間テーブル２１の全ての要素が短時間で効率的に決定される。
【００５７】
図１２は、本実施の形態に係るタイミング制約ライブラリ１０の作成方法を要約して示すフローチャートである。まず、第１の実施の形態と同じ方法で、ある条件に対応するタイミング制約値が求められる（ステップＳ１１）。次に、タイミング制約テーブル（２１、２２、２３、２４）から別の条件が選択される（ステップＳ１２）。次に、その別の条件に最も近い条件に対応した「既知のタイミング制約値」が読み込まれる（ステップＳ１３）。次に、その既知のタイミング制約値に基づいて、新たな初期スコープＳＣ０が設定される（ステップＳ１４）。次に、その新たな初期スコープＳＣ０を用いることによって、その別の条件に対応するタイミング制約値が求められる（ステップＳ１５）。全ての条件に対して処理が終わっていない場合（ステップＳ１６；Ｎｏ）、上述のステップＳ１２〜Ｓ１５が繰り返される。全ての条件に対して処理が終了すると（ステップＳ１６；Ｙｅｓ）、タイミング制約テーブルが完成する（ステップＳ１７）。本実施の形態によれば、シミュレーション回数が削減されるため、タイミング制約ライブラリ１０を作成する時間が短縮される。
【００５８】
（第３の実施の形態）
スコープＳＣから解を探索するアルゴリズムは、「バイナリサーチ法」に限られない。図１３は、本発明の第３の実施の形態に係る解（セットアップ時間）の探索方法を説明するための概念図である。図中のグラフの縦軸は、遅延時間Δｔを示している。
【００５９】
まず、初期最大値ＭＡＸ０と初期最小値ｍｉｎ０が適宜設定され、解の探索範囲としての初期スコープ（初期範囲）ＳＣ０が決定される。この初期スコープＳＣ０は、求めるべきタイミング制約値を含んでいる。次に、初期スコープＳＣ０からｎ個（ｎは３以上の整数）の仮タイミング制約値が選択される。そのｎ個の仮タイミング制約値は、初期最大値ＭＡＸ０、初期最小値ｍｉｎ０、及び（ｎ−２）個の中央値Ｉｎｔから構成される。これらｎ個の仮タイミング制約値によって、初期スコープＳＣ０は（ｎ−１）個の範囲に等分割される。図１３においては、ｎが５に設定された場合の例が示されている。尚、上述の第１及び第２の実施の形態におけるバイナリサーチ法は、ｎが３に設定された特別な場合に対応している。
【００６０】
次に、それら５個の仮セットアップ時間ＭＡＸ０、ｍｉｎ０、Ｉｎｔ１〜Ｉｎｔ３の各々に基づいて、セルが正常に動作するかどうかのシミュレーションが実行される。図１３に示された例の場合、初期最大値ＭＡＸ０、中間値Ｉｎｔ１、Ｉｎｔ２に基づいたシミュレーションの結果、セルが正常に動作（図中、「ＯＫ」で示されている）したとする。また、中間値Ｉｎｔ３と初期最小値ｍｉｎ０に基づいたシミュレーションの結果、セルが正常に動作しなかった（図中、「ＮＧ」で示されている）とする。この時、求めるべき解、すなわちセルの正常動作（ＯＫ）と異常動作（ＮＧ）の境界は、中間値Ｉｎｔ２と中間値Ｉｎｔ３の間に存在することは明らかである。よって、５つの仮セットアップ時間ＭＡＸ０、ｍｉｎ０、Ｉｎｔ１〜Ｉｎｔ３の中から、求めるべき解に最も近い２つの仮セットアップ時間Ｉｎｔ２、Ｉｎｔ３が選択され抽出される。
【００６１】
次に、これら抽出された２つの仮セットアップ時間Ｉｎｔ２、Ｉｎｔ３によって規定される範囲が、新たなスコープＳＣ１として設定される。つまり、抽出された仮セットアップ時間Ｉｎｔ２が、新たなスコープＳＣ１の最大値ＭＡＸに設定され、抽出された仮セットアップ時間Ｉｎｔ３が、新たなスコープＳＣ１の最小値ｍｉｎに設定される。この時、新たなスコープＳＣ１の大きさは、ＳＣ１＝ＭＡＸ−ｍｉｎで与えられる。次に、この新たなスコープＳＣ１を用いて上述の処理が繰り返される。
【００６２】
スコープＳＣの大きさが所定の基準値（粒度）以下になるまで、上述の動作が繰り返される。スコープＳＣの大きさが所定の基準値以下になった時、そのスコープＳＣに基づいて、タイミング制約値が求められる。このようにして、タイミング制約ライブラリ１０が作成される。本実施の形態においても、シミュレーション精度は、スコープＳＣの大きさ（ＭＡＸ−ｍｉｎ）に基づいて設定される。具体的には、スコープＳＣの大きさが小さくなるほど、シミュレーション精度は高くなるように設定される。
【００６３】
このような作成方法を実現するためのシステムの構成・動作は、図８及び図９に示されたタイミング制約ライブラリ作成システム１００の構成・動作と同様である。また、図１１に示されたように、既知のタイミング制約値に基づいて他のタイミング制約値が求められてもよい。このように、本実施の形態に係るタイミング制約ライブラリ１０の作成方法及び作成システム１００によれば、シミュレーション初期における計算負荷が低減されるので、シミュレーション時間が削減される。すなわち、タイミング制約ライブラリ１０を作成する時間が短縮される。また、解の所在が分かってきた段階で、シミュレーション精度は高くなるので、最終的に求まる解の精度は保たれる。すなわち、タイミング制約ライブラリ１０の精度は保たれる。
【図面の簡単な説明】
【００６４】
【図１】図１は、本発明の実施の形態におけるタイミング制約ライブラリの構成を示す概念図である。
【図２】図２は、本発明の実施の形態におけるタイミング制約ライブラリの構成を示す概念図である。
【図３】図３は、本発明の実施の形態におけるタイミング制約値を説明するための概念図である。
【図４】図４は、本発明の実施の形態におけるタイミング制約テーブルを説明するための概念図である。
【図５】図５は、本発明の第１の実施の形態に係るタイミング制約ライブラリの作成方法を示す概念図である。
【図６】図６は、本発明の第１の実施の形態に係るタイミング制約ライブラリの作成方法を示す概念図である。
【図７】図７は、本発明の第１の実施の形態に係る精度決定テーブルを示す概念図である。
【図８】図８は、本発明の第１の実施の形態に係るタイミング制約ライブラリの作成システムの構成を示すブロック図である。
【図９】図９は、本発明の第１の実施の形態に係るタイミング制約ライブラリの作成システムの動作を示すブロック図である。
【図１０】図１０は、本発明の第１の実施の形態に係るタイミング制約ライブラリの作成方法を示すフローチャートである。
【図１１】図１１は、本発明の第２の実施の形態に係るタイミング制約ライブラリの作成方法を示す概念図である。
【図１２】図１２は、本発明の第２の実施の形態に係るタイミング制約ライブラリの作成方法を示すフローチャートである。
【図１３】図１３は、本発明の第３の実施の形態に係るタイミング制約ライブラリの作成方法を示す概念図である。
【符号の説明】
【００６５】
１０    タイミング制約ライブラリ
１１    第１セル用制約テーブル群
１２    第２セル用制約テーブル群
１３    第３セル用制約テーブル群
２１    セットアップ時間テーブル
２２    ホールド時間テーブル
２３    リリース時間テーブル
２４    最小パルス幅テーブル
３０    精度決定テーブル
１００    タイミング制約ライブラリ作成システム
１１０    記憶装置
１１１    入力ファイル
１１２    結果ファイル
１１５    セル回路ライブラリ
１２０    演算処理装置
１３０    入力装置
１４０    出力装置
１５０    ライブラリ作成ソフトウェア
１５１    解探索部
１５２    入力ファイル生成部
１５３    精度決定部
１６０    シミュレータ
【図１】
2006039614.tif 000003
【図２】
2006039614.tif 000004
【図３】
2006039614.tif 000005
【図４】
2006039614.tif 000006
【図５】
2006039614.tif 000007
【図６】
2006039614.tif 000008
【図７】
2006039614.tif 000009
【図８】
2006039614.tif 000010
【図９】
2006039614.tif 000011
【図１０】
2006039614.tif 000012
【図１１】
2006039614.tif 000013
【図１２】
2006039614.tif 000014
【図１３】
2006039614.tif 000015