(57)【要約】  様々な特徴は、温度に基づいてワイヤをルーティングする回路設計方式に関する。一態様では、ワイヤのためのルートを使用するかどうかを決定するとき、予想されるルートに沿った時変温度特性を考慮に入れる。たとえば、ルートは、どのルートが「最も平滑な」温度勾配に関連するかに基づいて、予想される2次元(2D)ルートまたは3次元(3D)ルートのセットの中から選択され得る。本開示の他の態様は、特に、堆積マルチレイヤ基板のレイヤ内の3Dルーティングとともに使用するために、調整可能な探索ウィンドウ、レイヤ配線密度、最悪スキュー値、および抵抗容量(RC)結合特性を決定または活用することに関する。
2017506386.tif 000002
【特許請求の範囲】
【請求項１】
メモリデバイスと、
前記メモリデバイスに結合され、
少なくとも1つの基板を介してワイヤをルーティングするための複数の予想されるルートを識別することと、
前記予想されるルートの各々に関して、前記予想されるルートに関連する時変温度特性を決定することと、
前記予想されるルートの前記時変温度特性に基づいて、前記予想されるルートのうちの1つを選択することと、
前記選択されたルートの表示を前記メモリデバイス内に記憶することと
を行うように構成された処理回路と
を含む、ルーティング装置。
【請求項２】
前記基板はマルチレイヤ基板であり、
前記処理回路は、
マルチレイヤ基板の複数のレイヤを介して複数の予想される3次元(3D)ルートを識別することによって、前記複数の予想されるルートを識別することと、
前記予想される3Dルートの各々に関して、前記予想される3Dルートに関連する時変3D温度特性を決定することと、
前記予想される3Dルートの前記時変3D温度特性に基づいて、前記予想される3Dルートのうちの1つを選択することと、
前記選択された3Dルートの表示を前記メモリデバイス内に記憶することと
を行うようにさらに構成される
請求項1に記載の装置。
【請求項３】
前記処理回路は、
前記予想される3Dルートの各々に関して、各予想される3Dルートに関する時変3D温度勾配を決定することと、
最も平滑な時変3D温度勾配を有するルートを選択することによって、前記予想される3Dルートのうちの1つを選択することと
を行うようにさらに構成される、請求項2に記載の装置。
【請求項４】
前記処理回路は、
前記マルチレイヤ基板内の不利な温度位置を識別することと、
前記不利な温度位置を回避するルートを選択することによって、前記予想される3Dルートのうちの1つを選択することと
を行うようにさらに構成される、請求項2に記載の装置。
【請求項５】
前記処理回路は、
前記マルチレイヤ基板の少なくとも1つのレイヤの密度を決定することと、
前記マルチレイヤ基板の前記少なくとも1つのレイヤの前記密度に部分的に基づいて、前記予想されるルートを選択することによって、前記予想される3Dルートのうちの1つを選択することと
を行うようにさらに構成される、請求項2に記載の装置。
【請求項６】
前記処理回路は、
配線密度を決定することによって、前記マルチレイヤ基板の前記少なくとも1つのレイヤの前記密度を決定する
ようにさらに構成される、請求項5に記載の装置。
【請求項７】
前記処理回路は、
前記予想されるルートのうちの前記選択された1つの最悪スキューを決定することと、
前記最悪スキューが所定のスキューしきい値を超える場合、前記選択された予想されるルートを拒否することと
を行うようにさらに構成される、請求項1に記載の装置。
【請求項８】
前記基板は少なくとも1つのビアを備えたマルチレイヤ基板であり、
前記選択された予想されるルートは前記ビアを含む3Dルートであり、
前記処理回路は、
前記予想される3Dルート内への前記ビアの包括に少なくとも部分的に基づいて、前記選択された予想される3Dルートに関する前記最悪スキューを決定する
ようにさらに構成される、
請求項7に記載の装置。
【請求項９】
前記ワイヤの前記ルーティングは第1のエンドポイントと第2のエンドポイントとの間にあり、
前記処理回路は、
前記少なくとも1つの基板内の探索ウィンドウを識別することと、
前記第1のエンドポイントおよび前記第2のエンドポイントの位置に基づいて、前記探索ウィンドウを調整することと
を行うようにさらに構成される、
請求項1に記載の装置。
【請求項１０】
前記基板はマルチレイヤ基板であり、
前記処理回路は、
前記マルチレイヤ基板の複数のレイヤの各々の中の探索ウィンドウを識別することと、
前記複数のレイヤの異なるレイヤの前記探索ウィンドウを別個に調整することと
を行うようにさらに構成される、
請求項9に記載の装置。
【請求項１１】
前記処理回路は、
前記選択された予想されるルートと少なくとももう1つの配線ルートとの間の容量結合量を決定することと、
前記容量結合量が所定の結合しきい値を超える場合、前記選択された予想されるルートを拒否する
ことを行うようにさらに構成される、請求項1に記載の装置。
【請求項１２】
前記基板はマルチレイヤ基板であり、
前記処理回路は、
前記選択された予想されるルートと前記マルチレイヤ基板の隣接するレイヤ内の少なくとももう1つの配線ルートとの間の前記容量結合量を決定することと、
前記隣接するレイヤ内の前記少なくとももう1つの配線ルートとの前記容量結合量が前記所定の結合しきい値を超える場合、前記選択された予想されるルートを拒否することと
を行うようにさらに構成される、
請求項11に記載の装置。
【請求項１３】
前記基板はマルチレイヤ基板であり、前記予想されるルートは前記マルチレイヤ基板の前記レイヤ内の3Dルートであり、前記温度特性は3D温度特性であり、
前記処理回路は、
前記マルチレイヤ基板内のポイントの3Dグリッドを識別することと、
前記3D温度特性に少なくとも部分的に基づいて、ポイントの前記3Dグリッド内のルートを識別することによって、前記複数の予想される3Dルートを識別することであって、前記ワイヤの前記ルーティングが、ポイントの前記グリッド内の第1のエンドポイントと第2のエンドポイントとの間にある、識別することと
を行うようにさらに構成される、
請求項1に記載の装置。
【請求項１４】
前記処理回路は、
ポイントの前記3Dグリッドの前記ポイントの各々に関して、前記ポイントの温度特性を決定することと、
前記ポイントの前記温度特性に基づいて、ポイントの前記3Dグリッドに対応する空間相関行列を生成することと、
前記空間相関行列に基づいて、相関余因子行列を生成することであって、前記相関余因子行列が、ポイントの前記3Dグリッドの前記ポイントの各々に関して、前記ポイントの前記温度特性を前記第1のエンドポイントおよび前記第2のエンドポイントの前記温度特性と相関させる、生成することと、
各予想される3Dルートに関して、前記相関余因子行列に基づいて、前記予想される3Dルートと前記第1のエンドポイントおよび前記第2のエンドポイントとの間の温度相関を決定することと
によって、前記予想される3Dルートに関連する前記3D温度特性を決定するようにさらに構成される、請求項13に記載の装置。
【請求項１５】
少なくとも1つの基板を介してワイヤをルーティングするための複数の予想されるルートを識別するステップと、
前記予想されるルートの各々に関して、前記予想されるルートに関連する時変温度特性を決定するステップと、
前記予想されるルートの前記時変温度特性に基づいて、前記予想されるルートのうちの1つを選択するステップと、
前記選択されたルートの表示を記憶するステップと
を含む、ルーティング方法。
【請求項１６】
前記基板はマルチレイヤ基板であり、
前記複数の予想されるレイヤを識別するステップは、前記マルチレイヤ基板の複数のレイヤを介して複数の予想される3次元(3D)ルートを識別するステップを含み、
前記時変3D温度特性を決定するステップは、前記予想される3Dルートの各々に関して、前記予想される3Dルートに関連する時変3D温度特性を決定するステップを含み、
前記予想されるルートのうちの1つを選択するステップは、予想される3Dルートの前記時変3D温度特性に基づいて、予想される3Dルートを選択するステップを含み、
前記選択されたルートの表示を記憶するステップは、前記選択された3Dルートの表示をメモリデバイス内に記憶するステップを含む
請求項15に記載の方法。
【請求項１７】
前記予想される3Dルートの各々に関して、時変3D温度勾配を決定するステップと、
最も平滑な時変3D温度勾配を有するルートを選択することによって、前記予想される3Dルートのうちの1つを選択するステップと
をさらに含む、請求項16に記載の方法。
【請求項１８】
前記マルチレイヤ基板内の不利な温度位置を識別するステップと、
前記不利な温度位置を回避するルートを選択することによって、前記予想される3Dルートのうちの1つを選択するステップと
をさらに含む、請求項16に記載の方法。
【請求項１９】
前記マルチレイヤ基板の少なくとも1つのレイヤの密度を決定するステップと、
前記マルチレイヤ基板の前記少なくとも1つのレイヤの前記密度に部分的に基づいて、前記予想されるルートを選択することによって、前記予想される3Dルートのうちの1つを選択するステップと
をさらに含む、請求項16に記載の方法。
【請求項２０】
配線密度を決定することによって、前記マルチレイヤ基板の少なくとも1つのレイヤの前記密度を決定するステップ
をさらに含む、請求項19に記載の方法。
【請求項２１】
前記予想されるルートのうちの前記選択された1つの最悪スキューを決定するステップと、
前記最悪スキューが所定のスキューしきい値を超える場合、前記選択された予想されるルートを拒否するステップと
をさらに含む、請求項15に記載の方法。
【請求項２２】
前記基板は少なくとも1つのビアを備えたマルチレイヤ基板であり、前記選択された予想されるルートは、前記ビアを含む3Dルートであり、前記方法は、
前記予想される3Dルート内への前記ビアの包括に少なくとも部分的に基づいて、前記選択された予想される3Dルートに関する前記最悪スキューを決定するステップ
をさらに含む、請求項21に記載の方法。
【請求項２３】
前記ワイヤの前記ルーティングは第1のエンドポイントと第2のエンドポイントとの間であり、前記方法は、
前記少なくとも1つの基板内の探索ウィンドウを識別するステップと、
前記第1のエンドポイントおよび前記第2のエンドポイントの位置に基づいて、前記探索ウィンドウを調整するステップと
をさらに含む、請求項15に記載の方法。
【請求項２４】
前記基板はマルチレイヤ基板であり、前記方法は、
前記マルチレイヤ基板の複数のレイヤの各々の中の探索ウィンドウを識別するステップと、
前記複数のレイヤの異なるレイヤの前記探索ウィンドウを別個に調整するステップと
をさらに含む、請求項23記載の方法。
【請求項２５】
前記選択された予想されるルートと少なくとももう1つの配線ルートとの間の容量結合量を決定するステップと、
前記容量結合量が所定の結合しきい値を超える場合、前記選択された予想されるルートを拒否するステップと
をさらに含む、請求項15に記載の方法。
【請求項２６】
前記基板はマルチレイヤ基板であり、前記方法は、
前記選択された予想されるルートと前記マルチレイヤ基板の隣接するレイヤ内の少なくとももう1つの配線ルートとの間の前記容量結合量を決定するステップと、
前記隣接するレイヤ内の前記少なくとももう1つの配線ルートとの前記容量結合量が前記所定の結合しきい値を超える場合、前記選択された予想されるルートを拒否するステップと
をさらに含む、請求項25に記載の方法。
【請求項２７】
前記基板はマルチレイヤ基板であり、前記予想されるルートは前記マルチレイヤ基板の前記レイヤ内の3Dルートであり、前記温度特性は3D温度特性であり、前記方法は、
前記マルチレイヤ基板内のポイントの3Dグリッドを識別するステップと、
前記3D温度特性に少なくとも部分的に基づいて、ポイントの前記3Dグリッド内のルートを識別することによって、前記複数の予想される3Dルートを識別するステップであって、前記ワイヤの前記ルーティングが、ポイントの前記グリッド内の第1のエンドポイントと第2のエンドポイントとの間にある、識別するステップと
をさらに含む、請求項15に記載の方法。
【請求項２８】
前記予想される3Dルートに関連する前記3D温度特性を決定するステップが、
ポイントの前記3Dグリッドの前記ポイントの各々に関して、前記ポイントの温度特性を決定するステップと、
前記ポイントの前記温度特性に基づいて、ポイントの前記3Dグリッドに対応する空間相関行列を生成するステップと、
前記空間相関行列に基づいて、相関余因子行列を生成するステップであって、前記相関余因子行列が、ポイントの前記3Dグリッドの前記ポイントの各々に関して、前記ポイントの前記温度特性を前記第1のエンドポイントおよび前記第2のエンドポイントの前記温度特性と相関させる、生成するステップと、
各予想される3Dルートに関して、前記相関余因子行列に基づいて、前記予想される3Dルートと前記第1のエンドポイントおよび前記第2のエンドポイントとの間の温度相関を決定するステップと
を含む、請求項27に記載の方法。
【請求項２９】
少なくとも1つの基板を介してワイヤをルーティングするための複数の予想されるルートを識別するための手段と、
前記予想されるルートの各々に関して、前記予想されるルートに関連する時変温度特性を決定するための手段と、
前記予想されるルートの前記時変温度特性に基づいて、前記予想されるルートのうちの1つを選択するための手段と、
前記選択されたルートの表示を記憶するための手段と
を備える、ルーティング装置。
【請求項３０】
複数の予想されるルートの中から最も平滑な時変温度勾配に関連する、選択されたルートに沿ってその上にワイヤを形成した基板であって、
前記基板上で前記ワイヤをルーティングするための前記複数の予想されるルートを識別することと、
前記予想されるルートの各々に関して、前記予想されるルートに関連する時変温度勾配を決定することと、
前記予想されるルートのうちのどれが前記予想されるルートの最も平滑な時変温度勾配を有するかに基づいて、前記予想されるルートのうちの1つを選択することと、
前記基板を提供することと、
前記選択されたルートに従って、前記基板上に前記ワイヤを形成することと
を含むプロセスによって作成される、
基板。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その全体が参照により本明細書に組み込まれている、「Temperature-Based Wire Routing」に関する2014年2月7日に出願した米国特許出願第14/175,429号の一部継続出願である「Time-Variant Temperature-Based 2D and 3-D Wire Routing」に関する、2014年7月24日に出願した米国特許出願第14/340,411号に対する優先権を主張するものである。
【０００２】
以下は、一般に、回路設計に関し、より詳細には、それだけには限らないが、時変(time-variant)温度特性に基づいて2次元(2D)または3次元(3D)でワイヤをルーティングすることに関する。
【背景技術】
【０００３】
プリント回路基板(PCB)、集積回路(IC)、もしくは他の構造上またはそれらの中で、トレースまたは電気路と呼ばれることもある、ワイヤをルーティングするためのアルゴリズムは、それらのワイヤのためのルーティング要件を最も満たすルートを見出すことを試みる。一般に、ルーティング要件は、ワイヤが可能な限り短いことを規定する。このようにして、ワイヤを介した信号の伝送に関連する、電気消費および信号伝搬遅延は、少なくともある程度最小限に抑えられる。その上、より短いワイヤの使用は、より多くのワイヤが所与のエリア内でルーティングされることを可能にし、それによって、回路密度を改善する。
【０００４】
いくつかのアプリケーションでは、ルーティング要件は、複数のワイヤの長さが等しいかまたはほぼ等しいことを指定する。たとえば、クロックツリーを用いる、または平行ワイヤを用いる(たとえば、バスもしくは差分信号のために)タイミングクリティカルな(timing critical)アプリケーションでは、等しい長さのワイヤを使用することは、ワイヤの信号伝搬特性に整合することを容易にする。したがって、1つまたは複数のデータソースからの1つまたは信号は、ほぼ同時に異なるワイヤを介して複数のデータシンクに到達し、それによって、データシンクにおいて信号間で所望されるタイミング関係を維持することができる。言い換えれば、異なるワイヤを介して送信される信号の相対的タイミングスキューを最小限に保つために、整合するワイヤが用いられる。
【０００５】
タイミングスキューを低減するための他の技法が提案されている。たとえば、いくつかのシステムは、バッファを使用して、ワイヤに沿って遅延を制御し、それによって、タイミングスキューを低減する。他のシステムは、配線構造内に架橋を挿入して、タイミングスキューを低減させる。
【０００６】
しかしながら、実際には、上記の技法は、タイミングスキューをあまり低減することができないか、またはある欠陥を有する場合がある。たとえば、様々な動作条件および環境要因がワイヤを介した信号の伝搬遅延に影響を及ぼす場合がある。したがって、ワイヤの長さが整合する場合ですら、異なるワイヤの信号伝搬特性に整合することは困難な場合がある。また、バッファ挿入など、能動的な技法は、電力消費の著しい増大をもたらし得る。加えて、架橋リンク挿入はワイヤの長さを増大し得るため、これらのシナリオでは、電力消費の増大が同様に見られる場合がある。上記に鑑みて、改善された回路設計技法の必要が存在する。
【０００７】
上記の親出願は、少なくとも部分的に、様々な温度ベースの回路配線技法を提供することを対象とした。本出願は、少なくとも部分的に、追加のまたは代替の様々な温度ベースの回路配線技法を対象とする。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許第7,155,686号
【特許文献２】米国特許第8,209,651号
【特許文献３】米国特許第6,775,710号
【特許文献４】米国特許第7,725,861号
【発明の概要】
【課題を解決するための手段】
【０００９】
一態様では、ルーティング装置は、メモリデバイスと、メモリデバイスに結合され、少なくとも1つの基板を介してワイヤをルーティングするための複数の予想されるルートを識別することと、予想されるルートの各々に関して、予想されるルートに関連する時変温度特性を決定することと、予想されるルートの時変温度特性に基づいて、予想されるルートのうちの1つを選択することと、選択されたルートの表示をメモリデバイス内に記憶することとを行うように構成された処理回路とを含む。
【００１０】
別の態様では、ルーティング方法は、少なくとも1つの基板を介してワイヤをルーティングするための複数の予想されるルートを識別するステップと、予想されるルートの各々に関して、予想されるルートに関連する時変温度特性を決定するステップと、予想されるルートの時変温度特性に基づいて、予想されるルートのうちの1つを選択するステップと、選択されたルートの表示を記憶するステップとを含む。
【００１１】
さらに別の態様では、ルーティング装置は、少なくとも1つの基板を介してワイヤをルーティングするための複数の予想されるルートを識別するための手段と、予想されるルートの各々に関して、予想されるルートに関連する時変温度特性を決定するための手段と、予想されるルートの時変温度特性に基づいて、予想されるルートのうちの1つを選択するための手段と、選択されたルートの表示を記憶するための手段とを含む。
【００１２】
さらにまた別の態様では、複数の予想されるルートの中から最も平滑な時変温度勾配に関連して選択されたルートに沿ってその上にワイヤを形成した基板であって、その基板上でワイヤをルーティングするための複数の予想されるルートを識別することと、予想されるルートの各々に関して、予想されるルートに関連する時変温度勾配を決定することと、予想されるルートのうちのどれが予想されるルートの最も平滑な時変温度勾配を有するかに基づいて、予想されるルートのうちの1つを選択することと、基板を提供することと、選択されたルートに従って、基板上にワイヤを形成することとを含むプロセスによって作成される基板が提供される。
【図面の簡単な説明】
【００１３】
【図１】本開示のいくつかの態様による、温度に基づくルート選択の一例を示す図である。
【図２】温度誘導スキューの一例を示す図である。
【図３】温度誘導スキューの一例を示す図である。
【図４】本開示のいくつかの態様による、ワイヤルーティング方法の一例を示すフローチャートである。
【図５】本開示のいくつかの態様による、温度余因子行列(temperature cofactor matrix)に基づくルート選択の一例を示す図である。
【図６】本開示のいくつかの態様による、余因子行列を生成して、使用する一例を示す図である。
【図７】本開示のいくつかの態様による、基板の一例を示す図である。
【図８】本開示のいくつかの態様による、基板の別の例を示す図である。
【図９】本開示のいくつかの態様による、レイヤベースの重み係数が適用され得るシナリオの一例を示す図である。
【図１０】本開示のいくつかの態様による、ビアベースの重み係数が適用され得るシナリオの一例を示す図である。
【図１１】本開示のいくつかの態様による、コース反転(course reversal)ベースの重み係数が適用され得るシナリオの一例を示す図である。
【図１２】本開示のいくつかの態様による、温度相関を考慮したルート判定の一例を示す図である。
【図１３】本開示のいくつかの態様による、ルート距離を考慮したルート判定の一例を示す図である。
【図１４】本開示のいくつかの態様に従ってルーティングされたクロックツリーの一例を示す図である。
【図１５】本開示のいくつかの態様に従ってルーティングされた差動対の一例を示す図である。
【図１６】本開示のいくつかの態様による、迷路ルーティング方法の一例を示すフローチャートである。
【図１７】本開示の1つまたは複数の態様がアプリケーションを見出し得る回路設計システムの一例を示すブロック図である。
【図１８】本開示のいくつかの態様による、ルーティング機能を実現するように構成された装置の選択構成要素を示すブロック図である。
【図１９】本開示のいくつかの態様による、ワイヤルーティング方法を示すフローチャートである。
【図２０】本開示のいくつかの態様による、その上にワイヤを形成した基板を作成するためのプロセスを示すフローチャートである。
【図２１】本開示のいくつかの態様による、ワイヤルーティング方法の追加の態様を示すフローチャートである。
【図２２】動的に調整可能な探索ウィンドウおよび最悪スキュー推定を用いた2D時変ルーティングを対象とするワイヤルーティング方法を示すフローチャートである。
【図２３】2D時変ルーティングとともに使用するための動的に調整可能な探索ウィンドウを示す図である。
【図２４】抵抗容量(RC)結合評価を用いた2D時変ルーティングを対象とするワイヤルーティング方法を示すフローチャートである。
【図２５】2D時変ワイヤルーティングに適用可能なRC結合要件を示す図である。
【図２６】本開示のいくつかの態様による、3次元(3D)ワイヤルーティング方法を要約したフローチャートである。
【図２７】マルチレイヤ基板内の3Dグリッド内の予想される3D配線ルートを示す図である。
【図２８】本開示のいくつかの態様による、3D配線例のための余因子行列を生成して、使用する一例を示す図である。
【図２９】動的に調整可能な探索ウィンドウおよび最悪スキュー推定を用いた3D時変ルーティングを対象とするワイヤルーティング方法を示すフローチャートである。
【図３０】3D時変ルーティングとともに使用するための動的に調整可能な探索ウィンドウを示す図である。
【図３１】RC結合およびレイヤワイヤ密度評価を用いた3D時変ルーティングを対象とするワイヤルーティング方法を示すフローチャートである。
【図３２】3D時変ワイヤルーティングに適用可能なRC結合要件およびワイヤ密度要件を示す図である。
【図３３】本開示の1つまたは複数の態様がアプリケーションを見出し得る3D配線するように適合された例示的な回路設計システムの一例を示すブロック図である。
【図３４】本開示のいくつかの態様による、3Dルーティング機能および他の機能を実現するように構成された装置の選択された構成要素を示すブロック図である。
【図３５】本開示のいくつかの態様による、時変ワイヤルーティング方法を示すフローチャートである。
【図３６】本開示のいくつかの態様による、3D時変ワイヤルーティング方法を示すフローチャートである。
【図３７】本開示のさらなる態様による、追加の時変ワイヤルーティング方法を示すフローチャートである。
【図３８】本開示のいくつかのさらなる態様による、その上にワイヤを形成した基板を作成するためのプロセスを示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下に記載される詳細な説明は、添付の図面とともに、様々な構成を説明することを意図しており、本明細書で説明する概念を実践することができる唯一の構成を表すことは意図していない。詳細な説明は、様々な概念の完全な理解を与えるために具体的な詳細を含む。しかしながら、これらの概念がこれらの具体的な詳細なしに実践され得ることは当業者に明らかであろう。場合によっては、そのような概念を曖昧にすることを回避するために、よく知られている構造および構成要素がブロック図の形態で示されている。
【００１５】
図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に示されるように定義され得る。
【００３３】
【数１】
2017506386.tif 000003
【００３４】
ここで、cov(i,j)は、式3に示されたように、ノード間の共分散行列である。
【００３５】
【数２】
2017506386.tif 000004
【００３６】
式1で参照され、式4に示されたパラメータσiおよびσjは、それぞれ、ノードniおよびnjに関する標準偏差である。
【００３７】
【数３】
2017506386.tif 000005
【００３８】
最終的に、それぞれ、ノードniおよびnjに関する平均温度は式5に示される。
【００３９】
【数４】
2017506386.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に対応する。行列606は「3次元行列」と呼ばれるが、これは行列606が値のN個の2Dアレイのセットを含むためであり、この場合、Nはノードの数であることに留意されたい。しかしながら、これは対応する基板が複数のレイヤを有すること、またはノードの3Dグリッドが活用されることを暗示しない。ノードの3Dグリッドが画定および活用されるマルチレイヤ基板の、図26以下の中で提供される詳細な例を参照されたい。
【００５６】
相関算出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つの例を示す。追加の例については、図26以下を参照して下でより詳細に説明する。
【００６１】
図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で参照された様々なレイヤは、いくつかのシナリオでは、積層基板であり得る。したがって、本明細書で教示するルートの識別は、いくつかの実装形態では、複数の積層基板上のルートを識別することを必要とし得る。追加の3Dの例については、図26以下を参照して下でより詳細に説明する。
【００７４】
本開示は、一態様では、温度要件とルートの長さ要件とを平衡させることによって、ルートを選択することに関する。たとえば、代替のルートがより良好な温度特性を有する場合、代替のルートよりも短いルートは選択され得ない。反対に、代替のルートの長さが代替のルートよりも長い場合、そのルートよりも良好な温度特性を有するルートは選択され得ない。したがって、(たとえば、最低スキューを有するルート、別のルートのスキューと最も整合するスキューを提供するルート、最低電力消費を有するルートなど)最良のルートの決定は、温度相関と距離要因の両方に基づき得る。
【００７５】
図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号はルーティングのコンテキストで「温度」および「ホットスポット」という用語を使用するが、これらの特許は、実際に温度に基づいて何のルーティングも実行しない。
【０１３９】
2D配線実装形態に適用可能な追加の例示的な特徴
図22〜図24を参照すると、次に2D配線実装形態に適用可能である追加のまたは代替の特徴を説明する。これらの特徴のうちの少なくともいくつかは、上で説明した手順を活用するか、または組み込んでいる。簡潔のために、これらの手順は、いずれかの差異を強調する以外、再度詳細に説明されない。
【０１４０】
図22は、ルーティングが、最悪スキュー推定を考慮に入れ、動的探索ウィンドウを活用する、適切に装備されたルーティングシステムによって実行され得る例示的な2Dルーティング手順2200を示す。この例では、何らかの極端な、または、場合によっては、不利な温度位置の位置(たとえば、ホットスポットまたはコールドスポット)など、他の要因を考慮に入れることもできる。2202で、ルーティングシステムは、基板層内のN個のノードの2Dグリッドを指定し、その2Dグリッドをモデル化して、N個の時変温度シーケンスのセットを生成する。上で説明した手順を使用して、ノードのグリッドを生成し、時変温度シーケンスを生成することができる。たとえば、上で示し、説明した式1を参照されたい。2204で、ルーティングシステムは、時変温度シーケンスに基づいて、ノードの中から共分散行列を決定する。たとえば、上で示し、説明した式2〜式5を参照されたい。2206で、ルーティングシステムは、2Dグリッド内の動的に調整可能な探索ウィンドウを指定し、そのグリッドを介した配線ルートのためのエンドポイントの対を選択する。
【０１４１】
例示的な動的探索ウィンドウを図23に示す。第1の2Dグリッド2300は、エンドポイント2302および2304を指定した。動的探索ウィンドウ2306は、エンドポイントのそれぞれの位置と、その間の絶対距離2308とに基づいて設定される。この例では、相関余因子を生成するために必要とされる計算量を低減させるために、探索ウィンドウ2306はグリッド全体よりも小さくなるように設定される。いくつかの例では、ルーティングシステムは、エンドポイント間の絶対距離をまず算出し、次いで、その距離を使用して、動的ウィンドウ2306の好ましいエリアの決定を促す。次いで、それらのポイントを包含し、(ホットスポットなどを回避するために必要とされる可能性がある何らかの逆方向バックトラッキングに対応するように)利用可能な場合、ルーティングのために追加の水平空間および垂直空間を提供するために、エンドポイントの位置に基づいてウィンドウ2306の垂直境界および水平境界が設定される。図23はまた、エンドポイント2310および2312が2Dグリッド2314の境界に位置する例を提供する。したがって、グリッドのサイズを考慮すると、エンドポイント間の絶対距離2316はその最高であり、したがって、生じる動的ウィンドウ2318は、示すように、グリッド全体を包含する。図23の例は矩形ウィンドウを示すが、ウィンドウのエリアをさらに低減させ、したがって、計算上の負担も低減させるために、切頭角(truncated corners)を有するウィンドウなど、他のウィンドウ形状を用いることも可能であることを理解されたい。
【０１４２】
図22に戻ると、探索ウィンドウが指定されると、ルーティングシステムは、探索ウィンドウ内のノードに対応する共分散行列の係数に基づいて、2208で、相関余因子を決定する。上で説明したように、ターゲットi,jに対するエリアPの相関余因子(CCp)は、2つの対応する係数に基づいて定義され得る。相関余因子が計数の積に基づくこの例では、CCp = cov(i,p) * cov(p,j)である。2210で、ルーティングシステムは、探索ウィンドウ内に位置するグリッドを介して予想されるルートを識別または選択し、このルートは、相関余因子と何らかの不利な温度点(たとえば、ホットスポット/コールドスポット)の位置とに基づくエンドポイント間の最高温度相関を有する。ホットスポットなどを考慮に入れながら、2Dグリッド内の1つまたは複数の予想されるルートを識別するための例示的な手順に関しては、上の図5以下の説明を参照されたい。
【０１４３】
2212で、ルーティングシステムは、ベースライン単位長さ抵抗値と、所定の係数と、予想されるルートに関する時変温度シーケンスとに基づいて、2D単位長さ抵抗値(unit-length resistance value)を決定する。この点について、2Dサンプルの場合、単位長さ抵抗を、以下のように、温度勾配の関数として表すことができる。
runit(x,y,t) = ρ0・(1+β・T(x,y,t))      (6)
式中、ρ0は0℃における単位長さ抵抗であり、x,yは2D座標であり、βは抵抗の所定の温度係数(1/℃)である。2つの係数ρ0およびβは、場合によっては、従来の技法を使用して、測定または取得され得る。埋め込み経路d(Mti, Sk)が固定されるとき、抵抗は次のように算出され得る:
R(Mti, Sk) = Σ∀e∈d(Mti, Sk))E[runit(e)]・len(e)      (7)
式中、E[runit(x,y)]は、エッジe(Mti, Sk)内の抵抗の平均値であり、dは適用可能な距離である。
【０１４４】
2214で、ルーティングシステムは、抵抗値から最悪スキューを決定し、最悪スキューが大きすぎる場合、または、場合によっては、許容できない場合、予想されるルートを拒否する。たとえば、最悪スキューは、特定の回路アプリケーションに関する大きすぎるスキューを表す所定のしきい値に対して比較され得る。この点について、ソースノードs0からシンクsiまでの遅延D(s0_si)は、ノード電圧(波形)がソースノード内の衝撃励起の下でピーク電圧の100%を伝えるために必要とされる時間として定義され得る。所与のiに関して、第j番目のルーティング構成Confijのソースからシンクまでの遅延を取得した後、Confijに対応する最悪スキューは、次のように算出または推定され得る。
【０１４５】
【数５】
2017506386.tif 000007
【０１４６】
述べたように、予想されるルートに関する最悪スキューはしきい値に対して比較され、大きすぎる場合、拒否され得る。ルートが拒否された場合、処理は(図の破線によって示すように)ブロック2210に戻り、スキュー問題を回避する代替のルートを識別することができる。代替で、識別された予想されるルートが許容される最悪スキューを有することがすでに保証されるように、最悪スキューは、システムが可能なルートを位置付ける(mapping out)間に、ブロック2210の手順の間に評価され、明らかにされ得る。したがって、図22および図23は、調整可能なウィンドウと最悪スキュー決定の両方が活用される一例を示す。他の例では、これらの特徴のうちの1つだけが活用され、他の特徴が活用され、または、これらの特徴のいずれも活用されない。
【０１４７】
図24は、ルーティングがRC結合を考慮に入れる、適切に装備されたルーティングシステムによって実行され得る例示的なルーティング手順2400を示す。前の例と同様、極端な温度位置の位置など、他の要因を考慮に入れることができる。2402で、ルーティングシステムは、基板層内のN個のノードの2Dグリッドを指定し、その2Dグリッドをモデル化して、N個の時変温度シーケンスのセットを生成する。2404で、ルーティングシステムは、時変温度シーケンスに基づいて、ノードの中から共分散行列を決定する。2406で、ルーティングシステムは、(動的であり得る)2Dグリッド内の探索ウィンドウを指定し、少なくとももう1つの配線ルートを有する基板に追加するためにグリッドを介して新しい配線ルートのためのエンドポイントの対を選択する。図2408で、ルーティングシステムは、探索ウィンドウ内のノードに対応する共分散行列の係数に基づいて、相関余因子を決定する。2410で、ルーティングシステムは、探索ウィンドウ内に位置するグリッドを介して、新しいラインに関して予想されるルートを識別または選択し、このルートは、相関余因子、および何らかの極端な温度点の位置などに基づくエンドポイント間の最高温度相関を有する。2412で、ルーティングデバイスは、予想される新しい2Dルートと他の2D配線ルートとの間のRC結合量を決定する。
【０１４８】
図25は、新しいルート2502がエンドポイント2506をエンドポイント2508に接続することを目的とする、2Dグリッド2504内の配線ルート2500と予想される新しいルート2502との間の例示的なRC結合を示す。この例では、予想される新しいルート2502はその長さの一部分にわたって、他の配線ルート2500と平行して位置し、矢印2510によって概して示されるRC結合をトリガする。
【０１４９】
図24を参照すると、ルーティングデバイスは、2414で、場合によっては、経路の隣接部分間の距離、ならびにレイヤの材料を考慮に入れることができる従来のRC結合評価または推定技法を使用して、予想される新しいルートと他のラインとの間のRC結合量を決定することができる。2414で、RC結合量が大きすぎる場合、またはさもなければ、許容できない場合、ルーティングシステムは予想されるルートを拒否する。たとえば、予想されるRC結合量は、特定の回路アプリケーションにとって大きすぎる量の結合(すなわち、新しいラインに沿った信号の伝搬に過度に影響し、許容できないスキューまたは他の所望されない影響を引き起こす結合)を表す所定のしきい値に対して比較され得る。予想されるルートが拒否される場合、処理は、次いで、(破線によって示す)ブロック2410に戻り、たとえば、他のワイヤに隣接して位置しないルートに従うことによって、RC結合問題を回避する代替の予想されるルートを識別することができる。代替で、ブロック2410で識別された、予想されるルートが他のワイヤと許容される少量の結合を有することがすでに保証されるように、RC結合は、システムが可能なルートをマッピングする間に、ブロック2410の手順の間に評価され、明らかにされ得る。
【０１５０】
今説明した2D特徴のうちのいくつかは、概して、マルチレイヤ(すなわち、3D)実装形態にも適用可能である。以下のセクションでは、マルチレイヤ3D例に関して、これらの特徴および他の特徴の例を説明する。
【０１５１】
3D実装形態に適用可能な追加の例示的な特徴
図26〜図32を参照すると、次に3D実装形態に適用可能である追加のまたは代替の特徴を説明する。これらの特徴のうちの少なくともいくつかは、上ですでに説明した手順を活用するか、または組み込んでいる。簡潔のために、これらの手順は、いずれかの差異を強調する以外、再度詳細に説明されない。
【０１５２】
図26は、適切に装備されたルーティングシステムによって実行され得る追加の3D時変(すなわち、時間的可変)ルーティング特徴の概要を提供する。2602で、ルーティングシステムは、たとえば、上で論じたような、確率プロセスモデル化またはランダムプロセスモデル化を使用して、マルチレイヤ基板に関する3D時変空間相関マップを生成する(確率は、ランダムに決定されること、または統計的に解析され得るが、正確に予測され得ないランダムな確率パターンを有することを意味する)。2604で、ルーティングシステムは、3D空間相関マップに基づいて、マルチレイヤ基板に関する相関余因子を決定する。下でいくつかの例について説明する。2606で、ルーティングシステムは、相関余因子と、最悪スキュー、層密度、RC結合、不利な温度位置(たとえば、ホットスポット位置)、ビア位置、調整可能な動的ウィンドウ、およびレイヤベースの重み係数など、他の要因とに基づいて、マルチレイヤ基板内の好ましいまたは最適な配線経路(たとえば、「最も平滑な」ルート)を決定する。これらの要因のうちのいくつかの使用の例示的な例を下で提供する。2608で、ルーティングシステムは、次いで、ルーティングが完了すると、デバイス作製を許可するために、マルチレイヤ基板内の他の経路のための他の配線ルートを決定する。この点について、典型的なICは、その各々がブロック2606の様々な要因を考慮に入れることによってルーティングされ得る、数百または数千の配線経路を有し得る。
【０１５３】
図27は、この例では、3つのレイヤ2702、2704、および2706を有する例示的な3Dマルチレイヤ積層基板2700を示す。異なるレイヤ上のエンドポイント2710および2712の対の間で3D配線経路2708が接続される。示すように、配線経路は、様々なホットスポット/コールドスポット2714を回避しながら、3つのレイヤの各々の部分を横断する。あるレイヤから別のレイヤへの接続は、レイヤ間に伝導経路を提供するビア(別個に図示されず)を介して配線経路をルーティングすることによって達成される。
【０１５４】
図28は、3D実装形態のための余因子行列を生成し、使用する一例を示す。この3D実装形態のいくつかの態様は、図6の2D実装形態の対応する態様と同じであるか、または同様であり、したがって、再度詳細に説明しない。すでに説明したように、高温度変動は、配線ルートに関連する遅延およびスキューに著しい影響を及ぼし得る。2D温度認識ルーティングと同様、3D温度認識ルーティングは、各ノード間の遅延を評価し、スキューおよびスキュー変動をやはり低減させるために、距離と温度相関の両方を考慮することができる。経時的な動的温度差は異なるスキューを生成するため、3Dルーティング方式は、より安定したスキュー変動の保証または達成を試みる際に、温度の視点から、最も平滑なルーティング経路を識別することができる。すなわち、3Dルーティング方式は、3D空間相関および3D時間相関とともに、時変温度差を考慮する。3D時変温度マップを解析することによって、3D温度相関マップが次いで生成される。このようにして、3Dルーティング方式は、最高相関余因数値を有するマルチレイヤルートを識別し、それによって、より良好な熱耐性を有するルートを識別することができる。加えて、温度相関マップ内で識別された何らかのホットスポット/コールドスポットエリアを回避することによって、3Dルーティング方式はスキューをさらに低減させることができる。
【０１５５】
全体的な回路設計プロセス2800は、回路の動作が熱を生じ得る、PCB、IC、または何らかの他の適切なマルチレイヤ構造2803のエリア2802内の1つもしくは複数の回路2801を位置特定することによって始まる。図28の例では、回路2801は、マルチレイヤ構造2803のすべてのレイヤにわたって潜在的に延長するとして示されている。この3D例では、エリア2802は基板内の体積に対応し得ることに留意されたい。「エリア」という用語は、上の説明に一致するように使用される。グリッドパターンは、回路2801内、かつ回路2801の周囲に延長する、マルチレイヤ構造2803のエリア2802内に示されている。このパターンは、基板自体の実際の構成要素または特徴ではないことを理解されたい。むしろ、このパターンは、ルーティングシステムのソフトウェアがルーティング経路を決定する際に使用するために構造をどのように再分割することができるかを示す。グリッドは、概して、任意のサイズ、形状、および粒度のものであってよい。実際には、図28に示すよりもさらに細かい粒度を有するグリッドが用いられる。代わりに、非矩形グリッドを潜在的に使用することができるが、矩形グリッドは、特に、マンハッタンルーティングが用いられるとき、処理のためにより便利である。実際のマルチレイヤ構造2803は示された部分よりもさらに大きい場合があることをやはり理解されたい。たとえば、エリア2802は、作製されるIC全体の1つの比較的小さい部分だけを表す場合がある。単一の回路2801だけがエリア2802内に示されているが、エリア内に複数の回路を提供することが可能である。
【０１５６】
次いで、エリア2802に関して3D空間温度解析2804が実行される。上の2Dの例と同様、これは、ある時間期間にわたってエリア2802の異なるポイントにおける温度を決定すること(たとえば、推定すること)を必要とし得る。説明したように、考慮中の回路エリア内に位置する回路の温度特性に関する情報、およびこれらの回路がどのように構成されているかに関する情報を有するシミュレーションプログラムは、回路が動作中であるとき、エリア2802内の様々なポイントにおいて予想される温度を推定することができる。エリア2802内の回路の近傍にある時変温度をモデル化するために、前述のグリッドに、測定または熱シミュレーションによって取得され得る温度範囲を割り当てることができる。
【０１５７】
特定の非限定的な例として、3D温度解析2804は、マイクロアーキテクチャレベルの電力および温度シミュレーションを必要とし得る。エリア2802は、マルチレイヤ基板のレイヤkごとにいくつかのノードを有する均一のグリッドに分割される。一般に、レイヤkに関して、NK個のノードが存在することになる。したがって、マルチレイヤエリア2802内に
【０１５８】
【数６】
2017506386.tif 000008
【０１５９】
個のノードが存在し、式中、Kはレイヤの総数である。温度解析2804によって生成された温度シーケンスを次のように表すことができる。
【０１６０】
【数７】
2017506386.tif 000009
【０１６１】
図28は、時間インスタンスt1から
【０１６２】
【数８】
2017506386.tif 000010
【０１６３】
に対する温度行列2806をもたらす簡略化された例を示す。非限定的な例では、温度行列2806は式9に対応する。相関算出2808は、マルチレイヤ基板のK個の層に基づいて、相関行列2810を生成するための入力として3D温度行列2806を使用する。非限定的な例では、相関算出2808は、
【０１６４】
【数９】
2017506386.tif 000011
【０１６５】
によって表される(サイズ
【０１６６】
【数１０】
2017506386.tif 000012
【０１６７】
の)温度相関行列または共分散行列を生成し、
式中、
【０１６８】
【数１１】
2017506386.tif 000013
【０１６９】
はノード間の共分散行列であり、式中、
【０１７０】
【数１２】
2017506386.tif 000014
【０１７１】
は、ノードniおよびnjに関する標準偏差である。この例では、図28の3D相関行列2810は、したがって、式10に対応することになる。
【０１７２】
余因子算出2812は、ルートのために指定された3Dターゲットポイント(たとえば、マルチレイヤ基板内のエンドポイント)に関連する(K個のレイヤに基づく)余因子行列2814を生成するための入力として3D相関行列2810を使用する。上の2Dの例にあるように、高い相関余因子を有する3Dグリッド内のポイントは、両方のルーティングターゲットポイントとの高い相関を表す。いくつかの実装形態では、相関余因子は、2つのターゲットポイントに関連する係数の積に基づく: CCpk = cov(ik,pk) * cov(pk,jk)であり、式中、pkは、pがk個のレイヤのうちのいずれか1つの中にあり得ることを示す。他の実装形態では、相関余因子は係数の和に基づく、CCpk = cov(ik,p) + cov(p,jk)。3Dグリッド内の2つのターゲットポイントを有する3Dグリッド内のポイントの相関を示すのに役立つ他のアルゴリズムまたは手順も同様に使用され得る。
【０１７３】
その後、3D温度認識ルーティング2816は、最高相関値を有する3Dルート2818を識別するための入力として余因子行列2814を使用する。たとえば、3D温度認識ルーティング2816は、マルチレイヤ基板内の2つのターゲットポイント間の各予想される3Dルートに関する相関値を算出することができる。2Dの事例同様、ルートに関する相関値は、そのルートに沿った3Dグリッドポイントに関連する個々の余因子値の関数である。たとえば、その3Dルートに関する相関値を生成するために、個々の余因子値は、一緒に乗算され、一緒に加算され、または何らかの他の方法で演算され得る。設計目的に応じて、(たとえば、3D迷路ルーティングなど)様々な3D実装形態で様々なタイプの3Dルーティングアルゴリズムを用いることができる。温度認識ルーティングは、マンハッタンルーティング規則または他のルーティング規則を用いることができる。したがって、ルーティングは「右側」ルーティング選定に制限されなくてよく、または画定されたルーティングウィンドウ内に留まるように制限されなくてもよい。したがって、これが3Dルートのために優れたスキュー特性をもたらす3Dシナリオでは、コース反転(たとえば、バックトラッキング)を用いることもできる。その上、3D温度認識ルーティング2816は、RC結合、最悪スキュー、層密度、重み係数など、図26に記載したルーティング係数のうちの1つまたは複数を考慮に入れることができる。
【０１７４】
重み係数が考慮される限り、図9〜図11を参照して上で説明したように、最終的なルーティング判定は、様々な重み係数を使用して物理的要因を考慮に入れることができる。重み係数をあるレイヤから別のレイヤへの遷移、ビアの使用、コース反転、または他の物理的要因と関連付けることができる。これらの物理的要因は、3Dルートに関連する信号スキュー、電力消費、または何らかの他の動作パラメータに影響を及ぼし得る。したがって、2816で、1つまたは複数の重み係数を使用して、そのような影響を定量化することができる。(たとえば、最低スキューを有する3Dルート、別の3Dルートのスキューと最も整合するスキューを提供する3Dルート、最低電力消費を有する3Dルートなど)好ましい、または最適な3Dルートの決定は、温度相関と他の重み係数の平衡に基づき得る。様々な例について、図9〜図11およびその説明を参照されたい。
【０１７５】
図29は、3Dルーティングが最悪スキュー推定を考慮に入れ、マルチレイヤ基板のレイヤのうちの少なくともいくつかの中の動的探索ウィンドウを活用する、適切に装備された3Dルーティングシステムによって実行され得る例示的なルーティング手順2900を示す。ホットスポットの位置など、他の要因を考慮に入れることもできる。2902で、3Dルーティングシステムは、基板層内のNK個のノードの3Dグリッドを指定し、その3Dグリッドをモデル化して、述べたように、
【０１７６】
【数１３】
2017506386.tif 000015
【０１７７】
であるNK個の時変温度シーケンスのセットを生成する。式9に関して上で説明した手順を使用して、NK個のノードのグリッドを生成し、時変温度シーケンスを生成することができる。2904で、3Dルーティングシステムは、たとえば、上で式10〜式12で示したように、時変温度シーケンスに基づいて、ノードの中から共分散行列を決定する。2906で、3Dルーティングシステムは、3Dグリッドの各レイヤk内の動的に調整可能な探索ウィンドウを指定し、1つまたは複数のビアを必要とし得る、グリッドを介して3Dルートを配線するための3Dグリッド内のエンドポイントの対を選択する。
【０１７８】
3つの例示的な動的探索ウィンドウのセットを図30に示す。この例では、3Dグリッド3000は、3つの積層レイヤ30001、30002、および30003を含み、指定されたエンドポイント3002および3004を有する。第1の動的探索ウィンドウ30061は上位レイヤ30001に関して設定され、第2の動的探索ウィンドウ30062は中間レイヤ30002に関して設定され、第3の動的探索ウィンドウ30063は下位レイヤ30003に関して設定される。示すように、探索ウィンドウは各レイヤに関して異なるサイズを有し得る。探索ウィンドウの相対サイズは、2つのエンドポイントのそれぞれの位置と、それらの間の絶対距離3008とに基づいて、ルーティングシステムによって設定され得る。この例では、上位レイヤならびに下位レイヤの探索ウィンドウ30061および30063は、中間レイヤの探索ウィンドウ30062よりも小さい。相関余因子を生成するために必要とされる計算量を低減させるために、すべての3つの探索ウィンドウはグリッド全体よりも小さくなるように設定される。上の2D例と同様に、3Dルーティングシステムは、まずエンドポイント間の絶対距離を算出し、その距離を使用して、3つの動的ウィンドウ(30061、30062、および30063)の各々の好ましいエリアを決定するのを促す。次いで、それらのエンドポイントを包含し、(たとえば、ホットスポットなどを回避するために必要とされ得る何らかのバックトラッキングに対応するために)ルーティングのためのそれらのレイヤのうちの少なくともいくつかの上に追加の水平空間および垂直空間を提供するために、それらのエンドポイントの位置に基づいて、3つのウィンドウの各々の垂直境界および水平境界が設定される。図30の例は矩形の探索ウィンドウを示すが、ここでも少なくともいくつかの例では、他のウィンドウ形状を用いることが可能であることを理解されたい。
【０１７９】
図29に戻ると、各探索ウィンドウが指定されると、2908で、3Dルーティングシステムは、各レイヤの探索ウィンドウ内のノードに対応する共分散行列の係数に基づいて相関余因子を決定する。上で説明したように、ターゲットik, jkに対するエリアP内の相関余因子(CCpk)は、2つの対応する係数に基づいて定義され得る。相関余因子が計数の積に基づく例では、CCpk = cov(ik,p) * cov(p,jk)である。2910で、3Dルーティングシステムは、探索ウィンドウ内に位置するグリッドを介して、予想される3Dルートを識別または選択し、このルートは、相関余因子と、何らかの不利な温度点(たとえば、ホットスポット/コールドスポット)および何らのビアの位置とに基づくエンドポイント間の最高温度相関を有する。ホットスポットなどを考慮に入れながら、3Dグリッド内の1つまたは複数の予想されるルートを識別するための例示的な手順に関しては、図28の説明を参照されたい。
【０１８０】
2912で、3Dルーティングシステムは、ビアの存在をやはり考慮に入れながら、ベースライン単位長さ抵抗値と、所定の係数と、予想される3Dルートに関する時変温度シーケンスとに基づいて、3D単位長さ抵抗値を決定する。この点について、3D例では、単位長さ抵抗を、次のように、温度勾配の関数として表すことができる。
runit(x,y,k,t)=ρ0・(1+β・T(x,y,k,t))      (13)
式中、ρ0は、ここでも、0℃における単位長さ抵抗であり、x,y,kは3D座標であり、βは抵抗の所定の温度係数(1/℃)である。第k番目のレイヤと第(k-1)番目のレイヤとの間のビアの抵抗は、
rvia(k)      (14)
を使用して表すことができる。
K個のレイヤを有する基板の場合、(レイヤごとに1つのビアを仮定すると)(K-1)個の異なるrvia値が存在することになる。その場合、D経路上の抵抗は、たとえば、次のように計算され得る。
【０１８１】
【数１４】
2017506386.tif 000016
【０１８２】
式中、αはビアの存在を示す(ビアがない場合、α=0、1つのビアの場合、α=1)。温度影響による抵抗が決定された後、ルーティングシステムは、次いで、図22の2D最悪スキュー例に関して上に記載した技法と同様の技法を使用して、クロックスキューおよびその変動を算出または推定することができる。たとえば、式8およびその説明を参照されたい。
【０１８３】
2914で、ルーティングシステムは、抵抗値から最悪スキューを決定し、最悪スキューが大きすぎる場合、または、場合によっては、許容できない場合、予想される3Dルートを拒否する。この場合も、一例として、最悪スキューは所定のしきい値に対して比較され得る。予想されるルートが拒否された場合、処理は(図の破線矢印によって示すように)ブロック2910に戻り、スキュー問題を回避する代替の3Dルートを識別することができる。代替で、識別された、予想される3Dルートが許容される最悪スキューを有することがすでに保証されるように、最悪スキューは、3Dシステムが可能なルートを位置付ける間に、ブロック2910の手順の間に評価され、明らかにされ得る。
【０１８４】
図31は、ルーティングが、マルチレイヤ基板の異なるレイヤ上の配線ルートのRC結合、ならびに層密度を考慮に入れる、適切に装備されたルーティングシステムによって実行され得る例示的な3Dルーティング手順3100を示す。前の例と同様、ホットスポットの位置など、他の要因を考慮に入れることができる。3102で、3Dルーティングシステムは、少なくとももう1つのラインと、潜在的に多くの他のラインとを有するマルチレイヤ基板内のNK個のノードの3Dグリッドを指定し、3Dグリッドをモデル化して、NK個の時変温度シーケンスのセットを生成する。3104で、3Dルーティングシステムは、時変温度シーケンスに基づいて、ノードの中から共分散行列を決定する。3106で、3Dルーティングシステムは、他のラインともに追加されることになる、グリッドを介した新しい配線ルートのためのエンドポイントの対を選択する。図31には示されていないが、ルーティングシステムは、すでに説明したように様々な探索ウィンドウを使用することができる。また、3106で、ルーティングシステムは、マルチレイヤ基板の層の各々の密度、たとえば、特定のレイヤ上に作製されると予想されるワイヤの数、およびそれらのワイヤの長さを決定する。すなわち、層密度は、概して、特定のレイヤ上に堆積されることが予想される金属の総量を指す場合がある。たとえば、特定のレイヤが、現在、そのレイヤ上に作製するために指定された何のワイヤも有さない場合、層密度は低いと見なされる(また、ゼロの密度によって表され得る)。しかしながら、特定のレイヤが(ルーティング手順の前の反復の結果として)そのレイヤ上に作製するために指定された多数のワイヤを現在有する場合、密度は高いと見なされ、その場合、層密度は、そのレイヤのためのワイヤの数およびそのレイヤ上のそれらのワイヤの全長の和として定量化され得る。層密度を定量化するために、他の好適な技法を使用することが可能である。層密度は重要であり得るが、これは、いくつかの例では、比較的高い密度を有するレイヤを回避しながら、比較的低い密度を有するレイヤ上に新しい予想されるラインをルーティングすることが適切な場合があるためである。その上、高い密度を有するレイヤに隣接して位置しないレイヤ上に新しい予想されるラインをルーティングすることは、隣接するレイヤのワイヤとのRC結合をもたらし得るため、そのようなルーティングは望ましい場合がある。加えて、または代替で、その材料密度がRC結合に影響を及ぼす場合、層密度は特定のレイヤの材料密度を表し得る。さらにまた、単位高さ当たりのレイヤの数はやはりRC結合に影響を及ぼす可能性があるため、層密度は単位高さ当たりのレイヤの数を表し得る。
【０１８５】
3108で、3Dルーティングシステムは、各レイヤの探索ウィンドウ内のノードに対応する共分散行列の係数に基づいて、相関余因子を決定する。3110で、3Dルーティングシステムは、様々な探索ウィンドウ内に位置するグリッドを介して、新しいラインに関して予想される3Dルートを識別または選択し、このルートは、レイヤのそれぞれの密度をやはり考慮に入れながら、相関余因子、および何らかの極端な温度点の位置などに基づくエンドポイント間の最高温度相関を有する。述べたように、ルーティングシステムは、比較的高い密度のレイヤを回避するルートを優先し得る。3112で、3Dルーティングデバイスは、予想される新しい3Dルートと他の2Dラインまたは3Dラインとの間のRC結合量を決定する。
【０１８６】
図32は、新しいライン3202がエンドポイント3206および3208との間を接続することを目的とする、3Dグリッド3204内のライン3200と予想される新しい3Dライン3202との間の例示的なRC結合を示す。この例では、予想される新しい3Dルート3202は、そのルートの一部分にわたって他のライン3200と平行し、かつその1レイヤ上に位置し、矢印3210によって概して示されるRC結合をトリガする。この図はまた、回避すべき様々なホットスポット3212を示す。図32はまた、異なる層密度のレイヤを示すのに役立つ。この例では、最上レイヤ3214は(予想されるルート3202が設計の一部として容認される前に)ゼロの密度を有するが、これは、そのレイヤ上に他のラインまたはラインの一部が存在しないためである。最下レイヤ3216は、比較的低い(しかし、非ゼロ)密度を有するが、これはライン3200の比較的短い部分がそのレイヤを通過するためである。中間レイヤ3218は、比較的高い密度を有するが、これはライン3200のより長い部分がそのレイヤを通過するためである。したがって、最下レイヤ3216よりも中間レイヤ3218内により多くの金属が存在する。実際的な実装形態では、ルーティングシステムの多数の反復の後、基板の様々なレイヤ上で作製するために多数のラインまたはラインの一部を指定することができ、したがって、レイヤのうちのいくつかの密度は非常に高い場合がある。
【０１８７】
図31に戻ると、3Dルーティングデバイスは、場合によっては、配線経路の隣接する部分間の距離、および異なるレイヤ間の材料内の任意の差分、ならびに前述の層密度を考慮に入れることができる従来のRC結合評価技法または推定技法を使用して、3114で、予想される新しい3Dルートと他の隣接するライン(もしあれば)との間のRC結合量を決定することができる。3114で、RC結合量が大きすぎる場合、ルーティングシステムは予想されるルートを拒否する。たとえば、予想されるRC結合量は、特定の回路アプリケーションにとって大きすぎる結合(すなわち、新しいラインに沿った信号の伝搬に過度に影響し、許容できないスキューまたは他の所望されない影響を引き起こす結合)を表す所定のしきい値に対して比較され得る。予想されるルートが拒否される場合、処理は、次いで、(図の破線矢印を介して)ブロック3110に戻り、たとえば、他のワイヤに隣接して位置しないか、または高密度のレイヤを回避するルートに従うことによって、RC結合問題を回避する代替の予想されるルートを識別することができる。代替で、ブロック3110で識別された予想されるルートが受付可能な程度に少量の結合を他のワイヤと有することがすでに保証されるように、RC結合は、システムが可能なルートをマッピングする間に、ブロック3110の手順の間に評価され、明らかにされ得る。
【０１８８】
例示的なシステムおよび方法
図33は、本開示の1つまたは複数の態様がアプリケーションを見出し得る回路設計システム3300の一例を示す。システム3300は、図17の対応するシステムと同様であるが、具体的には、3Dルーティングに適合し、したがって、関係する差異だけを詳細に説明する。システム3300は、ユーザディスプレイデバイス3304に通信可能に結合され、マルチレイヤ基板回路の3D表現を表示するように適合されたコンピュータ3302と、ユーザ入力デバイス3306とを含む。コンピュータ3302はまた、コンピュータ3302によって生成された3D設計データがPCB、ICなどを製造するマルチレイヤ回路作製システム3310に転送されることを可能にするために、ネットワーク3308に通信可能に結合される。コンピュータ3302は、プロセッサ3312とメモリ3314とを含む。
【０１８９】
メモリ3314内に記憶され、かつ/またはプロセッサ3312によって実装される3Dルーティングプログラム3316および3Dシミュレーションモデル3318は、ユーザが本明細書の教示に従って3D回路設計を生成することを可能にする。たとえば、ユーザは、ディスプレイデバイス3304とユーザ入力デバイスとを使用して、本明細書で教示されるように、(たとえば、ICまたはPCBの)少なくとも1つのマルチレイヤ基板上に3D回路を配置し、少なくとも1つのマルチレイヤ基板上の様々な位置において3D温度特性を経時的にシミュレートし、相関行列を生成し、余因子行列を生成し、最良の温度相関を有する3Dルートを選択することができる。ユーザは、次いで、所望される回路構成要素を作り出すために、生じた3Dルート設計3320を作製システム3310に送ることができる。本明細書で説明する3D技法は、概して、適用可能な場合に、それの一部またはサブセットとして、2D技法を含むことに留意されたい。したがって、3Dルーティングプログラム3316は、2Dルート、ならびに3Dルートを処理することができる。同様に、3Dシミュレーションモデル3318は2Dモデルを処理することもでき、3Dルート設計3320は2Dルート設計を処理することもできる。したがって、図33および本明細書の他の図に示す3D構成要素は、3D回路または3D設計だけの処理に限定されない。
【０１９０】
次に、図34を参照すると、本開示の少なくとも1つの例による、図33のコンピュータ3302などの、装置3400の選択された構成要素を示すブロック図を示す。装置3400は、図18の対応するシステムと同様であるが、具体的には、3Dルーティングに適合し、したがって、関係する差異だけを詳細に説明する。装置3400(たとえば、設計ツール)は、外部バスインターフェース3402と、記憶媒体3404と、ユーザインターフェース3406と、メモリデバイス3408と、処理回路3410とを含む。処理回路は、外部バスインターフェース3402、記憶媒体3404、ユーザインターフェース3406、およびメモリデバイス3408の各々と電気的に通信するように結合または配置される。外部バスインターフェース3402は、外部バス3412に対するインターフェースを装置3400の構成要素に提供する。処理回路3410は、データを取得、処理、および/または送り、データのアクセスおよび記憶を制御し、コマンドを発行し、他の所望の動作を制御するように構成される。場合によっては、処理回路3410は、プログラミングを実装することによって、あるいはプログラミングを実装することなく、所望の機能を実行するように適合された回路を含み得る。処理回路3410は、記憶媒体3404上に記憶されてもよいプログラミングの実行を含めて処理するように適合される。
【０１９１】
場合によっては、処理回路3410は、予想される3Dルートを識別するためのモジュール3414、予想される3Dルートの温度特性を決定するためのモジュール3416、予想される3Dルートのうちの1つを選択するためのモジュール3418、選択された3Dルートの表示を記憶するためのモジュール3420、ポイントの3Dグリッドを識別するためのモジュール3422、電子回路の温度特性を決定するためのモジュール3424、予想される3Dルートの距離を決定するためのモジュール3426、分岐を選択するためのモジュール3428、最悪スキューを決定するためのモジュール3425、層密度に基づいて、予想される3Dルートを識別するためのモジュール3427、(たとえば、2Dまたは3Dのいずれにおいても動作し得る)ウィンドウサイズを動的に調整するためのモジュール3429、および(たとえば、2Dまたは3Dのいずれにおいても動作し得る)RC結合に基づいて、予想されるルートを識別するためのモジュール3431のうちの1つもしくは複数を含み得る。
【０１９２】
予想される3Dルートを識別するためのモジュール3414は、3Dルーティングエリア内の2つ以上のターゲットポイントに関する情報を収集し、ターゲットポイント間の3Dルーティングエリア内を横断し得る異なる3Dルートを算出し、予想される3Dルートの表示を生成するように適合された回路および/またはプログラミング(たとえば、記憶媒体3404上に記憶された、予想される3Dルートを識別するためのモジュール3430)を含み得る。予想され3Dルートの温度特性を決定するためのモジュール3416は、予想される3Dルートに関する情報を獲得し、各予想される3Dルートに沿った様々なポイントの温度特性を算出し、温度特性の表示を生成するように適合された回路および/またはプログラミング(たとえば、記憶媒体3404上に記憶された、予想される3Dルートの温度特性を決定するためのモジュール3432)を含み得る。
【０１９３】
予想される3Dルートのうちの1つを選択するためのモジュール3418は、予想される3Dルートの温度特性に関する情報を獲得し、異なる温度特性の中から最良の温度特性を識別し、その最良の温度特性に関連する3Dルートに関する情報を生成するように適合された回路および/またはプログラミング(たとえば、記憶媒体3404上に記憶された、予想される3Dルートのうちの1つを選択するためのモジュール3434)を含み得る。選択された3Dルートの表示を記憶するためのモジュール3420は、選択された3Dルートに関する情報を獲得し、選択された3Dルートを示す表示を生成し、その表示を含む信号を生成し、その信号をメモリデバイスに送るように適合された回路および/またはプログラミング(たとえば、記憶媒体3404上に記憶された、選択された3Dルートの表示を記憶するためのモジュール3436)を含み得る。
【０１９４】
3Dポイントのグリッドを識別するためのモジュール3422は、1つもしくは複数の回路のための3Dルーティングエリアに関する情報を獲得し、そのエリア内の3Dポイントのグリッドを画定し、3Dポイントの画定されたグリッドの表示を生成するように適合された回路および/またはプログラミング(たとえば、記憶媒体3404上に記憶された、3Dポイントのグリッドを識別するためのモジュール3438)を含み得る。電子回路の温度特性を決定するためのモジュール3424は、電子回路に関する情報を獲得し、1つもしくは複数の動作条件の下で電子回路の温度特性を決定し、温度特性の表示を生成するように適合された回路および/またはプログラミング(たとえば、記憶媒体3404上に記憶された、電子回路の温度特性を決定するためのモジュール3440)を含み得る。予想される3Dルートの距離を決定するためのモジュール3426は、予想されるルートに関する情報を獲得し、予想されるルートの距離を算出し、予想されるルートの距離の表示を生成するように適合された回路および/またはプログラミング(たとえば、記憶媒体3404上に記憶された、予想されるルートの距離を決定するためのモジュール3442)を含み得る。分岐点を選択するためのモジュール3428は、ターゲットポイントに関する情報を獲得し、ターゲットポイント間の予想される分岐点を識別し、予想される分岐点のうちの1つを選択し、選択された分岐点を識別する表示を生成するように適合された回路および/またはプログラミング(たとえば、記憶媒体3404上に記憶された、分岐点を選択するためのモジュール3444)を含み得る。
【０１９５】
最悪スキューを決定するためのモジュール3425は、電子回路に関する情報を獲得し、1つもしくは複数の動作条件の下で電子回路の最悪スキューを決定し、その最悪スキューの表示を生成するように適合された回路および/またはプログラミング(たとえば、記憶媒体3404上に記憶された、最悪スキューを決定するためのモジュール3445)を含み得る。層密度に基づいて予想される3Dルートを決定するためのモジュール3427は、予想される3Dルートに関する情報を獲得し、予想されるルートに関連するレイヤに関する層密度を算出し、その層密度に基づいて、予想される3Dルートの識別の表示を生成するように適合された回路および/またはプログラミング(たとえば、記憶媒体3404上に記憶された、層密度に基づいて予想される3Dルートを識別するためのモジュール3447)を含み得る。
【０１９６】
ウィンドウサイズを動的に調整するためのモジュール3429は、ターゲットポイントに関する情報を獲得し、探索ウィンドウサイズを動的に識別および調整し、ウィンドウサイズの表示を生成するように適合された回路ならびに/またはプログラミング(たとえば、記憶媒体3404上に記憶された、ウィンドウサイズを動的に調整するためのモジュール3449)を含み得る。RC結合に基づいて予想されるルートを識別するためのモジュール3431は、RC結合に関する情報を獲得し、RC結合に基づいて、予想されるルートを識別し、RC結合および予想されるルートの表示を生成するように適合された回路および/またはプログラミング(たとえば、記憶媒体3404上に記憶された、RC結合に基づいて、予想されるルートを識別するためのモジュール3451)を含み得る。
【０１９７】
図18の例と同様、記憶媒体3404は、プログラミング、電子データ、データベース、またはその他のデジタル情報を記憶するための、1つまたは複数のプロセッサ可読デバイスを表す場合がある。記憶媒体3404は、プログラミングを実行するときに処理回路3410によって操作されるデータを記憶するために使用されてもよい。記憶媒体3404は、可搬型または固定式記憶デバイスと、光記憶デバイスと、プログラミングの記憶、収容、および/または搬送が可能な様々なその他の媒体とを含む、処理回路3410によってアクセスすることが可能な任意の利用可能な媒体であってもよい。いくつかの実装形態では、記憶媒体は、非一時的(たとえば、有形の)記憶媒体であってよい。
【０１９８】
図35は、本開示のいくつかの態様による、ワイヤルーティングのためのプロセス3500を示す。プロセス3500は、回路設計ツールまたは何らかの他の適切な装置内に位置し得る処理回路3410(図34)内で行われ得る。別の態様では、処理3500は、図33に示す回路設計システム3300によって実装され得る。当然、本開示の範囲内の様々な態様では、プロセス3500は、ワイヤルーティング動作をサポートすることができる任意の適切な装置によって実装され得る。簡潔のために、このプロセスを実行するシステム、回路、または装置は、以下の説明において、単にシステムと呼ばれることになる。ブロック3502で、システムは、少なくとも1つの基板を介してワイヤをルーティングするための複数の予想されるルートを識別する。少なくとも1つの基板は、プリント回路基板の基板、集積回路ダイ基板、または何らかの他のタイプの基板を含み得る。ブロック3504で、システムは、予想されるルートの各々に関して、予想されるルートに関連する時変温度特性を決定する。ブロック3506で、システムは、予想されるルートの時変温度特性に基づいて、予想されるルートのうちの1つを選択する。ブロック3508で、システムは、選択されたルートの表示をメモリデバイス内などに記憶する。たとえば、この表示は、他のルーティングデータおよび回路設計に関連する他の回路データとともに記憶され得る。これらの手順の例は、上で、特に、図22〜図25の説明内に記載されている。
【０１９９】
図36は、本開示の追加の態様による、3Dワイヤルーティングのためのプロセス3600を示す。本開示の範囲内の様々な態様では、プロセス3600は、ワイヤルーティング動作をサポートすることができる任意の適切なシステム、回路、または装置によって実装され得る。ここでも、簡潔のために、このプロセスを実行するシステム、回路、または装置は、以下の説明において、システムと呼ばれることになる。ブロック3602で、システムは、マルチレイヤ基板の複数のレイヤを介してワイヤをルーティングするための複数の予想される3Dルートを識別する。ブロック3604で、システムは、予想される3Dルートの各々に関して、予想される3Dルートの時変3D温度特性を決定する。ブロック3606で、システムは、予想される3Dルートに関連する時変3D温度特性に基づいて、予想される3Dルートのうちの1つを選択する。ブロック3608で、システムは、選択された3Dルートの表示をメモリデバイス内などに記憶する。これらの手順の例は、上で、特に、図26〜図32の説明内に記載されている。
【０２００】
図37は、本開示のいくつか追加の態様による、3Dワイヤルーティングのためのプロセス3700を示す。本開示の範囲内の様々な態様では、プロセス3700は、ワイヤルーティング動作をサポートすることができる任意の適切なシステム、回路、または装置によって実装され得る。ここでも、簡潔のために、このプロセスを実行するシステム、回路、または装置は、以下の説明において、システムと呼ばれることになる。ブロック3702で、システムは、マルチレイヤ基板の複数のレイヤの各々の中の探索ウィンドウを識別し、複数のレイヤの異なるレイヤの探索ウィンドウを別個に調整する。ブロック3704で、システムは、基板の複数のレイヤを介してワイヤをルーティングするための探索ウィンドウ内の複数の予想される3Dルートを識別する。ブロック3706で、システムは、予想される3Dルートの各々に関して、時変3D温度勾配を決定し、そのルートに関する勾配の平滑さを決定する。ブロック3708で、システムはマルチレイヤ基板内の不利な温度位置を識別する。ブロック3710で、システムは、ワイヤ密度など、マルチレイヤ基板の少なくとも1つのレイヤの密度を決定する。これらの手順の例は、上で、特に、図26〜図32の説明内に記載されている。
【０２０１】
ブロック3712で、システムは、温度勾配の平滑さ、層密度、および/または不利な温度位置に基づいて、予想される3Dルートを選択する。ブロック3714で、システムは、選択された3Dルートと、隣接するレイヤ内の少なくとももう1つの配線ルートとの間の容量結合量を決定し、容量結合量が所定の結合しきい値を超えた場合、選択されたルートを拒否する。ブロック3716で、システムは、予想される3Dルート内の1つまたは複数のビアの包括に少なくとも部分的に基づいて、選択された3Dルートに関する最悪スキューを決定し、その最悪スキューが所定のスキューしきい値を超える場合、そのルートを拒否する。これらの手順の例は、上で、特に、図26〜図32の説明内に記載されている。
【０２０２】
したがって、本開示の少なくともいくつかの態様は、クロックツリー構造のためのクロックバランスおよび小さなスキュー、または他の相互接続セットアップ時間およびホールドタイム(hold times)を提供し得るチップ間通信のための単純な低電力および高速の温度認識相互接続技術を対象とする。たとえば、ホットスポットを回避し、温度認識3Dルーティングを行うことによって、ルーティングシステムは、少なくともいくつかの例では、クロックのバランスをとるためのより少ないバッファ挿入、セットアップタイムおよびホールドタイムを用いて、クロックスキュー差およびクロックスキューを効率的に抑制することができる。本システムの態様は、少なくともいくつかの先行ルーティング設計よりも少ない電力消費を達成し得る。
【０２０３】
図38は、複数の予想されるルートの中から最も平滑な時変温度勾配に関連して選択されたルートに沿ってその上にワイヤを形成した少なくとも1つの基板を作成するためのプロセス3800を示す。プロセス3800の1つまたは複数の動作は、回路設計ツールまたは何らかの他の適切な装置内に位置し得る処理回路3410(図34)内で行われ得る。別の態様では、処理3800の1つまたは複数の動作は、図33に示す回路設計システム3300によって実装され得る。しかしながら、本開示の範囲内の様々な態様では、プロセス3800は、ワイヤルーティング動作をサポートすることができる任意の適切な装置によって実装され得る。
【０２０４】
簡潔には、ブロック3802で、少なくとも1つの基板上でワイヤをルーティングするための予想されるルートを識別する。上で論じたように、少なくとも1つの基板は、プリント回路基板の基板、集積回路ダイ基板、または何らかの他のタイプの基板を含み得る。ブロック3804で、ブロック3802で識別された予想されるルートの各々に関して、予想されるルートに関連する時変温度勾配を決定する。ブロック3806で、予想されるルートのうちのどれが予想されるルートの最も平滑な時変温度勾配を有するかに基づいて、予想されるルートのうちの1つを選択する。ブロック3808で、適切な製造動作は少なくとも1つの基板を提供(たとえば、形成または獲得)する。たとえば、作製システムは、集積回路ダイ用の少なくとも1つの基板を形成するか、またはプリント回路基板用の少なくとも1つの基板を形成し得る。ブロック3810で、適切な製造動作は、選択されたルートに従って、少なくとも1つの基板上にワイヤを形成する。たとえば、選択されたルートの経路を示す回路設計データに基づいて、作製システムは、集積回路ダイ用の少なくとも1つの基板上に、またはプリント回路基板用の少なくとも1つの基板上にワイヤを形成し得る。
【０２０５】
図面に示す構成要素、ステップ、特徴および/または機能のうちの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  プロセス
2200  2Dルーティング手順
2300  第1の2Dグリッド
2302  エンドポイント
2304  エンドポイント
2306  動的探索ウィンドウ、ウィンドウ
2308  絶対距離
2310  エンドポイント
2312  エンドポイント
2314  2Dグリッド
2316  絶対距離
2318  動的ウィンドウ
2400  2Dルーティング手順
2500  配線ルート
2502  新しいルート
2504  2Dグリッド
2506  エンドポイント
2508  エンドポイント
2510  矢印
2700  3Dマルチレイヤ積層基板
2702  レイヤ
2704  レイヤ
2706  レイヤ
2708  3D配線経路
2710  エンドポイント
2712  エンドポイント
2714  ホットスポット/コールドスポット
2800  回路設計プロセス
2801  回路
2802  エリア、マルチレイヤエリア
2803  マルチレイヤ構造
2804  3D空間温度解析、温度解析
2806  温度行列、3D温度行列
2808  相関算出
2810  相関行列、3D相関行列
2812  余因子算出
2814  余因子行列
2816  3D温度認識ルーティング
2818  3Dルート
2900  3Dルーティング手順
3000  3Dグリッド
30001  積層レイヤ、上位レイヤ
30002  積層レイヤ、下位レイヤ
30003  積層レイヤ、下位レイヤ
3002  エンドポイント
3004  エンドポイント
30061  第1の動的探索ウィンドウ、探索ウィンドウ、動的ウィンドウ
30062  第2の動的探索ウィンドウ、探索ウィンドウ、動的ウィンドウ
30063  第3の動的探索ウィンドウ、探索ウィンドウ、動的ウィンドウ
3008  絶対距離
3100  3Dルーティング手順
3200  ライン
3202  新しいライン、新しい3Dライン、予想される新しいルート、予想されるルート
3204  3Dグリッド
3206  エンドポイント
3208  エンドポイント
3210  矢印
3212  ホットスポット
3214  最上レイヤ
3216  最下レイヤ
3218  中間レイヤ
3300  回路設計システム、システム
3302  コンピュータ
3304  ユーザディスプレイデバイス
3306  ユーザ入力デバイス
3308  ネットワーク
3310  マルチレイヤ回路作製システム
3312  プロセッサ
3314  メモリ
3316  3Dルーティングプログラム
3318  3Dシミュレーションモデル
3320  3Dルート設計
3400  装置
3402  外部バスインターフェース
3404  記憶媒体
3406  ユーザインターフェース
3408  メモリデバイス
3410  処理回路
3412  外部バス
3414  予想される3Dルートを識別するためのモジュール
3416  予想される3Dルートの温度特性を決定するためのモジュール
3418  予想される3Dルートのうちの1つを選択するためのモジュール
3420  選択された3Dルートの表示を記憶するためのモジュール
3422  ポイントの3Dグリッドを識別するためのモジュール
3424  電子回路の温度特性を決定するためのモジュール
3425  最悪スキューを決定するためのモジュール
3426  予想される3Dルートの距離を決定するためのモジュール
3427  層密度に基づいて、予想される3Dルートを識別するためのモジュール
3428  分岐を選択するためのモジュール
3429  ウィンドウサイズを動的に調整するためのモジュール
3430  予想される3Dルートを識別するためのモジュール
3431  RC結合に基づいて、予想されるルートを識別するためのモジュール
3432  予想される3Dルートの温度特性を決定するためのモジュール
3434  予想される3Dルートのうちの1つを選択するためのモジュール
3436  選択された3Dルートの表示を記憶するためのモジュール
3438  3Dポイントのグリッドを識別するためのモジュール
3440  電子回路の温度特性を決定するためのモジュール
3442  予想されるルートの距離を決定するためのモジュール
3444  分岐点を選択するためのモジュール
3445  最悪スキューを決定するためのモジュール
3447  層密度に基づいて予想される3Dルートを識別するためのモジュール
3449  ウィンドウサイズを動的に調整するためのモジュール
3451  RC結合に基づいて、予想されるルートを識別するためのモジュール
3500  プロセス
3600  プロセス
3700  プロセス
3800  プロセス
【図１】
2017506386.tif 000017
【図２】
2017506386.tif 000018
【図３】
2017506386.tif 000019
【図４】
2017506386.tif 000020
【図５】
2017506386.tif 000021
【図６】
2017506386.tif 000022
【図７】
2017506386.tif 000023
【図８】
2017506386.tif 000024
【図９】
2017506386.tif 000025
【図１０】
2017506386.tif 000026
【図１１】
2017506386.tif 000027
【図１２】
2017506386.tif 000028
【図１３】
2017506386.tif 000029
【図１４】
2017506386.tif 000030
【図１５】
2017506386.tif 000031
【図１６】
2017506386.tif 000032
【図１７】
2017506386.tif 000033
【図１８】
2017506386.tif 000034
【図１９】
2017506386.tif 000035
【図２０】
2017506386.tif 000036
【図２１】
2017506386.tif 000037
【図２２】
2017506386.tif 000038
【図２３】
2017506386.tif 000039
【図２４】
2017506386.tif 000040
【図２５】
2017506386.tif 000041
【図２６】
2017506386.tif 000042
【図２７】
2017506386.tif 000043
【図２８】
2017506386.tif 000044
【図２９】
2017506386.tif 000045
【図３０】
2017506386.tif 000046
【図３１】
2017506386.tif 000047
【図３２】
2017506386.tif 000048
【図３３】
2017506386.tif 000049
【図３４】
2017506386.tif 000050
【図３５】
2017506386.tif 000051
【図３６】
2017506386.tif 000052
【図３７】
2017506386.tif 000053
【図３８】
2017506386.tif 000054
【国際調査報告】
2017506386.tif 000055
2017506386.tif 000056