(57)【要約】【課題】処理量の低減化を図ること。【解決手段】まず、設計支援装置１００は、回路内の所定領域ａｒｅａを一定間隔で区切った複数の領域ａ１〜ａ４を示す領域情報を生成する。設計支援装置１００は、生成した領域情報が示す複数の領域ａ１〜ａ４の各々に少なくとも１つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第１レイアウトデータｌ１を生成する。図１の例には、複数の領域ａ１〜ａ４の各々に、クロックバッファセルｂｕｆ１〜ｂｕｆ４が配置されてある。設計支援装置１００は、生成した第１レイアウトデータｌ１に基づいて、クロックバッファセルの配置と、所定領域ａｒｅａ内に設けられるＦＦセルの配置と、を示す第２レイアウトデータｌ２を生成する。【選択図】図１
2014186648.tif 000002
【特許請求の範囲】
【請求項１】
回路内の所定領域を一定間隔で区切った複数の領域を示す領域情報を生成する領域情報生成部と、
前記領域情報生成部によって生成された前記領域情報が示す前記複数の領域の各々に少なくとも１つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第１レイアウトデータを生成する第１データ生成部と、
前記第１データ生成部によって生成された前記第１レイアウトデータに基づいて、前記バッファセルの配置と、前記所定領域内に設けられるフリップフロップセルの配置と、を示す第２レイアウトデータを生成する第２データ生成部と、
前記第２データ生成部によって生成された前記第２レイアウトデータを出力する出力部と、
を有することを特徴とする設計支援装置。
【請求項２】
前記第２レイアウトデータに基づいて、前記複数の領域の各々について、前記領域内のフリップフロップセルと、前記領域内のバッファセルと、を対応付けた対応情報を生成する対応情報生成部を有し、
前記出力部は、
前記第２レイアウトデータと、前記対応情報生成部によって生成された前記対応情報と、を関連付けて出力することを特徴とする請求項１に記載の設計支援装置。
【請求項３】
前記第２レイアウトデータに基づいて、前記複数の領域の各々について、前記領域内のフリップフロップセルの数が、前記領域内のバッファセルが前記クロック信号を供給可能な数よりも多いか少ないかを判断する判断部と、
前記判断部によって前記フリップフロップセルの数が前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルのうち、前記供給可能な数のフリップフロップセル以外のフリップフロップセルを、前記判断部によって前記フリップフロップセルの数が前記供給可能な数よりも少ないと判断された前記領域内のバッファセルに対応付けた対応情報を生成する対応情報生成部と、
を有し、
前記出力部は、
前記第２レイアウトデータと、前記対応情報生成部によって生成された前記対応情報と、を関連付けて出力することを特徴とする請求項１または２に記載の設計支援装置。
【請求項４】
前記判断部によって前記領域内のフリップフロップセルの数が前記供給可能な数よりも少ないと判断された領域のうち、前記供給可能な数よりも多いと判断された前記領域に隣接する領域を検出する検出部を有し、
前記対応情報生成部は、
前記供給可能な数のフリップフロップセル以外のフリップフロップセルを、前記検出部によって検出された前記領域内のバッファセルに対応付けた対応情報を生成することを特徴とする請求項３に記載の設計支援装置。
【請求項５】
前記検出部は、
前記隣接する領域の中で、前記領域内のフリップフロップセルの数が最も少ない領域を検出することを特徴とする請求項４に記載の設計支援装置。
【請求項６】
前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルの各々と、検出された前記領域内のバッファセルと、の距離を算出する算出部と、
前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルの中で、前記算出部によって算出された距離が短い順に、前記供給可能な数のフリップフロップセル以外のフリップフロップセルを選択する選択部と、
を有し、
前記対応情報生成部は、
前記選択部によって選択されたフリップフロップセルを、検出された前記領域内のバッファセルに対応付けた対応情報を生成することを特徴とする請求項４または５に記載の設計支援装置。
【請求項７】
検出された前記領域の各々について、検出された前記領域内のバッファセルと、前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルの各々と、の距離を算出する算出部と、
検出された前記領域内のバッファセルと、前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルと、の組み合わせの中から、同一のフリップフロップセルを含む組み合わせを複数選択せず、前記算出部によって算出された距離が短い順に、前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルの数と、前記供給可能な数と、の差分の組み合わせを選択する選択部と、
を有し、
前記対応情報生成部は、
前記選択部によって選択された前記組み合わせに含まれるフリップフロップセルと、選択された前記組み合わせに含まれるバッファセルと、を対応付けた対応情報を生成することを特徴とする請求項４に記載の設計支援装置。
【請求項８】
前記出力部は、
前記検出部による検出によって前記隣接する領域が得られなかった場合、前記対応情報生成部による前記対応情報の生成を行わずに、前記供給可能な数よりも多いと判断された前記領域の周辺に前記フリップフロップセルの数が多いことを示す情報を出力することを特徴とする請求項４〜６のいずれか一つに記載の設計支援装置。
【請求項９】
コンピュータが、
回路内の所定領域を一定間隔で区切った複数の領域を示す領域情報を生成し、
生成した前記領域情報が示す前記複数の領域の各々に少なくとも１つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第１レイアウトデータを生成し、
生成した前記第１レイアウトデータに基づいて、前記バッファセルの配置と、前記所定領域内に設けられるフリップフロップセルの配置と、を示す第２レイアウトデータを生成する、
処理を実行することを特徴とする設計支援方法。
【請求項１０】
コンピュータに、
回路内の所定領域を一定間隔で区切った複数の領域を示す領域情報を生成し、
生成した前記領域情報が示す前記複数の領域の各々に少なくとも１つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第１レイアウトデータを生成し、
生成した前記第１レイアウトデータに基づいて、前記バッファセルの配置と、前記所定領域内に設けられるフリップフロップセルの配置と、を示す第２レイアウトデータを生成する、
処理を実行させることを特徴とする設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計支援装置、設計支援方法、および設計支援プログラムに関する。
【背景技術】
【０００２】
従来、回路のレイアウト設計では、クロックツリーを手動で設計したり、自動で生成したりする技術が知られている。たとえば、フリップフロップ（以下「ＦＦ（Ｆｌｉｐ  Ｆｌｏｐ」）と称する。）を配置した後に、複数のＦＦのマンハッタン長に基づいて、クロックスキューを小さくするようにクロックバッファを挿入する技術がある（たとえば、下記特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−２２９１２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、レイアウト設計では、たとえば、クロックスキューの条件を満たすようにクロックツリーの最終段のクロックバッファとＦＦとを近くにしつつ、ＦＦのデータ信号線などに関する条件を満たすように各セルが配置される。そのため、各セルの配置に要する処理量が大きくなるという問題点がある。
【０００５】
１つの側面では、本発明は、処理量の低減を図ることができる設計支援装置、設計支援方法、および設計支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、回路内の所定領域を一定間隔で区切った複数の領域を示す領域情報を生成し、生成した前記領域情報が示す前記複数の領域の各々に少なくとも１つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第１レイアウトデータを生成し、生成した前記第１レイアウトデータに基づいて、前記バッファセルの配置と、前記所定領域内に設けられるフリップフロップセルの配置と、を示す第２レイアウトデータを生成する設計支援装置、設計支援方法、および設計支援プログラムが提案される。
【発明の効果】
【０００７】
本発明の一態様によれば、処理量の低減を図ることができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、設計支援装置による一動作例を示す説明図である。
【図２】図２は、ＣＡＤフロー例を示す説明図である。
【図３】図３は、設計支援装置のハードウェア構成例を示すブロック図である。
【図４】図４は、設計支援装置の機能的構成例を示すブロック図である。
【図５】図５は、クロックバッファのタイプ別の領域サイズ対応表を示す説明図である。
【図６】図６は、領域情報の一例を示す説明図である。
【図７】図７は、最終段のクロックバッファセルが各領域に配置された例を示す説明図である。
【図８】図８は、クロックツリー例を示す説明図である。
【図９】図９は、ＦＦのセルが配置された例を示す説明図である。
【図１０】図１０は、生成例１を示す説明図である。
【図１１】図１１は、対応情報の一例を示す説明図である。
【図１２】図１２は、判断例を示す説明図である。
【図１３】図１３は、生成例２を示す説明図である。
【図１４】図１４は、対応情報例２を示す説明図である。
【図１５】図１５は、生成例２における接続例を示す説明図である。
【図１６】図１６は、生成例３を示す説明図である。
【図１７】図１７は、対応情報例３を示す説明図である。
【図１８】図１８は、生成例３についての接続例を示す説明図である。
【図１９】図１９は、ＦＦセルが集中している例を示す説明図である。
【図２０】図２０は、設計支援装置による設計支援処理手順例１を示すフローチャート（その１）である。
【図２１】図２１は、設計支援装置による設計支援処理手順例１を示すフローチャート（その２）である。
【図２２】図２２は、設計支援装置による設計支援処理手順例１を示すフローチャート（その３）である。
【図２３】図２３は、設計支援装置による設計支援処理手順例１を示すフローチャート（その４）である。
【図２４】図２４は、設計支援装置による設計支援処理手順例２を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、本発明にかかる設計支援装置、設計支援方法、および設計支援プログラムの実施の形態を詳細に説明する。
【００１０】
図１は、設計支援装置による一動作例を示す説明図である。設計支援装置１００は、半導体集積回路などの回路のレイアウトデータの設計を支援するコンピュータである。まず、設計支援装置１００は、回路内の所定領域ａｒｅａを一定間隔で区切った複数の領域ａ１〜ａ４を示す領域情報を生成する。一定間隔は、クロックバッファの駆動能力に基づいて定まる。所定領域ａｒｅａは、たとえば、セル配置可能領域であり、回路内のディジタル回路などのスタンダードセルによって設計される領域である。
【００１１】
そして、設計支援装置１００は、生成した領域情報が示す複数の領域ａ１〜ａ４の各々に少なくとも１つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第１レイアウトデータｌ１を生成する。図１の例には、複数の領域ａ１〜ａ４の各々に、クロックバッファセルｂｕｆ１〜ｂｕｆ４が配置されてある。他のセルにクロック信号を供給可能なバッファセルとは、たとえば、クロックツリー内の最終段のクロックバッファである。そのため、第１レイアウトデータｌ１では、クロックツリーに含まれる各セルが配置される。たとえば、クロックツリーは、クロック供給源から最終段のクロックバッファセルまでの段数が同一であり、クロック供給源から最終段のクロックバッファセルまでの間のバッファセルの配置間隔および配線の長さが等しいこととする。クロックツリーの一例は、図８に示す。
【００１２】
設計支援装置１００は、生成した第１レイアウトデータｌ１に基づいて、クロックバッファセルの配置と、所定領域ａｒｅａ内に設けられるＦＦセルの配置と、を示す第２レイアウトデータｌ２を生成する。たとえば、設計支援装置１００は、自動配置配線ツールを用いて、第１レイアウトデータｌ１に基づいて、クロックツリー内のセルの配置と、所定領域ａｒｅａ内に設けられる、クロックツリー以外のセルの配置を示す第２レイアウトデータｌ２を生成する。
【００１３】
そして、設計支援装置１００は、生成した第２レイアウトデータｌ２を出力する。出力形式としては、たとえば、設計支援装置１００が有するＲＡＭ（Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やディスクなどの記憶装置への出力、設計支援装置１００が接続可能なインターネットを介して他の装置への出力などが挙げられる。
【００１４】
これにより、一定距離以内に最終段のクロックバッファセルがあるため、ＦＦセルがどの配置であってもクロックスキューが一定条件を満たすことができる。したがって、ＦＦセルの配置に要する処理量を低減できる。一定条件とは、設計者が定める条件であって、区切る際の一定間隔によって定まる。
【００１５】
また、設計支援装置１００は、領域内の最終段のクロックバッファセルと、領域内のＦＦセルと、を接続する。これにより、各ＦＦセルは、近い距離にある最終段のクロックバッファセルと接続されることになる。
【００１６】
また、たとえば、大規模な回路について、ＣＴＳ（Ｃｌｏｃｋ  Ｔｒｅｅ  Ｓｙｎｔｈｅｓｉｓ）などにより自動でクロックツリーを設計する手法では、クロックスキューを小さくするための処理量が多い。そのため、たとえば、大規模な回路についてクロックスキューを極力小さくさせるためには、人手によってクロックツリーの設計とＦＦセルの配置とが行われるが、ＦＦセルはクロックツリー内の最終段のクロックバッファセルの近傍に配置させなければならない。そのため、人手によるＦＦセルの配置では、ＦＦセルの配置の自由度が低い。一方、設計支援装置１００によれば、一定距離以内に最終段のクロックバッファセルがあるため、ＦＦセルの配置の自由度を向上させることができる。
【００１７】
また、たとえば、人手による設計において、ＦＦセルが追加されるような論理変更が発生すると、クロックスキューの一定条件を満たすために、どの最終段のクロックバッファに接続させるかなどの修正を行うことが困難である。一方、設計支援装置１００によれば、ＦＦセルをどの位置に配置させてもクロックスキューの一定条件を満たすことができるため、ＦＦセルの追加などの修正を容易化することができる。
【００１８】
ここで、回路の論理設計と、回路のレイアウト設計について、フローを用いて簡単に説明する。
【００１９】
図２は、ＣＡＤフロー例を示す説明図である。ここで、本実施の形態にかかるＣＡＤフローについて簡単に説明する。たとえば、回路の論理設計では、論理設計用に各セルの機能が定義されたセルライブラリ２０１に基づいて回路のネットリスト２０２が設計される（ステップＳ２０１）。ネットリスト２０２は、たとえば、設計対象となる回路内のセルの接続関係を示す情報である。ネットリスト２０２は、たとえば、ＶｅｒｉｌｏｇやＶＨＤＬ（Ｖｅｒｙ  ｈｉｇｈ  ｓｐｅｅｄ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）などのハードウェア記述言語やシステム記述言語によって記述される。
【００２０】
また、レイアウト設計では、論理設計によって得られたネットリスト２０２が示す各セルの接続関係を維持し、デザインルール２０４とセルライブラリ２０３とに基づいて、各セルの配置と、各セルの配線と、が行われる（ステップＳ２０２）。セルライブラリ２０３は、セルのタイプごとにセルのレイアウトデータを有する。デザインルール２０４は、回路内の各セルを形成するための各層についての情報や配線間のピッチなどのレイアウト設計におけるルールなどを有する。また、レイアウト設計では、予めＲＡＭなどのマクロが配置された後に（ステップＳ２１１）、設計支援装置１００によるレイアウト設計が行われ（ステップＳ２１２）、レイアウトデータ２０５が生成される。
【００２１】
また、図示していないが、レイアウト設計後に、タイミング解析などが行われ、タイミング解析結果に異常があれば、レイアウト設計によるセルの配置の修正などが行われる。
【００２２】
（設計支援装置１００のハードウェア構成例）
図３は、設計支援装置のハードウェア構成例を示すブロック図である。図３において、設計支援装置１００は、ＣＰＵ３０１と、ＲＯＭ３０２と、ＲＡＭ３０３と、ディスクドライブ３０４と、ディスク３０５と、を有する。設計支援装置１００は、Ｉ／Ｆ３０６と、入力装置３０７と、出力装置３０８と、を有する。また、各部はバス３００によってそれぞれ接続される。
【００２３】
ここで、ＣＰＵ３０１は、設計支援装置１００の全体の制御を司る。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶する。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。ディスクドライブ３０４は、ＣＰＵ３０１の制御にしたがってディスク３０５に対するデータのリード／ライトを制御する。ディスク３０５は、ディスクドライブ３０４の制御で書き込まれたデータを記憶する。ディスク３０５としては、磁気ディスクや光ディスクなどが挙げられる。
【００２４】
Ｉ／Ｆ３０６は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワークＮＥＴに接続され、このネットワークＮＥＴを介して他の装置に接続される。そして、Ｉ／Ｆ３０６は、ネットワークＮＥＴと内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ３０６には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２５】
入力装置３０７は、キーボード、マウス、タッチパネルなど利用者の操作により、各種データの入力を行うインターフェースである。また、入力装置３０７は、カメラから画像や動画を取り込むこともできる。また、入力装置３０７は、マイクから音声を取り込むこともできる。出力装置３０８は、ＣＰＵ３０１の指示により、データを出力するインターフェースである。出力装置３０８には、ディスプレイやプリンタが挙げられる。
【００２６】
（設計支援装置１００の機能的構成例）
図４は、設計支援装置の機能的構成例を示すブロック図である。設計支援装置１００は、領域サイズ算出部４０１と、領域情報生成部４０２と、第１データ生成部４０３と、第２データ生成部４０４と、を有する。さらに、設計支援装置１００は、判断部４０５と、検出部４０６と、距離算出部４０７と、選択部４０８と、対応情報生成部４０９と、出力部４１０と、を有する。各部の処理は、たとえば、ＣＰＵ３０１がアクセス可能な記憶装置に記憶された算出プログラムにコーディングされる。そして、ＣＰＵ３０１が記憶装置から算出プログラムを読み出して、試験支援プログラムにコーディングされている処理を実行する。これにより、各部の処理が実現される。また、各部の処理結果は、たとえば、ＲＡＭ３０３、ディスク３０５などの記憶装置に記憶される。
【００２７】
領域サイズ算出部４０１は、クロックバッファがクロック信号を正常に供給可能なＦＦの数に基づいて、回路内の所定領域ａｒｅａを区切る領域のサイズを算出する。回路内の所定領域ａｒｅａとは、たとえば、アナログ回路やマクロなどが配置される領域以外のスタンダードセルが配置可能な領域であってもよいし、利用者によって指定された領域であってもよい。ここで、クロック信号を供給可能なＦＦの数は、クロックバッファの駆動能力に基づいて定められ、接続可能個数と称する。
【００２８】
図５は、クロックバッファのタイプ別の領域サイズ対応表を示す説明図である。表５００は、クロックバッファのタイプごとに、接続可能個数と、総配線長目安値と、クロックバッファが最終段となった場合の所定領域ａｒｅａを区切る領域の外周と、が関連付けられた情報である。たとえば、表５００には、Ｃｌｏｃｋ  ｂｕｆｆｅｒ１〜４の各々に対応してレコード５０１−１〜５０１−４まで記憶されてある。総配線長目安値は、最終段のクロックバッファセルと、フリップフロップセルと、を接続する配線の経験値に基づく長さである。
【００２９】
ここでは、たとえば、ワーストケースの配線を考慮して、領域の外周は総配線長目安値にマージンを考慮することにより算出することとする。たとえば、領域の外周は以下式（１）のように表す。
【００３０】
領域の外周＝総配線長目安値×マージン・・・（１）
【００３１】
たとえば、経験値に基づいてマージンを５［％］とすると、Ｃｌｏｃｋ  ｂｕｆｆｅｒ２の場合、領域の外周は、２００×０．９５であり、１９０［μｍ］である。
【００３２】
つぎに、領域情報生成部４０２は、回路内の所定領域ａｒｅａを一定間隔で区切った複数の領域を示す領域情報を生成する。一定間隔は、領域サイズ算出部４０１によって算出された基準領域の外周に基づく値であり、ＲＡＭ３０３、ディスク３０５などの記憶装置に記憶されてある。
【００３３】
図６は、領域情報の一例を示す説明図である。領域情報は、たとえば、各領域を示す識別情報ごとに、領域内の頂点座標を有する。たとえば、所定領域ａｒｅａを区切った複数の領域のうち、代表して左上端にある領域の各々にａｒ１〜ａｒ９を付してある。たとえば、領域情報には、領域ａｒ１について、頂点（ｘ１，ｙ１）と頂点（ｘ２，ｙ２）と頂点（ｘ３，ｙ３）と頂点（ｘ４，ｙ４）の４つの頂点の情報を有する。
【００３４】
第１データ生成部４０３は、領域情報が示す複数の領域の各々に設けられる、他のセルにクロック信号を供給可能なクロックバッファセルと、クロックバッファセルの位置と、を示す第１レイアウトデータｌ１を生成する。他のセルにクロック信号を供給可能なクロックバッファセルとは、クロックツリーに含まれる最終段のクロックバッファセルであって、ＦＦセルに直接接続されるバッファセルである。
【００３５】
図７は、最終段のクロックバッファセルが各領域に配置された例を示す説明図である。具体的には、第１データ生成部４０３は、クロック供給源から最終段のクロックバッファセルまでの段数が同一としてクロックツリーを所定領域ａｒｅａ内に設けたレイアウトデータを生成する。また、たとえば、第１データ生成部４０３は、各領域内の中央に最終段のクロックバッファセルが配置されるようにする。これにより、スキューが少ないクロックツリーが生成される。また、ＲＡＭ３０３などのマクロの配置は、クロックバッファセルの配置前に完了させておく。
【００３６】
たとえば、領域ａｒ１には、クロックバッファセルＢ１が配置され、領域ａｒ２には、クロックバッファセルＢ２が配置され、領域ａｒ３には、クロックバッファセルＢ３が配置され、領域ａｒ４には、クロックバッファセルＢ４が配置される。たとえば、領域ａｒ５には、クロックバッファセルＢ５が配置され、領域ａｒ６には、クロックバッファセルＢ６が配置され、領域ａｒ７には、クロックバッファセルＢ７が配置される。たとえば、領域ａｒ８には、クロックバッファセルＢ８が配置され、領域ａｒ９には、クロックバッファセルＢ９が配置される。
【００３７】
図８は、クロックツリー例を示す説明図である。ここで生成されるクロックツリーｔｒｅｅでは、クロック供給源ｒｏｏｔ  ｃｌｏｃｋから最終段のクロックバッファセルまでの段数が同一とする。さらに、クロックツリーｔｒｅｅでは、クロック供給源ｒｏｏｔ  ｃｌｏｃｋから最終段のクロックバッファセルまでの間のバッファセルの配置間隔および配線の長さが等しいこととする。図８では、理解の容易化のために、ＦＦセルを示しているが、ここでは、ＦＦセルはまだ配置されていない。
【００３８】
つぎに、第２データ生成部４０４は、第１レイアウトデータｌ１に基づいて、クロックバッファセルの配置と、所定領域ａｒｅａ内に設けられるＦＦセルの配置と、を示す第２レイアウトデータｌ２を生成する。
【００３９】
図９は、ＦＦのセルが配置された例を示す説明図である。具体的には、第２データ生成部４０４は、回路を示すネットリスト２０２と、第１レイアウトデータｌ１に基づいて、ネットリスト２０２内のセルの自動配置配線を行うことにより、第２レイアウトデータｌ２を生成する。
【００４０】
出力部４１０は、第２レイアウトデータｌ２を出力する。出力形式としては、ディスク３０５などの記憶装置に記憶してもよいし、ディスプレイなどの出力装置３０８によって出力してもよいし、Ｉ／Ｆ３０６によってネットワークＮＥＴを介して他の装置に出力してもよい。
【００４１】
これにより、各ＦＦセルはどの位置に配置されても、一定距離以内にクロックバッファセルが配置されてある。したがって、ＦＦの配置に要する処理量を低減させることができる。また、第２レイアウトデータｌ２に基づいて、各ＦＦセルを配置の最も近いクロックバッファセルに接続させるだけで、クロックスキューが一定条件を満たすレイアウトデータが得られる。
【００４２】
（生成例１）
そして、対応情報生成部４０９は、第２レイアウトデータｌ２に基づいて、領域情報が示す複数の領域の各々について領域内のＦＦセルと、領域内のクロックバッファセルと、を対応付けた対応情報を生成する。
【００４３】
図１０は、生成例１を示す説明図である。たとえば、セルが配置済みのセル配置可能領域が複数の領域に区切られてある。２つの領域間を跨って配置されたＦＦセルについては、たとえば、図１０において左側の領域内のクロックバッファに対応付けられることとする。
【００４４】
図１１は、対応情報の一例を示す説明図である。対応情報１１００は、クロックバッファセル、およびＦＦセルのフィールドを有する。各フィールドに情報が設定されることにより、レコードとして記憶される。クロックバッファセルのフィールドには、各領域内に少なくとも１つ設けられるクロックバッファセルを示す識別情報が設定される。ＦＦセルのフィールドには、クロックバッファセルがある領域と同一の領域に設けられるＦＦセルを示す識別情報が設定される。
【００４５】
出力部４１０は、第２レイアウトデータｌ２と、対応情報１１００と、を関連付けて出力する。出力形式としては、ディスク３０５などの記憶装置に記憶してもよいし、ディスプレイなどの出力装置３０８によって出力してもよいし、Ｉ／Ｆ３０６によってネットワークＮＥＴを介して他の装置に出力してもよい。
【００４６】
これにより、各ＦＦセルが配置の最も近いクロックバッファセルに接続可能な情報を提供することができ、設計の容易化を図ることができる。
【００４７】
（生成例２）
また、判断部４０５は、第２レイアウトデータｌ２に基づいて、複数の領域の各々について、領域内のフリップフロップセルの数が、領域内のバッファセルについての接続可能個数よりも多いか少ないかを判断する。
【００４８】
図１２は、判断例を示す説明図である。領域ａｒ１内のＦＦセルの数はｎ個であるため、領域ａｒ１内のＦＦセルの数は接続可能個数と同一数であると判断される。領域ａｒ２内のＦＦセルの数は（ｎ−６）個であるため、領域ａｒ２内のＦＦセルの数は接続可能個数よりも少ないと判断される。領域ａｒ３内のＦＦセルの数は（ｎ−８）個であるため、領域ａｒ３内のＦＦセルの数は接続可能個数よりも少ないと判断される。
【００４９】
領域ａｒ４内のＦＦセルの数は（ｎ−３）個であるため、領域ａｒ４内のＦＦセルの数は接続可能個数よりも少ないと判断される。領域ａｒ５内のＦＦセルの数は（ｎ＋１）個であるため、領域ａｒ５内のＦＦセルの数は接続可能個数よりも多いと判断される。領域ａｒ６内のＦＦセルの数は（ｎ−７）個であるため、領域ａｒ６内のＦＦセルの数は接続可能個数よりも少ないと判断される。
【００５０】
領域ａｒ７内のＦＦセルの数は（ｎ−８）個であるため、領域ａｒ７内のＦＦセルの数は接続可能個数よりも少ないと判断される。領域ａｒ８内のＦＦセルの数は（ｎ）個であるため、領域ａｒ８内のＦＦセルの数は接続可能個数と同一数であると判断される。領域ａｒ９内のＦＦセルの数は（ｎ−１２）個であるため、領域ａｒ９内のＦＦセルの数は接続可能個数よりも少ないと判断される。
【００５１】
ＦＦセルの数が接続可能個数よりも多いと判断された領域を対象領域と称する。対応情報生成部４０９は、対象領域内のＦＦセルのうち、接続可能個数のＦＦセル以外のＦＦセルを、ＦＦセルの数が接続可能個数よりも少ないと判断された領域内のバッファセルに対応付けた対応情報１１００を生成する。
【００５２】
出力部４１０は、第２レイアウトデータｌ２と、対応情報１１００と、を関連付けて出力する。出力形式は、上述と同一であるため、ここでの詳細な説明を省略する。
【００５３】
また、検出部４０６は、領域内のＦＦセルの数が接続可能個数よりも少ないと判断された領域のうち対象領域に隣接する領域を検出する。これにより、ＦＦセルと、クロックバッファセルと、の距離が遠くならないようにすることができる。検出部４０６は、隣接する領域の中で、領域内のＦＦセルの数が最も少ない領域を検出してもよい。これにより、対象領域内のＦＦセルの数と、接続可能個数と、の差分が多くとも、接続可能個数よりも多いと判断された領域内のＦＦセルを検出された領域内のクロックバッファセルに接続させることができる。
【００５４】
対応情報生成部４０９は、接続可能個数のＦＦセル以外のＦＦセルを、検出された領域内のバッファセルに対応付けた対応情報１１００を生成する。
【００５５】
また、距離算出部４０７は、対象領域内のＦＦセルの各々と、検出された領域内のバッファセルと、の距離を算出する。選択部４０８は、対象領域内のＦＦセルの中で、算出された距離が短い順に、接続可能個数のＦＦセル以外のＦＦセルを選択する。対応情報生成部４０９は、選択されたＦＦセルを、検出された領域内のバッファセルに対応付けた対応情報１１００を生成する。
【００５６】
図１３は、生成例２を示す説明図である。たとえば、検出部４０６は、領域内のＦＦセルの数が最も少ない領域ａｒ９を検出する。たとえば、距離算出部４０７は、領域ａｒ９内のクロックバッファセルＢ９と、領域ａｒ５内のＦＦセルの各々と、の距離を算出する。領域ａｒ５では、ＦＦセルの数と接続可能個数との差分が１であるため、選択部４０８は、対象領域内のＦＦセルの中から、１つのＦＦセルを選択する。図の例では、ＦＦセルｆ１と領域ａｒ９内のクロックバッファセルＢ９と、の距離が最も短いため、選択部４０８はＦＦセルｆ１を選択する。
【００５７】
そして、対応情報生成部４０９は、ＦＦセルｆ１と、領域ａｒ９内のクロックバッファセルＢ９と、を対応付けた対応情報１１００を生成する。
【００５８】
図１４は、対応情報例２を示す説明図である。図１４に示すように、対応情報生成部４０９は、上述した対応情報１１００に含まれるＦＦセルｆ１を、領域ａｒ９内のクロックバッファセルＢ９に対応付けるように変更することによって生成してもよい。
【００５９】
出力部４１０は、第２レイアウトデータｌ２と、対応情報１１００と、を関連付けて出力する。出力形式としては、ディスク３０５などの記憶装置に記憶してもよいし、ディスプレイなどの出力装置３０８によって出力してもよいし、Ｉ／Ｆ３０６によってネットワークＮＥＴを介して他の装置に出力してもよい。
【００６０】
図１５は、生成例２における接続例を示す説明図である。設計支援装置１００は、第２レイアウトデータｌ２と対応情報１１００とに基づいて、第２レイアウトデータｌ２が示す各セルの配置と、ＦＦセルとＦＦセルに対応付けられたクロックバッファセルとの接続と、を示す第３レイアウトデータｌ３を生成する。図１５の例では、ＦＦセルｆ１はクロックバッファＢ９と接続され、他のＦＦセルは、ＦＦセルを含む領域と同一の領域内のクロックバッファセルに接続される。
【００６１】
（生成例３）
また、距離算出部４０７は、検出された領域内のバッファセルの各々について、検出された領域内のバッファセルと、対象領域内のフリップフロップセルの各々と、の距離を算出する。選択部４０８は、検出された領域内のバッファセルと、対象領域内のフリップフロップセルと、の組み合わせの中から、同一のフリップフロップセルを含む組み合わせを複数選択せず、算出された距離が短い順に、差分の組み合わせを選択する。ここでの差分は、対象領域内のフリップフロップセルの数と、接続可能個数と、の差分である。
【００６２】
対応情報生成部４０９は、選択部４０８によって選択された組み合わせに含まれるフリップフロップセルと、選択された組み合わせに含まれるバッファセルと、を対応付けた対応情報１１００を生成する。
【００６３】
図１６は、生成例３を示す説明図である。具体的には、ＦＦセルｆ２と、領域ａｒ２内のクロックバッファセルＢ２と、の距離が最も短く、接続可能個数よりも多いと判断された前記領域内のフリップフロップセルの数と、接続可能個数と、の差分が１つである。そのため、選択部４０８は、ＦＦセルｆ２と、領域ａｒ２内のクロックバッファセルＢ２と、の組み合わせを選択する。そして、対応情報生成部４０９は、ＦＦセルｆ２と、領域ａｒ２内のクロックバッファセルＢ２と、を対応付けた対応情報１１００を生成する。
【００６４】
図１７は、対応情報例３を示す説明図である。図１７に示すように、対応情報生成部４０９は、上述した対応情報１１００に含まれるＦＦセルｆ２を、領域ａｒ２内のクロックバッファセルＢ２に対応付けるように変更することによって生成してもよい。
【００６５】
図１８は、生成例３についての接続例を示す説明図である。設計支援装置１００は、第２レイアウトデータｌ２と対応情報１１００とに基づいて、第２レイアウトデータｌ２が示す各セルの配置と、ＦＦセルとＦＦセルに対応付けられたクロックバッファセルとの接続と、を示す第３レイアウトデータｌ３を生成する。図１８の例では、ＦＦセルｆ２はクロックバッファＢ２と接続され、他のＦＦセルは、ＦＦセルを含む領域と同一の領域内のクロックバッファセルに接続される。
【００６６】
図１９は、ＦＦセルが集中している例を示す説明図である。出力部４１０は、検出部４０６による検出によって隣接する領域が得られなかった場合、対応情報１１００の生成を行わずに、対象領域の周辺にＦＦセルの数が多いことを示す情報を出力する。図１９の例では、いずれも接続可能個数以上であるため、設計支援装置１００によれば、利用者に対して領域ａｒ３内のＦＦセルの接続先を変更することができないことを報告できる。
【００６７】
（設計支援装置１００による設計支援処理手順例）
図２０〜２３は、設計支援装置による設計支援処理手順例１を示すフローチャートである。設計支援装置１００は、クロックバッファの駆動可能個数を取得し（ステップＳ２００１）、スキューの条件を保証可能な範囲（基準領域のサイズ）を算出する（ステップＳ２００２）。ここでは、上述したように、基準領域の外周が算出される。設計支援装置１００は、回路内のセル配置可能領域を一定間隔で区切った複数の領域を示す領域情報を生成する（ステップＳ２００３）。一定間隔は、算出された基準領域の外周に基づく値である。
【００６８】
設計支援装置１００は、複数の領域の各々に最終段のクロックバッファが設けられるクロックツリーを示す第１レイアウトデータｌ１を生成する（ステップＳ２００４）。設計支援装置１００は、第１レイアウトデータｌ１に基づいて、クロックツリー以外のセル配置可能領域内に設けられるセルの配置を示す第２レイアウトデータｌ２を生成し（ステップＳ２００５）、第２レイアウトデータｌ２を出力する（ステップＳ２００６）。これにより、ＦＦセルがどの配置であっても、クロックスキューが一定条件を満たすため、ＦＦセルの配置に要する処理量を低減することができる。
【００６９】
設計支援装置１００は、複数の領域の各々について、領域内のＦＦセルと、領域内のバッファセルと、を対応付けた対応情報１１００を生成する（ステップＳ２００７）。設計支援装置１００は、第２レイアウトデータｌ２に対応情報１１００を関連付けて出力する（ステップＳ２００８）。これにより、ＦＦセルを最も近くに配置された最終段のクロックバッファセルに接続させる処理を容易化できる。
【００７０】
また、設計支援装置１００は、複数の領域の各々について、領域内のＦＦセルの数を計数し（ステップＳ２１０１）、各領域内のＦＦセルの数が最終段クロックバッファの接続可能個数より多いか少ないかを判断する（ステップＳ２１０２）。設計支援装置１００は、ＦＦセルの数が最終段クロックバッファの接続可能個数よりも多いと判断された領域の中で未選択の領域があるか否かを判断する（ステップＳ２１０３）。なお、ＦＦセルの数が接続可能個数よりも多いと判断された領域がない場合、ステップＳ２１０３においてＮｏであると判断される。
【００７１】
未選択の領域がある場合（ステップＳ２１０３：Ｙｅｓ）、設計支援装置１００は、ＦＦセルの数が接続可能個数よりも多いと判断された領域の中で未選択の領域から１つの領域を選択する（ステップＳ２１０４）。設計支援装置１００は、ＦＦセルの数が接続可能個数よりも少ないと判断された領域の中で、選択した領域に隣接する領域を検出する（ステップＳ２１０５）。設計支援装置１００は、ＦＦセルの数が接続可能個数よりも少ない領域の中から、選択した領域に隣接する領域が検出されたか否かを判断する（ステップＳ２１０６）。
【００７２】
ＦＦセルの数が接続可能個数よりも少ない領域の中に、選択した領域に隣接する領域がない場合（ステップＳ２１０６：Ｎｏ）、設計支援装置１００は、選択した領域の周辺の領域にＦＦセルが集中していることを示す情報を出力し（ステップＳ２１０９）、ステップＳ２１０３へ戻る。
【００７３】
ＦＦセルの数が接続可能個数よりも少ない領域の中に、選択した領域に隣接する領域がある場合（ステップＳ２１０６：Ｙｅｓ）、設計支援装置１００は、差分＝選択した領域内のＦＦの数−接続可能個数とする（ステップＳ２１０７）。そして、設計支援装置１００は、ステップＳ２１０５において複数の領域が検出されたか否かを判断する（ステップＳ２１０８）。
【００７４】
１領域だけが検出された場合（ステップＳ２１０８：Ｎｏ）、設計支援装置１００は、「空き量＝接続可能個数−検出した領域内のＦＦセルの数」とし（ステップＳ２２０１）、空き量＞差分であるか否かを判断する（ステップＳ２２０２）。空き量＞差分でない場合（ステップＳ２２０２：Ｎｏ）、ステップＳ２１０９へ移行する。空き量＞差分である場合（ステップＳ２２０２：Ｙｅｓ）、設計支援装置１００は、選択した領域内のＦＦセルの各々と、検出した領域内の最終段クロックバッファセルと、の距離を算出する（ステップＳ２２０３）。
【００７５】
設計支援装置１００は、選択した領域内のＦＦセルのうち、距離の短い順に、差分のＦＦセルを選択する（ステップＳ２２０４）。設計支援装置１００は、検出した領域内の最終段のクロックバッファセルと、選択したＦＦセルと、を対応付けた対応情報１１００を生成し（ステップＳ２２０５）。第２レイアウトデータｌ２に対応情報１１００を関連付けて出力し（ステップＳ２２０６）、ステップＳ２１０３へ移行する。
【００７６】
複数領域が検出された場合（ステップＳ２１０８：Ｙｅｓ）、設計支援装置１００は、「全体空き量＝検出した領域数×接続可能個数−検出した領域内のＦＦセルの総数」とし（ステップＳ２３０１）、全体空き量＞差分であるか否かを判断する（ステップＳ２３０２）。全体空き量＞差分でない場合（ステップＳ２３０２：Ｎｏ）、ステップＳ２１０９へ戻る。全体空き量＞差分である場合（ステップＳ２３０２：Ｙｅｓ）、設計支援装置１００は、検出した領域の中で、移動先領域となっていない領域のうち、ＦＦセルの数が最も少ない領域を移動先領域として検出する（ステップＳ２３０３）。
【００７７】
設計支援装置１００は、「空き量＝接続可能個数−移動先領域内のＦＦセルの数」とし（ステップＳ２３０４）、選択した領域内のＦＦセルの各々と、移動先領域内の最終段クロックバッファセルと、の距離を算出する（ステップＳ２３０５）。設計支援装置１００は、空き量＞差分であるか否かを判断する（ステップＳ２３０６）。空き量＞差分である場合（ステップＳ２３０６：Ｙｅｓ）、設計支援装置１００は、選択した領域内のＦＦセルのうち、距離の短い順に、差分のＦＦセルを選択する（ステップＳ２３０７）。空き量＞差分でない場合（ステップＳ２３０６：Ｎｏ）、設計支援装置１００は、選択した領域内のＦＦセルのうち、距離の短い順に、空き量のＦＦセルを選択する（ステップＳ２３０８）。
【００７８】
ステップＳ２３０７、またはステップＳ２３０８のつぎに、設計支援装置１００は、移動先領域内の最終段のクロックバッファセルと、選択したＦＦセルと、を対応付けた対応情報１１００を生成する（ステップＳ２３０９）。そして、設計支援装置１００は、第２レイアウトデータｌ２に対応情報１１００を関連付けて出力する（ステップＳ２３１０）。設計支援装置１００は、「差分＝差分−空き量」とし（ステップＳ２３１１）、差分＞０であるか否かを判断する（ステップＳ２３１２）。差分が０未満であれば、選択された領域内のＦＦセルはすべて接続先が決定していることを示す。差分＞０でない場合（ステップＳ２３１２：Ｎｏ）、ステップＳ２３０３へ戻る。差分＞０である場合（ステップＳ２３１２：Ｙｅｓ）、ステップＳ２１０３へ戻る。
【００７９】
未選択の領域がない場合（ステップＳ２１０３：Ｎｏ）、設計支援装置１００は、第２レイアウトデータｌ２と、対応情報１１００と、に基づいて、各ＦＦセルと最終段のクロックバッファセルとの接続を示す第３レイアウトデータｌ３を生成し（ステップＳ２１１０）、一連の処理を終了する。
【００８０】
また、図２１に示す設計支援手順では、ＦＦセルの数が多いと判断された領域について、領域内のＦＦセルを、ＦＦセルの数が少ないと判断された近傍の領域のクロックバッファセルに対応付けるが、これに限らない。たとえば、ＦＦセルの数が少ないと判断された領域について、領域内のクロックバッファセルと、ＦＦセルの数が多いと判断された近傍の領域のＦセルと、を対応付けるような設計支援手順であってもよい。
【００８１】
図２４は、設計支援装置による設計支援処理手順例２を示すフローチャートである。設計支援処理手順例２と設計支援処理手順例１との違いは、ステップＳ２１０８のＹｅｓの場合のつぎの処理である。そのため、図２０〜図２２については、設計支援処理手順例２と設計支援処理手順例１との処理が同一であるため図２０〜図２２についての詳細な説明を省略する。
【００８２】
ステップＳ２１０８のＹｅｓの場合のつぎに、設計支援装置１００は、「全体空き量＝検出した領域数×接続可能個数−検出した領域内のＦＦセルの総数」とし（ステップＳ２４０１）、全体空き量＞差分であるか否かを判断する（ステップＳ２４０２）。全体空き量＞差分である場合（ステップＳ２４０２：Ｙｅｓ）、設計支援装置１００は、検出した領域の各々について、選択した領域内のＦＦセルの各々と、検出した領域内の最終段クロックバッファセルと、の組み合わせの距離を算出する（ステップＳ２４０３）。
【００８３】
設計支援装置１００は、同一のＦＦセルを含む組み合わせを複数選択せずに、距離の短い順に、差分の組み合わせを選択する（ステップＳ２４０４）。そして、設計支援装置１００は、選択した組み合わせのＦＦセルと、選択した組み合わせの領域内のクロックバッファセルと、を関連付けた対応情報１１００を生成する（ステップＳ２４０５）。そして、設計支援装置１００は、第２レイアウトデータｌ２に対応情報１１００を関連付けて出力し（ステップＳ２４０６）、ステップＳ２１０３へ移行する。また、全体空き量＞差分でない場合（ステップＳ２４０２：Ｎｏ）、ステップＳ２１０９へ戻る。
【００８４】
以上説明したように、設計支援装置１００は、セル配置可能領域を一定間隔で区切り、クロック信号を供給可能なクロックバッファセルを区切った各領域に少なくとも１つ配置した後、ＦＦセルを配置する。これにより、ＦＦセルがどの配置でもクロックスキューが一定条件を満たすことができ、ＦＦセルの配置に要する処理量を低減させることができる。
【００８５】
また、設計支援装置１００は、同一領域内のＦＦセルとクロックバッファセルとを対応付けた対応情報１１００を生成する。これにより、各ＦＦセルを最も近いクロックバッファセルに接続させることを容易化できる。
【００８６】
また、設計支援装置１００は、各領域内のＦＦセルの数が供給可能個数より多いか少ないかを判断し、多いと判断された領域のＦＦセルを、少ないと判断された領域のクロックバッファセルに対応付けた対応情報１１００を生成する。これにより、各クロックバッファセルに供給可能個数までのＦＦセルを接続させることができる。
【００８７】
また、設計支援装置１００は、少ない領域と判断された領域の中で、多いと判断された領域に隣接する領域のクロックバッファセルと、多いと判断された領域内のＦＦセルと接続可能個数の差分の該領域内のＦＦセルと、を対応付けた対応情報１１００を生成する。これにより、より近いクロックバッファセルとＦＦセルとを接続させつつ、各クロックバッファセルに供給可能個数までのＦＦセルを接続させることができる。
【００８８】
また、設計支援装置１００は、該隣接する領域の中で、最もＦＦセルが少ない領域内のクロックバッファセルと、多いと判断された領域内のＦＦセルと接続可能個数との差分の該領域内のＦＦセルと、を対応付けた対応情報１１００を生成する。これにより、最も近いクロックバッファセルに接続できない場合であっても、より多くのＦＦセルを距離が近いクロックバッファセルに接続させることができる。
【００８９】
また、設計支援装置１００は、多いと判断された領域内のＦＦセルと、隣接する領域と、の距離を算出し、近い順に、差分の該領域内のＦＦセルと、隣接する領域内のクロックバッファセルと、を対応付けた対応情報１１００を生成する。これにより、最も近いクロックバッファセルに接続できない場合であっても、より近いＦＦセルとクロックバッファセルとを接続させることができる。
【００９０】
また、設計支援装置１００は、隣接する領域が得られなかった場合、多いと判断された領域の周辺にＦＦセルの数が多く配置されていることを示す情報を出力する。これにより、利用者は、ＦＦセルが密集して配置されることにより、クロックスキューが一定の条件を満たせない箇所を容易に得られる。
【００９１】
また、一定間隔は、クロックバッファセルがクロック信号を供給可能な数に基づく値である。これにより、同一領域のクロックバッファセルとＦＦセルとを接続することにより、クロックスキューが一定条件を満たすことができる。
【００９２】
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ディスク３０５、フラッシュメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネット等のネットワークＮＥＴを介して配布してもよい。
【００９３】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００９４】
（付記１）回路内の所定領域を一定間隔で区切った複数の領域を示す領域情報を生成する領域情報生成部と、
前記領域情報生成部によって生成された前記領域情報が示す前記複数の領域の各々に少なくとも１つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第１レイアウトデータを生成する第１データ生成部と、
前記第１データ生成部によって生成された前記第１レイアウトデータに基づいて、前記バッファセルの配置と、前記所定領域内に設けられるフリップフロップセルの配置と、を示す第２レイアウトデータを生成する第２データ生成部と、
前記第２データ生成部によって生成された前記第２レイアウトデータを出力する出力部と、
を有することを特徴とする設計支援装置。
【００９５】
（付記２）前記第２レイアウトデータに基づいて、前記複数の領域の各々について、前記領域内のフリップフロップセルと、前記領域内のバッファセルと、を対応付けた対応情報を生成する対応情報生成部を有し、
前記出力部は、
前記第２レイアウトデータと、前記対応情報生成部によって生成された前記対応情報と、を関連付けて出力することを特徴とする付記１に記載の設計支援装置。
【００９６】
（付記３）前記第２レイアウトデータに基づいて、前記複数の領域の各々について、前記領域内のフリップフロップセルの数が、前記領域内のバッファセルが前記クロック信号を供給可能な数よりも多いか少ないかを判断する判断部と、
前記判断部によって前記フリップフロップセルの数が前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルのうち、前記供給可能な数のフリップフロップセル以外のフリップフロップセルを、前記判断部によって前記フリップフロップセルの数が前記供給可能な数よりも少ないと判断された前記領域内のバッファセルに対応付けた対応情報を生成する対応情報生成部と、
を有し、
前記出力部は、
前記第２レイアウトデータと、前記対応情報生成部によって生成された前記対応情報と、を関連付けて出力することを特徴とする付記１または２に記載の設計支援装置。
【００９７】
（付記４）前記判断部によって前記領域内のフリップフロップセルの数が前記供給可能な数よりも少ないと判断された領域のうち、前記供給可能な数よりも多いと判断された前記領域に隣接する領域を検出する検出部を有し、
前記対応情報生成部は、
前記供給可能な数のフリップフロップセル以外のフリップフロップセルを、前記検出部によって検出された前記領域内のバッファセルに対応付けた対応情報を生成することを特徴とする付記３に記載の設計支援装置。
【００９８】
（付記５）前記検出部は、
前記隣接する領域の中で、前記領域内のフリップフロップセルの数が最も少ない領域を検出することを特徴とする付記４に記載の設計支援装置。
【００９９】
（付記６）前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルの各々と、検出された前記領域内のバッファセルと、の距離を算出する算出部と、
前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルの中で、前記算出部によって算出された距離が短い順に、前記供給可能な数のフリップフロップセル以外のフリップフロップセルを選択する選択部と、
を有し、
前記対応情報生成部は、
前記選択部によって選択されたフリップフロップセルを、検出された前記領域内のバッファセルに対応付けた対応情報を生成することを特徴とする付記４または５に記載の設計支援装置。
【０１００】
（付記７）検出された前記領域の各々について、検出された前記領域内のバッファセルと、前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルの各々と、の距離を算出する算出部と、
検出された前記領域内のバッファセルと、前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルと、の組み合わせの中から、同一のフリップフロップセルを含む組み合わせを複数選択せず、前記算出部によって算出された距離が短い順に、前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルの数と、前記供給可能な数と、の差分の組み合わせを選択する選択部と、
を有し、
前記対応情報生成部は、
前記選択部によって選択された前記組み合わせに含まれるフリップフロップセルと、選択された前記組み合わせに含まれるバッファセルと、を対応付けた対応情報を生成することを特徴とする付記４に記載の設計支援装置。
【０１０１】
（付記８）前記出力部は、
前記検出部による検出によって前記隣接する領域が得られなかった場合、前記対応情報生成部による前記対応情報の生成を行わずに、前記供給可能な数よりも多いと判断された前記領域の周辺に前記フリップフロップセルの数が多いことを示す情報を出力することを特徴とする付記４〜６のいずれか一つに記載の設計支援装置。
【０１０２】
（付記９）前記一定間隔は、前記バッファセルが前記クロック信号を供給可能な数に基づく値であることを特徴とする付記１〜７のいずれか一つに記載の設計支援装置。
【０１０３】
（付記１０）コンピュータが、
回路内の所定領域を一定間隔で区切った複数の領域を示す領域情報を生成し、
生成した前記領域情報が示す前記複数の領域の各々に少なくとも１つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第１レイアウトデータを生成し、
生成した前記第１レイアウトデータに基づいて、前記バッファセルの配置と、前記所定領域内に設けられるフリップフロップセルの配置と、を示す第２レイアウトデータを生成する、
処理を実行することを特徴とする設計支援方法。
【０１０４】
（付記１１）コンピュータに、
回路内の所定領域を一定間隔で区切った複数の領域を示す領域情報を生成し、
生成した前記領域情報が示す前記複数の領域の各々に少なくとも１つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第１レイアウトデータを生成し、
生成した前記第１レイアウトデータに基づいて、前記バッファセルの配置と、前記所定領域内に設けられるフリップフロップセルの配置と、を示す第２レイアウトデータを生成する、
処理を実行させることを特徴とする設計支援プログラム。
【０１０５】
（付記１２）回路内の所定領域を一定間隔で区切った複数の領域を示す領域情報を生成し、
生成した前記領域情報が示す前記複数の領域の各々に少なくとも１つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第１レイアウトデータを生成し、
生成した前記第１レイアウトデータに基づいて、前記バッファセルの配置と、前記所定領域内に設けられるフリップフロップセルの配置と、を示す第２レイアウトデータを生成する、
処理をコンピュータに実行させる設計支援プログラムを記録したことを特徴とする記録媒体。
【符号の説明】
【０１０６】
１００  設計支援装置
４０２  領域情報生成部
４０３  第１データ生成部
４０４  第２データ生成部
４０５  判断部
４０６  検出部
４０７  距離算出部
４０８  選択部
４０９  対応情報生成部
４１０  出力部
１１００  対応情報
ａｒｅａ  所定領域
ａ１〜ａ４，ａｒ１〜ａｒ９  領域
ｂｕｆ１〜ｂｕｆ４，Ｂ１〜Ｂ９  クロックバッファセル
ｌ１  第１レイアウトデータ
ｌ２  第２レイアウトデータ
【図１】
2014186648.tif 000003
【図２】
2014186648.tif 000004
【図３】
2014186648.tif 000005
【図４】
2014186648.tif 000006
【図５】
2014186648.tif 000007
【図６】
2014186648.tif 000008
【図７】
2014186648.tif 000009
【図８】
2014186648.tif 000010
【図９】
2014186648.tif 000011
【図１０】
2014186648.tif 000012
【図１１】
2014186648.tif 000013
【図１２】
2014186648.tif 000014
【図１３】
2014186648.tif 000015
【図１４】
2014186648.tif 000016
【図１５】
2014186648.tif 000017
【図１６】
2014186648.tif 000018
【図１７】
2014186648.tif 000019
【図１８】
2014186648.tif 000020
【図１９】
2014186648.tif 000021
【図２０】
2014186648.tif 000022
【図２１】
2014186648.tif 000023
【図２２】
2014186648.tif 000024
【図２３】
2014186648.tif 000025
【図２４】
2014186648.tif 000026