(57)【要約】【課題】回路設計を容易に行うことを可能とする。【解決手段】実施形態の設計支援装置は、選択部と、配置部とを有する。選択部は、回路設計において配置対象となるセルを選択する。配置部は、セルごとに、回路設計においてセルを配置する際に推奨する配置位置の条件を定義した定義情報に基づいて、配置対象のセルを条件を満たす位置に配置する。【選択図】図１
2019046249.tif 000002
【特許請求の範囲】
【請求項１】
回路設計において配置対象となるセルを選択する選択部と、
セルごとに、回路設計において前記セルを配置する際に推奨する配置位置の条件を定義した定義情報に基づいて、前記配置対象のセルを前記条件を満たす位置に配置する配置部と、
を有することを特徴とする設計支援装置。
【請求項２】
前記配置対象となるセルの配置画面を表示する表示部と、
前記配置画面におけるセルの配置位置を操作する操作部と、を更に有し、
前記配置部は、前記配置画面における配置位置が操作されたセルを前記条件を満たす位置に配置する、
ことを特徴とする請求項１に記載の設計支援装置。
【請求項３】
前記定義情報は、回路設計にかかる電源配線との相対位置を配置位置の条件として定義し、
前記配置部は、前記配置対象のセルと、当該セルを配置する回路の電源配線との相対位置が定義された条件を満たす位置に前記配置対象のセルを配置する、
ことを特徴とする請求項１または２に記載の設計支援装置。
【請求項４】
前記定義情報は、前記配置位置の条件を複数有し、
前記配置部は、前記複数の条件の中の少なくとも一つを満たす位置に前記配置対象のセルを配置する、
ことを特徴とする請求項３に記載の設計支援装置。
【請求項５】
前記配置部は、前記複数の条件を有する定義情報において、前記電源配線との相対位置が異なる条件の中からいずれか一つの条件に集約し、当該集約した条件を満たす位置に前記配置対象のセルを配置する、
ことを特徴とする請求項４に記載の設計支援装置。
【請求項６】
回路設計において配置対象となるセルを選択し、
セルごとに、回路設計において前記セルを配置する際に推奨する配置位置の条件を定義した定義情報に基づいて、前記配置対象のセルを前記条件を満たす位置に配置する、
処理をコンピュータに実行させることを特徴とする設計支援プログラム。
【請求項７】
回路設計において配置対象となるセルを選択し、
セルごとに、回路設計において前記セルを配置する際に推奨する配置位置の条件を定義した定義情報に基づいて、前記配置対象のセルを前記条件を満たす位置に配置する、
処理をコンピュータが実行することを特徴とする設計支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、設計支援装置、設計支援プログラムおよび設計支援方法に関する。
【背景技術】
【０００２】
従来、ＬＳＩ（Large  Scale  Integrated  Circuit）設計は、セルというある一定の回路機能を持った部品を組み合わせて、より複雑な回路機能を設計する。セルは、セル設計者が部品として作成し、ライブラリとしてＬＳＩ設計者に提供する。ＬＳＩ設計者は、セル設計者から提供されたセルを適宜配置してＬＳＩを設計する。このＬＳＩ設計では、レイアウト変更などの改版を経て最終的なセル配置が決められる。
【０００３】
ＬＳＩ設計の改版にかかる従来技術としては、レイアウト変更に伴って新たに追加される配線に必要な領域を確保するために、既配線のコンパクションを行なうことによって追加配線のための領域を確保する半導体集積回路の設計変更方法が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平２−１６５６５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の従来技術は、論理変更によるセル配置のレイアウト変更にかかる領域を確保するものであり、セル設計者によるセルの改版があった場合のレイアウト変更では電源配線とセルについての干渉エラーが生じる場合がある。したがって、電源配線とセルについての干渉エラーが生じないように回路設計を行うことが困難であるという問題がある。
【０００６】
１つの側面では、回路設計を容易に行うことを可能とする設計支援装置、設計支援プログラムおよび設計支援方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
第１の案では、設計支援装置は、選択部と、配置部とを有する。選択部は、回路設計において配置対象となるセルを選択する。配置部は、セルごとに、回路設計においてセルを配置する際に推奨する配置位置の条件を定義した定義情報に基づいて、配置対象のセルを条件を満たす位置に配置する。
【発明の効果】
【０００８】
本発明の１実施態様によれば、回路設計を容易に行うことができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態にかかる設計支援装置の機能構成例を示すブロック図である。
【図２】図２は、推奨位置の生成処理を例示するフローチャートである。
【図３】図３は、推奨位置のライブラリ化を説明する説明図である。
【図４】図４は、配置処理の一例を示すフローチャートである。
【図５】図５は、推奨位置情報の取得処理を例示するフローチャートである。
【図６】図６は、推奨位置のライブラリ定義を説明する説明図である。
【図７】図７は、配線等の取得処理を例示するフローチャートである。
【図８】図８は、推奨位置の検索処理を例示するフローチャートである。
【図９】図９は、推奨位置へのセルの移動を説明する説明図である。
【図１０】図１０は、複数セルの配置処理の一例を示すフローチャートである。
【図１１】図１１は、配置のチェック処理の一例を示すフローチャートである。
【図１２】図１２は、自動配置の処理の一例を示すフローチャートである。
【図１３】図１３は、推奨位置情報によるセル配置の一例を説明する説明図である。
【図１４−１】図１４−１は、リファイン処理の一例を示すフローチャートである。
【図１４−２】図１４−２は、リファイン処理の一例を示すフローチャートである。
【図１４−３】図１４−３は、リファイン処理の一例を示すフローチャートである。
【図１５】図１５は、推奨位置情報によるセル配置の一例を説明する説明図である。
【図１６】図１６は、実施形態にかかる設計支援装置のハードウエア構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、実施形態にかかる設計支援装置、設計支援プログラムおよび設計支援方法を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する設計支援装置、設計支援プログラムおよび設計支援方法は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【００１１】
図１は、実施形態にかかる設計支援装置の機能構成例を示すブロック図である。図１に示す設計支援装置１は、ＬＳＩ設計者がセル設計者から提供されたセルを適宜配置してＬＳＩを設計する回路設計を行う情報処理装置である。設計支援装置１は、例えばＰＣ（パーソナルコンピュータ）等を適用できる。図１に示すように、設計支援装置１は、制御部１０、入力部２０、表示部３０および記憶部４０を有する。
【００１２】
制御部１０は、ＣＰＵ（Central  Processing  Unit）等であり、回路設計にかかるプログラム４３を記憶部４０より読み出して実行することにより、回路設計にかかる処理を実行する。具体的には、制御部１０は、推奨位置計算部１１および配置処理部１２としての機能を提供する。
【００１３】
入力部２０は、各種情報を制御部１０に入力する。例えば、入力部２０は、ＬＳＩ設計者やセル設計者などのユーザの指示を受け付けて、受け付けた指示に従って、通信により外部装置から各種情報を取得し、取得した各種情報を制御部１０に入力する。例えば、入力部２０は、マウスやキーボードなどの操作受付デバイスであってもよい。
【００１４】
例えば、入力部２０は、回路設計において配置対象となるセルの選択を受け付け、受け付けた内容を制御部１０に入力する。すなわち、入力部２０は、選択部の一例である。また、入力部２０は、配置対象となるセルを配置する配置画面において、配置対象となるセルの配置位置にかかる操作を受け付け、受け付けた操作内容を制御部１０に入力する。すなわち、入力部２０は、操作部の一例である。
【００１５】
表示部３０は、ＬＣＤ（Liquid  Crystal  Display）やＣＲＴ（Cathode  Ray  Tube）などであり、制御部１０の制御のもと、各種情報を表示する。例えば、表示部３０は、回路設計において、配置対象となるセルを配置する配置画面を表示する。
【００１６】
記憶部４０は、ＨＤＤ（Hard  Disk  Drive）などであり、各種情報を記憶する。例えば、記憶部４０は、設計情報ＤＢ４１、ライブラリ情報ＤＢ４２およびプログラム４３を記憶する。
【００１７】
設計情報ＤＢ４１は、設計対象の回路について回路設計にかかる各種情報を格納するデータベースである。具体的には、設計情報ＤＢ４１は、設計対象の回路の理論接続情報、セル情報、配線ルール情報、配置情報、配線情報、ユーザ指示情報などの、回路設計にかかる情報を格納する。
【００１８】
例えば、理論接続情報は、回路内に配置されたセルの配線経路（ネット）による接続関係を示す情報である。セル情報は、回路内に配置されたセルにかかる情報であり、配置対象のセルとしてライブラリ情報ＤＢ４２のセルライブラリ情報から読み出された情報が記述される。配線ルール情報は、回路内において配線経路を形成するためのマスクデザインルールを示す情報である。配置情報は、回路内に配置されたセルなどの各要素の配置位置を示す情報である。配線情報は、回路内に配置されたセルなどの各要素間の配線を示す情報であり、例えば配線幅情報、Ｖｉａ情報などが含まれる。ユーザ指示情報は、ＬＳＩ設計者、セル設計者などのユーザが設計に際して指示した情報である。
【００１９】
ライブラリ情報ＤＢ４２は、セル設計者が設計した各種セルにかかる情報をライブラリとして格納するデータベースである。ＬＳＩ設計者は、ライブラリ情報ＤＢ４２としてライブラリ化された各種セルの中から配置対象とするセルを選んで回路内に配置することで、回路設計を行う。
【００２０】
具体的には、ライブラリ情報ＤＢ４２は、セル設計者が設計したセルごとに、セルライブラリ情報、推奨位置情報などを格納する。例えば、セルライブラリ情報は、回路構成、端子位置、電源配線の禁止位置などライブラリ化されたセルにかかる情報である。推奨位置情報は、回路設計においてセルを配置する際に推奨する配置位置（推奨位置とも呼ぶ）の条件を定義した情報である。すなわち、推奨位置情報は、定義情報の一例である。
【００２１】
推奨位置計算部１１は、ライブラリ情報ＤＢ４２にライブラリとして格納されたセル（ライブラリセル）ごとに推奨位置を計算する。次いで、推奨位置計算部１１は、計算した推奨位置をもとに、推奨位置の条件とする推奨位置情報を生成してライブラリ情報ＤＢ４２に格納する。
【００２２】
図２は、推奨位置の生成処理を例示するフローチャートである。図２に示すように、処理が開始されると、推奨位置計算部１１は、設計情報ＤＢ４１の配線情報をもとに、回路における電源配線のマップ（電源配線ＭＡＰ）を作成する（Ｓ１）。次いで、推奨位置計算部１１は、ライブラリ情報ＤＢ４２においてライブラリとして格納されたライブラリセルの中から処理対象とするライブラリセルを選択し、処理対象とするライブラリセルのセルライブラリ情報を取得する（Ｓ２）。
【００２３】
次いで、推奨位置計算部１１は、処理対象とするライブラリセルを、電源配線ＭＡＰを作成した回路における所定の初期位置に配置する（Ｓ３）。具体的には、推奨位置計算部１１は、Ｘ方向、Ｙ方向における初期位置に処理対象とするライブラリセルを配置する。なお、ライブラリセルの回転方向は、０度、９０度、１８０度、２７０度の回転に対応する回転Ｃｏｄｅ（０度＝０、９０度＝１、１８０度＝２、２７０度＝３）の初期値（例えば０）とする。
【００２４】
次いで、推奨位置計算部１１は、設計情報ＤＢ４１の配線ルール情報と、処理対象とするライブラリセルのセルライブラリ情報とをもとに、マスクデザインのルールチェックを実施する（Ｓ４）。具体的には、推奨位置計算部１１は、処理対象とするライブラリセルを所定の位置に配置した際に、マスクデザインの電源配線と、セルライブラリにおける電源配線の禁止位置とが重複（干渉）するか否かをチェックする。すなわち、Ｓ４では、処理対象とするライブラリセルと、電源配線との干渉エラーの有無をチェックする。
【００２５】
次いで、推奨位置計算部１１は、Ｓ４のルールチェックにおけるエラーの有無を判定する（Ｓ５）。エラーがある場合（Ｓ５：ＮＯ）、すなわち、処理対象とするライブラリセルと、電源配線との干渉エラーがある場合、推奨位置計算部１１は、Ｓ９へ処理を進める。
【００２６】
エラーが無い場合（Ｓ５：ＹＥＳ）、推奨位置計算部１１は、処理対象とするライブラリセルの配置位置をメモリに記憶する（Ｓ６）。これにより、推奨位置計算部１１は、処理対象とするライブラリセルと電源配線との干渉エラーのない推奨位置をメモリに記憶する。
【００２７】
次いで、推奨位置計算部１１は、回路における電源情報、すなわちマスクデザインの電源配線とセルとの距離を測定してメモリに記憶する（Ｓ７）。これにより、推奨位置計算部１１は、処理対象とするライブラリセルの推奨位置における電源配線とセルとの距離を推奨位置の条件としてメモリに記憶する。
【００２８】
次いで、推奨位置計算部１１は、距離を測定して記憶する処理（Ｓ７）が全電源情報について終了したか否かを判定し（Ｓ８）、処理が終了していない場合（Ｓ８：ＮＯ）はＳ７へ処理を戻す。
【００２９】
全電源情報について終了した場合（Ｓ８：ＹＥＳ）、推奨位置計算部１１は、処理対象とするライブラリセルがＸ方向のＢｕｍｐ位置（電源配線の繰り返し最小単位）であるか否かを判定する（Ｓ９）。Ｘ方向のＢｕｍｐ位置でない場合（Ｓ９：ＮＯ）、推奨位置計算部１１は、処理対象とするライブラリセルの配置位置をＸ方向に所定の基準位置分ずらして（Ｓ１０）、Ｓ４へ処理を戻す。
【００３０】
Ｘ方向のＢｕｍｐ位置である場合（Ｓ９：ＹＥＳ）、推奨位置計算部１１は、処理対象とするライブラリセルがＹ方向のＢｕｍｐ位置であるか否かを判定する（Ｓ１１）。Ｙ方向のＢｕｍｐ位置でない場合（Ｓ１１：ＮＯ）、推奨位置計算部１１は、処理対象とするライブラリセルの配置位置をＹ方向に所定の基準位置分ずらして（Ｓ１２）、Ｓ４へ処理を戻す。
【００３１】
Ｙ方向のＢｕｍｐ位置である場合（Ｓ１１：ＹＥＳ）、推奨位置計算部１１は、処理対象とするライブラリセルについて全回転Ｃｏｄｅ（コード）でのＳ４〜Ｓ１２の処理が終了したか否かを判定する（Ｓ１３）。全回転コードでの処理が終了していない場合（Ｓ１３：ＮＯ）、推奨位置計算部１１は、処理が未実施の回転コードに変更して処理対象とするライブラリセルを回転させ（Ｓ１４）、Ｓ３へ処理を戻す。
【００３２】
全回転コードでの処理が終了した場合（Ｓ１３：ＹＥＳ）、推奨位置計算部１１は、ライブラリ情報ＤＢ４２においてライブラリとして格納されたライブラリセルについて処理が終了したか否かを判定する（Ｓ１５）。全ライブラリについて処理が終了していない場合（Ｓ１５：ＮＯ）、推奨位置計算部１１は、Ｓ２へ処理を戻し、他のライブラリセルを処理対象として処理を継続する。
【００３３】
全ライブラリについて処理が終了した場合（Ｓ１５：ＹＥＳ）、推奨位置計算部１１は、ライブラリセルごとにメモリに記憶した推奨位置および距離をもとに、ライブラリセルごとの推奨位置情報を生成してライブラリ情報ＤＢ４２に格納する。このように、ライブラリセルごとの推奨位置がライブラリ化されてライブラリ情報ＤＢ４２に格納される。
【００３４】
図３は、推奨位置のライブラリ化を説明する説明図である。図３に示すように、回路の電源配線５１と、処理対象のセル５２とについては、マスクデザインルールのチェックを実施することで、電源配線５１と、セル５２における禁止位置５３との干渉の有無がチェックされる。これにより、互いに干渉しない、電源配線５１に対するセル５２の推奨位置とその距離（図示例では０．０５ｎｍ）が求められ、推奨位置の条件を定義した推奨位置情報がライブラリ情報ＤＢ４２に格納される。
【００３５】
具体的には、ライブラリ情報ＤＢ４２において、セル名「ＡＡＡ」であるセル５２の推奨位置情報が「ＣＥＬＬ＿ＳＴＡＲＴ」から「ＣＥＬＬ＿ＥＮＤ」の間で記述される。「ＰＬＡＣＥ＿ＧＵＩＤＥ＿ＲＯＴ」は、セル５２の配置時の回転コードを定義する。「ＰＬＡＣＥ＿ＧＵＩＤＥ＿ＫＩＮＤ」は、「ＷＩＲＥ」や「ＶＩＡ」などの種別を定義する。「ＰＬＡＣＥ＿ＧＵＩＤＥ＿ＰＯＷＥＲ」は、「ＶＳＳ」などの電位を定義する。「ＰＬＡＣＥ＿ＧＵＩＤＥ＿ＬＡＹＥＲ」は、「ＭＥＴＡＬ７」などの配線層を定義する。「ＰＬＡＣＥ＿ＧＵＩＤＥ＿ＤＩＲ」は、セル５２の「ＰＬＡＣＥ＿ＧＵＩＤＥ＿ＫＩＮＤ」、「ＰＬＡＣＥ＿ＧＵＩＤＥ＿ＰＯＷＥＲ」、「ＰＬＡＣＥ＿ＧＵＩＤＥ＿ＬＡＹＥＲ」で定義された電源情報との距離測定方向を定義する。「ＰＬＡＣＥ＿ＧＵＩＤＥ＿ＷＩＤＴＨ」は、電源配線５１の配線幅を定義する。「ＰＬＡＣＥ＿ＧＵＩＤＥ＿ＤＩＳＴＡＮＣＥ」は、電源配線５１とセル５２との配置方向における距離を定義する。
【００３６】
図示例では、セル５２の推奨位置について、回転コードを「０」、電位をＶＳＳ、配線層をＭＥＴＡＬ７、配線幅を０．１ｎｍ、電源配線５１とセル５２との配線方向（Ｘ方向）における距離を０．０５ｎｍとする条件が定義されている。
【００３７】
図１に戻り、配置処理部１２は、回路設計において、ライブラリ情報ＤＢ４２のライブラリセルの中から配置処理部１２における操作入力により選択された配置対象とするセルの配置にかかる配置処理を実行する。具体的には、配置処理部１２は、ライブラリ情報ＤＢ４２より取得した配置対象とするセルの推奨位置情報に基づいて、配置対象のセルを推奨位置情報において定義された条件を満たす位置に配置する。
【００３８】
図４は、配置処理の一例を示すフローチャートである。図４に示すように、処理が開始されると、配置処理部１２は、入力部２０における操作入力により、ライブラリ情報ＤＢ４２のライブラリセルの中から未配置のセルの選択を受け付ける（Ｓ２０）。
【００３９】
次いで、配置処理部１２は、ライブラリ情報ＤＢ４２を参照して選択されたセルにかかる推奨位置情報の有無を確認し、推奨位置にかかる条件が定義された配置推奨位置セルであるか否かを判定する（Ｓ２１）。
【００４０】
推奨位置にかかる条件が定義されておらず、配置推奨位置セルでない場合（Ｓ２１：ＮＯ）、配置処理部１２は、入力部２０における操作入力により設定された座標にセルの配置座標を設定し（Ｓ２２）、Ｓ３０へ処理を進める。
【００４１】
推奨位置にかかる条件が定義された配置推奨位置セルである場合（Ｓ２１：ＹＥＳ）、配置処理部１２は、ライブラリ情報ＤＢ４２を参照して選択されたセルにかかる推奨位置情報を取得する（Ｓ２３）。
【００４２】
図５は、推奨位置情報の取得処理を例示するフローチャートである。図５に示すように、処理が開始されると、配置処理部１２は、選択されて配置（チェック）するセルのセル名を取得する（Ｓ４０）。次いで、配置処理部１２は、「ＣＥＬＬ＿ＳＴＡＲＴ」を参照してセル名に応じた推奨位置情報へアクセスする（Ｓ４１）。
【００４３】
次いで、配置処理部１２は、「ＣＥＬＬ＿ＳＴＡＲＴ」から「ＣＥＬＬ＿ＥＮＤ」の間で記述される、セル名に応じた推奨位置情報のパラメータを順次取得する（Ｓ４２）。次いで、配置処理部１２は、「ＣＥＬＬ＿ＥＮＤ」までの推奨位置情報を全て取得したか否かを判定し（Ｓ４３）、取得していない場合（Ｓ４３：ＮＯ）はＳ４２へ処理を戻す。
【００４４】
推奨位置情報を全て取得した場合（Ｓ４３：ＹＥＳ）、配置処理部１２は、取得した推奨位置情報が複数の条件を有するか否かを判定する（Ｓ４４）。
【００４５】
図６は、推奨位置のライブラリ定義を説明する説明図である。図６に示すように、推奨位置情報４２ａ、４２ｂのように配線やビアに対するセルの推奨位置の条件が一つの場合もあれば、推奨位置情報４２ｃのように複数の条件もある。例えば、推奨位置情報４２ｃでは、セル名「ＡＡＡ」について、「ＤＥＦＩＮ＿ＳＴＡＲＴ」の「１」〜「３」による３つの条件が定義されている。また、推奨位置情報４２ｃの「ＤＥＦＩＮ＿ＣＯＮＤＩＴＩＯＮ」では、「１」〜「３」の条件が互いにａｎｄ条件なのかｏｒ条件なのかが定義されている。図示例では、「１」〜「３」の複数条件については、（「１」ｏｒ「２」）ａｎｄ「３」を満たすものとして定義されている。
【００４６】
複数条件でない場合（Ｓ４４：ＮＯ）、配置処理部１２は、処理を終了する。複数条件である場合（Ｓ４４：ＹＥＳ）、配置処理部１２は、ａｎｄ条件またはｏｒ条件を解釈する順位でパラメータについてソートした結果をメモリに格納する（Ｓ４５）。次いで、配置処理部１２は、全パラメータをソートしたか否かを判定し（Ｓ４６）、全パラメータをソート済でない場合（Ｓ４６：ＮＯ）はＳ４５へ処理を戻す。
【００４７】
次いで、配置処理部１２は、メモリに格納された複数条件のパラメータについて、ａｎｄ条件またはｏｒ条件に基づく解釈を実施して結果をメモリに格納する（Ｓ４７）。これにより、複数の条件を満たす推奨位置情報がメモリに格納される。
【００４８】
図４に戻り、Ｓ２３に次いで、配置処理部１２は、取得した推奨位置情報の条件を満たす配置候補位置を検索する（Ｓ２４）。次いで、配置処理部１２は、候補位置内の推奨位置情報と一致した配線等を取得する取得処理を実施する（Ｓ２５）。
【００４９】
図７は、配線等の取得処理を例示するフローチャートである。図７に示すように、処理が開始されると、配置処理部１２は、推奨位置情報における条件毎の推奨距離（電源配線５１との距離）、電位、配線層等の各パラメータ値を取得する（Ｓ５０）。
【００５０】
次いで、配置処理部１２は、取得した各パラメータに含まれる、配置（チェック）する回転コードと、セルの回転方向とが一致しているか否かを判定する（Ｓ５１）。一致しない場合（Ｓ５１：ＮＯ）、配置処理部１２は、Ｓ５５へ処理を進める。
【００５１】
一致する場合（Ｓ５１：ＹＥＳ）、配置処理部１２は、推奨距離以外について同一条件の検索を実施したか否かを判定する（Ｓ５２）。同一条件の検索を実施した場合（Ｓ５２：ＹＥＳ）、配置処理部１２は、Ｓ５５へ処理を進めることで、同一条件での再検索を抑止する。
【００５２】
同一条件の検索を実施していない場合（Ｓ５２：ＮＯ）、配置処理部１２は、セル枠を推奨距離分拡大して検索領域とする（Ｓ５３）。次いで、配置処理部１２は、検索領域内の条件（電位、配線層、配線幅等）にあった配線等の回路の情報を設計情報ＤＢ４１より取得し、メモリに格納する（Ｓ５４）。
【００５３】
次いで、配置処理部１２は、推奨位置情報における全ての条件の情報を取得したか否かを判定し（Ｓ５５）、取得していない場合（Ｓ５５：ＮＯ）、Ｓ５０へ処理を戻す。なお、配置処理部１２は、取得した場合（Ｓ５５：ＹＥＳ）は処理を終了する。
【００５４】
図４に戻り、配置処理部１２は、Ｓ２３、Ｓ２５で取得した情報に対して、セルを配置する推奨位置を検索する検索処理を実施する（Ｓ２６）。
【００５５】
図８は、推奨位置の検索処理を例示するフローチャートである。図８に示すように、処理が開始されると、配置処理部１２は、検索回数が１回目であるか否かを判定する（Ｓ６０）。例えば、初回の処理では検索回数が１回目であることから肯定判定となる。
【００５６】
検索回数が１回目である場合（Ｓ６０：ＹＥＳ）、配置処理部１２は、配置候補位置に対して、推奨位置の最大推奨距離内の全配置グリッドの情報を集める（Ｓ６１）。なお、検索回数が１回目でない場合（Ｓ６０：ＮＯ）、配置処理部１２は、検索領域を拡大し、拡大部分の全配置グリッドの情報を集める（Ｓ６２）。
【００５７】
Ｓ６１、Ｓ６２に次いで、配置処理部１２は、配置候補位置に合致した配置グリッドを集めた全配置グリッドの中から抽出する（Ｓ６３）。次いで、配置処理部１２は、推奨位置の条件について、全ての条件の情報を取得したか否かを判定し（Ｓ６４）、取得していない場合（Ｓ６４：ＮＯ）はＳ６３へ処理を戻す。
【００５８】
全ての条件の情報を取得した場合（Ｓ６４：ＹＥＳ）、配置処理部１２は、セル配置の推奨位置の情報（条件）が単数か否かを判定する（Ｓ６５）。単数である場合（Ｓ６５：ＹＥＳ）、配置処理部１２は、Ｓ６７へ処理を進める。
【００５９】
単数でない場合（Ｓ６５：ＮＯ）、配置処理部１２は、各条件に従って抽出した配置グリッドに対して、複数の条件定義にあった配置グリッドを抽出する（Ｓ６６）。
【００６０】
次いで、配置処理部１２は、抽出された配置グリッドが存在するか否かを判定する（Ｓ６７）。抽出された配置グリッドが存在する場合（Ｓ６７：ＹＥＳ）、配置処理部１２は、抽出した配置グリッドをセル配置の推奨位置として登録し（Ｓ６８）、処理を終了する。
【００６１】
抽出された配置グリッドが存在しない場合（Ｓ６７：ＮＯ）、配置処理部１２は、セルの配置位置が推奨位置の条件を満たすか否かをチェックするチェックモードであるか否かを判定する（Ｓ６９）。
【００６２】
チェックモードでない場合（Ｓ６９：ＮＯ）、配置処理部１２は、検索回数が規定回数を超えたか否かを判定し（Ｓ７０）、規定回数を超えていない場合（Ｓ７０：ＮＯ）はＳ６０へ処理を戻す。これにより、配置処理部１２では、規定回数に達するまで、推奨位置の条件を満たすセルの配置位置の検索が実施される。
【００６３】
チェックモードである場合（Ｓ６９：ＹＥＳ）および検索回数が規定回数越えた場合（Ｓ７０：ＹＥＳ）、配置処理部１２は、セル配置の推奨位置無しとして登録してエラーを返し（Ｓ７１）、処理を終了する。
【００６４】
図４に戻り、Ｓ２６に次いで、配置処理部１２は、セル配置の候補位置として検索処理により検索された検索位置（Ｓ６８で登録された推奨位置）にセル原点の位置を移動する（Ｓ２７）。
【００６５】
次いで、配置処理部１２は、入力部２０におけるセルの配置位置を確定する操作入力の有無をもとに、セルの配置座標を確定するか否かを判定する（Ｓ２８）。配置座標を確定しない場合（Ｓ２８：ＮＯ）、配置処理部１２は、Ｓ２４へ処理を戻す。
【００６６】
配置座標を確定する場合（Ｓ２８：ＹＥＳ）、配置処理部１２は、移動された推奨位置の座標にセルの配置座標を設定する（Ｓ２９）。次いで、配置処理部１２は、回路設計で配置対象とする全セルの配置が終了したか否かを判定し（Ｓ３０）、配置が終了した場合（Ｓ３０：ＹＥＳ）は処理を終了する。配置が終了していない場合（Ｓ３０：ＮＯ）、配置処理部１２は、Ｓ２０へ処理を戻す。
【００６７】
配置処理部１２は、上記の配置処理を実施することで、表示部３０の配置画面における配置位置が操作されたセルを、推奨位置情報の条件を満たす位置に移動させる。
【００６８】
図９は、推奨位置へのセルの移動を説明する説明図である。図９に示すように、未配置のセルを選択する選択画面Ｇ１において、「ＬｉｂＢ」のセルが選択されているものとする。この場合、配置画面Ｇ２では、入力部２０における操作入力によって、「ＬｉｂＢ」にかかるセル５２Ｂの配置位置がユーザにより操作される。なお、配置画面Ｇ２においてセル５２Ａ、５３Ｃは配置済のセルである。
【００６９】
ここで、配置処理部１２は、配置処理を実施することで、「ＬｉｂＢ」にかかる推奨位置情報４２ａに基づいて、電源配線５１の中心からからＸ方向に０．０５ｎｍ離れた位置にセル５２Ｂを配置する。このように、設計支援装置１は、例えば電源配線とセルについての干渉エラーが生じることのないような推奨される位置にセル５２Ｂを配置できるので、ユーザが回路設計を容易に行うことを可能とする。
【００７０】
近年のＬＳＩ設計は、半導体プロセス技術の進歩により微細化が進み、より高密度化、高周波数化、低電圧化が可能になっている。このため、ＬＳＩ設計者は、電流量の増大、配線電流密度の増大、セルリーク電流の消費電料に対する相対的な増大、ＩＲドロップ増大等の問題に直面している。
【００７１】
これらの問題を解決するために、ＬＳＩ設計者は、ＬＳＩチップ面積に対して、電源配線の占める割合を増大させる対策を取っている。更に、マスクデザインルールは複雑になっており、この複雑なマスクデザインルールをクリアすることが求められている。また、他社との競争力を高めるために設計開始からリリースまでの期間も短くなっている。
【００７２】
また、セルライブラリの観点から見ると、ある程度のまとまった機能を持つ回路は、標準仕様として既にあるスタンダードセルを利用して回路作成するよりも、仕様に合わせて作成されたカスタムセルで回路作成する方が、面積、タイミング的に有利となる。したがって、カスタムセルで回路作成することが主流となっている。一方、最新プロセスを用いた設計では、デザインルール変更、遅延計算用ライブラリ変更、設計要求変更等が設計途中に頻繁に発生する。このため、セルライブラリにも改版等が発生する。このセルライブラリの改版をＬＳＩ設計に反映するため、ＬＳＩ設計におけるレイアウト変更も同様に頻繁に実施されることになる。
【００７３】
ＬＳＩ設計の観点から見ると、高性能なＬＳＩを設計するためには、このようなカスタムセルを利用することになる。カスタムセルは、一般的なスタンダードセルよりもセルサイズが大きいため、設計初期から配置位置を固定させることが重要となる。また、頻繁なセルライブラリの改変にも短期間で対応することも重要である。したがって、電源配線とセルについての干渉エラーが生じることのないような推奨される位置にセル５２Ｂを配置できることで、回路設計を容易なものとし、セルライブラリの改変にも短期間で対応することが可能となる。
【００７４】
（複数セルの配置について）
なお、配置処理部１２は、複数のセルが選択された場合は選択された複数のセルの配置を行ってもよい。ここで、配置対象のセルとして複数セルが選択される場合の配置処理の詳細を説明する。
【００７５】
図１０は、複数セルの配置処理の一例を示すフローチャートである。図１０に示すように、処理が開始されると、配置処理部１２は、入力部２０による操作入力により、移動するセルグループ（配置対象とする複数のセル）の選択を受け付ける（Ｓ８０）。
【００７６】
次いで、配置処理部１２は、選択されたグループ内のセルの情報をライブラリ情報ＤＢ４２より取得する（Ｓ８１）。次いで、配置処理部１２は、配置の推奨位置にかかるライブラリ（推奨位置情報）を持つセルがグループ内に存在するか否かを判定する（Ｓ８２）。いずれのセルもライブラリを持たない場合（Ｓ８２：ＮＯ）、配置処理部１２は、グループ内のセルから適宜（任意に）代表セルを選び（Ｓ８６）、Ｓ８７へ処理を進める。
【００７７】
ライブラリを持つセルが存在する場合（Ｓ８２：ＹＥＳ）、配置処理部１２は、ＣｈｅｃｋＦｌａｇを立てる（Ｓ８３）。次いで、配置処理部１２は、Ｓ２３と同様にグループ内のセルにかかる推奨位置情報を取得する（Ｓ８４）。
【００７８】
次いで、配置処理部１２は、推奨位置情報における配置の推奨条件の一番厳しいセルを抽出して代表セルとする（Ｓ８５）。具体的には、配置処理部１２は、ａｎｄ条件の数がより多く、距離などの条件範囲が最も狭くなるセルを代表セルとする。
【００７９】
次いで、配置処理部１２は、代表セルの推奨位置情報の条件を満たす配置候補位置を検索する（Ｓ８７）。次いで、配置処理部１２は、Ｓ８３で立てたＣｈｅｃｋＦｌａｇが立っているか否かを判定し（Ｓ８８）、立っていない場合（Ｓ８８：ＮＯ）は代表セルからの相対位置にグループ内の他のセルを移動する（Ｓ８９）。
【００８０】
立っている場合（Ｓ８８：ＹＥＳ）、配置処理部１２は、Ｓ２５と同様に候補位置内の推奨位置情報と一致した配線等を取得する取得処理を実施する（Ｓ９０）。
【００８１】
次いで、配置処理部１２は、処理対象のセルが代表セルか否かを判定する（Ｓ９１）。代表セルである場合（Ｓ９１：ＹＥＳ）、配置処理部１２は、Ｓ２６と同様に、Ｓ８４、Ｓ９０で取得した情報に対して、セルを配置する推奨位置を検索する検索処理を実施する（Ｓ９２）。
【００８２】
次いで、配置処理部１２は、検索処理におけるエラーの有無を判定し（Ｓ９３）、エラーがある場合（Ｓ９３：ＹＥＳ）はＳ８９へ処理を進める。
【００８３】
エラーがない場合（Ｓ９３：ＮＯ）、配置処理部１２は、セル配置の候補位置として検索処理により検索された検索位置にセル原点の位置を移動する（Ｓ９４）。次いで、配置処理部１２は、代表セルからの相対位置にグループ内の他のセルを移動し（Ｓ９５）、Ｓ９７へ処理を進める。
【００８４】
なお、代表セルでない場合（Ｓ９１：ＮＯ）、配置処理部１２は、Ｓ２６と同様に、Ｓ８４、Ｓ９０で取得した情報に対して、セルを配置する推奨位置を検索する検索処理を実施する（Ｓ９９）。次いで、配置処理部１２は、検索処理におけるエラーの有無を判定し（Ｓ１００）、エラーがある場合（Ｓ１００：ＹＥＳ）はＳ１０１へ処理を進める。エラーがない場合（Ｓ１００：ＮＯ）、配置処理部１２は、Ｓ９８へ処理を進める。
【００８５】
Ｓ９７において、配置処理部１２は、代表セル以外に推奨位置の条件を有するセルが存在するか否かを判定する。存在しない場合（Ｓ９７：ＮＯ）、配置処理部１２は、Ｓ１０１へ処理を進める。存在する場合（Ｓ９７：ＹＥＳ）、配置処理部１２は、推奨位置の条件を有するセル全てについて処理が終了したか否かを判定し（Ｓ９８）、処理が終了していない場合（Ｓ９８：ＮＯ）はＳ９０へ処理を戻す。処理が終了した場合（Ｓ９８：ＹＥＳ）、配置処理部１２は、Ｓ１０１へ処理を進める。
【００８６】
Ｓ１０１において、配置処理部１２は、入力部２０におけるセルグループの位置を確定する操作入力の有無をもとに、位置座標を確定するか否かを判定する。確定しない場合（Ｓ１０１：ＮＯ）、配置処理部１２は、Ｓ８７へ処理を戻す。確定する場合（Ｓ１０１：ＹＥＳ）、配置処理部１２は、移動された推奨位置の座標にセルグループの位置座標を設定し（Ｓ１０２）、処理を終了する。
【００８７】
（配置チェックについて）
なお、配置処理部１２は、入力部２０の操作入力によりユーザが配置したセルの配置位置が推奨位置情報における条件を満たすか否かをチェックしてもよい。ここで、配置のチェック処理の詳細を説明する。
【００８８】
図１１は、配置のチェック処理の一例を示すフローチャートである。図１１に示すように、処理が開始されると、配置処理部１２は、ユーザによる配置済のセルから処理対象とするセルを選択する（Ｓ１１０）。
【００８９】
次いで、配置処理部１２は、ライブラリ情報ＤＢ４２を参照して処理対象とするセルにかかる推奨位置情報の有無を確認し、推奨位置にかかる条件が定義された配置推奨位置セルであるか否かを判定する（Ｓ１１１）。
【００９０】
推奨位置にかかる条件が定義されておらず、配置推奨位置セルでない場合（Ｓ１１１：ＮＯ）、配置処理部１２は、Ｓ１１８へ処理を進める。配置推奨位置セルである場合（Ｓ１１１：ＹＥＳ）、配置処理部１２は、Ｓ２３と同様、ライブラリ情報ＤＢ４２を参照して処理対象のセルにかかる推奨位置情報を取得する（Ｓ１１２）。
【００９１】
次いで、配置処理部１２は、Ｓ２５と同様、処理対象のセルの配置エリア内の推奨位置情報と一致した配線等を取得する取得処理を実施する（Ｓ１１３）。次いで、配置処理部１２は、Ｓ２６と同様、Ｓ１１２、Ｓ１１３で取得した情報に対して、セルを配置する推奨位置を検索する検索処理を実施する（Ｓ１１４）。
【００９２】
次いで、配置処理部１２は、処理対象のセルである配置済セルの原点位置を取得し（Ｓ１１５）、検索した推奨位置と原点位置との座標が不一致であるか否かを判定する（Ｓ１１６）。不一致でない場合（Ｓ１１６：ＮＯ）、すなわちユーザが配置したセルの配置位置が推奨位置情報における条件を満たす場合、配置処理部１２は、Ｓ１１８へ処理を進める。
【００９３】
不一致である場合（Ｓ１１６：ＹＥＳ）、ユーザが配置したセルの配置位置が推奨位置情報における条件を満たさないことから、配置処理部１２は、処理対象のセルについて配置推奨エラーのフラグを設定する（Ｓ１１７）。
【００９４】
次いで、配置処理部１２は、配置済の全セルのチェックが終了したか否かを判定し（Ｓ１１８）、終了していない場合（Ｓ１１８：ＮＯ）はＳ１１０へ処理を戻す。終了した場合（Ｓ１１８：ＹＥＳ）、配置処理部１２は、配置推奨エラーのフラグが設定されたセルについて、推奨位置情報における条件を満たさないものとするエラーレポートを出力する（Ｓ１１９）。例えば、配置処理部１２は、表示部３０の配置画面Ｇ２などにエラーレポートを出力する。これにより、ユーザは、自身が配置画面Ｇ２上で配置したセルの配置位置が推奨位置情報における条件を満たさないことを確認できる。
【００９５】
（自動配置について）
なお、配置処理部１２は、入力部２０の操作入力によりユーザがライブラリより選択したセルを推奨位置情報における条件を満たす位置に自動配置してもよい。ここで、自動配置の処理の詳細を説明する。
【００９６】
図１２は、自動配置の処理の一例を示すフローチャートである。図１２に示すように、処理が開始されると、配置処理部１２は、入力部２０の操作入力によりユーザがライブラリ情報ＤＢ４２のライブラリから選択したセルの中から未配置のセルを、処理対象のセルとして選択する（Ｓ１２０）。
【００９７】
次いで、配置処理部１２は、ライブラリ情報ＤＢ４２を参照して処理対象とするセルにかかる推奨位置情報の有無を確認し、推奨位置にかかる条件が定義された配置推奨位置セルであるか否かを判定する（Ｓ１２１）。
【００９８】
推奨位置にかかる条件が定義されておらず、配置推奨位置セルでない場合（Ｓ１２１：ＮＯ）、配置処理部１２は、Ｓ１２８へ処理を進める。配置推奨位置セルである場合（Ｓ１２１：ＹＥＳ）、配置処理部１２は、Ｓ２３と同様、ライブラリ情報ＤＢ４２を参照して処理対象のセルにかかる推奨位置情報を取得する（Ｓ１２２）。
【００９９】
次いで、配置処理部１２は、取得した推奨位置情報の条件を満たす配置候補位置を検索する（Ｓ１２３）。次いで、配置処理部１２は、Ｓ２５と同様、候補位置内の推奨位置情報と一致した配線等を取得する取得処理を実施する（Ｓ１２４）。
【０１００】
次いで、配置処理部１２は、Ｓ２６と同様、Ｓ１２２、Ｓ１２４で取得した情報に対して、セルを配置する推奨位置を検索する検索処理を実施する（Ｓ１２５）。次いで、配置処理部１２は、セル配置の候補位置として検索処理により検索された検索位置にセル原点の位置を移動（仮設定）する（Ｓ１２６）。
【０１０１】
次いで、配置処理部１２は、移動したセルの位置においてエラー（例えば回路外）が有るか否かを判定する（Ｓ１２７）。エラーがある場合（Ｓ１２７：ＮＯ）、配置処理部１２は、Ｓ１２３へ処理を戻す。エラーがない場合（Ｓ１２７：ＹＥＳ）、配置処理部１２は、Ｓ１３０へ処理を進める。
【０１０２】
Ｓ１２８において、配置処理部１２は、処理対象のセルについて所定の座標を配置座標として仮設定し、Ｓ１２７と同様に仮設定した位置においてエラー（例えば回路外）が有るか否かを判定する（Ｓ１２９）。エラーがある場合（Ｓ１２９：ＮＯ）、配置処理部１２は、別の位置に仮設定するためにＳ１２８へ処理を戻す。エラーがない場合（Ｓ１２９：ＹＥＳ）、配置処理部１２はＳ１３０へ処理を進める。
【０１０３】
Ｓ１３０において、配置処理部１２は、処理対象のセルについて仮設定した位置に配置座標を設定し、ライブラリから選択した全セルについて配置が終了したか否かを判定する（Ｓ１３１）。配置が終了していない場合（Ｓ１３１：ＮＯ）、配置処理部１２は、Ｓ１２０へ処理を戻す。配置が終了した場合（Ｓ１３１：ＹＥＳ）、配置処理部１２は、処理を終了する。
【０１０４】
（リファイン処理について）
なお、配置処理部１２は、複数の条件を有する推奨位置情報において、電源配線５１との相対位置が異なる条件の中からいずれか一つの条件に集約してもよい。そして、配置処理部１２は、集約した条件を満たす位置に配置対象のセルを配置する。
【０１０５】
図１３は、推奨位置情報によるセル配置の一例を説明する説明図である。図１３に示すように、ライブラリ情報ＤＢ４２の推奨位置情報において、複数の条件を有する場合は、例えばセル名「ＡＡ」のセル５２Ａ〜５２Ｃの推奨位置に相違が生じる場合がある。図示例では、電源配線５１に対して、Ｘ方向に０．０８ｎｍとするセル５２Ａ、５２Ｃと、Ｘ方向に０．１２ｎｍとするセル５２Ｂとで位置に相違が生じている。
【０１０６】
このようなセル５２Ａ〜５２Ｃにおける位置の相違により、端子５３Ａ〜５３Ｃとを結ぶ配線経路５４にクランクが生じ、配線経路５４が複雑な形状となる場合がある。配線経路５４が複雑になると、例えばＦＦ（フリップフロップ）等のタイミング合わせに影響が生じ、回路の性能劣化を招く場合がある。したがって、条件を集約することで、セル５２Ａ〜５２Ｃの位置に相違が生じることを抑止し、設計対象の回路に性能劣化が生じることを抑止できる。
【０１０７】
ここで、複数の条件を有する推奨位置情報において、電源配線５１との相対位置が異なる条件の中からいずれか一つの条件に集約するリファイン処理の詳細を説明する。
【０１０８】
図１４−１〜１４−３は、リファイン処理の一例を示すフローチャートである。図１４−１に示すように、先ず、配置処理部１２は、ライブラリ情報ＤＢ４２における各セルの推奨位置情報などのライブラリ情報を順次読み込み（Ｓ１４０）、推奨位置情報において複数条件の定義があるか否かを判定する（Ｓ１４１）。複数条件の定義がない場合（Ｓ１４１：ＮＯ）、配置処理部１２は、Ｓ１４６へ処理を進める。
【０１０９】
複数条件の定義がある場合（Ｓ１４１：ＹＥＳ）、配置処理部１２は、各条件をメモリ内の内部テーブルへ格納する（Ｓ１４２）。次いで、配置処理部１２は、内部テーブルを参照して距離以外の条件が同一の定義を検索し（Ｓ１４３）、同一の定義の有無を判定する（Ｓ１４４）。同一の定義がない場合（Ｓ１４４：ＮＯ）、配置処理部１２は、Ｓ１４６へ処理を進める。
【０１１０】
同一の定義がある場合（Ｓ１４４：ＹＥＳ）、配置処理部１２は、複数条件の定義がある推奨位置情報のライブラリを、リファイン対象の候補ライブラリとしてファイル出力する（Ｓ１４５）。次いで、配置処理部１２は、ライブラリ情報ＤＢ４２における全ライブラリについて処理が終了したか否かを判定し（Ｓ１４６）、終了していない場合（Ｓ１４６：ＮＯ）はＳ１４０へ処理を戻す。終了している場合（Ｓ１４６：ＹＥＳ）、配置処理部１２は処理を終了する。
【０１１１】
次に、配置処理部１２は、図１４−２に示すように、リファイン対象の候補ライブラリのファイルを読み込む（Ｓ１５１）。次いで、配置処理部１２は、リファイン対象として予め設定された絞込条件を読み込み（Ｓ１５２）、リファイン対象の候補ライブラリの中から絞込条件にマッチする対象ライブラリを検索する（Ｓ１５３）。絞込条件としては、例えば電源配線５１により近い距離条件などがある。
【０１１２】
次いで、配置処理部１２は、絞込条件にマッチする対象ライブラリが有るか否かを判定し（Ｓ１５４）、対象ライブラリがある場合（Ｓ１５４：ＹＥＳ）は集約する一条件であるリファイン対象条件としてファイル出力する（Ｓ１５５）。対象ライブラリがない場合（Ｓ１５４：ＮＯ）、配置処理部１２は、Ｓ１５５の処理をスキップする。
【０１１３】
次いで、配置処理部１２は、リファイン対象の候補ライブラリについて全ライブラリの処理が終了したか否かを判定し（Ｓ１５６）、終了していない場合（Ｓ１５６：ＮＯ）はＳ１５３へ処理を戻す。終了した場合（Ｓ１５６：ＹＥＳ）、配置処理部１２は処理を終了する。
【０１１４】
次に、配置処理部１２は、図１４−３に示すように、ライブラリ情報ＤＢ４２における各セルのライブラリ情報を読み込み（Ｓ１６１）、リファイン対象条件のファイルを読み込む（Ｓ１６２）。次いで、配置処理部１２は、各セルのライブラリ情報を参照し、リファイン対象条件にマッチするライブラリを検索する（Ｓ１６３）。
【０１１５】
次いで、配置処理部１２は、リファイン対象条件にマッチするリファイン対象ライブラリの有無を判定する（Ｓ１６４）。リファイン対象ライブラリがある場合（Ｓ１６４：ＹＥＳ）、配置処理部１２は、リファイン対象ライブラリについて、リファイン対象条件に集約するリファイン処理を実施する（Ｓ１６５）。具体的には、配置処理部１２は、リファイン対象ライブラリの推奨位置情報について、リファイン対象条件に集約する。なお、リファイン対象ライブラリがない場合（Ｓ１６４：ＮＯ）、配置処理部１２は、Ｓ１６５の処理をスキップする。
【０１１６】
次いで、配置処理部１２は、ライブラリ情報ＤＢ４２より読み込み、リファイン処理を施したライブラリ情報を出力し（Ｓ１６６）、ライブラリ情報ＤＢ４２のライブラリ情報を更新する。次いで、配置処理部１２は、ライブラリ情報ＤＢ４２における全ライブラリセルについて処理が終了したか否かを判定し（Ｓ１６７）、処理が終了していない場合（Ｓ１６７：ＮＯ）はＳ１６３へ処理を戻す。また、配置処理部１２は、処理が終了した場合（Ｓ１６７：ＹＥＳ）は処理を終了する。
【０１１７】
図１５は、推奨位置情報によるセル配置の一例を説明する説明図である。図１５に示すように、ライブラリ情報ＤＢ４２における推奨位置情報は、図１３に例示した複数条件の中から一つの条件に集約したものである。このように、条件を集約することで、セル５２Ａ〜５２Ｃの位置に相違が生じることを抑止できる。
【０１１８】
以上のように、設計支援装置１は、入力部２０より受け付けたユーザ指示により、回路設計において配置対象となるセルを選択する。また、設計支援装置１の配置処理部１２は、セルごとに、回路設計においてセルを配置する際に推奨する配置位置の条件を定義した定義情報（推奨位置情報）を含むライブラリ情報ＤＢ４２を参照する。そして、配置処理部１２は、推奨位置情報に基づいて、配置対象のセルを推奨する配置位置の条件を満たす位置に配置する。これにより、設計支援装置１は、例えば電源配線とセルについての干渉エラーが生じることのないような推奨される位置にセルを配置できるので、ユーザが回路設計を容易に行うことを可能とする。
【０１１９】
また、設計支援装置１は、配置対象となるセルの配置画面を表示する表示部３０と、配置画面におけるセルの配置位置の操作を受け付ける入力部２０とを有する。設計支援装置１の配置処理部１２は、配置画面における配置位置が操作されたセルを推奨する配置位置の条件を満たす位置に配置する。これにより、設計支援装置１は、例えば配置画面におけるセルのレイアウト変更時において推奨される位置にセルを配置することで、ＬＳＩ設計者などのユーザによる回路設計をサポートできる。
【０１２０】
また、定義情報は、回路設計にかかる電源配線との相対位置を配置位置の条件として定義する。そして、設計支援装置１の配置処理部１２は、配置対象のセルと、当該セルを配置する回路の電源配線との相対位置が定義された条件を満たす位置に配置対象のセルを配置する。これにより、設計支援装置１は、電源配線とセルについての干渉エラーが生じることのない位置にセルを配置できる。
【０１２１】
また、定義情報は、回路設計においてセルを配置する際に推奨する配置位置の条件を複数有する。そして、設計支援装置１の配置処理部１２は、複数の条件の中の少なくとも一つを満たす位置に配置対象のセルを配置する。このように、セルを推奨する配置位置の条件は複数あってよく、設計支援装置１は、複数の条件の中のいずれかを満たす位置にセルを配置してもよい。
【０１２２】
また、設計支援装置１の配置処理部１２は、複数の条件を有する定義情報において、電源配線との相対位置が異なる条件の中からいずれか一つの条件に集約し、当該集約した条件を満たす位置に配置対象のセルを配置する。このように、電源配線との相対位置が異なる条件の中から集約した一条件を満たす位置にセルを配置することで、例えば複数のセルと電源配線との相対位置を揃えることができ、セル間の配線経路を揃えることができる。
【０１２３】
図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１２４】
また、設計支援装置１で行われる各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、またはワイヤードロジックによるハードウエア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。また、設計支援装置１で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
【０１２５】
ところで、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータ（ハードウエア）の一例を説明する。図１６は、実施形態にかかる設計支援装置１のハードウエア構成の一例を示すブロック図である。
【０１２６】
図１６が示すように、設計支援装置１は、各種演算処理を実行するＣＰＵ１０１と、データ入力を受け付ける入力装置１０２と、モニタ１０３と、スピーカ１０４とを有する。また、設計支援装置１は、記憶媒体からプログラム等を読み取る媒体読取装置１０５と、各種装置と接続するためのインタフェース装置１０６と、有線または無線により外部機器と通信接続するための通信装置１０７とを有する。また、設計支援装置１は、各種情報を一時記憶するＲＡＭ１０８と、ハードディスク装置１０９とを有する。また、設計支援装置１内の各部（１０１〜１０９）は、バス１１０に接続される。
【０１２７】
ハードディスク装置１０９には、上記の実施形態で説明した各種の処理を実行するためのプログラム４３が記憶される。また、ハードディスク装置１０９には、プログラム４３が参照する各種データ１１１（設計情報ＤＢ４１またはライブラリ情報ＤＢ４２など）が記憶される。入力装置１０２は、例えば、設計支援装置１の操作者から操作情報の入力を受け付ける。モニタ１０３は、例えば、操作者が操作する各種画面を表示する。インタフェース装置１０６は、例えば印刷装置等が接続される。通信装置１０７は、ＬＡＮ（Local  Area  Network）等の通信ネットワークと接続され、通信ネットワークを介した外部機器との間で各種情報をやりとりする。
【０１２８】
ＣＰＵ１０１は、ハードディスク装置１０９に記憶されたプログラム４３を読み出して、ＲＡＭ１０８に展開して実行することで、各種の処理を行う。なお、プログラム４３は、ハードディスク装置１０９に記憶されていなくてもよい。例えば、設計支援装置１が読み取り可能な記憶媒体に記憶されたプログラム４３を、設計支援装置１が読み出して実行するようにしてもよい。設計支援装置１が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこのプログラム４３を記憶させておき、設計支援装置１がこれらからプログラム４３を読み出して実行するようにしてもよい。
【０１２９】
以上の実施形態に関し、さらに以下の付記を開示する。
【０１３０】
（付記１）回路設計において配置対象となるセルを選択する選択部と、
セルごとに、回路設計において前記セルを配置する際に推奨する配置位置の条件を定義した定義情報に基づいて、前記配置対象のセルを前記条件を満たす位置に配置する配置部と、
を有することを特徴とする設計支援装置。
【０１３１】
（付記２）前記配置対象となるセルの配置画面を表示する表示部と、
前記配置画面におけるセルの配置位置を操作する操作部と、を更に有し、
前記配置部は、前記配置画面における配置位置が操作されたセルを前記条件を満たす位置に配置する、
ことを特徴とする付記１に記載の設計支援装置。
【０１３２】
（付記３）前記定義情報は、回路設計にかかる電源配線との相対位置を配置位置の条件として定義し、
前記配置部は、前記配置対象のセルと、当該セルを配置する回路の電源配線との相対位置が定義された条件を満たす位置に前記配置対象のセルを配置する、
ことを特徴とする付記１または２に記載の設計支援装置。
【０１３３】
（付記４）前記定義情報は、前記配置位置の条件を複数有し、
前記配置部は、前記複数の条件の中の少なくとも一つを満たす位置に前記配置対象のセルを配置する、
ことを特徴とする付記３に記載の設計支援装置。
【０１３４】
（付記５）前記配置部は、前記複数の条件を有する定義情報において、前記電源配線との相対位置が異なる条件の中からいずれか一つの条件に集約し、当該集約した条件を満たす位置に前記配置対象のセルを配置する、
ことを特徴とする付記４に記載の設計支援装置。
【０１３５】
（付記６）回路設計において配置対象となるセルを選択し、
セルごとに、回路設計において前記セルを配置する際に推奨する配置位置の条件を定義した定義情報に基づいて、前記配置対象のセルを前記条件を満たす位置に配置する、
処理をコンピュータに実行させることを特徴とする設計支援プログラム。
【０１３６】
（付記７）前記配置する処理は、前記配置対象となるセルの配置画面において操作部により配置位置が操作されたセルを前記条件を満たす位置に配置する、
ことを特徴とする付記６に記載の設計支援プログラム。
【０１３７】
（付記８）前記定義情報は、回路設計にかかる電源配線との相対位置を配置位置の条件として定義し、
前記配置する処理は、前記配置対象のセルと、当該セルを配置する回路の電源配線との相対位置が定義された条件を満たす位置に前記配置対象のセルを配置する、
ことを特徴とする付記６または７に記載の設計支援プログラム。
【０１３８】
（付記９）前記定義情報は、前記配置位置の条件を複数有し、
前記配置する処理は、前記複数の条件の中の少なくとも一つを満たす位置に前記配置対象のセルを配置する、
ことを特徴とする付記８に記載の設計支援プログラム。
【０１３９】
（付記１０）前記配置する処理は、前記複数の条件を有する定義情報において、前記電源配線との相対位置が異なる条件の中からいずれか一つの条件に集約し、当該集約した条件を満たす位置に前記配置対象のセルを配置する、
ことを特徴とする付記９に記載の設計支援プログラム。
【０１４０】
（付記１１）回路設計において配置対象となるセルを選択し、
セルごとに、回路設計において前記セルを配置する際に推奨する配置位置の条件を定義した定義情報に基づいて、前記配置対象のセルを前記条件を満たす位置に配置する、
処理をコンピュータが実行することを特徴とする設計支援方法。
【０１４１】
（付記１２）前記配置する処理は、前記配置対象となるセルの配置画面において操作部により配置位置が操作されたセルを前記条件を満たす位置に配置する、
ことを特徴とする付記１１に記載の設計支援方法。
【０１４２】
（付記１３）前記定義情報は、回路設計にかかる電源配線との相対位置を配置位置の条件として定義し、
前記配置する処理は、前記配置対象のセルと、当該セルを配置する回路の電源配線との相対位置が定義された条件を満たす位置に前記配置対象のセルを配置する、
ことを特徴とする付記１１または１２に記載の設計支援方法。
【０１４３】
（付記１４）前記定義情報は、前記配置位置の条件を複数有し、
前記配置する処理は、前記複数の条件の中の少なくとも一つを満たす位置に前記配置対象のセルを配置する、
ことを特徴とする付記１３に記載の設計支援方法。
【０１４４】
（付記１５）前記配置する処理は、前記複数の条件を有する定義情報において、前記電源配線との相対位置が異なる条件の中からいずれか一つの条件に集約し、当該集約した条件を満たす位置に前記配置対象のセルを配置する、
ことを特徴とする付記１４に記載の設計支援方法。
【符号の説明】
【０１４５】
１…設計支援装置
１０…制御部
１１…推奨位置計算部
１２…配置処理部
２０…入力部
３０…表示部
４０…記憶部
４１…設計情報ＤＢ
４２…ライブラリ情報ＤＢ
４２ａ〜４２ｃ…推奨位置情報
４３…プログラム
５１…電源配線
５２、５２Ａ〜５２Ｃ…セル
５３…禁止位置
５３Ａ〜５３Ｃ…端子
５４…配線経路
１０１…ＣＰＵ
１０２…入力装置
１０３…モニタ
１０４…スピーカ
１０５…媒体読取装置
１０６…インタフェース装置
１０７…通信装置
１０８…ＲＡＭ
１０９…ハードディスク装置
１１０…バス
１１１…各種データ
Ｇ１…選択画面
Ｇ２…配置画面
【図１】
2019046249.tif 000003
【図２】
2019046249.tif 000004
【図３】
2019046249.tif 000005
【図４】
2019046249.tif 000006
【図５】
2019046249.tif 000007
【図６】
2019046249.tif 000008
【図７】
2019046249.tif 000009
【図８】
2019046249.tif 000010
【図９】
2019046249.tif 000011
【図１０】
2019046249.tif 000012
【図１１】
2019046249.tif 000013
【図１２】
2019046249.tif 000014
【図１３】
2019046249.tif 000015
【図１４−１】
2019046249.tif 000016
【図１４−２】
2019046249.tif 000017
【図１４−３】
2019046249.tif 000018
【図１５】
2019046249.tif 000019
【図１６】
2019046249.tif 000020