JP2015524590A - 相対タイミングアーキテクチャ - Google Patents
相対タイミングアーキテクチャ Download PDFInfo
- Publication number
- JP2015524590A JP2015524590A JP2015523267A JP2015523267A JP2015524590A JP 2015524590 A JP2015524590 A JP 2015524590A JP 2015523267 A JP2015523267 A JP 2015523267A JP 2015523267 A JP2015523267 A JP 2015523267A JP 2015524590 A JP2015524590 A JP 2015524590A
- Authority
- JP
- Japan
- Prior art keywords
- timing
- relative
- event
- tool
- architecture
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/35—Delay-insensitive circuit design, e.g. asynchronous or self-timed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
相対時限式モジュールを用いて相対タイミングアーキテクチャを生成するための技術を開示する。一例において、クロックツールフローに対して有効化にされた電子設計自動化(EDA)ツールは、相対時限式モジュールを用いてハードウエア記述言語(HDL)集積回路(IC)アーキテクチャを発生させ、相対タイミング制約を相対時限式モジュールの相対時限式インスタンスにマップし、かつ各相対タイミング制約のためのタイミングターゲットを生成するように構成されたコンピュータ回路を含むことができる。【選択図】図5
Description
電子設計自動化(EDA)ツールに関する。
回路タイミングは、回路の電力、性能、ノイズ、及び面積に影響を及ぼす可能性がある。タイミングは、業界標準クロック設計方法及び技術に優る利益を与えることができる多くの代替回路設計方式によって調節することができる。タイミングは、これらの代替回路の商業化及び採用に対して主な障害である可能性もある。非同期回路設計は、代替タイミングを使用する回路系列の例である。回路及びアーキテクチャレベルでは、非同期設計は、連続タイミングモデルを使用し、それに対してクロック設計は、クロックサイクルに基づく離散時間モデルを使用する。
設計の社会では、信号優先順位付けのための2つの一般的な方法、すなわち、クロック式と非同期式が出現した。クロック設計は、離散クロック周期を定める周波数ベースのプロトコルを基礎とする。クロック式方法は、ラッチ又はフロップ間の組合せ論理(CL)を含み、共通周波数によって制御されるパイプライン段を生成する。クロック式方法以外の全ての他の方法は「非同期」と見なすことができ、以下に限定されるものではないが、ハンドシェイクプロトコル、自己リセットドミノ回路、及び静的ランダムアクセスメモリ(SRAM)、動的ランダムアクセスメモリ(DRAM)、読取専用メモリ(ROM)、又はプログラム可能論理アレイ(PLA)のような埋め込みシーケンシャル要素を使用する方法を含む。非同期要素は、シーケンシャルコントローラ、ドミノゲート、又はメモリ要素のような状態保持回路を含むことができる。非同期回路への入力の到着は、広域クロック周波数に基づかない場合がある。非同期回路を通じた遅延は、機能、用途、製造変動、並びに温度及び電圧の変化のような作動パラメータに基づいて変化する可能性がある。
本発明の特徴及び利点は、共に本発明の特徴を一例として示す添付図面と合わせた以下に続く詳細説明から明らかであろう。
クロック設計は、電子設計自動化(EDA)業界において、高い生産率を可能にするEDAの機能に大部分が起因して優位を占めている。高い生産率は、タイミングの正確性を極めて少数の予め定められたシーケンシャルセル、主としてフリップ−フロップ及びラッチに制限する手法を使用することによって達成することができる。これらの予め定められたセルは、設定時間及び保持時間のような設計の正確性に対して使用されるタイミング条件に対して特徴付けることができる。クロック設計においてタイミングが重要な問題は、フリップ−フロップ及びラッチに収束する可能性がある。
この収束による結果として、フリップ−フロップ及びラッチのタイミング要件は、EDA業界に使用されるコンピュータアシスト設計(CAD)アルゴリズム内にクロック設計手法に基づいて直接統合されることになった。このアルゴリズム内へのタイミングの直接統合は、クロック設計を簡素化するが、これらのアルゴリズムは、他のタイミング方法を使用する回路の適用を妨げる可能性がある。
本明細書に説明する技術(例えば、EDAツール、方法、コンピュータ回路、及びシステム)は、特徴付けされた相対タイミング制約(RTC)をシステム又はアーキテクチャに使用されるインスタンスに適用することにより、相対タイミングに対して特徴付けされた設計モジュールを使用することができ、それによって従来のクロックEDAツールがこれらのRTC設計モジュールのタイミング要件を直接にサポートすることを可能にする。この技術を使用すると、一般的な非同期モジュールを設計内に埋め込むことができ、標準の市販のEDAツールフローを使用するシステムを建築するのに使用することができる。実際に、この技術は、いずれかの相対タイミング特徴付けされたモジュールをフリップ−フロップ及びラッチのための標準のEDAツールからの類似のタイミングアルゴリズムサポートを有するアーキテクチャ又はシステム内に統合することを可能にする。
ここで、図示の例示的実施形態を参照することになるが、本明細書ではこれらの実施形態を説明するために特定の表現を以下に使用する。それにも関わらず、本発明の範囲の限定を意図しないことは理解されるであろう。
本発明を開示して説明する前に、本発明は、本明細書に開示する特定の構造、工程段階、又は材料に限定されず、当業者によって認識されると考えられるこれらの均等物に拡張されると理解しなければならない。本明細書に使用する術語は、特定の例のみを説明するために使用するものであり、限定的であることを意図しないことも理解しなければならない。
定義
本明細書に使用する「実質的に」という表現は、作用、特性、性質、状態、構造、品目、又は結果の完全又はほぼ完全な範囲又は程度を意味する。例えば、「実質的に」囲まれた物体は、物体が完全に囲まれているか、ほぼ完全に囲まれているかのいずれかを意味することになる。絶対完全性からの正確な許容ずれ度は、一部の場合に特定の状況に依存する可能性がある。しかし、一般的には、完了の間近さは、絶対的かつ全面的な完了が得られた場合と同じ全体結果を有するようなものとすることができる。「実質的に」の使用は、作用、特性、性質、状態、構造、品目、又は結果の完全又はほぼ完全な欠如を指す否定的な含意に使用される場合にも同等に適用可能である。
本明細書に使用する「実質的に」という表現は、作用、特性、性質、状態、構造、品目、又は結果の完全又はほぼ完全な範囲又は程度を意味する。例えば、「実質的に」囲まれた物体は、物体が完全に囲まれているか、ほぼ完全に囲まれているかのいずれかを意味することになる。絶対完全性からの正確な許容ずれ度は、一部の場合に特定の状況に依存する可能性がある。しかし、一般的には、完了の間近さは、絶対的かつ全面的な完了が得られた場合と同じ全体結果を有するようなものとすることができる。「実質的に」の使用は、作用、特性、性質、状態、構造、品目、又は結果の完全又はほぼ完全な欠如を指す否定的な含意に使用される場合にも同等に適用可能である。
本明細書に使用する「セット」という表現は、1、ゼロ、又はそれよりも大きい整数値を含むいずれかの自然数の要素を含むことができる要素集合を指す。
本明細書を通じての「例」への参照は、例に関して説明する特定の特徴、構造、又は特性が本発明の少なくとも1つの実施形態内に含まれることを意味する。従って、本明細書にわたる様々な箇所における「一例では」という語句の出現は、必ずしもその全てが同じ実施形態を参照しているわけではない。
本明細書では、「例示的」という言葉を実施例、事例、又は例証として機能することを意味するように使用する。本明細書で「例示的」と説明するいかなる態様又は設計も、他の態様又は設計に優って好ましいか又は有利であると必ずしも解釈すべきではない。更に、本発明の開示の目的では、別途指定しない限り、「a」又は「an」は、「1つ又はそれよりも多く」を意味する。例示的実施形態は、開示する実施形態を実施するようにコンピュータを制御するソフトウエア、ファームウエア、ハードウエア、又はこれらのいずれかの組合せを生成するための標準プログラミング技術及び/又はエンジニアリング技術を用いて方法、装置、又は製造物品として実施することができる。
技術改善の最初の概要を以下に提供し、次いで、特定の技術例を後により詳細に説明する。この最初の要約は、閲読者が本発明の技術をより迅速に理解するのを助けるように意図したものであり、本発明の技術の重要な特徴又は基本的な特徴を示すように意図したものでも、主張する主題の範囲を限定するように意図したものでもない。
クロック設計は、電子設計自動化(EDA)業界において、高い生産率を可能にするEDAの機能に大部分が起因して優位を占めている。高い生産率は、タイミングの正確性を極めて少数の予め定められたシーケンシャルセル、主としてフリップ−フロップ及びラッチに制限する手法を使用することによって達成することができる。これらの予め定められたセルは、設定時間及び保持時間のような設計の正確性に対して使用されるタイミング条件に対して特徴付けることができる。クロック設計においてタイミングが重要な問題は、フリップ−フロップ及びラッチに収束する可能性がある。
この収束による結果として、フリップ−フロップ及びラッチのタイミング要件は、EDA業界に使用されるコンピュータアシスト設計(CAD)アルゴリズム内にクロック設計手法に基づいて直接統合されることになった。このアルゴリズム内へのタイミングの直接統合は、クロック設計を簡素化するが、これらのアルゴリズムは、他のタイミング方法を使用する回路の適用を妨げる可能性がある。
本明細書に説明する技術(例えば、EDAツール、方法、コンピュータ回路、及びシステム)は、特徴付けされた相対タイミング制約(RTC)をシステム又はアーキテクチャに使用されるインスタンスに適用することにより、相対タイミングに対して特徴付けされた設計モジュールを使用することができ、それによって従来のクロックEDAツールがこれらのRTC設計モジュールのタイミング要件を直接にサポートすることを可能にする。この技術を使用すると、一般的な非同期モジュールを設計内に埋め込むことができ、標準の市販のEDAツールフローを使用するシステムを建築するのに使用することができる。実際に、この技術は、いずれかの相対タイミング特徴付けされたモジュールをフリップ−フロップ及びラッチのための標準のEDAツールからの類似のタイミングアルゴリズムサポートを有するアーキテクチャ又はシステム内に統合することを可能にする。
上述したように、集積回路設計のための電子設計自動化(EDA)は、クロック手法に基づくことができる。他のタイミング方法を使用するシステムは、EDAのツール及びフローによって直接にサポートされない場合がある。EDAツールは、任意のタイミング手法を用いて自動タイミング駆動設計、並びに集積回路のシステム及びアーキテクチャの最適化を実施することを可能にする技術を提供する。そのようなシステムは、タイミング及び作動要件に対して事前特徴付けされた同期回路モジュールに基づくことができる。EDAツール内のタイミング駆動アルゴリズムは、高レベルの合成から下方に物理設計及びタイミング検証に至るまでのEDAフローの全レベルにおけるタイミング駆動の設計及び最適化をサポートすることを可能にすることができるように、事前特徴付けされた制約をモジュールインスタンス及びシステムネットリストにマップする方法を提供することができる。記述した技術を使用すると、非同期設計のような代替設計方式は、従来のEDAのツール及びフロー(例えば、クロックベースのEDAのツール及びフロー)を直接に使用することができる。
以下では、上述の技術の簡単な概要を提供する。本明細書において説明する技術(例えば、EDAツール、方法、コンピュータ回路、及びシステム)は、相対タイミング(RT)の理論に基づいている。1つの経路を通じた最大の遅延(最大遅延)が、別の経路を通じた最小の遅延(最小遅延)よりも小さくなければならないような共通タイミング基準からの相対的な遅延は、信号経路又は信号周波数を通して成り立たなければならない。更に、2つの経路の遅延の間には、分離のマージンが必要される場合がある。一般的に、最小遅延経路である一方の経路は、信号経路の下方の遅延ではなく、固定周波数(クロックのような)に基づく遅延とすることができる。従って、相対タイミングは、式1を用いて表すことができる。
変数podは、タイミング基準又は事象を表すことができる。podが事象である場合に、発散点(pod)と両方の収束点(poc0及びpoc1)の間に論理経路が存在する。podが、クロックのようなタイミング基準である場合に、タイミング基準は、poc0とpoc1の両方に対して共通のものとすることができる。値mは、事象間のマージン又は最小分離とすることができ、値mは、ゼロ又は負とすることができる。式1が成り立つ場合に、事象podから事象poc0までの最大経路遅延にマージンmを加えたものは、事象podから事象poc1までの最小経路遅延よりも小さい場合がある。一例において、経路遅延に対してクロックのような周波数ベースの信号の類似の遅延を代用することができ、この場合に、podを立ち上がりクロックエッジとすることができ、poc1をクロックのその後の立ち上がりエッジとすることができる。
別の例において、2013年7月18日出願の「相対タイミング特徴付け(RELATIVE TIMING CHARACTERIZATION)」という名称の現在特許出願中の国際特許出願出願番号PCT/US2013/051156に記載されているように、これまで、市販のEDAツール内への包含に向けて非同期シーケンシャル回路モジュールを特徴付ける方法が実施されてきたと考えられる。望ましい回路環境の遅延及び挙動は、この環境がクロック又は非同期のいかなるものであるかに関わらず与えられた場合に、設計が正しく作動するために成り立つべき全てのタイミング条件に対して、特徴付け回路を完全に特徴付けることができる。特徴付けは、podからpoc0及びpoc1までの経路ベース又は周波数ベースの制約を生成することにより、相対タイミングに基づく遅延を表すことができる。類似の形式の性能制約を追加することができる。
別の例において、事前特徴付けされたモジュールは、EDAツール内のタイミング駆動アルゴリズムが、特徴付けされたモジュールの正しい設計、最適化、試験、及び検証を直接にサポートするように、特徴付けされたモジュール(例えば、相対タイミング制約(RTC)モジュール)をシステム又はアーキテクチャ内に埋め込むために使用される情報を含むことができる。事前特徴付けされたモジュールからの完全な制約セットをEDAツール内のタイミング駆動アルゴリズム及び本明細書に説明する技術と互換性を有するフォーマットで表すことができる。設計及び検証の工程内の様々な段階において、制約部分集合を選択することができる。例えば、Design CompilerのようなEDAツールによる合成のための制約セットを選択することができる。別の実施形態において、PrimeTimeを用いたタイミング検証に向けて異なる制約セットを使用することができる。事前特徴付けフローは、より正確なタイミング結果を可能にするために、タイミング特徴付けファイル内のセル遅延情報をlibertyフォーマット(.lib)で修正することができる。タイミング制約は、設計フロー内の様々な段階及びクロックEDAツールによってサポートされるフォーマットで生成することができる。
別の構成では、プロセッサによる実行時に、業界標準のEDA CADフローを直接にサポートする方式で含めることができる設計フロー内の様々な段階において、設計制約セットを選択し、これらの制約セットをシステム及びアーキテクチャにマップする方法の作動をプロセッサに実施させるコンピュータ可読命令を含むコンピュータ可読媒体を提供することができる。
別の実施形態において、システムは、プロセッサを含むことができ、コンピュータ可読媒体をプロセッサと作動可能に結合することができる。コンピュータ可読媒体は、プロセッサによる実行時に、業界標準のEDA CADフロー内への包含に適する非同期回路モジュールを特徴付ける方法の作動を実施する命令を含む。
以下の本文は、上述の技術の追加の詳細及び実施例を提供する。図1は、相対時限式集積回路設計システム100に関するブロック図を示している。相対時限式集積回路設計システム100は、出力インタフェース104と、入力インタフェース102と、コンピュータ可読媒体108と、プロセッサ106と、相対時限式集積回路設計システム100に関連することができる相対時限式システム設計アプリケーション110とを含むことができるいずれかのフォームファクターのコンピュータデバイスを含むことができる。異なる構成要素及び追加の構成要素を相対時限式集積回路設計システム100内に組み込むことができる。
出力インタフェース104は、相対時限式集積回路設計システム100のユーザによる閲覧に向けて情報を出力するためのインタフェースを与える。例えば、出力インタフェース104は、ディスプレイ、プリンタ、スピーカ、又は類似の出力デバイスへのインタフェースを含むことができる。ディスプレイは、薄膜トランジスタディスプレイ、発光ダイオードディスプレイ、液晶ディスプレイ、又は様々な異なるディスプレイのうちのいずれかとすることができる。プリンタは、様々なプリンタのうちのいずれかとすることができる。スピーカは、様々なスピーカのうちのいずれかとすることができる。相対時限式集積回路設計システム100は、同じか又は様々なるインタフェース技術を使用する1つ又はそれよりも多くの出力インタフェースを有することができる。
入力インタフェース102は、相対時限式集積回路設計システム100内への入力に向けてユーザから情報を受け入れるためのインタフェースを与える。入力インタフェース102は、以下に限定されるものではないが、キーボード、ペン及びタッチスクリーン、マウス、トラックボール、タッチスクリーン、キーパッド、1つ又はそれよりも多くのボタン、又はユーザが情報を相対時限式集積回路設計システム100内に入力するか又はユーザが出力インタフェース104上に表示されるユーザインタフェース内に選択を提供することを可能にする類似の入力デバイスを含む様々な入力技術を使用することができる。入力インタフェース102は、入力インタフェースと出力インタフェースの両方を与えることができる。例えば、タッチスクリーンは、ユーザ入力を可能にし、それと共にユーザに出力を提供する。
コンピュータ可読媒体108は、プロセッサ106が情報にアクセス可能であるような電子保持場所又はストレージとすることができる。コンピュータ可読媒体108は、以下に限定されるものではないが、いずれかのタイプのランダムアクセスメモリ(RAM)、いずれかのタイプの読取専用メモリ(ROM)、いずれかタイプのフラッシュメモリ、又は磁気記憶デバイス(例えば、ハードディスク、フロッピー(登録商標)ディスク、又は磁気テープ)、光ディスク(例えば、コンパクトディスク(CD)又はデジタル多用途ディスク(DVD)、又はデジタルビデオディスク)、スマートカード、又はフラッシュメモリデバイスのような類似の媒体を含むことができる。相対時限式集積回路設計システム100は、同じか又は異なるメモリ媒体技術を使用する1つ又はそれよりも多くのコンピュータ可読媒体を有することができる。相対時限式集積回路設計システム100は、CD又はDVDのようなメモリ媒体の装荷をサポートする1つ又はそれよりも多くのドライブを有することができる。
プロセッサ106は、命令を実行することができる。命令は、専用コンピュータ、論理回路、又はハードウエア回路によって実施される。この場合に、プロセッサ106は、ハードウエア、ファームウエア、ソフトウエア、又はこれらの方法のいずれかの組合せに実施することができる。「実行」という表現は、アプリケーションを実行する処理、又は命令によって呼び出される作動の実施である。命令は、1つ又はそれよりも多くのプログラミング言語、スクリプト言語、アセンブリ言語、又は類似の言語を用いて書くことができる。プロセッサ106は、命令を実行することができ、すなわち、プロセッサは、命令によって呼び出される作動を実施することができる。プロセッサ106は、情報を受け入れ、送り、処理し、格納するために出力インタフェース104、入力インタフェース102、及びコンピュータ可読媒体108(例えば、メモリ)と作動可能に結合することができる。プロセッサ106は、固定メモリデバイスから命令セットを取得し、これらの命令をRAMのいずれかの形態のような一時メモリデバイスに実行可能形態で複写することができる。相対時限式集積回路設計システム100は、同じか又は異なる処理技術を使用する複数のプロセッサを含むことができる。
相対時限式システム設計アプリケーション110は、相対時限式設計構成要素を含む集積回路を設計することに関連付けられた作動を実施することができる。説明するこれらの作動の一部又は全ては、相対時限式システム設計アプリケーション110内で実施することができる。作動は、ハードウエア、ファームウエア、ソフトウエア、又はこれらの機構のいずれかの組合せを用いて実施することができる。一例において、図1に示すように、相対時限式システム設計アプリケーション110をコンピュータ可読媒体108に格納されたソフトウエア内に実施し、相対時限式システム設計アプリケーション110の作動を実施する命令の実行に向けてプロセッサ106によってアクセス可能にすることができる。相対時限式システム設計アプリケーション110は、1つ又はそれよりも多くのプログラミング言語、アセンブリ言語、スクリプト言語、又は類似の言語を用いて書くことができる。
クロックベースの設計は、電子設計自動化(EDA)業界に使用されるコンピュータアシスト設計(CAD)によって直接にサポートされる。図2は、クロックベースのEDAツールによってサポートされる回路の例を示している。回路は、データ経路210と、クロック分配ネットワーク240とを含むことができる。データ経路210は、第1のレジスタ212(例えば、フリップ−フロップ)、第2のレジスタ214、及び第3のレジスタ216と、第1の組合せ論理(CL)ブロック218及び第2の組合せ論理ブロック220とを含むことができる。第1のレジスタ212は、入力222を受理して、信号226上のクロック事象に基づいて値を格納することができる。第3のレジスタ216は、出力224を出力することができる。レジスタ及び組合せ論理ブロックの入力及び出力は、複数のデータ線n(例えば、バス)を使用することができる。第1のレジスタ212の出力は、第1の組合せ論理218の入力に与えることができ、第1の組合せ論理218の出力において、結果を生成することができる。第2のレジスタに対するクロック入力228上で立ち上がりエッジのようなクロック事象が発生すると、第2のレジスタ214は、第1の組合せ論理218によって生成された結果を捕捉することができる。同様に、第2のレジスタ214の出力を第2の組合せ論理220の入力に与えることができ、第2の組合せ論理220の出力において結果を生成することができる。第3のレジスタに対するクロック入力230上で立ち上がりエッジのようなクロック事象が発生すると、第3のレジスタ216は、第2の組合せ論理220によって生成された結果を捕捉することができる。クロックネットワーク240は、指定周波数における周期波形を生成する論理242を含むことができる。この周期波形信号は、クロックネットワーク244にわたって設計内のレジスタまで分配することができる。従来のEDAツールは、クロック発生器242のターゲットサイクル回数に基づいて、組合せ論理ブロック218及び220のタイミング駆動の最適化及び合成をサポートすることができる。クロック分配ネットワーク244及び246は、異なるクロックツリー経路244及び246の間で低いスキューのみを有してクロック発生器242からの周波数を維持することができる。
図3は、従来のクロックベースのEDAによってサポートされない可能性がある相対時限式回路モジュールを有するためのシステムの非同期回路300の例を示している。図3の例では、別個のデータ経路310及び制御ネットワーク340が使用される。データ経路310は、第1のレジスタ312(データ入力「D」及びデータ出力「Q」を有するように構成されたデータフリップ−フロップ又は遅延フリップ−フロップ(Dフリップ−フロップ)のようなラッチ)、第2のレジスタ314、及び第3のレジスタ316と、第1の組合せ論理ブロック318及び第2の組合せ論理ブロック320とを含むことができる。第1のレジスタ312は、入力322を受理して、第1のレジスタクロック入力326に基づいて値を格納することができる。第3のレジスタ316は出力324を出力する。レジスタ及び組合せ論理ブロックの入力及び出力は、複数のデータ線n(例えば、バス)を使用することができる。第1のレジスタ312の出力は、第1の組合せ論理318の入力に与えることができ、第1の組合せ論理318の出力において、結果を生成することができる。第2のレジスタクロック入力328上で立ち上がりエッジのようなクロック事象が発生すると、第2のレジスタ314は、第1の組合せ論理318によって生成された結果を捕捉することができる。同様に、第2のレジスタ314の出力を第2の組合せ論理320の入力に与えることができ、第2の組合せ論理320の出力において結果を生成することができる。第3のレジスタクロック入力330上で立ち上がりエッジのようなクロック事象が発生すると、第3のレジスタ316は、第2の組合せ論理320によって生成された結果を捕捉することができる。非同期パイプライン内のレジスタ312、314、及び316は、ラッチ、フリップ−フロップ、動的ゲート、又はあらゆる他のメモリ要素とすることができる。
クロック事象を発生させるのに、図2に示すクロックネットワーク240を使用する代わりに、非同期回路は、図3の制御ネットワーク340内に示すように、データをレジスタ内にいつ格納されるかを決定するのにハンドシェイク処理プロトコルを使用する時限式回路モジュールを使用することができる。図3に示す非同期ネットワークは、図2のクロックネットワークと構造が類似のものとすることができる。しかし、遅延不感パイプライン又は他の非同期ネットワーク設計のような異なる構造を使用することができる。このハンドシェイク処理ネットワークは、データ経路310内でのデータの記憶を制御するクロック信号を生成することができる。これらの事象は、クロック事象が発生する前にレジスタの入力におけるデータが安定している限り、あらゆる遅延を伴って発生することができる。制御ネットワーク340は、第1の制御モジュール342、第2の制御モジュール344、及び第3の制御モジュール346を含むことができる。データ経路内のラッチの間の各データ経路は、関連付けられた制御チャネルを含むことができる。入力制御チャネル352を入力データ322に関連付けることができ、制御チャネル348を組合せ経路318に関連付けることができ、制御チャネル350をデータ論理経路320に関連付けることができ、出力324を制御チャネル354に関連付けることができる。制御チャネルは、信号伝播の遅延と、関連付けられたデータ経路のデータ関数とを整合させるように設計された遅延論理を含むことができる。この遅延論理は、制御チャネル上のハンドシェイク信号をステアリングして遅延を生成する遅延モジュール358及び360のような構造を含む。制御チャネル348は、遅延要素358を含み、制御チャネル350は、遅延要素360を含む。図3に示す遅延要素は、前方ハンドシェイク経路上に配置されているが、使用されるプロトコルに依存して後方経路上に配置することができる。ハンドシェイク制御に使用される時限式回路モジュール342、344、及び346の各々は、クロック信号と、モジュールの入力制御チャネル及び出力制御チャネルとの間のハンドシェイクプロトコル関係を決定する機能を実施することができる。多くの可能なプロトコルを使用することができる。
図4は、従来のクロックEDAによってサポートされない可能性がある時限式回路モジュールを有する別のシステムの遅延不感非同期回路400の例を示している。図4では、制御経路とデータ経路とを互いに統合することができる410。統合経路410内の各データビットは、データ値、並びにデータの有効性を識別する通信プロトコルを用いて符号化することができる。統合経路は、デュアルレールコード、4つのうちの1つのコード、n個のうちのm個のコード、遅延不感最小項合成(DIMS)コード、又はあらゆる他の同様のコードとして符号化することができる。データ経路410は、第1の制御バンク412から414までと、第2の制御バンク416から418までとを含むことができる。制御論理は、完了検出(CD)論理422及び424を含むことができる。CD論理422は、第1の制御バンク412から414までにおける全ての値が有効である時に確認応答(acki)452をアサートし、これらのデータ値がアサート解除された時に、acki452をアサート解除することができる。同様に、CD論理422は、第2の制御バンク416から418までが全て有効である時にその後のack(acki+1)をアサートし、データ値がアイドル状態にある時にacki+1454をアサート解除することができる。データは、実施されたプロトコルに従って制御バンクに格納することができる。コントローラは、入力チャネルと出力チャネルの間で異なる並行性を有する様々なプロトコルを実施することができる。例示的なプロトコルでは、その後の段からの確認応答がアサート解除され、入力が有効データを有するものとして符号化された時に、データを制御バンクに格納することができる。同様に、制御バンクの出力は、データ入力が無効であり、確認応答がアサートされた時に、無効なデータを示すことができる。従って、この例示的なプロトコルでは、第1の制御バンク412から414までが、入力442から444までを受理することができる。acki+1454がアサート解除状態になると、データを制御レジスタからデュアルレールnビット関数420内に出力することができ、完了検出モジュール422は、確認応答acki452をアサートすることができる。第1のレジスタ412から414までの出力は、デュアルレールコード、n個のうちのm個のコード、DIMSコード、又はあらゆる他の類似のコードを用いて関数を符号化することができる。データが次の制御バンク416から418までに対して有効として符号化され、入力信号456がアサート解除されると、関数結果をレジスタバンク416から418に格納することができる。制御バンクは、組合せ関数論理の一部を実施することができる。
クロックベースのEDAフローは、フリップ−フロップ及びラッチのような極めて少数のシーケンシャルセルに対して統合されたタイミングしか有することができない。従って、フリップ−フロップ又はラッチの間に組合せ論理を持たないいずれかの他のモジュールは、EDAツールフロー内のタイミング駆動アルゴリズムのサポートを受けるために事前特徴付けが行われ、次いで、図1の相対時限式集積回路設計システムを通すことができる。クロックEDAツールフローとの互換性に向けた相対時限式集積回路設計システムの適用は、図3及び図4の300及び400に示す例に使用されるモジュールに限定されず、あらゆる時限式設計モジュールに一般的に拡張することができる。
本明細書に説明する技術は、市販のEDAツールに存在するタイミング駆動アルゴリズムが、相対時限式モジュール及び相対時限式設計をクロック設計手法のためのツールによってネイティブに与えられているものと類似の方式でサポートすることを可能にする。クロックベースのEDA設計CAD及びツールフローは、フリップ−フロップ212、214、及び216、並びにラッチ312、314、及び316に加えて、組合せブロック218、220、318、320、及び420のタイミング駆動最適化を直接にサポートすることができる。クロックネットワーク240も、EDAツールによって直接にサポートすることができる。しかし、タイミング制御論理340内の相対時限式モジュール342、344、及び346は、従来のEDAツールによってサポートされない可能性がある。同じく図4の400においても、相対タイミングモジュール412、414、416、418、422、及び424は、従来のクロックツールフローによってサポートされない可能性がある。本明細書に説明する技術は、EDAツール内のアルゴリズムが、この場合に、EDAツール内でネイティブサポートを有するモジュールに対して行うのと全く同じくこれらのモジュールのタイミング駆動最適化を直接にサポートすることができるように、モジュール(すなわち、現在サポートされていないもの)に対するタイミングを集積回路設計におけるモジュールインスタンスにマップすることができる。
この技術を使用すると、遅延整合要素358及び360、並びにデュアルレールnビット関数420は、(1)設計モジュールをEDAツールによって直接に合成することができ、又は(2)設計モジュールを他のツール及び機構によって設計された組合せ論理とすることができるという2つの形態の一方を取ることができる。EDAツールフローによって直接に合成される場合に、これらの設計モジュールは、EDAツールフロー内のタイミング駆動アルゴリズムによって特定の処理をサポートすることを必要としないことが可能である。しかし、設計モジュールは、相対タイミングモジュールとして設計かつ特徴付けることができる。相対タイミングモジュールを使用すると、これらのモジュールは、EDAツールによってネイティブにサポートされない状態になることができ、他のネイティブにサポートされないモジュールと全く同様に、EDAツール内でタイミング駆動アルゴリズムを有効化にする機構を使用することができる。
図5は、相対時限式システム設計アプリケーション110(図1)における工程を示している。500の作動は反復作動とすることができ、反復は、双方向矢印及び他のフロー矢印に示すように流れ図内の先行作動に戻るように行われる。使用されるEDAのツール又はプロトコルに基づいて、追加の作動、より少ない作動、又は異なる作動を実施することができる。図5の作動の提示の順序は、例示のために示すものであり、限定的であるように意図したものではない。図5を参照して説明する作動は、相対時限式システム設計アプリケーション110(図1)を実行することによって実施することができる。
設計かつ特徴付けにおけるタイミング制約の表現がアーキテクチャのタイミング駆動最適化をサポートするように、相対時限式(RT)モジュールは、相対タイミングに対して設計かつ特徴付けることができる510。挙動的又は構造的ハードウエア記述言語(HDL)を生成することで、集積回路(IC)のためのICシステムアーキテクチャは、相対時間特徴付けされたモジュール(例えば、相対時限式モジュール)を用いて設計することができる520。一例において、設計の部分集合は、図3の回路300と類似の回路を生成することができる。別の例において、設計は、ハードウエア記述言語(HDL)で符号化することができる。例えば、ハードウエア記述言語は、Verilog、超高速集積回路(VHSIC)HDL(VHDL)、又はあらゆる他のハードウエア記述言語を含むことができる。設計は、挙動的技術又は構造的技術を含む、ハードウエア記述言語に対して有効ないずれの方法も使用することができる。しかし、相対時限式モジュールの部分集合は、図9に示すような設計に使用されるセルライブラリ内のインスタンスに基づく構造的設計記述を使用することができる。
RT設計モジュール510によって与えられた制約部分集合は、集積回路設計520において特定のEDAツールアプリケーションに関するモジュールのインスタンスにマップすることができる530。これらのマッピングは、クロックEDAツール内のタイミング駆動アルゴリズムが、RTモジュール510、並びにシステム520のタイミング駆動の設計及び最適化をサポートすることを可能にするように行うことができる。このマッピングは、各EDAツール又は設計工程における各段階(例えば、合成、配置及び経路指定、又はタイミング検証)に対して異なる場合があるいずれかのアルゴリズム又は方法を使用することができる。マッピングは、EDAツール又は設計段階によって既知であるフォーマットにあるものとすることができる。例えば、制約は、殆どのEDAツールがあまねく理解することができるSynopsys Design Constraint(.sdc)フォーマットにマップすることができる。
各RT遅延制約に対して、タイミングターゲットを生成することができる540。一例において、RT遅延制約は、モジュール及びアーキテクチャの電力及び性能ターゲットに基づくことができる。別の例において、RT遅延制約は、完成された集積回路を合成及び最適化するのに従来のEDAツール及びEDAフローを用いてマップすることができる。いずれかのフロー、方法、又はEDAツールを使用することができ、又はこの工程を助けるための追加の方法又はアルゴリズムを使用することができる。例えば、一例では、負のタイミングスラックが発生しなくなるまで、合成ツール(例えば、Design Compiler(設計コンパイラ))を反復的に作動させ、制約の遅延ターゲットを変更することにより、タイミング閉鎖を提供することができる。負のタイミングスラックは、タイミング違反を表すことができる。
一例では、製作前の最終検証として、RT設計モジュール510を用いて与えられた完全な制約セットを完成された集積回路内のモジュールインスタンスにマップすることができる。一部のRT設計モジュールの循環性と、EDAツールにおいてタイミンググラフが非循環的であるという一部の要件とに起因して、仕上げマッピングは、回路表現への一部の独立したマッピングの結合の結果とすることができる。設計制約を回路表現にマップし、非循環的な結果から正しい周期的タイミング制約を生成するいずれかのアルゴリズム又は方法を使用することができる。
EDAツールは、遅延値を修正することによって検索アルゴリズムを用いて閉じたタイミング解を生成する反復を実行することができる550。閉じたタイミング解は、タイミング違反のないICアーキテクチャとすることができる。反復は、回路の正確性、並びにタイミング制約に沿った性能に対してICアーキテクチャを収束させるか、又はICアーキテクチャに閉鎖を与えることができる。
一例では、設計520に使用される特徴付けされたRTモジュール510からの設計制約が、最終集積回路設計において正しく成り立つことを確実にするために、クロックEDAツールを用いて設計を検証することができる。例えば、検証工程においてポストレイアウト抽出寄生を使用することができる。制約が成り立つことを検証するには、タイミング検証ツール(例えば、PrimeTime)を使用することができる。
EDAツール反復550を実行するのに様々な検索アルゴリズムを使用することができる。例えば、合成と配置及び経路指定とタイミング閉鎖とでは、閉鎖アルゴリズムが異なる場合がある。
例えば、設計の各部分は、相対タイミング制約と、それに関連付けられたアーキテクチャ性能及び電力目標から導出することができるターゲットとに基づいてタイミング収束させることができる。設計ツールを完全に解くことができるSynopsys Design Constraint(SDC)制約のセットを得るために、設計のこの部分において、タイミング値は、反復ループで修正することができる。すなわち、この反復の一部として、制約セットが合格したとして設計を生成するのに1つ又はそれよりも多くの市販EDAツールを使用することができる。設計が負のスラックを有するか否かを決定するために、別のツール(例えば、PrimeTime)を使用することができる。結果を評価することができ、制約のうちの一部のタイミングターゲットを修正するアルゴリズムを使用することができる。
いずれかの負のスラックは、収量の低下又は設計の不具合をもたらす可能性がある。従って、収束に到達するように遅延ターゲットを修正することができる。しかし、ツールにおける収束を簡素化するためにタイミングターゲットを修正することにより、性能又は電力の悪化がもたらされる可能性がある。従って、使用されるアルゴリズムは、設計品質に対して直接的な影響を有する可能性がある。合成ツール又は配置及び経路指定ツールのような各ツールは、異なる設計ターゲットを有し、一般的に制約セットの変化に異なって反応する。従って、異なるアルゴリズムが、異なる使用ツールに適する可能性がある。
一部のタイミング経路は、全体設計性能に対して他のものよりも大きい影響を有する可能性がある。従って、性能又は電力の最小の損失しか伴わずに収束の確率を最適化するために、経路を閉鎖アルゴリズム内の他のノードに対して重み付けるか、順序付けるか、又は関連付けることができる。感受性ノードに対する代替経路を検索して修正するアルゴリズムを使用することができる。タイミングが修正される速度を変更するアルゴリズム(焼き鈍しシミュレーションアルゴリズムと類似のもの)を使用することができる。データ経路ノードのようなノードタイプは、クロック信号を生成するハンドシェイク制御経路と対比して異なる性質を有し、アルゴリズム内では異なって処理することができる。タイミンググラフ内で所々に見られるある一定の小さい摂動は、負のスラックへの大きい変化をもたらす可能性がある。例えば、15ピコ秒(ps)の最悪の負のスラックを有する解は、230psの最悪の負のスラックにしかならず、この場合に、市販EDAツールが使用する修正をもたらす可能性がある。ノードの感受性、ノードタイプ、性能及び電力に関する経路の臨界性、並びに関連経路を補償するアルゴリズムは、より高速な収束及びより優れた電力及び性能をもたらすことができる。
相対タイミング制約は、関連タイミング経路を生成するのに使用することができる。関連タイミング経路は、SDC制約によって直接にサポートされない可能性がある経路制約の間で成り立つべき基本的なタイミング要件を生成することができる。そのような関係は、図6に示す様々なEDAツール610、616、及び622におけるタイミング閉鎖において維持することができる。タイミング関係は、経路遅延ターゲットに加えて、これらのターゲットの間の関係を含む追加のタイミング情報を追加することによって維持され、かつ得ることができる。追加のタイミング情報は、EDAツールによって直接にサポートされない可能性があるので、SDCファイル内にコメントとして含めることができる。このコメントは、SDC規格に使用される「プラグマ」を用いて表すことができる。
例えば、相対時間遅延が、
(すなわち、式1の変形式)として表され、性能ターゲットが、50psのマージンを有するRT制約において500psであると仮定すると、関係する遅延を有する以下のSDCプラグマをもたらすことができる。
set_max_delay 0.450 −from a −to b
set_min_delay 0.500 −from a −to c
(すなわち、式1の変形式)として表され、性能ターゲットが、50psのマージンを有するRT制約において500psであると仮定すると、関係する遅延を有する以下のSDCプラグマをもたらすことができる。
set_max_delay 0.450 −from a −to b
set_min_delay 0.500 −from a −to c
図14に示すように、これら2つの制約(例えば、from a to b及びfrom a to c)の間の関係は、これら2つの制約を互いに結び付ける#margin制約又は#dpmargin制約を用いて指定することができ、以下に例示するように、分離のマージンに関する情報を含む。
#margin 0.050 −from a −to b −from a −to c
#margin 0.050 −from a −to b −from a −to c
マージンプラグマは、50psのマージンが成り立つことを確実にするように最大遅延経路と最小遅延経路を関連付ける。構文は、マージン値、次いで、aからbまでの最大遅延、次いで、aからcまでの最小遅延経路と指定することができる。#dpmargin指令は、比較の前に最大遅延経路の値を半分に分割することができる(すなわち、マージンが成り立つように、最大遅延を900psよりも小さくすることができる)ことを除いて類似の構文を有することができる。
負のスラックがこれらの2つの経路(最大遅延又は最小遅延)のいずれかの上で発生する場合に、タイミング収束アルゴリズムは、EDAツールが仕上げ設計に向けて収束することを可能にするように、設計空間を検索し、タイミングターゲットを修正することができる。例えば、最大遅延が負のスラックを有する場合に、アルゴリズムはこの遅延を増大させることができる。例えば、最大遅延経路が450psから475psまで増大すると仮定すると、475ps+50psが500psよりも小さくないように、制約が成り立たない場合がある。従って、関係が成り立つように、最小遅延経路を25psだけ増大させることができる。
別の例において、最小遅延制約は、遅延上界を持たない場合がある。すなわち、経路aからcまでの800psの遅延は、最小遅延経路に適合する可能性がある。しかし、最小遅延経路が性能感受性経路である場合に、関係する最大遅延制約を含めることができ、それによって性能ターゲットが500psである場合に、以下の制約セットをもたらすことができる。
set_max_delay 0.400 −from a −to b
set_max_delay 0.500 −from a −to c
set_min_delay 0.450 −from a −to c
#margin 0.050 −from a −to b −from a −to c
set_max_delay 0.400 −from a −to b
set_max_delay 0.500 −from a −to c
set_min_delay 0.450 −from a −to c
#margin 0.050 −from a −to b −from a −to c
制約セットは、最長遅延経路が実際には500psよりも短いことを確実にすることができる。制約セットは、aからcまでの経路の境界を500psよりも短いか又はそれに等しく、かつ450psよりも長いか又はそれに等しいように限定することができる。最小遅延経路が、そのような制約を有する負のマージンを有する場合に、最大遅延経路を増大させることにより、収束する解をもたらすことができる。同様に、可能である場合に、最小遅延値を低減することによって収束がもたらされることも可能である。
一部のツールは、タイミング閉鎖のためのアルゴリズム及び方式を修正する異なる制約を有することができる。例えば、物理設計では、SynopsysのICCは、完全なSDC仕様をサポートする。しかし、CadenceのSoC Encounter EDIは、SDC制約のset_size_onlyをサポートしない可能性がある。従って、SoC Encounter EDIを使用する場合に、相対タイミング制約を適用するのに、特徴付けされたモジュール内の回路をset_dont_touchとして指定することができる。物理設計においてSoCを使用するときに、タイミング閉鎖に達しない場合に、ユーザは、反復して合成ツールに戻ることができ、set_dont_touchとして識別されるゲートのサイズを決定する。
最適化に対して使用することができるアルゴリズムは、合成ツールのタイミングターゲットと対比して異なるタイミングターゲットを物理設計に対して使用することができる。例えば、物理設計において最小遅延経路上に負のスラックが存在する場合に、経路が配置及び経路指定される時に経路を低速にするが、物理設計ツールに対するタイミングターゲットを変更しないように、ユーザ(又は自動操作)は、合成において最小遅延経路値を増大させることができる。
合成と物理設計とタイミング検証の間には、ツールセットの間の別の相違点が存在する可能性がある。合成及び物理設計の制約セットは不完全である可能性があるが、ツールが良い解に収束することを可能にする制約部分集合で構成することができる。同様に、合成及び物理設計における制約は、任意のワイヤ遅延を考慮しない速度非依存の制約しか含むことができない。タイミング検証では、完全なタイミング制約セットを検査することができる。タイミング検証は、ワイヤセグメントにわたる任意の遅延を許す全ての遅延不感検査を含むことができる。タイミング検証における別の相違点は、タイミングを局所的に修正するという実現可能な選択肢に基づいて、収束がもたらされない可能性がある点である。制約セットには別の制約を追加することができ、最終解がロバストであり、全てのタイミングが成り立つことを確実にするために、設計は、追加の制約を伴って設計ツール、合成ツール、又は物理設計ツールに戻ることができる。
図6は、例示的な相対時限式システム設計アプリケーション110(図1)の流れ図を示している。図6は、業界に使用される従来のEDAツールとクロックEDAツールを制限するための追加の作動とを含む時限式モジュールを有する集積回路のタイミング駆動の最適化及び検証をサポートするEDAフローを示している。EDAシステム構成に基づいて、追加の作動、より少ない作動、又は異なる作動を実施することができる。図6の流れ図の作動順序は、限定的であるように意図したものではない。図6を参照して説明する作動は、相対時限式システム設計アプリケーション110(図1)を実行することによって実施することができる。
相対タイミング設計モジュールは、ハードウエア記述言語(例えば、Verilog)で表すことができ、それらの特徴付けデータ及び情報602を提供することができる。セルライブラリ情報又はアーキテクチャ性能ターゲットのような追加情報を提供することができる。電力及び性能のターゲットを用いて仕上げアーキテクチャ又はシステムを設計することができる604。設計は、相対時限式設計モジュールのインスタンスを含むことができる。アーキテクチャは、Verilogのようなハードウエア記述言語で挙動的に表すことができる。
設計において相対タイミングに対して特徴付けされた各インスタンスは、合成に向けて特定の設計インスタンス606にマップされた制約を有することができる。合成のための特定の設計インスタンスは、設計最適化に向けてEDAツール内のタイミング駆動アルゴリズムを有効化にするのに必要な全ての制約を含むことができる。一例において、相対時限式制約のマッピングは、RT特徴付けされたモジュールの論理の修正を許さない指令、モジュール内でタイミングサイクルを切断する指令、又はモジュールに関するタイミング経路を定める指令を含むことができる。EDAシステム構成に基づいて、追加の作動、より少ない作動、又は異なる作動を実施することができる。タイミング制約をアーキテクチャにマップするいずれの方法も使用することができる。設計インスタンスへの相対時限式制約のマッピング606は、相対時限式設計モジュールのタイミング駆動最適化を可能にすることができる。タイミングサイクルは、有向非循環タイミンググラフ(DAG)を生成するために切断することができるアーキテクチャサイクルによって形成することができる。クロックベースのツールは、サイクル切断を自動的に実施することができるが、クロックベースのツールは、相対時限式制約によって指定されたタイミング経路を含むタイミング経路を本質的に保持しない可能性がある。アーキテクチャサイクル切断は、アーキテクチャ内のタイミングサイクルを除去し、更にタイミング駆動最適化に必要とされるタイミング経路を保持することができる。アーキテクチャサイクル切断は、クロックベースのEDAツールフローを使用する相対タイミングモジュールをサポートするのに使用することができる。設計は、挙動的ハードウエア記述言語から合成することができる608。合成は、Design Compilerのような従来のクロックベースのEDAツールを使用することができる。
一例では、使用すべき試験手法の決定を行うことができる。試験が使用されない場合に、工程は、合成タイミング閉鎖検索アルゴリズム610に続行することができる。設計には、製造試験適性を付加することができる。例えば、走査試験を選択することができ、走査チェーン及び試験ベクトルを生成するために同期EDAツール(例えば、Tetramax又はFastScan)を使用することができる。選択試験方式をサポートするために、一部の追加の相対タイミング特徴付けされたモジュールを使用することができる。
検索及び閉鎖アルゴリズムに関して上述したように、合成タイミング閉鎖検索アルゴリズム610は、集積回路アーキテクチャ内に含まれる相対時限式モジュールにおいてタイミング閉鎖を実施することができる。タイミング閉鎖は、クロックタイミング遅延経路と相対タイミング遅延経路の両方に基づいてシステム内でタイミング違反が発生しない時に到達することができる。負のスラック又はタイミング誤差を除去するために、段階604〜610の反復を適用することができる。回路設計を合成することができ、負のスラックとして表されるタイミング誤差を決定することができる。負のスラックを除去するために、遅延のターゲット及びマージンを修正することができる。次いで、回路設計を再合成することができ、回路設計内でタイミング違反が発生しなくなるまでタイミングターゲットを修正することができる。合成タイミング閉鎖は、アーキテクチャ又は相対時限式設計モジュールへの修正をもたらすことができる。合成タイミング閉鎖は、従来のクロックベースのEDAツールフローにおける反復を可能にすることができる。
別の例では、事前レイアウト設計を正確性に対して検証することができる。正確性検証は、ModelSim、NCVerilog、又はEldoのような従来のクロックベースのEDAツールを用いて実施することができる。
電力及び性能に対して設計を最適化するのを助けるために、回路アーキテクチャに追加の方法又はアルゴリズムを適用することができる。例えば、相対時限式アーキテクチャは、アーキテクチャの最適化を従来のクロック設計におけるものとは異なるものにすることができる様々なサイクル及び局所周波数を含むことができる非同期設計とすることができる。電力及び性能に対してアーキテクチャを最適化するいずれかの方法を適用することができる。電力及び性能の最適化は、システム電力及び性能最適化器によって実施することができ、事象の時限式分離、キャノピーグラフ、可視化技術、電圧低下、又は電力ゲーティングのような方法を含むことができる。電力及び性能の最適化は、クロックEDAツールフローのCAD構成要素を使用する反復を含むことができる、クロック性能最適化では使用されない追加の方法及びアルゴリズムを含むことができる。
設計において相対タイミングに対して特徴付けされた各インスタンスは、物理レイアウトに関する特定の設計インスタンスにマップされた制約を有することができる。物理レイアウトに関する特定の設計インスタンスは、設計最適化に向けてEDAツール内でタイミング駆動アルゴリズムを有効化にするのに必要な全ての制約を含むことができる。例えば、物理レイアウトに関する特定の設計インスタンスは、RT特徴付けされたモジュールの論理の修正を許さない指令、モジュール内でタイミングサイクルを切断する指令、又はモジュールに関するタイミング経路を定める指令を含むことができる。物理レイアウトに関する特定の設計インスタンスは、設計におけるセルの配置に基づいて設計の電力及び性能を最適化するために、タイミング制約に基づいて関連ノードを互いにクラスター化するか又は力指向法を使用する指令を含むことができる。タイミング制約をアーキテクチャにマップするいずれの方法も使用することができる。物理レイアウトに関する特定の設計インスタンスのマッピングは、相対時限式設計モジュールのタイミング駆動最適化を可能にすることができる。
次いで、物理設計を生成することができる614。物理設計は、Magma、ICC、又はSoCのような従来のEDA設計ツール及びCADツールのうちのいずれかを用いて実施することができる。物理設計では、集積回路の設計を完成させることができる。合成タイミング閉鎖と同様に、負のスラックを除去し、物理設計のタイミング閉鎖を与えるために、物理設計タイミング閉鎖検索アルゴリズム616を使用することができる。タイミング閉鎖は、クロックタイミング遅延経路と相対タイミング遅延経路の両方に基づいてシステム内でタイミング違反が発生しない時に到達することができる。負のスラック又はタイミング誤差を除去するために、段階604〜616の反復を適用することができる。
挙動正確性及びタイミング正確性のタイミング検証に向けて、完全な相対タイミング制約セットを物理設計インスタンスにマップすることができる618。一例では、合成及び物理設計における設計フローにおいて、速度非依存タイミング制約の部分集合のみを使用することができる。最終設計検証では、完全でロバストな制約セットを使用することができる。タイミング検証のためのマッピングは、完全な速度非依存制約セットだけではなく、遅延不感(非時限式)法を使用するシステムをモデル化する際に使用される追加の制約を含むことができる。例えば、設計が、望ましい性能で正しく作動するために得るタイミング要件を検証することができる複数の制約セットを生成することができる。タイミング検証は、結合されたものが制約の全てをカバーする異なる制約セットを使用する反復検証実行を使用することができる。反復は、相対時限式設計モジュールの通常は順次的かつ循環的な性質に(a)有向非循環グラフ(DAG)であるタイミンググラフを形成するためにタイミングサイクルを切断する必要性及び(b)検査しなければならないタイミング経路を保持する要求を加えたものによるものとすることができる。多くの場合にこれら2つの条件は、異なるタイミング制約経路において互いに排他的であり、複数回の検証実行を必要とする。完全なタイミング制約セットをアーキテクチャにマップするいずれかの方法及び複数の実行セットを使用することができる。タイミング検証のためのマッピングは、相対時限式設計モジュールのタイミング駆動最適化を可能にすることができる。性能、正確性、及び収量に対してポストレイアウト設計を検証することができる620。クロックベースのタイミング検証EDAツールは、PrimeTime及びModelSimを含むことができる。合成タイミング閉鎖及び物理設計タイミング閉鎖と同様に、負のスラックを除去し、仕上げポストレイアウト設計のタイミング閉鎖を与えるために仕上げタイミング閉鎖検索アルゴリズム616を使用することができる。タイミング閉鎖は、クロックタイミング遅延経路と相対タイミング遅延経路の両方に基づいてシステム内でタイミング違反が発生しない時に到達することができる。負のスラック又はタイミング誤差を除去するために、段階604〜622の反復を適用することができる。負のスラックが除去された後に、検証された最終集積回路をテープアウトすることができ624、製造に向けて製造工場に送られる。
一例では、線形パイプライン段300(図3)を相対時限式アーキテクチャ520(図5)の一部とすることができる。このパイプラインは、パイプライン乗算演算のようないずれかの機能を実施することができる。例えば、図7は、通信システムの計算法(CCS)を用いた制御モジュール342、344、及び346の挙動の形式仕様を示している。
制御モジュールを実施するために、状態グラフ及び記号的遷移グラフ(STG)のような多くの異なる方法及び回路方式を使用することができる。一例において、仕様700の回路実装800を図8に例示している。制御モジュール回路(すなわち、ハンドシェイク回路)は、7つの組合せ論理ゲート、すなわち、インバータ804、806、及び810、並びにNORゲート808及び814のような静的論理ゲートと、AND−OR反転ゲート(AOIゲート)802及び812のような複合ゲートとを含む。AOIゲートは、1つ又はそれよりも多くのANDゲートにNORゲートが続く組合せから構成される2レベルの混合論理関数又は複合論理関数である。動的論理、ドミノゲート、ラッチ、又は多数決ゲートのようないずれかの他のタイプのゲートを使用することができる。モジュール800の論理は、シーケンシャル機能を実施することができる。シーケンシャル論理は、図示のように、フィードバックを用いて実施することができる。フィードバックは、ゲート802及び804と、ゲート802、804、及び808と、ゲート812及び814と、ゲート812、814、及び808とを通るサイクルの場合のように、回路トポロジーにおいてサイクルを生成することができる。シーケンシャル回路は、ラッチ、動的ゲート、又は大多数ゲートを使用することによって存在する状態を含むことができる。回路は、Verilogのようなハードウエア記述言語を用いて説明することができる。一例では、800で表した論理は、図9に示すように、構造的Verilogを有する130ナノメートル(nm)Artisanセルライブラリ900にマップすることができる。すなわち、作動510(図5)に従って回路設計を特徴付けることができる。
相対タイミングは、一般的な回路及びシステムの不均一なタイミング要件の正確な捕捉、モデル化、及び検証を可能にする数学的タイミングモデルである。これらの設計では、設計者及びツールが間接的な意味を指定及び理解し、より一般的な回路構造及び高度なクロック技術のタイミングを操作することを可能にするためのクロック周波数のような従来の間接表現を用いずに、タイミング制約を明示的にすることができる。回路の性能及び正確性に影響を及ぼすタイミング制約は、通例の実数値変数又は遅延範囲ではなく、論理制約に変換することができる。論理制約は、コンパクトな表現をサポートし、より効率的な検索及び検証のアルゴリズムを展開配備することを可能にすることができ、それによってタイミングを最適化、物理配置、及び検証の設計ツールと組み合わせる機能を有意に改善することができる。その結果、設計者及びCADツールがタイミングを表す手法をEDAツールがタイミング駆動最適化を実施することを変わらずに可能にするだけでなく、システムにおける遅延ターゲットにわたって細粒度制御も与えるように変更することができる。明示的タイミング制約を使用するこの方式は、一部の回路設計において有意な電力−性能の利点を与えることができる。
回路内のタイミングは、性能と正確性の両方を決定することができる。制御モジュールの正確性と性能の両方の条件を表す上で、相対タイミングを使用することができる。例えば、タイミング制約は、ある一定の状態を到達不能にする論理表現として表すことができる。除去される状態は、回路の不具合を含む場合があり、従って、回路正確性にはタイミングが必要である可能性がある。従って、物理的な実現において全てのタイミングが満たされる場合に、回路は、不具合なしに作動させることができる。性能制約は、正しい回路作動に対して不可欠であるとは限らないが、性能ターゲットが満たされることを確実にすることができる。図10は、相対タイミング制約1000(式1でも表される)を指定するのに使用される経路ベースの相対タイミングにおける一般形式を示している。式は、発散点(pod)と収束点(poc)を含む。発散点podは、システム内でクロック事象又はハンドシェイク信号のような他の事象を発生させるいずれかの事象とすることができる。収束点は、2つの事象poc0及びpoc1とマージンmとから構成される。2つのpoc事象は、回路が正しく作動するか又は望ましい性能を得るように時間的に順序付けられる。事象podとpoc0にマージンmを加えたもの間の最大遅延は、事象podから事象poc1までの最小遅延よりも小さい場合がある。
図11は、図9の回路がシステム内で正しく作動するための速度非依存タイミング制約1100を示している。制約1100は、3つのクラス、すなわち、局所実施制約、時限式プロトコル制約、及び束データ制約を含むことができる。遅延不感制約セット(図示せず)は、完全な設計特徴付けフローの一部とすることができる。制約の個数及びタイプは、実施に使用されるゲート、プロトコルの並行性、及びシステム設計に基づいて決定することができる。図11の制約の例示的実施形態において、pod、poc0、及びpoc1に対するインデックスが存在しない場合に、事象は、モジュールに局在化するノードを参照することができる。束データ制約の場合のようにインデックスが確実に存在する場合に、これらのインデックスは、異なるモジュールインスタンス内又は設計内の階層構造の高いレベルにあるノードへの参照を示すことができる。大きいインデックス(すなわち、大きい数のインデックス)は、設計内で要求信号が到達するパイプラインの下方(すなわち、下流)の参照を示し、それに対して小さいインデックス(すなわち、小さい数のインデックス)は、確認応答信号を通してパイプラインを上方(すなわち、上流)に遡ることができる。従って、束データ制約に対する経路は、下流のコントローラへ、要求信号を通して下流のコントローラのラッチまで移動することができる。図11のタイミング制約1100は例を提供しているのであって、限定的であるように意図したものではない。相対時限式における端点を表す追加の方法、より少ない方法、又は異なる方法を使用することができる。
制約は、設計インスタンスにマップすることができる530(図5)。例えば、図11のRT制約
に対する経路及び遅延制約は、図3のインスタンス344に適用された場合に以下のものとすることができる。経路の最大遅延lri+1+→la_i+1−→lai+1+→y_i+1−は、経路の最小遅延lri+1+→la_i+1−→lai+1+→rai+→ra_i−→rr_i+→rri−→lri+1−→la_i+1+→lai+1−よりも小さい場合がある。信号ラベル付け(例えば、la)にアンダーバー(_)が続くものは、有効化ロー信号を表すことができ(例えば、la_)、それに対して下付き文字がない信号ラベル付けは、有効化ハイ信号を表すことができる(例えば、la)。信号ラベル付けに続くマイナス符号(−)は、信号の立ち下がりエッジを表すことができ(例えば、la−)、それに対して信号ラベル付けに続くプラス符号(+)は、信号の立ち上がりエッジを表すことができる(例えば、la+)。整数iは、上流設計インスタンスを表すことができ、それに対して整数i+1は、局所設計インスタンスを表すことができる。この経路の一部の有意な態様が存在する。2つの経路の最初の3つの遷移は等しく、従って、クロックベースのEDAツール内で「共通経路ペシミズム」のような共通の経路アルゴリズムを使用することができる。図示のように、podからpoc1までの経路は循環的なものとすることができる。すなわち、タイミンググラフが非循環的であることを確実にするために、この循環的経路は、どこかで遮断することができる。この循環的経路の合成及び検証において、経路の部分集合であるターゲットを設定する段階又は経路セグメントの和が相対タイミング制約の不等性を満たすようにする段階を含む様々な方法を使用することができる。クロックベースのEDAツールによってサポートされる方式で経路をタイミングツールに正しくマップするいずれの方法も使用することができる。一例では、有向非循環タイミンググラフを生成すること、並びにタイミング経路がRT特徴付けされた設計モジュール内の望ましいゲートを通過することを確実にするこの両方を行うために、サイクル切断を使用することができる。
に対する経路及び遅延制約は、図3のインスタンス344に適用された場合に以下のものとすることができる。経路の最大遅延lri+1+→la_i+1−→lai+1+→y_i+1−は、経路の最小遅延lri+1+→la_i+1−→lai+1+→rai+→ra_i−→rr_i+→rri−→lri+1−→la_i+1+→lai+1−よりも小さい場合がある。信号ラベル付け(例えば、la)にアンダーバー(_)が続くものは、有効化ロー信号を表すことができ(例えば、la_)、それに対して下付き文字がない信号ラベル付けは、有効化ハイ信号を表すことができる(例えば、la)。信号ラベル付けに続くマイナス符号(−)は、信号の立ち下がりエッジを表すことができ(例えば、la−)、それに対して信号ラベル付けに続くプラス符号(+)は、信号の立ち上がりエッジを表すことができる(例えば、la+)。整数iは、上流設計インスタンスを表すことができ、それに対して整数i+1は、局所設計インスタンスを表すことができる。この経路の一部の有意な態様が存在する。2つの経路の最初の3つの遷移は等しく、従って、クロックベースのEDAツール内で「共通経路ペシミズム」のような共通の経路アルゴリズムを使用することができる。図示のように、podからpoc1までの経路は循環的なものとすることができる。すなわち、タイミンググラフが非循環的であることを確実にするために、この循環的経路は、どこかで遮断することができる。この循環的経路の合成及び検証において、経路の部分集合であるターゲットを設定する段階又は経路セグメントの和が相対タイミング制約の不等性を満たすようにする段階を含む様々な方法を使用することができる。クロックベースのEDAツールによってサポートされる方式で経路をタイミングツールに正しくマップするいずれの方法も使用することができる。一例では、有向非循環タイミンググラフを生成すること、並びにタイミング経路がRT特徴付けされた設計モジュール内の望ましいゲートを通過することを確実にするこの両方を行うために、サイクル切断を使用することができる。
図9のモジュール900の構造的タイミングサイクルを遮断する例示的な制約セット1200を図12に示している。制約セット1200は、設計内の全てのノードにわたるタイミンググラフを有向非循環グラフ(DAG)として生成するのに使用することができる。タイミンググラフカット指令1200は、モジュールのゲート内の入力ピンのうちの一部から出力ピンへのタイミング経路を遮断する標準の「set_dont_touch」指令を使用することができる。これらの切断1200は、図8の例示的な回路800及び図9における回路800の例示的なハードウエア記述言語表現900を参照することができる。この例では、ハンドシェイク回路から生成される局所サイクルとアーキテクチャサイクルの両方を切断するのに、2つのゲート802及び812内のタイミング経路を切断することで十分とすることができる。信号la、rr、及びy_から生成されたフィードバックサイクルは、ゲート802及び812を通して切断することができる。更に、ハンドシェイク信号から生成されるアーキテクチャフィードバックサイクルは、これらのゲート内のra_ピンをディスエーブルにすることによって切断することができる。切断は、全てのゲートにおいて少なくとも1つのタイミング経路が残ることができるように行うことができる。タイミングアーク(図14に示す)が各ゲートを通過する限り、全てのゲートにおいて少なくとも1つのタイミング経路を生成することにより、EDAツール内でタイミング駆動アルゴリズムを使用することによって各ゲートが適正に最適化されることが可能になる。有向非循環タイミンググラフを生成するのに、タイミングサイクルを切断する異なる方法を使用することができる。有向非循環グラフを生成するのに、追加の経路切断、より少ない経路切断、又は異なる経路切断を使用することができる。
図13は、相対タイミングに対して特徴付けされた設計モジュールが、クロックEDAツールによって論理的に修正されないことを確実にするために与えられる例示的な制約セット1300を示している。EDAツールフロー内に含められるべきタイミングに対して特徴付けされた多くの非サポートモジュールはフィードバックを有することができ、又は他に様々な作動モードの下で発生することになる危険又は欠陥を回避するための冗長的なカバーを有することができる。クロックベースのEDAツールは、冗長的なカバーを最適化することができる。モジュールへの局所修正は、モジュールの特徴付け結果を無効にする恐れもある。従って、相対時間特徴付けされたモジュール内の殆どのセルを合成フローにおける局所修正から保護することができる。例えば、図13に示す指令セット1300は、図9の相対時限式設計モジュール900に適用することができる。図13では、set_size_only指令が使用されている。set_size_only指令は、ゲートインスタンスを電力及び性能に対して最適化するために、異なる駆動強度に対してゲートインスタンスをサイズ変更することを可能にすることができるが、ゲートインスタンスを論理的に修正することを可能にしない場合がある。set_dont_touchのような他の指令を使用することができる。set_dont_touch指令は、EDAツールによって論理又は駆動強度を修正することを可能にしない。一部の修正を可能にしながらゲートを論理的に保護する異なる方法を適用することができる。ツールフローにおける柔軟性を可能にしながら、尚も相対タイミングの基本的な性質を保持するために追加の制約セット、より少ない制約セット、又は様々なる制約セットを使用することができる。例えば、1次入力及び1次出力上のインバータは、制約によって保護されることを必要としない場合がある。
図14は、相対時限式インスタンス344(図3)の合成及び設計においてRT制約マッピング530(図5)において生成されたタイミング経路セット1400を示している。タイミング経路セット1400は、相対タイミング制約セット1100が、タイミンググラフカット指令1200から生成された有向非循環タイミンググラフために使用されると仮定したものである。1400におけるタイミング経路は、例示的なアーキテクチャ300内に使用されるようなインスタンスにマップすることができる。例えば、タイミング経路1400は、組合せデータ経路318と320が第1の2つの制約によって指定されているように、0.750nsの論理遅延を必要とすると仮定している。1400の第1及び第3の制約は、1100の「束データ制約」をカバーし、50psのマージンを与える。1100の全ての他の経路をタイミング経路1400内でカバーすることができる。
別の例において、第1の「局所実施制約」に対する経路は、
からの最大遅延が、
からの最小遅延よりも小さいことを示している。1400における5番目の制約により、完全な最大遅延経路は、0.120nsよりも小さいように制限することができる。インスタンスへマップされた(先に示すように)最小遅延経路
は、lri+1+→la_i+1−→lai+1+→rai+→ra_i−→rr_i+→rri−→lri+1−→la_i+1+→lai+1−とすることができる。この経路の部分集合は、1400における第3の制約からエミュレートすることができる。この制約は、rrではなくlrから開始することができるが、同じゲートを通過することができる。経路は、完全な経路の部分集合とすることができる。この経路部分集合は、相対タイミング制約の最大遅延構成要素の完全な経路における0.120の遅延よりも実質的に大きい0.800nsの最小遅延を有するので、回路をこのタイミング拘束条件を満たすように正しく合成することができる。
からの最大遅延が、
からの最小遅延よりも小さいことを示している。1400における5番目の制約により、完全な最大遅延経路は、0.120nsよりも小さいように制限することができる。インスタンスへマップされた(先に示すように)最小遅延経路
は、lri+1+→la_i+1−→lai+1+→rai+→ra_i−→rr_i+→rri−→lri+1−→la_i+1+→lai+1−とすることができる。この経路の部分集合は、1400における第3の制約からエミュレートすることができる。この制約は、rrではなくlrから開始することができるが、同じゲートを通過することができる。経路は、完全な経路の部分集合とすることができる。この経路部分集合は、相対タイミング制約の最大遅延構成要素の完全な経路における0.120の遅延よりも実質的に大きい0.800nsの最小遅延を有するので、回路をこのタイミング拘束条件を満たすように正しく合成することができる。
一例では、タイミング制約1100からの経路及び経路部分集合は、タイミング経路1400内のタイミング制約の各々にマップすることができる。このマッピングが設計内の全ての相対タイミングインスタンスに対して使用される場合に、制約セットを設計が、電力及び性能に対してタイミング最適化され、同時にシステム内のタイミング制約を満足することを確実にすることができるクロックベースのEDAツールに渡すことができる。追加の制約、より少ない制約、又は異なる制約を使用することができる。制約セットを生成するための異なる方法及びアルゴリズムを使用することができる。一例では、合成ツールによって図3の遅延要素358及び360を自動的に生成することができる。
設計フローにおける各段階及びCADツールにおいて、図12、図13、及び図14に示すものと同様であるが、異なる制約部分集合の生成を使用することができる。追加の制約、より少ない制約、又は異なる制約を使用することができる。設計フローにおいて、従来のEDAツールフローの一部ではない追加の段階、より少ない段階、又は異なる段階を使用することができる。例えば、相対時限式システム設計アプリケーションのフロー例600では、タイミング経路1400に使用される遅延ターゲットを生成するために、合成タイミング制約610を使用することができる。合成タイミング制約610は、Design Compilerのような合成ツールを使用する反復工程を使用することができる。一例では、設計フロー内の多くの段階において、タイミング経路1400における制約の場合にそうであったように、設計内の実際の経路の部分集合又は近似で十分とすることができる。しかし、仕上げタイミング検証ツールが、フォークワイヤ遅延を含む物理設計に存在する可能性がある実際の遅延及び変化を検証する場合に、最終制約セットは、より精密で完全なものとすることができる。従って、タイミング検証は、設計工程において通常は十分である速度非依存モデルではなく、遅延不感遅延モデルから生成された相対タイミング制約を使用することができる。
図15の流れ図に示すように、別の例により、クロック式電子設計自動化(EDA)ツールフローの使用を可能にする相対タイミングアーキテクチャを生成する方法1500を提供する。本方法は、少なくとも1つのコンピュータ可読媒体又は1つの持続性機械可読ストレージ媒体上に含まれる命令としてマシン又はコンピュータ回路上で実行することができる。本方法は、ブロック1510におけるように、相対時限式モジュールを用いて集積回路(IC)アーキテクチャを生成する作動を含む。ブロック1520におけるように、相対タイミング制約(RTC)を相対時限式モジュールの相対時限式インスタンスにマップする作動が続く。本方法の次の作動は、ブロック1530におけるように、各相対タイミング制約に対して遅延値を生成する段階とすることができる。
一例において、遅延値を生成する作動は、ICアーキテクチャ内でタイミング違反が発生しなくなるまで相対タイミング制約の遅延値を反復的に修正し、それによって閉じたタイミング解を生成する段階を更に含むことができる。別の例において、本方法は、クロックツールフロー内で相対時限式モジュールのタイミング駆動最適化を用いてICアーキテクチャの電力及び性能を最適化する段階を更に含むことができる。電力及び性能を最適化する段階は、事象の時限式分離、キャノピーグラフ、可視化技術、電圧低下、又は電力ゲーティングを含むことができる。
別の構成では、podが発散点(pod)事象であり、poc0が、適正な回路作動において第2の収束点(poc)事象poc1の前に発生される第1のpoc事象であり、マージンmがpoc0とpoc1の間の最小分離である時に、相対タイミング制約(RTC)は、
によって表すことができる。遅延値は、pod事象と第1のpoc事象の間の第1の相対事象経路に対して最大ターゲット遅延を与え、pod事象と第2のpoc事象の間の第2の相対事象経路に対して最小ターゲット遅延を与え、第1の相対事象と第2の相対事象の間の最小分離を表すマージンターゲット遅延を与える。
によって表すことができる。遅延値は、pod事象と第1のpoc事象の間の第1の相対事象経路に対して最大ターゲット遅延を与え、pod事象と第2のpoc事象の間の第2の相対事象経路に対して最小ターゲット遅延を与え、第1の相対事象と第2の相対事象の間の最小分離を表すマージンターゲット遅延を与える。
別の例において、相対タイミング制約をマップし、各相対タイミング制約に対して遅延値を生成する作動は、相対タイミング制約のための端点を定める段階と、相対タイミング制約の端点の間のタイミング経路を決定する段階とを更に含むことができ、ICアーキテクチャの各ゲートをICアーキテクチャの少なくとも1つのタイミング経路で表すことができる。
別の構成において、本方法は、相対時限式モジュール又は相対時限式インスタンスの論理修正を阻止する段階を更に含むことができる。
図16の流れ図に示すように、別の例は、相対時限式モジュールを用いて相対タイミングアーキテクチャを生成するように構成されたクロックツールフローのための電子設計自動化(EDA)ツールのコンピュータ回路の機能1600を提供する。この機能は、方法として実施することができ、又は少なくとも1つのコンピュータ可読媒体又は1つの持続性機械可読ストレージ媒体上に含まれる命令としてマシン上で実行することができる。コンピュータ回路は、ブロック1610におけるように、相対時限式モジュールを用いてハードウエア記述言語(HDL)集積回路(IC)アーキテクチャを生成するように構成することができる。コンピュータ回路は、ブロック1620におけるように、相対タイミング制約(RTC)を相対時限式モジュールの相対時限式インスタンスにマップするように更に構成することができる。コンピュータ回路は、ブロック1630におけるように、各相対タイミング制約に対してタイミングターゲットを生成するように構成することができる。
一例において、コンピュータ回路は、HDL ICアーキテクチャ内で負のタイミングスラックが発生しなくなるまで相対タイミング制約のタイミングターゲットを反復的に修正するように更に構成することができる。負のタイミングスラックは、タイミング違反を表すことができる。一構成において、タイミングターゲットを反復的に修正するように構成されたコンピュータ回路は、クロックタイミング遅延経路と相対タイミング遅延経路の両方において、負のタイミングスラックを収束させるように更に構成することができる。別の構成において、タイミングターゲットを反復的に修正するように構成されたコンピュータ回路は、相対タイミング制約を満足するように、HDL ICアーキテクチャ内に遅延要素を追加するように更に構成することができる。別の構成において、コンピュータ回路は、クロックツールフロー内で相対時限式モジュールのタイミング駆動最適化を用いてHDL ICアーキテクチャの電力及び性能を最適化するように更に構成される。
別の例において、相対タイミング制約をマップするように構成されたコンピュータ回路は、相対タイミング制約のための端点を定めるように更に構成することができる。タイミングターゲットを生成するように構成されたコンピュータ回路は、相対タイミング制約のタイミング経路の両端にある端点の間のタイミングアークを決定するように更に構成することができ、タイミングアークの複合体のうちの1つは、ICアーキテクチャの各ゲートを通過する。
別の構成において、podが発散点(pod)事象であり、poc0が、適正な回路作動において第2の収束点(poc)事象poc1の前に発生される第1のpoc事象であり、マージンmが、poc0とpoc1の間の最小分離である時に、相対タイミング制約(RTC)は、
によって表すことができる。タイミングターゲットは、pod事象と第1のpoc事象の間の第1の相対事象経路に対して最大ターゲット遅延を与え、pod事象と第2のpoc事象の間の第2の相対事象経路に対して最小ターゲット遅延を与え、又は第1の相対事象と第2の相対事象の間の最小分離を表すマージンターゲット遅延を与えることができる。
によって表すことができる。タイミングターゲットは、pod事象と第1のpoc事象の間の第1の相対事象経路に対して最大ターゲット遅延を与え、pod事象と第2のpoc事象の間の第2の相対事象経路に対して最小ターゲット遅延を与え、又は第1の相対事象と第2の相対事象の間の最小分離を表すマージンターゲット遅延を与えることができる。
別の例において、コンピュータ回路は、相対時限式モジュールを設計かつ特徴付けるように更に構成することができる。別の構成において、各相対タイミング制約に対してタイミングターゲットを生成するように構成されたコンピュータ回路は、アーキテクチャ電力ターゲット又はアーキテクチャ性能ターゲットに基づくことができる。
別の例において、EDAツールは、合成ツール、最適化ツール、物理設計ツール、物理経路指定及び配置ツール、又はタイミング検証ツールとすることができる。別の構成において、相対時限式モジュールは、設計をVerilog、HDL、又は超高速集積回路(VHSIC)HDL(VHDL)に符号化することにより、挙動的HDL ICアーキテクチャ又は構造的HDL ICアーキテクチャを生成することができる。
図17は、プロセッサ1714を含む相対タイミングアーキテクチャ発生に向けて構成されたクロックツールフローのための電子設計自動化(EDA)ツール例1712を示している。一例において、プロセッサは、図15の1500で記述された方法を実施するように構成することができる。別の例において、プロセッサは、図16の1600で記述されたコンピュータ回路を実施するように構成することができる。
一例において、プロセッサ1714(図17)は、相対時限式モジュールを用いて集積回路(IC)アーキテクチャを生成し、相対タイミング制約(RTC)を相対時限式モジュールの相対時限式インスタンスにマップし、各相対タイミング制約に対して遅延ターゲットを生成するように構成することができる。別の構成において、プロセッサは、タイミング違反を排除するために、タイミング閉鎖検索アルゴリズムを用いて遅延ターゲットを再帰的に変更するように構成することができる。
別の例において、podが発散点(pod)事象であり、poc0が、適正な回路作動において第2の収束点(poc)事象poc1の前に発生される第1のpoc事象であり、マージンmがpoc0とpoc1の間の最小分離である時に、相対タイミング制約(RTC)は、
によって表すことができる。遅延ターゲットは、pod事象と第1のpoc事象の間の第1の相対事象経路に対して最大ターゲット遅延を与え、pod事象と第2のpoc事象の間の第2の相対事象経路に対して最小ターゲット遅延を与え、又は第1の相対事象経路を第2の相対事象経路に第1の相対事象と第2の相対事象の間の最小分離によって関連付けるマージン制約を与えることができる。
によって表すことができる。遅延ターゲットは、pod事象と第1のpoc事象の間の第1の相対事象経路に対して最大ターゲット遅延を与え、pod事象と第2のpoc事象の間の第2の相対事象経路に対して最小ターゲット遅延を与え、又は第1の相対事象経路を第2の相対事象経路に第1の相対事象と第2の相対事象の間の最小分離によって関連付けるマージン制約を与えることができる。
別の構成において、プロセッサは、クロックツールフロー内で相対時限式モジュールのタイミング駆動最適化を用いてICアーキテクチャの電力及び性能を最適化するように更に構成することができる。別の例において、プロセッサは、相対タイミング制約のための端点を定め、相対タイミング制約の端点の間のタイミング経路を決定するように更に構成することができる。ICアーキテクチャの各ゲートをICアーキテクチャの少なくとも1つのタイミング経路で表すことができる。別の構成において、プロセッサは、相対時限式モジュールの論理の修正を阻止するように更に構成することができる。
別の例では、集積回路(IC)を生成するのに、EDAツール1712を使用する電子設計自動化(EDA)システム1710を使用することができる。EDAシステムは、アーキテクチャ設計ツール1720と、合成ツール1722と、物理設計ツール1724と、タイミング検証ツール1726とを含むことができる。アーキテクチャ設計ツールは、ハードウエア記述言語(HDL)を用いて特徴付け情報、セルライブラリ情報、及びアーキテクチャ性能ターゲットを符号化することによって集積回路(IC)アーキテクチャを設計かつ特徴付けるためのEDAツールを含むことができる。一例において、アーキテクチャ設計ツールは、Verilog、Hardware Description Language(HDL)、又は超高速集積回路(VHSIC)HDL(VHDL)を使用することができる。合成ツールは、HDLの挙動を実施するハードウエア論理を生成するためのEDAツールを含むことができる。一例において、合成ツールは、Synopsys設計制約(.sdc)、Design Compiler、Encounter Register Transfer Level(RTL)、Xilinx Integrated Software Environment(ISE)、Xilinx Synthesis Tool(XST)、Quartus、Synplify、LeonardoSpectrum、又はPrecisionを使用することができる。物理設計ツールは、ハードウエア論理に基づいてハードウエア回路を配置及び経路指定するためのEDAツールを含むことができる。一例において、物理設計ツールは、Synopsys Integrated Circuit Compiler(ICC)、Cadence Encounter Digital Implementation(EDI)、又はCadence System on Chip(SoC)Encounterを使用することができる。タイミング検証ツールは、速度非依存タイミング制約及び遅延不感タイミング制約を用いて性能、正確性、及び収量に対してハードウエア回路を検証するためのEDAツールを含むことができる。一例において、タイミング検証ツールは、Primetime、Tempus、Modelsim、Eldo、Simulation Program with Integrated Circuit Emphasis(SPICE)、Verilog Compiled Simulator(VCS)、又はCadence Verilog−L tier extension(Verilog−XL)を使用することができる。
様々な技術又はそのある一定の態様又は部分は、フロッピー(登録商標)ディスケット、コンパクトディスク読取専用メモリ(CD−ROM)、ハードドライブ、持続性コンピュータ可読ストレージ媒体、又はあらゆる他の機械可読ストレージ媒体のような有形媒体内に実施されたプログラムコード(すなわち、命令)の形態を取ることができ、プログラムコードがコンピュータのようなマシン内にロードされてマシンによって実行されると、マシンは、様々な技術を実施するための装置になる。回路は、ハードウエア、ファームウエア、プログラムコード、実行可能コード、コンピュータ命令、及び/又はソフトウエアを含むことができる。持続性コンピュータ可読ストレージ媒体は、信号を含まないコンピュータ可読ストレージ媒体とすることができる。プログラム可能コンピュータ上でのプログラムコードの実行の場合に、コンピュータデバイスは、プロセッサと、プロセッサによって可読なストレージ媒体(揮発性及び不揮発性のメモリ及び/又は記憶要素を含む)と、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含むことができる。揮発性及び不揮発性のメモリ及び/又は記憶要素は、ランダムアクセスメモリ(RAM)、消去可能プログラマブル読取専用メモリ(EPROM)、フラッシュドライブ、光ドライブ、磁気ハードドライブ、固体ドライブ、又は電子データを格納するための他の媒体とすることができる。ノード及び無線デバイスは、送受信機モジュール(すなわち、送受信機)、カウンタモジュール(すなわち、カウンタ)、処理モジュール(すなわち、プロセッサ)、及び/又はクロックモジュール(すなわち、クロック)又はタイマモジュール(すなわち、タイマ)を含むことができる。本明細書に説明する様々な技術を実施又は利用することができる1つ又はそれよりも多くのプログラムは、アプリケーションプログラミングインタフェース(API)、再使用可能制御を使用することができる。そのようなプログラムは、コンピュータシステムと通信するための高レベル手順型プログラミング言語又はオブジェクト指向プログラミング言語に実施することができる。しかし、プログラムは、必要に応じてアセンブリ又はマシン言語に実施することができる。いかなる場合にも、言語は、コンパイル実行言語又はインタープリター実行言語とすることができ、ハードウエア実施と組み合わせることができる。
本明細書に説明する機能ユニットのうちの多くのものを特にこれらのユニットの実施独立性を強調するためにモジュールとラベル付けしたことを理解しなければならない。例えば、モジュールは、特別仕様の超大規模集積回路(VLSI)回路又はゲートアレイ、論理チップ、トランジスタ、又は他の離散構成要素のような汎用半導体を含むハードウエア回路として実施することができる。モジュールは、フィールドプログラマブルゲートアレイ(FPGA)、プログラム可能アレイ論理、プログラム可能論理デバイスなどのようなプログラム可能ハードウエアデバイスに実施することができる。
モジュールは、様々なタイプのプロセッサによる実行のためのソフトウエアに実施することができる。例えば、識別される実行可能コードのモジュールは、例えば、オブジェクト、手順、又は関数として編成することができるコンピュータ命令から構成される1つ又はそれよりも多くの物理ブロック又は論理ブロックを含むことができる。しかし、識別されるモジュールの実行可能ファイルは、物理的に一緒に存在する必要はなく、論理的に互いに接続された場合にモジュールを構成し、このモジュールに対して記述された目的を実現する異なる場所に格納された異なる命令を含むことができる。
実際には、実行可能コードのモジュールは、単一命令又は多くの命令とすることができ、一部の異なるコードセグメントにわたって。異なるプログラムの間で、かつ一部のメモリデバイスにわたって分配することさえ可能である。同様に、本明細書において作動データをモジュール内で識別して例示したが、これらの作動データは、あらゆる適切な形態で実施することができ、あらゆる適切なタイプのデータ構造内で編成することができる。作動データは、単一データセットとして収集することができ、又は異なる記憶デバイスを含む異なる場所にわたって分配することができ、少なくとも部分的には単にシステム又はネットワーク上の電子信号として存在することができる。モジュールは、望ましい機能を実施するように作動可能なエージェントを含む受動的又は能動的なものとすることができる。
本明細書を通じての「例」又は「例示的」への参照は、その例に関して記述された特定の特徴、構造、又は特性が本発明の少なくとも1つの実施形態に含まれることを意味する。従って、本明細書にわたる様々な箇所における「一例において」という表現又は「例示的」という言葉の出現は、必ずしも全てが同じ実施形態を参照しているわけではない。
本明細書に使用する場合に、複数の品目、構造要素、組成要素、及び/又は材料を便宜上共通のリスト内に提供することができる。しかし、これらのリストは、リストの各構成要素が別個の固有構成要素として個々に識別される場合と同じく解釈しなければならない。従って、そのようなリストの個々の構成要素は、反意の指示のない共通の群内での提示ということだけに基づいて、同じリストのいずれかの他の構成要素の事実上の均等物であると解釈すべきではない。更に、本明細書では、本発明の様々な実施形態及び例をこれらの実施形態及び例の様々な構成要素に対する代替物と共に参照している場合がある。そのような実施形態、例、及び代替物を互いの事実上の均等物として解釈すべきではなく、本発明の別個の自立的な表現であると解釈しなければならないことを理解しなければならない。
更に、説明する特徴、構造、又は特性は、1つ又はそれよりも多くの実施形態においてあらゆる適切な方式で組み合わせることができる。それに続く説明では、本発明の実施形態の完全な理解をもたらすためにレイアウト、距離、ネットワークの例のような多くの特定の詳細内容を提供している。しかし、当業者は、本発明をこれらの特定の詳細内容のうちの1つ又はそれよりも多くを用いずに又は他の方法、構成要素、レイアウトなどを用いて実施することができることを認識するであろう。この他としては、本発明の態様を不明瞭にすることを避けるために、公知の構造、材料、又は作動に対しては詳細には示しておらず、又は記載していない。
上述の例は、1つ又はそれよりも多くの特定の用途における本発明の原理を示すものであるが、当業者には、実施の形態、使用、及び詳細内容において本発明の機能を作用することなく、かつ本発明の原理及び概念から逸脱することなく多くの修正を加えることができることが明らかであろう。従って、以下に示す特許請求の範囲による場合を除き、本発明を限定するように意図していない。
510 相対時限式(RT)モジュールを設計かつ特徴付けること
520 相対時限式モジュールを用いて挙動的又は構造的なHDL ICシステムアーキテクチャを生成すること
530 RT特徴付けされた制約セットを特定のEDAツールアプリケーション(例えば、合成、配置及び経路指定、タイミング検証)に関するICモジュールインスタンスにマップすること
540 モジュール及びアーキテクチャの電力/性能ターゲットに基づいて各RT遅延制約のためのタイミングターゲットを生成すること
550 遅延値を修正することによって検索アルゴリズムを用いて閉じた解を生成するEDAツール反復を実行すること
520 相対時限式モジュールを用いて挙動的又は構造的なHDL ICシステムアーキテクチャを生成すること
530 RT特徴付けされた制約セットを特定のEDAツールアプリケーション(例えば、合成、配置及び経路指定、タイミング検証)に関するICモジュールインスタンスにマップすること
540 モジュール及びアーキテクチャの電力/性能ターゲットに基づいて各RT遅延制約のためのタイミングターゲットを生成すること
550 遅延値を修正することによって検索アルゴリズムを用いて閉じた解を生成するEDAツール反復を実行すること
Claims (26)
- 相対時限式モジュールを用いて相対タイミングアーキテクチャを発生させるように構成されたクロックツールフローのための電子設計自動化(EDA)ツールであって、
前記相対時限式モジュールを用いてハードウエア記述言語(HDL)集積回路(IC)アーキテクチャを発生させ、
相対タイミング制約(RTC)を前記相対時限式モジュールの相対時限式インスタンス上にマップし、かつ
各相対タイミング制約のためのタイミングターゲットを発生させる、
ように構成されたコンピュータ回路、
を有することを特徴とする電子設計自動化(EDA)ツール。 - 前記HDL ICアーキテクチャ内でタイミング違反を表す負のタイミングスラックが発生しなくなるまで前記相対タイミング制約の前記タイミングターゲットを反復的に修正する、
ように更に構成されることを特徴とする請求項1に記載のコンピュータ回路。 - 前記タイミングターゲットを反復的に修正するように構成されたコンピュータ回路が、
クロックタイミング遅延経路と相対タイミング遅延経路の両方に対して負のタイミングスラックを収束させる、
ように更に構成される、
ことを特徴とする請求項2に記載のコンピュータ回路。 - 前記タイミングターゲットを反復的に修正するように構成されたコンピュータ回路が、
前記相対タイミング制約を満足するように前記HDL ICアーキテクチャ内に遅延要素を追加する、
ように更に構成される、
ことを特徴とする請求項2に記載のコンピュータ回路。 - 前記タイミングターゲットを反復的に修正するように構成されたコンピュータ回路が、
前記クロックツールフロー内で前記相対時限式モジュールのタイミング駆動最適化を用いて前記HDL ICアーキテクチャの電力及び性能を最適化する、
ように更に構成される、
ことを特徴とする請求項2に記載のコンピュータ回路。 - 前記相対タイミング制約をマップするように構成されたコンピュータ回路が、該相対タイミング制約に対する端点を定めるように更に構成され、
前記タイミングターゲットを発生させるように構成されたコンピュータ回路が、前記相対タイミング制約のタイミング経路を横切る端点の間のタイミングアークを決定するように更に構成され、該タイミングアークの複合体のうちの1つが、前記ICアーキテクチャの各ゲートを通過する、
ことを特徴とする請求項1に記載のコンピュータ回路。 - 前記相対タイミング制約(RTC)は、podが、発散点(pod)事象であり、poc0が、適正回路作動のための第2のpoc事象poc1の前に発生される第1の収束点(poc)事象であり、マージンmが、該poc0と該poc1の間の最小分離である時に、
によって表され、
前記タイミングターゲットは、前記pod事象と前記第1のpoc事象の間の第1の相対事象経路に対して最大ターゲット遅延を与え、該pod事象と前記第2のpoc事象の間の第2の相対事象経路に対して最小ターゲット遅延を与え、又は該第1の相対事象と該第2の相対事象の間の最小分離を表すマージンターゲット遅延を与える、
ことを特徴とする請求項1に記載のコンピュータ回路。 - 前記相対時限式モジュールを設計かつ特徴付ける、
ように更に構成されることを特徴とする請求項1に記載のコンピュータ回路。 - 各相対タイミング制約のための前記タイミングターゲットを発生させるように構成されたコンピュータ回路が、アーキテクチャ電力ターゲット又はアーキテクチャ性能ターゲットに基づいていることを特徴とする請求項1に記載のコンピュータ回路。
- 前記EDAツールは、合成ツール、最適化ツール、物理設計ツール、物理経路指定及び配置ツール、又はタイミング検証ツールであることを特徴とする請求項1に記載のコンピュータ回路。
- 前記相対時限式モジュールは、前記設計をVerilog、HDL、又は超高速集積回路(VHSIC)HDL(VHDL)に符号化することによって挙動的HDL ICアーキテクチャ又は構造的HDL ICアーキテクチャを発生させることを特徴とする請求項1に記載のコンピュータ回路。
- 相対タイミングアーキテクチャ発生に向けて構成されたクロックツールフローのための電子設計自動化(EDA)ツールであって、
相対時限式モジュールを用いて集積回路(IC)アーキテクチャを発生させ、
相対タイミング制約(RTC)を前記相対時限式モジュールの相対時限式インスタンス上にマップし、かつ
各相対タイミング制約に対して遅延ターゲットを発生させる、
ためのプロセッサ、
を含むことを特徴とする電子設計自動化(EDA)ツール。 - 前記プロセッサは、
タイミング閉鎖検索アルゴリズムを用いてタイミング違反を排除するために遅延ターゲットを再帰的に変更する、
ように更に構成される、
ことを特徴とする請求項12に記載のEDAツール。 - 前記相対タイミング制約(RTC)は、podが発散点(pod)事象であり、poc0が、適正な回路作動のための第2のpoc事象poc1の前に発生される第1の収束点(poc)事象であり、マージンmが、該poc0と該poc1の間の最小分離である時に、
によって表され、
前記遅延ターゲットは、前記pod事象と前記第1のpoc事象の間の第1の相対事象経路に対して最大ターゲット遅延を与え、該pod事象と前記第2のpoc事象の間の第2の相対事象経路に対して最小ターゲット遅延を与え、又は第1の相対事象経路を第2の相対事象経路に該第1の相対事象と該第2の相対事象の間の最小分離を有して関連付けるマージン制約を与える、
ことを特徴とする請求項12に記載のEDAツール。 - 前記プロセッサは、
前記クロックツールフロー内で前記相対時限式モジュールのタイミング駆動最適化を用いて前記ICアーキテクチャの電力及び性能を最適化する、
ように更に構成される、
ことを特徴とする請求項12に記載のEDAツール。 - 前記プロセッサは、
前記相対タイミング制約のための端点を定め、かつ
前記ICアーキテクチャの各ゲートが該ICアーキテクチャの少なくとも1つのタイミング経路で表される前記相対タイミング制約の端点の間のタイミング経路を決定する、
ように更に構成される、
ことを特徴とする請求項12に記載のEDAツール。 - 前記プロセッサは、
前記相対時限式モジュールの論理の修正を阻止する、
ように更に構成される、
ことを特徴とする請求項16に記載のEDAツール。 - 請求項12に記載のEDAツールを用いて集積回路(IC)を発生させる電子設計自動化(EDA)システムであって、
ハードウエア記述言語(HDL)を用いて特徴付け情報、セルライブラリ情報、及びアーキテクチャ性能ターゲットを符号化することにより、集積回路(IC)アーキテクチャを設計かつ特徴付けるための請求項12に記載の前記EDAツールを含むアーキテクチャ設計ツールと、
前記HDLの挙動を実施するハードウエア論理を発生させるための請求項12に記載の前記EDAツールを含む合成ツールと、
前記ハードウエア論理に基づいてハードウエア回路を配置及び経路指定するための請求項12に記載の前記EDAツールを含む物理設計ツールと、
速度非依存タイミング制約及び遅延不感タイミング制約を用いて性能、正確性、及び収量に対してハードウエア回路を検証するための請求項12に記載の前記EDAツールを含むタイミング検証ツールと、
を含むことを特徴とするEDAシステム。 - 前記アーキテクチャ設計ツールは、Verilog、Hardware Description Language(HDL)、又は超高速集積回路(VHSIC)HDL(VHDL)を使用し、前記合成ツールは、Synopsys設計制約(.sdc)、Design Compiler、Encounter Register Transfer Level(RTL)、Xilinx Integrated Software Environment(ISE)、Xilinx Synthesis Tool(XST)、Quartus、Synplify、LeonardoSpectrum、又はPrecisionを使用し、前記物理設計ツールは、Synopsys Integrated Circuit Compiler(ICC)、Cadence Encounter Digital Implementation(EDI)、又はCadence System on Chip(SoC)Encounterを使用し、前記タイミング検証ツールは、Primetime、Tempus、Modelsim、Eldo、Simulation Program with Integrated Circuit Emphasis(SPICE)、Verilog Compiled Simulator(VCS)、又はCadence Verilog−L tier extension(Verilog−XL)を使用することを特徴とする請求項18に記載のEDAシステム。
- クロック式電子設計自動化(EDA)ツールフローの使用を可能にする相対タイミングアーキテクチャを発生させる方法であって、
相対時限式モジュールを用いて集積回路(IC)アーキテクチャを発生させる段階と、
相対タイミング制約(RTC)を前記相対時限式モジュールの相対時限式インスタンス上にマップする段階と、
各相対タイミング制約のための遅延値を発生させる段階と、
を含むことを特徴とする方法。 - 各相対タイミング制約のための前記遅延値を発生させる段階は、
前記ICアーキテクチャ内でタイミング違反が発生しなくなるまで前記相対タイミング制約の前記遅延値を反復的に修正し、それによって閉じたタイミング解を発生させる段階、
を更に含む、
ことを特徴とする請求項20に記載の方法。 - 事象の時限式分離、キャノピーグラフ、可視化技術、電圧低下、又は電力ゲーティングを含む、クロックツールフロー内で前記相対時限式モジュールのタイミング駆動最適化を用いて前記ICアーキテクチャの電力及び性能を最適化する段階、
を更に含むことを特徴とする請求項20に記載の方法。 - 相対タイミング制約をマップする段階及び各相対タイミング制約のための前記遅延値を発生させる段階は、
前記相対タイミング制約のための端点を定める段階と、
前記ICアーキテクチャの各ゲートが該ICアーキテクチャの少なくとも1つのタイミング経路で表される前記相対タイミング制約の端点の間のタイミング経路を決定する段階と、
を更に含む、
ことを特徴とする請求項20に記載の方法。 - 前記相対時限式モジュール又は相対時限式インスタンスの論理修正を阻止する段階、
を更に含むことを特徴とする請求項20に記載の方法。 - 少なくとも1つの持続性機械可読ストレージ媒体であって、
請求項20に記載の方法を実施するために実行されるようになった複数の命令、
を含むことを特徴とする媒体。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261672865P | 2012-07-18 | 2012-07-18 | |
US61/672,865 | 2012-07-18 | ||
US201261673849P | 2012-07-20 | 2012-07-20 | |
US61/673,849 | 2012-07-20 | ||
USPCT/US2013/051156 | 2013-07-18 | ||
PCT/US2013/051156 WO2014015185A1 (en) | 2012-07-18 | 2013-07-18 | Relative timing characterization |
PCT/US2013/051160 WO2014015189A1 (en) | 2012-07-18 | 2013-07-18 | Relative timing architecture |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015524590A true JP2015524590A (ja) | 2015-08-24 |
Family
ID=49949260
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015523267A Pending JP2015524590A (ja) | 2012-07-18 | 2013-07-18 | 相対タイミングアーキテクチャ |
JP2015523265A Pending JP2015524589A (ja) | 2012-07-18 | 2013-07-18 | 相対タイミング特徴付け |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015523265A Pending JP2015524589A (ja) | 2012-07-18 | 2013-07-18 | 相対タイミング特徴付け |
Country Status (5)
Country | Link |
---|---|
US (1) | US20140165022A1 (ja) |
EP (2) | EP2875454A4 (ja) |
JP (2) | JP2015524590A (ja) |
CN (2) | CN104603784A (ja) |
WO (1) | WO2014015189A1 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9135143B2 (en) * | 2012-10-08 | 2015-09-15 | National Instruments Corporation | Automated analysis of compilation processes in a graphical specification and constraint language |
CN104636509B (zh) * | 2013-11-08 | 2019-05-28 | 恩智浦美国有限公司 | 门级仿真中验证时序问题的系统及方法 |
US9734268B2 (en) * | 2015-08-12 | 2017-08-15 | International Business Machines Corporation | Slack redistribution for additional power recovery |
KR102556467B1 (ko) | 2015-09-10 | 2023-07-18 | 삼성디스플레이 주식회사 | 유기 발광 표시 장치 및 그의 감마 기준 전압 설정 방법 |
US9679092B1 (en) * | 2015-11-03 | 2017-06-13 | Xilinx, Inc. | Constraint handling for parameterizable hardware description language |
CN105676995B (zh) * | 2015-12-31 | 2017-03-22 | 南京华捷艾米软件科技有限公司 | 一种实现三维测量芯片低功耗的方法 |
CN105808839B (zh) * | 2016-03-04 | 2019-03-22 | 北京工业大学 | 一种电路路径的测试覆盖率分析方法 |
US10073938B2 (en) * | 2016-06-29 | 2018-09-11 | International Business Machines Corporation | Integrated circuit design verification |
US10325045B2 (en) | 2017-05-25 | 2019-06-18 | International Business Machines Corporation | Estimating timing convergence using assertion comparisons |
CN110532577B (zh) * | 2018-05-24 | 2021-06-18 | 大唐移动通信设备有限公司 | 数字逻辑电路编译方法及装置 |
US10733346B1 (en) * | 2018-12-12 | 2020-08-04 | Cadence Design Systems, Inc. | Systems and methods for arc-based debugging in an electronic design |
US10839126B1 (en) * | 2019-04-12 | 2020-11-17 | Dialog Semiconductor (Uk) Limited | Tools and methods for selection of relative timing constraints in asynchronous circuits, and asynchronous circuits made thereby |
CN110737890B (zh) * | 2019-10-25 | 2021-04-02 | 中国科学院信息工程研究所 | 一种基于异质时序事件嵌入学习的内部威胁检测系统及方法 |
CN113239655B (zh) * | 2020-05-21 | 2024-06-28 | 台湾积体电路制造股份有限公司 | 半导体电路的约束确定系统和方法 |
CN117151015B (zh) * | 2023-09-15 | 2024-03-15 | 上海合芯数字科技有限公司 | 集成电路布局布线方法、装置、集成电路芯片 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058252A (en) * | 1995-01-19 | 2000-05-02 | Synopsys, Inc. | System and method for generating effective layout constraints for a circuit design or the like |
US5650938A (en) * | 1995-12-13 | 1997-07-22 | Synopsys, Inc. | Method and apparatus for verifying asynchronous circuits using static timing analysis and dynamic functional simulation |
US6005416A (en) * | 1997-05-02 | 1999-12-21 | International Business Machines Corporation | Compiled self-resetting CMOS logic array macros |
US6442739B1 (en) * | 1998-05-01 | 2002-08-27 | Cadence Design Systems, Inc. | System and method for timing abstraction of digital logic circuits |
US6519754B1 (en) * | 1999-05-17 | 2003-02-11 | Synplicity, Inc. | Methods and apparatuses for designing integrated circuits |
JP2001142927A (ja) * | 1999-11-16 | 2001-05-25 | Matsushita Electric Ind Co Ltd | 半導体集積回路装置の設計方法,回路の消費電力解析方法及び消費電力解析装置 |
US6763506B1 (en) * | 2000-07-11 | 2004-07-13 | Altera Corporation | Method of optimizing the design of electronic systems having multiple timing constraints |
US7194715B2 (en) * | 2004-04-30 | 2007-03-20 | International Business Machines Corporation | Method and system for performing static timing analysis on digital electronic circuits |
US7469392B2 (en) * | 2004-12-09 | 2008-12-23 | Synopsys, Inc. | Abstraction refinement using controllability and cooperativeness analysis |
US7509611B2 (en) * | 2006-02-07 | 2009-03-24 | International Business Machines Corporation | Heuristic clustering of circuit elements in a circuit design |
US7773951B2 (en) * | 2006-05-23 | 2010-08-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for generating channel quality information for wireless communication |
US20080201671A1 (en) * | 2007-02-16 | 2008-08-21 | Atrenta, Inc. | Method for generating timing exceptions |
US8065647B2 (en) * | 2007-10-19 | 2011-11-22 | The University Of Utah Research Foundation | Method and system for asynchronous chip design |
US8972915B2 (en) * | 2008-02-12 | 2015-03-03 | University Of Southern California | Static timing analysis of template-based asynchronous circuits |
US8103997B2 (en) * | 2009-04-20 | 2012-01-24 | International Business Machines Corporation | Method of employing slew dependent pin capacitances to capture interconnect parasitics during timing abstraction of VLSI circuits |
US8239796B2 (en) * | 2009-12-31 | 2012-08-07 | University Of Utah | Method and system for synthesizing relative timing constraints on an integrated circuit design to facilitate timing verification |
US8560988B2 (en) * | 2010-08-13 | 2013-10-15 | Atrenta, Inc. | Apparatus and method thereof for hybrid timing exception verification of an integrated circuit design |
CN102004811B (zh) * | 2010-09-15 | 2012-11-07 | 华为技术有限公司 | 一种芯片电路的模拟测试方法和装置 |
US8365116B2 (en) * | 2010-12-06 | 2013-01-29 | University Of Utah Research Foundation | Cycle cutting with timing path analysis |
-
2013
- 2013-07-18 CN CN201380046636.3A patent/CN104603784A/zh active Pending
- 2013-07-18 EP EP13819907.0A patent/EP2875454A4/en not_active Withdrawn
- 2013-07-18 CN CN201380046641.4A patent/CN104620242A/zh active Pending
- 2013-07-18 EP EP13819908.8A patent/EP2875455A4/en not_active Withdrawn
- 2013-07-18 JP JP2015523267A patent/JP2015524590A/ja active Pending
- 2013-07-18 WO PCT/US2013/051160 patent/WO2014015189A1/en active Application Filing
- 2013-07-18 US US13/945,843 patent/US20140165022A1/en not_active Abandoned
- 2013-07-18 JP JP2015523265A patent/JP2015524589A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP2875455A1 (en) | 2015-05-27 |
CN104603784A (zh) | 2015-05-06 |
EP2875454A4 (en) | 2016-06-22 |
EP2875454A1 (en) | 2015-05-27 |
US20140165022A1 (en) | 2014-06-12 |
CN104620242A (zh) | 2015-05-13 |
JP2015524589A (ja) | 2015-08-24 |
WO2014015189A1 (en) | 2014-01-23 |
EP2875455A4 (en) | 2016-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2015524590A (ja) | 相対タイミングアーキテクチャ | |
US8745561B1 (en) | System and method for common path pessimism reduction in timing analysis to guide remedial transformations of a circuit design | |
US8065647B2 (en) | Method and system for asynchronous chip design | |
US9953120B2 (en) | Relative timing characterization | |
US11836641B2 (en) | Machine learning-based prediction of metrics at early-stage circuit design | |
US10467365B1 (en) | Systems and methods for calculating common clock path pessimism for hierarchical timing analysis in an electronic design | |
US8607173B2 (en) | Hierarchical bottom-up clock domain crossing verification | |
US11347917B2 (en) | Determining and verifying metastability in clock domain crossings | |
US20130091482A1 (en) | Method and apparatus for design space exploration acceleration | |
US20220180031A1 (en) | Latency offset in pre-clock tree synthesis modeling | |
US20210256186A1 (en) | Engineering change orders with consideration of adversely affected constraints | |
US9305125B2 (en) | Integrated circuit design timing path verification tool | |
US20080059923A1 (en) | Lsi power consumption calculation method and calculation program | |
US9449127B1 (en) | System for verifying timing constraints of IC design | |
US11461523B1 (en) | Glitch analysis and glitch power estimation system | |
JP4200465B2 (ja) | 半導体集積回路の設計方法及び設計システム | |
US20230351082A1 (en) | Satisfiability-based resubstitution for incremental mapped optimization | |
US20220327269A1 (en) | Computing device and method for detecting clock domain crossing violation in design of memory device | |
US11556676B2 (en) | Scalable formal security verification of circuit designs | |
US11270052B2 (en) | System and method of timing characterization for semiconductor circuit | |
Bommu et al. | Retiming-based factorization for sequential logic optimization | |
Plassan et al. | Improving the efficiency of formal verification: the case of clock-domain crossings | |
WO2014015185A1 (en) | Relative timing characterization | |
US20240086602A1 (en) | Clock relationship based re-convergence analysis | |
US11507719B1 (en) | Accelerating formal property verification across design versions using sequential equivalence checking |