(57)【要約】【課題】論理回路の検証シミュレーションを継続しながらテストパターンを修正することで論理検証を効率化し検証期間を短縮することを目的とする。【解決手段】少なくとも１つの単一の条件から構成される事象の発生条件を定義した事象テーブル１２１と、単一の条件の発生頻度を上げる充足方法情報を記述した条件発生テーブル１２０と、事象が発生した発生回数を記憶するカバレッジ情報１１０と、発生回数が少ない事象の発生条件を構成する単一の条件を事象テーブル１２１から抽出し、抽出した単一の条件の充足方法情報を発生テーブル１２０から抽出し、テストパターン１０３を修正するための制御変更指示情報を生成してパターン生成制御部１０２に出力するパターン生成制御変更指示部１０８とを備える。【選択図】図１
2014182509.tif 000002
【特許請求の範囲】
【請求項１】
論理回路にテストパターンを入力することにより、前記論理回路においてシミュレーションを実行し、前記論理回路を検証する論理回路装置において、
前記テストパターンを生成するテストパターン生成部と、
前記シミュレーションの実行中に発生が予想される事象と、前記事象の発生条件であって、少なくとも１つの単位条件から構成される発生条件とが対応付けられた事象定義情報を記憶する事象定義情報記憶部と、
前記単位条件と、前記単位条件が充足する頻度を上げるための方法である充足方法情報とが対応付けられた単位条件充足情報を記憶する単位条件充足情報記憶部と、
前記シミュレーションの実行中に、前記事象が発生した発生回数を計数する発生回数計数部と、
前記発生回数計数部により計数された前記発生回数が予め記憶されている閾値よりも少ない場合に、前記事象定義情報記憶部により記憶されている前記事象定義情報に基づいて、前記事象の前記発生条件を構成する前記単位条件を抽出する単位条件抽出部と、
前記単位条件抽出部により抽出された前記単位条件に基づいて、前記単位条件充足情報記憶部により記憶された前記単位条件充足情報を検索し、前記充足方法情報を抽出する方法抽出部と、
前記方法抽出部により抽出された前記充足方法情報に基づいて、前記テストパターンを修正するための修正情報を生成し、生成した前記修正情報を前記テストパターン生成部に出力する修正情報生成部と
を備え、
前記テストパターン生成部は、
前記修正情報生成部より入力した前記修正情報に基づいて、前記テストパターンを修正することを特徴とする論理検証装置。
【請求項２】
前記単位条件充足情報記憶部は、さらに、
前記シミュレーションの実行中に前記単位条件が充足した充足回数を前記単位条件充足情報に記憶し、
前記修正情報生成部は、
前記方法抽出部により抽出された前記充足方法情報の中に、競合する少なくとも２つの充足方法情報がある場合には、前記単位条件充足情報記憶部により記憶された前記単位条件充足情報に基づいて、前記少なくとも２つの充足方法情報のうち、前記単位条件の充足回数が少ない充足方法情報を抽出し、抽出した前記充足回数が少ない充足方法情報に基づいて前記修正情報を生成する
ことを特徴とする請求項１に記載の論理検証装置。
【請求項３】
論理回路にテストパターンを入力することにより、前記論理回路においてシミュレーションを実行し、前記論理回路を検証する論理回路装置であって、前記シミュレーションの実行中に発生が予想される事象と、前記事象の発生条件であって、少なくとも１つの単位条件から構成される発生条件とが対応付けられた事象定義情報を記憶する事象定義情報記憶部と、前記単位条件と、前記単位条件が充足する頻度を上げるための方法である充足方法情報とが対応付けられた単位条件充足情報を記憶する単位条件充足情報記憶部とを備える論理検証装置の論理検証方法において、
テストパターン生成部が、前記テストパターンを生成し、
発生回数計数部が、前記シミュレーションの実行中に、前記事象が発生した発生回数を計数し、
単位条件抽出部が、前記発生回数計数部により計数された前記発生回数が予め記憶されている閾値よりも少ない場合に、前記事象定義情報記憶部により記憶されている前記事象定義情報に基づいて、前記事象の前記発生条件を構成する前記単位条件を抽出し、
方法抽出部が、前記単位条件抽出部により抽出された前記単位条件に基づいて、前記単位条件充足情報記憶部により記憶された前記単位条件充足情報を検索し、前記充足方法情報を抽出し、
修正情報生成部が、前記方法抽出部により抽出された前記充足方法情報に基づいて、前記テストパターンを修正するための修正情報を生成し、生成した前記修正情報を前記テストパターン生成部に出力し、
前記テストパターン生成部が、前記修正情報生成部より出力された前記修正情報に基づいて、前記テストパターンを修正することを特徴とする論理検証方法。
【請求項４】
論理回路にテストパターンを入力することにより、前記論理回路においてシミュレーションを実行し、前記論理回路を検証する論理回路装置であって、前記シミュレーションの実行中に発生が予想される事象と、前記事象の発生条件であって、少なくとも１つの単位条件から構成される発生条件とが対応付けられた事象定義情報を記憶する事象定義情報記憶部と、前記単位条件と、前記単位条件が充足する頻度を上げるための方法である充足方法情報とが対応付けられた単位条件充足情報を記憶する単位条件充足情報記憶部とを備える論理検証装置の論理検証プログラムにおいて、
テストパターン生成部が、前記テストパターンを生成するテストパターン生成処理と、
発生回数計数部が、前記シミュレーションの実行中に、前記事象が発生した発生回数を計数する発生回数計数処理と、
単位条件抽出部が、前記発生回数計数処理により計数された前記発生回数が予め記憶されている閾値よりも少ない場合に、前記事象定義情報記憶部により記憶されている前記事象定義情報に基づいて、前記事象の前記発生条件を構成する前記単位条件を抽出する単位条件抽出処理と、
方法抽出部が、前記単位条件抽出処理により抽出された前記単位条件に基づいて、前記単位条件充足情報記憶部により記憶された前記単位条件充足情報を検索し、前記充足方法情報を抽出する方法抽出処理と、
修正情報生成部が、前記方法抽出処理により抽出された前記充足方法情報に基づいて、前記テストパターンを修正するための修正情報を生成し、生成した前記修正情報を前記テストパターン生成部に出力する修正情報生成処理と、
前記テストパターン生成部が、前記修正情報生成処理により出力された前記修正情報に基づいて、前記テストパターンを修正するテストパターン修正処理と
をコンピュータである論理検証装置に実行させることを特徴とする論理検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理検証装置及び論理検証方法及び論理検証プログラムに関するものであり、特に、論理検証の効率化を図る論理検証装置及び論理検証方法及び論理検証プログラムに関する。
【背景技術】
【０００２】
ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ・Ｓｐｅｃｉｆｉｃ・Ｉｎｔｅｇｒａｔｅｄ・Ｃｉｒｃｕｉｔ）、ＬＳＩ（Ｌａｒｇｅ・Ｓｃａｌｅ・Ｉｎｔｅｇｒａｔｉｏｎ）、ＦＰＧＡ（Ｆｉｅｌｄ・Ｐｒｏｇｒａｍｍａｂｌｅ・Ｇａｔｅ・Ａｒｒａｙ）などの論理回路の検証では、検証の網羅性向上のため、テストパターンに記述する検証対象への入力を乱数を用いてランダムに生成するランダム検証を行なっている。
【０００３】
ランダムに生成する検証対象への入力については、入力タイミングや入力値が仕様で定義された範囲内におさまるようにテストパターンを生成するためのパラメータには制約がかけられる。このため、実際にはありえない入力タイミングや入力値のテストパターンは生成されない。
また、検証シミュレーションが終了した後に、予め定義した事象が発生したかをチェックして検証網羅性（カバレッジ）の確認を行なっている。
【０００４】
従来の検証方式では、この検証網羅性を向上するために、それまでに発生していない事象が発生しやすくなるようなテストパターンを生成し、論理検証シミュレーションを行う技術がある（例えば、特許文献１参照）。
【０００５】
また、ランダム検証においては発生していない事象が発生しやすくなるように、パラメータに制約をつけてテストパターンを生成し、論理検証シミュレーションを行う技術がある（例えば、特許文献２参照）。
これらの方法では、予め定義しておいた全ての事象が発生したことを確認することが検証完了の判断基準の一つとなっている。
【０００６】
また、検証対象の機能記述ファイルで未実行部分の入力ポートをバックトレースし、大元の入力ピンに対してランダムパターンを生成する技術が示されている（例えば、特許文献３参照）。
【０００７】
また、機能カバレッジを計測する回路を追加し、カバレッジ計測を行なう技術が示されている（例えば、特許文献４）。しかし、近年ではシミュレータ自体にカバレッジ計測が行なえるものもあり、特別に回路を追加せずともカバレッジ計測が行なえるようになっている。
【０００８】
また、バストランザクションを監視し、機能モジュールの動作開始と終了を検出することで機能モジュールの検証充足性を評価する技術が示されている（例えば、特許文献５）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１１−２２７８０３号公報
【特許文献２】特開平１０−２２１４１０号公報
【特許文献３】特開２００４−０５４５４９号公報
【特許文献４】特開平０８−１８００８３号公報
【特許文献５】特開２００８−９７３７４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従来の論理検証方式では、検証シミュレーション実行後にその結果を検証者が確認し、発生していない事象を発生させるために人手でテストパターンの作成を行なっていた。または、ランダム検証の場合はテストパターンを生成するためのパラメータに対し、人手で制約付けを行なっていた。特許文献３のように、入力部を特定してその入力をランダムに動作させる技術もあるが、発生条件が複雑な場合は、制約付けに工夫が必要で、発生させたい箇所につながる入力を単純にランダム生成しても、起きにくい事象の発生率を上げることは困難であった。
【００１１】
そのため、複数の事象の組合せのような発生させるのが困難な事象の場合、テストパターンもしくはパラメータの修正と論理検証シミュレーションとを繰り返し、人手でパラメータの修正を行なって試行錯誤するため、検証期間が長期化するという課題があった。
【００１２】
この発明は、上記のような課題を解決するためになされたもので、予め定義した事象に関連する複数の条件について、ランダム検証のテストパターンを生成するためのパラメータをどのように変動させると発生頻度が上がるかを示す条件発生テーブルの情報により、検証シミュレーションを継続しながらテストパターンを修正することで論理検証を効率化し検証期間を短縮することを目的とする。
【課題を解決するための手段】
【００１３】
本発明に係る論理検証装置は、論理回路にテストパターンを入力することにより、前記論理回路においてシミュレーションを実行し、前記論理回路を検証する論理検証装置において、
前記テストパターンを生成するテストパターン生成部と、
前記シミュレーションの実行中に発生が予想される事象と、前記事象の発生条件であって、少なくとも１つの単位条件から構成される発生条件とが対応付けられた事象定義情報を記憶する事象定義情報記憶部と、
前記単位条件と、前記単位条件が充足する頻度を上げるための方法である充足方法情報とが対応付けられた単位条件充足情報を記憶する単位条件充足情報記憶部と、
前記シミュレーションの実行中に、前記事象が発生した発生回数を計数する発生回数計数部と、
前記発生回数計数部により計数された前記発生回数が予め記憶されている閾値よりも少ない場合に、前記事象定義情報記憶部により記憶されている前記事象定義情報に基づいて、前記事象の前記発生条件を構成する前記単位条件を抽出する単位条件抽出部と、
前記単位条件抽出部により抽出された前記単位条件に基づいて、前記単位条件充足情報記憶部により記憶された前記単位条件充足情報を検索し、前記充足方法情報を抽出する方法抽出部と、
前記方法抽出部により抽出された前記充足方法情報に基づいて、前記テストパターンを修正するための修正情報を生成し、生成した前記修正情報を前記テストパターン生成部に出力する修正情報生成部とを備え、
前記テストパターン生成部は、
前記修正情報生成部より入力した前記修正情報に基づいて、前記テストパターンを修正することを特徴とする。
【発明の効果】
【００１４】
本発明に係る論理検証装置によれば、事象の発生条件を構成する単位条件と、前記単位条件が充足する頻度を上げるための方法である充足方法情報とが対応付けられた単位条件充足情報を備えているので、発生回数の少ない事象を発生させるためのテストパターンの修正情報を生成し、シミュレーションを継続しながらテストパターンを修正することができるので、論理検証を効率化し検証期間を短縮することができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１に係る論理検証装置１００の構成を示すブロック図である。
【図２】実施の形態１に係る論理検証装置１００のハードウェア構成の一例を示す図である。
【図３】実施の形態１に係る論理検証装置１００の論理検証方法を示すフローチャートである。
【図４】実施の形態１に係る論理検証装置３００の制御変更指示情報生成処理を示すフローチャートである。
【図５】実施の形態１に係る初期パターン生成情報１０１の構成を示す図である。
【図６】実施の形態１に係るカバレッジ情報１１０の一例を示す図である。
【図７】実施の形態１に係る事象テーブル１２１の一例を示す図である。
【図８】実施の形態１に係る条件発生テーブル１２０の一例を示す図である。
【図９】実施の形態２に係る論理検証装置３０１の構成を示すブロック図である。
【図１０】実施の形態２に係る条件発生テーブル１２０ａの一例を示す図である。
【発明を実施するための形態】
【００１６】
実施の形態１．
図１は、本実施の形態に係る論理検証装置３００の構成を示すブロック図である。
論理検証装置３００とは、ＡＳＩＣ、ＬＳＩ、ＦＰＧＡなどの論理回路の論理設計を検証する装置である。論理検証装置３００は、論理回路に後述するテストパターン１０３を入力することにより、論理回路において検証シミュレーションを実行し、論理回路を検証する。
図１を用いて、論理検証装置３００の構成について説明する。
【００１７】
論理検証装置３００は、初期パターン生成情報１０１、パターン生成制御部１０２、テストパターン１０３、ＤＵＴ入力信号制御部１０４、出力応答部１０５、ＤＵＴ１０６、カバレッジ情報更新ツール１０７、パターン生成制御変更指示部１０８、カバレッジ情報１１０、条件発生テーブル１２０、事象テーブル１２１を備える。
【００１８】
ＤＵＴ１０６は、本実施の形態に係る論理検証装置３００による論理検証方式を適用して検証する検証対象の論理回路である。
【００１９】
初期パターン生成情報１０１は、論理検証シミュレーション実行開始前に予め作成しておく情報である。初期パターン生成情報１０１は、パターン生成制御部１０２に入力される入力情報である。
【００２０】
パターン生成制御部１０２は、初期パターン生成情報１０１から入力する入力情報に基づいて、制約をつけた範囲でランダムにパラメータ値を確定し、テストパターンを生成する。また、パターン生成制御部１０２は、パターン生成制御変更指示部１０８から入力する入力情報（制御変更指示情報）がある場合には、その入力情報に基づいてテストパターン１０３のパラメータ値、あるいはその制約を修正する。
パターン生成制御部１０２は、テストパターン１０３を生成するテストパターン生成部の一例である。
【００２１】
テストパターン１０３は、パターン生成制御部１０２が初期パターン生成情報１０１、またはパターン生成制御変更指示部１０８からの情報を元に生成したパラメータ値を、検証環境（ＤＵＴ入力信号制御部１０４）が読み込める形式に記述して出力したファイルである。
【００２２】
ＤＵＴ入力信号制御部１０４は、テストパターン１０３を入力する。
ＤＵＴ入力信号制御部１０４は、入力したテストパターン１０３にしたがって発生するトランザクションを、ＤＵＴ１０６の入力仕様に合わせてＤＵＴ１０６に入力する。
そして、ＤＵＴ１０６において検証シミュレーションが開始される。
【００２３】
カバレッジ情報１１０は、検証者が予め記述しておいた特定の事象が何回発生したかが記述されるファイルである。
【００２４】
出力応答部１０５は、ＤＵＴ１０６の検証シミュレーション動作時の出力に対して応答する手段であり、バス出力の場合には決められたプロトコルによって動作し応答する。その応答の仕方についてはテストパターンに記述することが可能である。また出力された内容については、その内容の保持および期待値確認を実施する。
【００２５】
カバレッジ情報更新ツール１０７は、ＤＵＴ１０６が検証シミュレーションによる動作中に、検証者が定義した事象が発生した場合、カバレッジ情報１１０のカウント数をインクリメントしていく。この機能は市販の検証シミュレーションツールで実現してもよい。
カバレッジ情報更新ツール１０７は、検証シミュレーションの実行中に、事象が発生した発生回数を計数する発生回数計数部の一例である。
【００２６】
パターン生成制御変更指示部１０８は、カバレッジ情報１１０と事象テーブル１２１と条件発生テーブル１２０との情報から、テストパターン１０３生成のためのパラメータをどのように修正すればよいかを判断し、パターン生成制御部１０２に対して修正指示を出すための手段である。
【００２７】
パターン生成制御変更指示部１０８は、カバレッジ情報更新ツール１０７により計数された事象の発生回数が予め記憶されている閾値よりも少ない場合に、その事象を発生頻度を上げるべき事象（頻度増加対象事象）とする。パターン生成制御変更指示部１０８は、事象テーブル１２１に基づいて、頻度増加対象事象の発生条件を構成する単位条件を抽出する。パターン生成制御変更指示部１０８は、抽出された単位条件に基づいて、条件発生テーブル１２０を検索し、単位条件の充足する頻度（発生頻度）を上げるための方法（充足方法情報）を抽出する。パターン生成制御変更指示部１０８は、抽出された充足方法情報に基づいて、テストパターン１０３を修正するための制御変更指示情報（修正情報）を生成し、パターン生成制御部１０２（テストパターン生成部）に出力する。
パターン生成制御変更指示部１０８は、単位条件抽出部、方法抽出部、修正情報生成部の一例である。
【００２８】
事象テーブル１２１は、検証者が動作の検証を行ないたい事象を定義したものであり、その事象がどのような条件で発生するのかを示す表である。
事象テーブル１２１は、検証シミュレーションの実行中に発生が予想される事象と、事象の発生条件とが対応付けられた事象定義情報を記憶装置に記憶する事象定義情報記憶部の一例である。事象の発生条件は、少なくとも１つの単位条件から構成される。
【００２９】
条件発生テーブル１２０は、検証者が定義した事象についてテストパターン生成用のパラメータをどのように修正すれば発生頻度が上がるかを記述した表である。
条件発生テーブル１２０は、事象の発生条件を構成する単位条件と、単位条件が充足する頻度（単位条件の発生頻度）を上げるための方法である充足方法情報とが対応付けられた単位条件充足情報を記憶する単位条件充足情報記憶部の一例である。
【００３０】
図２は、本実施の形態に係る論理検証装置３００のハードウェア構成の一例を示す図である。
【００３１】
図２において、論理検証装置３００は、コンピュータであり、ＬＣＤ９０１（Ｌｉｑｕｉｄ・Ｃｒｙｓｔａｌ・Ｄｉｓｐｌａｙ）、キーボード９０２（Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＣＤＤ９０５（Ｃｏｍｐａｃｔ・Ｄｉｓｃ・Ｄｒｉｖｅ）、プリンタ９０６といったハードウェアデバイスを備えている。これらのハードウェアデバイスはケーブルや信号線で接続されている。ＬＣＤ９０１の代わりに、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）、あるいは、その他の表示装置が用いられてもよい。マウス９０３の代わりに、タッチパネル、タッチパッド、トラックボール、ペンタブレット、あるいは、その他のポインティングデバイスが用いられてもよい。
【００３２】
論理検証装置３００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）を備えている。ＣＰＵ９１１は、処理装置１９１の一例である。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）、ＲＡＭ９１４（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）、通信ボード９１５、ＬＣＤ９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ９０６、ＨＤＤ９２０（Ｈａｒｄ・Ｄｉｓｋ・Ｄｒｉｖｅ）と接続され、これらのハードウェアデバイスを制御する。ＨＤＤ９２０の代わりに、フラッシュメモリ、光ディスク装置、メモリカードリーダライタ、あるいは、その他の記録媒体が用いられてもよい。
【００３３】
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、ＨＤＤ９２０は、不揮発性メモリの一例である。これらは、記憶装置１９２の一例である。通信ボード９１５、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５は、入力装置１９３の一例である。また、通信ボード９１５、ＬＣＤ９０１、プリンタ９０６は、出力装置１９４の一例である。
【００３４】
通信ボード９１５は、ＬＡＮ（Ｌｏｃａｌ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）等に接続されている。通信ボード９１５は、ＬＡＮに限らず、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ・Ｐｒｏｔｏｃｏｌ・Ｖｉｒｔｕａｌ・Ｐｒｉｖａｔｅ・Ｎｅｔｗｏｒｋ）、広域ＬＡＮ、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ・Ｔｒａｎｓｆｅｒ・Ｍｏｄｅ）ネットワークといったＷＡＮ（Ｗｉｄｅ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）、あるいは、インターネットに接続されていても構わない。ＬＡＮ、ＷＡＮ、インターネットは、ネットワークの一例である。
【００３５】
ＨＤＤ９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。プログラム群９２３には、本実施の形態の説明において「〜部」として説明する機能を実行するプログラムが含まれている。プログラムは、ＣＰＵ９１１により読み出され実行される。ファイル群９２４には、本実施の形態の説明において、「〜データ」、「〜情報」、「〜ＩＤ（識別子）」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として含まれている。「〜ファイル」や「〜データベース」や「〜テーブル」は、ＲＡＭ９１４やＨＤＤ９２０等の記録媒体に記憶される。ＲＡＭ９１４やＨＤＤ９２０等の記録媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったＣＰＵ９１１の処理（動作）に用いられる。抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったＣＰＵ９１１の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００３６】
本実施の形態の説明において用いるブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示す。データや信号は、ＲＡＭ９１４等のメモリ、ＦＤＤ９０４のフレキシブルディスク（ＦＤ）、ＣＤＤ９０５のコンパクトディスク（ＣＤ）、ＨＤＤ９２０の磁気ディスク、光ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）、あるいは、その他の記録媒体に記録される。また、データや信号は、バス９１２、信号線、ケーブル、あるいは、その他の伝送媒体により伝送される。
【００３７】
本実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアのみ、あるいは、素子、デバイス、基板、配線といったハードウェアのみで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアとハードウェアとの組み合わせ、あるいは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、フレキシブルディスク、コンパクトディスク、磁気ディスク、光ディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、プログラムは、本実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００３８】
次に、本実施の形態に係る論理検証装置３００の動作について説明する。
図３は、本実施の形態に係る論理検証装置３００の論理検証方法を示すフローチャートである。図４は、本実施の形態に係る論理検証装置３００の制御変更指示情報生成処理を示すフローチャートである。図５は、本実施の形態に係る初期パターン生成情報１０１の構成を示す図である。
【００３９】
Ｓ１１０において、パターン生成制御部１０２は、初期パターン生成情報１０１を入力する。
図５に示すように、初期パターン生成情報１０１は、テストパターン生成用のパラメータと、そのパラメータのパラメータ値をランダム生成するときの重み付けであるパラメータ制約との組合せである。パラメータ制約とは、パラメータのパラメータ値が取りうる範囲に制約をつけるものである。
初期パターン生成情報１０１は、論理検証装置３００による論理検証シミュレーション実行開始前に予め作成され、記憶装置に記憶される。
【００４０】
図５に示すように、初期パターン生成情報１０１には、「転送種別（ＲＷ）」のパラメータに対して、ランダムではあるがリードとライトを１０：７の割合の制約をつけて生成するというパラメータ制約が設定されている。
【００４１】
同様に、初期パターン生成情報１０１には、「転送タイプ」のパラメータに対して、シングル：バーストを３：８の割合で生成するようにパラメータ制約が設定されている。
【００４２】
また、「アドレス」のパラメータに対して、０ｘ００００〜０ｘ１ＦＦＦ：０ｘ２０００〜０ｘ４ＦＦＦ：０ｘ６８００〜０ｘＡＦＦＦ：０ｘＢ０００〜０ｘＢＦＦＦ：０ｘＣ０００〜０ｘＤＦＦＦの割合を、１０：８：３：７：２で生成するようにパラメータ制約が設定されている。
ここでは、アドレス０ｘ５０００〜０ｘ６７ＦＦについての記述がないが、この場合は０ｘ５０００〜０ｘ６７ＦＦの範囲のアドレス値は生成されないことになる。同様に、割合の値を０にした場合もそのパラメータ値は生成されないことを意味する。
【００４３】
また、「転送間隔」のパラメータに対して、間隔０：１：２：３：（４〜８）：（９〜１５）：（１６〜３１）：（３２〜）の割合を、１：３：３：３：５：４：２：１で生成するようにパラメータ制約が設定されている。
【００４４】
ここで、初期パターン生成情報１０１には、パラメータとして、「転送種類（ＲＷ）」、「転送タイプ」、「アドレス」、「転送間隔」について示したが、他のパラメータについてもパラメータ制約を設定することは可能である。
【００４５】
パターン生成制御部１０２は、上記のような初期パターン生成情報１０１を入力する（Ｓ１１０）。
【００４６】
Ｓ１２０において、パターン生成制御部１０２は、入力した初期パターン生成情報１０１に基づいて、処理装置により、各パラメータ（「転送種類（ＲＷ）」、「転送タイプ」、「アドレス」、「転送間隔」等）に付けられた制約の範囲でランダムにパラメータ値を決定する。パターン生成制御部１０２は、全てのパラメータについて、パラメータ制約に基づいて、ランダムにテストパターン１０３内のパラメータ値を決定する。
パターン生成制御部１０２によりパラメータの値が決定されたテストパターン１０３は、例えば、記憶装置に記憶されている。
【００４７】
Ｓ１３０において、パターン生成制御部１０２は、後述するパターン生成制御変更指示部１０８から制御変更指示情報を受け取ったか否かを処理装置により判定する。
パターン生成制御部１０２が制御変更指示情報を受け取った場合（Ｓ１３０でＹＥＳ）、Ｓ１４０に進む。Ｓ１４０の処理については、後述する。
パターン生成制御部１０２が制御変更指示情報を受け取っていない場合（Ｓ１３０でＮＯ）、Ｓ１５０に進む。
【００４８】
Ｓ１５０において、ＤＵＴ入力信号制御部１０４は、記憶装置に記憶されたテストパターン１０３を入力する。ＤＵＴ入力信号制御部１０４は、入力したテストパターン１０３をＤＵＴ１０６に入力することにより、ＤＵＴ１０６における検証シミュレーションの制御を実行する。
【００４９】
具体的には、ＤＵＴ入力信号制御部１０４は、入力したテストパターン１０３にしたがってトランザクションを生成し、処理装置により、生成したトランザクションをＤＵＴ１０６の入出力信号の操作に変換する。
そして、ＤＵＴ入力信号制御部１０４は、ＤＵＴ１０６に対して、テストパターン１０３にしたがって生成されたトランザクションの入出力信号の操作を入力する。これにより、ＤＵＴ１０６において、検証シミュレーションが実行される。
これは、例えば、「アドレス０ｘ１０番地へのデータ０ｘ１のライト」というトランザクションがある場合に、ＤＵＴ入力信号制御部１０４は、このトランザクションをＤＵＴ１０６が接続されているバスのプロトコルにしたがって入出力信号を操作するということである。
【００５０】
Ｓ１６０において、ＤＵＴ１０６は、ＤＵＴ入力信号制御部１０４からトランザクションを入力されると、ＤＵＴ１０６の内部機能により内部処理を実行し、出力応答部１０５に対して出力を行なう。
出力応答部１０５は、仕様で決められたプロトコルにしたがって応答を行なう。ここで、出力応答部１０５は、ＤＵＴ１０６から出力された情報の期待値比較を処理装置により行なってもよい。また、出力応答部１０５は、ＤＵＴ１０６から出力された情報を記憶装置に保持し、後に期待値比較を行なってもよい。
【００５１】
出力応答部１０５による応答処理が不要の場合は、出力応答部１０５は、ＤＵＴ１０６から出力された情報の期待値比較、またはＤＵＴ１０６から出力された情報の保持のみを行なう。また、出力応答部１０５による応答の仕方は、テストパターン１０３によって指示が可能であり、応答までの遅延の設定、あるいは、強制的にエラー応答を返信することの設定も可能である。
【００５２】
Ｓ１７０において、カバレッジ情報更新ツール１０７は、ＤＵＴ１０６が検証シミュレーションによる動作中に、検証者が定義した事象が発生した場合、カバレッジ情報１１０の当該事象のカウント数をインクリメントしていく。この機能は市販の検証シミュレーションツールで実現してもよい。
【００５３】
Ｓ１８０において、ＤＵＴ入力信号制御部１０４は、ＤＵＴ１０６の検証シミュレーションが終了か否かを処理装置により判定する。
ＤＵＴ入力信号制御部１０４が検証シミュレーションを終了したと判定した場合（Ｓ１８０でＹＥＳ）、論理検証装置３００の論理検証方法を終了する。
ＤＵＴ入力信号制御部１０４が検証シミュレーションを終了していないと判定した場合（Ｓ１８０でＮＯ）は検証シミュレーションを続行する。
検証シミュレーションの終了のタイミングは、ＤＵＴ入力信号制御部１０４が実行するテストパターン１０３によるものとする。
【００５４】
図６は、本実施の形態に係るカバレッジ情報１１０の一例を示す図である。
カバレッジ情報１１０の事象Ｅｖ．Ａ，Ｅｖ．Ｂ，Ｅｖ．Ｃ，Ｅｖ．Ｄ，Ｅｖ．Ｅ等は、検証者が予め記述しておいた特定の事象である。カバレッジ情報更新ツール１０７は、ＤＵＴ１０６の検証シミュレーション動作中に発生した事象について、カバレッジ情報１１０の対応する事象の発生回数をインクリメントする。
【００５５】
図４は、パターン生成制御変更指示部１０８による制御変更指示情報生成処理を示すフローチャートである。
図４に示すＳ１９０〜Ｓ１９５において、パターン生成制御変更指示部１０８は、カバレッジ情報１１０の中で発生していないか、または発生していても発生頻度の低い事象について、その事象を発生させやすくするための方法を処理装置により判断する。そして、パターン生成制御変更指示部１０８は、事象を発生させやすくするための方法に基づいて、現状のテストパターン１０３生成用のパラメータをどのように修正すればいいかを示した制御変更指示情報を生成する。パターン生成制御変更指示部１０８は、パターン生成制御部１０２に対して、生成した制御変更指示情報を送信する。
【００５６】
言い換えると、制御変更指示情報とは、発生していないか又は発生していても発生頻度の低い事象（以下、頻度増加対象事象とする）の発生頻度増加のための情報である。
パターン生成制御変更指示部１０８は、条件発生テーブル１２０と事象テーブル１２１とに基づいて、頻度増加対象事象の発生頻度増加のための制御変更指示情報を生成する。
【００５７】
以下に、Ｓ１９０〜Ｓ１９４においてパターン生成制御変更指示部１０８が実行する制御変更指示情報生成処理について説明する。
まず、パターン生成制御変更指示部１０８による制御変更指示情報生成処理において用いられる事象テーブル１２１及び条件発生テーブル１２０の構成について説明する。
【００５８】
図７は、本実施の形態に係る事象テーブル１２１の一例を示す図である。図８は、本実施の形態に係る条件発生テーブル１２０の一例を示す図である。
【００５９】
例えば、上記図５に示した初期パターン生成情報１０１は、テストパターン１０３生成用のパラメータの制約に関する情報である。現在のパラメータの制約が図５に示すようになっていた場合で、図６のカバレッジ情報１１０のＥｖ．Ｄの事象が発生していなかった場合、すなわち、Ｅｖ．Ｄの発生回数が０の場合のパターン生成制御変更指示部１０８によるパターン制御変更指示情報生成方法について説明する。
【００６０】
図７に示すように、事象テーブル１２１は、検証者により予め定義された事象に対し、その発生条件を示したものである。事象の発生条件は、単一の条件が複数組み合わさっている。
例えば、Ｅｖ．Ｄ事象の発生条件は、単一の条件であるライトバッファフルのときに、単一の条件であるＩ／Ｏアクセスが発生するといった条件である。
したがって、Ｅｖ．Ｄの事象の発生頻度を上げるためには、それぞれの単一の条件の発生頻度を上げる必要がある。
【００６１】
図８に示すように、条件発生テーブル１２０には、事象テーブル１２１で定義された事象の発生条件を構成する個々の単一の条件の発生頻度を上げる方法が記載されている。
例えば、Ｅｖ．Ｄ事象の発生条件「ライトバッファフル＆Ｉ／Ｏアクセス」のうち、単一の条件は「ライトバッファフル」と「Ｉ／Ｏアクセス」とである。そこで、Ｅｖ．Ｄ事象の発生頻度を上げるためには、「ライトバッファフル」と「Ｉ／Ｏアクセス」との発生頻度をそれぞれ上げる必要がある。
【００６２】
条件発生テーブル１２０によれば、「ライトバッファフル」の発生頻度を上げるためには、転送種類のパラメータでライトの値を増加、転送タイプのパラメータでバーストの値を増加、転送間隔のパラメータで０〜３の値を増加かつ４以上の値を減少させるとよいことを示している。
また、「Ｉ／Ｏアクセス」の発生頻度を上げるためには、アドレスのパラメータで０ｘＢ０００〜０ｘＢＦＦＦの範囲の値を増加させればよいことを示している。
【００６３】
Ｓ１９０において、パターン生成制御変更指示部１０８は、カバレッジ情報１１０の中の事象から発生頻度を増加させる頻度増加対象事象を処理装置により判定する。
例えば、パターン生成制御変更指示部１０８は、カバレッジ情報１１０を参照し、発生していない事象、つまり発生回数が「０」の事象「Ｅｖ．Ｄ」を頻度増加対象事象として判定する。
ここでは、「０」を、発生頻度を増加させるべき頻度増加対象事象の特定のための閾値としているが、例えば、発生回数が１，２，３，４，・・・，等でもよい。この閾値は、予め記憶装置に記憶しておくものとする。あるいは、システム管理者等が設定可能な値であるものとする。
【００６４】
Ｓ１９１において、パターン生成制御変更指示部１０８は、頻度増加対象事象の発生条件を条件発生テーブル１２０から抽出する。
例えば、パターン生成制御変更指示部１０８は、頻度増加対象事象である「Ｅｖ．Ｄ」に基づいて、事象テーブル１２１を検索し、「Ｅｖ．Ｄ」に対応する発生条件「ライトバッファフル＆Ｉ／Ｏアクセス」を抽出する。
【００６５】
Ｓ１９２において、パターン生成制御変更指示部１０８は、事象テーブル１２１から抽出した頻度増加対象事象の発生条件の中から、単一の条件を抽出する。
例えば、パターン生成制御変更指示部１０８は、頻度増加対象事象である「Ｅｖ．Ｄ」に対応する発生条件「ライトバッファフル＆Ｉ／Ｏアクセス」から、単一の条件として「ライトバッファフル」と「Ｉ／Ｏアクセス」とを抽出する。
【００６６】
Ｓ１９３において、パターン生成制御変更指示部１０８は、抽出した単一の条件のそれぞれの発生頻度を上げる方法を、条件発生テーブル１２０から抽出する。
例えば、パターン生成制御変更指示部１０８は、条件発生テーブル１２０から、単一の条件「ライトバッファフル」の発生頻度を上げる方法として、「転送種類のパラメータでライトの値を増加」、「転送タイプのパラメータでバーストの値を増加」、「転送間隔のパラメータで０〜３の値を増加かつ４以上の値を減少」を抽出する。
また、パターン生成制御変更指示部１０８は、条件発生テーブル１２０から、単一の条件「Ｉ／Ｏアクセス」の発生頻度を上げる方法として、「アドレスのパラメータで０ｘＢ０００〜０ｘＢＦＦＦの範囲の値の増加」を抽出する。
【００６７】
Ｓ１９４において、パターン生成制御変更指示部１０８は、抽出した単一の条件のそれぞれの発生頻度を上げる方法を用いて、頻度増加対象事象である事象「Ｅｖ．Ｄ」の発生頻度を上げるための制御変更指示情報を生成する。
例えば、パターン生成制御変更指示部１０８は、抽出した「転送種類のパラメータでライトの値を増加」、「転送タイプのパラメータでバーストの値を増加」、「転送間隔のパラメータで０〜３の値を増加かつ４以上の値を減少」、「アドレスのパラメータで０ｘＢ０００〜０ｘＢＦＦＦの範囲の値の増加」の情報を指示する制御変更指示情報を生成する。
そして、パターン生成制御変更指示部１０８は、生成した制御変更指示情報をパターン生成制御部１０２に出力する。
そして、パターン生成制御変更指示部１０８は、処理をＳ１３０に戻す。
【００６８】
パターン生成制御部１０２は、パターン生成制御変更指示部１０８から制御変更指示情報を入力すると（Ｓ１３０でＹＥＳ）、処理をＳ１４０に進める。
【００６９】
Ｓ１４０において、パターン生成制御部１０２は、入力した制御変更指示情報にしたがって、テストパターン１０３生成用のパラメータ値を修正する。
例えば、パターン生成制御部１０２は、テストパターン１０３において、「転送種類のパラメータでライトの値を増加」、「転送タイプのパラメータでバーストの値を増加」、「転送間隔のパラメータで０〜３の値を増加かつ４以上の値を減少」、「アドレスのパラメータで０ｘＢ０００〜０ｘＢＦＦＦの範囲の値の増加」の修正を実行する。
【００７０】
ＤＵＴ入力信号制御部１０４は、パターン生成制御部１０２により修正されたテストパターン１０３のパラメータにしたがってトランザクションを発行し、ＤＵＴ１０６において修正された検証シミュレーションが実行される。
【００７１】
以上のように、パターン生成制御変更指示部１０８は、単一の条件のそれぞれの発生頻度を増加させるように、上記操作を行なうようにパターン生成制御部１０２に制御変更指示情報を出力することにより指示を出す。
パターン生成制御部１０２は、パターン生成制御変更指示部１０８の指示にしたがって、テストパターンの生成用のパラメータ値を修正する。テストパターン１０３は修正されたパラメータにしたがってトランザクションを発行するように修正され、検証シミュレーションが継続される。
【００７２】
条件発生テーブル１２０は、予め作成され記憶装置に記憶しておいてもよいし、検証シミュレーションしながら、その結果を見て順次作成していってもよい。
例えば、カバレッジ情報更新ツール１０７等により、事象の発生回数の計数だけでなく、単一の条件の発生回数の計数も実行するとしてもよい。例えば、単一の条件「ライトバッファフル」の発生回数を増加させるための修正をテストパターンの生成用のパラメータ値に対して施した後に、「ライトバッファフル」の発生回数が増加しないような場合には、条件発生テーブル１２０の内容を修正するとしてもよい。
【００７３】
以上のように、本実施の形態に係る論理検証装置３００は、以下の手段を備え、論理検証方式を実行する。
（Ａ）検証したい事象を定義した事象テーブル１２１；
（Ｂ）（Ａ）で定義された事象の発生条件について、その発生条件を発生させるためにランダム検証でのテストパターン生成用パラメータの操作方法が記載された条件発生テーブル１２０；
（Ｃ）（Ｂ）の条件発生テーブル１２０にしたがって、テストパターン１０３の生成を制御する手段に対して、パターン生成方法の変更を指示する手段（パターン生成制御変更指示部１０８）。
【００７４】
以上のように、本実施の形態に係る論理検証装置によれば、ある制約の元でランダムに検証対象の入出力を変動させる検証において、発生させることが困難な事象を発生させるために、テストパターンを生成するためのパラメータの修正を自動で行なうことができる。このため、発生させたい機能の箇所への入力をランダムに変動させる場合よりも、効率的に発生しにくい事象を発生させることができる。
【００７５】
また、本実施の形態に係る論理検証装置によれば、人手でテストパターン生成のためのパラメータ調整を行なうことなく、条件発生テーブルを用いることにより自動でできるようになり、人手介在による試行錯誤を削減することで検証期間の短縮が可能となる。
【００７６】
実施の形態２．
本実施の形態では、主に、実施の形態１との差異について説明する。
図９は、本実施の形態に係る論理検証装置３０１の構成を示すブロック図である。
図９は、図１の構成にＤＵＴ動作状態モニタ部２０１を追加した構成の図である。
【００７７】
ＤＵＴ動作状態モニタ部２０１は、ＤＵＴ１０６の内部状態を監視し、事象テーブル１２１に記述された単一の条件の発生回数をカウントし、その発生回数を条件発生テーブル１２０ａに追記する。
【００７８】
図１０は、本実施の形態に係る条件発生テーブル１２０ａの一例を示す図である。本実施の形態に係る条件発生テーブル１２０ａは、実施の形態１で説明した条件発生テーブル１２０に、それぞれの単一の条件の発生回数を記述する列を追加した例である。
【００７９】
実施の形態１で説明したパターン生成制御部１０２は、単一の条件の発生頻度を上げるための方法をテストパターン１０３のパラメータに対して適用する。その際、パラメータの操作が競合する場合がある。
例えば、「ライトバッファフル」の発生頻度を上げる方法として「転送間隔のパラメータで０〜３の値を増加かつ４以上の値を減少」を適応するとともに、「リードバッファフル」の発生頻度を上げる方法として「転送間隔のパラメータで０〜１の値を増加かつ２以上の値を減少」を適応する場合などである。
【００８０】
このような場合、パターン生成制御部１０２は、どちらかの操作を決めてパラメータ値を操作するため、結果的に操作方法を誤る可能性もあった。
しかし、図１０に示す条件発生テーブル１２０ａを用いることで、パターン生成制御部１０２は、単一の条件の発生回数にしたがって、どちらに操作すればよいかを効果的に決めることができる。
【００８１】
例えば、図１０に示す条件発生テーブル１２０ａでは、「ライトバッファフル」の発生回数が「５回」に対し、「リードバッファフル」の発生回数が「４２回」となっている。つまり、「ライトバッファフル」の発生回数の方が少なく、「ライトバッファフル」の発生が起きにくい条件であることがわかる。
したがって、特定の事象で、例えば、「ライトバッファフル」かつ「リードバッファフル」という条件があった場合は起こしにくい条件であるライトバッファフルを優先的に頻度を上げることで、「ライトバッファフル」かつ「リードバッファフル」の組合せの事象の発生頻度を上げることができる。
【００８２】
以上のように、本実施の形態に係る論理検証装置３０１は、検証したい事象の発生条件について、その発生条件を構成する単一の条件が発生した回数をカウントする手段と、カウントした結果を条件発生テーブルに追記する手段と、検証したい事象の発生条件を構成する単一の条件のカウント数にしたがって、パターン生成制御変更を指示する手段とを備える。
【００８３】
以上のように、本実施の形態に係る論理検証装置３０１によれば、事象の発生条件を構成する単一の条件のそれぞれの発生回数をカウントし、条件発生テーブルに追記することで、テストパターン生成のためのパラメータの操作方法が競合した場合にも、その操作方法を効果的に決めることができる。
【００８４】
上記実施の形態１〜２の説明では、「パターン生成制御部」、「ＤＵＴ入力信号制御部」、「出力応答部」、「カバレッジ情報更新ツール」、「パターン生成制御変更指示部」、「ＤＵＴ動作状態モニタ部」等がそれぞれ独立した機能ブロックとして論理検証装置３００，３０１を構成している。しかし、これに限られるわけではなく、例えば、「パターン生成制御部」、「ＤＵＴ入力信号制御部」をひとつの機能ブロックで実現し、「出力応答部」、「カバレッジ情報更新ツール」、「パターン生成制御変更指示部」、「ＤＵＴ動作状態モニタ部」をひとつの機能ブロックで実現しても良い。あるいは、これらの機能ブロックを、他のどのような組み合わせで論理検証装置３００，３０１を構成しても構わない。
【００８５】
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、２つ以上を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、１つを部分的に実施しても構わない。あるいは、これらの実施の形態のうち、２つ以上を部分的に組み合わせて実施しても構わない。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００８６】
１０１  初期パターン生成情報、１０２  パターン生成制御部、１０３  テストパターン、１０４  ＤＵＴ入力信号制御部、１０５  出力応答部、１０６  ＤＵＴ、１０７  カバレッジ情報更新ツール、１０８  パターン生成制御変更指示部、１１０  カバレッジ情報、１２０，１２０ａ  条件発生テーブル、１２１  事象テーブル、２０１  ＤＵＴ動作状態モニタ部、３００，３０１  論理検証装置、９０１  ＬＣＤ、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  ＨＤＤ、９２１  オペレーティングシステム、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群。
【図１】
2014182509.tif 000003
【図２】
2014182509.tif 000004
【図３】
2014182509.tif 000005
【図４】
2014182509.tif 000006
【図５】
2014182509.tif 000007
【図６】
2014182509.tif 000008
【図７】
2014182509.tif 000009
【図８】
2014182509.tif 000010
【図９】
2014182509.tif 000011
【図１０】
2014182509.tif 000012