説明

論理回路検証装置、論理回路検証方法およびプログラム

【課題】論理シミュレーションに基づく論理回路の検証に要する時間を削減すること。
【解決手段】論理回路検証装置は、複数のモジュールを有する論理回路に対する論理シミュレーションを行うとともに、該複数のモジュールのそれぞれに対するコード・カバレッジ(コードの網羅率)を取得する論理シミュレータと、複数のモジュールのそれぞれに対するコード・カバレッジを参照し、コード・カバレッジが所定の割合よりも低いモジュールに対して第1のHDLコードを用いるとともに、それ以外のモジュールに対して第1のHDLコードに対するモデルよりも抽象度の高いモデルに基づく第2のHDLコードを用いて論理シミュレーションを行うように、論理シミュレータに指示するカバレッジアクセラレータと、を備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、論理回路検証装置、論理回路検証方法およびプログラムに関し、特に、論理シミュレーションに基づいて論理回路の機能を検証する論理回路検証装置、論理回路検証方法およびプログラムに関する。
【背景技術】
【0002】
近年、半導体集積回路等の論理回路の設計において、HDL(Hardware Description Language)を用いた設計が行われる。すなわち、論理回路を表すRTL(Register Transfer Level)回路をHDLで記述し、得られたHDLコードを用いたシミュレーション(以下、「論理シミュレーション」という。)によって論理回路の動作を模擬することで、設計の検証が行われる。
【0003】
論理シミュレーションにおいて機能検証用のテストパターンを実行する際、検証対象論理のすべての機能が実行されることが望ましい。実行される機能の網羅性を確認するために、機能または記述が全体の何%実行されたかを表す指標として、コード・カバレッジが使用される。例えば、論理シミュレーションで用いたテストパターンが、検証対象回路に対するHDLコードをどれだけ網羅したかを計測することにより、コード・カバレッジを取得することができる。
【0004】
なお、特許文献1には、論理回路に対して抽象度の高いモデルを用いることで、コード・カバレッジの測定時間を短縮する技術が記載されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2009−069922号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
以下の分析は、本発明者によってなされたものである。
【0007】
カバレッジリスト、すなわち、論理シミュレーションにおいていずれのモジュールのコード・カバレッジを採取するかを設定するリストに含まれる検証項目の数が多くなるに従って、論理シミュレーションの実行に要する時間が長くなる。特許文献1に記載された技術のように、論理シミュレーションにおいて抽象度の高いモデル(以下、「擬似モデル」という。)を用いることで、実論理に基づくモデル(以下、「実モデル」という。)を用いた場合と比較してシミュレーションの速度を向上させることができる。しかしながら、カバレッジリストに含まれる検証項目を検証する際には、実モデルを使用する必要がある。
【0008】
そこで、論理シミュレーションに基づく論理回路の検証に要する時間を削減することが課題となる。本発明の目的は、かかる課題を解決する論理回路検証装置、論理回路検証方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0009】
本発明の第1の視点に係る論理回路検証装置は、
複数のモジュールを有する論理回路に対する論理シミュレーションを行うとともに、該複数のモジュールのそれぞれに対するコード・カバレッジ(コードの網羅率)を取得する論理シミュレータと、
前記複数のモジュールのそれぞれに対するコード・カバレッジを参照し、コード・カバレッジが所定の割合よりも低いモジュールに対して第1のHDLコードを用いるとともに、それ以外のモジュールに対して該第1のHDLコードに対するモデルよりも抽象度の高いモデルに基づく第2のHDLコードを用いて論理シミュレーションを行うように、前記論理シミュレータに指示するカバレッジアクセラレータと、を備えている。
【0010】
本発明の第2の視点に係る論理回路検証方法は、
複数のモジュールを有する論理回路に対する論理シミュレーションを行う工程と、
前記論理シミュレーションの結果から、前記複数のモジュールのそれぞれに対するコード・カバレッジ(コードの網羅率)を取得する工程と、
コード・カバレッジが所定の割合よりも低いモジュールに対して第1のHDLコードを用いるとともに、それ以外のモジュールに対して該第1のHDLコードに対するモデルよりも抽象度の高いモデルに基づく第2のHDLコードを用いて論理シミュレーションを行う工程と、を含む。
【0011】
本発明の第3の視点に係るプログラムは、
複数のモジュールを有する論理回路に対する論理シミュレーションを行う処理と、
前記論理シミュレーションの結果から、前記複数のモジュールのそれぞれに対するコード・カバレッジ(コードの網羅率)を取得する処理と、
コード・カバレッジが所定の割合よりも低いモジュールに対して第1のHDLコードを用いるとともに、それ以外のモジュールに対して該第1のHDLコードに対するモデルよりも抽象度の高いモデルに基づく第2のHDLコードを用いて論理シミュレーションを行う処理と、をコンピュータに実行させる。
【発明の効果】
【0012】
本発明に係る論理回路検証装置、論理回路検証方法およびプログラムによると、論理シミュレーションに基づく論理回路の検証に要する時間を削減することができる。
【図面の簡単な説明】
【0013】
【図1】実施形態に係る論理回路検証装置の構成を示すブロック図である。
【図2】実施形態に係る論理回路検証装置におけるモジュールおよびそのカバレッジを一例として示す図である。
【図3】実施形態に係る論理回路検証装置のカバレッジアクセラレータの動作を示すフローチャートである。
【図4】コンピュータのハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【0014】
はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【0015】
図1を参照すると、本発明に係る論理回路検証装置は、複数のモジュールを有する論理回路に対する論理シミュレーションを行うとともに、該複数のモジュールのそれぞれに対するコード・カバレッジ(コードの網羅率)を取得する論理シミュレータ(15)と、前記複数のモジュールのそれぞれに対するコード・カバレッジを参照し、コード・カバレッジが所定の割合よりも低いモジュールに対して第1のHDLコードを用いるとともに、それ以外のモジュールに対して第1のHDLコードに対するモデルよりも抽象度の高いモデルに基づく第2のHDLコードを用いて論理シミュレーションを行うように、論理シミュレータ(15)に指示するカバレッジアクセラレータ(17)と、を備えている。ここで、所定の割合は、一例として100%としてもよい。
【0016】
また、カバレッジアクセラレータ(17)は、複数のモジュールのうちのRTL回路が更新されたモジュールについては、コード・カバレッジに依らず、抽象度が相対的に高い第1のHDLコードを用いて論理シミュレーションを行うように論理シミュレータ(15)に指示することが好ましい。
【0017】
本発明に係る論理回路検証装置によると、論理シミュレーションに基づく論理回路の検証に要する時間を削減することができる。
【0018】
また、論理回路検証装置は、カバレッジを取得すべき項目の一覧を含むカバレッジリスト(14)をさらに備え、論理検証に要するTAT(Turn Around Time)の短縮を図るようにしてもよい。論理回路検証装置は、具体的には、以下の手順にしたがって論理回路の検証を行なうようにしてもよい。
【0019】
工程1.カバレッジアクセラレータ(17)は、カバレッジ集計結果(16)を参照し、網羅率のカバーされたカバレッジ項目をカバレッジリスト(14)において検証対象から外し、検証速度を向上させる。
【0020】
工程2.また、カバレッジアクセラレータ(17)は、カバレッジ集計結果(16)を参照し、網羅率が100%となったモジュール(すなわち、サブ論理回路)に対するHDLコードを、より抽象度の高いモデルに基づくHDLコードと差し替えてモデルを生成するように、モデル構築用設定ファイル(11)に設定し、論理シミュレーションの速度を向上させる。ここでは、擬似モデルに基づくHDLコードを「擬似モデルHDLコード」といい、実モデルに基づくHDLコードを「実モデルHDLコード」という。
【0021】
工程3.モデルの元となるRTL回路に変更が加わった場合には、そのRTL回路に関連するモジュールに対するカバレッジ項目は、工程1の結果として検証対象から外されていても、再度、カバレッジリスト(14)に追加される。また、この場合には、工程2の結果として擬似モデルHDLコードとされていても、再度、実モデルHDLコードに組み替えられる。
【0022】
工程4.カバレッジアクセラレータ(17)は、以上の工程1〜工程3の処理を自動で行う。なお、検証対象から外された項目も、母数においては存在するものとして計上する。
【0023】
工程5.以上の工程1ないし工程4までの手順を実装したカバレッジアクセラレータ(17)を、シミュレーションのフローの中に組み込む。これによって、論理シミュレーションの速度を向上させることが可能となる。
【0024】
(実施形態)
実施形態に係る論理回路検証装置について、図面を参照して説明する。図1は、本実施形態の論理回路検証装置の構成を示すブロック図である。図1を参照すると、論理回路検証装置は、モデル構築用設定ファイル11、テストベクトル12、シミュレーションコード13、カバレッジリスト14、論理シミュレータ15、カバレッジ集計結果16、および、カバレッジアクセラレータ17を備えている。
【0025】
モデル構築用設定ファイル11には、シミュレーションコード13を構築する際に、どのモジュールに対して簡易的な抽象度の高いモデル(擬似モデル)を使用するかが記載されている。一例として、モジュールAに対して擬似モデルHDLコードを使用し、モジュールBに対して実モデルHDLコードを使用するように、モデル構築用設定ファイル11に設定されている場合を考える。この場合には、図2を参照すると、モジュールAに対して擬似モデルHDLコードを使用し、モジュールBに対して実モデルHDLコードを使用したシミュレーションコード13が生成される。
【0026】
テストベクトル12は、このようにして生成されたシミュレーションコード13を検証するためのデータである。
【0027】
カバレッジリスト14は、シミュレーション中に、各モジュールのどのカバレッジ項目に対するカバレッジを採取すべきかが記載されている。
【0028】
論理シミュレータ15は、テストベクトル12、シミュレーションコード13およびカバレッジリスト14を使用して、論理シミュレーションを行い、シミュレーションの結果として、カバレッジ集計結果16を出力する。
【0029】
カバレッジアクセラレータ17は、カバレッジ集計結果16を使用して、モデル構築用設定ファイル11およびカバレッジリスト14を生成する。以下では、カバレッジアクセラレータ17の動作について、図面を参照して説明する。図3は、カバレッジアクセラレータ17がモデル構築用設定ファイル11およびカバレッジリスト14を生成する動作を示すフローチャートである。
【0030】
論理回路がモジュールAおよびモジュールBを含み、モジュールAに対するRTL回路およびモジュールBに対するRTL回路が存在する場合には、カバレッジアクセラレータ17は、これらのRTL回路に更新があったか否かを調べ、更新があったモジュールに対して(ステップS1のYES)、シミュレーションコード13を生成する際、実モデルHDLコード(すなわち、相対的に抽象度の低いモデルに基づくHDLコード)を使用するように、モデル構築用設定ファイル11に設定する(ステップS2)。さらに、更新された部分をカバレッジ監視対象とするために、更新部分をカバレッジ項目としてカバレッジリスト14に追加する(ステップS3)。
【0031】
次に、カバレッジアクセラレータ17は、各モジュールのカバレッジ集計結果16を参照して、カバレッジが100%であるモジュールに対して(ステップS4のYES)、擬似モデルHDLコード(すなわち、相対的に抽象度の高いモデルに基づくHDLコード)を使用するようにモデル構築用設定ファイル11に設定し(ステップS5)、当該モジュールに対するカバレッジ項目をカバレッジリスト14から削除する(ステップS6)。
【0032】
一方、カバレッジアクセラレータ17は、対象モジュールのカバレッジが100%でないモジュールに対して(ステップS4のNO)、モジュール内のカバレッジ項目のうちのカバーされた項目をカバレッジリスト14から削除する(ステップS7)。
【0033】
本実施形態に係る論理検証装置によると、以下の効果がもたらされる。論理シミュレーションに使用するモデルの抽象度を上げることで、論理シミュレーションの速度を向上させ、TATを短縮することができる。また、論理シミュレーション時に監視すべきカバレッジ対象を必要最小限とすることで、論理シミュレーション速度を向上させ、TATを短縮することができる。
【0034】
また、本実施形態の論理検証装置は、一例として、コンピュータを用いて実現することができる。図4は、論理回路検証装置を、コンピュータによって実現する場合におけるコンピュータのハードウェア構成を示すブロック図である。図4を参照すると、コンピュータ70は、CPU(Central Processing Unit)71、メモリ72、ハードディスク73、入力装置74、及び出力装置75を備えている。
【0035】
これらの各部は、バスラインに接続されていてもよい。入力装置74は、マウス及びキーボードを含んでいてもよい。出力装置75は、ディスプレイを有していてもよい。ハードディスク73は、モデル構築用設定ファイル11、テストベクトル12、シミュレーションコード13、カバレッジリスト14およびカバレッジ集計結果16を記憶するようにしてもよい。CPU71は、論理回路検証装置の論理シミュレータ15およびカバレッジアクセラレータ17における処理を実行する。
【0036】
なお、上記の特許文献等の先行技術文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【0037】
11 モデル構築用設定ファイル
12 テストベクトル
13 シミュレーションコード
14 カバレッジリスト
15 論理シミュレータ
16 カバレッジ集計結果
17 カバレッジアクセラレータ
70 コンピュータ
71 CPU
72 メモリ
73 ハードディスク
74 入力装置
75 出力装置

