(57)【要約】【課題】半導体集積回路のチップサイズの大型化を抑制し、配線収束性を高めると共に歩留まりを高めることが可能な自動配置配線装置、自動配置配線方法、自動配置配線プログラム及び半導体集積回路を提供することを目的とする。【解決手段】半導体集積回路の設計において機能セルの自動配置配線を行う際に、所定領域設定部により機能セルの有する端子が集中しそうな部分に所定領域を設定し、端子密度設定部によりこの所定領域における端子密度を設定する。そして本発明では、この所定領域内の端子密度が、設定された端子密度以下となるように、機能セルの配置を行う。【選択図】図４
2008090456.tif 000002
【特許請求の範囲】
【請求項１】
機能セルに係る情報が格納された機能セル格納手段と、前記機能セルの配置及び配線に関する設計規定に係る情報が格納された設計規定格納手段と、機能セルの接続情報を読み込む読込手段とを有し、
前記読込手段により読み込まれた前記接続情報と、前記設計規定に係る情報とに基づき、前記機能セル格納手段に格納された前記機能セルの配置及び配線を行う自動配置配線装置において、
隣接した前記機能セルの境界を含む所定領域を設定する領域設定手段と、
前記所定領域内の端子密度を設定する端子密度設定手段と、
前記機能セルを配置する配置手段とを有し、
前記配置手段は、前記領域設定手段により設定された前記所定領域における端子密度が、前記端子密度設定手段により設定された端子密度以下となるように前記機能セルを配置することを特徴とする自動配置配線装置。
【請求項２】
前記所定領域の前記端子密度を検出する端子密度検出手段を有し、
前記配置手段は、前記端子密度検出手段の検出結果に基づき、前記機能セルを移動させて配置することを特徴とする請求項１に記載の自動配置配線装置。
【請求項３】
前記配置手段は、前記端子密度検出手段の検出結果に基づき、前記機能セルを、Ｙ軸を対称軸として反転させて配置することを特徴とする請求項１又は２に記載の自動配置配線装置。
【請求項４】
前記機能セル格納手段には、前記機能セルとＸ軸に関して対称な関係にある機能セルが格納されており、
前記配置手段は、前記端子密度検出手段の検出結果に基づき、前記機能セルと、前記Ｘ軸に関して対称な関係にある機能セルのうち、いずれか一方を配置することを特徴とする請求項１ないし３のいずれか一項に記載の自動配置配線装置。
【請求項５】
前記所定領域設定手段は、前記読込手段に読み込まれた前記接続情報より、前記所定領域を設定することを特徴とする請求項１ないし４のいずれか一項に記載の自動配置配線装置。
【請求項６】
当該自動配置配線装置による配線処理において、配線の未収束部分を検出する未収束部検出手段を有し、
前記所定領域設定手段は、前記未収束部検出手段により検出された未収束部分を含む領域を、前記所定領域に設定することを特徴とする請求項１ないし５のいずれか一項に記載の自動配置配線装置。
【請求項７】
前記所定領域は、その幅が、配置された機能セルと信号線とを接続する接続面のＸ軸方向の幅の略４倍あることを特徴とする請求項１ないし６のいずれか一項に記載の自動配置配線装置。
【請求項８】
機能セルに係る情報が格納された機能セル格納手段と、前記機能セルの配置及び配線に関する設計規定に係る情報が格納された設計規定格納手段とを有し、前記設計規定に係る情報を用いて前記機能セルの自動配置配線を行う自動配置配線装置における自動配置配線方法において、
機能セルの接続情報を読み込む読込手順と、
隣接した前記機能セルの境界を含む所定領域を設定する領域設定手順と、
前記所定領域内の端子密度を設定する端子密度設定手順と、
前記接続情報と前記設計規定とに基づき前記機能セルを配置する配置手順とを有し、
前記配置手順は、前記領域設定手順により設定された前記所定領域における端子密度が、前記端子密度設定手順により設定された端子密度以下となるように前記機能セルを配置することを特徴とする自動配置配線方法。
【請求項９】
機能セルに係る情報が格納された機能セル格納手段と、前記機能セルの配置及び配線に関する設計規定に係る情報が格納された設計規定格納手段とを有し、前記設計規定に係る情報を用いて前記機能セルの自動配置配線を行う自動配置配線装置における自動配置配線プログラムにおいて、
コンピュータに、
機能セルの接続情報を読み込む読込手順と、
隣接した前記機能セルの境界を含む所定領域を設定する領域設定手順と、
前記所定領域内の端子密度を設定する端子密度設定手順と、
前記接続情報と前記設計規定とに基づき前記機能セルを配置する配置手順とを実行させ、
前記配置手順は、前記領域設定手順により設定された前記所定領域における端子密度が、前記端子密度設定手順により設定された端子密度以下となるように前記機能セルを配置することを特徴とする自動配置配線プログラム。
【請求項１０】
請求項８記載の方法により自動配置配線された機能セルを有することを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体基板上において機能セルの配置配線を行う自動配置配線装置、自動配置配線方法、自動配置配線プログラム及び、これにより設計された半導体集積回路に関する。
【背景技術】
【０００２】
近年のＬＳＩ（Large Scale Integration）設計では、プロセスの微細化によりセルサイズが非常に小さくなり、それに伴いチップサイズの小型化が進んでいる。さらに、チップの動作周波数は高速化しつつある、近年のＬＳＩでは、これらの要因からチップ内にセルが密集して配置される傾向にあり、このような場合にはセル間の信号線の配線が困難となることがある。
【０００３】
特に端子数の多い複合セルが密集して配置された場合には、全ての信号線を配線することが不可能となる配線未収束と呼ばれる現象が発生することが多い。このような現象は、チップ内で局所的に起こる場合が多い。図１は、局所的に配線未収束となる例を説明する図である。
【０００４】
多層構造のＬＳＩにおいて、通常セルの端子は下位層で作成されており、この端子と信号線を結線する場合には、信号線を上位層からビアを経由させて下位層まで到達させる必要がある。このため、例えばセルを跨るような配線では上位層から下位層までの経路の途中で配線がブロックされてしまい配線未収束となる。
【０００５】
このような現象を回避する技術として、例えば特開２００１−１２７１６０号公報（特許文献１）には、機能セルを配置するときに、セルサイズを擬似的に大きく見せかけて配置し、実際のセルサイズと、擬似的に大きく見せかけたセルサイズとの差分領域を、機能セル間の配線専用領域として配線された半導体集積回路及びそのレイアウト設計手法が記載されている。特許文献１記載の発明によれば、一定の幅の信号線配線領域を確保することが可能となる。
【特許文献１】特開２００１−１２７１６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、チップ全面に特許文献１記載の手法を用いた場合、信号線配線領域が必要となる局所的な配線未収束箇所以外の箇所にも信号線配線領域が設定されるため、この方法により設計された半導体集積回路ではチップサイズが必要以上に大きくなる。また、特許文献１記載の発明では、同一の機能セルに対し、実際のセルサイズの機能セルと、擬似的に大きく見せかけた機能セルと、２種類の機能セルを用意する必要がある。さらに、特許文献１記載の発明では、擬似的に大きく見せかけた機能セルを決定するために、最低１回の自動配置配線処理を実行し、配線未収束となる部分を認識する必要がある。
【０００７】
本発明は上記事情を鑑みて、これらを解決すべく成されたものであり、信号配線を行う際に、半導体集積回路のチップサイズの大型化を抑制し、配線収束性を高めると共に歩留まりを高めることが可能な自動配置配線装置、自動配置配線方法、自動配置配線プログラム及び半導体集積回路を提供することを目的とするものである。
【課題を解決するための手段】
【０００８】
本発明は、上記目的を達成するために、以下の如き構成を採用した。
【０００９】
本発明の自動配置配線装置は、機能セルに係る情報が格納された機能セル格納手段と、前記機能セルの配置及び配線に関する設計規定に係る情報が格納された設計規定格納手段と、機能セルの接続情報を読み込む読込手段とを有し、前記読込手段により読み込まれた前記接続情報と、前記設計規定に係る情報とに基づき、前記機能セル格納手段に格納された前記機能セルの配置及び配線を行う自動配置配線装置において、隣接した前記機能セルの境界を含む所定領域を設定する領域設定手段と、前記所定領域内の端子密度を設定する端子密度設定手段と、前記機能セルを配置する配置手段とを有し、前記配置手段は、前記領域設定手段により設定された前記所定領域における端子密度が、前記端子密度設定手段により設定された端子密度以下となるように前記機能セルを配置する構成とすることができる。
【００１０】
係る構成によれば、信号配線を行う際に、半導体集積回路のチップサイズの大型化を抑制し、配線収束性を高めると共に歩留まりを高めることが可能となる。
【００１１】
また、本発明の自動配置配線装置は、前記所定領域の前記端子密度を検出する端子密度検出手段を有し、前記配置手段は、前記端子密度検出手段の検出結果に基づき、前記機能セルを移動させて配置する構成としても良い。
【００１２】
係る構成によれば、前記所定領域の前記端子密度が、前記端子密度設定手段により設定された端子密度よりも高いときにのみ、前記機能セルを移動させて配線領域を設けることができる。このため、半導体集積回路のチップサイズの大型化を抑制できる。
【００１３】
また、前記配置手段は、前記端子密度検出手段の検出結果に基づき、前記機能セルを、Ｙ軸を対称軸として反転させて配置する構成としても良い。
【００１４】
係る構成によれば、前記所定領域の前記端子密度が、前記端子密度設定手段により設定された端子密度よりも高いときにのみ、前記機能セルを反転させて端子密度を下げることができる。
【００１５】
また、前記機能セル格納手段には、前記機能セルとＸ軸に関して対称な関係にある機能セルが格納されており、前記配置手段は、前記端子密度検出手段の検出結果に基づき、前記機能セルと、前記Ｘ軸に関して対称な関係にある機能セルのうち、いずれか一方を配置する構成としても良い。
【００１６】
係る構成によれば、例えば前記機能セルの上下に予め決まった配線が形成されている場合でも、前記機能セルを、Ｘ軸を対称軸として反転させた状態となるように配置することができる。
【００１７】
また、前記所定領域設定手段は、前記読込手段に読み込まれた前記接続情報より、前記所定領域を設定する構成とすることができる。
【００１８】
係る構成によれば、例えば前記接続情報から端子密度が高くなる部分を把握し、その部分を所定領域として設定することができる。
【００１９】
また、本発明の自動配置配線装置は、当該自動配置配線装置による配線処理において、配線の未収束部分を検出する未収束部検出手段を有し、前記所定領域設定手段は、前記未収束部検出手段により検出された未収束部分を含む領域を、前記所定領域に設定する構成としても良い。
【００２０】
係る構成によれば、前記配線未収束となる部分のみを所定領域とすることが可能となる。
【００２１】
また、前記所定領域は、その幅が、配置された機能セルと信号線とを接続する接続面のＸ軸方向の幅の略４倍である構成としても良い。
【００２２】
本発明の自動配置配線方法は、機能セルに係る情報が格納された機能セル格納手段と、前記機能セルの配置及び配線に関する設計規定に係る情報が格納された設計規定格納手段とを有し、前記設計規定に係る情報を用いて前記機能セルの自動配置配線を行う自動配置配線装置における自動配置配線方法において、機能セルの接続情報を読み込む読込手順と、隣接した前記機能セルの境界を含む所定領域を設定する領域設定手順と、前記所定領域内の端子密度を設定する端子密度設定手順と、前記接続情報と前記設計規定とに基づき前記機能セルを配置する配置手順とを有し、前記配置手順は、前記領域設定手順により設定された前記所定領域における端子密度が、前記端子密度設定手順により設定された端子密度以下となるように前記機能セルを配置する方法とすることができる。
【００２３】
係る方法によれば、信号配線を行う際に、半導体集積回路のチップサイズの大型化を抑制し、配線収束性を高めると共に歩留まりを高めることが可能となる。
【００２４】
本発明の自動配置配線プログラムは、機能セルが格納された機能セル格納手段と、前記機能セルの配置及び配線に係る設計規定が格納された設計規定格納手段とを有し、前記設計規定に係る情報を用いて前記機能セルの自動配置配線を行う自動配置配線装置における自動配置配線プログラムにおいて、コンピュータに、機能セルの接続情報を読み込む読込手順と、隣接した前記機能セルの境界を含む所定領域を設定する領域設定手順と、前記所定領域内の端子密度を設定する端子密度設定手順と、前記接続情報と前記設計規定とに基づき前記機能セルを配置する配置手順とを実行させ、前記配置手順は、前記領域設定手順により設定された前記所定領域における端子密度が、前記端子密度設定手順により設定された端子密度以下となるように前記機能セルを配置するプログラムとすることができる。
【００２５】
係るプログラムによれば、信号配線を行う際に、半導体集積回路のチップサイズの大型化を抑制し、配線収束性を高めると共に歩留まりを高めることが可能となる。
【００２６】
また、本発明の半導体集積回路は、上記の自動配置配線方法により自動配置配線された機能セルを有することを特徴とする半導体集積回路である。
【００２７】
係る半導体集積回路では、チップサイズの大型化が抑制され、歩留まりが高められるので、製造コストを低減することができる。
【発明の効果】
【００２８】
本発明によれば、半導体集積回路のチップサイズの大型化を抑制し、配線収束性を高めると共に歩留まりを高めることができる。
【発明を実施するための最良の形態】
【００２９】
本発明によれば、半導体集積回路の設計において機能セルの自動配置配線を行う際に、所定領域設定部により機能セルの有する端子が集中しそうな部分に所定領域を設定し、端子密度設定部によりこの所定領域における端子密度を設定する。そして本発明では、この所定領域内の端子密度が、設定された端子密度以下となるように、機能セルの配置を行う。
【００３０】
（第一の実施形態）
以下に図面を参照して本発明の第一の実施形態について説明する。
【００３１】
図２は、複数の機能セルが配置されてなる半導体集積回路２００を説明する図である。半導体集積回路２００は、機能セルが複数組み合わされて、配置配線されることにより構成されている。通常、半導体集積回路２００において、複数の機能セルは、図２に示すように格子状になるように配置される。そして、この機能セルの上下には例えば電源線（電源、グランド）やその他機能セル間の配線が施される配線領域が設けられる。
【００３２】
半導体集積回路２００のように、複数の機能セルを配置配線して半導体集積回路を設計する場合、この機能セルの配置配線を自動的に行う自動配置配線装置が用いられる。以下に図面を参照して本発明の自動配置配線装置について説明する。
【００３３】
図３は、本発明の第一の実施形態の自動配置配線装置３００の機能構成を示す機能ブロック図である。
【００３４】
本発明の自動配置配線装置３００は、本体部３１０、表示部３１２、入力部３１４とから構成されており、例えば一般のパーソナルコンピュータ（以下、ＰＣ）などによりその機能を実現することができる。この場合、表示部３１２は例えば液晶ディスプレイなどであり、入力部３１４は例えばキーボードや、マウスなどのポインティングデバイスなどである。また、表示部３１２と入力部３１４は、それぞれが適切な方法で本体部３１０の外部に接続されていても良いし、本体部３１０と一体化されていても良い。
【００３５】
本体部３１０は、機能セルが格納された機能セルライブラリ３２０、機能セルの自動配置配線における設定規定であるデザインルールが格納されたデザインルール格納部３３０、機能セルの接続情報であるネットリストを読み込むネットリスト読込部３４０、領域設定部３５０、端子密度設定部３６０、端子密度検出部３７０、配置部３８０とを有する。
【００３６】
自動配置配線装置３００において、配置部３８０は、ネットリスト読込部３４０により読み込まれたネットリストと、デザインルールに基づき機能セルを配置する。またこのとき配置部３８０は、領域設定部３５０により設定された所定領域内の端子密度が、端子密度設定部３６０により設定された端子密度以下となるように、機能セルを配置する。
【００３７】
以下に自動配置配線装置３００の各構成要素について説明する。
【００３８】
機能セルライブラリ３２０は、各種の機能セルが格納された機能セル格納部である。機能セルとは、例えば内部のレイアウト設計が済んでいるマクロセルなどであり、機能セルライブラリ３２０は、例えばこのマクロセルの集合であってもよい。機能セルライブラリ３２０に格納されている機能セルとしては、例えばＮＡＮＤ回路やフリップフロップ回路などの基本的なマクロセルであっても良く、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）などのメガセルであっても良い。
【００３９】
本実施形態において機能セルライブラリ３２０に格納されている機能セルは、例えば機能セル群１と機能セル群２とに分類することができる。機能セル群１と機能セル群２では、そのレイアウトがＸ軸に対称な関係となっている。すなわち、機能セル群１を、Ｘ軸を対称軸として反転させたレイアウトが機能セル群２のレイアウトとなっている。このとき機能セル群１に分類される各機能セルと、それに対応する機能セル群２に分類される各機能セルとは同一の機能を有する。
【００４０】
デザインルール格納部３３０には、半導体集積回路の製造プロセスにおいて認可されている半導体素子寸法や、配線金属の幅や間隔などを規定した設計規定であるデザインルールが格納されている。
【００４１】
ネットリスト読込部３４０は、ネットリストを読み込む。ネットリストとは、回路の接続状態を表現したデータであり、論理回路設計の結果である。ネットリストは、自動配置配線装置３００の外部より入力されるデータであっても良く、例えばネットリスト読込部３４０は記録媒体読込部であり、ネットリストは記録媒体に記録されていても良い。
【００４２】
領域設定部３５０は、例えば入力部３１４などにより入力された所定領域に係る情報に基づき、基板上に所定領域を設定する。この所定領域は、例えば表示部３１２に表示された半導体集積回路の配置図上で、入力部３１４であるマウスなどを用いて自動配置配線装置３００の利用者により予め指定されても良い。または所定領域は、基板上において所定領域とされる場所を示す座標情報がキーボードなどにより入力されて設定されても良い。
【００４３】
端子密度設定部３６０は、入力部３１２により入力される端子密度に係る情報に基づき、領域設定部３５０により設定された所定領域における端子密度を設定する。本実施形態では、所定領域に配置可能な端子の本数を設定することにより端子密度を設定したものとする。この場合、端子の本数は入力部３１４であるキーボードなどにより、自動配置配線装置３００の利用者により予め入力されても良い。
【００４４】
端子密度検出部３７０は、所定領域内の端子密度を検出する。配置部３８０は、端子密度検出部３７０の検出結果に基づき機能セルを配置する。配置部３８０における機能セルの配置についての詳細は後述する。
【００４５】
次に、図４を参照して自動配置配線装置３００における処理を説明する。図４は、第一の実施形態の自動配置配線装置３００における処理を説明するフローチャートの一例である。
【００４６】
自動配置配線装置３００は、まず機能セルライブラリ３２０とデザインルール格納部３３０より必要となる機能セルやデザインルールを読み込む（Ｓ４０１）。
【００４７】
ここで本実施形態では、自動配置配線装置３００の本体部３１０内に機能セルライブラリやデザインルールが予め格納されているものとしたが、機能セルライブラリやデザインルールは、例えば自動配置配線装置３００が配置配線処理を開始する時に、外部から取得されるものであっても良い。この場合は、機能セルライブラリとデザインルールは、例えば記録媒体に記録されており、自動配置配線装置３００において図示しない記録媒体読込部により読み込まれても良い。また、機能セルライブラリとデザインルールは、例えば自動配置配線装置３００の有する図示しない通信手段により、インターネット回線などを介して取得されても良い。
【００４８】
次に自動配置配線装置３００は、ネットリスト読込部３４０によりネットリストを読み込み、このネットリストに基づきタイミング制約を読み込む。さらに、自動配置配線装置３００は、領域設定部３５０により設定された所定領域と、端子密度設定部３６０により設定された端子密度を読み込む（Ｓ４０２）。
【００４９】
次に、配置部３８０は、Ｓ４０１、Ｓ４０２において読み込まれた各種条件に基づき、機能セルライブラリ３２０に格納された機能セルを用いて概略的な配置処理であるフロアプランを実施する（Ｓ４０３）。そして自動配置配線装置３００は、半導体集積回路のチップサイズ、Ｉ／Ｏ（以下、入出力）端子の配置位置、機能セルの配置位置を決定する。
【００５０】
次に自動配置配線装置３００は、本処理において設計される半導体集積回路の許容範囲内の電圧降下値を設定し、読み込んだネットリストを解析して電源配線を決定する（Ｓ４０４）。尚ここでの電源配線は、例えば図２に示す半導体集積回路２００のように、格子状に配置された機能セルの上下に設けられても良い。
【００５１】
配置部３８０は、電源配線が決定されると、Ｓ４０２において読み込んだ所定領域と端子密度とに基づく機能セルの配置を実施する（Ｓ４０５）。すなわち配置部３８０は、端子密度検出部３７０により所定領域内の端子密度を検出し、検出した端子密度と端子密度設定部３７０により設定された端子密度とを比較する。そして、検出された端子密度が設定された端子密度よりも高かった場合には、所定領域内における端子密度が設定された端子密度以下となるように機能セルの配置をしなおす。Ｓ４０５の処理の詳細は後述する。
【００５２】
次に自動配置配線装置３００は、ＣＴＳ（Clock Tree Synthesis）処理、タイミング最適化処理を実施する（Ｓ４０６）。そして、自動配置配線装置３００は、各機能セル間の信号配線を実施して自動配置配線処理を完了する（Ｓ４０７）。
【００５３】
ここで、機能セルの配置変更による配線未収束の回避について説明する。
【００５４】
図５は、自動配置配線における配線未収束を回避する方法の第一の参考例を示す図である。図５に示す方法では、端子の集中により端子密度があがり配線が混雑する場合に、隣接する二つの機能セルの間に間隔を空けている。
【００５５】
図６は、自動配置配線における配線未収束を回避する方法の第二の参考例を示す図である。図６に示す方法では、配線混雑が発生した場合に、隣接する二つの機能セルのうちの一方を、Ｙ軸を対称軸として反転（ミラーリング）させる。
【００５６】
このように、端子の位置を考慮して機能セルを配置することにより、配線混雑を解消することができ、配線の収束性を高めることができる。またこれらの方法では、個々の機能セルに対して配線のための配線専用領域を設ける必要がなく、必要最小限の配線領域で配線を収束させることができる。
【００５７】
本実施形態では上記の方法を実現させるために、各機能セルに対し、端子密度を制限する領域である端子密度制限領域を設定する。この端子密度制限領域が、上述した所定領域であり、領域設定部３５０により設定される領域となる。そして、この端子密度制限領域内に配置可能な端子の本数を設定することで、端子密度を制限する。図７は、本実施形態において機能セルに設定される領域を説明する図の例である。
【００５８】
図７に示す網かけ部分が本実施形態における端子密度制限領域Ｋである。本実施形態では、各機能セルにおいて、機能セルが配置されたときに他の機能セルと隣接する隣接部分を含む領域を端子密度制限領域Ｋとした。
【００５９】
ここで、端子密度制限領域の設定について具体例を挙げて説明する。図８は、端子密度制限領域の設定の具体例を示す図である。
【００６０】
本実施形態において、端子密度制限領域は、例えば各機能セル毎に設定されても良い。図８に示す例では、機能セルＡにおいて設定された端子密度制限領域をＫａとし、機能セルＢにおいて設定された端子密度制限領域をＫｂとした。このように、各機能セル毎に端子密度制限領域を設定しておけば、例えば機能セルＡと機能セルＢが隣接して配置された場合には、端子密度制限領域Ｋａと端子密度制限領域Ｋｂとを合わせた領域を端子密度制限領域Ｋとすることができる。
【００６１】
また、各機能セル毎に設定される端子密度制限領域は、自動配置配線装置３００の利用者によりポインティングデバイスなどにより指定され、領域設定部３５０がこの指定に基づき領域設定を行ってもよい。
【００６２】
さらに、この端子密度制限領域が設定された機能セルは、機能セルライブラリ３２０へ格納されても良い。これによれば、自動配置配線装置３００において自動配置配線処理を行う度に端子密度制限領域の設定を行う必要がなく、機能セルを配置した時点で自動的に端子密度制限領域Ｋが設定されるため、操作性が向上する。
【００６３】
また、本実施形態では、端子密度制限領域Ｋ内に配置可能に端子の本数を４本とした。この端子の本数は、上述したように、例えばキーボードやテンキーなどにより入力されて設定されても良い。
【００６４】
次に、図４に示すＳ４０５における処理について説明する。
【００６５】
Ｓ４０５において、端子密度検出部３７０により端子密度制限領域Ｋの端子密度が検出される。ここで、本実施形態において端子密度検出部３７０が検出するのは、端子密度制限領域Ｋ内に配置された端子の数である。端子密度検出部３７０は、例えば設定された端子密度制限領域Ｋの座標情報と、端子の配置された位置を示す座標情報とに基づき端子密度を検出することができる。本実施形態では、配置部３８０は、検出された端子の数が４本以上であったとき、図５、図６に示す方法により端子密度制限領域Ｋ内の端子密度を下げる配置を行う。
【００６６】
図９は、本実施形態における配線未収束を回避する方法を説明する第一の図である。図９に示す方法は、図５に示す参考例を自動配置配線装置３００において実施した場合を示している。
【００６７】
図９に示す例では、機能セル８１、８２、８３、８４のそれぞれの隣接部分が端子密度制限領域Ｋに配置されている。端子密度制限領域Ｋにおいて、機能セル８１と機能セル８２は、それぞれ２本の端子を有し、機能セル８３と機能セル８４は、それぞれ１本の端子を有する。よって、図９に示す例では、端子密度制限領域Ｋに６本の端子が配置されることとなる。そこで配置部３８０は、端子密度制限領域Ｋの端子数が４本以下とすべく、機能セル８２が端子密度制限領域Ｋの外へでるように機能セル８２を移動させて配置する。このことにより、端子密度制限領域Ｋにおける端子密度を下げることができる。また、端子密度制限領域Ｋには、機能セル８２を移動させた分の領域を配線領域Ｌとすることができるので、配線未収束を回避することができる。
【００６８】
ここで、図１０を参照して配線領域Ｌについて説明する。図１０は、配線領域Ｌを説明する図である。
【００６９】
配置部３８０が機能セル８２を移動させる場合に、配置部３８０は機能セル８２が端子密度制限領域Ｋの外へ出ることを前提とした上で、機能セル８２の移動量、すなわち配線領域Ｌにおける領域幅Ｗを決定する必要がある。そして、配線領域Ｌは、端子密度制限領域Ｋに配置されたすべての端子が配線されるように設けられることが好ましい。そこで、配置部３８０は、領域幅Ｗを、例えば端子Ｔの幅Ｔｗの２倍となるようにしても良い。係る構成とすれば、端子密度制限領域Ｋにおいて、配置されたすべての端子に必要な配線を施すことができる。なお、この領域幅Ｗは端子の幅Ｔｗに基づき決定されるのではなく、例えばデザインルールによって定められた配線の太さに基づき決定されても良い。すなわち配置部３８０は、例えば領域幅Ｗをデザインルールで定められた配線の太さの３倍程度とし、その分だけ機能セル８２を移動させても良い。このように配線領域Ｌをとることにより、各端子間においても適度な領域を設けられるため、各端子と信号線の接続方法をマルチビアとすることが可能となる。よって、各端子と信号線とがより確実に結線されるため、半導体集積回路の製造における歩留まりを高めることができる。
【００７０】
尚、図９に示す例では機能セル８２を移動させたが、移動させる機能セルはこれに限定されるものではなく、例えば機能セル８１を端子密度制限領域Ｋの外へ移動させても良い。また同様に、例えば機能セル８３と機能セル８４とを端子密度制限領域Ｋの外へ移動させても良い。
【００７１】
図１１は、本実施形態における配線未収束を回避する方法を説明する第二の図である。図１１に示す方法は、図６に示す参考例を自動配置配線装置３００において実施した場合を示している。
【００７２】
図１１に示す例では、配置部３８０は、まず始めに機能セル８２をＹ軸が対称軸となるように反転させる。すると、図１１に示すように、端子密度制限領域Ｋにおいて機能セル８２の有する端子の数は２本から１本となり、端子密度制限領域Ｋに配置された端子の数は全部で６本から５本となる。
【００７３】
配置部３８０は、さらに端子密度制限領域Ｋの端子数を減らすために、次に機能セル８４を、Ｘ軸を対称軸として反転させる処理を行う。以下に機能セル８４のＸ軸に対する反転について説明する。
【００７４】
複数の機能セルが配置された半導体集積回路では、格子状に配置された機能セルの上下に、各機能セルに電源を提供する電源線などが予め形成されている（図２参照）。このような場合、各機能セルはこの電源線を共有できるようにレイアウトされている。よって、例えば機能セル８４をＸ軸に対して反転させた状態で基板上に配置し、機能セル８４の上下に形成された電源線と接続すると、機能セル８４内の回路がショートするなどの不具合が発生する。
【００７５】
そこで本発明の自動配置配線装置３００では、機能セルライブラリ３２０において機能セル群１と、機能セル群１をＸ軸を対称軸として反転させたレイアウトの機能セル群２を有する構成としている。配置部３８０は、機能セルをＸ軸を対称軸として反転させたい場合には、機能セル群２から対応する機能セルを選択して配置する。このようにすれば機能セルをＸ軸に対して反転させて配置したときに発生する機能セル内の回路に不具合を回避できる。
【００７６】
図１１に示す例では、配置部３８０は、機能セル８４をＸ軸を対称軸として反転させたい場合であるから、機能セル８４を反転させたレイアウトの機能セル８４Ａを配置しなおす。こうすれば、端子密度制限領域Ｋにおいて機能セル８４Ａの有する端子は存在しなくなるため、端子密度制限領域Ｋに配置される合計の端子数を４本とすることができる。
【００７７】
図１１に示す例では、図９に示した配線領域Ｌを設けることなく端子密度制限領域Ｋに配置される端子の本数を４本にすることができる。よって、チップサイズを変更することなく端子密度制限領域Ｋにおける端子密度をさげることができ、配線未収束を回避することができる。
【００７８】
このような配置部３８０による機能セルの配置では、ネットリストと、デザインルールとに基づき、半導体集積回路における配線領域Ｌが必要最小限となるように機能セルを移動及び／又は反転させることが好ましい。これによれば、自動配置配線装置３００により設計される半導体集積回路において、必要以上の配線領域が設けられことがなく、チップサイズの大型化を抑制でき、半導体集積回路の製造コストの削減に貢献することができる。
【００７９】
さらに本発明の自動配置配線装置３００では、端子密度制限領域として、上で説明した機能セルの隣接部分だけではなく、さらに多くの機能セルを含む領域を設定することもできる。
【００８０】
以下に図１２を参照して複数の機能セルを含む端子密度制限領域について説明する。図１２（Ａ）は、半導体集積回路２００Ａにおける端子密度制限領域Ｈの設定を説明する図であり、図１２（Ｂ）は、端子密度制限領域Ｈにおける回路構成を説明する図である。
【００８１】
本実施形態の自動配置配線装置３００では、例えば半導体集積回路２００Ａにおいて、端子密度が高くなることが想定される場所を、予め端子密度制限領域に設定することができる。この設定は、自動配置配線装置３００の利用者によりなされるものである。利用者は、例えば表示部３１２に表示された半導体集積回路２００Ａから、端子密度が高くなると思われる領域を指定する。領域設定部３５０は、この指定を受けて、指定された領域を端子密度制限領域Ｈとして読み込み設定する。端子密度が高くなる場所として想定されるのは、例えば図１２（Ｂ）に示すようなエンコーダ回路を構成する機能セルが配置されている部分などである。
【００８２】
また、このようにして端子密度制限領域Ｈを設定した場合における端子数の設定では、例えば端子密度制限領域Ｈに配置される合計の端子数が設定されても良い。配置部３８０は、この領域設定と端子密度設定に基づき、端子密度制限領域Ｈにおける各機能セルの配置を行う。
【００８３】
係る構成によれば、利用者の所望の箇所において配線未収束を回避することが可能となり、半導体集積回路の製造時における歩留まりを向上させることができる。また、利用者の所望の箇所において任意に端子密度を設定することができる。よって利用者は、例えば所望の領域の端子密度を通常よりも低く設定し、後に新たにこの領域に追加回路を設けることが可能な状態としておくこともできる。
【００８４】
（第二の実施形態）
以下に図面を参照して本発明の第二の実施形態について説明する。図１３は、本発明の第二の実施形態の自動配置配線装置３００Ａの機能構成を示す機能ブロック図である。
【００８５】
本実施形態の自動配置配線装置３００Ａは、第一の実施形態の自動配置配線装置３００と比較して、本体部３１０Ａに端子数検出部３９０を有する点が相違する。よって、以下の説明では、本実施形態と第一の実施形態における相違点についてのみ説明し、自動配置配線装置３００Ａにおいて第一の実施形態の自動配置配線装置３００と同様の機能構成を有するものには第一の実施形態で用いた符号と同様の符号を付与し、説明を省略する。
【００８６】
本実施形態の自動配置配線装置３００Ａは、端子数検出部３９０を有する。端子数検出部３９０は、ネットリストに基づき各機能セルにおける端子数を検出する。
【００８７】
以下に図１４を参照して自動配置配線装置３００Ａにおける処理を説明する。図１４は、第二の実施形態の自動配置配線装置３００Ａにおける処理を説明するフローチャートの一例である。
【００８８】
自動配置配線装置３００Ａは、まず機能セルライブラリ３２０とデザインルール格納部３３０より必要となる機能セルやデザインルールを読み込む（Ｓ１４０１）。そして自動配置配線装置３００Ａは、ネットリスト読込部３４０によりネットリストを読み込み、このネットリストに基づきタイミング制約を読み込む。また、自動配置配線装置３００Ａは、端子密度設定部３６０により設定された端子密度設定を読み込む（Ｓ１４０２）。
【００８９】
次に自動配置配線装置３００Ａは、読み込まれたネットリストに基づき基板上に配置される機能セルを選択し、各機能セルの隣接部分において、端子密度制限領域を設定する（Ｓ１４０３）。ここでの端子密度制限領域の設定の詳細は後述する。
【００９０】
次に自動配置配線装置３００Ａでは、端子数検出部３９０がネットリストに基づき各機能セルの端子数を検出する。そして端子密度検出部３７０は、ここで検出された端子数と、Ｓ１４０３で設定された各端子密度制限領域における端子密度を検出する（Ｓ１４０４）。
【００９１】
Ｓ１４０５、Ｓ１４０６における処理は、図４のＳ４０３、Ｓ４０４と同様であるから説明を省略する。
【００９２】
次に自動配置配線装置３００Ａは、Ｓ１４０２において読み込まれた端子密度設定と、Ｓ１４０４において検出された各端子密度制限領域における端子密度とに基づき機能セルの配置を実施する（Ｓ１４０７）。すなわち配置部３８０は、Ｓ１４０２において読み込まれた端子密度設定と、Ｓ１４０４において検出された各端子密度制限領域における端子密度とを比較していき、端子密度制限領域の端子密度が、設定された端子密度以上である端子密度制限領域を検出する。そして配置部３８０は、検出された端子密度制限領域において、その端子密度が、端子密度設定により設定さたれ値以下となるように機能セルを配置しなおす。尚、端子密度を下げるための機能セルの配置については、第一の実施形態で説明した通りである。
【００９３】
Ｓ１４０８、Ｓ１４０９における処理は、図４のＳ４０６、Ｓ４０７と同様であるから説明を省略する。このようにして、本実施形態の自動配置配線装置３００Ａは自動配置配線処理を完了する。
【００９４】
ここで、以下にＳ１４０３における端子密度制限領域の設定について説明する。図１５は、第二の実施形態の自動配置配線装置３００Ａにおける端子密度制限領域Ｉの設定を説明する図である。
【００９５】
自動配置配線装置３００Ａでは、端子密度制限領域Ｉの設定を自動で行う。例えばＳ１４０２において選択された機能セルを機能セル１５１、１５２としたとき、自動配置配線装置３００Ａは、これらの機能セルが配置されたときの隣接部分を含む領域を端子密度制限領域Ｉに設定する。
【００９６】
ここで、機能セル１５１の構成は、端子Ｔ１の幅をＷｔ１とし、機能セル１５１と機能セル１５２との隣接面をＳとしたとき、端子Ｔ１から隣接面Ｓまでの距離が幅Ｗｔ１と略同一となっている。機能セル１５２の構成においても同様に、端子Ｔ２の幅をＷｔ２としたとき、端子Ｔ２から隣接面Ｓのまでの距離はＷｔ２である。
【００９７】
尚本実施形態の自動配置配線装置３００Ａは、このような各機能セルの構成を例えばデザインルールなどから読み取ることが可能であるものとした。
【００９８】
本実施形態の自動配置配線装置３００Ａは、このような各機能セルの構成に基づき、例えば図１５に示すように、端子密度制限領域Ｉの領域幅Ｗｉを、（２＊Ｗｔ１＋２＊Ｗｔ２）となるように設定しても良い。なお、この領域幅Ｗｉはこれに限定されるものではなく、例えば自動配置配線装置３００Ａは、各機能セルにおいて最も隣接面Ｓに近い位置にある端子を含むように端子密度制限領域を設定しても良い。そして自動配置配線装置３００Ａは、端子密度制限領域Ｉの高さＨｉは、例えば機能セル１５１、１５２の高さに加え、機能セル１５１、１５２の上下に形成された図示しない電源線を含むことのできる高さとしても良い。このように、本実施形によれば、端子密度制限領域の設定が自動的に行われるので、その操作を簡略化することができる。
【００９９】
（第三の実施形態）
以下に図面を参照して本発明の第三の実施形態について説明する。図１６は、本発明の第三の実施形態の自動配置配線装置３００Ｂの機能構成を示す機能ブロック図である。
【０１００】
本実施形態の自動配置配線装置３００Ｂは、第一の実施形態の自動配置配線装置３００と比較して、本体部３１０Ｂに未収束部検出部３９５を有する点で相違する。よって、以下の説明では、本実施形態と第一の実施形態における相違点についてのみ説明し、自動配置配線装置３００Ｂにおいて第一の実施形態の自動配置配線装置３００と同様の機能構成を有するものには第一の実施形態で用いた符号と同様の符号を付与し、説明を省略する。
【０１０１】
本実施形態の自動配置配線装置３００Ｂは、未収束部検出部３９５を有する。未収束部検出部３９５は、配置された機能セルにおいて信号線の配線を行った際に、配線未収束となった部分を検出する。
【０１０２】
以下に図１７を参照して自動配置配線装置３００Ｂにおける処理を説明する。図１７は、第三の実施形態の自動配置配線装置３００Ｂにおける処理を説明するフローチャートの一例である。
【０１０３】
自動配置配線装置３００Ｂは、Ｓ１７０１からＳ１７０６において、配線未収束を考慮せずに機能セルの自動配置配線処理を行う。自動配置配線装置３００Ｂは、機能セルライブラリ３２０とデザインルール格納部３３０より必要となる機能セルやデザインルールを読み込む（Ｓ１７０１）。
【０１０４】
次に自動配置配線装置３００Ｂは、ネットリスト読込部３４０によりネットリストを読み込み、このネットリストに基づきタイミング制約を読み込む（Ｓ１７０２）。
【０１０５】
次に、配置部３８０は、Ｓ１７０１、Ｓ１７０２において読み込まれた各種条件に基づき、機能セルライブラリ３２０に格納された機能セルを用いて概略的な配置処理であるフロアプランを実施する（Ｓ１７０３）。次に自動配置配線装置３００Ｂは、本処理において設計される半導体集積回路の許容範囲内の電圧降下値を設定し、読み込んだネットリストを解析して電源配線を決定する（Ｓ１７０４）。次に自動配置配線装置３００Ｂは、ＣＴＳ（Clock Tree Synthesis）処理、タイミング最適化処理を実施する（Ｓ１７０５）。そして、自動配置配線装置３００Ｂは、各機能セル間の信号配線を実施する（Ｓ１７０６）。
【０１０６】
次に自動配置配線装置３００Ｂでは、未収束部検出部３９５により、Ｓ１７０６における自動配線処理の処理結果に基づき配線未収束となった部分があるか否かを検出する（Ｓ１７０７）。自動配置配線装置３００Ｂは、Ｓ１７０７において配線未収束部分が検出されなかった場合、自動配置配線処理を完了する。
【０１０７】
自動配置配線装置３００Ｂは、Ｓ１７０７において配線未収束部分が検出された場合、配線未収束部分において端子密度制限領域と端子密度を設定する（Ｓ１７０８）。
【０１０８】
自動配置配線装置３００Ｂにおける端子密度制限領域の設定については、第二の実施形態で説明した方法と同様に行う。また自動配置配線装置３００Ｂは、Ｓ１７０６における処理結果に基づき、端子密度制限領域における適正な端子密度を算出して設定する。尚ここでいう適正な端子密度とは、配線未収束を回避できる端子密度を意味する。ここで自動配置配線装置３００Ｂは、例えばＳ１７０６の処理において配線が収束している機能セルの端子数を読み取り、この端子数に基づき適正な端子密度を設定しても良い。
【０１０９】
次に、自動配置配線装置３００Ｂは、端子密度制限領域と端子密度とに基づく機能セルの配置を実施する（Ｓ１７０９）。Ｓ１７０９における処理は、図４のＳ４０５と同様であるので説明を省略する。自動配置配線装置３００Ｂは、Ｓ１７０９の処理を実行した後、Ｓ１７０５へ戻り、Ｓ１７０７において配線未収束部が検出されなくなるまでＳ１７０５からＳ１７０９までの処理を繰り返す。
【０１１０】
本実施形態によれば、配線未収束部が検出された場合のみ、端子密度制限領域を設定するので、必要以上に自動配置配線処理を繰り返すことがなく、処理時間を短縮することができる。また、本実施形態によれば、端子密度の設定と端子密度制限領域の設定も自動的に行われるため、その操作を簡略化できる。
【０１１１】
次に、図１８を参照して上記各実施形態で説明した各機能を実現させる自動配置配線プログラムが記録された記録媒体を説明する。記録媒体４１０に記録された自動配置配線プログラム４００が、コンピュータ５００に読み込まれて実行されることにより、本実施形態で説明した各機能を実現することができる。
【０１１２】
例えばコンピュータ５００は、ＣＰＵ５１０、ハードディスク５２０、メモリ５３０、表示部５４０、入力部５５０、通信部５６０、記録媒体読み込み部５７０を備えている。ＣＰＵ５１０は演算処理装置であって、コンピュータ５００において実行される演算や処理を実行する。ハードディスク５２０は、データを格納する記憶手段であって、コンピュータ５００上で動作するアプリケーションや、このアプリケーションにより作成されたデータなどが格納されている。メモリ５３０には、コンピュータ５００に係る各種の設定値や、ＣＰＵ５１０での演算結果などが格納される。
【０１１３】
表示部５４０はディスプレイなどであり、コンピュータ５００において作成されたデータなどをユーザに閲覧可能に表示する。入力部５５０は例えばキーボードやマウスであって、ユーザの操作により各種データが入力される。通信部５６０は例えばネットワークコントロールユニットなどであり、コンピュータ５００が外部の装置と通信を行うためのものである。記録媒体読み込み部５７０は、各種記録媒体に記録されたデータやプログラムなどを読み込むものであり、例えばフロッピー（登録商標）ディスクドライバなどである。
【０１１４】
記録媒体４１０は、本実施形態の各機能を実現させる自動配置配線プログラム４００が記録されている。この自動配置配線プログラム４００は、記録媒体読み込み部５７０により読み込まれてＣＰＵ５１０において実行される。記録媒体４１０は、例えばフロッピー（登録商標）ディスクやＣＤ−ＲＯＭ（Compact Disk Read Only Memory）等であっても良く、コンピュータ７０において読み取り可能なに媒体であれば良い。また、自動配置配線プログラム４００はネットワークを介して通信部５６０により受信されて、ハードディスク５２０等に格納されても良い。
【０１１５】
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態にあげた構成、その他の要素との組み合わせなど、ここで示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【産業上の利用可能性】
【０１１６】
本発明は、機能セルが配置されて構成される半導体集積回路の自動配置配線に応用可能である。
【図面の簡単な説明】
【０１１７】
【図１】局所的に配線未収束となる例を説明する図である。
【図２】複数の機能セルが配置されてなる半導体集積回路２００を説明する図である。
【図３】本発明の第一の実施形態の自動配置配線装置３００の機能構成を示す機能ブロック図である。
【図４】、第一の実施形態の自動配置配線装置３００における処理を説明するフローチャートである。
【図５】自動配置配線における配線未収束を回避する方法の第一の参考例を示す図である。
【図６】自動配置配線における配線未収束を回避する方法の第二の参考例を示す図である。
【図７】本実施形態において機能セルに設定される領域を説明する図である。
【図８】端子密度制限領域の設定の具体例を示す図である。
【図９】本実施形態における配線未収束を回避する方法を説明する第一の図である。
【図１０】配線領域Ｌを説明する図である。
【図１１】本実施形態における配線未収束を回避する方法を説明する第二の図である。
【図１２】複数の機能セルを含む端子密度制限領域について説明する図である。
【図１３】本発明の第二の実施形態の自動配置配線装置３００Ａの機能構成を示す機能ブロック図である。
【図１４】第二の実施形態の自動配置配線装置３００Ａにおける処理を説明するフローチャートである。
【図１５】第二の実施形態の自動配置配線装置３００Ａにおける端子密度制限領域Ｉの設定を説明する図である。
【図１６】本発明の第三の実施形態の自動配置配線装置３００Ｂの機能構成を示す機能ブロック図である
【図１７】第三の実施形態の自動配置配線装置３００Ｂにおける処理を説明するフローチャートである。
【図１８】各実施形態で説明した各機能を実現させる自動配置配線プログラムが記録された記録媒体を説明する図である。
【符号の説明】
【０１１８】
２００、２００Ａ  半導体集積回路
３００、３００Ａ、３００Ｂ  自動配置配線装置
３１２  表示部
３１４  入力部
３２０  機能セルライブラリ
３３０  デザインルール格納部
３４０  ネットリスト格納部
３５０  領域設定部
３６０  端子密度設定部
３７０  端子密度検出部
３８０  配置部
４００  自動配置配線プログラム
４１０  記録媒体
【図１】
2008090456.tif 000003
【図２】
2008090456.tif 000004
【図３】
2008090456.tif 000005
【図４】
2008090456.tif 000006
【図５】
2008090456.tif 000007
【図６】
2008090456.tif 000008
【図７】
2008090456.tif 000009
【図８】
2008090456.tif 000010
【図９】
2008090456.tif 000011
【図１０】
2008090456.tif 000012
【図１１】
2008090456.tif 000013
【図１２】
2008090456.tif 000014
【図１３】
2008090456.tif 000015
【図１４】
2008090456.tif 000016
【図１５】
2008090456.tif 000017
【図１６】
2008090456.tif 000018
【図１７】
2008090456.tif 000019
【図１８】
2008090456.tif 000020