(57)【要約】【課題】十分な検証を行うためのカバレッジを算出する。【解決手段】入力部１１により、検証する論理回路の有効なテストパターンを表現したプロパティを取り込み、有効テストパターン算出部１２でプロパティをもとに有効なテストパターンを算出し、入力部１３で検証者から入力され実行されたテストパターンを取り込み、カバレッジ率算出部１４で有効なテストパターンと一致するテストパターンの割合からカバレッジ率を算出し、出力部１５で算出されたカバレッジ率を出力する。【選択図】　　　　図１
2004070457.tif 000002
【特許請求の範囲】
【請求項１】
論理回路シミュレーションのカバレッジを算出するシミュレーション用カバレッジ算出装置において、
検証する前記論理回路の有効なテストパターンを表現したプロパティを取り込む第１の入力部と、
前記プロパティをもとに、前記有効なテストパターンを算出する有効テストパターン算出部と、
検証者から入力され実行されたテストパターンを取り込む第２の入力部と、
前記有効なテストパターンと一致する前記テストパターンの割合からカバレッジ率を算出するカバレッジ率算出部と、
算出された前記カバレッジ率を出力する出力部と、
を有することを特徴とするシミュレーション用カバレッジ算出装置。
【請求項２】
前記プロパティは、信号の組み合わせまたは時刻情報を用いて前記有効なテストパターンを表現することを特徴とする請求項１記載のシミュレーション用カバレッジ算出装置。
【請求項３】
コンピュータで論理回路シミュレーションのカバレッジを算出するシミュレーション用カバレッジ算出方法において、
検証する前記論理回路の有効なテストパターンを表現したプロパティを取り込み、
前記プロパティをもとに、前記有効なテストパターンを算出し、
検証者より入力され実行されたテストパターンを取り込み、
前記有効なテストパターンと一致する前記テストパターンの割合からカバレッジ率を算出することを特徴とするシミュレーション用カバレッジ算出方法。
【請求項４】
前記プロパティは、信号の組み合わせまたは時刻情報を用いて前記有効なテストパターンを表現することを特徴とする請求項３記載のシミュレーション用カバレッジ算出方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、シミュレーション用のカバレッジを算出するシミュレーション用カバレッジ算出装置及びシミュレーション用カバレッジ算出方法に関し、特に、コンピュータで論理回路シミュレーション用のカバレッジを算出するシミュレーション用カバレッジ算出装置及び、シミュレーション用カバレッジ算出方法に関する。
【０００２】
【従来の技術】
近年のシステムＬＳＩ（Ｌａｒｇｅ　Ｓｃａｌｅ　Ｉｎｔｅｇｒａｔｅｄ　ｃｉｒｃｕｉｔ）は、高機能かつ論理規模も大きく、その設計検証もますます長大化している。設計検証において、どこまで検証すれば十分かと言う指標として、カバレッジが用いられている。
【０００３】
基本的なカバレッジ算出方法は、ハードウェア記述言語（Ｈａｒｄｗａｒｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ：以下ＨＤＬと呼ぶ）の全記述行のうち、シミュレーションで何行実行されたかで決まる。このカバレッジをラインカバレッジと呼ぶ。
【０００４】
【発明が解決しようとする課題】
しかし、従来の検証方法であるラインカバレッジでは、いつの時点でその行が実行されたかという時間的な概念がないために、たとえラインカバレッジ率が１００％であったとしても有効な検証をしたとは限らないという問題があった。
【０００５】
以下、この問題について具体的に説明する。
図７は、ＨＤＬ記述の例である。
また、図８は、図７で示したＨＤＬ記述による回路図である。
【０００６】
ここで、ＨＤＬ記述のブロックＡが図８の回路５０、ブロックＢが回路５１、ブロックＣが回路５２に対応し、それぞれ例えば、フリップフロップから構成される。
【０００７】
以下、図８の回路を検証する場合を例にして説明する。
ここで、Ｐ、Ｑ、ＥＮ、ＯＵＴ、ａ、ｂはいずれも信号名である。
ブロックＡ、Ｂ、Ｃはいずれも、「ａｌｗａｙｓ　＠（ｐｏｓｅｄｇｅ　ＣＬＫ）　ｂｅｇｉｎ」の記述があり、図示しないクロック信号の立ち上がりで動作する。ブロックＡで記載された回路５０は、Ｐ＝１であればａ＝ａ１を出力し、そうでなければａ＝ａ２を出力する。ブロックＢで記載された回路５１は、Ｑ＝１であればｂ＝ｂ１を出力し、そうでなければｂ＝ｂ２を出力する。またブロックＣで記載された回路５２は、ＥＮ＝１であればＯＵＴ＝ａ＆ｂを出力し、そうでなければＯＵＴ＝０を出力する。
【０００８】
図９は、図８で示した論理回路の動作を検証する上での有効なテストパターンである。
図８で示した論理回路の場合、有効なテストパターンは４つある。パターン▲１▼、パターン▲２▼、パターン▲３▼、パターン▲４▼である。ここで、「−」は０でも１でもよいことを示す。
【０００９】
ここで、ユーザにより、以下のようなテストパターンが入力された場合について説明する。
図１０は、ユーザにより入力されたテストパターンの例を示す。
【００１０】
ユーザにより、テストパターンであるパターンα、βが入力されて実行された場合、パターンαは、図７における行、（１）、（２）、（３）、（４）、（６）をカバーし、パターンβは、（１）、（２）、（３）、（４）、（５）、（６）をカバーし、全てのラインがカバーされることとなる。その結果、図９における有効なテストパターンに相当するものが、パターンβのみにも関わらず、ラインカバレッジ率は１００％となってしまい、十分な検証を行ったとはいえない。
【００１１】
本発明はこのような点に鑑みてなされたものであり、十分に検証を行うことが可能なカバレッジを算出するシミュレーション用カバレッジ算出装置を提供することを目的とする。
【００１２】
また、本発明の他の目的は、十分に検証を行うことが可能なカバレッジを算出するシミュレーション用カバレッジ算出方法を提供することである。
【００１３】
【課題を解決するための手段】
本発明では上記課題を解決するために、図１で示すようなシミュレーション用カバレッジ算出装置１０において、検証する論理回路の有効なテストパターンを表現したプロパティを取り込む入力部１１と、プロパティをもとに、有効なテストパターンを算出する有効テストパターン算出部１２と、検証者から入力され実行されたテストパターンを取り込む入力部１３と、有効なテストパターンと一致するテストパターンの割合からカバレッジ率を算出するカバレッジ率算出部１４と、算出されたカバレッジ率を出力する出力部１５と、を有することを特徴とするシミュレーション用カバレッジ算出装置が提供される。
【００１４】
上記構成によれば、カバレッジ率は、検証する論理回路の有効なテストパターンを表現したプロパティをもとに有効テストパターン算出部１２で算出された有効なテストパターンと一致する、検証者により入力されたテストパターンの割合から、カバレッジ率算出部１４で算出され、出力部１５で出力される。
【００１５】
【発明の実施の形態】
以下本発明の実施の形態を図面を参照して説明する。
図１は、本発明の実施の形態のシミュレーション用カバレッジ算出装置の機能ブロック図である。
【００１６】
シミュレーション用カバレッジ算出装置１０は、検証する論理回路の有効なテストパターンを表現したプロパティを取り込む入力部１１と、プロパティをもとに、有効なテストパターンを算出する有効テストパターン算出部１２と、検証者（以下ユーザと呼ぶ）から入力され実行されたテストパターンを取り込む入力部１３と、有効なテストパターンと一致するテストパターンの割合からカバレッジ率を算出するカバレッジ率算出部１４と、算出された前記カバレッジ率を出力する出力部１５と、から構成される。
【００１７】
入力部１１は、例えば、検証する論理回路の設計者から提供される、その論理回路の有効なテストパターンを表現したプロパティを取り込む。
有効なテストパターンとは、論理回路の全動作パターンのうち、これだけ行えば検証は十分である、というテストパターンである。詳細は後述するが、通常、この有効なテストパターンは、論理回路を設計した人間である設計者などは知ることができるが、第３者である論理回路を検証するユーザなどが知ることは困難である。そこで、例えば設計者は、有効なテストパターンを表現したものをプロパティとして提供する。
【００１８】
このようなプロパティ提供者は、例えば、図８で示したような回路の場合、有効なテストパターンは前述した図９のようになり、これを式で表現する。式は以下のように表現される。
【００１９】
【数１】
［（Ｐ，Ｑ）］［ＥＮ＝＝１］…（１）
上式において、（Ｐ，Ｑ）は、Ｐ、Ｑの組み合わせを意味する。ＥＮ＝＝１は、ＥＮが１であることを意味する。［］は、１サイクルごとに区切っていることを意味する。すなわち、前半の［（Ｐ，Ｑ）］は時刻ｔ、後半の［ＥＮ＝＝１］は時刻ｔ＋１を示す。また、［］内に表記されない信号は、信号値が何でもよいことを意味する。
【００２０】
有効テストパターン算出部１２は、論理シミュレーションを行う論理回路に対応したプロパティをもとに論理回路の有効なテストパターンを算出する。
入力部１３は、論理回路をシミュレーションするユーザにより入力され実行されたテストパターンを取り込む。
【００２１】
カバレッジ率算出部１４は、有効テストパターン算出部１２で算出された有効なテストパターンに、ユーザにより入力され実行されたテストパターンがどれだけ一致するかを検出して、有効なテストパターンにおけるテストパターンの割合からカバレッジ率を算出する。
【００２２】
出力部１５は、カバレッジ率算出部１４で算出されたカバレッジ率を表示装置２０などに出力する機能を持つ。
以下、シミュレーション用カバレッジ算出装置１０の動作を説明する。
【００２３】
なお、以下、図８で示した回路について、カバレッジを算出する場合を例にして説明する。
例えば、設計者などのプロパティ提供者より、入力部１１に図８で示した論理回路についての有効なテストパターンを表現した前述の（１）式で表されるプロパティが取り込まれると、有効テストパターン算出部１２は、プロパティをもとに、図９で示したような、有効なテストパターンを算出する。
【００２４】
一方、図８の論理回路をシミュレーションするユーザにより入力され実行されたテストパターンが、入力部１３に取り込まれると、カバレッジ率算出部１４に入力されて、カバレッジ率が算出される。カバレッジの算出は、図９で示した、有効なテストパターンに、テストパターンがどれだけ一致するかを検出して、有効なテストパターンにおけるテストパターンの割合からカバレッジ率を算出する。
【００２５】
例えば、図１０で示した、テストパターンが入力された場合、従来のラインカバレッジでは、カバレッジ率１００％を示したが、本発明の実施の形態のシミュレーション用カバレッジ算出装置１０により算出されるカバレッジは、パターンβのみが、有効なテストパターンであるパターン▲４▼に対応することから、カバレッジ率２５％となる。
【００２６】
この算出結果を出力部１５では、表示装置２０に出力する。
ここで、表示される結果を見て、ユーザは有効なテストパターンが足りないことを認識し、テストパターンの追加を行う。
【００２７】
図２は、ユーザにより入力されるテストパターンの例である。
これは図１０で示したパターンα、βに、パターンγ、δ、ε、を追加したものである。この場合、パターンβは図９の有効なテストパターンであるパターン▲４▼に対応し、パターンγはパターン▲１▼に対応し、パターンδはパターン▲２▼に対応し、テストパターンεはパターン▲３▼に対応する。よって、カバレッジ率算出部１４でカバレッジ率１００％と算出され出力部１５により表示装置２０に、カバレッジ率が１００％となり検証が十分に行われたことを表示する。
【００２８】
このように、入力部１１で入力された論理回路の有効なテストパターンを信号の組み合わせと時刻情報とを用いて表現したプロパティをもとに、有効テストパターン算出部１２により検証する論理回路の有効なテストパターンを算出し、カバレッジ率算出部１４により有効なテストパターンと一致するユーザにより入力され実行されたテストパターンの割合からカバレッジ率を算出するようにしたので、十分な検証を行うことができる。
【００２９】
以下、シミュレーション用カバレッジ算出装置１０によるシミュレーション用カバレッジ算出方法をフローチャートで説明する。
図３は、シミュレーション用カバレッジ算出方法を示すフローチャートである。
【００３０】
Ｓ１：プロパティの取り込み
検証する論理回路の有効なテストパターンを表現したプロパティを入力部１１で取り込む。
【００３１】
Ｓ２：有効なテストパターンの算出
取り込んだプロパティをもとに、有効なテストパターンを有効テストパターン算出部１２で算出する。
【００３２】
Ｓ３：テストパターンの取り込み
ユーザにより入力され実行されたテストパターンを入力部１３で取り込む。
Ｓ４：カバレッジ率の算出
有効なテストパターンと一致するテストパターンの割合からカバレッジ率算出部１４でカバレッジ率を算出する
このように、論理回路の有効なテストパターンを信号の組み合わせと時刻情報とを用いて、例えば、（１）式のように表現したプロパティを入力し、このプロパティをもとに検証する論理回路の有効なテストパターンを算出し、有効なテストパターンと一致するユーザにより入力され実行されたテストパターンの割合からカバレッジ率を算出するようにしたので、十分な検証を行うことができる。
【００３３】
以下、本発明の実施の形態の詳細を説明する。
図４はシミュレーション用カバレッジ算出装置のハードウェア構成図である。シミュレーション用カバレッジ算出装置３０は、例えばＰＣであり、装置全体を制御するＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）３１と、ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）３２、ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）３３、などのメモリ類と、ＨＤＤ（Ｈａｒｄ　Ｄｉｓｋ　Ｄｒｉｖｅ）３４と、入力インターフェース３５と、グラフィックインターフェース３６がバス３７に接続されている構成となる。
【００３４】
ＣＰＵ３１は、装置全体を制御する。また、ＨＤＤ３４やＲＯＭ３２に格納されているプログラムを実行する機能を持ち、図１の有効テストパターン算出部１２及びカバレッジ率算出部１４に対応する処理を行う。
【００３５】
ＲＯＭ３２は、ＨＤＤ３４の起動に必要なファームウェアなどを格納する。
ＲＡＭ３３は、ＣＰＵ３１に実行させるＯＳ（Ｏｐｅｒａｔｉｏｎ　Ｓｙｓｔｅｍ）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
【００３６】
ＨＤＤ３４は、ＯＳや論理回路のシミュレーション用のプログラムや、本発明のシミュレーション用カバレッジ算出方法を行うためのプログラム及び、例えば、設計者などから提供される、論理回路の有効なテストパターンを表現したプロパティなどが格納される。
【００３７】
入力インターフェース３５には、マウス３５ａとキーボード３５ｂとが接続されている。入力インターフェース３５は、マウス３５ａやキーボード３５ｂから送られてくる信号を、バス３７を介してＣＰＵ３１に送信する。これは、図１のシミュレーション用カバレッジ算出装置１０の入力部１１、１３に対応する。
【００３８】
グラフィックインターフェース３６には、モニタ３６ａが接続されている。グラフィックインターフェース３６は、ＣＰＵ３１からの命令に従って、画像をモニタ３６ａの画面に表示させる。これは、図１の出力部１５に対応している。
【００３９】
以下、シミュレーション用カバレッジ算出装置３０の動作を説明する。
図５は、検証する論理回路の例である。
図８で示した論理回路が２つあり、それぞれの出力であるＯＵＴ１、ＯＵＴ２が回路４６に入力される構成である。
【００４０】
これらの回路は、例えば、フリップフロップなどから構成される。
ここで、Ｐ、Ｑ、Ｒ、Ｓ、ＥＮ１、ＥＮ２、ＯＵＴ１、ＯＵＴ２、ＯＵＴ、ａ、ｂ、ｃ、ｄはいずれも信号名である。
【００４１】
ＨＤＬ記述については省略するが、回路４０はＰ＝１の場合にａ＝ａ１を出力し、Ｐ＝０の場合にａ＝ａ２を出力する。回路４１はＱ＝１の場合にｂ＝ｂ１を出力し、Ｑ＝０の場合にｂ＝ｂ２を出力する。回路４２はＲ＝１の場合にｃ＝ｃ１を出力し、Ｒ＝０の場合にｃ＝ｃ２を出力する。回路４３はＳ＝１の場合にｄ＝ｄ１を出力し、Ｓ＝０の場合にｄ＝ｄ２を出力する。回路４４はＥＮ１＝１の場合にＯＵＴ１＝ａ＆ｂを出力し、ＥＮ１＝０の場合にＯＵＴ１＝０を出力する。回路４５はＥＮ２＝１の場合にＯＵＴ２＝ｃ＆ｄを出力し、ＥＮ２＝０の場合にＯＵＴ２＝０を出力する。回路４６は、ＯＵＴ＝ＯＵＴ１＆ＯＵＴ２を出力する。これらの回路は、図示しないクロック信号を入力し、その立ち上がりで動作する。
【００４２】
図６は、図５で示した論理回路の有効なテストパターンであり、（ａ）がＰ、Ｑ、Ｒ、Ｓのパターンであり、（ｂ）がＥＮ１、ＥＮ２、（ｃ）がＯＵＴ１、ＯＵＴ２のパターンである。
【００４３】
ここで、「−」は０でも１でもよいことを示す。
図６で示すような有効なテストパターンは、通常、論理回路を設計した設計者によって整理される。その論理回路の設計者以外の第３者では、検証の際、入力以外の中間信号は、どのようなものがあるかなどを知ることは困難だからである。例えば、図５の論理回路において、入力をＰ、Ｑ、Ｒ、Ｓ、ＥＮ１、ＥＮ２としたとき、中間信号のＯＵＴ１、ＯＵＴ２の存在は分からないことが多く、中間信号を含めた有効なテストパターンの作成は困難だからである。一方で論理回路の設計者は、どのような信号があるか熟知していることから、有効なテストパターンを作成する役目を担うことが望ましい。そこで、以下有効なテストパターンを論理回路の設計者が作成するとして説明する。
【００４４】
設計者は、整理した有効なテストパターンをもとに、プロパティを作成する。図６で示した有効なテストパターンの場合、プロパティは、以下の式のようになる。
【００４５】
【数２】
［（Ｐ，Ｑ，Ｒ，Ｓ）］［ＥＮ１＆ＥＮ２］［ＯＵＴ１｜ＯＵＴ２］…（２）
上式において、始めの［］内が時刻ｔを示し、その次の［］が時刻ｔ＋１、最後の［］が時刻ｔ＋２を示す。［（Ｐ，Ｑ，Ｒ，Ｓ）］は、Ｐ、Ｑ、Ｒ、Ｓの全ての組み合わせを示し図６（ａ）で示した通りである。また、［ＥＮ１＆ＥＮ２］は、ＥＮ１とＥＮ２の論理積を示し、［ＯＵＴ１｜ＯＵＴ２］はＯＵＴ１とＯＵＴ２の論理和を示し、それぞれ、図６（ｂ）、図６（ｃ）で示した有効なテストパターンを表現したものである。なお、［］内に表記されない信号は、信号値が何でもよいことを意味する。設計者は、例えば、（２）式をキーボード３５ｂまたはマウス３５ａなどによって、入力インターフェース３５を介してシミュレーション用カバレッジ算出装置３０に入力する。入力されたプロパティはＣＰＵ３１の制御のもと、ＨＤＤ３４に入力されて格納される。
【００４６】
なお、プロパティは、ＣＤ―ＲＯＭ（Ｃｏｍｐａｃｔ　Ｄｉｓｃ　Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）や、ＤＶＤ−ＲＯＭ（ＤＶＤ　Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）などの記録媒体、または、インターネットなどのネットワークを介して、シミュレーション用カバレッジ算出装置３０に入力するようにしても良い。
【００４７】
論理回路シミュレーションの際、ユーザは、マウス３５ａまたはキーボード３５ｂで、シミュレーションを開始したい旨の命令を入力する。入力インターフェース３５は命令を受信し、ＣＰＵ３１の制御のもと、例えば、ＨＤＤ３４に格納されている論理回路シミュレータを起動させる。起動された論理回路シミュレータは、ＣＰＵ３１の制御のもとグラフィックインターフェース３６で処理され、モニタ３６ａに出力され、さらに、例えば、図５で示したようなシミュレーション用の論理回路が表示される。ユーザは、この論理回路に、いくつかのテストパターンをマウス３５ａやキーボード３５ｂなどで入力し、ＣＰＵ３１の制御のもと動作をシミュレートする。ユーザはシミュレーション結果をモニタ３６ａ上で確認し、バグがないかなどを検証する。
【００４８】
さらに、以下のような方法でシミュレーションのカバレッジ率を算出する。
図５で示した論理回路を検証する場合、ＣＰＵ３１の制御のもと、ＨＤＤ３４に格納された図５の論理回路の有効なテストパターンが表現されたプロパティ（すなわち（２）式）を取り出し、論理回路の有効なテストパターンを算出する。これにより、図６で示したような、有効なテストパターンが得られる。これを例えば、一時、ＲＡＭ３３に格納する。ここで、ユーザにより入力され実行されたテストパターンを、ＣＰＵ３１の制御のもと有効なテストパターンと比較し、有効なテストパターンと一致するテストパターンの割合からカバレッジ率を算出する。
【００４９】
より詳細に説明すると、ユーザが論理回路にテスト用のある信号を入力すると、例えばＣＰＵ３１は、ユーザが知ることが困難な中間信号の値を含めた各部の信号の状態を監視し、その中間信号の値を含めたテストパターンと、有効なテストパターンとを比較してカバレッジ率を算出する。
【００５０】
算出されたカバレッジ率は、グラフィックインターフェース３６で処理され、モニタ３６ａに出力される。ユーザは、モニタ３６ａに表示されたカバレッジ率を参照して、カバレッジ率が低い場合は、さらにテストパターンを追加する。ユーザにより入力されたテストパターンが、有効なテストパターンと一致した場合に、カバレッジ率は１００％となり、検証を終了する。
【００５１】
このように、論理回路シミュレーションの前に、前もって検証する論理回路の有効なテストパターンを、（２）式のように信号の組み合わせ及び時刻情報を用いて表現したプロパティを入力し、ユーザから入力されたテストパターンがそのプロパティをもとに算出された有効なテストパターンと一致する割合からカバレッジ率を算出するようにしたので、十分な検証を行うことができる。
【００５２】
【発明の効果】
以上説明したように本発明では、カバレッジ率を、検証する論理回路の有効なテストパターンを信号の組み合わせと時刻情報を用いて表現したプロパティをもとに、有効なテストパターンと一致するテストパターンとの割合から算出するようにしたので、十分な検証を行うことができる。
【図面の簡単な説明】
【図１】本発明の実施の形態のシミュレーション用カバレッジ算出装置の機能ブロック図である。
【図２】ユーザにより入力されたテストパターンの例を示す。
【図３】シミュレーション用カバレッジ算出方法を示すフローチャートである。
【図４】シミュレーション用カバレッジ算出装置３０のハードウェア構成図である。
【図５】検証する論理回路の例である。
【図６】図５で示した論理回路の有効なテストパターンであり、（ａ）がＰ、Ｑ、Ｒ、Ｓのパターンであり、（ｂ）がＥＮ１、ＥＮ２、（ｃ）がＯＵＴ１、ＯＵＴ２のパターンである。
【図７】ＨＤＬ記述の例である。
【図８】図７で示したＨＤＬ記述による回路図である。
【図９】図８で示した論理回路の動作を検証する上での有効なテストパターンである。
【図１０】ユーザにより入力されたテストパターンの例を示す。
【符号の説明】
１０　シミュレーション用カバレッジ算出装置
１１　入力部
１２　有効テストパターン算出部
１３　入力部
１４　カバレッジ率算出部
１５　出力部
２０　表示装置
【図１】
2004070457.tif 000003
【図２】
2004070457.tif 000004
【図３】
2004070457.tif 000005
【図４】
2004070457.tif 000006
【図５】
2004070457.tif 000007
【図６】
2004070457.tif 000008
【図７】
2004070457.tif 000009
【図８】
2004070457.tif 000010
【図９】
2004070457.tif 000011
【図１０】
2004070457.tif 000012