JP2006155378A - 論理システムの検証装置および検証方法 - Google Patents

論理システムの検証装置および検証方法 Download PDF

Info

Publication number
JP2006155378A
JP2006155378A JP2004347233A JP2004347233A JP2006155378A JP 2006155378 A JP2006155378 A JP 2006155378A JP 2004347233 A JP2004347233 A JP 2004347233A JP 2004347233 A JP2004347233 A JP 2004347233A JP 2006155378 A JP2006155378 A JP 2006155378A
Authority
JP
Japan
Prior art keywords
internal
dynamic simulation
execution
information
state
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.)
Granted
Application number
JP2004347233A
Other languages
English (en)
Other versions
JP2006155378A5 (ja
JP4434931B2 (ja
Inventor
Motohisa Ito
元久 伊藤
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2004347233A priority Critical patent/JP4434931B2/ja
Publication of JP2006155378A publication Critical patent/JP2006155378A/ja
Publication of JP2006155378A5 publication Critical patent/JP2006155378A5/ja
Application granted granted Critical
Publication of JP4434931B2 publication Critical patent/JP4434931B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Tests Of Electronic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】 論理システムの内部構成や内部仕様が明確でなくとも、エラー原因の解析を容易にする。
【解決手段】 ハードウエア記述言語で記述された論理システムの検証装置は、論理システムについて動的シミュレーションを実行しながら、その実行状態に関する情報を記録する。一方で、検証装置は、論理システムを変換して内部表現に関する情報を生成しておく。動的シミュレーションでエラーが発生した場合に、検証装置は、実行状態に関する情報と、内部表現に関する情報とに基づいて、論理システムに含まれるエラーの原因個所を探索して提示する。
【選択図】 図1

Description

本発明は、ハードウエア記述言語で記述された論理システムの検証技術に関する。
現在、LSIなどの論理システムを設計する際には、ハードウエア記述言語を用いて仕様を記述することが主流となっている(特許文献1)。
一方で、LSIを含む論理システムの規模は、毎年飛躍的に増加している。それに伴い、論理システムの検証にかかる工数も増加している。それにもかかわらず、論理システムの開発期間は従来よりも短くなっているため、論理システムの検証効率を向上させることが急務となっている。
現在、LSIを含む論理システムの検証手法には、ブラックボックス検証とホワイトボックス検証と呼ばれる手法が存在する。ブラックボックス検では、検証対象の外端仕様のみを用いて検証がおこなわれる。そのため、検証対象の内部構成や仕様に依存しないため、流用性や可読性が高く、取りまわしが便利である。
一方、ホワイトボックス検証では、検証対象の内部構成や仕様も併せて参照して検証が行われる。そのため、検証対象の動作が仕様に一致しない場合、その原因箇所の探索はブラックボックス検証に比較して容易である。
特開2002−304428号公報
ところで、ホワイトボックス検証は、検証対象内部の構成や仕様が明確でなければ実施できないといった欠点がある。よって、検証対象の仕様が外端のみ定義されている場合は、ブラックボックス検証を用いらざるを得ない。
しかしながら、ブラックボックス検証では、検証対象の動作と仕様が一致しない不具合が発生した場合(たとえば動的シミュレーションにより得られる実行値と期待値との不一致が発生した場合)、その原因箇所の探索に多くの時間がかかる。そのため、顧客の要求する開発期間を満たすことができにくくなっている。
そこで、本発明は、このような課題および他の課題の少なくとも1つを解決することを目的とする。なお、他の課題については明細書の全体を通して理解できよう。
本発明は、たとえば、ハードウエア記述言語で記述された論理システムの検証装置であって、前記ハードウエア記述言語で記述された論理システムを変換して内部表現に関する情報を生成する生成手段と、前記ハードウエア記述言語で記述された論理システムについて動的シミュレーションを実行する実行手段と、前記動的シミュレーションによる実行状態に関する情報を記録する記録手段と、前記動的シミュレーションでエラーが発生した場合に、前記動的シミュレーションの実行状態に関する情報と、前記内部表現に関する情報とに基づいて前記論理システムに含まれるエラーの原因個所を探索する探索手段とを含む。
本発明によれば、ハードウエア記述言語で記述された論理システムに関して実行された動的シミュレーションの結果からエラー原因箇所を特定できるため、論理システムの内部構成や内部仕様が明確でなくとも、エラー原因の解析が容易になる。よって、本発明は、顧客の要求する開発期間を満たすことに貢献しよう。
以下に本発明の上位概念、中位概念および下位概念の理解に役立つ一実施形態を示す。なお、以下の実施形態に含まれる概念について、そのすべてが特許請求の範囲に記載されているとは限らない。ただし、これは特許発明の技術的範囲から意識的に除外したのではなく、特許発明と均等の関係にあるため特許請求の範囲には記載していない場合があることを理解していただきたい。
図1は、実施形態に係る論理システムの検証装置の例示的なブロック図である。検証装置100のうち、DUT(検証対象デバイス)101は、Verilog あるいは VHDL などで記述された論理システムの設計データである。Verilog あるいは VHDLともハードウエア記述言語として周知であるので説明を省略する。もちろん、本発明がこれら以外のハードウエア記述言語を用いて記述された論理システムにも適用できることは言うまでもない。なお、設計データDUT101によって表現される論理システム自体をDUT101と呼ぶこともある。
論理システムの仕様は、動的シミュレーションでブラックボックス検証を実施可能な程度には少なくともDUT101において定義されているものとする。すなわち、DUT101において外端仕様は定義されているが、論理システムの内部の構成や仕様は明確に定義されていない。
内部表現変換器102は、DUT101を内部表現(DUT)104に変換し、保存する。内部表現(DUT)104を生成する際には、最適化を施してもよい。最適化の施された内部表現は正規化論理表現と呼ぶことができる。動的シミュレータ103は、DUT101に対しブラックボックス検証を実施し、その状態を動的シミュレーションログ105に記録する。エラー原因探索器106は、DUT101、内部表現104、および動的シミュレーションログ105からエラー原因を探索し、このエラー原因に関する情報107を出力する。たとえば、エラー原因に関する情報107は、エラー原因箇所を含む論理記述とその行番号の組である。もちろん、エラー原因に関する情報107は、DUT101内におけるエラーの原因箇所を特定できる情報であれば、エラー原因箇所を含む論理記述とその行番号の組以外の情報であってもよい。
次にDUT101により定義される論理システムへの入力と出力について説明する。本実施形態では、ブラックボックス検証を用いているので、論理システムに入力したデータと、出力データのみに注目している。エラー発生の有無は、論理システムの出力の実行値と期待値とを比較することで判定される。
以下、DUT101による論理システムに入力したデータの値を入力値と略記し、当該論理システムの出力データの値を出力値と略記する。同様に、当該論理システムの出力の実行値を単に実行値と略記し、出力の期待値を単に期待値と略記する。また、入力値、出力値は、時刻により変化する値であり、かつ、複数信号の値であることから、時刻 t における入力値を I(t) と表記し、出力値を O(t) と表記することとする。出力を実行値と期待値とに分けて考える場合は、実行値を A(t)、期待値を E(t) と表記する。
次に、動的シミュレータ103で用いるテストベンチについて詳しく説明する。動的シミュレータ103で用いるテストベンチは、DUT101の入力値、DUT101の出力の実行値、およびDUT101の出力の期待値を時刻と共に記録する機能が必要である。本発明は、動的シミュレーションのテストベンチに依存するものではないので、入力値、実行値、期待値を時刻と共に記録する機能があれば、それ以外の機能についてはどのような形態で実現してもよい。
たとえば、動的シミュレータ103は、動的シミュレーションを実行中に、実行値と期待値とを逐次比較し、その結果を記録する機能を備えてもよい。さらに、動的シミュレータ103は、実行値と期待値の不一致を検出したとき動的シミュレーションを停止する停止機能を備えてもよい。実行値と期待値の不一致はエラーを意味するため、エラーを検出したときに動的シミュレーションを停止すれば、その都度エラー原因個所を特定しやすくなる利点がある。
次に、本実施形態で用いる内部表現について説明する。本実施形態では、内部表現を基にDUT101内でのエラー原因箇所を探索する。そのため、本実施形態で使用する内部表現は、同一の論理関数が同一の表現にならなければならない。また、容量が大きくならず、内部表現による比較の手順が容易である必要もある。
同一の論理関数が同一の表現となる表現方法としては、たとえば、BDD(Binary Decision Diagram、2分決定グラフ)、真理値表、積和標準形などがある。真理値表は入力数の指数乗の項数を必要とする。また、積和標準形も最悪の場合、真理値表と同じく入力数の指数乗の項数を必要とする。しかしながら、BDDでは多くの場合、真理値表や積和標準形よりも少ない項数で論理関数を表現できる利点がある。また、真理値表と積和標準形では、内部表現への変換工数が論理関数の複雑度に影響し、複雑になるにつれて内部表現への変換工数が増加する。一方、BDDでは論理関数の複雑度に関係なく変換工数がきまる利点もある。そこで、本実施形態では、内部表現としてBDDを用いることとする。もちろん、本発明は、内部表現をBDDに限定するのものではない。
BDDを内部表現に使用するプログラムや市販のツールでは、BDD生成アルゴリズムとして、 apply アルゴリズムが広く使用されている。この apply アルゴリズムは 1984 年に Randal E. Bryant 氏により開発された、BDD生成アルゴリズムである。この apply アルゴリズムは、既に数多く使用されており、公知の技術である。そこで、内部表現変換器102はDUT101をBDDに変換する手法として、apply アルゴリズムを使用する。ただし、本発明は、BDD生成アルゴリズムに依存した発明ではないので、内部表現変換器102が使用するアルゴリズムを apply アルゴリズムに限定するものではない。
次に、本発明で用いるDUT101の内部状態について説明する。本実施形態では、内部表現にBDDを用いているので、BDD各節の値の集合がDUT101の内部状態を表している。BDD各節の値を、s0, s1, … , sn−1 とすると、その集合 {s0, s1, …, sn−1} が内部状態を表すことになる。内部状態 {s0, s1, …, sn−1} は時刻により変化するので、S(t) と記述することにする。
図2は、実施形態に係るエラー原因探索器の一例を示す図である。エラー原因探索器106は、内部状態関数生成器201、ログ解析器202、内部状態推定器203、内部状態比較器204、および探索器205を含んでいる。
内部状態関数生成器201は、たとえば、内部表現(DUT)104からDUT101の内部状態を表す内部状態関数231を求める。内部表現(DUT)104は、BDDを用いているので論理関数を一意に求めることが可能である。時刻 t + 1 の内部状態 S(t + 1) と、時刻 t の内部状態 S(t)、および、時刻 t におけるDUT101の入力値 I(t)とDUT101の出力値 O(t) を内部表現(DUT)104から求めた論理関数に代入すると、次のようになる。
s0(t+1) = g0(I(t), O(t), S(t))
s1(t+1) = g0(I(t), O(t), S(t))

sn−1(t+1) = gn−1(I(t), O(t), S(t))
ここで、{g0, g1, …, gn−1} は内部表現(DUT)104から求めた論理関数を示している。この{g0, g1, …, gn−1}をベクトル表記で G と記述すると、DUT101の内部状態を表す関数は、
S(t + 1) = G(I(t), O(t), S(t))
と表せる。この式を変形し、
S(t) = F(I(t), O(t), S(t + 1))
とする。この式の関数 F を内部状態関数231と呼ぶことにする。
ログ解析器202は、動的シミュレーションログ105に基づいて、実行値と期待値とが不一致になるエラーが発生しているかを判定する。エラーが発生しているならば、最も早くエラーが発生する時刻を k とする。次に、ログ解析器202は、時刻0から時刻kまでの入力値 I(t)、実行値 A(t)、期待値 E(t) { 0<= t <= t} を動的シミュレーションログ105から抽出する。
内部状態推定器203は、動的シミュレーションの実行状態に関する情報と、内部表現に関する情報とに基づいて論理システムにおける実行値による内部状態と期待値による内部状態とをそれぞれ推定するものである。たとえば、内部状態推定器203は、内部状態関数生成器201で生成された内部状態関数231を用いて、ログ解析器202で抽出された入力値I(t)、実行値A(t)、期待値E(t)に基づいてDUT101内部の状態を推定する。実行値に基づき推定した内部状態を内部状態(実行値)233とし、期待値を基に推定した内部状態を内部状態(期待値)234とする。そして、時刻tにおける内部状態(実行値)233をSa(t) と表記し、同様に、時刻tにおける内部状態(期待値)234をSe(t) と表記する。
なお、内部状態推定器203は、内部状態を求めるときに、所定の制限時間を超えても、値が定まらない要素については不定( ’X’ )とする。これにより、発散して内部状態を求めることができない状況に陥ることを防止できる利点がある。なお、制限時間のカウントはタイマーにより行う。
内部状態比較器204は、推定された実行値による内部状態と期待値による内部状態とを比較するものである。たとえば、内部状態比較器204は、時刻 n − 1 における内部状態(実行値)233と内部状態(期待値)234とを比較し、比較結果を出力する。すなわち、内部状態比較器204は、Sa(n − 1) と Se(n − 1) の要素ごとに比較をおこない、比較結果を出力する。全ての要素の値が等しければ、Sa(n − 1) と Se(n − 1) は一致しており、比較結果235を有効(’1’)とする。すなわち、エラーは検出されないことになる。一方で、不一致の要素がひとつでも存在するならば、Sa(n − 1) と Se(n − 1) は不一致となるから、比較結果235を無効(’0’)とする。すなわち、エラーが検出されたことになる。
このとき、要素の値が共に不定(’X’)ならば、その要素の値は一致していると見なすようにしてもよい。このように処理することで、判定不能に陥ることを防ぎ、ひいては円滑に論理システムの検証を実行できる利点がある。
探索器205は、内部状態比較器204による比較結果が不一致である場合に、内部表現に関する情報から不一致の原因個所を検出する。たとえば、探索器205は、内部表現(DUT)104、Sa(n)、Se(n)、および比較結果235を基に内部表現(DUT)104内でのエラー原因を探索する。時刻 n − 1 で比較結果235が有効になったとする。すなわち、これは、Sa(n − 1 ) と Se(n − 1) は一致しているが、Sa(n) と Se(n) は不一致であることを意味する。したがって、時刻 n − 1 から時刻 n に遷移するときにエラーが発生したために、Sa(n) と Se(n) に差異が生じているのである。よって、Sa(n ) と Se(n) に含まれる要素のうち、要素値が異なるものがエラー原因箇所と特定できることになる。
探索器205は、いつかある要素のうち、Sa(n ) で Se(n) の値が異なるものを抽出し、抽出された要素に対応するBDDの節を内部表現(DUT)104内で選択する。探索器205は、ここで選択されたBDDの節を含む論理記述の情報をDUT101から選択し、エラー原因に関する情報107として出力する。
図3は、実施形態に係る論理検証方法の一例を示すフローチャートである。より具体的には、図3に示すフローチャートは、本実施形に係る論理検証装置を用いて、DUT101に含まれるエラーの原因箇所を特定可能な情報を得る手順を示している。前提条件として、動的シミュレーションで使用するテストベンチは既に作成してあるものとする。
ステップS301において、内部表現変換器102は、DUT101を変換し内部表現(DUT)104を生成する。エラー原因探索器106内の内部状態関数生成器201は、生成された内部表現(DUT)104を基にDUT101の内部状態を表す内部状態関数231 F(I(t), O(t), S(t)) を生成する。なお、本ステップは、ステップS305の実行前であれば、どの時点で実行されてもよい。
ステップS302において、動的シミュレータ103は、動的検証を実行する。動的シミュレータ103は、DUT101に入力したデータの値 I(t)、DUT101の実行値 A(t)、期待値 E(t)、および時刻 t を動的シミュレーションログ105に記録する。
ステップS303において、ログ解析器202は、記録されている動的シミュレーションログ105を解析し、エラーが発生しているか否かを判定する。たとえば、実行値と期待値が不一致となれば、エラーが発生していると判定する。エラーが発生していればステップS304に移行する。エラーの発生が無ければ、検証処理を終了する。
ステップS304において、ログ解析器202は、最も早いエラー発生時刻 kを求める。次に、ログ解析器202は、時刻0からエラー発生時刻kまでの入力値 I(t)、実行値 A(t)、期待値 E(t) { 0<= t <= t} を抽出する。
ステップS305において、内部状態推定器203は、変数 n の値にエラー発生時刻 k を代入する。内部状態推定器203は、時刻 n + 1 における内部状態 S(n + 1) を不定と仮定して、ステップS301において求めた内部状態関数 F(I(t), O(t), S(t)) と、入力値 I(n)、実行値 A(n)、期待値 E(n)とから、時刻 n における内部状態 Sa(n) と Se(n) を求める。
Sa(n) = F(I(n), Sa(n), Sa(n + 1))
Se(n) = F(I(n), Se(n), Se(n + 1))
さらに、内部状態推定器203は、求められた Sa(n) とSe(n)を用い、入力値 I(n−1)、実行値 A(n−1)、期待値 E(n−1)から、時刻 n − 1における内部状態 Sa(n − 1) と Se(n − 1) を求める。
Sa(n − 1) = F(I(n − 1), Sa(n − 1), Sa(n))
Se(n − 1) = F(I(n − 1), Se(n − 1), Se(n))
ステップS306において、内部状態比較器204は、Sa(n−1) とSe(n−1) とを比較する。内部状態比較器204は、Sa(n−1) とSe(n−1) の要素ごとに比較をおこない、全ての要素で値が一致したならば、Sa(n−1) とSe(n−1) は一致していると判定し、S310に移行する。一要素でも不一致ならば、ステップS307に移行する。このとき、該当する要素値が、両方とも不定(’X’)ならば、その要素は一致していると見なす。
ステップS307において、内部状態比較器204は、n が時刻1であるか判定する。時刻1でないならば、ステップS308に移行する。時刻1ならば、ステップS310へ移行する。
ステップS308において、内部状態比較器204は、時刻 n を更新し、n = n − 1 とする。
ステップS309において、内部状態推定器204は、内部状態 Sa(n − 1) と Se(n − 1) をそれぞれ更新する。内部状態推定器204は、更新後の n に対して、内部状態関数 F(I(t), O(t), S(t)) と、入力値 I(n)、実行値 A(n)、期待値 E(n)から、内部状態Sa(n−1) とSe(n−1) を求める。
Sa(n − 1) = F(I(n − 1), Sa(n − 1), Sa(n))
Se(n − 1) = F(I(n − 1), Se(n − 1), Se(n))
ステップS31において、探索器205は、Sa(n − 1) から Sa(n) の遷移で変化した要素を抽出する。探索器205は、抽出された要素が内部表現におけるBDDの中で、どの節に対応するかを求め、その結果を利用してDUT101で対応する論理記述を選択する。内部状態の各要素はBDDの各節に対応しているので、対応する論理記述をDUT101から選択するのは容易である。探索器205は、選択された論理記述を行番号と共にエラー原因に関する情報107として出力する。
図4は、実施形態に係るエラー原因に関する情報の一例を示す図である。図4に示す一例では、一行毎にひとつのエラー原因の要素を表示している。もちろん、本発明はエラー原因に関する情報107の出力形式に依存したものではないので、他の形式のエラー原因に関する情報107を採用できることはいうまでもない。エラー原因に関する情報に含まれる要素は、左端からLINE、DESCRIPTION、NODE、ACT、EXP などがある。
LINE 項は、DUT101内の行番号を示している。DESCRIPTION 項は、該当行番号における論理記述を示している。この論理記述が長すぎてDESCRIPTION 項に納まらない場合、探索器205は、エラー原因の信号を含む箇所を抜き出して記録するようにしてもよい。NODE 項は、エラー原因の信号名を示している。ACT 項は、エラー原因の信号の実行値を示している。EXP 項は、エラー原因の信号の期待値を示している。
図4に示す例は、行番号110の記述にエラー原因が存在することを示している。また、エラー原因の信号は、”STATE” で、実行値は “3’b000” であるが、期待値は “3’b101” であることを示している。
このようにエラー原因に関する情報107から、論理システムを表現したDUT101内におけるエラー原因個所を特定できる。すなわち、本実施形態に係る発明によれば、ハードウエア記述言語を用いて外端の仕様のみを定義された論理システムに関して実行された動的シミュレーションの結果から、エラー原因箇所を特定できるようになる。そのため、論理システムの内部構成や内部仕様が明確でなくとも、エラー原因の解析が容易になる。よって、本発明は、顧客の要求する開発期間を満たすことに貢献しよう。
また、従来のように何度も動的シミュレーションを実行してエラー原因を絞り込む必要が無くなる。そのため、エラーの原因箇所の探索に費やす時間は減少する。論理システムの内部構成や内部仕様が明確でなくとも、エラー原因の解析が容易になる。よって、本実施形態に係る発明によれば、十分な精度を持つ論理システムを予定の期間内に完成させることができる。それによって、市場が欲するときに製品を投入することが可能となろう。
図5は、実施形態に係る検証方法を実行可能なコンピュータの一例を示す図である。本発明に係る検証装置は、上述の検証機能に特化した検証装置として実現することもできるが、図5で説明するようなコンピュータ500で検証用のコンピュータプログラムを実行することによっても実現できる。
CPU501は、コンピュータ500の各部を統括的に制御する制御装置である。ROM502は、ブートプログラムなどを記憶する不揮発性の記憶装置である。RAM503は、ワークエリアとして機能する揮発性の記憶装置である。ハードディスクドライブ(HDD)504は、大容量の記憶装置であり、検証用のコンピュータプログラム511、DUTの設計データ512、動的シミュレーションに用いられるテストベンチデータ513、DUTの設計データ512を変換して得られるDUT内部表現データ514、動的シミュレーションのログデータ515、エラー原因に関する情報516などが記憶される。表示制御部505は、表示装置506の表示制御を実行する制御回路である。表示装置506は、CRTや液晶表示装置等である。
なお、DUTの設計データ512は上述のDUT101に相当し、DUT内部表現データ514は上述の内部表現104に相当し、動的シミュレーションのログデータ515は上述の動的シミュレーションログ105に相当し、エラー原因に関する情報516は上述のエラー原因情報107に相当することは言うまでもない。
図6は、実施形態に係る検証方法の例示的なフローチャートである。本検証方法は、コンピュータ500において、検証用のコンピュータプログラム511が起動されたときの処理を示している。なお、図6に記載の処理は、図3に記載の処理の上位概念として理解できることはいうまでもない。
なお、CPU501は、動的シミュレーションを実行中に、実行値と期待値とを逐次比較し、その結果をHDD504に記憶してもよい。さらに、CPU501は、実行値と期待値の不一致を検出したときに、動的シミュレーションを停止させてもよい。実行値と期待値の不一致はエラーを意味するため、エラーを検出したときに動的シミュレーションを停止すれば、その都度エラー原因個所を特定しやすくなる利点がある。
ステップS601において、CPU501は、DUT設計データ512を読み出し、内部表現に関する情報であるDUT内部表現データ514を生成し、HDD504に記憶する。
ステップS602において、CPU501は、ハードウエア記述言語で記述されたDUTの設計データ512と、テストベンチデータ513とをHDD504から読みだし、上述の動的シミュレーションを実行する。その際に、CPU501は、動的シミュレーションの実行状態に関する情報をログデータ514としてHDD515に記憶してゆく。なお、ステップS601とS602とは順番が逆であってもよい。
ステップS603において、CPU501は、動的シミュレーションでエラーが発生した場合に、ログデータ515と、DUT内部表現データ514とに基づいて、論理システムに含まれるエラーの原因個所を探索する。CPU501は、探索により見つかったエラーの原因個所を含むエラー原因情報516をHDD504に出力する。
このように、本実施形態によれば、ハードウエア記述言語で記述された論理システムに関して実行された動的シミュレーションの結果からエラー原因箇所を特定できるため、論理システムの内部構成や内部仕様が明確でなくとも、エラー原因の解析が容易になる。よって、本発明は、顧客の要求する開発期間を満たすことに貢献しよう。
[他の実施形態]
以上、様々な実施形態を詳述したが、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。たとえば、動的シミュレーションを第1の情報処理装置で実行し、DUTを内部表現に変換する処理を第2の情報処理装置で実行し、エラーの探索処理を第3の情報処理装置で実行することもできる。
また、本発明の上述の各機能は、それぞれハードウエア回路によって実現してもよいし、一部またはすべてをソフトウエアによって実現しても良い。後者の場合は、各機能を実現するソフトウェアプログラムをROMなどの記憶装置に記憶しておき、それをCPUが実行することになる。
なお、本発明は、前述した実施形態の各機能を実現するソフトウェアプログラムを、システム若しくは装置に対して直接または遠隔から供給し、そのシステム若しくは装置に含まれるコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。
従って、本発明の機能・処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するためのコンピュータプログラム自体も本発明の一つである。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明の構成要件となる場合がある。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
実施形態に係る論理システムの検証装置の例示的なブロック図である。 実施形態に係るエラー原因探索器の一例を示す図である。 実施形態に係る論理検証方法の一例を示すフローチャートである。 実施形態に係るエラー原因に関する情報の一例を示す図である。 実施形態に係る検証方法を実行可能なコンピュータの一例を示す図である。 実施形態に係る検証方法の例示的なフローチャートである。
符号の説明
101…DUT
102…内部表現変換器
103…動的シミュレータ
104…内部表現(DUT)
105…動的シミュレーションログ
106…エラー原因探索器
107エラー原因に関する情報

Claims (9)

  1. ハードウエア記述言語で記述された論理システムの検証装置であって、
    前記ハードウエア記述言語で記述された論理システムを変換して内部表現に関する情報を生成する生成手段と、
    前記ハードウエア記述言語で記述された論理システムについて動的シミュレーションを実行する実行手段と、
    前記動的シミュレーションによる実行状態に関する情報を記録する記録手段と、
    前記動的シミュレーションでエラーが発生した場合に、前記動的シミュレーションの実行状態に関する情報と、前記内部表現に関する情報とに基づいて、前記論理システムに含まれるエラーの原因個所を探索する探索手段と
    を含む論理システムの検証装置。
  2. 前記探索手段は、
    前記動的シミュレーションの実行状態に関する情報と、前記内部表現に関する情報とに基づいて前記論理システムにおける実行値による内部状態と期待値による内部状態とをそれぞれ推定する内部状態推定手段と、
    推定された前記実行値による内部状態と前記期待値による内部状態とを比較する内部状態比較手段と、
    前記内部状態比較手段による比較結果が不一致であれば、不一致の原因個所を前記内部表現に関する情報から検出する検出手段と
    を含む、請求項1に記載の論理システムの検証装置。
  3. 前記実行状態に関する情報には、前記動的シミュレーションの実行時刻、実行値、および期待値が含まれる、請求項1または請求項2に記載の論理システムの検証装置。
  4. 前記内部表現は、2分決定グラフによる表現である、請求項1ないし3のいずれかに記載の論理システムの検証装置。
  5. 前記実行手段は、
    前記動的シミュレーションの実行中に実行値と期待値とが一致するかを判定する判定手段と、
    前記実行値と前記期待値とが不一致と判定された場合に、前記動的シミュレーションを停止させる停止手段と
    を含む、請求項1ないし4のいずれかに記載の論理システムの検証装置。
  6. 前記内部状態推定手段は、
    前記内部表現に関する情報から前記論理システムの内部状態を推定する過程において、状態値を特定できない内部状態の要素が存在した場合に、該状態値を不定と設定する設定手段を含む、請求項2に記載の論理システムの検証装置。
  7. 前記内部状態比較手段は、前記内部状態を比較する過程において、比較対照となる要素の状態値が共に不定であるならば、両者は一致するものとみなす、請求項6に記載の論理システムの検証装置。
  8. ハードウエア記述言語で記述された論理システムの検証方法であって、
    前記ハードウエア記述言語で記述された論理システムを変換して内部表現に関する情報を生成するステップと、
    前記ハードウエア記述言語で記述された論理システムについて動的シミュレーションを実行しながら、前記動的シミュレーションによる実行状態に関する情報を記録するステップと、
    前記動的シミュレーションでエラーが発生した場合に、前記動的シミュレーションの実行状態に関する情報と、前記内部表現に関する情報とに基づいて、前記論理システムに含まれるエラーの原因個所を探索するステップと
    を含む論理システムの検証方法。
  9. 制御装置と記憶装置とを含むコンピュータに対し、
    前記ハードウエア記述言語で記述された論理システムを変換して内部表現に関する情報を前記制御装置により生成して前記記憶装置に記憶するステップと、
    前記ハードウエア記述言語で記述された論理システムについて動的シミュレーションを前記制御装置により実行しながら、前記動的シミュレーションによる実行状態に関する情報を前記記憶装置に記憶するステップと、
    前記動的シミュレーションでエラーが発生した場合に、前記動的シミュレーションの実行状態に関する情報と、前記内部表現に関する情報とを前記記憶装置から読み出し、前記論理システムに含まれるエラーの原因個所を前記制御装置により探索するステップと
    を実行させるためのコンピュータプログラム。
JP2004347233A 2004-11-30 2004-11-30 論理システムの検証装置および検証方法 Expired - Fee Related JP4434931B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004347233A JP4434931B2 (ja) 2004-11-30 2004-11-30 論理システムの検証装置および検証方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004347233A JP4434931B2 (ja) 2004-11-30 2004-11-30 論理システムの検証装置および検証方法

Publications (3)

Publication Number Publication Date
JP2006155378A true JP2006155378A (ja) 2006-06-15
JP2006155378A5 JP2006155378A5 (ja) 2008-01-17
JP4434931B2 JP4434931B2 (ja) 2010-03-17

Family

ID=36633581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004347233A Expired - Fee Related JP4434931B2 (ja) 2004-11-30 2004-11-30 論理システムの検証装置および検証方法

Country Status (1)

Country Link
JP (1) JP4434931B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008197962A (ja) * 2007-02-14 2008-08-28 Fujitsu Ltd 論理システムの障害検証方法、障害検証装置、および障害検証プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008197962A (ja) * 2007-02-14 2008-08-28 Fujitsu Ltd 論理システムの障害検証方法、障害検証装置、および障害検証プログラム
JP4631858B2 (ja) * 2007-02-14 2011-02-16 富士通株式会社 論理システムの障害検証方法、障害検証装置、および障害検証プログラム

Also Published As

Publication number Publication date
JP4434931B2 (ja) 2010-03-17

Similar Documents

Publication Publication Date Title
US8230370B2 (en) Circuit design assisting apparatus, computer-readable medium storing circuit design assisting program, and circuit design assisting method
US20060010429A1 (en) Method, system and program for model based software development with test case generation and evaluation
US7676777B2 (en) Method and apparatus for supporting verification, and computer product
US8584095B2 (en) Test support system, method and computer program product, which optimize test scenarios to minimize total test time
JP2006350686A (ja) 命令セット・シミュレータ生成装置及びシミュレータ生成方法
US8578311B1 (en) Method and system for optimal diameter bounding of designs with complex feed-forward components
JP6925433B2 (ja) データ検証装置、データ検証方法及びデータ検証プログラム
US8015523B2 (en) Method and system for sequential netlist reduction through trace-containment
JP4434931B2 (ja) 論理システムの検証装置および検証方法
US6532573B1 (en) LSI verification method, LSI verification apparatus, and recording medium
US8122403B2 (en) Trace containment detection of combinational designs via constraint-based uncorrelated equivalence checking
JP5321286B2 (ja) プログラムモデル検査方法、プログラムモデル検査プログラム
JP2007122207A (ja) プログラム分析プログラム、プログラム分析装置、プログラム分析方法
WO2021205589A1 (ja) テストスクリプト生成装置、テストスクリプト生成方法及びプログラム
JP7367410B2 (ja) 生成プログラム、生成方法、および情報処理装置
JP6878707B2 (ja) 試験装置、試験方法および試験プログラム
JP2011048785A (ja) 多重イベント定義装置、多重イベント検証装置、多重イベント定義方法および多重イベント定義プログラム
JP3833626B2 (ja) テストケース生成装置及びテストケース生成方法
TWI782408B (zh) 邏輯模擬驗證系統、邏輯模擬驗證方法、及程式產品
JP2006221473A (ja) 論理検証装置、論理検証方法および論理検証プログラム
JP5875607B2 (ja) 性能モデル検査装置、方法およびプログラム
JP2009020610A (ja) 解析装置及び解析方法及びプログラム
JP2007241566A (ja) 検証方法及び検証装置
JPH11149489A (ja) シミュレーション装置
JP2006163598A (ja) 検証方法及び検証装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071121

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071121

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20071121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091125

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4434931

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140108

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees