JP4707191B2 - 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法 - Google Patents

検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法 Download PDF

Info

Publication number
JP4707191B2
JP4707191B2 JP2006260339A JP2006260339A JP4707191B2 JP 4707191 B2 JP4707191 B2 JP 4707191B2 JP 2006260339 A JP2006260339 A JP 2006260339A JP 2006260339 A JP2006260339 A JP 2006260339A JP 4707191 B2 JP4707191 B2 JP 4707191B2
Authority
JP
Japan
Prior art keywords
command
verification
executed
combination
register
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.)
Active
Application number
JP2006260339A
Other languages
English (en)
Other versions
JP2008083781A (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 JP2006260339A priority Critical patent/JP4707191B2/ja
Priority to US11/698,858 priority patent/US7779377B2/en
Publication of JP2008083781A publication Critical patent/JP2008083781A/ja
Application granted granted Critical
Publication of JP4707191B2 publication Critical patent/JP4707191B2/ja
Active 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

Description

この発明は、ディジタル回路の論理検証、中でも機能検証を支援する検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法に関する。
従来から、多くの場合、MPEGのエンコーダ、デコーダ、またはその内部の逆コサイン変換ブロックなど、機能ブロックやモジュール、システムの機能は、一連の手順から成る「コマンド」によって実現される。コマンドとは、リードやライトのほか、『三角形を描画する』、『バースト転送』といったあるまとまった機能をあらわしており、一連の手順により呼び出すことができる。
この一連の手順とは、具体的には、各レジスタに値をセットして、所定のレジスタに値をセットすることでトリガをかけ、内部論理を実行することで、レジスタ内の値の読み出しやレジスタへの値の書込みをおこない、実行結果を取得することであり、この一連の手順によりコマンドが実行される。
たとえば、『三角形を描画する』というコマンドについては、レジスタに三角形の頂点座標値をセットしてトリガをかけることにより、内部論理が実行され、三角形を描画することができる。
上述した機能ブロックやモジュール、システムの機能検証は、単一コマンドを投入することで、シミュレーションによる当該単一コマンドの動作チェックをおこなう検証手法と、連続コマンドを投入することで、連続的なシミュレーション実行による各コマンドの一連の動作チェックをおこなう検証手法がある。
たとえば、『三角形を描画する』というコマンドXと『四角形を描画する』というコマンドYと『背景色を変更する』というコマンドZの動作チェックをおこなう場合、前者の単一コマンドを投入する検証手法では、まず、コマンドXを実行して動作チェックをし、レジスタを初期化してからコマンドYを実行して動作チェックをし、またレジスタを初期化してからコマンドZを実行して動作チェックをすることとなる。
この単一コマンドを投入する検証手法は、コマンドによる基本動作を確認するのに有効な手法であるが、バグがあまり検出されない。
一方、後者の連続コマンドを投入する検証手法では、コマンドX、コマンドY、コマンドZを連続投入して順次シミュレーションを実行して動作チェックをおこなう。この場合、コマンド間のレジスタの初期化をおこなわれず、前のコマンドによりレジスタに書き込まれた値が保持された状態で、つぎのコマンドが実行されることとなる。
このように、連続コマンドを投入する検証手法では先のコマンドに依存するため、先に実行されたコマンドXで値が書き込まれたレジスタを、後に実行するコマンドYが参照してしまい、コマンドYが誤った図形を描画してしまうこととなる。したがって、コマンドXのあとコマンドYを連続実行すると、バグが発生することが検出される。
この連続コマンドを投入する手法は、実際に起こり得る連続動作を想定しており、単一コマンドを投入する手法に比べより多くのバグが検出されるため効果的である。
なお、実際の設計・検証現場においては、上述した単一コマンドを投入する手法や連続コマンドを投入する手法は従来から一般におこなわれている。また、機能検証に関する公知例としては、たとえば、下記特許文献1〜3が開示されている。
特開平5−151297号公報 特開2002−157145号公報 特開2004−54549号公報
しかしながら、バグを効果的に検出するためには連続コマンドを投入する検証手法は非常に効果的であるが、そもそもディジタル回路で実行されるコマンドの数が膨大であるため、連続コマンドの組み合わせも膨大となる。たとえば、たかだか100個のコマンドを3連続で実行する場合でも、理論的には100万通りの連続コマンドが存在することとなる。したがって、実際に連続コマンドをすべて検証するとなると検証作業の長期化を招くという問題があった。
一方、膨大な数の連続コマンドの中にはバグが発生しない連続コマンドや実際の動作では連続しない連続コマンドも多く含まれているが、そのような連続コマンドであるか否かの判断はつき難く、どの程度まで検証をおこなえばよいかわからない。したがって、現状では、バグを効果的に検出することができないという問題があった。
この発明は、上述した従来技術による問題点を解消するため、膨大な数の連続コマンドを効率的に絞り込んで効果的なバグ検出をおこなうことにより、検証期間の短縮化および検証者の作業負担の軽減を図ることができる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、第1の発明にかかる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法は、検証対象回路の実装記述情報を取得し、取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類し、処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行される先行コマンドとその後に実行される後続コマンドとの組み合わせにおいて、同一レジスタについての前記先行コマンドでの処理内容と前記後続コマンドの処理内容の組み合わせで特定される連続処理内容に応じた検証優先度を設定することを特徴とする。
この発明によれば、バグが発生しやすいコマンドの組み合わせやバグが発生しにくいコマンドの組み合わせを特定することができる。
また、上記発明において、前記組み合わせの集合の中の一の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「読み出し」である場合、前記一の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定することとしてもよい。
この発明によれば、バグが発生しやすいコマンドの組み合わせを他の組み合わせよりも明確に特定することができる。
また、上記発明において、前記組み合わせの集合の中の一の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「書込み」である場合、前記一の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定することとしてもよい。
この発明によれば、バグが発生しやすいコマンドの組み合わせを他の組み合わせよりも明確に特定することができる。
また、上記発明において、前記組み合わせの集合の中の第1の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「読み出し」である場合、前記第1の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定させ、前記組み合わせの集合の中の第2の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「書込み」である場合、前記第2の組み合わせに応じた検証優先度を、前記第1の組み合わせに応じた検証優先度よりも低く、かつ前記他の組み合わせに応じた検証優先度よりも高く設定することとしてもよい。
この発明によれば、バグが発生しやすいコマンドの組み合わせを段階的に特定することができる。
また、上記発明において、前記検証対象回路の仕様書にしたがって前記コマンドによる処理内容別に分類されたレジスタと、分類された処理内容別のレジスタとを、前記コマンドごとに比較し、処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、前記処理内容が前記仕様書とは異なる組み合わせを、比較結果に基づいて検出し、検出結果に基づいて、前記検証優先度を設定することとしてもよい。
この発明によれば、仕様書と実装記述情報との食い違いをバグの発生可能性に反映することができる。
また、上記発明において、設定された前記組み合わせごとの検証優先度に基づいて前記コマンドを時系列に並べることにより、前記検証対象回路で実行可能な連続コマンドを生成することとしてもよい。
この発明によれば、バグが発生しやすい連続コマンドやバグが発生しにくい連続コマンドを自動生成することができる。
また、上記発明において、すでに時系列に並べられた少なくとも最後尾のコマンドとの組み合わせの候補となるコマンドのうち、前記検証優先度が最高となるコマンドをあらたに並べることにより、前記連続コマンドを生成することとしてもよい。
この発明によれば、バグが発生しやすい連続コマンドやバグが発生しにくい連続コマンドを自動生成することができる。
また、上記発明において、複数のコマンドが時系列に並べられた任意の連続コマンドに関する識別情報の入力を受け付け、入力された連続コマンドに関する識別情報と、設定された検証優先度とに基づいて、前記連続コマンドの有効度を算出することとしてもよい。
この発明によれば、ユーザによって選ばれた連続コマンドを検証対象回路に与えた場合のバグの発生可能性を特定することができる。
また、第2の発明にかかる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法は、検証対象回路の実装記述情報を取得し、取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類し、前記検証対象回路の仕様書にしたがって前記コマンドによる処理内容別に分類されたレジスタと、分類された処理内容別のレジスタとを、前記コマンドごとに比較し、処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、前記処理内容が前記仕様書とは異なる組み合わせを、前記比較工程によって比較された比較結果に基づいて検出することを特徴とする。
この発明によれば、仕様書と実装記述情報との食い違う箇所を特定することができる。
本発明にかかる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法によれば、膨大な数の連続コマンドを効率的に絞り込んで効果的なバグ検出をおこなうことにより、検証期間の短縮化および検証者の作業負担の軽減を図ることができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法の好適な実施の形態を詳細に説明する。
(検証支援装置のハードウェア構成)
まず、この発明の実施の形態にかかる検証支援装置のハードウェア構成について説明する。図1は、この発明の実施の形態にかかる検証支援装置のハードウェア構成を示すブロック図である。
図1において、検証支援装置は、CPU101と、ROM102と、RAM103と、HDD(ハードディスクドライブ)104と、HD(ハードディスク)105と、FDD(フレキシブルディスクドライブ)106と、着脱可能な記録媒体の一例としてのFD(フレキシブルディスク)107と、ディスプレイ108と、I/F(インターフェース)109と、キーボード110と、マウス111と、スキャナ112と、プリンタ113と、を備えている。また、各構成部はバス100によってそれぞれ接続されている。
ここで、CPU101は、検証支援装置の全体の制御を司る。ROM102は、ブートプログラムなどのプログラムを記憶している。RAM103は、CPU101のワークエリアとして使用される。HDD104は、CPU101の制御にしたがってHD105に対するデータのリード/ライトを制御する。HD105は、HDD104の制御で書き込まれたデータを記憶する。
FDD106は、CPU101の制御にしたがってFD107に対するデータのリード/ライトを制御する。FD107は、FDD106の制御で書き込まれたデータを記憶したり、FD107に記憶されたデータを検証支援装置に読み取らせたりする。
また、着脱可能な記録媒体として、FD107のほか、CD−ROM(CD−R、CD−RW)、MO、DVD(Digital Versatile Disk)、メモリーカードなどであってもよい。ディスプレイ108は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ108は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
I/F109は、通信回線を通じてインターネットなどのネットワーク114に接続され、このネットワーク114を介して他の装置に接続される。そして、I/F109は、ネットワーク114と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F109には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード110は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス111は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ112は、画像を光学的に読み取り、検証支援装置内に画像データを取り込む。なお、スキャナ112は、OCR機能を持たせてもよい。また、プリンタ113は、画像データや文書データを印刷する。プリンタ113には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(検証対象回路の一例)
つぎに、検証対象回路の一例について説明する。図2は、検証対象回路の一例を示す説明図である。検証対象回路200は、複数のインターフェースレジスタ(以下、単に「レジスタ」と称す)A〜Gからなるレジスタ群201と内部論理202とを備えるディジタル回路である。各レジスタA〜Gには、コマンドに応じた値がセットされたり、コマンド実行されたときの内部論理202の動作により、値が書き込まれたり、保持された値が読み出されたりする。
(検証支援装置の機能的構成)
つぎに、この発明の実施の形態にかかる検証支援装置の機能的構成について説明する。図3は、この発明の実施の形態にかかる検証支援装置の機能的構成を示すブロック図である。図3において、検証支援装置300は、取得部301と、分類部302と、設定部303と、比較部304と、検出部305と、生成部306と、入力部307と、算出部308とを備えている。
これら機能構成は、具体的には、たとえば、図1に示したROM102,RAM103,HD105などの記録媒体に記録されているプログラムを、CPU101に実行させることによって、またはI/F109によって、その機能を実現する。
まず、取得部301は、検証対象回路200の実装記述情報310を取得する機能を有する、また、コマンド定義ファイル群311からコマンド定義ファイルを取得する機能を有する。ここで、実装記述情報310とは、検証対象回路200のRTLのHDL記述情報や、その論理合成結果であるネットリストが含まれる。
また、コマンド定義ファイル群311とは、各種コマンドに関するコマンド定義ファイルの集合であり、コマンド定義ファイルとは当該コマンドの実行内容を記述したファイルである。
また、コマンドとは、[背景技術]で説明したように、リードやライトのほか、『三角形を描画する』、『バースト転送』といったあるまとまった機能をあらわしており、一連の手順により呼び出すことができる。取得部301では、検証対象回路200の実装記述情報310を読み込むことにより、検証対象回路200で実行可能なコマンドのコマンド定義ファイルをコマンド定義ファイル群311の中から読み込む。
また、分類部302は、取得部301によって取得された実装記述情報310に基づいて、検証対象回路200で実行可能なコマンドごとに、当該コマンドの実行に用いられる検証対象回路200内のレジスタA〜Gを、コマンドによる処理内容別に分類する機能を有する。そして、分類結果として実装記述分類情報312を出力する。
具体的には、たとえば、コマンド実行の際にセットされるレジスタ(以下、「入力レジスタ」)を起点として、実装記述情報310に基づいて内部論理202を探索して影響範囲を求めることで、更新されるレジスタ(以下、「出力レジスタ」)を検出する。また、その出力レジスタから内部論理202を逆に追跡することで参照されるレジスタ(以下、「参照レジスタ」)を検出する。
すなわち、入力レジスタにはコマンド実行の際に値がセットされ、出力レジスタにコマンド実行の際、値が更新され、参照レジスタは、コマンド実行の際、値が読み出されるレジスタである。
このような分類処理は、たとえば、特開2006−190209号公報で示したような信号伝搬解析や、公知の信号フロー解析(http://portal.acm.org/affiliated/citation.cfm?id=1119797&dl=acm&coll=GUIDE&CFID=15151515&CFTOKEN=6184618)や記号シミュレーション(http://www.eetimes.com/news/latest/showArticle.jhtml?articleID=18303007)により実現することができる。
図4は、コマンドXの実行解析結果を模式的に示した説明図である。図4では、コマンドXを実行する場合、レジスタA〜Gのうち、レジスタA,Bが入力レジスタ、レジスタDが参照レジスタ、レジスタB,C,D,Fが出力レジスタとして分類される。このようにコマンドXのほか、他のコマンド(たとえばコマンドY,Z)についても実行することで、コマンドごとに、当該コマンドの実行に用いられる検証対象回路200内のレジスタを、コマンドによる処理内容別に分類する。
図5は、コマンドX〜Zにおける実装記述分類情報312を示す図表であり、図6は、コマンドX〜Zにおける実装記述分類情報312を示すグラフである。図6において、実線矢印は「出力レジスタ」、点線矢印は「参照レジスタ」をあらわしている。なお、図6では、各コマンドX〜Zと入力レジスタとの対応関係は省略している。
また、設定部303は、分類部302によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせごとに、当該組み合わせに応じた検証優先度を設定する機能を有する。ここで、検証優先度とは、バグの発生し易さをあらわす指標であり、数値であらわすことができる。数値で表わした場合、数値が大きいほどバグが発生しやすく検証優先度は高くなり、数値が小さいほどバグが発生しにくく検証優先度は低くなる。
設定部303では、具体的には、たとえば、実装記述分類情報312を参照し、連続する1対のコマンドの組み合わせごとに、検証優先度を設定する。バグが発生しやすい組み合わせ、すなわち検証優先度が高くなる組み合わせには、たとえば、同一レジスタに対し、先に実行されるコマンドにおいてライト処理をおこない、後に実行されるコマンドにおいてリード処理(Read after Write、以下「R/W処理」という)をおこなう組み合わせや、同一レジスタに対し、先に実行されるコマンドにおいてライト処理をおこない、後に実行されるコマンドにおいてライト処理(Write after Write、以下「W/W処理」という)をおこなう組み合わせがある。
一方、バグが発生しにくい組み合わせ、すなわち検証優先度が低くなる組み合わせには、たとえば、同一レジスタに対し、先に実行されるコマンドにおいてリード処理をおこない、後に実行されるコマンドにおいてリード処理(Read after Read、以下「R/R処理」という)をおこなう組み合わせや、同一レジスタに対し、先に実行されるコマンドにおいてリード処理をおこない、後に実行されるコマンドにおいてライト処理(Read after Write、以下「W/R処理」という)をおこなう組み合わせがある。
以降、このR/W処理、W/W処理、R/R処理、W/R処理のようにコマンドの連続実行にともなう処理内容を「連続処理内容」と称す。
たとえば、図5に示した実装記述分類情報312を参照すると、コマンドXでは、レジスタFが出力レジスタに分類されており、コマンドYではレジスタFが参照レジスタに分類されている。したがってコマンドXを実行したあとコマンドYを実行(R/W処理)すると、後のコマンドYの実行においてレジスタFの値を参照する場合、その値は先に実行されたコマンドXによりレジスタFに書き込まれた値となる。
このため、コマンドYの実行結果は、先に実行されたコマンドXの実行結果に依存することとなる。すなわち、コマンドXにおいてライト処理を仕損じてもバグが発生しやすく、また、コマンドYにおいてリード処理を仕損じてもバグが発生しやすくなる。したがって、R/W処理に該当する組み合わせは、バグの発生可能性が最も高いため、検証優先度も最も高く設定されることとなる。
同様に、コマンドXでは、レジスタFが出力レジスタとなっており、コマンドZではレジスタFが出力レジスタとなっている。したがって、コマンドXを実行したあとコマンドZを実行(W/W処理)すると、コマンドZの実行においてレジスタFの値を書き込む場合、先に実行されたコマンドXにおいてレジスタFに書き込まれた値が上書きされる。
このように、後に実行されるコマンドZにおいてライト処理を仕損じた場合、先に実行されたコマンドXによりレジスタFに書き込まれた値が保持されているため、バグが発生しやすくなる。一方、後に実行されるコマンドZにおいてライト処理が正常におこなわれていれば、先に実行されたコマンドXのライト処理が仕損じていても影響はない。
したがって、W/W処理に該当する組み合わせは、R/W処理に該当する組み合わせよりもバグの発生可能性は低いため検証優先度も同様に低く設定されるが、R/R処理やW/R処理に該当する組み合わせよりもバグの発生可能性は高いため検証優先度も同様に高く設定される。このような検証優先度の設定には、より詳細には、検証優先度設定テーブルを用いることが好ましい。
図7は、検証優先度設定テーブル313を示す説明図である。検証優先度設定テーブル313では、最もバグの発生可能性が高いR/W処理は検証優先度を「3」とし、つぎにバグの発生可能性が高いW/W処理は検証優先度を「1」とし、残りのR/R処理およびW/R処理については、検証優先度を「0」とする。
この図7に示した検証優先度設定テーブル313を用いて、コマンドX〜Zの組み合わせごとに、検証優先度を設定する。この設定結果は、連続するコマンドの組み合わせに共通な規則となる(以下、「コマンド組み合わせ規則」と称す。)
図8は、コマンド組み合わせ規則314の一例を示す説明図である。なお、図8では、説明の簡略化のため、入力コマンドに関しては考慮しないこととする。コマンド組み合わせ規則314において、先に実行されるコマンドと後に実行されるコマンドとの組み合わせの検証優先度は、交差する数値に該当する。
たとえば、先に実行されるコマンドがコマンドXで、かつ、後に実行されるコマンドがコマンドXである場合、レジスタDに対しR/W処理をおこなっているため、検証優先度は「3」となる。同様に、先に実行されるコマンドがコマンドXであり、後に実行されるコマンドがコマンドYである場合、レジスタDに対しR/W処理をおこなっているとともに、レジスタCに対しW/W処理をおこなっているため、この場合の検証優先度は3+1=4となる。
また、図3において、比較部304は、検証対象回路200の仕様書にしたがってコマンドによる処理内容別に分類されたレジスタと、分類部302によって分類された処理内容別のレジスタとを、コマンドごとに比較する機能を有する。具体的には、たとえば、仕様書分類情報315と、実装記述分類情報312とを比較する。
ここで、仕様書分類情報315とは、検証対象回路200の仕様書に記載されている内容からユーザがコマンドによる処理内容別にレジスタA〜Gを分類し、その分類結果を、実装記述分類情報312のようにまとめて電子化した情報である。比較部304では、仕様書分類情報315と実装記述分類情報312とをレジスタA〜Gごとに比較する。
また、検出部305は、分類部302によって処理内容別にレジスタA〜Gが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、処理内容が仕様書とは異なる組み合わせを、比較部304によって比較された比較結果に基づいて検出する機能を有する。
具体的には、たとえば、先に実行されるコマンドと後に実行されるコマンドとの組み合わせのうち、仕様書分類情報315と実装記述分類情報312とで連続処理内容が相違する組み合わせを検出する。
図9は、比較部304および検出部305による比較検出例を示す説明図である。図9において、仕様書分類情報315と実装記述分類情報312とを比較すると、コマンドYにおいて、仕様書分類情報315では参照レジスタがないのに対し実装記述分類情報312ではレジスタFが参照レジスタに分類されている点、コマンドZにおいて、仕様書分類情報315ではレジスタHが参照レジスタに分類されているのに対し実装記述分類情報312では参照レジスタがない点、コマンドZにおいて、仕様書分類情報315ではレジスタEが出力レジスタに分類されているのに対し実装記述分類情報312ではレジスタEは出力レジスタに分類されていない点が比較結果として検出される。
これにより、コマンドXを実行した後コマンドZを実行すると、レジスタHについて仕様書分類情報315ではR/W処理となるが、実装記述分類情報312ではコマンドXによるライト処理のみであるため、連続処理内容が相違する。
また、コマンドZを実行した後コマンドXを実行すると、レジスタEについて仕様書分類情報315ではR/W処理となるが、実装記述分類情報312ではコマンドXによるリード処理のみであるため、連続処理内容が相違する。
また、コマンドZを実行した後コマンドYを実行すると、レジスタFについて仕様書分類情報315ではコマンドZによるライト処理となるが、実装記述分類情報312ではR/W処理となるため、連続処理内容が相違する。図9では、検出部305による検出結果を「○」、「×」により表記している。「○」は仕様書分類情報315と実装記述分類情報312との間で連続処理内容が相違する組み合わせであり、「×」は連続処理内容が同一の組み合わせである。
仕様書分類情報315と実装記述分類情報312との間で連続処理内容が相違する組み合わせは設計ミスであるため、バグが発生する可能性が高いと考えられる。したがって、設定部303では、このような検出結果も用いて、組み合わせごとの検証優先度を設定することとしてもよい。
また、図3において、生成部306は、設定部303によって設定された組み合わせごとの検証優先度に基づいてコマンドを時系列に並べることにより、検証対象回路200で実行可能な連続コマンド320を生成する機能を有する。
たとえば、生成部306では、すでに時系列に並べられた少なくとも最後尾のコマンドとの組み合わせの候補となるコマンドのうち、検証優先度が最高となるコマンドをあらたに並べることにより、連続コマンド320を生成する。また、すでに時系列に並べられた少なくとも最後尾のコマンドとの組み合わせの候補となるコマンドのうち、未出現のコマンドをあらたに並べることにより、連続コマンド320を生成することとしてもよい。
さらに、すでに時系列に並べられた少なくとも最後尾のコマンドとの組み合わせの候補となる未出現のコマンドのうち、検証優先度が最高となるコマンドをあらたに並べることにより、連続コマンド320を生成することとしてもよい。このような連続コマンド320の生成処理では、具体的には、たとえば、コマンド組み合わせ規則314を用いて連続コマンド320を生成するのが好ましい。この連続コマンド320の生成に際し、たとえば、既配列のコマンド列中、最後尾のコマンドの次に配置すべきコマンドは、参照ルールにしたがって決定することができる。
図10は、参照ルールテーブル316を示す図表である。図10において、参照ルールテーブル316では、参照ルールR1,R2,・・・ごとに参照対象コマンドとあらたに並べるコマンドの決定方法とが示されている。
参照対象コマンドとなるのは既配列のコマンド列の中の任意のコマンドであり、具体的には、たとえば、直前のコマンド(時系列的に末尾となるコマンド)であったり、過去p(p≧2、pは任意に設定可能)回分のコマンドにすることができる。
また、決定方法も、『ランダム』、『検証優先度が最高』、・・・など各種設定しておくこともできる。なお、これらの参照ルールR1,R2,・・・は、ある連続コマンド320について特定の参照ルールを適用してもよく、あらたにコマンドを並べる都度参照ルールを変更することとしてもよい。
ここで各参照ルールについて簡単に説明する。参照ルールR1は、参照対象コマンドはなく、あらたに配置するコマンドをランダムに決定する。参照ルールR2は、参照対象コマンドとの検証優先度が最高(値)となるコマンドを、あらたに配置するコマンドに決定する。たとえば、コマンド組み合わせ規則314を用いると、参照対象コマンドがコマンドXである場合、あらたに配置されるコマンドはコマンドYとなる。
また、参照ルールR3は、参照対象コマンドとの組み合わせのうち未出現の組み合わせの検証優先度が最高(値)となるコマンドを、あらたに配置するコマンドに決定する。たとえば、コマンド組み合わせ規則314を用いると、参照対象コマンドがコマンドXでありコマンドの組み合わせX,Yがすでに出現している場合、あらたに配置されるコマンドはコマンドXとなる。
参照ルールR4は、参照対象コマンドとの検証優先度が最低(値)となるコマンドを、あらたに配置するコマンドに決定する。たとえば、コマンド組み合わせ規則314を用いると、参照対象コマンドがコマンドXである場合、あらたに配置されるコマンドはコマンドZとなる。
また、参照ルールR5は、参照対象コマンドとの組み合わせのうち未出現の組み合わせの検証優先度が最低(値)となるコマンドを、あらたに配置するコマンドに決定する。たとえば、コマンド組み合わせ規則314を用いると、参照対象コマンドがコマンドXであり、コマンドの組み合わせX,Xがすでに出現している場合、あらたに配置されるコマンドはコマンドZとなる。
また、参照ルールR6は、参照対象コマンドとの検証優先度の合計が最高(値)となるコマンドを、あらたに配置するコマンドに決定する。ここでは、参照対象コマンドを過去2(p=2)回分のコマンドとする。たとえば、コマンド組み合わせ規則314を用いると、参照対象コマンドがコマンド列XZである場合、あらたに配置されるコマンドはコマンドYとなる。
また、参照ルールR7は、参照対象コマンドのうち未出現のコマンドとの検証優先度の合計が最低(値)となるコマンドを、あらたに配置するコマンドに決定する。ここでは、参照対象コマンドを過去2(p=2)回分のコマンドとする。たとえば、コマンド組み合わせ規則314を用いると、参照対象コマンドがコマンド列XZである場合、あらたに配置されるコマンドはコマンドZとなる。
ここで、連続コマンド320の生成例について説明する。図11は、連続コマンド320の生成例を示す説明図である。図11において、左端が先頭コマンドであり、時系列的に右方向にコマンドが配列されている。(A)では、まず、先頭コマンドXに対し参照ルールR2を適用することで、検証優先度が最高値となるコマンドYを配置する。このコマンドYに対し、参照ルールR2を適用することで、検証優先度が最高値となるコマンドXを配置する。
このコマンドXに対し、参照ルールR3を適用することで、検証優先度が最高値となる組み合わせがコマンド列XXとなるため、コマンドXを配置する。このコマンドXに対し、参照ルールR3を適用することで、検証優先度が最高値となる組み合わせがコマンド列XZであるため、コマンドZを配置する。このコマンドZに対し、参照ルールR2を適用することで、検証優先度が最高値となるコマンドYを配置する。このようにして連続コマンド320を生成することができる。
また、(B)では、参照ルールR6を適用して、過去p(p=2)回分のコマンドとの検証優先度の合計が最高(最大)となるコマンドを配列している。具体的には、符号1100で示した過去2回分のコマンド列ZYに対し、コマンド列ZY中、コマンドZとの検証優先度とコマンドYとの検証優先度との合計が最高値となるコマンドYをコマンド列ZYのつぎに配置する。このようにしても、連続コマンド320を生成することができる。
また、図3において、入力部307は、ユーザにより任意に選択された連続コマンド330(自動生成された連続コマンド320とは異なる)の入力を受け付ける機能を有する。具体的には、連続コマンド330そのものである必要はなく、少なくとも連続コマンド330の識別情報の入力を受け付けられればよい。ここで、連続コマンド330の識別情報とは、コマンドX、コマンドY、コマンドZ、・・・などコマンド列を特定する文字列データ(たとえば、XXZYZXY・・・)である。
また、算出部308は、入力部307によって入力された連続コマンド330の識別情報と、設定部303によって設定された検証優先度とに基づいて、連続コマンド320の有効度を算出する機能を有する。そして、算出結果として、優先条件付連続コマンド340を出力する。
具体的には、たとえば、コマンド組み合わせ規則314にしたがって連続するコマンド列の検証優先度を読み出して、その総和を有効度として算出する。すなわち、有効度とは、入力部307から識別情報として与えられた連続コマンドが、バグが発生しやすいコマンド列であるかバグが発生しにくいコマンド列であるかを数値化して判断するための指標である。
図12は、有効度の算出例を示す説明図である。図12においては、たとえば先頭コマンドであるコマンドXとその次に実行されるコマンドYとの組み合わせに応じた検証優先度は「4」、そのコマンドYとその次に実行されるコマンドXとの組み合わせに応じた検証優先度は「1」、・・・というように検証優先度を抽出する。そしてその合計「12」が有効度となる。なお、有効度を算出する場合、隣接する前回のコマンドとの組み合わせである必要はなく、たとえば、過去2回分のコマンドの検証優先度を抽出して、それらの合計を優先度としてもよい。
(検証支援処理手順)
つぎに、この発明の実施の形態にかかる検証支援処理手順について説明する。図13は、この発明の実施の形態にかかる検証支援処理手順の第1の例を示すフローチャートである。図13において、まず、取得部301によって検証対象回路200の実装記述情報310が取得されるまで待ち受け(ステップS1301:No)、実装記述情報310が取得された場合(ステップS1301:Yes)、分類部302により、検証対象回路200で実行可能なコマンドごとに、検証対象回路200内のレジスタを処理内容別に分類する(ステップS1302)。これにより、実装記述分類情報312が得られる。
このあと、設定部303による検証優先度設定処理(ステップS1303)と生成部306による連続コマンド生成処理(ステップS1304)とを実行することで、一連の処理を終了する。つぎに、ステップS1303で示した検証優先度設定処理について説明する。
図14は、検証優先度設定処理(ステップS1303)の詳細な処理手順を示すフローチャートである。図14において、連続するコマンドの組み合わせのうち未選択の組み合わせを選択する(ステップS1401)。つぎに、検証優先度設定テーブル313から、選択された組み合わせに応じた処理(W/R処理、W/W処理、R/R処理、R/W処理)に該当する検証優先度を読み出す(ステップS1402)。
たとえば、先に実行されるコマンドと後に実行されるコマンドとの組み合わせがコマンドX,Yであったとすると、レジスタFについてはR/W処理に該当するため、検証優先度「3」を読み出すとともに、レジスタCについてはW/W処理に該当するため、検証優先度「1」を読み出す。
そして、当該組み合わせに応じた検証優先度を設定する(ステップS1403)。具体的には、読み出された検証優先度の総和をとることで、組み合わせに応じた検証優先度を設定する。上記のコマンドX,Yの組み合わせを例に挙げると、検証優先度「3」,「1」が読み出されたため、コマンドX,Yの組み合わせに応じた検証優先度は、「4」となる。
このあと、未選択のコマンドの組み合わせがあるか否かを判断し(ステップS1404)、未選択の組み合わせがある場合(ステップS1404:Yes)、ステップS1401に戻る。一方、未選択の組み合わせがない場合(ステップS1404:No)、組み合わせに応じた検証優先度を纏め上げて、コマンド組み合わせ規則314を生成する(ステップS1405)。このあと、連続コマンド生成処理(ステップS1304)に移行する。つぎに、ステップS1304で示した連続コマンド生成処理について説明する。
図15は、連続コマンド生成処理(ステップS1304)の詳細な処理手順を示すフローチャートである。図15において、まず、ユーザが所望する連続コマンド数Nを設定する(ステップS1501)。これによりN通りの連続コマンド320の生成処理が開始される。
インデックス番号iをi=1とし(ステップS1502)、i番目の連続コマンド320(以下、「連続コマンドSCi」と表記する)の生成処理を実行する(ステップS1503)。連続コマンドSCiが生成されると、インデックス番号iを1つインクリメントし(ステップS1504)、i>Nであるか否かを判断する(ステップS1505)。i>Nでない場合(ステップS1505:No)、ステップS1503に戻る。一方、i>Nである場合(ステップS1505:Yes)、生成されたN通りの連続コマンド320を出力する(ステップS1506)。これにより、一連の処理を終了する。
つぎに、ステップS1503で示した連続コマンドSCiの生成処理について説明する。図16は、連続コマンドSCiの生成処理(ステップS1503)の詳細な処理手順を示すフローチャートである。図16において、まず、連続コマンドSCi内のコマンド個数Mを設定する(ステップS1601)。この設定は、連続コマンド数Nの設定とともにおこなってもよい。
そして、検証対象回路200で実行可能なコマンド群の中から先頭コマンドを選択する(ステップS1602)。このあと、インデックス番号jをj=2とする(ステップS1603)。このインデックス番号jはコマンドの配置順(または実行順)を示す変数である。なお、j=1は先頭コマンドの配置順をあらわしている。すなわち、j番目のコマンドはj−1番目のコマンドのつぎに実行されるコマンドとなる。
つぎに、参照ルールテーブル316から参照ルールを選択する(ステップS1604)。そして、選択された参照ルールにしたがって、直前のコマンド(j−1番目のコマンド)のつぎに実行するj番目のコマンドを、検証対象回路200で実行可能なコマンド群の中から選択して配置する(ステップS1605)。
このあと、インデックス番号jを1つインクリメントし(ステップS1606)、j>Mであるか否かを判断する(ステップS1607)。j>Mでない場合(ステップS1607:No)、ステップS1604に戻る。一方、j>Mである場合(ステップS1607:Yes)、ステップS1504に移行する。
このように、図13〜図16に示した処理手順によれば、連続するコマンドの組み合わせに応じた検証優先度を、同一レジスタに対する連続処理内容により設定するため、R/W処理やW/W処理のようにその連続処理内容に依存関係があれば検証優先度は高く設定される。これにより、バグが発生しやすい連続コマンド320を自動生成することができる。
また、R/R処理やW/R処理のようにその連続処理内容に依存関係がなければ検証優先度は低く設定される。これにより、バグが発生しにくいような連続コマンド320の生成を抑制することができる。また、バグが発生しにくいような連続コマンド320を自動生成することもできるため、明らかに連続投入する必要がない連続コマンド320を認識することも可能である。
つぎに、この発明の実施の形態にかかる検証支援処理手順の第2の例について説明する。図17は、この発明の実施の形態にかかる検証支援処理手順の第2の例を示すフローチャートである。この第2の例は、第1の例における検証優先度設定処理(ステップS1303)のあと、入力部307および算出部308により、あらかじめ用意された連続コマンド330の有効度を算出する処理が追加された処理手順である。なお、図13に示した第1の例と同一処理内容については同一ステップ番号を付し、その説明を省略する。
図17において、ステップS1301〜ステップS1303の実行後、入力部307により、連続コマンド330の識別情報が入力されるまで待ち受け(ステップS1701:No)、連続コマンド330の識別情報が入力された場合(ステップS1701:Yes)、算出部308により、その有効度を算出する(ステップS1702)。これにより、一連の処理を終了する。
これにより、あらかじめ用意された連続コマンド330についてバグが発生しやすいかといった評価をおこなうことができる。また、複数の連続コマンド330に対して有効度を算出することで、優先条件付連続コマンド340を出力する。これにより、バグの発生可能性についての相対的な順位が得られ、優先して検証すべき連続コマンドを認識することができ、検証資源の有効利用を図ることができる。
つぎに、この発明の実施の形態にかかる検証支援処理手順の第3の例について説明する。図18は、この発明の実施の形態にかかる検証支援処理手順の第3の例を示すフローチャートである。この第3の例は、第1の例の処理手順に比較部304および検出部305による処理を追加した処理手順である。なお、図13に示した第1の例と同一処理内容については同一ステップ番号を付し、その説明を省略する。
図18において、まず、ステップS1301〜ステップS1302のあと、比較部304により、仕様書分類情報315を読み込んで、実装記述分類情報312と比較する(ステップS1801)。この比較処理により、仕様書分類情報315と実装記述分類情報312との間において、コマンドごとに分類されたレジスタの相違点が検出される。
このあと、検出部305により、連続するコマンドの組み合わせごとに、仕様書分類情報315と実装記述分類情報312との間において相違する連続処理内容を検出する(ステップS1802)。この検出結果を出力(画面表示または印刷出力)することで、実装記述情報310と仕様書との食い違いを発見することができる。すなわち、仕様書に内在する設計者の認識と実装記述情報310に内在する実装者の認識とのずれを顕在化することができる。
また、検出の後、検出結果を用いて検証優先度設定処理を実行する(ステップS1303)。具体的には、図14に示したステップS1403の処理において、ステップS1802の検出結果を用いる。たとえば、当該組み合わせにおいて相違点が検出された場合にはバグが発生しやすくなると考えられるため、さらに検証優先度を所定ポイント加算することとしてもよい。
そして、この検証優先度設定処理(ステップS1303)のあと、連続コマンド生成処理(ステップS1304)を実行することで、実装記述情報310と仕様書との食い違いを考慮した連続コマンド320を得ることができる。なお、検証優先度設定処理(ステップS1303)のあと、ステップS1701〜ステップS1702のようにあらかじめ用意された連続コマンド320の有効度を算出することとしてもよい。
以上説明したように、この発明の実施の形態によれば、膨大な数の連続コマンド320を効率的に絞り込み、効果的にバグをたたき出すことができる。これにより、検証期間の短縮化および検証者の作業負担の軽減を図ることができる。
なお、本実施の形態で説明した検証支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
(付記1)検証対象回路の実装記述情報を取得させる取得工程と、
前記取得工程によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類させる分類工程と、
前記分類工程によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせごとに、当該組み合わせに応じた検証優先度を設定させる設定工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
(付記2)前記設定工程は、
前記組み合わせの集合の中の一の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「読み出し」である場合、前記一の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定させることを特徴とする付記1に記載の検証支援プログラム。
(付記3)前記設定工程は、
前記組み合わせの集合の中の一の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「書込み」である場合、前記一の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定させることを特徴とする付記1に記載の検証支援プログラム。
(付記4)前記設定工程は、
前記組み合わせの集合の中の第1の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「読み出し」である場合、前記第1の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定させ、
前記組み合わせの集合の中の第2の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「書込み」である場合、前記第2の組み合わせに応じた検証優先度を、前記第1の組み合わせに応じた検証優先度よりも低く、かつ前記他の組み合わせに応じた検証優先度よりも高く設定させることを特徴とする付記1に記載の検証支援プログラム。
(付記5)前記検証対象回路の仕様書にしたがって前記コマンドによる処理内容別に分類されたレジスタと、前記分類工程によって分類された処理内容別のレジスタとを、前記コマンドごとに比較させる比較工程と、
前記分類工程によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、前記処理内容が前記仕様書とは異なる組み合わせを、前記比較工程によって比較された比較結果に基づいて検出させる検出工程と、を前記コンピュータに実行させ、
前記設定工程は、
前記検出工程によって検出された検出結果に基づいて、前記検証優先度を設定させることを特徴とする付記1〜4のいずれか一つに記載の検証支援プログラム。
(付記6)前記設定工程によって設定された前記組み合わせごとの検証優先度に基づいて前記コマンドを時系列に並べることにより、前記検証対象回路で実行可能な連続コマンドを生成させる生成工程を前記コンピュータに実行させることを特徴とする付記1〜5のいずれか一つに記載の検証支援プログラム。
(付記7)複数のコマンドが時系列に並べられた任意の連続コマンドに関する識別情報の入力を受け付けさせる入力工程と、
前記入力工程によって入力された連続コマンドに関する識別情報と、前記設定工程によって設定された検証優先度とに基づいて、前記連続コマンドの有効度を算出させる算出工程と、を前記コンピュータに実行させることを特徴とする付記1〜6のいずれか一つに記載の検証支援プログラム。
(付記8)検証対象回路の実装記述情報を取得させる取得工程と、
前記取得工程によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類させる分類工程と、
前記検証対象回路の仕様書にしたがって前記コマンドによる処理内容別に分類されたレジスタと、前記分類工程によって分類された処理内容別のレジスタとを、前記コマンドごとに比較させる比較工程と、
前記分類工程によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、前記処理内容が前記仕様書とは異なる組み合わせを、前記比較工程によって比較された比較結果に基づいて検出させる検出工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
(付記9)付記1〜付記8のいずれか一つに記載の検証支援プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
(付記10)検証対象回路の実装記述情報を取得する取得手段と、
前記取得手段によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類する分類手段と、
前記分類手段によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせごとに、当該組み合わせに応じた検証優先度を設定する設定手段と、
を備えることを特徴とする検証支援装置。
(付記11)前記設定手段は、
前記組み合わせの集合の中の一の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「読み出し」である場合、前記一の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定することを特徴とする付記10に記載の検証支援装置。
(付記12)前記設定手段は、
前記組み合わせの集合の中の一の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「書込み」である場合、前記一の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定することを特徴とする付記10に記載の検証支援装置。
(付記13)前記設定手段は、
前記組み合わせの集合の中の第1の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「読み出し」である場合、前記第1の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定し、
前記組み合わせの集合の中の第2の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「書込み」である場合、前記第2の組み合わせに応じた検証優先度を、前記第1の組み合わせに応じた検証優先度よりも低く、かつ前記他の組み合わせに応じた検証優先度よりも高く設定することを特徴とする付記10に記載の検証支援装置。
(付記14)前記検証対象回路の仕様書にしたがって前記コマンドによる処理内容別に分類されたレジスタと、前記分類手段によって分類された処理内容別のレジスタとを、前記コマンドごとに比較する比較手段と、
前記分類手段によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、前記処理内容が前記仕様書とは異なる組み合わせを、前記比較手段によって比較された比較結果に基づいて検出する検出手段と、を備え、
前記設定手段は、
前記検出手段によって検出された検出結果に基づいて、前記検証優先度を設定することを特徴とする付記10〜13のいずれか一つに記載の検証支援装置。
(付記15)前記設定手段によって設定された前記組み合わせごとの検証優先度に基づいて前記コマンドを時系列に並べることにより、前記検証対象回路で実行可能な連続コマンドを生成する生成手段を備えることを特徴とする付記10〜14のいずれか一つに記載の検証支援装置。
(付記16)複数のコマンドが時系列に並べられた任意の連続コマンドに関する識別情報の入力を受け付ける入力手段と、
前記入力手段によって入力された連続コマンドに関する識別情報と、前記設定手段によって設定された検証優先度とに基づいて、前記連続コマンドの有効度を算出する算出手段と、
を備えることを特徴とする付記10〜15のいずれか一つに記載の検証支援装置。
(付記17)検証対象回路の実装記述情報を取得する取得手段と、
前記取得手段によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類する分類手段と、
前記検証対象回路の仕様書にしたがって前記コマンドによる処理内容別に分類されたレジスタと、前記分類手段によって分類された処理内容別のレジスタとを、前記コマンドごとに比較する比較手段と、
前記分類手段によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、前記処理内容が前記仕様書とは異なる組み合わせを、前記比較手段によって比較された比較結果に基づいて検出する検出手段と、
を備えることを特徴とする検証支援装置。
(付記18)検証対象回路の実装記述情報を取得する取得工程と、
前記取得工程によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類する分類工程と、
前記分類工程によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせごとに、当該組み合わせに応じた検証優先度を設定する設定工程と、
を含んだことを特徴とする検証支援方法。
(付記19)前記設定工程は、
前記組み合わせの集合の中の一の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「読み出し」である場合、前記一の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定することを特徴とする付記18に記載の検証支援方法。
(付記20)前記設定工程は、
前記組み合わせの集合の中の一の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「書込み」である場合、前記一の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定することを特徴とする付記18に記載の検証支援方法。
(付記21)前記設定工程は、
前記組み合わせの集合の中の第1の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「読み出し」である場合、前記第1の組み合わせに応じた検証優先度を、他の組み合わせに応じた検証優先度よりも高く設定し、
前記組み合わせの集合の中の第2の組み合わせにおいて、同一のレジスタに対し、前記先に実行されるコマンドによる処理内容が「書込み」で、前記後に実行されるコマンドによる処理内容が「書込み」である場合、前記第2の組み合わせに応じた検証優先度を、前記第1の組み合わせに応じた検証優先度よりも低く、かつ前記他の組み合わせに応じた検証優先度よりも高く設定することを特徴とする付記18に記載の検証支援方法。
(付記22)前記検証対象回路の仕様書にしたがって前記コマンドによる処理内容別に分類されたレジスタと、前記分類工程によって分類された処理内容別のレジスタとを、前記コマンドごとに比較する比較工程と、
前記分類工程によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、前記処理内容が前記仕様書とは異なる組み合わせを、前記比較工程によって比較された比較結果に基づいて検出する検出工程と、を含み、
前記設定工程は、
前記検出工程によって検出された検出結果に基づいて、前記検証優先度を設定することを特徴とする付記18〜21のいずれか一つに記載の検証支援方法。
(付記23)前記設定工程によって設定された前記組み合わせごとの検証優先度に基づいて前記コマンドを時系列に並べることにより、前記検証対象回路で実行可能な連続コマンドを生成する生成工程を含んだことを特徴とする付記18〜22のいずれか一つに記載の検証支援方法。
(付記24)複数のコマンドが時系列に並べられた任意の連続コマンドに関する識別情報の入力を受け付ける入力工程と、
前記入力工程によって入力された連続コマンドに関する識別情報と、前記設定工程によって設定された検証優先度とに基づいて、前記連続コマンドの有効度を算出する算出工程と、
を含んだことを特徴とする付記18〜23のいずれか一つに記載の検証支援方法。
(付記25)検証対象回路の実装記述情報を取得する取得工程と、
前記取得工程によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類する分類工程と、
前記検証対象回路の仕様書にしたがって前記コマンドによる処理内容別に分類されたレジスタと、前記分類工程によって分類された処理内容別のレジスタとを、前記コマンドごとに比較する比較工程と、
前記分類工程によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、前記処理内容が前記仕様書とは異なる組み合わせを、前記比較工程によって比較された比較結果に基づいて検出する検出工程と、
を含んだことを特徴とする検証支援方法。
以上のように、本発明にかかる検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法は、ディジタル回路における機能ブロックやモジュール、システムの機能検証に有用である。
この発明の実施の形態にかかる検証支援装置のハードウェア構成を示すブロック図である。 検証対象回路の一例を示す説明図である。 この発明の実施の形態にかかる検証支援装置の機能的構成を示すブロック図である。 コマンドXの実行解析結果を模式的に示した説明図である。 コマンドX〜Zにおける実装記述分類情報を示す図表である。 コマンドX〜Zにおける実装記述分類情報を示すグラフである。 検証優先度設定テーブルを示す説明図である。 コマンド組み合わせ規則の一例を示す説明図である。 比較部および検出部による比較検出例を示す説明図である。 参照ルールテーブルを示す図表である。 連続コマンドの生成例を示す説明図である。 有効度の算出例を示す説明図である。 この発明の実施の形態にかかる検証支援処理手順の第1の例を示すフローチャートである。 検証優先度設定処理(ステップS1303)の詳細な処理手順を示すフローチャートである。 連続コマンド生成処理(ステップS1304)の詳細な処理手順を示すフローチャートである。 連続コマンドSCiの生成処理(ステップS1503)の詳細な処理手順を示すフローチャートである。 この発明の実施の形態にかかる検証支援処理手順の第2の例を示すフローチャートである。 この発明の実施の形態にかかる検証支援処理手順の第3の例を示すフローチャートである。
符号の説明
200 検証対象回路
201 レジスタ群
202 内部論理
300 検証支援装置
301 取得部
302 分類部
303 設定部
304 比較部
305 検出部
306 生成部
307 入力部
308 算出部
310 実装記述情報
311 コマンド定義ファイル群
312 実装記述分類情報
313 検証優先度設定テーブル
314 コマンド組み合わせ規則
315 仕様書分類情報
316 参照ルールテーブル
320 連続コマンド
330 連続コマンド
340 優先条件付連続コマンド

Claims (5)

  1. 検証対象回路の実装記述情報を取得させる取得工程と、
    前記取得工程によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類させる分類工程と、
    前記分類工程によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行される先行コマンドとその後に実行される後続コマンドとの組み合わせにおいて同一レジスタについての前記先行コマンドでの処理内容と前記後続コマンドの処理内容の組み合わせで特定される連続処理内容に応じた検証優先度を設定させる設定工程と、
    をコンピュータに実行させることを特徴とする検証支援プログラム。
  2. 検証対象回路の実装記述情報を取得させる取得工程と、
    前記取得工程によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類させる分類工程と、
    前記検証対象回路の仕様書にしたがって前記コマンドによる処理内容別に分類されたレジスタと、前記分類工程によって分類された処理内容別のレジスタとを、前記コマンドごとに比較させる比較工程と、
    前記分類工程によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行されるコマンドとその後に実行されるコマンドとの組み合わせのうち、前記処理内容が前記仕様書とは異なる組み合わせを、前記比較工程によって比較された比較結果に基づいて検出させる検出工程と、
    をコンピュータに実行させることを特徴とする検証支援プログラム。
  3. 請求項1または2に記載の検証支援プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
  4. 検証対象回路の実装記述情報を取得する取得手段と、
    前記取得手段によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類する分類手段と、
    前記分類手段によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行される先行コマンドとその後に実行される後続コマンドとの組み合わせにおいて同一レジスタについての前記先行コマンドでの処理内容と前記後続コマンドの処理内容の組み合わせで特定される連続処理内容に応じた検証優先度を設定させる設定手段と、
    を備えることを特徴とする検証支援装置。
  5. 取得手段、分類手段および設定手段を備えるコンピュータが、
    前記取得手段により、検証対象回路の実装記述情報を取得する取得工程と、
    前記分類手段により、前記取得工程によって取得された実装記述情報に基づいて、前記検証対象回路で実行可能なコマンドごとに、当該コマンドの実行に用いられる前記検証対象回路内のレジスタを、前記コマンドによる処理内容別に分類する分類工程と、
    前記設定手段により、前記分類工程によって処理内容別にレジスタが分類されたコマンドの集合の中から選ばれた、先に実行される先行コマンドとその後に実行される後続コマンドとの組み合わせにおいて同一レジスタについての前記先行コマンドでの処理内容と前記後続コマンドの処理内容の組み合わせで特定される連続処理内容に応じた検証優先度を設定する設定工程と、
    実行することを特徴とする検証支援方法。
JP2006260339A 2006-09-26 2006-09-26 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法 Active JP4707191B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006260339A JP4707191B2 (ja) 2006-09-26 2006-09-26 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
US11/698,858 US7779377B2 (en) 2006-09-26 2007-01-29 Method and apparatus for aiding verification of circuit, and computer product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006260339A JP4707191B2 (ja) 2006-09-26 2006-09-26 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法

Publications (2)

Publication Number Publication Date
JP2008083781A JP2008083781A (ja) 2008-04-10
JP4707191B2 true JP4707191B2 (ja) 2011-06-22

Family

ID=39354641

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006260339A Active JP4707191B2 (ja) 2006-09-26 2006-09-26 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法

Country Status (2)

Country Link
US (1) US7779377B2 (ja)
JP (1) JP4707191B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7594079B2 (en) * 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
US9946547B2 (en) 2006-09-29 2018-04-17 Arm Finance Overseas Limited Load/store unit for a processor, and applications thereof
JP5163350B2 (ja) * 2008-05-19 2013-03-13 富士通株式会社 検証支援プログラム、検証支援装置および検証支援方法
US7991605B1 (en) * 2008-06-06 2011-08-02 Cadence Design Systems, Inc. Method and apparatus for translating a verification process having recursion for implementation in a logic emulator
US9141738B2 (en) * 2012-06-04 2015-09-22 Reveal Design Automation Sequential non-deterministic detection in hardware design
US9754112B1 (en) 2014-11-24 2017-09-05 Bluerisc, Inc. Detection and healing of vulnerabilities in computer code
US9619312B2 (en) * 2015-02-12 2017-04-11 International Business Machines Corporation Persistent command parameter table for pre-silicon device testing
CN109144806B (zh) * 2017-06-19 2022-02-01 合肥君正科技有限公司 一种寄存器传输级电路的功能验证方法及装置
KR102486624B1 (ko) * 2020-10-15 2023-01-11 (주)큐랩스 설계된 회로도에서의 회로 및 부품 검증 시스템 및 방법

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002041596A (ja) * 2000-07-28 2002-02-08 Sony Corp 回路検証方法および装置
JP2003076742A (ja) * 2001-09-05 2003-03-14 Matsushita Electric Ind Co Ltd 検証パターン抽出装置とその方法
JP2003345848A (ja) * 2002-05-24 2003-12-05 Fujitsu Ltd 論理検証方法、論理検証装置及び半導体装置
JP2004326237A (ja) * 2003-04-22 2004-11-18 Mitsubishi Electric Corp テストケース生成装置及びテストケース生成方法及びテストケース及びテスト方法
JP2005092598A (ja) * 2003-09-18 2005-04-07 Matsushita Electric Ind Co Ltd システム制御手順自動生成方法および装置
JP2005275963A (ja) * 2004-03-25 2005-10-06 Toshiba Corp モニタ記述生成装置、モニタ記述生成方法及びモニタ記述生成プログラム
JP2006164282A (ja) * 2004-12-03 2006-06-22 Arm Ltd 自動的に生成されたテストプログラムのための採点機構

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05151297A (ja) 1991-11-27 1993-06-18 Hokuriku Nippon Denki Software Kk 論理検証装置
US5495422A (en) * 1993-10-12 1996-02-27 Wang Laboratories, Inc. Method for combining a plurality of independently operating circuits within a single package
US5537580A (en) * 1994-12-21 1996-07-16 Vlsi Technology, Inc. Integrated circuit fabrication using state machine extraction from behavioral hardware description language
US7036106B1 (en) * 2000-02-17 2006-04-25 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6523151B2 (en) * 2000-05-25 2003-02-18 International Business Machines Corporation Method for verifying the design of a microprocessor
JP2002157145A (ja) 2000-11-20 2002-05-31 Hitachi Ltd 論理検証方式
JP2004054549A (ja) 2002-07-19 2004-02-19 Renesas Technology Corp 論理シミュレーション装置
JP4183182B2 (ja) * 2003-08-22 2008-11-19 株式会社リコー 設計支援装置および設計支援方法
US7103803B2 (en) * 2004-01-08 2006-09-05 International Business Machines Corporation Method for verification of command processing in a computer system design having a multiple priority command queue
US7313773B1 (en) * 2004-05-26 2007-12-25 Coware, Inc. Method and device for simulator generation based on semantic to behavioral translation
JP4217220B2 (ja) 2005-01-07 2009-01-28 富士通株式会社 検証支援プログラムおよび検証支援装置
US7822951B2 (en) * 2007-08-01 2010-10-26 Advanced Micro Devices, Inc. System and method of load-store forwarding

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002041596A (ja) * 2000-07-28 2002-02-08 Sony Corp 回路検証方法および装置
JP2003076742A (ja) * 2001-09-05 2003-03-14 Matsushita Electric Ind Co Ltd 検証パターン抽出装置とその方法
JP2003345848A (ja) * 2002-05-24 2003-12-05 Fujitsu Ltd 論理検証方法、論理検証装置及び半導体装置
JP2004326237A (ja) * 2003-04-22 2004-11-18 Mitsubishi Electric Corp テストケース生成装置及びテストケース生成方法及びテストケース及びテスト方法
JP2005092598A (ja) * 2003-09-18 2005-04-07 Matsushita Electric Ind Co Ltd システム制御手順自動生成方法および装置
JP2005275963A (ja) * 2004-03-25 2005-10-06 Toshiba Corp モニタ記述生成装置、モニタ記述生成方法及びモニタ記述生成プログラム
JP2006164282A (ja) * 2004-12-03 2006-06-22 Arm Ltd 自動的に生成されたテストプログラムのための採点機構

Also Published As

Publication number Publication date
US20080126768A1 (en) 2008-05-29
JP2008083781A (ja) 2008-04-10
US7779377B2 (en) 2010-08-17

Similar Documents

Publication Publication Date Title
JP4707191B2 (ja) 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
JP4314233B2 (ja) 設計支援装置、設計支援方法、設計支援プログラム、および記録媒体
US8750571B2 (en) Methods of object search and recognition
JP4549280B2 (ja) 設計支援装置、設計支援方法、および設計支援プログラム
US8069026B2 (en) Clock gating analyzing apparatus, clock gating analyzing method, and computer product
JP6787045B2 (ja) 検証支援プログラム、検証支援方法、および情報処理装置
US20080150940A1 (en) Image processing apparatus and method thereof
US8458110B2 (en) Verification support apparatus, verification support method, and computer product
JP4716964B2 (ja) タイミングダイアグラム編集プログラム、タイミングダイアグラム編集装置およびタイミングダイアグラム編集方法
US7464363B2 (en) Verification support device, verification support method, and computer product
JP5125385B2 (ja) 検証シナリオ作成プログラム、該プログラムを記録した記録媒体、検証シナリオ作成装置、および検証シナリオ作成方法
US9378316B2 (en) Computer product for supporting design and verification of integrated circuit
US8775873B2 (en) Data processing apparatus that performs test validation and computer-readable storage medium
US20080209368A1 (en) Layout design method, layout design apparatus, and computer product
JP7140507B2 (ja) 墨消し処理を行う情報処理装置、その制御方法及びプログラム
JP4387324B2 (ja) プロパティ変換装置
US20110138228A1 (en) Verification computer product and apparatus
JP4344207B2 (ja) 文書検索装置、文書検索方法、文書検索プログラム、および記録媒体
JP4946588B2 (ja) 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
JP4217204B2 (ja) タイミング例外パス検出装置、タイミング例外パス検出方法およびタイミング例外パス検出プログラム
JP4324122B2 (ja) 設計ルール検証プログラム、該プログラムを記録した記録媒体、および設計ルール検証装置
JP4747036B2 (ja) Lsi解析プログラム、該プログラムを記録した記録媒体、lsi解析装置、およびlsi解析方法
JP5109960B2 (ja) 検証支援プログラム、検証支援装置、および検証支援方法
US8560986B2 (en) Computer product, apparatus, and method for correcting assertion
JP2008250649A (ja) Ui設計用シナリオ処理プログラム、ui設計用シナリオ処理システムおよびui設計用シナリオ処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101012

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101213

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110314

R150 Certificate of patent or registration of utility model

Ref document number: 4707191

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150