(57)【要約】  クロック式電子設計自動化（ＥＤＡ）ツールフローの使用を可能にする相対タイミング特徴付けのための技術を開示する。一例において、方法は、ＥＤＡツールが、発散点（ｐｏｄ）事象と第１のｐｏｃ事象（ｐｏｃ0）及び第２のｐｏｃ事象（ｐｏｃ1）を含む２つの収束点（ｐｏｃ）事象との間の回路モデル内のセルの相対タイミング制約（ＲＴＣ）を識別する段階を含むことができる。ＥＤＡツールは、ｐｏｄ事象と第１のｐｏｃ事象の間の第１のｐｏｃ事象経路に対する最大ターゲット遅延を発生させることができる。ＥＤＡツールは、ｐｏｄ事象と第２のｐｏｃ事象の間の第２のｐｏｃ事象経路に対する最小ターゲット遅延を発生させることができる。ＥＤＡツールは、次に、最大ターゲット遅延と最小ターゲット遅延を用いて回路モデルを最適化することができる。【選択図】図７
2015524589.tif 000002
【特許請求の範囲】
【請求項１】
クロック式電子設計自動化（ＥＤＡ）ツールフローの使用を可能にする相対タイミング特徴付けの方法であって、
発散点（ｐｏｄ）事象と第１のｐｏｃ事象（ｐｏｃ0）及び第２のｐｏｃ事象（ｐｏｃ1）を含む２つの収束点（ｐｏｃ）事象との間の回路モデル内のセルの相対タイミング制約（ＲＴＣ）を識別する段階と、
前記ｐｏｄ事象と前記第１のｐｏｃ事象の間の第１のｐｏｃ事象経路に対する最大ターゲット遅延を発生させる段階と、
前記ｐｏｄ事象と前記第２のｐｏｃ事象の間の第２のｐｏｃ事象経路に対する最小ターゲット遅延を発生させる段階と、
前記最大ターゲット遅延と前記最小ターゲット遅延を用いて前記回路モデルを最適化する段階と、
を含むことを特徴とする方法。
【請求項２】
前記相対タイミングを識別する段階は、
前記相対タイミングをＳｙｎｏｐｓｙｓ設計制約（．ｓｄｃ）ファイルフォーマットにマップする段階、
を更に含む、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記相対タイミングは、ｐｏｄが、前記発散点事象であり、ｐｏｃ0が、適正な回路作動に対して第２の収束点事象ｐｏｃ1の前に起きる第１の収束点事象であり、マージンｍが、該ｐｏｃ0と該ｐｏｃ1の間の最小分離である時に、
2015524589.tif 000010
によって表されることを特徴とする請求項１に記載の方法。
【請求項４】
前記マージンｍに基づいて前記最大ターゲット遅延を前記最小ターゲット遅延に関連付けるマージンプラグマを発生させる段階、
を更に含むことを特徴とする請求項３に記載の方法。
【請求項５】
ターゲット遅延を発生させる段階の前に、
ゲートを含む回路モデルのセル内を無傷に保つための相対タイミング経路を識別する段階と、
合成と配置及び経路指定とのＥＤＡツールフロー中に使用される前記相対タイミング経路に対して、前記セルの構造的修正を阻止するが、該セルの駆動強度の最適化を可能にするｓｅｔ_ｓｉｚｅ_ｏｎｌｙ制約を含み、又は該セルの修正を禁止するｓｅｔ_ｄｏｎｔ_ｔｏｕｃｈ制約を含む「修正禁止」制約を発生させる段階と、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記セルの入力ピン名称への入力端点のための端点マッピングを発生させる段階と、
前記入力端点を出力ピン名称にマップする段階と、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記回路モデルを最適化する段階は、
前記相対タイミング制約を満足させるために前記回路内に遅延要素を追加する段階、
を更に含む、
ことを特徴とする請求項１に記載の方法。
【請求項８】
前記セル内の局所端点と該セルの外側の外部端点をマップする段階であって、該局所端点が、該外部端点からの出力を使用するか又は該外部端点に入力を与える前記マップする段階と、
発散点（ｐｏｄ）事象と２つの収束点（ｐｏｃ）事象とを用いて前記局所端点と前記外部端点の間の外部相対タイミング制約（ＲＴＣ）を識別する段階と、
前記外部ＲＴＣに対する外部最大ターゲット遅延及び外部最小ターゲット遅延を発生させる段階と、
前記外部最大ターゲット遅延及び前記外部最小ターゲット遅延を用いて前記回路モデルを最適化する段階と、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記ｐｏｄ、前記ｐｏｃ0、及び前記ｐｏｃ1の各々が、入力、出力、又はピン接続部であることを特徴とする請求項１に記載の方法。
【請求項１０】
少なくとも１つの持続性機械可読ストレージ媒体であって、
請求項１に記載の方法を実施するために実行されるようになった複数の命令、
を含むことを特徴とする媒体。
【請求項１１】
相対タイミング特徴付けに向けて構成されたクロック式ツールフローのための電子設計自動化（ＥＤＡ）ツールであって、
ゲートを含む回路モデルのセル内を無傷に保つための相対タイミング経路を識別し、
前記相対タイミング経路に対する「修正禁止」制約を発生させ、かつ
前記セルに対して合成と配置及び経路指定とのＥＤＡツールフローを用いて前記回路モデルを特徴付ける、
ように構成されたコンピュータ回路、
を有することを特徴とするツール。
【請求項１２】
前記「修正禁止」制約は、前記セルのゲート論理挙動の修正を阻止するが、該セルの駆動強度の最適化を可能にするｓｅｔ_ｓｉｚｅ_ｏｎｌｙ制約を含み、又は該「修正禁止」制約は、該セルの修正を禁止するｓｅｔ_ｄｏｎｔ_ｔｏｕｃｈ制約を含むことを特徴とする請求項１１に記載のコンピュータ回路。
【請求項１３】
正式モデルが通信システム計算法（ＣＣＳ）インスタンス、状態グラフ、及び記号的遷移グラフ（ＳＴＧ）を使用する半モジュール式モデル又はブールモデル、
ブール論理を特定の状態に対する関数の入力及び出力にマップするための論理ヘッダファイル、及び
構造的ハードウエア記述言語（ＨＤＬ）表現を使用するマスター名称表現を正式モデルインスタンスを使用するインスタンスピン名称にマップするためのピンヘッダファイル、
を含む前記回路モデルのセルライブラリ正式モデルを発生させ、
初期状態と入力及び出力のセットと含む前記回路モデルの設計モジュール正式モデルを発生させ、
前記回路モデルに対して入力と出力の間の因果経路を発生させ、
前記回路モデルに対して合成のための速度非依存相対タイミング制約を発生させ、かつ
前記回路モデルに対する検証のためのワイヤ遅延を含む遅延不感相対タイミング制約を発生させ、前記速度非依存相対タイミング制約及び該遅延不感相対タイミング制約が、前記回路モデルの正しい作動を与える、
ように更に構成されることを特徴とする請求項１１に記載のコンピュータ回路。
【請求項１４】
合成制約、
配置及び経路指定制約、及び
レイアウト後タイミング制約、
を含み、前記合成制約、前記配置及び経路指定制約、及び前記レイアウト後タイミング制約が、速度非依存相対タイミング制約とワイヤ遅延を含む遅延不感相対タイミング制約とを使用する前記回路モデルに対するアーキテクチャ性能制約を発生させる、
ように更に構成されることを特徴とする請求項１１に記載のコンピュータ回路。
【請求項１５】
「ｓｅｔ_ｄｉｓａｂｌｅ_ｔｉｍｉｎｇ」制約を含む「修正禁止」制約を用いて前記相対タイミング経路を維持しながら有向非循環グラフ（ＤＡＧ）を生成するために、．ｃｓｔｒフォーマットを用いて前記回路モデルに対する相対タイミングサイクルを切断する、
ように更に構成されることを特徴とする請求項１１に記載のコンピュータ回路。
【請求項１６】
サイクル時間、前方又は後方待ち時間、パイプライン化特性、内部ゲートの立ち上がり又は立ち下がり時間、有向非循環グラフ（ＤＡＧ）遅延、作動毎の電力及びエネルギ、又は挙動的及びパイプライン化特性に対する面積修正パイプライン化特性を含む特徴付けパラメータを用いて前記セルを特徴付けし、かつ
特徴付けパラメータが変化した時にライブラリ（．ｌｉｂ）ファイルを用いてセルライブラリ遅延ファイル内の前記セルに対する特徴付けモジュールを修正する、
ように更に構成されることを特徴とする請求項１１に記載のコンピュータ回路。
【請求項１７】
ｐｏｄが、発散点事象であり、ｐｏｃ0が、適正な回路作動に対して第２のｐｏｃ事象ｐｏｃ1の前に起きる第１のｐｏｃ事象であり、マージンｍが、該ｐｏｃ0と該ｐｏｃ1の間の最小分離である時に、相対タイミングが、
2015524589.tif 000011
によって表される発散点（ｐｏｄ）事象と２つの及び収束点（ｐｏｃ）事象との間の前記回路モデル内の相対タイミング制約（ＲＴＣ）を識別し、
前記ｐｏｄ事象と前記第１のｐｏｃ事象との間の第１のｐｏｃ事象経路に対する最大ターゲット遅延を発生させ、
前記ｐｏｄ事象と前記第２のｐｏｃ事象との間の第２のｐｏｃ事象経路に対する最小ターゲット遅延を発生させ、かつ
前記最大ターゲット遅延及び前記最小ターゲット遅延を用いて前記回路モデルを最適化する、
ように更に構成されることを特徴とする請求項１１に記載のコンピュータ回路。
【請求項１８】
前記回路モデルを最適化するように構成されたコンピュータ回路が、
前記相対タイミング制約を満足させるために前記セル内に遅延要素を追加する、
ように更に構成される、
ことを特徴とする請求項１７に記載のコンピュータ回路。
【請求項１９】
入力ピン名称への入力端点のための端点マッピングを発生させ、かつ
前記入力端点を出力ピン名称にマップする、
ように更に構成されることを特徴とする請求項１１に記載のコンピュータ回路。
【請求項２０】
相対タイミング制約発生に向けて構成されたクロック式ツールフローのための電子設計自動化（ＥＤＡ）ツールであって、
発散点（ｐｏｄ）事象と第１のｐｏｃ事象（ｐｏｃ0）及び第２のｐｏｃ事象（ｐｏｃ1）を含む２つの収束点（ｐｏｃ）事象との間の回路モデル内のセルの相対タイミング制約（ＲＴＣ）を識別し、
前記ｐｏｄ事象と前記第１のｐｏｃ事象の間の第１のｐｏｃ事象経路に対する最大ターゲット遅延を発生させ、
前記ｐｏｄ事象と前記第２のｐｏｃ事象の間の第２のｐｏｃ事象経路に対する最小ターゲット遅延を発生させ、
前記第１のｐｏｃ事象と前記第２のｐｏｃ事象の間の最小分離を表すマージンプラグマを発生させ、かつ
前記最大ターゲット遅延と、前記最小ターゲット遅延と、前記マージンプラグマとを用いて前記回路モデルを最適化する、
ためのプロセッサ、
を含むことを特徴とするツール。
【請求項２１】
前記相対タイミングは、ｐｏｄが、前記発散点事象であり、ｐｏｃ0が、適正な回路作動に対して第２の収束点事象ｐｏｃ1の前に起きる第１の収束点事象であり、前記マージンプラグマ内に表されるマージンｍが、該ｐｏｃ0と該ｐｏｃ1の間の最小分離である時に、
2015524589.tif 000012
によって表されることを特徴とする請求項２０に記載のＥＤＡツール。
【請求項２２】
前記プロセッサは、
ゲートを含む回路モデルのセル内を無傷に保つための相対タイミング経路を識別し、かつ
合成と配置及び経路指定とのＥＤＡツールフロー中に使用される前記相対タイミング経路に対して、前記セルの構造的修正を阻止するが、該セルの駆動強度の最適化を可能にするｓｅｔ_ｓｉｚｅ_ｏｎｌｙ制約を含むか又は該セルの修正を禁止するｓｅｔ_ｄｏｎｔ_ｔｏｕｃｈ制約を含む「修正禁止」制約を発生させる、
ように更に構成される、
ことを特徴とする請求項２０に記載のＥＤＡツール。
【請求項２３】
前記回路モデルを最適化するように構成された前記プロセッサは、
前記相対タイミング制約を満足させるために前記セル内に遅延要素を追加し、
入力ピン名称への入力端点のための端点マッピングを発生させ、かつ
前記入力端点を出力ピン名称にマップする、
ように更に構成される、
ことを特徴とする請求項２０に記載のＥＤＡツール。
【請求項２４】
ハードウエア記述言語（ＨＤＬ）、超高速集積回路（ＶＨＳＩＣ）ＨＤＬ（ＶＨＤＬ）、Ｖｅｒｉｌｏｇ、セルライブラリ、Ｓｙｎｏｐｓｙｓ設計制約（．ｓｄｃ）、Ｓｙｎｏｐｓｙｓ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｃｏｍｐｉｌｅｒ（ＩＣＣ）、Ｅｎｃｏｕｎｔｅｒ  Ｄｉｇｉｔａｌ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ（ＥＤＩ）、Ｃａｄｅｎｃｅ  Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ（ＳｏＣ）Ｅｎｃｏｕｎｔｅｒ、Ｃｏｎｃｕｒｒｅｎｃｙ  Ｗｏｒｋｂｅｎｃｈ、Ｄｅｓｉｇｎ  Ｃｏｍｐｉｌｅｒ、Ｅｎｃｏｕｎｔｅｒ  Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ（ＲＴＬ）、Ｘｉｌｉｎｘ  Ｉｎｔｅｇｒａｔｅｄ  Ｓｏｆｔｗａｒｅ  Ｅｎｖｉｒｏｎｍｅｎｔ（ＩＳＥ）、Ｘｉｌｉｎｘ  Ｓｙｎｔｈｅｓｉｓ  Ｔｏｏｌ（ＸＳＴ）、Ｑｕａｒｔｕｓ、Ｓｙｎｐｌｉｆｙ、ＬｅｏｎａｒｄｏＳｐｅｃｔｒｕｍ、Ｐｒｅｃｉｓｉｏｎ、Ｐｒｉｍｅｔｉｍｅ、Ｔｅｍｐｕｓ、Ｍｏｄｅｌｓｉｍ、Ｅｌｄｏ、Ｓｉｍｕｌａｔｉｏｎ  Ｐｒｏｇｒａｍ  ｗｉｔｈ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｅｍｐｈａｓｉｓ（ＳＰＩＣＥ）、Ｖｅｒｉｌｏｇ  Ｃｏｍｐｉｌｅｄ  Ｓｉｍｕｌａｔｏｒ（ＶＣＳ）、又はＣａｄｅｎｃｅ  Ｖｅｒｉｌｏｇ−Ｌ  ｔｉｅｒ  ｅｘｔｅｎｓｉｏｎ（Ｖｅｒｉｌｏｇ−ＸＬ）を使用する合成ツール、配置及び経路指定ツール、レイアウト後タイミングツール、物理設計ツール、又はタイミング検証ツールのうちの少なくとも１つを含むことを特徴とする請求項２０に記載のＥＤＡツール。
【発明の詳細な説明】
【技術分野】
【０００１】
電子設計自動化（ＥＤＡ）ツールに関する。
【背景技術】
【０００２】
回路タイミングは、回路の電力、性能、ノイズ、及び面積に影響を及ぼす可能性がある。タイミングは、業界標準クロック設計方法及び技術に優る利益を与えることができる多くの代替回路設計方式によって調節することができる。タイミングは、これらの代替回路の商業化及び採用に対して主な障害である可能性もある。非同期回路設計は、代替タイミングを使用する回路系列の例である。回路及びアーキテクチャレベルでは、非同期設計は、連続タイミングモデルを使用し、それに対してクロック設計は、クロックサイクルに基づく離散時間モデルを使用する。
【０００３】
設計のコミュニティーでは、信号優先順位付けのための２つの一般的な方法、すなわち、クロック式と非同期式が出現した。クロック設計は、離散クロック周期を定める周波数ベースのプロトコルを基礎とする。クロック式方法は、ラッチ又はフリップ−フロップ間の組合せ論理（ＣＬ）を含み、共通周波数によって制御されるパイプライン段を生成する。クロック式方法以外の全ての他の方法は「非同期」と見なすことができ、以下に限定されるものではないが、ハンドシェイクプロトコル、自己リセットドミノ回路、及び静的ランダムアクセスメモリ（ＳＲＡＭ）、動的ランダムアクセスメモリ（ＤＲＡＭ）、読取専用メモリ（ＲＯＭ）、又はプログラム可能論理アレイ（ＰＬＡ）のような埋め込みシーケンシャル要素を使用する方法を含む。非同期要素は、シーケンシャルコントローラ、ドミノゲート、又はメモリ要素のような状態保持回路を含むことができる。非同期回路への入力の到着は、広域クロック周波数に基づかない場合がある。非同期回路を通じた遅延は、機能、用途、製造変動、並びに温度及び電圧の変化のような作動パラメータに基づいて変化する可能性がある。
【０００４】
本発明の特徴及び利点は、共に本発明の特徴を一例として示す添付図面と合わせた以下に続く詳細説明から明らかであろう。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】ＰＣＴ／ＵＳ２０１３／０５１１６０
【発明の概要】
【発明が解決しようとする課題】
【０００６】
クロック設計は、電子設計自動化（ＥＤＡ）業界において、高い生産率を可能にするＥＤＡの機能に大部分が起因して優位を占めている。高い生産率は、タイミングの正確性を極めて少数の予め定められたシーケンシャルセル、主としてフリップ−フロップ及びラッチに制限する手法を使用することによって達成することができる。これらの予め定められたセルは、設定時間及び保持時間のような設計の正確性に対して使用されるタイミング条件に対して特徴付けることができる。クロック設計においてタイミングが重要な問題は、フリップ−フロップ及びラッチに収束する可能性がある。
【０００７】
この収束による結果として、フリップ−フロップ及びラッチのタイミング要件は、ＥＤＡ業界に使用されるコンピュータアシスト設計（ＣＡＤ）アルゴリズム内にクロック設計手法に基づいて直接統合されることになった。このアルゴリズム内へのタイミングの直接統合は、クロック設計を簡素化するが、これらのアルゴリズムは、他のタイミング方法を使用する回路の適用を妨げる可能性がある。
【課題を解決するための手段】
【０００８】
本明細書に説明する技術（例えば、ＥＤＡツール、方法、コンピュータ回路、及びシステム）は、ＥＤＡ設計ツールフローを通して設計モジュールのタイミングをサポートすることを可能にする方式で設計モジュールを特徴付けることができる。特徴付けの結果は、少なくとも２つの結果を有することができる。第１に、市販のＥＤＡツール内のＣＡＤアルゴリズムの作動を特徴付けられたモジュール上で適正に作動するように誘導するためにツールフローを通して渡される回路制約セットを生成することができる。第２に、有向非循環グラフ（ＤＡＧ）を生成するためにライブラリゲートを通じた遅延アークが切断される時に正確な静的タイミング解析を可能にするために、ＥＤＡツールが回路タイミングを評価するために使用することができる標準の回路タイミングライブラリへの修正をこの特徴付けに基づいて改善することができる。特徴付けられると、非同期回路を含む一般的な設計モジュールは、クロック設計内に埋め込むことができ、又は標準の市販のクロックベースのＥＤＡツールフローを用いてシステムを構成するのに使用することができる。特徴付けは、クロックベースのツールフローによって直接サポートされるフリップ−フロップ及びラッチのものと類似の方式で設計に使用される構成要素に対するタイミングアルゴリズムサポートを可能にすることができる。
【図面の簡単な説明】
【０００９】
【図１】一例によりクロック式電子設計自動化（ＥＤＡ）ツール及びフローを用いた時限式回路モジュール特徴付けシステムのブロック図である。
【図２】一例によるクロック式パイプラインの図である。
【図３】一例による時限式非同期パイプラインの図である。
【図４】一例による時限式遅延不感非同期パイプラインの図である。
【図５】一例による時限式回路モジュール特徴付け工程の流れ図である。
【図６】一例による時限式非同期コントローラ設計を生成する流れ図である。
【図７】一例によりクロック式ベースの電子設計自動化（ＥＤＡ）ツールフローにおける使用に向けて相対タイミングを用いて時限式非同期コントローラ回路を特徴付けて制約情報を生成する流れ図である。
【図８】一例による効率的線形パイプラインコントローラの仕様を示す図である。
【図９】一例による図８の効率的線形パイプラインコントローラの回路実装を示す図である。
【図１０】一例による１３０ナノメートル（ｎｍ）Ａｒｔｉｓａｎ  Ｌｉｂｒａｒｙを用いた効率的線形パイプラインコントローラのＶｅｒｉｌｏｇ実装を示す図である。
【図１１】一例による経路ベースの相対タイミング制約の表現を示す図である。
【図１２】一例により図９の効率的線形パイプラインコントローラが図８の線形パイプラインコントローラ仕様に準拠する場合に成り立つべき相対タイミング制約セットを示す図である。
【図１３】一例により図１２のタイミング制約の部分集合から導出されたタイミング経路セットと図１０の非同期制御回路のためのサイクルカットを生成するのに使用される設計アーキテクチャとを示す図である。
【図１４】一例による図１０の回路におけるサイクルを示す図である。
【図１５】一例による図１０の回路に関する有向非循環グラフ（ＤＡＧ）であるタイミンググラフを生成するタイミンググラフカットセットを示す図である。
【図１６】一例による図１０のコントローラが図３の設計例に使用される場合にタイミング駆動式最適化及び評価を実施するほど十分な遅延制約セットを示す図である。
【図１７】一例による図１０のコントローラに対するサイズのみの制約セットを示す図である。
【図１８】一例による４つのＮＡＮＤゲートを使用するＣ要素の回路実装を示す図である。
【図１９】一例により１８０ｎｍ（ｎｍ）Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎ（ＩＢＭ）セルライブラリにマップされたＶｅｒｉｌｏｇセルライブラリ内で指定された図１８のＣ要素の特徴付けられた設計モジュールを示す図である。
【図２０】一例による２入力ＮＡＮＤゲートの正式通信システム計算法（ＣＣＳ）の半モジュール式ブールモデルを示す図である。
【図２１】一例によるブール関数及び関数名マッピングを定めるための正式通信システム計算法（ＣＣＳ）のヘッダ関数ファイルを示す図である。
【図２２】一例によりライブラリ内のセル名を正式モデルにピン名称マッピングを含めてマップするための図１８のＣ要素に対するヘッダ関数ファイルを示す図である。
【図２３】一例による通信システム計算法（ＣＣＳ）における図１８のＣ要素に対する設計モジュールに関する正式モデルを示す図である。
【図２４】一例による正式検証ツールによって生成された図１８のＣ要素に関する設計の入力と出力の間の因果経路を示す図である。
【図２５】一例による図１８のＣ要素に対する速度非依存相対タイミング制約を示す図である。
【図２６】一例によりＦＯＲＫ要素を有するワイヤ分岐上の任意遅延のモデル化を示す図である。
【図２７】一例による合流及び分岐のテンプレートの回路実装を示す図である。
【図２８】一例によるＦＯＲＫ要素を使用する図１８のＣ要素に対する遅延不感相対タイミング制約を示す図である。
【図２９】一例による図１８のＣ要素に対する修正禁止制約セットを示す図である。
【図３０】一例による図１８のＣ要素における入力に対する端点マッピングセットを示す図である。
【図３１】一例による図１８のＣ要素における出力ピンにマップされる入力信号ピンセットを示す図である。
【図３２】一例によりＳｙｎｏｐｓｙｓ  Ｄｅｓｉｇｎ  Ｃｏｎｓｔｒａｉｎｔスクリプトにおける使用において作動可能なＴｏｏｌ  Ｃｏｍｍａｎｄ  Ｌａｎｇｕａｇｅ（Ｔｃｌ）変数として指定された図１８のＣ要素における遅延を示す図である。
【図３３】一例による相対タイミング端点が現在のモジュールの外側に存在する場合の図３のコントローラにおいてＣ要素を使用する設計を示す図である。
【図３４】一例による自己充足制約を使用する図３のコントローラに対する相対タイミング制約及びマップされた制約を示す図である。
【図３５】一例による性能及び電力の値を有するレイアウト後設計報告を示す図である。
【図３６】一例によるクロック式電子設計自動化（ＥＤＡ）ツールフローの使用を可能にする相対タイミング特徴付けのための方法の流れ図である。
【図３７】一例による相対タイミング特徴付けに向けて構成されたクロック式ツールフローのための電子設計自動化（ＥＤＡ）ツールのコンピュータ回路の機能図である。
【図３８】一例による相対タイミング制約発生に向けて構成されたクロック式ツールフローのための電子設計自動化（ＥＤＡ）ツールのブロック図である。
【発明を実施するための形態】
【００１０】
ここで、図示の例示的実施形態を参照することになるが、本明細書ではこれらの実施形態を説明するために特定の表現を以下に使用する。それにも関わらず、本発明の範囲の限定を意図しないことは理解されるであろう。
【００１１】
本発明を開示して説明する前に、本発明は、本明細書に開示する特定の構造、工程段階、又は材料に限定されず、当業者によって認識されると考えられるこれらの均等物に拡張されると理解しなければならない。本明細書に使用する術語は、特定の例のみを説明するために使用するものであり、限定的であることを意図しないことも理解しなければならない。
【００１２】
定義
本明細書に使用する「実質的に」という表現は、作用、特性、性質、状態、構造、品目、又は結果の完全又はほぼ完全な範囲又は程度を意味する。例えば、「実質的に」囲まれた物体は、物体が完全に囲まれているか、ほぼ完全に囲まれているかのいずれかを意味することになる。絶対完全性からの正確な許容ずれ度は、一部の場合に特定の状況に依存する可能性がある。しかし、一般的には、完了の間近さは、絶対的かつ全面的な完了が得られた場合と同じ全体結果を有するようなものとすることができる。「実質的に」の使用は、作用、特性、性質、状態、構造、品目、又は結果の完全又はほぼ完全な欠如を指す否定的な含意に使用される場合にも同等に適用可能である。
【００１３】
本明細書に使用する「セット」という表現は、１、ゼロ、又はそれよりも大きい整数値を含むいずれかの自然数の要素を含むことができる要素集合を指す。
【００１４】
本明細書を通じての「例」への参照は、例に関して説明する特定の特徴、構造、又は特性が本発明の少なくとも１つの実施形態内に含まれることを意味する。従って、本明細書にわたる様々な箇所における「一例では」という語句の出現は、必ずしもその全てが同じ実施形態を参照しているわけではない。
【００１５】
本明細書では、「例示的」という言葉を実施例、事例、又は例証として機能することを意味するように使用する。本明細書で「例示的」と説明するいかなる態様又は設計も、他の態様又は設計に優って好ましいか又は有利であると必ずしも解釈すべきではない。更に、本発明の開示の目的では、別途指定しない限り、「ａ」又は「ａｎ」は、「１つ又はそれよりも多く」を意味する。例示的実施形態は、開示する実施形態を実施するようにコンピュータを制御するソフトウエア、ファームウエア、ハードウエア、又はこれらのいずれかの組合せを生成するための標準プログラミング技術及び／又はエンジニアリング技術を用いて方法、装置、又は製造物品として実施することができる。
【００１６】
技術改善の最初の概要を以下に提供し、次いで、特定の技術例を後により詳細に説明する。この最初の要約は、閲読者が本発明の技術をより迅速に理解するのを助けるように意図したものであり、本発明の技術の重要な特徴又は基本的な特徴を示すように意図したものでも、主張する主題の範囲を限定するように意図したものでもない。
【００１７】
クロック設計は、電子設計自動化（ＥＤＡ）業界において、高い生産率を可能にするＥＤＡの機能に大部分が起因して優位を占めている。高い生産率は、タイミングの正確性を極めて少数の予め定められたシーケンシャルセル、主としてフリップ−フロップ及びラッチに制限する手法を使用することによって達成することができる。これらの予め定められたセルは、設定時間及び保持時間のような設計の正確性に対して使用されるタイミング条件に対して特徴付けることができる。クロック設計においてタイミングが重要な問題は、フリップ−フロップ及びラッチに収束する可能性がある。
【００１８】
この収束による結果として、フリップ−フロップ及びラッチのタイミング要件は、ＥＤＡ業界に使用されるコンピュータアシスト設計（ＣＡＤ）アルゴリズム内にクロック設計手法に基づいて直接統合されることになった。このアルゴリズム内へのタイミングの直接統合は、クロック設計を簡素化するが、これらのアルゴリズムは、他のタイミング方法を使用する回路の適用を妨げる可能性がある。
【００１９】
本明細書に説明する技術（例えば、ＥＤＡツール、方法、コンピュータ回路、及びシステム）は、ＥＤＡ設計ツールフローを通して設計モジュールのタイミングをサポートすることを可能にする方式で設計モジュールを特徴付けることができる。特徴付けの結果は、少なくとも２つの結果を有することができる。第１に、市販のＥＤＡツール内のＣＡＤアルゴリズムの作動を特徴付けられたモジュール上で適正に作動するように誘導するためにツールフローを通して渡される回路制約セットを生成することができる。第２に、有向非循環グラフ（ＤＡＧ）を生成するためにライブラリゲートを通じた遅延アークが切断される時に正確な静的タイミング解析を可能にするために、ＥＤＡツールが回路タイミングを評価するために使用することができる標準の回路タイミングライブラリへの修正をこの特徴付けに基づいて改善することができる。特徴付けられると、非同期回路を含む一般的な設計モジュールは、クロック設計内に埋め込むことができ、又は標準の市販のクロックベースのＥＤＡツールフローを用いてシステムを構成するのに使用することができる。特徴付けは、クロックベースのツールフローによって直接サポートされるフリップ−フロップ及びラッチのものと類似の方式で設計に使用される構成要素に対するタイミングアルゴリズムサポートを可能にすることができる。
【００２０】
上述したように、時限式回路モジュールを特徴付けて、タイミング駆動式設計フローの最適化に向けて時限式回路モジュールを既存のクロック式ベースのＥＤＡツール内に統合することを可能にする制約を発生させるための技術を使用することができる。正しい作動に対してタイミングに依存する回路モジュールは、回路の挙動の正式仕様を用いて設計することができる。この回路モジュールは、回路及びワイヤ遅延が不正な作動をもたらす場合があり、又は性能要件を満たさない可能性がある場合の条件に対して評価することができる。次いで、回路タイミンググラフを有向非循環グラフとして表すことができ、標準のタイミング駆動式の市販の設計の最適化及びクロックベースのＥＤＡフローにおけるＣＡＤツールアルゴリズムの検証を駆動するタイミング制約を発生させることができる。
【００２１】
以下では、上述の技術の簡単な概要を提供する。本明細書において説明する技術（例えば、ＥＤＡツール、方法、コンピュータ回路、及びシステム）は、相対タイミング（ＲＴ）の理論に基づいている。１つの経路を通じた最大の遅延（最大遅延）が、別の経路を通じた最小の遅延（最小遅延）よりも小さくなければならないような共通タイミング基準からの相対的な遅延は、信号経路又は信号周波数を通して成り立たなければならない。更に、２つの経路の遅延の間には、分離のマージンが必要される場合がある。一般的に、最小遅延経路である一方の経路は、信号経路の下方の遅延ではなく、固定周波数（クロックのような）に基づく遅延とすることができる。従って、相対タイミングは、式１を用いて表すことができる。
【数１】
2015524589.tif 000003
【００２２】
変数ｐｏｄは、タイミング基準又は事象を表すことができる。ｐｏｄが事象である場合に、発散点（ｐｏｄ）と両方の収束点（ｐｏｃ0及びｐｏｃ1）の間に論理経路が存在する。ｐｏｄが、クロックのようなタイミング基準である場合に、タイミング基準は、ｐｏｃ0とｐｏｃ1の両方に対して共通のものとすることができる。値ｍは、事象間のマージン又は最小分離とすることができ、値ｍは、ゼロ又は負とすることができる。式１が成り立つ場合に、事象ｐｏｄから事象ｐｏｃ0までの最大経路遅延にマージンｍを加えたものは、事象ｐｏｄから事象ｐｏｃ1までの最小経路遅延よりも小さい場合がある。一例において、経路遅延に対してクロックのような周波数ベースの信号の類似の遅延を代用することができ、この場合に、ｐｏｄを立ち上がりクロックエッジとすることができ、ｐｏｃ1をクロックのその後の立ち上がりエッジとすることができる。
【００２３】
別の例において、市販のＥＤＡツール内への包含に向けて非同期シーケンシャル回路モジュールを特徴付ける方法を実施することができる。環境がクロック式又は非同期式のいずれのものであるかに関わらず、望ましい回路環境の遅延及び挙動が与えられた場合に、全てのタイミング条件が成り立ち、設計が正しく作動するように、特徴付け回路を完全に特徴付けることができる。特徴付けは、ｐｏｄからｐｏｃ0及びｐｏｃ1までの経路ベース又は周波数ベースの制約を発生させることにより、相対タイミングに基づく遅延を表すことができる。類似の形式の性能制約を追加することができる。特徴付け及びＥＤＡ設計フローにおける後の使用に向けて、完全制約セットの部分集合を選択することができる。ＥＤＡツールフローを通して使用することができるＤＡＧ（有向非循環グラフ）であるタイミンググラフを生成するために、選択される制約の部分集合に基づいてサイクルカットを実施することができる。この技術（例えば、回路）は、遅延に対して特徴付けることができる。これらの遅延は、循環性回路遅延のより正確な評価を可能にするようにｌｉｂｅｒｔｙ（．ｌｉｂ）ファイル内のセルを修正するために使用することができる。タイミング及びサイクルカット制約の完全なセットは、格納することができる。選択される制約の様々な部分集合は、設計及び検証の工程における異なるタイミング駆動式ＥＤＡツールの作動において直接に使用することができる形態に変換することができる。例えば、選択される制約に対するフォーマットは、クロックベースのＥＤＡツールを使用することができる．ｃｓｔｒフォーマットを含むことができる。
【００２４】
別の構成において、プロセッサによる実行時に業界標準のＥＤＡ  ＣＡＤフロー内への包含に適する時限式回路モジュールを特徴付ける方法の作動をプロセッサに実施させるコンピュータ可読命令を含むコンピュータ可読媒体を提供することができる。
【００２５】
別の実施形態において、システムは、プロセッサと、プロセッサと作動可能に結合することができるコンピュータ可読媒体とを含むことができる。コンピュータ可読媒体は、プロセッサによる実行時に業界標準のＥＤＡ  ＣＡＤフロー内への包含に適する時限式回路モジュールを特徴付ける方法の作動を実施させる命令を含むことができる。
【００２６】
以下の本文は、上述の技術の追加の詳細及び実施例を提供する。図１は、時限式回路モジュール特徴付けシステム１００のブロック図を示している。時限式回路モジュール特徴付けシステム１００は、出力インタフェース１０４と、入力インタフェース１０２と、コンピュータ可読媒体１０８と、プロセッサ１０６と、時限式回路モジュール設計アプリケーション１１０と、１１０からの時限式回路モジュールを特徴付けることができる時限式回路モジュール特徴付けアプリケーション１１２とを含むことができるいずれかのフォームファクターのコンピュータデバイスを含むことができる。異なる構成要素及び追加の構成要素を時限式回路モジュール特徴付けシステム１００内に組み込むことができる。
【００２７】
出力インタフェース１０４は、時限式回路モジュール特徴付けシステム１００のユーザによる確認に向けて情報を出力するためのインタフェースを与える。例えば、出力インタフェース１０４は、ディスプレイ、プリンタ、スピーカ、又は類似の出力デバイスへのインタフェースを含むことができる。ディスプレイは、薄膜トランジスタディスプレイ、発光ダイオードディスプレイ、液晶ディスプレイ、又は様々な異なるディスプレイのうちのいずれかとすることができる。プリンタは、様々なプリンタのうちのいずれかとすることができる。スピーカは、様々なスピーカのうちのいずれかとすることができる。時限式回路モジュール特徴付けシステム１００は、同じか又は様々なインタフェース技術を使用する１つ又はそれよりも多くの出力インタフェースを有することができる。
【００２８】
入力インタフェース１０２は、時限式回路モジュール特徴付けシステム１００内への入力に向けてユーザから情報を受け入れるためのインタフェースを与える。入力インタフェース１０２は、以下に限定されるものではないが、キーボード、ペン及びタッチスクリーン、マウス、トラックボール、タッチスクリーン、キーパッド、１つ又はそれよりも多くのボタン、又はユーザが情報を時限式回路モジュール特徴付けシステム１００内に入力すること又はユーザが出力インタフェース１０４上に表示されるユーザインタフェース内に選択を提供することを可能にする類似の入力デバイスを含む様々な入力技術を使用することができる。入力インタフェース１０２は、入力インタフェースと出力インタフェースの両方を与えることができる。例えば、タッチスクリーンは、ユーザ入力を可能にし、それと共にユーザに出力を提供する。
【００２９】
コンピュータ可読媒体１０８は、プロセッサ１０６が情報にアクセス可能であるような電子保持場所又はストレージとすることができる。コンピュータ可読媒体１０８は、以下に限定されるものではないが、いずれかのタイプのランダムアクセスメモリ（ＲＡＭ）、いずれかのタイプの読取専用メモリ（ＲＯＭ）、いずれかタイプのフラッシュメモリ、又は磁気記憶デバイス（例えば、ハードディスク、フロッピー（登録商標）ディスク、又は磁気テープ）、光ディスク（例えば、コンパクトディスク（ＣＤ）又はデジタル多用途ディスク（ＤＶＤ）、又はデジタルビデオディスク）、スマートカード、又はフラッシュメモリデバイスのような類似の媒体を含むことができる。時限式回路モジュール特徴付けシステム１００は、同じか又は異なるメモリ媒体技術を使用する１つ又はそれよりも多くのコンピュータ可読媒体を有することができる。時限式回路モジュール特徴付けシステム１００は、ＣＤ又はＤＶＤのようなメモリ媒体の装荷をサポートする１つ又はそれよりも多くのドライブを有することができる。
【００３０】
プロセッサ１０６は、命令を実行することができる。命令は、専用コンピュータ、論理回路、又はハードウエア回路によって実施される。この場合に、プロセッサ１０６は、ハードウエア、ファームウエア、ソフトウエア、又はこれらの方法のいずれかの組合せに実施することができる。「実行」という表現は、アプリケーションを実行する処理、又は命令によって呼び出される作動の実施である。命令は、１つ又はそれよりも多くのプログラミング言語、スクリプト言語、アセンブリ言語、又は類似の言語を用いて書くことができる。プロセッサ１０６は、命令を実行することができ、すなわち、プロセッサは、命令によって呼び出される作動を実施することができる。プロセッサ１０６は、情報を受け入れ、送り、処理し、格納するために出力インタフェース１０４、入力インタフェース１０２、及びコンピュータ可読媒体１０８（例えば、メモリ）と作動可能に結合することができる。プロセッサ１０６は、固定メモリデバイスから命令セットを取得し、これらの命令をいずれかの形態のＲＡＭのような一時メモリデバイスに実行可能形態で複写することができる。時限式回路モジュール特徴付けシステム１００は、同じか又は異なる処理技術を使用する複数のプロセッサを含むことができる。
【００３１】
時限式回路モジュール設計アプリケーション１１０は、集積回路モジュールを設計することに関する作動を実施することができる。説明するこれらの作動の一部又は全ては、時限式回路モジュール設計アプリケーション１１０に具現化することができる。作動は、ハードウエア、ファームウエア、ソフトウエア、又はこれらの機構のいずれかの組合せを用いて実施することができる。一例において、図１に示すように、時限式回路モジュール設計アプリケーション１１０は、コンピュータ可読媒体１０８に格納されたソフトウエアに実施され、時限式回路モジュール設計アプリケーション１１０の作動を具現化する命令の実行に向けてプロセッサ１０６によってアクセス可能にすることができる。時限式回路モジュール設計アプリケーション１１０は、１つ又はそれよりも多くのプログラミング言語、アセンブリ言語、スクリプト言語、又は類似の言語を用いて書くことができる。
【００３２】
時限式回路モジュール特徴付け１１２は、集積回路モジュールを特徴付けることに関する作動を実施することができる。説明するこれらの作動の一部又は全ては、時限式回路モジュール特徴付け１１２に具現化することができる。特徴付けは、時限式回路モジュール設計アプリケーション１１０から時限式回路モジュールに対して作動させることができる。時限式回路モジュール特徴付けのための作動は、ハードウエア、ファームウエア、又はソフトウエアを用いて実施することができる。一例において、図１によって示すように、時限式回路モジュール特徴付け１１２は、コンピュータ可読媒体１０８に格納されたソフトウエアに実施され、時限式回路モジュール設計アプリケーション１１０の作動を具現化する命令の実行に向けてプロセッサ１０６によってアクセス可能であるようにすることができる。時限式回路モジュール特徴付け１１２は、１つ又はそれよりも多くのプログラミング言語、アセンブリ言語、スクリプト言語、又は類似の言語を用いて書くことができる。一例において、時限式回路モジュール特徴付け１１２は、様々なアルゴリズムを含み、コンピュータ可読媒体１０８内に様々な表現で格納することができる。
【００３３】
クロックベースの設計は、電子設計自動化（ＥＤＡ）業界に使用されるコンピュータアシスト設計（ＣＡＤ）によって直接にサポートすることができる。図２は、クロックベースのＥＤＡツールによってサポートされる回路の例を示している。回路は、データ経路２１０と、クロック分配ネットワーク２４０とを含むことができる。データ経路２１０は、第１のレジスタ２１２（例えば、フリップ−フロップ）、第２のレジスタ２１４、及び第３のレジスタ２１６と、第１の組合せ論理（ＣＬ）ブロック２１８及び第２の組合せ論理ブロック２２０とを含むことができる。第１のレジスタ２１２は、入力２２２を受理して、信号２２６上のクロック事象に基づいて値を格納することができる。第３のレジスタ２１６は、出力２２４を出力することができる。レジスタ及び組合せ論理ブロックの入力及び出力は、複数のデータ線ｎ（例えば、バス）を使用することができる。第１のレジスタ２１２の出力は、第１の組合せ論理２１８の入力に与えることができ、第１の組合せ論理２１８の出力において、結果を生成することができる。第２のレジスタに対するクロック入力２２８上で立ち上がりエッジのようなクロック事象が発生すると、第２のレジスタ２１４は、第１の組合せ論理２１８によって生成された結果を捕捉することができる。同様に、第２のレジスタ２１４の出力を第２の組合せ論理２２０の入力に与えることができ、第２の組合せ論理２２０の出力において結果を生成することができる。第３のレジスタに対するクロック入力２３０上で立ち上がりエッジのようなクロック事象が発生すると、第３のレジスタ２１６は、第２の組合せ論理２２０によって生成された結果を捕捉することができる。クロックネットワーク２４０は、指定周波数における周期波形を生成する論理２４２を含むことができる。この周期波形信号は、クロックネットワーク２４４にわたって設計内のレジスタまで分配することができる。従来のＥＤＡツールは、クロック発生器２４２のターゲットサイクル回数に基づいて、組合せ論理ブロック２１８及び２２０のタイミング駆動式最適化及び合成をサポートすることができる。クロック分配ネットワーク２４４及び２４６は、異なるクロックツリー経路２４４及び２４６の間で低いスキューのみを有してクロック発生器２４２からの周波数を維持することができる。
【００３４】
図３は、従来のクロックベースのＥＤＡによってサポートされない可能性がある時限式回路モジュールを有するシステムの非同期回路３００の例を示している。図３の例では、別個のデータ経路３１０及び制御ネットワーク３４０が使用される。データ経路３１０は、第１のレジスタ３１２（データ入力「Ｄ」及びデータ出力「Ｑ」を有するように構成されたデータフリップ−フロップ又は遅延フリップ−フロップ（Ｄフリップ−フロップ）のようなラッチ）、第２のレジスタ３１４、及び第３のレジスタ３１６と、第１の組合せ論理ブロック３１８及び第２の組合せ論理ブロック３２０とを含むことができる。第１のレジスタ３１２は、入力３２２を受理して、第１のレジスタクロック入力３２６に基づいて値を格納することができる。第３のレジスタ３１６は出力３２４を出力する。レジスタ及び組合せ論理ブロックの入力及び出力は、複数のデータ線ｎ（例えば、バス）を使用することができる。第１のレジスタ３１２の出力は、第１の組合せ論理３１８の入力に与えることができ、第１の組合せ論理３１８の出力において、結果を生成することができる。第２のレジスタクロック入力３２８上で立ち上がりエッジのようなクロック事象が発生すると、第２のレジスタ３１４は、第１の組合せ論理３１８によって生成された結果を捕捉することができる。同様に、第２のレジスタ３１４の出力を第２の組合せ論理３２０の入力に与えることができ、第２の組合せ論理３２０の出力において結果を生成することができる。第３のレジスタクロック入力３３０上で立ち上がりエッジのようなクロック事象が発生すると、第３のレジスタ３１６は、第２の組合せ論理３２０によって生成された結果を捕捉することができる。非同期パイプライン内のレジスタ３１２、３１４、及び３１６は、ラッチ、フリップ−フロップ、動的ゲート、又はあらゆる他のメモリ要素とすることができる。
【００３５】
クロック事象を発生させるのに、図２に示すクロックネットワーク２４０を使用する代わりに、非同期回路は、図３の制御ネットワーク３４０内に示すように、データをレジスタ内にいつ格納されるかを決定するのにハンドシェイク処理プロトコルを使用する時限式回路モジュールを使用することができる。図３に示す非同期ネットワークは、図２のクロックネットワークと構造が類似のものとすることができる。しかし、遅延不感パイプライン又は他の非同期ネットワーク設計のような異なる構造を使用することができる。このハンドシェイク処理ネットワークは、データ経路３１０内でのデータの記憶を制御するクロック信号を生成することができる。これらの事象は、クロック事象が発生する前にレジスタの入力におけるデータが安定している限り、あらゆる遅延を伴って発生することができる。制御ネットワーク３４０は、第１の制御モジュール３４２、第２の制御モジュール３４４、及び第３の制御モジュール３４６を含むことができる。データ経路内のラッチの間の各データ経路は、関連付けられた制御チャネルを含むことができる。入力制御チャネル３５２を入力データ３２２に関連付けることができ、制御チャネル３４８を組合せ経路３１８に関連付けることができ、制御チャネル３５０をデータ論理経路３２０に関連付けることができ、出力３２４を制御チャネル３５４に関連付けることができる。制御チャネルは、信号伝播の遅延と、関連付けられたデータ経路のデータ関数とを整合させるように設計された遅延論理を含むことができる。この遅延論理は、制御チャネル上のハンドシェイク信号をステアリングして遅延を発生させる遅延モジュール３５８及び３６０のような構造を含む。制御チャネル３４８は、遅延要素３５０を含み、制御チャネル３５０は、遅延要素３６０を含む。図３に示す遅延要素は、前方ハンドシェイク経路上に配置されているが、使用されるプロトコルに依存して後方経路上に配置することができる。ハンドシェイク制御に使用される時限式回路モジュール３４２、３４４、及び３４６の各々は、クロック信号と、モジュールの入力制御チャネル及び出力制御チャネルとの間のハンドシェイクプロトコル関係を決定する機能を実施することができる。多くの可能なプロトコルを使用することができる。
【００３６】
図４は、従来のクロックＥＤＡによってサポートされない可能性がある時限式回路モジュールを有する別のシステムの遅延不感非同期回路４００の例を示している。図４では、制御経路とデータ経路とを互いに統合することができる４１０。統合経路４１０内の各データビットは、データ値、並びにデータの有効性を識別する通信プロトコルを用いて符号化することができる。統合経路は、デュアルレールコード、４つのうちの１つのコード、ｎ個のうちのｍ個のコード、遅延不感最小項合成（ＤＩＭＳ）コード、又はあらゆる他の同様のコードとして符号化することができる。データ経路４１０は、第１の制御バンク４１２から４１４までと、第２の制御バンク４１６から４１８までとを含むことができる。制御論理は、完了検出（ＣＤ）論理４２２及び４２４を含むことができる。ＣＤ論理４２２は、第１の制御バンク４１２から４１４までにおける全ての値が有効である時に確認応答（ａｃｋi）４５２をアサートし、これらのデータ値がアサート解除された時に、ａｃｋi４５２をアサート解除することができる。同様に、ＣＤ論理４２２は、第２の制御バンク４１６から４１８までが全て有効である時にその後のａｃｋ（ａｃｋi+1）をアサートし、データ値がアイドル状態にある時にａｃｋi+1４５４をアサート解除することができる。データは、実施されたプロトコルに従って制御バンクに格納することができる。コントローラは、入力チャネルと出力チャネルの間で異なる並行性を有する様々なプロトコルを実施することができる。例示的なプロトコルでは、その後の段からの確認応答がアサート解除され、入力が有効データを有するものとして符号化された時に、データを制御バンクに格納することができる。同様に、制御バンクの出力は、データ入力が無効であり、確認応答がアサートされた時に、無効なデータを示すことができる。従って、この例示的なプロトコルでは、第１の制御バンク４１２から４１４までが、入力４４２から４４４までを受理することができる。ａｃｋi+1４５４がアサート解除状態になると、データを制御レジスタからデュアルレールｎビット関数４２０内に出力することができ、完了検出モジュール４２２は、確認応答ａｃｋi４５２をアサートすることができる。第１のレジスタ４１２から４１４までの出力は、デュアルレールコード、ｎ個のうちのｍ個のコード、ＤＩＭＳコード、又はあらゆる他の類似のコードを用いて関数を符号化することができる。データが次の制御バンク４１６から４１８までに対して有効として符号化され、入力信号４５６がアサート解除されると、関数結果をレジスタバンク４１６から４１８に格納することができる。制御バンクは、組合せ関数論理の一部を実施することができる。
【００３７】
クロック式ベースのＥＤＡフローは、フリップ−フロップ及びラッチのような極めて少数のシーケンシャルセルに対してタイミングを統合することしかできない。従って、フリップ−フロップ又はラッチの間の組合せ論理ではないいずれの他のモジュールも、ＥＤＡツールフロー内のタイミング駆動式アルゴリズムのサポートを受けるために図１の時限式回路モジュール特徴付けを用いて特徴付けることができる。クロック式ＥＤＡツールフローとの互換性に向けた時限式回路モジュール特徴付けの適用は、図３及び図４の３００及び４００によって示す例に使用されるモジュールに限定されず、あらゆる時限式設計モジュールに一般的に拡張することができる。
【００３８】
シーケンシャル回路又は論理モジュールである設計モジュールは、クロック式ベースのＥＤＡのツール及びフローとの互換性に向けて特徴付けることができる時限式回路モジュールの組合せサイクルを有することができる。非同期回路３００の非同期束データ経路で示すように、制御モジュール３４２、３４４、及び３４６を特徴付けることができる。これらの制御モジュールの間の論理及び設計フローにおいて事前特徴付けられるいずれかの遮断ラッチ構造は、本明細書に説明するように特徴付けることができるモジュールとして表すことができる。設計フローによって特徴付けられる遮断ラッチ構造は、Ｄフリップ−フロップ、ラッチ、マスタースレーブラッチ、又はあらゆる他のシーケンシャル要素を使用することができる。これらのモジュールの間の論理は、図３に示すように、遅延モジュール３５８及び３６０を含むように特徴付けることができる。分岐及び合流要素のような制御ステアリング論理（図２７を参照されたい）及び他の論理は、クロック式ベースのフローによって特徴付けられるモジュールとして表すことができる。遅延不感非同期回路４００によって示すように、特徴付けられる制御要素は、制御バンク４１２から４１４まで及び４１６から４１８までと、完了検出論理４２２及び４２４とを含むことができる。制御バンクの間には追加の論理を存在させることができるので、特徴付けに向けて全体のシステムをモデル化することができる。
【００３９】
図５は、特徴付け工程５００を示している。時限式回路モジュールが設計され５１０、この段階に対しては図６を参照してより詳しく解説する。一例において、時限式回路モジュールは、ハードウエア記述言語（ＨＤＬ）で符号化することができる。例えば、ハードウエア記述言語は、Ｖｅｒｉｌｏｇ、超高速集積回路（ＶＨＳＩＣ）ＨＤＬ（ＶＨＤＬ）、又はあらゆる他のハードウエア記述言語を使用することができる。時限式回路モジュールパラメータ及びアーキテクチャ方式を定義又は選択することができる。例えば、遅延不感パイプライン４００を選択することができる、束データパイプライン３００を選択することができ、又はパイプライン構造の組合せ又はあらゆる他のアーキテクチャの方式又はプロトコルを構成することができる。作動電圧、局所制約、異なる周波数、及びプロトコル制約のような他のパラメータを識別することができる。定義又は選択することができる一般的なタイプのパラメータは、時限式回路モジュールの個数及び複雑度、局所制約パラメータ、プロトコル制約パラメータ、又はタイミング制約パラメータを含むことができる。時限式の回路又は論理を生成するのにこれらのパラメータを適用することができる。時限式回路は、特徴付けることができ５２０、この段階に対しては、図７を参照してより詳しく解説する。これらの時限式回路モジュールは、作動５１０に対して設計することができ、更に、作動５１０で特徴付けられた遮断ラッチ構造及び時限式回路の間にいずれかの論理を含むことができる。例えば、第１の制御モジュール３４２、第２の制御モジュール３４４、及び第３の制御モジュール３４６は、特徴付けることができ、これは、遅延論理３５８及び３６０も特徴付けることができることを意味することができる。特徴付けられた制御モジュールは、ＥＤＡツールに渡される発生された制約セット５３０として様々なフォーマットで格納された特徴付け情報を有することができる。これらの制約セットは、図７を参照してより詳しく解説するように、設計内の特徴付けられた制御モジュールのインスタンスを使用するシステム又はアーキテクチャの設計における様々な工程中に入力として使用することができる。完全な制約セットは、テキストファイルとしてデータベース（例えば、ＳＱＬ）内にＥＤＡ基盤構造フォーマット（例えば、ｍｉｌｋｙｗａｙデータベース）で、又は制約セットを表すためのあらゆる他のフォーマットで保存することができる。
【００４０】
図６は、非同期コントローラにおける時限式制御回路設計工程６００の流れ図を示している。構成に基づいて追加の作動、より少ない作動、又は異なる作動を実施することができる。時限式制御回路設計工程６００における作動の順序は、限定的であるように意図したものではない。一例において、時限式制御回路設計工程６００は、時限式回路モジュール設計アプリケーション１１０を実行することによって実施することができる。制御モジュール（図３及び図４で記述されたもののような）を設計することができる（６０２）。プロトコル、入力、及び出力、並びにモジュール設計における他の態様を含む制御モジュールのパラメータを定めることができる。次いで、設計に対する正式仕様を生成することができる（６０４）。有効な設計が既に存在するか否かの決定を行うことができる（６０６）。決定が真であった場合に、作動（６０８）及び（６１０）を省くことができる。有効な設計が存在しなかった場合に、コントローラ（すなわち、制御モジュール）を仕様から合成することができる。一例において、合成は、Ｐｅｔｒｉｆｙ、３Ｄ、ｍｉｎｉｍａｌｉｓｔ、ＭＥＡＴ、又はあらゆる他のＣＡＤシステムのようなＣＡＤツールを使用することができる。設計は、仕様の要件を満たすように手動で生成することができる。設計は、製作工程に使用される特定の設計ライブラリに技術マップすることができる（６１０）。技術マッピング設計６１２を生成することができる。これらの技術マッピング設計は状態論理を含むことができ、正しく初期化されるリセット論理を含むことができる組合せサイクルを含むことができる。作動６１４では、設計が正しくリセットされているか否かを決定するために、設計を評価することができる（６１４）。決定が真であった場合に、作動６１６及び６１８を省くことができる。設計が正しくリセットされていなかった場合に、回路を通る因果遅延経路及び実施経路を識別し、生成することができる（６１６）。因果遅延経路及び実施経路の情報は、リセット論理を生成するのに使用することができる６１８。回路に対するリセット論理を生成することができ（６１８）、対応する要素を追加又は修正することができる。因果遅延経路及び実施経路が与えられる場合に、遅延に対するリセット生成を最適化するためにこれらの経路を使用することができる。Ｖｅｒｉｌｏｇ又はあらゆる他のハードウエア記述言語のようなハードウエア記述言語を用いて最終設計における回路の説明を生成することができる。
【００４１】
図７は、設計特徴付け工程の流れ図を示している。構成に基づいて追加の作動、より少ない作動、又は異なる作動を実施することができる。設計特徴付け工程７００における作動の順序は、限定的であるように意図したものではない。一例において、設計特徴付け工程７００は、非同期設計特徴付け１１２を実行することによって実施することができる。設計（図３及び図４で記述されたもののような）に使用される制御モジュール及び関連要素を特徴付けることができる（７００）。特徴付けのためのデータ７０２を与えることができる。この特徴付けデータは、以下に限定されるものではないが、設計仕様、ハードウエア記述言語での設計、設計に使用されるセルライブラリの様々な説明、設計に関する実施パラメータ、アーキテクチャサイクル及び関連の要切断経路、又は設計特徴付けを実施するためのあらゆる他の情報を含むことができる。設計に対して、非有界遅延モデルを用いてタイミング正確性を満足させる完全な相対タイミング制約セットを生成することができる（７０４）。これらの相対タイミング制約は、その性質に基づいて、速度非依存制約及び遅延不感制約のような様々なセットに分割することができる。相対タイミング制約は、回路を正しく作動させるために使用することができる。追加のアーキテクチャ性能制約７０６を設計に追加することができる。これらの追加のアーキテクチャ性能制約は、相対タイミング制約として表すことができる。これらの追加のアーキテクチャ性能制約は、正しい作動に対して必要ではない可能性があるが、設計の性能を確実にするために使用することができる。作動７０６において、設計に対して必要とされる他の追加のタイミング制約を追加することができる。ＥＤＡツールフローのタイミング駆動式合成部分及び配置及び経路指定部分に向けて、相対タイミング制約及びアーキテクチャ性能制約の部分集合を選択することができる（７０８）。これらの相対タイミング制約は、設計フローの主要工程を通してサイクルカットを生成するためにかつ制約セットの生成のために使用することができる。複数のセットを使用することができる。設計モジュールをサイクルに対して評価することができ、ＤＡＧを生成するために、タイミング制約として表される回路内の各タイミングサイクルを切断することができる（７１０）。サイクルカットは、作動７０８において指定される相対タイミング経路をＥＤＡツールが辿ることを不可能にする可能性があるので、これらの経路を相対タイミングサイクルカットの一部として切断しないことができる。従って、作動７０８における相対タイミング経路は、サイクルカット作動７１０を駆動するために使用することができる。外部アーキテクチャサイクルを遮断するために切断される経路を評価することができ、これらの経路に対する制約を発生させることができる。ＤＡＧであるタイミンググラフを生成するために、生成された相対タイミング制約及びアーキテクチャ性能制約の部分集合７０８内のタイミング経路を保持することができるタイミング切断セットを生成することができる。性能特徴付け器によってコントローラの性能を特徴付けることができる（７１２）。設計は、サイクル時間、前方及び後方待ち時間、パイプライン化特性、内部ゲートの立ち上がり及び立ち下がり時間、又は設計工程に対して有利なあらゆる他の特徴付けパラメータに対して特徴付けることができる。セルライブラリ遅延ファイルを修正するのに特徴付け情報を使用すると決定することができる（７１４）。セルライブラリ遅延ファイルは、ｌｉｂｅｒｔｙ（．ｌｉｂ）フォーマットで表すことができる。循環性遅延及びタイミング経路が切断された場合の遅延の正しい評価を助けるために、遅延を有するサイドピンをライブラリ内の特定のゲートに追加することができる（７１６）。設計特徴付け工程の結果を生成して格納することができる（７１８）。これらの結果は、サイクルカット情報、ツールが設計内のセルを修正する機能を限定する情報、相対タイミング制約、最小及び最大の遅延制約及びそれに関する遅延ターゲット値、又は設計に対する検証要件を含むことができる。一例において、設計特徴付け工程の結果は、Ｓｙｎｏｐｓｙｓ設計制約（．ｓｄｃ）ファイルフォーマットによってサポートされる．ｃｓｔｒフォーマットのようなフォーマット、又はＥＤＡツールを使用することができるあらゆる他のフォーマットで表すことができる。結果情報は、ＥＤＡツールフローに使用される設計の最適化及び検証の工程の異なる態様によって使用されるいくつかの異なる部分集合を含むことができる。
【００４２】
例えば、非同期コントローラは、より大きいシステムの設計内に任意に挿入することができるライブラリマクロセルとして特徴付けることができる。例えば、コントローラは、（ａ）図８に示すような各コントローラによって実施されるプロトコルの仕様８００、（ｂ）図９に示すようなシーケンシャル非同期コントローラとして実施される回路の実現９００、及び（ｃ）図１０に示すようなシーケンシャル非同期コントローラのハードウエア記述言語（ＨＤＬ）実装１０００を含むことができる。コントローラは、様々な合成ツール、並びに特別仕様設計を用いて実施することができる。
【００４３】
シーケンシャル回路の並行性及び機能挙動は、正式に指定することができる。図８は、通信システム計算法（ＣＣＳ）において指定されるバーストモード制御回路に関する仕様の例示的実施形態８００を含む。この例では、入力チャネルと、出力チャネルとの入力の同期とを指定するためにステートメント８０２を使用することができる。ステートメント８０４は、出力チャネルの挙動及び出力の同期を定めることができる。ステートメント８０６は、最高レベルの仕様を生成するために２つのエージェント（例えば、入力エージェント及び出力エージェント）を並列に組み合わせることができる。仕様は、ペトリ−ネット、状態グラフ、状態機械、通信逐次プロセス（ＣＳＰ）、ＣＣＳ、又は仕様のためのあらゆる他の言語を含むシーケンシャル制御仕様に適するいずれかの言語におけるものとすることができる。
【００４４】
図９は、図３の制御モジュール３４２、３４４、及び３４６を実施する回路９００を示している。状態グラフ及び信号遷移グラフ（ＳＴＧ）のような制御モジュールを実施するための多くの異なる方法及び回路方式を使用することができる。一例において、図９では仕様８００の回路実装９００を示している。制御モジュール回路（すなわち、ハンドシェイク回路）は、７つの組合せ論理ゲート、すなわち、インバータ９０４、９０６、及び９１０、並びにＮＯＲゲート９０８及び９１４のような静的論理ゲートと、ＡＮＤ−ＯＲ反転ゲート（ＡＯＩゲート）９０２及び９１２のような複合ゲートとを含む。ＡＯＩゲートは、１つ又はそれよりも多くのＡＮＤゲートにＮＯＲゲートが続く組合せから構成される２レベルの混成又は複合論理関数である。動的論理、ドミノゲート、ラッチ、又は多数決ゲートのようないずれかの他のタイプのゲートを使用することができる。モジュール９００の論理は、シーケンシャル関数を実施することができる。シーケンシャル論理は、図示のようにフィードバックを用いて実施することができる。フィードバックは、ゲート９０２及び９０４、ゲート９０２、９０４、及び９０８、ゲート９１２及び９１４、並びにゲート９１２、９１４、及び９０８を通るサイクルにおける場合のように回路のトポロジー内にサイクルを生成することができる。シーケンシャル回路は、ラッチ、動的ゲート、又は多数決ゲートを使用することによって存在する状態を含むことができる。Ｖｅｒｉｌｏｇのようなハードウエア記述言語を用いて回路を説明することができる。一例において、９００で表す論理は、図１０に示すように、１３０ナノメートル（ｎｍ）Ａｒｔｉｓａｎセルライブラリ１０００にマップすることができる。次いで、回路設計を特徴付けることができる７００（図７）。
【００４５】
相対タイミングは、一般的な回路及びシステムにおける不均一なタイミング要件の正確な捕捉、モデル化、及び検証を可能にする数学的タイミングモデルである。これらの設計では、設計者及びツールが間接的な意味を指定及び理解し、より一般的な回路構造及び高度なクロック技術のタイミングを操作することを可能にするためのクロック周波数のような従来の間接表現を用いずに、タイミング制約を明示的にすることができる。回路の性能及び正確性に影響を及ぼすタイミング制約は、通例の実数値変数又は遅延範囲ではなく、論理制約に変換することができる。論理制約は、コンパクトな表現をサポートし、より効率的な検索及び検証のアルゴリズムを展開配備することを可能にすることができ、それによってタイミングを最適化、物理配置、及び検証の設計ツールと組み合わせる機能を有意に改善することができる。その結果、設計者及びＣＡＤツールがタイミングを表す手法をＥＤＡツールがタイミング駆動式最適化を実施することを変わらずに可能にするだけでなく、システムにおける遅延ターゲットにわたって細粒度制御も与えるように変更することができる。明示的タイミング制約を使用するこの方式は、一部の回路設計において有意な電力−性能の利点を与えることができる。
【００４６】
回路内のタイミングは、性能と正確性の両方を決定することができる。制御モジュールの正確性と性能の両方の条件を表す上で、相対タイミングを使用することができる。例えば、タイミング制約は、ある一定の状態を到達不能にする論理表現として表すことができる。除去される状態は、回路の不具合を含む場合があり、従って、回路正確性にはタイミングが必要である可能性がある。従って、物理的な実現において全てのタイミングが満たされる場合に、回路は、不具合なしに作動させることができる。性能制約は、正しい回路作動に対して不可欠であるとは限らないが、性能ターゲットが満たされることを確実にすることができる。図１１は、相対タイミング制約１１００（式１でも表される）を指定するのに使用される経路ベースの相対タイミングにおける一般形式を示している。式は、発散点（ｐｏｄ）と収束点（ｐｏｃ）を含む。発散点ｐｏｄは、システム内でクロック事象又はハンドシェイク信号のような他の事象を発生させるいずれかの事象とすることができる。収束点は、２つの事象ｐｏｃ0及びｐｏｃ1とマージンｍとから構成される。２つのｐｏｃ事象は、回路が正しく作動するか又は望ましい性能を得るように時間的に順序付けられる。事象ｐｏｄとｐｏｃ0にマージンｍを加えたもの間の最大遅延は、事象ｐｏｄから事象ｐｏｃ1までの最小遅延よりも小さい場合がある。
【００４７】
タイミング条件の完全なセットは、論理及び挙動ドメインにおける設計に対して、明示的に表現され得る。タイミング制約は、データ経路、機能ユニット及びストレージ要素を含み得る、ハンドシェイク制御と完全なシステムの両方のために生成され得る。図１２は、システムを正確に作動させるために、図９の回路向けの速度非依存タイミング制約１２００を示す。制約１２００は３つのクラスを含むことができる。すなわち、局所実施制約、時限式プロトコル及び束データ制約である。遅延不感制約の集合（図示せず）は、完全な設計特徴付けフローの一部とすることができる。制約の数及びタイプは、実装、プロトコルの同時実行、又はシステム設計のために使用されるゲートに基づいて決定され得る。束データ制約１２００は、コントローラがパイプライン３００で利用される場合に有効とすることができる。これらの相対タイミング制約は、作動７０４及び７０６で生成され得る。これらの制約は、回路の特徴付け情報の一部になることができ、そして、作動７１８で、特徴付られた回路と関連付けることができる。
【００４８】
図１２では、信号ラベル付け（例えば、ｌａ）にアンダーバー（_）が続くものは、有効化ロー信号を表すことができ（例えば、ｌａ_）、それに対して下付き文字がない信号ラベル付けは、有効化ハイ信号を表すことができる（例えば、ｌａ）。信号ラベル付けに続くマイナス符号（−）は、信号の立ち下がりエッジを表すことができ（例えば、ｌａ−）、それに対して信号ラベル付けに続くプラス符号（＋）は、信号の立ち上がりエッジを表すことができる（例えば、ｌａ＋）。整数ｉ＋１は、上流の設計インスタンスを表すことができ、それに対して整数ｉは、局所設計インスタンスを表すことができる。
【００４９】
ＥＤＡツールフローが直接サポートするフォーマットで表される制約セットを生成するために、非同期設計特徴付け１１２（図１）を使用することができる。この制約セットは、設計内の各ゲートの電力及び性能を正しく制約し、最適化することができる。この最適化は、経路ベースのタイミング制約が各ゲートを通過する場合に行うことができる。従って、コントローラ例９００では、ゲート９０２から９１４までの全てが、各ゲートを通過する少なくとも１つのタイミングアーク（例えば、タイミング経路）を有することができる。コントローラの構造、コントローラのタイミング制約、及びクロックベースのＥＤＡツールによって課せられる制約に起因して、コントローラの各ゲートを通るタイミングアークを生成することができない可能性がある。例えば、ＥＤＡツールは、回路のタイミンググラフを有向非循環グラフ（ＤＡＧ）として表すことができ、それに対して回路は、サイクルを含む可能性がある。更に、タイミング駆動式最適化を使用するために使用されるステートメントは、回路のタイミンググラフを端点で切断する可能性がある。回路を制約することができる方式を制限するツールによってサポートされるタイプの制約のような他の制約が存在することができる。同様に、制約のうちの一部は、本質的に循環性のものである場合があり、従って、ＤＡＧとして表されるシステム内で完全にはサポートされない可能性がある。
【００５０】
最適化目的で、完全なタイミング制約セットを回路に全て同時に適用することはできない。従って、作動７０８では、設計及び検証のフローの様々な部分を通じた使用に向けて、作動７０４及び７０６において生成された制約の部分集合を回路の構造及び回路が使用されるシステムに基づいて生成することができる。更に、フローの様々な部分において、相対タイミング制約経路の部分集合を制約経路として使用することができる。例えば、制約セットを生成することができる（７０８）。これらの制約セットは、作動７１０における相対タイミングサイクルカットに使用される制約セットを含むことができる。一例において、サイクルカットに使用される制約の部分集合は、速度非依存タイミング制約１２００における最初の２つの局所実施制約（例えば、
2015524589.tif 000004
及び
2015524589.tif 000005
）と、束データ制約とを含むことができる。タイミング経路は、回路９００のこれら３つの制約と、図１３に示す要切断経路１３００とで導出することができる。タイミング経路のうちの一部は、タイミング経路を導出する元になる相対タイミング（ＲＴ）制約の部分経路とすることができる。
【００５１】
回路を通るタイミング経路のうちの一部を遮断することにより、有向非循環グラフ（ＤＡＧ）である、回路のタイミンググラフを生成することができる（７１０）。一例において、タイミング経路のうちの一部を遮断することにより、ゲートの入力から出力へのタイミング経路を無効にすることができる。ゲート遅延情報をｌｉｂｅｒｔｙ（．ｌｉｂ）ファイルフォーマットで格納することができる。回路のタイミンググラフを生成する段階は、入力として、作動７０８によって与えられるタイミング経路セットと、作動７０２によって与えられる要切断経路セットと、設計モジュール１０００のＨＤＬ表現とを含むことができる。図１３に記載のタイミング経路例１３００を作動７１０に対して使用することができ、このタイミング経路は、作動７０２で与えることができる要切断経路を含むことができる。サイクルカットアルゴリズムに渡されるタイミング経路は切断することができず、要切断経路を切断することができる。タイミング経路１３００が相対タイミング経路として渡され、経路ｒａ→ｒａ_→ｒｒ_→ｒｒが要切断経路として進むと仮定すると、図１４に示すように、４つのタイミングサイクル１４００をもたらすことができる。ＤＡＧを生成するために、各タイミングサイクル１４００を切断することができる。タイミングサイクルに対して多くの可能な切断が存在することができる。しかし、ｌｒ→ｌａ_→ｌａ経路を保持しながらｌａ_→ｌａ→ｌａ_サイクルを切断する唯一の選択肢は、ゲート９０２内でｌａからｌａ_へのタイミングアークを切断することであろう。
【００５２】
一例において、ＥＤＡツールによって許可される明示的なサイクルカット指令は、ｓｅｔ_ｄｉｓａｂｌｅ_ｔｉｍｉｎｇ指令とすることができる。これらの指令は、Ｓｙｎｏｐｓｙｓ設計制約（．ｓｄｃ）ファイル又は類似のタイプのファイルに置くことができる。図１５は、ｓｅｔ_ｄｉｓａｂｌｅ_ｔｉｍｉｎｇ指令に渡される相対タイミング経路の全てを保持しながら、４つ全てのサイクルを切断し、更に要切断経路を切断するための指令セット１５００を示している。指令内に使用されるマスターピン名称及びインスタンス名は、図１０に示すＶｅｒｉｌｏｇ  ＨＤＬゲートのライブラリピン名称から取得することができる。指令１５００のフォーマットな代表的なものであり、クロックベースのＥＤＡツールが理解するいずれかの有効なタイミンググラフカット指令を使用することができる。
【００５３】
設計を最適化するのに適する指令セットを生成することができる（７０８）。図１６は、設計３００を最適化するのに適する制約セット１６００を示している。指令セット１６００は、設計のタイミング駆動式の電力及び性能の最適化を実施することができる、ＥＤＡツールフローが理解する指令を含むことができる。工程のこの局面では、回路内のゲートは、ゲートを通過する適切な指令を有することができる。ｓｅｔ_ｍａｘ_ｄｅｌａｙ指令及びｓｅｔ_ｍｉｎ_ｄｅｌａｙ指令は、ＥＤＡツールが理解することができ、タイミング駆動式最適化を実施することができる。作動７０８は、指令１６００に対するターゲット遅延を与えることができる。作動７１２は、アーキテクチャ内に使用される特徴付けられたセルに対する適切な遅延ターゲット値を与えるのに適するターゲット遅延値及びターゲット性能値を生成するために、コントローラの構造パイプラインを生成し、これらのコントローラをシミュレートすることができる。作動７１２は、静的タイミング解析を用いながら、設計内の循環性遅延を最適化及び検証するのを助けるように、ｌｉｂｅｒｔｙファイルに修正を与えることができる。作動７０８は、遅延ターゲット値を修正し、かつ回路遅延を特徴付けるために設計を反復的にシミュレートすることができる。作動７１６では、ライブラリ内の各特徴付けられたモジュールに新しい入力ピンを追加することができ、特徴付けからの遅延を入力ピンから出力ピンまでのライブラリに追加することができる。
【００５４】
最終制約セットを生成することができる（７１８）。結果は、作動７０８における完成回路システム１００による使用に向けてコンピュータ可読媒体１０８によって格納することができる。時限式回路モジュール特徴付けの作動１１２を通して生成された制約を作動７０８において設計マスターに結び付けることができる。アーキテクチャ内の各インスタンス化された設計インスタンスは、電力、性能、及びタイミング正確性に対して最適化された設計を標準のＥＤＡツールを用いて生成するのに、生成されたこれらの制約を使用することができる。
【００５５】
図１７は、作動７１８において生成される追加の制約セット１７００を示している。ゲートを修正しないためのこれらの制約１７００は、特徴付けられた設計が、特徴付けられたものから機能的に修正されないことを確実にすることができる。作動７１８において、設計フローからの追加の制約を生成して保存することができる。
【００５６】
タイミング駆動式設計最適化及び設計検証は、非同期回路のような方法を用いて非従来的な設計を生成する場合の設計生産率に対して主な障害であった。タイミング制約を正式に与え、非同期設計モジュールに対してタイミング制約を特徴付けて、これらの非同期設計モジュールをタイミング駆動式設計最適化及び設計検証をサポートするＥＤＡ設計フロー（例えば、クロックベースのＥＤＳ設計フロー）内に統合するための設計情報を与える方法を本明細書で説明した。
【００５７】
本明細書に説明する技術は、非同期設計モジュールを特徴付けるのに使用することができる。非同期コントローラは、図６に示すように、正式仕様を含むように設計することができる。回路は、図８から図１０にある表現と類似の表現を有することができる。これらのコントローラは、図７に示すように、完全なタイミング制約セットを確実にするためのモデル検査に基づく相対タイミングを用いて特徴付けることができる。制約セット及びフォーマットの例を図１１から図１４に見ることができる。これらの設計モジュールを使用するシステム及びアーキテクチャの設計及び検証における使用に向けて、特徴付け情報セットを生成することができる。特徴付け情報セットの例を図１５から図１７に見ることができる。本明細書に説明する工程に基づいて、８００に指定している挙動を有する非同期設計モジュールを特徴付けし、ＥＤＡ設計フローにおいてクロック設計に向けて生成されるタイミング駆動式設計及び最適化のアルゴリズムを使用する非同期アーキテクチャ内に挿入することができる。
【００５８】
図１８は、本明細書に説明する技術によって特徴付けることができる回路の別の例（例えば、４つのＮＡＮＤゲートを使用するＣ要素回路１８００）を示している。説明するフロー又は工程は、正確性の証明を生成することができる正式方法に基づくことができる。この技術は、仕様のモデルと実施の間の準拠性を証明するために公理化が使用されるモデル検査エンジンを使用することができる。例示のための形式として通信システム計算法（ＣＣＳ）を使用することができるが、あらゆる形式がこの目的を実現することができる。特徴付けは、使用されるベクトルセット及びタイミングのシミュレーションに基づくことができる正式検証に基づくことができる。
【００５９】
設計モジュールは、特徴付けてセルライブラリ内のセルから構成することができる。図１９に示すように、設計モジュールの例１９００は、Ｖｅｒｉｌｏｇで指定することができるＣ要素である。同じく構造表現をサポートするいずれかの他の高レベル設計記述言語を使用することができる。図示のように、この設計モジュールは、ＮＡＮＤ２が２入力ＮＡＮＤゲートであり、ＮＡＮＤ３が３入力ＮＡＮＤゲートであるＩＢＭ  １８０ｎｍセルライブラリにマップすることができる。「_Ｂ」という添え字は、セルの駆動強度とすることができる。
【００６０】
フローにおいて、セルライブラリの正式モデルをヘッダファイル及び関数と共に生成することができ、回路（例えば、ＩＢＭ  １８０ｎｍセルライブラリ）を設計するのにこれらを使用することができる。正式モデルを生成する段階は、スクリプト（例えば、Ｐｅｒｌスクリプト）を用いて自動化することができる。一例において、セルライブラリ内のセルに対する２タイプの正式モデルが、図２０のＮＡＮＤ２モデルにおいて示すように、半モジュール式モデル２０１０とブールモデル２０２０とを含むことができる。半モジュール式モデルは、入力が出力を無効にすることを可能にすることができない。ブールモデルは、出力を無効にすることを可能にすることができる。ＮＡＮＤ２モデルの例示において、ａ及びｂは入力であり、’ｃは出力であり、最後の３文字は、ａ、ｂ、及びｃの電圧レベルを表し、この場合に、ａ及びｂにおける低レベルは「０」であり、高レベルは「ａ」又は「ｂ」であり、出力は０又は１として表される。ＣＣＳにおける入力遷移の不在は、他の正式モデルでは障害状態への遷移として表すことができる入力遮断又は入力無効からもたらされる可能性がある。
【００６１】
セルライブラリの正式表現のマッピングを助けるために、ヘッダ関数を生成することができる。図２１は、正式ＣＣＳヘッダ関数ファイル２１００又はヘッダファイル１を示している。この例では、ヘッダファイルは、セルライブラリ内で２入力、３入力、及び４入力のＡＮＤゲート及びＮＡＮＤゲートにおいて存在する正式ＣＣＳ関数に対して生成することができる。関数の入力及び出力のブール論理レベルを特定の状態にマップするように命名規則を選択することができる。例えば、入力が０か、又はロー又はハイのブール値に対するピン名称かのいずれかにマップされ、出力が０又は１（低電圧又は高電圧に対する）のいずれかにマップされる場合に、関数名、この名称内の入力及び出力の論理レベルがマップされる場所のインデックス、出力名、及びモデルに対するブール関数を含むことができる命名規則を使用することができる。ヘッダファイル１  ２１００の図は、これらの静的ゲートが単一出力のみを有することを仮定しているが、他の例は、複数の出力ゲートを含むように拡張することができる。別の例では、別の命名規則を使用することができる。
【００６２】
図２２は、ライブラリ内のセル名を正式モデルにピン名称マッピングを含めてマップするのに使用される第２のヘッダファイル２２００又はヘッダファイル２を示している。セル名の駆動強度を同じ正式モデルにマップすることができる。参照されるＩＢＭライブラリ（例えば、ＩＢＭ  １８０ｎｍセルライブラリ）における２入力ＮＡＮＤゲート及び３入力ＮＡＮＤゲートに関する第２のヘッダファイル２２００を示している。この仕様は、構造Ｖｅｒｉｌｏｇ表現を使用することができ、この場合に、ライブラリセルはマスター名称であり、ＣＣＳモデルはインスタンス名であり、ピン名称は、Ｖｅｒｉｌｏｇ構文内でマスター名称とインスタンスピン名称との間でマップされる。他の例では、ヘッダファイル２に対する他の表現を使用することができる。
【００６３】
セルライブラリからの設計内に使用される各ゲートに対する正式モデルを用いて、設計モジュールの正式モデルを生成することができる。設計モジュールからの正式モデルの変換を自動化することができる。図１９のｃ_ｅｌｅｍｅｎｔ_ｎａｎｄ１９００に示すように、完全に技術マップされた設計を与えることができる。設計内の各ネットリストに対するネットリスト値セットは、設計内に使用される初期状態を与えることができる。例えば、入力、出力、及びワイヤの名称はセットで存在することができる（例えば、{ ~a ~b ~y ab ay by }）。名称の前に波形ダッシュがある場合に、信号の状態はブール０であり、他の場合は信号の状態はブール１である。他の名称表現を使用することができる。モジュール定義（図１９の１９００）から直接導出することができる表現式１で以下に示すように入力及び出力に対するセットを指定することができる。
input a, b;
output y;        表現式１
【００６４】
初期状態と入力及び出力の指定とから、図２３に示すように、正式モデル２３００を生成することができる。モジュールの正式モデルは、Ｖｅｒｉｌｏｇ設計、マッピング、及び使用されるセルライブラリに対するヘッダファイル、並びに信号電圧から生成することができる。図２３は、Ｃｏｎｃｕｒｒｅｎｃｙ  Ｗｏｒｋｂｅｎｃｈ及びＣＣＳ形式を使用する他のツールに適することができるＣＣＳにおけるｃ_ｅｌｅｍｅｎｔの正式設計の正式モデル表現２３００を示している。
【００６５】
回路を通る因果経路を生成することができる。例えば、モジュールに対する正式ＣＣＳ仕様を与えることができる。ＣＣＳでは、ｃ_ｅｌｅｍｅｎｔ仕様を表現式２に示すように表すことができる。
agent C_ELEMENT_SPEC = a.b.'y.C_ELEMENT_SPEC + b.a.'y.C_ELEMENT_SPEC;  表現式２
【００６６】
図６の６１６に示すように、設計の入力と出力の間の因果経路を生成することができる正式検証ツールを使用することができる。正式検証ツールは、モジュールの正式表現（Ｃ_ＥＬＥＭＥＮＴ_ＮＡＮＤ（２３００））及び仕様（Ｃ_ＥＬＥＭＥＮＴ_ＳＰＥＣ（表現式２））を使用することができる。結果は、図２４に示す形態で指定される経路とすることができ、この場合に、立ち上がり遷移（例えば、ａ＋及びｂ＋）と立ち下がり遷移（例えば、ａ−及びｂ−）の両方において入力ａ及びｂから出力ｙまでのシーケンシャル２４００が生成される。
【００６７】
図６の６１８に示すように、電力又は性能に対して最適化されたリセット設計を生成することができる。リセット設計最適化は、セルライブラリの正式モデルのモジュール及びヘッダを使用することができ、因果経路を使用することができる。リセット設計最適化に関する追加の情報は、実施経路情報と、リセット時に主入力が認識されて定められるか否かということとを含むことができる。因果経路を使用する設計に対してリセット論理を最適化するためのいずれかのアルゴリズムを使用することができる。
【００６８】
図７の７０４に示すように、速度非依存（ＳＩ）相対タイミング（ＲＴ）制約を発生させることができる。セルライブラリの正式モデル（例えば、図２０）、正式設計表現（例えば、図２３）、及び正式仕様（例えば、表現式２）は、仕様に準拠するように設計に適用することができる相対タイミング制約（例えば、
2015524589.tif 000006
）を生成するために使用することができる。図２５に示すように、生成されたＲＴ制約セット２５００は、速度非依存タイミング制約に対して十分で完全なものとすることができる。形式は、ゲートは任意遅延を有するが、ワイヤはゼロ遅延を有する「速度非依存」制約を使用することができる。図２５は、この形式を使用する、ｃ要素に対するＲＴ制約セット２５００を示している。
【００６９】
図７の７０４に示すように、遅延不感（ＤＩ）相対タイミング（ＲＴ）制約を発生させることができる。回路を遅延不感設計としてモデル化するために、速度非依存相対タイミング制約を拡張することができる。遅延不感相対タイミング制約を発生させるために、ゲートのみならず、ワイヤも任意遅延を有することができる。任意遅延は、図２６に示すように、ＦＯＲＫ要素２６００を有するワイヤ分岐に基づいてモデル化することができ、この場合に、ａは入力であり、ｂ及びｃは、ＦＯＲＫにおける出力であり、ｂ、ｃ、及びｄは、ＦＯＲＫ３における出力であり、変数の前にアポストロフィ（’）があるものは出力を表し、変数の前にアポストロフィ（’）がないものは入力を表している。分岐は、図２７の２７００に示すように、１つの入力（例えば、ｒｂ）と２つの出力（例えば、ｒ０及びｒ１）とを有することができる。ワイヤが複数の分岐を有する場合に、使用される分岐に使用される出力の順番は重要ではないとすることができる。三又分岐仕様を使用することができる。分岐の発生は、自動化することができる。それとは逆に、合流は、図２７に示すように、２つの入力（例えば、ａ０及びａ１）（又は複数の入力）と１つの出力（例えば、ａｂ）とを有することができ、ゲート（例えば、Ｃ要素ゲート）を使用することができる。
【００７０】
分岐は、遅延不感相対タイミング制約を発生させるように設計内に挿入することができる。図２８は、信号名変更に基づいて再度マップされた速度非依存ＲＴ制約を用いて修正された設計２８００を示している。新しい設計に対して検証を実施することにより、表現式３に示すような２つの遅延不感（ＤＩ）相対タイミング制約を追加することができる。「a 2」構文は、複数サイクル制約を示している。「a 2」は、信号ａにおける第２の立ち上がり事象を指定し、「b 2」は、入力ｂにおける第２の立ち上がり信号を指定する。表現式３は、ｙ０が降下する（−）時に、信号ａ及びｂが増大することができ、従って、信号ａ及びｂが、ａｙゲート及びｂｙゲートの入力までのワイヤ遅延よりも大きい遅延を有する可能性があることを記述している。
rtc = rtc2: y0- => y1- < a 2;
rtc = rtc3: y0- => y2- < b 2;        表現式３
【００７１】
様々なセットにおいて特徴付け情報を生成することができる。例えば、２５００、２６００、２８００、及び表現式３は、完全な特徴付けられた制約セットを生成するために使用することができる。本明細書で指定するように、有向非循環タイミンググラフのようなＥＤＡ要件を満たすために、いくつかの追加ピン情報を含めることができる。
【００７２】
一例において、特徴付け情報は、図７の７０６、７０８、７１０、及び７１８に示すように、Ｓｙｎｏｐｓｙｓ設計制約（．ｓｄｃ）によってサポートされるフォーマットで表すことができる。Ｓｙｎｏｐｓｙｓ設計制約のような制約は、市販のツールフローのうちの多くのものにわたって一般的なものである場合がある。本明細書に説明する技術は、図３８に示すような合成ツール３８２２による合成、物理設計ツール３８２４による物理設計、及びタイミング検証ツール３８２６によるレイアウト後タイミング検証をモジュールの正式相対タイミング特徴付けとして表すことができるこれらの．ｓｄｃ制約を用いて駆動するための情報を生成することができる。
【００７３】
各情報セットは、類似のデータを含むことができるが、使用されるツールの特定の制約及び挙動に基づく最適化にターゲットを定めたものとすることができる。例えば、物理設計に使用されるＳｏＣ  Ｅｎｃｏｕｎｔｅｒを使用する方法とＩＣＣを使用する方法とは異なる可能性がある。各ツールは、異なる特徴付け情報を使用することができる。同様に、Ｄｅｓｉｇｎ  Ｃｏｍｐｉｌｅｒを使用する合成とＳｏＣ  Ｅｎｃｏｕｎｔｅｒを使用する配置及び経路指定とでは異なる情報を必要とする可能性がある。特徴付け情報は、自動操作によって発生させることができる。
【００７４】
少なくとも３つの制約セットを発生させることができる。例えば、１つの制約セットは合成に関し、１つの制約セットは配置及び経路指定（又はレイアウト設計）に関し、１つの制約セットはレイアウト後タイミング（又はタイミング検証）に関する。いくつかのセットは、複数の部分集合を有することができる。ＥＤＡツール又はＥＤＡシステムの構成に基づいて、より多くの又はより少ない制約セットを生成することができる。
【００７５】
合成セット及び配置及び経路指定セットは、図７の７０６に示すように、１つ又はそれよりも多くの自己矛盾のない制約セットを含むことができる。制約セットは、速度非依存相対タイミング制約セット又は速度非依存と遅延不感の両方のＲＴ制約から生成することができる。制約セットは、マージンと合成及び配置及び経路指定が制約を如何に利用するかということとに基づくＲＴ制約の部分集合を含むことができる。制約及び制約セットを決定するための様々なアルゴリズム及び方法を開発することができる。本明細書に説明する技術は、様々な手段によって過去に生成された制約セットを使用するためのアルゴリズム、工程、フロー、方法、ＥＤＡのツール及びシステムを与える。
【００７６】
レイアウト後タイミング制約は、完全な速度非依存かつ遅延不感の制約セットを使用することができる。一例において、レイアウト後タイミング制約は、Ｓｙｎｏｐｓｙｓ設計制約（．ｓｄｃ）の和が、両方のセット内のＲＴ制約に加えてターゲット遅延タイミング情報をカバーする自己矛盾のない制約の複数の部分集合を含むことができる。
【００７７】
図７の７０８に示すように、指定された回路構造の修正を阻止するための制約（例えば、ｓｅｔ_ｄｏｎｔ_ｔｏｕｃｈという制約又は指令）を生成することができる。これらの回路構造的修正阻止制約は、合成ツール及び配置及び経路指定ツールが設計の構造を修正しないことを確実にすることができる。特定のゲート構造が変化した場合に、特徴付け結果を無効にすることができるように、設計の特定のゲート構造に基づく正式検証を使用することができる。図２９は、モジュール内で指定される要素の構造的修正を阻止するためのｃ_ｅｌｅｍｅｎｔ_ｎａｎｄモジュールに対する制約セット２９００を示している。他の例では、他の表現を有効とすることができる。
【００７８】
図７の７１０に示すように、システムのタイミンググラフが有向非循環グラフ（ＤＡＧ）であることを確実にするために、モジュール内のタイミング及びタイミングのアーキテクチャ使用を無効にすることができる。特徴付けターゲットのモジュールとモジュールがシステム内に使用される手法の両方に対して、システムアーキテクチャは、ＤＡＧとして表すことができる。サイクルを切断する方法は、モジュール及びその使用に依存して異なる可能性がある。表現式４は、ｃ_ｅｌｅｍｅｎｔ_ｎａｎｄに対するサイクルカットの例を示している。他の例では、他の表現を可能にすることができる。
set_disable_timing -from B -to Z [find -hier cell c_element_nand3]
set_disable_timing -from C -to Z [find -hier cell c_element_nand3]      表現式４
【００７９】
図７の７１８に示すように、相対タイミング制約に基づいて遅延ターゲット値を生成することができる。一例において、遅延ターゲット値を生成する段階を自動化することができる。例えば、図２５、図２８、及び表現式３のＲＴ制約セットは、Ｓｙｎｏｐｓｙｓ設計制約（．ｓｄｃ）にマップすることができる。表現式５は、Ｓｙｎｏｐｓｙｓ設計制約（．ｓｄｃ）へのＲＴ制約セットのマッピングを助けるために使用することができる制約を示している。
rtc = rtc0: y+ => ay- + m < a-;        表現式５
【００８０】
高速なアクセスに向けて、かつ発生される制約の完全性及び一貫性を確実にするために、制約を表すデータベース、ファイル、又は他の方法を開発することができる。
【００８１】
一例において、２つの経路のためのターゲット遅延及びマージン（ｍ）を決定することができる。ターゲット遅延及びマージンは、設計に基づくことができる。一例において、ゲートの平均遅延を１８０ｎｍ設計において７５ピコ秒（ｐｓ）と仮定することができ、経路の間で少なくとも１つの完全なゲート遅延であるマージンを使用することができる。ｙ＋からａｙ−までの遅延を７５ｐｓと仮定することができる。その結果、ｙ＋からａ−までの遅延を少なくとも１５０ｐｓとすることができる。ターゲット値でぁ内及びマージンの決定は、設計、技術ノード、又はライブラリに基づくことができ、特定の設計収量をもたらすことができる。
【００８２】
遅延をナノ秒で指定する表現式６及び図３４に示すように、ｐｏｄからｐｏｄ0までの遅延をｓｅｔ_ｍａｘ_ｄｅｌａｙ指令を用いてモデル化することができる。表現式６の例では、ＲＴ制約におけるｙがモジュール内のゲートインスタンスｃ_ｅｌｅｍｅｎｔ_ｎａｎｄ３のピンＺにマップされ、ａｙが同じゲートインスタンスのピンＢにマップされる、回路の特定のライブラリピンへのマッピングを発生させることができる。図２２に指定されるマッピングファイルを使用することができる。端点を何処に選択するかといういくつかの選択肢を使用することができる。表現式６に示す制約の−ｆａｌｌ_ｔｏ端点は、c_element_nand3/B又はc_element_nand1/Z（図１９）のいずれかとすることができ、それによって設計方式に基づいて異なるマージン及び設計ロバスト性、及び端点の間のより明確な整合をもたらすことができる。別の例において、−ｆａｌｌ_ｔｏ端点に対してc_element_nand1/Zが使用される場合に、この制約及び表現式６の制約における端点に対して同じゲートを使用することができる。
set_max_delay 0.075 -rise_from c_element_nand3/Z 
-fall_to c_element_nand3/B        表現式６
【００８３】
ｐｏｄからｐｏｄ1までの遅延は、遅延をナノ秒で指定する表現式７及び図３４に示すように、ｓｅｔ_ｍｉｎ_ｄｅｌａｙ指令を用いてモデル化することができる。表現式７の例では、ＲＴ制約におけるｙがモジュール内のゲートインスタンスc_element_nand3のピンＺにマップされ、ａがゲートインスタンスc_element_nand1のピンＡにマップされる、回路の特定のライブラリピンへのマッピングを発生させることができる。マッピングの決定は、正式検証エンジンによって決定される正式検証制約とこれらの制約の因果経路とに基づくことができる。
set_min_delay 0.150 -rise_from c_element_nand3/Z 
-fall_to c_element_nand1/A        表現式７
【００８４】
ｍａｘ_ｄｅｌａｙ制約とｍｉｎ_ｄｅｌａｙ制約は、互いにｓｄｃフォーマットで関連付けるためのプラグマ（例えば、マージンプラグマ）を使用することができる。このプラグマは、コンパイラ又はあらゆる他のツール（例えば、ＥＤＡツール）に対して意味を有することができる標準化コメント形式のものとすることができる。ｍａｘ_ｄｅｌａｙ制約とｍｉｎ_ｄｅｌａｙ制約を互いに関連付けて事象間の十分なマージン（例えば、７５ｐｓ）を確実にするために、これらの制約の拡張バージョンを使用することができる。ｍａｘ_ｄｅｌａｙ制約とｍｉｎ_ｄｅｌａｙ制約の間の関連付けに向けて、コメント（例えば、「＃」文字に続く）内にあるプラグマ（例えば、「ｍａｒｇｉｎ」プラグマ）を使用することができる。表現式８及び図３４は、「ｍａｒｇｉｎ」プラグマを示している。他の例では、様々なプラグマ及びプラグマにおける挙動を使用することができる。表現式８のプラグマは、最初に最大遅延経路を次いで最小遅延経路を列記することができる。マージンに最大遅延経路を加えた和は、最小遅延経路よりも小さいか又はそれに等しいとすることができる。別のプラグマ（例えば、「ｄｐｍａｒｇｉｎ」プラグマ）は、最大遅延経路の半分にマージンを加えたものを最小遅延経路よりも小さくすることができる。他の例では、他のマージン挙動を定義及び指定することができる。別の例において、各相対タイミング制約に対して少なくとも１つのマージンを定めることができる。別の構成において、２０１３年７月１８日出願の「相対タイミングアーキテクチャ（ＲＥＬＡＴＩＶＥ  ＴＩＭＩＮＧ  ＡＲＣＨＩＴＥＣＴＵＲＥ）」という名称の現在特許出願中の国際特許出願出願番号ＰＣＴ／ＵＳ２０１３／０５１１６０に記載されているように、タイミング閉鎖を正しく実施するためにＣＡＤ内で「＃ｍａｒｇｉｎ」プラグマ又は「＃ｄｐｍａｒｇｉｎ」プラグマを使用することができる。
#margin 0.075 -rise_from c_element_nand3/Z -fall_to c_element_nand3/B 
-rise_from c_element_nand3/Z -fall_to c_element_nand1/A      表現式８
【００８５】
別の構成において、様々な制約セット（例えば、合成、配置及び経路指定、又はレイアウト後のタイミング制約セット）内にマージン制約が存在しない場合がある。例えば、特定の相対タイミング制約において最小遅延が最大遅延の６分の１である場合に、合成に向けて生成される制約セット内でマージン制約を指定する必要がない場合がある。
【００８６】
図３０に示すように、入力に対する端点マッピングセットを生成することができる。一例において、入力に対する端点マッピングセットは、モジュールの切断セットに基づいて信号に対するピン名称を決定するための参照のためのデータベースに存在することができる。入力に対する端点マッピングセットは、使用されるツール及び切断セットに基づいて異なるとすることができる。例えば、Ｄｅｓｉｇｎ  Ｃｏｍｐｉｌｅｒは、ｓｅｔ_ｍａｘ_ｄｅｌａｙ制約及びｓｅｔ_ｍｉｎ_ｄｅｌａｙ制約の端点においてタイミンググラフを切断することができるが、ＳｏＣ  Ｅｎｃｏｕｎｔｅｒはそうすることができない。タイミンググラフカットは、ゲートに対して使用に依存して異なる端点定義をもたらすことができる。図３０は、使用される制約セットに基づく設計内の信Ａ及びＢに対する端点の定義３０００を示している。一例において、設計１９００（図１９）における端点を図３０内で指定することができる。これらの定義は、設計内の実際の入力ゲート端点の部分集合の完全なセットとすることができる。図３０に示すように、入力ピンと実際のピン名称の間で表現及びマッピングを行うための機構を指定することができる。
【００８７】
サイクルカット又はネットリスト接続性に起因して、全ての入力端点が出力まで通過することができるわけではない。図３１に示すように、出力ピン３１００にマップされる入力信号ピンセットを指定することができる。
【００８８】
クロックを駆動するピンは、これらのモジュール内の他のピンとは異なる定められた挙動を有することができる。「＄ｎａｍｅ」構文は、端点とピンとのマッピングを一般的なものとし、実行時に設計及びモジュールに基づいてマップすることを可能にすることができる。
【００８９】
ｓｄｃスクリプト内に使用される遅延に対して変数を与えることができる。一例において、ＥＤＡツールは、Ｔｏｏｌ  Ｃｏｍｍａｎｄ  Ｌａｎｇｕａｇｅ（Ｔｃｌ）変数をサポートすることができ、従って、図３２に示すように、遅延をＴｃｌ変数３２００として指定することができる。その結果、表現式９及び図３４に示すように、マージン又は遅延をこれらのＴｃｌ変数を用いて指定することができる。Ｔｃｌは、ラピッドプロトタイピング、スクリプト記述アプリケーション、及び埋め込みシステムプラットフォームに対して使用される試験に対して使用することができる。
set_max_delay $GATE_DELAYS_1 -rise_from c_element_nand3/Z 
-fall_to c_element_nand3/B        表現式９
【００９０】
相対タイミング端点が現在のモジュールの外側に存在する場合に、相対タイミング端点制約マッピングで上流のインスタンス、局所インスタンス、及び下流のインスタンスを参照するために構文修正を使用することができる。一例において、コントローラ３４２、３４４、３４６（図３）をＳｕｔｈｅｒｌａｎｄ  Ｍｉｃｒｏｐｉｐｅｌｉｎｅｓとして構成することができる。これらのコントローラは、ｃ要素とインバータとを含むことができる。図３３は、Ｖｅｒｉｌｏｇで指定されたコントローラに対する設計３３００を示している。コントローラ３４４への左要求（ｌｒ）の到着から、データ３２０がクロック信号３３０の前にラッチ３１６に到着することを確実にするために、表現式１０の相対タイミング制約（図３４にも示す）を使用することができる。
rtc = rtc2 $i1/$lr => $i2/$d < $i2/$clk        表現式１０
【００９１】
近い設計インスタンスの間のマッピングを与えることができる。変数＄ｉ１が、特徴付け中の局所インスタンス（又は現在のインスタンス）（例えば、図３の３４４）を参照する一般的な参照機構を使用することができる。変数＄ｉ２は、この局所インスタンスに近い下流のインスタンス（例えば、３４６及び３１６）を参照することができ、＄ｉ０は、上流のインスタンス（例えば、３４２及び３１２）を参照することができる。下流インスタンス及び上流インスタンスに対する定義は、特徴付け中のコントローラ（例えば、Ｓｕｔｈｅｒｌａｎｄ  Ｍｉｃｒｏｐｉｐｅｌｉｎｅ  ｓｍｐ）と、コントローラによって制御されている関連付けられたラッチ又はフロップのバンク（例えば、３４２による３１２、３４４による３１４、及び３４６による３１６）とを含むことができる。一般的に、下流のインスタンスは大きい数（例えば、＄ｉ２）を使用することができ、上流のインスタンスは小さい数（例えば、＄ｉ０）を使用することができ、局所インスタンスは、上流のインスタンスと下流のインスタンスの間の数（例えば、＄ｉ１）を使用することができる。
【００９２】
相対タイミング制約及びマップされる制約３４００を図３４に示すように表すことができるように、上述の近い設計インスタンスの間の相対マッピングは、全ての制約に拡張することができる。インスタンス参照の相対マッピングは、設計内の実際のインスタンスへのこれらの制約のマッピングを簡易化することができる。自己充足的制約は、自己参照タイミング制約を確実にするために、＄ｉ１インスタンス名を使用することができる。コントローラ３４４に対する＄ｉ１／ｃｌｋがラッチバンク３１４内のクロックピンを参照することができるように、クロック制約は、局所制御クロックピンにマップすることができる。
【００９３】
セルの物理レイアウトは、セル面積を決定することができる。本明細書に説明する技術は、回路設計者又はＣＡＤツールが、設計内に使用すべき特徴付けられたモジュールを選択するのを助けるための面積情報を与えることができる。ＩＣＣ又はＳｏＣ  Ｅｎｃｏｕｎｔｅｒのようないずれかの物理設計ツールを使用することができる。面積は、表現式１１に示すように、プラグマを用いて測定及び報告することができる。
AREA 138 um2        表現式１１
【００９４】
性能及び電力を決定するために、レイアウト後設計をシミュレートすることができる。本明細書に説明する技術は、設計者又はＣＡＤツールが設計内に使用すべき特徴付けられたモジュールを選択するのを助けるためのタイミング情報を与えることができる。ＭｏｄｅｌＳｉｍのようないずれかのシミュレーションツールを使用することができる。シミュレーションは、バックアノテートされた遅延及び寄生遅延を含むことができるセルの物理レイアウトからのレイアウト後の値を使用することができる。図３５は、レイアウト後の値の報告３５００を示している。
【００９５】
追加のシミュレーション情報を含めることができる。遅延は、最大遅延又は最小遅延を含むことができ、いずれかのタイプの遅延を必要とする場合に最大遅延をＭＡＸ_ＤＥＬＡＹとして指定することができ、又は最小遅延をＭＩＮ_ＤＥＬＡＹとして指定することができる。最大遅延又は最小遅延は、セルライブラリ内の他のゲートと同様に信号の傾き／負荷テーブルで特徴付けることができる。
【００９６】
非同期モジュールの特徴付けに対して、様々な相対タイミングによる制約、工程、及び報告、例えば、速度非依存ＲＴ制約セット、遅延不感ＲＴ制約セット、これらの制約セットの各々に対する因果経路、適度なサイズの負荷におけるピンからピンまでのいくつかのレイアウト後遅延、設計の内部ゲートにおける典型的な遅延、ＲＴ制約経路のためのターゲット遅延、ＲＴ制約における収束点（ｐｏｃ）の間で示されたマージン、合成及び配置及び経路指定に基づく制約の臨界性、モジュールの全面積、モジュールにおけるサイクル時間、モジュールにおける作動エネルギ、モジュールの正式仕様、モジュールにおけるＣＣＳ実施、ｓｅｔ_ｓｉｚｅ_ｏｎｌｙ制約及びｓｅｔ_ｄｏｎｔ_ｔｏｕｃｈ制約、ｓｅｔ_ｄｉｓａｂｌｅ_ｔｉｍｉｎｇ制約、クロックピン及び必要に応じて他のピンに対する特殊条件を有する設計における入力から出力までの経路に対するＰＲＯＶＩＤＥＳ制約セット、設計の入力に対するゲート端点セット、ｓｅｔ_ｍａｘ_ｄｅｌａｙへのＲＴ制約セットのマッピング、ｓｅｔ_ｍｉｎ_ｄｅｌａｙプラグマ及び＃ｍａｒｇｉｎプラグマ、又は近接ゲートに端点をマップする方法（例えば、＄ｉ０、＄ｉ１、又は＄ｉ２の方式）を発生させることができる。
【００９７】
本明細書に説明する技術は、上述の特徴付けられたモジュールを使用するシステムの合成、物理設計、及び検証において業界標準ＥＤＡツールの使用を可能にするＳｙｎｏｐｓｙｓ設計制約（ｓｄｃ）及び追加の方法を生成するのに十分とすることができる。
【００９８】
別の例は、図３６の流れ図に示すように、クロック式電子設計自動化（ＥＤＡ）ツールフローの使用を可能にする相対タイミング特徴付けのための方法３６００を提供する。本方法は、機械又はコンピュータ回路上で少なくとも１つのコンピュータ可読媒体又は１つの持続性機械可読ストレージ媒体上に含まれる命令として実行することができる。ブロック３６１０のように、本方法は、発散点（ｐｏｄ）事象と、第１のｐｏｃ事象（ｐｏｃ0）及び第２のｐｏｃ事象（ｐｏｃ1）を含む２つの収束点（ｐｏｃ）事象との間の回路モデル内のセルの相対タイミング制約（ＲＴＣ）を識別する作動を含む。ブロック３６２０のように、ｐｏｄ事象と第１のｐｏｃ事象の間の第１のｐｏｃ事象経路に対する最大ターゲット遅延を発生させる作動が続く。本方法の次の作動は、ブロック３６３０のように、ｐｏｄ事象と第２のｐｏｃ事象の間の第２のｐｏｃ事象経路に対する最小ターゲット遅延を発生させる段階とすることができる。本方法は、ブロック３６４０のように、最大ターゲット遅延と最小ターゲット遅延とを用いて回路モデルを最適化する段階を更に含むことができる。
【００９９】
一例において、相対タイミングを識別する作動は、相対タイミングをＳｙｎｏｐｓｙｓ設計制約（．ｓｄｃ）ファイルフォーマットにマップする段階を更に含むことができる。別の例において、ｐｏｄが発散点事象であり、ｐｏｃ0が、適正な回路作動に対して第２の収束点事象ｐｏｃ1の前に起きる第１の収束点事象であり、マージンｍが、ｐｏｃ0とｐｏｃ1の間の最小分離である時に、相対タイミングは、
2015524589.tif 000007
によって表すことができる。ｐｏｄ、ｐｏｃ0、及びｐｏｃ1の各々は、入力、出力、又はピン接続部とすることができる。
【０１００】
別の構成において、本方法は、マージンｍに基づいて最大ターゲット遅延を最小ターゲット遅延に関連付けるマージンプラグマを発生させる段階を更に含む。別の例において、ターゲット遅延を発生させる段階の前に、本方法は、回路モデルのセル内で無傷状態に保つべき相対タイミング経路を識別する段階と、合成と配置及び経路指定とのＥＤＡツールフロー中に使用される相対タイミング経路に対して「修正禁止」制約を発生させる段階とを更に含むことができる。セルはゲートを含むことができ、「修正禁止」制約は、セルの構造的修正を阻止するが、セルの駆動強度の最適化を可能にするｓｅｔ_ｓｉｚｅ_ｏｎｌｙ制約を含むことができ、又はセルの修正を禁止するｓｅｔ_ｄｏｎｔ_ｔｏｕｃｈ制約を含むことができる。
【０１０１】
別の構成において、本方法は、セルの入力ピン名称への入力端点のための端点マッピングを発生させる段階と、入力端点を出力ピン名称にマップする段階とを更に含むことができる。別の例において、回路モデルを最適化する作動は、相対タイミング制約を満足させるように回路内に遅延要素を追加する段階を更に含むことができる。
【０１０２】
別の構成において、本方法は、セルの内側の局所端点とセルの外側にある外部端点とをマップする段階と、局所端点と外部端点の間の外部相対タイミング制約（ＲＴＣ）を発散点（ｐｏｄ）事象と２つの収束点（ｐｏｃ）とによって識別する段階と、外部ＲＴＣに対する外部最大ターゲット遅延と外部最小ターゲット遅延とを生成する段階と、外部最大ターゲット遅延と外部最小ターゲット遅延とを用いて回路モデルを最適化する段階とを更に含むことができる。局所端点は、外部端点からの出力を使用することができ、又は外部端点に入力を与える。
【０１０３】
別の例は、図３７の流れ図に示すように、相対タイミング特徴付けに向けて構成されたクロック式ツールフローのための電子設計自動化（ＥＤＡ）ツールのコンピュータ回路の機能３７００を提供する。この機能は、方法として実施することができ、又は少なくとも１つのコンピュータ可読媒体又は１つの持続性機械可読ストレージ媒体上に含まれる命令として機械上で実行することができる。コンピュータ回路は、ブロック３７１０のように、ゲートを含む回路モデルのセル内で無傷状態に保つべき相対タイミング経路を識別するように構成することができる。コンピュータ回路は、ブロック３７２０のように、相対タイミング経路に対する「修正禁止」制約を発生させるように更に構成することができる。コンピュータ回路は、ブロック３７３０のように、セルに対して合成と配置及び経路指定とのＥＤＡツールフローを用いて回路モデルを特徴付けるように更に構成することができる。
【０１０４】
一例において、「修正禁止」制約は、セルのゲート論理挙動の修正を阻止するが、セルの駆動強度の最適化を可能にするｓｅｔ_ｓｉｚｅ_ｏｎｌｙ制約を含むことができ、又はセルの修正を禁止するｓｅｔ_ｄｏｎｔ_ｔｏｕｃｈ制約を含むことができる。
【０１０５】
別の例において、コンピュータ回路は、回路モデルのセルライブラリ正式モデルを生成するように更に構成することができる。セルライブラリ正式モデルは、半モジュール式モデル又はブールモデルと、ブール論理を特定の状態に対する関数の入力及び出力にマップするための論理ヘッダファイルと、マスター名称表現をインスタンスピン名称にマップするためのピンヘッダファイルとを含むことができる。マスター名称表現は、構造的ハードウエア記述言語（ＨＤＬ）を使用することができ、インスタンスピン名称は、正式モデルインスタンスを使用することができる。正式モデルは、通信システム計算法（ＣＣＳ）のインスタンス、状態グラフ、及び記号的遷移グラフ（ＳＴＧ）を使用することができる。コンピュータ回路は、初期状態と入力及び出力のセットとを含む回路モデルの設計モジュール正式モデルを発生させ、回路モデルにおける入力と出力の間の因果経路を発生させ、回路モデルにおける合成に向けて速度非依存相対タイミング制約を発生させ、かつ回路モデルに関する検証のためのワイヤ遅延を含む遅延不感相対タイミング制約を発生させるように更に構成することができる。速度非依存相対タイミング制約と遅延不感相対タイミング制約は、回路モデルの正しい作動を与えることができる。
【０１０６】
別の例において、コンピュータ回路は、回路モデルに対するアーキテクチャ性能制約を発生させるように更に構成することができる。アーキテクチャ性能制約は、合成制約と、配置及び経路指定制約と、レイアウト後タイミング制約とを含むことができる。合成制約、配置及び経路指定制約、及びレイアウト後タイミング制約は、速度非依存相対タイミング制約と、ワイヤ遅延を含む遅延不感相対タイミング制約とを使用することができる。
【０１０７】
別の例において、コンピュータ回路は、「修正禁止」制約を用いて相対タイミング経路を保持しながら有向非循環グラフ（ＤＡＧ）を生成するために、．ｃｓｔｒフォーマットを用いて回路モデルにおける相対タイミングサイクルを切断するように更に構成することができる。「修正禁止」制約は、「ｓｅｔ_ｄｉｓａｂｌｅ_ｔｉｍｉｎｇ」制約を含むことができる。別の構成において、コンピュータ回路は、サイクル時間、前方又は後方待ち時間、パイプライン化特性、内部ゲートの立ち上がり又は立ち下がりの時間、有向非循環グラフ（ＤＡＧ）遅延、作動毎の電力及びエネルギ、又は挙動的なパイプライン化特性に対する面積修正パイプライン化特性を含む特徴付けパラメータを用いてセルを特徴付けし、特徴付けパラメータが変化した場合に、ライブラリ（．ｌｉｂ）ファイルを用いてセルライブラリ遅延ファイル内のセルに対する特徴付けモジュールを修正するように更に構成することができる。
【０１０８】
別の例において、コンピュータ回路は、ｐｏｄが発散点事象であり、ｐｏｃ0が、適正な回路作動に対して第２のｐｏｃ事象ｐｏｃ1の前に起きる第１のｐｏｃ事象であり、マージンｍが、ｐｏｃ0とｐｏｃ1の間の最小分離である時に、
2015524589.tif 000008
によって表される発散点（ｐｏｄ）事象と２つの及び収束点（ｐｏｃ）事象との間の回路モデル内の相対タイミング制約（ＲＴＣ）を識別し、ｐｏｄ事象と第１のｐｏｃ事象の間の第１のｐｏｃ事象経路に対する最大ターゲット遅延を発生させ、ｐｏｄ事象と第２のｐｏｃ事象の間の第２のｐｏｃ事象経路に対する最小ターゲット遅延を発生させ、かつ最大ターゲット遅延と最小ターゲット遅延とを用いて回路モデルを最適化するように更に構成することができる。一構成において、回路モデルを最適化するように構成されたコンピュータ回路は、相対タイミング制約を満足させるように遅延要素をセル内に追加するように更に構成することができる。別の例において、コンピュータ回路は、入力ピン名称への入力端点のための端点マッピングを発生させ、入力端点を出力ピン名称にマップするように更に構成することができる。
【０１０９】
図３８は、プロセッサ３８１４を含む相対タイミング制約発生に向けて構成されたクロック式ツールフローのための電子設計自動化（ＥＤＡ）ツール例３８１２を示している。一例において、プロセッサは、図３６の３６００で記述された方法を実施するように構成することができる。別の例において、プロセッサは、図３７の３７００で記述されたコンピュータ回路を実施するように構成することができる。
【０１１０】
一例において、プロセッサ３８１４（図３８）は、発散点（ｐｏｄ）事象と、第１のｐｏｃ事象（ｐｏｃ0）及び第２のｐｏｃ事象（ｐｏｃ1）を含む２つの収束点（ｐｏｃ）事象との間の回路モデル内のセルの相対タイミング制約（ＲＴＣ）を識別し、ｐｏｄ事象と第１のｐｏｃ事象の間の第１のｐｏｃ事象経路に対する最大ターゲット遅延を発生させ、ｐｏｄ事象と第２のｐｏｃ事象の間の第２のｐｏｃ事象経路に対する最小ターゲット遅延を発生させ、第１のｐｏｃ事象と第２のｐｏｃ事象の間の最小分離を表すマージンプラグマを発生させ、かつ最大ターゲット遅延と、最小ターゲット遅延と、マージンプラグマとを用いて回路モデルを最適化するように構成することができる。
【０１１１】
別の例において、ｐｏｄが発散点（ｐｏｄ）事象であり、ｐｏｃ0が、適正な回路作動に対して第２のｐｏｃ事象ｐｏｃ1の前に起きる第１の収束点（ｐｏｃ）事象であり、マージンプラグマ内に表されるマージンｍが、ｐｏｃ0とｐｏｃ1の間の最小分離である時に、相対タイミング制約（ＲＴＣ）は、
2015524589.tif 000009
によって表すことができる。
【０１１２】
別の構成において、プロセッサ３８１４は、ゲートを含む回路モデルのセル内で無傷状態に保つべき相対タイミング経路を識別し、かつ合成と配置及び経路指定とのＥＤＡツールフロー中に使用される相対タイミング経路に対して「修正禁止」制約を発生させるように更に構成することができる。「修正禁止」制約は、セルの構造的修正を阻止するが、セルの駆動強度の最適化を可能にするｓｅｔ_ｓｉｚｅ_ｏｎｌｙ制約を含むことができ、又はセルの修正を禁止するｓｅｔ_ｄｏｎｔ_ｔｏｕｃｈ制約を含むことができる。
【０１１３】
別の例において、回路モデルを最適化するように構成されたプロセッサ３８１４は、相対タイミング制約を満足させるように遅延要素をセル内に追加し、入力ピン名称への入力端点のための端点マッピングを発生させ、かつ入力端点を出力ピン名称にマップするように更に構成することができる。
【０１１４】
別の構成では、ＥＤＡツール３８１２を使用する電子設計自動化（ＥＤＡ）システム３８１０は、アーキテクチャ設計ツール３８２０、合成ツール３８２２、配置及び経路指定ツール、レイアウト後タイミングツール、物理設計ツール３８２４、又はタイミング検証ツール３８２６を含むことができる。ＥＤＡツールは、ハードウエア記述言語（ＨＤＬ）、超高速集積回路（ＶＨＳＩＣ）ＨＤＬ（ＶＨＤＬ）、Ｖｅｒｉｌｏｇ、セルライブラリ、Ｓｙｎｏｐｓｙｓ設計制約（．ｓｄｃ）、Ｓｙｎｏｐｓｙｓ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｃｏｍｐｉｌｅｒ（ＩＣＣ）、Ｅｎｃｏｕｎｔｅｒ  Ｄｉｇｉｔａｌ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ（ＥＤＩ）、Ｃａｄｅｎｃｅ  Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ（ＳｏＣ）Ｅｎｃｏｕｎｔｅｒ、Ｃｏｎｃｕｒｒｅｎｃｙ  Ｗｏｒｋｂｅｎｃｈ、Ｄｅｓｉｇｎ  Ｃｏｍｐｉｌｅｒ、Ｅｎｃｏｕｎｔｅｒ  Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ（ＲＴＬ）、Ｘｉｌｉｎｘ  Ｉｎｔｅｇｒａｔｅｄ  Ｓｏｆｔｗａｒｅ  Ｅｎｖｉｒｏｎｍｅｎｔ（ＩＳＥ）、Ｘｉｌｉｎｘ  Ｓｙｎｔｈｅｓｉｓ  Ｔｏｏｌ（ＸＳＴ）、Ｑｕａｒｔｕｓ、Ｓｙｎｐｌｉｆｙ、ＬｅｏｎａｒｄｏＳｐｅｃｔｒｕｍ、Ｐｒｅｃｉｓｉｏｎ、Ｐｒｉｍｅｔｉｍｅ、Ｔｅｍｐｕｓ、Ｍｏｄｅｌｓｉｍ、Ｅｌｄｏ、Ｓｉｍｕｌａｔｉｏｎ  Ｐｒｏｇｒａｍ  ｗｉｔｈ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｅｍｐｈａｓｉｓ（ＳＰＩＣＥ）、Ｖｅｒｉｌｏｇ  Ｃｏｍｐｉｌｅｄ  Ｓｉｍｕｌａｔｏｒ（ＶＣＳ）、又はＣａｄｅｎｃｅ  Ｖｅｒｉｌｏｇ−Ｌ  ｔｉｅｒ  ｅｘｔｅｎｓｉｏｎ（Ｖｅｒｉｌｏｇ−ＸＬ）を使用することができる。
【０１１５】
別の例において、集積回路（ＩＣ）を発生させるために、ＥＤＡツール３８１２を使用する電子設計自動化（ＥＤＡ）システム３８１０を使用することができる。ＥＤＡシステムは、アーキテクチャ設計ツール３８２０と、合成ツール３８２２と、物理設計ツール３８２４と、タイミング検証ツール３８２６とを含むことができる。アーキテクチャ設計ツールは、ハードウエア記述言語（ＨＤＬ）を用いて特徴付け情報、セルライブラリ情報、及びアーキテクチャ性能ターゲットを符号化することによって集積回路（ＩＣ）アーキテクチャを設計かつ特徴付けるためのＥＤＡツールを含むことができる。一例において、アーキテクチャ設計ツールは、Ｖｅｒｉｌｏｇ、Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ（ＨＤＬ）、又は超高速集積回路（ＶＨＳＩＣ）ＨＤＬ（ＶＨＤＬ）を使用することができる。合成ツールは、ＨＤＬの挙動を実施するハードウエア論理を生成するためのＥＤＡツールを含むことができる。一例において、合成ツールは、Ｓｙｎｏｐｓｙｓ設計制約（．ｓｄｃ）、Ｄｅｓｉｇｎ  Ｃｏｍｐｉｌｅｒ、Ｅｎｃｏｕｎｔｅｒ  Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ（ＲＴＬ）、Ｘｉｌｉｎｘ  Ｉｎｔｅｇｒａｔｅｄ  Ｓｏｆｔｗａｒｅ  Ｅｎｖｉｒｏｎｍｅｎｔ（ＩＳＥ）、Ｘｉｌｉｎｘ  Ｓｙｎｔｈｅｓｉｓ  Ｔｏｏｌ（ＸＳＴ）、Ｑｕａｒｔｕｓ、Ｓｙｎｐｌｉｆｙ、ＬｅｏｎａｒｄｏＳｐｅｃｔｒｕｍ、又はＰｒｅｃｉｓｉｏｎを使用することができる。物理設計ツールは、ハードウエア論理に基づいてハードウエア回路を配置及び経路指定するためのＥＤＡツールを含むことができる。一例において、物理設計ツールは、Ｓｙｎｏｐｓｙｓ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｃｏｍｐｉｌｅｒ（ＩＣＣ）、Ｃａｄｅｎｃｅ  Ｅｎｃｏｕｎｔｅｒ  Ｄｉｇｉｔａｌ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ（ＥＤＩ）、又はＣａｄｅｎｃｅ  Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ（ＳｏＣ）Ｅｎｃｏｕｎｔｅｒを使用することができる。タイミング検証ツールは、速度非依存タイミング制約及び遅延不感タイミング制約を用いて性能、正確性、及び収量に対してハードウエア回路を検証するためのＥＤＡツールを含むことができる。一例において、タイミング検証ツールは、Ｐｒｉｍｅｔｉｍｅ、Ｔｅｍｐｕｓ、Ｍｏｄｅｌｓｉｍ、Ｅｌｄｏ、Ｓｉｍｕｌａｔｉｏｎ  Ｐｒｏｇｒａｍ  ｗｉｔｈ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｅｍｐｈａｓｉｓ（ＳＰＩＣＥ）、Ｖｅｒｉｌｏｇ  Ｃｏｍｐｉｌｅｄ  Ｓｉｍｕｌａｔｏｒ（ＶＣＳ）、又はＣａｄｅｎｃｅ  Ｖｅｒｉｌｏｇ−Ｌ  ｔｉｅｒ  ｅｘｔｅｎｓｉｏｎ（Ｖｅｒｉｌｏｇ−ＸＬ）を使用することができる。
【０１１６】
様々な技術又はそのある一定の態様又は部分は、フロッピー（登録商標）ディスケット、コンパクトディスク読取専用メモリ（ＣＤ−ＲＯＭ）、ハードドライブ、持続性コンピュータ可読ストレージ媒体、又はあらゆる他の機械可読ストレージ媒体のような有形媒体内に実施されたプログラムコード（すなわち、命令）の形態を取ることができ、プログラムコードがコンピュータのような機械内にロードされて機械によって実行されると、機械は、様々な技術を実施するための装置になる。回路は、ハードウエア、ファームウエア、プログラムコード、実行可能コード、コンピュータ命令、及び／又はソフトウエアを含むことができる。持続性コンピュータ可読ストレージ媒体は、信号を含まないコンピュータ可読ストレージ媒体とすることができる。プログラム可能コンピュータ上でのプログラムコードの実行の場合に、コンピュータデバイスは、プロセッサと、プロセッサによって可読なストレージ媒体（揮発性及び不揮発性のメモリ及び／又は記憶要素を含む）と、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含むことができる。揮発性及び不揮発性のメモリ及び／又は記憶要素は、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラマブル読取専用メモリ（ＥＰＲＯＭ）、フラッシュドライブ、光ドライブ、磁気ハードドライブ、固体ドライブ、又は電子データを格納するための他の媒体とすることができる。ノード及び無線デバイスは、送受信機モジュール（すなわち、送受信機）、カウンタモジュール（すなわち、カウンタ）、処理モジュール（すなわち、プロセッサ）、及び／又はクロックモジュール（すなわち、クロック）又はタイマモジュール（すなわち、タイマ）を含むことができる。本明細書に説明する様々な技術を実施又は利用することができる１つ又はそれよりも多くのプログラムは、アプリケーションプログラミングインタフェース（ＡＰＩ）、再使用可能制御を使用することができる。そのようなプログラムは、コンピュータシステムと通信するための高レベル手順型プログラミング言語又はオブジェクト指向プログラミング言語に実施することができる。しかし、プログラムは、必要に応じてアセンブリ又は機械言語に実施することができる。いかなる場合にも、言語は、コンパイル実行言語又はインタープリター実行言語とすることができ、ハードウエア実施と組み合わせることができる。
【０１１７】
本明細書に説明する機能ユニットのうちの多くのものを特にこれらのユニットの実施独立性を強調するためにモジュールとラベル付けしたことを理解しなければならない。例えば、モジュールは、特別仕様の超大規模集積回路（ＶＬＳＩ）回路又はゲートアレイ、論理チップ、トランジスタ、又は他の離散構成要素のような汎用半導体を含むハードウエア回路として実施することができる。モジュールは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラム可能アレイ論理、プログラム可能論理デバイスなどのようなプログラム可能ハードウエアデバイスに実施することができる。
【０１１８】
モジュールは、様々なタイプのプロセッサによる実行のためのソフトウエアに実施することができる。例えば、識別される実行可能コードのモジュールは、例えば、オブジェクト、手順、又は関数として編成することができるコンピュータ命令から構成される１つ又はそれよりも多くの物理ブロック又は論理ブロックを含むことができる。しかし、識別されるモジュールの実行可能ファイルは、物理的に一緒に存在する必要はなく、論理的に互いに接続された場合にモジュールを構成し、このモジュールに対して記述された目的を実現する異なる場所に格納された異なる命令を含むことができる。
【０１１９】
実際には、実行可能コードのモジュールは、単一命令又は多くの命令とすることができ、一部の異なるコードセグメントにわたって。異なるプログラムの間で、かつ一部のメモリデバイスにわたって分配することさえ可能である。同様に、本明細書において作動データをモジュール内で識別して例示したが、これらの作動データは、あらゆる適切な形態で実施することができ、あらゆる適切なタイプのデータ構造内で編成することができる。作動データは、単一データセットとして収集することができ、又は異なる記憶デバイスを含む異なる場所にわたって分配することができ、少なくとも部分的には単にシステム又はネットワーク上の電子信号として存在することができる。モジュールは、望ましい機能を実施するように作動可能なエージェントを含む受動的又は能動的なものとすることができる。
【０１２０】
本明細書を通じての「例」又は「例示的」への参照は、その例に関して記述された特定の特徴、構造、又は特性が本発明の少なくとも１つの実施形態に含まれることを意味する。従って、本明細書にわたる様々な箇所における「一例において」という表現又は「例示的」という言葉の出現は、必ずしも全てが同じ実施形態を参照しているわけではない。
【０１２１】
本明細書に使用する場合に、複数の品目、構造要素、組成要素、及び／又は材料を便宜上共通のリスト内に提供することができる。しかし、これらのリストは、リストの各構成要素が別個の固有構成要素として個々に識別される場合と同じく解釈しなければならない。従って、そのようなリストの個々の構成要素は、反意の指示のない共通の群内での提示ということだけに基づいて、同じリストのいずれかの他の構成要素の事実上の均等物であると解釈すべきではない。更に、本明細書では、本発明の様々な実施形態及び例をこれらの実施形態及び例の様々な構成要素に対する代替物と共に参照している場合がある。そのような実施形態、例、及び代替物を互いの事実上の均等物として解釈すべきではなく、本発明の別個の自立的な表現であると解釈しなければならないことを理解しなければならない。
【０１２２】
更に、説明する特徴、構造、又は特性は、１つ又はそれよりも多くの実施形態においてあらゆる適切な方式で組み合わせることができる。それに続く説明では、本発明の実施形態の完全な理解をもたらすためにレイアウト、距離、ネットワークの例のような多くの特定の詳細内容を提供している。しかし、当業者は、本発明をこれらの特定の詳細内容のうちの１つ又はそれよりも多くを用いずに又は他の方法、構成要素、レイアウトなどを用いて実施することができることを認識するであろう。この他としては、本発明の態様を不明瞭にすることを避けるために、公知の構造、材料、又は作動に対しては詳細には示しておらず、又は記載していない。
【０１２３】
上述の例は、１つ又はそれよりも多くの特定の用途における本発明の原理を示すものであるが、当業者には、実施の形態、使用、及び詳細内容において本発明の機能を作用することなく、かつ本発明の原理及び概念から逸脱することなく多くの修正を加えることができることが明らかであろう。従って、以下に示す特許請求の範囲による場合を除き、本発明を限定するように意図していない。
【符号の説明】
【０１２４】
７００  設計特徴付け工程
７０２  設計情報、仕様情報、＋アーキテクチャ情報
７０４  相対タイミング制約の発生
７０６  アーキテクチャ性能制約
７０８  相対タイミング制約セットの発生
【図１】
2015524589.tif 000013
【図２】
2015524589.tif 000014
【図３】
2015524589.tif 000015
【図４】
2015524589.tif 000016
【図５】
2015524589.tif 000017
【図６】
2015524589.tif 000018
【図７】
2015524589.tif 000019
【図８】
2015524589.tif 000020
【図９】
2015524589.tif 000021
【図１０】
2015524589.tif 000022
【図１１】
2015524589.tif 000023
【図１２】
2015524589.tif 000024
【図１３】
2015524589.tif 000025
【図１４】
2015524589.tif 000026
【図１５】
2015524589.tif 000027
【図１６】
2015524589.tif 000028
【図１７】
2015524589.tif 000029
【図１８】
2015524589.tif 000030
【図１９】
2015524589.tif 000031
【図２０】
2015524589.tif 000032
【図２１】
2015524589.tif 000033
【図２２】
2015524589.tif 000034
【図２３】
2015524589.tif 000035
【図２４】
2015524589.tif 000036
【図２５】
2015524589.tif 000037
【図２６】
2015524589.tif 000038
【図２７】
2015524589.tif 000039
【図２８】
2015524589.tif 000040
【図２９】
2015524589.tif 000041
【図３０】
2015524589.tif 000042
【図３１】
2015524589.tif 000043
【図３２】
2015524589.tif 000044
【図３３】
2015524589.tif 000045
【図３４】
2015524589.tif 000046
【図３５】
2015524589.tif 000047
【図３６】
2015524589.tif 000048
【図３７】
2015524589.tif 000049
【図３８】
2015524589.tif 000050
【手続補正書】
【提出日】平成27年3月20日(2015.3.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クロック式電子設計自動化（ＥＤＡ）ツールフローの使用を可能にする相対タイミング特徴付けの方法であって、
発散点（ｐｏｄ）事象と第１のｐｏｃ事象（ｐｏｃ0）及び第２のｐｏｃ事象（ｐｏｃ1）を含む２つの収束点（ｐｏｃ）事象との間の回路モデル内のセルの相対タイミング制約（ＲＴＣ）を識別する段階と、
前記ｐｏｄ事象と前記第１のｐｏｃ事象の間の第１のｐｏｃ事象経路に対する最大ターゲット遅延を発生させる段階と、
前記ｐｏｄ事象と前記第２のｐｏｃ事象の間の第２のｐｏｃ事象経路に対する最小ターゲット遅延を発生させる段階と、
前記最大ターゲット遅延と前記最小ターゲット遅延を用いて前記回路モデルを最適化する段階と、
を含むことを特徴とする方法。
【請求項２】
前記相対タイミングを識別する段階は、
前記相対タイミングをＳｙｎｏｐｓｙｓ設計制約（．ｓｄｃ）ファイルフォーマットにマップする段階、
を更に含む、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記相対タイミングは、ｐｏｄが、前記発散点事象であり、ｐｏｃ0が、適正な回路作動に対して第２の収束点事象ｐｏｃ1の前に起きる第１の収束点事象であり、マージンｍが、該ｐｏｃ0と該ｐｏｃ1の間の最小分離である時に、
2015524589.tif 000051
によって表されることを特徴とする請求項１及び請求項２のいずれか１項に記載の方法。
【請求項４】
前記マージンｍに基づいて前記最大ターゲット遅延を前記最小ターゲット遅延に関連付けるマージンプラグマを発生させる段階、
を更に含むことを特徴とする請求項３に記載の方法。
【請求項５】
ターゲット遅延を発生させる段階の前に、
ゲートを含む回路モデルのセル内を無傷に保つための相対タイミング経路を識別する段階と、
合成と配置及び経路指定とのＥＤＡツールフロー中に使用される前記相対タイミング経路に対して、前記セルの構造的修正を阻止するが、該セルの駆動強度の最適化を可能にするｓｅｔ_ｓｉｚｅ_ｏｎｌｙ制約を含み、又は該セルの修正を禁止するｓｅｔ_ｄｏｎｔ_ｔｏｕｃｈ制約を含む「修正禁止」制約を発生させる段階と、
を更に含むことを特徴とする請求項１から請求項４のいずれか１項に記載の方法。
【請求項６】
前記セルの入力ピン名称への入力端点のための端点マッピングを発生させる段階と、
前記入力端点を出力ピン名称にマップする段階と、
を更に含むことを特徴とする請求項１から請求項５のいずれか１項に記載の方法。
【請求項７】
前記回路モデルを最適化する段階は、
前記相対タイミング制約を満足させるために前記回路内に遅延要素を追加する段階、
を更に含む、
ことを特徴とする請求項１から請求項６のいずれか１項に記載の方法。
【請求項８】
前記セル内の局所端点と該セルの外側の外部端点をマップする段階であって、該局所端点が、該外部端点からの出力を使用するか又は該外部端点に入力を与える前記マップする段階と、
発散点（ｐｏｄ）事象と２つの収束点（ｐｏｃ）事象とを用いて前記局所端点と前記外部端点の間の外部相対タイミング制約（ＲＴＣ）を識別する段階と、
前記外部ＲＴＣに対する外部最大ターゲット遅延及び外部最小ターゲット遅延を発生させる段階と、
前記外部最大ターゲット遅延及び前記外部最小ターゲット遅延を用いて前記回路モデルを最適化する段階と、
を更に含むことを特徴とする請求項１から請求項７のいずれか１項に記載の方法。
【請求項９】
前記ｐｏｄ、前記ｐｏｃ0、及び前記ｐｏｃ1の各々が、入力、出力、又はピン接続部であることを特徴とする請求項１から請求項８のいずれか１項に記載の方法。
【請求項１０】
請求項１から請求項９のいずれか１項に記載の方法を実施するために実行されるようになった複数の命令、
を含むことを特徴とする機械可読ストレージ媒体。
【請求項１１】
相対タイミング特徴付けに向けて構成されたクロック式ツールフローのための電子設計自動化（ＥＤＡ）ツールであって、
ゲートを含む回路モデルのセル内を無傷に保つための相対タイミング経路を識別し、
前記相対タイミング経路に対する「修正禁止」制約を発生させ、かつ
前記セルに対して合成と配置及び経路指定とのＥＤＡツールフローを用いて前記回路モデルを特徴付ける、
ように構成されたコンピュータ回路手段、
を有することを特徴とするツール。
【請求項１２】
前記「修正禁止」制約は、前記セルのゲート論理挙動の修正を阻止するが、該セルの駆動強度の最適化を可能にするｓｅｔ_ｓｉｚｅ_ｏｎｌｙ制約を含み、又は該「修正禁止」制約は、該セルの修正を禁止するｓｅｔ_ｄｏｎｔ_ｔｏｕｃｈ制約を含むことを特徴とする請求項１１に記載のコンピュータ回路手段。
【請求項１３】
正式モデルが通信システム計算法（ＣＣＳ）インスタンス、状態グラフ、及び記号的遷移グラフ（ＳＴＧ）を使用する半モジュール式モデル又はブールモデル、
ブール論理を特定の状態に対する関数の入力及び出力にマップするための論理ヘッダファイル、及び
構造的ハードウエア記述言語（ＨＤＬ）表現を使用するマスター名称表現を正式モデルインスタンスを使用するインスタンスピン名称にマップするためのピンヘッダファイル、
を含む前記回路モデルのセルライブラリ正式モデルを発生させ、
初期状態と入力及び出力のセットと含む前記回路モデルの設計モジュール正式モデルを発生させ、
前記回路モデルに対して入力と出力の間の因果経路を発生させ、
前記回路モデルに対して合成のための速度非依存相対タイミング制約を発生させ、かつ
前記回路モデルに対する検証のためのワイヤ遅延を含む遅延不感相対タイミング制約を発生させ、前記速度非依存相対タイミング制約及び該遅延不感相対タイミング制約が、前記回路モデルの正しい作動を与える、
ように更に構成されることを特徴とする請求項１１及び請求項１２のいずれか１項に記載のコンピュータ回路手段。
【請求項１４】
合成制約、
配置及び経路指定制約、及び
レイアウト後タイミング制約、
を含み、前記合成制約、前記配置及び経路指定制約、及び前記レイアウト後タイミング制約が、速度非依存相対タイミング制約とワイヤ遅延を含む遅延不感相対タイミング制約とを使用する前記回路モデルに対するアーキテクチャ性能制約を発生させる、
ように更に構成されることを特徴とする請求項１１から請求項１３のいずれか１項に記載のコンピュータ回路手段。
【請求項１５】
「ｓｅｔ_ｄｉｓａｂｌｅ_ｔｉｍｉｎｇ」制約を含む「修正禁止」制約を用いて前記相対タイミング経路を維持しながら有向非循環グラフ（ＤＡＧ）を生成するために、．ｃｓｔｒフォーマットを用いて前記回路モデルに対する相対タイミングサイクルを切断する、
ように更に構成されることを特徴とする請求項１１から請求項１４のいずれか１項に記載のコンピュータ回路手段。
【請求項１６】
サイクル時間、前方又は後方待ち時間、パイプライン化特性、内部ゲートの立ち上がり又は立ち下がり時間、有向非循環グラフ（ＤＡＧ）遅延、作動毎の電力及びエネルギ、又は挙動的及びパイプライン化特性に対する面積修正パイプライン化特性を含む特徴付けパラメータを用いて前記セルを特徴付けし、かつ
特徴付けパラメータが変化した時にライブラリ（．ｌｉｂ）ファイルを用いてセルライブラリ遅延ファイル内の前記セルに対する特徴付けモジュールを修正する、
ように更に構成されることを特徴とする請求項１１から請求項１５のいずれか１項に記載のコンピュータ回路手段。
【請求項１７】
ｐｏｄが、発散点事象であり、ｐｏｃ0が、適正な回路作動に対して第２のｐｏｃ事象ｐｏｃ1の前に起きる第１のｐｏｃ事象であり、マージンｍが、該ｐｏｃ0と該ｐｏｃ1の間の最小分離である時に、相対タイミングが、
2015524589.tif 000052
によって表される発散点（ｐｏｄ）事象と２つの及び収束点（ｐｏｃ）事象との間の前記回路モデル内の相対タイミング制約（ＲＴＣ）を識別し、
前記ｐｏｄ事象と前記第１のｐｏｃ事象との間の第１のｐｏｃ事象経路に対する最大ターゲット遅延を発生させ、
前記ｐｏｄ事象と前記第２のｐｏｃ事象との間の第２のｐｏｃ事象経路に対する最小ターゲット遅延を発生させ、かつ
前記最大ターゲット遅延及び前記最小ターゲット遅延を用いて前記回路モデルを最適化する、
ように更に構成されることを特徴とする請求項１１から請求項１６のいずれか１項に記載のコンピュータ回路手段。
【請求項１８】
相対タイミング制約発生に向けて構成されたクロック式ツールフローのための電子設計自動化（ＥＤＡ）ツールであって、
発散点（ｐｏｄ）事象と第１のｐｏｃ事象（ｐｏｃ0）及び第２のｐｏｃ事象（ｐｏｃ1）を含む２つの収束点（ｐｏｃ）事象との間の回路モデル内のセルの相対タイミング制約（ＲＴＣ）を識別し、
前記ｐｏｄ事象と前記第１のｐｏｃ事象の間の第１のｐｏｃ事象経路に対する最大ターゲット遅延を発生させ、
前記ｐｏｄ事象と前記第２のｐｏｃ事象の間の第２のｐｏｃ事象経路に対する最小ターゲット遅延を発生させ、
前記第１のｐｏｃ事象と前記第２のｐｏｃ事象の間の最小分離を表すマージンプラグマを発生させ、かつ
前記最大ターゲット遅延と、前記最小ターゲット遅延と、前記マージンプラグマとを用いて前記回路モデルを最適化する、
ためのプロセッサ、
を含むことを特徴とするツール。
【請求項１９】
前記プロセッサは、
ゲートを含む回路モデルのセル内を無傷に保つための相対タイミング経路を識別し、かつ
合成と配置及び経路指定とのＥＤＡツールフロー中に使用される前記相対タイミング経路に対して、前記セルの構造的修正を阻止するが、該セルの駆動強度の最適化を可能にするｓｅｔ_ｓｉｚｅ_ｏｎｌｙ制約を含むか又は該セルの修正を禁止するｓｅｔ_ｄｏｎｔ_ｔｏｕｃｈ制約を含む「修正禁止」制約を発生させる、
ように更に構成される、
ことを特徴とする請求項１８に記載のＥＤＡツール。
【請求項２０】
ハードウエア記述言語（ＨＤＬ）、超高速集積回路（ＶＨＳＩＣ）ＨＤＬ（ＶＨＤＬ）、Ｖｅｒｉｌｏｇ、セルライブラリ、Ｓｙｎｏｐｓｙｓ設計制約（．ｓｄｃ）、Ｓｙｎｏｐｓｙｓ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｃｏｍｐｉｌｅｒ（ＩＣＣ）、Ｅｎｃｏｕｎｔｅｒ  Ｄｉｇｉｔａｌ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ（ＥＤＩ）、Ｃａｄｅｎｃｅ  Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ（ＳｏＣ）Ｅｎｃｏｕｎｔｅｒ、Ｃｏｎｃｕｒｒｅｎｃｙ  Ｗｏｒｋｂｅｎｃｈ、Ｄｅｓｉｇｎ  Ｃｏｍｐｉｌｅｒ、Ｅｎｃｏｕｎｔｅｒ  Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ（ＲＴＬ）、Ｘｉｌｉｎｘ  Ｉｎｔｅｇｒａｔｅｄ  Ｓｏｆｔｗａｒｅ  Ｅｎｖｉｒｏｎｍｅｎｔ（ＩＳＥ）、Ｘｉｌｉｎｘ  Ｓｙｎｔｈｅｓｉｓ  Ｔｏｏｌ（ＸＳＴ）、Ｑｕａｒｔｕｓ、Ｓｙｎｐｌｉｆｙ、ＬｅｏｎａｒｄｏＳｐｅｃｔｒｕｍ、Ｐｒｅｃｉｓｉｏｎ、Ｐｒｉｍｅｔｉｍｅ、Ｔｅｍｐｕｓ、Ｍｏｄｅｌｓｉｍ、Ｅｌｄｏ、Ｓｉｍｕｌａｔｉｏｎ  Ｐｒｏｇｒａｍ  ｗｉｔｈ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｅｍｐｈａｓｉｓ（ＳＰＩＣＥ）、Ｖｅｒｉｌｏｇ  Ｃｏｍｐｉｌｅｄ  Ｓｉｍｕｌａｔｏｒ（ＶＣＳ）、又はＣａｄｅｎｃｅ  Ｖｅｒｉｌｏｇ−Ｌ  ｔｉｅｒ  ｅｘｔｅｎｓｉｏｎ（Ｖｅｒｉｌｏｇ−ＸＬ）を使用する合成ツール、配置及び経路指定ツール、レイアウト後タイミングツール、物理設計ツール、又はタイミング検証ツールのうちの少なくとも１つを含むことを特徴とする請求項１８及び請求項１９のいずれか１項に記載のＥＤＡツール。
【国際調査報告】
2015524589.tif 000053
2015524589.tif 000054
2015524589.tif 000055