(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-01
(45)【発行日】2023-03-09
(54)【発明の名称】マルチチップ集積回路デバイスにおけるルーティングリソースの選択方法
(51)【国際特許分類】
G06F 30/394 20200101AFI20230302BHJP
H01L 21/822 20060101ALI20230302BHJP
H01L 27/04 20060101ALI20230302BHJP
H01L 21/82 20060101ALI20230302BHJP
G06F 115/12 20200101ALN20230302BHJP
【FI】
G06F30/394
H01L27/04 D
H01L21/82 C
H01L21/82 L
G06F115:12
(21)【出願番号】P 2020543869
(86)(22)【出願日】2019-02-21
(86)【国際出願番号】 US2019018921
(87)【国際公開番号】W WO2019165045
(87)【国際公開日】2019-08-29
【審査請求日】2022-02-14
(32)【優先日】2018-02-21
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】591025439
【氏名又は名称】ザイリンクス インコーポレイテッド
【氏名又は名称原語表記】XILINX INCORPORATED
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】ヤング, ジェイ ティー.
【審査官】松浦 功
(56)【参考文献】
【文献】特表2011-530106(JP,A)
【文献】特開2008-243993(JP,A)
【文献】米国特許第8473881(US,B1)
【文献】米国特許第8418115(US,B1)
【文献】三好哲也 外3名,ビア数最小化とクロストークを陽に考慮したMCM配線手法,情報処理学会研究報告 ,Vol. 93, No. 111,1993年12月17日,pp. 31-38
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/30 -30/398
H01L 21/82 -21/86
(57)【特許請求の範囲】
【請求項1】
マルチチップ集積回路デバイスにおいてルーティングリソースを選択する方法であって、
設計の初期の配置を作成するために、前記マルチチップ集積回路デバイス上に設計を配置すること、
前記設計の前記初期の配置に基づいて、前記設計の一部と共に配置される前記マルチチップ集積回路デバイスのチップ間の接続を可能にするために必要なバイアの数を推定すること、
前記チップのエリアについてのバイアの最大数よりも大きいバイアの数を有する前記チップの前記エリアを識別すること、
プロセッサによって、前記設計の前記一部と共に配置される前記チップ内のリソースを定義する区画ウィンドウを選択することであって、前記区画ウィンドウは、前記バイアの数を前記区画ウィンドウについてのバイアの最大要件に合致させることができるように選択される、区画ウィンドウを選択すること、および、
前記プロセッサによって、前記チップの前記エリア内の前記バイアの数が前記エリアについての前記バイアの最大数以内になるように、前記区画ウィンドウ内に前記設計の前記一部を再配置すること、
を含む、方法。
【請求項2】
前記マルチチップ集積回路デバイス上に設計を配置することは、アクティブオンアクティブマルチチップ集積回路デバイスのチップ内に設計を配置することを含む、請求項1に記載の方法。
【請求項3】
区画ウィンドウを選択することは、前記チップの幾何エリア、前記チップのリソースのセット、および前記チップの複数のタイル、のうちの少なくとも1つを選択することを含む、請求項1または2に記載の方法。
【請求項4】
区画ウィンドウを選択することは、配線長の成長に基づいて区画ウィンドウを選択することを含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
区画ウィンドウを選択することは、水平方向および垂直方向の両方の配線長の成長に基づいて区画ウィンドウを選択することを含む、請求項4に記載の方法。
【請求項6】
区画ウィンドウを選択することは、第1の数の水平タイルおよび第2の数の垂直タイルを有する区画ウィンドウを選択することを含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記チップの他のエリアについてのバイアの最大数よりも大きいバイアの数を有する前記チップの前記他のエリアを決定することをさらに含む、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記チップの前記エリア内に完全に含まれるネット、および前記エリアの外にピンを有するネットを識別することを、さらに含み、前記設計の前記一部を再配置することは、識別されたネットに基づく、請求項1から7のいずれか一項に記載の方法。
【請求項9】
区画ウィンドウを選択することは、前記区画ウィンドウ内のリソースの最大利用率を有する区画ウィンドウの部分を識別することを含む、請求項1から8のいずれか一項に記載の方法。
【請求項10】
区画ウィンドウを選択することは、カットを最小にするために前記エリア内に完全に含まれるネットを識別することを含む、請求項9に記載の方法。
【請求項11】
システムであって、
プロセッサと、
前記プロセッサによって実行されたとき、前記プロセッサに動作を実行させる命令を記憶するコンピュータ可読媒体と、
を備え、前記動作は、
設計の初期の配置を作成するために、前記マルチチップ集積回路デバイス上に設計を配置すること、
前記設計の前記初期の配置に基づいて、前記設計の一部と共に配置される前記マルチチップ集積回路デバイスのチップ間の接続を可能にするために必要なバイアの数を推定すること、
前記チップの前記エリアについてのバイアの最大数よりも大きいバイアの数を有するチップのエリアを識別すること、
前記設計の前記一部と共に配置される前記チップ内のリソースを定義する区画ウィンドウを選択することであって、前記区画ウィンドウは、前記バイアの数を前記区画ウィンドウについてのバイアの最大要件に合致させることができるように選択される、区画ウィンドウを選択すること、および、
前記チップの前記エリア内の前記バイアの数が前記エリアについての前記バイアの最大数以内になるように、前記区画ウィンドウ内に前記設計の前記一部を再配置すること、
を含む、
システム。
【請求項12】
区画ウィンドウを選択することは、前記チップの幾何エリア、前記チップのリソースのセット、および前記チップの複数のタイル、のうちの少なくとも1つを選択することを含む、請求項11に記載のシステム。
【請求項13】
区画ウィンドウを選択することは、配線長の成長に基づいて区画ウィンドウを選択することを含む、請求項11または12に記載のシステム。
【請求項14】
区画ウィンドウを選択することは、水平方向および垂直方向の両方の配線長の成長に基づいて区画ウィンドウを選択することを含む、請求項13に記載のシステム。
【請求項15】
区画ウィンドウを選択することは、第1の数の水平タイルおよび第2の数の垂直タイルを有する区画ウィンドウを選択することを含む、請求項11から14のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に集積回路デバイスに関し、特に、マルチチップ集積回路デバイスにおけるルーティングリソースの選択を可能にする方法に関する。
【背景技術】
【0002】
集積回路デバイスにおいて回路要素を実装する際に使用される技術は、進歩を続けている。たとえば、集積回路デバイスのトランジスタの寸法は縮小を続けており、性能の向上につながっている。同様に、集積回路デバイスの容量に関する需要も増加を続けており、集積回路デバイス上により多くの回路リソースが実装されることにつながっている。
【0003】
しかしながら、より大きな集積回路デバイスを実装することによって、集積回路デバイスの容量を増加させるための努力は、しばしば、性能を低下させる配置につながる場合がある。集積回路デバイスの容量を増加させるための1つのやり方は、集積回路デバイス内のチップ(チップは、一般にダイとも呼ばれる)の数を増加させることである。たとえば、マルチチップモジュール(MCM)集積回路デバイスは、インターポーザ内のトレースを用いて通信するように適合された複数の個々のチップを有するインターポーザデバイスを備える。こうした配置により、チップ間のトレースの配線長が長くなり、結果として集積回路デバイスのチップにおける回路の性能低下につながる可能性がある。
【0004】
したがって、マルチチップ集積回路デバイスにおけるルーティングリソースのための改良された方法およびシステムが求められる。
【発明の概要】
【0005】
マルチチップ集積回路デバイスにおいてルーティングリソースを選択する方法を説明する。方法は、マルチチップ集積回路デバイス上に設計を配置すること、設計の一部と共に配置されたマルチチップ集積回路デバイスのチップ間の接続を可能にするために必要なバイアの数を推定すること、チップのエリアについてのバイアの最大数よりも大きなバイアの数を有するチップのエリアを識別すること、設計の一部と共に配置されたチップ内のリソースを定義する区画ウィンドウを選択することであって、区画ウィンドウは、バイアの数を区画ウィンドウについてのバイアの最大要件に合致させることができるように選択される、区画ウィンドウを選択すること、および、チップのエリア内のバイアの数がエリアについてのバイアの最大数以内になるように、区画ウィンドウ内に設計の一部を再配置すること、を含む。
【0006】
プロセッサおよびコンピュータ可読媒体を備えるシステムも記載され、コンピュータ可読媒体は、プロセッサによって実行されたとき、プロセッサに動作を実行させる命令を記憶し、動作は、マルチチップ集積回路デバイス上に設計を配置すること、設計の一部と共に配置されたマルチチップ集積回路デバイスのチップ間の接続を可能にするために必要なバイアの数を推定すること、チップのエリアについてのバイアの最大数よりも大きなバイアの数を有するチップのエリアを識別すること、設計の一部と共に配置されたチップ内のリソースを定義する区画ウィンドウを選択することであって、区画ウィンドウは、バイアの数をウィンドウについてのバイアの最大要件に合致させることができるように選択される、区画ウィンドウを選択すること、および、チップのエリア内のバイアの数がエリアについてのバイアの最大数以内になるように、区画ウィンドウ内に設計の一部を再配置すること、を含む。
【0007】
プロセッサによって実行されたとき、プロセッサに動作を実行させる命令を記憶する非一時的コンピュータ可読媒体であって、動作は、マルチチップ集積回路デバイス上に設計を配置すること、設計の一部と共に配置されたマルチチップ集積回路デバイスのチップ間の接続を可能にするために必要なバイアの数を推定すること、チップのエリアについてのバイアの最大数よりも大きなバイアの数を有するチップのエリアを識別すること、設計の一部と共に配置されたチップ内のリソースを定義する区画ウィンドウを選択することであって、区画ウィンドウは、バイアの数をウィンドウについてのバイアの最大要件に合致させることができるように選択される、区画ウィンドウを選択すること、および、チップのエリア内のバイアの数がエリアについてのバイアの最大数以内になるように、区画ウィンドウ内に設計の一部を再配置すること、を含む。
【図面の簡単な説明】
【0008】
【
図1】プログラム可能リソースを有する集積回路の例示的ブロック図である。
【
図4】本明細書で説明するプロセスおよび方法を実装するのに適したコンピュータ401を有する、システム400のブロック図である。
【
図5】プログラム可能論理デバイス(PLD)のための論理設計システムの例示的な例である。
【
図6】マルチチップ集積回路デバイスのルーティングリソースを選択する方法を示すフローチャートである。
【
図7】ウィンドウの寸法の関数として配線長(WL)の成長を制御しながら、シリコン貫通バイア(TSV)の使用率を減少させるために区分問題を作成および解決するための方法を示すフローチャートである。
【
図8】ウィンドウの寸法の関数としてのTSV使用率の割合を示す、第1の表である。
【
図9】ウィンドウの寸法の関数としての配線長の増加を示す、第2の表である。
【
図10】ウィンドウの寸法の関数としての水平配線長の増加を示す、第3の表である。
【
図11】ウィンドウの寸法の関数としての垂直配線長の増加を示す、第4の表である。
【
図12】再構成可能回路を有する集積回路の別の例のブロック図である。
【発明を実施するための形態】
【0009】
下記に示すシステムおよび方法は、積層集積回路デバイスのチップ間のカット(すなわち、Z方向の電気接続)の数を制御するため、および、積層ICデバイス内での複数チップの使用に起因する配線長の成長を最小にするために、積層集積回路(IC)デバイス上に配置された回路設計上でウィンドウベースの区分化を使用する。
【0010】
システムおよび方法は、集積回路デバイス内でのZリソース(たとえば、TSV)の過剰使用の問題に対処する。設計区分化を使用して層全体にわたるカットを最小にすることが可能である一方で、設計区分化は、減少した配線長のすべての利得を失わせる可能性もある。さらに、配置後スワップベース最適化が実行可能であり、Zカットは、高Zカット使用のエリアにおいて、層間で局在化論理をスワッピングすることによって低減可能である一方で、スワップベースアルゴリズムは、一般に、局所的最小問題を有し、低ピンカウントのネット上のカットが、スワップベースアルゴリズムを使用して論理の小セットを移動させている間に、それらを低減させる傾向のみがある。Zリソースの数を超えないことを保証するために区画ウィンドウを使用することによって、複数チップを有するICデバイスの配線長の成長を制御することができる。
【0011】
各チップ上のルーティングリソースの減少を維持するために、配線長の成長を最小にし、したがって積層ICデバイスのコストを低減することが望ましい。下記に示すシステムおよび方法は、任意のタイプのマルチチップICを用いて実装可能である一方で、システムおよび方法は、アクティブオンアクティブ(AOA)シリコン積層化に使用可能であり、チップを非常に接近させて積層できるようにする。AoA技術において、ICチップは共に結合され、互いに積層されたチップのセットを作成する。チップは、1つのケースでは、すべてのチップ層全体にわたってルーティングファブリックを接続するために使用される、BTSV(背面シリコン貫通バイア)などのTSVを介して通信する。これらのBSTV接続(ZカットまたはZ接続と呼ぶことができる)の数は、貫通するチップのX,Yエリアのサイズに依存する。たとえば、7nmのトランジスタ寸法を有するアーキテクチャにおいて、BTSVの数は、BTSVがチップのファブリックにどのように接続されるかに依存して、タイル当たり32から64の範囲とすることができる。
【0012】
チップの積層化の一利点は、CLBが隣り合うのではなくCLBの上にあるため、プログラム可能論理デバイス(PLD)内などの論理は互いにかなり近くに配置可能なことである。たとえば、2層のファブリックを有することは、一般に、CLBサイズをX,Y方向に2倍にし、従来のデバイスにおけるルーティングを2倍にする。しかしながら、Z方向の接続を可能にするリソース(BTSVなど)を使用することによって、ネット負荷およびドライバは共により近くに配置可能であり、ネットは長さのより短いリソースを用いてルーティング可能である。このZ方向のリソースの使用により、各チップ上のルーティングリソースを減少させること、したがって、金属層要件およびコストの削減を可能にする。さらに、モノリシックデバイスと同じ容量のマルチスタックデバイスは、Z接続の数を超えない(すなわち、Zリソースより多くのネットカットが層全体にわたって必要である)という条件で、よりルーティング可能である。
【0013】
本明細書は、新規であるとみなされる本発明の1つまたは複数の実装の特徴を定義する請求項を含む一方で、回路および方法は、図面と共に説明される考察からより良く理解されることが考えられる。様々な回路および方法が開示される一方で、回路および方法は、様々な形で具体化可能な本発明の配置の単なる例であることを理解されたい。したがって、本明細書において開示される特定の構造および機能上の詳細は、限定的と解釈されるべきではなく、単に請求項の基準として、および、当業者が事実上任意の適切に詳細な構造において本発明の配置を様々に採用するための教示の代表的な基準として、解釈されるべきである。さらに、本明細書で使用される用語および言い回しは限定的であるものとは意図されず、回路および方法の理解可能な説明を提供するものと意図される。
【0014】
第1に
図1を見ると、プログラム可能リソースを有する集積回路デバイス100のブロック図が示されている。特に、入力/出力ポート102が、構成可能論理要素109を有するプログラム可能リソース106を制御する、制御回路104に結合されている。構成データは、構成コントローラ110によって構成メモリ108に提供可能である。構成データは、プログラム可能リソース106の動作を実行可能にする。メモリ113は、制御回路104およびプログラム可能リソース106に結合可能である。トランシーバ回路114は、制御回路104、プログラム可能リソース106、およびメモリ113に結合可能であり、I/Oポート116および117を用いて集積回路において信号を受信することができる。他のI/Oポートは、図に示されるように制御回路104に結合されるI/Oポート118などの集積回路デバイスの回路に結合可能である。クロッキングネットワーク120は、
図1の回路の様々な要素に結合される。
図1の集積回路デバイスは、下記でより詳細に説明するように、垂直配置で積層されたチップを有するマルチチップ集積回路デバイスにおいて実装可能である。例としてプログラム可能リソースを有する集積回路デバイスが示されているが、下記に示すシステムおよび方法は、任意のタイプの集積回路デバイスにおいて実装可能であることを理解されたい。さらに、プログラム可能リソースを有する集積回路に関する追加の詳細は、
図12を参照しながら提供される。
【0015】
次に
図2を見ると、集積回路デバイスの断面図が示されている。集積回路200は、複数の積層ICチップを有するパッケージ基板202を備える。より具体的に言えば、システムおよび方法は任意数のチップを用いて実装可能であるが、
図2の例示の実装は、3つのICチップ204、206、および208を備える。チップは、チップのバイア、ならびに、接点要素210および212を含むチップ間の接続要素などの使用を介して、チップ間の通信を可能にするように構成される。
図2に示されるように、第1のICチップ204は、アクティブ領域216上に形成される複数の金属層214を備え、第2のICチップ206は、アクティブ領域220上に形成される複数の金属層218を備え、第1のICチップおよび第2のICチップは接点要素210によって接続される。第3のICチップ208は、アクティブ領域224上に形成される複数の金属層222を備える。複数の金属層は、一般に、ICチップ内の信号の通信を可能にするトレースおよびバイアを含む。BTSVなどのバイア226は、パッケージリッド228を有する集積回路デバイスのICチップ間での信号の通信を可能にする。
図2のICチップの配置は、チップの前面または背面接続を示す1つの例示の配置を示すが、ICチップは他の配置でも実装可能であることを理解されたい。
【0016】
次に
図3を見ると、集積回路デバイスの別の断面図が示されており、
図3の例示の配置は、下記でより詳細に説明するように、トレースの長さを減少させるために使用可能な特定の接続およびバイアを示す。より具体的に言えば、基板202上の、ここでは例としてはんだボールとして示される接点要素302は、トレース304およびバイア306を用いてICチップに電気的に接続可能である。ここでははんだバンプとして示される接点要素308は、パッケージ基板202と接触層309の接点要素との間の接続を可能にする。ここでははんだバンプとして示される接点要素310は、接触層312および314を用いてチップ204とチップ206との間の接続を可能にする。ここでははんだバンプとして示される接点要素316は、接触層318および320を用いてチップ208とチップ206との間の接続を可能にする。
【0017】
いくつかの従来のマルチチップモジュールの場合のような、インターポーザ上の水平配置での複数チップの実装ではなく、チップは垂直に(すなわち、Z方向に)積層される。チップを垂直に積層することによって、チップがインターポーザ上で隣り合う配置に比べて、2つのチップの回路要素を互いにより近くすることができる。すなわち、積層チップ間で(すなわち、
図3に示されるように、Z方向または垂直方向で)、BSTVなどのバイアを用いて接続を実装することによって、2つのチップ内の回路要素間の距離は、水平に互いに近接して配置されたチップに比べて短い。AoA集積回路デバイスを使用するとき、チップの背面をICチップの形成中に薄くするかまたは除去し、チップの厚みを減少させ、したがって、IC内に積層された異なるチップ内の回路間を信号が移動する必要のある距離を減少させることが可能であることに留意されたい。
【0018】
次に
図4を見ると、本明細書で説明するプロセスおよび方法を実装するのに適したコンピュータ401を有するシステム400の、例示的な例を示すブロック図が示されている。たとえば、コンピュータ401は、
図5のシステム500ならびに
図10および
図11の方法を実装するために使用可能である。コンピュータ401は、プロセッサ402、メモリ404、様々なサポート回路405、およびI/Oインターフェース403を含む。プロセッサ402は、当分野で既知の任意のタイプのマイクロプロセッサとすることができる。プロセッサ402のためのサポート回路405は、従来のキャッシュ、電源、クロック回路、データレジスタ、I/Oインターフェースなどを含む。I/Oインターフェース403は、メモリ404に直接結合するか、またはプロセッサ402を介して結合することができる。I/Oインターフェース403は、従来のキーボード、マウス、プリンタ、ディスプレイなどの、様々な入力デバイス412および出力デバイス411に結合することができる。
【0019】
メモリ404は、本明細書で説明するシステムおよび方法を実装するための、1つまたは複数のプログラムおよび/またはデータのすべてまたは一部を記憶する。本開示の1つまたは複数の態様が、コンピュータ実行ソフトウェアプログラムとして実装されるように開示されているが、当業者であれば、本開示は、ハードウェア、ソフトウェア、または、ハードウェアおよびソフトウェアの組み合わせにおいて、実装可能であることを理解されよう。こうした実装は、様々なプログラムを独立に実行する多数のプロセッサと、ASICなどの専用ハードウェアとを含む。
【0020】
コンピュータ401は、OS/2、Java Virtual Machine、Linux、Solaris、Unix、Windows、その他の既知のプラットフォームとすることが可能な、オペレーティングシステムを用いてプログラミング可能である。オペレーティングシステムの少なくとも一部が、メモリ404内に配設可能である。メモリ404は、ランダムアクセスメモリ、読み取り専用メモリ、磁気抵抗性読み取り/書き込みメモリ、光学読み取り/書き込みメモリ、キャッシュメモリ、磁気読み取り/書き込みメモリなど、ならびに下記で説明するような信号担持媒体、のうちの1つまたは複数を含むことができる。
【0021】
本開示は、ソフトウェアにおいて、および/または、ソフトウェアとハードウェアとの組み合わせにおいて、たとえば特定用途集積回路(ASIC)、フィールドPGAを含むプログラム可能ゲートアレイ(PGA)、あるいは、ハードウェアデバイス、コンピューティングデバイス、または任意の他のハードウェア等価物上に展開される状態機械を使用して、実装可能であること、たとえば、前述の方法に関連するコンピュータ可読命令を使用して、集積回路デバイス内のルーティングリソースを選択する方法のステップ、機能、および/または動作を実行するためのハードウェアプロセッサを構成できることに、留意されたい。一実施形態において、本方法のための命令およびデータ(たとえば、コンピュータ実行可能命令を含むソフトウェアプログラム)は、メモリ404内にロードすること、および、方法のステップ、機能、または動作を実装するために、プロセッサ402、たとえばハードウェアプロセッサによって実行することが可能である。さらに、ハードウェアプロセッサが「動作」を実行するために命令を実行するとき、ハードウェアプロセッサは、動作を直接実行する、および/または、別のハードウェアデバイスまたは構成要素(たとえば、コプロセッサなど)の動作の実行を容易にする、動作の実行を指示する、または動作の実行のために協同する、ハードウェアプロセッサを含むことができる。
【0022】
本開示の一態様は、コンピュータシステムと共に使用するためのプログラム製品として実装される。プログラム製品のプログラムは、例示の機能を定義し、(i)書き込み不可記憶媒体(たとえば、CD-ROMドライブまたはDVDドライブによる読み取りが可能な、CD-ROMまたはDVD-ROMディスクなどの、コンピュータ内の読み取り専用メモリデバイス)上に永続的に記憶される情報、(ii)書き込み可能記憶媒体(たとえば、ディスケットドライブまたはハードディスクドライブ内のフロッピーディスク、あるいは読み取り/書き込み可能CDまたは読み取り/書き込み可能DVD)上に記憶される可変情報、または、(iii)ワイヤレス通信を含むコンピュータネットワークまたは電話網などを介して、通信媒体によってコンピュータに伝達される情報、を含むが限定されない、様々な信号担持媒体上に含めることが可能である。後者の例は、具体的には、インターネットおよび他のネットワークからダウンロードされる情報を含む。こうした信号担持媒体は、本開示の機能を指示するコンピュータ可読命令を担持しているとき、本開示の例を表す。
【0023】
上記で説明した方法に関するコンピュータ可読またはソフトウェア命令を実行するプロセッサは、プログラムプロセッサまたは特殊プロセッサとして認識可能である。したがって、本開示の本方法500(関連付けられたデータ構造を含む)は、有形または物理(広義に「非一時的」)コンピュータ可読記憶デバイスまたは媒体上に、たとえば、揮発性メモリ、不揮発性メモリ、ROMメモリ、RAMメモリ、磁気または光学式のドライブ、デバイス、またはディスケットなどの上に、記憶可能である。さらに、「有形」コンピュータ可読記憶デバイスまたは媒体は、物理デバイス、ハードウェアデバイス、または、触覚によって認識可能なデバイスを含む。より具体的に言えば、コンピュータ可読記憶デバイスは、コンピュータまたはアプリケーションサーバなどのプロセッサまたはコンピューティングデバイスによってアクセスされるべき、データおよび/または命令などの、情報を記憶する機能を提供する、任意の物理デバイスを含むことができる。
【0024】
次に
図5を見ると、本開示の1つまたは複数の態様に従った、PLDのための論理設計システムの例示的な例が示される。
図5は、本開示の1つまたは複数の態様に従った、プログラム可能論理デバイス(PLD)のための論理設計システム500の例示的な例を示すブロック図である。システム500は、論理キャプチャツール502、合成ツール504、フロアプランナ508、制約エディタ510、および実装ツール506を含む。本例において、システム500は、ターゲットFPGAを使用して論理設計を実装するように構成される。したがって、実装ツール506は、マップツール512、プレースアンドルート(PAR)ツール514、およびビットストリーム生成器1211を含む。システム500は、たとえばコンピュータ400を使用して実装可能である。特に、ツールはメモリ内に記憶され、中央処理ユニット(CPU)による実行のために構成された、1つまたは複数のソフトウェアプログラムの一部とすることができる。
【0025】
マルチチップ集積回路デバイスにおけるルーティングリソースを選択するシステムおよび方法のいくつかの態様によれば、集積回路の回路リソースの配置は、特定の領域に許可されているよりも多くの2チップ間のカットを有することを避けるために、反復的に修正可能である。PARツール514は、配置およびルーティングの両方を提供する。しかしながら、本発明の様々な態様に従ったマルチチップ集積回路デバイスにおいてルーティングリソースを選択するための配置プロセスを説明する前に、集積回路デバイス内の回路の配置およびルーティングを含む、集積回路デバイスをレイアウトするプロセスの例示的記述を説明する。システム500は、ルーティングを含む設計フローを介して回路設計を処理する。IC内の回路設計を実装することは、プログラム可能ICまたは特定用途向けIC(ASIC)のいずれであっても、必然的に、設計フローを介して回路設計を処理することを伴う。設計フローは、複数の異なる段階を含む。これらの段階は、一般に、合成、配置、およびルーティングを含む。
【0026】
合成は、回路の抽象的プログラム記述を低レベル設計実装に変換または転換するプロセスを表す。回路の抽象的プログラム記述は、回路の挙動を説明し、回路の「挙動記述」または「レジスタ転送レベル(RTL)記述」とも呼ばれる。挙動記述は、しばしばHDLを使用して指定される。合成を介して生成される低レベル設計実装は、典型的には相互接続論理ゲートとして指定される。
【0027】
合成は、マッピングも含むことができる。マッピングは、低レベル回路設計の論理ゲートを、回路設計が実装されるべき特定のIC、すなわち「ターゲットIC」内で実際に利用可能な様々なタイプの物理回路ブロックと、相関または合致させるプロセスである。たとえば、ルックアップテーブル(LUT)は複合関数を実装可能であるため、低レベル設計実装の1つまたは複数の論理ゲートを、単一のLUT、またはターゲットICの他のプログラム可能タイルにマッピングすることができる。マッピングされた回路設計は、低レベル論理ゲートとは対照的に、ターゲットIC上で利用可能な特定の回路ブロックに関してではあっても、低レベル設計実装と同じ機能性を指定する。
【0028】
配置は、合成された回路設計の要素を、ターゲットIC上に特定の場所を有する回路ブロックおよび/またはリソースの特定のインスタンスに割り当てるプロセスである。配置されると、回路設計の回路要素は、マッピングの後および配置の前の場合のように、特定タイプの回路ブロックおよび/またはリソースにのみ割り当てられるのとは対照的に、ターゲットIC上に特定の場所を有する。回路設計の回路要素の場所は、いったん配置されると、回路要素が割り当てられた回路ブロックおよび/またはリソースのインスタンスのターゲットIC上の場所である。ルーティングは、配置後に、ターゲットICの様々な回路ブロックを電気的に結合するために、配線、プログラム可能相互接続ポイント(PIP)、PIP設定、および/または他の相互接続などの、特定のルーティングリソースを選択するプロセスである。
【0029】
ICデバイス内の積層チップの1つの大きな利点は、チップがZ方向にチップの上にある場合、論理を共により近くに配置できることである。たとえば、2層のファブリックを有することで、CLBサイズをX,Y方向に2倍にし、ルーティングを2倍にする。チップをZ方向に積層することによって、ネット負荷およびドライバはそれほど遠く離れることはなく、Zリソース(たとえば、BTSV)を使用することによって、ネットはより短い長さのリソースを用いてルーティング可能である。結果として、各チップ上のルーティングリソースを減少させること、したがって金属層要件およびコストを減少させることが可能である。マルチスタックデバイスは、Z接続の数がZ接続の最大数を超えない限り、およびしたがってZ接続の最大数内である(すなわち、そのエリア内の層全体にわたるネットカットが、そのエリア内で利用可能なZリソースよりも多い)限り、同じ容量を有するモノリシックデバイスよりもルーティング可能である。マルチチップ集積回路デバイス内のルーティングリソースの選択を可能にするためのシステムおよび方法は、集積回路デバイスのチップを接続するために使用されるトレースの配線長を減少させること、およびしたがって、金属ルーティング要件を減少させ、集積回路デバイスの性能を向上させることが可能である。
【0030】
最大のX,Y配線長減少を得るために、Z接続性制約を無視する配置アルゴリズムを実行することが可能である。しかしながら、これにより、使用可能な遷移より多くのZ遷移(層全体にわたるネットカット)を必要とする配置を生成することができる。こうした設計配置は保証しなければならないため、こうした配置は実行不可能であるか、または設計はルーティング不能となる。下記でより詳細に説明するように、マルチチップICのためのルーティングリソースを選択するためのシステムおよび方法は、回路設計の要素を接続するために必要なトレースまたは他の接点要素の配線長を最小にすることによって、設計の配置を向上させることができるが、Zカットの量を超えずにZカットの使用を最大にすることもできる。一実装によれば、ウィンドウベースの区分化は、Zリソースの使用の減少を必要とする論理配置のエリア内で使用される。使用されるウィンドウのサイズを変化させることによって、Zカット減少のためのX,Y配線長とトレードオフすることが可能である。さらに、異なるアスペクト比でウィンドウを変化させることによって、使用可能なルーティング構造に基づいて重要な可能性がある、XまたはYのいずれかの方向に配線長をさらに追加するかどうかを制御することが可能である。たとえば、特定のICデバイスのチップは、水平方向に比べて垂直方向で、2倍のルーティングリソースを有する可能性がある。したがって、低減されたZ接続性について、垂直配線長をトレードオフすることが有益な可能性がある。区分器は配置の間、早急にすべてのネットに同時に対処するより大きな問題に取り組むため、ウィンドウベースの区分化は、スワップベース方法に存在する多くの局所的最小問題も考慮する。
【0031】
製造の観点から、Zカット密度を分析することが有益であり得、過剰使用/高利用のエリアは、実験結果に基づいて処理されることになる。実験結果を使用することで、全体の配線長の成長を最小にし、必要な場合にのみZカットの使用を減少させる。実験結果を設計最適化に適切に利用するために、ルータアルゴリズムがZリソースをどのように利用するかに基づいて、結果を分析することが必要となる。これらのリソースは、単一層(すなわち、積層チップのうちの単一チップ)内の輻輳を迂回するためなどの、単に層全体にわたってカットされるネットがルーティング可能であること以外の理由のために、使用可能である。
【0032】
次に
図6を見ると、フローチャートは、マルチチップ集積回路デバイスのルーティングリソースを選択する方法を示す。ブロック602において、マルチチップ集積回路デバイス上に設計が配置される。ブロック604において、チップ間の接続を可能にするために必要なバイアの数が推定される。ブロック605において、マルチチップICデバイスのエリア内の配置がバイア要件を超えるかどうかが判別される。すなわち、次いで、例としてバイアとして説明する、チップのエリアについてのバイアの最大数を超えるZ接続の数を有するチップのエリアが存在するかどうかが判別される。存在しない場合、プロセスは終了となる。存在する場合、ブロック606において、チップのエリアについてのバイアの最大数を超えるバイアの数を有するチップのエリアが識別される。ブロック608において、設計の一部と共に配置されるチップ内のリソースを定義する区画ウィンドウが選択され、区画ウィンドウは、バイアの数が再配置後の区画ウィンドウについてのバイアの最大要件に合致できるように選択される。ブロック609において、区画化問題が形成および解決される。ブロック610において、区画ウィンドウ内の設計の一部は、チップのエリア内のバイアの数がエリアについてのバイアの最大数を超えないように、ソリューションに基づいて再配置される。
【0033】
次に
図7を見ると、フローチャートは、ウィンドウの寸法の関数としての配線長の成長を制御しながら、TSV使用率を低下させるために区分化問題を作成および解決するための方法を示す。ネットリストは、回路内の構成要素の端子またはピン、および端子を相互接続する電気コネクタのリストである。ネットは、ピンを接続するICの金属層の電気トレースおよびバイアを表す。ブロック702において、エリア内に完全に含まれるすべてのネット(NETS_INTERNAL)が識別される。ブロック704において、同じ層上にあるエリア外にピンを有するすべてのネット(NETS_SAMEPLANE_L#)が識別される。ブロック706において、同じ層上にないエリア外にピンを有するすべてのネット(NETS_CUTOUTSIDE)が識別される。
【0034】
ブロック708において、区分器が定式化および解決される。例を挙げると、区分器問題は、チップのエリアについての最大利用/利用の許容分布を識別することができる。すなわち、エリア内の所与の割合のCLBなどの、エリア内のある割合のリソースが利用可能である。カットを最小にするためにNETS_INTERNALも識別される。カットを最小にするために同じ平面内のネット(NETS_SAMEPLANE_L#)が識別され、平面(PLANE L#)にロックされる。すでにカットを有するすべてのネットが無視される。次いで、配置問題が解決され、ソリューションに対して定義された平面上の論理は、できる限りオリジナルのX,Yの場所の近くに配置される。
【0035】
デバイスの大半で、ネットは、関連付けられたカットを最小にできるようにするために、まだNETS_INTERNALまでロックダウンされていない外部負荷と共に追加可能であることに留意されたい。処理されたエリアの外部のピンが同じ平面内にある場合、それらは、同じ平面内のネット(NETS_SAMEPLANE_L#)として扱うことができる。同じ平面上にあるという、または異なる平面上であるが接続に関して近い重み付けを有するという、タイミング理由にとって、いくつかの接続がより重要である場合、これらの目標を達成するように区分器を誘導することが可能である。段階的手法においてWLをさらに減少させるために、パス後WL最小化を行うことができる。
【0036】
区分器は、異なる機能を有することも可能であり、また、設計の配置を決定する際にいくつかの異なるステップに至る可能性もある。たとえば、双区分器を使用するときに、アルゴリズム上で再帰的処理を行うこと、および、区画間で一度適切にカットされたネットを管理することが必要な可能性があり、他のパスはそれらを処理すべきではなく、外部ネットカット(NETS_CUTOUTSIDE)として扱うべきである。
【0037】
図6~
図7の方法の様々な要素は、説明したように
図1~
図5の回路を使用して、または何らかの他の適切な回路を使用して、実装可能である。方法の特定の要素が記載されているが、
図1~
図5の開示に従って、方法の追加の要素、または要素に関する追加の詳細が実装可能であることを理解されたい。マルチチップICデバイスのICチップの例示の配置が示されているが、ICデバイス内のルーティングリソースを選択するシステムおよび方法は、同様の場所およびルート問題が存在すると仮定すれば、他の3Dデバイス実装において使用可能であることに留意されたい。
【0038】
例示的結果は、タイルベースのオプティマイザを使用してスライスの87%を利用する設計を用いて、4層デバイスについて生成された。
図8~
図11の表は、エリア内のバイアの数がエリアについての所定の最大値を超えない旨を保証するために、区画ウィンドウの選択の効果を示す。回路設計の初期配置は、Z接続に関係なく行うことができる。
図8は、水平および垂直の両方の寸法によって定義される区画ウィンドウの関数として使用される、Zカットの割合を示す(水平および垂直の寸法は、前述のようにウィンドウを定義するための任意の基準に関することができる)。
図8に示されるように、オリジナルの配置は、その領域内で許容できるZカットの最大数を超える(すなわち、左上のボックス内に示される119よりも大きい)領域内のZカットにつながる。異なるウィンドウが定義される場合、領域についてのZカットの数は減少することがわかる。例として囲まれたボックスによって示されるように、利用可能なZカットの97パーセントを使用する要求されるZカットは、ハイライト表示されたボックス内に示されるように、2×4の区画ウィンドウを用いて達成可能である。異なる数のZカットにつながる多くの異なる寸法が選択可能であるが、
図9~
図11を参照しながら下記で説明するように、配線長要件は増加することになる。
【0039】
より具体的に言えば、区画ウィンドウの水平寸法の関数としての総配線長における増加が、
図9に示されている。たとえば領域内の総配線長は、最初は100(すなわち、100%)であり、104は104%を示すか、または区画のより大きな区画ウィンドウを使用することによって、配線長における4パーセントの増加(したがって、設計の一部が配置されるオリジナル領域におけるより少ないZカット)を示すことになる。
図9を見るとわかるように、区画ウィンドウの水平および垂直の寸法の寸法が増加すると、Zカットはウィンドウ内のZカットの最大数よりも少なくなることを保証し、領域内に配置される設計の一部の配線長も増加することになる(表の右下隅が最も増加する)。ハイライト表示されたボックス内に示される(すなわち、水平寸法2および垂直寸法1を有する)ウィンドウを選択することによって、Zカットの数が最大の許容Zカットの97%まで減少するときに、配線長には4%のみの増加が存在する。
【0040】
図10および
図11は、配線長の変化が、水平方向対垂直方向での変化に依存して、どのように異なって変動し得るかを示す。また、ウィンドウのアスペクト比によって、垂直対水平のWL成長を制御可能であることを示している。より具体的に言えば、配線長は
図10の実装において、垂直方向での変化に比べて水平方向での変化で、より大きく増加するが、配線長は
図11の実装において、水平方向での変化に比べて垂直方向での変化で、より大きく増加する。すなわち、集積回路デバイスにおいて使用されるチップの特性に依存して、配線長における増加を最小にしながら、Zカットの実装をより容易にするようにアスペクト比を選択するべきである。配線長が、水平方向においてより大きな寸法を伴う区画ウィンドウについてより大きく増加する特性を有するデバイスでは、区画ウィンドウは、水平方向よりも大きな垂直寸法を伴うアスペクト比を有するように選択するべきである。配線長が、垂直方向においてより大きな寸法を伴う区画ウィンドウについてより大きく増加する特性を有するデバイスでは、区画ウィンドウは、垂直方向よりも大きな水平寸法を伴うアスペクト比を有するように選択するべきである。Zカットを最大にし、配線長を最小にすることによって、積層マルチチップICデバイスの性能を向上させることができる。
【0041】
次に
図12を見ると、チップのうちの1つとして実装可能な再構成可能回路を有する集積回路の別の例のブロック図が示されている。プログラム可能リソースを有するデバイスは、プログラム可能リソースを有する特定用途向け集積回路(ASIC)などの、任意のタイプの集積回路デバイスにおいて実装可能である一方で、他のデバイスは、専用プログラム可能論理デバイス(PLD)を備える。1つのタイプのPLDは、結合プログラム可能論理デバイス(CPLD)である。CPLDは、2つまたはそれ以上の共に接続された、相互接続スイッチマトリクスによるリソースの入力/出力(I/O)のための、「機能ブロック」を含む。CPLDの各機能ブロックは、プログラム可能論理アレイ(PLA)またはプログラム可能アレイ論理(PAL)デバイスで使用されるものと同様の、2層AND/OR構造を含む。別のタイプのPLDは、フィールドプログラム可能ゲートアレイ(FPGA)である。典型的なFPGAでは、構成可能論理ブロック(CLB)のアレイがプログラム可能入力/出力ブロック(IOB)に結合される。CLBおよびIOBは、プログラム可能ルーティングリソースの階層によって相互接続される。これらのCLB、IOB、およびプログラム可能ルーティングリソースは、典型的にはオフチップメモリからFPGAの構成メモリセル内へ構成ビットストリームをロードすることによってカスタマイズされる。これらの両方のタイプのプログラム可能論理デバイスについて、デバイスの機能性は、その目的でデバイスに提供される構成ビットストリームの構成データビットによって制御される。構成データビットは、揮発性メモリ(たとえば、FPGAおよびいくつかのCPLDにおけるような、静的メモリセル)内、不揮発性メモリ(たとえば、いくつかのCPLDにおけるような、フラッシュメモリ)内、または、任意のタイプのメモリセル内に記憶可能である。
【0042】
図12のデバイスは、マルチギガバイトトランシーバ(MGT)1201、CLB 1202、ランダムアクセスメモリブロック(BRAM)1203、入力/出力ブロック(IOB)1204、構成およびクロッキング論理(CONFIG/CLOCKS)1205、デジタル信号処理ブロック(DSP)1206、特殊化入力/出力ブロック(I/O)1207(たとえば、構成ポートおよびクロックポート)、および、デジタルクロックマネージャ、アナログ対デジタル変換器、システム監視論理などの他のプログラム可能論理1208を含む、多数の異なるプログラム可能タイルを有する、FPGAアーキテクチャ1200を備える。いくつかのFPGAは、たとえばソフトウェアアプリケーションを実装するために使用可能な専用プロセッサブロック(PROC)1210も含む。
【0043】
いくつかのFPGAにおいて、各プログラム可能タイルは、各近接タイルにおける対応する相互接続要素との間に標準化接続を有するプログラム可能相互接続要素(INT)1211を含む。したがって、まとめられたプログラム可能相互接続要素は、例示のFPGAに対してプログラム可能相互接続構造を実装する。プログラム可能相互接続要素1211は、
図12の頂部に含まれる例によって示されるように、同じタイル内のプログラム可能論理要素との間の接続も含む。
【0044】
たとえば、CLB 1202は、ユーザ論理に単一のプログラム可能相互接続要素1211を加えたものを実装するようにプログラム可能な、構成可能論理要素(CLE)1212を含むことができる。BRAM 1203は、1つまたは複数のプログラム可能相互接続要素に加えて、BRAM論理要素(BRL)1213を含むことができる。BRAMは、構成論理ブロックの分布RAMとは別の専用メモリを含む。典型的には、タイルに含まれる相互接続要素の数はタイルの高さに依存する。図示された実装において、BRAMタイルは5つのCLBと同じ高さを有するが、他の数も使用可能である。DSPタイル1206は、適切な数のプログラム可能相互接続要素に加えて、DSP論理要素(DSPL)1214を含むことができる。IOB 1204は、プログラム可能相互接続要素1211の1つのインスタンスに加えて、たとえば入力/出力論理要素(IOL)1215の2つのインスタンスを含むことができる。デバイスの接続の場所は、その目的でデバイスに提供された構成ビットストリームの構成データビットによって制御される。プログラム可能相互接続は、構成ビットストリームのビットに応答して、様々な信号をプログラム可能論理内に実装された回路、あるいは、BRAMまたはプロセッサなどの他の回路に結合するために、相互接続線を備える接続を使用可能にする。
【0045】
図示された実装において、チップの中央近くのカラム状エリアが、構成、クロック、および他の制御論理に使用される。このカラムから延在する構成/クロック分布領域1209は、FPGAの幅にわたってクロックおよび構成信号を分布するために使用される。
図12に示されるアーキテクチャを利用するいくつかのFPGAは、FPGAの大部分を構成する規則的なカラム構造を分断する追加の論理ブロックを含む。追加の論理ブロックは、プログラム可能ブロックおよび/または専用論理とすることができる。たとえば
図12に示されるプロセッサブロックPROC 1210は、CLBおよびBRAMのいくつかのカラムにわたる。
【0046】
図12は、例示のFPGAアーキテクチャのみを示すように意図されていることに留意されたい。カラム内の論理ブロックの数、カラムの相対的な幅、カラムの数および順序、カラムに含まれる論理ブロックのタイプ、論理ブロックの相対的なサイズ、および、
図12の頂部に含まれる相互接続/論理実装は、単なる例である。たとえば、実際のFPGAでは、ユーザ論理の効率的な実装を容易にするために、典型的にはCLBの複数の近接するカラムはCLBが現れるところであればどこにでも含まれる。
図12の実装は、プログラム可能リソースを有する集積回路に関するが、下記でより詳細に示す回路および方法は、任意のタイプのASIC内に実装可能であることを理解されたい。
【0047】
マルチチップ集積回路デバイスにおいてルーティングリソースを選択する方法を説明する。こうした方法は、マルチチップ集積回路デバイス上に設計を配置すること、設計の一部と共に配置することができるマルチチップ集積回路デバイスのチップ間の接続を可能にするために必要なバイアの数を推定すること、チップのエリアについてのバイアの最大数よりも大きいことがあるバイアの数を有するチップのエリアを識別すること、設計の一部と共に配置することができるチップ内のリソースを定義する区画ウィンドウを選択することであって、区画ウィンドウは、バイアの数を区画ウィンドウについてのバイアの最大要件に合致させることができるように選択することができる、区画ウィンドウを選択すること、および、チップのエリア内のバイアの数がエリアについてのバイアの最大数以内であり得るように、区画ウィンドウ内に設計の一部を再配置すること、を含むことができる。
【0048】
何らかのこうした方法において、マルチチップ集積回路デバイス上に設計を配置することは、アクティブオンアクティブマルチチップ集積回路デバイスのチップ内に設計を配置することを含むことができる。
【0049】
何らかのこうした方法において、区画ウィンドウを選択することは、チップの幾何エリア、チップのリソースのセット、およびチップの複数のタイル、のうちの少なくとも1つを選択することを含むことができる。
【0050】
何らかのこうした方法は、区画ウィンドウの選択に基づいて配線長の成長を制御することを、さらに含むことができる。
【0051】
何らかのこうした方法において、配線長の成長を制御することは、水平方向および垂直方向の両方の配線長の成長を制御することを含むことができる。
【0052】
何らかのこうした方法において、区画ウィンドウを選択することは、第1の数の水平タイルおよび第2の数の垂直タイルを有する区画ウィンドウを選択することを含むことができる。
【0053】
何らかのこうした方法は、チップの他のエリアについてのバイアの最大数よりも大きいことがあるバイアの数を有するチップの該他のエリアを決定することを、さらに含むことができる。
【0054】
何らかのこうした方法は、チップのエリア内に完全に含まれるネット、およびエリアの外にピンを有するネットを識別することを、さらに含むことができる。
【0055】
何らかのこうした方法において、区画ウィンドウを選択することは、区画ウィンドウ内のリソースの最大利用率を有する区画ウィンドウの部分を識別することを、含むことができる。
【0056】
何らかのこうした方法において、区画ウィンドウを選択することは、カットを最小にするためにエリア内に完全に含まれるネットを識別することを、含むことができる。
【0057】
別の例において、システムを提供することができる。こうしたシステムは、プロセッサおよびコンピュータ可読媒体を含むことができ、コンピュータ可読媒体は、プロセッサによって実行されたとき、プロセッサに動作を実行させる命令を記憶し、動作は、マルチチップ集積回路デバイス上に設計を配置すること、設計の一部と共に配置することができるマルチチップ集積回路デバイスのチップ間の接続を可能にするために必要なバイアの数を推定すること、チップのエリアについてのバイアの最大数よりも大きいことがあるバイアの数を有するチップのエリアを識別すること、設計の一部と共に配置することができるチップ内のリソースを定義する区画ウィンドウを選択することであって、区画ウィンドウは、バイアの数を区画ウィンドウについてのバイアの最大要件に合致させることができるように選択することができる、区画ウィンドウを選択すること、および、チップのエリア内のバイアの数がエリアについてのバイアの最大数以内であり得るように、区画ウィンドウ内に設計の一部を再配置すること、を含む。
【0058】
こうしたシステムにおいて、区画ウィンドウを選択することは、チップの幾何エリア、チップのリソースのセット、およびチップの複数のタイル、のうちの少なくとも1つを選択することを含むことができる。
【0059】
何らかのこうしたシステムは、区画ウィンドウの選択に基づいて配線長の成長を制御することを、さらに含むことができる。
【0060】
こうしたシステムにおいて、配線長の成長を制御することは、水平方向および垂直方向の両方の配線長の成長を制御することを含むことができる。
【0061】
こうしたシステムにおいて、区画ウィンドウを選択することは、第1の数の水平タイルおよび第2の数の垂直タイルを有する区画ウィンドウを選択することを含むことができる。
【0062】
何らかのこうしたシステムは、チップの他のエリアについてのバイアの最大数よりも大きいことがあるバイアの数を有するチップの該他のエリアを決定することを、さらに含むことができる。
【0063】
別の例において、命令を記憶する非一時的コンピュータ可読媒体を提供することができる。こうした非一時的コンピュータ可読媒体は、プロセッサによって実行されたとき、プロセッサに動作を実行させる命令を記憶しており、動作は、マルチチップ集積回路デバイス上に設計を配置すること、設計の一部と共に配置することができるマルチチップ集積回路デバイスのチップ間の接続を可能にするために必要なバイアの数を推定すること、チップのエリアについてのバイアの最大数よりも大きいことがあるバイアの数を有するチップのエリアを識別すること、設計の一部と共に配置することができるチップ内のリソースを定義する区画ウィンドウを選択することであって、区画ウィンドウは、バイアの数を区画ウィンドウについてのバイアの最大要件に合致させることができるように選択することができる、区画ウィンドウを選択すること、および、チップのエリア内のバイアの数がエリアについてのバイアの最大数以内であり得るように、区画ウィンドウ内に設計の一部を再配置すること、を含むことができる。
【0064】
何らかのこうした非一時的コンピュータ可読媒体は、チップのエリア内に完全に含まれるネット、およびエリアの外にピンを有するネットを識別することを、さらに含むことができる。
【0065】
何らかのこうした非一時的コンピュータ可読媒体において、区画ウィンドウを選択することは、区画ウィンドウ内のリソースの最大利用数を有する区画ウィンドウの部分を識別することを、含むことができる。
【0066】
何らかのこうした非一時的コンピュータ可読媒体において、区画ウィンドウを選択することは、カットを最小にするためにエリア内に完全に含まれるネットを識別することを、含むことができる。
【0067】
したがって、マルチチップ集積回路デバイスのルーティングリソースを選択するための新しい回路および方法を説明してきたことが理解できよう。当業者であれば、開示した発明を組み込む多数の代替および等価物が存在するとみられることを理解されよう。結果として、本発明は前述の実装によって限定されず、下記の特許請求の範囲によってのみ限定されるものである。