(57)【特許請求の範囲】
【請求項１】
レジスタ転送仕様、及び機能検証用の検証スイートを入力することによって、論理回路の機能テストの検証カバレッジを評価する方法において、
前記論理回路のレジスタ転送仕様、及び機能検証用のテストベクトルからなる検証スイートを入力手段により入力するステップと、
少なくとも値保持に必要なレジスタに関する記述を含む前記レジスタ転送仕様の冗長な部分を検出手段により検出するステップと、
前記検出手段による検出結果に基づいて、簡単化手段により、既存の前記検証スイートに含まれるテストベクトルのうち無効なテストベクトルを削除し、新たな検証スイートを生成するステップと、
カバレッジ計測手段により、前記新たな検証スイートを用いて、前記レジスタ転送仕様の冗長な部分を無効化して、前記検証カバレッジを計測するステップと
を有し、
前記検出手段による前記冗長な部分を検出するステップでは、前記レジスタ転送仕様に関するレジスタ又は演算のいずれかをノードとし、該ノード間のデータの流れをアークとし、これらノードとアークとから構成されたグラフであるデータフローグラフ及びコントロールフローグラフを生成し、前記ノードまたは前記アークが活性化されたか否かに基づいて前記冗長な部分を発見する処理を含む
ことを特徴とする論理回路の検証カバレッジ評価方法。
【請求項２】
請求項１に記載された論理回路の検証カバレッジ評価方法において、
前記簡単化手段は、前記冗長な部分に関するテストベクトルだけを、既存の前記検証スイートから削除することを特徴とする論理回路の検証カバレッジ評価方法。
【請求項３】
論理回路の機能テストの検証カバレッジを評価する検証カバレッジ評価システムであって、
前記論理回路のレジスタ転送仕様、及び機能検証用のテストベクトルからなる検証スイートを入力する入力手段と、
少なくとも値保持に必要なレジスタに関する記述を含む前記レジスタ転送仕様の冗長な部分を検出する検出手段と、
前記検出手段による検出結果に基づいて、前記検証スイートに含まれるテストベクトルのうち無効なテストベクトルを削除し、新たな検証スイートを生成する簡単化手段と、
前記新たな検証スイートを用いて、前記レジスタ転送仕様の冗長な部分を無効化して、前記検証カバレッジを計測するカバレッジ計測手段と
からなり、
前記検出手段による前記冗長な部分の検出は、前記レジスタ転送仕様に関するレジスタ又は演算のいずれかをノードとし、該ノード間のデータの流れをアークとし、これらノードとアークとから構成されたグラフであるデータフローグラフ及びコントロールフローグラフを生成し、前記ノードまたは前記アークが活性化されたか否かに基づいて前記冗長な部分を発見する処理を含む
ことを特徴とする論理回路の検証カバレッジ評価システム。
【請求項４】
論理回路の機能テストの検証カバレッジを評価するプログラムを記録したコンピュータ読み取り可能な記録媒体において、該プログラムは、
前記論理回路のレジスタ転送仕様、及びテストベクトルからなる検証スイートを入力するステップと、
少なくとも値保持に必要なレジスタに関する記述を含む前記レジスタ転送仕様の冗長な部分を検出するステップと、
検出された前記冗長な部分に基づいて、既存の前記検証スイートに含まれるテストベクトルのうち無効なテストベクトルを削除し、新たな検証スイートを生成するステップと、
生成された前記新たな検証スイートを用いて、前記レジスタ転送仕様の冗長な部分を無効化して、前記検証カバレッジを計測するステップと
を有し、前記検出手段による前記冗長な部分を検出するステップは、
前記レジスタ転送仕様に関するレジスタ又は演算のいずれかをノードとし、該ノード間のデータの流れをアークとし、これらノードとアークとから構成されたグラフであるデータフローグラフ及びコントロールフローグラフを生成するステップと、
生成された前記データフローグラフ及び前記コントロールフローグラフにおいて前記ノードまたは前記アークが活性化されたか否かに基づいて、前記レジスタ転送仕様の冗長な部分を発見するステップと
を含むことを特徴とする論理回路の検証カバレッジ評価プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、論理回路の検証カバレッジ計測方法に関し、特に、論理回路のレジスタ転送レベル（以下ＲＴＬ）記述で検証カバレッジを計測するにあたり、ＲＴＬ記述の最適化を行うことを特徴とした検証カバレッジ評価方法に関するものである。
【０００２】
【従来の技術】
従来、ＲＴＬ記述で設計された論理回路のモデルは、一般的に、検証スイート（テストベクトル）をシミュレータに入力して検証を行う。この検証の進捗は、ＲＴＬ記述にかかれた論理式や条件文の活性化、有限状態機械の各状態の網羅率、さらに状態間の遷移が既存の検証スイートでカバー（補償）されているかで判断される。そして、このカバレッジ（補償範囲）を計測するカバレッジ評価（ＣＡＤ）ツールが開発されている。
【０００３】
【発明が解決しようとする課題】
しかしながら、上述したＲＴＬ記述は人が設計するため、論理や機能として冗長な記述（論理合成後に論理簡単化若しくは削除される記述）が存在することがある。
【０００４】
従来のカバレッジ評価ツールは、この冗長な記述を無視して検証スイートのカバレッジ評価を行うものであるため、このような評価結果に基づいてテストを追加すると、ＲＴＬから論理合成で生成された回路では、実際に存在しない回路のテスト、すなわち不要なテストを生成することとなる。
【０００５】
詳述すると、カバレッジを計測する目的は、アンカバーの（不活性な）記述のテストベクトルを追加することにあるため、例えば、設計が下流に進んで回路の結線や素子として存在しないものが含まれていた場合であっても、この存在しない結線や素子を検証するためのテストを追加することになってしまう。
【０００６】
その結果、不要なテストが生成された場合には、この不要なテストについてもシミュレーション等を行わなければならないため、本来的には不要な作業が増大し、これに伴って論理回路の検証に要する時間が長期化するとともに、検証作業が繁雑となり多大な労力を費やさなければならないという問題が生じていた。
【０００７】
そこで、本発明は上記事情に鑑みて成されたものであり、検証テストでカバーされていない記述を正確に計測し、不要なテストを作成することを防ぐことができる論理回路の検証カバレッジ評価方法、評価システム及び評価プログラムを記録したコンピュータ読み取り可能な記録媒体を提供することを課題とする。
【０００８】
【課題を解決するための手段】
上記の課題を達成するために本発明は、レジスタ転送仕様、及び機能検証用の検証スイートを入力することによって、論理回路の機能テストの検証カバレッジを評価する方法において、前記論理回路のレジスタ転送仕様、及び機能検証用のテストベクトルからなる検証スイートを入力手段により入力するステップと、少なくとも値保持に必要なレジスタに関する記述を含む前記レジスタ転送仕様の冗長な部分を検出手段により検出するステップと、前記検出手段による検出結果に基づいて、簡単化手段により、既存の前記検証スイートに含まれるテストベクトルのうち無効なテストベクトルを削除し、新たな検証スイートを生成するステップと、カバレッジ計測手段により、前記新たな検証スイートを用いて、前記レジスタ転送仕様の冗長な部分を無効化して、前記検証カバレッジを計測するステップとを有し、前記検出手段による前記冗長な部分を検出するステップでは、前記レジスタ転送仕様に関するレジスタ又は演算のいずれかをノードとし、該ノード間のデータの流れをアークとし、これらノードとアークとから構成されたグラフであるデータフローグラフ及びコントロールフローグラフを生成し、前記ノードまたは前記アークが活性化されたか否かに基づいて前記冗長な部分を発見する処理を含むものである。
【０００９】
また、他の発明は、論理回路の機能テストの検証カバレッジを評価する検証カバレッジ評価システムであって、前記論理回路のレジスタ転送仕様、及び機能検証用のテストベクトルからなる検証スイートを入力する入力手段と、少なくとも値保持に必要なレジスタに関する記述を含む前記レジスタ転送仕様の冗長な部分を検出する検出手段と、前記検出手段による検出結果に基づいて、前記検証スイートに含まれるテストベクトルのうち無効なテストベクトルを削除し、新たな検証スイートを生成する簡単化手段と、前記新たな検証スイートを用いて、前記レジスタ転送仕様の冗長な部分を無効化して、前記検証カバレッジを計測するカバレッジ計測手段とからなり、前記検出手段による前記冗長な部分の検出は、前記レジスタ転送仕様に関するレジスタ又は演算のいずれかをノードとし、該ノード間のデータの流れをアークとし、これらノードとアークとから構成されたグラフであるデータフローグラフ及びコントロールフローグラフを生成し、前記ノードまたは前記アークが活性化されたか否かに基づいて前記冗長な部分を発見する処理を含むものである。
【００１０】
さらに、他の発明は、論理回路の機能テストの検証カバレッジを評価するプログラムを記録したコンピュータ読み取り可能な記録媒体において、該プログラムは、  前記論理回路のレジスタ転送仕様、及びテストベクトルからなる検証スイートを入力するステップと、少なくとも値保持に必要なレジスタに関する記述を含む前記レジスタ転送仕様の冗長な部分を検出するステップと、検出された前記冗長な部分に基づいて、既存の前記検証スイートに含まれるテストベクトルのうち無効なテストベクトルを削除し、新たな検証スイートを生成するステップと、生成された前記新たな検証スイートを用いて、前記レジスタ転送仕様の冗長な部分を無効化して、前記検証カバレッジを計測するステップとを有し、前記検出手段による前記冗長な部分を検出するステップは、前記レジスタ転送仕様に関するレジスタ又は演算のいずれかをノードとし、該ノード間のデータの流れをアークとし、これらノードとアークとから構成されたグラフであるデータフローグラフ及びコントロールフローグラフを生成するステップと、生成された前記データフローグラフ及び前記コントロールフローグラフにおいて前記ノードまたは前記アークが活性化されたか否かに基づいて、前記レジスタ転送仕様の冗長な部分を発見するステップとを含むものである。
【００１１】
これらの発明によれば、例えばデータフローグラフやコントロールフローグラフを生成するなどして、レジスタ転送仕様に含まれる冗長な部分を発見し、この冗長な部分を考慮して検証スイートに含まれる無効なテストベクトルを削除等して検証カバレッジを評価するため、レジスタ転送仕様に含まれる冗長な部分に基づく、無駄なテストケース等が追加されるのを防止することができ、不要な作業を省略することができる。
【００１２】
即ち、本発明によれば、データフローやコントロールフローにおいて冗長な記述を簡単化できるので、冗長な記述を的確に見出し削除するので、正確なカバレッジが計測できるという効果がある。また、カバレッジツールにおいてテストデータと各ノードとアークを関連付けてカバレッジが評価できるので、冗長なノードを発見してそれを削除した場合、そのノードを活性化するパタンだけを削除できるという効果がある。
【００１３】
【発明の実施の形態】
（カバレッジ評価システムの構成）
以下、この発明に係るカバレッジ評価方法を実現するシステムの実施形態について説明する。図１は、本実施形態に係るカバレッジ評価システム１０の構成を示すブロック図である。
【００１４】
同図に示すように、本実施形態に係るカバレッジ評価システム１０は、レジスタ転送レベル（ＲＴＬ）記述３を取り込む入力手段と、検証スイート４を入力する手段と、機能テストカバレッジを計測する機能テストカバレッジ計測装置１と、ＲＴＬ記述を簡単化するＲＴＬ簡単化装置２と、変換された検証スイート５を出力する出力手段とから概略構成される。
【００１５】
前記ＲＴＬ記述３は、設計の対象となる論理回路のモデルであり、レジスタ転送仕様等の記述を含むものである。また、前記検証スイート４は、設計の対象となる論理回路の機能を検証するための複数テストデータ（ベクトル）の集合体である。
【００１６】
前記機能テストカバレッジ計測装置１は、ＲＴＬ記述３を取り込み、構文木を生成し、ＲＴＬ記述３に含まれる変数や演算、条件文、ループ文等を解析して、コントロールデータフローグラフ（ＣＤＦＧ）を生成するものである。この、コントロールデータフローグラフとは、演算をノード、演算間のデータの流れをエッジとしたグラフである。
【００１７】
また、この機能テストカバレッジ計測装置１は、前記ＣＤＦＧを基に、値保持に必要なレジスタを割り付け、さらには、有限状態機械を認識し、状態、状態間の遷移、遷移を起こす条件を作成する。なお、このＣＤＦＧでは、ポートや信号、論理／機能演算子、左辺信号への代入及びＩＦやＣＡＳＥ等の条件をノードとして表現し、またノード間の結線をアークとして内部形式で表現する。
【００１８】
そして、機能テストカバレッジ計測装置１では、検証スイート４と、この内部データとを用いて、設計対象である論理回路モデルについて実際にシミュレーションを行い、各ノードとアークが活性化（０、１の値でトグル）されたところを抽出し、この抽出された部分については検証がカバー（補償）されているものとして評価する。
【００１９】
一方、前記ＲＴＬ簡単化装置２は、機能テストカバレッジ計測装置１による評価結果に基づいて、検証スイート４に含まれるテストデータの中から、冗長なＲＴＬ記述の文に関するテストデータを抽出し、これについて無効であるか否かを判断し、無効であると判断したときには、抽出したテストデータを検証スイート４から削除するものである。
【００２０】
これによって、カバレッジの総和に寄与しないテストデータは、入力された検証スイート４から削除されることになる。そして、不要なテストデータが削除された検証スイート４は、簡単化された新たな検証スイート５として、出力手段から出力される。
【００２１】
（カバレッジ評価システムの動作）
次いで、上述したカバレッジ評価システム１０の動作処理の概要について、図２を用いて詳細に説明する。先ず、同図に示すように、ＲＴＬ記述３が読み込まれることにより評価処理が開始される（Step２００）。すなわち、入力手段を介して、機能仕様が記述されたＲＴＬ記述３が入力され、解析が開始される（Step２０１）。
【００２２】
次いで、かかる解析結果に基づいて、代入演算をノードとして変数や演算をノードする文毎に作成されるデータ構造である構文木を作成する（Step２０２）。また、この構文木に基づいて、ＣＤＦＧを生成する（Step２０３）。
【００２３】
その後、ＲＴＬ簡単化装置２において、前記構文木やＣＤＦＧを用いて、ＲＴＬ記述１３中の冗長なノードとアークを削除し、ＲＴＬ記述を簡単化する（Step２０４）。
【００２４】
そして、この簡単化後のデータを用いて機能テストカバレッジを計測し（Step２０５）、データベースにノードと活性化パタンの関係を保存し、これに基づいて、機能テストカバレッジの総和に寄与しないテストデータ（機能テスト）を探し削除し（Step２０６）、プログラムを終了する（Step２０７）。なお、このようにして不要なテストデータが削除された検証スイートは、簡単化された新たな検証スイート５として生成され、必要に応じて出力手段から出力される。
【００２５】
（データフローグラフの作成処理及び簡単化処理）
次に、上述したデータフローグラフ（ＤＦＧ）の作成及び簡単化処理について説明する。数１は、ＲＴＬ記述（ＶＨＤＬ）の一例である。
【００２６】
【数１】
0004080644.tif 000002
同数式において、Clockはクロック信号であり、Resetはレジスタのリセット信号である。状態は３つありINIは初期状態でST0とST1が設定されている。また、 プロセス文のブロックのSTREG1が状態レジスタであり、FSM1が有限状態機械、ＲＥＧが複数のデータレジスタである。なお、ＲＴＬ記述では、有限状態機械とデータパスを別のプロセス文で表現することも可能であり、本発明は、この記述に限定されるものではない。
【００２７】
なお、上記有限状態機械とは、制御ステップに対応したステートを持ち、各状態におけるデータ加工を記述したものである。状態ST0ではａとｂの加算、またST1ではその加算の結果とｂ−ｃの結果の加算を行っている。
【００２８】
図３は、上記ＲＴＬ記述のデータフローグラフ（ＤＦＧ）であり、構文木をトレースしデータと演算の順番をもとに生成したものである。なお、同図において、コントロールデータフローも内部データとしては持っているが、本実施形態では簡単のため省略している。
【００２９】
同図において、ＤＦＧは、ノードＮ１〜Ｎ１７間をアーク（黒丸間の結線）で接続して構成され、図中点線より上方のノードＮ１〜Ｎ１４が状態ST0に属し、 点線より下方のノードＮ１５〜Ｎ１７が状態ST1に属する。そして、このＤＦＧ において、冗長なノードやアークは簡単化則で削除することができる。
【００３０】
例えばノードＮ６（ｔ＿equal）はレジスタで値を保持されるが、実際に使用 されるのは状態ST1なので、状態ST0においては削除することができる。従って、簡単化後のデータフローは、図４に示すように、ノードＮ６は省略することができる。また、このときノードＮ５、すなわち１ビットの１とのEQ（等価比較）は、１とのAND（論理積）になることから、ノードＮ１〜Ｎ３（Cnd  AND  bcd）とのＡＮＤに吸収される。
【００３１】
これらの結果、ノードＮ４〜Ｎ６は削除されることとなり、このレジスタを活性化するテストは不要になる。すなわち、機能テストの検証カバレッジにおいては、ノードとアークの値が、例えば１から０或いは０から１というように、ノードの値を活性化させるようにテストデータを用意する必要があることから、上記の例のようにノードが削除されると、そのノードだけを活性化させていたテストデータは不要になり、削除することができ、簡単化を行うことができる。
【００３２】
ここで、前記簡単化について詳述する。かかるテストカバレッジの評価は、具体的には、入力テストシーケンスに対してモデルのすべてのノードとアークに関してＸから０へ、Ｘから１へ、０から１へ、１から０に変化する回数を計数する。ここで、０，１，Ｘは３つの論理値を表し、Ｘは１若しくは０を示す。ノードNiの活性化回数の計数については、例えば以下の式により行うことができる。
【００３３】
Ni(x-0 Actcnt)+Ni(x-1 Actcnt)+Ni(0-1 Actcnt)+Ni(1-0 Actcnt)  −(1)
ここで、Ni(x-0 Actcnt)は、ノードNiが論理値Ｘから０へ変化した回数を意味し、ｘ−１、０−１、１−０も同様である。
【００３４】
また、アークｉの活性化回数の計数については、例えば以下の式により行うことができる。
【００３５】
Ai(x-0  Actcnt)+Ai(x-1 Actcnt)+Ai(0-1 Actcnt)+Ai(1-0 Actcnt)  −(2)
ここで、Ai(x-0 Actcnt)は、アークAiが論理値Ｘから０へ変化した回数を意味し、ｘ−１、０−１、１−０も同様である。
【００３６】
そして、カバレッジの総和は、(1)の式をすべてのノードに関して積算した値 と、(2)の式についてすべてのアークに関してその値とを積算したものである。
【００３７】
簡単化に際しては、各テストパタンが活性化に寄与したノードとアークの関連をデータベースに保存する。例えば、ノードNiは、パタンPT1とPT3とで活性化されることを下記のように関係付けて保存する。
【００３８】
(Ni:PT1、PT3)  −▲１▼
かかるデータベースを参照することによって、活性化の係数の総計に寄与しないテストベクトルから、削除の対象となるパタンを選ぶ。なお、このとき、通常は、削除されたノードを活性化させるパタンは、他のノードも活性化させることが多いが、その他のノードが他のパタンにより活性化できる場合は、削除対象とする。
【００３９】
例えば、ノードNiが削除された場合、上記関係▲１▼からパタンPT1とPT3を選び、他のノードNi=/iの関係でPT1とPT3が使用されたかどうか調べ、PT3が使用されていない場合はPT3が削除できる。
【００４０】
なお、本実施例では典型的なカバレッジ評価方法を引用して説明したが、本発明は、ＲＴＬ記述の個別の記述や、テストスイートの記述（本実施形態では示していない。）や、前述の(1)と(2)式の３値モデルの活性化回数の計算式に限定されるものではない。さらには、本実施形態では、データフローグラフをベースに説明してきたが、制御を表す有限状態機械の活性化率の計算は、各状態をノード、各状態間の遷移をアークとみなせば本実施形態と同様に計算することができる。そしてさらに、ＲＴＬ記述の各行をノード、行間のつながりをアークとみなせば、ＲＴＬ記述の行の活性化率の計算へも本手法を使用することができる。
【００４１】
（カバレッジ評価プログラム）
なお、上述したカバレッジ評価システムは、上述した図２に示すフローチャートの各ステップを有するカバレッジ評価プログラムを作成し、これをパーソナルコンピュータ等の汎用機にインストールすることによって実現することができる。
【００４２】
具体的には、該プログラムは、ＲＴＬ記述（レジスタ転送仕様）、及び検証スイートを入力するステップと、ＲＴＬ記述の冗長な部分を発見をするステップと、冗長な部分を考慮し、検証スイートに含まれるテストベクトルのうち無効なものを検出するステップと、この無効なテストベクトルを前記検証スイートから削除して新たな検証スイートとして出力するステップとから概略構成する。
【００４３】
なお、かかるカバレッジ評価プログラムにおいても、ＲＴＬ記述の冗長な部分を考慮するために、ＲＴＬ記述に関するデータフローグラフ、コントロールフローグラフを生成し、生成されたデータフローグラフ及びコントロールフローグラフに基づいて、ＲＴＬ記述の冗長な部分を発見をするステップを設けてもよい。
【００４４】
そして、このようなカバレッジ評価プログラムは、図５に示すような、汎用コンピュータ１５で読み取り可能な記録媒体１６〜１９に記録することができる。すなわち、同図に示すような、フロッピーディスク１６やカセットテープ１９等の磁気記録媒体、若しくはＣＤ−ＲＯＭ１７等の光ディスクの他、ＲＡＭカード１８などのコンピュータで読み取り可能な記録媒体に記録することができる。
【００４５】
このようなカバレッジ評価プログラムを記録したコンピュータ読み取り可能な記録媒体によれば、論理回路の機能検証テストでカバーされていない記述を正確に計測し、不要なテストが作成されることを防ぐことができるという有用なソフトウェアの保存、運搬及びインストールを容易に行うことができ、論理回路の検証をより迅速且つ簡便なものとすることができる。
【００４６】
【発明の効果】
本発明に係る論理回路の検証カバレッジ評価方法、評価システム及び評価プログラムを記録したコンピュータ読み取り可能な記録媒体によれば、論理回路の機能テストの際、検証テストでカバーされていない記述を正確に計測し、不要なテストを作成することを防ぐことができ、論理回路の機能検証に要する時間や労力を軽減することができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る論理回路の検証カバレッジ評価システムの概略構成を示すブロック図である。
【図２】本発明の実施形態に係る論理回路の検証カバレッジ評価方法の手順を示すフロー図である。
【図３】本発明の実施形態に係るデータフローグラフの簡単化処理を示す説明図であり、簡単化する前の状態を示すものである。
【図４】本発明の実施形態に係るデータフローグラフの簡単化処理を示す説明図であり、簡単化した後の状態を示すものである。
【図５】本発明の実施形態に係る論理回路の検証カバレッジ評価プログラムを記録したコンピュータ読み取り可能な記録媒体を示す説明図である。
【符号の説明】
１…機能テストカバレッジ計測装置、２…ＲＴＬ簡単化装置、３…ＲＴＬ記述
４…検証スイート（簡単化処理前）、５…検証スイート（簡単化処理後）
【図１】
0004080644.tif 000003
【図２】
0004080644.tif 000004
【図３】
0004080644.tif 000005
【図４】
0004080644.tif 000006
【図５】
0004080644.tif 000007