JP4759392B2 - 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法 - Google Patents

検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法 Download PDF

Info

Publication number
JP4759392B2
JP4759392B2 JP2006007940A JP2006007940A JP4759392B2 JP 4759392 B2 JP4759392 B2 JP 4759392B2 JP 2006007940 A JP2006007940 A JP 2006007940A JP 2006007940 A JP2006007940 A JP 2006007940A JP 4759392 B2 JP4759392 B2 JP 4759392B2
Authority
JP
Japan
Prior art keywords
priority
logical expression
verification
input
condition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006007940A
Other languages
English (en)
Other versions
JP2007188443A (ja
Inventor
洋哲 岩下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006007940A priority Critical patent/JP4759392B2/ja
Priority to US11/520,940 priority patent/US7469393B2/en
Publication of JP2007188443A publication Critical patent/JP2007188443A/ja
Application granted granted Critical
Publication of JP4759392B2 publication Critical patent/JP4759392B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31703Comparison aspects, e.g. signature analysis, comparators
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • G01R31/318357Simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Tests Of Electronic Circuits (AREA)

Description

この発明は、ハードウェアの論理検証を支援する検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法にかかり、特に、モジュール単位で実施する論理シミュレーションの環境構築を支援する検証支援装置、検証支援方法、および検証支援プログラムに関する。
従来、一般に、ハードウェアモジュールは仕様で規定された範囲の入力パターンを受け取ったときに正しく動作するように作られており、もともと許されない入力パターンを受け取った場合の動作は規定されない。したがって、モジュール単位で論理シミュレーションを行なう場合はモジュールへの入力パターンを仕様で定められた範囲内に保つ必要があり、そうしなければ意味のあるシミュレーション結果が得られない。
入力パターンの作成には、事前に人手で作成しておいたパターンを用いる場合や、シミュレーションしながら動的に自動生成するパターン発生器を用いる場合、あるいはそれらを組み合わせる場合などがある。
通常、パターン発生器はC、SystemC、Verilog、VHDLなどの言語を使って人手で作成されている。これに対して近年、フォーマルな入力制約条件に関する記述からパターン発生器を自動生成する技術も知られるようになった(たとえば、下記非特許文献1を参照。)。入力制約条件とは、検証対象となるハードウェアモジュールに送られる入力が必ず満たさなければならない条件のことである。ここで、非特許文献1のようにフォーマルな入力制約に関する記述からパターン発生器を自動生成する例について説明する。
図14は、検証対象となるハードウェアモジュールの一例を示す説明図である。図14において、検証対象1400はclkをクロック入力とする順序回路であり、1ビット入力cmdおよびreq、1ビット出力ack、32ビット入力wd、および32ビット出力rdを持っている。この検証対象の入力に関しては次の入力制約条件がある。
・cmd=0かつreq=1を入力したらRead動作が始まり、ack=1の応答によってRead動作が終了するまでcmdとreqの値を変更してはならない。
・cmd=1かつreq=1を入力したらWrite動作が始まり、ack=1の応答によってWrite動作が終了するまでcmd、req、およびwdの値を変更してはならない。
この例のように、一般に入力制約条件は検証対象1400におけるその時刻の入出力値だけでなく、過去の入出力値にも依存する。そこで、入力制約が守られているかどうかを判定する仕組みを導入する。
図15は、入力制約条件を定義するモデルを示す説明図である。図15では、入力制約条件が守られているかどうかを判定する仕組みを順序機械M0と入力制約条件に対応する論理式C0を使ったモデル化がおこなわれている。順序機械M0は状態変数sおよび状態変数tを持つ。状態変数sおよび状態変数tは検証対象1400(順序回路)の動作状態や入出力値をあらわす変数である。
図16は、状態変数sの値変化を表現した状態遷移グラフを示す説明図である。s=0は初期状態、s=1はRead動作中の状態、s=2はWrite動作中の状態に対応する。一方、状態変数tは常に1サイクル前のwdの値を保持している。入力制約は順序機械M0の状態変数sおよび状態変数tと検証対象の入出力値を用いて次の式(1)に示す論理式C0で表現される。
Figure 0004759392
入力制約の論理式C0を出発点として、パターン発生器(G0)を自動生成することができる。図17は、入力制約条件の論理式C0を出発点として自動生成されたパターン発生器(G0)を示す説明図である。図17に示したパターン発生器(G0)は、以下の論理式(2)〜(4)に示した動作をする。
cmd←(s=1)?0:(s=2)?1:random(1)・・・・・・・・(2)
req←((s=1)+(s=2))?1:random(1)・・・・・・・・(3)
wd←(s=2)?t:random(32)・・・・・・・・・・・・・・・・(4)
ここで、論理式「x?y:z」は条件xが成立するとき値yを持ち成立しないとき値zを持つ3項演算であり、下記論理式(5)と等価である。また、「random(n)」はビット幅nのランダム値を発生させる関数である。たとえば、式(4)を例に挙げると、検証対象がWrite動作中の場合、wdはtの値を持ち、Write動作中でない場合、32ビットのランダム値を持つ。
Figure 0004759392
ここで、パターン発生器(G0)の動作を決める一般的な手順について説明する。検証対象の入力群はnビットの<y>=(y1,y2,…,yn)で構成される。また、その他の変数群(検証対象の出力や検証対象に付加した順序機械の状態変数)はmビットの<x>=(x1,x2,…,xm)で構成される。<x>,<y>は、それぞれカッコ内の変数からなるベクトルである。
入力制約として与えられる論理式は、<x>と<y>の論理関数fと等価であるとする。これに対して、目的のパターン発生器(G0)は下記の形で構成することができる。
Figure 0004759392
ここで、r1,r2,…,rnはここで新たに導入した論理変数であり、ランダムに0または1の値を取るものとする。論理関数群g1,g2,…,gnは次の手順[1]〜[5]で求められる。
[1] y2,…,ynには何らかの適切な値を設定する仮定の下で簡単化した制約条件を求める。この制約条件は下記式(6)の通りである。
Figure 0004759392
[2] 式(6)への定数代入により、y1に値0を出力できる条件およびy1に値1を出力できる条件を求める。それらを用いて、y1に0を出力できるが1を出力できないときは値0、1を出力できるが0を出力できないときは値1、それ以外のときはランダム値r1に等しい値を持つように、下記式(7)の論理関数g1を構成する。
Figure 0004759392
[3] y1には式(7)の論理関数g1の値を使用し、y3,…,ynには何らかの適切な値を設定する仮定の下で簡単化した制約条件を求める。この制約条件は下記式(8)の通りである。
Figure 0004759392
[4] [2]と同様にしてあらたな論理関数g2を求める。この論理関数g2は下記式(9)の通りである。
Figure 0004759392
[5] 以降も同様にして、論理関数gnまで求める。ここで、演算∃v.fは「論理関数fの値を1にするようなvの値割り当てが存在するための、残りの変数に関する条件」を正確に求める演算である。変数viが1ビットの論理変数であるとき、∃演算は次のように定義される。
Figure 0004759392
変数viが値集合Vを持つ多値変数であるときは、∃演算は次のように定義される。
Figure 0004759392
変数群(y1,…,ym)に関する∃演算は、次のように定義される。
Figure 0004759392
なお、∃演算は二分決定グラフ(BDD)等の技術により計算機上で効率的に実行できることが広く知られている。上記式(1)におけるwdのように多ビット入力変数を含んだ論理式を出発点とする場合は、それをビット毎に分割した式(13)のように書き換えてから取り扱えば良い。
Figure 0004759392
あるいは別の方法として、wd=tの関係が成り立つことを示す1ビット変数wd_tを導入して次の形に書き換えることもできる。
Figure 0004759392
以下に、上記式(6)を出発点として上記式(2)〜(4)の右辺に相当する論理関数g1,g2,g3を求める例を以下の[1]〜[6]に示す。
[1] reqとwd_tには何らかの適切な値を設定する前提の下で簡単化した制約条件f’(s,cmd)を求める。この制約条件f’(s,cmd)は下記式(15)の通りである。
Figure 0004759392
[2] 制約条件f’(s,cmd)への定数代入により、cmdに値0を出力できる条件f’(s,0)およびcmdに値1を出力できる条件f’(s,1)を求める。それらを用いて、cmdに0を出力できるが1を出力できないときは値0、1を出力できるが0を出力できないときは値1、それ以外のときはランダム値r1に等しい値を持つように、論理関数g1(s,r1)を構成する。これらの条件f’(s,0)、条件f’(s,1)、および論理関数g1(s,r1)は下記式(16)〜(18)の通りである。
Figure 0004759392
[3] cmdには論理関数g1(s,r1)の値を使用するとし、wd_tには何らかの適切な値に設定する前提の下での制約条件f”(s,r1,req)を求める。この制約条件f”(s,r1,req)は下記式(19)の通りである。
Figure 0004759392
[4] 制約条件f”(s,r1,req)への定数代入により、reqに値0を出力できる条件f”(s,r1,0)、およびreqに値1を出力できる条件f”(s,r1,1)を求める。それらを用いて、reqに0を出力できるが1を出力できないときは値0、1を出力できるが0を出力できないときは値1、それ以外のときはランダム値r2に等しい値を持つように、論理関数g2(s,r1,r2)を構成する。これらの条件条件f”(s,r1,0)、条件f”(s,r1,1)、および論理関数g2(s,r1,r2)は、下記式(20)〜(22)の通りである。
Figure 0004759392
[5] cmdには論理関数g1(s,r1)、reqには論理関数g2(s,r1,r2)の値を使用するときの制約条件f'''(s,r1,r2,wd_t)を求める。この制約条件f'''(s,r1,r2,wd_t)は、下記式(23)の通りである。
Figure 0004759392
[6] 制約条件f'''(s,r1,r2,wd_t)への定数代入により、wd_tに値0を出力できる条件f'''(s,r1,r2,0)、およびwd_tに値1を出力できる条件f'''(s,r1,r2,1)を求める。それらを用いて、wd_tに0を出力できるが1を出力できないときは値0、1を出力できるが0を出力できないときは値1、それ以外のときはランダム値r3に等しい値を持つように、論理関数g3(s,r1,r2,r3)を構成する。これらの条件f'''(s,r1,r2,0)、条件f'''(s,r1,r2,1)、および論理関数g3(s,r1,r2,r3)は、下記式(24)〜(26)の通りである。
Figure 0004759392
1ビット変数であるcmdおよびreqには、それぞれg1とg2の値をそのまま代入すれば良い。このとき、変数r1、r2の値はランダム値生成関数random(1)を使って毎回新しく生成するようにする。
32ビット変数wdについてはg3に基づいて、wd_tすなわちg3の値が0になるケースではt以外の32ビットランダム値を代入し、g3の値が1になるケースではtの値をそのまま代入し、g3の値がランダム値になるケースでは任意の32ビットランダム値を代入すれば良い。これにより、パターン発生器(G0)の動作を表現する論理式G0(下記式(27)〜(29))を得ることができる。
Figure 0004759392
ジュン・ユアン、ケン・アルビン、アドナン・アジズ、カール・ピクスレイ(J. Yuan, Ken Albin, Adnan Aziz, and Carl Pixley)著, 「コンストレイント シンセシス フォー エンビロンメント モデリング イン ファンクショナル ベリフィケーション (Constraint Synthesis for Environment Modeling in Functional Verification)」, in Proc. デザイン オートメーション カンファレンス出版(Design Automation Conference) 2003, pp. 296.299, 2003.
論理検証環境の作成者には、次の2つの異なるタイプの要求に対するバランスを考慮して、入力パターンを作成もしくは自動生成することが求められている。
(i)特別な状況を狙い撃ちでテストしたい。
(ii)可能な限り広範囲の状況をテストしたい。
たとえば、割り込みや例外処理が発生する状況など、設計誤りがありそうな状況を優先的にカバーしたいという要求が(i)であり、普通では思い付かないような考え抜けを発見したいという要求が(ii)である。
(ii)の要求を満足するには非常に多くのパターンを作成もしくは自動生成する必要がある。人手では大量なパターンを作成することができないため、通常、人手で作成できるのは(i)の要求に対するパターンに限られる。
パターン発生器を用いれば、大量なパターンを自動生成することができたが、(ii)の要求に応えるためには単にパターンの量が多いだけでなく、その分布が仕様で定められた範囲を網羅していることが重要である。そのようなパターン発生器を作成するには仕様情報を詳細に理解し、それをパターン発生器の構成に反映させる必要がある。
しかしながら、そのようなパターン発生器の作成作業には工数がかかり、間違いも多く、また、仕様変更や仕様の誤解があった場合の手戻り工数も大きい。したがって、『(ii)可能な限り広範囲の状況をテストしたい。』という要求を満たすことができないという問題があった。
一方、上記非特許文献1のような従来技術を用いれば、(ii)の要求を満たしたパターン発生器を仕様記述(入力制約)から誤りなく自動生成することができ、仕様の変更や修正にも簡単に対応することができる。
しかしながら、上記非特許文献1のような従来技術には(i)の要求を考慮する仕組みが含まれておらず、パターンの発生順序はユーザの意図しない乱数によって決められてしまうことになる。したがって、現在のハードウェア設計の検証では、論理シミュレーションですべての入力パターンをテストすることは、必要なパターン数が多すぎるため不可能である。
現在のハードウェア設計の検証では、どのような順序でパターンを発生させるか、あるいはどのような分布でパターンを発生させるかを制御することが重要であるが、上記非特許文献1のような従来技術では、そのような制御をすることができない。したがって、『(i)特別な状況を狙い撃ちでテストしたい。』という要求を満たすことができないという問題があった。
この発明は、上述した従来技術による問題点を解消するため、特別な状況を狙い撃ちでテストしつつ、可能な限り広範囲の状況をテストすることができる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、この発明にかかる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法は、検証対象への入力が必ず満たさなければならない入力制約条件を表現する論理式と、前記検証対象の検証動作の中から優先的に選ばれた検証動作(以下、「優先検証動作」という)を表現する論理式とを取得し、取得された論理式を用いて、前記優先検証動作において前記入力制約条件を満たす入力を前記検証対象に送りたいという優先条件を表現する論理式を算出し、前記入力制約条件を表現する論理式と、算出された前記優先条件を表現する論理式とに基づいて、前記入力制約条件を満たす前記検証対象への入力のパターン(以下、「基本パターン」という)と、前記優先条件を満たす前記検証対象への入力のパターン(以下、「優先パターン」という)とを選択的に発生させるパターン発生器を構築することを特徴とする。
この発明によれば、優先条件を考慮したパターン発生器の動作を表現する論理式を得ることができる。
また、上記発明において、前記入力制約条件を表現する論理式に基づいて、前記基本パターンを発生させる基本パターン発生器の動作を表現する論理式を算出し、前記優先条件を表現する論理式に基づいて、前記優先パターンを発生させる優先パターン発生器の動作を表現する論理式を算出し、算出された論理式と前記優先パターン発生器算出手段によって算出された論理式とに基づいて、前記パターン発生器を構築することとしてもよい。
この発明によれば、基本パターン発生器と優先パターン発生器との機能を明確に分割することができる。
また、上記発明において、前記優先検証動作が複数存在する場合に、ユーザによって指定された前記優先検証動作の優先順位を取得し、さらに、前記取得手段によって取得された前記優先検証動作の優先順位に従って前記優先パターンが発生するように、前記パターン発生器を構築することとしてもよい。
この発明によれば、優先順位の変更を容易におこなうことができる。
また、上記発明において、前記優先検証動作が複数存在する場合、前記各優先検証動作に応じた各優先条件を表現する論理式の論理積を算出し、前記入力制約条件を表現する論理式と、算出された論理積とに基づいて、前記基本パターンと前記各優先パターンとを選択的に発生させるパターン発生器を構築することとしてもよい。
この発明によれば、複数の優先条件を同時に満足する優先条件を用いることで、優先パターン発生器の数を低減して、構築されるパターン発生器の内部構成を簡略化することができる。
また、上記発明において、前記入力制約条件を表現する論理式は、前記検証対象の入出力と前記検証対象の入出力に応じて状態遷移する有限状態機械の状態変数とを用いた論理式であり、前記優先条件を表現する論理式は、前記検証対象への入力群と、前記検証対象からの出力または/および前記有限状態機械の状態変数からなる変数群とを用いた論理式であることとしてもよい。
この発明によれば、過去の入出力の値を考慮して、優先条件付きのパターン発生器を構築することができる。
また、上記発明において、前記入力群と前記変数群とを用いた論理式に基づいて、前記優先条件が満たされる場合に前記変数群によって特定される前記優先パターンの選択条件を表現する論理式を算出し、算出された前記優先パターンの選択条件を表現する論理式の値に応じて前記基本パターンと前記優先パターンとを選択的に発生させるパターン発生器を構築することとしてもよい。
この発明によれば、基本パターン発生器からの基本パターン、すべての優先パターン発生器からのすべての優先パターンについて、自動的に優先順序をつけることができる。
また、上記発明において、前記入力群と前記変数群とを用いた論理式に基づいて、前記優先条件が満たされる場合に前記変数群によって特定される前記優先パターンの選択条件を表現する論理式を算出し、前記入力制約条件を表現する論理式と、前記優先条件を表現する論理式と、前記優先パターンの選択条件を表現する論理式とに基づいて、前記入力制約条件および前記優先条件を満たす優先条件付制約論理式を算出し、算出された優先条件付制約論理式に基づいて、前記基本パターンと前記優先パターンとを選択的に発生させるパターン発生器を構築することとしてもよい。
この発明によれば、入力制約条件とすべての優先条件とを統合することができる。
本発明にかかる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法によれば、特別な状況を狙い撃ちでテストしつつ、可能な限り広範囲の状況をテストすることができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法の好適な実施の形態を詳細に説明する。なお、説明中、数式で表現されるベクトルの記号は、文章中では<>を用いて表記する。たとえば、数式内でベクトルxが表記されている場合、文章中では<x>と表記する。
(実施の形態1)
(検証支援装置のハードウェア構成)
まず、この発明の実施の形態1にかかる検証支援装置のハードウェア構成について説明する。図1は、この発明の実施の形態1にかかる検証支援装置のハードウェア構成を示すブロック図である。
図1において、検証支援装置は、CPU101と、ROM102と、RAM103と、HDD(ハードディスクドライブ)104と、HD(ハードディスク)105と、FDD(フレキシブルディスクドライブ)106と、着脱可能な記録媒体の一例としてのFD(フレキシブルディスク)107と、ディスプレイ108と、I/F(インターフェース)109と、キーボード110と、マウス111と、スキャナ112と、プリンタ113と、を備えている。また、各構成部はバス100によってそれぞれ接続されている。
ここで、CPU101は、検証支援装置の全体の制御を司る。ROM102は、ブートプログラムなどのプログラムを記憶している。RAM103は、CPU101のワークエリアとして使用される。HDD104は、CPU101の制御にしたがってHD105に対するデータのリード/ライトを制御する。HD105は、HDD104の制御で書き込まれたデータを記憶する。
FDD106は、CPU101の制御にしたがってFD107に対するデータのリード/ライトを制御する。FD107は、FDD106の制御で書き込まれたデータを記憶したり、FD107に記憶されたデータを検証支援装置に読み取らせたりする。
また、着脱可能な記録媒体として、FD107のほか、CD−ROM(CD−R、CD−RW)、MO、DVD(Digital Versatile Disk)、メモリーカードなどであってもよい。ディスプレイ108は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ108は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
I/F109は、通信回線を通じてインターネットなどのネットワーク114に接続され、このネットワーク114を介して他の装置に接続される。そして、I/F109は、ネットワーク114と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F109には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード110は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス111は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ112は、画像を光学的に読み取り、検証支援装置内に画像データを取り込む。なお、スキャナ112は、OCR機能を持たせてもよい。また、プリンタ113は、画像データや文書データを印刷する。プリンタ113には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(検証支援装置の機能的構成)
つぎに、この発明の実施の形態1にかかる検証支援装置の機能的構成について説明する。図2は、この発明の実施の形態1にかかる検証支援装置の機能的構成を示すブロック図である。図2において、検証支援装置200は、取得部201と、優先条件算出部202と、構築部203と、から構成されている。
まず、取得部201は、論理式を取得する。具体的には、たとえば、ユーザが作成した論理式を読み込む。読み込まれる論理式は、たとえば、入力制約条件(C0)を表現する論理式である。入力制約条件(C0)とは、検証対象への入力が必ず満たさなければならない条件である。図14に示した検証対象1400の場合、入力制約条件(C0)としては、以下の条件が例として挙げられる。
[入力制約条件(C0)]:
・cmd=0かつreq=1を入力したらRead動作が始まり、ack=1の応答によってRead動作が終了するまでcmdとreqの値を変更してはならない。
・cmd=1かつreq=1を入力したらWrite動作が始まり、ack=1の応答によってWrite動作が終了するまでcmd、req、およびwdの値を変更してはならない。
上述した入力制約条件(C0)を表現する論理式は、検証対象の入出力の論理積や論理和の組み合わせで表現される。図14に示した検証対象1400の場合、入力はcmd,req,wd、出力はack,rdであるため、これらの論理積や論理和の組み合わせで表現される。
また、入力制約条件(C0)を表現する論理式は現在の入出力だけではなく、過去の入出力値にも依存することがある。この場合、入力制約条件は適当な有限状態機械と組み合わせて表現することができる。有限状態機械は検証対象の入出力を監視しながら状態遷移する。したがって、入力制約条件(C0)を表現する論理式は、検証対象の入出力と有限状態機械の状態変数で構成される。当該論理式の詳細は、後述する実施例1,2で説明する。
なお、以降の説明において、論理式の表現対象(たとえば、各種条件、動作、各種パターン発生器)については()付き符号で説明するが、対応する論理式については、数式に対応させるため、()を除いた符号で説明する。たとえば、上述の場合、入力制約条件は、「入力制約条件(C0)」と表記されるため、その論理式はC0と表記する。
また、取得部201は、優先検証動作(Pk)を表現する論理式Pkも取得する。なお、kはk=1〜nの整数である。優先検証動作(Pk)とは、検証対象の検証動作の中から優先的に選ばれた検証動作である。図14に示した検証対象1400の場合、優先検証動作(Pk)としては、以下の条件が例として挙げられる。この優先検証動作(Pk)は、単一(k=1)であってもよく、また、複数(k=2〜n)であってもよい。なお、優先検証動作(Pk)を表現する論理式Pkは、ユーザによって記述される。
[優先検証動作(P1)]:Read動作またはWrite動作が間隔を置かず2回連続して起こる場合をテストしたい。
また、取得部201は、優先検証動作(Pk)が複数存在する場合、ユーザによって指定された優先検証動作(Pk)の優先順位を取得する。この優先順位の利用法は後述する。また、特願2004−235852の方法を用いれば、対象モジュールのインターフェース仕様記述から前記の有限状態機械および入力制約条件を自動生成することが可能である。したがって本実施の形態においては有限状態機械や入力制約の代わりにインターフェース仕様記述を出発点としても良い。
また、優先条件算出部202は、取得部201によって取得された論理式C0,Pkを用いて、優先条件(Ck)を表現する論理式Ckを算出する。優先条件(Ck)とは、優先検証動作(Pk)において入力制約条件(C0)を満たす入力を検証対象に送りたいという条件である。
優先条件算出部202は、具体的には、入力制約条件(C0)を表現する論理式C0と優先検証動作(Pk)を表現する論理式Pkとの論理積をとることにより、優先条件(Ck)を表現する論理式Ckを算出する。優先検証動作(Pk)を表現する論理式Pkが複数存在する場合、優先条件(Ck)を表現する論理式Ckは、優先検証動作(Pk)を表現する論理式Pkごとに算出される。
優先条件(Ck)を表現する論理式Ckも、入力制約条件(C0)を表現する論理式C0と同様、検証対象の入出力の論理積や論理和の組み合わせで表現される。図14に示した検証対象1400の場合、入力はcmd,req,wd、出力はack,rdであるため、これらの論理積や論理和の組み合わせで表現される。
また、優先条件(Ck)を表現する論理式Ckは現在の入出力だけではなく、過去の入出力値にも依存することがある。この場合、優先条件(Ck)は上述した有限状態機械と組み合わせて表現することができる。したがって、優先条件(Ck)を表現する論理式Ckも、検証対象の入出力と有限状態機械の状態変数で構成される。
特に、優先条件(Ck)を表現する論理式Ckは、検証対象への入力群<y>と、検証対象からの出力または/および有限状態機械の状態変数からなる変数群<x>とを用いた論理式Ckであらわすことができる。
図3は、入力制約条件(C0)と優先条件(Ck)とを定義するモデルを示す説明図である。図3において、順序機械M0は、検証対象1400の入出力を監視しながら状態遷移する有限状態機械である。
また、図2において、優先検証動作(Pk)が複数(たとえば、k=2)存在する場合、優先条件算出部202は、優先検証動作(P1)に応じた優先条件(C1)を表現する論理式C1と、優先検証動作(P2)に応じた優先条件(C2)を表現する論理式C2との論理積C1・C2を算出することもできる。この論理積C1・C2により表現される優先条件(C1・C2)は、2つの論理式C1,C2により表現される優先条件(C1),(C2)を同時に満足する優先条件となる。
また、構築部203は、各種論理式に基づいて、パターン発生器(G)を構築する。具体的には、構築部203は、入力制約条件(C0)を表現する論理式C0と、優先条件算出部202によって算出された優先条件(Ck)を表現する論理式Ckとに基づいて、入力制約条件(C0)を満たす検証対象への入力のパターン(以下、「基本パターン」という)と、優先条件(Ck)を満たす検証対象への入力のパターン(以下、「優先パターン」という)とを選択的に発生させるパターン発生器(G)を構築する。
ここで、構築部203内の機能的構成について説明する。構築部203は各種算出部を有する。これら算出部は、入力されてくる論理式に基づいてあらたな論理式を算出する。具体的には、論理式が入力されると、上述した非特許文献1による算出法(式(1)〜(29))により、あらたな論理式を算出する。特に断らない限り、算出部はこの算出法により論理式を算出する。
基本パターン発生器算出部211は、入力制約条件(C0)を表現する論理式C0に基づいて、基本パターンを発生させる基本パターン発生器(G0)の動作を表現する論理式(G0)を算出する。基本パターンとは、入力制約条件(C0)を満たす検証対象への入力のパターンである。基本パターン発生器算出部211は、非特許文献1と同一の機能を果たす。
優先パターン発生器算出部212は、優先条件(Ck)を表現する論理式Ckに基づいて、優先パターンを発生させる優先パターン発生器(Gk)の動作を表現する論理式Gkを算出する。優先パターンとは、優先条件(Ck)を満たす検証対象への入力のパターンという。優先条件(Ck)を表現する論理式(Ck)が複数存在する場合、優先パターン発生器(Gk)の動作を表現する論理式Gkは、優先条件(Ck)を表現する論理式Ckごとに算出される。
優先パターン選択条件算出部213は、検証対象への入力群<y>と変数群<x>とを用いた論理式(Ck)に基づいて、優先条件(Ck)が満たされる場合に変数群<x>によって特定される優先パターンの選択条件を表現する論理式Skを算出する。
優先条件(Ck)を表現する論理式Ckの値が1になるような論理変数<x>および論理変数<y>の値割り当ての場合、優先条件(Ck)が満たされたこととなる。パターン発生器が制御できるのは論理変数<y>の値だけであり、特定の論理変数<x>の値に対しては論理変数<y>の値をどのように選んでも論理式Ckを1にすることが不可能な場合がある。
その反対のケース、すなわち論理変数<y>の値を適切に選ぶことで論理式Ckの値を1できる可能性のある論理変数<x>の条件を、優先パターン選択条件(Sk)と呼ぶ。優先条件(Ck)を表現する論理式Ckに対する優先パターン選択条件(Sk)は、∃演算を使って論理式の形で算出することができる。この優先パターン選択条件(Sk)は、下記式(30)の通りである。
Figure 0004759392
また、構築部203は、接続部214を有する。接続部214は、入力されてくる論理式によって表現されるパターン発生器や条件に応じて、これらの出力をセレクタ回路に接続する。これにより、入力されてくる論理式によって表現されるパターン発生器を組み合わせて、上述した基本パターンと優先パターンとを選択的に発生させるパターン発生器(G)を構築する。
図4は、構築部203によって構築されたパターン発生器(G)を示す説明図である。また、図5は、構築されたパターン発生器(G)の内部構成を示す説明図である。図5では、一つの基本パターン発生器(G0)と、k個の優先パターン発生器(Gk)と、k個の優先パターン選択条件(Sk)と、これらを接続するk個のセレクタ回路Tkと、から構成されている。
図5においては、基本パターン発生器(G0)の出力およびk個の優先パターン発生器(Gk)の出力は、それぞれ対応するセレクタ回路Tkの信号入力に接続され、優先パターン選択条件(Sk)の出力は、各セレクタ回路TkのON/OFFの制御入力と接続される。また、全セレクタ回路Tkのうちn番目のセレクタ回路Tnは、検証対象の入力端子に接続される。
図5では、n番目の優先パターン発生器(Gn)が、検証対象の入力端子に接続されるセレクタ回路Tnに直接接続されているため、n番目の優先パターン発生器(Gn)からの優先パターンが、最も最優先される入力パターンとなる。すなわち、kの値が大きいほどその優先パターン発生器(Gk)からの優先パターンが優先出力される。そして、基本パターン発生器(G0)からの基本パターンが最も優先度が低くなっている。
また、優先検証動作(Pk)が複数存在する場合、優先条件(Ck)を表現する論理式も同数存在し、それに対応して優先パターン選択条件(Sk)も同数存在する。したがって、取得部201により、ユーザによって指定された優先検証動作(Pk)の優先順位が取得された場合、その優先順位に従って優先パターンが発生するようにパターン発生器(G)を構築することができる。具体的には、優先順位に従って、複数の優先パターン発生器(Gk)とセレクタ回路Tkとの接続を変更すればよい。
たとえば、図5において、優先パターン発生器(Gn-1)からの優先パターンが優先パターン発生器(Gn)よりも優先順位が高い場合、図5に示した優先パターン選択条件(Sn)と優先パターン選択条件(Sn-1)とを入れ替えるとともに、図5に示した優先パターン選択条件(Gn)と優先パターン選択条件(Gn-1)とを入れ替える。これにより、ユーザの指定に従った順序で検証対象にパターンを送ることができる。
なお、上述した取得部201、優先条件算出部202、および構築部203は、具体的には、たとえば、図1に示したROM102、RAM103、HD105、FD107等に記録されたプログラムを、CPU101が実行することによって、または、I/F109によって、その機能を実現する。
(検証支援装置200の検証支援処理手順)
つぎに、この発明の実施の形態1にかかる検証支援装置200の検証支援処理手順について説明する。図6は、この発明の実施の形態1にかかる検証支援装置200の検証支援処理手順を示すフローチャートである。
図6において、まず、取得部201により入力制約条件(C0)を表現する論理式C0と、優先検証動作(Pk)を表現する論理式Pkとを取得する(ステップS601)。つぎに、優先条件算出部202により、論理式Pkを用いて、優先条件(Ck)を表現する論理式Ckを算出する(ステップS602)。
つぎに、基本パターン発生器算出部211により、論理式C0を用いて基本パターン発生器(G0)の動作を表現する論理式(G0)を算出するとともに、優先パターン発生器算出部212により、論理式Ckを用いて優先パターン発生器(Gk)の動作を表現する論理式(Gk)を算出する(ステップS603)。
そして、優先パターン選択条件算出部213により、論理式Ckを用いて優先パターン選択条件(Sk)を表現する論理式Skを算出する(ステップS604)。このあと、論理式G0,Gk,Skを用いて、接続部214により、基本パターン発生器(G0)、優先パターン発生器(Gk)および優先パターン選択条件(Sk)をセレクタ回路に接続することで、優先条件付きのパターン発生器(G)を構築する(ステップS605)。
このように、上述した従来技術では、ユーザがパターンの発生順序を制御することができなかったが、実施の形態1では論理式の形で優先条件(Ck)を表現することで、優先条件(Ck)に当てはまるパターンをできるだけ先行してテストし、それ以外のパターンを後の段階でテストするという順序付けが可能になる。
この順序付け機能を利用すれば、早い段階で基本機能をテストしたり問題の起こりやすい状況を集中的にテストすることができるようになる。その結果として、論理検証作業の効率向上に大きな効果がある。
また、パターン発生器生成を入力制約条件(C0)および各優先条件(Ck)に対して分割処理することで、計算機のメモリ使用量などのコストを低く抑えることができる。さらに、構築されたパターン発生器(G)においては、各機能が明確に分離されており、セレクタ回路の構成を自動または手動で変更することで優先順位を変えて再利用することが容易である。
以下、上述した実施の形態1の実施例について説明する。実施例1は、単一の優先検証動作、すなわち、単一の優先条件(k=1)により、優先条件付きのパターン発生器(G)を構築する例である。一方、実施例2は、複数の優先検証動作、すなわち、複数の優先条件(k=2〜n)により、優先条件付きのパターン発生器(G)を構築する例である。
まず、上述した実施の形態1にかかる検証支援装置200の実施例1について説明する。実施例1では、検証対象の入力群をnビットの論理変数<y>=(y1,y2,…,yn)とし、その他の変数群(検証対象の出力や検証対象に付加した順序機械の状態変数)をmビットの論理変数<x>=(x1,x2,…,xm)とすると、優先条件(Ck)は論理変数<x>および論理変数<y>からなる論理式Ckで与えられる。
この論理式Ckの値が1になるような論理変数<x>および論理変数<y>の値割り当ての場合、優先条件が満たされることとなる。パターン発生器(G)が制御できるのは論理変数<y>の値だけであり、特定の論理変数<x>の値に対しては論理変数<y>の値をどのように選んでも論理式Ckを1にすることが不可能な場合がある。
その反対のケース、すなわち<y>の値を適切に選ぶことで論理式Ckの値を1にできる可能性のある<x>の条件が、上述した優先パターン選択条件(Sk)である。優先条件を表現する論理式Ckに対する優先パターン選択条件(Sk)は、上記式(30)に示した∃演算を使って生成することができる。
また、入力制約条件(C0)などの論理式C0からパターン発生器(G0)を自動生成する方法は、上述した非特許文献1の従来技術をそのまま利用すればよい。具体例として、図14に示した検証対象1400に対して次の優先条件を加えた場合のパターン発生器生成手順を示す。
[優先条件(C1)]:Read動作またはWrite動作が間隔を置かず2回連続して起こる場合をテストしたい。
この優先条件(C1)を論理式C1で表現する場合、その補助として図7のモデルを使用する。図7は、実施例1における入力制約条件(C0)と優先条件(C1)とを定義するモデルを示す説明図である。図7において、順序機械Mは、上述した順序機械M0に新たな状態変数uを加えた順序機械である。つぎに、この状態変数uの状態遷移グラフを示す。
図8は、状態変数uの状態遷移グラフを示す説明図である。図8において、u=0は初期状態であり、u=1は1回目のRead動作が終了した直後の状態、u=2は1回目のWrite動作が終了した直後の状態に対応する。
このモデルを用いると、Read動作またはWrite動作が間隔を置かず2回連続する状況を次の論理式P1で表現することができる。
Figure 0004759392
実際の優先条件(C1)は、上記論理式P1と暗黙の条件である入力制約条件(C0)を同時に満たした条件である。この優先条件(C1)は、下記式(32)の通りである。
Figure 0004759392
優先条件(C1)に対する優先パターン選択条件(S1)は次のように求められる。
Figure 0004759392
また、上記非特許文献1などの従来技術を使って、入力制約条件(C0)から基本パターン発生器(G0)を、優先条件(C1)から優先パターン発生器(G1)を生成する。その結果として得られる基本パターン発生器(G0)の動作は、上述した式(2)〜(4)によって表現される。
一方、優先パターン発生器(G1)の動作は次の論理式で表現される。
Figure 0004759392
そして、上述した優先パターン選択条件(S1)と優先パターン発生器(G1)と基本パターン発生器(G0)とを組み合わせ、さらにセレクタ回路を付加することにより、優先条件付きのパターン発生器(G)を生成する。
図9は、構築部203によって構築されたパターン発生器(G)を示す説明図である。また、図10は、構築されたパターン発生器(G)の内部構成を示す説明図である。図10において、セレクタ回路T1は、優先パターン選択条件(S1)が1のときは優先パターン発生器(G1)の出力を選択し、優先パターン選択条件(S1)が0のときは基本パターン発生器(G0)の出力が選択する。
この実施例1の優先条件付きのパターン発生器(G)によれば、論理式の形で優先条件(C1)を表現することで、優先条件(C1)に当てはまるパターンをできるだけ先行してテストし、それ以外のパターンを後の段階でテストするという順序付けが可能になる。
この順序付け機能を利用すれば、早い段階で基本機能をテストしたり、問題の起こりやすい状況を集中的にテストすることができるようになる。その結果として、論理検証作業の効率化を図ることができる。また、パターン発生器の生成を入力制約および優先条件に対して分割処理することで、計算機のメモリ使用量などのコストの低減化を図ることができる。
つぎに、上述した実施の形態1にかかる検証支援装置200の実施例2について説明する。実施例2は、複数の優先条件を用いてパターン発生器の生成処理をおこなう例である。この実施例2では、上述した実施例1を用いて説明する。この実施例2において、実施例1に対してさらに次の優先条件を加えることとする。
[優先条件(C2)]:wdの値が1ずつ増加するように制約したい。
この優先条件(C2)に関しては新しい状態変数を追加する必要はなく、次の論理式P2で表現することができる。
2=(wd=t+1)・・・・・・・・・・・・・・・・・・・・・・・・・(37)
なお、この式(37)の記号「+」は、加算記号であり、wdの値が1ずつ増加することをあらわしている。実際の優先条件(C2)は、論理式P2と暗黙の条件である入力制約条件(C0)を同時に満たすものである。この優先条件(C2)は、下記式(38)の通りである。
Figure 0004759392
優先条件(C2)に対する優先パターン選択条件(S2)は次のように求められる。
2=∃(cmd,req,wd).C2=(s=0)+(s=1)・・・・・(39)
優先条件(C2)から生成できる優先パターン発生器(G2)の動作は次の通りである。
cmd←(s=1)?0:random(1)・・・・・・・・・・・・・・・(40)
req←(s=1)?1:random(1)・・・・・・・・・・・・・・・(41)
wd←((s=0)+(s=1))?t+1:random(32)・・・・・(42)
そして、優先パターン発生器(G2)および優先パターン選択条件(S2)と、実施例1で示した優先パターン選択条件(S1)と優先パターン発生器(G1)と基本パターン発生器(G0)とを組み合わせることにより、2つの優先条件(C1),(C2)に対応したパターン発生器(G’)を構成することができる。
図11は、優先条件(C1),(C2)に対応したパターン発生器(G’)の内部構成を示す説明図である。図11においては、優先条件(C2),(C1)の順で優先してパターンが採用される。また、セレクタ回路T1,T2の接続を変更することにより優先順位を逆にすることも容易である。
また、優先条件(C1),(C2)の論理積によって、2つの優先条件(C1),(C2)が同時に満足されるという意味のあらたな優先条件(C3)を作り、3つの優先条件(C1)〜(C3)に対する優先条件付きのパターン発生器を生成してもよい。この優先条件(C3)は、下記式(43)の通りである。
Figure 0004759392
優先条件(C3)に対する優先パターン選択条件(S3)は次のように求められる。
Figure 0004759392
優先条件(C3)から生成できる優先パターン発生器(G3)の動作は次の通りである。
Figure 0004759392
このとき、優先条件(C3)が最も優先されるように構成すれば、まず2つの優先条件(C1),(C2)を同時に満足するパターンを探し、次に個別に満足できるパターンを探すパターン発生器を実現することができる。
この実施例2によれば、実施例1と同様の効果を得ることができる。また、実施例2によれば、パターン発生器(G’)に示した各部分の機能が明確に分離されており、セレクタ部分の構成を自動または手動で変更することで優先順位を変えて容易に再利用することができる。
(実施の形態2)
つぎに、この発明の実施の形態2にかかる検証支援装置200について説明する。実施の形態1では、入力制約条件(C0)を表現する論理式C0と、優先条件(Ck)を表現する論理式Ckと、優先パターン選択条件(Sk)を表現する論理式Skとを用いて、優先条件付きのパターン発生器(G)を構築する例について説明したが、実施の形態2では、入力制約条件(C0)を表現する論理式C0と、優先条件(Ck)を表現する論理式Ckと、優先パターン選択条件(Sk)を表現する論理式Skと用いて、あらかじめ入力制約条件(C0)および優先条件(Ck)を統合した論理式Cを用いた例である。
実施の形態2においては、図1に示したハードウェア構成を用いるため、その説明を省略する。また、実施の形態1で説明した内容と同一内容については同一符号を付し、その説明を省略する。
(検証支援装置200の機能的構成)
図12は、この発明の実施の形態2にかかる検証支援装置200の機能的構成を示すブロック図である。図12において、優先条件付制約論理式算出部1200は、入力制約条件(C0)を表現する論理式C0と、優先条件(Ck)を表現する論理式Ckと、優先パターン選択条件(Sk)を表現する論理式Skとに基づいて、入力制約条件(C0)および優先条件(Ck)を満たす優先条件付制約論理式Cを算出する。具体的には、下記式により算出する。
Figure 0004759392
なお、上述した優先条件付制約論理式算出部1200は、具体的には、たとえば、図1に示したROM102、RAM103、HD105、FD107等に記録されたプログラムを、CPU101が実行することによって、または、I/F109によって、その機能を実現する。
(検証支援装置200の検証支援処理手順)
つぎに、この発明の実施の形態2にかかる検証支援装置200の検証支援処理手順について説明する。図13は、この発明の実施の形態2にかかる検証支援装置200の検証支援処理手順を示すフローチャートである。
図13において、まず、取得部201により入力制約条件(C0)を表現する論理式C0と、優先検証動作(Pk)を表現する論理式Pkとを取得する(ステップS1301)。つぎに、優先条件算出部202により、論理式Pkを用いて、優先条件(Ck)を表現する論理式Ckを算出する(ステップS1302)。
つぎに、基本パターン発生器算出部211により、論理式C0を用いて基本パターン発生器(G0)の動作を表現する論理式G0を算出するとともに、優先パターン発生器算出部212により、論理式Ckを用いて優先パターン発生器(Gk)の動作を表現する論理式Gkを算出する(ステップS1303)。
そして、優先パターン選択条件算出部213により、論理式Ckを用いて優先パターン選択条件(Sk)を表現する論理式Skを算出する(ステップS1304)。このあと、優先条件付制約論理式算出部1200により、論理式G0,Gk,Skを用いて、論理式G0,Gkを統合した単一の優先条件付制約論理式Cを算出する(ステップS1305)。この優先条件付制約論理式Cが、優先条件付きのパターン発生器(G)の動作を表現する論理式となる。
このように、実施の形態2によれば、入力制約条件(C0)およびすべての優先条件(Ck)を統合し、単一の論理式を得ることができる。このように、入力制約条件(C0)およびすべての優先条件(Ck)を一つの論理式に統合してからパターン発生器生成処理をおこなうことで、生成されるパターン発生器(G)の規模を小さくする最適化処理をおこないやすいという効果が得られる。
つぎに、上述した実施の形態2にかかる検証支援装置200の実施例3について説明する。実施例1では基本パターン発生器(G0)と優先パターン発生器(G1)とをそれぞれ生成したが、実施例3では、入力制約条件(C0)と優先条件(C1)とを統合した優先条件付制約論理式Cを生成してから、優先条件付制約論理式Cをもとに、上述した非特許文献1の従来技術を用いてパターン発生器(G)を生成する。
優先条件付制約論理式Cは、実施例1で求めた優先パターン選択条件(S1)を用いて次のように求めることができる。
Figure 0004759392
この優先条件付制約論理式Cから生成できるパターン発生器(G)の動作は次の通りである。
Figure 0004759392
実施例2のように優先条件が2つ、3つの場合にも、同様に優先条件付制約論理式C’,C”を求めることができる。これらの優先条件付制約論理式C’,C”は、下記式(53)、(54)の通りである。
Figure 0004759392
優先条件付制約論理式C’から生成できるパターン発生器(G’)の動作は次の通りである。
Figure 0004759392
優先条件付制約論理式C”から生成できるパターン発生器(G”)の動作は次の通りである。
Figure 0004759392
この実施例3によれば、入力制約条件(C0)およびすべての優先条件(Ck)を一つの論理式に統合してからパターン発生器(G)〜(G”)の生成処理をおこなうことで、生成されるパターン発生器(G)〜(G”)の規模を小さくする最適化処理をおこないやすいという効果を得ることができる。
以上説明したように、この発明の実施の形態1,2にかかる検証支援装置によれば、特別な状況を狙い撃ちでテストしつつ、可能な限り広範囲の状況をテストすることができる。したがって、検証作業の短縮化および高精度化を図ることができる。
なお、本実施の形態で説明した検証支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
(付記1)検証対象への入力が必ず満たさなければならない入力制約条件を表現する論理式と、前記検証対象の検証動作の中から優先的に選ばれた検証動作(以下、「優先検証動作」という)を表現する論理式とを取得させる取得工程と、
前記取得工程によって取得された論理式を用いて、前記優先検証動作において前記入力制約条件を満たす入力を前記検証対象に送りたいという優先条件を表現する論理式を算出させる優先条件算出工程と、
前記入力制約条件を表現する論理式と、前記優先条件算出工程によって算出された前記優先条件を表現する論理式とに基づいて、前記入力制約条件を満たす前記検証対象への入力のパターン(以下、「基本パターン」という)と、前記優先条件を満たす前記検証対象への入力のパターン(以下、「優先パターン」という)とを選択的に発生させるパターン発生器を構築させる構築工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
(付記2)前記構築工程は、
前記入力制約条件を表現する論理式に基づいて、前記基本パターンを発生させる基本パターン発生器の動作を表現する論理式を算出させる基本パターン発生器算出工程と、
前記優先条件を表現する論理式に基づいて、前記優先パターンを発生させる優先パターン発生器の動作を表現する論理式を算出する優先パターン発生器算出工程と、を含み、
前記基本パターン発生器算出工程によって算出された論理式と前記優先パターン発生器算出工程によって算出された論理式とに基づいて、前記パターン発生器を構築させることを特徴とする付記1に記載の検証支援プログラム。
(付記3)前記取得工程は、
前記優先検証動作が複数存在する場合に、ユーザによって指定された前記優先検証動作の優先順位を取得させ、
前記構築工程は、
さらに、前記取得工程によって取得された前記優先検証動作の優先順位に従って前記優先パターンが発生するように、前記パターン発生器を構築させることを特徴とする付記1または2に記載の検証支援プログラム。
(付記4)前記優先条件算出工程は、
前記優先検証動作が複数存在する場合、前記各優先検証動作に応じた各優先条件を表現する論理式の論理積を算出させ、
前記構築工程は、
前記入力制約条件を表現する論理式と、前記優先条件算出工程によって算出された論理積とに基づいて、前記基本パターンと前記各優先パターンとを選択的に発生させるパターン発生器を構築させることを特徴とする付記1〜3のいずれか一つに記載の検証支援プログラム。
(付記5)前記入力制約条件を表現する論理式は、
前記検証対象の入出力と前記検証対象の入出力に応じて状態遷移する有限状態機械の状態変数とを用いた論理式であり、
前記優先条件を表現する論理式は、
前記検証対象への入力群と、前記検証対象からの出力または/および前記有限状態機械の状態変数からなる変数群とを用いた論理式であることを特徴とする付記4に記載の検証支援プログラム。
(付記6)前記構築工程は、
前記入力群と前記変数群とを用いた論理式に基づいて、前記優先条件が満たされる場合に前記変数群によって特定される前記優先パターンの選択条件を表現する論理式を算出する優先パターン選択条件算出工程を含み、
前記優先パターン選択条件算出工程によって算出された前記優先パターンの選択条件を表現する論理式の値に応じて前記基本パターンと前記優先パターンとを選択的に発生させるパターン発生器を構築させることを特徴とする付記5に記載の検証支援プログラム。
(付記7)前記構築工程は、
前記入力群と前記変数群とを用いた論理式に基づいて、前記優先条件が満たされる場合に前記変数群によって特定される前記優先パターンの選択条件を表現する論理式を算出させる優先パターン選択条件算出工程と、
前記入力制約条件を表現する論理式と、前記優先条件を表現する論理式と、前記優先パターンの選択条件を表現する論理式とに基づいて、前記入力制約条件および前記優先条件を満たす優先条件付制約論理式を算出させる優先条件付制約論理式算出工程を含み、
前記優先条件付制約論理式算出工程によって算出された優先条件付制約論理式に基づいて、前記基本パターンと前記優先パターンとを選択的に発生させるパターン発生器を構築させることを特徴とする付記5に記載の検証支援プログラム。
(付記8)付記1〜7のいずれか一つに記載の論理検証プログラムを記録したコンピュータ読み取り可能な記録媒体。
(付記9)検証対象への入力が必ず満たさなければならない入力制約条件を表現する論理式と、前記検証対象の検証動作の中から優先的に選ばれた検証動作(以下、「優先検証動作」という)を表現する論理式とを取得する取得手段と、
前記取得手段によって取得された論理式を用いて、前記優先検証動作において前記入力制約条件を満たす入力を前記検証対象に送りたいという優先条件を表現する論理式を算出する優先条件算出手段と、
前記入力制約条件を表現する論理式と、前記優先条件算出手段によって算出された前記優先条件を表現する論理式とに基づいて、前記入力制約条件を満たす前記検証対象への入力のパターン(以下、「基本パターン」という)と、前記優先条件を満たす前記検証対象への入力のパターン(以下、「優先パターン」という)とを選択的に発生させるパターン発生器を構築する構築手段と、
を備えることを特徴とする検証支援装置。
(付記10)検証対象への入力が必ず満たさなければならない入力制約条件を表現する論理式と、前記検証対象の検証動作の中から優先的に選ばれた検証動作(以下、「優先検証動作」という)を表現する論理式とを取得する取得工程と、
前記取得工程によって取得された論理式を用いて、前記優先検証動作において前記入力制約条件を満たす入力を前記検証対象に送りたいという優先条件を表現する論理式を算出する優先条件算出工程と、
前記入力制約条件を表現する論理式と、前記優先条件算出工程によって算出された前記優先条件を表現する論理式とに基づいて、前記入力制約条件を満たす前記検証対象への入力のパターン(以下、「基本パターン」という)と、前記優先条件を満たす前記検証対象への入力のパターン(以下、「優先パターン」という)とを選択的に発生させるパターン発生器を構築する構築工程と、
を含んだことを特徴とする検証支援方法。
以上のように、本発明にかかる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法は、ハードウェアモジュールの検証に有用である。
この発明の実施の形態1にかかる検証支援装置のハードウェア構成を示すブロック図である。 この発明の実施の形態1にかかる検証支援装置の機能的構成を示すブロック図である。 入力制約条件(C0)と優先条件(Ck)とを定義するモデルを示す説明図である。 構築部によって構築されたパターン発生器(G)を示す説明図である。 構築されたパターン発生器(G)の内部構成を示す説明図である。 この発明の実施の形態1にかかる検証支援装置の検証支援処理手順を示すフローチャートである。 実施例1における入力制約条件(C0)と優先条件(C1)とを定義するモデルを示す説明図である。 状態変数uの状態遷移グラフを示す説明図である。 構築部によって構築されたパターン発生器(G)を示す説明図である。 構築されたパターン発生器(G)の内部構成を示す説明図である。 優先条件(C1),(C2)に対応したパターン発生器(G’)の内部構成を示す説明図である。 この発明の実施の形態2にかかる検証支援装置の機能的構成を示すブロック図である。 この発明の実施の形態2にかかる検証支援装置の検証支援処理手順を示すフローチャートである。 検証対象となるハードウェアモジュールの一例を示す説明図である。 入力制約条件を定義するモデルを示す説明図である。 状態変数sの値変化を表現した状態遷移グラフを示す説明図である。 入力制約条件の論理式C0を出発点として自動生成されたパターン発生器(G0)を示す説明図である。
符号の説明
200 検証支援装置
201 取得部
202 優先条件算出部
203 構築部
211 基本パターン発生器算出部
212 優先パターン発生器算出部
213 優先パターン選択条件算出部
214 接続部
1200 優先条件付制約論理式算出部
1400 検証対象

Claims (5)

  1. 検証対象への入力群のベクトルが必ず満たさなければならない入力制約条件を表現する論理式と、前記検証対象の検証動作の中から優先的に選ばれた検証動作(以下、「優先検証動作」という)を表現する論理式とを取得させる取得工程と、
    前記取得工程によって取得された論理式を用いて、前記検証対象への入力群のベクトルと、前記検証対象からの出力または/および前記検証対象の入出力に応じて状態遷移にする有限状態機械の状態変数からなる変数群のベクトルとにより、前記優先検証動作において前記入力制約条件を満たす入力を前記検証対象に送りたいという優先条件を表現する論理式を算出させる優先条件算出工程と、
    前記入力制約条件を表現する論理式と、前記優先条件算出工程によって算出された前記優先条件を表現する論理式とに基づいて、前記入力制約条件を満たす前記検証対象への入力群のベクトルのパターン(以下、「基本パターン」という)と、前記優先条件を満たす前記変数群のベクトルの値割り当てにおける前記検証対象への入力群のベクトルのパターン(以下、「優先パターン」という)とを選択的に発生させるパターン発生器を構築させる構築工程と、
    をコンピュータに実行させることを特徴とする検証支援プログラム。
  2. 前記構築工程は、
    前記入力制約条件を表現する論理式に基づいて、前記基本パターンを発生させる基本パターン発生器の動作を表現する論理式を算出させる基本パターン発生器算出工程と、
    前記優先条件を表現する論理式に基づいて、前記優先パターンを発生させる優先パターン発生器の動作を表現する論理式を算出させる優先パターン発生器算出工程と、を含み、
    前記基本パターン発生器算出工程によって算出された論理式と前記優先パターン発生器算出工程によって算出された論理式とに基づいて、前記パターン発生器を構築させることを特徴とする請求項1に記載の検証支援プログラム。
  3. 請求項1または2に記載の論理検証プログラムを記録したコンピュータ読み取り可能な記録媒体。
  4. 検証対象への入力群のベクトルが必ず満たさなければならない入力制約条件を表現する論理式と、前記検証対象の検証動作の中から優先的に選ばれた検証動作(以下、「優先検証動作」という)を表現する論理式とを取得する取得手段と、
    前記取得手段によって取得された論理式を用いて、前記検証対象への入力群のベクトルと、前記検証対象からの出力または/および前記検証対象の入出力に応じて状態遷移にする有限状態機械の状態変数からなる変数群のベクトルとにより、前記優先検証動作において前記入力制約条件を満たす入力を前記検証対象に送りたいという優先条件を表現する論理式を算出する優先条件算出手段と、
    前記入力制約条件を表現する論理式と、前記優先条件算出手段によって算出された前記優先条件を表現する論理式とに基づいて、前記入力制約条件を満たす前記検証対象への入力群のベクトルのパターン(以下、「基本パターン」という)と、前記優先条件を満たす前記変数群のベクトルの値割り当てにおける前記検証対象への入力群のベクトルのパターン(以下、「優先パターン」という)とを選択的に発生させるパターン発生器を構築する構築手段と、
    を備えることを特徴とする検証支援装置。
  5. 取得手段、優先条件算出手段、および構築手段を備えるコンピュータが、
    前記取得手段により、検証対象への入力群のベクトルが必ず満たさなければならない入力制約条件を表現する論理式と、前記検証対象の検証動作の中から優先的に選ばれた検証動作(以下、「優先検証動作」という)を表現する論理式とを取得する取得工程と、
    前記優先条件算出手段により、前記取得工程によって取得された論理式を用いて、前記検証対象への入力群のベクトルと、前記検証対象からの出力または/および前記検証対象の入出力に応じて状態遷移にする有限状態機械の状態変数からなる変数群のベクトルとにより、前記優先検証動作において前記入力制約条件を満たす入力を前記検証対象に送りたいという優先条件を表現する論理式を算出する優先条件算出工程と、
    前記構築手段により、前記入力制約条件を表現する論理式と、前記優先条件算出工程によって算出された前記優先条件を表現する論理式とに基づいて、前記入力制約条件を満たす前記検証対象への入力群のベクトルのパターン(以下、「基本パターン」という)と、前記優先条件を満たす前記変数群のベクトルの値割り当てにおける前記検証対象への入力群のベクトルのパターン(以下、「優先パターン」という)とを選択的に発生させるパターン発生器を構築する構築工程と、
    を実行することを特徴とする検証支援方法。
JP2006007940A 2006-01-16 2006-01-16 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法 Expired - Fee Related JP4759392B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006007940A JP4759392B2 (ja) 2006-01-16 2006-01-16 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
US11/520,940 US7469393B2 (en) 2006-01-16 2006-09-14 Method and device for supporting verification, and computer product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006007940A JP4759392B2 (ja) 2006-01-16 2006-01-16 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法

Publications (2)

Publication Number Publication Date
JP2007188443A JP2007188443A (ja) 2007-07-26
JP4759392B2 true JP4759392B2 (ja) 2011-08-31

Family

ID=38264774

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006007940A Expired - Fee Related JP4759392B2 (ja) 2006-01-16 2006-01-16 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法

Country Status (2)

Country Link
US (1) US7469393B2 (ja)
JP (1) JP4759392B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4241859B2 (ja) 2007-07-19 2009-03-18 トヨタ自動車株式会社 パワーモジュールの製造方法、パワーモジュール、車両用インバータ、及び車両
JP4918907B2 (ja) * 2007-10-23 2012-04-18 富士通株式会社 テストデータ生成プログラム、テストデータ生成装置及びテストデータ生成方法
US8219376B2 (en) * 2008-02-27 2012-07-10 International Business Machines Corporation Verification using directives having local variables
JP5239747B2 (ja) * 2008-10-29 2013-07-17 富士通株式会社 論理シミュレーションプログラム、論理シミュレーション装置、論理シミュレーション方法
US9211645B2 (en) * 2012-12-13 2015-12-15 Korea Institute Of Industrial Technology Apparatus and method for selecting lasting feeling of machine
US9324245B2 (en) * 2012-12-13 2016-04-26 Korea Institute Of Industrial Technology Apparatus and method for creating artificial feelings
US20140280412A1 (en) * 2013-03-15 2014-09-18 Nvidia Corporation System, method, and computer program product for determining a random value
US9323502B2 (en) 2013-03-15 2016-04-26 Nvidia Corporation System, method, and computer program product for altering a line of code
US9171115B2 (en) 2013-04-10 2015-10-27 Nvidia Corporation System, method, and computer program product for translating a common hardware database into a logic code model

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04256176A (ja) * 1991-02-08 1992-09-10 Hokuriku Nippon Denki Software Kk 論理検証方式
US6975976B1 (en) * 2000-03-20 2005-12-13 Nec Corporation Property specific testbench generation framework for circuit design validation by guided simulation
US6728939B2 (en) * 2001-01-08 2004-04-27 Siemens Aktiengesellschaft Method of circuit verification in digital design
JP4355525B2 (ja) * 2002-10-09 2009-11-04 富士通マイクロエレクトロニクス株式会社 検証支援方法、検証支援プログラムおよび検証支援装置

Also Published As

Publication number Publication date
US20070168894A1 (en) 2007-07-19
US7469393B2 (en) 2008-12-23
JP2007188443A (ja) 2007-07-26

Similar Documents

Publication Publication Date Title
JP4759392B2 (ja) 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
JP2006190209A (ja) 検証支援プログラム、記録媒体、検証支援装置、および検証支援方法
JP4481762B2 (ja) 論理検証装置、論理検証方法、論理検証プログラムおよび記録媒体
US8661384B2 (en) Verification support apparatus, verifying apparatus, computer product, verification support method, and verifying method
JP5040758B2 (ja) シミュレーション装置、シミュレーション方法及びプログラム
US8312400B2 (en) Verification supporting system
JP2007317096A (ja) 検証シナリオ作成プログラム、記録媒体、検証シナリオ作成装置および検証シナリオ作成方法
US7911466B2 (en) Method and apparatus for editing timing diagram, and computer product
US8458110B2 (en) Verification support apparatus, verification support method, and computer product
US8234613B2 (en) Program, design apparatus, and design method for dynamic reconfigurable circuit
US7536620B2 (en) Method of and apparatus for validation support, computer product for validation support
JP5316405B2 (ja) Lsi試験装置、lsi試験方法、lsi試験プログラムおよび記録媒体
US20090326906A1 (en) Verification support apparatus, verification support method, and computer product
JP5640790B2 (ja) 検証支援プログラム、検証支援装置、および検証支援方法
JP4649356B2 (ja) 消費電力算出プログラム、記録媒体、消費電力算出方法、および消費電力算出装置
US20080209368A1 (en) Layout design method, layout design apparatus, and computer product
JP2008004024A (ja) レイアウト設計プログラム、該プログラムを記録した記録媒体、レイアウト設計装置、およびレイアウト設計方法
JP4747036B2 (ja) Lsi解析プログラム、該プログラムを記録した記録媒体、lsi解析装置、およびlsi解析方法
JP2009140028A (ja) ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、制御プログラムおよび可読記録媒体
JP5825409B2 (ja) 検証支援プログラム、検証支援装置、および検証支援方法
JP5136257B2 (ja) 経路管理方法
JP2008117136A (ja) 検証支援プログラム、記録媒体、検証支援装置および検証支援方法
JP2010108016A (ja) 消費電力計算プログラム、該プログラムを記録した記録媒体、消費電力計算装置および消費電力計算方法
JP4985858B2 (ja) 検証支援装置、検証支援方法、検証支援プログラム、および記録媒体
JP2010271853A (ja) 検証支援プログラム、検証支援装置、および検証支援方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101019

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110531

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110606

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140610

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees