(57)【要約】【課題】この発明は、回路記述を論理検証するための検証環境であるテストベンチの生成に要する作業工程を削減し、論理回路の検証に要する時間の大幅な短縮化を図ることを可能とした論理機能検証装置及び論理機能検証方法を提供することを目的としている。【解決手段】検証対象（１２）となる論理回路が有する複数のポートから所定の機能に対応するポートのグループを指示し、指示されたポートグループを構造体化してその構造体に対応するポートのデータを保持するためのキュー（１９）を作成する。そして、キュー（１９）に基づいて予め用意された雛形を参照して合否判定関数を生成し、生成された合否判定関数とキュー（１９）により保持されたデータとに基づいて、予め用意された合否判定ロジックの雛形を参照して論理回路を合否判定するためのロジックを生成する。【選択図】      図１
2008129921.tif 000002
【特許請求の範囲】
【請求項１】
検証対象となる論理回路が有する複数のポートから所定の機能に対応するポートのグループを指示するためのポートグループ指示手段と、
前記ポートグループ指示手段で指示されたポートグループを構造体化するポートグループ構造化手段と、
前記ポートグループ構造化手段で生成された構造体に対応する前記ポートのデータを保持するためのキューを作成するキュー作成手段と、
前記キュー作成手段で作成されたキューに基づいて、予め用意された合否判定関数の雛形を参照して合否判定関数を生成する合否判定関数生成手段と、
前記キューにより保持されたデータと前記合否判定関数生成手段で生成された合否判定関数とに基づいて、予め用意された合否判定ロジックの雛形を参照して前記論理回路を合否判定するためのロジックを生成する合否判定ロジック生成手段とを具備することを特徴とする論理機能検証装置。
【請求項２】
前記ポートグループ指示手段は、前記論理回路が有する入力側の複数のポートと、前記論理回路が有する出力側の複数のポートとからそれぞれポートグループを指示することを特徴とする請求項１記載の論理機能検証装置。
【請求項３】
前記ポートグループ構造化手段は、前記論理回路が有する入力側の複数のポートから前記ポートグループ指示手段で指示された第１のポートグループと、前記論理回路が有する出力側の複数のポートから前記ポートグループ指示手段で指示された第２のポートグループとをそれぞれ構造体化し、
前記キュー作成手段は、前記第１のポートグループの構造体に対応する前記ポートのデータを保持するための第１のキューと、前記第２のポートグループの構造体に対応する前記ポートのデータを保持するための第２のキューとをそれぞれ作成することを特徴とする請求項２記載の論理機能検証装置。
【請求項４】
前記合否判定関数生成手段は、前記キュー作成手段で作成された第１のキュー及び第２のキューに基づいて、予め複数用意された合否判定関数の雛形を参照して合否判定関数を生成することを特徴とする請求項３記載の論理機能検証装置。
【請求項５】
前記合否判定ロジック生成手段は、前記第１のキューにより保持されたデータを前記合否判定関数生成手段で生成された合否判定関数に入力し、その演算結果のデータと前記第２のキューにより保持されたデータとを比較して合否判定を行なうロジックを生成することを特徴とする請求項４記載の論理機能検証装置。
【請求項６】
検証対象となる論理回路が有する複数のポートから所定の機能に対応するポートのグループを指示する第１の工程と、
前記第１の工程で指示されたポートグループを構造体化する第２の工程と、
前記第２の工程で生成された構造体に対応する前記ポートのデータを保持するためのキューを作成する第３の工程と、
前記第３の工程で作成されたキューに基づいて、予め用意された合否判定関数の雛形を参照して合否判定関数を生成する第４の工程と、
前記キューにより保持されたデータと前記第４の工程で生成された合否判定関数とに基づいて、予め用意された合否判定ロジックの雛形を参照して前記論理回路を合否判定するためのロジックを生成する第５の工程とを具備することを特徴とする論理機能検証方法。
【請求項７】
前記第１の工程は、前記論理回路が有する入力側の複数のポートと、前記論理回路が有する出力側の複数のポートとからそれぞれポートグループを指示し、
前記第２の工程は、前記論理回路が有する入力側の複数のポートから前記第１の工程で指示された第１のポートグループと、前記論理回路が有する出力側の複数のポートから前記第１の工程で指示された第２のポートグループとをそれぞれ構造体化し、
前記第３の工程は、前記第１のポートグループの構造体に対応する前記ポートのデータを保持するための第１のキューと、前記第２のポートグループの構造体に対応する前記ポートのデータを保持するための第２のキューとをそれぞれ作成し、
前記第４の工程は、前記第３の工程で作成された第１のキュー及び第２のキューに基づいて、予め複数用意された合否判定関数の雛形を参照して合否判定関数を生成し、
前記第５の工程は、前記第１のキューにより保持されたデータを前記第４の工程で生成された合否判定関数に入力し、その演算結果のデータと前記第２のキューにより保持されたデータとを比較して合否判定を行なうロジックを生成することを特徴とする請求項６記載の論理機能検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばＬＳＩ（large scale integrated circuit）の開発時等において論理回路の機能検証を行なうための論理機能検証装置及び論理機能検証方法に関する。
【背景技術】
【０００２】
周知のように、現在、例えばＬＳＩ等に代表される論理回路の開発においては、開発対象となる論理回路そのものを設計するための記述作業に要する時間に比べ、その回路記述を論理検証するために必要となる検証環境の記述であるテストベンチを作成する作業の方に、より多くの時間が費やされている。
【０００３】
特許文献１には、デバイスモデル、バスファンクションモデル、クロックジェネレータ等の検証装置をライブラリ化しておき、ポート名やポートの幅をキーワードとして検証対象の回路記述に接続する検証装置を決定するもので、特に、汎用バスに接続される論理回路の検証に用いるテストベンチ全体を自動的に作成することが開示されている。
【特許文献１】特開２００６−１７８７７５
【発明の開示】
【発明が解決しようとする課題】
【０００４】
そこで、この発明は上記事情を考慮してなされたもので、回路記述を論理検証するための検証環境であるテストベンチの生成に要する作業工程を削減し、論理回路の検証に要する時間の大幅な短縮化を図ることができるようにした論理機能検証装置及び論理機能検証方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
この発明に係る論理機能検証装置は、検証対象となる論理回路が有する複数のポートから所定の機能に対応するポートのグループを指示するためのポートグループ指示手段と、ポートグループ指示手段で指示されたポートグループを構造体化するポートグループ構造化手段と、ポートグループ構造化手段で生成された構造体に対応するポートのデータを保持するためのキューを作成するキュー作成手段と、キュー作成手段で作成されたキューに基づいて、予め用意された合否判定関数の雛形を参照して合否判定関数を生成する合否判定関数生成手段と、キューにより保持されたデータと合否判定関数生成手段で生成された合否判定関数とに基づいて、予め用意された合否判定ロジックの雛形を参照して論理回路を合否判定するためのロジックを生成する合否判定ロジック生成手段とを備えるようにしたものである。
【０００６】
また、この発明に係る論理機能検証方法は、検証対象となる論理回路が有する複数のポートから所定の機能に対応するポートのグループを指示する第１の工程と、第１の工程で指示されたポートグループを構造体化する第２の工程と、第２の工程で生成された構造体に対応するポートのデータを保持するためのキューを作成する第３の工程と、第３の工程で作成されたキューに基づいて、予め用意された合否判定関数の雛形を参照して合否判定関数を生成する第４の工程と、キューにより保持されたデータと第４の工程で生成された合否判定関数とに基づいて、予め用意された合否判定ロジックの雛形を参照して論理回路を合否判定するためのロジックを生成する第５の工程とを備えるようにしたものである。
【発明の効果】
【０００７】
上記した発明によれば、検証対象となる論理回路が有する複数のポートから所定の機能に対応するポートのグループを指示し、指示されたポートグループを構造体化してその構造体に対応するポートのデータを保持するためのキューを作成し、キューにより保持されたデータと予め用意された雛形を参照して生成された合否判定関数とに基づいて、論理回路を合否判定するためのロジックを生成するようにしたので、回路記述を論理検証するための検証環境であるテストベンチの生成に要する作業工程を削減し、論理回路の検証に要する時間の大幅な短縮化を図ることができるようになる。
【発明を実施するための最良の形態】
【０００８】
以下、この発明の実施の形態について図面を参照して詳細に説明する。図１は、この実施の形態で説明する機能検証テストベンチ、つまり、論理機能検証環境１１の全体的な構成を示している。
【０００９】
すなわち、検証対象１２は、その入力側の複数のポート（図１で左側）がトランザクションインターフェース１３を介してシナリオ発生器１４に接続されている。また、検証対象１２は、その出力側の複数のポート（図１で右側）がトランザクションインターフェース１５を介してスレーブモデル１６に接続されている。
【００１０】
このうち、トランザクションインターフェース１３，１５は、ポートの動作、例えば信号の立ち上げや立ち下げ等を、機能的な意味のある表現、例えばデータのライトやデータのリード等に置き換えたり、または、その逆の動作、つまり、機能的な表現をポートの動作に変換したりするものである。
【００１１】
また、上記シナリオ発生器１４は、機能的な表現でテストシナリオを記述するためのモジュールである。さらに、上記スレーブモデル１６は、例えばメモリモデルや対向モデル等であり、検証対象１２が出力するデータを消費するものである。つまり、スレーブモデル１６は、それが無いと、検証対象１２のハンドシェイク等の出力トランザクションが終了しないことがあるために設置されている。
【００１２】
ここで、スコアボード１７は、合否判定モジュールであって、検証対象１２の入力側のポートと出力側のポートとを常時監視している。この監視方法としては、合否判定ロジック１８を記述することになるが、そのための情報として検証対象１２の入力側のトランザクションと出力側のトランザクションとに対応した数のキュー１９を作成し、双方のトランザクションをキュー１９に保存し、必要に応じて保存データを取り出して比較する等の方法が用いられる。キュー１９としては、例えばバッファをＦＩＦＯ（first in first out）方式で駆動させたものである。
【００１３】
図２は、上記スコアボード１７を生成するために必要な、機能検証テストベンチ生成システム２０の内部構成を示している。すなわち、トランザクションを構成するのは、いくつかのポートでなるグループの動作であるで、ポートのグループを指示するためのポートグループ指示部２１が備えられている。
【００１４】
また、このポートグループ指示部２１によって指示されたポートのグループを構造化するためのポートグルーブ構造化部２２は、テストベンチを記述する上でのトランザクション構造体を生成するものである。上記キュー１９を作成するためのキュー作成部２３が設けられている。
【００１５】
さらに、上記合否判定ロジック１８を生成するための元となる合否判定関数を生成するための合否判定関数生成部２４が設けられている。この合否判定関数は、合否判定関数雛形群２５を用いて生成される。また、生成された合否判定関数は、生成済み合否判定関数群２６としてテストベンチの記述内に登録される。
【００１６】
合否判定の本体は、合否判定ロジック生成部２７が判定ロジック雛形群２８を元にして生成する。なお、合否判定関数雛形群２５と判定ロジック雛形群２８とは、特に複雑な判定関数や判定ロジックが不要である場合には、参照されないこともある。
【００１７】
次に、図３は、上記したスコアボード１７の処理動作をまとめたフローチャートを示している。この処理動作の説明において、結果的に図１及び図２に示した各構成要素の詳細な動作についても述べることになる。また、この処理動作の説明においては、必要に応じて図４〜図８も参照するものとする。
【００１８】
すなわち、処理動作が開始（ステップＳ１）されると、スコアボード１７は、ステップＳ２で、通常、Verilog−ＨＤＬ等で記述された検証対象１２の回路記述を読み込み、ステップＳ３で、読み込んだ検証対象１２の回路記述のポート部分を解析して、ポート一覧を生成する。そして、本システムのユーザに対してポート一覧を表示する。
【００１９】
これにより、ユーザは、ステップＳ４で、一覧表示された複数のポートから所望のポートを選択してグループ化する。このとき、ユーザの指示を受理するのが、前述したポートグループ指示部２１である。そして、スコアボード１７は、ステップＳ５で、指示されたポートのグループを構造体化する。このとき用いられるのが、ポートグループ構造化部２２である。
【００２０】
図４は、構造化されたポートグループの一例を示している。この例では、Ｒ（red），Ｇ（green）及びＢ（blue）の画素を取り扱う論理回路の例を示しており、各１０ビットの画素の他、データイネーブル信号（de）とトランザクション発生時刻（t_info）とを構造体としてワンパッケージ化している。このような機能（抽象）レベルで表現することで、テストベンチを生成し易く、かつ、ユーザもテストシナリオを記述し易くなる。
【００２１】
その後、スコアボード１７は、ステップＳ６で、構造体の型を用いてキュー１９を作成する。このとき用いられるのが、前述したキュー作成部２３である。図５は、生成されたキュー１９の一例を示している。これは、SystemVerilogの文法を用いて表現したキュー１９であり、キュー１９の要素が前ステップＳ５で作成した構造体である。
【００２２】
次に、スコアボード１７は、ステップＳ７で、キュー１９を用いて、合否判定を行なう関数を生成する。このとき用いられるのが、前述した合否判定関数生成部２４である。図６は、生成された合否判定用関数の一例を示している。図６では、前半が画素のＲ，Ｇ，Ｂ値の比較を行なうもので、後半がデータイネーブル信号の判定を行なうものである。この場合、合否判定関数雛形群２５としては、Ｒ，Ｇ，Ｂ値とデータイネーブルとを判定する関数が別個に必要であるという情報が記述されていればよいということになる。
【００２３】
そして、スコアボード１７は、合否判定を行なう関数を生成できたので、ステップＳ８で、それを用いて合否判定ロジックを生成し、処理を終了（ステップＳ９）する。この場合、合否判定ロジックとしては、例えば、検証対象１２の入力側に対応するキュー１９からデータを取り出して合否判定関数に入力し、その演算結果のデータと、検証対象１２の出力側に対応するキュー１９に保持されたデータとを比較し、一致していれば合格、不一致であれば不合格と判断するものである。このステップＳ８の処理で用いられるのが、前述した合否判定ロジック生成部２７である。
【００２４】
図７及び図８は、生成された判定ロジックの一例を示している。図７は、用意したキュー１９に検証対象１２の入力側及び出力側のトランザクションをプッシュする記述を示している。また、図８は、キュー１９内の値を比較し、用済み後にキュー１９から値を取り除く記述を示している。この場合、判定ロジック雛形部２８としては、キュー１９へのトランザクションデータの追加と、検証対象１２の入力側及び出力側に対応するキュー１９からデータを取り出して比較するロジックとが必要であるという情報が記述されていればよいということになる。
【００２５】
上記した実施の形態によれば、検証対象１２の回路記述から機能的な意味のあるポートのグループを指示して構造体化し、必要な数のトランザクションに対応したキュー１９を生成する。そして、生成した構造体を用いて、合否判定用関数の雛形に照らし合わせて合否判定用関数を自動生成した後、キュー１９から必要なデータを取り出し、合否判定用関数を利用して、合否判定ロジックの雛形に照らし合わせて合否判定を行なうロジックを自動生成するようにしている。
【００２６】
これにより、回路記述を論理検証するための検証環境であるテストベンチの生成に要する作業工程を削減し、論理回路の検証に要する時間の大幅な短縮化を図ることができるようになる。また、汎用のバスに接続された論理回路に限らず、どのような論理回路に対しても、合否判定を行なうためのテストベンチ記述を自動生成することができる。
【００２７】
なお、この発明は上記した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を種々変形して具体化することができる。また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係る構成要素を適宜組み合わせても良いものである。
【図面の簡単な説明】
【００２８】
【図１】この発明の実施の形態を示すもので、論理機能検証環境の全体的な構成を説明するために示す図。
【図２】同実施の形態における論理機能検証環境のスコアボードを構成する機能検証テストベンチ生成システムを説明するために示す図。
【図３】同実施の形態におけるスコアボードの処理動作を説明するために示すフローチャート。
【図４】同実施の形態におけるスコアボードの処理動作で得られる構造化されたポートグループの一例を説明するために示す図。
【図５】同実施の形態におけるスコアボードの処理動作で得られるキューの一例を説明するために示す図。
【図６】同実施の形態におけるスコアボードの処理動作で得られる合否判定用関数の一例を説明するために示す図。
【図７】同実施の形態におけるスコアボードの処理動作で得られる判定ロジックの一例を説明するために示す図。
【図８】同実施の形態におけるスコアボードの処理動作で得られる判定ロジックの他の例を説明するために示す図。
【符号の説明】
【００２９】
１１…論理機能検証環境、１２…検証対象、１３…トランザクションインターフェース、１４…シナリオ発生器、１５…トランザクションインターフェース、１６…スレーブモデル、１７…スコアボード、１８…合否判定ロジック、１９…キュー、２０…機能検証テストベンチ生成システム、２１…ポートグループ指示部、２２…ポートグループ構造化部、２３…キュー作成部、２４…合否判定関数生成部、２５…合否判定関数雛形群、２６…生成済み合否判定関数群、２７…合否判定ロジック生成部、２８…判定ロジック雛形群。
【図１】
2008129921.tif 000003
【図２】
2008129921.tif 000004
【図３】
2008129921.tif 000005
【図４】
2008129921.tif 000006
【図５】
2008129921.tif 000007
【図６】
2008129921.tif 000008
【図７】
2008129921.tif 000009
【図８】
2008129921.tif 000010