以下に図面を参照して、本発明にかかる検証支援装置および検証支援方法の実施の形態を詳細に説明する。
(実施の形態)
図1は、実施の形態にかかる検証支援方法の一実施例を示す説明図である。なお、以下の説明において、検証対象回路の設計仕様書112とユースケース111とに基づき作成された検証項目表を検証項目表(1)122と記述する。また、検証項目表(1)122から抽出したアクセス対象項目と当該アクセス対象項目のアクセス順とを示す第1アクセス対象情報を検証項目表(2)132と記述する。また、ユースケース111に基づき作成されたテストパターンをテストパターン(1)121と記述し、テストパターン(1)121から抽出したアクセス対象項目を示す第2アクセス対象情報をテストパターン(2)131と記述する。
図1において、検証支援装置101は、ユースケース111から作成されるテストパターン(1)121と、ユースケース111と検証対象回路の設計仕様書112とから作成される検証項目表(1)122を取得する。検証支援装置101は、テストパターン(1)121の検証範囲と検証項目表(1)122の検証範囲との比較結果を出力する。
検証支援装置101は、テストパターン(1)121と検証項目表(1)122を取得して、比較結果を出力するコンピュータである。ここで、ユースケース111は、実際に品種として適用される範囲の情報を含む。また、設計仕様書112は、端子情報、レジスタ情報および仕様のユースケース情報を含む。検証範囲とは、テストパターン(1)121と検証項目表(1)122が検証する機能の範囲である。アクセス対象項目は、例えば、レジスタ、入出力端子である。
従来、検証支援方法では、テストパターンと検証項目表とをレビューすることによって、検証範囲の差分を見つけて、どこにフィードバックするのか検討し、フィードバックにより、検証範囲の差分を少なくしていた。しかしながら、レビューだけでは、漏れが生じるため、検証支援方法は検証範囲の差分を完全に無くすことはできなかった。
このため、例えば、検証対象回路の論理シミュレーションを行いながら、レビュー時の漏れを見つけて、検証範囲の差分を無くしていくことが行われる。しかしながら、論理シミュレーションを行いながら、テストパターンの検証範囲と検証項目表の検証範囲とを一致させるため、時間がかかるという問題がある。
特に、論理シミュレーションにおけるカバレッジ分析では、検証項目表の「カバレッジカウント条件」に規定の特定のアクセス順のアクセス対象項目にアクセスした場合に、カバレッジカウントがカウントアップされる。このため、特定のアクセス順のアクセス対象項目がテストパターンの検証範囲に存在しない場合、論理シミュレーションを行った際にカバレッジカウントがカウントアップされず、検証項目のカバレッジ100%が達成されない。検証項目のカバレッジ100%を達成するため、論理シミュレーションの結果によってテストパターンや検証項目表が修正され、修正内容に応じてレビューと論理シミュレーションが再度行われることになる。そのため、検証項目のカバレッジ100%を達成するまで、検証に時間がかかる。
そこで、実施の形態では、検証支援装置101は、検証項目表(1)122から抽出したアクセス対象項目とアクセス順を示す検証項目表(2)132を作成し、テストパターン(1)121から抽出したアクセス対象項目を示すテストパターン(2)131を作成する。検証支援装置101は、検証項目表(2)132の特定のアクセス順のアクセス対象項目が、テストパターン(2)131に存在するか否かを判定する。これにより、検証支援装置101は、テストパターン(1)121の検証範囲と検証項目表(1)122の検証範囲の不一致を検出できる。この後、テストパターン(1)121の検証範囲と検証項目表(1)122の検証範囲の不一致をフィードバックすることで、検証範囲を一致させることができる。このため、論理シミュレーションを行う前に、テストパターンの検証範囲と検証項目表の検証範囲を一致させることができ、検証支援装置101は、検証項目のカバレッジ100%を達成するまでの時間を短縮することができる。
以下、実施の形態にかかる検証支援装置101の検証支援方法の一実施例について説明する。図1において、ユースケース111、テストパターン(1)121、設計仕様書112および検証項目表(1)122は事前に作成されたデータである。
(1)検証支援装置101は、検証対象回路の設計仕様書112とユースケース111とに基づいて作成された検証項目表(1)122からアクセス対象項目と当該アクセス対象項目のアクセス順とを抽出することで、検証項目表(2)132を作成する。
ここで、アクセス順とは、検証対象回路が機能を実現する処理を行う際に、検証対象回路のアクセス対象項目がアクセスされる順である。例えば、検証対象回路が機能を実現する処理のためアクセス対象項目に値を設定した場合、アクセス対象項目のアクセス順を1に、検証対象回路が機能を実現する処理を起動するためアクセス対象項目に値を設定した場合、アクセス対象項目のアクセス順を2にする。ここで、検証対象回路が機能を実現する処理がデータ転送処理である場合を例に挙げると、データ転送処理に関する転送条件を設定可能なレジスタのアクセス順が1になり、データ転送処理の開始を設定可能なレジスタのアクセス順が2になる。
検証支援装置101は、例えば、検証項目表(1)122の「カバレッジカウント条件」から抽出したアクセス対象項目のアクセス順を2にして、検証項目表(2)132を作成する。また、検証支援装置101は、例えば、検証項目表(1)122の「カバレッジ表」から抽出したアクセス対象項目のアクセス順を1にして、検証項目表(2)132を作成する。例えば、カバレッジ分析では、「カバレッジカウント条件」に規定のアクセス対象項目にアクセスした場合に、カバレッジカウントがカウントアップされる。そのため、例えば、「カバレッジカウント条件」に規定のアクセス対象項目へのアクセスのアクセス順は「カバレッジ表」から抽出したアクセス対象項目よりも後になる。また、「カバレッジカウント条件」に規定のアクセス対象項目としては、例えば、検証対象回路が機能を実現する処理を起動するためのアクセス対象項目が挙げられる。
(2)検証支援装置101は、ユースケース111に基づいて作成されたテストパターン(1)121からアクセス対象項目を抽出することで、テストパターン(2)131を作成する。
検証支援装置101は、例えば、テストパターン(1)121から一行ごとを取得して、各行に記載されるアクセス対象項目を抽出することで、テストパターン(2)131を作成する。
(3)検証支援装置101は、検証項目表(2)132に存在するアクセス対象項目のうちの特定のアクセス順のアクセス対象項目が、テストパターン(2)131に存在するか否かを判定する。例えば、特定のアクセス順は、検証対象回路に含まれるアクセス対象項目となる一連のレジスタのうちの最後のアクセス順である。また、例えば、特定のアクセス順は、検証対象回路が機能を実現する処理を起動するためのアクセス対象項目のアクセス順である。また、例えば、特定のアクセス順は、「カバレッジカウント条件」に規定のアクセス対象項目のアクセス順である。例えば、これにより、カバレッジ分析のカバレッジカウントをカウントアップさせるアクセス対象項目がテストパターン(2)131に存在するか否かを判定できる。
検証支援装置101は、例えば、特定のアクセス順のアクセス対象項目をアクセス順2のアクセス対象項目にすることができる。この場合、検証支援装置101は、検証項目表(2)132のアクセス順2のアクセス対象項目がテストパターン(2)131に存在するか否かを判定する。
以上説明したように、検証支援装置101は、検証対象回路の設計仕様書112とユースケース111とに基づき作成された検証項目表(1)122から抽出したアクセス対象項目と当該アクセス対象項目のアクセス順とを示す検証項目表(2)132を作成する。また、検証支援装置101は、ユースケース111に基づき作成されたテストパターン(1)121から抽出したアクセス対象項目を示すテストパターン(2)131を作成する。検証支援装置101は、検証項目表(2)132が示すアクセス対象項目のうちの特定のアクセス順のアクセス対象項目が、テストパターン(2)131が示すアクセス対象項目に存在するか否かを判定する。
これにより、検証支援装置101は、検証項目表(1)122の検証範囲とテストパターン(1)121の検証範囲の不一致を検出することができる。特に、検証支援装置101は、特定のアクセス順のアクセス対象項目の不一致を検出することができる。これにより、検証支援装置101は、論理シミュレーションの際にカバレッジカウントがカウントアップされず、検証項目のカバレッジ100%が達成されないことを、論理シミュレーションを行う前に検出できる。また、「カバレッジカウント条件」は、検証における重要な条件である。そのため、「カバレッジカウント条件」に規定の特定のアクセス順のアクセス対象項目がテストパターン(1)121の検証範囲に存在しない場合、特定のアクセス順と異なるアクセス順のアクセス対象項目もテストパターン(1)121の検証範囲に存在しない場合がある。そのため、例えば、検証支援装置101が特定のアクセス順のアクセス対象項目の不一致を検出することで、特定のアクセス順のアクセス対象項目により起動される機能のために設定されるアクセス対象項目の不一致も検出できる場合がある。
この後、検証項目表(1)122の検証範囲とテストパターン(1)121の検証範囲の不一致をフィードバックすることにより、ユースケース111、テストパターン(1)121、設計仕様書112または検証項目表(1)122を修正することができる。これにより、検証項目表(1)122の検証範囲とテストパターン(1)121の検証範囲を一致させることができる。このため、検証支援装置101は、検証項目のカバレッジ100%を達成するまでの時間を短縮することできる。
また、検証支援装置101は、特定のアクセス順と異なるアクセス順のアクセス対象項目について、テストパターン(2)131と検証項目表(2)132とのいずれかを基準にして、テストパターン(2)131と検証項目表(2)132とを比較することができる。例えば、検証支援装置101は、検証項目表(2)132に存在するアクセス対象項目のうちの特定のアクセス順と異なるアクセス順のアクセス対象項目が、テストパターン(2)131に存在するか否かを判定することができる。また、例えば、検証支援装置101は、さらに、テストパターン(2)131に存在するアクセス対象項目のうちの特定のアクセス順のアクセス対象項目と異なるアクセス対象項目が、検証項目表(2)132に存在するか否かを判定することができる。
これにより、検証支援装置101は、検証項目表(1)122の検証範囲とテストパターン(1)121の検証範囲の不一致をさらに検出することができる。
(検証支援装置101のハードウェア構成例)
図2は、実施の形態にかかる検証支援装置101のハードウェア構成例を示すブロック図である。図2において、検証支援装置101は、CPU(Central Processing Unit)201と、メモリ202と、I/F(Interface)203と、ディスクドライブ204と、ディスク205と、グラフィック処理装置206と、ディスプレイ(表示装置)208と、を有する。また、各構成部は、バス200によってそれぞれ接続される。
ここで、CPU201は、検証支援装置101の全体の制御を司る。メモリ202は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMは記憶部としてCPU201のワークエリアとして使用される。メモリ202に記憶されるプログラムは、CPU201にロードされることで、コーディングされている処理をCPU201に実行させる。
I/F203は、通信回線を通じてネットワーク207に接続され、ネットワーク207を介して他のコンピュータに接続される。そして、I/F203は、ネットワーク207と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。I/F203には、例えば、モデムやLAN(Local Area Network)アダプタなどを採用することができる。
ディスクドライブ204は、CPU201の制御に従ってディスク205に対するデータのリード/ライトを制御する。ディスク205は、ディスクドライブ204の制御で書き込まれたデータを記憶する。ディスク205としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
グラフィック処理装置206は、CPU201の指示により、検証支援装置101の検証結果を出力するインターフェースである。グラフィック処理装置206は、例えば、ディスプレイ(表示装置)208に接続され、検証支援装置101の検証結果をディスプレイ(表示装置)208に出力する。より具体的には、グラフィック処理装置206が検証項目表(1)122の検証範囲とテストパターン(1)121の検証範囲の不一致をディスプレイ(表示装置)208に表示することにより、フィードバックを行う。
なお、検証支援装置101は、上述した構成部のほか、例えば、SSD(Solid State Drive)、キーボード、マウス、プリンタなどを有することにしてもよい。
(設計仕様書112の一例)
図3は、実施の形態にかかる設計仕様書112の一例を示す説明図である。図3において、設計仕様書112は、例えば、事前に作成され、検証支援装置101のディスク205または外部のディスクに記憶される。
設計仕様書112は、検証対象回路のアクセス対象項目の仕様を記載した仕様書である。例えば、設計仕様書112は、各レジスタについて、ビット位置(Bit)、名前(Name)、アクセス種類(R/W)、初期値(Default)、説明(Description)の項目を有する。設計仕様書112は、各項目に情報を設定することで、設計情報(例えば、図3(A)〜図3(D))をレコードとして記憶する。
ビット位置は、レジスタでの位置を示す。名前は、レジスタのビット位置で示された領域を識別する識別子である。アクセス種類は、レジスタのビット位置が書き込み可能か読み出し可能かを示す。初期値は、検証対象回路がリセットされた時、レジスタのビット位置に設定される値を示す。説明は、レジスタのビット位置に設定される値を説明する。
図3(A)の例では、名前がDeviceID(Identification)であるビット位置は、レジスタの0ビットから15ビットの位置にあり、アクセス種類は書き込みおよび読み出し可能であり、初期値は0であることを示す。また、このレジスタは、Device認識IDを設定するために用いられることを示す。
(ユースケース111の一例)
図4は、実施の形態にかかるユースケース111の一例を示す説明図である。図4において、ユースケース111は、例えば、事前に作成され、検証支援装置101のディスク205または外部のディスクに記憶される。
ユースケース111は、検証対象回路の機能的要求を把握するためのものである。例えば、ユースケース111は検証対象回路の機能に関するシナリオである。
図4の例では、検証対象回路がリセットされ、RegisterAにデバイス認識のIDが設定され、RegisterDのTrans Startに0x1が書き込まれることで、データが転送される機能のシナリオである。ここで、0x1は、0x以下の数値が16進法の数値であることを示す。
(検証項目表(1)122の一例)
図5は、実施の形態にかかる検証項目表(1)122の一例を示す説明図である。図5において、検証項目表(1)122は、例えば、事前に作成され、検証支援装置101のディスク205または外部のディスクに記憶される。
検証項目表(1)122は、「カバレッジカウント条件」、「表の見方」および「カバレッジ表」の項目を有する。検証項目表(1)122は、各項目に情報を設定することで、検証項目情報を記憶する。
「カバレッジカウント条件」は、カバレッジ分析のカバレッジカウントをカウントアップさせるための条件である。ここでは、例えば、「カバレッジカウント条件」として、検証対象回路が機能を実現する処理を起動するための条件が挙げられる。「表の見方」は、検証対象回路に存在するアクセス対象項目と当該アクセス対象項目の仕様を示す。
「カバレッジ表」は、検証対象回路に存在するアクセス対象項目、CoverageCountおよび網羅率の項目を有する。アクセス対象項目は、アクセス対象項目が取り得る値の範囲を示す。アクセス対象項目は、最も左の列に、アクセス対象項目が取り得る値の範囲が示され、その右の列は、左のアクセス対象項目の値で当該アクセス対象項目が取り得る値の範囲が示される。CoverageCount(カバレッジカウント)は、検証対象回路に存在するアクセス対象項目の値の組合せが発生したか否かを示す。CoverageCountは、検証対象回路に存在するアクセス対象項目の値の組合せが発生した場合にカウントアップ、例えば1アップされる。網羅率は、検証対象回路に存在するアクセス対象項目の値のすべての組合せに対する発生したアクセス対象項目の値の組合せの割合を示す。また、網羅率は、検証対象回路に存在するアクセス対象項目の値のすべての組合せが発生した場合に100%となる。
図5の例では、「カバレッジカウント条件」は、RegD(RegisterD)に1が書き込まれた場合、処理を起動することを示す。「表の見方」は、RegA(RegisterA)、RegB(RegisterB)、RegC(RegisterC)、RegDおよびこれらのレジスタの仕様を示す。「カバレッジ表」には、各レジスタが取り得る値が記載されている。ここで、図5は一部のみが記載されている。例えば、RegAは0x0から0xFFFFまで取り得るが、0x2までが図5に記載される。また、図5の例は、論理シミュレーションを行う前であるため、検証対象回路に存在するレジスタの値の組合せは発生していない。このため、CoverageCountおよび網羅率の項目には0が設定されてある。
(検証項目表(2)132の一例)
図6は、実施の形態にかかる検証項目表(2)132の一例を示す説明図である。図6において、検証項目表(2)132は、例えば、検証支援装置101によって作成、更新され、検証支援装置101のメモリ202またはディスク205に記憶される。
検証項目表(2)132は、アクセス順、アクセス対象項目、R/W/I/O、RangeMin、RangeMax、テストパターンとの比較結果の項目を有する。検証項目表(2)132は、各項目に情報を設定することで、検証項目情報(例えば、検証項目情報132−1〜132−5)をレコードとして記憶する。
ここで、アクセス順は、検証対象回路のアクセス対象項目がアクセスされる順を示す。例えば、アクセス順の項目には、検証項目表(1)122の「カバレッジカウント条件」に記載されたアクセス対象項目であれば2が設定され、検証項目表(1)122の「表の見方」に記載されたアクセス対象項目であれば1が設定される。アクセス対象項目は、検証項目表(1)122の「カバレッジカウント条件」および「表の見方」に記載されたアクセス対象項目を示す。
R/W/I/Oは、アクセス対象項目のアクセス種類を示す。アクセス対象項目のアクセス種類とは、アクセス対象項目がアクセスされる種類を示す。例えば、アクセス対象項目がレジスタである場合、W(Write)、R(Read)、WorRが記載される。また、アクセス対象項目が入出力端子である場合、I(Input)、O(Output)、IorOが記載される。アクセス対象項目のアクセス種類が不明の場合は、WorRまたはIorOが記載される。
RangeMinは、アクセス対象項目が取り得る値の範囲の最小値を示し、RangeMaxは、アクセス対象項目が取り得る値の範囲の最大値を示す。テストパターンとの比較結果は、テストパターン(2)131との比較を行った場合の結果を一致または不一致で示す。
図6の例では、レコード132−1は、アクセス対象項目「RegA」がアクセス順1であり、0x0〜0xFFFFまでの値を取り得て、テストパターン(2)131との比較が行われていないことを示す。
(テストパターン(1)121の一例)
図7は、実施の形態にかかるテストパターン(1)121の一例を示す説明図である。図7において、テストパターン(1)121は、例えば、事前に作成され、検証支援装置101のディスク205または外部のディスクに記憶される。
テストパターン(1)121は、ユースケース111から作成されるソースコードである。テストパターン(1)121は、例えば、検証対象回路の機能に関するシナリオを実現するソースコードである。
テストパターン(1)121の記述例を以下に示す。
(1)レジスタReadによる条件成立待ちは、
reg_access_read_wait(レジスタ名,Wait終了条件となるレジスタの値);
と記述される。
(2)レジスタWriteの設定は、
reg_access_write(レジスタ名,min値,max値);
と記述される。
(3)出力信号による条件成立待ちは、
sig_access_output_wait(信号名,Wait終了条件となる信号値);
と記述される。
(4)入力信号の設定は、
sig_access_input(信号名,min値,max値);
と記述される。
図7の例では、検証対象回路がリセットされ、RegAに0x0〜0xFFFFまでの値が設定され、RegDに0x1が設定される。
(テストパターン(2)131の一例)
図8は、実施の形態にかかるテストパターン(2)131の一例を示す説明図である。図8において、テストパターン(2)131は、例えば、検証支援装置101によって作成、更新され、検証支援装置101のメモリ202またはディスク205に記憶される。
テストパターン(2)131は、アクセス順、アクセス対象項目、R/W/I/O、WriteMin、WriteMax、Read、InputMin、InputMax、Output、検証項目との比較結果の項目を有する。テストパターン(2)131は、各項目に情報を設定することで、テストパターン情報(例えば、テストパターン情報131−1〜131−2)をレコードとして記憶する。
ここで、アクセス順は、テストパターン(1)121に示されるアクセスされる順番を示す。例えば、ソースコードは上から下に処理していくので、その順番に番号を振っていく。アクセス対象項目は、テストパターン(1)121の各行に記載されたアクセス対象項目を示す。
R/W/I/Oは、アクセス対象項目のアクセス種類を示す。例えば、アクセス対象項目がレジスタである場合、W(Write)、R(Read)が記載される。また、アクセス対象項目が入出力端子である場合、I(Input)、O(Output)が記載される。
WriteMinは、レジスタWriteの場合の設定値の最小値を示す。WriteMaxは、レジスタWriteの場合の設定値の最大値を示す。Readは、レジスタReadによる終了条件成立待ちの場合の終了条件となるレジスタRead値を示す。InputMinは、信号入力の場合の設定値の最小値を示す。InputMaxは、信号入力の場合の設定値の最大値を示す。Outputは、信号出力による終了条件成立待ちの場合の終了条件となる信号出力値を示す。検証項目との比較結果は、検証項目表(2)132との比較を行った場合の結果を一致または不一致で示す。
図8の例では、レコード131−1は、アクセス対象項目「RegA」がテストパターン(1)121で最初にアクセスされ、0x0〜0xFFFFまでの値が書き込まれることを示す。
(検証支援装置101の機能的構成例)
次に、図2に示した検証支援装置101の機能的構成例について説明する。図9は、実施の形態にかかる検証支援装置101の機能的構成例を示すブロック図である。図9において、検証支援装置101は、項目変換部901と、テストパターン変換部902と、テストパターン基準の比較部903と、検証項目基準の比較部904とを含む。項目変換部901と、テストパターン変換部902と、テストパターン基準の比較部903と、検証項目基準の比較部904を含む制御部は、具体的には、例えば、図2に示したメモリ202などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、その機能を実現する。各制御部の処理結果は、例えば、図2に示したメモリ202などの記憶装置に記憶される。
項目変換部901は、検証項目表(1)122を取得して、取得した検証項目表(1)122から検証項目表(2)132を抽出する機能を有する。項目変換部901は、検証項目表(1)122の「カバレッジカウント条件」を検索し、検索した行の次の文字列を変換ルールに従って変換し、検証項目表(2)132に反映する。
例えば、変換ルールは、アクセス順を2にして、検証項目表(1)122の「カバレッジカウント条件」に記載されている文字列の先頭から“に”までの間の文字列を“アクセス対象項目”とし、“に”から次の“を”までの間の数字を「Range Min/Max」に反映する。また、変換ルールは、“を”から次の“アクセス”までの間の決められ
た文字列(Read/Write/Input/Output)をR/W/I/Oに反映する。例えば、変換ルールは、文字列Read、Write、Input、Outputに対して、それぞれ「R」、「W」、「I」、「O」をR/W/I/Oに反映する。
項目変換部901は、検証項目表(1)122から「表の見方」を検索し、次の行の文字列を取得し、アクセス対象項目として記憶する。例えば、項目変換部901は、「表の見方」を検出した位置の同じ列の文字列を空白の行が検出されるまで取得する。項目変換部901は、それぞれをアクセス対象項目として、メモリ202などに記憶する。
項目変換部901は、検証項目表(1)122から「カバレッジ表」を検索し、次の行にあるセル単位の文字列と、記憶したアクセス対象項目が一致する場合、記憶したアクセス対象項目を、アクセス順を1にして、検証項目表(2)132に反映する。
項目変換部901は、検証項目表(1)122からアクセス対象項目の「Range Min/Max」に該当するデータを取得し、検証項目表(2)132に反映する。例えば、項目変換部901は、取得したアクセス対象項目の位置から下の行の同じ列の文字列を取得し、取得した文字列を数字に変換し、数値の最小値と最大値を取得する。項目変換部901は、取得した数値の最小値を検証項目表(2)132の「Range Min」に反映し、取得した数値の最大値を検証項目表(2)132の「Range Max」に反映する。
項目変換部901は、検証項目表(2)132に「R/W/I/O」を反映する。例えば、項目変換部901は、アクセス対象項目名が“Reg”で始まっていれば、「WorR」を反映する。また、項目変換部901は、アクセス対象項目名が“Sig”で始まっ
ていれば、「IorO」を反映する。
テストパターン変換部902は、テストパターン(1)121を取得して、取得したテストパターン(1)121からテストパターン(2)131を抽出する機能を有する。テストパターン変換部902は、テストパターン(1)121から1行取得し、アクセス順をテストパターン(2)131に反映する。例えば、テストパターン(1)121のソースコードは、上から下に処理していくため、テストパターン変換部902は、順番にアクセス順に番号を振る。
テストパターン変換部902は、取得した行のアクセス対象項目をテストパターン(2)131に反映する。例えば、アクセス対象項目がレジスタで、レジスタにWriteである場合、テストパターン変換部902は、取得した行の設定値をテストパターン(2)131のWriteMin、WriteMaxに反映する。また、テストパターン変換部902は、テストパターン(2)131のR/W/I/Oに「W」を反映する。アクセス対象項目がレジスタで、レジスタがReadである場合、テストパターン変換部902は、レジスタReadによる終了条件成立待ちの場合の終了条件となるレジスタRead値をテストパターン(2)131のReadに反映する。また、テストパターン変換部902は、テストパターン(2)131のR/W/I/Oに「R」を反映する。
例えば、アクセス対象項目が入出力端子で、入出力端子の信号入力である場合、テストパターン変換部902は、取得した行の設定値をテストパターン(2)131のInputMin、InputMaxに反映する。また、テストパターン変換部902は、テストパターン(2)131のR/W/I/Oに「I」を反映する。アクセス対象項目が入出力端子で、入出力端子から信号出力である場合、テストパターン変換部902は、信号出力による終了条件成立待ちの場合の終了条件となる信号出力値をテストパターン(2)131のOutputに反映する。また、テストパターン変換部902は、テストパターン(2)131のR/W/I/Oに「O」を反映する。
テストパターン基準の比較部903は、テストパターン(2)131を基準にして、検証項目表(2)132と比較する機能を有する。
テストパターン基準の比較部903は、検証項目表(2)132からアクセス順2のアクセス対象項目を取得する。
テストパターン基準の比較部903は、取得したアクセス順2のアクセス対象項目がテストパターン(2)131に存在し、アクセス対象項目のR/W/I/O、Rangeが一致する場合、テストパターン(2)131の検証項目との比較結果に一致を反映する。
テストパターン基準の比較部903は、取得したアクセス順2のアクセス対象項目がテストパターン(2)131に存在しない場合、テストパターン(2)131の検証項目との比較結果に不一致を反映する。
テストパターン基準の比較部903は、取得したアクセス順2のアクセス対象項目がテストパターン(2)131に存在し、アクセス対象項目のR/W/I/OまたはRangeが一致しない場合、テストパターン(2)131の検証項目との比較結果に不一致を反映する。
ここで、検証項目表(2)132のR/W/I/Oが「RorW」の場合、テストパターン基準の比較部903は、テストパターン(2)131のR/W/I/Oの「R」および「W」のどちらとも一致すると判断する。また、検証項目表(2)132のR/W/I/Oが「IorO」の場合、テストパターン基準の比較部903は、テストパターン(2)131のR/W/I/Oの「I」および「O」のどちらとも一致すると判断する。
また、テストパターン基準の比較部903は、Rangeが一致するか否かの判断の比較対象を、検証項目表(2)132の取得したアクセス対象項目のR/W/I/Oによって変える。検証項目表(2)132の取得したアクセス対象項目のR/W/I/Oが「W」の場合、テストパターン基準の比較部903は、テストパターン(2)131のアクセス対象項目の「Write」と比較する。MinとMaxの両方が一致する場合、テストパターン基準の比較部903は、Rangeが一致すると判断する。検証項目表(2)132の取得したアクセス対象項目のR/W/I/Oが「R」の場合、テストパターン基準の比較部903は、テストパターン(2)131のアクセス対象項目の「Read」と比較する。検証項目表(2)132の取得したアクセス対象項目がMin=Maxで、かつ、テストパターン(2)131のアクセス対象項目の「Read」の値と一致する場合、テストパターン基準の比較部903は、Rangeが一致すると判断する。
また、検証項目表(2)132の取得したアクセス対象項目のR/W/I/Oが「I」の場合、テストパターン基準の比較部903は、テストパターン(2)131のアクセス対象項目の「Input」と比較する。MinとMaxの両方が一致する場合、テストパターン基準の比較部903は、Rangeが一致すると判断する。検証項目表(2)132の取得したアクセス対象項目のR/W/I/Oが「O」の場合、テストパターン基準の比較部903は、テストパターン(2)131のアクセス対象項目の「Output」と比較する。検証項目表(2)132の取得したアクセス対象項目がMin=Maxで、かつ、テストパターン(2)131のアクセス対象項目の「Output」の値と一致する場合、テストパターン基準の比較部903は、Rangeが一致すると判断する。
テストパターン基準の比較部903は、テストパターン(2)131から、未比較のアクセス対象項目を取得する。ここで、未比較のアクセス対象項目とは、テストパターン(2)131の検証項目との比較結果に「一致」または「不一致」が反映されていないアクセス対象項目である。
テストパターン基準の比較部903は、取得した未比較のアクセス対象項目に対して、アクセス順2のアクセス対象項目と同様の処理を行い、テストパターン(2)131の検証項目との比較を行う。
検証項目基準の比較部904は、検証項目表(2)132を基準にして、テストパターン(2)131と比較する機能を有する。
検証項目基準の比較部904は、検証項目表(2)132からアクセス順2のアクセス対象項目を取得する。
検証項目基準の比較部904は、取得したアクセス順2のアクセス対象項目がテストパターン(2)131に存在し、アクセス対象項目のR/W/I/O、Rangeが一致する場合、検証項目表(2)132のテストパターンとの比較結果に一致を反映する。
検証項目基準の比較部904は、取得したアクセス順2のアクセス対象項目がテストパターン(2)131に存在しない場合、検証項目表(2)132のテストパターンとの比較結果に不一致を反映する。
検証項目基準の比較部904は、取得したアクセス順2のアクセス対象項目がテストパターン(2)131に存在し、アクセス対象項目のR/W/I/OまたはRangeが一致しない場合、検証項目表(2)132のテストパターンとの比較結果に不一致を反映する。
ここで、検証項目基準の比較部904のアクセス対象項目のR/W/I/OおよびRangeが一致するか否かの判断は、テストパターン基準の比較部903と同じようにして判断される。
検証項目基準の比較部904は、検証項目表(2)132からアクセス順1のアクセス対象項目を取得する。
検証項目基準の比較部904は、取得したアクセス順1のアクセス対象項目がテストパターン(2)131に存在し、アクセス対象項目のR/W/I/O、Rangeが一致する場合、検証項目表(2)132のテストパターンとの比較結果に一致を反映する。
検証項目基準の比較部904は、取得したアクセス順1のアクセス対象項目がテストパターン(2)131に存在しない場合、検証項目表(2)132のテストパターンとの比較結果に不一致を反映する。
検証項目基準の比較部904は、取得したアクセス順1のアクセス対象項目がテストパターン(2)131に存在し、アクセス対象項目のR/W/I/OまたはRangeが一致しない場合、検証項目表(2)132のテストパターンとの比較結果に不一致を反映する。
ここで、検証項目基準の比較部904のアクセス対象項目のR/W/I/OおよびRangeが一致するか否かの判断は、テストパターン基準の比較部903と同じようにして判断される。
(項目変換処理手順の一例)
図10は、実施の形態にかかる検証支援装置101の項目変換処理手順の一例を示すフローチャートである。図10において、まず、検証支援装置101は、検証項目表(1)122から「カバレッジカウント条件」を検索する(ステップS1001)。検証支援装置101は、検索した行の次の行の文字列を変換ルールに従って変換し、アクセス対象項目のアクセス順を2にして、検証項目表(2)132に反映する(ステップS1002)。
検証支援装置101は、検証項目表(1)122から「表の見方」を検索する(ステップS1003)。検証支援装置101は、次の行の文字列を取得し、アクセス対象項目として記憶する(ステップS1004)。検証支援装置101は、「表の見方」を検出した位置の同じ列の文字列を空白の行が検出されるまで取得し、アクセス対象項目として記憶する。
検証支援装置101は、検証項目表(1)122から「カバレッジ表」を検索する(ステップS1005)。検証支援装置101は、次の行にあるセル単位の文字列が、記憶したアクセス対象項目と一致するか否かを判断する(ステップS1006)。記憶したアクセス対象項目と一致しない場合(ステップS1006:No)、検証項目表(1)122に誤りがあるため、検証支援装置101の処理は終了する。
記憶したアクセス対象項目と一致する場合(ステップS1006:Yes)、検証支援装置101は、記憶したアクセス対象項目のアクセス順を1にして、検証項目表(2)132に反映する(ステップS1007)。検証支援装置101は、検証項目表(1)122からアクセス対象項目の「Range Min/Max」に該当するデータを取得し、検証項目表(2)132に反映する(ステップS1008)。検証支援装置101は、検証項目表(2)132に「R/W/I/O」を反映する(ステップS1009)。
検証支援装置101は、取得したアクセス対象項目のすべてに対して反映が終了したか否かを判断する(ステップS1010)。反映が終了しない場合(ステップS1010:No)、検証支援装置101の処理は、ステップS1008に戻り、反映が終了していないアクセス対象項目に対して反映を行う。反映が終了した場合(ステップS1010:Yes)、項目変換が終了したため、検証支援装置101の処理は終了する。
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、検証項目表(1)122のアクセス対象項目が検証項目表(2)132のアクセス対象項目に反映される。
(パターン変換処理手順の一例)
図11は、実施の形態にかかる検証支援装置101のパターン変換処理手順の一例を示すフローチャートである。図11において、まず、検証支援装置101は、テストパターン(1)121から1行取得する(ステップS1101)。検証支援装置101は、アクセス順をテストパターン(2)131に反映する(ステップS1102)。
検証支援装置101は、取得した行のアクセス対象項目をテストパターン(2)131に反映する(ステップS1103)。検証支援装置101は、アクセス対象項目として、レジスタ名、入出力端子を反映する。検証支援装置101は、アクセス対象項目がレジスタか否かを判断する(ステップS1104)。アクセス対象項目がレジスタである場合(ステップS1104:Yes)、検証支援装置101は、取得した行がレジスタにWriteか否かを判断する(ステップS1105)。
取得した行がレジスタにWriteである場合(ステップS1105:Yes)、検証支援装置101は、取得した行の設定値をテストパターン(2)131のWriteMin、WriteMaxに反映する(ステップS1106)。また、検証支援装置101は、R/W/I/Oに「W」を反映する。取得した行がレジスタにWriteでない場合(ステップS1105:No)、検証支援装置101は、レジスタReadによる終了条件成立待ちの場合の終了条件となるレジスタRead値をテストパターン(2)131のReadに反映する(ステップS1107)。また、検証支援装置101は、R/W/I/Oに「R」を反映する。この後、検証支援装置101の処理は、ステップS1111に進む。
アクセス対象項目がレジスタでない場合(ステップS1104:No)、検証支援装置101は、取得した行が信号入力か否かを判断する(ステップS1108)。取得した行が信号入力である場合(ステップS1108:Yes)、検証支援装置101は、取得した行の設定値をテストパターン(2)131のInputMin、InputMaxに反映する(ステップS1109)。また、検証支援装置101は、R/W/I/Oに「I」を反映する。取得した行が信号入力でない場合(ステップS1108:No)、検証支援装置101は、信号出力による終了条件成立待ちの場合の終了条件となる信号出力値をテストパターン(2)131のOutputに反映する(ステップS1110)。また、検証支援装置101は、R/W/I/Oに「O」を反映する。
検証支援装置101は、テストパターン(1)121のすべての行を処理したか否かを判断する(ステップS1111)。すべての行を処理しない場合(ステップS1111:No)、ステップS1101に戻り、処理が終了していない行に対して処理を行う。すべての行を処理した場合(ステップS1111:Yes)、検証支援装置101の処理は終了する。
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、テストパターン(1)121のアクセス対象項目がテストパターン(2)131のアクセス対象項目に反映される。
(検証項目基準のアクセス対象項目比較処理手順の一例)
図12は、実施の形態にかかる検証支援装置101の検証項目基準のアクセス対象項目比較処理手順の一例を示すフローチャートである。図12において、まず、検証支援装置101は、検証項目表(2)132からアクセス順2のアクセス対象項目を取得する(ステップS1201)。検証支援装置101は、取得したアクセス順2のアクセス対象項目がテストパターン(2)131に含まれているか否かを判断する(ステップS1202)。
テストパターン(2)131に含まれている場合(ステップS1202:Yes)、検証支援装置101は、検証項目表(2)132とテストパターン(2)131でアクセス対象項目のR/W/I/O、Rangeが一致するか否かを判断する(ステップS1203)。例えば、検証支援装置101は、検証項目表(2)132の取得したアクセス順2のアクセス対象項目のR/W/I/Oとテストパターン(2)131のアクセス対象項目のR/W/I/Oが一致するか否かを判断する。一致した場合、検証支援装置101は、検証項目表(2)132の取得したアクセス順2のアクセス対象項目のRangeとテストパターン(2)131のアクセス対象項目のRangeが一致するか否かを判断する。
アクセス対象項目のR/W/I/O、Rangeが一致する場合(ステップS1203:Yes)、検証支援装置101は、検証項目表(2)132の取得したアクセス対象項目の項目に「一致」を設定する(ステップS1204)。この後、検証支援装置101は、未取得のアクセス順2のアクセス対象項目が、検証項目表(2)132にあるか否かを判断する(ステップS1206)。未取得のアクセス順2のアクセス対象項目が、検証項目表(2)132にある場合(ステップS1206:Yes)、検証支援装置101の処理は、ステップS1201に戻る。
ここで、テストパターン(2)131に含まれていない場合(ステップS1202:No)およびアクセス対象項目のR/W/I/O、Rangeが一致しない場合(ステップS1203:No)、検証支援装置101は、検証項目表(2)132のすべてのアクセス対象項目の項目に「不一致」を設定する(ステップS1205)。この後、検証支援装置101の処理は終了する。
未取得のアクセス順2のアクセス対象項目が、検証項目表(2)132にない場合(ステップS1206:No)、検証支援装置101は、検証項目表(2)132からアクセス順1のアクセス対象項目を取得する(ステップS1207)。検証支援装置101は、取得したアクセス順1のアクセス対象項目がテストパターン(2)131に含まれているか否かを判断する(ステップS1208)。
テストパターン(2)131に含まれている場合(ステップS1208:Yes)、検証支援装置101は、検証項目表(2)132とテストパターン(2)131でアクセス対象項目のR/W/I/O、Rangeが一致するか否かを判断する(ステップS1209)。例えば、検証支援装置101は、検証項目表(2)132の取得したアクセス順1のアクセス対象項目のR/W/I/Oとテストパターン(2)131のアクセス対象項目のR/W/I/Oが一致するか否かを判断する。一致した場合、検証支援装置101は、検証項目表(2)132の取得したアクセス順1のアクセス対象項目のRangeとテストパターン(2)131のアクセス対象項目のRangeが一致するか否かを判断する。
ここで、テストパターン(2)131に含まれていない場合(ステップS1208:No)およびアクセス対象項目のR/W/I/O、Rangeが一致しない場合(ステップS1209:No)、検証支援装置101は、検証項目表(2)132の取得したアクセス対象項目の項目に「不一致」を設定する(ステップS1211)。この後、検証支援装置101の処理は、ステップS1212に移行する。
アクセス対象項目のR/W/I/O、Rangeが一致する場合(ステップS1209:Yes)、検証支援装置101は、検証項目表(2)132の取得したアクセス対象項目の項目に「一致」を設定する(ステップS1210)。この後、検証支援装置101は、未取得のアクセス順1のアクセス対象項目が、検証項目表(2)132にあるか否かを判断する(ステップS1212)。未取得のアクセス順1のアクセス対象項目が、検証項目表(2)132にある場合(ステップS1212:Yes)、検証支援装置101の処理は、ステップS1207に戻る。未取得のアクセス順1のアクセス対象項目が、検証項目表(2)132にない場合(ステップS1212:No)、検証支援装置101の処理は、終了する。
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、検証項目表(2)132に基づいてテストパターン(2)131が比較され、検証項目表(2)132のアクセス対象項目の項目が、テストパターン(2)131のアクセス対象項目の項目と一致するか否かが判定される。
(テストパターンのアクセス対象項目比較処理手順の一例)
図13は、実施の形態にかかる検証支援装置101のテストパターン基準のアクセス対象項目比較処理手順の一例を示すフローチャートである。図13において、まず、検証支援装置101は、検証項目表(2)132からアクセス順2のアクセス対象項目を取得する(ステップS1301)。検証支援装置101は、取得したアクセス順2のアクセス対象項目がテストパターン(2)131に含まれているか否かを判断する(ステップS1302)。
テストパターン(2)131に含まれている場合(ステップS1302:Yes)、検証支援装置101は、検証項目表(2)132とテストパターン(2)131でアクセス対象項目のR/W/I/O、Rangeが一致するか否かを判断する(ステップS1303)。例えば、検証支援装置101は、検証項目表(2)132の取得したアクセス順2のアクセス対象項目のR/W/I/Oとテストパターン(2)131のアクセス対象項目のR/W/I/Oが一致するか否かを判断する。一致した場合、検証支援装置101は、検証項目表(2)132の取得したアクセス順2のアクセス対象項目のRangeとテストパターン(2)131のアクセス対象項目のRangeが一致するか否かを判断する。
アクセス対象項目のR/W/I/O、Rangeが一致する場合(ステップS1303:Yes)、検証支援装置101は、テストパターン(2)131の取得したアクセス対象項目の項目に「一致」を設定する(ステップS1304)。この後、検証支援装置101は、未取得のアクセス順2のアクセス対象項目が、検証項目表(2)132にあるか否かを判断する(ステップS1306)。未取得のアクセス順2のアクセス対象項目が、検証項目表(2)132にある場合(ステップS1306:Yes)、検証支援装置101の処理は、ステップS1301に戻る。
ここで、テストパターン(2)131に含まれていない場合(ステップS1302:No)およびアクセス対象項目のR/W/I/O、Rangeが一致しない場合(ステップS1303:No)、検証支援装置101は、テストパターン(2)131のすべてのアクセス対象項目の項目に「不一致」を設定する(ステップS1305)。この後、検証支援装置101の処理は終了する。
未取得のアクセス順2のアクセス対象項目が、検証項目表(2)132にない場合(ステップS1306:No)、検証支援装置101は、テストパターン(2)131から、未比較のアクセス対象項目を取得する(ステップS1307)。検証支援装置101は、取得したアクセス対象項目が検証項目表(2)132に含まれているか否かを判断する(ステップS1308)。
検証項目表(2)132に含まれている場合(ステップS1308:Yes)、検証支援装置101は、検証項目表(2)132とテストパターン(2)131でアクセス対象項目のR/W/I/O、Rangeが一致するか否かを判断する(ステップS1309)。例えば、検証支援装置101は、テストパターン(2)131の取得したアクセス対象項目のR/W/I/Oと検証項目表(2)132のアクセス対象項目のR/W/I/Oが一致するか否かを判断する。一致した場合、検証支援装置101は、テストパターン(2)131の取得したアクセス対象項目のRangeと検証項目表(2)132のアクセス対象項目のRangeが一致するか否かを判断する。
ここで、検証項目表(2)132に含まれていない場合(ステップS1308:No)およびアクセス対象項目のR/W/I/O、Rangeが一致しない場合(ステップS1309:No)、検証支援装置101は、テストパターン(2)131の取得したアクセス対象項目の項目に「不一致」を設定する(ステップS1311)。この後、検証支援装置101の処理は、ステップS1312に移行する。
アクセス対象項目のR/W/I/O、Rangeが一致する場合(ステップS1309:Yes)、検証支援装置101は、テストパターン(2)131の取得したアクセス対象項目の項目に「一致」を設定する(ステップS1310)。この後、検証支援装置101は、未比較のアクセス対象項目が、テストパターン(2)131にあるか否かを判断する(ステップS1312)。未比較のアクセス対象項目が、テストパターン(2)131にある場合(ステップS1312:Yes)、検証支援装置101の処理は、ステップS1307に戻る。未比較のアクセス対象項目が、テストパターン(2)131にない場合(ステップS1312:No)、検証支援装置101の処理は、終了する。
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、テストパターン(2)131に基づいて検証項目表(2)132が比較され、テストパターン(2)131のアクセス対象項目の項目が、検証項目表(2)132のアクセス対象項目の項目と一致するか否かが判定される。
(項目変換処理手順の一実施例)
図14、図15および図16は、実施の形態にかかる検証支援装置101の項目変換処理手順の一実施例を示す説明図である。ここで、符号1401、1403、1501は、それぞれ検証項目表(1)122の一部であり、符号1402、1404、1502、1601は、それぞれ検証項目表(2)132の一部である。
図14(A)において、検証支援装置101は、検証項目表(1)1401から「カバレッジカウント条件」を検索する(ステップS1001)。検証支援装置101は、検索した行の次の行の文字列「RegDに1をWriteアクセスしたときにカウント」を変換ルールに従って変換し、検証項目表(2)1402に反映する(ステップS1002)。例えば、検証支援装置101は、アクセス順を2にして、文字列の先頭から“に”までのRegDを“アクセス対象項目”とし、次の“に”から“を”までの数字「1」を「Range Min/Max」に反映する。また、検証支援装置101は、次の“を”から“アクセス”までの決められた文字列(Write)を「W」とする。
図14(B)において、検証支援装置101は、検証項目表(1)1403から「表の見方」というキーワードを検索する(ステップS1003)。検証支援装置101は、次の行の文字列を取得し、「RegA、RegB、RegC、RegD」をアクセス対象項目として記憶する(ステップS1004)。検証支援装置101は、検証項目表(1)1403から「カバレッジ表」というキーワードを検索する(ステップS1005)。検証支援装置101は、次の行にあるセル単位の文字列「RegA、RegB、RegC、RegD」が、記憶したアクセス対象項目と一致するため、記憶したアクセス対象項目を、アクセス順を1にして、検証項目表(2)1404に反映する(ステップS1007)。
図15(C)において、検証支援装置101は、取得したRegAの位置から下の行の同じ列の文字列「0x0」〜「0xFFFF」を検証項目表(1)1501から取得し、取得した文字列を数字に変換し、数値の最小値「0x0」と最大値「0xFFFF」を取得する。検証支援装置101は、取得した数値の最小値「0x0」を検証項目表(2)1502の「Range Min」に反映し、取得した数値の最大値「0xFFFF」を検証項目表(2)1502の「Range Max」に反映する。
図16(D)において、検証支援装置101は、RegB、RegCおよびRegDの位置から下の行の同じ列の文字列を取得し、取得した文字列を数字に変換し、数値の最小値と最大値を取得する。検証支援装置101は、取得した数値の最小値を検証項目表(2)1601の「Range Min」に反映し、取得した数値の最大値を検証項目表(2)1601の「Range Max」に反映する。また、検証支援装置101は、アクセス対象項目がレジスタであるため、R/W/I/Oに「WorR」を反映する(ステップS1009)。
このように、検証項目表(1)122のアクセス対象項目が検証項目表(2)132のアクセス対象項目に反映される。
(パターン変換処理手順の一実施例)
図17は、実施の形態にかかる検証支援装置101のパターン変換処理手順の一実施例を示す説明図である。ここで、符号1701は、テストパターン(1)121の一部であり、符号1702は、テストパターン(2)131の一部である。
図17において、検証支援装置101は、テストパターン(1)1701から「reg_access_write(RegA,0x0,0xFFFF);」を取得する(ステップS1101)。検証支援装置101は、アクセス順1で取得した行のアクセス対象項目「RegA」をテストパターン(2)1702に反映する(ステップS1103)。アクセス対象項目がレジスタであり、Writeであるため、検証支援装置101は、取得した行の設定値「0x0」、「0xFFFF」をテストパターン(2)1702のWriteMin、WriteMaxに反映する(ステップS1106)。また、検証支援装置101は、R/W/I/Oに「W」を反映する。検証支援装置101は、次の行も同様の処理を行う。
このように、テストパターン(1)121のアクセス対象項目がテストパターン(2)131のアクセス対象項目に反映される。
(検証項目基準のアクセス対象項目比較処理手順の一実施例)
図18および図19は、実施の形態にかかる検証支援装置101の検証項目基準のアクセス対象項目比較処理手順の一実施例を示す説明図である。ここで、符号1801、1901は、テストパターン(2)131の一部であり、符号1802、1803、1902、1903は、検証項目表(2)132の一部である。
図18において、検証支援装置101は、検証項目表(2)1802からアクセス順2のアクセス対象項目を取得する(ステップS1201)。検証支援装置101は、取得したアクセス順2のアクセス対象項目がテストパターン(2)1801に含まれ、検証項目表(2)1802とテストパターン(2)1801でアクセス対象項目のR/W/I/O、Rangeが一致すると判断する。検証支援装置101は、検証項目表(2)1803の取得したアクセス対象項目の項目に「一致」を設定する(ステップS1204)。
図19において、検証支援装置101は、未取得のアクセス順2のアクセス対象項目が、検証項目表(2)1902にないため、検証支援装置101は、検証項目表(2)1902からアクセス順1のRegAを取得する(ステップS1207)。検証支援装置101は、取得したRegAのアクセス対象項目がテストパターン(2)1901に含まれ、検証項目表(2)1902とテストパターン(2)1901でRegAのR/W/I/O、Rangeが一致すると判断する。検証支援装置101は、検証項目表(2)1903の取得したRegAの項目に「一致」を設定する(ステップS1210)。
図19において、検証支援装置101は、検証項目表(2)1902からアクセス順1のRegB、RegC、RegDを取得する(ステップS1207)。検証支援装置101は、取得したRegB、RegC、RegDがテストパターン(2)1901に含まれないため、検証項目表(2)1903の取得したRegB、RegC、RegDの項目に「不一致」を設定する(ステップS1211)。
このように、検証項目表(2)132に基づいてテストパターン(2)131が比較され、検証項目表(2)132のアクセス対象項目の項目が、テストパターン(2)131のアクセス対象項目の項目と一致するか否かが判定される。
(テストパターン基準のアクセス対象項目比較処理手順の一実施例)
図20および図21は、実施の形態にかかる検証支援装置101のテストパターン基準のアクセス対象項目比較処理手順の一実施例を示す説明図である。ここで、符号2001、2003、2101、2103は、テストパターン(2)131の一部であり、符号2002、2102は、検証項目表(2)132の一部である。
図20において、検証支援装置101は、検証項目表(2)2002からアクセス順2のRegDを取得する(ステップS1301)。検証支援装置101は、取得したアクセス順2のRegDがテストパターン(2)2001に含まれ、検証項目表(2)2002とテストパターン(2)2001でアクセス対象項目のR/W/I/O、Rangeが一致すると判断する。検証支援装置101は、テストパターン(2)2003の取得したアクセス対象項目の項目に「一致」を設定する(ステップS1304)。
図21において、未取得のアクセス順2のアクセス対象項目が、検証項目表(2)2102にないため、検証支援装置101は、テストパターン(2)2101から未比較のRegAを取得する(ステップS1307)。検証支援装置101は、取得したRegAのアクセス対象項目が検証項目表(2)2102に含まれ、検証項目表(2)2102とテストパターン(2)2101でRegAのR/W/I/O、Rangeが一致すると判断する。検証支援装置101は、テストパターン(2)2103の取得したRegAの項目に「一致」を設定する(ステップS1310)。
図21において、検証支援装置101は、同様にして、RegC、RegBの項目に「一致」を設定する(ステップS1310)。
図21において、検証支援装置101は、テストパターン(2)2101から未比較のRegZを取得する(ステップS1307)。検証支援装置101は、取得したRegZが検証項目表(2)2102に含まれないため、テストパターン(2)2103の取得したRegZの項目に「不一致」を設定する(ステップS1311)。
このように、テストパターン(2)131に基づいて検証項目表(2)132が比較され、テストパターン(2)131のアクセス対象項目の項目が、検証項目表(2)132のアクセス対象項目の項目と一致するか否かが判定される。
以上説明したように、検証支援装置101は、検証対象回路の設計仕様書112とユースケース111とに基づき作成された検証項目表(1)122から抽出したアクセス対象項目と当該アクセス対象項目のアクセス順とを示す検証項目表(2)132を作成する。また、検証支援装置101は、ユースケース111に基づき作成されたテストパターン(1)121から抽出したアクセス対象項目を示すテストパターン(2)131を作成する。検証支援装置101は、検証項目表(2)132が示すアクセス対象項目のうちの特定のアクセス順のアクセス対象項目が、テストパターン(2)131が示すアクセス対象項目に存在するか否かを判定する。
これにより、検証支援装置101は、検証項目表(1)122の検証範囲とテストパターン(1)121の検証範囲の不一致を検出することができる。特に、検証支援装置101は、特定のアクセス順のアクセス対象項目の不一致を検出することができる。これにより、検証支援装置101は、論理シミュレーションの際にカバレッジカウントがカウントアップされず、検証項目のカバレッジ100%が達成されないことを、論理シミュレーションを行う前に検出できる。また、「カバレッジカウント条件」は、検証における重要な条件である。そのため、「カバレッジカウント条件」に規定の特定のアクセス順のアクセス対象項目がテストパターン(1)121の検証範囲に存在しない場合、特定のアクセス順と異なるアクセス順のアクセス対象項目もテストパターン(1)121の検証範囲に存在しない場合がある。そのため、例えば、検証支援装置101が特定のアクセス順のアクセス対象項目の不一致を検出することで、特定のアクセス順のアクセス対象項目により起動される機能のために設定されるアクセス対象項目の不一致も検出できる場合がある。
この後、検証項目表(1)122の検証範囲とテストパターン(1)121の検証範囲の一致/不一致をディスプレイ(表示装置)208に表示し、一致/不一致をフィードバックすることにより、ユースケース111、テストパターン(1)121、設計仕様書112または検証項目表(1)122を修正することができる。これにより、検証項目表(1)122の検証範囲とテストパターン(1)121の検証範囲を一致させることができる。このため、検証支援装置101は、検証項目のカバレッジ100%を達成するまでの時間を短縮することできる。
また、特定のアクセス順のアクセス対象項目がテストパターン(2)131に存在することに応じて、検証支援装置101は、さらに判定を行うことができる。例えば、検証支援装置101は、検証項目表(2)132に存在するアクセス対象項目のうちの特定のアクセス順と異なるアクセス順のアクセス対象項目が、テストパターン(2)131に存在するか否かを判定することができる。
検証支援装置101は、例えば、特定のアクセス順と異なるアクセス順のアクセス対象項目をアクセス順1のアクセス対象項目にすることができる。この場合、検証支援装置101は、検証項目表(2)132のアクセス順1のアクセス対象項目がテストパターン(2)131に存在するか否かを判定する。
これにより、検証支援装置101は、検証項目表(1)122に存在するが、テストパターン(1)121に存在しないアクセス対象項目を判定することができる。この後、検証項目表(1)122の検証範囲からテストパターン(1)121の検証範囲の差分を取ることで、テストパターン(1)121の検証範囲の不足を明確にすることができる。
また、検証支援装置101は、特定のアクセス順のアクセス対象項目がテストパターン(2)131に存在することに応じて、検証支援装置101はさらに判定を行うことができる。例えば、検証支援装置101は、テストパターン(2)131に存在するアクセス対象項目のうちの特定のアクセス順のアクセス対象項目と異なるアクセス対象項目が、検証項目表(2)132に存在するか否かを判定することができる。
検証支援装置101は、例えば、特定のアクセス順のアクセス対象項目と異なるアクセス対象項目をアクセス順2のアクセス対象項目と異なるアクセス対象項目にすることができる。この場合、検証支援装置101は、テストパターン(2)131に存在するアクセス対象項目のうちのアクセス順2のアクセス対象項目と異なるアクセス対象項目が、検証項目表(2)132に存在するか否かを判定する。
これにより、検証支援装置101は、テストパターン(1)121に存在するが、検証項目表(1)122に存在しないアクセス対象項目を判定することができる。この後、テストパターン(1)121の検証範囲から検証項目表(1)122の検証範囲の差分を取ることで、検証項目表(1)122の検証範囲の不足を明確にすることができる。
ここで、フィードバックを行うことにより、検証項目表(1)122の検証範囲とテストパターン(1)121の検証範囲との差分を少なくすることができる。検証支援装置101による判定と、フィードバックを続けていくことで、検証項目表(1)122の検証範囲とテストパターン(1)121の検証範囲を一致させることが可能になる。このため、検証支援装置101は、検証項目のカバレッジ100%を達成するまでの時間を短縮することできる。
また、特定のアクセス順のアクセス対象項目がテストパターン(2)131に存在することに応じて、検証支援装置101は、さらに判定を行うことができる。例えば、検証支援装置101は、検証項目表(2)132に存在する特定のアクセス順のアクセス対象項目のアクセス種類とアクセス範囲とが、テストパターン(2)131に存在するアクセス対象項目のアクセス種類とアクセス範囲と一致するか否かを判定することができる。
また、検証項目表(2)132に存在するアクセス対象項目のうちの特定のアクセス順と異なるアクセス順のアクセス対象項目が、テストパターン(2)131に存在することに応じて、検証支援装置101は、さらに判定を行うことができる。例えば、検証支援装置101は、検証項目表(2)132の特定のアクセス順と異なるアクセス順のアクセス対象項目のアクセス種類とアクセス範囲とが、テストパターン(2)131のアクセス対象項目のアクセス種類とアクセス範囲と一致するか否かを判定できる。
また、テストパターン(2)131に存在するアクセス対象項目のうちの特定のアクセス順のアクセス対象項目と異なるアクセス対象項目が、検証項目表(2)132に存在することに応じて、検証支援装置101は、さらに判定を行うことができる。例えば、検証支援装置101は、テストパターン(2)131のアクセス順のアクセス対象項目と異なるアクセス対象項目のアクセス種類とアクセス範囲とが、検証項目表(2)132のアクセス対象項目のアクセス種類とアクセス範囲と一致するか否かを判定できる。
これにより、検証支援装置101は、アクセス対象項目のアクセス種類とアクセス範囲を考慮して、検証項目表(1)122の検証範囲とテストパターン(1)121の検証範囲の不一致を検出することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)検証対象回路の設計仕様書と前記検証対象回路の機能に関連するシナリオを示すユースケースとに基づき作成された検証項目表から抽出した前記検証対象回路のレジスタまたは入出力端子を含む複数の第1のアクセス対象項目と前記複数の第1のアクセス対象項目のアクセス順とを有する第1アクセス対象情報を作成し、
前記ユースケースに基づき作成されたテストパターンから抽出した複数の第2のアクセス対象項目を有する第2アクセス対象情報を作成し、
前記複数の第1のアクセス対象項目のうちの特定のアクセス順のアクセス対象項目が、前記第2アクセス対象情報に存在するか否かを判定する、
制御部を有することを特徴とする検証支援装置。
(付記2)前記制御部は、
前記特定のアクセス順のアクセス対象項目が前記第2アクセス対象情報に存在すると判定したことに応じて、前記複数の第1のアクセス対象項目のうちの前記特定のアクセス順と異なるアクセス順のアクセス対象項目が、前記第2アクセス対象情報に存在するか否かを判定することを特徴とする付記1に記載の検証支援装置。
(付記3)前記制御部は、
前記特定のアクセス順のアクセス対象項目が前記第2アクセス対象情報に存在すると判定したことに応じて、前記複数の第2のアクセス対象項目のうちの前記特定のアクセス順のアクセス対象項目と異なるアクセス対象項目が、前記第1アクセス対象情報に存在するか否かを判定することを特徴とする付記1に記載の検証支援装置。
(付記4)前記制御部は、
前記複数の第1のアクセス対象項目と、前記複数の第1のアクセス対象項目のアクセス順、アクセス種類およびアクセス範囲と、を有する前記第1アクセス対象情報を作成し、
前記複数の第2のアクセス対象項目と、前記複数の第2のアクセス対象項目のアクセス種類およびアクセス範囲と、を有する前記第2アクセス対象情報を作成し、
前記特定のアクセス順のアクセス対象項目が前記第2アクセス対象情報に存在すると判定したことに応じて、前記第1アクセス対象情報に存在する前記特定のアクセス順のアクセス対象項目のアクセス種類とアクセス範囲とが、前記第2アクセス対象情報に存在する前記特定のアクセス順のアクセス対象項目のアクセス種類とアクセス範囲と一致するか否かを判定する、
ことを特徴とする付記1に記載の検証支援装置。
(付記5)前記制御部は、
前記特定のアクセス順のアクセス対象項目が前記第2アクセス対象情報に存在すると判定し、前記第1アクセス対象情報に存在する前記特定のアクセス順のアクセス対象項目のアクセス種類とアクセス範囲とが、前記第2アクセス対象情報に存在する前記特定のアクセス順のアクセス対象項目のアクセス種類とアクセス範囲と一致すると判定し、かつ、前記第1アクセス対象情報に存在するアクセス対象項目のうちの前記特定のアクセス順と異なるアクセス順のアクセス対象項目が、前記第2アクセス対象情報に存在すると判定したことに応じて、前記第1アクセス対象情報に存在する前記特定のアクセス順と異なるアクセス順のアクセス対象項目のアクセス種類とアクセス範囲とが、前記第2アクセス対象情報に存在する前記特定のアクセス順と異なるアクセス順のアクセス対象項目のアクセス種類とアクセス範囲と一致するか否かを判定する、
ことを特徴とする付記4に記載の検証支援装置。
(付記6)前記制御部は、
前記特定のアクセス順のアクセス対象項目が前記第2アクセス対象情報に存在すると判定し、前記第1アクセス対象情報に存在する前記特定のアクセス順のアクセス対象項目のアクセス種類とアクセス範囲とが、前記第2アクセス対象情報に存在する前記特定のアクセス順のアクセス対象項目のアクセス種類とアクセス範囲と一致すると判定し、かつ、前記第2アクセス対象情報に存在するアクセス対象項目のうちの前記特定のアクセス順のアクセス対象項目と異なるアクセス対象項目が、前記第1アクセス対象情報に存在すると判定したことに応じて、前記第2アクセス対象情報に存在する前記特定のアクセス順のアクセス対象項目と異なるアクセス対象項目のアクセス種類とアクセス範囲とが、前記第1アクセス対象情報に存在する前記特定のアクセス順のアクセス対象項目と異なるアクセス対象項目のアクセス種類とアクセス範囲と一致するか否かを判定する、
ことを特徴とする付記4に記載の検証支援装置。
(付記7)前記検証対象回路の処理を起動する条件に基づいて、前記アクセス対象項目のアクセス順を決定することを特徴とする付記1〜6のいずれか一つに記載の検証支援装置。
(付記8)前記制御部により、前記第1アクセス対象情報に存在する前記特定のアクセス順のアクセス対象項目のアクセス種類とアクセス範囲と、前記第2アクセス対象情報に存在する前記特定のアクセス順のアクセス対象項目のアクセス種類とアクセス範囲との一致/不一致を表示装置に表示する表示制御部を有することを特徴とする付記4に記載の検証支援装置。
(付記9)コンピュータが、
検証対象回路の設計仕様書と前記検証対象回路の機能に関連するシナリオを示すユースケースとに基づき作成された検証項目表から抽出した前記検証対象回路のレジスタまたは入出力端子を含む複数の第1のアクセス対象項目と前記複数の第1のアクセス対象項目のアクセス順とを有する第1アクセス対象情報を作成し、
前記ユースケースに基づき作成されたテストパターンから抽出した複数の第2のアクセス対象項目を有する第2アクセス対象情報を作成し、
前記複数の第1のアクセス対象項目のうちの特定のアクセス順のアクセス対象項目が、前記第2アクセス対象情報に存在するか否かを判定する、
処理を実行することを特徴とする検証支援方法。
(付記10)コンピュータに、
検証対象回路の設計仕様書と前記検証対象回路の機能に関連するシナリオを示すユースケースとに基づき作成された検証項目表から抽出した前記検証対象回路のレジスタまたは入出力端子を含む複数の第1のアクセス対象項目と前記複数の第1のアクセス対象項目のアクセス順とを有する第1アクセス対象情報を作成し、
前記ユースケースに基づき作成されたテストパターンから抽出した複数の第2のアクセス対象項目を有する第2アクセス対象情報を作成し、
前記複数の第1のアクセス対象項目のうちの特定のアクセス順のアクセス対象項目が、前記第2アクセス対象情報に存在するか否かを判定する、
処理を実行させることを特徴とする検証支援プログラム。
(付記11)コンピュータに、
検証対象回路の設計仕様書と前記検証対象回路の機能に関連するシナリオを示すユースケースとに基づき作成された検証項目表から抽出した前記検証対象回路のレジスタまたは入出力端子を含む複数の第1のアクセス対象項目と前記複数の第1のアクセス対象項目のアクセス順とを有する第1アクセス対象情報を作成し、
前記ユースケースに基づき作成されたテストパターンから抽出した複数の第2のアクセス対象項目を有する第2アクセス対象情報を作成し、
前記複数の第1のアクセス対象項目のうちの特定のアクセス順のアクセス対象項目が、前記第2アクセス対象情報に存在するか否かを判定する、
処理を実行させる検証支援プログラムを記録したことを特徴とする前記コンピュータに読み取り可能な記録媒体。