IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三菱電機エンジニアリング株式会社の特許一覧

特開2024-165608テストシナリオ生成装置、検証仕様書生成装置、プログラム、および、検証装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024165608
(43)【公開日】2024-11-28
(54)【発明の名称】テストシナリオ生成装置、検証仕様書生成装置、プログラム、および、検証装置
(51)【国際特許分類】
   G06F 30/3308 20200101AFI20241121BHJP
   G01R 31/3183 20060101ALI20241121BHJP
   G01R 31/28 20060101ALI20241121BHJP
【FI】
G06F30/3308
G01R31/3183
G01R31/28 Q
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023081940
(22)【出願日】2023-05-18
(71)【出願人】
【識別番号】591036457
【氏名又は名称】三菱電機エンジニアリング株式会社
(74)【代理人】
【識別番号】110003166
【氏名又は名称】弁理士法人山王内外特許事務所
(72)【発明者】
【氏名】小笠原 和弥
(72)【発明者】
【氏名】原武 浩二
(72)【発明者】
【氏名】森下 有規
(72)【発明者】
【氏名】井戸 大介
(72)【発明者】
【氏名】森 裕美
【テーマコード(参考)】
2G132
5B146
【Fターム(参考)】
2G132AA01
2G132AB02
2G132AG15
2G132AL07
5B146AA22
5B146DL08
5B146GJ05
5B146GN04
(57)【要約】      (修正有)
【課題】論理設計検証の効率を向上させるテストシナリオ生成装置等を提供する。
【解決手段】テストシナリオ生成装置は、識別用記号で区切られた検証仕様文字列を含む、半導体集積回路の論理設計検証における処理毎の検証仕様文が記述された検証仕様書データを取得する検証仕様取得部と、識別用記号と検証仕様文字列の使用に係る使用条件とを対応付ける情報及び検証仕様文字列と論理設計検証における処理の種類とを対応付ける情報を含む条件情報を取得する条件取得部と、検証仕様書データ及び条件情報を用いて、処理毎に検証仕様文字列、使用条件及び処理の種類を含む検証仕様情報を出力する構成要素抽出部と、該情報を用いて、検証仕様文字列とテストシナリオ用文字列とを予め記憶しているDBを参照し、使用条件及び処理の種類に応じて生成された、検証仕様文字列に対応するテストシナリオ用文字列を含むシナリオを出力するテストシナリオ出力部と、を備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
半導体集積回路の論理設計検証における処理ごとの検証仕様文であって、識別用記号により区切られた検証仕様文字列を含む前記検証仕様文、が記述された検証仕様書データを取得する検証仕様受付部と、
前記識別用記号と前記検証仕様文字列の使用に係る使用条件とを対応付ける情報、および、前記検証仕様文字列と前記論理設計検証における処理の種類とを対応付ける情報、を含む条件情報を取得する条件取得部と、
前記検証仕様書データおよび前記条件情報を用いて、前記処理ごとに、前記検証仕様文字列、前記使用条件、および、前記処理の種類、を含む検証仕様情報を出力する構成要素抽出部と、
前記検証仕様情報を用いて、検証仕様文字列とテストシナリオ用文字列とを予め記憶しているデータベースを参照し、前記検証仕様文字列に対応する前記テストシナリオ用文字列を含むテストシナリオであって、前記使用条件および前記処理の種類に応じて生成された前記テストシナリオ、を出力するテストシナリオ出力部と、
を備えたテストシナリオ生成装置。
【請求項2】
前記テストシナリオ出力部は、
前記検証仕様情報を用いて、前記処理の種類を判定する処理判定部と、
前記処理判定部による判定結果である前記処理の種類に応じて、前記検証仕様情報を用いて、検証仕様文字列とテストシナリオ用文字列とを予め記憶している前記データベースを参照し、前記検証仕様文字列に対応する前記テストシナリオ用文字列を出力する、検索部と、
前記検証仕様情報および前記テストシナリオ用文字列を用いて、前記使用条件および前記処理の種類に応じたテストシナリオ用規則に従って前記処理ごとにテストシナリオ記述を生成し、当該テストシナリオ記述を含む前記テストシナリオを出力する、処理記述生成部と、
を備えることを特徴とする請求項1に記載のテストシナリオ生成装置。
【請求項3】
前記検証仕様書データを受け付けるための画像である検証仕様書受付用画像、および、前記条件情報を含む条件仕様書データを受け付けるための画像である条件受付用画像、を含む受付用画像を出力する受付用画像提示部をさらに備え、
前記検証仕様受付部は、前記検証仕様書受付用画像を介して前記検証仕様書データを取得し、
前記条件取得部は、前記条件受付用画像を介して取得した前記条件仕様書データを用いて前記条件情報を取得する、
ことを特徴とする請求項1に記載のテストシナリオ生成装置。
【請求項4】
前記検証仕様書データは、前記論理設計検証における処理ごとに、処理順を示す値、手順の処理に係る検証仕様文字列、および、期待値の処理に係る検証仕様文字列、を保持可能なデータ構造を有するデータであり、
前記テストシナリオ出力部は、
前記論理設計検証における処理ごとに、処理順を示す値、前記識別用記号により区切られた検証仕様文字列、および、前記論理設計検証における処理の種類、を含むコメント文と、前記コメント文に付加されたコメント識別記号とを含めて、前記テストシナリオを出力する、
ことを特徴とする請求項1から請求項3のうちのいずれか1項に記載のテストシナリオ生成装置。
【請求項5】
前記論理設計検証における処理ごとに、処理順を示す値、前記識別用記号により区切られた検証仕様文字列、および、前記論理設計検証における処理の種類、を含むコメント文と、前記コメント文に付加されたコメント識別記号とを含むテストシナリオを取得する、テストシナリオ受付部と、
前記論理設計検証における処理の種類と検証仕様書データにおいて検証仕様文を記述するべき領域とを対応付ける情報、を含む第2条件情報を取得する第2条件取得部と、
前記テストシナリオ受付部により取得された前記テストシナリオから、前記コメント識別記号に識別されるコメント文を、前記論理設計検証における処理ごとの検証仕様文として出力する検証仕様文出力部と、
前記検証仕様文出力部により出力された検証仕様文を、前記第2条件取得部により取得された前記第2条件情報に示される前記領域に記述した検証仕様書データを出力する、検証仕様書出力部と、
をさらに備えた、
ことを特徴とする請求項4に記載のテストシナリオ生成装置。
【請求項6】
半導体集積回路の論理設計検証における処理ごとに、処理順を示す値、識別用記号により区切られた検証仕様文字列、および、前記論理設計検証における処理の種類、を含むコメント文と、前記コメント文に付加されたコメント識別記号とを含むテストシナリオを取得する、テストシナリオ受付部と、
前記論理設計検証における処理の種類と検証仕様書データにおいて検証仕様文を記述するべき領域とを対応付ける情報、を含む第2条件情報を取得する第2条件取得部と、
前記テストシナリオ受付部により取得された前記テストシナリオから、前記コメント識別記号に識別されるコメント文を、前記論理設計検証における処理ごとの検証仕様文として出力する検証仕様文出力部と、
前記検証仕様文出力部により出力された検証仕様文を、前記第2条件取得部により取得された前記第2条件情報に示される前記領域に記述した検証仕様書データを出力する、検証仕様書出力部と、
ことを特徴とする検証仕様書生成装置。
【請求項7】
コンピュータを、
半導体集積回路の論理設計検証における処理ごとの検証仕様文であって、識別用記号により区切られた検証仕様文字列を含む前記検証仕様文、が記述された検証仕様書データを取得する検証仕様受付部と、
前記識別用記号と前記検証仕様文字列の使用に係る使用条件とを対応付ける情報、および、前記検証仕様文字列と前記論理設計検証における処理の種類とを対応付ける情報、を含む条件情報を取得する条件取得部と、
前記検証仕様書データおよび前記条件情報を用いて、前記処理ごとに、前記検証仕様文字列、前記使用条件、および、前記処理の種類、を含む検証仕様情報を出力する構成要素抽出部と、
前記検証仕様情報を用いて、前記検証仕様文字列とテストシナリオ用文字列とを予め記憶しているデータベースを参照し、前記検証仕様文字列に対応する前記テストシナリオ用文字列を含むテストシナリオであって、前記使用条件および前記処理の種類に応じて生成された前記テストシナリオ、を出力するテストシナリオ出力部と、
を備えたテストシナリオ生成装置として動作させることを特徴とするプログラム。
【請求項8】
コンピュータを、
半導体集積回路の論理設計検証における処理ごとに、処理順を示す値、識別用記号により区切られた検証仕様文字列、および、前記論理設計検証における処理の種類、を含むコメント文と、前記コメント文に付加されたコメント識別記号とを含むテストシナリオを取得する、テストシナリオ受付部と、
前記コメント識別記号と検証仕様書データにおける記述するべき位置とを対応付ける情報、および、前記論理設計検証における処理の種類と検証仕様書データにおいて検証仕様文を記述するべき領域とを対応付ける情報、を含む第2条件情報を取得する、第2条件取得部と、
前記テストシナリオ受付部により取得された前記テストシナリオから、前記コメント識別記号に識別されるコメント文を、前記論理設計検証における処理ごとの検証仕様文として出力する検証仕様文出力部と、
前記検証仕様文出力部により出力された検証仕様文を、前記第2条件取得部により取得された前記第2条件情報に示される前記領域に記述した検証仕様書データを出力する、検証仕様書出力部と、
を備えた検証仕様書生成装置として動作させることを特徴とするプログラム。
【請求項9】
半導体集積回路の論理設計検証における処理ごとの検証仕様文であって、識別用記号により区切られた検証仕様文字列を含む前記検証仕様文、が記述された検証仕様書データを取得する検証仕様受付部と、
前記識別用記号と前記検証仕様文字列の使用に係る使用条件とを対応付ける情報、および、前記検証仕様文字列と前記論理設計検証における処理の種類とを対応付ける情報、を含む条件情報を取得する条件取得部と、
前記検証仕様書データおよび前記条件情報を用いて、前記処理ごとに、前記検証仕様文字列、前記使用条件、および、前記処理の種類、を含む検証仕様情報を出力する構成要素抽出部と、
前記検証仕様情報を用いて、前記検証仕様文字列とテストシナリオ用文字列とを予め記憶しているデータベースを参照し、前記検証仕様文字列に対応する前記テストシナリオ用文字列を含むテストシナリオであって、前記使用条件および前記処理の種類に応じて生成された前記テストシナリオ、を出力するテストシナリオ出力部と、
前記テストシナリオ出力部により出力された前記テストシナリオを用いて前記半導体集積回路の論理設計検証を実行して検証結果を出力する検証部と、
を備えたことを特徴とする検証装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示技術は、半導体集積回路を検証するためのテストシナリオを生成するテストシナリオ生成技術に関する。
【背景技術】
【0002】
半導体集積回路の開発段階においては、半導体集積回路(LSI)の論理設計データを検証する論理設計検証が行われる。論理設計データは、ハードウェア記述言語(HDL:Hardware Description Language)で記述されたHDLソースコードで表現され、論理設計検証は、HDLで記述されたテストシナリオを用いて実行される。
従来技術では、論理設計検証において、テスト実施者が受け取った検証仕様書における検証仕様に係る情報に基づいて、テスト実施者がHDLを用いてテストシナリオを記述して変換している。
【0003】
ところで、特許文献1には、電圧、電流、インピーダンス、出力負荷といった条件を用いた「半導体集積回路のテスト方法」が開示されている。
具体的には、特許文献1の「半導体集積回路のテスト方法」は、「動作形態毎にそのテスト手順が設定された複数のデータライブラリ」をデータベース化した「標準テストライブラリデータベース」(1)、「テスト対象とされる半導体集積回路の動作電圧や動作周波数などの動作仕様」を格納した「製品動作仕様データベース」(3)、および、「テスタ固有のプログラム言語を用いて記述され」た「プログラムモジュール」を格納した「テストシーケンスデータベース」(4)、といった構成を採用している。
テスト技術者は、半導体集積回路の設計者から指示されたテストライブラリおよびテストの個別条件(電圧、電流、インピーダンス、出力負荷といった条件)を用いて、標準テストライブラリデータベース(1)からテストライブラリを選択し、製品動作仕様データベース(3)からテストの個別条件に対応する電圧、電流、インピーダンス、出力負荷といった値を選択し、選択した情報に基づいてテストシーケンスデータベース(4)からプログラムモジュールを選択して用いることでテストプログラムに変換することができる。
特許文献1の「半導体集積回路のテスト方法」によれば、「半導体集積回路の設計者は、テスト仕様をテストライブラリとテストの個別条件の組合せによりテスト技術者に指示すればよい。テスト技術者はそのテスト仕様をテストプログラムに変換して、所要のテストプログラムを入手することができる。」
【先行技術文献】
【特許文献】
【0004】
【特許文献1】国際特許公報2004/023554号
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来技術では、論理設計検証において、検証仕様書からテストシナリオに変換する処理がテスト実施者といった人手により実行されているため、長時間を要する傾向があり効率がよくない、といった課題があった。
特許文献1に記載の半導体集積回路のテスト方法は、そもそも、電圧、電流、インピーダンス、出力負荷といった条件を用いたテスト方法であり、かつ、テスト技術者がテスト仕様に従ってデータベースから選択してテストプログラムに変換するものであって、上記論理設計検証に係る課題を解決できない。
【0006】
本開示は、上記課題を解決するもので、論理設計検証の効率を向上させることを可能にすることを目的とする。
【課題を解決するための手段】
【0007】
本開示のテストシナリオ生成装置は、
半導体集積回路の論理設計検証における処理ごとの検証仕様文であって、識別用記号により区切られた検証仕様文字列を含む前記検証仕様文、が記述された検証仕様書データを取得する検証仕様取得部と、
前記識別用記号と前記検証仕様文字列の使用に係る使用条件とを対応付ける情報、および、前記検証仕様文字列と前記論理設計検証における処理の種類とを対応付ける情報、を含む条件情報を取得する条件取得部と、
前記検証仕様書データおよび前記条件情報を用いて、前記処理ごとに、前記検証仕様文字列、前記使用条件、および、前記処理の種類、を含む検証仕様情報を出力する構成要素抽出部と、
前記検証仕様情報を用いて、検証仕様文字列とテストシナリオ用文字列とを予め記憶しているデータベースを参照し、前記検証仕様文字列に対応する前記テストシナリオ用文字列を含むテストシナリオであって、前記使用条件および前記処理の種類に応じて生成された前記テストシナリオ、を出力するテストシナリオ出力部と、
を備えた。
【発明の効果】
【0008】
本開示によれば、論理設計検証の効率を向上させることができる、といった効果を奏する。
【図面の簡単な説明】
【0009】
図1図1は、本開示を実現するための実施の形態1に係る構成の一例を示す図である。
図2図2は、本開示の実施の形態1に係る構成によるテストシナリオ生成処理の一例を示すフローチャートである。
図3図3は、本開示の実施の形態1に係るテストシナリオ生成処理におけるテストシナリオ出力処理の具体的な処理の一例を示すフローチャートである。
図4図4は、図3に示す処理のさらに詳細な具体例を示すフローチャートである。
図5図5は、本開示を実現するための実施の形態2に係る構成の一例を示す図である。
図6図6は、本開示のテストシナリオ生成のイメージ図である。
図7図7は、本開示の検証仕様書の記述例およびテストシナリオの例である。
図8図8は、本開示における信号名対比表の例である。
図9図9は、本開示におけるタスク検索条件の例である。
図10図10は、本開示の本開示の実施の形態2に係る構成によるテストシナリオ生成処理の一例を示すフローチャートである。
図11図11は、本開示の実施の形態2に係るテストシナリオ生成処理におけるテストシナリオ出力処理の具体的な処理の一例を示すフローチャートである。
図12A図12Aは、図11に示す処理のさらに詳細な具体例を示すフローチャートである。
図12B図12Bは、図11に示す処理のさらに詳細な具体例を示すフローチャートである。
図13図13は、本開示を実現するための実施の形態3に係る構成の一例を示す図である。
図14図14は、本開示における検証仕様文出力部182の内部構成の一例を示す図である。
図15図15は、本開示の検証仕様書生成のイメージ図である。
図16図16は、本開示の検証仕様書生成処理の一例を示すフローチャートである。
図17図17は、本開示の検証仕様書生成処理における検証仕様文出力処理の具体的な処理の一例を示すフローチャートである。
図18図18は、本開示の機能を実現するためのハードウェア構成の第1の例を示す図である。
図19図19は、本開示の機能を実現するためのハードウェア構成の第2の例を示す図である。
【発明を実施するための形態】
【0010】
以下、本開示をより詳細に説明するために、本開示の実施の形態について、添付の図面に従って説明する。
【0011】
実施の形態1.
実施の形態1においては、検証仕様書からテストシナリオを生成する機能を実現するための構成例を説明する。
なお、記載が複雑化するのを避けるため、説明においては、電子データまたは電子情報について「データ」および「情報」との記載を適宜省略する場合がある。
【0012】
実施の形態1に係る構成の一例を説明する。
図1は、本開示を実現するための実施の形態1に係る構成の一例を示す図である。
テストシナリオ生成装置100Aは、検証仕様書データを取得し、取得した検証仕様書データを用いてテストシナリオデータを生成して出力する。
検証仕様書データは、検証仕様書の電子データであり、本開示の実施の形態においては、半導体集積回路の論理設計検証における処理ごとの検索仕様文を含むデータである。
検索仕様文は、識別用記号により区切られた検証仕様文字列を含む。識別用記号は、例えば、“、”、(、)、「、」、『、』、といった記号を用いることができる。
検証仕様文字列は、論理設計検証に係る処理を識別可能な文字列を含む。また、検証仕様文字列は、処理に用いられる値をさらに含んでいてもよい。
テストシナリオデータは、半導体集積回路の論理設計を検証するためのテストシナリオが記述された電子データである。テストシナリオは、論理設計検証に係る処理ごとにハードウェア記述言語(HDL)を用いて記述されたテストシナリオ記述を含む。
図1に示すテストシナリオ生成装置100Aは、検証仕様受付部110A、条件取得部120A、構成要素抽出部130A、および、テストシナリオ出力部140A、を含み構成されている。
【0013】
検証仕様受付部110Aは、検証仕様書データを取得する。
検証仕様受付部110Aは、半導体集積回路の論理設計検証における処理ごとの検証仕様文であって、識別用記号により区切られた検証仕様文字列を含む検証仕様文、が記述された検証仕様書データを取得する。
【0014】
条件取得部120Aは、条件情報を取得する。
条件取得部120Aは、識別用記号と検証仕様文字列の使用に係る使用条件とを対応付ける情報、および、検証仕様文字列と論理設計検証における処理の種類とを対応付ける情報、を含む条件情報を取得する。
【0015】
条件情報は、識別用記号と検証仕様文字列の使用に係る使用条件とを対応付ける情報、を含む。
条件情報に含まれる当該情報は、例えば、検証仕様文において識別用記号“ ”により区切られている検証仕様文字列が、信号名として用いられるといった使用条件であることを示す。
また、当該情報は、例えば、検証仕様文において識別用記号「 」により区切られている検証仕様文字列が、タスクの名称として用いられるといった使用条件であることを示す。
また、当該情報は、例えば、検証仕様文において検証仕様文のうち識別用記号( )により区切られている検証仕様文字列が、値として用いられるといった使用条件であることを示す。
また、当該情報は、例えば、検証仕様文において識別用記号『 』により区切られている検証仕様文字列が、並列処理、繰り返し処理、または、仮定条件処理における処理の範囲として用いられるといった使用条件であることを示す。
【0016】
また、条件情報は、検証仕様文字列と論理設計検証における処理の種類とを対応付ける情報、を含む。
条件情報に含まれる当該情報は、例えば、検証仕様文字列が、手順に係る処理における外部入力の操作といった処理の種類に係る文字列であることを示す。
また、当該情報は、例えば、検証仕様文字列が、手順に係る処理における内部信号の操作といった処理の種類に係る文字列であることを示す。
また、当該情報は、例えば、検証仕様文字列が、手順に係る処理における経過時間の操作といった処理の種類に係る文字列であることを示す。
また、当該情報は、例えば、検証仕様文字列が、手順に係る処理におけるタスク(ユーザタスク)の操作といった処理の種類に係る文字列であることを示す。ユーザタスクは、ユーザが設定したタスクを示す。
また、当該情報は、例えば、検証仕様文字列が、期待値に係る処理における外部出力信号の期待値を得るための処理といった処理の種類に係る文字列であることを示す。
また、当該情報は、例えば、検証仕様文字列が、期待値に係る処理における内部信号の期待値を得るための処理といった処理の種類に係る文字列であることを示す。
また、当該情報は、例えば、検証仕様文字列が、期待値に係る処理におけるユーザタスクの使用による処理といった処理の種類に係る文字列であることを示す。
【0017】
構成要素抽出部130Aは、検証仕様書データと条件情報とを用いて検証仕様情報を出力する。
検証仕様情報は、検証仕様文字列、使用条件、および、処理の種類、を含む。
すなわち、構成要素抽出部130Aは、検証仕様書データおよび条件情報を用いて、処理ごとに、検証仕様文字列、使用条件、および、処理の種類、を含む検証仕様情報を出力する。
【0018】
テストシナリオ出力部140Aは、検証仕様情報を用いてテストシナリオを生成して出力する。
テストシナリオ出力部140Aは、検証仕様情報を用いて、検証仕様文字列とテストシナリオ用文字列とを予め記憶しているデータベースを参照し、検証仕様文字列に対応するテストシナリオ用文字列を含むテストシナリオであって、使用条件および処理の種類に応じて生成されたテストシナリオ、を出力する。
データベースは、検証仕様文字列とテストシナリオ用文字列とを相互に変換可能に対応付けたデータ構造を有する検証用データベースである。
テストシナリオ用文字列は、例えば、検証に係る処理をハードウェア記述言語(HDL)により表現した文字列である。
【0019】
図1に示すテストシナリオ出力部140Aは、処理判定部141A、検索部142A、および、処理記述生成部143A、を含み構成されている。
【0020】
処理判定部141Aは、検証仕様情報を用いて、処理の種類を判定する。
具体的には、処理判定部141Aは、処理単位の検証仕様情報ごとに、論理設計検証における各処理の種類を判定し、判定結果である処理の種類を出力する。
【0021】
検索部142Aは、検証仕様文字列に対応するテストシナリオ用文字列を出力する。
検索部142Aは、処理判定部141Aによる判定結果である処理の種類に応じて、検証仕様情報を用いて、検証仕様文字列とテストシナリオ用文字列とを予め記憶しているデータベースを参照し、検証仕様文字列に対応するテストシナリオ用文字列を出力する。
【0022】
処理記述生成部143Aは、処理ごとのテストシナリオ記述を生成してテストシナリオを出力する。
処理記述生成部143Aは、検証仕様情報およびテストシナリオ用文字列を用いて、使用条件および処理の種類に応じたテストシナリオ用規則に従って処理ごとにテストシナリオ記述を生成し、当該テストシナリオ記述を含むテストシナリオを出力する。
テストシナリオ用規則は、テストシナリオ生成装置100Aに予め記憶されている情報であってもよいし、テストシナリオ生成装置100Aの外部から取得する情報であってもよい。
【0023】
テストシナリオ生成装置100Aは、上記構成以外に、図示しない制御部、図示しない記憶部、および、図示しない通信部、を含み構成されていてもよい。
図示しない制御部は、テストシナリオ生成装置100A全体および各構成部に対する制御を行う。図示しない制御部は、例えば外部からの指令に従ってテストシナリオ生成装置100Aを起動させる。また、図示しない制御部は、テストシナリオ生成装置100Aの状態(動作状態=起動、シャットダウン、スリープなどの状態)を制御する。
図示しない記憶部は、テストシナリオ生成装置100Aに用いられる各データを記憶する。図示しない記憶部は、例えば、テストシナリオ生成装置100Aにおける各構成部による出力(出力されたデータ)を記憶し、構成部ごとに要求されたデータを要求元の構成部へ宛てて出力する。
図示しない通信部は、外部の装置との間で通信を行う。例えばテストシナリオ生成装置100Aが表示部を備えていない場合、テストシナリオ生成装置100Aと例えば表示装置といった外部の装置との間で通信を行う。
【0024】
本開示の実施の形態1に係る構成による処理を説明する。
図2は、本開示の実施の形態1に係る構成によるテストシナリオ生成処理の一例を示すフローチャートである。
【0025】
テストシナリオ生成装置100Aは、テストシナリオ生成処理を開始すると、まず、検証仕様受付処理(ステップST1100)を実行する。
検証仕様受付処理において、テストシナリオ生成装置100Aの検証仕様受付部110Aは、検証仕様書データを取得する。検証仕様受付部110Aは、検証仕様書データを構成要素抽出部130Aへ出力する。
【0026】
次いで、テストシナリオ生成装置100Aは、条件取得処理(ステップST1200)を実行する。
条件取得処理において、テストシナリオ生成装置100Aの条件取得部120Aは、条件情報を取得する。条件取得部120Aは、条件情報を構成要素抽出部130Aへ出力する。
【0027】
次いで、テストシナリオ生成装置100Aは、構成要素抽出処理(ステップST1300)を実行する。
構成要素抽出処理において、テストシナリオ生成装置100Aの構成要素抽出部130Aは、検証仕様受付部110Aから検証仕様書データを取得する。構成要素抽出部130Aは、条件取得部120Aから条件情報を取得する。構成要素抽出部130Aは、検証仕様書データおよび条件情報を用いて、処理ごとに、検証仕様文字列、使用条件、および、処理の種類、を含む検証仕様情報を出力する。構成要素抽出部130Aは、検証仕様情報をテストシナリオ出力部140へ出力する。
【0028】
次いで、テストシナリオ生成装置100Aは、テストシナリオ出力処理(ステップST1400)を実行する。
テストシナリオ出力処理において、テストシナリオ生成装置100Aのテストシナリオ出力部140Aは、構成要素抽出部130Aから検証仕様情報を取得する。テストシナリオ出力部140Aは、検証仕様情報を用いてテストシナリオを生成して出力する。具体的には、テストシナリオ出力部140Aは、検証仕様情報を用いて、検証仕様文字列とテストシナリオ用文字列とを予め記憶しているデータベースを参照し、検証仕様文字列に対応するテストシナリオ用文字列を含むテストシナリオであって、使用条件および処理の種類に応じて生成されたテストシナリオ、を出力する。
【0029】
テストシナリオ生成装置100Aは、テストシナリオ出力処理が終了すると、テストシナリオ生成処理を終了する。
【0030】
ここで、テストシナリオ出力処理の具体的な処理の一例を説明する。
図3は、本開示の実施の形態1に係るテストシナリオ生成処理におけるテストシナリオ出力処理の具体的な処理の一例を示すフローチャートである。
【0031】
テストシナリオ出力部140Aは、テストシナリオ出力処理を開始すると、ループ処理を開始する(ステップST1410)。
ループ処理におけるループ回数は、検証仕様書データに記述された処理数と同じ数である(ループ回数=処理数)。
【0032】
次いで、テストシナリオ出力部140Aは、構成要素取得処理(ステップST1420)を実行する。
構成要素取得処理において、テストシナリオ出力部140Aは、構成要素抽出部130Aから検証仕様情報を取得する。
【0033】
次いで、テストシナリオ出力部140Aは、処理種類判定処理(ステップST1430)を実行する。
処理種類判定処理において、テストシナリオ出力部140Aの処理判定部141Aは、検証仕様情報を用いて、処理の種類を判定する。具体的には、処理判定部141Aは、処理単位の検証仕様情報ごとに、論理設計検証における各処理の種類を判定し、判定結果である処理の種類を出力する。
【0034】
次いで、テストシナリオ出力部140Aは、処理文字列検索処理(ステップST1440)を実行する。
処理文字列検索処理において、テストシナリオ出力部140Aの検索部142Aは、処理判定部141Aによる判定結果である処理の種類に応じて、検証仕様情報を用いて、検証仕様文字列とテストシナリオ用文字列とを予め記憶しているデータベースを参照し、検証仕様文字列に対応するテストシナリオ用文字列を出力する。
【0035】
次いで、テストシナリオ出力部140Aは、テストシナリオ記述出力処理(ステップST1450)を実行する。
テストシナリオ記述出力処理において、テストシナリオ出力部140Aの処理記述生成部143Aは、検証仕様情報およびテストシナリオ用文字列を用いて、使用条件および処理の種類に応じたテストシナリオ用規則に従って処理ごとにテストシナリオ記述を生成し、当該テストシナリオ記述を含むテストシナリオを出力する。
【0036】
次いで、テストシナリオ出力部140Aは、検証仕様書データに含まれる処理数と同じ回数処理を繰り返すと、ループ処理を終了する(ステップST1460)。
次いで、テストシナリオ出力部140Aは、テストシナリオ生成処理を終了する。
【0037】
さらに詳細な具体例を用いて処理を説明する。
図4は、図3に示す処理のさらに詳細な具体例を示すフローチャートである。
図4は、図3に示すループ処理の内部処理(ステップST1420からステップST1450)に相当する処理を示している。
【0038】
テストシナリオ出力部140Aは、テストシナリオ出力処理を開始すると、既に説明した構成要素取得処理(ステップST1420)と同様に、構成要素取得処理(ステップST1501)を実行する。
【0039】
次いで、テストシナリオ出力部140Aは、処理種類判定処理(ステップST1502)を実行する。
処理種類判定処理において、テストシナリオ出力部140Aの処理判定部141Aは、手順に係る処理であるか、期待値に係る処理であるか、いずれにも該当しない(非該当)か、を判定する。具体的には、処理判定部141Aは、まず、手順に係る処理であるかを判定し、次いで期待値に係る処理であるかを判定する。
【0040】
テストシナリオ出力部140Aは、処理判定部141Aが手順に係る処理であると判定した場合、まず、“// コメント文” を出力する(ステップST1510)。コメント文は、検証仕様文にコメント識別記号//を付加した形態である。
【0041】
次いで、テストシナリオ出力部140Aの処理判定部141Aは、処理が外部入力の操作であるかを判定する(ステップST1511)。
テストシナリオ出力部140Aの処理判定部141Aが外部入力の操作ではないと判定した場合(ステップST1511“NO”)、テストシナリオ出力部140Aは、後述するステップST1514の処理へ移行する。
テストシナリオ出力部140Aの処理判定部141Aが外部入力の操作であると判定した場合(ステップST1511“YES”)、テストシナリオ出力部140Aは、次いで、外部信号を検索する(ステップST1512)。テストシナリオ出力部140Aの検索部142は、外部信号名を示す検証仕様文字列を用いて、データベースを参照し、検証仕様文字列に対応するテストシナリオ用文字列を取得する。
次いで、テストシナリオ出力部140Aは、“外部信号=値;” を出力する(ステップST1513)。テストシナリオ出力部140Aの処理記述生成部143Aは、外部信号テストシナリオ用文字列および検証仕様文字列に含まれる値を用いて、“外部信号=値;” を出力する。
テストシナリオ出力部140Aは、ステップST1513の処理を終了すると、ループ処理の内部処理である一連の処理を終了する。
【0042】
テストシナリオ出力部140Aの処理判定部141Aは、外部入力の操作ではないと判定した場合(ステップST1511“NO”)、次いで、内部信号の操作であるかを判定する(ステップST1514)。
テストシナリオ出力部140Aの処理判定部141Aは、内部信号の操作ではないと判定した場合(ステップST1514“NO”)、テストシナリオ出力部140Aは、後述するステップST1517の処理へ移行する。
テストシナリオ出力部140Aの処理判定部141Aは、内部信号の操作であると判定した場合(ステップST1514“YES”)、次いで、検索部142Aが内部信号を検索する(ステップST1515)。
次いで、テストシナリオ出力部140Aは、“force 内部信号=値;” を出力する(ステップST1516)。具体的には、テストシナリオ出力部140Aの処理記述生成部143Aは、テストシナリオ用文字列および検証仕様文字列に含まれる値を用いて、“force 内部信号=値;” を出力する。
テストシナリオ出力部140Aは、ステップST1516の処理を終了すると、ループ処理の内部処理である一連の処理を終了する。
【0043】
テストシナリオ出力部140Aの処理判定部141Aは、内部信号の操作ではないと判定した場合(ステップST1514“NO”)、次いで、経過時間の操作であるかを判定する(ステップST1517)。
テストシナリオ出力部140Aは、経過時間の操作でないと判定した場合(ステップST1517“NO”)、後述するステップST1520の処理へ移行する。
テストシナリオ出力部140Aは、経過時間の操作であると判定した場合(ステップST1517“YES”)、次いで、クロックを検索する(ステップST1518)。
次いで、テストシナリオ出力部140Aは、“repeat (値) @ (posedge クロック) ;” を出力する(ステップST1519)。
テストシナリオ出力部140Aは、ステップST1519の処理を終了すると、ループ処理の内部処理である一連の処理を終了する。
【0044】
テストシナリオ出力部140Aは、経過時間の操作でないと判定した場合(ステップST1517“NO”)、次いで、タスクの操作であるかを判定する(ステップST1520)
テストシナリオ出力部140Aは、タスクの操作ではないと判定した場合(ステップST1520“NO”)、ループ処理の内部処理である一連の処理を終了する。
テストシナリオ出力部140Aは、タスクの操作であると判定した場合(ステップST1520“YES”)、次いで、タスクを検索する(ステップST1521)。
次いで、テストシナリオ出力部140Bは、“タスク(値);” を出力する(ステップST1522)。
テストシナリオ出力部140Aは、ステップST1522の処理を終了すると、ループ処理の内部処理である一連の処理を終了する。
【0045】
テストシナリオ出力部140Aは、ステップST1502の処理において、期待値に係る処理であると判定すると、まず、“// コメント文” を出力する(ステップST1530)。
【0046】
次いで、テストシナリオ出力部140Aは、外部出力の期待値であるかを判定する(ステップST1531)。
テストシナリオ出力部140Aは、外部出力の期待値ではないと判定した場合(ステップST1531“NO”)、後述するステップST1534の処理へ移行する。
テストシナリオ出力部140Aは、外部出力の期待値であると判定した場合(ステップST1531“YES”)、次いで、外部信号を検索する(ステップST1532)。
次いで、テストシナリオ出力部140Aは、“外部信号_exp = (値)” を出力する(ステップST1533)。
テストシナリオ出力部140Aは、ステップST1533の処理を終了すると、ループ処理の内部処理である一連の処理を終了する。
【0047】
テストシナリオ出力部140Aは、外部出力の期待値ではないと判定した場合(ステップST1531“NO”)、次いで、内部信号の期待値であるかを判定する(ステップST1534)。
テストシナリオ出力部140Aは、内部信号の期待値ではないと判定した場合(ステップST1534“NO”)、後述するステップST1537の処理へ移行する。
テストシナリオ出力部140Aは、内部信号の期待値であると判定した場合(ステップST1534“YES”)、次いで、内部信号を検索する(ステップST1535)。
次いで、テストシナリオ出力部140Aは、“内部信号_exp = (値)” を出力する(ステップST1536)。
テストシナリオ出力部140Aは、ステップST1536の処理を終了すると、ループ処理の内部処理である一連の処理を終了する。
【0048】
テストシナリオ出力部140Aは、内部信号の期待値ではないと判定した場合(ステップST1534“NO”)、次いで、タスクの操作であるかを判定する(ステップST1537)。
テストシナリオ出力部140Aは、タスクの操作ではないと判定した場合(ステップST1537“NO”)、後述するステップST1540の処理へ移行する。
テストシナリオ出力部140Aは、タスクの操作であると判定した場合(ステップST1537“YES”)、次いで、タスクを検索する(ステップST1538)。
次いで、テストシナリオ出力部140Aは、“タスク(値);” を出力する(ステップST1539)。
テストシナリオ出力部140Aは、ステップST1539の処理を終了すると、ループ処理の内部処理である一連の処理を終了する。
【0049】
テストシナリオ出力部140Aは、手順に係る処理でもなく、期待値に係る処理でもない(非該当)と判定すると、“// コメント文” を出力する(ステップST1540)。
次いで、テストシナリオ出力部140Aは、ステップST1540の処理を終了すると、ループ処理の内部処理である一連の処理を終了する。
【0050】
本開示のテストシナリオ生成装置は、以下のように構成した。

