(57)【特許請求の範囲】
【請求項１】
半導体集積回路の回路構成が記述された回路記述データ、前記回路記述データのクロックドメイン及び前記半導体集積回路の通常動作を検証するための第１検証ベクタを入力する入力部と、
前記入力部によって入力された回路記述データ及びクロックドメインに従って前記半導体集積回路内の非同期転送箇所を抽出する非同期転送箇所抽出手段と、
前記入力部によって入力された回路記述データ及び第１検証ベクタに従ってシミュレーションを実行することによって前記半導体集積回路内の各論理回路出力を算出するシミュレーション手段と、
前記シミュレーション手段によって算出された前記半導体集積回路内の各論理回路出力のうち前記非同期転送箇所の信号論理を変更した違反動作検証用の第２検証ベクタを生成する第２検証ベクタ生成手段と、を備えたことを特徴とする半導体集積回路の検証装置。
【請求項２】
前記非同期転送箇所抽出手段は、前記半導体集積回路の半導体素子に前記クロックドメインを付加し、互いに異なるクロックドメインが付加された一対の半導体素子によって形成される素子間接続を非同期転送箇所として抽出する請求項１に記載の半導体集積回路装置。
【請求項３】
前記第２検証ベクタ生成手段は、前記シミュレーション手段によって算出された論理回路出力の前記非同期転送箇所抽出手段によって抽出された非同期転送箇所の信号が変化する変化点の信号を反転することによって前記第２検証ベクタを生成する請求項１又は２に記載の半導体集積回路装置の検証装置。
【請求項４】
前記非同期転送箇所抽出手段は、前記半導体集積回路の非同期転送箇所を複数個抽出し、
前記第２検証ベクタ生成手段は、前記シミュレーション手段によって算出された論理回路出力の前記非同期転送箇所抽出手段によって抽出された複数の非同期転送箇所の信号が変化する変化点の信号を同時に反転することによって前記第２検証ベクタを生成する請求項１又は２に記載の半導体集積回路装置の検証装置。
【請求項５】
前記第２検証ベクタ生成手段は、前記シミュレーション手段によって算出された論理回路出力の前記非同期転送箇所抽出手段によって抽出された非同期転送箇所の信号が一定である場合に、前記論理回路出力の非同期転送箇所の信号を反転することによって前記第２検証ベクタを生成する請求項１又は２に記載の半導体集積回路装置の検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の検証装置に関し、特に、非同期的に動作する半導体素子を含む半導体集積回路の検証装置に関する。
【背景技術】
【０００２】
周波数が異なるクロックで非同期的に動作するレジスタを含み、複数の半導体素子間のデータ転送を伴う半導体集積回路の検証は、設計者によって作成された検証ベクタを用いたシミュレーションによって行われている。
【０００３】
しかし、近年のＳｏＣ設計におけるクロック数の増加及び複雑化によって、非同期転送となる箇所（以下「非同期転送箇所」という）が増加し、対象箇所や検証項目も増えてきている。その結果、設計者には、検証ベクタの作成に多大な作業時間が課せられている。
【０００４】
また、非同期転送のような転送違反が起こる半導体集積回路の検証においては、動作の単純な通常動作以外に、メタスタビリティによる転送違反に対応した違反動作の検証が必要である。
【０００５】
しかし、この違反動作を検証ベクタ上で再現するためには、半導体集積回路の内部のタイミングの正確な把握と、検証ベクタ内に与えられるクロックタイミング及び転送データの多様な組合せを考慮する必要があるので、設計者に課せられる検証ベクタの作成に要する作業時間は増加してきている。
【特許文献１】特開２００５−１８２０９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、非同期転送箇所を含む半導体集積回路の違反動作の検証用の検証ベクタを生成する半導体集積回路の検証装置を提供することである。
【課題を解決するための手段】
【０００７】
本発明の第１態様によれば、
半導体集積回路の回路構成が記述された回路記述データ、前記回路記述データのクロックドメイン及び前記半導体集積回路の通常動作を検証するための第１検証ベクタを入力する入力部と、
前記入力部によって入力された回路記述データ及びクロックドメインに従って前記半導体集積回路内の非同期転送箇所を抽出する非同期転送箇所抽出手段と、
前記入力部によって入力された回路記述データ及び第１検証ベクタに従ってシミュレーションを実行することによって前記半導体集積回路内の各論理回路出力を算出するシミュレーション手段と、
前記シミュレーション手段によって算出された前記半導体集積回路内の各論理回路出力のうち前記非同期転送箇所の信号論理を変更した違反動作検証用の第２検証ベクタを生成する第２検証ベクタ生成手段と、を備えたことを特徴とする半導体集積回路の検証装置
が提供される。
【発明の効果】
【０００８】
本発明によれば、非同期転送箇所を含む半導体集積回路の違反動作の検証用の検証ベクタを作成するために設計者に課せられる作業時間を削減することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施例について図面を参照して説明する。なお、以下の実施例は、本発明の実施の一形態であって、本発明の範囲を限定するものではない。
【実施例１】
【００１０】
はじめに、本発明の実施例１について説明する。
【００１１】
図１は、本発明の実施例１に係る検証装置の構成を示すブロック図である。
【００１２】
本発明の実施例１に係る検証装置は、入力部１１０、シミュレーション部１２０、出力部１３０及び記憶部１４０を備えている。
【００１３】
入力部１１０は、検証対象となる半導体集積回路が記述された回路記述データ（例えば、Ｖｅｒｉｌｏｇ言語のレジスタトランスファーレベルで記述された回路記述データ）１１１、回路記述データ１１１に記述された半導体集積回路を構成するフリップフロップに動作クロックを供給する外部クロック端子の端子名（以下「クロックドメイン」という）が記述されたクロックドメインデータ１１２及び回路記述データ１１１に記述された半導体集積回路のＦＦが同期転送を行う場合の動作（以下「通常動作」という）のシミュレーション（以下「第１シミュレーション」という）に用いられる第１検証ベクタ１１３を入力する。入力部１１０は、例えばキーボード、マウスである。回路記述データ１１１、クロックドメインデータ１１２及び第１検証ベクタ１１３は、入力部１１０を介してユーザによって入力される。
【００１４】
なお、クロックドメインデータ１１２は、複数の外部クロック端子に対して同一のクロックドメインが記述されたものであって良い。
【００１５】
シミュレーション部１２０は、記憶部１４０に記憶された制御プログラム１４１を起動することによって、非同期転送箇所抽出手段１２１、シミュレーション手段１２２及び第２検証ベクタ生成手段１２３を実現する。
【００１６】
非同期転送箇所抽出手段１２１は、回路記述データ１１１及びクロックドメインデータ１１２を参照し、互いに非同期転送を行う半導体集積回路の素子間接続（以下「非同期転送箇所」という）を抽出し、非同期転送箇所データ１４２を生成して記憶部１４０に書き込む非同期転送箇所抽出処理を行う。
【００１７】
シミュレーション手段１２２は、第１検証ベクタ１１３を用いて回路記述データ１１１に記述された半導体集積回路のシミュレーションを実行することによって半導体集積回路の論理回路出力及び第１外部出力を算出し、論理回路出力データ１４３及び第１外部出力データ１４４を生成して記憶部１４０に書き込み、シミュレーション結果を出力部１３０に送信する第１シミュレーションを行う。
【００１８】
また、シミュレーション手段１２２は、第２検証ベクタ１４５を用いて回路記述データ１１１に記述された半導体集積回路のシミュレーションを実行することによって半導体集積回路の第２外部出力を算出するシミュレーションを実行し、シミュレーション結果を出力部１３０に送信する第２シミュレーションを行う。
【００１９】
第２検証ベクタ生成手段１２３は、非同期転送箇所データ１４２及び論理回路出力データ１４３に従って第２検証ベクタ１４５及び変更データ１４６を生成して記憶部１４０に書き込む検証ベクタ生成処理を行う。変更データ１４６は、非同期転送箇所が挿入された信号名、シミュレーション時間及び変更内容を含む。
【００２０】
出力部１３０は、シミュレーション部１２０から送信されたデータを表示するディスプレイである。
【００２１】
記憶部１４０は、制御プログラム１４１、非同期転送箇所データ１４２、論理回路出力データ１４３、第１外部出力データ１４４、第２検証ベクタ１４５及び変更データ１４６を記憶するメモリである。
【００２２】
図２は、本発明の実施例１に係る回路記述データ１１１に記述された半導体集積回路の回路構成の一例を示す回路図である。
【００２３】
本発明の実施例１に係る回路記述データ１１１は、入力端子ＩＮ、出力端子ＯＵＴ、第１外部クロック端子ＣＬＫＴ１、第２外部クロック端子ＣＬＫＴ２及びフリップフロップＦＦＡ〜ＦＦＤから構成される。
【００２４】
フリップフロップＦＦＡのＤ端子は入力端子ＩＮに接続され、Ｑ端子はフリップフロップＦＦＢ，ＦＦＣのＤ端子に接続されている。フリップフロップＦＦＡは、第１外部クロック端子ＣＬＫＴ１から動作クロックとして第１クロックＣＬＫ１が供給された場合に出力信号ｓｉｇ＿Ａを転送する。
【００２５】
フリップフロップＦＦＢのＤ端子はフリップフロップＦＦＡのＱ端子に接続され、Ｑ端子はフリップフロップＦＦＥのＤ端子に接続されている。フリップフロップＦＦＢは、第１外部クロック端子ＣＬＫＴ１から動作クロックとして第１クロックＣＬＫ１が供給された場合に出力信号ｓｉｇ＿Ｂを転送する。
【００２６】
フリップフロップＦＦＣのＤ端子はフリップフロップＦＦＡのＱ端子に接続され、Ｑ端子はフリップフロップＦＦＤのＤ端子に接続されている。フリップフロップＦＦＣは、第２外部クロック端子ＣＬＫＴ２から動作クロックとして第２クロックＣＬＫ２が供給された場合に出力信号ｓｉｇ＿Ｃを転送する。
【００２７】
フリップフロップＦＦＤのＤ端子はフリップフロップＦＦＣのＱ端子に接続され、Ｑ端子は出力端子ＯＵＴに接続されている。フリップフロップＦＦＤは、第２外部クロック端子ＣＬＫＴ２から動作クロックとして第２クロックＣＬＫ２が供給された場合に出力信号ｓｉｇ＿Ｄを転送する。
【００２８】
フリップフロップＦＦＥのＤ端子はフリップフロップＦＦＢのＱ端子に接続され、Ｑ端子は図示されない半導体素子に接続されている。フリップフロップＦＦＥは、第２外部クロック端子ＣＬＫＴ２から動作クロックとして第２クロックＣＬＫ２が供給された場合に出力信号ｓｉｇ＿Ｅを転送する。
【００２９】
図２に示される半導体集積回路では、入力端子ＩＮからフリップフロップＦＦＡのＤ端子に送信される信号が論理回路入力であり、フリップフロップＦＦＤから出力端子ＯＵＴに転送される出力信号ｓｉｇ＿Ｄが論理回路出力である。
【００３０】
図３は、本発明の実施例１に係る検証処理におけるシミュレーション部１２０の処理手順を示すフローチャートである。
【００３１】
本発明の実施例１に係る検証処理は、非同期転送箇所抽出手段１２１による非同期転送箇所抽出処理（Ｓ３０１）、シミュレーション手段１２２による第１シミュレーション（Ｓ３０２）、第２検証ベクタ生成手段１２３による第２検証ベクタ生成処理（Ｓ３０３）、シミュレーション手段１２２による第２シミュレーション（Ｓ３０４）の順に行われる。
【００３２】
図４は、本発明の実施例１に係る非同期転送箇所抽出処理における非同期転送箇所抽出手段１２１の処理手順を示すフローチャートである。
【００３３】
はじめに、非同期転送箇所抽出手段１２１は、入力部１１０から入力された回路記述データ１１１及びクロックドメインデータ１１２を参照する（Ｓ４０１）。
【００３４】
次に、非同期転送箇所抽出手段１２１は、Ｓ４０１において参照された回路記述データ１１１に記述された半導体集積回路の各フリップフロップのクロック端子からバックトレースを行い、終端として辿りついた外部クロック端子にクロックドメインデータ１１２に記述されたクロックドメインを付加する（Ｓ４０２）。図２の例では、フリップフロップＦＦＡ，ＦＦＢの各クロック端子にそれぞれクロックドメインとしてＣＬＫＴ１が付加され、フリップフロップＦＦＣ〜ＦＦＥの各クロック端子にそれぞれクロックドメインとしてＣＬＫＴ２が付加される。その結果、クロックＣＬＫ１がフリップフロップＦＦＡ，ＦＦＢの動作クロックとして特定され、クロックＣＬＫ２がフリップフロップＦＦＣ〜ＦＦＥの動作クロックとして特定される。
【００３５】
次に、非同期転送箇所抽出手段１２１は、Ｓ４０１において参照された回路記述データ１１１に記述された半導体集積回路の素子間接続のうち、Ｓ４０２において異なるクロックドメインが付加された１対のフリップフロップによって形成される素子間接続を非同期転送箇所として特定する（Ｓ４０３）。図２の例では、フリップフロップＦＦＡ，ＦＦＣの対及びフリップフロップＦＦＢ，ＦＦＥによって形成される素子間接続が非同期転送箇所として特定される。
【００３６】
次に、非同期転送箇所抽出手段１２１は、Ｓ４０３において特定された非同期転送箇所の出力信号を特定する（Ｓ４０４）。図２の例では、フリップフロップＦＦＣのＱ端子からフリップフロップＦＦＤのＤ端子に転送される出力信号ｓｉｇ＿Ｃ及びフリップフロップＦＦＥのＱ端子から図示されない半導体素子に転送される出力信号ｓｉｇ＿Ｅがメタスタビリティによる違反動作においてエラーとなる可能性がある出力信号として特定される。
【００３７】
Ｓ４０４は、Ｓ４０３において特定された全ての非同期転送箇所の出力信号が特定されるまで繰り返される（Ｓ４０５−ＮＯ）。
【００３８】
Ｓ４０３において特定された全ての非同期転送箇所の出力信号が特定された場合には（Ｓ４０５−ＹＥＳ）、Ｓ４０３において特定された非同期転送箇所及びＳ４０４において特定された出力信号を非同期転送箇所データ１４２として記憶部１４０に書き込む（Ｓ４０６）。図２の例では、図５に示される非同期転送箇所データ１４２が記憶部１４０に書き込まれる。
【００３９】
Ｓ４０６が行われた後に、本発明の実施例１に係る非同期転送箇所抽出処理が終了する。
【００４０】
図６は、本発明の実施例１に係る第１シミュレーションにおけるシミュレーション手段１２２の処理手順を示すフローチャートである。
【００４１】
はじめに、シミュレーション手段１２２は、入力部１１０から入力された回路記述データ１１１及び第１検証ベクタ１１３を参照する（Ｓ６０１）。
【００４２】
次に、シミュレーション手段１２２は、Ｓ６０１において参照された第１検証ベクタ１１３を用いて回路記述データ１１１に記述された半導体集積回路の通常動作のシミュレーションを行う（Ｓ６０２）。なお、Ｓ６０２では、シミュレーション手段１２２は、Ｖａｌｕｅ  Ｃｈａｎｇｅ  Ｄｕｍｐ機能を用いる。
【００４３】
次に、シミュレーション手段１２２は、Ｓ６０１において参照された回路記述データ１１１に記述された半導体集積回路の通常動作における論理回路出力をフリップフロップ毎に算出する（Ｓ６０３）。図２の例では、フリップフロップＦＦＡ〜ＦＦＥの出力信号ｓｉｇ＿Ａ〜ｓｉｇ＿Ｅの値が論理回路出力として算出される。
【００４４】
次に、シミュレーション手段１２２は、Ｓ６０３において算出された論理回路出力の中から外部出力端子に転送される論理回路出力を第１外部出力として特定する（Ｓ６０４）。図２の例では、フリップフロップＣの出力信号ｓｉｇ＿Ｃの値が第１外部出力として特定される。
【００４５】
次に、Ｓ６０３において特定された論理回路出力を論理回路出力データ１４３として記憶部１４０に書き込み、Ｓ６０４において特定された第１外部出力を第１外部出力データ１４４として記憶部１４０に書き込む（Ｓ６０５）。図２の例では、図７に示される論理回路出力データ１４３及び第１外部出力データ１４４が記憶部１４０に書き込まれる。
【００４６】
Ｓ６０５が行われた後に、本発明の実施例１に係る第１シミュレーションが終了する。
【００４７】
図８は、本発明の実施例１に係る第２検証ベクタ生成処理における第２検証ベクタ生成手段１２３の処理手順を示すフローチャートである。
【００４８】
はじめに、第２検証ベクタ生成手段１２３は、記憶部１４０に記憶された非同期転送箇所データ１４２及び論理回路出力データ１４３を参照する（Ｓ８０１）。
【００４９】
次に、第２検証ベクタ生成手段１２３は、Ｓ８０１において参照された論理回路出力データ１４３の非同期転送箇所の信号の状態をトレースし、信号の変化点を特定し、変化点の信号を反転することによって論理回路出力を変更する（Ｓ８０２）。図７の例では、ｓｉｇ＿Ｃ（ｔ５），ｓｉｇ＿Ｅ（ｔ６）が変化点の信号であり、それぞれの信号を１から０に反転する。その結果、図９に示されるような論理回路出力が生成される。図９の例では、ｓｉｇ＿Ｃ（ｔ５），ｓｉｇ＿Ｅ（ｔ６）が変化しない状態、すなわちｔ５，ｔ６においてデータを正確に転送できない状態となる。
【００５０】
Ｓ８０２は、全ての変化点について行われるまで繰り返される（Ｓ８０３−ＹＥＳ）。全ての変化点についてＳ８０２が行われた場合には（Ｓ８０３−ＮＯ）、Ｓ８０１〜Ｓ８０３が全ての非同期転送箇所について行われるまで繰り返される（Ｓ８０４−ＹＥＳ）。全ての非同期転送箇所についてＳ８０１〜Ｓ８０３が行われた場合には（Ｓ８０４−ＮＯ）、第２検証ベクタ生成手段１２３は、図９に示されるような論理回路出力を第２検証ベクタ１４５として記憶部１４０に書き込む（Ｓ８０５）。
【００５１】
次に、第２検証ベクタ生成手段１２３は、図９に示されるような変更データ１４６を生成して記憶部１４０に書き込む（Ｓ８０６）。
【００５２】
Ｓ８０６が行われた後に、本発明の実施例１に係る第２検証ベクタ生成処理が終了する。
【００５３】
図１０は、本発明の実施例１に係る第２シミュレーションにおけるシミュレーション手段１２２の処理手順を示すフローチャートである。
【００５４】
はじめに、シミュレーション手段１２２は、入力部１１０から入力された回路記述データ１１１並びに記憶部１４０に記憶された第２検証ベクタ１４５及び変更データ１４６を参照する（Ｓ１００１）。
【００５５】
次に、シミュレーション手段１２２は、Ｓ１００１において参照された第２検証ベクタ１４５を用いて、変更データ１４６のシミュレーション時間から回路記述データ１１１に記述された半導体集積回路の違反動作のシミュレーションを行う（Ｓ１００２）。図２の例では、図９に示される変更データ１４６のシミュレーション時間ｔ５からｓｉｇ＿Ｃのシミュレーションが行われ、シミュレーション時間ｔ６からｓｉｇ＿Ｅのシミュレーションが行われる。
【００５６】
次に、シミュレーション手段１２２は、Ｓ１００１において参照された回路記述データ１１１に記述された半導体集積回路の違反動作における外部出力（以下「第２外部出力」という）を算出する（Ｓ１００３）。図２の例では、図９に示される第２検証ベクタ１４５を用いた場合のフリップフロップＦＦＣの出力信号ｓｉｇ＿Ｃの値が第２外部出力として算出される。
【００５７】
次に、シミュレーション手段１２２は、記憶部１４０に記憶された第１外部出力データ１４４を参照し、第１外部出力と第２外部出力を比較する（Ｓ１００４）。
【００５８】
第１外部出力と第２外部出力が等しい場合には（Ｓ１００５−ＹＥＳ）、Ｓ１００１において参照された回路記述データ１１１に記述された半導体集積回路が違反動作においても正常動作すると判定する（Ｓ１００６）。
【００５９】
一方、第１外部出力と第２外部出力が等しくない場合には（Ｓ１００５−ＮＯ）、Ｓ１００１において参照された回路記述データ１１１に記述された半導体集積回路が違反動作においては異常動作すると判定する（Ｓ１００７）。次に、シミュレーション手段１２２は、記憶部１４０に記憶された変更データ１４６を出力部１３０に送信する（Ｓ１００８）。
【００６０】
Ｓ１００６又はＳ１００７，Ｓ１００８が行われた後に、シミュレーション手段１２２は、Ｓ１００６又はＳ１００７の判定結果をシミュレーション結果として出力部１３０に送信する（Ｓ１００９）。
【００６１】
Ｓ１００９が行われた後に、本発明の実施例１に係る第２シミュレーションが終了する。
【００６２】
本発明の実施例１によれば、非同期転送箇所データ１４２を生成し、非同期転送箇所データ１４２に従って違反動作を検証するための第２検証ベクタ１４５を生成するので、非同期転送箇所を含む半導体集積回路の違反動作の検証用の検証ベクタを作成するために設計者に課せられる作業時間を削減することができる。
【００６３】
また、本発明の実施例１によれば、第２シミュレーションが変更データ１４６のシミュレーション時間から行われるので、第２シミュレーションに要する処理時間を短縮することができる。
【００６４】
また、本発明の実施例１によれば、半導体集積回路が違反動作する場合に、第２検証ベクタ１４５とともに生成された変更データ１４６を出力部１３０に出力するので、違反動作に関する詳細な情報を設計者に提供することができる。
【実施例２】
【００６５】
次に、本発明の実施例２について説明する。本発明の実施例１は、１つの非同期転送箇所毎に第２検証ベクタを生成する例であるが、本発明の実施例２は、複数の非同期転送箇所について同時に第２検証ベクタを生成する例である。なお、本発明の実施例１と同様の内容についての説明は省略する。
【００６６】
本発明の実施例２に係る検証装置は、本発明の実施例１と同様の入力部２１０、シミュレーション部２２０、出力部２３０及び記憶部２４０を備えている。
【００６７】
本発明の実施例２では、記憶部２４０に図１１に示されるような論理回路出力データ２４３が記憶されている。
【００６８】
図１２は、本発明の実施例２に係る第２検証ベクタ生成処理における第２検証ベクタ生成手段２２３の処理手順を示すフローチャートである。
【００６９】
はじめに、第２検証ベクタ生成手段２２３は、記憶部２４０に記憶された非同期転送箇所データ２４２及び論理回路出力データ２４３を参照する（Ｓ１２０１）。
【００７０】
次に、Ｓ１２０１において参照された論理回路出力データ２４３の非同期転送箇所の信号の状態をトレースし、信号の変化点を特定し、その信号の変化点と同じシミュレーション時間にその他の非同期転送箇所の信号の変化点が存在する場合には（Ｓ１２０２−ＹＥＳ）、第２検証ベクタ生成手段２２３は、全ての非同期転送箇所の信号の変化点を同時に反転することによって論理回路出力を変更する（Ｓ１２０３）。図１１の例では、ｓｉｇ＿Ｃ（ｔ５），ｓｉｇ＿Ｅ（ｔ５）が変化点の信号であり、それぞれの信号を同時に１から０に反転する。その結果、図１３に示されるような論理回路出力が生成される。図１３の例では、ｓｉｇ＿Ｃ（ｔ５），ｓｉｇ＿Ｅ（ｔ５）が変化しない状態、すなわちｔ５においてデータを正確に転送できない状態となる。
【００７１】
一方、Ｓ１２０１において参照された論理回路出力データ２４３の非同期転送箇所の信号の状態をトレースし、信号の変化点を特定し、その信号の変化点と同じシミュレーション時間にその他の非同期転送箇所の信号の変化点が存在しない場合には（Ｓ１２０２−ＮＯ）、第２検証ベクタ生成手段２２３は、本発明の実施例１と同様に、Ｓ１２０１において参照された論理回路出力データ２４３の非同期箇所の信号の変化点のみを反転することによって論理回路出力を変更する（Ｓ１２０４）。図１１の例では、ｓｉｇ＿Ｃ（ｔ７）が変化点の信号であり、その信号を０から１に反転する。その結果、図１３に示されるような論理回路出力が生成される。図１３の例では、ｓｉｇ＿Ｃ（ｔ７）が変化しない状態、すなわちｔ７においてデータを正確に転送できない状態となる。
【００７２】
Ｓ１２０２〜Ｓ１２０４は、全ての変化点について行われるまで繰り返される（Ｓ１２０５−ＹＥＳ）。全ての変化点についてＳ１２０２〜Ｓ１２０４が行われた場合には（Ｓ１２０５−ＮＯ）、第２検証ベクタ生成手段２２３は、図１３に示されるような論理回路出力を第２検証ベクタ２４５として記憶部２４０に書き込む（Ｓ１２０６）。
【００７３】
次に、第２検証ベクタ生成手段２２３は、図１３に示されるような変更データ２４６を生成して記憶部２４０に書き込む（Ｓ１２０７）。
【００７４】
Ｓ１２０７が行われた後に、本発明の実施例２に係る第２検証ベクタ生成処理が終了する。
【００７５】
本発明の実施例２によれば、同じシミュレーション時間内に複数の非同期転送箇所の信号の変化点が存在する場合に、全ての変化点の信号を同時に反転させるので、本発明の実施例１よりも複雑な動作の検証ベクタを作成する場合であっても、設計者に課せられる作業時間を削減することができる。
【実施例３】
【００７６】
次に、本発明の実施例３について説明する。本発明の実施例１は、所定のシミュレーション時間において非同期転送箇所の信号が変化する変化点が存在する場合に第２検証ベクタを生成する例であるが、本発明の実施例３は、変化点が存在しない場合に第２検証ベクタを生成する例である。なお、本発明の実施例１，２と同様の内容についての説明は省略する。
【００７７】
本発明の実施例３に係る検証装置は、本発明の実施例１と同様の入力部３１０、シミュレーション部３２０、出力部３３０及び記憶部３４０を備えている。
【００７８】
本発明の実施例３では、記憶部３４０に図１４に示されるような論理回路出力データ３４３が記憶されている。
【００７９】
図１５は、本発明の実施例３に係る第２検証ベクタ生成処理における第２検証ベクタ生成手段３２３の処理手順を示すフローチャートである。
【００８０】
はじめに、第２検証ベクタ生成手段３２３は、記憶部３４０に記憶された非同期転送箇所データ３４２及び論理回路出力データ３４３を参照する（Ｓ１５０１）。
【００８１】
次に、Ｓ１５０１において参照された論理回路出力データ３４３の非同期転送箇所の信号の状態をトレースし、信号の変化点を特定できる場合には（Ｓ１５０２−ＹＥＳ）、第２検証ベクタ生成手段３２３は、本発明の実施例１と同様に、Ｓ１５０１において参照された論理回路出力データ３４３の非同期転送箇所の変化点の信号を反転することによって論理回路出力を変更する（Ｓ１５０３）。図１４の例では、ｓｉｇ＿Ｅ（ｔ６）が変化点の信号であり、その信号を１から０に反転する。その結果、図１６に示されるような論理回路出力が生成される。図１６の例では、ｓｉｇ＿Ｅ（ｔ６）が変化しない状態、すなわちｔ６においてデータを正確に転送できない状態となる。
【００８２】
一方、Ｓ１５０１において参照された論理回路出力データ３４３の非同期転送箇所の信号の状態をトレースし、信号の変化点を特定できない場合には（Ｓ１５０２−ＮＯ）、第２検証ベクタ生成手段３２３は、任意のシミュレーション時間をランダムに選択し、選択されたシミュレーション時間における非同期転送箇所の信号を反転することによって論理回路出力を変更する（Ｓ１５０４）。図１４の例では、ｓｉｇ＿Ｃには信号の変化点がないので、ｓｉｇ＿Ｃ（ｔ５〜ｔ６）を１から０に反転する。その結果、図１６に示されるような論理回路出力が生成される。図１６の例では、ｓｉｇ＿Ｃ（ｔ５〜ｔ６）が変化する状態、すなわちｔ５〜ｔ６においてデータを正確に転送できない状態となる。
【００８３】
Ｓ１５０２〜Ｓ１５０４は、全ての変化点について行われるまで繰り返される（Ｓ１５０５−ＹＥＳ）。全ての変化点についてＳ１５０２〜Ｓ１５０４が行われた場合には（Ｓ１５０５−ＮＯ）、Ｓ１５０１〜Ｓ１５０５が全ての非同期転送箇所について行われるまで繰り返される（Ｓ１５０６−ＹＥＳ）。全ての非同期転送箇所についてＳ１５０１〜Ｓ１５０５が行われた場合には（Ｓ１５０６−ＮＯ）、第２検証ベクタ生成手段３２３は、図１６に示されるような論理回路出力を第２検証ベクタ３４５として記憶部３４０に書き込む（Ｓ１５０７）。
【００８４】
次に、第２検証ベクタ生成手段３２３は、図１６に示されるような変更データ３４６を生成して記憶部３４０に書き込む（Ｓ１５０８）。
【００８５】
Ｓ１５０８が行われた後に、本発明の実施例３に係る第２検証ベクタ生成処理が終了する。
【００８６】
本発明の実施例３によれば、信号に変化点のない非同期転送箇所の信号を強制的に変化させるので、第１検証ベクタの品質が低い場合であっても、高品質な第２検証ベクタを生成することができる。
【図面の簡単な説明】
【００８７】
【図１】本発明の実施例１に係る検証装置の構成を示すブロック図である。
【図２】本発明の実施例１に係る回路記述データ１１１に記述された半導体集積回路の回路構成の一例を示す回路図である。
【図３】本発明の実施例１に係る検証処理におけるシミュレーション部１２０の処理手順を示すフローチャートである。
【図４】本発明の実施例１に係る非同期転送箇所抽出処理における非同期転送箇所抽出手段１２１の処理手順を示すフローチャートである。
【図５】非同期転送箇所データ１４２の一例を示す概略図である。
【図６】本発明の実施例１に係る第１シミュレーションにおけるシミュレーション手段１２２の処理手順を示すフローチャートである。
【図７】論理回路出力データ１４３及び第１外部出力データ１４４の一例を示す概略図である。
【図８】本発明の実施例１に係る第２検証ベクタ生成処理における第２検証ベクタ生成手段１２３の処理手順を示すフローチャートである。
【図９】本発明の実施例１に係る第２検証ベクタ生成手段１２３によって生成される論理回路出力及び変更データ１４６の一例を示す概略図である。
【図１０】本発明の実施例１に係る第２シミュレーションにおけるシミュレーション手段１２２の処理手順を示すフローチャートである。
【図１１】本発明の実施例２に係る論理回路出力データ２４３の一例を示す概略図である。
【図１２】本発明の実施例２に係る第２検証ベクタ生成処理における第２検証ベクタ生成手段２２３の処理手順を示すフローチャートである。
【図１３】本発明の実施例２に係る第２検証ベクタ生成手段２２３によって生成される論理回路出力及び変更データ２４６の一例を示す概略図である。
【図１４】本発明の実施例３に係る論理回路出力データ３４３の一例を示す概略図である。
【図１５】本発明の実施例３に係る第２検証ベクタ生成処理における第２検証ベクタ生成手段３２３の処理手順を示すフローチャートである。
【図１６】本発明の実施例３に係る第２検証ベクタ生成手段３２３によって生成される論理回路出力及び変更データ３４６の一例を示す概略図である。
【符号の説明】
【００８８】
１１０，２１０，３１０  入力部
１１１，２１１，３１１  回路記述データ
１１２，２１２，３１２  クロックドメインデータ
１１３，２１３，３１３  第１検証ベクタ
１２０，２２０，３２０  シミュレーション部
１２１，２２１，３２１  非同期転送箇所抽出手段
１２２，２２２，３２２  シミュレーション手段
１２３，２２３，３２３  第２検証ベクタ生成手段
１３０，２３０，３３０  出力部
１４０，２４０，３４０  記憶部
１４１，２４１，３４１  制御プログラム
１４２，２４２，３４２  非同期転送箇所データ
１４３，２４３，３４３  論理回路出力データ
１４４，２４４，３４３  第１外部出力データ
１４５，２４５，３４５  第２検証ベクタ
１４６，２４６，３４６  変更データ
【図１】
0004585559.tif 000002
【図２】
0004585559.tif 000003
【図３】
0004585559.tif 000004
【図４】
0004585559.tif 000005
【図５】
0004585559.tif 000006
【図６】
0004585559.tif 000007
【図７】
0004585559.tif 000008
【図８】
0004585559.tif 000009
【図９】
0004585559.tif 000010
【図１０】
0004585559.tif 000011
【図１１】
0004585559.tif 000012
【図１２】
0004585559.tif 000013
【図１３】
0004585559.tif 000014
【図１４】
0004585559.tif 000015
【図１５】
0004585559.tif 000016
【図１６】
0004585559.tif 000017