JP4445517B2 - 回路設計検証方法および回路設計検証のためのプログラム - Google Patents

回路設計検証方法および回路設計検証のためのプログラム Download PDF

Info

Publication number
JP4445517B2
JP4445517B2 JP2007128395A JP2007128395A JP4445517B2 JP 4445517 B2 JP4445517 B2 JP 4445517B2 JP 2007128395 A JP2007128395 A JP 2007128395A JP 2007128395 A JP2007128395 A JP 2007128395A JP 4445517 B2 JP4445517 B2 JP 4445517B2
Authority
JP
Japan
Prior art keywords
conditional
circuit
true
false
always
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
JP2007128395A
Other languages
English (en)
Other versions
JP2008282351A (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 JP2007128395A priority Critical patent/JP4445517B2/ja
Priority to US12/117,018 priority patent/US20080288902A1/en
Publication of JP2008282351A publication Critical patent/JP2008282351A/ja
Application granted granted Critical
Publication of JP4445517B2 publication Critical patent/JP4445517B2/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

Landscapes

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

Description

本発明は、たとえば論理回路を再利用して新たなシステム回路を設計および検証する際に用いて好適な回路設計検証方法および回路設計検証のためのプログラムに関する。
近年、システムLSI(Large-Scale Integration:大規模集積回路)設計における回路規模増大・短TAT(Turn Around Time)化により、設計・検証のコスト削減、品質向上を図るべく、IP(Interectual Property: 再利用可能な設計資産)や過去の設計資産など回路モジュールの再利用がされている。
再利用されたモジュールが、該再利用されるモジュールと通信するモジュール(たとえば前段のモジュール)に要求されている機能に対応している場合、不具合が発生することはない。しかし、前段のモジュールに新たな機能が追加されるなどの機能変更がなされた場合、その追加された機能が実行されると、その機能に相応する機能が再利用モジュールにないことから不具合が発生する。
以下、不具合の発生について例示する。図1に示す新規開発システム回路において、スレーブ(Slave)31を再利用モジュール、それ以外のモジュール、すなわちジェネレータ(Generator)32、マスタ(Master)33、メモリ(Memory)34を新規開発モジュールとする。
トランザクションのrequest(要求)/acknowledge(許可)といったハンドシェイクに関し、以前のシステム回路ではサポートしていなかったrequestキャンセル機能が新規開発システム回路ではサポートされたとする。すなわち、図2(A)に示すように、以前のシステム回路では、マスタがreq信号(リクエストを表す信号)を発行した後、スレーブからack信号(許可を表す信号)がアサートされるまでマスタのreq信号はデアサートされなかったが、新規開発システム回路では、図2(B)に示すように、マスタがreq信号を自らキャンセルするrequestキャンセル機能がサポートされたとする。マスタはキャンセル機能を搭載するものの、再利用されたスレーブはこのキャンセル機能に対応した機能を搭載していないため、不具合が発生することとなる。不具合が発生する過程を、図3を参照しながら説明する。
1.マスタおよびスレーブは、初期のIDLE状態にある。
2.マスタがreq信号をアサート後(S1)、ARBIT状態へ遷移し、スレーブによるack信号のアサート待ちとなる(S2)。
3.スレーブはreq信号のアサートを受け、ARBIT状態へ遷移する(S3)。
4.マスタはreq信号のデアサート後、IDLE状態へ遷移する(S4)(requestキャンセル発生)。
5.スレーブはack信号のアサート後、WAIT_TRANS状態へ遷移し(S5)、データ転送を意味するvalid信号のアサート待ちとなる(S6)。
6.マスタは再びreq信号のアサート後(S7)、ARBIT状態へ遷移し、スレーブによるack信号のアサート待ちとなる(S8)。
7.マスタおよびスレーブは互いに信号のアサートを待ち続けるためにデッドロック状態が発生する(不具合発生)。
本来、新規開発システム回路におけるスレーブの回路記述では、マスタに新たに搭載されたキャンセル機能に対応して、図4に示す破線で囲まれた記述が必要になるが、この記述が抜けてしまっていると、上述した不具合が発生することとなる。なお図4はマスタおよびスレーブの回路記述のうちマスタおよびスレーブの状態遷移を記述した状態遷移記述の一部を示している。従来技術では、上記記述抜けを検出することが困難であり、検証漏れが発生する問題があった。
検証漏れを防ぎ、検証確度を向上する技術として以下のようなカバレッジ計測手法がある。
・コードカバレッジ
コードカバレッジは回路として記述された各コードについて、「このステートメントは実行されたか?」等、コードそのもの実行有無を計測する定義済みのカバレッジ指標である。これはコードとして記述された機能について実行有無の計測に有効である。しかし、記述されていない機能は計測対象外であり、以上のような記述抜けを検出できないことが問題である。
・機能カバレッジ
機能カバレッジは「writeの各バースト長のトランザクションは発生したか?」等、実際の機能の実行有無を計測するユーザ定義のカバレッジ指標である。これはユーザによるカバレッジ定義に抜けが無ければ、機能そのものを計測するため有効である。しかし、ユーザによる定義に抜けがある場合、以上のような記述抜けを自動的に検出できないことが問題である。
なお、回路記述を最適化する技術を記載した文書として特開2004−355130号公報がある。これは未実行箇所を自動削除することで最適化を図るものである。特にverilogのfunctionを呼び出すごとにインライン展開して個別に計測、削除を行うものである。ただし、コードの削除をカバレッジ結果に頼っているため、ベクタが十分でなければ、実行され得るコードを削除する可能性がある。本文書に記載された技術は回路記述を最適化するものであり、回路記述から、本来必要な機能の記述の抜けを検出することはできない。
特開2004−355130号公報
本発明は、回路記述から本来備えるべき機能に相当する記述の抜けを検出することを可能とした回路設計検証方法および回路設計検証のためのプログラムを提供する。
本発明の回路設計検証方法は、
コンピュータにおいて実行する回路設計検証方法であって、
前記コンピュータが、
1つ以上の条件要素を含む複数の条件文を用いて回路を記述した回路記述を入力する入力ステップと、
前記回路記述を走査して、前記回路記述に含まれる各条件文と、前記各条件文に含まれる条件要素を抽出する抽出ステップと、
前記回路に対するテストデータを用いて前記回路記述をシミュレーション実行して、前記シミュレーション実行の間各前記条件文がそれぞれ成立したときに、前記抽出ステップで抽出されたすべての条件要素のうち前記条件文に含まれる条件要素以外の非条件要素について前記非条件要素が常に真であったか、常に偽であったか、あるいは真と偽の両方があったかを前記条件文ごとに検査し、前記条件文ごとに前記条件文に対応する前記非条件要素がそれぞれ常に真であったか、常に偽であったか、あるいは真と偽の両方があったかの情報を格納したテーブルを生成するテーブル生成ステップと、
前記テーブルにおける各前記条件文のそれぞれについて、前記真と偽の両方があった前記非条件要素は、前記条件文に含めるべき条件要素の候補として示されるものとして前記テーブルを表示する表示ステップと、
を実行し、
前記テーブル生成ステップは、前記テーブルにおける前記条件文と前記非条件要素との組に対応するセル毎に第1モニター変数と第2モニター変数とを設定し、前記シミュレーション実行の間に、前記セルに対応する前記組の非条件要素が1度でも真になったときは前記第1モニター変数に第1値を設定しそれ以外の場合は第2値を設定し、1度でも偽になれば前記第2モニター変数に第1値を設定しそれ以外の場合は第2値を設定し、シミュレーション後、前記第1および第2モニター変数の値を確認し、前記第1モニター変数の値が第1値であり第2モニター変数の値が第2値であれば前記非条件要素は常に真であり、第1モニター変数の値が第2値であり第2モニター変数の値が第1値であれば前記非条件要素は常に偽であり、第1および第2モニター変数の値ともに第1値であれば前記非条件要素は真と偽との両方があったことを決定する、
ことを特徴とする
本発明により、回路記述から本来備えるべき機能に相当する記述の抜けを検出することが可能になる。
(実施形態1)
図5は本発明の実施形態1としての回路設計検証方法を実行するシステムの構成を示す図である。この回路設計検証方法を実行するための命令コードを記述したプログラムをコンピュータに実行させることにより該システムと同等の機能を実現することも可能である。
検証対象回路(DUT:Device Under Test)の回路記述1が本システムに入力される。
テーブル作成・表示手段2は回路記述1から各条件文と、各条件文に含まれる条件要素(論理式などによって記述された条件記述)を検出し、条件文ごとに該条件文が成立するために満たされることが必要な条件要素の真偽を表したテーブルAを作成および表示する。
カバレッジ値算出・表示手段3は、テーブル作成・表示手段2で作成されたテーブルに基づき、各条件文が成立するために真偽が満たされることが必要な条件要素の数の、全ての条件要素の数に対する割合を表すカバレッジ値を算出し、算出したカバレッジ値を上記テーブルAに書き込み、書き込み後のテーブルAを表示および出力する。
以下、図5のシステムについて具体例を用いて説明する。
本例では、設計・検証者が、状態遷移マシンを有するスレーブの回路記述を入力したとする。図6はこの記述の一部であり、スレーブの状態遷移を条件文の成否によって決める部分である。
設計・検証者が、図6のようなコードを本システムに入力し、該コードはテーブル作成・表示手段2およびカバレッジ値算出・表示手段3によって、以下のように処理される。
(1)テーブル作成・表示手段2は、回路記述1を先頭から走査し、現在の状態(state)と、遷移先の状態(next_state)と、その遷移のための条件文とを抽出する。
(2)(1)で抽出された条件文(入れ子構造の場合、上位の条件文を含む)から、論理和、論理積演算子で区切られた条件記述(サブエクスプレッションあるいは条件要素などと呼ばれる)を検出する。1つの条件文には1つまたは複数の条件要素が含まれる。
(3)(2)で検出された条件要素について、今までの走査で蓄積された条件要素集合と照合し、同一のものがあればその条件要素に対しT(真)、論理が反転している点を除いて同一のものがあればそれに対しF(偽)、全く存在しなければ新たに条件要素集合へ追加し、Tとして記録する。ただし、本例では、2つ以上の異なる「if-else」構造内では同一の条件要素あるいは論理が反転している点を除いて同一の条件要素は含まれないものとする(ただし入れ子構造の場合は除く)。回路記述1における条件文「else if(wr_in_bus==1’b0)」に対して(1)〜(3)を行った例を図7に示す。以降の説明において「1’b0」は1ビットの“0”、「1’b1」は1ビットの“1”、「2’b11」は2ビットの“11”を意味する
この条件文は入れ子構造になっており、この条件文が成立するためには「wr_in_bus==1’b0」が真(すなわち「wr_in_bus==1’b1」が偽)であることの他に、上位の条件文「if(valid_in_bus==1’b1)」における「valid_in_bus==1’b1」が真であることが必要である。よって(2)では条件要素として、「wr_in_bus==1’b0」と「valid_in_bus==1’b1」との両方が検出される。そして、「valid_in_bus==1’b0」は、条件要素集合に含まれる「valid_in_bus==1’b1」と論理が反転している点を除けば同じであるため、(3)では「valid_in_bus==1’b1」に対してF(偽)が記録される(「valid_in_bus==1’b0」に対してT(真)を記録してもよい)。「wr_in_bus==1’b1」は要素条件集合に既に同一のものが記録されているためT(真)が記録される。この結果に基づき、図8に示すテーブルAのセルを埋める。ここでは、stateが「WAIT_TRANS」でnext_stateが「READ1」の行が埋められる。
(4)全ての状態遷移について(1)〜(3)を行った結果、図8のテーブルAが得られる。T(True)が記述されたセルは、該当する条件文が成立するためには常に、該当する条件要素が真でなければならないことを意味する。同様にF(False)が記述されたセルは、該当する条件文が成立するためには常に、該当する条件要素が偽でなければならないことを意味する。テーブルAに記述された「input」は、該当する信号(たとえばreq,wr_in_bus)が、検証対象回路への入力信号であることを示し、「reg」は、該当する信号(たとえばcount)が検証対象回路内部で用いられるレジスタの値であることを示す。テーブル作成・表示手段2はテーブルAを表示してもよい。この後、このテーブルAにおいてelse項(条件を持たない項、たとえば図8においてWAIT_TRANSからWAIT_TRANSへの遷移の条件文)の遷移を除く各遷移について、その遷移が起こるために真偽が満たされるべき条件要素の数(すなわちその遷移が起こるために成立すべき条件文に対して真偽が満たされるべき条件要素の数)の、全条件要素数に対する割合である指標(条件要素カバレッジ)をカバレッジ値算出・表示手段3において算出し、上記テーブルAに記述する。この結果、テーブルAは図9のようになる。カバレッジ値算出・表示手段3はこのテーブルAを表示する。なお図9のテーブルAにおける「?」は、設計・検証者に対して、該当するセル(条件要素と遷移(条件文)との組)について、確認(たとえば、真偽を考慮しなくて本当に問題ないか等)を促している。
本実施の形態では、状態遷移記述を対象にテーブルを作成したが、本発明は状態遷移記述のみならず、回路の動作記述など、他の回路記述にも当然に適用可能である。
以上のように、本実施の形態によれば、従来からあった、縦軸にstate、横軸にnext_state、各セルに条件文を表示する方法に比べ、対象としている遷移のために真偽が満たされるべき条件要素(すなわちその遷移が起こるために成立すべき条件文に対して真偽が満たされるべき条件要素)(以下、必要条件要素と称されることがある)と、そうでない条件要素(以下、非条件要素と称されることがある)とが区別されて表示されるため、設計・検証者に条件抜けの発見を促すことが可能となり、検証確度の向上が期待される。
さらに、条件の抜けと関係の深い「条件文の詳細度合い」(すなわち条件文の成立に対してどれだけ多くの条件要素の真偽成立が影響するか)を条件要素カバレッジとして提示することが可能となり、これによっても検証確度の向上が期待される。
(実施形態2)
図10は本発明の実施形態2としての回路設計検証方法を実行するシステムの構成を示す図である。この回路設計検証方法を実行するための命令コードを記述したプログラムをコンピュータに実行させることにより該システムと同等の機能を実現することも可能である。
検証対象回路(DUT)の回路記述と、検証対象回路(DUT)と協調動作する他の回路の回路記述とを含む回路記述(たとえば新規開発回路システム全体の回路記述)11が本システムに入力される。回路記述11はたとえばシステム内の各回路の状態遷移記述および各回路の動作記述を含む。さらに検証対象回路(DUT)のテストベンチ記述8と、実施形態1で求められたテーブルAとが本システムに入力される。
モニター用回路記述生成手段4は、テーブルAの各遷移に対応する条件文に対し全ての非条件要素の真偽を計測するためのモニターコードを回路記述11に挿入して、モニター用回路記述5を生成する。
シミュレーション手段6は、モニター用回路記述5とテストベンチ記述8とを用いてシミュレーションを行う。テストベンチ記述はたとえばテストデータに対応する。
可変性計測・表示手段7は、シミュレーションにより得られた結果(カバレッジ結果)をテーブルAへ追加することによりテーブルB1を得る。可変性計測・表示手段7はテーブルB1を表示する。
以下、図10のシステムについて具体例を用いて説明する。
設計・検証者あるいは実施形態1のシステムが、回路記述11、テストベンチ記述8、実施形態1で生成された図8に示すテーブルAを、本システムに入力する。モニター用回路記述生成手段4、シミュレーション手段6および可変性計測・表示手段7によって、以下のような処理がなされる。
(1)モニター用回路記述生成手段4が、回路記述11をコピーし、テーブルAの各遷移に対応する条件文に対し全ての非条件要素の真偽を計測するためのモニターコード(モニター条件文およびモニター変数)を回路記述11のコピーに挿入することによりモニター用回路記述5を生成する。このようにして各遷移に対応する条件文が成立する際の非条件要素の真偽)を計測可能なモニター用回路記述5が得られる。モニター用回路記述5を生成する様子を図11に示す。
(2)シミュレーション手段6は、モニター用回路記述5とテストベンチ記述8とを用いてシミュレーションを実行することにより、各モニター変数の値を求める。つまり、図12に示すように、条件文の非条件要素に対応する各セルについて、2つのモニター変数(モニター変数cell_n_m_T、モニター変数cell_n_m_F)を求める。
モニター変数cell_n_m_T、モニター変数cell_n_m_Fはそれぞれシミュレーション開始時は全て0に初期化されている。着目するセルに対応する遷移の条件文が成立したときに、該セルに対応する条件要素がシミュレーション中に1度でも真となれば、モニター変数cell_n_m_Tの値は1となり、1度でも偽となればモニター変数cell_n_m_Fの値は1となる。
したがって、シミュレーションの終了後、cell_n_m_Tが1でcell_n_m_Fが0であれば、これは着目するセルに対応する遷移の条件文が成立するとき常に当該セルに対応する条件要素が真であったこと(真偽が不変)を意味する。また、シミュレーションの終了後、cell_n_m_Tが0でcell_n_m_Fが1であれば、これは着目するセルに対応する遷移の条件文が成立するとき常に当該セルに対応する条件要素が偽であったこと(真偽が不変)を意味する。また、シミュレーションの終了後、cell_n_m_Tが1でcell_n_m_Fが1であれば、これは着目するセルに対応する遷移の条件文が成立するとき当該セルに対応する条件要素が真のときと偽のときとの両方があったこと(真偽が可変)を意味する。
(3)可変性計測・表示手段7は、各モニター変数が1ならcover、0ならnot coverとしてテーブルAの該当するセルへ追加する。各セルに対してモニター変数を計測し、これにより図13に示すテーブルB1を得る。可変性計測・表示手段7はこのテーブルB1を表示する。各セルについてT/F共にcoverのセルは、セルに対応する条件文が成り立つ間(真の間)、該セルに対応する条件要素の真偽が「可変」であることを、T/Fの一方がcover、他方がnot coverのセルは、真偽が「不変」であることを意味する。斜線がほどこされたセル(条件文の必要条件要素のセル)はTまたはFが常に成り立つ必要があるため元々記入されていたTまたはFに対してcoverが与えられる。なおテーブルB1の「Cover or not cover」のフィールドは、各遷移に対応する条件文がシミュレーションの間に少なくとも1回実行されたかどうかを示し、coverは少なくとも1回は実行されたことを、not coverは1回も実行されなかったことを意味する。
以上のように、本実施の形態によれば、各遷移の条件文に対応する必要条件要素が満たすべき真偽のみならず、非条件要素の真偽の可変性(「不変」または「可変」)も表示される。これにより、可変でありながら条件文に含まれていない非条件要素について条件文に含める必要があるかどうかなどの確認を設計・検証者に促すことができ、条件抜けの発見につながる。よって検証確度の向上が期待される。
(実施形態3−1)
図14は本発明の実施形態3−1としての回路設計検証方法を実行するシステムの構成を示す図である。この回路設計検証方法を実行するための命令コードを記述したプログラムをコンピュータに実行させることにより該システムと同等の機能を実現することも可能である。
検証対象回路(DUT)の回路記述と、検証対象回路と協調動作する他の回路の回路記述とを含む回路記述11が本システムに入力される。さらに検証対象回路(DUT)の入力信号および内部信号(req,count,valid_in_busなど)に関わる制約条件(たとえば信号が取りうる値の範囲の制約、ある信号の値と他の信号の値との関係に関する制約)をプロパティ言語で表したプロパティ記述(前提記述)9と、実施形態1で求められたテーブルAとが本システムに入力される。
チェック用命題記述生成手段10は、テーブルAの各遷移に対応する条件文に対し全ての非条件要素の真偽を計測するためのチェック用命題記述12を生成する。
プロパティチェック手段6は、検証対象回路(DUT)の回路記述に対して、チェック用命題記述12を用いてプロパティチェックを行う。本例では検証対象回路の回路記述のうち実施形態1で生成したテーブルAに対応して状態遷移記述を対象にプロパティチェックを行うが、本発明の適用はこれに限定されない。
可変性計測・表示手段14は、プロパティチェックにより得られた結果(カバレッジ結果)をテーブルAへ追加することによりテーブルB2を得る。可変性計測・表示手段14はテーブルB2を表示する。
以下、図14のシステムについて具体例を用いて説明する。
設計・検証者あるいは実施形態1のシステムが、回路記述11、プロパティ記述(前提記述)9、実施形態1で生成されたテーブルAを入力する。
チェック用命題記述生成手段10、プロパティチェック手段13、可変性計測・表示手段14によって、以下のような処理がなされる。
(1)チェック用命題記述生成手段10は、テーブルAにおける各遷移に対応する条件文の各非条件要素について、「条件文が真の間は常に真である」「条件文が真の間は常に偽である」という命題を作成し、チェック用命題記述12へ追加する。この様子を図15に示す。このようにして、全ての条件文に対し、各非条件要素の真偽の可変性を計測可能な命題が記述されたチェック用命題記述12を完成させる。
(2)プロパティチェック手段13は、回路記述11に対し、チェック用命題記述12を用いて、プロパティチェックを実行する。
(3)可変性計測・表示手段14は、図16のように、それぞれの命題のreal success/failの組み合わせよりcover/not coverを算出し、テーブルAへ追加する。real successは命題が成り立つことを意味し、failは命題が成り立たなかったことを意味する。cell_n_m_Tは、「条件が真の間は常に真である」が成立するときreal success(=1)となり、成立しないときfail(=0)となる。cell_n_m_Fは、「条件が真の間は常に偽である」が成立するときreal success(=1)となり、成立しないときfail(=0)となる。cell_n_m_T およびcell_n_m_Tの値の組合せにより、各セルについてそれぞれ3通りのカバレッジ結果(cover / not cover)が得られる(図16の一番下の表を参照)。テーブルAの各セルに対してカバレッジ結果を追加し、これにより図13と同様なテーブルB2(図示せず)を得る(なお当然ながらプロパティ記述9の内容に応じてテーブルの内容はシミュレーションの場合と異なる)。可変性計測・表示手段14は、得られたテーブルB2を表示する。
以上のように、本実施の形態によれば、プロパティチェックを用いることで、シミュレーションの場合よりも計算量が多くなり検証時間が増大するものの、シミュレーションのような限られたテストパターンだけでなく、網羅的なチェックが可能となる。
(実施形態3−2)
図17は本発明の実施形態3−2としての回路設計検証方法を実行するシステムの構成を示す図である。この回路設計検証方法を実行するための命令コードを記述したプログラムをコンピュータに実行させることにより該システムと同等の機能を実現することも可能である。
検証対象回路(DUT)の回路記述と、検証対象回路(DUT)と協調動作する他の回路の回路記述とを含む回路記述11と、実施形態2のシミュレーションで得られたテーブルB1(図13参照)と、検証対象回路(DUT)の入力信号および内部信号(req,count,valid_in_busなど)に関わる制約条件(たとえば信号が取りうる値の範囲の制約、ある信号の値と他の信号の値との関係に関する制約)をプロパティ言語で表したプロパティ記述(前提記述)9とが本システムに入力される。
チェック用命題記述生成手段15は、テーブルAの各遷移に対応する条件文に対しその非条件要素の真偽を計測するためのチェック用命題記述16を生成する。
プロパティチェック手段13は、検証対象回路(DUT)の回路記述(実施形態3−1と同様、状態遷移記述を対象とする)に対して、チェック用命題記述16を用いてプロパティチェックを行う。
可変性計測・表示手段14は、プロパティチェックにより得られた結果(カバレッジ結果)をテーブルB1へ上書きすることによりテーブルB3を得る。可変性計測・表示手段14はテーブルB3を表示する。
以下、図17のシステムについて具体例を用いて説明する。
設計・検証者あるいは実施形態2のシステムが、回路記述11、実施形態2で生成されたテーブルB1(図13参照)、プロパティ記述(前提記述)9を入力する。
チェック用命題記述生成手段15、プロパティチェック手段13、可変性計測・表示手段14によって、以下のような処理がなされる。
(1)チェック用命題記述生成手段15が、テーブルB1において可変性が不変であるセルを選択し、選択したセルに対応する条件文に対し、「その条件文が真の間は常に不変(真または偽)である」という命題記述を生成する。この様子を図18に示す。
(2)プロパティチェック手段13は、回路記述11に対し、チェック用命題記述15を用いて、プロパティチェックを実行する。
(3)可変性計測・表示手段14は、図19のように、各命題のreal success/failに応じて、テーブル B1のセルの内容(cover/not cover)を更新する。命題のチェック結果がreal success(真)であれば、セルの内容をそのままとし、fail(偽)であれば、該セルに対応する条件要素が真の場合と偽の場合の両方があるためT,Fのいずれも coverとする。可変性が不変である全てのセルに対して可変性カバレッジを更新し、これによりテーブルB3を得る。可変性計測・表示手段14は、テーブルB3を表示する。
以上のように、本実施の形態によれば、実施形態2のシミュレーション後に、可変性が不変であるセルについてのみ、実施形態3−2で説明したプロパティチェックを用いることで、実施形態3−1に比べて、計算量を削減することが可能となる。
(実施形態4)
図20は本発明の実施形態4としての回路設計検証方法を実行するシステムの構成を示す図である。この回路設計検証方法を実行するための命令コードを記述したプログラムをコンピュータに実行させることにより該システムと同等の機能を実現することも可能である。
実施形態2または3−1または3−2で得られたテーブル(B1 or B2 or B3)が本システムに入力される。
命題自動生成手段17は、本システムに入力されたテーブル(B1 or B2 or B3)において、可変性が不変であるセルに対してチェック用命題記述18を生成する。
以下、図20のシステムについて具体例を用いて説明する。
設計・検証者あるいは実施形態2または3−1または3−2のシステムが、実施形態2または3−1または3−2で生成されたテーブル(B1 or B2 or B3)を入力する。
命題自動生成手段17によって以下のような処理がなされる。
(1)命題自動生成手段17が、テーブル(B1 or B2 or B3)において、可変性が不変であるセルを選択する。
(2)選択したセルに対し、「その条件が真の間は常に不変(真または偽)である」という命題記述を生成する。
以上の処理により、可変性が不変のセルに対して、図18に示したような命題記述が自動生成される。
命題自動生成手段17によって生成されたチェック用命題記述18は、検証対象回路(DUT)の機能チェッカー(たとえば図17のプロパティチェック手段13)によって利用可能となる。またチェック用命題記述18は、シミュレーション用のプロパティ記述であるアサーション記述としてシミュレーションでも利用できるため、プロパティチェックツールを使用できない環境下でも利用可能である。これにより検証確度の向上が実現できる。
(実施形態5)
図21は本発明の実施形態5としての回路設計検証方法を実行するシステムの構成を示す図である。この回路設計検証方法を実行するための命令コードを記述したプログラムをコンピュータに実行させることにより該システムと同等の機能を実現することも可能である。
設計済みのシステム回路における検証対象回路に対し実施形態2または3−1または3−2から得られたテーブルB-aと、新規開発中のシステム回路における検証対象回路に対し実施形態2または3−1または3−2から得られたテーブルB-bとが本システムに入力される。新規開発システム回路の検証対象回路と、設計済みのシステム回路の検証対象回路とは同一であり、検証対象回路以外の回路は全て、新規開発システム回路と設計済みのシステム回路とで異なるとする。つまり、新規開発システム回路の検証対象回路は再利用モジュールに相当するとする。
機能変更箇所検出・表示手段21は、テーブルB-aとテーブルB-bとを比較し、各セルの可変性の相違を検出し、可変性の相違のある箇所(条件文と条件要素との組)を機能変更箇所として検出し、機能変更箇所検出データ22を生成する。機能変更箇所検出・表示手段21は、機能変更箇所検出データ22を表示する。
以下、図21のシステムについて具体例を用いて説明する。
設計・検証者あるいは実施形態2または3−1または3−2のシステムが、図13のテーブルをテーブルB-aとして、図22のテーブルをテーブルB-bとして入力したとする。
機能変更箇所検出・表示手段21によって、以下のような処理がなされる。
(1)テーブルB-aおよびテーブルB-bの間で互いに対応するセルのカバレッジ結果(Ta、Fa)および(Tb、Fb)を抽出する。
(2)(Ta、Fa)!=(Tb、Fb)のとき(すなわち不一致のとき)、機能変更箇所として以下のように検出・表示を行う。
A) 不一致:「不変」から「可変」
(Ta、Fa) =(cover、 not cover)あるいは(not cover、 cover)、(Tb、Fb) =(cover、 cover)の場合、新規開発システム回路において再利用モジュールの機能不足すなわち記述抜けの可能性が高いことを検出する。
B) 不一致:「可変」から「不変」
(Ta、Fa) =(cover、 cover)、(Tb、Fb) = (cover、 not cover)あるいは(not cover、 cover)の場合、再利用モジュール以外のモジュール(たとえば図1の再利用モジュールの前段のマスタ)において何らかの機能変更がされた可能性が高いことを検出する。
C) 不一致:「不変」から「不変」(反転)
(Ta、Fa) =(cover、 not cover)、(Tb、Fb) = (not cover、 cover)あるいは(Ta、Fa) =(not cover、 cover)、(Tb、Fb) = (cover、 not cover)の場合、再利用モジュール以外のモジュール(たとえば図1の再利用モジュールの前段のマスタ)において何らかの機能変更がされた可能性が高いことを検出する。
以上の処理により、図23のように機能変更箇所(可変性に相違のある、条件文と条件要素との組)の検出・表示がなされる。この例では、条件文if(count >= 2'b11)あるいはこれのelse項において、設計済みのシステム回路ではreq == 1'b1が常に真であったものが(図13参照)、新規開発中のシステム回路では偽にも成りうることを示している。このことから新規開発中のシステム回路で再利用されるスレーブモジュールの回路記述においてreq == 1'b1が偽になる条件が抜けているまたは抜けている可能性があることが検出できる。
以上のように、本実施の形態によれば、機能変更箇所検出・表示手段21によって、従来のカバレッジ方式では検出困難な機能変更箇所を取得できるため、機能不具合を早期に発見することができ、デバッグ時間を大幅に短縮させることができる。これにより、検証確度の向上と検証時間の短縮が実現できる。
新規開発システム回路のブロック図 新規開発システム回路で生じる問題事例を説明する図 上記問題事例を説明する状態遷移図 上記問題事例を説明する回路記述を示す図 本発明の実施形態1としてのシステム構成を示す図 検証対象回路の回路記述(スレーブの状態遷移記述部)の一例を示す図 図5のシステムにおけるテーブル作成・表示手段の処理を説明する図 テーブル作成・表示手段によって生成されたテーブルの一例を示す図 図5のシステムにおけるカバレッジ値算出・表示手段によって生成されたテーブルの一例を示す図 本発明の実施形態2としてのシステム構成を示す図 モニター用コードの挿入方法の一例を示す図 カバレッジ値算出方法の一例を示す図 実施形態2によって生成されたテーブルの一例を示す図 本発明の実施形態3−1としてのシステム構成を示す図 チェック用命題記述の生成例を示す図 カバレッジ値算出方法の一例を示す図 本発明の実施形態3−2としてのシステム構成を示す図 チェック用命題記述の生成例を示す図 カバレッジ算出方法の一例を示す図 本発明の実施形態4としてのシステム構成を示す図 本発明の実施形態5としてのシステム構成を示す図 新規開発システム回路から生成されたテーブルである。 設計済みシステム回路と新規開発システム回路との間での機能変更箇所の例を示す図
符号の説明
1:回路記述
2:テーブル作成・表示手段
3:カバレッジ値算出・表示手段
4:モニター用回路記述生成手段
5:モニター用回路記述
6:シミュレーション手段
7:可変性計測・表示手段
8:テストベンチ記述
9:プロパティ記述
10:チェック用命令記述生成手段
11:回路記述
12:チェック用命題記述
13:プロパティチェック手段
14:可変性計測・表示手段
15:チェック用命題記述生成手段
16:チェック用命題記述
17:命題自動生成手段
18:チェック用命題記述
21:機能変更箇所検出・表示手段
22:機能変更箇所検出データ
A、B1、B2、B3、B−a、B−b:テーブル

Claims (5)

  1. コンピュータにおいて実行する回路設計検証方法であって、
    前記コンピュータが、
    1つ以上の条件要素を含む複数の条件文を用いて回路を記述した回路記述を入力する入力ステップと、
    前記回路記述を走査して、前記回路記述に含まれる各条件文と、前記各条件文に含まれる条件要素を抽出する抽出ステップと、
    前記回路に対するテストデータを用いて前記回路記述をシミュレーション実行して、前記シミュレーション実行の間各前記条件文がそれぞれ成立したときに、前記抽出ステップで抽出されたすべての条件要素のうち前記条件文に含まれる条件要素以外の非条件要素について前記非条件要素が常に真であったか、常に偽であったか、あるいは真と偽の両方があったかを前記条件文ごとに検査し、前記条件文ごとに前記条件文に対応する前記非条件要素がそれぞれ常に真であったか、常に偽であったか、あるいは真と偽の両方があったかの情報を格納したテーブルを生成するテーブル生成ステップと、
    前記テーブルにおける各前記条件文のそれぞれについて、前記真と偽の両方があった前記非条件要素は、前記条件文に含めるべき条件要素の候補として示されるものとして前記テーブルを表示する表示ステップと、
    を実行し、
    前記テーブル生成ステップは、前記テーブルにおける前記条件文と前記非条件要素との組に対応するセル毎に第1モニター変数と第2モニター変数とを設定し、前記シミュレーション実行の間に、前記セルに対応する前記組の非条件要素が1度でも真になったときは前記第1モニター変数に第1値を設定しそれ以外の場合は第2値を設定し、1度でも偽になれば前記第2モニター変数に第1値を設定しそれ以外の場合は第2値を設定し、シミュレーション後、前記第1および第2モニター変数の値を確認し、前記第1モニター変数の値が第1値であり第2モニター変数の値が第2値であれば前記非条件要素は常に真であり、第1モニター変数の値が第2値であり第2モニター変数の値が第1値であれば前記非条件要素は常に偽であり、第1および第2モニター変数の値ともに第1値であれば前記非条件要素は真と偽との両方があったことを決定する、
    ことを特徴とする回路設計検証方法。
  2. コンピュータにおいて実行する回路設計検証方法であって、
    前記コンピュータが、
    1つ以上の条件要素を含む複数の条件文を用いて回路を記述した回路記述を入力する入力ステップと、
    前記回路記述を走査して、前記回路記述に含まれる各条件文と、前記各条件文に含まれる条件要素を抽出する抽出ステップと、
    前記回路に対するテストデータを用いて前記回路記述をシミュレーション実行して、前記シミュレーション実行の間各前記条件文がそれぞれ成立したときに、前記抽出ステップで抽出されたすべての条件要素のうち前記条件文に含まれる条件要素以外の非条件要素について前記非条件要素が常に真であったか、常に偽であったか、あるいは真と偽の両方があったかを前記条件文ごと検査し、前記条件文ごとに前記条件文ごとに前記条件文に対応する前記非条件要素がそれぞれ常に真であったか、常に偽であったか、あるいは真と偽の両方があったかの情報を記述したテーブルを生成するテーブル生成ステップと、
    前記テーブルにおける各前記条件文のそれぞれについて、前記真と偽の両方があった前記非条件要素は、前記条件文に含めるべき条件要素の候補として前記テーブルを表示する表示ステップと、
    を実行し、
    前記テーブル生成ステップは、前記回路記述における各前記条件文のそれぞれに対応する前記非条件要素毎に、前記条件文が真である間は常に真であるという第1命題と、前記条件文が真の間は常に偽であるという第2命題とを作成して前記回路記述に追加し、前記シミュレーション実行により各前記第1および第2命題の正否を確認し、前記第1命題が成立し前記第2命題が成立しなかったときは前記非条件要素は常に真であり、前記第1命題が成立せず前記第2命題が成立したときは前記非条件要素は常に偽であり、前記第1命題および第2命題のいずれも成立したときは前記非条件要素は真と偽との両方があったことを決定する
    ことを特徴とする回路設計検証方法。
  3. 前記コンピュータは、
    再利用モジュールを含む第1の回路を記述した第1の回路記述に基づき前記再利用モジュールについて生成した第1のテーブルと、前記再利用モジュールを含み、前記再利用モジュール以外の構成に関しては前記第1の回路と異なる第2の回路を記述した第2の回路記述に基づき前記再利用モジュールについて生成した第2のテーブルとを比較する、比較ステップと、
    前記第1のテーブルと前記第2のテーブルとの間で前記情報が不一致である、条件文と非条件要素との組とを検出する検出ステップと、
    前記検出ステップで検出した組と、前記第1および第2のテーブルのそれぞれにおける前記検出した組の前記非条件要素の前記情報とを表示する表示ステップと
    をさらに実行し、
    前記第1のテーブルにおける前記検出した組の前記非条件要素の前記情報が常に偽または真であることを示し、かつ前記第2のテーブルにおける前記検出した組の前記非条件要素の前記情報が真と偽の両方があったことを示すときは、前記検出した組の前記非条件要素を前記検出した組の前記条件文に含めるべき条件要素の候補として示される
    ことを特徴とする請求項1または2記載の回路設計検証方法。
  4. 前記回路記述は、前記複数の条件文の成否に基づいて複数の各状態の遷移を表した状態遷移マシンの記述を含み、
    前記抽出ステップは、前記状態遷移マシンの記述に含まれる条件文と前記条件文に含まれる条件要素とを抽出し、
    前記テーブル生成ステップは、前記シミュレーション実行において、状態の遷移が起こるために成立することが必要な条件文が成立したことを検出したときに前記条件文に対応する前記非条件要素がそれぞれ常に真であったか、常に偽であったか、あるいは真と偽の両方があったかを検査することを特徴とする請求項1ないし3のいずれか一項に記載の回路設計検証方法。
  5. 請求項1〜4のいずれか一項に記載の各ステップを前記コンピュータに実行させるための回路設計検証のためのプログラム。
JP2007128395A 2007-05-14 2007-05-14 回路設計検証方法および回路設計検証のためのプログラム Expired - Fee Related JP4445517B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007128395A JP4445517B2 (ja) 2007-05-14 2007-05-14 回路設計検証方法および回路設計検証のためのプログラム
US12/117,018 US20080288902A1 (en) 2007-05-14 2008-05-08 Circuit design verification method and apparatus and computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007128395A JP4445517B2 (ja) 2007-05-14 2007-05-14 回路設計検証方法および回路設計検証のためのプログラム

Publications (2)

Publication Number Publication Date
JP2008282351A JP2008282351A (ja) 2008-11-20
JP4445517B2 true JP4445517B2 (ja) 2010-04-07

Family

ID=40028795

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007128395A Expired - Fee Related JP4445517B2 (ja) 2007-05-14 2007-05-14 回路設計検証方法および回路設計検証のためのプログラム

Country Status (2)

Country Link
US (1) US20080288902A1 (ja)
JP (1) JP4445517B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429637B2 (en) 2008-09-02 2013-04-23 Apple Inc. System and method for conditional expansion obfuscation
US8589897B2 (en) * 2008-08-26 2013-11-19 Apple Inc. System and method for branch extraction obfuscation
JP5287058B2 (ja) * 2008-09-08 2013-09-11 富士通株式会社 検証支援プログラム、検証支援装置および検証支援方法
JP5267434B2 (ja) * 2009-11-19 2013-08-21 富士通株式会社 検証支援プログラム、検証支援装置および検証支援方法
JP2011186817A (ja) * 2010-03-09 2011-09-22 Toshiba Corp 論理検証装置及び論理検証方法
JP6053581B2 (ja) * 2013-03-13 2016-12-27 三菱電機株式会社 電子回路解析装置、電子回路解析方法および電子回路解析プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL132058A (en) * 1999-09-23 2003-12-10 Ibm Identification of missing properties in model checking
JP2002073719A (ja) * 2000-08-31 2002-03-12 Hitachi Ltd 回路動作モデル記述の生成方法および論理設計検証装置
JP3848157B2 (ja) * 2001-12-27 2006-11-22 株式会社東芝 Lsi設計検証装置、lsi設計検証方法、及びlsi設計検証プログラム
JP2006201980A (ja) * 2005-01-19 2006-08-03 Fujitsu Ltd カバレッジ評価装置、カバレッジ評価方法、カバレッジ評価プログラム、および記録媒体

Also Published As

Publication number Publication date
JP2008282351A (ja) 2008-11-20
US20080288902A1 (en) 2008-11-20

Similar Documents

Publication Publication Date Title
US8417504B2 (en) Conversion of circuit description to a transaction model
US6591403B1 (en) System and method for specifying hardware description language assertions targeting a diverse set of verification tools
JP4445517B2 (ja) 回路設計検証方法および回路設計検証のためのプログラム
US20070156378A1 (en) System and method for verification aware synthesis
US9208272B2 (en) Apparatus and method thereof for hybrid timing exception verification of an integrated circuit design
US9177089B2 (en) Formal verification coverage metrics for circuit design properties
Wille et al. Debugging of inconsistent UML/OCL models
US7461326B2 (en) Information processing method capable of detecting redundant circuits and displaying redundant circuits in the circuit design process
US20220075920A1 (en) Automated Debug of Falsified Power-Aware Formal Properties using Static Checker Results
US20100194436A1 (en) Verification support system and method
US9792394B2 (en) Accurate glitch detection
US10515169B1 (en) System, method, and computer program product for computing formal coverage data compatible with dynamic verification
US20230306172A1 (en) Dynamic cdc verification method
US20220382943A1 (en) Identifying association of safety related ports to their safety mechanisms through structural analysis
US20220269846A1 (en) Structural analysis for determining fault types in safety related logic
US10909290B2 (en) Method of detecting a circuit malfunction and related device
US11556676B2 (en) Scalable formal security verification of circuit designs
US7835899B2 (en) Sequential logic in simulation instrumentation of an electronic system
US9547568B2 (en) Method and apparatus for verifying circuit design
US10546083B1 (en) System, method, and computer program product for improving coverage accuracy in formal verification
US9047428B2 (en) Determining method, computer product, and determining apparatus
US20240046014A1 (en) Process to relay knowledge and guide synthesis alongside early detection of logic optimizations
JP5899781B2 (ja) 設計支援装置、設計支援方法および設計支援プログラム
JP5052432B2 (ja) 故障検出率向上用回路挿入装置
CN112364600B (zh) 一种处理器微架构设计验证方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090318

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090811

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091005

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

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

Free format text: PAYMENT UNTIL: 20130122

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees