(57)【要約】      （修正有）【課題】隣接するセルインスタンス同士の相互作用に起因して、同じセルの異なるインスタンスに含まれる同じ構造の素子が異なる特性を有することになる問題点を少なくとも軽減する。【解決手段】ゲートレベル回路設計を表現するゲートレベル回路設計データを取得し、ゲートレベル回路設計データは複数のセルの各々についての１つ以上のインスタンスを含み、各々のセルを対応するデフォルトセル静的タイミングデータと対応するデフォルトセルストレスデータに関連付け、複数のセルのうちの何れかのインスタンスを選択し、関連するインデザインストレスデータを決定し、インデザインストレスデータがデフォルトセルストレスデータの許容範囲内ではないことに応答して、選択したインスタンスのタイミングパフォーマンスを表現するインデザイン静的タイミングデータを生成してインスタンスに関連付けるように、ゲートレベル回路設計データを更新する。【選択図】図３Ａ
2015230726.tif 000002
【特許請求の範囲】
【請求項１】
ゲートレベル回路設計を表現するゲートレベル回路設計データを取得するステップであって、前記ゲートレベル回路設計データは複数のセルの各々についての１つ以上のインスタンスを含み、前記複数のセルのうちの各々のセルは、タイミングライブラリに保存される対応するデフォルトセル静的タイミングデータと対応するデフォルトセルストレスデータとに関連付けられる、ステップと、
前記複数のセルのうちの何れかについての何れかのインスタンスを選択するステップと、
前記ゲートレベル回路設計における選択されるインスタンスに関連する１つ以上のインデザインストレスパラメータを表現するインデザインストレスデータを決定するステップと、
前記インデザインストレスデータが、前記選択されるインスタンスに関連する前記デフォルトセルストレスデータの許容範囲内であるか否かを判断するステップと、
を有する方法であって、
前記インデザインストレスデータが、前記デフォルトセルストレスデータの許容範囲内ではないことに応答して、当該方法は、
前記選択されるインスタンスのインデザインストレスデータに基づいて、前記ゲートレベル回路設計における前記選択されるインスタンスに関するタイミングパフォーマンスを表現するインデザイン静的タイミングデータを生成するステップと、
前記選択されるインスタンスに関するタイミングパフォーマンスを表現する前記インデザイン静的タイミングデータを、前記タイミングライブラリに加えるステップと、
前記ゲートレベル回路設計のルーティングの間に、前記選択されるインスタンスが前記インデザイン静的タイミングデータに関連付けられるように、前記ゲートレベル回路設計データを更新するステップと、
を有する方法。
【請求項２】
前記ゲートレベル回路設計データを更新するステップは、前記タイミングライブラリにおけるインデザイン静的タイミングデータにタグが関連付けられるように、前記選択されるインスタンスに関連付けられる前記ゲートレベル回路設計データにおける前記タグを更新するステップを含む、請求項１に記載の方法。
【請求項３】
前記インデザインストレスパラメータは、前記複数のセルのうちの何れか又は前記複数のセルのうちの他の何れかについての１つ以上の他のインスタンスと、前記選択されるインスタンスとの物理的な相互作用を表現する、請求項１に記載の方法。
【請求項４】
前記インデザインストレスデータが前記デフォルトセルストレスデータの許容範囲内であることに応答して、前記複数のセルのうちの何れかについての別の何れかのインスタンスを選択するステップを更に有する請求項１に記載の方法。
【請求項５】
前記デフォルトセルストレスデータは、前記選択されるインスタンスに関連する１つ以上のデフォルトストレスパラメータを表現し、
前記インデザインストレスデータが、前記選択されるインスタンスに関連する前記デフォルトセルストレスデータの許容範囲内であるか否かを判断するステップは、
前記インデザインストレスパラメータと前記デフォルトストレスパラメータとを比較するステップと、
前記選択されるインスタンスの前記インデザイン静的タイミングデータが、前記選択されるインスタンスの前記デフォルトセル静的タイミングデータに合致しない場合には、前記インデザインストレスパラメータは前記デフォルトストレスパラメータに合致しないと判断するステップと
を含む、請求項１に記載の方法。
【請求項６】
前記複数のセルのうちの何れかについての何れかのインスタンスを選択するステップの前に、当該方法は、
前記ゲートレベル回路設計データのルーティングを行うステップと、
ルーティングされたゲートレベル回路設計データから経路を選択するステップであって、前記複数のセルのうちの何れかについての前記選択されるインスタンスは、選択された経路から選択される、ステップと、
を更に有する請求項１に記載の方法。
【請求項７】
当該方法は、前記ルーティングされたゲートレベル回路設計データによる１つ以上の経路についてタイミングパフォーマンスを判定するステップを更に有し、
前記選択された経路は、前記１つ以上の経路のタイミングパフォーマンスに基づいて、指定されるタイミング許容範囲の外にある１つ以上の経路のうちの何れかである、請求項６に記載の方法。
【請求項８】
システムであって、
プロセッサと、
前記プロセッサにより実行される場合に当該システムに処理を実行させる命令を保存する一時的でないメモリと、
を有し、前記処理は、
ゲートレベル回路設計を表現するゲートレベル回路設計データを取得するステップであって、前記ゲートレベル回路設計データは複数のセルの各々についての１つ以上のインスタンスを含み、前記複数のセルのうちの各々のセルは、タイミングライブラリに保存される対応するデフォルトセル静的タイミングデータと対応するデフォルトセルストレスデータとに関連付けられる、ステップと、
前記複数のセルのうちの何れかについての何れかのインスタンスを選択するステップと、
前記ゲートレベル回路設計における選択されるインスタンスに関連する１つ以上のインデザインストレスパラメータを表現するインデザインストレスデータを決定するステップと、
前記インデザインストレスデータが、前記選択されるインスタンスに関連する前記デフォルトセルストレスデータの許容範囲内であるか否かを判断するステップとを有し、
前記インデザインストレスデータが、前記デフォルトセルストレスデータの許容範囲内ではないことに応答して、当該処理は、
前記選択されるインスタンスのインデザインストレスデータに基づいて、前記ゲートレベル回路設計における前記選択されるインスタンスに関するタイミングパフォーマンスを表現するインデザイン静的タイミングデータを生成するステップと、
前記選択されるインスタンスに関するタイミングパフォーマンスを表現する前記インデザイン静的タイミングデータを、前記タイミングライブラリに加えるステップと、
前記ゲートレベル回路設計のルーティングの間に、前記選択されるインスタンスが前記インデザイン静的タイミングデータに関連付けられるように、前記ゲートレベル回路設計データを更新するステップと、
を有する、システム。
【請求項９】
前記ゲートレベル回路設計データを更新するステップは、前記タイミングライブラリにおけるインデザイン静的タイミングデータにタグが関連付けられるように、前記選択されるインスタンスに関連付けられる前記ゲートレベル回路設計データにおける前記タグを更新するステップを含む、請求項８に記載のシステム。
【請求項１０】
前記処理は、前記インデザインストレスデータが前記デフォルトセルストレスデータの許容範囲内であることに応答して、前記複数のセルのうちの何れかについての別の何れかのインスタンスを選択するステップを更に有する、請求項８に記載の方法。
【請求項１１】
前記デフォルトセルストレスデータは、前記選択されるインスタンスに関連する１つ以上のデフォルトストレスパラメータを表現し、
前記許容範囲に合致するのは、前記インデザインストレスパラメータが前記デフォルトストレスパラメータに合致する場合である、請求項８に記載のシステム。
【請求項１２】
前記デフォルトセルストレスデータは、前記選択されるインスタンスに関連する１つ以上のデフォルトストレスパラメータを表現し、
前記インデザインストレスデータが、前記選択されるインスタンスに関連する前記デフォルトセルストレスデータの許容範囲内であるか否かを判断するステップは、
前記インデザインストレスパラメータと前記デフォルトストレスパラメータとを比較するステップと、
前記選択されるインスタンスの前記インデザイン静的タイミングデータが、前記選択されるインスタンスの前記デフォルトセル静的タイミングデータに合致しない場合には、前記インデザインストレスパラメータは前記デフォルトストレスパラメータに合致しないと判断するステップと
を含む、請求項８に記載のシステム。
【請求項１３】
前記複数のセルのうちの何れかについての何れかのインスタンスを選択するステップの前に、当該処理は、
前記ゲートレベル回路設計データのルーティングを行うステップと、
ルーティングされたゲートレベル回路設計データから経路を選択するステップであって、前記複数のセルのうちの何れかについての前記選択されるインスタンスは、選択された経路から選択される、ステップと、
を更に有する、請求項８に記載のシステム。
【請求項１４】
当該処理は、前記ルーティングされたゲートレベル回路設計データによる１つ以上の経路についてタイミングパフォーマンスを判定するステップを更に有し、
前記選択された経路は、前記１つ以上の経路のタイミングパフォーマンスに基づいて、指定されるタイミング許容範囲の外にある１つ以上の経路のうちの何れかである、請求項１３に記載のシステム。
【請求項１５】
ゲートレベル回路設計を表現するゲートレベル回路設計データを取得するステップであって、前記ゲートレベル回路設計データは複数のセルの各々についての１つ以上のインスタンスを含み、前記複数のセルのうちの各々のセルは、複数のデフォルトセルストレスレイアウトと各自の対応するセルの静的タイミングデータとに関連付けられる、ステップと、
前記複数のセルのうちの何れかについての何れかのインスタンスを選択するステップであって、選択されるインスタンスは、前記複数のセルのうち当該インスタンスが選択されるセルに対する複数のデフォルトセルストレスレイアウトのうちの何れかに関連付けられる、ステップと、
前記ゲートレベル回路設計における選択されるインスタンスに関連する１つ以上のインデザインストレスパラメータを表現するインデザインストレスデータを決定するステップと、
前記インデザインストレスデータが、前記選択されるインスタンスに関連する前記複数のデフォルトセルストレスレイアウトのうちの何れかについての許容範囲内であるか否かを判断するステップと、
を有する方法であって、
前記インデザインストレスデータが、前記複数のデフォルトセルストレスレイアウトのうちの何れかについての許容範囲内ではないことに応答して、当該方法は、
前記選択されるインスタンスのインデザインストレスデータに基づいて、前記複数のデフォルトセルストレスレイアウトのうちの別の何れかを選択するステップと、
前記ゲートレベル回路設計のルーティングの間に、前記選択されるインスタンスが、前記複数のデフォルトセルストレスレイアウトのうちの他の何れかとそれに対応するセルの静的タイミングデータとに関連付けられるように、前記ゲートレベル回路設計データを更新するステップと、
を有する方法。
【請求項１６】
前記インデザインストレスパラメータは、前記複数のセルのうちの何れか又は前記複数のセルのうちの他の何れかについての１つ以上の他のインスタンスと、前記選択されるインスタンスとの物理的な相互作用を表現する、請求項１５に記載の方法。
【請求項１７】
前記インデザインストレスデータが前記デフォルトセルストレスデータの許容範囲内であることに応答して、前記複数のセルのうちの何れかについての別の何れかのインスタンスを選択するステップであって、選択される別のインスタンスは、前記複数のデフォルトセルストレスレイアウトの何れかに関連付けられる、ステップを更に有する請求項１５に記載の方法。
【請求項１８】
前記複数のデフォルトセルストレスレイアウトのうちの何れかは、前記選択されるインスタンスに関連する１つ以上のレイアウトストレスパラメータを表現し、
前記インデザインストレスデータが、前記選択されるインスタンスに関連する前記複数のデフォルトセルストレスレイアウトのうちの何れかについての許容範囲内であるか否かを判断するステップは、
前記インデザインストレスパラメータと前記レイアウトストレスパラメータとを比較するステップと、
前記選択されるインスタンスの前記インデザイン静的タイミングデータが、前記選択されるインスタンスに関連する前記複数のデフォルトセルストレスレイアウトのうちの何れかについてのセルの静的タイミングデータに合致しない場合には、前記インデザインストレスパラメータは前記デフォルトストレスパラメータに合致しないと判断するステップと
を含む、請求項１５に記載の方法。
【請求項１９】
前記複数のセルのうちの何れかについての何れかのインスタンスを選択するステップの前に、当該方法は、
前記ゲートレベル回路設計データのルーティングを行うステップと、
ルーティングされたゲートレベル回路設計データから経路を選択するステップであって、前記複数のセルのうちの何れかについての前記選択されるインスタンスは、選択された経路から選択される、ステップと、
を更に有する請求項１５に記載の方法。
【請求項２０】
当該方法は、前記ルーティングされたゲートレベル回路設計データによる１つ以上の経路についてタイミングパフォーマンスを判定するステップを更に有し、
前記選択された経路は、前記１つ以上の経路のタイミングパフォーマンスに基づいて、指定されるタイミング許容範囲の外にある１つ以上の経路のうちの何れかである、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示される実施形態はインスタンスベースの規則的な変動が存在する場合において静的タイミング分析を実行すること等に関連する。
【背景技術】
【０００２】
静的タイミング分析(Static  Timing  Analysis：STA)は、同期ディジタルシステムにおける遅延を計算し、タイミング仕様に対する適合性を確認するために使用されている。STAに対する改善が加えられている。例えば、ランダムなプロセス変動を取り扱うために統計的方法のアプリケーションに改善が加えられている。
【０００３】
STAアルゴリズムで前提とする基本的な仮定は、セルモデルを構築するために例えばSPICEシミュレータを用いて、論理セルのライブラリが予め特徴付けられていること、及び、これらのモデルが特定のセルの各々のインスタンス(instance)に使用されてよいことである。「SPICE」は、「スパイス」とも言及され、集積回路強調シミュレーションプログラム(Simulation  Program  with  Integrated  Circuit  Emphasis)を表す。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、電界効果トランジスタ(Field-Effect  Transistor：FET)の移動度を向上させるために物理的なストレイン(strain)を利用するディープサブミクロンプロセスでは、隣接するセルインスタンス同士の相互作用が、同じセルの異なるインスタンス内の同じトランジスタのキャリア移動度をかなり相違させるかもしれない。「ストレイン」は「ひずみ」、「歪」、「変形」等と言及されてもよい。この点を図1で説明する。ここで、同じ2入力NOR(又は2-in  NOR)のインスタンスI1及びI2は、隣接するセルとの相互作用の相違に起因して、異なるMOSFETストレインを有し；このため、これらの2-in-NORは、同じレイアウトを有するにもかかわらず、異なる電気的特性を有する。その結果、セルベースのモデリングアルゴリズムは破綻してしまうことが懸念される。この問題を緩和する様々な手法が存在する。以下、それらのうちの3つの手法を説明する。
【０００５】
第1の手法は、様々なレイアウトにおけるセル各々のシミュレーションを行い、統計的なモデルを構築することである。この手法の問題は、ランダムな変動があるにもかかわらず、個々のインスタンスが規則的又は一律的な変動(systematic  variation)を持ってしまうことである。知り得る規則的な変動とともにこの問題に統計的モデルを適用すると、過剰に控えめ(pessimistic)になり、長時間のサイクルタイム或いは不要な短経路の詰め込みを招いてしまう。
【０００６】
第2の手法は、最小及び最大のストレイン条件で各々のセルのシミュレーションを行い、コーナーモデル(corner  model)を構築することである。この手法の問題点も上記の第1の手法と類似しており：各々のインスタンスのストレインはレイアウトから知り得るが、最悪ケースのモデルを適用するので過剰に控えめになり、長時間のサイクルタイム或いは不要な短経路の詰め込みを招いてしまう。
【０００７】
第3の手法は、1つのタイミングモデルが全てのインスタンスについて正確に遅延を予測できるように、FETにおけるストレインを等しくする厳格な設計ルールを強制することである。この手法の問題点は、固定されたFETサイズ(ゲートアレイスタイル)のレイアウトとなってしまうことであり、制約の少ない標準的なセルスタイルレイアウトと比較して、最善ではないセルライブラリパフォーマンスとなってしまうことである。この手法は図2で説明される。図2においては、トランジスタが同じ幅を有することを仮定している。従って、同じ2-in-NORのインスタンスI1及びI2は、隣接するセルと同じ相互作用を受けることに起因して、同じMOSFETストレイン及び電気特性を有する。
【０００８】
本願の対象は、何れの問題点をも解決する実施形態や、上記のような環境においてのみ動作する実施形態には限定されない。むしろ上記の背景技術に関連する事項は本願で説明される実施形態が使用されてもよい技術分野の一例を説明するために提供されているに過ぎない。
【課題を解決するための手段】
【０００９】
一実施形態による方法は、
ゲートレベル回路設計を表現するゲートレベル回路設計データを取得するステップであって、前記ゲートレベル回路設計データは複数のセルの各々についての１つ以上のインスタンスを含み、前記複数のセルのうちの各々のセルは、タイミングライブラリに保存される対応するデフォルトセル静的タイミングデータと対応するデフォルトセルストレスデータとに関連付けられる、ステップと、
前記複数のセルのうちの何れかについての何れかのインスタンスを選択するステップと、
前記ゲートレベル回路設計における選択されるインスタンスに関連する１つ以上のインデザインストレスパラメータを表現するインデザインストレスデータを決定するステップと、
前記インデザインストレスデータが、前記選択されるインスタンスに関連する前記デフォルトセルストレスデータの許容範囲内であるか否かを判断するステップと、
を有する方法であって、
前記インデザインストレスデータが、前記デフォルトセルストレスデータの許容範囲内ではないことに応答して、当該方法は、
前記選択されるインスタンスのインデザインストレスデータに基づいて、前記ゲートレベル回路設計における前記選択されるインスタンスに関するタイミングパフォーマンスを表現するインデザイン静的タイミングデータを生成するステップと、
前記選択されるインスタンスに関するタイミングパフォーマンスを表現する前記インデザイン静的タイミングデータを、前記タイミングライブラリに加えるステップと、
前記ゲートレベル回路設計のルーティングの間に、前記選択されるインスタンスが前記インデザイン静的タイミングデータに関連付けられるように、前記ゲートレベル回路設計データを更新するステップと、
を有する方法である。
【図面の簡単な説明】
【００１０】
【図１】同じ標準セルのうちの2つのインスタンスの間で隣接相互作用が異なることを説明するための集積回路を示す図。
【図２】実際の隣接セルによらず、異なるインスタンスの隣接セル相互作用を等しくするように標準セルに設計ルールを強制する手法を説明するための集積回路を示す図。
【図３Ａ】改善された静的タイミング分析用に決定される物理設計フローについての例示的なプロセスフロー図。
【図３Ｂ】改善された静的タイミング分析用に決定される物理設計フローについての例示的なプロセスフロー図。
【図４】例示的な分析モジュールのブロック図。
【図５】物理設計フローについての方法例を示す図。
【図６】物理設計フローについての別の方法例を示す図。
【発明を実施するための形態】
【００１１】
＜実施形態の概要＞
本方法は、ゲートレベル回路設計を表現するゲートレベル回路設計データを取得することを含む。前記ゲートレベル回路設計データは複数のセルの各々についての１つ以上のインスタンスを含む。前記複数のセルのうちの各々のセルは、タイミングライブラリに保存される対応するデフォルトセル静的タイミングデータと対応するデフォルトセルストレスデータとに関連付けられる。本方法は、前記複数のセルのうちの何れかについての何れかのインスタンスを選択することと、前記ゲートレベル回路設計における選択されるインスタンスに関連する１つ以上のインデザインストレスパラメータを表現するインデザインストレスデータを決定することとを含む。本方法は、前記インデザインストレスデータが、前記選択されるインスタンスに関連する前記デフォルトセルストレスデータの許容範囲内であるか否かを判断することも含む。前記インデザインストレスデータが、前記デフォルトセルストレスデータの許容範囲内ではないことに応答して、当該方法は、幾つかの処理を実行する。それらの処理は、前記選択されるインスタンスのインデザインストレスデータに基づいて、前記ゲートレベル回路設計における前記選択されるインスタンスに関するタイミングパフォーマンスを表現するインデザイン静的タイミングデータを生成することを含む。代替的又は追加的に、処理は、前記選択されるインスタンスに関するタイミングパフォーマンスを表現する前記インデザイン静的タイミングデータを、前記タイミングライブラリに加えることと、前記ゲートレベル回路設計のルーティングの間に、前記選択されるインスタンスが前記インデザイン静的タイミングデータに関連付けられるように、前記ゲートレベル回路設計データを更新することとを含む。
【００１２】
＜図面＞
添付図面を利用することにより追加的な特徴及び詳細事項とともに実施形態が説明及び例示される。
【００１３】
図1は、同じ標準セルのうちの2つのインスタンスの間で隣接相互作用が異なることを説明するための集積回路を示す。
【００１４】
図2は、実際の隣接セルによらず、異なるインスタンスの隣接セル相互作用を等しくするように標準セルに設計ルールを強制する手法を説明するための集積回路を示す。
【００１５】
図3A及び図3Bは、改善された静的タイミング分析用に決定される物理設計フローについての例示的なプロセスフロー図を示す。
【００１６】
図4は例示的な分析モジュールのブロック図を示す。
【００１７】
図5は物理設計フローについての方法例を示す。
【００１８】
図6は物理設計フローについての別の方法例を示す。
【００１９】
＜実施形態の詳細な説明＞
ディジタル集積回路の設計(「IC設計」)では、物理合成(physical  synthesis)は論理設計の後に続く標準的な設計サイクルである。「IC」は集積回路(Integrated  Circuit)を表す。このステップにおいて、設計の要素についての回路表現(デバイス及び相互接続)は、幾何学的な形状表現に変換され、幾何学的な形状表現は、対応する材料層で製造される場合に、要素の適切な機能を保証することを促す。「要素」は「素子」等と言及されてもよい。幾何学的表現は「集積回路レイアウト」と呼ばれてもよい。集積回路レイアウトはいくつかのサブステップに分割され、サブステップは、(1)レイアウトの設計フロー及び(2)レイアウトの検証(verification)の双方を含む。
【００２０】
レイアウトの設計フローは、IC設計の物理合成の段階に対するプロセス及びガイドライン/フレームワークを記述する。物理合成フローは、製造ハウス(fabrication  house)により使用される技術を利用してもよい。この技術は、特に、使用されるシリコンウェハのタイプ、レイアウトルール等を表すデータ及び情報を含んでもよい。使用される技術は、物理合成ソフトウエアにより使用される標準的な論理セルを設計するために使用され、本願において標準的な論理セル(standard  logic  cell)は単に「標準セル」或いは「セル」のように言及される場合がある。或いは、標準セル設計は製造ハウスによりなされてもよい。
【００２１】
本願による開示内容は、インスタンスベースの規則的な変動(instance-based  systematic  variations)が存在する場合における改善された静的タイミング分析のためになされる改善された設計フローに関連する。以下、本願により開示される実施形態を、添付図面を参照しながら説明する。
【００２２】
図3A及び図3Bを参照すると、改善された静的タイミング分析のためになされる物理合成についての本願において説明される少なくとも1つの実施形態によるプロセス例が示されている。個別的なブロックとして示されているが、所望の実施形態に依存して、様々なブロックが、追加的なブロックに分割されてもよいし、より少ない数のブロックに統合されてもよいし、或いは、省略されてもよい。
【００２３】
本願で開示されるこれら及び他のプロセス及び方法に関し、プロセス及び方法で実行される機能(又は処理)は異なる順序で実行されてもよいことを、当業者は認めるであろう。更に、説明されるステップ及び処理は具体例として提供されているにすぎず、開示される実施形態の本質から逸脱することなく、あるステップ及び処理は、選択的であってもよいし、より少ない数のステップ及び処理に統合されてもよいし、或いは、追加的なステップ及び処理に拡張されてもよい。
【００２４】
要素302は、1つ以上の標準セルレイアウトを表現するセルレイアウトデータであってもよい。標準セルは、回路設計で使用されてもよいコンポーネント(部品又は素子)の物理レイアウトであってもよい。標準セルはディジタルコンポーネントの物理レイアウトであってもよく、それは、論理ゲート(例えば、インバータ、AND、NOR、OR、NAND、XOR、FLIP_FLOP及びその他の論理ゲート等)のような1つ以上の能動的又は受動的なコンポーネントだけでなく、算術演算装置レジスタファイル及びメモリのような上位レベルのディジタル回路コンポーネントをも包含する。標準セルは1つ以上のコンポーネントを含んでいてもよい。各々の標準セルは、基本的な装置、基本的なFET及び金属配線から構築されてもよいが、場合によっては、レジスタ、ダイオード、キャパシタ、インダクタ及びバイポーラトランジスタ等から構築されてもよい。
【００２５】
標準セルについてのセルレイアウトデータ302は、物理的な場所と、標準セルのコンポーネント間の相互関係とを表現してもよい。更に、セルレイアウトデータ302は、標準セルにおけるコンポーネント同士の間の相互作用についてのストレスデータを包含するだけでなく、隣接するセルとの予想される相互作用についてのデフォルトストレスデータをも包含してよい。デフォルトストレスデータは、標準セルのコンポーネントとその近辺との相互作用に関連する平均的な又は最悪のストレス状態に基づいていてもよい。
【００２６】
標準セルのセルレイアウトデータ302は、標準セルレイアウトのライブラリとして保存されてもよい。セルレイアウトデータ302は、各々の標準セルについて、STAモデル構築ソフトウェア304を利用してデフォルトSTAモデルを生成するために使用されてもよい。デフォルトSTAモデルの各々は、デフォルトSTAモデルの各々に対応するデフォルトストレスデータを利用して生成されてもよい。以下において詳細に説明されるように、ゲートレベル回路設計で配置される標準セルのインスタンスから抽出されるデータに基づいて、追加的なSTAモデルも構築されてよく、ゲートレベル回路設計は、本願において「回路データ」と言及されるゲートレベル回路設計データにより表現される。回路データは配置とともに設計(Design  with  Placement)314に基づいてもよい。一実施形態では、プロセスフロー300の要素302及び308が、設計ライブラリを形成してもよい。
【００２７】
プロセスフロー300は設計データ306も含む。設計データ306は、ユーザにより実行される論理設計を表現してもよい。例えば、設計データ306は、技術者、エンジニア又はプログラマにより設計される回路を表すデータであってもよい。設計データは、回路についてのレジスタトランスファレベル(Register-Transfer  Level：RTL)論理手段を表現してもよい。一実施形態において、回路の設計RTL手段は、HDLで提供されてもよいし、或いは、Cのような高級言語によりHDLに合成されてもよい。設計データ306は、物理合成フローにより合わせられるタイミング仕様を含んでもよい。
【００２８】
プロセスフロー300は、タイミングデータを含んでもよいデフォルトSTAタイミングライブラリ308(本願において「タイミングライブラリ308」のように言及されてもよい)を構築することを含む。タイミングデータは、セルレイアウトデータ302に対するデフォルトSTAタイミングを表現してもよい。特に、タイミングデータは、セルレイアウトデータ302の標準セルの各々に対するSTAタイミングを含んでもよい。標準セルに対するデフォルトSTAタイミングは、標準セルに対するセルレイアウトデータに基づいて構築される標準セルに対するSTAモデルに基づいてもよい。例えば、標準セルのコンポーネントとその近辺との間の相互作用に関連する平均の又は最悪のストレス状態に基づいて、標準セルのデフォルトSTAタイミングは、入力信号遷移時間及び出力信号負荷の関数として、標準セルの各々の入力及び各々の出力信号の間の遅延を表現してもよい。
【００２９】
プロセスフロー300は論理合成310を含んでもよい。デフォルトモデルは、論理合成の最中及び配置の前に使用されてもよい。論理合成310は、RTLからゲートへの合成(RTL  to  gate  synthesis)を含んでもよい。セルレイアウトデータを利用するRTL論理部を実現することは、RTL論理部をゲートレベルネットリストにマッピングすること、のように言及されてもよい。「マッピングする」は「対応付ける」、「関連付ける」等と言及されてもよい。
【００３０】
要素312及び314は、論理合成310に基づいて、ゲートレベル設計における1つ以上の標準セルの1つ以上のインスタンスの配置を表現する配置データを決定することを含んでもよい。回路設計における標準セルの1つ以上のインスタンスの配置は、設計データ306を忠実に守るゲートレベル回路設計でシリコンにより実現される場合には、互いに対する標準セルの1つ以上のインスタンスの配置及び物理的な位置であってもよい。要素312及び314の出力は、設計データ306における設計を実現するように配置及び設置される複数の標準セルの複数のインスタンスを含むゲートレベル回路設計を表現する回路データであってもよい。回路データの標準セルの各々のインスタンスはタグを含んでもよく、タグは、何れの標準セルのインスタンスであるかを示し、これにより、標準セルの各々のインスタンスを、標準セルに関連するデフォルトSTAタイミングに関連付ける。例えば、回路データは、第1標準セルの複数のインスタンス、第2セルの複数のインスタンス、等々を含んでもよい。第1標準セルのインスタンスの各々はタグを有し、タグは、そのインスタンスと、第1標準セル及び第1標準セルのデフォルトSTAタイミングとを関連付ける。
【００３１】
プロセスフロー300の要素316-330は、ゲートレベル回路設計による配置の後に、標準セルのインスタンスのストレスデータを補償することを支援するために標準的な物理設計フローに加えられ、そのストレスデータは標準セルのデフォルトストレスデータと相違する。タイミングライブラリに保存されるタイミングデータ308を付け加え、追加的な標準セルをセルレイアウトデータ302に追加し、及び/又は、ゲートレベル回路設計(従って特に回路データ)を更新することにより、プロセスフロー300の要素316-330はストレスデータの変化を補償することを支援してもよい。
【００３２】
一実施形態において、タイミングライブラリに保存されるタイミングデータ308は、ゲートレベル回路設計で使用される場合における、標準セルのインスタンスの実際のタイミングパフォーマンスを反映するように付加されてもよい。言い換えれば、タイミングライブラリは非デフォルトエントリ(デフォルトエントリではないエントリ)を含むように補足される。例えば、セルレイアウトデータ302のうち「nor2」のように言及される標準セルレイアウトが、ゲートレベル回路設計で使用されると仮定する。更に、タイミングライブラリは、「nor2」というラベルが付されたタイミングデータ308を含むと仮定する。「nor2」というラベルが付されたタイミングデータは、「nor2」として言及される標準セルレイアウトに関連付けられてよい。「nor2」というラベルが付されたタイミングデータは、「nor2」のように言及される標準セルレイアウトのインスタンスに対するデフォルトタイミングパフォーマンスを、デフォルトの隣接相互作用とともに、表現してもよい。デフォルトのタイミングパフォーマンスは、近隣との相互作用がデフォルトの近隣相互作用に合致すると仮定した場合に、「nor2」のように言及される標準セルレイアウトのインスタンスについての予想されるタイミングパフォーマンスであってもよい。
【００３３】
更に、標準セルレイアウト「nor2」のうちインスタンス「i1」のように言及されるインスタンスについての図3Aの要素316-324による分析が、インスタンス「i1」は近隣のインスタンスに関連し(含み)、インスタンス「i1」のタイミングパフォーマンスは、インスタンス「i1」が基礎とする「nor2」のように言及される標準セルレイアウトについてのデフォルトタイミングパフォーマンスとは相違する結果となることを示すと仮定する。一実施形態において、図3Aの要素316-330は、インスタンス「i1」に対する実際のタイミングパフォーマンスを表現するタイミングデータを含むように、タイミングライブラリが更新されることを可能にする。同様に、インスタンス「i1」に関する回路データに含まれるタグは、インスタンス「i1」に対する実際のタイミングパフォーマンスに関連するタグを含むように更新され、それはタイミングライブラリに改めて保存される。
【００３４】
要素316において、ゲートレベル回路設計で配置される標準セルのインスタンスの各々又はそのうちの1つ以上(インスタンスの部分集合)に対する一群のインデザインストレスデータ(in-design  stress  data)が抽出される。「インデザイン」は「実際の」、「設計対象の」、「設計中の」等の意味を包含する。すなわち、「インデザインストレスデータ」は、ゲートレベル回路設計における標準セルの他のインスタンスに対する標準セルのインスタンスの場所に基づく、標準セルのインスタンスに対する実際のストレス(actual  stress)を示す。
【００３５】
インデザインストレスデータは、1つ以上の第1ストレスパラメータを表現してもよい。第1ストレスパラメータは、ゲートレベル回路設計で配置されるような標準セルの各々のインスタンスについての1つ以上のコンポーネントに関連してもよい。例えば、インデザインストレスデータは、第1ストレスパラメータを表現するレイアウトパラメータ抽出(Layout  Parameter  Extraction：LPE)パラメータを含んでもよい。
【００３６】
要素318において、ゲートレベル回路設計における標準セルの各々又は1つ以上のインスタンスに対するデフォルトストレスデータが抽出される。一実施形態において、デフォルトストレスパラメータは、標準セルに基づいて構築されるゲートレベル回路設計における標準セルのインスタンスに対するトレランス(tolerance)を表現してもよい。「トレランス」は「許容度」、「許容範囲」、「耐性」等と言及されてもよい。例えば、ゲートレベル回路設計における標準セルのインスタンスが標準セルに基づいて構築され、ゲートレベル回路設計における標準セルのインスタンスに対する実際のストレスパラメータが分析され、実際のストレスパラメータが、標準セルに関連するデフォルトストレスパラメータの許容範囲内にあるか否かを判断する。要素318及び320は、標準セルのインスタンスに関連するインデザインストレスデータと標準セルに関連するデフォルトストレスデータとを比較し、インデザインストレスデータにより表現される第1ストレスパラメータが、デフォルトストレスデータにより表現されるデフォルトストレスパラメータに対する許容範囲内にあるか否かを判断する処理を含んでもよい。
【００３７】
要素320において適合(又は合致)しない場合、1つ以上のインスタンスモデルが要素322及び324において構築される。要素322及び324は、標準セルのインスタンスに関連するインデザインタイミングパフォーマンスを表現するインデザイン静的タイミングデータを構築する処理を含んでもよい。
【００３８】
要素326、328及び330は、標準セルのインスタンスに関連するインデザインタイミングパフォーマンスを表現するインデザイン静的タイミングデータを含むように、インスタンスタイミングモデルをデフォルトタイミングライブラリに追加する処理を含む。要素326、328及び330は、タグがインデザイン静的タイミングデータに関連付け直されるように、インスタンスに関連する回路データに含まれるタグを更新する処理を更に含み、インデザイン静的タイミングデータは、デフォルトストレスデータの許容範囲内ではないインデザインストレスデータを有する標準セルのインスタンスに関連するインデザインタイミングパフォーマンスを表現する。
【００３９】
図3Bを参照する。要素332は、回路を形成する標準セル及び他の任意のセルのインスタンスに対する設計のルーティングを行う処理を含む。回路を形成する1つ以上のセルは、上述したように図3Aの要素316-330に従って処理されていてもよい。
【００４０】
要素334は、ポストルーティング配線(post-routing  wiring)及び静的タイミング分析の処理を含む。「ポスト」は「事後的」等と言及されてもよい。回路の機能は回路の論理部により決定されるが、静的タイミング分析は回路のタイミングを検査する。ステップ336において、回路のタイミングがタイミングの制約に適合するか否かについての判断がなされる。回路がタイミングの制約に適合しない場合、プロセスフロー300は要素338に移る。要素338においては、回路データが最適化され、プロセスフローは要素314に戻り、回路データの標準セルの1つ以上のインスタンスについて図3Aの要素316-330を実行する。要素340においてプロセスフロー300は終了する。
【００４１】
プロセスフロー300に関し、別の代替例が存在する。以下、2つの代替的な実施形態を説明する。
【００４２】
プロセスフロー300についての第1の代替的な実施形態によれば、タイミングライブラリ308は、標準セルの各々について、異なるストレスパラメータについて標準セルがどのように動作するかということに基づいて、2つ以上のバージョンのデフォルトタイミングデータを含んでもよい。例えば、標準セルに関し、標準セルに対する異なるストレスに基づいて、複数の異なるデフォルトストレスレイアウトが生成されてもよい。異なるデフォルトストレスレイアウトの各々について、STAモデルが生成され、それを利用して、異なるデフォルトストレスレイアウトの各々についてデフォルトタイミングデータを生成してもよい。これら及び他の実施形態において、標準セルのインスタンスは、インスタンスの配置の最中に、標準セルのデフォルトタイミングデータに関連付けられてもよい。しかしながら、ゲートレベル回路設計におけるインスタンスの配置に基づいて、標準セルの異なるデフォルトタイミングデータのインスタンスに最適であるデフォルトタイミングに、インスタンスが関連付けられなくてもよい。
【００４３】
これら及び他の実施形態において、方法300の最中に、要素318及び320は、標準セルのインスタンスに対するインデザインストレスパラメータが、標準セルのインスタンスに関連するデフォルトストレスパラメータに対する許容範囲内ではないことを通知又は表明してもよい。
【００４４】
例えば、インスタンスのインデザインストレスパラメータと標準セルの異なるデフォルトストレスパラメータとの比較に基づいて、標準セルの2つ以上のバージョンのタイミングデータのうちの何れが、ゲートレベル回路設計の標準セルのインスタンスのインデザインタイミングデータに最も合致するかを判断することを更に含むように、要素320は修正されてもよい。要するに、標準セルのインスタンスについて、タイミングライブラリに保存される標準セルのタイミングデータのうち何れのバージョンが、標準セルのインスタンスのタイミングを予測する際に最も近いかを判断するように、要素320は修正されてもよい。タイミングライブラリに保存される標準セルのタイミングデータのうち、インスタンスのインデザインタイミングデータに最も合致するバージョンのタイミングデータをインスタンスが指し示すように、回路データは更新されてもよい。
【００４５】
一実施形態において、プロセスフロー300は、直前に説明したばかりのプロセスフロー300の代替実施形態とそれ以前に説明したプロセスフロー300との双方を組み込んでもよい。これら及び他の実施形態において、各々の標準セルは、デフォルトタイミングデータとともにストレスセルレイアウトを含んでもよい。標準セルのインスタンスのインデザインストレスデータが、標準セルのデフォルトストレスデータの特定の許容範囲内ではない場合、プロセスフロー300は、インデザインストレスデータに基づいて生成されるインデザインタイミングデータにインスタンスを関連付けてもよい。プロセスフロー300は、標準セルの別バージョンとしてインデザインストレスデータを保存してもよい。以後の反復において、プロセスフロー300は、先ず、インスタンスのインデザインストレスデータと標準セルについての異なるバージョンとを比較してもよい。インデザインストレスデータが標準セルの異なるバージョンのうちの何れかのバージョンの許容範囲内にある場合、プロセスフロー300はそのインスタンスについて異なるバージョンのうちのそのバージョンを使用してもよい。インデザインストレスデータが標準セルの異なるバージョンのうちの何れの許容範囲にも含まれない場合、プロセスフロー300は、インデザインストレスデータに基づいてインデザインストレスデータを生成し、標準セルの別バージョンとしてそのインデザインストレスデータを保存してもよい。
【００４６】
プロセスフロー300についての第2の代替的な実施形態によれば、図3Bの要素334及び336に示されるようなポストルーティングステップを経て回路の各セルについての標準的な物理合成フローを完了するように、プロセスフロー300は形成されてもよい。言い換えれば、ゲートレベル回路設計に含まれる標準セルの各々のインスタンスについて、要素316-330は、最初の段階では省略(又はスキップ)されてもよい。ゲートレベル回路設計に含まれる何れのインスタンスが、標準セルに対するデフォルトSTAタイミングについての指定されるタイミング許容範囲内で動作しなかったかを判別する新たなステップが、要素334の後にプロセスフロー300に追加される。標準セルに対するデフォルトSTAタイミングについての指定されるタイミング許容範囲内にないインスタンスのみが、要素316-330に従って処理されてもよい。
【００４７】
別の変形例では、ゲートレベル回路設計に含まれる何れのデータ及び/又はクロック経路が、ゲートレベル回路設計に対する指定されるタイミング許容範囲内で動作しなかったかを判別する新たなステップが、プロセスフロー300に追加される。これら及び他の実施形態において、指定されるタイミング許容範囲内で動作しなかったデータ及び/又はクロック経路における標準セルのインスタンスは、要素316-330に従って処理されてよい。この実施形態のプロセスフロー300は有益であり、その理由は、指定されるタイミング許容範囲内で動作しなかったゲートレベル回路設計に含まれるデータ及び/又はクロック経路に含まれない他のインスタンスは、要素316-330に従って処理されなくてよいからである。
【００４８】
図4を参照すると、本願で説明される少なくとも1つの実施形態による分析モジュールの一例が示されている。図4はコンピュータ装置400のブロック図を示し、コンピュータ装置400は、分析モジュール499と、プロセッサ435と、メモリ437とを例示的に含む。コンピュータ装置400のコンポーネントは、バス420により通信可能に結合される。一実施形態において、分析モジュール499は、図3A、図3B及びプロセスフロー300に関して上述した機能を提供(又は発揮)するように形成される。一実施形態において、分析モジュール499は、方法500及び図5を参照しながら後述される機能を提供するように形成される。更に別の実施形態において、分析モジュール499は、方法600及び図6を参照しながら後述される機能を提供するように形成される。
【００４９】
プロセッサ435は、算術演算論理装置、マイクロプロセッサ、汎用コントローラを含んでもよいし、或いは、演算を実行して電子表示信号をディスプレイ装置に提供する他の何らかのプロセッサアレイ等を含んでもよい。プロセッサ435は、信号線436を介して他のコンポーネントと通信するためにバス420に結合される。プロセッサ435はデータ信号を処理しかつ様々なコンピュータアーキテクチャを含んでもよく、例えば、複合命令セットコンピュータ(complex  instruction  set  computer：CISC)アーキテクチャ、縮小命令セットコンピュータ(reduced  instruction  set  computer：RISC)アーキテクチャ、或いは、組み合わせによる命令セットを実現するアーキテクチャを含んでもよい。図4は単独のプロセッサ435を含むように示されているが、複数のプロセッサが含まれてもよい。その他のプロセッサ、オペレーティングシステム、センサ、ディスプレイ及び物理コンフィギュレーション(又は物理的形態)も可能である。
【００５０】
メモリ437はプロセッサ435により実行される命令又はデータを保存してよい。メモリ437は、信号線438を介して他のコンポーネントと通信するためにバス420に結合される。命令又はデータは、本願で説明される技法を実行するためのコード(又はプログラム又はソフトウェア)を含む。例えば、プロセスフロー300、方法500又は方法600を参照しながら本願で説明されるような機能を提供するために、メモリ437は分析モジュール499に必要な全ての命令又はデータを保存(又は格納又は記憶)する。一実施形態において、分析モジュール499のうちの1つ以上のサブモジュール402-412がメモリ437に保存されてもよい。
【００５１】
図4に示される実施形態において、メモリ437は、セルレイアウトデータ498、設計データ497及びタイミングライブラリ495を保存する。
【００５２】
セルレイアウトデータ498は、1つ以上の標準セルを構築するために使用される情報又はデータを含んでよい。セルレイアウトデータ498は、平均又は最悪のストレス状態を利用してデフォルトSTAモジュールを生成するように設定されてもよい。例えば、セルレイアウトデータは、論理合成の最中及び配置の前に使用されてよい1つ以上のデフォルトセルモデルを構築するように設定されるデータ及び情報を含んでもよい。
【００５３】
設計データ497は、ユーザによりなされる回路設計を表現するデータを含んでよい。例えば、設計データ497は、エンジニア又はプログラマにより設計される回路を表現するデータであってもよい。設計データは、回路のRTL論理手段を表現してもよい。一実施形態において、回路の設計RTL手段は、HDLにおいて提供されてもよいし、或いは、Cのような高級言語によりHDLに合成されてもよい。一実施形態において、設計データ306は例えばRTLタイミング制約(情報)を含んでもよい。
【００５４】
タイミングライブラリ495は、各々の標準セルに関連するタイミングデータを含んでもよい。特に、タイミングライブラリ495は、各々の標準セルについてデフォルトSTAタイミングを表現するタイミングデータを含んでもよい。一実施形態において、タイミングデータは、セルレイアウトデータ498により表現される1つ以上のモデルのタイミングパフォーマンスを表現する。タイミングデータは、非デフォルトセル(デフォルトセルではないセル)又は非デフォルトモデル(デフォルトモデルではないモデル)に関連してもよい。
【００５５】
図4に示される実施形態において、分析モジュール499は、通信モジュール402、構築モジュール404、抽出モジュール406、トレランスモジュール408、更新モジュール410及びルーティングモジュール412を含む。分析モジュール499のこれらのコンポーネントはバス420を介して互いに通信可能に結合されてもよい。分析モジュール499のうちの1つ以上のコンポーネントは、メモリ437に保存されてもよいし、或いは、プロセッサ435により実現されてもよい。
【００５６】
通信モジュール402は信号線422を介してバス420に通信可能に結合される。構築モジュール404は信号線424を介してバス420に通信可能に結合される。抽出モジュール406は信号線426を介してバス420に通信可能に結合される。トレランスモジュール408は信号線428を介してバス420に通信可能に結合される。更新モジュール410は信号線429を介してバス420に通信可能に結合される。ルーティングモジュール412は信号線431を介してバス420に通信可能に結合される。
【００５７】
通信モジュール402は、分析モジュール499とコンピュータ装置400のうちの他のコンポーネントとの間の通信を取り扱うためのルーチンを含むソフトウェアであってもよい。一実施形態において、通信モジュール402は、分析モジュール499とコンピュータ装置400のうちの他のコンポーネントとの間の通信を取り扱うことに関して以下に説明される機能を提供するように、プロセッサ435により実行される命令群であってもよい。一例において、通信モジュール402は、コンピュータ装置400のメモリ437に保存され、プロセッサ435によってアクセス可能であり実行可能であってもよい。
【００５８】
通信モジュール402は、プロセッサベースの1つ以上のコンピュータ装置との間でデータを送受信してもよい。
【００５９】
一実施形態において、通信モジュール402は、分析モジュール499のコンポーネントからデータを受信し、データをメモリ437に保存してもよい。一実施形態において、通信モジュール402は、メモリ437からデータを抽出し、そのデータを、分析モジュール499のうちの1つ以上の適切なコンポーネントに送信してもよい。例えば、メモリ437はタイミングデータを保存し、通信モジュール402はメモリ437からタイミングデータを取り出してもよい。一実施形態において、通信モジュール402は、分析モジュール499又はメモリ437のうちの1つ以上の適切なコンポーネントからデータを受信し、コンピュータ装置400に通信可能に結合されるシステムの他のコンポーネントにデータを送信してもよい。通信モジュール402は、信号線422を介して、プロセッサ435及びコンピュータ装置400のうちの他のコンポーネントとの協働及び通信に適合している。
【００６０】
構築モジュール404は、回路データを構築するように形成されるルーチンを含むソフトウェアであってもよい。回路データはセルレイアウトデータ498を用いて構築されてもよい。回路データは、1つ以上のコンポーネントを含むセルに対するゲートレベル回路設計を表現してもよい。回路データは、1つ以上のセルに対するゲートレベル回路設計を表現してもよい。
【００６１】
回路データは、回路データ内の標準セルに関連付けられるデフォルトタイミングパフォーマンスに関連付けられるタグを含んでもよい。デフォルトタイミングパフォーマンスは、「デフォルトSTAタイミング」と言及されてもよい。タグは、タイミングライブラリ495に保存されるタイミングデータのエントリを指し示してもよい。構築モジュール404は、メモリ437からデータを取り出すため又はメモリ437にデータを保存するために通信モジュール402と通信してもよい。
【００６２】
抽出モジュール406は、回路データにおける標準セルのインスタンスについてのインデザインストレスデータを確認するように形成されるルーチンを含むソフトウェアであってもよい。インデザインストレスデータは、各々のインスタンスに関連する1つ以上のインデザインストレスパラメータを表現してもよい。抽出モジュール406は、メモリ437からデータを取り出すため又はメモリ437にデータを保存するために通信モジュール402と通信してもよい。
【００６３】
トレランスモジュール408は、標準セルに対するデフォルトストレスデータを抽出し、標準セルのインスタンスについてのインデザインストレスデータがデフォルトストレスデータの許容範囲内であるか否かを判断するように形成されるルーチングを含むソフトウェアであってもよい。標準セルに関連するデフォルトストレスパラメータと標準セルのインスタンスについてのインデザインストレスパラメータとを比較することにより、トレランスモジュール408は、インデザインストレスデータがデフォルトストレスデータの許容範囲内ではないこと(或いは、許容範囲内であるか否か)を判断してもよい。
【００６４】
トレランスモジュール408が、インスタンスのインデザインストレスデータはデフォルトストレスデータの許容範囲内ではないと判断したことに応答して、トレランスモジュール408は、そのインスタンスについて静的タイミングデータを構築するように構築モジュール404に合図を送るために、通信モジュール402と通信してもよい。構築モジュール404は、インスタンスに関連するインデザインタイミングパフォーマンスを表現するインデザイン静的タイミングデータを構築してもよい。
【００６５】
一実施形態において、トレランスモジュール408は、ゲートレベル回路設計における何れのインスタンスが、ゲートレベル回路設計のクリティカルパス(critical  path)に含まれるかを確認してもよい。トレランスモジュール408は、ゲートレベル回路設計に対するクリティカルパスが最適化されてよいか否かを判断してもよい。トレランスモジュール408は、メモリ437からデータを取り出すため又はメモリ437にデータを保存するために通信モジュール402と通信してもよい。
【００６６】
更新モジュール410は、インデザイン静的タイミングデータを包含するためにタイミングライブラリを更新するように形成されるルーチンを含むソフトウェアであってもよい。タイミングライブラリ495に保存されるインデザイン静的タイミングデータは、インスタンスに関連付けられてもよい。タイミングライブラリ495に保存されるインデザイン静的タイミングデータにタグが関連付けられるように、更新モジュール410は、そのインスタンスに対する回路データに含まれるタグを更新するように形成されてもよい。更新モジュール410は、メモリ437からデータを取り出すため又はメモリ437にデータを保存するために通信モジュール402と通信してもよい。
【００６７】
ルーティングモジュール412は、1つ以上のインデザインの(実際の、設計対象の又は設計中の)標準セルを含む回路のルーティングを行うように形成されるルーチンを含むソフトウェアであってもよい。ルーティングモジュールは、回路に対するポストルーティング配線を実行するように形成されてもよい。ルーティングモジュール412は、回路に対する論理(構成)、電力又は配置の最適化を適用するように形成されてもよい。ルーティングモジュール412は、メモリ437からデータを取り出すため又はメモリ437にデータを保存するために通信モジュール402と通信してもよい。
【００６８】
一実施形態において、分析モジュール499の機能は、有利なことに、セルの相互作用に起因する規則的又は一律的なタイミングエラー(systematic  timing  error)を除去又は軽減する。また、分析モジュール499は、標準セルライブラリにおける最善ではないFETサイズに関連するパフォーマンス及び電力のペナルティを除去又は軽減する。
【００６９】
図5を参照しながら、本願において説明される少なくとも1つの実施形態による物理設計フローのための方法例500を説明する。方法500は、一実施形態では、図4のコンピュータ装置400のようなコンピュータ装置により実現されてもよい。個別的なブロックとして示されているが、所望の実施形態に依存して、様々なブロックが、追加的なブロックに分割されてもよいし、より少ない数のブロックに統合されてもよいし、或いは、省略されてもよい。
【００７０】
図5に示される実施形態において、方法500はブロック502から始まり、ゲートレベル回路設計データが取得される。ゲートレベル回路設計データは、ゲートレベル回路設計を表現(又は記述)し、複数のセルの各々についての1つ上のインスタンスを含む。各々のセルは、タイミングライブラリに保存される対応するデフォルトセル静的タイミングデータと、対応するデフォルトセルストレスデータとに関連付けられる。
【００７１】
一実施形態において、デフォルトセル静的タイミングデータは、セルに含まれるコンポーネントを信号が通るための時間を示すデータであってもよい。例えば、デフォルトセル静的タイミングデータは、セルの入力から出力に至る信号のための時間(又は所要時間)を示してもよい。各々のセルに関連付けられるデフォルトセル静的タイミングデータは、タイミングライブラリに保存され、各々のセルに関連するデフォルトタイミングパフォーマンスを生成するために使用されてもよい。
【００７２】
ブロック504において、方法500は何れかのセルのうちの何れかのインスタンスを選択する。ブロック506において、方法500は、ゲートレベル回路設計において選択されるインスタンスに関連する1つ以上のインデザインストレスパラメータを表現するインデザインストレスデータを確認する。一実施形態において、インデザインストレスパラメータは、選択されるインスタンスと、当該セル又は他のセルについての１つ以上の他のインスタンスとの間の物理的な相互作用を表現してもよい。
【００７３】
ブロック508において、方法500は、インデザインストレスデータが、選択されたインスタンスに関連するデフォルトセルストレスデータの許容範囲内にあるか否かを判断する。一実施形態において、デフォルトセルストレスデータは、選択されるインスタンスに関連する1つ以上のデフォルトストレスパラメータを表現してもよい。これら及び他の実施形態において、インデザインストレスパラメータがデフォルトストレスパラメータに適合する場合に、許容範囲(又はトレランス)に合っていると判断されてもよい。代替的又は追加的に、インデザインストレスパラメータが、デフォルトストレスパラメータのプラス又はマイナス10％の範囲内にある場合、又は、ユーザ又はシステムにより設定される何らかの他の閾値による範囲内にある場合に、許容範囲に合っていると判断されてもよい。
【００７４】
インデザインストレスデータは、選択されたインスタンスに関連するデフォルトセルストレスデータの許容範囲内ではないと判断されると、方法500はブロック510に進む。インデザインストレスデータは、選択されたインスタンスに関連するデフォルトセルストレスデータの許容範囲内であると判断されると、方法500はブロック516に進む。
【００７５】
ブロック510において、方法500はインデザイン静的タイミングデータを生成することを含む。インデザイン静的タイミングデータは、選択されるインスタンスのインデザインストレスデータに基づいて、ゲートレベル回路設計において選択されるインスタンスについてのタイミングパフォーマンスを表現してもよい。
【００７６】
ブロック512において、方法500は、選択されたインスタンスに関連するタイミングパフォーマンスを表現するインデザイン静的タイミングデータを、タイミングライブラリに加える。有利なことに、一実施形態において、インデザイン静的タイミングデータをタイミングライブラリに加えることは、選択されるインスタンスについてタイミングライブラリが正確なタイミングデータを有することを保証することにより、タイミングライブラリを改善する。
【００７７】
ブロック514において、方法500は、ゲートレベル回路設計のルーティングの間に、選択されたインスタンスがインデザイン静的タイミングデータに関連付けられるように、ゲートレベル回路設計データを更新することを含む。一実施形態において、ゲートレベル回路設計データを更新することは、タイミングライブラリにおけるインデザイン静的タイミングデータにタグが関連付けられるように、選択されたインスタンスに関連するゲートレベル回路設計データにおけるタグを更新することを含んでもよい。
【００７８】
ブロック516において、方法500は、何れかのセルのうちの別の何れかのインスタンスを選択することを含む。代替的又は追加的に、複数のセルのうちの何れかについての別のインスタンスが存在しない場合に、複数のセルのうちの別のセルのインスタンスが選択されてもよい。方法500は、ブロック506に戻るように進み、ゲートレベル回路設計データにおける別のインスタンスについての処理に続く。一実施形態において、ブロック506及び508が、ゲートレベル回路設計データにおける全てのインスタンスについて実行されてもよい。
【００７９】
本願で説明されるこれら及び他のプロセス及び方法に関し、プロセス及び方法で実行される機能(又は処理)は異なる順序で実行されてもよいことを、当業者は認めるであろう。更に、説明されるステップ及び処理は具体例として提供されているにすぎず、開示される実施形態の本質から逸脱することなく、あるステップ及び処理は、選択的であってもよいし、より少ない数のステップ及び処理に統合されてもよいし、或いは、追加的なステップ及び処理に拡張されてもよい。
【００８０】
例えば一実施形態ではブロック504の前に方法500は、ゲートレベル回路設計データをルーティングし、ルーティングされたゲートレベル回路設計データの中から経路(又はパス)を選択することを更に含んでもよい。これら及び他の実施形態において、複数のセルのうちの何れかについての選択されるインスタンスは、選択された経路から選択されてもよい。一実施形態において、方法500は、ルーティングされるゲートレベル回路設計データによる1つ以上の経路についてタイミングパフォーマンスを決定することを更に含んでもよい。これら及び他の実施形態において、選択される経路は、1つ以上の経路のタイミングパフォーマンスに基づいて指定されるタイミング許容範囲の外にある1つ以上の経路のうちの何れかであってもよい。指定されるタイミング許容範囲は、回路に対するRTLを書いた人間のような人間ユーザにより指定されてもよい。これら及び他の実施形態において、指定されるタイミング許容範囲に合わない経路は、「クリティカルタイミングパス(critical  timing  path)」と言及され、例えば、タイミング仕様を達成しない回路をもたらす結果となる経路である。これら及び他の実施形態において、クリティカルタイミングパスにおけるインスタンスは、デフォルトセルストレスデータの許容範囲内ではないインデザインストレスデータについて検査されてもよい。クリティカルタイミングパスのインスタンスについてインデザイン静的タイミングデータを調整することにより、クリティカルタイミングパスのタイミングについての更に正確な理解が促され、クリティカルタイミングパスの取り扱いを支援することが可能である。
【００８１】
図6を参照しながら、本願において説明される少なくとも1つの実施形態により静的タイミング分析を改善するように形成される物理設計フローのための方法例600を説明する。方法600は、一実施形態では、様々なシステムのうち特に図4のコンピュータ装置400のようなコンピュータ装置により実現されてもよい。個別的なブロックとして示されているが、所望の実施形態に依存して、様々なブロックが、追加的なブロックに分割されてもよいし、より少ない数のブロックに統合されてもよいし、或いは、省略されてもよい。
【００８２】
図5に示される実施形態において、方法600はブロック602から始まり、ゲートレベル回路設計データが取得される。ゲートレベル回路設計データは、複数のセルの各々についての1つ上のインスタンスを含む。一実施形態において、各々のセルは、複数のデフォルトセルストレスレイアウトと、それらの対応するセルの静的タイミングデータとに関連付けられる。
【００８３】
ブロック604において、方法600は何れかのセルのうちの何れかのインスタンスを選択する。選択されるインスタンスは、何れかのセルに対する何れかのデフォルトセルストレスレイアウトに関連する。例えば、セルが10個の異なるデフォルトセルストレスレイアウトを有する場合、セルのインスタンスは、10個の異なるデフォルトセルストレスレイアウトのうちの何れかに関連付けられてもよい。一実施形態では、ゲートレベル回路設計がなされた後に、セルのインスタンスの全部又は過半数が、セルについての1つのデフォルトセルストレスレイアウトに関連付けられてもよい。代替的又は追加的に、ゲートレベル回路設計が作成された後に、セルのインスタンスの各々は、そのインスタンス及びインスタンスの周辺の配置(又は位置関係)に基づいて、セルのインスタンスに最も相応しいと判定される、セルの何れかのデフォルトセルストレスレイアウトに関連付けられてもよい。
【００８４】
ブロック606において、方法600は、ゲートレベル回路設計において選択されるインスタンスに関連する1つ以上のインデザインストレスパラメータを表現するインデザインストレスデータを確認することを含む。一実施形態において、インデザインストレスパラメータは、選択されるインスタンスと、何れかのセルのうちの1つ以上の他のインスタンス又は他の何れかのセルについての1つ以上の他のインスタンスとの間の物理的な相互作用を表現してもよい。
【００８５】
ブロック608において、方法600は、インデザインストレスデータが、選択されたインスタンスに関連する何れかのデフォルトセルストレスレイアウトの許容範囲内にあるか否かを判断する。一実施形態において、インデザインストレスデータが、選択されたインスタンスに関連する何れかのデフォルトセルストレスレイアウトの許容範囲内ではないことの確認は、インデザインストレスパラメータと、選択されるインスタンスに関連する何れかのデフォルトセルストレスレイアウトのレイアウトストレスパラメータとを比較し、インデザインストレスパラメータが許容範囲内でレイアウトストレスパラメータに合致しないことを確認することを含んでもよい。その結果、選択されるインスタンスのインデザイン静的タイミングデータは、選択されるインスタンスに関連する複数のデフォルトセルストレスレイアウトのうちの何れかについてのセル静的タイミングデータのトレランスに合致しない又は許容範囲内にない。トレランス(又は許容範囲)の具体例は、レイアウトストレスパラメータのプラス又はマイナス10％の範囲内、或いは、ユーザ又はシステムにより設定される何らかの他の閾値による範囲内にあるインデザインストレスパラメータである。
【００８６】
インデザインストレスデータは、選択されたインスタンスに関連する何れかのデフォルトセルストレスレイアウトの許容範囲内ではないと判断されると、方法600はブロック610に進む。インデザインストレスデータは、選択されたインスタンスに関連する何れかのデフォルトセルストレスレイアウトの許容範囲内であると判断されると、方法600はブロック614に進む。
【００８７】
ブロック610において、方法600は、選択されたインスタンスのインデザインストレスデータに基づいて、別のデフォルトセルストレスレイアウトを選択することを含む。例えば、各々のデフォルトセルストレスレイアウトのレイアウトストレスパラメータは、選択されたインスタンスのインデザインストレスパラメータと比較されてもよい。選択されたインスタンスのインデザインストレスパラメータに合致する又は一致に最も近いデフォルトセルストレスレイアウトのレイアウトストレスパラメータが、判別され、対応するデフォルトセルストレスレイアウトが、別のデフォルトセルストレスレイアウトとして選択されてもよい。
【００８８】
ブロック612において、方法600は、ゲートレベル回路設計のルーティングの間に、選択されたインスタンスが、他のデフォルトセルストレスレイアウト及びその対応するセル静的タイミングデータに関連付けられるように、ゲートレベル回路設計データを更新することを含む。一実施形態において、ゲートレベル回路設計データを更新することは、他のデフォルトセルストレスレイアウトにタグが関連付けられるように、選択されたインスタンスに関連するゲートレベル回路設計データにおけるタグを更新することを含んでもよい。
【００８９】
ブロック614において、方法600は、何れかのセルのうちの別の何れかのインスタンスを選択することを含む。代替的又は追加的に、何れかのセルのうちの別のインスタンスが存在しない場合に、別のセルのインスタンスが選択されてもよい。方法600は、ブロック606に戻るように進み、ゲートレベル回路設計データにおける別のインスタンスについての処理に続く。一実施形態において、ブロック606及び608が、ゲートレベル回路設計データにおける全てのインスタンスについて実行されてもよい。
【００９０】
本願で説明されるこれら及び他のプロセス及び方法に関し、プロセス及び方法で実行される機能(又は処理)は異なる順序で実行されてもよいことを、当業者は認めるであろう。更に、説明されるステップ及び処理は具体例として提供されているにすぎず、開示される実施形態の本質から逸脱することなく、あるステップ及び処理は、選択的であってもよいし、より少ない数のステップ及び処理に統合されてもよいし、或いは、追加的なステップ及び処理に拡張されてもよい。
【００９１】
例えば一実施形態ではブロック604の前に方法600は、ゲートレベル回路設計データをルーティングし、ルーティングされたゲートレベル回路設計データの中から経路を選択することを更に含んでもよい。これら及び他の実施形態において、何れかのセルについての選択されるインスタンスは、選択された経路から選択されてもよい。一実施形態において、方法600は、ルーティングされるゲートレベル回路設計データによる1つ以上の経路についてタイミングパフォーマンスを決定することを更に含んでもよい。これら及び他の実施形態において、選択される経路は、1つ以上の経路のタイミングパフォーマンスに基づいて指定されるタイミング許容範囲の外にある1つ以上の経路のうちの何れかであってもよい。
【００９２】
本願で説明される実施形態は、本願で説明されるような様々なコンピュータハードウェア又はソフトウェアモジュールを含む特定用途の又は汎用のコンピュータを利用することを含んでよい。
【００９３】
本願で説明される実施形態は、コンピュータ読み取り可能な媒体を利用して実施されてもよく、媒体はそこに保存されるコンピュータ実行可能な命令又はデータ構造を担う又は有する。そのようなコンピュータ読み取り可能な媒体は、汎用コンピュータ又は特定用途コンピュータによりアクセスされてもよい。限定ではない一例として、そのようなコンピュータ読み取り可能な媒体は有形の及び/又は一時的ではないコンピュータ読み取り可能な記憶媒体を含み、記憶媒体は、例えば、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、電気的に消去可能でプログラム可能なリードオンリメモリ(EEPROM)、コンパクトディスクリードオンリメモリ(CD-ROM)又は他の光ディスクストレージ、磁気ディスクストレージ又は他の磁気ストレージ装置、フラッシュメモリ装置(例えば、ソリッドステートメモリ装置)を含んでもよいし、或いは、コンピュータ実行可能な命令又はデータ構造の形式で所望のプログラムコードを担う又は保存するために使用され、汎用又は特定用途のコンピュータによりアクセスされる他の任意のストレージ媒体を含んでもよい。上記の列挙された事項の組み合わせもコンピュータ読み取り可能な媒体の範囲内に含まれてよい。
【００９４】
コンピュータ実行可能な命令は、例えば、汎用コンピュータ、特定用途コンピュータ又は特定用途処理装置(例えば、1つ以上のプロセッサ)に、所定の機能又は一群の機能を実行させる命令及びデータを含む。説明対象の事項は構造的な特徴及び/又は方法的な処理に特有の言葉で説明されているが、添付の特許請求の範囲に記載される事項は、上述した特定の特徴や処理に必ずしも限定されないことが、理解されるであろう。むしろ、本願で説明される特定の特徴や処理は実施形態の一例として開示される。
【００９５】
本願で使用されるように、「モジュール」又は「コンポーネント」のような用語は、モジュール又はコンポーネントの処理を実行するように形成される特定のハードウェア手段、或いは、コンピュータシステムの汎用ハードウェア(例えば、コンピュータ読み取り可能な媒体、処理装置等)により保存される及び/又は実行されるソフトウェアオブジェクト或いはソフトウェアルーチンを示してよい。一実施形態において、本願で説明される様々なコンポーネント、モジュール、エンジン及びサービスは、コンピュータシステムで動作するオブジェクト又はプロセス(例えば、個別的なスレッド)として実現されてもよい。本願で説明される或るシステム及び方法は、(汎用ハードウェエアにより保存及び/又は実行される)ソフトウェアで実行されるように概して説明されているが、(汎用ではない)特定のハードウェア実現手段やソフトウェアと特定のハードウェア手段との組み合わせも可能であり、本願ではそれらも想定されている。本明細書において、「コンピュータ装置」は、本願で説明されるような任意のコンピュータシステム、コンピュータシステムで動作する任意のモジュール又はモジュールの組み合わせであってもよい。
【００９６】
本願で引用される何れの具体例も条件付きの説明も、技術を促進する発明者等の貢献による技術思想及び概念を読者が理解することを促す教育的な目的でなされており、そのように具体的に説明される具体例や条件に限定することなく解釈が行われるべきである。以上、本願の実施形態が詳細に説明されてきたが、本願の精神及び範囲から逸脱することなく、様々な変形例、置換例及び代替例が実施形態に対してなされてよいことが、理解されるであろう。
【符号の説明】
【００９７】
４００  コンピュータ装置
４９９  分析モジュール
４０２  通信モジュール
４０４  構築モジュール
４０６  抽出モジュール
４０８  トレランスモジュール
４１０  更新モジュール
４１２  ルーティングモジュール
４３５  プロセッサ
４３７  メモリ
４９８  セルレイアウトデータ
４９７  設計データ
４９５  タイミングライブラリ
【図１】
2015230726.tif 000003
【図２】
2015230726.tif 000004
【図３Ａ】
2015230726.tif 000005
【図３Ｂ】
2015230726.tif 000006
【図４】
2015230726.tif 000007
【図５】
2015230726.tif 000008
【図６】
2015230726.tif 000009