(57)【要約】【課題】チップサイズを縮小可能な半導体集積回路のレイアウト設計方法、プログラム、及びレイアウト設計装置を提供すること。【解決手段】チップ内にＹ方向メタルデータを持つプリミティブセルが存在するか判定する工程（ステップＢ１）と、プリミティブセルが上下に隣接しているか判定する工程（ステップＢ３）と、各プリミティブセル内のＹ方向メタルデータを有する層が同じか判定する工程（ステップＢ４）と、各プリミティブセルのうち移動可能なスペースがあるプリミティブセルがあるか判定する工程（ステップＢ５）と、各判定を満たす場合に、各プリミティブセルの種類が同じか否かを判定する工程（ステップＢ６）と、各プリミティブセルの種類に応じてプリミティブセルのＸ座標の配置位置調整を行う工程（ステップＢ７、８）と、プリミティブセルの位置を固定する工程（ステップＢ９）と、を含む。【選択図】図３
2011107979.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを使用して半導体集積回路のレイアウト設計を行う半導体集積回路のレイアウト設計方法において、
チップ内にＹ軸方向に延在するＹ方向メタルデータを持つプリミティブセルが存在するか判定する工程と、
前記プリミティブセルが上下に隣接しているか判定する工程と、
各前記プリミティブセル内の前記Ｙ方向メタルデータを有する層が同じか判定する工程と、
各前記プリミティブセルのうち移動可能なスペースがあり、かつ、配置位置が固定されていないプリミティブセルがあるか判定する工程と、
前記各判定を満たす場合に、各前記プリミティブセルの種類が同じか否かを判定する工程と、
各前記プリミティブセルの種類に応じて前記プリミティブセルのＸ座標の配置位置調整を行う工程と、
前記配置位置調整を行った前記プリミティブセルの位置を固定する工程と、
を含むことを特徴とする半導体集積回路のレイアウト設計方法。
【請求項２】
前記プリミティブセルが上下に隣接しているか判定する工程では、上下の前記プリミティブセルで、上側のプリミティブセルのＸ座標が、下側のプリミティブセルの「Ｘ座標＋プリミティブセル幅」の範囲内に、または、前記下側のプリミティブセルのＸ座標が、前記上側のプリミティブセルの「Ｘ座標＋プリミティブセル幅」の範囲内に存在するかをチェックすることにより、前記プリミティブセルが上下に隣接しているかを判定することを特徴とする請求項１記載の半導体集積回路のレイアウト設計方法。
【請求項３】
前記配置位置調整を行う工程では、上下の前記プリミティブセルの種類が同じである場合に上下の前記プリミティブセルのＸ座標を同じにし、上下の前記プリミティブセルの種類が異なる場合に上下の前記プリミティブセルのＸ座標を所望の値に決定することを特徴とする請求項１又は２記載の半導体集積回路のレイアウト設計方法。
【請求項４】
上下に隣接する前記プリミティブセルの種類が異なる場合に上下の前記プリミティブセルのＸ座標を所望の値に決定する際、
始点として前記上側のプリミティブセル内の左端のＹ方向メタルデータの位置と、前記下側のプリミティブセル内の右端のＹ方向メタルデータの位置と、を合わせる位置を決め、終点として前記上側のプリミティブセル内の右端のＹ方向メタルデータの位置と、前記下側のプリミティブセル内の左端のＹ方向メタルデータの位置と、を合わせる位置を決める工程と、
前記始点から前記終点まで前記下側のプリミティブセルを配線グリッド数分移動する工程と、
前記上下に隣接する前記プリミティブセル内の同一層においてＹ方向メタルデータのＸ座標の一致個数をカウントする工程と、
カウントした前記一致個数と記憶した一致個数とを比較する工程と、
カウントした前記一致個数が記憶した一致個数より大きい場合に記憶した一致個数とＸ座標をクリアする工程と、
カウントした前記一致個数が記憶した一致個数と等しい場合、又は、記憶した一致個数とＸ座標をクリアした後に、前記一致個数、及び前記下側のプリミティブセルのＸ座標を記憶する工程と、
前記プリミティブセル内のＹ方向メタルデータを有する層の数が２以上である場合、Ｙ方向メタルデータの一致個数が大きい方の層に関して記憶した一致個数、及び前記下側のプリミティブセルのＸ座標を選択する工程と、
記憶した一致個数と前記下側のプリミティブセルのＸ座標は１つかを判定する工程と、
記憶した一致個数と前記下側のプリミティブセルのＸ座標は１つである場合に、記憶したＸ座標を使用する工程と、
記憶した一致個数と前記下側のプリミティブセルのＸ座標が複数ある場合に、上下の前記プリミティブセルのＸ座標の差が最小となる座標を選択する工程と、
を含むことを特徴とする請求項３記載の半導体集積回路のレイアウト設計方法。
【請求項５】
請求項１乃至４のいずれか一に記載の半導体集積回路のレイアウト設計方法の各工程をコンピュータに実行させることを特徴とするプログラム。
【請求項６】
半導体集積回路のレイアウト設計を行う半導体集積回路のレイアウト設計装置において、
チップ内にＹ軸方向に延在するＹ方向メタルデータを持つプリミティブセルが存在するか判定する手段と、
前記プリミティブセルが上下に隣接しているか判定する手段と、
各前記プリミティブセル内の前記Ｙ方向メタルデータを有する層が同じか判定する手段と、
各前記プリミティブセルのうち移動可能なスペースがあり、かつ、配置位置が固定されていないプリミティブセルがあるか判定する手段と、
前記各判定を満たす場合に、各前記プリミティブセルの種類が同じか否かを判定する手段と、
各前記プリミティブセルの種類に応じて前記プリミティブセルのＸ座標の配置位置調整を行う手段と、
前記配置位置調整を行った前記プリミティブセルの位置を固定する手段と、
を備えることを特徴とする半導体集積回路のレイアウト設計装置。
【請求項７】
前記プリミティブセルが上下に隣接しているか判定する手段は、上下の前記プリミティブセルで、上側のプリミティブセルのＸ座標が、下側のプリミティブセルの「Ｘ座標＋プリミティブセル幅」の範囲内に、または、前記下側のプリミティブセルのＸ座標が、前記上側のプリミティブセルの「Ｘ座標＋プリミティブセル幅」の範囲内に存在するかをチェックすることにより、前記プリミティブセルが上下に隣接しているかを判定することを特徴とする請求項６記載の半導体集積回路のレイアウト設計装置。
【請求項８】
前記配置位置調整を行う手段は、上下の前記プリミティブセルの種類が同じである場合に上下の前記プリミティブセルのＸ座標を同じにし、上下の前記プリミティブセルの種類が異なる場合に上下の前記プリミティブセルのＸ座標を所望の値に決定することを特徴とする請求項６又は７記載の半導体集積回路のレイアウト設計装置。
【請求項９】
前記配置位置調整を行う手段は、上下に隣接する前記プリミティブセルの種類が異なる場合に上下の前記プリミティブセルのＸ座標を所望の値に決定する手段として、
始点として前記上側のプリミティブセル内の左端のＹ方向メタルデータの位置と、前記下側のプリミティブセル内の右端のＹ方向メタルデータの位置と、を合わせる位置を決め、終点として前記上側のプリミティブセル内の右端のＹ方向メタルデータの位置と、前記下側のプリミティブセル内の左端のＹ方向メタルデータの位置と、を合わせる位置を決める手段と、
前記始点から前記終点まで前記下側のプリミティブセルを配線グリッド数分移動する手段と、
前記上下に隣接する前記プリミティブセル内の同一層においてＹ方向メタルデータのＸ座標の一致個数をカウントする手段と、
カウントした前記一致個数と記憶した一致個数とを比較する手段と、
カウントした前記一致個数が記憶した一致個数より大きい場合に記憶した一致個数とＸ座標をクリアする手段と、
カウントした前記一致個数が記憶した一致個数と等しい場合、又は、記憶した一致個数とＸ座標をクリアした後に、前記一致個数、及び前記下側のプリミティブセルのＸ座標を記憶する手段と、
前記プリミティブセル内のＹ方向メタルデータを有する層の数が２以上である場合、Ｙ方向メタルデータの一致個数が大きい方の層に関して記憶した一致個数、及び前記下側のプリミティブセルのＸ座標を選択する手段と、
記憶した一致個数と前記下側のプリミティブセルのＸ座標は１つかを判定する手段と、
記憶した一致個数と前記下側のプリミティブセルのＸ座標は１つである場合に、記憶したＸ座標を使用する手段と、
記憶した一致個数と前記下側のプリミティブセルのＸ座標が複数ある場合に、上下の前記プリミティブセルのＸ座標の差が最小となる座標を選択する手段と、
を備えることを特徴とする請求項８記載の半導体集積回路のレイアウト設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のレイアウト設計方法、プログラム、及びレイアウト設計装置に関し、特に、プリミティブセルを用いてレイアウト設計を行う半導体集積回路のレイアウト設計方法、プログラム、及びレイアウト設計装置に関する。
【背景技術】
【０００２】
従来、半導体集積回路のレイアウト設計方法において、予めトランジスタ素子の形成を済ませたマスタースライス上にセルを任意に配置し配線を行うマスタースライス方式の半導体集積回路のレイアウト設計方法がある。例えば、特許文献１（従来例）では、マスタースライス方式において、配線長を短縮すると共に、多い配線でも未配線を防止し、配線作業の効率化を図ることを目的として、半導体集積回路でチップ設計時に、配線グリッドを通って論理機能セルのフィールドスルートラックを一直線に通過する配線によって端子間を接続したマスタースライス方式半導体集積回路装置が開示されている。
【０００３】
図１０を参照すると、従来例に係るマスタースライス方式半導体集積回路装置において、論理機能セル４上の端子４ａは、配線グリッド１５、２６及び１８を通る配線３１によって論理機能セル７上の端子７ａと接続されている。また、論理機能セル４上の端子４ｂは、配線グリッド１６、２５、１７、３０及び１５を順に通って論理機能セル６及び８のフィードスルートラック１２を一直線に通過する配線３２によって論理機能セル１０上の端子１０ａと接続されている。同様にして、論理機能セル５上の端子５ａは配線グリッド２１、２５、２０、２９及び１８を順に通って論理機能セル７と８のフィードスルートラック１２を一直線に通過する配線３４によって論理機能セル１０上の端子１０ｂと接続されている。加えて、論理機能セル４上の端子４ｃも、配線グリッド１９、２６、２３、３０及び１９を順に通って論理機能セル７及び９のフィードスルートラック１２を一直線に通過する配線３３によって論理機能セル１０上の端子１０ｃと接続されている。また、論理機能セル６上の端子６ａも、配線グリッド１５、２７及び１９を順に通って論理機能セル８上の端子８ａと接続されている。ここに、各基本セル内３のフィードスルートラック１２の位置が各論理機能セル４〜１１で共通となっているので、各論理機能セル４〜１１のフィードスルートラック１２が一直線に並ぶ。このことにより、フィードスルートラック１２を通る配線が一直線となるので、使用する配線グリッドの数が低減されるとともに、配線長も短く未配線が起り難いマスタースライス方式の半導体集積回路装置が実現できるとされている。
【０００４】
なお、上記従来例では、フィードスルートラック１２の位置を基本セル３６の右端としたが、各論理機能セル４〜１１で共通であれば基本セル３６内のフィードスルートラック１２の位置は任意でよい。また、上記従来例では、基本セル３６の単位を３グリッド当てとし、その１グリッド分をフィードスルートラックとしたが、基本セルの単位をｎ（ｎ≧２、ｎは整数）グリッド分とし、その中の１グリッド分をフィードスルートラックとしても上記と同様の効果が得られるとされている。さらに、上記従来例では、全ての論理機能セル４〜１１においてフィードスルートラック１２の位置を共通としたが、必ずしも全ての論理機能セル４〜１１で共通である必要はなく、使用頻度の高い論理機能セルに対して共通にする等の例においても同様の効果が得られるとされている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平４−２１４６６７号公報（図１、段落００１３〜００１６）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記特許文献１の開示事項は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明によって与えられたものである。
【０００７】
ところで、半導体集積回路のレイアウト設計の分野において、チップサイズ縮小のためには、プリミティブセル（インバーター、ＮＡＮＤゲートなどの論理ゲートをＣＡＤ（Computer Assisted Drafting）ツールで扱えるようにしたもの）を最小サイズで設計する必要がある。ところが、プロセスの微細化に伴い、ロジックでもソフトエラーが問題となり、ソフトエラーを回避するための回路を搭載することにより、プリミティブセルの回路規模が増大するようになった。回路規模が増大したプリミティブセルをレイアウトする際に、使用する配線層が１メタルのみでは最小サイズでレイアウトを完結させることが難しくなり、２メタル以上の層のメタルも使用する必要がある。このようなプリミティブセルを使用してチップでのレイアウト設計を行う際に、プリミティブセル内の２メタル以上の層のメタルデータにより、チップ設計時に配線性が悪化する。この流れの中で、製品のコストダウンのため、チップ設計時にプリミティブセル内のメタルデータによる配線性の悪化を解消し、チップサイズを縮小することの要求が高まってきた。
【０００８】
しかしながら、上記従来例では、基本セル内のフィードスルーの位置を各論理機能セルで共通にすることにより、各論理セルのフィードスルートラックを一直線に並べることができるが、チップサイズを縮小できないという問題がある。その理由としては、配線が通過するか否かに関わらず、基本セル内の１グリッド分をフィードスルートラックとして必ず確保する必要があるため、基本セルのサイズを最小にすることができないためである。
【０００９】
本発明の主な課題は、チップサイズを縮小可能な半導体集積回路のレイアウト設計方法、プログラム、及びレイアウト設計装置を提供することである。
【課題を解決するための手段】
【００１０】
本発明の第１の視点においては、コンピュータを使用して半導体集積回路のレイアウト設計を行う半導体集積回路のレイアウト設計方法において、チップ内にＹ軸方向に延在するＹ方向メタルデータを持つプリミティブセルが存在するか判定する工程と、前記プリミティブセルが上下に隣接しているか判定する工程と、各前記プリミティブセル内の前記Ｙ方向メタルデータを有する層が同じか判定する工程と、各前記プリミティブセルのうち移動可能なスペースがあり、かつ、配置位置が固定されていないプリミティブセルがあるか判定する工程と、前記各判定を満たす場合に、各前記プリミティブセルの種類が同じか否かを判定する工程と、各前記プリミティブセルの種類に応じて前記プリミティブセルのＸ座標の配置位置調整を行う工程と、前記配置位置調整を行った前記プリミティブセルの位置を固定する工程と、を含むことを特徴とする。
【００１１】
本発明の前記半導体集積回路のレイアウト設計方法において、前記プリミティブセルが上下に隣接しているか判定する工程では、上下の前記プリミティブセルで、上側のプリミティブセルのＸ座標が、下側のプリミティブセルの「Ｘ座標＋プリミティブセル幅」の範囲内に、または、前記下側のプリミティブセルのＸ座標が、前記上側のプリミティブセルの「Ｘ座標＋プリミティブセル幅」の範囲内に存在するかをチェックすることにより、前記プリミティブセルが上下に隣接しているかを判定することが好ましい。
【００１２】
本発明の前記半導体集積回路のレイアウト設計方法において、前記配置位置調整を行う工程では、上下の前記プリミティブセルの種類が同じである場合に上下の前記プリミティブセルのＸ座標を同じにし、上下の前記プリミティブセルの種類が異なる場合に上下の前記プリミティブセルのＸ座標を所望の値に決定することが好ましい。
【００１３】
本発明の前記半導体集積回路のレイアウト設計方法において、上下に隣接する前記プリミティブセルの種類が異なる場合に上下の前記プリミティブセルのＸ座標を所望の値に決定する際、始点として前記上側のプリミティブセル内の左端のＹ方向メタルデータの位置と、前記下側のプリミティブセル内の右端のＹ方向メタルデータの位置と、を合わせる位置を決め、終点として前記上側のプリミティブセル内の右端のＹ方向メタルデータの位置と、前記下側のプリミティブセル内の左端のＹ方向メタルデータの位置と、を合わせる位置を決める工程と、前記始点から前記終点まで前記下側のプリミティブセルを配線グリッド数分移動する工程と、前記上下に隣接する前記プリミティブセル内の同一層においてＹ方向メタルデータのＸ座標の一致個数をカウントする工程と、カウントした前記一致個数と記憶した一致個数とを比較する工程と、カウントした前記一致個数が記憶した一致個数より大きい場合に記憶した一致個数とＸ座標をクリアする工程と、カウントした前記一致個数が記憶した一致個数と等しい場合、又は、記憶した一致個数とＸ座標をクリアした後に、前記一致個数、及び前記下側のプリミティブセルのＸ座標を記憶する工程と、前記プリミティブセル内のＹ方向メタルデータを有する層の数が２以上である場合、Ｙ方向メタルデータの一致個数が大きい方の層に関して記憶した一致個数、及び前記下側のプリミティブセルのＸ座標を選択する工程と、記憶した一致個数と前記下側のプリミティブセルのＸ座標は１つかを判定する工程と、記憶した一致個数と前記下側のプリミティブセルのＸ座標は１つである場合に、記憶したＸ座標を使用する工程と、記憶した一致個数と前記下側のプリミティブセルのＸ座標が複数ある場合に、上下の前記プリミティブセルのＸ座標の差が最小となる座標を選択する工程と、を含むことが好ましい。
【００１４】
本発明の第２の視点において、半導体集積回路のレイアウト設計をコンピュータに実行させるプログラムにおいて、前記半導体集積回路のレイアウト設計方法の各工程をコンピュータに実行させることを特徴とする。
【００１５】
本発明の第３の視点において、半導体集積回路のレイアウト設計を行う半導体集積回路のレイアウト設計装置において、チップ内にＹ軸方向に延在するＹ方向メタルデータを持つプリミティブセルが存在するか判定する手段と、前記プリミティブセルが上下に隣接しているか判定する手段と、各前記プリミティブセル内の前記Ｙ方向メタルデータを有する層が同じか判定する手段と、各前記プリミティブセルのうち移動可能なスペースがあり、かつ、配置位置が固定されていないプリミティブセルがあるか判定する手段と、前記各判定を満たす場合に、各前記プリミティブセルの種類が同じか否かを判定する手段と、各前記プリミティブセルの種類に応じて前記プリミティブセルのＸ座標の配置位置調整を行う手段と、前記配置位置調整を行った前記プリミティブセルの位置を固定する手段と、を備えることを特徴とする。
【００１６】
本発明の前記半導体集積回路のレイアウト設計装置において、前記プリミティブセルが上下に隣接しているか判定する手段は、上下の前記プリミティブセルで、上側のプリミティブセルのＸ座標が、下側のプリミティブセルの「Ｘ座標＋プリミティブセル幅」の範囲内に、または、前記下側のプリミティブセルのＸ座標が、前記上側のプリミティブセルの「Ｘ座標＋プリミティブセル幅」の範囲内に存在するかをチェックすることにより、前記プリミティブセルが上下に隣接しているかを判定することが好ましい。
【００１７】
本発明の前記半導体集積回路のレイアウト設計装置において、前記配置位置調整を行う手段は、上下の前記プリミティブセルの種類が同じである場合に上下の前記プリミティブセルのＸ座標を同じにし、上下の前記プリミティブセルの種類が異なる場合に上下の前記プリミティブセルのＸ座標を所望の値に決定することが好ましい。
【００１８】
本発明の前記半導体集積回路のレイアウト設計装置において、前記配置位置調整を行う手段は、上下に隣接する前記プリミティブセルの種類が異なる場合に上下の前記プリミティブセルのＸ座標を所望の値に決定する手段として、始点として前記上側のプリミティブセル内の左端のＹ方向メタルデータの位置と、前記下側のプリミティブセル内の右端のＹ方向メタルデータの位置と、を合わせる位置を決め、終点として前記上側のプリミティブセル内の右端のＹ方向メタルデータの位置と、前記下側のプリミティブセル内の左端のＹ方向メタルデータの位置と、を合わせる位置を決める手段と、前記始点から前記終点まで前記下側のプリミティブセルを配線グリッド数分移動する手段と、前記上下に隣接する前記プリミティブセル内の同一層においてＹ方向メタルデータのＸ座標の一致個数をカウントする手段と、カウントした前記一致個数と記憶した一致個数とを比較する手段と、カウントした前記一致個数が記憶した一致個数より大きい場合に記憶した一致個数とＸ座標をクリアする手段と、カウントした前記一致個数が記憶した一致個数と等しい場合、又は、記憶した一致個数とＸ座標をクリアした後に、前記一致個数、及び前記下側のプリミティブセルのＸ座標を記憶する手段と、前記プリミティブセル内のＹ方向メタルデータを有する層の数が２以上である場合、Ｙ方向メタルデータの一致個数が大きい方の層に関して記憶した一致個数、及び前記下側のプリミティブセルのＸ座標を選択する手段と、記憶した一致個数と前記下側のプリミティブセルのＸ座標は１つかを判定する手段と、記憶した一致個数と前記下側のプリミティブセルのＸ座標は１つである場合に、記憶したＸ座標を使用する手段と、記憶した一致個数と前記下側のプリミティブセルのＸ座標が複数ある場合に、上下の前記プリミティブセルのＸ座標の差が最小となる座標を選択する手段と、を備えることが好ましい。
【発明の効果】
【００１９】
本発明によれば、半導体集積回路のレイアウト時にプリミティブセル内の２メタル以上のＹ方向配線層メタルデータの位置およびプリミティブセルの種類を考慮してプリミティブセルのＸ座標を決定し、プリミティブセル内にフィードスルートラック用のグリッドを確保することなく最小サイズで設計したプリミティブセルを使用し、チップレイアウト時に配線がプリミティブセル上を一直線に通過することができ、配線の折れ曲がりが減ることで配線性が向上し、チップサイズを縮小することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施例１に係る半導体集積回路のレイアウト設計方法を実施するためのシステムの構成を模式的に示した図である。
【図２】本発明の実施例１に係る半導体集積回路のレイアウト設計方法の全体の流れを概略的に示したフローチャートである。
【図３】本発明の実施例１に係る半導体集積回路のレイアウト設計方法における図２のステップＡ３を詳細に示したフローチャートである。
【図４】本発明の実施例１に係る半導体集積回路のレイアウト設計方法における図３のステップＢ８を詳細に示したフローチャートである。
【図５】本発明の実施例１に係る半導体集積回路のレイアウト設計方法における同種類のプリミティブセルを配置位置調整する場合の工程ごとのレイアウト図である。
【図６】本発明の実施例１に係る半導体集積回路のレイアウト設計方法における異なる種類のプリミティブセルを配置位置調整する場合の工程ごとのレイアウト図である。
【図７】２メタル以上のＹ方向メタルデータを持つプリミティブセルの例である。
【図８】図７のプリミティブセルを使用してチップレイアウトをした場合に本発明の実施例１に係る半導体集積回路のレイアウト設計方法の配置位置調整を実施する前の例である。
【図９】図７のプリミティブセルを使用してチップレイアウトをした場合に本発明の実施例１に係る半導体集積回路のレイアウト設計方法の配置位置調整を実施した後の例である。
【図１０】従来例に係るマスタースライス方式半導体集積回路装置の配線構成を示した図である。
【発明を実施するための形態】
【００２１】
本発明の実施形態に係る半導体集積回路のレイアウト設計方法では、チップ内にＹ軸方向に延在するＹ方向メタルデータを持つプリミティブセルが存在するか判定する工程（図３のステップＢ１）と、前記プリミティブセルが上下に隣接しているか判定する工程（図３のステップＢ３）と、各前記プリミティブセル内の前記Ｙ方向メタルデータを有する層が同じか判定する工程（図３のステップＢ４）と、各前記プリミティブセルのうち移動可能なスペースがあり、かつ、配置位置が固定されていないプリミティブセルがあるか判定する工程（図３のステップＢ５）と、前記各判定を満たす場合に、各前記プリミティブセルの種類が同じか否かを判定する工程（図３のステップＢ６）と、各前記プリミティブセルの種類に応じて前記プリミティブセルのＸ座標の配置位置調整を行う工程（図３のステップＢ７、８）と、前記配置位置調整を行った前記プリミティブセルの位置を固定する工程（図３のステップＢ９）と、を含む。なお、前記半導体集積回路のレイアウト設計方法の各工程は、コンピュータ（半導体集積回路のレイアウト設計装置）においてプログラムを実行させることで行われる。
【実施例１】
【００２２】
本発明の実施例１に係る半導体集積回路のレイアウト設計方法について図面を用いて説明する。図１は、本発明の実施例１に係る半導体集積回路のレイアウト設計方法を実施するためのシステムの構成を模式的に示した図である。
【００２３】
図１を参照すると、実施例１に係る半導体集積回路のレイアウト設計方法を実施するためのシステムは、コンピュータ装置１０１と、サーバ１０２と、ネットワーク１０３と、を有する。
【００２４】
コンピュータ装置１０１は、エンジニアリングワークステーションなどのコンピュータ機能を有する装置であり、半導体集積回路のレイアウト設計装置である。コンピュータ装置１０１は、ネットワーク１０３を介してサーバ１０２と通信可能に接続されている。コンピュータ装置１０１は、サーバ１０２に対して要求した情報を受信（ダウンロード）することにより、受信した情報をローカルなハードディスクあるいはメモリなどにストアし、ユーザの操作又は自動設計機能に応じて半導体集積回路のレイアウト設計を行う。コンピュータ装置１０１の動作の詳細は、後述する。
【００２５】
サーバ１０２は、コンピュータ装置１０１の要求（リクエスト）に応じて、記憶部１０２ａに記憶されたプログラム、データベース等の情報を提供するシステムである。サーバ１０２は、ネットワーク１０３を介してコンピュータ装置１０１と通信可能に接続されている。サーバ１０２は、記憶部１０２ａにおいて、実行プログラム、レイアウトデータ、レイアウトライブラリ、ＣＡＤ設計ツール等の情報を記憶している。サーバ１０２は、コンピュータ装置１０１から要求された情報を、ネットワーク１０３を介してコンピュータ装置１０１に向けて送信する。ここで、レイアウトデータは、半導体集積回路のレイアウトに係るデータである。レイアウトライブラリは、汎用性の高い半導体集積回路のレイアウトに係るデータ群である。ＣＡＤ設計ツールは、ＣＡＤ設計の際に用いる回路エディタやレイアウトエディタ等の編集用ソフトウェアである。
【００２６】
ネットワーク１０３は、インターネットなどの情報通信網であり、コンピュータ装置１０１とサーバ１０２との間の通信を仲介する。
【００２７】
次に、本発明の実施例１に係る半導体集積回路のレイアウト設計方法について図面を用いて説明する。図２は、本発明の実施例１に係る半導体集積回路のレイアウト設計方法の全体の流れを概略的に示したフローチャートである。なお、図２のフローチャートは、サーバ（図１の１０２）から半導体集積回路のレイアウト設計に必要な実行プログラム等をダウンロードしたコンピュータ装置（図１の１０１）で実行される動作に相当する。
【００２８】
まず、半導体集積回路のレイアウト設計にあたって、コンピュータ装置（図１の１０１）は、ユーザの操作に応じて、マクロ（既に設計された回路部分を機能ごとにブロック化したもの）の配置や電源配線などのフロアプラン（配置計画）を行う（ステップＡ１）。次に、コンピュータ装置（図１の１０１）は、プリミティブセル（論理ゲートをＣＡＤツールで扱えるようにしたもの）を自動配置ツールで配置する（ステップＡ２）。
【００２９】
次に、コンピュータ装置（図１の１０１）は、プリミティブセルの配置位置の調整を行う（ステップＡ３）。ここで、ステップＡ３の処理は、２メタル以上のＹ方向配線層のメタルデータ（以降、「Ｙ方向メタルデータ」と称す）を持つプリミティブセルの配置位置をＹ方向メタルデータの位置に基ついて調整する処理である。ステップＡ３の詳細については、後述する。
【００３０】
次に、コンピュータ装置（図１の１０１）は、プリミティブセルの配置位置の調整で確定したプリミティブセルの配置結果を用いて、クロックのネットワークに対してバッファを介したツリー状の構造への変換（生成）するＣＴＳ（Clock Tree Synthesis）を行う（ステップＡ４）。次に、コンピュータ装置（図１の１０１）は、プリミティブセル間の接続に対して配線経路決めのための配線を行う（ステップＡ５）。最後に、コンピュータ装置（図１の１０１）は、レイアウト結果に対して、静的にタイミング解析を実施するＳＴＡ（Static Timing Analysis）を行う（ステップＡ６）。
【００３１】
次に、本発明の実施例１に係る半導体集積回路のレイアウト設計方法における配置位置調整（図２のステップＡ３）の詳細なフローについて図面を用いて説明する。図３は、本発明の実施例１に係る半導体集積回路のレイアウト設計方法における図２のステップＡ３を詳細に示したフローチャートである。
【００３２】
ステップＡ２（図２参照）の後、コンピュータ装置（図１の１０１）は、チップ内でＹ方向メタルデータを持つプリミティブセルが存在するか否かを判定する（ステップＢ１）。チップ内でＹ方向メタルデータを持つプリミティブセルが存在しない場合（ステップＢ１のＮＯ）、配置位置調整する処理を終了し、ステップＡ４（図２参照）に進むことになる。
【００３３】
チップ内でＹ方向メタルデータを持つプリミティブセルが存在する場合（ステップＢ１のＹＥＳ）、コンピュータ装置（図１の１０１）は、チップ内のＹ方向メタルデータを持つプリミティブセルに対して順に配置位置調整する処理をループで実行する（ステップＢ２）。ステップＢ２では、ステップＢ３〜ステップＢ９が行われる
【００３４】
ステップＢ２において、まず、コンピュータ装置（図１の１０１）は、上下のプリミティブセルで、上側のプリミティブセルのＸ座標が、下側のプリミティブセルの「Ｘ座標＋プリミティブセル幅」の範囲内に、または、下側のプリミティブセルのＸ座標が、上側のプリミティブセルの「Ｘ座標＋プリミティブセル幅」の範囲内に存在するか否かをチェックすることにより、プリミティブセルが上下に隣接しているか否かを判定する（ステップＢ３）。プリミティブセルが上下に隣接してしない場合（ステップＢ３のＮＯ）、次のＹ方向メタルデータを持つプリミティブセルに対して配置位置調整する処理に移る。
【００３５】
プリミティブセルが上下に隣接している場合（ステップＢ３のＹＥＳ）、コンピュータ装置（図１の１０１）は、上下に隣接するプリミティブセル内に同じ層のＹ方向メタルデータの層が存在するか否かを判定する（ステップＢ４）。上下に隣接するプリミティブセル内に同じ層のＹ方向メタルデータの層が存在しない場合（ステップＢ４のＮＯ）、次のＹ方向メタルデータを持つプリミティブセルに対して配置位置調整する処理に移る。
【００３６】
上下に隣接するプリミティブセル内に同じ層のＹ方向メタルデータの層が存在する場合（ステップＢ４のＹＥＳ）、コンピュータ装置（図１の１０１）は、プリミティブセルの移動が可能なスペースがあり、かつ、配置位置が固定されていないプリミティブセルであるか否かを判定する（ステップＢ５）。プリミティブセルが移動できない場合（ステップＢ５のＮＯ）、次のＹ方向メタルデータを持つプリミティブセルに対して配置位置調整する処理に移る。
【００３７】
プリミティブセルが移動可能である場合（ステップＢ５のＹＥＳ）、コンピュータ装置（図１の１０１）は、上下に隣接するプリミティブセルの種類を判定する（ステップＢ６）。
【００３８】
上下に隣接するプリミティブセルが同じ種類の場合（ステップＢ６のＹＥＳ）、コンピュータ装置（図１の１０１）は、上下のプリミティブセルのＸ座標を一致させる処理を実行し（ステップＢ７）、その後、ステップＢ９に進む。
【００３９】
上下に隣接するプリミティブセルが異なる種類の場合（ステップＢ６のＮＯ）、コンピュータ装置（図１の１０１）は、上下のプリミティブセルのＸ座標を決める処理を実行し（ステップＢ８）、その後、ステップＢ９に進む。
【００４０】
ステップＢ７又はステップＢ８の後、コンピュータ装置（図１の１０１）は、配置位置調整を行ったプリミティブセルの位置を固定する（ステップＢ９）。
【００４１】
ステップＢ３のＮＯの場合、ステップＢ４のＮＯの場合、ステップＢ５のＮＯの場合、又は、ステップＢ９の後、コンピュータ装置（図１の１０１）は、チップ内に存在する全てのＹ方向メタルデータを持つプリミティブセルに対して配置位置調整する処理を完了したか否かを判定し、完了していない場合には次のＹ方向メタルデータを持つプリミティブセルに対して配置位置調整する処理に移り、完了した場合にはステップＢ２のループ処理を抜け、配置位置調整する処理を終了し、ステップＡ４（図２参照）に進むことになる。
【００４２】
次に、本発明の実施例１に係る半導体集積回路のレイアウト設計方法における上下に隣接するプリミティブセルが異種類の場合の上下のプリミティブセルのＸ座標を決める工程（図３のステップＢ８）の詳細なフローについて図面を用いて説明する。図４は、本発明の実施例１に係る半導体集積回路のレイアウト設計方法における図３のステップＢ８を詳細に示したフローチャートである。
【００４３】
上下に隣接するプリミティブセルが異なる種類の場合（図３のステップＢ６のＮＯ）、コンピュータ装置（図１の１０１）は、上下のプリミティブセルのＸ座標を決める処理を実行する際（図３のステップＢ８）、プリミティブセル内のＹ方向メタルデータの層の数だけ、ステップＣ２〜ステップＣ８の処理をループで繰り返す（ステップＣ１）。
【００４４】
ステップＣ１において、まず、コンピュータ装置（図１の１０１）は、上側のプリミティブセル内の左端のＹ方向メタルデータ位置と下側のプリミティブセル内の右端のＹ方向メタルデータ位置が一致する位置を始点として決め、上側のプリミティブセル内の右端のＹ方向メタルデータ位置と下側のプリミティブセル内の左端のＹ方向メタルデータ位置が一致する位置を終点として決める（ステップＣ２）。
【００４５】
ステップＣ２の後、コンピュータ装置（図１の１０１）は、ステップＣ２で決定した始点から終点までの配線グリッドの数だけ、ステップＣ４〜ステップＣ８の処理をループで繰り返す（ステップＣ３）。
【００４６】
ステップＣ３において、まず、コンピュータ装置（図１の１０１）は、上下に隣接するプリミティブセル内のＹ方向メタルデータのＸ座標が一致する個数をカウントする（ステップＣ４）。
【００４７】
ステップＣ４の後、コンピュータ装置（図１の１０１）は、カウントされた個数と、前回のステップＣ３でのループ処理の中で記憶したＹ方向メタルデータのＸ座標一致個数とを比較する（ステップＣ５）。
【００４８】
ステップＣ５において、カウントされた個数が前回のステップＣ３でのループ処理の中で記憶したＹ方向メタルデータのＸ座標一致個数より大きい場合（ステップＣ５の「大」）、コンピュータ装置（図１の１０１）は、記憶したＹ方向メタルデータのＸ座標一致個数とＸ座標をクリアし（ステップＣ６）、その後、前記一致個数と下側のプリミティブセルのＸ座標を記憶し（ステップＣ７）、その後、下側のプリミティブセルを１配線グリッド移動させる（ステップＣ８）。
【００４９】
ステップＣ５において、カウントされた個数が前回のステップＣ３でのループ処理の中で記憶したＹ方向メタルデータのＸ座標一致個数と等しい場合（ステップＣ５の「等しい」）、コンピュータ装置（図１の１０１）は、前記一致個数と下側のプリミティブセルのＸ座標を記憶し（ステップＣ７）し、その後、下側のプリミティブセルを１配線グリッド移動させる（ステップＣ８）。
【００５０】
ステップＣ５において、カウントされた個数が前回のステップＣ３でのループ処理の中で記憶したＹ方向メタルデータのＸ座標一致個数より小さい場合（ステップＣ５の「小」）、コンピュータ装置（図１の１０１）は、下側のプリミティブセルを１配線グリッド移動させる（ステップＣ８）。
【００５１】
ステップＣ８の後、コンピュータ装置（図１の１０１）は、ステップＣ２において決定した終点の位置まで下側のプリミティブセルの移動を全て完了したか否かを判定し、全て完了していない場合には移動が未完了のプリミティブセルについてステップＣ３を実行し、完了した場合にはステップＣ３のループ処理を抜ける。
【００５２】
ステップＣ３のループ処理を抜けると、コンピュータ装置（図１の１０１）は、上下のプリミティブセルのＸ座標を決める処理が全て完了したか否かを判定し、全て完了していない場合にはＸ座標が未決定のプリミティブセルについてステップＣ２を実行し、完了した場合にはステップＣ２のループ処理を抜ける。
【００５３】
ステップＣ２のループ処理を抜けると、コンピュータ装置（図１の１０１）は、上下に隣接するプリミティブセル内のＹ方向メタルデータの層が一致する数が２以上であるかどうかを判定する（ステップＣ９）。上下に隣接するプリミティブセル内のＹ方向メタルデータの層が一致する数が２未満である場合（ステップＣ９のＮＯ）、ステップＣ１１に進む。
【００５４】
上下に隣接するプリミティブセル内のＹ方向メタルデータの層が一致する数が２以上である場合（ステップＣ９のＹＥＳ）、コンピュータ装置（図１の１０１）は、上下に隣接するプリミティブセル内のＹ方向メタルデータの層が一致する数が２以上である場合には、Ｙ方向メタルデータのＸ座標一致個数が大きい層での記憶したＹ方向メタルデータのＸ座標一致個数とプリミティブセルのＸ座標を選択し（ステップＣ１０）、その後、ステップＣ１１に進む。
【００５５】
ステップＣ９のＮＯの場合、又は、ステップＣ１０の後、コンピュータ装置（図１の１０１）は、記憶したＹ方向メタルデータのＸ座標一致個数とプリミティブセルのＸ座標が１つか否かを判定する（ステップＣ１１）。
【００５６】
記憶したＹ方向メタルデータのＸ座標一致個数とプリミティブセルのＸ座標が１つである場合（ステップＣ１１のＹＥＳ）、コンピュータ装置（図１の１０１）は、記憶したプリミティブセルのＸ座標を下側のプリミティブセルのＸ座標に決め（ステップＣ１２）、その後、ステップＢ９（図３参照）に進むことになる。
【００５７】
記憶したＹ方向メタルデータのＸ座標一致個数とプリミティブセルのＸ座標が複数ある場合（ステップＣ１１のＮＯ）、コンピュータ装置（図１の１０１）は、上下に隣接するプリミティブセルのＸ座標の差が最小となるＸ座標を下側のプリミティブセルのＸ座標に決め（ステップＣ１３）、その後、ステップＢ９（図３参照）に進むことになる。
【００５８】
なお、上記実施例では、下側のプリミティブセルを移動することとして説明したが、移動可能なスペースの位置によっては、上側のプリミティブセルを移動してもよい。
【００５９】
次に、本発明の実施例１に係る半導体集積回路のレイアウト設計方法を半導体集積回路のレイアウトを用いて説明する。図５は、本発明の実施例１に係る半導体集積回路のレイアウト設計方法における同種類のプリミティブセルを配置位置調整する場合の工程ごとのレイアウト図である。図６は、本発明の実施例１に係る半導体集積回路のレイアウト設計方法における異なる種類のプリミティブセルを配置位置調整する場合の工程ごとのレイアウト図である。
【００６０】
なお、図５及び図６において、斜め線のハッチングを施した２０３の部分がプリミティブセル２０１、２０２内のメタル２層以上のＹ方向配線層のメタルデータ（以下、「Ｙ方向メタルデータ」と称する）である。
【００６１】
図５は、Ｙ方向メタルデータ２０３を持つ上下に隣接する同種類のプリミティブセル２０１の場合の例である。図５（Ａ）は自動配置後のプリミティブセル２０１の配置位置であり、図５（Ｂ）に示すように移動可能なスペース２０４が存在する場合、図５（Ｃ）のように上下のプリミティブセル２０１のＸ座標が一致する位置に下側のプリミティブセル２０１の位置を調整し、Ｙ方向メタルデータ２０３の位置を合わせる。
【００６２】
図６は、Ｙ方向メタルデータ２０３を持つ上下に隣接するプリミティブセル２０１、２０２が異なる種類の場合の例である。図６（Ａ）は自動配置後の異なる種類のプリミティブセル２０１及びプリミティブセル２０２の配置位置であり、図６（Ｂ）に示すように移動可能なスペース２０４が存在する場合、図４（Ｃ）のように上側のプリミティブセル２０１内の左端のＹ方向メタルデータ２０３の位置と下側のプリミティブセル２０２内の右端のＹ方向メタルデータ２０３の位置を合わせた位置から、図４（Ｄ）のように上側のプリミティブセル２０１内の右端のＹ方向メタルデータ２０３の位置と下側のプリミティブセル２０２内の左端のＹ方向メタルデータ２０３の位置を合わせた位置まで配線グリッド単位で下側のプリミティブセル２０２を移動し、移動する毎に、プリミティブセル２０１及びプリミティブセル２０２内のＹ方向メタルデータ２０３が一致する個数をカウントする。上下のプリミティブセル２０１及びプリミティブセル２０２内のＹ方向メタルデータ２０３のＸ座標が一致する個数が最大となる位置に下側のプリミティブセル２０２の位置を調整する。
【００６３】
本配置位置調整により確保できる通過配線のリソースは、［式１］のように表される。
【００６４】
［式１］
Ｇｓｐａｃｅ１＝Ｗ／Ｇ−Ｍ
Ｇｓｐａｃｅ１＝配置位置調整後のプリミティブセル上を一直線に通過できる配線トラック
Ｗ＝プリミティブセルの幅
Ｇ＝配線グリッドの幅
Ｍ＝プリミティブセル内Ｙ方向メタルデータ数
【００６５】
メタルデータ数セルの配置位置を調整しない場合、セルの縦方向の並びにより、通過配線のリソースは、最悪の場合で、［式２］のようになり、上下に隣接するプリミティブセルの個数が多くなるほど、上記ｎの値が大きくなるため、プリミティブセル上通過可能な配線グリッド数（［式２］のＧｓｐａｃｅ２）が減り、配線が一直線に通過することが困難になる。
【００６６】
［式２］
Ｇｓｐａｃｅ２＝Ｗ／Ｇ−Ｍ×ｎ
Ｇｓｐａｃｅ２＝配置位置調整を行わない場合のプリミティブセル上を一直線に通過できる配線トラック
ｎ＝上下に隣接するプリミティブセルの個数
【００６７】
次に、本発明の実施例１に係る半導体集積回路のレイアウト設計方法においてプリミティブセル上を一直線に配線が通過できる配線リソース数が増加した場合について説明する。
【００６８】
図７は、２メタル以上のＹ方向メタルデータ２０３を持つプリミティブセル２０１の例である。本例では、プリミティブセル２０１上の縦方向のトータルの配線グリッド（上記［式１］及び［式２］の「Ｗ／Ｇ」に相当）は５０本であり、プリミティブセル２０１内のＹ方向メタルデータ２０３の数（上記［式１］及び［式２］の「Ｍ」に相当）が１０個である。
【００６９】
図８は、図７のプリミティブセル２０１を使用してチップレイアウトをした場合に本発明の実施例１に係る半導体集積回路のレイアウト設計方法の配置位置調整を実施しない例である。図９は、図７のプリミティブセル２０１を使用してチップレイアウトをした場合に本発明の実施例１に係る半導体集積回路のレイアウト設計方法の配置位置調整を実施した例である。
【００７０】
図８では、プリミティブセル２０１の配置位置調整を行わないため、最悪、１０箇所×３個分（上記［式２］の「Ｍ×ｎ」に相当）の通過配線が阻害される。本例では、プリミティブセル上を一直線に通過できる配線トラック３０１（上記［式２］の「Ｇｓｐａｃｅ２」に相当）は、２６箇所となっている。
【００７１】
図９では、プリミティブセル２０１の位置を整列させることにより、通過配線の阻害箇所は、最大でプリミティブセル２０１内のＹ方向メタルデータ２０３の数（上記［式１］の「Ｍ」に相当）の１０箇所のみであり、プリミティブセル上を一直線に通過できる配線トラック３０１（上記［式１］の「Ｇｓｐａｃｅ１」に相当）は、４０本となっている。
【００７２】
実施例１によれば、以下のような効果を奏する。
【００７３】
第１の効果として、プリミティブセルの設計時に、プリミティブセル内部にフィードスルートラックを確保することなく、配線を向上させることができ、チップサイズを縮小できるという効果がある。その理由としては、プリミティブセル内の２メタル以上のＹ方向配線層メタルデータのＸ座標の位置を合わせることにより、チップの自動レイアウト時に配線がプリミティブセル上を一直線に通過することができるからである。
【００７４】
第２の効果として、配線時の処理時間が短縮できるという効果がある。その理由としては、チップの自動レイアウト時に配線がプリミティブセル上を一直線に通過することで配線の折れ曲がりが減り、配線性が向上するからである。
【符号の説明】
【００７５】
１  半導体基板
２  基本セル列領域
３  配線領域
４〜１１  論理機能セル
４ａ、４ｂ、４ｃ、５ａ、６ａ、７ａ、８ａ、１０ａ、１０ｂ、１０ｃ  端子
１２  フィードスルートラック
１３〜３０  配線グリッド
３１〜３５  配線
３６  基本セル
１０１  コンピュータ装置
１０２  サーバ
１０２ａ  記録部
１０３  ネットワーク
２０１  プリミティブセル
２０２  プリミティブセル
２０３  Ｙ方向メタルデータ
２０４  移動可能なスペース
３０１  プリミティブセル上を一直線に通過できる配線トラック
【図１】
2011107979.tif 000003
【図２】
2011107979.tif 000004
【図３】
2011107979.tif 000005
【図４】
2011107979.tif 000006
【図５】
2011107979.tif 000007
【図６】
2011107979.tif 000008
【図７】
2011107979.tif 000009
【図８】
2011107979.tif 000010
【図９】
2011107979.tif 000011
【図１０】
2011107979.tif 000012