JP6136430B2 - 設計支援装置、設計支援方法、および設計支援プログラム - Google Patents

設計支援装置、設計支援方法、および設計支援プログラム Download PDF

Info

Publication number
JP6136430B2
JP6136430B2 JP2013062350A JP2013062350A JP6136430B2 JP 6136430 B2 JP6136430 B2 JP 6136430B2 JP 2013062350 A JP2013062350 A JP 2013062350A JP 2013062350 A JP2013062350 A JP 2013062350A JP 6136430 B2 JP6136430 B2 JP 6136430B2
Authority
JP
Japan
Prior art keywords
region
cells
flip
flop
layout data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013062350A
Other languages
English (en)
Other versions
JP2014186648A (ja
Inventor
彰子 笠井
彰子 笠井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013062350A priority Critical patent/JP6136430B2/ja
Priority to US14/156,501 priority patent/US20140289691A1/en
Publication of JP2014186648A publication Critical patent/JP2014186648A/ja
Application granted granted Critical
Publication of JP6136430B2 publication Critical patent/JP6136430B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Architecture (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、設計支援装置、設計支援方法、および設計支援プログラムに関する。
従来、回路のレイアウト設計では、クロックツリーを手動で設計したり、自動で生成したりする技術が知られている。たとえば、フリップフロップ(以下「FF(Flip Flop」)と称する。)を配置した後に、複数のFFのマンハッタン長に基づいて、クロックスキューを小さくするようにクロックバッファを挿入する技術がある(たとえば、下記特許文献1参照)。
特開平10−229128号公報
しかしながら、レイアウト設計では、たとえば、クロックスキューの条件を満たすようにクロックツリーの最終段のクロックバッファとFFとを近くにしつつ、FFのデータ信号線などに関する条件を満たすように各セルが配置される。そのため、各セルの配置に要する処理量が大きくなるという問題点がある。
1つの側面では、本発明は、処理量の低減を図ることができる設計支援装置、設計支援方法、および設計支援プログラムを提供することを目的とする。
本発明の一側面によれば、回路内の所定領域を一定間隔で区切った複数の領域を示す領域情報を生成し、生成した前記領域情報が示す前記複数の領域の各々に少なくとも1つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第1レイアウトデータを生成し、生成した前記第1レイアウトデータに基づいて、前記バッファセルの配置と、前記所定領域内に設けられるフリップフロップセルの配置と、を示す第2レイアウトデータを生成する設計支援装置、設計支援方法、および設計支援プログラムが提案される。
本発明の一態様によれば、処理量の低減を図ることができる。
図1は、設計支援装置による一動作例を示す説明図である。 図2は、CADフロー例を示す説明図である。 図3は、設計支援装置のハードウェア構成例を示すブロック図である。 図4は、設計支援装置の機能的構成例を示すブロック図である。 図5は、クロックバッファのタイプ別の領域サイズ対応表を示す説明図である。 図6は、領域情報の一例を示す説明図である。 図7は、最終段のクロックバッファセルが各領域に配置された例を示す説明図である。 図8は、クロックツリー例を示す説明図である。 図9は、FFのセルが配置された例を示す説明図である。 図10は、生成例1を示す説明図である。 図11は、対応情報の一例を示す説明図である。 図12は、判断例を示す説明図である。 図13は、生成例2を示す説明図である。 図14は、対応情報例2を示す説明図である。 図15は、生成例2における接続例を示す説明図である。 図16は、生成例3を示す説明図である。 図17は、対応情報例3を示す説明図である。 図18は、生成例3についての接続例を示す説明図である。 図19は、FFセルが集中している例を示す説明図である。 図20は、設計支援装置による設計支援処理手順例1を示すフローチャート(その1)である。 図21は、設計支援装置による設計支援処理手順例1を示すフローチャート(その2)である。 図22は、設計支援装置による設計支援処理手順例1を示すフローチャート(その3)である。 図23は、設計支援装置による設計支援処理手順例1を示すフローチャート(その4)である。 図24は、設計支援装置による設計支援処理手順例2を示すフローチャートである。
以下に添付図面を参照して、本発明にかかる設計支援装置、設計支援方法、および設計支援プログラムの実施の形態を詳細に説明する。
図1は、設計支援装置による一動作例を示す説明図である。設計支援装置100は、半導体集積回路などの回路のレイアウトデータの設計を支援するコンピュータである。まず、設計支援装置100は、回路内の所定領域areaを一定間隔で区切った複数の領域a1〜a4を示す領域情報を生成する。一定間隔は、クロックバッファの駆動能力に基づいて定まる。所定領域areaは、たとえば、セル配置可能領域であり、回路内のディジタル回路などのスタンダードセルによって設計される領域である。
そして、設計支援装置100は、生成した領域情報が示す複数の領域a1〜a4の各々に少なくとも1つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第1レイアウトデータl1を生成する。図1の例には、複数の領域a1〜a4の各々に、クロックバッファセルbuf1〜buf4が配置されてある。他のセルにクロック信号を供給可能なバッファセルとは、たとえば、クロックツリー内の最終段のクロックバッファである。そのため、第1レイアウトデータl1では、クロックツリーに含まれる各セルが配置される。たとえば、クロックツリーは、クロック供給源から最終段のクロックバッファセルまでの段数が同一であり、クロック供給源から最終段のクロックバッファセルまでの間のバッファセルの配置間隔および配線の長さが等しいこととする。クロックツリーの一例は、図8に示す。
設計支援装置100は、生成した第1レイアウトデータl1に基づいて、クロックバッファセルの配置と、所定領域area内に設けられるFFセルの配置と、を示す第2レイアウトデータl2を生成する。たとえば、設計支援装置100は、自動配置配線ツールを用いて、第1レイアウトデータl1に基づいて、クロックツリー内のセルの配置と、所定領域area内に設けられる、クロックツリー以外のセルの配置を示す第2レイアウトデータl2を生成する。
そして、設計支援装置100は、生成した第2レイアウトデータl2を出力する。出力形式としては、たとえば、設計支援装置100が有するRAM(Randam Access Memory)やディスクなどの記憶装置への出力、設計支援装置100が接続可能なインターネットを介して他の装置への出力などが挙げられる。
これにより、一定距離以内に最終段のクロックバッファセルがあるため、FFセルがどの配置であってもクロックスキューが一定条件を満たすことができる。したがって、FFセルの配置に要する処理量を低減できる。一定条件とは、設計者が定める条件であって、区切る際の一定間隔によって定まる。
また、設計支援装置100は、領域内の最終段のクロックバッファセルと、領域内のFFセルと、を接続する。これにより、各FFセルは、近い距離にある最終段のクロックバッファセルと接続されることになる。
また、たとえば、大規模な回路について、CTS(Clock Tree Synthesis)などにより自動でクロックツリーを設計する手法では、クロックスキューを小さくするための処理量が多い。そのため、たとえば、大規模な回路についてクロックスキューを極力小さくさせるためには、人手によってクロックツリーの設計とFFセルの配置とが行われるが、FFセルはクロックツリー内の最終段のクロックバッファセルの近傍に配置させなければならない。そのため、人手によるFFセルの配置では、FFセルの配置の自由度が低い。一方、設計支援装置100によれば、一定距離以内に最終段のクロックバッファセルがあるため、FFセルの配置の自由度を向上させることができる。
また、たとえば、人手による設計において、FFセルが追加されるような論理変更が発生すると、クロックスキューの一定条件を満たすために、どの最終段のクロックバッファに接続させるかなどの修正を行うことが困難である。一方、設計支援装置100によれば、FFセルをどの位置に配置させてもクロックスキューの一定条件を満たすことができるため、FFセルの追加などの修正を容易化することができる。
ここで、回路の論理設計と、回路のレイアウト設計について、フローを用いて簡単に説明する。
図2は、CADフロー例を示す説明図である。ここで、本実施の形態にかかるCADフローについて簡単に説明する。たとえば、回路の論理設計では、論理設計用に各セルの機能が定義されたセルライブラリ201に基づいて回路のネットリスト202が設計される(ステップS201)。ネットリスト202は、たとえば、設計対象となる回路内のセルの接続関係を示す情報である。ネットリスト202は、たとえば、VerilogやVHDL(Very high speed integrated circuit Hardware Description Language)などのハードウェア記述言語やシステム記述言語によって記述される。
また、レイアウト設計では、論理設計によって得られたネットリスト202が示す各セルの接続関係を維持し、デザインルール204とセルライブラリ203とに基づいて、各セルの配置と、各セルの配線と、が行われる(ステップS202)。セルライブラリ203は、セルのタイプごとにセルのレイアウトデータを有する。デザインルール204は、回路内の各セルを形成するための各層についての情報や配線間のピッチなどのレイアウト設計におけるルールなどを有する。また、レイアウト設計では、予めRAMなどのマクロが配置された後に(ステップS211)、設計支援装置100によるレイアウト設計が行われ(ステップS212)、レイアウトデータ205が生成される。
また、図示していないが、レイアウト設計後に、タイミング解析などが行われ、タイミング解析結果に異常があれば、レイアウト設計によるセルの配置の修正などが行われる。
(設計支援装置100のハードウェア構成例)
図3は、設計支援装置のハードウェア構成例を示すブロック図である。図3において、設計支援装置100は、CPU301と、ROM302と、RAM303と、ディスクドライブ304と、ディスク305と、を有する。設計支援装置100は、I/F306と、入力装置307と、出力装置308と、を有する。また、各部はバス300によってそれぞれ接続される。
ここで、CPU301は、設計支援装置100の全体の制御を司る。ROM302は、ブートプログラムなどのプログラムを記憶する。RAM303は、CPU301のワークエリアとして使用される。ディスクドライブ304は、CPU301の制御にしたがってディスク305に対するデータのリード/ライトを制御する。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する。ディスク305としては、磁気ディスクや光ディスクなどが挙げられる。
I/F306は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワークNETに接続され、このネットワークNETを介して他の装置に接続される。そして、I/F306は、ネットワークNETと内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F306には、たとえばモデムやLANアダプタなどを採用することができる。
入力装置307は、キーボード、マウス、タッチパネルなど利用者の操作により、各種データの入力を行うインターフェースである。また、入力装置307は、カメラから画像や動画を取り込むこともできる。また、入力装置307は、マイクから音声を取り込むこともできる。出力装置308は、CPU301の指示により、データを出力するインターフェースである。出力装置308には、ディスプレイやプリンタが挙げられる。
(設計支援装置100の機能的構成例)
図4は、設計支援装置の機能的構成例を示すブロック図である。設計支援装置100は、領域サイズ算出部401と、領域情報生成部402と、第1データ生成部403と、第2データ生成部404と、を有する。さらに、設計支援装置100は、判断部405と、検出部406と、距離算出部407と、選択部408と、対応情報生成部409と、出力部410と、を有する。各部の処理は、たとえば、CPU301がアクセス可能な記憶装置に記憶された算出プログラムにコーディングされる。そして、CPU301が記憶装置から算出プログラムを読み出して、試験支援プログラムにコーディングされている処理を実行する。これにより、各部の処理が実現される。また、各部の処理結果は、たとえば、RAM303、ディスク305などの記憶装置に記憶される。
領域サイズ算出部401は、クロックバッファがクロック信号を正常に供給可能なFFの数に基づいて、回路内の所定領域areaを区切る領域のサイズを算出する。回路内の所定領域areaとは、たとえば、アナログ回路やマクロなどが配置される領域以外のスタンダードセルが配置可能な領域であってもよいし、利用者によって指定された領域であってもよい。ここで、クロック信号を供給可能なFFの数は、クロックバッファの駆動能力に基づいて定められ、接続可能個数と称する。
図5は、クロックバッファのタイプ別の領域サイズ対応表を示す説明図である。表500は、クロックバッファのタイプごとに、接続可能個数と、総配線長目安値と、クロックバッファが最終段となった場合の所定領域areaを区切る領域の外周と、が関連付けられた情報である。たとえば、表500には、Clock buffer1〜4の各々に対応してレコード501−1〜501−4まで記憶されてある。総配線長目安値は、最終段のクロックバッファセルと、フリップフロップセルと、を接続する配線の経験値に基づく長さである。
ここでは、たとえば、ワーストケースの配線を考慮して、領域の外周は総配線長目安値にマージンを考慮することにより算出することとする。たとえば、領域の外周は以下式(1)のように表す。
領域の外周=総配線長目安値×マージン・・・(1)
たとえば、経験値に基づいてマージンを5[%]とすると、Clock buffer2の場合、領域の外周は、200×0.95であり、190[μm]である。
つぎに、領域情報生成部402は、回路内の所定領域areaを一定間隔で区切った複数の領域を示す領域情報を生成する。一定間隔は、領域サイズ算出部401によって算出された基準領域の外周に基づく値であり、RAM303、ディスク305などの記憶装置に記憶されてある。
図6は、領域情報の一例を示す説明図である。領域情報は、たとえば、各領域を示す識別情報ごとに、領域内の頂点座標を有する。たとえば、所定領域areaを区切った複数の領域のうち、代表して左上端にある領域の各々にar1〜ar9を付してある。たとえば、領域情報には、領域ar1について、頂点(x1,y1)と頂点(x2,y2)と頂点(x3,y3)と頂点(x4,y4)の4つの頂点の情報を有する。
第1データ生成部403は、領域情報が示す複数の領域の各々に設けられる、他のセルにクロック信号を供給可能なクロックバッファセルと、クロックバッファセルの位置と、を示す第1レイアウトデータl1を生成する。他のセルにクロック信号を供給可能なクロックバッファセルとは、クロックツリーに含まれる最終段のクロックバッファセルであって、FFセルに直接接続されるバッファセルである。
図7は、最終段のクロックバッファセルが各領域に配置された例を示す説明図である。具体的には、第1データ生成部403は、クロック供給源から最終段のクロックバッファセルまでの段数が同一としてクロックツリーを所定領域area内に設けたレイアウトデータを生成する。また、たとえば、第1データ生成部403は、各領域内の中央に最終段のクロックバッファセルが配置されるようにする。これにより、スキューが少ないクロックツリーが生成される。また、RAM303などのマクロの配置は、クロックバッファセルの配置前に完了させておく。
たとえば、領域ar1には、クロックバッファセルB1が配置され、領域ar2には、クロックバッファセルB2が配置され、領域ar3には、クロックバッファセルB3が配置され、領域ar4には、クロックバッファセルB4が配置される。たとえば、領域ar5には、クロックバッファセルB5が配置され、領域ar6には、クロックバッファセルB6が配置され、領域ar7には、クロックバッファセルB7が配置される。たとえば、領域ar8には、クロックバッファセルB8が配置され、領域ar9には、クロックバッファセルB9が配置される。
図8は、クロックツリー例を示す説明図である。ここで生成されるクロックツリーtreeでは、クロック供給源root clockから最終段のクロックバッファセルまでの段数が同一とする。さらに、クロックツリーtreeでは、クロック供給源root clockから最終段のクロックバッファセルまでの間のバッファセルの配置間隔および配線の長さが等しいこととする。図8では、理解の容易化のために、FFセルを示しているが、ここでは、FFセルはまだ配置されていない。
つぎに、第2データ生成部404は、第1レイアウトデータl1に基づいて、クロックバッファセルの配置と、所定領域area内に設けられるFFセルの配置と、を示す第2レイアウトデータl2を生成する。
図9は、FFのセルが配置された例を示す説明図である。具体的には、第2データ生成部404は、回路を示すネットリスト202と、第1レイアウトデータl1に基づいて、ネットリスト202内のセルの自動配置配線を行うことにより、第2レイアウトデータl2を生成する。
出力部410は、第2レイアウトデータl2を出力する。出力形式としては、ディスク305などの記憶装置に記憶してもよいし、ディスプレイなどの出力装置308によって出力してもよいし、I/F306によってネットワークNETを介して他の装置に出力してもよい。
これにより、各FFセルはどの位置に配置されても、一定距離以内にクロックバッファセルが配置されてある。したがって、FFの配置に要する処理量を低減させることができる。また、第2レイアウトデータl2に基づいて、各FFセルを配置の最も近いクロックバッファセルに接続させるだけで、クロックスキューが一定条件を満たすレイアウトデータが得られる。
(生成例1)
そして、対応情報生成部409は、第2レイアウトデータl2に基づいて、領域情報が示す複数の領域の各々について領域内のFFセルと、領域内のクロックバッファセルと、を対応付けた対応情報を生成する。
図10は、生成例1を示す説明図である。たとえば、セルが配置済みのセル配置可能領域が複数の領域に区切られてある。2つの領域間を跨って配置されたFFセルについては、たとえば、図10において左側の領域内のクロックバッファに対応付けられることとする。
図11は、対応情報の一例を示す説明図である。対応情報1100は、クロックバッファセル、およびFFセルのフィールドを有する。各フィールドに情報が設定されることにより、レコードとして記憶される。クロックバッファセルのフィールドには、各領域内に少なくとも1つ設けられるクロックバッファセルを示す識別情報が設定される。FFセルのフィールドには、クロックバッファセルがある領域と同一の領域に設けられるFFセルを示す識別情報が設定される。
出力部410は、第2レイアウトデータl2と、対応情報1100と、を関連付けて出力する。出力形式としては、ディスク305などの記憶装置に記憶してもよいし、ディスプレイなどの出力装置308によって出力してもよいし、I/F306によってネットワークNETを介して他の装置に出力してもよい。
これにより、各FFセルが配置の最も近いクロックバッファセルに接続可能な情報を提供することができ、設計の容易化を図ることができる。
(生成例2)
また、判断部405は、第2レイアウトデータl2に基づいて、複数の領域の各々について、領域内のフリップフロップセルの数が、領域内のバッファセルについての接続可能個数よりも多いか少ないかを判断する。
図12は、判断例を示す説明図である。領域ar1内のFFセルの数はn個であるため、領域ar1内のFFセルの数は接続可能個数と同一数であると判断される。領域ar2内のFFセルの数は(n−6)個であるため、領域ar2内のFFセルの数は接続可能個数よりも少ないと判断される。領域ar3内のFFセルの数は(n−8)個であるため、領域ar3内のFFセルの数は接続可能個数よりも少ないと判断される。
領域ar4内のFFセルの数は(n−3)個であるため、領域ar4内のFFセルの数は接続可能個数よりも少ないと判断される。領域ar5内のFFセルの数は(n+1)個であるため、領域ar5内のFFセルの数は接続可能個数よりも多いと判断される。領域ar6内のFFセルの数は(n−7)個であるため、領域ar6内のFFセルの数は接続可能個数よりも少ないと判断される。
領域ar7内のFFセルの数は(n−8)個であるため、領域ar7内のFFセルの数は接続可能個数よりも少ないと判断される。領域ar8内のFFセルの数は(n)個であるため、領域ar8内のFFセルの数は接続可能個数と同一数であると判断される。領域ar9内のFFセルの数は(n−12)個であるため、領域ar9内のFFセルの数は接続可能個数よりも少ないと判断される。
FFセルの数が接続可能個数よりも多いと判断された領域を対象領域と称する。対応情報生成部409は、対象領域内のFFセルのうち、接続可能個数のFFセル以外のFFセルを、FFセルの数が接続可能個数よりも少ないと判断された領域内のバッファセルに対応付けた対応情報1100を生成する。
出力部410は、第2レイアウトデータl2と、対応情報1100と、を関連付けて出力する。出力形式は、上述と同一であるため、ここでの詳細な説明を省略する。
また、検出部406は、領域内のFFセルの数が接続可能個数よりも少ないと判断された領域のうち対象領域に隣接する領域を検出する。これにより、FFセルと、クロックバッファセルと、の距離が遠くならないようにすることができる。検出部406は、隣接する領域の中で、領域内のFFセルの数が最も少ない領域を検出してもよい。これにより、対象領域内のFFセルの数と、接続可能個数と、の差分が多くとも、接続可能個数よりも多いと判断された領域内のFFセルを検出された領域内のクロックバッファセルに接続させることができる。
対応情報生成部409は、接続可能個数のFFセル以外のFFセルを、検出された領域内のバッファセルに対応付けた対応情報1100を生成する。
また、距離算出部407は、対象領域内のFFセルの各々と、検出された領域内のバッファセルと、の距離を算出する。選択部408は、対象領域内のFFセルの中で、算出された距離が短い順に、接続可能個数のFFセル以外のFFセルを選択する。対応情報生成部409は、選択されたFFセルを、検出された領域内のバッファセルに対応付けた対応情報1100を生成する。
図13は、生成例2を示す説明図である。たとえば、検出部406は、領域内のFFセルの数が最も少ない領域ar9を検出する。たとえば、距離算出部407は、領域ar9内のクロックバッファセルB9と、領域ar5内のFFセルの各々と、の距離を算出する。領域ar5では、FFセルの数と接続可能個数との差分が1であるため、選択部408は、対象領域内のFFセルの中から、1つのFFセルを選択する。図の例では、FFセルf1と領域ar9内のクロックバッファセルB9と、の距離が最も短いため、選択部408はFFセルf1を選択する。
そして、対応情報生成部409は、FFセルf1と、領域ar9内のクロックバッファセルB9と、を対応付けた対応情報1100を生成する。
図14は、対応情報例2を示す説明図である。図14に示すように、対応情報生成部409は、上述した対応情報1100に含まれるFFセルf1を、領域ar9内のクロックバッファセルB9に対応付けるように変更することによって生成してもよい。
出力部410は、第2レイアウトデータl2と、対応情報1100と、を関連付けて出力する。出力形式としては、ディスク305などの記憶装置に記憶してもよいし、ディスプレイなどの出力装置308によって出力してもよいし、I/F306によってネットワークNETを介して他の装置に出力してもよい。
図15は、生成例2における接続例を示す説明図である。設計支援装置100は、第2レイアウトデータl2と対応情報1100とに基づいて、第2レイアウトデータl2が示す各セルの配置と、FFセルとFFセルに対応付けられたクロックバッファセルとの接続と、を示す第3レイアウトデータl3を生成する。図15の例では、FFセルf1はクロックバッファB9と接続され、他のFFセルは、FFセルを含む領域と同一の領域内のクロックバッファセルに接続される。
(生成例3)
また、距離算出部407は、検出された領域内のバッファセルの各々について、検出された領域内のバッファセルと、対象領域内のフリップフロップセルの各々と、の距離を算出する。選択部408は、検出された領域内のバッファセルと、対象領域内のフリップフロップセルと、の組み合わせの中から、同一のフリップフロップセルを含む組み合わせを複数選択せず、算出された距離が短い順に、差分の組み合わせを選択する。ここでの差分は、対象領域内のフリップフロップセルの数と、接続可能個数と、の差分である。
対応情報生成部409は、選択部408によって選択された組み合わせに含まれるフリップフロップセルと、選択された組み合わせに含まれるバッファセルと、を対応付けた対応情報1100を生成する。
図16は、生成例3を示す説明図である。具体的には、FFセルf2と、領域ar2内のクロックバッファセルB2と、の距離が最も短く、接続可能個数よりも多いと判断された前記領域内のフリップフロップセルの数と、接続可能個数と、の差分が1つである。そのため、選択部408は、FFセルf2と、領域ar2内のクロックバッファセルB2と、の組み合わせを選択する。そして、対応情報生成部409は、FFセルf2と、領域ar2内のクロックバッファセルB2と、を対応付けた対応情報1100を生成する。
図17は、対応情報例3を示す説明図である。図17に示すように、対応情報生成部409は、上述した対応情報1100に含まれるFFセルf2を、領域ar2内のクロックバッファセルB2に対応付けるように変更することによって生成してもよい。
図18は、生成例3についての接続例を示す説明図である。設計支援装置100は、第2レイアウトデータl2と対応情報1100とに基づいて、第2レイアウトデータl2が示す各セルの配置と、FFセルとFFセルに対応付けられたクロックバッファセルとの接続と、を示す第3レイアウトデータl3を生成する。図18の例では、FFセルf2はクロックバッファB2と接続され、他のFFセルは、FFセルを含む領域と同一の領域内のクロックバッファセルに接続される。
図19は、FFセルが集中している例を示す説明図である。出力部410は、検出部406による検出によって隣接する領域が得られなかった場合、対応情報1100の生成を行わずに、対象領域の周辺にFFセルの数が多いことを示す情報を出力する。図19の例では、いずれも接続可能個数以上であるため、設計支援装置100によれば、利用者に対して領域ar3内のFFセルの接続先を変更することができないことを報告できる。
(設計支援装置100による設計支援処理手順例)
図20〜23は、設計支援装置による設計支援処理手順例1を示すフローチャートである。設計支援装置100は、クロックバッファの駆動可能個数を取得し(ステップS2001)、スキューの条件を保証可能な範囲(基準領域のサイズ)を算出する(ステップS2002)。ここでは、上述したように、基準領域の外周が算出される。設計支援装置100は、回路内のセル配置可能領域を一定間隔で区切った複数の領域を示す領域情報を生成する(ステップS2003)。一定間隔は、算出された基準領域の外周に基づく値である。
設計支援装置100は、複数の領域の各々に最終段のクロックバッファが設けられるクロックツリーを示す第1レイアウトデータl1を生成する(ステップS2004)。設計支援装置100は、第1レイアウトデータl1に基づいて、クロックツリー以外のセル配置可能領域内に設けられるセルの配置を示す第2レイアウトデータl2を生成し(ステップS2005)、第2レイアウトデータl2を出力する(ステップS2006)。これにより、FFセルがどの配置であっても、クロックスキューが一定条件を満たすため、FFセルの配置に要する処理量を低減することができる。
設計支援装置100は、複数の領域の各々について、領域内のFFセルと、領域内のバッファセルと、を対応付けた対応情報1100を生成する(ステップS2007)。設計支援装置100は、第2レイアウトデータl2に対応情報1100を関連付けて出力する(ステップS2008)。これにより、FFセルを最も近くに配置された最終段のクロックバッファセルに接続させる処理を容易化できる。
また、設計支援装置100は、複数の領域の各々について、領域内のFFセルの数を計数し(ステップS2101)、各領域内のFFセルの数が最終段クロックバッファの接続可能個数より多いか少ないかを判断する(ステップS2102)。設計支援装置100は、FFセルの数が最終段クロックバッファの接続可能個数よりも多いと判断された領域の中で未選択の領域があるか否かを判断する(ステップS2103)。なお、FFセルの数が接続可能個数よりも多いと判断された領域がない場合、ステップS2103においてNoであると判断される。
未選択の領域がある場合(ステップS2103:Yes)、設計支援装置100は、FFセルの数が接続可能個数よりも多いと判断された領域の中で未選択の領域から1つの領域を選択する(ステップS2104)。設計支援装置100は、FFセルの数が接続可能個数よりも少ないと判断された領域の中で、選択した領域に隣接する領域を検出する(ステップS2105)。設計支援装置100は、FFセルの数が接続可能個数よりも少ない領域の中から、選択した領域に隣接する領域が検出されたか否かを判断する(ステップS2106)。
FFセルの数が接続可能個数よりも少ない領域の中に、選択した領域に隣接する領域がない場合(ステップS2106:No)、設計支援装置100は、選択した領域の周辺の領域にFFセルが集中していることを示す情報を出力し(ステップS2109)、ステップS2103へ戻る。
FFセルの数が接続可能個数よりも少ない領域の中に、選択した領域に隣接する領域がある場合(ステップS2106:Yes)、設計支援装置100は、差分=選択した領域内のFFの数−接続可能個数とする(ステップS2107)。そして、設計支援装置100は、ステップS2105において複数の領域が検出されたか否かを判断する(ステップS2108)。
1領域だけが検出された場合(ステップS2108:No)、設計支援装置100は、「空き量=接続可能個数−検出した領域内のFFセルの数」とし(ステップS2201)、空き量>差分であるか否かを判断する(ステップS2202)。空き量>差分でない場合(ステップS2202:No)、ステップS2109へ移行する。空き量>差分である場合(ステップS2202:Yes)、設計支援装置100は、選択した領域内のFFセルの各々と、検出した領域内の最終段クロックバッファセルと、の距離を算出する(ステップS2203)。
設計支援装置100は、選択した領域内のFFセルのうち、距離の短い順に、差分のFFセルを選択する(ステップS2204)。設計支援装置100は、検出した領域内の最終段のクロックバッファセルと、選択したFFセルと、を対応付けた対応情報1100を生成し(ステップS2205)。第2レイアウトデータl2に対応情報1100を関連付けて出力し(ステップS2206)、ステップS2103へ移行する。
複数領域が検出された場合(ステップS2108:Yes)、設計支援装置100は、「全体空き量=検出した領域数×接続可能個数−検出した領域内のFFセルの総数」とし(ステップS2301)、全体空き量>差分であるか否かを判断する(ステップS2302)。全体空き量>差分でない場合(ステップS2302:No)、ステップS2109へ戻る。全体空き量>差分である場合(ステップS2302:Yes)、設計支援装置100は、検出した領域の中で、移動先領域となっていない領域のうち、FFセルの数が最も少ない領域を移動先領域として検出する(ステップS2303)。
設計支援装置100は、「空き量=接続可能個数−移動先領域内のFFセルの数」とし(ステップS2304)、選択した領域内のFFセルの各々と、移動先領域内の最終段クロックバッファセルと、の距離を算出する(ステップS2305)。設計支援装置100は、空き量>差分であるか否かを判断する(ステップS2306)。空き量>差分である場合(ステップS2306:Yes)、設計支援装置100は、選択した領域内のFFセルのうち、距離の短い順に、差分のFFセルを選択する(ステップS2307)。空き量>差分でない場合(ステップS2306:No)、設計支援装置100は、選択した領域内のFFセルのうち、距離の短い順に、空き量のFFセルを選択する(ステップS2308)。
ステップS2307、またはステップS2308のつぎに、設計支援装置100は、移動先領域内の最終段のクロックバッファセルと、選択したFFセルと、を対応付けた対応情報1100を生成する(ステップS2309)。そして、設計支援装置100は、第2レイアウトデータl2に対応情報1100を関連付けて出力する(ステップS2310)。設計支援装置100は、「差分=差分−空き量」とし(ステップS2311)、差分>0であるか否かを判断する(ステップS2312)。差分が0未満であれば、選択された領域内のFFセルはすべて接続先が決定していることを示す。差分>0でない場合(ステップS2312:No)、ステップS2303へ戻る。差分>0である場合(ステップS2312:Yes)、ステップS2103へ戻る。
未選択の領域がない場合(ステップS2103:No)、設計支援装置100は、第2レイアウトデータl2と、対応情報1100と、に基づいて、各FFセルと最終段のクロックバッファセルとの接続を示す第3レイアウトデータl3を生成し(ステップS2110)、一連の処理を終了する。
また、図21に示す設計支援手順では、FFセルの数が多いと判断された領域について、領域内のFFセルを、FFセルの数が少ないと判断された近傍の領域のクロックバッファセルに対応付けるが、これに限らない。たとえば、FFセルの数が少ないと判断された領域について、領域内のクロックバッファセルと、FFセルの数が多いと判断された近傍の領域のFセルと、を対応付けるような設計支援手順であってもよい。
図24は、設計支援装置による設計支援処理手順例2を示すフローチャートである。設計支援処理手順例2と設計支援処理手順例1との違いは、ステップS2108のYesの場合のつぎの処理である。そのため、図20〜図22については、設計支援処理手順例2と設計支援処理手順例1との処理が同一であるため図20〜図22についての詳細な説明を省略する。
ステップS2108のYesの場合のつぎに、設計支援装置100は、「全体空き量=検出した領域数×接続可能個数−検出した領域内のFFセルの総数」とし(ステップS2401)、全体空き量>差分であるか否かを判断する(ステップS2402)。全体空き量>差分である場合(ステップS2402:Yes)、設計支援装置100は、検出した領域の各々について、選択した領域内のFFセルの各々と、検出した領域内の最終段クロックバッファセルと、の組み合わせの距離を算出する(ステップS2403)。
設計支援装置100は、同一のFFセルを含む組み合わせを複数選択せずに、距離の短い順に、差分の組み合わせを選択する(ステップS2404)。そして、設計支援装置100は、選択した組み合わせのFFセルと、選択した組み合わせの領域内のクロックバッファセルと、を関連付けた対応情報1100を生成する(ステップS2405)。そして、設計支援装置100は、第2レイアウトデータl2に対応情報1100を関連付けて出力し(ステップS2406)、ステップS2103へ移行する。また、全体空き量>差分でない場合(ステップS2402:No)、ステップS2109へ戻る。
以上説明したように、設計支援装置100は、セル配置可能領域を一定間隔で区切り、クロック信号を供給可能なクロックバッファセルを区切った各領域に少なくとも1つ配置した後、FFセルを配置する。これにより、FFセルがどの配置でもクロックスキューが一定条件を満たすことができ、FFセルの配置に要する処理量を低減させることができる。
また、設計支援装置100は、同一領域内のFFセルとクロックバッファセルとを対応付けた対応情報1100を生成する。これにより、各FFセルを最も近いクロックバッファセルに接続させることを容易化できる。
また、設計支援装置100は、各領域内のFFセルの数が供給可能個数より多いか少ないかを判断し、多いと判断された領域のFFセルを、少ないと判断された領域のクロックバッファセルに対応付けた対応情報1100を生成する。これにより、各クロックバッファセルに供給可能個数までのFFセルを接続させることができる。
また、設計支援装置100は、少ない領域と判断された領域の中で、多いと判断された領域に隣接する領域のクロックバッファセルと、多いと判断された領域内のFFセルと接続可能個数の差分の該領域内のFFセルと、を対応付けた対応情報1100を生成する。これにより、より近いクロックバッファセルとFFセルとを接続させつつ、各クロックバッファセルに供給可能個数までのFFセルを接続させることができる。
また、設計支援装置100は、該隣接する領域の中で、最もFFセルが少ない領域内のクロックバッファセルと、多いと判断された領域内のFFセルと接続可能個数との差分の該領域内のFFセルと、を対応付けた対応情報1100を生成する。これにより、最も近いクロックバッファセルに接続できない場合であっても、より多くのFFセルを距離が近いクロックバッファセルに接続させることができる。
また、設計支援装置100は、多いと判断された領域内のFFセルと、隣接する領域と、の距離を算出し、近い順に、差分の該領域内のFFセルと、隣接する領域内のクロックバッファセルと、を対応付けた対応情報1100を生成する。これにより、最も近いクロックバッファセルに接続できない場合であっても、より近いFFセルとクロックバッファセルとを接続させることができる。
また、設計支援装置100は、隣接する領域が得られなかった場合、多いと判断された領域の周辺にFFセルの数が多く配置されていることを示す情報を出力する。これにより、利用者は、FFセルが密集して配置されることにより、クロックスキューが一定の条件を満たせない箇所を容易に得られる。
また、一定間隔は、クロックバッファセルがクロック信号を供給可能な数に基づく値である。これにより、同一領域のクロックバッファセルとFFセルとを接続することにより、クロックスキューが一定条件を満たすことができる。
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ディスク305、フラッシュメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネット等のネットワークNETを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)回路内の所定領域を一定間隔で区切った複数の領域を示す領域情報を生成する領域情報生成部と、
前記領域情報生成部によって生成された前記領域情報が示す前記複数の領域の各々に少なくとも1つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第1レイアウトデータを生成する第1データ生成部と、
前記第1データ生成部によって生成された前記第1レイアウトデータに基づいて、前記バッファセルの配置と、前記所定領域内に設けられるフリップフロップセルの配置と、を示す第2レイアウトデータを生成する第2データ生成部と、
前記第2データ生成部によって生成された前記第2レイアウトデータを出力する出力部と、
を有することを特徴とする設計支援装置。
(付記2)前記第2レイアウトデータに基づいて、前記複数の領域の各々について、前記領域内のフリップフロップセルと、前記領域内のバッファセルと、を対応付けた対応情報を生成する対応情報生成部を有し、
前記出力部は、
前記第2レイアウトデータと、前記対応情報生成部によって生成された前記対応情報と、を関連付けて出力することを特徴とする付記1に記載の設計支援装置。
(付記3)前記第2レイアウトデータに基づいて、前記複数の領域の各々について、前記領域内のフリップフロップセルの数が、前記領域内のバッファセルが前記クロック信号を供給可能な数よりも多いか少ないかを判断する判断部と、
前記判断部によって前記フリップフロップセルの数が前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルのうち、前記供給可能な数のフリップフロップセル以外のフリップフロップセルを、前記判断部によって前記フリップフロップセルの数が前記供給可能な数よりも少ないと判断された前記領域内のバッファセルに対応付けた対応情報を生成する対応情報生成部と、
を有し、
前記出力部は、
前記第2レイアウトデータと、前記対応情報生成部によって生成された前記対応情報と、を関連付けて出力することを特徴とする付記1または2に記載の設計支援装置。
(付記4)前記判断部によって前記領域内のフリップフロップセルの数が前記供給可能な数よりも少ないと判断された領域のうち、前記供給可能な数よりも多いと判断された前記領域に隣接する領域を検出する検出部を有し、
前記対応情報生成部は、
前記供給可能な数のフリップフロップセル以外のフリップフロップセルを、前記検出部によって検出された前記領域内のバッファセルに対応付けた対応情報を生成することを特徴とする付記3に記載の設計支援装置。
(付記5)前記検出部は、
前記隣接する領域の中で、前記領域内のフリップフロップセルの数が最も少ない領域を検出することを特徴とする付記4に記載の設計支援装置。
(付記6)前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルの各々と、検出された前記領域内のバッファセルと、の距離を算出する算出部と、
前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルの中で、前記算出部によって算出された距離が短い順に、前記供給可能な数のフリップフロップセル以外のフリップフロップセルを選択する選択部と、
を有し、
前記対応情報生成部は、
前記選択部によって選択されたフリップフロップセルを、検出された前記領域内のバッファセルに対応付けた対応情報を生成することを特徴とする付記4または5に記載の設計支援装置。
(付記7)検出された前記領域の各々について、検出された前記領域内のバッファセルと、前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルの各々と、の距離を算出する算出部と、
検出された前記領域内のバッファセルと、前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルと、の組み合わせの中から、同一のフリップフロップセルを含む組み合わせを複数選択せず、前記算出部によって算出された距離が短い順に、前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルの数と、前記供給可能な数と、の差分の組み合わせを選択する選択部と、
を有し、
前記対応情報生成部は、
前記選択部によって選択された前記組み合わせに含まれるフリップフロップセルと、選択された前記組み合わせに含まれるバッファセルと、を対応付けた対応情報を生成することを特徴とする付記4に記載の設計支援装置。
(付記8)前記出力部は、
前記検出部による検出によって前記隣接する領域が得られなかった場合、前記対応情報生成部による前記対応情報の生成を行わずに、前記供給可能な数よりも多いと判断された前記領域の周辺に前記フリップフロップセルの数が多いことを示す情報を出力することを特徴とする付記4〜6のいずれか一つに記載の設計支援装置。
(付記9)前記一定間隔は、前記バッファセルが前記クロック信号を供給可能な数に基づく値であることを特徴とする付記1〜7のいずれか一つに記載の設計支援装置。
(付記10)コンピュータが、
回路内の所定領域を一定間隔で区切った複数の領域を示す領域情報を生成し、
生成した前記領域情報が示す前記複数の領域の各々に少なくとも1つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第1レイアウトデータを生成し、
生成した前記第1レイアウトデータに基づいて、前記バッファセルの配置と、前記所定領域内に設けられるフリップフロップセルの配置と、を示す第2レイアウトデータを生成する、
処理を実行することを特徴とする設計支援方法。
(付記11)コンピュータに、
回路内の所定領域を一定間隔で区切った複数の領域を示す領域情報を生成し、
生成した前記領域情報が示す前記複数の領域の各々に少なくとも1つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第1レイアウトデータを生成し、
生成した前記第1レイアウトデータに基づいて、前記バッファセルの配置と、前記所定領域内に設けられるフリップフロップセルの配置と、を示す第2レイアウトデータを生成する、
処理を実行させることを特徴とする設計支援プログラム。
(付記12)回路内の所定領域を一定間隔で区切った複数の領域を示す領域情報を生成し、
生成した前記領域情報が示す前記複数の領域の各々に少なくとも1つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第1レイアウトデータを生成し、
生成した前記第1レイアウトデータに基づいて、前記バッファセルの配置と、前記所定領域内に設けられるフリップフロップセルの配置と、を示す第2レイアウトデータを生成する、
処理をコンピュータに実行させる設計支援プログラムを記録したことを特徴とする記録媒体。
100 設計支援装置
402 領域情報生成部
403 第1データ生成部
404 第2データ生成部
405 判断部
406 検出部
407 距離算出部
408 選択部
409 対応情報生成部
410 出力部
1100 対応情報
area 所定領域
a1〜a4,ar1〜ar9 領域
buf1〜buf4,B1〜B9 クロックバッファセル
l1 第1レイアウトデータ
l2 第2レイアウトデータ

Claims (8)

  1. 回路内の所定領域を一定間隔で区切った複数の領域を示す領域情報を生成する領域情報生成部と、
    前記領域情報生成部によって生成された前記領域情報が示す前記複数の領域の各々に少なくとも1つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第1レイアウトデータを生成する第1データ生成部と、
    前記第1データ生成部によって生成された前記第1レイアウトデータに基づいて、前記バッファセルの配置と、前記所定領域内に設けられるフリップフロップセルの配置と、を示す第2レイアウトデータを生成する第2データ生成部と、
    前記第2レイアウトデータに基づいて、前記複数の領域の各々の領域について、前記領域内のフリップフロップセルの数が、前記領域内のバッファセルが前記クロック信号を供給可能な数よりも多いか少ないかを判断する判断部と、
    前記判断部によって前記領域内のフリップフロップセルの数が前記供給可能な数よりも少ないと判断された領域のうち、前記供給可能な数よりも多いと判断された前記領域に隣接する領域を検出する検出部と、
    前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルの各々と、前記検出部によって検出された前記領域内のバッファセルと、の距離を算出する算出部と、
    前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルの中で、前記算出部によって算出された距離が短い順に、前記供給可能な数のフリップフロップセル以外のフリップフロップセルを選択する選択部と、
    前記選択部によって選択されたフリップフロップセルを、前記検出部によって検出された前記領域内のバッファセルに対応付けた対応情報を生成する対応情報生成部と、
    前記第2レイアウトデータと、前記対応情報生成部によって生成された前記対応情報と、を関連付けて出力する出力部と、
    を有することを特徴とする設計支援装置。
  2. 前記検出部は、
    前記隣接する領域の中で、前記領域内のフリップフロップセルの数が最も少ない領域を検出することを特徴とする請求項1に記載の設計支援装置
  3. 前記出力部は、
    前記検出部による検出によって前記隣接する領域が得られなかった場合、前記対応情報生成部による前記対応情報の生成を行わずに、前記供給可能な数よりも多いと判断された前記領域の周辺に前記フリップフロップセルの数が多いことを示す情報を出力することを特徴とする請求項1または2に記載の設計支援装置。
  4. 回路内の所定領域を一定間隔で区切った複数の領域を示す領域情報を生成する領域情報生成部と、
    前記領域情報生成部によって生成された前記領域情報が示す前記複数の領域の各々に少なくとも1つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第1レイアウトデータを生成する第1データ生成部と、
    前記第1データ生成部によって生成された前記第1レイアウトデータに基づいて、前記バッファセルの配置と、前記所定領域内に設けられるフリップフロップセルの配置と、を示す第2レイアウトデータを生成する第2データ生成部と、
    前記第2レイアウトデータに基づいて、前記複数の領域の各々の領域について、前記領域内のフリップフロップセルの数が、前記領域内のバッファセルが前記クロック信号を供給可能な数よりも多いか少ないかを判断する判断部と、
    前記判断部によって前記領域内のフリップフロップセルの数が前記供給可能な数よりも少ないと判断された領域のうち、前記供給可能な数よりも多いと判断された前記領域に隣接する領域を検出する検出部と、
    前記検出部によって検出された前記領域の各々について、検出された前記領域内のバッファセルと、前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルの各々と、の距離を算出する算出部と、
    検出された前記領域内のバッファセルと、前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルと、の組み合わせの中から、同一のフリップフロップセルを含む組み合わせを複数選択せず、前記算出部によって算出された距離が短い順に、前記供給可能な数よりも多いと判断された前記領域内のフリップフロップセルの数と、前記供給可能な数と、の差分の組み合わせを選択する選択部と、
    前記選択部によって選択された前記組み合わせに含まれるフリップフロップセルと、選択された前記組み合わせに含まれるバッファセルと、を対応付けた対応情報を生成する対応情報生成部と、
    前記第2レイアウトデータと、前記対応情報生成部によって生成された前記対応情報と、を関連付けて出力する出力部と、
    を有することを特徴とする設計支援装置。
  5. コンピュータが、
    回路内の所定領域を一定間隔で区切った複数の領域を示す領域情報を生成し、
    生成した前記領域情報が示す前記複数の領域の各々に少なくとも1つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第1レイアウトデータを生成し、
    生成した前記第1レイアウトデータに基づいて、前記バッファセルの配置と、前記所定領域内に設けられるフリップフロップセルの配置と、を示す第2レイアウトデータを生成し、
    生成した前記第2レイアウトデータに基づいて、前記複数の領域の各々の領域について、前記領域内のフリップフロップセルの数が、前記領域内のバッファセルが前記クロック信号を供給可能な数よりも多いか少ないかを判断し、
    前記領域内のフリップフロップセルの数が前記供給可能な数よりも少ないと判断した領域のうち、前記供給可能な数よりも多いと判断した前記領域に隣接する領域を検出し、
    前記供給可能な数よりも多いと判断した前記領域内のフリップフロップセルの各々と、検出された前記領域内のバッファセルと、の距離を算出し、
    前記供給可能な数よりも多いと判断した前記領域内のフリップフロップセルの中で、算出した前記距離が短い順に、前記供給可能な数のフリップフロップセル以外のフリップフロップセルを選択し、
    選択した前記フリップフロップセルを、検出した前記領域内のバッファセルに対応付けた対応情報を生成し、
    前記第2レイアウトデータと、生成した前記対応情報と、を関連付けて出力する、
    処理を実行することを特徴とする設計支援方法。
  6. コンピュータが、
    回路内の所定領域を一定間隔で区切った複数の領域を示す領域情報を生成し、
    生成した前記領域情報が示す前記複数の領域の各々に少なくとも1つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第1レイアウトデータを生成し、
    生成した前記第1レイアウトデータに基づいて、前記バッファセルの配置と、前記所定領域内に設けられるフリップフロップセルの配置と、を示す第2レイアウトデータを生成し、
    前記第2レイアウトデータに基づいて、前記複数の領域の各々の領域について、前記領域内のフリップフロップセルの数が、前記領域内のバッファセルが前記クロック信号を供給可能な数よりも多いか少ないかを判断し、
    前記領域内のフリップフロップセルの数が前記供給可能な数よりも少ないと判断した前記領域のうち、前記供給可能な数よりも多いと判断した前記領域に隣接する領域を検出し、
    検出した前記領域の各々について、検出した前記領域内のバッファセルと、前記供給可能な数よりも多いと判断した前記領域内のフリップフロップセルの各々と、の距離を算出し、
    検出した前記領域内のバッファセルと、前記供給可能な数よりも多いと判断した前記領域内のフリップフロップセルと、の組み合わせの中から、同一のフリップフロップセルを含む組み合わせを複数選択せず、算出した前記距離が短い順に、前記供給可能な数よりも多いと判断した前記領域内のフリップフロップセルの数と、前記供給可能な数と、の差分の組み合わせを選択し、
    選択した前記組み合わせに含まれるフリップフロップセルと、選択した前記組み合わせに含まれるバッファセルと、を対応付けた対応情報を生成し、
    前記第2レイアウトデータと、生成した前記対応情報と、を関連付けて出力する、
    処理を実行することを特徴とする設計支援方法。
  7. コンピュータに、
    回路内の所定領域を一定間隔で区切った複数の領域を示す領域情報を生成し、
    生成した前記領域情報が示す前記複数の領域の各々に少なくとも1つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第1レイアウトデータを生成し、
    生成した前記第1レイアウトデータに基づいて、前記バッファセルの配置と、前記所定領域内に設けられるフリップフロップセルの配置と、を示す第2レイアウトデータを生成し、
    生成した前記第2レイアウトデータに基づいて、前記複数の領域の各々の領域について、前記領域内のフリップフロップセルの数が、前記領域内のバッファセルが前記クロック信号を供給可能な数よりも多いか少ないかを判断し、
    前記領域内のフリップフロップセルの数が前記供給可能な数よりも少ないと判断した領域のうち、前記供給可能な数よりも多いと判断した前記領域に隣接する領域を検出し、
    前記供給可能な数よりも多いと判断した前記領域内のフリップフロップセルの各々と、検出された前記領域内のバッファセルと、の距離を算出し、
    前記供給可能な数よりも多いと判断した前記領域内のフリップフロップセルの中で、算出した前記距離が短い順に、前記供給可能な数のフリップフロップセル以外のフリップフロップセルを選択し、
    選択した前記フリップフロップセルを、検出した前記領域内のバッファセルに対応付けた対応情報を生成し、
    前記第2レイアウトデータと、生成した前記対応情報と、を関連付けて出力する、
    処理を実行させることを特徴とする設計支援プログラム。
  8. コンピュータに、
    回路内の所定領域を一定間隔で区切った複数の領域を示す領域情報を生成し、
    生成した前記領域情報が示す前記複数の領域の各々に少なくとも1つ設けられる、他のセルにクロック信号を供給可能なバッファセルの配置を示す第1レイアウトデータを生成し、
    生成した前記第1レイアウトデータに基づいて、前記バッファセルの配置と、前記所定領域内に設けられるフリップフロップセルの配置と、を示す第2レイアウトデータを生成し、
    前記第2レイアウトデータに基づいて、前記複数の領域の各々の領域について、前記領域内のフリップフロップセルの数が、前記領域内のバッファセルが前記クロック信号を供給可能な数よりも多いか少ないかを判断し、
    前記領域内のフリップフロップセルの数が前記供給可能な数よりも少ないと判断した前記領域のうち、前記供給可能な数よりも多いと判断した前記領域に隣接する領域を検出し、
    検出した前記領域の各々について、検出した前記領域内のバッファセルと、前記供給可能な数よりも多いと判断した前記領域内のフリップフロップセルの各々と、の距離を算出し、
    検出した前記領域内のバッファセルと、前記供給可能な数よりも多いと判断した前記領域内のフリップフロップセルと、の組み合わせの中から、同一のフリップフロップセルを含む組み合わせを複数選択せず、算出した前記距離が短い順に、前記供給可能な数よりも多いと判断した前記領域内のフリップフロップセルの数と、前記供給可能な数と、の差分の組み合わせを選択し、
    選択した前記組み合わせに含まれるフリップフロップセルと、選択した前記組み合わせに含まれるバッファセルと、を対応付けた対応情報を生成し、
    前記第2レイアウトデータと、生成した前記対応情報と、を関連付けて出力する、
    処理を実行させることを特徴とする設計支援プログラム。

JP2013062350A 2013-03-25 2013-03-25 設計支援装置、設計支援方法、および設計支援プログラム Active JP6136430B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013062350A JP6136430B2 (ja) 2013-03-25 2013-03-25 設計支援装置、設計支援方法、および設計支援プログラム
US14/156,501 US20140289691A1 (en) 2013-03-25 2014-01-16 Circuit design support apparatus, circuit design support method, and computer product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013062350A JP6136430B2 (ja) 2013-03-25 2013-03-25 設計支援装置、設計支援方法、および設計支援プログラム

Publications (2)

Publication Number Publication Date
JP2014186648A JP2014186648A (ja) 2014-10-02
JP6136430B2 true JP6136430B2 (ja) 2017-05-31

Family

ID=51570116

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013062350A Active JP6136430B2 (ja) 2013-03-25 2013-03-25 設計支援装置、設計支援方法、および設計支援プログラム

Country Status (2)

Country Link
US (1) US20140289691A1 (ja)
JP (1) JP6136430B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106960087B (zh) * 2017-03-13 2020-05-19 上海华力微电子有限公司 一种时钟分布网络结构及其生成方法
US10868524B2 (en) 2018-12-13 2020-12-15 Samsung Electronics Co., Ltd. Semiconductor circuit and semiconductor circuit layout system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3104678B2 (ja) * 1998-05-20 2000-10-30 日本電気株式会社 クロック信号分配設計回路及びその方法並びにその制御プログラムを記録した記録媒体
JP3231728B2 (ja) * 1999-02-24 2001-11-26 エヌイーシーマイクロシステム株式会社 半導体集積回路のクロック分配レイアウト方法
JP4218924B2 (ja) * 2001-02-15 2009-02-04 株式会社日立製作所 半導体集積回路の設計システム
US6686785B2 (en) * 2001-10-11 2004-02-03 Sun Microsystems, Inc. Deskewing global clock skew using localized DLLs
JP2004022864A (ja) * 2002-06-18 2004-01-22 Fujitsu Ltd ツリー構造型回路生成方法およびツリー構造型回路生成プログラム
JP2005012045A (ja) * 2003-06-20 2005-01-13 Matsushita Electric Ind Co Ltd 半導体集積回路のレイアウト方法及び半導体集積回路
US20080209038A1 (en) * 2007-02-23 2008-08-28 Raza Microelectronics, Inc. Methods and systems for optimizing placement on a clock signal distribution network
JP4966838B2 (ja) * 2007-12-14 2012-07-04 エヌイーシーコンピュータテクノ株式会社 クロック配線処理装置、クロック配線処理方法、及びプログラム
JP5326471B2 (ja) * 2008-09-30 2013-10-30 富士通株式会社 クロック信号供給回路の設計方法、情報処理装置およびプログラム

Also Published As

Publication number Publication date
US20140289691A1 (en) 2014-09-25
JP2014186648A (ja) 2014-10-02

Similar Documents

Publication Publication Date Title
CN104573169B (zh) 以自动流水线操作能力设计集成电路的方法和工具
US8607182B2 (en) Method of fast analog layout migration
Dolgov et al. 2019 cad contest: Lef/def based global routing
JP2008165750A (ja) 回路設計支援装置、回路設計支援方法、回路設計支援プログラムおよびプリント基板の製造方法
JP2008165748A (ja) 回路設計支援装置、回路設計支援方法、回路設計支援プログラムおよびプリント基板の製造方法
US8701059B2 (en) Method and system for repartitioning a hierarchical circuit design
JP2008165747A (ja) 回路設計支援装置、回路設計支援方法、回路設計支援プログラムおよびプリント基板の製造方法
JP2007122589A (ja) ミックスドシグナル回路シミュレータ
JP2008250630A (ja) デカップリングセル配置方法及びデカップリングセル配置装置
JP6136430B2 (ja) 設計支援装置、設計支援方法、および設計支援プログラム
CN1305127C (zh) 用去耦合电容实现集成电路供电网络噪声优化的快速方法
JP5359655B2 (ja) 生成方法
JP6024828B2 (ja) 消費電力値が所定電力値以下である状態情報を、測定した処理性能値に基づいて選択する選択装置
JP2006085635A (ja) タイミング解析装置、タイミング解析方法、タイミング解析プログラムおよび記録媒体
US10460063B1 (en) Integrated circuit routing based on enhanced topology
JP2005309624A (ja) レイアウト設計装置、レイアウト設計方法、レイアウト設計プログラム、および記録媒体
JP4825905B2 (ja) レイアウト設計装置、レイアウト設計プログラム、および記録媒体
JP2008186230A (ja) 集積回路設計装置、集積回路設計方法及び集積回路設計プログラム
JP4587754B2 (ja) クロック合成方法、半導体装置及びプログラム
Yu et al. Multi-voltage and level-shifter assignment driven floorplanning
US10929589B1 (en) Generating routing structure for clock network based on edge intersection detection
JPWO2010140216A1 (ja) 設計支援方法、設計支援装置、設計支援プログラム、および半導体集積回路
Wang et al. Post-floorplanning power optimization for MSV-driven application specific NoC design
JP6428207B2 (ja) 設計方法、設計装置及びプログラム
JP2011107769A (ja) 半導体集積回路のレイアウト装置及びクロックゲーティング方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160920

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170417

R150 Certificate of patent or registration of utility model

Ref document number: 6136430

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150