説明

レイアウト設計方法、レイアウト設計プログラム及びレイアウト設計装置

【課題】被クリップセルとクリップセル間の配線引き回しを抑え、配線引き回しに起因した不具合を回避する。
【解決手段】レイアウト設計において、ネットリストを用い、被クリップセルと、その被クリップセルに接続されるクリップセルとを抽出し(ステップS1)、抽出された被クリップセルとクリップセルとを関連付けた関連付け情報を生成する(ステップS2)。そして、生成された関連付け情報に基づき、被クリップセルとクリップセルとを隣接させる等して一体で配置し(ステップS3)、配置された被クリップセルとクリップセルとを配線で接続する(ステップS4)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、レイアウト設計方法、レイアウト設計プログラム及びレイアウト設計装置に関する。
【背景技術】
【0002】
LSI(Large Scale Integration)等の半導体集積回路のレイアウト設計においては、例えば、自動配置配線ツールを用いた装置(コンピュータ)を利用して、ネットリストに含まれる複数のセルの配置、セル間の配線が行われている。配置配線の際には、論理の関係から、セルに含まれる所定の入力端子を“1”又は“0”に固定すること(クリップのほか、タイ、クランプ等と称される)が行われる場合がある。クリップする方法としては、セルの入力端子を“1”又は“0”に該当する電位の電源線に直接配線で繋ぐ方法がある。近年では、プロセスの微細化に伴う、急激な電圧変動による誤動作やゲート破壊を抑制するため、電源線に接続する入力端子を含んだセルの当該入力端子を、抵抗等の保護素子を含んだセルを介して、電源線に接続する方法も知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−155118号公報
【特許文献2】特開平11−8370号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ネットリストを用い、クリップされるセル(被クリップセル)と共に、保護素子を含んだセル(クリップセル)を配置配線する場合、既存の装置では、必ずしも被クリップセルの近傍に当該被クリップセルと接続するクリップセルが配置されるとは限らない。他のセルの配置、セルの配置を禁止する領域等の制約のために、被クリップセルとクリップセルとが比較的離れた場所に配置され得る。また、既存の装置では、一旦配置した被クリップセルを別の場所に移動するときに、被クリップセルのみが移動し、クリップセルとの距離が離れてしまうことが起こり得る。
【0005】
被クリップセルとクリップセルが離れた場所に配置されると、それらの間を繋ぐ配線が、他の配線の経路を塞いだり、他の配線やセルを迂回させるために引き回されたり、ショートのような配線違反を引き起こしたりする場合がある。これらの修正には時間を要し、また、修正の際には、他のセルや配線との配置関係によって配線が引き回せない、配線引き回しによって所定のタイミング特性が得られない、といったことも起こり得る。
【課題を解決するための手段】
【0006】
本発明の一観点によれば、コンピュータが、ネットリストを用いて、第1回路の情報を含む第1セルと、前記第1回路に接続される第2回路の情報を含む第2セルとを抽出し、抽出された前記第1セルと前記第2セルとを関連付けた第1関連付け情報を生成し、生成された前記第1関連付け情報に基づき、前記第1セルと前記第2セルとを隣接させて配置し、配置された前記第1セルと前記第2セルとを接続する第1配線を配置するレイアウト設計方法が提供される。
【発明の効果】
【0007】
開示の方法によれば、接続するセル同士を隣接させて配置し、セル間を適切に配線することが可能になる。また、配置配線の効率化を図ることが可能になる。
【図面の簡単な説明】
【0008】
【図1】レイアウト設計方法の一例を示す図である。
【図2】レイアウト設計装置の一構成例を示す図である。
【図3】クリップの説明図である。
【図4】ネットリストの一例を示す図である。
【図5】クリップ情報テーブルの一例を示す図である。
【図6】別形態のレイアウト設計方法の一例を示す図(その1)である。
【図7】別形態のレイアウト設計方法の一例を示す図(その2)である。
【図8】別形態のレイアウト設計フローを用いた場合の説明図(その1)である。
【図9】別形態のレイアウト設計フローを用いた場合の説明図(その2)である。
【図10】第1の実施の形態に係るレイアウト設計フローの一例を示す図(その1)である。
【図11】第1の実施の形態に係るレイアウト設計フローの一例を示す図(その2)である。
【図12】第1の実施の形態に係るレイアウト設計フローの一例を示す図(その3)である。
【図13】第1の実施の形態に係るレイアウト設計の説明図である。
【図14】第2の実施の形態に係る階層化処理の一例の説明図である。
【図15】第2の実施の形態に係る階層化処理の内容を示すネットリストの一例を示す図(その1)である。
【図16】第2の実施の形態に係る階層化処理の内容を示すネットリストの一例を示す図(その2)である。
【図17】第2の実施の形態に係るレイアウト設計フローの一例を示す図(その1)である。
【図18】第2の実施の形態に係るレイアウト設計フローの一例を示す図(その2)である。
【図19】第2の実施の形態に係るレイアウト設計の説明図である。
【図20】第3の実施の形態に係るクリップセル共有化処理の一例の説明図(その1)である。
【図21】第3の実施の形態に係るクリップセル共有化処理の一例の説明図(その2)である。
【図22】第3の実施の形態に係るクリップセル共有化処理の一例の説明図(その3)である。
【図23】第3の実施の形態に係るレイアウト設計フローの一例を示す図(その1)である。
【図24】第3の実施の形態に係るレイアウト設計フローの一例を示す図(その2)である。
【図25】第3の実施の形態に係るレイアウト設計の第1変形例の説明図である。
【図26】第3の実施の形態に係るレイアウト設計の第2変形例の説明図である。
【図27】第3の実施の形態に係るレイアウト設計の第3変形例の説明図である。
【図28】第3の実施の形態に係るレイアウト設計の第4変形例の説明図である。
【図29】第3の実施の形態に係るレイアウト設計の第5変形例の説明図である。
【図30】レイアウト設計装置のハードウェアの一構成例を示す図である。
【発明を実施するための形態】
【0009】
図1はレイアウト設計方法の一例を示す図、図2はレイアウト設計装置の一構成例を示す図である。
レイアウト設計にあたっては、まずそれに先立ち、形成する半導体集積回路の仕様に基づく機能設計が行われる。そして、機能設計後の各機能についてのレジスタトランスファレベル(RTL)設計、更にゲートレベル設計(論理設計)が行われ、セルとその接続情報(回路の情報)を含むネットリストが作成される。これらの各処理には、それぞれ適当な論理合成CAD(Computer Aided Design)が利用される。
【0010】
レイアウト設計では、このようにして作成されるネットリストを用いて、自動配置配線ツールを用いた装置(レイアウト設計装置(自動配置配線装置))を利用して配置配線を行う。そのようなレイアウト設計装置の一例を図2に示す。レイアウト設計装置を用いたレイアウト設計方法の流れを図1に示す。
【0011】
図2に示すレイアウト設計装置1000は、抽出部1010、生成部1020、第1配置部1030、及び第2配置部1040を含んでいる。レイアウト設計装置1000の処理機能は、コンピュータによって実現することができる。
【0012】
レイアウト設計装置1000を用いたレイアウト設計では、まず、抽出部1010が、ネットリスト10を用いて、第1回路の情報を含む第1セルと、その第1回路に接続される第2回路の情報を含む第2セルとを抽出する(ステップS1)。次いで、生成部1020が、抽出された第1セルと第2セルとを関連付けた関連付け情報を生成する(ステップS2)。そして、第1配置部1030が、生成されたその関連付け情報に基づき、第1セルと第2セルとを一体で配置する(ステップS3)。例えば、第1セルと第2セルを、隣接させた状態で、或いは1セルにブロック化した状態で、或いはまた一定の間隔を設けた状態で、配置する。配置後、第2配置部1040が、第1セルと第2セルの間の配線(結線)を行う(ステップS4)。
【0013】
このように、結線される第1セルと第2セルとを一体で配置することで、それらの間を適切に配線することが可能になる。例えば、第1セルと第2セルの間を、迂回配線や他の配線とのショートを回避し、また、所定のタイミング条件や配線条件を満足させて、適切に配線することが可能になる。
【0014】
上記レイアウト設計において、例えば、第1セルは、入力端子を“1”又は“0”にクリップされるセル(被クリップセル)とすることができる。第2セルは、被クリップセルと電源線の間に設ける、抵抗等の保護素子(保護回路)を含んだセル(クリップセル)とすることができる。
【0015】
ここでクリップについて説明する。
図3はクリップの説明図である。図3(A)〜(C)は被クリップセルの入力端子を“1”に固定する場合の説明図、図3(D)〜(F)は被クリップセルの入力端子を“0”に固定する場合の説明図である。尚、図3において、(A)及び(D)は被クリップセルと電源線の直接接続の一例、(B)及び(E)は被クリップセルと電源線のクリップセルを介した接続の一例、(C)及び(F)はそれぞれ(B)及び(E)の回路図の一例である。
【0016】
ここでは、“1”に相当する電位レベルを電源電位(VDD)レベル、“0”に相当する電位レベルを接地電位(VSS)レベルとしている。図3(A)の場合、被クリップセル1は、その入力端子1a,1bのうち、例えば一方の入力端子1aが、クリップ配線2aによってVDDレベルの電源線3aに接続され、それにより、その入力端子1aが“1”にクリップされた状態になっている。図3(D)の場合、被クリップセル1は、例えばその入力端子1aが、クリップ配線2aによってVSSレベルの電源線3bに接続され、それにより、その入力端子1aが“0”にクリップされた状態になっている。
【0017】
尚、レイアウト設計上、このような一対の電源線3a,3bによって画定される領域は、いわゆるROW領域とされ、被クリップセル1等のセルは、このようなROW領域に配置される。
【0018】
被クリップセル1に含まれる回路の、電圧変動に起因した誤動作や破壊を抑える観点から、図3(B),(C)及び図3(E),(F)に示すような、保護素子4aを含むクリップセル4が、被クリップセル1に接続される。
【0019】
被クリップセル1には、所定の回路1c(ここでは一例としてNANDゲート)が含まれ、入力端子1a(In1),1b(In2)のうち、一方の入力端子1aに、クリップセル4の保護素子4aが接続される。保護素子4aとしては、例えば、抵抗、ダイオード等を用いることができる。保護素子4aは、VDDレベルの電源線3a又はVSSレベルの電源線3bに接続される。
【0020】
図3(B),(C)の場合、被クリップセル1の回路1cの入力端子1aが、VDDレベルの電源線3aに接続されたクリップセル4の保護素子4a(入力端子4b)と、クリップ配線2bで接続されている。それにより、被クリップセル1の入力端子1aが、保護素子4aを介して、“1”にクリップされている。
【0021】
図3(E),(F)の場合、被クリップセル1の回路1cの入力端子1aが、VSSレベルの電源線3bに接続されたクリップセル4の保護素子4a(入力端子4b)と、クリップ配線2bで接続されている。それにより、被クリップセル1の入力端子1aが、保護素子4aを介して、“0”にクリップされている。
【0022】
ネットリスト10には、例えばこのような被クリップセル1及びクリップセル4に関する情報が含まれる。
図4にネットリストの一例を示す。尚、図4(A)はクリップセルに関する情報を含まないネットリストの一例、図4(B)はクリップセルに関する情報を含むネットリストの一例である。
【0023】
図4(A)に示すネットリスト10aは、図3(A)及び図3(D)に示したような接続を示す。ネットリスト10aには、被クリップセル1(CELL_A,インスタンス名INST_A_1,INST_A_2)が、その入出力(IN1,IN2,OUT)の接続情報と共に記述されている。
【0024】
図4(B)に示すネットリスト10bは、図3(B),(C)(図3(E),(F))に示したような接続を示す。ネットリスト10bには、被クリップセル1(CELL_A)の入力(IN1)に、クリップセル4(CLIP_1,CLIP_0,インスタンス名CLIP_1_1,CLIP_0_1)のネット(CLIPNET1,CLIPNET0)に接続される情報が記述されている。
【0025】
尚、ネットリスト10bのような、被クリップセル1に関する情報のほか、クリップセル4に関する情報も含んだネットリストは、例えば、ゲートレベル設計時(論理合成時)にクリップセル4の情報も含めることで、取得することができる。
【0026】
上記の例(図1,図2)の場合、レイアウト設計では、例えば図4(B)のようなネットリスト10bが用いられ、被クリップセル1及びクリップセル4が、それらの接続情報に基づき、レイアウト設計装置1000の抽出部1010によって抽出される。そして、抽出された被クリップセル1とクリップセル4を関連付けた関連付け情報(クリップ情報)が、レイアウト設計装置1000の生成部1020によって生成される。クリップ情報は、データベース(クリップ情報テーブル)として、レイアウト設計装置1000が備える記憶部に記憶される。
【0027】
図5にクリップ情報テーブルの一例を示す。
例えば、この図5に示すように、被クリップセルのインスタンス名と、クリップされる端子名(被クリップ端子名)、及び被クリップセルに接続されるクリップセルのインスタンス名が、グループに分けられ、クリップ情報テーブル20に格納される。図5には、上記図4(B)に示したようなネットリスト10bを基に得られるクリップ情報テーブル20を例示している。
【0028】
この図5の例の場合、クリップ情報テーブル20のグループ1(Group1)は、インスタンス名INST_A_1の被クリップセル1、被クリップ端子名IN1、インスタンス名CLIP_1_1のクリップセル4の組み合わせ(関連付け)を示す。グループ2(Group2)は、インスタンス名INST_A_2の被クリップセル1、被クリップ端子名IN1、インスタンス名CLIP_0_1のクリップセル4の組み合わせ(関連付け)を示す。
【0029】
上記の例(図1,図2)の場合、レイアウト設計では、この図5に示したようなクリップ情報テーブル20に含まれる情報に基づき、配置配線処理が行われる。即ち、接続される被クリップセルとクリップセル(一グループ内の被クリップセルとクリップセル)を、レイアウト設計装置1000の第1配置部1030によって一体で配置(レイアウト)する。そして、一体で配置した被クリップセルとクリップセルの間に、レイアウト設計装置1000の第2配置部1040によって配線(クリップ配線)を配置(結線)する。
【0030】
このように、接続される被クリップセルとクリップセルの組を一体で配置することで、それらの間を繋ぐ配線を配置(結線)する際に生じ得る不具合を回避することが可能になる。
【0031】
そこでまず、上記のような、接続される被クリップセルとクリップセルの組を一体で配置するための処理を行わない、別形態のレイアウト設計方法の一例について述べる。
図6及び図7は別形態のレイアウト設計方法の一例を示す図である。尚、図6(A)はクリップセルに関する情報を含むネットリストを用いた場合のレイアウト設計フローの一例を示す図、図6(B)はクリップセルに関する情報を含まないネットリストを用いた場合のレイアウト設計フローの一例を示す図である。図7は図6(A),(B)に含まれるタイミング修正の処理フローの一例を示す図である。
【0032】
図6(A),(B)及び図7に示すようなレイアウト設計フローにおける各ステップの処理は、レイアウト設計装置で実行される。
例えば、図6(A)に示すレイアウト設計フローでは、まず、被クリップセル及びクリップセルに関する情報を含むネットリスト10を用いて、ROW領域に被クリップセル及びクリップセルが配置(初期配置)される(ステップS10)。クリップされないセルがある場合には、そのセルも初期配置される。次いで、セル間を接続する配線が配置される(ステップS11)。そして、タイミングチェックが行われ、所定のタイミング条件を満たすか否かが判定される(ステップS12)。所定のタイミング条件を満たす場合には、配線チェックが行われ、配線がデザインルール等の条件を満たすか否かが判定される(ステップS13)。配線が所定の条件を満たすと判定された場合には、レイアウト設計の処理が終了する。
【0033】
ステップS12のタイミングチェック時に、所定のタイミング条件を満たさなかった場合には、タイミング修正が行われる(ステップS14)。タイミング修正は、レイアウト設計装置により、例えば、図7に示すようなフローに従って行われる。
【0034】
タイミング修正の際には、図7に示すように、まず、レイアウト設計装置が備えるネットリスト10、更に配置配線データ11及びタイミングチェック情報12のデータが読み込まれる(ステップS30)。配置配線データ11には、ステップS10,S11の処理で取得された、配置した被クリップセル及びクリップセル並びに配線のデータが含まれる。タイミングチェック情報12には、クロックの周波数や波形等、回路のタイミングチェックに要するデータが含まれる。
【0035】
読み込んだデータを基に、タイミング修正を要する一のセルについて、その駆動能力の変更が必要となる場合には(ステップS32)、そのセルが駆動能力変更に対応したセルに置換され(ステップS33)、置換されたセルが再配置される(ステップS34)。置換されたセルの情報は、ネットリスト10に格納され(タイミング修正後ネットリスト10c)、当該セルの再配置後のデータは、配置配線データ11に格納される(タイミング修正後配置配線データ11a)。
【0036】
タイミング修正を要する一のセルについて、その駆動能力の変更が不要である場合には(ステップS32)、適当な他の処理を経て(ステップS35)、セルの再配置が行われる(ステップS34)。処理後のセルの情報は、ネットリスト10(タイミング修正後ネットリスト10c)に格納される。
【0037】
このような処理が、ネットリスト10内のタイミング修正を要する全ての箇所について実行され(ステップS31)、全ての修正が完了すれば、タイミング修正の処理を終了する。
【0038】
タイミング修正後は、図6(A)に示したように、そのタイミング修正の結果に基づき、配線が修正され(ステップS15)、その後、ステップS12のタイミングチェックに戻り、ステップS12以降の処理が実行される。また、ステップS13の配線チェック時に、配線がデザインルール等の条件を満たさない場合も同様に、配線修正(ステップS15)の後、ステップS12以降の処理が実行される。
【0039】
一方、図6(B)に示すレイアウト設計フローの場合には、クリップセルに関する情報を含まないネットリスト10を用いて、被クリップセルが初期配置される(ステップS20)。クリップされないセルがある場合には、そのセルも初期配置される。その後、クリップセルがネットリスト10に挿入され、配置される(ステップS21)。以後は、図6(A)のステップS11以降と同様の処理が実行される。
【0040】
即ち、配線後(ステップS22)、タイミングチェックが行われ(ステップS23)、所定のタイミング条件を満たせば、配線チェックが行われる(ステップS24)。配線が所定の条件を満たせば、レイアウト設計処理を終了する。ステップS23で所定のタイミング条件を満たさなかった場合には、図7に示すようなフロー(配置配線データ11にステップS20〜S22で取得されたデータを使用)に従ってタイミング修正が行われる(ステップS25)。そして、タイミング修正の結果に基づき、配線が修正され(ステップS26)、ステップS23以降の処理が実行される。また、ステップS24の配線チェック時に、配線が所定の条件を満たさない場合も同様に、配線修正(ステップS26)の後、ステップS23以降の処理が実行される。
【0041】
この図6及び図7に示したような別形態のレイアウト設計フローを用いた場合には、以下に示すような状況が生じる可能性がある。図8及び図9は別形態のレイアウト設計フローを用いた場合の説明図である。
【0042】
例えば、図6(A),(B)のステップS10,S20に示した、ROW領域80への初期配置時には、必ずしも、図8のP1部にある被クリップセル30(セルA(1))とクリップセル40のように、接続対象のセル同士が隣接して配置されるとは限らない。図8のP2部にある被クリップセル30(セルA(2))とクリップセル40のように、間に他のセル50(セルB)が配置されてしまう場合もある。
【0043】
このP2部のような配置の場合には、被クリップセル30とクリップセル40の間を接続する配線(クリップ配線)を、セル50の外側で、更に他のセルや配線の配置領域も避けて、配置する必要が生じる。このように配線を引き回すと、例えば、他の配線の経路が塞がれる、所定のタイミングやデザインルールの条件を満たさない、セルサイズ或いはチップサイズが大型化する、といったことが起こり得る。
【0044】
また、図6(A),(B)のステップS14,S25に示したタイミング修正後には、駆動能力変更の結果、被クリップセル30のサイズが変更される場合がある。
例えば、初期配置では被クリップセル30の両側にそれぞれ隣接してクリップセル40及び他のセル50が配置されていたとする。しかし、その後のタイミング修正で、その被クリップセル30のサイズが大きくなり、そのままではセル50にオーバーラップしてしまう場合を想定する。この場合、被クリップセル30が、図9(A)に示すように、大きな被クリップセル30a(セルA−2)に置換される。そして、図9(B)に太矢印で示すように、その置換された被クリップセル30aが、セル50とオーバーラップせず、配置済みの配線61を避けるような、別のROW領域80に再配置される。
【0045】
しかし、このとき、その再配置された被クリップセル30aに接続されるクリップセル40は、再配置の対象とはされず、図9(B)に示したように、元の場所に留まる。このような配置関係にある状態から、被クリップセル30aとクリップセル40の間に、最短距離でクリップ配線60を配置しようとすると、図9(C)に示すように、他の配線61とのショート70を引き起こしてしまう。セル50を含む他のセル、配線61を含む他の配線の配置領域を避けてクリップ配線60を配置すれば、配線引き回し(迂回配線)の結果、上記同様のことが起こり得る。即ち、他の配線の経路が塞がれる、所定のタイミングやデザインルールの条件を満たさない、セルサイズやチップサイズが大型化する、といったことが起こり得る。
【0046】
尚、図8及び図9(A)の例では、クリップセル40が被クリップセル30,30aと、同じROW領域80内に隣接して配置される場合を例示した。このほか、クリップセル40と被クリップセル30,30aが、異なるROW領域80に配置されて隣接している場合にも、上記同様のことが起こり得る。
【0047】
これに対し、上記図1及び図2の例に従い、接続する被クリップセルとクリップセルを関連付け、それらを一体で初期配置すると、それらの間に別のセルが配置されるような状況(図8)を回避することが可能になる。また、初期配置後、被クリップセルの再配置時に、当該被クリップセルと共に、それに接続されるクリップセルも一体で再配置することが可能になり、配線引き回しによって生じ得る不具合(図9)を回避することが可能になる。
【0048】
以下、レイアウト設計方法について、より詳細に説明する。
まず、第1の実施の形態について説明する。
図10〜図12は第1の実施の形態に係るレイアウト設計フローの一例を示す図である。
【0049】
図10〜図12に示すようなレイアウト設計フローにおける各ステップの処理は、レイアウト設計装置で実行される。
レイアウト設計においては、レイアウト設計装置が、まず、図10に示すように、ゲートレベル設計後に得られる、被クリップセル及びクリップセルに関する情報が含まれるネットリスト10を用いて、クリップ接続解析を行う(ステップS40)。レイアウト設計装置は、このステップS40のクリップ接続解析を行うことにより、被クリップセルとそれに接続されるクリップセルとを関連付けた情報を含む、クリップ情報テーブル20を生成する。このステップS40のクリップ接続解析の処理は、例えば、図11に示すようなフローに従って実行される。
【0050】
クリップ接続解析では、レイアウト設計装置が、図11に示すように、まずネットリスト10の読み込みを行う(ステップS50)。読み込み時には、ネットリスト10から一部ずつ、例えば所定の記述ブロック単位で、読み込みが行われる。例えば、図4(B)に示したようなネットリスト10bが読み込まれる。
【0051】
レイアウト設計装置は、読み込んだネットリスト(一部)がクリップセルに関する情報を含むか否かを判定し(ステップS51)、そのような情報が含まれない場合には、ステップS50に戻り、改めてネットリストの読み込みを行う。
【0052】
レイアウト設計装置は、ステップS51において、読み込んだネットリスト(一部)がクリップセルに関する情報を含むと判定した場合、次のような処理を行う。即ち、レイアウト設計装置は、その読み込んだネットリストに含まれるクリップネット定義から、当該クリップセルの接続先となる被クリップセルの情報を抽出する(ステップS52)。そして、互いに接続される関係となる、これらのクリップセル及び被クリップセルの組み合わせを、クリップ情報としてクリップ情報テーブル20に格納する(ステップS53)。
【0053】
例えば、図4(B)に示したようなネットリスト10bが読み込まれたときには、レイアウト設計装置は、クリップセルに関する情報を含むか否かをCLIP_1又はCLIP_0の記述で判定する(ステップS51)。そして、そのクリップネット定義CLIPNET1又はCLIPNET0の記述を基に、CLIP_1又はCLIP_0の接続先となる被クリップセルCELL_Aを抽出する(ステップS52)。このようにして、ネットリスト10bから、接続されるクリップセルと被クリップセルが抽出され、それらのインスタンス名及び被クリップ端子名がクリップ情報として、クリップ情報テーブル20に格納される(ステップS53)。即ち、図5のように、Group1,2としてそれぞれ、CELL_Aのインスタンス名INST_A_1,INST_A_2、被クリップ端子名IN1,IN1、CLIP_1,CLIP_0のインスタンス名CLIP_1_1,CLIP_0_1が格納される。
【0054】
レイアウト設計装置は、このようにしてクリップ情報テーブル20を生成する。そして、レイアウト設計装置は、読み込んだネットリスト(一部)が最終行か否かを判定し(ステップS54)、最終行と判定した場合には、クリップ接続解析の処理を終了する。レイアウト設計装置は、ステップS54において、読み込んだネットリスト(一部)が最終行でないと判定した場合には、ステップS50以降の処理を実行する。
【0055】
このようなクリップ接続解析の処理後、レイアウト設計装置は、ネットリスト10及びクリップ情報テーブル20を用いて、被クリップセル及びクリップセルの初期配置を行う(ステップS41)。クリップされないセルがある場合には、そのセルの初期配置も行われる。このステップS41の初期配置時には、クリップ接続解析(図11)によって取得されたクリップ情報テーブル20を用いることにより、接続される被クリップセルとクリップセルとを隣接させて配置することが可能になる。
【0056】
初期配置を行った後、レイアウト設計装置は、被クリップセルとクリップセルを繋ぐクリップ配線、所定のセル間を繋ぐ配線の配置を行う(ステップS42)。その後、レイアウト設計装置は、タイミングチェックを行い、所定のタイミング条件を満たすか否かを判定する(ステップS43)。レイアウト設計装置は、所定のタイミング条件を満たすと判定した場合には、配線チェックを行い、配線がデザインルール等の条件を満たすか否かを判定する(ステップS44)。レイアウト設計装置は、配線が所定の条件を満たすと判定した場合、レイアウト設計の処理を終了する。
【0057】
レイアウト設計装置は、ステップS43のタイミングチェック時に、所定のタイミング条件を満たさないと判定した場合には、タイミング修正を行う(ステップS45)。タイミング修正の処理は、例えば、図12に示すようなフローに従って行われる。
【0058】
タイミング修正の際、レイアウト設計装置は、図12に示すように、まず、レイアウト設計装置が備えるネットリスト10、更に配置配線データ11及びタイミングチェック情報12のデータを読み込む(ステップS60)。配置配線データ11には、ステップS40〜S42の処理で取得された、配置した被クリップセル及びクリップセル並びに配線のデータが含まれる。タイミングチェック情報12には、クロックの周波数や波形等、回路のタイミングチェックに要するデータが含まれる。
【0059】
レイアウト設計装置は、読み込んだデータを基に、タイミング修正を要する一のセルについて、その駆動能力の変更が必要か否かを判定する(ステップS62)。レイアウト設計装置は、セルの駆動能力変更が必要と判定した場合には、そのセルを駆動能力変更に対応したセルに置換し(ステップS63)、置換したセルをレイアウト上に再配置する(ステップS64)。レイアウト設計装置は、置換したセルの情報を、ネットリスト10に格納し(タイミング修正後ネットリスト10c)、当該セルの再配置のデータを、配置配線データ11に格納する(タイミング修正後配置配線データ11a)。
【0060】
レイアウト設計装置は、タイミング修正を要する一のセルについて、その駆動能力の変更が不要と判定した場合には(ステップS62)、配線の再配置やセル内容の変更等、適当な他の処理を行った後(ステップS65)、その処理後のセルの再配置を行う(ステップS64)。レイアウト設計装置は、処理後のセルの情報を、タイミング修正後ネットリスト10cに格納する。
【0061】
セルの再配置後、レイアウト設計装置は、その再配置したセルが被クリップセルか否かを判定する(ステップS66)。レイアウト設計装置は、再配置したセルが被クリップセルであると判定した場合には、クリップ情報テーブル20を参照し、その被クリップセルに関連付けられたクリップセル、即ちその被クリップセルに接続されるクリップセルを再配置する(ステップS67)。このクリップセルの再配置の際、レイアウト設計装置は、そのクリップセルを、被クリップセルに隣接させて、再配置する。レイアウト設計装置は、クリップセルの再配置のデータを、タイミング修正後配置配線データ11aに格納する。
【0062】
尚、クリップ情報テーブル20では、被クリップセル及びクリップセルが、ネットリスト10内のインスタンス名で関連付けられている。そのため、元の被クリップセルを、駆動能力変更に対応したセルに置換して再配置する場合でも、タイミング修正後ネットリスト10cにおいてそのインスタンス名を変更しないようにすれば、接続されるクリップセルとの関連付けは変更されない。タイミング修正前に取得していたクリップ情報テーブル20をそのまま利用し、置換及び再配置後の被クリップセルに接続されるクリップセルを再配置することが可能である。
【0063】
一方、レイアウト設計装置は、ステップS66において、再配置したセルが被クリップセルでないと判定した場合には、全ての修正が完了したか否かを判定する(ステップS61)。レイアウト設計装置は、ステップS67のクリップセル再配置後も同様に、全ての修正が完了したか否かを判定する(ステップS61)。
【0064】
レイアウト設計装置は、このような処理を、タイミング修正を要する全ての箇所について実行し、全ての修正が完了すれば、タイミング修正の処理を終了する。
レイアウト設計装置は、タイミング修正後、図10に示したように、そのタイミング修正の結果に基づき、配線を修正し(ステップS46)、その後、ステップS43のタイミングチェックに戻り、ステップS43以降の処理を実行する。また、レイアウト設計装置は、ステップS44の配線チェック時に、配線が所定の条件を満たさないと判定した場合も同様に、配線修正(ステップS46)の後、ステップS43以降の処理を実行する。
【0065】
この図10〜図12に示したようなレイアウト設計フローを用いることにより、レイアウト設計(配置配線処理)で生じ得る不具合を回避することが可能になる。
図13は第1の実施の形態に係るレイアウト設計の説明図である。尚、図13において、(A)は初期配置時の状態の一例を示す図、(B)は駆動能力変更時の状態の一例を示す図、(C)は被クリップセル及びクリップセル再配置時の状態の一例を示す図、(D)はクリップ配線配置時の状態の一例を示す図である。
【0066】
上記図10〜図12のレイアウト設計フローでは、レイアウト設計装置が、初期配置(ステップS41)に先立ち、クリップ接続解析(ステップS40,S50〜S54)を行い、クリップ情報テーブル20を生成する。生成されるクリップ情報テーブル20には、接続対象の被クリップセルとクリップセルとを関連付けた情報が含まれる。レイアウト設計装置は、まず、このようなクリップ情報テーブル20を参照して初期配置を行う。
【0067】
そのため、図13(A)に示すように、ROW領域80において、接続される被クリップセル30(セルA)とクリップセル40とが隣接して配置されるようになる。図13(A)の例では、他のセル50(セルB)が被クリップセル30に隣接して配置されている場合を図示している。初期配置時には、このような他のセル50が、上記図8に示したように、接続される被クリップセル30とクリップセル40の間に配置されてしまうのを回避することが可能になっている。
【0068】
このような初期配置後に行われる配線(ステップS42)時には、被クリップセル30とクリップセル40の間を、セル外に引き回さず、短いクリップ配線で繋ぐことができる。その結果、配置したクリップ配線で他の配線の経路が塞がれてしまったり、所定のタイミングやデザインルールの条件を満たさなかったり、セルサイズやチップサイズが大型化したりする等の不具合の発生を回避することができる。
【0069】
また、配線後のタイミング修正時(ステップS45,S60〜S67)には、駆動能力変更に伴い(ステップS62)、セルサイズが変更され(ステップS63)、そのサイズ変更されたセルが別のROW領域80に再配置される(ステップS64)場合がある。
【0070】
例えば、まず、被クリップセル30、クリップセル40及び他のセル50が初期配置された後、クリップ配線60や他の配線61が配置される。その後、被クリップセル30が、図13(B)に示すように、より大きなサイズの被クリップセル30a(セルA−2)に変更される場合を想定する。
【0071】
この場合、このままでは被クリップセル30aがセル50にオーバーラップしてしまうため、図13(C)に示すように、被クリップセル30aは、セル50とオーバーラップせず、配線61を避けるような、別のROW領域80に再配置される。レイアウト設計装置は、再配置するセルがこのような被クリップセル30aである場合には、クリップ情報テーブル20を参照し、被クリップセル30aに接続されるクリップセル40を、初期配置時と同様に、被クリップセル30aに隣接させて配置する。
【0072】
このように被クリップセル30a及びクリップセル40を共に再配置した後は、図13(D)に示すように、配線修正が行われる(ステップS46)。被クリップセル30aとクリップセル40を隣接させて再配置させているため、それらを繋ぐクリップ配線60を、初期配置時と同様に、セル外に引き回さず、短い距離で、配置することができる。
【0073】
尚、図13の例では、初期配置時に、クリップセル40と被クリップセル30が、同じROW領域80に隣接して配置される場合を例示したが、上記処理の適用は、必ずしもこのような初期配置に限定されるものではない。レイアウト設計装置は、初期配置時に、クリップセル40と被クリップセル30を、それぞれ異なるROW領域80に、隣接させて配置することも可能もあり、このような場合にも、上記同様の処理を行うことができる。
【0074】
次に、第2の実施の形態について説明する。
第2の実施の形態では、上記第1の実施の形態で述べたようなクリップ情報テーブル20を用い、接続対象の被クリップセルとクリップセルの階層化(ブロック化、モジュール化)処理を行う。
【0075】
図14は第2の実施の形態に係る階層化処理の一例の説明図である。また、図15及び図16は第2の実施の形態に係る階層化処理の内容を示すネットリストの例である。尚、便宜上、図15のネットリストでは、セルA、セルA’、クリップセルといった記述を含めている。
【0076】
まず、図14に示すX部(鎖線枠内の(A)〜(C))の処理について述べる。
クリップ情報テーブル20には、被クリップセルとクリップセルが関連付けられた情報が含まれている。配置処理(初期配置、再配置)時には、図14(A)に示すように、被クリップセル30(セルA)とクリップセル40が、隣接して配置される。図15(A)のネットリストには、このような被クリップセル30(セルA)とクリップセル40(クリップセル)の接続関係が記述されている。
【0077】
第2の実施の形態では、このようにクリップ情報テーブル20で関連付けられている被クリップセル30とクリップセル40を、図14(B)に示すように、1つのモジュールセルと捉える(点線)。そして、図14(C)に示すようなモジュールセル30b(セルA’)として、配置を行う。尚、ネットリスト上は、図15(B)のように、セルA(被クリップセル30)とクリップセル(クリップセル40)を、上位論理階層のセルA’として扱うように記述される。更に、図15(C)のように、当該セルA’が、セルA(被クリップセル30)とクリップセル(クリップセル40)で構成されることが併せて記述される。
【0078】
図15(B),(C)のネットリストは階層化ネットリストとして、また、それらの記述内容(セルA’とその構成)を示す情報は階層ブロック情報として、レイアウト設計装置が備える記憶装置等に記憶される。
【0079】
このように上位論理階層化したモジュールセル30b(セルA’)は、配置後、最終的には、図14(A)に示す、元の論理階層の被クリップセル30(セルA)とクリップセル40に戻される(階層展開処理)。
【0080】
続いて、図14に示すY部(鎖線枠内の(A)〜(F))の処理について述べる。
レイアウト設計において、図14(C)のようなモジュールセル30b(セルA’)を配置した後に、タイミング修正により、そのモジュールセル30bに含まれる被クリップセル30(セルA)が、駆動能力変更に伴ってサイズが変更される場合を想定する。例えば、図14(D)のように、被クリップセル30(セルA)が、より大きなサイズの被クリップセル30a(セルA−2)に変更されたものとする。
【0081】
このような場合も、図14(D)のように、被クリップセル30aとクリップセル40を1つのモジュールセルと捉え(点線)、図14(E)に示すようなモジュールセル30c(セルA−2’)として、配置を行う。尚、ネットリスト上は、図16(A)のように、セルA−2(被クリップセル30a)とクリップセル(クリップセル40)を、上位論理階層のセルA−2’として扱うように記述される。更に、図16(B)のように、当該セルA−2’が、セルA−2(被クリップセル30a)とクリップセル(クリップセル40)で構成されることが併せて記述される。
【0082】
図16(A),(B)のネットリストは階層化ネットリストとして、また、それらの記述内容(セルA−2’とその構成)を示す情報は階層ブロック情報として、それぞれレイアウト設計装置が備える記憶装置等に記憶される。
【0083】
このように上位論理階層化したモジュールセル30c(セルA−2’)は、配置後、最終的には、図14(F)に示す、元の論理階層の被クリップセル30a(セルA−2)とクリップセル40に戻される(階層展開処理)。この処理をネットリストで記述すると、図16(C)のようになる。尚、図14(A)と図14(F)は、被クリップセル30と被クリップセル30aの駆動能力は異なるが、論理は等価である。
【0084】
第2の実施の形態では、この図14に示したような処理を行い、被クリップセルとクリップセルを隣接させて配置し、その後の配線時の不具合発生を回避する。
図17及び図18は第2の実施の形態に係るレイアウト設計フローの一例を示す図である。
【0085】
図17及び図18に示すようなレイアウト設計フローにおける各ステップの処理は、レイアウト設計装置で実行される。
レイアウト設計装置は、まず、ネットリスト10を用いて、クリップ接続解析を行い(ステップS70)、クリップ情報テーブル20を生成する。このステップS70のクリップ接続解析の処理は、例えば、上記図11に示したようなフローに従って実行される。
【0086】
クリップ接続解析後、レイアウト設計装置は、ネットリスト10及びクリップ情報テーブル20を用いて、階層化処理を行う(ステップS71)。即ち、レイアウト設計装置は、上記図14(A)〜(C)及び図15(A)〜(C)の例に従い、接続される被クリップセルとクリップセルを1つのモジュールセルとして扱えるように階層化処理を行う。そして、レイアウト設計装置は、階層化処理後に得られるネットリストを、階層化ネットリスト10dに格納する。また、レイアウト設計装置は、階層化処理後に得られるモジュールセルの構成(いずれの被クリップセルとクリップセルで構成されているかを示す情報)を、階層ブロック情報21に格納する。
【0087】
このような階層化処理後、レイアウト設計装置は、取得した階層化ネットリスト10d及び階層ブロック情報21を用いて、モジュールセルの初期配置を行う(ステップS72)。クリップされないセル(階層化されていないセル)がある場合には、そのセルの初期配置も行われる。このステップS72の初期配置時には、接続される被クリップセルとクリップセルが、1つのモジュールセルとして、配置される。
【0088】
初期配置を行った後、レイアウト設計装置は、モジュールセル内の被クリップセルとクリップセルを繋ぐクリップ配線、所定のセル間を繋ぐ配線の配置を行う(ステップS73)。その後、レイアウト設計装置は、タイミングチェックを行い、所定のタイミング条件を満たすか否かを判定する(ステップS74)。レイアウト設計装置は、所定のタイミング条件を満たすと判定した場合には、配線チェックを行い、配線がデザインルール等の条件を満たすか否かを判定する(ステップS75)。レイアウト設計装置は、配線が所定の条件を満たすと判定した場合には、階層展開処理を行う(ステップS76)。
【0089】
レイアウト設計装置は、このステップS76の階層展開処理において、クリップ情報テーブル20及び階層ブロック情報21を用いて、配置したモジュールセルを、それを構成している被クリップセルとクリップセルに展開(復元)し、元の論理階層に戻す。レイアウト設計装置は、このようにして元の論理階層に展開されたネットリストを、階層展開ネットリスト10eに格納し、レイアウト設計の処理を終了する。
【0090】
レイアウト設計装置は、ステップS74のタイミングチェック時に、所定のタイミング条件を満たさないと判定した場合には、タイミング修正を行う(ステップS77)。タイミング修正の処理は、例えば、図18に示すようなフローに従って行われる。
【0091】
タイミング修正の際、レイアウト設計装置は、図18に示すように、まず、ネットリスト10、配置配線データ11、タイミングチェック情報12のデータを読み込む(ステップS80)。レイアウト設計装置は、読み込んだデータを基に、タイミング修正を要する一のセルについて、その駆動能力の変更が必要か否かを判定する(ステップS82)。レイアウト設計装置は、セルの駆動能力変更が必要と判定した場合には、そのセルがモジュールセルか否かを判定する(ステップS83)。
【0092】
レイアウト設計装置は、駆動能力変更が必要なセルがモジュールセルであると判定した場合には、階層ブロック情報21を用い、そのモジュールセル内のセル(被クリップセル)を、駆動能力変更に対応したセルに変更する(ステップS84)。レイアウト設計装置は、セル変更後のモジュールセルの構成を示す情報を、階層ブロック情報21に格納する(ステップS85)。そして、レイアウト設計装置は、階層ブロック情報21を用い、セル変更前の元のモジュールセルを、セル変更後のモジュールセル(変更後モジュールセル)に置換し(ステップS86)、その変更後モジュールセルをレイアウト上に再配置する(ステップS87)。レイアウト設計装置は、置換したセルの情報を、ネットリスト10に格納し(タイミング修正後ネットリスト10c)、当該セルの再配置のデータを、配置配線データ11に格納する(タイミング修正後配置配線データ11a)。
【0093】
レイアウト設計装置は、駆動能力変更が必要なセルがモジュールセルでないと判定した場合には、そのセルを駆動能力変更に対応したセルに置換し(ステップS88)、置換したセルをレイアウト上に再配置する(ステップS87)。レイアウト設計装置は、置換したセルの情報を、タイミング修正後ネットリスト10cに格納し、当該セルの再配置のデータを、タイミング修正後配置配線データ11aに格納する。
【0094】
レイアウト設計装置は、ステップS82において、タイミング修正を要する一のセルについて、その駆動能力の変更が不要と判定した場合には、配線の再配置やセル内容の変更等、適当な他の処理を行った後(ステップS89)、その処理後のセルの再配置を行う(ステップS87)。レイアウト設計装置は、処理後のセルの情報を、タイミング修正後ネットリスト10cに格納する。
【0095】
レイアウト設計装置は、このような処理を、タイミング修正を要する全ての箇所について実行し(ステップS81)、全ての修正が完了すれば、タイミング修正の処理を終了する。
【0096】
レイアウト設計装置は、タイミング修正後、図17に示したように、そのタイミング修正の結果に基づき、配線を修正し(ステップS78)、その後、ステップS74のタイミングチェックに戻り、ステップS74以降の処理を実行する。また、レイアウト設計装置は、ステップS75の配線チェック時に、配線が所定の条件を満たさないと判定した場合も同様に、配線修正(ステップS78)の後、ステップS74以降の処理を実行する。
【0097】
この図17及び図18に示したようなレイアウト設計フローを用いることにより、配置配線処理時の不具合の発生を回避することが可能になる。
図19は第2の実施の形態に係るレイアウト設計の説明図である。尚、図19において、(A)は初期配置時の状態の一例を示す図、(B)は駆動能力変更時の状態の一例を示す図、(C)はモジュールセル再配置時の状態の一例を示す図、(D)は階層展開処理時の状態の一例を示す図である。
【0098】
上記図17及び図18のレイアウト設計フローでは、レイアウト設計装置が、初期配置(ステップS72)に先立ち、クリップ接続解析(ステップS70,S50〜S54)及び階層化処理(ステップS71)を行う。レイアウト設計装置は、これによりクリップ情報テーブル20及び階層ブロック情報21を生成し、これらの情報を用いて、初期配置を行う。
【0099】
図19(A)に示すように、ROW領域80には、モジュールセル30b(セルA’)が配置され、他のセル50(セルB)は、モジュールセル30bの外部に配置される。その結果、モジュールセル30b内のセル間を短いクリップ配線で繋ぐことが可能になり、配線引き回しに起因する不具合の発生を回避することが可能になる。
【0100】
また、配線後のタイミング修正時(ステップS77,S80〜S89)には、駆動能力変更に伴ってモジュールセル30b内のセルのサイズが変更され、図19(B)に示すように、より大きなモジュールセル30c(セルA−2’)に変更される場合がある。そのままではモジュールセル30cがセル50にオーバーラップしてしまうため、図19(C)に示すように、モジュールセル30cは、セル50とオーバーラップせず、配線61を避けるような、別のROW領域80に再配置される。その後、階層展開処理が行われることで、別のROW領域80に再配置されたモジュールセル30cが、図19(D)に示すように、被クリップセル30とクリップセル40に展開される。
【0101】
このように、被クリップセル30とクリップセル40を1つのモジュールセル30cとして扱い、再配置後に展開することで、引き回さずにクリップ配線60を配置することができ、配線引き回しに起因する不具合の発生を回避することができる。
【0102】
尚、この第2の実施の形態では、同じROW領域80に配置されたクリップセル40と被クリップセル30,30a、更にモジュールセル30b,30cを例示したが、上記処理の適用は、必ずしもこのような初期配置に限定されるものではない。レイアウト設計装置は、初期配置時に、クリップセル40と被クリップセル30を、それぞれ異なるROW領域80に、隣接させて配置することも可能であり、このような場合にも、それらに対して上記のような階層化処理を行い、配置配線処理を行うこともできる。
【0103】
次に、第3の実施の形態について説明する。
第3の実施の形態では、上記第1の実施の形態で述べたようにクリップ情報テーブル20を用いて接続対象の被クリップセルとクリップセルの組を複数配置した後、所定の条件を満たす幾つかの組については、クリップセルを共有化する処理を行う。
【0104】
図20〜図22はそれぞれ、第3の実施の形態に係るクリップセル共有化処理の一例の説明図である。
図20(A)には、上記第1の実施の形態同様、クリップ情報テーブル20を用いて初期配置を行うことにより、複数の被クリップセル31,32,33,34及びクリップセル41,42,43,44がROW領域80に配置された状態を例示している。クリップ情報テーブル20では、被クリップセル31(セルA)とクリップセル41が関連付けられている。同様に、クリップ情報テーブル20では、被クリップセル32(セルB)とクリップセル42、被クリップセル33(セルC)とクリップセル43、被クリップセル34(セルD)とクリップセル44が、それぞれ関連付けられている。このようなクリップ情報テーブル20を用いることで、図20(A)のような初期配置が得られるようになる。
【0105】
このように複数の被クリップセル31,32,33,34及びクリップセル41,42,43,44が配置された場合に、この第3の実施の形態では、所定のクリップセル共有化ルールに基づき、クリップセル41,42,43,44のうち、幾つかを共有化する。
【0106】
クリップセル共有化ルールとしては、次のようなものを用いることができる。例えば、図20(B)に示すように、各被クリップセル31,32,33,34から所定距離の範囲(共有化対象領域)R1,R2,R3,R4を設定する。そして、共有化対象領域R1,R2,R3,R4が重なる被クリップセル、この例では被クリップセル31,32,33を、クリップセル共有化の対象にする。即ち、これら共有化対象の被クリップセル31,32,33にそれぞれ接続されるクリップセル41,42,43を、図20(C)のように、1つのクリップセル(共有クリップセル)40aに置き換える。この共有クリップセル40aを、3つの被クリップセル31,32,33で共有するようにする(点線矢印は共有クリップセル40aの接続先を表す)。
【0107】
共有クリップセル40aは、例えば、クリップセル41,42,43のいずれかを選択してそれを共有クリップセル40aとして配置し、残りを消去することによって、生成することができる。また、クリップセル41,42,43を全て消去し、改めて共有クリップセル40aを配置するようにしてもよい。
【0108】
共有クリップセル40aは、これを共有する被クリップセル31,32,33の間の領域、例えば、被クリップセル31,32,33の中心付近の領域(いずれの被クリップセル31,32,33からも同程度の距離の領域)に、配置することができる。
【0109】
また、共有クリップセル40aは、初期配置後の一のクリップセルから、共有対象の被クリップセルにクリップ配線を繋いだ時に、そのクリップ配線(総延長)が最短になるクリップセルを選択し、残りを消去することによって、生成してもよい。このような例について、図21を参照して説明する。
【0110】
図21の例では、クリップセル43から被クリップセル31,32(セルA,B)にクリップ配線(点線矢印はクリップセル43の接続先を表す)を繋いだ時に、その総延長が、その他の組み合わせの場合に比べて短くなるものとする。この場合、クリップセル43を初期配置後の領域にそのまま残し、これを共有クリップセル40aとして用いる。被クリップセル31,32に対応した残りのクリップセル41,42は消去される。
【0111】
尚、図20及び図21の例において、共有化対象外の被クリップセル34(セルD)については、初期配置後の領域にそのまま残し、対応するクリップセル44と隣接させて配置した状態を維持する(点線矢印はクリップセル44の接続先を表す)。
【0112】
上記のように、複数の被クリップセルで共有する共有クリップセルを設け、複数のクリップセルのうち幾つかを消去して削減することで、セル及び配線の配置が可能な領域の面積増加を図ることが可能になる。
【0113】
クリップセルを共有化する被クリップセルの選択にあたっては、上記のような共有化対象領域の条件と共に、配線混雑度を考慮するようにしてもよい。このような配線混雑度を考慮する例について、図22を参照して説明する。尚、図22(A)は被クリップセルの初期配置後の一例(クリップセルは図示を省略)、図22(B)は共有クリップセルの配置後の一例を示す図である。
【0114】
図22の例では、図22(A)に示すように、鎖線で区切られた2つの領域(分割領域)AR1,AR2のうち、一方の分割領域AR1の配線混雑度が40%、もう一方の分割領域AR2の配線混雑度が60%であるものとしている。分割領域AR1,AR2は、予め任意の範囲に設定しておくことができる。配線混雑度は、例えば、そのような任意の分割領域AR1,AR2に配置される全配線経路の長さ又は面積に対する、同領域を通る全配線の長さ又は面積の比率で、表すことができる。
【0115】
このような分割領域の配線混雑度を考慮し、配線混雑度が一定値(閾値)を越える場合には、その分割領域に存在する被クリップセルを、クリップセル共有化の対象外とする。
例えば、配線混雑度の閾値を50%とした場合、図22(A)に示した、配線混雑度60%の分割領域AR2に存在する被クリップセル32,34が、クリップセル共有化の対象外となる。即ち、図22(B)に示すように、分割領域AR1の被クリップセル31,33(セルA,C)がクリップセル共有化の対象になり、それらの間に共有クリップセル40aが配置される(点線矢印は共有クリップセル40aの接続先を表す)。分割領域AR2の被クリップセル32,34(セルB,D)は、クリップセル共有化の対象外になるため、それぞれ対応するクリップセル42,44と隣接させて配置した状態が維持される(点線矢印はクリップセル42,44の接続先を表す)。
【0116】
上記図20の例では、所定の共有化対象領域R1,R2,R3,R4に基づき、クリップセル共有化の対象を被クリップセル31,32,33とした。更に配線混雑度を考慮した場合には、図22の例のように、クリップセル共有化の対象が被クリップセル31,33になる。配線混雑度を考慮することにより、クリップ配線引き回しの発生リスクの低減を図ることが可能になる。
【0117】
上記のようなクリップセル共有化の処理を含むレイアウト設計フローについて、次の図23及び図24を参照して説明する。尚、ここでは、共有化対象領域及び配線混雑度を考慮したレイアウト設計フローを例にして説明する。
【0118】
図23及び図24は第3の実施の形態に係るレイアウト設計フローの一例を示す図である。
図23及び図24に示すようなレイアウト設計フローにおける各ステップの処理は、レイアウト設計装置で実行される。
【0119】
レイアウト設計装置は、まず、ネットリスト10を用いて、クリップ接続解析を行い(ステップS100)、クリップ情報テーブル20を生成する。このステップS100のクリップ接続解析の処理は、例えば、上記図11に示したようなフローに従って実行される。
【0120】
クリップ接続解析後、レイアウト設計装置は、ネットリスト10及びクリップ情報テーブル20を用いて、被クリップセル及びクリップセルの初期配置を行う(ステップS101)。クリップされないセルがある場合には、そのセルの初期配置も行われる。このステップS101の初期配置時には、クリップ情報テーブル20が用いられることで、接続される被クリップセルとクリップセルとが隣接して配置される。
【0121】
初期配置を行った後、レイアウト設計装置は、被クリップセルとクリップセルを繋ぐクリップ配線、所定のセル間を繋ぐ配線の配置を行う(ステップS102)。レイアウト設計装置は、このステップS102で配置した配線に関する情報を、配線混雑度情報13に格納する。配線混雑度情報13に格納される、配置した配線に関する情報は、配線混雑度の決定に利用される。
【0122】
配線配置後、レイアウト設計装置は、タイミングチェックを行い、所定のタイミング条件を満たすか否かを判定する(ステップS103)。レイアウト設計装置は、所定のタイミング条件を満たすと判定した場合には、配線チェックを行い、配線がデザインルール等の条件を満たすか否かを判定する(ステップS104)。レイアウト設計装置は、配線が所定の条件を満たすと判定した場合、レイアウト設計の処理を終了する。
【0123】
レイアウト設計装置は、ステップS103のタイミングチェック時に、所定のタイミング条件を満たさないと判定した場合には、タイミング修正を行う(ステップS105)。このステップS105のタイミング修正の処理は、例えば、上記図12に示したようなフローに従って行われる。
【0124】
レイアウト設計装置は、タイミング修正後、クリップセル共有化処理を行う(ステップS106)。このステップS106のクリップセル共有化処理は、例えば、図24に示すようなフローに従って行われる。ここでは、所定の共有化対象領域を指定し(図20,図21)、更に配線混雑度を考慮して(図22)、クリップセル共有化の対象とする被クリップセルを選択する場合を例に、クリップセル共有化処理のフローを説明する。
【0125】
図24に示すクリップセル共有化処理では、まず、レイアウト設計装置が、ネットリスト10及びクリップ情報テーブル20を用い、クリップセル共有化ルール14に従い、共有化対象領域を設定する(ステップS110)。
【0126】
例えば、xy座標系のセル配置領域に配置されている各被クリップセルから、それぞれx方向及びy方向にn(任意の値(距離))の範囲を設定する。このようにして設定される範囲が共有化対象領域となる。nの値は、レイアウト設計装置のユーザによって予め設定され、クリップセル共有化ルール14に格納される。クリップセル共有化ルール14には、nの値のほか、範囲設定のルール(被クリップセルのどこからnの範囲を設定するか等)が格納されていてもよい。レイアウト設計装置は、例えば、各被クリップセルのエッジから所定のnの範囲を指定し、その範囲を共有化対象領域として設定する。
【0127】
次いで、レイアウト設計装置は、設定した共有化対象領域が重なる被クリップセルを抽出し、共有化対象領域が重なる被クリップセル同士をグループ化する(ステップS112)。このように共有化対象領域が重なる被クリップセルを抽出し、グループ化するといったルールは、クリップセル共有化ルール14に格納される。レイアウト設計装置は、このようなクリップセル共有化ルール14を用い、所定の被クリップセルを抽出し、グループ化する。レイアウト設計装置は、抽出し、グループ化した、共有化対象の被クリップセルの情報(共有化対象情報)を、共有化対象データベース(DB)15に格納する。
【0128】
更に、レイアウト設計装置は、配線混雑度情報13を用い、配線混雑度が閾値mを越える領域に配置されている被クリップセルを除外する(ステップS113)。配線混雑度情報13には、上記ステップS102で配置された配線に関する情報のほか、レイアウト設計装置のユーザによって予め設定された閾値m、配線混雑度を求める領域(分割領域)或いは領域設定のルール、配線混雑度の算出式等の情報が格納される。レイアウト設計装置は、このような配線混雑度情報13を用いて、所定の被クリップセルを除外する。
【0129】
配線混雑度によって除外するか否かの対象となる被クリップセルは、配置されている全ての被クリップセルとする。即ち、上記ステップS112で抽出され、グループ化された被クリップセルも、除外するか否かの対象となり、グループ化された被クリップセルのいずれかが除外対象となった場合には、当該グループから当該除外対象の被クリップセルが除かれる。レイアウト設計装置は、ステップS112で取得された共有化対象情報から、配線混雑度に基づいて所定の被クリップセルを除外した情報を、共有化対象DB15に格納する。
【0130】
レイアウト設計装置は、これらステップS112,S113の処理を、配置した全ての被クリップセルについて実行する(ステップS111)。
その後、レイアウト設計装置は、共有化対象のグループについてそれぞれ、共有化対象DB15を用い、共有化対象の被クリップセルに対応したクリップセルを消去する(ステップS115)。クリップセルは、例えば、共有化対象の被クリップセルのうち1つに対応するクリップセルを除いた、残りのクリップセルを消去する。或いは、共有化対象の被クリップセルに対応する全てのクリップセルを消去する。
【0131】
次いで、ネットリストにおいて、共有化対象の被クリップセルで共有されることとなるクリップセル(共有クリップセル)の情報(接続先のセル等)の挿入、及びクリップ配線の情報(接続先のセルとの接続情報等)の修正を行う(ステップS116)。そして、その挿入した共有クリップセルをレイアウト上に配置する(ステップS117)。このようにして共有化対象の被クリップセルに対応していたクリップセルを、共有クリップセルに置換する。共有クリップセルは、例えば、共有化対象の被クリップセル間の領域(図20(C),図22(B))、いずれかの被クリップセルの隣接領域(図21)に配置することができる。共有クリップセルを配置した後は、レイアウト上でクリップ配線の接続(配置)の修正を行う(ステップS118)。レイアウト設計装置は、このステップS118まで行って取得された情報を、クリップセル共有化ネットリスト10fに格納する。
【0132】
レイアウト設計装置は、これらステップS115〜S118の処理を、共有化対象の全てのグループについて実行し(ステップS114)、クリップセル共有化処理を終了する。
【0133】
クリップセル共有化処理後、レイアウト設計装置は、図23に示したように、上記のタイミング修正(ステップS105)、クリップセル共有化処理(ステップS106)の結果に基づき、配線を修正する(ステップS107)。その後、レイアウト設計装置は、ステップS103のタイミングチェックに戻り、ステップS103以降の処理を実行する。また、レイアウト設計装置は、ステップS104の配線チェック時に、配線が所定の条件を満たさないと判定した場合も同様に、配線修正(ステップS107)の後、ステップS103以降の処理を実行する。
【0134】
このようなレイアウト設計フローを用いることにより、配置配線処理時の不具合の発生を回避することが可能になる。
以上、所定の共有化対象領域を指定し、更に配線混雑度を考慮して、クリップセル共有化の対象とする被クリップセルを選択する処理を含む、レイアウト設計方法について説明した。このほか、レイアウト設計においては、以下のような条件を考慮して、クリップセル共有化の対象とする被クリップセルを選択することもできる。
【0135】
図25は第3の実施の形態に係るレイアウト設計の第1変形例の説明図である。
レイアウト設計装置では、例えば、CPF(Common Power Format)、UPF(Unified Power Format)といったフォーマットで規定されるパワードメイン(Power Domain)が設定される。各セルは、それに適用される電源電圧の情報に基づき、電源電圧ごとに分類され設定されたパワードメインに、それぞれ配置され、配線される。
【0136】
第1変形例では、このようなパワードメインを、クリップセル共有化の対象とする被クリップセルの選択に利用する。
図25には、2種類のパワードメインPD1,PD2が設定されている場合を例示している。例えば、パワードメインPD1は電源電圧1.0Vの領域、パワードメインPD2は電源電圧1.1Vの領域である。図25(A)は初期配置時の状態の一例を示す図であり、この例では、被クリップセル31(セルA)とクリップセル41が隣接し、被クリップセル32(セルB)とクリップセル42が隣接して、パワードメインPD1内のROW領域80に配置されている。また、図25(A)の例では、初期配置時に、被クリップセル33(セルC)とクリップセル43が隣接して、パワードメインPD2内のROW領域80に配置されている。
【0137】
レイアウト設計装置は、図25(A)に示したような初期配置の状態から、上記のように、各被クリップセル31,32,33に対して所定の共有化対象領域を指定して、或いは更に配線混雑度を考慮して、クリップセル共有化処理を行う。その結果、図25(A)に示した全ての被クリップセル31,32,33がクリップセル共有化の対象(グループ)になったものとする。
【0138】
この第1変形例では、更に、パワードメインが異なる被クリップセルを、クリップセル共有化の対象外とする。即ち、図25(B)に示すように、パワードメインPD1内の被クリップセル31,32(セルA,B)はそのままクリップセル共有化の対象とする一方、異なるパワードメインPD2内の被クリップセル33(セルC)をクリップセル共有化の対象外とする。
【0139】
このような処理の内容(ルール)は、クリップセル共有化ルール14に格納しておくことができる。このような処理は、例えば、上記図24のクリップセル共有化処理フローにおけるステップS113に替えて若しくはステップS113の前又は後に、行う(その処理結果を共有化対象DB15に反映させる)ことが可能である。或いはまた、ステップS110の処理に先立って行うことも可能である。
【0140】
レイアウト設計装置は、クリップセル共有化の対象である、パワードメインPD1内の被クリップセル31,32については、例えばそれらの間の領域に、共有クリップセル40aを配置し、クリップ配線を配置する。レイアウト設計装置は、クリップセル共有化の対象外とされた、パワードメインPD2内の被クリップセル33については、クリップセル共有化の対象でない他の被クリップセルと同様に、対応するクリップセル43を隣接させて配置し、クリップ配線を配置する。
【0141】
このようなクリップセル共有化処理を含むレイアウト設計方法を用いることによっても、クリップセル数の減少を図ることが可能になる。
図26は第3の実施の形態に係るレイアウト設計の第2変形例の説明図である。
【0142】
レイアウト設計装置では、クリップセル共有化の対象とする被クリップセルの数に上限値を設定しておくこともできる。
例えば、所定の共有化対象領域を指定する方法、或いはそれに配線混雑度やパワードメインに基づくセルの選択を加えた方法によって、図26(A)に示す3つの被クリップセル31,32,33(セルA,B,C)がクリップセル共有化の対象になったものとする。その場合、1つの共有クリップセル40aが3つの被クリップセル31,32,33に共有されるようになる。
【0143】
この第2変形例では、1つの共有クリップセル40aに接続することのできる被クリップセルの数に、例えば2つまでといったように、上限値を設定しておく。そして、クリップセル共有化の対象(グループ)に入っている被クリップセルの数が、上限値を越えるか否かを判定し、上限値を越える場合には、上限値以内に収まるように、いずれかの被クリップセルをクリップセル共有化の対象外とする。
【0144】
いずれの被クリップセルをクリップセル共有化の対象外とするかは、例えば、配置した共有クリップセル40aから最も遠いものを対象外とすることができる。或いは、対象外とする被クリップセルの候補を除いた残りの被クリップセルについて、共有クリップセル40aを所定領域に配置した場合に、クリップ配線の総延長が最短になるもの等を対象外とすることもできる。
【0145】
例えば、上限値が2つである場合、図26(B)の例では、3つの被クリップセル31,32,33(セルA,B,C)のうち、被クリップセル31をクリップセル共有化の対象外としている。
【0146】
このような処理の内容(ルール)は、クリップセル共有化ルール14に格納しておくことができる。このような処理は、例えば、上記図24のクリップセル共有化処理フローにおけるステップS118の処理の後に、行うことが可能である。また、この第2変形例で述べたような処理を、上記第1変形例で述べたような処理と組み合わせて行うことも可能である。
【0147】
レイアウト設計装置は、クリップセル共有化の対象である被クリップセル32,33については、共有クリップセル40aを配置し、クリップ配線を配置する。レイアウト設計装置は、クリップセル共有化の対象から外された被クリップセル31については、対応するクリップセル41を隣接させて配置し、クリップ配線を配置する。
【0148】
このようなクリップセル共有化処理を含むレイアウト設計方法を用いることによっても、クリップセル数の減少を図ることが可能になる。
図27は第3の実施の形態に係るレイアウト設計の第3変形例の説明図である。
【0149】
レイアウト設計装置は、被クリップセル31,32,33(セルA,B,C)で共有クリップセル40aを共有する場合、例えば図27(A)に点線で示すように、共有クリップセル40aを、被クリップセル31,32,33の中心付近の領域AR3に配置する。レイアウト設計装置では、このような領域AR3に一旦配置された共有クリップセル40aを、他のセルや配線が配置される関係で、そのような領域AR3に配置できなくなった場合には、別の場所に移動する処理を行うことができる。
【0150】
図27(A)の例では、他のセル50の配置によって領域AR3に配置できなくなった共有クリップセル40aを、被クリップセル31,32と同じROW領域80に残る空き領域に移動(再配置)させている。しかし、このように共有クリップセル40aを領域AR3から移動させたことで、共有クリップセル40aと被クリップセル33(セルC)とを繋ぐ(再配置される)クリップ配線60が長くなってしまう。
【0151】
この第3変形例では、共有クリップセル40aを移動させる処理を行う場合に、その移動に伴って再配置されるクリップ配線60の長さについて閾値を設定する。そして、再配置したクリップ配線60の長さが閾値を越えるか否かを判定し、閾値を越える場合には、そのクリップ配線60で接続される被クリップセル、この例では被クリップセル33を、クリップセル共有化の対象外とする。この場合、図27(B)に示すように、被クリップセル33には、クリップセル43が隣接して配置され、それらの間を繋ぐクリップ配線が別途配置される。
【0152】
クリップ配線長の閾値には、例えば、共有クリップセル40aの再配置前に配置されたクリップ配線の長さに対する、共有クリップセル40aの再配置後に配置されるクリップ配線の長さの比を用いることができる。
【0153】
また、ここでは再配置されるクリップ配線の長さについて閾値を設定する場合を例示したが、長さに替え、配線容量について閾値を設定し、その閾値に基づき、被クリップセルをクリップセル共有化の対象外とするか否かを判定するようにしてもよい。
【0154】
このような処理の内容(ルール)は、クリップセル共有化ルール14に格納しておくことができる。このような処理は、例えば、上記図24のクリップセル共有化処理フローにおけるステップS118の処理後で、共有クリップセル40aの移動を行った場合に、行うことが可能である。また、この第3変形例で述べたような処理を、上記第1変形例及び第2変形例で述べたような処理と組み合わせて行うことも可能である。
【0155】
このようなクリップセル共有化処理を含むレイアウト設計方法を用いることによっても、クリップセル数の減少を図ることが可能になる。
図28は第3の実施の形態に係るレイアウト設計の第4変形例の説明図である。尚、図28では、各被クリップセルに対応するクリップセルの図示は省略している。
【0156】
レイアウト設計装置では、例えば、セル配置領域が一定範囲ごとに分割された領域、いわゆるグローバルエリアが設定され、各セルは、グローバルエリアごとに配置され、配線される。尚、このようなグローバルエリアは、例えば、レイアウト設計装置によって任意に設定されたり、レイアウト設計装置のユーザによって任意に設定されたりする。
【0157】
第4変形例では、このようなグローバルエリアを、クリップセル共有化の対象とする被クリップセルの選択に利用する。
例えば、図28(A)の例では、初期配置時に、あるセル配置領域100が一定範囲ごとに分割されたグローバルエリア101のうち、中央のグローバルエリア101に、3つの被クリップセル31,32,33(セルA,B,C)が配置されている。そして、そのグローバルエリア101の周囲にあるグローバルエリア101のうちの3つに、それぞれ被クリップセル34,35,36(セルD,E,F)が配置されている。
【0158】
レイアウト設計装置は、個々のグローバルエリア101に含まれる被クリップセルを、クリップセル共有化の対象とする。図28(A)の例では、中央のグローバルエリア101(太線で図示)に含まれる被クリップセル31,32,33(セルA,B,C)が、クリップセル共有化の対象になる。
【0159】
尚、ここでは、1つのグローバルエリア101に含まれる被クリップセルをクリップセル共有化の対象にするようにしたが、複数のグローバルエリア101に含まれる被クリップセルをクリップセル共有化の対象にするようにしてもよい。
【0160】
例えば、図28(B)の例において、全てのグローバルエリア101に含まれる被クリップセル31,32,33,34,35,36(セルA,B,C,D,E,F)を、クリップセル共有化の対象にすることもできる。更に、それら被クリップセル31〜36の間の領域に共有クリップセル40aを配置する場合に、共有クリップセル40aからグローバルエリア101が2個までの範囲(太線で図示)の被クリップセル31〜33を、クリップセル共有化の対象に変更してもよい。
【0161】
図28(A),(B)に例示したような処理の内容(ルール)は、クリップセル共有化ルール14に格納しておくことができる。このような処理は、例えば、上記図24のクリップセル共有化処理フローにおけるステップS110の処理に先立って行う(その処理結果を共有化対象DB15に反映させる)ことが可能である。また、この第4変形例で述べたような処理において、第1〜第3変形例で述べたような処理を組み合わせることも可能である。
【0162】
このようなクリップセル共有化処理を含むレイアウト設計方法を用いることによっても、クリップセル数の減少を図ることが可能になる。
図29は第3の実施の形態に係るレイアウト設計の第5変形例の説明図である。尚、図29では、各被クリップセルに対応するクリップセルの図示は省略している。
【0163】
第5変形例では、論理モジュール単位で、クリップセル共有化の対象とする被クリップセルを選択する。
図29には、上位の論理階層の論理モジュール110(TOP)に対して下位の論理階層の論理モジュール111(SUB_A)、更に下位の論理階層の論理モジュール112,113(SUB_B,SUB_C)を例示している。この図29の例では、論理モジュール112(SUB_B)に含まれる被クリップセル31,32(セルA,B)が、クリップセル共有化の対象になる。同様に、論理モジュール111(SUB_A)に含まれる被クリップセル33,34(セルC,D)が、クリップセル共有化の対象になる。
【0164】
このほか、論理モジュール化の回路規模等によって、クリップセル共有化を実施する論理階層を設定し、より下位論理階層の論理モジュールも含めた、クリップセル共有化を実施することも可能である。例えば、図29に示した論理モジュール111(SUB_A)に、それより下位の論理モジュール112,113(SUB_B,SUB_C)を含めた、クリップセル共有化を実施する。その場合、被クリップセル31,32,33,34,35(セルA,B,C,D,E)が、クリップセル共有化の対象になる。
【0165】
図28(A),(B)に例示したような処理の内容(ルール)は、クリップセル共有化ルール14に格納しておくことができる。このような処理は、例えば、上記図24のクリップセル共有化処理フローにおけるステップS110の処理に先立って行う(その処理結果を共有化対象DB15に反映させる)ことが可能である。また、この第5変形例で述べたような処理において、第1〜第3変形例で述べたような処理を組み合わせることも可能である。
【0166】
このようなクリップセル共有化処理を含むレイアウト設計方法を用いることによっても、クリップセル数の減少を図ることが可能になる。
以上、レイアウト設計装置を用いたレイアウト設計方法について説明した。
【0167】
尚、上記のレイアウト設計に用いるレイアウト設計装置は、例えば、次の図30に示すような構成とすることができる。
図30はレイアウト設計装置のハードウェアの一構成例を示す図である。レイアウト設計装置200は、CPU(Central Processing Unit)201によって装置全体が制御される。CPU201には、バス208を介してRAM(Random Access Memory)202と複数の周辺機器が接続されている。
【0168】
RAM202は、レイアウト設計装置200の主記憶装置として使用される。RAM202には、CPU201に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM202には、CPU201による処理に必要な各種データが格納される。
【0169】
バス208に接続されている周辺機器としては、ハードディスクドライブ(Hard Disk Drive,HDD)203、グラフィック処理装置204、入力インタフェース205、光学ドライブ装置206、及び通信インタフェース207がある。
【0170】
HDD203は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。HDD203は、レイアウト設計装置200の二次記憶装置として使用される。HDD203には、OSのプログラム、アプリケーションプログラム、及び各種データが格納される。尚、二次記憶装置としては、フラッシュメモリ等の半導体記憶装置を使用することもできる。
【0171】
グラフィック処理装置204には、モニタ301が接続されている。グラフィック処理装置204は、CPU201からの命令に従って、画像をモニタ301の画面に表示させる。モニタ301としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置等がある。
【0172】
入力インタフェース205には、キーボード302とマウス303とが接続されている。入力インタフェース205は、キーボード302やマウス303から送られてくる信号をCPU201に送信する。尚、マウス303は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボール等がある。
【0173】
光学ドライブ装置206は、レーザ光等を利用して、光ディスク304に記録されたデータの読み取りを行う。光ディスク304は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク304には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等がある。
【0174】
通信インタフェース207は、ネットワーク400に接続されている。通信インタフェース207は、ネットワーク400を介して、他のコンピュータ又は通信機器との間でデータの送受信を行う。
【0175】
図30に示したようなハードウェア構成によって、上記のレイアウト設計方法に用いられるレイアウト設計装置の処理機能が実現される。
レイアウト設計装置の処理機能は、コンピュータによって実現することができる。その場合、レイアウト設計装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶装置には、HDD、フレキシブルディスク(FD)、磁気テープ等がある。光ディスクには、DVD、DVD−RAM、CD−ROM/RW等がある。光磁気記録媒体には、MO(Magneto-Optical disk)等がある。
【0176】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0177】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラム若しくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。尚、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0178】
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)等の電子回路で実現することもできる。
【0179】
尚、以上の説明では、ネットリストを用い、被クリップセルとクリップセルを抽出して配置配線処理を行う場合を例にした。上記のようなレイアウト設計は、そのような被クリップセルとクリップセルのような接続関係のセルに限らず、互いに接続される関係にあるセル同士を抽出して配置配線処理を行う場合に、同様に適用可能である。
【0180】
以上説明した実施の形態に関し、更に以下の付記を開示する。
(付記1) コンピュータが、
ネットリストを用いて、第1回路の情報を含む第1セルと、前記第1回路に接続される第2回路の情報を含む第2セルとを抽出し、
抽出された前記第1セルと前記第2セルとを関連付けた第1関連付け情報を生成し、
生成された前記第1関連付け情報に基づき、前記第1セルと前記第2セルとを隣接させて配置し、
配置された前記第1セルと前記第2セルとを接続する第1配線を配置する、
ことを特徴とするレイアウト設計方法。
【0181】
(付記2) 前記コンピュータが、更に、前記第1関連付け情報に基づき、前記第1セルと前記第2セルとをブロック化して第3セルを生成し、
前記第1セルと前記第2セルとを配置する際には、前記第3セルを配置し、
前記第1配線を配置する際には、前記第3セルに含まれる前記第1セルと前記第2セルとを接続する前記第1配線を配置することを特徴とする付記1に記載のレイアウト設計方法。
【0182】
(付記3) 前記第3セルの配置後に、前記第3セルを、前記第1セル、前記第2セル及び前記第1配線に展開することを特徴とする付記2に記載のレイアウト設計方法。
(付記4) 前記第3セルの配置後、前記第3セルを前記第1セルと前記第2セルとに復元することを特徴とする付記3に記載のレイアウト設計方法。
【0183】
(付記5) 前記コンピュータが、更に、
前記ネットリストを用いて、第3回路の情報を含む第3セルと、前記第3回路に接続される第4回路の情報を含む第4セルとを抽出し、
抽出された前記第3セルと前記第4セルとを関連付けた第2関連付け情報を生成し、
生成された前記第2関連付け情報に基づき、前記第3セルと前記第4セルとを一体で配置し、
前記第1セル、前記第2セル、前記第3セル及び前記第4セルの配置後、
配置された前記第2セル及び前記第4セルを、前記第1回路及び前記第3回路に接続される第5回路の情報を含む第5セルに置換し、
前記第1セルと前記第5セルとを接続する第2配線を配置すると共に、前記第3セルと前記第5セルとを接続する第3配線を配置する、
ことを特徴とする付記1に記載のレイアウト設計方法。
【0184】
(付記6) 前記第2セル及び前記第4セルを前記第5セルに置換する際には、前記第5セルを、前記第1セルと前記第3セルの間の領域に配置することを特徴とする付記5に記載のレイアウト設計方法。
【0185】
(付記7) 前記第2セル及び前記第4セルを前記第5セルに置換する際には、前記第5セルを、前記第1セル又は前記第3セルに隣接させて配置することを特徴とする付記5に記載のレイアウト設計方法。
【0186】
(付記8) 前記コンピュータが、更に、
前記第1セルの周囲に第1範囲を設定し、
前記第3セルの周囲に第2範囲を設定し、
配置された前記第1セルの前記第1範囲と、配置された前記第3セルの前記第2範囲とが部分的に重なる場合に、前記第2セル及び前記第4セルを前記第5セルに置換することを特徴とする付記5乃至7のいずれかに記載のレイアウト設計方法。
【0187】
(付記9) 前記第1セルと前記第3セルとが共に、複数に分割された配置領域の、一の配置領域に配置された場合に、前記第2セル及び前記第4セルを前記第5セルに置換することを特徴とする付記5乃至8のいずれかに記載のレイアウト設計方法。
【0188】
(付記10) 前記第5セルに接続可能なセルの数の上限値が設定されており、前記第5セルに接続された、前記第1セル及び前記第3セルを含むセルの数が、前記上限値を超えるか否かを判定することを特徴とする付記5乃至9のいずれかに記載のレイアウト設計方法。
【0189】
(付記11) 前記第2配線及び前記第3配線には、長さ又は配線容量の閾値が設定されており、配置された前記第2配線及び前記第3配線が前記閾値を超えるか否かを判定することを特徴とする付記5乃至10のいずれかに記載のレイアウト設計方法。
【0190】
(付記12) 前記第1セルと前記第3セルとが共に、同じ論理階層である場合に、前記第2セル及び前記第4セルを前記第5セルに置換することを特徴とする付記5乃至11のいずれかに記載のレイアウト設計方法。
【0191】
(付記13) コンピュータに、
ネットリストを用いて、第1回路の情報を含む第1セルと、前記第1回路に接続される第2回路の情報を含む第2セルとを抽出し、
抽出された前記第1セルと前記第2セルとを関連付けた第1関連付け情報を生成し、
生成された前記第1関連付け情報に基づき、前記第1セルと前記第2セルとを一体で配置し、
配置された前記第1セルと前記第2セルとを接続する第1配線を配置する、
処理を実行させることを特徴とするレイアウト設計プログラム。
【0192】
(付記14) ネットリストを用いて、第1回路の情報を含む第1セルと、前記第1回路に接続される第2回路の情報を含む第2セルとを抽出する抽出部と、
前記抽出部によって抽出された前記第1セルと前記第2セルとを関連付けた第1関連付け情報を生成する生成部と、
前記生成部によって生成された前記第1関連付け情報に基づき、前記第1セルと前記第2セルとを一体で配置する第1配置部と、
前記第1配置部によって配置された前記第1セルと前記第2セルとを接続する第1配線を配置する第2配置部と、
を含むことを特徴とするレイアウト設計装置。
【符号の説明】
【0193】
1,30,30a,31,32,33,34,35,36 被クリップセル
1a,1b 入力端子
1c 回路
2a,2b,60 クリップ配線
3a,3b 電源線
4,40,41,42,43,44 クリップセル
4a 保護素子
4b 入力端子
10,10a,10b ネットリスト
10c タイミング修正後ネットリスト
10d 階層化ネットリスト
10e 階層展開ネットリスト
10f クリップセル共有化ネットリスト
11 配置配線データ
11a タイミング修正後配置配線データ
12 タイミングチェック情報
13 配線混雑度情報
14 クリップセル共有化ルール
15 共有化対象DB
20 クリップ情報テーブル
21 階層ブロック情報
30b,30c モジュールセル
40a 共有クリップセル
50 セル
61 配線
70 ショート
80 ROW領域
100 セル配置領域
101 グローバルエリア
110,111,112,113 論理モジュール
200 レイアウト設計装置
201 CPU
202 RAM
203 HDD
204 グラフィック処理装置
205 入力インタフェース
206 光学ドライブ装置
207 通信インタフェース
208 バス
301 モニタ
302 キーボード
303 マウス
304 光ディスク
400 ネットワーク
1000 レイアウト設計装置
1010 抽出部
1020 生成部
1030 第1配置部
1040 第2配置部
R1,R2,R3,R4 共有化対象領域
AR1,AR2,AR3 領域
PD1,PD2 パワードメイン

