(57)【要約】【課題】  基板上に搭載されるセルまたはマクロに対して、遅延時間の増大を避けることが可能な、そのセルまたはマクロの延長先の配線層（端子層）を設定できる端子層設定方法を提供することである。【解決手段】  本発明の端子層設定方法は、複数の配線層を有する半導体回路の端子層をコンピュータが設定する方法において、前記半導体回路を構成するとともに、基板上に搭載される複数のセルまたはマクロに関する配置情報などの各種情報を前記コンピュータの記憶手段から取得し、前記取得した情報に含まれる対象とするセルまたはマクロの駆動能力と、その対象とするセルまたはマクロと接続先のセルまたはマクロとを接続する配線の抵抗値とを比較し、前記比較の結果に基づいて該対象とするセルまたはマクロの配線端子の延長先の配線層である端子層を設定する、ことを特徴とする端子層設定方法である。【選択図】図３
2006277388.tif 000002
【特許請求の範囲】
【請求項１】
複数の配線層を有する半導体回路の端子層をコンピュータが設定する方法において、
前記半導体回路を構成するとともに、基板上に搭載される複数のセルまたはマクロに関する配置情報などの各種情報を前記コンピュータの記憶手段から取得し、
前記取得した情報に含まれる対象とするセルまたはマクロの駆動能力と、その対象とするセルまたはマクロと接続先のセルまたはマクロとを接続する配線の抵抗値とを比較し、
前記比較の結果に基づいて該対象とするセルまたはマクロの配線端子の延長先の配線層である端子層を設定する、ことを特徴とする端子層設定方法。
【請求項２】
ビアと該ビアとの接触を十分可能とした長さを有する配線とから構成される端子延長用コンポーネントを、その対象とするセルまたはマクロの搭載された面の法線方向に必要な数だけ追加することで、その対象とするセルまたはマクロの配線端子を延長先として設定された配線層まで延長する、ことを特徴とする請求項１記載の端子層設定方法。
【請求項３】
前記比較において、取得された対象とするセルまたはマクロの駆動能力が、その対象とするセルまたはマクロと接続先のセルまたはマクロとの間の距離に基づく配線の抵抗より小さい場合に、単位長さ当たりの抵抗値が小さい配線を持つ配線層の間で該対象とするセルまたはマクロの配線端子の延長先の配線層を設定する、ことを特徴とする請求項１記載の端子層設定方法。
【請求項４】
対象とするセルまたはマクロが所定数以上の接続先のセルまたはマクロに接続されているかを判定し、
所定数以上であると判定された場合には、単位長さ当たりの配線容量が小さい配線を持つ配線層の間で該対象とするセルまたはマクロの配線端子の延長先の配線層を設定する、ことを特徴とする請求項１記載の端子層設定方法。
【請求項５】
取得した情報に基づいて、該セルまたはマクロと接続先のセルまたはマクロ間の配線が密集している前記基板上のエリアを特定し、
配線が密集していると判定されたエリア内に含まれるセルまたはマクロについて、そのセルまたはマクロの延長先の配線層を前記複数の配線層の間で分散して設定する、ことを特徴とする請求項１記載の端子層設定方法。
【請求項６】
複数の配線層を有する半導体回路の端子層をコンピュータが設定する方法において、
前記半導体回路を構成するとともに、基板上に搭載される複数のセルまたはマクロに関する配置情報などの各種情報を前記コンピュータの記憶手段から取得し、
取得した情報に基づいて所定のロジックを用いて前記複数のセルまたはマクロの配線端子の延長先の配線層である端子層を前記複数の配線層中にバランスよく配分するように設定するとともに、
前記複数のセルまたはマクロの配線端子を延長先として設定された配線層まで最短のパスで延長する、ことを特徴とする端子層設定方法。
【請求項７】
複数の配線層を有する半導体回路の端子層をコンピュータに設定させるプログラムにおいて、
前記半導体回路を構成するとともに、基板上に搭載される複数のセルまたはマクロに関する配置情報などの各種情報を前記コンピュータの記憶手段から取得するステップと、
前記取得した情報に含まれる対象とするセルまたはマクロの駆動能力と、その対象とするセルまたはマクロと接続先のセルまたはマクロとを接続する配線の抵抗値とを比較するステップと、
前記比較の結果に基づいて該対象とするセルまたはマクロの配線端子の延長先の配線層である端子層を設定するステップと、を前記コンピュータに実行させることを特徴とする端子層設定プログラム。
【請求項８】
複数の配線層を有する半導体回路の端子層をコンピュータに設定させるプログラムにおいて、
前記半導体回路を構成するとともに、基板上に搭載される複数のセルまたはマクロに関する配置情報などの各種情報を前記コンピュータの記憶手段から取得するステップと、
取得した情報に基づいて所定のロジックを用いて前記複数のセルまたはマクロの配線端子の延長先の配線層である端子層を前記複数の配線層中にバランスよく配分するように設定するとともに、前記複数のセルまたはマクロの配線端子を延長先として設定された配線層まで最短のパスで延長するステップと、を前記コンピュータに実行させることを特徴とする端子層設定プログラム。
【請求項９】
複数の配線層を有する半導体回路を構成する、セルまたはマクロの配線端子の延長先の層である端子層を設定する際に用いられる端子延長用コンポーネントにおいて、
対象とするセルまたはマクロの配線端子を、そのセルまたはマクロの搭載された面の法線方向に延長するのに用いられるとともに、ビアと該ビアとの接触を十分可能とした長さを有する配線とを備えることを特徴とする端子延長用コンポーネント。
【請求項１０】
前記ビアのビア径と前記接触を十分可能とした長さとは、配線層の配線の寸法に応じて設定されることを特徴とする請求項９記載の端子延長用コンポーネント。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の配線層を有する半導体回路の端子層設定方法、端子層設定プログラム、配線端子延長処理プログラム、および、その端子層を設定に用いられる端子延長用コンポーネントに関する。
【背景技術】
【０００２】
近年、基板上に搭載されるセル（ロジックゲート、インバータ、ナンド、等）またはマクロ（ＳＲＡＭ等）の個数が飛躍的に増大したことに伴って、それらセルまたはマクロ間を配線する層も基板とは別に、基板に並行に複数の層を設けるようになってきた。
【０００３】
このような複数の配線層を有する半導体回路については、例えば、下記特許文献１に記載されるように、セルやマクロをその接続先のセルやマクロに接続する際に、それら複数の配線層のいずれを介して接続を行うかが問題となる。
【特許文献１】特開平４−２５１９６４号公報  「自動レイアウト方法」
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、セルまたはマクロの配線端子の延長先の配線層（端子層）を設定する場合、従来は、セルまたはマクロの汎用性を優先していた関係から、その延長先を基板に近い下層の配線層に設定することが多かった。そして、これにより、配線の引き回しが多く発生し、また、下層の配線層、すなわち、抵抗の大きいローカル層内で配線が引き回されることが多くなり、さらに、ビア（Via、コンタクトホールともいう）が多用されて、回路動作に遅延が生じている。
【０００５】
図１６に示すように、遅延時間が増大すると、波形のｓｌｅｗ  ｒａｔｅが大きくなる。すなわち、波形がなだらかな形状になる。そして、この遅延時間は、その回路（セル、マクロ）の配線容量やその回路と接続先の回路との間の配線の抵抗に比例して大きくなることが知られている。すなわち、配線容量や配線抵抗が大きい回路を波形が伝わると、図に示すように、波形は、急速にその形状を崩していく。
【０００６】
本発明の課題は、基板上に搭載されるセルまたはマクロに対して、遅延時間の増大を避けることが可能な、そのセルまたはマクロの延長先の配線層（端子層）を設定できる端子層設定方法およびプログラムを提供することである。
【課題を解決するための手段】
【０００７】
本発明の第１態様の端子層設定方法は、複数の配線層を有する半導体回路の端子層をコンピュータが設定する方法において、前記半導体回路を構成するとともに、基板上に搭載される複数のセルまたはマクロに関する配置情報などの各種情報を前記コンピュータの記憶手段から取得し、前記取得した情報に含まれる対象とするセルまたはマクロの駆動能力と、その対象とするセルまたはマクロと接続先のセルまたはマクロとを接続する配線の抵抗値とを比較し、前記比較の結果に基づいて該対象とするセルまたはマクロの配線端子の延長先の配線層である端子層を設定する、ことを特徴とする端子層設定方法である。
【０００８】
ここで、対象とするセルまたはマクロの駆動能力と、その対象とするセルまたはマクロと接続先のセルまたはマクロとを接続する配線の抵抗値とを比較することで、その対象とするセルまたはマクロと接続先のセルまたはマクロを接続する配線が「長め」か「短め」かを判定している。そして、その比較（判定）結果に基づいて、その対象とするセルまたはマクロの配線端子の延長先の配線層（端子層）を設定しているので、配線抵抗を適度な大きさに設定することが可能となり、遅延時間の増大を避けて、その対象とするセルまたはマクロの延長先の配線層（端子層）を設定できる。
【０００９】
上記第１態様において、ビアと該ビアとの接触を十分可能とした長さを有する配線とから構成される端子延長用コンポーネントを、その対象とするセルまたはマクロの搭載された面の法線方向に必要な数だけ追加することで、その対象とするセルまたはマクロの配線端子を延長先として設定された配線層まで延長するようにしてもよい。
【００１０】
対象とするセルまたはマクロの搭載された面の法線方向は、その対象とするセルまたはマクロの配線端子を延長先の配線層まで延長する最短パスになるので、上述の遅延時間をさらに抑えることができる。
【００１１】
本発明の第２態様の端子層設定プログラムは、  複数の配線層を有する半導体回路の端子層をコンピュータに設定させるプログラムにおいて、前記半導体回路を構成するとともに、基板上に搭載される複数のセルまたはマクロに関する配置情報などの各種情報を前記コンピュータの記憶手段から取得するステップと、前記取得した情報に含まれる対象とするセルまたはマクロの駆動能力と、その対象とするセルまたはマクロと接続先のセルまたはマクロとを接続する配線の抵抗値とを比較するステップと、前記比較の結果に基づいて該対象とするセルまたはマクロの配線端子の延長先の配線層である端子層を設定するステップと、を前記コンピュータに実行させることを特徴とする端子層設定プログラムである。
【発明の効果】
【００１２】
本発明によれば、対象とするセルまたはマクロの駆動能力と、その対象とするセルまたはマクロと接続先のセルまたはマクロとを接続する配線の抵抗値とを比較することで、その対象とするセルまたはマクロと接続先のセルまたはマクロを接続する配線が「長め」か「短め」かを判定し、その比較（判定）結果に基づいて、その対象とするセルまたはマクロの配線端子の延長先の配線層（端子層）を設定している。よって、配線抵抗を適度な大きさに設定することが可能となり、遅延時間の増大を避けて、その対象とするセルまたはマクロの延長先の配線層（端子層）を設定できる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を、図面を参照しながら詳細に説明する。
図１は、本発明の一実施形態の端子層設定処理が適用される半導体回路が有する複数の配線層の構成を示す斜視図である。
【００１４】
図１では、セルやマクロが搭載される基板（不図示）の上に設けられた６つの配線層１〜６が示されている。ここで、配線層１および配線層２は、配線幅、配線高さ、配線間のピッチが配線層１〜６の間で最も短い層であり、ローカル（Ｌｏｃａｌ）層と呼ばれている。また、配線層５および配線層６は、配線幅、配線高さ、配線間のピッチが配線層１〜６の間で最も長い層であり、グローバル（Ｇｌｏｂａｌ）層と呼ばれている。また、配線層３および配線層４は、配線幅、配線高さ、配線間のピッチが配線層１〜６の間では中間的な値を持つ層（配線層１または２と比較すると長く、また、配線層５または６と比較すると短い層）であり、セミ・グローバル（Ｓｅｍｉ−Ｇｌｏｂａｌ）層と呼ばれている。すなわち、図１は、配線層を６層で構成した場合で、ローカル層＝２層、セミ・グローバル層＝２層、グローバル層＝２層とした場合を示した図である。
【００１５】
配線層の総数やそのうちでのローカル層などの各層の数は、回路設計者によって予め適切な値に設定される。例えば、図２は、配線層を９層で構成した場合で、ローカル層＝５層、セミ・グローバル層＝２層、グローバル層＝２層とした場合を示した断面図である。図１や図２に示されるように、通常、隣接する配線層間では配線が直交する。
【００１６】
なお、図１および図２からは定かでないが、各配線層間や配線層内の配線パターンの間には、絶縁膜が存在する。
図３は、本発明の一実施形態の端子層設定部の構成を示すブロック図である。端子層設定部は例えばソフトウェアとしてコンピュータにインストールされることで実現される。
【００１７】
図３に示すように、端子層設定部１０は、基板上に搭載される複数のセルまたはマクロの配置情報などの各種情報を上記コンピュータの二次記憶から取得する情報取得部１１と、取得した情報に含まれる対象とするセルまたはマクロの駆動能力と、その対象とするセルまたはマクロと接続先のセルまたはマクロとを接続する配線の抵抗値とを比較し、その比較結果に基づいて該対象とするセルまたはマクロの配線端子の延長先の配線層である端子層を決定する比較・決定部１２とから構成される。
【００１８】
なお、図４では、端子層設定部１５は、複数のセルまたはマクロの配線端子を決定された配線層まで最短のパスで延長する指定を行う最短パス指定部１３をさらに備えている。図４に示すように端子層設定部を構成することも可能である。
【００１９】
図５は、本発明の一実施形態の配線端子延長処理部の構成を示すブロック図である。配線端子延長処理部は例えばソフトウェアとしてコンピュータにインストールされることで実現される。
【００２０】
図５の配線端子延長処理部２０は、セルまたはマクロの配線端子の延長先の層である端子層の設定結果に基づいて、該配線端子の延長処理を実行する。この配線端子延長処理部２０は、ビアと該ビアとの接触を十分可能とした長さを有する配線とから構成される端子延長用コンポーネントを、その対象とするセルまたはマクロの搭載された面の法線方向に必要な数だけ追加することで、処理対象のセルまたはマクロの配線端子を設定された配線層まで延長する延長処理部２１を備える。
【００２１】
図６は端子延長用コンポーネントと、その組み合わせ例を示す斜視図である。
図６に示されるように、端子延長用コンポーネント３１は、ビア３２と最小の突き出し長さを持つ配線３３とから構成される。その最小の突き出し長さとは、配線３３がそのビア３２との接触を十分可能とした長さであり、例えば、それ以下の長さでは、十分な通電特性が得られないような長さである。
【００２２】
ビア３２と配線３３から構成される端子延長用コンポーネント３１に対して、ビア３６と配線３７から構成される別の端子延長用コンポーネント３５を図に示すように所定方向に延長するようにして追加していくことが可能である。
【００２３】
なお、上記ビアのビア径と、そのビアの接触を十分可能とした長さは、より具体的には、図７に示すように、配線層の配線の寸法に応じて設定される。
図７において、対象とするセルのゲート４１に一番近いローカル層まで配線端子を延長する場合、例えば、ビア４２１とそのビア４２１に対する最小の突き出し長さを持つ配線４３１から構成される端子延長用コンポーネント４４１が、そのゲート４１に追加される。
【００２４】
さらに、その一番セルに近いローカル層の１つ上で、その一番セルに近いローカル層と同じ配線の寸法を持つローカル層に延長する場合は、ビア４２２とそのビア４２２に対する最小の突き出し長さを持つ配線４３２から構成される端子延長用コンポーネント４４２を、その端子延長用コンポーネント４４１の上に追加する。この場合、端子延長用コンポーネント４４１と４４２は、同じ寸法の配線を持つ配線層にそれぞれ対応するコンポーネントであるので、ビア４２１と４２２のビア径、配線４３１と４３２の突き出し長さは同じである。
【００２５】
同様に、その一番セルに近いローカル層の３つ上の層に配線端子を延長する場合で、その一番セルに近いローカル層の１つ上のローカル層が、その一番セルに近い層と同じ配線の寸法を持ち、２つ上、３つ上の層にいくに従い、順に配線の寸法が大きくなるような場合は、上記端子延長用コンポーネント４４２に加えて、ビア４６とビア４６に対する最小の突き出し長さを持つ配線４７から構成される端子延長用コンポーネント４８、ビア５１とビア５１に対する最小の突き出し長さを持つ配線５２とから構成される端子延長用コンポーネント５３を順次、端子延長用コンポーネント４４１の上に追加する。この場合、端子延長用コンポーネント４４２、４８、５３は、この端子延長用コンポーネント４４２、４８、５３の順により大きい寸法の配線を持つ配線層に対応するコンポーネントであるので、以下の不等式が成立する。
ビア４２２のビア径＜ビア４６のビア径＜ビア５１のビア径
配線４３２の突き出し長さ＜配線４７の突き出し長さ＜配線５２の突き出し長さ
【００２６】
続いて、本実施形態の端子層の設定方法について説明する。遅延時間の増大が回路動作等に悪影響を及ぼすことはよく知られている。
本実施形態においては、図８に示すように、対象とするセルまたはマクロ５６とその接続先のセルまたはマクロ５７を接続する配線の抵抗値Ｒｗと、その対象とするセルまたはマクロ５６の駆動能力（ドライバ抵抗）Ｒｄとを比較することで、この遅延時間を評価している。すなわち、対象とするセルまたはマクロのドライバ抵抗Ｒｄが、対象とするセルまたはマクロとその接続先のセルまたはマクロを接続する配線の抵抗値Ｒｗより小さい場合に、配線の長さが「長め」であり、遅延が発生していると判定し、対象とするセルまたはマクロのドライバ抵抗Ｒｄが、対象とするセルまたはマクロとその接続先のセルまたはマクロを接続する配線の抵抗値Ｒｗより大きい場合に、配線の長さが「短め」であると判定している。なお、遅延時間を評価する際に用いる配線負荷としては、配線抵抗Ｒｗの他に、配線容量Ｃｗがある。この配線容量Ｃｗは、対象とするセルまたはマクロが複数の分岐先のセルまたはマクロに接続している場合に考慮される。また、ドライバ抵抗とは、トランジスタが配線を介して充放電したときに流れる電流を抵抗に換算した値であるとともに、トランジスタサイズに比例する値である。
【００２７】
上記ドライバ抵抗Ｒｄと配線抵抗Ｒｗとの比較において、配線の長さが「長め」であると判定された場合には、単位長さ当たりの抵抗値が小さい配線を持つ配線層の間で、その対象とするセルまたはマクロの配線端子の延長先の配線層（端子層）が設定される。また、配線の長さが「短め」であると判定された場合には、単位長さ当たりの抵抗値が大きい配線を持つ配線層の間で、その対象とするセルまたはマクロの配線端子の延長先の配線層（端子層）が設定される。
【００２８】
図９は、本実施形態の端子層設定処理のフローチャートである。このフローは、図３または図４の端子層設定部によって実行される。
図９において、まず、ステップＳ１０１で、基板上に搭載される複数のセルまたはマクロの配置情報などの各種情報が情報取得部１１によってコンピュータの二次記憶から取得される。そして、続くステップＳ１０２で、取得した情報に含まれる、処理対象とするセルまたはマクロの駆動能力（ドライバ抵抗Ｒｄ）が抽出されるとともに、対象とするセルまたはマクロとその接続先のセルまたはマクロの位置情報から縦方向や横方向の距離が抽出される。対象とするセルまたはマクロと接続先のセルまたはマクロとの接続に用いられる配線の単位長さ当たりの抵抗値と抽出された距離とを乗算することで、対象とするセルまたはマクロと接続先のセルまたはマクロとを結ぶ配線の抵抗値Ｒｗが算出される。
【００２９】
ステップＳ１０３では、ステップＳ１０２で抽出されたドライバ抵抗Ｒｄと抵抗値Ｒｗとが比較される。
なお、図１に示すように、通常、幅、高さが小さく、したがって、断面積が小さい配線を持つ配線層が下層（基板に近い位置）に設けられ、配線層が上にいくにしたがい、その層に設けられる配線の断面積が大きくなる。このため、上記ステップＳ１０３での比較の結果、ドライバ抵抗ＲｄがＲｗより大きかった場合、ステップＳ１０４に進み、抵抗の大きい（配線の断面積の小さい）下層の配線層が対象とするセルまたはマクロの延長先の配線層（端子層）に設定される。また、ドライバ抵抗ＲｄがＲｗと等しかった場合、ステップＳ１０５に進み、抵抗が中間の値である（配線の断面積が中間の値である）中間の配線層（中間層）が対象とするセルまたはマクロの延長先の配線層（端子層）に設定される。また、ドライバ抵抗ＲｄがＲｗより小さかった場合、ステップＳ１０６に進み、抵抗の小さい（配線の断面積の大きい）上層の配線層が対象とするセルまたはマクロの延長先の配線層（端子層）に設定される。
【００３０】
なお、ステップＳ１０４、Ｓ１０５、Ｓ１０６のいずれの場合でも、図４の最短パス指定部１３によって、複数のセルまたはマクロの配線端子を決定された配線層まで最短のパスで延長するように指定がなされると、その指定に対応して、各セルまたはマクロの配線端子に追加されることになる端子延長用コンポーネントの追加パターンが決定される。
【００３１】
例えば、延長先の配線層が下層の配線層に設定されたステップＳ１０４に対しては、続くステップＳ１０７で、基本の端子（例えば図７のゲート４１）に下層端子（図７の端子延長用コンポーネント４４１）を追加するように指定がなされる。また、例えば、延長先の配線層が中間層の配線層に設定されたステップＳ１０５に対しては、続くステップＳ１０８で、基本の端子（例えば図７のゲート４１）に中間端子（図７の端子延長用コンポーネント４４１＋４４２）を追加するように指定がなされる。また、延長先の配線層が上層の配線層に設定されたステップＳ１０６に対しては、続くステップＳ１０９で、基本の端子（例えば図７のゲート４１）に上層端子（図７の端子延長用コンポーネント４４１、４４２、４８、および、５３）を追加するように指定がなされる。
【００３２】
ステップＳ１０７、Ｓ１０８、および、Ｓ１０９が実行された場合には、図５の配線端子延長処理部２０によって、ステップＳ１０７、Ｓ１０８、および、Ｓ１０９のいずれかのステップで使用するものと決められた端子を用いて、セルまたはマクロの配線端子を延長する処理が実行されることは言うまでもない。そして、さらに端子層の設定が行われた後は、配線のレイアウト処理を行う配線レイアウト処理部によって、例えば、設定済みの端子層をなるべく生かすようにして端子層間を配線で結線する処理が行われる。
【００３３】
図１０は、従来技術における結線処理が行われた後の配線層の状態を示す斜視図である。また、図１１は、本実施形態において、最短パスによる配線端子の延長を行った場合の結線処理が行われた後の配線層の状態を示す斜視図である。
【００３４】
図１０および図１１に示されるように、配線層間は、ビア（Via、コンタクトホール）と呼ばれる柱形状の導体で接続されている。
図１１では、上層までのパスとして最短パスが指定されているので、配線層間は、ビアとそのビアに対する最小突き出し長さを有する配線とから構成される端子延長用コンポーネントを回路６１や回路６２に対して、それら回路６１、回路６２が搭載される基板面の法線方向に必要な数だけ追加することで、接続されている。すなわち、連続する端子延長用コンポーネント間は、最小の突き出し長さを有する配線を介することで、必要な通電特性を得ている。
【００３５】
図１０および図１１のいずれの図面においても、基板上の他の回路６５を避けるために、回路（セルまたはマクロ）６１から接続先の回路６２まで上層の配線層を介して結線処理がなされている。
【００３６】
図１０の従来技術においては、回路６１やその接続先である回路６２は、配線端子にビア６３またはビア６４を追加しただけの構成となっている。すなわち、従来技術では、各回路を汎用性を持たせて設計することが優先されていたため、本実施形態のように、各回路の配線端子上に追加する端子延長用コンポーネントに対応する要素を有さず、したがって、図１１に示すように、端子延長用コンポーネントを回路６１や回路６２の配線端子から必要な数だけ回路６１や回路６２が搭載された基板面の法線方向に追加することを行っていない。
【００３７】
なお、最短パス指定を行わない場合は、本実施形態の処理によっても、図１０に示す従来例と同様に、配線の引き回しが発生する。しかし、本実施形態においては、どの層を介して回路間を接続するかが、上述したように、ドライバ抵抗とその回路間の配線の抵抗との比較により決定されるので、従来技術より遅延を回避する効果が大きいことは言うまでもない。
【００３８】
そして、そのようにして設定された層に対して、図１１に示すように、さらに最短パス指定を行った場合、回路間を接続する配線の長さがさらに短くできるので、一層、遅延の削減効果が高まる。
【００３９】
なお、図１１に示す例では、回路６１と接続先の回路６２との左右方向位置が一致しているため、最短パス指定により回路６１と接続先の回路６２とを配線で結ぶのに用いる配線層を設定する場合に、その設定された配線層の付近の配線層で、配線の引き回しを行う必要がなかった。
【００４０】
図１２は、従来技術における結線処理が行われた後の配線層の状態を上方から見た図と、本実施形態において、最短パスによる配線端子の延長を行った場合の結線処理が行われた後の配線層の状態を上方から見た図とを比較して示した図である。
【００４１】
図１２と、図１０および図１１との主な相違点は、回路（図１２では端子７１に対応）と接続先の回路（図１２では端子７２に対応）との左右方向位置がずれている点である。
このような場合、本実施形態においては、例えば、図１２の下段の区間Ｘで、端子７１の延長先として設定された上層の配線層の１つ下の配線層であるとともに、その設定された上層の配線層とは、配線の向きがその位置で直交しているような配線層において、端子層間が結線されるように処理される。
【００４２】
なお、対象とするセルまたはマクロが所定数以上のセルまたはマクロに接続されている場合は、その対象とするセルまたはマクロの配線容量が大きくなり、遅延が発生し易くなる。そこで、このような場合は、複数の配線層のうちで、単位長さ当たりの配線容量が小さい配線を持つ配線層の間で、その対象とするセルまたはマクロの配線端子の延長先の配線層をなるべく分散させるようにして設定すればよい。
【００４３】
なお、配線容量＝（配線と配線の間にある絶縁膜の）誘電率×配線の断面積／距離（配線間のピッチや上下配線との距離）で与えられる。このため、ローカル層の間では、基板から最も離れているローカル層が配線容量が最も小さくなる。また、ローカル層とセミ・グローバル層では、セミ・グローバル層、セミ・グローバル層とグローバル層では、グローバル層の方が、基板から離れているので、配線容量が小さくなる。また、セミ・グローバル層やグローバル層では、配線間のピッチもローカル層の配線同士より長いことを考慮すると、セミ・グローバル層やグローバル層では、配線容量はローカル層と比較し一層小さくなる。
【００４４】
よって、上述の「単位長さ当たりの配線容量が小さい配線を持つ配線層」とは、具体的には、セミ・グローバル層、グローバル層、または、ローカル層の中で基板から離れている層、ということになる。
【００４５】
また、図３または図４の情報取得部１１によって取得された各種情報に含まれる情報に基づいて、セルまたはマクロと接続先のセルまたはマクロ間で、配線が密集している基板上のエリアが特定された場合には、その特定されたエリア内に含まれるセルまたはマクロについて、そのセルまたはマクロの延長先の配線層を複数の配線層の間で分散して設定する。
【００４６】
図１３は、配線が密集する回路配線の一例を示す図である。
図１３において、ロジック回路８１１、８１２、８１３、・・・、８１Ｎが、基板上、横方向に配置され、それらロジック回路８１１、８１２、８１３、・・・、８１Ｎの接続先がそれぞれ、ロジック回路８２１、８２２、８２３、・・・、８２Ｎであった場合、それらロジック回路間において配線が密集しているエリアが存在する。
【００４７】
特に、この例においては、本実施形態の図９に示すフローに従って処理した場合に、ロジック回路８１１、８１２、８１３、・・・、８１Ｎのドライバ抵抗が同じであれば、接続先との間の距離は図から同じであるので、Ｎ個のロジック回路に対して同じ配線層が配線端子の延長先として設定されてしまい、複数の配線層を有するにもかかわらず、配線の密集が解決されないことになる。
【００４８】
そこで、このような場合は、図９のフローを用いることなく、配線が密集するエリアが特定された場合には、そのエリアに含まれるセルまたはマクロについて、そのセルまたはマクロの延長先の配線層を複数の配線層の間で分散して設定するようにして、上述の不都合を回避している。
【００４９】
なお、以上の説明では、対象とするセルまたはマクロの駆動能力（ドライバ抵抗）と、その対象とするセルまたはマクロと接続先のセルまたはマクロとの間の配線の抵抗とを比較することで、配線が「長め」か「短め」かを判定し、その対象とするセルまたはマクロの配線端子の延長先の配線層を決めていた。
【００５０】
しかし、端子延長用コンポーネントを追加していく方法を用いることで、対象とするセルまたはマクロの配線端子を延長先の端子層まで最短パスで延長する限り、複数の配線層の間で、延長先の配線層を分散可能な任意のロジックに対して、回路動作の遅延を削減できるという効果を主張することが可能となる。
【００５１】
本発明の各実施形態の書き込み処理部はソフトウェアとして構成することが可能である。図１４は、本発明の各実施形態をプログラムで実現する場合のハードウェア環境を示す図である。
【００５２】
図１４において、ハードウェアとしてのコンピュータは、ＣＰＵ９１、ＲＯＭ９２、ＲＡＭ９３、通信インターフェイス９４、入出力装置９６、記憶装置９５、（記録媒体）読み取り装置９８、がバス９７を介して接続されることで構成されている。
【００５３】
図１４において、ＣＰＵ９１は、コンピュータ全体を制御し、ＲＡＭ９３は、プログラム実行、データ更新等の際に、記憶装置９５をはじめとする二次記憶内に記憶されるデータを一次的に格納する一次記憶である。
【００５４】
ユーザは、入出力装置９６を介して端子層設定部などに対して起動指示を与えることができる。また、ユーザは、入出力装置９６を介して提示される端子層設定部などの処理結果の情報を見ることができる。
【００５５】
記憶装置９５に記憶されるプログラムやデータの他に、可搬記憶媒体９９のプログラムやデータが読み取り装置９８を介して読み込まれたり、情報提供者８８のプログラムやデータがネットワーク８９、通信インターフェイス９４を介して読み込まれたりしたプログラムやデータを、コンピュータ内部で用いることができる。
【００５６】
図１５は、プログラムのローディングを説明する図である。
本発明の端子層設定処理などは当然一般的なコンピュータ１１４によって実現することが可能である。この場合、コンピュータ１１４の記憶装置１１２から本発明の処理のためのプログラムなどをコンピュータ１１４のメモリにロードして実行することも、可搬型記憶媒体１１３から本発明の処理のためのプログラムなどをコンピュータ１１４のメモリにロードして実行することも、また、プログラム提供者１１０の記憶装置１１１側からネットワークを介して本発明の処理のためのプログラムなどをコンピュータ１１４のメモリにロードして実行することも可能である。
【００５７】
（付記１）  複数の配線層を有する半導体回路の端子層をコンピュータが設定する方法において、
前記半導体回路を構成するとともに、基板上に搭載される複数のセルまたはマクロに関する配置情報などの各種情報を前記コンピュータの記憶手段から取得し、
前記取得した情報に含まれる対象とするセルまたはマクロの駆動能力と、その対象とするセルまたはマクロと接続先のセルまたはマクロとを接続する配線の抵抗値とを比較し、
前記比較の結果に基づいて該対象とするセルまたはマクロの配線端子の延長先の配線層である端子層を設定する、ことを特徴とする端子層設定方法。
（付記２）  前記複数のセルまたはマクロの配線端子を延長先として設定された配線層まで最短のパスで延長する、ことを特徴とする付記１記載の端子層設定方法。
（付記３）  ビアと該ビアとの接触を十分可能とした長さを有する配線とから構成される端子延長用コンポーネントを、その対象とするセルまたはマクロの搭載された面の法線方向に必要な数だけ追加することで、その対象とするセルまたはマクロの配線端子を延長先として設定された配線層まで延長する、ことを特徴とする付記２記載の端子層設定方法。
（付記４）  前記対象とするセルまたはマクロとその対象とするセルまたはマクロの接続先のセルまたはマクロとの間で配線の引き回しが必要である場合に、前記延長先として設定された配線層の近辺の配線層内で配線の引き回しを可能とするように端子層を該延長先として設定された配線層およびその近辺の配線層に設定することを特徴とする付記１記載の端子層設定方法。
（付記５）  前記比較において、取得された対象とするセルまたはマクロの駆動能力が、その対象とするセルまたはマクロと接続先のセルまたはマクロとの間の距離に基づく配線の抵抗より大きい場合に、単位長さ当たりの抵抗値が大きい配線を持つ配線層の間で該対象とするセルまたはマクロの配線端子の延長先の配線層を設定する、ことを特徴とする付記１記載の端子層設定方法。
（付記６）  前記比較において、取得された対象とするセルまたはマクロの駆動能力が、その対象とするセルまたはマクロと接続先のセルまたはマクロとの間の距離に基づく配線の抵抗より小さい場合に、単位長さ当たりの抵抗値が小さい配線を持つ配線層の間で該対象とするセルまたはマクロの配線端子の延長先の配線層を設定する、ことを特徴とする付記１記載の端子層設定方法。
（付記７）  対象とするセルまたはマクロが所定数以上の接続先のセルまたはマクロに接続されているかを判定し、
所定数以上であると判定された場合には、単位長さ当たりの配線容量が小さい配線を持つ配線層の間で該対象とするセルまたはマクロの配線端子の延長先の配線層を設定する、ことを特徴とする付記１記載の端子層設定方法。
（付記８）  取得した情報に基づいて、該セルまたはマクロと接続先のセルまたはマクロ間の配線が密集している前記基板上のエリアを特定し、
配線が密集していると判定されたエリア内に含まれるセルまたはマクロについて、そのセルまたはマクロの延長先の配線層を前記複数の配線層の間で分散して設定する、ことを特徴とする付記１記載の端子層設定方法。
（付記９）  複数の配線層を有する半導体回路の端子層をコンピュータが設定する方法において、
前記半導体回路を構成するとともに、基板上に搭載される複数のセルまたはマクロに関する配置情報などの各種情報を前記コンピュータの記憶手段から取得し、
取得した情報に基づいて所定のロジックを用いて前記複数のセルまたはマクロの配線端子の延長先の配線層である端子層を前記複数の配線層中にバランスよく配分するように設定するとともに、
前記複数のセルまたはマクロの配線端子を延長先として設定された配線層まで最短のパスで延長する、ことを特徴とする端子層設定方法。
（付記１０）  複数の配線層を有する半導体回路の端子層をコンピュータに設定させるプログラムにおいて、
前記半導体回路を構成するとともに、基板上に搭載される複数のセルまたはマクロに関する配置情報などの各種情報を前記コンピュータの記憶手段から取得するステップと、
前記取得した情報に含まれる対象とするセルまたはマクロの駆動能力と、その対象とするセルまたはマクロと接続先のセルまたはマクロとを接続する配線の抵抗値とを比較するステップと、
前記比較の結果に基づいて該対象とするセルまたはマクロの配線端子の延長先の配線層である端子層を設定するステップと、を前記コンピュータに実行させることを特徴とする端子層設定プログラム。
（付記１１）  前記複数のセルまたはマクロの配線端子を延長先として設定された配線層まで最短のパスで延長するように指定するステップ、をさらに備えることを特徴とする付記１０記載の端子層設定プログラム。
（付記１２）  複数の配線層を有する半導体回路を構成する、セルまたはマクロの配線端子の延長先の層である端子層の設定結果に基づいて、該配線端子の延長処理をコンピュータに実行させるプログラムにおいて、
ビアと該ビアとの接触を十分可能とした長さを有する配線とから構成される端子延長用コンポーネントを、その対象とするセルまたはマクロの搭載された面の法線方向に必要な数だけ追加することで、その対象とするセルまたはマクロの配線端子を延長先として設定された配線層まで延長するステップ、を前記コンピュータに実行させることを特徴とする配線端子延長処理プログラム。
（付記１３）  前記ビアのビア径と前記接触を十分可能とした長さとは、配線層の配線の寸法に応じて設定されることを特徴とする付記１２記載の配線端子延長処理プログラム。
（付記１４）  前記対象とするセルまたはマクロとその対象とするセルまたはマクロの接続先のセルまたはマクロとの間で配線の引き回しが必要である場合に、前記延長先として設定された配線層の近辺の配線層内で配線の引き回しを可能とするように端子層を該延長先として設定された配線層およびその近辺の配線層に設定するステップをさらに備えることを特徴とする付記１０記載の端子層設定プログラム。
（付記１５）  前記比較ステップにおいて、取得された対象とするセルまたはマクロの駆動能力が、その対象とするセルまたはマクロと接続先のセルまたはマクロとの間の距離に基づく配線の抵抗より大きい場合に、単位長さ当たりの抵抗値が大きい配線を持つ配線層の間で該対象とするセルまたはマクロの配線端子の延長先の配線層を設定する、ことを特徴とする付記１０記載の端子層設定プログラム。
（付記１６）  前記比較ステップにおいて、取得された対象とするセルまたはマクロの駆動能力が、その対象とするセルまたはマクロと接続先のセルまたはマクロとの間の距離に基づく配線の抵抗より小さい場合に、単位長さ当たりの抵抗値が小さい配線を持つ配線層の間で該対象とするセルまたはマクロの配線端子の延長先の配線層を設定する、ことを特徴とする付記１０記載の端子層設定プログラム。
（付記１７）  対象とするセルまたはマクロが所定数以上の接続先のセルまたはマクロに接続されているかを判定するステップと、
所定数以上であると判定された場合には、単位長さ当たりの配線容量が小さい配線を持つ配線層の間で該対象とするセルまたはマクロの配線端子の延長先の配線層を設定するステップと、をさらに備えることを特徴とする付記１０記載の端子層設定プログラム。
（付記１８）  取得した情報に基づいて、該セルまたはマクロと接続先のセルまたはマクロ間の配線が密集している前記基板上のエリアを特定するステップと、
配線が密集していると判定されたエリア内に含まれるセルまたはマクロについて、そのセルまたはマクロの延長先の配線層を前記複数の配線層の間で分散して設定するステップと、を備えることを特徴とする付記１０記載の端子層設定プログラム。
（付記１９）  複数の配線層を有する半導体回路の端子層をコンピュータに設定させるプログラムにおいて、
前記半導体回路を構成するとともに、基板上に搭載される複数のセルまたはマクロに関する配置情報などの各種情報を前記コンピュータの記憶手段から取得するステップと、
取得した情報に基づいて所定のロジックを用いて前記複数のセルまたはマクロの配線端子の延長先の配線層である端子層を前記複数の配線層中にバランスよく配分するように設定するとともに、前記複数のセルまたはマクロの配線端子を延長先として設定された配線層まで最短のパスで延長するステップと、を前記コンピュータに実行させることを特徴とする端子層設定プログラム。
（付記２０）  複数の配線層を有する半導体回路を構成する、セルまたはマクロの配線端子の延長先の層である端子層を設定する際に用いられる端子延長用コンポーネントにおいて、
対象とするセルまたはマクロの配線端子を、そのセルまたはマクロの搭載された面の法線方向に延長するのに用いられるとともに、ビアと該ビアとの接触を十分可能とした長さを有する配線とを備えることを特徴とする端子延長用コンポーネント。
（付記２１）  前記ビアのビア径と前記接触を十分可能とした長さとは、配線層の配線の寸法に応じて設定されることを特徴とする付記２０記載の端子延長用コンポーネント。
【図面の簡単な説明】
【００５８】
【図１】本発明の一実施形態の端子層設定処理が適用される半導体回路が有する複数の配線層の構成を示す斜視図である。
【図２】配線層の層数を９層とした場合の半導体回路が有する複数の配線層の構成を示す断面図である。
【図３】本発明の一実施形態の端子層設定部の構成を示すブロック図である。
【図４】図３の端子層設定部の変形例を示すブロック図である。
【図５】本発明の一実施形態の配線端子延長処理部の構成を示すブロック図である。
【図６】端子延長用コンポーネントと、その組み合わせ例を示す図（その１）である。
【図７】端子延長用コンポーネントと、その組み合わせ例を示す図（その２）である。
【図８】本実施形態の端子層の設定方法を説明する図である。
【図９】本実施形態の端子層設定処理のフローチャートである。
【図１０】従来技術における結線処理が行われた後の配線層の状態を示す斜視図である。
【図１１】本実施形態において、最短パスによる配線端子の延長を行った場合の結線処理が行われた後の配線層の状態を示す斜視図である。
【図１２】従来技術における結線処理が行われた後の配線層の状態を上方から見た図と、本実施形態において、最短パスによる配線端子の延長を行った場合の結線処理が行われた後の配線層の状態を上方から見た図とを比較して示した図である。
【図１３】配線が密集する回路配線の一例を示す図である。
【図１４】本発明の各実施形態をプログラムで実現する場合のハードウェア環境を示す図である。
【図１５】プログラムのローディングを説明する図である。
【図１６】従来の問題点を説明する図である。
【符号の説明】
【００５９】
１、２  ローカル層
３、４  セミ・グローバル層
５、６  グローバル層
１０、１５  端子層設定部
１１  情報取得部
１２  比較・決定部
１３  最短パス指定部
２０  配線端子延長処理部
２１  延長処理部
３１、３５、４４、４８、５３  端子延長用コンポーネント
３２、３６、４２、４６、５１、６３、６４  ビア
３３、３７、４３、４７、５２  最小突き出し長さを持つ配線
６１、６２、６５、８１、８２  回路
７１、７２  配線端子
【図２】
2006277388.tif 000003
【図３】
2006277388.tif 000004
【図４】
2006277388.tif 000005
【図５】
2006277388.tif 000006
【図８】
2006277388.tif 000007
【図９】
2006277388.tif 000008
【図１３】
2006277388.tif 000009
【図１４】
2006277388.tif 000010
【図１５】
2006277388.tif 000011
【図１６】
2006277388.tif 000012
【図１】
2006277388.tif 000013
【図６】
2006277388.tif 000014
【図７】
2006277388.tif 000015
【図１０】
2006277388.tif 000016
【図１１】
2006277388.tif 000017
【図１２】
2006277388.tif 000018