(57)【要約】      （修正有）【課題】タイミング制約の競合を自動的に検出する。【解決手段】タイミング制約ファイルを受信するステップと、タイミング制約ファイルにおける全ての試験ポイントをノードとして取得し、タイミング制約ファイルにおける試験ポイントに関連したタイミング制約に従ってノード間の有向エッジおよび有向エッジの重みを求めて有向グラフを確立するステップと、有向グラフの全ての有向サイクルを検索するステップと、各有向サイクルについて、有向サイクルを構成する有向エッジの重みの和が必要条件を満足する場合、有向サイクルを構成する試験ポイントおよびタイミング制約間にタイミング制約の競合が存在することを判定するステップと、を含む。この方法および装置は、タイミング制約の競合を自動的に１００％検出して、ＡＳＩＣプロジェクトにおいて設計所要時間を短縮すると共にエンジニア・リソースを軽減することができる。【選択図】図１
2010262647.tif 000002
【特許請求の範囲】
【請求項１】
タイミング制約の競合を検出するための方法であって、
タイミング制約ファイルを受信するステップと、
前記タイミング制約ファイルにおける全ての試験ポイントを複数のノードとして取得し、前記タイミング制約ファイルにおける前記試験ポイントに関連したタイミング制約に従って前記ノード間の有向エッジおよび前記有向エッジの重みを求めて有向グラフを確立するステップと、
前記有向グラフの全ての有向サイクルを検索するステップと、
各有向サイクルについて、前記有向サイクルを構成する前記有向エッジの前記重みの和が必要条件を満足する場合、前記有向サイクルを構成する前記試験ポイントおよびタイミング制約間にタイミング制約の競合が存在することを判定するステップと、
を含み、
これらのステップをコンピュータまたは他のプログラマブル・データ処理装置に実施させる、方法。
【請求項２】
有向エッジの前記重みが、その有向エッジによって接続された２つのノードの信号到着の最小必要時間経過である、請求項１に記載の方法。
【請求項３】
前記タイミング制約ファイルにおける前記試験ポイントをノードとして取得するステップが、
前記タイミング制約ファイルにおける全ての前記試験ポイントの情報が完全であるか否かを判断するステップと、
全ての前記試験ポイントにおける前記試験ポイントの一部の情報が不完全である場合、ネットリストにおいて検索を実行して、前記試験ポイントの前記一部の完全な情報を取得するステップと、
を更に含む、請求項１または２に記載の方法。
【請求項４】
前記タイミング制約ファイルにおける全ての試験ポイントをノードとして取得し、前記タイミング制約ファイルにおける前記試験ポイントに関連したタイミング制約に従って前記ノード間の有向エッジおよび前記有向エッジの重みを求めて有向グラフを確立するステップが、
全体タイミング制約をパースし、全ての取得した試験ポイントをノードとして取得し、前記全体タイミング制約が、暗黙タイミング制約および前記タイミング制約ファイル内に与えられたタイミング制約の少なくとも一方を含む、ステップと、
パースした全体タイミング制約に従って、全ての前記ノード間の有向エッジおよび前記有向エッジの重みを取得する、ステップと、
全ての前記ノード、前記有向エッジ、および前記有向エッジ上の前記重みを用いることによって、有向グラフを形成するステップと、
を含む、請求項１または２に記載の方法。
【請求項５】
全体タイミング制約をパースするステップが、
ネットリストにおいて暗黙タイミング制約を検索し、前記暗黙タイミング制約が、前記ネットリストにおいて用いられるデバイスによって定義され、前記タイミング制約ファイルにおいては与えられない、ステップと、
前記暗黙タイミング制約を、前記タイミング制約ファイルにおいて与えられた前記タイミング制約と組み合わせて、全体タイミング制約を形成する、ステップと、
を含む、請求項４に記載の方法。
【請求項６】
前記有向エッジが、後の時点で信号が到着するノードを指し示す場合、前記有向サイクルを構成する前記有向エッジの前記重みの前記和が満足させる必要がある前記条件は、前記重みの前記和がゼロより大きいことである、請求項１または２に記載の方法。
【請求項７】
前記有向エッジが、早い時点で信号が到着するノードを指し示す場合、前記有向サイクルを構成する前記有向エッジの前記重みの前記和が満足させる必要がある前記条件は、前記重みの前記和がゼロより小さいことである、請求項１または２に記載の方法。
【請求項８】
前記有向グラフの全ての有向サイクルを検索するステップが、前記有向グラフの全ての強固に接続されたコンポーネントを検索するステップを含む、請求項１または２に記載の方法。
【請求項９】
前記タイミング制約の競合が存在する前記有向サイクルを構成する前記試験ポイントおよびタイミング制約を出力するステップを更に含む、請求項１または２に記載の方法。
【請求項１０】
タイミング制約の競合を検出する装置であって、
タイミング制約ファイルを受信する、受信モジュールと、
前記タイミング制約ファイルにおける全ての試験ポイントを複数のノードとして取得し、前記タイミング制約ファイルにおける前記試験ポイントに関連したタイミング制約に従って前記ノード間の有向エッジおよび前記有向エッジの重みを求めて有向グラフを確立する、確立モジュールと、
前記有向グラフの全ての有向サイクルを検索する、検索モジュールと、
各有向サイクルについて、前記有向サイクルを構成する前記有向エッジの前記重みの和が必要条件を満足する場合、前記有向サイクルを構成する前記試験ポイントおよびタイミング制約間にタイミング制約の競合が存在することを判定する、判定モジュールと、
を含む、装置。
【請求項１１】
有向エッジの前記重みが、その有向エッジによって接続された２つのノードの信号到着の最小必要時間経過である、請求項１０に記載の装置。
【請求項１２】
前記確立モジュールが、
前記タイミング制約ファイルにおける全ての前記試験ポイントの情報が完全であるか否かを判断する、判断モジュールと、
全ての前記試験ポイントにおける前記試験ポイントの一部の情報が不完全である場合、ネットリストにおいて検索を実行して、前記試験ポイントの前記一部の完全な情報を取得する、ネットリスト検索モジュールと、
を含む、請求項１０または１１に記載の装置。
【請求項１３】
前記確立モジュールが、
全体タイミング制約をパースし、全ての取得した試験ポイントをノードとして取得するためのパース・モジュールであって、前記全体タイミング制約が、暗黙タイミング制約および前記タイミング制約ファイル内に与えられたタイミング制約の少なくとも一方を含む、パース・モジュールと、
パースした全体タイミング制約に従って、全ての前記ノード間の有向エッジおよび前記有向エッジの重みを取得する、有向エッジおよび重み確立モジュールと、
全ての前記ノード、前記有向エッジ、および前記有向エッジ上の前記重みを用いることによって、有向グラフを形成する、有向グラフ確立モジュールと、
を含む、請求項１０または１１に記載の装置。
【請求項１４】
前記パース・モジュールが、
前記ネットリストにおいて暗黙タイミング制約を検索するネットリスト検索モジュールであって、前記暗黙タイミング制約が、前記ネットリストにおいて用いられるデバイスによって定義され、前記タイミング制約ファイルにおいては与えられない、ネットリスト検索モジュールと、
前記暗黙タイミング制約を、前記タイミング制約ファイルにおいて与えられた前記タイミング制約と組み合わせて、全体タイミング制約を形成する、組み合わせモジュールと、
を含む、請求項１３に記載の装置。
【請求項１５】
前記有向エッジが、後の時点で信号が到着するノードを指し示す場合、前記有向サイクルを構成する前記有向エッジの前記重みの前記和が満足させる必要がある前記条件は、前記重みの前記和がゼロより大きいことである、請求項１０または１１に記載の装置。
【請求項１６】
前記有向エッジが、早い時点で信号が到着するノードを指し示す場合、前記有向サイクルを構成する前記有向エッジの前記重みの前記和が満足させる必要がある前記条件は、前記重みの前記和がゼロより小さいことである、請求項１０または１１に記載の装置。
【請求項１７】
前記検索モジュールが、
前記有向グラフの全ての強固に接続されたコンポーネントを検索する、強固に接続されたコンポーネント検索モジュールを含む、請求項１０または１１に記載の装置。
【請求項１８】
前記タイミング制約の競合が存在する前記有向サイクルを構成する前記試験ポイントおよびタイミング制約を出力する、出力モジュールを更に含む、請求項１０または１１に記載の装置。
【請求項１９】
タイミング制約の競合を検出するためのコンピュータ・プログラムであって、
タイミング制約ファイルを受信する命令と、
前記タイミング制約ファイルにおける全ての試験ポイントを複数のノードとして取得し、前記タイミング制約ファイルにおける前記試験ポイントに関連したタイミング制約に従って前記ノード間の有向エッジおよび前記有向エッジの重みを求めて有向グラフを確立する命令と、
前記有向グラフの全ての有向サイクルを検索する命令と、
各有向サイクルについて、前記有向サイクルを構成する前記有向エッジの前記重みの和が必要条件を満足する場合、前記有向サイクルを構成する前記試験ポイントおよびタイミング制約間にタイミング制約の競合が存在することを判定する命令と、
を含み、
これらの命令をコンピュータまたは他のプログラマブル・データ処理装置に実施させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特定用途向け集積回路設計の技術分野に関し、更に具体的には、特定用途向け集積回路設計におけるタイミング制約の競合を検出するための方法および装置に関する。
【背景技術】
【０００２】
ＡＳＩＣ（Application-Specificintegrated Circuit：特定用途向け集積回路）設計は、フロント・エンド設計およびバック・エンド設計に分割することができる。フロント・エンド設計の職員は、設計要求文書に従って、ネットリスト・ファイルおよびタイミング制約のファイルを出力する。ネットリスト・ファイルは、チップ設計において用いられる様々なデバイスおよびそれらのデバイス間の論理接続関係を記述するが、様々なデバイスが物理的にどのように配置されるかは記述しない。タイミング制約のファイルは、データ信号（またはクロック信号あるいはその両方）がクロック信号（またはデータ信号あるいはその両方）よりも早くまたは遅く到着する必要がある時間量を指定するために用いられる。従って、回路における各回路の時間遅延が規定される。フロント・エンド設計の職員によって出力されるネットリスト・ファイルおよびタイミング制約のファイルに従って、バック・エンド設計の職員は、ネットリスト・レベルの設計上でレイアウト配線を実行し、これらは、標準的なセル、マクロセル、およびパッドから構成されるレイアウト設計に変換される。ここで、標準的なセル・ライブラリは、いくつかの基本的な論理ゲート回路から構成されるライブラリであり、各セルは同一のレイアウト高を有し、様々な異なるビューを有する。マクロセルは、ＲＡＭ、ＲＯＭ、および専用ＩＰモジュールを含む。パッドは、入力、出力、および電力供給パッドを含む。バック・エンド設計の職員による設計の１つの重要な課題は、タイミング制約のファイルにおいて必要とされるタイミング制約を満足させることである。
【０００３】
従って、タイミング制約は、ＡＳＩＣ設計要求において１つの重要なファクタであり、タイミング制約の競合は、同一の回路について矛盾するタイミング制約の要求が行われることを意味する。例えば、制約１によって、信号Ａが信号Ｂよりも早く到着することが要求され、制約２によって、信号Ａが信号Ｂよりも遅く到着することが要求されると、信号Ａについて、タイミング制約の競合が存在する。明らかに、タイミング制約間に競合が存在する場合、設計要求を満足させることは不可能である。しかしながら、異なる理由のために、タイミング制約の競合の問題は、ほぼ全てのチップ設計において存在する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
現在、タイミング制約ファイルにおけるタイミング制約を満足させることができるか否かを検出するために、設計職員は通常、ＳＴＡ法（static timing analysis method：静的タイミング分析方法）を採用する。静的タイミング分析は、特定のタイミング・モデルを無差別に用い、特定の回路に関して、これが設計者によって与えられたタイミング制約に反するか否かを分析する。静的タイミング分析ツールの入力は、ネットリスト、タイミング制約、およびタイミング・モデルである。静的タイミング分析ツールは、ユーザがタイミング分析を実行する際に役立ついくつかの機能を実施する。この業界における主なツールは、Synopsys社のPrimeTime (R)およびCadence社のＥＴＳ（Encounter(R) Timing System）である。ＳＴＡプロセスの間、競合するタイミング制約を検出するために、手作業でタイミング・リポートを分析し、誤ったタイミング制約をデバッグする必要がある。しかしながら、今日のＡＳＩＣ設計のタイミング制約リポートは、１０，０００から１００，０００ラインまでの多様なエントリを含み、デバッグの作業は、静的タイミング分析のエンジニアにとって、著しい時間量（数日から数週間）を要する。また、これらの目標を達成するために、ＡＳＩＣタイミング駆動レイアウト・ツールでは、著しい時間がかかる。タイミング制約ファイル自体にタイミング制約の競合が存在する場合、この設計目標は、ほとんど不可能である。実際のＡＳＩＣ設計においては、この理由のために出荷の遅延が起こることが多々ある。従って、早い段階でタイミング制約の競合が捕獲されれば、設計における設計所要時間は著しく短縮されることになる。
【０００５】
既存の異なるＳＴＡツールの中で、IBM (IBM Corporationの商標) 社のEinstimer (IBM Corporationの商標) ツールは、以下の機能を提供する。すなわち、ＵＤＴ（User Defined Test：ユーザ定義試験）およびＲＡＴ（Required Arrival Time：必要到着時間）が同一ポートに存在する場合、警告メッセージが与えられる。この機能は、ポートを対象とするだけであり、内部論理に適用することはできない。警告が与えられるのは、上の２つの試験が重複する場合だけである。内部論理のタイミング制約が相互に競合する場合、ツールは検出機能を有しない。他のＳＴＡツールは関連する機能を持ってさえいない。
【０００６】
上述の解決策の別の欠点は、１０，０００から１００，０００ラインを有するタイミング・リポートでは、単に手作業によって全てのタイミング制約の競合を１００％検出し対象とするという目標を達成することは極めて難しく、タイミング制約デバッグの効率が極めて低いということである。
【０００７】
従って、１００％の対象範囲でタイミング制約の競合を自動的に検出して、ＡＳＩＣプロジェクトにおいて設計所要時間を短縮すると共にエンジニア・リソースを軽減することができる方法が必要とされている。
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、タイミング制約の競合を検出するための方法が提供される。この方法は、タイミング制約ファイルを受信するステップと、タイミング制約ファイルにおける全ての試験ポイントをノードとして取得し、タイミング制約ファイルにおける試験ポイントに関連したタイミング制約に従ってノード間の有向エッジおよび有向エッジの重みを求めて有向グラフ（directed graph）を確立するステップと、有向グラフの全ての有向サイクルを検索するステップと、各有向サイクルについて、有向サイクルを構成する有向エッジの重みの和が必要条件を満足する場合、有向サイクルを構成する試験ポイントおよびタイミング制約間にタイミング制約の競合が存在することを判定するステップと、を含む。
【０００９】
本発明の別の態様によれば、タイミング制約の競合を検出するための装置が提供される。この装置は、タイミング制約ファイルを受信するための受信モジュールと、タイミング制約ファイルにおける全ての試験ポイントをノードとして取得し、タイミング制約ファイルにおける試験ポイントに関連したタイミング制約に従ってノード間の有向エッジおよび有向エッジの重みを求めて有向グラフを確立するための確立モジュールと、有向グラフの全ての有向サイクルを検索するための検索モジュールと、各有向サイクルについて、有向サイクルを構成する有向エッジの重みの和が必要条件を満足する場合、有向サイクルを構成する試験ポイントおよびタイミング制約間にタイミング制約の競合が存在することを判定するための判定モジュールと、を含む。
【００１０】
本発明の上述および他の目的、特徴、および利点は、図面における本発明の例示的な実施の更に詳細な説明から、いっそう明らかとなろう。図面において、同様の参照番号は、一般に、本発明の例示的な実施における同一の部分を表す。
【図面の簡単な説明】
【００１１】
【図１】本発明に従ったタイミング制約の競合を検出するための方法のフローチャートを概略的に示す。
【図２】最小必要時間経過（ＭＲＴＡ）の概念の有向グラフ表現を示す。
【図３】ＭＲＴＡ＝０である場合の、異なるタイミング検出タイプを有するノードの有向グラフを示す。
【図４】本発明の一実施形態に従った、ネットリストから不完全な試験ポイント情報を検索するフローを概略的に示す。
【図５】本発明の一実施形態に従った、全体タイミング制約を取得するための方法を示す。
【図６】本発明の一実施形態に従った、有向グラフを確立するためのフローを概略的に示す。
【図７】トリガ・セットアップ・チェックのネットリストを示す。
【図８】トリガ・ホールド・チェックのネットリストを示す。
【図９】図７および図８に示すようなネットリストおよびタイミング制約関係に従って取得された有向グラフを示す。
【図１０】ユーザ定義のスキュー検出のネットリストおよび有向グラフを示す。
【図１１】ポイント・ツー・ポイント遅延検出のネットリストおよび有向グラフを示す。
【図１２】ネットリスト・ファイルおよびタイミング制約ファイルに従って取得された有向グラフを概略的に示す。
【図１３】図１２の有向グラフから強固に接続された領域を検索した結果を概略的に示す。
【図１４】図１３の強固に接続された領域から有向サイクルを検索した結果を概略的に示す。
【図１５】タイミング制約の競合を検出するための装置を概略的に示す。
【発明を実施するための形態】
【００１２】
本発明の好適な実施形態について、本発明の好適な実施形態が図示されている図面を参照して更に詳細に説明する。しかしながら、本発明は、様々な形態で実施することができ、本明細書に記載する実施形態によって限定されるものとは解釈されない。むしろ、これらの実施形態は、本発明をいっそう完全かつ充分にし、更に、本発明の範囲を当業者に充分に伝えるために与えられる。
【００１３】
本発明をいっそう理解するために、最初に、本明細書において、いくつかの基本的な概念を与える。
（１）ＭＲＴＡ（MinimumRequired Time Advance：最小必要時間経過）：ポイントＡにおける信号の到着時間（ＡＴA）が、ポイントＢにおける信号の到着時間（ＡＴB）よりも、少なくともＸだけ遅い場合、すなわち、
【数１】
2010262647.tif 000003
である場合、ポイントＢにおける信号の到着について、Ｘが最小必要時間経過である。
（２）回路における各ポイントは、早期モード信号到着時間および後期モード信号到着時間を含む、異なる時間検出タイプを有する。早期モード信号到着時間は、そのポイントにおける最も早い信号到着時間を与え、後期モード信号到着時間は、そのポイントにおける最も遅い信号到着時間を与える。有向グラフにおいて、２つのノードを用いて、異なる時間検出タイプを有するそのようなノードを表す。
【００１４】
図１は、本発明に従ったタイミング制約の競合を検出するための方法のフローチャートを概略的に示す。ここでは、最初にフローの基本的な概要を示し、次いで、各ステップの実施方法を詳述する。最初に、ステップＳ１０１において、タイミング制約ファイルを受信する。タイミング制約ファイルは、タイミング試験ポイントのタイミング制約を与える。次いで、ステップＳ１０２において、タイミング制約ファイルにおける全ての試験ポイントをノードとして取得し、タイミング制約ファイルにおける試験ポイントに関連したタイミング制約に従って、ノード間の有向エッジおよび有向エッジの重みを求めて、有向グラフを確立する。どのように有向グラフを確立するかについては、ここでは省略し、後で詳細に説明する。ステップＳ１０３において、有向グラフの全ての有向サイクルをシークし、最後にステップＳ１０４において、各有向サイクルについて、その有向サイクルを構成している有向エッジの重みの和が必要条件を満たす場合、有向サイクルを構成している試験ポイントおよびタイミング制約の間にタイミング制約の競合が存在することが判定される。また、この方法は、好ましくは、タイミング制約の競合が存在する有向サイクルを構成している試験ポイントおよびタイミング制約を出力することを含む。それらは、限定ではないが、プリンタ出力、グラフィカル・ユーザ・インタフェース出力等を含む様々な方法で出力することができる。
【００１５】
ステップＳ１０２において、タイミング制約ファイルにおける全ての試験ポイントをノードとして取得し、タイミング制約ファイルにおける試験ポイントに関連したタイミング制約に従って、ノード間の有向エッジおよび有向エッジの重みを求めて、有向グラフを確立する場合、複数のステップが含まれる。これらについて、以下で詳細に論じる。
【００１６】
ここでの有向グラフは、ノード、有向エッジ、および有向エッジの重みを含む。図２は、最小必要時間経過（ＭＲＴＡ）の概念の有向グラフ表現を与える。ＭＲＴＡは、ノードＢからノードＡへの有向エッジの重みである。すなわち、有向エッジの重みは、その有向エッジによって接続される２つのノードの信号到着の最小必要時間経過である。一般に、これは、ネットリスト内のデータおよびタイミング制約ファイル内のデータから推定される。グラフにおいて、有向エッジの方向が、後の時点で信号が到着するノードを指し示す場合、ＭＲＴＡ＞０である。また、明らかに、有向エッジの方向は、ＢからＡを指し示すように変えることができ、この場合はＭＲＴＡ＜０となる。これらの２種類の有向グラフは、双方とも許容可能である。しかしながら、１つの有向グラフでは１つのみの方法を採用することができる。すなわち、全ての有向エッジの方向が全て後のノードを指し示すか、または全てのポイントが早いノードを指し示すかのいずれかである。以下では、有向エッジの方向が全て後のノードを指し示す場合を一例に取り上げて説明する。
【００１７】
更に、回路における１つのポイントが異なる検出タイプを有する場合があり、１つのみのノードしかないが、これも本明細書において有向グラフとして表すことができる。図３は、ＭＲＴＡ＝０である場合の、異なるタイミング検出タイプを有するノードの有向グラフを示す。ここでは、有向グラフの２つのノードを用いて、回路における１つのノードの異なるタイミング検出タイプを表す。
【００１８】
タイミング制約ファイルによって与えられるタイミング制約は、基本的に、試験ポイントの情報を含む。しかしながら多くの場合、試験ポイント情報は不完全である。例えば、タイミング制約はワイルドカードｒｅｇ［＊］／Ｄによって与えられる。ここで＊はいずれかの文字を表す。また、この時、全ての試験ポイントを完全にパースするために必然的にネットリストが必要であり、ネットリストは、設計において用いられる様々なデバイスおよびデバイス間の論理接続関係を記述し、ネットリストを検索することによってのみ、いくつのデバイスがこの照合条件に合致するかを知ることができ、例えば、ネットリストがその内部に、条件に合致するｒｅｇ［０］からｒｅｇ［２０］を有する場合、検索結果が得られる。従って、図４は、本発明の一実施形態に従った、ネットリストから不完全な試験ポイント情報を検索するフローを概略的に示す。タイミング制約ファイルにおける全ての試験ポイントをノードとして取得する必要に応じて、最初にステップＳ４０１において、タイミング制約ファイルにおける全ての試験ポイントの情報が完全であるか否かを判定する。全ての試験ポイントにおける試験ポイントの一部の情報が不完全である場合、ステップＳ４０２において、ネットリストにおいて検索を実行して、試験ポイントの一部の完全な情報を取得する。このようにして完全な試験ポイント情報を取得し、これによって有向グラフの全てのノードを確立することができる。
【００１９】
更に、いくつかのタイミング制約は暗黙タイミング制約であり、これらは用いるデバイスによって与えられ、かかる暗黙タイミング制約もチェックしなければならない。暗黙タイミング制約は、タイミング制約ファイル内では与えられず、ネットリストのデバイス・ライブラリにおいて与えられる。この時、ネットリストにおいてライブラリ・ファイルにクエリを行ってデバイスの暗黙タイミング制約を取得する必要があり、暗黙タイミング制約をタイミング制約ファイル内に与えられたタイミング制約と組み合わせて、全体タイミング制約を構成し、タイミング制約有向グラフを確立するようになっている。全体タイミング制約は、暗黙タイミング制約およびタイミング制約ファイル内に与えられたタイミング制約の少なくとも一方を含む。暗黙タイミング制約をタイミング制約ファイル内のタイミング制約と組み合わせることは、実際、そのタイミング制約を単に一緒にすることである。例えば、暗黙タイミング制約が制約（１）および（２）を含み、タイミング制約ファイル内に与えられたタイミング制約が制約（３）および（４）を含むと、全体タイミング制約は、制約（１）、（２）、（３）、および（４）を含む。図５は、本発明の一実施形態に従った、全体タイミング制約を取得するための方法を与える。最初に、ステップＳ４０４において、ネットリストにおいて暗黙タイミング制約を検索する。これらの暗黙タイミング制約は、ネットリストにおいて用いられるデバイスによって定義され、タイミング制約ファイル内では与えられない。次いで、ステップＳ４０５において、暗黙タイミング制約をタイミング制約ファイル内で与えられたタイミング制約と組み合わせて、全体タイミング制約を構成する。
【００２０】
図６は、本発明の一実施形態に従って有向グラフを確立するフローを概略的に示す。ステップＳ４０７において、全体タイミング制約をパースし、全ての取得された試験ポイントをノードとして取得する。ここで、全体タイミング制約は、暗黙タイミング制約およびタイミング制約ファイル内で与えられたタイミング制約の少なくとも一方を含む。ステップＳ４０８において、パースした全体タイミング制約に従って、全てのノード間の有向エッジおよび有向エッジの重みを取得する。ステップＳ４０９において、全てのノード、有向エッジ、および有向エッジ上の重みを用いて、有向グラフを構成する。
【００２１】
次に、有向グラフを確立するプロセスを、いくつかの例によって説明する。
【００２２】
例１は、暗黙タイミング制約を与える。図７および図８は、トリガ・セットアップ・チェックおよびトリガ・ホールド・チェックのネットリストをそれぞれ与える。ここで、タイミング制約ファイルは存在しない。トリガは２つのチェックポイントを含む。すなわちデータ・ポイントおよびクロック・ポイントであり、これらが有向グラフのノードを構成する。図７に従って、セットアップ・チェックにおいて、最も遅いデータ到着時間（LateDataAT）が、最も早いクロック到着時間（EarlyClockAT）よりも、MRTAsetup（MRTAsetup＝ClockJitter＋SetupGuradTime−ClockPeriod）だけ早いことが必要である。ここで、ClockJitterはクロック・ジッタであり、SetupGuradTimeは、デバイスによって決定される時間パラメータである。ClockPeiodはクロック周期である。図８に従って、ホールド・チェックにおいて、最も遅いクロック到着時間（LateClockAT）が、最も早いデータ到着時間よりも、MRTAhold（MRTAhold＝HoldGuardTime）だけ早いことが必要である。ここで、HoldGuardTimeは、デバイスによって決定される時間パラメータである。従って、デバイスの暗黙タイミング制約は、以下のようにパースすることができる。
【数２】
2010262647.tif 000004
【００２３】
タイミング制約のパースは、ＳＴＡツールによって完了するか、または独立したプログラミングによって実施することができる。
【００２４】
パースした暗黙タイミング制約に従って、２つのノードすなわちデータ・ノードおよびクロック・ノードが含まれることがわかる。各ノードは２つのタイミング検出タイプを有するので、有向グラフは４つのノードを含む。図９は、図７および図８のネットリストおよびタイミング制約関係に従って取得された有向グラフを示す。明らかに、これは有向サイクルである。
【００２５】
例２は、ユーザ定義のスキュー検出のためのプロセスを確立する有向グラフを与える。図１０は、ユーザ定義のスキュー検出のネットリストおよび有向グラフを示す。ネットリストに従って、回路は２つの入出力デバイスを有し、これらは、いくつかの論理と、試験ポイントすなわちＰＡＤ１およびＰＡＤ２である２つの接続ポイントとに接続されている。しかしながら、各ポイントは２つのタイミング検出タイプを有するので、有向グラフは４つのノードを有する。タイミング制約ファイルの内容は以下の通りである。
【数３】
2010262647.tif 000005
これが意味するのは、デバイスのピンＰＡＤ１およびピンＰＡＤ２の信号到着時間がSkewGuardの範囲内であるということである。ここで、タイミング制約ファイルは不完全な情報を含まない。更に、ネットリスト内のデバイスは暗黙タイミング制約を含まない。パースの結果を以下のように表すことができる。
【数４】
2010262647.tif 000006
図１０の右側に、ノード、タイミング制約における有向エッジ、および有向エッジの重みに従って確立した有向グラフを示す。
【００２６】
例３は、ポイント・ツー・ポイント遅延検出のためのプロセスを確立する有向グラフを与える。ポイント・ツー・ポイント遅延検出は、チップ設計における２つのポイント間の遅延を制御するために用いられ、非同期インタフェース論理において広く用いられる。図１１は、ポイント・ツー・ポイント検出のネットリストおよび有向グラフを示す。図１１に示すネットリストにおいて、いくつかの論理によって２つのトリガを相互に接続し、その接続ポイントは試験ポイントである。図１１の上部のネットリストに従って、３つの試験ポイントすなわちＡ、Ｂ、およびＣがある。しかしながら、各ポイントは２つのタイミング検出タイプを有するので、有向グラフは６つのノードを有する。タイミング制約ファイルの内容は以下の通りである。
【数５】
2010262647.tif 000007
これが意味するのは、ポイントＡからポイントＢへの最大遅延はP2PGuard_ABであり、ポイントＢからポイントＣへの最大遅延はP2PGuard_BCであり、ポイントＡからポイントＣへの最大遅延はP2PGuard_ACであるということである。ここで、タイミング制約ファイルは不完全な情報を含まない。更に、ネットリスト内のデバイスは暗黙タイミング制約を含まない。パースの結果を以下のように表すことができる。
【数６】
2010262647.tif 000008
図１１の下側に、ノード、タイミング制約における有向エッジ、および有向エッジの重みに従って確立した有向グラフを示す。
【００２７】
有向グラフを確立した後、有向グラフの全ての有向サイクルを検索する必要がある。有向グラフにおいて有向サイクルを検索するためには、様々な方法がある。
【００２８】
広く用いられている１つの方法は、まず、強固に接続されたコンポーネントを全て検索し、次いで、求められた強固に接続されたコンポーネントから有向サイクルを検索することである。強固に接続されたコンポーネントとは、いずれかの２つのノードが相互に到達可能である有向グラフ内の部分を指す。グラフ理論技術においては、強固に接続されたコンポーネントを検索するため、深さ優先検索アルゴリズム、Kosaraju-Sharirアルゴリズム等の多くのアルゴリズムがある。次に、深さ優先検索アルゴリズムのフローを与える。
【００２９】
（１）有向グラフＧ上で、１つの頂点から開始して、その頂点が末端部となる弧に沿って深さ優先検索横断を実行し、それらの隣接ポイント全ての検索を全て完了する順序に従って頂点を配列する。有向グラフＧの強固に接続された分岐を導出するためのアルゴリズム・ステップは、以下の通りである。
１）Ｇ上で深さ優先検索を実行し、反復コールが完了するシーケンスに従って、各頂点に番号を付ける。
２）Ｇの各エッジの方向を変更して、新しい有向グラフＧｒを構築する。
３）１）において決定した頂点番号に従って、最大の番号を有する頂点から開始して、Ｇｒ上で深さ優先検索を実行する。検索プロセス中にＧｒの頂点を全部は調べていない場合、調べていない頂点から最大の番号を有する頂点を選択し、その頂点から開始して、深さ優先検索を継続する。
４）Ｇｒの、最終的に取得された深さ優先全域森（spanning forest）において、各ツリー上の頂点が、Ｇの強固に接続された分岐１つを構成する。
【００３０】
上記は、単に例示的な説明であり、有向グラフの強固に接続された領域を検索するためのいずれのアルゴリズムもここで使用可能であることは、当業者には認められよう。
【００３１】
有向グラフの強固に接続された領域を見出した後、グラフ理論のアルゴリズムを用いて、強固に接続された領域において有向サイクルを検索することができる。例えば、Dijkstraアルゴリズム、ＦＬＯＹＤアルゴリズム等を採用することができ、ＦＬＯＹＤアルゴリズムでは、http://www.zjtg.cn/itjs/suanfa/2_4.asp.でコード記述が入手可能である。
【００３２】
ここに、図面を例として取り上げて説明を行う。
【００３３】
図１２は、ネットリスト・ファイルおよびタイミング制約ファイルに従って取得された有向グラフを概略的に示す。図１３は、図１２の有向グラフから強固に接続された領域を検索した結果を概略的に示す。図１４は、図１３の強固に接続された領域から有向サイクルを検索した結果を概略的に示す。
【００３４】
強固に接続された領域を検索する目的が有向サイクルを検索することであることは、当業者には認められよう。強固に接続された領域を検索せずに有向サイクルを直接検索するグラフ理論のアルゴリズムを、本発明に直接適用することも可能である。
【００３５】
最後のステップＳ１０４において、各有向サイクルごとに、有向サイクルを構成する有向エッジの重みの和が必要条件を満足させる場合、有向サイクルを構成する試験ポイントおよびタイミング制約間にタイミング制約の競合が存在することが判定される。具体的には、有向グラフの全ての有向エッジの方向が、後の時点で信号が到着するノードを指し示す場合、ＭＲＴＡ＞０であり、有向サイクルを構成する有向エッジの重みの和によって満足することが必要である条件は、重みの和が０より大きいことである。むろん、有向エッジの方向が、早い時点で信号が到着するノードを指し示すようにされた場合、ＭＲＴＡ＜０であり、有向サイクルを構成する有向エッジの重みの和によって満足することが必要である条件は、重みの和が０より小さいことである。
【００３６】
このように、重みの和が条件を満足させる有向エッジによって構成される有向サイクルに従って、関連する試験ポイントおよびタイミング制約を判定することができ、これらのタイミング制約が競合するタイミング制約である。
【００３７】
上記の説明から、本発明は、純粋にソフトウェアにおいて自動検出を実行し、複雑な手作業からエンジニアを解放し、検出効率を高め、これによって競合するタイミング制約の１００％検出を達成可能とすることがわかる。
【００３８】
同じ本発明の概念に基づいて、本発明は、タイミング制約の競合を検出するための装置も開示し、図１５に示すように、この装置は、タイミング制約ファイルを受信するための受信モジュール１２０１と、タイミング制約ファイルにおける全ての試験ポイントをノードとして取得し、タイミング制約ファイルにおける試験ポイントに関連したタイミング制約に従ってノード間の有向エッジおよび有向エッジの重みを求めて有向グラフを確立するための確立モジュール１２０２と、有向グラフの全ての有向サイクルを検索するための検索モジュール１２０３と、各有向サイクルについて、有向サイクルを構成する有向エッジの重みの和が必要条件を満足させる場合、有向サイクルを構成する試験ポイントおよびタイミング制約間にタイミング制約の競合が存在することを判定するための判定モジュール１２０４と、を含む。好ましくは、この装置は、更に、タイミング制約の競合が存在する有向サイクルを構成する試験ポイントおよびタイミング制約を出力するための出力モジュール１２０５を含む。
【００３９】
本発明の１つの実施に従えば、確立モジュール１２０２は、タイミング制約ファイルにおける全ての試験ポイントの情報が完全であるか否かを判断するための判断モジュールと、全ての試験ポイントにおける試験ポイントの一部の情報が不完全である場合、ネットリストにおいて検索を実行して試験ポイントの一部の完全な情報を取得するためのネットリスト検索モジュールと、を含む（図には示していない）。
【００４０】
本発明の別の実施に従えば、確立モジュール１２０２は、暗黙タイミング制約およびタイミング制約ファイル内に与えられたタイミング制約の少なくとも一方を含む全体タイミング制約をパースし、全ての取得した試験ポイントをノードとして取得するパース・モジュールと、パースした全体タイミング制約に従って、全てのノード間の有向エッジおよび有向エッジの重みを取得するための有向エッジおよび重み確立モジュールと、全てのノード、有向エッジ、および有向エッジ上の重みを用いることによって、有向グラフを形成するための有向グラフ確立モジュールと、を含む（図には示していない）。
【００４１】
本発明の更に別の実施に従えば、パース・モジュールは、ネットリストにおいて暗黙タイミング制約を検索するためのネットリスト検索モジュールであって、暗黙タイミング制約が、ネットリストにおいて用いられるデバイスによって定義され、タイミング制約ファイルにおいては与えられない、ネットリスト検索モジュールと、暗黙タイミング制約を、タイミング制約ファイルにおいて与えられたタイミング制約と組み合わせて、全体タイミング制約を形成するための組み合わせモジュールと、を含む（図には示していない）。
【００４２】
本発明の１つの実施に従えば、有向エッジが、後の時点で信号が到着するノードを指し示す場合、有向サイクルを構成する有向エッジの重みの和が満足させる必要がある条件は、重みの和がゼロより大きいことである。
【００４３】
本発明の別の実施に従えば、有向エッジが、早い時点で信号が到着するノードを指し示す場合、有向サイクルを構成する有向エッジの重みの和が満足させる必要がある条件は、重みの和がゼロより小さいことである。
【００４４】
本発明の更に別の実施に従えば、検索モジュール１２０３は、有向グラフの全ての強固に接続されたコンポーネントを検索するための、強固に接続されたコンポーネント検索モジュールをさらに含む（図には示していない）。
【００４５】
本発明において、有向エッジの重みは、その有向エッジによって接続された２つのノードの信号到着の最小必要時間経過である。
【００４６】
本発明の例示的な実施形態を、本明細書において図面を参照して説明しているが、本発明はこれらの実施形態に厳密に限定されるわけではなく、本発明の範囲および精神から逸脱することなく、当業者によって様々な変更および変形を実施可能であることは認められよう。これらの変更および変形は全て、添付の特許請求の範囲に定義されるように本発明の範囲内に包含されることが意図される。
【００４７】
更に、上記の説明に従って、当業者には認められるように、本発明は、システム、装置、方法、またはコンピュータ・プログラムとして具現化することができる。従って、本発明は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、または、本明細書において「回路」、「モジュール」、もしくは「システム」として全て一般的に称することができるソフトウェアおよびハードウェアの態様を組み合わせた実施形態という形態を取る場合がある。更に、本発明は、表現のいずれかの有形の媒体において具現化されたコンピュータ・プログラムの形態を取り、この媒体に具現化したコンピュータ使用可能プログラム・コードを有するものである場合がある。
【００４８】
１つ以上のコンピュータ使用可能またはコンピュータ読み取り可能媒体（複数の媒体）のいずれかの組み合わせを利用することができる。コンピュータ使用可能またはコンピュータ読み取り可能媒体は、例えば、電子、磁気、光、電磁、赤外線、または半導体システム、装置、デバイス、またはプログラム媒体とすることができるが、これらに限定されるわけではない。コンピュータ読み取り可能媒体の更に具体的な例（非網羅的なリスト）は、１つ以上のワイヤを有する電気的接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭもしくはフラッシュ・メモリ）、光ファイバ、携帯型コンパクト・ディスクＲＯＭ（ＣＤＲＯＭ）、光記憶デバイス、インターネットもしくはイントラネットをサポートするもの等の伝送媒体、または磁気記憶デバイスを含む。コンピュータ使用可能またはコンピュータ読み取り可能媒体は、プログラムが印刷された紙または別の適切な媒体とすることも可能であり、その場合は、プログラムを、例えば紙または他の媒体の光学スキャンによって電子的に捕獲し、次いでコンパイル、解釈、または必要な場合には他の適切な方法で処理し、次いでコンピュータ・メモリに記憶することができることに留意すべきである。この文書の状況において、コンピュータ使用可能またはコンピュータ読み取り可能媒体は、命令実行システム、装置、またはデバイスによって、またはこれと接続して用いるためのプログラムを含有、記憶、伝達、伝播、または転送することができるいずれかの媒体とすれば良い。コンピュータ使用可能媒体は、ベースバンドにおいてまたは搬送波の一部として、コンピュータ使用可能プログラム・コードが埋め込まれた伝播データ信号を含むことができる。コンピュータ使用可能プログラムは、無線、ワイヤライン、光ファイバ・ケーブル、ＲＦ等を含むがこれらには限定されないいずれかの適切な媒体を用いて、伝送することができる。
【００４９】
本発明の動作を実行するためのコンピュータ・プログラム・コードは、Java (Sun Microsystemの商標)、Smalltalk (TM)、C++等のオブジェクト指向プログラミング言語を含む１つ以上のプログラミング言語、および、「C」プログラミング言語または同様のプログラミング言語等の従来の手順プログラミング言語のいずれかの組み合わせで記述することができる。プログラム・コードは、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上でおよび部分的に遠隔コンピュータ上でまたは全体的に遠隔コンピュータ上もしくはサーバ上で、実行することができる。後者の場合には、遠隔コンピュータを、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを介して、ユーザのコンピュータに接続することができ、または、この接続は、外部のコンピュータに対して行うことも可能である（例えば、インターネット・サービス・プロバイダを用いてインターネットを介して）。
【００５０】
更に、フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実施することができる。コンピュータ・プログラム命令を、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供して、機械を生成することで、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックにおいて明記された機能／行為を実施するための手段を生成することが可能となっている。
【００５１】
また、これらのコンピュータ・プログラム命令は、コンピュータ読み取り可能媒体に記憶することができ、この媒体が、コンピュータまたは他のプログラマブル・データ処理装置に、特定の方法で機能するように指示することによって、コンピュータ読み取り可能媒体に記憶された命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックにおいて明記された機能／行為を実施する命令手段を含む製造品（article of manufacture）を生成することが可能となっている。
【００５２】
また、コンピュータ・プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置にロードして、そのコンピュータまたは他のプログラマブル・データ処理装置上で一連の動作ステップを実行させ、コンピュータ実施プロセスを生成することによって、コンピュータまたは他のプログラマブル装置上で実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックにおいて明記された機能／行為を実施するためのプロセスを提供することが可能となっている。
【００５３】
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に従ったシステム、装置、方法、およびコンピュータ・プログラムの可能な実施のアーキテクチャ、機能性、および動作を例示する。この点で、フローチャートまたはブロック図における各ブロックは、明記された論理機能（複数の機能）を実施するための１つ以上の実行可能命令を含むコードのモジュール、セグメント、または部分を表すことができる。また、いくつかの代替的な実施形態においては、ブロックに記載された機能は、図面に記載された順序に従わずに実行される場合があることに留意すべきである。例えば、呼び出される機能性に応じて、連続して示された２つのブロックは、実際には実質的に同時に実行されることがあり、または、ブロックは時として逆の順序で実行される場合もある。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせは、明記された機能もしくは行為を実行する特殊目的ハードウェア・ベース・システムによって、または特殊目的ハードウェアおよびコンピュータ命令の組み合わせによって実施可能であることに留意すべきである。
【符号の説明】
【００５４】
１２０１  受信モジュール
１２０２  確立モジュール
１２０３  検索モジュール
１２０４  判定モジュール
１２０５  出力モジュール
【図１】
2010262647.tif 000009
【図２】
2010262647.tif 000010
【図３】
2010262647.tif 000011
【図４】
2010262647.tif 000012
【図５】
2010262647.tif 000013
【図６】
2010262647.tif 000014
【図７】
2010262647.tif 000015
【図８】
2010262647.tif 000016
【図９】
2010262647.tif 000017
【図１０】
2010262647.tif 000018
【図１１】
2010262647.tif 000019
【図１２】
2010262647.tif 000020
【図１３】
2010262647.tif 000021
【図１４】
2010262647.tif 000022
【図１５】
2010262647.tif 000023