半導体集積回路階層設計方法
【課題】対象階層マクロブロックから他の階層マクロブロックへの配線間容量を更に抑制すること。
【解決手段】本発明では、チップ全体を階層的に分割した複数の階層マクロブロックを生成する(S2)。階層マクロブロック30に対する回路図データから、初段、最終段のセルを表す境界セル群40〜43、44〜47と、上位の階層マクロブロック60のセル71、72及び境界セル群40〜43、44〜47を接続する境界パス群53、54とを抽出する(S3)。階層マクロブロック30において、境界31の一部分32から内部に延びる境界回路領域61と、境界回路領域61を囲う境界セル領域62と、それ以外の領域63とを決定し(S4)、境界セル群40〜43、44〜47を境界セル領域62に配置する(S5)。階層マクロブロック60にセル71、72を配置すると同時に、境界回路領域61に境界パス群53、54を配置する(S9)。
【解決手段】本発明では、チップ全体を階層的に分割した複数の階層マクロブロックを生成する(S2)。階層マクロブロック30に対する回路図データから、初段、最終段のセルを表す境界セル群40〜43、44〜47と、上位の階層マクロブロック60のセル71、72及び境界セル群40〜43、44〜47を接続する境界パス群53、54とを抽出する(S3)。階層マクロブロック30において、境界31の一部分32から内部に延びる境界回路領域61と、境界回路領域61を囲う境界セル領域62と、それ以外の領域63とを決定し(S4)、境界セル群40〜43、44〜47を境界セル領域62に配置する(S5)。階層マクロブロック60にセル71、72を配置すると同時に、境界回路領域61に境界パス群53、54を配置する(S9)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路の階層設計を行う半導体集積回路階層設計方法に関する。
【背景技術】
【0002】
近年の半導体集積回路の大規模化に伴い、半導体集積回路全体を一度にレイアウトする手法では、データ規模が設計ツール(コンピュータ、コンピュータプログラム等)の処理限界を超えるようになってきている。そこで、半導体集積回路を機能毎に階層化した回路を表す複数の回路図データを生成し、複数の回路図データのそれぞれに対して、チップ全体を階層的に分割したレイアウト領域である複数の階層マクロブロック(フィジカルブロックともいう)を生成し、階層マクロブロック毎に設計する階層設計方法が行われている。
【0003】
この階層設計方法では、複数の階層マクロブロックのうちの対象階層マクロブロックに注目した場合、動作シミュレーションにより、対象階層マクロブロックに発生する抵抗値及び容量値に基づいて遅延値を算出し、遅延値が所望の値であるか否かを検証する。
【0004】
しかし、対象階層マクロブロックの内部に配置された配線(内部配線)と、対象階層マクロブロックの上位の階層マクロブロックに配置された配線(外部配線)との間に発生する容量(配線間容量)により、クロストークが生じる場合がある。このクロストークの影響により、対象階層マクロブロック単体で動作シミュレーションを行ったときの遅延値と、チップ全体で対象階層マクロブロックの動作シミュレーションを行ったときの遅延値とに差が生じてしまう。その差により、チップに不具合が発生する。
【0005】
そこで、従来の半導体集積回路階層設計方法として、特開2004−259967号公報には、内部配線と外部配線との配置を考慮した半導体集積回路階層設計方法が記載されている。
【0006】
図1に示されるように、従来の半導体集積回路階層設計方法では、対象階層マクロブロック130の境界131にシールド配線100を設けている。例えば、境界131付近で隣接するように、対象階層マクロブロック130の内部に配線(内部配線)111が配置され、対象階層マクロブロック130の上位の階層マクロブロック170に配線(外部配線)121が配置される場合、それらの間に配線間容量が発生しないようにシールド配線100が配置される。これにより、内部配線111と外部配線121との間のクロストークを防いでいる。
【0007】
また、従来の半導体集積回路階層設計方法では、対象階層マクロブロック130を、上位の階層マクロブロック170へ配線が行われる配線抑制領域161と、内部領域162とに分けている。配線抑制領域161は、境界131と、対象階層マクロブロック130の境界132とに接している。この配線抑制領域161では境界132に平行する配線を禁止している。このため、配線抑制領域161には、境界132に平行しない配線である内部配線112が配置される。例えば、内部配線112は、境界132に対して垂直の方向に、配線抑制領域161から対象階層マクロブロック130の境界132を介して上位の階層マクロブロック170に配置される。又は、内部配線112は、内部領域162から配線抑制領域161、境界132を介して上位の階層マクロブロック170に配置される。これにより、内部配線112と外部配線122との間のクロストークを防いでいる。
【0008】
また、従来の半導体集積回路階層設計方法では、配線抑制領域161において、内部領域162に配置される内部配線113と、外部配線122との間には、配線間容量が発生しない距離が設けられている。これにより、内部配線113と外部配線122との間のクロストークを防いでいる。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2004−259967号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
従来の半導体集積回路階層設計方法では、配線抑制領域161において境界132に平行する配線を禁止しているが、対象階層マクロブロック130を単に配線抑制領域161と内部領域162とに2分割している。このため、図2に示されるように、内部配線112は、内部領域162から配線抑制領域161、境界132を介して上位の階層マクロブロック170に配置される場合や、配線抑制領域161から境界132を介して上位の階層マクロブロック170に配置される場合や、内部領域162から配線抑制領域161に配置される場合等、配線抑制領域161には、多くの内部配線112が配置されることになる。
【0011】
このように、従来の半導体集積回路階層設計方法では、対象階層マクロブロック130から上位の階層マクロブロック170に配置される内部配線112以外にも、対象階層マクロブロック130内で内部領域162から配線抑制領域161に配置される内部配線112に対しても隣接するため、これらの内部配線112間で配線間容量が発生してしまい、クロストークが生じる可能性がある。このクロストークの影響により、対象階層マクロブロック130単体で動作シミュレーションを行ったときの遅延値と、チップ全体で対象階層マクロブロック130の動作シミュレーションを行ったときの遅延値とに差が生じ、チップに不具合が発生する可能性がある。
【0012】
従って、対象階層マクロブロックから他の階層マクロブロックへのパス(配線を含む)に対する配線間容量を更に抑制することが望まれる。
【課題を解決するための手段】
【0013】
以下に、発明を実施するための形態で使用される符号を括弧付きで用いて、課題を解決するための手段を記載する。この符号は、特許請求の範囲の記載と発明を実施するための形態の記載との対応を明らかにするために付加されたものであり、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【0014】
本発明の半導体集積回路階層設計方法では、工程として階層マクロブロック生成処理(S2)、回路情報抽出処理(S3)、領域決定処理(S4)、境界セルレイアウト処理(S5)、上位階層レイアウト処理(S9)をコンピュータ(10)が実行する。コンピュータ(10)は、コンピュータプログラム(13)が格納された記憶部(12)と、コンピュータプログラム(13)を実行する制御部(11)とを備えている。階層マクロブロック生成処理(S2)では、制御部(11)が、チップ全体を階層的に分割したレイアウト領域である複数の階層マクロブロックを生成する。回路情報抽出処理(S3)では、制御部(11)が、複数の階層マクロブロックのうちの対象階層マクロブロック(30)に対する回路図データが表す回路の中から、初段、最終段のセルを表す境界セル群(40〜43、44〜47)と、対象階層マクロブロック(30)の上位の階層マクロブロック(60)のセル(71、72)と境界セル群(40〜43、44〜47)とをそれぞれ接続するための境界パス群(53、54)とを抽出する。領域決定処理(S4)では、制御部(11)が、対象階層マクロブロック(30)の境界(31)の一部分(32)から対象階層マクロブロック(30)の内部の方向に延びる境界回路領域(61)と、対象階層マクロブロック(30)内で境界回路領域(61)を囲う境界セル領域(62)と、対象階層マクロブロック(30)の境界回路領域(61)、境界セル領域(62)以外の領域である階層マクロ内部領域(63)とを決定する。境界セルレイアウト処理(S5)では、制御部(11)が、境界セル群(40〜43、44〜47)を境界セル領域(62)に配置する。上位階層レイアウト処理(S9)では、制御部(11)が、上位の階層マクロブロック(60)にセル(71、72)を配置すると同時に、境界回路領域(61)に境界パス群(53、54)を配置する。
【発明の効果】
【0015】
本発明の半導体集積回路階層設計方法によれば、第1の効果として、対象階層マクロブロック(30)から他の階層マクロブロック(上位の階層マクロブロック(70))へのパス(第1、2境界パス(53、54))に対する配線間容量を従来に比べて抑制することができる。
【0016】
その理由として、対象階層マクロブロック(30)には境界回路領域(61)と境界セル領域(62)とが設けられ、境界回路領域61は境界セル領域(62)に囲まれている。従って、対象階層マクロブロック(30)から上位の階層マクロブロック(70)への第1、2境界パス(53、54)は境界回路領域(61)に限定される。このため、境界回路領域(61)で発生する配線間容量は、従来における配線抑制領域(161)で発生する配線間容量に比べて小さくなる。
【0017】
また、これを実現するために、境界セル領域(62)は、境界回路領域(61)と階層マクロ内部領域(63)とを分離する領域として設けられ、その境界セル領域(62)には、初段、最終段のセルを表す第1、2境界セル群(40〜43、44〜47)が配置される。従って、境界回路領域(61)には、対象階層マクロブロック(30)から上位の階層マクロブロック(70)への第1、2境界パス(53、54)が配置され、対象階層マクロブロック(30)から上位の階層マクロブロック(70)に接続されないパスは配置されない。このため、第1、2境界パス(53、54)間で発生する配線間容量に関しても、当該境界パス(53、54)を上位の階層マクロブロック(70)の一部としてみなすことにより、正確に見積もることができる。
【0018】
このように、本発明の半導体集積回路階層設計方法によれば、対象階層マクロブロック(30)から他の階層マクロブロックへのパスに対する配線間容量を更に抑制することができる。
【0019】
本発明の半導体集積回路階層設計方法によれば、第1の効果により配線間容量を正確に得られるため、第2の効果として、チップ全体で対象階層マクロブロック(30)の動作シミュレーションを行ったときと変わらない状態で、対象階層マクロブロック(30)単体で動作シミュレーションを行うことができる。
【0020】
本発明の半導体集積回路階層設計方法によれば、第3の効果として、上位の階層マクロブロック(70)に対象階層マクロブロック(30)の境界回路領域(61)を加えたものと階層マクロ内部領域(63)とを同時にレイアウトするため、設計時間を短縮できる。
【0021】
その理由として、通常の階層設計方法では、回路規模の大きい対象階層マクロブロックのレイアウトが完了してから、同じく回路規模の大きい上位の階層マクロブロックのレイアウトに移行する。一方、本発明の半導体集積回路階層設計方法によれば、対象階層マクロブロック(30)において、その内部と境界配線とが干渉しないように、回路規模の小さい境界回路領域(61)、境界セル領域(62)、階層マクロ内部領域(63)を決定し、階層マクロ内部領域(63)のレイアウトと、上位の階層マクロブロック(70)及び回路規模の小さい境界回路領域(61)のレイアウトとを並行に行うことができる。これにより、本発明では、境界配線の配線間容量を上位の階層マクロブロック(70)と同時に見積もることができるため、階層マクロ内部領域(63)のレイアウト完了を待たずして、上位の階層マクロブロック(70)のレイアウト・シミュレーションを行うことができる。
【図面の簡単な説明】
【0022】
【図1】図1は、従来の半導体集積回路階層設計方法を説明するための図である。
【図2】図2は、従来の半導体集積回路階層設計方法を説明するための図である。
【図3】図3は、本発明の実施形態による半導体集積回路階層設計方法により設計される半導体集積回路の構成を示している。
【図4】図4は、本発明の実施形態による半導体集積回路階層設計方法に適用されるコンピュータ10の構成を示すブロック図である。
【図5】図5は、本発明の実施形態による半導体集積回路階層設計方法を示すフローチャートである。
【図6】図6は、本発明の実施形態による半導体集積回路階層設計方法を説明するための図である。
【図7】図7は、本発明の実施形態による半導体集積回路階層設計方法を説明するための図である。
【図8】図8は、本発明の実施形態による半導体集積回路階層設計方法を説明するための図である。
【図9】図9は、本発明の実施形態による半導体集積回路階層設計方法を説明するための図である。
【図10】図10は、本発明の実施形態による半導体集積回路階層設計方法を説明するための図である。
【図11】図11は、本発明の実施形態による半導体集積回路階層設計方法を説明するための図である。
【図12】図12は、本発明の実施形態による半導体集積回路階層設計方法を説明するための図である。
【図13】図13は、本発明の他の実施形態による半導体集積回路階層設計方法を説明するための図である。
【発明を実施するための形態】
【0023】
以下に添付図面を参照して、本発明の実施形態による半導体集積回路階層設計方法について詳細に説明する。
【0024】
図3は、本発明の実施形態による半導体集積回路階層設計方法により設計される半導体集積回路の構成を示している。
【0025】
この半導体集積回路は、チップ全体が階層的に分割されたレイアウト領域である複数の階層マクロブロックと、境界セル群40〜43、44〜47と、内部セル群48、49と、端子群51、52と、境界パス群53、54と、内部パス55と、中継パス56と、境界回路領域61と、境界セル領域62と、階層マクロ内部領域63とを具備している。
【0026】
説明の都合上、複数の階層マクロブロックのうちの1つの階層マクロブロックである対象階層マクロブロック30に注目する。
【0027】
境界回路領域61は、対象階層マクロブロック30の境界31の一部分32から対象階層マクロブロック30の内部の方向に延びる領域である。境界31は、対象階層マクロブロック30の四辺のうちの一辺を表している。
【0028】
境界セル領域62は、対象階層マクロブロック30内で境界回路領域61を囲う領域である。
【0029】
階層マクロ内部領域63は、対象階層マクロブロック30の境界回路領域61、境界セル領域62以外の領域である。
【0030】
境界セル群40〜43、44〜47は、境界セル領域62に配置される。この境界セル群40〜43、44〜47は、初段、最終段のセル(フリップフロップ又はマクロ)を表している。境界セル群は、例えば、第1境界セル群40〜43と、境界回路領域61を介して第1境界セル群40〜43に対向する第2境界セル群44〜47とに分けられる。
【0031】
境界パス群53、54は、境界回路領域61に配置される。この境界パス群53、54は、配線と配線上に設けられる論理ゲートとを含んでいる。境界パス群53、54は、例えば、第1境界パス53と、第2境界パス54とに分けられる。第1、2境界パス53、54は、対象階層マクロブロック30の上位の階層マクロブロック70のセル71、72(フリップフロップ又はマクロ)と第1、2境界セル群40〜43、44〜47とをそれぞれ接続するためのパスである。
【0032】
端子群51、52は、例えば、第1端子51と、第2端子52とに分けられる。第1、2端子51、52は、対象階層マクロブロック30の境界31で第1、2境界パス53、54上にそれぞれ設けられる端子である。
【0033】
内部セル群48、49は、階層マクロ内部領域63に配置される。この内部セル群48、49は、初段、最終段以外のセル(フリップフロップ又はマクロ)を表している。
【0034】
内部パス55は、階層マクロ内部領域63に配置される。この内部パス55は、配線と配線上に設けられる論理ゲートとを含んでいる。内部パス55は、内部セル群48、49に接続されるパスである。
【0035】
中継パス56は、階層マクロ内部領域63に配置される。この中継パス56は、配線と配線上に設けられる論理ゲートとを含んでいる。中継パス56は、内部パス55と、第1、2境界セル群40〜43、44〜47のうちの少なくとも1つのセル(例えばセル47とする)と内部セル群48、49のうちの少なくとも1つのセル(例えばセル49とする)とを接続するためのパスである。
【0036】
図4は、本発明の実施形態による半導体集積回路階層設計方法に適用されるコンピュータ10の構成を示すブロック図である。そのコンピュータ10は、制御部11と、記憶部12と、表示部を具備している。
【0037】
制御部11としては、CPU(Central Processing Unit)が例示され、記憶部12としては、記録媒体であるメモリが例示される。記憶部12には、コンピュータに実行させるためのコンピュータプログラム13が記憶されている。制御部11は、起動時などに記憶部12からコンピュータプログラム13を読み取って実行し、その実行結果を表示部に表示する。
【0038】
制御部11は、回路図データ生成部21と、階層マクロブロック生成部22と、回路情報抽出部23と、領域決定部24と、境界セルレイアウト部25と、階層マクロ内レイアウト部26と、上位階層レイアウト部27と、シミュレーション部28とを備えている。記憶部12は、セル、配線、端子を含む配線要素に関する情報(パラメータ)が格納されたライブラリ14を備えている。そのパラメータは、例えば、配線要素(配線、セル)の面積を含んでいる。
【0039】
図5は、本発明の実施形態による半導体集積回路階層設計方法を示すフローチャートである。
【0040】
(S1;回路図データ生成処理)
回路図データ生成部21は、半導体集積回路を機能毎に階層化した回路を表す複数の回路図データを生成する。
【0041】
(S2;階層マクロブロック生成処理)
図6に示されるように、階層マクロブロック生成部22は、複数の回路図データのそれぞれに対して、チップ全体を階層的に分割したレイアウト領域である複数の階層マクロブロックを生成する。
【0042】
(S3;回路情報抽出処理)
回路情報抽出部23は、複数の階層マクロブロックのうちの対象階層マクロブロック30に対する回路図データが表す回路の中から、前述の第1、2境界セル群40〜43、44〜47、第1、2境界パス53、54、第1、2端子51、52、内部セル群48、49、内部パス55、中継パス56(図3参照)を回路情報として抽出する。同時に、対象階層マクロブロック30の上位の階層マクロブロック70に対する回路図データが表す回路の中から、セル71、72を回路情報として抽出する。
【0043】
(S4;領域決定処理)
図7に示されるように、領域決定部24は、境界回路領域61と、対象階層マクロブロック30内で境界回路領域61を囲う境界セル領域62と、階層マクロ内部領域63とを決定する。
【0044】
ここで、境界回路領域61、境界セル領域62、階層マクロ内部領域63の決定方法について説明する。
【0045】
領域決定部24は、対象階層マクロブロック30に対する回路図データから、境界回路領域61に配置される第1配線要素(第1、2端子51、52、第1、2境界パス53、54)の数を取得し、ライブラリ14に格納されたパラメータから、その第1配線要素の面積を取得する。領域決定部24は、境界セル領域62に配置される第2配線要素(第1、2境界セル群40〜43、44〜47)の数を取得し、ライブラリ14に格納されたパラメータから、その第2配線要素の面積を取得する。領域決定部24は、階層マクロ内部領域63に配置される第3配線要素(内部セル群48、49、内部パス55、中継パス56)の数を取得し、ライブラリ14に格納されたパラメータから、その第3配線要素の面積を取得する。領域決定部24は、境界回路領域61、境界セル領域62、階層マクロ内部領域63のそれぞれ対して、第1〜3配線要素の数に応じた面積を加算し、配置に必要な合計面積を割り出す。
【0046】
領域決定部24は、上位の階層マクロブロック70のセル71、72の位置と、境界回路領域61に対する合計面積とを考慮して、上位の階層マクロブロック70のセル71、72の近辺であり、且つ、対象階層マクロブロック30の境界31の一部分32から対象階層マクロブロック30の内部の方向に延びる境界回路領域61を決定する。次に、領域決定部24は、境界セル領域62に対する合計面積を考慮して、対象階層マクロブロック30内で境界回路領域61を囲う境界セル領域62を決定する。次に、領域決定部24は、対象階層マクロブロック30の境界回路領域61、境界セル領域62以外の領域である階層マクロ内部領域63を決定する。
【0047】
(S5;境界セルレイアウト処理)
境界セルレイアウト部25は、境界回路領域61、境界セル領域62、階層マクロ内部領域63にそれぞれ第1〜3配線要素を仮配置する。この場合、予め決められたタイミング制約及び遅延条件を考慮して、境界回路領域61、境界セル領域62、階層マクロ内部領域63のそれぞれに対して、第1〜3配線要素が配置される配置場所(座標)を決定し、その配置場所に関する情報を記憶部12に格納しておく。
【0048】
図8に示されるように、境界セルレイアウト部25は、境界セル領域62の配置場所に関する情報に従って、第1、2境界セル群40〜43、44〜47を境界セル領域62に配置する。例えば、境界回路領域61を介して第1境界セル群40〜43と第2境界セル群44〜47とが対向するように、第1、2境界セル群40〜43、44〜47を境界セル領域62に配置する。
【0049】
(S6;第1レイアウト禁止領域設定処理)
図9に示されるように、階層マクロ内レイアウト部26は、境界回路領域61と境界セル領域62とに対してセル及びパスの配置を禁止する第1のレイアウト禁止領域(図9の斜線部分参照)を設定する。
【0050】
(S7;階層マクロ内レイアウト処理)
図10に示されるように、階層マクロ内レイアウト部26は、記憶部12に格納された階層マクロ内部領域63の配置場所に関する情報に従って、第1のレイアウト禁止領域以外の領域である階層マクロ内部領域63に、内部セル群48、49と内部パス55と中継パス56とを配置する。
【0051】
(S8;第2レイアウト禁止領域設定処理)
図11に示されるように、上位階層レイアウト部27は、境界セル領域62と階層マクロ内部領域63とに対してセル及びパスの配置を禁止する第2のレイアウト禁止領域(図11の斜線部分参照)を設定する。
【0052】
(S9;上位階層レイアウト処理)
図12に示されるように、上位階層レイアウト部27は、対象階層マクロブロック30の上位の階層マクロブロック70にセル71、72を配置する同時に、記憶部12に格納された境界回路領域61の配置場所に関する情報に従って、第2のレイアウト禁止領域以外の領域である境界回路領域61に、第1、2端子51、52と第1、2境界パス53、54とを配置する。ここで、上位階層レイアウト部27は、記憶部12に格納された第1〜3配線要素の配置場所に関する情報を削除する。
【0053】
(S10;動作シミュレーション)
シミュレーション部28は、ライブラリ14に格納された情報やパラメータに基づいて動作シミュレーションを実行する。この動作シミュレーションにより、対象階層マクロブロック30に発生する抵抗値及び容量値に基づいて遅延値を算出する。
【0054】
(S11;検証処理)
シミュレーション部28は、遅延値が所望の値であるか否かを検証し、その結果を表示部に表示する。
【0055】
本発明の実施形態による半導体集積回路階層設計方法によれば、第1の効果として、対象階層マクロブロック30から他の階層マクロブロック(上位の階層マクロブロック70)へのパス(第1、2境界パス53、54)に対する配線間容量を従来に比べて抑制することができる。
【0056】
その理由として、対象階層マクロブロック30には境界回路領域61と境界セル領域62とが設けられ、境界回路領域61は境界セル領域62に囲まれている。従って、対象階層マクロブロック30から上位の階層マクロブロック70への第1、2境界パス53、54は境界回路領域61に限定される。このため、境界回路領域61で発生する配線間容量は、従来における配線抑制領域161で発生する配線間容量に比べて小さくなる。
【0057】
また、これを実現するために、境界セル領域62は、境界回路領域61と階層マクロ内部領域63とを分離する領域として設けられ、その境界セル領域62には、初段、最終段のセルを表す第1、2境界セル群40〜43、44〜47が配置される。従って、境界回路領域61には、対象階層マクロブロック30から上位の階層マクロブロック70への第1、2境界パス53、54が配置され、対象階層マクロブロック30から上位の階層マクロブロック70に接続されないパスは配置されない。このため、第1、2境界パス53、54間で発生する配線間容量に関しても、当該境界パス53、54を上位の階層マクロブロック70の一部としてみなすことにより、正確に見積もることができる。
【0058】
このように、本発明の実施形態による半導体集積回路階層設計方法によれば、対象階層マクロブロック30から他の階層マクロブロックへのパスに対する配線間容量を更に抑制することができる。
【0059】
本発明の実施形態による半導体集積回路階層設計方法によれば、第1の効果により配線間容量を正確に得られるため、第2の効果として、チップ全体で対象階層マクロブロック30の動作シミュレーションを行ったときと変わらない状態で、対象階層マクロブロック30単体で動作シミュレーションを行うことができる。
【0060】
本発明の実施形態による半導体集積回路階層設計方法によれば、第3の効果として、上位の階層マクロブロック70に対象階層マクロブロック30の境界回路領域61を加えたものと階層マクロ内部領域63とを同時にレイアウトするため、設計時間を短縮できる。
【0061】
その理由として、通常の階層設計方法では、回路規模の大きい対象階層マクロブロックのレイアウトが完了してから、同じく回路規模の大きい上位の階層マクロブロックのレイアウトに移行する。一方、本発明の実施形態による半導体集積回路階層設計方法によれば、対象階層マクロブロック30において、その内部と境界配線とが干渉しないように、回路規模の小さい境界回路領域61、境界セル領域62、階層マクロ内部領域63を決定し、階層マクロ内部領域63のレイアウトと、上位の階層マクロブロック70及び回路規模の小さい境界回路領域61のレイアウトとを並行に行うことができる。これにより、本発明では、境界配線の配線間容量を上位の階層マクロブロック70と同時に見積もることができるため、階層マクロ内部領域63のレイアウト完了を待たずして、上位の階層マクロブロック70のレイアウト・シミュレーションを行うことができる。
【0062】
なお、本発明の実施形態による半導体集積回路階層設計方法において、境界セル領域62が非常に小さい場合、境界回路領域61内の第1、2境界パス53、54と階層マクロ内部領域63内のパス(内部パス55、中継パス56)との間のクロストークの発生が防ぎきれない可能性がある。この場合、他の実施形態として、図13に示されるように、検証処理(S11)の後に、制御部11は、境界セル領域42上にシールド配線80を設ける工程を実施してもよい。この場合、境界セル領域42の一部又は全部が覆われる。
【0063】
また、本発明の実施形態による半導体集積回路階層設計方法において、従来の半導体集積回路階層設計方法と同様に、対象階層マクロブロック30の境界31(第1の境界31とする)に交わる境界(第2の境界とする)にシールド配線(図示しない)を設けてもよい。例えば、第2の境界付近で隣接するように、対象階層マクロブロック30の階層マクロ内部領域63に配線(内部配線)が配置され、対象階層マクロブロック30の上位の階層マクロブロック70に配線(外部配線)が配置される場合、それらの間に配線間容量が発生しないようにシールド配線が配置される。これにより、内部配線と外部配線との間のクロストークを防ぐことができる。
【符号の説明】
【0064】
10 コンピュータ、
11 制御部、
12 記憶部、
13 コンピュータプログラム、
14 ライブラリ、
21 回路図データ生成部、
22 階層マクロブロック生成部、
23 回路情報抽出部、
24 領域決定部、
25 境界セルレイアウト部、
26 階層マクロ内レイアウト部、
27 上位階層レイアウト部、
28 シミュレーション部、
30 対象階層マクロブロック、
31 境界、
32 一部分、
40〜43 第1境界セル群、
44〜47 第2境界セル群、
48、49 内部セル群、
51 第1端子、
52 第2端子、
53 第1境界パス、
54 第2境界パス、
55 内部パス、
56 中継パス、
61 境界回路領域、
62 境界セル領域、
63 階層マクロ内部領域、
70 上位の階層マクロブロック、
71、72 セル、
80 シールド配線、
100 シールド配線、
111〜113 内部配線、
121、122 外部配線、
130 対象階層マクロブロック、
131、132 境界、
161 配線抑制領域、
162 内部領域、
170 上位の階層マクロブロック
【技術分野】
【0001】
本発明は、半導体集積回路の階層設計を行う半導体集積回路階層設計方法に関する。
【背景技術】
【0002】
近年の半導体集積回路の大規模化に伴い、半導体集積回路全体を一度にレイアウトする手法では、データ規模が設計ツール(コンピュータ、コンピュータプログラム等)の処理限界を超えるようになってきている。そこで、半導体集積回路を機能毎に階層化した回路を表す複数の回路図データを生成し、複数の回路図データのそれぞれに対して、チップ全体を階層的に分割したレイアウト領域である複数の階層マクロブロック(フィジカルブロックともいう)を生成し、階層マクロブロック毎に設計する階層設計方法が行われている。
【0003】
この階層設計方法では、複数の階層マクロブロックのうちの対象階層マクロブロックに注目した場合、動作シミュレーションにより、対象階層マクロブロックに発生する抵抗値及び容量値に基づいて遅延値を算出し、遅延値が所望の値であるか否かを検証する。
【0004】
しかし、対象階層マクロブロックの内部に配置された配線(内部配線)と、対象階層マクロブロックの上位の階層マクロブロックに配置された配線(外部配線)との間に発生する容量(配線間容量)により、クロストークが生じる場合がある。このクロストークの影響により、対象階層マクロブロック単体で動作シミュレーションを行ったときの遅延値と、チップ全体で対象階層マクロブロックの動作シミュレーションを行ったときの遅延値とに差が生じてしまう。その差により、チップに不具合が発生する。
【0005】
そこで、従来の半導体集積回路階層設計方法として、特開2004−259967号公報には、内部配線と外部配線との配置を考慮した半導体集積回路階層設計方法が記載されている。
【0006】
図1に示されるように、従来の半導体集積回路階層設計方法では、対象階層マクロブロック130の境界131にシールド配線100を設けている。例えば、境界131付近で隣接するように、対象階層マクロブロック130の内部に配線(内部配線)111が配置され、対象階層マクロブロック130の上位の階層マクロブロック170に配線(外部配線)121が配置される場合、それらの間に配線間容量が発生しないようにシールド配線100が配置される。これにより、内部配線111と外部配線121との間のクロストークを防いでいる。
【0007】
また、従来の半導体集積回路階層設計方法では、対象階層マクロブロック130を、上位の階層マクロブロック170へ配線が行われる配線抑制領域161と、内部領域162とに分けている。配線抑制領域161は、境界131と、対象階層マクロブロック130の境界132とに接している。この配線抑制領域161では境界132に平行する配線を禁止している。このため、配線抑制領域161には、境界132に平行しない配線である内部配線112が配置される。例えば、内部配線112は、境界132に対して垂直の方向に、配線抑制領域161から対象階層マクロブロック130の境界132を介して上位の階層マクロブロック170に配置される。又は、内部配線112は、内部領域162から配線抑制領域161、境界132を介して上位の階層マクロブロック170に配置される。これにより、内部配線112と外部配線122との間のクロストークを防いでいる。
【0008】
また、従来の半導体集積回路階層設計方法では、配線抑制領域161において、内部領域162に配置される内部配線113と、外部配線122との間には、配線間容量が発生しない距離が設けられている。これにより、内部配線113と外部配線122との間のクロストークを防いでいる。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2004−259967号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
従来の半導体集積回路階層設計方法では、配線抑制領域161において境界132に平行する配線を禁止しているが、対象階層マクロブロック130を単に配線抑制領域161と内部領域162とに2分割している。このため、図2に示されるように、内部配線112は、内部領域162から配線抑制領域161、境界132を介して上位の階層マクロブロック170に配置される場合や、配線抑制領域161から境界132を介して上位の階層マクロブロック170に配置される場合や、内部領域162から配線抑制領域161に配置される場合等、配線抑制領域161には、多くの内部配線112が配置されることになる。
【0011】
このように、従来の半導体集積回路階層設計方法では、対象階層マクロブロック130から上位の階層マクロブロック170に配置される内部配線112以外にも、対象階層マクロブロック130内で内部領域162から配線抑制領域161に配置される内部配線112に対しても隣接するため、これらの内部配線112間で配線間容量が発生してしまい、クロストークが生じる可能性がある。このクロストークの影響により、対象階層マクロブロック130単体で動作シミュレーションを行ったときの遅延値と、チップ全体で対象階層マクロブロック130の動作シミュレーションを行ったときの遅延値とに差が生じ、チップに不具合が発生する可能性がある。
【0012】
従って、対象階層マクロブロックから他の階層マクロブロックへのパス(配線を含む)に対する配線間容量を更に抑制することが望まれる。
【課題を解決するための手段】
【0013】
以下に、発明を実施するための形態で使用される符号を括弧付きで用いて、課題を解決するための手段を記載する。この符号は、特許請求の範囲の記載と発明を実施するための形態の記載との対応を明らかにするために付加されたものであり、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【0014】
本発明の半導体集積回路階層設計方法では、工程として階層マクロブロック生成処理(S2)、回路情報抽出処理(S3)、領域決定処理(S4)、境界セルレイアウト処理(S5)、上位階層レイアウト処理(S9)をコンピュータ(10)が実行する。コンピュータ(10)は、コンピュータプログラム(13)が格納された記憶部(12)と、コンピュータプログラム(13)を実行する制御部(11)とを備えている。階層マクロブロック生成処理(S2)では、制御部(11)が、チップ全体を階層的に分割したレイアウト領域である複数の階層マクロブロックを生成する。回路情報抽出処理(S3)では、制御部(11)が、複数の階層マクロブロックのうちの対象階層マクロブロック(30)に対する回路図データが表す回路の中から、初段、最終段のセルを表す境界セル群(40〜43、44〜47)と、対象階層マクロブロック(30)の上位の階層マクロブロック(60)のセル(71、72)と境界セル群(40〜43、44〜47)とをそれぞれ接続するための境界パス群(53、54)とを抽出する。領域決定処理(S4)では、制御部(11)が、対象階層マクロブロック(30)の境界(31)の一部分(32)から対象階層マクロブロック(30)の内部の方向に延びる境界回路領域(61)と、対象階層マクロブロック(30)内で境界回路領域(61)を囲う境界セル領域(62)と、対象階層マクロブロック(30)の境界回路領域(61)、境界セル領域(62)以外の領域である階層マクロ内部領域(63)とを決定する。境界セルレイアウト処理(S5)では、制御部(11)が、境界セル群(40〜43、44〜47)を境界セル領域(62)に配置する。上位階層レイアウト処理(S9)では、制御部(11)が、上位の階層マクロブロック(60)にセル(71、72)を配置すると同時に、境界回路領域(61)に境界パス群(53、54)を配置する。
【発明の効果】
【0015】
本発明の半導体集積回路階層設計方法によれば、第1の効果として、対象階層マクロブロック(30)から他の階層マクロブロック(上位の階層マクロブロック(70))へのパス(第1、2境界パス(53、54))に対する配線間容量を従来に比べて抑制することができる。
【0016】
その理由として、対象階層マクロブロック(30)には境界回路領域(61)と境界セル領域(62)とが設けられ、境界回路領域61は境界セル領域(62)に囲まれている。従って、対象階層マクロブロック(30)から上位の階層マクロブロック(70)への第1、2境界パス(53、54)は境界回路領域(61)に限定される。このため、境界回路領域(61)で発生する配線間容量は、従来における配線抑制領域(161)で発生する配線間容量に比べて小さくなる。
【0017】
また、これを実現するために、境界セル領域(62)は、境界回路領域(61)と階層マクロ内部領域(63)とを分離する領域として設けられ、その境界セル領域(62)には、初段、最終段のセルを表す第1、2境界セル群(40〜43、44〜47)が配置される。従って、境界回路領域(61)には、対象階層マクロブロック(30)から上位の階層マクロブロック(70)への第1、2境界パス(53、54)が配置され、対象階層マクロブロック(30)から上位の階層マクロブロック(70)に接続されないパスは配置されない。このため、第1、2境界パス(53、54)間で発生する配線間容量に関しても、当該境界パス(53、54)を上位の階層マクロブロック(70)の一部としてみなすことにより、正確に見積もることができる。
【0018】
このように、本発明の半導体集積回路階層設計方法によれば、対象階層マクロブロック(30)から他の階層マクロブロックへのパスに対する配線間容量を更に抑制することができる。
【0019】
本発明の半導体集積回路階層設計方法によれば、第1の効果により配線間容量を正確に得られるため、第2の効果として、チップ全体で対象階層マクロブロック(30)の動作シミュレーションを行ったときと変わらない状態で、対象階層マクロブロック(30)単体で動作シミュレーションを行うことができる。
【0020】
本発明の半導体集積回路階層設計方法によれば、第3の効果として、上位の階層マクロブロック(70)に対象階層マクロブロック(30)の境界回路領域(61)を加えたものと階層マクロ内部領域(63)とを同時にレイアウトするため、設計時間を短縮できる。
【0021】
その理由として、通常の階層設計方法では、回路規模の大きい対象階層マクロブロックのレイアウトが完了してから、同じく回路規模の大きい上位の階層マクロブロックのレイアウトに移行する。一方、本発明の半導体集積回路階層設計方法によれば、対象階層マクロブロック(30)において、その内部と境界配線とが干渉しないように、回路規模の小さい境界回路領域(61)、境界セル領域(62)、階層マクロ内部領域(63)を決定し、階層マクロ内部領域(63)のレイアウトと、上位の階層マクロブロック(70)及び回路規模の小さい境界回路領域(61)のレイアウトとを並行に行うことができる。これにより、本発明では、境界配線の配線間容量を上位の階層マクロブロック(70)と同時に見積もることができるため、階層マクロ内部領域(63)のレイアウト完了を待たずして、上位の階層マクロブロック(70)のレイアウト・シミュレーションを行うことができる。
【図面の簡単な説明】
【0022】
【図1】図1は、従来の半導体集積回路階層設計方法を説明するための図である。
【図2】図2は、従来の半導体集積回路階層設計方法を説明するための図である。
【図3】図3は、本発明の実施形態による半導体集積回路階層設計方法により設計される半導体集積回路の構成を示している。
【図4】図4は、本発明の実施形態による半導体集積回路階層設計方法に適用されるコンピュータ10の構成を示すブロック図である。
【図5】図5は、本発明の実施形態による半導体集積回路階層設計方法を示すフローチャートである。
【図6】図6は、本発明の実施形態による半導体集積回路階層設計方法を説明するための図である。
【図7】図7は、本発明の実施形態による半導体集積回路階層設計方法を説明するための図である。
【図8】図8は、本発明の実施形態による半導体集積回路階層設計方法を説明するための図である。
【図9】図9は、本発明の実施形態による半導体集積回路階層設計方法を説明するための図である。
【図10】図10は、本発明の実施形態による半導体集積回路階層設計方法を説明するための図である。
【図11】図11は、本発明の実施形態による半導体集積回路階層設計方法を説明するための図である。
【図12】図12は、本発明の実施形態による半導体集積回路階層設計方法を説明するための図である。
【図13】図13は、本発明の他の実施形態による半導体集積回路階層設計方法を説明するための図である。
【発明を実施するための形態】
【0023】
以下に添付図面を参照して、本発明の実施形態による半導体集積回路階層設計方法について詳細に説明する。
【0024】
図3は、本発明の実施形態による半導体集積回路階層設計方法により設計される半導体集積回路の構成を示している。
【0025】
この半導体集積回路は、チップ全体が階層的に分割されたレイアウト領域である複数の階層マクロブロックと、境界セル群40〜43、44〜47と、内部セル群48、49と、端子群51、52と、境界パス群53、54と、内部パス55と、中継パス56と、境界回路領域61と、境界セル領域62と、階層マクロ内部領域63とを具備している。
【0026】
説明の都合上、複数の階層マクロブロックのうちの1つの階層マクロブロックである対象階層マクロブロック30に注目する。
【0027】
境界回路領域61は、対象階層マクロブロック30の境界31の一部分32から対象階層マクロブロック30の内部の方向に延びる領域である。境界31は、対象階層マクロブロック30の四辺のうちの一辺を表している。
【0028】
境界セル領域62は、対象階層マクロブロック30内で境界回路領域61を囲う領域である。
【0029】
階層マクロ内部領域63は、対象階層マクロブロック30の境界回路領域61、境界セル領域62以外の領域である。
【0030】
境界セル群40〜43、44〜47は、境界セル領域62に配置される。この境界セル群40〜43、44〜47は、初段、最終段のセル(フリップフロップ又はマクロ)を表している。境界セル群は、例えば、第1境界セル群40〜43と、境界回路領域61を介して第1境界セル群40〜43に対向する第2境界セル群44〜47とに分けられる。
【0031】
境界パス群53、54は、境界回路領域61に配置される。この境界パス群53、54は、配線と配線上に設けられる論理ゲートとを含んでいる。境界パス群53、54は、例えば、第1境界パス53と、第2境界パス54とに分けられる。第1、2境界パス53、54は、対象階層マクロブロック30の上位の階層マクロブロック70のセル71、72(フリップフロップ又はマクロ)と第1、2境界セル群40〜43、44〜47とをそれぞれ接続するためのパスである。
【0032】
端子群51、52は、例えば、第1端子51と、第2端子52とに分けられる。第1、2端子51、52は、対象階層マクロブロック30の境界31で第1、2境界パス53、54上にそれぞれ設けられる端子である。
【0033】
内部セル群48、49は、階層マクロ内部領域63に配置される。この内部セル群48、49は、初段、最終段以外のセル(フリップフロップ又はマクロ)を表している。
【0034】
内部パス55は、階層マクロ内部領域63に配置される。この内部パス55は、配線と配線上に設けられる論理ゲートとを含んでいる。内部パス55は、内部セル群48、49に接続されるパスである。
【0035】
中継パス56は、階層マクロ内部領域63に配置される。この中継パス56は、配線と配線上に設けられる論理ゲートとを含んでいる。中継パス56は、内部パス55と、第1、2境界セル群40〜43、44〜47のうちの少なくとも1つのセル(例えばセル47とする)と内部セル群48、49のうちの少なくとも1つのセル(例えばセル49とする)とを接続するためのパスである。
【0036】
図4は、本発明の実施形態による半導体集積回路階層設計方法に適用されるコンピュータ10の構成を示すブロック図である。そのコンピュータ10は、制御部11と、記憶部12と、表示部を具備している。
【0037】
制御部11としては、CPU(Central Processing Unit)が例示され、記憶部12としては、記録媒体であるメモリが例示される。記憶部12には、コンピュータに実行させるためのコンピュータプログラム13が記憶されている。制御部11は、起動時などに記憶部12からコンピュータプログラム13を読み取って実行し、その実行結果を表示部に表示する。
【0038】
制御部11は、回路図データ生成部21と、階層マクロブロック生成部22と、回路情報抽出部23と、領域決定部24と、境界セルレイアウト部25と、階層マクロ内レイアウト部26と、上位階層レイアウト部27と、シミュレーション部28とを備えている。記憶部12は、セル、配線、端子を含む配線要素に関する情報(パラメータ)が格納されたライブラリ14を備えている。そのパラメータは、例えば、配線要素(配線、セル)の面積を含んでいる。
【0039】
図5は、本発明の実施形態による半導体集積回路階層設計方法を示すフローチャートである。
【0040】
(S1;回路図データ生成処理)
回路図データ生成部21は、半導体集積回路を機能毎に階層化した回路を表す複数の回路図データを生成する。
【0041】
(S2;階層マクロブロック生成処理)
図6に示されるように、階層マクロブロック生成部22は、複数の回路図データのそれぞれに対して、チップ全体を階層的に分割したレイアウト領域である複数の階層マクロブロックを生成する。
【0042】
(S3;回路情報抽出処理)
回路情報抽出部23は、複数の階層マクロブロックのうちの対象階層マクロブロック30に対する回路図データが表す回路の中から、前述の第1、2境界セル群40〜43、44〜47、第1、2境界パス53、54、第1、2端子51、52、内部セル群48、49、内部パス55、中継パス56(図3参照)を回路情報として抽出する。同時に、対象階層マクロブロック30の上位の階層マクロブロック70に対する回路図データが表す回路の中から、セル71、72を回路情報として抽出する。
【0043】
(S4;領域決定処理)
図7に示されるように、領域決定部24は、境界回路領域61と、対象階層マクロブロック30内で境界回路領域61を囲う境界セル領域62と、階層マクロ内部領域63とを決定する。
【0044】
ここで、境界回路領域61、境界セル領域62、階層マクロ内部領域63の決定方法について説明する。
【0045】
領域決定部24は、対象階層マクロブロック30に対する回路図データから、境界回路領域61に配置される第1配線要素(第1、2端子51、52、第1、2境界パス53、54)の数を取得し、ライブラリ14に格納されたパラメータから、その第1配線要素の面積を取得する。領域決定部24は、境界セル領域62に配置される第2配線要素(第1、2境界セル群40〜43、44〜47)の数を取得し、ライブラリ14に格納されたパラメータから、その第2配線要素の面積を取得する。領域決定部24は、階層マクロ内部領域63に配置される第3配線要素(内部セル群48、49、内部パス55、中継パス56)の数を取得し、ライブラリ14に格納されたパラメータから、その第3配線要素の面積を取得する。領域決定部24は、境界回路領域61、境界セル領域62、階層マクロ内部領域63のそれぞれ対して、第1〜3配線要素の数に応じた面積を加算し、配置に必要な合計面積を割り出す。
【0046】
領域決定部24は、上位の階層マクロブロック70のセル71、72の位置と、境界回路領域61に対する合計面積とを考慮して、上位の階層マクロブロック70のセル71、72の近辺であり、且つ、対象階層マクロブロック30の境界31の一部分32から対象階層マクロブロック30の内部の方向に延びる境界回路領域61を決定する。次に、領域決定部24は、境界セル領域62に対する合計面積を考慮して、対象階層マクロブロック30内で境界回路領域61を囲う境界セル領域62を決定する。次に、領域決定部24は、対象階層マクロブロック30の境界回路領域61、境界セル領域62以外の領域である階層マクロ内部領域63を決定する。
【0047】
(S5;境界セルレイアウト処理)
境界セルレイアウト部25は、境界回路領域61、境界セル領域62、階層マクロ内部領域63にそれぞれ第1〜3配線要素を仮配置する。この場合、予め決められたタイミング制約及び遅延条件を考慮して、境界回路領域61、境界セル領域62、階層マクロ内部領域63のそれぞれに対して、第1〜3配線要素が配置される配置場所(座標)を決定し、その配置場所に関する情報を記憶部12に格納しておく。
【0048】
図8に示されるように、境界セルレイアウト部25は、境界セル領域62の配置場所に関する情報に従って、第1、2境界セル群40〜43、44〜47を境界セル領域62に配置する。例えば、境界回路領域61を介して第1境界セル群40〜43と第2境界セル群44〜47とが対向するように、第1、2境界セル群40〜43、44〜47を境界セル領域62に配置する。
【0049】
(S6;第1レイアウト禁止領域設定処理)
図9に示されるように、階層マクロ内レイアウト部26は、境界回路領域61と境界セル領域62とに対してセル及びパスの配置を禁止する第1のレイアウト禁止領域(図9の斜線部分参照)を設定する。
【0050】
(S7;階層マクロ内レイアウト処理)
図10に示されるように、階層マクロ内レイアウト部26は、記憶部12に格納された階層マクロ内部領域63の配置場所に関する情報に従って、第1のレイアウト禁止領域以外の領域である階層マクロ内部領域63に、内部セル群48、49と内部パス55と中継パス56とを配置する。
【0051】
(S8;第2レイアウト禁止領域設定処理)
図11に示されるように、上位階層レイアウト部27は、境界セル領域62と階層マクロ内部領域63とに対してセル及びパスの配置を禁止する第2のレイアウト禁止領域(図11の斜線部分参照)を設定する。
【0052】
(S9;上位階層レイアウト処理)
図12に示されるように、上位階層レイアウト部27は、対象階層マクロブロック30の上位の階層マクロブロック70にセル71、72を配置する同時に、記憶部12に格納された境界回路領域61の配置場所に関する情報に従って、第2のレイアウト禁止領域以外の領域である境界回路領域61に、第1、2端子51、52と第1、2境界パス53、54とを配置する。ここで、上位階層レイアウト部27は、記憶部12に格納された第1〜3配線要素の配置場所に関する情報を削除する。
【0053】
(S10;動作シミュレーション)
シミュレーション部28は、ライブラリ14に格納された情報やパラメータに基づいて動作シミュレーションを実行する。この動作シミュレーションにより、対象階層マクロブロック30に発生する抵抗値及び容量値に基づいて遅延値を算出する。
【0054】
(S11;検証処理)
シミュレーション部28は、遅延値が所望の値であるか否かを検証し、その結果を表示部に表示する。
【0055】
本発明の実施形態による半導体集積回路階層設計方法によれば、第1の効果として、対象階層マクロブロック30から他の階層マクロブロック(上位の階層マクロブロック70)へのパス(第1、2境界パス53、54)に対する配線間容量を従来に比べて抑制することができる。
【0056】
その理由として、対象階層マクロブロック30には境界回路領域61と境界セル領域62とが設けられ、境界回路領域61は境界セル領域62に囲まれている。従って、対象階層マクロブロック30から上位の階層マクロブロック70への第1、2境界パス53、54は境界回路領域61に限定される。このため、境界回路領域61で発生する配線間容量は、従来における配線抑制領域161で発生する配線間容量に比べて小さくなる。
【0057】
また、これを実現するために、境界セル領域62は、境界回路領域61と階層マクロ内部領域63とを分離する領域として設けられ、その境界セル領域62には、初段、最終段のセルを表す第1、2境界セル群40〜43、44〜47が配置される。従って、境界回路領域61には、対象階層マクロブロック30から上位の階層マクロブロック70への第1、2境界パス53、54が配置され、対象階層マクロブロック30から上位の階層マクロブロック70に接続されないパスは配置されない。このため、第1、2境界パス53、54間で発生する配線間容量に関しても、当該境界パス53、54を上位の階層マクロブロック70の一部としてみなすことにより、正確に見積もることができる。
【0058】
このように、本発明の実施形態による半導体集積回路階層設計方法によれば、対象階層マクロブロック30から他の階層マクロブロックへのパスに対する配線間容量を更に抑制することができる。
【0059】
本発明の実施形態による半導体集積回路階層設計方法によれば、第1の効果により配線間容量を正確に得られるため、第2の効果として、チップ全体で対象階層マクロブロック30の動作シミュレーションを行ったときと変わらない状態で、対象階層マクロブロック30単体で動作シミュレーションを行うことができる。
【0060】
本発明の実施形態による半導体集積回路階層設計方法によれば、第3の効果として、上位の階層マクロブロック70に対象階層マクロブロック30の境界回路領域61を加えたものと階層マクロ内部領域63とを同時にレイアウトするため、設計時間を短縮できる。
【0061】
その理由として、通常の階層設計方法では、回路規模の大きい対象階層マクロブロックのレイアウトが完了してから、同じく回路規模の大きい上位の階層マクロブロックのレイアウトに移行する。一方、本発明の実施形態による半導体集積回路階層設計方法によれば、対象階層マクロブロック30において、その内部と境界配線とが干渉しないように、回路規模の小さい境界回路領域61、境界セル領域62、階層マクロ内部領域63を決定し、階層マクロ内部領域63のレイアウトと、上位の階層マクロブロック70及び回路規模の小さい境界回路領域61のレイアウトとを並行に行うことができる。これにより、本発明では、境界配線の配線間容量を上位の階層マクロブロック70と同時に見積もることができるため、階層マクロ内部領域63のレイアウト完了を待たずして、上位の階層マクロブロック70のレイアウト・シミュレーションを行うことができる。
【0062】
なお、本発明の実施形態による半導体集積回路階層設計方法において、境界セル領域62が非常に小さい場合、境界回路領域61内の第1、2境界パス53、54と階層マクロ内部領域63内のパス(内部パス55、中継パス56)との間のクロストークの発生が防ぎきれない可能性がある。この場合、他の実施形態として、図13に示されるように、検証処理(S11)の後に、制御部11は、境界セル領域42上にシールド配線80を設ける工程を実施してもよい。この場合、境界セル領域42の一部又は全部が覆われる。
【0063】
また、本発明の実施形態による半導体集積回路階層設計方法において、従来の半導体集積回路階層設計方法と同様に、対象階層マクロブロック30の境界31(第1の境界31とする)に交わる境界(第2の境界とする)にシールド配線(図示しない)を設けてもよい。例えば、第2の境界付近で隣接するように、対象階層マクロブロック30の階層マクロ内部領域63に配線(内部配線)が配置され、対象階層マクロブロック30の上位の階層マクロブロック70に配線(外部配線)が配置される場合、それらの間に配線間容量が発生しないようにシールド配線が配置される。これにより、内部配線と外部配線との間のクロストークを防ぐことができる。
【符号の説明】
【0064】
10 コンピュータ、
11 制御部、
12 記憶部、
13 コンピュータプログラム、
14 ライブラリ、
21 回路図データ生成部、
22 階層マクロブロック生成部、
23 回路情報抽出部、
24 領域決定部、
25 境界セルレイアウト部、
26 階層マクロ内レイアウト部、
27 上位階層レイアウト部、
28 シミュレーション部、
30 対象階層マクロブロック、
31 境界、
32 一部分、
40〜43 第1境界セル群、
44〜47 第2境界セル群、
48、49 内部セル群、
51 第1端子、
52 第2端子、
53 第1境界パス、
54 第2境界パス、
55 内部パス、
56 中継パス、
61 境界回路領域、
62 境界セル領域、
63 階層マクロ内部領域、
70 上位の階層マクロブロック、
71、72 セル、
80 シールド配線、
100 シールド配線、
111〜113 内部配線、
121、122 外部配線、
130 対象階層マクロブロック、
131、132 境界、
161 配線抑制領域、
162 内部領域、
170 上位の階層マクロブロック
【特許請求の範囲】
【請求項1】
制御部を備えたコンピュータが実行する方法であって、
前記制御部が、チップ全体を階層的に分割したレイアウト領域である複数の階層マクロブロックを生成する工程と、
前記制御部が、前記複数の階層マクロブロックのうちの対象階層マクロブロックに対する回路図データが表す回路の中から、初段、最終段のセルを表す境界セル群と、前記対象階層マクロブロックの上位の階層マクロブロックのセルと前記境界セル群とをそれぞれ接続するための境界パス群とを抽出する工程と、
前記制御部が、前記対象階層マクロブロックの境界の一部分から前記対象階層マクロブロックの内部の方向に延びる境界回路領域と、前記対象階層マクロブロック内で前記境界回路領域を囲う境界セル領域と、前記対象階層マクロブロックの前記境界回路領域、前記境界セル領域以外の領域である階層マクロ内部領域とを決定する工程と、
前記制御部が、前記境界セル群を前記境界セル領域に配置する工程と、
前記制御部が、前記上位の階層マクロブロックにセルを配置すると同時に、前記境界回路領域に前記境界パス群を配置する工程と
を具備する半導体集積回路階層設計方法。
【請求項2】
更に、
前記制御部が、前記境界回路領域に配置する工程の前に、前記境界セル領域と前記階層マクロ内部領域とに対してセル及びパスの配置を禁止するレイアウト禁止領域を設定する工程
を具備し、
前記境界回路領域はレイアウト禁止領域以外の領域として、前記境界回路領域に配置する工程が実行される
請求項1に記載の半導体集積回路階層設計方法。
【請求項3】
前記抽出する工程は、
前記制御部が、前記対象階層マクロブロックに対する回路図データが表す回路の中から、前記対象階層マクロブロックの境界で前記境界パス群上に設けられる端子群を更に抽出し、
前記境界回路領域に配置する工程は、
前記制御部が、前記境界回路領域に前記端子群を更に配置する
請求項1又は2に記載の半導体集積回路階層設計方法。
【請求項4】
前記境界セル群、前記上位の階層マクロブロックのセルは、フリップフロップ又はマクロを表す
請求項1〜3のいずれかに記載の半導体集積回路階層設計方法。
【請求項5】
前記境界パス群は、配線と、その配線上に設けられる論理ゲートとを含む
請求項1〜4のいずれかに記載の半導体集積回路階層設計方法。
【請求項6】
前記抽出する工程は、
前記制御部が、初段、最終段以外のセルを表す内部セル群と、前記内部セル群に接続される内部パスと、前記境界セル群のうちの少なくとも1つのセルと前記内部セル群のうちの少なくとも1つのセルとを接続するための中継パスとを更に抽出し、
更に、
前記制御部が、前記階層マクロ内部領域に前記内部セル群と前記内部パスと前記中継パスとを配置する工程
を具備する請求項1〜5のいずれかに記載の半導体集積回路階層設計方法。
【請求項7】
更に、
前記制御部が、前記階層マクロ内部領域に配置する工程の前に、前記境界回路領域と前記境界セル領域とに対してセル及びパスの配置を禁止するレイアウト禁止領域を設定する工程
を具備し、
前記階層マクロ内部領域はレイアウト禁止領域以外の領域として、前記階層マクロ内部領域に配置する工程が実行される
請求項6に記載の半導体集積回路階層設計方法。
【請求項8】
前記内部セル群は、フリップフロップ又はマクロを表す
請求項6又は7に記載の半導体集積回路階層設計方法。
【請求項9】
前記内部パス、前記中継パスは、配線と、その配線上に設けられる論理ゲートとを含む
請求項6〜8のいずれかに記載の半導体集積回路階層設計方法。
【請求項10】
更に、
前記制御部が、半導体集積回路を機能毎に階層化した回路を表す複数の回路図データを生成する工程
を具備し、
前記複数の階層マクロブロックは、前記複数の回路図データのそれぞれに対して、前記チップ全体を階層的に分割したレイアウト領域として生成される
請求項1〜9のいずれかに記載の半導体集積回路階層設計方法。
【請求項11】
更に、
動作シミュレーションにより、前記対象階層マクロブロックに発生する抵抗値及び容量値に基づいて遅延値を算出する工程と、
前記遅延値が所望の値であるか否かを検証する工程と
を具備する請求項1〜10のいずれかに記載の半導体集積回路階層設計方法。
【請求項12】
更に、
前記制御部が、前記境界回路領域と前記境界セル領域との間にシールド配線を設ける工程
を具備する請求項1〜11のいずれかに記載の半導体集積回路階層設計方法。
【請求項13】
チップ全体が階層的に分割されたレイアウト領域である複数の階層マクロブロックと、
前記複数の階層マクロブロックのうちの対象階層マクロブロックの境界の一部分から前記対象階層マクロブロックの内部の方向に延びる境界回路領域と、
前記対象階層マクロブロック内で前記境界回路領域を囲う境界セル領域と、
前記対象階層マクロブロックの前記境界回路領域、前記境界セル領域以外の領域である階層マクロ内部領域と、
前記境界セル領域に配置され、初段、最終段のセルを表す境界セル群と、
前記境界回路領域に配置され、前記対象階層マクロブロックの上位の階層マクロブロックのセルと前記境界セル群とをそれぞれ接続するための境界パス群と
を具備する半導体集積回路。
【請求項14】
チップ全体を階層的に分割したレイアウト領域である複数の階層マクロブロックを生成する階層マクロブロック生成部と、
前記複数の階層マクロブロックのうちの対象階層マクロブロックに対する回路図データが表す回路の中から、初段、最終段のセルを表す境界セル群と、前記対象階層マクロブロックの上位の階層マクロブロックのセルと前記境界セル群とをそれぞれ接続するための境界パス群とを抽出する回路情報抽出部と、
前記対象階層マクロブロックの境界の一部分から前記対象階層マクロブロックの内部の方向に延びる境界回路領域と、前記対象階層マクロブロック内で前記境界回路領域を囲う境界セル領域と、前記対象階層マクロブロックの前記境界回路領域、前記境界セル領域以外の領域である階層マクロ内部領域とを決定する領域決定部と、
前記境界セル群を前記境界セル領域に配置する境界セルレイアウト部と、
前記上位の階層マクロブロックにセルを配置すると同時に、前記境界回路領域に前記境界パス群を配置する上位階層レイアウト部と
を具備する半導体集積回路階層設計装置。
【請求項1】
制御部を備えたコンピュータが実行する方法であって、
前記制御部が、チップ全体を階層的に分割したレイアウト領域である複数の階層マクロブロックを生成する工程と、
前記制御部が、前記複数の階層マクロブロックのうちの対象階層マクロブロックに対する回路図データが表す回路の中から、初段、最終段のセルを表す境界セル群と、前記対象階層マクロブロックの上位の階層マクロブロックのセルと前記境界セル群とをそれぞれ接続するための境界パス群とを抽出する工程と、
前記制御部が、前記対象階層マクロブロックの境界の一部分から前記対象階層マクロブロックの内部の方向に延びる境界回路領域と、前記対象階層マクロブロック内で前記境界回路領域を囲う境界セル領域と、前記対象階層マクロブロックの前記境界回路領域、前記境界セル領域以外の領域である階層マクロ内部領域とを決定する工程と、
前記制御部が、前記境界セル群を前記境界セル領域に配置する工程と、
前記制御部が、前記上位の階層マクロブロックにセルを配置すると同時に、前記境界回路領域に前記境界パス群を配置する工程と
を具備する半導体集積回路階層設計方法。
【請求項2】
更に、
前記制御部が、前記境界回路領域に配置する工程の前に、前記境界セル領域と前記階層マクロ内部領域とに対してセル及びパスの配置を禁止するレイアウト禁止領域を設定する工程
を具備し、
前記境界回路領域はレイアウト禁止領域以外の領域として、前記境界回路領域に配置する工程が実行される
請求項1に記載の半導体集積回路階層設計方法。
【請求項3】
前記抽出する工程は、
前記制御部が、前記対象階層マクロブロックに対する回路図データが表す回路の中から、前記対象階層マクロブロックの境界で前記境界パス群上に設けられる端子群を更に抽出し、
前記境界回路領域に配置する工程は、
前記制御部が、前記境界回路領域に前記端子群を更に配置する
請求項1又は2に記載の半導体集積回路階層設計方法。
【請求項4】
前記境界セル群、前記上位の階層マクロブロックのセルは、フリップフロップ又はマクロを表す
請求項1〜3のいずれかに記載の半導体集積回路階層設計方法。
【請求項5】
前記境界パス群は、配線と、その配線上に設けられる論理ゲートとを含む
請求項1〜4のいずれかに記載の半導体集積回路階層設計方法。
【請求項6】
前記抽出する工程は、
前記制御部が、初段、最終段以外のセルを表す内部セル群と、前記内部セル群に接続される内部パスと、前記境界セル群のうちの少なくとも1つのセルと前記内部セル群のうちの少なくとも1つのセルとを接続するための中継パスとを更に抽出し、
更に、
前記制御部が、前記階層マクロ内部領域に前記内部セル群と前記内部パスと前記中継パスとを配置する工程
を具備する請求項1〜5のいずれかに記載の半導体集積回路階層設計方法。
【請求項7】
更に、
前記制御部が、前記階層マクロ内部領域に配置する工程の前に、前記境界回路領域と前記境界セル領域とに対してセル及びパスの配置を禁止するレイアウト禁止領域を設定する工程
を具備し、
前記階層マクロ内部領域はレイアウト禁止領域以外の領域として、前記階層マクロ内部領域に配置する工程が実行される
請求項6に記載の半導体集積回路階層設計方法。
【請求項8】
前記内部セル群は、フリップフロップ又はマクロを表す
請求項6又は7に記載の半導体集積回路階層設計方法。
【請求項9】
前記内部パス、前記中継パスは、配線と、その配線上に設けられる論理ゲートとを含む
請求項6〜8のいずれかに記載の半導体集積回路階層設計方法。
【請求項10】
更に、
前記制御部が、半導体集積回路を機能毎に階層化した回路を表す複数の回路図データを生成する工程
を具備し、
前記複数の階層マクロブロックは、前記複数の回路図データのそれぞれに対して、前記チップ全体を階層的に分割したレイアウト領域として生成される
請求項1〜9のいずれかに記載の半導体集積回路階層設計方法。
【請求項11】
更に、
動作シミュレーションにより、前記対象階層マクロブロックに発生する抵抗値及び容量値に基づいて遅延値を算出する工程と、
前記遅延値が所望の値であるか否かを検証する工程と
を具備する請求項1〜10のいずれかに記載の半導体集積回路階層設計方法。
【請求項12】
更に、
前記制御部が、前記境界回路領域と前記境界セル領域との間にシールド配線を設ける工程
を具備する請求項1〜11のいずれかに記載の半導体集積回路階層設計方法。
【請求項13】
チップ全体が階層的に分割されたレイアウト領域である複数の階層マクロブロックと、
前記複数の階層マクロブロックのうちの対象階層マクロブロックの境界の一部分から前記対象階層マクロブロックの内部の方向に延びる境界回路領域と、
前記対象階層マクロブロック内で前記境界回路領域を囲う境界セル領域と、
前記対象階層マクロブロックの前記境界回路領域、前記境界セル領域以外の領域である階層マクロ内部領域と、
前記境界セル領域に配置され、初段、最終段のセルを表す境界セル群と、
前記境界回路領域に配置され、前記対象階層マクロブロックの上位の階層マクロブロックのセルと前記境界セル群とをそれぞれ接続するための境界パス群と
を具備する半導体集積回路。
【請求項14】
チップ全体を階層的に分割したレイアウト領域である複数の階層マクロブロックを生成する階層マクロブロック生成部と、
前記複数の階層マクロブロックのうちの対象階層マクロブロックに対する回路図データが表す回路の中から、初段、最終段のセルを表す境界セル群と、前記対象階層マクロブロックの上位の階層マクロブロックのセルと前記境界セル群とをそれぞれ接続するための境界パス群とを抽出する回路情報抽出部と、
前記対象階層マクロブロックの境界の一部分から前記対象階層マクロブロックの内部の方向に延びる境界回路領域と、前記対象階層マクロブロック内で前記境界回路領域を囲う境界セル領域と、前記対象階層マクロブロックの前記境界回路領域、前記境界セル領域以外の領域である階層マクロ内部領域とを決定する領域決定部と、
前記境界セル群を前記境界セル領域に配置する境界セルレイアウト部と、
前記上位の階層マクロブロックにセルを配置すると同時に、前記境界回路領域に前記境界パス群を配置する上位階層レイアウト部と
を具備する半導体集積回路階層設計装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2011−232920(P2011−232920A)
【公開日】平成23年11月17日(2011.11.17)
【国際特許分類】
【出願番号】特願2010−101878(P2010−101878)
【出願日】平成22年4月27日(2010.4.27)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】
【公開日】平成23年11月17日(2011.11.17)
【国際特許分類】
【出願日】平成22年4月27日(2010.4.27)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】
[ Back to top ]