(57)【要約】【課題】非同期回路の検証において、より高速で検証を行うことができる非同期回路検証用のプログラムデータ生成方法、非同期回路検証方法及び非同期回路検証装置を提供する。【解決手段】非同期回路の回路データに基づいてクロックドメイン跨り解析部１１１がクロックドメインのそれぞれの境界であるクロックドメイン跨り箇所を解析し、疑似メタステーブル発生回路挿入部１１３がクロックドメイン跨り箇所の後段にメタステーブル時の信号を疑似的に発生する疑似メタステーブル発生回路を挿入した回路データを生成する。ＨＷエミュレータ部１０６が、当該回路データに基づいてＦＰＧＡ上に構築された非同期回路を疑似メタステーブル発生回路３００からメタステーブル時の信号を発生させつつ複数のクロック信号により動作させる。これにより、クロックドメイン跨りの検証を高速に行うことができる。【選択図】図１
2009009318.tif 000002
【特許請求の範囲】
【請求項１】
検証対象である複数のクロックドメインを有する非同期回路の回路データに基づいてプログラムデータを生成し、前記プログラムデータをプログラマブルロジックデバイスに入力して前記非同期回路を前記プログラマブルロジックデバイスに構築し、前記プログラマブルロジックデバイスを動作させて前記非同期回路の動作の検証を行うための非同期回路検証用のプログラムデータ生成方法であって、
電子計算機が、検証対象である複数のクロックドメインを有する非同期回路の回路データに基づいて、前記クロックドメインのそれぞれの境界であるクロックドメイン跨り箇所を解析するステップと、
電子計算機が、解析した前記クロックドメイン跨り箇所の後段にメタステーブル時の信号を疑似的に発生する疑似メタステーブル発生回路を挿入した前記非同期回路の回路データを生成するステップと、
電子計算機が、生成した前記疑似メタステーブル発生回路を挿入した前記非同期回路の回路データに基づいて、前記非同期回路をプログラマブルロジックデバイスに構築するためのプログラムデータを生成するステップと、
を含む非同期回路検証用のプログラムデータ生成方法。
【請求項２】
前記疑似メタステーブル発生回路は、前記クロックドメイン跨り箇所の後段の出力信号を入力されて当該クロックドメイン跨り箇所の後段のクロック信号により動作するフリップフロップと、
前記クロックドメイン跨り箇所の後段の出力信号と、前記フリップフロップからの出力信号とから一つの信号を選択するマルチプレクサと、
前記マルチプレクサの選択を制御する疑似メタステーブル発生状態切り替え手段と、
を有するものとする、請求項１に記載の非同期回路検証用のプログラムデータ生成方法。
【請求項３】
請求項１又は２に記載の非同期回路検証用のプログラムデータ生成方法により生成されたプログラムデータを電子計算機がプログラマブルロジックデバイスに入力して前記非同期回路をプログラマブルロジックデバイスに構築し、電子計算機が前記プログラマブルロジックデバイスを動作させて前記非同期回路の動作の検証を行う非同期回路検証方法。
【請求項４】
電子計算機が、前記プログラマブルロジックデバイスに構築した前記非同期回路に含まれる前記疑似メタステーブル発生回路に前記メタステーブル時の信号を乱数に基づいて発生させる、請求項３に記載の非同期回路検証方法。
【請求項５】
電子計算機が、前記プログラマブルロジックデバイスに構築した前記非同期回路に含まれる前記疑似メタステーブル発生回路に前記メタステーブル時の信号を固定値に基づいて発生させる、請求項３に記載の非同期回路検証方法。
【請求項６】
電子計算機が、前記プログラマブルロジックデバイスに構築した前記非同期回路が有する複数のクロックドメインのそれぞれに、エッジとなる時刻を前記非同期回路のセットアップ時間及びホールド時間を満たすようにずらしたクロック信号を供給して、前記プログラマブルロジックデバイスを動作させる、請求項３〜５のいずれか１項に記載の非同期回路検証方法。
【請求項７】
複数のクロックドメインを有する非同期回路の回路データに基づいて前記クロックドメインのそれぞれの境界であるクロックドメイン跨り箇所を解析するクロックドメイン跨り解析手段と、
前記クロックドメイン跨り解析手段が解析した前記クロックドメイン跨り箇所の後段にメタステーブル時の信号を疑似的に発生する疑似メタステーブル発生回路を挿入した前記非同期回路の回路データを生成する疑似メタステーブル発生回路挿入手段と、
前記疑似メタステーブル発生回路挿入手段が生成した前記疑似メタステーブル発生回路を挿入した前記非同期回路の回路データに基づいて、前記非同期回路をプログラマブルロジックデバイスに構築するためのプログラムデータを生成するプログラムデータ生成手段と、
前記プログラムデータ生成手段により生成されたプログラムデータを前記プログラマブルロジックデバイスに入力して前記非同期回路をプログラマブルロジックデバイスに構築する非同期回路構築手段と、
前記プログラマブルロジックデバイスを動作させて前記非同期回路の動作の検証を行う非同期回路検証手段と、
を備えた非同期回路検証装置。
【請求項８】
前記疑似メタステーブル発生回路は、前記クロックドメイン跨り箇所の後段の出力信号を入力されて当該クロックドメイン跨り箇所の後段のクロック信号により動作するフリップフロップと、
前記クロックドメイン跨り箇所の後段の出力信号と、前記フリップフロップからの出力信号とから一つの信号を選択するマルチプレクサと、
前記マルチプレクサの選択を制御する疑似メタステーブル発生状態切り替え手段と、
を有する、請求項７に記載の非同期回路検証装置。
【請求項９】
前記非同期回路検証手段は、前記プログラマブルロジックデバイスに構築した前記非同期回路に含まれる前記疑似メタステーブル発生回路に前記メタステーブル時の信号を乱数に基づいて発生させる、請求項７又は８に記載の非同期回路検証装置。
【請求項１０】
前記非同期回路検証手段は、前記プログラマブルロジックデバイスに構築した前記非同期回路に含まれる前記疑似メタステーブル発生回路に前記メタステーブル時の信号を固定値に基づいて発生させる、請求項７又は８に記載の非同期回路検証装置。
【請求項１１】
前記非同期回路検証手段は、前記プログラマブルロジックデバイスに構築した前記非同期回路が有する複数のクロックドメインのそれぞれに、エッジとなる時刻を前記非同期回路のセットアップ時間及びホールド時間を満たすようにずらしたクロック信号を供給して、前記プログラマブルロジックデバイスを動作させる、請求項６〜１０のいずれか１項に記載の非同期回路検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は非同期回路検証用のプログラムデータ生成方法、非同期回路検証方法及び非同期回路検証装置に関し、特に、複数のクロックドメインを有する非同期回路の動作を検証する非同期回路検証用のプログラムデータ生成方法、非同期回路検証方法及び非同期回路検証装置に関する。
【背景技術】
【０００２】
複数のクロックドメインを有する非同期回路の設計においては、クロックドメインのそれぞれの境界であるクロックドメイン跨り箇所に対して、メタステーブルに起因して回路動作に不都合がないかどうか、検証を行う必要がある。
【０００３】
このような非同期回路の動作を検証する方法としては、ソフトウェアシミュレータなどにおいてフリップフロップの動作を仮想的に実現し、非同期回路の動作を検証することが行われている。例えば、特許文献１には、検証対象の順序回路で構成する非同期回路に対し言語レベルの機能シミュレーション装置を用いて行う非同期回路の検証方法において、入力データの値を複数時刻分保持するために順序回路に予め設けた内部配列要素に対し、１クロック周期内におけるイベント発生時刻毎に入力データを一時記憶させ、クロック信号のアクティブエッジ検出時に前記入力データが前記アクティブエッジ検出の１時刻前の値に対して変化していればメタステーブル状態と定義してそのメタステーブル状態の値を発生して出力し、次の一時刻後に、イベント発生時刻毎に一時記憶した入力データのうち任意の１時刻の入力データを出力することを特徴とする非同期回路の検証方法が開示されている。
【特許文献１】特許第３７５９０５１号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上記の技術は、クロック信号のエッジを検出して、条件に応じてフリップフロップの出力値を変えるというものである。そのため、通常のハードウェアで実現可能なフリップフロップの動作ではなく、ソフトウェアシミュレータなどにおいてフリップフロップの動作を実現するということが前提となっている。
【０００５】
しかしながら、上記のような検証方法では、ハードウェア記述言語で表現した設計データを入力する論理シミュレータであるＨＤＬシミュレータ（HDL  simulator）等を用いて検証を行う場合、非常に時間がかかる。このように時間がかかる理由は、メタステーブルとは関係ない通常の動作・機能を検証する場合とは異なり、メタステーブルが発生する可能性がある箇所の信号の変化について、様々なパターンのシミュレーションを実行して、検証する必要があるためである。
【０００６】
そのため、非同期回路の動作の検証において、より高速で検証を行うことができる方法が望まれている。
【０００７】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、非同期回路の検証において、より高速で検証を行うことができる非同期回路検証用のプログラムデータ生成方法、非同期回路検証方法及び非同期回路検証装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、検証対象である複数のクロックドメインを有する非同期回路の回路データに基づいてプログラムデータを生成し、プログラムデータをプログラマブルロジックデバイスに入力して非同期回路をプログラマブルロジックデバイスに構築し、プログラマブルロジックデバイスを動作させて非同期回路の動作の検証を行うための非同期回路検証用のプログラムデータ生成方法であって、電子計算機が、検証対象である複数のクロックドメインを有する非同期回路の回路データに基づいて、クロックドメインのそれぞれの境界であるクロックドメイン跨り箇所を解析するステップと、電子計算機が、解析したクロックドメイン跨り箇所の後段にメタステーブル時の信号を疑似的に発生する疑似メタステーブル発生回路を挿入した非同期回路の回路データを生成するステップと、電子計算機が、生成した疑似メタステーブル発生回路を挿入した非同期回路の回路データに基づいて、非同期回路をプログラマブルロジックデバイスに構築するためのプログラムデータを生成するステップと、を含む非同期回路検証用のプログラムデータ生成方法である。
【０００９】
また、本発明は、上記本発明の非同期回路検証用のプログラムデータ生成方法により生成されたプログラムデータを電子計算機がプログラマブルロジックデバイスに入力して非同期回路をプログラマブルロジックデバイスに構築し、電子計算機がプログラマブルロジックデバイスを動作させて非同期回路の動作の検証を行う非同期回路検証方法である。
【００１０】
さらに本発明は、複数のクロックドメインを有する非同期回路の回路データに基づいてクロックドメインのそれぞれの境界であるクロックドメイン跨り箇所を解析するクロックドメイン跨り解析手段と、クロックドメイン跨り解析手段が解析したクロックドメイン跨り箇所の後段にメタステーブル時の信号を疑似的に発生する疑似メタステーブル発生回路を挿入した非同期回路の回路データを生成する疑似メタステーブル発生回路挿入手段と、疑似メタステーブル発生回路挿入手段が生成した疑似メタステーブル発生回路を挿入した非同期回路の回路データに基づいて、非同期回路をプログラマブルロジックデバイスに構築するためのプログラムデータを生成するプログラムデータ生成手段と、プログラムデータ生成手段により生成されたプログラムデータをプログラマブルロジックデバイスに入力して非同期回路をプログラマブルロジックデバイスに構築する非同期回路構築手段と、プログラマブルロジックデバイスを動作させて非同期回路の動作の検証を行う非同期回路検証手段と、を備えた非同期回路検証装置である。
【発明の効果】
【００１１】
本発明の非同期回路検証用のプログラムデータ生成方法、非同期回路検証方法及び非同期回路検証装置によれば、非同期回路の検証において、より高速で検証を行うことができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照しつつ本発明の実施形態に係る非同期回路検証用のプログラムデータ生成方法、非同期回路検証方法及び非同期回路検証装置の好適な実施形態としての非同期回路検証装置１について詳細に説明する。
【００１３】
図１に示す非同期回路検証装置１は、複数のクロックドメインを有する非同期回路のメタステーブルの検証を、通常のハードウェアであり、プログラムデータを入力することにより内部論理回路を定義及び変更することができるプログラマブルロジックデバイス（programmable  logic  device）であるＦＰＧＡ（Field  Programmable  Gate  Array）を用いたＨＷ（ハードウェア：Hardware）エミュレータを使用して行う構成としている。
【００１４】
図１に示すように、本実施形態の非同期回路検証装置１は、シミュレーション制御部１０１、インターフェース部１０２、ワークステーション１２０、及びＨＷエミュレータ部１０６から構成されている。本実施形態の非同期回路検証装置１においては、ワークステーション１２０が作製したＨＷエミュレータ用回路情報を使用して、ＨＷエミュレータ部１０６とシミュレーション制御部１０１とが、インターフェース部１０２を介して接続されて動作する。
【００１５】
シミュレーション制御部１０１は、インターフェース部１０２を介してＨＷエミュレータ部１０６において行うシミュレーションの制御を行うためのものである。シミュレーション制御部１０１は、テストベクタのシナリオに当たる部分の機能を果たし、特許請求の範囲に記載の非同期回路検証手段として機能する。
【００１６】
インターフェース部１０２は、シミュレーション制御部１０１とＨＷエミュレータ部１０６との信号の伝送を仲介するためのものである。インターフェース部１０２は、シミュレーション制御部１０１からの指令信号に基づき、ＨＷエミュレータ部１０６に、クロック信号ＣＬＫ１、ＣＬＫ２、出力信号Ｓｉｇ１、Ｓｉｇ３を送信する。また、インターフェース部１０２は、ＨＷエミュレータ部１０６から、出力信号Ｓｉｇ２、Ｓｉｇ３を受信し、シミュレーション制御部１０１に送信する。なお、ＨＷエミュレータ部１０６に供給されるクロック信号ＣＬＫ１、ＣＬＫ２は、クロック信号のエッジとなる時刻を十分にずらされ、検証対象の非同期回路のセットアップ時間及びホールド時間を満たすようにされる。
【００１７】
ワークステーション１２０は、ＨＷエミュレータ部１０６に検証対象となる非同期回路をハードウェアとして作製するためのＨＷエミュレータ用回路情報を提供するためのものである。また、ワークステーション１２０は、ＨＷエミュレータ部１０６に疑似的なメタステーブルを発生されるための疑似メタステーブル発生状態切り替え指定値を提供するためのものである。
【００１８】
図１に示すように、ワークステーション１２０は、検証対象ＲＴＬ格納部１１０、クロックドメイン跨り解析部１１１、クロックドメイン跨り信号リスト格納部１１２、疑似メタステーブル発生回路挿入部１１３、疑似メタステーブル発生回路挿入済み検証対象ＲＴＬ格納部１１４、論理合成・配置配線部１１５、ＨＷエミュレータ用回路情報格納部１１６を備える。また、ワークステーション１２０は、疑似メタステーブル発生状態切り替え指定値発生部１０３及び疑似メタステーブル発生状態切り替え指定値格納部１０４を備える。以下、各部について説明する。
【００１９】
検証対象ＲＴＬ（Register  Transfer  Level）格納部１１０は、検証対象となる非同期回路を、フリップフロップと組み合わせ論理回路とで表現したレベルのデータとして格納するためのものである。検証対象ＲＴＬ格納部１１０に格納されている非同期回路は、例えば、図３に示すような、複数のフリップフロップＦＦ１〜ＦＦ３が、複数のクロック信号ＣＬＫ１，ＣＬＫ２により動作するものである。
【００２０】
クロックドメイン跨り解析部１１１は、検証対象ＲＴＬ格納部１１０に格納されている複数のクロックドメインを有する非同期回路において、クロックドメインのそれぞれの境界であるクロックドメイン跨り箇所を解析するためのものである。このクロックドメイン跨り箇所の検証は、例えば、図３の回路においては、フリップフロップＦＦ１がＣＬＫ１により動作し、フリップフロップＦＦ２がＣＬＫ２により動作するため、フリップフロップＦＦ１とフリップフロップＦＦ２との中間の箇所をクロックドメイン跨り箇所として解析することができる。クロックドメイン跨り解析部１１１は、特許請求の範囲に記載のクロックドメイン跨り解析手段として機能する。
【００２１】
クロックドメイン跨り信号リスト格納部１１２は、クロックドメイン跨り解析部１１１が解析した非同期回路におけるクロックドメイン跨り箇所におけるそれぞれの信号をリストとして格納するためのものである。
【００２２】
疑似メタステーブル発生回路挿入部１１３は、クロックドメイン跨り解析部１１１が解析し、クロックドメイン跨り信号リスト格納部１１２に格納されたクロックドメイン跨り箇所の後段に、メタステーブル時の信号を疑似的に発生する疑似メタステーブル発生回路を挿入するためのものである。疑似メタステーブル発生回路挿入部１１３は、特許請求の範囲に記載の疑似メタステーブル発生回路挿入手段として機能する。
【００２３】
疑似メタステーブル発生回路挿入部１１３が挿入する疑似メタステーブル発生回路３００は、例えば、図４に示すように、クロックドメイン跨り箇所の後段であるフリップフロップＦＦ２からの出力信号Ｓｉｇ２を入力されて当該フリップフロップＦＦ２へのクロック信号ＣＬＫ２により動作するフリップフロップＦＦ２’と、クロックドメイン跨り箇所であるフリップフロップＦＦ２からの出力信号Ｓｉｇ２とフリップフロップＦＦ２’からの出力信号Ｓｉｇ２’とから一つの信号を選択するマルチプレクサＭと、マルチプレクサＭの選択を制御する疑似メタステーブル発生状態切り替え指定値保持回路３０１とを有している。
【００２４】
疑似メタステーブル発生回路挿入済み検証対象ＲＴＬ格納部１１４は、疑似メタステーブル発生回路挿入部１１３が疑似メタステーブル発生回路３００を挿入した非同期回路を、フリップフロップと組み合わせ論理回路とで表現したレベルのデータとして格納するためのものである。
【００２５】
論理合成・配置配線部１１５は、疑似メタステーブル発生回路挿入済み検証対象ＲＴＬ格納部１１４に格納されたフリップフロップと組み合わせ論理回路とで表現したレベルのデータから、実際にＦＰＧＡ上でハードウェアとして非同期回路を構築するための論理合成及び配置配線の処理を行い、ＦＰＧＡへのプログラムデータであるＨＷエミュレータ用回路情報を生成するためのものである。論理合成・配置配線部１１５は、特許請求の範囲に記載のプログラムデータ生成手段として機能する。
【００２６】
ＨＷエミュレータ用回路情報格納部１１６は、論理合成・配置配線部１１５により論理合成及び配置配線の処理が行われた非同期回路の回路情報であるＨＷエミュレータ用回路情報を格納するためのものである。
【００２７】
疑似メタステーブル発生状態切り替え指定値発生部１０３は、クロックドメイン跨り信号リスト格納部１１２の情報に基づいて、非同期回路に挿入した疑似メタステーブル発生回路３００に疑似メタステーブルを発生させるための疑似メタステーブル発生状態切り替え指定値を生成するためのものである。疑似メタステーブル発生状態切り替え指定値発生部１０３は、クロックドメイン跨り信号リスト格納部１１２に格納されたクロックドメイン跨り箇所の信号の本数分の疑似メタステーブル発生状態切り替え指定値を発生する。疑似メタステーブル発生状態切り替え指定値発生部１０３は、生成する疑似メタステーブル発生状態切り替え指定値の値を、乱数から生成する機能と、固定値を用意して当該固定値から生成する機能とを有する。
【００２８】
疑似メタステーブル発生状態切り替え指定値格納部１０４は、疑似メタステーブル発生状態切り替え指定値発生部１０３が発生した疑似メタステーブル発生状態切り替え指定値を格納するためのものである。
【００２９】
ＨＷエミュレータ部１０６は、ＦＰＧＡを用いたＨＷエミュレータであり、ワークステーション１２０のＨＷエミュレータ用回路情報格納部１１６からのＨＷエミュレータ用回路情報をＦＰＧＡに入力し、疑似メタステーブル発生回路挿入部１１３が疑似メタステーブル発生回路３００を挿入した非同期回路をＦＰＧＡに構築するためのものである。また、ＨＷエミュレータ部１０６は、ＦＰＧＡに構築した非同期回路を動作させて非同期回路の動作の検証を行うためのものである。ＨＷエミュレータ部１０６は、特許請求の範囲に記載の非同期回路構築手段として機能する。また、ＨＷエミュレータ部１０６は、特許請求の範囲に記載の非同期回路検証手段として機能する。
【００３０】
ＨＷエミュレータ部１０６は、ワークステーション１２０からのＨＷエミュレータ用回路情報に基づいてハードウェアとして実装された非同期回路内に疑似メタステーブル発生状態切り替え指定値保持回路１０５を用いて検証を行う。疑似メタステーブル発生状態切り替え指定値保持回路１０５は、図４に示す疑似メタステーブル発生状態切り替え指定値保持回路３０１がハードウェアとしてＦＰＧＡ上に構築されたものである。疑似メタステーブル発生状態切り替え指定値保持回路１０５に保持される値は、疑似メタステーブル発生状態切り替え指定値発生部１０３が発生し、疑似メタステーブル発生状態切り替え指定値格納部１０４に格納された値である。疑似メタステーブル発生状態切り替え指定値保持回路１０５からの値により、図４に示すマルチプレクサの選択が切り替えられる。これにより、図４に示すような疑似メタステーブル発生回路３００は、メタステーブルが発生したのと同様の動作を疑似的に発生させることが可能となる。疑似メタステーブル発生状態切り替え指定値保持回路１０５は、特許請求の範囲に記載の疑似メタステーブル発生状態切り替え手段として機能する。
【００３１】
以下、図２〜６を参照して、本実施形態の非同期回路検証装置１の動作について説明する。
【００３２】
図２は、本発明の実施形態に係る非同期回路検証装置の動作を示すフロー図である。図２に示すように、まず、クロックドメイン跨り解析部１１１が、検証対象ＲＴＬ格納部１１０に格納された非同期回路のクロックドメイン跨り箇所を解析する（Ｓ１１）。上述したように、図３の回路であれば、フリップフロップＦＦ１とフリップフロップＦＦ２との間の箇所となる。検出されたクロックドメイン跨り箇所は、クロックドメイン跨り信号リスト格納部１１２に格納される。
【００３３】
疑似メタステーブル発生回路挿入部１１３は、クロックドメイン跨り信号リスト格納部１１２に格納された情報に基づいて、図４に示すような疑似メタステーブル発生回路３００を検証対象である非同期回路のクロックドメイン跨り箇所に挿入する（Ｓ１２）。疑似メタステーブル発生回路３００を挿入された回路の回路データは、疑似メタステーブル発生回路挿入済み検証対象ＲＴＬ格納部１１４に格納される。
【００３４】
論理合成・配置配線部１１５は、疑似メタステーブル発生回路挿入済み検証対象ＲＴＬ格納部１１４に格納された情報に基づいて、実際にハードウェアとして非同期回路をＦＰＧＡ上に実装するための論理合成及び配置配線の処理を行う（Ｓ１３）。論理合成及び配置配線の処理が行われた非同期回路に関する情報は、ＨＷエミュレータ用回路情報格納部１１６に格納される。
【００３５】
ＨＷエミュレータ部１０６は、ＨＷエミュレータ用回路情報格納部１１６に格納されている疑似メタステーブル発生回路３００を挿入された非同期回路の回路データをＦＰＧＡに入力してＦＰＧＡに非同期回路を構築し、構築した非同期回路の動作を検証する（Ｓ１４）。
【００３６】
非同期回路の動作の検証は、疑似メタステーブル発生状態切り替え指定値発生部１０３がクロックドメイン跨り信号リスト格納部１１２の情報に基づいて生成した疑似メタステーブル発生状態切り替え指定値に基づいて行われる。この疑似メタステーブル発生状態切り替え指定値は、図５に示すようなデータの構造を有する。疑似メタステーブル発生状態切り替え指定値は、疑似メタステーブル発生状態切り替え指定値保持回路１０５に保持される。疑似メタステーブル発生状態切り替え指定値の値は、乱数から生成しても良いし、予め用意しておいた固定値から生成しても良い。
【００３７】
シミュレーション制御部１０１は、ＨＷエミュレータ部１０６に対して図６に示すようなクロック信号ＣＬＫ１、ＣＬＫ２、出力信号Ｓｉｇ１を送信する。この場合のクロック信号ＣＬＫ１、ＣＬＫ２は、クロック信号のエッジとなる時刻をｔｉだけずらされ、検証対象の非同期回路のセットアップ時間及びホールド時間を満たすようにされる。
【００３８】
各部の信号は図６に示すようになり、疑似メタステーブル発生状態切り替え指定値保持回路３０１が、マルチプレクサＭの選択を切り替えることにより、出力信号Ｓｉｇ３、Ｓｉｇ３’の値が切り替えられる。これにより、メタステーブルが発生したのと同様の動作を疑似的に発生されることができる。シミュレーション制御部１０１は、全ての種類の疑似メタステーブル発生状態切り替え指定値について、非同期回路の検証を終了するまで検証の動作を継続する（Ｓ１５，Ｓ１６）。
【００３９】
本実施形態においては、非同期回路の回路データに基づき、クロックドメイン跨り解析部１１１がクロックドメインのそれぞれの境界であるクロックドメイン跨り箇所を解析し、疑似メタステーブル発生回路挿入部１１３がクロックドメイン跨り箇所の後段に、メタステーブル時の信号を疑似的に発生する疑似メタステーブル発生回路を挿入する。これにより、疑似的にメタステーブルの状態を生じさせる回路の回路データを得ることができる。
【００４０】
また、ＦＰＧＡを用いたＨＷエミュレータ部１０６が、疑似メタステーブル発生回路挿入部１１３が疑似メタステーブル発生回路３００を挿入した非同期回路の回路データに基づいてハードウェアとして構築された非同期回路を、疑似メタステーブル発生回路３００からメタステーブル時の信号を発生させつつ複数のクロック信号により動作させる。これにより、クロックドメイン跨りの検証を高速に行うことができ、この高速性により、様々なパターンのシミュレーションを実行することが可能となる。
【００４１】
また、本実施形態では、疑似メタステーブル発生状態切り替え指定値発生部１０３は、生成する疑似メタステーブル発生状態切り替え指定値の値を、乱数から生成する機能と、固定値を用意して当該固定値から生成する機能とを有する。これにより、疑似メタステーブル発生状態切り替え指定値を様々なパターンで切り替えて、種々の検証が可能となる。
【００４２】
さらに、本実施形態では、疑似メタステーブル発生回路挿入部１１３が挿入する疑似メタステーブル発生回路３００は、クロックドメイン跨り箇所の後段であるフリップフロップＦＦ２からの出力信号Ｓｉｇ２を入力されて当該フリップフロップＦＦ２へのクロック信号ＣＬＫ２により動作するフリップフロップＦＦ２’と、クロックドメイン跨り箇所の後段であるフリップフロップＦＦ２からの出力信号Ｓｉｇ２とフリップフロップＦＦ２’からの出力信号Ｓｉｇ２’とから一つの信号を選択するマルチプレクサＭと、マルチプレクサＭの選択を制御する疑似メタステーブル発生状態切り替え指定値保持回路３０１とからなり、簡易な構成で疑似的にメタステーブルの状態を発生させることができる。
【００４３】
加えて、シミュレーション制御部１０１がＨＷエミュレータ部１０６に対して送信するクロック信号ＣＬＫ１、ＣＬＫ２は、クロック信号のエッジとなる時刻をｔｉだけずらされ、ＦＰＧＡに構築された検証対象の非同期回路のセットアップ時間及びホールド時間を満たすようにされる。そのため、検証の対象となるメタステーブル以外の望まないメタステーブルが発生することを防止することができる。
【００４４】
以上、本発明の実施の形態について説明したが、本発明は、上記実施形態に限定されるものではなく種々の変形が可能である。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施形態に係る非同期回路検証装置の構成を示すブロック図である。
【図２】本発明の実施形態に係る非同期回路検証装置の動作を示すフロー図である。
【図３】検証対象ＲＴＬの一例を示す図である。
【図４】検証対象ＲＴＬに擬似メタステーブル発生回路を挿入した状態を示す図である。
【図５】切り替え指定値保持回路のデータ構造を示す図である。
【図６】図４の回路における各部の信号を示す図である。
【符号の説明】
【００４６】
１…非同期回路検証装置、１０１…シミュレーション制御部、１０２…インターフェース部、１０３…疑似メタステーブル発生状態切り替え指定値発生部、１０４…疑似メタステーブル発生状態切り替え指定値格納部、１０５…疑似メタステーブル発生状態切り替え指定値保持回路、１０６…ＨＷエミュレータ部、１１０…検証対象ＲＴＬ格納部、１１１…クロックドメイン跨り解析部、１１２…クロックドメイン跨り信号リスト格納部、１１３…疑似メタステーブル発生回路挿入部、１１４…疑似メタステーブル発生回路挿入済み検証対象ＲＴＬ格納部、１１５…論理合成・配置配線部、１１６…ＨＷエミュレータ用回路情報格納部、１２０…ワークステーション、３００…疑似メタステーブル発生回路、３０１…疑似メタステーブル発生状態切り替え指定値保持回路、ＣＬＫ１，ＣＬＫ２…クロック信号、Ｓｉｇ１，Ｓｉｇ２，Ｓｉｇ３…出力信号、ＦＦ１，ＦＦ２，ＦＦ２’，ＦＦ３…フリップフロップ、Ｍ…マルチプレクサ。
【図１】
2009009318.tif 000003
【図２】
2009009318.tif 000004
【図３】
2009009318.tif 000005
【図４】
2009009318.tif 000006
【図５】
2009009318.tif 000007
【図６】
2009009318.tif 000008