(57)【要約】【課題】  スペアセルセットの配置による通常セル配置への影響を低減する。【解決手段】  スペアセルセットの配置方法は、複数のスペアセルセットを有する集積回路の配置方法であって、ネットリストに基づいて通常セルを配置し、前記通常セル配置後、前記通常セル未配置領域に、階層別情報に基づいて前記複数のスペアセルセットの所定のスペアセルセットを配置し、前記通常セル、前記所定のスペアセルセットの配置から配線性を判定し、前記配線性の判定結果に応じて前記所定のスペアセルセットの未配置化あるいは他のスペアセルセットとの置き換えを行う。【選択図】  図１
2006287054.tif 000002
【特許請求の範囲】
【請求項１】
複数のスペアセルセットを有する集積回路の配置方法であって、
ネットリストに基づいて通常セルを配置し、
前記通常セル配置後、前記通常セル未配置領域に、階層別情報に基づいて前記複数のスペアセルセットの所定のスペアセルセットを配置し、
前記通常セル、前記所定のスペアセルセットの配置から配線性を判定し、
前記配線性の判定結果に応じて前記所定のスペアセルセットの未配置化あるいは他のスペアセルセットとの置き換えを行うスペアセルセットの配置方法。
【請求項２】
前記階層別情報は、前記集積回路内の回路グループに対して設定され、該回路グループと前記複数のスペアセルセットを関連付けた情報であることを特徴とする請求項１に記載のスペアセルセットの配置方法。
【請求項３】
前記階層別情報は、前記回路グループに対して、前記複数のスペアセルセットの優先順位を設定した情報であることを特徴とする請求項２に記載のスペアセルセットの配置方法。
【請求項４】
前記階層別情報は前記回路グループと前記スペアセルセットとの間の許容距離を示した情報であることを特徴とする請求項２あるいは３に記載のスペアセルセットの配置方法。
【請求項５】
前記複数のスペアセルセットは、スペアセルセット情報として保持され、各スペアセルセット情報は、スペアセルセットに含まれるスペアセルの種類および数に関する情報を有していることを特徴とする請求項１乃至４のいずれか１項に記載のスペアセルセットの配置方法。
【請求項６】
複数のスペアセルセットを有する集積回路の配置方法であって、
セル配置領域に対して、セルが占有する領域の目標値を設定し。
前記セル配置領域に対して、通常セルが占有する領域を計算し、
前記セルが占有する領域の目標値と前記通常セルが使用する領域の計算結果とを比較し、
前記比較結果に基づいて、前記セル配置領域に対して、前記複数のスペアセルセットのうち所定のスペアセルセットの追加あるいは非追加を判定するスペアセルセットの配置方法。
【請求項７】
前記セルが占有する領域の目標値と前記通常セルが使用する領域の計算結果との比較は、前記セルが占有する領域の目標値に対応する占有面積から、前記通常セルが占有する面積を減算することによって行い、
前記所定のスペアセルセットの追加は、前記減算の結果に対応する面積が当該所定のスペアセルセットの使用面積よりも大きい場合に行われることを特徴とする請求項６に記載のスペアセルセットの配置方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スペアセルセットの配置方法に関し、特に回路修正を容易にしたスペアセルの配置方法に関する。
【背景技術】
【０００２】
一般に、集積回路等の論理設計を行う場合、その設計回路をレイアウトした場合に、論理設計やタイミングなどに問題が生じることがある。このような場合、ＥＣＯ（Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｈａｎｇｅ  Ｏｒｄｅｒ）という回路修正が行われる。そのため、回路修正用として使用するスペアセルが集積回路等の中に配置されている。このスペアセルを配置する方法としては、大別して２つの方法がある。
【０００３】
１つ目の方法では、通常のセル配置の前に、スペアセル配置が行われる。この場合、予めスペアセルのデータを含むネットリストが読み込まれる。その後、ＩＯ部設計、マクロ配置、電源配線などが行われる。その後、マクロを配置しないセル配置領域に対してスペアセルの配置が行われる。スペアセルの配置位置は、この段階で決定される。スペアセル配置後に、セル配置領域に設計した回路の通常セルが配置される。その後、クロックツリーが構築され、配線が配置される。回路修正時には、論理修正に合わせて配線の修正等が行われる。この際に必要に応じてスペアセルにも配線が接続される。
【０００４】
２つ目の方法としては、通常のスタンダードセル配置後に、スペアセルを配置する方法がある。この場合、スペアセルを含まない設計回路のネットリストが読み込まれ、ＩＯ部設計、マクロ配置、電源配線などが行われる。通常セルの配置後に追加情報としてスペアセルの種類が入力され、ネットリストにスペアセルが追加される。スペアセルの追加後に、スペアセルがチップ内の空き領域に配置される。スペアセル配置後に、クロックツリー構築、配線が行われる。回路修正時には、論理やタイミングの修正に合わせて配線の修正等が行われる。この際に必要に応じてスペアセルにも配線が行われる。
【０００５】
また、特許文献1に示すようなスペアセルの配置方法もある。特許文献1に記載のスペアセル配置方法では、論理修正用として使用するスペアセルの挿入割合を、ネットリストのセル数に対して予め決めておき、スペアセルと通常のスタンダードセルを同時に配置する。
【特許文献１】特開２００３−１３２１１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
スペアセル配置後に通常セルの配置をする場合、スペアセルを必要とする回路を予測することは困難である。そのため、スペアセルを必要とする回路の近傍に、予めスペアセルを配置することはきわめて難しい。一方、通常セル配置前にスペアセルを配置する場合、チップ内に均等に分散させて配置するため、スペアセルを必要する回路の近傍に配置できない場合がある。また、特許文献1に記載の技術でも、配線の混雑する部分などを考慮していないためスペアセルにより配線性が悪化する場合がある。
【課題を解決するための手段】
【０００７】
本発明の一態様によるスペアセルセットの配置方法は、複数のスペアセルセットを有する集積回路の配置方法であって、ネットリストに基づいて通常セルを配置し、前記通常セル配置後、前記通常セル未配置領域に、階層別情報に基づいて前記複数のスペアセルセットの所定のスペアセルセットを配置し、前記通常セル、前記所定のスペアセルセットの配置から配線性を判定し、前記配線性の判定結果に応じて前記所定のスペアセルセットの未配置化あるいは他のスペアセルセットとの置き換えを行う。
【０００８】
また、本発明の一態様によるスペアセルセットの配置方法は、複数のスペアセルセットを有する集積回路の配置方法であって、セル配置領域に対して、セルが占有する領域の目標値を設定し、前記セル配置領域に対して、通常セルが占有する領域を計算し、前記セルが占有する領域の目標値と前記通常セルが使用する領域の計算結果とを比較し、前記比較結果に基づいて、前記セル配置領域に対して、前記複数のスペアセルセットのうち所定のスペアセルセットの追加あるいは非追加を判定する。
【発明の効果】
【０００９】
このようにスペアセルセットを配置することにより、スペアセルセットを追加したことによる通常セルの配置への影響を低減させることが出来る。
【発明を実施するための最良の形態】
【００１０】
実施の形態１
以下に、図面を用いて本発明の実施の形態１について説明する。図１は、実施の形態１におけるスペアセルの配置方法を示すフローチャートである。図１では、スペアセル配置のフローのみを示し、設計した回路のネットリストから、ＩＯ部の設計、マクロ配置、電源配線などはすでに行われているものとする。
【００１１】
ステップＳ１では、スペアセルの配置は考慮されず、通常セルの配置が行われる。ここでは、セル配置領域に、設計した回路のネットリストに基づいた通常セルの配置が行われる。つまり、レイアウト設計において、スペアセルを挿入する前に、通常セルの配置が行われる。スペアセル配置前に、通常のセルが配置されるため、通常セルはスペアセルの配置による制限を受けずに配置することが出来る。
【００１２】
その後、ステップＳ２において、階層別情報、スペアセルセット情報が取得され、スペアセルセットの配置が行われる。
【００１３】
ここで、階層別情報とは、例えば図５（ａ）に示すように、回路階層ごとに階層名、その回路階層が使用するクロック、使用頻度が高いスペアセルセット、スペアセルセットの優先順位及びスペアセルセットまでのレイアウト上の許容距離などを定義づけたファイルである。
【００１４】
また、スペアセルセット情報とは、例えば図５（ｂ）に示すように、複数のスペアセルセットに関する情報であり、各スペアセルセットに含まれるスペアセルの種類、個数やスペアセル単位で置き換える場合のスペアセルの優先順位などが示されている。
【００１５】
上記の回路階層とは、セル配置領域における、ある機能を実現する回路グループなどをさしている。このグループはある機能を実現するための機能ブロックなどである。例えば、設計ソフトウェア上では、ゲートレベルから設計回路にいたるまでに回路が階層的に分割されている。そこで、ソフトウェア上、所定の回路グループごとに名前をつけ、それらのグループの関連性を考慮した自動配置が行われている。このような所定のグループ（例えば発振器などの１つの機能ブロックと考えることも可能）を回路階層という。上記の階層別情報とは、このような所定のグループごとに、そのグループが使用するクロックや、そのグループに対してのスペアセルセットの優先順位などの情報をまとめたものである。
【００１６】
また、スペアセルセットとは複数のスペアセルをグループとしてまとめたものである。例えばフリップフロップ８個とバッファ２個で１つのスペアセルセットなどとするものであり、その構成や数は、設計者側で任意に設定できるものとする。上記のスペアセルセット情報とは、このようなスペアセルセット毎の情報を複数集めたものである。また、スペアセルセットごとに、各スペアセルに関して種類、個数などの優先順位情報を付加したものである。
【００１７】
ステップＳ２では、ステップＳ１で通常セルが配置されなかった領域にスペアセルセットの配置が行われる。このスペアセルセットの配置は、上記の階層別情報を元に、各回路階層において優先順位の高いスペアセルセットを各回路階層に出来る限り近い未配置領域に配置していく。ステップＳ２では、通常セルの未配置領域に可能な限りスペアセルの配置が行われる。
【００１８】
ステップＳ３では、ステップＳ２のスペアセルセット配置終了後の配線性（配線を形成する場合の混雑度等）が考慮される。配線性の困難がありと判断された場合、ステップＳ４に進み、配線性に困難がなかった場合はステップＳ９へと進む。
【００１９】
ステップＳ４においては、まず、配置したスペアセルセットで、配線性の点から配置が困難とされるスペアセルセットが削除される。
【００２０】
その後、ステップＳ５では、上記の階層別情報、スペアセルセット情報をからスペアセルセットの置き換えが、可能かどうかが判断される。
【００２１】
置き換え可能なスペアセルセットがあった場合には、ステップＳ６で以下の条件を基準にスペアセルセットの置き換えを行いステップＳ３に戻る。
１、削除されたスペアセルセットよりも優先順位が低い範囲で最も優先順位の高いスペアセルセットを優先させる。
２、削除されたスペアセルセットよりもスペアセルセットの占有する面積が大きいセルを優先させ、スペアセルセットの削除により出来た領域に配置可能であれば、他のスペアセルセットよりも優先させる。
【００２２】
ステップＳ３からＳ６を繰り返し、ステップＳ５において、優先順位が低い置き換え可能なスペアセルセットがなくなった場合は、ステップＳ７へと進む。
【００２３】
ステップＳ７においては、以下の条件を基準にスペアセルセット内でのスペアセルの入れ替えが行われる。
１、削除したスペアセルよりも優先順位が低く、優先順位の高いスペアセルを利用する。
２、削除されたスペアセルよりもスペアセルの占有する面積が大きいセルを優先させ、スペアセルの削除により出来た領域に配置可能であれば、他のスペアセルセットよりも優先させる。
【００２４】
上記の条件を元に、置き換え可能なセルがあった場合にはステップＳ３に戻る。
【００２５】
このようにＳ３からＳ７の過程を繰り返し、配線困難な部分がなくなった場合、ステップＳ９へと進む。また、Ｓ４からＳ７の過程を繰り返した結果、スペアセル情報ファイル内のスペアセルで、どのように置き換えても配線性が困難とされた場合は、その領域はステップＳ８で、未配置領域と決定される。
【００２６】
ステップＳ９では、最終的に配置が決定されたスペアセルセットの中でクロックの接続が必要なスペアセル（例えばフリップフロップなど）に、スペアセルセット単位で、クロックが接続される。このクロックは、階層別情報に基づいて、スペアセルセットの対象となる回路階層で使用するクロックであり、スペアセルセットに対して配置上、出来る限り近いクロックを使用する。
【００２７】
本実施の形態によれは、スペアセルセット（スペアセル）配置が通常セルの配置と独立して行われる。従って、配置プログラムとスペアセル配置プログラム間のインタフェースを整理することで、本実施形態の配置方法を実現することが可能である。このようにスペアセル配置を行った場合の、集積回路のレイアウト方法のフローを図２に示す。
【００２８】
レイアウト設計時には、上記したようにレイアウト設計を行う回路のネットリストからＩＯ部の設計、マクロ配置、電源配線が行われる（図２、Ｓ２１参照）。その後、図１にステップＳ１で示した、通常セル配置が行われる（図２ではステップＳ２２）。通常セルのレイアウトが行われたデータに対し、通常セル未配置領域にスペアセルセットが追加される。そこで図１に示したフローでスペアセルセットの配置が行われた後、最終的に未配置となったスペアセルのネットリストは削除され配置が決定される（図２、Ｓ２７参照）。スペアセル配置が決定した後、ＣＴＳ（Ｃｌｏｃｋ  Ｔｒｅｅ  Ｓｙｎｔｈｅｓｉｓ）によって、各部に供給するクロックツリーが決定される（図２、Ｓ２８参照）。その後、信号配線などの配線が自動配線される（図２、Ｓ２９参照）。
【００２９】
その後、設計したレイアウトに基づいた回路シミュレーションなどを行い、設計に対する検証が行われる（図２、Ｓ２１０参照）。ここで、論理設計や、遅延時間などに関しての問題がなければ設計フローを終了する。この検証で、何らかの問題点が発見された場合、スペアセルを用いた回路修正（ＥＣＯ）が行われる。回路修正が必要な場合には配線後のデータに対して回路修正が行われる。この回路修正は、論理構成上問題が起こった部分にスペアセルを接続するなどの修正である。そのため、まず、配線形成後のネットリストに対して、その経路の修正などが行われる。その後、修正したネットリストに基づいて配線経路の修正などが行われる。
【００３０】
以上説明したように、本実施の形態によれば、階層別情報に基づいて複数のスペアセルをまとめたスペアセルセットが、指定された回路階層の近傍に配置されている。そのため、回路修正がきわめて容易となる。また、階層別情報から、回路階層と接続されるスペアセルセットが明確であるため、スペアセルセットに接続するクロックの有無、接続すべきクロックも明確となる。また、スペアセルセットの配置には、通常セルの未配置領域が利用されているため、スペアセルセットによる通常セル配置の困難さを生じることもない。また、未配置領域にスペアセルセットを配置した場合に配線が混雑してしまうような領域では、階層別情報、スペアセルセット情報からスペアセルセット（あるいはスペアセル）の置き換えが行われている。そのため、配線性を悪化させることなく、スペアセルセットを配置することが可能である。
【００３１】
実施の形態２
以下、図３に基づいて本発明の実施の形態２のスペアセルの配置方法について説明する。実施の形態１では、通常セルの配置後に、スペアセルの配置を行っていたが本実施の形態では、通常セル配置時に、スペアセルの配置も行う。以下にそのためのフローについて説明する。
【００３２】
本実施の形態においては、まず、セルユーティライゼーションというものが考慮される。ここで、セルユーティライゼーションとは、例えば上述の回路階層ごとなどにセル配置領域に対して、通常セルを配置した場合に通常セルが占有する面積の割合のことである。
【００３３】
ステップＳ３１では、セルの配線性を考慮してセルが配置される領域に対してのセルユーティライゼーションが決定される。ここでは、例えば、セルを配置する領域全体が、各回路階層などによって、複数の領域に分割される。そして、その領域ごとにセルユーティライゼーションの目標値Ｕ１が設定される。
【００３４】
ステップＳ３２では、各領域に対応して設計した回路のネットリストから通常セルを配置した場合に、通常セルのセルユーティライゼーションＵ２がどの程度になるかの計算を行う。
【００３５】
ステップＳ３３では、目標設定されたセルユーティライゼーションＵ１と、ステップＳ３２で計算されたセルユーティライゼーションＵ２の比較が行われる。計算したセルユーティライゼーションＵ２が目標値Ｕ１よりも低ければ、そのセル配置領域内に、まだセルを配置する余裕があるということである。したがって、Ｕ１＞Ｕ２であれば、ステップＳ３４に進み、計算したセルユーティライゼーションＵ２が、目標セルユーティライゼーションＵ１以上であればステップＳ３５へと進む。
【００３６】
ステップＳ３４においては、セルユーティライゼーションの余裕に応じて、スペアセルセットの追加が行われる。本実施の形態ではこのスペアセルセットの追加は、設計した回路のネットリストに対するスペアセルセットのネットリストの追加である。スペアセルセット追加後、ステップＳ３５へと進む。このスペアセルセット追加のフローに関しては後述する。
【００３７】
ステップＳ３５において、スペアセルセットと必要なクロックの接続が行われ、ステップＳ３６へと進む。
【００３８】
ステップＳ３６では、各領域（例えば回路階層）ごとに決定されたネットリストに基づいて、通常セル、スペアセルのそれぞれの領域上への配置が行われ、レイアウトが設計される。
【００３９】
ここで、上述のセルユーティライゼーションの余裕がある領域に対するスペアセルセットのネットリストの追加について説明する。図４は、セルユーティライゼーションの余裕がある領域に対するスペアセルセット追加のフローを示すフローチャートである。図４を用いてスペアセルセットのフローを説明する。
【００４０】
ステップＳ４１において、目標とするセルユーティライゼーションＵ１と、通常セルのネットリストから計算したセルユーティライゼーションＵ２の差を計算し、その差に基づいてスペアセルセット配置可能面積ＡＲＥＡが計算される。
【００４１】
ステップＳ４２において、実施の形態１と同様の階層別情報、スペアセルセット情報から、優先度の高いスペアセルセットのネットリストが決定される。決定されたスペアセルセットのネットリストは追加するネットリストＳＣＳＥＴとして設定される。
【００４２】
ステップ４３において、追加するスペアセルセットのネットリストＳＣＳＥＴが使用する面積ＳＣＡＲＥＡを計算する。
【００４３】
ステップＳ４４において、スペアセル配置可能面積ＡＲＥＡと、ステップＳ４３で設定されえた面積ＳＣＡＲＥＡの比較が行われる。ここで、スペアセル配置可能面積ＡＲＥＡの方が大きい場合はステップＳ４５へと進み、小さい場合はステップＳ４７へと進む。
【００４４】
ステップＳ４５において、追加するスペアセルセットのネットリストが、対応する領域のネットセルに追加される。その後、ステップＳ４６へと進む。
【００４５】
ステップＳ４６では、追加されたスペアセルセットの面積ＳＣＡＲＥＡが、スペアセル配置可能面積ＡＲＥＡより減算され、新たなスペアセル配置領域ＡＲＥＡとして設定される。
【００４６】
ステップＳ４７では、追加しようとしたスペアセルセットが、回路階層と関係するスペアセルセット情報の中で面積が最小のものかどうかが判定される。面積が最小のものであった場合は、スペアセルセットの追加は出来ないと判断し、領域に対するネットリストの作成が確定する。最小のものでない場合はステップＳ４８へと進む。
【００４７】
ステップＳ４８では、階層別情報から、現在ＳＣＳＥＴとして設定されているスペアセルセットより優先度の低いスペアセルセットがあるかどうかが判定される。それ以上優先度の低いスペアセルセットがない場合はネットリストを確定し、スペアセル追加作業は終了となる。
【００４８】
ステップＳ４９では、ＳＣＳＥＴより優先度の低いスペアセルセットがある場合は追加するスペアセルセットＳＣＳＥＴとして、残りのスペアセルセットから最も優先度の高いスペアセルセットを設定し、ステップＳ４３へと戻る。
【００４９】
Ｓ４３からＳ４９の工程を繰り返し、面積が最小のスペアセルセットが追加できなくなった時点でネットリストが確定され、図３のステップＳ３４へと進む。
【００５０】
本実施の形態では、配線性をネットリストにおけるセルユーティライゼーションで制限をかけて作成している。そのため、ＣＴＳ、セットアップ違反対策、ホールド対策などのためにレイアウト後にバッファ挿入などをしなければならない場合の配置余裕を予め計算した上でセルユーティライゼーションの目標値を設定できる。バッファは、小面積で形成することが可能なため、スペアセルセットほどの領域的余裕は必要なく、予め設定するセルユーティライゼーションの目標値を適切に設定すれば、ＣＴＳ違反などの対策のためにバッファを挿入しなければならない場合の余地を確保しておくことが容易となる。
【図面の簡単な説明】
【００５１】
【図１】図１は、実施の形態１におけるスペアセル配置の方法を示すフローチャートである。
【図２】図２は、集積回路のレイアウト方法のフローチャートである。
【図３】図３は、実施の形態２におけるスペアセル配置の方法を示すフローチャートである。
【図４】ネットリストにスペアセルセットを追加するフローを説明する図である。
【図５】階層別情報、スペアセルセット情報を示す模式図である。
【符号の説明】
【００５２】
ＡＲＥＡ    スペアセル配置可能面積
ＳＣＡＲＥＡ    スペアセル面積
ＳＣＮＥＴ    スペアセルセットネットリスト
Ｕ１    目標セルユーティライゼーション
Ｕ２    通常セルのセルユーティライゼーション
【図１】
2006287054.tif 000003
【図２】
2006287054.tif 000004
【図３】
2006287054.tif 000005
【図４】
2006287054.tif 000006
【図５】
2006287054.tif 000007