テストシナリオ生成装置
「半導体集積回路の論理設計検証における処理ごとの検証仕様文であって、識別用記号により区切られた検証仕様文字列を含む前記検証仕様文、が記述された検証仕様書データを取得する検証仕様受付部と、
前記識別用記号と前記検証仕様文字列の使用に係る使用条件とを対応付ける情報、および、前記検証仕様文字列と前記論理設計検証における処理の種類とを対応付ける情報、を含む条件情報を取得する条件取得部と、
前記検証仕様書データおよび前記条件情報を用いて、前記処理ごとに、前記検証仕様文字列、前記使用条件、および、前記処理の種類、を含む検証仕様情報を出力する構成要素抽出部と、
前記検証仕様情報を用いて、検証仕様文字列とテストシナリオ用文字列とを予め記憶しているデータベースを参照し、前記検証仕様文字列に対応する前記テストシナリオ用文字列を含むテストシナリオであって、前記使用条件および前記処理の種類に応じて生成された前記テストシナリオ、を出力するテストシナリオ出力部と、
を備えたテストシナリオ生成装置。」

これにより、本開示は、論理設計検証の効率を向上させることができるテストシナリオ生成装置を提供することができる、という効果を奏する。
【0051】
本開示のプログラムは、以下のように構成した。

「コンピュータを、
半導体集積回路の論理設計検証における処理ごとの検証仕様文であって、識別用記号により区切られた検証仕様文字列を含む前記検証仕様文、が記述された検証仕様書データを取得する検証仕様受付部と、
前記識別用記号と前記検証仕様文字列の使用に係る使用条件とを対応付ける情報、および、前記検証仕様文字列と前記論理設計検証における処理の種類とを対応付ける情報、を含む条件情報を取得する条件取得部と、
前記検証仕様書データおよび前記条件情報を用いて、前記処理ごとに、前記検証仕様文字列、前記使用条件、および、前記処理の種類、を含む検証仕様情報を出力する構成要素抽出部と、
前記検証仕様情報を用いて、前記検証仕様文字列とテストシナリオ用文字列とを予め記憶しているデータベースを参照し、前記検証仕様文字列に対応する前記テストシナリオ用文字列を含むテストシナリオであって、前記使用条件および前記処理の種類に応じて生成された前記テストシナリオ、を出力するテストシナリオ出力部と、
を備えたテストシナリオ生成装置として動作させることを特徴とするプログラム。」

