説明

フロアプラン作成情報生成方法、フロアプラン作成情報生成プログラム、フロアプラン作成情報生成装置、フロアプラン最適化方法、フロアプラン最適化プログラム及びフロアプラン最適化装置。

【課題】フロアプラン設計におけるイタレーションを防ぎ、設計期間を短縮する。
【解決手段】複数の回路モジュールの接続情報を含むネットリストと、前記複数の回路モジュールにグループを設定するためのグループ設定情報と、を記憶部に記憶し、ネットリスト及びグループ設定情報に基づき、複数の回路モジュールにグループを設定し(S21)、設定されたグループ間におけるタイミング制約を満たす距離を算出し(S23)、算出されたグループ間の距離を含み、フロアプランを作成するためのフロアプラン作成情報を生成する(S25)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フロアプラン作成情報生成方法、フロアプラン作成情報生成プログラム、フロアプラン作成情報生成装置、フロアプラン最適化方法、フロアプラン最適化プログラム及びフロアプラン最適化装置に関し、特に、回路モジュールを含む複数のグループに基づきフロアプランを作成するためのフロアプラン作成情報生成方法、フロアプラン作成情報生成プログラム、フロアプラン作成情報生成装置、フロアプラン最適化方法、フロアプラン最適化プログラム及びフロアプラン最適化装置に関する。
【背景技術】
【0002】
近年、半導体集積回路(LSI:Large Scale Integration)の大規模化が進み、さらに、高い周波数による動作など高性能化も要求されている。このため、半導体集積回路の設計の難易度が高くなり、設計期間がますます長くなる傾向にある。一方、半導体集積回路の製品要求仕様確定から製品出荷までの顧客に要求される期間は、より短くなる傾向にあるため、設計期間の短縮が強く望まれている。
【0003】
半導体集積回路の設計では、回路設計工程において、個々の機能モジュール(論理モジュールや回路モジュールともいう)が設計され、その後、レイアウト設計工程において、機能モジュールの配置を決定するフロアプランを行い、フロアプランに従って機能モジュールに含まれる回路の配置配線が行われる。
【0004】
半導体集積回路のフロアプランを行う従来技術として、例えば、特許文献1が知られている。
【0005】
図18は、特許文献1に記載された従来のフロアプラン作成装置の構成を示している。図に示されるように、従来のフロアプラン作成装置930は、フロアプランを作成するフロアプラン作成部921、作成されたフロアプランを評価するフロアプラン評価部920、フロアプランの評価に基づいてフロアプランを修正するフロアプラン修正部922を有している。
【0006】
また、フロアプラン評価部920は、フロアプランから着目する要素を抽出する着目要素抽出部902、抽出された要素を個別に評価する個別評価値を算出する個別評価値算出部903、算出された個別評価値に基づき総合評価値を算出する総合評価値算出部904、個別評価値及び総合評価値を記憶する記憶部911、個別評価値及び総合評価値に基づいて修正する項目を選択する修正項目選択部912を有している。
【0007】
図19は、特許文献1に記載さえた従来のフロアプラン作成方法を示している。図に示されるように、従来のフロアプラン作成方法では、まず、フロアプラン作成部921が、フロアプランのデータを作成する(S901)。
【0008】
次いで、着目要素抽出部902は、作成されたフロアプランのデータから、配置情報と、接続情報と、グループ情報とを着目要素として抽出する(S902)。
【0009】
次いで、個別評価値算出部903は、抽出された着目要素に関するデータの配置情報と、接続情報と、グループ情報とをもとに、仮想線の線長、仮想線同士の交差数、論理モジュール関係、ハードマクロセル関係、及びグループ領域の面積を個別評価項目として各々の個別評価値を算出する(S903)。
【0010】
次いで、総合評価値算出部904は、算出された個別評価値である、仮想線の線長、仮想線同士の交差数、論理モジュール関係、ハードマクロセル関係、及びグループ領域の面積を加算することにより、評価対象となっているフロアプランに関する総合評価値を算出する(S904)。
【0011】
次いで、記憶部911は、S903で算出された個別評価値と、S904で算出された総合評価値をデータベースとして登録する(S905)。
【0012】
次いで、修正項目選択部912は、記憶された複数の個別評価値の中から、修正すべき一又は複数の個別評価項目を選択する(S906)。
【0013】
次いで、修正項目選択部912は、選択された個別評価項目に関してフロアプランの修正は必要か否かを判定する(S907)。判断条件として、修正の繰り返し回数の最大値や、修正作業に要する所要時間の最大値が予め設定されており、現在の繰り返し回数や所要時間が最大値に到達していなければ、フロアプランの修正が必要であると判定する。
【0014】
S907で、フロアプランの修正が必要な場合、フロアプラン修正部922は、フロアプランを修正する(S908)。
【0015】
以上のように、特許文献1では、S902においてフロアプランから複数の着目要素が抽出され、S903において複数の個別評価値が求められ、S904において総合評価値を算出する。そして、複数のフロアプランを対象としてS902〜S904を実行することによって得られた複数の総合評価値を比較することにより、複数のフロアプランを相対的に評価する。従って、フロアプランの評価のために詳細な配置配線を行うまでもなく、作成されたフロアプラン自身を総合評価値によって定量的に評価することを可能としている。
【先行技術文献】
【特許文献】
【0016】
【特許文献1】特開2009−9598号公報
【発明の概要】
【発明が解決しようとする課題】
【0017】
上記のように、特許文献1に記載された従来のフロアプラン作成方法では、フロアプランを作成し、作成したフロアプランを個別評価値及び総合評価値により評価することで、フロアプランを効率よく修正している。
【0018】
しかしながら、従来のフロアプラン作成方法では、図19の方法により、フロアプランを作成した後に、再度フロアプランの修正が必要となり、フロアプランの作成が繰り返される場合があることを、発明者は見出した。なお、フロアプラン作成工程後に、またフロアプラン作成工程に戻り、フロアプラン作成が繰り返されることをイタレーションという。
【0019】
一般的に半導体集積回路を半導体チップに配置する場合、フロアプランを作成して、自動配置ツールで仮配置後に仮配線を行った後に、タイミング検証を実施し、フロアプランにて配置した論理モジュール間のタイミングエラーが配置起因であると判明すれば、人手によりフロアプラン工程まで戻り、フロアプランを修正することが繰り返し行われている。
【0020】
すなわち、従来のフロアプラン作成方法によりフロアプランを作成したとしても、フロアプランを決定するために、フロアプランに対し仮配置及び仮配線し、タイミングを確認した場合、フロアプラン起因によりタイミングエラーとなる可能性がある。特に、図19の従来のフロアプラン作成方法では、機能モジュール間のタイミングが考慮されていないため、タイミングエラーとなる可能性がある。そうすると、フロアプランを再度修正する必要があるため、フロアプランの作成が繰り返されてしまう。
【0021】
したがって、従来のフロアプラン作成方法では、フロアプランの作成が繰り返されてイタレーションが生じ、設計期間が増加するという問題があった。
【課題を解決するための手段】
【0022】
本発明は、複数の回路モジュールにグループを設定し、設定されたグループ間におけるタイミング制約を満たす距離を算出し、算出されたグループ間の距離を含みフロアプランを作成するためのフロアプラン作成情報を生成することを主な特徴としている。
【0023】
本発明では、グループ間のタイミング制約を満たす距離に基づきフロアプランを作成するためのフロアプラン作成情報を生成するため、フロアプラン作成情報を用いてタイミングエラーの生じないフロアプランの作成が可能となり、フロアプラン設計におけるイタレーションを防ぎ、設計期間を短縮することができる。
【発明の効果】
【0024】
本発明によれば、フロアプラン設計におけるイタレーションを防ぎ、設計期間を短縮することが可能なフロアプラン作成情報生成方法、フロアプラン作成情報生成プログラム、フロアプラン作成情報生成装置、フロアプラン最適化方法、フロアプラン最適化プログラム及びフロアプラン最適化装置を提供することができる。
【図面の簡単な説明】
【0025】
【図1】本発明の実施の形態1に係るフロアプラン作成情報生成装置の機能構成を示す図である。
【図2】本発明の実施の形態1に係るフロアプラン作成情報生成装置のハードウェア構成を示す図である。
【図3】本発明の実施の形態1に係るフロアプラン作成情報生成方法の流れを示すフローチャートである。
【図4】本発明の実施の形態1に係るフロアプラン作成情報生成方法で処理されるグループ設定情報を説明するための図である。
【図5】本発明の実施の形態1に係るフロアプラン作成情報生成方法の動作を説明するための図である。
【図6】本発明の実施の形態1に係るフロアプラン作成情報生成方法の動作を説明するための図である。
【図7】本発明の実施の形態1に係るフロアプラン作成情報生成方法で処理されるフロアプラン作成情報を説明するための図である。
【図8】本発明の実施の形態2に係るフロアプラン最適化装置の機能構成を示す図である。
【図9】本発明の実施の形態2に係るフロアプラン最適化方法の流れを示すフローチャートである。
【図10】フロアプラン最適化方法の参考例の流れを示すフローチャートである。
【図11】参考例によるフロアプランの具体例1のイメージ図である。
【図12】本発明の実施の形態2によるフロアプランの具体例1のイメージ図である。
【図13】参考例によるフロアプランの具体例2のイメージ図である。
【図14】本発明の実施の形態2によるフロアプランの具体例2のイメージ図である。
【図15】本発明の実施の形態2によるフロアプランの具体例2のイメージ図である。
【図16】参考例によるフロアプランの具体例3のイメージ図である。
【図17】本発明の実施の形態2によるフロアプランの具体例3のイメージ図である。
【図18】従来のフロアプラン作成装置の機能構成を示す図である。
【図19】従来のフロアプラン作成方法の流れを示すフローチャートである。
【発明を実施するための形態】
【0026】
(本発明の実施の形態1)
以下、図面を参照して本発明の実施の形態1について説明する。
【0027】
図1は、本発明の実施の形態1に係るフロアプラン作成情報生成装置の機能構成を示している。このフロアプラン作成情報生成装置100は、階層構造を有するネットリストのグループを用いて半導体集積回路のレイアウト設計を行う場合における、フロアプラン作成工程の設計装置である。
【0028】
フロアプラン作成情報生成装置100は、入力される入力ファイル群11に基づいて、フロアプラン作成情報14やグループ配置不可情報17を出力する。
【0029】
入力ファイル群11には、グループ設定情報1、ネットリスト2、評価関数設定情報3が含まれている。ネットリスト2は、半導体集積回路に配置配線される機能モジュール(回路モジュール)についての構成や接続関係が定義された回路情報であり、ここでは特に、階層構造を有するネットリストである。グループ設定情報1は、階層構造を有するネットリスト2内の機能モジュールをグループ指定する情報である。評価関数設定情報3は、ゲート1段当りの遅延値(以下、ゲート遅延値と呼ぶ)と単位配線長に対しての遅延値(以下、距離遅延値と呼ぶ)とサイクル情報を有する情報である。
【0030】
フロアプラン作成情報生成装置100は、グループ設定部4、回路情報抽出部12、関連階層ブロック評価部8、タイミング判定処理部9、階層判定処理部15、グループ修正部10、配置不可情報作成部16を備えている。
【0031】
グループ設定部4は、入力ファイル群11のネットリスト2とグループ設定情報1を入力とし、ネットリスト2の機能モジュールにグループを設定する。ここでは、ネットリスト2の階層を選択し機能モジュール(階層ブロック)にグループを設定する。例えば、選択された階層レベルについて、階層ブロックに設定されたグループを示す情報(例えば、階層ブロック情報)が生成される。
【0032】
回路情報抽出部12及び関連階層ブロック評価部8は、設定されたグループ間におけるタイミング制約を満たす距離を算出する距離算出部である。例えば、設定されたグループを示す情報を参照し、複数の階層ブロック(機能モジュール)を接続する経路(パス)について、タイミング制約を満たす距離を算出する。
【0033】
回路情報抽出部12は、設定されたグループにおける回路の段数を算出する回路段数算出部である。例えば、設定されたグループを示す情報を参照し、複数の階層ブロック(機能モジュール)の全ての入出力経路(パス)について、遅延回路(ゲート回路)の段数(個数)である回路段数を抽出する。
【0034】
回路情報抽出部12は、階層ブロック入出力段数算出部5と、階層ブロック通過段数算出部6と、階層ブロック間接続情報抽出部7を備えている。
【0035】
階層ブロック入出力段数算出部5は、グループ設定された各階層ブロックについて、ネットリスト2より始点または終点となる順序セル(またはフリップフロップ)を含む階層ブロックで、順序セルから階層ブロックの出力端子までの論理素子段数(階層ブロック出力段数)を算出し、階層ブロックの入力端子から順序セルまでの論理素子段数(階層ブロック入力段数)を算出する。
【0036】
階層ブロック通過段数算出部6は、グループ設定された各階層ブロックについて、階層ブロックを通過する経路がある場合に、階層ブロックの入力端子から組み合わせ回路を介して当該階層ブロックの出力端子まで通過する論理素子段数(階層ブロック通過段数)を算出する。順序セルから順序セルまので経路を抽出し、階層ブロックの中を順序セルを介さずに通過する段数を算出する。
【0037】
階層ブロック間接続情報抽出部7は、グループ設定された各階層ブロックについて、階層ブロック間の論理素子段数(階層ブロック間接続情報)を算出する。順序セルから順序セルまので経路を抽出し、階層ブロックから他の階層ブロックまでの段数を算出する。
【0038】
関連階層ブロック評価部8は、回路情報抽出部12で抽出した階層ブロック出力段数、階層ブロック入力段数、階層ブロック通過段数、階層ブロック間接続情報と、入力ファイル群11の評価関数設定情報3を入力して、タイミング制約を満たす各階層ブロック間の距離を算出する。
【0039】
タイミング判定処理部9は、関連階層ブロック評価部8にて算出された距離をもとに、階層ブロック間のタイミングを満足しているかを判定する。
【0040】
階層判定処理部15は、タイミング判定処理部9にて各階層ブロック間のタイミングが満足できないと判定された場合、グループ設定情報1で指定された階層ブロックの下位階層が存在するかどうか判定を行う。
【0041】
グループ修正部10は、階層判定処理部15において最下位層ではない、すなわち、下位階層が存在すると判定された場合、グループ設定情報1に基づいて、下位階層を選択し、選択した階層で階層ブロックにグループを設定する。
【0042】
配置不可情報作成部16は、階層判定処理部15において最下位層である、すなわち、下位階層が存在しないと判定された場合、グループ配置不可情報17を出力して処理を終了する。
【0043】
フロアプラン作成情報出力部(フロアプラン作成情報生成部)13は、タイミング判定処理部9にて各階層ブロック間のタイミングを満足する場合に、グループ間の距離情報であるフロアプラン作成情報14を生成し出力する。
【0044】
例えば、フロアプラン作成情報出力部13は、フロアプラン作成情報14として、初めに、階層ブロック間のタイミングを満足する距離であって、階層ブロック内で順序セルを介さずに通過する経路における距離のうち、小さい方を優先して抽出し、次に、階層ブロック間のタイミングを満足する距離であって、階層ブロック内で順序セルを介して通過する経路における距離のうち、小さい方を優先して抽出する。
【0045】
図2は、本発明の実施の形態1に係るフロアプラン作成情報生成装置のハードウェア構成を示している。フロアプラン作成情報生成装置は、パーソナルコンピュータやワークステーションなどの情報処理装置から構成され、情報処理装置上でプログラムが実行されることにより、フロアプラン作成情報生成装置の各機能及びフロアプラン作成情報生成方法の各処理が実現される。
【0046】
フロアプラン作成情報生成装置は、制御部51、記憶部52、入力部53、出力部54を備えている。なお、制御部51、記憶部52、入力部53、出力部54は、全てを1つのハードウェア装置により構成してもよいし、複数のハードウェア装置により構成してもよい。また、ネットワーク等を介して接続してもよい。
【0047】
制御部51は、CPU(Central Processing Unit)などであり、記憶部52に記憶されたプログラムを実行して演算等を行うことにより、後述のフロアプラン作成情報生成方法が実行される。
【0048】
入力部53は、キーボードやマウスなどの入力装置である。入力ファイル群11などが入力部53から入力され、記憶部52に記憶される。出力部54は、ディスプレイ等の表示装置であり、生成されたフロアプラン作成情報14やグループ配置不可情報17等を表示する。
【0049】
記憶部52は、ハードディスクなどの記憶装置であり、フロアプラン作成情報生成方法を実行するためのフロアプラン作成情報生成プログラムや、入力ファイル群11、フロアプラン作成情報14、グループ配置不可情報17、その他、フロアプラン作成情報の生成に必要な情報が記憶される。
【0050】
次に、図3〜図7を用いて、本発明の実施の形態1に係るフロアプラン作成情報生成装置で動作するフロアプラン作成情報生成方法について説明する。
【0051】
図3のフローチャートは、フロアプラン作成情報生成方法の流れを示している。図に示されるように、フロアプラン作成情報生成方法では、まず、グループ設定部4はグループを設定し(S21)、回路情報抽出部12は、設定したグループに関する経路の回路段数を算出し(S22)、関連階層ブロック評価部8は、段数算出した結果に対し経路の遅延及びタイミング制約を満たす距離を計算し(S23)、タイミング判定処理部9は、算出した距離についてタイミングを確認する(S24)。
【0052】
S24のタイミング確認がOKの場合、フロアプラン作成情報出力部13は、フロアプラン作成情報14を生成し(S25)、処理が終了する。一方、S24のタイミング確認がNGの場合、階層判定処理部15は、階層を下位に変更できるかどうか判定する(S30)。
【0053】
S30の階層判定でOKの場合、グループ修正部10は、グループ設定を修正し(S31)、再度グループを設定する(S21)。一方、S30の階層判定でNGの場合、配置不可情報作成部16は、配置不可情報を作成し(S32)、処理が終了する。
【0054】
以下、図3の各ステップについて、さらに詳細に説明する。
【0055】
まず、図3のS21において、グループ設定部4は、ネットリスト2とグループ設定情報1に基づき、機能ブロックにグループを設定する。グループ設定部4は、グループ設定情報1から与えられる階層ブロック指定情報を読み込み、ネットリスト2内の機能モジュールとグループ設定が一致するグループ名をグループ指定する。なお、グループとは、グループ設定情報(階層ブロック指定情報)に従って設定される回路集合の単位である。ここでは、機能モジュール単位にグループ設定されて階層ブロックが構成されるため、グループ、階層ブロック及び機能モジュールは、それぞれ1対1で対応している。例えば、ある機能が指定されたグループでは、その機能を有する機能モジュールが当該グループに属することになる。
【0056】
図4(a)は、グループ設定情報1の一例である。グループ設定情報1では、図4(a)の各行が階層ブロック指定情報であり、トップレベルから階層レベル順に階層ブロック(機能モジュール)が指定されている。
【0057】
例えば、1行目の「TOP/AAA/WWW」という記述は、トップレベルの下位であるレベル1にグループAAAが属し、グループAAAの下位であるレベル2にグループWWWが属することを指定している。
【0058】
図4(b)は、図4(a)のグループ設定情報1に基づき、グループを設定した場合の階層関係を示すイメージ図である。トップレベルは、最上位の階層である。トップレベルにはトップレベルグループのみが設定され、トップレベルグループには下位の全ての機能モジュール、すなわち、グループAAA、グループBBB、グループCCCが含まれる。
【0059】
トップレベルの下位階層であるレベル1には、グループAAA、グループBBB、グループCCCが設定される。グループAAAには、下位のグループWWW、グループXXXが含まれ、グループBBBには、下位のグループYYYが含まれ、グループCCCには、下位のグループZZZが含まれる。
【0060】
レベル1の下位階層であるレベル2が、例えば、最下位の階層である。レベル2には、グループWWW、グループXXX、グループYYY、グループZZZが設定される。
【0061】
S21では、図4(b)のような階層構造において、階層を選択し、選択された階層に属する機能モジュールにグループが設定される。例えば、設定されたグループを示す情報として、選択した階層に属する階層ブロックを含む情報が生成され、この情報をもとにS22以降の処理が行われる。フロアプラン作成情報生成方法では、まず、レベル1の階層が選択され、タイミングエラーとなる場合に、次に下位のレベル2が選択される。
【0062】
次いで、図3のS22において、回路情報抽出部12は、グループ設定部4で設定された各グループについて、回路段数を算出する。ここでは、タイミング遅延の計算速度向上の為に、タイミング遅延を回路段数を用いて簡易的に数値化する。
【0063】
具体的には、階層ブロック入出力段数算出部5は、階層ブロック内の順序セルと入力端子または出力端子との間の回路段数を算出し、階層ブロック通過段数算出部6は、階層ブロックを通過する経路の回路段数を算出し、階層ブロック間接続情報抽出部7は、階層ブロック間の回路段数を算出する。順序セルは、複数のフリップフロップ(FF)を含んでおり、ここでは、フリップフロップを基準として、フリップフロップに接続される経路の回路段数を算出する。なお、フリップフロップ単位ではなくセル単位で回路段数を算出してもよい。
【0064】
階層ブロック入出力段数算出部5は、ネットリスト2を参照し、グループ設定部4で設定された各グループに対し、フリップフロップからフリップフロップが属するグループの全出力端子までの回路段数を調査する。すなわち、各グループの全てのフリップフロップについて、フリップフロップと全出力端子とを接続する経路を求め、各経路上に配置されるゲート回路の数をカウントする。
【0065】
このフリップフロップから出力端子までの段数の算出により、次の(式1)のような段数情報(出力段数情報)が生成される。
グループ [FF名][グループ名/出力端子名]=段数 ・・・(式1)
【0066】
例えば、図5(a)に示すようなグループA1の場合、FF1からOUT11までの回路段数が10であり、FF1からOUT12までの回路段数が20であるため、次の(式11)、(式12)のような段数情報となる。
グループ [FF1][グループA1/OUT11]=10 ・・・(式11)
グループ [FF1][グループA1/OUT12]=20 ・・・(式12)
【0067】
また、階層ブロック入出力段数算出部5は、ネットリスト2を参照し、グループ設定部4で設定された各グループに対し、グループの全入力端子からグループ内のフリップフロップまでの回路段数を調査する。すなわち、各グループの全てのフリップフロップについて、全入力端子とフリップフロップとを接続する経路を求め、各経路上に配置されるゲート回路の数をカウントする。
【0068】
この入力端子からフリップフロップまでの段数の算出により、次の(式2)のような段数情報(入力段数情報)が生成される。
グループ [グループ名/入力端子名][FF名]=段数 ・・・(式2)
【0069】
例えば、図5(b)に示すようなグループB1の場合、IN11からFF2までの回路段数が10であり、IN12からFF2までの回路段数が20であるため、次の(式21)、(式22)のような段数情報となる。
グループ [グループB1/IN11][FF2]=10・・・(式21)
グループ [グループB1/IN12][FF2]=20・・・(式22)
【0070】
階層ブロック通過段数算出部6は、ネットリスト2を参照し、グループ設定部4で設定された各グループに対し、グループの全入力端子及び全出力端子について、フリップフロップへの繋がりが無い場合、グループの入力端子からグループの出力端子への回路段数を調査する。すなわち、各グループについて、グループ内で全入力端子と全出力端子とを接続する経路を求め、全経路のうちグループ内のフリップフロップを経由しない経路を特定し、この経路上に配置されるゲート回路の数をカウントする。
【0071】
この入力端子から出力端子までの通過段数の算出により、次の(式3)のような段数情報(通関段数情報)が生成される。
グループ [グループ名/入力端子名][グループ名/出力端子名]=段数・・・(式3)
【0072】
例えば、図5(c)に示すようなグループC1の場合、IN21からOUT21までの回路段数が15であり、IN22からOUT22までの回路段数が25であるため、次の(式31)、(式32)のような段数情報となる。
グループ [グループC1/IN21][グループC1/OUT21]=15・・・(式31)
グループ [グループC1/IN22][グループC1/OUT22]=25・・・(式32)
【0073】
階層ブロック間接続情報抽出部7は、ネットリスト2を参照し、グループ設定部4で設定された各グループに対し、グループの全入力端子及び全出力端子について、各グループ以外を介して繋がっている部分に対し、回路段数を調査する。すなわち、各グループについて、グループ外で全入力端子と全出力端子とを接続する経路を求め、全経路のうちグループを経由しない経路を特定し、この経路上に配置されるゲート回路の数をカウントする。
【0074】
このグループ間の段数の算出により、次の(式4)のような段数情報(グループ間段数情報)が生成される。
TOP[グループ名/出力端子名][グループ名/入力端子名]=段数・・・(式4)
【0075】
例えば、図5(d)に示すようなグループA2とグループB2の場合、OUT31からIN31までの回路段数が10であり、OUT32からIN32までの回路段数が20であるため、次の(式41)、(式42)のような段数情報となる。
TOP [グループA2/OUT31][グループB2/IN31]=10・・・(式41)
TOP [グループA2/OUT32][グループB2/IN32]=20・・・(式42)
【0076】
次いで、図3のS23において、関連階層ブロック評価部8は、入力ファイル群11の評価関数設定情報3を入力して、回路情報抽出部12が算出した回路段数に基づき、タイミング遅延を算出し、タイミング制約を満たす距離を算出する。
【0077】
ここで、評価関数設定情報3は、次のようなゲート遅延値Gと、距離遅延値Tと、サイクル情報Fを有する。サイクル情報Fは、フリップフロップに供給されるクロックのサイクルであり、クロックサイクルの1周期の時間を示すサイクル時間である。サイクル情報Fは、フリップフロップ間でデータが伝達されなければならない時間であり、タイミング制約でもある。
G=ゲート1段当りの遅延値(ゲート遅延値)
T=単位配線長に対しての遅延値(距離遅延値)
F=サイクル情報
【0078】
関連階層ブロック評価部8は、ゲート遅延値G、距離遅延値T、サイクル情報F、上記(式1)〜(式4)の段数の段数を用いて遅延を計算する。すなわち、次の(式5)のように、上記(式1)〜(式4)により抽出された段数の合計した総段数D(総段数情報)を求める。
総段数D=(式1)+(式2)+(式3)+(式4) ・・・(式5)
【0079】
そして、次の(式6)のように、上記総段数Dに評価関数設定情報3のゲート遅延値Gを掛けることで、セル遅延Tc(回路遅延情報)を求める。
セル遅延Tc= D * G ・・・(式6)
【0080】
さらに、次の(式7)のように、評価関数設定情報3のサイクル情報Fから上記セル遅延Tcを引き算することで、距離遅延Tl(距離遅延情報)を求める。
距離遅延Tl= F−Tc ・・・(式7)
【0081】
さらに、次の(式8)のように、上記距離遅延Tlを評価関数設定情報3の距離遅延値Tにより割ることで、グループ間でタイミング制約を満たすために必要な距離L(距離情報)を算出する。
距離L= Tl / 距離遅延値T ・・・(式8)
【0082】
例えば、図6(a)の例で、グループA3とグループB3間の距離Lは、グループA3について上記(式1)により求めたフリップフロップから出力端子までの段数、グループB3について上記(式2)により求めた入力端子からフリップフロップまでの段数、グループA3とグループB3について上記(式4)により求めたグループ間の段数を、上記(式5)〜(式8)に代入し算出することができる。この距離Lは、タイミング制約を満たすようなフロアプランを作成するためのパラメータであり、距離L以下の距離にグループを配置してフロアプランを作成すると、フロアプランにおいてタイミング制約を満たすことが保証される。また、ここでは、距離Lは、グループの重心(中心)から他のグループの重心までの距離である。
【0083】
なお、距離Lが小さくタイミングが厳しい場合に、重心から出力端子あるいは入力端子まで離れているようであれば、グループの出力端子や入力端子の位置を重心に近づくように調整し、距離Lを小さくしてもよい。
【0084】
次いで、図3のS24において、タイミング判定処理部9は、関連階層ブロック評価部8で算出した距離L(距離情報)に基づきタイミングを確認する。
【0085】
具体的には、上記(式8)で算出した全てのグループ間の距離Lについて、フロアプランでグループ配置可能な距離であるかどうか判定し、全ての距離Lが配置可能であればタイミング制約を満たすとし、距離Lが1つでも配置不可能であればタイミング制約を満たさないとする。例えば、距離Lとフロアプランに必要な最低距離とを比較し、距離Lが最低距離よりも小さい場合は配置可能とし、距離Lが最低距離よりも大きい場合は配置不可能とする。最低距離には任意の値が設定できる。
【0086】
次いで、図3のS24でタイミング確認がOKの場合、すなわち、距離Lがグループ配置可能な距離と判断された場合、図3のS25において、フロアプラン作成情報出力部13は、フロアプラン作成情報14を生成し出力する。上記(式8)で算出した全てのグループ間の距離L(距離情報)をフロアプラン作成情報14として生成する。
【0087】
図7は、フロアプラン作成情報14の例である。フロアプラン作成情報14の各行には、グループ間の距離Lと、グループ間の経路である接続関係とが対応付けられて記載されている。例えば、図7では、1行目は、グループ1からグループ3を介しグループ2までの距離が4.1mm以下、2行目は、グループ4からグループ1までの距離が2.7mm以下である必要があることを示している。
【0088】
図3のS24でタイミング確認がNGの場合、すなわち、距離Lがグループ配置不可能な距離と判断された場合、図3のS30において、階層判定処理部15は、階層変更可能かどうか、すなわち、グループ設定の階層が最下位層であるかどうか判定を行う。現在選択されている階層のグループではタイミング制約を満たさないため、タイミング制約を満たすようにするにはグループの変更が必要である。現在の階層が、最下位層でなければ下位の階層に変更可能であり、最下位層であれば階層の変更は不可能である。
【0089】
図3のS30で階層が変更可能である場合、すなわち、最下位層では無いと判断された場合、図3のS31において、グループ修正部10は、現在の階層を下位の階層に変更しグループ設定を修正する。
【0090】
例えば、図6(a)のようにレベル1の階層でグループ間の距離Lを算出し、タイミング確認がNGの場合、図6(b)のように下位のレベル2の階層に変更しグループ間の距離Lを算出する。グループ設定の階層を下位に変更することで、対象グループの大きさが小さくなるため、距離Lが短くなり、タイミングを満足することが可能になる。
【0091】
図3のS30で階層が変更不可能である場合、すなわち、最下位層であると判断された場合、図3のS32において、配置不可情報作成部16は、グループ配置不可情報17を作成し出力する。例えば、グループ配置不可情報17は、各階層で算出したグループ間の距離Lが含まれ、タイミングエラーとなるグループ間の距離Lが含まれている。
【0092】
また、グループ配置不可情報17が出力されると、現在の条件では、タイミング制約を満たすフロアプランを作成することはできない。このため、グループ配置不可情報17に基づいて入力ファイル群11を修正してもよい。例えば、サイクル情報Fを大きくして、タイミング制約を緩くしてもよいし、タイミングエラーとなる経路について、ネットリスト2を修正してもよい。
【0093】
以上のように、本実施形態では、階層構造を有するネットリストについてグループを設定し、グループ間のタイミング制約を満たすために必要な距離を示すフロアプラン作成情報を作成する。このフロアプラン作成情報を用いてフロアプランを作成すると、フロアプランにおけるグループ間のタイミング制約を予め満たすことが可能になるため、フロアプランの修正が不要となる。したがって、フロアプラン設計のイタレーションを防ぎ、設計期間を短縮することができる。
【0094】
(本発明の実施の形態2)
以下、図面を参照して本発明の実施の形態2について説明する。本実施形態では、実施の形態1と同様にフロアプラン作成情報を生成し、さらに、フロアプラン作成情報に基づきフロアプランを作成する。
【0095】
図8は、本発明の実施の形態2に係るフロアプラン最適化装置の機能構成を示している。フロアプラン最適化装置300は、フロアプラン作成情報生成装置100とフロアプラン作成装置200とを備えている。図7の入力ファイル群11、フロアプラン作成情報生成装置100、フロアプラン作成情報14は、図1と同様の構成である。なお、フロアプラン最適化装置300のハードウェア構成は、図2と同様であり、フロアプラン最適化プログラムが図2のハードウェアにより実行されることにより、フロアプラン最適化装置の各機能及びフロアプラン最適化方法の各処理が実現される。
【0096】
フロアプラン作成装置200は、フロアプラン作成情報14に基づいてフロアプランを作成する。フロアプラン作成装置200は、フロアプラン作成部21、仮配置部22、仮配線部23、配置配線タイミング判定処理部24、フロアプラン決定部25を備えている。
【0097】
フロアプラン作成部21は、フロアプラン作成情報14を入力し、半導体チップ全体のフロアプラン(フロアプラン情報)を作成する。仮配置部22は、作成されたフロアプランに基づいて、半導体チップのレイアウト面上に各回路を仮配置する。仮配線部23は、仮配置された各回路間について仮配線を行う。例えば、仮配置部22及び仮配線部23は、自動配置配線ツール等により実現可能である。
【0098】
配置配線タイミング判定処理部24は、仮配置及び仮配線した配置配線情報について、タイミング遅延を検証し、タイミングエラーの有無を確認する。例えば、配置配線タイミング判定処理部24は、タイミング解析ツール等により実現可能である。
【0099】
フロアプラン決定部25は、タイミング確認の結果、タイミング制約を満たしている場合に、仮配置及び仮配線を行ったフロアプランを、フロアプラン情報30として出力する。
【0100】
次に、図8のフローチャートを用いて、本発明の実施の形態2に係るフロアプラン最適化装置で動作するフロアプラン最適化法について説明する。図8のS21〜S25,S30〜S32は、フロアプラン作成情報生成装置100で実行されるフロアプラン作成情報生成処理であり、図2と同様である。すなわち、フロアプラン作成情報生成装置100が、S21〜S25、S30〜S32により、フロアプラン作成情報14を生成する。その後、フロアプラン作成装置200が、S41〜S45により、フロアプラン情報30を作成する。
【0101】
フロアプラン作成装置200では、まず、フロアプラン作成部21が、S25で生成されたフロアプラン作成情報14を入力し、フロアプラン(フロアプラン情報)を作成する(S41)。すなわち、各グループを配置する距離が、フロアプラン作成情報14に含まれる距離Lよりも小さくなるように、各グループの位置を決定しフロアプランを作成する。このとき、少なくとも距離Lよりも近くにグループが配置できればよい。
【0102】
ここで、グループ間パス(経路)やグループが複数ある場合が一般的であり、フロアプラン作成情報14の距離Lは複数になるため、必要な距離Lを使いフロアプランを行うことが好ましい。
【0103】
例えば、グループ内のパスには着目せずグループ間のパスに着目して距離Lを適用する。具体的には、グループ1からグループ4へのパスが複数あった場合は、グループ間単位で必要な距離Lの値が一番小さい値を適用する。また、グループから複数のグループへ繋がりがある場合、必要な距離Lの値が最も小さい値のグループからフロアプランする事で、タイミングが一番厳しいグループ間を最優先してフロアプランする。
【0104】
また、本発明では、タイミング要素を最重要項目としてフロアプランを作成するが、仮配線の長さや仮配線の交差など他のパラメータを考慮してフロアプランを作成してもよい。また、必要な距離Lの値が大きい場合は、タイミングが厳しくないグループ間である事が、フロアプラン作成時に判断が出来る為、遠くに配置し迂回配線が発生してもタイミングに問題は発生しない。
【0105】
次いで、仮配置部22は、作成されたフロアプラン情報に基づき、半導体チップのレイアウト面において、決定されたグループの位置に機能モジュールや機能モジュールに含まれる回路を仮配置する(S42)。次いで、仮配線部23は、フロアプラン情報に基づき仮配置された機能モジュールや回路間を接続するように仮配線を行う(S43)。
【0106】
次いで、配置配線タイミング判定処理部24は、仮配置・仮配線された配置配線情報に基づきタイミング確認を行う(S44)。すなわち、配置配線された全ての回路間のパスについてタイミング制約を満たすかどうか判定する。S44において、タイミング制約を満足しない場合、タイミング制約を満たすように再度、仮配線部23により仮配線が行われる(S43)。S44において、タイミング制約を満足する場合、フロアプラン決定部25は、配置配線した情報でフロアプランを決定し、現在のフロアプラン情報30を出力する(S45)。
【0107】
ここで、本発明適用前と本発明適用後のフロアプランを比較して説明するために、本発明適用前のフロアプラン最適化方法の参考例を図10に示す。図10では、S910が図19の従来のフロアプラン作成方法と同様である。
【0108】
すなわち、参考例では、図19と同様に、フロアプランを作成し(S901)、フロアプランから着目要素を抽出し(S902)、フロアプランから個別評価値を算出し(S903)、個別評価値から総合評価値を算出し(S904)、個別評価値と総合評価値をデータベースへ登録し(S905)、個別評価値と総合評価値から修正項目を選択し(S906)、選択された修正項目についてフロアプランの修正が必要か否かを判定する(S907)。S907で、フロアプランの修正が必要な場合、フロアプランを修正する(S908)。
【0109】
S907で、フロアプランの修正が不要な場合、生成されたフロアプランに基づき仮配置を行い(S911)、仮配置された回路間について仮配線を行い(S912)、仮配置及び仮配線された回路についてタイミング確認を行う(S913)。
【0110】
S913において、タイミング確認により、タイミング制約を満足する場合には、配置配線した情報でフロアプランが決定し、フロアプラン情報が出力される(S914)。
【0111】
S913において、タイミング確認により、タイミング制約を満足しない場合には、フロアプランの変更が必要かどうか、すなわち、タイミングエラーの原因がフロアプランに起因するかどうか判定される(S915)。
【0112】
S915において、フロアプランの変更が必要ない場合には、再度、仮配線し(S912)、タイミングが確認される(S913)。
【0113】
S915において、フロアプランの変更が必要である場合には、フロアプラン作成処理に戻り、フロアプランの修正(S908)が行われる。フロアプラン修正後、タイミング確認によりタイミングエラーが解消するまで、フロアプランの修正が繰り返され、イタレーションが生じる。
【0114】
参考例では、図19の従来技術と同様に、配置情報と接続情報とグループ情報を元に、仮配線の線長と、仮想配線の交差点と、論理モジュール関係と、ハードマクロセル関係と、グループ領域の面積とを、個別評価項目として抽出し、全体スコアとしてフロアプランを評価しており、論理モジュール間のタイミングを考慮していない。このため、図10では、フロアプラン作成後(S910)、仮配置(S911)、仮配線(S912)を行った後にタイミング確認(S913)で論理モジュール間のタイミング制約を満足出来ず、その原因がフロアプラン起因と判断(S915)された場合は、フロアプラン修正(S910)が必要になるというイタレーションが発生し、設計期間が増えてしまう。
【0115】
特に、タイミングを考慮せずに接続情報や仮配線の線長を元にフロアプランを作成し、仮配置、仮配線後のタイミング解析結果からフロアプラン修正が必要なった場合、タイミングエラーが配置起因であるか判断するのに時間を要する事と、フロアプラン修正してタイミング検証を行わないとタイミングエラーが改善しているか判明しないため、複数回のイタレーションが発生して設計期間が増えてしまう。
【0116】
これに対し、本発明では、図9に示すように、グループ間のタイミング制約を満たす距離であるフロアプラン作成情報14を生成し、フロアプラン作成情報14に基づいてフロアプランを作成するため、予めフロアプランにおけるタイミングエラーの発生を抑止できる。したがって、フロアプラン起因によるタイミングエラーは生じないため、フロアプラン作成のイタレーションを防ぐことができる。本発明では、図9のように、仮配置(S42)、仮配線(S43)を実施した後に、2回目のタイミング確認(S45)を実施し、タイミング制約を満たす場合は、フロアプランが決定(S45)し終了する。2回目のタイミング確認(S44)でタイミング制約を満たさない場合でも、フロアプランの修正の必要はなく、仮配線(S43)へ戻り、配線を実施し直すことでタイミングエラーを解消することができるため、設計期間の短縮が可能である。
【0117】
図10の参考例によりフロアプランを作成した場合と、図9の本発明によりフロアプランを作成した場合とで、具体的なフロアプラン例について説明する。
【0118】
まず、フロアプランの具体例1として、図11に参考例によるフロアプラン、図12に本発明によるフロアプランを示す。
【0119】
この例では、グループA10とグループB10の接続数が100本、グループB10とグループC10の接続数が10本と少ないのに対し、グループD10から、グループA10、グループB10、グループC10への接続数が1000本と多い。
【0120】
参考例によるフロアプランでは、接続本数を考慮しているものの、グループ間のタイミングは考慮されていない。このため、参考例の場合、図11に示すように、グループD10をレイアウト面中央部に配置して、グループD10の周囲を囲むように、グループA10、グループB10、グループC10をレイアウト面周辺の角部に配置するフロアプランが作成される。
【0121】
しかし、グループA10からグループB10を経由してグループC10に接続する経路について、接続本数が少ないが、タイミングが厳しい場合、図11のように接続関係だけを考慮した配置ではタイミング制約を満足させる事が出来ずに、フロアプラン修正が必要となる。すなわち、図10の参考例のように、フロアプラン作成後のタイミング確認でエラーとなって、フロアプラン修正することになり、イタレーションが発生する。
【0122】
一方、本発明では、上記のようにタイミング制約を満たすような距離Lを示すフロアプラン作成情報14に基づいてフロアプランを作成する。すなわち、フロアプラン作成情報には、グループA10からグループB10を介してグループC10へ接続するパスのタイミング制約を満たすための、グループA10、グループB10、グループC10間の距離が含まれている。
【0123】
したがって、本発明では、図12に示すように、フロアプラン作成情報14に記載された距離の範囲内にグループA10、グループB10、グループC10を配置する。そして、グループD10は、グループA10とグループB10とグループC10に接続できるように配置される。このため、グループA10とグループB10とグループC10のタイミング制約が必ず満足されることになる。
【0124】
すなわち、図9の本発明では、図10の参考例のように、仮配置後、仮配線後のタイミング確認からフロアプランの修正に戻るようなイタレーションが無くなり、設計期間の増加を防ぐことができる。
【0125】
次に、フロアプランの具体例2として、図13に参考例によるフロアプラン、図14,15に本発明によるフロアプランを示す。
【0126】
この例は、グループA11、グループB11、グループC11の配置に着目した例であり、グループA11、グループB11、グループC11の経路について、フロアプラン作成情報14の距離Lを算出する例について説明する。
【0127】
参考例では、図13に示すように、図11と同様、レイアウト面中央部にグループD11が配置され、レイアウト面周辺の角部にグループA11、グループB11、グループC11が配置されたフロアプランとなる。
【0128】
しかしながら、上記のように、このフロアプランでは、タイミングエラーが発生するおそれがあるため、本発明では、タイミング制約を満たす距離Lを算出する。ここでは、グループA11からグループB11を通過してグループC11に接続されるパスについての算出例を説明する。
【0129】
ここでは、評価関数設定情報3のゲート遅延値G、距離遅延値T、サイクル情報Fは次の(式101)とする。
G=0.1 ns、T=1.1 ns/mm、F=1.0 ns ・・・(式101)
【0130】
グループA11のFF10からグループA11の出力端子OUT11までの段数G11は、次の(式102)となり、グループA11の出力端子OUT11からグループB11の入力端子IN12までの段数G12は、次の(式103)となり、グループB11の入力端子IN12からグループBの出力端子OUT12までの段数G13は、次の(式103)となり、グループB11の出力端子OUT13からグループC11の入力端子IN14までの段数G14は、次の(式104)となり、グループC11の入力端子IN14からグループC11のFF20までの段数G15は、次の(式105)となる。
G11=グループ[FF10][グループA11/OUT11]= 20段 ・・・(式102)
G12=TOP[グループA11/OUT11][グループB11/IN12] =3段 ・・・(式103)
G13=グループ[グループB11/IN12][グループB11/OUT13]= 10段 ・・・(式104)
G14=TOP[グループB11/OUT13][グループC11/IN14]=5段 ・・・(式105)
G15=グループ[グループC11/IN14][FF20]= 17段 ・・・(式106)
【0131】
この(式102)〜(式106)より、総段数Dは、次の(式107)となる。
D= グループ[FF10][グループA11/OUT11]+TOP[グループA11/OUT11][グループB11/IN12]+グループ[グループB11/IN12][グループB11/OUT13]+TOP[グループB11/OUT13][グループC11/IN14]+グループ[グループC11/IN14][FF20] = 20+3+10+5+17=55段 ・・・(式107)
【0132】
この(式107)と上記(式101)より、セル遅延Tcは、次の(式108)となる。
Tc= D * G = 55 * 0.1 = 5.5ns ・・・(式108)
【0133】
この(式108)と上記(式101)より、距離遅延Tlは、次の(式109)となる。
Tl= F − Tc = 1.0 − 5.5 = 4.5ns ・・・(式109)
【0134】
したがって、この(式109)と上記(式101)より、サイクル情報Fを満たすために必要な距離Lは、次の(式110)となる。
L= T1 / T = 4.5ns / 1.1 ≒ 4.1mm
【0135】
このように、グループA11からグループB11を経由してグループC11までは、4.1mm以下に配置することで、タイミング制約を満たすことができることがわかる。
【0136】
グループD11から、グループA11、グループB11、グループC11への配線本数が多い場合は、参考例では一般的に図13の様なフロアプランが作成される。しかし、本発明では、グループ間のタイミング制約を考慮する事により、図14に示すように、グループA11、グループB11、グループC11の距離を4.1mm以下となるように配置する。グループA11、グループB11、グループC11の経路のタイミングが厳しい場合、グループA11、グループB11、グループC11の経路が最短経路となるようなフロアプランを作成する。
【0137】
グループA11、グループB11、グループC11の距離を4.1mm以下に配置するためには、図15に示すように、各グループの重心に基づいてフロアプランを作成する。グループA11の重心C1からグループB11の重心C2を介しグループC11の重心C3までを接続する直線L1の距離が4.1mm以下であればよい。
【0138】
ここでは、グループB11の重心C2を直線L1の中間点とする。すなわち、経路が通過するグループ、つまり、経路の中間に位置するグループの重心を、直線L1の中心とする。そして、この直線L1を対角線とする正方形Qを考え、重心C2を中心として対角線L1全体の長さが4.1mm以下となる範囲の中に、グループA11の重心C1、グループC11の重心C2を配置する。
【0139】
これにより、グループA11、グループB11、グループC11の経路でタイミングエラーが発生することのないフロアプランを、イタレーションが生じることなく作成することができる。
【0140】
次に、フロアプランの具体例3として、図16に参考例によるフロアプラン、図17に本発明によるフロアプランを示す。
【0141】
この例は、グループA12、グループB12、グループC12にそれぞれ接続されるグループD12の配置に着目した例であり、グループD12とグループA12、グループB12、グループC12のそれぞれとの経路について、フロアプラン作成情報14の距離Lを算出する例について説明する。
【0142】
参考例では、図16に示すように、グループD12は、グループA12とグループB12とグループC12に繋がりがある為、通常はレイアウト面中央部に配置される。
【0143】
しかしながら、グループD12と各グループとの間で、タイミングエラーが発生するおそれがあるため、本発明では、タイミング制約を満たす距離Lを算出する。ここでは、グループD12からグループA12のみタイミングが厳しく、グループD12からグループB12と、グループD12からグループC12は、タイミングが厳しく無い場合についての算出例を説明する。
【0144】
ここでは、評価関数設定情報3のゲート遅延値G、距離遅延値T、サイクル情報Fは次の(式201)とする。
G=0.1 ns、T=1.1 ns/mm、F=10ns ・・・(式201)
【0145】
グループA12のFF11からグループA12の出力端子OUT11までの段数G21は、次の(式202)となり、グループA12の出力端子OUT11からグループD12の入力端子IN41までの段数G22は、次の(式203)となり、グループD12の入力端子IN41からグループD12のFF41までの段数G23は、次の(式204)となる。
G21=グループ[FF11][グループA12/OUT11]= 45段 ・・・(式202)
G22=TOP[グループA12/OUT11][グループD12/IN41] =3段 ・・・(式203)
G23=グループ[グループD12/IN41][FF41]= 22段 ・・・(式204)
【0146】
また、グループB12のFF22からグループB12の出力端子OUT22までの段数G24は、次の(式205)となり、グループB12の出力端子OUT22からグループDの入力端子IN42までの段数G25は、次の(式206)となり、グループD12の入力端子IN42からグループD12のFF42までの段数G26は、次の(式207)となる。
G24=グループ[FF22][グループB12/OUT22]= 20段 ・・・(式205)
G25=TOP[グループB12/OUT22][グループD12/IN42] =3段 ・・・(式206)
G26=グループ[グループD12/IN42][FF42]= 2段 ・・・(式207)
【0147】
また、グループC12のFF33からグループC12の出力端子OUT33までの段数G27は、次の(式208)となり、グループC12の出力端子OUT33からグループD12の入力端子IN43までの段数G28は、次の(式209)となり、グループD12の入力端子IN43からグループD12のFF43までの段数G29は、次の(式210)となる。
G27=グループ[FF33][グループC12/OUT33]= 4段 ・・・(式208)
G28=TOP[グループC12/OUT33][グループD12/IN43] =3段 ・・・(式209)
G29=グループ[グループD12/IN43][FF43]= 5段 ・・・(式210)
【0148】
グループA12からグループD12の経路について、上記(式202)〜(式204)、上記(式201)より、総段数Dは次の(式211)となり、セル遅延Tcは次の(式212)となり、距離遅延Tlは次の(式213)となり、サイクル情報Fを満たすために必要な距離Lは次の(式214)となる。
D=グループ[FF11][グループA12/OUT11]+TOP[グループA12/OUT11][グループD/IN41]+グループ[グループD12/IN41][FF41]=45+3+22=70段 ・・・(式211)
Tc=D * G = 58 * 0.1 = 7.0ns ・・・(式212)
Tl=F−Tc=10−7.0=3.0ns ・・・(式213)
L=T1/T=3.0ns/1.1≒2.7mm ・・・(式214)
【0149】
グループB12からグループD12の経路について、上記(式205)〜(式207)、上記(式201)より、総段数Dは次の(式215)となり、セル遅延Tcは次の(式216)となり、距離遅延Tlは次の(式217)となり、サイクル情報Fを満たすために必要な距離Lは次の(式218)となる。
D=グループ[FF22][グループB12/OUT22]+TOP[グループB12/OUT22][グループD12/IN42]+グループ[グループD12/IN42][FF42]=20+3+2=25段 ・・・(式215)
Tc=D * G = 25 * 0.1 = 2.5ns ・・・(式216)
Tl=F−Tc=10−2.5=7.5ns ・・・(式217)
L=T1/T=7.5ns/1.1≒6.8mm ・・・(式218)
【0150】
グループC12からグループD12の経路について、上記(式208)〜(式210)、上記(式201)より、総段数Dは次の(式219)となり、セル遅延Tcは次の(式220)となり、距離遅延Tlは次の(式221)となり、サイクル情報Fを満たすために必要な距離Lは次の(式222)となる。
D=グループ[FF33][グループC12/OUT33]+TOP[グループC12/OUT33][グループD12/IN43]+グループ[グループD12/IN42][FF43]=4+3+5=12段 ・・・(式219)
Tc=D * G = 12 * 0.1 = 1.2ns ・・・(式220)
Tl=F−Tc=10−1.2=8.8ns ・・・(式221)
L=T1/T=8.8ns/1.1≒8.0mm ・・・(式222)
【0151】
以上の結果より、上記(式214)、上記(式218)、上記(式222)の距離以下の場所にグループを配置する。これにより、グループD12と各グループ間の経路でタイミングエラーが発生することがないフロアプランを、イタレーションが生じることなく作成することができる。
【0152】
グループA12からグループD12間の距離が2.7mm以下、グループB12からグループD12間の距離が6.8mm以下、グループC12からグループD12間の距離が8.0mm以下であるため、グループA12からグループD12の距離が短く、グループC12からグループD12の距離が長い。この場合、グループD12は、中央に配置する必要がなくなり、グループA12の近くに配置すれば良い。すなわち、図17に示すように、グループD12を、グループA12の近くの位置で、かつ、グループC12から遠く離れる位置に配置するフロアプランを作成する。
【0153】
以上のように、本実施形態では、実施の形態1と同様に、グループ間のタイミング制約を満たすために必要な距離を示すフロアプラン作成情報を作成し、このフロアプラン作成情報に基づいてフロアプランを作成する。これにより、グループ間のタイミング制約を常に満たすことになるため、フロアプランの修正が不要となる。したがって、フロアプラン設計のイタレーションを防ぎ、設計期間を短縮することができる。
【0154】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、フロアプラン作成情報として距離について説明したが、これにマージン情報を含めて、マージンの範囲でフロアプランを作成するようにしてもよい。また、フロアプラン作成情報及びフロアプランの作成に関し、グループの重心(中心)を基準としたが、タイミング制約を満たすために重心の位置を変更してもよい。グループ(機能モジュール)の形状を略正方形としたが、タイミング制約を満たすために長方形やその他の形状としてもよい。
【符号の説明】
【0155】
1 グループ設定情報
2 ネットリスト
3 評価関数設定情報
5 階層ブロック入出力段数算出部
6 階層ブロック通過段数算出部
7 階層ブロック間接続情報抽出部
8 関連階層ブロック評価部
9 タイミング判定処理部
10 グループ修正部
11 入力ファイル群
12 回路情報抽出部
13 フロアプラン作成情報出力部
14 フロアプラン作成情報
15 階層判定処理部
16 配置不可情報作成部
17 グループ配置不可情報
21 フロアプラン作成部
22 仮配置部
23 仮配線部
24 配置配線タイミング判定処理部
25 フロアプラン決定部
30 フロアプラン情報
51 制御部
52 記憶部
53 入力部
54 出力部
100 フロアプラン作成情報生成装置
200 フロアプラン作成装置
300 フロアプラン最適化装置

