(57)【要約】【課題】ブロック間のクロストークをより適切に評価して適切な設計を実現する。【解決手段】複数のブロック11,12,13を有する半導体集積回路10を設計するための集積回路設計装置70であって、各ブロックの、隣接するブロックの隣接境界部分に仮想ノイズ源91,92,93を設定する仮想ノイズ源設定部74と、仮想ノイズ源91,92,93からの影響を考慮して各ブロックの設計を行うブロック設計部71と、設計した複数の階層ブロックを組み上げる組上げ設計部72と、を備える。【選択図】図９
2008210858.tif 000002
【特許請求の範囲】
【請求項１】
複数のブロックを有する半導体集積回路を、前記複数のブロックごとに設計した後、設計した前記複数のブロックを組み上げて前記半導体集積回路を設計する半導体集積回路の設計方法であって、
各ブロックの、隣接するブロックの隣接境界部分に仮想ノイズ源を設定し、
隣接ブロックの前記仮想ノイズ源からの影響を考慮して各ブロックの設計を行うことを特徴とする半導体集積回路の設計方法。
【請求項２】
前記仮想ノイズ源の位置及びノイズ強度は、設計者により予め設定される請求項１に記載の半導体集積回路の設計方法。
【請求項３】
各ブロック内において、隣接ブロックの前記仮想ノイズ源による配線クロストークを解析し、解析結果を考慮して各ブロックの設計を行う請求項１に記載の半導体集積回路の設計方法。
【請求項４】
前記各ブロックにおける配線クロストークの解析結果に応じて、クロストークエラーが発生しないように、デザインデータを変更する請求項３に記載の半導体集積回路の設計方法。
【請求項５】
複数のブロックを有する半導体集積回路を設計するための集積回路設計装置であって、
各ブロックの、隣接するブロックの隣接境界部分に仮想ノイズ源を設定する仮想ノイズ源設定部と、
前記仮想ノイズ源からの影響を考慮して各ブロックの設計を行うブロック設計部と、
設計した前記複数の階層ブロックを組み上げる組上げ設計部と、を備えることを特徴とする半導体集積回路の設計装置。
【請求項６】
前記仮想ノイズ源設定部は、外部からの入力により前記仮想ノイズ源の位置及びノイズ強度を設定する請求項５に記載の半導体集積回路の設計装置。
【請求項７】
各ブロック内において、隣接ブロックの前記仮想ノイズ源による配線クロストークを解析するクロストーク解析部を更に備え、解析結果を考慮して各ブロックの設計を行う請求項５に記載の半導体集積回路の設計装置。
【請求項８】
コンピュータに、複数のブロックを有する半導体集積回路を、前記複数のブロックごとに設計した後、設計した前記複数のブロックを組み上げて前記半導体集積回路を設計するように動作させるＣＡＤプログラムであって、
各ブロックの、隣接するブロックの隣接境界部分に仮想ノイズ源を設定し、
隣接ブロックの前記仮想ノイズ源からの影響を考慮して各ブロックの設計を行うように動作させることを特徴とするＣＡＤプログラム。
【請求項９】
外部より入力される前記仮想ノイズ源の位置及びノイズ強度を設定するようにする請求項８に記載のＣＡＤプログラム。
【請求項１０】
各ブロック内において、隣接ブロックの前記仮想ノイズ源による配線クロストークを解析し、解析結果を考慮して各ブロックの設計を行うようにする請求項８に記載のＣＡＤプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計方法、設計装置及びＣＡＤプログラムに関する。
【背景技術】
【０００２】
大規模半導体集積回路（ＬＳＩ）のマスク設計の規模は、年々増大する傾向にあり、それに応じてマスク設計に要する時間も増大している。近年、１個のＬＳＩに多数の機能を組み込むことが行われており、それに応じてマスク設計に要する時間が長くなる一方、タイムリィに製品を提供するため設計開始から製品（ＬＳＩ）出荷までのリードタイムは短縮することが要求されている。そこで、設計データを一括して取り扱うのではなく、機能ごとの「（階層）ブロック」に分割して設計を行うことにより、設計完了までの時間を短縮することが行われている。このような設計方法を階層設計又はブロック設計と呼んでいる。
【０００３】
図１は、階層設計を説明する図である。図１の（Ａ）に示すように、ＬＳＩ１０を設計する場合、機能的に１つのブロックとして設計することが可能なブロック（ＢＬＫ１）１２及び（ＢＬＫ２）１３と、ＬＳＩ１０内のブロック１２、１３を除く部分（ＢＬＫＡ）１１と、を別々に設計する。そして、各ブロックの設計が終了した時点で、ＢＬＫＡ、ＢＬＫ１、ＢＬＫ２を組み上げてＬＳＩ１０全体の設計が完了する。なお、各ブロックの設計は、ブロックごとのスペースや、ブロック間の入出力信号を決めた上で行われる。
【０００４】
図１の（Ｂ）は、上記のブロックの階層構造を示す。ここでは、ブロック（ＢＬＫ１）１２、（ＢＬＫ２）１３を除く部分１１を含むＬＳＩ全体をトップ階層（ＢＬＫＡ）１０とし、それにＢＬＫ１、ＢＬＫ２が含まれるものとして表現する。なお、ここでは、トップ階層（ＢＬＫＡ）１０に、同じ階層の２個のＢＬＫ１及びＢＬＫ２が含まれる例を示したが、ブロックの個数は任意であり、階層も３層以上でもよい。
【０００５】
図２は、階層設計フローを示す図である。図示のように、論理設計データであるネットリスト２０に基づいて、ＬＳＩの全機能部分の配置を決定するフロアプラン２１を行い、全体の配置を決定する。その上で、ブロックごとに設計を行う部分を決定する階層分割２２を行う。階層分割２２では、ブロックごとのスペース及び位置や、ブロック間の入出力信号など、各ブロックを設計する上で必要なインターフェース事項を決定する。
【０００６】
そして、トップ階層設計２３、ブロック１設計２４及びブロック２設計２５を並行して行う。これにより、トップ階層設計２３、ブロック１設計２４及びブロック２設計２５を順番に設計するより、設計時間を短縮できる。
【０００７】
トップ階層設計２３、ブロック１設計２４及びブロック２設計２５が終了すると、ブロックを統合する階層組上げ２６を行う。そして、組上げられたＬＳＩ全体について各種解析２７を行う。この解析の１つにクロストーク解析があり、解析結果からクロストークエラーが発生すると判定された場合２８には、トップ階層設計２３、ブロック１設計２４及びブロック２設計２５に戻り、再設計を行う。この再設計は、すべてを再設計する必要はなく、クロストークエラーが発生すると判定された部分について再設計を行えばよいが、設計に余裕のない場合にはクロストークエラーが発生しないように変更するには他の部分についても変更を生じる場合が多く、大規模な再設計になる場合もある。
【０００８】
上記のように、階層分割２２では各ブロックを設計する上で必要なインターフェース事項を決定するが、それについて簡単に説明する。各ブロックは単独で動作するのではないため、他のブロックと信号の入出力を行う必要があり、入出力信号のインターフェース位置は予め決定される。各ブロックを設計する場合には、インターフェース事項を遵守した上で、他のブロックに影響しないように、ブロック内で設計を完了することが望ましい。言い換えれば、各ブロックでの設計は、インターフェース事項を遵守すれば、他のブロックは存在せず、ブロック間での相互作用はないものとして設計が行われる。しかし、他のブロックに影響する事態が発生する場合がある。
【０００９】
図３は、このような事態を説明する図である。図３の（Ａ）に示すように、ブロック３０を内部に有するブロック（階層）で、上下に伸びる配線３１を設ける必要が生じた場合、他のブロック（この場合はブロック３０）に影響する事態を回避するために、ブロック３０を迂回するように配線３１を設ける。これであれば、ブロック３０の設計には影響しない。しかし、図３の（Ａ）の配線３１は長くなるため、遅延時間などの関係で許容できない場合がある。そのような場合には、配線３１が別のブロック３０の上を通過するように配置する。これをフィードスルーと呼んでいる。
【００１０】
フィードスルーを行うと、通過されるブロック３０は、配線３１を設けるスペースが必要になるだけでなく、配線３１に起因するクロストークの影響も受ける。そこで、フィードスルーが生じる場合には、ブロック内の信号配線層とは異なる層を通過させるなどの対策が行われる。
【００１１】
図４は、フィードスルーの対策例を示す図である。図４の（Ａ）において、電源配線層にＶＤＤ３３とＶＳＳ３４が配置され、その下の層にブロック内の信号配線３５が配置される。フィードスルー配線３２は、電源配線層の上に配置され、配線３２の両側にシールド配線３６、３７が配置される。これにより、ブロック３０へのフィードスルー配線３２の影響が低減される。図４の（Ｂ）は、図４の（Ａ）の配線構造の上面図である。
【００１２】
図５は、クロストークエラーを説明する図である。図５の（Ａ）に示すように、２本の信号線４１、４２が平行に伸びていると、信号線４１と４２の間に寄生容量４３が形成される。図５の（Ｂ）に示すように、信号線４１の信号１のレベルが変化すると、信号線４２の信号２は寄生容量のために信号１のレベル変化の影響を受け、ノイズが発生する。ノイズが大きいと信号２が変化したと判定され、誤動作（エラー）が発生する。これがクロストークエラーである。信号線４１と４２の間に寄生容量４３は、平行に伸びている長さが長いほど大きくなり、発生するノイズも大きくなる。
【００１３】
前述のように、各ブロックの設計は、インターフェース事項を遵守した上で行われる限り、ブロック間での相互作用はないものとして行われる。しかし、隣接するブロックの境界部分に長く伸びる配線が存在すると、クロストークエラーが発生する。図６は、これを説明する図である。
【００１４】
図６に示すように、ブロック３０を内部に有するブロック（階層）で、ブロック３０との境界に沿って伸びる信号線４４が設けられた場合、ブロック３０内に信号線４４に平行に伸びる信号線４５を設けると、信号線４４と４５の間でクロストークエラーが発生する。もちろん、このような境界に沿って伸びる信号線４４が設けられない場合もあり、むしろそのような場合が大部分であるが、もしそのような信号線４４が設けられクロストークエラーが発生すると判定された場合には、再設計することが必要である。
【００１５】
このような再設計は、予期せぬ設計時間の増大を招き、納期の遅れなどの問題を生じる。そこで、このような事態を確実に回避するために、ブロックの周囲にシールド配線を配置することが行われている。
【００１６】
図７は、隣接するブロックとのクロストークエラーを防止するためのシールド配線を説明する図である。図５の（Ａ）において、第１の方向に伸びる信号線５１が第１の信号配線層に配置され、第２の方向に伸びる信号線５３が第２の信号配線層に配置され、第１の方向に伸びる信号線５２が第３の信号配線層に配置される。そして、ブロックの周囲の境界部分にシールド配線を配置する。具体的には、第１の信号配線層の両端には２本のシールド配線５４、５５が配置され、第２の信号配線層の両端には２本のシールド配線５６（５）が配置され、第３の信号配線層の両端には２本のシールド配線５７、５８が配置される。
【００１７】
図７の（Ｂ）は、図７の（Ａ）の上面図であり、シールド配線がブロック３０の周辺の境界部分に配置される。
【００１８】
図８は、従来のマスク設計フローを示す。ステップ６１では、ブロックの切り出しを行い、ステップ６２でシールドを作成し、ステップ６３でインスタンス（回路要素）の配置及び配線を行い、ステップ６４でブロック内のクロストーク解析を行い、ステップ６５でブロックを組上げ、ステップ６６で全体でのクロストーク解析を行い、ステップ６７で不十分な部分について手戻り（マニュアル）修正を行っていた。ここで、ステップ６２で強力なシールドを配置すれば、ステップ６７における手戻り修正は生じないようにすることができる。
【００１９】
従来の設計手法については、例えば、特許文献１から３などに記載されている。
【００２０】
【特許文献１】特開平１１−５４６２８号公報
【特許文献２】特開平６−１８０７３３号公報
【特許文献３】特開２０００−２１９８８号
【発明の開示】
【発明が解決しようとする課題】
【００２１】
上記のように、複数のブロックを有するＬＳＩの従来のマスク設計では、各ブロックの設計は独立して行われるため、隣接する他のブロックの境界部分については考慮することができず、隣接する他のブロックの境界部分を含めてクロストーク解析を行っていなかった。そのため、何ら対策を講じずにブロックごとに設計を行うと、組上げて全体についてクロストーク解析を行うと問題が発生し、再設計（手戻り）が発生していた。
【００２２】
そこで、設計した複数のブロックを組上げた時にクロストーク解析により問題が生じないように、上記のように各ブロックの周囲の境界部分にシールド配線を配置する対策が行われている。しかし、このような対策は、各ブロックの周囲の境界部分に配置するシールド配線のために、その分設計工数が増加し、各ブロックが使用できるスペースが減少するという問題を生じる。言い換えれば、再設計を生じないように、過剰な設計を行っていたといえる。
【００２３】
本発明は、このような問題を解決して、ブロック間のクロストークをより適切に評価して適切な設計が行えるようにすることを目的とする。
【課題を解決するための手段】
【００２４】
上記目的を実現するため、本発明のブロックの外側、すなわち隣接する隣接ブロックの隣接境界部分に仮想ノイズ源を設定して、仮想ノイズ源からの影響を考慮して、すなわちクロストーク解析を行って各ブロックの設計を行うことを特徴とする。
【００２５】
仮想ノイズ源の位置及びノイズ強度は、設計者により外部から予め設定されるようにする。
【００２６】
各ブロックにおける配線クロストークの解析結果に応じて、必要であれば、クロストークエラーが発生しないように、デザインデータを変更してもよい。
【００２７】
前述のように、従来はブロック外のノイズ源についてはまったく考慮せずに設計を行っていたために複数のブロックを組上げた時にクロストークエラーが発生して、手戻り（再設計）が必要になったり、ブロック外のノイズ源の影響を全く受けないようにするために、ブロックの周囲にシールドを形成していたためにスペースを無駄にしていた。これに対して、本発明によれば、ブロック外に仮想ノイズ源を設定してそれを考慮して設計を行うので、クロストークを考慮したより適切な設計が可能になる。
【発明の効果】
【００２８】
本発明によれば、複数のブロックを組上げた時の手戻り（再設計）を防止できると共に、不必要にシールドを設けることがないので、スペースをより効率的に使用してより適切な設計が行えるようになる。
【発明を実施するための最良の形態】
【００２９】
本発明は、ＬＳＩマスク設計ＣＡＤ装置の形で実現され、ＣＡＤ装置を利用しての本発明の設計方法、本発明の方法を実行できるようにしたＣＡＤ装置、すなわちマスク設計装置や、本発明の検証方法を行うようにＣＡＤ装置にインストールされるプログラムを対象とする。
【００３０】
図９は、本発明のマスク設計装置の構成を示すブロック図である。図示のように、マスク設計装置７０は、ブロック設計部７１、組上げ設計部７２、クロストーク解析部７３、及び仮想ノイズ設定部７４を備え、クロストーク解析部７３は、仮想ノイズ設定部７４により設定された仮想ノイズを考慮してクロストーク解析を行う。
【００３１】
図１０は、本発明のマスク設計方法の設計フロー図である。ステップ８１では、ブロックの切り出しを行い、ステップ８２で各ブロックの外側に仮想ノイズ源を設定し、ステップ８３でインスタンス（回路要素）の配置及び配線を行い、ステップ８４で各ブロック内のクロストーク解析を各ブロックの外側の仮想ノイズ源からのノイズを考慮して行い、ステップ８５でブロックを組上げ、ステップ８６で確認のために全体でのクロストーク解析を行う。本発明では、図８の従来例のような手戻り（マニュアル）修正は、基本的に行う必要がない。仮想ノイズ源は、位置及びノイズ源の強度をオペレータ（設計者）が設定する。
【００３２】
以下、仮想ノイズ源設定の具体例を説明する。
【００３３】
図１１は、仮想ノイズ源の例を示す図である。図１１の（Ａ）は、ブロック３０の周囲に仮想ノイズ源９１を設定した場合を示す。図１１の（Ａ）では、ブロック３０の周囲全体に亘って仮想ノイズ源９１が設けられているが、一部にのみ設けるようにしてもよい。また、仮想ノイズ源９１の強度は任意に設定される。
【００３４】
図１１の（Ａ）に示すように、ブロック３０内で周囲に沿って伸びる信号配線４５を設ける場合には、仮想ノイズ源９１とのクロストーク解析を行い、クロストークエラーを生じないように、すなわちあまり長くならないように設計を行う。
【００３５】
図１１の（Ｂ）は、ＬＳＩ１０の（階層）ブロック１１が２個のブロック１２、１３を含む場合を示す。ブロック１１の設計を行う場合には、ブロック１２、１３の部分に仮想ノイズ源９２、９３を設定する。上記と同様に、仮想ノイズ源９２、９３の位置と強度は任意に設定される。ブロック１１の設計を行う場合には、仮想ノイズ源９２、９３があるとしてクロストーク解析を行い、クロストークエラーを生じないように設計を行う。例えば、仮想ノイズ源９２に沿って伸びる信号配線９４、９５及び仮想ノイズ源９３に沿って伸びる信号配線９６は、クロストークエラーを生じないような長さにする。
【００３６】
図１２は、本発明の効果の例を説明する図である。図１２の（Ａ）は従来例を説明する図であり、この例では、ブロック３０外のノイズ源の影響を全く受けないようにするために、ブロック３０の周囲にシールド５４、５５、５６、５９を形成していた。そのために、ブロック３０の大きな部分がシールドに使用されることになる。
【００３７】
ここで、図１２の（Ａ）に示すように、ブロック３０の右側の外に長く伸びる信号配線９９が設けられ、ブロック３０の内部では右側のシールド５５に沿って信号配線９６、９７、９８が設けられたとする。シールド５５が設けられているので、信号配線９６、９７、９８には外部の信号配線９９とのクロストークエラーが発生することはない。
【００３８】
これに対して、本発明では、図１２の（Ｂ）に示すように、ブロック３０の右側に仮想ノイズ源として長く伸びる信号配線９９を設定する。ここで、ブロック３０の内部に右側エッジに沿って信号配線９６、９７、９８を設ける場合、信号配線９６は長いため、ブロック３０のエッジに沿って、すなわち信号配線９９に近接して設けるとクロストークエラーが発生するので、図示のようにエッジから離して設ける必要がある。これに対して、信号配線９７と９８は短いため、たとえブロック３０のエッジに沿って、すなわち信号配線９９に近接して設けてもクロストークエラーは発生しないので、図示のようにエッジに近接して設けることができる。なお、図１２の（Ｂ）で、信号配線９６とエッジの間に短いシールドを設けることも可能である。
【００３９】
図１２の（Ａ）と（Ｂ）を比較して明らかなように、本発明によればシールドを不必要に設けることがないので、ブロックのスペースを有効に使用でき、且つ手戻り（再設計）も生じない。
【００４０】
なお、仮想ノイズ源の位置及び強度は、任意に設定することができる。例えば、所定のブロックについて、隣接するブロックとのエッジに沿って延びる信号配線の長さは、エッジ長の３０％以下にするなどの条件を予め設定し、この条件を満たすように所定のブロックを設計するとする。この場合、所定のブロックに隣接するブロックを設計する場合には、所定のブロックにおける仮想ノイズ源を小さく設定することができる。
【産業上の利用可能性】
【００４１】
本発明は、ブロックに分割して半導体集積回路を設計するのであればどのような場合にも適用可能である。
【図面の簡単な説明】
【００４２】
【図１】図１は階層設計を説明する図である。
【図２】図２は階層設計フローを示す。
【図３】図３はフィードスルーを説明する図である。
【図４】図４はシールド配線（電源）の構成例を示す。
【図５】図５はクロストークを説明する図である。
【図６】図６はブロック間のクロストークを説明する図である。
【図７】図７はシールド配線（信号配線）の構成例を示す。
【図８】図８は従来の設計フローを示す。
【図９】図９は本発明の設計装置の構成を示すブロック図である。
【図１０】図１０は本発明の設計フローを示す。
【図１１】図１１は本発明による仮想ノイズ源の例を示す。
【図１２】図１２は本発明の効果を説明する図である。
【符号の説明】
【００４３】
７０    設計装置
７１    ブロック設計部
７２    組上げ設計部
７３    クロストーク解析部
７４    仮想ノイズ源設定部
【図１】
2008210858.tif 000003
【図２】
2008210858.tif 000004
【図３】
2008210858.tif 000005
【図４】
2008210858.tif 000006
【図５】
2008210858.tif 000007
【図６】
2008210858.tif 000008
【図７】
2008210858.tif 000009
【図８】
2008210858.tif 000010
【図９】
2008210858.tif 000011
【図１０】
2008210858.tif 000012
【図１１】
2008210858.tif 000013
【図１２】
2008210858.tif 000014