(57)【要約】【課題】回路中の全インスタンスに対してクロストークノイズエラーを判定する場合、どのネットのノイズエラーが集積回路の動作に影響を与えるかを特定できない。また、フリップフロップの入力におけるクロストークノイズエラーを判定した場合、フリップフロップのデータ信号に影響を及ぼすノイズエラーが、どのネットなのかを特定できない。【解決手段】フリップフロップの動作に影響を及ぼすネットを、フリップフロップのデータ端子から逆方向に検索することで、どのネットの影響でエラーが発生しているのかを容易に特定できる。【選択図】図８
2010198381.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）複数の論理回路に係るデータと、前記複数の論理回路を接続する複数の線路に係るデータと、前記複数の論理回路及び前記複数の線路を有する回路に係るデータとを含むデータベースを作成するステップと、
（ｂ）前記回路の後段においてクロストークノイズエラーが発生した場合に、前記データベースに基づいて、前記複数の論理回路を解析するステップと、
（ｃ）前記複数の線路のそれぞれにおいて、前記クロストークノイズの原因を判定するステップと
を具備し、
前記ステップ（ｃ）は、
（ｃ−１）前記複数の論理回路を、後段から前段に向かって順番に１つずつ、クロストークノイズエラーの有無について解析するステップと、
（ｃ−２）クロストークノイズエラーが無い論理回路が見つかった時点で、前記論理回路より前段における前記解析を停止するステップと
を具備する
クロストークノイズエラー判定方法。
【請求項２】
請求項１に記載のクロストークノイズエラー判定方法において、
前記ステップ（ａ）は、
（ａ−１）前記複数の線路に係るデータを有するＳＰＥＦ（Ｓｔａｎｄａｒｄ  Ｐａｒａｓｉｔｉｃ  Ｅｘｃｈａｎｇｅ  Ｆｏｒｍａｔ）データライブラリを作成するステップと、
（ａ−２）前記複数の論理回路に係るデータを有するセルライブラリを作成するステップと、
（ａ−３）前記回路に係るネットリストを作成するステップと
を具備する
クロストークノイズエラー判定方法。
【請求項３】
請求項１または２に記載のクロストークノイズエラー判定方法において、
前記ステップ（ｂ）は、
（ｂ−１）ノイズレポートを出力するステップ
を具備し、
前記ステップ（ｃ）は、
（ｃ−３）前記ノイズレポートを入力するステップ
をさらに具備する
クロストークノイズエラー判定方法。
【請求項４】
請求項１〜３のいずれかに記載のクロストークノイズエラー判定方法において、
前記回路の後段にフリップフロップが接続されている場合に、
前記ステップ（ｂ）は、
（ｂ−２）前記フリップフロップのデータ信号側のタイミングウィンドウを求めるステップと、
（ｂ−３）前記フリップフロップのセットアップホールド時間を取得するステップと、
（ｂ−４）前記タイミングウィンドウと前記セットアップホールド時間に応じて前記フリップフロップがクロストークノイズエラーを発生するか判定し、前記クロストークノイズエラーの判定結果を出力するステップと
をさらに具備する
クロストークノイズエラー判定方法。
【請求項５】
請求項１〜４のいずれかに記載のクロストークノイズエラー判定方法において、
前記ステップ（ｃ）は、
（ｃ−４）クロストークノイズエラーが発生したフリップフロップのインスタンス名を取得するステップと、
（ｃ−５）エラーが発生したフリップフロップのデータ端子に接続するインスタンス情報を取得するステップと、
（ｃ−６）インスタンスの出力側のネット名を取得するステップと、
（ｃ−７）インスタンスのノイズ量とセルの許容ノイズ量とを比較するステップと、
（ｃ−８）入力側に接続するインスタンス情報を取得するステップと、
（ｃ−９）前記ステップ（ｃ−８）で情報を取得したインスタンスがフリップフロップかどうかを確認するステップと、
（ｃ−１０）前記ステップ（ｃ−６）で取得したネット名を全て出力するステップと、
（ｃ−１１）全てのフリップフロップを処理したかどうかを確認するステップと
をさらに具備する
クロストークノイズエラー判定方法。
【請求項６】
複数の論理回路に係るデータと、前記複数の論理回路を接続する複数の線路に係るデータと、前記複数の論理回路及び前記複数の線路を有する回路に係るデータとを含むデータベースと、
前記回路の後段においてクロストークノイズエラーが発生した場合に、前記データベースに基づいて、前記複数の論理回路を解析するクロストークノイズ解析部と、
前記複数の線路のそれぞれにおいて、前記クロストークノイズの原因を判定するクロストークノイズエラー判定部と
を具備し、
前記クロストークノイズエラー判定部は、
クロストークノイズエラーが無い論理回路が見つかるまで、前記複数の論理回路を、後段から前段に向かって順番に１つずつ、クロストークノイズエラーの有無について解析する
クロストークノイズエラー判定装置。
【請求項７】
請求項６に記載のクロストークノイズエラー判定装置において、
前記データベースは、
前記複数の線路に係るデータを記憶するネットリストと、
前記複数の論理回路に係るデータを記憶するセルライブラリと、
前記回路に係るＳＰＥＦデータライブラリと
を具備する
クロストークノイズエラー判定装置。
【請求項８】
請求項６または７に記載のクロストークノイズエラー判定装置において、
前記データベースは、
前記クロストークノイズ解析部が前記解析の結果を出力し、かつ、前記クロストークノイズエラー判定部が参照するためのノイズレポート
をさらに具備する
クロストークノイズエラー判定装置。
【請求項９】
（ａ）複数の論理回路に係るデータと、前記複数の論理回路を接続する複数の線路に係るデータと、前記複数の論理回路及び前記複数の線路を有する回路に係るデータとを含むデータベースを作成するステップと、
（ｂ）前記回路の後段においてクロストークノイズエラーが発生した場合に、前記データベースに基づいて、前記複数の論理回路を解析するステップと、
（ｃ）前記複数の線路のそれぞれにおいて、前記クロストークノイズの原因を判定するステップと
を具備し、
前記ステップ（ｃ）は、
（ｃ−１）前記複数の論理回路を、後段から前段に向かって順番に１つずつ、クロストークノイズエラーの有無について解析するステップと、
（ｃ−２）クロストークノイズエラーが無い論理回路が見つかった時点で、前記論理回路より前段における前記解析を停止するステップと
を具備し、コンピュータに実行させるための
クロストークノイズエラー判定プログラム。
【請求項１０】
請求項９に記載のクロストークノイズエラー判定プログラムにおいて、
前記ステップ（ａ）は、
（ａ−１）前記複数の線路に係るデータを有するＳＰＥＦデータライブラリを作成するステップと、
（ａ−２）前記複数の論理回路に係るデータを有するセルライブラリを作成するステップと、
（ａ−３）前記回路に係るネットリストを作成するステップと
を具備し、コンピュータに実行させるための
クロストークノイズエラー判定プログラム。
【請求項１１】
請求項９または１０に記載のクロストークノイズエラー判定プログラムにおいて、
前記ステップ（ｂ）は、
（ｂ−１）ノイズレポートを出力するステップ
を具備し、
前記ステップ（ｃ）は、
（ｃ−３）前記ノイズレポートを入力するステップ
をさらに具備し、コンピュータに実行させるための
クロストークノイズエラー判定プログラム。
【請求項１２】
請求項９〜１１のいずれかに記載のクロストークノイズエラー判定プログラムにおいて、
前記回路の後段にフリップフロップが接続されている場合に、
前記ステップ（ｂ）は、
（ｂ−２）前記フリップフロップのデータ信号側のタイミングウィンドウを求めるステップと、
（ｂ−３）フリップフロップのセットアップホールド時間を取得するステップと、
（ｂ−４）前記タイミングウィンドウと前記セットアップホールド時間に応じて前記フリップフロップがクロストークノイズエラーを発生するか判定し、前記クロストークノイズエラーの判定結果を出力するステップと
をさらに具備し、コンピュータに実行させるための
クロストークノイズエラー判定プログラム。
【請求項１３】
請求項９〜１２のいずれかに記載のクロストークノイズエラー判定プログラムにおいて、
前記ステップ（ｃ）は、
（ｃ−４）クロストークノイズエラーが発生したフリップフロップのインスタンス名を取得するステップと、
（ｃ−５）エラーが発生したフリップフロップのデータ端子に接続するインスタンス情報を取得するステップと、
（ｃ−６）インスタンスの出力側のネット名を取得するステップと、
（ｃ−７）インスタンスのノイズ量とセルの許容ノイズ量とを比較するステップと、
（ｃ−８）入力側に接続するインスタンス情報を取得するステップと、
（ｃ−９）前記ステップ（ｃ−８）で情報を取得したインスタンスがフリップフロップかどうかを確認するステップと、
（ｃ−１０）前記ステップ（ｃ−６）で取得したネット名を全て出力するステップと、
（ｃ−１１）全てのフリップフロップを処理したかどうかを確認するステップと
をさらに具備し、コンピュータに実行させるための
クロストークノイズエラー判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロストークノイズエラーの判定方法と、その判定装置と、その判定プログラムとに係る。
【背景技術】
【０００２】
半導体装置の集積回路などにおいて、配線間の寄生容量が原因で発生するクロストーク現象が発生すると、信号に寄生容量に起因するノイズが重畳され、これが意図しない誤動作を引き起こすことがある。そのため、このようなクロストーク現象に起因するノイズのうち、誤動作となるノイズか否かを見分けるクロストーク検証方法が特許文献１に開示されている。
特許文献１のクロストーク検証方法では、ノイズ到達タイミングとクロック入力タイミングとノイズの電圧波形から、ノイズが誤動作の原因となるかを判定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−８６９５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１のクロストーク検証方法では、各論理回路ごとに、ノイズ到達タイミングとクロック入力タイミングとノイズの電圧波形を確認し、ノイズが誤動作を引き起こすかどうかを判定する。そのため、すべての論理回路についてノイズ検証を行う必要があり、誤動作を直接引き起こしている箇所を特定するのは簡単ではなかった。
【課題を解決するための手段】
【０００５】
以下に、（発明を実施するための形態）で使用される番号を用いて、課題を解決するための手段を説明する。これらの番号は、（特許請求の範囲）の記載と（発明を実施するための形態）との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、（特許請求の範囲）に記載されている発明の技術的範囲の解釈に用いてはならない。
【０００６】
本発明によるクロストークノイズエラー判定方法は、（ａ）複数の論理回路（Ｉｎｓｔ０〜５）に係るデータ（２３）と、複数の論理回路（Ｉｎｓｔ０〜５）を接続する複数の線路（Ｎｅｔ１〜５）に係るデータ（２１）と、複数の論理回路（Ｉｎｓｔ０〜５）及び複数の線路（Ｎｅｔ１〜５）を有する回路に係るデータ（２２）とを含むデータベース（２１、２２、２３）を作成するステップと、（ｂ）回路の後段においてクロストークノイズエラーが発生した場合に、データベース（２１、２２、２３）に基づいて、複数の論理回路（Ｉｎｓｔ０〜５）を解析するステップと、（ｃ）複数の線路（Ｎｅｔ１〜５）のそれぞれにおいて、クロストークノイズの原因を判定するステップとを具備する。ステップ（ｃ）は、（ｃ−１）複数の論理回路（Ｉｎｓｔ０〜５）を、後段から前段に向かって順番に１つずつ、クロストークノイズエラーの有無について解析するステップと、（ｃ−２）クロストークノイズエラーが無い論理回路（Ｉｎｓｔ０〜５）が見つかった時点で、論理回路（Ｉｎｓｔ０〜５）より前段における解析を停止するステップとを具備する。
【０００７】
本発明によるクロストークノイズエラー判定装置は、データベース（２１、２２、２３）と、クロストークノイズ解析部（３１）と、クロストークノイズエラー判定部（３２）とを具備する。ここで、データベース（２１、２２、２３）は、複数の論理回路（Ｉｎｓｔ０〜５）に係るデータと、複数の論理回路（Ｉｎｓｔ０〜５）を接続する複数の線路（Ｎｅｔ１〜５）に係るデータと、複数の論理回路（Ｉｎｓｔ０〜５）及び複数の線路（Ｎｅｔ１〜５）を有する回路に係るデータとを含む。クロストークノイズ解析部（３１）は、回路の後段においてクロストークノイズエラーが発生した場合に、データベース（２１、２２、２３）に基づいて、複数の論理回路（Ｉｎｓｔ０〜５）を解析する。クロストークノイズエラー判定部（３２）は、複数の線路（Ｎｅｔ１〜５）のそれぞれにおいて、クロストークノイズの原因を判定する。なお、クロストークノイズエラー判定部（３２）は、クロストークノイズエラーが無い論理回路（Ｉｎｓｔ０〜５）が見つかるまで、複数の論理回路（Ｉｎｓｔ０〜５）を、後段から前段に向かって順番に１つずつ、クロストークノイズエラーの有無について解析する。
【０００８】
本発明によるクロストークノイズエラー判定プログラムは、（ａ）複数の論理回路（Ｉｎｓｔ０〜５）に係るデータ（２３）と、複数の論理回路（Ｉｎｓｔ０〜５）を接続する複数の線路（Ｎｅｔ１〜５）に係るデータ（２１）と、複数の論理回路（Ｉｎｓｔ０〜５）及び複数の線路（Ｎｅｔ１〜５）を有する回路に係るデータ（２２）とを含むデータベース（２１、２２、２３）を作成するステップと、（ｂ）回路の後段においてクロストークノイズエラーが発生した場合に、データベース（２１、２２、２３）に基づいて、複数の論理回路（Ｉｎｓｔ０〜５）を解析するステップと、（ｃ）複数の線路（Ｎｅｔ１〜５）のそれぞれにおいて、クロストークノイズの原因を判定するステップとを具備してコンピュータに実行させるものである。ステップ（ｃ）は、（ｃ−１）複数の論理回路を、後段から前段に向かって順番に１つずつ、クロストークノイズエラーの有無について解析するステップと、（ｃ−２）クロストークノイズエラーが無い論理回路が見つかった時点で、論理回路より前段における解析を停止するステップとを具備する。
【発明の効果】
【０００９】
本発明のクロストークノイズエラー検出方法、検出装置、検出プログラムによると、後段の論理回路から逆方向にクロストークノイズエラーが発生するか検索しているため、すべての論理回路を確認しなくとも、クロストークノイズエラーの箇所を容易に特定することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、クロストークノイズエラーの判定対象となる回路の回路図の例である。
【図２】図２は、本発明の比較例における、クロストークノイズエラーを判定する方法のフローチャートである。
【図３】図３は、本発明の比較例における、クロストークノイズエラーの判定方法を説明するための回路図である。
【図４】図４は、クロストークノイズエラーについて説明するための波形図である。横軸は時間を示す。
【図５】図５は、一般的なコンピュータの概略図である。
【図６】図６は、本発明によるクロストークノイズエラー判定装置を機能別に説明するためのブロック図である。
【図７】図７は、クロストークノイズエラー判定の対象となる回路に係るデータベースの内容を概略的に説明するための図である。
【図８】図８は、本発明によるクロストークノイズエラー判定方法を説明するためのフローチャートである。
【図９】図９は、本発明によるクロストークノイズエラー判定方法の詳細を説明するためのフローチャートである。
【図１０】図１０は、本発明によるクロストークノイズエラー判定方法の詳細を説明するためのフローチャートである。
【図１１】図１１は、本発明によるクロストークノイズエラー判定の対象となる回路の回路図の例である。
【発明を実施するための形態】
【００１１】
添付図面を参照して、本発明によるクロストークノイズエラー判定方法と、クロストークノイズエラー判定装置と、クロストークノイズエラー判定プログラムを実施するための形態を以下に説明する。
【００１２】
本発明によるクロストークノイズエラー判定方法について説明する。なお、クロストークノイズとは、半導体集積回路などにおいて、複数のネットによって接続された複数のインスタンスを通過する間に電気信号に重畳されてしまった意図しないノイズを指す。また、クロストークノイズエラーとは、クロストークノイズが重畳された電気信号により、フリップフロップ等の回路に入力された場合に引き起こされるエラー動作を指す。
【００１３】
集積回路を設計するにあたって、その回路の動作をコンピュータシミュレーションすることによって、エラーの発生を予測出来る。また、予測されたエラーが発生しないように、回路を修正することが可能である。
【００１４】
判定対象となる回路を、複数のインスタンスと、これらのインスタンスを接続する複数のネットとに分けて考える。インスタンスには、論理回路などが含まれる。ネットには、抵抗、容量、インダクタンスなどが含まれる。なお、ネットには、寄生容量や寄生インダクタンスなどが含まれても良い。これら複数のネットの一部では、クロストークノイズが発生し、その結果、判定対象回路の後段に接続されたフリップフロップにおいてクロストークノイズエラーが発生する。
【００１５】
図１１は、本発明によるクロストークノイズエラー判定の対象となる回路の回路図の例である。この回路の例では、第１のフリップフロップＦＦ１と、第１のネットＮｅｔ１と、第１のインスタンスＩｎｓｔ１と、第２のネットＮｅｔ２と、第２のインスタンスＩｎｓｔ２と、第３のネットＮｅｔ３と、第３のインスタンスＩｎｓｔ３と、第４のネットＮｅｔ４と、第４のインスタンスＩｎｓｔ４と、第５のネットＮｅｔ５と、第２のフリップフロップＦＦ２とが、この順番に直列に接続されている。
【００１６】
なお、この回路の例においては、信号が第１のフリップフロップＦＦ１から第２のフリップフロップＦＦ２に向けて流れるので、ＦＦ１側が前段側であり、ＦＦ２側が後段側である。
【００１７】
ここでは、最後段のＦＦ２におけるクロストークノイズエラーの解消を目的とする場合を説明するが、その対象はフリップフロップに限らず、どのような回路であっても本発明は適用可能である。
【００１８】
図４は、クロストークノイズエラーについて説明するための波形図である。横軸は時間を示す。３つの波形図は、上から順に、対象となるフリップフロップＦＦ２に供給されるクロック信号と、同じくＦＦ２に供給されるデータ信号と、データ保持期間とをそれぞれ示す。ＦＦ２のクロック信号とデータ信号において、縦軸は、信号の論理状態を示す。また、データ保持期間において、縦軸は、データ信号が動作して良い時間と、動作してはいけない時間とを示す。すなわち、Ｌｏｗ状態はＦＦ２のデータ信号が動作しても良い時間を示し、Ｈｉｇｈ状態はＦＦ２のデータ信号が動作してはいけない時間であるセットアップホールド時間を示す。
【００１９】
図４の例において、ＦＦ２に供給されるクロック信号は、時刻０．０にＬｏｗ状態からＨｉｇｈ状態に変化する。データ保持期間は、時刻０．０を跨いで、時刻−Ｓから時刻Ｈまで続いている。また、ＦＦ２に供給されるデータ信号がＨｉｇｈ状態となるタイミングウィンドウは、時刻Ａから時刻Ｂまで続いている。すなわち、ＦＦ２に供給されるデータ信号は、時刻ＡにおいてＬｏｗ状態からＨｉｇｈ状態に変化し、時刻ＢにおいてＨｉｇｈ状態からＬｏｗ状態に戻っている。
【００２０】
ここで、時刻Ａは時刻−Ｓと時刻Ｈとの間に位置している。すなわち、ＦＦ２のデータ信号が、動作してはいけない時間において動作している。この場合、フリップフロップＦＦ２の動作がエラーを起こしてしまう。このように、タイミングウィンドウとセットアップホールド時間が一部でも重なると、フリップフロップＦＦ２の動作がエラーを起こす。
【００２１】
本発明によるクロストークノイズエラー判定装置について説明する。
【００２２】
図５は、一般的なコンピュータの概略図である。一般的なコンピュータは、バス１０と、メモリ２０と、ＣＰＵ３０と、入力部４０と、出力部５０とを具備する。バス１０は、メモリ２０と、ＣＰＵ３０と、入力部４０と、出力部５０とに接続されている。本発明によるクロストークノイズエラー判定装置は、このような一般的コンピュータまたはその一部として実現されても良い。
【００２３】
図６は、本発明によるクロストークノイズエラー判定装置を機能別に説明するためのブロック図である。本発明によるクロストークノイズエラー判定装置は、バス１０と、ＳＰＥＦ（Ｓｔａｎｄａｒｄ  Ｐａｒａｓｉｔｉｃ  Ｅｘｃｈａｎｇｅ  Ｆｏｒｍａｔ）データライブラリの記憶部２１と、ネットリストの記憶部２２と、セルライブラリの記憶部２３と、ノイズレポートの記憶部２４と、クロストークノイズエラー発生ネット名一覧の記憶部２５と、クロストークノイズ解析部３１と、クロストークエラー判定部３２と、クロストークエラー発生ネット修正部３３とを具備する。バス１０以外の全ての構成要素は、バス１０に接続されており、また、バス１０を介して自由にデータ通信を行うことが出来る。なお、これらの構成要素は全て、一般的なコンピュータの一部として実現されても良い。
【００２４】
図７は、クロストークノイズエラー判定の対象となる回路に係るデータベースの内容を概略的に説明するための図である。図７（ａ）は、各インスタンスにおけるノイズ量のシミュレーション値を示すテーブルの内容の例である。この例において、１行目はインスタンスの番号を示し、２行目はそれぞれのインスタンスにおける、ノイズ量のシミュレーション値を示す。図７（ｂ）は、セルライブラリ２３に記憶されている内容の例である。この例において、１行目はセルの種類を示し、２行目はそれぞれのセルの種類に対応する許容ノイズ量を示す。図７（ｃ）は、ノイズレポート２４の内容の例である。図７（ｃ）は、図７（ａ）と、図７（ｂ）と、各インスタンスと各セルとの対応関係とを組み合わせることによって得られる。
【００２５】
図８は、本発明によるクロストークノイズエラー判定方法を説明するためのフローチャートである。このフローチャートは、回路に係るデータベースを用意するステップＳ２０１と、クロストークノイズ解析ステップＳ２０２と、ノイズレポート出力ステップＳ２０３と、クロストークノイズエラー判定ステップＳ２０４と、クロストークノイズ違反ネット名の一覧を出力するステップＳ２０５と、クロストークノイズエラー発生ネットを修正するステップＳ２０６とを具備する。ここで、これらのステップＳ２０１〜Ｓ２０６は、この順番に実行される。
【００２６】
ステップＳ２０１では、判定対象回路に係るデータベースとして、ＳＰＥＦデータライブラリ２１と、ネットリスト２２と、セルのライブラリ２３とが用意される。
【００２７】
ＳＰＥＦデータライブラリ２１は、判定対象回路における寄生素子に係る情報を記憶する。
【００２８】
ネットリスト２２は、判定対象回路における各構成素子同士の接続関係に係る情報を記憶する。
【００２９】
セルのライブラリ２３は、判定対象回路における各インスタンスに対応するセルの種類や性質に係る情報を記憶する。セルのライブラリ２３は、特に、各種セルの許容ノイズ量の情報を記憶することが望ましい。
【００３０】
なお、判定対象回路に係るデータベースは、必ずしもＳＰＥＦデータライブラリ２１と、ネットリスト２２と、セルのライブラリ２３とに分ける必要は無い。また、上記以外の情報を有していても良い。
【００３１】
図９は、本発明によるクロストークノイズエラー判定方法の詳細を説明するためのフローチャートである。このフローチャートは、ステップＳ２０２の詳細な動作を説明するためのものである。
【００３２】
ステップＳ２０２は、データ信号側のタイミングウィンドウを求めるステップＳ２１１と、フリップフロップのセットアップホールド時間を取得するステップＳ２１２と、フリップフロップ動作中に発生するクロストークノイズエラーを出力するＳ２１３とを具備する。ステップＳ２１１〜ステップＳ２１３は、この順番に実行される。
【００３３】
図１０は、本発明によるクロストークノイズエラー判定方法の詳細を説明するためのフローチャートである。このフローチャートは、ステップＳ２０４の詳細な動作を説明するためのものである。
【００３４】
ステップＳ２０４は、クロストークノイズエラーが発生したフリップフロップのインスタンス名を取得するステップＳ２２１と、エラーが発生したフリップフロップのデータ端子に接続するインスタンス情報を取得するステップＳ２２２と、インスタンスの出力側のネット名を取得するステップＳ２２３と、インスタンスのノイズ量がセルの許容ノイズ量より大きいかどうかを判定するステップＳ２２４と、入力側に接続するインスタンス情報を取得するステップＳ２２５と、ステップＳ２２５のインスタンスがフリップフロップかどうかを判定するステップＳ２２６と、ステップＳ２２３で取得したネット名を全て出力するステップＳ２２７と、全てのフリップフロップを処理したかどうかを判定するステップＳ２２８とを具備する。
【００３５】
ステップＳ２２１〜ステップＳ２２４は、この順番に実行される。ステップＳ２２４において、インスタンスのノイズ量がセルの許容ノイズ量より大きい場合は次にステップＳ２２５が実行され、そうではない場合はステップＳ２２７が実行される。ステップＳ２２５の次にはステップＳ２２６が実行される。ステップＳ２２６において、ステップＳ２２５のインスタンスがフリップフロップである場合は、次にステップＳ２２７が実行され、そうではない場合はステップＳ２２３が実行される。ステップＳ２２７の次にはステップＳ２２８が実行される。ステップＳ２２８において、全てのフリップフロップを処理してある場合はこのフローチャートが終了し、そうではない場合には次にステップＳ２２２が実行される。
【００３６】
本発明によるクロストークノイズエラー判定方法における各ステップの詳細について説明する。
【００３７】
まず、クロストークノイズ解析部３１が、ステップＳ２０２を実行する。ここで、ステップＳ２１１〜ステップＳ２１３が実行される。
【００３８】
ステップＳ２１１において、判定対象となるフリップフロップＦＦ２の、データ信号側のタイミングウィンドウと、クロック信号側のタイミングウィンドウとが求められる。ステップＳ２１２において、ＦＦ２のセットアップホールド時間が求められる。ステップＳ２１３において、データ信号側のタイミングウィンドウと、クロック信号側のタイミングウィンドウと、セットアップホールド時間とを比較する。例えば、セットアップホールド時間とタイミングウィンドウとが一部でも重なっていた場合動作エラーが発生するので、フリップフロップＦＦ２はクロストークノイズエラーが発生すると判定する。その結果、ＦＦ２の動作中に発生するクロストークノイズエラーが特定される。この結果は、ステップＳ２０３において、ノイズレポート２４として出力され記憶される。ノイズレポート２４には、例えば、クロストークノイズエラーが発生すると判定されたフリップフロップがリストアップされている。
【００３９】
次に、クロストークエラー判定部３２が、ステップＳ２０４を実行する。ここで、ステップＳ２２１〜Ｓ２２８が実行される。
【００４０】
ステップＳ２０４においてクロストークノイズエラーが発生していると判定された場合、判定対象回路の各インスタンスについて、ノイズエラーの有無を判定する。この判定は、ステップＳ２２４において、インスタンスのノイズ量と、セルの許容ノイズ量とを比較することで行う。インスタンスのノイズ量が、セルの許容ノイズ量よりも大きい場合は、そのインスタンスにノイズエラーがあると判定され、そうではない場合は、ノイズエラーが無いと判定される。
【００４１】
あるインスタンスにノイズエラーがあった場合は、ステップＳ２２３〜ステップＳ２２６間をループする。このとき、ＦＦ２の前段に接続されている各インスタンスを、後段から前段に向けて順番に調べる。
【００４２】
ステップＳ２２６において、インスタンスがフリップフロップであったなら、そのフリップフロップは判定対象となる回路の最前段のＦＦ１である。したがって、各インスタンスの判定が終了している。
【００４３】
また、ノイズエラーが無いと判定されたインスタンスが見つかったなら、この場合も各インスタンスの判定を中断して良い。図１１の例では、第４のインスタンスＩｎｓｔ４でエラーがあり、第３のインスタンスＩｎｓｔ３でエラーが無いと判定される。したがって、フリップフロップＦＦ２に直接的にクロストークノイズエラーを発生させていた箇所は、第３のインスタンスＩｎｓｔ３の出力ネットｎｅｔ４であることを検知することができる。なお、ここでノイズエラーの判定が中断されるので、実際には、第２のインスタンスＩｎｓｔ２と第１のインスタンスＩｎｓｔ１についてはノイズエラーの判定を行う必要がない。
【００４４】
各インスタンスの判定が終了すると、ステップＳ２２７が実行される。ステップＳ２２７では、判定対象回路の後段から見て最初に発見されたノイズエラーの無いインスタンスより後段の全てのネットについて、その名前がリストアップされる。
【００４５】
ステップＳ２２７の次に、ステップＳ２２８が実行される。判定対象回路が複数ある場合は、残りの判定対象回路についてもステップＳ２２２〜ステップＳ２２７をループする。全ての判定対象回路について判定が終了すると、ステップＳ２０４は終了し、ステップＳ２０５が実行される。
【００４６】
ステップＳ２０５では、ステップＳ２２７でリストアップされたネット名が、クロストークノイズエラー発生ネット名一覧２５として出力されて記憶される。
【００４７】
ステップＳ２０５の次に、ステップＳ２０６が出力される。ステップＳ２０６では、クロストークノイズエラー発生ネット名一覧２５に基づいて、判定対象回路の設計が修正される。このとき、判定対象回路のうち、クロストークノイズエラーを発生させているネットのみを修正すれば良い。すなわち、判定対象回路の後段から見て最初に発見されたノイズエラーの無いインスタンスより前段のネットについては、修正の必要が無い。なお、具体的な修正方法については、本発明の範囲外であり、従来技術を使用可能であるので、説明を省略する。
【００４８】
本発明のクロストークノイズエラー判定方法によれば、一部のネット及び一部のインスタンスについては、解析も修正も不要となる。修正は多大な時間と労力とを必要とするので、その一部だけでも削減される効果は大きい。
【００４９】
なお、インスタンスとして、インバータ回路以外に、多入力の論理回路などが含まれても良い。この場合、多入力のインスタンスの前段には複数のネットが接続されていることになる。複数のインスタンスを、後段から前段に向けて走査するにあたって、どのインスタンスを先に調べるべきかについてのルールを、予め設定することが好ましい。例えば、ツリー型グラフにおける幅優先探査または深度優先探査と同様の手法を用いても良い。
【００５０】
本発明の効果を説明するための比較例を、図１、２、３を用いて説明する。
【００５１】
図１は、クロストークノイズエラーの判定対象となる回路の回路図の例である。この回路の例では、第１のフリップフロップＦＦ１と、第１のネットＮｅｔ１と、第１のインスタンスＩｎｓｔ１と、第２のネットＮｅｔ２と、第２のインスタンスＩｎｓｔ２と、第３のネットＮｅｔ３と、第３のインスタンスＩｎｓｔ３と、第４のネットＮｅｔ４と、第４のインスタンスＩｎｓｔ４と、第５のネットＮｅｔ５と、第２のフリップフロップＦＦ２とが、この順番に直列に接続されている。
【００５２】
この回路の例では、最後段である第２のフリップフロップＦＦ２においてクロストークノイズエラーが発生している。
【００５３】
図２は、比較例における、クロストークノイズエラーを判定する方法のフローチャートである。このクロストークノイズエラー判定方法は、回路に係るデータベースを用意するステップＳ１０１と、クロストークノイズ解析ステップＳ１０２と、ノイズレポート出力ステップＳ１０３と、クロストークノイズエラーのネットを修正するステップＳ１０４とを具備する。これらのステップＳ１０１〜Ｓ１０４は、この順番に直列に接続されている。
【００５４】
図３は、比較例における、クロストークノイズエラーの判定方法を説明するための回路図である。図３の回路図は、図１と同じであるので説明を省略する。
【００５５】
ステップＳ１０２では、第１のインスタンスＩｎｓｔ１〜第４のインスタンスＩｎｓｔ４のそれぞれにおいて、エラーが発生しているかどうかを判定する。その結果、図３のような結果が得られたと仮定して説明を続ける。すなわち、第１のインスタンスＩｎｓｔ１と、第３のインスタンスＩｎｓｔ３とにおいて、エラーは発生していない。また、第２のインスタンスＩｎｓｔ２と、第４のインスタンスＩｎｓｔ４とにおいて、エラーが発生している。
【００５６】
この結果は、ステップＳ１０３において、ノイズレポートとして出力されて記憶される。このノイズレポートに基づいて、ステップＳ１０４が実行される。
【００５７】
ステップＳ１０４では、エラーが発生している第２のインスタンスＩｎｓｔ２と、第４のインスタンスＩｎｓｔ４とに係る設計を修正する。こうすることで、第２のフリップフロップＦＦ２におけるクロストークノイズエラーが解消される。
【００５８】
このような比較例では、回路中の全インスタンスに対してクロストークノイズエラーを判定し、エラーのあるインスタンスに係る設計をすべて修正することになる。このような方法では、どのネットのノイズエラーが実際に集積回路の動作に影響を与えていたかを検出することができない。その結果、クロストークノイズを発生しているインスタンスではあるが、実際には集積回路の動作には影響を与えない場合であっても、修正することになり、必要以上の修正が必要になる可能性もある。
【００５９】
一方本発明によれば、後段から前段に向かって順々に各インスタンスのクロストークノイズエラーを判定し、クロストークノイズエラーがないインスタンスを検出したところで、そのインスタンスの出力ネット（インスタンスと後段のインスタンスとを接続する配線等）がクロストークノイズエラーの発生箇所と特定できる。図３の場合は、インスタンスＩｎｓｔ４とインスタンスＩｎｓｔ３とをクロストークノイズエラー判定したところで、Ｉｎｓｔ３とＩｎｓｔ４の間のネットにクロストークノイズエラーが発生していることを検出できる。このように、本発明では、Ｉｎｓｔ２とＩｎｓｔ１のクロストークノイズエラーの検出を行わないため、必要以上に修正箇所を増やすことはない。つまり、発明では、後段の出力結果に直接影響を及ぼすクロストークノイズエラー箇所のみを修正することができる。
【符号の説明】
【００６０】
１０  バス
２０  メモリ
２１  ＳＰＥＦデータライブラリ
２２  ネットリスト
２３  セルのライブラリ
２４  ノイズレポート
２５  クロストークノイズエラー発生ネット名一覧
３０  ＣＰＵ
３１  クロストークノイズ解析部
３２  クロストークノイズエラー判定部
３３  クロストークノイズエラー発生ネット修正部
４０  入力部
５０  出力部
Ｉｎｓｔ０〜５  インスタンス
ＣｅｌｌＡ〜Ｃ  セル
Ｎｅｔ１〜１〜５  ネット
【図１】
2010198381.tif 000003
【図２】
2010198381.tif 000004
【図３】
2010198381.tif 000005
【図４】
2010198381.tif 000006
【図５】
2010198381.tif 000007
【図６】
2010198381.tif 000008
【図７】
2010198381.tif 000009
【図８】
2010198381.tif 000010
【図９】
2010198381.tif 000011
【図１０】
2010198381.tif 000012
【図１１】
2010198381.tif 000013