JP5075695B2 - プロパティ記述のカバレッジ測定装置及びプログラム - Google Patents

プロパティ記述のカバレッジ測定装置及びプログラム Download PDF

Info

Publication number
JP5075695B2
JP5075695B2 JP2008070323A JP2008070323A JP5075695B2 JP 5075695 B2 JP5075695 B2 JP 5075695B2 JP 2008070323 A JP2008070323 A JP 2008070323A JP 2008070323 A JP2008070323 A JP 2008070323A JP 5075695 B2 JP5075695 B2 JP 5075695B2
Authority
JP
Japan
Prior art keywords
automaton
design
property
state
coverage
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
JP2008070323A
Other languages
English (en)
Other versions
JP2008269585A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008070323A priority Critical patent/JP5075695B2/ja
Priority to US12/054,610 priority patent/US8037002B2/en
Publication of JP2008269585A publication Critical patent/JP2008269585A/ja
Application granted granted Critical
Publication of JP5075695B2 publication Critical patent/JP5075695B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、LSI設計など電子回路を主とするシステムの設計に関し、特にプロパティ記述言語を利用した設計記述の検証に関する。
電子回路を主とするシステムの設計において、時相論理や正規表現をベースとしたプロパティ記述言語を使ってプロパティ(対象の設計について守られるべき制約)を記述し、そのプロパティ記述を足がかりにして、設計記述の検証を行う方法が盛んに用いられている。
プロパティ記述は、一般に設計の一部について制約を付与するもので、ほとんどの場合は設計記述全体に対して付与されることはない。また、プロパティ記述を使って設計されたシステムの挙動を全て網羅することは、一般的に不可能である。
一方、プロパティ記述を利用して設計記述の検査を行った場合、プロパティ記述が付与された部分の挙動については検査が可能であるが、付与されていない部分の挙動は検査不可能となる。すなわち、プロパティ記述を用いた検査を通過した設計記述の内部は、(1)検査に合格した部分、(2)検査に落第した部分、(3)検査されなかった部分(非活性な記述)、の3種類に分かれることとなる。特に3番目の非活性な記述については、上述のプロパティ記述の特性から混入は不可避であるが、検査に合格した部分との区別がつかないため、非活性記述の存在は、プロパティ記述を用いた検査では本質的な問題である。
特許文献1、2には、テストやシミュレーション等の検査後にテストカバレッジを測定し、これにより得られたカバレッジデータをもとに検査で非活性であった設計のコードを抽出する手法について記載されている。しかし、測定によりカバレッジデータが得られるのはテストやシミュレーション等の設計の後工程であり、またテストによる検査には時間を要する。したがって、設計記述に付与されたプロパティ記述がどれだけ有効であるかは、設計の後工程にならないと推定することができず、推定するにしても、多大な時間を要するという問題点がある。また、プロパティ記述以外に、入力となるテストベンチの与え方に起因して更なる非活性な記述が生まれてしまう問題もある。
特許文献3には、モデル検査と同時に非活性記述を抽出することが記載されている。しかし、この特許文献3に記載された手法はモデルそのものの検査自体に極めて時間がかかるものであり、モデルを構築するための作業工数に少なくとも数日程度は必要である。
特開2006−221473公報 特開2002−099584公報 特開2006−106865公報
本発明は、設計記述に対するプロパティ記述のカバレッジを早期かつ容易に測定することのできるカバレッジ測定装置及びプログラムを提供することを目的とする。
本発明の一観点に係わるプロパティ記述のカバレッジ測定装置は、設計記述データから、その状態遷移を表す設計オートマトンを抽出する設計オートマトン抽出部と、前記設計記述データに対応するプロパティ記述データから、その状態遷移を表すプロパティオートマトンを抽出するプロパティオートマトン抽出部と、前記設計オートマトンの全状態数を計数するとともに、前記設計オートマトンから前記プロパティオートマトンへのオートマトン上の模倣関係の有無により、前記設計オートマトンにおける全状態のうち前記プロパティオートマトンに合致する合致状態を検出し、その合致状態数を計数する合致状態検出部と、前記合致状態数と前記設計オートマトンの全状態数との比を求めることにより、前記設計記述データに対して前記プロパティ記述データがどの程度対応しているのかの度合いを表す第1のカバレッジを算出するカバレッジ算出部と、を具備する。
本発明によれば、テストなどの多大な手間と時間を要する検査を経ることなく、設計記述に対するプロパティ記述のカバレッジを早期かつ容易に測定することができる。したがって、与えられたプロパティ記述が設計記述の検証にどの程度有効かを迅速に判断できるようになり、設計の信頼性を高めるための指標としてプロパティ記述のカバレッジを有効に活用できる。
図1は、本発明の一実施形態に係るプロパティ記述のカバレッジ測定装置を示すブロック図である。
本装置は、設計記述2、及び設計記述2に対応するプロパティ記述3を入力する入力部1と、設計記述1から、その状態遷移を表すオートマトンの記述(以下、「設計オートマトン」という。)を抽出する設計オートマトン抽出部4と、プロパティ記述3から、その状態遷移を表すオートマトンの記述(以下、「プロパティオートマトン」という。)を抽出するプロパティオートマトン抽出部5と、設計オートマトン6における全状態のうちプロパティオートマトン7に合致する状態(以下、「合致状態」という。)を検出する合致状態検出部8と、設計オートマトン6の全状態及び合致状態検出部8により検出された合致状態等を記録する状態記録部9と、状態記録部9に記録された情報10を用いてカバレッジ12を算出するカバレッジ算出部11とを具備する。カバレッジ12は、設計記述2に対してプロパティ記述3がどの程度対応しているのかの度合いを表す指標である。特に本実施形態において、合致状態検出部8はオートマトン上の模倣関係を利用して合致状態の検出を行う。また合致状態検出部8は、模倣関係を利用し、設計オートマトン6中の合致状態を同値類に分割する。
本装置は、汎用的なコンピュータのハードウェア資源を用いて情報処理を行うソフトウェアとして実現することができる。
以上のように構成された本実施形態に係るカバレッジ測定装置の動作を説明する。
まず、入力部1を通じて、設計記述2及びプロパティ記述3が本装置に入力される。例えば設計記述2及びプロパティ記述3は電子的なファイルの形態であり、入力部1はそのようなファイルを開き、設計記述2のデータ及びプロパティ記述のデータ3を読み出す。
次に、設計オートマトン抽出部4は、入力された設計記述2のデータから、その制御フローを示すラベルつきの設計オートマトン6を抽出する。ここでは、設計記述2内の変数の変化を解析する手法により設計オートマトン6を得るものとする。設計オートマトン6の各遷移関係におけるラベルには、その遷移中に行われる信号への代入の列が記載される。
状態間の接続を作成するときは、状態遷移によって変化する変数(信号)を実際に変化させるような代入関係の列がラベルとして与えられる。
図2は、特に設計記述がVerilog HDL(ハードウェア記述言語)によって記述されている場合の、設計記述から設計オートマトンを抽出する処理の手順を示すフローチャートである。
設計記述2は、例えばVerilog HDLで記述されているものとする。その具体例は、後述する図7に示す。
まず、設計記述2において値が代入されている信号を抽出する(ステップS1)。次に、全ての信号が取り得る値の組合せを作成し、それぞれを「状態」とする(ステップS2)。次に、未処理のalwaysブロックがあるか否かを判定する(ステップS3)。未処理のalwaysブロックが存在する場合(ステップS3==YES)に、この未処理のalwaysブロックはステップS4〜ステップS10に従って処理される。
ステップS4において、未処理のalwaysブロックを1つ取得する。このalwaysブロックについて、未処理のcase文があるならばそのcase文の条件節と対応する代入文とを組にする(ステップS5,S6)。また、未処理のif文があるならばif文の条件節とthen節にある各代入文との組を作り、if文の条件節の否定とelse節にある各代入文との組を作る(ステップS7,S8,S9)さらに、恒真値(true)と各代入文との組を作る(ステップS10)。
未処理のalwaysブロックが全て処理されたならば(ステップS3==NO)、always文同士で代入文を1つずつ取り出し、条件節と代入文の組を合成する(ステップS11)。以下、ステップS12〜ステップS16の処理により、条件節と代入文の組を遷移に変換する。
ステップS13では、条件節と代入文の組を1つ抽出する。この抽出された条件節に合致する状態があるか否かをステップS14において判定する。抽出された条件節に合致する状態がある場合(ステップS14==YES)、この合致する状態を遷移元とし、代入文を遷移先とする「遷移」を作成する(ステップS15)。ステップS13において抽出された組について、条件節に合致する状態が存在しない場合(ステップS14==NO)には、ステップS12に戻る。ステップS15において遷移が作成されたならば、ステップS16において、代入文で得られる信号の状態を遷移先とし、ステップS12に戻る。
最後に、1クロック内で処理される直列の複数遷移を1つにまとめ、設計オートマトン抽出の処理を終了する(ステップS17)。
以上の処理によって得られた設計オートマトン6は状態記録部9に記録される。状態記録部9の内部においては設計オートマトン6中の全状態を列挙したリストが作成される。
一方、プロパティオートマトン抽出部5はプロパティ記述3のデータからプロパティオートマトン7を抽出する。プロパティ記述3は設計記述2に対応している。ここでは、ある変数の値、括弧「()」、0回以上の繰り返し「*」、1回以上の繰り返し「+」の4つの要素から構成される正規表現でプロパティを表現することとする。尚、プロパティ記述3を時相論理により記述してもよい。時相論理で記述された場合、E.Clarke Jr 「Model Checking」(ISBN:978−0262032704)の4.2節や6.7節に示されるような、タブロー法と呼ばれるアルゴリズムなどを応用して、オートマトンに変換する事ができる。
プロパティ記述3は例えば次のような形式の時相論理式、すなわちG((v==a→X v==b)∧(v==a→X v==b)∧...)によって記述することができる。これは、1つの信号に対して、“X”(次のクロック)と“→”(含意)を用いて値の定義を行うものである。時相論理による論理式を用いる場合のオートマトンへの変換方法は、上記のようにタブロー法を用いる方法があるが、上記のような形式でプロパティが記述されている場合の、該プロパティ記述のオートマトンへの変換方法については後述する。
図3は上述の記法の定義に従って、正規表現で記述されたプロパティ記述からプロパティオートマトンを抽出する処理の手順を示すフローチャートである。
まず、プロパティ記述3を表す文字列の先頭が「(S)+」の形式かどうかを判定する(ステップS20)。「(S)+」の形式であれば、ステップS21において先頭を「(S)(S)*」の形式に変更し、ステップS25に進む。先頭が「(S)+」の形式でないならば、ステップS22に進む。
ステップS22では、プロパティ記述3を表す文字列の先頭が「(S)*」の形式かどうかを判定する。先頭が「(S)*」の形式であるならば、Sに対してオートマトン抽出を行う(ステップS23)。この処理は再帰的に行われる。Sについてのオートマトン抽出を終えたら、ステップS24においてSの終端からSの始点への遷移を作成し、ステップS26に進む。ステップS22において、先頭が「(S)*」の形式でないと判定されたならば、Sを持つ「状態」を作成する(ステップS25)。
次に、ステップS26において、後続があるか否かを判定する。後続が無いならばプロパティオートマトン抽出の処理を終える。後続がある場合、この後続に対してオートマトン抽出を行う(ステップS27)。ここでの処理も再帰的に行われる。後続についてのオートマトン抽出を終えたら、先頭の終端から後続の始端への「遷移」を作成し(ステップS28)、プロパティオートマトン抽出の処理を終了する。
設計オートマトン6とプロパティオートマトン7が得られた後、これらは合致状態検出部8に入力される。合致状態検出部8は合致状態の検出を行う。上述したように、合致状態検出部8は、合致状態の検出にオートマトン上の2状態の模倣関係を利用する。ここで、模倣関係(弱い模倣関係)とは次のように定義される。すなわち、「オートマトン上の2状態p,qが模倣関係にある(qがpを模倣する)」とは、「pから遷移する任意の状態p’に対応して、p→p’の遷移がイベント列αで与えられるとき、qにも同様に、qからαで遷移する状態q’が存在する。」というものである。
このような模倣関係の定義に沿って、合致状態検出部8は設計オートマトン6上の各状態が模倣するような、プロパティオートマトン7上の状態を合致状態として検出する。このとき、プロパティオートマトン7上の同じ状態を模倣する、設計オートマトン6上の任意の2状態の間に同値関係が成り立っているものとする。この同値関係に基づき、設計オートマトン6中の合致状態を同値類に分類できる。
図4は、模倣関係を用いた合致状態を抽出する処理の手順を示すフローチャートである。
まず、自分自身を遷移元とするような遷移が存在しない状態(無遷移状態)があるかどうかを設計オートマトン6内で探索する(ステップS30)。もしそのような状態が見つかれば、その状態に対して特別なラベルεを持つ、自分自身への遷移(ε遷移)を付加する(ステップS31)。
次に、設計オートマトン6とプロパティオートマトン7のそれぞれについて、遷移関係とラベルの組を抽出する。具体的には、(遷移元状態,遷移先状態,ラベル)の3つ組からなるデータの集合(遷移データ集合)を得る(ステップS32)。
次に、設計オートマトン6とプロパティオートマトン7のそれぞれの遷移データ集合の組合せを計算する(ステップS33)。このとき組み合わせることができるのは、ラベルが等しいような設計オートマトン6の遷移データ(設計遷移データ)と、プロパティオートマトン7の遷移データ(プロパティ遷移データ)である。ここでは、ラベルが等しいかどうかは、設計オートマトン6のラベルで定義された代入関係が、プロパティオートマトン7のラベルで定義された代入関係を満たすかどうか(前者が後者の代入関係を包含しているか)で判別する。もしくは、先に定義したεのラベルについては、もう一方のラベルがどのようなラベルに対しても等しいと判別する。
そして、得られた設計遷移データとプロパティ遷移データの組(遷移データペア)の集合を基に、ステップS34〜S37の処理により合致状態集合を計算する。この集合は、実際には、状態記録部9に記録される。合致状態集合の計算のために、例えば図5に示すような仮合致状態木を作成する(ステップS35)。この仮合致状態木作成の処理は再帰的に行われる。
図6は、仮合致状態木作成の処理手順を示すフローチャートである。
まず、遷移データペアのある一つ組を適当に選び出し、仮合致状態木の根ノードに追加する(ステップS40)。また、初めて仮合致状態を作成する最初の時点では、合致状態集合は空にしておく。
次に、リストに追加された組における設計遷移データに記載された、遷移先状態を遷移元状態とする設計遷移データを探し出し、それを含む遷移データペアを全て抽出して、それらの遷移データペアを遷移データペア集合から削除しつつ、根ノードの子ノードとして記録する(ステップS41〜S44)。以下、順次に、各子ノードに対しても同様の処理をし、子ノードを追加していく(ステップS45〜S48)。この際、既に仮合致状態木に登録されている遷移データペアが再度現れた場合、又は合致状態集合に含まれる状態が設計遷移データの遷移先状態に現れた場合には、そのノードは葉として、それ以上そのノードからの枝は伸ばさない。葉となったノードには葉としての印をつけておく。
こうして、全ての枝を子ノードの方向へたどった先が葉ノードになった時点で、仮合致状態木作成は成功とみなされ(ステップS45)、登録されている全ての遷移データペアに含まれる設計オートマトン6の遷移元状態は合致状態となる。
図4のフローチャートの説明に戻る。以上の処理により仮合致状態木の作成が成功となったら(ステップS36==YES)、これら合致状態を合致状態集合に登録する(ステップS37)。この登録処理は、実際には状態記録部9において、既に記録されている設計オートマトン6の状態にマーキングをすることにより行うものとする。ここでいう「マーキング」とは、各状態に、遷移データペアにて対応していたプロパティオートマトン7の遷移元状態名をタグとして付加する処理とする。ただし、既に同じタグがつけられている場合は、タグ付けの処理を行わない。付加されたタグはソートされ、同じタグの違う順序のタグのつき方がないように行われる。
一方、図6のフローチャートにおいて、全ての枝をたどった先が葉ノードにならないうちに、子ノードに追加すべき遷移データペアの集合が空になった場合は、仮合致状態木作成は失敗とみなされ、合致状態集合には登録しない(ステップS43)。
図5の仮合致状態木は、まだ完成されていない木を示したものである。この図において、下線が引かれているノードが葉ノードを意味している。この木の中で、「(r,p,b)−(x,y,b)」がまだ葉ノードではなく、このノードを選択して処理が続行されることになる。
木の作成が終わった後、遷移データペアの集合が空になっていたら、合致状態抽出処理は終了する(図4のステップS34)。まだ遷移データペアの集合が空でないならば、残されている遷移データペアの1つを根ノードとして、新たに仮合致状態作成木の作成を始める。
こうして得られた合致状態と元の全ての状態を状態記録部9にてカウント(計数)し、これにより合致状態数と全状態数が得られる。
また、以下で説明するカバレッジ12の内容に応じて、同値類数を計算する処理を行う。同値類かどうかは、上述の処理が終わった後の状態記録部9の各状態に、同じタグの組合せが付けられているか否かによって判定することができる。ここでの処理は次のとおりである。まず、タグがついた状態を1つ取り出し、そのタグの組合せをタグ組合せリストに記録する。その後、次々にタグがついた状態を1つ取り出し、もしタグ組合せリストに同じタグの組合せが記録されていなければ、新たにそのタグの組合せを追加する。一方、同じタグの組み合わせが既に記録されているならば、そのタグについては特に処理を行わない。以上の処理を、全てのタグつき状態に対して行う。
以上の処理を経て、状態記録部9は「全状態数」、「合致状態数」、「同値類数」を含む情報を出力する。この情報を元に、カバレッジ算出部11はプロパティ記述3のカバレッジ12を算出する。カバレッジ12は、具体的には例えば次の4種類の算出方法によって算出することが考えられる。
[カバレッジ1]:(合致状態数)/(全状態数)
[カバレッジ2]:(同値類数)/(合致状態数)
[カバレッジ3]:[カバレッジ1]と[カバレッジ2]の値の組
[カバレッジ4]:(同値類数)/(全状態数)
上記[カバレッジ1]は、単純に、プロパティ記述3の要件を満たし得る設計オートマトン6上の状態が全体のどれだけを占めているか、という割合である。この割合が低いほど、プロパティ記述3の要件を満たさないか、あるいはプロパティ記述3には無関係の記述(非活性になりうる記述)が多いということになる。
上記[カバレッジ2]は、[カバレッジ1]の補強となる指標である。同じ数の合致状態を持つようなプロパティ記述3であっても、プロパティ記述3の内容如何で、表現されている制約の精密度に差がある。この差は同値類数に現れる。制約が精密でないプロパティ記述3に対しては同値類数が少なく、精密なプロパティ記述3では同値類数が多くなる。
[カバレッジ3]及び[カバレッジ4]は、いずれも[カバレッジ1]と[カバレッジ2]の組合せに係る。[カバレッジ3]は、上記2つのカバレッジをそのまま組にするもので、それぞれの値が高いほど、プロパティ記述3のカバレッジと精度が高まる。[カバレッジ4]は2つの指標の両方の特性を併せ持つスカラー値である。この値が低い場合は、プロパティ記述3のカバレッジが低いか、あるいは精密度が低いかであることが予想できる。
(具体例)
次に具体例として、図7に示すVerilog HDL(ハードウェア記述言語)で記述された、ある回路の設計記述2に対し、図8に示すようなプロパティ記述3が付与されているときの、カバレッジの算出例を説明する。図8のプロパティ記述3は図7の設計記述2に対応しており、正規表現で記述されたものである。ちなみに、図8の記述は、「変数aが1クロック以上0になり続け、次にaが1クロック以上1になり続ける。以上の状態が任意回繰り返される。」という意味である。
図7のHDL記述から、設計オートマトン抽出部4を通じて図9に示すような設計オートマトン6を得た。状態の中の値は、3桁目がresetの値、2桁目がaの値、1桁目がbの値を示している。但し、図9において、resetへの代入は、見易さのためあえて省いてある。そのため、同じラベルが、同じ状態から同じ状態へ移る複数の遷移に付与されているように見えるが、resetへの代入を加味すれば、実際には別のラベルである。同様に、図8のプロパティ記述から、プロパティオートマトン抽出部5を通じて図10に示すようなプロパティオートマトン7を得た。
これらから、合致状態検出部8を通じて、次に示す4組の遷移データペアを得た。
(000,001,[a<=0,b<=1])−(x,x,a<=0)
(001,011,[a<=1,b<=1])−(x,y,a<=1)
(011,010,[a<=1,b<=0])−(y,y,a<=1)
(010,000,[a<=0,b<=0])−(y,x,a<=0)
合致状態集合は{000,001,011,010}である。同値類は、{000,001}(xを模倣する状態)と{010,011}(yを模倣する状態)の2つである。
以上から、状態記録部9を通じ、全状態数の値として「6」、合致状態数の値として「4」、同値類数の値として「2」を得た。これらの値を元に、カバレッジ算出部11を通じて、図11に示すようなカバレッジを得た。
次に、プロパティ記述3が次のような形式の時相論理式、すなわちG((v==a→X v==b)∧(v==a→X v==b)∧...)によって記述される場合の、該プロパティ記述3のオートマトンへの変換方法について説明する。上述したように、この時相論理式は、1つの信号に対して、“X”(次のクロック)と“→”(含意)を用いて値の定義を行うものである。このようなプロパティをオートマトンに変換するための、プロパティオートマトン抽出部5による処理手順を図12のフローチャートに示す。すべての変数について以下のステップS2〜S9で示される処理を繰り返す。
(ステップS2)vが論理式で指定された値を取るような状態を生成する。例えばプロパティ記述がG((v==a→X v==b)∧(v==a→X v==b)で与えられており、かつa,b,a,bがいずれも違う値である場合には、(v==a),(v==b),(v==a),(v==b)という4つの状態が生成される。
(ステップS3)選択されたvが論理式で指定された値を取らない場合の状態(これを「ダミー状態」という。)を追加する。上記の例では、(v!=a)∧(v!=b)という1つのダミー状態が生成される。
以下、すべての状態について以下のステップS4〜S9で示される処理を繰り返す。
(ステップS4)状態を1つ選択し、「s」とする。
(ステップS5)選択された状態sはダミー状態であるかを判定する。該状態sがダミー状態であるならば処理はステップS6に進み、ダミー状態ではない場合には処理はステップS7に進む。
(ステップS6)選択された状態sから、該状態s自身を含む全ての状態への遷移を作成する。
(ステップS7)選択された状態sは含意記号の左辺であるかどうかを判定する。該状態sが含意記号の左辺であるならば処理はステップS8に進み、含意記号の左辺ではない場合には処理はステップS6に進む。
(ステップS8)状態sから含意記号の右辺の状態への遷移を作成する。
(ステップS9)未処理の状態が無くなるまでステップS4〜S9を繰り返す。
合致状態検出部8によって遷移データペアを得る処理は、図4を参照して既に説明したものと基本的には同じである。ただし、ここで重要なことは、合致状態検出部8および状態記録部9の処理のうち、図4のフローチャートのステップS37において登録される合致状態としては、図12の処理によって判定されたダミー状態に合致するものは対象外とすることである。つまりダミー状態に合致する合致状態は登録しない。
(別の具体例)
別の具体例として、3進カウンタ回路の例を示す。
図13はその回路に対する設計記述2として、Verilog HDLで記述した一部である。resetが0でない限り、クロック信号が入力される毎に信号cntの値が0,1,2と1ずつ加算され、2の次は0となってまた同じ動作を繰り返す。resetが1となる場合は次のクロックでcntが0になる。この設計記述に対し、図14に示すようなプロパティ記述3が付与されているとする。このプロパティ記述3は図13に対応しており、時相論理で記述されたもので、「信号cntが2(=2’b10)になったら、次のクロックで信号cntは必ず0(=2’b00)になる」を意味する。
図13の設計記述から、設計オートマトン抽出部4を通じて図15に示すような設計オートマトン6を得た。状態の中の値は信号cntの値を示す。また図14のプロパティ記述から、プロパティオートマトン抽出部5を通じて図16に示すようなプロパティオートマトン7を得た。これらから、合致状態検出部8を通じて、次に示す5組の遷移データペアを得た。
(0,1,clk)−(0,N,−)
(1,2,clk)−(N,2,−)
(2,0,clk or reset)−(2,0,−)
(0,0,clk or reset)−(0,0,−)
(1,0,clk or reset)−(N,0,−)
合致状態集合は、ダミー状態に合致する状態1を除いた2状態の集合{0,2}である。同値類は、{0}(プロパティオートマトンの“0”が模倣する状態)と{2}(プロパティオートマトンの“2”が模倣する状態)の2つである。
以上から、状態記録部9を通じ、全状態数の値として「3」、合致状態数の値として「2」、同値類数の値として「2」を得た。これらの値を元に、カバレッジ算出部11を通じて、図17に示すようなカバレッジを得た。
以上説明した実施形態によれば、テストなどの多大な手間と時間を要する検査を経ることなく、設計記述2に対するプロパティ記述3のカバレッジ12を早期かつ容易に測定することができる。したがって、与えられたプロパティ記述3が設計記述2の検証にどの程度有効かを迅速に判断できるようになり、設計の信頼性を高めるための指標としてプロパティ記述3のカバレッジ12を有効に活用できる。
以上の実施形態では、プロパティは一つであること前提として説明したが、プロパティが複数ある場合に、予め全てのプロパティオートマトンの直積を作成し、各プロパティから得られる同値類分割を重ね合わせて、細分化するように構成してもよい。また、模倣性判定のアルゴリズムについて、様々な効率的アルゴリズムが知られているので、それらを適宜利用してもよい。さらに、仮合致状態リストはツリー構造で処理するのが効率的である。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
本発明の一実施形態に係るプロパティ記述のカバレッジ測定装置を示すブロック図 設計記述から設計オートマトンを抽出する処理の手順を示すフローチャート プロパティ記述からプロパティオートマトンを抽出する処理の手順を示すフローチャート 模倣関係を用いた合致状態を抽出する処理の手順を示すフローチャート 仮合致状態木の一例を示す図 仮合致状態木作成の処理手順を示すフローチャート Verilog HDLによる設計記述の具体例を示す図 正規表現によるプロパティ記述の具体例を示す図 設計オートマトンの具体例を示す図 プロパティオートマトンの具体例を示す図 カバレッジ算出結果を示す図 プロパティ記述からオートマトンを抽出する処理の手順を示すフローチャート Verilog HDLによる設計記述の一部の具体例を示す図 時相論理によるプロパティ記述の具体例を示す図 設計オートマトンの具体例を示す図 プロパティオートマトンの具体例を示す図 カバレッジ算出結果を示す図
符号の説明
1…入力部;
2…設計記述;
3…プロパティ記述;
4…設計オートマトン抽出部;
5…プロパティオートマトン抽出部;
6…設計オートマトン;
7…プロパティオートマトン;
8…合致状態検出部;
9…状態記録部;
11…カバレッジ算出部;
12…カバレッジ

Claims (5)

  1. 設計記述データから、その状態遷移を表す設計オートマトンを抽出する設計オートマトン抽出部と、
    前記設計記述データに対応するプロパティ記述データから、その状態遷移を表すプロパティオートマトンを抽出するプロパティオートマトン抽出部と、
    前記設計オートマトンの全状態数を計数するとともに、前記設計オートマトンから前記プロパティオートマトンへのオートマトン上の模倣関係の有無により、前記設計オートマトンにおける全状態のうち前記プロパティオートマトンに合致する合致状態を検出し、その合致状態数を計数する合致状態検出部と、
    前記合致状態数と前記設計オートマトンの全状態数との比を求めることにより、前記設計記述データに対して前記プロパティ記述データがどの程度対応しているのかの度合いを表す第1のカバレッジを算出するカバレッジ算出部と、を具備するプロパティ記述のカバレッジ測定装置。
  2. 前記合致状態検出部は、前記プロパティオートマトン上の同じ状態を模倣する、前記設計オートマトン上の任意の2状態の間の同値関係に基づき、前記設計オートマトン中の合致状態を同値類に分類し、その同値類数を計数し、
    前記カバレッジ算出部は、前記同値類数と前記合致状態数との比を求めることにより第2のカバレッジを算出する請求項1に記載の装置。
  3. 前記カバレッジ算出部は、前記第1のカバレッジと前記第2のカバレッジとの組からなる第3のカバレッジを出力する請求項2に記載の装置。
  4. 前記カバレッジ算出部は、前記同値類数と前記全状態数との比を求めることにより第4のカバレッジを算出する請求項2に記載の装置。
  5. コンピュータに、
    設計記述データから、その状態遷移を表す設計オートマトンを抽出する設計オートマトン抽出手順と、
    前記設計記述データに対応するプロパティ記述データから、その状態遷移を表すプロパティオートマトンを抽出するプロパティオートマトン抽出手順と、
    前記設計オートマトンの全状態数を計数するとともに、前記設計オートマトンから前記プロパティオートマトンへのオートマトン上の模倣関係の有無により、前記設計オートマトンにおける全状態のうち前記プロパティオートマトンに合致する合致状態を検出し、その合致状態数を計数する合致状態検出手順と、
    前記合致状態数と前記設計オートマトンの全状態数との比を求めることにより、前記設計記述データに対してプロパティ記述データがどの程度対応しているのかの度合いを表す第1のカバレッジを算出するカバレッジ算出手順と、を実行させるためのプロパティ記述のカバレッジ測定プログラム。
JP2008070323A 2007-03-28 2008-03-18 プロパティ記述のカバレッジ測定装置及びプログラム Expired - Fee Related JP5075695B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008070323A JP5075695B2 (ja) 2007-03-28 2008-03-18 プロパティ記述のカバレッジ測定装置及びプログラム
US12/054,610 US8037002B2 (en) 2007-03-28 2008-03-25 Property description coverage measuring apparatus

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007086014 2007-03-28
JP2007086014 2007-03-28
JP2008070323A JP5075695B2 (ja) 2007-03-28 2008-03-18 プロパティ記述のカバレッジ測定装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2008269585A JP2008269585A (ja) 2008-11-06
JP5075695B2 true JP5075695B2 (ja) 2012-11-21

Family

ID=40048934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008070323A Expired - Fee Related JP5075695B2 (ja) 2007-03-28 2008-03-18 プロパティ記述のカバレッジ測定装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5075695B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5365182B2 (ja) * 2008-12-24 2013-12-11 日本電気株式会社 時相論理式作成支援システム、時相論理式作成支援方法及び時相論理式作成支援用プログラム
JP5370257B2 (ja) * 2010-05-06 2013-12-18 富士通株式会社 検証支援プログラム、検証支援装置および検証支援方法
JP5432069B2 (ja) * 2010-06-14 2014-03-05 ルネサスエレクトロニクス株式会社 静的検証プログラム、静的検証装置及び静的検証方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3663067B2 (ja) * 1998-12-17 2005-06-22 富士通株式会社 論理装置の検証方法、検証装置及び記録媒体
JP2006106865A (ja) * 2004-09-30 2006-04-20 Nec Corp 論理回路設計検証装置および方法、プログラム
JP2006201980A (ja) * 2005-01-19 2006-08-03 Fujitsu Ltd カバレッジ評価装置、カバレッジ評価方法、カバレッジ評価プログラム、および記録媒体

Also Published As

Publication number Publication date
JP2008269585A (ja) 2008-11-06

Similar Documents

Publication Publication Date Title
US7340475B2 (en) Evaluating dynamic expressions in a modeling application
CN117951701A (zh) 用于确定软件代码中的缺陷和漏洞的方法
CN104536883B (zh) 一种静态缺陷检测方法及其系统
US20090319246A1 (en) Detection program, detecting device, and detecting method
US8522182B2 (en) Generation of an end point report for a timing simulation of an integrated circuit
US20100042964A1 (en) Reuse of circuit labels in subcircuit recognition
US20200042662A1 (en) Method for Automatic Detection of a Functional Primitive in a Model of a Hardware System
CN103914374B (zh) 基于程序切片和频繁模式提取的代码缺陷检测方法及装置
JP6486574B2 (ja) プログラムコード生成装置、プログラムコード生成方法及びプログラムコード生成プログラム
CN110955892B (zh) 一种基于机器学习和电路行为级特征的硬件木马检测方法
JP5075695B2 (ja) プロパティ記述のカバレッジ測定装置及びプログラム
CN102968515B (zh) 用于计算集成电路模型的验证覆盖率的方法和设备
US6691079B1 (en) Method and system for analyzing test coverage
US20120290282A1 (en) Reachability analysis by logical circuit simulation for providing output sets containing symbolic values
US8266573B2 (en) Method and system for test point insertion
CN112948193B (zh) 一种基于差异测试的fpga综合工具缺陷检测方法
US8166453B2 (en) Method and system for inconsistency resolution with cycle detection in a model-driven software environment
CN116702157B (zh) 一种基于神经网络的智能合约漏洞检测方法
US8037002B2 (en) Property description coverage measuring apparatus
Raun et al. C-3PA: Streaming Conformance, Confidence and Completeness in Prefix-Alignments
US7650579B2 (en) Model correspondence method and device
JP5487078B2 (ja) ソフトウェア資産整理方法及び装置
CN109710538A (zh) 一种用于大规模系统中状态相关缺陷的静态检测方法
JPH10254930A (ja) 半導体素子の機能検証装置及びその機能検証方法
JP5900197B2 (ja) 経路条件選択装置、該プログラム、及び該方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101015

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120410

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: 20120731

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: 20120827

R151 Written notification of patent or utility model registration

Ref document number: 5075695

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20150831

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees