"ネットを配線する方法であって、1セットのピンのセットを含むネットの仕様を受信し、前記ネットを配線するために第1の配線を作成し、前記ネットを構成する前記ピンのセットをコスト関数に少なくとも部分的に基づいて前記ネットを構成する前記ピンのセットを1または複数のグループに分割し、前記ネットの各グループに対して、前記第1の配線に接続する第2の配線を作成し、前記ネットの各グループの各ピンに対して、前記ピンを前記グループの前記第2の配線に接続する第3の配線を作成すること、を備える方法。前記ネットは、集積回路の一部である請求項1に記載の方法。前記第1の配線、各グループに関連する前記第2の配線および各ピンに関連する前記第3の配線は、前記ネットを配線するために使用される請求項1に記載の方法。前記第1の配線は、前記ネットのメインスパインを含む請求項1に記載の方法。前記ネットを構成する前記ピンのセットを1または複数のグループに分割することは、前記第1の配線の位置に少なくとも部分的に基づく請求項1に記載の方法。各グループのピンが前記第1の配線と同じ側に配置される請求項1に記載の方法。前記コスト関数は、配線長に少なくとも部分的に基づく請求項1に記載の方法。前記ネットを構成する前記ピンのセットを1または複数のグループに分割することは、k-means法クラスタリングアルゴリズムまたはk-median法クラスタリングアルゴリズムに少なくとも部分的に基づいて分割することを備える請求項1に記載の方法。前記第2の配線は、前記ネットの第2のレベルのスパインを備える請求項1に記載の方法。前記第1の配線および前記第2の配線が実質的に直交するよう配置されている請求項1に記載の方法。ネットを配線するシステムであって、1セットのピンのセットを含むネットの仕様を受信し、前記ネットを配線するために第1の配線を作成し、前記ネットを構成する前記ピンのセットをコスト関数に少なくとも部分的に基づいて1または複数のグループに分割し、前記ネットの各グループに対して、前記第1の配線に接続する第2の配線を作成し、前記ネットの各グループの各ピンに対して、前記ピンを前記グループの前記第2の配線に接続する第3の配線を作成するように構成されるプロセッサと、前記プロセッサに接続され、前記プロセッサに命令を提供するように構成されるメモリと、を備えるシステム。前記ネットを配線するために、前記第1の配線、各グループに関連する前記第2の配線および各ピンに関連する前記第3の配線を使用する請求項11に記載のシステム。前記第1の配線は、前記ネットのメインスパインを含む請求項11に記載のシステム。前記ネットを構成する前記ピンのセットは、前記第1の配線に少なくとも部分的に基づいて1または複数のグループに分割される請求項11に記載のシステム。前記コスト関数は、配線長に少なくとも部分的に基づく請求項11に記載のシステム。前記ネットを構成する前記ピンのセットを1または複数のグループに分割することは、k-means法クラスタリングアルゴリズムまたはk-median法クラスタリングアルゴリズムに少なくとも部分的に基づいて分割されることを備える請求項11に記載のシステム。前記第2の配線は、前記ネットの第2のレベルのスパインを備える請求項11に記載のシステム。前記第1の配線および前記第2の配線が実質的に直交するよう配置されている請求項11に記載のシステム。ネットを配線するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、コンピュータ読み込み可能な記憶媒体に実装され、1セットのピンのセットを含むネットの仕様を受信し、前記ネットを配線するために第1の配線を作成し、前記ネットを構成する前記ピンのセットをコスト関数に少なくとも部分的に基づいて1または複数のグループに分割し、前記ネットの各グループに対して、前記第1の配線に接続する第2の配線を作成し、前記ネットの各グループの各ピンに対して、前記ピンを前記グループの前記第2の配線に接続する第3の配線を作成する計算機命令を備えるコンピュータプログラム製品。前記ネットを配線するために、前記第1の配線、各グループに関連する前記第2の配線および各ピンに関連する前記第3の配線を使用する請求項19に記載のコンピュータプログラム製品。前記第1の配線は、前記ネットのメインスパインを含む請求項19に記載のコンピュータプログラム製品。前記ネットを構成する前記ピンのセットは、前記第1の配線に、少なくとも部分的に基づいて1または複数のグループに分割される請求項19に記載のコンピュータプログラム製品。前記コスト関数は、配線長に少なくとも部分的に基づく請求項19に記載のコンピュータプログラム製品。前記第2の配線は、前記ネットの第2のレベルのスパインを備える請求項19に記載のコンピュータプログラム製品。前記第1の配線および前記第2の配線が実質的に直交するよう配置されている請求項19に記載のコンピュータプログラム製品。複数のネットを配線するための方法であって、複数のネットの仕様を受信し、メインスパインに利用可能な配線トラックの1セットの仕様を受信し、コスト関数に少なくとも部分的に基づいて、前記複数のネットそれぞれにメインスパイン配線トラックを割り当て、前記複数のネットそれぞれに割り当てられる前記メインスパイン配線トラックにメインスパイン配線を作成することを備える方法。前記複数のネットは、集積回路を含む請求項26に記載の方法。コスト関数に少なくとも部分的に基づいて前記複数のネットそれぞれにメインスパイン配線トラックを割り当てることは、線形割当問題に対する解決策に基づく請求項26に記載の方法。コスト関数に少なくとも部分的に基づいて前記複数のネットそれぞれにメインスパイン配線トラックを割り当てることは、線形割当問題に対する解決策に基づいており、1または複数の利用可能な前記メインスパイン配線トラックが、各ネットについて考慮される、請求項26に記載の方法。前記コスト関数は、配線長に少なくとも部分的に基づく請求項26に記載の方法。前記コスト関数は、第1のコスト関数を含み、前記複数のネットそれぞれにメインスパイン配線トラックを割り当てることは、第2のコスト関数に少なくとも部分的に基づいて、各ネットに関連するピンを1または複数のグループに分割することを備える請求項26の方法。前記第2のコスト関数は、配線長に少なくとも部分的に基づく請求項31に記載の方法。前記第1コスト関数は、前記第2のコスト関数を含む請求項31に記載の方法。各ネットに関連するピンを1または複数グループに分割することは、前記ネットに割り当てられる前記メインスパイン配線トラックの位置に少なくとも部分的に基づく請求項31に記載の方法。各グループのピンは、対応するネットのメインスパインと同じ側に配置される請求項31に記載の方法。各ネットに関連するピンを1または複数のグループに分割することは、k-means法クラスタリングアルゴリズムまたはk-median法クラスタリングアルゴリズムに少なくとも部分的に基づいて分割されることを備える請求項31に記載の方法。第2のレベルのスパインに利用可能な配線トラックの1セットの仕様を受信し、第3のコスト関数に少なくとも部分的に基づいて、各ネットの各グループに第2のレベルのスパイン配線トラックを割り当てることをさらに備える請求項31に記載の方法。前記第3のコスト関数は、配線長に少なくとも部分的に基づく請求項37に記載の方法。第3のコスト関数に少なくとも部分的に基づいて各ネットの各グループに第2のレベルのスパイン配線トラックを割り当てることは、線形割当問題に対する解決策に基づく請求項37に記載の方法。第3のコスト関数に少なくとも部分的に基づいて各ネットの各グループに第2のレベルのスパイン配線トラックを割り当てることは、線形割当問題に対する解決策に基づいており、1または複数の利用可能な前記第2のレベルのスパイン配線トラックが各グループにについて考慮される、請求項37に記載の方法。各グループの前記第2のレベルのスパイン配線トラックに、第2のレベルのスパイン配線を作成することをさらに備える請求項37に記載の方法。各グループの各ピンと前記グループに関連する第2のレベルのスパイン配線との間の配線を作成することをさらに備える請求項41に記載の方法。前記第1のコスト関数、前記第2のコスト関数および前記第3のコスト関数の1または複数が同じである請求項37に記載の方法。前記第2のレベルのスパイン配線トラックが、前記メインスパイン配線トラックと実質的に直交するよう配置されている請求項37に記載の方法。複数のネットを配線するためのシステムであって、複数のネットの仕様を受信し、メインスパインに利用可能な配線トラックの1セットの仕様を受信し、コスト関数に少なくとも部分的に基づいて、前記複数のネットそれぞれにメインスパイン配線トラックを割り当て、前記複数のネットそれぞれに割り当てられたメインスパイン配線トラックにメインスパイン配線を作成するように構成されるプロセッサと、前記プロセッサに接続して、前記プロセッサに命令を提供するように構成されるメモリと、を備えるシステム。コスト関数に少なくとも部分的に基づいて、前記複数のネットそれぞれにメインスパイン配線トラックを割り当てることは、線形割当問題に対する解決策に基づいており、利用可能な前記メインスパイン配線トラックの1または複数が、各ネットにについて考慮される、請求項45に記載のシステム方法。前記コスト関数は、配線長に少なくとも部分的に基づく請求項45に記載のシステム。前記コスト関数は、第1のコスト関数を含み、前記複数のネットそれぞれにメインスパイン配線トラックを割り当てることは、第2のコスト関数に少なくとも部分的に基づいて各ネットに関連するピンを1または複数のグループに分割することを備える請求項45に記載のシステム。前記第2のコスト関数は、配線長に少なくとも部分的に基づく請求項48に記載のシステム。前記第1のコスト関数は、前記第2のコスト関数を備える請求項48に記載のシステム。前記プロセッサは、第2のレベルのスパインに利用可能な配線トラックの1セットの仕様を受信し、第3のコスト関数に少なくとも部分的に基づいて、各ネットの各グループに第2のレベルのスパイン配線トラックを割り当てるように構成される請求項48に記載のシステム。前記第3のコスト関数は、配線長に少なくとも部分的に基づく請求項51に記載のシステム。第3のコスト関数に少なくとも部分的に基づいて、各ネットの各グループに第2のレベルのスパイン配線トラックを割り当てることは、線形割当問題に対する解決策に基づいており、利用可能な第2のレベルのスパイン配線トラックの1または複数が、各グループにについて考慮される、請求項51に記載のシステム。前記プロセッサは、各グループに割り当てられた前記第2のレベルのスパイン配線トラックに、第2のレベルのスパイン配線を作成するようにさらに構成される請求項51に記載のシステム。前記プロセッサは、各グループの各ピンと前記グループに関連する第2のレベルのスパイン配線との間の配線を作成するようにさらに構成される請求項54に記載のシステム。前記第1のコスト関数、前記第2のコスト関数および前記第3のコスト関数の1または複数が同じである請求項51に記載のシステム。前記第2のレベルのスパイン配線トラックが、メインスパイン配線トラックと実質的に直交するよう配置されている請求項51に記載のシステム。複数のネットを配線するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、コンピュータが読み込み可能な記憶媒体に実装され、複数のネットの仕様を受信し、メインスパインに利用可能な配線トラックの1セットの仕様を受信し、コスト関数に少なくとも部分的に基づいて、前記複数のネットそれぞれにメインスパイン配線トラックを割り当て、前記複数のネットそれぞれに割り当てられた前記メインスパイン配線トラックにメインスパイン配線を作成する計算機命令を備えるコンピュータプログラム製品。前記コスト関数は、配線長に少なくとも部分的に基づく請求項58に記載のコンピュータプログラム製品。コスト関数は第1のコスト関数を含み、第2のコスト関数に少なくとも部分的に基づいて、前記複数のネットそれぞれにメインスパイン配線トラックを割り当てることは、各ネットに関連するピンを1または複数のグループに分割することを備える請求項58に記載のコンピュータプログラム製品。前記第2のコスト関数は、配線長に少なくとも部分的に基づく請求項60に記載のコンピュータプログラム製品。第2のレベルのスパインに利用可能な配線トラックの1セットの仕様を受信し、第3のコスト関数に少なくとも部分的に基づいて、各ネットの各グループに第2のレベルのスパイン配線トラックを割り当てる計算機命令をさらに備える請求項60に記載のコンピュータプログラム製品。前記第3のコスト関数は、配線長に少なくとも部分的に基づく請求項62に記載のコンピュータプログラム製品。各グループに割り当てられた前記第2のレベルのスパイン配線トラックに、第2のレベルのスパイン配線を作成する計算機命令をさらに備える請求項62に記載のコンピュータプログラム製品。各グループの各ピンと前記グループに関連する第2のレベルのスパイン配線との間の配線を作成する計算機命令をさらに備える請求項64に記載のコンピュータプログラム製品。本発明は、プロセス、装置、システム、物質組成、コンピュータ読み込み可能な記憶媒体に実装したコンピュータプログラム製品、および/または、プロセッサに接続したメモリに格納された命令および/またはプロセッサに接続したメモリから提供される命令を実行するように構成されるプロセッサなどの多くの方法で実装することができる。本願明細書では、これらの実装形態、または、本発明が取りうるその他の形態を技法と呼ぶ。一般に、開示する処理ステップの順序は、本発明の範囲内で変更することができる。別途記載のない限り、タスクを実行するように構成されると記載するプロセッサやメモリなどの構成部品は、所定の時間にタスクを実行するために一時的に構成される一般的な構成部品として、あるいは、タスクを実行するように製造される特定の構成部品として実装されうる。本願明細書で使用するように、用語プロセッサは、計算機プログラム命令などのデータを処理するように構成される1または複数の装置、回路および/またはプロセッシングコアを示す。以下に、本発明の1または複数の実施形態を、本発明の原理を示す添付図面と共に詳しく説明する。本発明は、そのような実施形態に関連して記載されるが、本発明はいかなる実施形態にも限定されない。本発明の範囲は、本願特許請求の範囲によってのみ限定され、本発明は多数の代替手段、改変例および均等物を含む。本発明を詳しく理解するために、以下の記載において多数の具体例を詳細に記載する。これらの具体例は、例示目的として示し、本発明は、これらの具体的な内容の一部または全体がなくても実施することができる。明確にするため、本発明に関する技術分野で知られている専門的なデータは、詳細に記載していないが、本発明は無用に不明瞭とはならない。一般に、集積回路設計のネットは、駆動セルから受信セルまで信号を搬送する配線接続を含む。ネットリストは、集積回路設計でネットを含む出力ピンの位置を指定し、出力ピンの位置は通常、配線前に確定される。配線時にネットを含む出力ピンを配線することは、ネットの実装形態を定義する。特定のネットに関連する出力ピンおよび/または配線接続は、集積回路設計の1または複数の金属層全体に分散する可能性がある。集積回路設計の配線には、さまざまな技法および設計が存在する。スパイン配線は、フィッシュボーン配線としても知られており、他の配線技法より多くの利点を備えている。たとえば、スパイン配線は、相互接続部のビアおよびジョグを減少でき、タイミング遅延および信号品位などの因子に関して、配線品質を改善することができる。既存のスパイン配線技法では、集積回路設計を含む複数のネットのそれぞれへのメインスパインの割当は通常、一度に1つのネットに対して逐次実行される。そのような場合には、ネットはその重要順に基づいて順位付けされ、メインスパインが割り当てられる発見的手法を使用してもよい。既存のスパイン配線技法は通常、単一のレベルのスパイン配線を含む。図1は、単一のネット100に関する典型的な従来技術のスパイン配線による結果を示す。本実施例では、メインスパイン102は水平に配線される。特定のネット100に関してメインスパイン102が選択されると、ネットの各ピン図1に丸円で示すは、ステッチングスパイン104などのステッチングスパインによって直接メインスパイン102に接続される。本願明細書に、改良されたスパイン配線技法を開示する。いくつかの実施形態では、マルチレベルのスパイン配線が使用される。すなわち、単一のレベル以上のスパイン配線が使用される。いくつかの実施形態で、ネットおよび/またはそのグループのスパインの割当を少なくとも部分的に最適化する複数のネットを配線するための体系的手法が使用されている。1または複数の開示する技法を使用して、従来の配線解決策に比して、総配線長、伝搬遅延、スキュー時間などの1または複数の因子が改善されている改良した集積回路トポロジーを実現してもよく、提供する実施例のいくつかには、スパインの水平および/または垂直な配線を記載しているが、本願明細書に開示する技法は、スパインの他の向きにも同じように使用してもよい。本願明細書には2つのレベルのスパイン配線は提供する実施例のいくつかに記載するが、開示する技法はスパイン配線の任意の数のレベルに同じように増加させてもよい。図2Aは、単一のネット200に関する2つのレベルのスパイン配線の実施形態を示す。本実施例では、メインスパイン202は水平方向に配線される。しかし、ネット200のピン図2Aに丸円で示すは、メインスパイン202に直接接続されない。その代わりに、ネット200のピンは、グループに分割され、第2のレベルのスパイン204~208は、各グループによって共有される。本実施例では、第2のスパイン204~208は、メインスパイン202に対して実質的に垂直に、あるいは、直交するように配線される。特に、第2のレベルのスパイン204は、ピン210~214を含むグループに割り当てられ、第2のレベルのスパイン206は、ピン216~222を含むグループに割り当てられ、第2のレベルのスパイン208はピン224~230を含むグループに割り当てられる。ネット200の各ピン210~230は、そのグループに割り当てられた第2のレベルのスパイン204~208に接続される。本実施例では、メインスパイン202は水平であり、第2のレベルのスパイン204~208は垂直であるが、他の実施態様では、メインスパインは垂直であってもよく、第2のレベルのスパインは水平であってもよい。一般に、ネットの総配線長は、全スパインの配線長と、ネットを含むピンを対応するスパインに接続する配線長とを合計して算出される。たとえば、2つのレベルのスパイン配線に関しては、ネットの総配線長は、メインスパインの長さ、第2のレベルの全スパインの長さおよびネットを含む各ピンから対応する第2のレベルのスパインまでの長さを合計して算出される。図2Aのネット200に関しては、たとえば、ネット200の総配線長は、メインスパイン202の長さ、第2のレベルのスパイン204~208の長さ、各ピン210~214と第2のレベルのスパイン204との間の長さ、各ピン216~222と第2のレベルのスパイン206との間の長さおよび各ピン224~230と第2のレベルのスパイン208との間の長さの合計である。図2Aに関して記載するように、いくつかの実施形態では、ネットを含むピンは1または複数のグループに分割される。ピンは、ネットの総配線長を最小にするようにグループに分割することができる。1または複数の適切な統計的技法を使用して、ネットを含むピンをグループに分割してもよい。たとえば、k-means法クラスタリングアルゴリズムは、ピンをグループに分割するのに使用される。k-means法クラスタリングアルゴリズムでは、所定のn個の測定値のセットx1、x2、...、xn各測定値はd次元ベクトルを含むが、以下の方程式によって得られるクラスタ内の二乗和を最小にするようにk≦n個のセットS=S1、S2、...、Skに分割される式中μiは、Si内の点の平均である。スパイン配線に関して、ネットのピンの配置は、配線前に確定されており、測定値のセットを含む。この場合には、各測定値または各ピンの位置は、ピンが直接接続されるスパインに対してピンの位置を特定する値を含む一次元ベクトルつまりdは1を含む。メインスパインが水平である図2Aの実施例では、垂直な第2のレベルのスパインの最適なx座標を求めるためには、ピンのx座標のみを対象とする必要がある。一方、メインスパインが垂直である実施態様では、水平な第2のレベルのスパインの最適なy座標を求めるためには、ピンのy座標のみを対象とする必要がある。いくつかの実施形態では、ネットを含むピンは、改変したk-means法クラスタリングアルゴリズムに基づいてグループに分割される。そのようなアルゴリズムは、経験的または発見的に少なくとも部分的に決定してもよい。場合によっては、たとえば、平均値の代わりに中央値を使用することによって、および/または、各グループ内のピンは全て、メインスパインの同じ側に位置するように、つまり、メインスパインの反対側のピンが、同一グループに分割しないようにグループに分割することによって、総配線長に関して良好な結果を得ることが可能である。そのような場合、ピンの分割問題は、各グループのピンがメインスパインの同じ側に配置されるように、メインスパインに対するピンの配置が考慮されるという制約のある一次元k-median法クラスタリング問題としてモデル化される。この問題を解決するために、ロイドアルゴリズムなどの1または複数の周知の統計的アルゴリズムを使用してもよい。いくつかの実施形態では、最適なグループ数を見つけるために、全数検索を実行し、kは1~ピンの数まで変化する。そのような場合、kが1であればネットのピンは全て1つのグループに分けられ、kがピンの数であればネットの各ピンはそれぞれの異なるグループに分類される。図2Bは、ネットを配線するための処理の実施態様を示すフローチャートである。いくつかの実施形態では、処理232が図2Aのネット200の2つのレベルのスパイン配線を作成するのに使用される。処理232は、ネットの仕様を受信するステップ234で開始する。いくつかの実施形態では、ネットの仕様は、ネットを含むピンのセットの場所または位置を含む。いくつかの実施形態では、その仕様はネットリストおよび/または配置システムの出力を含む。ステップ236では、このネットに関してメインスパインが作成される。たとえば、メインスパイン配線が作成される。いくつかの実施形態では、ステップ236は、メインスパインに対して、複数の利用可能なメインスパイントラックからトラックを選択することを含む。ステップ238では、ネットを含むピンのセットは、コスト関数に少なくとも部分的に基づいて1または複数のグループに分割される。ピンの分割は、k-means法クラスタリングアルゴリズムまたはk-median法クラスタリングアルゴリズムなどの統計的アルゴリズムに少なくとも部分的に基づいてもよい。いくつかの実施形態では、コスト関数は、配線長に少なくとも部分的に基づいている。ピンは、たとえば、各グループのピンがメインスパインの同じ側に配置されるように、メインスパインの位置に基づいて分割してもよい。ステップ240では、ネットの各グループに対してメインスパインに接続する第2のレベルのスパインが作成される。たとえば、第2のレベルのスパイン配線が作成される。いくつかの実施形態では、第2のレベルのスパインの場所または位置が、ステップ238のピンの分割に少なくとも部分的に基づいている。同じように、ステップ238のピンの分割は、第2のレベルのスパインに対する利用可能なトラックに少なくとも部分的に基づいてもよい。いくつかの実施形態では、ステップ240は、複数の利用可能な第2のレベルのスパイントラックから第2のレベルのスパイントラックを選択することを含む。ステップ242では、ネットの各グループの各ピンは、グループの第2のレベルのスパインに接続される。いくつかの実施形態では、さまざまな因子たとえば、位置を変更できない既存の構成要素または構造、設計ルールの制限などが、メインスパイン配線、第2のレベルのスパイン配線および第2のレベルの関連するスパインにピンを接続する配線の位置および場所を制約しうる。図3は、配線計画を作成する処理の実施形態を示すフローチャートである。たとえば、プロセス300は、集積回路またはその一部の配線計画を作成するために使用してもよい。すなわち、処理300は、たとえば、可能な範囲内でネットのセットの総配線長を最小限に抑えるように、スパインの1または複数のレベルに位置を割り当てることによって、複数のネットを系統的に配線するのに使用してもよい。処理300は、複数のネットの仕様を受信するステップ302で開始する。複数のネットは、集積回路設計またはその一部を含む。複数のネットの仕様は、ネットリストおよび/または配置システムの出力を含む場合もある。ステップ304では、メインスパインが割り当てることが可能なトラックのセットの仕様を受信する。トラックのセットの位置は、設計ルールおよび/またはユーザー仕様に基づいてもよい。ステップ302で配線するネットのセットと、ステップ304でメインスパインを割り当てることが可能なトラックのセットとが与えられると、メインスパイントラックは、ステップ306でネットの各セットに割り当てられる。各メインスパイントラックは、多くとも単一ネットに割り当てられる。メインスパイントラックは、たとえば、可能な範囲内にネットのセットの総配線長を最小限に抑えるコスト関数に少なくとも部分的に基づいてネットに割り当てられる。いくつかの実施形態では、メインスパイントラックの少なくとも一部のそれぞれに対するネットの総配線長が計算され、その計算に基づいて最適なトラック割当が選択される。たとえばN個のネットを1セット配線する必要があり、メインスパインをM個の選択可能なトラックに割り当てることができる場合、場合によっては、N×Mのマトリクスが作成され、エントリーが特定のトラックに割り当てた特定のネットの総配線長を表す。そのような場合、全ネットの総コストたとえば総配線長を最小にするトラック割当を選択することができる。いくつかの実施形態では、特定のトラックに関してネットの総配線長を計算することは、最初に上記したピンの分割技法を使用してトラックの場所または位置に基づく最適なグループ数にネットのピンを分割することを含む。すなわち、異なるメインスパイントラックに関するネットの相対的なピンの位置は、メインスパイントラックの場所または位置に依存することから、同じピンの分割は、異なるメインスパイントラックに対して最適ではなく、適用すらできない可能性がある。たとえば、1つのメインスパイントラックの特定の側に配置されるネットのいくつかのピンは、異なるメインスパイントラックの反対側に配置してもよい。そのように、利用可能なメインスパイントラックのそれぞれに対して、あるいは、少なくともその一部に対して、総配線長のさらに精確な予測値を得るために、グループへのピンの分割を実行する必要がありうる。さらに、算出される総配線長は、ピンの分割に関する上記のアルゴリズムを使用して求められる最適な第2のレベルのスパインの場所または位置に基づく予測値を含んでもよい。実際の総配線長は、設計において第2のレベルのスパインの利用可能な位置に対する制限に基づいて異なる可能性がある。図4は、ネットに割り当てるメインスパイントラックを求めるために使用するマトリクスの実施形態を示す。本実施例では、マトリクス400の各行は、ネットに対応し、マトリクス400の各列は選択可能なメインスパイントラックに対応する。マトリクス400は、3つの選択可能なメインスパイントラックすなわち、T1、T2およびT3に関する2つのネットすなわち、net1およびnet2の総配線長エントリーを含む。いくつかの実施態様では、1または複数の総配線長エントリーは、推量である。図に示すように、トラックT1をnet1に割り当てた場合、総配線長は500であり、トラックT2をnet1に割り当てた場合、総配線長は600であり、トラックT3をnet1に割り当てた場合、総配線長は400となる。同じように、トラックT1、T2およびT3をnet2に割り当てた場合、総配線長はそれぞれ、300、700および400となる。本実施例では、最適の割当は、トラックT3をnet1に、かつ、トラックT1をnet2に割り当てることであり、総配線長は700つまり、400300となる。数学的には、マトリクス400などのマトリクスを使用して、ネットの割当に対する最適のトラックを求めるという問題は、線形割当問題としてモデル化することができ、周知のアルゴリズムのうちいずれか1または複数を使用して、線形割当問題を解決することができる。たとえば、マトリクス400などの構造を有するマトリクスに関しては、線形割当問題は、次のように形式的に定義することができる。R行およびC列を有するマトリクスの場合、マトリクスの全行に関するMr,cの合計が最小になるように各行rに対して一意の列cを求める。ただし、Mr,cはマトリクスのr行目のc列目の値を示す。このような線形割当問題を解決するには、各トラックが多くとも単一のネットに割り当てられるように、ネットに対する最適なトラック割当を求めることが必要となる。そのような線形割当問題を解決することは、ネットに対してメインスパイントラックを割り当てることを含む。メインスパイントラックが、処理300のステップ306でネットに割り当てられると、そのトラックに対する最適のピンが分割され、これによりネットに対するグループ数および第2のレベルのスパイン数は既知となる。図3の処理300のステップ308では、第2のレベルのスパインを割り当てることが可能な1セットのトラックのセットの仕様を受信する。トラックのセットの位置は、設計ルールおよび/またはユーザー仕様に基づいてもよい。いくつかの実施形態では、第2のレベルのスパインは、メインスパインに対して実質的に垂直または直交する位置にある。ステップ310では、第2のレベルのスパイントラックは、各ネットの各グループに割り当てられる。メインスパイントラックの割当方法と同じような系統的手法は、第2のレベルのスパイントラックをネットのグループに割り当てるのに使用してもよい。すなわち、第2のレベルのスパイントラックは、たとえば、可能な範囲内でネットのセットの総配線長を最小限に抑えるコスト関数に少なくとも部分的に基づいてグループに割り当ててもよい。所定のメインスパイントラック割当に対する各ネットの最適なピンの分割は、ステップ306時に求めた時点で既知となる。しかし、ピンの分割またはグループ分けは、たとえば第2のレベルのスパイントラックの実際に利用可能な場所または位置に基づいて、ステップ310で更新してもよい。第2のレベルのスパインには、ピンの分割の各グループが割り当てられる。このためk個の第2のレベルのスパインがk個のグループからなるピンの分割に必要である。対象とするネットの全セットが、合計K個のグループからなる場合、ネットのセットに対してK個の第2のレベルのスパインが必要となる。いくつかの実施形態では、第2のレベルのスパインにグループのピンを接続し、その第2のレベルのスパインを関連するネットのメインスパインに接続するのに必要な総配線長は、第2のレベルのスパイントラックの少なくとも一部それぞれのグループに対して算出され、最適な第2のレベルのスパイントラックの割当は、そのような計算に基づいて選択される。たとえば、対象とするネットの全セットに関して、K個のグループが存在し、第2のレベルのスパインをT個の選択可能なトラックに割り当てることができる場合、場合によってはK×Tの行列が作成され、エントリーが特定の第2のレベルのスパイントラックに割り当てられる特定のグループの総配線長を表す。そのような場合、全グループの総コストたとえば総配線長を最小限にするトラック割当を選択してもよい。図5は、図4のネットのグループの第2のレベルのスパイントラックの割当を求めるのに使用されるマトリクスの実施形態を示す。本実施例では、マトリクス500の各行はネットのグループに対応し、マトリクス500の各列は選択可能な第2のレベルのスパイントラックに対応する。図4に関して記載したように、net1およびnet2のメインスパインを割り当てた後、マトリクス500に示すように、net1のピンは、3つのグループすなわち、net1.g1、net1.g2およびnet1.g3に分割され、net2のピンは、2つのグループすなわち、net2.g1とnet2.g2に分割される。マトリクス500は、6つの第2のレベルの選択可能なスパイントラックすなわち、T1、T2、T3、T4、T5およびT6に関して、5つのグループすなわち、net1.g1、net1.g2、net1.g3、net2.g1およびnet2.g2それぞれの配線長エントリーを含む。メインスパイン割当問題と同じように、第2のレベルのスパイン割当問題は、線形割当問題としてモデル化し、周知のアルゴリズムうちのいずれか1または複数を使用して、線形割当問題を解決することができる。そのような問題の最適な解決法は、ネットのセットに対する総配線長を最小にする第2のレベルのスパイントラック割当をもたらす。図5の実施例に関して、最適解は、次のトラック割当、T4のnet1.g1配線長=30、T2のnet1.g2配線長=30、net1.g3のT5配線長=50、T1のnet2.g1配線長=40およびT6のnet2.g2配線長=40を含む。図3の処理300のステップ312では、配線計画は、スパインおよびピンを配線することによって作成される。メインスパインは、ステップ306のトラック割当の結果に基づいて作成され、第2のレベルのスパインは、ステップ310のトラック割当の結果に基づいて作成され、各ピンは、ステップ312で対応する第2のレベルのスパインに配線または接続され、配線計画を作成する。記載するように、開示する技法は、改良した集積回路トポロジーを実現するように、配線資源の消費を最適化するか、あるいは、少なくともその消費を減らすか最小限にするように、集積回路またはその一部のスパインの位置を割り当てるために系統的に使用してもよい。開示する技法は、設計に関する総配線長、伝搬遅延、スキュー時間などを減少させたり、最小限にするために使用してもよい。2つのレベルのスパイン配線は、図2~5の実施例に記載しているが、開示する技法は、さまざまなレベルのスパイン配線に関して類似して使用してもよい。さらに、開示する技法は、集積回路全体またはその一部を最適化するのに使用してもよい。上記の実施態様は、理解を容易にする目的で詳細に説明しているが、本発明は、これに限定されない。本発明を実装する数多くの代替的方法が存在する。開示する実施形態は、説明を目的とし、限定することを意図していない。"