(57)【要約】【課題】トライアルレイアウトの結果を用いてフロアプランおよびセル配置の容易化を図ること。【解決手段】モジュール１を例に挙げると、第１のネットリスト内のモジュール１と、第１のネットリストから改訂された第２のネットリスト内のモジュール１が、同一である。設計支援装置が、クロックツリーが未生成であり、かつ配置されたセル間が未配線である第１のネットリストに基づく第１のレイアウトデータ１０７から、モジュール１を特定する。そして、モジュール１をモジュール２として配置することで第１のレイアウトデータ１０７内のセル配置を流用して第２のレイアウトデータ６００を生成する。また、第１のネットリスト内のモジュール２と第２のネットリスト内のモジュール２は、機能が同一であるが、機能を構成するセルが同一でないため、第１のレイアウトデータ１０７からモジュール２の配置領域が流用される。【選択図】図６
2011076397.tif 000002
【特許請求の範囲】
【請求項１】
設計対象回路の第１のネットリストと、クロックツリーが未生成でかつ配置されたセル間が未配線である前記第１のネットリストに基づく第１のレイアウトデータとを記憶する記憶装置にアクセス可能なコンピュータを、
前記第１のネットリストから改訂された第２のネットリストの入力を受け付ける入力手段、
前記入力手段によって入力された第１のネットリストの中から選ばれた第１のモジュールと前記第２のネットリストの中から選ばれた第２のモジュールとの同一性判断結果を取得する取得手段、
前記取得手段により取得された同一性判断結果が前記第１および第２のモジュールが同一であることを示す場合、前記第１のレイアウトデータから、前記第１のモジュールおよびその配置位置を特定する特定手段、
前記特定手段により特定された第１のモジュールの配置位置に従って、前記特定手段により特定された第１のモジュールを前記第２のモジュールとして配置することにより、第２のレイアウトデータを生成する生成手段、
前記生成手段によって生成された第２のレイアウトデータを出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
【請求項２】
前記特定手段は、
前記取得手段により取得された同一性判断結果が、前記第１のモジュールおよび前記第２のモジュールの機能、前記機能を構成する各セルの種類および前記各セルの構成が同一であることを示す場合、前記第１のレイアウトデータから、前記第１のモジュールおよびその配置位置を特定し、
前記生成手段は、
前記特定手段により特定された第１のモジュールの配置位置に従い、前記特定手段により特定された第１のモジュールを配置することにより、前記第２のレイアウトデータを生成することを特徴とする請求項１に記載の設計支援プログラム。
【請求項３】
前記特定手段は、
前記取得手段により取得された同一性判断結果が、前記機能が同一であることを示し、前記機能を構成する前記各セルの種類または前記各セルの構成が異なることを示す場合、前記第２のレイアウトデータから、前記第１のモジュールの配置位置および前記第１のモジュールの配置領域を特定し、
前記生成手段は、
前記特定手段により特定された第１のモジュールの配置位置に従い、前記特定手段により特定された配置領域を前記第２のモジュールの配置領域として配置することにより、前記第２のレイアウトデータを生成することを特徴とする請求項１または２に記載の設計支援プログラム。
【請求項４】
設計対象回路の第１のネットリストと、クロックツリーが未生成でかつ配置されたセル間が未配線である前記第１のネットリストに基づく第１のレイアウトデータとを記憶する記憶装置にアクセス可能な設計支援装置であって、
前記第１のネットリストから改訂された第２のネットリストの入力を受け付ける入力手段と、
前記入力手段によって入力された第１のネットリストの中から選ばれた第１のモジュールと前記第２のネットリストの中から選ばれた第２のモジュールとの同一性判断結果を取得する取得手段と、
前記取得手段により取得された同一性判断結果が前記第１および第２のモジュールが同一であることを示す場合、前記第１のレイアウトデータから、前記第１のモジュールおよびその配置位置を特定する特定手段と、
前記特定手段により特定された第１のモジュールの配置位置に従って、前記特定手段により特定された第１のモジュールを前記第２のモジュールとして配置することにより、第２のレイアウトデータを生成する生成手段と、
前記生成手段によって生成された第２のレイアウトデータを出力する出力手段と、
を備えることを特徴とする設計支援装置。
【請求項５】
設計対象回路の第１のネットリストと、クロックツリーが未生成でかつ配置されたセル間が未配線である前記第１のネットリストに基づく第１のレイアウトデータとを記憶する記憶装置にアクセス可能なコンピュータが、
前記第１のネットリストから改訂された第２のネットリストの入力を受け付ける入力工程と、
前記入力工程によって入力された第１のネットリストの中から選ばれた第１のモジュールと前記第２のネットリストの中から選ばれた第２のモジュールとの同一性判断結果を取得する取得工程と、
前記取得工程により取得された同一性判断結果が前記第１および第２のモジュールが同一であることを示す場合、前記第１のレイアウトデータから、前記第１のモジュールおよびその配置位置を特定する特定工程と、
前記特定工程により特定された第１のモジュールの配置位置に従って、前記特定工程により特定された第１のモジュールを前記第２のモジュールとして配置することにより、第２のレイアウトデータを生成する生成工程と、
前記生成工程によって生成された第２のレイアウトデータを出力する出力工程と、
を実行することを特徴とする設計支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レイアウト設計を支援する設計支援プログラム、設計支援装置、および設計支援方法に関する。
【背景技術】
【０００２】
従来、回路設計では、回路の構成や機能等の回路変更に合わせてネットリストが改訂されている。そして、レイアウト設計では、製品として用いられる最終ネットリストを用いてレイアウトデータを設計する前に、最終ネットリストに改訂される前の改訂前ネットリストを用いてレイアウトデータを設計する（以下、「トライアルレイアウト」と称する。）。
【０００３】
これにより、最終ネットリストを用いて設計する前に、設計者が、所望のサイズに収めることができるか否か、タイミングに違反がないか否かなどを確認することができた。そして、トライアルレイアウトは、回路変更の内容によって複数回実施されていた。
【０００４】
また、レイアウト設計では、通常、設計者が、設計対象回路のネットリストを用いてフロアプランを実施する。そして、自動配置配線ツールやＣＴＳ（Ｃｌｏｃｋ  Ｔｒｅｅ  Ｓｙｎｔｈｅｓｉｓ）、タイミング解析ツールを用いて、まず、セルが配置され、つぎに、クロックツリーが生成されてタイミングの最適化がおこなわれ、そして、配線がおこなわれている。
【０００５】
そして、レイアウト終了後に数１０〜１０００程度の素子が追加または削除されるような回路変更が生じた場合、レイアウト終了後のレイアウトデータから回路変更後のレイアウトデータを設計するレイアウト変更技術が知られている（下記特許文献１，２参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−２４３２６２号公報
【特許文献２】特開２０００−５７１９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来のレイアウト変更技術では、ネットリストが改訂される際の回路変更には対応できなかった。たとえば、ネットリストが改訂される際には、ネットリスト内の数十％程度に変更が生じることがあり、たとえば、２０％程度の変更の場合、ネットリスト内のゲート数が１００万ゲートであれば、２０万ゲート程度の変更が生じる。追加または削除される素子数が多いとクロックツリーを再生成させる必要があるため、タイミングの最適化も再度実施させる必要があり、レイアウト設計終了後のセル配置および配線を、回路変更に伴い利用することができなかった。
【０００８】
さらに、追加または削除される素子数が多いと、新規にモジュールが追加または削除されていることがあるため、再度、フロアプランから実施しなければならなかった。したがって、トライアルレイアウトの結果を、最終ネットリストでのレイアウト設計に反映させることができないという問題点があった。
【０００９】
また、最終ネットリストに改訂される改訂直前のネットリストに基づくレイアウトデータのフロアプランから、設計者が、手動でマクロの配置位置や配置領域を最終レイアウトのフロアプランに利用していた。したがって、手間がかかり、最終ネットリスト内のセル数やマクロの数に比例して設計期間が延びるという問題点があった。
【００１０】
本開示技術は、上述した従来技術による問題点を解消するため、改訂前後のネットリストに基づいて、改訂前のレイアウトデータからセル配置を流用することで、改訂後のレイアウトデータのフロアプランおよびセル配置の容易化、および設計期間の短縮化を図ることができる設計支援プログラム、設計支援装置、および設計支援方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一観点によれば、設計対象回路の第１のネットリストと、クロックツリーが未生成でかつ配置されたセル間が未配線である前記第１のネットリストに基づく第１のレイアウトデータとを記憶する記憶装置にアクセス可能な設計支援装置であって、前記第１のネットリストから改訂された第２のネットリストの入力を受け付ける入力手段と、前記入力手段によって入力された第１のネットリストの中から選ばれた第１のモジュールと前記第２のネットリストの中から選ばれた第２のモジュールとの同一性判断結果を取得する取得手段と、前記取得手段により取得された同一性判断結果が前記第１および第２のモジュールが同一であることを示す場合、前記第１のレイアウトデータから、前記第１のモジュールおよびその配置位置を特定する特定手段と、前記特定手段により特定された第１のモジュールの配置位置に従って、前記特定手段により特定された第１のモジュールを前記第２のモジュールとして配置することにより、第２のレイアウトデータを生成する生成手段と、前記生成手段によって生成された第２のレイアウトデータを出力する出力手段と、を備える設計支援装置が提供される。
【発明の効果】
【００１２】
本設計支援プログラム、設計支援装置、および設計支援方法によれば、改訂前後のネットリストに基づいて、改訂前のレイアウトデータからセル配置を流用することで、改訂後のレイアウトデータのフロアプランおよびセル配置の容易化、および設計期間の短縮化を図ることができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施例を示す説明図である。
【図２−１】第１のレイアウトデータ１０７の詳細な一例を示す説明図である。
【図２−２】第１のレイアウトテーブルの一例を示す説明図である。
【図３】実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。
【図４】設計支援装置の機能的構成を示すブロック図である。
【図５】実施例１における特定結果および算出結果の一例を示す説明図である。
【図６】実施例１において第２のレイアウトデータが生成される例を示す説明図である。
【図７】実施例１において配置領域が変更される例を示す説明図である。
【図８】実施例２で用いる第１および第２のネットリストを示す説明図である。
【図９】実施例２における判断結果の一例を示す説明図である。
【図１０】実施例２において第２のレイアウトデータが生成される例を示す説明図である。
【図１１】設計支援装置４００による設計支援処理手順の一例を示すフローチャートである。
【図１２】図１１で示した取得処理（ステップＳ１１０２）の詳細な説明を示すフローチャート（その１）である。
【図１３】図１１で示した取得処理（ステップＳ１１０２）の詳細な説明を示すフローチャート（その２）である。
【図１４】図１１で示した取得処理（ステップＳ１１０２）の詳細な説明を示すフローチャート（その３）である。
【図１５】図１１で示した生成処理（ステップＳ１１０３）の詳細な説明を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して、本発明にかかる設計支援プログラム、設計支援装置、および設計支援方法の好適な実施の形態を詳細に説明する。
【００１５】
図１は、本発明の一実施例を示す説明図である。まず、第１のネットリスト１０１は、モジュール１〜５を含む構成である。第２のネットリスト１０２は、モジュール１〜４，６を含む構成であり、回路変更により第１のネットリスト１０１から改訂されたネットリストである。なお、実際には、第１および第２のネットリスト内の最上位のモジュールがトップジュールであり、トップモジュール内にモジュール１などのモジュールが含まれている。
【００１６】
また、第２のネットリスト１０２は、第１のネットリスト１０１から改訂されたネットリストであれば、必ずしも最終ネットリストである必要はない。
【００１７】
第１のレイアウトデータ１０７とは、第１のネットリスト１０１に基づくレイアウトデータであり、後述する図２−１にて詳細を説明する。なお、第１のネットリスト１０１および第１のレイアウトデータ１０７は、本設計支援装置がアクセス可能な記憶装置に記憶されている。
【００１８】
まず、設計支援装置は、第２のネットリスト１０２の入力を受け付けると、第２のネットリスト１０２内で選択された第２のモジュールと第１のネットリスト１０１内で選択された第１のモジュールとの同一性判断結果を取得する。たとえば、第２のネットリスト１０２内のモジュール１と第１のネットリスト１０１内のモジュール１とを選択してＬＶＬ（ＬＡＹＯＵＴ  ＶＳ  ＬＡＹＯＵＴ）を用いて同一であるか否かを判断し、ＬＶＬから判断結果を取得する。さらに、モジュール１とモジュール２とを論理等価性検証ツールを用いて同一であるか否かを判断し、論理等価性検証ツールから判断結果を取得する。なお、ＬＶＬとしては、たとえば、ｃａｌｉｂｒｅ、ＰＶＳ（Ｐｈｙｓｉｃａｌ  Ｖｅｒｉｆｉｃａｔｉｏｎ  Ｓｙｓｔｅｍ）が知られている。論理等価性検証ツールとしては、Ｃｏｎｆｏｒｍａｌ−ＬＥＣ（Ｌｏｇｉｃ  Ｅｑｕｉｖａｌｅｎｃｅ  Ｃｈｅｃｋｅｒ）、Ｆｏｒｍａｌｉｔｙが知られている。
【００１９】
そして、図１において、テーブル１０３では、第２のモジュール名１０４ごとに第１のモジュール名１０５と、判断結果１０６が関連付けられている。
【００２０】
ここで、判断結果１０６に記述されている「完全同一」と、「機能同一」と、「対応モジュール無し」について詳細に説明する。まず、「完全同一」とは、機能が同一であり、かつ機能を構成するセルの種類およびセルの構成が同一であることを示し、したがって、ＬＶＬから取得された判断結果が同一であることを示す。
【００２１】
つぎに、「機能同一」とは、機能が同一であり、機能を構成するセルの種類またはセルの構成が異なることを示し、ＬＶＬから取得された判断結果は同一でないが、論理等価性検証ツールから取得された判断結果は同一であることを示す。たとえば、第１のネットリストのモジュール２では、２入力のＡＮＤ回路で示しているものが、第２のネットリストのモジュール２では、２入力のＮＡＮＤ回路とインバータにより示している場合（セルの構成が異なる場合）、モジュール２は「機能同一」である。または、たとえば、第１のネットリスト１０１内のモジュール２および第２のネットリスト１０２のモジュール２が、いずれも所定の入力信号を反転させて出力する機能であるとする。いずれのモジュール２も当該機能がインバータにより構成されていても、当該インバータの駆動能力が異なる場合（セルの種類が異なる場合）、モジュール２は「機能同一」である。
【００２２】
そして、「対応モジュール無し」とは、機能が同一でないことを示し、論理等価性検証ツール４１０から取得された判断結果が同一でないことを示す。または、「対応モジュール無し」とは、第２のモジュールに対応するモジュールが第１のネットリスト１０１内に含まれていないことを示し、第１のネットリスト１０１から改訂される際にあらたに追加されたモジュールである。本実施の形態では、第２のモジュールに対応するモジュールであるか否かを、第２のモジュールとモジュール名が同一であるか否かで判断している。
【００２３】
つぎに、設計支援装置は、判断結果が「完全同一」を示す場合、第１のレイアウトデータ１０７から第１のモジュールおよび第１のモジュールの配置位置を特定する。ここでは、モジュール１，３，４および各配置位置が特定されている。さらに、設計支援装置は、判断結果が「機能同一」を示す場合、第１のレイアウトデータ１０７から第１のモジュールの配置位置および第１のモジュールの配置領域を特定する。ここでは、モジュール２の配置位置およびモジュール２の配置領域が特定されている。なお、モジュール２の配置領域を配置するとは、モジュール２に含まれているセルを当該配置領域内に配置させる制約を設定していることである。配置領域は、制約であるため、たとえば、面積、ｘ，ｙ軸方向の長さ、座標などによって定めている。
【００２４】
そして、設計支援装置は、判断結果が「完全同一」を示す場合、特定された第１のモジュールの配置位置に従い、第１のモジュールを第２のモジュールとして配置して第２のレイアウトデータを生成する。これにより、第１のレイアウトデータ１０７のセル配置を流用することができ、設計期間の短縮化を図ることができる。さらに、判断結果が「機能同一」を示す場合、特定された第１のモジュールの配置位置に従い、第１のモジュールの配置領域を第２のモジュールの配置領域として第２のレイアウトデータ１０８内に配置する。図１では、第２のレイアウトデータ１０８内にモジュール２の配置領域が配置されている。これにより、フロアプランを容易化することができる。
【００２５】
（第１のレイアウトデータ１０７）
図２−１は、第１のレイアウトデータ１０７の詳細な一例を示す説明図である。第１のレイアウトデータ１０７は、第１のネットリスト１０１を用いてトライアルレイアウトが実施された際のセル配置直後のレイアウトデータである。よって、第１のレイアウトデータ１０７では、クロックツリーが未生成かつ配置されたセル間が未配線である。
【００２６】
第１のレイアウトデータ１０７内でＩ（Ｉｎｐｕｔ）／Ｏ（Ｏｕｔｐｕｔ）配置領域より内側のコア領域のサイズは、ｘおよびｙ軸方向の長さがいずれも３．０［ｍｍ］である。なお、コア領域とは、Ｉ／Ｏ回路を除く各モジュールが配置される領域である。そして、第１のモジュールのサイズは、ｘおよびｙ軸方向の長さがいずれも１．０［ｍｍ］である。第１のレイアウトデータ１０７は、たとえば、第１のレイアウトデータ１０７の詳細な情報を示す第１のレイアウトテーブルと関連付けられ、コンピュータがアクセス可能な記憶装置に記憶されている。
【００２７】
図２−２は、第１のレイアウトテーブルの一例を示す説明図である。第１のレイアウトテーブル２００は、モジュール名２０１ごとにｘ軸方向の長さ２０２と、ｙ軸方向の長さ２０３と、領域の面積２０４と、モジュールの重心座標２０５が記述されている。たとえば、モジュール名２０１がモジュール１の場合を例に挙げると、ｘ軸方向の長さ２０２が１［ｍｍ］であり、ｙ軸方向の長さ２０３が１［ｍｍ］であり、領域の面積２０４が１［ｍｍ2］であり、モジュールの重心座標２０５がｇ１（０．５，１．５）である。本実施の形態では、モジュールの配置位置としてモジュールの重心座標２０５を用いる。
【００２８】
（設計支援装置のハードウェア構成）
図３は、実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。図３において、設計支援装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、磁気ディスクドライブ３０４と、磁気ディスク３０５と、光ディスクドライブ３０６と、光ディスク３０７と、ディスプレイ３０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０９と、キーボード３１０と、マウス３１１と、スキャナ３１２と、プリンタ３１３と、を備えている。また、各構成部はバス３００によってそれぞれ接続されている。
【００２９】
ここで、ＣＰＵ３０１は、設計支援装置の全体の制御を司る。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。磁気ディスクドライブ３０４は、ＣＰＵ３０１の制御に従って磁気ディスク３０５に対するデータのリード／ライトを制御する。磁気ディスク３０５は、磁気ディスクドライブ３０４の制御で書き込まれたデータを記憶する。
【００３０】
光ディスクドライブ３０６は、ＣＰＵ３０１の制御に従って光ディスク３０７に対するデータのリード／ライトを制御する。光ディスク３０７は、光ディスクドライブ３０６の制御で書き込まれたデータを記憶したり、光ディスク３０７に記憶されたデータをコンピュータに読み取らせたりする。
【００３１】
ディスプレイ３０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。当該ディスプレイ３０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００３２】
Ｉ／Ｆ３０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク３１４に接続され、当該ネットワーク３１４を介して他の装置に接続される。そして、Ｉ／Ｆ３０９は、ネットワーク３１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ３０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００３３】
キーボード３１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス３１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３４】
スキャナ３１２は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ３１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ３１３は、画像データや文書データを印刷する。プリンタ３１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３５】
（設計支援装置の機能的構成）
図４は、設計支援装置の機能的構成を示すブロック図である。設計支援装置４００は、入力部４０１と、選択部４０２と、取得部４０３と、特定部４０４と、配置位置算出部４０５と、配置領域算出部４０６と、生成部４０７と、出力部４０８と、を含む構成である。各機能（入力部４０１〜出力部４０８）は、具体的には、たとえば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０９により、各機能を実現する。
【００３６】
本実施の形態では、実施例１と実施例２を用いて各機能の詳細を説明する。実施例１では、入力部４０１〜出力部４０８までの処理に沿って説明し、実施例２では、第１のモジュールと第２のモジュールを選択する選択部４０２および判断結果を取得する取得部４０３の機能について実施例１を応用した処理について説明する。
【００３７】
（実施例１）
まず、入力部４０１は、第１のネットリスト１０１が回路変更により改訂された第２のネットリスト１０２の入力を受け付ける。具体的には、たとえば、設計者の操作により第２のネットリスト１０２が入力されると、ＣＰＵ３０１が、第２のネットリスト１０２を受け付ける。
【００３８】
つぎに、選択部４０２は、第２のネットリスト１０２内のモジュールを第２のモジュールとして選択し、第１のネットリスト１０１内のモジュールを第１のモジュールとして選択する機能を有する。具体的には、たとえば、ＣＰＵ３０１が、第２のネットリスト１０２内のモジュール１を第２のモジュールとして選択すると、同一モジュール名であるモジュールを第２のネットリスト１０２内から抽出する。そして、同一モジュール名であるモジュールを抽出すると、第１のモジュールとして選択する。ここでは、第１のネットリスト１０１内にモジュール１が含まれているため、モジュール１が第１のモジュールとして選択される。
【００３９】
そして、取得部４０３は、選択部４０２により選択された第１のモジュールと第２のモジュールが同一であるか否かが判断された判断結果を取得する機能を有する。具体的には、たとえば、ＣＰＵ３０１が、ＬＶＬ４０９へ第１のモジュールと第２のモジュールを与えて同一であるか否かを判断させ、判断結果を取得する。さらに、たとえば、ＣＰＵ３０１が、論理等価性検証ツール４１０へ第１のモジュールと第２のモジュールを与えて機能が同一であるか否かを判断させ、判断結果を取得する。
【００４０】
なお、取得結果は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶される。また、取得結果は、図１で示したテーブル１０３のような形式で記憶装置に記憶させてもよい。テーブル１０３では、第２のモジュール名１０４がモジュール１の場合、第１のモジュール名１０５がモジュール１であり、判断結果１０６が「完全同一」である。第１のネットリスト１０１内には、モジュール６とモジュール名が同一であるモジュールが抽出されないため、選択部４０２により第１のモジュールが選択されない。したがって、テーブル１０３では、第２のモジュール名１０４がモジュール６の場合、判断結果１０６には、「対応モジュール無し」が記述されている。
【００４１】
これにより、第２のネットリスト１０２内のモジュールが、「完全同一」、「機能同一」、「対応モジュール無し」のいずれかに第１のネットリスト１０１内のモジュールとの類似度合いに応じて分類される。
【００４２】
つぎに、特定部４０４は、取得部４０３により取得された判断結果が、第１および第２のモジュールが同一であることを示す場合、第１のレイアウトデータ１０７から、第１のモジュールおよび第１のモジュールの配置位置を特定する機能を有する。
【００４３】
具体的には、たとえば、ＣＰＵ３０１が、判断結果が「完全同一」である場合、記憶装置に記憶されている第１のレイアウトデータ１０７から、第１のモジュールを特定する。そして、記憶装置に記憶されている第１のレイアウトテーブル２００から、第１のモジュール名２０１に基づいて重心座標２０５を読み出し、第１のモジュールの配置位置として特定する。モジュール１の場合、第１のレイアウトテーブル２００内の重心座標２０５からｇ１（０．５，１．５）がモジュール１の配置位置として特定される。
【００４４】
具体的には、たとえば、ＣＰＵ３０１が、判断結果が「機能同一」である場合、記憶装置に記憶されている第１のレイアウトテーブル２００から、第１のモジュール名２０１に基づいて重心座標２０５を読み出し、第１のモジュールの配置位置として特定する。さらに、ｘ軸方向の長さ２０２およびｙ軸方向の長さ２０３を読み出し、第１のモジュールの配置領域として特定する。さらに、領域の面積２０４を読み出して第２のモジュールの配置領域として特定する。なお、配置領域は、配置に関する制約であるため、特定方法は本実施の形態の記載に限定しない。
【００４５】
ここで、モジュール１を例に挙げると、テーブル２００内の重心座標２０５であるｇ１（０．５，１．５）がモジュール１の配置位置として特定され、ｘ軸方向の長さ２０２である１［ｍｍ］およびｙ軸方向の長さ２０３である１［ｍｍ］が第１のモジュールの配置領域として特定される。
【００４６】
つぎに、配置位置算出部４０５は、第１のレイアウトデータ１０７と第２のレイアウトデータのサイズ比と特定部４０４により特定された第１のモジュールの配置位置に基づいて第２のモジュールの配置位置を算出する機能を有する。なお、本実施の形態では、第２のレイアウトデータのサイズについては、入力部４０１によりサイズの入力を受け付けていることとする。
【００４７】
具体的には、たとえば、ＣＰＵ３０１が、第１のモジュールの配置位置とサイズ比とを掛け合わせることで第２のモジュールの配置位置を算出する。サイズ比とは、ｘ軸方向のサイズ比と、ｙ軸方向のサイズ比である。ｘ軸方向のサイズ比は、第２のレイアウト内のコア領域のｘ軸方向の長さと第１のレイアウト内のコア領域のｘ軸方向の長さの比率であり、ｙ軸方向のサイズ比は、第２のレイアウト内のコア領域のｙ軸方向の長さと第１のレイアウト内のコア領域のｙ軸方向の長さの比率である。具体的には、たとえば、ＣＰＵ３０１が、第２のモジュールの配置位置を下記式（１）を用いて算出する。
【００４８】
第２のモジュールの重心座標＝ｇ’（第１のモジュールの重心座標のｘ×（第２のレイアウト内のコア領域のｘ軸方向の長さ／第１のレイアウト内のコア領域のｘ軸方向の長さ），第１のモジュールの重心座標のｙ×（第２のレイアウト内のコア領域のｙ軸方向の長さ／第１のレイアウト内のコア領域のｙ軸方向の長さ））                                                                                                ・・・（１）
【００４９】
なお、第２のレイアウト内のコア領域のｘおよびｙ軸方向の長さについては、設計者が予め決定していることとし、設計者の操作により当該長さを入力させて入力部４０１により受け付けてもよい。
【００５０】
実施例１では、第２のレイアウトデータのコア領域のｘ軸方向の長さを３．５［ｍｍ］とし、ｙ軸方向の長さを３．０［ｍｍ］とする。上述したように第１のレイアウトデータ１０７のコア領域のｘ軸方向の長さが３．０［ｍｍ］であり、ｙ軸方向の長が３．０［ｍｍ］である。
【００５１】
モジュール１を例に挙げると、第１のレイアウトデータ１０７内のモジュール１の重心座標はｇ１（０．５，１．５）である。
・第２のモジュールの重心座標＝ｇ１’（０．５×（３．５／３．０），１．５×（３．０／３．０））
【００５２】
よって、第２のモジュールの重心座標はｇ１’（０．５８，１．５）である。なお、算出結果は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶される。後述する図５を用いて算出結果の一例を示す。
【００５３】
つぎに、配置領域算出部４０６は、第１のモジュール内のセルの総サイズと第２のモジュール内のセルの総サイズとの比率と第１のモジュールの配置領域に基づいて、第２のモジュールの配置領域を算出する機能を有する。
【００５４】
具体的には、たとえば、第２のモジュールの配置領域のｘ軸方向の長さとｙ軸方向の長さを算出する。下記式（２）により、第２のモジュールの配置領域のｘ軸方向の長さ（ＬＸ２）が算出され、下記式（３）を用いて第２のモジュールの配置領域のｙ軸方向の長さ（ＬＹ２）が算出される。
【００５５】
【数１】
2011076397.tif 000003
【００５６】
なお、ＬＸ１が、第１のモジュールのｘ軸方向の長さであり、ＬＹ１が、第１のモジュールのｙ軸方向の長さである。Ｓ１が第１のモジュール内のセルの総面積であり、Ｓ２が第２のモジュール内のセルの総面積である。第１および第２のモジュール内の全セルの面積は、セルライブラリ４１１に記述されているセルの面積に基づいて算出されている。なお、セルライブラリ４１１は、ＣＰＵ３０１がアクセス可能な記憶装置に記憶されている。
【００５７】
判断結果が「機能同一」である第２のネットリスト１０２内のモジュール２を例に挙げると、第１のレイアウトデータ１０７内のモジュール２のｘ軸方向の長さが１であり、第２のレイアウトデータ内のモジュール２のｙ軸方向の長さが１である。なお、Ｓ１が１［ｍｍ2］であり、Ｓ２が２［ｍｍ2］である。よって、第２のモジュールの配置領域のｘ軸方向の長さは、１．４１［ｍｍ］であり、第２のモジュールの配置領域のｙ軸方向の長さは、１．４１［ｍｍ］である。
【００５８】
図５は、実施例１における特定結果および算出結果の一例を示す説明図である。第２のレイアウトテーブル５００は、第２のネットリスト１０２内のモジュールであるモジュール名５０１ごとにｘ軸方向の長さ５０２と、ｙ軸方向の長さ５０３と、領域の面積５０４と、重心座標５０５が記述されている。モジュール１，３，４は、テーブル１０３内の判断結果１０６が「完全同一」であるため、ｘ軸方向の長さ５０２と、ｙ軸方向の長さ５０３と、領域の面積５０４については、第１のレイアウトテーブル２００内のモジュール１，３，４とそれぞれ同一である。
【００５９】
そして、第２のレイアウトテーブル５００内のモジュール名５０１が、モジュール６の場合、各項目に値が記述されていない。テーブル１０３では、モジュール６の判断結果１０６は「対応モジュール無し」であるため、利用者の操作によって配置領域および配置位置が決定される。
【００６０】
そして、第２のレイアウトテーブル５００内のモジュール２は、テーブル１０３内の判断結果１０６が「機能同一」であるため、配置領域算出部４０６により算出されたｘ軸方向の長さおよびｙ軸方向の長さがそれぞれｘ軸方向の長さ５０２およびｙ軸方向の長さ５０３に記述されている。そして、配置位置算出部４０５により算出された重心座標が重心座標５０５に記述されている。
【００６１】
つぎに、図４に戻って、生成部４０７は、特定部４０４によって特定された第１のモジュールの配置位置に従って、特定部４０４により特定された第１のモジュールを第２のモジュールとして配置することにより第２のレイアウトデータを生成する。図６を用いて具体例を説明する。
【００６２】
図６は、実施例１において第２のレイアウトデータが生成される例を示す説明図である。まず、第２のレイアウトデータ６００内のモジュール１，３，４は、第１のレイアウトデータ１０７内のモジュール１，３，４に基づいてそれぞれ配置位置算出部４０５により算出された配置位置に配置されている。なお、セルの配置関係が流用されているため、モジュールの重心座標が決まっていれば、モジュール内のセルの配置位置は、一意に定まる。
【００６３】
そして、モジュール２は、配置位置算出部４０５により算出された配置位置に配置領域算出部４０６により算出されたｘ軸方向の長さとｙ軸方向の長さに基づいて配置領域が配置されている。これにより、セル配置およびフロアプランを流用でき、フロアプランおよび設計の容易化および設計期間の短縮化を図ることができる。
【００６４】
図４に戻って、出力部４０８は、生成部４０７により生成された第２のレイアウトデータ６００を出力する。出力形式としては、たとえば、ディスプレイ３０８への表示、プリンタ３１３への印刷出力、Ｉ／Ｆ３０９による外部装置への送信がある。また、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶することとしてもよい。
【００６５】
そして、出力部４０８により出力された第２のレイアウトデータを用いて利用者が、流用することができないモジュールの配置領域を決定させる。
【００６６】
図７は、実施例１において配置領域が変更される例を示す説明図である。レイアウトデータ７００は、設計支援装置４００により生成された第２のレイアウトデータ６００から、利用者の操作により配置領域が変更される例である。第２のレイアウトデータ６００では、配置領域算出部４０６により算出されたｘ軸方向の長さと、ｙ軸方向の長さに基づいてモジュール２の配置領域が配置されているが、モジュール２の配置領域がモジュール１およびモジュール３と重なっている。よって、レイアウトデータ７００では、配置領域の面積が同一となるように配置領域が配置され、モジュール２の配置領域がモジュール１およびモジュール３と重なっていない。そして、第２のレイアウトデータ内で空いている領域から、流用できないモジュール６の配置領域が、利用者の操作により配置される。第１のレイアウトデータ１０７から、セル配置または配置領域が流用されているため、フロアプランおよびセル配置の容易化を図ることができる。
【００６７】
（実施例２）
実施例２では、選択部４０２および取得部４０３に関する実施例１の応用例について説明する。実施例２では、第１のモジュールと第２のモジュールとの判断結果が「機能同一」である場合、第２のモジュール内のモジュールをあらたに第２のモジュールとして選択し、対応する第１のモジュール内のモジュールをあらたに第２のモジュールとして選択する例を示す。
【００６８】
（実施例２で用いる第１および第２のネットリスト）
図８は、実施例２で用いる第１および第２のネットリストを示す説明図である。第１のネットリスト８０１は、モジュール１〜５を含む構成であり、モジュール１は、モジュール１ａを含む構成であり、モジュール２は、モジュール２ａと、モジュール２ｂと、モジュール２ｃを含む構成である。第２のネットリスト８０２は、モジュール１〜４，６を含む構成であり、モジュール１は、モジュール１ａを含む構成であり、モジュール２は、モジュール２ａと、モジュール２ｂと、モジュール２ｃを含む構成である。第２のネットリスト８０２は、第１のネットリスト８０１が回路変更により改訂された後のネットリストである。
【００６９】
実施例２では、入力部４０１と、特定部４０４と、配置位置算出部４０５と、生成部４０７と、配置領域算出部４０６の処理については、実施例１で説明した処理と同一であるため各処理の説明を省略する。
【００７０】
選択部４０２は、第２のネットリスト８０２内のモジュールを第２のモジュールとして選択し、第１のネットリスト８０１内のモジュールを第１のモジュールとして選択する機能を有する。ここでは、たとえば、第２のモジュールとして第２のネットリスト８０２内のモジュール２が選択され、第１のモジュールとして第１のネットリスト８０１内のモジュール１が選択されている。
【００７１】
つぎに、取得部４０３は、選択部４０２により選択された第１のモジュールと第２のモジュールが同一であるか否かを判断された判断結果を取得する機能を有する。取得部４０３の具体的な処理については、実施例１と同一の処理である。第２のネットリスト８０２内のモジュール２と第１のネットリスト８０１内のモジュール１が同一であるか否かが判断された判断結果が取得される。
【００７２】
そして、選択部４０２は、取得部４０３により取得された判断結果が、機能が同一であり、機能を構成するセルの種類が異なることを示す場合、第２のモジュール内のモジュールから、あらたにモジュールを第２のモジュールとして選択する。具体的には、たとえば、ＣＰＵ３０１が、判断結果が、機能が同一であり、機能を構成するセルの種類が異なることを示す場合、第２のモジュールである第２のネットリスト８０２内のモジュール２からモジュール２ａが第２のモジュールとして選択される。そして、第２のネットリスト８０２内のモジュール２ａに対応するモジュールを第１のネットリスト８０１から選択する。ここでは、第１のネットリスト８０１内のモジュール２ａが第１のモジュールとして選択される。
【００７３】
そして、再度、取得部４０３の処理をおこなう。さらに、選択部４０２が、モジュール２内のモジュール２ｂ，２ｃについても同様に選択し、取得部４０３は、モジュール２ｂ，２ｃに関する判断結果を取得する。
【００７４】
図９は、実施例２における判断結果の一例を示す説明図である。テーブル９００は、第２のモジュール名９０１ごとに第１のモジュール名９０２と、判断結果９０３が記述されている。テーブル９００では、第２のモジュール名９０１がモジュール２ａの場合、第１のモジュール名９０２がモジュール２ａであり、判断結果９０３が「完全同一」である。そして、第２のモジュール名９０１がモジュール２ｂの場合、第１のモジュール名９０２がモジュール２ｂであり、判断結果９０３が「完全同一」であり、第２のモジュール名９０１がモジュール２ｃの場合、第１のモジュール名９０２がモジュール２ｃであり、判断結果９０３が「機能同一」である。
【００７５】
よって、第２のネットリスト内のモジュール２と第１のネットリスト内のモジュール２は、「機能同一」であるが、実際には、第２のネットリスト内のモジュール２ｃと第１のネットリスト内のモジュール２ｃのみが「機能同一」であり、他のモジュールは同一である。実施例２では、第２のネットリスト内の第２のモジュールと第１のネットリスト内の第１のモジュールが「機能同一」であっても、第２のモジュールの下位モジュールについて同一であるか否かを判断することで、より多くのセル配置を流用することができる。
【００７６】
また、選択部４０２は、第２のネットリスト８０２内のモジュール６のように対応するモジュールが第１のネットリストに無い場合、モジュール６内のモジュールをあらたに第１のモジュールとして選択してよい。なお、第２のネットリスト８０２内のモジュール６には、モジュールが無いため、選択されない。
【００７７】
つぎに、特定部４０４と、配置位置算出部４０５と、配置領域算出部４０６と、生成部４０７の処理がＣＰＵ３０１により実行される。
【００７８】
図１０は、実施例２において第２のレイアウトデータが生成される例を示す説明図である。第１のレイアウトデータ１００１は、ＣＰＵ３０１がアクセス可能な記憶装置に記憶され、クロックツリーが未生成であり、配置されているセル間が未配線である。
【００７９】
第１のレイアウトデータ１００１から、モジュール１，３，４のセル配置が流用され、さらに、モジュール２ａ，２ｂのセル配置が流用され、モジュール２とモジュール２ｃの配置領域が流用されて第２のレイアウトデータ１００２が生成されている。したがって、「機能同一」の場合（または「対応モジュール無し」の場合）、下位のモジュールについても処理の対象とすることで、可能な限りセル配置を流用させることができる。これにより、セル配置の容易化を図ることができる。
【００８０】
（設計支援装置４００による設計支援処理手順）
図１１は、設計支援装置４００による設計支援処理手順の一例を示すフローチャートである。本フローチャートで用いる階層とは、トップモジュールを階層１のモジュールとし、トップモジュール内のモジュールを階層２のモジュールとし、階層２のモジュール内のモジュールを階層３のモジュールとしている。なお、第１のネットリストと、第１のネットリストを用いてセルが配置され、クロックツリーが未生成であり、セル間が未配線である第１のレイアウトデータが記憶装置に記憶されている。さらに、第１のネットリスト内で用いられる各セルの面積などの特徴情報を含むセルライブラリが記憶装置に記憶されている。
【００８１】
まず、入力部４０１により、第１のネットリストから回路変更により改訂された第２のネットリストの入力を受け付ける（ステップＳ１１０１）。さらに、ここで、設計支援装置４００が生成する第２のレイアウトデータのコア領域のサイズの入力を受け付けてもよい。つぎに、選択部４０２と、取得部４０３により取得処理を実施し（ステップＳ１１０２）、特定部４０４と、配置位置算出部４０５と、配置領域算出部４０６と、生成部４０７により生成処理を実施し、第２のレイアウトデータが生成される（ステップＳ１１０３）。そして、出力部４０８により、出力処理が実施され（ステップＳ１１０４）、一連の処理が終了する。ここで、第２のレイアウトデータが出力される。
【００８２】
図１２、図１３、および図１４は、図１１で示した取得処理（ステップＳ１１０２）の詳細な説明を示すフローチャートである。図１２において、まず、ｎ＝２とし（ステップＳ１２０１）、階層ｎに設定する（ステップＳ１２０２）。つぎに、第２のネットリストからトップモジュールを階層ｎ−１の第２のモジュールとして選択し（ステップＳ１２０３）、階層ｎ−１の第２のモジュールから階層ｎのモジュールを抽出する（ステップＳ１２０４）。
【００８３】
そして、抽出されたか否かを判断し（ステップＳ１２０５）、抽出されたと判断された場合（ステップＳ１２０５：Ｙｅｓ）、階層ｎのモジュールの中で未選択のモジュールがあるか否かを判断する（ステップＳ１２０６）。
【００８４】
階層ｎのモジュールの中で未選択のモジュールがあると判断された場合（ステップＳ１２０６：Ｙｅｓ）、選択部４０２により、未選択のモジュールから任意のモジュールを階層ｎの第２のモジュールに選択する（ステップＳ１２０７）。
【００８５】
ステップＳ１２０７のつぎに、図１３に移って、第１のネットリストから階層ｎの第２のモジュールとモジュール名が同一のモジュールを抽出する（ステップＳ１２０８）。抽出されたか否かを判断し（ステップＳ１２０９）、抽出されたと判断された場合（ステップＳ１２０９：Ｙｅｓ）、選択部４０２により、抽出されたモジュールを第１のモジュールとして選択する（ステップＳ１２１０）。
【００８６】
つぎに、第１のモジュールと第２のモジュールが同一であるか否かを判断させるためにＬＶＬ４０９を実施し（ステップＳ１２１１）、取得部４０３により、ＬＶＬ４０９から判断結果を取得する（ステップＳ１２１２）。そして、判断結果が第１のモジュールと第２のモジュールが同一であることを示しているか否かを判断する（ステップＳ１２１３）。同一であることを示している場合（ステップＳ１２１３：Ｙｅｓ）、階層ｎの第２のモジュールと、第１のモジュールと、判断結果（「完全同一」）を関連付け（ステップＳ１２１４）、出力処理を実施する（ステップＳ１２１５）。たとえば、出力例が、テーブル１０３やテーブル９００である。そして、ステップＳ１２１５のつぎに、図１２のステップＳ１２０６へ戻る。
【００８７】
一方、図１３のステップＳ１２１３において、同一であることを示していないと判断された場合（ステップＳ１２１３：Ｎｏ）、図１４に移って、論理等価性検証ツール４１０を用いて論理等価性検証を実施する（ステップＳ１２１６）。つぎに、論理等価性検証ツール４１０から判断結果を取得し（ステップＳ１２１７）、判断結果が、同一であることを示しているか否かを判断する（ステップＳ１２１８）。
【００８８】
そして、同一であることを示していると判断された場合（ステップＳ１２１８：Ｙｅｓ）、階層ｎの第２のモジュールと、第１のモジュールと、判断結果（「機能同一」）を関連付けし（ステップＳ１２２０）、出力処理を実施する（ステップＳ１２２１）。つぎに、ｎ＝ｎ＋１とし（ステップＳ１２２２）、階層ｎに設定し（ステップＳ１２２３）、図１２のステップＳ１２０４へ戻る。
【００８９】
一方、図１４において、同一であることを示していないと判断された場合（ステップＳ１２１８：Ｎｏ）、階層ｎの第２のモジュールと、「対応モジュール無し」を関連付け（ステップＳ１２１９）、ステップＳ１２２１へ移行する。また、図１３において、抽出されなかったと判断された場合（ステップＳ１２０９：Ｎｏ）、図１４のステップＳ１２１９へ移行する。
【００９０】
図１２に戻って、抽出されなかったと判断された場合（ステップＳ１２０５：Ｎｏ）、または、階層ｎのモジュールの中で未選択のモジュールがあると判断された場合（ステップＳ１２０６：Ｎｏ）、つぎに、ｎ＞２であるか否かを判断する（ステップＳ１２２４）。ｎ＞２であると判断された場合（ステップＳ１２２４：Ｙｅｓ）、ｎ＝ｎ−１とし（ステップＳ１２２５）、階層ｎに設定し（ステップＳ１２２６）、ステップＳ１２０６へ戻る。
【００９１】
一方、ｎ＞２でないと判断された場合（ステップＳ１２２４：Ｎｏ）、ステップＳ１１０３へ移行する。
【００９２】
図１５は、図１１で示した生成処理（ステップＳ１１０３）の詳細な説明を示すフローチャートである。図１５において、まず、第２のネットリスト内のモジュールに関連付けられている判断結果が「完全同一」または「機能同一」であるモジュールを特定する（ステップＳ１５０１）。そして、特定されたモジュールの中で、未選択のモジュールがあるか否かを判断する（ステップＳ１５０２）。未選択のモジュールがあると判断された場合（ステップＳ１５０２：Ｙｅｓ）、未選択のモジュールから任意のモジュールを第２のモジュールに選択する（ステップＳ１５０３）。
【００９３】
つぎに、特定部４０４により、第１のレイアウトデータから、第２のモジュールに関連付けられている第１のモジュールの配置位置を特定する（ステップＳ１５０４）。そして、第１のモジュールの配置位置と第１のレイアウトデータと第２のレイアウトデータとのサイズ比に基づいて、第２のモジュールの配置位置を算出する（ステップＳ１５０５）。
【００９４】
つぎに、判断結果が「完全同一」であるか否かを判断し（ステップＳ１５０６）、「完全同一」であると判断された場合（ステップＳ１５０６：Ｙｅｓ）、特定部４０４により、第１のレイアウトデータから第１のモジュールを特定する（ステップＳ１５０７）。そして、生成部４０７により、第１のモジュールを第２のモジュールとして配置し、第２のレイアウトデータを生成する（ステップＳ１５０８）。そして、ステップＳ１５０２へ戻る。
【００９５】
一方、「完全同一」でないと判断された場合（ステップＳ１５０６：Ｎｏ）、第１のレイアウトデータから第１のモジュールの配置領域を特定する（ステップＳ１５０９）。そして、第１のモジュールの配置領域と第１のモジュール内の全セルと第２のモジュール内の全セルのサイズ比に基づいて、第２のモジュールの配置領域を算出する（ステップＳ１５１０）。つぎに、生成部４０７により、第２のモジュールの配置領域を配置し、第２のレイアウトデータを生成し（ステップＳ１５１１）、ステップＳ１５０２へ戻る。
【００９６】
一方、ステップＳ１５０２において、未選択のモジュールがないと判断された場合（ステップＳ１５０２：Ｎｏ）、ステップＳ１１０４へ移行する。
【００９７】
以上説明したように、設計支援プログラム、設計支援装置、および設計支援方法によれば、第１のネットリスト内の選択されたモジュールと、第１のネットリストが改訂された第２のネットリスト内の選択されたモジュールが同一の場合、クロックツリーが未生成であり、配置されたセル間が未配線である第１のレイアウトデータから、第１のモジュールを特定して、第２のモジュールとして流用することにより、セル配置およびフロアプランの容易化、および設計期間の短縮化を図ることができる。
【００９８】
また、第１のモジュールと第２のモジュールが、機能が同一であり、かつ機能を構成するセルの種類が同一である場合、第１のレイアウトデータ内の第１のモジュールのセル配置を第２のモジュールのセル配置として流用する。これにより、セル配置の容易化を図ることができる。
【００９９】
また、第１のモジュールと第２のモジュールが、機能が同一であり、機能を構成するセルの種類が異なる場合、第１のレイアウトデータ内の第１のモジュールの配置領域を第２のモジュールの配置領域として流用する。これにより、フロアプランの容易化を図ることができる。
【０１００】
また、第１のレイアウトデータと第２のレイアウトデータのサイズ比と第１のモジュールの配置位置に基づいて第２のモジュールの配置位置を算出する。これにより、第２のレイアウトデータのサイズが第１のレイアウトデータより大きくなっても相対的な配置位置にモジュールを配置することができ、フロアプランの容易化を図ることができる。
【０１０１】
また、第１のモジュール内の全セルと第２のモジュール内の全セルのサイズ比と第１のモジュールの配置領域に基づいて第２のモジュールの配置領域を算出することにより、モジュール内のセルのサイズの変化を反映でき、フロアプランの容易化を図ることができる。
【０１０２】
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１０３】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１０４】
（付記１）設計対象回路の第１のネットリストと、クロックツリーが未生成でかつ配置されたセル間が未配線である前記第１のネットリストに基づく第１のレイアウトデータとを記憶する記憶装置にアクセス可能なコンピュータを、
前記第１のネットリストから改訂された第２のネットリストの入力を受け付ける入力手段、
前記入力手段によって入力された第１のネットリストの中から選ばれた第１のモジュールと前記第２のネットリストの中から選ばれた第２のモジュールとの同一性判断結果を取得する取得手段、
前記取得手段により取得された同一性判断結果が前記第１および第２のモジュールが同一であることを示す場合、前記第１のレイアウトデータから、前記第１のモジュールおよびその配置位置を特定する特定手段、
前記特定手段により特定された第１のモジュールの配置位置に従って、前記特定手段により特定された第１のモジュールを前記第２のモジュールとして配置することにより、第２のレイアウトデータを生成する生成手段、
前記生成手段によって生成された第２のレイアウトデータを出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
【０１０５】
（付記２）前記特定手段は、
前記取得手段により取得された同一性判断結果が、前記第１のモジュールおよび前記第２のモジュールの機能、前記機能を構成する各セルの種類および前記各セルの構成が同一であることを示す場合、前記第１のレイアウトデータから、前記第１のモジュールおよびその配置位置を特定し、
前記生成手段は、
前記特定手段により特定された第１のモジュールの配置位置に従い、前記特定手段により特定された第１のモジュールを配置することにより、前記第２のレイアウトデータを生成することを特徴とする付記１に記載の設計支援プログラム。
【０１０６】
（付記３）前記特定手段は、
前記取得手段により取得された同一性判断結果が、前記機能が同一であることを示し、前記機能を構成する前記各セルの種類または前記各セルの構成が異なることを示す場合、前記第２のレイアウトデータから、前記第１のモジュールの配置位置および前記第１のモジュールの配置領域を特定し、
前記生成手段は、
前記特定手段により特定された第１のモジュールの配置位置に従い、前記特定手段により特定された配置領域を前記第２のモジュールの配置領域として配置することにより、前記第２のレイアウトデータを生成することを特徴とする付記１または２に記載の設計支援プログラム。
【０１０７】
（付記４）前記コンピュータを、
前記第１のレイアウトデータと前記第２のレイアウトデータのサイズ比と前記特定手段により特定された第１のモジュールの配置位置に基づいて前記第２のモジュールの配置位置を算出する配置位置算出手段、として機能させ、
前記生成手段は、
前記配置位置算出手段により算出された第２のモジュールの配置位置に従い、前記特定手段により特定された第１のモジュールを配置することにより、前記第２のレイアウトデータを生成することを特徴とする付記１〜３のいずれか一つに記載の設計支援プログラム。
【０１０８】
（付記５）前記第１および第２のネットリスト内で用いられている各セルのサイズを記憶している前記記憶装置にアクセス可能な前記コンピュータを、
前記各セルのサイズに基づく前記第１のモジュール内の全セルと前記第２のモジュール内の全セルのサイズ比と前記特定手段により特定された第１のモジュールの配置領域に基づいて、前記第２のモジュールの配置領域を算出する配置領域算出手段、として機能させ、
前記生成手段は、
前記第１のモジュールの配置位置に従い、前記配置領域算出手段により算出された第２のモジュールの配置領域を配置することにより、前記第２のレイアウトデータを生成することを特徴とする付記３に記載の設計支援プログラム。
【０１０９】
（付記６）設計対象回路の第１のネットリストと、クロックツリーが未生成でかつ配置されたセル間が未配線である前記第１のネットリストに基づく第１のレイアウトデータとを記憶する記憶装置にアクセス可能な設計支援装置であって、
前記第１のネットリストから改訂された第２のネットリストの入力を受け付ける入力手段と、
前記入力手段によって入力された第１のネットリストの中から選ばれた第１のモジュールと前記第２のネットリストの中から選ばれた第２のモジュールとの同一性判断結果を取得する取得手段と、
前記取得手段により取得された同一性判断結果が前記第１および第２のモジュールが同一であることを示す場合、前記第１のレイアウトデータから、前記第１のモジュールおよびその配置位置を特定する特定手段と、
前記特定手段により特定された第１のモジュールの配置位置に従って、前記特定手段により特定された第１のモジュールを前記第２のモジュールとして配置することにより、第２のレイアウトデータを生成する生成手段と、
前記生成手段によって生成された第２のレイアウトデータを出力する出力手段と、
を備えることを特徴とする設計支援装置。
【０１１０】
（付記７）設計対象回路の第１のネットリストと、クロックツリーが未生成でかつ配置されたセル間が未配線である前記第１のネットリストに基づく第１のレイアウトデータとを記憶する記憶装置にアクセス可能なコンピュータが、
前記第１のネットリストから改訂された第２のネットリストの入力を受け付ける入力工程と、
前記入力工程によって入力された第１のネットリストの中から選ばれた第１のモジュールと前記第２のネットリストの中から選ばれた第２のモジュールとの同一性判断結果を取得する取得工程と、
前記取得工程により取得された同一性判断結果が前記第１および第２のモジュールが同一であることを示す場合、前記第１のレイアウトデータから、前記第１のモジュールおよびその配置位置を特定する特定工程と、
前記特定工程により特定された第１のモジュールの配置位置に従って、前記特定工程により特定された第１のモジュールを前記第２のモジュールとして配置することにより、第２のレイアウトデータを生成する生成工程と、
前記生成工程によって生成された第２のレイアウトデータを出力する出力工程と、
を実行することを特徴とする設計支援方法。
【符号の説明】
【０１１１】
１０１，８０１  第１のネットリスト
１０２，８０２  第２のネットリスト
１０７，１００１  第１のレイアウトデータ
１０８，６００，１００２  第２のレイアウトデータ
４００  設計支援装置
４０１  入力部
４０３  取得部
４０４  特定部
４０５  配置位置算出部
４０６  配置領域算出部
４０７  生成部
４０８  出力部
【図１】
2011076397.tif 000004
【図２−１】
2011076397.tif 000005
【図２−２】
2011076397.tif 000006
【図３】
2011076397.tif 000007
【図４】
2011076397.tif 000008
【図５】
2011076397.tif 000009
【図６】
2011076397.tif 000010
【図７】
2011076397.tif 000011
【図８】
2011076397.tif 000012
【図９】
2011076397.tif 000013
【図１０】
2011076397.tif 000014
【図１１】
2011076397.tif 000015
【図１２】
2011076397.tif 000016
【図１３】
2011076397.tif 000017
【図１４】
2011076397.tif 000018
【図１５】
2011076397.tif 000019