(57)【要約】【課題】配線ノード間を迂回経路で接続することで配線の冗長化を図ることが可能なコンピュータに半導体装置の配線方法を実行させるためのプログラム、および半導体装置を提供すること。【解決手段】半導体装置の配線方法をコンピュータに実行させる際、半導体装置のレイアウトにおいて配線間を接続するコンタクトのうち、接続を冗長化する対象のコンタクトを対象コンタクトとして選択し、選択された対象コンタクトに対して、該対象コンタクトが接続する１対の配線ノードの間を結線する迂回配線経路を探索する。更に、探索された迂回配線経路のうち、配線長が最短である最短迂回配線経路を選択する。【選択図】図２
2009294968.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置のレイアウトにおいて配線ノード間を接続するコンタクトのうち、接続を冗長化する対象のコンタクトを対象コンタクトとして選択するステップと、
前記対象コンタクトが接続する１対の配線ノードの間を結線する迂回配線経路を探索するステップと、
探索された前記迂回配線経路のうち、配線長が最短である最短迂回配線経路を選択するステップとを有する半導体装置の配線方法をコンピュータに実行させることを特徴とするプログラム。
【請求項２】
前記対象コンタクトは、１つの開孔を有するシングルビアコンタクトであることを特徴とする請求項１に記載のプログラム。
【請求項３】
ビアコンタクトを複数の開孔を有する冗長ビアコンタクトに変換するステップを有し、
前記対象コンタクトとして選択される前記シングルビアコンタクトは、前記冗長ビアコンタクトに変換するステップにおいて未変換のビアコンタクトであることを特徴とする請求項２に記載のプログラム。
【請求項４】
前記迂回配線経路を探索するステップは、  
前記配線ノード上に存在するコンタクトで区画される線分のうち、前記対象コンタクトからの距離が近い前記線分を優先して選択するステップと、
前記選択された前記線分間で、前記迂回配線経路を探索するステップとを有することを特徴とする請求項１乃至３の少なくとも何れか１項に記載のプログラム。
【請求項５】
前記最短迂回配線経路が複数ある場合、該最短迂回配線経路のうち周辺の配線密度が低い経路を選択するステップを、さらに有することを特徴とする請求項１乃至４の少なくとも何れか１項に記載のプログラム。
【請求項６】
前記迂回配線経路を探索するステップは、予め定められた配線長以下の経路を前記迂回配線経路として探索を行うことを特徴とする請求項１乃至５の少なくとも何れか１項に記載のプログラム。
【請求項７】
前記最短迂回配線経路を選択するステップの後、
タイミング解析を行うステップと、
前記タイミング解析により検出されたタイミングエラーに対してＥＣＯ処理を行うステップとを有し、
前記ＥＣＯ処理のステップでは、前記最短迂回配線経路を選択するステップにより決定された、少なくとも、前記迂回配線経路、前記対象コンタクト、および該対象コンタクトにより接続される前記１対の配線ノードは、処理の対象外とすることを特徴とする請求項１乃至６の少なくとも何れか１項に記載のプログラム。
【請求項８】
レイアウトにおいて配線ノード間を接続するシングルビアコンタクトと、
前記シングルビアコンタクトにより接続される配線ノード間を、該シングルビアコンタクトを介さずに接続する迂回配線経路とを備えることを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビアコンタクトを介して異なる配線層を接続する半導体装置の配線方法、および配線プログラムに関するものであり、特に、ビアコンタクトによる配線経路の冗長化に関するものである。
【背景技術】
【０００２】
特許文献１に開示されている半導体装置の設計方法は、冗長ビアの存在により設計制約違反が生ずる場合に、冗長ビアの個数を削減するものである。不具合が発生しない冗長ビアの個数を算出し、既に冗長ビアの配置が終わっている場合は、不具合が発生しない冗長ビアの個数になるまで冗長ビアを削減して単一ビアに戻すことが記載されている。
【０００３】
その他の関連文献として、特許文献２が開示されている。
【０００４】
【特許文献１】特開２００６−１３５１５２号公報
【特許文献２】特開平３−２１８０５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記特許文献１では、不具合が発生する場合には、冗長ビアを単一ビアに戻す処理が行われ、これにより、冗長ビアに起因する設計制約違反が解消されるものではある。
【０００６】
しかしながら、単一ビアに戻された箇所では、単一ビアに起因する不具合の発生を防止することはできない。すなわち、製造上のばらつきなどによる不十分なエッチングなどによって、単一ビアのうち開孔できないビアが存在すると、配線間の接続ができず、結線不良となってしまうおそれがある。
【０００７】
こうした製造上の不具合は、半導体装置の微細化・高集積化の進展に伴う微細加工により、顕著に発生するおそれがある。半導体装置の製造歩留まりの悪化を招来するおそれがあり問題である。
【０００８】
本発明は、上記の課題に鑑み提案されたものであって、配線ノード間を迂回経路で接続することで配線の冗長化を図ることが可能なコンピュータに半導体装置の配線方法を実行させるためのプログラム、および半導体装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係るプログラムは、半導体装置のレイアウトにおいて配線ノード間を接続するコンタクトのうち、接続を冗長化する対象のコンタクトを対象コンタクトとして選択するステップと、対象コンタクトが接続する１対の配線ノードの間を結線する迂回配線経路を探索するステップと、探索された迂回配線経路のうち、配線長が最短である最短迂回配線経路を選択するステップとを有する半導体装置の配線方法をコンピュータに実行させるものである。
【００１０】
本発明に係るプログラムでは、半導体装置の配線方法をコンピュータに実行させる際、半導体装置のレイアウトにおいて配線ノード間を接続するコンタクトのうち、接続を冗長化する対象のコンタクトを対象コンタクトとして選択し、選択された対象コンタクトに対して、該対象コンタクトが接続する１対の配線ノードの間を結線する迂回配線経路を探索する。更に、探索された迂回配線経路のうち、配線長が最短である最短迂回配線経路を選択する。
【００１１】
これにより、対象コンタクトで接続される１対の配線ノード間は、対象コンタクトを介さない迂回配線経路で接続される。配線ノード間を、対象コンタクトを介して接続される経路とは異なる経路で接続することができ、配線を冗長化することができる。配線ノード間の接続の信頼性を向上させることができる。
【００１２】
この場合、配線ノード間で接続可能な迂回配線経路のうち最短迂回配線経路が選択される。これにより、配線ノード間の配線を冗長化する迂回配線経路を伝搬する信号の伝搬遅延時間を最小化することができる。迂回配線経路を介して信号が伝搬する場合の信号の伝搬遅延時間と、対象コンタクトを介して信号が伝搬する場合の信号の伝搬遅延時間との、伝播遅延時間の差異を最小限に抑えることができる。対象コンタクトを介する場合と迂回配線経路を介する場合とで、信号伝搬タイミングの差異を最小限とすることができ、迂回配線経路が使用される場合に、迂回配線経路上にバッファ回路などの専用回路を挿入するなどといった伝播遅延時間の調整は不要である。
【００１３】
配線ノード間の接続を冗長化して接続の信頼性を確保する際、配線ノード間を接続するコンタクトの開孔を複数設けることによる配線の冗長化の他に、迂回配線経路で接続することにより配線を冗長化する構成を提供することができる。複数開孔のコンタクトを配置できない場合にも配線の冗長化を行うことができ、配線レイアウトのやり直しをすることなく配線ノード間の配線の冗長化を図ることができる。
【発明の効果】
【００１４】
本発明のコンピュータに半導体装置の配線方法を実行させるためのプログラム、および半導体装置によれば、半導体装置のレイアウトにおける配線ノード間の配線の冗長化を、配線ノード間を接続するコンタクトを介する経路とは別の迂回配線経路で接続することにより行うことができる。
【発明を実施するための最良の形態】
【００１５】
図１は、半導体装置の配線方法のプログラムを実行させるコンピュータシステムの一例を示すブロック図である。
【００１６】
コンピュータシステム１は、コンピュータ本体１０と外部記憶装置９０とから構成されている。コンピュータ本体１０は、中央処理装置（以下、ＣＰＵと略記する。）２０、メモリ３０、磁気ディスク４０、表示装置（以下、ＣＲＴと略記する。）５０、キーボード（入力装置）６０、および外部記憶媒体駆動装置７０により構成されている。これらはバス８０を介して相互に接続されている。
【００１７】
外部記憶媒体駆動装置７０には、外部記憶装置９０が接続されている。外部記憶装置９０は、ＣＤＲＯＭ９０Ａや磁気媒体９０Ｂを備えて構成されている。
【００１８】
ＣＰＵ２０は、メモリ３０にロードされたプログラムを実行する。また、メモリ３０には、プログラム実行中の中間データやパラメータなどが格納されている。メモリ３０は、必要に応じて、アクセス速度や使用頻度に応じて、通常のメインメモリや高速のキャッシュメモリ等（不図示）の多段階構成を備え、また、格納するデータや制御対象に応じて、システムメモリやディスプレイメモリ等（不図示）の各種のメモリを備える場合がある。
【００１９】
ＣＲＴ５０は、半導体装置の配線状態を示すレイアウト表示や、パラメータ入力画面等の表示に用いられる。ＣＲＴ５０には、ＣＲＴ構造の他、液晶（ＬＣＤ）（不図示）やプラズマ（ＰＤＰ）（不図示）等のディスプレイで構成される。キーボード（入力装置）６０は、ユーザからの要求や指示、パラメータの入力に用いられる。キーボードの他、マウス（不図示）等のポインティングデバイスが使用される。
【００２０】
磁気ディスク４０は、通常、磁気ディスク装置、光ディスク装置、光磁気ディスク装置等（不図示）を含む。また、該部記録装置９０は、コンピュータ読み取り可能な記録媒体である。ＣＤＲＯＭ９０Ａ、磁気媒体９０Ｂの他、図示しないＤＶＤ等の光ディスク、フレキシブルディスク、光磁気ディスク（ＭＯ、ＭＤなど）、および磁気テープ等が使用可能である。
【００２１】
図２および図３に示す半導体装置の配線方法を実行するコンピュータプログラムは、コンピュータ本体１０に備えられるメモリ３０や磁気ディスク４０に記録されている他、ＣＤＲＯＭ９０Ａや磁気媒体９０Ｂ等の外部記憶装置９０に記録されている。プログラムの実行の際には、磁気ディスク４０や外部記憶装置９０から必要に応じてメモリ３０にロードされる。また、インターネット等の通信回線（不図示）を介してメモリ３０にロードされる場合もある。
【００２２】
更に、タイミング解析のプログラムおよびＥＣＯ処理のプログラムなどの各種のプログラム、各種プログラムを実行するための各種パラメータや、半導体装置のネットリストおよびレイアウトデータ等の各種データなども、メモリ３０や磁気ディスク４０に記録されている他、ＣＤＲＯＭ９０Ａや磁気媒体９０Ｂ等の外部記憶装置９０に記録されている。更に、半導体装置の配線方法のプログラムにおける２ホールビアコンタクトへの置換ができないシングルビアコンタクトの検索テーブル（図２の処理（Ｓ５））など、各種プログラムの実行途中や実行結果として得られるデータも格納される。
【００２３】
図２および図３は、実施形態のプログラムのフロー図である。また、図４乃至１１は、実施形態のプログラムを実行する場合に処理される半導体装置のレイアウトの一例である。プログラムの実行による各処理段階での配線状態を示す。
【００２４】
以下の説明では、プログラムの各実行段階での処理内容と、その時点での半導体装置の配線状態とを合わせて説明する。図１のコンピュータシステムにおいて、図２および図３のプログラムの実行が指令されると、先ず、半導体装置の配置配線処理が行なわれる（Ｓ１）。
【００２５】
図４は、配置配線された状態を示す半導体装置のレイアウト図である。実施形態の半導体装置のレイアウトでは、３層の配線層ＬＡ、ＬＢ、ＬＣを備えている。下層より、第１配線層ＬＡ、第２配線層ＬＢ、第３配線層ＬＣの順に積層される構成である。配線層間の接続には、２種類のビアコンタクトＶＢ、ＶＣが備えられている。第１配線層ＬＡと第２配線層ＬＢとを接続するビアコンタクトが第１ビアコンタクトＶＢ、第２配線層ＬＢと第３配線層ＬＣとを接続するビアコンタクトが第２ビアコンタクトＶＣである。配置配線処理（Ｓ１）の段階では、第１および第２ビアコンタクトＶＢ、ＶＣとして開孔が１つのシングルビアコンタクトが配置される。
【００２６】
第１および第２ビアコンタクトＶＢ、ＶＣは、単一の開孔を有する、いわゆるシングルビアコンタクトである。このため、製造上のばらつきなどによるコンタクト開孔の不良、いわゆるコンタクト不良が存在すると、第１および第２ビアコンタクトＶＢ、ＶＣを介して接続されるべき１対の配線ノードの接続不良が生じてしまう。
【００２７】
こうした接続不良を防止するために、製造ばらつきに対しても接続状態を維持することが可能な配線の冗長化が必要である。ここで、ビアコンタクトが有する開孔の数を１つから２つ以上に増加させてやれば、コンタクト不良の発生が抑制されることが知られている。以下の説明では、コンタクトの多孔化による配線の冗長化と称する。図２において、第１段階の冗長化処理として、１つの開孔を有する第１および第２ビアコンタクト（以下、シングルビアコンタクトと称する。）ＶＢ、ＶＣに対して、２つの開孔を備える第１および第２ビアコンタクトＶＢ２、ＶＣ２に置換する処理が行なわれる（Ｓ３）。
【００２８】
図５は、２つの開孔を備える第１および第２ビアコンタクト（以下、２ホールビアコンタクトと称する。）ＶＢ２、ＶＣ２に置換する処理を行った結果を示す半導体装置の配線状態である。シングルビアコンタクトＶＢ、ＶＣのうち、２ホールビアコンタクトＶＢ２、ＶＣ２に置換された配線については、２ホールビアコンタクトＶＢ２、ＶＣ２を介して接続される配線ノード間の接続が冗長化される。製造ばらつきに起因するコンタクト不良の発生が抑制されるからである。コンタクトの多孔化により配線ノード間の配線が冗長化され、配線接続の信頼性を向上させることができる。
【００２９】
一方、配線レイアウトによっては、シングルビアコンタクトＶＢ、ＶＣを２ホールビアコンタクトＶＢ２、ＶＣ２に置換できない場合もある。図５中の×印で示したシングルビアコンタクトＶＢ、ＶＣである。シングルビアコンタクトＶＢ、ＶＣを２ホールビアコンタクトＶＢ２、ＶＣ２に置換する場合には、コンタクトの占める配置領域が増大する。周囲の配線やその他のレイアウト状況によっては、２ホールビアコンタクトＶＢ２、ＶＣ２を配置する領域がない場合がある。この場合、２ホールビアコンタクトＶＢ２、ＶＣ２に置換することができず、シングルビアコンタクトＶＢ、ＶＣが残留する。
【００３０】
確率的に考えれば、残留したシングルビアコンタクトＶＢ、ＶＣの数が多いほど、コンタクト不良に伴う接続不良が生ずる可能性が大きくなる。実施形態では、図２の処理（Ｓ５）以降において、第２段階の冗長化処理を行う。迂回経路による配線の冗長化処理である。これにより、２ホールビアコンタクトＶＢ２、ＶＣ２に置換できないシングルビアコンタクトＶＢ、ＶＣによる接続部分に対して配線の冗長化を図ることができる。
【００３１】
図２に戻り、処理（Ｓ３）において２ホールビアコンタクトＶＢ２、ＶＣ２に置換することができず残留したシングルビアコンタクトＶＢ、ＶＣを検索して、テーブルに格納する（Ｓ５）。更に、テーブルに格納されたシングルビアコンタクトＶＢ、ＶＣから、迂回経路による配線の冗長化処理の対象となるシングルビアコンタクトを選択する（Ｓ７）。そして、対象のシングルビアコンタクトが接続する配線ノードを、配線ノード上に存在するコンタクトごとに区画した線分に分け、対象のシングルビアコンタクトに最近接の線分を選択する（Ｓ９）。
【００３２】
次に、対象のシングルビアコンタクトを介して接続される配線ノードの各々から選択された線分（この場合は、対象のシングルビアコンタクトに最近接する線分）間を接続する迂回配線経路を探索する（Ｓ１１）。
【００３３】
迂回配線経路が存在する場合には（Ｓ１３、ＹＥＳ）、その経路が配線長が制限長以内であるか否かが判断される（Ｓ１５）。ここで、制限長とは、予め設定される配線長の許容上限値である。迂回配線経路により対象のシングルビアコンタクトを迂回する場合、迂回配線経路を伝播する信号の遅延時間は、対象のシングルビアコンタクトを介して伝播する信号の伝播遅延時間に照らして、所定の遅延時間の範囲にある必要がある。この許容範囲が上限の配線長として設定されている。
【００３４】
制限長以内であれば（Ｓ１５、ＹＥＳ）、図３のフロー図に移って、迂回配線経路で同じ長さの配線が複数あるか否かが判断される（Ｓ２１）。複数ある場合には（Ｓ２１、ＹＥＳ）、迂回配線経路の周辺の配線密度を計算し、配線密度の低い領域に配置されている迂回配線経路を選択する（Ｓ２３）。同じ長さの迂回配線経路がない場合（Ｓ２１、ＮＯ）、あるいは複数の迂回配線経路のうち周辺の配線密度の低い領域に配置されている迂回配線経路が選択された後（Ｓ２３）、線分間に接続可能な迂回配線経路のうち最短の迂回配線経路を選択して冗長化配線として配置する（Ｓ２５）。
【００３５】
ここで、実施形態では、対象のシングルビアコンタクトからの距離の近い線分を優先して迂回配線経路を探索する。これは、探索された迂回配線経路のうち、対象のシングルビアコンタクトからの距離が近い線分間で探索された迂回配線経路ほど、配線長が短いことを前提とするからである。従って、最初に探索される線分間の迂回配線経路が最短迂回配線経路の候補となる。次に、同じ線分間には複数の迂回配線経路が存在する場合がある。線分の長さが複数の配線グリッドに渡って配線されている場合があるからである。この場合、配線グリッドごとに複数の迂回配線経路を接続することが可能である。処理（Ｓ２５）では、このうち、最短で接続することができる経路を最短迂回配線経路として選択する。すなわち、最短迂回配線経路で接続可能な線分間に接続可能な複数の迂回配線経路から、最短迂回配線経路を抽出する処理を行う。これにより、迂回配線経路を伝播する信号の伝播遅延時間を最小とすることができる。全ての線分による探索を行う必要がなく、探索処理時間の短縮を図ることができる。
【００３６】
処理（Ｓ７）乃至（Ｓ１５）、および処理（Ｓ２１）乃至（Ｓ２５）に関する具体例として、図６、７に第１具体例を示す。対象のシングルビアコンタクトに最近接の線分間で迂回配線経路が決定される場合である。
【００３７】
第１具体例で例示するレイアウトは、実施形態の半導体装置のレイアウトのうち、領域Ａで示される部分（図５）である。領域Ａでは、３つのシングルビアコンタクトＶＣが存在する。このうち、対象のシングルビアコンタクトＶＩＡ１を冗長化する場合である。対象のシングルビアコンタクトＶＩＡ１を介して接続される配線ノードのうち、横方向の配線ノードは、対象のシングルビアコンタクトＶＩＡ１を挟んで、２本の線分Ｓ１、Ｓ３に区画される。一方、縦方向の配線ノードは、１本の線分Ｓ２が存在する。
【００３８】
探索の結果、線分Ｓ２から、線分Ｓ１および線分Ｓ３の各々に対して、経路Ｒ１、Ｒ２が探索される（図６）。経路Ｒ１、Ｒ２は、同じ経路長を有しているので、周辺の配線密度が計算される。計算の結果、経路Ｒ２の周辺の配線密度に比して経路Ｒ１の周辺の配線密度が低密度であると判断され、経路Ｒ１が迂回配線経路として選択される。第１具体例では、線分Ｓ１において、経路Ｒ１で接続される配線グリッドの外方に更に配線グリッドが存在する。これらの配線グリッドと線分Ｓ２とを接続することも可能であり、迂回配線経路は複数存在する。その中から、経路長を比較した結果、経路Ｒ１が最短長であるので、経路Ｒ１が最短迂回配線経路と選択され、冗長化配線として配線される（図７）。
【００３９】
第１具体例において配線される最短迂回配線経路は、線分Ｓ２から２ホールビアコンタクトＶＣ２を介して線分ＳＡ１に接続され、線分ＳＡ１は２ホールビアコンタクトＶＣ２を介して線分ＳＡ２に接続され、線分ＳＡ２は２ホールビアコンタクトＶＣ２を介して線分Ｓ１に接続される。ここで、線分ＳＡ１は第３配線層ＬＣであり、線分ＳＡ２は第２配線層ＬＢである。この場合、最短迂回配線経路を構成するビアコンタクトは２ホールビアコンタクトＶＣ２であり、最短迂回配線経路では、コンタクトの多孔化による配線の冗長化が図られている。
【００４０】
図２に戻って、迂回配線経路が存在しない場合には（Ｓ１３、ＮＯ）、迂回配線経路の探索範囲を、何れか一方の配線ノードにおいて１線分延長する（Ｓ１７）。それまで選択されていた線分の先に接続されている線分を選択するのである。１対の配線ノードのうち、少なくとも一方の配線ノードにおいて配線ノードの端に達しておらず新たな線分を選択することができれば（Ｓ１９、ＹＥＳ）、処理（Ｓ１１）に戻り、新たに選択された線分に対して迂回配線経路の探索を行う。
【００４１】
処理（Ｓ７）乃至（Ｓ１３）、および処理（Ｓ１７）乃至（Ｓ１９）に関する具体例として、図８、９に第２具体例を示す。対象のシングルビアコンタクトに最近接の線分には迂回配線経路がない場合である。
【００４２】
第２具体例で例示するレイアウトは、実施形態の半導体装置のレイアウトのうち、領域Ｂで示される部分（図５）である。領域Ｂでは、３つのシングルビアコンタクトＶＣが存在する。このうち、対象のシングルビアコンタクトＶＩＡ１０を冗長化する場合である。対象のシングルビアコンタクトＶＩＡ１０を介して接続される配線ノードのうち、一方の配線ノードは、縦方向の線分Ｓ１０および横方向の２本の線分Ｓ１２、Ｓ１４で構成されている。他方の配線ノードは、横方向の線分Ｓ１１および縦方向の線分Ｓ１３で構成されている。
【００４３】
探索の結果、線分Ｓ１１と線分Ｓ１０との間には迂回配線経路を配線することはできない。一方の配線ノードにおいて１線分延長された線分Ｓ１２においても迂回配線経路を配線することはできない。このため、一方の配線ノードにおいて更に１線分延長して線分Ｓ１４を対象とする。これにより、線分Ｓ１１と線分Ｓ１４との間に、経路Ｒ１１が探索される（図８）。第２具体例では、線分Ｓ１４において、経路Ｒ１１で接続される配線グリッドの外方に更に配線グリッドが存在する。この配線グリッドと線分Ｓ１１とを接続することも可能であり、迂回配線経路の候補となる経路は複数存在する。その中から、経路長を比較した結果、経路Ｒ１１が最短である。経路Ｒ１１が最短迂回配線経路と選択され、冗長化配線として配線される（図９）。
【００４４】
第２具体例において配線される最短迂回配線経路は、線分Ｓ１１が線分ＳＡ１１に接続され、線分ＳＡ１１は２ホールビアコンタクトＶＣ２を介して線分ＳＡ１２に接続され、線分ＳＡ１２は２ホールビアコンタクトＶＣ２を介して線分Ｓ１４に接続される。ここで、線分Ｓ１１と線分ＳＡ１１とは、共に第３配線層ＬＣであり、同一配線層により直接接続される。この場合、最短迂回配線経路を構成するビアコンタクトは、２ホールビアコンタクトＶＣ２であり、最短迂回配線経路では、コンタクトの多孔化による配線の冗長化が図られている。
【００４５】
図１０に示す第３具体例で例示するレイアウトは、実施形態の半導体装置のレイアウトのうち、配線Ｃで示される部分（図５）である。配線Ｃは、１つのシングルビアコンタクトＶＣが存在する。これを対象のシングルビアコンタクトＶＩＡ２０として冗長化する場合である。対象のシングルビアコンタクトＶＩＡ２０を介して接続される配線ノードのうち、一方の配線ノードは、縦方向に２本の線分Ｓ２０、Ｓ２８を備え、その間が横方向の線分Ｓ２７で接続されて構成されている。各線分間は、２ホールビアコンタクトＶＣ２で接続されている。他方の配線ノードは、横方向に３本の線分Ｓ２１、Ｓ２２、およびＳ２５を備え、縦方向の線分は、線分Ｓ２１の先に線分Ｓ２３が、線分Ｓ２２とＳ２５との接続点に線分Ｓ２４が、線分Ｓ２５の先に線分Ｓ２６が、備えられている。各線分間は、２ホールビアコンタクトＶＣ２で接続されている。
【００４６】
探索は、対象のシングルビアコンタクトＶＩＡ２０に近い線分を優先して選択して行われ、迂回配線経路が存在しない場合に、順次遠方の線分を選択して探索を行う。具体的には、一方の配線ノードの線分Ｓ２０と他方の配線ノードの線分Ｓ２１との間で探索を行なう。次に、他方の配線ノードの線分Ｓ２１に代えて線分Ｓ２２を選択して探索が行われる。以下順次、他方の配線ノードの線分Ｓ２３、Ｓ２４、Ｓ２５、Ｓ２６を選択して探索が行われる。更に、一方の配線ノードの線分Ｓ２０から、順次線分Ｓ２７、Ｓ２８を選択して探索を行う。対象のシングルビアコンタクトＶＩＡ２０に近い線分から順次遠方の線分を選択し、迂回配線経路が検出されるまで探索が行われる。検出された迂回配線経路を最短迂回配線経路として確定する。
【００４７】
図３に戻り、処理（Ｓ２１）により、最短迂回配線経路を選択して冗長化配線として配置した場合には（Ｓ２５）、対象のシングルビアコンタクトに関して最短迂回配線経路が確定したことになる。この場合には、対象のシングルビアコンタクトについて冗長化フラグを設定する（Ｓ２７）。迂回配線による配線の冗長化が行なわれたことを示すフラグである。更に、冗長化された配線に関する配線情報に固定化フラグを設定する（Ｓ２９）。その後の再配線などの処理においても、迂回配線により冗長化された配線については、配線の配置位置を固定として変更しないための処理である。この場合の対象となる配線情報は、少なくとも、対象のシングルビアコンタクト、１対の配線ノードの各々において対象のシングルビアコンタクトから最短迂回配線経路が接続されるまでの線分、および最短迂回配線経路を含む情報である。更に、冗長化された配線の周辺の配線情報を含む構成とすることもできる。
【００４８】
一方、図２の処理（Ｓ１９、ＮＯ）により、何れの配線ノードも配線ノードの端に位置する線分が選択済みであり更にその先に線分が存在しないと判断される場合には、対象のシングルビアコンタクトを介して接続される配線ノード間を接続する迂回配線経路は存在しないことになる。この場合には、図３において、対象のシングルビアコンタクトについて、迂回配線による配線の冗長化処理が未完了であることを示す未完了フラグを設定する（Ｓ３１）。この場合、コンタクトの多孔化による配線の冗長化もなされておらず、配線の冗長化ができない箇所を示す。
【００４９】
処理（Ｓ２９）、（Ｓ３１）の後、全てのシングルビアコンタクトについて迂回配線による配線の冗長化処理が行われたか否かが判断される（Ｓ３３）。未処理のシングルビアコンタクトが残っていれば（Ｓ３３、ＮＯ）、処理（Ｓ７）に戻り、新たなシングルビアコンタクトを対象として処理を繰り返す。こうして全てのシングルビアコンタクトについての処理が完了すれば（Ｓ３３、ＹＥＳ）、タイミング解析が行われる（Ｓ３５）。実配線による負荷を考慮した解析である。これによりタイミングエラーが検出されると（Ｓ３７，ＹＥＳ）、ＥＣＯ処理を行う（Ｓ３９）。ここで、ＥＣＯとは、”Engineering Change Order”の略語である。ＥＣＯ処理とは、タイミング解析により発見されたタイミングに関するエラーを回避するための処理である。エラーの発生した箇所の回路変更、回路配置や配線経路の変更などの処理を行う。具体的には、遅延時間を調整するために配線上にバッファ回路などの遅延回路を挿入してタイミングエラーを回避することなどが行われる。この処理の後は、再度処理（Ｓ１）に戻る。この場合、ＥＣＯ処理により変更された箇所に関して配置配線が行われ、配線の冗長化処理が繰り返される。ここでは、処理（Ｓ２９）により固定化フラグが設定されている箇所は、配線レイアウトは変更されない。迂回配線による配線の冗長化処理を行った箇所はそのまま維持される。以上の処理が繰り返され、タイミングエラーの検出がなくなった段階で（Ｓ３７、ＮＯ）処理が終了する。
【００５０】
図１１は、処理が完了した半導体装置の配線状態を示す。コンタクトの多孔化による冗長化処理では置換されずに残留したシングルビアコンタクトについて、迂回配線による冗長化を行うことにより、配線の冗長化状態が改善される。
【００５１】
図１２は、実施形態のプログラム（図２）の変形例である。変形された部分のフロー図を示す。図２の実施形態では、対象のシングルビアコンタクトからの距離が近い線分間で探索された迂回配線経路ほど、配線長が短いことを前提として探索した。しかしながら、実際の配線においては、対象のシングルビアコンタクトからの距離が遠い線分との間でも、配線長の短い迂回配線経路が存在する場合がある。配線ノードがＵターンして対象のシングルビアコンタクトの方向に戻る経路を有する場合などが考えられるからである。変形例では、こうした配線構成の場合を考慮した迂回配線経路の探索フローである。配線ノード上の全ての線分の組み合わせについて探索を行い、その中から最短の迂回配線経路を抽出する。これにより、最短の経路を確実に探索することができる。
【００５２】
図１２の変形例では、図２の実施形態の処理（Ｓ１１）と処理（Ｓ１３）との間に処理（Ｓ５１）が挿入されている。更に、処理（Ｓ５１）の結果に応じて処理（Ｓ５３）が追加されている。また、図２の実施形態の処理（Ｓ１３）と処理（Ｓ１５）との間に処理（Ｓ５５）が挿入されている。更に、図２の実施形態の処理（Ｓ１７）と処理（Ｓ１９）が削除され、処理（Ｓ１３）の判断に応じて処理（Ｓ３１）に移行する。以下に具体的に説明する。
【００５３】
処理（Ｓ１１）により、対象のシングルビアコンタクトを介して接続される配線ノードの各々から選択された線分間を接続する迂回配線経路を探索した後、配線ノードを構成する全ての線分について迂回配線経路の探索が行われたか否かを判断する（Ｓ５１）。全ての線分が探索対象とされた場合には（Ｓ５１、ＹＥＳ）、迂回配線経路が存在するか否かが判断される（Ｓ１３）。一方、未だ探索対象として選択されていない線分が存在する場合には（Ｓ５１、ＮＯ）、迂回配線経路の探索範囲を１線分延長して（Ｓ５３）、処理（Ｓ１１）に戻り、探索を継続する。
【００５４】
処理（Ｓ１３）により、迂回配線経路が存在すると判断される場合には（Ｓ１３、ＹＥＳ）、探索された迂回配線経路の中から最短の迂回配線経路を最短迂回配線経路として選択し（Ｓ５５）、その経路が配線長の制限長以内であるか否かが判断される（Ｓ１５）。迂回配線経路が存在しないと判断される場合には（Ｓ１３、ＮＯ）、処理（Ｓ３１）に移行し、対象のシングルビアコンタクトについて、迂回配線による配線の冗長化処理が未完了であることを示す未完了フラグを設定する。
【００５５】
以上、詳細に説明したように、本発明の実施形態によれば、対象のシングルビアコンタクトＶＩＡ１（図６、７）、ＶＩＡ１０（図８、９）で接続される１対の配線ノード間を、該対象のシングルビアコンタクトＶＩＡ１、ＶＩＡ１０を介さない迂回配線経路Ｒ１（図６、７）、Ｒ１１（図８、９）で結線することができる。対象のシングルビアコンタクトＶＩＡ１、ＶＩＡ１０を介して接続される経路に加えて、迂回配線経路Ｒ１、Ｒ１１により接続される経路で接続することができ、配線ノード間を２つの経路で接続することができる。配線ノード間の配線が冗長化され、配線ノード間の接続の信頼性を向上させることができる。
【００５６】
この場合、配線ノード間で接続可能な迂回配線経路のうち最短迂回配線経路Ｒ１、Ｒ１１が選択される。これにより、配線ノード間の配線を冗長化する迂回配線経路を伝搬する信号の伝搬遅延時間を最小化することができる。迂回配線経路を介して信号が伝搬する場合の信号の伝搬遅延時間と、対象のシングルビアコンタクトＶＩＡ１、ＶＩＡ１０を介して信号が伝搬する場合の信号の伝搬遅延時間との、遅延時間の差異を最小限に抑えることができる。対象のシングルビアコンタクトＶＩＡ１、ＶＩＡ１０を介する場合と迂回配線経路Ｒ１、Ｒ１１を介する場合とで、信号伝搬タイミングの差異を最小限とすることができる。迂回配線経路Ｒ１、Ｒ１１が使用される場合に、迂回配線経路上にバッファ回路などの専用回路を挿入するなどといった調整が不要となる。
【００５７】
配線ノード間の配線を冗長化して接続の信頼性を確保する際、配線ノード間を接続するビアコンタクトの開孔を複数設けることによる配線の冗長化に加えて、迂回配線経路Ｒ１、Ｒ１１による配線の冗長化を行うことができる。複数開孔のビアコンタクトを配置できない場合にも対応することができ、配線レイアウトのやり直しをすることなく配線ノード間の配線の冗長化を図ることができる。
【００５８】
本実施形態では、シングルビアコンタクトを２ホールビアコンタクトに置換するビアコンタクトによる配線冗長化を最初に行う。この時、置換できないシングルビアコンタクトについて、更に迂回配線による配線の冗長化を行う。２段階の冗長化処理を行うことができる。配線ノード間の接続信頼性の向上を図ることができる。
【００５９】
また、図２に示す実施形態では、対象のシングルビアコンタクトで接続される配線ノードを線分に分割し、対象のシングルビアコンタクトからの距離が近い線分間で接続される迂回配線経路の方がより短距離で接続されることを前提として処理が行われる。対象のシングルビアコンタクトからの距離が近い線分を優先して迂回配線経路を探索すれば、最初に探索された迂回配線経路を最短迂回配線経路とすることができる。全ての線分による探索を行う必要がなく、探索処理時間の短縮を図ることができる。
【００６０】
また、図１２に示す変形例では、対象のシングルビアコンタクトで接続される配線ノードを線分に分割し、全ての線分の組み合わせについて迂回配線経路の探索が行われる。これにより、最短の経路を確実に探索することができる。
【００６１】
尚、本発明は前記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内での種々の改良、変更が可能であることは言うまでもない。
例えば、本実施形態では、シングルビアコンタクトを２ホールビアコンタクトに置換した後に、迂回配線経路の探索処理を行う場合を例示したが、本発明はこれに限定されるものではない。２ホールビアコンタクトへの置換を行うことなく、迂回配線経路を探索し、迂回配線による配線の冗長化を行う構成とすることもできる。
【図面の簡単な説明】
【００６２】
【図１】実施形態のプログラムを実行するコンピュータシステムのシステム構成図である。
【図２】実施形態の半導体装置の配線方法をコンピュータシステムに実行させるプログラムフロー図の前半部である。
【図３】実施形態の半導体装置の配線方法をコンピュータシステムに実行させるプログラムフロー図の後半部である。
【図４】半導体装置の配線状態のうち、配線ノード間がシングルビアコンタクトで接続される初期状態のレイアウト図である。
【図５】半導体装置の配線状態のうち、シングルビアコンタクトを２ホールビアコンタクトに置換した状態のレイアウト図である。
【図６】迂回配線経路の探索についての第１具体例を示す図である。
【図７】半導体装置の配線状態のうち、第１具体例で探索された迂回配線経路で配線の冗長化がされた状態のレイアウト図である。
【図８】迂回配線経路の探索についての第２具体例を示す図である。
【図９】半導体装置の配線状態のうち、第２具体例で探索された迂回配線経路で配線の冗長化がされた状態のレイアウト図である。
【図１０】迂回配線経路の探索についての第３具体例を示す図である。
【図１１】半導体装置の配線状態のうち、配線の冗長化がされた状態のレイアウト図である。
【図１２】実施形態の変形例のプログラムフロー図である。
【符号の説明】
【００６３】
ＬＡ      第１配線層
ＬＢ      第２配線層
ＬＣ      第３配線層
Ｒ１、Ｒ２、Ｒ１１      経路
Ｓ１、Ｓ２、Ｓ３、Ｓ１０、Ｓ１１、Ｓ１２、Ｓ１３、Ｓ１４、Ｓ２０、Ｓ２１、Ｓ２２、Ｓ２３、Ｓ２４、Ｓ２５、Ｓ２７、Ｓ２８、ＳＡ１、ＳＡ２、ＳＡ１１、ＳＡ１      線分
ＶＢ、ＶＣ      シングルビアコンタクト
ＶＢ２、ＶＣ２      ２ホールビアコンタクト
ＶＩＡ１、ＶＩＡ１０、ＶＩＡ２０      対象のシングルビアコンタクト
【図１】
2009294968.tif 000003
【図２】
2009294968.tif 000004
【図３】
2009294968.tif 000005
【図４】
2009294968.tif 000006
【図５】
2009294968.tif 000007
【図６】
2009294968.tif 000008
【図７】
2009294968.tif 000009
【図８】
2009294968.tif 000010
【図９】
2009294968.tif 000011
【図１０】
2009294968.tif 000012
【図１１】
2009294968.tif 000013
【図１２】
2009294968.tif 000014