(57)【要約】    【課題】物理設計単位として矩形形状に加えて非矩形形状を扱い可能としてチップの小型化とコスト低減を図る。    【解決手段】フロアプラン処理部２８は、チップ３８内に非矩形領域を含む複数の回路ブロック４０，４２を配置するフロアプランを作成する。配置処理部３０はフロアプランに適合するようにチップ３８内に非矩形領域をもつ複数の非矩形回路ブロックの各々を複数の矩形形状に分割して配置する。配線処理部３２は複数の回路ブロックを相互に配線する。非矩形領域は、複数の分割矩形領域４０−１，４０−２の集合体で構成され、複数の矩形領域の対角頂点ａ１，ａ２及びｂ１，ｂ２を示す２次元座標値の集合を示すデータ構造を有する。回路ブロックに配置するセルについても非矩形領域を導入する。    【選択図】      図１
2006155119.tif 000002
【特許請求の範囲】
【請求項１】
チップ内に非矩形領域の回路ブロックを含む複数の回路ブロックを配置するフロアプランを作成するフロアプラン処理ステップと、
前記フロアプランに適合するように前記チップ内に前記非矩形領域の回路ブロックを複数の矩形領域に分割して配置する配置ステップと、
前記非矩形領域の回路ブロックを含む複数の回路ブロックを相互に配線する配線ステップと、
を備えたことを特徴とするＬＳＩ物理設計方法。
【請求項２】
請求項１記載のＬＳＩ物理設計方法に於いて、前記配置ステップは、前記非矩形領域を複数の分割矩形領域の集合体として扱い、前記複数の分割矩形領域の少なくとも１つが他の非矩形領域の分割矩形領域に重なっていた場合に、前記２つの非矩形領域が重なっていると判定して再配置により重なりを解消することを特徴とするＬＳＩ物理設計方法。
【請求項３】
請求項１記載のＬＳＩ物理設計方法に於いて、更に、前記非矩形領域をもつ回路ブロック内にセルを配置するセル配置ステップを備え、
前記セル配置ステップは、
配置されたセルが１又は複数の分割矩形領域に含まれている場合は前記非矩形領域に含まれていると判定し、
配置されたセルが複数の分割矩形領域のいずれにも含まれていない場合又は前記セルの一部が前記分割矩形領域に含まれている場合、前記セルは前記非矩形領域に含まれていないと判定することを特徴とするＬＳＩ物理設計方法。
【請求項４】
コンピュータに、
チップ内に非矩形領域の回路ブロックを含む複数の回路ブロックを配置するフロアプランを作成するフロアプラン処理ステップと、
前記フロアプランに適合するように前記チップ内に前記非矩形領域の回路ブロックを複数の矩形領域に分割して配置する配置ステップと、
前記非矩形領域の回路ブロックを含む複数の回路ブロックを相互に配線する配線ステップと、
を実行させることを特徴とするＬＳＩ物理設計プログラム。
【請求項５】
チップ内に非矩形領域の回路ブロックを含む複数の回路ブロックを配置するフロアプランを作成するフロアプラン処理部と、
前記フロアプランに適合するように前記チップ内に前記非矩形領域の回路ブロックを複数の矩形領域に分割して配置する配置処理部と、
前記非矩形領域をもつ回路ブロックを含む複数の回路ブロックを相互に配線する配線処理部と、
を備えたことを特徴とするＬＳＩ物理設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フロアプランに基づいて回路ブロック及びセルの配置と配線によりレイアウト設計を行うＬＳＩ物理設計方法、プログラム及び装置に関し、特に、回路ブロックやセル等の物理設計単位として非矩形領域を扱うＬＳＩ物理設計方法、プログラム及び装置に関する。
【背景技術】
【０００２】
近年、ＬＳＩ設計システムにおいては、高機能化によりチップサイズに対するゲート規模は大きくなっており、設計された回路図を物理的形状と寸法を持つ素子の配置配線に変換するＬＳＩ物理設計として知られたレイアウト設計において、効率的なチップ形状の使用方法が求められている。
【０００３】
従来のレイアウト設計にあっては、チップ、回路ブロック、セルといった階層に分けて並列的に設計作業を進める階層レイアウト設計が一般化されており、この階層レイアウト設計にあっては、回路ブロックやセルといった下位階層の物理設計単位の形状は矩形領域のみを扱うようにしている。
【特許文献１】特開平５−１８１９３６号
【特許文献２】特開平６−１２４３２１号
【特許文献３】特開平５−１６０３７５号
【特許文献４】特開平５−２４３３８３号
【特許文献５】特開平９−１４７００９号
【特許文献６】特開平１０−１８９７４６号
【特許文献７】特開２００３−３０３２１７号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、このような従来の階層レイアウト設計にあっては、回路ブロックやセルなどの物理設計単位として矩形領域のみを許容していたため、例えば回路ブロックの矩形領域にセルを配置した場合、セルの配置は矩形領域に均一に分散配置されるとは限らず、局所的にセル配置や配線が行われないデッドスペースを発生し易いという問題がある。
【０００５】
本発明は、物理設計単位として矩形領域に加えて非矩形領域を扱い可能としてチップを小型化してコスト低減を図るＬＳＩ物理設計方法、プログラム及び装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
図１は本発明の原理説明図である。本発明は、ＬＳＩ物理設計方法を提供するものであり、本発明のＬＳＩ物理設計方法は
チップ３８内に非矩形領域の回路ブロック（非矩形回路ブロック４０，４２）を含む複数の回路ブロックを配置するフロアプランを作成するフロアプラン処理ステップと、
フロアプランに適合するようにチップ内に非矩形領域の回路ブロック、例えば非矩形回路ブロック４０を複数の分割矩形領域４０−１，４０−２に分割して配置する配置ステップと、
非矩形領域の回路ブロックを含む複数の回路ブロックを相互に配線する配線ステップと、
を備えたことを特徴とする。
【０００７】
ここで、物理設計単位となる非矩形領域は、複数の分割矩形領域の集合体で構成され、複数の分割矩形領域の対角頂点を示す２次元座標値の集合を示すデータ構造を有する。
【０００８】
フロアプラン処理ステップは、チップ内に矩形領域の回路ブロックを複数配置した後に、空き領域をもつ隣接した一対の回路ブロックを検索し、一方の回路ブロックの向い合う辺の１部から自己の矩形空き領域を削除すると共に他方の回路ブロックの向い合う辺の残り部分から自己の矩形空き領域を削除して凹凸嵌合形状を持つ一対の非矩形領域を形成する。
【０００９】
フロアプラン処理ステップは、チップ内に矩形領域の回路ブロックを複数配置した後に、混雑領域と空き領域をもつ隣接した一対の回路ブロックを検索し、混雑領域をもつ回路ブロックの向い合う辺の１部に矩形領域を付加すると共に空き領域を持つ回路ブロックの向い合う辺の部分から付加した矩形領域に相当する形状を削除して凹凸嵌合形状を持つ一対の非矩形領域を形成する。
【００１０】
配置ステップは、非矩形領域を複数の分割矩形領域の集合体として扱い、複数の分割矩形領域の少なくとも１つが他の非矩形領域の分割矩形領域に重なっていた場合に、２つの非矩形領域が重なっていると判定して再配置により重なりを解消する。
【００１１】
本発明のＬＳＩ物理設計方法に於いて、更に、非矩形領域の回路ブロック内にセルを配置するセル配置ステップを備え、このセル配置ステップは、配置されたセルが１又は複数の分割矩形領域に含まれている場合は非矩形領域に含まれていると判定し、配置されたセルが複数の分割矩形領域のいずれにも含まれていない場合又はセルの一部が分割矩形領域に含まれている場合、セルは非矩形領域に含まれていないと判定する。
【００１２】
配置ステップは、更に、非矩形領域をもつセルを回路ブロック内に配置することを特徴とする。
【００１３】
本発明はＬＳＩ物理設計プログラムを提供するものであり、コンピュータに、
チップ内に非矩形領域の回路ブロックを含む複数の回路ブロックを配置するフロアプランを作成するフロアプラン処理ステップと、
フロアプランに適合するようにチップ内に非矩形領域の回路ブロックを複数の矩形領域に分割して配置する配置ステップと、
非矩形領域をもつ回路ブロックを含む複数の回路ブロックを相互に配線する配線ステップと、
を実行させることを特徴とする。
【００１４】
本発明は、ＬＳＩ物理設計装置２４を提供するものであり、
チップ３８内に非矩形領域の回路ブロックを含む複数の回路ブロックを配置するフロアプランを作成するフロアプラン処理部２８と、
フロアプランに適合するようにチップ３８内に非矩形領域をもつ回路ブロックを複数の矩形領域に分割して配置する配置処理部３０と、
非矩形領域をもつ回路ブロックを含む複数の回路ブロックを相互に配線する配線処理部３２と、
を備えたことを特徴とする。
【００１５】
なお、本発明の物理設計プログラム及び装置の詳細は、本発明のＬＳＩ物理設計方法の場合と基本的に同じになる。
【発明の効果】
【００１６】
本発明によれば、階層レイアウト設計における回路ブロックやセルといった物理設計単位の形状として、従来の矩形領域に加えて複数の分割矩形領域の集合体で構成される非矩形領域を取り扱うことができるため、例えば隣接する矩形領域の回路ブロックでデッドスペースが発生する場合には、各回路ブロックにつきデッドスペース分の面積をもつ矩形領域を交互に凹凸形状が向い合うように削除した後に付き合せることで、チップ面積を低減し、製造コストを下げることができる。
【００１７】
また非矩形領域を分割された矩形領域の集合体として扱うことで、非矩形領域であっても従来の矩形領域としての処理をそのまま利用でき、既存の階層レイアウト設計における非矩形領域となる物理設計単位の取扱いを容易に実現できる。
【００１８】
更に非矩形領域は、回路ブロックのみならず、回路ブロック内に配置されるセルについても非矩形領域としての取扱いを導入することで、セル内に生ずるデッドスペースを低減して回路ブロックの面積を小さくできる。
【００１９】
更に、矩形領域を持つ一対の回路ブロックの一方に配線混雑領域が局所的存在し、他方に空き領域が局所的に存在するような場合、混雑領域をもつ回路ブロックに矩形領域を付加して面積を拡大する同時に空き領域をもつ回路ブロックから拡大した矩形領域を削除して面積を小さくすることで非矩形領域に変更し、非矩形領域への変更により矩形領域の回路ブロックに生じた配線混雑によるエラーを解消できる。
【発明を実施するための最良の形態】
【００２０】
図２は、本発明のＬＳＩ物理設計方法が適用されるＬＳＩ設計システムの全体構成のブロック図である。図２において、ＬＳＩ設計システムは、システム仕様設計部１０、機能設計部１２、論理設計部１４、回路設計部１６、レイアウト設計部１８、設計検証部２０及びＬＳＩ製造部２２で構成されている。
【００２１】
システム仕様設計部１０は、目的とするＬＳＩのシステム仕様を実現するため、全体をどのような機能ブロックに分け、どのように動作するかを決定する。設計結果の妥当性を調べるためには動作シミュレータや方式シミュレータが使用される。
【００２２】
機能設計部は１２、機能ブロックの内部構造と動作を決定するレジスタトランスファーレベル（ＲＴレベル）の設計を行う。設計結果の検証には機能シミュレータが使用される。論理設計部１４はゲートレベルでの論理回路設計を行う。動作確認には論理シミュレータやタイミングシミュレータなどが使用される。
【００２３】
回路設計部１６はトランジスタ回路の設計を行う。設計した回路特性を調べるためには回路シミュレータが使用される。
【００２４】
レイアウト設計部１８は、回路図を物理的形状と寸法を持つ素子の配置配線に変換してマスクレイアウトを作成する物理設計であり、通常、階層レイアウト設計の手法が採用され、チップ内に複数の回路ブロックをフロアプランに従って配置した後、各ブロック間の配線を行い、複数の回路ブロックについて並列的にセル配置と配線を行う。セルの配置配線には、自動設計に対応した配置配線プログラムなどが使用される。
【００２５】
本発明にあっては、レイアウト設計部１８におけるチップ内に配置する下位階層の階層モジュール、具体的には回路ブロックの形状として、従来の矩形領域に加え新たに非矩形領域を導入して取り扱うようにしている。
【００２６】
設計検証部２０は、設計されたレイアウトについて設計寸法の規則違反を調べるデザインルールチェック（ＤＲＣ）、レイアウトからの回線結線情報を作り出す回線抽出、結線アルゴリズムを調べる結線チェック、トランジスタの寸法要求特性や電源配線の短絡有無を調べる電気ルールチェックなどがある。この設計検証部２０の処理が終了するとマスクデータが作成され、ＬＳＩ製造部２２に引き渡されて、ＬＳＩの製造が行われることになる。
【００２７】
図３は本発明によるＬＳＩ物理設計装置の機能構成のブロック図である。本発明のＬＳＩ物理設計装置２４に対してはネットリスト２６が設けられ、ネットリスト２６には図２に示した回路設計部１６で設計の済んだネットリストデータが格納されている。
【００２８】
ＬＳＩ物理設計装置２４は、フロアプラン処理部２８、配置処理部３０、配線処理部３２及び階層設計制御部３４で構成される。ＬＳＩ物理設計装置２４で処理の済んだレイアウト設計データは、設計検証が済んだ後にマスクパターンデータ３６として出力される。
【００２９】
ＬＳＩ物理設計装置２４に設けたフロアプラン処理部２８は、チップ内に非矩形領域を含む複数の回路ブロックを配置するためのフロアプランを作成する。配置処理部３０はフロアプランに適合するようにチップ内に回路ブロックを配置するもので、この場合に非矩形領域を持つ回路ブロックについては、複数の回路ブロックの各々を複数の矩形領域に分割してチップ内に配置する。配線処理部３２は、セル内に配置した複数の回路ブロックを相互に配線する。
【００３０】
更に配置処理部３０及び配線処理部３２は、チップ内に配置した各回路ブロックを対象にセルの配置と配線を行う。本発明にあっては、回路ブロック内に配置するセルについても、従来の矩形領域を持つセルに加え、本発明により新たに非矩形領域を持つセルを配置することができる。
【００３１】
階層設計制御部３４は、ＬＳＩ物理設計装置２４で階層レイアウト設計の手法を実現している。ＬＳＩの階層レイアウト設計は、まずフロアプラン処理部２８によりチップ内に下位階層の物理設計単位である回路ブロックをどのように配置するかを、データの流れと各回路ブロックの物理的大きさを推定して定める。
【００３２】
即ちフロアプランとは、与えられたｎ個のブロックを互いに重なることなく最小面積で矩形チップの内部に配置する問題であり、本発明はこのフロアプランにおいて、従来の矩形領域を持つ回路ブロックに加え、非矩形領域を持つ回路ブロックを取り扱うことができるようにしている。
【００３３】
ここで本発明で取り扱う非矩形領域とは、複数の分割矩形領域の集合体で構成される。このように本発明の矩形領域は複数の分割矩形領域の集合体で構成されているため、チップ内に対する配置については矩形領域に分割して扱うことで、従来の矩形領域の回路ブロックと同等に処理することができる。
【００３４】
フロアプラン処理部２８によりチップ内に回路ブロックを配置するフロアプランが作成されたならば、各回路ブロックにつきフロアプランが適合する端子位置と形状を持つように設計する。そして、配置処理部３０によりチップ内に回路ブロックを配置して、配線処理部３２により各ブロック間の配線を行うことになる。
【００３５】
階層レイアウト設計にはボトムアップ型とトップダウン型の２種類の手法がある。ボトムアップ型階層レイアウト設計は、階層モジュールとなる各回路ブロックの形状、電源配線、外部ピン配置などをボトムアップに順次決定して、チップに対しレイアウトの済んだモジュールを配置する手法である。
【００３６】
またトップダウン型階層レイアウト設計は、フロアプランの作成時に、階層モジュールとなる回路ブロックの形状、外部ピン配置を決定した後、チップレベルと階層モジュールレベルで並列的にレイアウト設計を行う手法である。このトップダウン型階層レイアウト設計は、トップダウンに階層モジュールの形状を決定するため、チップに最適な階層モジュールを生成することが可能である。
【００３７】
いずれの階層レイアウト設計にあっても、レイアウトをゲート数の小さな階層モジュール単位、即ち回路ブロック単位にレイアウト設計を行うことができるため、プログラムの処理時間が短く、少ないメモリ領域で効率よくレイアウト設計を実行することができる。
【００３８】
なお、通常のＬＳＩの階層レイアウト設計にあっては、チップ、回路ブロックという２階層で階層レイアウト設計を行っているが、更に大規模で且つ高性能のＬＳＩの階層レイアウト設計にあっては、チップ、サブチップ、ブロックという３階層で階層レイアウト設計を行う場合もある。
【００３９】
このような階層レイアウト設計における下位階層の物理設計単位につき、本発明は従来の矩形領域に加え非矩形領域を導入して取り扱うことができるようにしている。
【００４０】
図３におけるＬＳＩ物理設計装置２４は、例えば図４のようなコンピュータのハードウェア資源により実現される。図４のコンピュータにおいて、ＣＰＵ１００のバス１０１にはＲＡＭ１０２、ハードディスクコントローラ（ソフト）１０４、フロッピィディスクドライバ（ソフト）１１０、ＣＤ−ＲＯＭドライバ（ソフト）１１４、マウスコントローラ１１８、キーボードコントローラ１２２、ディスプレイコントローラ１２６、通信用ボード１３０が接続される。
【００４１】
ハードディスクコントローラ１０４はハードディスクドライブ１０６を接続し、本発明のＬＳＩ物理設計処理を実行するプログラムをローディングしており、コンピュータの起動時にハードディスクドライブ１０６から必要なプログラムを呼び出して、ＲＡＭ１０２上に展開し、ＣＰＵ１００により実行する。
【００４２】
フロッピィディスクドライバ１１０にはフロッピィディスクドライブ（ハード）１１２が接続され、フロッピィディスク（Ｒ）に対する読み書きができる。ＣＤ−ＲＯＭドライバ１１４に対しては、ＣＤドライブ（ハード）１１６が接続され、ＣＤに記憶されたデータやプログラムを読み込むことができる。
【００４３】
マウスコントローラ１１８はマウス１２０の入力操作をＣＰＵ１００に伝える。キーボードコントローラ１２２はキーボード１２４の入力操作をＣＰＵ１００に伝える。ディスプレイコントローラ１２６は表示部１２８に対して表示を行う。通信用ボード１３０は無線を含む通信回線１３２を使用し、ネットワークを介して外部の装置との間で通信を行う。
【００４４】
図５は本発明による非矩形領域の回路ブロックをチップに配置したレイアウト説明図である。図５（Ａ）は、チップ３８にフロアプランに基づいて作成した面積と形状を持つ２つの非矩形回路ブロック４０，４２を配置した場合であり、その間には非矩形回路ブロック４０，４２を接続する必要十分な配線領域４４を確保している。配線領域４４は、配線数と配線に用いる金属配線層数とに依存している。
【００４５】
図５（Ｂ）は、図５（Ａ）の非矩形回路ブロック４０を取り出している。非矩形回路ブロック４０は点線で示すように上下に分割された分割矩形領域４０−１，４０−２の集合で構成されている。分割矩形領域４０−１のデータ構造は、対角頂点ａ１，ａ２の２次元座標で定義される。また分割矩形領域４０−２のデータ構造も対角頂点ｂ１，ｂ２の２次元座標で定義される。
【００４６】
非矩形回路ブロック４０は分割矩形領域４０−１，４０−２の集合体であることから、そのデータ構造４７は、図５（Ｃ）に示すように、分割矩形領域４０−１，４０−２の対角頂点ａ１，ａ２及びｂ１，ｂ２を示す２次元座標値の集合を示すデータ構造
非矩形領域｛Ａ（ａ１，ａ２），Ｂ（ｂ１，ｂ２）｝
で表現することができる。
【００４７】
このような非矩形回路ブロック４０が分割矩形領域４０−１，４０−２の集合体で構成される点は、隣接する非矩形回路ブロック４２についても同様である。
【００４８】
図６は本発明による非矩形領域の形成に使用するデッドスペースを局所的に持つ矩形回路ブロックの配置説明図である。図５（Ａ）は、チップ３８について矩形領域を持つ矩形回路ブロック４６，４８をフロアプランに基づいて配線領域４４を介して配置した場合であり、矩形回路ブロック４６，４８にはそれぞれデッドスペース５０，５２が局所的に存在しており、デッドスペース５０は面積Ｓ１であり、またデッドスペース５２は面積Ｓ２であったとする。
【００４９】
このようなデッドスペース５０，５２を持つ隣接する矩形回路ブロック４６，４８につき、本発明にあっては、隣接する一方の矩形回路ブロック４６の向かい合う辺の一部から自己のデッドスペース５０の面積Ｓ１に相当する矩形空き領域を削除すると共に、他方の矩形回路ブロック４８の向かう合う辺の残りの部分からデッドスペース５２の面積Ｓ２に対応した矩形空き領域を削除することで、配線領域４４を介して凹凸嵌合形状を持つ一対の非矩形形状を持つ非矩形回路ブロックを形成する。
【００５０】
図６（Ｂ）は、図６（Ａ）の矩形回路ブロック４６から削除する削除矩形領域５４と矩形回路ブロック４８から削除する削除矩形領域５６の面積とサイズを示している。図６（Ｂ）において、削除矩形領域５４，５６は同じ横幅Ｗを持ち、高さについては凹凸嵌合形状の間に配線領域４４の幅ｗを必要とすることから、矩形回路ブロック４６，４８の高さＨにこれを加えた（Ｈ＋ｗ）としている。
【００５１】
このような横Ｗ×高さ（Ｈ＋ｗ）を持つ矩形領域につき、デッドスペース５０の面積Ｓ１とデッドスペース５２の面積Ｓ２の合計面積（Ｓ１＋Ｓ２）の面積を確保するように、削除矩形領域５４，５６の横幅Ｗとそれぞれの高さＨ１，Ｈ２を次式により求める。
【００５２】
【数１】
2006155119.tif 000003
図７は図６のデッドスペースに基づいて形成した本発明による非矩形領域を持つ回路ブロックの説明図である。図７（Ａ）は、矩形回路ブロック４６，４８から、それぞれのデッドスペース５０，５２に対応した面積Ｓ１，Ｓ２を持つ図６（Ｂ）で求めた削除矩形領域５４，５６を破線で示すように削除し、これによって非矩形領域を持つ非矩形回路ブロック４０，４２を形成する。
【００５３】
このように非矩形回路ブロック４０，４２が形成できたならば、削除矩形領域５４，５６の部分が相互に噛み合うように両者を近付けることで、図７（Ｂ）のように非矩形回路ブロック４０，４２の配置スペースを低減し、これにより図７（Ａ）の矩形回路ブロックで必要としていたチップ３８の横幅Ｗ１を、矩形回路ブロックとして取り扱うことで、横幅Ｗ２に小さくすることができる。このようにチップの面積を小さくできれば、その分、製造コストを下げることができ、ＬＳＩの低価格化を可能とする。
【００５４】
図８は図４（Ａ）の非矩形回路ブロックを配置したチップについて、更に、外部ピン配置、回路ブロック間の相互配線及びセル配置を行った状態の説明図である。図８において、チップ３８の周囲には外部ピン３５−１〜３５−４が配置され、これに対応して非矩形回路ブロック４０，４２のそれぞれに端子４５が配置され、外部ピン３５−１〜３５−４と端子４５の間、及び非矩形回路ブロック４０，４２の各端子４５間の配線が、配線領域４４を介して行われている。
【００５５】
続いて非矩形回路ブロック４０，４２の各々についてセル５５を配置し、セル５５の配置が済んだ後に、ブロック内におけるセル５５の配線処理を行うことになる。この非矩形回路ブロック４０，４２内のセル５５の配置及びその配線については、各回路ブロックについて並列的な処理として実行することができる。
【００５６】
図９は本発明による非矩形領域の形成に使用する混雑エリアと空きエリアを持った矩形回路ブロックの配置説明図である。図９において、チップ３８には、フロアプランに従って矩形回路ブロック５８，６０，６２，６４が配置されている。この矩形回路ブロック５８〜６４についてセルの配置配線を見積もることで、局所的な混雑エリア６６，６８，７０及び空きエリア７２，７４，７６が推定されている。
【００５７】
ここで、矩形回路ブロック５８の混雑エリア６６は矩形回路ブロック６２の空きエリア７４に相対しており、矩形回路ブロック５８の混雑エリア６８は矩形回路ブロック６０の空きエリア７２に相対し、更に矩形回路ブロック６０の混雑エリア７０は矩形回路ブロック６４の空きエリア７６に相対している。
【００５８】
そこで、隣接する矩形回路ブロックの相対する混雑エリアと空きエリアの組につき、混雑エリアを持つ矩形回路ブロック側の面積を拡張し、空きエリアを持つ矩形回路ブロック側の面積を減らすことで、混雑エリアの混雑度の解消を図る。
【００５９】
図１０（Ａ）は混雑エリア６６と空きエリア７４に基づき、矩形回路ブロック５８については矩形拡張領域７８を付加し、これに対応して矩形回路ブロック６２から矩形削除領域８０を削除する。また混雑エリア６８と空きエリア７２に対応して、矩形回路ブロック５８に矩形拡張領域８２を付加し、矩形回路ブロック６０からは削除矩形領域８４を削除する。更に、混雑エリア７０と空きエリア７６に対応し、矩形回路ブロック６０に矩形拡張領域８６を付加し、矩形回路ブロック６２からは削除矩形領域８８を削除する。
【００６０】
このような混雑エリアと空きエリアに対応した矩形領域の拡張と削除により、図１０（Ｂ）に示す非矩形領域を持った非矩形回路ブロック５８０，６００，６２０、更に矩形面積を小さくした矩形回路ブロック６４０とすることができ、混雑エリアの混雑度を解消することができる。
【００６１】
即ち、従来の矩形領域のみを扱う物理設計にあっては、混雑領域を解消するためにはチップ面積を拡大する必要があったが、本発明にあっては、隣接する矩形領域における混雑エリアと空きエリアを検索することで、空きエリアに相当する矩形領域を混雑エリアを持つ矩形回路ブロックに付加して非矩形回路ブロックとすることで、チップ面積を拡大することなく混雑度を解消することができる。
【００６２】
図１１は本発明におけるチップ内に非矩形領域を持つ回路ブロックを配置した場合の重なりチェックの説明図である。図１１（Ａ）はチップ３８に非矩形領域を持つ非矩形回路ブロック９０，９２を配置した場合であり、一部が重なって配置されている。
【００６３】
このような場合の重なりチェックについては、非矩形回路ブロック９０，９２をそれぞれ分割矩形領域９０−１〜９０−３及び９２−１〜９２−３に分割し、分割矩形領域９０−１〜９０−３と分割矩形領域９２−１〜９２−３の間で矩形領域同士の重なりチェックを行い、いずれかの分割矩形領域同士が重なっていれば、非矩形回路ブロック９０，９２は重なっているものと判断する。
【００６４】
この場合には分割矩形領域９０−２に対し分割矩形領域９２−１，９２−３が重なっていることから、非矩形回路ブロック９０，９２は重なっているものと判断する。そして重なりを判断した場合には、図１１（Ｂ）に示すように、非矩形回路ブロック９０，９２の間のスペーシング条件を拡大して、再度、回路ブロックを配置して重なりチェックを行うことで、回路ブロックの重なりを解消する。
【００６５】
もちろん図１１（Ａ）（Ｂ）のように、チップ３８に非矩形回路ブロック９０，９２を配置する際には、例えば非矩形回路ブロック９０を例にとると、そのデータ構造が３つの分割矩形領域９０−１〜９０−３の集合体であることから、まず分割矩形領域９０−１を配置し、次に分割矩形領域９０−２を配置し、最後に分割矩形領域９０−３を配置する通常の矩形回路ブロックの配置と同じ配置処理を繰り返すことになる。
【００６６】
図１２は本発明による非矩形領域を持つ回路ブロックに対しセルを配置した場合の領域に入るか否かをチェックするための説明図である。図１２において、チップ３８には非矩形領域を持つ非矩形回路ブロック９４が配置されており、この非矩形回路ブロック９４に対しセル９５，９６，９７，９８を配置している。このセル９５〜９８は全て非矩形回路ブロック９４の内部に配置しなければならない。
【００６７】
このようなセルの配置のチェックについても、非矩形回路ブロック９４を３つの分割矩形領域９５−１，９５−２，９５−３に分け、それぞれに対しセル９５〜９８がブロック内部に含まれるか否かのチェックを行う。
【００６８】
このブロック内部に含まれるか否かのチェックは、次のチェックを行う。
（１）セルがいずれかの分割矩形領域に含まれていれば、非矩形回路ブロックに含まれている。
（２）セルが複数の分割矩形領域に含まれていれば、非矩形回路ブロックに含まれている。
（３）セルがどの分割矩形領域にも含まれていない場合には、非矩形回路ブロックに含まれていない。
（４）セルの一部が１または複数のいずれかの分割矩形領域に含まれている場合は、非矩形回路ブロックに含まれていない。
【００６９】
このチェックルールを図１２について適用してみると、セル９５は分割矩形領域９５−１に含まれているため、非矩形回路ブロック９４に含まれている。セル９６は分割矩形領域９５−１，９５−２の両方に含まれているため、非矩形回路ブロック９４に含まれている。
【００７０】
セル９７は分割矩形領域９５−１〜９５−３のいずれにも含まれていないことから、非矩形回路ブロック９４に含まれていない。更にセル９８は、分割矩形領域９５−２，９５−３に一部が含まれていることから、非矩形回路ブロック９４には含まれていない。
【００７１】
このためセル９７，９８の２つについては、非矩形回路ブロック９４の内部に対する配置処理に失敗していることから、セル配置をやり直すことになる。
【００７２】
図１３は非矩形領域の回路ブロックを取り扱う本発明による階層レイアウト設計処理のフローチャートであり、トップダウン型を例にとっている。
【００７３】
図１３において、ステップＳ１にあっては、チップの下位階層となる物理設計単位、具体的には回路ブロックを矩形領域及び非矩形領域として、端子配置を含むチップのフロアプランを作成する。続いて、ステップＳ２でフロアプランに基づきチップ内に配置する回路ブロックを１つ取り出し、ステップＳ３で回路ブロックは非矩形領域か否かチェックする。
【００７４】
矩形領域の回路ブロックであった場合にはステップＳ５に進み、フロアプランに従ってチップ内に矩形領域を配置する。一方、非矩形領域であった場合にはステップＳ４に進み、非矩形領域を複数の矩形領域に分割した後に、ステップＳ５に進み、分割した矩形領域を順番にチップ内に配置する。
【００７５】
続いてステップＳ６で全ての回路ブロックが配置されたか否かチェックし、回路ブロックが残っていればステップ２に戻り、すべての回路ブロックの配置が済めば、ステップＳ７に進む。ステップＳ７にあっては、セル内に配置した回路ブロックが重なり合うか否かの物理チェックを行う。
【００７６】
この場合、非矩形領域を持つ非矩形回路ブロックについては、図１１に示したように、非矩形領域を複数の矩形領域に分割して重なり合いをチェックする。この物理チェックの結果、ステップＳ８でブロックが重なり合うブロック配置エラーが判別されると、ステップＳ１のフロアプランに戻って処理をやり直す。ブロック配置エラーがステップＳ８で判別されなければ、ステップＳ９に進み、既に配置した回路ブロック間の配線を行う。この配線の際には外部ピンとの配線も同時に行う。
【００７７】
続いてステップＳ１０で、チップ配置の済んだ回路ブロックを１つ取り出してセル配置を行う。このセル配置についても、回路ブロックに配置するセル形状について本発明にあっては従来の矩形領域のセルに加え非矩形領域を持つセルを配置することができる。セル配置が済むと、ステップＳ１１でセルを矩形領域または非矩形領域の回路ブロックの内部に配置したか否かの物理チェックを行う。
【００７８】
この物理チェックは、非矩形領域については、図１２に示したように非矩形領域を複数の矩形領域に分割してチェックする。ステップＳ１２でセル内部に配置できないセル配置エラーが判別されると、ステップＳ１０に戻り、再度、セル配置をやり直す。セル配置エラーがなければステップＳ１３に進み、セルの配線処理を実行する。
【００７９】
続いてステップＳ１４で全ての回路ブロックのセル配置配線の終了の有無をチェックし、終了していなければ、ステップＳ１０に戻って、次の回路ブロックを取り出して同様にセルの配置配線を繰り返す。全ブロックについてセルの配置配線が終了すれば、一連の処理を終了する。
【００８０】
図１４は非矩形領域を持つセルを取り扱う本発明によるセル配置処理のフローチャートである。図１４において、セル配置処理は、ステップＳ１で回路ブロック内に配置するセルを取り出し、ステップＳ２でセルは非矩形領域を持つか否かチェックする。矩形領域のセルであれば、ステップＳ４に進み、回路ブロック内に矩形領域のセルを配置する。
【００８１】
非矩形領域を持つセルであれば、ステップＳ３に進み、セルの非矩形領域を複数の分割矩形領域に分割した後、ステップＳ４で、分割した複数の矩形領域を順番に回路ブロック内に配置する。
【００８２】
このようなステップＳ１〜Ｓ４の処理を、ステップＳ５で全てのセルを配置するまで繰り返す。全てのセル配置が済むと、ステップＳ６で配置セルが重なり合うか否かの物理チェックを行う。この場合、非矩形領域を持つセルについては、図１１に示したように、複数の矩形領域に分割して重なりをチェックする。
【００８３】
ステップＳ７でセル重なるセル配置エラーが判別されるとステップＳ１に戻り、セルの作成からやり直す。ステップＳ７でセル配置エラーがなければ、ステップＳ８に進み、セルを回路ブロック内に配置したか否かの物理チェックを行う。
【００８４】
この物理チェックにおいて、回路ブロックが非矩形領域を持つ場合には、図１２に示したように、複数の矩形領域に分割して、セルがブロック内に含まれるか否かのチェックを行う。ステップＳ９でセルが回路ブロックに含まれずにセル配置エラーとなれば、ステップＳ１に戻り、回路ブロック内に対するセルの配置から処理をやり直す。セル配置エラーがなければ一連の処理を終了する。
【００８５】
この非矩形領域を持つセルの配置処理は、矩形領域のみを持つセルを扱っている図１３の階層レイアウト設計処理におけるステップＳ１０〜Ｓ１２の部分を図１４のセル配置処理に置き換えることで、回路ブロックとセルの両方について非矩形領域を扱った階層レイアウト設計を行うことができる。
【００８６】
また図１４のセル配置処理で使用する非矩形領域を持つセルの作成は、図６及び図７に示した矩形領域のデッドスペースに基づく非矩形領域の形成、あるいは図９及び図１０に示した混雑エリアと空きエリアに基づく非矩形領域の形成について、回路ブロックレベルの処理をセルレベルの処理に置き換えることで同等に適用できる。
【００８７】
また図１３の階層レイアウト処理はトップダウン型を例にとるものであったが、ボトムアップ型についても、本発明による非矩形領域を持つ回路ブロック及び非矩形領域を持つセルを同様に取り扱うことで対応することができる。
【００８８】
更に本発明はＬＳＩ物理設計プログラムを提供するものであり、このプログラムは図１３及び図１４に示したフローチャートに従った処理手順を持つことになる。
【００８９】
また上記の実施形態はＬＳＩ物理設計として階層レイアウト設計を例にとるものであったが、チップに対し階層モジュールに分けてレイアウト設計をする手法であれば、適宜のレイアウト設計につき物理設計単位を非矩形領域として扱う本発明をそのまま適用することができる。
【００９０】
なお本発明は上記の実施形態に限定されず、その目的と利点を損なうことのない適宜の変形を含む。更に本発明は上記の実施形態に示した数値による限定は受けない。
【００９１】
ここで本発明の特徴をまとめて列挙すると、次の付記のようになる。
【００９２】
（付記）
（付記１）
チップ内に非矩形領域の回路ブロックを含む複数の回路ブロックを配置するフロアプランを作成するフロアプラン処理ステップと、
前記フロアプランに適合するように前記チップ内に前記非矩形領域の回路ブロックを複数の矩形領域に分割して配置する配置ステップと、
前記非矩形領域の回路ブロックを含む複数の回路ブロックを相互に配線する配線ステップと、
を備えたことを特徴とするＬＳＩ物理設計方法。（１）
【００９３】
（付記２）
付記１記載のＬＳＩ物理設計方法に於いて、前記非矩形領域は、複数の分割矩形領域の集合体で構成され、前記複数の分割矩形領域の対角頂点を示す２次元座標値の集合を示すデータ構造を有することを特徴とするＬＳＩ物理設計方法。
【００９４】
（付記３）
付記１記載のＬＳＩ物理設計方法に於いて、前記フロアプラン処理ステップは、前記チップ内に矩形領域をもつ回路ブロックを複数配置した後に、空き領域ををもつ隣接した一対の回路ブロックを検索し、一方の回路ブロックの向い合う辺の１部から自己の矩形空き領域を削除すると共に他方の回路ブロックの向い合う辺の残り部分から自己の矩形空き領域を削除して凹凸嵌合形状を持つ一対の非矩形領域を形成することを特徴とするＬＳＩ物理設計方法。
【００９５】
（付記４）
付記1記載のＬＳＩ物理設計方法に於いて、前記フロアプラン処理ステップは、前記チップ内に矩形領域をもつ回路ブロックを複数配置した後に、混雑領域と空き領域をもつ隣接した一対の回路ブロックを検索し、混雑領域をもつ回路ブロックの向い合う辺の１部に矩形領域を付加すると共に空き領域を持つ回路ブロックの向い合う辺の部分から前記付加した矩形領域に相当する形状を削除して凹凸嵌合形状を持つ一対の非矩形領域を形成することを特徴とするＬＳＩ物理設計方法。
【００９６】
（付記５）
付記１記載のＬＳＩ物理設計方法に於いて、前記配置ステップは、前記非矩形領域を複数の分割矩形領域の集合体として扱い、前記複数の分割矩形領域の少なくとも１つが他の非矩形領域の分割矩形領域に重なっていた場合に、前記２つの非矩形領域が重なっていると判定して再配置により重なりを解消することを特徴とするＬＳＩ物理設計方法。（２）
【００９７】
（付記６）
付記１記載のＬＳＩ物理設計方法に於いて、更に、前記非矩形領域をもつ回路ブロック内にセルを配置するセル配置ステップを備え、
前記セル配置ステップは、
配置されたセルが１又は複数の分割矩形領域に含まれている場合は前記非矩形領域に含まれていると判定し、
配置されたセルが複数の分割矩形領域のいずれにも含まれていない場合又は前記セルの一部が前記分割矩形領域に含まれている場合、前記セルは前記非矩形領域に含まれていないと判定することを特徴とするＬＳＩ物理設計方法。（３）
【００９８】
（付記７）
付記１記載のＬＳＩ物理設計方法に於いて、前記配置ステップは、更に、非矩形領域のセルを前記回路ブロック内に配置することを特徴とするＬＳＩ物理設計方法。
【００９９】
（付記８）
コンピュータに、
チップ内に非矩形領域の回路ブロックを含む複数の回路ブロックを配置するフロアプランを作成するフロアプラン処理ステップと、
前記フロアプランに適合するように前記チップ内に前記非矩形領域の回路ブロックを複数の矩形領域に分割して配置する配置ステップと、
前記非矩形領域の回路ブロックを含む複数の回路ブロックを相互に配線する配線ステップと、
を実行させることを特徴とするＬＳＩ物理設計プログラム。（４）
【０１００】
（付記９）
付記８記載のＬＳＩ物理設計プログラムに於いて、前記非矩形領域は、複数の分割矩形領域の集合体で構成され、前記複数の分割矩形領域の対角頂点を示す２次元座標値の集合を示すデータ構造を有することを特徴とするＬＳＩ物理設計プログラム。
【０１０１】
（付記１０）
付記８記載のＬＳＩ物理設計プログラムに於いて、前記フロアプラン処理ステップは、前記チップ内に矩形領域の回路ブロックを複数配置した後に、空き領域をもつ隣接した一対の回路ブロックを検索し、一方の回路ブロックの向い合う辺の１部から自己の矩形空き領域を削除すると共に他方の回路ブロックの向い合う辺の残り部分から自己の矩形空き領域を削除して凹凸嵌合形状を持つ一対の非矩形領域を形成することを特徴とするＬＳＩ物理設計プログラム。
【０１０２】
（付記１１）
付記８記載のＬＳＩ物理設計プログラムに於いて、前記フロアプラン処理ステップは、前記チップ内に矩形領域をもつ回路ブロックを複数配置した後に、混雑領域と空き領域をもつ隣接した一対の回路ブロックを検索し、混雑領域をもつ回路ブロックの向い合う辺の１部に矩形領域を付加すると共に空き領域を持つ回路ブロックの向い合う辺の部分から前記付加した矩形領域に相当する形状を削除して凹凸嵌合形状を持つ一対の非矩形領域を形成することを特徴とするＬＳＩ物理設計プログラム。
【０１０３】
（付記１２）
付記８記載のＬＳＩ物理設計プログラムに於いて、前記配置ステップは、前記非矩形領域を複数の分割矩形領域の集合体として扱い、前記複数の分割矩形領域の少なくとも１つが他の非矩形領域の分割矩形領域に重なっていた場合に、前記２つの非矩形領域が重なっていると判定して再配置により重なりを解消することを特徴とするＬＳＩ物理設計プログラム。
【０１０４】
（付記１３）
付記８記載のＬＳＩ物理設計プログラムに於いて、更に、前記非矩形領域をもつ回路ブロック内にセルを配置するセル配置ステップを備え、
前記セル配置ステップは、
配置されたセルが１又は複数の分割矩形領域に含まれている場合は前記非矩形領域に含まれていると判定し、
配置されたセルが複数の分割矩形領域のいずれにも含まれていない場合又は前記セルの一部が前記分割矩形領域に含まれている場合、前記セルは前記非矩形領域に含まれていないと判定することを特徴とするＬＳＩ物理設計プログラム。
【０１０５】
（付記１４）
付記８記載のＬＳＩ物理設計プログラムに於いて、前記配置ステップは、更に、非矩形領域をもつセルを前記回路ブロック内に配置することを特徴とするＬＳＩ物理設計プログラム。
【０１０６】
（付記１５）
チップ内に非矩形領域の回路ブロックを含む複数の回路ブロックを配置するフロアプランを作成するフロアプラン処理部と、
前記フロアプランに適合するように前記チップ内に前記非矩形領域の回路ブロックを複数の矩形領域に分割して配置する配置処理部と、
前記非矩形領域をもつ回路ブロックを含む複数の回路ブロックを相互に配線する配線処理部と、
を実行させることを特徴とするＬＳＩ物理設計装置。（５）
【０１０７】
（付記１６）
付記１５記載のＬＳＩ物理設計装置に於いて、前記非矩形領域は、複数の分割矩形領域の集合体で構成され、前記複数の分割矩形領域の対角頂点を示す２次元座標値の集合を示すデータ構造を有することを特徴とするＬＳＩ物理設計装置。
【０１０８】
（付記１７）
付記１５記載のＬＳＩ物理設計装置に於いて、前記フロアプラン処理部は、前記チップ内に矩形領域の回路ブロックを複数配置した後に、空き領域をもつ隣接した一対の回路ブロックを検索し、一方の回路ブロックの向い合う辺の１部から自己の矩形空き領域を削除すると共に他方の回路ブロックの向い合う辺の残り部分から自己の矩形空き領域を削除して凹凸嵌合形状を持つ一対の非矩形領域を形成することを特徴とするＬＳＩ物理設計装置。
【０１０９】
（付記１８）
付記１５記載のＬＳＩ物理設計装置に於いて、前記フロアプラン処理部は、前記チップ内に矩形領域の回路ブロックを複数配置した後に、混雑領域と空き領域をもつ隣接した一対の回路ブロックを検索し、混雑領域をもつ回路ブロックの向い合う辺の１部に矩形領域を付加すると共に空き領域を持つ回路ブロックの向い合う辺の部分から前記付加した矩形領域に相当する形状を削除して凹凸嵌合形状を持つ一対の非矩形領域を形成することを特徴とするＬＳＩ物理設計装置。
【０１１０】
（付記１９）
付記１５記載のＬＳＩ物理設計装置に於いて、前記配置処理部は、前記非矩形領域を複数の分割矩形領域の集合体として扱い、前記複数の分割矩形領域の少なくとも１つが他の非矩形領域の分割矩形領域に重なっていた場合に、前記２つの非矩形領域が重なっていると判定して再配置により重なりを解消することを特徴とするＬＳＩ物理設計装置。
【０１１１】
（付記２０）（非矩形領域とセルの配置）
付記１５記載のＬＳＩ物理設計装置に於いて、更に、前記非矩形領域をもつ回路ブロック内にセルを配置するセル配置処理部を備え、
前記セル配置処理部は、
配置されたセルが１又は複数の分割矩形領域に含まれている場合は前記非矩形領域に含まれていると判定し、
配置されたセルが複数の分割矩形領域のいずれにも含まれていない場合又は前記セルの一部が前記分割矩形領域に含まれている場合、前記セルは前記非矩形領域に含まれていないと判定することを特徴とするＬＳＩ物理設計装置。
【０１１２】
（付記２１）
付記１５記載のＬＳＩ物理設計装置に於いて、前記配置処理部は、更に、非矩形領域をもつセルを前記回路ブロック内に配置することを特徴とするＬＳＩ物理設計装置。
【図面の簡単な説明】
【０１１３】
【図１】本発明の原理説明図
【図２】ＬＳＩ設計システムの全体構成のブロック図
【図３】本発明によるＬＳＩ物理設計装置の機能構成のブロック図
【図４】図３のＬＳＩ物理設計装置が適用されるコンピュータのハードウェア環境の説明図
【図５】本発明による非矩形領域をもつ回路ブロックを配置したレイアウト説明図
【図６】本発明による非矩形領域の形成に使用するデッドスペースをもつ矩形回路ブロックの配置説明図
【図７】図６のデッドスペースに基づいて形成した本発明による非矩形領域の説明図
【図８】図４の非矩形回路ブロックを配置したセルについて更に外部ピン配置、回路ブロック間の相互配線、及びセル配置を行った状態の説明図
【図９】本発明による非矩形領域の形成に使用する混雑エリアと空きエリアをもった矩形回路ブロックの配置説明図
【図１０】図９の混雑エリアと空きエリアに基づいて形成した本発明による非矩形領域の説明図
【図１１】本発明におけるチップ内に非矩形領域を配置した場合の重なりチェックの説明図
【図１２】本発明による非矩形領域をもつ回路ブロックを配置した場合の領域に入るか入らないかのチェックの説明図
【図１３】非矩形領域の回路ブロックを取り扱う本発明による階層レイアウト処理のフローチャート
【図１４】非矩形領域のセルを取り扱う本発明によるセル配置処理のフローチャート
【符号の説明】
【０１１４】
１０：システム仕様設計部
１２：機能設計部
１４：論理設計部
１６：回路設計部
１８：レイアウト設計部
２０：設計検証部
２２：ＬＳＩ製造部
２４：ＬＳＩ物理設計装置
２６：ネットリスト
２８：フロアプラン処理部
３０：配置処理部
３２：配線処理部
３４：階層設計制御部
３５−１〜３５−４：外部ピン
３６：マスクパターンデータ
３８：チップ
４０−１，４０−２，９０−１〜９０−３，９２−１〜９２−３，９５−１〜９５−３：分割矩形領域
４０，４２，４４，９０，９２，９４，５８０，６００，６２０，６４０：非矩形回路ブロック
４４：配線領域
４５：端子
４７：データ構造
４６，４８，５８，６０，６２，６４：矩形回路ブロック
５０，５２：デッドスペース
５４，５６，８０，８４，８８：削除矩形領域
５５，９６〜９８：セル
６６，６８，７０：混雑エリア
７２，７４，７６：空きエリア
７８，８２，８６：矩形拡張領域
【図１】
2006155119.tif 000004
【図２】
2006155119.tif 000005
【図３】
2006155119.tif 000006
【図４】
2006155119.tif 000007
【図５】
2006155119.tif 000008
【図６】
2006155119.tif 000009
【図７】
2006155119.tif 000010
【図８】
2006155119.tif 000011
【図９】
2006155119.tif 000012
【図１０】
2006155119.tif 000013
【図１１】
2006155119.tif 000014
【図１２】
2006155119.tif 000015
【図１３】
2006155119.tif 000016
【図１４】
2006155119.tif 000017