(57)【要約】【課題】クロストーク発生と判定される箇所が膨大で、修正には処理時間の増大や面積増大を招き、修正必要となった場合の手戻りが大きく工数がかかり、クロックなどのタイミング合わせ込みを実施した後であるので修正が難しい。【解決手段】並行配線長抽出手順においては、階層設計されたレイアウトに対し、レイアウトと並行配線長の制限値を記述する基準値とを入力として、各階層毎に隣接配線の並行配線長を抽出する。バウンダリ情報抽出手順においては、各階層のネットリストから階層を跨ぐ配線の接続関係を調べる。階層組み上げ手順においては、階層を跨ぐ隣接配線の同一ネットについて各階層毎に抽出した並行配線長を足し合わせて階層を跨ぐ並行配線長を計算する。並行配線長チェック手順においては、階層を跨ぐ並行配線長を定められた基準値と比較してクロストーク発生箇所を判定する。【選択図】図１１
2006252574.tif 000002
【特許請求の範囲】
【請求項１】
階層設計されたレイアウトに対し、前記レイアウトと並行配線長の制限値を記述する基準値とを入力として、各階層毎に隣接配線の並行配線長を抽出する並行配線長抽出手順と、
各階層のネットリストから階層を跨ぐ配線の接続関係を調べるバウンダリ情報抽出手順と、
階層を跨ぐ隣接配線の同一ネットについて各階層毎に抽出した並行配線長を足し合わせて階層を跨ぐ並行配線長を計算する階層組み上げ手順と、
階層を跨ぐ並行配線長を定められた基準値と比較してクロストーク発生箇所を判定する並行配線長チェック手順とを含むことを特徴とするクロストークチェック方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、基本論理セルあるいは機能マクロブロックをセル間配線で接続して構成される半導体集積回路について、そのレイアウト設計において、隣接した配線間で、片側の配線の信号遷移により発生するクロストークを検査するクロストークチェック方法に関する。
【背景技術】
【０００２】
従来技術を図１３〜図１５を用いて説明する。
【０００３】
クロストークとは、隣接する配線間で発生する現象で、隣接配線の一方の配線の信号変化が他方の配線の信号に影響を与える現象である。例を図１３（ａ），（ｂ）、図１４（ａ），（ｂ）に示す。
【０００４】
駆動セル１３００、配線１３０２、被駆動セル１３０１で構成されるパスを、クロストークによる影響を与える側（アグレッサ：aggressor）とし、駆動セル１３０４、配線１３０６、被駆動セル１３０５で構成されるパスを、クロストークによる影響を受ける側（ビクティム：victim）であるとして説明する。
【０００５】
クロストークを考慮していない設計手法では、配線１３０２と配線１３０６間に生じるカップリング容量は、容量１３０７及び容量１３０８のように対接地の容量として表現し、遅延計算、タイミング検証という手順で設計を行う。よって、駆動セル１３０４の出力信号波形１３０９や、被駆動セル１３０５の入力信号波形１３１０は、駆動セル１３０４が容量１３０８を持つ配線１３０６を駆動するという条件で計算されており、配線１３０６の配線遅延も、それら２つの信号波形から配線遅延１３１１として計算される。０.３５μｍや０.２５μｍぐらいまでは、このような設計手法でも、クロストークによる影響が微小であるために、遅延の面で実動作との違いはほとんどなかった。
【０００６】
しかし、上記カップリング容量を、接地でなく、容量１３１２のように、配線間の容量としてそのまま表し、遅延計算をした場合に得られる駆動セル１３０４の出力信号波形１３１３、被駆動セル１３０５の入力信号波形１３１４、及び出力信号波形１３１３と入力信号波形１３１４から計算される配線遅延１３１５は、それぞれ出力信号波形１３０９、入力信号波形１３１０、配線遅延１３１１とは異なってくる。駆動セル１３００と駆動セル１３０４の出力信号波形の遷移方向が同じ場合、例えば、共に０からＶＤＤに変化するような場合には、（式１）〜（式３）の関係が成り立ち、逆に、遷移方向が異なる場合には、（式４）〜（式６）の関係が成り立つ。ここで、信号波形傾きとは、電圧０からＶＤＤ、あるいは、ＶＤＤから０に信号が遷移する時間を意味する（立ち上がり、立ち下がりの勾配ではない）。
【０００７】
（式１）  出力信号波形１３０９の傾き ＞ 出力信号波形１３１３
（式２）  入力信号波形１３１０の傾き ＞ 入力信号波形１３１４
（式３）  配線遅延１３１１ ＞ 配線遅延１３１５
（式４）  出力信号波形１３０９の傾き ＜ 出力信号波形１３１３
（式５）  入力信号波形１３１０の傾き ＜ 入力信号波形１３１４
（式６）  配線遅延１３１１ ＜ 配線遅延１３１５
これら、（式１）〜（式６）の不等式の差は、カップリング容量１３１２が大きくなるほど大きくなる。さらに、クロストークの影響を受け、遅延変動やグリッチ（ひげ状のパルス）が発生する配線であるビクティム（victim）に対し、クロストークの影響を与える側の配線であるアグレッサ（aggressor）の信号波形傾き比率が大きいほど、この差は大きくなる。ここでいう信号波形傾き比率とは、以下の（式７）で計算される値である。
【０００８】
（式７）  信号波形傾き比率＝ビクティムの信号波形傾き／アグレッサの信号波形傾き
すなわち、出力信号波形１３１３の傾き／出力信号波形１３０３の傾きである。０.１８μｍや０.１０μｍと微細化が進むにつれ、カップリング容量が大きくなり、その結果、（式１）〜（式６）で表される不等式の左辺と右辺の差が大きくなり、タイミング設計上、その差を無視することができなくなる。
【０００９】
また、図１４（ａ），（ｂ）に示したように、クロストークにより発生したグリッチが原因で、誤動作を起こす場合もある。図１４（ａ），（ｂ）は、駆動セル１３０４の出力は変化しないで、駆動セル１３００の出力が変化した場合である。カップリング容量を接地で表現している図１４（ａ）の場合には、駆動セル１３０４の出力にグリッチがのることはない。
【００１０】
しかし、本来は、図１４（ｂ）のようにカップリング容量１３１２が原因で、駆動セル１３００の出力信号波形１３０３の変化により、駆動セル１３０４の出力にグリッチ１４０４が発生する。このグリッチ１４０４が大きい場合、配線１３０６、被駆動セル１３０５を伝播し、その後に繋がるフリップフロップ１４００にまで到達する。もし、そのグリッチがフリップフロップ１４００に到達したタイミングに、フリップフロップ１４００にクロックが入力された場合、本来、０であるフリップフロップの出力信号波形１４０３が、０からＶＤＤに遷移する信号１４０７として出力され、以降のパスの動作が所望のものではなくなる。
【００１１】
そこで、これらの問題に対応するために、市販ツールとして、レイアウト中にクロストークが発生しそうな箇所を抽出し、修正する方法（例えば、特許文献１参照）や、レイアウト後にクロストークが発生しているかどうかを検証する方法（例えば、特許文献２参照）が出てきている。
【００１２】
まず、レイアウト後にクロストーク発生箇所を抽出する方法について、図１５を用いて説明する。
【００１３】
Ｐ＆Ｒ手順１５００では、前述したように、配線間のカップリング容量を接地の容量として表現し、タイミングを考慮しながらレイアウトを行う手順で、レイアウト１５０１を生成する。ＲＣ抽出手順１５０２では、レイアウト１５０１を入力として、配線の抵抗、容量成分が記述されたＲＣ情報１５０３を抽出する。このＲＣ情報１５０３には、カップリング容量はそのまま配線間容量として記述されている。タイミング検証手順１５０４では、ＲＣ情報１５０３を基に、レイアウト１５０１を構成するセル及び配線の遅延時間を計算し、その計算された遅延情報を用いてタイミング解析を行う。このタイミング解析時に、セルの入出力端子毎に、信号が遷移するタイミングの情報を取得し、タイミング情報１５０５として出力する。ノイズ解析手順１５０６では、タイミング情報１５０５を基に、まず、すべてのセルについて、信号が遷移するタイミングを調べる。次に、カップリング容量が発生している隣接配線を抜き出し、隣接配線それぞれの駆動セルを抽出する。その抽出したセルについて、タイミング情報１５０５に記述の信号遷移タイミングを調べ、隣接配線間で、タイミングウインドウの重なりが生じているかどうかを判定する。もし、タイミングウインドウの重なりがある場合には、修正情報１５０７として出力する。以上のタイミング調査及びタイミングウインドウの重なりをすべてのセルに対し、評価する。このタイミングウインドウから、クロストークによる遅延変動がどうなっているかを計算し、静的なタイミング検証を行う。その結果、タイミングを満たさないパスと、どこが原因となっているかがレポートされ、修正すべき箇所が見つかる。
【００１４】
次に、レイアウト段階で、クロストークが発生する箇所を見つける方法について説明する。
【００１５】
一般的にレイアウトツールでは、上記したクロストークにより遅延変動が起こり、タイミングエラーが起こっているかどうかを調べる方法と、クロストークの予防策として、隣接配線の並行配線長に制限をかける手法が用いられる。タイミングエラー箇所を見つける方法は前述した方法と同じであるので、クロストークの予防策について説明する。
【００１６】
具体例を図１６、図１７を用いて説明する。
【００１７】
レイアウト１６００中に、図１７に示すような隣接配線間に並行配線があった場合に、その並行配線の長さが、レイアウト時に入力される基準値１６０１以下になっているかどうかを判定し、もし、基準値１６０１以上であれば、クロストーク発生箇所として、レイアウト修正される。
【特許文献１】特開平７−２４９０６５号公報（第２〜３頁、図１〜図５）
【特許文献２】特開平５−２４３３８３号公報（第２〜４頁、図１〜図７）
【発明の開示】
【発明が解決しようとする課題】
【００１８】
前述したようにクロストーク発生箇所をチェックする方法としてはいくつかある。レイアウト後に、タイミングを考慮してクロストーク発生箇所をチェックする方法では、修正必要となった場合の手戻りが大きく工数がかかる。また、レイアウト後では、クロックなどのタイミング合わせ込みを実施した後であるので、修正するのが難しい。
【００１９】
また、レイアウト時にクロストーク発生箇所をチェックする方法では、一律の並行配線長でチェックすることになるので、クロストーク発生と判定される箇所が膨大になる。その結果、その発生箇所を修正すると、処理時間の増大や面積増大を招く。
【課題を解決するための手段】
【００２０】
上記の課題を解決するために、基本論理セルまたは機能マクロブロックをセル間配線で接続し構成される半導体集積回路において、隣接した配線間で、片側の配線の信号遷移により発生するクロストークを検査するクロストークチェック方法について、本発明は以下のような手段を講じる。
【００２１】
本発明によるクロストークチェック方法は、それぞれ次のような内容の複数の手順を含むものとして構成されている。すなわち、並行配線長抽出手順とバウンダリ情報抽出手順と階層組み上げ手順と並行配線長チェック手順とである。前記の並行配線長抽出手順においては、階層設計されたレイアウトに対し、前記レイアウトと並行配線長の制限値を記述する基準値とを入力として、各階層毎に隣接配線の並行配線長を抽出する。また、前記のバウンダリ情報抽出手順においては、各階層のネットリストから階層を跨ぐ配線の接続関係を調べる。また、前記の階層組み上げ手順においては、階層を跨ぐ隣接配線の同一ネットについて各階層毎に抽出した並行配線長を足し合わせて階層を跨ぐ並行配線長を計算する。さらに、前記の並行配線長チェック手順においては、階層を跨ぐ並行配線長を定められた基準値と比較してクロストーク発生箇所を判定する。
【００２２】
この構成によれば、一律の並行配線長制限値で処理する従来技術では修正していた箇所を修正しなくても良くなり、余計なセル挿入やセルサイジングを抑制し、処理工数の削減を図れるとともに、面積増加・消費電力増加を抑制することができ、さらに階層設計されたデザインであっても、階層を展開した状態で並行配線長をチェックすることにより、クロストークの影響を軽減することが可能である。
【発明の効果】
【００２３】
本発明によれば、クロストークによる遅延時間の変動及びグリッチ発生箇所であって実際に必要な部分に限定して修正することになるので、従来手法よりも処理工数を削減し、面積増大・消費電力増大を抑制することができる。また、実際にクロストーク発生を起こしやすい箇所に限定して修正するので、製品不良発生率を低減することができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明にかかわるクロストークチェック方法の実施の形態を図面に基づいて説明する。
【００２５】
（実施の形態１）
本発明の実施の形態１におけるクロストークチェック方法について、図面を参照しながら説明する。
【００２６】
図１はレイアウト時のクロストーク発生箇所判定において、配線ピッチに応じて制限用の並行配線長を変える手法を表す図、図２は図１の具体例を表す図である。図１において、Ｓ１００はピッチ別並行配線長チェック手順、１００はピッチ別基準値である。図２において、２００〜２０７はセル、２０８はセル２００，２０２によって駆動される隣接配線が並行している部分の長さである並行配線長、２０９はセル２０４，２０６によって駆動される隣接配線の並行配線長、２１０及び２１１はピッチ別基準値１００に記述されているピッチ別の並行配線長制限値、２１２はセル２００，２０２によって駆動される隣接配線の配線ピッチ、２１３はセル２０４，２０６によって駆動される隣接配線の配線ピッチである。
【００２７】
最初に言葉の定義をしておく。配線ピッチとは、隣接配線の各配線中心間の距離を指す。
【００２８】
並行配線長抽出手順Ｓ１６００において、レイアウト１６００とピッチ別基準値１００から、隣接配線の並行配線長を抽出する。このとき、並行配線長抽出手順Ｓ１６００で参照する並行配線長制限値は、ピッチ別基準値１００に記述されたピッチ別の並行配線長制限値の最も小さい値である。
【００２９】
ピッチ別基準値１００について説明する。ピッチ別基準値１００には、配線ピッチ毎に異なる並行配線長制限値が記述されている。この配線ピッチ別の並行配線長制限値は、予め、"ｈｓｐｉｃｅ"などの回路シミュレーターを用いて求められたものである。配線ピッチと前記並行配線長制限値の関係について説明する。図２に示すように配線ピッチ２１２と配線ピッチ２１３が（式８）の関係とする。
【００３０】
（式８）  配線ピッチ２１２ ＜ 配線ピッチ２１３
この場合、並行配線長制限値２１０と並行配線長制限値２１１の関係は、（式９）になる。
【００３１】
（式９）  並行配線長制限値２１０ ＜ 並行配線長制限値２１１
配線ピッチが広くなることにより、隣接配線間のカップリング容量が小さくなり、その結果、クロストークの影響が小さくなる。よって、配線ピッチが大きい方がクロストークの影響を受けにくいので、並行配線長制限値は大きくなる。
【００３２】
次に、ピッチ別並行配線長チェック手順Ｓ１００において、配線ピッチに対応した並行配線長制限値により並行配線長をチェックする。図２の例では、配線ピッチ２１２に対応する並行配線長制限値２１０と並行配線長２０８とを比較して、並行配線長２０８の方が長いので、この隣接配線組はクロストーク発生箇所として判定する。次に、配線ピッチ２１３に対応する並行配線長制限値２１１と並行配線長２０９とを比較して、並行配線長２０９の方が短いので、この隣接配線組はクロストーク発生箇所ではないと判定する。以降、すべての隣接配線に対し、同様の処理をすることで、クロストーク発生箇所かどうかを判定し、クロストーク発生箇所についてはレイアウト修正を行う。クロストーク発生箇所と判定しなかった箇所は、レイアウト修正の対象外とする。
【００３３】
以上、説明したように、隣接配線の配線ピッチに応じた並行配線長制限値を設けることにより、一律の並行配線長制限値で処理する従来例に対し、レイアウト修正箇所を削減することができる。その結果、処理工数の削減を図れるとともに、面積増加の抑制を行うことができる。さらに、従来では修正していた箇所を修正しなくても良いと判断することにより、余計なセル挿入やセルサイジングを防ぐことができて、消費電力の増加を抑制することができるという効果もある。
【００３４】
（実施の形態２）
本発明の実施の形態２におけるクロストークチェック方法について、図面を参照しながら説明する。
【００３５】
図３はレイアウト時のクロストーク発生箇所判定において、配線駆動セルの駆動能力に応じて制限用の並行配線長を変える手法を表す図、図４は図３の具体例を表す図である。図３において、Ｓ３００は駆動能力別並行配線長チェック手順、３００は駆動能力別基準値である。図４において、４００〜４０７はセル、４０８はセル４００，４０２によって駆動される隣接配線が並行している部分の長さである並行配線長、４０９はセル４０４，４０６によって駆動される隣接配線の並行配線長、４１０及び４１１は駆動能力別基準値３００に記述されている駆動能力別の並行配線長制限値である。
【００３６】
並行配線長抽出手順Ｓ１６００において、レイアウト１６００と駆動能力別基準値３００から、隣接配線の並行配線長を抽出する。このとき、抽出に使われる並行配線長制限値は駆動能力別基準値３００に記述されている最も小さい値である。
【００３７】
駆動能力別基準値３００について説明する。駆動能力別基準値３００には、配線を駆動するセルの駆動能力別にチェックすべき並行配線長制限値が記述されている。この駆動能力別の並行配線長制限値は、予め、"ｈｓｐｉｃｅ"などの回路シミュレーターを用いて求められたものである。駆動能力と並行配線長制限値の関係について説明する。セル４００の駆動能力とセル４０４の駆動能力が（式１０）の関係とする。
【００３８】
（式１０）  セル４００の駆動能力 ＞ セル４０４の駆動能力
この場合、並行配線長制限値４１０と並行配線長制限値４１１の関係は、（式１１）になる。
【００３９】
（式１１）  並行配線長制限値４１０ ＞ 並行配線長制限値４１１
駆動能力が強くなることにより、隣接配線間のカップリング容量への充電及び放電する力が強くなる。クロストークは、隣接配線間のカップリング容量に対し、一方の配線が充電中に、他方の配線が充電を助けたり、放電することにより充電を阻害したりすることが原因で、タイミングが変化したり、電圧が変動する現象である。よって、駆動能力が強い方が駆動能力が弱い方よりも他者からのカップリング容量への充電、放電の影響が相対的に受けにくくなり、クロストークによる影響が小さくなる。そのため、駆動能力の大きさに応じて、並行配線長制限値を変更することができる。
【００４０】
次に、駆動能力別並行配線長チェック手順Ｓ３００において、配線駆動セルの駆動能力に対応した並行配線長制限値により並行配線長をチェックする。図４の例では、セル４００の駆動能力に対応する並行配線長制限値４１０と並行配線長４０８とを比較して、並行配線長４０８の方が短いので、この隣接配線組はクロストーク発生箇所ではないと判定する。次に、セル４０４の駆動能力に対応する並行配線長制限値４１１と並行配線長４０９とを比較して、並行配線長４０９の方が長いので、この隣接配線組はクロストーク発生箇所であると判定する。以降、すべての隣接配線に対し、同様の処理をすることで、クロストーク発生箇所かを判定し、クロストーク発生箇所についてはレイアウト修正を行う。クロストーク発生箇所でないと判定した隣接配線はレイアウト修正を行わない。
【００４１】
以上、説明したように、配線を駆動するセルの駆動能力に応じた並行配線長制限値を設けることにより、一律の並行配線長制限値で処理する従来例に対し、レイアウト修正箇所を削減することができる。その結果、処理工数の削減を図れるとともに、面積増加の抑制を行うことができる。さらに、従来では修正していた箇所を修正しなくても良いと判断することにより、余計なセル挿入やセルサイジングを防ぐことができて、消費電力の増加を抑制することができるという効果もある。
【００４２】
（実施の形態３）
本発明の実施の形態３におけるクロストークチェック方法について、図面を参照しながら説明する。
【００４３】
図５はレイアウト時のクロストーク発生箇所判定において、クロック配線に注目し並行配線長をチェックする手法を表す図、図６は図５の具体例を表す図である。図５において、Ｓ５００はクロックネット抽出手順、Ｓ５０１はアグレッサ／ビクティム判定手順、５００はネットリスト、５０１は各セル信号波形の傾き情報である。図６において、６００，６０１はクロックラインのセル、６０２，６０３はセル、６０４はセル６００の出力端子における信号波形傾き、６０５はセル６０２の出力端子における信号波形傾き、６０６，６０７はクロックラインのセル、６０８，６０９はセル、６１０はセル６０６の出力端子における信号波形傾き、６１１はセル６０８の出力端子における信号波形傾きである。
【００４４】
並行配線長抽出手順Ｓ１６００において、レイアウト１６００と基準値１６０１から、隣接配線の並行配線長を抽出する。ここで抽出された隣接配線が、図６（ａ），（ｂ）に示す２つの隣接配線とする。
【００４５】
次に、クロックネット抽出手順Ｓ５００において、ネットリスト５００とクロックソースポイントとを入力として、パストレースを行うことにより、クロックを構成するネットを抽出する。このクロックネット抽出によって、図６（ａ），（ｂ）に示すセル６００が駆動する配線と、セル６０６が駆動する配線がクロックネットとして抽出されたものとして、以降の説明をする。
【００４６】
次に、アグレッサ／ビクティム判定手順Ｓ５０１において、信号波形の傾き情報５０１を入力として、すべてのセルの出力端子での信号波形の傾きから、クロックネット抽出手順Ｓ５００において抽出したネットがビクティム（victim）になっていないかどうか判定する。ここで、信号波形傾きとは、電圧０からＶＤＤ、あるいは、ＶＤＤから０に信号が遷移する時間を意味する。信号波形傾きは遷移の時間であって、勾配ではない。また、アグレッサ（aggressor）とは、クロストークの影響を与える側の配線を指し、ビクティム（victim）とは、クロストークの影響を受け、遅延変動やグリッチが発生する配線を指す。
【００４７】
この判定方法について詳細に説明する。図６（ａ）で、セル６００の出力端子における信号波形傾き６０４と、セル６０５の出力端子における信号波形傾き６０５を比較する。これらの信号波形傾きは、傾き情報５０１に記述されていた情報で、アグレッサ／ビクティム判定手順Ｓ５０１において読み込まれる。図６（ａ）の場合、信号波形傾き６０４と信号波形傾き６０５の関係は、（式１２）の関係になる（信号波形傾きは遷移時間であって、勾配ではない）。
【００４８】
（式１２）  信号波形傾き６０４ ＞ 信号波形傾き６０５
（式１２）の関係の場合、信号波形傾き６０４の方が大きいために、セル６００に駆動されるクロック配線はビクティム（victim）と判定する。逆に、図６（ｂ）に示したように、（式１３）の関係があれば、セル６０６に駆動されるクロック配線はアグレッサ（aggressor）と判定する。
【００４９】
（式１３）  信号波形傾き６１０ ＜ 信号波形傾き６１１
それで、すべての隣接配線について、信号波形傾きの大きさを比較することにより、アグレッサ／ビクティム（aggressor/victim）を決定する。
【００５０】
最後に、先にクロックネット抽出手順Ｓ５００で抽出したクロックネットがビクティム（victim）になっていないかどうかを判定し、もし、ビクティム（victim）になっているクロックネットがあれば、出力する。
【００５１】
ここで、ビクティム（victim）になるクロックネットを抽出する意味について説明する。クロックネットがクロストークにより遅延変動すると、ＬＳＩ全体でスキューを合わせ込んでいたのが崩れることになる。その結果、誤動作に繋がる可能性がある。また、グリッチが発生すると、予期せぬタイミングでクロックが入り、論理エラーが発生し、誤動作となる。つまり、クロストークを考慮した場合、クロックがビクティム（victim）になるような設計は、品質の面で問題があるので、修正する必要がある。
【００５２】
クロックネットの修正においては、クロックネットはスキューを合わせ込んでいるので、クロックネットを修正するのではなく、隣接するネットの方を修正する。
【００５３】
以上、説明したように、クロックネットに注目し、クロックネットでクロストークが発生していないかどうかを検証することにより、市場不良の出ない高信頼性ＬＳＩを製造することができる。その結果、歩留まりも向上するという効果もある。
【００５４】
（実施の形態４）
本発明の実施の形態４におけるクロストークチェック方法について、図面を参照しながら説明する。
【００５５】
図７はレイアウト時のクロストーク発生箇所判定において、隣接配線の並行配線長から遅延変動量を計算し、タイミング検証する方法を表す図、図８は図７の具体例を表す図である。図７において、Ｓ７００は遅延変動量計算手順、Ｓ７０１は遅延情報出力手順、７００は遅延変動量テーブルである。図８において、８００〜８０３はセル、８０４は並行配線長、８０５は遅延情報である。
【００５６】
並行配線長抽出手順Ｓ１６００において、レイアウト１６００と基準値１６０１から、隣接配線の並行配線長を抽出する。ここで抽出した隣接配線が、図８に示す隣接配線であり、セル８００とセル８０２に駆動されるそれぞれの配線が並行配線長８０４だけ隣接しており、セル８００及びセル８０２の出力信号波形傾きから、セル８００に駆動される配線がビクティム（victim）であるとする。
【００５７】
次に、遅延変動量計算手順Ｓ７００において、並行配線長８０４とセル８００の駆動能力から、遅延変動量テーブル７００を参照し、クロストークにより変動する遅延量を計算する。遅延変動量テーブル７００は、並行配線長と駆動能力のテーブルとなっていて、テーブル間は任意の補間アルゴリズムにより補間する。
【００５８】
次に、遅延情報出力手順Ｓ７０１において、遅延変動量計算手順Ｓ７００で計算した遅延変動量を、遅延情報８０５として出力する。遅延情報を表す方法として、ＳＤＦ（Standard Delay Format）がよく用いられるが、この遅延情報８０５は、ＳＤＦのＩＮＣＲＥＭＥＮＴＡＬ記述により表現する。これらの遅延情報を、すべてのビクティム（victim）となる配線に対して行い、デザインの遅延情報を作成する。
【００５９】
最後に、前記遅延情報と、クロストークが発生しないときの遅延情報を用いて、タイミング検証することにより、クロストークによってタイミングエラーとなる箇所を特定する。特定後、タイミングエラーが出ている箇所に対し、レイアウト修正を施すことによりクロストークが原因となるタイミングエラーを回避することができる。
【００６０】
なお、今回の例では、遅延変動量テーブル７００は、並行配線長と駆動能力のテーブルとして説明したが、セル種別や、配線ピッチ、配線層などの情報を追加して、テーブルを大きくしても同様の処理で実施できる。また、遅延変動量テーブル７００は、いろいろな条件で、予め、"ｈｓｐｉｃｅ"などの回路シミュレーターを用いて作成しておく。
【００６１】
以上、説明したように、並行配線長などからクロストークにより変動する遅延変動量を計算し、タイミング検証して、クロストーク発生箇所を見つけることができる。この手法では、タイミングに余裕のある箇所では、隣接配線間の並行配線長が長くても修正する必要がないので、修正工数を削減することができる。
【００６２】
（実施の形態５）
本発明の実施の形態５におけるクロストークチェック方法について、図面を参照しながら説明する。
【００６３】
図９はレイアウト時のクロストーク発生箇所判定において、ＩＰ（機能ブロック：Intellectual Property）などの駆動能力が不明なブロック／セルに対し、駆動能力を設定し、並行配線長を制限する方法を表す図、図１０は図９に示す駆動能力設定手順をより詳細に手順分けして示した図である。図９において、Ｓ９００は駆動能力設定手順、９００は遅延ライブラリである。図１０において、Ｓ１０００はマスターセル駆動能力判定値作成手順、Ｓ１００１は対象セル駆動能力判定値計算手順、Ｓ１００２は対象セル駆動能力判定手順、１０００はマスターセル、１００１は対象セルである。
【００６４】
まず最初に、駆動能力についての説明をする。駆動能力とは、セル出力段のトランジスタ構造をモデル化したもので、トランジスタサイズに応じて、駆動できる容量の最大値が変化する。そのため、セル開発においては、同一機能を持ったセルで、駆動能力だけが異なるセルを何種類か作成することが一般的になっている。これは、デザイン中で、前記セルがどこで使われるか分らないので、駆動すべき容量が小さいところでは、駆動能力の弱いものを使用し、逆に、駆動すべき容量が大きいところでは、駆動能力の強いものを使用する。ただし、駆動能力が強くなる毎にトランジスタサイズが大きくなるので、セル面積は増大していく。例えば、インバータ機能を持つセルであれば、まず基本となる駆動能力を持つインバータセルを開発し、そのインバータセルに対し、２倍の駆動能力を持つインバータセル、３倍の駆動能力を持つインバータセルというように、機能はまったく同じで、駆動能力だけが異なるセルを何種類か用意する。ここで、基本となる駆動能力をどう設定するか、何倍の駆動能力を持つセルを作成するかは、プロセスに依存することが多く、使うプロセスが異なれば、作成思想も異なる。そのため、社外からＩＰブロックやセルを導入した場合、自社の駆動能力の考え方とは異なっているのが普通で、社外から導入したＩＰブロックやセルの駆動能力が不明である場合が多い。
【００６５】
しかし、クロストークは、隣接配線を駆動するセルの駆動能力によるところが大きいので、この駆動能力が不明なブロックやセルに対しても、駆動能力を設定する手段が必要となる。そこで、本発明のポイントである、駆動能力が不明なブロックやセルに対する駆動能力設定方法について説明する。
【００６６】
並行配線長抽出手順Ｓ１６００において、レイアウト１６００と基準値１６０１から、隣接配線の並行配線長を抽出する。
【００６７】
次に、駆動能力設定手順Ｓ９００において、セルの遅延情報を記述するライブラリ９００から、駆動能力を計算し、すべてのブロックやセルに対し、駆動能力を設定する。この駆動能力設定手順Ｓ９００において、社内で開発したものは、駆動能力の定義がされているので、何も問題ない。しかし、社外から導入したＩＰブロックへの駆動能力をどう設定するかが重要となる。そこで、駆動能力設定手順Ｓ９００をより詳細に、図１０を用いて説明する。
【００６８】
駆動能力設定手順Ｓ９００は、マスターセル駆動能力判定値作成手順Ｓ１０００と、対象セル駆動能力判定値計算手順Ｓ１００１と、対象セル駆動能力判定手順Ｓ１００２により構成される。マスターセル駆動能力判定値作成手順Ｓ１０００では、すべてのブロックやセルの遅延情報を記述するライブラリ９００とマスターセル１０００とを入力として、マスターセルの駆動能力判定値１００２を計算する。マスターセルとは、駆動能力が不明なブロックやセルの駆動能力を設定するときに参照されるセルで、単純なインバータやバッファを設定するのが望ましい。
【００６９】
この駆動能力判定値１００２とは、駆動能力を表す値で以下の（式１４）を用いて計算される。
【００７０】
（式１４）  駆動能力判定値＝（セルの出力信号波形傾き最大値−セルの出力信号波形傾き最小値）／（駆動容量の最大値−駆動容量の最小値）
一般的な遅延ライブラリでは、セルの出力信号波形傾きを、セルの入力信号波形傾きと、駆動する容量（（式１４）では、駆動容量と表現した）の関数、あるいは、テーブルとして表現されることが多い。（式１４）の分子の値は、駆動能力の強さにかかわらず、ほぼ一定である。しかし、駆動能力が強くなると、駆動できる容量が大きくなるので、分母が大きくなっていく。そのため、駆動能力判定値１００２は、駆動能力が大きいほど、値が小さくなる。
【００７１】
（式１４）を、マスターセルの駆動能力毎に計算しておく。その結果、駆動能力判定値１００２は駆動能力毎に異なる値として計算され、駆動能力が大きくなるほど、小さい値で設定されている。
【００７２】
次に、対象セル駆動能力判定値計算手順Ｓ１００１では、駆動能力が不明な対象セル１００１とそのライブラリ９００とを入力として、（式１４）を用いて、同様に駆動能力判定値を計算する。
【００７３】
次に、対象セル駆動能力判定手順Ｓ１００２において、駆動能力判定値１００２と対象セル１００１の駆動能力判定値より、対象セル１００１の駆動能力がどれに相当するかを決定する。
【００７４】
最後に、駆動能力別並行配線長チェック手順Ｓ３００において、すべてのブロック及びセルについて駆動能力が設定されているので、駆動能力別基準値３００に従い、隣接配線の並行配線長チェックを行う。駆動能力別並行配線長チェック手順Ｓ３００の詳細については、実施の形態２で説明している。このチェックにおいて、クロストーク発生箇所と判定した箇所についてはレイアウト修正を施す。
【００７５】
以上、説明したように、自社内だけの設計では、駆動能力が分らない場合は存在しないが、社外ＩＰや社外セルを使う場合に、駆動能力が分らない場合に、本発明の駆動能力設定方法を適用することで、駆動能力が設定でき、クロストーク発生箇所のチェックを行うことができる。その結果、本当に修正しなければならない箇所のみ修正することが可能となるので、余計な面積増加を防ぐことができる。
【００７６】
なお、（式１４）において、駆動能力判定値の計算を駆動容量だけで計算したが、入力信号波形傾きも式にいれても良い。
【００７７】
（実施の形態６）
本発明の実施の形態６におけるクロストークチェック方法について、図面を参照しながら説明する。
【００７８】
図１１はレイアウト時のクロストーク発生箇所判定において、階層設計されたデザインに対し、階層を跨いで隣接している隣接配線の並行配線長をチェックする方法を表す図、図１２は図１１に示す並行配線長チェック方法の具体例を表す図である。図１１において、Ｓ１１００はバウンダリ情報抽出手順、Ｓ１１０１は階層組み上げ手順、Ｓ１１０２は並行配線長チェック手順、１１００は階層すべてを含む階層ネットリストである。図１２において、１２００はデザインのＴＯＰ階層、１２０１はＴＯＰ階層１２００下にあるブロック、１２０２〜１２０５はブロック１２０１の端子、１２０６〜１２１１はネットである。
【００７９】
並行配線長抽出手順Ｓ１６００において、レイアウト１６００と基準値１６０１から、隣接配線の並行配線長を抽出する。並行配線長抽出の対象はすべての階層で行う。しかし、この時点では、同一階層内での並行配線長しかチェックされていない。
【００８０】
次にバウンダリ情報抽出手順Ｓ１１００において、階層のすべてのブロックが記述された階層ネットリスト１１００を入力として、ＴＯＰ階層とブロック間の接続情報を抽出する。
【００８１】
図１２を用いて具体的に説明する。ＴＯＰ階層１２００にブロック１２０１が存在する。ＴＯＰ階層１２００のネット１２０６，１２０８，１２０９，１２１１は、それぞれブロック１２０１の端子１２０２，１２０４，１２０３，１２０５を介して、ブロック１２０１内のネット１２０７と１２１０に接続されている。
【００８２】
バウンダリ情報抽出手順Ｓ１１００では、ブロック名と、そのブロックの端子名、及びその端子に繋がるＴＯＰ階層でのネットとブロック内のネットが、表１に示すフォーマット１のように対応付けられる。
【００８３】
【表１】
2006252574.tif 000003
【００８４】
次に、階層組み上げ手順Ｓ１１０１において、階層を跨ぐ隣接配線のそれぞれの階層での並行配線長が足し合わされる。並行配線長抽出手順Ｓ１６００において、表２に示す並行配線長が抽出されているとする。
【００８５】
【表２】
2006252574.tif 000004
【００８６】
まず最初に、フォーマット１に従い、ネットを接続する。ＴＯＰ階層のネット１２０６とネット１２０８及び、ブロック１２０１のネット１２０７は端子１２０２と端子１２０４を介して繋がっているので、これは１本のネット１２１２として認識する。同様に、ＴＯＰ階層のネット１２０９とネット１２１１及び、ブロック１２０１のネット１２１０は端子１２０３と端子１２０５を介して繋がっているので、これは１本のネット１２１３として認識する。このネット接続認識に従い、表２の抽出結果を修正する。修正した抽出結果は表３のようになる。
【００８７】
【表３】
2006252574.tif 000005
【００８８】
それで、修正した抽出結果より、ネット１２１２とネット１２１３は、１００μｍと２００μｍと３００μｍを合計した結果の６００μｍの範囲で並行していると認識する。
【００８９】
次に、並行配線長チェック手順Ｓ１１０２において、従来技術、実施の形態１〜３などの方法を適用することにより、修正すべきクロストーク発生箇所を抽出する。
【００９０】
以上のように、一律の並行配線長制限値で処理する従来例に対し、レイアウト修正箇所を削減することができ、処理工数の削減を図れるとともに、面積増加の抑制を行うことができる。また、従来では修正していた箇所を修正しなくても良いと判断することにより、余計なセル挿入やセルサイジングを防ぐことができて、消費電力の増加を抑制することができる。さらに、階層設計されたデザインであっても、階層を展開し、並行配線長をチェックすることにより、クロストークの影響を軽減することが可能である。
【００９１】
なお、ＴＯＰ階層１２００にブロック１２０１が１つしかない場合について説明したが、他にブロックが存在しても同様の方法を繰り返し実行することで処理可能である。また、ブロック１２０１の中に、さらにブロックがあった場合にも、ブロック１２０１をＴＯＰ階層と見なし処理した後、今回説明した方法を適用することで処理可能である。また、階層展開後のネット名を、ネット１２１２と１２１３というように、当初あったネット名とは異なる名前で表現しているが、これは、それぞれを構成するＴＯＰ階層１２００のネット名１２０６，１２０９と表現する方がよい。それというのも、異なるネット名にすると、ネットリストの不一致が発生し、後のレイアウト修正がやりにくくなるからである。
【産業上の利用可能性】
【００９２】
本発明のクロストークチェック方法は、基本論理セルあるいは機能マクロブロックをセル間配線で接続して構成される半導体集積回路におけるクロストークの検査に利用できる。
【図面の簡単な説明】
【００９３】
【図１】本発明の実施の形態１のクロストークチェック方法におけるレイアウト時のクロストーク発生箇所判定において、配線ピッチに応じて制限用の並行配線長を変える手法を表す図
【図２】図１の具体例を表す図
【図３】本発明の実施の形態２のクロストークチェック方法におけるレイアウト時のクロストーク発生箇所判定において、配線駆動セルの駆動能力に応じて制限用の並行配線長を変える手法を表す図
【図４】図３の具体例を表す図
【図５】本発明の実施の形態３のクロストークチェック方法におけるレイアウト時のクロストーク発生箇所判定において、クロック配線に注目し並行配線長をチェックする手法を表す図
【図６】図５の具体例を表す図
【図７】本発明の実施の形態４のクロストークチェック方法におけるレイアウト時のクロストーク発生箇所判定において、隣接配線の並行配線長から遅延変動量を計算し、タイミング検証する方法を表す図
【図８】図７の具体例を表す図
【図９】本発明の実施の形態５のクロストークチェック方法におけるレイアウト時のクロストーク発生箇所判定において、ＩＰなどの駆動能力が不明なブロック/セルに対し、駆動能力を設定し、並行配線長を制限する方法を表す図
【図１０】図９に示す駆動能力設定手順をより詳細に手順分けして記載した図
【図１１】本発明の実施の形態６のクロストークチェック方法におけるレイアウト時のクロストーク発生箇所判定において、階層設計されたデザインに対し、階層を跨いで隣接している隣接配線の並行配線長をチェックする方法を表す図
【図１２】図１１に示す並行配線長チェック方法の具体例を表す図
【図１３】クロストークの現象を表す図
【図１４】クロストークの現象を表す図
【図１５】従来のクロストークを考慮した設計フローを表す図
【図１６】従来のレイアウト時のクロストーク対処方法を表す図
【図１７】図１６の具体例を表す図
【符号の説明】
【００９４】
Ｓ１００  ピッチ別並行配線長チェック手順
Ｓ３００  駆動能力別並行配線長チェック手順
Ｓ５００  クロックネット抽出手順
Ｓ５０１  アグレッサ／ビクティム判定手順
Ｓ７００  遅延変動量計算手順
Ｓ７０１  遅延情報出力手順
Ｓ９００  駆動能力設定手順
Ｓ１０００  マスターセル駆動能力判定値作成手順
Ｓ１００１  対象セル駆動能力判定値計算手順
Ｓ１００２  対象セル駆動能力判定手順
Ｓ１１００  バウンダリ情報抽出手順
Ｓ１１０１  階層組み上げ手順
Ｓ１１０２    並行配線長チェック手順
１００  ピッチ別基準値
３００  駆動能力別基準値
４１０  駆動能力別の並行配線長制限値
４１１  駆動能力別の並行配線長制限値
５００  ネットリスト
５０１  各セル信号波形の傾き情報
７００  遅延変動量テーブル
８０５  遅延変動量
９００  遅延ライブラリ
１０００  マスターセル
１００１  対象セル
１１００  階層ネットリスト
１６００  レイアウト
【図１】
2006252574.tif 000006
【図２】
2006252574.tif 000007
【図３】
2006252574.tif 000008
【図４】
2006252574.tif 000009
【図５】
2006252574.tif 000010
【図６】
2006252574.tif 000011
【図７】
2006252574.tif 000012
【図８】
2006252574.tif 000013
【図９】
2006252574.tif 000014
【図１０】
2006252574.tif 000015
【図１１】
2006252574.tif 000016
【図１２】
2006252574.tif 000017
【図１３】
2006252574.tif 000018
【図１４】
2006252574.tif 000019
【図１５】
2006252574.tif 000020
【図１６】
2006252574.tif 000021
【図１７】
2006252574.tif 000022