(57)【要約】【課題】セル間配線を短くする。【解決手段】設計支援装置は、位置決定部と、論理抽出部と、論理配置部とを備える。位置決定部は、第１セルが有する第１端子の最適な位置を、第１セルと、第１端子を介して第１セルと接続される第２セルとの間の端子間配線が短くなる第１位置に決定する。論理抽出部は、第１端子を有する論理ブロックを含む１以上の論理ブロックを、第１セルから抽出する。論理配置部は、第１端子が第１位置に近づくように、１以上の論理ブロックを配置する。【選択図】図１
2014211824.tif 000002
【特許請求の範囲】
【請求項１】
第１セルが有する第１端子の最適な位置を、前記第１セルと、前記第１端子を介して前記第１セルと接続される第２セルとの間の端子間配線が短くなる第１位置に決定する位置決定部と、
前記第１端子を有する論理ブロックを含む１以上の論理ブロックを、前記第１セルから抽出する論理抽出部と、
前記第１端子が前記第１位置に近づくように、前記１以上の論理ブロックを配置する論理配置部と、
を備えることを特徴とする設計支援装置。
【請求項２】
前記設計支援装置は、さらに、
前記論理抽出部が前記第１セルから２以上の論理ブロックを抽出したとき、前記２以上の論理ブロックの中から、互いに接続される２以上の接続論理ブロックを検索する接続検索部と、
前記２以上の接続論理ブロックの中で、出力側となる各接続論理ブロックのそれぞれの出力先が、同じ方向となるように、前記２以上の接続論理ブロックそれぞれの配置順を設定する配置設定部と、
を備え、
前記論理配置部は、
前記２以上の論理ブロックをそれぞれ配置するとき、前記２以上の接続論理ブロックの配置を前記配置設定部で設定された配置順とし、かつ前記第１端子が前記第１位置に近づくように、前記２以上の論理ブロックをそれぞれ配置する
ことを特徴とする請求項１に記載の設計支援装置。
【請求項３】
前記論理抽出部は、
前記第１セルが有する拡散層が連続する領域を抽出し、前記１以上の論理ブロックとする
ことを特徴とする請求項１または２に記載の設計支援装置。
【請求項４】
位置決定部は、
前記第１端子の接続先セルが複数あるとき、前記第１端子から出力される信号が前記接続先セルへ入力されるタイミングに対する影響度が、前記複数の接続先セルで平均的になるように、前記第１位置を決定する
ことを特徴とする請求項１〜３のいずれか一つに記載の設計支援装置。
【請求項５】
前記論理配置部は、
前記１以上の論理ブロックの配置を変更するごとに、前記第１端子と前記第１位置との距離を求め、前記距離が最小となる配置に、前記１以上の論理ブロックを配置する
ことを特徴とする請求項１〜４のいずれか一つに記載の設計支援装置。
【請求項６】
前記第１セルは、さらに、
第３セルと接続される第２端子を備え、
前記位置決定部は、さらに、
前記第２端子の最適な位置を、前記第１セルと前記第３セルとの間の配線長が短くなる第２位置に決定し、
前記論理配置部は、さらに、
前記第２端子が前記第２位置に近づくように、前記１以上の論理ブロックをそれぞれ配置する
ことを特徴とする請求項１〜５のいずれか一つに記載の設計支援装置。
【請求項７】
前記論理配置部は、
前記１以上の論理ブロックの配置を変更するごとに、前記第１端子と前記第１位置との距離と、前記第２端子と前記第２位置との距離との合計値を求め、前記合計値が最小となる配置に、前記１以上の論理ブロックを配置する
ことを特徴とする請求項６に記載の設計支援装置。
【請求項８】
前記設計支援装置は、さらに、
前記論理配置部で配置した、前記第１セルが有する１以上の論理ブロックの配置を記憶する記憶部を備え、
前記論理配置部は、
前記第１セルと同じ種類であり、かつ他のセルと接続される端子の最適な位置が前記第１位置に対応する位置に設定された第３セルがあるとき、前記第３セルが有する１以上の論理ブロックの配置を、それぞれ前記第１セルが有する１以上の論理ブロックと同じ配置にする
ことを特徴とする請求項１〜７のいずれか一つに記載の設計支援装置。
【請求項９】
前記論理配置部は、
前記１以上の論理ブロックそれぞれの配置位置と、前記１以上の論理ブロックそれぞれの左右反転配置とを変更し、前記第１端子が前記第１位置に近づくように、前記１以上の論理ブロックをそれぞれ配置する
ことを特徴とする請求項１〜８のいずれか一つに記載の設計支援装置。
【請求項１０】
コンピュータにより実行される情報処理方法であって、
前記コンピュータは、
第１セルが有する第１端子の最適な位置を、前記第１セルと、前記第１端子を介して前記第１セルと接続される第２セルとの間の端子間配線が短くなる第１位置に決定し、
前記第１端子を有する論理ブロックを含む１以上の論理ブロックを、前記第１セルから抽出し、
前記第１端子が前記第１位置に近づくように、前記１以上の論理ブロックをそれぞれ配置する
ことを実行する設計支援方法。
【請求項１１】
第１セルが有する第１端子の最適な位置を、前記第１セルと、前記第１端子を介して前記第１セルと接続される第２セルとの間の端子間配線が短くなる第１位置に決定し、
前記第１端子を有する論理ブロックを含む１以上の論理ブロックを、前記第１セルから抽出し、
前記第１端子が前記第１位置に近づくように、前記１以上の論理ブロックをそれぞれ配置する
処理をコンピュータに実行させることを特徴とする設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は集積回路を設計する技術に関する。
【背景技術】
【０００２】
近年、集積回路の高機能化や高性能化の要求を満たすため、集積回路の回路規模が年々増大している。これに伴い、ユーザが要求する機能を実装した複数種類のスタンダードセルを作成し、予めライブラリに保存しておく設計手法が実用化されている。この場合、集積回路を設計するとき、ユーザは、要求する機能を有するスタンダードセルを情報処理装置にライブラリから抽出させる。そして、情報処理装置は、図２４に示すように、抽出したスタンダードセルを集積回路に配置し、集積回路を構成する。これにより、集積回路の設計期間が短縮される。以下の説明では、スタンダードセルのことを、基準セルともいう。
【０００３】
関連する技術として、配置、配線プログラムを使用したスタンダードセル方式による半導体集積回路のレイアウト方法において、セルライブラリ内のセルが配置配線プログラムから与えられた情報に合せセルレイアウトを変形する。そして、配置、配線プログラムが仮配置、配線後、各セルへの配線が最短で交差数が最小の位置を検出する。また、配置、配線プログラムは、その結果をセルライブラリに与え、再度配置、配線を行なう技術が知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平３−２９３４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前述したセルレイアウト技術では、例えば、各セルが有するセル端子間の端子間配線が短くなるように、各セルが配置される。しかし、図２５に示すように、単に端子間配線を短くするだけでは、セル内部でセル端子からトランジスタまでの配線が長くなり、各セルが有するトランジスタ間を接続するセル間配線が短くならないことがある。
【０００６】
本発明は、一側面として、セル間配線を短くする技術を提供する。
【課題を解決するための手段】
【０００７】
本明細書で開示する設計支援装置のひとつに、位置決定部と、論理抽出部と、論理配置部とを備える設計支援装置がある。位置決定部は、第１セルが有する第１端子の最適な位置を、第１セルと、第１端子を介して第１セルと接続される第２セルとの間の端子間配線が短くなる第１位置に決定する。論理抽出部は、第１端子を有する論理ブロックを含む１以上の論理ブロックを、第１セルから抽出する。論理配置部は、第１端子が第１位置に近づくように、１以上の論理ブロックを配置する。
【発明の効果】
【０００８】
１実施態様によれば、セル間配線を短くすることができる。
【図面の簡単な説明】
【０００９】
【図１】設計支援装置の一実施例を示す機能ブロック図である。
【図２】セル内の配置処理を示すフローチャートである。
【図３】セルの最適な端子位置を決定する処理を示すフローチャートである。
【図４】接続ルールを作成する処理を示すフローチャートである。
【図５】論理ブロックの配置処理を示すフローチャートである。
【図６】論理ブロックの配置処理を示すフローチャートである。
【図７】論理ブロックの単体評価処理を示すフローチャートである。
【図８】セルの評価処理を示すフローチャートである。
【図９】コンピュータ装置の一実施例を示すブロック図である。
【図１０】セルの配置位置情報の一例を示す図である。
【図１１】セル間の接続情報の一例を示す図である。
【図１２】セル端子の接続先の方向の一例を示す図である。
【図１３】セル端子の最適な端子位置の一例を示す図である。
【図１４】セル端子の最適な端子位置の一例を示す図である。
【図１５】セルのメッシュ分割の一例を示す図である。
【図１６】論理ブロックの一例を示す図である
【図１７】論理ブロック間の接続の一例を示す図である。
【図１８】接続関係の認識の一例を示す図である。
【図１９】接続関係の認識の一例を示す図である。
【図２０】接続ルール情報のデータ例を示す図である。
【図２１】論理ブロックの配置の一例を示す図である。
【図２２】基準セルを用いた集積回路の一例を示す図である。
【図２３】配置セルを用いた集積回路の一例を示す図である。
【図２４】集積回路上に配置されたセルの一実施例を示す図である。
【図２５】セルの配線の一実施例を示す図である。
【発明を実施するための形態】
【００１０】
［実施形態］
実施形態の設計支援装置について説明する。
【００１１】
図１は、設計支援装置の一実施例を示す機能ブロック図である。
図１を参照して、設計支援装置について説明する。以下の説明において、単にセルと記載した場合には、後述する基準セルと、配置セルと、対象セルとのいずれかを示すものとする。
【００１２】
設計支援装置１は、制御部１０と、記憶部２０とを備える。設計支援装置１は、例えば、後述するコンピュータ装置である。
【００１３】
制御部１０は、位置決定部１１と、論理抽出部１２と、接続検索部１３と、配置設定部１４と、論理配置部１５との機能を有する。
【００１４】
位置決定部１１は、第１セルが有する第１端子の最適な位置を、第１セルと、第１端子を介して第１セルと接続される第２セルとの間の端子間配線が短くなる第１位置に決定する。第１セルとは、例えば、後述する基準セル内の論理ブロックを再配置する対象セルのことである。第２セルとは、例えば、後述する対象セルと接続される接続先セルのことである。端子間配線とは、例えば、第１セルが有するセル端子から第２セルが有するセル端子までの配線のことである。セル端子とは、他のセルと電気的に接続する端子間配線を接続する端子である。第１位置とは、例えば、後述するセル端子の最適な配置位置のことである。
【００１５】
位置決定部１１は、第１端子の接続先セルが複数あるとき、第１端子から出力される信号が接続先セルへ入力されるタイミングに対する影響度が複数の接続先セルで平均的になるように、第１位置を決定する。
【００１６】
位置決定部１１は、第１セルが第３セルと接続される第２端子を有するとき、第２端子の最適な位置を、第１セルと第３セルとの間の配線長が短くなる第２位置に決定する。第３セルとは、例えば、後述する対象セルと接続される接続先セルのことである。第２位置とは、例えば、後述するセル端子の最適な配置位置のことである。
【００１７】
論理抽出部１２は、第１端子を有する論理ブロックを含む１以上の論理ブロックを、第１セルから抽出する。また、論理抽出部１２は、第１セルが有する拡散層が連続する領域を抽出し、１以上の論理ブロックとする。論理ブロックとは、例えば、セル内で論理を構成する回路ブロックのことである。
【００１８】
接続検索部１３は、論理抽出部が第１セルから２以上の論理ブロックを抽出したとき、２以上の論理ブロックの中から、互いに接続される２以上の接続論理ブロックを検索する。
【００１９】
配置設定部１４は、２以上の接続論理ブロックの中で、出力側となる各接続論理ブロックのそれぞれの出力先が、同じ方向となるように、２以上の接続論理ブロックそれぞれの配置順を設定する。配置順とは、例えば、後述する接続ルールのことである。
【００２０】
論理配置部１５は、第１端子が第１位置に近づくように、１以上の論理ブロックを配置する。また、論理配置部１５は、２以上の論理ブロックをそれぞれ配置するとき、２以上の接続論理ブロックの配置を配置設定部で設定された配置順とし、かつ第１端子が第１位置に近づくように、２以上の論理ブロックをそれぞれ配置する。また、論理配置部１５は、第１セルが第２端子を備えるとき、位置決定部１１で決定された第２位置に第２端子が近づくように、１以上の論理ブロックをそれぞれ配置する。
【００２１】
論理配置部１５は、１以上の論理ブロックの配置を変更するごとに、第１端子と第１位置との距離を求め、距離が最小となる配置に、１以上の論理ブロックを配置する。また、論理配置部１５は、第１セルが第２端子を備えるとき、１以上の論理ブロックの配置を変更するごとに、第１端子と第１位置との距離と、第２端子と第２位置との距離との合計値を求め、合計値が最小となる配置に、１以上の論理ブロックを配置する。第１端子と第１位置との距離とは、例えば、後述する端子評価値のことである。また、第１端子と第１位置との距離と、第２端子と第２位置との距離との合計値とは、例えば、後述するセル評価値のことである。なお、第１セルが有するセル端子が１つのとき、第１端子と第１位置との距離とは、例えば、後述するセル評価値のことである。
【００２２】
論理配置部１５は、配置した第１セルが有する１以上の論理ブロックの配置を記憶部２０に記憶する。そして、論理配置部１５は、第１セルと同じ種類であり、かつ他のセルと接続される端子の最適な位置が第１位置に対応する位置に設定された第３セルがあるか否かを判定する。論理配置部１５は、第３セルがあるとき、第３セルが有する１以上の論理ブロックの配置を、それぞれ第１セルが有する１以上の論理ブロックと同じ配置にする。第３セルとは、例えば、後述する対象セルのことである。なお、論理配置部１５は、配置した第１セルの論理ブロックの配置を記憶部２０に記憶するとき、後述する配置セル情報２４に格納する。
【００２３】
記憶部２０は、基準セル情報２１と、セル位置情報２２と、最適端子情報２３と、配置セル情報２４と、セル接続情報２５と、論理ブロック情報２６と、セル論理情報２７と、接続ルール情報２８とを有する。
【００２４】
基準セル情報２１には、ユーザが要求する機能を実装した基準セルの回路情報が格納されている。そして、基準セル情報２１は、例えば、基準セルの論理と実装とが関連付けられて格納されても良い。また、基準セルの回路情報とは、例えば、基準セル内のトランジスタや拡散層の配置情報と、基準セル内の各トランジスタを接続する配線情報とを含む情報でも良い。さらに、トランジスタを接続する配線情報には、各トランジスタ間の接続箇所を示す座標情報を含んでも良い。また、基準セルの回路情報には、基準セルが有するセル端子の配置位置の座標情報を含んでも良い。
【００２５】
セル位置情報２２には、集積回路を作成するとき、ユーザが入力する集積回路に配置するセルの配置位置情報が格納されている。なお、セル位置情報２２には、例えば、ユーザが設計支援装置１に入力する集積回路の機能情報に応じて、設計支援装置１が基準セル情報２１から集積回路に実装するセルを選択し、集積回路上にセルを配置した配置位置情報が格納されても良い。そして、セル位置情報２２には、例えば、集積回路ごとに、配置される各セルの種類と各セルの配置の座標情報とが関連付けられて格納されても良い。
【００２６】
最適端子情報２３には、セル位置情報２２に格納されている集積回路が有するセルごとに、セルが有する各セル端子の最適な配置位置情報を格納している。セル端子の最適な配置位置とは、集積回路上に配置されるセルの端子間配線が短くなるように設定されたセル端子の配置位置の座標情報のことである。以下の説明では、セル端子の最適な配置位置のことを、セル端子の最適位置とも言う。
【００２７】
配置セル情報２４には、論理配置部１５により、基準セルの論理ブロックを再配置した配置セルの、論理ブロックの配置順を示す配置セル情報が格納されている。また、配置セル情報２４には、各配置セルが有するセル端子の端子位置を示す端子位置情報が格納されても良い。また、配置セル情報２４には、各配置セルの種類と、論理ブロックの配置順と、セル端子の端子位置情報とが関連付けられて格納されても良い。配置セルの種類とは、例えば、配置セルの基になった基準セルの種類で識別されても良い。
【００２８】
セル接続情報２５には、集積回路に配置されたセル間の接続情報が格納されている。セル間の接続情報とは、例えば、集積回路に配置された複数のセルの中で、互いに接続されているセルを示す情報と、各セルが有するセル端子間の接続情報とを有しても良い。なお、セル接続情報２５とは、例えば、ネットリストである。
【００２９】
論理ブロック情報２６には、論理抽出部１２が抽出した、各セルの１以上の論理ブロックの識別情報が格納される。論理ブロック情報２６には、例えば、各セルが有する各論理ブロックを識別する情報と、各論理ブロックの論理とを関連付けて格納しても良い。また、論理ブロック情報２６には、セル端子を有する論理ブロックと、論理ブロック内のセル端子の配置位置の座標情報とを関連付けて格納しても良い。論理ブロック情報２６には、論理ブロックの論理を実現する、論理ブロック内のトランジスタの配線情報が格納されても良い。
【００３０】
セル論理情報２７には、例えば、セルが有する論理情報が格納されている。また、セル論理情報２７には、例えば、セルが有する論理を実現するための、セルが有する各論理の接続情報が格納されている。
【００３１】
また、セル論理情報２７には、セルが有する論理を実現するための、論理ブロック間の接続情報が格納されても良い。論理ブロック間の接続情報とは、例えば、第１の論理ブロックが有する第１のトランジスタのゲートと、第２の論理ブロックが有する第２のトランジスタのソースとの接続箇所を示す情報のことである。
【００３２】
接続ルール情報２８は、セル論理情報２７が有する論理ブロックの接続情報に応じて、配置設定部１４が設定したセル内の各論理ブロックの配置順を格納する情報である。以下の説明では、配置設定部１４が設定したセル内の各論理ブロックの配置順のことを、接続ルールとも言う。配置設定部１４による接続ルールの設定については、後述する。
【００３３】
図２は、セル内の配置処理を示すフローチャートである。
図２を参照して、実施形態の設計支援装置１によるセル内の配置処理を説明する。なお、以下の説明では、予め設計支援装置１にユーザが集積回路に配置するセルの配置位置情報を入力し、配置位置情報がセル位置情報２２に格納されているものとする。
【００３４】
位置決定部１１は、セル位置情報２２からセルの配置位置情報を取得する（Ｓ１０１）。このとき、セルの配置位置情報は、図１０に示すセルの配置状態を有するものとする。図１０において、Ｃ１−１と、Ｃ１−２〜Ｃ７とは、集積回路に配置されているセルを示す。また、Ｃ１−１と、Ｃ１−２とは、同じ基準セルＣ１のセルを示す。
【００３５】
位置決定部１１は、セルの配置位置情報が示す集積回路に配置された各セルの最適な端子位置を決定する（Ｓ１０２）。
【００３６】
ここで、図３を参照して、Ｓ１０２で実行するセルの最適な端子位置を決定する処理について説明する。
【００３７】
図３は、セルの最適な端子位置を決定する処理を示すフローチャートである。
位置決定部１１は、セル接続情報２５からセル間の接続情報を取得する（Ｓ２０１）。このとき、セル間の接続情報は、図１１に示すセルの配置位置情報を有するものとする。
【００３８】
そして、位置決定部１１は、取得したセル間の接続情報に含まれる各セルが有するセル端子の情報を参照し、最適位置を決定するセル端子を選択する（Ｓ２０２）。２回目以降のＳ２０２において、位置決定部１１は、例えば、未選択のセル端子を選択しても良い。
【００３９】
位置決定部１１は、セル間の接続情報を参照し、Ｓ２０２で選択したセル端子の接続先のセル端子が１つであるか否かを判定する（Ｓ２０３）。
【００４０】
位置決定部１１は、Ｓ２０３で接続先のセル端子が１つであるとき、接続先のセルに最も近い配置領域を、選択したセル端子の最適な端子位置に決定する（Ｓ２０４）。
【００４１】
このとき、位置決定部１１は、図１２に示すように、セルの配置位置情報とセル間の接続情報とから、集積回路に配置された各セルが有するセル端子の接続方向を判定する。なお、図１２には、一例として、Ｃ１−１とＣ１−２とが有するセル端子の接続方向を示している。そして、位置決定部１１は、図１３に示すように、セル端子の接続方向に応じて、接続先のセルに最も近い配置領域を、対象セルが有する各セル端子の最適な端子位置に決定する。対象セルとは、論理ブロックの並べ替えを行なう対象のセルのことをいう。配置領域とは、図１３の破線で示すように、位置決定部１１により分割されたセルの各領域でも良い。そして、位置決定部１１は、セルが有するセル端子の最適な端子位置を指定するとき、配置領域を指定しても良い。また、位置決定部１１は、セルのサイズが大きくなるほど、セルの領域を多くの配置領域に分割しても良い。
【００４２】
位置決定部１１は、例えば、次に示すように、接続先のセル端子が１つであるセル端子の最適な端子位置を決定する。対象セルＣ１−１は、例えば、基準セルＣ１と同じ種類のセルである。対象セルＣ１−１は、基準セルＣ１と同じセル端子を有する。そして、対象セルＣ１−１は、図１２に示すように、セル端子Ａ１が集積回路上の左上の位置にあるセルＣ２と電気的に接続される。このため、対象セルＣ１−１では、図１３に示すように、セル端子Ａ１の最適な端子位置を、左上の配置領域に決定している。位置決定部１１は、対象セルＣ１−１の他のセル端子Ａ２と、セル端子Ａ３と、セル端子Ｘとの最適な端子位置も同様に決定する。また、位置決定部１１は、他のセルが有するセル端子の最適な端子位置も同様に決定する。
【００４３】
そして、位置決定部１１は、セル端子の最適な端子位置を決定すると、決定したセル端子の最適な端子位置を最適端子情報２３に格納する（Ｓ２０５）。
【００４４】
位置決定部１１は、集積回路内の全てのセル端子について、最適な端子位置を決定したか否かを判定する（Ｓ２０６）。位置決定部１１は、集積回路内の全てのセル端子について、最適な端子位置を決定したとき（Ｓ２０６にてＹｅｓ）、セルの最適な端子位置を決定する処理を終了する。
【００４５】
位置決定部１１は、集積回路内の全てのセル端子について、まだ最適な端子位置を決定していないセル端子があるとき（Ｓ２０６にてＮｏ）、Ｓ２０２の処理を実行する。
【００４６】
Ｓ２０３において、位置決定部１１は、選択したセル端子から出力される信号を複数の接続先セルに入力するタイミングに対する影響度が、複数の接続先セルで平均的になるように、選択したセル端子の最適な端子位置を決定する（Ｓ２０７）。そして、位置決定部１１は、Ｓ２０５の処理を実行する。
【００４７】
Ｓ２０７において、位置決定部１１は、接続先セルの入力負荷や、接続先セルとの間の配線長（配線容量、配線抵抗）や、セットアップ時間とホールド時間とクロックの立ち上がり時間などの制約時間などを考慮しても良い。位置決定部１１は、さらに、セル端子から複数の接続先セルへ入力する信号に関するタイミングの影響度の合計が、セル端子の位置の変更前よりも増加しないように、セル端子の最適な端子位置を決定しても良い。タイミングに対する影響度が、複数の接続先セルで平均的になるとは、例えば、接続先セルが選択したセル端子から入力される信号を正常に読み取るためのタイミングマージンが複数の接続先セルで平均的になるということである。これにより、位置決定部１１は、例えば、図１４に示すように、対象セルＣ１０が有するセル端子Ａの最適な端子位置を、基準セルＣ１０の端子位置から見て左上の位置に設定する。なお、図１４において、最適な端子位置における端子間配線ＡＤが、端子間配線ＡＢや端子間配線ＡＣと比較して長く設定されているのは、例えば、基準セルにおいて、セルＣ１３のタイミングマージンがセルＣ１１やセルＣ１２と比較して長いためである。すなわち、セルＣ１３は、端子間配線ＡＤが、端子間配線ＡＢや端子間配線ＡＣと比較して長くても、同程度のタイミングマージンを得ることができるセルであるため、セルＣ１１やセルＣ１２のタイミングに対する影響の低減を優先させている。
【００４８】
また、Ｓ２０７において、位置決定部１１は、選択したセル端子と、複数の接続先セルそれぞれとの信号の送受信時間のずれが小さくなるように、選択したセル端子の最適な端子位置を決定しても良い。送受信時間とは、例えば、選択したセル端子と接続先セルとの間で送受信される信号の到達時間のことである。
【００４９】
以上により、位置決定部１１は、集積回路に配置されているセルが有するセル端子の最適な端子位置をそれぞれ決定する。
【００５０】
図２を参照して説明する。
Ｓ１０２において、セル端子の最適な端子位置を決定すると、論理配置部１５は、例えば、セル位置情報２２を参照して、集積回路に配置されているセルの中から配置処理をするセルを選択する（Ｓ１０３）。以下の説明において、Ｓ１０３で選択したセルのことを対象セルともいう。２回目以降のＳ１０３において、論理配置部１５は、例えば、未選択のセルを対象セルに選択しても良い。
【００５１】
そして、論理配置部１５は、配置セル情報２４を参照し、対象セルと基準セルの種類が同じであり、かつ対象セルが有する各セル端子の最適な端子位置が示す位置に、各セル端子が配置された配置セルが格納されているか否かを検索する（Ｓ１０４）。なお、論理配置部１５は、例えば、対象セルの種類を、セル位置情報２２から取得する。また、論理配置部１５は、例えば、対象セルの最適な端子位置情報を、最適端子情報２３から取得する。
【００５２】
論理配置部１５は、Ｓ１０４において、配置セル情報２４に対象セルに対応する配置セルが格納されているとき（Ｓ１０４にてＹｅｓ）、検索された対応する配置セルを集積回路に配置する（Ｓ１０５）。なお、論理配置部１５は、Ｓ１０５において、例えば、対象セルと基準セルの種類が同じであり、タイミングに対する影響度が許容範囲内であれば、対象セルが有する各セル端子の最適な端子位置が異なる配置セルを集積回路に配置しても良い。
【００５３】
そして、論理配置部１５は、集積回路に配置されている全てのセルについて、セル内の配置処理が終了したか否かを判定する（Ｓ１０６）。
【００５４】
論理配置部１５は、集積回路に配置されている全てのセルについて、セル内の配置処理が終了したとき（Ｓ１０６にてＹｅｓ）、セル接続情報２５を参照し、集積回路に配置された各セル間を配線接続する（Ｓ１０７）。そして、論理配置部１５は、セル内の配置処理を終了する。
【００５５】
また、論理配置部１５は、集積回路に配置されているセルの中で、セル内の配置処理が終了していないセルがあるとき（Ｓ１０６にてＮｏ）、Ｓ１０３の処理を実行する。
【００５６】
Ｓ１０４において、配置セル情報２４に対象セルに対応する配置セルがないとき、対象セル内を再配置する（Ｓ１０８）。
【００５７】
ここで、図４〜図８を参照して、Ｓ１０８で実行するセル内の再配置処理について説明する。
【００５８】
図４は、接続ルールを作成する処理を示すフローチャートである。
図４を参照して接続ルールを作成する処理を説明する。
【００５９】
論理抽出部１２は、対象セル内の配置単位である論理ブロックを抽出するために、基準セル情報２１から対象セルに対応する基準セルの回路情報を取得する（Ｓ３０１）。
【００６０】
そして、論理抽出部１２は、図１５に示すように、セルをトランジスタサイズでメッシュ分割する（Ｓ３０２）。以下の説明において、セルをトランジスタサイズにメッシュ分割した領域を、分割領域とも言う。なお、論理配置部１５は、分割領域を、セル内の論理ブロックを配置する位置の基準とする。
【００６１】
論理抽出部１２は、基準セルの回路情報を参照し、分割領域ごとに、電源と接続されている拡散層が連続しているか否かを判定することにより、拡散層が連続する分割領域の範囲を検索する。そして、論理抽出部１２は、図１６に示すように、検索された拡散層が連続する領域（図１６の各楕円部分）を、それぞれ論理ブロックとして抽出する（Ｓ３０３）。すなわち、論理抽出部１２は、ソース・ドレインが連続しているトランジスタのグループを検索し、検索されたトランジスタのグループを論理ブロックとして抽出する。論理ブロックは、セル内の配置単位として扱われる。これにより、論理配置部１５は、セル内の回路を再配置するとき、論理ブロック間の接続関係を維持することで、セル全体としての論理の変更、または論理の損失をすることなく、セル内の回路を再配置できる。
【００６２】
そして、論理抽出部１２は、抽出した１以上の論理ブロックを論理ブロック情報２６に格納する（Ｓ３０４）。このとき、論理抽出部１２は、セル端子を有する論理ブロックについては、論理ブロック内のセル端子の配置位置とともに、論理ブロック情報２６に格納しても良い。
【００６３】
次に、接続検索部１３は、論理ブロック情報２６を参照して、Ｓ３０３で抽出された論理ブロックが２つ以上あるか否かを判定する（Ｓ３０５）。接続検索部１３は、抽出された論理ブロックが１つのとき（Ｓ３０５にてＮｏ）、接続ルールを作成する処理を終了する。
【００６４】
接続検索部１３は、抽出された論理ブロックが２つ以上あるとき（Ｓ３０５にてＹｅｓ）、基準セル情報２１に格納された基準セルの回路情報を参照し、互いに接続される論理ブロック（接続論理ブロック）を検索する。さらに、接続検索部１３は、図１７に示すように、検索した互いに接続される論理ブロック間の接続箇所の座標情報を検索する（Ｓ３０６）。
【００６５】
また、配置設定部１４は、セル論理情報２７を参照し、セルが有する論理情報を取得する（Ｓ３０７）。
【００６６】
そして、配置設定部１４は、Ｓ３０５で検索した互いに接続される論理ブロック間の接続箇所と、Ｓ３０６で取得したセルが有する論理情報に応じて、セル内の配線が迂回しないための論理ブロックの配置順を示す接続ルールを作成する（Ｓ３０８）。図１８は、セルが有する論理情報が示す１〜４の論理と、論理ブロック１〜４との対応を示す。図１８に示すように、出力側の論理ブロックから入力側の論理ブロックへ向かう信号が、物理的に全て同じ方向に送信されるように、接続ルールは作成される。ここで、対象セルにセル端子が１つの場合、同じ方向とは、最適な端子位置に向かう方向としても良い。したがって、図１９に示すような、論理ブロック３から論理ブロック４に出力される信号の送信方向と、論理ブロック４から論理ブロック２に出力される信号の送信方向とが異なる接続ルールは作成しない。以上により、配置設定部１４は、セル内の配線が迂回しない接続ルールを作成する。
【００６７】
配置設定部１４は、作成した接続ルールを接続ルール情報２８に格納する（Ｓ３０９）。このとき、接続ルール情報２８には、例えば、図２０に示すように、セルが有する各論理ブロックの識別情報と、各論理ブロックが有する接続端子が対応付けられて格納される。さらに、接続ルール情報２８には、例えば、図２０に示すように、セルが有する各論理ブロックの識別情報に、前段に接続される論理ブロックと、後段に接続される論理ブロックとが対応付けられて格納される。
以上により、設計支援装置１は、セル内の配線が迂回しない接続ルールを作成する。
【００６８】
図５〜８を参照して論理ブロックの配置順の選択処理を説明する。図５、図６は、論理ブロックの配置処理を示すフローチャートである。図７は、論理ブロックの単体評価処理を示すフローチャートである。図８は、セルの評価処理を示すフローチャートである。
【００６９】
図５を参照して説明する。
論理配置部１５は、基準セル情報２１から対象セルに対応する基準セルの回路情報を取得する（Ｓ４０１）。
【００７０】
さらに、論理配置部１５は、最適端子情報２３から対象セルの最適な端子位置を取得する（Ｓ４０２）。
【００７１】
そして、論理配置部１５は、対象セルに対応する基準セルが有する各セル端子の端子評価値を求める（４０３）。基準セルが有するセル端子の端子評価値は、例えば、Ｓ４０２で取得した対象セルの最適な端子位置と基準セルのセル端子の配置位置との距離でも良い。このとき、セル端子の端子評価値は、小さい値であるほど、対象セルの最適な端子位置と基準セルが有するセル端子との位置が近いことを示す。
【００７２】
論理配置部１５は、Ｓ４０３で求めた基準セルが有する各セル端子の端子評価値を、それぞれ記憶部２０に記憶する（Ｓ４０４）。
【００７３】
次に、論理配置部１５は、対象セルに対応する基準セルのセル評価値を求める（Ｓ４０５）。基準セルのセル評価値は、例えば、Ｓ４０４で記憶部２０に記憶した基準セルが有する各セル端子の端子評価値を合計した値でも良い。このとき、基準セルのセル評価値は、小さい値であるほど、対象セルの各最適な端子位置と基準セルが有する各セル端子の位置との平均距離が近いことを示す。
【００７４】
論理配置部１５は、基準セルのセル評価値を、記憶部２０に記憶する（Ｓ４０６）。
論理配置部１５は、論理ブロック情報２６から対象セルが有する論理ブロックの種類と識別情報と論理ブロック内のセル端子の配置位置とを取得する（Ｓ４０７）。
【００７５】
さらに、論理配置部１５は、接続ルール情報２８から対象セルの接続ルールを取得する（Ｓ４０８）。
【００７６】
そして、論理配置部１５は、対象セルの中で、再配置されていない未配置の論理ブロックを選択する（Ｓ４０９）。
【００７７】
図６を参照して説明する。
論理配置部１５は、論理ブロックが配置されていない未配置の分割領域を選択する（Ｓ５０１）。
【００７８】
このとき、論理配置部１５は、Ｓ４０８で取得した接続ルールを参照して、Ｓ５０１で選択した分割領域に論理ブロックを配置した場合、論理ブロックの配置順が接続ルールにしたがう配置順となるか否かを判定する（Ｓ５０２）。論理配置部１５は、論理ブロックの配置順が接続ルールと異なるとき（Ｓ５０２にてＮｏ）、Ｓ５０１の処理を実行する。
【００７９】
論理配置部１５は、論理ブロックの配置順が接続ルールにしたがうとき（Ｓ５０２にてＹｅｓ）、論理ブロックをフリップ（左右反転）して配置するか否かを判定する（Ｓ５０３）。論理配置部１５は、論理ブロックの配置順と、それぞれの論理ブロックの左右反転配置との組み合わせについて、全ての組み合わせを作成するように、論理ブロックの左右反転配置を選択すれば良い。論理配置部１５は、例えば、同じ分割領域に論理ブロックを配置したことがあるとき、前回の配置と左右反転した論理ブロックを、分割領域に配置しても良い。
【００８０】
論理配置部１５は、論理ブロックをフリップすると判定すると（Ｓ５０３にてＹｅｓ）、論理ブロックを左右反転してＳ５０１で選択した分割領域に配置する（Ｓ５０４）。
【００８１】
また、論理配置部１５は、論理ブロックをフリップしないと判定すると（Ｓ５０３にてＮｏ）、論理ブロックを左右反転しないで、そのまま選択した分割領域に配置する（Ｓ５０５）。
【００８２】
図７を参照して説明する。
論理配置部１５は、配置した論理ブロックにセル端子があるか否かを判定する（Ｓ６０１）。論理配置部１５は、配置した論理ブロックにセル端子がないとき（Ｓ６０１にてＮｏ）、後述するＳ６０５の処理を実行する。
【００８３】
論理配置部１５は、配置した論理ブロックにセル端子があるとき（Ｓ６０１にてＹｅｓ）、対象セルの端子評価値を求める（Ｓ６０２）。対象セルの端子評価値は、例えば、Ｓ４０２で取得した対象セルの最適な端子位置から、対象セルに配置された論理ブロックが有するセル端子の配置位置との距離を求める。このとき、対象セルの端子評価値は、小さい値であるほど、対象セルの最適な端子位置と、対象セルに配置された論理ブロックの有するセル端子の位置が近いことを示す。また、論理ブロックが複数のセル端子を有するときには、各セル端子の端子評価値を求めても良い。
【００８４】
そして、論理配置部１５は、Ｓ６０２で求めた対象セルが有するセル端子の端子評価値が、対象セルに対応する基準セルが有する、対応するセル端子の端子評価値よりも小さいか否かを判定する（Ｓ６０３）。なお、論理ブロックが複数のセル端子を有するときには、各セル端子の端子評価値の合計値が、対象セルに対応する基準セルが有する、対応するセル端子の端子評価値の合計値よりも小さいか否かを判定しても良い。
【００８５】
論理配置部１５は、対象セルが有するセル端子の端子評価値が、基準セルが有するセル端子の端子評価値以上であるとき（Ｓ６０３にてＮｏ）、論理ブロックの配置を解除して（Ｓ６０４）、Ｓ５０１の処理を実行する。これにより、対象セル内の論理ブロックの再配置において、論理配置部１５は、基準セルのセル端子よりも、対象セルのセル端子が最適端子位置から離れるのを回避することができる。
【００８６】
論理配置部１５は、対象セルが有するセル端子の端子評価値が、基準セルが有するセル端子の端子評価値より小さいとき（Ｓ６０３にてＹｅｓ）、論理ブロックを選択した分割領域に配置することを決定する（Ｓ６０５）。これにより、対象セル内の論理ブロックの再配置において、論理配置部１５は、基準セルのセル端子よりも、対象セルのセル端子を最適端子位置に近づけることができる。
【００８７】
論理配置部１５は、Ｓ６０２で求めた対象セルが有するセル端子の端子評価値を、記憶部２０に記憶する（Ｓ６０６）。これにより、論理配置部１５は、対象セルが有する全ての論理ブロックが配置済みとなったとき、対象セルが有する全てのセル端子の端子評価値を記憶部２０に記憶することになる。
【００８８】
論理配置部１５は、全ての論理ブロックが配置済みであるか否かを判定する（Ｓ６０７）。論理配置部１５は、全ての論理ブロックが配置済みでないとき（Ｓ６０７にてＮｏ）、Ｓ４０９の処理を実行して、他の論理ブロック配置処理をする。
【００８９】
図８を参照して説明する。
論理配置部１５は、全ての論理ブロックが配置済みであるとき（Ｓ６０６にてＹｅｓ）、対象セルのセル評価値を求める（Ｓ７０１）。対象セルのセル評価値は、例えば、Ｓ６０６で記憶部２０に記憶した対象セルが有する各セル端子の端子評価値を合計した値でも良い。このとき、対象セルのセル評価値は、小さい値であるほど、対象セルの各最適な端子位置と対象セルが有する各セル端子の位置との平均距離が近いことを示す。
【００９０】
論理配置部１５は、Ｓ７０１で求めたセル評価値が記憶部２０に記憶しているセル評価値よりも小さい値であるか否かを判定する（Ｓ７０２）。記憶しているセル評価値とは、例えば、前回までにＳ７０１で求められたセル評価値の中で一番小さい値を示すセル評価としても良い。また、記憶しているセル評価値の初期値は、例えば、Ｓ４０６で記憶部２０に記憶された基準セルのセル評価値としても良い。
【００９１】
論理配置部１５は、Ｓ７０１で求めたセル評価値が記憶部２０に記憶しているセル評価値以上であるとき（Ｓ７０２にてＮｏ）、後述するＳ７０５の処理を実行する。
【００９２】
論理配置部１５は、Ｓ７０１で求めたセル評価値が記憶部２０に記憶しているセル評価値未満であるとき（Ｓ７０２にてＹｅｓ）、対象セルのセル評価値を更新する（Ｓ７０３）。このとき、論理配置部１５は、記憶部２０に記憶しているセル評価値にＳ７０１で求めたセル評価値を上書きしても良い。
【００９３】
また、論理配置部１５は、Ｓ６０５で決定した対象セルの論理ブロックの配置位置を、配置セル情報２４に格納する（Ｓ７０４）。このとき、論理配置部１５は、配置セル情報２４に格納している対象セルの論理ブロックの配置位置に、Ｓ６０５で決定した論理ブロックの配置位置を上書きしても良い。
【００９４】
そして、論理配置部１５は、セル内の論理ブロックの配置順の全ての組み合わせについて、Ｓ６０１〜Ｓ６０７の論理ブロックの単体評価処理、またはＳ７０１〜Ｓ７０４のセルの評価処理を行なったか否かを判定する（Ｓ７０５）。
【００９５】
論理配置部１５は、セル内の論理ブロックの配置順の全ての組み合わせについて、論理ブロックの単体評価処理、またはセルの評価処理が完了していないとき（Ｓ７０５にてＮｏ）、Ｓ４０９の処理を実行して、他の論理ブロックの配置順を評価する。
【００９６】
論理配置部１５は、セル内の論理ブロックの配置順の全ての組み合わせについて、論理ブロックの単体評価処理、またはセルの評価処理が完了したとき（Ｓ７０５にてＹｅｓ）、論理ブロックの配置順の選択処理を終了する。なお、Ｓ７０４で最後に配置セル情報２４に格納した論理ブロックの配置順は、接続ルールにしたがった上で、セル内の配線を可能な限り短くする論理ブロックの配置順となる。
【００９７】
以上により、論理配置部１５は、例えば、図２１に示すように、セル端子の最適位置（ａ）が設定されているとき、基準セル（ｂ）の論理ブロックを、各セル端子が最適位置（ａ）に近づくように再配置した、配置セル（ｃ）を作成する。
【００９８】
図２を参照して説明する。
論理配置部１５は、Ｓ７０４で最後に配置セル情報２４に格納した論理ブロックの配置順を、基準セルの論理ブロックを再配置した配置セルとして、配置セル情報２４に登録する（Ｓ１１０）。そして、論理配置部１５は、Ｓ１０６の処理を実行する。
【００９９】
図９は、コンピュータ装置の一実施例を示すブロック図である。
図９を参照して、設計支援装置１の構成について説明する。
【０１００】
図９において、コンピュータ装置１００は、制御回路１０１と、記憶装置１０２と、読書装置１０３と、記録媒体１０４と、通信インターフェイス１０５（通信Ｉ／Ｆ）と、入出力インターフェイス１０６（入出力Ｉ／Ｆ）と、ネットワーク１０７とを備えている。また、各構成要素は、バス１０８により接続されている。
【０１０１】
制御回路１０１は、コンピュータ装置１００全体の制御をする。そして、制御回路１０１は、例えば、ＣＰＵ、マルチコアＣＰＵ、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）およびＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）などである。制御回路１０１は、例えば、図１において、制御部１０として機能する。なお、端子評価値やセル評価値は、例えば、ＣＰＵ、ＦＰＧＡ、およびＰＬＤのキャッシュに記憶されても良い。
【０１０２】
記憶装置１０２は、各種データを記憶する。そして、記憶装置１０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）およびＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのメモリや、ＨＤ（Ｈａｒｄ  Ｄｉｓｋ）などで構成される。記憶装置１０２は、例えば、図１において、記憶部２０として機能する。そして、記憶装置１０２は、例えば、図１に示す、基準セル情報２１と、セル位置情報２２と、最適端子情報２３と、配置セル情報２４と、セル接続情報２５と、論理ブロック情報２６と、セル論理情報２７と、接続ルール情報２８とを記憶する。
【０１０３】
また、ＲＯＭは、ブートプログラムなどのプログラムを記憶している。ＲＡＭは、制御回路１０１のワークエリアとして使用される。ＨＤは、ＯＳ、アプリケーションプログラム、ファームウェアなどのプログラム、および各種データを記憶している。
【０１０４】
記憶装置１０２は、例えば、制御回路１０１を、制御部１０として機能させる設計支援プログラムを記憶する。
【０１０５】
そして、セル内の配置処理をするとき、設計支援装置１は、記憶装置１０２に記憶された設計支援プログラムをＲＡＭに読み出す。これにより、ＲＡＭに読み出された設計支援プログラムを制御回路１０１で実行することにより、設計支援装置１は、セル内の配置処理を実行する。
【０１０６】
なお、設計支援プログラムは、制御回路１０１が通信インターフェイス１０５を介してアクセス可能であれば、ネットワーク１０７上のサーバが有する記憶装置に記憶されていても良い。
【０１０７】
読書装置１０３は、制御回路１０１に制御され、着脱可能な記録媒体１０４のデータのリード／ライトを行なう。そして、読書装置１０３は、例えば、ＦＤＤ（Ｆｌｏｐｐｙ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｄｒｉｖｅ）、ＤＶＤＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＢＤＤ（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｋ  Ｄｒｉｖｅ）およびＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などである。
【０１０８】
記録媒体１０４は、各種データを保存する。
記録媒体１０４は、例えば、設計支援プログラムを記憶する。さらに、記録媒体１０４は、図１に示す、基準セル情報２１と、セル位置情報２２と、最適端子情報２３と、配置セル情報２４と、セル接続情報２５と、論理ブロック情報２６と、セル論理情報２７と、接続ルール情報２８とを記憶しても良い。
【０１０９】
そして、記録媒体１０４は、読書装置１０３を介してバス１０８に接続され、制御回路１０１が読書装置１０３を制御することにより、データのリード／ライトが行なわれる。また、記録媒体１０４は、例えば、ＦＤ（Ｆｌｏｐｐｙ  Ｄｉｓｋ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＢＤ（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｋ）、およびフラッシュメモリなどである。
【０１１０】
通信インターフェイス１０５は、ネットワーク１０７を介してコンピュータ装置１００と他の装置とを通信可能に接続する。
【０１１１】
入出力インターフェイス１０６は、例えば、キーボード、マウス、およびタッチパネルなどと接続され、接続された装置から各種情報を示す信号が入力されると、バス１０８を介して入力された信号を制御回路１０１に出力する。また、入出力インターフェイス１０６は、制御回路１０１から出力された各種情報を示す信号がバス１０８を介して入力されると、接続された各種装置にその信号を出力する。入出力インターフェイス１０６は、例えば、ユーザからの集積回路に配置するセルの配置位置情報や、集積回路の機能情報などの入力を受け付ける。
【０１１２】
ネットワーク１０７は、例えば、ＬＡＮ、無線通信、またはインターネットなどであり、コンピュータ装置１００と他の装置を通信接続する。
【０１１３】
以上のように、実施形態の設計支援装置１は、集積回路上に基準セルを配置したあと、セル内の論理ブロックを、セル内の配線が短くなるように再配置する。これにより、設計支援装置１は、第１のセルが有するトランジスタと、第２のセルが有するトランジスタとの間の配線であるセル間配線を短くし、各種信号の入出力タイミングへの影響を低減することができる。一例として、従来技術のように、基準セルＣ１をそのまま集積回路上に配置した場合、各セル内の配線は、図２２に示すようになる。これに対して、実施形態の設計支援装置１は、基準セルＣ１を配置セルＣ１−１と、配置セルＣ１−２とに再配置し、集積回路上に配置するので、各セル内の配線を図２３に示すように短くし、セル間配線を短縮することができる。
【０１１４】
また、実施形態の設計支援装置１は、再配置したセルである配置セルを記憶し、種類と、他のセルと接続されるセル端子の最適な位置とが同じセルを配置するとき、記憶した配置セルを流用する。これにより、実施形態の設計支援装置１は、同じ構成の配置セルを作成する処理を回避することができる。
【０１１５】
なお、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【０１１６】
以上記載した各実施例を含む実施形態に関し、さらに以下の付記を開示する。なお、本発明は、以下の付記に限定されるものではない。
（付記１）
第１セルが有する第１端子の最適な位置を、前記第１セルと、前記第１端子を介して前記第１セルと接続される第２セルとの間の端子間配線が短くなる第１位置に決定する位置決定部と、
前記第１端子を有する論理ブロックを含む１以上の論理ブロックを、前記第１セルから抽出する論理抽出部と、
前記第１端子が前記第１位置に近づくように、前記１以上の論理ブロックを配置する論理配置部と、
を備えることを特徴とする設計支援装置。
（付記２）
前記設計支援装置は、さらに、
前記論理抽出部が前記第１セルから２以上の論理ブロックを抽出したとき、前記２以上の論理ブロックの中から、互いに接続される２以上の接続論理ブロックを検索する接続検索部と、
前記２以上の接続論理ブロックの中で、出力側となる各接続論理ブロックのそれぞれの出力先が、前記同じ方向となるように、前記２以上の接続論理ブロックそれぞれの配置順を設定する配置設定部と、
を備え、
前記論理配置部は、
前記２以上の論理ブロックをそれぞれ配置するとき、前記２以上の接続論理ブロックの配置を前記配置設定部で設定された配置順とし、かつ前記第１端子が前記第１位置に近づくように、前記２以上の論理ブロックをそれぞれ配置する
ことを特徴とする付記１に記載の設計支援装置。
（付記３）
前記論理抽出部は、
前記第１セルが有する拡散層が連続する領域を抽出し、前記１以上の論理ブロックとする
ことを特徴とする付記１または２に記載の設計支援装置。
（付記４）
位置決定部は、
前記第１端子の接続先セルが複数あるとき、前記第１端子から出力される信号が前記接続先セルへ入力されるタイミングに対する影響度が、前記複数の接続先セルで平均的になるように、前記第１位置を決定する
ことを特徴とする付記１〜３のいずれか一つに記載の設計支援装置。
（付記５）
前記論理配置部は、
前記１以上の論理ブロックの配置を変更するごとに、前記第１端子と前記第１位置との距離を求め、前記距離が最小となる配置に、前記１以上の論理ブロックを配置する
ことを特徴とする付記１〜４のいずれか一つに記載の設計支援装置。
（付記６）
前記第１セルは、さらに、
第３セルと接続される第２端子を備え、
前記位置決定部は、さらに、
前記第２端子の最適な位置を、前記第１セルと前記第３セルとの間の配線長が短くなる第２位置に決定し、
前記論理配置部は、さらに、
前記第２端子が前記第２位置に近づくように、前記１以上の論理ブロックをそれぞれ配置する
ことを特徴とする付記１〜５のいずれか一つに記載の設計支援装置。
（付記７）
前記論理配置部は、
前記１以上の論理ブロックの配置を変更するごとに、前記第１端子と前記第１位置との距離と、前記第２端子と前記第２位置との距離との合計値を求め、前記合計値が最小となる配置に、前記１以上の論理ブロックを配置する
ことを特徴とする付記６に記載の設計支援装置。
（付記８）
前記設計支援装置は、さらに、
前記論理配置部で配置した、前記第１セルが有する１以上の論理ブロックの配置を記憶する記憶部を備え、
前記論理配置部は、
前記第１セルと同じ種類であり、かつ他のセルと接続される端子の最適な位置が前記第１位置に対応する位置に設定された第３セルがあるとき、前記第３セルが有する１以上の論理ブロックの配置を、それぞれ前記第１セルが有する１以上の論理ブロックと同じ配置にする
ことを特徴とする付記１〜７のいずれか一つに記載の設計支援装置。
（付記９）
前記論理配置部は、
前記１以上の論理ブロックそれぞれの配置位置と、前記１以上の論理ブロックそれぞれの左右反転配置とを変更し、前記第１端子が前記第１位置に近づくように、前記１以上の論理ブロックをそれぞれ配置する
ことを特徴とする付記１〜８のいずれか一つに記載の設計支援装置。
（付記１０）
コンピュータにより実行される情報処理方法であって、
前記コンピュータは、
第１セルが有する第１端子の最適な位置を、前記第１セルと、前記第１端子を介して前記第１セルと接続される第２セルとの間の端子間配線が短くなる第１位置に決定し、
前記第１端子を有する論理ブロックを含む１以上の論理ブロックを、前記第１セルから抽出し、
前記第１端子が前記第１位置に近づくように、前記１以上の論理ブロックをそれぞれ配置する
ことを実行する設計支援方法。
（付記１１）
前記コンピュータは、さらに、
前記第１のセルから１以上の論理ブロックを抽出する処理において、前記第１セルから２以上の論理ブロックを抽出したとき、前記２以上の論理ブロックの中から、互いに接続される２以上の接続論理ブロックを検索し、
前記検索された２以上の接続論理ブロックの中で、出力側となる各接続論理ブロックのそれぞれの出力先が、同じ方向となるように、前記２以上の接続論理ブロックそれぞれの配置順を設定し、
前記２以上の論理ブロックをそれぞれ配置するとき、前記２以上の接続論理ブロックの配置を、前記配置順を設定する処理において設定された配置順とし、かつ前記第１端子が前記第１位置に近づくように、前記２以上の論理ブロックをそれぞれ配置する
ことを実行する付記１０に記載の設計支援方法。
（付記１２）
第１セルが有する第１端子の最適な位置を、前記第１セルと、前記第１端子を介して前記第１セルと接続される第２セルとの間の端子間配線が短くなる第１位置に決定し、
前記第１端子を有する論理ブロックを含む１以上の論理ブロックを、前記第１セルから抽出し、
前記第１端子が前記第１位置に近づくように、前記１以上の論理ブロックをそれぞれ配置する
処理をコンピュータに実行させることを特徴とする設計支援プログラム。
（付記１３）
前記第１のセルから１以上の論理ブロックを抽出する処理において、前記第１セルから２以上の論理ブロックを抽出したとき、前記２以上の論理ブロックの中から、互いに接続される２以上の接続論理ブロックを検索し、
前記検索された２以上の接続論理ブロックの中で、出力側となる各接続論理ブロックのそれぞれの出力先が、同じ方向となるように、前記２以上の接続論理ブロックそれぞれの配置順を設定し、
前記２以上の論理ブロックをそれぞれ配置するとき、前記２以上の接続論理ブロックの配置を、前記配置順を設定する処理において設定された配置順とし、かつ前記第１端子が前記第１位置に近づくように、前記２以上の論理ブロックをそれぞれ配置する
処理をコンピュータに実行させることを特徴とする付記１２に記載の設計支援プログラム。
【符号の説明】
【０１１７】
１  設計支援装置
１０  制御部
１１  位置決定部
１２  論理抽出部
１３  接続検索部
１４  配置設定部
１５  論理配置部
２０  記憶部
２１  基準セル情報
２２  セル位置情報
２３  最適端子情報
２４  配置セル情報
２５  セル接続情報
２６  論理ブロック情報
２７  セル論理情報
２８  接続ルール情報
１００  コンピュータ装置
１０１  制御回路
１０２  記憶装置
１０３  読書装置
１０４  記録媒体
１０５  通信インターフェイス
１０６  入出力インターフェイス
１０７  ネットワーク
１０８  バス
【図１】
2014211824.tif 000003
【図２】
2014211824.tif 000004
【図３】
2014211824.tif 000005
【図４】
2014211824.tif 000006
【図５】
2014211824.tif 000007
【図６】
2014211824.tif 000008
【図７】
2014211824.tif 000009
【図８】
2014211824.tif 000010
【図９】
2014211824.tif 000011
【図１０】
2014211824.tif 000012
【図１１】
2014211824.tif 000013
【図１２】
2014211824.tif 000014
【図１３】
2014211824.tif 000015
【図１４】
2014211824.tif 000016
【図１５】
2014211824.tif 000017
【図１７】
2014211824.tif 000018
【図１８】
2014211824.tif 000019
【図１９】
2014211824.tif 000020
【図２０】
2014211824.tif 000021
【図２１】
2014211824.tif 000022
【図２２】
2014211824.tif 000023
【図２３】
2014211824.tif 000024
【図２４】
2014211824.tif 000025
【図１６】
2014211824.tif 000026
【図２５】
2014211824.tif 000027
【手続補正書】
【提出日】平成26年4月16日(2014.4.16)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図２２
【補正方法】変更
【補正の内容】
【図２２】
2014211824.tif 000028