(57)【要約】【課題】  検証対象回路の期待値を生成するときの処理量を必要最小限とする。【解決手段】  手段１はテストパタンから所定数のパラメタの組を抽出する。手段２はパラメタを組毎に解析して選択された機能を抽出し、論理動作順序を動作順序リスト５として全てのパラメタの組について抽出し記憶する。手段３はパラメタのみを組単位で入力し、手段４はこのパラメタの組に対応する動作順序リストをリスト５から検証モデルとして選択する。手段６はデータのみを入力し、手段７は入力したデータに対して選択した検証モデルを動作させる。手段８は検証対象回路に入力テストパタンを入力する。手段９は検証対象回路のテストパタンに対する出力値と検証モデルにより生成された期待値を比較する。【選択図】        図１
2007052585.tif 000002
【特許請求の範囲】
【請求項１】
パラメタの設定により機能が選択される半導体集積回路に対する回路検証装置において、
入力されるテストパタンのパラメタを解析することによりテストに必要な機能を抽出する手段と、
前記抽出した機能から検証対象回路の前記テストパタンに対する期待値を生成するための論理動作順序を抽出することにより検証モデルを選択する手段と、
前記抽出した論理動作順序どおりに前記検証モデルを動作させることにより前記期待値を生成する手段と、
検証対象回路の前記テストパタンに対する出力値と前記検証モデルによる期待値を比較する手段を有することを特徴とする回路検証装置。
【請求項２】
パラメタの設定により機能が選択される半導体集積回路に対する回路検証装置において、
入力するテストパタンを解析して所定数のパラメタの組を抽出する入力テストパタン解析部と、
前記入力テストパタンから抽出したパラメタを組毎に解析することにより選択された機能を抽出し、その抽出した機能から回路の期待値を生成するための論理動作順序を動作順序リストとして全てのパラメタの組について抽出し記憶する論理動作抽出部と、
前記入力テストパタンのうちパラメタのみを組単位で入力するパラメタ入力部と、
前記入力されたパラメタの組に対応する動作順序リストを前記記憶されている動作順序リストから検証モデルとして選択する検証モデル選択部と、
前記入力テストパタンのうち前記入力されたパラメタの組対応のデータのみを入力するデータ入力部と、
前記入力したデータに対して前記選択した検証モデルを動作させる検証モデル動作部と、
検証対象回路に前記入力テストパタンを入力する検証対象回路パタン入力部と、
前記検証対象回路の前記テストパタンに対する出力値と前記検証モデルにより生成された期待値を比較する結果比較部と、
全てのテストパタンについて上記の処理が終了したかどうかを判定するテストパタン終了判定部を有することを特徴とする回路検証装置。
【請求項３】
パラメタの設定により機能が選択される半導体集積回路に対する回路検証装置において、
入力するテストパタンのうちパラメタのみを組単位で入力するパラメタ入力部と、
前記入力したパラメタの値が既入力のパラメタの値と異なっているか判定するパラメタ変化判定部と、
前記パラメタの値が異なっている場合のみ前記入力テストパタンから抽出したパラメタを解析することにより選択された機能を抽出し、その抽出した機能から回路の期待値を生成するための論理動作順序を動作順序リストとして抽出する論理動作抽出部と、
前記入力テストパタンのうち前記入力されたパラメタの組対応のデータのみを入力するデータ入力部と、
前記入力したデータに対して前記抽出された動作順序リストの検証モデルを動作させる検証モデル動作部と、
検証対象回路に前記入力テストパタンを入力する検証対象回路パタン入力部と、
前記検証対象回路の前記テストパタンに対する出力値と前記検証モデルにより生成された期待値を比較する結果比較部と、
全てのテストパタンについて上記の処理が終了したかどうかを判定するテストパタン終了判定部を有することを特徴とする回路検証装置。
【請求項４】
パラメタの設定により選択される機能は前記検証対象回路全体としての機能であることを特徴とする請求項１ないし請求項３のいずれかに記載の回路検証装置。
【請求項５】
パラメタの設定により選択される機能は前記検証対象回路を構成する機能モジュール内部の機能であることを特徴とする請求項１ないし請求項４のいずれかに記載の回路検証装置。
【請求項６】
前記論理動作抽出部には、前記検証対象回路における機能選択の論理動作、及び検証対象回路における機能モジュール間の接続構造の情報が予め設定されていることを特徴とする請求項１ないし請求項４のいずれかに記載の回路検証装置。
【請求項７】
パラメタの設定により機能が選択される半導体集積回路に対する回路検証方法であって、
入力するテストパタンを解析して所定数のパラメタの組を抽出する第１段階と、
前記入力テストパタンから抽出したパラメタを組毎に解析することにより選択された機能を抽出し、その抽出した機能から回路の期待値を生成するための論理動作順序を動作順序リストとして全てのパラメタの組について抽出し記憶する第２段階と、
前記入力テストパタンのうちパラメタのみを組単位で入力する第３段階と、
前記入力されたパラメタの組に対応する動作順序リストを前記記憶されている動作順序リストから検証モデルとして選択する第４段階と、
前記入力テストパタンのうち前記入力されたパラメタの組対応のデータのみを入力する第５段階と、
前記入力したデータに対して前記選択した検証モデルを動作させる第６段階と、
検証対象回路に前記入力テストパタンを入力する第７段階と、
前記検証対象回路の前記テストパタンに対する出力値と前記検証モデルにより生成された期待値を比較する第８段階と、
全てのテストパタンについて上記の処理が終了したかどうかを判定する第９段階を有し、処理が終了していなければ第３段階以下を繰り返すことを特徴とする回路検証方法。
【請求項８】
パラメタの設定により機能が選択される半導体集積回路に対する回路検証方法であって、
入力するテストパタンのうちパラメタのみを組単位で入力する第１段階と、
前記入力したパラメタの値が既入力のパラメタの値と異なっているか判定する第２段階と、
前記パラメタの値が異なっている場合のみ前記入力テストパタンから抽出したパラメタを解析することにより選択された機能を抽出し、その抽出した機能から回路の期待値を生成するための論理動作順序を動作順序リストとして抽出する第３段階と、
前記入力テストパタンのうち前記入力されたパラメタの組対応のデータのみを入力する第４段階と、
前記入力したデータに対して前記抽出された動作順序リストの検証モデルを動作させる第５段階と、
検証対象回路に前記入力テストパタンを入力する第６段階と、
前記検証対象回路の前記テストパタンに対する出力値と前記検証モデルにより生成された期待値を比較する第７段階と、
全てのテストパタンについて上記の処理が終了したかどうかを判定する第８段階を有し、処理が終了していなければ第１段階以下を繰り返すことを特徴とする回路検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路検証装置及び回路検証方法、特に、ＣＡＤにおいて、パラメタの設定により機能が選択される半導体集積回路の論理検証を行う回路検証装置及び回路検証方法に関する。
【背景技術】
【０００２】
近年の半導体集積回路の回路規模の増大に伴い、回路の論理検証に要する時間も増加する傾向にある。その対策として、従来の論理回路検証方法では、HDLやゲートレベルで作成された論理回路全体から検証に必要なブロックの回路のみを指定し、検証に必要ではない階層を論理シミュレータに読み込まないようにすることで、論理シミュレータの処理量を軽減している（例えば、特許文献１参照）。このとき、データ入力部からは、テストパタンと共に、入力するテストパタンに対応する検証対象モデルの情報を供給し、回路記述選択部において、回路記述記憶部から必要なブロックの回路記述のみを選択し、これを用いて検証用回路を構成するようにしている。
【０００３】
ここで、パラメタにより機能を選択できるモジュールが複数存在する一般的な検証対象回路の例を図３及び図４に図示して説明する。
【０００４】
図３に示した回路は、例えば省面積化のため回路規模の大きなモジュールの演算器共有を行って、パラメタにより信号伝播のパスが切り替わるようにした回路である。この回路はセレクタ１７とモジュール１８とを有する。セレクタ１７は、データ入力信号１４としてDin1、データ入力信号１５としてDin2、パラメタ入力信号１６としてSelを定義した場合、Selの値によりDin1かDin2を選択する。モジュール１８は、セレクタ１７で選択された信号を入力として動作し、その結果をデータ出力信号１９としてのDoutを出力する。
【０００５】
図４に示した回路は、図３に示した回路を３つ組み合わせることにより、パラメタにより回路全体としての機能を選択できる回路を構成した例である。以下、図４に示した回路を、パラメタにより回路全体としての機能を選択できるモジュールが複数存在する回路の例としてとりあげて説明する。
【０００６】
図２は、図４に示したような検証対象回路の期待値生成を行うための検証対象モデル（以下、「検証モデル」と記す）を用いた論理検証システムの一般的な全体構成を示す。テストベンチ部１２から検証対象回路部１３、及び検証モデル部１１にテストパタンを供給する。検証モデル部１１は検証モデルによる検証対象回路のテストパタンに対する期待値を生成し、検証対象回路部１３は検証対象回路にテストパタンに対する動作をさせる。結果比較部９はその動作結果と生成された期待値を比較し、比較の結果が一致していることを確認することによって検証対象回路が正しいことを検証する。
【０００７】
ここで、特許文献１記載の入力テストパタンに応じて回路構成を指定することにより必要な論理モデルを動作させる手法と同様な方法により検証モデルを動作させる場合、図１０のような回路検証装置となる。図１０では、回路検証装置の構成を示すとともに、処理の手順をも示している。
【０００８】
図１０の回路検証装置において、先ず、入力テストパタン毎に検証対象回路の期待値を生成するための検証モデルを入力テストパタン毎の検証モデルリスト３５に用意する。検証モデル部１１は検証モデル選択部３６と検証モデル動作部７とから成る。検証モデル選択部３６は、テストベンチ部１２から入力するテストパタンに対応した期待値生成用の検証モデルを入力テストパタン毎の検証モデルリスト３５から選択する。
【０００９】
次に、テストベンチ部１２のデータ・パラメタ入力部３７において入力パタンのデータ値、及びパラメタ値を検証モデル部１１に入力する。すると、検証モデル動作部７において検証モデル選択部３６で選択した検証モデルを動作させることで期待値を生成する。一方、テストベンチ部１２の検証対象回路パタン入力部８において、検証対象回路部１３へ入力パタンのパラメタ値、及びデータ値の入力を行う。そして、結果比較部９において、検証対象回路部１３の出力値と検証モデル部１１で生成された期待値を比較する。
【００１０】
最後に、テストパタン終了判定部１０において、入力テストパタンが終了したかどうかの判定を行い、入力テストパタンが終了していない場合は、次パタンの処理を行う。例えば、図４の回路例では、パラメタ値設定用の入力信号２４，２９，３２の３種類の信号が存在している。このため、検証対象回路全体では、入力テストパタンをパラメタ設定毎に用意した場合、入力テストパタン毎の検証モデルとして２の３乗種類の検証モデルを用意する必要がある。図４の回路例では、図３の回路を２段で構成しているが、ｎ段で構成されていた場合はパラメタ設定の種類は、１＋２＋４〜２の（ｎ-１）乗となるため、最大でこの和だけの種類の検証モデルを用意する必要がある。
【００１１】
また、１つの入力テストパタンで複数のパラメタ設定を検証する場合、複数のパラメタ設定に対応する検証モデルとして、各パラメタ設定に対応する検証モデルの機能を全て包含した検証モデルが必要となる。例えば、図４の回路例において、入力テストパタンで設定されるパラメタ値設定用の入力信号３２（Sin0_0）が０の場合、検証モデルは、セレクタ２２（Sel1_1），モジュール２３（Module1_1），セレクタ３０（Sel0_0）およびモジュール３１（Module0_0）の機能を含んでいればよい。また、入力テストパタンで設定されるパラメタ値設定用の入力信号３２（Sin0_0）が１の場合、検証モデルは、セレクタ２７（Sel1_0），モジュール２８（Module1_0），セレクタ３０（Sel0_0）およびモジュール３１（Module0_0）の機能を含んでいればよい。
【００１２】
これに対し、入力テストパタンでパラメタ値設定用の入力信号３２（Sin0_0）が０と１の複数のパラメタ値が設定される場合、検証モデルは、セレクタ２２（Sel1_1），モジュール２３（Module1_1），セレクタ２７（Sel1_0），モジュール２８（Module1_0），セレクタ３０（Sel0_0）およびモジュール３１（Module0_0）の機能を含んでいる必要がある。
【００１３】
例えば、複数のパラメタ設定に対応する検証モデルとして、個々のパラメタ設定により制御されるモジュールレベルの検証モデルの集合によって検証対象回路全体の期待値を生成する検証モデルを構成した場合、図１１の機能構成図に示すように、通常の論理シミュレータと同様に、検証モデルの内部ブロックを入力信号側から処理することになる。
【００１４】
具体的には、データ・パラメタ入力部３７において検証モデル部１１に入力パタンのデータ値、及びパラメタ値が入力される。これにより、図４の入力信号２０（Din1）、２１（Din2）、２４（Sin1_1）、２５（Din3）、２６（Din4）、２９（Sin1_0）、３２（Sin0_0）に値が設定される。この後、個々のパラメタ設定により制御されるモジュールレベルの検証モデルを入力信号側から１段ずつ動作させることにより、検証対象回路全体の期待値を生成する。
【００１５】
先ず、１段目からの処理を行うため、段数初期値設定部３８において、段数を意味する変数ｉに１を設定する。次に、ｉ段目の検証モデル動作部３９において、入力信号からｉ段目のモジュールの検証モデルを動作させる。当初、ｉは１であるため、図４において、入力信号Din1をセレクタ２２（Sel1_1）の入力Din1、入力信号Din2をセレクタ２２の入力Din2、入力信号Sin1_1をセレクタ２２の入力Sel、入力信号Din3をセレクタ２７（Sel1_0）の入力Din1、入力信号Din4をセレクタ２７の入力Din2、入力信号Sin1_0をセレクタ２７の入力Selへ信号伝播させる。次にセレクタ２２、２７の検証モデルを動作させ、その出力Doutをそれぞれモジュール２３（Module1_1）、モジュール２８（Module1_0）に信号伝播した後、モジュール２３、２８のモジュールレベルの検証モデルを動作させる。これにより、入力側から１段目の処理が完了する。
【００１６】
ここで、図４の回路は入力から２段で構成されているため、検証モデル動作終了判定部４０において処理が終了していないことが判定される。そこで、段数加算部４１において、入力信号側からの段数ｉに１を加え、ｉ段目の検証モデル動作部３９において、入力信号側から２段目の処理を行う。これにより、図４のセレクタ３０（Sel0_0）への信号伝播、及びセレクタ３０の検証モデルの動作、モジュール３１（Module0_0）への信号伝播、及びモジュール３１の検証モデルの動作が行われる。
【００１７】
図４の回路は、入力信号側からの段数は２段であるため、検証モデル動作終了判定部４０において、全てのモジュールレベルの検証モデルの動作を終了したことを判定し、入力側から最終段のモジュールであるモジュール３１の出力値を回路全体の検証モデルの出力信号３３（Dout）に信号伝播し、検証対象回路の期待値が生成できる。一方、検証対象回路パタン入力部８において検証対象回路にも入力パタンのデータ値、及びパラメタ値が入力される。そして、結果比較部９において、検証モデル部１１で生成した期待値と検証対象回路の出力値を比較する。
【００１８】
最後に、テストパタン終了判定部１０において、入力テストパタンが終了したかどうかの判定を行い、入力テストパタンが終了していない場合は、次パタンの処理を行う。以上のように図１１の機能構成図により図４の回路例の処理を行った場合、１パタン分の期待値生成のために、セレクタ、及びモジュールをそれぞれ３個分の処理を行う必要がある。図４の回路例では、図３の回路を２段で構成しているが、ｎ段で構成されていた場合は、セレクタ、及びモジュールについて、１＋２＋４〜２の（ｎ-１）乗となるため、この和だけの処理が必要となる。
【００１９】
【特許文献１】特開平10-134089号公報（第５−９頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【００２０】
しかしながら、上述した特許文献１に開示された回路検証装置及び回路検証方法に示されるような手法を用いて、パラメタにより機能を選択できるモジュールが複数存在する回路について、全てのパラメタ設定に対する論理検証を行う場合にはいくつかの問題がある。
【００２１】
第１の問題点は、検証対象回路のパラメタ設定の種類が膨大であった場合、入力テストパタン毎に期待値を生成する検証モデルを予め用意することが困難であるということである。この問題が発生する原因は、パラメタ設定の種類の増大に伴い、検証対象回路に対して予め用意しておく検証モデルの種類が、指数的に増大することに起因する。
【００２２】
第２の問題点は、複数のパラメタ設定に対応する検証モデルを用意した場合、パラメタの設定によっては、検証モデル内において不要となる処理が発生する可能性が高いことである。この問題が発生する原因は、複数のパラメタ設定に対応する検証モデルを用意した場合、設定される複数のパラメタに対応する検証モデルを全て包含した機能を持つ検証モデルとなり、入力テストパタンによりある１つのパラメタが設定された状態においては、最終的な期待値生成には不要となる機能を含んでいることに起因する。
【００２３】
そこで、本発明の目的は、パラメタ設定により機能が選択されるようなモジュールが複数存在するような半導体集積回路の論理検証に必要となる検証対象回路の期待値を検証モデルを使用して生成するときに、自動的に必要最小限の処理量による期待値生成を行う回路検証装置及び回路検証方法を提供することにある。
【課題を解決するための手段】
【００２４】
本発明の回路検証装置は、パラメタの設定により機能が選択される半導体集積回路に対する回路検証装置において、入力されるテストパタンのパラメタを解析することによりテストに必要な機能を抽出する手段と、抽出した機能から検証対象回路のテストパタンに対する期待値を生成するための論理動作順序を抽出することにより検証モデルを選択する手段と、抽出した論理動作順序どおりに検証モデルを動作させることにより期待値を生成する手段と、検証対象回路のテストパタンに対する出力値と検証モデルによる期待値を比較する手段を有することを特徴とする。
【００２５】
より詳しくは、本発明の回路検証装置は、パラメタの設定により機能が選択される半導体集積回路に対する回路検証装置において、入力するテストパタンを解析して所定数のパラメタの組を抽出する入力テストパタン解析部（図１の１）と、入力テストパタンから抽出したパラメタを組毎に解析することにより選択された機能を抽出し、その抽出した機能から回路の期待値を生成するための論理動作順序を動作順序リスト（図１の５）として全てのパラメタの組について抽出し記憶する論理動作抽出部（図１の２）と、入力テストパタンのうちパラメタのみを組単位で入力するパラメタ入力部（図１の３）と、入力されたパラメタの組に対応する動作順序リストを記憶されている動作順序リストから検証モデルとして選択する検証モデル選択部（図１の４）と、入力テストパタンのうち入力されたパラメタの組対応のデータのみを入力するデータ入力部（図１の６）と、入力したデータに対して選択した検証モデルを動作させる検証モデル動作部（図１の７）と、検証対象回路に入力テストパタンを入力する検証対象回路パタン入力部（図１の８）と、検証対象回路のテストパタンに対する出力値と検証モデルにより生成された期待値を比較する結果比較部（図１の９）と、全てのテストパタンについて上記の処理が終了したかどうかを判定するテストパタン終了判定部（図１の１０）を有することを特徴とする。
【００２６】
本発明の回路検証方法は、パラメタの設定により機能が選択される半導体集積回路に対する回路検証方法において、入力するテストパタンを解析して所定数のパラメタの組を抽出する第１段階と、入力テストパタンから抽出したパラメタを組毎に解析することにより選択された機能を抽出し、その抽出した機能から回路の期待値を生成するための論理動作順序を動作順序リストとして全てのパラメタの組について抽出し記憶する第２段階と、入力テストパタンのうちパラメタのみを組単位で入力する第３段階と、入力されたパラメタの組に対応する動作順序リストを記憶されている動作順序リストから検証モデルとして選択する第４段階と、入力テストパタンのうち入力されたパラメタの組対応のデータのみを入力する第５段階と、入力したデータに対して選択した検証モデルを動作させる第６段階と、検証対象回路に入力テストパタンを入力する第７段階と、検証対象回路のテストパタンに対する出力値と検証モデルにより生成された期待値を比較する第８段階と、全てのテストパタンについて上記の処理が終了したかどうかを判定する第９段階を有し、処理が終了していなければ第３段階以下を繰り返すことを特徴とする。
【００２７】
また、本発明の他の回路検証装置は、パラメタの設定により機能が選択される半導体集積回路に対する回路検証装置において、入力するテストパタンのうちパラメタのみを組単位で入力するパラメタ入力部（図７の３）と、入力したパラメタの値が既入力のパラメタの値と異なっているか判定するパラメタ変化判定部（図７の３４）と、パラメタの値が異なっている場合のみ入力テストパタンから抽出したパラメタを解析することにより選択された機能を抽出し、その抽出した機能から回路の期待値を生成するための論理動作順序を動作順序リスト（図７の５）として抽出する論理動作抽出部（図７の２）と、入力テストパタンのうち入力されたパラメタの組対応のデータのみを入力するデータ入力部（図７の６）と、入力したデータに対して抽出された動作順序リストの検証モデルを動作させる検証モデル動作部（図７の７）と、検証対象回路に入力テストパタンを入力する検証対象回路パタン入力部（図７の８）と、検証対象回路の前記テストパタンに対する出力値と検証モデルにより生成された期待値を比較する結果比較部（図７の９）と、全てのテストパタンについて上記の処理が終了したかどうかを判定するテストパタン終了判定部（図７の１０）を有することを特徴とする。
【００２８】
本発明の他の回路検証方法は、パラメタの設定により機能が選択される半導体集積回路に対する回路検証方法において、入力するテストパタンのうちパラメタのみを組単位で入力する第１段階と、入力したパラメタの値が既入力のパラメタの値と異なっているか判定する第２段階と、パラメタの値が異なっている場合のみ入力テストパタンから抽出したパラメタを解析することにより選択された機能を抽出し、その抽出した機能から回路の期待値を生成するための論理動作順序を動作順序リストとして抽出する第３段階と、入力テストパタンのうち入力されたパラメタの組対応のデータのみを入力する第４段階と、入力したデータに対して抽出された動作順序リストの検証モデルを動作させる第５段階と、検証対象回路に入力テストパタンを入力する第６段階と、検証対象回路のテストパタンに対する出力値と検証モデルにより生成された期待値を比較する第７段階と、全てのテストパタンについて上記の処理が終了したかどうかを判定する第８段階を有し、処理が終了していなければ第１段階以下を繰り返すことを特徴とする。
【００２９】
なお、パラメタの設定により選択される機能は検証対象回路全体としての機能であっても、検証対象回路を構成する機能モジュール内部の機能であってもよい。また、論理動作抽出部には、検証対象回路における機能選択のための論理動作、及び検証対象回路における機能モジュール間の接続構造の情報が予め設定されている。
【００３０】
このような構成を採用したため、本発明の回路検証装置及び回路検証方法では、予め入力するテストパタンのパラメタ値を解析することにより、入力テストパタンで設定されるパラメタ値毎に期待値を生成するための必要最小限の論理動作を抽出し、検証モデルでは抽出した動作処理のみを行うことによって、必要最小限の処理量による期待値生成が行うことができる。
【発明の効果】
【００３１】
本発明の第１の効果は、検証対象回路における全てのパラメタ設定の検証を行う場合、全ての入力テストパタン毎に選択される検証対象回路全体に対する期待値生成用の検証モデルを予め用意しなくても、入力するテストパタンのパラメタ値を解析し、選択される論理動作を抽出しておくことで、必要最小限の処理で期待値を生成することができることである。その理由は、入力するテストパタンを解析することで、設定されるパラメタ値に基づいて論理動作を抽出することにより、パラメタ値毎に期待値生成のための必要最小限の処理を抽出することが可能であるためである。
【００３２】
本発明の第２の効果は、パラメタ設定の種類が膨大であっても、期待値生成の処理量への影響が少ないことである。その理由は、パラメタ設定の種類に対して、検証対象回路全体の機能の組み合わせは指数的に増大するが、設定されるパラメタ値に基づいて論理動作を抽出する場合は、パラメタ値の解析量の増加は最大でも線形的とすることが可能となるからである。
【発明を実施するための最良の形態】
【００３３】
本発明の回路検証装置は、パラメタの設定により機能が選択される半導体集積回路に対する回路検証装置において、入力するテストパタンを解析して所定数のパラメタの組を抽出する入力テストパタン解析部と、入力テストパタンから抽出したパラメタを組毎に解析することにより選択された機能を抽出し、その抽出した機能から回路の期待値を生成するための論理動作順序を動作順序リストとして全てのパラメタの組について抽出し記憶する論理動作抽出部と、入力テストパタンのうちパラメタのみを組単位で入力するパラメタ入力部と、入力されたパラメタの組に対応する動作順序リストを記憶されている動作順序リストから検証モデルとして選択する検証モデル選択部と、入力テストパタンのうち入力されたパラメタの組対応のデータのみを入力するデータ入力部と、入力したデータに対して選択した検証モデルを動作させる検証モデル動作部と、検証対象回路に入力テストパタンを入力する検証対象回路パタン入力部と、検証対象回路のテストパタンに対する出力値と検証モデルにより生成された期待値を比較する結果比較部と、全てのテストパタンについて上記の処理が終了したかどうかを判定するテストパタン終了判定部を有する。以下、本発明の実施例について図面を参照して詳細に説明する。
【実施例１】
【００３４】
[構成の説明]
本発明に対しても図２が適用される。図２は、図４に示したような検証対象回路の期待値生成を行うための検証モデルを用いた論理検証システムの一般的な全体構成を示し、テストベンチ部１２，検証対象回路部１３，検証モデル部１１及び結果比較部９で構成されている。この論理検証システムは操作部と表示部を備えたコンピュータ及び、そこで実行されるプログラムによって構成され、検証対象回路は、このコンピュータ上に形成される。なお、検証対象回路とはＣＡＤにおいて作成されたHDLやゲートレベルの論理回路である。
【００３５】
先ず、テストベンチ部１２から検証対象回路部１３、及び検証モデル部１１にテストパタンを供給する。検証モデル部１１は検証モデル（図示省略）を使用して検証対象回路のテストパタンに対する期待値を生成し、検証対象回路部１３は検証対象回路（図示省略）にテストパタンに対する動作をさせる。結果比較部９はその動作結果と生成された期待値を比較し、比較の結果が一致していることを確認することによって検証対象回路が正しいことを検証する。検証モデルは、使用されるコンピュータ上に生成される。
【００３６】
図１は、本発明の回路検証装置の実施例１を示すブロック図である。図１では、回路検証装置の構成を示すとともに、処理の手順をも示している。１は入力テストパタン解析部、２は論理動作抽出部、３はパラメタ入力部、４は検証モデル選択部、５は抽出された論理動作に対応する動作順序リスト、６はデータ入力部、７は検証モデル動作部、８は検証対象回路パタン入力部、９は結果比較部、１０はテストパタン終了判定部、１１は検証モデル部である。入力テストパタン解析部１，論理動作抽出部２，検証モデル選択部４，動作順序リスト５及び検証モデル動作部７が検証モデル部１１を構成する。
【００３７】
入力テストパタン解析部１は入力するテストパタンを解析することで設定される全てのパラメタ値を抽出し、論理動作抽出部２はパラメタ値が設定された場合に選択される論理動作を動作順序リスト５として抽出する。パラメタ入力部３は入力パタンのうちパラメタ値のみを検証モデル部１１に入力し、検証モデル選択部４は予め作成した動作順序リスト５から、入力されたパラメタ値に対応する動作順序リストを選択して以下の処理に供する。
【００３８】
データ入力部６は入力パタンのうちデータ値のみを検証モデル部１１に入力し、検証モデル動作部７は選択した動作順序リストに基づいて検証モデル部１１の動作を行う。検証対象回路パタン入力部８は検証モデルと同一の入力パタンのデータ値、及びパラメタ値を検証対象回路（図示省略）へ入力する。
【００３９】
結果比較部９は検証対象回路パタン入力部８により入力したパタンに対する検証対象回路の出力値と検証モデル動作部７により生成された期待値を比較する。テストパタン終了判定部１０はテストパタンの終了を判定する。テストパタンが終了していない場合は、次パタンの処理として、パラメタ入力部３、及び検証対象回路パタン入力部８の処理を行う。
［動作の説明］
次に、図１に示す回路検証装置のブロック図により、図４の回路に対して、図５に示すテストパタンを入力する場合の動作を説明する。ただし、図４において、セレクタ２２（Sel1_1）、セレクタ２７（Sel1_0）、セレクタ３０（Sel0_0）は制御信号Selが０の場合はDin1、１の場合はDin2をDoutに出力するものとし、セレクタ２２のパラメタ値となる入力信号２４（Sin1_1）が０、及びセレクタ３０のパラメタ値となる入力信号３２（Sin0_0）が０に設定された状態を示しており、それぞれ、セレクタ内の矢印の信号を選択している状態を示している。また、モジュール２３（Module1_1）の機能は入力Dinに対して１を加算、モジュール２８（Module1_0）の機能は入力Dinに対して１を減算、モジュール３１（Module0_0）の機能は入力Dinに対して２を乗算するものとする。
【００４０】
論理動作抽出部２には、論理動作抽出のため、各セレクタの論理動作、及びモジュール間の接続構造の情報を予め設定しておく。これにより、セレクタ２２、２７、３０の出力が制御信号Selの設定によりDin1とDin2のいずれから入力されるかという判断と、出力信号３３（Dout）はモジュール３１の出力（Module0_0/Dout）から伝播することや、モジュール３１の入力（Module0_0/Din）はセレクタ３０の出力（Sel0_0/Dout）から伝播することが認識できることとする。
【００４１】
ここで、図５に示すパタン長が５のテストパタンを入力する。先ず、入力テストパタン解析部１により、入力するテストパタンを解析することにより、設定されるの全てのパラメタ値を抽出する。これにより、入力テストパタンのパラメタ設定として、(Sin0_0,Sin1_0,Sin1_1)=(0,0,0)または(0,0,1)の２種類のパラメタ値が抽出できる。
【００４２】
次に、論理動作抽出部２において、入力テストパタンにより設定される２種類のパラメタ値(Sin0_0,Sin1_0,Sin1_1)=(0,0,0)と(0,0,1)に対応する動作順序リスト５として、各セレクタの論理動作とモジュール間の接続構造の情報を用いて、出力ポートから入力元の信号の探索を行うことで、図６に示すような動作順序リストを生成する。
【００４３】
具体的な動作順序リスト生成のための探索処理の動作例を以下に示す。先ず、パラメタ値が(Sin0_0,Sin1_0,Sin1_1)=(0,0,0)である場合の探索を行う。ここでは、検証対象回路として出力となり得る信号である出力信号３３（Dout）について入力元の信号の探索を行う。それには、出力ポートである出力信号３３（Dout）から回路接続構造の情報に基づいて探索を行うことで、モジュール３１の出力（Module0_0/Dout）に到達するため、この信号伝播を出力ポートからの探索の深さ１の動作として抽出する。更に、モジュール３１（Module0_0）の動作を出力ポートからの探索の深さ２として抽出する。
【００４４】
次に、この到達したモジュール３１の入力（Module0_0/Din）から更に探索を続けることによりセレクタ３０の出力（Sel0_0/Dout）に到達する。ここで、セレクタ３０（Sel0_0）は、パラメタに制御されるモジュールであるため、パラメタ値の信号を示す入力信号３２（Sin0_0）の値を参照することより、セレクタ３０の出力（Sel0_0/Dout）はセレクタ３０の入力Din1（Sel0_0/Din1）が信号の入力元であることが抽出できる。
【００４５】
更に、セレクタ３０の入力Din1（Sel0_0/Din1）から探索することによりモジュール２３の出力（Module1_1/Dout）に到達する。これにより、モジュール３１の入力（Module0_0/Din）から探索した結果、モジュール２３の出力（Module1_1/Dout）に到達することが判明したため、この信号伝播を出力ポートからの探索の深さ３として抽出する。
【００４６】
以上の動作繰り返すことにより、モジュール２３（Module1_1）の動作を外部ポートからの深さ４、入力信号２０（Din1）からモジュール２３の入力（Module1_1/Din）への信号伝播を外部ポートからの深さ５として抽出し、探索が完了する。
【００４７】
出力ポートからの探索の深さの降順が信号の伝播とモジュールの動作順序であるため、この探索結果を出力ポートからの探索の深さの降順にソートすることで、パラメタ値が(Sin0_0,Sin1_0,Sin1_1)=(0,0,0)である場合の動作順序リストが、図６に示すような出力期待値を生成するために関連するモジュールとモジュール間の信号伝播のモジュールの処理順を示す動作順序リストとして抽出できる。パラメタ値が(Sin0_0,Sin1_0,Sin1_1)=(0,0,1)である場合についても同様に探索を行うことで、図６に示すような入力テストパタンで設定される全てのパラメタ値に対応した動作順序リスト５が生成できる。
【００４８】
以上により、入力するテストパタンについて予め行う解析が完了したため、パラメタ入力部３は、入力テストパタンのパラメタ値を検証モデル選択部４へ入力する。検証モデル選択部４は１パタン目のパラメタ値(Sin0_0,Sin1_0,Sin1_1)=(0,0,0)が入力すると、入力されたパラメタ値(Sin0_0,Sin1_0,Sin1_1)=(0,0,0)に対応する動作順序リストを図６に示した動作順序リスト５から選択することで検証モデル部１１の処理、すなわち検証モデルの選択とする。
【００４９】
次に、データ入力部６により、入力テストパタンの１パタン目のデータ値(Din1,Din2,Din3,Din4)=(5,3,0,1)が検証モデル動作部７に入力される。そして、検証モデル動作部７は、図６の(Sin0_0,Sin1_0,Sin1_1)=(0,0,0)に対応する動作順序リストの示すとおりに検証モデルを動作させることにより、検証対象回路全体の期待値を生成することができる。まず、動作順序リストの１行目の処理として、入力信号２０（Din1）の信号値をモジュール２３の入力（Module1_1/Din）に伝播する。これによりモジュール２３の入力（Module1_1/Din）の値は５となる。
【００５０】
次に、動作順序リストの２行目の動作として、モジュール２３（Module1_1）を動作させる。これにより、モジュール２３の機能である入力Dinに１を加算する処理が行われ、モジュール２３の出力（Module1_1/Dout）の値は６となる。次に、３行目の処理として、モジュール２３の出力（Module1_1/Dout）の信号値をモジュール３１の入力（Module0_0/Din）に伝播する。これにより、モジュール３１の入力（Module0_0/Din）の値は６となる。次に、４行目の処理として、モジュール３１（Module0_0）を動作させる。これにより、モジュール３１の機能である２を乗算する処理が行われ、モジュール３１の出力（Module0_0/Dout）の値は１２となる。最後に、５行目の処理として、モジュール３１の出力（Module0_0/Dout）の信号値を出力信号３３（Dout）に伝播させる。以上により、入力パタンの1パタン目に対する検証対象回路の期待値を生成することができる。
【００５１】
一方、検証対象回路パタン入力部８において、入力テストパタンの１パタン目のデータ値及びパラメタ値が検証対象回路部１３へ入力する。そして、結果比較部９において、検証対象回路部１３の出力値と検証モデル部１１で生成した期待値を比較することで、入力するテストパタンの１パタン目に対する検証対象回路の論理検証を行うことができる。
【００５２】
次に、テストパタン終了判定部１０により、入力パタンが終了したかどうかを判定する。ここで、入力テストパタンは終了していないため、２パタン目の処理を行う。１パタン目と同様に、パラメタ入力部３において入力テストパタンの２パタン目のパラメタ値(Sin0_0,Sin1_0,Sin1_1)=(0,0,1)を検証モデル選択部４に入力する。入力されたパラメタ値(Sin0_0,Sin1_0,Sin1_1)=(0,0,1)に対応する動作順序リストも予め生成しているため、検証モデル選択部４において対応する動作順序リストを選択することができる。以下同様に図１の回路検証装置により処理を行うことで、出力信号３３（Dout）の値が６として期待値を生成することができる。
【００５３】
以上の処理を入力パタンが終了するまで繰り返すことにより、自動的に必要最小限の信号伝播とモジュール動作の処理量を抽出して期待値を生成する回路検証装置及び回路検証方法を提供することが可能となる。
【実施例２】
【００５４】
次に、本発明の他の実施例について説明する。実施例１はパラメタ設定により回路全体としての機能を選択できる検証対象回路についてのものであった。しかし、検証対象回路が、パラメタ設定によりモジュール自体の機能が切り替わるような回路であった場合、パラメタ設定によってはモジュール内部に不要な機能が存在することになる。この場合も、実施例１と同様に入力するテストパタンのパラメタ値を解析することで、検証モデルにおいて不要な機能を明確にすることができる。この不要な機能を検証モデルから削除することで、検証モデルによる期待値生成の処理量の削減を図ることもできる。
【実施例３】
【００５５】
また、検証対象回路が、図４のようにパラメタ設定により必要なモジュールが選択され、かつモジュール自体の機能が切り替わるような回路であった場合も、本発明の実施例１と同様に入力するテストパタンのパラメタ値を解析することで、先ず検証モデルにおいて不要な機能を明確にし、この不要な機能を検証モデルから削除したうえで、必要な機能の抽出を行うことで、期待値生成の処理量の削減を図ることもできる。
【実施例４】
【００５６】
また、実施例１では、入力するテストパタンの全てのパラメタ値を解析していたが、ある一定長のパタン長毎にパラメタ値を解析し必要な論理動作を抽出してもよい。これにより、入力するテストパタンに多数のパラメタ設定が存在していた場合でも、パラメタ値に対応して抽出した論理動作の記憶領域をある一定量に抑制した状態で、期待値生成の処理量を削減した検証モデルの動作を行うこともできる。
【００５７】
テストパタンを１パタン長分入力する毎にパラメタ値の解析を行う例の回路検証装置を図７に示す。図７の回路検証装置では、パラメタ変化判定部３４においてパラメタ値の変化を検出し、パラメタ値に変化があった場合のみ入力されたパラメタ値に対する論理動作抽出部２の処理を行う。パラメタ値に変化がない場合は、同一の動作順序リストにより期待値が生成できるため、論理動作抽出部２の処理は行う必要はない。
【実施例５】
【００５８】
また、実施例１では、入力するテストパタンの全てのパラメタ値を解析していたが、テストパタンを１パタン入力する毎にパラメタ値の解析を行い、ある一定量の種類のパラメタに対応する論理動作の分まで記憶しておく方式でもよい。この方式では、記憶している論理動作の種類がある一定量に達するまでは、新規パラメタ値に対する論理動作の記憶を追加し、記憶している論理動作の種類がある一定量の達した状態で新規パラメタが入力された場合は、最も不要と思われるパラメタ値に対する論理動作の記憶を新規パラメタ値に対する論理動作の記憶に置き換えるという処理を行う。
【実施例６】
【００５９】
また、本発明は、入力するテストパタンによるパラメタ設定によって論理動作順序を一意に抽出することが可能であれば、同様の処理手順によって検証対象回路の期待値を生成することが可能である。このため、図１や図７における論理動作抽出部２に代わって、図８に示すように、クロスバースイッチを用いた構成であっても同様に動作順序リストを抽出することが可能であり、必要最小限の処理量によって検証モデルによる検証対象回路の期待値を生成することができる。
【実施例７】
【００６０】
また、図８のクロスバースイッチ図９のバスを用いた構成であっても、上述と同様な効果を得ることができる。図８や図９のような構成においても、出力となりうる全ての入出力ポートを探索開始点として、信号の伝播を遡る。モジュールに到達した場合は、そのモジュールのパラメタ値を解析することで、そのモジュールの入力となる信号を特定し、されにその信号の入力元を探索する。以上のような探索を行うことにより、モジュール間の信号伝播、及びモジュールの動作順序を抽出し、動作順序リストとして生成することができる。
【図面の簡単な説明】
【００６１】
【図１】本発明の回路検証装置の実施例１を示すブロック図
【図２】検証対象回路の期待値生成を行う検証モデルを用いた論理検証システムの一般的な全体構成を示すブロック図
【図３】検証対象回路の第１の例を示す回路図
【図４】検証対象回路の第２の例を示す回路図
【図５】図４の回路例に対して入力するテストパタンの例を示す図
【図６】本発明における論理動作抽出部で生成される動作順序リストの例を示す図
【図７】本発明の回路検証装置の実施例４を示すブロック図
【図８】本発明の回路検証装置の実施例６を示す構成図
【図９】本発明の回路検証装置の実施例７を示す構成図
【図１０】従来の回路検証装置の例を示すブロック図
【図１１】従来の回路検証装置の他の例を示すブロック図
【符号の説明】
【００６２】
１      入力テストパタン解析部
２      論理動作抽出部
３      パラメタ入力部
４      検証モデル選択部
５      動作順序リスト
６      データ入力部
７      検証モデル動作部
８      検証対象回路パタン入力部
９      結果比較部
１０    テストパタン終了判定部
１１    検証モデル部
１２    テストベンチ部
１３    検証対象回路部
【図１】
2007052585.tif 000003
【図２】
2007052585.tif 000004
【図３】
2007052585.tif 000005
【図４】
2007052585.tif 000006
【図５】
2007052585.tif 000007
【図６】
2007052585.tif 000008
【図７】
2007052585.tif 000009
【図８】
2007052585.tif 000010
【図９】
2007052585.tif 000011
【図１０】
2007052585.tif 000012
【図１１】
2007052585.tif 000013