(57)【要約】【課題】本発明は、同一種類マクロブロックを複数使用する際に、迂回配線を防止して配線長を低減できる集積回路のレイアウト設計支援装置を提供する。【解決手段】集積回路のレイアウト設計支援装置であって、端子座標算出制御部（４）と、レイアウト処理制御部（６）とを含む構成とした。端子座標算出制御部（４）は、複数種類のマクロブロックに含まれる複数の同一種類マクロブロックを異なる種類の各マクロブロックとみなして、各マクロブロックの各マクロ端子の最適座標位置を各々算出する。レイアウト処理制御部（６）は、端子座標算出制御部（４）にて算出された各マクロ端子位置に基づいて、各前記マクロ端子に関連する種々の配線レイアウト処理を行う。【選択図】図１
2008217365.tif 000002
【特許請求の範囲】
【請求項１】
複数種類のマクロブロックに含まれる複数の同一種類マクロブロックを異なる種類の各マクロブロックとみなして、各前記マクロブロックの各マクロ端子の最適座標位置を各々算出する端子座標算出制御部と、
前記端子座標算出制御部にて算出された各マクロ端子位置に基づいて、各前記マクロ端子に関連する種々の配線レイアウト処理を行うレイアウト処理制御部と、
を含むことを特徴とする集積回路のレイアウト設計支援装置。
【請求項２】
請求項１に記載の集積回路のレイアウト設計支援装置において、
前記端子座標算出制御部は、
各前記マクロブロックのブロック境界領域にある各マクロ端子の各第１座標位置を算出する第１の端子座標算出処理部、
を含み、
前記レイアウト処理制御部は、
前記第１の端子座標算出処理部にて算出された各前記マクロ端子の各前記第１座標位置に基づいて、前記各マクロブロック間に形成される第１レイアウト領域内にて各前記マクロ端子間を配線接続する配線レイアウト処理を行う第１のレイアウト処理部、
を含むことを特徴とする集積回路のレイアウト設計支援装置。
【請求項３】
請求項２に記載の集積回路のレイアウト設計支援装置において、
前記端子座標算出制御部は、
前記第１の端子座標算出処理部にて算出された各前記マクロ端子の各前記第１座標位置に基づいて、前記マクロブロック内の特定原点に対する前記第１座標位置の相対位置である第２座標位置を算出し、一つの前記同一種類マクロブロックの境界領域上であって、各前記第２座標位置に、異なる種類とみなされた複数の前記同一種類マクロブロックのそれぞれのマクロ端子の全てを配置する第２の端子座標算出処理部、
を含み、
前記レイアウト処理制御部は、
前記同一種類マクロブロックに対しては、前記マクロブロック内に形成される第２レイアウト領域内にて、機能素子と前記全端子配置処理部にて配置された全マクロ端子とを配線接続する配線レイアウト処理を行い、かつ、他の前記マクロブロックに対しては、機能素子と前記マクロ端子とを配線接続する配線レイアウト処理を行う第２のレイアウト処理部、
を含むことを特徴とする集積回路のレイアウト設計支援装置。
【請求項４】
請求項３に記載の集積回路のレイアウト設計支援装置において、
前記レイアウト処理制御部は、
前記第１のレイアウト処理部にて配線レイアウト処理された前記第１レイアウト領域と、前記第２のレイアウト処理部にて配線レイアウト処理された前記第２レイアウト領域と、をマージさせて、前記第１のレイアウト領域と前記第２のレイアウト領域よりなる第３レイアウト領域を作成するとともに、前記第３レイアウト領域にて、前記全マクロ端子に向けて配線した各配線部のうち、接続が完結しない余分配線部を削除する第３のレイアウト処理部、
を含むことを特徴とする集積回路のレイアウト設計支援装置。
【請求項５】
請求項１に記載の集積回路のレイアウト設計支援装置において、
前記端子座標算出制御部は、
前記各マクロブロックの位置関係情報と、前記各マクロブロックの接続関係情報とに基づいて、前記各マクロブロックの各マクロ端子間の距離が短くなる座標位置を算出することを特徴とする集積回路のレイアウト設計支援装置。
【請求項６】
請求項１に記載の集積回路のレイアウト設計支援装置において、
前記端子座標算出制御部は、
少なくとも２つの各マクロブロックの各特定点同士を結ぶ特定点結合関数を算出する特定点結合関数算出部と、
前記特定点結合関数算出部にて算出された前記特定点結合関数と、前記各マクロブロックの各境界線とが交差する交差部の座標位置を算出する交差部座標算出部と、
を含むことを特徴とする集積回路のレイアウト設計支援装置。
【請求項７】
請求項１に記載の集積回路のレイアウト設計支援装置において、
前記端子座標算出制御部は、
少なくとも２つの各マクロブロックの距離が最短となる互いに対向する一対の辺を求める辺算出部と、
前記辺上の特定位置を算出する特定位置算出部と、
を含むことを特徴とする集積回路のレイアウト設計支援装置。
【請求項８】
請求項１又は２に記載の集積回路のレイアウト設計支援装置において、
前記端子座標算出制御部は、
複数の同一種類マクロブロックに対して各々異なるマクロ名を割り当てて当初の共通マクロ名を個別マクロ名に変更するマクロ名変更部と、
各前記同一種類マクロブロックの各前記マクロ端子に対して各々異なるマクロ端子名を割り当てて当初の共通端子名を個別端子名に変更する端子名変更部と、
を含み、
端子座標算出前に、予めマクロ名及び端子名を変更することで複数の前記同一種類マクロブロックを識別して異なる種類のマクロブロック及び異なるマクロ端子とみなすことを特徴とする集積回路のレイアウト設計支援装置。
【請求項９】
請求項８に記載の集積回路のレイアウト設計支援装置において、
複数種類の各マクロブロックの位置関係を示した第１レイアウト情報を蓄積する第１レイアウト情報蓄積処理部と、
各前記マクロブロック間の接続関係を示した第１ネットリスト情報を蓄積する第１ネットリスト情報蓄積処理部と、
を含み、
前記マクロ名変更部は、
前記第１レイアウト情報及び前記第１ネットリスト情報のそれぞれの前記マクロブロックについての名称変更を行うことを特徴とする集積回路のレイアウト設計支援装置。
【請求項１０】
請求項９に記載の集積回路のレイアウト設計支援装置において、  
前記マクロブロック内の機能素子及び前記マクロブロックの境界上のマクロ端子の位置関係を示した第２レイアウト情報を記憶した第２レイアウト情報蓄積処理部と、
前記機能素子と前記マクロ端子との接続関係を示した第２ネットリスト情報を記憶した第２ネットリスト情報蓄積処理部と、
を含み、
前記端子名変更部は、
前記第１レイアウト情報、前記第１ネットリスト情報、前記第２レイアウト情報、前記第２ネットリスト情報のそれぞれの前記マクロ端子についての名称変更を行うことを特徴とする集積回路のレイアウト設計支援装置。
【請求項１１】
請求項８に記載の集積回路のレイアウト設計支援装置において、
前記レイアウト処理制御部は、
前記第１のレイアウト領域に関連する処理を行う第１の期間、前記第２のレイアウト領域に関連する処理を行う第２の期間、前記第３のレイアウト領域に関連する処理を行う第３の期間のうち、前記第１の期間中には、前記マクロ名変更部にて変更された個別マクロ名を用いて処理を行い、前記第２の期間及び前記第３の期間中には、当初の共通マクロ名を用いて各処理を行うように制御するマクロ名制御部と、
前記第１の期間及び前記第２の期間中には、前記端子名変更部にて変更された個別端子名を用いて各処理を行い、前記第３の期間中には、当初の共通端子名を用いて処理を行うように制御する端子名制御部と、
を含むことを特徴とする集積回路のレイアウト設計支援装置。
【請求項１２】
請求項１１に記載の集積回路のレイアウト設計支援装置において、
変更前後のマクロ名の対応関係を示す第１名称対応関係情報と、変更前後のマクロ端子名の対応関係を示す第２名称対応関係情報とを規定したマクロ変更リスト情報を蓄積するマクロ変更リスト情報蓄積処理部を含み、
前記レイアウト処理制御部は、前記マクロ変更リスト情報を参照して各期間での名称変更制御を行うことを特徴とする集積回路のレイアウト設計支援装置。
【請求項１３】
請求項１２に記載の集積回路のレイアウト設計支援装置において、
前記マクロ変更リスト情報蓄積処理部は、
前記マクロブロックの種類を示すマクロ種類名に応じて、前記第１名称対応関係情報及び前記第２名称対応関係情報が対応付けられることを特徴とする集積回路のレイアウト設計支援装置。
【請求項１４】
請求項１に記載の集積回路のレイアウト設計支援装置において、
レイアウトに必要な情報を入力する情報入力部、
を含み、
前記端子座標算出制御部及び前記レイアウト処理制御部は、
前記情報入力部より入力された情報に基づいて、制御を各々行うことを特徴とする集積回路のレイアウト設計支援装置。
【請求項１５】
請求項１に記載の集積回路のレイアウト設計支援装置において、
レイアウト結果を出力する配置配線結果出力部を、
含み、
前記レイアウト処理制御部は、
前記配置配線結果出力部より配線レイアウト処理の結果情報を出力するように制御することを特徴とする集積回路のレイアウト設計支援装置。
【請求項１６】
複数種類のマクロブロックに含まれる同一種類マクロブロックを別々の種類のマクロブロックとみなして、前記マクロブロックの境界領域上のマクロ端子の最適座標位置を算出する第１の端子座標算出処理工程と、
各前記マクロブロック間に形成される第１レイアウト領域内にて、各マクロ端子間を配線接続する配線レイアウト処理を行う第１レイアウト処理工程と、
別々の座標位置として算出された前記複数の同一種類マクロブロックの各マクロ端子を、１つの前記同一種類マクロブロック上に全て配置するように前記マクロ端子の座標位置を算出する第２の端子座標算出処理工程と、
前記マクロブロック内に形成される第２レイアウト領域にて、一つの前記同一種類マクロブロックの前記全マクロ端子に関連する配線レイアウト処理を行う第２レイアウト処理工程と、
前記第１レイアウト領域と前記第２レイアウト領域をマージして第３レイアウト領域を生成する第３レイアウト処理工程と、
前記第２レイアウト処理工程にて、全マクロ端子に対して配線した各配線部のうち、接続が完結しない余分な配線部を削除する余分配線部削除工程と、
を含むことを特徴とする集積回路のレイアウト設計支援方法。
【請求項１７】
請求項１６に記載の集積回路のレイアウト設計支援方法において、
前記第１の端子座標算出処理工程は、
少なくとも２つの各マクロブロックの各特定点同士を結ぶ特定点結合関数を算出する特定点結合関数算出制御工程と、
前記特定点結合関数算出部にて算出された前記特定点結合関数と、前記各マクロブロックの各境界線とが交差する交差部の座標位置を算出する交差部座標算出制御工程と、
を含むことを特徴とする集積回路のレイアウト設計支援方法。
【請求項１８】
請求項１６に記載の集積回路のレイアウト設計支援方法において、
前記第１の端子座標算出処理工程は、
少なくとも２つの各マクロブロックの距離が最短となる互いに対向する一対の辺を求める辺算出制御工程と、
前記辺上の特定位置を算出する特定位置算出制御工程と、
を含むことを特徴とする集積回路のレイアウト設計支援方法。
【請求項１９】
請求項１７又は請求項１８に記載の集積回路のレイアウト設計支援方法において、
前記第１の端子座標算出処理工程は、
端子座標算出前に、複数の同一種類マクロブロックに対して各々異なるマクロ名を割り当てて当初の共通マクロ名を個別マクロ名に変更するマクロ名変更工程と、
端子座標算出前に、各前記同一種類マクロブロックの各前記マクロ端子に対して各々異なるマクロ端子名を割り当てて当初の共通端子名を個別端子名に変更する端子名変更工程と、
を含むことを特徴とする集積回路のレイアウト設計支援方法。  
【請求項２０】
請求項１９に記載の集積回路のレイアウト設計支援方法において、
前記第２の端子座標算出処理工程は、
前記複数の同一種類マクロブロックに対しては、共通マクロ名及び個別端子名を用いて処理を行うことを特徴とする集積回路のレイアウト設計支援方法。
【請求項２１】
請求項１９に記載の集積回路のレイアウト設計支援方法において、  
前記第３レイアウト処理工程は、
変更されたマクロ名及びマクロ端子名を元に戻した後に、マージを行うことを特徴とする集積回路のレイアウト設計支援方法。
【請求項２２】
集積回路のレイアウト処理を行うコンピュータが実行可能なプログラムであって、
複数種類のマクロブロックに含まれる複数の同一種類マクロブロックを異なる種類の各マクロブロックとみなして、各前記マクロブロックの各マクロ端子の最適座標位置を各々算出する端子座標算出制御部と、
前記端子座標算出制御部にて算出された各マクロ端子位置に基づいて、各前記マクロ端子に関連する種々の配線レイアウト処理を行うレイアウト処理制御部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項２３】
請求項２２に記載のプログラムにおいて、
前記端子座標算出制御部は、
各前記マクロブロックのブロック境界領域にある各マクロ端子の各第１座標位置を算出する第１の端子座標算出処理部、
を含み、
前記レイアウト処理制御部は、
前記第１の端子座標算出処理部にて算出された各前記マクロ端子の各前記第１座標位置に基づいて、前記各マクロブロック間に形成される第１レイアウト領域内にて各前記マクロ端子間を配線接続する配線レイアウト処理を行う第１のレイアウト処理部、
を含むことを特徴とするプログラム。
【請求項２４】
請求項２３に記載のプログラムにおいて、
前記端子座標算出制御部は、
前記第１の端子座標算出処理部にて算出された各前記マクロ端子の各前記第１座標位置に基づいて、前記マクロブロック内の特定原点に対する前記第１座標位置の相対位置である第２座標位置を算出し、一つの前記同一種類マクロブロックの境界領域上であって、各前記第２座標位置に、異なる種類とみなされた複数の前記同一種類マクロブロックのそれぞれのマクロ端子の全てを配置する第２の端子座標算出処理部、
を含み、
前記レイアウト処理制御部は、
前記同一種類マクロブロックに対しては、前記マクロブロック内に形成される第２レイアウト領域内にて、機能素子と前記全端子配置処理部にて配置された全マクロ端子とを配線接続する配線レイアウト処理を行い、かつ、他の前記マクロブロックに対しては、機能素子と前記マクロ端子とを配線接続する配線レイアウト処理を行う第２のレイアウト処理部、
を含むことを特徴とするプログラム。
【請求項２５】
請求項２４に記載のプログラムにおいて、
前記レイアウト処理制御部は、
前記第１のレイアウト処理部にて配線レイアウト処理された前記第１レイアウト領域と、前記第２のレイアウト処理部にて配線レイアウト処理された前記第２レイアウト領域と、をマージさせて、前記第１のレイアウト領域と前記第２のレイアウト領域よりなる第３レイアウト領域を作成するとともに、前記第３レイアウト領域にて、前記全マクロ端子に向けて配線した各配線部のうち、接続が完結しない余分配線部を削除する第３のレイアウト処理部、
を含むことを特徴とするプログラム。
【請求項２６】
請求項２２に記載のプログラムにおいて、
前記端子座標算出制御部は、
前記各マクロブロックの位置関係情報と、前記各マクロブロックの接続関係情報とに基づいて、前記各マクロブロックの各マクロ端子間の距離が短くなる座標位置を算出することを特徴とするプログラム。
【請求項２７】
請求項２２に記載のプログラムにおいて、
前記端子座標算出制御部は、
少なくとも２つの各マクロブロックの各特定点同士を結ぶ特定点結合関数を算出し、
算出された前記特定点結合関数と、前記各マクロブロックの各境界線とが交差する交差部の座標位置を算出することを特徴とするプログラム。
【請求項２８】
請求項２２に記載のプログラムにおいて、
前記端子座標算出制御部は、
少なくとも２つの各マクロブロックの距離が最短となる互いに対向する一対の辺を求め、前記辺上の特定位置を算出することを特徴とするプログラム。
【請求項２９】
請求項２２又は２３に記載のプログラムにおいて、
前記端子座標算出制御部は、
端子座標算出前に、複数の同一種類マクロブロックに対して各々異なるマクロ名を割り当てて当初の共通マクロ名を個別マクロ名に変更し、各前記同一種類マクロブロックの各前記マクロ端子に対して各々異なるマクロ端子名を割り当てて当初の共通端子名を個別端子名に変更し、複数の前記同一種類マクロブロックを識別して異なる種類のマクロブロックとみなすことを特徴とするプログラム。
【請求項３０】
請求項２９に記載のプログラムにおいて、
複数種類の各マクロブロックの位置関係を示した第１レイアウト情報を蓄積する第１レイアウト情報蓄積処理部と、
各前記マクロブロック間の接続関係を示した第１ネットリスト情報を蓄積する第１ネットリスト情報蓄積処理部として、
コンピュータを機能させ、
前記マクロ名変更部は、
前記第１レイアウト情報及び前記第１ネットリスト情報のそれぞれの前記マクロブロックについての名称変更を行うことを特徴とするプログラム。
【請求項３１】
請求項３０に記載のプログラムにおいて、  
前記マクロブロック内の機能素子及び前記マクロブロックの境界上のマクロ端子の位置関係を示した第２レイアウト情報を蓄積する第２レイアウト情報蓄積処理部と、
前記機能素子と前記マクロ端子との接続関係を示した第２ネットリスト情報を蓄積する第２ネットリスト情報蓄積処理部として、
コンピュータを機能させ、
前記端子名変更部は、
前記第１レイアウト情報、前記第１ネットリスト情報、前記第２レイアウト情報、前記第２ネットリスト情報のそれぞれの前記マクロ端子についての名称変更を行うことを特徴とするプログラム。
【請求項３２】
請求項３０に記載のプログラムにおいて、
前記レイアウト処理制御部は、
前記第１のレイアウト領域に関連する処理を行う第１の期間、前記第２のレイアウト領域に関連する処理を行う第２の期間、前記第３のレイアウト領域に関連する処理を行う第３の期間のうち、前記第１の期間中には、前記マクロ名変更部にて変更された個別マクロ名を用いて処理を行い、前記第２の期間及び前記第３の期間中には、当初の共通マクロ名を用いて各処理を行うように制御するマクロ名制御部と、
前記第１の期間及び前記第２の期間中には、前記端子名変更部にて変更された個別端子名を用いて各処理を行い、前記第３の期間中には、当初の共通端子名を用いて処理を行うように制御する端子名制御部と、
を含むことを特徴とするプログラム。
【請求項３３】
請求項３２に記載のプログラムにおいて、
変更前後のマクロ名の対応関係を示す第１名称対応関係情報と、変更前後のマクロ端子名の対応関係を示す第２名称対応関係情報とを規定したマクロ変更リスト情報を蓄積するマクロ変更リスト情報蓄積処理部として、
コンピュータを機能させ、
前記レイアウト処理制御部は、前記マクロ変更リスト情報を参照して各期間での名称変更制御を行うことを特徴とするプログラム。
【請求項３４】
請求項３３に記載のプログラムにおいて、
前記マクロ変更リスト情報蓄積処理部は、
前記マクロブロックの種類を示すマクロ種類名に応じて、前記第１名称対応関係情報及び前記第２名称対応関係情報が対応付けられることを特徴とするプログラム。
【請求項３５】
コンピュータが行う集積回路のレイアウト処理に用いられるレイアウト情報のデータ構造であって、
複数種類の各マクロブロックの位置関係を示した第１レイアウト情報と、
各前記マクロブロック間の接続関係を示した第１ネットリスト情報と、
前記複数種類の各マクロブロックに含まれる同一種類マクロブロックのマクロ名が変更される前後の第１名称対応関係情報と、前記同一種類マクロブロックのマクロ端子名が変更される前後の第２名称対応関係情報とを規定したマクロ変更リスト情報と、
を含み、
前記第１レイアウト情報、前記第１ネットリスト情報、及び前記マクロ変更リスト情報は、
コンピュータが、
複数種類のマクロブロックに含まれる複数の同一種類マクロブロックを異なる種類の各マクロブロックとみなして、各前記マクロブロックの各マクロ端子の最適座標位置を各々算出する端子座標計算と、
前記端子座標計算により求められた一方のマクロブロックの最適座標位置と他方のマクロブロックの最適座標位置との間で配線接続する第１レイアウト処理と、を行うのに、
利用されることを特徴とするデータ構造。
【請求項３６】
請求項３５に記載のデータ構造において、
前記マクロブロック内の機能素子及び前記マクロブロックの境界上のマクロ端子の位置関係を示した第２レイアウト情報と、
前記機能素子と前記マクロ端子との接続関係を示した第２ネットリスト情報と、
を含み、
前記第２レイアウト情報及び前記第２ネットリスト情報は、
コンピュータが、
複数の同一種類マクロブロックに設定されたマクロ端子の全てを、一つの同一種類マクロブロックに配置させる全端子配置処理と、
前記一つの同一種類マクロブロック内の特定の機能素子から配置された全ての前記マクロ端子に対して配線接続する第２レイアウト処理と、を行うのに、
利用されることを特徴とするデータ構造。
【請求項３７】
請求項３５に記載のデータ構造において、
配線処理後の前記第１レイアウト情報と、配線処理後の前記第２のレイアウト情報とをマージした第３レイアウト情報を含み、
前記第３レイアウト情報は、
コンピュータが、配線部のうち線分の一端が機能素子又は他の線分に繋がらない余分配線部を削除する処理を行うのに、
利用されることを特徴とするレイアウト情報のデータ構造。
【請求項３８】
請求項３５に記載のデータ構造において、
前記第１のレイアウト情報は、
コンピュータが、
複数の同一種類マクロブロックに対して各々異なるマクロ名が割り当てられるマクロ名変更処理と、
各マクロ端子に対して各々異なるマクロ端子名が割り当てられる端子名変更処理と、
を行うのに、
利用されることを特徴とするデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路のレイアウト設計支援装置、集積回路のレイアウト設計支援方法、プログラム、及びデータ構造に関する。
【背景技術】
【０００２】
大規模な集積回路（例えばＬＳＩ等）のレイアウト設計においては、階層レイアウト手法によりチップをマクロ（マクロブロック）という設計単位に分割し、各マクロブロックのレイアウト処理を並列的に行うことで設計期間を短縮する方法が広く用いられている。
【０００３】
このようなＬＳＩのレイアウト設計において、同一機能を持ったマクロブロックを複数用いるＬＳＩの場合は、設計効率を向上させる観点から、共通のマクロレイアウトパターンをＬＳＩのチップ上で複数個使用することが考えられる。このような従来技術を図３２、図３３に示す。図３２は、従来のレイアウト設計支援装置によるマクロブロック間の配線レイアウト処理の一例を示す説明図である。図３３は、チップレイアウト後の配線レイアウト状態を示す説明図である。
【０００４】
図３２に示すように、チップ１０００の上位階層内に、マクロブロック１００１ａ、１００１ｂ、１００１ｃ、１００１ｄを配置する。このうち、４つのマクロブロック１００１ａは、同一機能を有する同一種類のマクロブロックである。図３２では、この他、複数の異なる種類のマクロブロック１００１ｂ、１００１ｃ、１００１ｄも混在している。４つの同一種類のマクロブロック１００１ａは、既に設計済みのマクロブロック等を利用しているため、内部機能素子（例えば論理回路素子等）のパターンやマクロ端子１００２の位置も通常固定化された状態で利用される。そして、各マクロブロック１００１ａ、１００１ｂ、１００１ｃ、１００１ｄの配置を行った後に、各マクロブロック１００１ａ、１００１ｂ、１００１ｃ、１００１ｄ間の領域にて各マクロ端子１００２間に配線１００３を形成するような配線レイアウト処理を行う。その後、各マクロブロック内の配線レイアウト処理を行い、図３３に示すように、配線された後のチップ１０００のレイアウトが形成される。
【０００５】
さらに、この種のＬＳＩのレイアウト設計支援装置の関連技術として、例えば以下に示す特許文献１乃至特許文献５が挙げられる。
【０００６】
特許文献１では、半導体集積回路の機能ブロック（マクロブロック）間の概略配線処理を行い、この概略配線処理後の概略配線経路の結果と、概略配線経路上の端子と辺との座標位置関係により配置優先方向を決定し、端子位置が前記配線優先方向と一致しない端子についてこの配線優先方向に基づいてその端子位置の変更を行い端子位置を再決定する。そして、各機能ブロックの端子位置を変更することで、各機能ブロック間の配線をできるだけ短くする点が開示されている（第２頁右上欄〜第３頁左下欄）。
【０００７】
特許文献２の集積回路設計装置は、内部レイアウトが未了の仮のマクロブロックを配置し、仮想の外部端子を設定し、チップ全体の配置処理および概略配線処理を行う仮レイアウト手段と、仮レイアウトされた結果に基づいて各マクロブロックの外部端子の位置を決定する外部端子位置設定手段と、この決定された外部端子の位置に基づいて各マクロブロック内のレイアウト設計を行うマクロブロックレイアウト設計手段と、チップ全体の詳細配線を行う配線手段と、マクロブロックの外形を新たに定義することによって決定された外部端子の位置を変更するマクロブロック変更手段と、を備える点を開示している（第３頁右上欄〜第３頁左下欄）。これにより、複数のマクロブロックをチップ上に配置し、マクロブロック内部及びマクロブロック間の配線を仮に行ってみて、全体のレイアウトを見た後に、必要に応じて、マクロブロックの大きさや端子の配置位置、配線経路等の変更を行う。
【０００８】
特許文献３では、ハードマクロ設計フローにおいて、チップに搭載するマクロ（マクロブロック）の個数分、マクロの配置配線情報を、チップの配置配線情報にコピーし、コピーされたチップの配置配線情報内のマクロ名を、マクロを階層構造にした＜特許文献３の図６（ｂ）階層図の＞回路接続情報（論理回路、入出力端子、配線など）のマクロ名と一対一対応させるため、マクロ名を変更する点を開示している（段落番号００３８、００４８）。
【０００９】
さらに、特許文献３では、ライブラリ格納部に格納されている自動配線ライブラリとオフセット情報（例えば、マクロ内論理回路の配置座標、論理回路間の配線座標、チップに配置するマクロの座標など）から、マクロをチップの配置配線情報内の希望する搭載位置に移動（オフセット）し、マクロがオフセットされた（所望の位置に移動された）チップの配置配線情報を作成する点を開示している（段落番号００３８、００４９）。その後、チップの自動配線ツールを使い、マクロを階層構造にしたチップの回路接続情報と、チップの自動配置配線ライブラリ、及びオフセットされたチップの配置配線情報を読み込み、マクロのみの配置配線情報を作成する（段落番号００３８、００５０）。さらに、チップの自動配線ツールを使い、その他の論理回路を自動配置し、配置情報を作成し、自動配線を行い、配置配線情報を作成し、配置配線結果と配線長を確認し、チップ設計を終了する（段落番号００３０〜００３４）。
【００１０】
また、特許文献３では、チップの配置配線情報内のマクロ配置位置にオフセットを掛ける時、マクロをＸ軸方向やＹ軸方向に反転させたり、マクロ全体を回転させる点が開示されている（段落番号００７６）。
【００１１】
特許文献４では、マクロ（マクロブロック）の異なる辺に設けた複数の同一機能端子の中から使用する端子を選択する構成が開示されている（段落番号００２６〜００２７）。より詳細には、図３４に示すように、マクロブロック１０１０は、該マクロブロック１０１０の４辺に同一機能端子（ａｎ、ｂｎ、aｅ、ｂｅ、ａｗ、ｂｗ、ａｓ、ｂｓ）を有している。マクロブロック間の配線処理を行う際には、複数の同一機能端子（ａｎ、ｂｎ、aｅ、ｂｅ、ａｗ、ｂｗ、ａｓ、ｂｓ）のうちマクロブロック間の配線が短くなるような１辺の端子（例えばａｓ、ｂｓ）を選択して配線処理を行う。ここで、マクロ入力端子（ａｎ、aｅ、ａｗ、ａｓ）については、複数存在するうちの１つのマクロ入力端子（ａｓ）のみが配線処理で使用される。使用されない他のマクロ入力端子（ａｎ、aｅ、ａｗ）については、マクロ入力端子（ａｎ、aｅ、ａｗ）を論理０に固定するために、トップレイアウト上でクランプ処理を行う。クランプ処理は、クランプセルＣＳを発生させてマクロ入力端子（ａｎ、aｅ、ａｗ）と配線することをいう。
【００１２】
特許文献５では、トップを複数に分割したユニット（マクロブロック）のうち、信号名を除き同一構成の複数の同一ユニットについて、一つの代表ユニットについてのみレイアウトを設計するレイアウト設計支援装置において、複数の同一ユニット上の通過配線を含むトップのレイアウトを設計し、全ての通過配線を代表ユニットに落とし込むとともに、通過配線について代表ユニットの境界上にマクロピンを設け、マクロピンを固定して代表ユニットのレイアウトを設計する技術が開示されている。
【特許文献１】特開平３−２０９８４８号公報
【特許文献２】特開平４−６０８７３号公報
【特許文献３】特開平１１−３０７６４４号公報
【特許文献４】特開２００１−３１９９７６号公報
【特許文献５】特開２００５−３３２０５３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ところで、チップ上で複数の同一種類マクロブロックが使用されると、該同一種類マクロブロックとその周囲に形成される他の異なる種類のマクロブロックとの配置関係が、状況に応じて如何なる配置となるかによって、マクロブロック間の配線性を起因として、タイミング設計におけるシステムＬＳＩの回路遅延が、正常動作に必要な遅延範囲内におさまらず、最適な結果が得られないケースが存在していた。
【００１４】
具体的には、マクロブロック内のレイアウトは、同一性を保たなければならないため、マクロブロックの外部端子であるマクロ端子の位置は全て同一である必要がある。このような同一種類マクロブロックを用いてトップレイアウトの配線処理を行おうとすると、結果として、図３２及び図３３に示すように、一部のマクロブロック間配線１００３が、トップ階層のレイアウトにて引き回されて形成されてしまう。このため、配線長が増大してＬＳＩ全体の配線性が悪化したり、配線遅延時間が悪化するという問題があった。
【００１５】
特許文献１では、各機能ブロック（マクロブロック）の端子位置（マクロ端子の位置）は、段階的にしか変更できず、また、配線優先方向が水平又は鉛直方向に限られており、端子位置が変更されたとしても、配線を引き回さなければならないため、配線長が増大するという問題がある。
【００１６】
また、特許文献１では、概略配線処理を行った後に、改めて端子位置や配線などの変更を行わなければならないため、無駄な処理工数が増大するという問題がある。
【００１７】
特許文献２では、マクロブロックの大きさや形状そのものを変更してまで端子位置を変更してしまうため、複数の同一機能のマクロブロックを利用したい場合に各マクロブロックの同一性を維持できないという問題がある。さらに、仮に特許文献２のマクロブロックを複数用いた場合、図３６に示すように、端子位置に変更の必要のあるマクロブロックの端子位置を変更したとしても、チップ１０３０上に形成された際に、マクロブロック領域内に迂回配線部１０３２が生じてしまい、配線長が増大するという問題がある。さらにまた、一度仮レイアウト手段により仮レイアウトを行った後に、修正を行う必要があるため、無駄な処理工数が増大するという問題がある。
【００１８】
特許文献３では、マクロブロックをチップ上にコピーした後に、オフセット処理により、マクロブロックを特定の位置に移動させ、その後、マクロ端子間の配線処理を行う。このような、コピーして配置した位置から、マクロブロックを他の特定箇所に移動させる等の処理を行うオフセット処理があるため、処理工数が増大するという問題がある。
【００１９】
また、特許文献３では、複数のマクロ（マクロブロック）をコピーして、同一種類の複数のマクロのみを用いているため、図３２に示すような、同一種類の複数のマクロブロックと、他の種類の各々異なる複数のマクロブロックとが混在するようなレイアウトの状況では、特許文献３のマクロブロックを用いた場合、マクロブロックのマクロ端子が固定されているために、図３２同様、やはり迂回配線が必要であり、配線長が増大するという問題がある。
【００２０】
さらに、特許文献３のマクロブロックを図３２に示すような配置に用いた場合、マクロブロックの配置位置にオフセットを掛けるオフセット処理を用いることによって、マクロブロックをＸ軸或いはＹ軸に反転させたり、マクロブロック全体を回転させたりすることが考えられる。この場合、配置関係が上手く適合しないマクロブロックの数だけ、回転などの処理を行わなければならず、処理工数もさることながら、マクロブロックの回転や移動のための計算量や処理に時間がかかるという問題がある。特に、多数のマクロブロックを用いる場合であって、各々が異なる方向で配置しなければならない状況では、処理工数がさらに増大するという問題がある。
【００２１】
また、特許文献３では、コピー後のオフセット処理にて、チップの配置配線情報内の所望の搭載位置にマクロを移動させる際には、複数のコピーされた各マクロを各々移動させる必要があるので、オフセット処理の前に、各マクロを識別するためにマクロ名を変更している。階層構造を示したチップの回路接続情報では、各マクロ名は識別されているが、マクロ（の配線接続情報）のコピーによって生成されたチップの配線接続情報では、変更前の状態では識別されていないからである。しかしながら、図３２のようなケースに、仮に特許文献３のマクロブロックを複数用いた場合、マクロ名を変更したとしても、複数のマクロブロックについて各々オフセット処理が必要であるという問題があった。さらに、マクロブロック内部において引き回し配線が形成されているため、チップ全体としての総配線長を短く形成することができない。
【００２２】
さらに、特許文献３では、マクロ内の配線処理においては、自動配線では望まれる配線が得られない場合等必要に応じて、チップの自動配置配線ツールの手配線機能にて自動配線を修正する必要がある（段落番号００２５）。さらに、自動配置配線ツールは、マクロ外の配線処理でも利用される。ここにおいて、マクロブロック内の配線及びマクロブロック間の配線において、配線長を確認し、自動配線が望ましくない場合には、修正が必要であったために、さらに処理に時間がかかるという問題がある。つまり、特許文献３では、オフセット処理に加えて、マクロブロック内の配線の修正、及びマクロブロック間の配線の修正のそれぞれが必要であるため、処理工数が増大するという問題がある。
【００２３】
特許文献４では、マクロブロックの４辺の端子のうち、使用されない３辺のマクロ入力端子については、各マクロ入力端子に対するクランプ処理に手間がかかるという問題がある。例えば、図３４に示すように、使用するマクロ入力端子ａｓ以外の３個の入力端子ａｗ、ａｎ、ａｅのそれぞれについて、クランプ処理する必要がある。この際、クランプセルＣＳと、端子（ａｎ、aｅ、ａｗ）とクランプセルＣＳを接続する配線とが必要になる。このようなマクロ構成のマクロブロック１０１０を複数用いようとすると、各マクロブロックについて各々不使用端子をクランプ処理しなければならなくなるので、さらに手間がかかるという問題がある。
【００２４】
例えば、図３５に示すように、特許文献４のマクロブロック１０１０を複数用いるようなチップ１０２０の場合には、一つのマクロブロック１０１０に対して、前に述べた不使用端子に対するクランプ処理のためのクランプセルＣＳと、クランプセルと不使用端子との配線と、が必要であるのに加えて、他のマクロブロック１０１０に対してもクランプセルＣＳと、配線とが必要になるという問題がある。しかも、各マクロブロックで、クランプ処理すべき３辺が異なる位置にあるので、周囲の状況に応じたクランプ処理を行わなければならず、処理に手間がかかり、処理工数が増大するという問題がある。また、クランプセルＣＳと、不使用端子とクランプセルＣＳとを接続する配線とを、マクロブロック１０１０の領域外に設けなければならず、無駄な素子数の増大、配線の増大となり、チップ全体の処理速度の遅延や消費電力の増大を招くという問題がある。
【００２５】
さらに、特許文献４では、図３４に示すように、マクロブロック１０１０は、実質的にマクロ（論理素子の集合体）として機能している実質機能マクロ領域（内部中核回路）１０１１に、各辺の端子に汎用性を持たせるために端子選択手段と称する新たな複数の論理素子を、符号１０１２と符号１０１３との間の領域（端子選択手段領域）に設けなければならない。しかも、端子選択手段領域の領域面積は、実質機能マクロ領域の領域面積より大きいスペースを確保しなければならないため、１つのマクロ全体としての領域面積が大きくなってしまうという問題がある。
【００２６】
このようなことは、例えば、特許文献４のマクロブロック１０１０を複数用いるような場合には、図３５に示すように、端子選択手段に占める領域ＳＡが大となり、実質機能マクロ領域を有効に活用できないという問題がある。また、実質機能マクロ領域による素子以外に、端子選択手段専用の素子が必要となり、素子数が増大するという問題がある。このようなマクロブロック１０１０内に、本来マクロ回路として機能する以外の接続専用の機能部を有することは、無駄な素子数や配線数の増大に繋がりチップ全体の動作速度の遅延を招くという問題がある。
【００２７】
特許文献５では、各ユニット（マクロブロック）間の配線（ネット）は、引き回されているため、配線長が長くなるという問題がある。
【００２８】
本発明は、上記した技術の問題点を解決することを課題としてなされたものであって、その目的とするところは、仮レイアウトや概略配線処理、オフセット処理あるいはクランプ処理などの不要な処理を行うことなく、また、無駄な素子を形成することなく必要なマクロブロック領域を確保しながらも、同一種類マクロブロックを複数使用する場合に、迂回配線を防止して配線長を低減することのできる集積回路のレイアウト設計支援装置、集積回路のレイアウト設計方法、集積回路のレイアウト設計用のプログラム、及びデータ構造を提供することにある。
【課題を解決するための手段】
【００２９】
上記目的は、独立請求項に記載の特徴の組み合わせにより達成され、また、下位請求項は、発明の更なる有利な具体例を規定する。この発明の概要は、必要な特徴すべてを列挙しているものではなく、よってこれらの特徴群の下位結合（サブコンビネーション）も発明になり得る。
本発明の集積回路のレイアウト設計支援装置は、端子座標算出制御部と、レイアウト処理制御部と、を含む構成とした。端子座標算出制御部は、複数種類のマクロブロックに含まれる複数の同一種類マクロブロックを異なる種類の各マクロブロックとみなして、各前記マクロブロックの各マクロ端子の最適座標位置を各々算出する。レイアウト処理制御部は、前記端子座標算出制御部にて算出された各マクロ端子位置に基づいて、各前記マクロ端子に関連する種々の配線レイアウト処理を行う。
【００３０】
かかる構成によれば、同一種のマクロブロックが複数使用される場合、それらを別々のマクロブロックとみなしてマクロ端子の最適座標位置を算出する。そして、算出されたマクロ端子の位置に基づいて、関連するマクロブロック間の配線レイアウト処理、あるいは、マクロブロック内の配線レイアウト処理を行う。
【００３１】
本発明の集積回路のレイアウト設計支援方法は、第１の端子座標算出処理工程（プロセス）と、第１レイアウト処理工程と、第２の端子座標算出処理工程と、第２レイアウト処理工程と、第３レイアウト処理工程と、余分配線部削除工程と、を含む手順とした。
【００３２】
第１の端子座標算出処理工程は、複数種類のマクロブロックに含まれる同一種類マクロブロックを別々の種類のマクロブロックとみなして、前記マクロブロックの境界領域上のマクロ端子の最適座標位置を算出する。第１レイアウト処理工程は、各前記マクロブロック間に形成される第１レイアウト領域内にて、各マクロ端子間を配線接続する配線レイアウト処理を行う。第２の端子座標算出処理工程は、別々の座標位置として算出された前記複数の同一種類マクロブロックの各マクロ端子を、１つの前記同一種類マクロブロック上に全て配置するように前記マクロ端子の座標位置を算出する。第２レイアウト処理工程は、前記マクロブロック内に形成される第２レイアウト領域にて、一つの前記同一種類マクロブロックの前記全マクロ端子に関連する配線レイアウト処理を行う。第３レイアウト処理工程は、前記第１レイアウト領域と前記第２レイアウト領域をマージして第３レイアウト領域を生成する。余分配線部削除工程は、前記第２レイアウト処理工程にて、全マクロ端子に対して配線した各配線部のうち、接続が完結しない余分な配線部を削除する。
【００３３】
かかる手順では、同一種類マクロブロックが複数使用される場合、それらを別々のマクロブロックとみなしてマクロブロックの端子座標を計算し、第１レイアウト（マクロブロック間の配線レイアウト処理）を行う。第２レイアウトにおいては、別々の座標として設定された端子に全て接続するよう、当該マクロブロック内の配線処理を１回行う。前記第レイアウト領域と第２レイアウト領域とをマージした後、接続が完結しない余分な配線部を削除する。
【００３４】
本発明のプログラムは、集積回路のレイアウト処理を行うコンピュータが実行可能なプログラムであって、端子座標算出制御部と、レイアウト処理制御部として、コンピュータを機能させることを特徴としている。端子座標算出制御部は、複数種類のマクロブロックに含まれる複数の同一種類マクロブロックを異なる種類の各マクロブロックとみなして、各前記マクロブロックの各マクロ端子の最適座標位置を各々算出する。レイアウト処理制御部は、前記端子座標算出制御部にて算出された各マクロ端子位置に基づいて、各前記マクロ端子に関連する種々の配線レイアウト処理を行う。
【００３５】
本発明のデータ構造は、コンピュータが行う集積回路のレイアウト処理に用いられるレイアウト情報のデータ構造であって、第１レイアウト情報と、第１ネットリスト情報と、マクロ変更リスト情報と、を含む構造とした。第１レイアウト情報は、複数種類の各マクロブロックの位置関係を示す。第１ネットリスト情報は、各前記マクロブロック間の接続関係を示す。マクロ変更リスト情報は、前記複数種類の各マクロブロックに含まれる同一種類マクロブロックのマクロ名が変更される前後の第１名称対応関係情報と、前記同一種類マクロブロックのマクロ端子名が変更される前後の第２名称対応関係情報とを規定する。前記第１レイアウト情報、前記第１ネットリスト情報、及び前記マクロ変更リスト情報は、コンピュータが、端子座標計算と、第１レイアウト処理とを行うのに利用される。端子座標計算は、複数種類のマクロブロックに含まれる複数の同一種類マクロブロックを異なる種類の各マクロブロックとみなして、各前記マクロブロックの各マクロ端子の最適座標位置を各々算出する。第１レイアウト処理は、前記端子座標計算により求められた一方のマクロブロックの最適座標位置と他方のマクロブロックの最適座標位置との間で配線接続する。
【発明の効果】
【００３６】
本発明によれば、複数の同一種類のマクロブロックを含む複数のマクロブロック内外での配線レイアウト処理において、仮レイアウトや概略配線処理、オフセット処理あるいはクランプ処理などの不要な処理を行うことなく、また、無駄な素子を形成することなく必要なマクロブロック領域を確保しながらも、マクロ端子に接続する全ての配線を短小化した形でレイアウトを行うことができ、迂回配線（配線引き回し）をなくし、集積回路の配線性を向上させ配線遅延時間の悪化を抑制できる。
【発明を実施するための最良の形態】
【００３７】
以下、本発明の好適な実施の形態の一例について、図面を参照して具体的に説明する。
〔第１の実施の形態〕
（集積回路のレイアウト設計支援装置の全体構成）
先ず、本発明の集積回路のレイアウト設計支援装置の全体構成について、図１を参照して説明する。図１は、本実施の形態によるＬＳＩのレイアウト設計支援装置の全体の概略構成を示すブロック図である。
【００３８】
本実施の形態の集積回路（例えばＬＳＩ等）のレイアウト設計支援装置１は、ユーザが集積回路の設計を行う際に使用する情報処理装置（コンピュータ）であり、図１に示すように、各種情報を入力するための各種情報入力部１１と、予め登録されている情報並びにユーザ（レイアウト設計者）が操作入力により入力された情報を記憶して蓄積処理する蓄積処理部としての記憶部８と、レイアウトによる配置配線結果を出力する配置配線結果出力部６１と、前記各種情報入力部１１にて入力された情報に基づき各種の処理を行うとともに、これら各部の制御を司る制御部２と、を含んで構成される。
【００３９】
ここで、各種情報入力部１１は、例えばキーボード・マウス等が挙げられ、各種データを操作入力する操作入力部として機能する。記憶部８は、例えばＲＡＭなどのメモリ、ハードディスク等が挙げられ、各種データ、各種プログラム等を記憶してある。配置配線結果出力部６１は、例えば種々の情報等を表示するための表示部としてのスクリーンなどが挙げられる。制御部２は、例えばＣＰＵ或いはＣＰＵ＋プログラムＲＯＭ等が挙げられる。なお、図示しないが、所定のインターフェースを介して他の周辺機器と通信可能な複数の通信部を形成してもよい。
【００４０】
さらに、レイアウト設計支援装置１は、プログラム制御により動作するものであり、デスクトップ、ラップトップコンピュータその他無線・有線通信機能を有する情報機器、またはこれに類するコンピュータなどいかなるコンピュータでもよく、ネットワーク関連の機能を有しもよく、移動式・固定式を問わない。
【００４１】
図１に示すブロック図における各ブロック（例えば符号４、６、５ａ、５ｂ、２１、３１、４１、３５、４４、５４、７０、９０等）は、コンピュータが適宜なメモリに格納された各種プログラムを実行することにより、該プログラムにより機能化された状態を示すソフトウエアモジュール構成である。すなわち、物理的構成は例えばＣＰＵ（或いはＣＰＵとメモリ）等ではあるが、各部によるソフトウエア構成は、プログラムの制御によってＣＰＵが発揮する複数の機能を、それぞれ複数の部による構成要素として表現したものである。ＣＰＵがプログラムによって実行されている動的状態（プログラムを構成する各手順を実行している状態）を機能表現した場合、ＣＰＵ内に各部が構成されることになる。この場合、図１に示すように、制御部２内に各部（例えば符号４、６、５ａ、５ｂ、２１、３１、４１、３５、４４、５４、７０、９０等）が形成される。プログラムが実行されていない静的状態にあっては、各部の構成を実現するプログラム全体（或いは各部の構成に含まれるプログラム各部）は、メモリ（プログラムROM等）あるいはハードディスクなどの記憶領域に記憶されている。以下に示す各部の説明は、プログラムにより機能化されたコンピュータをプログラムの機能と共に説明したものと解釈することも出来るし、また、固有のハードウエアにより恒久的に機能化された複数の電子回路ブロックからなる装置を説明したものとも解釈することが出来ることは、当然である。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現でき、いずれかに限定されるものではない。
【００４２】
（各部の構成の包含関係）
制御部２は、図１に示すように、複数種類のマクロブロックに含まれる複数の同一種類マクロブロックを異なる種類の各マクロブロックとみなして、各前記マクロブロックの各マクロ端子の最適座標位置を各々算出する端子座標算出制御部４と、端子座標算出制御部４にて算出された各マクロ端子位置に基づいて、各前記マクロ端子に関連する種々の配線レイアウト処理を行うレイアウト処理制御部６と、を含んで構成される。
【００４３】
端子座標算出制御部４は、各前記マクロブロックのブロック境界領域にある各マクロ端子の各第１座標位置を算出する第１の端子座標算出処理部５aと、第１の端子座標算出処理部５ａにて算出された各前記マクロ端子の各前記第１座標位置に基づいて、前記マクロブロック内の特定原点に対する前記第１座標位置の相対位置である第２座標位置を算出し、一つの前記同一種類マクロブロックの境界領域上であって、各前記第２座標位置に、異なる種類とみなされた複数の前記同一種類マクロブロックのそれぞれのマクロ端子の全てを配置する第２の端子座標算出処理部５ｂと、を含んで構成される。
【００４４】
第１の端子座標算出処理部５ａは、トップ階層変更部２１と、階層マクロ端子座標決定部３１とを含んで構成される。第２の端子座標算出処理部５ｂは、階層マクロ端子追加及び端子座標設定処理部４１を含んで構成される。
【００４５】
レイアウト処理制御部６は、第１の端子座標算出処理部５ａにて算出された各前記マクロ端子の各前記第１座標位置に基づいて、前記各マクロブロック間に形成される第１レイアウト領域内にて各前記マクロ端子間を配線接続する配線レイアウト処理を行うであるトップレイアウト処理部３５（本発明にいう「第１のレイアウト処理部」）を含んで構成される。
【００４６】
レイアウト処理制御部６は、同一種類マクロブロックに対しては、前記マクロブロック内に形成される第２レイアウト領域内にて、機能素子と前記全端子配置処理部にて配置された全マクロ端子とを配線接続する配線レイアウト処理を行い、かつ、他の前記マクロブロックに対しては、機能素子と前記マクロ端子とを配線接続する配線レイアウト処理を行うマクロレイアウト処理部４４（本発明にいう「第２のレイアウト処理部」）を含んで構成される。
【００４７】
レイアウト処理制御部６は、チップレイアウト処理部５４（本発明にいう「第３のレイアウト処理部」）を含んで構成される。チップレイアウト処理部５４は、トップレイアウト処理部４４にて配線レイアウト処理されたトップレイアウト領域（第１レイアウト領域）と、マクロレイアウト処理部４４にて配線レイアウト処理されたマクロレイアウト領域（第２レイアウト領域）と、をマージさせて、トップレイアウト領域とマクロレイアウト領域よりなるチップレイアウト領域（第３レイアウト領域）を作成するとともに、前記チップレイアウト領域にて、全マクロ端子に向けて配線した各配線部のうち、接続が完結しない余分配線部を削除する。  
【００４８】
レイアウト処理制御部６は、その他の各種処理あるいは各種制御処理を行うその他の各部９０と、これら各部を制御する中央制御部７０と、を含んで構成される。  
【００４９】
記憶部８は、蓄積処理部として機能し、物理ライブラリ情報記憶部８１と、トップレイアウト情報（第１レイアウト情報）を記憶するトップレイアウト情報記憶部８２（本発明にいう「第１レイアウト蓄積処理部」）と、トップネットリスト情報（第１ネットリスト情報）を記憶するトップネットリスト情報記憶部８３（本発明にいう「第１ネットリスト蓄積処理部」）と、マクロネットリスト情報（第２ネットリスト情報）を記憶するマクロネットリスト情報記憶部８４（本発明にいう「第２ネットリスト蓄積処理部」）と、マクロ変更リスト情報を記憶する階層マクロ変更リスト情報記憶部８５（本発明にいう「マクロ変更リスト蓄積処理部」）と、マクロレイアウト情報（第２レイアウト情報）を記憶するマクロレイアウト情報記憶部８６（本発明にいう「第２レイアウト情報蓄積処理部」）と、チップレイアウト情報記憶部８６と、これら各部の記憶ないしは情報蓄積処理を管理する情報記憶管理部８９とを含んで構成される。なお、記憶部８は、専用のデータベースとして構成してもよい。
【００５０】
（各部の詳細）
次に、各部の構成の詳細について、図１及び図２を参照しつつ説明する。図１に示すように、各種情報入力部１１は、ＬＳＩの物理ライブラリ情報、トップレイアウト情報、トップネットリスト情報、マクロネットリスト情報、などＬＳＩレイアウトを行う際に必要な情報を入力する。そして、入力された情報（ＬＳＩの物理ライブラリ情報、トップレイアウト情報、トップネットリスト情報、マクロネットリスト情報等）は、それぞれ、物理ライブラリ情報記憶部８１、トップレイアウト情報記憶部８２、トップネットリスト情報記憶部８３、マクロネットリスト情報記憶部８４などに各々記憶される。ここで、「ネット」は、論理設計においては、マクロや論理回路素子間を結ぶ接続関係を示す。
【００５１】
トップ階層変更部２１は、前記各種情報入力部１１にて入力された配置後のトップレイアウト情報及びトップネットリスト情報において同一種の階層マクロが複数用いられている場合、それら階層マクロを同一の大きさと端子をもち、名称のみが異なる別のマクロに置き換えてトップレイアウト情報とトップネットリスト情報を変更し、変更結果を階層マクロ変更リスト情報記憶部８５に格納する。
【００５２】
トップ階層変更部２１は、図２に示すように、マクロ名変更部２２と、端子名変更部２３とを含んで構成される。
【００５３】
マクロ名変更部２２は、複数の同一種類マクロブロックに対して各々異なるマクロ名を割り当てて当初の共通マクロ名を個別マクロ名に変更する。
【００５４】
端子名変更部２３は、各前記同一種類マクロブロックの各前記マクロ端子に対して各々異なるマクロ端子名を割り当てて当初の共通端子名を個別端子名に変更する。これにより、端子座標算出前に、予めマクロ名及び端子名を変更することで複数の前記同一種類マクロブロックを識別して異なる種類のマクロブロックとみなすことができる。
【００５５】
階層マクロ端子座標決定部３１は、図１に示すように、前記トップ階層変更部２１で変更されたトップレイアウト情報とトップネットリスト情報を参照し、階層マクロの位置関係と、トップネットリストにおける各階層マクロの接続関係から、階層マクロ端子間の距離が短くなるような位置に端子を配置してトップレイアウト情報を更新する。
【００５６】
さらに、階層マクロ端子座標決定部３１は、図２に示すように、中心点結合関数算出部３２（本発明にいう「特定点結合関数算出部」）と、交差部座標算出部３３と、端子配置処理部３４とを含んで構成される。
【００５７】
中心点結合関数算出部３２は、少なくとも２つの各マクロブロックの各中心点同士を結ぶ中心点結合関数を算出する。なお、結合関数は、例えば１次関数（直線）等が挙げられるがこれに限定されるものではない。少なくとも２点を通過する関数であれば、３次関数等であってもよい。さらに、各中心点同士でなくても、マクロブロックの境界領域にある特定点同士であってもよい。また、一方のマクロブロックの第１特定点と他方のマクロブロックの第２特定点同士を結合する場合であってもよい。このような場合には、特定点結合関数算出部を構成できる。この特定点結合関数算出部は、少なくとも２つの各マクロブロックの各特定点同士を結ぶ特定点結合関数を算出する。
【００５８】
交差部座標算出部３３は、中心点結合関数算出部３３にて算出された中心点結合関数と、前記各マクロブロックの各境界線とが交差する交差部の座標位置を算出する。端子配置処理部３４は、これらの結果に基づいて、前記交差部に対してマクロ端子を配置する処理を行う。
【００５９】
トップレイアウト処理部３５は、図１に示すように、前記階層マクロ端子座標決定部３１で更新されたトップレイアウト情報記憶部８２のトップレイアウト情報と、前記トップ階層変更部２１で更新されたトップネットリスト情報記憶部８３のトップネットリスト情報を参照して階層マクロ間の配線を行い、配線後のトップレイアウト情報を作成する。
【００６０】
階層マクロ端子追加及び端子座標設定処理部４１は、図１に示すように、前記トップレイアウト処理部３５にて作成されたトップレイアウト情報を参照し、階層マクロ内のレイアウト領域、および階層マクロの外部端子情報を設定する際、階層マクロ変更リスト情報記憶部８５の階層マクロ変更リスト情報を参照して、トップ階層変更部２１により変更された後の複数種の階層マクロ内の全端子を、変更される前の１種の階層マクロの端子に置き換える形でマクロレイアウト領域に割り当てるよう、マクロネットリスト情報記憶部８４の階層マクロネットリストを変更して階層マクロレイアウト情報を作成し、マクロレイアウト情報記憶部８６に記憶する。
【００６１】
さらに、階層マクロ端子追加及び端子座標設定処理部４１は、図２に示すように、端子座標算出部４３ａと、全端子配置処理部４３ｂとを含んで構成される。
【００６２】
端子座標算出部４３ａは、階層マクロ端子座標決定部３１にて算出された各前記マクロ端子の各前記第１座標位置に基づいて、マクロブロック内の特定原点に対する第１座標位置の相対位置である第２座標位置を算出する。特定原点は、例えばマクロブロックのいずれかのコーナ部（頂点座標）などが挙げられる。第２座標位置は、同一種類マクロブロックの境界線上に全マクロ端子を割り当てるために算出されるものである。トップレイアウト領域の座標系（トップレイアウト座標系）にて算出されたマクロ端子の第１座標位置を、マクロレイアウト領域の座標系（マクロレイアウト座標系）に座標変換することが好ましい。
【００６３】
全端子配置処理部４３ｂは、一つの前記同一種類マクロブロックの境界領域上であって、前記端子座標算出部４３ａにて算出された各前記第２座標位置に、異なる種類とみなされた複数の前記同一種類マクロブロックのそれぞれのマクロ端子の全てを配置する。
【００６４】
マクロレイアウト処理部４４は、図１に示すように、前記階層マクロ端子追加及び端子座標設定処理部４１にて作成されたマクロレイアウト情報とマクロネットリストを参照してマクロ領域内の配置配線処理を行い、マクロレイアウト情報を作成して、マクロレイアウト情報記憶部８６に記憶する。
【００６５】
チップレイアウト作成処理部５４は、前記トップレイアウト処理部３５にて作成されたトップレイアウト情報と、前記マクロレイアウト処理部４４で作成されたマクロレイアウト情報とをマージして、チップレイアウト情報を作成する。その後、チップレイアウト作成処理部５４は、マクロ間の配線として接続されなかった余分な配線部（線分）を削除してチップレイアウト情報を変更し、チップレイアウト情報記憶部８７に記憶する。
【００６６】
さらに、チップレイアウト作成処理部５４は、図２に示すように、マージ処理部５５と、余分配線削除処理部５６と、を含んで構成される。
【００６７】
マージ処理部５５は、トップレイアウト処理部（第１のレイアウト処理部）にて配線レイアウト処理されたトップレイアウト領域（第１レイアウト領域）と、マクロレイアウト処理部（第２のレイアウト処理部）にて配線レイアウト処理されたマクロレイアウト領域（第２レイアウト領域）と、をマージさせて、トップレイアウト領域とマクロレイアウト領域よりなるチップレイアウト領域（第３レイアウト領域）を作成する。
【００６８】
余分配線削除処理部５６は、前記チップレイアウト領域にて、前記全マクロ端子に向けて配線した各配線部のうち、接続が完結しない余分配線部を削除する。
【００６９】
配置配線結果出力処理部６１は、図１に示すように、前記チップレイアウト作成処理部５４で得られたチップレイアウト情報を出力する。
【００７０】
中央制御部７０は、記憶部８、前記各種情報入力部１１、トップ階層変更部２１、階層マクロ端子座標決定部３１、トップレイアウト処理部３５、階層マクロ端子追加及び端子座標設定処理部４１、マクロレアウト処理部４４、チップレイアウト作成処理部５４、配置配線結果出力処理部６１、その他の各部９０による一連の動作をプログラム制御により制御する。中央制御部７０は、例えば、各部と協働して動作するオペレーティングシステムなどのプログラムや管理プログラム、他のプログラムと共に実行される実行ファイルであることが好ましい。
【００７１】
（記憶部のデータ構造）
次に、記憶部８の各部の詳細な構成について、図３を参照しつつ説明する。図３は、図１に示すレイアウト設計支援装置１の記憶部８の各部のさらに詳細な構成の一例を示すブロック図である。以下に、「トップレイアウト情報」、「トップネットリスト情報」、「マクロネットリスト情報」、「マクロ変更リスト情報」、「マクロレイアウト情報」、「チップレイアウト情報」の順に説明する。
【００７２】
（トップレイアウト情報）  
トップレイアウト情報記憶部８２は、図３に示すように、情報入力された直後の状態である各マクロブロックの配置関係（位置関係）を規定して配置した後のトップレイアウト情報８２ａ（第１トップレイアウト情報）＜例えば図５の状態＞と、マクロ名が変更された名称変更後のトップレイアウト情報８２ａ（第２トップレイウアト情報）＜例えば図７の状態＞と、算出された第１座標位置にマクロ端子が配置された端子配置後のトップレイアウト情報８２ｃ（第３トップレイウアウト情報）＜例えば図１４の状態＞と、マクロブロック間の配線レイアウト処理がなされたマクロ間配線後のトップレイアウト情報８２ｄ（第４のトップレイアウト情報）＜例えば図１５の状態＞と、を含んで構成され、この順で遷移していく。
【００７３】
第１トップレイアウト情報から第２トップレイアウト情報へは、マクロ端子の最適配置位置を計算する目的で更新される。複数の同一種類マクロブロックのマクロ名を変更することで、別のマクロブロックとして認識したコンピュータが隣接するマクロブロック同士の位置関係を把握する。最適配置位置の計算後は、マクロ端子が割り当てられて第３トップレイアウト情報となる。マクロブロック間の配線レイアウト処理がなされた後は第４トップレイアウト情報となる。
【００７４】
図５は、各種情報入力部１１にて入力され、トップレイアウト情報記憶部８２に記憶されるトップレイアウト情報の内容の一例を示している。図５に示すように、ＬＳＩチップ上に階層マクロブロックＡ１〜階層マクロブロックＡ４、階層マクロブロックＢ、階層マクロブロックＣ、階層マクロブロックＤが配置されており、同一種類の階層マクロブロックＡ１〜階層マクロブロックＡ４は、同じ大きさで配置されている。尚、この段階では各階層マクロブロックの配置位置、および大きさ（フロアプラン）のみが確定している状態で、各階層マクロブロックのマクロ端子位置や各マクロ端子間を結ぶ配線などは確定していない。
【００７５】
図１５は、配線レイアウト処理後のトップレイアウト情報（第４トップレイアウト情報）を示す。図１５に示すように、マクロ名ａ１のマクロブロックＡ１の端子名ｔa＿１のマクロ端子と、マクロ名ｂのマクロブロックBの端子名ｔｂ１のマクロ端子とが配線接続されている。また、マクロ名ａ２のマクロブロックＡ２の端子名ｔa＿２のマクロ端子と、マクロ名ｂのマクロブロックBの端子名ｔｂ２のマクロ端子とが配線接続されている。さらに、マクロ名ａ３のマクロブロックＡ３の端子名ｔa＿３のマクロ端子と、マクロ名ｄのマクロブロックDの端子名ｔｄ２のマクロ端子とが配線接続されている。さらに、マクロ名ａ４のマクロブロックＡ４の端子名ｔa＿４のマクロ端子と、マクロ名ｄのマクロブロックDの端子名ｔｄ３のマクロ端子とが配線接続されている。さらに、マクロ名ｃのマクロブロックCの端子名ｔｃ１のマクロ端子と、マクロ名ｄのマクロブロックDの端子名ｔｄ１のマクロ端子とが配線接続されている。  
【００７６】
（トップネットリスト情報）
トップネットリスト情報記憶部８３は、図３に示すように、情報入力された直後の状態である各マクロブロックの接続関係を規定した後のトップネットリスト情報８３ａ（第１トップネットリスト情報）＜例えば図４の状態＞と、同一種類マクロブロックのマクロ名及びマクロ端子の端子名が変更された名称変更後のトップネットリスト情報８３ａ（第２トップネットリスト情報）＜例えば図８の状態＞と、を含んで構成され、この順で遷移していく。  
【００７７】
図４に、各種情報入力部１１で入力されたトップネットリスト情報の一例を示す。図４に示すように、トップネットリスト情報においては、第１の階層マクロブロックＡ１〜Ａ４、第２の階層マクロブロックＢ、第３の階層マクロブロックＣ、第４の階層マクロブロックＤの７つの階層マクロブロックが存在する。このうち、第１の階層マクロブロックＡ１〜Ａ４は、同一種類（同一機能）の階層マクロブロック（マクロ種類名：ａ）が使用されている。第２の階層マクロブロックＢ、第３の階層マクロブロックＣ、第４の階層マクロブロックＤは、それぞれマクロ種類名ｂ、ｃ、ｄが使用されている。
【００７８】
階層マクロブロックＡ１には、マクロ端子ｔａが形成されており、階層マクロブロックＡ２には、マクロ端子ｔaが形成されており、階層マクロブロックＡ３には、マクロ端子ｔaが形成されており、階層マクロブロックＡ４には、マクロ端子ｔaが形成されており、階層マクロブロックBには、マクロ端子ｔｂ１及びマクロ端子ｔｂ２が形成されており、階層マクロブロックCには、マクロ端子ｔｃが形成されており、階層マクロブロックDには、マクロ端子ｔｄ１、マクロ端子ｔｄ２、及びマクロ端子ｔｄ３が形成されている。
【００７９】
なお、図４において符号ｔａ、ｔｂ１、ｔｂ２、ｔｃ、ｔｄ１、ｔｄ２、ｔｄ３は、階層マクロブロックのマクロ端子名を示している。また、各マクロ端子間の接続関係は、破線で示されている。
【００８０】
（マクロネットリスト情報）
マクロネットリスト情報記憶部８４は、図３に示すように、情報入力された直後の状態であって、マクロブロック内での機能素子（例えば論理回路素子など）の接続関係が規定された状態でのマクロネットリスト情報８４ａ（第１マクロネットリスト情報）＜例えば図６の状態＞と、複数の同一種類マクロブロックの各マクロ端子の端子名が変更されて全端子が割り当てられた状態で内部の機能素子との接続関係が規定された状態での変更後のマクロネットリスト情報８４ｂ（第２マクロネットリスト情報）＜例えば図１６の状態＞と、を含んで構成され、この順で遷移していく。
【００８１】
図６は、マクロネットリスト情報記憶部８６に記憶されるマクロネットリスト情報の一例を示している。階層マクロブロック内に存在する論理回路素子と、階層マクロブロックのマクロ端子との間の接続関係が破線で図示されている。
【００８２】
（マクロ変更リスト情報）
階層マクロ変更リスト情報記憶部８５は、図３に示すように、マクロ変更リスト情報８５ａを記憶している。
【００８３】
図９は、本実施の形態における階層マクロ変更リスト情報の一例を示している。階層マクロ変更リスト情報は、図９に示すように、マクロ名に関して変更前後の対応関係である変更前マクロ名と変更後マクロ名とを規定している領域を有する。さらに、階層マクロ変更リスト情報は、マクロ端子名に関して変更前後の対応関係である変更前端子名と変更後端子名とを規定している領域を有する。さらに、これらの各領域は、マクロの種類名に応じて対応づけられている。
【００８４】
従って、階層マクロ変更リスト情報は、マクロの種類名Ａ１、Ａ２、Ａ３、Ａ４、・・・に関する情報を記憶する第１領域と、変更前マクロ名ａ、ａ、ａ、ａ、・・に関する情報を記憶する第２領域と、変更後マクロ名ａ１、ａ２、ａ３、ａ４、・・・に関する情報を記憶する第３領域と、変更前端子名ｔａ、ｔａ、ｔａ、ｔａ、・・・に関する情報を記憶する第４領域と、変更後端子名ｔａ＿１、ｔａ＿２、ｔａ＿３、ｔａ＿４に関する情報を記憶する第５領域と、を含む。
【００８５】
（マクロレイアウト情報）
マクロレイアウト情報記憶部８６は、図３に示すように、マクロブロック内での機能素子（例えば論理回路素子など）の数と配置関係が規定された状態でのマクロレイアウト情報８６ａ（第１マクロレイアウト情報）と、通常のマクロブロックにおいては各マクロ端子と特定機能素子間での配線レイアウト処理がなされた状態であり、複数の同一種類マクロブロックにおいては割り当てられた全マクロ端子と特定機能素子との間の配線レイアウト処理がなされた状態での変更後のマクロレイアウト情報８６ｂ（第２マクロレイアウト情報）＜例えば図１８の状態＞と、を含んで構成され、この順で遷移していく。
【００８６】
図１８は、配線後の各階層マクロブロックのレイアウト図を示している。図１８に示すように、異なる種類のマクロブロックｂ、マクロブロックｃ、マクロブロックｄにおいては、もともと配置されているマクロ端子が配置されている。すなわち、マクロブロックｂについては、マクロ端子ｔｂ１、ｔｂ２が配置されている。マクロブロックｃについては、マクロ端子ｔｃ１が配置されている。マクロブロックｄについては、マクロ端子ｔｄ１、ｔｄ２が配置されている。
【００８７】
一方、複数の同一種類マクロブロックを構成していたマクロブロックａについては、異なるとみなされていたマクロブロックａ１のマクロ端子ｔａ＿１、マクロブロックａ２のマクロ端子ｔａ＿２、マクロブロックａ３のマクロ端子ｔａ＿３、マクロブロックａ４のマクロ端子ｔａ＿４の全端子が配置されている。
【００８８】
しかも、マクロブロックａの内部の論理回路素子からの配線先は、全端子ｔａ＿１、ｔａ＿２、ｔａ＿３、ｔａ＿４に向けて接続されている。これによって、トップレイアウト上にて異なるとみなされたマクロブロックを、マクロレイアウト上において共通化することが可能となり、マクロとしての機能を十分果たせることとなる。  
【００８９】
第２座標位置の計算などが行われる前の状態にあっては、マクロレイアウト情報は、マクロブロック内部において、マクロ端子と各機能素子とが配線されていない状態で存在する。このため、マクロブロック内部では、配線レイアウト処理（マクロレイアウト処理）がなされる前の状態では、（マクロブロック同士の位置関係という環境条件を無視すれば）マクロ端子と各機能素子と相対位置関係は比較的自由に決定できる状態にあるといえる。従って、このマクロブロックは、通常のマクロブロック（マクロ端子の位置までが固定化され、機能素子とマクロ端子間の配線がなされた状態におけるマクロブロック）とはやや性質が異なるマクロブロックであって、マクロブロックの作成プロセスの中間状態にあるマクロブロックといえよう。
【００９０】
また、同一種類マクロブロックにおいては、全マクロ端子が配置された状態では、特定の機能素子から全端子に向けて配線レイアウト処理がなされている。この状態のマクロブロックも特殊なマクロブロックである。マクロブロックの周囲の環境条件を考慮した上で（マクロ端子の最適配置位置が計算された上で）形成されているから、複数ある全ての同一種類マクロブロックに対して適用できる汎用マクロブロックといえよう。ただし、後述の余分配線を削除する構成が必要である。
【００９１】
（チップレイアウト情報）
チップレイアウト情報記憶部８７は、図３に示すように、トップレイアウト情報とマクロレイアウト情報とがマージされた状態でのチップレイアウト情報８７ａ（第１チップレイアウト情報）＜例えば図２０の状態＞と、余分な配線部が削除された状態である削除後のチップレアイウト情報８７ｂ（第２チップレイアウト情報）＜例えば図２１の状態＞と、を含んで構成され、この順で遷移していく。  
【００９２】
（レイアウト設計支援装置の概略動作）
以上のような構成からなる本実施の形態の集積回路のレイアウト設計支援装置１において、概略次のように動作する。すなわち、図１に示すように、各種情報入力部１１は、ＬＳＩの物理ライブラリ情報、トップレイアウト情報、トップネットリスト情報、マクロネットリスト情報、などＬＳＩレイアウトを行う際に必要な情報を入力する。
【００９３】
トップ階層変更部２１は、前記各種情報入力部１１にて入力された配置後のトップレイアウト情報およびトップネットリストにおいて同一種の階層マクロブロックが複数用いられている場合、それら階層マクロブロックを同一の大きさと端子をもち、名称のみが異なる別のマクロブロックに置き換えてトップレイアウト情報（第１トップレイアウト情報）とトップネットリスト情報（第１トップネットリスト情報）を各々変更して（第２）トップレイアウト情報、（第２）トップネットリスト情報とする。さらに、変更結果を階層マクロ変更リスト情報として階層マクロ変更リスト情報記憶部８５に格納する。
【００９４】
具体的には、図７および図８に示すように、階層マクロブロックＡ１〜階層マクロブロックＡ４が同一のマクロ種類ａとして使用されているので、これをａ１、ａ２、ａ３、ａ４として別のマクロ名に変更する。また、階層マクロａ上の端子ｔａについてもそれぞれｔａ＿１、ｔａ＿２、ｔａ＿３、ｔａ＿４とし、別の端子名に変更する。変更前後のマクロ名、マクロ種類名、端子名の対応をマクロ変更リスト情報（図９）として階層マクロ変更リスト情報記憶部８５に登録する。
【００９５】
階層マクロ端子座標決定部３１は、前記トップ階層変更部２１で変更されたトップレイアウト情報（第２トップレイアウト情報）とトップネットリスト情報（第２トップネットリスト情報）を参照し、各階層マクロブロックの位置関係と、トップネットリスト情報における各階層マクロブロックの接続関係と、に基づいて、各階層マクロブロックの各マクロ端子間の距離が短くなるような位置に、マクロ端子を配置してトップレイアウト情報（第２トップレイアウト情報）を更新して（第３）トップレイアウト情報とし、トップレイアウト情報記憶部８２に記憶する。
【００９６】
端子座標の決定においては、トップレイアウト情報記憶部８２のトップレイアウト情報で設定された階層マクロブロックの位置関係と、トップネットリスト情報における各階層マクロブロックの接続関係とを参照し、マクロ端子間の距離が短くなるような位置に端子を配置する。
【００９７】
具体的なマクロ端子の配置位置の算出方法としては、例えば以下に示す手法が挙げられる。中心点結合関数算出部３２により、図１３で示すように、接続関係のある階層マクロブロック同士の各中心点を結ぶ結合線（結合関数）を引く。次に、交差部座標算出部３３は、その結合線とマクロブロックの境界線（境界領域）が交差する点、もしくはその近傍（すなわち交差部）を算出する。端子配置処理部３４は、交差部にてマクロ端子を配置する。
【００９８】
尚、従来は、トップ階層変更部２１による階層マクロブロックのマクロ名及び端子名の変更は行われないので、同一階層マクロの端子座標は、図３２で示されるように全て同一の位置に配置され、最終的に得られるチップレイアウトは図３３のようになり、トップレイアウト領域で一部マクロ間配線が長くなるなどの問題が生じていた。これに対して、本実施の形態では、先ず、マクロブロックの内部構成において、マクロ端子と機能素子との配線レイアウト処理が行われていないマクロブロック作成の中間状態にあるマクロブロックを使用する。そして、複数の同一種類マクロブロックに対して各々マクロ名を割り当てた状態形成する。これによって、予めマクロ端子を所望の位置に配置できる状態を作り上げておく。そして、マクロ端子の最適配置位置を前記の計算によって求め、マクロ端子を配置する。これによりマクロブロック間の配線長を短くできる。しかも、ＬＳＩに配置される複数の各マクロブロックの全てについて計算を行うことができるので、複数の全てのマクロブロック間での配線長を短く形成でき、ＬＳＩ全体での動作速度の高速化に大きく寄与できる。
【００９９】
トップレイアウト処理部３５は、前記マクロ端子座標決定部３１により更新されたトップレイアウト情報（第３トップレイアウト情報）と、前記トップ階層変更部２１により更新されたトップネットリスト情報（第２トップネットリスト情報）とを参照して、階層マクロブロック間の配線レイアウト処理を行い、トップレイアウト情報（第４トップレイアウト情報）を作成し、トップレイアウト情報記憶部８２に記憶する。
【０１００】
階層マクロ端子追加及び端子座標設定処理部４１は、前記トップレイアウト処理部３５にて作成されたトップレイアウト情報（第４トップレイアウト情報）を参照し、階層マクロブロック内のレイアウト領域（マクロレイアウト領域）、および階層マクロブロックの外部端子であるマクロ端子情報を設定する際、階層マクロ変更リスト情報記憶部８５のマクロ変更リスト情報を参照して、トップ階層変更部２１により変更される前の階層マクロの端子を、変更後の階層マクロ内の全端子に置き換える形で、マクロレイアウト領域に割り当てるよう、階層マクロネットリストを変更してマクロネットリスト情報記憶部８４に記憶するとともに、階層マクロレイアウト情報を作成しマクロレイアウト情報記憶部８６に記憶する。
【０１０１】
より詳細には、マクロ変更リスト情報（図９）を参照し、トップ階層変更部１１における変更前の階層マクロブロックａのマクロ端子ｔａを変更後の各階層マクロブロックａ１〜階層マクロブロックａ４の全端子ｔａ＿１〜ｔａ＿４に置き換えてマクロネットリストを変更する（図１６）。置き換えにおいては、変更前におけるマクロ端子ｔａに接続される内部の論理回路素子との接続関係を保持した形で置き換える。マクロレイアウト情報の作成においては、まずトップレイアウト情報を参照し、各階層マクロの内部領域をそのまま切り取る形でマクロレイアウト領域として割り当てる。
【０１０２】
次に、階層マクロブロックの各マクロ端子について、トップレイアウトにおける階層マクロブロックとの位置関係を保持した形でマクロレイアウト領域上に割り当てる（図１７）。その際、トップ階層変更部１１において変更された階層マクロブロックａ１、階層マクロブロックａ２、階層マクロブロックａ３、階層マクロブロックａ４の各マクロ端子ｔａ＿１、マクロ端子ｔａ＿２、マクロ端子ｔａ＿３、マクロ端子ｔａ＿４をそのまま階層マクロブロックａの端子座標として４箇所に割り当てる。
【０１０３】
次に、マクロレイアウト処理部４４は、前記階層マクロ端子追加および端子座標設定処理部４１にて作成されたマクロレイアウト情報とマクロネットリスト情報を参照して、マクロブロック領域内の配置配線処理を行い、マクロレイアウト情報を作成する。
【０１０４】
チップレイアウト作成処理部５４は、前記トップレイアウト処理部３５にて作成されたトップレイアウト情報と、前記マクロレイアウト処理部４４にて作成されたマクロレイアウト情報とをマージしてチップレイアウト情報を作成する。その後、チップレイアウト作成処理部５４は、マクロブロック間の配線として接続されなかった余分な配線部（線分）を削除してチップレイアウト情報を変更する。
【０１０５】
トップレイアウト上でマクロ種類名が変更された階層マクロブロックについては、マクロ変更リストを参照して、変更後の階層マクロ種類名とマクロ端子名を、変更前のマクロ種類名と端子名に変更してマクロレイアウトをマージする。ここで、「マージ」とは、複数のファイルやデータあるいはオブジェクトなどを、決められたルールに従って一つに統合、合わせることをいう。
【０１０６】
図１９を用いて説明すると、本実施の形態では階層マクロブロックＡ１〜階層マクロブロックＡ４におけるマクロ種類名ａ１〜ａ４のマクロについて、変更前の階層マクロブロックａのマクロレイアウトがトップレイアウトとマージされる。ここで、各マクロ端子に繋がる配線はレイアウトのマージによりトップレイアウトの配線と接続される。また、前記階層マクロ端子追加および端子座標設定手段１０５で端子が複製されたものについては、端子のどれか１つのみで配線が接続され、残りの端子に接続する配線については論理回路素子に接続が完結せず浮いた状態（図２０）となるので、次にこれら余分な配線を削除する。
【０１０７】
具体的には、余分配線削除処理部５６は、チップレイアウト上の配線について、配線を構成する各線分の端点が、他の線分や論理回路素子に繋がらないものを見つけ、それら線分がなくなるまで削除する。削除後のチップレイアウトを図２１に示す。
【０１０８】
最後に、配置配線結果出力処理部６１は、前記チップレイアウト作成処理部５４で得られたチップレイアウト情報を出力する。
【０１０９】
以上のように、階層レイアウト手法を採用するＬＳＩレイアウトにおいて、同一種の階層マクロが複数使用される場合、それらを別々のマクロとみなしてマクロの端子座標を決定しトップレイアウト（マクロ間の配線処理）を行う。マクロレイアウトにおいては、別々の座標として設定された端子に全て接続するよう、当該マクロの配線処理を１回のみ行う。前記トップレイアウトとマクロレイアウトをマージした後、マクロ間の接続が完結しない余分な配線を削除する。これらによりマクロレイアウトの同一性を保ちつつマクロ間の配線引き回しをなくし、ＬＳＩ全体の配線性を向上させ配線遅延時間の悪化を抑制する。  
【０１１０】
（マクロ名変更及び端子名変更について）
次に、本実施の形態のマクロ名変更及び端子名変更は、単に変更するのみではなく、各レイアウト処理（トップレイアウト処理、マクロレイアウト処理、チップレアイウト処理）に応じて、あるいはレイアウト情報とネットリスト情報に応じて使い分けている点に特徴を有するから、以下にはこの点について詳述する。
【０１１１】
図１０には、マクロ名変更、端子名変更をどの時点（トップレイアウト、マクロレイアウト、チップレイアウト）で行うかについて説明をするための説明図が示してある。図１０に示すように、複数の同一種類マクロブロックを形成する場合、情報入力直後の段階にあっては、複数の同一種類マクロブロック（或いは同一機能マクロブロック）のマクロ名は、共通マクロ名を使用し、同一種類マクロブロックのマクロ端子の端子名は、共通端子名を使用する。
【０１１２】
そして、トップレイアウト関連処理の段階にあっては、複数の同一種類マクロブロックのマクロ名は、異なるマクロブロックとみなされるよう、個別マクロ名を使用し、異なるとみなされた各々の同一種類マクロブロックの各マクロ端子の端子名は、個別端子名を使用する。
【０１１３】
より詳細には、トップレイアウト関連処理の前処理ともいうべき、トップ階層変更の段階で、マクロ名が共通マクロ名より個別マクロ名に変更され、マクロ端子名が共通端子名より個別端子名に変更される。なお、マクロ名及び端子名の変更は、トップレイアウト情報およびトップネットリストの対応箇所についてそれぞれ行う必要がある。このように変更されることで、端子座標位置を個別に計算することができるようになる。
【０１１４】
また、トップレイアウト処理の段階においても、同様に個別マクロ名、個別端子名が使用される。各マクロ端子間を配線接続する配線レイアウト処理を行うためである。
【０１１５】
次に、マクロレイアウトの関連処理の段階にあっては、複数の同一種類マクロブロックのマクロ名は、共通マクロ名を使用し、異なるとみなされた各々の同一種類マクロブロックの各マクロ端子の端子名は、個別端子名を使用する。
【０１１６】
より詳細には、マクロレイアウト関連処理の前処理ともいうべき、マクロ端子追加の段階で、１つの同一種類マクロブロック（中間生成マクロブロック：マクロネットリスト情報及びマクロレイアウト情報でのマクロブロックの総称）は共通マクロ名のままの状態で、異なるとみなされた各々の同一種類マクロブロックの各個別端子が全て配置される（図１７）。なお、共有マクロ名及び個別端子名での使用は、マクロレイアウト情報およびマクロネットリスト情報の対応箇所についてそれぞれ行われる。このように変更されることで、同一種類マクロブロック内の配線レイアウト処理（マクロレイアウト）を１回行うことで、異なるとみなされた全ての各同一種類マクロブロックに適用可能となる。
【０１１７】
また、マクロレイアウト処理の段階においても、同様に共通マクロ名、個別端子名が使用される。機能素子と全マクロ端子とを配線接続する配線レイアウト処理を行うためである。
【０１１８】
さらに、チップレイアウトの関連処理の段階にあっては、複数の同一種類マクロブロックのマクロ名は、共通マクロ名を使用し、各マクロ端子の端子名は、共通端子名を使用する。チップレイアウトの段階では、元に戻される。
【０１１９】
（マクロ名・端子名変更に関連する制御系）
次に、マクロ名・端子名変更に関連する制御系について、図１１を参照しつつ説明する。図１１は、図１のレイアウト設計支援装置において、マクロ名変更、端子名変更に関係する部分をピックアップし、制御に関連する部分を誇張して表現したブロック図である。
【０１２０】
この制御系では、図１１に示すように、トップ階層変更部２１、階層マクロ端子追加及び端子座標設定処理部４１、チップレイアウト前処理部５１、トップレイアウト処理部３５、マクロレイアウト処理部４４、チップレイアウト処理部５４、及びこれらの各部を制御するためのその他の各部９０、を含んで構成される
【０１２１】
トップ階層変更部２１のマクロ名変更部２２は、トップレイアウト情報の中の同一種類マクロブロックのマクロ名に対して、共通マクロ名を個別マクロ名に変更する処理を行うトップレイアウト情報マクロ名変更部２２ａと、トップネットリスト情報の中の同一種類マクロブロックのマクロ名に対して、共通マクロ名を個別マクロ名に変更する処理を行うトップネットリスト情報マクロ名変更部２２ｂと、を有する。
【０１２２】
トップ階層変更部２１の端子名変更部２３は、トップレイアウト情報の中の同一種類マクロブロックのマクロ端子名に対して、共通端子名を個別端子名に変更する処理を行うトップレイアウト情報端子名変更部２３ａと、トップネットリスト情報の中の同一種類マクロブロックのマクロ端子名に対して、共通端子名を個別端子名に変更する処理を行うトップネットリスト情報端子名変更部２３ｂと、を有する。  
【０１２３】
階層マクロ端子追加及び端子座標設定処理部４１の端子名変更部４２は、マクロレイアウト情報の中の同一種類マクロブロックのマクロ端子名に対して、共通端子名を個別端子名に変更する処理を行うマクロレイアウト情報端子名変更部４２ａと、マクロネットリスト情報の中の同一種類マクロブロックのマクロ端子名に対して、共通端子名を個別端子名に変更する処理を行うマクロネットリスト情報端子名変更部４２ｂと、を有する。
【０１２４】
チップレイアウト前処理部５１は、マクロ名を再変更するマクロ名再変更部５２と、端子名再変更部５３とを含んで構成される。マクロ名再変更部５２は、トップレイアウト情報マクロ名再変更部５２ａと、マクロレイアウト情報マクロ名再変更部５２ｂとを含んで構成される。端子名再変更部５３は、トップレイアウト情報端子名変更部５３ａと、マクロレイアウト情報端子名再変更部５３ｂとを含んで構成される。
【０１２５】
その他の各部９０は、トップ階層変更部２１・チップレイアウト前処理部５１の各マクロ名の変更に関連する各部を制御するマクロ名制御部９１と、トップ階層変更部２１・階層マクロ端子追加及び端子座標設定処理部４１・チップレイアウト前処理部５１の各端子名の変更に関連する各部を制御する端子名制御部９２と、名称変更全体の制御を司る同一機能マクロ制御部９３と、各レイアウト処理と名称変更とを統括的に制御する階層制御部９４と、を含んで構成される。
【０１２６】
同一機能マクロ制御部９３は、同一種類マクロブロックについてのマクロ名および端子名の制御を行う。階層制御部９４は、トップレイアウト処理部３５、マクロレイアウト処理部４４、チップレイアウト処理部５４を必要に応じて切替制御し、各処理の期間を設定制御できる。また、同一機能マクロ制御部９３ではサポートし得ない、他の異なる種類のマクロブロックの個別マクロ名、個別端子名の変更がなされないよう管理する機能を有する。
【０１２７】
上記のような構成を有する制御系において、図１０及び図１１に示すように、複数の同一種類マクロブロック（複数の同一機能マクロ）に対しては、マクロ名制御部９１は、情報入力直後の期間にあっては、共通マクロ名の状態を保持する制御を行う。次に、トップレイアウト処理部３５にて処理されるトップレイアウト処理を含むトップレイアウト関連処理（第１の期間中）の期間には、トップ階層変更部２１のマクロ名変更部２２により共通マクロ名を個別マクロ名に変更して、個別マクロ名の状態を保持する制御を行う。特に、トップレイアウト関連処理におけるトップレイアウト処理の前処理ともいうべき、トップ階層変更の際に変更される。そして、以降の端子座標決定やトップレイアウト処理においては、個別マクロ名の状態を保持するように制御する。
【０１２８】
共通マクロ名を個別マクロ名に変更する際には、トップレイアウト情報の中のマクロ名とトップネットリスト情報の中のマクロ名のそれぞれについて変更する必要がある。このため、情報入力直後の状態からトップレイアウト関連処理の状態に移行すると、マクロ名制御部９１は、マクロ名変更部２２のトップレイアウト情報マクロ名変更部２２ａと、トップネットリスト情報マクロ名変更部２２ｂと、のそれぞれについて変更指示情報を与える。
【０１２９】
ここで、マクロ名制御部９１のトップレイアウトマクロ名制御部９１ａは、マクロ名変更部２２のトップレイアウト情報マクロ名変更部２２ａに第１変更指示情報を与え、トップネットリストマクロ名制御部９１ｂは、マクロ名変更部２２のトップネットリスト情報マクロ名変更部２２ｂに第２変更指示情報を与える。
【０１３０】
第１変更指示情報に基づき、トップレイアウト情報マクロ名変更部２２ａは、トップレイアウト情報の中のマクロ名について、複数の同一種類マクロブロックを探し出し、共通マクロ名を個別マクロ名に変更する処理を行う。また、第２変更指示情報に基づき、トップネットリスト情報マクロ名変更部２２ｂは、トップネットリスト情報の中のマクロ名について、複数の同一種類マクロブロックを探し出し、共通マクロ名を個別マクロ名に変更する処理を行う。これにより、コンピュータは、トップレイアウト及びトップネットリストにおいて、複数の同一種類マクロブロックが異なる種類のマクロブロックとみなすようになる。
【０１３１】
さらに、マクロ名制御部９１は、マクロレイアウト処理部４４にて処理されるマクロレイアウト処理を含むマクロレイアウト関連処理（第２の期間中）の期間、共通マクロ名を保持するように制御する。
【０１３２】
また、チップレイアウト処理部５４にて処理されるチップレイアウト処理を含むチップレイアウト関連処理（第３の期間中）の期間、には、共通マクロ名を保持するように制御する。
【０１３３】
ここで、チップレイアウト前処理部５１のマクロ名再変更部５２は、トップレイアウト情報のマクロ名を個別マクロ名から共有マクロ名に戻す処理を行うとともに、マクロレイアウト情報のマクロ名を個別マクロ名から共有マクロ名に戻す処理を行う。前者の処理は、マクロ名制御部９１のトップレイアウトマクロ名制御部９１ａが指示をトップレイアウト情報マクロ名再変更部５２aに出すことにより行われる。後者の処理は、マクロ名制御部９１が指示をマクロレイアウト情報マクロ名再変更部５２ｂに出すことにより行われることとなる。
【０１３４】
個別マクロ名を共通マクロ名に再変更して元に戻す際には、トップレイアウト情報の中のマクロ名とマクロレイアウト情報の中のマクロ名のそれぞれについて再変更する必要がある。このため、チップレイアウト関連処理においては、マクロ名制御部９１は、マクロ名再変更部５２のトップレイアウト情報マクロ名再変更部５２ａと、マクロレイアウト情報端子名再変更部５３ｂとのそれぞれについて変更指示情報を与える。  
【０１３５】
ここで、マクロ名制御部９１のトップレイアウトマクロ名制御部９１ａは、マクロ名再変更部５２のトップレイアウト情報マクロ名再変更部５２ａに第１変更指示情報を与え、マクロ名制御部９１の図示しないマクロレイアウトマクロ名制御部は、マクロ名再変更部５２のマクロレイアウト情報マクロ名再変更部５２ｂに第２変更指示情報を与える。
【０１３６】
第１変更指示情報に基づき、トップレイアウト情報マクロ名再変更部５２ａは、トップレイアウト情報の中のマクロ名について、複数の同一種類マクロブロックを探し出し、個別マクロ名を共通マクロ名に再変更して元に戻す処理を行う。また、第２変更指示情報に基づき、マクロレイアウト情報マクロ名再変更部５３ｂは、マクロレイアウト情報の中のマクロ名について、複数の同一種類マクロブロックを探し出し、個別マクロ名を共通マクロ名に再変更して元に戻す処理を行う。これにより、コンピュータは、トップレイアウト及びマクロレイアウトにおいても、複数の同一種類マクロブロックのマクロブロックを同一とみなすようになる。  
【０１３７】
同一種類マクロブロックに関するマクロ名制御は、同一機能マクロ制御部９３が制御を司る。なお、同一種類マクロブロック以外の他の異なる種類のマクロブロックについては、階層制御部９４からの指示にてマクロ名制御部９１は、全工程にてマクロ名を個別マクロ名とするように制御する。
【０１３８】
一方、端子名制御部９２は、複数の同一種類マクロブロック（複数の同一機能マクロ）に対しては、情報入力直後の期間にあっては、共通端子名の状態を保持する制御を行う。次に、トップレイアウト処理部３５にて処理されるトップレイアウト処理を含むトップレイアウト関連処理（第１の期間中）の期間には、トップ階層変更部２１の端子名変更部２３によりマクロ端子名を当初の共通端子名より個別端子名に変更して、個別端子名の状態を保持する制御を行う。特に、トップレイアウト関連処理におけるトップレイアウト処理の前処理ともいうべき、トップ階層変更の際に変更される。そして、以降の端子座標決定やトップレイアウト処理においては、個別端子名の状態を保持するように制御する。
【０１３９】
共通端子名を個別端子名に変更する際には、トップレイアウト情報の中の端子名とトップネットリスト情報の中の端子名のそれぞれについて変更する必要がある。このため、情報入力直後の状態からトップレイアウト関連処理の状態に移行すると、端子名制御部９２は、端子名変更部２３のトップレイアウト情報端子名変更部２３ａと、トップネットリスト情報端子名変更部２３ｂとのそれぞれについて変更指示情報を与える。
【０１４０】
ここで、端子名制御部９２のトップレイアウト端子名制御部９２ａは、端子名変更部２３のトップレイアウト情報端子名変更部２３ａに第１変更指示情報を与え、トップネットリスト端子名制御部９２ｂは、端子名変更部２３のトップネットリスト情報端子名変更部２３ｂに第２変更指示情報を与える。
【０１４１】
第１変更指示情報に基づき、トップレイアウト情報端子名変更部２３ａは、トップレイアウト情報の中のマクロ端子名について、複数の同一種類マクロブロックを探し出し、共通端子名を個別端子名に変更する処理を行う。また、第２変更指示情報に基づき、トップネットリスト情報端子名変更部２３ｂは、トップネットリスト情報の中のマクロ端子名について、複数の同一種類マクロブロックを探し出し、共通端子名を個別端子名に変更する処理を行う。これにより、コンピュータは、トップレイアウト及びトップネットリストにおいて、複数の同一種類マクロブロックのマクロ端子が異なる種類のマクロブロックのマクロ端子とみなすようになる。
【０１４２】
次に、端子名制御部９２は、マクロレイアウト処理部４４にて処理されるマクロレイアウト処理を含むマクロレイアウト関連処理（第２の期間中）の期間には、階層マクロ端子追加及び端子座標設定処理部４１の端子名変更部４２によりマクロ端子名を当初の共通端子名より個別端子名に変更して、個別端子名の状態を保持する制御を行う。特に、マクロレイアウト関連処理におけるマクロレイアウト処理の前処理ともいうべき、マクロ端子追加の際に変更される。そして、以降の端子座標設定やマクロレイアウト処理においては、個別端子名の状態を保持するように制御する。  
【０１４３】
共通端子名を個別端子名に変更する際には、マクロレイアウト情報の中の端子名とマクロネットリスト情報の中の端子名のそれぞれについて変更する必要がある。このため、トップレイアウト関連処理の状態からマクロレイアウト関連処理の状態に移行すると、端子名制御部９２は、端子名変更部４２のマクロレイアウト情報端子名変更部４２ａと、マクロネットリスト情報端子名変更部４２ｂとのそれぞれについて変更指示情報を与える。
【０１４４】
ここで、端子名制御部９２のマクロレイアウト端子名制御部９２ｃは、端子名変更部４２のマクロレイアウト情報端子名変更部４２ａに第１変更指示情報を与え、マクロネットリスト端子名制御部９２ｄは、端子名変更部４２のマクロネットリスト情報端子名変更部４２ｂに第２変更指示情報を与える。
【０１４５】
第１変更指示情報に基づき、マクロレイアウト情報端子名変更部４２ａは、マクロレイアウト情報の中のマクロ端子名について、複数の同一種類マクロブロックを探し出し、共通端子名を個別端子名に変更する処理を行う。また、第２変更指示情報に基づき、マクロネットリスト情報端子名変更部４２ｂは、マクロネットリスト情報の中のマクロ端子名について、複数の同一種類マクロブロックを探し出し、共通端子名を個別端子名に変更する処理を行う。これにより、コンピュータは、マクロレイアウト及びマクロネットリストにおいても、複数の同一種類マクロブロックのマクロ端子が異なる種類のマクロブロックのマクロ端子とみなすようになる。
【０１４６】
次に、端子名制御部９２は、チップレイアウト処理部５４にて処理されるチップレイアウト処理を含むチップレイアウト関連処理（第３の期間中）の期間には、チップレイアウト前処理部５１の端子名再変更部５３によりマクロ端子名を変更された個別端子名より共通端子名に再変更して元に戻し、共通端子名の状態を保持する制御を行う。特に、チップレイアウト関連処理におけるチップレイアウト処理の前処理の際に変更される。そして、以降のマージ処理や削除処理を含むチップレイアウト処理においては、共通端子名の状態を保持するように制御する。  
【０１４７】
個別端子名を共通端子名に再変更して元に戻す際には、トップレイアウト情報の中の端子名とマクロレイアウト情報の中の端子名のそれぞれについて再変更する必要がある。このため、マクロレイアウト関連処理の状態からチップレイアウト関連処理の状態に移行すると、端子名制御部９２は、端子名再変更部５３のトップレイアウト情報端子名再変更部５３ａと、マクロレイアウト情報端子名再変更部５３ｂとのそれぞれについて変更指示情報を与える。
【０１４８】
ここで、端子名制御部９２のトップレイアウト端子名制御部９２ａは、端子名再変更部５３のトップレイアウト情報端子名再変更部５３ａに第１変更指示情報を与え、マクロレイアウト端子名制御部９２ｃは、端子名再変更部５３のマクロレイアウト情報端子名再変更部５３ｂに第２変更指示情報を与える。
【０１４９】
第１変更指示情報に基づき、トップレイアウト情報端子名再変更部５３ａは、トップレイアウト情報の中のマクロ端子名について、複数の同一種類マクロブロックを探し出し、個別端子名を共通端子名に再変更して元に戻す処理を行う。また、第２変更指示情報に基づき、マクロレイアウト情報端子名再変更部５３ｂは、マクロレイアウト情報の中のマクロ端子名について、複数の同一種類マクロブロックを探し出し、個別端子名を共通端子名に再変更して元に戻す処理を行う。これにより、コンピュータは、トップレイアウト及びマクロレイアウトにおいても、複数の同一種類マクロブロックのマクロ端子を同一とみなすようになる。
【０１５０】
同一種類マクロブロックに関する端子名制御は、同一機能マクロ制御部９３が制御を司る。なお、同一種類マクロブロック以外の他の異なる種類のマクロブロックについては、階層制御部９４からの指示にて端子名制御部９２は、全工程にてマクロ名を個別マクロ名とするように制御する。  
【０１５１】
以上まとめると、マクロ名制御部９１は、トップレイアウト領域（マクロブロック間：第１のレイアウト領域）に関連する処理（トップレイアウト前処理及びトップレイアウト処理）を行う第１の期間、マクロレイアウト領域（マクロブロック内：第２のレイアウト領域）に関連する処理（マクロレイアウト前処理及びマクロレイアウト処理）を行う第２の期間、チップレイアウト領域（マクロレイアウト領域とトップレイアウト領域とをマージした領域：第３のレイアウト領域）に関連する処理（チップレイアウト前処理及びチップレイアウト処理）を行う第３の期間のうち、前記第１の期間中には、前記マクロ名変更部にて変更された個別マクロ名を用いて処理（トップレイアウト前処理、トップレイアウト処理）を行い、前記第２の期間及び前記第３の期間中には、当初の共通マクロ名を用いて各処理（マクロレイアウト前処理、マクロレイアウト処理、チップレイアウト前処理、チップレイアウト処理）を行うように制御する。
【０１５２】
端子名制御部９２は、前記第１の期間及び前記第２の期間中には、前記端子名変更部２３にて変更された個別端子名を用いて各処理（トップレイアウト前処理、トップレイアウト処理、マクロレイアウト前処理、マクロレイアウト処理）を行い、前記第３の期間中には、当初の共通端子名を用いて処理（チップレイアウト前処理、チップレイアウト処理）を行うように制御する。
【０１５３】
（端子位置算出関連の制御系）
次に、本実施の形態の端子位置計算は、各レイアウト処理（トップレイアウト処理、マクロレイアウト処理）に応じて各々計算する必要がある点に特徴を有するから、以下にはこの点について詳述する。端子位置算出関連の制御系について、図１２を参照しつつ説明する。図１２は、図１のレイアウト設計支援装置において、マクロ端子位置の計算に関係する部分をピックアップし、制御に関連する部分を誇張して表現したブロック図である。
【０１５４】
この制御系では、図１２に示すように、階層マクロ端子座標決定部３１、階層マクロ端子追加及び端子座標設定処理部４１、トップレイアウト情報記憶部８２、トップネットリスト情報記憶部８３、マクロレイアウト情報記憶部８６、マクロネットリスト情報記憶部８４、を含んで構成される。
【０１５５】
階層マクロ端子追加及び端子座標設定処理部４１は、マクロレイアウト端子位置算出部４３ａ―１と、マクロネットリスト端子位置算出部４３ａ―２と、マクロレイアウト端子追加処理部４３ｂ―１と、マクロネットリスト端子追加処理部４３ｂ―２と、を含んで構成される。
【０１５６】
なお、階層マクロ端子追加及び端子座標設定処理部４１には、マクロ端子の配置位置を求めるやり方と同様に、機能素子（例えば論理素子）とマクロ端子間の配線接続を行うに際し、機能素子ブロックの中心点とマクロ端子とを結ぶ素子端子結合関数が機能素子ブロックの境界線と交差する交差部の座標位置を、機能素子からマクロ端子に向けた配線の基端とするように決定する配線基端位置決定部（不図示）を備えてもよい。或いは、機能素子とマクロ端子との配線長を調査する配線長調査部、機能素子のタイプを識別する機能素子識別部、機能素子を再配置する機能素子再配置部、を備えていてもよい。
【０１５７】
上述のような構成からなる端子位置算出関連の制御系において、図１２に示すように、トップレイアウト処理において、階層マクロ端子座標算出部３１が第１の端子座標の算出を行い、階層マクロ端子追加及び端子座標設定処理部４１が第２の端子座標の算出および全端子の配置を行う。
【０１５８】
より詳細には、階層マクロ端子座標決定部３１の中心点結合関数算出部３２は、トップレイアウト情報記憶部８２からのトップレイアウト情報（各マクロブロックの位置関係情報）と、トップネットリスト情報記憶部８３からのトップネットリスト情報（各マクロブロックの接続関係情報）と、に基づいて、接続関係にある少なくとも２つの各マクロブロックのうち、一方のマクロブロックの第１中心座標と、他方のマクロブロックの第２中心座標を算出し（各中心座標算出機能）、第１中心座標と第２中心座標を結ぶ結合関数（例えば直線などの１次関数）を算出する。
【０１５９】
さらに、階層マクロ端子座標決定部３１の交差部座標算出部３３は、相対向する２つのマクロブロックのうち、一方のマクロブロックの対向辺（境界線）と前記結合関数との第１交点座標を算出する。さらに、交差部座標算出部３３は、他方のマクロブロックの対向辺（境界線）と前記結合関数との第２交点座標を算出する。
【０１６０】
そして、階層マクロ端子座標決定部３１の端子配置処理部３４は、第１交点座標を一方のマクロブロックのマクロ端子として決定し、一方のマクロブロックのマクロ端子の配置を行う。また、端子配置処理部３４は、第２交点座標を他方のマクロブロックのマクロ端子として決定し、他方のマクロブロックのマクロ端子の配置を行う。マクロ端子が配置された後のトップレイアウト情報は、トップレイアウト情報記憶部８２に蓄積処理される。ここで、「第１交点座標」と「第２交点座標」とで、本発明にいう「最適座標位置」の一例を構成できる。また、「第１交点座標」と「第２交点座標」とで、本発明にいう「第１座標位置」の一例を構成できる。
【０１６１】
次に、階層マクロ端子追加及び端子座標設定処理部４１のマクロレイアウト端子位置算出部４３ａ―１は、トップレイアウト情報から複数の同一種類マクロブロックに関する情報（各マクロブロックに対する端子座標等）を取得し（端子座標取得機能）、一つの同一種類マクロブロックについて、マクロ端子が、同一種類マクロブロックの一つの頂点から如何なる位置にあるかを算出する処理を行う（相対位置算出機能）。ここにおいて、トップレイアウト座標系における端子座標を、マクロレイアウト座標系における端子座標に変換する処理を行う（座標変換機能）。これによって、座標位置が算出される。算出された座標位置は、本発明にいう「第２座標位置」の一例を構成できる。
【０１６２】
さらに、マクロレイアウト端子追加処理部４３ｂ−１は、算出された端子座標（マクロレイアウト座標系）をもとに、マクロレイアウト情報の中におけるマクロブロックに対して、全端子の配置処理を行う。
【０１６３】
以上の各処理は、マクロレイアウト情報に対して行ったが、マクロネットリスト情報についても同様に、マクロネットリスト端子位置算出部４３ａ―２、マクロネットリスト端子追加部４３ｂ−２が各々処理を行う。
【０１６４】
以上のような端子位置算出関連の制御系によれば、マクロ端子の最適座標位置は、各マクロブロック間の中心点を結ぶ結合線と、マクロブロックの境界線との交点（交差部）によって算出されるので、各マクロブロック同士の各マクロ端子間距離を、短小にできるので、マクロブロック間に配線される配線長を短く形成できる。このため、マクロブロックの配置関係（位置関係）が如何なる配置であったとしても、迂回配線を防止して、配線長の短い配線を形成できる。
【０１６５】
第２に、変更前の端子を変更後の全端子に置き換える処理によれば、異なる種類とみなされた各同一種類マクロブロックの各マクロ端子の全端子を、１つの同一種類マクロブロックの境界領域に割り当てることによって、マクロレイアウト処理を、異なる種類とみなされた各同一種類マクロブロックについて、１回で済ませることができる。
【０１６６】
（処理手順について）
次に、上述のような構成を有するレイアウト設計支援装置における各種の処理手順について、図２２乃至図２５を参照しつつ説明する。
【０１６７】
（全体処理）
先ず、全体処理について、図２２のフローチャートを参照して説明する。図２２は、図１のレイアウト設計支援装置の処理手順の一例を示すフローチャートである。先ず、各種情報を入力する処理が行われる（ステップＳ１０１）＜各種情報入力工程ないしは各種情報入力処理＞。ここにおいて、入力される情報としては、物理ライブラリ情報、トップレイアウト情報、トップネットリスト情報、マクロネットリスト情報などが挙げられる。
【０１６８】
次に、同一種類マクロブロックが複数あるか否かを探し出し、複数ある場合には、対応する同一種類マクロブロックがどのマクロブロックであるのかを抽出する処理を行う（ステップＳ１０２）＜同一種類マクロブロック抽出工程ないしは同一種類マクロブロック抽出処理＞。ここで、上述した図の例では、複数の同一種類マクロブロックは、Ａ１〜Ａ４の１タイプのみの場合を例示しているが、複数タイプ（例えばＦ１〜Ｆ４の第１タイプ、Ｇ１〜Ｇ７の第２タイプ、Ｈ１〜Ｈ３の第３タイプなど）を有する場合に、各々について抽出し、以下の示す各処理を各タイプで同時に行ったとしても勿論よい。
【０１６９】
続いて、ステップＳ１０２において、抽出された複数の同一種類マクロブロック（Ａ１〜Ａ４）について、そのマクロ名を共通マクロ名（ａ）から個別マクロ名（ａ１〜ａ４）に変更するために、個別マクロ名を生成する処理を行う（ステップＳ１０３）＜個別マクロ名生成工程ないしは個別マクロ生成処理＞。
【０１７０】
さらに、抽出された複数の同一種類マクロブロック（Ａ１〜Ａ４）について、そのマクロ端子名を共通端子名（ｔａ）から個別端子名（ｔａ＿１〜ｔａ＿４）に変更するために、個別端子名を生成する処理を行う（ステップＳ１０４）＜個別端子名生成工程ないしは個別端子名生成処理＞。
【０１７１】
以上のＳ１０３、Ｓ１０４にて各々生成された個別マクロ名、個別端子名に基づいて、トップレイアウト情報の中の同一種類マクロブロックの共通マクロ名を個別マクロ名に変更するとともに、前記同一種類マクロブロックの共通端子名を個別端子名に変更する処理を行う（ステップＳ１０５）＜トップレイアウト情報マクロ名変更工程・トップレイアウト情報端子名変更工程ないしはトップレイアウト情報マクロ名変更処理・トップレイアウト情報端子名変更処理＞。
【０１７２】
さらに、Ｓ１０３、Ｓ１０４にて各々生成された個別マクロ名、個別端子名に基づいて、トップネットリスト情報の中の同一種類マクロブロックの共通マクロ名を個別マクロ名に変更するとともに、前記同一種類マクロブロックの共通端子名を個別端子名に変更する処理を行う（ステップＳ１０６）＜トップネットリスト情報変更工程ないしはトップネットリスト情報変更処理＞。また、マクロ名及び端子名のそれぞれについて、変更前後の対応関係をマクロ変更リストとして登録する処理を行う（ステップＳ１０７）＜マクロ変更リスト登録処理＞。以上のステップＳ１０２〜Ｓ１０７により、本発明にいう「マクロ名変更工程」及び「端子名変更工程」を構成できる。
【０１７３】
次に、マクロ名及び端子名が変更されると、トップレイアウト領域におけるマクロ端子の最適座標位置を算出する処理が行われる（ステップＳ１０８）＜トップレイアウト最適座標位置算出工程ないしはトップレイアウト最適座標位置算出処理＞。
【０１７４】
マクロ端子が配置されるべき最適座標位置が計算されると、以前のトップレイアウト情報を、対応する位置にマクロ端子を配置させた配置後のトップレイアウト情報に、更新する処理を行う（ステップＳ１０９）＜第１トップレイアウト情報更新工程ないしは第１トップレイアウト情報更新処理＞。以上のステップＳ１０２〜Ｓ１０９により、本発明にいう「第１の端子座標算出処理工程」を構成できる。
【０１７５】
続いて、各マクロブロック間の配線レイアウト処理を行う（ステップＳ１１１）＜トップレイアウト配線工程ないしはトップレイアウト配線処理＞。ここにおいて、少なくとも２つの各マクロブロックのうち、一方のマクロブロックの一方のマクロ端子と、他方のマクロブロックの他方のマクロ端子とが配線接続される。
【０１７６】
そして、マクロ端子配置後のトップレイアウト情報は、配線接続がなされた後のトップレイアウト情報に更新される処理を行う（ステップＳ１１２）＜第２トップレイアウト情報更新工程ないしは第２トップレイアウト情報更新処理＞。以上のステップＳ１１１〜Ｓ１１２により、本発明にいう「第１レイアウト処理工程」を構成できる。
【０１７７】
次に、端子名を変更する前のマクロ端子を、端子名変更後の複数の全マクロ端子に置き換える（図１６）処理を行う（ステップＳ１２１）＜全マクロ端子配置工程ないしは全マクロ端子配置処理＞。置き換え前のマクロネットリスト情報を、全端子に置き換え後のマクロネットリスト情報に、更新する処理を行う（ステップＳ１２２）＜マクロネットリスト情報更新工程ないしはマクロネットリスト情報更新処理＞。続いて、全マクロ端子に置き換えた場合のマクロレイアウト情報を作成する処理を行う（ステップＳ１２３）＜マクロレイアウト作成工程ないしはマクロレイアウト作成処理＞。以上のステップＳ１２１〜Ｓ１２３により、本発明にいう「第２の端子座標算出処理工程」を構成できる。
【０１７８】
さらに、マクロブロック内において、配線レイアウト処理を行う（ステップＳ１２４）＜マクロレイアウト配線工程ないしはマクロレイアウト配線処理＞。ここにおいて、同一種類マクロブロックにおいては、複数の同一種類マクロブロックにおける各個別端子を、一つの同一種類マクロブロックの境界線上に全て配置した状態で、当該同一種類マクロブロック内の機能素子から全端子に対して配線接続を行う。そして、以前のマクロレイアウト情報を、配線レイアウト処理がなされた後のマクロレイアウト情報に更新する処理を行う（ステップＳ１２５）＜マクロレイアウト情報更新工程ないしはマクロレイアウト情報更新処理＞。以上のステップＳ１２４〜Ｓ１２５により、本発明にいう「第２レイアウト処理工程」を構成できる。  
【０１７９】
次いで、変更後のマクロ名・端子名を、変更前のマクロ名・端子名に変更する処理を行う（ステップＳ１３１）＜マクロ名再変更工程・端子名再変更工程ないしはマクロ名再変更処理・端子名再変更処理＞。さらに、マクロレイアウトとトップレイアウトとをマージする処理を行う（ステップＳ１３２）＜マージ処理工程ないしはマージ処理＞。以上のステップＳ１３１〜Ｓ１３２により、本発明にいう「第３レイアウト工程」を構成できる。
【０１８０】
チップレイアウト領域において、余分な配線部を削除する処理を行う（ステップＳ１３３）＜余分配線部削除工程ないしは余分配線部削除処理＞。そして、チップレイアウト情報を出力する処理を行う（ステップＳ１３４）＜チップレイアウト情報出力工程ないしはチップレイアウト情報出力処理＞。以上のステップＳ１３３により、本発明にいう「余分配線削除工程」を構成できる。  
【０１８１】
（端子座標を算出する処理について）
次に、上述の各ステップにおいて、Ｓ１０８の端子座標を算出する処理の詳細について、図２３を用いて説明する。図２３は、端子座標を算出する処理の詳細な処理手順を示すフローチャートである。図２３に示すように、ステップＳ１０８において、先ず、トップネットリスト情報から特定の２つのマクロブロック同士の接続関係情報を取得する処理を行う（ステップＳ２０１）＜マクロブロック接続関係情報取得工程ないしはマクロブロック接続関係情報取得処理＞。
【０１８２】
接続関係情報が取得されると、接続関係にある一方のマクロブロックの各頂点座標（トップレイアウト座標系）を取得する処理を行う（ステップＳ２０２）＜第１マクロ頂点座標取得工程ないしは第１マクロ頂点座標取得処理＞。さらに、一方のマクロブロックの第１中心座標を算出する処理を行う（ステップＳ２０３）＜第１中心座標算出工程ないしは第１中心座標算出処理＞。
【０１８３】
また、接続関係にある他方のマクロブロックの各頂点座標を取得する処理を行う（ステップＳ２０４）＜第２マクロ頂点座標取得工程ないしは第２マクロ頂点座標取得工程＞。さらに、他方のマクロブロックの第２中心座標を算出する処理を行う（ステップＳ２０５）＜第２中心座標算出工程ないしは第２中心座標算出処理＞。
【０１８４】
次に、第１中心座標と第２中心座標を結ぶ結合線（結合関数）を算出する処理を行う（ステップＳ２０６）＜中心座標結合関数算出工程ないしは中心座標結合関数算出処理＞。なお、「中心座標」でなくても、マクロブロック領域の特定点であってよい。２点を結ぶ結合関数は、任意の関数であってよい。以上のステップＳ２０１〜Ｓ２０６により、本発明にいう「特定点結合関数算出制御工程」を構成できる。
【０１８５】
そして、相対向する２つのマクロブロック同士のうち、一方のマクロブロックの対向辺と、前記結合線（結合関数）との第１交点座標を算出する処理を行う（ステップＳ２０７）＜第１交点座標算出工程ないしは第１交点座標算出処理＞。さらに、相対向する２つのマクロブロック同士のうち、他方のマクロブロックの対向辺と前記結合線（結合関数）との第２交点座標を算出する処理を行う（ステップＳ２０８）＜第２交点座標算出工程ないしは第２交点座標算出処理＞。以上のステップＳ２０７〜Ｓ２０８により、本発明にいう「交差部座標算出制御工程」を構成できる。  
【０１８６】
このようにして、第１交点座標を一方のマクロブロックのマクロ端子として決定し、該マクロ端子の配置処理を行う（ステップＳ２０９）＜第１マクロ端子配置工程ないしは第１マクロ端子配置処理＞。また、第２交点座標を他方のマクロブロックのマクロ端子として決定し、該マクロ端子の配置処理を行う（ステップＳ２１０）＜第２マクロ端子配置工程ないしは第２マクロ端子配置処理＞。
【０１８７】
次に、他にマクロブロック同士の接続関係情報があるか否かを判定する（ステップＳ２１１）＜接続関係探索判定工程ないしは接続関係探索判定処理＞。この判定処理において、他にもマクロブロック同士の接続関係情報があると判定された場合にはステップＳ２０２に戻る。一方、他にマクロブロック同士の接続関係情報がないと判定された場合には、本Ｓ１０８の処理を終了して、次のＳ１０９へ移行する。
【０１８８】
以上のような端子座標を算出する処理によれば、マクロ端子の最適座標位置は、各マクロブロック間の中心点を結ぶ結合線と、マクロブロックの境界線との交点（交差部）によって算出されるので、各マクロブロック同士の各マクロ端子間距離を、短小にできるので、マクロブロック間に配線される配線長を短く形成できる。このため、マクロブロックの配置関係（位置関係）が如何なる配置であったとしても、迂回配線を防止して、配線長の短い配線を形成できる。
【０１８９】
特に、同一種類マクロブロックが複数形成される場合には、周囲の配置関係の状況にかかわらず、常に配線長を短く形成できる利点がある。
【０１９０】
（変更前の端子を変更後の全端子に置き換える処理）
次に、上述のＳ１２１における、変更前の端子を、変更後の全端子に置き換える処理の詳細な処理手順について、図２４を参照しつつ説明する。図２４は、変更前の端子を、変更後の全端子に置き換える処理をさらに詳細な処理手順の一例を示したフローチャートである。
【０１９１】
Ｓ１２１において、先ず、トップレイアウト情報から複数の同一種類マクロブロックに関する情報（各マクロブロックに対する端子座標等）を取得する処理を行う（ステップＳ３０１）＜同一種類マクロブロック関連情報取得工程ないしは同一種類マクロブロック関連情報取得処理＞。
【０１９２】
次に、一つの同一種類マクロブロックについて、マクロ端子が、同一種類マクロブロックの一つの頂点から如何なる位置にあるかを算出する処理を行う（ステップＳ３０２）＜相対位置算出工程ないしは相対位置算出処理＞。
【０１９３】
ここにおいて、トップレイアウト座標系における端子座標を、マクロレイアウト座標系における端子座標に変換する処理を行う。さらに、算出された端子座標（マクロレイアウト座標系）をもとに、マクロレイアウト情報の中におけるマクロブロックに対して、全端子の配置処理を行う（ステップＳ３０４）。
【０１９４】
次いで、複数の同一種類マクロブロックのうち、処理されていない他のマクロブロックがあるか否かを判定する処理を行う（ステップＳ３０５）＜同一種類マクロブロック探索判定工程ないしは同一種類マクロブロック探索判定処理＞。この判定処理において、複数の同一種類マクロブロックのうち、処理されていない他のマクロブロックがあると判定された場合には、ステップＳ３０２に戻る。一方、前記判定処理において、複数の同一種類マクロブロックのうち、処理されていない他のマクロブロックがないと判定された場合には、本ステップＳ１２１を終了し、次のステップＳ１２２へ移行する。
【０１９５】
以上のような変更前の端子を変更後の全端子に置き換える処理によれば、異なる種類とみなされた各同一種類マクロブロックの各マクロ端子の全端子を、１つの同一種類マクロブロックの境界領域に割り当てることによって、マクロレイアウト処理を、異なる種類とみなされた各同一種類マクロブロックについて、１回で済ませることができる。
【０１９６】
（余分な配線部を削除する処理）
次に、上述したステップＳ１３３の余分な配線部を削除する処理のさらに詳細な処理手順について、図２５を参照しつつ説明する。図２５は、余分な配線部を削除する処理の詳細な処理手順の一例を示したフローチャートである。
【０１９７】
ステップＳ１３３において、線分の端点が他の線分又は論理回路素子に繋がらない線分を探索する処理を行う（ステップＳ１３３ａ）＜端点探索工程ないしは端点探索処理＞。次に、繋がらない線分を削除する処理を行う（ステップＳ１３３ａ）
【０１９８】
そして、他に繋がらない線分はあるか否かを判定する処理を行う（ステップＳ１３３ｃ）＜線分判定工程ないし線分判定処理＞。この判定処理において、他に繋がらない線分があると判定された場合には、ステップＳ１３３ａに戻る。一方、前記判定処理において、他に繋がらない線分がないと判定された場合には、本ステップＳ１３３の処理を終了し、次のステップＳ１３４に移行する。
【０１９９】
以上のような余分な配線部を削除する処理によれば、マクロブロック内のマクロレイアウトにおいて機能素子から全端子に対して配線レイアウト処理がなされたとしても、余分な配線部は自動的に削除されるので、結果として配線性の向上がなされたチップレイアウトを提供できる。
【０２００】
（効果の説明） 
以上のように本実施の形態によれば、複数の同一種類のマクロブロックを含む複数のマクロブロック内外での配線レイアウト処理において、仮レイアウトや概略配線処理、オフセット処理あるいはクランプ処理などの不要な処理を行うことなく、また、無駄な素子を形成することなく必要なマクロブロック領域を確保しながらも、マクロ端子に接続する全ての配線を短小化した形でレイアウトを行うことができ、迂回配線（配線引き回し）をなくし、集積回路の配線性を向上させ配線遅延時間の悪化を抑制できる。
【０２０１】
また、階層レイアウト手法を採用するＬＳＩレイアウトにおいて、同一種の階層マクロが複数使用される場合、それらを別々のマクロとみなしてマクロの端子座標を決定しトップレイアウト（マクロ間の配線処理）を行う。マクロレイアウトにおいては、別々の座標として設定された端子に全て接続するよう、当該マクロの配線処理を１回のみ行う。前記トップレイアウトとマクロレイアウトをマージした後、マクロ間の接続が完結しない余分な配線を削除する。これらによりマクロレイアウトの同一性を保ちつつマクロ間の配線引き回しをなくし、ＬＳＩ全体の配線性を向上させ配線遅延時間の悪化を抑制する。
【０２０２】
ここで、図２６は、本実施の形態の構成において、マクロブロックに全マクロ端子を配置し、マクロブロック内にて全マクロ端子に対して配線を行い、チップレイアウト後に、配線部のうち余分な部分を削除するという一連の工程を概念的に簡略化して示しているものである。図２６に示すように、複数の同一種類マクロブロック１９１、１９２のうち一方の同一種類マクロブロック１９１には、一方のマクロ端子ｔｆ１と、機能素子（例えば論理回路素子）ｎとが形成されている。他方の同一種類マクロブロック１９２には、他方のマクロ端子ｔｆ２と、機能素子ｎが形成されている。（ここでは、既にマクロ名及びマクロ端子名が変更され、マクロ端子の最適配置位置が算出されてマクロ端子が配置された状態を想定されたい。）
【０２０３】
次に、一つのマクロブロックである同一種類マクロブロック１９３に、全マクロ端子ｔｆ１、ｔｆ２が配置されることとなる。（このマクロブロックの状態を、第１マクロレイアウト情報＜機能素子のみの状態＞から第２マクロレイアウト情報＜符号１９４の状態＞へ至る過程の中間状態であることから仮に中間生成マクロブロックと呼ぼう。）
【０２０４】
そして、同一種類マクロブロック１９３では、マクロレイアウト処理（配線処理）が行われ、配線部Ｌ１、Ｌ２が形成される。さらに、チップレイアウト後には、一方の同一種類マクロブロックに相当する領域１９５と、他方の同一種類マクロブロックに相当する領域１９６が形成される。ここで、領域１９５には、配線部Ｌ１、Ｌ２が形成されるが、余分配線部削除処理によってＬ２が削除される。また、領域１９６にも配線部Ｌ１、Ｌ２が形成されるが、余分配線部削除処理によってＬ１が削除される。
【０２０５】
以上の点を踏まえた上で、比較例として仮に関連技術の特許文献２のマクロブロックを特許文献２の技術思想ではなく、本実施の形態の技術思想を用いて処理した場合には、最終的に如何なる配線となるかを検討する。この場合、図２６に示すように、全端子について配線されたマクロブロック１９８ａが生成される。そして、チップレイアウト後には、マクロブロックに相当する領域１９８ｂには、最終段階で余分な配線部が削除された状態で配線部が形成される。この最終段階の配線レイアウト（図２６の符号１９８ｂ）と、図３６の特許文献２の技術思想によって配線された配線部１０３２とを比較すると、明らかに、本実施の形態の手法を用いた方が配線長が短く形成されるのが理解されよう。
【０２０６】
このような観点からも、特許文献２では、単にマクロ端子を移動するだけで、マクロブロック内部の配線長を短くすることができない。これに対し本実施の形態では、配線長を短くすることができる。その理由は、最初の段階では、マクロブロック内において、マクロ端子と機能素子との間の配線を行っておらず、マクロ端子の最適座標位置を計算によって求めた後に、配線を行うからである。従って、特許文献２のように仮レイアウト工程や仮レイアウトを行った上で端子位置や配線位置を修正してみたりする修正工程などを一切行うことなく、一発で最適位置が判明するのである。
【０２０７】
［第２の実施の形態］
次に、本発明にかかる第２の実施の形態について、図２７乃至図３０に基づいて説明する。なお、以下には、前記第１の実施の形態の実質的に同様の構成に関しては説明を省略し、異なる部分についてのみ述べる。図８は、本発明のレイアウト設計支援装置の第２の実施の形態の一例を示すブロック図である。本実施の形態のレアイウト設計補助装置の構成は、上述の第１の実施の形態のレイアウト設計支援装置の構成と比較すると、階層マクロ端子座標決定部の構成が異なる。
【０２０８】
すなわち、上述の第１の実施の形態では、マクロ端子の最適座標位置を算出するに際し、各マクロブロックの各中心点を結ぶ結合線と各マクロブロックの境界線との交差部を求める手法を示したが、本実施の形態では、接続関係のあるマクロブロック間の距離が最短となる辺の対を求め、その辺上の点にマクロ端子を配置する手法を示している。
【０２０９】
具体的には、図２７に示すように、レイアウト設計支援装置の階層マクロ端子座標決定部２０２は、辺関数算出部２０４（本発明にいう「辺算出部」に該当する）、辺上特定位置算出部２０６（本発明にいう「特定位置算出部」に該当する）、端子配置処理部２０８を含んで構成される。
【０２１０】
辺関数算出部２０４は、少なくとも２つの各マクロブロックの距離が最短となる互いに対向する一対の辺の関数を求める。より好ましくは一対の辺の位置を求める。辺上特定位置算出部２０６は、前記辺上の特定位置を算出する。この状態を示すと、例えば図２８のようになる。図２８では、算出された双方の各マクロブロックの各特定位置同士が破線で結ばれている。端子配置処理部２０８は、算出された双方の各マクロブロックの各特定位置に各マクロ端子を配置処理する。この状態を示すと、図２９のようになる。なお、図２８及び図２９の例では、辺上の特定位置として、２つのマクロブロック同士が対向している領域部分の中央部となる位置を選定しているがこれに限るものではない。いずれの位置であっても最短距離は変わらないからである。
【０２１１】
（処理手順について）
次に、上述のような構成からなる集積回路のレイアウト設計支援装置の詳細な処理手順について、図３０を参照しつつ説明する。図３０は、第２の実施の形態の端子座標を算出する処理の詳細な処理手順の一例を示すフローチャートである。
【０２１２】
図３０に示すように、先ず、トップネットリスト情報から特定の２つのマクロブロック同士の接続関係情報を取得する処理を行う（ステップＳ４１１）。
【０２１３】
次に、相対向する２つのマクロブロック同士のうち、一方のマクロブロックの対向辺の辺関数（ｙ＝ｋ１、{Ｘ１≦ｘ≦Ｘ２}）を算出する処理を行う（ステップＳ４１２）＜第１辺関数算出工程ないしは第１辺関数算出処理＞。さらに、相対向する２つのマクロブロック同士のうち、他方のマクロブロックの対向辺の辺関数（ｙ＝ｋ２、{Ｘ３≦ｘ≦Ｘ４}）を算出する処理を行う（ステップＳ４１３）＜第２辺関数算出工程ないしは第２辺関数算出処理＞。以上のステップＳ４１１〜Ｓ４１３により、本発明にいう「辺算出制御工程」を構成できる。  
【０２１４】
そして、一方のマクロブロックの対向辺と、他方のマクロブロックの対向辺とが向き合っている領域の長さを算出する処理を行う（Ｓ４１４）＜対向領域算出工程ないしは対向領域算出処理＞。ここで、一方のマクロブロックの対向辺のうち、向き合っている領域の長さの半分となる位置を算出する処理を行う（Ｓ４１５）＜第１中央部算出工程ないしは第１中央部算出処理＞。さらに、他方のマクロブロックの対向辺のうち、向き合っている領域の長さの半分となる位置を算出する処理を行う（Ｓ４１６）＜第１中央部算出工程ないしは第１中央部算出処理＞。以上のステップＳ４１４〜Ｓ４１６により、本発明にいう「特定位置算出制御工程」を構成できる。
【０２１５】
そして、算出された位置を一方のマクロブロックのマクロ端子の位置として決定し、マクロ端子の配置処理を行う（Ｓ４１７）。また、算出された位置を他方のマクロブロックのマクロ端子として決定し、マクロ端子の配置処理を行う（Ｓ４１８）。
【０２１６】
次に、他にマクロブロック同士の接続関係情報があるか否かの判定処理を行う（Ｓ４１９）＜接続関係情報探索工程ないしは接続関係情報探索処理＞。この判定処理において、他にマクロブロック同士の接続関係情報があると判定された場合には、ステップＳ４１２に戻る。一方、前記判定処理において、他にマクロブロック同士の接続関係情報がないと判定された場合には、本ステップＳ４０２を終了し、後工程は、前記第１の実施の形態同様に、Ｓ１０９へ移行する。
【０２１７】
以上のように本実施の形態によれば、マクロブロック間の配線レイアウト処理を行うにあたり、各マクロブロック間の最短位置に配線することができ、前記第１の実施の形態と同様の作用効果を奏しながらも、さらなる配線性を向上させることができる。
【０２１８】
（各種変形例）
なお、本発明にかかるＬＳＩのレイアウト設計支援装置、ＬＳＩのレイアウト設計方法は、そのいくつかの特定の実施の形態に従って説明してきたが、本発明の主旨および範囲から逸脱することなく本発明の本文に記述した実施の形態に対して種々の変形が可能である。例えば、上述の第１の実施の形態では、マクロ端子の最適位置を算出する結合関数として１次関数（直線）を用いる例を説明したが、これに限定されるものではなく、図３１に示すように、３点を通る略３次関数であってもよい。あるいは、２点を通る自由曲線であってもよい。
【０２１９】
図３１のようなマクロブロックのレイアウトの場合、直線であると、結合関数Ｌ１とマクロブロックＡ１との境界線との交差部が、マクロブロックＡ１の左辺に形成されてしまう。このような場合には、他の結合関数Ｌ２を用いて、交差部の座標位置が下辺となるように構成できる。ここで、マクロ端子を配置すべきマクロブロックの第１の辺に交差部位置が算出されたのか、接続関係にないマクロブロックの第１方向と対向する第２の辺に交差部位置が算出されたのかを判定する交差部位置適正判定部を第２の端子座標算出処理部内に設けることが好ましい。そして、交差部位置適正判定部にて適正でないと判断された場合には、交差部算出に用いた第１結合関数を他の第２結合関数を用いて計算するように制御する結合関数制御部を第２の端子座標算出処理部内に設けることが好ましい。結合関数制御部は、複数の異なる結合関数による各結合関数算出部と、各結合関数による各交差部位置算出部とを制御して最適位置を算出する。これにより、複雑なレイアウトパターンであっても、マクロ端子の最適位置を算出できるようになる。
【０２２０】
さらに、マクロ端子位置の算出がなされている場合には、トップレイアウト工程と、マクロレイアウト工程は、並列的に行ってもよい。
【０２２１】
また、上述の実施の形態ではＬＳＩのレイアウト設計支援ソフトウエアを１台の情報処理装置に搭載する構成を例に挙げたが、情報端末とこの情報端末とネットワークを介して通信可能に形成された管理装置（例えば１又は複数台のサーバ）とを有し、管理装置側にＬＳＩレイアウト設計ソフトウエアを搭載し、情報端末からの操作入力によって設計可能に構成してもよい。すなわち、レイアウト設計支援システムとして構成してもよい。さらに、この場合、通常のブラウザなどから操作できるように構成してもよい。
【０２２２】
また、この場合の「システム」とは、複数の装置が論理的に集合した物をいい、各構成の装置が同一筐体中にあるか否かは問わない。このため、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０２２３】
なお、ネットワークとしては、例えば携帯電話回線網（基地局及び交換システムを含む）、公衆電話回線網、ＩＰ電話網、ＩＳＤＮ回線網などこれに類する各種回線網、インターネット（乃ち、ＴＣＰ・ＩＰプロトコルを用いた通信態様）やイントラネット、ＬＡＮ（イーサネット：登録商標、やギガビットイーサネットなどを含む）、ＷＡＮ、光ファイバー通信網、電力線通信網、ブロードバンド対応可能な各種専用回線網などいずれのハードウエア構成でもよい。さらに、ネットワークは、ＴＣＰ・ＩＰプロトコルの他、種々の通信プロトコルを用いたネットワークあるいはソフトウエア的に構築された仮想ネットワークやこれに類するあらゆるネットワークを含むネットワークなどいかなる通信プロトコルであってもよい。また、ネットワークは、有線に限らず、無線（衛星通信、各種高周波通信手段等を含む）ネットワーク（例えば、簡易電話システムや携帯電話のようなシングルキャリア通信システム、Ｗ―ＣＤＭＡやＩＥＥＥ８０２．１１ｂに準拠した無線ＬＡＮのようなスペクトラム拡散通信システム、ＩＥＥＥ８０２．１１ａやＨｉｐｅｒＬＡＮ／２のようなマルチキャリア通信システム、などを含むネットワーク）であっても構わず、これらの組み合わせを利用してもよく、他のネットワークと接続されたシステムであってもよい。さらに、ネットワークは、ポイントツーポイント、ポイントツーマルチポイント、マルチポイントツーマルチポイントなど如何なる形態でもよい。  
【０２２４】
また、上述の実施の形態では、情報処理装置が１台の例で説明したが、複数台形成してもよい。また、記憶部８の各部を専用のデータベースないしはサーバで構成してもよい。すなわち、トップレイアウト情報サーバ、トップネットリスト情報サーバ、階層マクロ変更リストサーバ、マクロネットリストサーバ、マクロレイアウトサーバ、チップレイアウトサーバ、などである。
【０２２５】
さらに、「サーバー」には、データベースなどのＳＱＬサーバーのみならず、ｗｅｂサーバー、電子メールを送受信するためのＰＯＰ及びＳＭＴＰサーバーやその他ＤＮＳサーバーなどの各種サーバーを含んで構成され、これらを含むシステムの総称として機能してもよい。
【０２２６】
（プログラム）
また、前述した実施形態の機能を実現する本発明のソフトウエアのプログラム（集積回路のレイアウト設計用プログラム）は、前述した各実施の形態における図１、図２、図３、図１１、図１２、及び図２７に示すブロック図、図２２、図２３、図２４、及び図２５等に示すフローチャートなどに示された各部、各処理工程（処理手順）、機能などに対応したプログラムや、（上述の各実施の形態の図２の制御部２など）において各々処理される各処理プログラム、本明細書で全般的に記述される方法（ステップ）、説明された処理、データ（例えば、トップレイアウト情報、トップネットリスト情報、マクロネットリスト情報、階層マクロ変更リスト情報、マクロレイアウト情報、チップレアウト情報、物理ライブラリ情報、各種テーブル等）、各種ＤＢ（データベース）のデータの全体もしくは各部を含む。
【０２２７】
プログラムは、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。プログラムは、高水準プロシージャ型またはオブジェクト指向プログラミング言語で、あるいは必要に応じてアセンブリまたはマシン言語で実装することができる。いずれの場合も、言語はコンパイラ型またはインタープリタ型言語であってもよい。上述のレイアウト設計支援プログラムを、一般のパソコンや携帯型情報端末などで動作可能なアプリケーションソフトに組み込んだものも含む。
【０２２８】
集積回路のレイアウト設計支援プログラムを供給する手法としては、電気通信回線（有線、無線を問わない）によってコンピュータと通信可能に接続された外部の機器から前記電気通信回線を通じて提供することも可能である。例えば、コンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページからプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、プログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるサーバも、本発明の範囲に含まれるものである。
【０２２９】
（情報記録媒体）
また、レイアウト設計支援プログラムを、情報記録媒体に記録した構成であってもよい。情報記録媒体には、レイアウト設計支援プログラムを含むアプリケーションプログラムが格納されており、コンピュータが当該情報記録媒体からアプリケーションプログラムを読み出し、当該アプリケーションプログラムをハードディスクにインストールすることが可能である。これにより、上述のプログラムは、磁気記録媒体、光記録媒体あるいはＲＯＭなどの情報記録媒体に記録してプログラムを提供することができる。そのようなプログラムが記録された情報記録媒体を、コンピュータにおいて使用することは、好都合な情報処理装置を構成する。
【０２３０】
プログラムを供給するための情報記録媒体としては、例えばＲＯＭ、ＲＡＭ、フラッシュメモリやＳＲＡＭ等の半導体メモリ並びに集積回路、あるいはそれらを含むＵＳＢメモリやメモリカード、光ディスク、光磁気ディスク、磁気記録媒体等を用いてよく、さらに、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ―Ｒ、ＣＤ―ＲＷ、ＦＤ、ＤＶＤＲＡＭ、ＤＶＤＲＯＭ、ＤＶＤ―Ｒ、ＤＶＤ―ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ、ＭＯ、ＺＩＰ、磁気カード、磁気テープ、ＳＤカード、メモリスティック、不揮発性メモリカード、ＩＣカード、等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置、等に記録して構成して用いてよい。
【０２３１】
さらに「情報記録媒体」は、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの（伝送媒体ないしは伝送波）、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。
【０２３２】
また、コンピュータ上で稼働しているＯＳ、端末（例えば携帯電話など）上のＲＴＯＳ等が処理の一部又は全部を行う場合にも、上記実施の形態と同等の機能を実現できると共に、同等の効果を得ることができる。
【０２３３】
さらに、プログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。この場合、本発明の構成は、レイアウト設計支援プログラムの各構成要素（各種の各部、ステップ及びデータ）と、前記レイアウト設計支援プログラム（各種の各部、ステップ及びデータ）を暗号化する暗号化手段と、を含んでよい。
【０２３４】
また、上述の実施の形態の「レイアウト設計支援装置」を、他の「情報処理装置」と統合した装置として、これら全体を本発明の「レイアウト設計支援装置」として構成することも一向に構わない。「レイアウト設計支援装置」には、ＯＳや周辺機器等のハードウェアを含むものとする。
【０２３５】
さらに、上述のＬＳＩのレイアウト設計支援プログラムなどが搭載される情報処理装置としては、サーバは、例えばパーソナルコンピュータに限らず、各種サーバー、ＥＷＳ（エンジニアリングワークステーション）、中型コンピュータ、メインフレームなどが挙げられる。クライアント端末は、以上の例に加えて、携帯型情報端末、各種モバイル端末、ＰＤＡ、携帯電話機、ウエアラブル情報端末、種々のテレビ・ビデオ・ＤＶＤレコーダ・各種音響機器及びそのリモコン、各種情報通信機能を搭載した家電機器、ネットワーク機能を有するゲーム機器等からも利用できる構成としても構わない。あるいは、これらの端末に表示されるアプリケーションとして改良されたものも本発明の範囲に含めることができる。
【０２３６】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【０２３７】
なお、本明細書において、フローチャートに示されるステップは、記載された手順に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。また、実装では、プログラム手順（ステップ）が実行される順序を変更することができる。さらに、実装の必要に応じて、本明細書で説明した特定の手順（ステップ）を、組み合わされた手順（ステップ）として実装、除去、追加、または再配置することができる。
【０２３８】
さらに、図１、図２、図３、図１１、図１２、及び図２７各部の各機能、図２２、図２３、図２４、図２５、及び図３０各ステップの手順の機能などのプログラムの機能を、専用のハードウエア（例えば専用の半導体回路等）によりその機能を達成してもよく、プログラムの全機能のうち一部の機能をハードウエアで処理し、全機能のうちさらに他の機能をソフトウエアで処理するようにしてもよい。専用のハードウエアの場合、各部を集積回路例えばＬＳＩにて形成されてもよい。これらは個別に１チップ化されても良いし、一部または全部を含むように１チップ化されても良い。また、ＬＳＩには、ストリーミングエンジンなど他の機能ブロックが含まれていても良い。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。
【０２３９】
さらに、上記各実施の形態には種々の段階が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。つまり、上述の各実施の形態同士、あるいはそれらのいずれかと各変形例のいずれかとの組み合わせによる例をも含むことは言うまでもない。この場合において、本実施形態において特に記載しなくとも、各実施の形態及びそれらの変形例に開示した各構成から自明な作用効果については、当然のことながら本例においても当該作用効果を奏することができる。また、実施の形態に示される全構成要件から幾つかの構成要件が削除された構成であってもよい。
【０２４０】
そして、これまでの記述は、本発明の理解を容易にするために、本発明の実施の形態の一例のみを開示しており、各実施の形態及びそれらの変形例は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、例証するものであり、制限するものではなく、所定の範囲内で適宜変形及び／又は変更が可能である。本発明は、その技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができ、各実施の形態及びその変形例によって本発明の技術的範囲が限定的に解釈されてはならないものである。従って、上記の実施の形態に開示された各要素は、本発明の技術的範囲に属する全ての設計変更や均等物を含む趣旨である。
【産業上の利用可能性】
【０２４１】
本発明は、半導体産業、ＬＳＩ設計業界、コンピュータ産業、その他これに類する情報処理サービス産業に適用可能であり、必ずしも特定の基準に準拠していない可能性のあるコンピュータソフトウェアアプリケーションにも適用可能である。より詳細には、ＬＳＩのレイアウト設計支援、といった用途に適用できる。
【図面の簡単な説明】
【０２４２】
【図１】本発明の第１の実施の形態による集積回路のレイアウト設計支援装置の全体構成の一例を示すブロック図である。
【図２】図１に示すレイアウト設計支援装置の各部のさらに詳細な構成の一例を示すブロック図である。
【図３】図１に示すレイアウト設計支援装置の各部のさらに詳細な構成の一例を示すブロック図である。
【図４】図１のレイアウト設計支援装置のトップネットリスト情報の一例を示す説明図である。
【図５】図１のレイアウト設計支援装置のトップレイアウト情報の内容の一例を示す説明図である。
【図６】図１のレイアウト設計支援装置のマクロネットリスト情報の内容の一例を示す説明図である。
【図７】図１のレイアウト設計支援装置において同一種類のマクロのマクロ名が変更された後のトップレイアウト情報の内容の一例を示す説明図である。
【図８】図１のレイアウト設計支援装置において同一種類のマクロのマクロ名及びマクロ端子名が変更された後のトップネットリスト情報の内容の一例を示す説明図である。
【図９】図１のレイアウト設計支援装置の階層マクロ変更リスト情報記憶部に記憶される変更前後のマクロ名及びマクロ端子名の対応関係を示すテーブル（マクロ変更リスト）の一例を示す説明図である。
【図１０】図１のレイアウト設計支援装置において、各種レイアウト処理におけるマクロ名及び端子名の変更状態の一例を示す説明図である。
【図１１】図１のレイアウト設計支援装置において、マクロ名及び端子名の変更処理を行うための制御系の詳細を示すブロック図である。
【図１２】図１のレイアウト設計支援装置において、端子位置算出の処理を行うための制御系の詳細を示すブロック図である。
【図１３】図１のレイアウト設計支援装置において、マクロ端子位置を算出するための手法の一例を説明するための説明図である。
【図１４】図１のレイアウト設計支援装置において、マクロ端子位置を算出するための手法の一例を説明するための説明図である。
【図１５】図１のレイアウト設計支援装置においてマクロ間の配線レイアウト処理がなされた後のトップレイアウト情報の内容の一例を示す説明図である。
【図１６】図１のレイアウト設計支援装置において同一種類のマクロのマクロ名及びマクロ端子名が変更された後のマクロネットリスト情報の内容の一例を示す説明図である。
【図１７】図１のレイアウト設計支援装置において、各マクロ端子をマクロレイアウト領域上に割り当てる場合の一例を示す説明図である。
【図１８】図１のレイアウト設計支援装置において、マクロ内の配線レイアウト処理後の各マクロのレイアウト一例を示す説明図である。
【図１９】図１のレイアウト設計支援装置において、マクロレイアウトがトップレイアウトとマージされる一例を示す説明図である。
【図２０】図１のレイアウト設計支援装置において、マクロレイアウトがトップレイアウトとマージされた後に、配線が浮いた状態の一例を示す説明図である。
【図２１】図１のレイアウト設計支援装置において、マクロレイアウトがトップレイアウトとマージされた後に、削除処理後の状態の一例を示す説明図である。
【図２２】図１のレイアウト設計支援装置の処理手順の一例を示すフローチャートである。
【図２３】図２２の処理手順のさらに詳細な処理の一例を示すフローチャートである。
【図２４】図２２の処理手順のさらに詳細な処理の一例を示すフローチャートである。
【図２５】図２２の処理手順のさらに詳細な処理の一例を示すフローチャートである。
【図２６】図１のレイアウト設計支援装置において、マクロブロック内での配線レイアウトが行われる過程の例を示す説明図である。
【図２７】本発明の第２の実施の形態によるレイアウト設計支援装置の階層マクロ端子座標決定部の詳細な構成の一例を示すブロック図である。
【図２８】図２７のレイアウト設計支援装置において、マクロ端子位置を算出するための手法の一例を説明するための説明図である。
【図２９】図２７のレイアウト設計支援装置において、マクロ端子位置を算出するための手法の一例を説明するための説明図である。
【図３０】図２７のレイアウト設計支援装置の処理手順の一例を示すフローチャートである。
【図３１】レイアウト設計支援装置において、マクロ端子位置を算出するための手法の一例を説明するための説明図である。
【図３２】従来のレイアウト設計支援装置のマクロブロック間の配線レイアウト処理の一例を示す説明図である。
【図３３】従来のレイアウト設計支援装置のチップレイアウト後の配線レイアウト状態の一例を示す説明図である。
【図３４】関連技術のマクロブロックの一例を示す説明図である。
【図３５】関連技術のマクロブロックの問題を説明するための説明図である。
【図３６】関連技術のマクロブロックの問題を説明するための説明図である。
【符号の説明】
【０２４３】
１  レイアウト設計支援装置
２  制御部
４  端子座標算出制御部
５ａ  第１の端子座標算出処理部
５ｂ  第２の端子座標算出処理部
６  レイアウト処理制御部
１１  各種情報入力部
２１  トップ階層変更部
２２  マクロ名変更部
２３  端子名変更部
３１  階層マクロ端子座標決定部
３３  中心点結合関数算出部（特定点結合関数算出部）
３４  交差部座標算出部
３５  トップレイアウト処理部（第１のレイアウト処理部）
４１  階層マクロ端子追加及び端子座標設定処理部
４２  端子名変更部
４４  マクロレイアウト処理部（第２のレイアウト処理部）
５１  チップレイアウト前処理部
５４  チップレイアウト処理部（第３ノレイアウト処理部）
５５  マージ処理部
５６  余分配線削除処理部
６１  配置配線結果出力部
７０  中央制御部
９０  その他の各部
９１  マクロ名制御部
９２  端子名制御部
９３  同一機能マクロ制御部
９４  階層制御部
８１  物理ライブラリ情報記憶部
８２  トップレイアウト情報記憶部（第１レイアウト蓄積処理部）
８３  トップネットリスト情報記憶部（第１ネットリスト蓄積処理部）
８４  マクロネットリスト情報記憶部（第２ネットリスト蓄積処理部）
８５  階層マクロ変更リスト情報記憶部（マクロ変更リスト蓄積処理部）
８６  マクロレイアウト情報記憶部（第２レイアウト蓄積処理部）
８７  チップレイアウト情報記憶部
２０２  階層マクロ端子座標決定部
２０４  辺関数算出部（辺算出部）
２０６  辺上特定位置算出部（特定位置算出部）
２０８  端子配置処理部
【図１】
2008217365.tif 000003
【図２】
2008217365.tif 000004
【図３】
2008217365.tif 000005
【図４】
2008217365.tif 000006
【図５】
2008217365.tif 000007
【図６】
2008217365.tif 000008
【図７】
2008217365.tif 000009
【図８】
2008217365.tif 000010
【図９】
2008217365.tif 000011
【図１０】
2008217365.tif 000012
【図１１】
2008217365.tif 000013
【図１２】
2008217365.tif 000014
【図１３】
2008217365.tif 000015
【図１４】
2008217365.tif 000016
【図１５】
2008217365.tif 000017
【図１６】
2008217365.tif 000018
【図１７】
2008217365.tif 000019
【図１８】
2008217365.tif 000020
【図１９】
2008217365.tif 000021
【図２０】
2008217365.tif 000022
【図２１】
2008217365.tif 000023
【図２２】
2008217365.tif 000024
【図２３】
2008217365.tif 000025
【図２４】
2008217365.tif 000026
【図２５】
2008217365.tif 000027
【図２６】
2008217365.tif 000028
【図２７】
2008217365.tif 000029
【図２８】
2008217365.tif 000030
【図２９】
2008217365.tif 000031
【図３０】
2008217365.tif 000032
【図３１】
2008217365.tif 000033
【図３２】
2008217365.tif 000034
【図３３】
2008217365.tif 000035
【図３４】
2008217365.tif 000036
【図３５】
2008217365.tif 000037
【図３６】
2008217365.tif 000038