これにより、本開示は、論理設計検証の効率を向上させることができる、プログラムを提供することができる、という効果を奏する。
【0052】
本開示のテストシナリオ生成装置は、さらに、以下のように構成した。

「前記テストシナリオ出力部は、
前記検証仕様情報を用いて、前記処理の種類を判定する処理判定部と、
前記処理判定部による判定結果である前記処理の種類に応じて、前記検証仕様情報を用いて、検証仕様文字列とテストシナリオ用文字列とを予め記憶している前記データベースを参照し、前記検証仕様文字列に対応する前記テストシナリオ用文字列を出力する、検索部と、
前記検証仕様情報および前記テストシナリオ用文字列を用いて、前記使用条件および前記処理の種類に応じたテストシナリオ用規則に従って前記処理ごとにテストシナリオ記述を生成し、当該テストシナリオ記述を含む前記テストシナリオを出力する、処理記述生成部と、
を備えることを特徴とする請求項に記載のテストシナリオ生成装置。」

これにより、本開示は、多種類の処理に対応した検証を実行できるテストシナリオを出力するテストシナリオ生成装置を提供することができる、という効果を奏する。さらに、本開示は、上記構成を上記プログラムまたは後述する検証装置に適用することにより、上記効果と同様の効果を奏する。
【0053】
実施の形態2.
実施の形態2は、特に以下について、実施の形態1の構成に加えた形態について説明する。
・検証仕様書データのデータ構造
・検証仕様書の検証仕様文を用いたコメント文を含むテストシナリオデータ
・受付用画像を提示させる構成
・条件情報を含む条件仕様書データを取得する構成
・検証を実行する構成
実施の形態2の説明においては、実施の形態1の説明と同様の説明について、当該説明を適宜省略する。
【0054】
実施の形態2に係る構成の一例を説明する。
図5は、本開示を実現するための実施の形態2に係る構成の一例を示す図である。
図6は、本開示のテストシナリオ生成のイメージ図である。
図7は、本開示の検証仕様書の記述例およびテストシナリオの例である。
図8は、本開示における信号名対比表の例である。
図9は、本開示におけるタスク検索条件の例である。
検証装置10Bは、検証仕様書データを取得し、取得した検証仕様書データを用いてテストシナリオデータを生成し、生成したテストシナリオデータを用いて検証を実行して検証結果を出力する。
図5に示す検証装置10Bは、検証部15、および、テストシナリオ生成装置100B、を含み構成されている。
検証部15は、テストシナリオを用いて検証を実行する。
検証部15は、テストシナリオ生成装置100Bのテストシナリオ出力部140Bにより出力されたテストシナリオを用いて半導体集積回路の論理設計検証を実行して検証結果を出力する。
【0055】
テストシナリオ生成装置100Bは、検証仕様書データを取得し、取得した検証仕様書データを用いてテストシナリオデータを生成して出力する。
【0056】
検証仕様書データは、検証仕様書の電子データであり、本開示の実施の形態においては、半導体集積回路の論理設計検証における処理ごとの検索仕様文を含むデータである。
検索仕様文は、自然言語を用いて記述された文であり、文中には識別用記号により区切られた検証仕様文字列を含む。識別用記号は、例えば、図6(開発毎の条件・制約<制約>)に示すように、“、”、(、)、「、」、『、』、といった記号を用いることができる。識別用記号は、開発毎の条件・制約として設定することができ、テストシナリオ生成装置100Bが例えば条件仕様書データに含まれる条件情報として取得することができる。
検証仕様文字列は、論理設計検証に係る処理を識別可能な文字列を含む。また、検証仕様文字列は、処理に用いられる値をさらに含んでいてもよい。
検証仕様書データは、論理設計検証における処理ごとに、処理順を示す値、手順の処理に係る検証仕様文字列、および、期待値の処理に係る検証仕様文字列、を保持可能なデータ構造を有するデータである。検証仕様書データは、例えば図7に示すような処理順を示す番号1010といった値、手順の処理に係る検証仕様文字列1020、および、期待値の処理に係る検証仕様文字列1030、をそれぞれ保持可能なデータ構造を有する。具体的には、処理ごとの「番号、手順側の検証仕様構成要素、期待値側の検証仕様構成要素」として、図7においては、検証仕様書の記載1000において、「処理番号1、“パワーオンリセット”を解除(1’b1)、-」、「処理番号2、-、”出力リセット”が解除されたことを確認(1’b1)」、「処理番号3、“125MHzクロック”の10サイクル経過後 (10)、-」、「処理番号4、-、送信ステータス送信完了になっていることを確認 「AXIリード」 (1’b1, 4’h0,R_TX_STAT,32’h0000_0001)」を示している。
【0057】
テストシナリオデータは、半導体集積回路の論理設計を検証するためのテストシナリオが記述された電子データである。テストシナリオは、論理設計検証に係る処理ごとにハードウェア記述言語(HDL)を用いて記述されたテストシナリオ記述を含む。
図5に示すテストシナリオ生成装置100Bは、検証仕様受付部110B、条件取得部120B、構成要素抽出部130B、テストシナリオ出力部140B、入力用UI指令部150、出力用UI指令部160、および、検証用データベース170、を含み構成されている。
【0058】
入力用UI指令部150は、図示しない表示部または表示装置に対して受付用画像を提示するよう指令を行う。入力用UI指令部150は、本開示における受付用画像提示部である。
受付用画像提示部としての入力用UI指令部150は、検証仕様書データを受け付けるための画像である検証仕様書受付用画像、および、条件情報を含む条件仕様書データを受け付けるための画像である条件受付用画像、を含む受付用画像を出力する。
【0059】
検証仕様受付部110Bは、半導体集積回路の論理設計検証における処理ごとの検証仕様文であって、識別用記号により区切られた検証仕様文字列を含む検証仕様文、が記述された検証仕様書データを取得する。
検証仕様受付部110Bは、検証仕様書受付用画像を介して検証仕様書データを取得する。
【0060】
条件取得部120Bは、条件情報を取得する。
条件取得部120Bは、識別用記号と検証仕様文字列の使用に係る使用条件とを対応付ける情報、および、検証仕様文字列と論理設計検証における処理の種類とを対応付ける情報、を含む条件情報を取得する。
条件取得部120Bは、条件受付用画像を介して取得した条件仕様書データを用いて条件情報を取得する。
【0061】
条件情報は、識別用記号と検証仕様文字列の使用に係る使用条件とを対応付ける情報、を含む。
条件情報に含まれる当該情報は、例えば、検証仕様文において識別用記号“ ”により区切られている検証仕様文字列が、信号名として用いられるといった使用条件であることを示す。(図6に示す開発毎の条件・制約における<制約>参照)
また、当該情報は、例えば、検証仕様文において識別用記号「 」により区切られている検証仕様文字列が、タスクの名称として用いられるといった使用条件であることを示す。(図6に示す開発毎の条件・制約における<制約>参照)
また、当該情報は、例えば、検証仕様文において検証仕様文のうち識別用記号( )により区切られている検証仕様文字列が、値として用いられるといった使用条件であることを示す。(図6に示す開発毎の条件・制約における<制約>参照)
また、当該情報は、例えば、検証仕様文において識別用記号『 』により区切られている検証仕様文字列が、並列処理、繰り返し処理、または、仮定条件処理における処理の範囲として用いられるといった使用条件であることを示す。(図6に示す開発毎の条件・制約における<制約>参照)
【0062】
また、条件情報は、検証仕様文字列と論理設計検証における処理の種類とを対応付ける情報、を含む。
条件情報に含まれる当該情報は、例えば、検証仕様文字列が、手順に係る処理における外部入力の操作といった処理の種類に係る文字列であることを示す。
また、当該情報は、例えば、検証仕様文字列が、手順に係る処理における内部信号の操作といった処理の種類に係る文字列であることを示す。
また、当該情報は、例えば、検証仕様文字列が、手順に係る処理における経過時間の操作といった処理の種類に係る文字列であることを示す。
また、当該情報は、例えば、検証仕様文字列が、手順に係る処理におけるタスク(ユーザタスク)の操作といった処理の種類に係る文字列であることを示す。ユーザタスクは、ユーザが設定したタスクを示す。
また、当該情報は、例えば、検証仕様文字列が、期待値に係る処理における外部出力信号の期待値を得るための処理といった処理の種類に係る文字列であることを示す。
また、当該情報は、例えば、検証仕様文字列が、期待値に係る処理における内部信号の期待値を得るための処理といった処理の種類に係る文字列であることを示す。
また、当該情報は、例えば、検証仕様文字列が、期待値に係る処理におけるユーザタスクの使用による処理といった処理の種類に係る文字列であることを示す。
このような情報を用いることで、検証仕様書データに含まれる検証仕様構成要素(手順構成要素、期待値構成要素)に示される処理の種類を抽出することができる。
また、当該情報は、例えば、検証仕様文字列が、並列処理といった処理の種類に係る文字列であることを示す。
また、当該情報は、例えば、検証仕様文字列が、繰り返し処理といった処理の種類に係る文字列であることを示す。
また、当該情報は、例えば、検証仕様文字列が、仮定条件処理といった処理の種類に係る文字列であることを示す。
【0063】
また、条件情報は、検証仕様文字列と検索用文字列とを対応付ける情報を含んでもよい。検索用文字列は、検証用データベース170を参照してテストシナリオ用文字列を検索して取得可能な文字列である。
条件情報に含まれる当該情報は、例えば、信号名対比表である。
また、当該情報は、例えば、タスク検索条件である。
例えば図8に示すように、信号名対比表1100は、検証仕様文字列である信号名1110と検索用文字列である信号名1120とを対応付けている。具体的には、信号名対比表1100は、「パワーオンリセット」と「PREL」とを対応付けており、「出力リセット」と「RELO」とを対応付けており、「エラーLED」と「ERRLED」とを対応付けており、「WDTエラー」と「WDTERR」とを対応付けており、「レディ信号」と「AAA.ready」とを対応付けており、「初期化完了フラグ」と「BBB.initend_flag」とを対応付けており、「125MHzクロック」と「clk125m」とを対応付けている。
また、例えば図9に示すように、タスク検索条件1200は、検証仕様文字列としてのタスク名1210と検索用文字列としてのタスク名1220とを対応付けている。具体的には、タスク検索条件1200は、「リセット解除」と「reset_release;」とを対応付けており、「初期設定」と「initial_set;」とを対応付けており、「AXIライト32」と「axi_write32(port,id,addr,data);」とを対応付けており、「AXIリード32」と「axi_read32(port,id,addr,data);」とを対応付けており、「MPUライト」と「MPU_Write(addr,data);」とを対応付けており、「MPUリード」と「MPU_Read(addr,data);」とを対応付けている。
なお、本実施の形態において、条件情報は、検証仕様文字列と検索用文字列とを対応付ける情報を含んでいるが、検証仕様文字列がデータベースを参照して検索可能な文字列である場合、検証仕様文字列と検索用文字列とを対応付ける情報を含むものに限定されない。よって、本開示において、検証仕様文字列は、検索用文字列を含む。
【0064】
構成要素抽出部130Bは、検証仕様書データと条件情報とを用いて検証仕様情報を出力する。
検証仕様情報は、検証仕様文字列、使用条件、および、処理の種類、を含む。
すなわち、構成要素抽出部130Bは、検証仕様書データおよび条件情報を用いて、処理ごとに、検証仕様文字列、使用条件、および、処理の種類、を含む検証仕様情報を出力する。
【0065】
テストシナリオ出力部140Bは、検証仕様情報を用いてテストシナリオを生成して出力する。
テストシナリオ出力部140Bは、検証仕様情報を用いて、検証仕様文字列とテストシナリオ用文字列とを予め記憶しているデータベースを参照し、検証仕様文字列に対応するテストシナリオ用文字列を含むテストシナリオであって、使用条件および処理の種類に応じて生成されたテストシナリオ、を出力する。
テストシナリオ出力部140Bにより参照されるデータベースは、検証用データベース170である。
検証用データベース170は、検証仕様文字列(検索用文字列)とテストシナリオ用文字列とを対応付けて予め記憶している。
テストシナリオ用文字列は、例えば、検証に係る処理をハードウェア記述言語(HDL)により表現した文字列である。
【0066】
また、テストシナリオ出力部140Bは、論理設計検証における処理ごとに、処理順を示す値、識別用記号により区切られた検証仕様文字列、および、論理設計検証における処理の種類、を含むコメント文と、コメント文に付加されたコメント識別記号とを含めて、テストシナリオを出力する。
【0067】
また、テストシナリオ出力部140Bは、検証に係る処理に多い特定処理を判定して特定処理を示すテストシナリオ記述を含めることができる。
特定処理は、例えば、並列処理、繰り返し処理、および、仮定条件処理である。
仮定条件処理は、ある条件を満たす場合に処理を実行する処理である。
【0068】
図5に示すテストシナリオ出力部140Bは、処理判定部141B、検索部142B、処理記述生成部143B、特定処理判定部144、および、特定処理記述生成部145、を含み構成されている。
【0069】
処理判定部141Bは、検証仕様情報を用いて、処理の種類を判定する。
具体的には、処理判定部141Bは、処理単位の検証仕様情報ごとに、論理設計検証における各処理の種類を判定し、判定結果である処理の種類を出力する。
処理判定部141Bは、特定処理判定部144を含み構成されている。
特定処理判定部144は、検証仕様情報を用いて、並列処理、繰り返し処理、および、仮定条件処理といった特定処理の種類を判定し、判定結果である処理の種類を出力する。
【0070】
検索部142Bは、検証仕様文字列に対応するテストシナリオ用文字列を出力する。
検索部142Bは、処理判定部141Bによる判定結果である処理の種類に応じて、検証仕様情報を用いて、検証仕様文字列とテストシナリオ用文字列とを予め記憶しているデータベースを参照し、検証仕様文字列に対応するテストシナリオ用文字列を出力する。
【0071】
処理記述生成部Bは、処理ごとのテストシナリオ記述を生成してテストシナリオを出力する。
処理記述生成部Bは、検証仕様情報およびテストシナリオ用文字列を用いて、使用条件および処理の種類に応じたテストシナリオ用規則に従って処理ごとにテストシナリオ記述を生成し、当該テストシナリオ記述を含むテストシナリオを出力する。
テストシナリオ用規則は、テストシナリオ生成装置100Bに予め記憶されている情報であってもよいし、テストシナリオ生成装置100Bの外部から取得する情報であってもよい。
処理記述生成部Bは、特定処理記述生成部145を含み構成されている。
特定処理記述生成部145は、特定処理判定部144により判定された特定処理の種類に応じて、特定処理に係るテストシナリオ記述を生成する。
処理記述生成部Bは、特定処理に係るテストシナリオ記述を含めてテストシナリオを出力する。
【0072】
出力用UI指令部160は、テストシナリオ出力部140Bから出力されたテストシナリオを提示するための提示用画像を表示させるよう指令を行う。
図10は、本開示の本開示の実施の形態2に係る構成によるテストシナリオ生成処理の一例を示すフローチャートである。
テストシナリオ生成装置100Bは、テストシナリオ生成処理を開始すると、まず、受付画像提示処理(ステップST2100)を実行する。
受付画像提示処理において、テストシナリオ生成装置100Bの入力用UI指令部150は、検証仕様書データを受け付けるための画像である検証仕様書受付用画像、および、条件情報を含む条件仕様書データを受け付けるための画像である条件受付用画像、を含む受付用画像を出力する。
【0073】
次いで、テストシナリオ生成装置100Bは、検証仕様受付処理(ステップST2200)を実行する。
検証仕様受付処理において、テストシナリオ生成装置100Bの検証仕様受付部110Bは、検証仕様書受付用画像を介して検証仕様書データを取得する。
検証仕様受付部110Bは、半導体集積回路の論理設計検証における処理ごとの検証仕様文であって、識別用記号により区切られた検証仕様文字列を含む検証仕様文、が記述された検証仕様書データを取得する。
検証仕様受付部110Bは、検証仕様書データを構成要素抽出部130Bへ出力する。
【0074】
次いで、テストシナリオ生成装置100Bは、条件取得処理(ステップST2300)を実行する。
条件取得処理において、テストシナリオ生成装置100Bの条件取得部120Bは、識別用記号と検証仕様文字列の使用に係る使用条件とを対応付ける情報、および、検証仕様文字列と論理設計検証における処理の種類とを対応付ける情報、を含む条件情報を取得する。
条件取得部120Bは、条件受付用画像を介して取得した条件仕様書データを用いて条件情報を取得する。
条件取得部120Bは、条件情報を構成要素抽出部130Bへ出力する。
【0075】
次いで、テストシナリオ生成装置100Bは、構成要素抽出処理(ステップST2400)を実行する。
構成要素抽出処理において、テストシナリオ生成装置100Bの構成要素抽出部130Bは、検証仕様受付部110Bから検証仕様書データを取得する。構成要素抽出部130Bは、条件取得部120Bから条件情報を取得する。構成要素抽出部130Bは、検証仕様書データおよび条件情報を用いて、処理ごとに、検証仕様文字列、使用条件、および、処理の種類、を含む検証仕様情報を出力する。
【0076】
次いで、テストシナリオ生成装置100Bは、テストシナリオ出力処理(ステップST2500)を実行する。
テストシナリオ出力処理において、テストシナリオ生成装置100Bのテストシナリオ出力部140Bは、構成要素抽出部130Bから検証仕様情報を取得する。テストシナリオ出力部140Bは、検証仕様情報を用いて、検証仕様文字列とテストシナリオ用文字列とを予め記憶しているデータベースを参照し、検証仕様文字列に対応するテストシナリオ用文字列を含むテストシナリオであって、使用条件および処理の種類に応じて生成されたテストシナリオ、を出力する。このとき、テストシナリオ出力部140Bは、論理設計検証における処理ごとに、処理順を示す値、識別用記号により区切られた検証仕様文字列、および、論理設計検証における処理の種類、を含むコメント文と、コメント文に付加されたコメント識別記号とを含めて、テストシナリオを出力する。テストシナリオ出力部140Bは、テストシナリオを出力用UI指令部160へ出力する。
【0077】
次いで、テストシナリオ生成装置100Bは、テストシナリオ提示処理(ステップST2600)を実行する。
テストシナリオ提示処理において、テストシナリオ生成装置100Bの出力用UI指令部160は、テストシナリオ出力部140Bから出力されたテストシナリオを提示するための提示用画像を表示させるよう指令を行う。
【0078】
テストシナリオ生成装置100Bは、テストシナリオ出力処理が終了すると、テストシナリオ生成処理を終了する。
【0079】
ここで、テストシナリオ出力処理の具体的な処理の一例を説明する。
図11は、本開示の実施の形態2に係るテストシナリオ生成処理におけるテストシナリオ出力処理の具体的な処理の一例を示すフローチャートである。
テストシナリオ出力部140Bは、テストシナリオ出力処理を開始すると、ループ処理を開始する(ステップST2510)。
ループ処理におけるループ回数は、テストシナリオに記述された処理の数と同じ回数である(ループ回数=処理数)。
【0080】
次いで、テストシナリオ出力部140Bは、構成要素取得処理(ステップST2520)を実行する。
構成要素取得処理において、テストシナリオ出力部140Bは、構成要素抽出部130Bから検証仕様情報を取得する。
【0081】
次いで、テストシナリオ出力部140Bは、特定処理種類判定処理(ステップST2530)を実行する。
特定処理種類判定処理において、テストシナリオ出力部140Bの処理判定部141Bにおける特定処理判定部144は、検証仕様情報を用いて、並列処理、繰り返し処理、および、仮定条件処理といった特定処理の種類を判定し、判定結果である処理の種類を出力する。
【0082】
次いで、テストシナリオ出力部140Bは、特定処理文字列検索処理(ステップST2540)を実行する。
特定処理文字列検索処理において、テストシナリオ出力部140Bの検索部142Bは、特定処理の種類に応じて、検証用データベース170を参照して、特定処理のテストシナリオ用文字列を取得する。
【0083】
次いで、テストシナリオ出力部140Bは、テストシナリオ記述出力処理(ステップST2550)を実行する。
テストシナリオ記述出力処理において、テストシナリオ出力部140Bの処理記述生成部143Bにおける特定処理記述生成部145は、特定処理判定部144により判定された特定処理の種類に応じて、特定処理に係るテストシナリオ記述を生成する。
【0084】
次いで、テストシナリオ出力部140Bは、処理種類判定処理(ステップST2560)を実行する。
処理種類判定処理において、テストシナリオ出力部140Bの処理判定部141Bは、検証仕様情報を用いて、処理の種類を判定する。
具体的には、処理判定部141Bは、処理単位の検証仕様情報ごとに、論理設計検証における各処理の種類を判定し、判定結果である処理の種類を出力する。
【0085】
次いで、テストシナリオ出力部140Bは、処理文字列検索処理(ステップST2570)を実行する。
処理文字列検索処理において、テストシナリオ出力部140Bの検索部142Bは、検証仕様文字列に対応するテストシナリオ用文字列を出力する。
検索部142Bは、処理判定部141Bによる判定結果である処理の種類に応じて、検証仕様情報を用いて、検証仕様文字列とテストシナリオ用文字列とを予め記憶しているデータベースを参照し、検証仕様文字列に対応するテストシナリオ用文字列を出力する。
【0086】
次いで、テストシナリオ出力部140Bは、テストシナリオ記述出力処理(ステップST2580)を実行する。
テストシナリオ記述出力処理において、テストシナリオ出力部140Bの処理記述生成部143Bは、処理ごとのテストシナリオ記述を生成してテストシナリオを出力する。
処理記述生成部143Bは、検証仕様情報およびテストシナリオ用文字列を用いて、使用条件および処理の種類に応じたテストシナリオ用規則に従って処理ごとにテストシナリオ記述を生成し、当該テストシナリオ記述を含むテストシナリオを出力する。
【0087】
次いで、テストシナリオ出力部140Bは、テストシナリオに記述された処理ごとに全ての処理についてテストシナリオ記述を出力すると、ループ処理を終了する(ステップST2590)。
次いで、テストシナリオ出力部140Bは、テストシナリオ生成処理を終了する。
【0088】
さらに詳細な具体例を用いて処理を説明する。
図12図12Aおよび図12B)は、図11に示す処理のさらに詳細な具体例を示すフローチャートである。
図12Aおよび図12Bは、図11に示すループ処理の内部処理(ステップST2520からステップST2580)に相当する処理を示している。
【0089】
テストシナリオ出力部140Bは、テストシナリオ出力処理を開始すると、既に説明した構成要素取得処理(ステップST2520)と同様に、構成要素取得処理(ステップST2801)を実行する。
【0090】
次いで、テストシナリオ出力部140Bは、特定処理であるかを判定する(図12Aに示すステップST2802)。
テストシナリオ出力部140Bは、特定処理ではないと判定した場合(ステップST2802“NO”)、後述するステップST2840の処理へ移行する。
【0091】
テストシナリオ出力部140Bは、特定処理であると判定した場合(ステップST2802“YES”)、次いで、並列処理であるかを判定する(ステップST2810)。
テストシナリオ出力部140Bは、並列処理ではないと判定した場合(ステップST2810“NO”)、後述するステップST2820の処理へ移行する。
テストシナリオ出力部140Bは、並列処理であると判定した場合(ステップST2810“YES”)、次いで、“// コメント文” を出力する(ステップST2811)。
次いで、テストシナリオ出力部140Bは、先頭にfork、末尾にjoinを出力する(ステップST2812)。
次いで、テストシナリオ出力部140Bは、並列処理対象の先頭にbegin、末尾にendを出力する(ステップST2813)。
【0092】
テストシナリオ出力部140Bは、ステップST2813の処理を終了した場合、または、並列処理ではないと判定した場合(ステップST2810“NO”)、次いで、繰り返し処理であるかを判定する(ステップST2820)。
テストシナリオ出力部140Bは、繰り返し処理ではないと判定した場合(ステップST2820“NO”)、次いで、後述するステップST2830の処理へ移行する。
テストシナリオ出力部140Bは、繰り返し処理であると判定した場合(ステップST2820“YES”)、次いで、“// コメント文” を出力する(ステップST2821)
次いで、テストシナリオ出力部140Bは、for(loop=0 ; loop<値 ; loop=loop+1) を出力する(ステップST2822)。
次いで、テストシナリオ出力部140Bは、ループ処理対象の先頭にbegin、末尾にendを出力する(ステップST2823)。
【0093】
テストシナリオ出力部140Bは、ステップST2823の処理を終了した場合、または、繰り返し処理ではないと判定した場合(ステップST2820“NO”)、次いで、仮定条件処理であるかを判定する(ステップST2830)。
テストシナリオ出力部140Bは、仮定条件処理ではないと判定した場合(ステップST2830“NO”)、次いで、後述するステップST2840の処理へ移行する。
テストシナリオ出力部140Bは、仮定条件処理であると判定した場合(ステップST2830)、次いで、“// コメント文” を出力する(ステップST2831)。
次いで、テストシナリオ出力部140Bは、if(条件)を出力する(ステップST2832)。
次いで、テストシナリオ出力部140Bは、仮定条件処理対象の先頭にbegin、末尾にendを出力する(ステップST2833)。
【0094】
次いで、テストシナリオ出力部140Bは、ステップST2833の処理を終了した場合、または、仮定条件処理ではないと判定した場合(ステップST2830“NO”)、
処理種類判定処理(図12Bに示すステップST2840)を実行する。
処理種類判定処理において、テストシナリオ出力部140Bの処理判定部141Bは、手順に係る処理であるか、期待値に係る処理であるか、いずれにも該当しない(非該当)か、を判定する。具体的には、処理判定部141Aは、まず、手順に係る処理であるかを判定し、次いで期待値に係る処理であるかを判定する。
【0095】
テストシナリオ出力部140Bは、ステップST2840の処理において、手順に係る処理であると判定した場合、まず、“// コメント文” を出力する(ステップST2850)。
【0096】
次いで、テストシナリオ出力部140Bは、外部入力の操作であるかを判定する(ステップST2851)。
テストシナリオ出力部140Bは、外部入力の操作ではないと判定した場合(ステップST2851“NO”)、後述するステップST2854の処理へ移行する。
テストシナリオ出力部140Bは、外部入力の操作であると判定した場合(ステップST2851“YES”)、次いで、外部信号を検索する(ステップST2852)。
次いで、テストシナリオ出力部140Bは、“外部信号=値;” を出力する(ステップST2853)。
テストシナリオ出力部140Bは、ステップST2853の処理を終了すると、ループ処理の内部処理である一連の処理を終了する。
【0097】
テストシナリオ出力部140Bは、外部入力の操作ではないと判定した場合(ステップST2851“NO”)、次いで、内部信号の操作であるかを判定する(ステップST2854)。
テストシナリオ出力部140Bは、内部信号の操作ではないと判定した場合(ステップST2854“NO”)、後述するステップST2857の処理へ移行する。
テストシナリオ出力部140Bは、内部信号の操作であると判定した場合(ステップST2854“YES”)、次いで、内部信号を検索する(ステップST2855)。
次いで、テストシナリオ出力部140Bは、“force 内部信号=値;” を出力する(ステップST2856)。
テストシナリオ出力部140Bは、ステップST2856の処理を終了すると、次いで、ループ処理の内部処理である一連の処理を終了する。
【0098】
テストシナリオ出力部140Bは、内部信号の操作ではないと判定した場合(ステップST2854“NO”)、次いで、経過時間の操作であるかを判定する(ステップST2857)。テストシナリオ出力部140Bは、経過時間の操作でないと判定した場合(ステップST2857“NO”)、後述するステップST2860の処理へ移行する。
テストシナリオ出力部140Bは、経過時間の操作であると判定した場合(ステップST2857“YES”)、次いで、クロックを検索する(ステップST2858)。
次いで、テストシナリオ出力部140Bは、“repeat (値) @ (posedge クロック) ;” を出力する(ステップST2859)。
テストシナリオ出力部140Bは、ステップST2859の処理を終了すると、ループ処理の内部処理である一連の処理を終了する。
【0099】
テストシナリオ出力部140Bは、経過時間の操作でないと判定した場合(ステップST2857“NO”)、次いで、タスクの操作であるかを判定する(ステップST2860)。
テストシナリオ出力部140Bは、タスクの操作ではないと判定した場合(ステップST2860“NO”)、ループ処理の内部処理である一連の処理を終了する。
テストシナリオ出力部140Bは、タスクの操作であると判定した場合(ステップST2860“YES”)、次いで、タスクを検索する(ステップST2861)。
次いで、テストシナリオ出力部140Bは、“タスク(値);” を出力する(ステップST2862)。
テストシナリオ出力部140Bは、ステップST2862の処理を終了すると、ループ処理の内部処理である一連の処理を終了する。
【0100】
テストシナリオ出力部140Bは、ステップST2840の処理において、期待値に係る処理であると判定した場合、まず、“// コメント文” を出力する(ステップST2870)
【0101】
次いで、テストシナリオ出力部140Bは、外部出力の期待値であるかを判定する(ステップST2871)。
テストシナリオ出力部140Bは、外部出力の期待値ではないと判定した場合(ステップST2871“NO”)、後述するステップST2874の処理へ移行する。
テストシナリオ出力部140Bは、外部出力の期待値であると判定した場合(ステップST2871“YES”)、次いで、外部信号を検索する(ステップST2872)。
次いで、テストシナリオ出力部140Bは、“外部信号_exp = (値)” を出力する(ステップST2873)。
テストシナリオ出力部140Bは、ステップST2873の処理を終了すると、ループ処理の内部処理である一連の処理を終了する。
【0102】
テストシナリオ出力部140Bは、外部出力の期待値ではないと判定した場合(ステップST2871“NO”)、次いで、内部信号の期待値であるかを判定する(ステップST2874)。
テストシナリオ出力部140Bは、内部信号の期待値であると判定した場合(ステップST2874“YES”)、次いで、内部信号を検索する(ステップST2875)。
次いで、テストシナリオ出力部140Bは、“内部信号_exp = (値)” を出力する(ステップST2876)。
テストシナリオ出力部140Bは、ステップST2876の処理を終了すると、ループ処理の内部処理である一連の処理を終了する。
【0103】
テストシナリオ出力部140Bは、内部信号の期待値ではないと判定した場合(ステップST2874“NO”)、次いで、タスクの操作であるかを判定する(ステップST2877)。
テストシナリオ出力部140Bは、タスクの操作ではないと判定した場合(ステップST2877“NO”)、ループ処理の内部処理である一連の処理を終了する。
テストシナリオ出力部140Bは、タスクの操作であると判定した場合(ステップST2877“YES”)、タスクを検索する(ステップST2878)。
次いで、テストシナリオ出力部140Bは、“タスク(値);” を出力する(ステップST2879)。
テストシナリオ出力部140Bは、ステップST2879の処理を終了すると、ループ処理の内部処理である一連の処理を終了する。
【0104】
テストシナリオ出力部140Bは、手順に係る処理でもなく、期待値に係る処理でもない(非該当)と判定すると、“// コメント文” を出力する(ステップST2880)。
次いで、テストシナリオ出力部140Aは、ステップST2880の処理を終了すると、ループ処理の内部処理である一連の処理を終了する。
【0105】
上述した開示により、テストシナリオ生成装置100は、例えば、図7の検証仕様書の記載1000を用いてテストシナリオ2000を出力することができる。
具体的には、検証仕様書データにおける検証仕様文データ「処理番号1、“パワーオンリセット”を解除(1’b1)、-」から、種類=手順,外部入力信号名=パワーオンリセット=PREL、(値)=(1’b1)、といった検証仕様情報を抽出し、当該検証仕様情報を用いて、処理1のテストシナリオ記述「//“パワーオンリセット”を解除(1’b1):設定」「PREL = (1’b1);」を生成することができる。
また、検証仕様書データにおける検証仕様文データ「処理番号2、-、”出力リセット”が解除されたことを確認(1’b1)」から、種類=期待値,内部信号名=出力リセット、(値)= (1’b1)、といった検証仕様情報を抽出し、当該検証仕様情報を用いて、処理2のテストシナリオ記述「//”出力リセット”が解除されたことを確認(1’b1):確認」「RELO_exp = 1’b1」を生成することができる。
また、検証仕様書データにおける検証仕様文データ「処理番号3、“125MHzクロック”の10サイクル経過後 (10)、-」から、種類=手順、経過時間信号名=125MHzクロック、(値)= (10) 、といった検証仕様情報を抽出し、当該検証仕様情報を用いて、処理3のテストシナリオ記述「//“125MHzクロック”の10サイクル経過後 (10) :設定」「clk125m→repeat (値) @ (posedge clk125m) ;」を生成することができる。
また、検証仕様書データにおける検証仕様文データ「処理番号4、-、送信ステータス送信完了になっていることを確認 「AXIリード」 (1’b1, 4’h0,R_TX_STAT,32’h0000_0001)」から、種類=期待値、タスク=AXIリード、(値)= (1’b1, 4’h0,R_TX_STAT,32’h0000_0001) といった検証仕様情報を抽出し、当該検証仕様情報を用いて、処理4のテストシナリオ記述「//送信ステータス送信完了になっていることを確認「AXIリード」 (1’b1, 4’h0,R_TX_STAT,32’h0000_0001):確認」「axi_read32(1’b1, 4’h0,R_TX_STAT,32’h0000_0001)」を生成することができる。
【0106】
本開示の検証装置は、さらに、以下のように構成した。

