(57)【要約】  相対時限式モジュールを用いて相対タイミングアーキテクチャを生成するための技術を開示する。一例において、クロックツールフローに対して有効化にされた電子設計自動化（ＥＤＡ）ツールは、相対時限式モジュールを用いてハードウエア記述言語（ＨＤＬ）集積回路（ＩＣ）アーキテクチャを発生させ、相対タイミング制約を相対時限式モジュールの相対時限式インスタンスにマップし、かつ各相対タイミング制約のためのタイミングターゲットを生成するように構成されたコンピュータ回路を含むことができる。【選択図】図５
2015524590.tif 000002
【特許請求の範囲】
【請求項１】
相対時限式モジュールを用いて相対タイミングアーキテクチャを発生させるように構成されたクロックツールフローのための電子設計自動化（ＥＤＡ）ツールであって、
前記相対時限式モジュールを用いてハードウエア記述言語（ＨＤＬ）集積回路（ＩＣ）アーキテクチャを発生させ、
相対タイミング制約（ＲＴＣ）を前記相対時限式モジュールの相対時限式インスタンス上にマップし、かつ
各相対タイミング制約のためのタイミングターゲットを発生させる、
ように構成されたコンピュータ回路、
を有することを特徴とする電子設計自動化（ＥＤＡ）ツール。
【請求項２】
前記ＨＤＬ  ＩＣアーキテクチャ内でタイミング違反を表す負のタイミングスラックが発生しなくなるまで前記相対タイミング制約の前記タイミングターゲットを反復的に修正する、
ように更に構成されることを特徴とする請求項１に記載のコンピュータ回路。
【請求項３】
前記タイミングターゲットを反復的に修正するように構成されたコンピュータ回路が、
クロックタイミング遅延経路と相対タイミング遅延経路の両方に対して負のタイミングスラックを収束させる、
ように更に構成される、
ことを特徴とする請求項２に記載のコンピュータ回路。
【請求項４】
前記タイミングターゲットを反復的に修正するように構成されたコンピュータ回路が、
前記相対タイミング制約を満足するように前記ＨＤＬ  ＩＣアーキテクチャ内に遅延要素を追加する、
ように更に構成される、
ことを特徴とする請求項２に記載のコンピュータ回路。
【請求項５】
前記タイミングターゲットを反復的に修正するように構成されたコンピュータ回路が、
前記クロックツールフロー内で前記相対時限式モジュールのタイミング駆動最適化を用いて前記ＨＤＬ  ＩＣアーキテクチャの電力及び性能を最適化する、
ように更に構成される、
ことを特徴とする請求項２に記載のコンピュータ回路。
【請求項６】
前記相対タイミング制約をマップするように構成されたコンピュータ回路が、該相対タイミング制約に対する端点を定めるように更に構成され、
前記タイミングターゲットを発生させるように構成されたコンピュータ回路が、前記相対タイミング制約のタイミング経路を横切る端点の間のタイミングアークを決定するように更に構成され、該タイミングアークの複合体のうちの１つが、前記ＩＣアーキテクチャの各ゲートを通過する、
ことを特徴とする請求項１に記載のコンピュータ回路。
【請求項７】
前記相対タイミング制約（ＲＴＣ）は、ｐｏｄが、発散点（ｐｏｄ）事象であり、ｐｏｃ0が、適正回路作動のための第２のｐｏｃ事象ｐｏｃ1の前に発生される第１の収束点（ｐｏｃ）事象であり、マージンｍが、該ｐｏｃ0と該ｐｏｃ1の間の最小分離である時に、
2015524590.tif 000012
によって表され、
前記タイミングターゲットは、前記ｐｏｄ事象と前記第１のｐｏｃ事象の間の第１の相対事象経路に対して最大ターゲット遅延を与え、該ｐｏｄ事象と前記第２のｐｏｃ事象の間の第２の相対事象経路に対して最小ターゲット遅延を与え、又は該第１の相対事象と該第２の相対事象の間の最小分離を表すマージンターゲット遅延を与える、
ことを特徴とする請求項１に記載のコンピュータ回路。
【請求項８】
前記相対時限式モジュールを設計かつ特徴付ける、
ように更に構成されることを特徴とする請求項１に記載のコンピュータ回路。
【請求項９】
各相対タイミング制約のための前記タイミングターゲットを発生させるように構成されたコンピュータ回路が、アーキテクチャ電力ターゲット又はアーキテクチャ性能ターゲットに基づいていることを特徴とする請求項１に記載のコンピュータ回路。
【請求項１０】
前記ＥＤＡツールは、合成ツール、最適化ツール、物理設計ツール、物理経路指定及び配置ツール、又はタイミング検証ツールであることを特徴とする請求項１に記載のコンピュータ回路。
【請求項１１】
前記相対時限式モジュールは、前記設計をＶｅｒｉｌｏｇ、ＨＤＬ、又は超高速集積回路（ＶＨＳＩＣ）ＨＤＬ（ＶＨＤＬ）に符号化することによって挙動的ＨＤＬ  ＩＣアーキテクチャ又は構造的ＨＤＬ  ＩＣアーキテクチャを発生させることを特徴とする請求項１に記載のコンピュータ回路。
【請求項１２】
相対タイミングアーキテクチャ発生に向けて構成されたクロックツールフローのための電子設計自動化（ＥＤＡ）ツールであって、
相対時限式モジュールを用いて集積回路（ＩＣ）アーキテクチャを発生させ、
相対タイミング制約（ＲＴＣ）を前記相対時限式モジュールの相対時限式インスタンス上にマップし、かつ
各相対タイミング制約に対して遅延ターゲットを発生させる、
ためのプロセッサ、
を含むことを特徴とする電子設計自動化（ＥＤＡ）ツール。
【請求項１３】
前記プロセッサは、
タイミング閉鎖検索アルゴリズムを用いてタイミング違反を排除するために遅延ターゲットを再帰的に変更する、
ように更に構成される、
ことを特徴とする請求項１２に記載のＥＤＡツール。
【請求項１４】
前記相対タイミング制約（ＲＴＣ）は、ｐｏｄが発散点（ｐｏｄ）事象であり、ｐｏｃ0が、適正な回路作動のための第２のｐｏｃ事象ｐｏｃ1の前に発生される第１の収束点（ｐｏｃ）事象であり、マージンｍが、該ｐｏｃ0と該ｐｏｃ1の間の最小分離である時に、
2015524590.tif 000013
によって表され、
前記遅延ターゲットは、前記ｐｏｄ事象と前記第１のｐｏｃ事象の間の第１の相対事象経路に対して最大ターゲット遅延を与え、該ｐｏｄ事象と前記第２のｐｏｃ事象の間の第２の相対事象経路に対して最小ターゲット遅延を与え、又は第１の相対事象経路を第２の相対事象経路に該第１の相対事象と該第２の相対事象の間の最小分離を有して関連付けるマージン制約を与える、
ことを特徴とする請求項１２に記載のＥＤＡツール。
【請求項１５】
前記プロセッサは、
前記クロックツールフロー内で前記相対時限式モジュールのタイミング駆動最適化を用いて前記ＩＣアーキテクチャの電力及び性能を最適化する、
ように更に構成される、
ことを特徴とする請求項１２に記載のＥＤＡツール。
【請求項１６】
前記プロセッサは、
前記相対タイミング制約のための端点を定め、かつ
前記ＩＣアーキテクチャの各ゲートが該ＩＣアーキテクチャの少なくとも１つのタイミング経路で表される前記相対タイミング制約の端点の間のタイミング経路を決定する、
ように更に構成される、
ことを特徴とする請求項１２に記載のＥＤＡツール。
【請求項１７】
前記プロセッサは、
前記相対時限式モジュールの論理の修正を阻止する、
ように更に構成される、
ことを特徴とする請求項１６に記載のＥＤＡツール。
【請求項１８】
請求項１２に記載のＥＤＡツールを用いて集積回路（ＩＣ）を発生させる電子設計自動化（ＥＤＡ）システムであって、
ハードウエア記述言語（ＨＤＬ）を用いて特徴付け情報、セルライブラリ情報、及びアーキテクチャ性能ターゲットを符号化することにより、集積回路（ＩＣ）アーキテクチャを設計かつ特徴付けるための請求項１２に記載の前記ＥＤＡツールを含むアーキテクチャ設計ツールと、
前記ＨＤＬの挙動を実施するハードウエア論理を発生させるための請求項１２に記載の前記ＥＤＡツールを含む合成ツールと、
前記ハードウエア論理に基づいてハードウエア回路を配置及び経路指定するための請求項１２に記載の前記ＥＤＡツールを含む物理設計ツールと、
速度非依存タイミング制約及び遅延不感タイミング制約を用いて性能、正確性、及び収量に対してハードウエア回路を検証するための請求項１２に記載の前記ＥＤＡツールを含むタイミング検証ツールと、
を含むことを特徴とするＥＤＡシステム。
【請求項１９】
前記アーキテクチャ設計ツールは、Ｖｅｒｉｌｏｇ、Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ（ＨＤＬ）、又は超高速集積回路（ＶＨＳＩＣ）ＨＤＬ（ＶＨＤＬ）を使用し、前記合成ツールは、Ｓｙｎｏｐｓｙｓ設計制約（．ｓｄｃ）、Ｄｅｓｉｇｎ  Ｃｏｍｐｉｌｅｒ、Ｅｎｃｏｕｎｔｅｒ  Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ（ＲＴＬ）、Ｘｉｌｉｎｘ  Ｉｎｔｅｇｒａｔｅｄ  Ｓｏｆｔｗａｒｅ  Ｅｎｖｉｒｏｎｍｅｎｔ（ＩＳＥ）、Ｘｉｌｉｎｘ  Ｓｙｎｔｈｅｓｉｓ  Ｔｏｏｌ（ＸＳＴ）、Ｑｕａｒｔｕｓ、Ｓｙｎｐｌｉｆｙ、ＬｅｏｎａｒｄｏＳｐｅｃｔｒｕｍ、又はＰｒｅｃｉｓｉｏｎを使用し、前記物理設計ツールは、Ｓｙｎｏｐｓｙｓ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｃｏｍｐｉｌｅｒ（ＩＣＣ）、Ｃａｄｅｎｃｅ  Ｅｎｃｏｕｎｔｅｒ  Ｄｉｇｉｔａｌ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ（ＥＤＩ）、又はＣａｄｅｎｃｅ  Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ（ＳｏＣ）Ｅｎｃｏｕｎｔｅｒを使用し、前記タイミング検証ツールは、Ｐｒｉｍｅｔｉｍｅ、Ｔｅｍｐｕｓ、Ｍｏｄｅｌｓｉｍ、Ｅｌｄｏ、Ｓｉｍｕｌａｔｉｏｎ  Ｐｒｏｇｒａｍ  ｗｉｔｈ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｅｍｐｈａｓｉｓ（ＳＰＩＣＥ）、Ｖｅｒｉｌｏｇ  Ｃｏｍｐｉｌｅｄ  Ｓｉｍｕｌａｔｏｒ（ＶＣＳ）、又はＣａｄｅｎｃｅ  Ｖｅｒｉｌｏｇ−Ｌ  ｔｉｅｒ  ｅｘｔｅｎｓｉｏｎ（Ｖｅｒｉｌｏｇ−ＸＬ）を使用することを特徴とする請求項１８に記載のＥＤＡシステム。
【請求項２０】
クロック式電子設計自動化（ＥＤＡ）ツールフローの使用を可能にする相対タイミングアーキテクチャを発生させる方法であって、
相対時限式モジュールを用いて集積回路（ＩＣ）アーキテクチャを発生させる段階と、
相対タイミング制約（ＲＴＣ）を前記相対時限式モジュールの相対時限式インスタンス上にマップする段階と、
各相対タイミング制約のための遅延値を発生させる段階と、
を含むことを特徴とする方法。
【請求項２１】
各相対タイミング制約のための前記遅延値を発生させる段階は、
前記ＩＣアーキテクチャ内でタイミング違反が発生しなくなるまで前記相対タイミング制約の前記遅延値を反復的に修正し、それによって閉じたタイミング解を発生させる段階、
を更に含む、
ことを特徴とする請求項２０に記載の方法。
【請求項２２】
事象の時限式分離、キャノピーグラフ、可視化技術、電圧低下、又は電力ゲーティングを含む、クロックツールフロー内で前記相対時限式モジュールのタイミング駆動最適化を用いて前記ＩＣアーキテクチャの電力及び性能を最適化する段階、
を更に含むことを特徴とする請求項２０に記載の方法。
【請求項２３】
前記相対タイミング制約（ＲＴＣ）は、ｐｏｄが発散点（ｐｏｄ）事象であり、ｐｏｃ0が、適正な回路作動のための第２のｐｏｃ事象ｐｏｃ1の前に発生される第１の収束点（ｐｏｃ）事象であり、マージンｍが、該ｐｏｃ0と該ｐｏｃ1の間の最小分離である時に、
2015524590.tif 000014
によって表され、
前記遅延値は、前記ｐｏｄ事象と前記第１のｐｏｃ事象の間の第１の相対事象経路に対して最大ターゲット遅延を与え、該ｐｏｄ事象と前記第２のｐｏｃ事象の間の第２の相対事象経路に対して最小ターゲット遅延を与え、かつ該第１の相対事象と該第２の相対事象の間の最小分離を表すマージンターゲット遅延を与える、
ことを特徴とする請求項２０に記載の方法。
【請求項２４】
相対タイミング制約をマップする段階及び各相対タイミング制約のための前記遅延値を発生させる段階は、
前記相対タイミング制約のための端点を定める段階と、
前記ＩＣアーキテクチャの各ゲートが該ＩＣアーキテクチャの少なくとも１つのタイミング経路で表される前記相対タイミング制約の端点の間のタイミング経路を決定する段階と、
を更に含む、
ことを特徴とする請求項２０に記載の方法。
【請求項２５】
前記相対時限式モジュール又は相対時限式インスタンスの論理修正を阻止する段階、
を更に含むことを特徴とする請求項２０に記載の方法。
【請求項２６】
少なくとも１つの持続性機械可読ストレージ媒体であって、
請求項２０に記載の方法を実施するために実行されるようになった複数の命令、
を含むことを特徴とする媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
電子設計自動化（ＥＤＡ）ツールに関する。
【背景技術】
【０００２】
回路タイミングは、回路の電力、性能、ノイズ、及び面積に影響を及ぼす可能性がある。タイミングは、業界標準クロック設計方法及び技術に優る利益を与えることができる多くの代替回路設計方式によって調節することができる。タイミングは、これらの代替回路の商業化及び採用に対して主な障害である可能性もある。非同期回路設計は、代替タイミングを使用する回路系列の例である。回路及びアーキテクチャレベルでは、非同期設計は、連続タイミングモデルを使用し、それに対してクロック設計は、クロックサイクルに基づく離散時間モデルを使用する。
【０００３】
設計の社会では、信号優先順位付けのための２つの一般的な方法、すなわち、クロック式と非同期式が出現した。クロック設計は、離散クロック周期を定める周波数ベースのプロトコルを基礎とする。クロック式方法は、ラッチ又はフロップ間の組合せ論理（ＣＬ）を含み、共通周波数によって制御されるパイプライン段を生成する。クロック式方法以外の全ての他の方法は「非同期」と見なすことができ、以下に限定されるものではないが、ハンドシェイクプロトコル、自己リセットドミノ回路、及び静的ランダムアクセスメモリ（ＳＲＡＭ）、動的ランダムアクセスメモリ（ＤＲＡＭ）、読取専用メモリ（ＲＯＭ）、又はプログラム可能論理アレイ（ＰＬＡ）のような埋め込みシーケンシャル要素を使用する方法を含む。非同期要素は、シーケンシャルコントローラ、ドミノゲート、又はメモリ要素のような状態保持回路を含むことができる。非同期回路への入力の到着は、広域クロック周波数に基づかない場合がある。非同期回路を通じた遅延は、機能、用途、製造変動、並びに温度及び電圧の変化のような作動パラメータに基づいて変化する可能性がある。
【０００４】
本発明の特徴及び利点は、共に本発明の特徴を一例として示す添付図面と合わせた以下に続く詳細説明から明らかであろう。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】ＰＣＴ／ＵＳ２０１３／０５１１５６
【発明の概要】
【発明が解決しようとする課題】
【０００６】
クロック設計は、電子設計自動化（ＥＤＡ）業界において、高い生産率を可能にするＥＤＡの機能に大部分が起因して優位を占めている。高い生産率は、タイミングの正確性を極めて少数の予め定められたシーケンシャルセル、主としてフリップ−フロップ及びラッチに制限する手法を使用することによって達成することができる。これらの予め定められたセルは、設定時間及び保持時間のような設計の正確性に対して使用されるタイミング条件に対して特徴付けることができる。クロック設計においてタイミングが重要な問題は、フリップ−フロップ及びラッチに収束する可能性がある。
【０００７】
この収束による結果として、フリップ−フロップ及びラッチのタイミング要件は、ＥＤＡ業界に使用されるコンピュータアシスト設計（ＣＡＤ）アルゴリズム内にクロック設計手法に基づいて直接統合されることになった。このアルゴリズム内へのタイミングの直接統合は、クロック設計を簡素化するが、これらのアルゴリズムは、他のタイミング方法を使用する回路の適用を妨げる可能性がある。
【課題を解決するための手段】
【０００８】
本明細書に説明する技術（例えば、ＥＤＡツール、方法、コンピュータ回路、及びシステム）は、特徴付けされた相対タイミング制約（ＲＴＣ）をシステム又はアーキテクチャに使用されるインスタンスに適用することにより、相対タイミングに対して特徴付けされた設計モジュールを使用することができ、それによって従来のクロックＥＤＡツールがこれらのＲＴＣ設計モジュールのタイミング要件を直接にサポートすることを可能にする。この技術を使用すると、一般的な非同期モジュールを設計内に埋め込むことができ、標準の市販のＥＤＡツールフローを使用するシステムを建築するのに使用することができる。実際に、この技術は、いずれかの相対タイミング特徴付けされたモジュールをフリップ−フロップ及びラッチのための標準のＥＤＡツールからの類似のタイミングアルゴリズムサポートを有するアーキテクチャ又はシステム内に統合することを可能にする。
【図面の簡単な説明】
【０００９】
【図１】一例による相対タイミングを用いて特徴付けられたモジュールを使用する集積回路のアーキテクチャ及びシステムのためのクロック式電子設計自動化（ＥＤＡ）ツール及びフローを用いてタイミング駆動最適化を実施するための例示的なシステムのブロック図である。
【図２】一例によるクロック式パイプラインの図である。
【図３】一例による時限式非同期パイプラインの図である。
【図４】一例による時限式遅延不感非同期パイプラインの図である。
【図５】一例による事前特徴付け相対時限式モジュールを用いたシステム設計の流れ図である。
【図６】一例による電子設計自動化（ＥＤＡ）ツールを用いてタイミング駆動最適化されたシステムを生成するのに使用される工程の図である。
【図７】一例による効率的線形パイプラインコントローラ仕様の図である。
【図８】一例による図７の効率的線形パイプラインコントローラの回路実装の図である。
【図９】一例による１３０ナノメートル（ｎｍ）Ａｒｔｉｓａｎ  Ｌｉｂｒａｒｙを用いた効率的線形パイプラインコントローラのＶｅｒｉｌｏｇ実装の図である。
【図１０】一例による経路ベースの相対タイミング制約の表現の図である。
【図１１】一例による図８に記載の効率的線形パイプラインコントローラが図７に記載の線形パイプラインコントローラ仕様に従う場合に成り立つべき相対タイミング制約セットの図である。
【図１２】一例による図９の回路に関する有向非循環グラフ（ＤＡＧ）であるタイミンググラフを生成するタイミンググラフカットセットの図である。
【図１３】一例による図９のコントローラのためのサイズセットのみ制約の図である。
【図１４】一例により図３の制御モジュールのうちの１つがタイミング駆動合成及び最適化を実施するためのタイミング制約セットの図である。
【図１５】一例によるクロック式電子設計自動化（ＥＤＡ）ツールフローの使用を可能にする相対タイミングアーキテクチャを生成する方法の流れ図である。
【図１６】一例により相対時限式モジュールを用いて相対タイミングアーキテクチャを生成するように構成されたクロックツールフローのための電子設計自動化（ＥＤＡ）ツールのコンピュータ回路の機能図である。
【図１７】一例により相対タイミングアーキテクチャ発生に向けて構成されたクロックツールフローのための電子設計自動化（ＥＤＡ）ツールのブロック図である。
【発明を実施するための形態】
【００１０】
ここで、図示の例示的実施形態を参照することになるが、本明細書ではこれらの実施形態を説明するために特定の表現を以下に使用する。それにも関わらず、本発明の範囲の限定を意図しないことは理解されるであろう。
【００１１】
本発明を開示して説明する前に、本発明は、本明細書に開示する特定の構造、工程段階、又は材料に限定されず、当業者によって認識されると考えられるこれらの均等物に拡張されると理解しなければならない。本明細書に使用する術語は、特定の例のみを説明するために使用するものであり、限定的であることを意図しないことも理解しなければならない。
【００１２】
定義
本明細書に使用する「実質的に」という表現は、作用、特性、性質、状態、構造、品目、又は結果の完全又はほぼ完全な範囲又は程度を意味する。例えば、「実質的に」囲まれた物体は、物体が完全に囲まれているか、ほぼ完全に囲まれているかのいずれかを意味することになる。絶対完全性からの正確な許容ずれ度は、一部の場合に特定の状況に依存する可能性がある。しかし、一般的には、完了の間近さは、絶対的かつ全面的な完了が得られた場合と同じ全体結果を有するようなものとすることができる。「実質的に」の使用は、作用、特性、性質、状態、構造、品目、又は結果の完全又はほぼ完全な欠如を指す否定的な含意に使用される場合にも同等に適用可能である。
【００１３】
本明細書に使用する「セット」という表現は、１、ゼロ、又はそれよりも大きい整数値を含むいずれかの自然数の要素を含むことができる要素集合を指す。
【００１４】
本明細書を通じての「例」への参照は、例に関して説明する特定の特徴、構造、又は特性が本発明の少なくとも１つの実施形態内に含まれることを意味する。従って、本明細書にわたる様々な箇所における「一例では」という語句の出現は、必ずしもその全てが同じ実施形態を参照しているわけではない。
【００１５】
本明細書では、「例示的」という言葉を実施例、事例、又は例証として機能することを意味するように使用する。本明細書で「例示的」と説明するいかなる態様又は設計も、他の態様又は設計に優って好ましいか又は有利であると必ずしも解釈すべきではない。更に、本発明の開示の目的では、別途指定しない限り、「ａ」又は「ａｎ」は、「１つ又はそれよりも多く」を意味する。例示的実施形態は、開示する実施形態を実施するようにコンピュータを制御するソフトウエア、ファームウエア、ハードウエア、又はこれらのいずれかの組合せを生成するための標準プログラミング技術及び／又はエンジニアリング技術を用いて方法、装置、又は製造物品として実施することができる。
【００１６】
技術改善の最初の概要を以下に提供し、次いで、特定の技術例を後により詳細に説明する。この最初の要約は、閲読者が本発明の技術をより迅速に理解するのを助けるように意図したものであり、本発明の技術の重要な特徴又は基本的な特徴を示すように意図したものでも、主張する主題の範囲を限定するように意図したものでもない。
【００１７】
クロック設計は、電子設計自動化（ＥＤＡ）業界において、高い生産率を可能にするＥＤＡの機能に大部分が起因して優位を占めている。高い生産率は、タイミングの正確性を極めて少数の予め定められたシーケンシャルセル、主としてフリップ−フロップ及びラッチに制限する手法を使用することによって達成することができる。これらの予め定められたセルは、設定時間及び保持時間のような設計の正確性に対して使用されるタイミング条件に対して特徴付けることができる。クロック設計においてタイミングが重要な問題は、フリップ−フロップ及びラッチに収束する可能性がある。
【００１８】
この収束による結果として、フリップ−フロップ及びラッチのタイミング要件は、ＥＤＡ業界に使用されるコンピュータアシスト設計（ＣＡＤ）アルゴリズム内にクロック設計手法に基づいて直接統合されることになった。このアルゴリズム内へのタイミングの直接統合は、クロック設計を簡素化するが、これらのアルゴリズムは、他のタイミング方法を使用する回路の適用を妨げる可能性がある。
【００１９】
本明細書に説明する技術（例えば、ＥＤＡツール、方法、コンピュータ回路、及びシステム）は、特徴付けされた相対タイミング制約（ＲＴＣ）をシステム又はアーキテクチャに使用されるインスタンスに適用することにより、相対タイミングに対して特徴付けされた設計モジュールを使用することができ、それによって従来のクロックＥＤＡツールがこれらのＲＴＣ設計モジュールのタイミング要件を直接にサポートすることを可能にする。この技術を使用すると、一般的な非同期モジュールを設計内に埋め込むことができ、標準の市販のＥＤＡツールフローを使用するシステムを建築するのに使用することができる。実際に、この技術は、いずれかの相対タイミング特徴付けされたモジュールをフリップ−フロップ及びラッチのための標準のＥＤＡツールからの類似のタイミングアルゴリズムサポートを有するアーキテクチャ又はシステム内に統合することを可能にする。
【００２０】
上述したように、集積回路設計のための電子設計自動化（ＥＤＡ）は、クロック手法に基づくことができる。他のタイミング方法を使用するシステムは、ＥＤＡのツール及びフローによって直接にサポートされない場合がある。ＥＤＡツールは、任意のタイミング手法を用いて自動タイミング駆動設計、並びに集積回路のシステム及びアーキテクチャの最適化を実施することを可能にする技術を提供する。そのようなシステムは、タイミング及び作動要件に対して事前特徴付けされた同期回路モジュールに基づくことができる。ＥＤＡツール内のタイミング駆動アルゴリズムは、高レベルの合成から下方に物理設計及びタイミング検証に至るまでのＥＤＡフローの全レベルにおけるタイミング駆動の設計及び最適化をサポートすることを可能にすることができるように、事前特徴付けされた制約をモジュールインスタンス及びシステムネットリストにマップする方法を提供することができる。記述した技術を使用すると、非同期設計のような代替設計方式は、従来のＥＤＡのツール及びフロー（例えば、クロックベースのＥＤＡのツール及びフロー）を直接に使用することができる。
【００２１】
以下では、上述の技術の簡単な概要を提供する。本明細書において説明する技術（例えば、ＥＤＡツール、方法、コンピュータ回路、及びシステム）は、相対タイミング（ＲＴ）の理論に基づいている。１つの経路を通じた最大の遅延（最大遅延）が、別の経路を通じた最小の遅延（最小遅延）よりも小さくなければならないような共通タイミング基準からの相対的な遅延は、信号経路又は信号周波数を通して成り立たなければならない。更に、２つの経路の遅延の間には、分離のマージンが必要される場合がある。一般的に、最小遅延経路である一方の経路は、信号経路の下方の遅延ではなく、固定周波数（クロックのような）に基づく遅延とすることができる。従って、相対タイミングは、式１を用いて表すことができる。
2015524590.tif 000003
【００２２】
変数ｐｏｄは、タイミング基準又は事象を表すことができる。ｐｏｄが事象である場合に、発散点（ｐｏｄ）と両方の収束点（ｐｏｃ0及びｐｏｃ1）の間に論理経路が存在する。ｐｏｄが、クロックのようなタイミング基準である場合に、タイミング基準は、ｐｏｃ0とｐｏｃ1の両方に対して共通のものとすることができる。値ｍは、事象間のマージン又は最小分離とすることができ、値ｍは、ゼロ又は負とすることができる。式１が成り立つ場合に、事象ｐｏｄから事象ｐｏｃ0までの最大経路遅延にマージンｍを加えたものは、事象ｐｏｄから事象ｐｏｃ1までの最小経路遅延よりも小さい場合がある。一例において、経路遅延に対してクロックのような周波数ベースの信号の類似の遅延を代用することができ、この場合に、ｐｏｄを立ち上がりクロックエッジとすることができ、ｐｏｃ1をクロックのその後の立ち上がりエッジとすることができる。
【００２３】
別の例において、２０１３年７月１８日出願の「相対タイミング特徴付け（ＲＥＬＡＴＩＶＥ  ＴＩＭＩＮＧ  ＣＨＡＲＡＣＴＥＲＩＺＡＴＩＯＮ）」という名称の現在特許出願中の国際特許出願出願番号ＰＣＴ／ＵＳ２０１３／０５１１５６に記載されているように、これまで、市販のＥＤＡツール内への包含に向けて非同期シーケンシャル回路モジュールを特徴付ける方法が実施されてきたと考えられる。望ましい回路環境の遅延及び挙動は、この環境がクロック又は非同期のいかなるものであるかに関わらず与えられた場合に、設計が正しく作動するために成り立つべき全てのタイミング条件に対して、特徴付け回路を完全に特徴付けることができる。特徴付けは、ｐｏｄからｐｏｃ0及びｐｏｃ1までの経路ベース又は周波数ベースの制約を生成することにより、相対タイミングに基づく遅延を表すことができる。類似の形式の性能制約を追加することができる。
【００２４】
別の例において、事前特徴付けされたモジュールは、ＥＤＡツール内のタイミング駆動アルゴリズムが、特徴付けされたモジュールの正しい設計、最適化、試験、及び検証を直接にサポートするように、特徴付けされたモジュール（例えば、相対タイミング制約（ＲＴＣ）モジュール）をシステム又はアーキテクチャ内に埋め込むために使用される情報を含むことができる。事前特徴付けされたモジュールからの完全な制約セットをＥＤＡツール内のタイミング駆動アルゴリズム及び本明細書に説明する技術と互換性を有するフォーマットで表すことができる。設計及び検証の工程内の様々な段階において、制約部分集合を選択することができる。例えば、Ｄｅｓｉｇｎ  ＣｏｍｐｉｌｅｒのようなＥＤＡツールによる合成のための制約セットを選択することができる。別の実施形態において、ＰｒｉｍｅＴｉｍｅを用いたタイミング検証に向けて異なる制約セットを使用することができる。事前特徴付けフローは、より正確なタイミング結果を可能にするために、タイミング特徴付けファイル内のセル遅延情報をｌｉｂｅｒｔｙフォーマット（．ｌｉｂ）で修正することができる。タイミング制約は、設計フロー内の様々な段階及びクロックＥＤＡツールによってサポートされるフォーマットで生成することができる。
【００２５】
別の構成では、プロセッサによる実行時に、業界標準のＥＤＡ  ＣＡＤフローを直接にサポートする方式で含めることができる設計フロー内の様々な段階において、設計制約セットを選択し、これらの制約セットをシステム及びアーキテクチャにマップする方法の作動をプロセッサに実施させるコンピュータ可読命令を含むコンピュータ可読媒体を提供することができる。
【００２６】
別の実施形態において、システムは、プロセッサを含むことができ、コンピュータ可読媒体をプロセッサと作動可能に結合することができる。コンピュータ可読媒体は、プロセッサによる実行時に、業界標準のＥＤＡ  ＣＡＤフロー内への包含に適する非同期回路モジュールを特徴付ける方法の作動を実施する命令を含む。
【００２７】
以下の本文は、上述の技術の追加の詳細及び実施例を提供する。図１は、相対時限式集積回路設計システム１００に関するブロック図を示している。相対時限式集積回路設計システム１００は、出力インタフェース１０４と、入力インタフェース１０２と、コンピュータ可読媒体１０８と、プロセッサ１０６と、相対時限式集積回路設計システム１００に関連することができる相対時限式システム設計アプリケーション１１０とを含むことができるいずれかのフォームファクターのコンピュータデバイスを含むことができる。異なる構成要素及び追加の構成要素を相対時限式集積回路設計システム１００内に組み込むことができる。
【００２８】
出力インタフェース１０４は、相対時限式集積回路設計システム１００のユーザによる閲覧に向けて情報を出力するためのインタフェースを与える。例えば、出力インタフェース１０４は、ディスプレイ、プリンタ、スピーカ、又は類似の出力デバイスへのインタフェースを含むことができる。ディスプレイは、薄膜トランジスタディスプレイ、発光ダイオードディスプレイ、液晶ディスプレイ、又は様々な異なるディスプレイのうちのいずれかとすることができる。プリンタは、様々なプリンタのうちのいずれかとすることができる。スピーカは、様々なスピーカのうちのいずれかとすることができる。相対時限式集積回路設計システム１００は、同じか又は様々なるインタフェース技術を使用する１つ又はそれよりも多くの出力インタフェースを有することができる。
【００２９】
入力インタフェース１０２は、相対時限式集積回路設計システム１００内への入力に向けてユーザから情報を受け入れるためのインタフェースを与える。入力インタフェース１０２は、以下に限定されるものではないが、キーボード、ペン及びタッチスクリーン、マウス、トラックボール、タッチスクリーン、キーパッド、１つ又はそれよりも多くのボタン、又はユーザが情報を相対時限式集積回路設計システム１００内に入力するか又はユーザが出力インタフェース１０４上に表示されるユーザインタフェース内に選択を提供することを可能にする類似の入力デバイスを含む様々な入力技術を使用することができる。入力インタフェース１０２は、入力インタフェースと出力インタフェースの両方を与えることができる。例えば、タッチスクリーンは、ユーザ入力を可能にし、それと共にユーザに出力を提供する。
【００３０】
コンピュータ可読媒体１０８は、プロセッサ１０６が情報にアクセス可能であるような電子保持場所又はストレージとすることができる。コンピュータ可読媒体１０８は、以下に限定されるものではないが、いずれかのタイプのランダムアクセスメモリ（ＲＡＭ）、いずれかのタイプの読取専用メモリ（ＲＯＭ）、いずれかタイプのフラッシュメモリ、又は磁気記憶デバイス（例えば、ハードディスク、フロッピー（登録商標）ディスク、又は磁気テープ）、光ディスク（例えば、コンパクトディスク（ＣＤ）又はデジタル多用途ディスク（ＤＶＤ）、又はデジタルビデオディスク）、スマートカード、又はフラッシュメモリデバイスのような類似の媒体を含むことができる。相対時限式集積回路設計システム１００は、同じか又は異なるメモリ媒体技術を使用する１つ又はそれよりも多くのコンピュータ可読媒体を有することができる。相対時限式集積回路設計システム１００は、ＣＤ又はＤＶＤのようなメモリ媒体の装荷をサポートする１つ又はそれよりも多くのドライブを有することができる。
【００３１】
プロセッサ１０６は、命令を実行することができる。命令は、専用コンピュータ、論理回路、又はハードウエア回路によって実施される。この場合に、プロセッサ１０６は、ハードウエア、ファームウエア、ソフトウエア、又はこれらの方法のいずれかの組合せに実施することができる。「実行」という表現は、アプリケーションを実行する処理、又は命令によって呼び出される作動の実施である。命令は、１つ又はそれよりも多くのプログラミング言語、スクリプト言語、アセンブリ言語、又は類似の言語を用いて書くことができる。プロセッサ１０６は、命令を実行することができ、すなわち、プロセッサは、命令によって呼び出される作動を実施することができる。プロセッサ１０６は、情報を受け入れ、送り、処理し、格納するために出力インタフェース１０４、入力インタフェース１０２、及びコンピュータ可読媒体１０８（例えば、メモリ）と作動可能に結合することができる。プロセッサ１０６は、固定メモリデバイスから命令セットを取得し、これらの命令をＲＡＭのいずれかの形態のような一時メモリデバイスに実行可能形態で複写することができる。相対時限式集積回路設計システム１００は、同じか又は異なる処理技術を使用する複数のプロセッサを含むことができる。
【００３２】
相対時限式システム設計アプリケーション１１０は、相対時限式設計構成要素を含む集積回路を設計することに関連付けられた作動を実施することができる。説明するこれらの作動の一部又は全ては、相対時限式システム設計アプリケーション１１０内で実施することができる。作動は、ハードウエア、ファームウエア、ソフトウエア、又はこれらの機構のいずれかの組合せを用いて実施することができる。一例において、図１に示すように、相対時限式システム設計アプリケーション１１０をコンピュータ可読媒体１０８に格納されたソフトウエア内に実施し、相対時限式システム設計アプリケーション１１０の作動を実施する命令の実行に向けてプロセッサ１０６によってアクセス可能にすることができる。相対時限式システム設計アプリケーション１１０は、１つ又はそれよりも多くのプログラミング言語、アセンブリ言語、スクリプト言語、又は類似の言語を用いて書くことができる。
【００３３】
クロックベースの設計は、電子設計自動化（ＥＤＡ）業界に使用されるコンピュータアシスト設計（ＣＡＤ）によって直接にサポートされる。図２は、クロックベースのＥＤＡツールによってサポートされる回路の例を示している。回路は、データ経路２１０と、クロック分配ネットワーク２４０とを含むことができる。データ経路２１０は、第１のレジスタ２１２（例えば、フリップ−フロップ）、第２のレジスタ２１４、及び第３のレジスタ２１６と、第１の組合せ論理（ＣＬ）ブロック２１８及び第２の組合せ論理ブロック２２０とを含むことができる。第１のレジスタ２１２は、入力２２２を受理して、信号２２６上のクロック事象に基づいて値を格納することができる。第３のレジスタ２１６は、出力２２４を出力することができる。レジスタ及び組合せ論理ブロックの入力及び出力は、複数のデータ線ｎ（例えば、バス）を使用することができる。第１のレジスタ２１２の出力は、第１の組合せ論理２１８の入力に与えることができ、第１の組合せ論理２１８の出力において、結果を生成することができる。第２のレジスタに対するクロック入力２２８上で立ち上がりエッジのようなクロック事象が発生すると、第２のレジスタ２１４は、第１の組合せ論理２１８によって生成された結果を捕捉することができる。同様に、第２のレジスタ２１４の出力を第２の組合せ論理２２０の入力に与えることができ、第２の組合せ論理２２０の出力において結果を生成することができる。第３のレジスタに対するクロック入力２３０上で立ち上がりエッジのようなクロック事象が発生すると、第３のレジスタ２１６は、第２の組合せ論理２２０によって生成された結果を捕捉することができる。クロックネットワーク２４０は、指定周波数における周期波形を生成する論理２４２を含むことができる。この周期波形信号は、クロックネットワーク２４４にわたって設計内のレジスタまで分配することができる。従来のＥＤＡツールは、クロック発生器２４２のターゲットサイクル回数に基づいて、組合せ論理ブロック２１８及び２２０のタイミング駆動の最適化及び合成をサポートすることができる。クロック分配ネットワーク２４４及び２４６は、異なるクロックツリー経路２４４及び２４６の間で低いスキューのみを有してクロック発生器２４２からの周波数を維持することができる。
【００３４】
図３は、従来のクロックベースのＥＤＡによってサポートされない可能性がある相対時限式回路モジュールを有するためのシステムの非同期回路３００の例を示している。図３の例では、別個のデータ経路３１０及び制御ネットワーク３４０が使用される。データ経路３１０は、第１のレジスタ３１２（データ入力「Ｄ」及びデータ出力「Ｑ」を有するように構成されたデータフリップ−フロップ又は遅延フリップ−フロップ（Ｄフリップ−フロップ）のようなラッチ）、第２のレジスタ３１４、及び第３のレジスタ３１６と、第１の組合せ論理ブロック３１８及び第２の組合せ論理ブロック３２０とを含むことができる。第１のレジスタ３１２は、入力３２２を受理して、第１のレジスタクロック入力３２６に基づいて値を格納することができる。第３のレジスタ３１６は出力３２４を出力する。レジスタ及び組合せ論理ブロックの入力及び出力は、複数のデータ線ｎ（例えば、バス）を使用することができる。第１のレジスタ３１２の出力は、第１の組合せ論理３１８の入力に与えることができ、第１の組合せ論理３１８の出力において、結果を生成することができる。第２のレジスタクロック入力３２８上で立ち上がりエッジのようなクロック事象が発生すると、第２のレジスタ３１４は、第１の組合せ論理３１８によって生成された結果を捕捉することができる。同様に、第２のレジスタ３１４の出力を第２の組合せ論理３２０の入力に与えることができ、第２の組合せ論理３２０の出力において結果を生成することができる。第３のレジスタクロック入力３３０上で立ち上がりエッジのようなクロック事象が発生すると、第３のレジスタ３１６は、第２の組合せ論理３２０によって生成された結果を捕捉することができる。非同期パイプライン内のレジスタ３１２、３１４、及び３１６は、ラッチ、フリップ−フロップ、動的ゲート、又はあらゆる他のメモリ要素とすることができる。
【００３５】
クロック事象を発生させるのに、図２に示すクロックネットワーク２４０を使用する代わりに、非同期回路は、図３の制御ネットワーク３４０内に示すように、データをレジスタ内にいつ格納されるかを決定するのにハンドシェイク処理プロトコルを使用する時限式回路モジュールを使用することができる。図３に示す非同期ネットワークは、図２のクロックネットワークと構造が類似のものとすることができる。しかし、遅延不感パイプライン又は他の非同期ネットワーク設計のような異なる構造を使用することができる。このハンドシェイク処理ネットワークは、データ経路３１０内でのデータの記憶を制御するクロック信号を生成することができる。これらの事象は、クロック事象が発生する前にレジスタの入力におけるデータが安定している限り、あらゆる遅延を伴って発生することができる。制御ネットワーク３４０は、第１の制御モジュール３４２、第２の制御モジュール３４４、及び第３の制御モジュール３４６を含むことができる。データ経路内のラッチの間の各データ経路は、関連付けられた制御チャネルを含むことができる。入力制御チャネル３５２を入力データ３２２に関連付けることができ、制御チャネル３４８を組合せ経路３１８に関連付けることができ、制御チャネル３５０をデータ論理経路３２０に関連付けることができ、出力３２４を制御チャネル３５４に関連付けることができる。制御チャネルは、信号伝播の遅延と、関連付けられたデータ経路のデータ関数とを整合させるように設計された遅延論理を含むことができる。この遅延論理は、制御チャネル上のハンドシェイク信号をステアリングして遅延を生成する遅延モジュール３５８及び３６０のような構造を含む。制御チャネル３４８は、遅延要素３５８を含み、制御チャネル３５０は、遅延要素３６０を含む。図３に示す遅延要素は、前方ハンドシェイク経路上に配置されているが、使用されるプロトコルに依存して後方経路上に配置することができる。ハンドシェイク制御に使用される時限式回路モジュール３４２、３４４、及び３４６の各々は、クロック信号と、モジュールの入力制御チャネル及び出力制御チャネルとの間のハンドシェイクプロトコル関係を決定する機能を実施することができる。多くの可能なプロトコルを使用することができる。
【００３６】
図４は、従来のクロックＥＤＡによってサポートされない可能性がある時限式回路モジュールを有する別のシステムの遅延不感非同期回路４００の例を示している。図４では、制御経路とデータ経路とを互いに統合することができる４１０。統合経路４１０内の各データビットは、データ値、並びにデータの有効性を識別する通信プロトコルを用いて符号化することができる。統合経路は、デュアルレールコード、４つのうちの１つのコード、ｎ個のうちのｍ個のコード、遅延不感最小項合成（ＤＩＭＳ）コード、又はあらゆる他の同様のコードとして符号化することができる。データ経路４１０は、第１の制御バンク４１２から４１４までと、第２の制御バンク４１６から４１８までとを含むことができる。制御論理は、完了検出（ＣＤ）論理４２２及び４２４を含むことができる。ＣＤ論理４２２は、第１の制御バンク４１２から４１４までにおける全ての値が有効である時に確認応答（ａｃｋi）４５２をアサートし、これらのデータ値がアサート解除された時に、ａｃｋi４５２をアサート解除することができる。同様に、ＣＤ論理４２２は、第２の制御バンク４１６から４１８までが全て有効である時にその後のａｃｋ（ａｃｋi+1）をアサートし、データ値がアイドル状態にある時にａｃｋi+1４５４をアサート解除することができる。データは、実施されたプロトコルに従って制御バンクに格納することができる。コントローラは、入力チャネルと出力チャネルの間で異なる並行性を有する様々なプロトコルを実施することができる。例示的なプロトコルでは、その後の段からの確認応答がアサート解除され、入力が有効データを有するものとして符号化された時に、データを制御バンクに格納することができる。同様に、制御バンクの出力は、データ入力が無効であり、確認応答がアサートされた時に、無効なデータを示すことができる。従って、この例示的なプロトコルでは、第１の制御バンク４１２から４１４までが、入力４４２から４４４までを受理することができる。ａｃｋi+1４５４がアサート解除状態になると、データを制御レジスタからデュアルレールｎビット関数４２０内に出力することができ、完了検出モジュール４２２は、確認応答ａｃｋi４５２をアサートすることができる。第１のレジスタ４１２から４１４までの出力は、デュアルレールコード、ｎ個のうちのｍ個のコード、ＤＩＭＳコード、又はあらゆる他の類似のコードを用いて関数を符号化することができる。データが次の制御バンク４１６から４１８までに対して有効として符号化され、入力信号４５６がアサート解除されると、関数結果をレジスタバンク４１６から４１８に格納することができる。制御バンクは、組合せ関数論理の一部を実施することができる。
【００３７】
クロックベースのＥＤＡフローは、フリップ−フロップ及びラッチのような極めて少数のシーケンシャルセルに対して統合されたタイミングしか有することができない。従って、フリップ−フロップ又はラッチの間に組合せ論理を持たないいずれかの他のモジュールは、ＥＤＡツールフロー内のタイミング駆動アルゴリズムのサポートを受けるために事前特徴付けが行われ、次いで、図１の相対時限式集積回路設計システムを通すことができる。クロックＥＤＡツールフローとの互換性に向けた相対時限式集積回路設計システムの適用は、図３及び図４の３００及び４００に示す例に使用されるモジュールに限定されず、あらゆる時限式設計モジュールに一般的に拡張することができる。
【００３８】
本明細書に説明する技術は、市販のＥＤＡツールに存在するタイミング駆動アルゴリズムが、相対時限式モジュール及び相対時限式設計をクロック設計手法のためのツールによってネイティブに与えられているものと類似の方式でサポートすることを可能にする。クロックベースのＥＤＡ設計ＣＡＤ及びツールフローは、フリップ−フロップ２１２、２１４、及び２１６、並びにラッチ３１２、３１４、及び３１６に加えて、組合せブロック２１８、２２０、３１８、３２０、及び４２０のタイミング駆動最適化を直接にサポートすることができる。クロックネットワーク２４０も、ＥＤＡツールによって直接にサポートすることができる。しかし、タイミング制御論理３４０内の相対時限式モジュール３４２、３４４、及び３４６は、従来のＥＤＡツールによってサポートされない可能性がある。同じく図４の４００においても、相対タイミングモジュール４１２、４１４、４１６、４１８、４２２、及び４２４は、従来のクロックツールフローによってサポートされない可能性がある。本明細書に説明する技術は、ＥＤＡツール内のアルゴリズムが、この場合に、ＥＤＡツール内でネイティブサポートを有するモジュールに対して行うのと全く同じくこれらのモジュールのタイミング駆動最適化を直接にサポートすることができるように、モジュール（すなわち、現在サポートされていないもの）に対するタイミングを集積回路設計におけるモジュールインスタンスにマップすることができる。
【００３９】
この技術を使用すると、遅延整合要素３５８及び３６０、並びにデュアルレールｎビット関数４２０は、（１）設計モジュールをＥＤＡツールによって直接に合成することができ、又は（２）設計モジュールを他のツール及び機構によって設計された組合せ論理とすることができるという２つの形態の一方を取ることができる。ＥＤＡツールフローによって直接に合成される場合に、これらの設計モジュールは、ＥＤＡツールフロー内のタイミング駆動アルゴリズムによって特定の処理をサポートすることを必要としないことが可能である。しかし、設計モジュールは、相対タイミングモジュールとして設計かつ特徴付けることができる。相対タイミングモジュールを使用すると、これらのモジュールは、ＥＤＡツールによってネイティブにサポートされない状態になることができ、他のネイティブにサポートされないモジュールと全く同様に、ＥＤＡツール内でタイミング駆動アルゴリズムを有効化にする機構を使用することができる。
【００４０】
図５は、相対時限式システム設計アプリケーション１１０（図１）における工程を示している。５００の作動は反復作動とすることができ、反復は、双方向矢印及び他のフロー矢印に示すように流れ図内の先行作動に戻るように行われる。使用されるＥＤＡのツール又はプロトコルに基づいて、追加の作動、より少ない作動、又は異なる作動を実施することができる。図５の作動の提示の順序は、例示のために示すものであり、限定的であるように意図したものではない。図５を参照して説明する作動は、相対時限式システム設計アプリケーション１１０（図１）を実行することによって実施することができる。
【００４１】
設計かつ特徴付けにおけるタイミング制約の表現がアーキテクチャのタイミング駆動最適化をサポートするように、相対時限式（ＲＴ）モジュールは、相対タイミングに対して設計かつ特徴付けることができる５１０。挙動的又は構造的ハードウエア記述言語（ＨＤＬ）を生成することで、集積回路（ＩＣ）のためのＩＣシステムアーキテクチャは、相対時間特徴付けされたモジュール（例えば、相対時限式モジュール）を用いて設計することができる５２０。一例において、設計の部分集合は、図３の回路３００と類似の回路を生成することができる。別の例において、設計は、ハードウエア記述言語（ＨＤＬ）で符号化することができる。例えば、ハードウエア記述言語は、Ｖｅｒｉｌｏｇ、超高速集積回路（ＶＨＳＩＣ）ＨＤＬ（ＶＨＤＬ）、又はあらゆる他のハードウエア記述言語を含むことができる。設計は、挙動的技術又は構造的技術を含む、ハードウエア記述言語に対して有効ないずれの方法も使用することができる。しかし、相対時限式モジュールの部分集合は、図９に示すような設計に使用されるセルライブラリ内のインスタンスに基づく構造的設計記述を使用することができる。
【００４２】
ＲＴ設計モジュール５１０によって与えられた制約部分集合は、集積回路設計５２０において特定のＥＤＡツールアプリケーションに関するモジュールのインスタンスにマップすることができる５３０。これらのマッピングは、クロックＥＤＡツール内のタイミング駆動アルゴリズムが、ＲＴモジュール５１０、並びにシステム５２０のタイミング駆動の設計及び最適化をサポートすることを可能にするように行うことができる。このマッピングは、各ＥＤＡツール又は設計工程における各段階（例えば、合成、配置及び経路指定、又はタイミング検証）に対して異なる場合があるいずれかのアルゴリズム又は方法を使用することができる。マッピングは、ＥＤＡツール又は設計段階によって既知であるフォーマットにあるものとすることができる。例えば、制約は、殆どのＥＤＡツールがあまねく理解することができるＳｙｎｏｐｓｙｓ  Ｄｅｓｉｇｎ  Ｃｏｎｓｔｒａｉｎｔ（．ｓｄｃ）フォーマットにマップすることができる。
【００４３】
各ＲＴ遅延制約に対して、タイミングターゲットを生成することができる５４０。一例において、ＲＴ遅延制約は、モジュール及びアーキテクチャの電力及び性能ターゲットに基づくことができる。別の例において、ＲＴ遅延制約は、完成された集積回路を合成及び最適化するのに従来のＥＤＡツール及びＥＤＡフローを用いてマップすることができる。いずれかのフロー、方法、又はＥＤＡツールを使用することができ、又はこの工程を助けるための追加の方法又はアルゴリズムを使用することができる。例えば、一例では、負のタイミングスラックが発生しなくなるまで、合成ツール（例えば、Ｄｅｓｉｇｎ  Ｃｏｍｐｉｌｅｒ（設計コンパイラ））を反復的に作動させ、制約の遅延ターゲットを変更することにより、タイミング閉鎖を提供することができる。負のタイミングスラックは、タイミング違反を表すことができる。
【００４４】
一例では、製作前の最終検証として、ＲＴ設計モジュール５１０を用いて与えられた完全な制約セットを完成された集積回路内のモジュールインスタンスにマップすることができる。一部のＲＴ設計モジュールの循環性と、ＥＤＡツールにおいてタイミンググラフが非循環的であるという一部の要件とに起因して、仕上げマッピングは、回路表現への一部の独立したマッピングの結合の結果とすることができる。設計制約を回路表現にマップし、非循環的な結果から正しい周期的タイミング制約を生成するいずれかのアルゴリズム又は方法を使用することができる。
【００４５】
ＥＤＡツールは、遅延値を修正することによって検索アルゴリズムを用いて閉じたタイミング解を生成する反復を実行することができる５５０。閉じたタイミング解は、タイミング違反のないＩＣアーキテクチャとすることができる。反復は、回路の正確性、並びにタイミング制約に沿った性能に対してＩＣアーキテクチャを収束させるか、又はＩＣアーキテクチャに閉鎖を与えることができる。
【００４６】
一例では、設計５２０に使用される特徴付けされたＲＴモジュール５１０からの設計制約が、最終集積回路設計において正しく成り立つことを確実にするために、クロックＥＤＡツールを用いて設計を検証することができる。例えば、検証工程においてポストレイアウト抽出寄生を使用することができる。制約が成り立つことを検証するには、タイミング検証ツール（例えば、ＰｒｉｍｅＴｉｍｅ）を使用することができる。
【００４７】
ＥＤＡツール反復５５０を実行するのに様々な検索アルゴリズムを使用することができる。例えば、合成と配置及び経路指定とタイミング閉鎖とでは、閉鎖アルゴリズムが異なる場合がある。
【００４８】
例えば、設計の各部分は、相対タイミング制約と、それに関連付けられたアーキテクチャ性能及び電力目標から導出することができるターゲットとに基づいてタイミング収束させることができる。設計ツールを完全に解くことができるＳｙｎｏｐｓｙｓ  Ｄｅｓｉｇｎ  Ｃｏｎｓｔｒａｉｎｔ（ＳＤＣ）制約のセットを得るために、設計のこの部分において、タイミング値は、反復ループで修正することができる。すなわち、この反復の一部として、制約セットが合格したとして設計を生成するのに１つ又はそれよりも多くの市販ＥＤＡツールを使用することができる。設計が負のスラックを有するか否かを決定するために、別のツール（例えば、ＰｒｉｍｅＴｉｍｅ）を使用することができる。結果を評価することができ、制約のうちの一部のタイミングターゲットを修正するアルゴリズムを使用することができる。
【００４９】
いずれかの負のスラックは、収量の低下又は設計の不具合をもたらす可能性がある。従って、収束に到達するように遅延ターゲットを修正することができる。しかし、ツールにおける収束を簡素化するためにタイミングターゲットを修正することにより、性能又は電力の悪化がもたらされる可能性がある。従って、使用されるアルゴリズムは、設計品質に対して直接的な影響を有する可能性がある。合成ツール又は配置及び経路指定ツールのような各ツールは、異なる設計ターゲットを有し、一般的に制約セットの変化に異なって反応する。従って、異なるアルゴリズムが、異なる使用ツールに適する可能性がある。
【００５０】
一部のタイミング経路は、全体設計性能に対して他のものよりも大きい影響を有する可能性がある。従って、性能又は電力の最小の損失しか伴わずに収束の確率を最適化するために、経路を閉鎖アルゴリズム内の他のノードに対して重み付けるか、順序付けるか、又は関連付けることができる。感受性ノードに対する代替経路を検索して修正するアルゴリズムを使用することができる。タイミングが修正される速度を変更するアルゴリズム（焼き鈍しシミュレーションアルゴリズムと類似のもの）を使用することができる。データ経路ノードのようなノードタイプは、クロック信号を生成するハンドシェイク制御経路と対比して異なる性質を有し、アルゴリズム内では異なって処理することができる。タイミンググラフ内で所々に見られるある一定の小さい摂動は、負のスラックへの大きい変化をもたらす可能性がある。例えば、１５ピコ秒（ｐｓ）の最悪の負のスラックを有する解は、２３０ｐｓの最悪の負のスラックにしかならず、この場合に、市販ＥＤＡツールが使用する修正をもたらす可能性がある。ノードの感受性、ノードタイプ、性能及び電力に関する経路の臨界性、並びに関連経路を補償するアルゴリズムは、より高速な収束及びより優れた電力及び性能をもたらすことができる。
【００５１】
相対タイミング制約は、関連タイミング経路を生成するのに使用することができる。関連タイミング経路は、ＳＤＣ制約によって直接にサポートされない可能性がある経路制約の間で成り立つべき基本的なタイミング要件を生成することができる。そのような関係は、図６に示す様々なＥＤＡツール６１０、６１６、及び６２２におけるタイミング閉鎖において維持することができる。タイミング関係は、経路遅延ターゲットに加えて、これらのターゲットの間の関係を含む追加のタイミング情報を追加することによって維持され、かつ得ることができる。追加のタイミング情報は、ＥＤＡツールによって直接にサポートされない可能性があるので、ＳＤＣファイル内にコメントとして含めることができる。このコメントは、ＳＤＣ規格に使用される「プラグマ」を用いて表すことができる。
【００５２】
例えば、相対時間遅延が、
2015524590.tif 000004
（すなわち、式１の変形式）として表され、性能ターゲットが、５０ｐｓのマージンを有するＲＴ制約において５００ｐｓであると仮定すると、関係する遅延を有する以下のＳＤＣプラグマをもたらすことができる。
ｓｅｔ＿ｍａｘ＿ｄｅｌａｙ  ０．４５０  −ｆｒｏｍ  ａ  −ｔｏ  ｂ
ｓｅｔ＿ｍｉｎ＿ｄｅｌａｙ  ０．５００  −ｆｒｏｍ  ａ  −ｔｏ  ｃ
【００５３】
図１４に示すように、これら２つの制約（例えば、ｆｒｏｍ  ａ  ｔｏ  ｂ及びｆｒｏｍ  ａ  ｔｏ  ｃ）の間の関係は、これら２つの制約を互いに結び付ける＃ｍａｒｇｉｎ制約又は＃ｄｐｍａｒｇｉｎ制約を用いて指定することができ、以下に例示するように、分離のマージンに関する情報を含む。
＃ｍａｒｇｉｎ  ０．０５０  −ｆｒｏｍ  ａ  −ｔｏ  ｂ  −ｆｒｏｍ  ａ  −ｔｏ  ｃ
【００５４】
マージンプラグマは、５０ｐｓのマージンが成り立つことを確実にするように最大遅延経路と最小遅延経路を関連付ける。構文は、マージン値、次いで、ａからｂまでの最大遅延、次いで、ａからｃまでの最小遅延経路と指定することができる。＃ｄｐｍａｒｇｉｎ指令は、比較の前に最大遅延経路の値を半分に分割することができる（すなわち、マージンが成り立つように、最大遅延を９００ｐｓよりも小さくすることができる）ことを除いて類似の構文を有することができる。
【００５５】
負のスラックがこれらの２つの経路（最大遅延又は最小遅延）のいずれかの上で発生する場合に、タイミング収束アルゴリズムは、ＥＤＡツールが仕上げ設計に向けて収束することを可能にするように、設計空間を検索し、タイミングターゲットを修正することができる。例えば、最大遅延が負のスラックを有する場合に、アルゴリズムはこの遅延を増大させることができる。例えば、最大遅延経路が４５０ｐｓから４７５ｐｓまで増大すると仮定すると、４７５ｐｓ＋５０ｐｓが５００ｐｓよりも小さくないように、制約が成り立たない場合がある。従って、関係が成り立つように、最小遅延経路を２５ｐｓだけ増大させることができる。
【００５６】
別の例において、最小遅延制約は、遅延上界を持たない場合がある。すなわち、経路ａからｃまでの８００ｐｓの遅延は、最小遅延経路に適合する可能性がある。しかし、最小遅延経路が性能感受性経路である場合に、関係する最大遅延制約を含めることができ、それによって性能ターゲットが５００ｐｓである場合に、以下の制約セットをもたらすことができる。
ｓｅｔ＿ｍａｘ＿ｄｅｌａｙ  ０．４００  −ｆｒｏｍ  ａ  −ｔｏ  ｂ
ｓｅｔ＿ｍａｘ＿ｄｅｌａｙ  ０．５００  −ｆｒｏｍ  ａ  −ｔｏ  ｃ
ｓｅｔ＿ｍｉｎ＿ｄｅｌａｙ  ０．４５０  −ｆｒｏｍ  ａ  −ｔｏ  ｃ
＃ｍａｒｇｉｎ  ０．０５０  −ｆｒｏｍ  ａ  −ｔｏ  ｂ  −ｆｒｏｍ  ａ  −ｔｏ  ｃ
【００５７】
制約セットは、最長遅延経路が実際には５００ｐｓよりも短いことを確実にすることができる。制約セットは、ａからｃまでの経路の境界を５００ｐｓよりも短いか又はそれに等しく、かつ４５０ｐｓよりも長いか又はそれに等しいように限定することができる。最小遅延経路が、そのような制約を有する負のマージンを有する場合に、最大遅延経路を増大させることにより、収束する解をもたらすことができる。同様に、可能である場合に、最小遅延値を低減することによって収束がもたらされることも可能である。
【００５８】
一部のツールは、タイミング閉鎖のためのアルゴリズム及び方式を修正する異なる制約を有することができる。例えば、物理設計では、ＳｙｎｏｐｓｙｓのＩＣＣは、完全なＳＤＣ仕様をサポートする。しかし、ＣａｄｅｎｃｅのＳｏＣ  Ｅｎｃｏｕｎｔｅｒ  ＥＤＩは、ＳＤＣ制約のｓｅｔ＿ｓｉｚｅ＿ｏｎｌｙをサポートしない可能性がある。従って、ＳｏＣ  Ｅｎｃｏｕｎｔｅｒ  ＥＤＩを使用する場合に、相対タイミング制約を適用するのに、特徴付けされたモジュール内の回路をｓｅｔ＿ｄｏｎｔ＿ｔｏｕｃｈとして指定することができる。物理設計においてＳｏＣを使用するときに、タイミング閉鎖に達しない場合に、ユーザは、反復して合成ツールに戻ることができ、ｓｅｔ＿ｄｏｎｔ＿ｔｏｕｃｈとして識別されるゲートのサイズを決定する。
【００５９】
最適化に対して使用することができるアルゴリズムは、合成ツールのタイミングターゲットと対比して異なるタイミングターゲットを物理設計に対して使用することができる。例えば、物理設計において最小遅延経路上に負のスラックが存在する場合に、経路が配置及び経路指定される時に経路を低速にするが、物理設計ツールに対するタイミングターゲットを変更しないように、ユーザ（又は自動操作）は、合成において最小遅延経路値を増大させることができる。
【００６０】
合成と物理設計とタイミング検証の間には、ツールセットの間の別の相違点が存在する可能性がある。合成及び物理設計の制約セットは不完全である可能性があるが、ツールが良い解に収束することを可能にする制約部分集合で構成することができる。同様に、合成及び物理設計における制約は、任意のワイヤ遅延を考慮しない速度非依存の制約しか含むことができない。タイミング検証では、完全なタイミング制約セットを検査することができる。タイミング検証は、ワイヤセグメントにわたる任意の遅延を許す全ての遅延不感検査を含むことができる。タイミング検証における別の相違点は、タイミングを局所的に修正するという実現可能な選択肢に基づいて、収束がもたらされない可能性がある点である。制約セットには別の制約を追加することができ、最終解がロバストであり、全てのタイミングが成り立つことを確実にするために、設計は、追加の制約を伴って設計ツール、合成ツール、又は物理設計ツールに戻ることができる。
【００６１】
図６は、例示的な相対時限式システム設計アプリケーション１１０（図１）の流れ図を示している。図６は、業界に使用される従来のＥＤＡツールとクロックＥＤＡツールを制限するための追加の作動とを含む時限式モジュールを有する集積回路のタイミング駆動の最適化及び検証をサポートするＥＤＡフローを示している。ＥＤＡシステム構成に基づいて、追加の作動、より少ない作動、又は異なる作動を実施することができる。図６の流れ図の作動順序は、限定的であるように意図したものではない。図６を参照して説明する作動は、相対時限式システム設計アプリケーション１１０（図１）を実行することによって実施することができる。
【００６２】
相対タイミング設計モジュールは、ハードウエア記述言語（例えば、Ｖｅｒｉｌｏｇ）で表すことができ、それらの特徴付けデータ及び情報６０２を提供することができる。セルライブラリ情報又はアーキテクチャ性能ターゲットのような追加情報を提供することができる。電力及び性能のターゲットを用いて仕上げアーキテクチャ又はシステムを設計することができる６０４。設計は、相対時限式設計モジュールのインスタンスを含むことができる。アーキテクチャは、Ｖｅｒｉｌｏｇのようなハードウエア記述言語で挙動的に表すことができる。
【００６３】
設計において相対タイミングに対して特徴付けされた各インスタンスは、合成に向けて特定の設計インスタンス６０６にマップされた制約を有することができる。合成のための特定の設計インスタンスは、設計最適化に向けてＥＤＡツール内のタイミング駆動アルゴリズムを有効化にするのに必要な全ての制約を含むことができる。一例において、相対時限式制約のマッピングは、ＲＴ特徴付けされたモジュールの論理の修正を許さない指令、モジュール内でタイミングサイクルを切断する指令、又はモジュールに関するタイミング経路を定める指令を含むことができる。ＥＤＡシステム構成に基づいて、追加の作動、より少ない作動、又は異なる作動を実施することができる。タイミング制約をアーキテクチャにマップするいずれの方法も使用することができる。設計インスタンスへの相対時限式制約のマッピング６０６は、相対時限式設計モジュールのタイミング駆動最適化を可能にすることができる。タイミングサイクルは、有向非循環タイミンググラフ（ＤＡＧ）を生成するために切断することができるアーキテクチャサイクルによって形成することができる。クロックベースのツールは、サイクル切断を自動的に実施することができるが、クロックベースのツールは、相対時限式制約によって指定されたタイミング経路を含むタイミング経路を本質的に保持しない可能性がある。アーキテクチャサイクル切断は、アーキテクチャ内のタイミングサイクルを除去し、更にタイミング駆動最適化に必要とされるタイミング経路を保持することができる。アーキテクチャサイクル切断は、クロックベースのＥＤＡツールフローを使用する相対タイミングモジュールをサポートするのに使用することができる。設計は、挙動的ハードウエア記述言語から合成することができる６０８。合成は、Ｄｅｓｉｇｎ  Ｃｏｍｐｉｌｅｒのような従来のクロックベースのＥＤＡツールを使用することができる。
【００６４】
一例では、使用すべき試験手法の決定を行うことができる。試験が使用されない場合に、工程は、合成タイミング閉鎖検索アルゴリズム６１０に続行することができる。設計には、製造試験適性を付加することができる。例えば、走査試験を選択することができ、走査チェーン及び試験ベクトルを生成するために同期ＥＤＡツール（例えば、Ｔｅｔｒａｍａｘ又はＦａｓｔＳｃａｎ）を使用することができる。選択試験方式をサポートするために、一部の追加の相対タイミング特徴付けされたモジュールを使用することができる。
【００６５】
検索及び閉鎖アルゴリズムに関して上述したように、合成タイミング閉鎖検索アルゴリズム６１０は、集積回路アーキテクチャ内に含まれる相対時限式モジュールにおいてタイミング閉鎖を実施することができる。タイミング閉鎖は、クロックタイミング遅延経路と相対タイミング遅延経路の両方に基づいてシステム内でタイミング違反が発生しない時に到達することができる。負のスラック又はタイミング誤差を除去するために、段階６０４〜６１０の反復を適用することができる。回路設計を合成することができ、負のスラックとして表されるタイミング誤差を決定することができる。負のスラックを除去するために、遅延のターゲット及びマージンを修正することができる。次いで、回路設計を再合成することができ、回路設計内でタイミング違反が発生しなくなるまでタイミングターゲットを修正することができる。合成タイミング閉鎖は、アーキテクチャ又は相対時限式設計モジュールへの修正をもたらすことができる。合成タイミング閉鎖は、従来のクロックベースのＥＤＡツールフローにおける反復を可能にすることができる。
【００６６】
別の例では、事前レイアウト設計を正確性に対して検証することができる。正確性検証は、ＭｏｄｅｌＳｉｍ、ＮＣＶｅｒｉｌｏｇ、又はＥｌｄｏのような従来のクロックベースのＥＤＡツールを用いて実施することができる。
【００６７】
電力及び性能に対して設計を最適化するのを助けるために、回路アーキテクチャに追加の方法又はアルゴリズムを適用することができる。例えば、相対時限式アーキテクチャは、アーキテクチャの最適化を従来のクロック設計におけるものとは異なるものにすることができる様々なサイクル及び局所周波数を含むことができる非同期設計とすることができる。電力及び性能に対してアーキテクチャを最適化するいずれかの方法を適用することができる。電力及び性能の最適化は、システム電力及び性能最適化器によって実施することができ、事象の時限式分離、キャノピーグラフ、可視化技術、電圧低下、又は電力ゲーティングのような方法を含むことができる。電力及び性能の最適化は、クロックＥＤＡツールフローのＣＡＤ構成要素を使用する反復を含むことができる、クロック性能最適化では使用されない追加の方法及びアルゴリズムを含むことができる。
【００６８】
設計において相対タイミングに対して特徴付けされた各インスタンスは、物理レイアウトに関する特定の設計インスタンスにマップされた制約を有することができる。物理レイアウトに関する特定の設計インスタンスは、設計最適化に向けてＥＤＡツール内でタイミング駆動アルゴリズムを有効化にするのに必要な全ての制約を含むことができる。例えば、物理レイアウトに関する特定の設計インスタンスは、ＲＴ特徴付けされたモジュールの論理の修正を許さない指令、モジュール内でタイミングサイクルを切断する指令、又はモジュールに関するタイミング経路を定める指令を含むことができる。物理レイアウトに関する特定の設計インスタンスは、設計におけるセルの配置に基づいて設計の電力及び性能を最適化するために、タイミング制約に基づいて関連ノードを互いにクラスター化するか又は力指向法を使用する指令を含むことができる。タイミング制約をアーキテクチャにマップするいずれの方法も使用することができる。物理レイアウトに関する特定の設計インスタンスのマッピングは、相対時限式設計モジュールのタイミング駆動最適化を可能にすることができる。
【００６９】
次いで、物理設計を生成することができる６１４。物理設計は、Ｍａｇｍａ、ＩＣＣ、又はＳｏＣのような従来のＥＤＡ設計ツール及びＣＡＤツールのうちのいずれかを用いて実施することができる。物理設計では、集積回路の設計を完成させることができる。合成タイミング閉鎖と同様に、負のスラックを除去し、物理設計のタイミング閉鎖を与えるために、物理設計タイミング閉鎖検索アルゴリズム６１６を使用することができる。タイミング閉鎖は、クロックタイミング遅延経路と相対タイミング遅延経路の両方に基づいてシステム内でタイミング違反が発生しない時に到達することができる。負のスラック又はタイミング誤差を除去するために、段階６０４〜６１６の反復を適用することができる。
【００７０】
挙動正確性及びタイミング正確性のタイミング検証に向けて、完全な相対タイミング制約セットを物理設計インスタンスにマップすることができる６１８。一例では、合成及び物理設計における設計フローにおいて、速度非依存タイミング制約の部分集合のみを使用することができる。最終設計検証では、完全でロバストな制約セットを使用することができる。タイミング検証のためのマッピングは、完全な速度非依存制約セットだけではなく、遅延不感（非時限式）法を使用するシステムをモデル化する際に使用される追加の制約を含むことができる。例えば、設計が、望ましい性能で正しく作動するために得るタイミング要件を検証することができる複数の制約セットを生成することができる。タイミング検証は、結合されたものが制約の全てをカバーする異なる制約セットを使用する反復検証実行を使用することができる。反復は、相対時限式設計モジュールの通常は順次的かつ循環的な性質に（ａ）有向非循環グラフ（ＤＡＧ）であるタイミンググラフを形成するためにタイミングサイクルを切断する必要性及び（ｂ）検査しなければならないタイミング経路を保持する要求を加えたものによるものとすることができる。多くの場合にこれら２つの条件は、異なるタイミング制約経路において互いに排他的であり、複数回の検証実行を必要とする。完全なタイミング制約セットをアーキテクチャにマップするいずれかの方法及び複数の実行セットを使用することができる。タイミング検証のためのマッピングは、相対時限式設計モジュールのタイミング駆動最適化を可能にすることができる。性能、正確性、及び収量に対してポストレイアウト設計を検証することができる６２０。クロックベースのタイミング検証ＥＤＡツールは、ＰｒｉｍｅＴｉｍｅ及びＭｏｄｅｌＳｉｍを含むことができる。合成タイミング閉鎖及び物理設計タイミング閉鎖と同様に、負のスラックを除去し、仕上げポストレイアウト設計のタイミング閉鎖を与えるために仕上げタイミング閉鎖検索アルゴリズム６１６を使用することができる。タイミング閉鎖は、クロックタイミング遅延経路と相対タイミング遅延経路の両方に基づいてシステム内でタイミング違反が発生しない時に到達することができる。負のスラック又はタイミング誤差を除去するために、段階６０４〜６２２の反復を適用することができる。負のスラックが除去された後に、検証された最終集積回路をテープアウトすることができ６２４、製造に向けて製造工場に送られる。
【００７１】
一例では、線形パイプライン段３００（図３）を相対時限式アーキテクチャ５２０（図５）の一部とすることができる。このパイプラインは、パイプライン乗算演算のようないずれかの機能を実施することができる。例えば、図７は、通信システムの計算法（ＣＣＳ）を用いた制御モジュール３４２、３４４、及び３４６の挙動の形式仕様を示している。
【００７２】
制御モジュールを実施するために、状態グラフ及び記号的遷移グラフ（ＳＴＧ）のような多くの異なる方法及び回路方式を使用することができる。一例において、仕様７００の回路実装８００を図８に例示している。制御モジュール回路（すなわち、ハンドシェイク回路）は、７つの組合せ論理ゲート、すなわち、インバータ８０４、８０６、及び８１０、並びにＮＯＲゲート８０８及び８１４のような静的論理ゲートと、ＡＮＤ−ＯＲ反転ゲート（ＡＯＩゲート）８０２及び８１２のような複合ゲートとを含む。ＡＯＩゲートは、１つ又はそれよりも多くのＡＮＤゲートにＮＯＲゲートが続く組合せから構成される２レベルの混合論理関数又は複合論理関数である。動的論理、ドミノゲート、ラッチ、又は多数決ゲートのようないずれかの他のタイプのゲートを使用することができる。モジュール８００の論理は、シーケンシャル機能を実施することができる。シーケンシャル論理は、図示のように、フィードバックを用いて実施することができる。フィードバックは、ゲート８０２及び８０４と、ゲート８０２、８０４、及び８０８と、ゲート８１２及び８１４と、ゲート８１２、８１４、及び８０８とを通るサイクルの場合のように、回路トポロジーにおいてサイクルを生成することができる。シーケンシャル回路は、ラッチ、動的ゲート、又は大多数ゲートを使用することによって存在する状態を含むことができる。回路は、Ｖｅｒｉｌｏｇのようなハードウエア記述言語を用いて説明することができる。一例では、８００で表した論理は、図９に示すように、構造的Ｖｅｒｉｌｏｇを有する１３０ナノメートル（ｎｍ）Ａｒｔｉｓａｎセルライブラリ９００にマップすることができる。すなわち、作動５１０（図５）に従って回路設計を特徴付けることができる。
【００７３】
相対タイミングは、一般的な回路及びシステムの不均一なタイミング要件の正確な捕捉、モデル化、及び検証を可能にする数学的タイミングモデルである。これらの設計では、設計者及びツールが間接的な意味を指定及び理解し、より一般的な回路構造及び高度なクロック技術のタイミングを操作することを可能にするためのクロック周波数のような従来の間接表現を用いずに、タイミング制約を明示的にすることができる。回路の性能及び正確性に影響を及ぼすタイミング制約は、通例の実数値変数又は遅延範囲ではなく、論理制約に変換することができる。論理制約は、コンパクトな表現をサポートし、より効率的な検索及び検証のアルゴリズムを展開配備することを可能にすることができ、それによってタイミングを最適化、物理配置、及び検証の設計ツールと組み合わせる機能を有意に改善することができる。その結果、設計者及びＣＡＤツールがタイミングを表す手法をＥＤＡツールがタイミング駆動最適化を実施することを変わらずに可能にするだけでなく、システムにおける遅延ターゲットにわたって細粒度制御も与えるように変更することができる。明示的タイミング制約を使用するこの方式は、一部の回路設計において有意な電力−性能の利点を与えることができる。
【００７４】
回路内のタイミングは、性能と正確性の両方を決定することができる。制御モジュールの正確性と性能の両方の条件を表す上で、相対タイミングを使用することができる。例えば、タイミング制約は、ある一定の状態を到達不能にする論理表現として表すことができる。除去される状態は、回路の不具合を含む場合があり、従って、回路正確性にはタイミングが必要である可能性がある。従って、物理的な実現において全てのタイミングが満たされる場合に、回路は、不具合なしに作動させることができる。性能制約は、正しい回路作動に対して不可欠であるとは限らないが、性能ターゲットが満たされることを確実にすることができる。図１０は、相対タイミング制約１０００（式１でも表される）を指定するのに使用される経路ベースの相対タイミングにおける一般形式を示している。式は、発散点（ｐｏｄ）と収束点（ｐｏｃ）を含む。発散点ｐｏｄは、システム内でクロック事象又はハンドシェイク信号のような他の事象を発生させるいずれかの事象とすることができる。収束点は、２つの事象ｐｏｃ0及びｐｏｃ1とマージンｍとから構成される。２つのｐｏｃ事象は、回路が正しく作動するか又は望ましい性能を得るように時間的に順序付けられる。事象ｐｏｄとｐｏｃ0にマージンｍを加えたもの間の最大遅延は、事象ｐｏｄから事象ｐｏｃ1までの最小遅延よりも小さい場合がある。
【００７５】
図１１は、図９の回路がシステム内で正しく作動するための速度非依存タイミング制約１１００を示している。制約１１００は、３つのクラス、すなわち、局所実施制約、時限式プロトコル制約、及び束データ制約を含むことができる。遅延不感制約セット（図示せず）は、完全な設計特徴付けフローの一部とすることができる。制約の個数及びタイプは、実施に使用されるゲート、プロトコルの並行性、及びシステム設計に基づいて決定することができる。図１１の制約の例示的実施形態において、ｐｏｄ、ｐｏｃ0、及びｐｏｃ1に対するインデックスが存在しない場合に、事象は、モジュールに局在化するノードを参照することができる。束データ制約の場合のようにインデックスが確実に存在する場合に、これらのインデックスは、異なるモジュールインスタンス内又は設計内の階層構造の高いレベルにあるノードへの参照を示すことができる。大きいインデックス（すなわち、大きい数のインデックス）は、設計内で要求信号が到達するパイプラインの下方（すなわち、下流）の参照を示し、それに対して小さいインデックス（すなわち、小さい数のインデックス）は、確認応答信号を通してパイプラインを上方（すなわち、上流）に遡ることができる。従って、束データ制約に対する経路は、下流のコントローラへ、要求信号を通して下流のコントローラのラッチまで移動することができる。図１１のタイミング制約１１００は例を提供しているのであって、限定的であるように意図したものではない。相対時限式における端点を表す追加の方法、より少ない方法、又は異なる方法を使用することができる。
【００７６】
制約は、設計インスタンスにマップすることができる５３０（図５）。例えば、図１１のＲＴ制約
2015524590.tif 000005
に対する経路及び遅延制約は、図３のインスタンス３４４に適用された場合に以下のものとすることができる。経路の最大遅延ｌｒi+1＋→ｌａ＿i+1−→ｌａi+1＋→ｙ＿i+1−は、経路の最小遅延ｌｒi+1＋→ｌａ＿i+1−→ｌａi+1＋→ｒａi＋→ｒａ＿i−→ｒｒ＿i＋→ｒｒi−→ｌｒi+1−→ｌａ＿i+1＋→ｌａi+1−よりも小さい場合がある。信号ラベル付け（例えば、ｌａ）にアンダーバー（＿）が続くものは、有効化ロー信号を表すことができ（例えば、ｌａ＿）、それに対して下付き文字がない信号ラベル付けは、有効化ハイ信号を表すことができる（例えば、ｌａ）。信号ラベル付けに続くマイナス符号（−）は、信号の立ち下がりエッジを表すことができ（例えば、ｌａ−）、それに対して信号ラベル付けに続くプラス符号（＋）は、信号の立ち上がりエッジを表すことができる（例えば、ｌａ＋）。整数ｉは、上流設計インスタンスを表すことができ、それに対して整数ｉ＋１は、局所設計インスタンスを表すことができる。この経路の一部の有意な態様が存在する。２つの経路の最初の３つの遷移は等しく、従って、クロックベースのＥＤＡツール内で「共通経路ペシミズム」のような共通の経路アルゴリズムを使用することができる。図示のように、ｐｏｄからｐｏｃ1までの経路は循環的なものとすることができる。すなわち、タイミンググラフが非循環的であることを確実にするために、この循環的経路は、どこかで遮断することができる。この循環的経路の合成及び検証において、経路の部分集合であるターゲットを設定する段階又は経路セグメントの和が相対タイミング制約の不等性を満たすようにする段階を含む様々な方法を使用することができる。クロックベースのＥＤＡツールによってサポートされる方式で経路をタイミングツールに正しくマップするいずれの方法も使用することができる。一例では、有向非循環タイミンググラフを生成すること、並びにタイミング経路がＲＴ特徴付けされた設計モジュール内の望ましいゲートを通過することを確実にするこの両方を行うために、サイクル切断を使用することができる。
【００７７】
図９のモジュール９００の構造的タイミングサイクルを遮断する例示的な制約セット１２００を図１２に示している。制約セット１２００は、設計内の全てのノードにわたるタイミンググラフを有向非循環グラフ（ＤＡＧ）として生成するのに使用することができる。タイミンググラフカット指令１２００は、モジュールのゲート内の入力ピンのうちの一部から出力ピンへのタイミング経路を遮断する標準の「ｓｅｔ＿ｄｏｎｔ＿ｔｏｕｃｈ」指令を使用することができる。これらの切断１２００は、図８の例示的な回路８００及び図９における回路８００の例示的なハードウエア記述言語表現９００を参照することができる。この例では、ハンドシェイク回路から生成される局所サイクルとアーキテクチャサイクルの両方を切断するのに、２つのゲート８０２及び８１２内のタイミング経路を切断することで十分とすることができる。信号ｌａ、ｒｒ、及びｙ＿から生成されたフィードバックサイクルは、ゲート８０２及び８１２を通して切断することができる。更に、ハンドシェイク信号から生成されるアーキテクチャフィードバックサイクルは、これらのゲート内のｒａ＿ピンをディスエーブルにすることによって切断することができる。切断は、全てのゲートにおいて少なくとも１つのタイミング経路が残ることができるように行うことができる。タイミングアーク（図１４に示す）が各ゲートを通過する限り、全てのゲートにおいて少なくとも１つのタイミング経路を生成することにより、ＥＤＡツール内でタイミング駆動アルゴリズムを使用することによって各ゲートが適正に最適化されることが可能になる。有向非循環タイミンググラフを生成するのに、タイミングサイクルを切断する異なる方法を使用することができる。有向非循環グラフを生成するのに、追加の経路切断、より少ない経路切断、又は異なる経路切断を使用することができる。
【００７８】
図１３は、相対タイミングに対して特徴付けされた設計モジュールが、クロックＥＤＡツールによって論理的に修正されないことを確実にするために与えられる例示的な制約セット１３００を示している。ＥＤＡツールフロー内に含められるべきタイミングに対して特徴付けされた多くの非サポートモジュールはフィードバックを有することができ、又は他に様々な作動モードの下で発生することになる危険又は欠陥を回避するための冗長的なカバーを有することができる。クロックベースのＥＤＡツールは、冗長的なカバーを最適化することができる。モジュールへの局所修正は、モジュールの特徴付け結果を無効にする恐れもある。従って、相対時間特徴付けされたモジュール内の殆どのセルを合成フローにおける局所修正から保護することができる。例えば、図１３に示す指令セット１３００は、図９の相対時限式設計モジュール９００に適用することができる。図１３では、ｓｅｔ＿ｓｉｚｅ＿ｏｎｌｙ指令が使用されている。ｓｅｔ＿ｓｉｚｅ＿ｏｎｌｙ指令は、ゲートインスタンスを電力及び性能に対して最適化するために、異なる駆動強度に対してゲートインスタンスをサイズ変更することを可能にすることができるが、ゲートインスタンスを論理的に修正することを可能にしない場合がある。ｓｅｔ＿ｄｏｎｔ＿ｔｏｕｃｈのような他の指令を使用することができる。ｓｅｔ＿ｄｏｎｔ＿ｔｏｕｃｈ指令は、ＥＤＡツールによって論理又は駆動強度を修正することを可能にしない。一部の修正を可能にしながらゲートを論理的に保護する異なる方法を適用することができる。ツールフローにおける柔軟性を可能にしながら、尚も相対タイミングの基本的な性質を保持するために追加の制約セット、より少ない制約セット、又は様々なる制約セットを使用することができる。例えば、１次入力及び１次出力上のインバータは、制約によって保護されることを必要としない場合がある。
【００７９】
図１４は、相対時限式インスタンス３４４（図３）の合成及び設計においてＲＴ制約マッピング５３０（図５）において生成されたタイミング経路セット１４００を示している。タイミング経路セット１４００は、相対タイミング制約セット１１００が、タイミンググラフカット指令１２００から生成された有向非循環タイミンググラフために使用されると仮定したものである。１４００におけるタイミング経路は、例示的なアーキテクチャ３００内に使用されるようなインスタンスにマップすることができる。例えば、タイミング経路１４００は、組合せデータ経路３１８と３２０が第１の２つの制約によって指定されているように、０．７５０ｎｓの論理遅延を必要とすると仮定している。１４００の第１及び第３の制約は、１１００の「束データ制約」をカバーし、５０ｐｓのマージンを与える。１１００の全ての他の経路をタイミング経路１４００内でカバーすることができる。
【００８０】
別の例において、第１の「局所実施制約」に対する経路は、
2015524590.tif 000006
からの最大遅延が、
2015524590.tif 000007
からの最小遅延よりも小さいことを示している。１４００における５番目の制約により、完全な最大遅延経路は、０．１２０ｎｓよりも小さいように制限することができる。インスタンスへマップされた（先に示すように）最小遅延経路
2015524590.tif 000008
は、ｌｒi+1＋→ｌａ＿i+1−→ｌａi+1＋→ｒａi＋→ｒａ＿i−→ｒｒ＿i＋→ｒｒi−→ｌｒi+1−→ｌａ＿i+1＋→ｌａi+1−とすることができる。この経路の部分集合は、１４００における第３の制約からエミュレートすることができる。この制約は、ｒｒではなくｌｒから開始することができるが、同じゲートを通過することができる。経路は、完全な経路の部分集合とすることができる。この経路部分集合は、相対タイミング制約の最大遅延構成要素の完全な経路における０．１２０の遅延よりも実質的に大きい０．８００ｎｓの最小遅延を有するので、回路をこのタイミング拘束条件を満たすように正しく合成することができる。
【００８１】
一例では、タイミング制約１１００からの経路及び経路部分集合は、タイミング経路１４００内のタイミング制約の各々にマップすることができる。このマッピングが設計内の全ての相対タイミングインスタンスに対して使用される場合に、制約セットを設計が、電力及び性能に対してタイミング最適化され、同時にシステム内のタイミング制約を満足することを確実にすることができるクロックベースのＥＤＡツールに渡すことができる。追加の制約、より少ない制約、又は異なる制約を使用することができる。制約セットを生成するための異なる方法及びアルゴリズムを使用することができる。一例では、合成ツールによって図３の遅延要素３５８及び３６０を自動的に生成することができる。
【００８２】
設計フローにおける各段階及びＣＡＤツールにおいて、図１２、図１３、及び図１４に示すものと同様であるが、異なる制約部分集合の生成を使用することができる。追加の制約、より少ない制約、又は異なる制約を使用することができる。設計フローにおいて、従来のＥＤＡツールフローの一部ではない追加の段階、より少ない段階、又は異なる段階を使用することができる。例えば、相対時限式システム設計アプリケーションのフロー例６００では、タイミング経路１４００に使用される遅延ターゲットを生成するために、合成タイミング制約６１０を使用することができる。合成タイミング制約６１０は、Ｄｅｓｉｇｎ  Ｃｏｍｐｉｌｅｒのような合成ツールを使用する反復工程を使用することができる。一例では、設計フロー内の多くの段階において、タイミング経路１４００における制約の場合にそうであったように、設計内の実際の経路の部分集合又は近似で十分とすることができる。しかし、仕上げタイミング検証ツールが、フォークワイヤ遅延を含む物理設計に存在する可能性がある実際の遅延及び変化を検証する場合に、最終制約セットは、より精密で完全なものとすることができる。従って、タイミング検証は、設計工程において通常は十分である速度非依存モデルではなく、遅延不感遅延モデルから生成された相対タイミング制約を使用することができる。
【００８３】
図１５の流れ図に示すように、別の例により、クロック式電子設計自動化（ＥＤＡ）ツールフローの使用を可能にする相対タイミングアーキテクチャを生成する方法１５００を提供する。本方法は、少なくとも１つのコンピュータ可読媒体又は１つの持続性機械可読ストレージ媒体上に含まれる命令としてマシン又はコンピュータ回路上で実行することができる。本方法は、ブロック１５１０におけるように、相対時限式モジュールを用いて集積回路（ＩＣ）アーキテクチャを生成する作動を含む。ブロック１５２０におけるように、相対タイミング制約（ＲＴＣ）を相対時限式モジュールの相対時限式インスタンスにマップする作動が続く。本方法の次の作動は、ブロック１５３０におけるように、各相対タイミング制約に対して遅延値を生成する段階とすることができる。
【００８４】
一例において、遅延値を生成する作動は、ＩＣアーキテクチャ内でタイミング違反が発生しなくなるまで相対タイミング制約の遅延値を反復的に修正し、それによって閉じたタイミング解を生成する段階を更に含むことができる。別の例において、本方法は、クロックツールフロー内で相対時限式モジュールのタイミング駆動最適化を用いてＩＣアーキテクチャの電力及び性能を最適化する段階を更に含むことができる。電力及び性能を最適化する段階は、事象の時限式分離、キャノピーグラフ、可視化技術、電圧低下、又は電力ゲーティングを含むことができる。
【００８５】
別の構成では、ｐｏｄが発散点（ｐｏｄ）事象であり、ｐｏｃ0が、適正な回路作動において第２の収束点（ｐｏｃ）事象ｐｏｃ1の前に発生される第１のｐｏｃ事象であり、マージンｍがｐｏｃ0とｐｏｃ1の間の最小分離である時に、相対タイミング制約（ＲＴＣ）は、
2015524590.tif 000009
によって表すことができる。遅延値は、ｐｏｄ事象と第１のｐｏｃ事象の間の第１の相対事象経路に対して最大ターゲット遅延を与え、ｐｏｄ事象と第２のｐｏｃ事象の間の第２の相対事象経路に対して最小ターゲット遅延を与え、第１の相対事象と第２の相対事象の間の最小分離を表すマージンターゲット遅延を与える。
【００８６】
別の例において、相対タイミング制約をマップし、各相対タイミング制約に対して遅延値を生成する作動は、相対タイミング制約のための端点を定める段階と、相対タイミング制約の端点の間のタイミング経路を決定する段階とを更に含むことができ、ＩＣアーキテクチャの各ゲートをＩＣアーキテクチャの少なくとも１つのタイミング経路で表すことができる。
【００８７】
別の構成において、本方法は、相対時限式モジュール又は相対時限式インスタンスの論理修正を阻止する段階を更に含むことができる。
【００８８】
図１６の流れ図に示すように、別の例は、相対時限式モジュールを用いて相対タイミングアーキテクチャを生成するように構成されたクロックツールフローのための電子設計自動化（ＥＤＡ）ツールのコンピュータ回路の機能１６００を提供する。この機能は、方法として実施することができ、又は少なくとも１つのコンピュータ可読媒体又は１つの持続性機械可読ストレージ媒体上に含まれる命令としてマシン上で実行することができる。コンピュータ回路は、ブロック１６１０におけるように、相対時限式モジュールを用いてハードウエア記述言語（ＨＤＬ）集積回路（ＩＣ）アーキテクチャを生成するように構成することができる。コンピュータ回路は、ブロック１６２０におけるように、相対タイミング制約（ＲＴＣ）を相対時限式モジュールの相対時限式インスタンスにマップするように更に構成することができる。コンピュータ回路は、ブロック１６３０におけるように、各相対タイミング制約に対してタイミングターゲットを生成するように構成することができる。
【００８９】
一例において、コンピュータ回路は、ＨＤＬ  ＩＣアーキテクチャ内で負のタイミングスラックが発生しなくなるまで相対タイミング制約のタイミングターゲットを反復的に修正するように更に構成することができる。負のタイミングスラックは、タイミング違反を表すことができる。一構成において、タイミングターゲットを反復的に修正するように構成されたコンピュータ回路は、クロックタイミング遅延経路と相対タイミング遅延経路の両方において、負のタイミングスラックを収束させるように更に構成することができる。別の構成において、タイミングターゲットを反復的に修正するように構成されたコンピュータ回路は、相対タイミング制約を満足するように、ＨＤＬ  ＩＣアーキテクチャ内に遅延要素を追加するように更に構成することができる。別の構成において、コンピュータ回路は、クロックツールフロー内で相対時限式モジュールのタイミング駆動最適化を用いてＨＤＬ  ＩＣアーキテクチャの電力及び性能を最適化するように更に構成される。
【００９０】
別の例において、相対タイミング制約をマップするように構成されたコンピュータ回路は、相対タイミング制約のための端点を定めるように更に構成することができる。タイミングターゲットを生成するように構成されたコンピュータ回路は、相対タイミング制約のタイミング経路の両端にある端点の間のタイミングアークを決定するように更に構成することができ、タイミングアークの複合体のうちの１つは、ＩＣアーキテクチャの各ゲートを通過する。
【００９１】
別の構成において、ｐｏｄが発散点（ｐｏｄ）事象であり、ｐｏｃ0が、適正な回路作動において第２の収束点（ｐｏｃ）事象ｐｏｃ1の前に発生される第１のｐｏｃ事象であり、マージンｍが、ｐｏｃ0とｐｏｃ1の間の最小分離である時に、相対タイミング制約（ＲＴＣ）は、
2015524590.tif 000010
によって表すことができる。タイミングターゲットは、ｐｏｄ事象と第１のｐｏｃ事象の間の第１の相対事象経路に対して最大ターゲット遅延を与え、ｐｏｄ事象と第２のｐｏｃ事象の間の第２の相対事象経路に対して最小ターゲット遅延を与え、又は第１の相対事象と第２の相対事象の間の最小分離を表すマージンターゲット遅延を与えることができる。
【００９２】
別の例において、コンピュータ回路は、相対時限式モジュールを設計かつ特徴付けるように更に構成することができる。別の構成において、各相対タイミング制約に対してタイミングターゲットを生成するように構成されたコンピュータ回路は、アーキテクチャ電力ターゲット又はアーキテクチャ性能ターゲットに基づくことができる。
【００９３】
別の例において、ＥＤＡツールは、合成ツール、最適化ツール、物理設計ツール、物理経路指定及び配置ツール、又はタイミング検証ツールとすることができる。別の構成において、相対時限式モジュールは、設計をＶｅｒｉｌｏｇ、ＨＤＬ、又は超高速集積回路（ＶＨＳＩＣ）ＨＤＬ（ＶＨＤＬ）に符号化することにより、挙動的ＨＤＬ  ＩＣアーキテクチャ又は構造的ＨＤＬ  ＩＣアーキテクチャを生成することができる。
【００９４】
図１７は、プロセッサ１７１４を含む相対タイミングアーキテクチャ発生に向けて構成されたクロックツールフローのための電子設計自動化（ＥＤＡ）ツール例１７１２を示している。一例において、プロセッサは、図１５の１５００で記述された方法を実施するように構成することができる。別の例において、プロセッサは、図１６の１６００で記述されたコンピュータ回路を実施するように構成することができる。
【００９５】
一例において、プロセッサ１７１４（図１７）は、相対時限式モジュールを用いて集積回路（ＩＣ）アーキテクチャを生成し、相対タイミング制約（ＲＴＣ）を相対時限式モジュールの相対時限式インスタンスにマップし、各相対タイミング制約に対して遅延ターゲットを生成するように構成することができる。別の構成において、プロセッサは、タイミング違反を排除するために、タイミング閉鎖検索アルゴリズムを用いて遅延ターゲットを再帰的に変更するように構成することができる。
【００９６】
別の例において、ｐｏｄが発散点（ｐｏｄ）事象であり、ｐｏｃ0が、適正な回路作動において第２の収束点（ｐｏｃ）事象ｐｏｃ1の前に発生される第１のｐｏｃ事象であり、マージンｍがｐｏｃ0とｐｏｃ1の間の最小分離である時に、相対タイミング制約（ＲＴＣ）は、
2015524590.tif 000011
によって表すことができる。遅延ターゲットは、ｐｏｄ事象と第１のｐｏｃ事象の間の第１の相対事象経路に対して最大ターゲット遅延を与え、ｐｏｄ事象と第２のｐｏｃ事象の間の第２の相対事象経路に対して最小ターゲット遅延を与え、又は第１の相対事象経路を第２の相対事象経路に第１の相対事象と第２の相対事象の間の最小分離によって関連付けるマージン制約を与えることができる。
【００９７】
別の構成において、プロセッサは、クロックツールフロー内で相対時限式モジュールのタイミング駆動最適化を用いてＩＣアーキテクチャの電力及び性能を最適化するように更に構成することができる。別の例において、プロセッサは、相対タイミング制約のための端点を定め、相対タイミング制約の端点の間のタイミング経路を決定するように更に構成することができる。ＩＣアーキテクチャの各ゲートをＩＣアーキテクチャの少なくとも１つのタイミング経路で表すことができる。別の構成において、プロセッサは、相対時限式モジュールの論理の修正を阻止するように更に構成することができる。
【００９８】
別の例では、集積回路（ＩＣ）を生成するのに、ＥＤＡツール１７１２を使用する電子設計自動化（ＥＤＡ）システム１７１０を使用することができる。ＥＤＡシステムは、アーキテクチャ設計ツール１７２０と、合成ツール１７２２と、物理設計ツール１７２４と、タイミング検証ツール１７２６とを含むことができる。アーキテクチャ設計ツールは、ハードウエア記述言語（ＨＤＬ）を用いて特徴付け情報、セルライブラリ情報、及びアーキテクチャ性能ターゲットを符号化することによって集積回路（ＩＣ）アーキテクチャを設計かつ特徴付けるためのＥＤＡツールを含むことができる。一例において、アーキテクチャ設計ツールは、Ｖｅｒｉｌｏｇ、Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ（ＨＤＬ）、又は超高速集積回路（ＶＨＳＩＣ）ＨＤＬ（ＶＨＤＬ）を使用することができる。合成ツールは、ＨＤＬの挙動を実施するハードウエア論理を生成するためのＥＤＡツールを含むことができる。一例において、合成ツールは、Ｓｙｎｏｐｓｙｓ設計制約（．ｓｄｃ）、Ｄｅｓｉｇｎ  Ｃｏｍｐｉｌｅｒ、Ｅｎｃｏｕｎｔｅｒ  Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ（ＲＴＬ）、Ｘｉｌｉｎｘ  Ｉｎｔｅｇｒａｔｅｄ  Ｓｏｆｔｗａｒｅ  Ｅｎｖｉｒｏｎｍｅｎｔ（ＩＳＥ）、Ｘｉｌｉｎｘ  Ｓｙｎｔｈｅｓｉｓ  Ｔｏｏｌ（ＸＳＴ）、Ｑｕａｒｔｕｓ、Ｓｙｎｐｌｉｆｙ、ＬｅｏｎａｒｄｏＳｐｅｃｔｒｕｍ、又はＰｒｅｃｉｓｉｏｎを使用することができる。物理設計ツールは、ハードウエア論理に基づいてハードウエア回路を配置及び経路指定するためのＥＤＡツールを含むことができる。一例において、物理設計ツールは、Ｓｙｎｏｐｓｙｓ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｃｏｍｐｉｌｅｒ（ＩＣＣ）、Ｃａｄｅｎｃｅ  Ｅｎｃｏｕｎｔｅｒ  Ｄｉｇｉｔａｌ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ（ＥＤＩ）、又はＣａｄｅｎｃｅ  Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ（ＳｏＣ）Ｅｎｃｏｕｎｔｅｒを使用することができる。タイミング検証ツールは、速度非依存タイミング制約及び遅延不感タイミング制約を用いて性能、正確性、及び収量に対してハードウエア回路を検証するためのＥＤＡツールを含むことができる。一例において、タイミング検証ツールは、Ｐｒｉｍｅｔｉｍｅ、Ｔｅｍｐｕｓ、Ｍｏｄｅｌｓｉｍ、Ｅｌｄｏ、Ｓｉｍｕｌａｔｉｏｎ  Ｐｒｏｇｒａｍ  ｗｉｔｈ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｅｍｐｈａｓｉｓ（ＳＰＩＣＥ）、Ｖｅｒｉｌｏｇ  Ｃｏｍｐｉｌｅｄ  Ｓｉｍｕｌａｔｏｒ（ＶＣＳ）、又はＣａｄｅｎｃｅ  Ｖｅｒｉｌｏｇ−Ｌ  ｔｉｅｒ  ｅｘｔｅｎｓｉｏｎ（Ｖｅｒｉｌｏｇ−ＸＬ）を使用することができる。
【００９９】
様々な技術又はそのある一定の態様又は部分は、フロッピー（登録商標）ディスケット、コンパクトディスク読取専用メモリ（ＣＤ−ＲＯＭ）、ハードドライブ、持続性コンピュータ可読ストレージ媒体、又はあらゆる他の機械可読ストレージ媒体のような有形媒体内に実施されたプログラムコード（すなわち、命令）の形態を取ることができ、プログラムコードがコンピュータのようなマシン内にロードされてマシンによって実行されると、マシンは、様々な技術を実施するための装置になる。回路は、ハードウエア、ファームウエア、プログラムコード、実行可能コード、コンピュータ命令、及び／又はソフトウエアを含むことができる。持続性コンピュータ可読ストレージ媒体は、信号を含まないコンピュータ可読ストレージ媒体とすることができる。プログラム可能コンピュータ上でのプログラムコードの実行の場合に、コンピュータデバイスは、プロセッサと、プロセッサによって可読なストレージ媒体（揮発性及び不揮発性のメモリ及び／又は記憶要素を含む）と、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含むことができる。揮発性及び不揮発性のメモリ及び／又は記憶要素は、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラマブル読取専用メモリ（ＥＰＲＯＭ）、フラッシュドライブ、光ドライブ、磁気ハードドライブ、固体ドライブ、又は電子データを格納するための他の媒体とすることができる。ノード及び無線デバイスは、送受信機モジュール（すなわち、送受信機）、カウンタモジュール（すなわち、カウンタ）、処理モジュール（すなわち、プロセッサ）、及び／又はクロックモジュール（すなわち、クロック）又はタイマモジュール（すなわち、タイマ）を含むことができる。本明細書に説明する様々な技術を実施又は利用することができる１つ又はそれよりも多くのプログラムは、アプリケーションプログラミングインタフェース（ＡＰＩ）、再使用可能制御を使用することができる。そのようなプログラムは、コンピュータシステムと通信するための高レベル手順型プログラミング言語又はオブジェクト指向プログラミング言語に実施することができる。しかし、プログラムは、必要に応じてアセンブリ又はマシン言語に実施することができる。いかなる場合にも、言語は、コンパイル実行言語又はインタープリター実行言語とすることができ、ハードウエア実施と組み合わせることができる。
【０１００】
本明細書に説明する機能ユニットのうちの多くのものを特にこれらのユニットの実施独立性を強調するためにモジュールとラベル付けしたことを理解しなければならない。例えば、モジュールは、特別仕様の超大規模集積回路（ＶＬＳＩ）回路又はゲートアレイ、論理チップ、トランジスタ、又は他の離散構成要素のような汎用半導体を含むハードウエア回路として実施することができる。モジュールは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラム可能アレイ論理、プログラム可能論理デバイスなどのようなプログラム可能ハードウエアデバイスに実施することができる。
【０１０１】
モジュールは、様々なタイプのプロセッサによる実行のためのソフトウエアに実施することができる。例えば、識別される実行可能コードのモジュールは、例えば、オブジェクト、手順、又は関数として編成することができるコンピュータ命令から構成される１つ又はそれよりも多くの物理ブロック又は論理ブロックを含むことができる。しかし、識別されるモジュールの実行可能ファイルは、物理的に一緒に存在する必要はなく、論理的に互いに接続された場合にモジュールを構成し、このモジュールに対して記述された目的を実現する異なる場所に格納された異なる命令を含むことができる。
【０１０２】
実際には、実行可能コードのモジュールは、単一命令又は多くの命令とすることができ、一部の異なるコードセグメントにわたって。異なるプログラムの間で、かつ一部のメモリデバイスにわたって分配することさえ可能である。同様に、本明細書において作動データをモジュール内で識別して例示したが、これらの作動データは、あらゆる適切な形態で実施することができ、あらゆる適切なタイプのデータ構造内で編成することができる。作動データは、単一データセットとして収集することができ、又は異なる記憶デバイスを含む異なる場所にわたって分配することができ、少なくとも部分的には単にシステム又はネットワーク上の電子信号として存在することができる。モジュールは、望ましい機能を実施するように作動可能なエージェントを含む受動的又は能動的なものとすることができる。
【０１０３】
本明細書を通じての「例」又は「例示的」への参照は、その例に関して記述された特定の特徴、構造、又は特性が本発明の少なくとも１つの実施形態に含まれることを意味する。従って、本明細書にわたる様々な箇所における「一例において」という表現又は「例示的」という言葉の出現は、必ずしも全てが同じ実施形態を参照しているわけではない。
【０１０４】
本明細書に使用する場合に、複数の品目、構造要素、組成要素、及び／又は材料を便宜上共通のリスト内に提供することができる。しかし、これらのリストは、リストの各構成要素が別個の固有構成要素として個々に識別される場合と同じく解釈しなければならない。従って、そのようなリストの個々の構成要素は、反意の指示のない共通の群内での提示ということだけに基づいて、同じリストのいずれかの他の構成要素の事実上の均等物であると解釈すべきではない。更に、本明細書では、本発明の様々な実施形態及び例をこれらの実施形態及び例の様々な構成要素に対する代替物と共に参照している場合がある。そのような実施形態、例、及び代替物を互いの事実上の均等物として解釈すべきではなく、本発明の別個の自立的な表現であると解釈しなければならないことを理解しなければならない。
【０１０５】
更に、説明する特徴、構造、又は特性は、１つ又はそれよりも多くの実施形態においてあらゆる適切な方式で組み合わせることができる。それに続く説明では、本発明の実施形態の完全な理解をもたらすためにレイアウト、距離、ネットワークの例のような多くの特定の詳細内容を提供している。しかし、当業者は、本発明をこれらの特定の詳細内容のうちの１つ又はそれよりも多くを用いずに又は他の方法、構成要素、レイアウトなどを用いて実施することができることを認識するであろう。この他としては、本発明の態様を不明瞭にすることを避けるために、公知の構造、材料、又は作動に対しては詳細には示しておらず、又は記載していない。
【０１０６】
上述の例は、１つ又はそれよりも多くの特定の用途における本発明の原理を示すものであるが、当業者には、実施の形態、使用、及び詳細内容において本発明の機能を作用することなく、かつ本発明の原理及び概念から逸脱することなく多くの修正を加えることができることが明らかであろう。従って、以下に示す特許請求の範囲による場合を除き、本発明を限定するように意図していない。
【符号の説明】
【０１０７】
５１０  相対時限式（ＲＴ）モジュールを設計かつ特徴付けること
５２０  相対時限式モジュールを用いて挙動的又は構造的なＨＤＬ  ＩＣシステムアーキテクチャを生成すること
５３０  ＲＴ特徴付けされた制約セットを特定のＥＤＡツールアプリケーション（例えば、合成、配置及び経路指定、タイミング検証）に関するＩＣモジュールインスタンスにマップすること
５４０  モジュール及びアーキテクチャの電力／性能ターゲットに基づいて各ＲＴ遅延制約のためのタイミングターゲットを生成すること
５５０  遅延値を修正することによって検索アルゴリズムを用いて閉じた解を生成するＥＤＡツール反復を実行すること
【図１】
2015524590.tif 000015
【図２】
2015524590.tif 000016
【図３】
2015524590.tif 000017
【図４】
2015524590.tif 000018
【図５】
2015524590.tif 000019
【図６】
2015524590.tif 000020
【図７】
2015524590.tif 000021
【図８】
2015524590.tif 000022
【図９】
2015524590.tif 000023
【図１０】
2015524590.tif 000024
【図１１】
2015524590.tif 000025
【図１２】
2015524590.tif 000026
【図１３】
2015524590.tif 000027
【図１４】
2015524590.tif 000028
【図１５】
2015524590.tif 000029
【図１６】
2015524590.tif 000030
【図１７】
2015524590.tif 000031
【手続補正書】
【提出日】平成27年3月20日(2015.3.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
相対時限式モジュールを用いて相対タイミングアーキテクチャを発生させるように構成されたクロックツールフローのための電子設計自動化（ＥＤＡ）ツールであって、
前記相対時限式モジュールを用いてハードウエア記述言語（ＨＤＬ）集積回路（ＩＣ）アーキテクチャを発生させ、
相対タイミング制約（ＲＴＣ）を前記相対時限式モジュールの相対時限式インスタンス上にマップし、かつ
各相対タイミング制約のためのタイミングターゲットを発生させる、
ように構成されたコンピュータ回路手段、
を有することを特徴とする電子設計自動化（ＥＤＡ）ツール。
【請求項２】
前記ＨＤＬ  ＩＣアーキテクチャ内でタイミング違反を表す負のタイミングスラックが発生しなくなるまで前記相対タイミング制約の前記タイミングターゲットを反復的に修正する、
ように更に構成されることを特徴とする請求項１に記載のコンピュータ回路手段。
【請求項３】
前記タイミングターゲットを反復的に修正するように構成されたコンピュータ回路手段が、
クロックタイミング遅延経路と相対タイミング遅延経路の両方に対して負のタイミングスラックを収束させる、
ように更に構成される、
ことを特徴とする請求項２に記載のコンピュータ回路手段。
【請求項４】
前記タイミングターゲットを反復的に修正するように構成されたコンピュータ回路手段が、
前記相対タイミング制約を満足するように前記ＨＤＬ  ＩＣアーキテクチャ内に遅延要素を追加する、
ように更に構成される、
ことを特徴とする請求項２及び請求項３のいずれか１項に記載のコンピュータ回路手段。
【請求項５】
前記タイミングターゲットを反復的に修正するように構成されたコンピュータ回路手段が、
前記クロックツールフロー内で前記相対時限式モジュールのタイミング駆動最適化を用いて前記ＨＤＬ  ＩＣアーキテクチャの電力及び性能を最適化する、
ように更に構成される、
ことを特徴とする請求項２から請求項４のいずれか１項にコンピュータ回路手段。
【請求項６】
前記相対タイミング制約をマップするように構成されたコンピュータ回路手段が、該相対タイミング制約に対する端点を定めるように更に構成され、
前記タイミングターゲットを発生させるように構成されたコンピュータ回路手段が、前記相対タイミング制約のタイミング経路を横切る端点の間のタイミングアークを決定するように更に構成され、該タイミングアークの複合体のうちの１つが、前記ＩＣアーキテクチャの各ゲートを通過する、
ことを特徴とする請求項１から請求項５のいずれか１項に記載のコンピュータ回路手段。
【請求項７】
前記相対タイミング制約（ＲＴＣ）は、ｐｏｄが、発散点（ｐｏｄ）事象であり、ｐｏｃ0が、適正回路作動のための第２のｐｏｃ事象ｐｏｃ1の前に発生される第１の収束点（ｐｏｃ）事象であり、マージンｍが、該ｐｏｃ0と該ｐｏｃ1の間の最小分離である時に、
2015524590.tif 000032
によって表され、
前記タイミングターゲットは、前記ｐｏｄ事象と前記第１のｐｏｃ事象の間の第１の相対事象経路に対して最大ターゲット遅延を与え、該ｐｏｄ事象と前記第２のｐｏｃ事象の間の第２の相対事象経路に対して最小ターゲット遅延を与え、又は該第１の相対事象と該第２の相対事象の間の最小分離を表すマージンターゲット遅延を与える、
ことを特徴とする請求項１から請求項６のいずれか１項に記載のコンピュータ回路手段。
【請求項８】
前記相対時限式モジュールを設計かつ特徴付ける、
ように更に構成されることを特徴とする請求項１から請求項７のいずれか１項に記載のコンピュータ回路手段。
【請求項９】
各相対タイミング制約のための前記タイミングターゲットを発生させるように構成されたコンピュータ回路手段が、アーキテクチャ電力ターゲット又はアーキテクチャ性能ターゲットに基づいていることを特徴とする請求項１から請求項８のいずれか１項に記載のコンピュータ回路手段。
【請求項１０】
前記ＥＤＡツールは、合成ツール、最適化ツール、物理設計ツール、物理経路指定及び配置ツール、又はタイミング検証ツールであることを特徴とする請求項１から請求項９のいずれか１項に記載のコンピュータ回路手段。
【請求項１１】
前記相対時限式モジュールは、前記設計をＶｅｒｉｌｏｇ、ＨＤＬ、又は超高速集積回路（ＶＨＳＩＣ）ＨＤＬ（ＶＨＤＬ）に符号化することによって挙動的ＨＤＬ  ＩＣアーキテクチャ又は構造的ＨＤＬ  ＩＣアーキテクチャを発生させることを特徴とする請求項１から請求項１０のいずれか１項に記載のコンピュータ回路手段。
【請求項１２】
相対タイミングアーキテクチャ発生に向けて構成されたクロックツールフローのための電子設計自動化（ＥＤＡ）ツールであって、
相対時限式モジュールを用いて集積回路（ＩＣ）アーキテクチャを発生させ、
相対タイミング制約（ＲＴＣ）を前記相対時限式モジュールの相対時限式インスタンス上にマップし、かつ
各相対タイミング制約に対して遅延ターゲットを発生させる、
ためのプロセッサ、
を含むことを特徴とする電子設計自動化（ＥＤＡ）ツール。
【請求項１３】
前記プロセッサは、
タイミング閉鎖検索アルゴリズムを用いてタイミング違反を排除するために遅延ターゲットを再帰的に変更する、
ように更に構成される、
ことを特徴とする請求項１２に記載のＥＤＡツール。
【請求項１４】
前記相対タイミング制約（ＲＴＣ）は、ｐｏｄが発散点（ｐｏｄ）事象であり、ｐｏｃ0が、適正な回路作動のための第２のｐｏｃ事象ｐｏｃ1の前に発生される第１の収束点（ｐｏｃ）事象であり、マージンｍが、該ｐｏｃ0と該ｐｏｃ1の間の最小分離である時に、
2015524590.tif 000033
によって表され、
前記遅延ターゲットは、前記ｐｏｄ事象と前記第１のｐｏｃ事象の間の第１の相対事象経路に対して最大ターゲット遅延を与え、該ｐｏｄ事象と前記第２のｐｏｃ事象の間の第２の相対事象経路に対して最小ターゲット遅延を与え、又は第１の相対事象経路を第２の相対事象経路に該第１の相対事象と該第２の相対事象の間の最小分離を有して関連付けるマージン制約を与える、
ことを特徴とする請求項１２及び請求項１３のいずれか１項に記載のＥＤＡツール。
【請求項１５】
前記プロセッサは、
前記相対タイミング制約のための端点を定め、かつ
前記ＩＣアーキテクチャの各ゲートが該ＩＣアーキテクチャの少なくとも１つのタイミング経路で表される前記相対タイミング制約の端点の間のタイミング経路を決定する、
ように更に構成される、
ことを特徴とする請求項１２から請求項１４のいずれか１項に記載のＥＤＡツール。
【請求項１６】
前記プロセッサは、
前記相対時限式モジュールの論理の修正を阻止する、
ように更に構成される、
ことを特徴とする請求項１５に記載のＥＤＡツール。
【請求項１７】
請求項１２から請求項１６のいずれか１項に記載のＥＤＡツールを用いて集積回路（ＩＣ）を発生させる電子設計自動化（ＥＤＡ）システムであって、
ハードウエア記述言語（ＨＤＬ）を用いて特徴付け情報、セルライブラリ情報、及びアーキテクチャ性能ターゲットを符号化することにより、集積回路（ＩＣ）アーキテクチャを設計かつ特徴付けるための請求項１２から請求項１６のいずれか１項に記載の前記ＥＤＡツールを含むアーキテクチャ設計ツールと、
前記ＨＤＬの挙動を実施するハードウエア論理を発生させるための請求項１２から請求項１６のいずれか１項に記載の前記ＥＤＡツールを含む合成ツールと、
前記ハードウエア論理に基づいてハードウエア回路を配置及び経路指定するための請求項１２から請求項１６のいずれか１項に記載の前記ＥＤＡツールを含む物理設計ツールと、
速度非依存タイミング制約及び遅延不感タイミング制約を用いて性能、正確性、及び収量に対してハードウエア回路を検証するための請求項１２から請求項１６のいずれか１項に記載の前記ＥＤＡツールを含むタイミング検証ツールと、
を含むことを特徴とするＥＤＡシステム。
【請求項１８】
前記アーキテクチャ設計ツールは、Ｖｅｒｉｌｏｇ、Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ（ＨＤＬ）、又は超高速集積回路（ＶＨＳＩＣ）ＨＤＬ（ＶＨＤＬ）を使用し、前記合成ツールは、Ｓｙｎｏｐｓｙｓ設計制約（．ｓｄｃ）、Ｄｅｓｉｇｎ  Ｃｏｍｐｉｌｅｒ、Ｅｎｃｏｕｎｔｅｒ  Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ（ＲＴＬ）、Ｘｉｌｉｎｘ  Ｉｎｔｅｇｒａｔｅｄ  Ｓｏｆｔｗａｒｅ  Ｅｎｖｉｒｏｎｍｅｎｔ（ＩＳＥ）、Ｘｉｌｉｎｘ  Ｓｙｎｔｈｅｓｉｓ  Ｔｏｏｌ（ＸＳＴ）、Ｑｕａｒｔｕｓ、Ｓｙｎｐｌｉｆｙ、ＬｅｏｎａｒｄｏＳｐｅｃｔｒｕｍ、又はＰｒｅｃｉｓｉｏｎを使用し、前記物理設計ツールは、Ｓｙｎｏｐｓｙｓ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｃｏｍｐｉｌｅｒ（ＩＣＣ）、Ｃａｄｅｎｃｅ  Ｅｎｃｏｕｎｔｅｒ  Ｄｉｇｉｔａｌ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ（ＥＤＩ）、又はＣａｄｅｎｃｅ  Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ（ＳｏＣ）Ｅｎｃｏｕｎｔｅｒを使用し、前記タイミング検証ツールは、Ｐｒｉｍｅｔｉｍｅ、Ｔｅｍｐｕｓ、Ｍｏｄｅｌｓｉｍ、Ｅｌｄｏ、Ｓｉｍｕｌａｔｉｏｎ  Ｐｒｏｇｒａｍ  ｗｉｔｈ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｅｍｐｈａｓｉｓ（ＳＰＩＣＥ）、Ｖｅｒｉｌｏｇ  Ｃｏｍｐｉｌｅｄ  Ｓｉｍｕｌａｔｏｒ（ＶＣＳ）、又はＣａｄｅｎｃｅ  Ｖｅｒｉｌｏｇ−Ｌ  ｔｉｅｒ  ｅｘｔｅｎｓｉｏｎ（Ｖｅｒｉｌｏｇ−ＸＬ）を使用することを特徴とする請求項１７に記載のＥＤＡシステム。
【請求項１９】
クロック式電子設計自動化（ＥＤＡ）ツールフローの使用を可能にする相対タイミングアーキテクチャを発生させる方法であって、
相対時限式モジュールを用いて集積回路（ＩＣ）アーキテクチャを発生させる段階と、
相対タイミング制約（ＲＴＣ）を前記相対時限式モジュールの相対時限式インスタンス上にマップする段階と、
各相対タイミング制約のための遅延値を発生させる段階と、
を含むことを特徴とする方法。
【請求項２０】
機械可読ストレージ媒体手段であって、
請求項１９に記載の方法を実施するために実行されるようになった複数の命令、
を含むことを特徴とする媒体手段。
【国際調査報告】
2015524590.tif 000034
2015524590.tif 000035