(57)【要約】  【課題】  近年の大規模、高性能ＬＳＩ設計において、ディレイおよびレイアウトを考慮したフロアプランを短期間で設計する。  【解決手段】  ブロック間ネットのディレイ予算値を算出して、その予算値とブロック間ネットルールのディレイ特性から、各ブロック間ネットのディレイ予算値を守れる最大配線長を求め、各ブロック間ネットルールのディレイ特性と最大配線長を反映した評価関数を設定し、この評価関数を用いて自動でフロアプランを行う。【選択図】  図１
2006190062.tif 000002
【特許請求の範囲】
【請求項１】
複数の論理ブロックに分割して設計された半導体集積回路の論理情報が格納される論理ファイルの記憶装置と、プログラムが格納されるメモリと、ＣＰＵとを有する計算機において、前記プログラムを前記ＣＰＵによって実行することによって前記半導体集積回路上に前記論理ブロックを配置するフロアプラン方法であって、
前記論理ファイルを参照し、前記論理ブロックに属する始点のセルから終点のセルまで論理の一連の流れを構成するパスのうち論理ブロックから他の論理ブロックに渡るブロック間パスを抽出するステップと、
前記ブロック間パスの各々についてそのパスの目標ディレイ値のうち、ブロック間ネットの最大のディレイ予算値を算出するステップと、
ブロック間ネットに使用するリピータの種類、配線層、配線幅の組合せをブロック間ネットルールとする場合に、前記ディレイ予算値に対応するブロック間の最大配線長制限値が定まり、かつブロック間配線長に応じて複数のブロック間ネットルールのうちの１つのルールが一義に定まり、ブロック間配線長に対応した評価ディレイ値が一義に定まる評価関数を用いて、前記論理ブロックの移動を試行することにより前記論理ブロックの配置を自動で最適化するステップと、
設定した前記論理ブロックの配置の情報と、ブロック間配線長によって定まった各ブロック間ネットに適用する前記ブロック間ネットルールの情報とをファイルに出力するステップとを有することを特徴とする半導体集積回路のフロアプラン方法。
【請求項２】
請求項１に記載の半導体集積回路のフロアプラン方法において、論理ブロックの配置をグラフィック表示する際に、ブロック間ネットルールに応じて色を変えてブロック間ネットを表示すること、或いは配線長制限値を守れないブロック間ネットおよび関連する論理ブロックをハイライト表示すること、或いはブロック間ネットの配線長制限値の範囲を円、ひし形、矩形のいずれかで表示すること、或いは任意の論理ブロックが選択されたときに当該ブロックに接続している全てのブロック間ネットの配線長制限値の範囲を円、ひし形、矩形のいずれかで表示することを特徴とした半導体集積回路のフロアプラン方法。
【請求項３】
請求項１に記載の半導体集積回路のフロアプラン方法において、論理ブロックの配置をグラフィック上で移動する際に、ブロック間ネットの配線長が制限値を越えたとき当該ネットをリアルタイムにハイライト表示すること、或いは論理ブロックを移動する際にブロック間ネットの配線長が制限値に達した場合、当該ネットにつながる他の論理ブロックがいっしょに移動して、常にブロック間ネットの配線長が制限値以内であることを維持することを特徴とした半導体集積回路のフロアプラン方法。
【請求項４】
請求項１に記載の半導体集積回路のフロアプラン方法において、論理ブロックの配置位置からブロック間ネットの配線長を算出して、全てのブロック間ネット、或いはブロック間ネットルールごとの配線長分布をグラフィック表示し、配線長分布内の任意のデータが選択されたとき関連するフロアプランの配置図内のブロック間ネットをハイライト表示する、或いはブロック間ネットの配線長の制限値と実績値を同時に表示することを特徴とした半導体集積回路のフロアプラン方法。
【請求項５】
請求項１に記載の半導体集積回路のフロアプラン方法において、論理ブロックの配置位置からブロック間ネットの配線長を算出して、算出されたブロック間ネットの配線長とディレイ特性から当該ブロック間ネットのディレイ値を算出して、全てのブロック間ネット、或いはブロック間ネットルールごとのブロック間ディレイ分布をグラフィック表示し、ブロック間ディレイ分布内の任意のデータが選択されたとき関連するフロアプランの配置図内のブロック間ネットをハイライト表示する、或いはブロック間ディレイの予算値と実績値を同時に表示することを特徴とした半導体集積回路のフロアプラン方法。
【請求項６】
複数の論理ブロックに分割して設計された半導体集積回路の論理情報が格納される論理ファイルの記憶装置と、プログラムが格納されるメモリと、ＣＰＵとを有する計算機システムであって、前記プログラムを前記ＣＰＵによって実行することによって前記半導体集積回路上に前記論理ブロックを配置する計算機システムにおいて、前記プログラムとして、
前記論理ファイルを参照し、前記論理ブロックに属する始点のセルから終点のセルまで論理の一連の流れを構成するパスのうち論理ブロックから他の論理ブロックに渡るブロック間パスを抽出するブロック間パス抽出部と、
前記ブロック間パスの各々についてそのパスの目標ディレイ値のうち、ブロック間ネットの最大のディレイ予算値を算出するブロック間ネットディレイ予算値算出部と、
ブロック間ネットに使用するリピータの種類、配線層、配線幅の組合せをブロック間ネットルールとする場合に、前記ディレイ予算値に対応するブロック間の最大配線長制限値が定まり、かつブロック間配線長に応じて複数のブロック間ネットルールのうちの１つのルールが一義に定まり、ブロック間配線長に対応した評価ディレイ値が一義に定まる評価関数を設定するブロック間ネット評価関数設定部と、
前記評価関数を用いて、前記論理ブロックの移動を試行することにより前記論理ブロックの配置を自動で最適化する論理ブロック配置部と、
設定した前記論理ブロックの配置の情報と、ブロック間配線長によって定まった各ブロック間ネットに適用する前記ブロック間ネットルールの情報とをファイルに出力するデータ出力処理部とを有することを特徴とする計算機システム。
【請求項７】
請求項６に記載の計算機システムにおいて、論理ブロックの配置をグラフィック表示する際に、ブロック間ネットルールに応じて色を変えてブロック間ネットを表示する手段、或いは配線長制限値を守れないブロック間ネットおよび関連する論理ブロックをハイライト表示する手段、或いはブロック間ネットの配線長制限値の範囲を円、ひし形、矩形のいずれかで表示する手段、或いは任意の論理ブロックが選択されたときに当該ブロックに接続している全てのブロック間ネットの配線長制限値の範囲を円、ひし形、矩形のいずれかで表示する手段を有することを特徴とした計算機システム。
【請求項８】
請求項６に記載の計算機システムにおいて、論理ブロックの配置をグラフィック上で移動する際に、ブロック間ネットの配線長が制限値を越えたとき当該ネットをリアルタイムにハイライト表示する手段、或いは論理ブロックを移動する際にブロック間ネットの配線長が制限値に達した場合、当該ネットにつながる他の論理ブロックがいっしょに移動して、常にブロック間ネットの配線長が制限値以内であることを維持する手段を有することを特徴とした計算機システム。
【請求項９】
請求項６に記載の計算機システムにおいて、論理ブロックの配置位置からブロック間ネットの配線長を算出して、全てのブロック間ネット、或いはブロック間ネットルールごとの配線長分布をグラフィック表示し、配線長分布内の任意のデータが選択されたとき関連するフロアプランの配置図内のブロック間ネットをハイライト表示する手段、或いはブロック間ネットの配線長の制限値と実績値を同時に表示する手段を有することを特徴とした計算機システム。
【請求項１０】
請求項６に記載の計算機システムにおいて、論理ブロックの配置位置からブロック間ネットの配線長を算出して、算出されたブロック間ネットの配線長とディレイ特性から当該ブロック間ネットのディレイ値を算出して、全てのブロック間ネット、或いはブロック間ネットルールごとのブロック間ディレイ分布をグラフィック表示し、ブロック間ディレイ分布内の任意のデータが選択されたとき関連するフロアプランの配置図内のブロック間ネットをハイライト表示する手段、或いはブロック間ディレイの予算値と実績値を同時に表示する手段を有することを特徴とした計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のレイアウト方法に係り、特に多数の論理ブロックを有する半導体集積回路のフロアプラン方法に関する。
【背景技術】
【０００２】
近年の大規模、高性能ＬＳＩ設計において論理ブロック（以下、ブロックとする）の配置位置を決めるフロアプランは重要である。その理由として特開２００３−２４２１９０号公報（特許文献１）で述べられているように設計の上流工程よりディレイ設計を行うことにより、ディレイの早期収束、設計期間の短縮を実現できる。さらには、ブロック間ネットの配線性等のレイアウトを考慮してフロアプランを行うことにより実装設計の早期収束も実現できる。
【０００３】
フロアプランは、机上またはグラフィック・ユーザ・インターフェース（以下、ＧＵＩとする）を用いて人手で設計されてきた。例えば、特開２００２−７４９８号公報（特許文献２）に記載された技術が知られる。しかし、ＬＳＩの大規模化に伴いブロック数が増大して、短期間で人手による最適なフロアプラン設計は難しくなってきた。そこで、自動化したフロアプラン技術が開発され用いられるようになった。例えば、特開平６−２４４２８０号公報（特許文献３）に記載された技術が知られる。
【０００４】
また、論理、フロアプラン等の設計情報を上流工程で評価して、その結果を設計にフィードバックすることにより、早期に問題点を洗い出し後戻りの少ない設計を実現する手法がある。例えば、特開２００３−２８１２１５号公報（特許文献４）に記載された技術が知られる。
【０００５】
【特許文献１】特開２００３−２４２１９０号公報
【特許文献２】特開２００２−７４９８号公報
【特許文献３】特開平６−２４４２８０号公報
【特許文献４】特開２００３−２８１２１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献３に記載された技術は、ブロック間ネットの総配線長を短くすることによりブロック間ディレイを改善しようとしている。この技術は初期のフロアプラン作成には適している。しかし、ディレイに余裕のあるパスの配線長を多少犠牲にしてでも、ディレイの厳しいパスを積極的に改善するといった取り組みはないため、目標ディレイを満足していない（以下、ディレイ不良）パスが残り、人手によるフロアプラン修正、または後工程（例えば、配置配線）でのディレイ対策が必要となり、設計期間の遅延につながる。
【０００７】
また、ネットのディレイ値はネットに挿入するリピータ種と使用する配線種（配線層、配線幅）の組み合わせにより、同じ配線長でも値が異なる。上層、幅広の配線を選択するとディレイ値は良くなる傾向にあるが、これを多用すると配線性を損なう。このようにフロアプランを考える際はブロックの配置とブロック間ネットに適用する物理的な配線種（ブロック間ネットルール）を同時に考える必要がある。
【０００８】
本発明は、上記従来技術の問題点を解決して、ディレイおよびレイアウトを考慮したフロアプランを短期間で設計するフロアプラン技術を提供することにある。
【課題を解決するための手段】
【０００９】
本発明は、半導体集積回路の設計の際に、ブロック間ネットのディレイ予算値を算出し、その予算値とブロック間ネットルールのディレイ特性から、各ブロック間ネットのディレイ予算値を守れる最大配線長を求め、各ブロック間ネットルールのディレイ特性と最大配線長を反映した評価関数を設定し、この評価関数を用いて自動でフロアプランを行うことにより達成される。
【発明の効果】
【００１０】
本発明によれば、ディレイおよびレイアウトを考慮したフロアプランを短期間で設計することが可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施形態について図面を用いて詳細に説明する。
【００１２】
図１は、実施形態の計算機の構成を示す図である。計算機は、計算機本体１０を有し、この計算機本体１０には、記憶装置、入力装置２２および表示装置２３が接続される。計算機本体１０は、ＣＰＵとメモリを有する。メモリは、データ入力処理部１１、ブロック間パス抽出部１２、ブロック間ネットディレイ予算値算出部１３、ブロック間ネット評価関数設定部１４、論理ブロック配置部１５、ＧＵＩ表示部１６およびデータ出力処理部１７の各プログラムを格納する。これらのプログラムは、ＣＰＵによって実行される。記憶装置は、論理ファイル１８、ライブラリ１９、フロアプラン情報２０およびレイアウト指示情報２１を格納する。
【００１３】
半導体チップは、複数のブロックから構成される。各ブロックにはブロック名称が付与されている。ここでブロックは、あるまとまった機能を実現するための論理回路又は記憶回路の集まりである。各ブロックは、複数のセルから構成されており、セルはアンド回路、オア回路、加算器、フリップフロップなど論理回路又は記憶回路の基本単位である。本発明のフロアプランは、半導体チップ上に各ブロックを配置することをいう。
【００１４】
論理ファイル１８は、各ブロックに属する各セルについて、セルの名称、セルの種別、そのセルが有する各ピンの名称、各ピンに接続されるネットの名称を格納する。ここでネットは、複数のセルのピンを接続する情報である。
【００１５】
ライブラリ１９は、各セル種別ごとのセルサイズ、端子位置、ディレイ値情報等を格納する。またライブラリ１９は、マシンサイクルの設計値を格納する。
【００１６】
フロアプラン情報２０は、チップ上での各ブロックの配置位置、領域の情報を格納する。レイアウト指示情報２１は、後述するように、各ブロック間ネットに適用されるルールを指示する情報を格納する。
【実施例１】
【００１７】
図２は、計算機が実行する実施例１のフロアプラン作成の処理手順を示すフローチャートである。データ入力処理部１１は、論理ファイル１８およびライブラリ１９から情報を入力する（ステップ１０１）。またフロアプラン情報２０からすでに配置の定まっているブロックについての位置情報を入力する。
【００１８】
次にブロック間パス抽出部１２は、読み込んだ論理ファイル１８から、フロアプランの対象となるブロック間パスを抽出する（ステップ１０２）。
【００１９】
始点と終点のセルが決まっている論理の一連の流れをパスと呼ぶ。図３にパスの例を示す。図３に示すように、始終点のフリップフロップ２０１，２０５と、論理２０２，２０４が属するブロックが２つ以上ある場合、このようなパスをブロック間パスとする。ここで、異なったブロック間をつなぐネットをブロック間ネット２０３と呼ぶ。処理ステップ１０２で、ブロック間パス抽出部１２は、ブロック間ネットに着目し、入力した論理ファイル１８の論理情報をトレースしてブロック間パスを抽出する。
【００２０】
次にブロック間ネットディレイ予算値算出部１３は、ステップ１０２で抽出したブロック間パスを構成する各ブロック間ネットについて、目標マシンサイクルとブロック内のディレイより、ブロック間ディレイの予算値を算出する（ステップ１０３）。
【００２１】
図４（ａ）は、論理２０２，２０４をセル３０１のレベルで記述した詳細なブロック間パスの一例である。ブロック間パスのディレイＤはブロック内ディレイとブロック間ディレイから構成される。図４（ａ）に示すブロック間パスの場合、ディレイＤは、ブロックＡ，Ｂ内それぞれのブロック内ディレイＤａ，Ｄｂ、ブロックＡとＢの間のブロック間ディレイＤａｂから構成される。つまりディレイＤは式１で与えられる。
【００２２】
ブロック間パスディレイ（Ｄ）＝ブロック内ディレイ＋ブロック間ディレイ
＝（Ｄａ＋Ｄｂ）＋Ｄａｂ          （式１）
式１のブロック間パスディレイ（Ｄ）が目標マシンサイクル（ＭＣ）を満足するようなフロアプランを作成するために、ブロック間ディレイの予算値（Ｄａｂ）を式２にて求める。
【００２３】
ブロック間ディレイ予算値    ＝目標マシンサイクル−ブロック内ディレイ
＝ＭＣ−（Ｄａ＋Ｄｂ）            （式２）
式２において、ブロック内ディレイＤａ，Ｄｂの計算はいくつかの方法がある。例えば、論理２０２，２０４を構成する各セルのセル種が決定されていれば、ライブラリ１９に設定されているディレイ情報を用いて正確にブロック内ディレイ値を計算することができる。また論理段数とセル単位のディレイ値を用いてブロック内ディレイ値を算出する方法もある。例えば、論理段数がＮ、セル単位ディレイ値（論理１段あたりのディレイ予算値）がＭの場合、そのブロック内ディレイ値はＮ×Ｍによって容易に得られる。
【００２４】
ここで図４（ｂ）に示すように、ブロック間パス内に異なったブロック間をつなぐ複数のブロック間ネットが存在する場合は、ブロック間ディレイ予算値をブロック間ネットの数で等分割する（図４（ｂ）の場合、２等分割する）か、或はそれぞれのブロック間のネット数Ｎ，Ｍに応じて配分する（図４（ｂ）の場合、Ｎ対Ｍに分配する）などして割り振る。また、あるネットに対してすでにディレイ予算値が設定されている場合は、複数のディレイ予算値の中でよりディレイが厳しい値を当該ネットのディレイ予算値として設定する。
【００２５】
次にブロック間ネット評価関数設定部１４は、ステップ１０３で求めたブロック間ディレイ予算値とブロック間ネットルールを用いて、各ブロック間ネットの評価関数を設定する（ステップ１０４）。
【００２６】
初めに、図５を用いてブロック間ネットルールについて説明する。ブロック間ネットに対して使用するリピータの種類、配線層、配線幅の組み合わせにより、ディレイの特性が異なる。図５（ａ）は、３つの異なったブロック間ネットルールについて、配線長とディレイ値の関係を示すディレイ特性のグラフである。図で横軸が配線長、縦軸がディレイ値を示している。例えば、図５（ｂ）に示すように、ルール１が適用されるブロック間ネット４０８は、上層、通常幅の配線を用いてリピータ挿入のない場合である。ルール２が適用されるブロック間ネット４０９は、上層、３倍幅の配線を用いて一定の間隔で通常リピータを挿入した場合である。ルール３が適用されるブロック間ネット４１０は、上層、３倍幅の配線を用いて一定の間隔で高倍力リピータを挿入した場合である。ルール３は、ルール１と比べて配線長が長い場合にディレイは小さいが、３倍幅の配線および高倍力リピータを使用するためレイアウトへのインパクトが大きい。従ってチップ全体のバランスおよびディレイを考慮してブロック間ネットルールを使い分ける必要がある。
【００２７】
次にステップ１０３で求めたブロック間ディレイ予算値とブロック間ネットルールを用いて、各ブロック間ネットに評価関数を設定する手法を説明する。
【００２８】
図４（ａ）のブロック間パスにおいて、ステップ１０３により求めたブロック間ネットのディレイ予算値をＤａｂとする。図５において、このディレイ予算値Ｄａｂを達成するにはそれぞれのブロック間ネットルールを用いた場合、ブロック間ネットの配線長をルール１ではＬ１、ルール２ではＬ２、ルール３ではＬ３以下にする必要がある。配線長に応じて使用するブロック間ネットルールを使い分けるようにブロック間ネットの評価関数を設定する。
【００２９】
図６は、ブロック間ネットの評価関数の一例を説明する図である。ブロック間ネットの配線長（Ｌ）がＬ１以下の場合はルール１のブロック間ネットルールを用い、配線長がＬ１より大きくＬ２以下の場合はルール２、Ｌ２より大きい場合はルール３のブロック間ネットルールをそれぞれ用いることとする。配線長を評価する関数はそれぞれのブロック間ネットルールのディレイ特性を反映したものとする。つまり、配線長ＬがＬ１以下の場合はルール１のディレイ特性グラフを評価関数に用いる（式３）。また、ブロック間ネットの配線長（Ｌ）がＬ１より大きくＬ２以下の場合はルール２の特性グラフを評価関数に用いる。ここで、Ｌ＝Ｌ１の場合、ルール１およびルール２のどちらのルールを使用してもディレイ予算を満足する。しかし、ルール２は幅広の配線およびリピータを使用するためレイアウトへのインパクトがある。そこで、ディレイ予算を満足してかつレイアウトへのインパクトが小さいルール１を採用するように、図６のＢ点とＣ点のディレイ差に応じたペナルティを持たせてディレイが小さすぎるルール２の使用を抑えることとし、Ｌ１ ＜ Ｌ ≦ Ｌ２間の評価関数Ｆ（Ｌ）を式４とした。同様に、Ｌ２ ＜ Ｌ ≦ Ｌ３の評価関数Ｆ（Ｌ）を式５とした。最速のルール３を用いた場合のブロック間ネットの配線長Ｌ３はディレイ予算値Ｄａｂを達成するために最低限達成すべき当該ブロック間ネットの配線長制限値である。そこで、ブロック間ネット長がＬ３を超えることがないような評価関数を設定する必要がある。この例では式６のように設定した。
【００３０】
Ｆ（Ｌ）＝ａ１×Ｌ＋ｂ１（Ｌ≦Ｌ１）                （式３）
Ｆ（Ｌ）＝ａ２×Ｌ＋ｂ２（Ｌ１＜Ｌ≦Ｌ２）          （式４）
Ｆ（Ｌ）＝ａ３×Ｌ＋ｂ３（Ｌ２＜Ｌ≦Ｌ３）          （式５）
Ｆ（Ｌ）＝∞          （Ｌ＞Ｌ３）                  （式６）
このように、各ブロック間ネットに対してブロック間ネットのディレイ予算値と配線長に応じた評価関数を設定する（図７）。この評価関数は、配線長（Ｌ）に関する１価関数となる。ここで、式３から式５までの定数ａ１、ａ２、ａ３は、各々ルール１、ルール２、ルール３のディレイ特性が示す直線の傾きを示す。
【００３１】
ブロック間ネットには、そのブロック間ディレイ予算値に応じた配線長制限値（Ｌ３）が設定される。本実施例の評価関数は、ブロック間配線長（Ｌ）に応じてルールが一義に決まり、評価値Ｆ（Ｌ）が算出される。
【００３２】
図７において、横軸方向のブロック間配線長（Ｌ）がＬ３以下、または、縦軸方向の評価ディレイ値がＦ（Ｌ３）以下であればブロック間ディレイ予算値を満足することが保証される。さらに、ブロック間配線長がＬ３より小さくなるにつれて、レイアウトへのインパクトが小さくなるので評価関数Ｆ（Ｌ）も小さくなる。つまり、この評価関数の評価値Ｆ（Ｌ）を小さくすることがディレイおよびレイアウトを考慮したよいブロック配置ということになる。
【００３３】
ステップ１０３で求めたブロック間ディレイ値は、ブロック間ネットごとに異なるため、ステップ１０４で設定される評価関数は、ブロック間ネットごとに設定される。
【００３４】
次にブロック間ネット評価関数設定部１４は、ステップ１０２、１０３、１０４の処理を全てのブロック間ネットについて実行したか否かを判断する（ステップ１０５）。まだ実行していないブロック間ネットがあれば、処理はステップ１０２に戻り、全ブロック間パスについて実行済みであればステップ１０６に進む。
【００３５】
次に論理ブロック配置部１５は、ステップ１０４で設定した各ブロック間ネットの評価関数を用いて、ブロックの配置（フロアプラン）を自動で行う（ステップ１０６）。
【００３６】
論理ブロック配置部１５は、できるだけ各ブロック間ネットの評価関数Ｆ（Ｌ）を小さくするように、ブロックの移動を試行して各ブロックを配置する。言い換えれば、論理ブロック配置部１５は、目標ディレイ値を満足しないブロック間ネットの数が最小となるように、かつレイアウトへのインパクトが小さくなるように各ブロックの配置を最適化する。例えば、ある２つのブロックを選択し、それらの配置位置を入れ替えて各ブロック間ネットの配線長の合計が短くなる配置を選択するペア交換法を用いることができる。本発明の場合には、配線長の合計によってブロックの配置を評価する代わりに、評価関数Ｆ（Ｌ）を用いて評価する。すなわち論理ブロック配置部１５は、２つのブロックの配置を入れ替える前と後で、これらブロックの配置に関係するすべてのブロック間ネットの評価値Ｆ（Ｌ）の合計（ΣＦ（Ｌ））を計算し、この合計値の小さい方の配置を採用する。各ブロック間ネットの評価値Ｆ（Ｌ）は、図７に示すように、配線長Ｌによって決定される。
【００３７】
このようにしてブロックの配置を決定する。全てのブロックの配置が決まれば、各ブロック間ネットの配線長も決まるので、自動的に当該ブロック間ネットに適用する最適なブロック間ネットルールも決定される。
【００３８】
ＧＵＩ表示部１６は、ステップ１０６で決定したブロックの配置情報に基づいてブロックのレイアウト図を作成し、表示装置２３上に表示する。
【００３９】
次にデータ出力処理部１７は、フロアプラン情報２０にブロックの配置情報を出力し、レイアウト指示情報２１に各ブロック間ネットに適用するブロック間ネットルールを出力する（ステップ１０７）。
【００４０】
このレイアウト指示情報を下位工程の自動配置配線に渡して、この情報をもとにレイアウトすることにより、後工程でのレイアウト設計の繰り返し処理をなくすことができる。
【００４１】
以上のように、各ブロック間ネットにディレイ予算値に応じた評価関数を設定し、これを用いてフロアプランを行うことにより、短期間でのディレイおよびレイアウトを考慮したフロアプランを実現することが可能となる。
【実施例２】
【００４２】
図８を用いてフロアプランの修正を行う実施例２について説明する。図８（ａ）は、ブロックの配置図の例である。ここでは、ブロック７０１を円で、ブロック間ネット７０２を線で表現している。各円の大きさはブロック内の論理規模の大きさを表している。ＧＵＩ表示部１６は、ブロック間ネットを実施例１で算出されたブロック間ネットルールの種類に応じて色分けして表示する。ブロック間ネットの表示方法は、全てのネットを同時に表示する方法、あるブロック間ネットルールを適用するネットのみを表示する方法、任意のブロックにつながるブロック間ネットのみを表示する方法が選択できる。この機能を用いることにより、ユーザは、どの箇所にどのブロック間ネットルールが使用されているかを容易に知ることができ、リピータの集中や配線の混雑が判断できる。
【００４３】
また、実施例１で求めたブロック間ネットの配線長制限値を越えたブロック間ネットのみを表示することにより、ユーザは、どのブロック間ネットが配線長制限値に違反しているのかを瞬時に見つけることができる。
【００４４】
図８（ｂ）は、２つのブロック（７０３、７０４）、これらをつなぐブロック間ネット７０５、およびブロック間ネット７０５の配線長制限値がとり得る範囲をひし形７０６で示した例である。なおひし形の代わりに円又は矩形によってその範囲を表示してもよい。ただし配線方向は水平方向と垂直方向の２方向のみを考慮している。同図の例において、ブロック間ネット７０５は配線長制限値７０６を超えている。この場合、ひし形の配線長制限値７０６をガイドラインにしてブロック間ネット７０５がひし形の配線長制限値７０６内に収まるようにブロック７０３、またはブロック７０４を移動することにより、容易にディレイを満足するフロアプランの修正が可能となる。
【００４５】
図８（ｃ）は複数のブロックと結線関係を持つブロックの配線長制限違反を対策する例を説明する図である。ブロックＡは、ブロックＢ、ブロックＣ、ブロックＤとつながっている。ブロックＡと他のブロック間ネットの配線長制限値を、各々７１１、７１２、７１３で示す。この場合、ブロックＡＤ間のみが配線長制限値７１３を満足している。全ての配線長制限値を満足するフロアプランを実現するためには、３つの配線長制限値であるひし形の交差領域７１４内にブロックＡを配置すればよい。このように、ブロック間ネットの配線長制限値をひし形で表示し、かつすべての配線長制限値を満足する領域を表示することにより、フロアプランの修正を容易に行うことができる。
【００４６】
図９を用いて配線長制限値違反を対策するフロアプラン修正方法の例を説明する。図９（ａ）に示すブロックの配置例では、ブロックＡＣ間のブロック間ネット８０５が配線長制限値８０７を超えている。そこで、ブロックＡを移動することにより、配線長制限を満足する場合を考える。図９（ｂ）に示すようにブロックＡをブロックＣの方向に移動させると、ブロックＡＢ間のブロック間ネット８０４が伸びる。ユーザが入力装置２２を介してブロックＡをクリックして、ブロックＣの方向にドラッグすると、ＧＵＩ表示部１６は、ブロックＡを移動させながら表示させる。そこで、ＧＵＩ表示部１６は、ブロックＡの移動の途中でブロック間ネット８０４の配線長が当該ネットの配線長制限値８０６を超えた場合は当該ネットを瞬時にハイライト表示する。または、図９（ｃ）に示すように、ブロックＡＢ間のブロック間ネット８０４が当該ネットの配線長制限値８０６に達した場合、ＧＵＩ表示部１６は、ブロックＢもブロックＡといっしょに配線長制限値８０６を満足しながら移動させる。ブロックＡがブロックＡＣ間の配線長制限値８０７に達した位置が、それぞれの配線長制限値を満足する配置位置となる。
【００４７】
上記の機能により、フロアプラン修正の繰り返し作業を削減することができる。
【実施例３】
【００４８】
図１０を用いてフロアプランの解析を行う実施例３について説明する。図１０（ａ）はブロックの配置図の例である。ここでは、ブロック９０１を円で表現している。各円の大きさはブロック内の論理規模の大きさを表している。論理ブロック配置部１５は、実施例１のフロアプラン手法により得られたブロックの配置位置より各ブロック間ネット９０２の配線長を計算する。その計算結果をもとに、論理ブロック配置部１５は、図１０（ｂ）に示すようにＸ軸をブロック間ネットの配線長、Ｙ軸をブロック間ネット数とした配線長分布を作成し、ＧＵＩ表示部１６を介して表示する。
【００４９】
論理ブロック配置部１５は、メモリ中に各ブロックの名称、そのブロックと他のブロックとの間のブロック間ネットの名称、そのブロック間ネットの実配線長および配線長制限値の情報を保存する。論理ブロック配置部１５は、この情報に基づいて図１０（ａ）に示す配線長分布のグラフを作成し、ＧＵＩ表示部１６がこのグラフを表示装置２３に表示する。また論理ブロック配置部１５は、上記の情報を参照し、各配線長（の範囲）についてのブロック間ネット数を計数して図１０（ｂ）に示すグラフを作成し、ＧＵＩ表示部１６がこのグラフを表示装置２３に表示する。また論理ブロック配置部１５は、各配線長（の範囲）とブロック間ネット名称との対応関係を示す情報を作成してメモリに保存する。ユーザが入力装置２２を介して図１０（ｂ）のグラフのいずれかの配線長又はその度数を選択すると、論理ブロック配置部１５は、上記の情報を参照し、対応する少なくとも１つのブロック間ネット名称を特定し、ＧＵＩ表示部１６を介して特定されたブロック間ネット９０２をハイライト表示する。
【００５０】
図１０（ｃ）は、Ｘ軸をブロック間ネットの配線長制限値、Ｙ軸を実際のブロック間ネットの配線長としたブロック間ネットの配線長相関図である。同図の４５度のライン９０４上は制限値と実績値が一致している点である。つまり、このライン９０４の上側にある点９０５は制限値を越えているネットである、このライン９０４の下側にある点９０６は制限値を満足している、または余裕のあるブロック間ネットである。
【００５１】
論理ブロック配置部１５は、上記の各ブロック間ネットに対応する配線長と配線長制限値の情報を参照して図１０（ｃ）に示すグラフを作成し、ＧＵＩ表示部１６がこのグラフを表示装置２３に表示する。図１０（ｃ）の各点は少なくとも１つのブロック間ネットに関する配線長と配線長制限値との関係を示している。ユーザが入力装置２２を介して図１０（ｃ）のグラフのいずれかの点を選択すると、論理ブロック配置部１５は、上記の情報を参照し、選択されたブロック間ネットを特定し、図１０（ａ）の対応するブロック間ネット９０２をハイライト表示する。また上記の配線長とブロック間ネット名称との対応関係を示す情報を参照して図１０（ｂ）の対応する配線長の度数をハイライト表示する。
【００５２】
この機能を用いることにより、配線長の長いブロック間ネットを瞬時に見つけることができ、当該ブロック間ネットと接続するブロックの配置を人手により修正して、その後自動でブロックの配置処理を実行することにより、フロアプランの解析および修正を容易にすることが可能となる。
【００５３】
ブロック間ネットの配線長からブロック間ネットのディレイ値を算出して、上記と同様に図１０（ｂ）のＸ軸をディレイ値としたグラフを表示すること、および図１０（ｃ）のＸ軸をディレイ予算値、Ｙ軸をディレイ値としたグラフを表示することによりディレイ値とブロックの配置結果に着目した手法が可能である。
【図面の簡単な説明】
【００５４】
【図１】実施形態の計算機の構成を示す図である。
【図２】実施形態のフロアプランの処理手順を示すフローチャートである。
【図３】ブロック間パスを説明する図である。
【図４】ブロック間パスディレイを説明する図である。
【図５】ブロック間ネットのディレイ予算値とブロック間ネットルールの関係を説明する図である。
【図６】評価関数を説明する図である。
【図７】評価関数の例を示す図である。
【図８】配線長制限値とブロックの位置を説明する図である。
【図９】配線長制限値とブロック移動の関係を説明する図である。
【図１０】ブロック間ネットの配線長分布表示の例、および配線長制限値と実配線長の相関の例を示す図である。
【符号の説明】
【００５５】
１２…ブロック間パス抽出部、１３…ブロック間ネットディレイ予算値算出部、１４…ブロック間ネット評価関数設定部、１５…論理ブロック配置部、１８…論理ファイル、１９…ライブラリ、２０…フロアプラン情報、２１…レイアウト指示情報
【図１】
2006190062.tif 000003
【図２】
2006190062.tif 000004
【図３】
2006190062.tif 000005
【図４】
2006190062.tif 000006
【図５】
2006190062.tif 000007
【図６】
2006190062.tif 000008
【図７】
2006190062.tif 000009
【図８】
2006190062.tif 000010
【図９】
2006190062.tif 000011
【図１０】
2006190062.tif 000012