(57)【特許請求の範囲】
【請求項１】
コンピュータが、
回路における第一のモジュールに含まれ、かつ、素子を有する第二のモジュールの面積に基づいて、該第二のモジュールの一辺の長さを算出し、
算出された一辺の長さ、前記第一のモジュールにおけるファンアウト数、前記第二のモジュールから信号を出力する素子の該第二のモジュールにおける位置、および、前記ファンアウト数の隣り合う前記第二のモジュールにおいて該信号を入力する素子の該第二のモジュールにおける位置に基づいて、該第一のモジュールにおける配線の長さを算出する
各処理を実行することを特徴とする算出方法。
【請求項２】
前記コンピュータが、さらに、
前記第一のモジュールの面積に対する前記第二のモジュールに含まれる素子の面積の割合に基づいて、論理複製を行う素子の数を算出し、
前記第二のモジュールを、算出された数のグループに分け、
前記グループごとに、前記第二のモジュールの配線の長さを算出し、
算出した配線の長さに基づいて、前記第一のモジュールにおける論理複製を行う素子の種類を決定する
各処理を実行することを特徴とする請求項１に記載の算出方法。
【請求項３】
前記論理複製を行う素子の種類を決定する処理は、前記グループごとに算出した配線の長さの総和の中に、所定値以上の総和がある場合には、フリップフロップを論理複製することを決定する
ことを特徴とする請求項２に記載の算出方法。
【請求項４】
前記論理複製を行う素子の種類を決定する処理は、前記グループごとに算出した配線の長さの総和の全てが、所定値未満である場合には、バッファを論理複製することを決定する
ことを特徴とする請求項２または請求項３に記載の算出方法。
【請求項５】
前記第二のモジュールの一辺の長さを算出する処理は、前記第二のモジュールの面積の平方根を算出する
ことを特徴とする請求項１〜４のいずれか１つに記載の算出方法。
【請求項６】
コンピュータに、
回路における第一のモジュールに含まれ、かつ、素子を有する第二のモジュールの面積に基づいて、該第二のモジュールの一辺の長さを算出し、
算出された一辺の長さ、前記第一のモジュールにおけるファンアウト数、前記第二のモジュールから信号を出力する素子の該第二のモジュールにおける位置、および、前記ファンアウト数の隣り合う前記第二のモジュールにおいて該信号を入力する素子の該第二のモジュールにおける位置に基づいて、該第一のモジュールにおける配線の長さを算出する
各処理を実行させることを特徴とする算出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、算出方法および算出プログラムに関する。
【背景技術】
【０００２】
従来、コンピュータによって論理回路を合成する技術がある。例えば、ハードウェア記述言語によってＲＴＬ（Register  Transfer  Level）が記述されたファイルから、論理回路を合成する技術がある。かかるハードウェア記述言語の一例としては、ＶＨＤＬ（Very  High  Speed  Integrated  Circuits  Hardware  Description  Language）やＶｅｒｉｌｏｇ−ＨＤＬなどが挙げられる。また、論理回路を合成する工程では、合成された論理回路の信号のタイミング解析が行われる。そして、論理回路を合成する工程の後に、回路の物理設計を行う工程がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１１６９１５号公報
【特許文献２】特開２００５−２０２６１０号公報
【特許文献３】特開平９−８１６２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来の技術では、物理設計の工程でタイミングの劣化が発生するという問題がある。
【０００５】
例えば、従来の技術では、物理設計領域の大きさや形状によっては、物理設計を行う工程における内部信号のタイミングが、論理回路を合成する工程において解析された内部信号のタイミングから変化する場合がある。この場合、タイミングの変化の状況によっては、物理設計を行う工程から論理回路を合成する工程に戻り、再び、論理回路を合成する工程で、信号の論理複製を行って、回路が正常に動作するように内部信号のタイミングを修正する。
【０００６】
このように、従来の技術では、論理回路を合成する工程で信号のタイミング解析を行っても、物理設計を行う工程で物理設計された回路の領域の大きさや形状によっては、物理設計を行う工程で信号のタイミングの劣化が発生してしまう場合がある。この場合、物理設計を行う工程から論理回路を合成する工程に戻るため、工程のロスが発生してしまうという問題がある。
【０００７】
１つの側面では、本発明は、物理設計の工程で生じるタイミングの劣化を抑制することができる算出方法および算出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願の開示する算出方法は、１つの態様において、コンピュータが、回路における第一のモジュールに含まれ、かつ、素子を有する第二のモジュールの面積に基づいて、第二のモジュールの一辺の長さを算出する処理を実行する。そして、本願の開示する算出方法は、コンピュータが、算出された一辺の長さ、第一のモジュールにおけるファンアウト数、第二のモジュールから信号を出力する素子の第二のモジュールにおける位置、および、ファンアウト数の隣り合う第二のモジュールにおいて該信号を入力する素子の第二のモジュールにおける位置に基づいて、第一のモジュールにおける配線の長さを算出する処理を実行する。
【発明の効果】
【０００９】
１態様によれば、物理設計の工程で生じるタイミングの劣化を抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例に係る算出装置の機能構成の一例を示す図である。
【図２】図２は、ネットリストが示す論理回路の一例を示す図である。
【図３】図３は、実施例に係る算出装置が実行する処理の一例を説明するための図である。
【図４】図４は、実施例に係る算出装置が実行する他の処理の一例を説明するための図である。
【図５】図５は、セル使用率と複製数の判定係数との対応関係の一例を示す図である。
【図６】図６は、バッファの論理複製が行われたネットの一例を示す図である。
【図７】図７は、ＦＦの論理複製が行われたネットの一例を示す図である。
【図８】図８は、図２の例に示すネットに対応するファイルに記述されたハードウェア記述言語の一例である。
【図９】図９は、図６の例に示すネットに対応するファイルに記述されたハードウェア記述言語の一例である。
【図１０】図１０は、図７の例に示すネットに対応するファイルに記述されたハードウェア記述言語の一例である。
【図１１】図１１は、ＬｂおよびＬｆの算出方法の一例について説明するための図である。
【図１２】図１２は、ＬｂおよびＬｆの算出方法の一例について説明するための図である。
【図１３】図１３は、実施例に係る算出処理の手順を示すフローチャートである。
【図１４】図１４は、実施例に係る複製処理の手順を示すフローチャートである。
【図１５】図１５は、算出プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する算出方法および算出プログラムの実施例を図面に基づいて詳細に説明する。なお、実施例は開示の技術を限定するものではない。
【実施例】
【００１２】
実施例に係る算出装置について説明する。図１は、実施例に係る算出装置の機能構成の一例を示す図である。
【００１３】
［算出装置の機能構成］
図１に示すように、算出装置１０は、入力部１１と、出力部１２と、記憶部１３と、制御部１４とを有する。本実施例に係る算出装置１０は、物理設計の工程の前に、後述する算出処理や複製処理を行い、算出装置１０による処理結果を物理設計の工程に用いることができる。算出装置１０は、物理設計の工程の前の工程、例えば、論理合成の工程において算出処理や複製処理を行うことができる。
【００１４】
入力部１１は、各種情報を制御部１４に入力する。例えば、入力部１１は、ユーザから、後述の算出処理を実行するための指示を受け付けて、受け付けた指示を制御部１４に入力する。なお、かかる指示には、ＲＴＬファイルおよび制約条件が含まれる。ＲＴＬファイルは、ハードウェア記述言語によってＲＴＬが記述されたファイルである。また、制約条件は、回路の自動合成を行う際に用いられる所定の条件である。また、入力部１１は、ユーザから各種の指示を受け付けて、受け付けた指示を制御部１４へ入力する。入力部１１のデバイスの一例としては、マウスやキーボードなどのユーザの操作を受け付けるデバイスなどが挙げられる。
【００１５】
出力部１２は、各種の情報を出力する。例えば、出力部１２は、後述の生成部１４ｇの制御により、更新されたネットリスト１３ａが示す論理回路を表示する。出力部１２のデバイスの一例としては、液晶ディスプレイなどが挙げられる。
【００１６】
記憶部１３は、各種情報を記憶する。例えば、記憶部１３は、ネットリスト１３ａ、ファンアウト情報１３ｂ、サブモジュールのエリア情報１３ｃ、トップモジュールのエリア情報１３ｄ、フロアプラン情報１３ｅを記憶する。
【００１７】
ネットリスト１３ａは、ゲートレベルのセルの接続情報である。ここで、ネットリスト１３ａは、後述の第一の算出部１４ａにより生成される。図２は、ネットリストが示す論理回路の一例を示す図である。図２の例では、ネットリスト１３ａが示す論理回路は、トップモジュールに、サブモジュールＴＭ０、ＲＭ０、ＲＭ１、・・・、ＲＭ５、ＲＭ６が含まれる場合を示す。サブモジュールＴＭ０は、バッファＴｂ０を有し、バッファＴｂ０から、サブモジュールＲＭ０、ＲＭ１、・・・、ＲＭ５、ＲＭ６へ信号を送信する。すなわち、サブモジュールＴＭ０は、信号を出力するモジュールであり、サブモジュールＲＭ０、ＲＭ１、・・・、ＲＭ５、ＲＭ６は、信号が入力されるモジュールである。サブモジュールＲＭ０、ＲＭ１、・・・、ＲＭ５、ＲＭ６は、それぞれ、バッファＲｂ０、Ｒｂ１、・・・、Ｒｂ５、Ｒｂ６を有する。サブモジュールＲＭ０、ＲＭ１、・・・、ＲＭ５、ＲＭ６は、それぞれ、バッファＲｂ０、Ｒｂ１、・・・、Ｒｂ５、Ｒｂ６で、サブモジュールＴＭ０からの信号を受信する。そして、サブモジュールＲＭ０、ＲＭ１、・・・、ＲＭ５、ＲＭ６は、受信した信号を、後段に設けられた図示しないＦＦ（フリップフロップ）に出力する。ここで、図２の例では、信号を出力する１つのサブモジュールＴＭ０から、７つのサブモジュールＲＭ０、ＲＭ１、・・・、ＲＭ５、ＲＭ６へ信号を出力していることから、ファンアウト数は、７である。
【００１８】
すなわち、ネットリスト１３ａは、複数のサブモジュールが接続されたｍ個のトップモジュールの論理回路を示す。また、ｍ個のトップモジュールのそれぞれは、ネットＮ（ｍ）（ｍ＝０、１、・・・、ｎ−１）で識別することができる。
【００１９】
ファンアウト情報１３ｂは、第一の算出部１４ａにより算出されたファンアウトに係る情報である。例えば、ファンアウト情報１３ｂは、論理回路におけるファンアウト数、信号を出力する出力端子の識別子、出力端子を有する素子の識別子、信号が入力される入力端子の識別子、入力端子を有する素子の識別子を含む。例えば、図２の例に示すネットリスト１３ａが第一の算出部１４ａにより生成された場合には、ファンアウト数「７」、信号を出力する出力端子の識別子「Ｔｂｐ０」、出力端子「Ｔｂｐ０」を有するバッファの識別子「Ｔｂ０」を含むファンアウト情報１３ｂが第一の算出部１４ａにより生成される。なお、このファンアウト情報１３ｂには、さらに、信号が入力される入力端子の識別子「Ｒｂｐ０」〜「Ｒｂｐ６」、入力端子「Ｒｂｐ０」〜「Ｒｂｐ６」のそれぞれを有するバッファの識別子「Ｒｂ０」〜「Ｒｂ６」が含まれる。
【００２０】
サブモジュールのエリア情報１３ｃは、第一の算出部１４ａにより算出されたサブモジュールのエリアに係る情報である。例えば、サブモジュールのエリア情報は、サブモジュールのエリアの面積を含む。
【００２１】
トップモジュールのエリア情報１３ｄは、第一の算出部１４ａにより算出されたトップモジュールのエリアに係る情報である。例えば、トップモジュールのエリア情報は、全てのサブモジュールのエリアの面積を含む。
【００２２】
フロアプラン情報１３ｅは、配置する素子の位置や各素子の面積などを示す情報である。例えば、フロアプラン情報１３ｅは、トップモジュールのエリア情報１３ｄが示すトップモジュールのエリアの面積Ａｅに対する、ＦＦやバッファなどの素子の面積の割合（セル使用率）Ｄを算出する場合に用いられる。
【００２３】
記憶部１３は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部１３は、上記の種類の記憶装置に限定されるものではなく、ＲＡＭ（Random  Access  Memory)、ＲＯＭ（Read  Only  Memory)であってもよい。
【００２４】
制御部１４は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。図１に示すように、制御部１４は、第一の算出部１４ａと、第二の算出部１４ｂと、第三の算出部１４ｃと、分割部１４ｄと、第四の算出部１４ｅと、決定部１４ｆと、生成部１４ｇとを有する。
【００２５】
第一の算出部１４ａは、トップモジュールに含まれるサブモジュールの面積に基づいて、サブモジュールの一辺の長さを算出する。例えば、第一の算出部１４ａは、制約条件を満たすように、論理回路の合成を行い、ネットリスト１３ａ、ファンアウト情報１３ｂ、サブモジュールのエリア情報１３ｃ、トップモジュールのエリア情報１３ｄを生成する。そして、第一の算出部１４ａは、トップモジュールのエリア情報１３ｄを参照し、全てのサブモジュールについて、次のような処理を行う。すなわち、第一の算出部１４ａは、サブモジュールのエリアの形状を正方形と仮定し、サブモジュールのエリアの面積の平方根を算出することで、サブモジュールのエリアの一辺の長さを算出する。
【００２６】
図３は、実施例に係る算出装置が実行する処理の一例を説明するための図である。図３は、サブモジュールＴＭ０のバッファＴｂ０から、サブモジュールＲＭ０のバッファＲｂ０、サブモジュールＲＭ１のバッファＲｂ１、サブモジュールＲＭ２のバッファＲｂ２へ信号が出力される論理回路を示す。すなわち、図３の例が示す論理回路は、ファンアウト数が「３」である。図３の例は、図３中、サブモジュールＴＭ０の右上にバッファＴｂ０が設けられ、サブモジュールＲＭ０、ＲＭ１、ＲＭ２の左下にバッファＲｂ０、Ｒｂ１、Ｒｂ２が設けられ、バッファＴｂ０にバッファＲｂ０、Ｒｂ１、Ｒｂ２が接続された場合を示す。図３の例では、第一の算出部１４ａは、サブモジュールＲＭ０、ＲＭ１、ＲＭ２のそれぞれについて、エリアの形状を正方形と仮定し、エリアの面積の平方根を算出し、算出した平方根をエリアの一辺の長さとする。ここで、図３の例に示すように、信号が入力されるサブモジュールＲＭ０、ＲＭ１、ＲＭ２のエリアの面積が全て「Ａｒｍ０」であり、同一である場合には、第一の算出部１４ａは、次のような処理を行うことができる。すなわち、第一の算出部１４ａは、サブモジュールＲＭ０、ＲＭ１、ＲＭ２のそれぞれについて、（Ａｒｍ０）１／２をエリアの一辺の長さとして算出することができる。
【００２７】
図４は、実施例に係る算出装置が実行する他の処理の一例を説明するための図である。図４も、サブモジュールＴＭ０のバッファＴｂ０から、サブモジュールＲＭ０のバッファＲｂ０、サブモジュールＲＭ１のバッファＲｂ１、サブモジュールＲＭ２のバッファＲｂ２へ信号が出力される論理回路を示す。すなわち、図４の例が示す論理回路も、ファンアウト数が「３」である。図４の例は、図４中、サブモジュールＴＭ０の左上にバッファＴｂ０が設けられ、サブモジュールＲＭ０、ＲＭ１、ＲＭ２の右下にバッファＲｂ０、Ｒｂ１、Ｒｂ２が設けられ、バッファＴｂ０にバッファＲｂ０、Ｒｂ１、Ｒｂ２が接続された場合を示す。図４の例では、第一の算出部１４ａは、サブモジュールＴＭ０、ＲＭ０、ＲＭ１、ＲＭ２のそれぞれについて、エリアの形状を正方形と仮定し、エリアの面積の平方根を算出し、算出した平方根をエリアの一辺の長さとする。図４の例は、信号を出力するサブモジュールＴＭ０のエリアの面積が「Ａｔｍ０」であり、信号が入力されるサブモジュールＲＭ０、ＲＭ１、ＲＭ２のエリアの面積が全て「Ａｒｍ０」である場合を示す。この場合には、第一の算出部１４ａは、サブモジュールＴＭ０について（Ａｔｍ０）１／２をエリアの一辺の長さとして算出し、サブモジュールＲＭ０、ＲＭ１、ＲＭ２のそれぞれについて、（Ａｒｍ０）１／２をエリアの一辺の長さとして算出することができる。
【００２８】
第一の算出部１４ａは、このようにしてサブモジュールの一辺の長さを算出する処理を、全ての、信号を出力するサブモジュールと、入力するサブモジュールの組み合わせについて行う。ここで、信号を出力するサブモジュールと、入力するサブモジュールの組み合わせとは、上述した各ネットＮ（ｍ）（ｍ＝０、１、・・・、ｎ−１）を指し、ネットＮ（ｍ）のそれぞれは、複数のサブモジュールが接続された論理回路の情報を示す。
【００２９】
第二の算出部１４ｂは、第一の算出部１４ａにより算出された一辺の長さ、および、信号を出力するサブモジュールと入力するサブモジュールの組み合わせにおけるファンアウト数に基づいて、信号を出力するサブモジュールと入力するサブモジュールの組み合わせにおける配線の長さＬｔを算出する。以下の説明において、配線の長さＬｔを、「総配線長Ｌｔ」と表記する場合がある。
【００３０】
具体例を挙げて説明する。例えば、第二の算出部１４ｂは、図３の例に示すように、第一の算出部１４ａにより、サブモジュールＲＭ０、ＲＭ１、ＲＭ２のそれぞれについて、（Ａｒｍ０）１／２がエリアの一辺の長さとして算出された場合には、次のような処理を行う。すなわち、第二の算出部１４ｂは、（Ａｒｍ０）１／２をファンネット数「３」で乗じた値「（（Ａｒｍ０）１／２）×３」を図３の例が示す信号を出力するサブモジュールと入力するサブモジュールの組み合わせにおける配線の長さとして算出する。
【００３１】
なお、第二の算出部１４ｂは、図４に示すように、サブモジュールＴＭ０について（Ａｔｍ０）１／２、サブモジュールＲＭ０、ＲＭ１、ＲＭ２のそれぞれについて（Ａｒｍ０）１／２がエリアの一辺の長さとして算出された場合には、次の処理を行うこともできる。すなわち、第二の算出部１４ｂは、（Ａｔｍ０）１／２に、（Ａｒｍ０）１／２をファンネット数「３」を２倍した値で乗じた値を加算した値「（（Ａｔｍ０）１／２）＋（（Ａｒｍ０）１／２）×３×２」を信号を出力するサブモジュールと入力するサブモジュールの組み合わせにおける配線の長さとして算出することもできる。
【００３２】
第二の算出部１４ｂは、このようにして配線の長さを算出する処理を、全ての、信号を出力するサブモジュールと入力するサブモジュールの組み合わせについて行う。
【００３３】
このように、本実施例に係る算出装置１０は、サブモジュールのエリアの形状を正方形と仮定し、サブモジュールのエリアの面積の平方根を用いて、配線の長さを算出する。したがって、本実施例に係る算出装置１０によれば、簡易に配線の長さを算出することができる。
【００３４】
第三の算出部１４ｃは、セル使用率に基づいて、論理複製を行う素子の数Ｎｃを算出する。例えば、第三の算出部１４ｃは、まず、フロアプラン情報１３ｅを記憶部１３から取得する。そして、第三の算出部１４ｃは、トップモジュールのエリア情報１３ｄが示すトップモジュール全体のエリアの面積Ａｅに対する、フロアプラン情報１３ｅが示す素子の面積の割合Ｄを算出する。すなわち、第三の算出部１４ｃは、セル使用率Ｄを算出する。続いて、第三の算出部１４ｃは、セル使用率Ｄに対応付けられた複製数の判定係数ｋを算出する。ここで、判定係数ｋは、論理複製を行う素子（ＦＦ、バッファ）の数を算出する際に用いられる係数である。
【００３５】
図５は、セル使用率と複製数の判定係数との対応関係の一例を示す図である。図５の例では、セル使用率Ｄが大きくなるほど、判定係数ｋが小さくなるように、セル使用率Ｄと判定係数ｋとが対応付けられている。図５では、１５％以下のセル使用率Ｄに対して、判定係数ｋの値「１．４」が対応付けられている場合が例示されている。また、図５では、１５％より大きく２５％以下の範囲のセル使用率Ｄに対して、判定係数ｋの値「１．３」が対応付けられている場合が例示されている。また、図５では、２５％より大きく３５％以下の範囲のセル使用率Ｄに対して、判定係数ｋの値「１．２」が対応付けられている場合が例示されている。また、図５では、３５％より大きく４５％以下の範囲のセル使用率Ｄに対して、判定係数ｋの値「１．１」が対応付けられている場合が例示されている。また、図５では、４５％より大きく５５％以下の範囲のセル使用率Ｄに対して、判定係数ｋの値「１．０」が対応付けられている場合が例示されている。また、図５では、５５％より大きく６５％以下の範囲のセル使用率Ｄに対して、判定係数ｋの値「０．９」が対応付けられている場合が例示されている。また、図５では、６５％より大きく７５％以下の範囲のセル使用率Ｄに対して、判定係数ｋの値「０．８」が対応付けられている場合が例示されている。また、図５では、７５％より大きく８５％以下の範囲のセル使用率Ｄに対して、判定係数ｋの値「０．７」が対応付けられている場合が例示されている。また、図５では、８５％より大きいセル使用率Ｄに対して、判定係数ｋの値「０．６」が対応付けられている場合が例示されている。
【００３６】
図５の例の場合において、第三の算出部１４ｃは、１４％の値をセル使用率Ｄとして算出した場合には、判定係数ｋとして「１．４」の値を取得する。また、図５の例の場合において、第三の算出部１４ｃは、５０％の値をセル使用率Ｄとして算出した場合には、判定係数ｋとして「１．０」の値を取得する。第三の算出部１４ｃは、他の値をセル使用率Ｄとして算出した場合にも同様の方法で判定係数ｋの値を取得する。このようにして、第三の算出部１４ｃは、判定係数ｋを算出する。なお、第三の算出部１４ｃは、フロアプラン情報１３ｅを用いてセル使用率Ｄを算出せずに、セル使用率Ｄを所定値、例えば、５０％とみなすことでセル使用率Ｄを導出することもできる。この場合、第三の算出部１４ｃは、導出したセル使用率Ｄを用いて、上述した方法と同様の方法で判定係数ｋを算出する。
【００３７】
そして、第三の算出部１４ｃは、下記の式（１）を満たす自然数Ｎを決定し、決定した自然数Ｎを複製数Ｎｃとする。
【００３８】
Ｎ≦ｋ・（Ｌｔ／Ｌｂ）＜（Ｎ＋１）・・・式（１）
ここで、Ｌｂは、予め定められた値であり、論理回路において、バッファによる論理複製を行うか否かを判定する際に用いられる配線の長さの閾値である。このＬｂの算出方法の一例については後述する。
【００３９】
第三の算出部１４ｃは、このようにして複製数Ｎｃを算出する処理を、全ての、信号を出力するサブモジュールと入力するサブモジュールの組み合わせについて行う。ここで、論理複製を行う素子の数がファンアウト数を超えたとき、複数の出力素子が一つの入力素子に接続される状況になる。例えば、複製数が３でファンアウトが２のような場合、一つの入力素子については一つの出力素子のみが接続されるが、他方の入力素子には二つの出力素子が接続されることになる。しかしながら、本実施例では、そのような回路構成には変更しないものとする。このことを踏まえて、第三の算出部１４ｃは、論理複製を行う素子の数を示す複製数Ｎｃが、ファンアウト数を超えた場合には、複製数Ｎｃを論理複製可能な素子の最大数、すなわち、ファンアウト数に修正する。
【００４０】
分割部１４ｄは、サブモジュールを、論理複製によって分割されるグループに分ける。例えば、分割部１４ｄは、サブモジュールを、複製数Ｎｃが示す数のグループに分ける。例えば、分割部１４ｄは、まず、複製数Ｎｃが、１より大きいか否かを判定する。そして、複製数Ｎｃが１より大きい場合には、分割部１４ｄは、サブモジュールを、複製数Ｎｃが示す数のグループに分ける。
【００４１】
具体例を挙げて説明する。図２に示すように、７つのサブモジュールＲＭ０〜ＲＭ６が論理複製によってグループに分割され、複製数Ｎｃが「３」である場合について説明する。この場合、分割部１４ｄは、例えば、グループ｛ＲＭ０、ＲＭ１｝、グループ｛ＲＭ２、ＲＭ３｝、グループ｛ＲＭ４、ＲＭ５、ＲＭ６｝の３つのグループにサブモジュールを分ける。
【００４２】
このように、分割部１４ｄは、多ファンアウトの信号が入力される入力素子を有するサブモジュールをＮｃ個のグループに分割することができる。分割部１４ｄは、このようにしてサブモジュールを論理複製によって分割されるグループに分ける処理を、全ての、信号を出力するサブモジュールと入力するサブモジュールの組み合わせについて行う。
【００４３】
第四の算出部１４ｅは、グループごとに、サブモジュールの配線の長さＬｊ（ｊ＝０、１、・・・、Ｎｃ−１）を算出する。例えば、第四の算出部１４ｅは、ファンアウトの信号を出力する出力素子と、ファンアウトの信号が入力される入力素子とがそれぞれ異なるサブモジュールに含まれている場合には、グループごとに、サブモジュールの配線の長さの総和を算出する。ここで、サブモジュールの配線の長さは、第一の算出部１４ａにより算出されたエリアの一辺の長さを指す。また、第四の算出部１４ｅは、ファンアウトの信号を出力する出力素子と、ファンアウトの信号が入力される入力素子とが同じサブモジュールに含まれている場合には、「総配線長Ｌｔ」を複製数Ｎｃで除した値（Ｌｔ／Ｎｃ）を、サブモジュールの配線の長さＬｊ（ｊ＝０、１、・・・、Ｎｃ−１）とする。
【００４４】
具体例を挙げて説明する。上述したように、分割部１４ｄによって、グループ｛ＲＭ０、ＲＭ１｝、グループ｛ＲＭ２、ＲＭ３｝、グループ｛ＲＭ４、ＲＭ５、ＲＭ６｝の３つのグループにサブモジュールが分けられた場合について説明する。ここで、サブモジュールＲＭ０〜ＲＭ６の７つのサブモジュールについて、すべて、第一の算出部１４ａにより、エリアの一辺の長さとして「５．５」が算出されたものとする。この場合、第四の算出部１４ｅは、グループ｛ＲＭ０、ＲＭ１｝の配線の長さの総和「１１（５．５＋５．５）」を算出する。また、第四の算出部１４ｅは、グループ｛ＲＭ２、ＲＭ３｝の配線の長さの総和「１１（５．５＋５．５）」を算出する。また、第四の算出部１４ｅは、グループ｛ＲＭ４、ＲＭ５、ＲＭ６｝の配線の長さの総和「１６．５（５．５＋５．５＋５．５）」を算出する。
【００４５】
第四の算出部１４ｅは、このようにしてサブモジュールの配線の長さＬｊ（ｊ＝０、１、・・・、Ｎｃ−１）を算出する処理を、全ての、信号を出力するサブモジュールと入力するサブモジュールの組み合わせについて行う。
【００４６】
決定部１４ｆは、第四の算出部１４ｅによって算出されたサブモジュールの配線の長さＬｊに基づいて、信号を出力するサブモジュールにおける論理複製を行う素子の種類を決定する。
【００４７】
例えば、決定部１４ｆは、まず、ｍａｘ（Ｌｊ）とＬｆとを比較する。そして、決定部１４ｆは、ｍａｘ（Ｌｊ）がＬｆより小さい場合には、バッファを論理複製することを決定する。一方、ｍａｘ（Ｌｊ）がＬｆ以上である場合には、ＦＦを論理複製することを決定する。ここで、Ｌｆは、予め定められた値であり、論理回路において、ＦＦによる論理複製を行うか否かを判定する際に用いられる配線の長さの閾値である。このＬｆの算出方法の一例については後述する。
【００４８】
決定部１４ｆは、このようにして信号を出力するサブモジュールにおける論理複製を行う素子の種類を決定する処理を、全ての、信号を出力するサブモジュールと入力するサブモジュールの組み合わせについて行う。
【００４９】
生成部１４ｇは、決定部１４ｆにより決定された種類の素子による論理複製のデータを信号を出力するサブモジュールと入力するサブモジュールの組み合わせごとに生成し、生成したデータがネットリスト１３ａに反映されるようにネットリスト１３ａを更新する。
【００５０】
例えば、生成部１４ｇは、決定部１４ｆによりバッファを論理複製することが決定された場合に、出力端子がバッファであるときは、生成部１４ｇは、複製数Ｎｃから１を減じた値（Ｎｃ−１）分バッファを論理複製する。また、生成部１４ｇは、決定部１４ｆによりバッファを論理複製することが決定された場合に、出力端子がＦＦであるときは、生成部１４ｇは、複製数Ｎｃ分バッファを論理複製する。これにより、複製の結果、ネットでは、ファンアウト信号を出力するモジュールに、複製数Ｎｃが示す個数のバッファが設けられ、これらのバッファから信号が出力される。図６は、バッファの論理複製が行われたネットの一例を示す図である。例えば、図２の例において、第三の算出部１４ｃにより、複製数Ｎｃとして「３」が算出され、決定部１４ｆにより、バッファを論理複製することが決定された場合には、図６の例に示すように、バッファＴｂ１、Ｔｂ２が新たに設けられ、各バッファＴｂ０、Ｔｂ１、Ｔｂ２のそれぞれには、分割部１４ｄによって分けられた各グループのサブモジュール群が接続される。例えば、バッファＴｂ０には、サブモジュールＲＭ０のバッファＲｂ０、サブモジュールＲＭ１のバッファＲｂ１が接続される。また、バッファＴｂ１には、サブモジュールＲＭ２のバッファＲｂ２、サブモジュールＲＭ３のバッファＲｂ３が接続される。また、バッファＴｂ２には、サブモジュールＲＭ４のバッファＲｂ４、サブモジュールＲＭ５のバッファＲｂ５、サブモジュールＲＭ６のバッファＲｂ６が接続される。
【００５１】
また、生成部１４ｇは、決定部１４ｆによりＦＦを論理複製することが決定された場合に、出力端子がＦＦであるときは、生成部１４ｇは、複製数Ｎｃから１を減じた値（Ｎｃ−１）分ＦＦを論理複製する。また、生成部１４ｇは、決定部１４ｆによりＦＦを論理複製することが決定された場合に、出力端子がバッファであるときは、生成部１４ｇは、バッファの入力をＦＦまで遡って、複製数Ｎｃから１を減じた値（Ｎｃ−１）分ＦＦを論理複製する。これにより、複製の結果、ネットでは、ファンアウト信号を出力するモジュールに、複製数Ｎｃが示す個数のＦＦが設けられ、これらのＦＦから信号が出力される。図７は、ＦＦの論理複製が行われたネットの一例を示す図である。例えば、図２の例において、第三の算出部１４ｃにより、複製数Ｎｃとして「３」が算出され、決定部１４ｆにより、ＦＦを論理複製することが決定された場合には、図７の例に示すように、バッファＴｂ０に代わって３つのＦＦＴｆ０〜Ｔｆ２が新たに設けられ、各ＦＦＴｆ０、Ｔｆ１、Ｔｆ２のそれぞれには、分割部１４ｄによって分けられた各グループのサブモジュール群が接続される。例えば、ＦＦＴｆ０には、サブモジュールＲＭ０のバッファＲｂ０、サブモジュールＲＭ１のバッファＲｂ１が接続される。また、ＦＦＴｆ１には、サブモジュールＲＭ２のバッファＲｂ２、サブモジュールＲＭ３のバッファＲｂ３が接続される。また、ＦＦＴｆ２には、サブモジュールＲＭ４のバッファＲｂ４、サブモジュールＲＭ５のバッファＲｂ５、サブモジュールＲＭ６のバッファＲｂ６が接続される
【００５２】
そして、生成部１４ｇは、論理複製したデータがネットリスト１３ａに反映されるように、ネットリスト１３ａを更新する。生成部１４ｇは、このようにして論理複製のデータを、信号を出力するサブモジュールと入力するサブモジュールの組み合わせごとに生成する。また、生成部１４ｇは、生成したデータがネットリスト１３ａに反映されるようにネットリスト１３ａを更新する処理を、信号を出力するサブモジュールと入力するサブモジュールの組み合わせについて行う。
【００５３】
このように、本実施例に係る算出装置１０は、グループごとに配線長Ｌｊを算出し、配線長Ｌｊの最大値ｍａｘ（Ｌｊ）がＬＦより小さいか否かによって、論理複製する素子の種類を決定し、決定された種類の素子を論理複製する。すなわち、本実施例に係る算出装置１０は、タイミング解析などを行わずに、論理複製を行う。そのため、本実施例に係る算出装置１０によれば、信号のタイミングとは関係なく論理複製を行うため、物理設計の工程で生じる可能性があるタイミングの劣化を未然に回避することができる。
【００５４】
また、本実施例に係る算出装置１０は、物理設計の工程で得られる情報を用いずに、論理複製を行うため、物理設計の工程に進む前に、精度が良好な論理複製を行うことができる。
【００５５】
ここで、図２、図６、図７の例に示す各ネットに対応する、ハードウェア記述言語によってＲＴＬが記述されたファイルの一例について、図８〜図１０を参照して説明する。なお、図８〜図１０の例は、ハードウェア記述言語として、Ｖｅｒｉｌｏｇ―ＨＤＬが用いられた場合を示し、全てのＶｅｒｉｌｏｇ―ＨＤＬの記述ではなく一部を示す。
【００５６】
図８は、図２の例に示すネットに対応するファイルに記述されたハードウェア記述言語の一例である。図８の例は、サブモジュール：ＴＭ０が、バッファ：ＩＢＦ、ＦＦ：ＩＦＦ、バッファ：Ｔｂ０を有し、バッファ：ＩＢＦの出力端子にＦＦ：ＩＦＦのＤ端子が接続され、ＦＦ：ＩＦＦのＱ端子が、バッファ：Ｔｂ０の入力端子に接続されている場合を示す。また、図８の例は、バッファ：Ｔｂ０の出力端子が、サブモジュール：ＲＭ０のバッファ：Ｒｂ０の入力端子に接続されていることを示す。
【００５７】
図９は、図６の例に示すネットに対応するファイルに記述されたハードウェア記述言語の一例である。図９の例は、サブモジュール：ＴＭ０が、バッファ：ＩＢＦ、ＦＦ：ＩＦＦ、バッファ：Ｔｂ０、Ｔｂ１、Ｔｂ２を有し、バッファ：ＩＢＦの出力端子にＦＦ：ＩＦＦのＤ端子が接続されている場合を示す。また、図９の例は、ＦＦ：ＩＦＦのＱ端子が、バッファ：Ｔｂ０、Ｔｂ１、Ｔｂ２のそれぞれの入力端子に接続されている場合を示す。また、図９の例は、バッファ：Ｔｂ０の出力端子が、サブモジュール：ＲＭ０のバッファ：Ｒｂ０の入力端子に接続されていることを示す。
【００５８】
図１０は、図７の例に示すネットに対応するファイルに記述されたハードウェア記述言語の一例である。図１０の例は、サブモジュール：ＴＭ０が、バッファ：ＩＢＦ、ＦＦ：Ｔｆ０、Ｔｆ１、Ｔｆ２を有し、バッファ：ＩＢＦの出力端子にＦＦ：Ｔｆ０、Ｔｆ１、Ｔｆ２のそれぞれのＤ端子が接続されている場合を示す。また、図１０の例は、ＦＦ：Ｔｆ０のＱ端子が、バサブモジュール：ＲＭ０のバッファ：Ｒｂ０の入力端子に接続されていることを示す。
【００５９】
制御部１４は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路またはＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路である。
【００６０】
ここで、上述した、ＬｂおよびＬｆの算出方法の一例について説明する。図１１および図１２は、ＬｂおよびＬｆの算出方法の一例について説明するための図である。
【００６１】
容量Ｃ［ｆＦ］に対して、電圧変動ΔＶ［Ｖ］に対応して電流変動ΔＩ［μＡ］がある場合の信号の傾きＴｓｌｅｗ［ｐｓ］は、次の式（２）で表すことができる。
Ｔｓｌｅｗ＝Ｃ×ΔＶ／ΔＩ・・・式（２）
【００６２】
図１１は、平行平板の模式図である。容量Ｃは、真空中の誘電率（ε０＝８．８５４×１０−１２［Ｆ／ｍ］）、比誘電率εｒ、平行平板の面積Ｓ（＝Ｗｉｄｅ×Ｌｅｎｇｔｈ）、平行平板間の距離ｄを用いて、次の式（３）で表すことができる。
Ｃ＝ε０×εｒ×Ｓ／ｄ
＝ε０×εｒ×（Ｗｉｄｅ／ｄ）×Ｌｅｎｇｔｈ・・・式（３）
【００６３】
また、図１２に示すように、Ｔｓｌｅｗは、次の式（４）、式（５）が示す条件を満たす。なお、式（４）の等号が成立する場合、すなわち、Ｔｓｌｅｗ＝０．２５×Ｔｃｙｃｌｅの場合のＴｓｌｅｗがＬｆとなる。また、式（５）の等号が成立する場合、すなわち、Ｔｓｌｅｗ＝０．３５×Ｔｃｙｃｌｅの場合のＴｓｌｅｗがＬｂとなる。なお、Ｔｃｙｃｌｅは、１周期の時間である。
Ｔｓｌｅｗ＝０．２５×Ｔｃｙｃｌｅ・・・式（４）
Ｔｓｌｅｗ＝０．３５×Ｔｃｙｃｌｅ・・・式（５）
【００６４】
以上のことを踏まえて、周波数１［ＧＨｚ］（Ｔｃｙｃｌｅ＝１０００［ｐｓ］）の場合におけるＬｂ、Ｌｆの算出方法について説明する。使用する半導体プロセスが決定すると、配線の幅（Ｗｉｄｅ）、配線間の距離（ｄ）が定まる。ここで、Ｗｉｄｅ＝２．０［μｍ］、ｄ＝１．０［μｍ］である場合について説明する。この場合、式（３）により、次の式（６）が示すようになる。
Ｃ＝８．８５４×１０−１２×４．１×（２．０／１．０）×Ｌｅｎｇｔｈ
≒７３×Ｌｅｎｇｔｈ［ｆＦ／ｍｍ］・・・式（６）
【００６５】
電圧の１．０［Ｖ］変動（ΔＶ＝１．０［Ｖ］）に対して、０．０５［μＡ］の電流が流れる（ΔＩ＝０．０５［μＡ］）場合、式（２）、式（６）から、次の式（７）が導き出せる。
Ｔｓｌｅｗ＝７３×Ｌｅｎｇｔｈ×１．０／０．０５
＝１４６０×Ｌｅｎｇｔｈ・・・式（７）
【００６６】
ここで、式（４）より、次の式（８）が導き出せる。
Ｌｅｎｇｔｈ≦０．２５×１０００／１４６０≒１７１［μｍ］・・・式（８）
【００６７】
また、式（５）より、次の式（９）が導き出せる。
Ｌｅｎｇｔｈ≦０．３５×１０００／１４６０≒２４０［μｍ］・・・式（９）
【００６８】
以上のことから、論理回路において、バッファによる論理複製を行うか否かを判定する際に用いられる配線の長さの閾値Ｌｂが１７１［μｍ］となる。また、ＦＦによる論理複製を行うか否かを判定する際に用いられる配線の長さの閾値Ｌｂが２４０［μｍ］となる。なお、Ｌｂは、例えば、回路が正常動作する可能性は見込める場合の配線の長さの閾値であり、Ｌｆは、正常動作しない可能性が高い場合の配線の長さの閾値である。
【００６９】
［処理の流れ］
次に、本実施例に係る算出装置１０の処理の流れについて説明する。図１３は、実施例に係る算出処理の手順を示すフローチャートである。算出処理は、例えば、入力部１１から、算出処理を実行するための指示を制御部１４が受け付けたタイミングで、実行される。上述したように、この指示には、ＲＴＬファイルおよび制約条件が含まれている。
【００７０】
図１３に示すように、第一の算出部１４ａは、制約条件を満たすように、論理回路の合成を行い、ネットリスト１３ａ、ファンアウト情報１３ｂ、サブモジュールのエリア情報１３ｃ、トップモジュールのエリア情報１３ｄを生成する（Ｓ１０１）。そして、第三の算出部１４ｃは、フロアプラン情報１３ｅを記憶部１３から取得する（Ｓ１０２）。続いて、第三の算出部１４ｃは、フロアプラン情報１３ｅを用いて、セル使用率Ｄを算出する（Ｓ１０３）。続いて、第三の算出部１４ｃは、セル使用率Ｄに対応付けられた複製数の判定係数ｋを算出する（Ｓ１０４）。
【００７１】
そして、第一の算出部１４ａは、変数ｍの値を０に設定する（Ｓ１０５）。そして、第一の算出部１４ａ、第二の算出部１４ｂ、第三の算出部１４ｃ、分割部１４ｄ、第四の算出部１４ｅ、決定部１４ｆ、生成部１４ｇは、複製処理を実行する（Ｓ１０６）。複製処理については後述する。続いて、生成部１４ｇは、変数ｍの値が（ｎ−１）以上となったか否かを判定する（Ｓ１０７）。なお、ｎは、ネットの個数である。変数ｍの値が（ｎ−１）未満である場合（Ｓ１０７否定）には、生成部１４ｇは、変数ｍの値を１つインクリメントし（Ｓ１０８）、Ｓ１０６に戻る。一方、変数ｍの値が（ｎ−１）以上である場合（Ｓ１０７肯定）には、生成部１４ｇは、論理複製のデータがネットリスト１３ａに反映されるように、ネットリスト１３ａを更新し（Ｓ１０９）、処理を終了する。
【００７２】
図１４は、実施例に係る複製処理の手順を示すフローチャートである。図１４に示すように、第一の算出部１４ａは、トップモジュールのエリア情報１３ｄを参照し、ネットＮ（ｍ）内の全てのサブモジュールについて、次のような処理を行う。すなわち、第一の算出部１４ａは、サブモジュールのエリアの形状を正方形と仮定し、サブモジュールのエリアの面積の平方根を算出することで、サブモジュールのエリアの一辺の長さを算出する（Ｓ２０１）。
【００７３】
続いて、第二の算出部１４ｂは、第一の算出部１４ａにより算出された一辺の長さ、および、信号を出力するサブモジュールと入力するサブモジュールの組み合わせにおけるファンアウト数に基づいて、信号を出力するサブモジュールと入力するサブモジュールの組み合わせにおける総配線長Ｌｔを算出する（Ｓ２０２）。
【００７４】
そして、第三の算出部１４ｃは、上記の式（１）を満たす自然数Ｎを決定し、決定した自然数Ｎを複製数Ｎｃとして算出する（Ｓ２０３）。
【００７５】
その後、分割部１４ｄは、複製数Ｎｃが、１より大きいか否かを判定する（Ｓ２０４）。複製数Ｎｃが１以下である場合（Ｓ２０４否定）には、分割部１４ｄは、処理結果を内部メモリに格納してリターンする。一方、複製数Ｎｃが１より大きい場合（Ｓ２０４肯定）には、分割部１４ｄは、サブモジュールを、複製数Ｎｃが示す数のグループに分ける（Ｓ２０５）。
【００７６】
そして、第四の算出部１４ｅは、ネットＮ（ｍ）について、グループごとに、サブモジュールの配線の長さＬｊ（ｊ＝０、１、・・・、Ｎｃ−１）を算出する（Ｓ２０６）。
【００７７】
その後、決定部１４ｆは、ｍａｘ（Ｌｊ）がＬｆより小さいか否かを判定する（Ｓ２０７）ｍａｘ（Ｌｊ）がＬｆより小さい場合（Ｓ２０７肯定）には、決定部１４ｆは、バッファを論理複製することを決定する（Ｓ２０８）。そして、生成部１４ｇは、複製数Ｎｃに応じて、バッファによる論理複製のデータを生成し（Ｓ２０９）、処理結果を内部メモリに格納し、リターンする。ここで、生成された論理複製のデータは、ネットＮ（ｍ）を更新するためのデータである。
【００７８】
一方、ｍａｘ（Ｌｊ）がＬｆ以上である場合（Ｓ２０７否定）には、決定部１４ｆは、ＦＦを論理複製することを決定する（Ｓ２１０）。そして、生成部１４ｇは、複製数Ｎｃに応じて、ＦＦによる論理複製のデータを生成し（Ｓ２１１）、処理結果を内部メモリに格納し、リターンする。
【００７９】
上述してきたように、本実施例に係る算出装置１０は、サブモジュールのエリアの形状を正方形と仮定し、サブモジュールのエリアの面積の平方根を用いて、信号を出力するサブモジュールと入力するサブモジュールの組み合わせ（ネット）の配線の長さを算出する。したがって、本実施例に係る算出装置１０によれば、簡易に配線の長さを算出することができる。
【００８０】
また、本実施例に係る算出装置１０は、グループごとに配線長Ｌｊを算出し、配線長Ｌｊの最大値ｍａｘ（Ｌｊ）がＬＦより小さいか否かによって、論理複製する素子の種類を決定し、決定された種類の素子を論理複製する。すなわち、本実施例に係る算出装置１０は、タイミング解析などを行わずに、論理複製を行う。そのため、本実施例に係る算出装置１０によれば、信号のタイミングとは関係なく論理複製を行うため、物理設計の工程で生じる可能性があるタイミングの劣化を未然に回避することができる。
【００８１】
また、本実施例に係る算出装置１０は、物理設計の工程で得られる情報を用いずに、論理複製を行うため、物理設計の工程に進む前に、精度が良好な論理複製を行うことができる。
【００８２】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００８３】
例えば、実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【００８４】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。
【００８５】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。
【００８６】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００８７】
［算出プログラム］
また、上記の実施例で説明した算出装置１０の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図１５を用いて、上記の実施例で説明した算出装置１０と同様の機能を有する算出プログラムを実行するコンピュータの一例を説明する。図１５は、算出プログラムを実行するコンピュータを示す図である。
【００８８】
図１５に示すように、コンピュータ３００は、ＣＰＵ（Central  Processing  Unit）３１０、ＲＯＭ（Read  Only  Memory）３２０、ＨＤＤ（Hard  Disk  Drive）３３０、ＲＡＭ（Random  Access  Memory）３４０を有する。ＣＰＵ３１０、ＲＯＭ３２０、ＨＤＤ３３０、ＲＡＭ３４０は、互いに、バス３５０を介して接続されている。
【００８９】
ＲＯＭ３２０には、ＯＳ（Operating  System）などの基本プログラムが記憶されている。また、ＨＤＤ３３０には、上記の実施例で示す第一の算出部、第二の算出部、第三の算出部、分割部、第四の算出部、決定部、生成部などと同様の機能を発揮する算出プログラム３３０ａが予め記憶される。なお、算出プログラム３３０ａについては、適宜分離しても良い。また、ＨＤＤ３３０には、ネットリスト、ファンアウト情報、サブモジュールのエリア情報、トップモジュールのエリア情報などが設けられる。これらのネットリスト、ファンアウト情報、サブモジュールのエリア情報、トップモジュールのエリア情報は、上述したネットリスト１３ａ、ファンアウト情報１３ｂ、サブモジュールのエリア情報１３ｃ、トップモジュールのエリア情報１３ｄに対応する。
【００９０】
そして、ＣＰＵ３１０が、算出プログラム３３０ａをＨＤＤ３３０から読み出して実行する。
【００９１】
そして、ＣＰＵ３１０は、ネットリスト、ファンアウト情報、サブモジュールのエリア情報、トップモジュールのエリア情報などを読み出してＲＡＭ３４０に格納する。さらに、ＣＰＵ３１０は、ＲＡＭ３４０に格納されたネットリスト、ファンアウト情報、サブモジュールのエリア情報、トップモジュールのエリア情報などを用いて、算出プログラム３３０ａを実行する。なお、ＲＡＭ３４０に格納される各データは、常に全てのデータがＲＡＭ３４０に格納されなくともよい。処理に用いられるデータがＲＡＭ３４０に格納されれば良い。
【００９２】
なお、上記した算出プログラム３３０ａについては、必ずしも最初からＨＤＤ３３０に記憶させておく必要はない。
【００９３】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。  
【００９４】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００９５】
１０      算出装置
１１      入力部
１２      出力部
１３      記憶部
１３ａ    ネットリスト
１３ｂ    ファンアウト情報
１３ｃ    サブモジュールのエリア情報
１３ｄ    トップモジュールのエリア情報
１４      制御部
１４ａ    第一の算出部
１４ｂ    第二の算出部
１４ｃ    第三の算出部
１４ｄ    分割部
１４ｅ    第四の算出部
１４ｆ    決定部
１４ｅ    算出部
【図１】
0005978682.tif 000002
【図２】
0005978682.tif 000003
【図３】
0005978682.tif 000004
【図４】
0005978682.tif 000005
【図５】
0005978682.tif 000006
【図６】
0005978682.tif 000007
【図７】
0005978682.tif 000008
【図８】
0005978682.tif 000009
【図９】
0005978682.tif 000010
【図１０】
0005978682.tif 000011
【図１１】
0005978682.tif 000012
【図１２】
0005978682.tif 000013
【図１３】
0005978682.tif 000014
【図１４】
0005978682.tif 000015
【図１５】
0005978682.tif 000016