JP6301363B2 - 有用なスキューで最適化を導くためのパイプラインに沿ったタイミングボトルネックの分析 - Google Patents

有用なスキューで最適化を導くためのパイプラインに沿ったタイミングボトルネックの分析 Download PDF

Info

Publication number
JP6301363B2
JP6301363B2 JP2015550777A JP2015550777A JP6301363B2 JP 6301363 B2 JP6301363 B2 JP 6301363B2 JP 2015550777 A JP2015550777 A JP 2015550777A JP 2015550777 A JP2015550777 A JP 2015550777A JP 6301363 B2 JP6301363 B2 JP 6301363B2
Authority
JP
Japan
Prior art keywords
slack
path
logic
chain
complex
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.)
Active
Application number
JP2015550777A
Other languages
English (en)
Other versions
JP2016503923A (ja
Inventor
ツァオ,アイクン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Synopsys Inc
Original Assignee
Synopsys Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Synopsys Inc filed Critical Synopsys Inc
Publication of JP2016503923A publication Critical patent/JP2016503923A/ja
Application granted granted Critical
Publication of JP6301363B2 publication Critical patent/JP6301363B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Description

背景
この開示は、電子設計自動化(EDA)に関する。より特定的には、この開示は、回路設計の最適化に関する。
関連技術
処理技術の進歩および消費者向け電子機器への事実上無限の欲求は、集積回路(IC)設計の規模および複雑さの急速な増大を加速させている。IC設計の規模および複雑さの急速な増大により、回路設計の高レベルの記述を、一連のタイミングの制約を満たし同時に領域、漏洩電力等の付加的な指標を最適化する実現化に変換することは、ますます困難となっている。
概要
ここに記載されたいくつかの実施例は、回路設計の最適化を導くための技術およびシステムを提供する。ここに記載のいくつかの実施例は、回路設計における論理経路の一連の鎖に対する一連の複合緩み(この開示では超経路緩みとも称す)を計算する。論理経路の各鎖は、信号を送出するのみで信号を捕捉はしない順序回路素子または一次入力から始まり、信号を捕捉するのみで信号を送出はしない順序回路素子または一次出力で終わる。次に実施例は、一連の複合緩みに基づいて、回路設計の回路最適化を導く。より特定的には、いくつかの実施例は、一連の複合緩みに基づいて、クロック木合成(CTS)の前に行なわれる回路最適化を導く。
いくつかの実施例では、回路設計の回路最適化を導くことは、論理経路の鎖において複合緩みが0以上の論理経路のタイミング破壊を解決しようとしないことを含む。
いくつかの実施例では、回路設計の回路最適化を導くことは、論理経路の鎖において複合緩みが負の論理経路のタイミング破壊を解決しようとすることを含む。
いくつかの実施例では、回路設計の回路最適化を導くことは、複合緩みが負の論理経路の鎖の複合緩みを増大させようとすることを含む。
いくつかの実施例では、回路設計の回路最適化を導くことは、負の緩みを有する論理経路のいくつの鎖が論理経路を含むかに基づいて論理経路に対する優先度を割り当てることを含み、回路最適化は、優先度の順位の減少において論理経路のタイミング緩みを増大させようとする。負の緩みで論理経路の鎖の最大数(すなわち、超経路の最大数)によって共有される論理経路は、「タイミングボトルネック」と称され得る。
いくつかの実施例では、回路設計の回路最適化を導くことは、一連の複合緩みにおけるすべての複合緩みが0以上の場合に回路最適化を終わらせることを含む。
ここに記載されたいくつかの実施例による回路設計を示す。 ここに記載されたいくつかの実施例による超経路分析に基づいていかに案内が与えられ得るかを示す。 ここに記載されたいくつかの実施例により複数のクロックを用いて順序回路素子がクロックされる例を示す。 ここに記載されたいくつかの実施例により複数のクロックを用いて順序回路素子がクロックされる例を示す。 ここに記載されたいくつかの実施例によるループを含む回路設計を示す。 ここに記載されたいくつかの実施例による超経路緩みを計算および使用するための処理を示す。 ここに記載されたいくつかの実施例によるコンピュータシステムを示す。
詳細な説明
以下の記載は、本願のいかなる当業者であっても発明を生産し使用することが可能なように提示されており、特定の応用およびその要件の文脈において与えられる。開示された実施例に対する種々の変更は、本願の当業者には容易に明らかであり、ここに定義される一般的な原理は、本発明の精神および範囲から離れることなく他の実施例および応用に適用され得る。このように、本発明は、示された実施例に限定されることなく、ここに開示された原理および特徴と整合する最も広い範囲に合致する。この開示では、「および/または」という用語が存在物のリストとともに用いられた場合、それは存在物のリストのすべての可能な組合せを言及する。たとえば、「X、Yおよび/またはZ」という語句は、(1)Xのみ、(2)Yのみ、(3)Zのみ、(4)XおよびY、(5)XおよびZ、(6)YおよびZ、(7)X、YおよびZの場合を包含する。
電子設計自動化(EDA)フローの概観
回路設計を生成するのにEDAフローが用いられ得る。回路設計がいったん完了すると、それは集積回路チップを生産するために、製造、包装および組立を受け得る。EDAフローは、複数の工程を含み得、各工程は、1以上のEDAソフトウェアツールを用いることを含み得る。いくつかのEDA工程およびソフトウェアツールが以下に記載される。EDA工程およびソフトウェアツールのこれらの例は、例示の目的のみのためであって、開示された形式に実施例を限定する意図はない。
いくつかのEDAソフトウェアツールにより、回路設計者は、回路設計の機能性を記述することが可能となる。また、これらのツールにより、回路設計者は、機能性を改善する、費用をチェックする等の仮定の計画を実行することも可能となる。論理設計および機能検証の間、システムのモジュールに対するHDL(ハードウェア記述言語)たとえばシステムヴェリログ(Verilog)のコードが記述され得る。また、機能の正確性のために設計がチェックされ得、たとえば、それが正しい出力を生産することを保証するために設計がチェックされ得る。
試験のための合成および設計の間、HDLコードは、1以上のEDAソフトウェアツールを用いてネットリストに変換され得る。さらに、ネットリストは、目標技術のために最適化され得、試験は完成されたチップをチェックするために設計および実行され得る。ネットリストの検証の間、ネットリストは、タイミングの制約に適合し、かつHDLコードと対応するようにチェックされ得る。
設計計画の間、タイミングおよび最高レベルの経路指定のために、チップに対する全体的なフロアプランが構築され分析され得る。物理的な実行の間、回路素子は、設計通りに位置づけられ得る(配置)とともに、電気的に結合され得る(経路指定)。
分析および抽出の間、回路の機能性はトランジスタレベルで検証され得、寄生性が抽出される。物理的な検証の間、製造、電気的な問題、リソグラフィの問題および回路に対する正確性を保証するために、設計がチェックされ得る。
解像度を高める間、設計の製造可能性を改善するために、幾何学的な操作が配置上で行なわれ得る。マスクデータの準備の間、製造の間に用いられるマスクを製造するために、設計が「完全に理解され」得る。
超経路緩みに基づく最適化案内の付与
図1は、ここに記載されたいくつかの実施例による回路設計を示す。回路設計100は、順序回路素子104、108及び112を含む。入力ピン「In」は、順序回路素子104の入力ピン「D」に結合された組合せ論理102に結合される。順序回路素子104の出力ピン「Q」は、順序回路素子108の入力ピン「D」に結合された組合せ論理106に結合される。順序回路素子108の出力ピン「Q」は、順序回路素子112の入力ピン「D」に結合された組合せ論理110に結合される。順序回路素子112の出力ピン「Q」は、出力ピン「Out」に結合された組合せ論理114に結合される。順序回路素子104、108及び112のクロック入力は、クロックピン「Clk」に結合される。
エッジトリガのDフリップフロップは、順序回路素子の例として、この開示で用いられている。しかしながら、「順序回路素子」との用語は一般に、あらゆる型のエッジトリガまたはレベルトリガの順序回路素子を指し、この開示に表わされた形式に限定されない。本願の通常の知識を有する者には明らかなように、この開示に記載された実施例は一般に、あらゆる型のエッジトリガまたはレベルトリガの順序回路素子に応用可能である。
所与のクロック端(立ち上がり、立ち下がり、または両方)において、各順序回路素子の入力は、入力に与えられた論理値を捕捉し、各順序回路素子の出力は、論理値を送出し、それは次の順序回路素子の入力に到達する前に、1以上のゲートおよび/またはネットを通じて伝搬する。
この開示において、「超弧(super arc)」との用語は、一次入力または順序回路素子の出力から始まり、一次出力または次の順序回路素子の入力で終わる経路のことを指す。たとえば、回路設計100は、超弧116、118、120および122を含む。「超弧遅延」との用語は、超弧の遅延を指す。タイミング分析は通常、遅延がクロック周期より小さくなることを確実にするために、超弧の遅延、たとえば、順序回路素子の出力から次の順序回路素子の入力までの遅延を計算する。たとえば、タイミング分析システムは、超弧120における各ゲートおよびネットの遅延を合計することにより、超弧120の遅延(すなわち、順序回路素子108の出力から順序回路素子112の入力までの遅延)を決定し得る。超弧遅延はまた、順序回路素子112の設定時間を含み得る。
もし、すべての順序回路素子が完全に同期した(すなわち、クロック端がすべての順序回路素子において厳格に同時に生じた)クロック信号を受け、設定の制約が0であると仮定した場合、我々は、タイミング緩みを決定するために、クロック周期から超弧遅延を減算することができる。しかし、もしクロックが同期していなければ、我々は、タイミング緩みを計算するためにクロックスキューを考慮する必要がある。具体的には、ある順序回路素子(たとえば、順序回路素子108)と次の順序回路素子(たとえば、順序回路素子112)との間の経路緩みSは、次のように計算できる。
=T+L−D−L (1)
ここで、Tはクロック周期、Lは送出クロック潜時(launch clock latency)(すなわち、送出する順序回路素子での「理想の」クロック端と実際のクロック端との間の時間差)、Dは超弧遅延、そして、Lは捕捉クロック潜時(すなわち、捕捉する順序回路素子におけるクロックルート(root)での「理想の」クロック端と実際のクロック端との間の時間差)のことである。
もし、経路緩みSが正であれば、それは、送出する順序回路素子(たとえば、上記の例では順序回路素子108)で送出された信号が、捕捉する順序回路素子(たとえば、上記の例では順序回路素子112)で要求される時間の前に到達することを意味する。しかしながら、もし、経路緩みSが負(すなわち、タイミング破壊がある)であれば、それは、送出する順序回路素子で送出された信号が、捕捉する順序回路素子で要求される時間の後に到達することを意味し、それは回路設計100に誤動作をもたらし得る(いくつかの実施例では、小さな正の経路緩みも破壊になり得ることを考慮している。これらの実施例では、破壊タイミング緩み値と非破壊タイミング緩み値との間の境界を表わすために、しきい値の項が式(1)に付加され得る。)
経路緩みが負である場合、回路設計は、経路緩みを0以上とするために修正される必要がある。たとえば、従来の回路最適化システムは、種々の回路変形、たとえば、バッファの付加/除去、ゲートの大きさの増加/減少、回路の部分をより小さな遅延の等価な回路に置換等を行なうことによって式(1)のDの値を減少させることにより、経路緩みを改善しようとする。しかしながら、タイミング緩み値を改善する他の解決法として、Lおよび/またはLの値を調整する、すなわち、送出する順序回路素子と捕捉する順序回路素子との間の相対的なクロックスキューを調整することが注目される。この開示では、1以上のタイミング経路のタイミングを改善するためにクロックスキューが回路設計に導入される場合、当該クロックスキューは「有用なクロックスキュー」と称される。
「論理経路」という用語は、一次入力またはある順序回路素子の出力で始まり、一次出力または他の順序回路素子の入力で終わる経路のことを指す。たとえば、順序回路素子104の出力「Q」で始まり、順序回路素子108の入力「D」で終わる経路は、論理経路である。「超経路」という用語は、信号を送出するのみで信号を捕捉はしない順序回路素子(そのような順序回路素子はまれである)または一次入力から始まり、信号を捕捉するのみで信号を送出はしない順序回路素子(やはり、そのような順序回路素子はまれである)または一次出力で終わる論理経路の鎖のことを指す。言い換えると、超経路は、信号を送出するのみで信号を捕捉はしない順序回路素子(そのような順序回路素子はまれである)または一次入力で始まり、信号を捕捉するのみで信号を送出はしない順序回路素子(やはり、そのような順序回路素子はまれである)または一次出力で終わる超弧の鎖である。たとえば、超経路124は、一次入力「In」で始まり、一次出力「Out」で終わり、超弧116,118,120および122の鎖を含む。
「超経路緩み」という用語は、超経路に沿って(たとえば、式(1)を用いて計算された)個々の経路緩みの積算を指す。送出クロック潜時および捕捉クロック潜時は、超経路上のすべての順序回路素子について互いに打ち消すことが注目される。
それゆえ、n個の超弧の鎖である超経路に対する超経路緩みSSPは、次のように表わすことができる。
Figure 0006301363
もし、超経路緩みが非負(すなわち、0以上)であれば、超経路における経路のタイミング破壊は、破壊経路に有用なクロックスキューを導入する、すなわち、破壊経路における送出および捕捉の順序回路素子の間の相対的なクロックスキューを調整することによって、解決することができる。
Figure 0006301363
Figure 0006301363
負の緩みを有する超経路に対し、CTS前の最適化では、一般に、超弧遅延を減らすためにどの構成経路を最適化するかを決定する自由を有する。しかしながら、いくつかの実施例では、タイミング経路は(それらの緩みに関係なく)、いくつの負の緩みの超経路が所与のタイミング経路を共有するかに基づいて最適化され得る。具体的には、負の緩みを有するより多くの超経路によって共有されるタイミング経路が、最初に最適化されるべきである。もし、高い優先度のタイミング経路の緩みが既に正である場合、いくつかの実施例では、CTS前の回路最適化で、タイミング経路の正の緩みをより増やすように命令する。CTS前の回路最適化では通常、タイミング経路の正の緩みを増やそうとしないため、これは非自明であることに注目すべきである。
図2は、ここに記載されたいくつかの実施例による超経路分析に基づいていかに案内が与えられ得るかを示す。回路設計200は、順序回路素子202および204を含む。超弧208は、順序回路素子202の「Q」出力で始まり、順序回路素子204の「D」入力で終わる。回路経路210は、一次入力「In1」で始まり、順序回路素子202の「D」入力で終わる。回路経路212は、一次入力「In2」で始まり、順序回路素子202の「D」入力で終わる。回路経路210および212は、組合せおよび/または順序の回路素子を含み得るとともに、1以上の回路素子を共有し得る。同様に、回路経路214は、順序回路素子204の「Q」出力で始まり、一次出力「Out1」で終わる。また、回路経路216は、順序回路素子204の「Q」出力で始まり、一次出力「Out2」で終わる。回路経路214および216は、組合せおよび/または順序の回路素子を含み得るとともに、1以上の回路素子を共有し得る。
一次入力「In1」で始まり一次出力「Out1」で終わる超経路が負の緩みを有し、一次入力「In2」で始まり一次出力「Out2」で終わる超経路もまた負の緩みを有するものと仮定する。このとき、負の緩みを有する両方の超経路が超弧208を通って通過するため、いくつかの実施例では、CTS前の回路最適化において、他の超弧でタイミング破壊を解決しようとする前に超弧208のタイミングを改善しようとする(すなわち、現在のタイミング緩み値が負か正かに関わらずタイミング緩みを増やそうとする)ために、超弧208により高い優先度を割り当て得る。超弧208内において、CTS前の回路最適化では、タイミングを改善するためにゲートを並べる順番を自由に決めることができることに注目すべきである。また、従来の回路最適化の技術はいずれも、超弧を最適化する際の順番を決めるために超経路の緩みを用いないことに注意すべきである。
上記の議論においてなされた1つの仮定では、超経路の緩みが0以上である限り、超経路の個々の経路もまた0以上の緩みを各々有するようにさせるという有用なスキューのスケジューリング解決法がある。しかしながら、実際には、この仮定を無効にするいくつかの制約が存在し、それらは現在議論されている。
有用なスキューによる順序回路素子のクロック潜時の遅延は、当該クロックの挿入遅延を超えないべきであり、そうでなければ、クロック木に多すぎるバッファを挿入する結果になり得るとともに、チップ上の変動効果(挿入遅延が長いほど厳しい)は、有用なスキューを導入することによって得られた利益を元に戻し得る。
順序回路素子が複数のクロックを用いてクロックされる場合、異なるクロックにより各経路(送出および捕捉フロップの各対)に対して複数の緩みが生じ、有用なスキューのスケジューリングは各クロックに対して独立ではない。図3Aから3Bは、ここに記載されたいくつかの実施例により複数のクロックを用いて順序回路素子がクロックされる例を示す。回路300は、図3Aに示される経路(曲線)により相互接続される順序回路素子302、304、306、308、310および312を含む。各経路に隣接する括弧内の数は、当該経路上の緩みである。順序回路素子306および308の間の経路は、当該経路に隣接する2つの数を有する。第1の数「(4)」はClk1の緩みであり、第2の数「(3)」はClk2の緩みである。
図3Aにおいて、Clk1およびClk2の間のすべての経路が誤った経路であると仮定する。誤った経路とは、タイミング破壊が無視される経路のことである。たとえば、順序回路素子302(クロック領域Clk1)で始まり、順序回路素子312(クロック領域Clk2)で終わる経路のタイミングは無視できる。
いま、もし順序回路素子304から順序回路素子312への経路をそのまま見た場合、有用なスキューを用いることによってまるで非負の緩みを達成することができるかのように思われる。しかしながら、Clk2の経路の有用なスキューのスケジューリングは、よりタイミングが厳しいClk1のそれによって影響され、その結果、Clk2には依然として負の緩みが残る。具体的には、もし有用なスキューを用いることによりClk2の経路上のタイミング破壊を除去しようとした場合、それはClk1の経路上でのタイミング破壊を引き起こすことになる。図3Bは、順序回路素子304および310の間の経路上の負の緩みを解決するために有用なスキューが用いられた後の緩みを示す。それゆえ、2つの異なる経路が独立に考慮された場合、2つの異なる経路上のタイミング破壊を解決するために有用なスキュー用いることがたとえ可能であったとしても、2つの経路間の依存性により、両方の経路上のタイミング破壊を同時に解決するために有用なスキューを用いることは可能でないように思われる。いくつかの実施例では、2つ(以上)の超経路が異なるクロック領域にあるが、1以上の超弧を共有する状況を検出し得る。超経路がいったん検出されると、これらの実施例では、所与のクロック領域でタイミング破壊を解決するために有用なスキューを用い得る一方で、他のクロック領域で新たなタイミング破壊は生成されないことが保証される。
超経路が環状の場合、他の複雑さが生じる。図4は、ここに記載されたいくつかの実施例によるループを含む回路設計を示す。回路400は、図4に示される経路(曲線)により相互接続される順序回路素子402、404、406および408を含む。順序回路素子404の「Q」出力は、順序回路素子406および408を通って通過する経路を介して、順序回路素子402の「D」入力に結合され、それによりループを形成するという点において注目される。
もし、一次入力「In」と一次入力「Out」との間の超経路の超経路緩みが0以上である場合、超経路のいかなるタイミング破壊も除去するために有用なスキューを用い得るべきである。しかしながら、環状であるため、これは可能ではないだろう。具体的には、もし、超弧410の緩みを増やすために、順序回路素子402および404の間の相対的なクロックスキューを変化させる場合、それに応じて超弧412および/または414の緩みが減少し得るため、タイミング破壊が生成され得る。たとえば、順序回路素子402のクロック端が1時間単位だけ早く移動し、順序回路素子404のクロック端が1時間単位だけ遅く移動した場合、超弧410における緩みは、2時間単位だけ増加する。しかしながら、超弧412および414における緩みは、それぞれ1時間単位だけ減少し、これは、超弧412および/または414でのタイミング破壊を引き起こし得る。
ここに記載されたいくつかの実施例では(たとえば、幅優先横断を行ない、訪れた節点を追跡することにより)ループを検出し、検出されたループによって影響される正の緩みで超経路を決定する。影響された超経路に対し、実施例では、有用なスキューが超経路におけるタイミング破壊を解決するのに用いられ得るかどうかを決定し得る。
超経路の計算は、CTS前の回路最適化の機関とは異なっており、有用なスキューの計算機関と潜在的に共有/結合され得ることが注目される。超経路の計算は、CTS前の回路最適化の機関に対する案内を提供する、すなわち、超経路の計算は、どの経路を最適化し、いつ最適化を停止するかに関する案内を提供することが着目される。
たとえば、いくつかの実施例では、たとえ個々の経路緩みが依然として負であるとしても、すべての超経路が正の緩みをいったん有すれば、CTS前の回路最適化の機関は、最適化を停止するように指令され得る。負の経路緩みのタイミング破壊は、CTSの間に有用なスキューを用いてそれから解決され得る。これは、超経路が非負の緩みを有する限り、多くの経路が負の緩みを持つことが許されるため、伝統的な解決法と比較して、CTS前の回路最適化の機関によりなされる必要のある最適化の量を大きく減らし得る。これは、CTS前の回路最適化の機関により行なわれる必要のある最適化の量を著しく減らすためにいくつかの実施例によって用いられる重要な洞察である。
図5は、ここに記載されたいくつかの実施例による超経路緩みを計算および使用するための処理を示す。処理は、論理経路の一連の鎖に対する一連の複合緩み(すなわち、超経路緩み)を計算することによって始まり、論理経路の各鎖は、信号を送出するのみで信号を捕捉はしない順序回路素子または一次入力から始まり、信号を捕捉するのみで信号を送出はしない順序回路素子または一次出力で終わる(動作502)。次に、処理は、一連の複合緩みに基づいて回路の最適化を導き得る(動作504)。一連の複合緩みは、1以上の複合緩みを含み得るとともに、論理経路の一連の鎖は、論理経路の1以上の鎖を含み得ることが注目される。
具体的には、もし複合緩みが0以上であれば、処理は、CTS前の回路最適化の機関が、超経路にある論理経路上のタイミング誤りを解決しようとしないように指令し得る。一方、もし複合緩みが負であれば、処理は、CTS前の回路最適化の機関が、超経路にある論理経路のタイミング緩みを増やそうとするように指令し得る。
いくつかの実施例では、処理は、論理経路を通って通過する負の緩みを有する超経路の数に基づいて論理経路を優先付けし得る。具体的には、論理経路が負の緩みを有する超経路のより大きな数によって共有される場合、論理経路はより高い優先度を有する。次に、処理は、優先順位を減少させる際に論理経路のタイミング緩みを増加させるように、CTS前の回路最適化の機関を導き得る。ある変形例では、論理経路の優先度は、論理経路を含む超経路の負の緩みの大きさの合計に基づき得る。さらに他の変形例では、もし2つの論理経路が同じ優先度を有する場合、均衡を破るために論理経路の緩みが用いられ得る。具体的には、より低いタイミング緩みの論理経路が、より高いタイミング緩みの論理経路よりも高い優先度を与えられ得る。
いくつかの実施例において、処理は、一連の複合緩みにおけるすべての複合緩みが0以上(すなわち、たとえ1以上の論理経路の緩みが負であるとしても)の場合、CTS前の最適化機関が最適化を終了させるように指令し得る。
コンピュータシステム
図6は、ここに記載されたいくつかの実施例によるコンピュータシステムを示す。コンピュータシステムは、一般に、計算を行なうことのできるあらゆるシステムであり得る。具体的には、コンピュータシステムは、マイクロプロセッサ、特定用途向け集積回路、分散計算システム、クラウド計算システム、または現在知られまたは後に開発されるいかなる他の計算システムであり得る。コンピュータシステム602は、プロセッサ604、メモリ606、および記憶608を含む。コンピュータシステム602は、ディスプレイ614、キーボード610、およびポインティング装置612と結合され得る。記憶608は、一般に、データを記憶できるあらゆる装置であり得る。具体的には、記憶装置は、磁気、光、または磁気光学の記憶装置であり得る、または、フラッシュメモリおよび/またはバッテリ支援メモリに基づき得る。記憶608は、アプリケーション616、オペレーティングシステム618およびデータ620を記憶し得る。
アプリケーション616は、コンピュータ602によって実行された場合、この開示において黙示的にまたは明示的に記載された1以上の処理をコンピュータ602に実行させる命令を含み得る。データ620は、アプリケーション616によって入力されまたは出力されるいかなるデータも含み得る。
上記の記載は、本願のいかなる当業者も実施例を構成し使用できるように提示されている。開示された実施例に対する種々の変更は、本願の当業者にとって容易に明らかとなり、ここに規定された一般的な原理は、この開示の精神および範囲から離れることなく、他の実施例および応用に適用可能である。このように、本願発明は、示された実施例に限定されないが、ここに開示された原理および特徴と整合する最も広い範囲に合致し得る。
この開示に記載されたデータ構造および符号は、持続的なコンピュータ読取可能な記憶媒体および/またはハードウェアモジュールおよび/またはハードウェア機器に部分的にまたは全体的に記憶され得る。持続的なコンピュータ読取可能な記憶媒体は、電磁波または信号の伝搬を唯一の例外とするすべてのコンピュータ読取可能な記憶媒体を含む。具体的には、持続的なコンピュータ読取可能な記憶媒体は、現在知られまたは後に開発される、符号および/またはデータを記憶することが可能なディスク駆動装置、磁気テープ、CD(コンパクトディスク)、DVD(デジタル多用途ディスクまたはデジタルビデオディスク)または他の媒体のような揮発性メモリ、不揮発性メモリ、磁気および光学の記憶装置を含むが、これらには限定されない。この開示に記載されたハードウェアモジュールまたは機器は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、専用または共有のプロセッサ、および/または現在知られまたは後に開発される他のハードウェアモジュールまたは機器を含むが、これらには限定されない。
この開示に記載された方法および処理は、コンピュータシステムが符号および/またはデータを読み出して実行する場合に当該コンピュータシステムが関連する方法および処理を実行するように、持続的なコンピュータ読取可能な記憶媒体または装置に記憶された符号および/またはデータとして部分的にまたは全体的に具現化され得る。方法および処理はまた、ハードウェアモジュールまたは機器において部分的にまたは全体的に具現化され得る。方法および処理は、符号、データ、およびハードウェアモジュールまたは機器の結合を用いて具現化され得ることが注目される。
本願発明の実施例のこれまでの記載は、説明および記述の目的のためにのみ提示されている。それらは、包括的であったり開示された形式に本願発明を限定するようには意図されていない。したがって、本願の当業者にとって多くの修正および変形は明らかである。加えて、上記の開示は本願発明を限定するようには意図されていない。本願発明の範囲は、添付の特許請求の範囲によって規定される。

Claims (15)

  1. コンピュータによって実行される、回路最適化を導くための方法であって、前記方法は、
    回路設計における論理経路の一連の鎖に対する一連の複合緩みを計算することを含み、論理経路の各鎖は、信号を送出するのみで信号を捕捉はしない順序回路素子または一次入力から始まり、信号を捕捉するのみで信号を送出はしない順序回路素子または一次出力で終わり、前記方法は、さらに、
    前記一連の複合緩みに基づいて前記回路設計の回路最適化を導くことを含み、前記導くことは、一連の複合緩みにおけるすべての複合緩みが0以上の場合に回路最適化を終わらせることを含む、方法。
  2. 前記導くことは、論理経路の鎖において複合緩みが0以上の論理経路のタイミング破壊を解決しようとしないことを含む、請求項1に記載の方法。
  3. 前記導くことは、論理経路の鎖において複合緩みが負の論理経路のタイミング破壊を解決しようとすることを含む、請求項1に記載の方法。
  4. 前記導くことは、複合緩みが負の論理経路の鎖の複合緩みを増大させようとすることを含む、請求項1に記載の方法。
  5. 前記導くことは、負の緩みを有する論理経路のいくつの鎖が論理経路を含むかに基づいて論理経路に対する優先度を割り当てることを含み、前記回路最適化は、優先度の順位の減少において論理経路のタイミング緩みを増大させようとする、請求項1に記載の方法。
  6. コンピュータによって実行されるとき、回路最適化を導くための方法を前記コンピュータに行なわせる命令を記憶する持続的なコンピュータ読取可能な記憶媒体であって、前記方法は、
    回路設計における論理経路の一連の鎖に対する一連の複合緩みを計算することを含み、論理経路の各鎖は、信号を送出するのみで信号を捕捉はしない順序回路素子または一次入力から始まり、信号を捕捉するのみで信号を送出はしない順序回路素子または一次出力で終わり、前記方法は、さらに、
    前記一連の複合緩みに基づいて前記回路設計の回路最適化を導くことを含み、前記導くことは、一連の複合緩みにおけるすべての複合緩みが0以上の場合に回路最適化を終わらせることを含む、持続的なコンピュータ読取可能な記憶媒体。
  7. 前記導くことは、論理経路の鎖において複合緩みが0以上の論理経路のタイミング破壊を解決しようとしないことを含む、請求項に記載の持続的なコンピュータ読取可能な記憶媒体。
  8. 前記導くことは、論理経路の鎖において複合緩みが負の論理経路のタイミング破壊を解決しようとすることを含む、請求項に記載の持続的なコンピュータ読取可能な記憶媒体。
  9. 前記導くことは、複合緩みが負の論理経路の鎖の複合緩みを増大させようとすることを含む、請求項に記載の持続的なコンピュータ読取可能な記憶媒体。
  10. 前記導くことは、負の緩みを有する論理経路のいくつの鎖が論理経路を含むかに基づいて論理経路に対する優先度を割り当てることを含み、前記回路最適化は、優先度の順位の減少において論理経路のタイミング緩みを増大させようとする、請求項に記載の持続的なコンピュータ読取可能な記憶媒体。
  11. 機器であって、
    プロセッサと、
    前記プロセッサによって実行されるとき、回路最適化を導くための方法を前記機器に行なわせる命令を記憶する持続的なコンピュータ読取可能な記憶媒体とを含み、前記方法は、
    回路設計における論理経路の一連の鎖に対する一連の複合緩みを計算することを含み、論理経路の各鎖は、信号を送出するのみで信号を捕捉はしない順序回路素子または一次入力から始まり、信号を捕捉するのみで信号を送出はしない順序回路素子または一次出力で終わり、前記方法は、さらに、
    前記一連の複合緩みに基づいて前記回路設計の回路最適化を導くことを含み、前記導くことは、一連の複合緩みにおけるすべての複合緩みが0以上の場合に回路最適化を終わらせることを含む、機器。
  12. 前記導くことは、論理経路の鎖において複合緩みが0以上の論理経路のタイミング破壊を解決しようとしないことを含む、請求項11に記載の機器。
  13. 前記導くことは、論理経路の鎖において複合緩みが負の論理経路のタイミング破壊を解決しようとすることを含む、請求項11に記載の機器。
  14. 前記導くことは、複合緩みが負の論理経路の鎖の複合緩みを増大させようとすることを含む、請求項11に記載の機器。
  15. 前記導くことは、負の緩みを有する論理経路のいくつの鎖が論理経路を含むかに基づいて論理経路に対する優先度を割り当てることを含み、前記回路最適化は、優先度の順位の減少において論理経路のタイミング緩みを増大させようとする、請求項11に記載の機器。
JP2015550777A 2012-12-26 2013-12-26 有用なスキューで最適化を導くためのパイプラインに沿ったタイミングボトルネックの分析 Active JP6301363B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261746067P 2012-12-26 2012-12-26
US61/746,067 2012-12-26
PCT/US2013/077877 WO2014105988A1 (en) 2012-12-26 2013-12-26 Timing bottleneck analysis across pipelines to guide optimization with useful skew

Publications (2)

Publication Number Publication Date
JP2016503923A JP2016503923A (ja) 2016-02-08
JP6301363B2 true JP6301363B2 (ja) 2018-03-28

Family

ID=50976279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015550777A Active JP6301363B2 (ja) 2012-12-26 2013-12-26 有用なスキューで最適化を導くためのパイプラインに沿ったタイミングボトルネックの分析

Country Status (5)

Country Link
US (1) US9292641B2 (ja)
JP (1) JP6301363B2 (ja)
CN (1) CN104969226B (ja)
DE (1) DE112013005833T5 (ja)
WO (1) WO2014105988A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5883676B2 (ja) * 2012-02-22 2016-03-15 ルネサスエレクトロニクス株式会社 Lsi設計方法
US9483601B2 (en) * 2015-03-24 2016-11-01 International Business Machines Corporation Circuit routing based on total negative slack
US10296686B1 (en) * 2015-12-14 2019-05-21 Apple Inc. Switching-activity-based selection of low-power sequential circuitry
US10002224B2 (en) * 2016-02-29 2018-06-19 Synopsys, Inc. Interactive routing of connections in circuit using auto welding and auto cloning
US10568203B2 (en) * 2017-06-07 2020-02-18 International Business Machines Corporation Modifying a circuit design

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09146991A (ja) * 1995-11-16 1997-06-06 Fujitsu Ltd エンジニアリング・チェンジ論理合成システム
CA2450135A1 (en) * 2001-06-08 2002-12-19 Magma Design Automation, Inc. Method for generating design constraints for modulates in a hierarchical integrated circuit design system
US6550045B1 (en) * 2001-11-20 2003-04-15 Lsi Logic Corporation Changing clock delays in an integrated circuit for skew optimization
US7117466B2 (en) * 2003-09-18 2006-10-03 International Business Machines Corporation System and method for correlated process pessimism removal for static timing analysis
US7278126B2 (en) * 2004-05-28 2007-10-02 Qualcomm Incorporated Method and apparatus for fixing hold time violations in a circuit design
US7810061B2 (en) * 2004-09-17 2010-10-05 Cadence Design Systems, Inc. Method and system for creating a useful skew for an electronic circuit
US7225421B2 (en) * 2005-01-28 2007-05-29 International Business Machines Corporation Clock tree distribution generation by determining allowed placement regions for clocked elements
US7559040B1 (en) * 2005-06-02 2009-07-07 Cadence Design Systems, Inc. Optimization of combinational logic synthesis through clock latency scheduling
US7506293B2 (en) * 2006-03-22 2009-03-17 Synopsys, Inc. Characterizing sequential cells using interdependent setup and hold times, and utilizing the sequential cell characterizations in static timing analysis
US7404163B2 (en) * 2006-03-24 2008-07-22 International Business Machines Corporation Static timing slacks analysis and modification
US7694242B1 (en) * 2006-12-11 2010-04-06 Cadence Design Systems, Inc. System and method of replacing flip-flops with pulsed latches in circuit designs
US7546567B2 (en) * 2007-01-10 2009-06-09 Synopsys, Inc. Method and apparatus for generating a variation-tolerant clock-tree for an integrated circuit chip
US7784003B2 (en) * 2007-02-26 2010-08-24 International Business Machines Corporation Estimation of process variation impact of slack in multi-corner path-based static timing analysis
US7689957B2 (en) * 2007-09-10 2010-03-30 Synopsys, Inc. Identifying and improving robust designs using statistical timing analysis
JP2009282638A (ja) * 2008-05-20 2009-12-03 Nec Electronics Corp レイアウト設計システム、レイアウト設計方法、及びプログラム
US8255860B1 (en) 2009-04-03 2012-08-28 Altera Corporation Exploiting independent portions of logic designs for timing optimization
US8336012B2 (en) * 2009-04-09 2012-12-18 Lsi Corporation Automated timing optimization
US8185371B2 (en) * 2009-04-15 2012-05-22 International Business Machines Corporation Modeling full and half cycle clock variability
US8539413B1 (en) * 2010-04-27 2013-09-17 Applied Micro Circuits Corporation Frequency optimization using useful skew timing
JP2011238163A (ja) 2010-05-13 2011-11-24 Renesas Electronics Corp 半導体集積回路のレイアウト方法、レイアウトシステム及びレイアウトプログラム
US8522187B2 (en) 2010-12-06 2013-08-27 International Business Machines Corporation Method and data processing system to optimize performance of an electric circuit design, data processing program and computer program product
US8584065B2 (en) * 2011-05-05 2013-11-12 Advanced Micro Devices, Inc. Method and apparatus for designing an integrated circuit
US8719747B2 (en) * 2012-01-31 2014-05-06 Mentor Graphics Corporation Single event upset mitigation for electronic design synthesis
US20140149956A1 (en) * 2012-11-28 2014-05-29 International Business Machines Corporation Corner specific normalization of static timing analysis

Also Published As

Publication number Publication date
US20140181779A1 (en) 2014-06-26
WO2014105988A1 (en) 2014-07-03
CN104969226A (zh) 2015-10-07
US9292641B2 (en) 2016-03-22
JP2016503923A (ja) 2016-02-08
DE112013005833T5 (de) 2015-08-27
CN104969226B (zh) 2018-08-28

Similar Documents

Publication Publication Date Title
US8453085B2 (en) Method for estimating the latency time of a clock tree in an ASIC design
US9268889B2 (en) Verification of asynchronous clock domain crossings
JP6301363B2 (ja) 有用なスキューで最適化を導くためのパイプラインに沿ったタイミングボトルネックの分析
US7552409B2 (en) Engineering change order process optimization
US7987440B2 (en) Method and system for efficient validation of clock skews during hierarchical static timing analysis
US8578310B2 (en) Method of measuring the impact of clock skew on slack during a statistical static timing analysis
US8689158B2 (en) System and method for performing static timing analysis in the presence of correlations between asserted arrival times
US10990121B2 (en) Apparatus and method for achieving glitch-free clock domain crossing signals
US10318684B2 (en) Network flow based framework for clock tree optimization
US9009645B2 (en) Automatic clock tree routing rule generation
CN111936998A (zh) 数据变换流水线的硬件设计的验证
CN104981806B (zh) 自动时钟树综合例外生成
US9489478B2 (en) Simplifying modes of an electronic circuit by reducing constraints
US10372851B2 (en) Independently projecting a canonical clock
US10885248B1 (en) Method for modeling glitches during circuit simulation
Hassan et al. Optimization of circuitry for power and area efficiency by using combination between latch and register
JP2013061811A (ja) 消費電力解析方法および消費電力解析装置
US9542514B2 (en) Constraint memory node identification in sequential logic
Zhong et al. Clock gating assertion check: an approach towards achieving faster verification closure on clock gating functionality
Kudlugi et al. Static schedluing of multiple asynchronous domains for functional verification
Miyase et al. A study of capture-safe test generation flow for at-speed testing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160728

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180228

R150 Certificate of patent or registration of utility model

Ref document number: 6301363

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250