(57)【要約】  回路設計方式は、温度に基づいてワイヤをルーティングする。特に、ワイヤのためのそのルートを使用するかどうかを決定するとき、予想されるルートに沿った温度特性を考慮に入れる。たとえば、ルートは、どのルートが「最も平滑な」温度勾配に関連するかに基づいて、予想されるルートのセットの中から選択され得る。ここで、ルートに沿って最小の温度差を有する1つまたは複数のルートを優先することができる。
2017512331.tif 000002
【特許請求の範囲】
【請求項１】
メモリデバイスと、
前記メモリデバイスに結合され、
少なくとも1つの基板を介してワイヤをルーティングするための複数の予想されるルートを識別することと、
前記予想されるルートの各々に関して、前記予想されるルートに関連する温度特性を決定することと、
前記予想されるルートの前記温度特性に基づいて、前記予想されるルートのうちの1つを選択することと、
前記選択されたルートの表示を前記メモリデバイス内に記憶することと
を行うように構成された処理回路と
を備える、ルーティング装置。
【請求項２】
前記ワイヤの前記ルーティングは第1のエンドポイントと第2のエンドポイントとの間であり、
前記処理回路は、どの予想されるルートが前記第1のエンドポイントおよび前記第2のエンドポイントとの最高温度相関を有するかを決定することによって、前記予想されるルートのうちの1つを選択するようにさらに構成される、
請求項1に記載の装置。
【請求項３】
前記ワイヤの前記ルーティングは第1のエンドポイントと第2のエンドポイントとの間であり、
前記処理回路は、対応する予想されるルートに沿ったポイントのセットの各ポイントに関して、前記ポイントと前記第1のエンドポイントおよび前記第2のエンドポイントとの間の温度相関を決定することによって、前記温度特性を決定するようにさらに構成される
請求項1に記載の装置。
【請求項４】
前記処理回路は、ポイントのどのセットが前記第1のエンドポイントおよび前記第2のエンドポイントとの最高集合温度相関を有するかを決定することによって、前記予想されるルートのうちの1つを選択するようにさらに構成される、請求項3に記載の装置。
【請求項５】
前記処理回路は、しきい温度を超える温度に関連する前記少なくとも1つの基板のエリアを通過する、前記予想されるルートのうちのいずれも拒否することによって、前記予想されるルートのうちの1つを選択するようにさらに構成される、請求項1に記載の装置。
【請求項６】
前記処理回路は、しきい温度を下回る温度に関連する前記少なくとも1つの基板のエリアを通過する、前記予想されるルートのうちのいずれも拒否することによって、前記予想されるルートのうちの1つを選択するようにさらに構成される、請求項1に記載の装置。
【請求項７】
前記処理回路は、
前記少なくとも1つの基板上のポイントのグリッドを識別することと、
ポイントの前記グリッド内のルートを識別することによって、前記複数の予想されるルートを識別することと
を行うようにさらに構成され、
前記ワイヤの前記ルーティングはポイントの前記グリッド内の第1のエンドポイントと第2のエンドポイントとの間である
請求項1に記載の装置。
【請求項８】
前記処理回路は、
ポイントの前記グリッドの前記ポイントの各々に関して、前記ポイントの温度特性を決定することと、
前記ポイントの前記温度特性に基づいて、ポイントの前記グリッドに対応する空間相関行列を生成することと、
前記空間相関行列に基づいて、相関余因子行列を生成することであって、前記相関余因子行列が、ポイントの前記グリッドの前記ポイントの各々に関して、前記ポイントの前記温度特性を前記第1のエンドポイントおよび前記第2のエンドポイントの前記温度特性と相関させる、生成することと、
各予想されるルートに関して、前記相関余因子行列に基づいて、前記予想されるルートと前記第1のエンドポイントおよび前記第2のエンドポイントとの間の温度相関を決定することと
によって、前記予想されるルートに関連する前記温度特性を決定するようにさらに構成される、請求項7に記載の装置。
【請求項９】
前記処理回路は、どの予想されるルートが前記第1のエンドポイントおよび前記第2のエンドポイントとの最高温度相関を有するかを決定することによって、前記予想されるルートのうちの1つを選択するようにさらに構成される、請求項8に記載の装置。
【請求項１０】
前記処理回路は、
ポイントの前記グリッドの近傍に位置することになる少なくとも1つの電子回路の少なくとも1つの温度特性を決定することと、
前記少なくとも1つの電子回路の前記少なくとも1つの温度特性に基づいて、前記ポイントの前記温度特性を決定することと
を行うようにさらに構成される、請求項8に記載の装置。
【請求項１１】
前記処理回路は、
前記予想されるルートの各々に関して、前記予想されるルートに関連する距離を決定することと、
前記予想されるルートに関連する前記距離に基づいて、前記予想されるルートのうちの1つを選択することと
を行うようにさらに構成される、請求項1に記載の装置。
【請求項１２】
前記ワイヤの前記ルーティングは第1のエンドポイントと第2のエンドポイントとの間であり、
前記処理回路は、どの予想される分岐点が前記第1のエンドポイントおよび前記第2のエンドポイントとの最高温度相関を有するかに基づいて、前記第1のエンドポイントと前記第2のエンドポイントとの間の複数の予想される分岐点のうちの1つの分岐点を選択するようにさらに構成される
請求項1に記載の装置。
【請求項１３】
前記少なくとも1つの基板は複数の積層基板を含み、
前記処理回路は、前記複数の積層基板上の前記複数の予想されるルートを識別するようにさらに構成される
請求項1に記載の装置。
【請求項１４】
前記少なくとも1つの基板は複数のルーティングレイヤを画定し、
前記処理回路は、
前記複数のルーティングレイヤのうちの少なくとも2つを横断する、少なくとも1つの予想されるルートを識別することと、
前記複数のルーティングレイヤのうちの少なくとも2つを横断する各予想されるルートに重み係数を適用することによって、前記予想されるルートのうちの1つを選択することと
を行うようにさらに構成される、請求項1に記載の装置。
【請求項１５】
前記少なくとも1つの基板は複数のルーティングレイヤを画定し、
前記処理回路は、
前記複数のルーティングレイヤのうちの少なくとも2つの間でビアを横断する、少なくとも1つの予想されるルートを識別することと、
前記複数のルーティングレイヤのうちの少なくとも2つの間でビアを横断する各予想されるルートに重み係数を適用することによって、前記予想されるルートのうちの1つを選択することと
を行うようにさらに構成される、請求項1に記載の装置。
【請求項１６】
前記処理回路は、
コースを反転する、少なくとも1つの予想されるルートを識別することと、
コースを反転する各予想されるルートに重み係数を適用することによって、前記予想されるルートのうちの1つを選択することと
を行うようにさらに構成される、請求項1に記載の装置。
【請求項１７】
前記少なくとも1つの基板はプリント回路基板の基板を含む、請求項1に記載の装置。
【請求項１８】
前記少なくとも1つの基板は集積回路ダイ基板を含む、請求項1に記載の装置。
【請求項１９】
少なくとも1つの基板を介してワイヤをルーティングするためのエリアを示す少なくとも1つの信号を受信するステップと、
前記エリア内で前記ワイヤをルーティングするための複数の予想されるルートを識別するステップと、
前記予想されるルートの各々に関して、前記予想されるルートに関連する温度特性を決定するステップと、
前記予想されるルートの前記温度特性に基づいて、前記予想されるルートのうちの1つを選択するステップと、
前記選択されたルートの表示を記憶するステップと
を含む、ルーティング方法。
【請求項２０】
前記ワイヤの前記ルーティングは第1のエンドポイントと第2のエンドポイントとの間であり、
前記予想されるルートのうちの1つの前記選択は、どの予想されるルートが前記第1のエンドポイントおよび前記第2のエンドポイントとの最高温度相関を有するかを決定するステップを含む
請求項19に記載の方法。
【請求項２１】
前記ワイヤの前記ルーティングは第1のエンドポイントと第2のエンドポイントとの間であり、
前記温度特性の前記決定は、対応する予想されるルートに沿ったポイントのセットの各ポイントに関して、前記ポイントと前記第1のエンドポイントおよび前記第2のエンドポイントとの温度相関を決定するステップを含む
請求項19に記載の方法。
【請求項２２】
前記予想されるルートのうちの1つの前記選択は、ポイントのどのセットが前記第1のエンドポイントおよび前記第2のエンドポイントとの最高集合温度相関を有するかを決定するステップを含む、請求項21に記載の方法。
【請求項２３】
前記予想されるルートのうちの1つの前記選択は、しきい温度を超える温度に関連する前記少なくとも1つの基板のエリアを通過する、前記予想されるルートのうちのいずれも拒否するステップを含む、請求項19に記載の方法。
【請求項２４】
前記予想されるルートのうちの1つの前記選択は、しきい温度を下回る温度に関連する前記少なくとも1つの基板のエリアを通過する、前記予想されるルートのうちのいずれも拒否するステップを含む、請求項19に記載の方法。
【請求項２５】
少なくとも1つの基板を介してワイヤをルーティングするための複数の予想されるルートを識別するための手段と、
前記予想されるルートの各々に関して、前記予想されるルートに関連する温度特性を決定するための手段と、
前記予想されるルートの前記温度特性に基づいて、前記予想されるルートのうちの1つを選択するための手段と、
前記選択されたルートの表示を記憶するための手段と
を備える、ルーティング装置。
【請求項２６】
前記ワイヤの前記ルーティングは第1のエンドポイントと第2のエンドポイントとの間であり、
前記予想されるルートのうちの1つを選択するための前記手段は、どの予想されるルートが前記第1のエンドポイントおよび前記第2のエンドポイントとの最高温度相関を有するかを決定するように構成される
請求項25に記載の装置。
【請求項２７】
前記ワイヤの前記ルーティングは第1のエンドポイントと第2のエンドポイントとの間であり、
温度特性を決定するための前記手段は、対応する予想されるルートに沿ったポイントのセットの各ポイントに関して、前記ポイントと前記第1のエンドポイントおよび前記第2のエンドポイントとの温度相関を決定するように構成される
請求項25に記載の装置。
【請求項２８】
前記予想されるルートのうちの1つを選択するための前記手段は、ポイントのどのセットが前記第1のエンドポイントおよび前記第2のエンドポイントとの最高集合温度相関を有するかを決定するように構成される、請求項27に記載の装置。
【請求項２９】
前記予想されるルートのうちの1つを選択するための前記手段は、しきい温度を超える温度に関連する前記少なくとも1つの基板のエリアを通過する、前記予想されるルートのうちのいずれも拒否するように構成される、請求項25に記載の装置。
【請求項３０】
複数の予想されるルートの中から最も平滑な温度勾配に関連する、選択されたルートに沿ってその上にワイヤを形成した基板であって、
前記基板上で前記ワイヤをルーティングするための前記複数の予想されるルートを識別することと、
前記予想されるルートの各々に関して、前記予想されるルートに関連する温度勾配を決定することと、
前記予想されるルートのうちのどれが前記予想されるルートの前記最も平滑な温度勾配を有するかに基づいて、前記予想されるルートのうちの1つを選択することと、
前記基板を提供することと、
前記選択されたルートに従って、前記基板上に前記ワイヤを形成することと
を含むプロセスによって作成される、
基板。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その全体が参照により本明細書に組み込まれている、「Temperature-Based Wire Routing」に関する2014年2月7日に出願した米国特許出願第14/175,429号に対する優先権を主張するものである。
【０００２】
以下は、一般に、回路設計に関し、より詳細には、それだけには限らないが、温度に基づいてワイヤをルーティングすることに関する。
【背景技術】
【０００３】
プリント回路基板(PCB)、集積回路(IC)、もしくは他の構造上またはそれらの中で、トレースまたは電気路と呼ばれることもある、ワイヤをルーティングするためのアルゴリズムは、それらのワイヤのためのルーティング要件を最も満たすルートを見出すことを試みる。一般に、ルーティング要件は、ワイヤが可能な限り短いことを規定する。このようにして、ワイヤを介した信号の伝送に関連する、電気消費および信号伝搬遅延は、少なくともある程度最小限に抑えられる。その上、より短いワイヤの使用は、より多くのワイヤが所与のエリア内でルーティングされることを可能にし、それによって、回路密度を改善する。
【０００４】
いくつかのアプリケーションでは、ルーティング要件は、複数のワイヤの長さが等しいかまたはほぼ等しいことを指定する。たとえば、クロックツリーを用いる、または平行ワイヤを用いる(たとえば、バスもしくは差分信号のために)タイミングクリティカルな(timing critical)アプリケーションでは、等しい長さのワイヤを使用することは、ワイヤの信号伝搬特性に整合することを容易にする。したがって、1つまたは複数のデータソースからの1つまたは信号は、ほぼ同時に異なるワイヤを介して複数のデータシンクに到達し、それによって、データシンクにおいて信号間で所望されるタイミング関係を維持することができる。言い換えれば、異なるワイヤを介して送信される信号の相対的タイミングスキューを最小限に保つために、整合するワイヤが用いられる。
【０００５】
タイミングスキューを低減するための他の技法が提案されている。たとえば、いくつかのシステムは、バッファを使用して、ワイヤに沿って遅延を制御し、それによって、タイミングスキューを低減する。他のシステムは、配線構造内に架橋を挿入して、タイミングスキューを低減させる。
【０００６】
しかしながら、実際には、上記の技法は、タイミングスキューをあまり低減することができないか、またはある欠陥を有する場合がある。たとえば、様々な動作条件および環境要因がワイヤを介した信号の伝搬遅延に影響を及ぼす場合がある。したがって、ワイヤの長さが整合する場合ですら、異なるワイヤの信号伝搬特性に整合することは困難な場合がある。また、バッファ挿入など、能動的な技法は、電力消費の著しい増大をもたらし得る。加えて、架橋リンク挿入はワイヤの長さを増大し得るため、これらのシナリオでは、電力消費の増大が同様に見られる場合がある。上記に鑑みて、改善された回路設計技法の必要が存在する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第7,155,686号
【特許文献２】米国特許第8,209,651号
【特許文献３】米国特許第6,775,710号
【特許文献４】米国特許第7,725,861号
【発明の概要】
【課題を解決するための手段】
【０００８】
以下に、本開示のいくつかの態様を基本的に理解できるように、そのような態様を要約する。この概要は、本開示のすべての企図された特徴の包括的な概観ではなく、本開示のすべての態様の主要または重要な要素を識別するものでも、本開示のいずれかまたはすべての態様の範囲を定めるものでもない。その唯一の目的は、後で提示するより詳細な説明の導入として、本開示の1つまたは複数の態様のいくつかの概念を要約の形で提示することである。
【０００９】
本開示の様々な態様は、温度に基づいてワイヤをルーティングすることを可能にする。すなわち、ワイヤのためのルートを使用するかどうかを決定するとき、予想されるルートに沿った温度条件を考慮に入れる。概して、ワイヤの温度とワイヤの抵抗との間に直接的な関係が存在する。したがって、ワイヤに沿った温度差は、ワイヤを通る伝搬遅延に著しい影響を及ぼし得る。本開示のいくつかの態様によれば、それに基づいて、ルートが「最も平滑な」温度勾配と関連付けられる、予想されるルートのセットの中からルートが選択される。たとえば、ルートに沿って最小の温度差を有する1つまたは複数のルートを優先することができる。いくつかのシナリオでは、そのようなルーティング方式の使用は、最低信号スキューに関連するルートの識別をもたらす。いくつかのシナリオでは、そのようなルーティング方式の使用は、(たとえば、並列バスの異なるラインのルートの場合、またはクロックツリーの異なる分岐のルートの場合)それらのルートの信号スキューが整合するように、複数のルートを選択することを必要とする。
【００１０】
本開示のいくつかの態様によれば、ルーティング方式は、トレースのためのルートを選択するために、温度ベースの相関マップを使用する。最初に、その中で第1のエンドポイント(たとえば、シグナルソースポイント、分岐点、またはシグナルシンクポイント)から第2のエンドポイント(たとえば、シグナルシンクポイント)へのトレースがルーティングされ得るエリア(たとえば、矩形エリア)上でルートポイントのグリッドが画定される。ルーティング方式は、次いで、各ポイントの温度特性を決定するためにシミュレーションまたは他の技法を使用する。ルーティング方式は、次いで、各エントリが予想されるルートポイントのうちの1つに対応する空間相関行列(マップ)を生成する。次に、ルーティング方式は、空間相関マップに基づいて、これらのポイントに関する相関余因子(cofactor)行列(マップ)を生成する。相関余因子マップ内の各エントリは、対応するルートポイントの温度特性と2つのエンドポイントの温度特性との間の相関を示す。したがって、最良のルートは、どのルートが集合的にそれらのエンドポイントとの最高相関を有するルートポイントを包含するかを決定することによって識別され得る。
【００１１】
本開示は、一態様では、温度条件に基づいて経時的にルートを選択することに関する。たとえば、各予想されるルートポイントにおける温度はある時間期間にわたって収集され得る。したがって、上で言及した空間相関行列は、いくつかの実装形態では、時間的可変(temporal variant)空間相関行列であり得る。予想されるルートポイント間の温度ベースの相関は、したがって、温度傾向または他の時間的温度条件を考慮に入れることができる。
【００１２】
本開示はまた、いくつかの態様では、ルートを選択するとき、温度限界を回避することに関する。たとえば、いくつかの実装形態では、ルートの選択は、予想されるルーティングエリア内のいずれのいわゆるホットスポットも回避されることを要求する。
【００１３】
本開示のさらなる態様は、メモリデバイスと、メモリデバイスに結合された処理回路とを含むルーティング装置とを提供する。処理回路は、少なくとも1つの基板を介してワイヤをルーティングするための複数の予想されるルートを識別することと、予想されるルートの各々に関して、予想されるルートに関連する温度特性を決定することと、予想されるルートの温度特性に基づいて、予想されるルートのうちの1つを選択することと、選択されたルートの表示をメモリデバイス内に記憶することとを行うように構成される。
【００１４】
本開示のまたさらなる態様は、少なくとも1つの基板を介してワイヤをルーティングするためのエリアを示す少なくとも1つの信号を受信するステップと、そのエリア内でワイヤをルーティングするための複数の予想されるルートを識別するステップと、予想されるルートの各々に関して、予想されるルートに関連する温度特性を決定するステップと、予想されるルートの温度特性に基づいて、予想されるルートのうちの1つを選択するステップと、選択されたルートの表示を記憶するステップとを含む、ワイヤレス通信のための方法を提供する。
【００１５】
本開示の追加の態様は、少なくとも1つの基板を介してワイヤをルーティングするための複数の予想されるルートを識別するための手段と、予想されるルートの各々に関して、予想されるルートに関連する温度特性を決定するための手段と、予想されるルートの温度特性に基づいて、予想されるルートのうちの1つを選択するための手段と、選択されたルートの表示を記憶するための手段とを含むルーティング装置を提供する。
【００１６】
本開示の他の態様は、処理回路によって実行されると、その処理回路に、少なくとも1つの基板を介してワイヤをルーティングするための複数の予想されるルートを識別することと、予想されるルートの各々に関して、予想されるルートに関連する温度特性を決定することと、予想されるルートの温度特性に基づいて、予想されるルートのうちの1つを選択することと、選択されたルートの表示を記憶することとを行わせる命令を記憶した非一時的機械可読記憶媒体を供する。
【００１７】
加えて、本開示の他の態様は、複数の予想されるルートの中から最も平滑な温度勾配に関連して選択されたルートに沿ってその上にワイヤを形成した基板を提供する。基板は、その基板上でワイヤをルーティングするための複数の予想されるルートを識別することと、予想されるルートの各々に関して、予想されるルートに関連する温度勾配を決定することと、予想されるルートのうちのどれが予想されるルートの最も平滑な温度勾配を有するかに基づいて、予想されるルートのうちの1つを選択することと、基板を提供することと、選択されたルートに従って、基板上にワイヤを形成することとを含むプロセスによって作成される。
【００１８】
上記に関する本開示の他の態様の例が続く。ワイヤのルーティングは第1のエンドポイントと第2のエンドポイントとの間であり得る。この場合、予想されるルートのうちの1つの選択は、どの予想されるルートが第1のエンドポイントおよび第2のエンドポイントとの最高温度相関を有するかを決定するステップを含み得る。また、温度特性の決定は、対応する予想されるルートに沿ったポイントのセットの各ポイントに関して、そのポイントと第1のエンドポイントおよび第2のエンドポイントとの間の温度相関を決定するステップを含み得る。同様に、温度勾配の決定は、対応する予想されるルートに沿ったポイントのセットの各ポイントに関して、そのポイントと第1のエンドポイントおよび第2のエンドポイントとの間の温度相関を決定するステップを含み得る。いずれの場合にも、予想されるルートのうちの1つの選択は、ポイントのどのセットが第1のエンドポイントおよび第2のエンドポイントとの最高集合温度相関を有するかを決定するステップを含み得る。予想されるルートのうちの1つの選択は、しきい温度を超える温度および/またはしきい温度を下回る温度に関連する少なくとも1つの基板のエリアを通過する、予想されるルートのうちのいずれも拒否するステップを含み得る。したがって、選択されたルートは、しきい温度を超える温度および/またはしきい温度を下回る温度に関連する少なくとも1つの基板の任意のエリアを横断し得ない。加えて、どの予想される分岐点が第1のエンドポイントおよび第2のエンドポイントとの最高温度相関を有するかに基づいて、第1のエンドポイントと第2のエンドポイントとの間の複数の予想される分岐点のうちの1つの分岐点を選択することができる。また、少なくとも1つの基板は、プリント回路基板の基板、集積回路ダイ基板、または何らかの他のタイプの基板を含み得る。
【００１９】
本開示は、いくつかの態様では、少なくとも1つの基板上のポイントのグリッドを識別するステップに関する。この場合、複数の予想されるルートの識別は、ポイントのグリッド内のルートを識別するステップであって、ワイヤのルーティングがポイントのグリッド内の第1のエンドポイントと第2のエンドポイントとの間である、識別するステップを含み得る。予想されるルートに関連する温度特性の決定および/または温度勾配の決定は、ポイントのグリッドのポイントの各々に関して、ポイントの温度特性を決定するステップと、それらのポイントの温度特性に基づいて、ポイントのグリッドに対応する空間相関行列を生成するステップと、空間相関行列に基づいて、相関余因子行列を生成するステップであって、相関余因子行列が、ポイントのグリッドのポイントの各々に関して、そのポイントの温度特性を第1のエンドポイントおよび第2のエンドポイントの温度特性と相関させる、生成するステップと、各予想されるルートに関して、相関余因子行列に基づいて、予想されるルートと第1のエンドポイントおよび第2のエンドポイントとの間の温度相関を決定するステップとを含み得る。また、予想されるルートのうちの1つの選択は、どの予想されるルートが第1のエンドポイントおよび第2のエンドポイントとの最高温度相関を有するかを決定するステップを含み得る。加えて、ポイントの温度特性の決定は、ポイントのグリッドの近傍に位置することになる少なくとも1つの電子回路の少なくとも1つの温度特性の決定に基づき得る。
【００２０】
予想されるルートのうちの1つの選択は、追加の基準に基づき得る。たとえば、予想されるルートの各々に関して、予想されるルートに関連する距離を決定すると、予想されるルートのうちの1つの選択は、予想されるルートに関連する距離に基づき得る。別の例として、複数のルーティングレイヤのうちの少なくとも2つを横断する、少なくとも1つの予想されるルートを識別すると、予想されるルートのうちの1つの選択は、複数のルーティングレイヤのうちの少なくとも2つを横断する各予想されるルートに重み係数を適用するステップを必要とし得る。したがって、最も平滑な温度勾配は、複数のルーティングレイヤのうちの少なくとも2つを横断する、予想されるルートのうちの1つと関連付けられ得る。さらに別の例として、複数のルーティングレイヤのうちの少なくとも2つの間でビアを横断する、少なくとも1つの予想されるルートを識別すると、予想されるルートのうちの1つの選択は、複数のルーティングレイヤのうちの少なくとも2つの間でビアを横断する各予想されるルートに重み係数を適用するステップを必要とし得る。したがって、最も平滑な温度勾配は、複数のルーティングレイヤのうちの少なくとも2つの間でビアを横断する、予想されるルートのうちの1つと関連付けられ得る。さらなる例として、コースを反転する、少なくとも1つの予想されるルートを識別すると、予想されるルートのうちの1つの選択は、コースを反転する各予想されるルートに重み係数を適用するステップを必要とし得る。したがって、最も平滑な温度勾配は、コースを反転する、予想されるルートのうちの1つと関連付けられ得る。いくつかの態様では、少なくとも1つの基板は複数の積層を含み得る。この場合、複数のルートは複数の積層基板上で識別され得る。
【００２１】
いくつかの態様では、選択されたルートは、第1のエンドポイントと第2のエンドポイントとを含む。ここで、最も平滑な温度勾配は、選択されたルートに沿った第1のエンドポイントおよび第2のエンドポイントとの温度の最高相関に対応し得る。また、最も平滑な温度勾配は、選択されたルートに沿った温度特性の最高適合性に対応し得る。選択されたルートは分岐点を含むことも可能であり、この場合、分岐点は第1のエンドポイントと第2のエンドポイントとの間に位置する複数の予想される分岐点の中からの第1のエンドポイントおよび第2のエンドポイントとの最高温度相関と関連付けられる。
【００２２】
本開示のこれらの態様および他の態様は、以下の発明を実施するための形態を概観すると、より完全に理解されるであろう。添付図面とともに本発明の特定の例示的実装形態の以下の説明を概観すると、本開示の他の態様、特徴、および実装形態が当業者に明らかになろう。本開示の特徴について、いくつかの実装形態および下の図面に関して論じられる場合があるが、本開示のすべての実装形態は、本明細書で論じる有利な特徴のうちの1つまたは複数を含み得る。言い換えれば、1つまたは複数の実装形態は、いくつかの有利な特徴を有するものとして論じられる場合があるが、そのような特徴のうちの1つまたは複数はまた、本明細書で論じる本開示の様々な実装形態に従って使用され得る。同様に、例示的な実装形態について、デバイス実施形態、システム実施形態、または方法実装形態として下で論じられる場合があるが、そのような例示的な実装形態を様々なデバイス、システム、および方法において実施され得ることを理解されたい。
【図面の簡単な説明】
【００２３】
【図１】本開示のいくつかの態様による、温度に基づくルート選択の一例を示す図である。
【図２】温度誘導スキューの一例を示す図である。
【図３】温度誘導スキューの一例を示す図である。
【図４】本開示のいくつかの態様による、ワイヤルーティング方法の一例を示すフローチャートである。
【図５】本開示のいくつかの態様による、温度余因子行列(temperature cofactor matrix)に基づくルート選択の一例を示す図である。
【図６】本開示のいくつかの態様による、余因子行列を生成して、使用する一例を示す図である。
【図７】本開示のいくつかの態様による、基板の一例を示す図である。
【図８】本開示のいくつかの態様による、基板の別の例を示す図である。
【図９】本開示のいくつかの態様による、レイヤベースの重み係数が適用され得るシナリオの一例を示す図である。
【図１０】本開示のいくつかの態様による、ビアベースの重み係数が適用され得るシナリオの一例を示す図である。
【図１１】本開示のいくつかの態様による、コース反転(course reversal)ベースの重み係数が適用され得るシナリオの一例を示す図である。
【図１２】本開示のいくつかの態様による、温度相関を考慮したルート判定の一例を示す図である。
【図１３】本開示のいくつかの態様による、ルート距離を考慮したルート判定の一例を示す図である。
【図１４】本開示のいくつかの態様に従ってルーティングされたクロックツリーの一例を示す図である。
【図１５】本開示のいくつかの態様に従ってルーティングされた差動対の一例を示す図である。
【図１６】本開示のいくつかの態様による、迷路ルーティング方法の一例を示すフローチャートである。
【図１７】本開示の1つまたは複数の態様がアプリケーションを見出し得る回路設計システムの一例を示すブロック図である。
【図１８】本開示のいくつかの態様による、ルーティング機能を実現するように構成された装置の選択構成要素を示すブロック図である。
【図１９】本開示のいくつかの態様による、ワイヤルーティング方法を示すフローチャートである。
【図２０】本開示のいくつかの態様による、その上にワイヤを形成した基板を作成するためのプロセスを示すフローチャートである。
【図２１】本開示のいくつかの態様による、ワイヤルーティング方法の追加の態様を示すフローチャートである。
【発明を実施するための形態】
【００２４】
以下に記載される詳細な説明は、添付の図面とともに、様々な構成を説明することを意図しており、本明細書で説明する概念を実践することができる唯一の構成を表すことは意図していない。詳細な説明は、様々な概念の完全な理解を与えるために具体的な詳細を含む。しかしながら、これらの概念がこれらの具体的な詳細なしに実践され得ることは当業者に明らかであろう。場合によっては、そのような概念を曖昧にすることを回避するために、よく知られている構造および構成要素がブロック図の形態で示されている。
【００２５】
図1は、本開示のいくつかの態様による、温度に基づくルート選択の一例を示す。ルートポイントのグリッド100は、第1のエンドポイント102Aから第2のエンドポイント102Bにワイヤをルーティングするために画定される。各ルートポイントは、ルートポイントのグリッド100内の枠のうちの1つによって表される。したがって、図1の例では、40個のルートポイントが存在する。実際には、所与のルートポイントは、一般に、対応する枠の中央に位置することになる。
【００２６】
下でより詳細に論じるように、ルート選択方式は、各ルートポイントに関連する温度特性を決定(たとえば、推定)することを必要とする。これらの温度特性に基づいて、各ルートポイントの温度特性が第1のエンドポイント102Aおよび第2のエンドポイント102Bの温度特性と相関する範囲に関して決定が行われる。図1の例では、所与の枠内の数は、その枠に関する温度相関余因子を表し、ここで、0.99は、近似的な全温度相関を表し、0.0は温度相関の不在を表す。したがって、ルーティングポイントのグリッド100内の第1のルーティングポイント104は、第1のエンドポイント102Aおよび第2のエンドポイント102Bとの0.3の温度相関余因子を有する。異なる実装形態では(たとえば、0未満の値または1を超える値を含めて)異なる相関余因子範囲が使用され得ることを諒解されたい。
【００２７】
本明細書の教示によれば、第1のエンドポイント102Aと第2のエンドポイント102Bとの間の可能なルートのすべてのうちのどのルートが第1のエンドポイント102Aおよび第2のエンドポイント102Bと最良の温度相関を有するかを決定することによって、第1のエンドポイント102Aと第2のエンドポイント102Bとの間のルートが選択される。図1の例を続けると、最良のルートは、したがって、集合的に最高相関余因子を有するルートになる。したがって、第2の破線106Bによって表されたルートなど、任意の他の予想されるルートに対して、第1の破線106Aによって表されたルートが選択される。
【００２８】
図1のルーティング方式は、したがって、エンドポイントの対間のルート上に存在する異なる温度条件から生じるタイミングスキュー問題を対象とする。たとえば、プリント回路基板(PCB)、集積回路(IC)、または他の回路内の構成要素の作業負荷差分は予想されるルーティングパスにわたって不均一な温度勾配をもたらし得る。特定の例として、プロセッサの作業負荷が非常に高いとき、IC内など、PCB上のプロセッサ周囲のエリアは、一般に、PCBまたはICの他のエリアよりも熱くなる。ワイヤ抵抗と温度との間の線形関係を仮定すると、高い温度分散(temperature variance)は、たとえば、100%程度までワイヤ上の伝搬遅延を増大させる可能性がある。
【００２９】
その上、所与のエリア内の温度は経時的に変化し得る。著しい温度勾配が存在する場合、したがって、伝搬遅延、タイミングスキュー(たとえば、クロックスキュー)、およびスキュー変動の点で、システムに不確実性が付与され得る。さらに、PCB、ICなどの上で相互接続がグローバルにルーティングされるとき、これらの温度勾配の遅延およびスキューの影響はなお一層問題になる可能性がある。
【００３０】
図2および図3は、異なる温度を受けたルーティングエリアの簡略化された例を示す。第1のエリア202Aは、第1のエリア202Aの近傍にある回路の動作の間、T1度の比較的高い温度を受ける。図2および図3の複雑性を低減するために、この回路は示されていない。第2のエリア202Bは、近くの回路の動作の間、T1度よりも低いT2度の温度を受ける。第3のエリア202Cは、近くの回路の動作の間、T2度よりも低いT3度の温度を受ける。
【００３１】
概して、ワイヤの温度とワイヤの抵抗との間に直接的な関係が存在する。したがって、ワイヤに沿った温度差は、ワイヤを通る伝搬遅延に著しい影響を及ぼし得る。図2および図3は、ワイヤが高温のエリアを通過するときに生じ得る伝搬遅延の増大の一例を示す。
【００３２】
図2では、ソースポイントSにおいて生成された信号は、まず、第1のワイヤセグメント204Aを介して第1のシンクポイントAに伝搬し、第2のワイヤセグメント204Bを介して第2のシンクポイントBに伝搬する。ソースポイントSから第1のシンクポイントAまでの伝搬遅延は1ナノ秒であるのに対して、ソースポイントSから第2のシンクポイントBまでの伝搬遅延は2ナノ秒である。第1のワイヤセグメント204Aも第2のワイヤセグメント204Bも、第1のエリアから第3のエリア202A〜202Cのいずれも通過しないことに留意されたい。
【００３３】
図3では、第1のワイヤセグメント304Aは第1のエリアから第3のエリア202A〜202Cのいずれも通過しない。しかしながら、第2のワイヤセグメント304Bは、第1のエリアから第3のエリア202A〜202Cの各々を通過する。したがって、図3では、ソースポイントSから第2のシンクポイントBまでの伝搬遅延は4ナノ秒である。したがって、図2および図3は、ワイヤのうちの1つのワイヤためのルートが、ワイヤのうちの別のワイヤとは異なる温度を受けるエリアを通過する場合、異なるワイヤ(たとえば、ディスクリートワイヤまたはツリーの異なる分岐)上で搬送される信号間に著しい温度誘導タイミングスキューが生じ得ることを示す。
【００３４】
本開示は、いくつかの態様では、温度認識(thermal-aware)ルーティング方式の使用によって、温度誘導タイミングスキューおよびタイミングスキュー変動を最小限に抑えることに関する。有利には、そのような温度認識ルーティング方式は、バッファ挿入技法、架橋挿入技法、および他の従来のスキュー低減技法と対照的に、追加の金属ルーティングなしで、かつ/または電力消費の増大なしで、スキューおよびスキュー変動を効果的に低減する。
【００３５】
上記を念頭において、本開示による、温度認識ルーティング機能に関する動作の例が、図4のフローチャートに関してより詳細に説明される。便宜上、図4の動作は(または、本明細書で論じ、もしくは教示する他のどの動作も)、特定の構成要素によって実行されるものとして説明され得る。しかしながら、様々な実装形態では、これらの動作は、他のタイプの構成要素によって実行され得、かつ異なる数の構成要素を使用して実行され得ることを諒解されたい。また、本明細書で説明する動作のうちの1つまたは複数は、所与の実装形態において採用され得ないことも諒解されたい。
【００３６】
図4は、本開示のいくつかの態様による、相関余因子行列に基づいてワイヤをルーティングするためのプロセス400を示す。プロセス400は、回路設計ツールまたは何らかの他の適切な装置内に位置し得る処理回路1810(図18)内で行われ得る。別の態様では、プロセス400は、図17に示す回路設計システム1700によって実装され得る。当然、本開示の範囲内の様々な態様では、プロセス400は、ワイヤルーティング動作をサポートすることができる任意の適切な装置によって実装され得る。
【００３７】
プロセス400によって達成され得る目的の一例は、最も平滑な温度勾配を有し、可能な限り短いワイヤをやはりもたらす、ワイヤのためのルートを見出すことである。いくつかの態様では、平滑な温度勾配は、温度の急激な変化(たとえば、第1のしきい値レベルを超える温度等級の変化)が何もないか、またはごく少なく、大きな温度限界(たとえば、第1のしきい値レベルよりも大きい第2のしきい値を超える温度等級の差)を有さない温度交配を指す。平滑な温度勾配を実現することによって、さもなければルートに沿って温度差(temperature variations)によって生じ得るスキューおよびスキュー変動を低く保つことができる。加えて、(たとえば、迷路ルーティングを使用することにより)ワイヤの長さを短く保つことによって、ワイヤに関連する電力消費を低く保つことができる。
【００３８】
いくつかの実装形態では、温度に関して非常に相関するエンドポイント(たとえばピンペア(pin pairs))間のルートを見出すためにプロセス400が使用される。たとえば、このルーティング方式は、両方のエンドポイントが経時的に同じ温度であるか、またはそれに近い温度である傾向があるシナリオに特に有利であり得る。
【００３９】
概して、プロセス400は、エンドポイントと最高温度相関を有するルートを見出すことを試みる。したがって、ルート選択プロセスは、非常に相関するエリア上にすべてのルーティング経路を構築することを試みる。そのように非常に相関するエリアを構築することによって、ルートにわたって見られる温度の何らかの変化はより平滑になる(たとえば、何らかの温度変化の等級はより小さくなる)傾向がある。したがって、ルートに関連するタイミングスキューおよびスキュー変動はますます制御され、予測可能になり得る。
【００４０】
このためにさらに、プロセス400は、いわゆる、ホットスポットを回避することもできる。たとえば、ルート選択プロセスは、選択されたルートが温度限界を受けた(すなわち、熱すぎる、または冷たすぎる)いずれのエリアも通過しないことを確実にし得る。
【００４１】
ブロック402で、時間的可変(temporal variant)空間相関行列(マップ)を生成する。ここで、ルーティングエリア(たとえば、PCBまたはIC全体)が、合計でN個のノードを有する均一グリッドに分割される。N個のノードの各々における温度は、次いで、たとえば、ランダムプロセスによってモデル化される。各ノードは、したがって、式1によって示されるN個の時間インスタンスにおいてサンプル化された温度シーケンスによって記述される。
Ln1 = {T(t1,n1),..., T(tp,n1),T(tp+1,n1),..., T(tN,n1)}        (1)
Ln2 = {T(t1,n2),..., T(tp,n2),T(tp+1,n2),..., T(tN,n2)}
...
LnN = {T(t1,nN),..., T(tp,nN),T(tp+1,nN),..., T(tN,nN)}
【００４２】
温度(空間)相関行列は、したがって、式2に示されるように定義され得る。
【００４３】
【数１】
2017512331.tif 000003
【００４４】
ここで、cov(i,j)は、式3に示されたように、ノード間の共分散行列である。
【００４５】
【数２】
2017512331.tif 000004
【００４６】
式1で参照され、式4に示されたパラメータσiおよびσjは、それぞれ、ノードniおよびnjに関する標準偏差である。
【００４７】
【数３】
2017512331.tif 000005
【００４８】
最終的に、それぞれ、ノードniおよびnjに関する平均温度は式5に示される。
【００４９】
【数４】
2017512331.tif 000006
【００５０】
図4のブロック404で、ブロック402で生成された空間相関行列に基づいて、相関余因子行列(マップ)を生成する。本明細書で論じるように、いくつかの態様では、この動作は、指定されたワイヤターゲットポイント(たとえば、エンドポイント)に関してグリッド内の各ポイントの温度相関を決定することを必要とする。
【００５１】
ターゲットi,jに対するエリアP(CCp)内の相関余因子は、2つの対応する係数に基づいて(たとえば、それらの係数の積として、またはその和として)定義される。相関余因子が係数の積に基づく場合、CCp = cov(i,p) * cov(p,j)である。ここでも、高い相関余因子値を有するエリアは、両方のルーティングターゲットポイントとの高い相関を表す。
【００５２】
ブロック406で、相関余因子行列とルート距離とに基づいて、ワイヤをルーティングされる。いくつかの実装形態では、最も平滑な可能な温度勾配を有する最短のルートを見出す試みにおいて、温度認識ルーティングとともに、迷路ルーティングアルゴリズムなどのルーティングアルゴリズムが使用される。
【００５３】
図5は、相関余因子行列に基づくルート選択の一例をグラフィカルな様式で示す。図5は、動作の順番、すなわち、第1の段階500A、第2の段階500B、第3の段階500C、および第4の段階500Dの順番で標示されたルート選択の4つの異なる段階におけるグリッドを示す。
【００５４】
この例では、第1の段階500Aは、第1のエンドポイント502Aと第2のエンドポイント502Bとの間の中間点を選択することを必要とする。この目的で、各々が単一の太丸によって表される4つの予想される中間点のセットが識別される。例示のために、第1の中間点504Aおよび第2の中間点504Bが図5において特に標示されている。予想される中間点の各々に関して温度相関余因子が算出され、好ましくは、第1のエンドポイントおよび第2のエンドポイント502Aおよび502Bに対して最高温度相関を有する予想される中間点がルートのための中間点として選択される。この例では、第2の中間点504Bは0.99の相関余因数を有し、したがって、この中間点がルーティング動作のための中間点として選択される。他の予想される中間点の相関余因数は図5の複雑性を低減するために標示されていない。
【００５５】
上記のように、いくつかの実装形態では、ルーティング動作はいわゆるホットスポットを回避する。ホットスポットは、図5に星として表されている。例示のために、これらのホットスポットのうちの第1のホットスポット506が特に標示されている。いくつかのシナリオでは、ホットスポットの存在は、場合によっては、所望される中間点の選択を妨げる可能性があることを諒解されたい。たとえば、ホットスポットは中間点に対する直接ルートを妨害する可能性がある。
【００５６】
選択された中間点504Bがそのルートのために選択されると、第2の中間点504Bを通過するルートを識別する必要がある。具体的には、ルート選択は、第1の破線508Aによって概して表される、第2の中間点504Bから第1のエンドポイント502Aまでのルートを識別することを必要とする。加えて、ルート選択は、第2の破線508Bによって概して表される、第2の中間点504Bから第2のエンドポイント502Bまでのルートを識別することを必要とする。
【００５７】
この目的で、ルーティング動作は第2の段階500Bに進み、そこで、各ルーティングポイントに関する相関余因子が算出される。図1に示したように、相関余因子は、0.0からおよそ1.0(たとえば、0.9999)に及び得る。視覚的な助けとして、このルーティングポイントがそのルートのための中間点であることを強調するために、第2の中間点504Bに円が加えられている。
【００５８】
ルーティング動作は、次いで、第3の段階500Cに進み、そこで、第2の中間点504Bと第2のエンドポイント502Bとの間の所望されるルート510Aが識別される。本明細書で論じるように、最高相関余因子値を有するルートがここで選択される。また、このルート選択の間、ホットスポットが回避される。
【００５９】
最終的に、ルーティング動作は第4の段階500Dに進み、そこで、第2の中間点504Bと第1のエンドポイント502Aとの間の所望されるルート510Bが識別される。ここでも、最高相関余因子値を有するルートが選択される。加えて、ホットスポットが回避される。
【００６０】
次に、図6を参照すると、余因子行列の生成および使用についてより詳細に説明される。上述のように、高温度変動(temperature variability)は、ワイヤルートに関連する遅延およびスキューに著しい影響を及ぼし得る。本明細書で教示する温度認識ルーティングは、各ノード間の遅延を評価し、スキューおよびスキュー変動を低減させるために、距離と温度相関の両方を考慮することができる。
【００６１】
経時的な動的温度差は異なるスキューを生成するため、このルーティング方式は、より安定したスキュー変動を保証することを試みる際に、温度の視点から、最も平滑なルーティング経路を識別する。このルーティング方式は、空間相関および温度相関とともに、時変温度差を考慮する。時変温度マップを解析することによって、温度相関マップが次いで生成される。このようにして、このルーティング方式は、最高相関余因数値を有するルートを識別し、それによって、より良好な熱耐性を有するルートを提供し得る。加えて、温度相関マップによって示された何らかのホットスポットエリアを回避することによって、このルーティング方式は最悪スキューをさらに低減させることができる。
【００６２】
最初に、回路設計プロセスは、PCB、IC、または何らかの他の適切な構造のエリア602内の回路を位置特定することを必要とする。これは、たとえば、適切なコンピュータ支援設計(CAD)システムを使用して達成され得る。
【００６３】
次いで、エリア602に関して空間温度解析604が実行される。いくつかの態様では、これは、ある時間期間にわたってエリア602の異なるポイントにおける温度を決定すること(たとえば、推定すること)を必要とする。たとえば、エリア602内に位置する回路の温度特性に関する情報、およびこれらの回路がどのように動作するように構成されているかに関する情報を有するシミュレーションプログラムは、回路が動作中であるとき、エリア602内の様々なポイントにおいて予想される温度の推定値を生成することができる。
【００６４】
エリア602内の回路の近傍にあるそのような時変温度をモデル化するために、PCB、IC、または他のルーティング構造上にグリッドが画定され、各グリッドに温度範囲が割り当てられる。この温度範囲は、測定または温度シミュレーションによって取得され得る。たとえば、これらの回路は、対応する温度プロファイルを取得するために、すべての動作状態を通して実行され得る(たとえば、回路に関する完全な命令セットがテストされ得る)。
【００６５】
特定の非限定的な例として、温度解析は、マイクロアーキテクチャレベルの電力および温度シミュレーションを必要とし得る。エリア602は、合計でN個のノードを有する均一グリッドに分割される。(各々、時間期間tpを用いて)適切なベンチマークアプリケーションを順番に適用することによって、サイクル精度(ピコ秒の尺度)の動的電力を熱定数尺度(ミリ秒の尺度)で平均化することによって熱出力が取得される。この時変熱出力を入力として使用して、グリッド内の各ノードnjに関して異なる時間インスタンスtjにおいて、エリア602を介した一時的温度T(ti,nj)が算出される。温度差に関する相関を自動的に抽出するために、ランダムプロセスによって、N個のノードにおける温度をモデル化することができる。グリッド内の各ノードは、N個の時間インスタンスにおいてサンプル化された温度シーケンスによって、このようにして説明され得る。図6は、時間インスタンスt1からtNに関する3次元温度行列606をもたらす簡略化された例を示す。非限定的な例では、温度行列606は上に示された式1に対応する。
【００６６】
相関算出608は、相関行列610を生成するための入力として温度行列606を使用する。非限定的な例では、相関算出608は上に示された式2〜5に対応する。そのような場合、相関行列610は、したがって、式2に対応することになる。たとえば、相関係数C(i,j)は事前算出され、表内に記憶され得る。
【００６７】
余因子計算612は、ルートのために指定されたターゲットポイント(たとえばエンドポイント)に関連する余因子行列614を生成するための入力として相関行列610を使用する。高い相関余因子値を有するグリッド内のポイントは、両方のルーティングターゲットポイントとの高い相関を表す。上記のように、いくつかの実装形態では、相関余因子は、2つのターゲットポイントに関連する係数の積に基づく: CCp = cov(i,p) * cov(p,j)。他の実装形態では、相関余因子は係数の和に基づく、CCp = cov(i,p) + cov(p,j)。2つのターゲットポイントを有するポイントの相関を示すのに役立つ他のアルゴリズムも同様に使用され得る。
【００６８】
最終的に、温度認識ルーティング616は、最高相関値を有するルート618を識別するための入力として、余因子行列614を使用する。たとえば、温度認識ルーティング616は、2つのターゲットポイント間の各予想されるルートに関する相関値を算出することができる。ルートに関する相関値は、そのルートに沿ったグリッドポイントに関連する個々の余因子値の関数である。たとえば、個々の余因子値は、そのルートに関する相関値を生成するために、一緒に乗算されてよく、一緒に加算されてよく、または何らかの他の方法で演算されてよい。
【００６９】
設計目的に応じて、様々な実装形態で(たとえば、迷路ルーティングなど)様々なタイプのルーティングアルゴリズムを用いることができる。温度認識ルーティングは、マンハッタンルーティング規則または他のルーティング規則を用いることができる。したがって、ルーティングは「上方」ルーティング選定もしくは「右側」ルーティング選定に制限されなくてよく、または画定されたルーティングウィンドウ内に留まるように制限されなくてもよい。したがって、これがルートのために優れたスキュー特性をもたらすシナリオでは、コース反転(たとえば、バックトラッキング)を用いることもできる。
【００７０】
2次元または3次元のルーティングに関して、温度ベースのルーティングが使用され得る。たとえば、ルーティングは、PCBの異なるレイヤにわたって、ICの異なるレイヤにわたって、積層ICにわたって、または何らかの他のマルチレイヤ構造にわたって実行され得る。この場合、異なるレイヤ内のすべての予想されるルートポイントに関して温度マップが算出され得、この3次元温度マップに基づいてルーティング判定が行われる。図7および図8は、それぞれ、2つの異なるタイプの基板上のマルチレイヤルーティング(すなわち、3次元ルーティング)の2つの例を示す。
【００７１】
図7は、集積回路ダイ基板700上のルーティングの簡略化された例を示す。堆積技法および他の作製技法の使用により、基板700の様々なレイヤ上に回路702および金属ワイヤ(トレース)が形成される。この例では、ワイヤは、第1の金属レイヤ704(たとえば、第1のワイヤルーティングレイヤ)上および第2の金属レイヤ706(たとえば、第2のワイヤルーティングレイヤ)上に形成される。さらに、必要な場合、ワイヤは複数のレイヤ上にルーティングされ得、それによって、適切な位置において、ワイヤはあるレイヤから別のレイヤへの遷移708を含む。
【００７２】
図8は、プリント回路基板の基板800上のルーティングの簡略化された例を示す。堆積技法および他の作成技法の使用により、回路802(この例では、表面実装構成要素)および金属ワイヤ(トレース)が基板800の様々なレイヤ上に形成されるか、またはそれらのレイヤに取り付けられる。この例では、ワイヤは、第1の金属レイヤ804(たとえば、第1のワイヤルーティングレイヤ)上および第2の金属レイヤ806(たとえば、第2のワイヤルーティングレイヤ)上に形成される。さらに、必要な場合、ワイヤは複数のレイヤ上にルーティングされてよく、それによって、いわゆるビア808は、あるレイヤ上のワイヤのあるセクションを別のレイヤのワイヤの別のセクションに電気的に結合する。
【００７３】
最終的に、ルーティング判定は、物理的要因ならびに温度要因を考慮に入れることができる。たとえば、重み係数をあるレイヤから別のレイヤへの遷移、ビアの使用、コース反転、または他の物理的要因と関連付けることができる。いくつかの態様では、これらの物理的要因は、ルートに関連する信号スキュー、電力消費、または何らかの他の動作パラメータに影響を及ぼし得る。したがって、重み付け係数を使用して、そのような影響を定量化することができる。したがって、(たとえば、最低スキューを有するルート、別のルートのスキューと最も整合するスキューを提供するルート、最低電力消費を有するルートなど)最良のルートの決定は、温度相関とこれらの他の重み係数の平衡に基づき得る。
【００７４】
図9は、ルーティング判定がレイヤベースの重み係数を考慮し得るシナリオの一例を示す。特定のルートを使用する判定は、そのルートが単一のレイヤ上にあるか、または複数のレイヤ上にあるかを考慮に入れることができる。具体的には、(たとえば、インピーダンス不連続性により)レイヤ間の遷移はルートの信号伝搬特性に悪影響を及ぼし得るため、ルーティング判定は、一回または複数回、レイヤ間を遷移するルートに不利益をもたらし得る。
【００７５】
一例として、ルート902に関する相関値を算出した後、この相関値を調整して、第1のレイヤ906と第2のレイヤ908との間の遷移904を含めて、ルート902を明らかにすることができる。たとえば、ルート902に関連するスキューが遷移904によって悪影響を受けることを示すために、ルート902に関する元の相関値が重み係数だけ低減され得る。
【００７６】
別の例として、ルート902に関する相関値、ならびにルート902に関する1つまたは複数の重み係数に基づいて、ルーティング判定を行うことができる。そのような重み係数は、限定はしないが、ルート902の長さ、およびルート902内のレイヤ間の遷移の数を示し得る。したがって、このルート選択アルゴリズムは、予想されるルートの各々に関する1つまたは複数の重み係数を算出し、これらの重み係数と相関値とを使用して、別のルートに対してあるルートを選択するかどうかを決定することができる。
【００７７】
図10は、ルーティング判定がビアベースの重み係数を考慮し得るシナリオの一例を示す。ここで、特定のルートを使用する判定は、そのルートがビアを通過するかどうかを考慮に入れることができる。ビアの使用は(たとえば、インピーダンス不連続性により)ルートの信号伝搬特性に悪影響を及ぼし得るため、ルーティング判定は、1つまたは複数のビアを使用するルートに不利益をもたらし得る。
【００７８】
一例として、ルート1002に関する相関値を算出した後、この相関値を調整して、第1のレイヤ1006と第2のレイヤ1008との間のビア1004を含めて、ルート1002を明らかにすることができる。たとえば、ルート1002に関連するスキューがビア1004によって悪影響を受けることを示すために、ルート1002に関する元の相関値が重み係数だけ低減され得る。
【００７９】
別の例として、ルート1002に関する相関値、ならびにルート1002に関する1つまたは複数の重み係数に基づいて、ルーティング判定を行うことができる。そのような重み係数は、限定はしないが、ルート1002の長さ、およびルート1002内のビア1004の数を示し得る。したがって、このルート選択アルゴリズムは、予想されるルートの各々に関する1つまたは複数の重み係数を算出し、これらの重み係数と相関値とを使用して、別のルートに対してあるルートを選択するかどうかを決定することができる。
【００８０】
図11は、コース反転ベースの重み係数を考慮し得るシナリオの一例を示す。このシナリオでは、特定のルートを使用する判定は、そのルートがそのコースを反転させるかどうかを考慮に入れることができる。そのようなコース反転は(たとえば、インピーダンス不連続性により、所望されるエリアの外の遷移、またはルートの延長により)ルートの信号伝搬特性に悪影響を及ぼし得るため、ルーティング判定は、1つまたは複数のコース反転を含むルートに不利益をもたらし得る。図11は、より所望されるルートの使用を妨害するホットスポット(たとえば、ホットスポット1104)によって生じるコース反転1102の一例を示す。
【００８１】
一例として、ルート1106に関する相関値を算出した後、この相関値を調整して、コース反転1102を含めて、ルート1106を明らかにすることができる。たとえば、ルート1106に関連するスキューがコース反転1102によって悪影響を受けることを示すために、ルート1106に関する元の相関値が重み係数だけ低減され得る。
【００８２】
別の例として、ルート1106に関する相関値、ならびにルート1106に関する1つまたは複数の重み係数に基づいて、ルーティング判定を行うことができる。そのような重み係数は、限定はしないが、ルート1106の長さ、およびルート1106内のコース反転1102の数を示し得る。この場合も、このルート選択アルゴリズムは、予想されるルートの各々に関する1つまたは複数の重み係数を算出し、これらの重み係数と相関値とを使用して、別のルートに対してあるルートを選択するかどうかを決定することができる。
【００８３】
いくつかの実装形態では、複数の積層基板上に3次元マルチレイヤルーティングが用いられる。たとえば、上の図7〜図10で参照された様々なレイヤは、いくつかのシナリオでは、積層基板であり得る。したがって、本明細書で教示するルートの識別は、いくつかの実装形態では、複数の積層基板上のルートを識別することを必要とし得る。
【００８４】
本開示は、一態様では、温度要件とルートの長さ要件とを平衡させることによって、ルートを選択することに関する。たとえば、代替のルートがより良好な温度特性を有する場合、代替のルートよりも短いルートは選択され得ない。反対に、代替のルートの長さが代替のルートよりも長い場合、そのルートよりも良好な温度特性を有するルートは選択され得ない。したがって、(たとえば、最低スキューを有するルート、別のルートのスキューと最も整合するスキューを提供するルート、最低電力消費を有するルートなど)最良のルートの決定は、温度相関と距離要因の両方に基づき得る。
【００８５】
図12および図13は、ルート判定が温度相関とルート距離の両方を考慮し得るシナリオを示す。図12および図13は両方とも、同じ相関行列1200を示すが、それぞれ、異なるルート1202および1302を示す。ルート1202はルート1302よりも高い温度相関を有するが、ルート1302はルート1202よりも短い。
【００８６】
したがって、ルーティング判定は、どのルートがより良好であるかを決定するために、ルートの長さとルートの温度相関とを考慮に入れることができる。本明細書で論じるように、最良のルートを識別するときに考慮すべき要因は、限定はしないが、スキューの量と、関連するルートとのスキュー整合と、電力消費とを含み得る。
【００８７】
これらの異なる要因がルートごとに比較される様式は、様々な形態をとり得る。一例として、ルーティング方式は、ルート1202および1302に関するこれらの要因間の差分を算出し、これらの差分を(たとえば、重み係数を使用することによって)比較して、ルート1202の改善された温度相関が(たとえば、スキュー、電力消費など)所望される性能の点で、ルート1202のより長い長さをオフセットするかどうかを決定することができる。別の例として、ルーティング方式は、温度相関とルート長さの両方を明らかにする各ルート1202および1302に関する基準を算出することができる。このルーティング方式は、次いで、ルート1202に関する基準をルート1302に関する基準と比較して、最良のルートを識別することができる。
【００８８】
上記のように、本明細書で教示する温度認識ルーティングは、有利には、関係するワイヤの信号伝搬特性に整合するように使用され得る。これらの例のうち2つについて図14および図15に関して説明する。
【００８９】
図14は、クロックツリーの分岐のすべてを高い温度相関経路上に配置するようにルーティングされたクロックツリーの一例を示す。クロックソース(図示せず)からのクロック信号は分岐点1402に結合される。クロックツリーの第1の分岐1404は、分岐点1402から第1のシンクポイント1406にルーティングされる。クロックツリーの第2の分岐1408は、分岐点1402から第2のシンクポイント1410にルーティングされる。示すように、第1の分岐および第2の分岐1404および1408のためのそれぞれのルートは、第1のシンクポイントおよび第2のシンクポイント1406および1410と高い温度相関を有するように選択される。
【００９０】
本明細書の議論は2つのターゲットポイントとの温度相関を指す場合が多いが、異なる数のターゲットポイントとの相関に基づいて経路を選択することができる。たとえば、クロックツリーは、3つ以上のシンクポイント(たとえば、図14のポイント1406、1410、および1412)を有し得る。そのような場合、本明細書で説明する技法を用いて、3つ以上のターゲットポイント(たとえば、シンクポイント)に関するルートに沿って最良の温度相関を提供する多分岐(multi-branch)ルートを識別することによって、クロックツリーの複数の分岐のためのルートを識別することができる。
【００９１】
図15は、差動対の両方のレールをより高い温度相関経路に配置するようにルーティングされた差動対の一例を示す。この例では、差動対の第1のレール1504をルーティングするために、(上部の3つの行を含む)第1のグリッド1502が定義され、差動対の第2のレール1508をルーティングするために、(下部の2つの行を含む)第2のグリッド1506が定義される。
【００９２】
第1のレール1504は、第1のソースポイント1510において発生し、第1のシンクポイント1512においてシンクする。第2のレール1508は、第2のソースポイント1514において発生し、第2のシンクポイント1516においてシンクする。示すように、第1のレールおよび第2のレール1504および1508のためのそれぞれのルートは、各々、対応するシンクポイントおよびソースポイントと高い温度相関を有するように選択される。
【００９３】
図16は、図14および図15のワイヤをルーティングするために使用され得る迷路ルーティングプロセス1600の一例を示す。プロセス1600は、回路設計ツールまたは何らかの他の適切な装置内に位置し得る処理回路1810(図18)内で行われ得る。別の態様では、プロセス1600は、図17に示す回路設計システム1700によって実装され得る。当然、本開示の範囲内の様々な態様では、プロセス1600は、ワイヤルーティング動作をサポートすることができる任意の適切な装置によって実装され得る。
【００９４】
ブロック1602で、時間的可変空間相関行列(マップ)を決定する。たとえば、装置は、その行列を生成することができるか、または別の装置からのその行列を受信することができる。
【００９５】
ブロック1604で、クロックツリーが合成されているかどうかに関する決定が行われる。されていない(たとえば、クロックツリールーティングの代わりに、詳細なルーティングが実行される)場合、動作フローはブロック1608に進む。
【００９６】
クロックツリーが合成されている場合、動作フローはブロック1606に進み、そこで、クロックツリーに関するマージポイントが指定される。具体的には、マージポイントは最大相関重みを有し、ホットスポットではないマージライン内のポイントに位置する。いくつかの実装形態では、ターゲットポイント間のマンハッタン距離を算出することによってマージラインが識別される。図14は、第1のシンクポイントおよび第2のシンクポイント1406および1410から等距離のマージライン1414の一例を示す。マージライン1414はグリッド内の予想されるマージングポイントと交差する。したがって、ブロック1606の動作は、予想されるマージポイントの各々に関する相関余因子を決定するステップと、予想されるマージングポイントがホットスポットでないことを条件に、最高相関重みを有するマージングポイントを選択するステップとを必要とし得る。
【００９７】
ブロック1608で、最高相関余因子重みを有するルートを識別するために、迷路ルーティングが起動され、この場合、ルートはマンハッタン距離によって制約される。
【００９８】
図17は、本開示の1つまたは複数の態様がアプリケーションを見出し得る回路設計システム1700の一例を示す。システム1700は、ユーザディスプレイデバイス1704とユーザ入力デバイス1706とに通信可能に結合されたコンピュータ1702(たとえば、ワークステーション)を含む。コンピュータ1702はまた、コンピュータ1702によって生成された設計データがPCB、ICなどを製造する作製システム1710に転送されることを可能にするために、ネットワーク1708に通信可能に結合される。
【００９９】
コンピュータ1702は、プロセッサ1712とメモリ1714とを含む。プロセッサ1712は、中央処理ユニット(CPU)、コプロセッサ、演算処理装置、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)などの、任意の適切なタイプの処理ユニットであってよい。メモリ1714は、RAM、ROM、FLASH、ディスクドライブなどの、任意の適切なタイプのメモリ技術を含み得る。
【０１００】
メモリ1714内に記憶され、かつ/またはプロセッサ1712によって実装されるルーティングプログラム1716およびシミュレーションモデル1718は、ユーザが本明細書の教示に従って回路設計を生成することを可能にする。たとえば、ユーザは、ディスプレイデバイス1704とユーザ入力デバイスとを使用して、本明細書で教示されるように、(たとえば、ICまたはPCBの)少なくとも1つの基板上に回路を配置し、その少なくとも1つの基板上の様々な位置において温度特性を経時的にシミュレートし、相関行列を生成し、余因子行列を生成し、最良の温度相関を有するルートを選択することができる。ユーザは、次いで、所望される回路構成要素を作り出すためのルート設計1720を作製システム1710に送ることができる。
【０１０１】
次に、図18を参照すると、本開示の少なくとも1つの例による、図17のコンピュータ1702などの、装置1800の選択構成要素を示すブロック図である。装置1800(たとえば、設計ツール)は、外部バスインターフェース1802と、記憶媒体1804と、ユーザインターフェース1806と、メモリデバイス1808と、処理回路1810とを含む。処理回路は、外部バスインターフェース1802、記憶媒体1804、ユーザインターフェース1806、およびメモリデバイス1808の各々と電気的に通信するように結合または配置される。
【０１０２】
外部バスインターフェース1802は、外部バス1812に対するインターフェースを装置1800の構成要素に提供する。外部バスインターフェース1802は、たとえば、信号駆動回路、信号受信機回路、増幅器、信号フィルタ、信号バッファ、またはシグナリングバスもしくは他のタイプのシグナリング媒体とインターフェースするために使用される他の回路のうちの1つもしくは複数を含み得る。
【０１０３】
処理回路1810は、データを取得、処理、および/または送り、データのアクセスおよび記憶を制御し、コマンドを発行し、他の所望の動作を制御するように構成される。処理回路1810は、少なくとも1つの例において、適切な媒体によって提供される所望のプログラミングを実装するように適合された回路を含み得る。場合によっては、処理回路1810は、プログラミングを実装することによって、またはプログラミングを実装することなく、所望の機能を実行するように適合された回路を含み得る。例として、処理回路1810は、1つもしくは複数のプロセッサ、1つもしくは複数のコントローラ、および/または実行可能なプログラミングを実行するように、かつ/あるいは望の機能を実行するように構成されたその他の構造として実装されてもよい。処理回路1810の例は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理構成要素、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せを含み得る。汎用プロセッサは、マイクロプロセッサ、ならびに任意の通常のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンを含み得る。処理回路1810はまた、DSPとマイクロプロセッサとの組合せ、いくつかのマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、ASICとマイクロプロセッサ、または任意のその他のいくつかの様々な構成などのコンピューティング構成要素の組合せとして実装されてもよい。処理回路1810のこれらの例は説明のためであり、本開示の範囲内の他の好適な構成も企図される。
【０１０４】
処理回路1810は、記憶媒体1804上に記憶されてもよいプログラミングの実行を含めて処理するように適合される。本明細書で使用される「プログラミング」または「命令」という用語は、ソフトウェアと呼ばれるか、ファームウェアと呼ばれるか、ミドルウェアと呼ばれるか、マイクロコードと呼ばれるか、ハードウェア記述言語と呼ばれるか、またはそれ以外で呼ばれるかにかかわらず、限定はしないが、命令セット、命令、コード、コードセグメント、プログラムコード、プログラム、プログラミング、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行ファイル、実行のスレッド、手順、関数などを含むように広く解釈されなければならない。
【０１０５】
場合によっては、処理回路1810は、予想されるルートを識別するためのモジュール1814、予想されるルートの温度特性を決定するためのモジュール1816、予想されるルートのうちの1つを選択するためのモジュール1818、選択されたルートの表示を記憶するためのモジュール1820、ポイントのグリッドを識別するためのモジュール1822、電子回路の温度特性を決定するためのモジュール1824、予想されるルートの距離を決定するためのモジュール1826、または分岐点を選択するためのモジュール1828のうちの1つもしくは複数を含み得る。
【０１０６】
予想されるルートを識別するためのモジュール1814は、ルーティングエリア内の2つ以上のターゲットポイントに関する情報を収集し、ターゲットポイント間のルーティングエリア内を横断し得る異なるルートを算出し、予想されるルートの表示を生成するように適合された回路および/またはプログラミング(たとえば、記憶媒体1804上に記憶された、予想されるルートを識別するためのモジュール1830)を含み得る。
【０１０７】
予想されるルートの温度特性を決定するためのモジュール1816は、予想されるルートに関する情報を獲得し、各予想されるルートに沿った様々なポイントの温度特性を算出し、温度特性の表示を生成するように適合された回路および/またはプログラミング(たとえば、記憶媒体1804上に記憶された、予想されるルートの温度特性を決定するためのモジュール1832)を含み得る。
【０１０８】
予想されるルートのうちの1つを選択するためのモジュール1818は、予想されるルートの温度特性に関する情報を獲得し、異なる温度特性の中から最良の温度特性を識別し、その最良の温度特性に関連するルートに関する情報を生成するように適合された回路および/またはプログラミング(たとえば、記憶媒体1804上に記憶された、予想されるルートのうちの1つを選択するためのモジュール1834)を含み得る。
【０１０９】
選択されたルートの表示を記憶するためのモジュール1820は、選択されたルートに関する情報を獲得し、選択されたルートを示す表示を生成し、その表示を含む信号を生成し、その信号をメモリデバイスに送るように適合された回路および/またはプログラミング(たとえば、記憶媒体1804上に記憶された、選択されたルートの表示を記憶するためのモジュール1836)を含み得る。
【０１１０】
ポイントのグリッドを識別するためのモジュール1822は、1つもしくは複数の回路のためのルーティングエリアに関する情報を獲得し、そのエリア内のポイントのグリッドを画定し、ポイントの画定されたグリッドの表示を生成するように適合された回路および/またはプログラミング(たとえば、記憶媒体1804上に記憶された、ポイントのグリッドを識別するためのモジュール1838)を含み得る。
【０１１１】
電子回路の温度特性を決定するためのモジュール1824は、電子回路に関する情報を獲得し、1つもしくは複数の動作条件の下で電子回路の温度特性を決定し、温度特性の表示を生成するように適合された回路および/またはプログラミング(たとえば、記憶媒体1804上に記憶された、電子回路の温度特性を決定するためのモジュール1840)を含み得る。
【０１１２】
予想されるルートの距離を決定するためのモジュール1826は、予想されるルートに関する情報を獲得し、予想されるルートの距離を算出し、予想されるルートの距離の表示を生成するように適合された回路および/またはプログラミング(たとえば、記憶媒体1804上に記憶された、予想されるルートの距離を決定するためのモジュール1842)を含み得る。
【０１１３】
分岐点を選択するためのモジュール1828は、ターゲットポイントに関する情報を獲得し、ターゲットポイント間の予想される分岐点を識別し、予想される分岐点のうちの1つを選択し、選択された分岐点を識別する表示を生成するように適合された回路および/またはプログラミング(たとえば、記憶媒体1804上に記憶された、分岐点を選択するためのモジュール1844)を含み得る。
【０１１４】
記憶媒体1804は、プログラミング、電子データ、データベース、またはその他のデジタル情報を記憶するための、1つもしくは複数のプロセッサ可読デバイスを表す場合がある。記憶媒体1804は、プログラミングを実行するときに処理回路1810によって操作されるデータを記憶するために使用されてもよい。記憶媒体1804は、可搬型または固定式記憶デバイスと、光記憶デバイスと、プログラミングの記憶、収容、および/または搬送が可能な様々なその他の媒体とを含む、処理回路1810によってアクセスすることが可能な任意の利用可能な媒体であってもよい。限定ではなく例として、記憶媒体1804は、磁気記憶デバイス(たとえば、ハードディスク、フロッピーディスク、磁気ストライプ)、光記憶媒体(たとえば、コンパクトディスク(CD)、デジタルバーサタイルディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、カード、スティック、キードライブ)、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、レジスタ、取外し可能なディスク、および/またはプログラミングを記憶するためのその他の媒体、ならびにそれらの任意の組合せなどのプロセッサ可読記憶媒体を含み得る。したがって、いくつかの実装形態では、記憶媒体は、非一時的(たとえば、有形の)記憶媒体であってよい。
【０１１５】
記憶媒体1804は、処理回路1810が記憶媒体1804から情報を読み取り、その記憶媒体に情報を書き込むことができるように処理回路1810に結合されてもよい。すなわち、記憶媒体1804が少なくとも処理回路1810によってアクセス可能であるように、記憶媒体1804は、処理回路1810に結合されてよく、記憶媒体1804が処理回路1810と一体である例、および/または記憶媒体1804が処理回路1810と分離している例を含む。
【０１１６】
記憶媒体1804によって記憶されているプログラミングは、処理回路1810によって実行されると、処理回路1810に、本明細書で説明する様々な機能および/または処理ステップのうちの1つもしくは複数を実行させる。たとえば、記憶媒体1804は、予想されるルートを識別するためのモジュール1830、予想されるルートの温度特性を決定するためのモジュール1832、予想されるルートのうちの1つを選択するためのモジュール1834、選択されたルートの表示を記憶するためのモジュール1836、ポイントのグリッドを識別するためのモジュール1838、電子回路の温度特性を決定するためのモジュール1840、予想されるルートの距離を決定するためのモジュール1842、または分岐点を選択するためのモジュール1844のうちの1つもしくは複数を含み得る。したがって、本開示の1つまたは複数の態様によれば、処理回路1810は、本明細書で説明する装置のいずれかもしくはすべてのためのプロセス、関数、ステップ、および/またはルーチンのうちのいずれかあるいはすべてを(記憶媒体1804と連携して)実行するように適合される。処理回路1810に関係して本明細書で使用する「適合される」という用語は、処理回路1810が、(記憶媒体1804と連携して)本明細書で説明する様々な特徴による特定のプロセス、機能、ステップおよび/またはルーチンを実行するように構成されること、用いられること、実装されること、ならびに/あるいはプログラムされることのうちの1つもしくは複数を行うことを指す場合がある。
【０１１７】
メモリデバイス1808は、1つまたは複数のメモリデバイスを表すことができ、上に記載したメモリ技術のうちのいずれかまたは任意の他の適切なメモリ技術を含み得る。メモリデバイス1808は、限定はしないが、装置1800の構成要素のうちの1つまたは複数によって使用される他の情報とともに、選択されたルートの表示などの回路設計情報を記憶することができる。メモリデバイス1808はまた、処理回路1810または装置1800の何らかの他の構成要素によって操作されるデータを記憶するために使用され得る。いくつかの実装形態では、メモリデバイス1808および記憶媒体1804は、共通のメモリ構成要素として実装される。
【０１１８】
ユーザインターフェース1806は、ユーザが装置1800と相互作用するのを可能にする機能を含む。たとえば、ユーザインターフェース1806は、1つまたは複数のユーザ出力デバイス(たとえば、ディスプレイデバイスなど)および1つまたは複数のユーザ入力デバイス(たとえば、キーボード、接触入力デバイスなど)とインターフェースすることができる。
【０１１９】
図19は、本開示のいくつかの態様による、ワイヤルーティングのためのプロセス1900を示す。プロセス1900は、回路設計ツールまたは何らかの他の適切な装置内に位置し得る処理回路1810(図18)内で行われ得る。別の態様では、プロセス1900は、図17に示す回路設計システム1700によって実装され得る。当然、本開示の範囲内の様々な態様では、プロセス1900は、ワイヤルーティング動作をサポートすることができる任意の適切な装置によって実装され得る。
【０１２０】
ブロック1902で、少なくとも1つの基板上でワイヤをルーティングするための予想されるルートを識別する。たとえば、少なくとも1つの基板上で画定されたポイントのグリッド内の第1のエンドポイントと第2のエンドポイントとの間のワイヤのための異なるルートを識別することができる。少なくとも1つの基板は、プリント回路基板の基板、集積回路ダイ基板、または何らかの他のタイプの基板を含み得る。
【０１２１】
ブロック1904で、ブロック1902で識別された予想されるルートの各々に関して、予想されるルートに関連する温度特性を決定する。たとえば、ブロック1904の動作は、対応する予想されるルートに沿ったポイントのセットの各ポイントに関して、そのポイントとワイヤのルーティングに関連する第1のエンドポイントおよび第2のエンドポイントとの間の温度相関を決定するステップを必要とし得る。
【０１２２】
いくつかの態様では、予想されるルートに関連する温度特性の決定は、ポイントのグリッドのポイントの各々に関して、そのポイントの温度特性を決定するステップと、それらのポイントの温度特性に基づいて、ポイントのグリッドに対応する空間相関行列を生成するステップと、空間相関行列に基づいて、相関余因子行列を生成すステップであって、相関余因子行列が、ポイントのグリッドのポイントの各々に関して、そのポイントの温度特性を、ワイヤのルーティングに関連する第1のエンドポイントおよび第2のエンドポイントの温度特性と相関させる、生成するステップと、各予想されるルートに関して、相関余因子行列に基づいて、予想されるルートと第1のエンドポイントおよび第2のエンドポイントとの間の温度相関を決定するステップとを必要とし得る。
【０１２３】
ブロック1906で、ブロック1904で決定された温度特性に基づいて、予想されるルートのうちの1つを選択する。いくつかの態様では、ルートの選択は、どの予想されるルートがワイヤのルーティングに関連する第1のエンドポイントおよび第2のエンドポイントとの最高温度相関を有するかを決定するステップを含む。いくつかの態様では、ルートの選択は、異なる予想されるルートに関連するポイントの複数の異なるセットのポイントのうちどのポイントのセットがワイヤのルーティングに関連する第1のエンドポイントおよび第2のエンドポイントとの最高集合温度相関を有するかを決定するステップを含む。いくつかの態様では、ルートの選択は、しきい温度を超える温度に関連する少なくとも1つの基板のエリアを通過する、予想されるルートのうちのいずれも拒否するステップを含む。いくつかの態様では、ルートの選択は、しきい温度を下回る温度に関連する少なくとも1つの基板のエリアを通過する、予想されるルートのうちのいずれも拒否するステップを含む。
【０１２４】
ブロック1908で、選択されたルートの表示をメモリデバイス内に記憶する。たとえば、この表示は、他のルーティングデータおよび回路設計に関連する他の回路データとともに記憶され得る。
【０１２５】
図20は、複数の予想されるルートの中から最も平滑な温度勾配に関連して選択されたルートに沿ってその上にワイヤを形成させた少なくとも1つの基板を作成するためのプロセス2000を示す。プロセス2000の1つまたは複数の動作は、回路設計ツールまたは何らかの他の適切な装置内に位置し得る処理回路1810(図18)内で行われ得る。別の態様では、処理2000の1つまたは複数の動作は、図17に示した回路設計システム1700によって実装され得る。当然、本開示の範囲内の様々な態様では、プロセス2000は、ワイヤルーティング動作をサポートすることができる任意の適切な装置によって実装され得る。
【０１２６】
ブロック2002で、少なくとも1つの基板上でワイヤをルーティングするための予想されるルートを識別する。いくつかの態様では、ブロック2002の動作は、ブロック1902の動作に対応し得る。また、上で論じたように、少なくとも1つの基板は、プリント回路基板の基板、集積回路ダイ基板、または何らかの他のタイプの基板を含み得る。
【０１２７】
ブロック2004で、ブロック2002で識別された予想されるルートの各々に関して、予想されるルートに関連する温度勾配を決定する。いくつかの態様では、温度勾配の決定は、対応する予想されるルートに沿ったポイントのセットの各ポイントに関して、そのポイントとワイヤのルーティングに関連する第1のエンドポイントおよび第2のエンドポイントとの温度相関を決定するステップを含み得る。
【０１２８】
いくつかの態様では、温度勾配の決定は、ポイントのグリッドのポイントの各々に関して、そのポイントの温度特性を決定するステップと、それらのポイントの温度特性に基づいて、ポイントのグリッドに対応する空間相関行列を生成するステップと、空間相関行列に基づいて、相関余因子行列を生成すステップであって、相関余因子行列が、ポイントのグリッドのポイントの各々に関して、そのポイントの温度特性を、ワイヤのルーティングに関連する第1のエンドポイントおよび第2のエンドポイントの温度特性と相関させる、生成するステップと、各予想されるルートに関して、相関余因子行列に基づいて、予想されるルートと第1のエンドポイントおよび第2のエンドポイントとの間の温度相関を決定するステップとを必要とし得る。
【０１２９】
ブロック2006で、予想されるルートのうちのどれが予想されるルートの最も平滑な温度勾配を有するかに基づいて、予想されるルートのうちの1つを選択する。いくつかの態様では、予想されるルートのうちの1つの選択は、どの予想されるルートがワイヤのルーティングに関連する第1のエンドポイントおよび第2のエンドポイントとの最高温度相関を有するかを決定するステップを含み得る。いくつかの態様では、予想されるルートのうちの1つの選択は、ポイントのどのセットがワイヤのルーティングに関連する第1のエンドポイントおよび第2のエンドポイントとの最高集合温度相関を有するかを決定するステップを含み得る。いくつかの態様では、予想されるルートのうちの1つの選択は、しきい温度を超える温度に関連する少なくとも1つの基板のエリアを通過する、予想されるルートのうちのいずれも拒否するステップを含み得る。いくつかの態様では、予想されるルートのうちの1つの選択は、しきい温度を下回る温度に関連する少なくとも1つの基板のエリアを通過する、予想されるルートのうちのいずれも拒否するステップを含み得る。
【０１３０】
いくつかの態様では、最も平滑な温度勾配は、選択されたルートに沿った第1のエンドポイントおよび第2のエンドポイントとの最高温度相関に対応し得る。いくつかの態様では、最も平滑な温度勾配は、選択されたルートに沿った温度特性の最高適合性に対応し得る。
【０１３１】
ブロック2008で、適切な製造動作は少なくとも1つの基板を提供(たとえば、形成または獲得)する。たとえば、作製システムは、集積回路ダイ用の少なくとも1つの基板を形成するか、またはプリント回路基板用の少なくとも1つの基板を形成し得る。
【０１３２】
ブロック2010で、適切な製造動作は、選択されたルートに従って、少なくとも1つの基板上にワイヤを形成する。たとえば、選択されたルートの経路を示す回路設計データに基づいて、作製システムは、集積回路ダイ用の少なくとも1つの基板上に、またはプリント回路基板用の少なくとも1つの基板上にワイヤを形成し得る。
【０１３３】
いくつかの態様では、選択されたルートは、しきい温度を超える温度に関連する少なくとも1つの基板の任意のエリアを横断しない。いくつかの態様では、選択されたルートは、しきい温度を下回る温度に関連する少なくとも1つの基板の任意のエリアを横断しない。
【０１３４】
いくつかの態様では、選択されたルートは、第1のエンドポイントと、第2のエンドポイントと、分岐点とを含むことが可能であり、それによって、分岐点は第1のエンドポイントと第1のエンドポイントとの間に位置する複数の予想される分岐点の中からの第1のエンドポイントおよび第1のエンドポイントとの最高温度相関と関連付けられる。
【０１３５】
いくつかの態様では、少なくとも1つの基板は、複数のルーティングレイヤ(たとえば、積層基板)を画定し得る。この場合、最も平滑な温度勾配は、複数のルーティングレイヤのうちの少なくとも2つを横断する、予想されるルートのうちの1つと関連付けられ得る。また、最も平滑は温度勾配は、複数のルーティングレイヤのうちの少なくとも2つの間でビアを横断する、予想されるルートのうちの1つと関連付けられ得る。さらに、最も平滑な温度勾配は、コースを反転する、予想されるルートのうちの1つと関連付けられ得る。
【０１３６】
図21は、本開示のいくつかの態様による、ワイヤルーティング方法の追加の態様を含むプロセス2100を示す。プロセス2100は、回路設計ツールまたは何らかの他の適切な装置内に位置し得る処理回路1810(図18)内で行われ得る。別の態様では、プロセス2100は、図17に示した回路設計システム1700によって実装され得る。当然、本開示の範囲内の様々な態様では、プロセス2100は、ワイヤルーティング動作をサポートすることができる任意の適切な装置によって実装され得る。
【０１３７】
オプションのブロック2102で、基板(たとえば、シングルレイヤ基板またはマルチレイヤ基板)上でワイヤをルーティングするためのエリアを示す少なくとも1つの信号を受信することができる。たとえば、装置の受信機(たとえば、バスインターフェース内の受信機回路または処理回路)は、ワイヤをルーティングするためのエリアを示す情報を含む(たとえば、メッセージを含む)信号を別の装置(たとえば、メモリデバイスまたは送信機回路)から受信することができる。
【０１３８】
オプションのブロック2104で、基板上のポイントのグリッドを識別することができる。たとえば、グリッドは指定されたルーティングエリア内で画定され得る。
【０１３９】
オプションのブロック2106で、ポイントのグリッドの近傍に位置することになる少なくとも1つの電子回路の少なくとも1つの温度特性を決定することができる。たとえば、電子回路の動作の間に、電子回路の近傍において期待される温度を決定するために、シミュレーションを行うことができるか、または測定を行うことができる。この場合、(たとえば、ブロック2120での)ポイントの温度特性の決定は、少なくとも1つの電子回路の少なくとも1つの温度特性に基づき得る。
【０１４０】
ブロック2108で、分岐点を選択することができる。たとえば、クロックツリーがルーティングされている場合、どの予想される分岐点が第1のエンドポイントおよび第2のエンドポイントとの最高温度相関を有するかに基づいて、第1のエンドポイントと第2のエンドポイントとの間の複数の予想される分岐点のうちの1つの分岐点を選択することができる。
【０１４１】
ブロック2110で、予想されるルートを識別する。いくつかの態様では、ブロック2110の動作は、上で論じた、ブロック1902の動作に対応し得る。
【０１４２】
オプションのブロック2112で、複数のルーティングレイヤのうちの少なくとも2つを横断する、少なくとも1つの予想されるルートを識別することができる。この場合、ルートの選択(たとえば、ブロック2122)は、複数のルーティングレイヤのうちの少なくとも2つを横断する各予想されるルートに重み係数を適用するステップを必要とし得る。
【０１４３】
オプションのブロック2114で、複数のルーティングレイヤのうちの少なくとも2つの間を、ビアを介して横断する少なくとも1つの予想されるルートを識別することができる。この場合、ルートの選択は、複数のルーティングレイヤのうちの少なくとも2つの間を、ビアを横断する各予想されるルートに重み係数を適用するステップを必要とし得る。
【０１４４】
オプションのブロック2116で、コースを反転する、少なくとも1つの予想されるルートを識別することができる。この場合、ルートの選択は、コースを反転する各予想されるルートに重み係数を適用するステップを必要とし得る。
【０１４５】
オプションのブロック2118で、予想されるルートの各々に関して、予想されるルートに関連する距離を識別することができる。この場合、ルートの選択は、予想されるルートに関連する距離に基づき得る。
【０１４６】
ブロック2120で、識別された予想されるルートの各々に関して、予想されるルートに関連する温度特性を決定する。いくつかの態様では、ブロック2120の動作は、上で論じた、ブロック1904の動作に対応し得る。
【０１４７】
ブロック2122で、ブロック2120において決定された温度特性に基づいて、予想されるルートのうちの1つを選択する。いくつかの態様では、ブロック2122の動作は、上で論じた、ブロック1906の動作に対応し得る。
【０１４８】
上記に鑑みて、本明細書の教示に従って実践されるルーティング方式は、有利には、従来のルーティング方式と比べてより効果的なルーティングを実現し得る。たとえば、米国特許第7,155,686号および第8,209,651号は、ワイヤが過剰な熱を生成する場合、ワイヤが移動される、かなり異なる方式を対象とする。また、米国特許第6,775,710号および第7,725,861号はルーティングのコンテキストで「温度」および「ホットスポット」という用語を使用するが、これらの特許は、実際に温度に基づいて何のルーティングも実行しない。
【０１４９】
図面に示す構成要素、ステップ、特徴および/または機能のうちの1つもしくは複数は、単一の構成要素、ステップ、特徴、もしくは機能に再構成および/または結合されてよく、あるいは、いくつかの構成要素、ステップもしくは機能に組み込まれてもよい。また、本明細書で開示する新規の特徴から逸脱することなく追加の要素、構成要素、ステップ、および/または機能が追加され得る。図に示した装置、デバイス、および/または構成要素は、本明細書で説明した方法、特徴、またはステップのうちの1つもしくは複数を実行するように構成され得る。本明細書に記載の新規なアルゴリズムも、効率的にソフトウェアに実装されてもよく、および/またはハードウェアに埋め込まれてもよい。
【０１５０】
開示した方法におけるステップの具体的な順序または階層は例示的なプロセスの例示であることを理解されたい。設計の選好に基づいて、方法におけるステップの具体的な順序または階層は再構成可能であることを理解されたい。添付の方法クレームは、種々のステップの要素を例示的な順序で提示したものであり、クレーム内で具体的に列挙されない限り、提示された具体的な順序または階層に限定されることを意図するものではない。また、本開示から逸脱することなく追加の要素、構成要素、ステップ、および/もしくは機能が追加されるか、または利用されないことがある。
【０１５１】
本開示の特徴について、いくつかの実装形態および図面に関して論じたが、本開示のすべての実装形態は、本明細書で論じた有利な特徴のうちの1つまたは複数を含み得る。言い換えれば、1つまたは複数の実装形態について特定の有利な特徴を有するものとし論じたが、そのような特徴のうちの1つまたは複数は、本明細書で論じた様々な実装形態のいずれかに従って使用されてもよい。同様に、例示的な実装形態について、デバイス実施形態、システム実施形態、または方法実装形態として本明細書で説明したが、そのような例示的な実装形態を様々なデバイス、システム、および方法において実施され得ることを理解されたい。
【０１５２】
また、少なくともいくつかの実装形態が、フローチャート、フロー図、構造図、またはブロック図として表されるプロセスとして説明されたことに留意されたい。フローチャートは動作を逐次プロセスとして説明する場合があるが、動作の多くを並列にまたは同時に実行することができる。さらに、動作の順序は、並べ替えられてもよい。プロセスは、その動作が完了したときに終了する。プロセスは、方法、機能、手順、サブルーチン、サブプログラムなどに対応してもよい。プロセスが関数に相当するとき、その終了は、関数が呼出し関数または主関数に戻ることに相当する。本明細書で説明する様々な方法は、機械可読媒体、コンピュータ可読媒体、および/またはプロセッサ可読記憶媒体内に記憶され、1つもしくは複数のプロセッサ、機械、および/またはデバイスによって実行されてもよいプログラミング(たとえば、命令および/またはデータ)によって、部分的にあるいは完全に実装されてもよい。
【０１５３】
さらに、本明細書で開示した実装形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの任意の組合せとして実装されてもよいことが当業者には諒解されよう。この互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、全般的にそれらの機能に関して上記で説明した。そのような機能がハードウェアとして実現されるかソフトウェアとして実装されるかは、特定の適用例およびシステム全体に課される設計制約に応じて決まる。
【０１５４】
本開示では、「例示的」という言葉は、「例、事例、または例示の働きをすること」を意味するために使用される。「例示的」として本明細書で説明した任意の実装形態または様態は、必ずしも本開示の他の態様よりも好ましいまたは有利であると解釈されるべきではない。同様に、「態様」という用語は、本開示のすべての態様が論じた特徴、利点、または動作モードを含むことを必要としない。「結合された」という用語は、本明細書において、2つの物体間の直接的または間接的な結合を指すために使用される。たとえば、物体Aが物体Bに物理的に接触し、物体Bが物体Cに接触する場合、物体Aと物体Cとは、互いに物理的に直接接触していなくても、それでも互いに結合するものと見なされてよい。たとえば、第1のダイがパッケージ内の第2のダイに物理的に直接接触していなくても、第1のダイは、第2のダイに結合されている可能性がある。「回路(circuit)」および「回路(circuitry)」という用語は広義に使用され、電子回路のタイプに関する制限なく、接続され、構成されると、本開示で説明した機能の性能を可能にする電気デバイスおよび導体のハードウェア実装と、プロセッサによって実行されると、本開示で説明した機能の性能を可能にする情報および命令のソフトウェア実装の両方を含むものとする。
【０１５５】
本明細書で使用される場合、「決定する」という用語は、多種多様なアクションを包含する。たとえば、「決定する」ことは、算出すること、計算すること、処理すること、導出すること、調査すること、ルックアップすること(たとえば、テーブル、データベース、または別のデータ構造をルックアップすること)、確認することなどを含み得る。さらに、「決定する」ことは、受信すること(たとえば、情報を受信すること)、アクセスすること(たとえば、メモリ内のデータにアクセスすること)などを含み得る。さらに、「決定する」ことは、解決すること、選択すること、選定すること、確立することなど含み得る。
【０１５６】
前述の説明は、いかなる当業者も本明細書で説明した様々な態様を実践できるようにするために与えられる。これらの態様に対する様々な変更形態は、当業者に容易に明らかになり、本明細書において規定される一般原理は、他の態様に適用することができる。したがって、特許請求の範囲は本明細書において示した態様に限定されることを意図するものではなく、特許請求の範囲の文言と整合するすべての範囲を許容するように意図されており、単数の要素への言及は、「唯一の」と明記されていない限り、「唯一の」ではなく、「1つまたは複数の」を意味することを意図している。特に別段の定めがない限り、「いくつか(some)」という用語は、1つまたは複数を指す。項目のリスト「のうちの少なくとも1つ」について言及する句は、単一のメンバーを含むこれらの項目の任意の組合せを指す。一例として、「a、b、またはcのうちの少なくとも1つ」は、a、b、c、aおよびb、aおよびc、bおよびc、ならびにa、bおよびcを含むことが意図される。当業者に知られているまたは後で当業者に知られることになる、本開示全体にわたって説明した様々な態様の要素の構造的および機能的なすべての均等物は、参照により本明細書に明確に組み込まれ、特許請求の範囲によって包含されることが意図される。さらに、本明細書で開示したものは、そのような開示が特許請求の範囲において明示的に列挙されているか否かにかかわらず、公共用に提供されることは意図していない。請求項のいかなる要素も、「のための手段」という句を使用して要素が明確に記載されていない限り、または方法クレームの場合に「のためのステップ」という句を使用して要素が記載されていない限り、米国特許法第112条第6項の規定に基づいて解釈されるべきではない。
【０１５７】
本明細書で説明し、添付の図面に示す例に関連する様々な特徴は、本開示の範囲から逸脱することなく、異なる例および実装形態で実装されてもよい。したがって、いくつかの特定の構成および配置が説明され、添付の図面において図示されてきたが、説明された実施形態への種々の他の追加および変更、ならびに実施形態からの削除が当業者には明らかになるので、そのような実施形態は例示にすぎず、本開示の範囲を制限するものではない。したがって、本開示の範囲は、以下の特許請求の範囲の文言、および法的均等物によってのみ決定される。
【符号の説明】
【０１５８】
100  ルートポイントのグリッド
102A  第1のエンドポイント
102B  第2のエンドポイント
104  第1のルーティングポイント
106A  第1の破線
106B  第2の破線
202A  第1のエリア
202B  第2のエリア
202C  第3のエリア
204A  第1のワイヤセグメント
204B  第2のワイヤセグメント
400  プロセス
500A  第1の段階
500B  第2の段階
500C  第3の段階
500D  第4の段階
502A  第1のエンドポイント
502B  第2のエンドポイント
504A  第1の中間点
504B  第2の中間点
506  第1のホットスポット
508A  第1の破線
508B  第2の破線
510A  ルート
510B  ルート
602  エリア
606  3次元温度行列、温度行列、行列
608  相関算出
610  相関行列
612  余因子算出
614  余因子行列
616  温度認識ルーティング
618  ルート
700  集積回路ダイ基板、基板
702  回路
704  第1の金属レイヤ
706  第2の金属レイヤ
708  遷移
800  プリント回路ダイ基板、基板
802  回路
804  第1の金属レイヤ
806  第1の金属レイヤ
808  ビア
902  ルート
904  遷移
906  第1のレイヤ
908  第2のレイヤ
1002  ルート
1004  ビア
1006  第1のレイヤ
1008  第2のレイヤ
1102  コース反転
1104  ホットスポット
1106  ルート
1200  相関行列
1202  ルート
1302  ルート
1402  分岐点
1404  第1の分岐
1406  第1のシンクポイント、ポイント
1408  第2の分岐
1410  第2のシンクポイント、ポイント
1412  ポイント
1414  等距離のマージライン、マージライン
1502  第1のグリッド
1504  第1のレール
1506  第2のグリッド
1508  第2のレール
1510  第1のソースポイント
1512  第1のシンクポイント
1514  第2のソースポイント
1516  第2のシンクポイント
1600  迷路ルーティングプロセス、プロセス
1700  回路設計システム、システム
1702  コンピュータ
1704  ユーザディスプレイデバイス
1706  ユーザ入力デバイス
1708  ネットワーク
1710  作製システム
1712  プロセッサ
1714  メモリ
1716  ルーティングプログラム
1718  シミュレーションモデル
1720  ルート設計
1800  装置
1802  外部バスインターフェース
1804  記憶媒体
1806  ユーザインターフェース
1808  メモリデバイス
1810  処理回路
1812  外部バス
1814  予想されるルートを識別するためのモジュール
1816  予想されるルートの温度特性を決定するためのモジュール
1818  予想されるルートのうちの1つを選択するためのモジュール
1820  選択されたルートの表示を記憶するためのモジュール
1822  ポイントのグリッドを識別するためのモジュール
1824  電子回路の温度特性を決定するためのモジュール
1826  予想されるルートの距離を決定するためのモジュール
1828  分岐点を選択するためのモジュール
1900  プロセス
2000  プロセス
2100  プロセス
【図１】
2017512331.tif 000007
【図２】
2017512331.tif 000008
【図３】
2017512331.tif 000009
【図４】
2017512331.tif 000010
【図５】
2017512331.tif 000011
【図６】
2017512331.tif 000012
【図７】
2017512331.tif 000013
【図８】
2017512331.tif 000014
【図９】
2017512331.tif 000015
【図１０】
2017512331.tif 000016
【図１１】
2017512331.tif 000017
【図１２】
2017512331.tif 000018
【図１３】
2017512331.tif 000019
【図１４】
2017512331.tif 000020
【図１５】
2017512331.tif 000021
【図１６】
2017512331.tif 000022
【図１７】
2017512331.tif 000023
【図１８】
2017512331.tif 000024
【図１９】
2017512331.tif 000025
【図２０】
2017512331.tif 000026
【図２１】
2017512331.tif 000027
【国際調査報告】
2017512331.tif 000028
2017512331.tif 000029