(57)【特許請求の範囲】
【請求項１】
入力ファイル群が格納される入力ファイル群格納手段と、
各ステップの処理を実現するプログラムが格納されるプログラムファイル群格納手段と、
主記憶と、
前記プログラムファイル群格納手段からプログラムを前記主記憶に入力して各処理ステップのプログラムを実行し出力するＣＰＵとを備える処理装置により、トランジスタ回路で構成される第１の回路モジュールデータから回路モジュールのタイミング特性を抽出する方法であって、
前記ＣＰＵが、以下の(1)〜(5)の各処理ステップを実行することを特徴とするタイミング特性抽出方法。
(1)．前記第１の回路モジュールデータを、ゲート回路と双安定回路で構成される第２の回路モジュールデータに復元するステップと、
(2)．前記第２の回路モジュールデータの入力端子から最初に到達する第１双安定回路と前記第２の回路モジュールデータの出力端子から最初に到達する最後の双安定回路とを探索するステップと、
(3)．前記入力端子と前記第１双安定回路との間のゲート回路からなる第１パス、前記第２の回路モジュールのクロック端子と前記第１双安定回路との間のゲート回路からなる第１クロックパス、前記最後の双安定回路と出力端子との間のゲート回路からなる第２パス、および、前記クロック端子と前記最後の双安定回路との間のゲート回路からなる第２クロックパスを探索するステップ及び入力／クロックが前記第１双安定回路まで変化を伝える為の活性化条件を作成するステップと、
(4)．前記第２パスのディレイおよび前記第２クロックパスのディレイに基づいて前記第２の回路モジュールの出力ディレイを計算するステップと、
(5)．前記双安定回路のセットアップタイム及びホールドタイムと、前記第１パスのディレイと、前記第１クロックパスのディレイとに基づいて前記第２の回路モジュールの入力タイミングルールを計算するステップとからなることを特徴とする回路モジュールのタイミング特性抽出方法。
【請求項２】
請求項１において、
前記回路モジュールのタイミング特性データとして前記回路モジュールの出力ディレイ及び入力タイミングルールを登録するステップを有することを特徴とするタイミング特性抽出方法。
【請求項３】
請求項１において、
前記出力ディレイと前記入力タイミングルールは、タイミングライブラリに登録されることを特徴とするタイミング特性抽出方法。
【請求項４】
請求項３において、
前記回路モジュールはクロック同期回路であり、
前記双安定回路はフリップフロップであることを特徴とするタイミング特性抽出方法。
【請求項５】
請求項１において、
前記出力ディレイは、前記クロック端子に入力されるクロック信号により前記最後の双安定回路が活性化されてから、前記最後の双安定回路の出力端子に出力変化が伝播するまでに要する時間であることを特徴とするタイミング特性データ抽出方法。
【請求項６】
請求項１において、
前記回路モジュールの入力タイミングルールは、入力のセットアップ時間と入力のホールド時間とを含み、
前記入力のセットアップ時間は、前記第１双安定回路のセットアップ時間＋（前記第１パスのディレイ−前記第１クロックパスのディレイ）であり、
前記入力のホールド時間は、前記第１双安定回路のホールド時間＋（前記第１パス−前期第１クロックパスのディレイ）であることを特徴とするタイミング特性抽出方法。
【発明の詳細な説明】
技術分野
本発明は、ＣＰＵコアなどの部品設計資産（モジュール）のトランジスタ回路データから、タイミング特性を抽出する方法に関し、抽出されたタイミング特性は、抽出対象モジュールを含む回路のタイミング検証、論理合成又はタイミングドリブンレイアウトを行う際のタイミング制約に用いる。特に、シミュレーションでタイミング検証を行う時には、モジュールのタイミングルール適合条件がタイミング特性に含まれるので、疑似エラーのない検証を可能とする。また、本発明はタイミング特性ライブラリの構造、およびそれを記憶した記憶媒体、およびそれを用いたＬＳＩの設計方法に関する。
背景技術
大規模なワンチップシステムの時代が到来しつつあり、設計済みのデータを活用して短期間にシステムＬＳＩを提供することが、チップおよびシステムの競争力アップのために不可欠になりつつある。特に最近では、設計資産、あるいはＩＰ（Intellectual Property）を利用したシステムＬＳＩの設計が急速に立ち上がってきている。例えば、ＣＰＵコア等の部品設計資産（モジュール）を再利用したＡＳＩＣ（Application Specification Integrated Circuits）の設計においては、ＡＳＩＣメーカ側がモジュールを顧客（システムハウス等）に提供し、顧客はモジュールに顧客固有の論理を付加してＡＳＩＣを設計する。この時、顧客側には、論理機能の記述だけを提供するだけでは不十分である。なぜなら、チップ全体のタイミング検証を行う必要があるからである。この場合に、顧客側からみるＣＰＵコアはブラックボックスであり、ＣＰＵコアのインタフェースにおけるタイミング特性なしにはチップ全体のタイミング検証を行うことができない。このタイミング特性を顧客に提供するためには、モジュールから特性を抽出しなければならないが、従来はこの抽出作業を人手で行っていた。このため、多大な工数が必要であり、同時にタイミング抽出結果についても常に誤りの混入する恐れがあった。
そこで、本発明では、モジュールのレイアウトデータからタイミング特性を抽出することを目的としている。本発明では、タイミング特性の抽出を行う方法として、セル毎にタイミング特性を抽出し、その抽出結果を利用する方法も検討された。
従来の方法として、セルレベルのタイミング特性抽出ツールを開示した特開平４−３１６１６６号公報等がある。これらの方法は、トランジスタ回路を入力して、全体回路の回路シミュレーションの自動実行を行ってタイミング特性を抽出するが、扱う回路の規模は、セルレベルであるので、数１００トランジスタ程度までの回路が対象となり、数Ｍ規模の大規模トランジスタ回路は扱うことができない。以下に大規模トランジスタ回路とセルレベルの回路との相違点を示す。
（１）セルレベルでは、順序回路のセルは、セル＝フリップフロップ（ＦＦ）と考えてもよく、セルの端子とＦＦの間にある他の回路の影響は考慮する必要はない。また、複数のＦＦがタイミングに影響を与えるケースも考慮する必要はない。
（２）セルレベルでは、数１００トランジスタレベルであるので回路全体でシミュレーションを行ってもタイミング特性の抽出は可能である。これに対して、大規模回路では、全体の回路でのシミュレーションでの抽出では、処理時間が多大である。
（３）セルレベルでは、ＦＦを組み合わせたような複雑な回路のタイミング抽出は対象外である。大規模回路では、分周クロックの発生回路等、複雑な順序回路が内在しており、この回路も取り扱う必要がある。
本発明では、これらの相違点を考慮して大規模回路のタイミング特性抽出を実現する方法を提供する。
従来技術は、小規模なセルレベルでのタイミング特性抽出方法であるので、上記の（１）〜（３）に述べたように、大規模回路には、そのままでは適用できない。大規模トランジスタ回路を取り扱う課題は、以下の３つである。
（１）ＦＦ以外の回路を含め、複数のＦＦが内在されていても、端子でのタイミング特性を規定するモデル化方法と処理方法の提供。
（２）数Ｍトランジスタ回路まで扱っても処理時間が実用範囲に収まるタイミング特性のモデル化方法と処理方法の提供。
（３）複雑な回路を含む場合の取り扱い方法の提供。
発明の開示
上記３つの課題を解決するための手段を以下に述べる。
まず、課題（１）、（２）を解決するためのモデル化方法を述べ、次に処理方法を述べる。
（１）モデル化方法
モジュールの対象は、図３に示すようなクロック同期回路に絞る。タイミング特性には、出力のディレイと入力のタイミングルール（セットアップ／ホールドタイム）の２種類がある。クロック同期回路であるので、タイミングは、クロック基準である。すなわち、出力ディレイは、クロックの変化時刻を起点（基準）とする出力のディレイであり、タイミングルールとは、クロックに対する入力のセットアップタイム、又はホールドタイムの制約を総称している名前である。
クロック同期回路では、タイミングとタイミングを決める回路は以下のようになる。
出力ディレイの場合は、図３に示すように、最後に出力に影響するｌａｓｔＦＦ（フリップフロップ）３５がタイミングを決める基本回路になる。すなわち、クロック３１１がｌａｓｔＦＦ３５を立ち上げてＦＦの出力の変化が出力３１３に伝搬するまでの時間が出力ディレイとなる。従って、関連する回路は、クロックからｌａｓｔＦＦを通過して出力までのパス上の回路である。このパスは、複数存在する可能性があるため、これらのパス上の回路を全て考慮して、他の回路に最悪の影響を与えうる最大ディレイ値のパスのディレイ値を出力ディレイとする。
タイミングルールの場合は、図３に示すように、入力３１２が最初に到達する１ｓｔＦＦ３４がタイミングを決める基本回路になる。すなわち、クロックが変化した時間のセットアップ時間前からホールドタイム時間後まで、入力が安定しないと、１ｓｔＦＦの出力は変化をしてしまい、期待通りの出力が得られない。本モデル化方法では、このタイミングルール（セットアップタイムとホールドタイム）をＦＦを含んだ形で直接求めずに、ＦＦのタイミングパラメタにｄｅｌａｙ（クロック〜ＦＦｃｋ）３２とｄｅｌａｙ（入力〜ＦＦｄ）３３のスキューを加減算して求める。図４にその算出方法を示す。さらに、ＦＦと入力／クロック端子の間には、他の回路が長いパスを構成しており、端子でクロックと入力が変化しても、ＦＦへ到達するとは限らない。このため、図４に示すようにルール適合条件をタイミングルールに入れ、変化が到達するかどうかを検査してルールチェックを行う。これがなければ、図１８に示す形態でシミュレーション検証時に他の回路に使われる信号もチェック対象となり、疑似エラーが多発する。
上記のタイミングルールのモデル化を基本にして、複数の１ｓｔＦＦが存在する場合には、図４に示すように、複数の１ｓｔＦＦについて求めたタイミングパラメタの中で最大値をとり、ルール適合条件については、すべての１ｓｔＦＦについて求めた条件のｏｒ条件をとる。
（２）処理方法
（１）で述べたモデルを求めるために、図１に示す方法を採用する。
まず、Ｔｒ．回路データ１０２を入力して、ゲート・ＦＦ復元を行う（ステップ１１）。その後、入力端子と出力端子からそれぞれ最初に到達する１ｓｔＦＦとｌａｓｔＦＦを見つけ、各端子からこれらの各ＦＦまでの回路を関連回路として認識する（ステップ１２）。
課題（２）で述べたように、大規模トランジスタ回路の全体回路でのシミュレーションにおけるディレイ測定は処理時間が大であるので、これらの各ＦＦ〜入力／出力までの有効パスを探索して、高速なスタティックディレイ測定ツールにディレイ測定のためのパス１０４を入力する（ステップ１３）。これにより、スタティックディレイ測定ツールは、論理的にありえないパスまでディレイ測定パスに含むことが避けられるのでこのステップは必要である。同時に、入力／クロックが１ｓｔＦＦまで変化を伝えるための条件（活性化条件１０５）を作成する（ステップ１４）。ディレイ測定１５で測定されたディレイ１０６、活性化条件１０５、ＦＦタイミングルール１０７を元にして、（１）で求めたモデル化方法に従い、タイミング特性ライブラリ１０８を生成する（ステップ１６）。
なお、課題（３）で述べた問題の解決手段は、ステップ１２の認識方法とステップ１４の活性化条件の作成方法である。この主要な課題は、分周クロック作成回路をどう取り扱うかと、組み合わせ回路以外の例外素子をどう取り扱うかである。これについては、以下の発明を実施するための最良の形態の項にて詳細に述べる。
【図面の簡単な説明】
図１は、タイミング特性抽出方法の全体フロー図であり、図２は、本発明が稼働する処理装置を示す図であり、図３は、回路例であり、図４は、タイミング特性のモデル化方法を示す図であり、図５は、Ｔｒ．回路情報と補助情報を示す図であり、図６は、タイミング特性ライブラリの構成を示す図であり、図７は、ゲート・ＦＦ復元１１の処理例１：ゲート復元を示す図であり、図８は、ゲート・ＦＦ復元１１の処理例２：ＦＦ復元を示す図であり、図９は、１ｓｔＦＦと関連回路の探索方法の説明図であり、図１０は、１ｓｔＦＦと関連回路の探索範囲の説明をする図であり、図１１は、ｌａｓｔＦＦと関連回路の探索方法の説明図であり、図１２は、ｌａｓｔＦＦと関連回路の探索範囲の説明をする図であり、図１３は、ディレイ測定パス探索１を示す図であり、図１４は、ディレイ測定パス探索２を示す図であり、図１５は、クロック活性化条件を示す図であり、図１６は、クロック活性化条件の計算例を示す図であり、図１７は、データ活性化条件を示す図であり、図１８は、タイミング特性ライブラリの使用形態を示す図であり、図１９は、クロック活性化条件作成の別の方法を示す図であり、図２０は、タイミング特性抽出方法３の全体フロー図であり、図２１は、タイミング特性抽出方法４の全体フロー図であり、図２２は、タイミング特性抽出方法５の全体フロー図であり、図２３は、タイミング特性抽出方法６の全体フロー図であり、図２４は、活性化条件の構成要素を示す図であり、図２５は、タイミング特性ライブラリのシミュレーション処理１を示すフロー図であり、図２６は、タイミング特性ライブラリのシミュレーション処理２を示すフロー図であり、図２７は、タイミング特性ライブラリのデータ構造を示す図であり、図２８は、本発明に基づくゲート抽出全体の処理フローの前半部を示す図であり、図２９は、本発明に基づくゲート抽出全体の処理フローの後半部を示す図であり、図３０は、ステップ２８３の同一出力ゲートグループへの分割方法を示す図であり、図３１は、ステップ２８４の同一出力ゲートグループの分割方法を示す図であり、図３２は、ステップ３０２１の処理を行う際のペアチェーンへの統合条件を示す図であり、図３３は、ステップ２８５のゲート変換処理方法を示す図であり、図３４は、モジュール特性を使用したシステム全体シミュレーションを示す図である。
発明を実施するための最良の形態
以下、本発明の実施の形態を図面により詳細に説明する。
１．本発明が稼働する処理装置
本発明は、図２に示す処理装置上で稼働する。本発明は、図１に示すＴｒ．回路（トランジスタレベルのレイアウトデータ）１０２、補助情報（P/Nmos区分データ、電源/GND信号等）１０１、クロック・入力・出力端子名１０３、およびＦＦタイミングルール１０７を入力ファイル群２２として、図１のステップ１１〜１６の処理を実現するプログラムをプログラムファイル群２５として格納し、ＣＰＵ２１によりこれらの処理を実行して、タイミング特性ライブラリ２４を出力する。ＣＰＵ２１での処理実行時には、まず、プログラムファイル群２５からプログラムを主記憶２６に入力し、プログラムを実行する。各処理ステップのプログラムは、主記憶２６から中間処理結果を入出力し、最後にプログラム実行結果をファイルに出力する。ステップ１３、１４、および１５のプログラムは、次のステップのプログラムの入力となる中間ファイル１０４、１０５、および１０６をワークファイル群２３として出力する。
２．タイミング特性モデル化方法
ここでは、タイミング特性抽出方法を説明する前にこの方法のベースとなるタイミング特性のモデル化方法について、図３と図４に従い述べる。
出力ディレイは、「発明の開示」の項で述べたように、クロック３１１からｌａｓｔＦＦ３５を通って出力３１３までのディレイｄｅｌａｙ（クロック〜出力）３１である。これらのパス上の、ｌａｓｔＦＦ３５とゲート回路のパスによって複数のパスが存在する場合には、最大パスのディレイを出力ディレイとする。最大パスディレイを取る理由は、この回路が他の回路を接続されてタイミング検証を行うときに最悪の条件となるのが最もディレイの大きい最大パスディレイであるからである。
タイミングルールは、セットアップタイムルールとホールドタイムルールからなり、いずれも、タイミングを決めるクロックに対する制約時間であるタイミングパラメタと、端子でルールを適合するかどうかを決めるルール適合条件からなる。
タイミングパラメタは、図３に示すように、入力が最初に到達するフリップフロップ（順序回路素子の１種）１ｓｔＦＦのタイミングルールを、モジュールの入力時刻で換算した値である。すなわち、クロックディレイ（クロックから１ｓｔＦＦのクロック端子ＣＫまでのディレイ）ｄ＿クロック（図３の３２）と、入力ディレイ（入力３１２から１ｓｔＦＦのデータ端子Ｄまでのディレイ）ｄ＿データ（図３の３３）の分を補正した値である。セットアップタイムを例にとり、入力のタイミングルールとフリップフロップのタイミングルールの関係を図４に示す。
図４内のタイムチャートから明らかなように、より具体的には、セットアップタイムは以下の式で表わされる。
入力のセットアップタイム＝１ｓｔＦＦのセットアップタイムＦＦｓｔｕｐ＋（入力ディレイ−クロックディレイ）‥‥‥式１
同様にして、ホールドタイムは以下の式で表わされる。
入力のホールドタイム＝１ｓｔＦＦのホールドタイムＦＦｈｏｌｄ−（入力ディレイ−クロックディレイ）          ‥‥‥式２
ディレイのパスや１ｓｔＦＦが複数存在する時には、式１、式２で求めた値の内一番厳しい最大値をとる。
ルール適合条件は、クロックとデータが変化したときに変化が１ｓｔＦＦに伝わるかどうかの条件であり、この条件がないと、他の回路と接続され、今対象になっている回路以外にファンアウトされるケースには、誤ってルールチェックを行ってしまう。
ルール適合条件は、１ｓｔＦＦからクロック・入力までのゲート回路によって決まる。すなわち、データ活性化条件とクロック活性化条件のａｎｄ論理である。ここで、データ活性化条件は、データの変化が１ｓｔＦＦに伝わる条件であり、クロック活性化条件は、クロックの変化が１ｓｔＦＦに伝わり、かつ、１ｓｔＦＦのクロック端子がＦＦのタイミングルールの基準（立ち上がり↑、または、立下がり↓）になる条件である。例えば、図３の回路例では、データ活性化条件は、Ｃ２  ｏｒ  Ｃ３＝１であり、クロック活性化条件は、ＦＦのタイミング基準点が↑とすると，クロック↑かつＣ１＝１である。活性化条件を求める方法は以下に詳細に述べる。
３．タイミング特性抽出方法
本発明に基づくタイミング特性抽出方法を図１に示し、以下に述べる。
タイミング特性抽出方法は、Ｔｒ．（トランジスタ）回路１０２、トランジスタのＰＭＯＳ／ＮＭＯＳ区分とＴｒ．回路内の電源／グラウンド（ＧＮＤ）信号名等からなる補助情報１０１、クロックとタイミング特性抽出の対象となる入力・出力端子指示情報１０３、およびＴｒ．回路内のＦＦのタイミングルール１０７を入力として、タイミング特性ライブラリ１０８を出力する。
本方法は、Ｔｒ．回路１０２と補助情報１０１からゲート・ＦＦ復元を行うステップ１１、復元されたゲート・ＦＦ回路から１ｓｔＦＦとｌａｓｔＦＦの関連回路を認識するステップ１２、この関連回路の中からディレイ測定パスを探索し、ディレイ測定パスファイル１０４に出力するステップ１３、関連回路から活性化条件を作成し、活性化条件ファイル１０５に出力するステップ１４、Ｔｒ．回路１０２とディレイ測定パスファイル１０４からタイミング特性に必要なディレイを測定し、ディレイファイル１０６に出力するステップ１５、および測定されたディレイ、活性化条件１０５、ＦＦタイミングルール１０７から、上記したモデル化方法に従ってタイミング特性ライブラリ１０８を出力するステップ１６からなる。
以下では、まず、入出力１０２，１０１，１０３，１０７，および、１０８について述べ、次に各処理ステップについて詳細に述べる。
３．１  入出力
入力であるＴｒ．回路１０２と補助情報１０１を図５（ａ）に示し、このＴｒ．回路の回路イメージを図５（ｂ）に示す。
このＴｒ．回路例は、NMOSトランジスタ4021とPMOSトランジスタ4011のネットリストであり、サブ回路定義名４１がＥＸＳＭＰＬで４２で示す端子名を持ち、素子名４３がＭＸＸ１とＭＸＸ２のトランジスタが２つある。それぞれ、ドレイン４４、ゲート４５、ソース４６は図に示す信号に接続し、素子モデル４７はｐｅｎｈとｎｅｎｈである。補助情報では、ｐｅｎｈの素子モデルはＰＭＯＳをｎｅｎｈの素子モデルはＮＭＯＳであり、ＶＤＤ１は電源信号名、ＧＮＤ１はＧＮＤ信号名であることを情報として与える。従って、図５（ｂ）に示す回路図を表現していることになる。これらの情報により、図１のステップ１１では、トランジスタ回路からのゲートの復元が可能になる。
補助情報には、関連回路探索指示情報４０も含まれており、この情報については、後のステップ１２の処理にて述べる。
他の入力情報、クロック・入力・出力端子１０３は、クロックとタイミング特性抽出の対象となる入力・出力端子名を指示する情報であり、ＦＦタイミングルール１０７は、Ｔｒ．回路内のＦＦのタイミングパラメタである。これらの情報の必要性については２．で述べた。
出力であるタイミング特性ライブラリを図６に示す。この例は、ある種のハードウエア記述言語でライブラリの内容と使用方法を示したものである。ライブラリとして生成されるのは、タイミング特性ライブラリ部５４で示されるものである。この例では、ユニットタイムと精度を示すタイムスケール５１、インタフェース５２、および下位階層の機能モデル呼びだし部５３の中に挿入する形式で使われる。すなわち、回路の機能モデルの上位階層にタイミング特性を追加することにより、機能モデルと連動してタイミング検証用モデルとして使用される。
タイミング特性ライブラリのデータ構造は、図２７に示すように、インタフェース５２、インスタンス（下位階層の機能モデル呼び出し）５３、タイミングルールチェック部５６、ルール適合条件演算部５５、および出力ディレイ部５７から構成される。
インタフェース５２は、図２７に示すように、モジュール名、入力端子、および出力端子から構成される。図６では、ＡＤＣＨ８Ｓ２がモジュール名、ｉｎｐｕｔ宣言されたＣＫＭなどが入力端子、ｏｕｔｐｕｔ宣言されたＬＦＤＩＮなどが出力端子である。
インスタンス５３は機能モデルを本ライブラリの下位階層として呼び出す部分であり、図２７に示すように、インスタンス名、入力端子、出力端子が主要な構成要素である。図６では、ＡＤＣＨ８Ｓ２＿ｃｏｒｅがインスタンス名、．ＣＫＭ（ＣＫＭ）の（）内の信号名が入力端子または出力端子にあたる。．ＣＫＭは、上位階層である本ライブラリの信号であり、上記の記述により、上位階層のＣＫＭが（）内の機能モデルの端子に接続されることになる。これは、データ構造上、インスタンス内の端子が上位階層の信号を参照していることを示し、図２７では参照されていることを、インタフェースへ向く矢印で示した。
タイミングルールチェック部５６は、セットアップタイムとホールドタイムのタイミングチェックを行う部分である。図２７に示すように、チェック信号、クロック信号、ルール適合条件、およびセットアップタイム（ホールドタイム）が主要な構成要素である。
図６では、セットアップタイムチェック記述＄ｓｅｔｕｐにおいて、ＰＤＢ８がチェック信号、ＣＫＭがクロック信号、Ｃ＿Ｃ＿１がルール適合条件、１．５７２０００がセットアップタイムを示す。この記述は、Ｃ＿Ｃ＿１が１の時に、ＣＫＭの立ち下がり（ｎｅｇｅｄｇｅ構文）を基準にして、ＰＤＢ８のセットアップタイムが１．５７ｎｓ（５１のｔｉｍｅｓｃａｌｅ文により単位がｎｓ）以下かどうかをチェックするということを意味する。
データ構造としては、図２７の矢印の示すように、チェック信号とクロック信号がインタフェース信号の入力端子を参照し、ルール適合条件がルール適合条件演算部５５の演算結果を参照する。
ルール適合条件演算部５５は、図２７に示すように、変数とブール演算子からなるブール演算式と演算結果から構成される。図６では、ａｎｄ．．．の一行が、ＡＤＣＨ０  ａｎｄ  ＰＤＢ８のブール演算式を示し、ＡＤＣＨ０とＰＤＢ８が変数、ａｎｄがブール演算子を示す。Ｃ＿Ｃ＿１が演算結果を示す。データ構造としては、図２７の矢印に示すように、変数がインタフェース５２の入力端子を参照し、演算結果がタイミングルールチェック部５６のルール適合条件で参照される。
最後に、出力ディレイ部５７は、図２７に示すように、クロック信号、ディレイ付加信号、および、ディレイが主要な構成要素である。図６では、ＣＫＭがクロック信号、ＬＦＡＤＩＮがディレイ付加信号、（１．３０２，１．５９０）がディレイを示す。この記述は、ＣＫＭが変化後、立ち上がりディレイ１．３０２ｎｓ、立ち下がりディレイ１．５９０ｎｓでＬＦＡＤＩＮが出力されることを示している。ここで、ディレイの単位ｎｓは、タイムスケール５１で指定される。
中間出力であるディレイ測定パス１０４の構成要素を図２４に示す。この例は、図１３のｔｒｉ１を通過するＣＫからＦＦ１までのパスのデータ表現である。クロックから１ｓｔＦＦまでのクロックパス、入力データから１ｓｔＦＦまでのデータパス、またはクロックから出力までの区分を示すパス属性２４１，始点から終点までのゲートまたは順序回路素子の出力の信号名を列挙したパス上信号２４２、および終点のＦＦの名称を示す終端ＦＦ２４３の３つのデータから構成する。
中間出力である活性化条件１０５の構成要素を図２４に示す。この例は、図１３のクロックＣＫのＦＦ１に対する活性化条件のデータ表現である。ＦＦ名２４４、ディレイ出力パスデータと同一表現のパス属性２４１、始終点２４６、および信号名を変数とするブール式表現を示す活性化条件２４７の４つのデータから構成する。
タイミング特性ライブラリ部５４を生成する方法が本実施例の主眼であり、次の３．２にて詳細に述べる。
３．２  タイミング特性抽出方法の各処理ステップ
図１の各処理ステップを以下に述べる。
３．２．１  ステップ１１：ゲート・ＦＦ復元
このステップは、トランジスタ回路群からゲート回路を復元するゲート復元と、復元されたゲート回路からＦＦ回路を復元するＦＦ復元からなる。タイミング特性抽出の自動化はタイミング測定個所と活性化条件を取得すれば実現できる。このいずれを取得するのにもトランジスタレベルのレイアウトデータからでは困難であり、一旦ゲート、およびフリップフロップを抽出（復元）することが必要である。この抽出（復元）処理のうち、フリップフロップ抽出（復元）はゲート抽出（復元）結果を用いて処理するため、ゲート抽出（復元）が全ての処理の前提となる。
３．２．１．１  ゲート復元
ＭＯＳトランジスタ回路からのゲート回路の抽出（復元）方法は、レイアウトデータの検証支援、トランジスタ回路の論理シミュレーションの高速化、および形式検証を目的として、従来からさまざまな公知例がある。その中で、トライステートゲート（出力にトライステート状態を持つゲートで順序回路素子の一種）も対象とする本発明者による一例として、特開平９−１７９８８５号公報に記載された処理過程を図７に簡単に述べる。まず、図７に示すトランジスタ回路群のトランジスタ一個一個を仮想トライステート素子４００３に変換する。次に、トライステート素子の直列接続群４１を各トライステート素子の制御論理のＡＮＤ論理４３を制御論理にもつ一個のトライステート４０１に変換し、同一入力の並列接続群４２を各制御論理のＯＲ論理４４を制御論理にもつトライステートに変換するという過程を繰返していくと、４０２の回路となる。第３番目に、異なる入力を持つ並列のトライステートについても並列変換の一般化変換によって、４０３の回路を得る。この過程の詳細は、省略するが、この例では、４０２の入力の反転論理を入力に持ち、４０１と４０２の制御論理Ｃ１とＣ２のｏｒ論理を制御論理に持つトライステート一個に変換できる。最後に、制御論理Ｃ１ｏｒＣ２＝Ｃが１の時のみこの入力は出力に影響を与えることを考慮して、制御論理による入力論理の除算を行い、４６に示す縮約ゲート論理を得る。
以上の方法は、レイアウトデータからゲートを抽出する方法であり、１個のゲートを構成するＭＯＳ群が決まったときに、ＭＯＳの接続形態に依存せず、スイッチング特性のみからゲートを抽出する。しかし、同一出力ゲートグループをゲート構成単位へ分割する方法は提示されていない。
以下に、本発明独自の同一出力ゲートグループのゲート構成単位への分割方法を、ＭＯＳの接続形態に依存しない形で開示する。まず分割方針を述べ、次に分割方法について述べる。
（１）分割方針
分割は、「０と１共に出力しうるが，０と１を同時には出力しない」というゲートが持つ条件（以降，ゲート条件と呼ぶ）を用いて行う。
同一出力ゲートグループへの分割は、まず「０と１共に出力しうる」という第一のゲート条件を用いて、ＭＯＳ群内のゲートの出力点を決定する。出力点は同時に次のゲートへの論理値の発生源、すなわち論理ソースとなる。次に、論理ソースから各ゲート出力までの領域を同一出力ゲートグループとしてＭＯＳ群を分割する。
同一出力ゲートグループの分割は、ゲート出力の論理値を決める基本単位へ同一出力ゲートグループを分離し、その後、ゲート条件を満足する基本単位群を最大限集めてゲート構成単位を作成することにより、このゲート構成単位に同一出力ゲートグループを分割する。
（２）分割方法
（ａ）同一出力ゲートグループへの分割
この処理では、ゲート出力点と論理ソースの集合を決定し、次にＭＯＳ群を同一出力ゲートグループに分割する。
ゲート出力点と論理ソースの集合は、以下に述べる処理により決定する。
まず、これらの集合の初期値を設定する。ＭＯＳのゲート端子（以降、Ｇ端子と略す）との接続点はゲート条件とは無関係に他のゲート抽出基本単位に論理値を伝搬する点であるため、これをゲート出力点の初期値とする。電源は論理的な１のソース源でありグラウンドは０のソース源であるため、これらを論理ソースの初期値とする。
次に、ゲート出力点と論理ソースの探索を行う。ＭＯＳの有効方向に沿った経路をＭＯＳトレース経路と定義すると、複数の異なる論理ソースからのＭＯＳトレース経路が交差する点は、第一のゲート条件を満たすゲートの出力となりうる。このため、探索処理では、複数の異なる論理ソースからのＭＯＳトレース経路が初めて交差する点を新たなゲート出力点とする。この交差点は新たな論理ソースともなりうるので、ゲート出力点と論理ソースの両方の集合に加える。この探索処理を新たなゲート出力点がなくなるまで繰り返すことにより、ゲート出力点と論理ソースの集合が得られる。
同一出力ゲートグループへの分割は、上記で求めたゲート出力点の各々に対し、ゲート出力点に到達するＭＯＳトレース経路上の直前の論理ソースとこのゲート出力点に囲まれたＭＯＳ群を同一出力ゲートグループとして、ＭＯＳ群を分割する。
（ｂ）同一出力ゲートグループの分割
この処理は、ゲート出力の論理値を決める基本単位へ同一出力ゲートグループを分離し、基本単位をゲート変換単位へ順次統合してゆくという手順で行う。
ゲート出力の論理値を決める基本単位は、同一出力ゲートグループ内の各論理ソースからゲート出力点までの一つのＭＯＳトレース経路上のＭＯＳ群であり、これをＭＯＳチェーンと呼ぶ。従って、最初のステップは同一出力ゲートグループのＭＯＳチェーンへの分離である。
ＭＯＳチェーンのゲート構成単位への統合は、二つのＭＯＳチェーンのペアチェーンへの統合とペアチェーンの統合からなる。
ペアチェーンへの統合は以下のように処理する。
異なる論理ソースを持つＭＯＳチェーンは「０と１を共に出力する」という第一のゲート条件を満足するため、異なる論理ソースを持つ二つのＭＯＳチェーン（以降、パートナチェーン１と２と呼ぶ）をペアチェーンとして統合する。但し、「０と１を同時には出力しない」という第二のゲート条件を満足するため、論理ソースからゲート出力点まで論理値を転送する条件が同時には成立しないという制約を、統合対象に課す。
ペアチェーンの統合は、ペアチェーンを統合してゲート条件を満足する最大のＭＯＳ群を作成する処理である。この処理は、上記で求めたペアチェーンを統合し、統合されたペアチェーン群を新たなペアチェーンとして再定義する、という統合処理を、統合されるペアチェーンがなくなるまで繰り返す。以下でこの統合処理を述べる。
統合処理では、まず、全てのペアチェーンの中で同一のパートナチェーン（以降、ＳａｍｅＰと呼ぶ）を持つペアチェーン群を新たなペアチェーンとして統合する。次に、ＳａｍｅＰを新たなペアチェーンのパートナチェーン１として再定義し、統合前のペアチェーン群において、ＳａｍｅＰのパートナチェーン群を新たなペアチェーンのパートナチェーン２として再定義する。最後に、新たなペアチェーン群と統合されていないペアチェーン群を合わせてペアチェーンの新たな集合と再定義して、次の統合処理に移る。
ペアチェーンの統合結果、最終的にできたペアチェーンをゲート構成単位として、同一出力ゲートグループの分割は終了する。
以下に、ゲート復元の一実施の形態を図面により詳細に説明する。
本発明は、図２に示す処理装置上で稼働する。本発明は、ハードディスクなどの入力ファイル群２２からＭＯＳトランジスタ回路データ１０２を主記憶２６に入力し、入力されたＭＯＳトランジスタ回路データを元に、中間データを主記憶２６上との間で入出力しながらＣＰＵ２１で各処理ステップを行う。最後に、変換結果であるゲート回路データをワークファイル群２３へ出力する。
本発明に基づくゲート抽出の全体処理フローを図２８と図２９に示す。
ゲート抽出処理は、前処理として、ゲート抽出基本単位への分割２８１と有効方向決定２８２を行ったあと、基本単位の同一出力ゲートグループへの分割２８３とゲート構成単位への同一出力ゲートグループの分割２８４を行う。その後、ゲート変換２８５を行う。以下では、前処理（２８１と２８２）、ゲート抽出基本単位のゲート構成単位への分割（２８３と２８４）、およびゲート変換２８５に分けて各処理ステップを述べる。
３．２．１．１．１  前処理
ゲート抽出基本単位への分割２８１は、ＭＯＳトランジスタデータ１０２を互いにソースまたはドレインを接続するＭＯＳ群に分割する。図２８のＭＯＳトランジスタデータ１０２は２８０２に示す２つの基本単位に分割できる。
有効方向決定２８２は、基本単位内のＭＯＳ群に対して、論理的なソースとなる電源、またはグラウンドからＧ端子との接続点２８０１まで、互いにソースまたはドレインを接続するＭＯＳ群をトレースし、トレース方向をＭＯＳ群の有効方向とする。複数の有効方向を持つＭＯＳは双方向トランジスタでありゲート抽出対象外となる。図２８のゲート抽出基本単位１（２８２１）は、２８０３に示す矢印の方向が有効方向となる。
３．２．１．１．２  ゲート抽出基本単位のゲート構成単位への分割
以下の処理がゲート復元のキーであり、その処理手順は、上記３．２．１．１の節で述べた通りである。ここでは、回路例を通した具体的な処理手順を述べる。この処理を構成する「同一出力ゲートグループへの分割」２８３と「同一出力ゲートグループの分割」２８４の２つのステップを、以下に述べる。
３．２．１．１．２．１  同一出力ゲートグループへの分割２８３
これは、ゲート抽出基本単位を同一出力ゲートグループに分割する処理であり、ゲート出力点と論理ソースの決定、およびこれらを利用した同一出力ゲートグループへの分割の２つのステップからなる。図３０に従いこれらのステップを以下で述べる。
（１）ゲート出力点と論理ソースの決定
図３０（ａ）に示す例題回路３００１に対するゲート出力点と論理ソースの探索過程を図３０（ｂ）に示す。
ゲート出力点の集合の初期値はＧ端子との接続点｛Ｏ４｝、論理ソースの集合の初期値は｛０，１｝である。
１回目の探索で、論理ソース０と１からのＭＯＳトレース経路が初めて交差する点ＯとＯ２が、新たなゲート出力点として見つかる。これらをゲート出力点と論理ソースの両方の集合に加える。
２回目の探索では、論理ソースＯとＯ２からのＭＯＳトレース経路が初めて交差する点Ｏ３が、新たなゲート出力点として見つかる。これをゲート出力点と論理ソースの両方の集合に加える。
新たなゲート出力点はこれ以上見つからないので探索は終了する。この結果、ゲート出力点の集合｛Ｏ４，Ｏ，Ｏ２，Ｏ３｝と論理ソースの集合｛０，１，Ｏ，Ｏ２，Ｏ３｝が得られる。
（２）同一出力ゲートグループへの分割
上記で求めたゲート出力点の各々に対して、ゲート出力点に到達するＭＯＳトレース経路上の直前の論理ソースとこのゲート出力点に囲まれたＭＯＳ群を求めると、図３０（ｃ）に示すＭ＿Ｏ，Ｍ＿Ｏ２，Ｍ＿Ｏ３，およびＭ＿Ｏ４の４つの同一出力ゲートグループが得られる。例題回路をこれらに分割して同一出力ゲートグループへの分割は終了する。
図２８の２８０３は、同様な処理により２８０４と２８０６の２つの同一出力ゲートグループに分割できる。
３．２．１．１．２．２  同一出力ゲートグループの分割２８４
これは、同一出力ゲートグループをゲート構成単位に分割する処理であり、図３１に示すように、ＭＯＳチェーンへの分離３０１とＭＯＳチェーンのゲート構成単位への統合３０２の２つのステップからなる。図２８で得られた同一出力ゲートグループ２８０４を例にとり、図３１に従いこれらのステップを以下の（１）（２）で述べる。
（１）ＭＯＳチェーンへの分離３０１
これは、同一出力ゲートグループ２８０４を、各論理ソースからゲート出力点までの一つのＭＯＳトレース経路上のＭＯＳ群、すなわちＭＯＳチェーンに分離する処理である。２８０４は、３１０２に示すように、ｖ１，ｖ２，ｇ１，ｇ２，およびｇ３の５つのＭＯＳチェーンに分離できる。ここで、ｖ１とｖ２は論理ソース１のＭＯＳチェーン、ｇ１，ｇ２，ｇ３は論理ソース０のＭＯＳチェーンである。
（２）ＭＯＳチェーンのゲート構成単位への統合３０２
これは、ＭＯＳチェーンをゲート構成単位へ順次統合してゆく処理であり、ペアチェーンへの統合３０２１とペアチェーンの統合３０２２からなる。
（ａ）ペアチェーンへの統合３０２１
これは２つのＭＯＳチェーンを統合する処理であり、統合条件として図３２（ａ）に示す条件を課す。１番目の条件は３．２．１．１の節の（２）（ｂ）で述べた通りの条件であり、２番目の条件は、論理ソースの転送が同時に起こらないための条件である。２番目の条件で、論理ソースの転送論理とは、論理ソースの転送条件を決める論理であり、スイッチング特性の違いにより、ＮＭＯＳ構成とＰＭＯＳ構成のＭＯＳチェーンは各々図３２（ｂ）に示すようにして求める。
図３１の３１０２に示す５つのＭＯＳチェーンの中で、上記の統合条件を満足するＭＯＳチェーンの組として（ｖ１，ｇ１），（ｖ２，ｇ２），および（ｖ２，ｇ３）の３つの組があり、これらを３１０４で示す（ｖｇ１，１），（ｖｇ２，２），（ｖｇ２，３）のペアチェーンに統合する。
（ｂ）ペアチェーンの統合３０２２
これは、上記（ａ）でできたペアチェーンを統合し、ゲート条件を満足する最大のＭＯＳ群を作成する処理である。パートナチェーンが同一のペアチェーンを全て統合し、統合したものを新たなペアチェーンとして再定義し、再び統合を繰り返す。
図３１に示すペアチェーン群３１０４には、同一のパートナチェーンｖ２を持つ２つのペアチェーン、（ｖｇ２，２）と（ｖｇ２，３）があり、これらを統合して新たなペアチェーン（ｖｇ２，２３）を作成する。（ｖｇ２，２３）の新たなパートナチェーン１はｖ２であり、新たなパートナチェーン２は元のペアチェーンでのｖ２のパートナチェーンｇ２とｇ３を統合したｇ２３である。この結果、新たなペアチェーン群は（ｖｇ１，１）と（ｖｇ２，２３）となり、これらは同一のパートナチェーンを持たないため、統合処理は終了する。仮に同一のパートナチェーンを持つペアチェーンがまだあれば、統合処理は続行する。
上記の処理詰果できたペアチェーン（ｖｇ１，１），（ｖｇ２，２３）がゲート構成単位となる。元の同一出力ゲートグループ２８０４に基づいてこれらをＭＯＳ回路で表現すると、図２９の２８０６に示すように、ゲート構成単位１とゲート構成単位２（２８６２）に分割できる。前者が（ｖｇ１，１），後者が（ｖｇ２，２３）である。
３．２．１．１．３  ゲート変換２８５
３．２．１．１．２の節で記載した処理の結果できたゲート構成単位の各々について、図３３に記載した処理手順にて、ゲートに変換する。
まず，ＭＯＳ群をトライステート素子の表現に変換する。具体的には，同一の論理ソースをもつＭＯＳ群各々に対して，論理ソースの転送論理をコントロール論理に持つトライステート素子１個に変換する。（ｖｇ２，２３）は図３３（ａ）に示す結果となる。
この結果できた複数のトライステート素子を，図３３（ｂ）に示す統合ルールによりトライステート素子１個に統合する。この統合ルールは，トライステート素子の真理値表と，２つの素子が出力を共有する時の真理値表を組み合わせたルールである。
図３３（ｂ）の統合ルールを図３３（ａ）の結果に適用すると，図３３（ｃ）に示すように，トライステートゲートを表わす変換結果となる。
この変換結果は，トライステート素子のコントロールＣ２がデータ論理３３１に混在している。この混在は，Ｃ２が１の時のみにゲート出力に対して意味を持つデータ論理３３１が，Ｃ２が０の時の冗長な論理を含むために起こる。この冗長な論理を除外するため，コントロールによるデータ論理の除算を行う。コントロールによる除算とは，データ論理をコントロールが１の時の論理に変換する処理である。
除算を行った結果，データ論理３３１にはコントロールＣ２の混在がなくなり，図３３（ｄ）に示すトライステートＮＯＲゲートとなる。
３．２．１．２  ＦＦ復元
ＦＦ復元は、処理装置内に、さまざまなパターン種別毎の変換ルールを内蔵することにより処理する過程であり、ＦＦがゲート回路のループをベースにして構成されていることを利用する。ここでは、復元パターンの例のみを図８に示す。この例はＮＯＲのたすき掛けタイプとトライステートループタイプの変換例である。
３．２．２  ステップ１２：１ｓｔＦＦ／ｌａｓｔＦＦと関連回路の切り出し
このステップは、１ｓｔＦＦと関連回路の探索、ｌａｓｔＦＦと関連回路の探索の２つの処理を行い、関連回路を認識するステップである。２つの探索処理の概要と探索範囲について図９、図１０、図１１、および図１２に示し、以下に述べる。
（ａ）  １ｓｔＦＦと関連回路の探索は、図９の１ｓｔＦＦサーチ８１、クロック関連回路の探索８３、８５、およびデータ関連回路の探索８２からなる。
１ｓｔＦＦサーチ８１は、入力ｄを始点として、ゲート回路をファンアウト方向に探索していき、ＦＦのデータ端子Ｄに到達した時にこれを１ｓｔＦＦとするステップである。但し、サーチ過程において、ゲート回路以外の例外素子に接続する信号があった場合には、図１０の１ｓｔＦＦ探索に従って取り扱う。このうち、ゲートが他のゲート又はＦＦと出力を共有しているマルチドライブ信号については、２００１のように駆動能力を向上するために同一ゲートを並列に接続しているケースが多いため、補助情報１０１内の図５の４０に示すマルチドライブ指定があれば、これを同一ゲートと見なしていずれかのゲートを対象にしてサーチを続行する。
クロック関連回路の探索は、１ｓｔＦＦ８０のクロック端子を始点として、ファンイン側にクロックｃｋに到達するまで探索していき、探索範囲の回路を関連回路とするステップである。このステップは、ゲート回路だけではなく、２ｎｄＦＦ８４も考慮に入れることに特徴がある。より一般的には、任意の個数のＦＦも同様にして扱うことは可能であるが、その一例として、ここでは２ｎｄＦＦまでを考慮すれば十分なケースを扱っているものとする。２ｎｄＦＦの考慮は、１ｓｔＦＦのクロックとしては、１サイクル区間のクロックを考慮していることと同じであり、分周回路にはこのような構成がよく使われる。
クロック関連回路の探索の処理は、１ｓｔＦＦ８０のクロック端子から全体回路の端子、または、２ｎｄＦＦ８４まで探索するステップ８３と、２ｎｄＦＦ８４のクロック端子から全体回路の端子までを探索するステップ８５からなる。但し、サーチ過程において、ゲート回路以外の例外素子に接続する信号があった場合には、図１０に従って取り扱う。マルチドライブ信号の扱いは１ｓｔＦＦ探索と同様である。
データ関連回路の探索は、１ｓｔＦＦ８０のデータ端子から、端子または、ＦＦの端点までを、ファンイン方向にゲート回路を探索していくステップである。但し、サーチ過程において、ゲート回路以外の例外素子に接続する信号があった場合には、図１０に従って取り扱う。
（ｂ）ｌａｓｔＦＦと関連回路の探索は、図１１のｌａｓｔＦＦサーチ９１、１ｓｔＦＦのクロック関連回路の探索と同一処理８３、８５によるｌａｓｔＦＦのクロック関連回路の探索、およびｌａｓｔＦＦの出力データ関連回路の探索９４からなる。
ｌａｓｔＦＦサーチ９１は、出力ＯＵＴを始点として、ゲート回路をファンイン方向に探索していき、ＦＦの出力端子に到達したときにこれをｌａｓｔＦＦとするステップである。但し、サーチ過程において、ゲート回路以外の例外素子に接続する信号があった場合には、図１２のｌａｓｔＦＦ探索にしたがって、取り扱う。マルチドライブ信号の扱いは、１ｓｔＦＦのクロック関連回路の探索時と同様である。
ｌａｓｔＦＦのクロック関連回路の探索は、ｌａｓｔＦＦのクロック端子を始点として、１ｓｔＦＦのクロック関連回路の探索と全く同一の処理８３，８５を行う。
ｌａｓｔＦＦの出力データ関連回路の探索９４は、出力ＯＵＴを頂点とし、図９のデータ関連回路の探索時と同一の端点と、ｌａｓｔＦＦ全てを端点とするゲートのコーンを関連回路とするステップである。
３．２．３  ステップ１３：ディレイ測定パス探索
このステップは、ステップ１２で切り出された関連回路に対して、スタティックにＴｒ．回路のディレイ測定を行うために、測定する端子から終点までの全てのパスをディレイ測定ステップ１５に与える。通常、スタティックディレイ測定では、ｆａｌｓｅ  ｐａｔｈと呼ばれる機能的にありえないパスに対してもディレイ測定を行うため、復元されたゲート回路のレベルでｆａｌｓｅ  ｐａｔｈを除去してディレイ測定ステップにパスを与える。
ここでは、まず、簡単な回路例で、組み合わせ回路での有効パスの探索方法の概要を示し、次にＦＦを通過するパスの探索方法について述べる。
組み合わせ回路でのパス探索は、Ｋａｒｌ  Ｆｕｎｃｈｓ  ｅｔ  ａｌ．，  ”ＤＹＮＡＭＩＴＥ：Ａｎ  Ｅｆｆｉｃｉｅｎｔ  Ａｕｔｏｍａｔｉｃ  Ｔｅｓｔ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｐａｔｈ  Ｄｅｌａｙ  Ｆａｕｌｔｓ”，  ＩＥＥＥ  Ｔａｎｓａｃｔｉｏｎ  ｏｎ  ＣＡＤ，  ｖｏｌ１０，  Ｎｏ．１０，  ｐｐ１３２３−１３３５，  Ｏｃｔ．  １９９１．等、数多くの公知例がある。ここでは、ＦＦを含むパス探索の準備として、図１３（ａ）に示す再収れん構造をもたない簡単な回路で探索方法の概要のみを示す。図１３（ａ）では、Ｃがパスの到達点であり、ＣＫＩが始点である。今、Ｃが立ち上がる（↑）時のパスを求めるとする。この時、パスは、ＣＫＩ→Ｐ１→Ｃがある。このパスをファンイン側に、一段ずつゲートを調べていき、出力側の変化を起こすためのパス上の信号変化とｏｆｆパス上の信号の満たすべき条件を求めていく。この図の場合には、一段目のゲートから、パス上の信号Ｐ１は↑、ｏｆｆパス信号Ｃ１＝０でなければならない。二段目のゲートから、ＣＫＩは↑、ｏｆｆｐａｔｈ上の信号Ｃ２＝１でなければならないことがわかる。したがって、このパスを通る条件（パス活性化条件）は始点ＣＫＩ↑で（Ｃ１＝０かつＣ２＝１）である。後者の条件は、Ｃ１，Ｃ２が他のゲートの出力である時には、これらの条件が０かどうかの論理演算を行い、０でなければパスは有効パスとなる。
ＦＦを通過するパスは、上記で述べた組み合わせ回路のパス探索を連鎖的に行っていくことにより探索ができる。今、図１３（ｂ）に示すような、クロックＣＫＩから１ｓｔＦＦのクロック端子まで到達するパスを求めるものとする。この回路では、１ｓｔＦＦがＦＦ１で２ｎｄＦＦはｔｒｉ１とＦＦ２である。２ｎｄＦＦを通過するパスの探索は、ある２ｎｄＦＦ，例えばｔｒｉ１の出力が変化する時の有効パスの判定は、ｔｒｉ１の出力が始点で１ｓｔＦＦを到達点とする有効パスの判定条件と、ＣＫＩが始点でｔｒｉ１を到達点とする有効パスの判定条件のａｎｄ条件が０でないか否かで判断することができる。図１３（ｂ）の例では、ＦＦ１とｔｒｉ１が共に立ち上がりアクティブであるとすると、Ｓ１〜ＦＦ１ｃｋ↑のパス活性化条件とＣＫＩ〜ｔｒｉ１ｃｋ（信号Ｃ１）↑のａｎｄ条件が０かどうかの判定となる。前者の条件は、Ｓ１↑かつ（Ｉ１  ａｎｄ  Ｓ２  ａｎｄ  Ｓ３＝１）であり、後者の条件はＣＫＩ↑かつ（Ｉ３＝１）であり、これらのａｎｄが０でない時にこのパスは有効パスとなる。
図１４は、以上のパス探索の方法を、求めたい３つの全体パス、すなわち、クロック→出力（出力ディレイ用）、クロック→１ｓｔＦＦｃｋ（タイミングルール用），および入力→１ｓｔＦＦｄ（タイミングルール用）に適用するための、各ＦＦ間のコーン１１１、１１２、１１３で何を求めるかと、有効パスを見つける条件を示す。例えば、クロック→１ｓｔＦＦｃｋを求めるには、１ｓｔコーン内でクロックがあれば、（ａ）クロック→１ｓｔＦＦｃｋアクティブ条件のパスを求め、２ｎｄＦＦがあれば、（ｂ）パスＦＦ２ｏｕｔ→１ｓｔＦＦｃｋアクティブ条件のパスを求める。２ｎｄコーンでは、（ｃ）クロック→パスＦＦ１ｃｋアクティブのパスを求める。ＦＦを通るパスは、（ａ）のパス活性化条件と（ｂ）のパス活性化条件のａｎｄが０でない時に、有効となる。
図１４は、出力ディレイ用、タイミングルール用共に、タイミングを決めるＦＦのクロック端子（前者は、パスＦＦのクロック端子，後者は到達点）から２番目のＦＦまでを考慮したが、より一般的に２ｎ分周クロックを作るｎ個のＦＦを扱う場合にも、同様にしてパス活性化条件を連鎖的にａｎｄしてゆけば全体のパスの有効条件は求めることができる。
以上により求めた有効パスをディレイ測定パスファイル１０４に出力してこのステップは終了する。
３．２．４  ステップ１４：活性化条件作成
このステップは、ステップ１３で有効パスの判定に用いたパス活性化条件のすべてのｏｒをとるという方法を用いずに行う。パス活性化条件のｏｒを取る方法では、処理時間が大であるため、一括して活性化条件を求める方法を示す。活性化条件は、タイミングルールの作成のために用いるため、クロック〜１ｓｔＦＦまでのクロック活性化条件と入力〜１ｓｔＦＦまでのデータ活性化条件の作成からなる。
クロック活性化条件の作成方法を図１５に示し、以下に述べる。この方法は、有効パスの判定条件を求めるのと同様に、ＦＦ間のコーンの活性化条件を連鎖的にａｎｄしていく。これまでと同様に、２ｎｄＦＦまでしかない場合を求める。ｎｔｈＦＦへの拡張もこれまでと同様に容易である。
クロック活性化条件は、図１５の式１２１に示すように、１ｓｔコーンの入力にクロックＣＫがある場合の１ｓｔコーンの活性化条件と２ｎｄＦＦ考慮の活性化条件からなる。
１ｓｔコーンの活性化条件は、１ｓｔＦＦが立ち上がりアクティブ（ｏｎ）か立ち下がりｏｎか、始点ＣＫが立ち下がりか立ち上がりかで４通りの条件がある。式１２２がその条件を示す。いずれも同様であるので、一番目の式のみを説明する。これは、１ｓｔＦＦのクロックが立ち上がりｏｎであるので、１ｓｔコーンの論理関数をｈとすると、変化前が０すなわちｈ（ＣＫ＝変化前の値）＝０で、ｈ（ＣＫ＝変化後の値）＝１の時に１ｓｔＦＦのクロック端子が立ち上がる。したがって、ＣＫ立ち上がり条件では、ｎｏｔ（ｈ（ＣＫ＝０））ａｎｄ  ｈ（ＣＫ＝１）＝１の時に１ｓｔＦＦがアクティブになる活性化が起こる。これを示すのが、式１２２の第一式である。
２ｎｄＦＦ考慮の活性化条件は、２ｎｄＦＦがｏｎし＜１＞、かつ、２ｎｄＦＦの出力が変化して１ｓｔＦＦｃｋがｏｎする条件＜２＞によって求める。これを示したのが、式１２３である。＜１＞＜２＞は、１ｓｔコーンと２ｎｄコーンのおのおのについて式１２４と１２５によって求めることができる。ここで注意しなければならないことは、式１２５では、変化前の２ｎｄＦＦの出力はＳとしており、端子でクロックが変化する時の内部の状態Ｓが活性化条件に出現することである。これが、組み合わせ回路のみで活性化条件を求める場合と異なる点である。
図１６にクロック活性化条件の計算例を示す。図１５に示す式によって、順に１ｓｔコーンの活性化条件と２ｎｄＦＦとしてｔｒｉ１を通過するパスの活性化条件を求めた。いずれもＣＫが立ち上がり時のみ有効で、１３４と１３５に示す式になる。
次に、データ活性化条件の作成方法を図１７に示す。データ活性化条件は、クロック活性化条件とは、２ｎｄＦＦを考慮しないことと、変化到達点の立ち上がり／立ち下がりを限定せず変化が起こる条件を求めることが異なる。従って、クロック活性化条件、図１５の１ｓｔコーンの活性化条件１２２の立ち上がり時と立ち下がり時の条件のｏｒをとることになる。結局、１４２に示すように、入力ＩＮ＝０の場合とＩＮ＝１の排他的論理和で表わされる。
３．２．５  ステップ１５：ディレイ測定
このステップは、Ｔｒ．回路１０２を入力して、ステップ１４により作成したディレイ測定パス１０４の有効パスのディレイを、トランジスタレベルのスタティックディレイ測定ツールにより測定する。求めたディレイをディレイファイル１０６へ格納する。トランジスタレベルのスタティックディレイ測定ツールは、公知のものがあり、それを利用する。
３．２．６  ステップ１６：タイミング特性生成
このステップは、図４のモデル化方法で述べた方法を、ディレイファイル１０６、ＦＦタイミングルール１０７、および活性化条件１０５を元に、各端子について行い、図６に示すタイミング特性ライブラリ１０８を生成するステップである。
タイミングパラメタについては、各入力の各１ｓｔＦＦについて、ｄｅｌａｙ（クロック〜１ｓｔＦＦｃｋ）３２とｄｅｌａｙ（入力〜１ｓｔＦＦｄ）３３のスキュー（信号のタイミングのずれ）を計算し、このスキューとＦＦタイミングルールから、図４に示す入力のタイミングパラメタを計算する。同時に、活性化条件１０５を元に図４のルール適合条件を作成して、適合条件とともに図６の５５と５６に示す記述をタイミング特性ライブラリ１０８に出力する。
出力ディレイについては、ディレイファイル１０６を元に、図４に示すように最大パスディレイ値を計算し、図６に示す出力ディレイ記述５７をタイミング特性ライブラリ１０８に出力する。
できあがった、タイミング特性ライブラリは、図６の５１〜５３を自動付加もしくは、人手付加して、機能モデルと共にタイミング検証用のモデルとして使われる。タイミング特性ライブラリの使用の形態は、４．にて述べる。
４．タイミング特性ライブラリの使用形態
本発明の方法で生成されたタイミング特性ライブラリ１０８の使用形態の一例を図１８に示す。
図１８（ａ）は、システムＬＳＩシミュレーション形態のイメージ図を示す。システムＬＳＩは、ＣＰＵコア、ＤＭＡＣ、タイマなどの既存設計論理をＬＳＩ内にモジュールとして組み込み、新規設計論理を付加して作成する。システムＬＳＩをシミュレーションで検証時には、ＣＰＵコア１５６の例で示すように、既存のモジュールは、機能モデルの上位階層に本発明で生成したタイミング特性を付加してシミュレーションを行う。
この時、機能モデルの出力結果にディレイを付加するのが出力ディレイ部１５１１であり、入力された信号がタイミングルールに適合するのかをチェックするのがタイミングルールチェック部１５１２である。タイミングルールチェック部によりタイミング違反が検出された時には、タイミングエラーが表示され、この結果を元に設計者は、設計回路の見直しを行う。
タイミング特性ライブラリのシミュレーション処理を図２５と図２６に示す。シミュレーションは、一般に単位時間を設定してこの単位時間ごとに行われる。図２５と図２６は、この単位時間内でのシミュレーション処理である。
まず、２６１でモジュール全体、および機能モデルインスタンスの入出力端子の値の変化を検出し、値が変化していれば２６３以下の処理を行い、無変化時には図２６のＢ以下を処理する。
２６３以下の処理を述べる。２６３では、下位階層の機能モデルを呼び出し（２６３１）、機能モデルのシミュレーションを行い（２６３２）、最後に機能モデルの出力端子へ値を登録する。２６４でタイミングルールチェック部を参照し、まず、ルール適合条件が満足するかをチェックする（２６５）。満足していれば、セットアップタイムとホールドタイムのチェック（２６６）を行い、タイミングルール違反であれば（２６７），エラーメッセージを画面に出力し、タイミングルール違反でなければ図２６のＢ以下の処理を行う。
図２６のＢ以下の処理を述べる。これは出力ディレイ処理である。まず、出力ディレイ部を参照し（２６９）、機能モデルの出力が前回変化した時刻が現在よりディレイ値時間前であれば（２６２１）、モジュール全体の出力端子へ値を登録し１単位時間の処理は終了する。そうでなければ１単位時間の処理は終了する。
以上により、新規設計論理回路とモジュール間、またはモジュール間のタイミングのチェックが可能となる。すなわち、各モジュールのモデルに組み込まれているタイミングルールチェック部によりタイミング違反が検出された時には、タイミングエラーが表示され、この結果を元に設計者は、設計回路の見直し、または、モジュール間へのバッファ付加などを行う。
システムＬＳＩシミュレーション時のシステム構成を、図１８（ｂ）に示す。モジュールライブラリ１５２と新規設計論理回路データ１５３の設計データ、および入力波形データ１５５を、ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅハードウェア記述言語）シミュレータに入力することにより、シミュレーション結果とタイミングエラーが出力される。生成したタイミング特性ライブラリと機能モデルライブラリは、それぞれ個別に、または統合したモジュールライブラリとして記憶媒体に記憶される。
５．第２の実施例
図１９に第２の実施例を示し、以下に述べる。
図１９に示すのは、図１５に示すクロック活性化条件の作成の２ｎｄＦＦ考慮の活性化条件１２３の計算において、式１２３に含まれる＜２＞の計算からある条件のパスを除外する方法である。図１６の回路を例にして除外する条件を説明する。
図１６のパス１３３が活性化される時、パス１３７も同時に活性化して、ゲート１３８の入力が２つとも↑変化するために、ＦＦ１のクロック端子が↑変化するケースがある。これは、ＦＦを通るパスが、１ｓｔコーン１３１内のクロックの変化によって助けられて変化を伝えるパスである。しかしながら、通常このようなクロックとの同時変化を起こすパスは抑制されており、特に順序回路を通るパスと、タイミングを決めるクロックとのパスの同時変化があるとタイミング設計が難しくなる。これはスタティックにパスを見ているために判定できないｆａｌｓｅ  ｐａｔｈと考えてもよいケースが多い。
上記の理由で、ここで述べる活性化条件は、式１２３の中の＜２＞からクロックとの同時変化によって起こるパスを除外する方法である。
このような同時変化を起こすパスを除外するには、＜２＞の条件を、クロックが立ち上がりであろうと、立下がりであろうと、成り立つ条件にすればよい。すなわち、式１２５を式１６１に変更する。これにより、図１６の回路例によるＳ１を通るパスの２ｎｄＦＦの活性化条件は、式１６２に示す通りとなる。この条件は、Ｓ２＝０でないと成立しない。すなわち、ゲート１３９において、Ｓ２＝０にすることにより、パス１３７を抑制しているのである。
上記に示す方法か、図１５で示した方法のどちらがよいかは、スタティックに回路を解析しても解は得られない。設計回路の性質による。実際の実施状況では、どちらの選択とするかを回路毎に設計者に選択の余地がある。この実施は、よく見られる方法、すなわち、制御ファイルでシステム実行制御を行うことになる。この詳細は省略する。
６．第３の実施例
図２０に第３の実施例を示し、以下に述べる。
この実施例は、ディレイ測定指示情報を、第１の実施例を示す図１でディレイ測定パス１０４であったものを、ディレイ測定用テストパターン１０９に変え、同時にこれを生成する処理として、ディレイ測定用テストパターン生成１７に変更し、ディレイ測定方法をＴｒ．回路レベルのダイナミックなシミュレーション方法に変更する。
テストパターンは、パスごとに存在し、図１３に示すパス活性化条件を満たすパターンである。
例えば、図１３（ａ）の例ではＣ１＝０かつＣ２＝１に初期設定するパターンとＣＫＩを初期値０からディレイ測定時に１に立ち上げるパターンである。ディレイ測定時は、内部信号も含んで、シミュレーション前にＣ１，Ｃ２を上記のパターンに設定し、ＣＫＩを０から１に立ち上げるパターンをシミュレーションに印加してディレイを測定する。図１３（ｂ）に示すＦＦを通過するパターンは、各コーンの活性化条件を同様にして変更する。さらに、中間のＦＦ（この図では、ｔｒｉ１）の出力Ｓ１を変化の初期値に設定し（この回路例では、０）、ＦＦの入力をクロック端子Ｃ１がアクティブになった時にＳ１に変化後の値になるように設定する。
上記の方法は、関連する回路のみに初期設定、および変化後の設定を行うので、他の回路の影響は少なく、全体回路のシミュレーションに比べて、処理時間は問題とならない。
７．第４の実施例
図２１に第４の実施例を示し、以下に述べる。
この実施例も、第３の実施例と同じくダイナミックなシミュレーションによりディレイ測定を行うアプローチであるが、第３の実施例と異なり、入力波形１００１を与え、活性化条件を元に、活性化条件が満足する時間を自動的に決定する（ディレイ測定時間決定１８）。但し、活性化条件は、内部信号も含むため、内部信号のスムージング１７２，すなわち活性化条件に含まれる内部信号が０の場合と１の場合の論理和演算を全ての内部信号について行い、端子の活性化条件１７１を元に時間を決定する。
８．第５の実施例
図２２に第５の実施例を示し、以下に述べる。
この実施例は、Ｔｒ．回路の信号名と機能モデルの信号名が異なる場合に、Ｔｒ．回路の信号名を人手で修正しなければ図１８で示した、シミュレーションが実現できないという問題を解決するための実施例である。特に、活性化条件に内部信号を含む場合には、人手で修正する工数が大であり、この方法は有効となる。活性化条件は、図１０に示した、反点が、ＦＦの出力／マルチドライブ信号／ＶＣＣ／ＧＮＤ／浮きである場合と、クロック活性化条件で２ｎｄＦＦを考慮した場合に、多数起こりうる。
この実施例は、図１のステップ１４に活性化条件で使用されているＴｒ．回路の信号名を出力する処理を付け加え、１００４のステップに変更する。ステップ１００４は、活性化条件１０５と使用されているＴｒ．回路信号１００５を出力する。次に、Ｔｒ．回路信号に対応する、機能モデル内の信号名を人手で入力し、Ｔｒ．回路−機能モデル信号対応表１００６を作成する。最後に、他の入力ファイル１０６、１０７と共に、１００６を入力として、タイミング特性生成１８１を実行する。タイミング特性生成１８１は、タイミング特性ライブラリ１８２を出力時に、活性化条件に出現するＴｒ．回路信号名を、機能モデルの信号名に変換して、１８２を出力する。
９．第６の実施例
図２３に第６の実施例を示し、以下に述べる。
この実施例は、ＦＦタイミングルール１０７を自動で計算する処理をこれまでの実施例に追加した例である。
この実施例は、ディレイ測定パス探索１３でディレイ測定パスを探索すると同時に、関連する１ｓｔＦＦの入出力端子情報も認識し、ディレイ測定パス・１ｓｔＦＦ１００２に出力する。その後、ディレイ測定と共に１ｓｔＦＦの入出力端子情報を元に、ＦＦタイミングルール１０７も測定する。この測定方法は、少なくともシミュレーションを使う方法は公知例があり、ここでは省略する。
１０．第７の実施例
図３４にモジュールを含むシステム全体シミュレーションの第７の実施例を示す。図３４（ａ）にシミュレーションのシステム構成を示す。特性抽出装置１０が作成するモジュール特性２２は
（１）独立したタイミング活性化条件用論理
（２）モジュール端子に直接設定してあるタイミング情報
（３）タイミング属性を分離するノード分離回路
等を備えた構造上の特徴より、モジュール機能２１とは全く独立した論理階層としてライブラリ化出来る。これは従来のライブラリデータの表現上の分離とは異なり、論理階層の一部なので、後処理等で論理シミュレータに適合する形式に変更する必要がない。又、モジュール機能の表現方法も、特性情報を考慮する必要が全くないため自由度が極めて高い。
図３４（ｂ）にシステム全体回路のシミュレーション形態の例を示す。既存のＭＰＵやメモリ等のモジュールを搭載し、新規のランダム論理を付加した全体回路において、システムクロック１１０とランダム論理部からのデータ１１１や他のモジュールからのデータ１１２の時間差と、セットアップやホールドの特性情報とが比較１０３され、違反がある場合はシミュレーション結果４０の中にエラーが表示される。このとき違反をチェックしなくてよい状態であるかタイミング活性化条件用論理が演算し、もしチェックしなくてよい状態であれば、疑似エラーを抑止する。
本発明のモジュール特性表現手法と動作記述や機能記述と組み合わせることにより、高速で高精度なシミュレーションが可能になる。
産業上の利用可能性
以上のように、本発明によれば、従来に比べ、大規模回路モジュールのタイミング検証を高速に精度よく行うことができるタイミング特性ライブラリを提供可能である。従来のタイミング検証方法で、モジュールをセルレベルのタイミング付ライブラリの集合体として扱うと、シミュレーションにてタイミング検証を行う時には、シミュレーション処理時間が大であり、また、シミュレーションの高速化のために、モジュールを機能モデル＋モジュール全体のタイミングで表現する時には、モジュール全体のタイミングを自動抽出する方法はなく、人手に頼っていたため、工数が大であり、かつ精度が落ちるという問題を本発明は克服している。本発明は、この問題を解決するための方法であり、これにより、モジュール全体のタイミングをタイミング特性ライブラリとして、精度よく高速に抽出することができ、ひいては、タイミング検証時に高速に精度よい検証方法を提供することができる。さらに、生成されたタイミング特性ライブラリにはタイミングルールの適合条件を含むため、モジュールに関与しないデータ変化時には疑似エラーを抑えることができるため、検証工数の削減が可能となる。
【図１】
0003851357.tif 000002
【図２】
0003851357.tif 000003
【図３】
0003851357.tif 000004
【図４】
0003851357.tif 000005
【図５】
0003851357.tif 000006
【図６】
0003851357.tif 000007
【図７】
0003851357.tif 000008
【図８】
0003851357.tif 000009
【図９】
0003851357.tif 000010
【図１０】
0003851357.tif 000011
【図１１】
0003851357.tif 000012
【図１２】
0003851357.tif 000013
【図１３】
0003851357.tif 000014
【図１４】
0003851357.tif 000015
【図１５】
0003851357.tif 000016
【図１６】
0003851357.tif 000017
【図１７】
0003851357.tif 000018
【図１８】
0003851357.tif 000019
【図１９】
0003851357.tif 000020
【図２０】
0003851357.tif 000021
【図２１】
0003851357.tif 000022
【図２２】
0003851357.tif 000023
【図２３】
0003851357.tif 000024
【図２４】
0003851357.tif 000025
【図２５】
0003851357.tif 000026
【図２６】
0003851357.tif 000027
【図２７】
0003851357.tif 000028
【図２８】
0003851357.tif 000029
【図２９】
0003851357.tif 000030
【図３０】
0003851357.tif 000031
【図３１】
0003851357.tif 000032
【図３２】
0003851357.tif 000033
【図３３】
0003851357.tif 000034
【図３４】
0003851357.tif 000035