「半導体集積回路の論理設計検証における処理ごとの検証仕様文であって、識別用記号により区切られた検証仕様文字列を含む前記検証仕様文、が記述された検証仕様書データを取得する検証仕様受付部と、
前記識別用記号と前記検証仕様文字列の使用に係る使用条件とを対応付ける情報、および、前記検証仕様文字列と前記論理設計検証における処理の種類とを対応付ける情報、を含む条件情報を取得する条件取得部と、
前記検証仕様書データおよび前記条件情報を用いて、前記処理ごとに、前記検証仕様文字列、前記使用条件、および、前記処理の種類、を含む検証仕様情報を出力する構成要素抽出部と、
前記検証仕様情報を用いて、前記検証仕様文字列とテストシナリオ用文字列とを予め記憶しているデータベースを参照し、前記検証仕様文字列に対応する前記テストシナリオ用文字列を含むテストシナリオであって、前記使用条件および前記処理の種類に応じて生成された前記テストシナリオ、を出力するテストシナリオ出力部と、
前記テストシナリオ出力部により出力された前記テストシナリオを用いて前記半導体集積回路の論理設計検証を実行して検証結果を出力する検証部と、
を備えたことを特徴とする検証装置。」

これにより、本開示は、論理設計検証の効率を向上させることができる、検証装置を提供することができる、という効果を奏する。
【0107】
本開示のテストシナリオ生成装置は、以下のように構成した。

