(57)【要約】【課題】  半導体集積回路の設計において、フロアプラン工数の増加やフロアプラン見直しによる設計後戻りによる設計期間の増加を抑えるための技術を提供する。【解決手段】  第１のリージョンに配置される第１のブロックと、第２のリージョンに配置され第１のブロックと接続する第２のブロックとの距離が最長となるように各リージョンに各ブロックを配置した場合の最長距離を算出する。この最長距離から、第１のブロックと第２のブロックとの最大パスディレイを算出する。この最大パスディレイが、目標パスディレイ以内であるか否か判定し、判定結果を出力装置に出力する。【選択図】  図１
2008242796.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路の複数の規定領域の各々にブロックを配置する論理回路のディレイ判定方法であって、
前記規定領域の各々を、前記半導体集積回路へ配置する位置を示す配置領域情報
を記憶する記憶装置を有するコンピュータに、
第１の規定領域に配置される第１のブロックと、第２の規定領域に配置され前記第１のブロックと接続する第２のブロックとの距離が最長となるように前記各規定領域に前記各ブロックを配置した場合の最長距離を算出する距離算出ステップと、
前記算出された最長距離から、前記第１のブロックと前記第２のブロックとの最大パスディレイを算出するパスディレイ算出ステップと、
前記算出した最大パスディレイが、目標パスディレイ以内である場合、前記第１のブロックと前記第２のブロックとのパスディレイが前記目標パスディレイに収束可能と判定する判定ステップと、
前記判定結果を、前記コンピュータの出力装置に出力する出力ステップと、
を実行させることを特徴とするディレイ判定方法。
【請求項２】
請求項１記載のディレイ判定方法であって、
前記距離算出ステップでは、第１の規定領域に配置される第１のブロックと、第２の規定領域に配置され前記第１のブロックと接続する第２のブロックとの距離が最短となるように前記各規定領域に前記各ブロックを配置した場合の最短距離をさらに算出し、
前記パスディレイ算出ステップでは、前記算出された最短距離から、前記第１のブロックと前記第２のブロックとの最小パスディレイをさらに算出し、
前記判定ステップでは、最小パスディレイが、目標パスディレイ以内でない場合、前記第１のブロックと前記第２のブロックとのパスディレイが前記目標パスディレイに収束不可能とさらに判定すること
を特徴とするディレイ判定方法。
【請求項３】
請求項２記載のディレイ判定方法であって、
前記出力ステップでは、最小パスディレイが目標パスディレイ以内でない場合、該目標パスディレイから、前記第１のブロックと前記第２のブロックとのパスディレイが前記目標パスディレイ以下となる前記第１のブロックと前記第２のブロックとの距離を算出し、該算出した距離情報を前記出力装置にさらに出力すること
を特徴とするディレイ判定方法。
【請求項４】
請求項１記載のディレイ判定方法であって、
前記出力ステップでは、最大パスディレイが目標パスディレイ以内である場合、該目標パスディレイから、論理合成するための前記第１のブロックと前記第２のブロックとのディレイ制約値を算出し、該算出したディレイ制約値を前記出力装置にさらに出力すること
を特徴とするディレイ判定方法。
【請求項５】
半導体集積回路の論理回路のディレイ判定方法であって、
複数の各リージョンと該リージョンに配置されるブロックとの論理構成と、前記各リージョンと該リージョンに配置されるブロックとを示すレイアウト構成と、前記各ブロックの接続関係を示す接続情報とを含む構成情報と、
前記リージョンの各々を、前記半導体集積回路へ配置する領域を示す配置領域情報と、
を記憶する記憶装置を有するコンピュータに、
前記構成情報に基づいて、第１のリージョンに配置される第１のブロックと、第２のリージョンに配置され前記第１のブロックと接続する第２のブロックとを選択し、前記第１のブロックと前記第２のブロックとの距離が最長となるように前記第１のリージョン及び前記第２のリージョンの各々に前記第１のブロックと前記第２のブロックとを配置した場合の最長距離を算出する距離算出ステップと、
前記算出された最長距離から、前記第１のブロックと前記第２のブロックとの最大パスディレイを算出するパスディレイ算出ステップと、
前記算出した最大パスディレイが、目標パスディレイ以内である場合、前記第１のブロックと前記第２のブロックとのパスディレイが前記目標パスディレイに収束可能と判定する判定ステップと、
前記判定結果を、前記コンピュータの出力装置に出力する出力ステップと、
を実行させることを特徴とするディレイ判定方法。
【請求項６】
請求項５記載のディレイ判定方法であって、
前記構成情報のレイアウト構成が、前記第１のブロックが、前記第１のリージョン及び第３のリージョンのうち任意の一方に配置されることを示しており、
前記距離算出ステップが、前記第１のブロックと前記第２のブロックとの距離が最長となるように、前記第１のリージョン、又は、前記第３のリージョンのうち一方に前記第１のブロックを配置した場合の最長距離を算出すること
を特徴とするディレイ判定方法。
【請求項７】
請求項５記載のディレイ判定方法であって、
前記構成情報が、ユニットと、該ユニットに配置される複数の各リージョンと、該各リージョンに配置されるブロックとの論理構成と、前記ユニット又はリージョンと該ユニット又はリージョンに配置されるブロックを示すレイアウト構成と、前記各ブロックの接続関係を示す接続情報とを含み、
前記配置領域情報が、前記ユニットを前記半導体集積回路へ配置する位置をさらに含み、
前記距離算出ステップが、前記構成情報に基づいて、ユニットに配置される第１のブロックと、第２のリージョンに配置され前記第１のブロックと接続する第２のブロックとを選択し、前記第１のブロックと前記第２のブロックとの距離が最長となるように前記ユニット及び前記第２のリージョンの各々に前記第１のブロックと前記第２のブロックとを配置した場合の最長距離を算出すること
を特徴とするディレイ判定方法。
【請求項８】
請求項５記載のディレイ判定方法であって、
前記構成情報が、ユニットと、該ユニットに配置される複数の各リージョンと、該各リージョンに配置されるブロックとの論理構成と、前記ユニット又はリージョンと該ユニット又はリージョンに配置されるブロックを示すレイアウト構成と、前記各ブロックの接続関係を示す接続情報とを含み、
前記距離算出ステップが、前記構成情報に基づいて、第１のブロックと、第２のリージョンに配置され前記第１のブロックと接続する第２のブロックとを選択し、前記第１のブロックと前記第２のブロックとの距離が最長となるように前記半導体集積回路及び前記第２のリージョンの各々に前記第１のブロックと前記第２のブロックとを配置した場合の最長距離を算出すること
を特徴とするディレイ判定方法。
【請求項９】
請求項５記載のディレイ判定方法であって、
前記構成情報のレイアウト構成が、前記第１のブロックが、各々が異なる階層の前記第１のリージョン及び第３のリージョンのうち任意の一方に配置されることを示しており、
前記距離算出ステップが、前記第１のブロックと前記第２のブロックとの距離が最長となるように、前記第１のリージョン、又は、前記第３のリージョンのうち一方に前記第１のブロックを配置した場合の最長距離を算出すること
を特徴とするディレイ判定方法。
【請求項１０】
請求項５記載のディレイ判定方法であって、
前記構成情報が、複数の各ブロックの接続関係を示す接続情報を含み、
前記配置領域情報が領域を示す情報を含んでおらず、
前記距離算出ステップが、前記構成情報に基づいて、第１のブロックと、第２のリージョンに配置され前記第１のブロックと接続する第２のブロックとを選択し、前記第１のブロックと前記第２のブロックとの距離が最長となるように前記半導体集積回路に前記第１のブロックと前記第２のブロックとを配置した場合の最長距離を算出すること
を特徴とするディレイ判定方法。
【請求項１１】
請求項５記載のディレイ判定方法であって、
前記配置領域情報が、前記第２のブロックを前記半導体集積回路へ配置する位置をさらに含み、
前記距離算出ステップが、前記構成情報に基づいて、第１のリージョンに配置される第１のブロックと、第２のリージョンに配置され前記第１のブロックと接続する第２のブロックとを選択し、前記第１のブロックと前記第２のブロックとの距離が最長となるように前記第１のリージョンに前記第１のブロックを配置した場合の最長距離を算出すること
を特徴とするディレイ判定方法。
【請求項１２】
半導体集積回路の複数の規定領域の各々にブロックを配置する論理回路のディレイ判定プログラムであって、
前記規定領域の各々を、前記半導体集積回路へ配置する位置を示す配置領域情報
を記憶する記憶装置を有するコンピュータに、
第１の規定領域に配置される第１のブロックと、第２の規定領域に配置され前記第１のブロックと接続する第２のブロックとの距離が最長となるように前記各規定領域に前記各ブロックを配置した場合の最長距離を算出する距離算出ステップと、
前記算出された最長距離から、前記第１のブロックと前記第２のブロックとの最大パスディレイを算出するパスディレイ算出ステップと、
前記算出した最大パスディレイが、目標パスディレイ以内であるか否か判定する判定ステップと、
前記判定結果を、前記コンピュータの出力装置に出力する出力ステップと、
を前記コンピュータに実行させることを特徴とするディレイ判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計に関するものである。
【背景技術】
【０００２】
半導体集積回路の設計に関する従来技術が特許文献１に記載されている。特許文献１に記載の技術は、まず、パスディレイをブロック内ディレイとブロック間ディレイに分ける。次に、論理情報から論理段数を求め、その論理段数とゲート単価ディレイと呼ぶ論理１段当たりのディレイとからブロック内ディレイを計算する。また、ブロックをフロアプランした情報であるブロックの配置領域情報からブロック間距離を求め、その距離と配線単価ディレイと呼ぶ単位長さ当りのディレイとから、ブロック間ディレイを計算する。これらを加算してパスディレイを求め、目標パスディレイと比較することでディレイ収束の可能性を判定する。
【０００３】
つまり特許文献１には、論理情報とブロックの配置領域情報とから、レイアウトを実施することなくパスディレイが目標パスディレイ以内に収束可能か判定可能な技術が記載されている。
【０００４】
【特許文献１】特許公開２００３−２８１２１５号広報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術では、上述のように、ブロックの配置領域情報からブロック間距離を計算する。その具体例を以下で説明する。
【０００６】
図２７は、１つの半導体集積回路の構成を説明するための図である。図２７において、図２７（ａ）は、最大4階層の論理構成の例である。図２７（ｂ）がレイアウト構成である。レイアウト構成とは、下位の論理が物理的にどの上位の配置領域内に配置されるかを示すものである。
【０００７】
図２７において、記号２７０１〜記号２７０８（Ｂ１〜Ｂ８）は、半導体集積回路の論理構成の単位であるブロックを示す。記号２７１１〜記号２７１３（Ｒ１〜Ｒ３）は、１つ以上のブロックを含むリージョンを示す。記号２７２１（Ｕ１）は、ユニットを示す。記号２７３１（Ｃ１）は、１つの半導体集積回路を示す。図２７の例では、記号２７０１（Ｂ１）から記号２７０３（Ｂ３）の配置領域は、記号２７１１（Ｒ１）の配置領域内に配置されることを示す。記号２７０４（Ｂ７）及び記号２７０５（Ｂ８）の配置領域は、記号２７１２（Ｒ２）の配置領域内に配置されることを示す。記号２７０６（Ｂ４）から記号２７０８（Ｂ６）の配置領域は、記号２７１３（Ｒ３）の配置領域内に配置されることを示す。また、記号２７１１（Ｒ１）と記号２７１２（Ｒ２）の配置領域は、記号２７２１（Ｕ１）の配置領域内に配置されることを示す。
【０００８】
なお、図２７の例では、論理構成とレイアウト構成は同じであるが、論理構成とレイアウト構成とが異なる場合も考えられる。
【０００９】
特許文献１に記載の技術は、半導体集積回路を構成する構成品を上位から順に、階層ごとに配置し、各階層の構成品の配置において、パスディレイが目標パスディレイ以内に収束可能か判定する。
【００１０】
特許文献１に記載の技術において、半導体集積回路を設計する工程を、図２８を参照して説明する。
【００１１】
仕様設計２８０１では、設計する半導体集積回路のアーキテクチャや目標性能などの仕様を定め、仕様書２８０２を作成する。機能設計２８０３では、仕様書２８０２を元にして機能を定め、機能設計情報２８０４を作成する。論理記述２８０５では、機能設計情報２８０４を元にして機能毎にブロック分割し、各ブロックをレジスタとその間の組み合せ回路からなる論理情報（ＲＴＬ（Register Transfer Level）記述）２８０６を作成する。
【００１２】
一方、回路設計２８０７では、半導体集積回路を構成する各層の材料特性等からディレイ特性情報２８０８を作成する。
【００１３】
また、一方、リージョンフロアプラン２８０９では、機能設計情報２８０４を元に各リージョンの配置を定め、リージョン配置情報２８１０を作成する。ブロックフロアプラン２８１１では、リージョン配置情報２８１０を元に各ブロックの配置を定め、ブロック配置情報２８１２を作成する。このように作成した論理情報２８０６、ディレイ特性情報２８０８、ブロック配置情報２８１２から、ディレイの収束可否判定を行なう。
【００１４】
ここで、上述の、リージョンフロアプラン２８０９、ブロックフロアプラン２８１１の具体例を、図２９を参照して説明する。ここでは、図２７における「Ｒ１」、「Ｒ３」を配置する場合の例を用いて説明する。
【００１５】
図２９において、半導体集積回路２９０１（Ｃ１）には、領域２９１１、領域２９１２が設定される。領域２９１１は、「Ｒ１」の領域であり、領域２９１２は「Ｒ３」の領域である。この場合、領域２９１１（Ｒ１）と領域２９１２（Ｒ３）とを接続するパスディレイが目標パスディレイ内に収束可能であるか否か判定するために、特許文献１に記載の技術では、領域２９１１の中心点２９２１と、領域２９１２の中心点２９２２との距離２９３１を算出し、この距離２９３１のパスディレイが目標パスディレイとなるように、領域２９１１（Ｒ１）と領域２９１２（Ｒ３）とを配置する。このようにリージョン領域を配置した後、各リージョン内のブロックを配置する。
【００１６】
次に、特許文献１に記載の技術において、図２９のようにリージョンを配置した場合にブロックを配置する場合の例を、図３０を参照して説明する。
【００１７】
図３０において、半導体集積回路３００１（Ｃ１）には、領域３０１１、領域３０１２が設定される。領域３０１１は、「Ｒ１」の領域であり、領域３０１２は「Ｒ３」の領域である。上述の図２７で示したように、「Ｒ１」内には、「Ｂ１」、「Ｂ２」、「Ｂ３」が配置される。また、「Ｒ３」内には、「Ｂ４」、「Ｂ５」、「Ｂ６」が配置される。図３０において、領域３０３１、領域３０３２は、それぞれ、「Ｂ１」、「Ｂ３」の領域である。また、図３０において、領域３０３３、領域３０３４は、それぞれ、「Ｂ４」、「Ｂ６」の領域である。
【００１８】
領域３０１１内の何れかのブロックと、領域３０１２内の何れかのブロックとを接続するパスディレイのうち、最も短いものは、領域３０３２（Ｂ３）と領域３０３３（Ｂ４）とを接続するものである。このときのパスディレイは、距離３０４２から取得される。また、領域３０１１内の何れかのブロックと、領域３０１２内の何れかのブロックとを接続するパスディレイのうち、最も長いものは、領域３０３１（Ｂ１）と領域３０３４（Ｂ６）とを接続するものである。このときのパスディレイは、距離３０４１から取得される。
【００１９】
ここで、上述のように、領域２９１１（領域３０１１）と領域２９１２（領域３０１２）とは、各々の中心点を結んだ距離によるパスディレイが目標パスディレイに収束可能であるか否かにより配置されたものである。従って、各リージョン内に配置されるブロックの配置によっては、各リージョン間で目標パスディレイと比較したパスディレイを算出した距離よりも、ブロック間の距離のほうが長くなる場合がある。具体的には、例えば、図２９における距離２９３１よりも、図３０における距離３０４１の方が長い。このような場合では、ブロック間のパスディレイが目標パスディレイ内に収束可能でないことがある。この場合、上位階層のフロアプランを再度検討する必要があり、工数とコストの増大につながる。
【００２０】
本発明はこのような事情に鑑みてなされたもので、半導体集積回路の設計において、フロアプラン工数の増加やフロアプラン見直しによる設計後戻りによる設計期間の増加を抑えるための技術を提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明は上記の目的を達成するためになされたもので、最下層の構成単位において、各構成単位のうち最もパスディレイが大きいものが、目標パスディレイ内に収束可能であるか否か判定することを特徴とする。
【００２２】
また、本発明は、半導体集積回路の複数の規定領域の各々にブロックを配置する論理回路のディレイ判定方法であって、前記規定領域の各々を、前記半導体集積回路へ配置する位置を示す配置領域情報を記憶する記憶装置を有するコンピュータに、第１の規定領域に配置される第１のブロックと、第２の規定領域に配置され前記第１のブロックと接続する第２のブロックとの距離が最長となるように前記各規定領域に前記各ブロックを配置した場合の最長距離を算出する距離算出ステップと、前記算出された最長距離から、前記第１のブロックと前記第２のブロックとの最大パスディレイを算出するパスディレイ算出ステップと、前記算出した最大パスディレイが、目標パスディレイ以内である場合、前記第１のブロックと前記第２のブロックとのパスディレイが前記目標パスディレイに収束可能と判定する判定ステップと、前記判定結果を、前記コンピュータの出力装置に出力する出力ステップと、を実行させることを特徴とする。
【発明の効果】
【００２３】
本発明の技術によれば、半導体集積回路の設計において、フロアプラン工数の増加やフロアプラン見直しによる設計後戻りによる設計期間の増加を抑えることが可能となる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の一実施形態を、図面を参照して詳細に説明する。
【００２５】
図１は、本実施形態のディレイ判定装置１の構成図の例である。ディレイ判定装置１は、入力装置１０１、ＣＰＵ（Central Processing Unit）１０２、出力装置１０３、主記憶装置１０４、補助記憶装置１０５等を有する。
【００２６】
入力装置１０１は、例えば、キーボード、マウス、スキャナ、マイク等である。出力装置１０３は、例えば、ディスプレイ、スピーカ、プリンタ等である。補助記憶装置１０５は、例えば、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disk）等の記憶メディア及び当該記憶メディアの駆動装置、ＨＤＤ（Hard Disk Drive）等である。
【００２７】
補助記憶装置１０５は、プログラム１２１、構成情報１２２、配置領域情報１２３、ディレイ特性情報１２４等を記憶する。
【００２８】
プログラム１２１は、後述する機能を実現する。
【００２９】
構成情報１２２は、設計対象の半導体集積回路を構成するユニット、リージョン、ブロック、レジスタ、エッジ毎の論理構成、レイアウト構成、接続情報等である。
【００３０】
配置領域情報１２３は、チップ、リージョン、ユニット、ブロック等の位置と形状情報等である。
【００３１】
ディレイ特性情報１２４は、ゲート単価ディレイおよび、配線単価ディレイ情報である。
【００３２】
これらの情報の詳細については後述する。
【００３３】
ＣＰＵ１０２は、主記憶装置１０４にロードしたプログラム１２１を実行することにより、論理段数取得部１３１、配置領域取得部１３２、ブロック間距離算出部１３３、ブロック内ディレイ算出部１３４、ブロック間ディレイ算出部１３５、判定部１３６、出力処理部１３７等を実現する。
【００３４】
論理段数取得部１３１は、ブロック内の論理段数を算出する。この論理段数取得部１３１の動作自体は、従来技術と同じである。配置領域取得部１３２は、各ブロックを配置するリージョンを取得する。ブロック間距離算出部１３３は、配置領域取得部１３２により配置されたリージョン及びブロックにおいて、異なるリージョンに属するブロック間の最長距離及び最短距離を算出する。ブロック内ディレイ算出部１３４は、ブロック内のパスディレイを算出する。ブロック間ディレイ算出部１３５は、算出されたブロック間の最長距離及び最短距離から、ブロック間のディレイの最大値及び最小値の各々を算出する。判定部１３６は、ブロック内ディレイ算出部１３４、ブロック間ディレイ算出部１３５により算出されたパスディレイの合計が目標値に収束するか否か判定する。出力処理部１３７は、判定部１３６による判定結果を出力装置１０３等に出力する。
【００３５】
次に、補助記憶装置１０５内の各情報の詳細について説明するが、その前に、以下で説明する構成情報１２２、配置領域情報１２３、ディレイ特性情報１２４となる半導体集積回路の構成例について説明する。
【００３６】
一例となる半導体集積回路の論理構成及びレイアウト構成、リージョン及びブロックの配置例については、上述の図２７、図３０等と同じであるので省略する。
【００３７】
一例となる半導体集積回路のレジスタとエッジの接続関係について、図２を参照して説明する。
【００３８】
図２において、ブロック２０１は、上述の図２７、図３０における「Ｂ１」である。また、ブロック２０２は、上述の図２７、図３０における「Ｂ６」である。レジスタ２１１は、ブロック２０１（Ｂ１）内のレジスタであり、ここでは「ＦＦ１」という。レジスタ２１２は、ブロック２０２（Ｂ６）内のレジスタであり、ここでは「ＦＦ２」という。レジスタ２１１は、エッジ２２１を介して、他のレジスタと接続する。ここでは、このエッジ２２１を「ＰＴ１」という。レジスタ２１２は、エッジ２２２を介して、他のレジスタと接続する。ここでは、このエッジ２２２を「ＰＴ２」という。即ち、レジスタ２１１（ＦＦ１）とレジスタ２１２（ＦＦ２）とは、エッジ２２１（ＰＴ１）、エッジ２２２（ＰＴ２）を介して接続する。
【００３９】
構成情報１２２の一例について、図３を参照して説明する。
【００４０】
図３（ａ）は、図３（ｂ）に示すチップの構成情報１２２の一例である。なお、図３（ｂ）に示すチップは、チップ「Ｃ１」上に、リージョン「Ｒ１」、リージョン「Ｒ３」の各々が配置されており、リージョン「Ｒ１」には、ブロック「Ｂ１」が配置され、リージョン「Ｒ３」には、ブロック「Ｂ６」が配置される。ブロック「Ｂ１」に配置されている始点レジスタ「ＦＦ１」は、エッジ「ＰＴ１」、エッジ「ＰＴ２」、ＡＮＤ「ＡＮＤ１」を介して、ブロック「Ｂ６」に配置されている終点レジスタ「ＦＦ２」と接続する。また、始点エッジ「ＰＴ４」は、エッジ「ＰＴ３」、ＡＮＤ「ＡＮＤ１」を介して、ブロック「Ｂ６」に配置されている終点レジスタ「ＦＦ２」と接続する。
【００４１】
図３（ａ）において、構成情報１２２は、フィールド３０１、フィールド３０２、フィールド３０３、フィールド３０４、フィールド３０５、フィールド３０６等を有する。各行のフィールドは互いに対応付けられている。
【００４２】
フィールド３０１は、対応するフィールド３０３のチップ、ユニット、リージョン、ブロック、レジスタ、エッジ、ＡＮＤ等の種別である。フィールド３０２は、対応するフィールド３０３のチップ、ユニット、リージョン、ブロック、レジスタ、エッジ、ＡＮＤ等が、始点側であるか、終点側であるかを示す。図３（ａ）の例では、フィールド３０２「入力」は、終点側であることを示し、フィールド３０２「出力」は、始点側であることを示す。フィールド３０３は、例えば、チップ名、ユニット名、リージョン名、ブロック名、レジスタ名、エッジ名、ＡＮＤ名等の何れかである。フィールド３０４は、対応するフィールド３０３のチップ、ユニット、リージョン、ブロック、レジスタ、エッジ、ＡＮＤ等の論理構成である。フィールド３０５は、対応するフィールド３０３のチップ、ユニット、リージョン、ブロック、レジスタ、エッジ、ＡＮＤ等のレイアウト構成である。フィールド３０６は、対応するフィールド３０３のチップ、ユニット、リージョン、ブロック、レジスタ、エッジ、ＡＮＤ等の接続する先の情報である。フィールド３０６は、さらに、フィールド３１１、フィールド３１２、フィールド３１３、フィールド３１４、フィールド３１５等を有する。フィールド３１１は、対応するフィールド３１３のチップ、ユニット、リージョン、ブロック、レジスタ、エッジ、ＡＮＤ等の種別である。フィールド３１２は、対応するフィールド３１３のチップ、ユニット、リージョン、ブロック、レジスタ、エッジ、ＡＮＤ等が、始点側であるか、終点側であるかを示す。図３（ａ）の例では、フィールド３１２「入力」は、終点側であることを示し、フィールド３１２「出力」は、始点側であることを示す。フィールド３１３は、対応するフィールド３０３のチップ、ユニット、リージョン、ブロック、レジスタ、エッジ、ＡＮＤ等と接続する品目の名称であり、例えば、チップ名、ユニット名、リージョン名、ブロック名、レジスタ名、エッジ名、ＡＮＤ名等の何れかである。フィールド３１４は、対応するフィールド３１３のチップ、ユニット、リージョン、ブロック、レジスタ、エッジ、ＡＮＤ等の論理構成である。フィールド３１５は、対応するフィールド３１３のチップ、ユニット、リージョン、ブロック、レジスタ、エッジ、ＡＮＤ等のレイアウト構成である。
【００４３】
次に、配置領域情報１２３の一例について、図４、図５を参照して説明する。
【００４４】
まず、図４を参照して、本実施形態の配置領域について説明する。
【００４５】
図４において、半導体集積回路４０１における位置は、ＸＹ座標で示される。例えば、リージョン４１１は、始点の座標「Ｘ１，Ｙ１」及び終点の座標「Ｘ２，Ｙ２」で示される。
【００４６】
次に、図５を参照して、配置領域情報１２３の一例を説明する。
【００４７】
図５において、配置領域情報１２３は、フィールド５０１、フィールド５０２、フィールド５０３、フィールド５０４、フィールド５０５等を有する。各行のフィールドは互いに対応付けられている。
【００４８】
フィールド５０１は、チップ、リージョン、ユニット、ブロック等の名称である。フィールド５０２は、対応するフィールド５０１のチップ、リージョン、ユニット、ブロック等の領域の始点Ｘ座標である。フィールド５０３は、対応するフィールド５０１のチップ、リージョン、ユニット、ブロック等の領域の始点Ｙ座標である。フィールド５０４は、対応するフィールド５０１のチップ、リージョン、ユニット、ブロック等の領域の終点Ｘ座標である。フィールド５０５は、対応するフィールド５０１のチップ、リージョン、ユニット、ブロック等の領域の終点Ｙ座標である。
【００４９】
なお、フィールド５０２、フィールド５０３、フィールド５０４、フィールド５０５等で定められる領域の基準点は任意である。
【００５０】
また、構成品の領域は、上述のように定まった大きさだけでなく、Ｘ座標とＹ座標における各々の最大値と最小値を含んでいてもよい。
【００５１】
また、図５に一例を示す配置領域情報１２３では、説明の簡略化のために、フィールド５０１にリージョン名のみが格納されている。しかし、これに限られるわけではなく、チップ、ユニット、ブロック等にも領域が定められても良い。また、以下では、ブロックの大きさは全て同じものとして説明するが、これに限られるわけではなく、各々のブロックの大きさは異なっていても良い。この場合、配置領域情報１２３には、さらに、各ブロックの大きさを示す情報が格納されるとよい。
【００５２】
次に、ディレイ特性情報１２４の一例を、図６を参照して説明する。
【００５３】
ディレイ特性情報１２４は、フィールド６０１、フィールド６０２等を有する。各行のフィールド６０１、フィールド６０２は互いに対応付けられている。フィールド６０１は、ディレイ単価項目を示す。フィールド６０２は、対応するフィールド６０１のディレイ単価項目の単価である。本実施形態では、ディレイ単価項目のうち、「ゲート単価ディレイ」の単価は一律であるが、「配線単価ディレイ」の単価は使用する配線層により異なる。図６の例では、２層分の「配線単価ディレイ」の単価を有するものとする。
【００５４】
次に、図７を参照して、ディレイ判定装置１の動作例を説明する。
【００５５】
なお、図７に示す動作が起動するタイミングは任意でよい。例えば、ユーザが入力装置１０１を用いてコマンドを入力等した場合に起動してもよく、また、構成情報１２２、配置領域情報１２３、ディレイ特性情報１２４等の何れかが補助記憶装置１０５に格納、更新等された場合に起動してもよい。ここでは、以下の動作を実行するときには、構成情報１２２、配置領域情報１２３、ディレイ特性情報１２４等が補助記憶装置１０５に既に格納されているものとして説明する。
【００５６】
論理段数取得部１３１は、各ブロックの論理段数を取得する（Ｓ７０１）。そのために、例えば、論理段数取得部１３１は、まず、構成情報１２２から、各終点レジスタにつながる始点数を求める。具体的には、例えば、論理段数取得部１３１は、構成情報１２２の各行を参照し、フィールド３０１が「レジスタ」であり、かつ、このフィールド３０１に対応するフィールド３０２が「入力」である行を選択する。ここで選択した行のレジスタが、終点レジスタである。論理段数取得部１３１は、選択した行のフィールド３１１、フィールド３１３、フィールド３１４等を抽出する。次に、論理段数取得部１３１は、構成情報１２２の各行のフィールド３０１、フィールド３０２、フィールド３０３、フィールド３０４等を参照し、フィールド３０１が直前の処理で抽出したフィールド３１１と一致し、フィールド３０２が「入力」であり、フィールド３０３が直前の処理で抽出したフィールド３１３と一致し、フィールド３０４が直前の処理で抽出したフィールド３１４と一致する行を選択する。論理段数取得部１３１は、選択した行のフィールド３１１、フィールド３１２、フィールド３１４等を参照し、選択した行のフィールド３１１が「レジスタ」であり、かつ、選択した行のフィールド３１２が「出力」であるか、或いは、選択した行のフィールド３１１が「エッジ」であり、かつ、選択した行のフィールド３１４が最上位階層であるか判定する。この判定の結果、選択した行のフィールド３１１、フィールド３１２、フィールド３１４等が、何れか一方である場合、論理段数取得部１３１は、選択した行のフィールド３０６のレジスタ又はエッジが、始点レジスタ又は始点エッジであると判定する。この判定の結果、選択した行のフィールド３１１、フィールド３１２、フィールド３１４等がどちらでもない場合、論理段数取得部１３１は、上述の処理を繰り返す。即ち、論理段数取得部１３１は、選択した行のフィールド３１１、フィールド３１３、フィールド３１４等を抽出する。次に、論理段数取得部１３１は、構成情報１２２の各行のフィールド３０１、フィールド３０２、フィールド３０３、フィールド３０４等を参照し、フィールド３０１が直前の処理で抽出したフィールド３１１と一致し、フィールド３０２が「入力」であり、フィールド３０３が直前の処理で抽出したフィールド３１３と一致し、フィールド３０４が直前の処理で抽出したフィールド３１４と一致する行を選択する。論理段数取得部１３１は、選択した行のフィールド３１１、フィールド３１２、フィールド３１４等を参照し、選択した行のフィールド３１１が「レジスタ」であり、かつ、選択した行のフィールド３１２が「出力」であるか、或いは、選択した行のフィールド３１１が「エッジ」であり、かつ、選択した行のフィールド３１４が最上位階層であると判定されるまで、この処理を繰り返す。この処理により取得した始点レジスタ及び始点エッジの数の合計が、各終点レジスタにつながる始点数である。１つの終点レジスタに対し、上述の処理により始点レジスタ及び始点エッジを取得すると、論理段数取得部１３１は、上述の処理により他の終点レジスタを取得し、この終点レジスタに対しても、同じ処理を行なう。
【００５７】
図３の例の場合、例えば、論理段数取得部１３１は、まず、フィールド３０１「レジスタ」、フィールド３０２「入力」、フィールド３０３「ＦＦ２」を含む行を選択する。即ち、「ＦＦ２」が終点レジスタである。論理段数取得部１３１は、選択した行のフィールド３１１「ＡＮＤ」、フィールド３１３「ＡＮＤ１」、フィールド３１４「Ｃ１／Ｒ３／Ｂ６」等を抽出する。次に、論理段数取得部１３１は、構成情報１２２の各行のうち、フィールド３０１「ＡＮＤ」、フィールド３０２「入力」、フィールド３０３「ＡＮＤ１」、フィールド３０４「Ｃ１／Ｒ３／Ｂ６」等である行を選択する。図３に一例を示す構成情報１２２の場合、該当する行は２つある。これらの行のフィールド３１１、フィールド３１２、フィールド３１４の各々は、「エッジ」、「出力」、「Ｃ１／Ｒ３／Ｂ６」と、「エッジ」、「出力」、「Ｃ１／Ｒ３／Ｂ６」とである。これらの行は、フィールド３１１が「レジスタ」であり、かつ、フィールド３１２が「出力」、或いは、フィールド３１１が「エッジ」であり、かつ、フィールド３１４が最上位階層、この何れにも該当しない。従って、論理段数取得部１３１は、上述の処理を再度行なう。まず、論理段数取得部１３１は、構成情報１２２の各行のうち、フィールド３０１「エッジ」、フィールド３０２「入力」、フィールド３０３「ＰＴ２」、フィールド３０４「Ｃ１／Ｒ３／Ｂ６」等である行を選択する。図３に一例を示す構成情報１２２の場合、該当する行のフィールド３１１、フィールド３１２、フィールド３１４は、「エッジ」、「出力」、「Ｃ１／Ｕ１／Ｒ１／Ｂ１」である。この行は、フィールド３１１が「レジスタ」であり、かつ、フィールド３１２が「出力」、或いは、フィールド３１１が「エッジ」であり、かつ、フィールド３１４が最上位階層、この何れにも該当しない。従って、論理段数取得部１３１は、上述の処理を再度行なう。論理段数取得部１３１は、構成情報１２２の各行のうち、フィールド３０１「エッジ」、フィールド３０２「入力」、フィールド３０３「ＰＴ１」、フィールド３０４「Ｃ１／Ｕ１／Ｒ１／Ｂ１」等である行を選択する。図３に一例を示す構成情報１２２の場合、該当する行のフィールド３１１、フィールド３１２、フィールド３１４は、「レジスタ」、「出力」、「Ｃ１／Ｕ１／Ｒ１／Ｂ１」である。この行は、フィールド３１１が「レジスタ」であり、かつ、フィールド３１２が「出力」である。従って、論理段数取得部１３１は、終点レジスタ「ＦＦ２」の始点のうち一方が、この行のフィールド３１１、フィールド３１２、フィールド３１３、フィールド３１４で示されるもの、即ち、レジスタ「ＦＦ１」であると判定する。また、一方、論理段数取得部１３１は、構成情報１２２の各行のうち、フィールド３０１「エッジ」、フィールド３０２「入力」、フィールド３０３「ＰＴ３」、フィールド３０４「Ｃ１／Ｒ３／Ｂ６」等である行を選択する。図３に一例を示す構成情報１２２の場合、該当する行のフィールド３１１、フィールド３１２、フィールド３１４は、「エッジ」、「出力」、「Ｃ１」である。この行は、フィールド３１１が「エッジ」であり、かつ、フィールド３１４が最上位階層である。従って、論理段数取得部１３１は、終点レジスタ「ＦＦ２」の始点のうちもう一方が、この行のフィールド３１１、フィールド３１２、フィールド３１３、フィールド３１４で示されるもの、即ち、エッジ「ＰＴ４」であると判定する。論理段数取得部１３１は、終点レジスタ「ＦＦ２」の始点として、レジスタ「ＦＦ１」及びエッジ「ＰＴ４」を得たので、終点につながる始点数「２」を取得する。
【００５８】
上述のように終点につながる始点数を求めた後、論理段数取得部１３１は、始点数からパスの論理段数を見積る。ここでは論理を２入力１出力の論理素子だけを使用して、パスの段数が均等になるように構成した場合の最少論理段数を算出する。具体的には、例えば、１つの終点につながる始点数をＭとすると、論理段数Ｎは、以下の式で算出される。
【００５９】
（式１）  Ｎ=ｌｏｇ２Ｍ
なお始点がレジスタの場合、論理段数Ｎ′は、始点レジスタ分を加えて以下の式で算出される。
【００６０】
（式２）  Ｎ′=１＋ｌｏｇ２Ｍ
なお、上述のＳ７０１の、論理段数を求める処理は任意でよく、特に限定するものではない。
【００６１】
次に、配置領域取得部１３２は、配置領域を取得する（Ｓ７０２）。配置領域とは着目ブロックがどのリージョンの配置領域内に配置可能であるかを表現するものである。具体的には、例えば、配置領域取得部１３２は、構成情報１２２のフィールド３０３にブロックの名称が格納されている行を選択し、選択した行のフィールド３０５内の情報から、その行のブロックが配置されるリージョンを取得する。配置領域取得部１３２は、この処理を各ブロックに対して行ない、各ブロックが配置されるリージョンを取得する。具体的には、例えば、図３に一例を示す構成情報１２２の場合、配置領域取得部１３２は、ブロック「Ｂ１」〜「Ｂ３」はリージョン「Ｒ１」の領域内に配置可能であると判定する。
【００６２】
なお、論理構成とレイアウト構成との両方がある理由は、論理構成と実際に配置したい領域とが異なる場合があるからである。レイアウト構成によって着目ブロックがどのリージョンの配置領域内になるかが決まり、着目ブロックの配置領域が決まる。
【００６３】
ブロック間距離算出部１３３は、異なるリージョンの領域に配置されるブロック間距離が最短の場合(ＢＥＳＴケース)と最長の場合(ＷＯＲＳＴケース)となる距離を算出する（Ｓ７０３）。
【００６４】
具体的には、例えば、ブロック間距離算出部１３３は、まず、各終点レジスタを有するブロックと、この終点レジスタの各々につながる始点を有するブロックとを取得する。具体的には、例えば、ブロック間距離算出部１３３は、構成情報１２２の各行を参照し、フィールド３０１が「レジスタ」であり、かつ、このフィールド３０１に対応するフィールド３０２が「入力」である行を選択する。ここで選択した行のレジスタが、終点レジスタである。ブロック間距離算出部１３３は、ここで選択した行のフィールド３０５を参照して、終点レジスタを有するブロックを取得する。このブロックは、選択した行のフィールド３０５に示されるレイアウト構成のうち、最下位のものである。ブロック間距離算出部１３３は、選択した行のフィールド３１１、フィールド３１３、フィールド３１４等を抽出する。次に、ブロック間距離算出部１３３は、構成情報１２２の各行のフィールド３０１、フィールド３０２、フィールド３０３、フィールド３０４等を参照し、フィールド３０１が直前の処理で抽出したフィールド３１１と一致し、フィールド３０２が「入力」であり、フィールド３０３が直前の処理で抽出したフィールド３１３と一致し、フィールド３０４が直前の処理で抽出したフィールド３１４と一致する行を選択する。ブロック間距離算出部１３３は、選択した行のフィールド３１１、フィールド３１２、フィールド３１４等を参照し、選択した行のフィールド３１１が「レジスタ」であり、かつ、選択した行のフィールド３１２が「出力」であるか、或いは、選択した行のフィールド３１１が「エッジ」であり、かつ、選択した行のフィールド３１４が最上位階層であるか判定する。この判定の結果、選択した行のフィールド３１１、フィールド３１２、フィールド３１４等が、何れか一方である場合、ブロック間距離算出部１３３は、選択した行のフィールド３０６のレジスタ又はエッジが、始点レジスタ又は始点エッジであると判定する。この判定の結果、選択した行のフィールド３１１、フィールド３１２、フィールド３１４等がどちらでもない場合、ブロック間距離算出部１３３は、上述の処理を繰り返す。即ち、ブロック間距離算出部１３３は、選択した行のフィールド３１１、フィールド３１３、フィールド３１４等を抽出する。次に、ブロック間距離算出部１３３は、構成情報１２２の各行のフィールド３０１、フィールド３０２、フィールド３０３、フィールド３０４等を参照し、フィールド３０１が直前の処理で抽出したフィールド３１１と一致し、フィールド３０２が「入力」であり、フィールド３０３が直前の処理で抽出したフィールド３１３と一致し、フィールド３０４が直前の処理で抽出したフィールド３１４と一致する行を選択する。ブロック間距離算出部１３３は、選択した行のフィールド３１１、フィールド３１２、フィールド３１４等を参照し、選択した行のフィールド３１１が「レジスタ」であり、かつ、選択した行のフィールド３１２が「出力」であるか、或いは、選択した行のフィールド３１１が「エッジ」であり、かつ、選択した行のフィールド３１４が最上位階層であると判定されるまで、この処理を繰り返す。選択した行のフィールド３１１が「レジスタ」であり、かつ、選択した行のフィールド３１２が「出力」であるか、或いは、選択した行のフィールド３１１が「エッジ」であり、かつ、選択した行のフィールド３１４が最上位階層である場合、ブロック間距離算出部１３３は、選択した行のフィールド３１５に示されるレイアウト構成のうち、最下位のものを、始点を有するブロックであると判定する。ブロック間距離算出部１３３は、この処理を、各リージョンに配置される全てのブロックに対し行なう。
【００６５】
図３の例の場合、例えば、ブロック間距離算出部１３３は、まず、フィールド３０１「レジスタ」、フィールド３０２「入力」、フィールド３０３「ＦＦ２」を含む行を選択する。即ち、「ＦＦ２」が終点レジスタである。ブロック間距離算出部１３３は、ここで選択した行のフィールド３０５「Ｃ１／Ｒ３／Ｂ６」から、終点レジスタ「ＦＦ２」を有するブロック「Ｂ６」を取得する。次に、ブロック間距離算出部１３３は、選択した行のフィールド３１１「ＡＮＤ」、フィールド３１３「ＡＮＤ１」、フィールド３１４「Ｃ１／Ｒ３／Ｂ６」等を抽出する。次に、ブロック間距離算出部１３３は、構成情報１２２の各行のうち、フィールド３０１「ＡＮＤ」、フィールド３０２「入力」、フィールド３０３「ＡＮＤ１」、フィールド３０４「Ｃ１／Ｒ３／Ｂ６」等である行を選択する。図３に一例を示す構成情報１２２の場合、該当する行は２つある。これらの行のフィールド３１１、フィールド３１２、フィールド３１４の各々は、「エッジ」、「出力」、「Ｃ１／Ｒ３／Ｂ６」と、「エッジ」、「出力」、「Ｃ１／Ｒ３／Ｂ６」とである。これらの行は、フィールド３１１が「レジスタ」であり、かつ、フィールド３１２が「出力」、或いは、フィールド３１１が「エッジ」であり、かつ、フィールド３１４が最上位階層、この何れにも該当しない。従って、ブロック間距離算出部１３３は、上述の処理を再度行なう。まず、ブロック間距離算出部１３３は、構成情報１２２の各行のうち、フィールド３０１「エッジ」、フィールド３０２「入力」、フィールド３０３「ＰＴ２」、フィールド３０４「Ｃ１／Ｒ３／Ｂ６」等である行を選択する。図３に一例を示す構成情報１２２の場合、該当する行のフィールド３１１、フィールド３１２、フィールド３１４は、「エッジ」、「出力」、「Ｃ１／Ｕ１／Ｒ１／Ｂ１」である。この行は、フィールド３１１が「レジスタ」であり、かつ、フィールド３１２が「出力」、或いは、フィールド３１１が「エッジ」であり、かつ、フィールド３１４が最上位階層、この何れにも該当しない。従って、ブロック間距離算出部１３３は、上述の処理を再度行なう。ブロック間距離算出部１３３は、構成情報１２２の各行のうち、フィールド３０１「エッジ」、フィールド３０２「入力」、フィールド３０３「ＰＴ１」、フィールド３０４「Ｃ１／Ｕ１／Ｒ１／Ｂ１」等である行を選択する。図３に一例を示す構成情報１２２の場合、該当する行のフィールド３１１、フィールド３１２、フィールド３１４は、「レジスタ」、「出力」、「Ｃ１／Ｕ１／Ｒ１／Ｂ１」である。この行は、フィールド３１１が「レジスタ」であり、かつ、フィールド３１２が「出力」である。従って、ブロック間距離算出部１３３は、終点レジスタ「ＦＦ２」の始点が、この行のフィールド３１１、フィールド３１２、フィールド３１３、フィールド３１４で示されるもの、即ち、レジスタ「ＦＦ１」であると判定する。ブロック間距離算出部１３３は、ここで選択した行のフィールド３１５「Ｃ１／Ｕ１／Ｒ１／Ｂ１」から、始点レジスタ「ＦＦ１」を有するブロック「Ｂ１」を取得する。また、一方、ブロック間距離算出部１３３は、構成情報１２２の各行のうち、フィールド３０１「エッジ」、フィールド３０２「入力」、フィールド３０３「ＰＴ３」、フィールド３０４「Ｃ１／Ｒ３／Ｂ６」等である行を選択する。図３に一例を示す構成情報１２２の場合、該当する行のフィールド３１１、フィールド３１２、フィールド３１４は、「エッジ」、「出力」、「Ｃ１」である。この行は、フィールド３１１が「エッジ」であり、かつ、フィールド３１４が最上位階層である。従って、ブロック間距離算出部１３３は、終点レジスタ「ＦＦ２」の始点が、この行のフィールド３１１、フィールド３１２、フィールド３１３、フィールド３１４で示されるもの、即ち、エッジ「ＰＴ４」であると判定する。ここで選択した行のフィールド３１５は「Ｃ１」であるので、ブロック間距離算出部１３３は、始点エッジ「ＰＴ４」を有するチップ「Ｃ１」を取得する。
【００６６】
なお、このように、各終点レジスタを有するものと、この終点レジスタの各々につながる始点を有するものとの両方がブロックであるとは限らない。ここでは、説明を簡潔にするために、各終点レジスタを有するものと、この終点レジスタの各々につながる始点を有するものとの両方がブロックである場合の例を説明する。しかし、本実施形態は、ブロックでない場合にも適用可能である。その場合の例は後述する。
【００６７】
次に、各終点レジスタを有するブロックと、この終点レジスタの各々につながる始点を有するブロックとの組合せのうち１つ選択する。なお、上述の処理で取得したブロックの組み合わせが２つ以上である場合、任意又は所定の規則に従い１つを選択してもよい。
【００６８】
次に、ブロック間距離算出部１３３は、上述の処理で選択した組み合わせの各々を、それらの組み合わせのブロックが配置されるリージョン内に仮配置する。このとき、ブロック間距離算出部１３３は、ブロック間の距離が最短となる場合と、ブロック間の距離が最長となる場合との２つのパターンとなるように仮配置する。
【００６９】
この処理例を、図８を参照して説明する。
【００７０】
まず、ブロック間距離算出部１３３は、設計対象の半導体集積回路に、リージョン「Ｒ１」、リージョン「Ｒ３」を配置する。そのために、ブロック間距離算出部１３３は、配置領域情報１２３から、フィールド５０１「Ｒ１」を含む行のフィールド５０２〜フィールド５０５、及び、フィールド５０１「Ｒ３」を含む行のフィールド５０２〜フィールド５０５を読出し、設計対象の半導体集積回路に配置する。ここでは、図８の半導体集積回路８０１の、リージョン８１１、リージョン８１２の各々に、リージョン「Ｒ１」、リージョン「Ｒ３」が配置されるものとする。
【００７１】
次に、ブロック間距離算出部１３３は、上述の処理で選択した組み合わせを、ブロック間の距離が最短となるように仮配置する。また、ブロック間距離算出部１３３は、上述の処理で選択した組み合わせを、ブロック間の距離が最長となるように仮配置する。
【００７２】
ブロック間距離算出部１３３は、この仮配置の位置を取得するために、まず、例えば、一方のリージョンが配置される領域のＸＹ座標と、他方のリージョンが配置される領域のＸＹ座標とが重複するか否か判定する。この判定の結果、重複しない場合、ブロック間距離算出部１３３は、一方のリージョンの各角点と、他方のリージョンの各角点との直線距離を算出する。ブロック間距離算出部１３３は、その直線距離の最も短い組み合わせの角点近傍に、ブロック間の距離が最短となるブロックを配置する。また、ブロック間距離算出部１３３は、その直線距離の最も長い組み合わせの角点近傍に、ブロック間の距離が最長となるブロックを配置する。具体的には、例えば、図８の例では、ブロック間距離算出部１３３は、角点８２１−角点８２２の距離、角点８２１−角点８２３の距離、角点８２１−角点８２４の距離、角点８２１−角点８２５の距離を算出する。さらに、ブロック間距離算出部１３３は、角点８２６−角点８２２の距離、角点８２６−角点８２３の距離、角点８２６−角点８２４の距離…というように、一方のリージョンの各角点と、他方のリージョンの各角点との直線距離の全てを算出する。
【００７３】
図８の場合、この直線距離の最も短くなるのは角点８２６−角点８２２の距離、直線距離の最も長くなるのは角点８２１−角点８２４の距離である。従って、図８の例では、ブロック８３１、ブロック８３４の各々に、ブロック「Ｂ１」、ブロック「Ｂ６」が配置される。また、ブロック８３２、ブロック８３３の各々に、ブロック「Ｂ１」、ブロック「Ｂ６」が配置される。
【００７４】
なお、一方のリージョンが配置される領域のＸＹ座標と、他方のリージョンが配置される領域のＸＹ座標とが重複する場合の例は後述する。
【００７５】
次に、ブロック間距離算出部１３３は、仮配置した組み合わせのブロック間の距離を算出する。そのために、ブロック間距離算出部１３３は、仮配置した組み合わせの各々に対し、一方のブロックが配置された領域の中心点のＸ座標と、他方のブロックが配置された領域の中心点のＸ座標との差分を算出する。さらに、ブロック間距離算出部１３３は、その組み合わせの一方のブロックが配置された領域の中心点のＹ座標と、他方のブロックが配置された領域の中心点のＹ座標との差分を算出する。ブロック間距離算出部１３３は、このＸ座標の差分の絶対値とＹ座標の差分の絶対値との合計を、その組み合わせのブロック間の距離とする。図８の例の場合、ブロック８３１とブロック８３４との距離は距離８４１「Ｌ４」である。また、ブロック８３２とブロック８３３との距離は距離８４２「Ｌ５」である。
【００７６】
図７において、ブロック内ディレイ算出部１３４は、ブロック内ディレイを算出する（Ｓ７０４）。次に、ブロック間ディレイ算出部１３５は、ブロック間ディレイを算出する（Ｓ７０５）。これらを算出する処理は従来技術と同じである。
【００７７】
例えば、ブロック内ディレイ算出部１３４は、ブロック毎に、上述のＳ７０１の処理で算出したブロック内論理段数「Ｎ」に、ディレイ特性情報１２４のフィールド６０１「ゲート単価ディレイ」に対応するフィールド６０２「１５０ｐｓ」の単価を乗算して、ブロック内ディレイを取得する。
【００７８】
また、例えば、ブロック間ディレイ算出部１３５は、上述のＳ７０３で取得したリージョン間のＢＥＳＴケースとＷＯＲＳＴケースの各ブロック間距離に、ディレイ特性情報１２４のフィールド６０１「配線単価ディレイ」に対応するフィールド６０２の単価を乗算して、ＢＥＳＴケース、ＷＯＲＳＴケースの両方のブロック間ディレイを取得する。ここで、ディレイ特性情報１２４のフィールド６０１「配線単価ディレイ」に対応するフィールド６０２に、図６に一例を示すように複数の単価が含まれる場合、ブロック間距離算出部１３３は、配線単価ディレイの単価の各々を用いてブロック間ディレイを算出する。即ち、ディレイ特性情報１２４のフィールド６０１「配線単価ディレイ」に対応するフィールド６０２に複数の単価が含まれる場合、ＢＥＳＴケース、ＷＯＲＳＴケースの両方のブロック間ディレイの各々は、その単価の数だけ算出される。
【００７９】
次に、判定部１３６は、上述のＳ７０４で算出したブロック内ディレイと上述のＳ７０５で算出したＢＥＳＴケースのブロック間ディレイとを合計して、ＢＥＳＴケースのパスディレイを算出する。また、判定部１３６は、上述のＳ７０４で算出したブロック内ディレイと上述のＳ７０５で算出したＷＯＲＳＴケースのブロック間ディレイとを合計して、ＷＯＲＳＴケースのパスディレイを算出する。ここで、上述のＳ７０５で算出したＷＯＲＳＴケースのブロック間ディレイが複数である場合、判定部１３６は、複数のブロック間ディレイの各々と上述のＳ７０４で算出したブロック内ディレイとを合計して、複数のＷＯＲＳＴケースのパスディレイを算出する。判定部１３６は、ＢＥＳＴケースのパスディレイとＷＯＲＳＴケースのパスディレイとの各々を目標パスディレイと比較して、収束可能か否か判定する（Ｓ７０６）。
【００８０】
すなわち、ＷＯＲＳＴケースのパスディレイが目標以下の場合、パスディレイはそれ以上大きくはならないため、判定部１３６は、目標パスディレイ以内に収束可能と判定できる。一方で、ＢＥＳＴケースのパスディレイが目標より大きい場合は、パスディレイがそれ以上小さくはならないため、判定部１３６は、目標パスディレイ以内に収束不可能と判定できる。なお、ここでは、判定部１３６は、以下の３パターンのいずれであるかを判定するものとする。
【００８１】
（１）ＷＯＲＳＴケースのパスディレイが目標以下
（２）ＷＯＲＳＴケースのパスディレイが目標以上、かつ、ＢＥＳＴケースのパスディレイが目標以下
（３）ＢＥＳＴケースのパスディレイが目標以上
なお、上述のＳ７０５で算出したＷＯＲＳＴケースのブロック間ディレイが複数であり、ＷＯＲＳＴケースのパスディレイが複数算出される場合、判定部１３６は、これらのＷＯＲＳＴケースのパスディレイのうち最も大きいものに対し上記（１）〜（３）の何れであるかを判定するものとする。
【００８２】
（１）の場合、各ブロックを各リージョン内のどこに配置しても、目標パスディレイを満たす。（２）の場合、各ブロックの配置位置によっては、目標パスディレイを満たさない場合もある。従って、ブロックのフロアプランが必要である。（３）の場合、各ブロックを各リージョン内のどこに配置しても、目標パスディレイを満たさない。従って、リージョンの再レイアウト、及び、論理段数の削減のうち少なくとも一方が必要である。
【００８３】
出力処理部１３７は、上述のＳ７０６の判定結果を出力装置１０３等に出力する（Ｓ７０７）。具体的には、例えば、出力処理部１３７は、上述のＳ７０６で上記（１）と判定された場合、そのパスのブロックに対する合成制約値等を出力する。また、出力処理部１３７は、上述のＳ７０６で上記（２）、（３）と判定された場合、収束するためにはどうすべきかを示した処方情報等を出力する。
【００８４】
ここで、合成制約値について、図２を参照して説明する。図２において、「ＤＬＹ１」は始点レジスタ「ＦＦ１」から終点レジスタ「ＦＦ２」までの目標パスディレイを示す。この「ＤＬＹ１」は、ブロック「Ｂ１」のブロック内ディレイ「ＤＬＹ２」、ブロック「Ｂ６」のブロック内ディレイ「ＤＬＹ４」、ブロック「Ｂ１」からブロック「Ｂ６」までのＷＯＲＳＴケースのブロック間ディレイ「ＤＬＹ３」からなる。ここで、「ＤＬＹ２」と「ＤＬＹ４」は、「ＤＬＹ１」から「ＤＬＹ３」を差し引いた値を、上述の処理で算出した各ブロックのブロック内ディレイの比で配分することで算出する。
【００８５】
また、「ＣＯＮ１」は、ブロック「Ｂ１」とエッジ「ＰＴ１」とに与える制約値を示す。「ＣＯＮ２」はブロック「Ｂ６」とエッジ「ＰＴ２」に与える制約値を示す。即ち、「ＣＯＮ１」は「ＤＬＹ３」と「ＤＬＹ４」の合計値であり、「ＣＯＮ２」は「ＤＬＹ２」と「ＤＬＹ３」の合計値である。このように、目標パスディレイから、各エッジへの制約値が取得される。
【００８６】
上述のＳ７０６の処理で（１）と判定された場合に出力する画面例を図９に示す。図９の例は、「目標パスディレイ＝1000ps」、「ＤＬＹ２＝300ps」、「ＤＬＹ３＝200ps」、「ＤＬＹ４＝300ps」である場合の例である。この場合、出力処理部１３７は、上述した処理例により合成制約値を算出し、「ＣＯＮ１＝600ps」、「ＣＯＮ２＝600ps」を算出する。出力処理部１３７は、これらの結果を、図９の画面９０１に示すように出力する。
【００８７】
処方情報の一例について、図２を参照して説明する。出力処理部１３７は、ブロック間ディレイ「ＤＬＹ３」をどれだけ小さくすべき値を算出する。そのために、出力処理部１３７は、まず、目標パスディレイ「ＤＬＹ１」からブロック内ディレイ「ＤＬＹ２」、「ＤＬＹ４」を引いた値「ＤＬＹ３´」を算出する。次に、出力処理部１３７は、「ＤＬＹ３´」を、ディレイ特性情報１２４のフィールド６０１「配線単価ディレイ」に対応するフィールド６０２の単価で除算して、ブロック「Ｂ１」からブロック「Ｂ６」までのブロック間距離の最大可能距離「Ｌ１´」を算出する。なお、この処理で用いるフィールド６０１「配線単価ディレイ」に対応するフィールド６０２の単価が複数ある場合の処理は、上述と同様に、複数のブロック間ディレイを算出する。
【００８８】
上述のＳ７０６の処理で（２）と判定された場合、この「Ｌ１´」が、収束するためにはどうすべきかを示した処方情報の一例である。
【００８９】
また、上述のＳ７０６の処理で（３）と判定された場合、出力処理部１３７は、上述のＳ７０３の処理で取得したＷＯＲＳＴケースのブロック間距離から、「Ｌ１´」を引いた値を算出する。この値が、収束するためにはどうすべきかを示した処方情報の一例である。
【００９０】
上述のＳ７０６の処理で（２）と判定された場合に出力する画面例を図１０に示す。図１０の例は、「目標パスディレイ＝1000ps」、「ＤＬＹ２＝400ps」、「ＤＬＹ３＝300ps」、「ＤＬＹ４＝400ps」である場合の例である。この場合、出力処理部１３７は、上述した処理例により処方情報を取得し、ブロック「Ｂ１」からブロック「Ｂ６」までのブロック間距離「Ｌ１」の最大可能距離「667μm」を算出する。出力処理部１３７は、これらの結果を、図１０の画面１００１に示すように出力する。
【００９１】
上述のＳ７０６の処理で（３）と判定された場合に出力する画面例を図１１に示す。図１１の例は、「目標パスディレイ＝1000ps」、「ＤＬＹ２＝400ps」、「ＤＬＹ３＝300ps」、「ＤＬＹ４＝400ps」である場合の例である。この場合、出力処理部１３７は、上述した処理例により処方情報を取得し、ブロック「Ｂ１」からブロック「Ｂ６」までのブロック間距離「Ｌ１」を短くすべき長さ「333μm」を算出する。出力処理部１３７は、これらの結果を、図１１の画面１１０１に示すように出力する。
【００９２】
このように、リージョン配置設計の段階で、目標パスディレイに収束可能か否か、また、収束不可能な場合、距離をどの程度短くすればよいか等を算出し、出力することが可能となる。ブロック配置設計の段階に移行する前に目標パスディレイに収束可能か否か判定することが可能となるので、フロアプラン工数の増加やフロアプラン見直しによる設計後戻りによる設計期間の増加を抑えることが可能となる。また、目標パスディレイに収束不可能な場合でも、ＷＯＲＳＴモードよりどの程度距離を短くすればよいかを出力することが可能となるため、その距離に応じて、例えば、リージョンの配置領域を変更しなくても、リージョン内でブロックの配置位置を工夫することにより対応可能か否か判定することが可能となる。
【００９３】
なお、チップ、ユニット、リージョン、ブロック等の構成は上述に限られるわけではない。以下では、設計対象の半導体集積回路の一例を説明するが、これらのどの場合でも、ディレイ判定装置１の動作例は上述と同じである。
【００９４】
＜第１の例＞
第１の例では、論理構成とレイアウト構成とが異なる場合を示す。この場合の構成例を図１２に示す。図１２（ａ）の論理構成において、ブロック１２０１「Ｂ１」はリージョン「Ｒ１」の下位である。一方、図１２（ｂ）のレイアウト構成において、ブロック１２０１「Ｂ１」はリージョン「Ｒ２」の下位である。
【００９５】
この場合の構成情報１２２の一例を図１３に示す。図１３の構成情報１２２に一例を示すように、ブロック「Ｂ１」を含む論理構成（フィールド３０４、フィールド３１４）が「Ｃ１／Ｕ１／Ｒ１／Ｂ１」であるのに対し、ブロック「Ｂ１」を含むレイアウト構成（フィールド３０５、フィールド３１５）が「Ｃ１／Ｕ１／Ｒ２／Ｂ１」となる。
【００９６】
また、この場合のＷＯＲＳＴケースのブロック間距離と、ＢＥＳＴケースのブロック間距離とを図１４を参照して説明する。図１４において、半導体集積回路１４０１の、リージョン１４１１、リージョン１４１２の各々に、リージョン「Ｒ２」、リージョン「Ｒ３」が配置されるものとする。ここでは、ブロック間距離算出部１３３は、ブロック「Ｂ１」とブロック「Ｂ６」との距離が最短となるように仮配置する。また、ブロック間距離算出部１３３は、ブロック「Ｂ１」とブロック「Ｂ６」ブロック間の距離が最長となるように仮配置する。
【００９７】
なお、ここで、一方のリージョンが配置される領域のＸＹ座標と、他方のリージョンが配置される領域のＸＹ座標とが重複する場合に、仮配置の位置を取得する具体例を説明する。この場合、ブロック間距離算出部１３３は、これらのリージョンの領域を区切る各辺のうち、一方のリージョン（以下、第１のリージョンという）と他方のリージョン（以下、第２のリージョンという）とで平行であり、かつ、第１のリージョンの領域を区切る辺（以下、第１の辺という）と第２のリージョンを区切る辺（以下、第２の辺という）との距離が最短なものの組み合わせを選択する。ブロック間距離算出部１３３は、第１のリージョンの第１の辺沿いにブロックを配置する。また、ブロック間距離算出部１３３は、先に配置したブロックの中心点を通過し、第１の辺及び第２の辺と垂直方向の線上であり、かつ、第２のリージョンの第２の辺沿いにブロックを配置する。これらのブロック間距離が、最短距離となる。最長距離の算出例の具体例は、上述と同じであるので省略する。
【００９８】
図１４の例では、ブロック１４２１、ブロック１４２２の各々に、ブロック「Ｂ１」が配置される。また、ブロック１４２３、ブロック１４２４の各々に、ブロック「Ｂ６」が配置される。即ち、ブロック１４２１とブロック１４２４との距離は距離１４３１「Ｌ４１」であり、この距離「Ｌ４１」がＷＯＲＳＴケースのブロック間距離である。また、ブロック１４２２とブロック１４２３との距離は距離１４３２「Ｌ５１」であり、この距離「Ｌ５１」がＢＥＳＴケースのブロック間距離である。
【００９９】
＜第２の例＞
第２の例では、一つのリージョンの領域情報が物理的に2つ以上の領域から構成されている場合に、ブロックをどのリージョンの領域に配置するかを取得する場合を示す。この場合の構成例を図１５に示す。図１５（ａ）の論理構成において、リージョン１５０１「Ｒ１」は、図１５（ｂ）のレイアウト構成では、リージョン１５１１「Ｒ１＿２」、リージョン１５１２「Ｒ１＿１」から成る。
【０１００】
この場合の構成情報１２２の一例を図１６に示す。図１６の構成情報１２２に一例を示すように、ブロック「Ｂ１」を含むレイアウト情報（フィールド３０５、フィールド３１５）が「Ｃ１／Ｕ１／Ｒ１＿２／Ｂ１」となる。なお、図示していないが、ブロック「Ｂ３」を含むレイアウト情報は「Ｃ１／Ｕ１／Ｒ１＿２／Ｂ３」となる。また、ブロック「Ｂ２」を含むレイアウト情報（フィールド３０５、フィールド３１５）が「Ｃ１／Ｕ１／Ｒ１＿１／Ｂ２」となる。
【０１０１】
また、この場合のＷＯＲＳＴケースのブロック間距離と、ＢＥＳＴケースのブロック間距離とを図１７を参照して説明する。図１７において、半導体集積回路１７０１の、リージョン１７１１、リージョン１７１２、リージョン１７１３の各々に、リージョン「Ｒ１＿１」、リージョン「Ｒ１＿２」、リージョン「Ｒ３」が配置されるものとする。ここでは、ブロック間距離算出部１３３は、ブロック「Ｂ１」とブロック「Ｂ６」との距離が最短及び最長となるように仮配置する。この仮配置の具体例は上述と同じであるので省略する。
【０１０２】
図１７の例では、ブロック１７２１、ブロック１７２２の各々に、ブロック「Ｂ１」が配置される。また、ブロック１７２３、ブロック１７２４の各々に、ブロック「Ｂ６」が配置される。即ち、ブロック１７２１とブロック１７２４との距離は距離１７３１「Ｌ４２」であり、この距離「Ｌ４２」がＷＯＲＳＴケースのブロック間距離である。また、ブロック１７２２とブロック１７２３との距離は距離１７３２「Ｌ５２」であり、この距離「Ｌ５２」がＢＥＳＴケースのブロック間距離である。
【０１０３】
＜第３の例＞
第３の例では、ブロックの配置領域が二つ以上のリージョンの領域を合わせた領域とする場合を示す。この場合の構成例を図１８に示す。図１８（ａ）の論理構成において、リージョン１８０１「Ｒ１」、リージョン１８０２「Ｒ２」は別である。しかし、図１８（ｂ）のレイアウト構成において、リージョン「Ｒ１」とリージョン「Ｒ２」とは１つのまとまり１８１１となり、リージョン「Ｒ１」及びリージョン「Ｒ２」何れかの領域に、ブロック「Ｂ１」〜「Ｂ３」、「Ｂ７」、「Ｂ８」が配置される。
【０１０４】
この場合の構成情報１２２の一例を図１９に示す。図１９の構成情報１２２に一例を示すように、例えば、ブロック「Ｂ１」を含むレイアウト情報（フィールド３０５、フィールド３１５）が「Ｃ１／Ｕ１／Ｒ１／Ｂ１  ｏｒ  Ｃ１／Ｕ１／Ｒ２／Ｂ１」となる。これにより、ブロック「Ｂ１」が、リージョン「Ｒ１」又はリージョン「Ｒ２」何れか一方の下位構成となることが示される。なお、図１９では図示していないが、ブロック「Ｂ２」、「Ｂ３」、「Ｂ７」、「Ｂ８」の各々のレイアウト情報も、これと同じとなる。
【０１０５】
また、この場合のＷＯＲＳＴケースのブロック間距離と、ＢＥＳＴケースのブロック間距離とを図２０を参照して説明する。図２０において、半導体集積回路２００１の、リージョン２０１１、リージョン２０１２、リージョン２０１３の各々に、リージョン「Ｒ１」、リージョン「Ｒ２」、リージョン「Ｒ３」が配置されるものとする。ここでは、ブロック間距離算出部１３３は、ブロック「Ｂ１」とブロック「Ｂ６」との距離が最短及び最長となるように仮配置する。このとき、ブロック間距離算出部１３３は、ブロック「Ｂ１」をリージョン「Ｒ１」に配置した場合と、ブロック「Ｂ１」をリージョン「Ｒ２」に配置した場合との各々に対し、ＷＯＲＳＴケースのブロック間距離とＢＥＳＴケースのブロック間距離を算出して比較し、ブロック間の距離が最短、及び、最長となるように仮配置する。この仮配置の具体例は上述と同じであるので省略する。
【０１０６】
図２０の例では、ブロック２０２１、ブロック２０２２の各々に、ブロック「Ｂ１」が配置される。また、ブロック２０２３、ブロック２０２４の各々に、ブロック「Ｂ６」が配置される。即ち、ブロック２０２１とブロック２０２４との距離は距離２０３１「Ｌ４３」であり、この距離「Ｌ４３」がＷＯＲＳＴケースのブロック間距離である。また、ブロック２０２２とブロック２０２３との距離は距離２０３２「Ｌ５３」であり、この距離「Ｌ５３」がＢＥＳＴケースのブロック間距離である。
【０１０７】
＜第４の例＞
第４の例では、ブロックの上位がリージョンではなく領域情報のあるユニットである場合を示す。
【０１０８】
この場合のＷＯＲＳＴケースのブロック間距離と、ＢＥＳＴケースのブロック間距離とを図２１を参照して説明する。図２１の例は、上述の例で説明したブロック「Ｂ１」が、ユニット「Ｕ１」の直下にあるものとして説明する。
【０１０９】
図２１において、半導体集積回路２１０１の、ユニット２１１１、リージョン２１１２の各々に、ユニット「Ｕ１」、リージョン「Ｒ３」が配置されるものとする。ここでは、ブロック間距離算出部１３３は、ブロック「Ｂ１」とブロック「Ｂ６」との距離が最短及び最長となるように仮配置する。この仮配置の具体例は上述と同じであるので省略する。
【０１１０】
図２１の例では、ブロック２１２１、ブロック２１２２の各々に、ブロック「Ｂ１」が配置される。また、ブロック２１２３、ブロック２１２４の各々に、ブロック「Ｂ６」が配置される。即ち、ブロック２１２１とブロック２１２４との距離は距離２１３１「Ｌ４４」であり、この距離「Ｌ４４」がＷＯＲＳＴケースのブロック間距離である。また、ブロック２１２２とブロック２１２３との距離は距離２１３２「Ｌ５４」であり、この距離「Ｌ５４」がＢＥＳＴケースのブロック間距離である。
【０１１１】
＜第５の例＞
第５の例では、ブロックの上位が領域情報のないユニット、又は、ブロックの上位がない場合を示す。
【０１１２】
この場合のＷＯＲＳＴケースのブロック間距離と、ＢＥＳＴケースのブロック間距離とを図２２を参照して説明する。図２２の例は、上述の例で説明したブロック「Ｂ１」の上位が領域情報のないユニット、又は、上位がないものとして説明する。
【０１１３】
図２２において、半導体集積回路２２０１のリージョン２２１１に、リージョン「Ｒ３」が配置されるものとする。上述のように、ブロック「Ｂ１」の配置領域は定められていないため、ブロック間距離算出部１３３は、他のリージョン等により領域が定められていない任意の位置にこのブロックを配置することが可能となる。この仮配置の具体例は、他のリージョン等により領域が定められていない任意の位置を比較する点を除き上述と同じであるので省略する。
【０１１４】
ここでは、ブロック間距離算出部１３３は、ブロック「Ｂ１」とブロック「Ｂ６」との距離が最短及び最長となるように仮配置する。そのために、図２２の例では、ブロック２２２１、ブロック２２２２の各々に、ブロック「Ｂ１」が配置される。また、ブロック２２２３、ブロック２２２４の各々に、ブロック「Ｂ６」が配置される。即ち、ブロック２２２１とブロック２２２４との距離は距離２２３１「Ｌ４５」であり、この距離「Ｌ４５」がＷＯＲＳＴケースのブロック間距離である。また、ブロック２２２２とブロック２２２３との距離は距離２２３２「Ｌ５５」であり、この距離「Ｌ５５」がＢＥＳＴケースのブロック間距離である。
【０１１５】
＜第６の例＞
第６の例では、ブロックの上位に領域情報のある階層が２階層以上あり、そのうち上位の階層をブロックの配置領域と指定する場合を示す。この場合の構成例を図２３に示す。図２３（ａ）の論理構成において、ブロック２３０１「Ｂ１」の上位はリージョン「Ｒ１」である。しかし、図２３（ｂ）のレイアウト構成において、ブロック２３０１の上位はユニット２３１１「Ｕ１」となる。即ち、ブロック「Ｂ１」はユニット「Ｕ１」の領域内の任意の位置に配置される。また、ブロック「Ｂ２」、「Ｂ３」は、リージョン「Ｒ１」の領域内に配置される。また、ブロック「Ｂ７」、「Ｂ８」は、リージョン「Ｒ２」の領域内に配置される。
【０１１６】
この場合のＷＯＲＳＴケースのブロック間距離、ＢＥＳＴケースのブロック間距離は、上述した例（たとえば図２１等）と同じであるので省略する。
【０１１７】
＜第７の例＞
第７の例では、ブロックの上位に領域情報のない場合を示す。この場合の構成例を図２４に示す。図２４（ａ）の論理構成において、ブロック２４０１「Ｂ１」の上位はチップ「Ｃ１」である。また、図２４（ｂ）のレイアウト構成において、ブロック２４０１「Ｂ１」の上位はチップ「Ｃ１」である。
【０１１８】
この場合のＷＯＲＳＴケースのブロック間距離と、ＢＥＳＴケースのブロック間距離とを図２５を参照して説明する。上述のように、ブロック「Ｂ１」〜「Ｂ８」等の配置領域は定められていないため、ブロック間距離算出部１３３は、任意の位置にこれらのブロックを配置することが可能となる。ここでは、ブロック間距離算出部１３３は、ブロック「Ｂ１」とブロック「Ｂ６」との距離が最短及び最長となるように仮配置する。ブロック間の距離を最長とするための仮配置の具体例は、領域が定められていない任意の位置を比較する点を除き上述と同じであるので省略する。また、ブロック間の距離を最短とするために、ブロック間距離算出部１３３は、例えば、任意の位置にブロックを隣接させて配置する。
【０１１９】
図２５の例では、半導体集積回路２５０１のブロック２５１１、ブロック２５１２の各々に、ブロック「Ｂ１」が配置される。また、ブロック２５１３、ブロック２５１４の各々に、ブロック「Ｂ６」が配置される。即ち、ブロック２５１１とブロック２５１４との距離は距離２５２１「Ｌ４７」であり、この距離「Ｌ４７」がＷＯＲＳＴケースのブロック間距離である。また、ブロック２５１２とブロック２５１３との距離は距離２５２２「Ｌ５７」であり、この距離「Ｌ５７」がＢＥＳＴケースのブロック間距離である。
【０１２０】
＜第８の例＞
第８の例では、少なくとも一方のブロックの配置位置が決まっている場合を示す。
【０１２１】
この場合のＷＯＲＳＴケースのブロック間距離と、ＢＥＳＴケースのブロック間距離とを図２６を参照して説明する。図２６の例は、上述の例で説明したブロック「Ｂ６」が、配置位置が定まっているものとして説明する。この場合、配置領域情報１２３に、ブロック「Ｂ６」の配置位置を格納しておくとよい。
【０１２２】
図２６において、半導体集積回路２６０１のリージョン２６１１、リージョン２６１２の各々に、リージョン「Ｒ１」、リージョン「Ｒ３」が配置されるものとする。上述のように、ブロック「Ｂ６」の配置位置が定められている。ここでは、ブロック２６２３に、ブロック「Ｂ６」が配置されるように定められているものとする。そのため、ブロック間距離算出部１３３は、ブロック「Ｂ６」との距離が最短及び最長となるようにブロック「Ｂ１」を仮配置する。そのための具体例は、ブロックの一方を固定して比較する点を除き上述と同じであるので省略する。
【０１２３】
図２６の例では、半導体集積回路２６０１のブロック２６２１、ブロック２６２２の各々に、ブロック「Ｂ１」が配置される。即ち、ブロック２６２１とブロック２６２３との距離は距離２６３１「Ｌ４８」であり、この距離「Ｌ４８」がＷＯＲＳＴケースのブロック間距離である。また、ブロック２６２２とブロック２６２３との距離は距離２６３２「Ｌ５８」であり、この距離「Ｌ５８」がＢＥＳＴケースのブロック間距離である。
【０１２４】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【０１２５】
具体的には、例えば、上述の実施形態では、ブロックの大きさは全て同じものとして説明するが、これに限られるわけではなく、各々のブロックの大きさは異なっていても良い。この場合、配置領域情報１２３には、さらに、各ブロックの大きさを示す情報が格納されるとよい。さらに、上述の処理で、ＢＥＳＴケースとＷＯＲＳＴケースとの各々のブロック間距離を取得する場合、接続関係にあるブロックの組合せの各々に対し最短距離及び最長距離を取得し、取得した最長距離が最も長いブロックの組合せの最短距離及び最長距離を、ＢＥＳＴケース及びＷＯＲＳＴケース各々の距離としてもよい。なお、このブロックの大きさは、固定値でもよく、任意の範囲内に収まる値でもよい。
【図面の簡単な説明】
【０１２６】
【図１】本発明の一実施形態において、ディレイ判定装置の構成例を示す図である。
【図２】同実施形態において、レジスタの構成例を説明するための図である。
【図３】同実施形態において、構成情報の一例を示す図である。
【図４】同実施形態において、リージョンの配置位置を説明するための図である。
【図５】同実施形態において、配置領域情報の一例を示す図である。
【図６】同実施形態において、ディレイ特性情報の一例を示す図である。
【図７】同実施形態において、ディレイ判定装置の動作例を示す図である。
【図８】同実施形態において、ブロック間の最短距離と最長距離の一例を説明するための図である。
【図９】同実施形態において、出力する情報の一例を示す図である。
【図１０】同実施形態において、出力する情報の一例を示す図である。
【図１１】同実施形態において、出力する情報の一例を示す図である。
【図１２】同実施形態において、論理構成及びレイアウト構成の他の例を示す図である。
【図１３】同実施形態において、構成情報の他の一例を示す図である。
【図１４】同実施形態において、ブロック間の最短距離と最長距離の他の例を説明するための図である。
【図１５】同実施形態において、論理構成及びレイアウト構成の他の例を示す図である。
【図１６】同実施形態において、構成情報の他の一例を示す図である。
【図１７】同実施形態において、ブロック間の最短距離と最長距離の他の例を説明するための図である。
【図１８】同実施形態において、論理構成及びレイアウト構成の他の例を示す図である。
【図１９】同実施形態において、構成情報の他の一例を示す図である。
【図２０】同実施形態において、ブロック間の最短距離と最長距離の他の例を説明するための図である。
【図２１】同実施形態において、ブロック間の最短距離と最長距離の他の例を説明するための図である。
【図２２】同実施形態において、ブロック間の最短距離と最長距離の他の例を説明するための図である。
【図２３】同実施形態において、論理構成及びレイアウト構成の他の例を示す図である。
【図２４】同実施形態において、論理構成及びレイアウト構成の他の例を示す図である。
【図２５】同実施形態において、ブロック間の最短距離と最長距離の他の例を説明するための図である。
【図２６】同実施形態において、ブロック間の最短距離と最長距離の他の例を説明するための図である。
【図２７】従来技術の、論理構成及びレイアウト構成の一例を示す図である。
【図２８】従来技術において、パスディレイを判定する動作例を説明する図である。
【図２９】従来技術において、各リージョンに配置されるブロック間の距離の例を示す図である。
【図３０】従来技術において、リージョンを配置した後にブロックを配置した場合のブロック間の距離の例を示す図である。
【符号の説明】
【０１２７】
１：ディレイ判定装置、１０１：入力装置、１０２：ＣＰＵ、１０３：出力装置、１０４：主記憶装置、１０５：補助記憶装置、１２１：プログラム、１２２：構成情報、１２３：配置領域情報、１２４：ディレイ特性情報、１３１：論理段数取得部、１３２：配置領域取得部、１３３：ブロック間距離算出部、１３４：ブロック内ディレイ算出部、１３５：ブロック間ディレイ算出部、１３６：判定部、１３７：出力処理部
【図１】
2008242796.tif 000003
【図２】
2008242796.tif 000004
【図３】
2008242796.tif 000005
【図４】
2008242796.tif 000006
【図５】
2008242796.tif 000007
【図６】
2008242796.tif 000008
【図７】
2008242796.tif 000009
【図８】
2008242796.tif 000010
【図９】
2008242796.tif 000011
【図１０】
2008242796.tif 000012
【図１１】
2008242796.tif 000013
【図１２】
2008242796.tif 000014
【図１３】
2008242796.tif 000015
【図１４】
2008242796.tif 000016
【図１５】
2008242796.tif 000017
【図１６】
2008242796.tif 000018
【図１７】
2008242796.tif 000019
【図１８】
2008242796.tif 000020
【図１９】
2008242796.tif 000021
【図２０】
2008242796.tif 000022
【図２１】
2008242796.tif 000023
【図２２】
2008242796.tif 000024
【図２３】
2008242796.tif 000025
【図２４】
2008242796.tif 000026
【図２５】
2008242796.tif 000027
【図２６】
2008242796.tif 000028
【図２７】
2008242796.tif 000029
【図２８】
2008242796.tif 000030
【図２９】
2008242796.tif 000031
【図３０】
2008242796.tif 000032