JP5267434B2 - 検証支援プログラム、検証支援装置および検証支援方法 - Google Patents

検証支援プログラム、検証支援装置および検証支援方法 Download PDF

Info

Publication number
JP5267434B2
JP5267434B2 JP2009264234A JP2009264234A JP5267434B2 JP 5267434 B2 JP5267434 B2 JP 5267434B2 JP 2009264234 A JP2009264234 A JP 2009264234A JP 2009264234 A JP2009264234 A JP 2009264234A JP 5267434 B2 JP5267434 B2 JP 5267434B2
Authority
JP
Japan
Prior art keywords
conditional
description
verification
conditional branch
expressions
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
JP2009264234A
Other languages
English (en)
Other versions
JP2011108116A (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 JP2009264234A priority Critical patent/JP5267434B2/ja
Priority to US12/949,094 priority patent/US8584064B2/en
Publication of JP2011108116A publication Critical patent/JP2011108116A/ja
Application granted granted Critical
Publication of JP5267434B2 publication Critical patent/JP5267434B2/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
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property 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)
  • Stored Programmes (AREA)

Description

本開示技術は、ハードウェア設計された検証対象回路に対する検証処理を支援する検証支援プログラム、検証支援装置および検証支援方法に関する。
従来、所望の機能を実現するためハードウェア(回路)を設計した場合には、実際のハードウェア製造に移行する前段階の処理として設計内容に漏れがないかの論理検証をおこなう作業が必須となる。具体的には、ハードウェアの設計内容に沿った検証シナリオを生成し、この検証シナリオを入力した場合の出力結果を用いて論理検証がおこなわれていた。
また、上述のようにして生成した検証シナリオによる検証処理を客観的に評価するために、検証カバレッジが求められる。検証カバレッジは、検証対象に対するシミュレーション検証のパターンが十分であるか否かの指標を表す情報である。具体的には、たとえば、検証を要するすべてのシミュレーション検証のパターンを母集団とした場合に、実行したシミュレーション検証のパターン数の割合によって求めた網羅率が検証カバレッジとして提供される。この場合、検証カバレッジ(網羅率)が高ければ検証精度も高いと判断される。
ここで問題になるのが、母集団となる“検証を要するシミュレーション検証の全パターン”の抽出の手法である。この母集団に相当するシミュレーション検証の全パターンをカバレッジ基準という。そして、このカバレッジ基準として、実質的に検証に役に立たないパターンを抽出してしまうと、たとえシミュレーション検証の網羅率が高くても実際の検証効率の向上にはつながらない場合がある。
そこで、現在は特定の基準に沿って、網羅的にパターンを抽出するパスカバレッジやコードカバレッジという手法が利用されている。パスカバレッジは、検証対象回路に含まれるレジスタにおいて状態遷移を生じるすべてのパスを検証するためのパターンとする。したがって、パスカバレッジでは、これらのパターンの集合がカバレッジ基準となる。また、コードカバレッジは、ラインカバレッジとも呼ばれ、検証対象回路に相当するソースコードの記述されたレジスタの入出力に関するパスを検証するためのパターンとする。コードカバレッジの場合も、これらのパターンの集合がカバレッジ基準となる。
特開2006−190209号公報 特開2006−201980号公報
Harry.D.Foster,他2名「Assertion−Based Design」(2nd Edition),「Programming Code metrics」,pp.129−130,2004
しかしながら、上述のようなカバレッジ基準を網羅するような検証シナリオを生成して検証をおこなった場合にも、実際に回路を動作させると、検証漏れによるバグが発生することがあった。これは、上述したカバレッジ基準が100%となる検証シナリオであっても、回路内部の分岐条件についての検証を見落としてしまっていたことに起因する。
ここで、分岐条件についての検証の見落としが発生する場合について説明する。図17は、条件分岐ミスの見落とし発生例を示す説明図である。たとえば、実装時の優先度として条件A>条件Bとなった仕様書に準じたハードウェア(回路)設計をおこなう場合、図17のように、仕様書に準じた正しい記述例1710が、設計者による修正ミスなどの何らかの理由によって誤った記述例1720に変更されてしまうことがある。正しい記述例1710では、条件Aの判断をおこなうif文1711の内部にさらに条件Bの判断をおこなうif文1712が記述されている。
一方、誤った記述例1720では、条件Bの判断をおこなうif文1721の内部に条件Aの判断をおこなうif文1722が記述されている。したがって、誤った記述例1720では条件B>条件Aとなり、仕様書に指定された実装意図との相違が生じてしまっている。
ところが、上述したカバレッジ基準では、誤った記述例1720のような記述ミスは検証されない可能性があった。ここで、図18は、正しい記述例と誤った記述例とを比較する図表である。この図18を用いて、正しい記述例1710と誤った記述例1720を実行させた場合について説明する。
図18の図表1800のように、正しい記述例1710と誤った記述例1720とを比較すると各条件の判別結果Yes/Noに応じて4通りのパターン1801が実行されることになる。これら4通りのパターン1801のうち、条件A、条件Bが同時に成立(Yesとなる状態)しない3通りのパターン1802は、正しい記述例1710であっても、誤った記述例1720であっても、実行される処理内容は等しくなる。一方、条件A、条件Bが同時に成立するパターン1803の場合のみ、実行される処理内容に相違が生じる。
図19は、ラインカバレッジ100%の検証シナリオ例を示す説明図である。ここで、正しい記述例1710を検証対象の記述例とする場合、検証シナリオ1900における条件A、条件Bともに不成立のパターン(No,No)では、正しい記述例1710の中の最も深い位置の記述(最下層)の処理cについて検証がおこなわれる。
また、条件Bのみが成立するパターン(No,Yes)では、正しい記述例1710の中の処理bについて検証がおこなわれる。そして、条件Aのみが成立するパターン(Yes,No)では、正しい記述例1710の中の最も浅い位置の記述の処理aについての検証がおこなわれる。
したがって、図19のように、正しい記述例1710のすべての記述が検証シナリオのカバー範囲に含まれる。このように、ラインカバレッジの場合、条件A、条件Bともに成立するパターン(Yes,Yes)についての検証をおこなわなくとも、網羅率100%のカバレッジとなってしまう。
また、上述したパスカバレッジをカバレッジ基準とした場合には、正しい記述例1710のときには、条件A、条件Bともに成立するパターン(Yes,Yes)のパス自体が存在しないため、当然のことながら、カバレッジ基準の母集団から除外されてしまう。したがって、ラインカバレッジと同様に、条件A、条件Bともに成立するパターン(Yes,Yes)についての検証をおこなわなくとも、網羅率100%のカバレッジとなってしまう。
このように、従来のカバレッジ基準では、網羅率100%となるような検証シナリオを生成したとしても、検証対象回路内部の条件分岐に関するカバレッジすべてが網羅されていない場合もあった。ところが、生成した検証シナリオによって条件分岐に関するカバレッジが網羅されているか否かを確認する技術は提供されていなかった。その結果、図17にて説明したような誤った記述例1720が含まれてしまった場合に、検証処理によって問題点として抽出することができず、バグを含んだハードウェア設計を提供してしまうという問題があった。
さらに、一般的にハードウェア記述に含まれる各処理には、様々な仕様が設定されている。たとえば、条件分岐記述に複数の条件式が含まれている場合には、実行順序の優先度や、条件式同士の排他性などが設定されている。優先度とは、条件式A>条件式B>条件式Cというように設定され、上位に設定されている条件式を優先するような実行順序にしなければならない。
また、排他性があるとは、対象となる条件が同時に成立しないことを意味する。たとえば、対象となる条件として条件式A、条件式Bが挙げられ、排他性があると設定された場合、条件式Aと条件式Bとは同時に成立しないような処理内容でなければばらない。すなわち、条件式A=1かつ条件式B=1となる処理例は排除される。
以上に挙げたような仕様が設定された場合、漏れのない検証の実現はさらに困難になる。たとえば、条件分岐条件式が3つ以上ある場合であっても、排他性が設定されていない場合であれば、優先度に基づいた実行順序によって各条件式を実行させるような検証シナリオをそれぞれ作成することによって、漏れのない検証が可能となる。しかしながら、条件式同士に排他性があると設定されていると、同時に成立しない場合の検証シナリオが抜けてしまい検証に漏れが生じてしまうという問題があった。
本開示技術は、上述した従来技術による問題点を解消するため、検証が困難な3つ以上の条件式を含み、かつ、排他性のある条件式の組み合わせを含む回路であっても、ハードウェア検証の漏れを防ぎ、バグのないハードウェア設計を実現させる検証支援プログラム、検証支援装置および検証支援方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本開示技術は、コンピュータにて、検証対象回路のハードウェア記述の中から条件分岐処理を表す条件分岐記述を抽出する処理と、抽出された条件分岐記述の中に3つ以上の条件式が含まれ、かつ、前記3つ以上の条件式の中に成立条件に排他性があると設定された条件式の組み合わせがあるか否かを判断する処理と、前記条件分岐記述に3つ以上の条件式が含まれ、かつ、前記3つ以上の条件式の中に成立条件に排他性があると設定された条件式の組み合わせがあると判断された場合、前記条件分岐記述の中から前記排他性があると設定された条件式の組み合わせを抽出する処理と、抽出された条件式の組み合わせの各条件式を抽出し、当該抽出された各条件式について、前記組み合わせ以外の条件式と階層関係をなす条件分岐記述を前記ハードウェア記述の記述順序にしたがって作成する処理と、作成された各条件分岐記述において、指定した条件の成立を検証するアサーションを生成する処理と、生成された各アサーションを前記検証対象回路のアサーション情報として出力する処理と、を含むことを要件とする。
本検証支援プログラム、検証支援装置および検証支援方法によれば、検証が困難な3つ以上の条件式を含み、かつ、排他性のある条件式の組み合わせを含む回路であっても、ハードウェア検証の漏れを防ぎ、バグのないハードウェア設計を実現させることができるという効果を奏する。
本実施の形態にかかる検証支援処理の一例を示す説明図である。 3つ以上の条件式を含んだ条件分岐記述の一例を示す説明図である。 バグモデルの発生例を示す説明図である。 各バグモデルとアサーションとの関係を示す図表である。 条件式の排他性を示す図表である。 排他性のある条件式を含んだ場合の各バグモデルとアサーションとの関係を示す図表である。 排他性によってバグモデルを検出できない例を示す説明図である。 排他性のある条件式を含んだ場合の検証例を示す図表である。 検証支援装置のハードウェア構成を示すブロック図である。 検証支援装置の機能的構成を示すブロック図である。 検証支援処理の手順を示すフローチャートである。 排他性のある条件式の組み合わせの一例を示す説明図である。 排他性を考慮した場合の各バグモデルとアサーションとの関係を示す図表である。 検証支援装置の実装例を示す説明図である。 cover文を用いたシミュレーション検証の実施例を示す説明図である。 シミュレーション結果の出力例を示す図表である。 条件分岐ミスの見落とし発生例を示す説明図である。 正しい記述例と誤った記述例とを比較する図表である。 ラインカバレッジ100%の検証シナリオ例を示す説明図である。
以下に添付図面を参照して、この発明にかかる検証支援プログラム、検証支援装置および検証支援方法の好適な実施の形態を詳細に説明する。
(実施の形態)
図1は、本実施の形態にかかる検証支援処理の一例を示す説明図である。図1のように、本実施の形態では、検証支援装置100では、検証対象情報の設計情報110として入力されたハードウェア記述101と仕様書102とを用いて、検証対象回路の検証に関する出力情報120を生成する。なお、図1に示したように、出力情報120としてアサーション情報121と検証結果122とを出力している。実際には、検証結果122は、検証支援装置100内に、アサーション情報121を用いたシミュレーション検証を実行する機能部を備えている場合にのみ出力可能となる。
本実施の形態にかかる検証支援処理では、ハードウェア記述101中から、条件式を含んだ条件分岐記述を抽出して、条件ごとに漏れのない検証を実行するためのアサーション情報を生成する。そこで、まず、条件分岐記述が表す処理内容と、検証漏れが発生する条件について説明する。
<3つ以上の条件式を含んだ条件分岐記述例>
図2は、3つ以上の条件式を含んだ条件分岐記述の一例を示す説明図である。図2は、ハードウェア記述101において、Start→Endまでの処理をおこなう際に、3つ以上の条件式(条件式A,B,C)を含んだ条件分岐記述の一例である。検証対象回路のハードウェア記述101に含まれる条件分岐記述には仕様書102によって様々な条件が設定されている。具体的には、図2に例示した条件分岐記述の場合には、「条件式A>条件式B>条件式C」といった実行順序の優先度が設定されている。
したがって、条件分岐記述に排他性の設定がなされていなければ、単純に下記2つのアサーション情報を生成することによって、条件分岐記述において発生する可能性のあるバグモデルのすべてを検証することができる。
1.cover(条件式A and 条件式B)
2.cover(!条件式A and (条件式B and 条件式C))
図3は、バグモデルの発生例を示す説明図である。図3に例示したバグモデル1〜5は、図2の条件分岐記述において発生する可能性があると想定される条件分岐処理である。従来技術にて説明したように、バグモデル1〜5は設計者による記述ミスによって生じる。したがって、バグモデル1〜5を想定した検証をおこなわなければ、図3に例示したような条件分岐記述における各条件式の実行順序が入れ替わった構成の回路が実装されてしまう恐れがある。
上述のように設計者による記述ミスが生じても、各条件式に排他性が設定されていなければ比較的容易に漏れのない検証を実現することができる。すなわち、バグモデル1〜5が想定されていれば、上記2つのアサーション情報に対応したシミュレーション検証を実行することによって、すべてのバグモデルを漏らすことなく検出することができる。
図4は、各バグモデルとアサーションとの関係を示す図表である。図表400は、各バグモデルにおける入力と出力との関係を表している。図表400において、入力側のA,B,Cの各値(1/0)は、条件式の判断結果を意味する。一方、出力側の各値(1〜5)は、条件分岐記述を実行した場合の出力値を意味する。したがって、条件分岐記述が正しく実装されていれば、出力値として1〜4のいずれかの値が出力される。
図表400に示した出力側の各値(1〜5)をみると、いずれのバグモデルによって処理が実行された場合であっても、正しい実装とおなじ出力値を得る場合(410の各列)があることがわかる。すなわち、バグモデルにて処理が実行された場合には正しい実装と異なる出力値を得るようなシミュレーション検証を実行しなければ、条件分岐記述にバグが発生していると判別できない。
上記1.2.の2つのアサーション情報に対応したシミュレーション検証は、図表400において網掛けが施されている411の列と412の列の処理に相当する。411の列の処理ではバグモデル2〜4において正しい実装と異なる出力値が得られ、412ではバグモデル1,3,5において正しい実装と異なる出力値が得られる。したがって、2つのアサーション情報に応じたシミュレーション検証を実行すれば、すべてのパターンのバグの存在を判別可能となる。
図5は、条件式の排他性を示す図表である。仕様書102には、図表500のように条件式同士に排他性があると設定されている場合がある。排他性があるとは、図表500において、510の列が表すような条件式B,Cとが同時に成立する「B=1かつC=1」の状態は発生しないという制約である。したがって、条件式B,Cは、必ず520の各列が表すような状態で実行される。
本実施の形態では、図2〜4にて説明したような3つ以上の条件式が含まれた条件分岐記述に対して、漏れのない検証を実現するに留まらず、さらに、図5のような排他性のある条件式の組み合わせが設定されている場合であっても、漏れのない検証を目的としている。ところが、排他性の設定がなされている場合、上記1.2.の2つのアサーション情報をそのまま適用しても、検証漏れを生じてしまうことがある。
図6は、排他性のある条件式を含んだ場合の各バグモデルとアサーションとの関係を示す図表である。図表600は、図2に例示した条件式A,B,Cから構成された条件分岐記述において、さらに、図5にて説明したように条件式B,Cに排他性があると設定された場合の各バグモデルにおける入力と出力との関係を表している。
排他性の設定によって、条件式B,Cが同時に成立するような610,620の各列の処理は実行されない。620の列の処理は、上記2.のアサーション情報に対応したシミュレーション検証を実行した場合に得られる出力値であった。ところが、排他性の設定によって出力値を得ることができず、結果として、バグモデル2〜4の発生しか判別できず、他のバグモデルが発生した場合には検証漏れを生じてしまう可能性がある。
図7は、排他性によってバグモデルを検出できない例を示す説明図である。図表700のように、バグモデル5が誤って実装されてしまった場合、入力値が(A,B,C)=(1,1,1)の場合と、(A,B,C)=(1,0,1)の場合と、(A,B,C)=(0,1,1)の場合でなければ、正しい実装と異なる出力値を得ることができない(バグを判別できない)。
排他性が設定されていない場合は、上記1.のアサーション情報によって得た列710の出力値と、上記2.のアサーション情報によって得た列720の出力値とを利用して正しい実装と出力値が異なるバグの発生を判別していた。このとき、列710の出力値だけでは、バグモデル5と正しい実装との出力値の違いはなく、バグの発生を判別できない。すなわち、上記2つのアサーション情報双方を利用してはじめてすべてのバグモデルの発生の判別が可能となっていた。
図8は、排他性のある条件式を含んだ場合の検証例を示す図表である。上述したように、排他性が設定されている場合、図表600における列610,620の出力値を得ることができない。たとえばバグモデル5が発生しているか否かを判別するには、列610,620以外に正しい実装とバグモデル5との出力値に差異がある処理についてのシミュレーション検証を実行しなければならない。図8の場合、列800が正しい実装とバグモデル5との出力値に差異がある処理に相当するが、列800に相当するシミュレーション検証を実行するアサーション情報は提供されていない。
そこで、本実施の形態では、図1に示したように、特に漏れのない検証が困難であった
3つ以上の条件式を含み、かつ、成立条件に排他性があると設定された条件式の組み合わせがあるような条件分岐記述の場合には、排他性があると設定された条件式同士の階層関係を解除し、それぞれ独立した条件分岐記述を作成する。図1では、条件式B,Cに排他性があると設定されているため、条件式Bと、条件式Cとにそれぞれ独立した条件分岐記述を作成する。その後は、作成された条件分岐記述ごとに、上記1.2.と同様にアサーション情報を生成すればよい。
以上説明したように、本実施の形態では、従来漏れのない検証が困難であった3つ以上の条件式を含み、かつ、排他性があると設定された条件分岐記述が抽出された場合には、排他性がある条件式同士を分離させた条件分岐記述をあらたに作成する。そして、これら作成された各条件分岐記述について、アサーション情報を生成してシミュレーション検証を実行させることによって、漏れのない検証を実現することができる。
以下に、本実施の形態にかかる検証支援処理をおこなう検証支援装置100の具体的な構成例と処理手順について説明する。
(検証支援装置のハードウェア構成)
つぎに、検証支援装置100のハードウェア構成について説明する。図9は、検証支援装置のハードウェア構成を示すブロック図である。図9において、検証支援装置100は、CPU(Central Processing Unit)901と、ROM(Read‐Only Memory)902と、RAM(Random Access Memory)903と、磁気ディスクドライブ904と、磁気ディスク905と、光ディスクドライブ906と、光ディスク907と、通信I/F(Interface)908と、入力デバイス909と、出力デバイス910と、を備えている。また、各構成部はバス920によってそれぞれ接続されている。
ここで、CPU901は、検証支援装置100の全体の制御を司る。ROM902は、ブートプログラムや、検証支援プログラムなどの各種プログラムを記憶している。RAM903は、CPU901のワークエリアとして使用される。磁気ディスクドライブ904は、CPU901の制御にしたがって磁気ディスク905に対するデータのリード/ライトを制御する。
磁気ディスク905は、磁気ディスクドライブ904の制御で書き込まれたデータを記憶する。なお、ROM902には、検証支援プログラムによって生成されたアサーション情報や、アサーション情報と検証シナリオを用いたシミュレーション検証を実行する検証プログラムが記録されていてもよい。このような場合は、検証支援装置100によって生成したアサーション情報に留まらず、実際の検証結果まで検証者に提供することができる。
光ディスクドライブ906は、CPU901の制御にしたがって光ディスク907に対するデータのリード/ライトを制御する。光ディスク907は、光ディスクドライブ906の制御で書き込まれたデータを記憶したり、光ディスク907に記憶されたデータをコンピュータに読み取らせたりする。
通信インターフェース(以下、「I/F」と略する)908は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク911に接続され、このネットワーク911を介して他の装置に接続される。そして、通信I/F908は、ネットワーク911と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。通信I/F908には、たとえばモデムやLANアダプタなどを採用することができる。
入力デバイス909は、検証支援装置100に対しての外部からの入力を受け付ける。
入力デバイス909としては、具体的には、キーボード、マウスなどが挙げられる。
キーボードの場合、たとえば、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウスの場合、たとえば、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。また、ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
出力デバイス910は、検証支援装置100によって生成された検証シナリオや、検証シナリオによる検証結果などを出力する。出力デバイス910としては、具体的には、ディスプレイ、プリンタなどが挙げられる。
ディスプレイの場合、たとえば、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイとしてさらに、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。また、プリンタの場合、たとえば、画像データや文書データを印刷する。さらに、レーザプリンタやインクジェットプリンタを採用することができる。
(検証支援装置の機能的構成)
図10は、検証支援装置の機能的構成を示すブロック図である。検証支援装置100は、記述抽出部1001と、判断部1002と、条件式抽出部1003と、作成部1004と、生成部1005と、出力部1006と、特定部1007と、変換部1008と、検証部1009と、を含む構成である。この制御部となる機能(記述抽出部1001〜検証部1009)は、具体的には、たとえば、図9に示したROM902、RAM903、磁気ディスク905、光ディスク907などの記憶装置に記憶された検証支援プログラムをCPU901に実行させることにより、または、通信I/F908により、その機能を実現する。
記述抽出部1001は、検証対象回路のハードウェア記述101の中から条件分岐処理を表す条件分岐記述を抽出する機能を有する。ハードウェア記述101は、ぞれぞれ、所定の言語によって記述されており、条件分岐記述は、言語ごとに所定のワードが利用される。したがって、記述抽出部1001は、入力されたハードウェア記述101の言語に応じて、条件分岐記述を表すワードを特定できるため、自動的に条件分岐記述を抽出することができる。なお、抽出された条件分岐記述は、RAM903、磁気ディスク905、光ディスク907などの記憶領域に記憶される。
判断部1002は、記述抽出部1001によって抽出された条件分岐記述の中に所定の条件を満たす条件式が含まれているか否かを判断する機能を有する。具体的には、判断部1002では、1,3つ以上の条件式が含まれる、2,成立条件に排他性があると設定された条件式の組み合わせがある、という2つの条件を双方とも満たす条件式の有無を判断する。なお、判断結果は、RAM903、磁気ディスク905、光ディスク907などの記憶領域に記憶される。
条件式抽出部1003は、判断部1002によって所定の条件を満たすと判断された条件分岐記述の中から排他性が設定された条件式の組み合わせを抽出する機能を有する。具体的には、条件式抽出部1003には、判断部1002によって条件分岐記述に3つ以上の条件式が含まれ、かつ、成立条件に排他性があると設定された条件式の組み合わせがあると判断された条件分岐記述が入力される。
したがって、条件式抽出部1003は、入力された条件分岐記述の中から排他性があると設定された条件式の組み合わせを抽出する。なお、抽出された条件式の組み合わせの情報は、RAM903、磁気ディスク905、光ディスク907などの記憶領域に記憶される。
作成部1004は、指定された条件式を利用した条件分岐記述を作成する機能を有する。具体的には、作成部1004は、条件式抽出部1003によって抽出された各条件式について、排他性があると設定された条件式以外の他の条件式と階層関係をなす条件分岐記述を作成する。なお、作成部1004では、ハードウェア記述101の記述順序にしたがって各条件式の階層関係を判断することができる。
したがって、たとえば、図2のような条件式A,B,Cを含んだ条件分岐記述において、条件式B,Cが抽出された場合、作成部1004は、条件式B,Cとその他の条件式Aとの階層関係を特定して、あらたに、条件式Bについて条件式A,Bを含んだ条件分岐記述を作成する。同様に、作成部1004は条件式Cについても条件式A,Cを含んだ条件分岐記述を作成する。なお、作成された条件分岐記述は、RAM903、磁気ディスク905、光ディスク907などの記憶領域に記憶される。
生成部1005は、作成部1004によって作成された各条件分岐記述において、指定した条件の成立を検証するアサーションを生成する機能を有する。たとえば、生成部1005は、指定された条件として、作成部1004によって作成された各条件分岐記述の中に含まれている各条件式が、指定された優先度であることを検証するアサーションを生成する。
具体的には、生成部1005は、条件式抽出部1003によって抽出された条件式が同時に成立したことを検証するcover文をアサーションとして生成する。生成されたアサーションは、RAM903、磁気ディスク905、光ディスク907などの記憶領域に記憶される。
出力部1006は、生成部1005によって生成された各アサーションを検証対象回路のアサーション情報121として出力する機能を有する。出力形式としては、たとえば、ディスプレイへの表示、プリンタへの印刷出力、さらに、通信I/F908による外部装置への送信がある。また、RAM903、磁気ディスク905、光ディスク907などの記憶領域に記憶することとしてもよい。
以上説明した各機能部は、ハードウェア記述101内の3つ以上の条件式を含み、かつ、排他性があると設定された条件式の組み合わせを含んだ条件分岐記述を対象としたアサーション情報121の生成を実現する。一方、判断部1002において、3つ以上の条件式を含み、かつ、排他性があると設定された条件式の組み合わせを含んだ条件分岐記述ではないと判断された場合には、特定部1007を利用して異なる手順によってアサーション情報121を生成する。
特定部1007は、条件分岐記述の中から所定の関係にある記述を特定する機能を有する。特定部1007には、判断部1002によって、3つ以上の条件式が含まれ、かつ、条件式の中に成立条件に排他性があると設定された条件式の組み合わせがないと判断された条件分岐記述が入力される。したがって、特定部1007は、入力された条件分岐記述の中から、ハードウェア記述101の記述順序を参照して、階層関係となる条件分岐記述を特定する。特定された条件分岐記述は、RAM903、磁気ディスク905、光ディスク907などの記憶領域に記憶される。
特定部1007によって特定された条件分岐記述は、条件式抽出部1003に入力される。条件式抽出部1003では、入力された条件分岐記述の中から指定した条件が成立する可能性のある条件式の組み合わせを抽出する。抽出された条件式の組み合わせは、作成部1004に入力され、排他性が設定されている場合と同様にアサーション情報121の生成に利用される。具体的には、生成部1005は、抽出された条件式の組み合わせを含む条件分岐記述において指定した条件の成立を検証するアサーションを生成する。
変換部1008は、ハードウェア記述101を、検証対象回路内の制御の流れを表すCFG(Control Flow Graph)に変換する機能を有する。ハードウェア記述101がCFGに変換された場合、記述抽出部1001は、CFGの中から条件分岐処理を表す条件分岐記述を抽出する。CFGへの変換には各種専用のツールを利用することができる(公知であるため詳しい説明は省略する)。なお、変換後のCFGは、RAM903、磁気ディスク905、光ディスク907などの記憶領域に記憶される。
検証部1009は、出力部1006によって出力されたアサーション情報121を用いた検証処理を実行する機能を有する。具体的には、検証部1009は、生成部1005によって生成された条件式の組み合わせごとに対応付けられた検証シナリオの出力値が期待値と等しいか否かに応じて検証対象回路を検証する。検証部1009によって、実行された検証シナリオの実行結果と、出力値と期待値の比較とは、検証結果122として出力される。検証結果122の出力形式としては、たとえば、ディスプレイへの表示、プリンタへの印刷出力や通信I/F908による外部装置への送信がある。また、検証結果122は、RAM903、磁気ディスク905、光ディスク907などの記憶領域に記憶することとしてもよい。
なお、変換部1008や検証部1009に相当する機能部は、必須の構成ではなく、検証支援装置100の外部に用意してもよい。変換部1008の機能を外部装置にて実現する構成の場合、検証支援装置100は、外部装置によって変換されたCFGが入力される構成となる。また、検証部1009も同様に外部装置によって実行する構成であってもよい。検証部1009を外部に用意した場合、検証支援装置100の出力情報120としてはアサーション情報121が出力される。
(検証支援処理の手順)
図11は、検証支援処理の手順を示すフローチャートである。図11のフローチャートは、検証対象回路のハードウェア記述101から、条件分岐記述を抽出して検証対象回路内の条件式の優先度が仕様に基づいているかを検証するためのアサーション情報を生成する手順を示している。図11の各処理を実行することによって、従来では、検証漏れの可能性が高かった排他性をもった条件式の組み合わせを含む条件分岐記述であっても、漏れのない検証が可能となるアサーション情報を生成することができる。
図11において、検証支援装置100は、まず、記述抽出部1001において、検証対象回路のハードウェア記述101を受け付けたか否かを判断する(ステップS1101)。ステップ1101では、記述抽出部1001がハードウェア記述101を受け付けるまで待機状態となる(ステップS1101:Noのループ)。そして、記述抽出部1001は、ハードウェア記述101を受け付けると(ステップS1101:Yes)、受け付けたハードウェア記述101の中から条件分岐記述を抽出する(ステップS1102)。
なお、検証支援装置100に変換部1008が用意されている場合には、まず、変換部1008によってハードウェア記述101を受け付ける。そして、変換部1008は、受け付けたハードウェア記述101をCFGに変換して、記述抽出部1001に提供する。記述抽出部1001は、CFGが提供された場合には、CFGから条件分岐記述を抽出すればよい。
つぎに、判断部1002によって、抽出された条件分岐記述が所定の条件を満たすか否かを判断する。具体的には、判断部1002は、条件分岐記述に含まれている条件式が3つ以上、かつ、排他性が設定されているか否かを判断する(ステップS1103)。
判断部1002において、条件式が3つ以上、かつ、排他性が設定されていると判断された場合(ステップS1103:Yes)、条件式抽出部1003は、ステップS1102によって抽出された条件分岐記述の中から排他性が設定されている各条件式を抽出する(ステップS1104)。
その後、作成部1004によって、各条件式について、排他性が設定されていない条件式との条件分岐記述を作成する(ステップS1105)。すなわち、作成部1104では、ステップS1104により抽出された条件式の組み合わせを分離して、残りの条件式と階層関係を持った条件分岐記述をそれぞれ作成する。
つぎに、生成部1005によって、ステップS1105によって作成された各条件分岐記述において、指定した条件の成立を検証するアサーションを生成する(ステップS1106)。最後に、出力部1006から、ステップS1106によって生成されたアサーションをアサーション情報121として出力して(ステップS1107)、一連の処理を終了する。
上述した処理では、条件式が3つ以上、かつ、排他性が設定されていると判断された条件分岐記述の検証を目的としたアサーション情報が出力される。一方、ステップS1103において、判断部1002が、条件式が3つ以上、かつ、排他性が設定されている条件分岐記述ではないと判断した場合(ステップS1103:No)、特定部1007によって、条件分岐記述から階層関係となる条件式を特定する(ステップS1108)。ステップS1108にて特定された条件式は、ステップS1106のアサーションの生成に利用される。
以上説明したように、本実施の形態にかかる検証支援装置100では、検証漏れの可能性が高かった排他性をもった条件式の組み合わせを含む条件分岐記述であっても、漏れのない検証が可能となるアサーション情報を生成する。したがって、検証精度を向上させることができる。
(実施例)
図12は、排他性のある条件式の組み合わせの一例を示す説明図である。つぎに、実施例として、図12に例示したような条件式B,Cとに排他性があると設定された条件分岐記述についてアサーション情報を生成する場合について説明する。
条件式B,Cは、それぞれ分離され、排他性の設定がなされていない条件式Aと階層関係をなす条件分岐記述が作成される。具体的には、1)条件式Bと他の条件式Aとの組み合わせと、2)条件式Cと他の条件式Aとの組み合わせの条件分岐記述がそれぞれ作成される。
1)条件式Bと他の条件式Aとの組み合わせ
仕様書102よりA>Bという優先度が設定されている。したがって、優先度を検証するアサーション情報i「cover(条件式A and 条件式B)」が生成される。このアサーション情報iによって、バグモデル2,3,4が検出される。
2)条件式Cと他の条件式Aとの組み合わせ
仕様書102よりA>Cという優先度が設定されている。したがって、優先度を検証するアサーション情報ii「cover(条件式A and 条件式C)」が生成される。このアサーション情報iiによって、バグモデル3,4,5が検出される。
図13は、排他性を考慮した場合の各バグモデルとアサーションとの関係を示す図表である。上述したように、図表600において、610,620の各列は排他性の設定により得ることができない情報である。そこで、あらたに生成したアサーション情報i,iiに対応したシミュレーション検証を実行することによって、1300の各列の出力を得ることができる。
具体的には、アサーション情報iは(A,B,C)=(1,1,0)の出力値を得ることができるため、バグモデル2〜4の発生を判別することができる。また、アサーション情報iiは(A,B,C)=(1,0,1)の出力値を得ることができるため、バグモデル3〜5の発生を判別することができる。したがって、バグモデル2〜5の検証が網羅される。そして、残ったバグモデル1(1310)は条件式B,Cとの排他性の制約によって出力されることはない。結果として、実質すべてのバグモデルの検証が網羅されたこととなる。
<検証支援装置の実装例>
図14は、検証支援装置の実装例を示す説明図である。図14のように、検証支援装置100は、ハードウェア記述101として、たとえば、組み合わせ回路のハードウェア記述1401が入力されると、CFG変換が施され(ステップS1410)、CFG1402として出力される。
さらに、検証支援装置100は、CFG1402を用いて条件分岐判断処理をおこなう。検証支援装置100は、まず、条件式の排他性を判別する(ステップS1420)。そして、検証支援装置100は、判別結果に基づいて、排他性があるか否かを判断する(ステップS1430)。ステップS1430において、排他性があると判断された場合(ステップS1430:Yes)、検証支援装置100は、排他性ごとに条件式を分離する(ステップS1440)。
一方、排他性がないと判断された場合(ステップS1430:No)、検証支援装置100は、ステップS1460〜ステップS1490によって表したアサーション生成処理に移行する。検証支援装置100は、まず、条件式の組み合わせをすべて抽出して(ステップS1460)、条件式間の組み合わせ情報1406を生成する。
その後、検証支援装置100は、条件式間の組み合わせ情報1406に対して優先度関係の有無を判別し(ステップS1470)、優先度有りと判別された条件式の組み合わせ(AとB,BとC、CとA、!AとBとC)1407を抽出する。続いて、検証支援装置100は、抽出した条件式の組み合わせ1407の中から、同時成立の可能性がある条件式の組み合わせを抽出する(ステップS1480)。ステップS1480によってAとB、!AとBとCの条件式1408が抽出される。
そして、検証支援装置100は、抽出された条件式1408について、cover文を生成することによって(ステップS1490)、優先度検証のアサーション1409が生成される。
排他性があると判断された場合(ステップS1430:Yes)の処理の説明に戻り、ステップS1440の分離処理によって、条件式A,B,Cを含む条件分岐記述から、条件式B,Aを含む条件式1403と、条件式C,Aを含む条件式1404とが作成される。その後、検証支援装置100は、分離したグループ(1403,1404)ごとにアサーション生成処理を適用し(ステップS1450)、優先度検証のアサーション1405を生成する。
以上説明したように、実装例では、条件分岐処理によって条件分岐記述が所定の条件(3つ以上の条件式を含み、かつ、排他性があると設定されている)を満たす構成か否かを判断する。したがって、検証対象回路の構成に応じてそれぞれ、検証漏れのないアサーション情報を生成することができる。
<cover文を用いたシミュレーション検証>
図15は、cover文を用いたシミュレーション検証の実施例を示す説明図である。検証支援装置100では、検証対象回路において条件分岐記述を検証するアサーション情報121が生成されると、検証対象回路のハードウェア記述101と、検証シナリオ111、期待値112、アサーションを表すcover文記述113を用いて、シミュレーション検証をおこなう(ステップS1501)。
そして、検証支援装置100は、ステップS1501によるシミュレーション検証後に、シミュレーション出力が期待値と等しいか否かの判断をおこなう(ステップS1502)。ステップS1502によって、シミュレーション出力が期待値112と等しいと判断された場合(ステップS1502:Yes)、検証支援装置100は、そのままステップS1503の処理に移行する。一方、検証支援装置100は、シミュレーション出力が期待値と等しくないと判断された場合(ステップS1502:No)、ハードウェア記述101に期待値112通りに動作しない原因となるバグがあると判断する(ステップS1505)。
検証支援装置100は、シミュレーション出力が期待値112と等しいと判断した場合(ステップS1502:Yes)には、さらに、cover文記述113の処理が成立するか否かを判断する(ステップS1503)。そして、検証支援装置100は、cover文記述113の処理が成立する場合(ステップS1503:Yes)、検証シナリオ111を実行した場合に、同時成立箇所も含めて期待値112通りの動作が実行されたと判断する(ステップS1504)。
一方、ステップS1503において、cover文記述113の処理が成立しない場合(ステップS1503:No)、検証支援装置100は、検証シナリオ111を実行した場合に、期待値112通りの動作が実行されたが、同時成立箇所は未検証であると判断する(ステップS1506)。同時成立箇所は未検証であるとは、すなわち、検証シナリオ111の不足を意味する。したがって、検証者は、未検証箇所を検証するための検証シナリオ111を用意することによって、検証精度を向上させることができる。
図16は、シミュレーション結果の出力例を示す図表である。図15にて説明したシミュレーション検証の結果に応じた出力例に応じて、それぞれ図表1600のように判定される。検証者は、この判定結果を参照して、検証シナリオの漏れを特定し、不足している検証シナリオを補完することによって、真の網羅率100%となる検証カバレッジを実現することができる。
以上説明したように、検証支援プログラム、検証支援装置および検証支援方法によれば、排他性のある条件式同士をそれぞれ独立させた条件分岐記述を作成して、アサーション情報を生成する。したがって、検証支援装置100は、発生する可能性のあるバグモデルを残すことなく検出可能となり、高精度な検証を実現することができる。
また、上記技術は、さらに、指定された条件として、検証支援装置100においてあらたに作成された各条件分岐記述の中に含まれている各条件式が、指定された優先度であることを検証するアサーションを生成する機能を備えることもできる。したがって、検証支援装置100は、自動的に検証漏れのないシミュレーション検証を実行するためのアサーション情報を生成することができる。
また、上記技術は、さらに、条件分岐記述が所定の条件を満たさない場合には、ハードウェア記述101の記述順序を参照して、階層関係となる条件分岐記述を特定してアサーション情報を生成することができる。したがって、検証支援装置100は、検証対象回路の構成に応じて、最適なアサーション情報を生成するため、高精度な検証が可能となる。
また、上記技術は、さらに、検証対象回路のハードウェア記述101を、回路内の制御の流れを表すCFG(Control Flow Graph)に変換して、CFGを対象に条件分岐記述を抽出することもできる。したがって、検証支援装置100は、CFGを利用することによってハードウェア記述101を対象とする場合に増して、処理負荷が少なく高速に条件分岐記述を抽出することができる。
また、上記技術は、さらに、抽出された条件式が同時に成立したことを検証するcover文をアサーションとして生成することもできる。したがって、検証支援装置100は、自動的にアサーション情報を生成することができる。
また、上記技術は、さらに、出力されたアサーション情報を用いて、検証シナリオを実行させた際の出力値が期待値と等しいか否かを判断する機能を備えることもできる。したがって、検証支援装置100は、検証対象回路の動作を自動的に検証させることもできる。
なお、本実施の形態で説明した検証支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。本検証支援プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本検証支援プログラムは、インターネットなどのネットワークを介して配布してもよい。
また、本実施の形態で説明した検証支援装置100は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した検証支援装置100の機能(記述抽出部1001〜検証部1009をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、検証支援装置100を製造することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)検証対象回路のハードウェア記述の中から条件分岐処理を表す条件分岐記述を抽出する記述抽出手順、
前記記述抽出手順によって抽出された条件分岐記述の中に3つ以上の条件式が含まれ、かつ、前記3つ以上の条件式の中に成立条件に排他性があると設定された条件式の組み合わせがあるか否かを判断する判断手順、
前記判断手順によって、前記条件分岐記述に3つ以上の条件式が含まれ、かつ、前記3つ以上の条件式の中に成立条件に排他性があると設定された条件式の組み合わせがあると判断された場合、前記条件分岐記述の中から前記排他性があると設定された条件式の組み合わせを抽出する条件式抽出手順、
前記条件式抽出手順によって抽出された条件式の組み合わせの各条件式を抽出し、当該抽出された各条件式について、前記組み合わせ以外の条件式と階層関係をなす条件分岐記述を前記ハードウェア記述の記述順序にしたがって作成する作成手順、
前記作成手順によって作成された各条件分岐記述において、指定した条件の成立を確認するアサーションを生成する生成手順、
前記生成手順によって生成された各アサーションを前記検証対象回路のアサーション情報として出力する出力手順、
をコンピュータに実行させることを特徴とする検証支援プログラム。
(付記2)前記生成手順は、
前記指定された条件として、前記作成手順によって作成された各条件分岐記述の中に含まれている各条件式が、指定された優先度であることを検証するアサーションを生成することを特徴とする付記1に記載の検証支援プログラム。
(付記3)前記コンピュータにおいて、さらに、
前記判断手順によって、前記条件分岐記述に3つ以上の条件式が含まれ、かつ、前記3つ以上の条件式の中に成立条件に排他性があると設定された条件式の組み合わせがないと判断された場合、前記ハードウェア記述の記述順序を参照して、階層関係となる条件分岐記述を特定する特定手順を実行させ、
前記条件式抽出手順は、
前記特定手順によって特定された条件分岐記述の中から、前記指定した条件が成立する可能性のある条件式の組み合わせを抽出し、
前記生成手順は、
前記条件式抽出手順によって抽出された条件式の組み合わせを含む条件分岐記述において前記指定した条件の成立を検証するアサーションを生成することを特徴とする付記1または2に記載の検証支援プログラム。
(付記4)前記コンピュータにおいて、さらに、
前記ハードウェア記述を、前記検証対象回路内の制御の流れを表すCFG(Control Flow Graph)に変換する変換手順を実行させ、
前記記述抽出手順は、
前記変換手順によって変換されたCFGの中から、条件分岐処理を表す条件分岐記述を抽出することを特徴とする付記1〜3のいずれか一つに記載の検証支援プログラム。
(付記5)前記生成手順は、前記条件式抽出手順によって抽出された各条件式を同時に成立させるcover文をアサーションとして生成することを特徴とする付記1〜4のいずれか一つに記載の検証支援プログラム。
(付記6)前記コンピュータにおいて、さらに、
前記出力手順によって出力されたアサーション情報を用いて、前記条件式の組み合わせごとに対応付けられた検証シナリオを実行させた場合の出力値が期待値と等しいか否かに応じて前記検証対象回路を検証する検証手順を実行させることを特徴とする付記1〜5のいずれか一つに記載の検証支援プログラム。
(付記7)検証対象回路のハードウェア記述の中から条件分岐処理を表す条件分岐記述を抽出する記述抽出手段と、
前記記述抽出手段によって抽出された条件分岐記述の中に3つ以上の条件式が含まれ、かつ、前記3つ以上の条件式の中に成立条件に排他性があると設定された条件式の組み合わせがあるか否かを判断する判断手段と、
前記判断手段によって、前記条件分岐記述に3つ以上の条件式が含まれ、かつ、前記3つ以上の条件式の中に成立条件に排他性があると設定された条件式の組み合わせがあると判断された場合、前記条件分岐記述の中から前記排他性があると設定された条件式の組み合わせを抽出する条件式抽出手段と、
前記条件式抽出手段によって抽出された条件式の組み合わせの各条件式を抽出し、当該抽出された各条件式について、前記組み合わせ以外の条件式と階層関係をなす条件分岐記述を前記ハードウェア記述の記述順序にしたがって作成する作成手段と、
前記作成手段によって作成された各条件分岐記述において、指定した条件の成立を検証するアサーションを生成する生成手段と、
前記生成手段によって生成された各アサーションを前記検証対象回路のアサーション情報として出力する出力手段と、
を備えることを特徴とする検証支援装置。
(付記8)記述抽出手段と判断手段と条件式抽出手段と作成手段と生成手段と出力手段を備えるコンピュータが、
前記記述抽出手段により、検証対象回路のハードウェア記述の中から条件分岐処理を表す条件分岐記述を抽出する記述抽出工程と、
前記判断手段により、前記記述抽出工程によって抽出された条件分岐記述の中に3つ以上の条件式が含まれ、かつ、前記3つ以上の条件式の中に成立条件に排他性があると設定された条件式の組み合わせがあるか否かを判断する判断工程と、
前記条件式抽出手段により、前記判断工程によって、前記条件分岐記述に3つ以上の条件式が含まれ、かつ、前記3つ以上の条件式の中に成立条件に排他性があると設定された条件式の組み合わせがあると判断された場合、前記条件分岐記述の中から前記排他性があると設定された条件式の組み合わせを抽出する条件式抽出工程と、
前記作成手段により、前記条件式抽出工程によって抽出された条件式の組み合わせの各条件式を抽出し、当該抽出された各条件式について、前記組み合わせ以外の条件式と階層関係をなす条件分岐記述を前記ハードウェア記述の記述順序にしたがって作成する作成工程と、
前記生成手段により、前記作成工程によって作成された各条件分岐記述において、指定した条件の成立を検証するアサーションを生成する生成工程と、
前記出力手段により、前記生成工程によって生成された各アサーションを前記検証対象回路のアサーション情報として出力する出力工程と、
を実行することを特徴とする検証支援方法。
100 検証支援装置
101 ハードウェア記述
102 仕様書
111 検証シナリオ
112 期待値
113 cover文記述
121 アサーション情報
122 検証結果
1001 記述抽出部
1002 判断部
1003 条件式抽出部
1004 作成部
1005 生成部
1006 出力部
1007 特定部
1008 変換部
1009 検証部

Claims (7)

  1. 検証対象回路のハードウェア記述の中から条件分岐処理を表す条件分岐記述を抽出する記述抽出手順、
    前記記述抽出手順によって抽出された条件分岐記述の中に3つ以上の条件式が含まれ、かつ、前記3つ以上の条件式の中に成立条件に排他性があると設定された条件式の組み合わせがあるか否かを判断する判断手順、
    前記判断手順によって、前記条件分岐記述に3つ以上の条件式が含まれ、かつ、前記3つ以上の条件式の中に成立条件に排他性があると設定された条件式の組み合わせがあると判断された場合、前記条件分岐記述の中から前記排他性があると設定された条件式の組み合わせを抽出する条件式抽出手順、
    前記条件式抽出手順によって抽出された条件式の組み合わせの各条件式を抽出し、当該抽出された各条件式について、前記組み合わせ以外の条件式と階層関係をなす条件分岐記述を前記ハードウェア記述の記述順序にしたがって作成する作成手順、
    前記作成手順によって作成された各条件分岐記述において、指定した条件の成立を検証するアサーションを生成する生成手順、
    前記生成手順によって生成された各アサーションを前記検証対象回路のアサーション情報として出力する出力手順、
    をコンピュータに実行させることを特徴とする検証支援プログラム。
  2. 前記生成手順は、
    前記指定された条件として、前記作成手順によって作成された各条件分岐記述の中に含まれている各条件式が、指定された優先度であることを検証するアサーションを生成することを特徴とする請求項1に記載の検証支援プログラム。
  3. 前記コンピュータにおいて、さらに、
    前記判断手順によって、前記条件分岐記述に3つ以上の条件式が含まれ、かつ、前記3つ以上の条件式の中に成立条件に排他性があると設定された条件式の組み合わせがないと判断された場合、前記ハードウェア記述の記述順序を参照して、階層関係となる条件分岐記述を特定する特定手順を実行させ、
    前記条件式抽出手順は、
    前記特定手順によって特定された条件分岐記述の中から、前記指定した条件が成立する可能性のある条件式の組み合わせを抽出し、
    前記生成手順は、
    前記条件式抽出手順によって抽出された条件式の組み合わせを含む条件分岐記述において前記指定した条件の成立を検証するアサーションを生成することを特徴とする請求項1または2に記載の検証支援プログラム。
  4. 前記コンピュータにおいて、さらに、
    前記ハードウェア記述を、前記検証対象回路内の制御の流れを表すCFG(Control Flow Graph)に変換する変換手順を実行させ、
    前記記述抽出手順は、
    前記変換手順によって変換されたCFGの中から、条件分岐処理を表す条件分岐記述を抽出することを特徴とする請求項1〜3のいずれか一つに記載の検証支援プログラム。
  5. 前記コンピュータにおいて、さらに、
    前記出力手順によって出力されたアサーション情報を用いて、前記条件式の組み合わせごとに対応付けられた検証シナリオを実行させた場合の出力値が期待値と等しいか否かに応じて前記検証対象回路を検証する検証手順を実行させることを特徴とする請求項1〜4のいずれか一つに記載の検証支援プログラム。
  6. 検証対象回路のハードウェア記述の中から条件分岐処理を表す条件分岐記述を抽出する記述抽出手段と、
    前記記述抽出手段によって抽出された条件分岐記述の中に3つ以上の条件式が含まれ、かつ、前記3つ以上の条件式の中に成立条件に排他性があると設定された条件式の組み合わせがあるか否かを判断する判断手段と、
    前記判断手段によって、前記条件分岐記述に3つ以上の条件式が含まれ、かつ、前記3つ以上の条件式の中に成立条件に排他性があると設定された条件式の組み合わせがあると判断された場合、前記条件分岐記述の中から前記排他性があると設定された条件式の組み合わせを抽出する条件式抽出手段と、
    前記条件式抽出手段によって抽出された条件式の組み合わせの各条件式を抽出し、当該抽出された各条件式について、前記組み合わせ以外の条件式と階層関係をなす条件分岐記述を前記ハードウェア記述の記述順序にしたがって作成する作成手段と、
    前記作成手段によって作成された各条件分岐記述において、指定した条件の成立を検証するアサーションを生成する生成手段と、
    前記生成手段によって生成された各アサーションを前記検証対象回路のアサーション情報として出力する出力手段と、
    を備えることを特徴とする検証支援装置。
  7. 記述抽出手段と判断手段と条件式抽出手段と作成手段と生成手段と出力手段を備えるコンピュータが、
    前記記述抽出手段により、検証対象回路のハードウェア記述の中から条件分岐処理を表す条件分岐記述を抽出する記述抽出工程と、
    前記判断手段により、前記記述抽出工程によって抽出された条件分岐記述の中に3つ以上の条件式が含まれ、かつ、前記3つ以上の条件式の中に成立条件に排他性があると設定された条件式の組み合わせがあるか否かを判断する判断工程と、
    前記条件式抽出手段により、前記判断工程によって、前記条件分岐記述に3つ以上の条件式が含まれ、かつ、前記3つ以上の条件式の中に成立条件に排他性があると設定された条件式の組み合わせがあると判断された場合、前記条件分岐記述の中から前記排他性があると設定された条件式の組み合わせを抽出する条件式抽出工程と、
    前記作成手段により、前記条件式抽出工程によって抽出された条件式の組み合わせの各条件式を抽出し、当該抽出された各条件式について、前記組み合わせ以外の条件式と階層関係をなす条件分岐記述を前記ハードウェア記述の記述順序にしたがって作成する作成工程と、
    前記生成手段により、前記作成工程によって作成された各条件分岐記述において、指定した条件の成立を検証するアサーションを生成する生成工程と、
    前記出力手段により、前記生成工程によって生成された各アサーションを前記検証対象回路のアサーション情報として出力する出力工程と、
    を実行することを特徴とする検証支援方法。
JP2009264234A 2009-11-19 2009-11-19 検証支援プログラム、検証支援装置および検証支援方法 Expired - Fee Related JP5267434B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009264234A JP5267434B2 (ja) 2009-11-19 2009-11-19 検証支援プログラム、検証支援装置および検証支援方法
US12/949,094 US8584064B2 (en) 2009-11-19 2010-11-18 Verification support apparatus and verification support method to verify target circuit based on hardware description information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009264234A JP5267434B2 (ja) 2009-11-19 2009-11-19 検証支援プログラム、検証支援装置および検証支援方法

Publications (2)

Publication Number Publication Date
JP2011108116A JP2011108116A (ja) 2011-06-02
JP5267434B2 true JP5267434B2 (ja) 2013-08-21

Family

ID=44012278

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009264234A Expired - Fee Related JP5267434B2 (ja) 2009-11-19 2009-11-19 検証支援プログラム、検証支援装置および検証支援方法

Country Status (2)

Country Link
US (1) US8584064B2 (ja)
JP (1) JP5267434B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8930880B2 (en) * 2010-09-29 2015-01-06 Rockwell Automation Technologies, Inc. Development of functional modules using a module bus
US8990739B2 (en) * 2012-12-04 2015-03-24 The Mathworks, Inc. Model-based retiming with functional equivalence constraints
US9779195B2 (en) 2012-12-04 2017-10-03 The Mathworks, Inc. Model-based retiming with functional equivalence constraints
JP6053581B2 (ja) * 2013-03-13 2016-12-27 三菱電機株式会社 電子回路解析装置、電子回路解析方法および電子回路解析プログラム
US9626468B2 (en) * 2014-02-27 2017-04-18 Synopsys, Inc. Assertion extraction from design and its signal traces
US11100450B2 (en) * 2016-02-26 2021-08-24 International Business Machines Corporation Document quality inspection
US10489541B1 (en) * 2017-11-21 2019-11-26 Xilinx, Inc. Hardware description language specification translator
JP7073844B2 (ja) * 2018-03-28 2022-05-24 株式会社リコー 設計支援装置、設計支援方法、プログラム及び記憶媒体
US11017139B1 (en) * 2020-03-24 2021-05-25 Siemens Industry Software Inc. Concolic equivalence checking

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10254930A (ja) * 1997-03-11 1998-09-25 Matsushita Electric Ind Co Ltd 半導体素子の機能検証装置及びその機能検証方法
JP3765923B2 (ja) * 1998-02-26 2006-04-12 シャープ株式会社 ハードウェア合成方法およびハードウェア合成装置並びにハードウェア合成プログラムを記録した記録媒体
US6363520B1 (en) * 1998-06-16 2002-03-26 Logicvision, Inc. Method for testability analysis and test point insertion at the RT-level of a hardware development language (HDL) specification
JP4255079B2 (ja) * 2004-09-30 2009-04-15 株式会社リコー アサーション生成システムと回路検証システムおよびプログラムならびにアサーション生成方法
JP2006106865A (ja) * 2004-09-30 2006-04-20 Nec Corp 論理回路設計検証装置および方法、プログラム
JP4217220B2 (ja) 2005-01-07 2009-01-28 富士通株式会社 検証支援プログラムおよび検証支援装置
JP2006201980A (ja) 2005-01-19 2006-08-03 Fujitsu Ltd カバレッジ評価装置、カバレッジ評価方法、カバレッジ評価プログラム、および記録媒体
JP2008097504A (ja) * 2006-10-16 2008-04-24 Toshiba Corp 動作命題の生成システム及び検証システム
JP4445517B2 (ja) * 2007-05-14 2010-04-07 株式会社東芝 回路設計検証方法および回路設計検証のためのプログラム
JP5287058B2 (ja) * 2008-09-08 2013-09-11 富士通株式会社 検証支援プログラム、検証支援装置および検証支援方法
JP5287092B2 (ja) * 2008-09-26 2013-09-11 富士通株式会社 検証支援プログラム、検証支援装置および検証支援方法