「前記検証仕様書データは、前記論理設計検証における処理ごとに、処理順を示す値、手順の処理に係る検証仕様文字列、および、期待値の処理に係る検証仕様文字列、を保持可能なデータ構造を有するデータであり、
前記テストシナリオ出力部は、
前記論理設計検証における処理ごとに、処理順を示す値、前記識別用記号により区切られた検証仕様文字列、および、前記論理設計検証における処理の種類、を含むコメント文と、前記コメント文に付加されたコメント識別記号とを含めて、前記テストシナリオを出力する、
ことを特徴とするテストシナリオ生成装置。」

これにより、本開示は、ユーザによりテストシナリオの内容の確認が容易にできるようなテストシナリオを出力するテストシナリオ生成装置を提供することができる、という効果を奏する。さらに、本開示は、上記構成を上記プログラムまたは後述する検証装置に適用することにより、上記効果と同様の効果を奏する。
【0108】
本開示のテストシナリオ生成装置は、さらに、以下のように構成した。

「前記検証仕様書データを受け付けるための画像である検証仕様書受付用画像、および、前記条件情報を含む条件仕様書データを受け付けるための画像である条件受付用画像、を含む受付用画像を出力する受付用画像提示部をさらに備え、
前記検証仕様受付部は、前記検証仕様書受付用画像を介して前記検証仕様書データを取得し、
前記条件取得部は、前記条件受付用画像を介して取得した前記条件仕様書データを用いて前記条件情報を取得する、
ことを特徴とするテストシナリオ生成装置。」

