(57)【特許請求の範囲】
【請求項１】
複数のモジュールを有する論理回路に対する論理シミュレーションを行うとともに、該複数のモジュールのそれぞれに対するコード・カバレッジ（コードの網羅率）を取得する論理シミュレータと、
前記複数のモジュールのそれぞれに対するコード・カバレッジを参照し、コード・カバレッジが所定の割合よりも低いモジュールに対して第１のＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）コードを用いるとともに、それ以外のモジュールに対して該第１のＨＤＬコードに対するモデルよりも抽象度の高いモデルに基づく第２のＨＤＬコードを用いて論理シミュレーションを行うように、前記論理シミュレータに指示するカバレッジアクセラレータと、を備えている、論理回路検証装置。
【請求項２】
前記カバレッジアクセラレータは、前記複数のモジュールのうちのＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）回路が更新されたモジュールについては、コード・カバレッジに依らず、前記第１のＨＤＬコードを用いて論理シミュレーションを行うように前記論理シミュレータに指示する、請求項１に記載の論理回路検証装置。
【請求項３】
前記所定の割合は１００％である、請求項１または２に記載の論理回路検証装置。
【請求項４】
コンピュータが、複数のモジュールを有する論理回路に対する論理シミュレーションを行う工程と、
前記論理シミュレーションの結果から、前記複数のモジュールのそれぞれに対するコード・カバレッジ（コードの網羅率）を取得する工程と、
コード・カバレッジが所定の割合よりも低いモジュールに対して第１のＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）コードを用いるとともに、それ以外のモジュールに対して該第１のＨＤＬコードに対するモデルよりも抽象度の高いモデルに基づく第２のＨＤＬコードを用いて論理シミュレーションを行う工程と、を含む、論理回路検証方法。
【請求項５】
前記コンピュータが、前記複数のモジュールのうちＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）回路が更新されたモジュールが存在するか否かを判定する工程と、
ＲＴＬ回路が更新されたモジュールについては、コード・カバレッジに依らず、前記第１のＨＤＬコードを用いて論理シミュレーションを行う工程と、を含む、請求項４に記載の論理回路検証方法。
【請求項６】
複数のモジュールを有する論理回路に対する論理シミュレーションを行う処理と、
前記論理シミュレーションの結果から、前記複数のモジュールのそれぞれに対するコード・カバレッジ（コード網羅率）を取得する処理と、
コード・カバレッジが所定の割合よりも低いモジュールに対して第１のＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）コードを用いるとともに、それ以外のモジュールに対して該第１のＨＤＬコードに対するモデルよりも抽象度の高いモデルに基づく第２のＨＤＬコードを用いて論理シミュレーションを行う処理と、をコンピュータに実行させることを特徴とするプログラム。
【請求項７】
前記複数のモジュールのうちＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）回路が更新されたモジュールが存在するか否かを判定する処理と、
ＲＴＬ回路が更新されたモジュールについては、コード・カバレッジに依らず、前記第１のＨＤＬコードを用いて論理シミュレーションを行う処理と、をコンピュータに実行させることを特徴とする、請求項６に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路検証装置、論理回路検証方法およびプログラムに関し、特に、論理シミュレーションに基づいて論理回路の機能を検証する論理回路検証装置、論理回路検証方法およびプログラムに関する。
【背景技術】
【０００２】
近年、半導体集積回路等の論理回路の設計において、ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）を用いた設計が行われる。すなわち、論理回路を表すＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）回路をＨＤＬで記述し、得られたＨＤＬコードを用いたシミュレーション（以下、「論理シミュレーション」という。）によって論理回路の動作を模擬することで、設計の検証が行われる。
【０００３】
論理シミュレーションにおいて機能検証用のテストパターンを実行する際、検証対象論理のすべての機能が実行されることが望ましい。実行される機能の網羅性を確認するために、機能または記述が全体の何％実行されたかを表す指標として、コード・カバレッジが使用される。例えば、論理シミュレーションで用いたテストパターンが、検証対象回路に対するＨＤＬコードをどれだけ網羅したかを計測することにより、コード・カバレッジを取得することができる。
【０００４】
なお、特許文献１には、論理回路に対して抽象度の高いモデルを用いることで、コード・カバレッジの測定時間を短縮する技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−０６９９２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以下の分析は、本発明者によってなされたものである。
【０００７】
カバレッジリスト、すなわち、論理シミュレーションにおいていずれのモジュールのコード・カバレッジを採取するかを設定するリストに含まれる検証項目の数が多くなるに従って、論理シミュレーションの実行に要する時間が長くなる。特許文献１に記載された技術のように、論理シミュレーションにおいて抽象度の高いモデル（以下、「擬似モデル」という。）を用いることで、実論理に基づくモデル（以下、「実モデル」という。）を用いた場合と比較してシミュレーションの速度を向上させることができる。しかしながら、カバレッジリストに含まれる検証項目を検証する際には、実モデルを使用する必要がある。
【０００８】
そこで、論理シミュレーションに基づく論理回路の検証に要する時間を削減することが課題となる。本発明の目的は、かかる課題を解決する論理回路検証装置、論理回路検証方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明の第１の視点に係る論理回路検証装置は、
複数のモジュールを有する論理回路に対する論理シミュレーションを行うとともに、該複数のモジュールのそれぞれに対するコード・カバレッジ（コードの網羅率）を取得する論理シミュレータと、
前記複数のモジュールのそれぞれに対するコード・カバレッジを参照し、コード・カバレッジが所定の割合よりも低いモジュールに対して第１のＨＤＬコードを用いるとともに、それ以外のモジュールに対して該第１のＨＤＬコードに対するモデルよりも抽象度の高いモデルに基づく第２のＨＤＬコードを用いて論理シミュレーションを行うように、前記論理シミュレータに指示するカバレッジアクセラレータと、を備えている。
【００１０】
本発明の第２の視点に係る論理回路検証方法は、
コンピュータが、複数のモジュールを有する論理回路に対する論理シミュレーションを行う工程と、
前記論理シミュレーションの結果から、前記複数のモジュールのそれぞれに対するコード・カバレッジ（コードの網羅率）を取得する工程と、
コード・カバレッジが所定の割合よりも低いモジュールに対して第１のＨＤＬコードを用いるとともに、それ以外のモジュールに対して該第１のＨＤＬコードに対するモデルよりも抽象度の高いモデルに基づく第２のＨＤＬコードを用いて論理シミュレーションを行う工程と、を含む。
【００１１】
本発明の第３の視点に係るプログラムは、
複数のモジュールを有する論理回路に対する論理シミュレーションを行う処理と、
前記論理シミュレーションの結果から、前記複数のモジュールのそれぞれに対するコード・カバレッジ（コードの網羅率）を取得する処理と、
コード・カバレッジが所定の割合よりも低いモジュールに対して第１のＨＤＬコードを用いるとともに、それ以外のモジュールに対して該第１のＨＤＬコードに対するモデルよりも抽象度の高いモデルに基づく第２のＨＤＬコードを用いて論理シミュレーションを行う処理と、をコンピュータに実行させる。
【発明の効果】
【００１２】
本発明に係る論理回路検証装置、論理回路検証方法およびプログラムによると、論理シミュレーションに基づく論理回路の検証に要する時間を削減することができる。
【図面の簡単な説明】
【００１３】
【図１】実施形態に係る論理回路検証装置の構成を示すブロック図である。
【図２】実施形態に係る論理回路検証装置におけるモジュールおよびそのカバレッジを一例として示す図である。
【図３】実施形態に係る論理回路検証装置のカバレッジアクセラレータの動作を示すフローチャートである。
【図４】コンピュータのハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【００１４】
はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００１５】
図１を参照すると、本発明に係る論理回路検証装置は、複数のモジュールを有する論理回路に対する論理シミュレーションを行うとともに、該複数のモジュールのそれぞれに対するコード・カバレッジ（コードの網羅率）を取得する論理シミュレータ（１５）と、前記複数のモジュールのそれぞれに対するコード・カバレッジを参照し、コード・カバレッジが所定の割合よりも低いモジュールに対して第１のＨＤＬコードを用いるとともに、それ以外のモジュールに対して第１のＨＤＬコードに対するモデルよりも抽象度の高いモデルに基づく第２のＨＤＬコードを用いて論理シミュレーションを行うように、論理シミュレータ（１５）に指示するカバレッジアクセラレータ（１７）と、を備えている。ここで、所定の割合は、一例として１００％としてもよい。
【００１６】
また、カバレッジアクセラレータ（１７）は、複数のモジュールのうちのＲＴＬ回路が更新されたモジュールについては、コード・カバレッジに依らず、抽象度が相対的に高い第１のＨＤＬコードを用いて論理シミュレーションを行うように論理シミュレータ（１５）に指示することが好ましい。
【００１７】
本発明に係る論理回路検証装置によると、論理シミュレーションに基づく論理回路の検証に要する時間を削減することができる。
【００１８】
また、論理回路検証装置は、カバレッジを取得すべき項目の一覧を含むカバレッジリスト（１４）をさらに備え、論理検証に要するＴＡＴ（Ｔｕｒｎ  Ａｒｏｕｎｄ  Ｔｉｍｅ）の短縮を図るようにしてもよい。論理回路検証装置は、具体的には、以下の手順にしたがって論理回路の検証を行なうようにしてもよい。
【００１９】
工程１．カバレッジアクセラレータ（１７）は、カバレッジ集計結果（１６）を参照し、網羅率のカバーされたカバレッジ項目をカバレッジリスト（１４）において検証対象から外し、検証速度を向上させる。
【００２０】
工程２．また、カバレッジアクセラレータ（１７）は、カバレッジ集計結果（１６）を参照し、網羅率が１００％となったモジュール（すなわち、サブ論理回路）に対するＨＤＬコードを、より抽象度の高いモデルに基づくＨＤＬコードと差し替えてモデルを生成するように、モデル構築用設定ファイル（１１）に設定し、論理シミュレーションの速度を向上させる。ここでは、擬似モデルに基づくＨＤＬコードを「擬似モデルＨＤＬコード」といい、実モデルに基づくＨＤＬコードを「実モデルＨＤＬコード」という。
【００２１】
工程３．モデルの元となるＲＴＬ回路に変更が加わった場合には、そのＲＴＬ回路に関連するモジュールに対するカバレッジ項目は、工程１の結果として検証対象から外されていても、再度、カバレッジリスト（１４）に追加される。また、この場合には、工程２の結果として擬似モデルＨＤＬコードとされていても、再度、実モデルＨＤＬコードに組み替えられる。
【００２２】
工程４．カバレッジアクセラレータ（１７）は、以上の工程１〜工程３の処理を自動で行う。なお、検証対象から外された項目も、母数においては存在するものとして計上する。
【００２３】
工程５．以上の工程１ないし工程４までの手順を実装したカバレッジアクセラレータ（１７）を、シミュレーションのフローの中に組み込む。これによって、論理シミュレーションの速度を向上させることが可能となる。
【００２４】
（実施形態）
実施形態に係る論理回路検証装置について、図面を参照して説明する。図１は、本実施形態の論理回路検証装置の構成を示すブロック図である。図１を参照すると、論理回路検証装置は、モデル構築用設定ファイル１１、テストベクトル１２、シミュレーションコード１３、カバレッジリスト１４、論理シミュレータ１５、カバレッジ集計結果１６、および、カバレッジアクセラレータ１７を備えている。
【００２５】
モデル構築用設定ファイル１１には、シミュレーションコード１３を構築する際に、どのモジュールに対して簡易的な抽象度の高いモデル（擬似モデル）を使用するかが記載されている。一例として、モジュールＡに対して擬似モデルＨＤＬコードを使用し、モジュールＢに対して実モデルＨＤＬコードを使用するように、モデル構築用設定ファイル１１に設定されている場合を考える。この場合には、図２を参照すると、モジュールＡに対して擬似モデルＨＤＬコードを使用し、モジュールＢに対して実モデルＨＤＬコードを使用したシミュレーションコード１３が生成される。
【００２６】
テストベクトル１２は、このようにして生成されたシミュレーションコード１３を検証するためのデータである。
【００２７】
カバレッジリスト１４は、シミュレーション中に、各モジュールのどのカバレッジ項目に対するカバレッジを採取すべきかが記載されている。
【００２８】
論理シミュレータ１５は、テストベクトル１２、シミュレーションコード１３およびカバレッジリスト１４を使用して、論理シミュレーションを行い、シミュレーションの結果として、カバレッジ集計結果１６を出力する。
【００２９】
カバレッジアクセラレータ１７は、カバレッジ集計結果１６を使用して、モデル構築用設定ファイル１１およびカバレッジリスト１４を生成する。以下では、カバレッジアクセラレータ１７の動作について、図面を参照して説明する。図３は、カバレッジアクセラレータ１７がモデル構築用設定ファイル１１およびカバレッジリスト１４を生成する動作を示すフローチャートである。
【００３０】
論理回路がモジュールＡおよびモジュールＢを含み、モジュールＡに対するＲＴＬ回路およびモジュールＢに対するＲＴＬ回路が存在する場合には、カバレッジアクセラレータ１７は、これらのＲＴＬ回路に更新があったか否かを調べ、更新があったモジュールに対して（ステップＳ１のＹＥＳ）、シミュレーションコード１３を生成する際、実モデルＨＤＬコード（すなわち、相対的に抽象度の低いモデルに基づくＨＤＬコード）を使用するように、モデル構築用設定ファイル１１に設定する（ステップＳ２）。さらに、更新された部分をカバレッジ監視対象とするために、更新部分をカバレッジ項目としてカバレッジリスト１４に追加する（ステップＳ３）。
【００３１】
次に、カバレッジアクセラレータ１７は、各モジュールのカバレッジ集計結果１６を参照して、カバレッジが１００％であるモジュールに対して（ステップＳ４のＹＥＳ）、擬似モデルＨＤＬコード（すなわち、相対的に抽象度の高いモデルに基づくＨＤＬコード）を使用するようにモデル構築用設定ファイル１１に設定し（ステップＳ５）、当該モジュールに対するカバレッジ項目をカバレッジリスト１４から削除する（ステップＳ６）。
【００３２】
一方、カバレッジアクセラレータ１７は、対象モジュールのカバレッジが１００％でないモジュールに対して（ステップＳ４のＮＯ）、モジュール内のカバレッジ項目のうちのカバーされた項目をカバレッジリスト１４から削除する（ステップＳ７）。
【００３３】
本実施形態に係る論理検証装置によると、以下の効果がもたらされる。論理シミュレーションに使用するモデルの抽象度を上げることで、論理シミュレーションの速度を向上させ、ＴＡＴを短縮することができる。また、論理シミュレーション時に監視すべきカバレッジ対象を必要最小限とすることで、論理シミュレーション速度を向上させ、ＴＡＴを短縮することができる。
【００３４】
また、本実施形態の論理検証装置は、一例として、コンピュータを用いて実現することができる。図４は、論理回路検証装置を、コンピュータによって実現する場合におけるコンピュータのハードウェア構成を示すブロック図である。図４を参照すると、コンピュータ７０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）７１、メモリ７２、ハードディスク７３、入力装置７４、及び出力装置７５を備えている。
【００３５】
これらの各部は、バスラインに接続されていてもよい。入力装置７４は、マウス及びキーボードを含んでいてもよい。出力装置７５は、ディスプレイを有していてもよい。ハードディスク７３は、モデル構築用設定ファイル１１、テストベクトル１２、シミュレーションコード１３、カバレッジリスト１４およびカバレッジ集計結果１６を記憶するようにしてもよい。ＣＰＵ７１は、論理回路検証装置の論理シミュレータ１５およびカバレッジアクセラレータ１７における処理を実行する。
【００３６】
なお、上記の特許文献等の先行技術文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００３７】
１１    モデル構築用設定ファイル
１２    テストベクトル
１３    シミュレーションコード
１４    カバレッジリスト
１５    論理シミュレータ
１６    カバレッジ集計結果
１７    カバレッジアクセラレータ
７０  コンピュータ
７１  ＣＰＵ
７２  メモリ
７３  ハードディスク
７４  入力装置
７５  出力装置
【図１】
0005321624.tif 000002
【図２】
0005321624.tif 000003
【図３】
0005321624.tif 000004
【図４】
0005321624.tif 000005