Also Published As

Publication number Publication date
US20110119655A1 (en) 2011-05-19
JP2011108116A (ja) 2011-06-02
US8584064B2 (en) 2013-11-12

Similar Documents

Publication Publication Date Title
JP5267434B2 (ja) 検証支援プログラム、検証支援装置および検証支援方法
JP4255079B2 (ja) アサーション生成システムと回路検証システムおよびプログラムならびにアサーション生成方法
US10372854B2 (en) Active trace assertion based verification system
JP5287058B2 (ja) 検証支援プログラム、検証支援装置および検証支援方法
JP5287092B2 (ja) 検証支援プログラム、検証支援装置および検証支援方法
US9721057B2 (en) System and method for netlist clock domain crossing verification
JP4147842B2 (ja) 論理検証システム及び方法、論理コーン抽出装置及び方法、論理検証及び論理コーン抽出プログラム
JP4481762B2 (ja) 論理検証装置、論理検証方法、論理検証プログラムおよび記録媒体
JP4261502B2 (ja) 検証支援装置、検証支援方法、検証支援プログラム、および記録媒体
JP5163350B2 (ja) 検証支援プログラム、検証支援装置および検証支援方法
US20110295536A1 (en) Clock jitter analyzing method and apparatus
JP5293521B2 (ja) デザインルールチェック検証装置およびデザインルールチェック検証方法
JP5830955B2 (ja) 検証装置、検証方法及び検証プログラム
JP4716964B2 (ja) タイミングダイアグラム編集プログラム、タイミングダイアグラム編集装置およびタイミングダイアグラム編集方法
JP5640790B2 (ja) 検証支援プログラム、検証支援装置、および検証支援方法
JPWO2006025412A1 (ja) 論理検証方法、論理モジュールデータ、デバイスデータおよび論理検証装置
JP5370257B2 (ja) 検証支援プログラム、検証支援装置および検証支援方法
JP5799589B2 (ja) 検証方法及び検証プログラム
Chang et al. InVerS: an incremental verification system with circuit similarity metrics and error visualization
JP2011081760A (ja) 情報処理装置
US8560986B2 (en) Computer product, apparatus, and method for correcting assertion
JP5825409B2 (ja) 検証支援プログラム、検証支援装置、および検証支援方法
van Blommestein Addressing Safety Critical FPGA Designs
JP6268062B2 (ja) ソフトウェア仕様抽出装置、方法、及びプログラム
JP5392862B2 (ja) ソフトウェアシミュレーション装置、及びシミュレーション方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120720

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130312

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130422

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees