(57)【特許請求の範囲】
【請求項１】
複数のクロックに同期して動作する複数の素子を含む対象回路のタイミング検証を行うタイミング検証装置において、
前記複数のクロックを規定したクロック情報にもとづいて、前記複数のクロックの中で互いに非倍周の関係にあるクロックに対して、一方レベルから他方レベルへ変化する時刻が、互いに一致しない範囲で最も近接した時間区間すなわち最小区間を算出する最小区間算出手段と、
非倍周の関係にある一対のクロックがそれぞれ入力されるとともに、データ転送側素子とデータ受信側素子の関係にある前記複数の素子の中の一対と、それらの間のデータ信号の経路と、を含む回路部分に対して、前記対象回路を規定した回路接続情報を参照し、しかも、前記一対のクロックの変化時刻が前記最小区間の関係にあることを条件として、前記データ受信側素子へ入力されるクロックと前記データ信号との間のタイミングの検証を実行するタイミング評価手段と、
を備えることを特徴とするタイミング検証装置。
【請求項２】
複数のクロックに同期して動作する複数の素子を含む対象回路のタイミング検証を行うタイミング検証装置において、
前記複数のクロックを規定したクロック情報にもとづいて、前記複数のクロックの中で互いに非倍周の関係にあるクロックに対して、一方レベルから他方レベルへ変化する時刻が、互いに一致しない範囲で最も近接した時間区間すなわち最小区間を算出する最小区間算出手段と、
前記対象回路を規定した回路接続情報にもとづいて、前記複数の素子の中から順次一つずつ対象素子として選び出す対象素子検索手段と、
前記対象素子検索手段で選び出された前記対象素子をデータ受信側素子とし、これに対応するデータ転送側素子を、前記回路接続情報にもとづいて、前記複数の素子の中から探し出すパスサーチ手段と、
前記クロック情報にもとづいて、前記データ転送側素子と前記データ受信側素子とにそれぞれ入力される一対のクロックの関係が、倍周と非倍周のいずれであるかについて判定を行うクロック判定手段と、
前記データ転送側素子、前記データ受信側素子、およびそれらの間のデータ信号の経路を含む回路部分に対して、前記回路接続情報を参照するとともに、前記判定の結果が倍周であるときには、前記クロック情報を参照し、前記判定の結果が非倍周であるときには、前記一対のクロックの変化時刻が前記最小区間の関係にあることを条件とすることによって、前記データ受信側素子へ入力されるクロックと前記データ信号との間のタイミングの検証を実行するタイミング評価手段と、
を備えることを特徴とするタイミング検証装置。
【請求項３】
請求項２に記載のタイミング検証装置において、
前記タイミング評価手段は、さらに、前記パスサーチ手段が前記データ転送側素子を探し出せなかったときには、前記対象素子と当該対象素子へ入力される外部入力データ信号の経路とを含む回路部分に対して、前記回路接続情報を参照するとともに、前記外部入力データ信号を規定するデータ入力タイミング情報と、前記クロック情報とにもとづいて、前記対象素子へ入力されるクロックと前記外部入力データ信号との間のタイミングの検証を実行することを特徴とするタイミング検証装置。
【請求項４】
請求項１ないし請求項３のいずれかに記載のタイミング検証装置において、
前記対象回路の配線の信号遅延時間を規定する配線遅延情報と、前記回路接続情報とにもとづいて、前記複数の素子へクロックを伝達する複数のクロック配線の遅延時間を個別に算出するクロックディレイ算出手段と、
前記複数の素子ごとに、当該素子に入力されるクロックに関して前記クロック情報が規定するタイミングに前記遅延時間を加算することによって、ディレイ付きクロック情報を作成するクロックディレイ加算手段と、
をさらに備え、
前記最小区間算出手段は、前記クロック情報の代わりに前記ディレイ付きクロック情報を参照することによって、前記最小区間を算出することを特徴とするタイミング検証装置。
【請求項５】
請求項４に記載のタイミング検証装置において、
前記対象回路のレイアウトを規定するレイアウト情報から、前記回路接続情報と前記配線遅延時間とを抽出するバックアノテーション手段を、
さらに備えることを特徴とするタイミング検証装置。
【請求項６】
請求項１ないし請求項３のいずれかに記載のタイミング検証装置において、
前記最小区間算出手段は、算出した前記最小区間に、データ転送サイクル情報に規定されるデータ転送サイクルを加算し、
前記タイミング評価手段は、前記データ転送サイクルが加算された値を前記最小区間として参照することを特徴とするタイミング検証装置。
【請求項７】
請求項１ないし請求項６のいずれかに記載のタイミング検証装置において、
前記最小区間算出手段は、非倍周の関係にあるクロックに対して、双方の周期の最小公倍数に相当する期間の中で、前記最小区間を探索することを特徴とするタイミング検証装置。
【請求項８】
請求項１ないし請求項７のいずれかに記載のタイミング検証装置において、
前記最小区間算出手段は、前記複数のクロックの中で互いに非倍周の関係にあるクロックのすべての組合わせに対して、前記最小区間を算出することを特徴とするタイミング検証装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、タイミング検証装置に関し、特に、互いに倍周の関係にない複数のクロックが入力される対象回路のタイミング検証を可能にするための改良に関する。
【０００２】
【従来の技術】
従来、ＬＳＩ（大規模集積回路）に代表される大規模回路のタイミング検証を行うための有力な方法として、静的タイミング検証方法が知られている。静的タイミング検証方法は、同期回路を対象としたパス解析手法による検証方法であり、検証用パターンを用いることなしに、網羅的かつ高速に処理できるという利点を有している。
【０００３】
図２５は、静的タイミング検証を行う従来のタイミング検証装置を示すブロック図である。この従来装置１５０には、もっとも主要な装置部として静的タイミング検証部１２０が備わっている。そして、静的タイミング検証部１２０には、対象回路すなわちタイミング検証の対象とされる回路の構成に関する情報である回路接続情報７、および、対象回路に入力される外部入力データのタイミングを記述したデータ入力タイミング情報９が入力される。また、バックアノテーション検証を行う場合、配線容量および配線抵抗に関する情報を有した配線遅延情報２３が入力される。
【０００４】
さらに、静的タイミング検証部１２０は複数のクロックで動作する対象回路の検証が可能なように構成されている。検証回路に入力される全てのクロックのタイミングに関する情報、すなわちクロック情報１２１が準備される。そして、静的タイミング検証部１２０にて、検証動作の進行にともなって、クロック情報１２１の中から、必要なクロック情報が適宜使用される。
【０００５】
静的タイミング検証部１２０は、これらの情報にもとづいて、対象回路の静的タイミング検証を実行する。
【０００６】
【発明が解決しようとする課題】
しかしながら、従来装置１５０では、複数のクロックで動作する回路を検証対象とすることができるとはいえ、これらの複数のクロックは、互いに倍周の関係である必要があった。すなわち、図２６のタイミングチャートに例示するように、各組に属する転送側のクロックＴ２１と受信側のクロックＴ２２との間で、周期が自然数倍の関係にある必要があるという問題点があった。
【０００７】
この発明は、従来の装置における上記した問題点を解消するためになされたもので、静的タイミング検証の利点を生かしつつ、互いに倍周の関係にない複数のクロックが入力される対象回路に対しても、タイミング検証を実行することができるタイミング検証装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
第１の発明の装置は、複数のクロックに同期して動作する複数の素子を含む対象回路のタイミング検証を行うタイミング検証装置において、前記複数のクロックを規定したクロック情報にもとづいて、前記複数のクロックの中で互いに非倍周の関係にあるクロックに対して、一方レベルから他方レベルへ変化する時刻が、互いに一致しない範囲で最も近接した時間区間すなわち最小区間を算出する最小区間算出手段と、非倍周の関係にある一対のクロックがそれぞれ入力されるとともに、データ転送側素子とデータ受信側素子の関係にある前記複数の素子の中の一対と、それらの間のデータ信号の経路と、を含む回路部分に対して、前記対象回路を規定した回路接続情報を参照し、しかも、前記一対のクロックの変化時刻が前記最小区間の関係にあることを条件として、前記データ受信側素子へ入力されるクロックと前記データ信号との間のタイミングの検証を実行するタイミング評価手段と、を備えることを特徴とする。
【０００９】
第２の発明の装置は、複数のクロックに同期して動作する複数の素子を含む対象回路のタイミング検証を行うタイミング検証装置において、前記複数のクロックを規定したクロック情報にもとづいて、前記複数のクロックの中で互いに非倍周の関係にあるクロックに対して、一方レベルから他方レベルへ変化する時刻が、互いに一致しない範囲で最も近接した時間区間すなわち最小区間を算出する最小区間算出手段と、前記対象回路を規定した回路接続情報にもとづいて、前記複数の素子の中から順次一つずつ対象素子として選び出す対象素子検索手段と、前記対象素子検索手段で選び出された前記対象素子をデータ受信側素子とし、これに対応するデータ転送側素子を、前記回路接続情報にもとづいて、前記複数の素子の中から探し出すパスサーチ手段と、前記クロック情報にもとづいて、前記データ転送側素子と前記データ受信側素子とにそれぞれ入力される一対のクロックの関係が、倍周と非倍周のいずれであるかについて判定を行うクロック判定手段と、前記データ転送側素子、前記データ受信側素子、およびそれらの間のデータ信号の経路を含む回路部分に対して、前記回路接続情報を参照するとともに、前記判定の結果が倍周であるときには、前記クロック情報を参照し、前記判定の結果が非倍周であるときには、前記一対のクロックの変化時刻が前記最小区間の関係にあることを条件とすることによって、前記データ受信側素子へ入力されるクロックと前記データ信号との間のタイミングの検証を実行するタイミング評価手段と、を備えることを特徴とする。
【００１０】
第３の発明の装置は、第２の発明のタイミング検証装置において、前記タイミング評価手段は、さらに、前記パスサーチ手段が前記データ転送側素子を探し出せなかったときには、前記対象素子と当該対象素子へ入力される外部入力データ信号の経路とを含む回路部分に対して、前記回路接続情報を参照するとともに、前記外部入力データ信号を規定するデータ入力タイミング情報と、前記クロック情報とにもとづいて、前記対象素子へ入力されるクロックと前記外部入力データ信号との間のタイミングの検証を実行することを特徴とする。
【００１１】
第４の発明の装置は、第１ないし第３のいずれかの発明のタイミング検証装置において、前記対象回路の配線の信号遅延時間を規定する配線遅延情報と、前記回路接続情報とにもとづいて、前記複数の素子へクロックを伝達する複数のクロック配線の遅延時間を個別に算出するクロックディレイ算出手段と、前記複数の素子ごとに、当該素子に入力されるクロックに関して前記クロック情報が規定するタイミングに前記遅延時間を加算することによって、ディレイ付きクロック情報を作成するクロックディレイ加算手段と、をさらに備え、前記最小区間算出手段は、前記クロック情報の代わりに前記ディレイ付きクロック情報を参照することによって、前記最小区間を算出することを特徴とする。
【００１２】
第５の発明の装置は、第４の発明のタイミング検証装置において、前記対象回路のレイアウトを規定するレイアウト情報から、前記回路接続情報と前記配線遅延時間とを抽出するバックアノテーション手段を、さらに備えることを特徴とする。
【００１３】
第６の発明の装置は、第１ないし第３のいずれかの発明のタイミング検証装置において、前記最小区間算出手段は、算出した前記最小区間に、データ転送サイクル情報に規定されるデータ転送サイクルを加算し、前記タイミング評価手段は、前記データ転送サイクルが加算された値を前記最小区間として参照することを特徴とする。
【００１４】
第７の発明の装置は、第１ないし第６のいずれかの発明のタイミング検証装置において、前記最小区間算出手段は、非倍周の関係にあるクロックに対して、双方の周期の最小公倍数に相当する期間の中で、前記最小区間を探索することを特徴とする。
【００１５】
第８の発明の装置は、第１ないし第７のいずれかの発明のタイミング検証装置において、前記最小区間算出手段は、前記複数のクロックの中で互いに非倍周の関係にあるクロックのすべての組合わせに対して、前記最小区間を算出することを特徴とする。
【００１７】
【発明の実施の形態】
＜１．実施の形態１＞
はじめに、実施の形態１のタイミング検証装置について説明する。
【００１８】
＜1-1.装置全体の構成と動作＞
図１は、この実施の形態のタイミング検証装置１０１の構成を示すブロック図である。図１において、１は対象回路に入力されるクロックの中で周期の異なるクロック同士によるデータ転送が行われるブロックで使用されるデータ転送側のクロックの立ち上がり時期、周期等に関する情報、すなわちデータ転送側クロック情報であり、２はデータ転送側クロック情報１と同じブロックで使用されるデータ受信側クロック情報である。これらのクロック情報１，２は、外部から付与される。
【００１９】
また、３はデータ転送側クロック情報とデータ受信側クロック情報とが同時に立ち上がる時刻（同期時刻）を算出する同期時刻算出部、４は同期時刻算出部３で算出された数値情報である同期時刻、５はデータ転送側クロック情報とデータ受信側クロック情報と同期時刻とにもとづいて、立ち上がりエッジ最小区間を算出する立ち上がりエッジ最小区間算出部、そして、６は立ち上がりエッジ最小区間算出部５で算出された数値情報である立ち上がりエッジ最小区間である。
【００２０】
さらに、７は対象回路の構成に関して外部から付与される情報である回路接続情報、そして、９はデータ入力タイミング情報である。回路接続情報７は、対象回路の回路図に相当する情報、すなわち対象回路を構成する素子の種類およびそれらの素子の接続等に関する情報であり、外部から付与される。データ入力タイミング情報９は、対象回路に入力される外部入力データの変化する時期に関する情報であり、特にクロックの立ち上がり時期との相対関係が明確となるように記述されている。このデータ入力タイミング情報９も、外部から付与される。
【００２１】
最後に、８はクロック情報１，２、立ち上がりエッジ最小区間６、回路接続情報７、およびデータ入力タイミング情報９にもとづいて、静的タイミング検証を実行する静的タイミング検証部である。
【００２２】
図２は、装置１０１が検証の対象とする対象回路の一例を示す回路図である。この対象回路Ｙ１には、周期の異なる３個のクロックＴ１〜Ｔ３、および２個の外部入力データＤata１，Ｄata２が、外部から入力端子（図中に白三角で示す）を通じて入力される。そして、対象回路Ｙ１は、これらの信号にもとづいて所定の論理演算を実行し、出力信号Ｏｕｔを出力端子（図中に白三角で示す）を通じて外部へと出力するように構成されている。
【００２３】
クロックＴ１〜Ｔ３の中で、クロックＴ１，Ｔ３は互いに倍周の関係にあり、クロックＴ２は他のクロックＴ１，Ｔ３と非倍周の関係にある。すなわち、対象回路Ｙ１には、互いに非倍周の関係にあるクロックを含む複数のクロックが入力されている。
【００２４】
対象回路Ｙ１が備える６個の素子Ｕ１〜Ｕ６は、クロック端子Ｔへ入力されるクロックの立ち上がりエッジ、すなわちノーマルレベルからアクティブレベルへの遷移に同期して、データ入力端子Ｄへ入力されたデータ信号を、クロックのつぎの立ち上がりエッジまで保持して出力端子Ｑへと出力し続けるフリップフロップである。素子Ｓ１〜Ｓ３は、信号の伝搬に遅延をもらたらす任意の素子、あるいは素子の組み合わせである。また、素子Ｓ４は、ＮＡＮＤ素子である。
【００２５】
以下において、この対象回路Ｙ１を例として、装置１０１の動作について説明する。装置１０１は図３のフローチャートに沿って動作する。すなわち、装置１０１が動作を開始すると、まずステップＳ１１において、同期時刻算出部３へデータ転送側クロック情報１およびデータ受信側クロック情報２が付与される。このようなクロック情報１，２は、外部から手作業で、あるいは外部の入力装置を用いて付与される。
【００２６】
図４に、対象回路Ｙ１に対するクロック情報１，２の内容を例示する。クロック情報１，２は、対象回路Ｙ１のクロックＴ１〜Ｔ３を転送側と受信側とに振り分けることによって得られる。振り分けは、対象回路Ｙ１の回路構成とは無関係に、考え得るすべての組み合わせに対して行われるのが望ましい。この場合には、クロック情報１，２は、図４に示すように、６通りの組合わせＮ＝１〜６に対応して準備される。
【００２７】
つぎに、処理はステップＳ１２へと移行し、クロック情報１，２にもとづいて、同期時刻算出部３で同期時刻の算出が行われる。この算出は、データ転送側クロックとデータ受信側クロックとが、非倍周の関係にある組合わせに対して行われる。すなわち、図４に示す組合わせＮ＝１，３，４，６に対して、それぞれ実行され、算出された数値の組は同期時刻４として、立ち上がりエッジ最小区間算出部５へと送出される。
【００２８】
同期時刻Ｓｙｎ１は、クロック情報１，２に属する一組のクロックの周期Ｃｙｃ１，Ｃｙｃ２の最小公倍数として算出される。すなわち、同期時刻Ｓｙｎ１は、数式（１）：｛Ｓｙｎ１＝周期Ｃｙｃ１，Ｃｙｃ２の最小公倍数｝で与えられる。例えば、組合わせＮ＝１に対しては、同期時刻Ｓｙｎ１は、クロックＴ１の周期Ｃｙｃ１とクロックＴ２の周期Ｃｙｃ２の最小公倍数として与えられる。
【００２９】
つぎに、処理はステップＳ１３へと移行し、クロック情報１，２および同期時刻４にもとづいて、立ち上がりエッジ最小区間算出部５によって、立ち上がりエッジ最小区間の算出が行われる。この算出も、図４における組合わせＮ＝１，３，４，６のそれぞれについて行われる。以下に、クロックＴ１，Ｔ２の組合わせ（Ｎ＝１）の例について、計算手順を説明する。
【００３０】
まず、同期時刻Ｓｙｎ１のつぎの同期時刻Ｓｙｎ２を、数式（２）：｛Ｓｙｎ２＝Ｓｙｎ１×２｝にしたがって算出する。つづいて、データ転送側クロック立ち上がり時刻Ｔ１rise_timeが、数式（３）：｛Ｔ１rise_time＝Ｃｙｃ１×ｍ｝で定義される。同様に、データ受信側クロック立ち上がり時刻Ｔ２rise_timeが、数式（４）：｛Ｔ２rise_time＝Ｃｙｃ２×ｎ｝で定義される。ここで、変数ｍ，ｎは、いずれも自然数である。
【００３１】
つづいて、数式（５）：｛Ｔ１rise_time＜Ｔ２rise_time｝、数式（６）：｛Ｓｙｎ１≦Ｔ１rise_time＜Ｓｙｎ２｝、および、数式（７）：｛Ｓｙｎ１＜Ｔ２rise_time≦Ｓｙｎ２｝で与えられる３通りの条件をすべて満たす範囲で、Ｔ２rise_timeとＴ１rise_timeの差における最小値が、立ち上がりエッジ最小区間Ｔriseとして算出される。すなわち、立ち上がりエッジ最小区間Ｔriseは、数式（５）〜（７）を満たすすべての自然数ｍ，ｎに対する最小値を、数式（８）：｛Ｔrise＝ＭＩＮ（Ｔ２rise_time−Ｔ１rise_time）｝にもとづいて算出することによって得られる。
【００３２】
その結果、図５のタイミングチャートに例示するように、立ち上がりエッジ最小区間Ｔriseは、クロックＴ１の立ち上がり時刻から、それ以後のクロックＴ２の立ち上がり時刻までの時間間隔の最小値として与えられる。言い替えると、立ち上がりエッジ最小区間Ｔriseは、クロックＴ１，Ｔ２の間で、立ち上がり時刻が互いに一致しない範囲で最も近接した時間間隔として付与される。したがって、クロックＴ２が入力される受信側の素子が正常な動作を行う上で、最も厳しい条件が抽出される。
【００３３】
＜1-2.静的タイミング検証部８の構成と動作＞
つぎに、処理はステップＳ１４へと移行する。この段階では、静的タイミング検証部８によって静的タイミング検証が実行される。図６は静的タイミング検証部８の内部構成を示すブロック図である。また、図７は静的タイミング検証部８における処理手順を示すフローチャートである。以下に、図６および図７に沿って、静的タイミング検証部８の内部構成と動作について説明する。
【００３４】
ステップＳ１４の処理が開始されると、まず、ステップＳ１４１において、対象回路Ｙ１の中の当面の検証対象とされる対象素子が検索される。この処理は、対象素子検索部８１によって遂行される。すなわち、対象素子検索部８１は、回路接続情報７にもとづいて、対象回路Ｙ１の中で、当面の検証対象とすべき素子を検索する。
【００３５】
つぎに、処理はステップＳ１４２へと移行し、パスサーチが実行される。すなわち対象素子に入力されるクロック、さらに受信側の素子とそのクロックがサーチされる。この処理は、対象素子検索部８１で選択された対象素子に関する情報と、回路接続情報７とにもとづいて、パスサーチ部８２で実行される。
【００３６】
仮に、対象素子として素子Ｕ２が選択されたとすると、パスサーチによって、素子Ｕ２に入力されるクロックＴ２が、まず探し出される。つづいて、素子Ｕ２に入力される信号を辿って、素子Ｓ１および素子Ｕ１、さらに素子Ｕ１に入力されるクロックＴ１が探し出される。そして、クロックＴ１はデータ転送側クロックとして認識され、クロックＴ２はデータ受信側クロックとして認識される。その結果、以後の処理では、図２の対象回路Ｙ１の中で、素子Ｕ１，Ｕ２およびそれらの間に介在する素子Ｓ１を含む回路ブロックＸ１のみが取扱いの対象となる。
【００３７】
つぎに、処理はステップＳ１４３へと移行する。ここでは、クロック判定部８３によって、クロックに関する第１の判定が行われる。すなわち、選択された対象素子への入力データが外部入力データＤata１，２であるか否かが判定される。判定結果が「Ｙｅｓ」であれば、処理はステップＳ１４５へと移行し、「Ｎｏ」であれば、ステップＳ１４４へと移行する。
【００３８】
ステップＳ１４４では、引き続きクロック判定部８３において、第２の判定が行われる。すなわち、データ転送側クロックとデータ受信側クロックとの間の関係が、倍周の関係であるか否かが判定される。この判定は、クロック情報１，２にもとづいて行われる。そして、判定の結果が、「Ｙｅｓ」であれば、処理はステップＳ１３６へと移行し、「Ｎｏ」であれば、ステップＳ１４７へと移行する。
【００３９】
対象素子が素子Ｕ２である例では、入力データは外部入力データＤata１，Ｄata２のいずれでもないので、処理は、ステップＳ１４３からステップＳ１４４へと移る。そして、図４に示すように、クロックＴ１，Ｔ２に関しては、互いに非倍周の関係にあるので、処理はさらに、ステップＳ１４７へと移る。
【００４０】
対象素子が、例えば素子Ｕ３である場合には、入力データは外部入力データＤata１であるので、処理はステップＳ１４３からステップＳ１４５へと移行する。
【００４１】
また、対象素子が、例えばＵ６である場合には、クロックＴ１がデータ転送側クロックとなり、クロックＴ３がデータ受信側クロックとなる。そして、入力データは外部入力データＤata１，Ｄata２のいずれでもないので、処理は、ステップＳ１４３からステップＳ１４４へと移る。さらに、クロックＴ１，Ｔ３の関係は、図４に示すように、倍周の関係にあるので、処理はステップＳ１４４からステップＳ１４６へと移行する。
【００４２】
ステップＳ１４５〜Ｓ１４７の処理は、タイミング評価部８４によって実行される。これらの中で、ステップＳ１４５，Ｓ１４６の処理は、従来装置１５０の静的タイミング検証部１２０でも行われる周知の処理である。
【００４３】
ステップＳ１４５では、例えば対象素子Ｕ３に関して、クロック情報１，２のいずれかが供給するクロックＴ１と、データ入力タイミング情報９が供給する外部入力データＤata１との間のタイミングが、回路接続情報７で規定される素子Ｕ３の正常動作に必要な、セットアップ時間、ホールド時間等の条件を満たしているか否かの判定が行われる。また、外部入力データＤata１の経路に素子が介在する場合には、回路接続情報７を参照することによって、この素子による遅延時間が考慮される。
【００４４】
また、ステップＳ１４６では、例えば対象素子Ｕ６に関して、クロック情報１，２で供給されるクロックＴ１，Ｔ２が、回路接続情報７で規定される素子Ｕ６の正常動作に必要な、セットアップ時間、ホールド時間等の条件を満たしているか否かの判定が行われる。このとき、回路接続情報７にもとづいて、素子Ｕ５と素子Ｕ６の間に介在する素子Ｓ３による信号遅延時間をも考慮して判定が行われる。
【００４５】
ステップＳ１４７では、クロック情報１，２、および回路接続情報７に加えて、さらに、立ち上がりエッジ最小区間６が参照される。そして、例えば対象素子が素子Ｕ２である場合には、図８のタイミングチャートに示すように、クロックＴ１が立ち上がった後に、立ち上がりエッジ最小区間Ｔriseを経た時点でクロックＴ２が立ち上がるという最も厳しい条件に対して、タイミング検証が行われる。
【００４６】
すなわち、データ転送側クロック情報１が供給するクロックＴ１の立ち上がり時期と、回路接続情報７が供給する素子Ｕ１の機能とにもとづいて、素子Ｕ１の出力端子Ｑに出力データが現れる時期が算出される。さらに、回路接続情報７が供給する素子Ｓ１の機能にもとづいて、素子Ｓ１による信号遅延時間を考慮した上で、素子Ｕ２のデータ入力端子Ｄへ入力データが到達する時期が算出される。
【００４７】
そして、クロックＴ１の立ち上がり時期から立ち上がりエッジ最小区間Ｔrise後に立ち上がるクロックＴ２と、素子Ｕ２へ到達する入力データとが、例えばセットアップ時間Ｓetupおよびホールド時間Ｈoldに関する条件を満たしているか否かが判定される。例えば、素子Ｕ２へ入力データが到達する時期が、クロックＴ２の立ち上がり時期よりも、セットアップ時間Ｓetup以上先行しており、しかも、素子Ｕ２への入力データがつぎに変化する時期が、クロックＴ２の立ち上がり時期よりも、ホールド時間Ｈold以上遅れておれば、タイミングエラーなしと判定される。
【００４８】
逆に、これらの条件の中のいずれか一つが満たされていないときは、タイミングエラー有りと判定される。このように、立ち上がりエッジ最小区間６を用いて、もっとも厳しい条件に対するタイミング検証が行われる。しかも、素子Ｓ１による信号遅延時間も考慮した検証が行われる。
【００４９】
なお、ステップＳ１４５〜Ｓ１４７では、タイミング評価部８４によって、検証すべき信号間でタイミングの比較が行われるために、タイミングエラーの有無だけではなく、例えばマージンの大きさ、エラーの程度などの定量的な評価も容易に得られる。
【００５０】
ステップＳ１４５〜ステップＳ１４７のいずれかの処理が完了すると、処理はステップＳ１４８へと移行する。ステップＳ１４８では、対象回路Ｙ１の中に、未検証の対象素子が残っているか否かが判定される。残っておれば、処理はステップＳ１４１へと戻り、新たな対象素子が検索される。残っていなければ、ステップＳ１４の処理を終了し、それにともなって装置１０１の処理全体が終了する（図３）。
【００５１】
このように、ステップＳ１４１〜Ｓ１４８のサイクルを反復することによって、対象回路Ｙ１におけるタイミング検証を要する素子Ｕ１〜Ｕ６のすべてに対して、タイミング検証が順次行われる。上記において例を挙げなかった素子Ｕ４，Ｕ５，Ｕ１を対象素子とするサイクルでは、つぎのように処理が行われる。
【００５２】
素子Ｕ４を対象素子とするサイクルでは、図４に示すように、クロックＴ１がデータ転送側クロック、クロックＴ２がデータ受信側クロックとして扱われる。したがって、ステップＳ１４７が実行される。また、素子Ｕ５を対象素子とするサイクルでは、素子Ｕ３を対象素子とするサイクルと同様に、ステップＳ１４３が実行され、クロックＴ１と外部入力データＤata２とが比較される。
【００５３】
さらに、素子Ｕ１を対象素子とする場合には、図４に示すように、クロックＴ２をデータ転送側クロック、クロックＴ１をデータ受信側クロックとして扱うサイクルと、クロックＴ３をデータ転送側クロック、クロックＴ１をデータ受信側クロックとして扱うサイクルとの、２通りのサイクルの双方が実行される。前者は素子Ｕ４を転送側素子とするものであり、後者は素子Ｕ６を転送側素子とするものである。前者では、ステップＳ１４７が実行され、後者では、ステップＳ１４６が実行される。
【００５４】
以上に説明したように、非倍周の関係を有する複数のクロックが入力されるために従来装置１５０では検証不可能であった対象回路に対しても、装置１０１を用いることによって、静的タイミングの手法にもとづいた能率のよい検証が可能となる。
【００５５】
なお、図４に示すように、ステップＳ１１において、６通りの組合わせＮ＝１〜６のすべてに対して、クロック情報１，２を準備する好ましい例を示したが、対象回路Ｙ１の構成を考慮して、例えば、Ｎ＝１〜３，５の組み合わせについてのみ、クロック情報１，２を準備することも可能である。
【００５６】
また、ステップＳ１１において、クロック情報１，２を外部から同期時刻算出部３へと直接に入力する例を示したが、装置１０１に記憶媒体を設けておいて、この記憶媒体にあらかじめクロック情報１，２を記憶させておいてもよい。この場合には、ステップＳ１１では、記憶媒体からクロック情報１，２を同期時刻算出部３へと読み出す処理が行われる。
【００５７】
さらに、回路接続情報７、データ入力タイミング情報９などについても、これらを記憶媒体に一旦記憶させておいて、静的タイミング検証部８の動作にともなって、記憶媒体から適宜読み出すように、装置１０１を構成してもよい。
【００５８】
＜２．実施の形態２＞
図９は、実施の形態２のタイミング検証装置１０２の構成を示すブロック図である。なお、以下の図において、図１および図６に示した装置１０１と同一部分については、同一符号を付してその詳細な説明を略する。
【００５９】
図９において、２０は対象回路のレイアウト情報、２１はレイアウト情報２０から回路接続情報および配線遅延情報を抽出するバックアノテーション装置、２２はバックアノテーション装置２１により抽出された対象回路の回路接続情報、そして、２３はバックアノテーション装置２１によって算出された配線遅延情報である。レイアウト情報２０は、外部から付与される。
【００６０】
また、２４は回路接続情報２２と配線遅延情報２３にもとづいて、クロック配線の遅延時間、すなわちクロック配線を伝搬するクロックの遅延時間（クロックディレイ）を算出し、データ転送側クロックとデータ受信側クロックのそれぞれに分けてクロックディレイを出力するクロックディレイ算出部、２５はクロックディレイ算出部２４により算出されたデータ転送側クロックディレイ、そして、２６はクロックディレイ算出部２４により算出されたデータ受信側クロックディレイである。
【００６１】
さらに、２７はデータ転送側クロック情報１にデータ転送側クロックディレイ２５を加算し、データ受信側クロック情報２にデータ受信側クロックディレイ２６を加算するクロックディレイ加算部、２８はデータ転送側クロック情報１にデータ転送側クロックディレイ２５が加算されたデータ転送側ディレイ付きクロック情報、そして、２９はデータ受信側クロック情報２にデータ受信側クロックディレイ２６が加算されたデータ受信側ディレイ付きクロック情報である。
【００６２】
以下において、図２に示した対象回路Ｙ１を例として、装置１０２の動作について説明する。装置１０２は図１０のフローチャートに沿って動作する。すなわち、装置１０２が動作を開始すると、まずステップＳ２０において、回路接続情報と配線遅延情報の抽出が行われる。この処理は、外部から入力された対象回路Ｙ１に関するレイアウト情報２０にもとづいて、バックアノテーション装置２１によって実行される。
【００６３】
レイアウト情報２０は、対象回路Ｙ１のレイアウト設計に付随して作成されるものである。装置１０２では、このレイアウト情報２０を付与することによってタイミング検証が行われる。すなわち、装置１０２では、タイミング検証を行うために、新規にデータを作成する必要がないという利点がある。
【００６４】
バックアノテーション装置２１によって抽出された回路接続情報２２は、装置１０１に供給される回路接続情報７に相当する。すなわち、回路接続情報２２は、対象回路Ｙ１を構成する各種の素子とそれらの接続に関する情報を有している。バックアノテーション装置２１は、配線遅延情報２３を算出する際に、まずレイアウト情報２０から配線容量および配線抵抗を抽出する。
【００６５】
つぎに、処理はステップＳ２１へと移行し、クロックディレイ算出部２４によるクロックディレイの算出が行われる。すなわち、図２において、クロックＴ１〜Ｔ３が伝送されるクロック配線の遅延時間が算出される。すなわち、各クロックＴ１〜Ｔ３を外部から受信するための対象回路Ｙ１の入力端子（図２において白三角で示している）から、各素子Ｕ１〜Ｕ６のクロック端子Ｔまでの配線の遅延時間が算出される。
【００６６】
クロックディレイ算出部２４ではさらに、図４に示したようなデータ転送側クロックとデータ受信側クロックの組合わせＮ＝１〜６毎に、データ転送側クロックディレイ２５とデータ受信側クロックディレイ２６とが作成され出力される。例えば、図４における組合わせＮ＝１に対しては、図１１の回路図に示すように、クロックＴ１の配線の遅延時間Ｄelay１がデータ転送側クロックディレイ２５として出力され、クロックＴ２の配線の遅延時間Ｄelay２がデータ受信側クロックディレイ２６として出力される。
【００６７】
つぎに、処理はステップＳ２２へと移行し、データ転送側クロック情報１およびデータ受信側クロック情報２が、外部からクロックディレイ加算部２７へと入力される。このステップＳ２２は、つぎのステップＳ２３に先立って実行されればよく、ステップＳ２０〜Ｓ２２との前後関係は任意でよい。
【００６８】
つぎに、ステップＳ２３において、クロックディレイ加算部２７によるクロックディレイの加算処理が行われる。すなわち、データ転送側クロック情報１にデータ転送側クロックディレイ２５を加算してデータ転送側ディレイ付きクロック情報２８として出力し、データ受信側クロック情報２にデータ受信側クロックディレイ２６を加算してデータ受信側ディレイ付きクロック情報２９として出力する。
【００６９】
以下のステップＳ２４〜Ｓ２６では、実施の形態１の装置１０１におけるステップＳ１３〜Ｓ１４において、クロック情報１，２をディレイ付きクロック情報２８，２９に置き換えた処理が行われる。したがって、ステップＳ２５の処理では、例えば図４における組合わせＮ＝１に対しては、数式（９）：｛Ｕ１rise_time＝Ｔ１rise_time＋Ｄelay１｝で与えられる、ディレイ付きデータ転送側クロック立ち上がり時刻Ｕ１rise_timeが、ステップＳ１３におけるデータ転送側クロック立ち上がり時刻Ｔ１rise_timeの代わりに用いられる。
【００７０】
また、数式（１０）：｛Ｕ２rise_time＝Ｔ２rise_time＋Ｄelay２｝で与えられる、ディレイ付きデータ受信側クロック立ち上がり時刻Ｕ２rise_timeが、ステップＳ１３におけるデータ受信側クロック立ち上がり時刻Ｔ２rise_timeの代わりに用いられる。すなわち、数式（５）〜（８）において、立ち上がり時刻Ｔ１rise_time，Ｔ２rise_timeを、ディレイ付き立ち上がり時刻Ｕ１rise_time，Ｕ２rise_timeに置き換えることによって、立ち上がりエッジ最小区間Ｔriseが算出される。
【００７１】
図１２のタイミングチャートに示すように、ディレイ付き立ち上がり時刻Ｕ１rise_time，Ｕ２rise_timeは、対象回路Ｙ１の入力端子に入力されたクロックＴ１，Ｔ２の立ち上がり時刻Ｔ１rise_time，Ｔ２rise_timeに、クロック配線の遅延時間Ｄelay１，Ｄelay２をそれぞれ加算した値に相当する。すなわち、立ち上がり時刻Ｕ１rise_time，Ｕ２rise_timeは、素子Ｕ１，Ｕ２のクロック端子Ｔへ到達するクロックＴ１，Ｔ２の立ち上がり時間に相当する。
【００７２】
また、ステップＳ２６では、図７と同様に、ステップＳ１４１〜Ｓ１４８のサイクルが実行される。つまり、ステップＳ１４５，Ｓ１４６，Ｓ１４７で、クロック情報１，２、および配線遅延情報２３にもとづいて、クロック配線の遅延を考慮したタイミング検証が行われる。
【００７３】
またステップＳ２６を実行する静的タイミング検証部８の内部構成および各種情報との関係は、図１３のブロック図で示される。すなわち、静的タイミング検証部８の内部構成は、実施の形態１の装置１０１の静的タイミング検証部８（図６）と同一である。配線遅延情報２３がタイミング評価部８４に供給されている点が、装置１０１の静的タイミング検証部８とは異なっている。
【００７４】
例えばステップＳ１４１で素子Ｕ２が対象素子として選択されたサイクルでは、ステップＳ１４７の処理が実行される。このとき、図１４のタイミングチャートに示すように、素子Ｕ１のクロック端子Ｔへ入力されるクロックＴ１が立ち上がった後に、立ち上がりエッジ最小区間Ｔriseを経た時点で、素子Ｕ２のクロック端子Ｔへ入力されるクロックＴ２が立ち上がるという最も厳しい条件に対して、タイミング検証が行われる。
【００７５】
すなわち、データ転送側クロック情報１が供給するクロックＴ１の立ち上がり時期と、回路接続情報２２が供給する素子Ｕ１の機能と、配線遅延情報２３とにもとづいて、素子Ｕ１の出力端子Ｑに出力データが現れる時期が算出される。さらに、回路接続情報２２が供給する素子Ｓ１の機能にもとづいて、素子Ｓ１による信号遅延時間と、配線遅延情報２３とにもとづいた配線遅延時間Delay3を考慮した上で、素子Ｕ２のデータ入力端子Ｄへ入力データが到達する時期が算出される。
【００７６】
そして、クロックＴ１の立ち上がり時期から立ち上がりエッジ最小区間Ｔrise後に立ち上がるクロックＴ２と、素子Ｕ２へ到達する入力データとが、例えばセットアップ時間Ｓetupおよびホールド時間Ｈoldに関する条件を満たしているか否かが判定される。
【００７７】
以上のように、装置１０２を用いることによって、非倍周の関係を有する複数のクロックが入力される対象回路に対して、クロック配線の遅延時間をも考慮したタイミング検証を、静的タイミングの手法にもとづいて能率よく実行することが可能である。
【００７８】
なお、クロック情報１，２、データ入力タイミング情報９、およびレイアウト情報２０などを、外部から直接に入力する代わりに、記憶媒体を設けておいて、この記憶媒体にあらかじめこれらの情報を記憶させておき、装置が動作するのにともなって、装置の各部が記憶媒体から適宜必要な情報を読み出すように、装置１０２を構成してもよい。
【００７９】
＜３．実施の形態３＞
実施の形態１，２では、いずれもクロックの立ち上がりエッジで動作する素子を有する対象回路を例として、その動作を説明した。しかしながら、立ち下がりエッジで動作する素子を有する回路、あるいはさらに、クロックのレベルで動作するいわゆるレベルセンシティブ素子を有する回路をも、対象回路とすることが可能である。この実施の形態では、データ転送サイクル数を外部から設定可能とした特徴あるタイミング検証装置について説明するとともに、特にレベルセンシティブ素子を有する回路を対象回路した動作例を示す。
【００８０】
図１５は、この実施の形態のタイミング検証装置の動作説明に用いる対象回路の一例を示す回路図である。この対象回路Ｙ２は、図２に示した対象回路Ｙ１において、クロックのエッジで動作するフリップフロップとしての素子Ｕ１〜Ｕ６を、クロックのレベルで動作するラッチに置き換えた構造を有している。
【００８１】
すなわち、対象回路Ｙ２に備わる素子Ｕ１〜Ｕ６は、クロック端子Ｇへ入力されるクロックの立ち下がりエッジ、すなわちノーマルレベルからアクティブレベルへの遷移において、データ入力端子Ｄへ入力されたデータ信号を、クロックがロウレベル（アクティブレベル）である期間にわたって保持して出力端子Ｑへと出力し続けるラッチである。クロックがハイレベル（ノーマルレベル）である期間には、データ入力端子Ｄへ入力されたデータ信号は、出力端子Ｑへとそのまま出力される。
【００８２】
対象回路Ｙ２に入力されるクロックＴ１〜Ｔ３は、対象回路Ｙ１に入力されるクロックＴ１〜Ｔ３と同一であるとする。したがって、図４に示した内容は、対象回路Ｙ２のクロックＴ１〜Ｔ３に対しても、そのまま妥当している。
【００８３】
図１６は、この実施の形態のタイミング検証装置１０３の構成を示すブロック図である。図１６において、３０は外部より入力されるデータ転送サイクル、３１はデータ転送側クロック情報１、データ受信側クロック情報２、同期時刻４、およびデータスルーラッチ段数３０にもとづいて、立ち下がりエッジ最小区間を算出する立ち下がりエッジ最小区間算出部、そして、３２は立ち下がりエッジ最小区間算出部３１で算出された立ち下がりエッジ最小区間である。
【００８４】
以下において、図１５に示した対象回路Ｙ２を例として、装置１０３の動作について説明する。装置１０３は図１７のフローチャートに沿って動作する。すなわち、装置１０３が動作を開始すると、まずステップＳ３１〜Ｓ３２の処理が実行される。これらの処理は、装置１０１におけるステップＳ１１〜Ｓ１２の処理と同一である。
【００８５】
その後、処理はステップＳ３３へと移行し、立ち下がりエッジ最小区間算出部３１による立ち下がりエッジ最小区間の算出が行われる。この算出は、ステップＳ３２と同様に、図４における組合わせＮ＝１，３，４，６のそれぞれについて行われる。以下に、クロックＴ１，Ｔ２の組合わせ（Ｎ＝１）の例について、計算手順を説明する。
【００８６】
まず、同期時刻Ｓｙｎ１のつぎの同期時刻Ｓｙｎ２を、先述の数式（２）にしたがって算出する。つづいて、データ転送側クロック立ち下がり時刻Ｔ１fall_timeが、数式（１１）：｛Ｔ１fall_time＝Ｃｙｃ１×ｍ｝で定義される。同様に、データ受信側クロック立ち下がり時刻Ｔ２fall_timeが、数式（１２）：｛Ｔ２fall_time＝Ｃｙｃ２×ｎ｝で定義される。ここで、変数ｍ，ｎは、いずれも自然数である。
【００８７】
つづいて、数式（１３）：｛Ｔ１fall_time＋（データ転送サイクル）＜Ｔ２fall_time｝、数式（１４）：｛Ｓｙｎ１≦Ｔ１fall_time＜Ｓｙｎ２｝、および、数式（１５）：｛Ｓｙｎ１＜Ｔ２fall_time≦Ｓｙｎ２｝で与えられる３通りの条件をすべて満たす範囲で、Ｔ２fall_timeとＴ１fall_timeの差における最小値が、立ち下がりエッジ最小区間Ｔfallとして算出される。
【００８８】
すなわち、立ち下がりエッジ最小区間Ｔfallは、数式（１３）〜（１５）を満たす全ての自然数ｍ，ｎに対する最小値を、数式（１６）：｛Ｔfall＝ＭＩＮ（Ｔ２fall_time−Ｔ１fall_time）｝にもとづいて算出することによって得られる。なお、数式（１３）で用いられる「データ転送サイクル」は、データ転送サイクル３０として外部から入力される値である。
【００８９】
その結果、データ転送サイクルとして「ゼロ」が入力された場合には、図１８のタイミングチャートに示すように、立ち下がりエッジ最小区間Ｔfallは、クロックＴ１の立ち下がり時刻から、それ以後のクロックＴ２の立ち下がり時刻までの時間間隔の最小値として与えられる。一方、データ転送サイクルとして「１」が入力された場合には、図１９のタイミングチャートに示すように、立ち下がりエッジ最小区間Ｔfallは、クロックＴ１の立ち下がり時刻から、それ以後のクロックＴ２の立ち下がり時刻までの時間間隔の最小値に、クロックＴ２の１サイクル分を付加した値として与えられる。
【００９０】
つぎに、処理はステップＳ３４へと移行する。ステップＳ３４では、図７と同様に、ステップＳ１４１〜Ｓ１４８のサイクルが実行される。例えばステップＳ１４１で素子Ｕ２が対象素子として選択されたサイクルでは、ステップＳ１４７の処理が実行される。このとき、図１８または図１９のタイミングチャートに示すように、クロックＴ１が立ち下がった後に、立ち下がりエッジ最小区間Ｔfallを経た時点で、クロックＴ２が立ち下がるという最も厳しい条件に対して、タイミング検証が行われる。
【００９１】
すなわち、データ転送側クロック情報１が供給するクロックＴ１の立ち下がり時期と、回路接続情報７が供給する素子Ｕ１の機能とにもとづいて、素子Ｕ１の出力端子Ｑに出力データが現れる時期が算出される。さらに、回路接続情報７が供給する素子Ｓ１の機能にもとづいて、素子Ｓ１による信号遅延時間Ｄelayを考慮した上で、素子Ｕ２のデータ入力端子Ｄへ入力データが到達する時期が算出される。
【００９２】
そして、クロックＴ１の立ち下がり時期から立ち下がりエッジ最小区間Ｔfall後に立ち下がるクロックＴ２と、素子Ｕ２へ到達する入力データとが、例えばセットアップ時間Ｓetupおよびホールド時間Ｈoldに関する条件を満たしているか否かが判定される。データ転送サイクル３０の値は、図１８および図１９に例示するように、素子Ｕ１の出力端子Ｑから素子Ｕ２のデータ入力端子Ｄまでの信号の遅延時間を考慮して適切に定められる。
【００９３】
以上のように、装置１０３を用いることによって、非倍周の関係を有する複数のクロックが入力される対象回路に対して、データ転送サイクルを考慮したタイミング検証を、静的タイミングの手法にもとづいて能率よく実行することが可能である。また、この実施の形態で例示したように、装置１０１〜１０３は、クロックに対してレベルセンシティブな素子を有する対象回路に対しても、利用が可能である。
【００９４】
なお、クロック情報１，２、回路接続情報７、データ入力タイミング情報９、およびデータ転送サイクル３０などを、外部から直接に入力する代わりに、記憶媒体を設けておいて、この記憶媒体にあらかじめこれらの情報を記憶させておき、装置が動作するのにともなって、装置の各部が記憶媒体から適宜必要な情報を読み出すように、装置１０２を構成してもよい。
【００９５】
＜４．実施の形態４＞
図２０は、実施の形態４のタイミング検証装置１０４の構成を示すブロック図である。図２０において、４１は外部より入力される回路接続情報７にもとづいて、対象回路を単一クロック動作論理回路ブロック（以下、「第１種ブロック」と略称する）と異なる２つのクロック周期で動作する論理回路ブロック（以下、「第２種ブロック」と略称する）とに分割する論理回路ブロック分割部、４２は論理回路ブロック分割部４１によって分割された第１種ブロックに関する接続情報（以下、「第１種ブロック接続情報」と略称する）、そして、４３は論理回路ブロック分割部４１によって分割された第２種ブロックに関する情報（以下、「第２種ブロック接続情報」と略称する）である。
【００９６】
また、６１は対象回路に入力されるクロックの立ち上がり時期、周期等に関する情報、すなわちクロック情報である。このクロック情報６１は、外部から付与される。
【００９７】
さらに、６２は第１種ブロックについて、第１種ブロック接続情報４２、クロック情報６１、およびデータ入力タイミング情報９を参照しつつ、従来周知の手法で静的タイミング検証を実行する静的タイミング検証部、４５は静的タイミング検証部６２によるタイミング検証の結果、４６は静的タイミング検証結果４５とクロック情報１とにもとづいて、第２種ブロックに対する動的タイミング検証を行うための入力テストパターンを生成するテストパターン生成部、そして、４７はテストパターン生成部４６によって生成された入力テストパターンである。
【００９８】
また、４８は第２種ブロックについて、入力テストパターン４７にもとづいて、動的タイミング検証を行う動的タイミング検証部、４９は動的タイミング検証部４８によって得られた動的タイミング検証結果、５０は動的タイミング検証結果４９から、第１種ブロックへ入力すべきデータ信号の入力タイミングに関する情報を抽出するデータ入力タイミング抽出部、そして、５１はデータ入力タイミング抽出部５０で抽出されたデータ入力タイミングである。
【００９９】
動的タイミング検証結果４９はテストパターン生成部４６へも入力される。そして、テストパターン生成部４６は、静的タイミング検証結果４５または動的タイミング検証結果４９のいずれかを選択的に参照する。また、データ入力タイミング５１は、静的タイミング検証部６２へも入力される。そして、静的タイミング検証部６２は、データ入力タイミング情報９とデータ入力タイミング５１のいずれかを選択的に参照する。
【０１００】
図２１は、装置１０４が検証の対象とする対象回路の一例を示す回路図である。この対象回路Ｙ３には、周期が必ずしも同一でない６個のクロックＴ１１〜Ｔ１６、および外部入力データＤata１１が、外部から入力端子（図中に白三角で示す）を通じて入力される。そして、対象回路Ｙ３は、これらの信号にもとづいて所定の論理演算を実行し、出力信号Ｏｕｔ１１，Ｏｕｔ１２を出力端子（図中に白三角で示す）を通じて外部へと出力するように構成されている。
【０１０１】
対象回路Ｙ１が備える７個の素子Ｕ１０〜Ｕ１６は、クロック端子Ｔへ入力されるクロックの立ち上がりエッジ、すなわちノーマルレベルからアクティブレベルへの遷移に同期して、データ入力端子Ｄへ入力されたデータ信号を、クロックのつぎの立ち上がりエッジまで保持して出力端子Ｑへと出力し続けるフリップフロップである。素子Ｓ１０１〜Ｓ１０５は、信号の伝搬に遅延をもらたらす任意の素子、あるいは素子の組み合わせである。また、素子Ｓ１０６は、ＮＡＮＤ素子である。
【０１０２】
以下において、この対象回路Ｙ３を例として、装置１０４の動作について説明する。装置１０４は図２２のフローチャートに沿って動作する。すなわち、装置１０４が動作を開始すると、まずステップＳ４１において、外部より回路接続情報７が論理回路ブロック分割部４１へ入力され、クロック情報６１が静的タイミング検証部６２、およびテストパターン生成部４６へと入力される。
【０１０３】
これらの回路接続情報７およびクロック情報６１は、外部から手作業で、あるいは外部の入力装置を用いて付与される。また、これらの情報を論理回路ブロック分割部４１あるいは静的タイミング検証部６２等へ直接入力する代わりに、装置１０４に記憶媒体を設けておき、この記憶媒体へ記憶させてもよい。そうして、静的タイミング検証部６２等では、処理が進行する中で必要に応じて記憶媒体から情報の必要部分を読み出すようにしてもよい。
【０１０４】
つぎに、ステップＳ４２において、論理回路ブロック分割部４１による論理回路ブロックへの分割が行われる。すなわち、対象回路Ｙ３が、第１種ブロックと、第２種ブロックとに分割される。図２１に示すように、対象回路Ｙ３はブロックＢＬ１〜ＢＬ９に分割される。そして、ブロックＢＬ１，ＢＬ４，ＢＬ９は、それぞれクロックＴ１１，Ｔ１４，Ｔ１６のみで動作するブロックであり、いずれも第１種ブロックに属する。ブロックＢＬ２，ＢＬ３，ＢＬ５〜ＢＬ８は、いずれも２個のクロックで動作するブロックであり、第２種ブロックに属する。
【０１０５】
回路接続情報７の中から第１種ブロックに属するブロックＢＬ１，ＢＬ４，ＢＬ９の各々に関する部分を抽出することによって、第１種ブロック接続情報４２が得られる。同様に、第２種ブロックに属するブロックＢＬ２，ＢＬ３，ＢＬ５〜ＢＬ８の各々に関する部分を抽出することによって、第２種ブロック接続情報４３が得られる。
【０１０６】
つぎに、処理はステップＳ４３へと移行し、静的タイミング検証部６２によって、第１種ブロックに分類されたブロックＢＬ１，ＢＬ４，ＢＬ９の中の、最も入力側に位置するブロックＢＬ１に対する静的タイミング検証が行われる。ブロックＢＬ１には、ただ一つのクロックＴ１１が入力されているために、ブロックＢＬ１の静的タイミング検証、すなわち素子Ｕ１０，Ｕ１１に対する静的タイミング検証は、単一クロックで動作する対象回路に対する従来周知の手法で行われる。
【０１０７】
このとき、第１種ブロック接続情報４２にもとづいて、素子Ｕ１０，Ｕ１１の動作、セットアップ時間Ｓetup，ホールド時間Ｈold等の特性、および素子Ｓ１０１による遅延時間ＤelayＡが把握される。また、データ入力タイミング情報９にもとづいて外部入力データＤata１１のタイミングが把握され、クロック情報６１にもとづいてクロックＴ１１のタイミングが把握される。タイミング検証の結果は、静的タイミング検証結果４５として出力される。
【０１０８】
つぎに、ステップＳ４４で出力側にブロックが存在するか否かが判定される。ブロックＢＬ１の出力側には、第２種ブロックであるブロックＢＬ２が存在するので、判定結果は「Ｙｅｓ」であり、処理はステップＳ４６へと移行す。ステップＳ４６では、ブロックＢＬ２に対する動的タイミング検証を実行するための入力テストパターンが、ブロックＢＬ１に対する静的タイミング検証結果４５にもとづいて作成される。すなわち、テストパターン生成部４６によって、ブロックＢＬ２への２つの入力信号のパターン、すなわち素子Ｕ１１のデータ入力端子Ｄへ入力されるデータ信号とクロック端子Ｔへ入力されるクロック信号のパターンが生成される。
【０１０９】
図２３は、テストパターン生成部４６で作成されるブロックＢＬ２の入力テストパターンの例を示すタイミングチャートである。図２３に示すように、素子Ｕ１１のデータ入力端子Ｄへ入力されるデータ信号Ｕ１１／Ｄは、クロック端子Ｔへ入力されるクロック信号Ｔ１１が２度立ち上がる毎に変化し、しかも、遅延時間ＤelayＡだけ遅延している。
【０１１０】
つぎに、処理はステップＳ４７へ移行し、動的タイミング検証部４８によって、ブロックＢＬ２に対する動的タイミング検証が行われる。動的タイミング検証は、論理シミュレーションを用いてタイミング検証を行うものであり、従来周知の手法である。動的タイミング検証部４８は、第２種ブロック接続情報４３にもとづいて、ブロックＢＬ２を構成する各素子Ｕ１１，Ｕ１２，Ｓ１０２の種類と接続状態を把握し、入力テストパターン４７が入力されたときの、各素子の挙動をシミュレートする。
【０１１１】
そして、シミュレーションの結果にもとづいて、セットアップ時間Ｓetup、ホールド時間Ｈold等の条件を満たしているか否かが判定される。したがって、素子Ｓ１０２による遅延時間ＤelayＢをも考慮した検証が行われる。検証の結果は、動的タイミング検証結果４９として出力される。
【０１１２】
つぎに、ステップＳ４８において、出力側に第１種ブロックが接続されているか否かが判定される。ブロックＢＬ２の出力側には第２種ブロックであるブロックＢＬ３が接続されているので、判定の結果は「Ｎｏ」であり、処理はステップＳ４６へと戻る。ステップＳ４６では、ブロックＢＬ３に対する動的タイミング検証を実行するための入力テストパターンが、ブロックＢＬ２に対する動的タイミング検証結果４９にもとづいて作成される。
【０１１３】
その後、処理はステップＳ４７へ移行し、新たに作成された入力テストパターン４７にもとづいて、ブロックＢＬ３に対する動的タイミング検証が、動的タイミング検証部４８によって実行される。
【０１１４】
ブロックＢＬ３の出力側には第１種ブロックであるブロックＢＬ４が接続されているので、つづくステップＳ４８では、「Ｙｅｓ」と判定される。したがって、処理はステップＳ４９へと移行する。ステップＳ４９では、ブロックＢＬ３に対する動的タイミング検証結果４９から、ブロックＢＬ４のデータ入力タイミング、すなわち素子Ｕ１４のデータ入力端子Ｄへ入力されるデータの入力タイミングが抽出される。この処理は、データ入力タイミング抽出部５０によって行われ、得られたデータは、データ入力タイミング５１として出力される。
【０１１５】
データ入力タイミング抽出部５０による抽出は、図２４のタイミングチャートに例示するように、例えば、素子Ｕ１２のデータ入力端子Ｄに入力されるデータが変化する時刻と、クロック端子Ｔへ入力されるクロックＴ１２が変化する時刻との間の時間差が、最小となる４種類のタイミングを抽出することによって遂行される。図２４に示すsetup(rise)，setup(fall)，hold(rise)，およびhold(fall)が、これらの４種類のタイミングにおける最小時間差である。
【０１１６】
これらの中で、括弧中に「rise」、および「fall」と記された時間差は、それぞれ、入力データが立ち上がるとき、および立ち下がるときの時間差である。また、「setup」、および「hold」と記された時間差は、それぞれ、セットアップ時間Setup、およびホールド時間Holdを指す。
【０１１７】
つぎに、処理はステップＳ４３へ移り、静的タイミング検証部６２によって、ブロックＢＬ４に対する静的タイミング検証が実行される。このとき、データ入力タイミング情報９は参照されず、代わりに、データ入力タイミング５１が参照される。
【０１１８】
ブロックＢＬ４の出力側には、もはやブロックは存在しないので、つづくステップＳ４４では、「Ｎｏ」と判定される。その結果、処理はステップＳ４５へ移行する。ステップＳ４５では、未検証のブロックが対象回路Ｙ３の中に存在するか否かが判定される。ブロックＢＬ５をはじめとするブロックが、未検証のまま残されているので、「Ｙｅｓ」と判定され、処理はステップＳ４３へと移行する。
【０１１９】
以上の処理によって、ブロックＢＬ１，ＢＬ２，ＢＬ３，ＢＬ４の系列に沿ったタイミング検証が完了する。同様の処理を反復することによって、ブロックＢＬ１，ＢＬ５，ＢＬ６，ＢＬ４の系列、および、ブロックＢＬ１，ＢＬ７，ＢＬ８，ＢＬ９の系列のタイミング検証が行われる。これらすべての検証が完了すると、ステップＳ４５において、はじめて「Ｎｏ」との判定が得られ、すべての処理が完了する。
【０１２０】
対象回路Ｙ３では、いずれの系列においても、第１種ブロックと第１種ブロックの間には、第２種ブロックのみが存在したが、例えば、ブロックＢＬ１，ＢＬ２，ＢＬ３，ＢＬ４の系列において、第２種ブロックであるＢＬ２，ＢＬ３の間に、第１種ブロック（仮に、ブロックＢＬ１０とする）が存在する対象回路に対しても、装置１０４を用いて検証を行うことが可能である。
【０１２１】
以上のように、装置１０４は、静的タイミングの手法と動的タイミングの手法を回路ブロック毎に適宜使い分けることによって、周期が同一でない複数のクロックが入力される対象回路に対するタイミング検証を可能としている。
【０１２２】
なお、対象回路Ｙ３に入力される複数のクロックは、周期が異なるだけでなく、互いに独立で同期しないクロックであってもよい。これらのいずれであっても、装置１０４は、対象回路の検証を全く同様に実行する。
【０１２３】
＜５．変形例＞
上記各実施の形態の装置１０１〜１０４は、それぞれにおいて例示した形態に限らず、クロックの立ち上がり、立ち下がりのいずれに同期して動作する回路をも検証対象とすることができる。すなわち、対象回路は、一般に各クロックのノーマルレベルからアクティブレベルへの変化時刻に同期して動作するものであればよい。
【０１２４】
さらに、実施の形態３で例示したように、クロックのレベルで動作するレベルセンシティブな回路をも検証対象とすることが可能である。実施の形態３では、ロウレベルがアクティブレベルである例を示したが、いうまでもなくアクティブレベルがハイレベルであってもよい。
【０１２５】
【発明の効果】
第１の発明の装置では、非倍周の関係にある一対のクロックがそれぞれ入力されるとともに、データ転送側素子とデータ受信側素子の関係にある素子の中のデータ受信側素子について、入力されるデータ信号とクロック信号の間のタイミング検証が行われる。検証は一対のクロックが変化する時期が最小区間の関係にあるという最も厳しい条件に対して行われるので、検証の目的は達成される。しかも、この検証の手法は静的タイミングの手法に属する。すなわち、静的タイミングの高速性を損なうことなく、非倍周の関係にあるクロックが入力される対象回路のタイミング検証が行われる。
【０１２６】
第２の発明の装置では、対象素子検索手段、パスサーチ手段、およびクロック判定手段が備わり、しかも、タイミング評価手段は、クロック判定手段の判定に応じて、一対のクロックにおける倍周、非倍周の関係に適応した静的タイミングの手法を選択して実行する。このため、複数のクロックが入力される対象回路において、クロック間の関係が倍周、非倍周のいずれであっても、あるいは双方の関係を含んでいても、データ転送側素子とデータ受信側素子の関係を有するすべてのデータ受信側素子に対して、静的タイミング検証の手法で網羅的にタイミング検証が行われる。
【０１２７】
第３の発明の装置では、パスサーチ手段がデータ転送側素子を探し出せなかったとき、すなわちクロックに同期して動作するデータ転送側素子を介することなく、データ信号が外部から対象素子へと入力される場合には、データ入力タイミング情報を参照して、対象素子のタイミング検証が行われる。したがって、複数のクロックが入力される対象回路において、クロック間の関係が倍周、非倍周のいずれであっても、あるいは双方の関係を含んでいても、対象回路に含まれるすべての素子に対して、静的タイミング検証の手法で網羅的にタイミング検証が行われる。
【０１２８】
第４の発明の装置では、最小区間の算出にクロック配線の遅延時間が反映されているので、非倍周の関係を有する複数のクロックが入力される対象回路に対して、クロック配線の遅延時間をも考慮したタイミング検証が、静的タイミングの手法にもとづいて高速に実行される。
【０１２９】
第５の発明の装置では、バックアノテーション手段が備わるので、対象回路のレイアウト設計に付随して作成されるレイアウト情報を利用することができ、回路接続情報、および配線遅延時間に関する情報を別途準備する必要がない。すなわち、タイミング検証を行うのに必要な労力、時間が節減される。
【０１３０】
第６の発明の装置では、外部から適宜設定されるデータ転送サイクルが、最小区間に加算されるので、非倍周の関係を有する複数のクロックが入力される対象回路に対して、データ転送サイクルを考慮したタイミング検証が、静的タイミングの手法にもとづいて能率よく行われる。
【０１３１】
第７の発明の装置では、非倍周の関係にあるクロックに対して、双方の周期の最小公倍数に相当する期間の中で、最小区間の探索が行われるので、能率が良くしかも探索漏れがない。
【０１３２】
第８の発明の装置では、最小区間算出手段が、対象回路に入力される複数のクロックの中で互いに非倍周の関係にあるクロックのすべての組合わせに対して、前記最小区間を算出するので、最小区間の算出を必要とする組合わせを、回路接続情報を参照して選択する必要がない。すなわち、処理の能率が高められる。
【図面の簡単な説明】
【図１】  実施の形態１の装置のブロック図である。
【図２】  対象回路の一例を示すブロック図である。
【図３】  実施の形態１の装置の動作を示すフローチャートである。
【図４】  クロック情報の例を示す説明図である。
【図５】  実施の形態１の装置の動作を説明するタイミングチャートである。
【図６】  実施の形態１の静的タイミング検証部のブロック図である。
【図７】  実施の形態１の静的タイミング検証部のフローチャートである。
【図８】  実施の形態１の装置の動作を説明するタイミングチャートである。
【図９】  実施の形態２の装置のブロック図である。
【図１０】  実施の形態２の装置の動作を示すフローチャートである。
【図１１】  対象回路の一部を示すブロック図である。
【図１２】  実施の形態２の装置の動作を示すタイミングチャートである。
【図１３】  実施の形態１の静的タイミング検証部のブロック図である。
【図１４】  実施の形態２の装置の動作を示すタイミングチャートである。
【図１５】  対象回路の別の例を示すブロック図である。
【図１６】  実施の形態３の装置のブロック図である。
【図１７】  実施の形態３の装置の動作を示すフローチャートである。
【図１８】  実施の形態３の装置の動作を示すタイミングチャートである。
【図１９】  実施の形態３の装置の動作を示すタイミングチャートである。
【図２０】  実施の形態４の装置のブロック図である。
【図２１】  対象回路のさらに別の例を示すブロック図である。
【図２２】  実施の形態４の装置の動作を示すフローチャートである。
【図２３】  実施の形態４の装置の動作を示すタイミングチャートである。
【図２４】  実施の形態４の装置の動作を示すタイミングチャートである。
【図２５】  従来の装置のブロック図である。
【図２６】  従来の装置の動作を示すタイミングチャートである。
【符号の説明】
１  データ転送側クロック情報（クロック情報）、２  データ受信側クロック情報（クロック情報）、５  立ち上がりエッジ最小区間算出部（最小区間算出手段）、７  回路接続情報、９  データ入力タイミング情報、２０  レイアウト情報、２１  バックアノテーション装置（バックアノテーション手段）、２３  配線遅延情報、２４  クロックディレイ算出部（クロックディレイ算出手段）、２７  クロックディレイ加算部（クロックディレイ加算手段）、３０  データ転送サイクル（データ転送サイクル情報）、４１  論理回路ブロック分割部（ブロック分割手段）、４２  第１種ブロック接続情報、４３  第２種ブロック接続情報、４６  テストパターン生成部（テストパターン生成手段）、４８  動的タイミング検証部（動的タイミング検証手段）、５０  データ入力タイミング抽出部（データ入力タイミング抽出手段）、６２  静的タイミング検証部（静的タイミング検証手段）、８１  対象素子検索部（対象素子検索手段）、８２  パスサーチ部（パスサーチ手段）、８３  クロック判定部（クロック判定手段）、８４  タイミング評価部（タイミング評価手段）、Ｔrise  立ち上がりエッジ最小区間（最小区間）、Ｔfall  立ち下がりエッジ最小区間（最小区間）。
【図１】
0003715706.tif 000002
【図２】
0003715706.tif 000003
【図３】
0003715706.tif 000004
【図４】
0003715706.tif 000005
【図５】
0003715706.tif 000006
【図６】
0003715706.tif 000007
【図７】
0003715706.tif 000008
【図８】
0003715706.tif 000009
【図９】
0003715706.tif 000010
【図１０】
0003715706.tif 000011
【図１１】
0003715706.tif 000012
【図１２】
0003715706.tif 000013
【図１３】
0003715706.tif 000014
【図１４】
0003715706.tif 000015
【図１５】
0003715706.tif 000016
【図１６】
0003715706.tif 000017
【図１７】
0003715706.tif 000018
【図１８】
0003715706.tif 000019
【図１９】
0003715706.tif 000020
【図２０】
0003715706.tif 000021
【図２１】
0003715706.tif 000022
【図２２】
0003715706.tif 000023
【図２３】
0003715706.tif 000024
【図２４】
0003715706.tif 000025
【図２５】
0003715706.tif 000026
【図２６】
0003715706.tif 000027