これにより、本開示は、テストシナリオ生成装置を提供することができる、という効果を奏する。さらに、本開示は、上記構成を上記プログラムまたは上記検証装置に適用することにより、上記効果と同様の効果を奏する。
【0109】
実施の形態3.
テスト実施者がテストシナリオを用いて検証した結果、検証仕様に誤りがあった場合、テストシナリオを修正して検証を再度実施する。このとき、例えばテスト実施者が検証仕様の修正すべき内容を検証仕様書にフィードバックすることがある。
実施の形態3においては、テストシナリオから検証仕様書を生成する機能を実現する形態を説明する。
【0110】
実施の形態3に係る構成の一例を説明する。
図13は、本開示を実現するための実施の形態3に係る構成の一例を示す図である。
図14は、本開示における検証仕様文出力部182の内部構成の一例を示す図である。
図15は、本開示の検証仕様書生成のイメージ図である。
【0111】
検証装置10Cは、既に説明した検証装置10Bと同様に、検証仕様書データを取得し、取得した検証仕様書データを用いてテストシナリオデータを生成し、生成したテストシナリオデータを用いて検証を実行して検証結果を出力する。
図13に示す検証装置10Cは、検証部15C、および、テストシナリオ生成装置100C、を含み構成されている。
【0112】
検証部15Cは、既に説明した検証部15と同様に、テストシナリオ生成装置100Cのテストシナリオ出力部140Cにより出力されたテストシナリオを用いて半導体集積回路の論理設計検証を実行して検証結果を出力する。
【0113】
テストシナリオ生成装置100Cは、既に説明したテストシナリオ生成装置100Bの機能に加え、テストシナリオから検証仕様書を生成するように構成されている。
図13に示すテストシナリオ生成装置100Cは、検証仕様受付部110C、条件取得部120C、構成要素抽出部130C、テストシナリオ出力部140C、入力用UI指令部150C、出力用UI指令部160C、検証用データベース170C、テストシナリオ受付部180、第2条件取得部(条件取得部)181、検証仕様文抽出部、および、検証仕様書出力部183、を含み構成されている。
【0114】
検証仕様受付部110C、条件取得部C、構成要素抽出部130C、テストシナリオ出力部140C、および、検証用データベース170C、それぞれの構成は、既に説明した、検証仕様受付部110A,110B、条件取得部A,120B、構成要素抽出部130A,130B、テストシナリオ出力部140A,140B、および、検証用データベース170、と同様であるため、ここでの詳細な説明は省略する。
【0115】
図13に示すテストシナリオ生成装置100Cは、検証仕様書を用いてテストシナリオを生成する機能を実現するための構成に加えて、テストシナリオから検証仕様書を生成する機能を実現するための構成を備えたものであるが、検証仕様書を用いてテストシナリオを生成する機能を有さないように構成してもよい。このように構成した場合、テストシナリオ生成装置100Cは、検証仕様書生成装置である。
【0116】
入力用UI指令部150Cは、既に説明した入力用UI指令部150と同様の機能を有する。
また、入力用UI指令部150Cは、テストシナリオデータを受け付ける受付用画像を提示し、受付画像を介してテストシナリオデータを受け付けると、シナリオデータをテストシナリオ受付部180へ出力する。
【0117】
テストシナリオ受付部180は、外部からテストシナリオを取得する。
テストシナリオ受付部180は、半導体集積回路の論理設計検証における処理ごとに、処理順を示す値、識別用記号により区切られた検証仕様文字列、および、論理設計検証における処理の種類、を含むコメント文と、コメント文に付加されたコメント識別記号とを含むテストシナリオを取得する。
【0118】
第2条件取得部(条件取得部)181は、検証仕様書において検証仕様文を記述するべき領域を示す条件情報(第2条件情報)を取得する。
第2条件取得部は、論理設計検証における処理の種類と検証仕様書データにおいて検証仕様文を記述するべき領域とを対応付ける情報、を含む第2条件情報を取得する。第2条件情報は、例えば図15に示すように、手順に係る処理、期待値に係る処理といった処理の種類と、図7に示す検証仕様書の記載1000における手順の処理に係る検証仕様文記載領域1020、および、期待値の処理に係る検証仕様文記載領域1030の領域とを対応付ける。
【0119】
検証仕様文出力部182は、テストシナリオに含まれるコメント文を用いて処理ごとの検証仕様文を出力する。
検証仕様文出力部182は、テストシナリオ受付部180により取得されたテストシナリオから、コメント識別記号に識別されるコメント文を、論理設計検証における処理ごとの検証仕様文として出力する。
【0120】
検証仕様書出力部183は、検証仕様文出力部182により出力された検証仕様文を、第2条件取得部により取得された第2条件情報に示される領域に記述した検証仕様書データを出力する。
【0121】
図14に示す検証仕様文出力部182は、構成要素抽出部186、検証仕様文生成部187、処理判定部188、検証仕様文書き込み部189、を含み構成されている。
【0122】
構成要素抽出部130は、テストシナリオデータからコメント文を抽出する。
具体的には、構成要素抽出部130は、テストシナリオデータに含まれるコメント識別記号に基づいてコメント文を識別し、コメント文を抽出する。
【0123】
検証仕様文生成部187は、コメント文および処理の種類を用いて処理ごとの検証仕様文を生成して出力する。
【0124】
処理判定部188は、コメント文を用いて処理の種類を判定する。処理判定部188は、判定結果である処理の種類を示す情報を出力する。
【0125】
検証仕様文書き込み部189は、第2条件情報および検証仕様文を用いて、第2条件情報に含まれる検証仕様書における領域に検証仕様文を書き込む。
【0126】
出力用UI指令部160Cは、既に説明した出力用UI指令部160と同様の機能を有する。
また、出力用UI指令部160Cは、検証仕様書出力部183から出力された検証仕様書データを提示するための提示用画像を表示させるよう指令を行う。
【0127】
本開示の検証仕様書生成処理の一例を説明する。
検証仕様書を用いてテストシナリオを生成する機能を実現するための構成による処理は、既に説明した処理と同様であるため、ここでの処理の説明は省略する。
ここでは、テストシナリオから検証仕様書を生成する機能を実現する構成による検証仕様書生成処理の一例を説明する。
【0128】
図16は、本開示の検証仕様書生成処理の一例を示すフローチャートである。
テストシナリオ生成装置100C(検証仕様書生成装置)は、検証仕様書生成処理を開始すると、まず、受付画像提示処理(ステップST3100)を実行する。
受付画像提示処理において、テストシナリオ生成装置100C(検証仕様書生成装置)の入力用UI指令部150Cは、テストシナリオデータを受け付ける受付画像を提示する。
【0129】
次いで、テストシナリオ生成装置100C(検証仕様書生成装置)は、テストシナリオ受付処理(ステップST3200)を実行する。
テストシナリオ受付処理において、テストシナリオ生成装置100C(検証仕様書生成装置)のテストシナリオ受付部180は、入力用UI指令部150Cを介してテストシナリオデータを取得する。
【0130】
次いで、テストシナリオ生成装置100C(検証仕様書生成装置)は、第2条件取得処理(ステップST3300)を実行する。
第2条件取得処理において、テストシナリオ生成装置100C(検証仕様書生成装置)の第2条件取得部(条件取得部)181は、検証仕様書において検証仕様文を記述するべき領域を示す条件情報(第2条件情報)を取得する。
【0131】
次いで、テストシナリオ生成装置100C(検証仕様書生成装置)は、ループ処理を開始する(ステップST3400)。
【0132】
次いで、テストシナリオ生成装置100C(検証仕様書生成装置)は、検証仕様文出力処理(ステップST3500)を実行する。
検証仕様文出力処理において、テストシナリオ生成装置100C(検証仕様書生成装置)の検証仕様文出力部182は、テストシナリオに含まれるコメント文を用いて処理ごとの検証仕様文を出力する。
検証仕様文出力部182は、テストシナリオ受付部180により取得されたテストシナリオから、コメント識別記号に識別されるコメント文を、論理設計検証における処理ごと の検証仕様文として出力する。
【0133】
ここで、検証仕様文出力部182による詳細な処理の例について説明する。
図17は、本開示の検証仕様書生成処理における検証仕様文出力処理の具体的な処理の一例を示すフローチャートである。
【0134】
検証仕様文出力部182は、検証仕様文出力処理を開始すると、まず、コメント文抽出処理(ステップST3510)を実行する。
コメント文抽出処理において、検証仕様文出力部182の構成要素抽出部130は、コメント識別記号に基づいてコメント文を識別し、半導体集積回路の論理設計検証における処理ごとに、処理順を示す値、識別用記号により区切られた検証仕様文字列、および、論理設計検証における処理の種類、を含むコメント文を抽出する。構成要素抽出部130は、コメント文を検証仕様文出力部182へ出力する。
【0135】
次いで、検証仕様文出力部182は、処理種類判定処理(ステップST3520)を実行する。
処理種類判定処理において、処理判定部188は、構成要素抽出部130からコメント文を取得する。処理判定部188は、コメント文を用いて処理の種類を判定する。処理判定部188は、判定結果である処理の種類を示す情報を出力する。
【0136】
次いで、検証仕様文出力部182は、検証仕様文生成処理(ステップST3530)を実行する。
検証仕様文生成処理において、検証仕様文生成部187は、構成要素抽出部130からコメント文を取得する。また、検証仕様文生成部187は、処理判定部188から処理の種類を示す情報を取得する。検証仕様文生成部187は、コメント文および処理の種類を用いて処理ごとの検証仕様文を生成して出力する。
【0137】
次いで、検証仕様文出力部182は、検証仕様文書き込み処理(ステップST3540)を実行する。
検証仕様文書き込み処理において、検証仕様文書き込み部は、第2条件取得部から第2条件情報を取得する。また、検証仕様文書き込み部は、検証仕様文生成部187から検証仕様文を取得する。検証仕様文書き込み部は、第2条件情報および検証仕様文を用いて、第2条件情報に示される検証仕様書の領域に検証仕様文を書き込む。
【0138】
検証仕様文出力部182は、検証仕様文書き込み処理を終了すると、ループ処理の内部処理である一連の処理を終了する。
【0139】
図16の説明に戻る。
次いで、テストシナリオ生成装置100C(検証仕様書生成装置)は、テストシナリオデータに含まれる処理の数のループ処理を繰り返すと、ループ処理を終了する(ステップST3600)。
【0140】
次いで、テストシナリオ生成装置100C(検証仕様書生成装置)は、検証仕様書出力処理(ステップST3700)を実行する。
検証仕様書出力処理において、テストシナリオ生成装置100C(検証仕様書生成装置)の検証仕様書出力部183は、検証仕様書データを出力する。
【0141】
次いで、テストシナリオ生成装置100C(検証仕様書生成装置)は、検証仕様書提示処理(ステップST3800)を実行する。
検証仕様書提示処理において、テストシナリオ生成装置100C(検証仕様書生成装置)の出力用UI指令部160Cは、検証仕様書データを取得すると、ユーザへ検証仕様書データを提示する画像を出力する。
【0142】
テストシナリオ生成装置100C(検証仕様書生成装置)は、検証仕様書提示処理を終了すると、検証仕様書生成処理を終了する。
【0143】
本開示のテストシナリオ生成装置は、以下のように構成した。

「前記論理設計検証における処理ごとに、処理順を示す値、前記識別用記号により区切られた検証仕様文字列、および、前記論理設計検証における処理の種類、を含むコメント文と、前記コメント文に付加されたコメント識別記号とを含むテストシナリオを取得する、テストシナリオ受付部と、
前記論理設計検証における処理の種類と検証仕様書データにおいて検証仕様文を記述するべき領域とを対応付ける情報、を含む第2条件情報を取得する、第2条件取得部と、
前記テストシナリオ受付部により取得された前記テストシナリオから、前記コメント識別記号に識別されるコメント文を、前記論理設計検証における処理ごとの検証仕様文として出力する検証仕様文出力部と、
前記検証仕様文出力部により出力された検証仕様文を、前記第2条件取得部により取得された前記第2条件情報に示される前記領域に記述した検証仕様書データを出力する、検証仕様書出力部と、
をさらに備えたことを特徴とする請求項4に記載のテストシナリオ生成装置。」

これにより、本開示は、テストシナリオから検証仕様書を生成できるので、設計部門へのフィードバックが容易になるテストシナリオ生成装置を提供することができる、という効果を奏する。さらに、本開示は、上記構成を上記プログラムまたは上記検証装置に適用することにより、上記効果と同様の効果を奏する。
【0144】
本開示の検索仕様書生成装置は、以下のように構成した。

「半導体集積回路の論理設計検証における処理ごとに、処理順を示す値、識別用記号により区切られた検証仕様文字列、および、前記論理設計検証における処理の種類、を含むコメント文と、前記コメント文に付加されたコメント識別記号とを含むテストシナリオを取得する、テストシナリオ受付部と、
前記論理設計検証における処理の種類と検証仕様書データにおいて検証仕様文を記述するべき領域とを対応付ける情報、を含む第2条件情報を取得する第2条件取得部と、
前記テストシナリオ受付部により取得された前記テストシナリオから、前記コメント識別記号に識別されるコメント文を、前記論理設計検証における処理ごとの検証仕様文として出力する検証仕様文出力部と、
前記検証仕様文出力部により出力された検証仕様文を、前記第2条件取得部により取得された前記第2条件情報に示される前記領域に記述した検証仕様書データを出力する、検証仕様書出力部と、
ことを特徴とする検証仕様書生成装置。」

これにより、本開示は、論理設計検証の効率を向上させることができる、検証仕様書生成装置を提供することができる、という効果を奏する。さらに、本開示は、上記構成を上記プログラムまたは上記検証装置に適用することにより、上記効果と同様の効果を奏する。
【0145】
本開示のプログラムは、以下のように構成した。

「コンピュータを、
半導体集積回路の論理設計検証における処理ごとに、処理順を示す値、識別用記号により区切られた検証仕様文字列、および、前記論理設計検証における処理の種類、を含むコメント文と、前記コメント文に付加されたコメント識別記号とを含むテストシナリオを取得する、テストシナリオ受付部と、
前記論理設計検証における処理の種類と検証仕様書データにおいて検証仕様文を記述するべき領域とを対応付ける情報、を含む第2条件情報を取得する、第2条件取得部と、
前記テストシナリオ受付部により取得された前記テストシナリオから、前記コメント識別記号に識別されるコメント文を、前記論理設計検証における処理ごとの検証仕様文として出力する検証仕様文出力部と、
前記検証仕様文出力部により出力された検証仕様文を、前記第2条件取得部により取得された第2条件情報に含まれる情報に従って記述した検証仕様書データを出力する、検証仕様書出力部と、
を備えた検証仕様書生成装置として動作させることを特徴とするプログラム。」

これにより、本開示は、論理設計検証の効率を向上させることができる、
プログラムを提供することができる、という効果を奏する。
【0146】
ここで、本開示の機能を実現するハードウェア構成を説明する。
図18は、本開示の機能を実現するためのハードウェア構成の第1の例を示す図である。
図19は、本開示の機能を実現するためのハードウェア構成の第2の例を示す図である。
本開示の検証装置10(10B,10C)、テストシナリオ生成装置100(100A,100B,100C)、検証仕様書生成装置、はそれぞれ、図18または図19に示されるようなハードウェアにより実現される。
【0147】
検証装置10(10B,10C)、テストシナリオ生成装置100(100A,100B,100C)、または、検証仕様書生成装置、は、図18に示すように、例えばプロセッサ10001、メモリ10002、および、通信回路10004により構成される。
プロセッサ10001、メモリ10002は、例えば、コンピュータに搭載されているものである。
メモリ10002には、当該コンピュータを、検証部15,15C、検証仕様受付部110(110A,110B,110C)、条件取得部120(120A,120B,120C)、構成要素抽出部130(130A,130B,130C)、テストシナリオ出力部140(140A,140B,140C)、処理判定部141(141A,141B,141C)、検索部142(142A,142B,142C)、処理記述生成部143(143A,143B,143C)、特定処理判定部144,144C、特定処理記述生成部145,145C、入力用UI指令部150,150C、出力用UI指令部160,160C、テストシナリオ受付部180、第2条件取得部(条件取得部)181、検証仕様文出力部182、検証仕様書出力部183、構成要素抽出部186、検証仕様文生成部187、処理判定部188、検証仕様文書き込み部189、および、図示しない制御部として機能させるためのプログラムが記憶されている。メモリ10002に記憶されたプログラムをプロセッサ10001が読み出して実行することにより、検証部15,15C、検証仕様受付部110(110A,110B,110C)、条件取得部120(120A,120B,120C)、構成要素抽出部130(130A,130B,130C)、テストシナリオ出力部140(140A,140B,140C)、処理判定部141(141A,141B,141C)、検索部142(142A,142B,142C)、処理記述生成部143(143A,143B,143C)、特定処理判定部144,144C、特定処理記述生成部145,145C、入力用UI指令部150,150C、出力用UI指令部160,160C、テストシナリオ受付部180、第2条件取得部(条件取得部)181、検証仕様文出力部182、検証仕様書出力部183、構成要素抽出部186、検証仕様文生成部187、処理判定部188、検証仕様文書き込み部189、および、図示しない制御部の機能が実現される。
また、メモリ10002または図示しない他のメモリにより、図示しない記憶部が実現される。また、検証装置10(10B,10C)、テストシナリオ生成装置100(100A,100B,100C)、または、検証仕様書生成装置、が、検証用データベース170,170B,170C、を備えている場合、検証用データベース170,170B,170Cは、メモリ10002または図示しない他のメモリにより実現される。
また、通信回路10004により、図示しない通信部が実現される。
プロセッサ10001は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、マイクロプロセッサ、マイクロコントローラ又はDSP(Digital Signal Processor)などを用いたものである。
メモリ10002は、RAM(Random Access Memory)、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable Read Only Memory)又はフラッシュメモリ等の不揮発性もしくは揮発性の半導体メモリであってもよいし、ハードディスク又はフレキシブルディスク等の磁気ディスクであってもよいし、CD(Compact Disc)又はDVD(Digital VersatileDisc)等の光ディスクであってもよいし、光磁気ディスクであってもよい。
プロセッサ10001とメモリ10002または通信回路10004は、相互にデータを伝送することが可能な状態に接続されている。また、プロセッサ10001とメモリ10002と通信回路10004とは、入出力インタフェース10003を介して他のハードウェアと相互にデータを伝送することが可能な状態に接続されている。
【0148】
または、検証部15,15C、検証仕様受付部110(110A,110B,110C)、条件取得部120(120A,120B,120C)、構成要素抽出部130(130A,130B,130C)、テストシナリオ出力部140(140A,140B,140C)、処理判定部141(141A,141B,141C)、検索部142(142A,142B,142C)、処理記述生成部143(143A,143B,143C)、特定処理判定部144,144C、特定処理記述生成部145,145C、入力用UI指令部150,150C、出力用UI指令部160,160C、テストシナリオ受付部180、第2条件取得部(条件取得部)181、検証仕様文出力部182、検証仕様書出力部183、構成要素抽出部186、検証仕様文生成部187、処理判定部188、検証仕様文書き込み部189、および、図示しない制御部の機能は、図19に示すように、専用の処理回路20001により実現されるものであっても良い。
また、通信回路10004により、図示しない通信部が実現される。
処理回路20001は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field-Programmable Gate Array)、SoC(System-on-a-Chip)またはシステムLSI(Large-Scale Integration)等を用いたものである。
また、メモリ20002または図示しない他のメモリにより、図示しない記憶部が実現される。
メモリ20002は、RAM(Random Access Memory)、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable Read Only Memory)又はフラッシュメモリ等の不揮発性もしくは揮発性の半導体メモリであってもよいし、ハードディスク又はフレキシブルディスク等の磁気ディスクであってもよいし、CD(Compact Disc)又はDVD(Digital VersatileDisc)等の光ディスクであってもよいし、光磁気ディスクであってもよい。
また、通信回路20004により、図示しない通信部が実現される。
処理回路20001とメモリ20002または通信回路20004とは、相互にデータを伝送することが可能な状態に接続されている。また、処理回路20001とメモリ20002と通信回路20004とは、入出力インタフェース20003を介して他のハードウェアと相互にデータを伝送することが可能な状態に接続されている。
なお、検証部15,15C、検証仕様受付部110(110A,110B,110C)、条件取得部120(120A,120B,120C)、構成要素抽出部130(130A,130B,130C)、テストシナリオ出力部140(140A,140B,140C)、処理判定部141(141A,141B,141C)、検索部142(142A,142B,142C)、処理記述生成部143(143A,143B,143C)、特定処理判定部144,144C、特定処理記述生成部145,145C、入力用UI指令部150,150C、出力用UI指令部160,160C、テストシナリオ受付部180、第2条件取得部(条件取得部)181、検証仕様文出力部182、検証仕様書出力部183、構成要素抽出部186、検証仕様文生成部187、処理判定部188、検証仕様文書き込み部189、および、図示しない制御部の機能をそれぞれ別の処理回路で実現しても良いし,まとめて処理回路で実現しても良い。
【0149】
または、検証部15,15C、検証仕様受付部110(110A,110B,110C)、条件取得部120(120A,120B,120C)、構成要素抽出部130(130A,130B,130C)、テストシナリオ出力部140(140A,140B,140C)、処理判定部141(141A,141B,141C)、検索部142(142A,142B,142C)、処理記述生成部143(143A,143B,143C)、特定処理判定部144,144C、特定処理記述生成部145,145C、入力用UI指令部150,150C、出力用UI指令部160,160C、テストシナリオ受付部180、第2条件取得部(条件取得部)181、検証仕様文出力部182、検証仕様書出力部183、構成要素抽出部186、検証仕様文生成部187、処理判定部188、検証仕様文書き込み部189、
および、図示しない制御部のうちの一部の機能がプロセッサ10001およびメモリ10002により実現され、かつ、残りの機能が処理回路20001により実現されるものであっても良い。
【0150】
なお、本開示は、各実施の形態の自由な組み合わせ、各実施の形態の任意の構成要素の変形、または各実施の形態の任意の構成要素の省略が可能である。
【0151】
本開示の技術は、半導体集積回路の論理設計検証の効率を向上させることができるので、半導体集積回路の論理設計検証に係る技術に用いるのに適している。
【符号の説明】
【0152】
10(10B,10C) 検証装置、15,15C 検証部、100(100A,100B,100C) テストシナリオ生成装置、110(110A,110B,110C) 検証仕様受付部、120(120A,120B,120C) 条件取得部、130(130A,130B,130C) 構成要素抽出部、140(140A,140B,140C) テストシナリオ出力部、141(141A,141B,141C) 処理判定部、142(142A,142B,142C) 検索部、143(143A,143B,143C) 処理記述生成部、144,144C 特定処理判定部、145,145C 特定処理記述生成部、150,150C 入力用UI指令部、160,160C 出力用UI指令部、170,170C 検証用データベース、180 テストシナリオ受付部、181 第2条件取得部(条件取得部)、182 検証仕様文出力部、183 検証仕様書出力部、186 構成要素抽出部、187 検証仕様文生成部、188 処理判定部、189 検証仕様文書き込み部、1000 検証仕様書記載例、1010 番号(処理順を示す値)、1020 手順に係る検証仕様文記載領域、1030 期待値に係る検証仕様文記載領域、1100 信号名対比表、1110 信号名文字列、1120 テストシナリオ用文字列、1200 タスク検索条件、1210 タスク名文字列、1220 テストシナリオ用文字列。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12A
図12B
図13
図14
図15
図16
図17
図18
図19