JP5835346B2 - 設計支援装置、方法及びプログラム - Google Patents

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

Info

Publication number
JP5835346B2
JP5835346B2 JP2013548039A JP2013548039A JP5835346B2 JP 5835346 B2 JP5835346 B2 JP 5835346B2 JP 2013548039 A JP2013548039 A JP 2013548039A JP 2013548039 A JP2013548039 A JP 2013548039A JP 5835346 B2 JP5835346 B2 JP 5835346B2
Authority
JP
Japan
Prior art keywords
capacity
cell
area
calculated
sum
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
JP2013548039A
Other languages
English (en)
Other versions
JPWO2013084356A1 (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
Publication of JPWO2013084356A1 publication Critical patent/JPWO2013084356A1/ja
Application granted granted Critical
Publication of JP5835346B2 publication Critical patent/JP5835346B2/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/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/10Noise analysis or noise optimisation

Landscapes

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

Description

本技術は、半導体集積回路の設計支援技術に関する。
近年のLSI(Large-Scale Integrated circuits)設計は、微細化、大規模化、高周波数化、低電圧化が進み電源ノイズに対する対策が重要となってきている。この対策の1つに、容量セルを配置する方法がある。
容量セルの配置は、通常の論理セルを全て配置した後に、空き領域に対して、予め準備され且つ数種類のサイズを持つ容量セルを、自動で配置していた。例えば図1Aに示すように、LSI1000内のセル配置エリア1100に先に論理セルを配置した後、図1Bに示すように、セル配置エリア1100の空き領域に容量セルを配置していた。
さらに、図1Cに示すように、容量セルを配置した後の空き領域に対し、スペアセルを配置していた。このスペアセルとは、配線層のみが異なった特定の論理セルと置き換えが可能なセルである。一度、製造したLSIの簡易な仕様変更等が発生した際、このスペアセルを特定の論理セルと置き換えることで配線層のみの修正でLSIの仕様変更が可能となる。
容量セルをどれだけ配置したらよいのかは、あるエリア内に存在する各論理セルが必要としている容量の総和で決定される。個々の論理セルの必要容量はセルライブラリに記述されているので、このデータにより算出できる。そして、論理セル配置後、空き領域に容量セルを配置した状態で、セル配置エリアに設けられる複数の容量チェックエリア(図2)の各々について必要容量の総和と容量セルによる容量(以下、実容量とも呼ぶ)の総和とを算出し、各容量チェックエリアについて必要容量の総和≦容量の総和という関係が成立しているか確認する。
より具体的には以下のような処理を実施する。すなわち、(1)設計者が、各論理セルの配置を指示し、全ての論理セルの配置位置を確定させる。(2)容量セル発生プログラムで、セル配置エリアの空き領域に対して容量セルの自動配置を行う。(3)容量セルの自動配置が完了すると、容量チェックプログラムが、実容量と必要容量とを算出して、LSIの容量チェックを行い、その結果を出力する。ここで、容量チェックの結果が必要容量の総和>容量の総和であれば、設計者は、論理セル配置の修正を行う。
この論理セル配置の修正は、例えば図3Aの状態で、容量チェックをクリアできなかったとすると、設計者が、論理セル1110を選択して、図3Bに示すように論理セル1110をこの容量チェックエリアから外に移動させる。その後、容量セル発生プログラムで、容量セルの自動配置を再度行う。そうすると、例えば図3Cに示すように、サイズが大きくなった容量セル1120が配置されて、その分実容量が増加することになる。
または、論理セル1110を選択することは同じであるが、図4Aに示すように、設計者は、同じ容量チェックエリアにおける位置1130に、論理セル1110を移動させるように指示する。その後、容量セル発生プログラムで、容量セルの自動配置を再度行う。そうすると、例えば図4Bに示すように、サイズが大きくなった容量セル1120が配置されて、その分実容量が増加することになる。
そして、再度、容量チェックプログラムが、容量チェックを実施する。このような作業及び処理を、容量チェックプログラムの容量チェック結果が問題なしとなるまで繰り返す。このような作業及び処理を行うとすると、収束までの時間がかかってしまう。
なお、(4)その後、容量チェック結果が問題なしとなると、スペアセル発生プログラムが、空き領域にスペアセルを発生させる。
また、ライブラリセルに対してその必要容量のための領域を付加する手法を導入することで、事前に容量不足を発生させないようにする従来技術も存在している。しかし、このようなライブラリセルを用いると大幅に設計の自由度が低下することが予測される。
特開2002−288253号公報 特開平11−126823号公報 特開2005−93947号公報 特開2007−142282号公報 特開平11−85834号公報 特開2004−335902号公報
従って、本技術の目的は、一側面において、手動で論理セル等を配置する前に、容量の観点において当該論理セル等の配置の適否を判断できるようにするための技術を提供することである。
本技術に係る設計支援装置は、(A)半導体集積回路のセル配置エリアにおける空き領域に容量セルを配置する配置部と、(B)容量セルの容量と、論理セルの必要容量とを格納するデータ格納部と、(C)ある論理セルを配置する予定の位置が指示されると、当該位置の容量セルが除去されたと仮定してセル配置エリアに含まれる複数の容量チェックエリアのうち上記位置を含む容量チェックエリアについての容量の総和をデータ格納部に格納されているデータを用いて算出し、上記ある論理セルが配置されたと仮定して上記位置を含む容量チェックエリアについての必要容量の総和をデータ格納部に格納されているデータを用いて算出し、上記位置を含む容量チェックエリアについて算出された上記容量の総和と必要容量の総和との関係を表す情報を出力する情報出力部とを有する。
図1Aは、論理セルの配置を説明するための図である。 図1Bは、容量セルの配置を説明するための図である。 図1Cは、スペアセルの配置を説明するための図である。 図2は、容量チェックエリアを説明するための図である。 図3Aは、容量チェックについて説明するための図である。 図3Bは、容量チェックについて説明するための図である。 図3Cは、容量チェックについて説明するための図である。 図4Aは、容量チェックについて説明するための図である。 図4Bは、容量チェックについて説明するための図である。 図5Aは、本技術の実施の形態を説明するための図である。 図5Bは、本技術の実施の形態を説明するための図である。 図5Cは、本技術の実施の形態を説明するための図である。 図5Dは、本技術の実施の形態を説明するための図である。 図6Aは、スペアセルを用いる場合を説明するための図である。 図6Bは、スペアセルを用いる場合を説明するための図である。 図6Cは、スペアセルを用いる場合を説明するための図である。 図7は、実施の形態における設計支援装置の構成を示す図である。 図8は、パラメータ設定ウィンドウの一例を示す図である。 図9は、実施の形態に係る処理フローを示す図である。 図10は、容量余裕度マップの一例を示す図である。 図11は、実施の形態に係る処理フローを示す図である。 図12は、容量セル自動配置処理の処理フローを示す図である。 図13は、容量セル自動配置処理の処理フローを示す図である。 図14は、容量余裕度マップ生成処理の処理フローを示す図である。 図15は、容量余裕度マップ生成処理の処理フローを示す図である。 図16は、管理テーブルの一例を示す図である。 図17は、容量余裕度マップ生成処理の処理フローを示す図である。 図18は、容量余裕度マップ生成処理の処理フローを示す図である。 図19は、容量余裕度マップの一例を示す図である。 図20は、容量余裕度マップの一例を示す図である。 図21は、容量余裕度マップの一例を示す図である。 図22は、容量余裕度マップの一例を示す図である。 図23は、更新処理の処理フローを示す図である。 図24は、内部テーブルの一例を示す図である。 図25は、更新処理の処理フローを示す図である。 図26は、更新処理の処理フローを示す図である。 図27Aは、更新処理で更新された容量余裕度マップの一例を示す図である。 図27Bは、更新処理で更新された容量余裕度マップの一例を示す図である。 図28は、更新処理の処理フローを示す図である。 図29Aは、表示画面の第1の例を示す図である。 図29Bは、表示画面の第2の例を示す図である。 図29Cは、表示画面の第3の例を示す図である。 図30は、表示画面の第4の例を示す図である。 図31は、管理テーブルの一例を示す図である。 図32Aは、表示画面の第5の例を示す図である。 図32Bは、表示画面の第6の例を示す図である。 図32Cは、表示画面の第7の例を示す図である。 図33は、コンピュータの機能ブロック図である。
本実施の形態では、LSIのセル配置エリアに、まず容量セルを配置し、その後に論理セルをインタラクティブ型エディタを用いて配置する。この論理セルの配置位置を確定させる前に、配置予定位置を含む容量チェックエリアについて、実容量と必要容量との関係を表す情報を表示することで、その配置予定位置に論理セルを配置することの適否を判断できるようにする。具体的には、図5Aに示すように、インタラクティブ型エディタの配置作業ウィンドウ1050に示されたセル配置エリア1100において、横方向に細長いサイト1201乃至1208の各々に、容量セル(白色)を配置した後に、設計者が、ハッチングが付された論理セルの配置を指示する。さらに、論理セルを配置する場合には、設計者は、配置予定位置1210乃至1230を当該論理セルの配置先候補として考えることとする。この場合、設計者は、例えば、配置すべき論理セルをドラッグして、配置予定位置1210乃至1230のいずれかに持って行く。そうすると、本実施の形態では、配置予定位置毎に、その位置に仮に配置した場合における、実容量と必要容量との関係を表す情報を表示する。実容量と必要容量との関係は、例えば、必要容量/実容量で算出される容量余裕度であり、予め容量余裕度の範囲毎に決められた色のうち今回算出された容量余裕度に対応する色を、配置予定位置に表示するものとする。図5Bでは、配置予定位置1210については、ここに論理セルを仮に配置すると容量余裕度が例えば1.0(100%)を超えており、問題が発生することを表す例えば「赤色」が表示される。また、配置予定位置1220については、ここに論理セルを仮に配置すると余裕度が例えば0.95(95%)以上1.0(100%)未満となり、問題は発生していないが余裕があまりないことを表す「黄色」が表示される。さらに、配置予定位置1230については、ここに論理セルを仮に配置すると余裕度が例えば0.5(50%)未満となり、問題が発生しないことを表す「白色」が表示される。これによって、設計者は、論理セルの配置を確定させる前に、容量の観点で、その配置の適否を判断できるようになり、無駄な手戻りを回避できるようになる。
さらに、本実施の形態では、内部にスペアセルを配置するスペアセルエリアについても、容量セルを配置後、インタラクティブ型エディタでその配置位置を手動で指示するものとする。但し、スペアセルエリアに必要容量がないものとして配置してしまうと、実際にスペアセルエリアのスペアセルを使用しようとすると必要容量が生じてしまって、結果として配置先の容量チェックエリアにおける必要容量が実容量を超えてしまう場合がある。
例えば図6Aに示すように、セル配置エリア1100における論理セル1320から論理セル1310へのネットA(netA)に論理変更を実施し、バッファを挿入してネットを分割することを考える。この場合、論理セル1310に隣接してスペアセル1330が配置されているので、このスペアセル1330を用いることが考えられる。しかしながら、このスペアセル1330を論理セルとして用いようとすると、その分必要容量が増加する。スペアセル1330の必要容量が考慮されずにスペアセル1330が配置されていると、図6Bに示すように、例えばエリア1340では、必要容量が実容量を超えてしまうという現象が生ずる。そのため、図6Cに示すように、エリア1350において、玉突き式にスペアセルを容量セルに変更するなどのさらなる変更を行わざるを得なくなる。
本実施の形態では、内部にスペアセルを配置するスペアセルエリアにも必要容量を規定しておき、論理セルと同様に、配置先を確定させる前に、配置予定位置に仮に配置した場合における、実容量と必要容量との関係を表す情報を表示する。例えば、図5Cに示すように、配置予定位置1240に、スペアセルエリアを仮に配置しようとする場合、図5Dに示すように、容量余裕度が1.0(100%)を超えており、問題が発生することを表す「赤色」が表示される。なお、スペアセルエリアの全てが論理セルになることはないので、論理セルとして使用する標準的な割合(スペアセル標準使用率とも呼ぶ)を乗じた上で、該当する容量チェックエリアにおける必要容量の総和を算出する。
以上のような内容を実現するための構成を図7乃至図31を用いて説明する。最初に、本実施の形態に係る設計支援装置100の構成を図7を用いて説明する。本実施の形態に係る設計支援装置100は、インタラクティブ型のエディタ110と、データベース(DB)120と、データ格納部130と、スペアセル発生プログラム140と、マウスやキーボードなどの入力部150と、ディスプレイなどの表示部160とを有する。
エディタ110は、容量セル配置部111と、データ出力部112とを有する。データ出力部112は、余裕度算出部1121を有する。容量セル配置部111は、以下で述べるように、最初にセル配置エリアの空き領域に容量セルを配置する処理を実施する。データ出力部112は、入力部150からの設計者からの指示入力に応じて、論理セル等の配置の目安となる情報を生成して、表示部160に出力する。余裕度算出部1121は、必要容量と実容量との関係を表す情報として容量余裕度を算出する。
DB120は、セル等の配置情報の他、論理接続情報、インスタンス情報、配線ルール情報、配線情報などを格納している。また、データ格納部130は、セルライブラリ情報(論理セルの必要容量のデータを含む)と、パラメータ情報と、スペアセル発生プログラム140により用いられるスペアセル情報及びスペーサセル情報などを格納する。パラメータ情報は、配置パラメータ、配置回転コード、配置スペース、スペアセルエリアの必要容量、容量セル情報(各サイズの容量セルの実容量のデータを含む)、容量規定値、容量チェックパラメータ、ユーザから入力された表示のためのパラメータなどを含む。なお、データ格納部130は、エディタ110の処理途中のデータを格納する場合もある。
次に、図8乃至図31を用いて、設計支援装置100の処理内容について説明する。なお、エディタ110は、図8に示すようなパラメータ設定ウィンドウを表示部160に表示させ、設計者に設定させる。図8の例では、容量余裕度マップの表示モードの設定と、色表示モードが設定されている場合における色と容量余裕度の範囲との対応関係と、数値表示下限と、スペアセルの標準使用率とを設定するようになっている。容量余裕度マップの表示モードは、数値表示モードと、色表示モードと、その両方とを選択できるようになっている。色表示モードにおける色と余裕度の範囲との対応関係については、色無し(白)を含め色を4種類に塗り分ける例を示しているが、2種類であってもよいし、より多くの種類の色で塗り分けるようにしても良い。エディタ110は、このようなパラメータ設定ウィンドウにて設定されたパラメータを容量余裕度マップのためのパラメータとして受け付けて、例えばデータ格納部130に格納する。
そして、設計者が、例えば入力部150を介してエディタ110に対して特定のLSIを物理設計の対象として指定し、処理開始を指示した場合、以下の処理を実施する。すなわち、エディタ110は、データ格納部130に格納されており且つ以下の処理で用いるパラメータ情報を読み込み(図9:ステップS1)、容量セル配置部111に、容量セル自動配置処理を実施させる(ステップS3)。容量セル自動配置処理については、図12及び図13を用いて後に説明する。なお、この処理は、セル配置エリアの空き領域に可能な限り容量セルを配置する処理である。
次に、エディタ110のデータ出力部112等は、容量余裕度マップ生成処理を実施する(ステップS5)。容量余裕度マップ生成処理については、図14乃至図22を用いて後に説明する。なお、この処理は、初期的な容量余裕度マップを生成して表示部160に出力する処理である。容量余裕度マップは、図10に示すようにセル配置エリアに含まれる複数の容量チェックエリアの各々について、数値又は色若しくはその両方にて余裕度を示すマップである。但し、容量セルを配置しただけの状態であれば、容量余裕度は、必要容量=0であるから、容量余裕度も0となり、図10の例では色は付されない。数値についても表示下限未満であれば、表示されない。
そして、設計者は、論理セル又はスペアセルエリアを新規に配置対象物として選択するか、処理が進んだ後であれば既に配置済みである論理セル又はスペアセルエリアを配置対象物として移動させるために選択する。そして、設計者は、当該配置対象物を例えばドラッグして、セル配置エリアのうち配置したい位置、すなわち配置予定位置へ持って行く。この際、容量余裕度マップを参照して、容量の観点で適切と考えられる場所を配置予定位置として選択する。
エディタ110は、入力部150から、設計者による配置対象物の選択入力を受け付け(ステップS7)、配置予定位置などの配置指示パラメータを取得する(ステップS9)。そして、エディタ110は、このような配置対象物を配置予定位置に持って行く動作に応じて、容量余裕度マップ等の更新処理を実施する(ステップS11)。この更新処理については、図23乃至図31を用いて後に説明する。なお、更新処理は、図5B及び図5Dで示したような表示だけではなく、図10に示した容量余裕度マップの表示の更新も行う。
そして、エディタ110は、現在の配置予定位置に仮に配置したとすると、当該現在の配置予定位置を含む容量チェックエリアにおける実容量が、データ格納部130に格納されている容量規定値以下となっているか判断する(ステップS13)。ここで、現在の配置予定位置を含む容量チェックエリアにおける実容量が容量規定値以下であれば、この現在の配置予定位置への配置を確定できる。すなわち、エディタ110は、配置対象物をドロップできるようにする。一方、容量チェックエリアにおける実容量が容量規定値を超えている場合には、この現在の配置予定位置への配置は確定できない。すなわち、エディタ110は、配置対象物をドロップできないようにする。配置を確定できないので、処理はステップS9に戻って、設計者は他の配置予定位置に配置対象物をドラッグするようになる。一方、配置を確定できる場合には、設計者は、配置対象物をドロップできるので、エディタ110は、設計者が配置対象物をドロップして配置を確定させたかを判断する(ステップS15)。ここで、設計者が他の配置予定位置へのドラッグを継続させている場合には、配置の確定を指示しているわけではないとして、処理はステップS9に戻る。
設計者が配置対象物をドロップして配置を確定させた場合には、処理は端子Aを介して図11の処理の説明に移行する。
そして、エディタ110は、配置対象物の配置確定に応じて、DB120におけるセル等の配置情報を更新する(ステップS17)。この際には、更新処理において生成される内部テーブルのデータを用いて更新する。また、以下で説明する管理テーブルについても、データ出力部112は、今回配置を確定させた配置対象物の配置情報及び内部テーブルのデータに従って更新する。
そして、エディタ110は、設計者により入力部150を介して配置完了が指示されたか判断する(ステップS19)。配置完了が指示されていない場合には、処理は端子Bを介して図9のステップS7に戻る。一方、配置完了が指示された場合には、エディタ110は、スペアセル発生プログラム140を実行させる。すなわち、スペアセル発生プログラム140は、従来と同様に、データ格納部130に格納されているパラメータなどを用いて、スペアセルエリアその他の空き領域などにスペアセルを発生する処理を実施し、DB120を更新する(ステップS21)。この処理は従来と同様であるから、詳細については省略する。
以上のような処理を実施することで、設計者は、容量の観点において配置すべき論理セルやスペアセルエリアを適切な位置を確認しつつ配置できる。すなわち、従来のように配置、容量セル配置、及び容量チェックを含む処理シーケンスを何度も繰り返すことなく、効率良くLSIの物理設計を行うことができるようになる。
次に、図12及び図13を用いて、容量セル自動配置処理について説明する。まず、容量セル配置部111は、データ格納部130から容量セル情報を読み込む(図12:ステップS31)。そして、容量セル配置部111は、容量セル情報に含まれる容量セルの面積を用いて、容量セルの面積が大きい順にソートする(ステップS33)。さらに、容量セル配置部111は、例えばDB120から、容量セル配置基準となる未処理のサイトの情報を取得する(ステップS35)。そして、容量セル配置部111は、取得したサイトの情報内に、既に配置されているセルの情報が存在しているか確認する(ステップS37)。何らかの理由で既に何らかのセルが配置されている場合には、これを考慮して容量セルを配置するものである。
処理に係るサイト内に既配置セルが存在している場合には(ステップS39:Yesルート)、容量セル配置部111は、サイト内の空き領域を算出し、当該空き領域を空き領域集合に登録する(ステップS43)。そして処理はステップS45に移行する。例えば既配置セルがサイトの中央に配置されている場合には、サイトが2つの空き領域に分割されることもある。一方、処理に係るサイト内に既配置セルが存在していない場合には、容量セル配置部111は、サイト全体を空き領域集合に登録する(ステップS41)。そして処理はステップS45に移行する。
その後、容量セル配置部111は、空き領域集合から、サイト内の未処理の空き領域を1つ取得する(ステップS45)。また、容量セル配置部111は、ステップS33でソートした結果から、最も大きい容量セルの情報を取得する(ステップS47)。そして処理は端子Cを介して図13の処理に移行する。
図13の処理の説明に移行して、容量セル配置部111は、処理に係る容量セルのセルサイズが、取得した空き領域以下であるか判断する(ステップS49)。処理に係る容量セルのセルサイズが、取得した空き領域以下であれば、容量セル配置部111は、空き領域に容量セルを配置する処理を実施する(ステップS51)。すなわち、配置位置と配置される容量セルの情報を、DB120に登録する。そして、容量セル配置部111は、空き領域を再計算する(ステップS53)。その後、処理はステップS49に戻る。このように空き領域にはできるだけ大きい容量セルを詰めようとする。
一方、処理に係る容量セルのセルサイズが、取得した空き領域を超えている場合には、容量セル配置部111は、ステップS33のソート結果において次のサイズの容量セルがあるか判断する(ステップS55)。次のサイズの容量セルが存在する場合には、容量セル配置部111は、次に大きい容量セルの情報を取得する(ステップS57)。そして、処理はステップS49に戻る。一方、次のサイズの容量セルが存在しない場合には、容量セル配置部111は、処理に係るサイトの全ての空き領域を処理したか判断する(ステップS59)。未処理の空き領域が存在する場合には、端子Dを介して図12のステップS45に戻る。一方、処理に係るサイトの全ての空き領域を処理した場合には、容量セル配置部111は、未処理のサイトが存在しているか判断する(ステップS61)。未処理のサイトが存在している場合には、端子Eを介して図12のステップS35に戻る。
以上のような処理を実施することで、容量セルを可能な限りセル配置エリアの空き領域に敷き詰めることができるようになる。これによって、容量余裕度の分母である実容量を初期的に確定させることができる。すなわち、論理セル等を配置し始める時点において、容量余裕度を正しく算出できるようになる。
次に、図14乃至図22を用いて、容量余裕度マップ生成処理を説明する。データ出力部112は、例えばデータ格納部130から、容量チェックエリアのデータを読み込む(図14:ステップS71)。そして、データ出力部112は、未処理の容量チェックエリアを1つ特定する(ステップS73)。また、データ出力部112は、容量チェックエリアに関係する容量セルのデータを、DB120から読み出す(ステップS75)。処理に係る容量チェックエリアに一部でも入っている容量セルのデータを読み出す。そして、余裕度算出部1121は、読み出した容量セルのうち未処理の容量セルを1つ特定する(ステップS77)。ここで、余裕度算出部1121は、特定された容量セル全体が、特定された容量チェックエリアに入っているか判断する(ステップS79)。特定された容量セル全体が、特定された容量チェックエリアに入っている場合には、余裕度算出部1121は、この容量セルの実容量を、加算対象として特定する(ステップS81)。そして処理はステップS85に移行する。
一方、特定された容量セルの一部が、特定された容量チェックエリアに入っている場合には、余裕度算出部1121は、この容量セルのうちこの容量チェックエリアに入っている面積を算出し、実容量×算出面積/容量セルの全面積、すなわち実容量を面積で按分して本容量チェックエリアの分を、加算対象として特定する(ステップS83)。そして処理はステップS85に移行する。
その後、余裕度算出部1121は、特定された容量チェックエリアの実容量の総和に、特定された容量セルについての加算対象実容量を加算し、例えばメインメモリなどの記憶装置に格納する(ステップS85)。そして、余裕度算出部1121は、ステップS75で特定された容量セルのうち、未処理の容量セルが存在しているか判断する(ステップS87)。未処理の容量セルが存在している場合には、処理はステップS77に戻る。一方、未処理の容量セルが存在していない場合には、処理は端子Fを介して図15の処理に移行する。
次に、データ出力部112は、特定された容量チェックエリアに関係する、容量セル以外の配置セルのデータを、DB120から読み出す(図15:ステップS89)。手動で論理セルを配置する前に何らかのセルを配置している場合には、当該セルのデータを読み出す。そして、余裕度算出部1121は、ステップS89で読み出した配置セルのうち未処理の配置セルが存在しているか判断する(ステップS91)。未処理の配置セルが存在しない場合には端子Gを介して図17の処理に移行する。一方、未処理の配置セルが存在する場合には、余裕度算出部1121は、読み出した配置セルのうち未処理の配置セルを1つ特定する(ステップS93)。ここで、余裕度算出部1121は、特定された配置セル全体が、特定された容量チェックエリアに入っているか判断する(ステップS95)。特定された配置セル全体が、特定された容量チェックエリアに入っている場合には、余裕度算出部1121は、この配置セルの必要容量を、加算対象として特定する(ステップS97)。そして処理はステップS101に移行する。
一方、特定された配置セルの一部が、特定された容量チェックエリアに入っている場合には、余裕度算出部1121は、この配置セルのうちこの容量チェックエリアに入っている面積を算出し、必要容量×算出面積/配置セルの全面積、すなわち必要容量を面積で按分して本容量チェックエリアの分を、加算対象として特定する(ステップS99)。そして処理はステップS101に移行する。
その後、余裕度算出部1121は、特定された容量チェックエリアの必要容量に、特定された配置セルについての加算対象必要容量を加算し、例えばメインメモリなどの記憶装置に格納する(ステップS101)。そして、処理はステップS91に戻る。
例えばメインメモリなどの記憶装置又はデータ格納部130に、例えば図16に示すような管理テーブルを保持しておく。図16の例では、容量チェックエリア毎に、実容量の総和と、必要容量の総和と、容量余裕度と、容量余裕度マップの色と、当該容量チェックエリアに関係するセル又はエリアの識別子と、そのセル又はエリアの個別必要容量又は個別実容量とが登録されるようになっている。容量チェックエリアに関係するセル又はエリアの識別子及びその個別必要容量又は個別実容量については、ステップS75及びS89で登録する。但し、これらのデータについては、管理テーブルに登録しなくても良い。
次に、図17の処理の説明に移行して、余裕度算出部1121は、未処理の容量チェックエリアが存在するか判断する(ステップS103)。未処理の容量チェックエリアが存在する場合には、処理は端子Hを介してステップS73に戻る。一方、未処理の容量チェックエリアが存在しない場合には、各容量チェックエリアについて、必要容量の総和と実容量の総和が算出されたことになる。
そして、余裕度算出部1121は、容量余裕度マップに関連するパラメータの変更を禁止するため、変更禁止フラグをセットする(ステップS105)。そして、余裕度算出部1121は、データ格納部130から、容量余裕度マップに関連するパラメータを読み出す(ステップS107)。例えば図8に関連して入力されたデータを読み出す。
その後、余裕度算出部1121は、未処理の容量チェックエリアを1つ特定し(ステップS109)、当該容量チェックエリアの容量余裕度を、必要容量/実容量にて算出し、例えば管理テーブルに格納する(ステップS111)。容量余裕度は、0が余裕大で1が余裕無しを表している。
そして、余裕度算出部1121は、算出された容量余裕度が、容量余裕度マップに関連するパラメータに含まれる色出力下限値未満であるか判断する(ステップS113)。容量余裕度が色出力下限値未満である場合には処理はステップS117に移行する。一方、容量余裕度が色出力下限値以上であれば、余裕度算出部1121は、容量余裕度マップに関連するパラメータから、算出された容量余裕度に合致する色データを取得し、例えば管理テーブルに登録する(ステップS115)。その後、余裕度算出部1121は、未処理の容量チェックエリアが存在するか判断する(ステップS117)。未処理の容量チェックエリアが存在する場合には、ステップS109に戻る。一方、未処理の容量チェックエリアが存在しない場合には、端子Iを介して図18の処理に移行する。
図18の処理の説明に移行して、データ出力部112は、容量余裕度マップに関連するパラメータとして色出力が指示されているか判断する(ステップS119)。色出力が指示されていない場合には、処理はステップS123に移行する。色出力が指示されている場合には、データ出力部112は、各容量チェックエリアについて特定された色が付された容量余裕度マップを生成して、表示部160に出力する(ステップS121)。初期的には、必要容量がほぼ0の場合が多いので、図10に示したように色が何も付されないような容量余裕度マップが生成される。なお、例えば色出力下限値が1(=100%)である場合には、図19に示すような容量余裕度マップが生成される。また、例えば色出力下限値が0.9(=90%)以上であり、1.0以上と色分けする場合には、図20に示すような容量余裕度マップが生成される。
また、データ出力部112は、容量余裕度マップに関連するパラメータとして数値出力が指示されているか判断する(ステップS123)。数値出力が指示されていない場合には、処理はステップS127に移行する。一方、数値出力が指示されている場合には、データ出力部112は、各容量チェックエリアについて数値の容量余裕度が付された容量余裕度マップを生成して、表示部160に出力する(ステップS125)。例えば、図19のように、出力下限値が1(=100%)である場合には、図21に示すような容量余裕度マップが出力される。同様に、図20に示すように、出力下限値が0.9(=90%)である場合には、図22に示すような容量余裕度マップが出力される。
その後、データ出力部112は、変更禁止フラグを解除する(ステップS127)。そして、呼び出し元の処理に戻る。
以上のような処理を実施することで、初期的な容量余裕度マップを出力することができ、これから論理セル等を配置しようとする設計者は、どのあたりであれば論理セル等を配置しても容量の観点で問題がないのかを、大まかに把握できるようになる。容量余裕度マップについては、例えば配置作業ウィンドウの横に表示する。但し、別ウィンドウにて容量余裕度マップを表示させるようにしても良い。
次に、更新処理について、図23乃至図31を用いて説明する。データ出力部112は、更新内容を一時保管する内部テーブルをクリアする(ステップS131)。そして、データ出力部112は、容量余裕度マップに関連するパラメータの変更を禁止するため、変更禁止フラグをセットする(ステップS133)。また、データ出力部112は、配置対象物の配置予定位置を含む容量チェックエリアである配置先エリアを特定する(ステップS135)。
さらに、データ出力部112は、配置対象物が既にDB120に配置位置が登録されているか、すなわち配置位置を含む、配置元の容量チェックエリアである配置元エリアが存在するか判断する(ステップS137)。配置対象物を移動させる指示が入力された場合には、移動前の配置位置を含む配置元エリアが特定される。なお、配置対象物が、2つ以上の容量チェックエリアをまたいで配置されることがあるので、複数の配置元エリアが特定される場合もある。配置元エリアが存在しない場合、すなわち新規に配置対象物を配置することが指示された場合には、処理は端子Jを介して図25の処理に移行する。
一方、配置元エリアが存在する場合には、データ出力部112は、配置元エリアに関連するサイトのデータを例えばDB120から取得する(ステップS141)。配置元エリアには複数のサイトが関連する場合があるので、全てのサイトのデータを取得する。そして、データ出力部112は、未処理のサイトを1つ特定する(ステップS142)。その後、データ出力部112は、特定されたサイトにおいて増加する容量セルのデータを、内部テーブルに格納する(ステップS143)。本実施の形態では、論理セル等を移動させる場合には、配置元のサイトにできる空き領域には自動的に容量セルを配置する。従って、配置元のサイトにできる空き領域を特定し、当該空き領域に配置される予定の容量セルを特定し、配置される予定の容量セルと、当該容量セルの実容量と、その配置予定位置のデータを、内部テーブルに格納する。例えば図24に示すように、追加される予定の容量セルなのか削除される予定の容量セルなのかを表すフラグと、容量セルの識別子と、実容量と、位置データとが登録されるようになっている。
そして、データ出力部112は、未処理のサイトがあるか判断する(ステップS145)。未処理のサイトがある場合にはステップS142に戻る。一方、未処理のサイトが存在しない場合には、処理は端子Jを介して図25の処理に移行する。
図25の処理の説明に移行して、データ出力部112は、配置予定位置を含む容量チェックエリアである配置先エリアに関連するサイトのデータをDB120から取得する(ステップS147)。配置先エリアには複数のサイトが関連する場合があるので、全てのサイトのデータを取得する。そして、データ出力部112は、未処理のサイトを1つ特定する(ステップS149)。その後、データ出力部112は、特定されたサイトにおいて減少する容量セルのデータを、内部テーブルに格納する(ステップS151)。本実施の形態では、容量セル以外のセルが配置されている位置には論理セル等を配置できないものとしている。従って、配置対象物を配置した場合に削除されるのは容量セルとなる。よって、配置予定位置に既に配置されている容量セルのうち論理セル等と重複する容量セルを特定し、削除される予定の容量セルと、当該容量セルの実容量と、その配置元位置のデータを、内部テーブルに格納する。
そして、データ出力部112は、未処理のサイトがあるか判断する(ステップS153)。未処理のサイトがある場合にはステップS149に戻る。一方、未処理のサイトが存在しない場合には、データ出力部112は、配置元エリアが存在するか判断する(ステップS155)。配置元エリアが存在しない場合には、端子Lを介して図28の処理に移行する。一方、配置元エリアが存在する場合には、端子Kを介して図26の処理に移行する。
図26の処理の説明に移行して、データ出力部112は、配置元エリアに関連する容量チェックエリアを特定する(ステップS157)。上でも述べたように、複数の容量チェックエリアが関連する場合もある。そして、データ出力部112の余裕度算出部1121は、未処理の容量チェックエリアを1つ特定し(ステップS159)、配置対象物がスペアセルエリアであるか判断する(ステップS161)。配置対象物がスペアセルエリアであれば、余裕度算出部1121は、容量余裕度マップのためのパラメータに含まれるスペアセル標準使用率を取得する(ステップS163)。そして処理はステップS165に移行する。一方、配置対象物がスペアセルエリアでなければ、ステップS165に移行する。
その後、余裕度算出部1121は、配置元エリアにおける必要容量の削減量を算出し、例えばメインメモリなどの記憶装置に格納する(ステップS165)。配置対象物が論理セルであれば、当該論理セルの必要容量が、必要容量の削減量となる。一方、配置対象物がスペアセルエリアであれば、ステップS163で取得したスペアセル標準使用率を用いて、スペアセル標準使用率×スペアセルエリアの必要容量によって、必要容量の削減量を算出する。
さらに、余裕度算出部1121は、特定された容量チェックエリアにおける必要容量の総和を再計算し、例えばメインメモリなどの記憶装置に格納する(ステップS167)。管理テーブル(図16)には、配置確定された状態における必要容量の総和が登録されているので、必要容量の総和−必要容量の削減量にて、配置対象物を仮に移動させた場合における必要容量の総和が得られる。
さらに、余裕度算出部1121は、特定された容量チェックエリアにおける実容量の総和を再計算し、例えばメインメモリなどの記憶装置に格納する(ステップS169)。管理テーブル(図16)には、配置確定された状態における実容量の総和が登録されているので、実容量の総和+追加されるべき容量セルの実容量(内部テーブルに「追加」として登録されている容量セルの実容量)によって、配置対象物を仮に移動させた場合における実容量の総和が得られる。
その後、余裕度算出部1121は、必要容量の総和/実容量の総和により容量余裕度を算出し、例えばメインメモリなどの記憶装置に格納する(ステップS171)。そして、データ出力部112は、算出された容量余裕度に基づき表示の更新を実施する(ステップS173)。図27Aに示すような容量余裕度マップにおいて、容量チェックエリア1401aに含まれる論理セルを他の場所に移動させる場合には、実容量が増加して必要容量が減少する。よって、これまで容量余裕度が0.9以上1.0未満であったものが、図27Bに示すように0.9未満となって、容量チェックエリア1401bのように色が付されなくなる場合もある。
そして、余裕度算出部1121は、未処理の容量チェックエリアが存在するか判断する(ステップS175)。未処理の容量チェックエリアが存在する場合には、ステップS159に戻る。一方、未処理の容量チェックエリアが存在しない場合には、端子Lを介して図28の処理に移行する。
図28の処理の説明に移行して、データ出力部112は、配置先エリアに関連する容量チェックエリアを特定する(ステップS177)。上でも述べたように、複数の容量チェックエリアが関連する場合もある。そして、データ出力部112の余裕度算出部1121は、未処理の容量チェックエリアを1つ特定し(ステップS179)、配置対象物がスペアセルエリアであるか判断する(ステップS181)。配置対象物がスペアセルエリアであれば、余裕度算出部1121は、容量余裕度マップのためのパラメータに含まれるスペアセル標準使用率を取得する(ステップS183)。そして処理はステップS185に移行する。一方、配置対象物がスペアセルエリアでなければ、ステップS185に移行する。
その後、余裕度算出部1121は、配置先エリアにおける必要容量の増加量を算出し、例えばメインメモリなどの記憶装置に格納する(ステップS185)。配置対象物が論理セルであれば、当該論理セルの必要容量が、必要容量の増加量となる。一方、配置対象物がスペアセルエリアであれば、ステップS183で取得したスペアセル標準使用率を用いて、スペアセル標準使用率×スペアセルエリアの必要容量によって、必要容量の増加量を算出する。
さらに、余裕度算出部1121は、特定された容量チェックエリアにおける必要容量の総和を再計算し、例えばメインメモリなどの記憶装置に格納する(ステップS187)。管理テーブル(図16)には、配置確定された状態における必要容量の総和が登録されているので、必要容量の総和+必要容量の増加量にて、配置対象物を仮に配置させた場合における必要容量の総和が得られる。
さらに、余裕度算出部1121は、特定された容量チェックエリアにおける実容量の総和を再計算し、例えばメインメモリなどの記憶装置に格納する(ステップS189)。管理テーブル(図16)には、配置確定された状態における実容量の総和が登録されているので、実容量の総和−削除されるべき容量セルの実容量(内部テーブルに「削除」として登録されている容量セルの実容量)によって、配置対象物を仮に配置させた場合における実容量の総和が得られる。
その後、余裕度算出部1121は、必要容量の総和/実容量の総和により容量余裕度を算出し、例えばメインメモリなどの記憶装置に格納する(ステップS191)。そして、データ出力部112は、算出された容量余裕度に基づき表示の更新を実施する(ステップS193)。図29Aに示すような容量余裕度マップが表示されており、容量チェックエリア1411aには0.9以上1.0未満に相当する色が付されているものとする。そして、図29Bに示すように、配置作業ウィンドウにおいて、例えば論理セルを配置予定位置1421にドラッグして持って行くと、上で述べた計算を行う。そうすると、容量チェックエリア1411aの容量余裕度が1.0を超えるので、図29Bに示すように、容量チェックエリア1411bには1.0以上に相当する色が付されて、論理セルについても同じ色に変化する。
同様に、図29Cに示すように、配置作業ウィンドウにおいて例えば論理セルを配置予定位置1422にドラッグして持って行って上で述べた計算を行っても、算出された容量余裕度が属する範囲が変化しないものとする。そうすると、容量余裕度マップにおいても容量チェックエリア1412の色は変化せず、同じ色が論理セルにも表示される。さらに、論理セルを配置予定位置1423にドラッグして持って行って上で述べた計算を行っても、算出された容量余裕度が属する範囲が変化しないものとする。そうすると、容量余裕度マップにおいても容量チェックエリア1413の色は変化せず、同じ色が論理セルにも表示される。
論理セルではなくスペアセルエリアを配置する場合も同様である。図30に示すように、配置作業ウィンドウにおける配置予定位置1425に、スペアセルエリアを配置しようとすると、その配置予定位置1425を含む容量チェックエリア1415及び1416が特定される。この場合には、容量チェックエリア1415は容量余裕度が1.0以上となっているが、容量チェックエリア1416は容量余裕度が0.9以上1.0未満となっており、スペアセルエリアを配置しても容量余裕度が属する範囲が変化しないものとする。そうすると、配置予定位置1425にドラッグされてきたスペアセルエリアは、対応する容量チェックエリア毎に塗り分けを行っても良いが、例えば、容量余裕度のうち高い方の値に基づき色を決定して色付けするようにしても良い。図30では後者の方式を採用している。
そして、余裕度算出部1121は、未処理の容量チェックエリアが存在するか判断する(ステップS195)。未処理の容量チェックエリアが存在する場合には、ステップS179に戻る。一方、未処理の容量チェックエリアが存在しない場合には、データ出力部112は、容量余裕度マップのためのパラメータに対する変更禁止フラグを解除する(ステップS199)。そして呼び出し元の処理に戻る。なお、内部テーブルを、そのまま配置確定指示(例えばドロップの指示など)を受けた場合(ステップS17)に用いるため、メインメモリなどの記憶装置に保持しておく。すなわち、ステップS17では、配置対象物の配置に加えて、内部テーブルに格納されているデータに基づく配置変更をも、DB120に反映させる。
また、ステップS17では、管理テーブルについても更新する。例えば、図31に示すように、各容量チェックエリアについて、実容量の総和、必要容量の総和、容量余裕度、容量余裕度マップにおける色について、確定状態を反映させる。これは直前の更新処理で得られた値を反映させればよい。また、各容量チェックエリアに属するセル又はエリア毎の個別必要容量及び個別実容量については、配置対象物の配置情報に加えて内部テーブルに格納されているデータに基づく配置変更の情報に従って更新される。
このようにすれば、設計者は、容量余裕度マップで論理セル等を配置する配置予定位置を探した上で、実際に配置する前に、仮に配置予定位置に配置した場合に容量余裕度がどのように変化するのかをも確認することができるようになる。すなわち、問題があるような配置予定位置に論理セル等を配置確定させることが無くなり、無駄な作業及び処理を削減して、効率的な作業及び処理が行えるようになる。
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、処理フローについては、処理結果が変わらない限り、処理ステップの順番を入れ替えたり、複数の処理ステップを並列に実行するようにしても良い。
さらに、上で述べた機能ブロック構成は一例であって、必ずしも実際のプログラムモジュール構成と一致しない場合もある。
また、表示の仕方は様々に変更可能である。例えば、数値と色にて容量余裕度を示す例を示したが、ハッチングの形態を変更することで示すことも可能である。さらに、配置作業ウィンドウにおいて配置対象物の色を変更する例を示したが、図32Aに示すように、配置対象物内に色ではなく数値を示すようにしても良い。さらに、図32Bに示すように、配置対象物外の表示欄1451に、数値や色を提示するようにしても良い。
さらに、容量余裕度ではなく、必要容量の総和及び実容量の総和を対比可能な形で提示するようにしても良い。例えば、図32Cに示すように、表示欄1461に、必要容量と実容量とを表示させるようにしても良い。また、表示欄1461に数値を表示させても良いし、円グラフその他の表現方法にて提示するようにしても良い。
また、容量余裕度マップと、配置作業ウィンドウとを並べて表示して、配置作業ウィンドウにおいて配置しようとする論理セル等と、容量余裕度マップにおける対応容量チェックエリアとで同じ色で更新するような処理を説明した。しかし、容量余裕度マップについては確定配置の結果を反映しておき、配置作業ウィンドウにおいて配置しようとする論理セル等については、仮に配置した場合における色を表示するようにしても良い。これによって、配置前後を比較することも可能になる。
さらに、他の方法で一旦容量チェックまで行った後に、本エディタ110により修正するようにしても良い。その際にも、更新処理以降を実施すれば良い。
なお、上で述べた設計支援装置100は、コンピュータ装置であって、図33に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本実施の形態をまとめると、以下のようになる。
本実施の形態に係る設計支援装置は、(A)半導体集積回路のセル配置エリアにおける空き領域に容量セルを配置する配置部と、(B)容量セルの容量と、論理セルの必要容量とを格納するデータ格納部と、(C)ある論理セルを配置する予定の位置が指示されると、当該位置の容量セルが除去されたと仮定してセル配置エリアに含まれる複数の容量チェックエリアのうち上記位置を含む容量チェックエリアについての容量の総和をデータ格納部に格納されているデータを用いて算出し、上記ある論理セルが配置されたと仮定して上記位置を含む容量チェックエリアについての必要容量の総和をデータ格納部に格納されているデータを用いて算出し、上記位置を含む容量チェックエリアについて算出された上記容量の総和と必要容量の総和との関係を表す情報を出力する情報出力部とを有する。
このようにすれば、配置する前に容量の観点において問題が発生するか否かを判断することができる。すなわち、問題がない部分に論理セルを配置すれば、手戻り無く効率的に作業及び処理を行うことができる。
また、上で述べた情報出力部が、複数の容量チェックエリアの各々について、当該容量チェックエリアに既に配置されているセルによる容量の総和と必要容量の総和とを算出し、当該容量の総和と当該必要容量の総和との関係を表す第2の情報を出力するようにしてもよい。このようにすれば、現状を考慮した上で、論理セルの配置予定位置を決定することができるようになる。
さらに、上で述べたデータ格納部が、スペアセルエリアの必要容量をさらに格納している場合もある。その場合、上で述べた情報出力部が、あるスペアセルエリアを配置する予定の第2の位置が指定されると、当該第2の位置の容量セルが除去されたと仮定して第2の位置を含む容量チェックエリアについての容量の総和をデータ格納部に格納されているデータを用いて算出し、あるスペアセルエリアが配置されたと仮定して第2の位置を含む容量チェックエリアについての必要容量の総和を、スペアセルエリアのうち論理セルとして使用する割合とデータ格納部に格納されているデータとを用いて算出し、第2の位置を含む容量チェックエリアについて算出された容量の総和と必要容量の総和との関係を表す第3の情報を出力するようにしても良い。このようにスペアセルエリアについても、論理セルとして使用する割合を考慮しつつ、配置予定位置へ配置した場合における容量の観点において適否を判断できるようになる。さらに、実際に論理セルとして使用することになっても、容量の観点において問題が発生しづらくなる。
また、上で述べた情報出力部は、ある論理セルが既に別の位置に配置されていて移動させる場合には、当該別の位置に対応容量セルが配置されたと仮定して複数の容量チェックエリアのうち別の位置を含む容量チェックエリアについての容量の総和をデータ格納部に格納されているデータを用いて算出し、ある論理セルが除去されたと仮定して別の位置を含む容量チェックエリアについての必要容量の総和をデータ格納部に格納されているデータを用いて算出し、別の位置を含む容量チェックエリアについて算出された容量の総和と必要容量の総和との関係を表す第4の情報を出力するようにしても良い。新たに論理セルを配置するだけではなく、移動させる場合にも対処できるようになる。特に、自動的に配置元位置に容量セルを配置しようとするので、配置元位置を含む容量チェックエリアについて正確に必要容量の総和及び容量の総和が算出できるようになる。
さらに、上で述べた情報出力部が、あるスペアセルエリアが既に別の第2の位置に配置されていて移動させる場合には、当該別の第2の位置に対応容量セルが配置されたと仮定して第2の別の位置を含む容量チェックエリアについての容量の総和をデータ格納部に格納されているデータを用いて算出し、あるスペアセルエリアが除去されたと仮定して第2の別の位置を含む容量チェックエリアについての必要容量の総和を、スペアセルエリアのうち論理セルとして使用する割合とデータ格納部に格納されているデータとを用いて算出し、上記別の第2の位置を含む容量チェックエリアについて算出された容量の総和と必要容量の総和との関係を表す第5の情報を出力するようにしても良い。スペアセルエリアについても論理セルと同様に移動させることも可能である。
また、容量の総和と必要容量の総和との関係を表す情報が、容量の総和に対する必要容量の総和の比又当該比に応じた表示形態のデータである場合もある。様々な表示態様が可能であるが、このような比をベースにすることで分かり易くなる。
なお、上で述べたデータ格納部が、複数の容量チェックエリアの各々に、当該容量チェックエリアに既に配置されているセルについての容量の総和と必要容量の総和とを格納するようにしても良い。このようすれば、高速に容量の総和及び必要容量の総和を算出することができる。例えば、論理セルを配置する場合には、容量の総和から、除去される予定の容量セルの容量を減ずれば容量の新たな総和を算出でき、必要容量の総和に論理セルの必要容量を加算すれば必要容量の新たな総和を算出できる。
なお、上で述べた配置部が、情報出力部より先に動作するようにしても良い。例えば最初に配置部を動作させることで、正確に計算が可能になる。
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。

Claims (10)

  1. 半導体集積回路のセル配置エリア全体論理セルの配置前に容量セルを配置する配置部と、
    容量セルの容量と、論理セルの必要容量とを格納するデータ格納部と、
    ある論理セルを配置する予定の位置が指示されると、当該位置の容量セルが除去されたと仮定して前記セル配置エリアに含まれる複数の容量チェックエリアのうち前記位置を含む容量チェックエリアについての容量の総和を前記データ格納部に格納されているデータを用いて算出し、前記ある論理セルが配置されたと仮定して前記位置を含む容量チェックエリアについての必要容量の総和を前記データ格納部に格納されているデータを用いて算出し、前記位置を含む容量チェックエリアについて算出された前記容量の総和と前記必要容量の総和との関係を表す情報を出力する情報出力部と、
    を有する設計支援装置。
  2. 前記情報出力部が、
    前記複数の容量チェックエリアの各々について、当該容量チェックエリアに既に配置されているセルによる容量の総和と必要容量の総和とを算出し、当該容量の総和と当該必要容量の総和との関係を表す第2の情報を出力する
    請求項1記載の設計支援装置。
  3. 前記データ格納部が、スペアセルエリアの必要容量をさらに格納しており、
    前記情報出力部が、
    あるスペアセルエリアを配置する予定の第2の位置が指定されると、当該第2の位置の容量セルが除去されたと仮定して前記第2の位置を含む容量チェックエリアについての容量の総和を前記データ格納部に格納されているデータを用いて算出し、前記あるスペアセルエリアが配置されたと仮定して前記第2の位置を含む容量チェックエリアについての必要容量の総和を、前記スペアセルエリアのうち論理セルとして使用する割合と前記データ格納部に格納されているデータとを用いて算出し、前記第2の位置を含む容量チェックエリアについて算出された前記容量の総和と前記必要容量の総和との関係を表す第3の情報を出力する、
    請求項1又は2記載の設計支援装置。
  4. 前記情報出力部は、
    前記ある論理セルが既に別の位置に配置されていて移動させる場合には、当該別の位置に対応容量セルが配置されたと仮定して前記複数の容量チェックエリアのうち前記別の位置を含む容量チェックエリアについての容量の総和を前記データ格納部に格納されているデータを用いて算出し、前記ある論理セルが除去されたと仮定して前記別の位置を含む容量チェックエリアについての必要容量の総和を前記データ格納部に格納されているデータを用いて算出し、前記別の位置を含む容量チェックエリアについて算出された前記容量の総和と前記必要容量の総和との関係を表す第4の情報を出力する、
    請求項1乃至3のいずれか1つ記載の設計支援装置。
  5. 前記情報出力部が、
    前記あるスペアセルエリアが既に別の第2の位置に配置されていて移動させる場合には、当該別の第2の位置に対応容量セルが配置されたと仮定して前記第2の別の位置を含む容量チェックエリアについての容量の総和を前記データ格納部に格納されているデータを用いて算出し、前記あるスペアセルエリアが除去されたと仮定して前記第2の別の位置を含む容量チェックエリアについての必要容量の総和を、前記スペアセルエリアのうち論理セルとして使用する割合と前記データ格納部に格納されているデータとを用いて算出し、前記別の第2の位置を含む容量チェックエリアについて算出された前記容量の総和と前記必要容量の総和との関係を表す第5の情報を出力する、
    請求項3記載の設計支援装置。
  6. 前記容量の総和と前記必要容量の総和との関係を表す情報が、前記容量の総和に対する前記必要容量の総和の比又当該比に応じた表示形態のデータである
    請求項1乃至5のいずれか1つ記載の設計支援装置。
  7. 前記データ格納部が、
    前記複数の容量チェックエリアの各々に、当該容量チェックエリアに既に配置されているセルについての容量の総和と必要容量の総和とを格納する
    請求項1乃至6のいずれか1つ記載の設計支援装置。
  8. 前記配置部が、前記情報出力部より先に動作する
    請求項1乃至7のいずれか1つ記載の設計支援装置。
  9. 半導体集積回路のセル配置エリア全体論理セルの配置前に容量セルを配置する処理と、
    ある論理セルを配置する予定の位置が指示されると、当該位置の容量セルが除去されたと仮定して前記セル配置エリアに含まれる複数の容量チェックエリアのうち前記位置を含む容量チェックエリアについての容量の総和を、容量セルの容量と、論理セルの必要容量とを格納するデータ格納部に格納されているデータを用いて算出し、前記ある論理セルが配置されたと仮定して前記位置を含む容量チェックエリアについての必要容量の総和を前記データ格納部に格納されているデータを用いて算出し、前記位置を含む容量チェックエリアについて算出された前記容量の総和と前記必要容量の総和との関係を表す情報を出力する処理と、
    を含む処理を、コンピュータに実行させるためのプログラム。
  10. 半導体集積回路のセル配置エリア全体論理セルの配置前に容量セルを配置する処理と、
    ある論理セルを配置する予定の位置が指示されると、当該位置の容量セルが除去されたと仮定して前記セル配置エリアに含まれる複数の容量チェックエリアのうち前記位置を含む容量チェックエリアについての容量の総和を、容量セルの容量と、論理セルの必要容量とを格納するデータ格納部に格納されているデータを用いて算出し、前記ある論理セルが配置されたと仮定して前記位置を含む容量チェックエリアについての必要容量の総和を前記データ格納部に格納されているデータを用いて算出し、前記位置を含む容量チェックエリアについて算出された前記容量の総和と前記必要容量の総和との関係を表す情報を出力する処理と、
    を含む処理を、コンピュータが実行する設計支援方法。
JP2013548039A 2011-12-09 2011-12-09 設計支援装置、方法及びプログラム Active JP5835346B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/078585 WO2013084356A1 (ja) 2011-12-09 2011-12-09 設計支援装置、方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2013084356A1 JPWO2013084356A1 (ja) 2015-04-27
JP5835346B2 true JP5835346B2 (ja) 2015-12-24

Family

ID=48573754

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013548039A Active JP5835346B2 (ja) 2011-12-09 2011-12-09 設計支援装置、方法及びプログラム

Country Status (3)

Country Link
US (1) US20140258959A1 (ja)
JP (1) JP5835346B2 (ja)
WO (1) WO2013084356A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105528502B (zh) * 2016-02-04 2018-08-17 南京信息工程大学 一种修正的反距离人口插值方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6523159B2 (en) * 2001-01-16 2003-02-18 International Business Machines Corporation Method for adding decoupling capacitance during integrated circuit design
JP2004055954A (ja) * 2002-07-23 2004-02-19 Nec Micro Systems Ltd 半導体集積回路およびそのレイアウト方法
JP2004272392A (ja) * 2003-03-05 2004-09-30 Matsushita Electric Ind Co Ltd 半導体集積回路における遅延シミュレーション用ネットリスト生成システムおよび遅延シミュレーション用ネットリスト生成方法
JP4860123B2 (ja) * 2004-07-22 2012-01-25 富士通セミコンダクター株式会社 デカップリング容量の配置方法
JP4967534B2 (ja) * 2006-08-28 2012-07-04 富士通セミコンダクター株式会社 半導体装置のレイアウト方法およびレイアウトプログラム
JP5161035B2 (ja) * 2008-10-29 2013-03-13 ルネサスエレクトロニクス株式会社 半導体集積回路の設計装置、設計方法およびプログラム

Also Published As

Publication number Publication date
US20140258959A1 (en) 2014-09-11
WO2013084356A1 (ja) 2013-06-13
JPWO2013084356A1 (ja) 2015-04-27

Similar Documents

Publication Publication Date Title
US6889370B1 (en) Method and apparatus for selecting and aligning cells using a placement tool
JP4644614B2 (ja) レイアウトエディタ装置、配線表示方法、及び配線表示プログラム
JP5564579B2 (ja) フローチャート描画装置、フローチャート描画方法およびプログラム
US20070283309A1 (en) Data models for describing an electrical device
CN111597768B (zh) 用于构建版图图案集的方法、设备和计算机可读存储介质
CN113221500A (zh) 一种基于人工智能算法的芯片打线布局自动化设计方法
CN104346172A (zh) 一种不规则div动态布局方法
US8694288B2 (en) CAD pipe arrangement and pipe relationship database validation
JP5835346B2 (ja) 設計支援装置、方法及びプログラム
CN115048900B (zh) 一种集成电路版图的拐角填充方法、装置及计算机设备
JP2007258215A (ja) セル配置プログラム、セル配置装置、及びセル配置方法
CN107315863A (zh) 布局优化方法及装置、终端及存储介质
JP2008027302A (ja) レイアウト評価装置
CN106776265A (zh) 测试用例更新方法与装置
US8862446B1 (en) Systems and methods for graphical model environment routing
CN114970413A (zh) 一种面向对象的参数化单元设计方法
US20220198113A1 (en) Design support device and storage medium
JP5062280B2 (ja) グラフ表示装置及びプログラム
JP4733059B2 (ja) 集積回路設計装置、集積回路設計方法及び集積回路設計プログラム
JP4883896B2 (ja) 原子炉の炉心ローディングテンプレートを作成し、編集する方法及び装置
JP2010086284A (ja) クロック信号供給回路の設計方法、情報処理装置およびプログラム
JP5397512B2 (ja) グラフ表示装置及びプログラム
CN107861785A (zh) 一种可交互在线快速进行冗余金属填充的方法
JP6121706B2 (ja) プログラミング方法および装置
CN107544820A (zh) 图表展示方法及装置

Legal Events

Date Code Title Description
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: 20151006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151019

R150 Certificate of patent or registration of utility model

Ref document number: 5835346

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150