(57)【要約】【課題】配線占有領域を削減し、冗長ビア配線ルール違反箇所を無くし又は削減することができるようにした半導体集積回路のレイアウト設計方法を提供する。【解決手段】詳細配線（第１工程）で冗長ビア配線ルール違反が発生した場合、セルの向きを変更して冗長ビア配線ルール違反箇所を解消する配線修正を行うための準備（第２工程〜第１２工程）を行い、その後、セルの向きを変更して配線修正を行い（第１３〜第１５工程）、経路更新を行う（第１６工程）工程を用意する。【選択図】図２
2008311454.tif 000002
【特許請求の範囲】
【請求項１】
概略配線工程と詳細配線工程とを有する半導体集積回路のレイアウト設計方法であって、
前記詳細配線工程後に、セルの向きを変更して冗長ビア配線ルール違反箇所を解消するための配線修正工程を有することを特徴とする半導体集積回路のレイアウト設計方法。
【請求項２】
前記配線修正工程は、
前記冗長ビア配線ルール違反箇所をグループ分けし、グループ内の冗長ビア配線ルール違反箇所を包含する領域を第１の領域と定義する工程と、
前記第１の領域と、前記第１の領域と重なりがあるセル枠の一つとを含む領域を第２の領域と定義する工程と、
前記第２の領域内のセルの向きを変更して配線修正を行う工程と
を含むことを特徴とする請求項１に記載の半導体集積回路のレイアウト設計方法。
【請求項３】
前記第２の領域内のセルの向きを変更して配線修正を行う工程は、
前記第２の領域内のセル端子上の接続点と、前記接続点と接続すべき配線の前記第２の領域の境界との交点との直線距離和を第１の直線距離和として計算する工程と、
前記第２の領域内のセルの向きをフリップし、前記接続点と前記交点との直線距離和を第２の直線距離和として計算する工程と、
前記第２の直線距離和が前記第１の直線距離和よりも小さい場合、前記第２の領域内のセルの向きをフリップした状態に変更する工程と、
前記第２の領域内の配線を破棄し、前記接続点と前記交点との間の配線経路を再探索して配線経路を更新する工程と
を含むことを特徴とする請求項２に記載の半導体集積回路のレイアウト設計方法。
【請求項４】
概略配線工程と詳細配線工程とをコンピュータに実行させるプログラムを含む半導体集積回路のレイアウト設計プログラムであって、
前記詳細配線工程後に、セルの向きを変更して冗長ビア配線ルール違反箇所を解消するための配線修正工程をコンピュータに実行させるプログラムを含むことを特徴とする半導体集積回路のレイアウト設計プログラム。
【請求項５】
前記配線修正工程は、
前記冗長ビア配線ルール違反箇所をグループ分けし、グループ内の冗長ビア配線ルール違反箇所を包含する領域を第１の領域と定義する工程と、
前記第１の領域と、前記第１の領域と重なりがあるセル枠の一つとを含む領域を第２の領域と定義する工程と、
前記第２の領域内のセルの向きを変更して配線修正を行う工程と
を含むことを特徴とする請求項４に記載の半導体集積回路のレイアウト設計プログラム。
【請求項６】
前記第２の領域内のセルの向きを変更して配線修正を行う工程は、
前記第２の領域内のセル端子上の接続点と、前記接続点と接続すべき配線の前記第２の領域の境界との交点との直線距離和を第１の直線距離和として計算する工程と、
前記第２の領域内のセルの向きをフリップし、前記接続点と前記交点との直線距離和を第２の直線距離和として計算する工程と、
前記第２の直線距離和が前記第１の直線距離和よりも小さい場合、前記第２の領域内のセルの向きをフリップした状態に変更する工程と、
前記第２の領域内の配線を破棄し、前記接続点と前記交点との間の配線経路を再探索して配線経路を更新する工程と
を含むことを特徴とする請求項５に記載の半導体集積回路のレイアウト設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概略配線（global routing）工程と詳細配線（final routing）工程とを有する半導体集積回路のレイアウト設計方法、および、概略配線工程と詳細配線工程とをコンピュータに実行させるプログラムを含む半導体集積回路のレイアウト設計プログラムに関する。
【背景技術】
【０００２】
たとえば、スタンダードセル方式による半導体集積回路のレイアウト設計においては、設計ルールの範囲でセルを出来るだけ小さく作る傾向がある。このため、セル領域では、配線と接続すべきセル端子が密集し、セル端子付近では、配線用に使える空間が不足し、自動配線では、配線間ショートを解消できないという事態が生じる場合がある。
【０００３】
他方で、配線形成時の信頼性や製品寿命を改善するために、占有面積が小さい標準ビアの代わりに、占有面積が大きい冗長な構造のビア（いわゆる冗長ビア）を使用して回路を作ることが一般化している。このため、セル端子付近での配線を無駄なく行い、配線占有面積を出来るだけ小さくすることが、より重要になっている。
【０００４】
配線占有面積が増える原因の一つとして、同一セル内のセル端子に接続しなければならない配線が複数あるとき、それらの経路がセル端子近傍の配線領域を非効率に占有して互いに邪魔しあう格好になる事態が挙げられる。
【０００５】
ここで、一般に、セル端子への配線進入経路やアクセス方向は、実際に配線する前には結線区間を形成するセル端子同士の位置関係から仮定され、セルの配置向きは、この仮定配線に基づいて行われ、詳細配線は、セルの配置向きを確定した後で行われる。そして、詳細配線後に配線間ショートが残った場合は、その周辺の配線を消去して再配線処理を実行して代替経路を探し、配線間ショートを解決しようとするのが一般的である。
【特許文献１】特開平０１−２９２４７２号公報
【特許文献２】特開平０４−１６０６８４号公報
【特許文献３】特開平０９−３１９７８６号公報
【特許文献４】特開昭６０−０６２１３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、詳細配線後に配線間ショートが残った場合に、その周辺の配線を消去して再配線処理を実行して代替経路を探し、配線間ショートを解決するという従来の配線間ショート解消方法では、セル端子付近の配線の占有面積を削減することができず、配線間ショートを解消するためには、標準ビアを使用せざるを得ず、冗長ビア配線を実現することが困難な場合があるという問題点があった。
【０００７】
本発明は、かかる点に鑑み、配線占有領域を削減し、冗長ビア配線ルール違反箇所を無くし又は削減することができるようにした半導体集積回路のレイアウト設計方法およびレイアウト設計プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の半導体集積回路のレイアウト設計方法は、概略配線工程と詳細配線工程とを有するものであって、前記詳細配線工程後に、セルの向きを変更して冗長ビア配線ルール違反箇所を解消するための配線修正工程を有するものである。
【０００９】
本発明の半導体集積回路のレイアウト設計プログラムは、概略配線工程と詳細配線工程とをコンピュータに実行させるプログラムを含むものであって、前記詳細配線工程後に、セルの向きを変更して冗長ビア配線ルール違反箇所を解消するための配線修正工程をコンピュータに実行させるプログラムを含むものである。
【発明の効果】
【００１０】
本発明の半導体集積回路のレイアウト設計方法によれば、詳細配線工程で冗長ビア配線ルール違反が発生しても、セルの向きを変更して冗長ビア配線ルール違反箇所を解消するための配線修正工程を有するので、配線占有領域を削減し、冗長ビア配線ルール違反箇所を無くし又は削減することができる。
【００１１】
本発明の半導体集積回路のレイアウト設計プログラムによれば、詳細配線工程で冗長ビア配線ルール違反が発生しても、セルの向きを変更して冗長ビア配線ルール違反箇所を解消するための配線修正工程をコンピュータに実行させるプログラムを含むので、配線占有領域を削減し、冗長ビア配線ルール違反箇所を無くし又は削減することができる。
【発明を実施するための最良の形態】
【００１２】
図１は本発明の半導体集積回路のレイアウト設計方法の一実施形態を実施する半導体集積回路のレイアウト設計装置の一部分の概略的構成図、図２は本発明の半導体集積回路のレイアウト設計方法の一実施形態を示すフローチャート、図３〜図２０は本発明の半導体集積回路のレイアウト設計方法の一実施形態の具体例を説明するためのレイアウト図である。
【００１３】
本発明の半導体集積回路のレイアウト設計方法の一実施形態を実施する半導体集積回路のレイアウト設計装置は、図１に示すように、詳細配線手段１と、冗長ビア配線ルール違反箇所抽出手段２と、冗長ビア配線ルール違反箇所包含領域定義手段３と、配線修正未試行領域有無判定手段４と、冗長ビア配線ルール違反箇所包含領域選択手段５と、配線修正対象領域定義手段６と、接続点・交点抽出手段７と、交点抽出手段８と、第１の直線距離和計算手段９と、セル・フリップ手段１０と、第２の直線距離和計算手段１１と、直線距離和比較手段１２と、セル向き変更手段１３と、配線破棄手段１４と、経路再探索手段１５と、経路更新手段１６を有する。
【００１４】
本発明の半導体集積回路のレイアウト設計方法の一実施形態は、スタンダードセル方式によるものであり、図２に示す第１工程〜第１６工程を含むものである。以下、まず、本発明の半導体集積回路のレイアウト設計方法の一実施形態について、工程ごとに説明する。
【００１５】
［第１工程］
本発明の半導体集積回路のレイアウト設計方法の一実施形態においては、セル配置と、信号配線の大まかな経路を決める概略配線とが実行されたレイアウト設計対象の半導体集積回路について、まず、詳細配線手段１により、信号配線の経路パタンを決める詳細配線を行う。
【００１６】
詳細配線手段１は、原則として冗長ビアを使用する冗長ビア配線ルール下で詳細配線を行うが、冗長ビアを使用することにより配線間ショートが発生する場合には、例外として標準ビアを使用することにより、配線間ショートを無くすように詳細配線を行う。
【００１７】
たとえば、図３は冗長ビア配線ルール下で詳細配線を実行した場合の配線結果の一例の一部分を示しており、Ｃ１は着目セルのセル枠、２０−１、２０−２、２０−３、２１は第１配線層に設けられたセル端子、２２は第２配線層の配線、２３−１、２３−２、２３−３、２４、２５、２６は第３配線層の配線、２７〜３４は冗長ビアである。
【００１８】
本例では、冗長ビアとして、２個のカット（ビアホール）を縦方向（Ｙ軸方向）又は横方向（Ｘ軸方向）に並べたダブルカットビアが使用されている。２個のカットを縦方向に並べた冗長ビアは、第３配線層の配線と第２配線層の配線とを接続するためのものであり、２個のカットを横方向に並べた冗長ビアは、第２配線層の配線と第３配線層のセル端子とを接続するためのものである。
【００１９】
図４はセル枠Ｃ１、セル端子２０−１、２０−２、２０−３、２１と第３配線層の配線２３−１、２３−２、２３−３、２４、２５、２６のみを示しており、図５は図４に示すレイアウト図に第２配線層の配線２２と冗長ビア２７〜３１を追加した状態を示している。そして、図３は図５に示すレイアウト図に冗長ビア３２、３３、３４を追加した状態を示すものである。
【００２０】
本例では、配線２３−１はセル端子２０−１に接続され、配線２３−２はセル端子２０−２に接続され、配線２３−３はセル端子２０−３に接続されるものとされている。配線２４は配線２５に接続されるが、これら配線２４、２５はセル端子２０−１、２０−２、２０−３、２１のいずれにも接続されないものとされている。配線２６は、セル端子２０−１、２０−２、２０−３、２１のいずれにも接続されないものとされている。
【００２１】
ここで、冗長ビア配線ルールを例外なく適用すると、図３に示すように、配線２３−１は、冗長ビア２７、３２を介してセル端子２０−１に接続させることができるが、このようにすると、冗長ビア２７を介して配線２３−１、２３−２間にショートが発生してしまう。また、配線２３−２は、冗長ビア２８、３３を介してセル端子２０−２に接続させることができるが、このようにすると、冗長ビア２８を介して配線２３−１、２３−２間にショートが発生してしまう。
【００２２】
また、配線２３−３は、冗長ビア２９、３４を介してセル端子２０−３に接続させることができ、このようにすると、他の配線とのショートは発生しない。また、配線２４は、冗長ビア３０、配線２２および冗長ビア３１を介して配線２５に接続させることができるが、このようにすると、冗長ビア３０を介して配線２４、２３−２間にショートが発生してしまう。
【００２３】
そこで、このような場合には、詳細配線手段１は、冗長ビア配線ルールに違反して、冗長ビア２７、２８、３０の代わりに、図６に示すように、標準ビア３５、３６、３７を使用し、配線２３−１、２３−２間のショートおよび配線２４、２３−２間のショートを無くすように詳細配線を行う。
【００２４】
［第２工程］
第１工程の次に、冗長ビア配線ルール違反箇所抽出手段２により、デザイン・ルール・チェックを実施し、冗長ビア配線ルールに違反して標準ビアを使用した箇所を冗長ビア配線ルール違反箇所として抽出する。冗長ビア配線ルール違反箇所が無い場合には、第３工程以下は実施しない。
【００２５】
図６に示すような場合には、標準ビア３５、３６、３７を使用している箇所が、図７に示すように、冗長ビア配線ルール違反箇所Ｐ１、Ｐ２、Ｐ３として抽出される。図８はレイアウト領域全体を概略的に示しており、Ｃ１〜Ｃ１８はセル枠、Ｐ１〜Ｐ８は冗長ビア配線ルール違反箇所であり、Ｃ１は図７に示すセル枠、Ｐ１、Ｐ２、Ｐ３は図７に示す冗長ビア配線ルール違反箇所であるが、第２工程の冗長ビア配線ルール違反箇所の抽出は、レイアウト領域全体に対して行われる。
【００２６】
［第３工程］
第２工程の次に、冗長ビア配線ルール違反箇所包含領域定義手段３により、冗長ビア配線ルール違反箇所をグループ分けし、グループごとに、グループ内の冗長ビア配線ルール違反箇所を包含する矩形を冗長ビア配線ルール違反箇所包含領域と定義する。
【００２７】
冗長ビア配線ルール違反箇所包含領域定義手段３は、レイアウト領域に所定間隔の縦線および横線からなるメッシュを設定し、このメッシュの縦線および横線で区分される小領域をグループ分けの単位とし、冗長ビア配線ルール違反箇所のグループ分けを行う。なお、メッシュの縦線および横線で区分される小領域のサイズは、たとえば、平均的なセルの大きさを基準とし、その１倍程度が適当であるが、配置されているセルの大きさの偏りなどを反映して不均一としても良い。
【００２８】
冗長ビア配線ルール違反箇所が図８に示すような場合には、図９に示すように、冗長ビア配線ルール違反箇所Ｐ１、Ｐ２、Ｐ３を一グループとし、冗長ビア配線ルール違反箇所Ｐ１、Ｐ２、Ｐ３を包含する矩形を冗長ビア配線ルール違反箇所包含領域Ｒ１と定義する。また、冗長ビア配線ルール違反箇所Ｐ４、Ｐ５を一グループとし、冗長ビア配線ルール違反箇所Ｐ４、Ｐ５を包含する矩形を冗長ビア配線ルール違反箇所包含領域Ｒ２と定義する。
【００２９】
また、冗長ビア配線ルール違反箇所Ｐ６、Ｐ７を一グループとし、冗長ビア配線ルール違反箇所Ｐ６、Ｐ７を包含する矩形を冗長ビア配線ルール違反箇所包含領域Ｒ３と定義する。また、冗長ビア配線ルール違反箇所Ｐ８を一グループとし、冗長ビア配線ルール違反箇所Ｐ８を包含する矩形を冗長ビア配線ルール違反箇所包含領域Ｒ４と定義する。図１０はセル枠Ｃ１および冗長ビア配線ルール違反箇所包含領域Ｒ１の部分の拡大図である。
【００３０】
［第４工程］
第３工程の次に、配線修正未試行領域有無判定手段４により、配線修正未試行の冗長ビア配線ルール違反箇所包含領域の有無を判定し、配線修正未試行の冗長ビア配線ルール違反箇所包含領域が無い場合には、本発明の半導体集積回路のレイアウト設計方法の一実施形態による処理を終了する。
【００３１】
［第５工程］
第４工程において、配線修正未試行の冗長ビア配線ルール違反箇所包含領域があると判定した場合には、冗長ビア配線ルール違反箇所包含領域選択手段５により、配線修正未試行の冗長ビア配線ルール違反箇所包含領域の一つを選択する。
【００３２】
［第６工程］
第５工程の次に、配線修正対象領域定義手段６により、選択した冗長ビア配線ルール違反箇所包含領域と重なりがあるセル枠の一つを選択し、選択した冗長ビア配線ルール違反箇所包含領域と、選択したセル枠とを包含する領域を配線修正対象領域と定義する。
【００３３】
第６工程前に図９に示す状態となっている場合には、図１１に示すように、たとえば、冗長ビア配線ルール違反箇所包含領域Ｒ１とセル枠Ｃ１とを包含する領域を配線修正対象領域Ａ１と定義する。図１２は配線修正対象領域Ａ１の部分の拡大図である。なお、配線修正対象領域Ａ１のサイズは、冗長ビア違反箇所包含領域Ｒ１とセル枠Ｃ１とを包含する最小サイズの領域にマージンを見込んだサイズとする。
【００３４】
［第７工程］
第６工程の次に、接続点・交点抽出手段７により、配線修正対象領域内のセル端子上の接続点Ｔｉと、接続点Ｔｉと接続すべき配線の配線修正対象領域の境界との交点Ｓｉを抽出して記憶手段に記憶する。
【００３５】
第７工程前に図１２に示すようになっている場合には、図１３に示すように、セル端子２０−１上の接続点Ｔ１、セル端子２０−２上の接続点Ｔ２、セル端子２０−３上の接続点Ｔ３と、配線２３−１と配線修正対象領域Ａ１の境界との交点Ｓ１、配線２３−２と配線修正対象領域Ａ１の境界との交点Ｓ２、配線２３−３と配線修正対象領域Ａ１の境界との交点Ｓ３を抽出して記憶手段に記憶する。
【００３６】
［第８工程］
第７工程の次に、交点抽出手段８により、配線修正対象領域内のセル端子と接続しない配線との交点Ｐｉと、この配線修正対象領域内のセル端子と接続しない配線と配線修正対象領域の境界との交点Ｑｉを抽出して記憶手段に記憶する。
【００３７】
第８工程前に図１３に示すようになっている場合には、図１４に示すように、配線２４と配線修正対象領域Ａ１の境界との交点Ｐ１と、配線２５と配線修正対象領域Ａ１の境界との交点Ｑ１とを抽出して記憶手段に記憶する。
【００３８】
［第９工程］
第８工程の次に、第１の直線距離和計算手段９により、接続点Ｔｉと交点Ｓｉとの直線距離和Σ（ＳｉＴｉ間の直線距離）を第１の直線距離和Ｌorgとして計算する。第９工程前に図１４に示すようになっている場合には、図１５に示すように、直線距離和Ｌorg＝Ｌorg１（Ｓ１Ｔ１間の直線距離）＋Ｌorg２（Ｓ２Ｔ２間の直線距離）＋Ｌorg３（Ｓ３Ｔ３間の直線距離）となる。
【００３９】
［第１０工程］
第９工程の次に、セル・フリップ手段１０により、配線修正対象領域内のセルをフリップ、即ち、左右反転又は上下反転する。
【００４０】
［第１１工程］
第１０工程の次に、第２の直線距離和算出手段１１により、接続点Ｔｉと交点Ｓｉとの直線距離和Σ（ＳｉＴｉ間の直線距離）を第２の直線距離和Ｌflipとして計算する。
【００４１】
図１６はセル枠Ｃ１内のセルを左右反転した場合の接続点Ｔ１、Ｔ２、Ｔ３および交点Ｓ１、Ｓ２、Ｓ３、Ｐ１、Ｑ１を示しているが、この場合には、直線距離和Ｌflip＝Ｌflip１（Ｓ１Ｔ１間の直線距離）＋Ｌflip２（Ｓ２Ｔ２間の直線距離）＋Ｌflip３（Ｓ３Ｔ３間の直線距離）となる。
【００４２】
［第１２工程］
第１１工程の次に、直線距離和比較判定手段１２により、第１の直線距離和Ｌorgと第２の直線距離和Ｌflipとを比較し、第２の直線距離和Ｌflip＜第１の直線距離和Ｌorgであるか否かを判定する。ここで、第２の直線距離和Ｌflip＜第１の直線距離和Ｌorgでないと判定した場合には、後述する第１４工程を実行する。
【００４３】
［第１３工程］
第１２工程において、第２の直線距離和Ｌflip＜第１の直線距離和Ｌorgであると判定した場合には、セル向き変更手段１３により、第１０工程でフリップした状態にセルの向きを変更する。第１２工程において、第２の直線距離和Ｌflip≧第１の直線距離和Ｌorgであると判定した場合は、第１３工程をとばして、セル向きを変更せずに、第１４工程へ進む。
【００４４】
［第１４工程］
第１３工程の次に、又は、第１２工程において、第２の直線距離和Ｌflip≧第１の直線距離和Ｌorgであると判定した場合には、第１４工程に進み、配線破棄手段１４により、配線修正対象領域内の配線を破棄する。
【００４５】
図１７は、第８工程の実行後、図１４に示す状態となり、第１２工程で第２の直線距離和Ｌflip＜第１の直線距離和Ｌorgであると判定された場合において、セル枠Ｃ１内のセルを左右反転した状態にセルの向きを変更し、配線修正対象領域Ａ１内の配線を破棄した状態を示している。
【００４６】
［第１５工程］
第１４工程の次に、経路再探索手段１５により、接続点Ｔｉと交点Ｓｉとの間の経路と交点Ｐｉと交点Ｑｉとの間の経路を順に再探索する。
【００４７】
図１９は、接続点Ｔ１と交点Ｓ１との間の経路、接続点Ｔ２と交点Ｓ２との間の経路、および、接続点Ｔ３と交点Ｓ３との間の経路を再探索した結果を示しており、図１８は図１７に示すレイアウト図に冗長ビア４０、４１、４２を追加した状態、図１９は図１８に示すレイアウト図に冗長ビア４３、４４、４５を追加した状態を示している。
【００４８】
ここで、配線２３−１は、冗長ビア４０、４３を介してセル端子２０−１に接続されており、図３に示す冗長ビア２７による配線２３−１、２３−２間のショートが解消され、図６に示すような標準ビア３５も必要としていない。
【００４９】
また、配線２３−２は、冗長ビア４１、４４を介してセル端子２０−２に接続されており、図３に示す冗長ビア２８による配線２３−１、２３−２間のショートが解消され、図６に示すような標準ビア３６も必要としていない。
【００５０】
また、配線２３−３は、冗長ビア４２、４５を介してセル端子２０−３に接続されており、他の信号配線とのショートは発生していない。そして、この例の場合には、交点Ｐ１と交点Ｑ１との間の経路のために冗長ビア配線を設ける領域４６が創出されている。
【００５１】
図２０は、交点Ｐ１と交点Ｑ１との間の経路を再探索し、図１９に示すレイアウト図に冗長ビア４７、４８および第２配線層の配線４９を追加した状態を示している。この例の場合、配線２４は、冗長ビア４７、配線４９および冗長ビア４８を介して配線２５に接続されており、図３に示す信号配線２４、２３−２間のショートが解消され、図６に示すような標準ビア３７も必要としていない。
【００５２】
なお、経路の再探索の結果、冗長ビア配線ルール違反を完全に解消することができず、標準ビアを使用せざるを得ない場合も起こるが、第１５工程においては、これを容認するものとする。
【００５３】
［第１６工程］
第１５工程の次に、経路更新手段１６により、経路を更新する。図６に示す具体例の場合、図２０に示す経路が新たな経路として更新される。以下、配線修正未試行の冗長ビア配線ルール違反箇所包含領域がなくなるまで、第５工程〜第１６工程を繰り返す。
【００５４】
以上のように、本発明の半導体集積回路のレイアウト設計方法の一実施形態では、セル配置と概略配線とが実行されたレイアウト設計対象の半導体集積回路について、まず、信号配線の経路パタンを決める詳細配線が行われる（第１工程）。次に、デザイン・ルール・チェックが実施され、冗長ビア配線ルールに違反して標準ビアを使用した箇所が冗長ビア配線ルール違反箇所として抽出される（第２工程）。
【００５５】
次に、冗長ビア配線ルール違反箇所がグループ分けされ、グループごとに、グループ内の冗長ビア配線ルール違反箇所を包含する矩形が冗長ビア配線ルール違反箇所包含領域と定義される（第３工程）。次に、配線修正未試行の冗長ビア配線ルール違反箇所包含領域の有無が判定され（第４工程）、配線修正未試行の冗長ビア配線ルール違反箇所包含領域が無い場合には、本発明の半導体集積回路のレイアウト設計方法の一実施形態による処理は終了とされる。
【００５６】
第４工程において、配線修正未試行の冗長ビア配線ルール違反箇所包含領域があると判定した場合には、配線修正未試行の冗長ビア配線ルール違反箇所包含領域の一つが選択される（第５工程）。次に、選択された冗長ビア配線ルール違反箇所包含領域と重なりがあるセル枠の一つが選択され、選択された冗長ビア配線ルール違反箇所包含領域と、選択されたセル枠とを包含する領域が配線修正対象領域と定義される（第６工程）。
【００５７】
次に、接続点Ｔｉと、接続点Ｔｉと接続すべき配線の配線修正対象領域の境界との交点Ｓｉが抽出されて記憶される（第７工程）。次に、配線修正対象領域内のセル端子と接続しない配線との交点Ｐｉと、この配線修正対象領域内のセル端子と接続しない配線と配線修正対象領域の境界との交点Ｑｉが抽出されて記憶される（第８工程）。次に、接続点Ｔｉと交点Ｓｉとの直線距離和が第１の直線距離和Ｌorgとして計算される（第９工程）。
【００５８】
次に、配線修正対象領域内のセルがフリップされる（第１０工程）。次に、接続点Ｔｉと交点Ｓｉとの直線距離和が第２の直線距離和Ｌflipとして計算される（第１１工程）。次に、第１の直線距離和Ｌorgと第２の直線距離和Ｌflipとが比較され、Ｌflip＜Ｌorgであるか否かが判定される（第１２工程）。Ｌflip＜Ｌorgでない場合には、後述する第１４工程が実行される。
【００５９】
第１２工程において、Ｌflip＜Ｌorgの場合には、フリップした状態にセルの向きが変更される（第１３工程）。次に、セルの向きを変更したかどうかによらず、配線修正対象領域内の配線が破棄される（第１４工程）。次に、接続点Ｔｉと交点Ｓｉとの間および交点Ｐｉと交点Ｑｉとの間の経路の再探索が行われる（第１５工程）。次に、経路が更新される（第１６工程）。以下、配線修正未試行の冗長ビア配線ルール違反箇所包含領域がなくなるまで、第５工程〜第１６工程が繰り返される。
【００６０】
図２１は図１に示す半導体集積回路のレイアウト設計装置をなすコンピュータの概念図である。図２１中、５１はＣＰＵ（central processing unit）、５２はＲＡＭ（random access memory）からなる主メモリ、５３はキーボードやマウスなどの入力装置、５４はディスプレイやプリンタなどの出力装置、５５は通信装置、５６はハードディスク装置などの補助メモリである。補助メモリ５６には、本発明の半導体集積回路のレイアウト設計プログラムの一実施形態５７などが格納される。
【００６１】
本発明の半導体集積回路のレイアウト設計プログラムの一実施形態５７は、詳細配線プログラム５８、冗長ビア配線ルール違反箇所抽出プログラム５９、冗長ビア配線ルール違反箇所包含領域定義プログラム６０、配線修正未試行領域有無判定プログラム６１、冗長ビア配線ルール違反箇所包含領域選択プログラム６２、配線修正対象領域定義プログラム６３、接続点・交点抽出プログラム６４、交点抽出プログラム６５、第１の直線距離和計算プログラム６６、セル・フリップ・プログラム６７、第２の直線距離和計算プログラム６８、直線距離和比較プログラム６９、セル向き変更プログラム７０、配線破棄プログラム７１、経路再探索プログラム７２、経路更新プログラム７３を含むものである。
【００６２】
詳細配線プログラム５８は、ＣＰＵ５１を詳細配線手段１として機能させ、第１工程を実行させるものである。冗長ビア配線ルール違反箇所抽出プログラム５９は、ＣＰＵ５１を冗長ビア配線ルール違反箇所抽出手段２として機能させ、第２工程を実行させるものである。冗長ビア配線ルール違反箇所包含領域定義プログラム６０は、ＣＰＵ５１を冗長ビア配線ルール違反箇所包含領域定義手段３として機能させ、第３工程を実行させるものである。
【００６３】
配線修正未試行領域有無判定プログラム６１は、ＣＰＵ５１を配線修正未試行領域有無判定手段４として機能させ、第４工程を実行させるものである。冗長ビア配線ルール違反箇所包含領域選択プログラム６２は、ＣＰＵ５１を冗長ビア配線ルール違反箇所包含領域選択手段５として機能させ、第５工程を実行させるものである。配線修正対象領域定義プログラム６３は、ＣＰＵ５１を配線修正対象領域定義手段６として機能させ、第６工程を実行させるものである。
【００６４】
接続点・交点抽出プログラム６４は、ＣＰＵ５１を接続点・交点抽出手段７として機能させ、第７工程を実行させるものである。交点抽出プログラム６５は、ＣＰＵ５１を交点抽出手段８として機能させ、第８工程を実行させるものである。第１の直線距離和計算プログラム６６は、ＣＰＵ５１を第１の直線距離和計算手段９として機能させ、第９工程を実行させるものである。
【００６５】
セル・フリップ・プログラム６７は、ＣＰＵ５１をセル・フリップ手段１０として機能させ、第１０工程を実行させるものである。第２の直線距離和計算プログラム６８は、ＣＰＵ５１を第２の直線距離和計算手段１１として機能させ、第１１工程を実行させるものである。直線距離和比較プログラム６９は、ＣＰＵ５１を直線距離和比較手段１２として機能させ、第１２工程を実行させるものである。
【００６６】
セル向き変更プログラム７０は、ＣＰＵ５１をセル向き変更手段１３として機能させ、第１３工程を実行させるものである。配線破棄プログラム７１は、ＣＰＵ５１を配線破棄手段１４として機能させ、第１４工程を実行させるものである。経路再探索プログラム７２は、ＣＰＵ５１を経路再探索手段１５として機能させ、第１５工程を実行させるものである。経路更新プログラム７３は、ＣＰＵ５１を経路更新手段１６として機能させ、第１６工程を実行させるものである。
【００６７】
本発明の半導体集積回路のレイアウト設計方法の一実施形態によれば、詳細配線（第１工程）で冗長ビア配線ルール違反が発生したとしても、セルの向きを変更して冗長ビア配線ルール違反箇所を解消する配線修正を行うための準備工程（第２工程〜第１２工程）と、セルの向きを変更して配線修正を行う工程と（第１３〜第１５工程）、経路更新を行う工程（第１６工程）が用意されているので、配線占有領域を削減し、冗長ビア配線ルール違反箇所を無くし又は削減することができる。
【００６８】
また、本発明の半導体集積回路のレイアウト設計プログラムの一実施形態によれば、本発明の半導体集積回路のレイアウト設計方法の一実施形態をコンピュータに実行させることができる。
【図面の簡単な説明】
【００６９】
【図１】本発明の半導体集積回路のレイアウト設計方法の一実施形態を実施する半導体集積回路のレイアウト設計装置の一部分の概略的構成図である。
【図２】本発明の半導体集積回路のレイアウト設計方法の一実施形態を示すフローチャートである。
【図３】本発明の半導体集積回路のレイアウト設計方法の一実施形態の具体例を説明するためのレイアウト図である。
【図４】本発明の半導体集積回路のレイアウト設計方法の一実施形態の具体例を説明するためのレイアウト図である。
【図５】本発明の半導体集積回路のレイアウト設計方法の一実施形態の具体例を説明するためのレイアウト図である。
【図６】本発明の半導体集積回路のレイアウト設計方法の一実施形態の具体例を説明するためのレイアウト図である。
【図７】本発明の半導体集積回路のレイアウト設計方法の一実施形態の具体例を説明するためのレイアウト図である。
【図８】本発明の半導体集積回路のレイアウト設計方法の一実施形態の具体例を説明するためのレイアウト図である。
【図９】本発明の半導体集積回路のレイアウト設計方法の一実施形態の具体例を説明するためのレイアウト図である。
【図１０】本発明の半導体集積回路のレイアウト設計方法の一実施形態の具体例を説明するためのレイアウト図である。
【図１１】本発明の半導体集積回路のレイアウト設計方法の一実施形態の具体例を説明するためのレイアウト図である。
【図１２】本発明の半導体集積回路のレイアウト設計方法の一実施形態の具体例を説明するためのレイアウト図である。
【図１３】本発明の半導体集積回路のレイアウト設計方法の一実施形態の具体例を説明するためのレイアウト図である。
【図１４】本発明の半導体集積回路のレイアウト設計方法の一実施形態の具体例を説明するためのレイアウト図である。
【図１５】本発明の半導体集積回路のレイアウト設計方法の一実施形態の具体例を説明するためのレイアウト図である。
【図１６】本発明の半導体集積回路のレイアウト設計方法の一実施形態の具体例を説明するためのレイアウト図である。
【図１７】本発明の半導体集積回路のレイアウト設計方法の一実施形態の具体例を説明するためのレイアウト図である。
【図１８】本発明の半導体集積回路のレイアウト設計方法の一実施形態の具体例を説明するためのレイアウト図である。
【図１９】本発明の半導体集積回路のレイアウト設計方法の一実施形態の具体例を説明するためのレイアウト図である。
【図２０】本発明の半導体集積回路のレイアウト設計方法の一実施形態の具体例を説明するためのレイアウト図である。
【図２１】図１に示す半導体集積回路のレイアウト設計装置をなすコンピュータの概念図である。
【符号の説明】
【００７０】
１…詳細配線手段
２…冗長ビア配線ルール違反箇所抽出手段
３…冗長ビア配線ルール違反箇所包含領域定義手段
４…配線修正未試行領域有無判定手段
５…冗長ビア配線ルール違反箇所包含領域選択手段
６…配線修正対象領域定義手段
７…接続点・交点抽出手段
８…交点抽出手段
９…第１の直線距離和計算手段
１０…セル・フリップ手段
１１…第２の直線距離和計算手段
１２…直線距離和比較手段
１３…セル向き変更手段
１４…配線破棄手段
１５…経路再探索手段
１６…経路更新手段
Ｃ１〜Ｃ１８…セル枠
２０−１〜２０−３、２１…第１配線層に設けられたセル端子
２２…第２配線層の配線
２３−１〜２３−３、２４〜２６…第３配線層の配線
２７〜３４…冗長ビア
３５〜３７…標準ビア
Ｐ１〜Ｐ８…冗長ビア配線ルール違反箇所
４０〜４５…冗長ビア
５１…ＣＰＵ
５２…主メモリ
５３…入力装置
５４…出力装置
５５…通信装置
５６…補助メモリ
５７…本発明の半導体集積回路のレイアウト設計プログラムの一実施形態
５８…詳細配線プログラム
５９…冗長ビア配線ルール違反箇所抽出プログラム
６０…冗長ビア配線ルール違反箇所包含領域定義プログラム
６１…配線修正未試行領域有無判定プログラム
６２…冗長ビア配線ルール違反箇所包含領域選択プログラム
６３…配線修正対象領域定義プログラム
６４…接続点・交点抽出プログラム
６５…交点抽出プログラム
６６…第１の直線距離和計算プログラム
６７…セル・フリップ・プログラム
６８…第２の直線距離和計算プログラム
６９…直線距離和比較プログラム
７０…セル向き変更プログラム
７１…配線破棄プログラム
７２…経路再探索プログラム
７３…経路更新プログラム
【図１】
2008311454.tif 000003
【図２】
2008311454.tif 000004
【図３】
2008311454.tif 000005
【図４】
2008311454.tif 000006
【図５】
2008311454.tif 000007
【図６】
2008311454.tif 000008
【図７】
2008311454.tif 000009
【図８】
2008311454.tif 000010
【図９】
2008311454.tif 000011
【図１０】
2008311454.tif 000012
【図１１】
2008311454.tif 000013
【図１２】
2008311454.tif 000014
【図１３】
2008311454.tif 000015
【図１４】
2008311454.tif 000016
【図１５】
2008311454.tif 000017
【図１６】
2008311454.tif 000018
【図１７】
2008311454.tif 000019
【図１８】
2008311454.tif 000020
【図１９】
2008311454.tif 000021
【図２０】
2008311454.tif 000022
【図２１】
2008311454.tif 000023