(57)【要約】      （修正有）【課題】半導体集積回路において発生したグリッチが誤動作の原因になるか否かを正確に検証することができる。【解決手段】半導体集積回路に割り当てられるタイミング制約と遅延計算結果から得られるグリッチ到達タイミングを検出する工程Ｓ２と、同期回路素子に対するクロック入力タイミングを検出する工程Ｓ３と、同期回路素子のデータ入力端子につながるネットに到達したグリッチのグリッチ情報とグリッチ到達タイミングとクロック入力タイミングを基に、同期回路素子のデータ入力端子につながるネットに到達したグリッチが誤動作の原因になるか否かを判定する工程Ｓ５とを含む。【選択図】図１
2007086950.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路に割り当てられるタイミング制約と遅延計算結果から得られるグリッチ到達タイミングを検出する工程と、
前記同期回路素子に対するクロック入力タイミングを検出する工程と、
前記同期回路素子のデータ入力端子につながるネットに到達したグリッチのグリッチ情報と前記グリッチ到達タイミングと前記クロック入力タイミングを基に、前記同期回路素子のデータ入力端子につながるネットに到達したグリッチが誤動作の原因になるか否かを判定する工程とを含むクロストーク検証方法。
【請求項２】
前記グリッチ情報は、グリッチ形状、アグレッサネットのネット名、前記アグレッサネットが属するパスのクロック周期、前記同期回路素子に対するクロック入力タイミング、注目ネットが属するパスのクロック周期のうちの何れか１つ以上の情報である請求項１に記載のクロストーク検証方法。
【請求項３】
前記グリッチ形状についての情報は、グリッチ電圧を時間の関数または時間のテーブルで表現する請求項２に記載のクロストーク検証方法。
【請求項４】
前記グリッチ形状についての情報は、グリッチ電圧の波形において、誤動作の原因になる電圧に達する時刻と、誤動作の原因にならない電圧に達する時刻の情報を伴う請求項３に記載のクロストーク検証方法。
【請求項５】
前記グリッチ到達タイミングは、注目ネットとカップリング容量を持つ他のネットの最も早い動作タイミングを使用し、そのネットが属するパスのクロック周期の整数倍を前記最も早い動作タイミングに加算することにより求める請求項１から請求項４までのいずれかに記載のクロストーク検証方法。
【請求項６】
クロック周期が同じでかつ同期して動作する異なるパス上のネット間にカップリング容量が生じている場合に、
前記グリッチが誤動作の原因になるか否かを判定する工程は、
前記同期回路素子に対するクロック周期と、データ送り側の同期回路素子にクロックが到達してからデータ受け側の同期回路素子にデータが入力するまでのパス遅延時間とに基づいて、パスのタイミング余裕度を計算し、
前記カップリング容量を持つアグレッサネットが属するパスのパス遅延時間を計算し、
前記タイミング余裕度が前記パス遅延時間よりも大きい場合にのみ、前記グリッチが誤動作の原因になるか否かを判定する請求項１に記載のクロストーク検証方法。
【請求項７】
半導体集積回路において全ネットについて発生するグリッチの情報を読み出す工程と、
前記半導体集積回路に割り当てられるタイミング制約と遅延計算結果から得られるグリッチ到達タイミングを検出する工程と、
前記各ネットに発生したグリッチを伝播させる工程と、
前記同期回路素子に対するクロック入力タイミングを検出する工程と、
前記同期回路素子のデータ入力端子につながるネットに到達したグリッチのグリッチ情報と前記グリッチ到達タイミングと前記クロック入力タイミングを基に、前記グリッチが誤動作の原因になるか否かを判定する工程とを含むクロストーク検証方法。
【請求項８】
半導体集積回路においてすべての同期回路素子のデータ入力端子につながるネットを抽出する工程と、
抽出した前記ネットに対してシールド配線を挿入する工程とを含む自動配置配線方法。
【請求項９】
半導体集積回路においてすべての同期回路素子のデータ入力端子につながるネットについて同一モードで動作する隣接ネットを抽出する工程と、
前記ネットと前記隣接ネットとの距離を算出する工程と、
算出した前記距離が一定値以下の場合に前記隣接ネットとの間にシールド配線を挿入する工程とを含む自動配置配線方法。
【請求項１０】
半導体集積回路においてすべての同期回路素子のデータ入力端子につながるネットについて同一モードで動作する隣接ネットを抽出する工程と、
前記ネットと前記隣接ネットとの距離を算出する工程と、
算出した前記距離が一定値以下の場合に、注目ネットのグリッチ電圧を求める工程と、
求めた前記グリッチ電圧が基準値以上の場合に前記隣接ネットとの間にシールド配線を挿入する工程とを含む自動配置配線方法。
【請求項１１】
半導体集積回路において同期回路素子のデータ入力端子につながるネットと同時刻に信号が遷移するネットとの距離を一定以上に保つことを制約として配置配線処理を行う自動配置配線方法。
【請求項１２】
半導体集積回路においてすべての同期回路素子のデータ入力端子につながるネットについてその隣接ネットを抽出する工程と、
前記隣接ネットが属するパスが同一モードで動作するか否かを判定する工程と、
同一モードで動作すると判定した場合に、発生したグリッチが前記データ入力端子に到達する時刻を検出する工程と、
前記同期回路素子に対するクロック入力タイミングを検出する工程と、
前記クロック入力タイミングにおいて前記データ入力端子に到達するグリッチのグリッチ電圧を検出する工程と、
検出した前記グリッチ電圧に基づいて誤動作の原因になるか否かを判定する工程と、
誤動作の原因になると判定した場合にグリッチ到達タイミングをずらすようにレイアウト最適化を行う工程とを含む自動配置配線方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計の最終段階であるレイアウト設計やレイアウト設計後のタイミング検証、特にクロストーク検証において、誤動作の原因となるグリッチを検証する技術に関する。
【背景技術】
【０００２】
サブミクロン以下の半導体集積回路のレイアウト設計後の遅延解析では、配線間の寄生容量が原因で発生するクロストーク現象を考慮したタイミング検証を実行している。配線間に寄生容量が発生すると信号波形にグリッチ（glitch：ひげ状のパルス）という歪が生じ、寄生容量がないときに比べて信号伝播時間が早くなったり遅くなったりする。その対策として、ＥＤＡ（ElectronicDesign Automation）ベンダーから、クロストーク込みの遅延解析およびタイミング解析を実行するツールが販売されている。
【０００３】
通常、クロストーク解析ツールにおいては、回路の接続を表現したネットリスト、素子の特性を表現したライブラリ、配線の寄生容量および抵抗の情報および回路のタイミング制約を入力として、遅延・クロストーク検証を行う。
【０００４】
回路の素子接続情報の例としては、ｖｅｒｉｌｏｇネットリストが挙げられる。また、素子の遅延特性を表現したライブラリとしては、ＥＤＡ業界の標準フォーマットのライブラリであるｌｉｂｅｒｔｙ（Ｓｙｎｏｐｓｙｓ社のフォーマットのライブラリ）が挙げられる。
【０００５】
配線間の寄生容量を含む配線の寄生容量および抵抗の情報としては、ＳＰＥＦ（StandardParasitic Exchange Format）、ＤＳＰＦ（Detailed Standard Parasitic Format）などが挙げられる。例えば、Ｓｙｎｏｐｓｙｓ社のクロストークを考慮したタイミング解析ツールであるＰｒｉｍｅＴｉｍｅ−ＳＩでは、Ｖｅｒｉｌｏｇネットリスト、ＳＰＥＦ、ｌｉｂｅｒｔｙを入力とし、タイミング制約を読み込んで遅延計算を実行することで、各ネットの動作タイミングを考慮し、遅延変動を計算する。計算結果はコンピュータメモリ上に記録してタイミング解析に使用するか、または、遅延情報をＳＤＦ（StandardDelay Format）ファイル中に遅延値として出力する（例えば非特許文献１参照）。
【０００６】
注目しているネット（注目ネット）に対してカップリング容量を持つ他のネットがあるときは、注目ネットが電圧的に安定していても、カップリング容量を持つ他のネットの電圧が遷移することで発生するグリッチの影響がある。グリッチは、その大きさによっては回路の誤動作の原因になる。そこで、グリッチの電圧を基準にして誤動作の原因になるか否かを判断し、誤動作の原因になり得る場合にはレイアウト修正を行い、グリッチの影響を防止している。
【０００７】
また、ネットにおいて電圧が遷移するタイミングをずらすことでクロストークによる遅延変動を最小にするようなレイアウト方法も提案されている（例えば、特許文献１参照）。
【特許文献１】特開２００２−３２８９６３号公報（第１５−１８頁、第４６−４７図）
【非特許文献１】ＰｒｉｍｅＴｉｍｅ−ＳＩ  Ｕｓｅｒｓ  Ｍａｎｕａｌ（Ｓｙｎｏｐｓｙｓ社）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来、カップリング容量が原因で発生したグリッチについては、グリッチ電圧や幅が一定の大きさ以上であれば回路誤動作の原因になると判断し、グリッチ修正を目的としてレイアウト修正を行っている。その場合、レイアウト修正後に、再度クロストークを考慮したタイミング検証を実行する。ところが、レイアウト修正を行うと、周辺のレイアウトも変更されるため、新たなグリッチやその他のタイミングの問題を引き起こす原因になる。
【０００９】
また、同期回路素子（フリップフロップやメモリ等）のデータ入力端子にグリッチが到達するタイミングやクロック入力端子にクロックが入力するタイミングやグリッチの形状などによっては、レイアウト修正が不要な場合も多い。しかし、従来では、クロック入力タイミングで到達したグリッチがどのような大きさであるかについては考慮していなかった。そのため、不要なレイアウト修正を行ってしまって、設計手戻りの増加や新たなタイミングエラーを引き起こす結果を招いていた。
【課題を解決するための手段】
【００１０】
本発明によるクロストーク検証方法は、
半導体集積回路に割り当てられるタイミング制約と遅延計算結果から得られるグリッチ到達タイミングを検出する工程と、
前記同期回路素子に対するクロック入力タイミングを検出する工程と、
前記同期回路素子のデータ入力端子につながるネットに到達したグリッチのグリッチ情報と前記グリッチ到達タイミングと前記クロック入力タイミングを基に、前記同期回路素子のデータ入力端子につながるネットに到達したグリッチが誤動作の原因になるか否かを判定する工程とを含むものである。
【００１１】
ここにおいて、グリッチは同期回路素子（フリップフロップやメモリ等）の誤動作の直接的な原因の１つであるが、グリッチが同期回路素子のデータ入力端子に到達するタイミングを正確に検出し、グリッチ情報に基づいて回路誤動作の原因になるか否かを検証する。クロック入力タイミングにおいて、データ入力端子にグリッチが到達しているかどうか、到達している場合には、グリッチがどのような大きさの電圧であるかを正確に検出し、誤動作の原因になるか否かを検証する。これにより、誤動作の原因になるグリッチと誤動作の原因にはならないグリッチを、従来より細かく分類することが可能になる。
【００１２】
上記において、前記グリッチ情報は、グリッチ形状、アグレッサネットのネット名、前記アグレッサネットが属するパスのクロック周期、前記同期回路素子に対するクロック入力タイミング、注目ネットが属するパスのクロック周期のうちの何れか１つ以上の情報であるものとする。
【００１３】
これにより、グリッチ形状の情報を用いて、同期回路素子へのクロック入力タイミングにおいてデータ入力端子にどのような大きさの電圧信号が入力するかを判断することができる。
【００１４】
また、上記において、前記グリッチ形状についての情報は、グリッチ電圧を時間の関数または時間のテーブルで表現するものとする。これにより、クロック入力タイミングで、データ入力端子にどのような大きさの電圧が入力するかを正確に見積もることができる。
【００１５】
また、上記において、前記グリッチ形状についての情報は、グリッチ電圧の波形において、誤動作の原因になる電圧に達する時刻と、誤動作の原因にならない電圧に達する時刻の情報を伴うものとする。これにより、誤動作の原因になる電圧が同期回路素子のデータ入力端子に入力している時間帯を容易に検出することが可能になる。
【００１６】
また、上記において、前記グリッチ到達タイミングは、注目ネットとカップリング容量を持つ他のネットの最も早い動作タイミングを使用し、そのネットが属するパスのクロック周期の整数倍を前記最も早い動作タイミングに加算することにより求めるという態様がある。これにより、アグレッサネットが属するパスのクロック周期と、ビクティムネット（Victim：クロストークの影響を受ける側のネット）が属するパスのクロック周期が異なる場合でも、グリッチ到達タイミングを容易に検出することが可能になる。
【００１７】
また、上記において、クロック周期が同じでかつ同期して動作する異なるパス上のネット間にカップリング容量が生じている場合に、前記グリッチが誤動作の原因になるか否かを判定する工程は、前記同期回路素子に対するクロック周期と、データ送り側の同期回路素子にクロックが到達してからデータ受け側の同期回路素子にデータが入力するまでのパス遅延時間とに基づいて、パスのタイミング余裕度を計算し、前記カップリング容量を持つアグレッサネットが属するパスのパス遅延時間を計算し、前記タイミング余裕度が前記パス遅延時間よりも大きい場合にのみ、前記グリッチが誤動作の原因になるか否かを判定するという態様がある。タイミング余裕度とは、制約時間からパス遅延時間を引いた値であり、スラックともいう。
【００１８】
タイミング余裕度がアグレッサネットが属するパスの遅延時間よりも大きい場合には、グリッチに起因する誤動作を引き起こす可能性がある。そこで、そのような場合にのみグリッチ検証の対象とする。これにより、クロック周期が同じでかつ同じモード動作するパスにおいては、グリッチが同期回路素子のデータ入力端子に到達しても誤動作が発生しない箇所を特定し、これを検証対象から外すことにより、検証対象を減らすものである。
【００１９】
また、本発明によるクロストーク検証方法は、
半導体集積回路において全ネットについて発生するグリッチの情報を読み出す工程と、
前記半導体集積回路に割り当てられるタイミング制約と遅延計算結果から得られるグリッチ到達タイミングを検出する工程と、
前記各ネットに発生したグリッチを伝播させる工程と、
前記同期回路素子に対するクロック入力タイミングを検出する工程と、
前記同期回路素子のデータ入力端子につながるネットに到達したグリッチのグリッチ情報と前記グリッチ到達タイミングと前記クロック入力タイミングを基に、前記グリッチが誤動作の原因になるか否かを判定する工程とを含むものである。
【００２０】
これにより、同期回路素子のデータ入力端子に伝播してくる可能性があるすべてのグリッチを検証することが可能になるので、さらに厳しくチェックを行うことが可能になる。
【００２１】
また、本発明による自動配置配線方法は、半導体集積回路のセル自動配置および配線処理において、
半導体集積回路においてすべての同期回路素子のデータ入力端子につながるネットを抽出する工程と、
抽出した前記ネットに対してシールド配線を挿入する工程とを含むものである。
【００２２】
同期回路素子のデータ入力端子につながるネットに到達したグリッチは誤動作の直接の原因の１つであるが、シールド配線の挿入によりカップリング容量が発生するのを防ぎ、グリッチを検証する必要を無くせるので、検証工数の削減につながる。
【００２３】
また、本発明による自動配置配線方法は、半導体集積回路のセル自動配置および配線処理において、
半導体集積回路においてすべての同期回路素子のデータ入力端子につながるネットについて同一モードで動作する隣接ネットを抽出する工程と、
前記ネットと前記隣接ネットとの距離を算出する工程と、
算出した前記距離が一定値以下の場合に前記隣接ネットとの間にシールド配線を挿入する工程とを含むものである。
【００２４】
これは、グリッチ発生やクロストークによる遅延変動を引き起こすカップリング容量を発生させないための手法である。ここにおいて、同一モードで動作するという条件で抽出した隣接ネットとの距離を判断基準とする。距離が小さいほどカップリング容量が大きくなる。その距離が一定値以下の必要な箇所に限ってシールド配線挿入を行うので、より効率的にカップリング容量の発生を防ぎ、より少ない数のシールド配線の挿入でグリッチを低減することが可能である。
【００２５】
また、本発明による自動配置配線方法は、
半導体集積回路においてすべての同期回路素子のデータ入力端子につながるネットについて同一モードで動作する隣接ネットを抽出する工程と、
前記ネットと前記隣接ネットとの距離を算出する工程と、
算出した前記距離が一定値以下の場合に、注目ネットのグリッチ電圧を求める工程と、
求めた前記グリッチ電圧が基準値以上の場合に前記隣接ネットとの間にシールド配線を挿入する工程とを含むものである。
【００２６】
これは、同期回路素子のデータ入力端子につながるネットにグリッチを発生させないための手法であり、グリッチ電圧のピーク高さを見積もるものである。これにより、より少ないシールド配線の挿入でグリッチ発生による誤動作を削減することができる。
【００２７】
なお、同期回路素子のデータ入力端子につながるネットと同時刻に信号が遷移するネットとの距離を一定以上に保つことを制約として配置配線処理を行うのでもよい。これにより、フリップフロップの直前のネットに対するシールド配線の挿入を削減することが可能になる。
【００２８】
また、本発明による自動配置配線方法は、
半導体集積回路においてすべての同期回路素子のデータ入力端子につながるネットについてその隣接ネットを抽出する工程と、
前記隣接ネットが属するパスが同一モードで動作するか否かを判定する工程と、
同一モードで動作すると判定した場合に、発生したグリッチが前記データ入力端子に到達する時刻を検出する工程と、
前記同期回路素子に対するクロック入力タイミングを検出する工程と、
前記クロック入力タイミングにおいて前記データ入力端子に到達するグリッチのグリッチ電圧を検出する工程と、
検出した前記グリッチ電圧に基づいて誤動作の原因になるか否かを判定する工程と、
誤動作の原因になると判定した場合にグリッチ到達タイミングをずらすようにレイアウト最適化を行う工程とを含むものである。
【００２９】
これは、誤動作の原因になるグリッチが発生しないように、アグレッサネットまたはビクティムネットが属するパスの信号伝播時間を調整する手法である。この場合、最終的に修正する必要があるグリッチを減らすことが可能になるので、上述のクロストーク検証方法（グリッチ検証方法）と組み合わせることにより、より少ない数のグリッチ修正でレイアウト設計を終えることが可能になる。
【発明の効果】
【００３０】
本発明によれば、半導体集積回路において発生したグリッチが誤動作の原因になるか否かを正確に検証することができる。すなわち、同期回路素子へのクロック入力タイミングでデータ入力端子の電圧をシミュレートし、誤動作の原因になるグリッチとそうでないグリッチを見分けることが可能になる。このため、余分なレイアウト修正を行わなくても済むので、設計期間を短縮化することができる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明にかかわるクロストーク検証方法の実施の形態を図面に基づいて詳細に説明する。同期回路素子としてフリップフロップを例に挙げて説明する。
【００３２】
（実施の形態１）
図１は、本発明の実施の形態１におけるクロストーク検証方法の処理手順を示すフローである。
【００３３】
初期の入力データは、素子接続情報Ｄ１、配線寄生容量および抵抗を含む寄生素子抽出情報Ｄ２、遅延およびクロストーク計算処理への入力となる遅延ライブラリＤ３、回路タイミング制約Ｄ４である。ここで、寄生素子抽出情報Ｄ２には配線間の寄生容量の情報も含まれている。
【００３４】
ここで、グリッチ情報の表現方法を説明する。
【００３５】
図２は実施の形態１の場合の検証対象の回路構成を示す。Ｎ１，Ｎ２は互いに異なる第１のパスＰ１、第２のパスＰ２に属するネットであって、ネットＮ１とネットＮ２の間にはカップリング容量Ｃ１が生じているものとする。Ｆ１はネットＮ１が属する第１のパスＰ１のデータ送り側のフリップフロップ、Ｆ２は第１のパスＰ１のデータ受け側のフリップフロップである。また、Ｆ３はネットＮ２が属する第２のパスＰ２のデータ送り側のフリップフロップ、Ｆ４は第２のパスＰ２のデータ受け側のフリップフロップである。第１のパスＰ１も第２のパスＰ２もクロックの周期は一例として１０ｎｓで同一であるとし、フリップフロップＦ１，Ｆ２，Ｆ３，Ｆ４のクロック入力端子においては、１０ｎｓ毎に同時刻にクロックが入力されるものとする。
【００３６】
第２のパスＰ２において、フリップフロップＦ３のデータ出力端子からフリップフロップＦ４のデータ入力端子までの信号到達時間は一例として７ｎｓであるとする。クロックの周期が１０ｎｓであるため、第２のパスＰ２上のネットＮ２は次にクロックが入力するまでの３ｎｓの間、電圧が変化することなく定常状態である必要がある（タイミング余裕度）。ネットＮ２とカップリング容量Ｃ１を持つネットＮ１が属する第１のパスＰ１においては、フリップフロップＦ１のデータ出力端子からフリップフロップＦ２のデータ入力端子までの信号到達時間が一例として９ｎｓであるとする。ネットＮ１において信号が変化する時刻が８ｎｓから９ｎｓの間であるとすると、ネットＮ２が定常状態を保つべき時間帯においてグリッチＧ１が到達することになる。
【００３７】
グリッチＧ１の形状は、通常のクロストーク検証において求めることができる。グリッチＧ１の情報を図３に示すように、横軸時間、縦軸電圧で表現しておく。このグリッチＧ１は、電圧が０（Ｖ）で定常状態を保っているネットにおいて、ＶＤＤ側に変化する電圧の時間変化を示すものである。電圧が変化し始める時刻を０ｎｓの原点とする。電圧の変化量がピークになる時刻が０．５ｎｓであり、グリッチが消滅する時刻が１ｎｓである。
【００３８】
グリッチの形状Ｇｖは、時間の関数の式（１）で表現する。
【００３９】
Ｇｖ（ｔ）＝ｆ（ｔ）……………（１）
ｆ（ｔ）は、グリッチ電圧の時間変化を表現することができれば、どのような式でもよい。
【００４０】
グリッチの形状は、図４のようにテーブルで表現することも可能である。時刻と電圧のテーブルでグリッチを表現すると、テーブル化したポイント以外の時刻における電圧は、テーブル補間で求めることになる。そのため、式で表現するよりも精度は落ちる。しかし、式で表現する場合には、グリッチ形状を正確に表現するように式中のパラメータを最適化する必要がある。テーブルでは、式で表現するよりも少ない工数での実現が可能である。
【００４１】
また、グリッチの情報として、アグレッサ（Aggressor：クロストークの影響を与える側のネット）となるネットＮ１の名前、ネットＮ１が属する第１のパスＰ１のクロック周期、第１のパスＰ１のフリップフロップへの最初のクロック入力タイミングの情報を記録しておくと、その後のグリッチ到達タイミングの検出が容易になる。なお、これらの情報は、図１における回路タイミング制約Ｄ４から求めることが可能なため、グリッチ情報Ｄ６に記録しても、しなくても、どちらでもよい。
【００４２】
アグレッサネットが属するパスのクロック動作タイミングは、回路タイミング制約Ｄ４を読むことで知ることができる。グリッチ情報Ｄ６にアグレッサネットが属するパスのクロック周期、アグレッサネットの初期動作タイミングの情報が記載されている場合には、その情報を用いればよい。アグレッサとなるネットＮ１が動作する時刻は、ネットＮ１が属する第１のパスＰ１の送り側のフリップフロップＦ１へのクロック入力タイミングを起点とし、データ受け側のフリップフロップＦ２のデータ入力端子の信号が変化するまでの時間τ１である。この時間τ１は、図１に示す遅延情報Ｄ５のファイルから抽出することが可能である。
【００４３】
また、次のようなグリッチ情報表現方法もある。
【００４４】
図５はフリップフロップのデータ入力端子において、定常状態で電圧０（Ｖ）の時にグリッチＧ１が到達した様子を表したものである。フリップフロップにおいてデータ入力端子における電圧がＶＤＤ／２を超えると、データ入力端子における電圧がＶＤＤであると認識する場合で説明する。誤動作の原因になる電圧に達するのは、グリッチＧ１によるデータ入力端子の電圧がＶＤＤ／２を超える時刻であるＴ１である。また、誤動作の原因にならない電圧に達する時刻はＴ２である。グリッチＧ１の時間変化の情報として、このような情報のみを持たせておく。この場合、後のグリッチ検証処理において、グリッチが誤動作の原因であるか否かを簡単に判断することが可能になる。
【００４５】
図１のフローに戻って実施の形態を説明する。
【００４６】
ステップＳ１において、初期のデータを基に遅延計算およびクロストーク解析を行う。遅延計算およびクロストーク解析を行った結果として、遅延情報Ｄ５およびグリッチ情報Ｄ６を出力する。遅延情報Ｄ５の中には、回路において信号が変化する際に配線間のカップリング容量が原因で遅延値が早くなったり遅くなったりする現象も反映されている。グリッチは、ネットの電圧が変化するときではなく、定常状態であるときに引き起こされる電圧変化である。その原因はカップリング容量である。グリッチ情報Ｄ６は、グリッチの発生箇所・形状等の情報である。
【００４７】
次に、ステップＳ２において、グリッチ到達タイミングを検出する。グリッチ到達タイミングの検出には、回路タイミング制約Ｄ４およびグリッチ情報Ｄ６を用いる。グリッチ情報Ｄ６の中に回路タイミング制約を読んで求めたグリッチ到達タイミングの情報が入っているので、そのまま使用する。または、Ｄ６のファイルの中にグリッチ情報が入っていない場合には、回路タイミング制約とアグレッサネットが動作する時刻とからグリッチ情報を容易に求めることができる。
【００４８】
回路中に複数のクロック周期が存在する場合にあっては、アグレッサネットの初期動作タイミングにアグレッサネットが属するパスのクロック周期の整数倍を加算することによりグリッチ到達タイミングを求めるという手法がある。これによると、グリッチ到達タイミングを容易に検出することが可能になる。
【００４９】
なお、アグレッサネットが属するパスとビクティムネットが属するパスのクロック周期が異なる場合であっても、ビクティムネットのグリッチ到達タイミングおよびアグレッサネットの動作タイミングを一旦算出しておけば、それぞれのタイミングに対してそれぞれのネットが属するパスのクロック周期を加算することで、グリッチ到達タイミングおよび動作タイミングを容易に検出することができる。
【００５０】
次にステップＳ３において、フリップフロップへのクロック入力タイミングを求める。このクロック入力タイミングは、回路タイミング制約Ｄ４および遅延情報Ｄ５から算出することが可能である。または、遅延計算実行において、各素子および配線の遅延時間の情報をメモリ上に記録しておくことでも、容易に算出することが可能である。
【００５１】
次にステップＳ４で、フリップフロップのデータ入力端子におけるグリッチによる電圧変化量を算出する。
【００５２】
ここで、ネットＮ２に誘起されたグリッチがどのようにフリップフロップＦ４のデータ入力端子に伝搬するかを求める方法を説明する。
【００５３】
ネットＮ２の遅延時間が一例として１ｎｓであると仮定する。図６において、Ｇ１はネットＮ２の入口側（フリップフロップＦ３の出力端子側）におけるグリッチである。グリッチＧ１の電圧変化開始時刻を０とする。Ｇ２はフリップフロップＦ４の入力端子側の電圧変化を示す。ネット遅延時間は１ｎｓであるため、グリッチも同程度の時間を掛けて伝搬する。フリップフロップＦ４の入力端子側にグリッチが到達して電圧が変化し始め、電圧が定常状態の電圧に戻る時刻は、フリップフロップＦ３へのクロック入力タイミングから１０ｎｓ後であることが分かる。
【００５４】
次にステップＳ５において、フリップフロップＦ４へのクロック入力タイミングでデータ入力端子のグリッチが誤動作の原因になる電圧か否かを判定する。本例では、クロック入力タイミングではデータ入力端子の電圧が既に定常状態に戻っており、誤動作の原因にはならないことが分かる。
【００５５】
次にステップＳ６において、すべての注目ネットについて検証が終わったか否かを判定し、終わっているようであれば処理を終了する。
【００５６】
グリッチの情報として、図５に示す誤動作の原因となる電圧に達する時刻Ｔ１および誤動作の原因になる電圧を下回るようになる時刻Ｔ２を記録しておけば、グリッチの情報量が少なくてすみ、効率的にグリッチ検証を行うことができる。
【００５７】
図５のようにしたグリッチの情報を使用して、フリップフロップのデータ入力端子の直前に発生したグリッチが誤動作の原因になるか否かを判断する手法を図７のフローチャートによって説明する。図７に示すＤ１〜Ｄ５は、図１の場合と同じである。また、クロストーク解析を行うステップＳ１も図１と同様である。グリッチ情報Ｄ６として、グリッチ到達タイミング、グリッチ電圧が誤動作の原因になる大きさに到達する時刻Ｔ１、グリッチ電圧が誤動作の原因にならない大きさに到達する時刻Ｔ２が記録されている。
【００５８】
フリップフロップのデータ入力端子につながるネットにグリッチが到達し、そのグリッチ到達タイミングが上記の説明と同じタイミングであった場合、グリッチによる誤動作到達時間帯も同じように扱うことができる。グリッチによる誤動作到達時間帯がクロック入力タイミングに掛かるかどうかで、誤動作の原因になるか否かを検証することが可能である。
【００５９】
次にステップＳ２において、グリッチ到達タイミングの検出を行う。これは図１の場合と同じである。次にステップＳ３において、クロック入力タイミングを検出する。これも図１の場合と同じである。
【００６０】
次にステップＳ４ａにおいて、誤動作到達時間帯を伝播させる。本例では、一例として図５のＴ１に相当する時刻が０．４ｎｓ、Ｔ２に相当する時刻が０．６ｎｓであるとする。図２に示すネットＮ１，Ｎ２間のカップリング容量Ｃ１に起因して、ネットＮ２にグリッチＧ１が到達しているとする。パスの周期等の関係は、先に図１のグリッチ検証手順の中で述べたのと同じであり、第１のパスＰ１、第２のパスＰ２共にクロック周期が１０ｎｓ、第１のパスＰ１のパス遅延時間は９ｎｓ、第２のパスＰ２のパス遅延時間が７ｎｓ、第１のパスＰ１上のアグレッサとなるネットＮ１が８ｎｓ〜９ｎｓの間に電圧が変化するものとする。ネットＮ２は定常状態で０（Ｖ）であると仮定する。
【００６１】
この状態でネットＮ２にグリッチが到達し、ネットＮ２の電圧が変化する時刻は８ｎｓの時点であり、誤動作の原因になる電圧に達する時刻は、８ｎｓ＋０．４ｎｓ＝８．４ｎｓである。フリップフロップＦ４のデータ入力端子にデータ信号が到達する時刻は配線の遅延時間を足しても９．４ｎｓである。誤動作の原因にならない電圧に到達する時刻は、８ｎｓ＋０．６ｎｓ＝８．６ｎｓである。フリップフロップＦ４のデータ入力端子にデータ信号が到達する時刻は配線の遅延時間を足しても９．６ｎｓである。一方で、ステップＳ３で計算されたクロック入力タイミングは１０ｎｓであるから、このグリッチはクロック入力タイミングでは既に誤動作の原因になるような電圧を保っていないことが分かる。
【００６２】
次にステップＳ５において、グリッチが誤動作の原因になるか否かを判断する。本例では、誤動作の原因にならないという判断を行う。
【００６３】
次にステップＳ６で、すべてのグリッチに対して検証を行ったか否かを判定し、すべてのグリッチに対して検証を実行すれば、検証を終了する。
【００６４】
本実施の形態においては、第１のパスＰ１と第２のパスＰ２は同期しており、共に周期１０ｎｓで動作しているが、フリップフロップＦ４へのクロック入力タイミングで既にグリッチが消滅しており、誤動作の原因にならないことが分かる。従来であれば修正していたグリッチであるが、このようにグリッチの伝搬と、フリップフロップのデータ入力端子およびクロック入力端子に信号が入力するタイミングを検証することで、本当に誤動作の原因になるグリッチのみを検出することが可能である。
【００６５】
また、クロストーク検証ツールのメモリ内部に遅延値の情報を記録しておけば、より簡単に上記の検証を実行することができる。
【００６６】
（実施の形態２）
本発明の実施の形態２は、複数ネットからのグリッチによる影響に配慮するものである。
【００６７】
図８は実施の形態２の場合の検証対象の回路構成を示す。Ｆ１１は第１のパスＰ１１のデータ送り側のフリップフロップ、Ｆ１２は第１のパスＰ１１のデータ受け側のフリップフロップ、Ｆ１３は第２のパスＰ１２のデータ送り側のフリップフロップ、Ｆ１４は第２のパスＰ１２のデータ受け側のフリップフロップ、Ｆ１５は第３のパスＰ１３のデータ送り側のフリップフロップ、Ｆ１６は第３のパスＰ１３のデータ受け側のフリップフロップを示す。
【００６８】
注目するのは、フリップフロップＦ１４のデータ入力端子につながるネットＮ１３に到達するグリッチである。フリップフロップＦ１４がグリッチのために間違った信号を取り込む可能性があるかどうかについて、第２のパスＰ１２上のすべてのネットＮ１２，Ｎ１３におけるグリッチを考慮する。説明を簡単にするために、３つのパスＰ１１，Ｐ１２，Ｐ１３はすべて同期して同じ周期で動作するものとする。クロック周期は１０ｎｓであるとする。フリップフロップＦ１３へのクロック入力タイミングからフリップフロップＦ１４への到達タイミングまでの時間を一例として８ｎｓとする。この場合、ネットＮ１３は、１０−８＝２ｎｓの間、電圧が変化することなく定常状態であることが望まれる（タイミング余裕度）。
【００６９】
ここで、ネットＮ１２，Ｎ１３とカップリング容量を持つ他のネットが属しているパスに注目する。Ｃ１１は、第２のパス上の前半のネットＮ１２と第１のパス上のネットＮ１１との間のカップリング容量を示す。また、Ｃ１２は、第２のパス上の後半のネットＮ１３と第３のパス上のネットＮ１４との間のカップリング容量を示す。一例としてネットＮ１１の動作タイミングを７ｎｓ、ネットＮ１４の動作タイミングを９．２ｎｓであるとする。
【００７０】
第１のパスのネットＮ１１に生じたグリッチがカップリング容量Ｃ１１を介して第２のパスの前半のネットＮ１２に変化を与える。これが図９（ａ）に示すグリッチＧ３である。その開始時刻は６ｎｓ、終了時刻は７ｎｓである。ピーク値は０．６ＶＤＤである。前半のネットＮ１２と後半のネットＮ１３の間に遅延素子Ｂが存在する。この遅延素子Ｂが一例として２ｎｓの遅延時間を有するものとする。図９（ｂ）に示すように、遅延素子Ｂの出力端にグリッチＧ４が生じる。図９（ａ）のグリッチＧ３の開始時刻が６ｎｓであるのに対して、遅延素子Ｂの遅延時間２ｎｓ遅れた８ｎｓからグリッチＧ４が変化し始める。遅延素子Ｂを通過することでグリッチ電圧のピークは０．４ＶＤＤに低減する。このグリッチＧ４が後半のネットＮ１３を伝搬してフリップフロップＦ１４に到達したのがグリッチＧ５である。その開始時刻は９ｎｓであり、消滅時刻は１０．３ｎｓである。
【００７１】
一方、第３のパスのネットＮ１４に生じたグリッチＧ６がカップリング容量Ｃ１２を介して後半のネットＮ１３における遅延素子Ｂの出力側に変化を与える。これが図９（ｃ）に示すグリッチＧ６である。その開始時刻は８．５ｎｓ、終了時刻は９．５ｎｓである。ピーク値は０．３ＶＤＤである。このグリッチＧ６が後半のネットＮ１３を伝搬してフリップフロップＦ１４に到達したのがグリッチＧ７である。その開始時刻は９．５ｎｓであり、消滅時刻は１０．５ｎｓである。
【００７２】
時刻８ｎｓから１０ｎｓの間は、フリップフロップＦ１４の入力側電圧は安定している必要がある。この期間に、第１のパスＰ１１でのグリッチに起因するグリッチＧ５だけが伝搬したのであれば、そのピーク値が０．４ＶＤＤであり、閾値の０．５ＶＤＤ以下であるので、グリッチＧ５は誤差原因にはならない。また、この期間に、第３のパスＰ１３でのグリッチに起因するグリッチＧ７だけが伝搬したのであれば、そのピーク値が０．３ＶＤＤであり、同様に、グリッチＧ７は誤差原因にはならない。
【００７３】
しかるに、グリッチＧ５とグリッチＧ７とが同時的にフリップフロップＦ１４の入力側に到達しているので、これらグリッチＧ５とグリッチＧ７を加算して検証する必要がある。これを図１０で説明する。図１０（ａ）は個別の場合のグリッチＧ５とグリッチＧ７を示し、図１０（ｂ）は加算した場合のグリッチＧ８を示す。フリップフロップＦ１４へのクロック入力タイミング１０ｎｓでは、グリッチＧ８は０．５ＶＤＤを超える。実際のデータが電圧０（Ｖ）であるべきところ、グリッチＧ８の影響で１（Ｖ）として取り込んでしまい、誤動作が発生するが、このことを本実施の形態は正確に検出ができる。すなわち、全ネットで発生するグリッチを伝播させ、重畳させることにより、誤動作箇所をより正確に検出することが可能になる。
【００７４】
なお、グリッチの加算については、グリッチ電圧を時間の関数またはテーブルで表現しておくことで、容易に実現可能である。
【００７５】
（実施の形態３）
本発明の実施の形態３は、フリップフロップのデータ入力端子の直前でグリッチの発生を防ぐものである。
【００７６】
図１１に示すように、データ送り側のフリップフロップＦ２１とデータ受け側のフリップフロップＦ２２との間のネットＮ２１において、フリップフロップＦ２２のデータ入力端子の直前のネット部分において隣接ネットとの間にシールド配線ＳＷ１，ＳＷ２を配置している。シールド配線ＳＷ１，ＳＷ２は、レイアウト中にＶＤＤまたはＶＳＳにつなぐことで容易に生成可能である。
【００７７】
フリップフロップの直前で発生するグリッチは、そうでない箇所に発生したグリッチに比べて減衰が少ないことから、誤動作の原因となる確率が高い。上記のように、データ受け側のフリップフロップＦ２２のデータ入力端子の直前ネット部分において隣接ネットとの間にシールド配線ＳＷ１，ＳＷ２を挿入しておけば、カップリング容量の発生を防ぎ、誤動作の原因であるグリッチの発生を防ぐことが可能である。
【００７８】
（実施の形態４）
本発明の実施の形態４は、シールド配線の挿入箇所を制限するものである。
【００７９】
図１２は、実施の形態４の場合の検証対象の回路構成を示す。第２のパスＰ３２のデータ受け側のフリップフロップＦ３４のデータ入力端子につながるネットＮ３２に対し、隣接するネットが属するパスの中から、同じモードで動作するパスに属するネットを検出する。ここでは、ネットＮ３１とネットＮ３３が検出される。次に、ネットＮ３１が属する第１のパスＰ３１、ネットＮ３３が属する第３のパスＰ３３を検出する。次に、検出した第１のパスＰ３１、第３のパスＰ３３が第２のパスＰ３２と同一モードで動作するパスであるか否かを判定する。次に、同一モードで動作すると判定したパス上のネットの配線との間にシールド配線を挿入する。第１のパスＰ３１は第２のパスＰ３２と同一モードで動作し、第３のパスＰ３３は第１のパスＰ３１と異なるモードで動作すると仮定する。この場合、同一モードで動作する第１のパスＰ３１上のネットＮ３１と注目のネットＮ３２との間にシールド配線ＳＷ３１を挿入する。異なるモードで動作する第３のパスＰ３３上のネットＮ３３との間にはシールド配線は挿入しない。これにより、実施の形態３の場合と比較し、より少ない数のシールド配線の挿入で、誤動作の直接の原因となるフリップフロップのデータ入力端子直前のグリッチを低減することが可能となる。また、実施の形態３の場合に比べ、面積ダメージが少ない。
【００８０】
また、シールド配線を挿入する際に、注目しているフリップフロップの直前のネットと隣接しており、同一モードで動作するパス上ネットとの距離Ｄを算出する。距離Ｄが小さいほどカップリング容量の値は大きくなる。距離Ｄが基準値に満たない場合にはシールド配線を挿入し、基準値以上であればカップリング容量が小さくなるので、同一モードで動作するネット間であってもシールド配線を挿入しないようにするという手法もある。この場合、グリッチに起因するフリップフロップの誤動作を、より少ないシールド配線の挿入で低減することが可能になる。
【００８１】
また、アグレッサとなるネットを駆動する素子のサイズからグリッチ電圧を見積もり、そのグリッチ電圧が規定値以上である場合にのみ、シールド配線を挿入するといった手法もある。この場合、より少ない数のシールド配線で誤動作原因になるグリッチの出現を防ぐことが可能になる。
【００８２】
なお、上記のいずれの実施の形態においても、フリップフロップに代えてメモリに適用することも可能である。
【産業上の利用可能性】
【００８３】
本発明の技術は、半導体集積回路の設計の最終段階であるレイアウト設計やクロストーク検証において、誤動作の原因となるグリッチを検証する技術等として有用である。また、グリッチを見積もってグリッチが発生しないようにするための対策をとる自動配置配線ツールにも有用である。
【図面の簡単な説明】
【００８４】
【図１】本発明の実施の形態１におけるクロストーク検証方法の処理手順を示すフロー
【図２】本発明の実施の形態１の場合の検証対象の回路構成図
【図３】本発明の実施の形態１におけるグリッチの時間変化を示す波形図
【図４】本発明の実施の形態１におけるグリッチの電圧の時間変化のテーブル図
【図５】本発明の実施の形態１におけるグリッチ情報の別の表現方法を示す図
【図６】本発明の実施の形態１におけるグリッチの発生箇所と伝播先での電圧の時間変化を示す図
【図７】本発明の実施の形態１におけるクロストーク検証方法の別の処理手順を示すフロー
【図８】本発明の実施の形態２の場合の検証対象の回路構成図
【図９】本発明の実施の形態２におけるグリッチの電圧の時間変化を示す波形図
【図１０】本発明の実施の形態２におけるグリッチ加算の処理を示す波形図
【図１１】本発明の実施の形態３の場合の検証対象の回路構成図
【図１２】本発明の実施の形態４の場合の検証対象の回路構成図
【符号の説明】
【００８５】
Ｄ１  素子接続情報
Ｄ２  寄生素子抽出情報
Ｄ３  遅延ライブラリ
Ｄ４  回路タイミング制約
Ｄ５  遅延情報
Ｄ６：グリッチ情報
Ｓ１  クロストーク解析のステップ
Ｓ２：グリッチ到達タイミングの検出ステップ
Ｓ３：クロック入力タイミング算出ステップ
Ｓ４：グリッチ電圧値算出ステップ
Ｓ５  誤動作原因の判定のステップ
【図１】
2007086950.tif 000003
【図２】
2007086950.tif 000004
【図３】
2007086950.tif 000005
【図４】
2007086950.tif 000006
【図５】
2007086950.tif 000007
【図６】
2007086950.tif 000008
【図７】
2007086950.tif 000009
【図８】
2007086950.tif 000010
【図９】
2007086950.tif 000011
【図１０】
2007086950.tif 000012
【図１１】
2007086950.tif 000013
【図１２】
2007086950.tif 000014