【特許請求の範囲】
【請求項1】
複数の回路モジュールの接続情報を含むネットリストと、前記複数の回路モジュールにグループを設定するためのグループ設定情報と、を記憶部に記憶し、
前記ネットリスト及び前記グループ設定情報に基づき、前記複数の回路モジュールにグループを設定し、
前記設定されたグループ間におけるタイミング制約を満たす距離を算出し、
前記算出されたグループ間の距離を含み、フロアプランを作成するためのフロアプラン作成情報を生成する、
フロアプラン作成情報生成方法。
【請求項2】
前記ネットリストは、前記複数の回路モジュールが複数の階層レベルに区分された階層構造を有している、
請求項1に記載のフロアプラン作成情報生成方法。
【請求項3】
前記グループ設定情報は、前記階層レベルごとにグループ設定する回路モジュールを規定し、
前記グループの設定では、前記グループ設定情報に基づいて階層レベルを選択し、当該選択した階層レベルにおいて、前記複数の回路モジュールにグループを設定する、
請求項2に記載のフロアプラン作成情報生成方法。
【請求項4】
前記距離の算出において、前記設定されたグループ間におけるタイミング制約を満たす距離が算出できない場合、前記グループの設定において、選択されているグループの階層レベルよりも下位の階層レベルを選択し、当該選択した階層レベルにおいて、再度、前記複数の回路モジュールにグループを設定する、
請求項3に記載のフロアプラン作成情報生成方法。
【請求項5】
前記距離の算出は、第1のグループ内の第1のフリップフロップと第2のグループ内の第2のフリップフロップとを接続する接続経路の回路遅延に基づいて算出される、
請求項1乃至4のいずれか一項に記載のフロアプラン作成情報生成方法。
【請求項6】
前記回路遅延は、前記第1のフリップフロップから前記第1のグループの出力端子までの回路遅延と、前記第1のグループの出力端子から前記第2のグループの入力端子までの回路遅延と、前記第2のグループの入力端子から前記第2のフリップフロップまでの回路遅延を含んでいる、
請求項5に記載のフロアプラン作成情報生成方法。
【請求項7】
前記回路遅延は、前記第1のグループと前記第2のグループとの間に接続される第3のグループにおける、入力端子から出力端子までの回路遅延を含んでいる、
請求項6に記載のフロアプラン作成情報生成方法。
【請求項8】
前記回路遅延は、前記接続経路上に配置される遅延回路の段数に基づいて算出される、
請求項5乃至7のいずれか一項に記載のフロアプラン作成情報生成方法。
【請求項9】
前記遅延回路による遅延値を前記記憶部に記憶し、
前記回路遅延は、前記遅延回路の段数と前記遅延回路による遅延値とに基づいて算出される、
請求項8に記載のフロアプラン作成情報生成方法。
【請求項10】
前記回路遅延は、前記遅延回路の段数と前記遅延回路による遅延値とを掛け算して算出される、
請求項9に記載のフロアプラン作成情報生成方法。
【請求項11】
前記第1のフリップフロップと前記第2のフリップフロップ間のタイミング制約である制約時間を前記記憶部に記憶し、
前記距離の算出は、前記回路遅延と前記制約時間とに基づいて前記距離を算出する、
請求項5乃至10のいずれか一項に記載のフロアプラン作成情報生成方法。
【請求項12】
前記距離の算出は、前記制約時間から前記回路遅延を引き算して算出される、
請求項11に記載のフロアプラン作成情報生成方法。
【請求項13】
前記制約時間は、前記第1のフリップフロップ及び前記第2のフリップフロップに供給されるクロックのサイクル情報である、
請求項11または12に記載のフロアプラン作成情報生成方法。
【請求項14】
前記接続経路を構成する配線の単位長さ当たりの遅延値を前記記憶部に記憶し、
前記距離の算出は、前記回路遅延と前記配線の遅延値とに基づいて前記距離を算出する、
請求項5乃至10のいずれか一項に記載のフロアプラン作成情報生成方法。
【請求項15】
前記距離の算出は、前記回路遅延に対し前記配線の遅延値を除算して算出される、
請求項14に記載のフロアプラン作成情報生成方法。
【請求項16】
前記接続経路を構成する配線の単位長さ当たりの遅延値を前記記憶部に記憶し、
前記距離の算出は、前記回路遅延と前記制約時間と前記配線の遅延値とに基づいて、前記距離を算出する、
請求項11乃至13のいずれか一項に記載のフロアプラン作成情報生成方法。
【請求項17】
前記距離の算出は、前記制約時間から前記回路遅延を差し引いた値に対し、前記配線の遅延値を除算して算出される、
請求項16に記載のフロアプラン作成情報生成方法。
【請求項18】
コンピュータにフロアプラン作成情報生成方法を実行させるフロアプラン作成情報生成プログラムであって、前記フロアプラン作成情報生成方法は、
複数の回路モジュールの接続情報を含むネットリストと、前記複数の回路モジュールにグループを設定するためのグループ設定情報と、を記憶部に記憶し、
前記ネットリスト及び前記グループ設定情報に基づき、前記複数の回路モジュールにグループを設定し、
前記設定されたグループ間におけるタイミング制約を満たす距離を算出し、
前記算出されたグループ間の距離を含み、フロアプランを作成するためのフロアプラン作成情報を生成する、
フロアプラン作成情報生成プログラム。
【請求項19】
複数の回路モジュールの接続情報を含むネットリストと、前記複数の回路モジュールにグループを設定するためのグループ設定情報と、を記憶する記憶部と、
前記ネットリスト及び前記グループ設定情報に基づき、前記複数の回路モジュールにグループを設定するグループ設定部と、
前記設定されたグループ間におけるタイミング制約を満たす距離を算出する距離算出部と、
前記算出されたグループ間の距離を含み、フロアプランを作成するためのフロアプラン作成情報を生成するフロアプラン作成情報生成部と、
を備えるフロアプラン作成情報生成装置。
【請求項20】
複数の回路モジュールの接続情報を含むネットリストと、前記複数の回路モジュールにグループを設定するためのグループ設定情報と、を記憶部に記憶し、
前記ネットリスト及び前記グループ設定情報に基づき、前記複数の回路モジュールにグループを設定し、
前記設定されたグループ間におけるタイミング制約を満たす距離を算出し、
前記算出されたグループ間の距離を含み、フロアプランを作成するためのフロアプラン作成情報を生成し、
前記ネットリスト、前記グループ設定情報及び前記フロアプラン作成情報に基づき、前記グループのフロアプランであるフロアプラン情報を作成する、
フロアプラン最適化方法。
【請求項21】
コンピュータにフロアプラン最適化方法を実行させるフロアプラン最適化プログラムであって、前記フロアプラン最適化方法は、
複数の回路モジュールの接続情報を含むネットリストと、前記複数の回路モジュールにグループを設定するためのグループ設定情報と、を記憶部に記憶し、
前記ネットリスト及び前記グループ設定情報に基づき、前記複数の回路モジュールにグループを設定し、
前記設定されたグループ間におけるタイミング制約を満たす距離を算出し、
前記算出されたグループ間の距離を含み、フロアプランを作成するためのフロアプラン作成情報を生成し、
前記ネットリスト、前記グループ設定情報及び前記フロアプラン作成情報に基づき、前記グループのフロアプランであるフロアプラン情報を作成する、
フロアプラン最適化プログラム。
【請求項22】
複数の回路モジュールの接続情報を含むネットリストと、前記複数の回路モジュールにグループを設定するためのグループ設定情報と、を記憶する記憶部と、
前記ネットリスト及び前記グループ設定情報に基づき、前記複数の回路モジュールにグループを設定するグループ設定部と、
前記設定されたグループ間におけるタイミング制約を満たす距離を算出する距離算出部と、
前記算出されたグループ間の距離を含み、フロアプランを作成するためのフロアプラン作成情報を生成するフロアプラン作成情報生成部と、
前記ネットリスト、前記グループ設定情報及び前記フロアプラン作成情報に基づき、前記グループのフロアプランであるフロアプラン情報を作成するフロアプラン作成部と、
を備えるフロアプラン最適化装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2013−45318(P2013−45318A)
【公開日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願番号】特願2011−183285(P2011−183285)
【出願日】平成23年8月25日(2011.8.25)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】