【特許請求の範囲】
【請求項1】
コンピュータが、
ネットリストを用いて、第1回路の情報を含む第1セルと、前記第1回路に接続される第2回路の情報を含む第2セルとを抽出し、
抽出された前記第1セルと前記第2セルとを関連付けた第1関連付け情報を生成し、
生成された前記第1関連付け情報に基づき、前記第1セルと前記第2セルとを隣接させて配置し、
配置された前記第1セルと前記第2セルとを接続する第1配線を配置する、
ことを特徴とするレイアウト設計方法。
【請求項2】
前記コンピュータが、更に、前記第1関連付け情報に基づき、前記第1セルと前記第2セルとをブロック化して第3セルを生成し、
前記第1セルと前記第2セルとを配置する際には、前記第3セルを配置し、
前記第1配線を配置する際には、前記第3セルに含まれる前記第1セルと前記第2セルとを接続する前記第1配線を配置することを特徴とする請求項1に記載のレイアウト設計方法。
【請求項3】
前記第3セルの配置後に、前記第3セルを、前記第1セル、前記第2セル及び前記第1配線に展開することを特徴とする請求項2に記載のレイアウト設計方法。
【請求項4】
前記コンピュータが、更に、
前記ネットリストを用いて、第3回路の情報を含む第3セルと、前記第3回路に接続される第4回路の情報を含む第4セルとを抽出し、
抽出された前記第3セルと前記第4セルとを関連付けた第2関連付け情報を生成し、
生成された前記第2関連付け情報に基づき、前記第3セルと前記第4セルとを一体で配置し、
前記第1セル、前記第2セル、前記第3セル及び前記第4セルの配置後、
配置された前記第2セル及び前記第4セルを、前記第1回路及び前記第3回路に接続される第5回路の情報を含む第5セルに置換し、
前記第1セルと前記第5セルとを接続する第2配線を配置すると共に、前記第3セルと前記第5セルとを接続する第3配線を配置する、
ことを特徴とする請求項1に記載のレイアウト設計方法。
【請求項5】
コンピュータに、
ネットリストを用いて、第1回路の情報を含む第1セルと、前記第1回路に接続される第2回路の情報を含む第2セルとを抽出し、
抽出された前記第1セルと前記第2セルとを関連付けた第1関連付け情報を生成し、
生成された前記第1関連付け情報に基づき、前記第1セルと前記第2セルとを一体で配置し、
配置された前記第1セルと前記第2セルとを接続する第1配線を配置する、
処理を実行させることを特徴とするレイアウト設計プログラム。
【請求項6】
ネットリストを用いて、第1回路の情報を含む第1セルと、前記第1回路に接続される第2回路の情報を含む第2セルとを抽出する抽出部と、
前記抽出部によって抽出された前記第1セルと前記第2セルとを関連付けた第1関連付け情報を生成する生成部と、
前記生成部によって生成された前記第1関連付け情報に基づき、前記第1セルと前記第2セルとを一体で配置する第1配置部と、
前記第1配置部によって配置された前記第1セルと前記第2セルとを接続する第1配線を配置する第2配置部と、
を含むことを特徴とするレイアウト設計装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate


【公開番号】特開2012−186236(P2012−186236A)
【公開日】平成24年9月27日(2012.9.27)
【国際特許分類】
【出願番号】特願2011−47082(P2011−47082)
【出願日】平成23年3月4日(2011.3.4)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】