【特許請求の範囲】
【請求項1】
複数のモジュールを有する論理回路に対する論理シミュレーションを行うとともに、該複数のモジュールのそれぞれに対するコード・カバレッジ(コードの網羅率)を取得する論理シミュレータと、
前記複数のモジュールのそれぞれに対するコード・カバレッジを参照し、コード・カバレッジが所定の割合よりも低いモジュールに対して第1のHDL(Hardware Description Language)コードを用いるとともに、それ以外のモジュールに対して該第1のHDLコードに対するモデルよりも抽象度の高いモデルに基づく第2のHDLコードを用いて論理シミュレーションを行うように、前記論理シミュレータに指示するカバレッジアクセラレータと、を備えていることを特徴とする論理回路検証装置。
【請求項2】
前記カバレッジアクセラレータは、前記複数のモジュールのうちのRTL(Register Transfer Level)回路が更新されたモジュールについては、コード・カバレッジに依らず、前記第1のHDLコードを用いて論理シミュレーションを行うように前記論理シミュレータに指示することを特徴とする、請求項1に記載の論理回路検証装置。
【請求項3】
前記所定の割合は100%であることを特徴とする、請求項1または2に記載の論理回路検証装置。
【請求項4】
複数のモジュールを有する論理回路に対する論理シミュレーションを行う工程と、
前記論理シミュレーションの結果から、前記複数のモジュールのそれぞれに対するコード・カバレッジ(コードの網羅率)を取得する工程と、
コード・カバレッジが所定の割合よりも低いモジュールに対して第1のHDL(Hardware Description Language)コードを用いるとともに、それ以外のモジュールに対して該第1のHDLコードに対するモデルよりも抽象度の高いモデルに基づく第2のHDLコードを用いて論理シミュレーションを行う工程と、を含むことを特徴とする論理回路検証方法。
【請求項5】
前記複数のモジュールのうちRTL(Register Transfer Level)回路が更新されたモジュールが存在するか否かを判定する工程と、
RTL回路が更新されたモジュールについては、コード・カバレッジに依らず、前記第1のHDLコードを用いて論理シミュレーションを行う工程と、を含むことを特徴とする、請求項4に記載の論理回路検証方法。
【請求項6】
複数のモジュールを有する論理回路に対する論理シミュレーションを行う処理と、
前記論理シミュレーションの結果から、前記複数のモジュールのそれぞれに対するコード・カバレッジ(コード網羅率)を取得する処理と、
コード・カバレッジが所定の割合よりも低いモジュールに対して第1のHDL(Hardware Description Language)コードを用いるとともに、それ以外のモジュールに対して該第1のHDLコードに対するモデルよりも抽象度の高いモデルに基づく第2のHDLコードを用いて論理シミュレーションを行う処理と、をコンピュータに実行させることを特徴とするプログラム。
【請求項7】
前記複数のモジュールのうちRTL(Register Transfer Level)回路が更新されたモジュールが存在するか否かを判定する処理と、
RTL回路が更新されたモジュールについては、コード・カバレッジに依らず、前記第1のHDLコードを用いて論理シミュレーションを行う処理と、をコンピュータに実行させることを特徴とする、請求項6に記載のプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−190374(P2012−190374A)
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2011−54985(P2011−54985)
【出願日】平成23年3月14日(2011.3.14)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】