(57)【要約】【課題】ＲＴＬでの非同期インターフェースの検証を可能とする。【解決手段】非同期インターフェース検証装置は、タイミング変更部１２０と、シミュレーション部１２１とを具備している。タイミング変更部１２０は、非同期インターフェースのＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）検証において、ＲＴＬ１００における非同期インターフェースの同期化部（Ｆ／Ｆ）の動作タイミングをクロックサイクルベースで変化させる。シミュレーション部１２１は、前記動作タイミングを変化させたＲＴＬを用いてシミュレーションを実行し、非同期インターフェースが正常な動作をするか否かを検証する。【選択図】図１
2013037596.tif 000002
【特許請求の範囲】
【請求項１】
非同期インターフェースのＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）検証において、ＲＴＬにおける非同期インターフェースの同期化部の動作タイミングをクロックサイクルベースで変化させるタイミング変更部と、
前記動作タイミングを変化させたＲＴＬを用いてシミュレーションを実行し、非同期インターフェースが正常な動作をするか否かを検証するシミュレーション部と
を具備する
非同期インターフェース検証装置。
【請求項２】
請求項１に記載の非同期インターフェース検証装置において、
前記タイミング変更部は、
前記ＲＴＬより抽出された前記非同期インターフェースにおけるタイミング変化用回路の変更箇所を抽出する変更箇所抽出部と、
前記ＲＴＬでの前記抽出された変更箇所の前段又は後段においてタイミング変化用回路を追加又は削除して非同期検証用ＲＴＬを生成する変更処理部と
を備え、
前記シミュレーション部は、前記非同期検証用ＲＴＬを用いてシミュレーションを実行する
非同期インターフェース検証装置。
【請求項３】
請求項２に記載の非同期インターフェース検証装置において、
前記変更箇所は、前記同期化部としての同期化Ｆ／Ｆ（ＦｌｉｐＦｌｏｐ）における初段のＦ／Ｆであり、
前記タイミング変化用回路は前記同期化部のクロックに同期して動作する
非同期インターフェース検証装置。
【請求項４】
請求項２又は３に記載の非同期インターフェース検証装置において、
前記ＲＴＬより抽出された複数の非同期インターフェースの各々について、前記変更箇所抽出部、前記変更処理部及び前記シミュレーション部は、各動作を実行する
非同期インターフェース検証装置。
【請求項５】
請求項２乃至４のいずれか一項に記載の非同期インターフェース検証装置において、
前記変更処理部は、
前記同期化部の複数のパスをまとめた同期化モジュールを、前記タイミング変化用回路を含んだタイミング変化用同期化モジュールで置き換えることにより、前記抽出された変更箇所の前段又は後段においてタイミング変化用回路を追加又は削除して非同期検証用ＲＴＬを生成する
非同期インターフェース検証装置。
【請求項６】
請求項１乃至５のいずれか一項に記載の非同期インターフェース検証装置において、
前記タイミング変化用回路は、Ｆ／Ｆである
非同期インターフェース検証装置。
【請求項７】
非同期インターフェースのＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）検証において、ＲＴＬにおける非同期インターフェースの同期化部の動作タイミングをクロックサイクルベースで変化させるステップと、
前記動作タイミングを変化させたＲＴＬを用いてシミュレーションを実行し、非同期インターフェースが正常な動作をするか否かを検証するステップと
を具備する
非同期インターフェース検証方法。
【請求項８】
請求項７に記載の非同期インターフェース検証方法において、
前記動作タイミングをクロックサイクルベースで変化させるステップは、
前記ＲＴＬより抽出された前記非同期インターフェースにおけるタイミング変化用回路の変更箇所を抽出するステップと、
前記ＲＴＬでの前記抽出された変更箇所の前段又は後段においてタイミング変化用回路を追加又は削除して非同期検証用ＲＴＬを生成するステップと
を備え、
前記検証するステップは、前記非同期検証用ＲＴＬを用いてシミュレーションを実行するステップを備える
非同期インターフェース検証方法。
【請求項９】
請求項８に記載の非同期インターフェース検証方法において、
前記変更箇所は、前記同期化部としての同期化Ｆ／Ｆ（ＦｌｉｐＦｌｏｐ）における初段のＦ／Ｆであり、
前記タイミング変化用回路は前記同期化部のクロックに同期して動作する
非同期インターフェース検証方法。
【請求項１０】
請求項８又は９に記載の非同期インターフェース検証方法において、
前記ＲＴＬより抽出された複数の非同期インターフェースの各々について、前記変更箇所を抽出するステップ、前記非同期検証用ＲＴＬを生成するステップ及び前記非同期検証用ＲＴＬを用いて前記シミュレーションを実行するステップを実行する
非同期インターフェース検証方法。
【請求項１１】
請求項８乃至１０のいずれか一項に記載の非同期インターフェース検証方法において、
前記非同期検証用ＲＴＬを生成するステップは、
前記同期化部の複数のパスをまとめた同期化モジュールを、前記タイミング変化用回路を含んだタイミング変化用同期化モジュールで置き換えることにより、前記抽出された変更箇所の前段又は後段においてタイミング変化用回路を追加又は削除して非同期検証用ＲＴＬを生成するステップを備える
非同期インターフェース検証方法。
【請求項１２】
請求項７乃至１１のいずれか一項に記載の非同期インターフェース検証方法において、
前記タイミング変化用回路は、Ｆ／Ｆである
非同期インターフェース検証方法。
【請求項１３】
請求項７乃至１２のいずれか一項に記載の非同期インターフェース検証方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非同期インターフェース検証装置、非同期インターフェース検証方法及びそのプログラムに関し、特に非同期箇所を含んだ論理回路の動作をシミュレーションによって検証する非同期インターフェース検証装置、非同期インターフェース検証方法及びそのプログラムに関する。
【背景技術】
【０００２】
近年、半導体集積回路のシステムの複雑化により、個々の回路を制御するクロックの数が増加している。それに伴い、あるクロック周波数で動作する回路から別のクロック周波数で動作する回路への信号の受け渡しに多くの非同期インターフェースが使われてきている。非同期インターフェースが複数ビットで１つの意味を持つ信号の受け渡しを行う場合、クロック遅延とデータ信号遅延はビット毎に異なる値を持つため、全ての複数ビットを同じタイミングで転送することを保障できない。このため、非同期インターフェースは、複数ビットの値が安定するのを待ってから信号の受け渡しを行う構成になっている。すなわち、非同期インターフェースは、複数ビットを同じタイミングで転送できなくても誤動作しない構成になっている。
【０００３】
このように、非同期インターフェースは、複数ビットを同じタイミングで転送できなくても正常に動作することが必要である。設計段階において非同期インターフェースが正常な動作をするか否かの検証を行うために、従来からゲートレベルでの論理検証方法が用いられている。しかし、ゲートレベルでの論理検証では、クロック遅延とデータ信号遅延によるデータ転送タイミングズレが発生する時間が極めて短い。そのため、データ転送タイミングズレはまれにしか発生しない。従って、非同期インターフェースの検証は偶然に頼ることが大きくなり、非同期インターフェースに潜む問題を見過ごしてしまう可能性がある。さらに、ゲートレベルでの論理シミュレーションに要する時間が長いため、多数のテストベクタを実行することが難しい。そのため、限られた開発・製造期間内では十分な動作検証を行うことは困難である。
【０００４】
クロック数の増加と複雑化によって非同期箇所が増加したことに伴い、検証コストの削減のためにＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）での非同期インターフェース検証の要求（必要性）が高まっている。
【０００５】
関連する技術として特許文献１（特許第４２７１０６７号（対応米国出願公開：ＵＳ２００５２１６２４７（Ａ１）））に、非同期回路検証方法及び非同期回路検証プログラムが開示されている。図１は、その特許文献１に開示された非同期回路検証システムの構成例である。この非同期回路検証システム３０３ａは、非同期回路部（非同期インターフェース）の動作検証をＲＴＬ論理シミュレーション段階で行う。その非同期回路検証システム３０３ａは、非同期抽出部３１０と制御タスク挿入部３２０とクロック・遅延制御部３４０とシミュレーション部３３０とを具備している。非同期抽出部３１０は、非同期抽出プログラムを実行して、レジスタ・トランスファ・レベルで記述された論理回路から非同期回路部を抽出する（非同期リスト３１２）。制御タスク挿入部３２０は、非同期リスト３１２を読み込む。そして、抽出された非同期回路部の情報及びコントロールカード３２１を介した設定値入力に基づき、非同期回路部で論理回路内のクロックを変調させて非同期回路部の遅延を発生するために、クロック変調タスクを論理回路に挿入する。制御タスク挿入部３２０は、抽出された非同期回路部の情報に基づき、非同期回路部で論理回路内の信号を遅延させるための遅延制御タスクを論理回路に挿入する。クロック・遅延制御部３４０は、抽出された非同期回路部に関連付けられた、クロックグループ、クロック変調値、遅延挿入箇所または信号遅延値の少なくとも１つを含む制御パラメータに基づいて、クロック変調タスクにクロック変調させて非同期回路部の遅延を発生する第１命令と遅延制御タスクに信号遅延を発生させる第２命令とを発行する。シミュレーション部３３０は、第１命令と第２命令とに基づいて、デバイスモデル３３４及びＲＴＬ３３１を用いて、クロック変調タスクと遅延制御タスクとが挿入された論理回路のシミュレーションを行う。クロック・遅延制御部３４０は、データラインに遅延を挿入する遅延制御部３４３とクロックラインに遅延を挿入するクロック変調部３４２と集計部３５０（ログカバレッジ部３５３、モニタ部３５４）とを備えている。
【０００６】
この非同期回路部の検証では、データ転送を行うクロックエッジがクロック遅延とデータ遅延により変動する。そのため動作タイミングを期待値照合することはできない。よって、非同期回路部（非同期インターフェース）の検証においては、値のみ照合される。
【０００７】
図２は、その特許文献１に開示された非同期回路検証システムの概略説明図である。非同期回路検証システム３０３ａでは、非同期抽出プログラム３１１は検証対象のＲＴＬ３０１に基づいて、非同期リスト３１２（非同期パスのＦ／Ｆのリスト）を出力する。制御タスク挿入部３２０は、非同期リスト３１２に基づきＲＴＬ３０１に遅延を挿入するためのタスクを挿入する。さらに、制御タスク挿入部３２０はコントロールカード３２１（手修正可）と呼ぶ遅延挿入の組み合わせを記載したデータを作成する。シミュレータ３３３とクロック遅延制御部３４０は、コントロールカード３２１に記載した遅延挿入条件に従い、ＲＴＬ３０１及びテストベンチ３３３に基づいてシミュレーションを実行する。ログ・結果３５１は集計部３５０に供給され、試験成績書３５２として出力される。
【０００８】
図３は、その特許文献１で検証されるクロック変調による信号変化の一例である。この図では、クロック変調部３４２がクロック信号ＣＬＫＭ（クロックライン）に変調を加える様子を示している。ただし、（ａ１）、（ｂ１）、及び（ｃ１）はそれぞれクロック変調前の入力信号ＩＮ、クロック信号ＣＬＫＭ、及び出力信号ＯＵＴを示している。（ａ２）、（ｂ２）、及び（ｃ２）はそれぞれクロック変調後の入力信号ＩＮ、クロック信号ＣＬＫＭ、及び出力信号ＯＵＴを示している。
【０００９】
クロック変調前では、（ａ１）〜（ｃ１）に示すように、入力信号ＩＮ（ａ１）をクロック信号ＣＬＫＭ（ｂ１）の立ち上がりエッジで取得して出力信号ＯＵＴ（ｃ１）として出力している。しかし、クロック変調後では、（ａ２）〜（ｃ２）に示すように、クロック信号ＣＬＫＭに遅延が付加され、入力信号ＩＮに対して遅延している。そのため、出力信号ＯＵＴの変化タイミングが、クロック信号ＣＬＫＭにおける１クロック前に変わっていることがわかる。ここで、クロック信号ＣＬＫＭに与えられている遅延は１クロックより小さい遅延である。
【００１０】
図４は、その特許文献１で検証される信号遅延の一例である。この図では、遅延制御部３４３が遅延を与えたい信号Ｓ１（データライン）に変調を加える様子を示している。ただし、（ａ１）、及び（ｂ１）はそれぞれ信号遅延前のクロック信号ＣＬＫ、及び信号Ｓ１を示している。（ａ２）、及び（ｂ２）はそれぞれ信号遅延後のクロック信号ＣＬＫ、及び信号Ｓ１を示している。このように遅延を与えられた信号Ｓ１を用いて、シミュレーションが行われる。ここで、信号Ｓ１に与えられている遅延も１クロックより小さい遅延である。
【００１１】
図５は、その特許文献１における遅延挿入方法の一例である。この図では、図４を実現する方法を示している。すなわち、クロック数の異なるＦ／Ｆ３８０、３８１（クロック信号ＣＬＫＭ、ＣＬＫＮ）間において（上図）、ビット幅を持つ信号Ｓ２（データライン）の各ビットに対して遅延挿入を行う場合を示している（下図）。具体的には、ビット幅を持つ信号（バス信号）の各ビットに対して適当な数値（Ｄｅｌａｙ＃１〜＃５）を挿入することにより、データラインへの遅延を行う。また、クロックラインに遅延を加えたとき、Ｆ／Ｆ３８１の出力値が変化するので、非同期回路部の動作をＲＴＬにおいて検証することができる。
【００１２】
図６は、非同期回路検証システム（図２）のＲＴＬ論理シミュレーションによるログ・結果の一部である。この図の例では、複数ビットでのデータ受け渡しで値が変化してしまったデータは破棄され、非同期インターフェース（非同期回路部）として正常に動作している時の値のみが含まれている。すなわち、動作タイミングは期待値に含まれないことがわかる。このため、非同期インターフェースのデータ受け渡しタイミングが数クロックずれた場合にも、期待値照合により一致を確認することができる。
【００１３】
図７は、一般的なバスの非同期インターフェースを示す概略図である。この非同期インターフェース２９０には、２つのクロック信号ＣＬＫ＃１とクロック信号ＣＬＫ＃２が供給されている。クロック信号ＣＬＫ＃１とクロック信号ＣＬＫ＃２は、周波数と位相について互いに関係のない非同期関係にあるクロック信号である。入力信号Ｄａｔａ−Ｉｎ［２：０］は、クロック信号ＣＬＫ＃１で動作するＦ／Ｆ（ＦｌｉｐＦｌｏｐ）２３０〜２３２に供給される。Ｆ／Ｆ２３０〜２３２の出力信号は、それぞれクロック信号ＣＬＫ＃２で動作するＦ／Ｆ２３３〜２３５に供給される。Ｆ／Ｆ２３０〜２３２からＦ／Ｆ２３３〜２３５が、クロック信号ＣＬＫ＃１からクロック信号ＣＬＫ＃２への非同期インターフェースである。Ｆ／Ｆ２３３〜２３５の出力信号は、メタステーブルの伝播防止のため、それぞれクロック信号ＣＬＫ＃２で動作するＦ／Ｆ２３６〜２３８に供給された後、出力信号Ｄａｔａ−Ｏｕｔ［２：０］として出力される。Ｆ／Ｆ２３３〜２３５−Ｆ／Ｆ２３６〜２３８が、それぞれ同期化Ｆ／Ｆ２９５である。
【００１４】
ＲＴＬ検証においては、特に指定しない限り、この非同期インターフェース２９０には配線遅延はない。そのため、Ｆ／Ｆ２３０〜２３２とＦ／Ｆ２３３〜２３５との間のＦ／Ｆ間の信号遅延とクロック信号ＣＬＫ＃１とクロック信号ＣＬＫ＃２のクロックスキューは無い。従って、Ｆ／Ｆ２３０〜２３２がデータを出力するタイミングはクロック信号ＣＬＫ＃１の変化タイミングからずれることはない。またＦ／Ｆ２３３〜２３５がデータを取り込むタイミングがクロック信号ＣＬＫ＃２の変化タイミングからずれることもない。よって、入力信号Ｄａｔａ−Ｉｎ［２：０］の値が違う値となって出力信号Ｄａｔａ−Ｏｕｔ［２：０］に伝播することはない。
【００１５】
図８は、図７の非同期インターフェース２９０でのタイミングチャートの一例を示す。ただし、（ａ）はクロック信号ＣＬＫ＃１、（ｂ）は入力信号Ｄａｔａ−Ｉｎ［２：０］、（ｃ）はクロック信号ＣＬＫ＃２、（ｄ）はＦ／Ｆ２３５の出力信号、（ｅ）はＦ／Ｆ２３４の出力信号、（ｆ）はＦ／Ｆ２３５の出力信号、（ｇ）はＤａｔａ−Ｏｕｔ［２：０］、最下段は時間経過Ｔ１、Ｔ２、…がそれぞれ記載されている。
【００１６】
Ｄａｔａ−Ｉｎ［２：０］は、クロック信号ＣＬＫ＃１の立ち上がりエッジに同期して０ｘ０→０ｘ１→０ｘ２→０ｘ４→０ｘ０と変化している。Ｆ／Ｆ２３３は、クロック信号ＣＬＫ＃２の立ち上がりエッジに同期して、Ｔ２で１となり、Ｔ４で０と変化する。Ｆ／Ｆ２３４は、クロック信号ＣＬＫ＃２の立ち上がりエッジに同期して、Ｔ４で１となり、Ｔ６で０となる。Ｆ／Ｆ２３５は、クロック信号ＣＬＫ＃２の立ち上がりエッジに同期して、Ｔ６で１となりＴ８で０となる。その結果、Ｆ／Ｆ２３６〜２３８による１クロック分の遅れを考慮して、Ｄａｔａ−Ｏｕｔ［２：０］は、Ｔ３で０ｘ１に変化し、Ｔ５で０ｘ２に変化し、Ｔ７で０ｘ４に変化し、Ｔ９で０ｘ０に変化している。したがって、Ｄａｔａ−Ｉｎ［２：０］の値はＤａｔａ−Ｏｕｔ［２：０］に正しく伝播している。
【００１７】
しかし、シリコン上の半導体集積回路においては、Ｆ／Ｆ間信号遅延やクロックスキューが存在するため、出力信号Ｄａｔａ−Ｏｕｔ［２：０］には入力信号Ｄａｔａ−Ｉｎ［２：０］とは異なる値が伝播することがある。それを示しているのが図９である。図９は、図７の非同期インターフェース２９０でのタイミングチャートの他の例を示す。ただし、（ａ）〜（ｇ）、最下段は図１７と同じである。（ｈ）はＦ／Ｆ２３３に供給されるクロック信号ＣＬＫ＃２である。
【００１８】
この図の例では、クロックスキューによりＦ／Ｆ２３３のクロック信号ＣＬＫ＃２（ｈ）がＦ／Ｆ２３４、２３５のクロック信号ＣＬＫ＃２（ｃ）よりも僅かに早い（約０．３クロック）場合の動作タイミングを示している。この場合、Ｆ／Ｆ２３３は、Ｔ３近くで１となり、Ｔ５近くで０となる。これは、図１８のＴ２で１となり、Ｔ４で０になるという変化タイミングに対して約０．７クロック遅い。このため、Ｄａｔａ−Ｏｕｔ［２：０］のＴ５に０ｘ３が発生する。０ｘ３はＤａｔａ−Ｉｎ［２：０］には存在しない値である。このように、特許文献１の技術は、例えば、クロック信号を遅延させて、データが正しく伝播できていないことを再現して、非同期シミュレーションを実行している。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特許第４２７１０６７号公報（特開２００５−２８４４２６号公報）
【発明の概要】
【発明が解決しようとする課題】
【００２０】
上記特許文献１では、非同期インターフェースのＲＴＬシミュレーションの速度が低下するという問題がある。その理由は、以下のとおりである。上記特許文献１では、非同期インターフェースにおける遅延を含めた動作を実現するために、データラインとクロックラインに遅延を挿入する。データラインに挿入する例としては、図５に示すようなＤｅｌａｙ＃１〜＃５がある。その遅延は、例えば図３や図４に示すように、クロック信号ＣＬＫＭ、ＣＬＫの周期とは無関係なく設定されている。そのため、クロックエッジ以外のタイミングにデータラインの変化が発生することになる。従って、クロックエッジ以外の箇所においても更にシミュレーションを行う必要があり、シミュレーションイベントが増加してしまう。シミュレータはシミュレーションイベント毎に内部ノード値の計算を行うため、シミュレーションイベントの増加はシミュレーション演算量の増加につながる。その結果、ＲＴＬシミュレーション速度が低下してしまう。
【００２１】
半導体装置の検証コストの削減が望まれている。ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）での非同期インターフェースの検証が望まれている。ＲＴＬシミュレーションの速度を維持しながら非同期インターフェースを検証することが求められる。
【課題を解決するための手段】
【００２２】
以下に、発明を実施するための形態で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、特許請求の範囲の記載と発明を実施するための形態との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【００２３】
本発明の非同期インターフェース検証装置は、タイミング変更部（１２０）と、シミュレーション部（１２１）とを具備している。タイミング変更部（１２０）は、非同期インターフェースのＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）検証において、ＲＴＬ（１００）における非同期インターフェースの同期化部（９５）の動作タイミングをクロックサイクルベースで変化させる。シミュレーション部（１２１）は、前記動作タイミングを変化させたＲＴＬを用いてシミュレーションを実行し、非同期インターフェースが正常な動作をするか否かを検証する。
【００２４】
本発明の非同期インターフェース検証方法は、非同期インターフェースのＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）検証において、ＲＴＬ（１００）における非同期インターフェースの同期化部（９５）の動作タイミングをクロックサイクルベースで変化させるステップ（Ｓ２、Ｓ３）と、前記動作タイミングを変化させたＲＴＬ（１０５）を用いてシミュレーションを実行し、非同期インターフェースが正常な動作をするか否かを検証するステップ（Ｓ４−Ｓ６）とを具備している。
【００２５】
本発明のプログラムは、上記段落に記載の非同期インターフェース検証方法をコンピュータに実行させるプログラムである。
【発明の効果】
【００２６】
本発明により、半導体装置の検証コストの削減が可能となる。ＲＴＬでの非同期インターフェースの検証が可能となる。ＲＴＬシミュレーションの速度を維持しながら非同期インターフェースを検証することが可能となる。
【図面の簡単な説明】
【００２７】
【図１】図１は、特許文献１に開示された非同期回路検証システムの構成例である。
【図２】図２は、特許文献１に開示された非同期回路検証システムの概略説明図である。
【図３】図３は、特許文献１で検証されるクロック変調による信号変化の一例である。
【図４】図４は、特許文献１で検証される信号遅延の一例である。
【図５】図５は、特許文献１における遅延挿入方法の一例である。
【図６】図６は、非同期回路検証システムのＲＴＬ論理シミュレーションによるログ・結果である。
【図７】図７は、一般的なバスの非同期インターフェースを示す概略図である。
【図８】図８は、図７の非同期インターフェースでのタイミングチャートの一例を示す。
【図９】図９は、図７の非同期インターフェースでのタイミングチャートの他の例を示す。
【図１０】図１０は、本発明の第１、３の実施の形態に係る非同期インターフェース検証装置の構成を示すブロック図である。
【図１１Ａ】図１１Ａは、非同期パスの一例としてのバスの非同期インターフェースを示す回路図である。
【図１１Ｂ】図１１Ｂは、図１１Ａの非同期インターフェースにＦ／Ｆを追加した場合を示す回路図である。
【図１１Ｃ】図１１Ｃは、図１１Ａの非同期インターフェースにＦ／Ｆを追加した場合を示す他の回路図である。
【図１１Ｄ】図１１Ｄは、図１１Ａの非同期インターフェースにＦ／Ｆを追加した場合を示す更に他の回路図である。
【図１２】図１２は、ＲＴＬ１００に含まれる非同期インターフェースのＲＴＬ記述の一例を示す。
【図１３】図１３は、非同期パス抽出部により抽出された非同期リストの一例を示す。
【図１４】図１４は、非同期インターフェースの非同期検証用ＲＴＬの一例を示す。
【図１５Ａ】図１５Ａは、本発明の実施の形態の非同期インターフェース検証装置の動作を示すフローチャートである。
【図１５Ｂ】図１５Ｂは、本発明の実施の形態の非同期インターフェース検証装置の動作を示すフローチャートである。
【図１６Ａ】図１６Ａは、図１１Ｂの非同期インターフェースでのタイミングチャートの一例を示す。
【図１６Ｂ】図１６Ｂは、図１１Ｃの非同期インターフェースでのタイミングチャートの一例を示す。
【図１６Ｃ】図１６Ｃは、図１１Ｄの非同期インターフェースでのタイミングチャートの一例を示す。
【図１７】図１７は、本発明の第２の実施の形態に係る非同期インターフェース検証装置の構成を示すブロック図である。
【図１８Ａ】図１８Ａは、非同期パスの一例としてのバスの非同期インターフェースを示す回路図である。
【図１８Ｂ】図１８Ｂは、図１８Ａの非同期インターフェースにＦ／Ｆを追加した場合を示す回路図である。
【図１９Ａ】図１９Ａは、非同期検証用Ｆ／Ｆライブラリの一例を示す。
【図１９Ｂ】図１９Ｂは、非同期インターフェースのＲＴＬの一例を示す。
【図１９Ｃ】図１９Ｃは、非同期検証用ＲＴＬの一例を示す。
【図２０】図２０は、図１１Ａの非同期インターフェースからＦ／Ｆを削除した場合を示す回路図である。
【発明を実施するための形態】
【００２８】
以下、本発明の非同期インターフェース検証装置、非同期インターフェース検証方法及びそのプログラムの実施の形態に関して、添付図面を参照して説明する。
【００２９】
（第１の実施の形態）
本発明の第１の実施の形態に係る非同期インターフェース検証装置について、添付図面を参照して説明する。図１０は、本発明の第１の実施の形態に係る非同期インターフェース検証装置の構成を示すブロック図である。非同期インターフェース検証装置１は、ＲＴＬ記述された半導体装置の設計データにおいて非同期インターフェースを検証する。
【００３０】
非同期インターフェース検証装置１は、コンピュータに例示される情報処理装置であり、図示されていないＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、記憶装置と、入力装置と、出力装置と、インターフェースとを備えている。ＣＰＵ、記憶装置、入力装置、出力装置、及びインターフェースは、バスやケーブルにより互いに情報の送受信が可能に接続されている。記憶装置は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、及びＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）に例示される。入力装置は、キーボード、及びマウスに例示される。出力装置は、ディスプレイやプリンタに例示される。インターフェースは、外部のコンピュータや記憶装置や記憶媒体読取装置などと双方向通信可能に接続されている。
【００３１】
ＣＰＵは、例えば記憶媒体からインターフェースを介してＨＤＤにインストールされたコンピュータプログラムをＲＡＭに展開する。そして、展開されたコンピュータプログラムを実行して、必要に応じて記憶装置や入力装置や出力装置のようなハードウェアを制御しながら、当該コンピュータプログラムの情報処理を実現する。記憶装置は、コンピュータプログラムを記録し、ＣＰＵが利用する情報や生成する情報を記録する。入力装置は、ユーザに操作されることにより生成される情報をＣＰＵや記憶装置に出力する。出力装置は、ＣＰＵにより生成された情報や記憶装置の情報をユーザに認識可能に出力する。
【００３２】
非同期インターフェース検証装置１は、非同期パス抽出部１０１と、Ｆ／Ｆ変更箇所抽出部１０３と、Ｆ／Ｆ変更処理部１０４と、非同期検証シミュレーション部１０６と、期待値作成シミュレーション部１１０と、期待値照合部１０８とを具備している。これらは、コンピュータプログラム（ソフトウェア）であっても良いし、コンピュータプログラムとハードウェアとの組み合わせであっても良いし、ハードウェアであっても良い。
【００３３】
非同期パス抽出部１０１は、例えば非同期インターフェース検証装置の記憶装置から、又はネットワークを介して他の情報処理装置から、ＲＴＬ１００を受信する。ＲＴＬ１００は、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）で記述された半導体装置の設計データである。非同期パス抽出部１０１は、ＲＴＬ１００から非同期パスを抽出して、非同期リスト１０２としてＦ／Ｆ変更箇所抽出部１０３へ出力する。
【００３４】
Ｆ／Ｆ変更箇所抽出部１０３は、非同期リスト１０２から、タイミング変化用回路であるＦ／Ｆ（ＦｌｉｐＦｌｏｐ）を変更する箇所を抽出する。変更は、追加又は削除（後述）に例示される。Ｆ／Ｆを変更する箇所としては、非同期インターフェースに例示される。Ｆ／Ｆ変更箇所抽出部１０３は、抽出結果をＦ／Ｆ変更箇所のインスタンス情報としてＦ／Ｆ変更処理部１０４へ出力する。
【００３５】
Ｆ／Ｆ変更処理部１０４は、Ｆ／Ｆ変更箇所のインスタンス情報及びＲＴＬ１００に基づいて、ＲＴＬ１００のＦ／Ｆ変更箇所においてＦ／Ｆの追加（又は削除）を実行して、非同期検証用ＲＴＬ１０５として非同期検証シミュレーション部１０６へ出力する。
【００３６】
非同期検証シミュレーション部１０６は、非同期検証用ＲＴＬ１０５について、テストベンチ１０９に基づいて、シミュレーションを行い、ログ・結果（Ｆ／Ｆ挿入後）１０７を期待値照合部１０８へ出力する。
【００３７】
期待値作成シミュレーション部１１０は、ＲＴＬ１００について、テストベンチ１０９に基づいて、シミュレーションを行い、ログ・結果（期待値）を期待値照合部１０８へ出力する。
【００３８】
期待値照合部１０８は、ログ・結果１１１とログ・結果１０７とを比較し、両データが同じであることを確認する。期待値照合部１０８は、表示装置にその照合結果を表示する。
【００３９】
Ｆ／Ｆ変更箇所抽出部１０３及びＦ／Ｆ変更処理部１０４は、ＲＴＬ１００における非同期インターフェースの同期化Ｆ／Ｆの動作タイミングを、Ｆ／Ｆを挿入する（又は後述されるように削除する）ことにより、クロックサイクルベースで変化させるタイミング変更部１２０とみることができる。また、非同期検証シミュレーション部１０６及び期待値作成シミュレーション部１１０は、ＲＴＬ１００及び動作タイミングを変化させたＲＴＬ１０５についてシミュレーションを実行し、非同期インターフェースが正常な動作をするか否かの検証を行うシミュレーション部１２１とみることができる。
【００４０】
図１１Ａは、非同期パスの一例としてのバスの非同期インターフェースを示す回路図である。この非同期インターフェース９０は、非同期パス抽出部１０１によりＲＴＬ１００から抽出された非同期パスの一つである。この非同期インターフェース９０には、２つのクロック信号ＣＬＫ＃１とクロック信号ＣＬＫ＃２が供給されている。クロック信号ＣＬＫ＃１とクロック信号ＣＬＫ＃２は、周波数と位相について互いに関係のない非同期関係にあるクロック信号である。入力信号Ｄａｔａ−Ｉｎ［２：０］は、クロック信号ＣＬＫ＃１で動作する送信側回路であるＦ／Ｆ１３０〜１３２に供給される。Ｆ／Ｆ１３０〜１３２の出力信号は、それぞれクロック信号ＣＬＫ＃２で動作する受信側回路であるＦ／Ｆ１３３〜１３５に供給される。Ｆ／Ｆ１３０〜１３２からＦ／Ｆ１３３〜１３５が、クロック信号ＣＬＫ＃１からクロック信号ＣＬＫ＃２への非同期インターフェースである。Ｆ／Ｆ１３３〜１３５の出力信号は、メタステーブルの伝播防止のため、それぞれクロック信号ＣＬＫ＃２で動作する受信側回路であるＦ／Ｆ１３６〜１３８に供給された後、出力信号Ｄａｔａ−Ｏｕｔ［２：０］として出力される。受信側回路であるＦ／Ｆ１３３〜１３５−Ｆ／Ｆ１３６〜１３８は、それぞれ同期化を行うためのＦ／Ｆとして、同期化Ｆ／Ｆ（同期化部）９５とみることができる。なお、同期化部は、本実施の形態では上述のようにＦ／Ｆで構成されているが、クロック信号に同期して同期化を行う機能を有していれば上記構成に限定されるものではない。
【００４１】
図１１Ｂは、図１１Ａの非同期インターフェースにＦ／Ｆを追加した場合を示す回路図である。この非同期インターフェース９１は、非同期インターフェース９０の一つの同期化Ｆ／ＦにＦ／Ｆ１５０が追加されて生成されている（同期化Ｆ／Ｆ９６）。すなわち、この非同期インターフェース９１は、クロックスキューによりＦ／Ｆ１３３のクロック信号ＣＬＫ＃２が遅い場合の動作に対応している。Ｆ／Ｆ１３３の動作が１クロック遅れることを再現するため、図１１ＡのＦ／Ｆ１３３のデータラインに対してＦ／Ｆ１５０を追加している。Ｆ／Ｆ変更処理部１０４は非同期インターフェース９０を示すＲＴＬ１００にＦ／Ｆ１５０を追加して、この非同期インターフェース９１を示す非同期検証用ＲＴＬ１０５を生成する。
【００４２】
図１１Ｃは、図１１Ａの非同期インターフェースにＦ／Ｆを追加した場合を示す他の回路図である。この非同期インターフェース９２は、非同期インターフェース９０の一つの同期化Ｆ／ＦにＦ／Ｆ１６０が追加されて生成される（同期化Ｆ／Ｆ９６）。すなわち、この非同期インターフェース９２は、クロックスキューによりＦ／Ｆ１３４のクロック信号ＣＬＫ＃２が遅い場合の動作に対応している。Ｆ／Ｆ１３４の動作が１クロック遅れることを再現するため、図１１ＡのＦ／Ｆ１３４のデータラインに対してＦ／Ｆ１６０を追加している。Ｆ／Ｆ変更処理部１０４は非同期インターフェース９０を示すＲＴＬ１００にＦ／Ｆ１６０を追加して、この非同期インターフェース９２を示す非同期検証用ＲＴＬ１０５を生成する。
【００４３】
図１１Ｄは、図１１Ａの非同期インターフェースにＦ／Ｆを追加した場合を示す更に他の回路図である。この非同期インターフェース９３は、非同期インターフェース９０の一つの同期化Ｆ／ＦにＦ／Ｆ１７０が追加されて生成される（同期化Ｆ／Ｆ９６）。すなわち、この非同期インターフェース９３は、クロックスキューによりＦ／Ｆ１３５のクロック信号ＣＬＫ＃２が遅い場合の動作に対応している。Ｆ／Ｆ１３５の動作が１クロック遅れることを再現するため、図１１ＡのＦ／Ｆ１３５のデータラインに対してＦ／Ｆ１７０を追加している。Ｆ／Ｆ変更処理部１０４は非同期インターフェース９０を示すＲＴＬ１００にＦ／Ｆ１７０を追加して、この非同期インターフェース９３を示す非同期検証用ＲＴＬ１０５を生成する。
【００４４】
図１２は、ＲＴＬ１００に含まれる非同期インターフェースのＲＴＬ記述の一例を示す。このＲＴＬ記述は、非同期インターフェース９０（図１１Ａ）を示している。この非同期インターフェース９０のＲＴＬ記述では、１行目〜６行目において入力データＤａｔａ＿Ｉｎ［０］、Ｄａｔａ＿Ｉｎ［１］及びＤａｔａ＿Ｉｎ［２］がＦ／Ｆ１３０、Ｆ／Ｆ１３１及びＦ／Ｆ１３２に入力され、８行目〜１３行目においてＦ／Ｆ１３０、Ｆ／Ｆ１３１及びＦ／Ｆ１３２の出力がＦ／Ｆ１３３、Ｆ／Ｆ１３４及びＦ／Ｆ１３５に入力され、１５行目〜２０行目においてＦ／Ｆ１３３、Ｆ／Ｆ１３４及びＦ／Ｆ１３５の出力がＦ／Ｆ１３６、Ｆ／Ｆ１３７及びＦ／Ｆ１３８に入力され、２２行目〜２４行目においてＦ／Ｆ１３６、Ｆ／Ｆ１３７及びＦ／Ｆ１３８の出力が出力データＤａｔａ＿Ｏｕｔ［０］、Ｄａｔａ＿Ｏｕｔ［１］及びＤａｔａ＿Ｏｕｔ［２］になることをそれぞれ示している。
【００４５】
図１３は、非同期パス抽出部１０１により抽出された非同期リスト１０２の一例を示す。この非同期リスト１０２は、非同期パスとして、非同期インターフェース９０（図１１Ａ、図１２）を示している。非同期インターフェース９０のパス（データライン）の一つとして、非同期インターフェース９０の送出側のＦ／Ｆのクロック名（２行目、“ｓｏｕｒｃｅ＿ｃｌｏｃｋ＿ｄｏｍａｉｎ：ＣＬＫ＃１”）とインスタンス（４行目、“ｆｒｏｍ＿ｉｎｓｔａｎｃｅ：ＦＦ１３０＿Ｑ”）が記載されている。受け側Ｆ／Ｆのクロック名（３行目、“ｄｅｓｔｉｎａｔｉｏｎ＿ｃｌｏｃｋ＿ｄｏｍａｉｎ：ＣＬＫ＃２”）とインスタンス（５行目、“ｔｏ＿ｉｎｓｔａｎｃｅ：ＦＦ１３３＿Ｑ”）が記載されている。また、パスの次の一つとして、非同期インターフェース９０の送出側のＦ／Ｆのクロック名（７行目）とインスタンス（９行目）が記載されている。受け側Ｆ／Ｆのクロック名（８行目）とインスタンス（１０行目）が記載されている。また、パスの更に次の一つとして、非同期インターフェース９０の送出側のＦ／Ｆのクロック名（１２行目）とインスタンス（１４行目）が記載されている。受け側Ｆ／Ｆのクロック名（１３行目）とインスタンス（１５行目）が記載されている。Ｆ／Ｆ変更箇所抽出部１０３は、これらパスを１つずつ、例えば受け側Ｆ／Ｆのクロック名とインスタンス名との組として、順次抽出して、Ｆ／Ｆ変更処理部１０４に出力する。
【００４６】
図１４は、非同期インターフェースの非同期検証用ＲＴＬ１０５の一例を示す。この非同期検証用ＲＴＬ１０５は、非同期インターフェース９０（図１１Ａ、図１２）に対して、非同期リスト１０２（図１３）に基づいて、Ｆ／Ｆを追加した非同期インターフェース９１（図１１Ｂ）を示している。この非同期インターフェース９１の非同期検証用ＲＴＬ１０５では、１行目〜６行目において入力データＤａｔａ＿Ｉｎ［０］、Ｄａｔａ＿Ｉｎ［１］及びＤａｔａ＿Ｉｎ［２］がＦ／Ｆ１３０、Ｆ／Ｆ１３１及びＦ／Ｆ１３２に入力され、８行目〜１３行目においてＦ／Ｆ１３０、Ｆ／Ｆ１３１及びＦ／Ｆ１３２の出力がＦ／Ｆ１３３、Ｆ／Ｆ１３４及びＦ／Ｆ１３５に入力され、１５行目〜２０行目においてＦ／Ｆ１５０、Ｆ／Ｆ１３４及びＦ／Ｆ１３５の出力がＦ／Ｆ１３６、Ｆ／Ｆ１３７及びＦ／Ｆ１３８に入力され、２２行目〜２５行目においてＦ／Ｆ１３３の出力がＦ／Ｆ１５０に入力され、２７行目〜２９行目においてＦ／Ｆ１３６、Ｆ／Ｆ１３７及びＦ／Ｆ１３８の出力が出力データＤａｔａ＿Ｏｕｔ［０］、Ｄａｔａ＿Ｏｕｔ［１］及びＤａｔａ＿Ｏｕｔ［２］になることをそれぞれ示している。
【００４７】
このとき、Ｆ／Ｆ変更処理部１０４は、非同期インターフェース９０のＲＴＬ記述（図１２）から受け側Ｆ／Ｆのインスタンスが出力する信号（ＦＦ１３３＿Ｑ：図１３の５行目）を代入する記述（図１２の１７行目）を検索する。そして、追加するＦ／Ｆの出力信号（ＦＦ１５０＿Ｑ）に書き換える（図１４の１７行目）。更に、非同期インターフェース９０の受け側Ｆ／Ｆのクロック信号（ＣＬＫ＃２：図１３の３行目）で動作するＦ／Ｆの記述を追加する（図１４の２７行目から２９行目）。
【００４８】
次に、本発明の第１の実施の形態の非同期インターフェース検証装置の動作（非同期インターフェース検証方法及びそのプログラム）について説明する。本実施の形態では、ＲＴＬ検証において同期化Ｆ／Ｆ９５の段数（Ｆ／Ｆの個数）を変化させることで出力信号Ｄａｔａ−Ｏｕｔ［２：０］が入力信号Ｄａｔａ−Ｉｎ［２：０］と異なるという上述の動作を再現し、非同期インターフェースの検証を可能とする。図１５Ａ及び図１５Ｂは、本発明の実施の形態の非同期インターフェース検証装置の動作（非同期インターフェース検証方法及びそのプログラム）を示すフローチャートである。図１５Ａは全体のフローを示し、図１５Ｂは図１５ＡにおけるステップＳ３（Ｆ／Ｆ変更箇所抽出部１０３）の詳細を示している。
【００４９】
非同期パス抽出部１０１は、半導体装置（例示：図１１Ａに示す非同期インターフェース９０を含む）の設計データであるＲＴＬ１００（例示：図１２に示す非同期インターフェース９０のＲＴＬ記述を含む）を受信する。非同期パス抽出部１０１は、ＲＴＬ１００から非同期パスを抽出する。そして、非同期リスト１０２（例示：図１３に示す非同期インターフェース９０の非同期パスを含む）としてＦ／Ｆ変更箇所抽出部１０３へ出力する（ステップＳ１）。
【００５０】
一方、期待値作成シミュレーション部１１０は、ＲＴＬ１００について、テストベンチ１０９に基づいて、シミュレーションを行い、ログ・結果（期待値）を期待値照合部１０８へ出力する（ステップＳ２）。ステップＳ２は、ステップＳ６より前であればいつ行っても良いが、期待値作成シミュレーション部１１０はＲＴＬ１００を用いるので、同じＲＴＬ１００に対して１度行えばよい。
【００５１】
Ｆ／Ｆ変更箇所抽出部１０３は、非同期リスト１０２（例示：図１３を含む）からＦ／Ｆを追加する箇所を抽出する。Ｆ／Ｆ変更箇所抽出部１０３は、抽出結果をＦ／Ｆ変更箇所のインスタンス情報としてＦ／Ｆ変更処理部１０４へ出力する（ステップＳ３）。例えば、図１３の非同期リスト１０２では、Ｆ／Ｆ変更箇所抽出部１０３は、受け側のインスタンス（５、１０、１５行目、例示：“ｔｏ＿ｉｎｓｔａｎｃｅ：ＦＦ１３３＿Ｑ”）を参照して、先頭（一番目）の１パス分の受け側Ｆ／Ｆのクロック名とインスタンス名との組（例示：ＣＬＫ＃２、Ｆ／Ｆ１３３）を抽出して、インスタンス情報としてＦ／Ｆ変更処理部１０４に出力する（ステップＳ３；ステップＳ１１）。
【００５２】
次に、フローチャート上Ｌ１に進み、Ｆ／Ｆ変更処理部１０４は、その先頭（一番目）の１パス分のインスタンス情報及びＲＴＬ１００に基づいて、ＲＴＬ１００におけるＦ／Ｆ変更箇所（インスタンス情報に対応する位置）にＦ／Ｆ（例示：Ｆ／Ｆ１５０）を追加する。そして、非同期検証用ＲＴＬ１０５（例示：図１４に示すＦ／Ｆ１５０が追加された非同期インターフェース９１を含む）として非同期検証シミュレーション部１０６へ出力する（ステップＳ４）。
【００５３】
続いて、非同期検証シミュレーション部１０６は、非同期検証用ＲＴＬ１０５について、テストベンチ１０９に基づいて、シミュレーションを行い、ログ・結果（Ｆ／Ｆ挿入後）１０７を期待値照合部１０８へ出力する（ステップＳ５）。
【００５４】
期待値照合部１０８は、ログ・結果１１１とログ・結果１０７とを比較し、両データが同じであるか否かを確認し、確認結果を出力装置（例示：表示装置、プリンタ、記憶装置）に出力する（ステップＳ６）。
【００５５】
続いて、フローチャート上Ｌ２に進み、Ｆ／Ｆ変更箇所抽出部１０３は、先頭（一番目）の１パス分のインスタンス情報に関するシミュレーション（Ｆ／Ｆ変更処理部１０４、非同期検証シミュレーション部１０６、期待値作成シミュレーション部１１０及び期待値照合部１０８の動作；ステップＳ４〜Ｓ６）が完了したか否かを確認する（ステップＳ３；ステップＳ１２）。
【００５６】
シミュレーションが完了していない場合（ステップＳ３；ステップＳ１２：Ｎｏ）、シミュレーションが完了するまで待つ。シミュレーションが完了している場合（ステップＳ３；ステップＳ１２：Ｙｅｓ）、Ｆ／Ｆ変更箇所抽出部１０３は、次のインスタンス情報が有るか否かを確認する（ステップＳ３；ステップＳ１３）。次のインスタンス情報が無い場合（ステップＳ３；ステップＳ１３：Ｎｏ）、フローチャート上Ｌ３に進み、非同期インターフェース検証装置の動作（非同期インターフェース検証方法及びそのプログラム）は終了となる。次のインスタンス情報が有る場合（ステップＳ３；ステップＳ１３：Ｙｅｓ）、次の１パス分のインスタンス情報（受け側のＦ／Ｆのクロック名とインスタンス名との組）を抽出して、Ｆ／Ｆ変更処理部１０４に出力する（ステップＳ３；ステップＳ１４）。例えば、次（二番目）の１パス分の受け側Ｆ／Ｆのクロック名とインスタンス名との組（例示：ＣＬＫ＃２、Ｆ／Ｆ１３４）を抽出して、インスタンス情報としてＦ／Ｆ変更処理部１０４に出力する。
【００５７】
その後、フローチャート上Ｌ１に進み、Ｆ／Ｆ変更処理部１０４（ステップＳ４）、非同期検証シミュレーション部１０６（ステップＳ５）及び期待値照合部１０８（ステップＳ６）は、各処理を実行する。そして、ステップＳ３（ステップＳ１４）〜ステップＳ６は、Ｆ／Ｆ変更箇所抽出部１０３が順番に抽出するインスタンス情報毎に、インスタンス情報が無くなるまで実施される。
【００５８】
図１６Ａは、図１１Ｂ（図１４）の非同期インターフェース９１でのタイミングチャートの一例を示す。既述のように、この非同期インターフェース９１は、Ｆ／Ｆ１３３のデータラインにＦ／Ｆ１５０が追加されて生成されている。ただし、（ａ）はクロック信号ＣＬＫ＃１、（ｂ）は入力信号Ｄａｔａ−Ｉｎ［２：０］、（ｃ）はクロック信号ＣＬＫ＃２、（ｄ）はＦ／Ｆ１３５の出力信号、（ｅ）はＦ／Ｆ１３４の出力信号、（ｆ）はＦ／Ｆ１５０の出力信号、（ｇ）はＤａｔａ−Ｏｕｔ［２：０］、最下段は時間経過Ｔ１、Ｔ２、…がそれぞれ記載されている。
【００５９】
Ｄａｔａ−Ｉｎ［２：０］は、クロック信号ＣＬＫ＃１の立ち上がりエッジに同期して０ｘ０→０ｘ１→０ｘ２→０ｘ４→０ｘ０と変化している。Ｆ／Ｆ１３３は、クロック信号ＣＬＫ＃２の立ち上がりエッジに同期して、Ｔ２で１となり（（ｆ）の破線）、Ｔ４で０と変化する。しかし、ここでは、Ｆ／Ｆ１５０を追加して、Ｆ／Ｆ１５０の出力をＦ／１３３の出力として実質的に取り扱う。そして、Ｆ／Ｆ１５０の出力は、Ｆ／１３３の出力と比較して１クロック遅れるため、クロック信号ＣＬＫ＃２の立ち上がりエッジに同期して、Ｔ３で１となり、Ｔ５で０と変化する。すなわち、Ｆ／Ｆ１３３の出力の変化タイミングが１クロック遅れる動作を、Ｆ／Ｆ１５０を挿入することで、クロックイベントに同期したタイミングのみで再現している。
【００６０】
Ｆ／Ｆ１３４は、クロック信号ＣＬＫ＃２の立ち上がりエッジに同期して、Ｔ４で１となり、Ｔ６で０となる。Ｆ／Ｆ１３５は、クロック信号ＣＬＫ＃２の立ち上がりエッジに同期して、Ｔ６で１となりＴ８で０となる。その結果、Ｆ／Ｆ１３６〜１３８による１クロック分の遅れを考慮して、Ｄａｔａ−Ｏｕｔ［２：０］は、通常、Ｔ３で０ｘ１に変化し、Ｔ５で０ｘ２に変化し、Ｔ７で０ｘ４に変化し、Ｔ９で０ｘ０に変化する。しかし、Ｆ／Ｆ１３３の出力が１クロック遅れるため、Ｄａｔａ−Ｏｕｔ［２：０］は、Ｔ４で０ｘ１に変化し、Ｔ５で０ｘ３に変化し、Ｔ６で０ｘ２に変化し、Ｔ７で０ｘ４に変化し、Ｔ９で０ｘ０に変化する。すなわち、Ｄａｔａ−Ｏｕｔ［２：０］のＴ５に０ｘ３が発生する。０ｘ３はＤａｔａ−Ｉｎ［２：０］には存在しない値である。このように、本実施の形態では、例えば、クロック信号を遅延させて、データが正しく伝播できていないことを再現して、非同期シミュレーションを実行できる。
【００６１】
図１６Ｂは、図１１Ｃの非同期インターフェース９２でのタイミングチャートの一例を示す。既述のように、この非同期インターフェース９２は、Ｆ／Ｆ１３４のデータラインにＦ／Ｆ１６０が追加されて生成されている。ただし、（ａ）はクロック信号ＣＬＫ＃１、（ｂ）は入力信号Ｄａｔａ−Ｉｎ［２：０］、（ｃ）はクロック信号ＣＬＫ＃２、（ｄ）はＦ／Ｆ１３５の出力信号、（ｅ）はＦ／Ｆ１６０の出力信号、（ｆ）はＦ／Ｆ１３３の出力信号、（ｇ）はＤａｔａ−Ｏｕｔ［２：０］、最下段は時間経過Ｔ１、Ｔ２、…がそれぞれ記載されている。
【００６２】
Ｄａｔａ−Ｉｎ［２：０］は、クロック信号ＣＬＫ＃１の立ち上がりエッジに同期して０ｘ０→０ｘ１→０ｘ２→０ｘ４→０ｘ０と変化している。Ｆ／Ｆ１３４は、クロック信号ＣＬＫ＃２の立ち上がりエッジに同期して、Ｔ４で１となり（（ｅ）の破線）、Ｔ６で０と変化する。しかし、ここでは、Ｆ／Ｆ１６０を追加して、Ｆ／Ｆ１６０の出力をＦ／１３４の出力として実質的に取り扱う。そして、Ｆ／Ｆ１６０の出力は、Ｆ／１３４の出力と比較して１クロック遅れるため、クロック信号ＣＬＫ＃２の立ち上がりエッジに同期して、Ｔ５で１となり、Ｔ７で０と変化する。すなわち、Ｆ／Ｆ１３４の出力の変化タイミングが１クロック遅れる動作を、Ｆ／Ｆ１６０を挿入することで、クロックイベントに同期したタイミングのみで再現している。
【００６３】
Ｆ／Ｆ１３３は、クロック信号ＣＬＫ＃２の立ち上がりエッジに同期して、Ｔ２で１となり、Ｔ４で０となる。Ｆ／Ｆ１３５は、クロック信号ＣＬＫ＃２の立ち上がりエッジに同期して、Ｔ６で１となりＴ８で０となる。その結果、Ｆ／Ｆ１３６〜１３８による１クロック分の遅れを考慮して、Ｄａｔａ−Ｏｕｔ［２：０］は、通常、Ｔ３で０ｘ１に変化し、Ｔ５で０ｘ２に変化し、Ｔ７で０ｘ４に変化し、Ｔ９で０ｘ０に変化する。しかし、Ｆ／Ｆ１３４の出力が１クロック遅れるため、Ｄａｔａ−Ｏｕｔ［２：０］は、Ｔ３で０ｘ１に変化し、Ｔ５で０ｘ０に変化し、Ｔ６で０ｘ２に変化し、Ｔ７で０ｘ６に変化し、Ｔ８で０ｘ４に変化し、Ｔ９で０ｘ０に変化する。すなわち、Ｄａｔａ−Ｏｕｔ［２：０］のＴ５に０ｘ０が発生し、Ｔ７に０ｘ６が発生する。０ｘ０及び０ｘ６はＤａｔａ−Ｉｎ［２：０］には存在しない値である。このように、本実施の形態では、例えば、クロック信号を遅延させて、データが正しく伝播できていないことを再現して、非同期シミュレーションを実行できる。
【００６４】
図１６Ｃは、図１１Ｄの非同期インターフェース９３でのタイミングチャートの一例を示す。既述のように、この非同期インターフェース９３は、Ｆ／Ｆ１３５のデータラインにＦ／Ｆ１７０が追加されて生成されている。ただし、（ａ）はクロック信号ＣＬＫ＃１、（ｂ）は入力信号Ｄａｔａ−Ｉｎ［２：０］、（ｃ）はクロック信号ＣＬＫ＃２、（ｄ）はＦ／Ｆ１７０の出力信号、（ｅ）はＦ／Ｆ１３４の出力信号、（ｆ）はＦ／Ｆ１３３の出力信号、（ｇ）はＤａｔａ−Ｏｕｔ［２：０］、最下段は時間経過Ｔ１、Ｔ２、…がそれぞれ記載されている。
【００６５】
Ｄａｔａ−Ｉｎ［２：０］は、クロック信号ＣＬＫ＃１の立ち上がりエッジに同期して０ｘ０→０ｘ１→０ｘ２→０ｘ４→０ｘ０と変化している。Ｆ／Ｆ１３５は、クロック信号ＣＬＫ＃２の立ち上がりエッジに同期して、Ｔ６で１となり（（ｄ）の破線）、Ｔ８で０と変化する。しかし、ここでは、Ｆ／Ｆ１７０を追加して、Ｆ／Ｆ１７０の出力をＦ／１３５の出力として実質的に取り扱う。そして、Ｆ／Ｆ１７０の出力は、Ｆ／１３５の出力と比較して１クロック遅れるため、クロック信号ＣＬＫ＃２の立ち上がりエッジに同期して、Ｔ７で１となり、Ｔ９で０と変化する。すなわち、Ｆ／Ｆ１３５の出力の変化タイミングが１クロック遅れる動作を、Ｆ／Ｆ１７０を挿入することで、クロックイベントに同期したタイミングのみで再現している。
【００６６】
Ｆ／Ｆ１３３は、クロック信号ＣＬＫ＃２の立ち上がりエッジに同期して、Ｔ２で１となり、Ｔ４で０となる。Ｆ／Ｆ１３４は、クロック信号ＣＬＫ＃２の立ち上がりエッジに同期して、Ｔ４で１となりＴ６で０となる。その結果、Ｆ／Ｆ１３６〜１３８による１クロック分の遅れを考慮して、Ｄａｔａ−Ｏｕｔ［２：０］は、通常、Ｔ３で０ｘ１に変化し、Ｔ５で０ｘ２に変化し、Ｔ７で０ｘ４に変化し、Ｔ９で０ｘ０に変化する。しかし、Ｆ／Ｆ１３５の出力が１クロック遅れるため、Ｄａｔａ−Ｏｕｔ［２：０］は、Ｔ３で０ｘ１に変化し、Ｔ５で０ｘ２に変化し、Ｔ７で０ｘ０に変化し、Ｔ８で０ｘ４に変化し、Ｔ１０で０ｘ０に変化する。すなわち、Ｄａｔａ−Ｏｕｔ［２：０］のＴ７に０ｘ０が発生する。０ｘ０はＤａｔａ−Ｉｎ［２：０］には存在しない値である。このように、本実施の形態では、例えば、クロック信号を遅延させて、データが正しく伝播できていないことを再現して、非同期シミュレーションを実行できる。
【００６７】
なお、上記実施の形態では、遅延用の素子（タイミング変化用回路）として、Ｆ／Ｆを用いている。しかし、本実施の形態はこの例に限定されるものではなく、クロックに同期して動作する素子であって、挿入により１クロックの遅延（クロック単位の遅延）を発生させる素子であれば、他の素子であっても良い。また、上記実施の形態では、遅延用の素子（タイミング変化用回路）としてのＦ／Ｆを、例えばＦ／Ｆ１３３の後段に追加・挿入している。しかし、本実施の形態はこの例に限定されるのではなく、例えばＦ／Ｆ１３３の前段に追加・挿入してもよい。
【００６８】
以上示されるように、本実施の形態により、ＲＴＬでの非同期インターフェースの検証が可能となる。また、本実施の形態により、特許文献１の方法と比較して、シミュレーション時間を著しく短縮することが出来る。その理由は、以下のとおりである。本実施の形態では、例えば、非同期インターフェース９０（図１１Ａ）に、Ｆ／Ｆ１３３の動作を１クロック遅らせることに対応させて、Ｆ／Ｆ１５０を追加している（図１１Ｂ）。これにより、図１６Ａのように非同期パスの遅延を再現させることができる。このとき、遅延素子として、クロック信号に同期して動作するＦ／Ｆ１５０を用いている。そのため、Ｆ／Ｆ１３３の出力（図中（ｆ）Ｆ／Ｆ１５０）がＴ３で１となりＴ５で０となる動作とすることができる。この動作は、Ｆ／Ｆ１５０を挿入しないときの動作、すなわち、図８に示すような、Ｆ／Ｆ２３３の出力（ｆ）がＴ２で１となりＴ４で０となる動作と比較して、変化タイミングが１クロック遅れる動作である。このように、本実施の形態では、非同期パスの遅延を、クロックイベントに同期したタイミングのみで再現している。非同期インターフェースによるタイミングずれがクロックイベントに同期したタイミングで行われるため、特許文献１の方法と異なり、シミュレーションイベントが増加することはない。そのため、特許文献１の方法と比較して、シミュレーション時間を著しく短縮することが出来る。その結果、半導体装置の検証コストの削減が可能となる。
【００６９】
また、本実施の形態では、非同期インターフェースにＦ／Ｆのような素子を追加して遅延を発生させている。したがって、シミュレーションにおいてエラーが発生した場合に、そのエラーが、その非同期インターフェースの遅延によるエラーであるか否かを、エラーの発生箇所の素子により容易に特定することができる。それにより、デバッグにかかる時間を短縮することができる。その結果、半導体装置の検証コストの削減が可能となる。
【００７０】
（第２の実施の形態）
本発明の第２の実施の形態に係る非同期インターフェース検証装置について、添付図面を参照して説明する。第１の実施の形態では、非同期インターフェースにおける複数のパスのうち、１つのパスに１つの遅延用Ｆ／Ｆ（例示：図１１ＢのＦ／Ｆ１５０）をタイミング変化用回路として挿入している。しかし、本実施の形態では、１つの非同期インターフェースにおける複数のパスを一つの同期化Ｆ／Ｆモジュールとし、それに対応して、１つのパスに１つの遅延用Ｆ／Ｆを挿入した検証用の同期化Ｆ／Ｆモジュール（タイミング変化用回路）を予め準備しておく。検証の際に、同期化Ｆ／Ｆモジュールをその検証用の同期化Ｆ／Ｆモジュールに置き換えるようにしている。それにより、ＲＴＬ１００に対する修正量を減少させることができる。以下、詳細に説明する。
【００７１】
図１７は、本発明の第２の実施の形態に係る非同期インターフェース検証装置の構成を示すブロック図である。非同期インターフェース検証装置１ａは、ＲＴＬ記述された半導体装置の設計データにおいて非同期インターフェースを検証する。図１０の非同期インターフェース検証装置１と比較して、非同期検証用Ｆ／Ｆライブラリ１８０を更に具備している。
【００７２】
非同期検証用Ｆ／Ｆライブラリ１８０は、１つのパスに１つの遅延用Ｆ／Ｆを挿入した検証用の同期化Ｆ／Ｆモジュールを備えている。非同期検証用Ｆ／Ｆライブラリ１８０は、その検証用の同期化Ｆ／Ｆモジュールをシミュレーション用に非同期検証シミュレーション部１０６（ステップＳ５用）及び期待値作成シミュレーション部１１０（ステップＳ２用）へ出力する。
【００７３】
Ｆ／Ｆ変更処理部１０４は、Ｆ／Ｆ変更箇所のインスタンス情報及びＲＴＬ１００に基づいて、ＲＴＬ１００のＦ／Ｆ変更箇所を含む同期化Ｆ／Ｆモジュールを、検証用の同期化Ｆ／Ｆモジュールに置き換え、非同期検証用ＲＴＬ１０５として非同期検証シミュレーション部１０６へ出力する。
【００７４】
その他の構成については、非同期検証シミュレーション部１０６が更に非同期検証用Ｆ／Ｆライブラリ１８０を用いてシミュレーションを行う点、及び、期待値作成シミュレーション部１１０が更に非同期検証用Ｆ／Ｆライブラリ１８０を用いてシミュレーションを行う点を除いては、第１の実施の形態と同様である。
【００７５】
図１８Ａは、非同期パスの一例としてのバスの非同期インターフェースを示す回路図である。この非同期インターフェース９０ａは、非同期パス抽出部１０１によりＲＴＬ１００から抽出された非同期パスの一つである。この非同期インターフェース９０には、２つのクロック信号ＣＬＫ＃１とクロック信号ＣＬＫ＃２が供給されている。クロック信号ＣＬＫ＃１とクロック信号ＣＬＫ＃２は、周波数と位相について互いに関係のない非同期関係にあるクロック信号である。入力信号Ｄａｔａ−Ｉｎ［３：０］は、クロック信号ＣＬＫ＃１で動作する送信側回路であるＦＦ（ＦｌｉｐＦｌｏｐ）１１〜３１に供給される。イネーブル信号Ｅｎａｂｌｅは、クロック信号ＣＬＫ＃１で動作するＦＦ４１に供給される。ＦＦ１１〜３１の出力信号は、それぞれクロック信号ＣＬＫ＃２で動作する受信側回路ＦＦ１２〜３２に供給される。ＦＦ４１の出力信号は、クロック信号ＣＬＫ＃２で動作するＦＦ４２に供給される。ＦＦ１１〜３１からＦＦ１２〜３２が、クロック信号ＣＬＫ＃１からクロック信号ＣＬＫ＃２への非同期インターフェースである。ＦＦ１２〜３２の出力信号は、メタステーブルの伝播防止のため、それぞれクロック信号ＣＬＫ＃２で動作する受信側回路であるＦＦ１３〜３３に供給された後、出力信号Ｐｒｅ−Ｄａｔａ−Ｏｕｔ［３：０］としてＦＦ０４へ出力される。同様にＦＦ４２の出力信号は、クロック信号ＣＬＫ＃２で動作するＦＦ４３に供給されたのち、ＦＦ０４へイネーブル信号Ｅｎａｂｌｅとして出力される。ＦＦ０４は、イネーブル信号Ｅｎａｂｌｅに応答して、クロック信号ＣＬＫ＃２に同期して、出力信号Ｐｒｅ−Ｄａｔａ−Ｏｕｔ［３：０］を出力信号Ｄａｔａ−Ｏｕｔ［３：０］として出力する。受信側回路であるＦＦ１２〜４２とＦＦ１３〜４３とは、Ｆ／Ｆとして、同期化を行うためのＦ／Ｆモジュールとして、同期化Ｆ／Ｆモジュール（同期化モジュール）９５ａとみることができる。このような構成により、ＦＦ１１〜ＦＦ３１の出力の変化がそれぞれＦＦ１２〜３２に伝播した後に、ＦＦ４１の出力が変化することで、非同期パスによるデータ化けはＦＦ０４の出力には現れない。非同期インターフェースはこのような制御を行い、非同期パスによるデータ化けが後段に伝播しないようにしている。
【００７６】
図１８Ｂは、図１８Ａの非同期インターフェースにＦ／Ｆを追加した場合を示す回路図である。この非同期インターフェース９１ａは、同期化Ｆ／Ｆモジュール９５ａを同期化Ｆ／Ｆモジュール９６ａに置き換えられている。ただし、同期化Ｆ／Ｆモジュール９６ａは、同期化Ｆ／Ｆモジュール９５ａのパスの一つであるＦＦ１２とＦＦ１３との間のデータラインにＦＦ１２’が追加されて生成されている。すなわち、一つの同期化Ｆ／Ｆに遅延用のＦＦ１２’が挿入されている。この非同期インターフェース９１ａは、クロックスキューによりＦＦ１２のクロック信号ＣＬＫ＃２が遅い場合の動作に対応している。ＦＦ１２の動作が１クロック遅れることを再現するため、図１８ＡのＦＦ１２のデータラインに対してＦＦ１２’を追加している。Ｆ／Ｆ変更処理部１０４は非同期インターフェース９０ａを示すＲＴＬ１００において、同期化Ｆ／Ｆモジュール９５ａを同期化Ｆ／Ｆモジュール９６ａに置き換えて（ＦＦ１２’を追加して）、この非同期インターフェース９１ａを示す非同期検証用ＲＴＬ１０５を生成する。
【００７７】
図示は省略するが、以下同様に、同期化Ｆ／Ｆモジュール９５ａにおいて、他のパスの一つであるＦＦ２２とＦＦ２３との間のデータラインにＦＦ（２２’）を追加した同期化Ｆ／Ｆモジュール（９７ａ）や、更に他のパスの一つであるＦＦ３２とＦＦ３３との間のデータラインにＦＦ（３２’）を追加した同期化Ｆ／Ｆモジュール（９８ａ）や、更に他のパスの一つであるＦＦ４２とＦＦ４３との間のデータラインにＦＦ（４２’）を追加した同期化Ｆ／Ｆモジュール（９９ａ）などを検証用の同期化Ｆ／Ｆとして用いることができる。
【００７８】
図１９Ａ〜図１９Ｃは、非同期検証用Ｆ／Ｆライブラリ１８０の一例、非同期インターフェースのＲＴＬ１００の一例、及び非同期検証用ＲＴＬ１０５の一例をそれぞれ示す。図１９Ａに示されるように、非同期検証用Ｆ／Ｆライブラリ１８０では、１行目〜１１行目において、同期化Ｆ／ＦモジュールとしてＳＹＮＣＲＯＮＩＺＥＲモジュールが定義されている。ＳＹＮＣＨＲＯＮＩＺＥＲモジュールは、ＦＦ（ＦｌｉｐＦｌｏｐ）２段で構成されたモジュールである。これは、図１８Ａの同期化Ｆ／Ｆモジュール９５ａに対応する。また、１３行目〜２４行目において、検証用の同期化Ｆ／ＦモジュールとしてＳＹＮＣＲＯＮＩＺＥＲ２モジュールが定義されている。ＳＹＮＣＨＲＯＮＩＺＥＲ２モジュールは、ＦＦ３段で構成されたモジュールである。これは、図１８Ｂの同期化Ｆ／Ｆモジュール９６ａに対応する。そのほか、２６行目〜３５行目において、Ｆ／Ｆモジュールが定義されている。これは、図１８Ａや図１８ＢのＦＦ１１〜ＦＦ４１に対応している。
【００７９】
図１９Ｂには、ＲＴＬ１００において、１行目〜７行目に非同期インターフェース９０ａ（図１８Ａ）が定義されている。このＲＴＬ１００では、非同期インターフェース９０ａの同期化Ｆ／Ｆモジュール９５ａとして、非同期検証用Ｆ／Ｆライブラリ１８０で定義されたＳＹＮＣＲＯＮＩＺＥＲモジュールが用いられている（６行目）。このようなＲＴ１００に対して、Ｆ／Ｆ変更処理部１０４はＦ／Ｆ変更箇所抽出部１０３からＦ／Ｆ変更箇所のインスタンス情報を受信して、インスタンス情報に対応するＳＹＮＣＨＲＯＮＩＺＥＲモジュールを、非同期検証用Ｆ／Ｆライブラリ１８０で定義されたＳＹＮＣＨＲＯＮＩＺＥＲ２モジュールに差し替える（図１５ＡのステップＳ３）。これにより、非同期インターフェース９０ａ（図１８Ａ）に遅延用のＦＦ１２’を追加することができる。このようにして生成された非同期検証用ＲＴＬ１０５では、非同期インターフェース９０ａは、非同期インターフェース９１ａ（図１８Ｂ）のように変わる。それを示しているのが図１９Ｃである。
【００８０】
図１９Ｃには、非同期検証用ＲＴＬ１０５において、１行目〜７行目に非同期インターフェース９１ａ（図１８Ｂ）が定義されている。この非同期検証用ＲＴＬ１０５では、非同期インターフェース９１ａの同期化Ｆ／Ｆモジュール９６ａとして、非同期検証用Ｆ／Ｆライブラリ１８０で定義されたＳＹＮＣＲＯＮＩＺＥＲ２モジュールが用いられている（６行目）。このとき、ＲＴＬ１００から非同期検証用ＲＴＬ１０５への変更は、単にＳＹＮＣＨＲＯＮＩＺＥＲモジュールを、ＳＹＮＣＨＲＯＮＩＺＥＲ２モジュールに一行だけ差し替えることで実行可能である。
【００８１】
次に、本発明の第２の実施の形態の非同期インターフェース検証装置の動作（非同期インターフェース検証方法及びそのプログラム）については、ステップＳ４において、Ｆ／Ｆ変更処理部１０４が、Ｆ／Ｆ変更箇所にＦ／Ｆを追加するのではなく、Ｆ／Ｆ変更箇所を含む同期化Ｆ／Ｆモジュールを、検証用の同期化Ｆ／Ｆモジュールに置き換える点、ステップＳ５において、非同期検証シミュレーション部１０６が更に非同期検証用Ｆ／Ｆライブラリ１８０を用いる点、ステップＳ２において、期待値作成シミュレーション部１１０が更に非同期検証用Ｆ／Ｆライブラリ１８０を用いる点、を除いては、第１の実施の形態と同様である。
【００８２】
本実施の形態により、第１の実施の形態と同様の効果を得ることができる。
加えて、第１の実施の形態と比較して、ＲＴＬ１００に対する修正量を減らすことができる。具体的には、第１の実施の形態では、図１４では、２２行目から２５行目の４行の追加と１７行目の１行の修正を必要としている。しかし、本実施の形態では、図１９Ｃにおいて６行目の１行の修正のみでよい。このように、ＲＴＬ１００の修正量が減ることで、Ｆ／Ｆ変更処理１０４の処理内容が簡略化され、非同期インターフェース検証装置の処理時間を短縮することができる。
【００８３】
（第３の実施の形態）
本発明の第３の実施の形態に係る非同期インターフェース検証装置について、添付図面を参照して説明する。第１の実施の形態では、非同期インターフェース内の同期化Ｆ／Ｆ（例示：図１１Ａの同期化Ｆ／Ｆ９５）のパスに１つの遅延用Ｆ／Ｆ（例示：図１１ＢのＦ／Ｆ１５０）をタイミング変化用回路として挿入している。しかし、本実施の形態では、同期化Ｆ／Ｆのパスから１つのＦ／Ｆ（タイミング変化用回路）を削除する。このような方法によっても、出力信号Ｄａｔａ−Ｏｕｔ［２：０］が入力信号Ｄａｔａ−Ｉｎ［２：０］と異なるという上述の動作を再現し、非同期インターフェースの検証を可能とすることができる。以下、詳細に説明する。
【００８４】
本発明の第３の実施の形態に係る非同期インターフェース検証装置の構成については、第１の実施の形態（図１０）と同様である。ただし、Ｆ／Ｆ変更箇所抽出部１０３が抽出したＦ／Ｆを追加する箇所に対して、Ｆ／Ｆ変更処理部１０４がＦ／Ｆを追加するのではなく、Ｆ／Ｆを削除するという点で、第１の実施の形態と異なっている。
【００８５】
図２０は、図１１Ａの非同期インターフェースからＦ／Ｆを削除した場合を示す回路図である。すなわち、Ｆ／Ｆの削除を行った場合での非同期検証用ＲＴＬ１０５の回路構造である。この非同期インターフェース９４は、非同期インターフェース９０の一つの同期化Ｆ／Ｆ９５からＦ／Ｆ１３６が削除されて生成されている（同期化Ｆ／Ｆ９９）。すなわち、この非同期インターフェース９４は、クロックスキューによりＦ／Ｆ１３３のクロック信号ＣＬＫ＃２が速い場合の動作に対応している。Ｆ／Ｆ１３３の動作が１クロック速まる（又は他のＦ／Ｆ１３４、Ｆ／Ｆ１３５の動作が１クロック遅くなる）ことを再現するために、図１１ＡのＦ／Ｆ１３３のデータラインにおいてＦ／Ｆ１３６を削除している。Ｆ／Ｆ変更処理部１０４は非同期インターフェース９０を示すＲＴＬ１００からＦ／Ｆ１３６を削除して、この非同期インターフェース９４を示す非同期検証用ＲＴＬ１０５を生成する。
【００８６】
次に、本発明の第３の実施の形態の非同期インターフェース検証装置の動作（非同期インターフェース検証方法及びそのプログラム）については、ステップＳ４において、Ｆ／Ｆ変更処理部１０４が、Ｆ／Ｆ変更箇所にＦ／Ｆを追加するのではなく、Ｆ／Ｆを削除するという点を除いては、第１の実施の形態と同様である。
【００８７】
本実施の形態により、第１の実施の形態と同様の効果を得ることができる。
また、Ｆ／Ｆを削除するため、非同期検証用ＲＴＬ１０５の記述量をＲＴＬ１００に対して減らすことができる。非同期検証用ＲＴＬ１０５におけるＦ／Ｆ数が減少することにより、第１の実施の形態と比較して、シミュレーションにおけるメモリ使用量を削減できる。
【００８８】
また、本実施の形態では、非同期インターフェースにおける複数のパスのうち、１つのパスから１つのＦ／Ｆ（タイミング変化用回路）を削除している。しかし、第２の実施の形態と同様に考えて、１つの非同期インターフェースにおける複数のパスを一つの同期化Ｆ／Ｆモジュールとし、それに対応して、１つのパスから１つのＦ／Ｆを削除した検証用の同期化Ｆ／Ｆモジュール（タイミング変化用回路）を予め準備しておき、検証の際に、同期化Ｆ／Ｆモジュールをその検証用の同期化Ｆ／Ｆモジュールに置き換えるようにしても良い。それにより、第２の実施の形態と同様の効果を更に得ることができる。
【００８９】
本発明のプログラム、データ構造は、コンピュータ読取可能な記憶媒体に記録され、その記憶媒体から情報処理装置に読み込まれても良い。
【００９０】
本発明は上記各実施の形態に限定されず、本発明の技術思想の範囲内において、各実施の形態は適宜変形又は変更され得ることは明らかである。
【符号の説明】
【００９１】
９０、９０ａ    バスの非同期インターフェース
９１〜９３、９１ａ    バスの非同期インターフェース（Ｆ／Ｆ１５０、１６０、１７０追加）
９４          バスの非同期インターフェース（Ｆ／Ｆ１３６削除）
９５    同期化Ｆ／Ｆ
９５ａ    同期化Ｆ／Ｆモジュール
９６〜９８    同期化Ｆ／Ｆ（Ｆ／Ｆ１５０、１６０、１７０追加）
９６ａ    同期化Ｆ／Ｆモジュール（ＦＦ１２’追加）
９９          同期化Ｆ／Ｆ（Ｆ／Ｆ１３６削除）
１００          ＲＴＬ
１０１          非同期パス抽出部
１０２          非同期リスト
１０３          Ｆ／Ｆ変更箇所抽出部
１０４          Ｆ／Ｆ変更処理部
１０５          非同期検証用ＲＴＬ
１０６          非同期検証用シミュレーション部
１０７          ログ・結果（Ｆ／Ｆ挿入後）
１０８          期待値照合部
１０９          テストベンチ
１１０          期待値作成シミュレーション部
１１１          ログ・結果（期待値）
１３０〜１３２    送信側回路Ｆ／Ｆ
１３３〜１３８    受信側回路Ｆ／Ｆ
１５０、１６０、１７０    追加Ｆ／Ｆ
１８０          非同期検証用Ｆ／Ｆライブラリ
ＦＦ１１〜ＦＦ４１    送信側回路Ｆ／Ｆ
ＦＦ１２〜ＦＦ４２、Ｆ１３〜Ｆ４３    受信側回路Ｆ／Ｆ
ＦＦ１２’    追加Ｆ／Ｆ
ＦＦ０４    出力Ｆ／Ｆ
２９０          バスの非同期インターフェース
２９５          同期化Ｆ／Ｆ
２３０〜２３２    送信側回路Ｆ／Ｆ
２３３〜２３８    受信側回路Ｆ／Ｆ
３０３ａ        従来例の非同期インターフェース検証システム
３０１          ＲＴＬ
３１０          非同期抽出部
３１１          非同期抽出プログラム
３１２          非同期リスト
３２０          制御タスク挿入部
３２１          コントロールカード
３３０          シミュレーション部
３３１          ＲＴＬ
３３２          テストベンチ
３３３          シミュレータ
３３４          デバイスモデル
３４０          クロック・遅延制御部
３４１          コントロール部
３４２          クロック変調部
３４３          遅延制御部
３５０          集計部
３５１          ログ・結果
３５２          試験成績表
３５３          ログ・カバレッジ部
３５４          モニタ部
３８０、３８１          Ｆ／Ｆ
【図１】
2013037596.tif 000003
【図２】
2013037596.tif 000004
【図３】
2013037596.tif 000005
【図４】
2013037596.tif 000006
【図５】
2013037596.tif 000007
【図６】
2013037596.tif 000008
【図７】
2013037596.tif 000009
【図８】
2013037596.tif 000010
【図９】
2013037596.tif 000011
【図１０】
2013037596.tif 000012
【図１１Ａ】
2013037596.tif 000013
【図１１Ｂ】
2013037596.tif 000014
【図１１Ｃ】
2013037596.tif 000015
【図１１Ｄ】
2013037596.tif 000016
【図１２】
2013037596.tif 000017
【図１３】
2013037596.tif 000018
【図１４】
2013037596.tif 000019
【図１５Ａ】
2013037596.tif 000020
【図１５Ｂ】
2013037596.tif 000021
【図１６Ａ】
2013037596.tif 000022
【図１６Ｂ】
2013037596.tif 000023
【図１６Ｃ】
2013037596.tif 000024
【図１７】
2013037596.tif 000025
【図１８Ａ】
2013037596.tif 000026
【図１８Ｂ】
2013037596.tif 000027
【図１９Ａ】
2013037596.tif 000028
【図１９Ｂ】
2013037596.tif 000029
【図１９Ｃ】
2013037596.tif 000030
【図２０】
2013037596.tif 000031