(57)【要約】  【課題】  複数のテストパターンをシミュレーションする際に適切にシミュレーションを省略して、機能検証の効率を上げれる論理回路機能検証支援方法及び装置を提供する。  【解決手段】  複数のテストパターン２１を入力として、複数のテストパターン２１についてのシミュレーションの実行順序を決定して、シミュレーション実行順序情報２２を出力する（Ｓ１）。１番目にシミュレーションが実行されるテストパターン２１の論理回路内記憶素子の内容を保存する時間、及び、２番目以降にシミュレーションが実行されるテストパターン２１の論理回路内記憶素子の内容を読み出す時間を決定して、それらの保存／読み出し時間情報２３を出力する（Ｓ２）。複数のテストパターン２１、シミュレーション実行順序情報２２、及び、保存／読み出し時間情報２３に基づいて、シミュレーションを実行する（Ｓ３）。【選択図】      図２
2006155083.tif 000002
【特許請求の範囲】
【請求項１】
複数のテストパターンを用いたシミュレーションにより論理回路の機能検証を行うための論理回路機能検証支援方法において、前記複数のテストパターンのシミュレーション実行順序を決定する第１ステップと、１番目にシミュレーションが実行されるテストパターンにおける論理回路内記憶素子の記憶内容を保存する時間、及び、２番目以降にシミュレーションが実行されるテストパターンにおける論理回路内記憶素子の記憶内容を読み出す時間を決定する第２ステップと、前記複数のテストパターンのシミュレーションにより前記論理回路の機能を検証する第３ステップとを有することを特徴とする論理回路機能検証支援方法。
【請求項２】
前記第１ステップでは、前記複数のテストパターンの中でパターンの開始時点からの共通部分を抽出して、共通部分が多いものから優先的に実行順序を割り付けることを特徴とする請求項１に記載の論理回路機能検証支援方法。
【請求項３】
前記第２ステップでは、前記複数のテストパターンの中でパターンの開始時点からの共通部分を抽出した結果から、１番目にシミュレーションが実行されるテストパターンに対してシミュレーション中に論理回路内記憶素子の記憶内容を保存する時間、及び、２番目以降にシミュレーションが実行されるテストパターンに対して論理回路内記憶素子の記憶内容を読み出してシミュレーションを開始する時間を決定することを特徴とする請求項１または２に記載の論理回路機能検証支援方法。
【請求項４】
前記第３ステップでは、決定された順序で前記複数のテストパターンをシミュレーションし、かつ、決定された時間で論理回路内記憶素子の記憶内容を保存し、または、決定された時間で論理回路内記憶素子の記憶内容を読み出してシミュレーションを開始するように制御することを特徴とする請求項１乃至３のいずれか一つに記載の論理回路機能検証支援方法。
【請求項５】
複数のテストパターンを用いたシミュレーションによる論理回路の機能検証のために用いられる論理回路機能検証支援装置において、前記複数のテストパターンのシミュレーション実行順序を決定する第１決定手段と、１番目にシミュレーションが実行されるテストパターンにおける論理回路内記憶素子の記憶内容を保存する時間、及び、２番目以降にシミュレーションが実行されるテストパターンにおける論理回路内記憶素子の記憶内容を読み出す時間を決定する第２決定手段と、前記複数のテストパターンのシミュレーションにより前記論理回路の機能を検証する検証手段とを備えることを特徴とする論理回路機能検証支援装置。
【請求項６】
前記第１決定手段は、前記複数のテストパターンの中でパターンの開始時点からの共通部分を抽出して、共通部分が多いものから優先的に実行順序を割り付けるように構成してあることを特徴とする請求項５に記載の論理回路機能検証支援装置。
【請求項７】
前記第２決定手段は、前記複数のテストパターンの中でパターンの開始時点からの共通部分を抽出した結果から、１番目にシミュレーションが実行されるテストパターンに対してシミュレーション中に論理回路内記憶素子の記憶内容を保存する時間、及び、２番目以降にシミュレーションが実行されるテストパターンに対して論理回路内記憶素子の記憶内容を読み出してシミュレーションを開始する時間を決定するように構成してあることを特徴とする請求項５または６に記載の論理回路機能検証支援装置。
【請求項８】
前記検証手段は、決定された順序で前記複数のテストパターンをシミュレーションし、かつ、決定された時間で論理回路内記憶素子の記憶内容を保存し、または、決定された時間で論理回路内記憶素子の記憶内容を読み出してシミュレーションを開始すべく制御するように構成してあることを特徴とする請求項５乃至７のいずれか一つに記載の論理回路機能検証支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路の機能検証支援システムに関し、特に複数のテストパターンを用いたシミュレーションにおける機能検証の効率を上げることができる論理回路機能検証支援方法及び論理回路機能検証支援装置に関する。
【背景技術】
【０００２】
通常、ＨＤＬ（Hardware Description Language)等のハードウェア記述言語で設計された論理回路の機能検証はコンピュータ上のシミュレーションにより行われる。論理回路が設計仕様通りに動作しているか否かの機能検証は、論理回路にテストパターンを入力として与えてシミュレーションを実行し、論理回路から得られる出力（実行結果）と、予め用意された論理回路の正しい出力結果である期待値とが一致するか否かを確認することによって行われる。
【０００３】
近年、設計する論理回路の規模が大きくなるに従って検証すべき項目が増加し、その結果テストパターン長及びテストパターン数が増加している。一方、シミュレーションはコンピュータ上で膨大な量の演算によって行われるため、実際に論理回路を動作させるのに比べて非常に時間がかかる特徴がある。つまり、論理回路の大規模化、テストパターン長及びテストパターン数の増加はシミュレーションにかかる時間を大幅に増加させており、機能検証にかかるコストが問題となっている。
【０００４】
このようなシミュレーション時間の増加を解決する従来技術としては、特許文献１に記載されている「システム検証方法及びシステム検証装置」が挙げられる。この方法では、シミュレーション中に適宜論理回路内記憶素子の内容を保存し、必要に応じて保存した論理回路内記憶素子の内容を読み出してシミュレーションを途中から再開することにより、シミュレーションにかかる時間の短縮を図っている。このことを図１３を用いて説明する。
【０００５】
図１３は機能Ａについてテストを行うためのテストパターンＡの内容を図示したものであり、機能Ａのテストが「初期化」→「ＲＯＭ読み出し」→「レジスタ設定」→「機能Ａのテスト」の順に進行していくことを意味する。このような場合、従来技術の方法ではテストパターンＡを初めてシミュレーションする際に時間Ｔ２、Ｔ３、Ｔ４で論理回路内記憶素子の内容を保存しておく。そして、もし「ＲＯＭ読み出し」で問題が生じた場合にはＲＯＭ読み出しのテストパターンを変更し、時間Ｔ２での論理回路内記憶素子の内容を読み出してシミュレーションを途中から再開するため、時間Ｔ１〜Ｔ２のシミュレーションを省略することができる。同様に、もし「機能Ａのテスト」で問題が生じた場合には時間Ｔ４での論理回路内記憶素子の内容を読み出してシミュレーションを途中から再開するため、時間Ｔ１〜Ｔ４のシミュレーションを省略することができる。つまり、２度目以降のシミュレーションではデバッグに不必要な部分のシミュレーションを省略することによって、機能検証の効率を上げることが可能となる。
【特許文献１】特開平１１−２４９９３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では下記のような問題があった。単一のテストパターンを対象に考案された手法であるために、テストパターン長の増加に対しては効果が大きいが、テストパターン数の増加には対応できていない。このことを図１４を用いて説明する。
【０００７】
図１４は機能Ａ、Ｂ及びＣのテストを行うためのテストパターンＡ、Ｂ及びＣの内容を図示したものであり、機能Ａのテストが「初期化」→「ＲＯＭ読み出し」→「レジスタ設定α」→「機能Ａのテスト」、機能Ｂのテストが「初期化」→「ＲＯＭ読み出し」→「レジスタ設定α」→「機能Ｂのテスト」、機能Ｃのテストが「初期化」→「ＲＯＭ読み出し」→「レジスタ設定β」→「機能Ｃのテスト」の順に進行していくことを意味する。このような複数のテストパターンが存在する場合、従来技術の方法ではテストパターンＡ、テストパターンＢ及びテストパターンＣのそれぞれに対して、図１３の場合と同様な処理が繰り返されることになり、それぞれのテストパターンについて必ず１度は最初から最後までシミュレーションが実行されることになる。しかし、実際には時間Ｔ３まではテストパターンＡ、テストパターンＢ及びテストパターンＣは何れもその内容が共通であり、また時間Ｔ４まではテストパターンＡ及びテストパターンＢで内容が共通であるため、テストパターン間の共通部分のシミュレーションが冗長となっている。この問題は検証項目が増加し、それに伴ってテストパターン数が増加するほど顕著に現れるため、機能検証の効率を落としている。
【０００８】
本発明は斯かる事情に鑑みてなされたものであり、複数のテストパターンをシミュレーションする際に適切にシミュレーションを省略することにより、テストパターン長の増加及びテストパターン数の増加の何れにも対応して機能検証の効率を上げることができる論理回路機能検証支援方法及び論理回路機能検証支援装置を提供することを目的とする。
【０００９】
本発明の他の目的は、機能検証の効率を上げるべくシミュレーションを省略しても、各テストパターンに対して正確なシミュレーションを行える論理回路機能検証支援方法及び論理回路機能検証支援装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明に係る論理回路機能検証支援方法は、複数のテストパターンを用いたシミュレーションにより論理回路の機能検証を行うための論理回路機能検証支援方法において、前記複数のテストパターンのシミュレーション実行順序を決定する第１ステップと、１番目にシミュレーションが実行されるテストパターンにおける論理回路内記憶素子の記憶内容を保存する時間、及び、２番目以降にシミュレーションが実行されるテストパターンにおける論理回路内記憶素子の記憶内容を読み出す時間を決定する第２ステップと、前記複数のテストパターンのシミュレーションにより前記論理回路の機能を検証する第３ステップとを有することを特徴とする。
【００１１】
本発明に係る論理回路機能検証支援装置は、複数のテストパターンを用いたシミュレーションによる論理回路の機能検証のために用いられる論理回路機能検証支援装置において、前記複数のテストパターンのシミュレーション実行順序を決定する第１決定手段と、１番目にシミュレーションが実行されるテストパターンにおける論理回路内記憶素子の記憶内容を保存する時間、及び、２番目以降にシミュレーションが実行されるテストパターンにおける論理回路内記憶素子の記憶内容を読み出す時間を決定する第２決定手段と、前記複数のテストパターンのシミュレーションにより前記論理回路の機能を検証する検証手段とを備えることを特徴とする。
【００１２】
本発明にあっては、まず、複数のテストパターンのシミュレーション実行順序を決定する。続いて、１番目にシミュレーションが実行されるテストパターンにおける論理回路内記憶素子の記憶内容を保存する時間、及び、２番目以降にシミュレーションが実行されるテストパターンにおける論理回路内記憶素子の記憶内容を読み出す時間を決定する。そして、これらの決定した実行順序、記憶内容を保存する／読み出す時間情報に基づいて、シミュレーションを実行して論理回路の機能を検証する。よって、複数のテストパターンを用いるシミュレーションを適切に省略できるため、機能検証の効率は向上する。
【００１３】
本発明に係る論理回路機能検証支援方法は、前記第１ステップでは、前記複数のテストパターンの中でパターンの開始時点からの共通部分を抽出して、共通部分が多いものから優先的に実行順序を割り付けることを特徴とする。
【００１４】
本発明に係る論理回路機能検証支援装置は、前記第１決定手段は、前記複数のテストパターンの中でパターンの開始時点からの共通部分を抽出して、共通部分が多いものから優先的に実行順序を割り付けるように構成してあることを特徴とする。
【００１５】
本発明にあっては、複数のテストパターンのシミュレーション実行順序を決定する際に、複数のテストパターンの中でパターンの開始時点からの共通部分を抽出して、共通部分が多いものから優先的に実行順序を割り付ける。よって、無駄がない順序で複数のテストパターンのシミュレーションを実行できるため、機能検証の効率は更に向上する。
【００１６】
本発明に係る論理回路機能検証支援方法は、前記第２ステップでは、前記複数のテストパターンの中でパターンの開始時点からの共通部分を抽出した結果から、１番目にシミュレーションが実行されるテストパターンに対してシミュレーション中に論理回路内記憶素子の記憶内容を保存する時間、及び、２番目以降にシミュレーションが実行されるテストパターンに対して論理回路内記憶素子の記憶内容を読み出してシミュレーションを開始する時間を決定することを特徴とする。
【００１７】
本発明に係る論理回路機能検証支援装置は、前記第２決定手段は、前記複数のテストパターンの中でパターンの開始時点からの共通部分を抽出した結果から、１番目にシミュレーションが実行されるテストパターンに対してシミュレーション中に論理回路内記憶素子の記憶内容を保存する時間、及び、２番目以降にシミュレーションが実行されるテストパターンに対して論理回路内記憶素子の記憶内容を読み出してシミュレーションを開始する時間を決定するように構成してあることを特徴とする。
【００１８】
本発明にあっては、１番目にシミュレーションが実行されるテストパターンにおける論理回路内記憶素子の記憶内容を保存する時間、及び、２番目以降にシミュレーションが実行されるテストパターンにおける論理回路内記憶素子の記憶内容を読み出す時間を決定する際に、複数のテストパターンの中でパターンの開始時点からの共通部分を抽出した結果から、１番目にシミュレーションが実行されるテストパターンに対してシミュレーション中に論理回路内記憶素子の記憶内容を保存する時間、及び、２番目以降にシミュレーションが実行されるテストパターンに対して論理回路内記憶素子の記憶内容を読み出してシミュレーションを開始する時間を決定する。よって、各テストパターンについて、無駄な時間をかけることなく、正確なシミュレーションを実行できるため、機能検証の効率は更に向上する。
【００１９】
本発明に係る論理回路機能検証支援方法は、前記第３ステップでは、決定された順序で前記複数のテストパターンをシミュレーションし、かつ、決定された時間で論理回路内記憶素子の記憶内容を保存し、または、決定された時間で論理回路内記憶素子の記憶内容を読み出してシミュレーションを開始するように制御することを特徴とする。
【００２０】
本発明に係る論理回路機能検証支援装置は、前記検証手段は、決定された順序で前記複数のテストパターンをシミュレーションし、かつ、決定された時間で論理回路内記憶素子の記憶内容を保存し、または、決定された時間で論理回路内記憶素子の記憶内容を読み出してシミュレーションを開始すべく制御するように構成してあることを特徴とする。
【００２１】
本発明にあっては、シミュレーションにより論理回路を検証する際に、決定された順序で複数のテストパターンをシミュレーションし、かつ、決定された時間で論理回路内記憶素子の記憶内容を保存し、または、決定された時間で論理回路内記憶素子の記憶内容を読み出してシミュレーションを開始するように制御する。よって、シミュレーションを省略しても正しいシミュレーションを実行できる。
【発明の効果】
【００２２】
本発明では、複数のテストパターンをシミュレーションする際にシミュレーションを省略するようにしたので、機能検証の効率を上げることができ、機能検証に要する時間及びコストを大幅に削減することができる。
【００２３】
本発明では、適切にシミュレーションを省略するようにしたので、各テストパターンに対して正確なシミュレーションを行うことができ、機能検証の高効率化と正確な検証結果の取得との両立が可能となる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明をその実施の形態を示す図面を参照して具体的に説明する。図１は、本発明の論理回路機能検証支援装置の一例の構成を示すブロック図である。この論理回路機能検証支援装置１０は、ＣＰＵ（Central Processing Unit)１と、ＲＯＭ（Read Only Memory）２と、ＲＡＭ（Random Access Memory）３と、外部記憶装置４と、入力装置５と、表示装置６とを備えている。そして、ＣＰＵ１、ＲＯＭ２、ＲＡＭ３、外部記憶装置４、入力装置５及び表示装置６は、バスライン７を介して相互に接続されている。
【００２５】
ＣＰＵ１は、バスライン７を介して論理回路機能検証支援装置１０の上述したようなハードウェア各部と接続されていて、それらを制御すると共に、ＲＯＭ２に格納された制御プログラムに従って、種々のソフトウェア的機能（シミュレーションの実行順序決定など）を実行する。ＲＯＭ２は、論理回路機能検証支援装置１０の動作に必要な種々のソフトウェアの制御プログラム（論理回路内記憶素子の内容を保存する時間、及び、論理回路内記憶素子の内容を読み出す時間を決定するためのプログラムなど）を格納している。ＲＡＭ３は、ソフトウェアの実行時に発生する一時的なデータを記憶するとともに、ＣＰＵ１が演算時に使用する作業記憶領域として用いられる。外部記憶装置４は、論理回路内記憶素子の内容等の必要な情報を蓄える。入力装置５は、キーボード、マウス等から構成され、テストパターン等の必要な情報を入力するために使用される。表示装置６は、例えば液晶表示装置から構成され、シミュレーション結果等を表示する。
【００２６】
次に、本発明の論理回路機能検証支援方法の動作について説明する。図２は、この動作の概略を示す図である。
【００２７】
まず複数のテストパターン２１を入力として、複数のテストパターン２１についてのシミュレーションの実行順序を決定して、シミュレーション実行順序情報２２を出力する（ステップＳ１）。図３は、このシミュレーション実行順序の決定動作、つまりステップＳ１のサブルーチンを示すフローチャートである。
【００２８】
まず、複数のテストパターン２１に関して、最初のサイクル（Ｔ１サイクル）での入力パターンに応じてグループ分けする（ステップＳ１１）。次に、各グループ毎で、Ｔ１サイクルから等価な入力パターンが何サイクルまで続くかを各テストパターン２１毎に計算し、その計算値から各テストパターン２１毎に優先度を算出する（ステップＳ１２）。全てのグループについて優先度の算出を終了したか否かを判断し（ステップＳ１３）、終了していない場合には（Ｓ１３：ＮＯ）、Ｓ１２に動作が戻って、次のグループ内での処理を行う。全てのグループについて優先度の算出を終了した場合（Ｓ１３：ＹＥＳ）、各グループ毎で、算出した優先度に従ってシミュレーションの実行順序を決定して、シミュレーション実行順序情報２２を出力する（ステップＳ１４）。
【００２９】
続いて、１番目にシミュレーションが実行されるテストパターン２１の論理回路内記憶素子の内容を保存する時間、及び、２番目以降にシミュレーションが実行されるテストパターン２１の論理回路内記憶素子の内容を読み出す時間を決定して、それらの保存／読み出し時間情報２３を出力する（ステップＳ２）。図４は、この保存時間／読み出し時間の決定動作、つまりステップＳ２のサブルーチンを示すフローチャートである。
【００３０】
各グループで優先度が最も高いテストパターン２１（即ち、１番目にシミュレーションが実行されるテストパターン２１）に対して、論理回路内記憶素子の内容を保存する時間を決定する（ステップＳ２１）。次に、各グループ内で優先度が２番目以降のテストパターン２１（即ち、２番目以降にシミュレーションが実行されるテストパターン２１）に対して、論理回路内記憶素子の内容を読み出す時間を決定する（ステップＳ２２）。全てのグループについてこれらの時間の決定を終了したか否かを判断し（ステップＳ２３）、終了していない場合には（Ｓ２３：ＮＯ）、Ｓ２１に動作が戻って、次のグループ内での処理を行う。全てのグループについて保存時間／読み出し時間の決定を終了した場合（Ｓ２３：ＹＥＳ）、テストパターン毎に決定した保存／読み出し時間情報２３を出力する（ステップＳ２４）。
【００３１】
続いて、複数のテストパターン２１、シミュレーション実行順序情報２２、及び、テストパターン毎の保存／読み出し時間情報２３に基づいて、シミュレーションを実行する（ステップＳ３）。この際のシミュレーションでは、１番目に実行されるテストパターン２１の論理回路内記憶素子の内容２４が入力データまたは出力データとして使用される。
【００３２】
以下、本発明の具体的な適用例を挙げて、更に詳細に本発明を説明する。
（第１の実施例）
この第１の実施例は、図５に示すような波形で表される５本のテストパターンに対する適用例である。
【００３３】
まず、シミュレーションの実行順序を決定する（図２のＳ１）。図６は、この実行順序決定の内容を示す図である。最初にＴ１サイクルでの入力パターンのグループ分けを行って（図３のＳ１１）、Ｔ１サイクルで入力が等価なテストパターンを同じグループとする。つまり、Ｔ１サイクルで入力が" １" であるテストパターンＡ，Ｃ，Ｅのグループと、入力が" ０" であるテストパターンＢ，Ｄのグループとの２つに分ける。
【００３４】
続いて、それぞれのグループ内でテストパターンが他のテストパターンに対して何サイクルまで入力が等価かを計算し、その計算値から各テストパターン毎に優先度を算出することを全てのグループに対して実行する（図３のＳ１２，Ｓ１３）。優先度は各パターンの等価であるサイクル数を加算することで得られる。例えばテストパターンＡについては３＋３＝６、テストパターンＣについては３＋５＝８と優先度を算出する。このようにして得られた算出結果が図６（ａ）（グループ１）及び（ｂ）（グループ２）となる。そして、これらの優先度に従ってそれが高い順にシミュレーションの実行順序を決定する（図３のＳ１４）。得られるシミュレーション実行順序情報２２が図６（ｃ）となる。なお、グループ間の実行順に制約はないため、図６（ｃ）の代わりに図６（ｄ）としても良い。      
【００３５】
次に、全テストパターンの中でパターンの開始時点からの共通部分を抽出した結果に基づいて、１番目に実行されるテストパターンに対して、シミュレーション中に論理回路内記憶素子の内容を保存する時間、及び、２番目以降に実行されるテストパターンに対して、論理回路内記憶素子の内容を読み出してシミュレーションを開始する時間を決定する（図２のＳ２）。
【００３６】
各グループで優先度が一番高いテストパターンに対して論理回路内記憶素子の内容を保存する時間を決定する（図４のＳ２１）。図６（ａ）ではテストパターンＣが一番優先度が高いため、このパターンに対して他のパターンと共通にシミュレーションが可能な時間、つまりＴ３、Ｔ５サイクルで保存すると決定する。続いて、各グループで優先度が２番目以降のテストパターンに対して論理回路内記憶素子の内容を読み出す時間を決定する（図４のＳ２２）。図６（ａ）ではテストパターンＥ，テストパターンＡがこれに該当し、優先度が一番高いテストパターンと共通にシミュレーションが可能な時間を読み出し時間として決定する。つまり、テストパターンＥに対してはＴ５、テストパターンＡに対してはＴ３で読み出すと決定する。以上の処理を全てのグループに対し実行する（図４のＳ２１〜Ｓ２３）。得られる各テストパターン毎の保存／読み出し時間情報２３は、図７のようになる。
【００３７】
最後に、シミュレーション実行順序情報２２（テストパターンのシミュレーション実行順序）、並びに、保存／読み出し時間情報２３（１番目に実行されるテストパターンの論理回路内記憶素子の内容を保存する時間、及び、２番目以降に実行されるテストパターンの論理回路内記憶素子の内容を読み出す時間）に基づいて、シミュレーションを実行する（図２のＳ３）。
【００３８】
シミュレーションはシミュレーション実行順序情報２２（図６（ｃ））の順番に実行され、１番目に実行されるテストパターンの論理回路内記憶素子の内容を保存する時間、及び２番目以降に実行されるテストパターンの論理回路内記憶素子の内容を読み出す時間を示す保存／読み出し時間情報２３（図７）に従って論理回路内記憶素子内容の保存、読み出しが行われる。
【００３９】
具体的には、まず、テストパターンＣのシミュレーションが実行され、実行中にはＴ３、Ｔ５サイクルで論理回路内記憶素子内容の保存が行われる。続いて、テストパターンＣのＴ５サイクルでの論理回路内記憶素子内容の読み出しが行われ、Ｔ６サイクルからテストパターンＥのシミュレーションが行われる。続いて、テストパターンＣのＴ３サイクルでの論理回路内記憶素子内容の読み出しが行われ、Ｔ４サイクルからテストパターンＡのシミュレーションが行われる。続いて、テストパターンＢのシミュレーションが実行され、実行中にはＴ１サイクルで論理回路内記憶素子内容の保存が行われる。最後に、テストパターンＢのＴ１サイクルでの論理回路内記憶素子内容の読み出しが行われ、Ｔ２サイクルからテストパターンＤのシミュレーションが行われる。
【００４０】
以上の手順を踏むことによって、テストパターンＡのＴ１〜Ｔ３サイクル、テストパターンＤのＴ１サイクル、テストパターンＥのＴ１〜Ｔ５サイクルの各シミュレーションを省略することができ、機能検証の効率を上げることができる。
【００４１】
（第２の実施例）
この第２の実施例は、図８に示す論理回路（ｎ個の入力端子３１，出力端子３２間に２種類の組み合わせ回路３３，３４とフリップフロップ３５とを交互に設けた構成）の機能検証に用いる図９で表されるような波形の組み合わせを有する１０本の機能検証パターンに対する適用例である。図９のアルファベットは図８の入力端子３１へ印加されるdata＿in＿１〜data＿in＿ｎ波形の組み合わせを意味し、例えばテストパターンＡを波形表示すると図１０のようになる。つまり、テストパターンＡのＴ１サイクルでの" ａ" はdata＿in＿１＝’１’，data＿in＿２＝’０’，・・・，data＿in＿ｎ＝’１’の組み合わせ、Ｔ２サイクルでの" ｃ" はdata＿in＿１＝’０’，data＿in＿２＝’０’，・・・，data＿in＿ｎ＝’０’の組み合わせを表現している。
【００４２】
まず、第１の実施例と同様に、シミュレーションの実行順序を決定する（図２のＳ１）。図１１は、この実行順序決定の内容を示す図である。最初にＴ１サイクルでの入力パターンのグループ分けを行って（図３のＳ１１）、Ｔ１サイクルで入力が等価なテストパターンを同じグループとする。つまり、Ｔ１サイクルで入力の組み合わせが" ａ" であるテストパターンＡ，Ｂ，Ｃ，Ｄ，Ｆ，Ｇのグループと、入力の組み合わせが" ｘ" であるテストパターンＥ，Ｈ，Ｊのグループと、入力の組み合わせが" ｙ" であるテストパターンＩのグループとの３つに分ける。
【００４３】
続いて、それぞれのグループ内でテストパターンが他のテストパターンに対して何サイクルまで入力が等価かを計算し、その計算値から各テストパターン毎に優先度を算出することを全てのグループに対して実行する（図３のＳ１２，Ｓ１３）。優先度は各パターンの等価であるサイクル数の加算により、例えばテストパターンＡについては１＋１＋１＋１＋１＝５、テストパターンＢについては１＋３＋３＋２＋３＝１２と算出される。このようにして得られた算出結果が図１１（ａ）（グループ１），（ｂ）（グループ２）及び（ｃ）（グループ３）となる。そして、これらの優先度に従ってそれが高い順にシミュレーションの実行順序を決定する（図３のＳ１４）。得られるシミュレーション実行順序情報２２が図１１（ｄ）となる。
【００４４】
次に、第１の実施例と同様に、全テストパターンの中でパターンの開始時点からの共通部分を抽出した結果に基づいて、１番目に実行されるテストパターンに対して、シミュレーション中に論理回路内記憶素子の内容を保存する時間、及び、２番目以降に実行されるテストパターンに対して、論理回路内記憶素子の内容を読み出してシミュレーションを開始する時間を決定する（図２のＳ２）。
【００４５】
各グループで優先度が一番高いテストパターンに対して論理回路内記憶素子の内容を保存する時間を決定する（図４のＳ２１）。図１１（ａ）ではテストパターンＣが一番優先度が高いため、このパターンに対して他のパターンと共通にシミュレーションが可能な時間、つまりＴ１，Ｔ２，Ｔ３，Ｔ５サイクルで保存すると決定する。続いて、各グループで優先度が２番目以降のテストパターンに対して論理回路内記憶素子の内容を読み出す時間を決定する（図４のＳ２２）。図１１（ａ）ではテストパターンＡ，テストパターンＢ，テストパターンＤ，テストパターンＦ，テストパターンＧがこれに該当し、優先度が一番高いテストパターンと共通にシミュレーションが可能な時間を読み出し時間として決定する。つまり、テストパターンＡに対してはＴ１、テストパターンＢに対してはＴ３、テストパターンＤに対してはＴ５、テストパターンＦに対してはＴ２、テストパターンＧに対してはＴ３で読み出すと決定する。以上の処理を全てのグループに対し実行する（図４のＳ２１〜Ｓ２３）。得られる各テストパターン毎の保存／読み出し時間情報２３は、図１２のようになる。
【００４６】
最後に、第１の実施例と同様に、シミュレーション実行順序情報２２（テストパターンのシミュレーション実行順序）、並びに、保存／読み出し時間情報２３（１番目に実行されるテストパターンの論理回路内記憶素子の内容を保存する時間、及び、２番目以降に実行されるテストパターンの論理回路内記憶素子の内容を読み出す時間）に基づいて、シミュレーションを実行する（図２のＳ３）。
【００４７】
シミュレーションはシミュレーション実行順序情報２２（図１１（ｄ））の順番に実行され、１番目に実行されるテストパターンの論理回路内記憶素子の内容を保存する時間、及び２番目以降に実行されるテストパターンの論理回路内記憶素子の内容を読み出す時間を示す保存／読み出し時間情報２３（図１２）に従って論理回路内記憶素子内容の保存、読み出しが行われる。
【００４８】
具体的には、まず、テストパターンＣのシミュレーションが実行され、実行中にはＴ１，Ｔ２，Ｔ３，Ｔ５サイクルで論理回路内記憶素子内容の保存が行われる。続いて、テストパターンＣのＴ５サイクルでの論理回路内記憶素子内容の読み出しが行われ、Ｔ６サイクルからテストパターンＤのシミュレーションが行われる。続いて、テストパターンＣのＴ３サイクルでの論理回路内記憶素子内容の読み出しが行われ、Ｔ４サイクルからテストパターンＢのシミュレーションが行われる。続いて、テストパターンＣのＴ３サイクルでの論理回路内記憶素子内容の読み出しが行われ、Ｔ４サイクルからテストパターンＧのシミュレーションが行われる。続いて、テストパターンＣのＴ２サイクルでの論理回路内記憶素子内容の読み出しが行われ、Ｔ３サイクルからテストパターンＦのシミュレーションが行われる。続いて、テストパターンＣのＴ１サイクルでの論理回路内記憶素子内容の読み出しが行われ、Ｔ２サイクルからテストパターンＡのシミュレーションが行われる。
【００４９】
続いて、テストパターンＨのシミュレーションが実行され、実行中にはＴ２，Ｔ６サイクルで論理回路内記憶素子内容の保存が行われる。続いて、テストパターンＨのＴ６サイクルでの論理回路内記憶素子内容の読み出しが行われ、Ｔ７サイクルからテストパターンＪのシミュレーションが行われる。続いて、テストパターンＨのＴ２サイクルでの論理回路内記憶素子内容の読み出しが行われ、Ｔ３サイクルからテストパターンＥのシミュレーションが行われる。最後に、テストパターンＩのシミュレーションが行われる。
【００５０】
以上の手順を踏むことによって、テストパターンＡのＴ１サイクル、テストパターンＢのＴ１〜Ｔ３サイクル、テストパターンＤのＴ１〜Ｔ５サイクル、テストパターンＥのＴ１〜Ｔ２、テストパターンＦのＴ１〜Ｔ２サイクル、テストパターンＧのＴ１〜Ｔ３サイクル、テストパターンＪのＴ１〜Ｔ６サイクルの各シミュレーションを省略することができ、機能検証の効率を上げることができる。
【図面の簡単な説明】
【００５１】
【図１】本発明の論理回路機能検証支援装置の一例の構成を示すブロック図である。
【図２】本発明の論理回路機能検証支援方法の動作の概略を示す図である。
【図３】シミュレーション実行順序の決定動作（ステップＳ１のサブルーチン）を示すフローチャートである。
【図４】保存時間／読み出し時間の決定動作（ステップＳ２のサブルーチン）を示すフローチャートである。
【図５】第１の実施例で適用されるテストパターンの波形を示す図である。
【図６】第１の実施例におけるシミュレーション実行順序決定の内容を示す図である。
【図７】第１の実施例におけるテストパターン毎の保存時間／読み出し時間決定の内容を示す図である。
【図８】第２の実施例で適用される論理回路の構成図である。
【図９】第２の実施例で適用されるテストパターンの波形の組み合わせを示す図である。
【図１０】図９を説明するための波形図である。
【図１１】第２の実施例におけるシミュレーション実行順序決定の内容を示す図である。
【図１２】第２の実施例におけるテストパターン毎の保存時間／読み出し時間決定の内容を示す図である。
【図１３】従来技術を説明するためのテストパターンの模式図である。
【図１４】従来技術の問題を説明するためのテストパターンの模式図である。
【符号の説明】
【００５２】
１  ＣＰＵ
２  ＲＯＭ
３  ＲＡＭ
４  外部記憶装置
５  入力装置
６  表示装置
７  バスライン
１０  論理回路機能検証支援装置
２１  複数のテストパターン
２２  シミュレーション実行順序情報
２３  保存／読み出し時間情報
２４  論理回路内記憶素子の内容
【図１】
2006155083.tif 000003
【図２】
2006155083.tif 000004
【図３】
2006155083.tif 000005
【図４】
2006155083.tif 000006
【図５】
2006155083.tif 000007
【図６】
2006155083.tif 000008
【図７】
2006155083.tif 000009
【図８】
2006155083.tif 000010
【図９】
2006155083.tif 000011
【図１０】
2006155083.tif 000012
【図１１】
2006155083.tif 000013
【図１２】
2006155083.tif 000014
【図１３】
2006155083.tif 000015
【図１４】
2006155083.tif 000016