JP2011165166A - 設計検証装置および設計検証プログラム - Google Patents
設計検証装置および設計検証プログラム Download PDFInfo
- Publication number
- JP2011165166A JP2011165166A JP2010183203A JP2010183203A JP2011165166A JP 2011165166 A JP2011165166 A JP 2011165166A JP 2010183203 A JP2010183203 A JP 2010183203A JP 2010183203 A JP2010183203 A JP 2010183203A JP 2011165166 A JP2011165166 A JP 2011165166A
- Authority
- JP
- Japan
- Prior art keywords
- verification
- msc
- scenario
- name
- design
- 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.)
- Withdrawn
Links
- 238000012942 design verification Methods 0.000 title claims abstract description 59
- 238000012795 verification Methods 0.000 claims abstract description 241
- 238000000034 method Methods 0.000 claims abstract description 218
- 238000012545 processing Methods 0.000 claims abstract description 209
- 238000013461 design Methods 0.000 claims abstract description 133
- 230000006870 function Effects 0.000 description 124
- 230000008569 process Effects 0.000 description 92
- 238000010586 diagram Methods 0.000 description 50
- 230000005540 biological transmission Effects 0.000 description 37
- 230000007704 transition Effects 0.000 description 32
- 238000003860 storage Methods 0.000 description 29
- 238000004364 calculation method Methods 0.000 description 22
- 239000011159 matrix material Substances 0.000 description 21
- 238000012360 testing method Methods 0.000 description 16
- 238000013139 quantization Methods 0.000 description 10
- 238000011161 development Methods 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000011019 functional design specification Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007562 laser obscuration time method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
- G01R31/318364—Generation of test inputs, e.g. test vectors, patterns or sequences as a result of hardware simulation, e.g. in an HDL environment
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
- G01R31/318342—Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
- G01R31/318357—Simulation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
【課題】設計仕様の検証項目毎の制約条件を網羅する検証用情報を生成すること。
【解決手段】設計検証装置1は、設計対象の第1の設計仕様2を検証する検証用情報#1、#2が有する制約条件に、設計対象の第2の設計仕様4のAモード、Bモード、Cモードの処理手順20d、20e、20fが備えるシーケンスに設けられた、第1の設計仕様2が備えるシーケンスに対するリンクに基づいて、第2の設計仕様4の制約条件を付与する制約条件付与部1cと、制約条件付与部1cによって制約条件が付与された検証用情報#1、#2を、対応するモードとともに出力する出力部1dと、を有している。
【選択図】図1
【解決手段】設計検証装置1は、設計対象の第1の設計仕様2を検証する検証用情報#1、#2が有する制約条件に、設計対象の第2の設計仕様4のAモード、Bモード、Cモードの処理手順20d、20e、20fが備えるシーケンスに設けられた、第1の設計仕様2が備えるシーケンスに対するリンクに基づいて、第2の設計仕様4の制約条件を付与する制約条件付与部1cと、制約条件付与部1cによって制約条件が付与された検証用情報#1、#2を、対応するモードとともに出力する出力部1dと、を有している。
【選択図】図1
Description
本発明は設計検証装置および設計検証プログラムに関する。
ソフトウェアやハードウェアの開発対象を設計開発するに際し、開発対象に対する動作検証を行い、開発対象の動作を確認しつつ、設計を進めることが行われている。
開発対象には、一般的に複数の設計仕様を設けることができる。例えば、開発対象が回路である場合、その回路の機能に関する仕様を設けることができる。また、CPF(Common Power Format)やUPF(Unified Power Format)等の回路の電力制御のための制御信号を管理する仕様(電力管理仕様)を設けることができる。
開発対象には、一般的に複数の設計仕様を設けることができる。例えば、開発対象が回路である場合、その回路の機能に関する仕様を設けることができる。また、CPF(Common Power Format)やUPF(Unified Power Format)等の回路の電力制御のための制御信号を管理する仕様(電力管理仕様)を設けることができる。
開発対象に設けた一つの仕様を変更する場合、その仕様の変更に伴い、他の仕様を変更する必要が生じる場合がある。
例えば、開発対象が回路である場合、設計の各フェーズで実装回路の設計変更に伴い、消費電力の測定、実装を変更することの繰り返し(iteration)の作業が行われている。
例えば、開発対象が回路である場合、設計の各フェーズで実装回路の設計変更に伴い、消費電力の測定、実装を変更することの繰り返し(iteration)の作業が行われている。
電力管理仕様に基づいた設計を行う場合、開発対象全体に対する制御の概要をアーキテクチャレベルで設定した上で実装を行っている。
例えば、電力管理仕様にクロックゲーティングが設定されている場合、開発対象の回路のRTL(Register Transfer Level)を生成した後に、RTLの構造解析を行う。そして、CADソフトウェアが、クロックゲーティングとして合成しやすいRTLに変更したり、ユーザが、手作業によってクロックゲーティングとして合成しやすいRTLに変更したりしている。
例えば、電力管理仕様にクロックゲーティングが設定されている場合、開発対象の回路のRTL(Register Transfer Level)を生成した後に、RTLの構造解析を行う。そして、CADソフトウェアが、クロックゲーティングとして合成しやすいRTLに変更したり、ユーザが、手作業によってクロックゲーティングとして合成しやすいRTLに変更したりしている。
設計変更に伴い消費電力を測定する際には、回路の機能を検証するテストベクタ(test vector)を作成し、そのテストベクタを実行した結果、得られる消費電力を取得し、目標とする消費電力とのずれを計算し、ずれが生じていれば実装を変更するような方法を用いている。
しかしながら、この方法は、機能を検証するベクタを用いているため、電力管理仕様を網羅的に検証すること、すなわち、電力制御のための制御信号の制御が正しく行われているか否かを網羅的に検証することが難しいという問題がある。
なお、電力管理仕様だけでなく、他の仕様に基づいて設計を検証する場合についても同様に、その仕様の制御が正しく行われているか否かを検証することが難しいという問題がある。
本発明はこのような点に鑑みてなされたものであり、設計仕様の検証項目毎の制約条件を網羅する検証用情報を生成することができる設計検証装置および設計検証プログラムを提供することを目的とする。
上記目的を達成するために、開示の設計検証装置が提供される。この設計検証装置は、設計対象の第1の設計仕様を検証する検証用情報が有する制約条件に、設計対象の第2の設計仕様の検証項目毎の処理手順が備える処理単位に設けられた、第1の設計仕様が備える処理単位に対するリンクに基づいて、第2の設計仕様の制約条件を付与する制約条件付与部と、制約条件付与部によって制約条件が付与された検証用情報を識別する情報を、対応する検証項目とともに出力する出力部と、を有している。
開示の設計検証装置によれば、設計仕様の検証項目毎の制約条件を網羅する検証用情報を生成することができる。
以下、実施の形態を、図面を参照して詳細に説明する。
まず、第1の実施の形態の設計検証装置について説明し、その後、第2の実施の形態以降、設計検証装置をより具体的に説明する。
まず、第1の実施の形態の設計検証装置について説明し、その後、第2の実施の形態以降、設計検証装置をより具体的に説明する。
<第1の実施の形態>
図1および図2は、第1の実施の形態の設計検証装置を説明する図である。
実施の形態の設計検証装置1は、生成部1aと、格納部1bと、制約条件付与部1cと、出力部1dとを有している。
図1および図2は、第1の実施の形態の設計検証装置を説明する図である。
実施の形態の設計検証装置1は、生成部1aと、格納部1bと、制約条件付与部1cと、出力部1dとを有している。
生成部1aは、設計対象の設計仕様である第1の仕様を検証する検証用情報を生成する。
ここで、設計対象は、設計検証装置1によるテストおよび検証対象となるハードウェアコンポーネントまたはシステムやソフトウェアモジュールである。
ここで、設計対象は、設計検証装置1によるテストおよび検証対象となるハードウェアコンポーネントまたはシステムやソフトウェアモジュールである。
この設計対象の設計仕様は、実装が守るべき約束事を記したものであり、少なくとも1つの機能により実現される。
図1では、機能2aを有する第1の設計仕様2を示している。機能2aは、機能2aを実現する3つの処理手順(処理のシナリオ)20aと処理手順20bと処理手順20cとを有している。
図1では、機能2aを有する第1の設計仕様2を示している。機能2aは、機能2aを実現する3つの処理手順(処理のシナリオ)20aと処理手順20bと処理手順20cとを有している。
処理手順20aは、機能2aの基本動作についての処理手順である。処理手順20bは、例外動作についての処理手順である。処理手順20cは、代替動作についての処理手順である。
各処理手順20a、20b、20cそれぞれには、処理手順の実行を制約する制約条件(ガード条件)として、事前条件、事後条件、不変条件(の1つまたは複数)が定義されている場合がある。
事前条件とは、機能を実現する一連の操作の実行前に満たすべき(真となる)条件である。
事後条件とは、一連の操作の実行後に満たすべき条件である。
事後条件とは、一連の操作の実行後に満たすべき条件である。
不変条件とは、事後条件が発生するまでの間(一連の操作の実行中)に要求される条件である。
図1では、一例として、基本動作、例外動作、代替動作ともに事前条件が定義されている。
図1では、一例として、基本動作、例外動作、代替動作ともに事前条件が定義されている。
ところで、処理手順20a〜20cは枝構造を有しており、ノードとなる部分に動作(例えば、処理手順20aであれば基本動作)の実行すべき処理単位が設定されている。この処理単位としては、例えば、機能2aの実現に関わっている全てのオブジェクト間のやり取りを明確にした仕様であるメッセージ・シーケンス・チャート(Message Sequence Chart)等が挙げられる。なお、メッセージ・シーケンス・チャートについては、特許文献1を参照のこと。
処理手順20a〜処理手順20cの関係は、図2に示す構造体3によって示される。
この構造体3を用いることで、第1の設計仕様2をコンパクトに表示することができる。
この構造体3を用いることで、第1の設計仕様2をコンパクトに表示することができる。
構造体3は、初期状態ブロックと、第1のシーケンス、第2のシーケンス、第3のシーケンス、第4のシーケンス、第5のシーケンスと、これら各シーケンス間の関係を示すブランチ(branch)およびマージ(merge)を有している。
各シーケンスのブロックを接続する矢印は、機能が実行される順序を記述する。
処理手順20aは、初期状態ブロック3aから第1のシーケンス、第2のシーケンス、第3のシーケンスの順番に処理が行われることを示している。
処理手順20aは、初期状態ブロック3aから第1のシーケンス、第2のシーケンス、第3のシーケンスの順番に処理が行われることを示している。
処理手順20bは、初期状態ブロック3aから第1のシーケンス、第2のシーケンス、第4のシーケンスの順番に処理が行われることを示している。
処理手順20cは、初期状態ブロック3aから第1のシーケンス、第5のシーケンスの順番に処理が行われることを示している。
処理手順20cは、初期状態ブロック3aから第1のシーケンス、第5のシーケンスの順番に処理が行われることを示している。
従って、構造体3は、処理手順20a、20bと処理手順20cは、第1のシーケンスまで同じ動作を有するが、それ以降の動作は異なっていることを示す。また、処理手順20aと処理手順20bは、第2のシーケンスまで同じ動作を有するが、それ以降の動作は異なっていることを示す。
構造体3のエッジは有向であり、制約条件が付与されている場合がある。
制約条件は、各シーケンスの終了後、制約条件が成立すればエッジ先のシーケンスに遷移することを示している。
制約条件は、各シーケンスの終了後、制約条件が成立すればエッジ先のシーケンスに遷移することを示している。
図2では、初期状態ブロック3aから第1のシーケンスに遷移する。そして、第1のシーケンスの処理後、i>0の制約条件が成立すれば、第2のシーケンスに遷移する。そして、第2のシーケンスの処理後、j>0の制約条件が成立すれば、第3のシーケンスに遷移する。一方、第2のシーケンスの処理後、j≦0の制約条件が成立すれば、第4のシーケンスに遷移する。
また、第1のシーケンスの処理後、i≦0の制約条件が成立すれば、第5のシーケンスに遷移する。
ところで、検証用情報は、処理手順を検証(例えば処理手順の成否を検証)するものである。この検証用情報には、各処理手順が有する処理単位それぞれに、設計仕様の検証対象となる部位(検証対象部位)を識別する識別情報(ラベル)が関連付けられている場合がある。
ところで、検証用情報は、処理手順を検証(例えば処理手順の成否を検証)するものである。この検証用情報には、各処理手順が有する処理単位それぞれに、設計仕様の検証対象となる部位(検証対象部位)を識別する識別情報(ラベル)が関連付けられている場合がある。
図1に示す機能2aの場合、生成部1aは、処理手順20a、すなわち、基本動作に対し、処理手順20aが備える第1のシーケンス、第2のシーケンス、第3のシーケンスそれぞれに設計仕様の検証対象部位を識別する識別情報を関連付けた検証用情報を生成する。
検証対象部位は、例えば、機能、処理手順、処理単位等が挙げられる。図2では、第1のシーケンス、第2のシーケンス、第3のシーケンスそれぞれに、機能2aを識別する識別情報「機能#1」、処理手順20aを識別する識別情報「基本動作」を関連付ける。
また、生成部1aは、処理手順20b、すなわち、例外動作に対し、処理手順20bが備える第1のシーケンス、第2のシーケンス、第4のシーケンスそれぞれに設計仕様の検証対象部位を関連付けた検証用情報を生成する。
図2では、第1のシーケンス、第2のシーケンス、第4のシーケンスそれぞれに、機能2aを識別する識別情報「機能#1」、処理手順20bを識別する識別情報「例外動作」を関連付ける。
さらに、生成部1aは、処理手順20c、すなわち、代替動作に対し、処理手順20cが備える第1のシーケンス、第5のシーケンスそれぞれに設計仕様の検証対象部位を関連付けた検証用情報を生成する。
図2では、第1のシーケンス、第5のシーケンスそれぞれに、機能2aを識別する識別情報「機能#1」、処理手順20cを識別する識別情報「代替動作」を関連付ける。
この結果、第1のシーケンスには、識別情報「機能#1:基本動作」、「機能#1:例外動作」、「機能#1:代替動作」が関連付けられる。第2のシーケンスには、識別情報「機能#1:基本動作」、「機能#1:例外動作」が関連付けられる。第3のシーケンスには、識別情報「機能#1:基本動作」が関連付けられる。第4のシーケンスには、識別情報「機能#1:例外動作」が関連付けられる。第5のシーケンスには、識別情報「機能#1:代替動作」が関連付けられる。
この結果、第1のシーケンスには、識別情報「機能#1:基本動作」、「機能#1:例外動作」、「機能#1:代替動作」が関連付けられる。第2のシーケンスには、識別情報「機能#1:基本動作」、「機能#1:例外動作」が関連付けられる。第3のシーケンスには、識別情報「機能#1:基本動作」が関連付けられる。第4のシーケンスには、識別情報「機能#1:例外動作」が関連付けられる。第5のシーケンスには、識別情報「機能#1:代替動作」が関連付けられる。
そして、生成部1aは、同じ識別情報を備えるシーケンスを抽出し、抽出したシーケンスの集合をそれぞれ検証用情報とする。
図2では、識別情報「基本動作」を備える第1のシーケンス、第2のシーケンス、第3のシーケンスの集合を1つの検証用情報3bとする。換言すれば、検証用情報3bは、機能2aの基本動作を検証するための情報となる。
図2では、識別情報「基本動作」を備える第1のシーケンス、第2のシーケンス、第3のシーケンスの集合を1つの検証用情報3bとする。換言すれば、検証用情報3bは、機能2aの基本動作を検証するための情報となる。
また、識別情報「例外動作」を備える第1のシーケンス、第2のシーケンス、第4のシーケンスの集合を1つの検証用情報3cとする。換言すれば、検証用情報3cは、機能2aの例外動作を検証するための情報となる。
さらに、識別情報「代替動作」を備える第1のシーケンス、第5のシーケンスの集合を1つの検証用情報3dとする。換言すれば、検証用情報3dは、機能2aの代替動作を検証するための情報となる。
再び図1に戻って説明する。
図1では、第2の設計仕様4は、それぞれ異なる検証項目(Aモード〜Cモード)を備えている。
図1では、第2の設計仕様4は、それぞれ異なる検証項目(Aモード〜Cモード)を備えている。
各モードは、それぞれ処理手順(処理のシナリオ)を有している。Aモードは、処理手順20dを有している。Bモードは、処理手順20eを有している。Cモードは、処理手順20fを有している。
処理手順20d〜20fは、それぞれ枝構造を有しており、ノードとなる部分に各モードの実行すべき処理単位が設定されている。
処理手順20dは、処理単位である第6のシーケンス、第7のシーケンス、第8のシーケンスの順番に処理が行われることを示している。
処理手順20dは、処理単位である第6のシーケンス、第7のシーケンス、第8のシーケンスの順番に処理が行われることを示している。
処理手順20eは、処理単位である第6のシーケンス、第7のシーケンス、第9のシーケンスの順番に処理が行われることを示している。
処理手順20fは、処理単位である第6のシーケンス、第10のシーケンスの順番に処理が行われることを示している。
処理手順20fは、処理単位である第6のシーケンス、第10のシーケンスの順番に処理が行われることを示している。
制約条件付与部1cは、各モードの処理手順20d〜20fに基づいて、設計対象の第2の設計仕様4の制約条件を作成する。そして、作成された制約条件を、検証用情報3b、3c、3dに付与する。
なお、検証用情報3b、3c、3dのどの制約条件に、作成されたどの制約条件を付与するかは、例えば、処理手順20d〜20fがそれぞれ有する処理単位に、検証用情報3b、3c、3dが有する処理単位に対するリンクが設定される等して予め定められている。
図1では、第6のシーケンスは、第1のシーケンスへのリンクが設定されている。これにより、第6のシーケンスは、第1のシーケンスに関連づけられていることを示している。同様に、第7のシーケンスは、第2のシーケンスへのリンクが設定されている。第8のシーケンスは、第3のシーケンスへのリンクが設定されている。第9のシーケンスは、第4のシーケンスへのリンクが設定されている。第10のシーケンスは、第5のシーケンスへのリンクが設定されている。
本実施の形態では、制約条件付与部1cは、第1の設計仕様2が有する処理単位に対し、共通のリンクが設けられた処理単位を有する処理手順20d〜20fに遷移する条件を、第2の設計仕様4の制約条件とする。
図3は、制約条件を付与する例を示す図である。なお、図3では、識別情報の図示を省略している。
第1のシーケンスへのリンクが設定されている第6シーケンスを有する処理手順は、処理手順20d〜20fである。
第1のシーケンスへのリンクが設定されている第6シーケンスを有する処理手順は、処理手順20d〜20fである。
従って、制約条件付与部1cは、これらの処理手順20d〜20fが第1のシーケンスへのリンクが設定されているシーケンスを有する処理手順であることを示すために、第6のシーケンスを有する処理手順20dのモード名「Aモード」、処理手順20eのモード名「Bモード」、処理手順20fのモード名「Cモード」を、それぞれ「or」で接続する。これを第1のシーケンスの事前条件とする。そして、この事前条件を第1のシーケンスと関連づける。
第2のシーケンスへのリンクが設定されている第7シーケンスを有する処理手順は、処理手順20d、20eである。
従って、制約条件付与部1cは、これらの処理手順20d、20eが第2のシーケンスへのリンクが設定されているシーケンスを有する処理手順であることを示すために、第7のシーケンスを有する処理手順20dのモード名「Aモード」、処理手順20eのモード名「Bモード」を、それぞれ「or」で接続する。これを第2のシーケンスの事前条件とする。そして、この事前条件を第2のシーケンスと関連づける。
従って、制約条件付与部1cは、これらの処理手順20d、20eが第2のシーケンスへのリンクが設定されているシーケンスを有する処理手順であることを示すために、第7のシーケンスを有する処理手順20dのモード名「Aモード」、処理手順20eのモード名「Bモード」を、それぞれ「or」で接続する。これを第2のシーケンスの事前条件とする。そして、この事前条件を第2のシーケンスと関連づける。
第3のシーケンスへのリンクが設定されている第8シーケンスを有する処理手順は、処理手順20dである。
従って、制約条件付与部1cは、処理手順20dが第3のシーケンスへのリンクが設定されているシーケンスを有する処理手順であることを示すために、第8のシーケンスを有する処理手順20dのモード名「Aモード」を、第3のシーケンスの事前条件とする。そして、この事前条件を第3のシーケンスと関連づける。
従って、制約条件付与部1cは、処理手順20dが第3のシーケンスへのリンクが設定されているシーケンスを有する処理手順であることを示すために、第8のシーケンスを有する処理手順20dのモード名「Aモード」を、第3のシーケンスの事前条件とする。そして、この事前条件を第3のシーケンスと関連づける。
第4のシーケンスへのリンクが設定されている第9シーケンスを有する処理手順は、処理手順20eである。
従って、制約条件付与部1cは、処理手順20eが第4のシーケンスへのリンクが設定されているシーケンスを有する処理手順であることを示すために、第9のシーケンスを有する処理手順20eのモード名「Bモード」を、第4のシーケンスの事前条件とする。そして、この事前条件を第4のシーケンスと関連づける。
従って、制約条件付与部1cは、処理手順20eが第4のシーケンスへのリンクが設定されているシーケンスを有する処理手順であることを示すために、第9のシーケンスを有する処理手順20eのモード名「Bモード」を、第4のシーケンスの事前条件とする。そして、この事前条件を第4のシーケンスと関連づける。
第5のシーケンスへのリンクが設定されている第10シーケンスを有する処理手順は、処理手順20fである。
従って、制約条件付与部1cは、処理手順20fが第5のシーケンスへのリンクが設定されているシーケンスを有する処理手順であることを示すために、第10のシーケンスを有する処理手順20fのモード名「Cモード」を、第5のシーケンスの事前条件とする。そして、この事前条件を第5のシーケンスと関連づける。
従って、制約条件付与部1cは、処理手順20fが第5のシーケンスへのリンクが設定されているシーケンスを有する処理手順であることを示すために、第10のシーケンスを有する処理手順20fのモード名「Cモード」を、第5のシーケンスの事前条件とする。そして、この事前条件を第5のシーケンスと関連づける。
そして、制約条件付与部1cは、生成された事前条件を格納部1bに格納されている検証用情報3b〜3dが有する制約条件に付与する。
具体的には、「初期状態ブロック3aからモード名「Aモード」、「Bモード」、「Cモード」のいずれかの処理手順が選択されたときに第1のシーケンスに遷移する」という事前条件を付与する。
具体的には、「初期状態ブロック3aからモード名「Aモード」、「Bモード」、「Cモード」のいずれかの処理手順が選択されたときに第1のシーケンスに遷移する」という事前条件を付与する。
また、「第1のシーケンスからモード名「Aモード」、「Bモード」のいずれかの処理手順が選択されたときに第2のシーケンスに遷移する」という事前条件を付与する。ここで、第2のシーケンスには、既に事前条件i>0が設定されている。この場合、既に設定されている事前条件i>0と付与する事前条件を「&」で接続する。これにより、第1のシーケンスからモード名「Aモード」、「Bモード」のいずれかの処理手順が選択され、かつ、i>0であるときに第2のシーケンスに遷移することとなる。
また、「第2のシーケンスからモード名「Aモード」の処理手順が選択されたときに第3のシーケンスに遷移する」という事前条件を付与する。ここで、第3のシーケンスには、既に事前条件j>0が設定されている。この場合、既に設定されている事前条件j>0と付与する事前条件を「&」で接続する。これにより、第2のシーケンスからモード名「Aモード」の処理手順が選択され、かつ、j>0であるときに第3のシーケンスに遷移することとなる。
また、「第2のシーケンスからモード名「Bモード」の処理手順が選択されたときに第4のシーケンスに遷移する」という事前条件を付与する。ここで、第4のシーケンスには、既に事前条件j≦0が設定されている。この場合、既に設定されている事前条件j≦0と付与する事前条件を「&」で接続する。これにより、第2のシーケンスからモード名「Bモード」の処理手順が選択され、かつ、j≦0であるときに第4のシーケンスに遷移することとなる。
また、「第1のシーケンスからモード名「Cモード」の処理手順が選択されたときに第5のシーケンスに遷移する」という事前条件を付与する。ここで、第5のシーケンスには、既に事前条件i≦0が設定されている。この場合、既に設定されている事前条件i≦0と付与する事前条件を「&」で接続する。これにより、第1のシーケンスからモード名「Cモード」の処理手順が選択され、かつ、i≦0であるときに第5のシーケンスに遷移することとなる。
これにより、モード名「Aモード」の処理手順20dを実現する検証用情報は、検証用情報3bのみに絞られる。モード名「Bモード」の処理手順20eを実現する検証用情報は、検証用情報3cのみに絞られる。モード名「Cモード」の処理手順20fを実現する検証用情報は、検証用情報3dのみに絞られる。
再び図1に戻って説明する。
出力部1dは、第2の設計仕様4の処理手順それぞれに対応する検証用情報3b〜3dの集合を識別する情報を出力する。
出力部1dは、第2の設計仕様4の処理手順それぞれに対応する検証用情報3b〜3dの集合を識別する情報を出力する。
従って、モード名「Aモード」に検証用情報3bを示す検証用情報#1を関連付けたレコードと、モード名「Bモード」に検証用情報3cを示す検証用情報#2を関連付けたレコードと、モード名「Cモード」に検証用情報3dを示す検証用情報#3を関連付けたレコードとを備える出力結果5を出力する。
このような設計検証装置1によれば、制約条件付与部1cが、設計対象の設計仕様である第2の設計仕様4の制約条件を作成し、作成された制約条件を、検証用情報3b、3c、3dに付与するようにした。これにより、設計仕様の検証項目毎の制約条件を網羅する検証用情報3b、3c、3dを生成することができる。
これにより、ユーザは、各モードに対応する検証用情報3b、3c、3dを検証することで、第2の設計仕様4の制御のための制御信号が正しく行われているかの網羅的な検証を行うことができるため、検証漏れや重複検証を抑制することができる。具体的には、処理手順20a〜20cに対し、制約条件を付与したので、その制約条件を満たさない処理手順は、そのモードを検証する検証用情報から除外される。一方、制約条件を満たす処理手順を検証する検証用情報の組み合わせについては全て出力されるので漏れがない。例えば、Cモードについて検証を行うときは、第2のシーケンスに設けられた制約条件を満たさないので、第2のシーケンスには遷移しない。これにより、第2のシーケンスに遷移する検証用情報3b、3cは、検証の対象外とすることができる。従って、前述した具体例では、モード名「Cモード」の処理手順20fを検証するときは、検証用情報#3のみを実行するだけでよい。
なお、本実施の形態では、設計検証装置1が、検証用情報を生成する生成部1aを備える構成とした。しかし、これに限らず、設計検証装置1が、他の装置によって生成された、検証用情報を読み込み、制約条件付与部1cが、読み込んだ検証用情報に制約条件を付与するようにしてもよい。この場合、設計検証装置1は、生成部1aおよび格納部1bの機能を省略することができる。
また、本実施の形態では、各処理手順が備えるシーケンスそれぞれに設計仕様の検証対象部位を関連付けた検証用情報を生成した。これにより、設計仕様の複数の検証対象部位およびこれら検証対象部位の処理優先度情報の入力に応じて、検証用情報毎に処理優先度を付与するような処理を行うこともできる。
但し、生成部1aは、処理手順それぞれが有するシーケンスが明らかになる検証用情報を生成すればよく、検証用情報に、各処理手順が備えるシーケンスそれぞれに設計仕様の検証対象部位を関連付ける処理は、省略してもよい。
以下、第1の実施の形態をより具体的に説明する。
<第2の実施の形態>
図4は、第2の実施の形態のシステムを示す図である。
<第2の実施の形態>
図4は、第2の実施の形態のシステムを示す図である。
システム100は、設計検証装置10と、信号インタフェース200とテスト対象装置300とを有している。
設計検証装置10は、テスト対象装置300が設計仕様に従って動作するか判断するため、設計仕様が備えるシナリオ毎に、これらシナリオを検証するための検証用シナリオを生成する。
設計検証装置10は、テスト対象装置300が設計仕様に従って動作するか判断するため、設計仕様が備えるシナリオ毎に、これらシナリオを検証するための検証用シナリオを生成する。
そして、設計検証装置10は、検証用シナリオに優先順位を付与する。
さらに、設計検証装置10は、優先順位が付与された検証用シナリオを利用して、テスト対象装置300がこの検証用シナリオに従って動作するか否かを判断するため、信号インタフェース200を介しテスト対象装置300と通信する。
さらに、設計検証装置10は、優先順位が付与された検証用シナリオを利用して、テスト対象装置300がこの検証用シナリオに従って動作するか否かを判断するため、信号インタフェース200を介しテスト対象装置300と通信する。
この際、付与した優先順位に従って、検証用シナリオをテスト対象装置300に流す。
信号インタフェース200は、設計検証装置10とテスト対象装置300とを接続するための装置を表す。信号インタフェース200は、設計検証装置10により通信される信号を設計検証装置10による利用に適した信号に変換する。
信号インタフェース200は、設計検証装置10とテスト対象装置300とを接続するための装置を表す。信号インタフェース200は、設計検証装置10により通信される信号を設計検証装置10による利用に適した信号に変換する。
なお、例えば、設計検証装置10とテスト対象装置300が互換的な信号を使用する場合、信号インタフェース200は省略されてもよい。
テスト対象装置300は、設計検証装置10によるテストおよび検証対象となるハードウェアコンポーネントまたはシステムやソフトウェアモジュールを表す。
テスト対象装置300は、設計検証装置10によるテストおよび検証対象となるハードウェアコンポーネントまたはシステムやソフトウェアモジュールを表す。
テスト対象装置300は、製品開発中に製造される設計プロトタイプであってもよいし、設計検証装置10によって生成されるステートマシン(State Machine)であってもよい。以下、テスト対象装置300がLSI(Large Scale Integration)である場合を例にとって説明する。
<LSIの設計仕様>
図5は、第2の実施の形態のLSIの設計仕様の構成を示す図である。
前述したように、設計仕様とは、実装が守るべき約束事を記したものであり、複数の機能により実現される。
図5は、第2の実施の形態のLSIの設計仕様の構成を示す図である。
前述したように、設計仕様とは、実装が守るべき約束事を記したものであり、複数の機能により実現される。
なお、設計仕様は、リスト構造で表現される。このリスト構造は、例えば、XML(eXtensible Markup Language)形式で表現される。
各機能ブロック21、22、23には、それぞれ1つの機能が対応付けられている。対応付けられた各機能は、例えば、ソフトウェアにより呼び出されるハードウェアで実現する機能であり、または、ハードウェアに依存するソフトウェアで実現する機能である。
各機能ブロック21、22、23には、それぞれ1つの機能が対応付けられている。対応付けられた各機能は、例えば、ソフトウェアにより呼び出されるハードウェアで実現する機能であり、または、ハードウェアに依存するソフトウェアで実現する機能である。
各機能ブロック21、22、23は、それぞれ、1つまたは複数のシナリオブロックを有している。例えば、機能ブロック21は、シナリオブロック21aとシナリオブロック21bとを有している。
各シナリオブロック21a、21bには、それぞれ、1つのシナリオが対応付けられている。対応付けられた各シナリオは、機能の実体であり、呼び出し時の条件により複数存在する。
より詳しくは、シナリオは、機能を実現するために実行される一連の操作を定義するものである。言い換えると、シナリオは、オブジェクト間で送受信されるメッセージの順序および組み合わせを表すものである。
各シナリオブロック21a、21bは、それぞれ、1つまたは複数のメッセージ・シーケンス・チャートブロック(以下、「MSCブロック」と言う)を有している。例えば、シナリオブロック21aは、MSCブロック211aと、MSCブロック212aとを有している。
MSCブロック211a、212aには、それぞれ、1つのメッセージ・シーケンス・チャートが対応付けられている。
メッセージ・シーケンス・チャートは、シナリオが備えるサブ機能群である。具体的には、メッセージ・シーケンス・チャートは、機能の実現に関わっている全てのオブジェクト間のやり取りを明確にしたものである。このオブジェクトは、LSI20が備える機能や、このLSI20を含むシステムに干渉する外部環境を含む。
メッセージ・シーケンス・チャートは、シナリオが備えるサブ機能群である。具体的には、メッセージ・シーケンス・チャートは、機能の実現に関わっている全てのオブジェクト間のやり取りを明確にしたものである。このオブジェクトは、LSI20が備える機能や、このLSI20を含むシステムに干渉する外部環境を含む。
<LSIの設計仕様のデータ構造>
次に、LSI20の設計仕様のデータ構造を説明する。
図6は、LSIの設計仕様のデータ構造の一例を示す図である。
次に、LSI20の設計仕様のデータ構造を説明する。
図6は、LSIの設計仕様のデータ構造の一例を示す図である。
前述したように、LSI20の設計仕様は、複数の機能により実現される。図6では、図5に示した設計仕様をツリー構造で示し、そのうちの1つの機能を示している。
各機能それぞれには、制約条件として、事前条件、事後条件、不変条件(の1つまたは複数)が定義されている場合がある。
各機能それぞれには、制約条件として、事前条件、事後条件、不変条件(の1つまたは複数)が定義されている場合がある。
これら各条件が存在する場合には、その条件が設定される。また、条件が存在しない場合には、「条件なし」が設定される。例えば、事前条件のみが定義されている場合は、事後条件、不変条件は「条件なし」が設定される。
前述したように、機能ブロック21に対応付けられている機能は、シナリオブロック21aに対応付けられているシナリオA1とシナリオブロック21bに対応付けられているシナリオA2とを有している。
シナリオA1、A2は、それぞれ、「基本動作」、「代替動作」、「例外動作」のいずれか1つの属性を有している。その属性が、種類として記載されている。
また、各シナリオA1、A2それぞれには、制約条件として、事前条件、事後条件、不変条件(の1つまたは複数)が定義されている場合がある。これら各条件が存在する場合には、その条件が設定される。また、条件が存在しない場合には、「条件なし」が設定される。
また、各シナリオA1、A2それぞれには、制約条件として、事前条件、事後条件、不変条件(の1つまたは複数)が定義されている場合がある。これら各条件が存在する場合には、その条件が設定される。また、条件が存在しない場合には、「条件なし」が設定される。
図6では、シナリオA1は、基本動作についてのシナリオであり、事前条件と、事後条件と、不変条件とを有している。
シナリオA2は、シナリオA1に対する代替動作についてのシナリオであり、基本動作と同様に、事前条件と、事後条件と、不変条件とを有している。
シナリオA2は、シナリオA1に対する代替動作についてのシナリオであり、基本動作と同様に、事前条件と、事後条件と、不変条件とを有している。
MSCブロック211a、212aに対応付けられているメッセージ・シーケンス・チャートは、メッセージ・シーケンス・チャートを識別するための名前(MSC名)を有している。MSCブロック211aに対応付けられているメッセージ・シーケンス・チャートのMSC名は、「MSC#A」であり、MSCブロック212aに対応付けられているメッセージ・シーケンス・チャートのMSC名は、「MSC#B」である。
メッセージ・シーケンス・チャートは、制約条件として、事前条件、事後条件、不変条件(の1つまたは複数)が定義されている場合がある。これら各条件が存在する場合には、その条件が設定される。また、条件が存在しない場合には、「条件なし」が設定される。
MSC名「MSC#A」のメッセージ・シーケンス・チャートは、事前条件と、不変条件と、事後条件とを有している。
MSC名「MSC#B」のメッセージ・シーケンス・チャートは、事前条件と、不変条件と、事後条件とを有している。
MSC名「MSC#B」のメッセージ・シーケンス・チャートは、事前条件と、不変条件と、事後条件とを有している。
なお、シナリオブロック21bも少なくとも1つのMSCブロックを有しているが、図6ではその図示を省略している。
ところで、LSI20の設計仕様は、複数のメッセージ・シーケンス・チャートを含む単一の有向グラフによって表されてもよいし、単一の平坦化されたメッセージ図によって表されてもよい。
ところで、LSI20の設計仕様は、複数のメッセージ・シーケンス・チャートを含む単一の有向グラフによって表されてもよいし、単一の平坦化されたメッセージ図によって表されてもよい。
この平坦化されたメッセージ・シーケンス・チャートは、オブジェクト間で通信されるメッセージの順序を示すものである。
さらに、LSI20の設計仕様は、互いに埋め込まれた複数の有向グラフと複数のメッセージ・シーケンス・チャートによって表されてもよい。
さらに、LSI20の設計仕様は、互いに埋め込まれた複数の有向グラフと複数のメッセージ・シーケンス・チャートによって表されてもよい。
図7は、メッセージ・シーケンス・チャート間の関係と階層構造を説明する図である。
本実施の形態では、LSI20の設計仕様は、有向グラフ30によって、階層的に形成されている。
本実施の形態では、LSI20の設計仕様は、有向グラフ30によって、階層的に形成されている。
この有向グラフ30を用いることで、LSI20の設計仕様をコンパクトに表示することができる。
前述したように、有向グラフ30は、複数のメッセージ・シーケンス・チャートと、これらメッセージ・シーケンス・チャート間の関係を示すブランチおよびマージを有している。この関係は、メッセージ・シーケンス・チャートを1以上のシーケンスに順序付けするものである。
前述したように、有向グラフ30は、複数のメッセージ・シーケンス・チャートと、これらメッセージ・シーケンス・チャート間の関係を示すブランチおよびマージを有している。この関係は、メッセージ・シーケンス・チャートを1以上のシーケンスに順序付けするものである。
他方、各メッセージ・シーケンス・チャートは、オブジェクト間の関係を示すものである。メッセージ・シーケンス・チャートは、オブジェクト間で通信されるメッセージを特定し、少なくとも一部のメッセージが通信される順序を示すものである。
有向グラフ30は、将来的なユーザを認証するためある機能によって実行される複数の機能の関係を記述する。これら機能は、形状によって表されるメッセージ・シーケンス・チャートによって規定される。各メッセージ・シーケンス・チャートは、機能によって表現されている。各ブロックを接続する矢印は、機能が実行される順序を記述する。
また、有向グラフ30のエッジは有向であり、制約条件が付与されている場合がある。
図7に示すように、有向グラフ30は、各自がメッセージ・シーケンス・チャート32、メッセージ・シーケンス・チャート33およびhメッセージ・シーケンス・チャート34によって表される独立したメッセージ・シーケンス・チャートによって規定される3つの機能を有している。
図7に示すように、有向グラフ30は、各自がメッセージ・シーケンス・チャート32、メッセージ・シーケンス・チャート33およびhメッセージ・シーケンス・チャート34によって表される独立したメッセージ・シーケンス・チャートによって規定される3つの機能を有している。
ここで、hメッセージ・シーケンス・チャート34は、複数のメッセージ・シーケンス・チャートの階層構造をまとめて表したものである。
初期状態ブロック31は、仮想的な状態であり、エントリポイントを有向グラフ30に提供する。具体的には、どのメッセージ・シーケンス・チャートが最初に「起動」されるかを指定する。
初期状態ブロック31は、仮想的な状態であり、エントリポイントを有向グラフ30に提供する。具体的には、どのメッセージ・シーケンス・チャートが最初に「起動」されるかを指定する。
従って、初期状態ブロック31とメッセージ・シーケンス・チャート32との間の矢印は、メッセージ・シーケンス・チャート32に関連するメッセージ・シーケンス・チャートが有向グラフ30へのエントリ後に直面することを示す。
メッセージ・シーケンス・チャート32により表されるメッセージ・シーケンス・チャートに規定されるメッセージの通信後、メッセージ・シーケンス・チャート33またはhメッセージ・シーケンス・チャート34のいずれかに実行が継続される。
従って、有向グラフ30は、2つのシナリオを含む。
1つのシナリオは、初期状態ブロック31、メッセージ・シーケンス・チャート32およびメッセージ・シーケンス・チャート33を介し進行するパスに関する。
1つのシナリオは、初期状態ブロック31、メッセージ・シーケンス・チャート32およびメッセージ・シーケンス・チャート33を介し進行するパスに関する。
他のシナリオは、初期状態ブロック31、メッセージ・シーケンス・チャート32およびhメッセージ・シーケンス・チャート34を介し進行するパスに関する。
従って、有向グラフ30は、これら2つのシナリオがメッセージ・シーケンス・チャート32まで同じ動作を有するが、メッセージ・シーケンス・チャート32からの動作は異なっていることを示す。
従って、有向グラフ30は、これら2つのシナリオがメッセージ・シーケンス・チャート32まで同じ動作を有するが、メッセージ・シーケンス・チャート32からの動作は異なっていることを示す。
有向グラフ30のエッジは有向であり、制約条件が付与されている。
制約条件は、メッセージ・シーケンス・チャートに記述されたメッセージのシーケンスの終了後、制約条件が成立すればエッジ先のメッセージ・シーケンス・チャート、または、その階層内のメッセージ・シーケンス・チャートへ遷移する。
制約条件は、メッセージ・シーケンス・チャートに記述されたメッセージのシーケンスの終了後、制約条件が成立すればエッジ先のメッセージ・シーケンス・チャート、または、その階層内のメッセージ・シーケンス・チャートへ遷移する。
図7では、メッセージ・シーケンス・チャート32の処理後、i>0の制約条件が成立すれば、メッセージ・シーケンス・チャート33に移行する。一方、i<=0の制約条件が成立すれば、hメッセージ・シーケンス・チャート34に移行する。
この情報は、2つのシナリオの共通部分が設計に関する有向グラフ30を完全にテストするのに繰り返される必要はないため、検証および検証目的に有用に利用される。
ここで、有向グラフ30が有する各メッセージ・シーケンス・チャートは、同一のオブジェクト群を利用してもよい。さらに、あるメッセージ・シーケンス・チャートによって規定される各メッセージが、次のメッセージ・シーケンス・チャートがパスに沿って実行可能となる前に実行される必要があると言うことを示すルールが、有向グラフ30に関連して設けられていてもよい。
ここで、有向グラフ30が有する各メッセージ・シーケンス・チャートは、同一のオブジェクト群を利用してもよい。さらに、あるメッセージ・シーケンス・チャートによって規定される各メッセージが、次のメッセージ・シーケンス・チャートがパスに沿って実行可能となる前に実行される必要があると言うことを示すルールが、有向グラフ30に関連して設けられていてもよい。
次に、メッセージ・シーケンス・チャートの一般的な構成を説明する。
<メッセージ・シーケンス・チャート>
図8は、メッセージ・シーケンス・チャートの構成を説明する図である。
<メッセージ・シーケンス・チャート>
図8は、メッセージ・シーケンス・チャートの構成を説明する図である。
前述したように、メッセージ・シーケンス・チャートは、機能の実現に関わっている全てのオブジェクト間のやり取りを明確にしたものである。
メッセージ・シーケンス・チャートは、LSIが備えるハードウェアブロック、または、システムと干渉する外部環境であるオブジェクトを有している。
メッセージ・シーケンス・チャートは、LSIが備えるハードウェアブロック、または、システムと干渉する外部環境であるオブジェクトを有している。
図8に示すメッセージ・シーケンス・チャート(MSC)40には、複数のオブジェクトとして、ハードウェア(HW)41、42、43が設けられている。
これらのオブジェクトが生成された後、データ・イベント・メッセージはオブジェクト間で通信されるものとして示される。
これらのオブジェクトが生成された後、データ・イベント・メッセージはオブジェクト間で通信されるものとして示される。
このデータ・イベント・メッセージは、ユーザにより指定されるものである。ユーザは当該メッセージがどのオブジェクト間で通信されるか指定することができる。
例えば、ユーザにより、1つのオブジェクトが選択され、その後に図示しないポインティングツールを用いて第2のオブジェクトが選択される。
例えば、ユーザにより、1つのオブジェクトが選択され、その後に図示しないポインティングツールを用いて第2のオブジェクトが選択される。
メッセージ・シーケンス・チャート40の生成時には、送信イベントを有する第1オブジェクトと受信イベントを有する第2オブジェクトからなる示された2つのオブジェクトの間においてデータ・イベント・メッセージが生成される。このようにして、データ・イベント・メッセージm1〜m4の矢印が、メッセージ・シーケンス・チャート40に示されるハードウェア41、42、43間で送受信されるデータ・イベント・メッセージm1〜m4の4個のメッセージを表すよう生成される。
具体的には、オブジェクトライン44、45、46を相互接続する水平矢印は、データ・イベント・メッセージが、オブジェクト間で送受信されることを示す。
各データ・イベント・メッセージは、送信オブジェクトと受信オブジェクトを関連付けている。オブジェクトライン44、45、46とデータ・イベント・メッセージm1〜m4とが交差する位置は、イベントと呼ばれる。
各データ・イベント・メッセージは、送信オブジェクトと受信オブジェクトを関連付けている。オブジェクトライン44、45、46とデータ・イベント・メッセージm1〜m4とが交差する位置は、イベントと呼ばれる。
各データ・イベント・メッセージは、送信オブジェクトに関連する送信イベントと、受信オブジェクトに関連する受信イベントを含む。例えば、データ・イベント・メッセージm1は、オブジェクトライン45とオブジェクトライン44とを接続する。
このため、データ・イベント・メッセージm1は、ハードウェア41および送信オブジェクトと、ハードウェア42および受信オブジェクトとを関連付ける。
さらに、データ・イベント・メッセージm1のオブジェクトライン44との交点は送信イベントを生成し、データ・イベント・メッセージm1とオブジェクトライン45との交点は受信イベントを生成する。
さらに、データ・イベント・メッセージm1のオブジェクトライン44との交点は送信イベントを生成し、データ・イベント・メッセージm1とオブジェクトライン45との交点は受信イベントを生成する。
ここで、メッセージ・シーケンス・チャートによって特定される関係について、以下の2つのルールが設けられている。
第1のルール:任意のデータ・イベント・メッセージmに対して、送信イベント(s(m))は、対応する受信イベント(r(m))の前に発生する。
第1のルール:任意のデータ・イベント・メッセージmに対して、送信イベント(s(m))は、対応する受信イベント(r(m))の前に発生する。
従って、s(m)<r(m)となる。
第2のルール:オブジェクトライン上のイベントは、上から下に順序付けされる。
これら2つのルールは、メッセージ・シーケンス・チャートがオブジェクト間で送受信されるデータ・イベント・メッセージの順序を記述することを示している。
第2のルール:オブジェクトライン上のイベントは、上から下に順序付けされる。
これら2つのルールは、メッセージ・シーケンス・チャートがオブジェクト間で送受信されるデータ・イベント・メッセージの順序を記述することを示している。
例えば、第1のルールにより、メッセージ・シーケンス・チャート40は、データ・イベント・メッセージm1に関する送信イベントが同じメッセージに関する受信イベントの前に発生することを示している。
また、第2のルールにより、メッセージ・シーケンス・チャート40は、データ・イベント・メッセージm2に関する送信イベントが、データ・イベント・メッセージm4に関する受信イベントの前に発生すると言うことを示している。
図8に示すデータ・イベント・メッセージの送信は受信より先に起きる。
ハードウェア41の時間軸ではデータ・イベント・メッセージm1とデータ・イベント・メッセージm2とが、この順番に送信される。その後、データ・イベント・メッセージm4が受信される。
ハードウェア41の時間軸ではデータ・イベント・メッセージm1とデータ・イベント・メッセージm2とが、この順番に送信される。その後、データ・イベント・メッセージm4が受信される。
ハードウェア42の時間軸ではデータ・イベント・メッセージm1が受信された後、データ・イベント・メッセージm3が受信される。
ハードウェア43の時間軸ではデータ・イベント・メッセージm2が受信されてから、データ・イベント・メッセージm3とデータ・イベント・メッセージm4とを、この順番に送信する。
ハードウェア43の時間軸ではデータ・イベント・メッセージm2が受信されてから、データ・イベント・メッセージm3とデータ・イベント・メッセージm4とを、この順番に送信する。
ここで、上記ルールは推移的である。例えば、イベントe1がイベントe2(e1<e2)の前に発生し、イベントe2がイベントe3(e2<e3)の前に発生する場合、イベントe1は、イベントe3(e1<e3)の前に発生する。
しかしながら、これら2つのルールは、全てのデータ・イベント・メッセージの間の順序付けされた関係を規定するものではない。
例えば、4つのオブジェクトを含むが、2つのデータ・イベント・メッセージしか含まないメッセージ・シーケンス・チャートを考える。
例えば、4つのオブジェクトを含むが、2つのデータ・イベント・メッセージしか含まないメッセージ・シーケンス・チャートを考える。
第1のデータ・イベント・メッセージが第1オブジェクトと第2オブジェクトとの間で送受信され、第2のデータ・イベント・メッセージが第3オブジェクトと第4オブジェクトとの間で送受信される場合、これら2つのデータ・イベント・メッセージの間の順序付けされた関係はこれら2つのルールによっては規定されない。この場合、2つのデータ・イベント・メッセージは任意の順序で発生する。
図8では、ハードウェア42とハードウェア43は時間軸の順序関係を共有しないため、データ・イベント・メッセージm1とデータ・イベント・メッセージm2の受信順序は図8に表現した順序と異なってもかまわない。
ハードウェア41とハードウェア42は時間軸の順序関係を共有しないため、データ・イベント・メッセージm3とデータ・イベント・メッセージm4の受信順序は、図8に表現した順序と異なってもかまわない。
図9は、メッセージ・シーケンス・チャートの他の例を示す図である。
メッセージ・シーケンス・チャート40aには、複数のオブジェクトとして、ハードウェア41、42、43が設けられている。
メッセージ・シーケンス・チャート40aには、複数のオブジェクトとして、ハードウェア41、42、43が設けられている。
メッセージ・シーケンス・チャート40aは、同時性制約、タイムアウト制約および同期エッジの3つの(先進的)機能を有している。
同時性制約およびタイムアウト制約については、イベントを包囲するボックスが描画されている。
同時性制約およびタイムアウト制約については、イベントを包囲するボックスが描画されている。
同時性制約を示すボックス47には、このボックス47がこれらのイベントを同時イベントにグループ化することを示す「simul」がラベル付けされている。
ボックス47は、データ・イベント・メッセージm5とデータ・イベント・メッセージm6に関する送信イベントをグループ化している。
ボックス47は、データ・イベント・メッセージm5とデータ・イベント・メッセージm6に関する送信イベントをグループ化している。
タイムアウト制約を示すボックス48には、タイムアウト制約のタイムアウト値を表す整数がラベル付けされている。
実行がタイムアウト制約に直面すると、示されたタイムアウト期間が経過するまで実行が停止される。時限実行モデルでは、タイムアウト期間が経過して初めて実行が継続する。
実行がタイムアウト制約に直面すると、示されたタイムアウト期間が経過するまで実行が停止される。時限実行モデルでは、タイムアウト期間が経過して初めて実行が継続する。
従って、データ・イベント・メッセージm7は、ボックス48のラベルに付されている「3」時刻単位後経過した後に、送信される。
同期エッジは、データ・イベント・メッセージの順序を特定するために用いられる。同期エッジの表示は、名前「synch」が同期エッジに利用可能であると言う点を除いて、データ・イベント・メッセージと同様に描かれている。
同期エッジは、データ・イベント・メッセージの順序を特定するために用いられる。同期エッジの表示は、名前「synch」が同期エッジに利用可能であると言う点を除いて、データ・イベント・メッセージと同様に描かれている。
「synch」とラベル付けされたデータ・イベント・メッセージ(以下、「同期メッセージ」と言う)を利用して、順序付けされた関係を確立する。例えば、ハードウェア42に関する送信イベントと、ハードウェア41に関する受信イベントを含む同期エッジを考える。同期メッセージは、ハードウェア42がデータ・イベント・メッセージm8を受信した後に送信されるものとして示される。同期メッセージは、また、データ・イベント・メッセージm9が送信されるまでにハードウェア41により受信されるものとして示される。
メッセージ・シーケンス・チャート40aによれば、ハードウェア42におけるデータ・イベント・メッセージm8の受信は、ハードウェア41におけるデータ・イベント・メッセージm9の送信前に発生する必要がある。
ここで、同期エッジは関連性のないオブジェクト間の関係を生成する。しかしながら、ある実施例によると、同期エッジによって関連するオブジェクト間において実際にメッセージは送受信されない。
同期メッセージは、データ・イベント・メッセージm7およびデータ・イベント・メッセージm8と、データ・イベント・メッセージm5およびデータ・イベント・メッセージm6とを比較して、これらの間の順序を生成するものではない。
しかしながら、同期メッセージは、データ・イベント・メッセージm7とデータ・イベント・メッセージm8に関する受信イベントの後にデータ・イベント・メッセージm9に関する送信イベントを発生させる。
次に、設計検証装置10の構成を説明する。
<設計検証装置>
図10は、設計検証装置のハードウェア構成例を示す図である。
<設計検証装置>
図10は、設計検証装置のハードウェア構成例を示す図である。
設計検証装置10は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス109を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、外部補助記憶装置106、インタフェース107および通信インタフェース108が接続されている。
CPU101は、入力インタフェース105、外部補助記憶装置106、インタフェース107および通信インタフェース108から受信した情報を処理するよう動作する。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
HDD103には、OSやアプリケーションプログラムが格納される。また、HDD103内には、XML(eXtensible Markup Language)形式で表現されたリスト構造や、プログラムファイルが格納される。
グラフィック処理装置104には、モニタ104aが接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ104aの画面に表示させる。入力インタフェース105には、キーボード105aとマウス105bとが接続されている。入力インタフェース105は、キーボード105aやマウス105bから送られてくる信号を、バス109を介してCPU101に送信する。
外部補助記憶装置106は、記録媒体に書き込まれた情報を読み取ったり、記録媒体に情報を書き込んだりする。外部補助記憶装置106で読み書きが可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、HDD、フレキシブルディスク(FD)、磁気テープ等が挙げられる。光ディスクとしては、例えば、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等が挙げられる。光磁気記録媒体としては、例えば、MO(Magneto-Optical disk)等が挙げられる。
インタフェース107は、設計検証装置10に接続された装置から情報を送受信するよう動作可能なハードウェアである。具体的には、インタフェース107は、信号インタフェース200およびテスト対象装置300と通信する。
通信インタフェース108は、ネットワーク400に接続されている。通信インタフェース108は、ネットワーク400を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。このようなハードウェア構成の設計検証装置10内には、以下のような機能が設けられる。
図11は、設計検証装置の機能を示すブロック図である。
設計検証装置10は、検証用シナリオ生成部11と、検証用シナリオ格納部12と、条件付与部13と、電力管理検証用シナリオ格納部14と、出力部15とを有している。
設計検証装置10は、検証用シナリオ生成部11と、検証用シナリオ格納部12と、条件付与部13と、電力管理検証用シナリオ格納部14と、出力部15とを有している。
また、図示していないが、設計検証装置10は、他にもメッセージ・シーケンス・チャートを生成するツールや、設計の実現形態の動作を検証するため、メッセージ・シーケンス・チャートに基づくステートマシン(State Machine)を生成するためのツールを有していてもよい。
検証用シナリオ生成部11は、図5および図6にて説明したLSI20の設計仕様のデータに基づいて、シナリオ毎に検証用シナリオを生成する。
ここで、検証用シナリオは、LSI20の設計仕様の各シナリオが備えるメッセージ・シーケンス・チャートそれぞれに設計仕様のラベル(検証対象部位を識別する識別情報)を関連付けた情報である。なお、検証対象部位としては、例えば、機能、シナリオ、メッセージ・シーケンス・チャート等が挙げられる。
ここで、検証用シナリオは、LSI20の設計仕様の各シナリオが備えるメッセージ・シーケンス・チャートそれぞれに設計仕様のラベル(検証対象部位を識別する識別情報)を関連付けた情報である。なお、検証対象部位としては、例えば、機能、シナリオ、メッセージ・シーケンス・チャート等が挙げられる。
この検証用シナリオは、条件付与部13の処理対象となる中間的なデータである。
また、検証用シナリオ生成部11は、検証用シナリオを生成する際に作成するデータを一時記憶する機能も有している。
また、検証用シナリオ生成部11は、検証用シナリオを生成する際に作成するデータを一時記憶する機能も有している。
検証用シナリオ格納部12は、検証用シナリオ生成部11により生成された検証用シナリオを格納する。
条件付与部13は、入力される電力管理仕様に基づいて、検証用シナリオ格納部12に格納されている検証用シナリオに制約条件を付与する。
条件付与部13は、入力される電力管理仕様に基づいて、検証用シナリオ格納部12に格納されている検証用シナリオに制約条件を付与する。
電力管理仕様は、電力制御のための制御信号に対する仕様である。
条件付与部13は、制約条件を付与する際に、モードテーブルと、事前条件テーブルを作成する。
条件付与部13は、制約条件を付与する際に、モードテーブルと、事前条件テーブルを作成する。
モードテーブルは、入力された電力管理仕様のメッセージ・シーケンス・チャートに対応するモードとの関係を示すテーブルである。
事前条件テーブルは、作成したモードテーブルの各メッセージ・シーケンス・チャートそれぞれに関連するモードとの関係を示すテーブルである。なお、モードテーブルおよび事前条件テーブルの生成方法については後述する。
事前条件テーブルは、作成したモードテーブルの各メッセージ・シーケンス・チャートそれぞれに関連するモードとの関係を示すテーブルである。なお、モードテーブルおよび事前条件テーブルの生成方法については後述する。
そして、条件付与部13は、事前条件テーブルに格納された情報に基づいて、検証用シナリオに制約条件を付与することで、制約条件が付与された検証用シナリオは、LSI20の設計仕様に、電力管理仕様が関連づけられたシナリオになる。以下、このシナリオを電力管理検証用シナリオと言う。
条件付与部13は、作成した電力管理検証用シナリオを、電力管理検証用シナリオ格納部14に格納する。
出力部15は、予め用意されたフォーマットに従って、電力管理検証用シナリオの集合に関するリスト(シナリオリスト15a)を出力する。
出力部15は、予め用意されたフォーマットに従って、電力管理検証用シナリオの集合に関するリスト(シナリオリスト15a)を出力する。
次に、電力管理仕様のデータ構造を説明する。
図12は、電力管理仕様のデータ構造の一例を示す図である。
電力管理仕様は、パワーの動作モードを示す複数のシナリオにより実現される。
図12は、電力管理仕様のデータ構造の一例を示す図である。
電力管理仕様は、パワーの動作モードを示す複数のシナリオにより実現される。
図12に示す電力管理仕様は、シナリオブロック51aに対応付けられているシナリオ「モード:Full」とシナリオブロック51bに対応付けられているシナリオ「モード:Gating」とシナリオブロック51cに対応付けられているシナリオ「モード:Suspend」とを有している。
ここで、シナリオ「モード:Full」は、当該シナリオの実行時に、クロックゲーティングを行わず、LSI20の全ての回路に電圧を供給するシナリオである。
シナリオ「モード:Gating」は、当該シナリオの実行時に、LSI20の指定された回路に対しクロックゲーティングを行うシナリオである。
シナリオ「モード:Gating」は、当該シナリオの実行時に、LSI20の指定された回路に対しクロックゲーティングを行うシナリオである。
シナリオ「モード:Suspend」は、当該シナリオの実行時に、例えば、LSI20の使用を一旦中断する際に、作業状態をメモリに保存し、再開時に電源を切る直前の状態に戻すモード(省電力モード)を行うシナリオである。
各シナリオは、シナリオを実現するためのメッセージ・シーケンス・チャートを1つまたは複数有している。
シナリオブロック51aは、MSCブロック511aと、MSCブロック512aと、MSCブロック513aとを有している。
シナリオブロック51aは、MSCブロック511aと、MSCブロック512aと、MSCブロック513aとを有している。
シナリオブロック51bは、MSCブロック511bと、MSCブロック512bと、MSCブロック513bとを有している。
シナリオブロック51cは、MSCブロック511cと、MSCブロック512cとを有している。
シナリオブロック51cは、MSCブロック511cと、MSCブロック512cとを有している。
各MSCブロックに対応付けられているメッセージ・シーケンス・チャートは、メッセージ・シーケンス・チャートを識別するためのMSC名を有している。例えば、MSCブロック511a、MSCブロック511b、MSCブロック511cに対応付けられているメッセージ・シーケンス・チャートのMSC名は、「MSC#a」である。MSCブロック512a、MSCブロック512bに対応付けられているメッセージ・シーケンス・チャートのMSC名は、「MSC#b」である。MSCブロック513aに対応付けられているメッセージ・シーケンス・チャートのMSC名は、「MSC#c」である。MSCブロック513bに対応付けられているメッセージ・シーケンス・チャートのMSC名は、「MSC#d」である。MSCブロック512cに対応付けられているメッセージ・シーケンス・チャートのMSC名は、「MSC#e」である。
各メッセージ・シーケンス・チャートには、LSI20の機能仕様が有するメッセージ・シーケンス・チャートへのリンクが設けられている。
例えば、MSC名「MSC#a」のメッセージ・シーケンス・チャートには、図6に示すMSC名「MSC#A」のメッセージ・シーケンス・チャートへのリンクが張られている。このリンクによって、電力管理仕様が有するメッセージ・シーケンス・チャートの事前条件がLSI20の設計仕様が有する機能の制約条件に関連づけられている。
例えば、MSC名「MSC#a」のメッセージ・シーケンス・チャートには、図6に示すMSC名「MSC#A」のメッセージ・シーケンス・チャートへのリンクが張られている。このリンクによって、電力管理仕様が有するメッセージ・シーケンス・チャートの事前条件がLSI20の設計仕様が有する機能の制約条件に関連づけられている。
また、電力管理仕様が有する各メッセージ・シーケンス・チャートは、制約条件として、事前条件、事後条件、不変条件のうちの1つまたは複数が定義されている場合がある。これら各条件が存在する場合には、その条件が設定される。
なお、同じMSC名のメッセージ・シーケンス・チャートにおいても異なる制約条件が定義されている場合がある。例えば、シナリオ「モード:Full」が有するMSC名「MSC#a」のメッセージ・シーケンス・チャートの制約条件は、「clock gating OFF」である。他方、シナリオ「モード:Gating」が有するMSC名「MSC#a」のメッセージ・シーケンス・チャートの制約条件は、「clock gating ON」である。
さらに、電力管理仕様が有する各メッセージ・シーケンス・チャートは、該当するモードを駆動する電圧設定条件が定義されている場合がある。例えば、シナリオ「モード:Full」が有するMSC名「MSC#a」のメッセージ・シーケンス・チャートの電圧設定条件は、「1.5V」である。他方、シナリオ「モード:Gating」が有するMSC名「MSC#a」のメッセージ・シーケンス・チャートの電圧設定条件は、「1.5V」である。
次に、モードテーブルおよび事前条件テーブルを説明する。
図13は、モードテーブルの一例を示す図である。
モードテーブル131aには、MSC名とモード名の欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
図13は、モードテーブルの一例を示す図である。
モードテーブル131aには、MSC名とモード名の欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
モードテーブル131aには、電力管理仕様が有するシナリオの各モードにおける全てのメッセージ・シーケンス・チャートのリンク先のMSC名を識別する情報が格納される。
図13では、シナリオ「モード:Full」は、MSC名「MSC#a」のメッセージ・シーケンス・チャートと、MSC名「MSC#b」のメッセージ・シーケンス・チャートと、MSC名「MSC#c」のメッセージ・シーケンス・チャートとを有している。従って、モードテーブル131aのMSC名の欄には、それぞれ、MSC名「MSC#a」のメッセージ・シーケンス・チャートのリンク先のメッセージ・シーケンス・チャートのMSC名「MSC#A」、MSC名「MSC#b」のメッセージ・シーケンス・チャートのリンク先のメッセージ・シーケンス・チャートのMSC名「MSC#B」、MSC名「MSC#c」のメッセージ・シーケンス・チャートのリンク先のメッセージ・シーケンス・チャートのMSC名「MSC#C」が格納されている。
そして、対応するモード名の欄には、MSC名の欄のリンク元のメッセージ・シーケンス・チャートを有する電力管理仕様のシナリオ名を識別するモード名「Full」が格納されている。
また、シナリオ「モード:Gating」は、MSC名「MSC#a」のメッセージ・シーケンス・チャートと、MSC名「MSC#b」のメッセージ・シーケンス・チャートと、MSC名「MSC#d」のメッセージ・シーケンス・チャートとを有している。従って、モードテーブル131aのMSC名の欄には、MSC名「MSC#a」のメッセージ・シーケンス・チャートのリンク先のメッセージ・シーケンス・チャートのMSC名「MSC#A」、MSC名「MSC#b」のメッセージ・シーケンス・チャートのリンク先のメッセージ・シーケンス・チャートのMSC名「MSC#B」、MSC名「MSC#d」のメッセージ・シーケンス・チャートのリンク先のメッセージ・シーケンス・チャートのMSC名「MSC#D」が格納されている。
そして、対応するモード名の欄には、MSC名の欄のリンク元のメッセージ・シーケンス・チャートを有する電力管理仕様のシナリオ名を識別するモード名「Gating」が格納されている。
また、シナリオ「モード:Suspend」は、MSC名「MSC#a」のメッセージ・シーケンス・チャートと、MSC名「MSC#e」のメッセージ・シーケンス・チャートとを有している。従って、モードテーブル131aのMSC名の欄には、MSC名「MSC#a」のメッセージ・シーケンス・チャートのリンク先のメッセージ・シーケンス・チャートのMSC名「MSC#A」、MSC名「MSC#e」のメッセージ・シーケンス・チャートのリンク先のメッセージ・シーケンス・チャートのMSC名「MSC#E」が格納されている。
そして、対応するモード名の欄には、MSC名の欄のリンク元のメッセージ・シーケンス・チャートを有する電力管理仕様のシナリオ名を識別するモード名「Suspend」が格納されている。
図14は、事前条件テーブルの一例を示す図である。
事前条件テーブル131bには、MSC名と事前条件の欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
事前条件テーブル131bには、MSC名と事前条件の欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
MSC名の欄には、モードテーブル131aのMSC名の欄に格納された全てのメッセージ・シーケンス・チャートの種別を識別する情報が格納される。図14では、図13に示すモードテーブル131aのMSC名の欄に格納されたMSC名「MSC#A」〜「MSC#E」が格納されている。
事前条件の欄には、MSC名の欄に格納されているMSC名のメッセージ・シーケンス・チャートに対応するモード名が格納されている。図14では、例えば、MSC名「MSC#A」のメッセージ・シーケンス・チャートに対応するモード名「Full」、「Gating」、「Suspend」が格納されている。なお、各モード名間は、「or」で接続されている。
この事前条件の欄に格納されたモード名は、対応するMSC名の欄に格納されているMSC名のメッセージ・シーケンス・チャートに遷移するときの事前条件を示している。例えば、一番上のレコードは、モード名「Full」、「Gating」、「Suspend」のシナリオのいずれかであれば、すなわち、「Full or Gating or Suspend=true」であれば、MSC名「MSC#A」のメッセージ・シーケンス・チャートに遷移することを示している。
次に、設計検証装置10の全体処理を説明する。
図15は、設計検証装置の全体処理を示すフローチャートである。
まず、検証用シナリオ生成部11が、ユーザにより入力されたLSI20の設計仕様に基づいて、検証用シナリオ生成処理を行って検証用シナリオを生成する(ステップS1)。生成した検証用シナリオは、検証用シナリオ格納部12に格納する。
図15は、設計検証装置の全体処理を示すフローチャートである。
まず、検証用シナリオ生成部11が、ユーザにより入力されたLSI20の設計仕様に基づいて、検証用シナリオ生成処理を行って検証用シナリオを生成する(ステップS1)。生成した検証用シナリオは、検証用シナリオ格納部12に格納する。
次に、条件付与部13が、ユーザにより入力された電力管理仕様および検証用シナリオ格納部12に格納されている検証用シナリオに基づいて、制約条件付与処理を行って検証用シナリオに制約条件を付与する(ステップS2)。当該処理により生成された電力管理検証用シナリオは、電力管理検証用シナリオ格納部14に格納する。
次に、出力部15が、シナリオリスト15aを出力する(ステップS3)。
以上で、全体処理の説明を終了する。
なお、検証用シナリオ生成処理を予め行って生成した検証用シナリオを検証用シナリオ格納部12に格納しておいて、ユーザによる電力管理仕様の入力を待って制約条件付与処理を行うようにしてもよい。また、ユーザによる電力管理仕様の入力時に、検証用シナリオ生成処理を開始するようにしてもよい。
以上で、全体処理の説明を終了する。
なお、検証用シナリオ生成処理を予め行って生成した検証用シナリオを検証用シナリオ格納部12に格納しておいて、ユーザによる電力管理仕様の入力を待って制約条件付与処理を行うようにしてもよい。また、ユーザによる電力管理仕様の入力時に、検証用シナリオ生成処理を開始するようにしてもよい。
次に、ステップS1に示す検証用シナリオ生成処理を説明する。
図16および図17は、検証用シナリオ生成処理を示すフローチャートである。
まず、LSI20の設計仕様にラベルを付与する(ステップS11)。この処理については、後に詳述する。
図16および図17は、検証用シナリオ生成処理を示すフローチャートである。
まず、LSI20の設計仕様にラベルを付与する(ステップS11)。この処理については、後に詳述する。
次に、ステップS11にて付与された設計仕様において、メッセージ・シーケンス・チャートを備える有向グラフを平坦化(Flatten)する(ステップS12)。具体的には、有向グラフの階層構造を取り払う。
次に、平坦化した有向グラフからメッセージ・シーケンス・チャートを1つ選択する(ステップS13)。
次に、選択したメッセージ・シーケンス・チャートを有限ステートマシン(FSM)に変換する(ステップS14)。これにより、一連のメッセージ・シーケンス・チャートを組み合わせたデータ・イベント・メッセージのやり取りを有限ステートマシンで表現する。この処理については、後に詳述する。
次に、選択したメッセージ・シーケンス・チャートを有限ステートマシン(FSM)に変換する(ステップS14)。これにより、一連のメッセージ・シーケンス・チャートを組み合わせたデータ・イベント・メッセージのやり取りを有限ステートマシンで表現する。この処理については、後に詳述する。
次に、変換された有限ステートマシンの各ステートに、メッセージ・シーケンス・チャートに付されていたラベルを付与する(ステップS15)。
ステップS14およびステップS15の処理により、有限ステートマシンの各ステートにラベルが付与される。各ステートにラベルが付与された有限ステートマシンは、検証用シナリオ生成部11が一時記憶する。
ステップS14およびステップS15の処理により、有限ステートマシンの各ステートにラベルが付与される。各ステートにラベルが付与された有限ステートマシンは、検証用シナリオ生成部11が一時記憶する。
次に、未処理のメッセージ・シーケンス・チャートが存在するか否かを判断する(ステップS16)。
未処理のメッセージ・シーケンス・チャートが存在する場合(ステップS16のYes)、ステップS13に移行して未処理のメッセージ・シーケンス・チャートを選択し、選択したメッセージ・シーケンス・チャートについて、ステップS14以降の処理を引き続き行う。
未処理のメッセージ・シーケンス・チャートが存在する場合(ステップS16のYes)、ステップS13に移行して未処理のメッセージ・シーケンス・チャートを選択し、選択したメッセージ・シーケンス・チャートについて、ステップS14以降の処理を引き続き行う。
一方、未処理のメッセージ・シーケンス・チャートが存在しない場合(ステップS16のNo)、ステップS11にてラベルが付与された設計仕様を参照し、設計仕様が備えるメッセージ・シーケンス・チャートを1つ選択する(ステップS17)。
次に、メッセージ・シーケンス・チャートの制約(synchやtimeout等)から、選択したメッセージ・シーケンス・チャートの有限ステートマシンの不要なステートを刈る(ステップS18)。この処理は後に詳述する。
次に、未処理のメッセージ・シーケンス・チャートが存在するか否かを判断する(ステップS19)。
未処理のメッセージ・シーケンス・チャートが存在する場合(ステップS19のYes)、ステップS17に移行し、未処理のメッセージ・シーケンス・チャートを選択する。そして、選択したメッセージ・シーケンス・チャートについてステップS18以降の処理を引き続き行う。
未処理のメッセージ・シーケンス・チャートが存在する場合(ステップS19のYes)、ステップS17に移行し、未処理のメッセージ・シーケンス・チャートを選択する。そして、選択したメッセージ・シーケンス・チャートについてステップS18以降の処理を引き続き行う。
一方、未処理のメッセージ・シーケンス・チャートが存在しない場合(ステップS19のNo)、ステップS11にてラベルが付与されたLSI20の設計仕様を参照し、設計仕様が備える機能を選択する(図17のステップS20)。
次に、選択された機能からシナリオを選択する(ステップS21)。
次に、ステップS15にてラベルが付与された有限ステートマシンから、選択したシナリオと同じラベルを有する有限ステートマシンを抽出する(ステップS22)。
次に、ステップS15にてラベルが付与された有限ステートマシンから、選択したシナリオと同じラベルを有する有限ステートマシンを抽出する(ステップS22)。
次に、選択したシナリオと同じラベルを有する有限ステートマシンの部分(以下、「部分有限ステートマシン」と言う)を抽出する(ステップS23)。検証用シナリオ生成部11は、抽出した有限ステートマシンの部分を一時記憶する。
次に、ステップS23にて抽出した有限ステートマシンの部分から検証用シナリオを生成し、生成した検証用シナリオを検証用シナリオ格納部12に格納する(ステップS24)。なお、有限ステートマシンの部分から検証用シナリオを生成する方法は、後に詳述する。
次に、ステップS20にて選択した機能に、未処理のシナリオが存在するか否かを判断する(ステップS25)。
未処理のシナリオが存在する場合(ステップS25のYes)、ステップS21に移行し、未処理のシナリオを選択し、選択したシナリオについてステップS22以降の処理を引き続き行う。
未処理のシナリオが存在する場合(ステップS25のYes)、ステップS21に移行し、未処理のシナリオを選択し、選択したシナリオについてステップS22以降の処理を引き続き行う。
一方、ステップS20にて選択した機能に、未処理のシナリオが存在しない場合(ステップS25のNo)、LSI20の設計仕様に、未処理の機能が存在するか否かを判断する(ステップS26)。
未処理の機能が存在する場合(ステップS26のYes)、ステップS20に移行し、未処理の機能を選択し、選択した機能についてステップS21以降の処理を引き続き行う。
一方、未処理の機能が存在しない場合(ステップS26のNo)、処理を終了する。
以上で、検証用シナリオ生成処理の説明を終了する。
次に、ステップS11のラベルの付与の処理(ラベル付与処理)を詳しく説明する。
以上で、検証用シナリオ生成処理の説明を終了する。
次に、ステップS11のラベルの付与の処理(ラベル付与処理)を詳しく説明する。
図18は、ラベル付与処理を示すフローチャートである。
まず、LSI20の設計仕様を参照し、機能を1つ選択する(ステップS31)。
次に、選択した機能からシナリオを1つ選択する(ステップS32)。
まず、LSI20の設計仕様を参照し、機能を1つ選択する(ステップS31)。
次に、選択した機能からシナリオを1つ選択する(ステップS32)。
次に、選択したシナリオに付属するメッセージ・シーケンス・チャートを1つ選択する(ステップS33)。
次に、選択したメッセージ・シーケンス・チャートに、ステップS31にて選択した機能名(現在選択されている機能名)およびステップS32にて選択したシナリオ名(現在選択されているシナリオ名)をラベルとして付与する(ステップS34)。また、既にラベルが付与されている場合は、ラベルを追加する。
次に、選択したメッセージ・シーケンス・チャートに、ステップS31にて選択した機能名(現在選択されている機能名)およびステップS32にて選択したシナリオ名(現在選択されているシナリオ名)をラベルとして付与する(ステップS34)。また、既にラベルが付与されている場合は、ラベルを追加する。
なお、ラベルには、機能名・シナリオ名に加え、メッセージ・シーケンス・チャート名を付するようにしてもよい。
次に、当該シナリオ内に未処理のメッセージ・シーケンス・チャートが存在するか否かを判断する(ステップS35)。
次に、当該シナリオ内に未処理のメッセージ・シーケンス・チャートが存在するか否かを判断する(ステップS35)。
当該シナリオ内に未処理のメッセージ・シーケンス・チャートが存在する場合(ステップS35のYes)、ステップS33に移行し、当該シナリオ内の未処理のメッセージ・シーケンス・チャートを選択し、選択したメッセージ・シーケンス・チャートについてステップS34以降の処理を引き続き行う。
一方、当該シナリオ内に未処理のメッセージ・シーケンス・チャートが存在しない場合(ステップS35のNo)、未処理のシナリオが存在するか否かを判断する(ステップS36)。
未処理のシナリオが存在する場合(ステップS36のYes)、ステップS32に移行し、未処理のシナリオを選択し、選択したシナリオについてステップS33以降の処理を引き続き行う。
一方、未処理のシナリオが存在しない場合(ステップS36のNo)、未処理の機能が存在するか否かを判断する(ステップS37)。
未処理の機能が存在する場合(ステップS37のYes)、ステップS31に移行し、未処理の機能を選択し、選択した機能についてステップS32以降の処理を引き続き行う。
未処理の機能が存在する場合(ステップS37のYes)、ステップS31に移行し、未処理の機能を選択し、選択した機能についてステップS32以降の処理を引き続き行う。
一方、未処理の機能が存在しない場合(ステップS37のNo)、処理を終了する。
以上で、ラベル付与処理の説明を終了する。
次に、ステップS2に示す制約条件付与処理を説明する。
以上で、ラベル付与処理の説明を終了する。
次に、ステップS2に示す制約条件付与処理を説明する。
図19は、制約条件付与処理を示すフローチャートである。
まず、条件付与部13が、モードテーブル作成処理を行ってモードテーブル131aを作成する(ステップS41)。
まず、条件付与部13が、モードテーブル作成処理を行ってモードテーブル131aを作成する(ステップS41)。
次に、条件付与部13が、事前条件テーブル作成処理を行って事前条件テーブル131bを作成する(ステップS42)。このとき、条件付与部13が、作成された事前条件テーブル131bに基づいて、検証用シナリオに制約条件を付与する。その後、処理を終了する。
以上で、制約条件付与処理の説明を終了する。
次に、ステップS41に示すモードテーブル作成処理を説明する。
図20は、モードテーブル作成処理を示すフローチャートである。
次に、ステップS41に示すモードテーブル作成処理を説明する。
図20は、モードテーブル作成処理を示すフローチャートである。
まず、条件付与部13が、入力された電力管理仕様からモード名M(Mはパラメータ)を選択する(ステップS51)。
次に、モード名MのMSC名を1つ選択する。そして、選択したMSC名のメッセージ・シーケンス・チャートに設けられているリンクを辿って、対応するメッセージ・シーケンス・チャートのMSC名を選択する(ステップS52)。
次に、モード名MのMSC名を1つ選択する。そして、選択したMSC名のメッセージ・シーケンス・チャートに設けられているリンクを辿って、対応するメッセージ・シーケンス・チャートのMSC名を選択する(ステップS52)。
次に、選択したMSC名に一致するMSC名が、モードテーブル131aに格納されているか否かを判断する(ステップS53)。
選択したMSC名に一致するMSC名が、モードテーブル131aに格納されていない場合(ステップS53のNo)、モードテーブル131aに、選択したMSCのMSC名とモード名Mを登録する(ステップS54)。その後、ステップS57に移行する。
選択したMSC名に一致するMSC名が、モードテーブル131aに格納されていない場合(ステップS53のNo)、モードテーブル131aに、選択したMSCのMSC名とモード名Mを登録する(ステップS54)。その後、ステップS57に移行する。
一方、選択したMSC名が、モードテーブル131aに格納されている場合(ステップS53のYes)、モードテーブル131aからそのMSC名に関連づけられているモード名V(Vはパラメータ)を参照する(ステップS55)。
次に、モード名Mとモード名Vが一致するか否かを判断する(ステップS56)。
モード名Mとモード名Vが一致しない場合(ステップS56のNo)、ステップS54に移行する。そして、ステップS54以降の処理を引き続き行う。
モード名Mとモード名Vが一致しない場合(ステップS56のNo)、ステップS54に移行する。そして、ステップS54以降の処理を引き続き行う。
一方、モード名Mとモード名Vが一致する場合(ステップS56のYes)、または、ステップS54の処理後に、ステップS51にて選択したモード名Mに未選択のMSCが存在するか否かを判断する(ステップS57)。
モード名Mに未選択のMSCが存在する場合(ステップS57のYes)、ステップS52に移行する。そして、未選択のMSC名を選択し、ステップS53以降の処理を引き続き行う。
一方、モード名Mに未選択のMSC名が存在しない場合(ステップS57のNo)、電力管理仕様に未選択のモード名が存在するか否かを判断する(ステップS58)。
電力管理仕様に未選択のモード名が存在する場合(ステップS58のYes)、ステップS51に移行する。そして、電力管理仕様から未選択のモード名Mを選択し、ステップS52以降の処理を引き続き行う。
電力管理仕様に未選択のモード名が存在する場合(ステップS58のYes)、ステップS51に移行する。そして、電力管理仕様から未選択のモード名Mを選択し、ステップS52以降の処理を引き続き行う。
一方、電力管理仕様に未選択のモード名が存在しない場合(ステップS58のNo)、処理を終了する。
以上でモードテーブル作成処理の説明を終了する。
以上でモードテーブル作成処理の説明を終了する。
次に、ステップS42に示す事前条件テーブル作成処理を説明する。
図21は、事前条件テーブル作成処理を示すフローチャートである。
まず、モードテーブル131aからMSC名を1つ選択する(ステップS61)。
図21は、事前条件テーブル作成処理を示すフローチャートである。
まず、モードテーブル131aからMSC名を1つ選択する(ステップS61)。
次に、選択したMSC名と同じMSC名を有するレコードがモードテーブル131a内に存在するか否かを判断する(ステップS62)。
選択したMSC名と同じMSC名を有するレコードがモードテーブル131a内に存在しない場合(ステップS62のNo)、選択したMSC名を事前条件テーブル131bのMSC名の欄に格納する。そして、選択したMSC名に対応するモード名を事前条件テーブル131bの事前条件の欄に格納する(ステップS63)。その後、ステップS65に移行する。
選択したMSC名と同じMSC名を有するレコードがモードテーブル131a内に存在しない場合(ステップS62のNo)、選択したMSC名を事前条件テーブル131bのMSC名の欄に格納する。そして、選択したMSC名に対応するモード名を事前条件テーブル131bの事前条件の欄に格納する(ステップS63)。その後、ステップS65に移行する。
一方、選択したMSC名と同じMSC名を有するレコードがモードテーブル131a内に存在する場合(ステップS62のYes)、選択したMSC名を事前条件テーブル131bのMSC名の欄に格納する。そして、各レコードのモード名を「or」で接続して事前条件テーブル131bの事前条件の欄に格納する(ステップS64)。
次に、事前条件テーブル131bに格納した事前条件を、検証用シナリオが有するメッセージ・シーケンス・チャートの事前条件に設定する(ステップS65)。これにより、電力管理仕様のメッセージ・シーケンス・チャートの事前条件が、検証用シナリオのメッセージ・シーケンス・チャートに反映される。
次に、モードテーブル131aに未選択のMSC名が存在するか否かを判断する(ステップS66)。
モードテーブル131aに未選択のMSC名が存在する場合(ステップS66のYes)、ステップS61に移行する。そして、モードテーブル131aから未選択のMSC名を選択し、ステップS62以降の処理を引き続き行う。
モードテーブル131aに未選択のMSC名が存在する場合(ステップS66のYes)、ステップS61に移行する。そして、モードテーブル131aから未選択のMSC名を選択し、ステップS62以降の処理を引き続き行う。
一方、モードテーブル131aに未選択のMSC名が存在しない場合(ステップS66のNo)、処理を終了する。
以上で事前条件テーブル作成処理の説明を終了する。
以上で事前条件テーブル作成処理の説明を終了する。
以下、具体例を用いて設計検証装置10の処理を説明する。
<具体例>
次に、ラベル付与処理の具体例を説明する。
<具体例>
次に、ラベル付与処理の具体例を説明する。
図22は、LSIの設計仕様のデータ構造の具体例を示す図である。
図22に示すLSI20の設計仕様は、グラフィック演算(図22ではG演算と表記)に関する機能を表している。
図22に示すLSI20の設計仕様は、グラフィック演算(図22ではG演算と表記)に関する機能を表している。
この設計仕様は、CPUのグラフィックアクセラレータに対する起動要求によりグラフィックス演算を実行する簡単化された記述を提供する。
具体的には、機能ブロック52にはグラフィック演算開始機能が設定されている。
具体的には、機能ブロック52にはグラフィック演算開始機能が設定されている。
図22に示すLSI20の設計仕様には、2つのシナリオが用意されている。
第1のシナリオは、起動要求により演算終了通知を受け付けるシナリオである。
この第1のシナリオは、機能ブロック52に対応付けられている機能、シナリオブロック52aに対応付けられているシナリオ、シナリオブロック52aに対応付けられているシナリオを実現するための検証用シナリオを開始、進行するパスに関する。
第1のシナリオは、起動要求により演算終了通知を受け付けるシナリオである。
この第1のシナリオは、機能ブロック52に対応付けられている機能、シナリオブロック52aに対応付けられているシナリオ、シナリオブロック52aに対応付けられているシナリオを実現するための検証用シナリオを開始、進行するパスに関する。
この検証用シナリオは、MSCブロック521a、522aに対応付けられているメッセージ・シーケンス・チャートによって実現される。
ここで、MSCブロック522aに対応付けられているメッセージ・シーケンス・チャートには、事前条件として「V=true」が設定されている。
ここで、MSCブロック522aに対応付けられているメッセージ・シーケンス・チャートには、事前条件として「V=true」が設定されている。
第2のシナリオは、起動要求によりエラー通知を受け付けるシナリオである。
この第2のシナリオは、機能ブロック52に対応付けられている機能、シナリオブロック52bに対応付けられているシナリオ、シナリオブロック52bに対応付けられているシナリオを実現するための検証用シナリオを開始、進行するパスに関する。
この第2のシナリオは、機能ブロック52に対応付けられている機能、シナリオブロック52bに対応付けられているシナリオ、シナリオブロック52bに対応付けられているシナリオを実現するための検証用シナリオを開始、進行するパスに関する。
この検証用シナリオは、MSCブロック521b、522bに対応付けられているメッセージ・シーケンス・チャートによって実現される。
ここで、MSCブロック522bに対応付けられているメッセージ・シーケンス・チャートには、事前条件として「V=false」が設定されている。
ここで、MSCブロック522bに対応付けられているメッセージ・シーケンス・チャートには、事前条件として「V=false」が設定されている。
以下、第1のシナリオをシナリオ「成功」と言い、第2のシナリオをシナリオ「失敗」と言う。
図23は、メッセージ・シーケンス・チャートの具体例を示す図である。
図23は、メッセージ・シーケンス・チャートの具体例を示す図である。
図23(a)〜図23(c)は、それぞれ、検証用シナリオに関するメッセージ・シーケンス・チャートを示す図である。
図23(a)に示すメッセージ・シーケンス・チャート40bは、MSCブロック521aに対応付けられているMSC名「問い合わせ」に関するメッセージ・シーケンス・チャート(以下、単にMSC名「問い合わせ」のメッセージ・シーケンス・チャートと言う)である。
図23(a)に示すメッセージ・シーケンス・チャート40bは、MSCブロック521aに対応付けられているMSC名「問い合わせ」に関するメッセージ・シーケンス・チャート(以下、単にMSC名「問い合わせ」のメッセージ・シーケンス・チャートと言う)である。
図23(a)に示すオブジェクトは、LSI20が有するオブジェクトを示している。
このオブジェクトは、CPU41a、グラフィックスアクセラレータ(GA)42aおよびメモリコントローラ43aによって表される。
このオブジェクトは、CPU41a、グラフィックスアクセラレータ(GA)42aおよびメモリコントローラ43aによって表される。
各オブジェクトはまた、CPUライン44a、グラフィックスアクセラレータライン45aおよびメモリコントローラライン46aを含むオブジェクトラインを含む。
前述したルールを利用して、メッセージ・シーケンス・チャート40bは、以下の処理を行う。
前述したルールを利用して、メッセージ・シーケンス・チャート40bは、以下の処理を行う。
まず、CPU41aは、起動要求をグラフィックスアクセラレータ42aに送信する(ステップS71)。
起動要求の受信後、グラフィックスアクセラレータ42aは、データ取得要求をメモリコントローラ43aに送信する(ステップS72)。
起動要求の受信後、グラフィックスアクセラレータ42aは、データ取得要求をメモリコントローラ43aに送信する(ステップS72)。
図23(b)に示すメッセージ・シーケンス・チャート40cは、MSCブロック522aに対応付けられているメッセージ・シーケンス・チャートのMSC名「データ取得成功」に関するメッセージ・シーケンス・チャート(以下、単にMSC名「データ取得成功」のメッセージ・シーケンス・チャートと言う)である。
メッセージ・シーケンス・チャート40cは、CPU41a、グラフィックスアクセラレータ42aおよびメモリコントローラ43aに関するメッセージ・シーケンス・チャートにおいて用いられる同一のオブジェクトの表示を含む。
前述したルールを利用して、メッセージ・シーケンス・チャート40cは、以下の処理を行う。
データ取得要求の受信後、メモリコントローラ43aは、データ取得要求に対するデータをグラフィックスアクセラレータ42aに転送する(ステップS73)。
データ取得要求の受信後、メモリコントローラ43aは、データ取得要求に対するデータをグラフィックスアクセラレータ42aに転送する(ステップS73)。
グラフィックスアクセラレータ42aが、データを受信した後、グラフィックスアクセラレータ42aは、受信したデータを用いて演算を行う。
演算終了後、演算終了通知をCPU41aに送信する(ステップS74)。
演算終了後、演算終了通知をCPU41aに送信する(ステップS74)。
図23(c)に示すメッセージ・シーケンス・チャート40dは、MSCブロック522bに対応付けられているメッセージ・シーケンス・チャートのMSC名「データ取得失敗」に関するメッセージ・シーケンス・チャート(以下、単にMSC名「データ取得失敗」のメッセージ・シーケンス・チャートと言う)である。
メッセージ・シーケンス・チャート40dは、CPU41a、グラフィックスアクセラレータ42aおよびメモリコントローラ43aに関連するメッセージ・シーケンス・チャートで用いられる同一のオブジェクトの表現を含む。
前述したルールを利用して、メッセージ・シーケンス・チャート40dは、以下の処理を行う。
メモリコントローラ43aは、エラーをグラフィックスアクセラレータ42aに送信する(ステップS75)。グラフィックスアクセラレータ42aがエラーを受信した後、グラフィックスアクセラレータ42aは、エラーメッセージをCPU41aに送信する(ステップS76)。
メモリコントローラ43aは、エラーをグラフィックスアクセラレータ42aに送信する(ステップS75)。グラフィックスアクセラレータ42aがエラーを受信した後、グラフィックスアクセラレータ42aは、エラーメッセージをCPU41aに送信する(ステップS76)。
図24〜図26は、LSIの設計仕様にラベルを付与する具体例を示す図である。
有向グラフ30aは、初期状態ブロック31aと、MSC名「問い合わせ」のメッセージ・シーケンス・チャート35と、MSC名「データ取得成功」のメッセージ・シーケンス・チャート36と、MSC名「データ取得失敗」のメッセージ・シーケンス・チャート37とを有している。
有向グラフ30aは、初期状態ブロック31aと、MSC名「問い合わせ」のメッセージ・シーケンス・チャート35と、MSC名「データ取得成功」のメッセージ・シーケンス・チャート36と、MSC名「データ取得失敗」のメッセージ・シーケンス・チャート37とを有している。
まず、LSI20の設計仕様を参照し、機能ブロック52に対応付けられている機能「グラフィックス演算開始」を選択する。
次に、選択した機能からシナリオブロック52aに対応付けられているシナリオ「成功」を選択する。
次に、選択した機能からシナリオブロック52aに対応付けられているシナリオ「成功」を選択する。
次に、選択したシナリオ「成功」に対応付けられているMSC名「問い合わせ」のメッセージ・シーケンス・チャート35を選択する。
次に、選択したMSC名「問い合わせ」のメッセージ・シーケンス・チャート35にラベルを付与する。
次に、選択したMSC名「問い合わせ」のメッセージ・シーケンス・チャート35にラベルを付与する。
前述したように、ラベルとして、現在選択されている機能名および現在選択されているシナリオ名を付与する。またラベルは、機能名・シナリオ名:シナリオの種類の順に付与する。従って、図24に示す例では、「グラフィックス演算開始・成功:基本動作」のラベル521a1を付与する。
図24は、ここまでの例を示している。
次に、当該シナリオブロック52a内に未処理のメッセージ・シーケンス・チャートが存在するか否かを判断すると、未処理のMSC名「データ取得成功」のメッセージ・シーケンス・チャートが存在する。従って、このMSC名「データ取得成功」のメッセージ・シーケンス・チャートを選択する。
次に、当該シナリオブロック52a内に未処理のメッセージ・シーケンス・チャートが存在するか否かを判断すると、未処理のMSC名「データ取得成功」のメッセージ・シーケンス・チャートが存在する。従って、このMSC名「データ取得成功」のメッセージ・シーケンス・チャートを選択する。
次に、選択したMSC名「データ取得成功」のメッセージ・シーケンス・チャートに「グラフィックス演算開始・成功:基本動作」のラベル522a1を付与する。
次に、当該シナリオブロック52a内に未処理のメッセージ・シーケンス・チャートが存在するか否かを判断すると、当該シナリオブロック52a内に未処理のメッセージ・シーケンス・チャートは存在しない。
次に、当該シナリオブロック52a内に未処理のメッセージ・シーケンス・チャートが存在するか否かを判断すると、当該シナリオブロック52a内に未処理のメッセージ・シーケンス・チャートは存在しない。
従って、機能ブロック52内に未処理のシナリオが存在するか否かを判断すると、シナリオブロック52bの未処理のシナリオ「失敗」が存在する。
そこで、このシナリオ「失敗」を選択する。
そこで、このシナリオ「失敗」を選択する。
次に、選択したシナリオ「失敗」に対応付けられているMSC名「問い合わせ」のメッセージ・シーケンス・チャートを選択する。
次に、選択したMSC名「問い合わせ」のメッセージ・シーケンス・チャートに「グラフィックス演算開始・失敗:例外動作」のラベルを付与する。ここでは、既にラベル521a1が付与されているので、「グラフィックス演算開始・失敗:例外動作」のラベルをラベル521a1に追加する。
次に、選択したMSC名「問い合わせ」のメッセージ・シーケンス・チャートに「グラフィックス演算開始・失敗:例外動作」のラベルを付与する。ここでは、既にラベル521a1が付与されているので、「グラフィックス演算開始・失敗:例外動作」のラベルをラベル521a1に追加する。
図25ではここまでの例を示している。
次に、当該シナリオ内に未処理のメッセージ・シーケンス・チャートが存在するか否かを判断すると、未処理のMSC名「データ取得失敗」のメッセージ・シーケンス・チャートが存在する。従って、このMSC名「データ取得失敗」のメッセージ・シーケンス・チャートを選択する。
次に、当該シナリオ内に未処理のメッセージ・シーケンス・チャートが存在するか否かを判断すると、未処理のMSC名「データ取得失敗」のメッセージ・シーケンス・チャートが存在する。従って、このMSC名「データ取得失敗」のメッセージ・シーケンス・チャートを選択する。
次に、選択したMSC名「データ取得失敗」のメッセージ・シーケンス・チャートに「グラフィックス演算開始・失敗:例外動作」のラベル522b1を付与する。
次に、当該シナリオブロック52b内に未処理のメッセージ・シーケンス・チャートが存在するか否かを判断すると、当該シナリオブロック52b内に未選択のメッセージ・シーケンス・チャートは存在しない。
次に、当該シナリオブロック52b内に未処理のメッセージ・シーケンス・チャートが存在するか否かを判断すると、当該シナリオブロック52b内に未選択のメッセージ・シーケンス・チャートは存在しない。
従って、機能ブロック52内に未処理のシナリオが存在するか否かを判断すると、未処理のシナリオは存在しない。
従って、処理を終了する。
従って、処理を終了する。
図26は、ここまでの処理を示している。
図27は、ラベルを付与したLSIの設計仕様のデータ構造例を示す図である。
ラベルを付与したLSI20のデータ60は、XML形式で表現されている。
図27は、ラベルを付与したLSIの設計仕様のデータ構造例を示す図である。
ラベルを付与したLSI20のデータ60は、XML形式で表現されている。
記述61は、メッセージ・シーケンス・チャート40bに関する記述部分を示している。また、記述62は、メッセージ・シーケンス・チャート40cに関する記述部分を示している。また、記述63は、メッセージ・シーケンス・チャート40dに関する記述部分を示している。
ここで、記述61a、62a、63aは、それぞれ、ラベル付与処理によって追記された行である。ラベル付与処理によって追記された行には、ラベル名であることを識別するXMLタグ<label name>が付されている。また、タグ内の内容は、それぞれ付与されたラベルの内容を示している。
なお、前述したように、ラベルには、機能名・シナリオ名:シナリオの種類に加え、メッセージ・シーケンス・チャート名を付与するようにしてもよい。
図28は、LSIの設計仕様にラベルを付与する他の具体例を示す図である。
図28は、LSIの設計仕様にラベルを付与する他の具体例を示す図である。
図28に示すラベル521a1、522a1、522b1には、いずれも機能名・シナリオ名:シナリオの種類に加え、メッセージ・シーケンス・チャート名が付与されている。
次に、ステップS14の、メッセージ・シーケンス・チャートを有限ステートマシンに変換する処理を、具体例を用いて説明する。
図29は、有限ステートマシンに変換する処理を説明するメッセージ・シーケンス・チャートを示す図である。
図29は、有限ステートマシンに変換する処理を説明するメッセージ・シーケンス・チャートを示す図である。
有向グラフを有限ステートマシンに変換するため、有向グラフの備える各メッセージ・シーケンス・チャートによって規定されるイベントを用いて、有限ステートマシンのステートを特定する。
メッセージ・シーケンス・チャートは可能なイベント順序を規定し、各オブジェクトにおいて完了されたイベントは状態に対応する。例えば、初期状態はいずれのオブジェクトにおいても完了されないイベントに対応する。最終状態は、各オブジェクトにおいて完了した全てのイベントに対応する。
ここで、メッセージ・シーケンス・チャート70を検討すると、メッセージ・シーケンス・チャート70の一部が、オブジェクトの一部のイベント群を考慮することによって有限ステートマシンに投影される。
図29に示すオブジェクトは、送信オブジェクト71、長距離送信オブジェクト72、受信オブジェクト73および長距離受信オブジェクト74によって表される。
例えば、メッセージ・シーケンス・チャート70では、有限ステートマシンが、送信オブジェクト71と受信オブジェクト73に対して生成される。図示されるように、送信オブジェクト71は送信イベントt1〜t5を有している。受信オブジェクト73は、受信イベントr1〜r6を有している。
例えば、メッセージ・シーケンス・チャート70では、有限ステートマシンが、送信オブジェクト71と受信オブジェクト73に対して生成される。図示されるように、送信オブジェクト71は送信イベントt1〜t5を有している。受信オブジェクト73は、受信イベントr1〜r6を有している。
ここで、送信オブジェクト71と受信オブジェクト73は、メッセージを交換することなく、2つの同期エッジによって関連付けされる。
図30は、図29に示すメッセージ・シーケンス・チャートに関連する状態マトリックスを示す図である。
図30は、図29に示すメッセージ・シーケンス・チャートに関連する状態マトリックスを示す図である。
状態マトリックス80を利用して、有限ステートマシンの生成方法をさらに説明する。
2つのみしかオブジェクトが存在しない場合、メッセージ・シーケンス・チャート70の有限ステートマシンは、2次元の状態マトリックス80として可視化することができる。
2つのみしかオブジェクトが存在しない場合、メッセージ・シーケンス・チャート70の有限ステートマシンは、2次元の状態マトリックス80として可視化することができる。
状態マトリックス80の各ブロックは、送信オブジェクト71が送信イベントtiを終了させ、受信オブジェクト73が受信イベントrjを終了させた状態に対応している。
このため、状態マトリックス80の各ブロックは、状態(ti,rj)を規定する。
このため、状態マトリックス80の各ブロックは、状態(ti,rj)を規定する。
ここで、状態マトリックス80の原点は、左上隅に設けられている。初期状態は、記号⊥を用いて各オブジェクトに対して示される。
状態マトリックス80の左上隅の状態が初期状態であるため、状態遷移は各状態から右下にトレースすることによって特定される。最終状態は、右下隅に示す状態となる。
状態マトリックス80の左上隅の状態が初期状態であるため、状態遷移は各状態から右下にトレースすることによって特定される。最終状態は、右下隅に示す状態となる。
送信オブジェクト71と受信オブジェクト73とが2つの同期エッジによっては関連付けされていない場合、状態マトリックス80は、(n×m)の完全な2次元の状態マトリックスとなる(但し、nは、送信オブジェクト71により送信されるメッセージの個数であり、mは、受信オブジェクト73によって受信されるメッセージの個数である)。
しかしながら、メッセージ・シーケンス・チャート70の同期エッジの存在は、状態マトリックス80に示されるような有効な状態の個数を減少させる。
同期エッジにより、状態マトリックス80に示される一部の状態は有効とはならず、2次元マトリックスから「クロスアウト(cross out)」させることが可能である。
同期エッジにより、状態マトリックス80に示される一部の状態は有効とはならず、2次元マトリックスから「クロスアウト(cross out)」させることが可能である。
例えば、送信イベントt3が送信オブジェクト71から受信オブジェクト73への同期エッジに対応する送信イベントであると仮定する。
受信イベントr3は、同一の同期エッジに関連する対応する受信イベントである。受信イベントr2の後に発生する受信オブジェクト73におけるいずれのイベントも、送信イベントt3の後に発生する必要がある。従って、受信イベントr3〜r6は送信イベントt3の前に発生することはできない。
受信イベントr3は、同一の同期エッジに関連する対応する受信イベントである。受信イベントr2の後に発生する受信オブジェクト73におけるいずれのイベントも、送信イベントt3の後に発生する必要がある。従って、受信イベントr3〜r6は送信イベントt3の前に発生することはできない。
このオブジェクトを利用して、無効状態に対応する状態マトリックス80の領域81は、クロスアウトされる。同様のオブジェクトを用いて、メッセージ・シーケンス・チャート70の第2同期エッジに関連する領域82をクロスアウトする。
残りのマトリックスは、メッセージ・シーケンス・チャート70を正確に表している。送信イベントt2や受信イベントr1等の状態は、送信オブジェクト71が送信イベントt2を終了させ、受信オブジェクト73が受信イベントr1を終了させた状態を表す。
図31は、状態マトリックスに関する状態図を示す図である。
状態図90に示す1つのステート91は、図30に示した状態マトリックス80の1つの領域に対応している。
状態図90に示す1つのステート91は、図30に示した状態マトリックス80の1つの領域に対応している。
ステート91内の値は、状態を示している。
状態図90の各水平方向への遷移は、メッセージの受信に対応している。このため有限ステートマシンによるメッセージの送信として実現される。
状態図90の各水平方向への遷移は、メッセージの受信に対応している。このため有限ステートマシンによるメッセージの送信として実現される。
同様に、状態図90の各垂直方向への遷移は、メッセージの送信に対応している。このため、有限ステートマシンによるメッセージの受信待機として実現される。
現在、状態図90の水平方向への遷移と垂直方向への遷移の両方が行われうる状態(i,j)であるとき、水平方向への遷移は適切なメッセージを送信することにより行われる。
現在、状態図90の水平方向への遷移と垂直方向への遷移の両方が行われうる状態(i,j)であるとき、水平方向への遷移は適切なメッセージを送信することにより行われる。
その後、垂直方向への遷移が予想されるメッセージが受信されたか判断することによって試行される。後者の状態が満たされる場合、垂直方向への遷移が行われてもよく、次の状態は状態(i+1,j+1)となる。
後者の状態が満たされていない場合、水平方向への遷移のみが行われ、次の状態は(i+1,j)となる。
オブジェクトが永久に待機することがないように、メッセージの受信待機中にタイマが利用される。
オブジェクトが永久に待機することがないように、メッセージの受信待機中にタイマが利用される。
すなわち、適切なタイムアウト期間後に待機は終了する。垂直または水平のみの遷移しかある状態から行うことができない場合、これらの動作のみが生成される。
遷移方向が生成可能な有限ステートマシンに影響する1つの変数である一方、他の変数はあるステートに関する特定のタイプのイベントである。
遷移方向が生成可能な有限ステートマシンに影響する1つの変数である一方、他の変数はあるステートに関する特定のタイプのイベントである。
例えば、図29に示す送信オブジェクト71と受信オブジェクト73において、オブジェクトラインに関連する各イベントは3つのタイプのうちの1つである。送信オブジェクト71では、これらのタイプはメッセージ送信イベント、タイマ始動イベントおよびタイムアウト信号受信イベントである。
受信オブジェクト73では、これらのタイプは、メッセージ受信イベント、タイマ始動イベントおよびタイムアウト信号受信イベントである。各オブジェクトのこれら3つのタイプのイベントは、有限ステートマシンの各ステートに対して生成されるコードが当該状態の正確な組み合わせに依存するため、有限ステートマシン変換中に考慮される9つの組み合わせを生じさせる。
これらの技術を利用して、有限ステートマシンがメッセージ・シーケンス・チャートに対して生成される。
シナリオに対する有限ステートマシンを生成するため、有限ステートマシンがパスに沿って各メッセージ・シーケンス・チャートに対して生成され、必要に応じて合成される。例えば、1つのメッセージ・シーケンス・チャートの終わりの次の状態は、パスに沿った次のメッセージ・シーケンス・チャートの開始状態となる。
シナリオに対する有限ステートマシンを生成するため、有限ステートマシンがパスに沿って各メッセージ・シーケンス・チャートに対して生成され、必要に応じて合成される。例えば、1つのメッセージ・シーケンス・チャートの終わりの次の状態は、パスに沿った次のメッセージ・シーケンス・チャートの開始状態となる。
信号および変数宣言の全てを組み合わせることによって、有限ステートマシンを自動的に生成、編集することができる。また、生成、編集された有限ステートマシンを用いてテスト対象装置300の動作をシミュレートすることができる。
次に、ステップS15に示す有限ステートマシンにラベルを付与する処理を具体的に説明する。
図32は、有限ステートマシンにラベルを付与する具体例を示す図である。
図32は、有限ステートマシンにラベルを付与する具体例を示す図である。
まず、前述した方法にて生成した有限ステートマシン90aのステート1つ1つに対し、対応するメッセージ・シーケンス・チャートのデータ・イベント・メッセージをラベルとして付与する。
図32では、MSC名「問い合わせ」のメッセージ・シーケンス・チャートから有限ステートマシンのステートSt1、St2が生成されている。
ここで、MSC名「問い合わせ」のメッセージ・シーケンス・チャートには、「グラフィックス演算開始・成功:基本動作」のラベルと「グラフィックス演算開始・失敗:例外動作」のラベルが付与されている。
ここで、MSC名「問い合わせ」のメッセージ・シーケンス・チャートには、「グラフィックス演算開始・成功:基本動作」のラベルと「グラフィックス演算開始・失敗:例外動作」のラベルが付与されている。
従って、これらステートSt1、St2それぞれにも、「グラフィックス演算開始・成功:基本動作」のラベルと「グラフィックス演算開始・失敗:例外動作」のラベルを付与する。
図33は、有限ステートマシンにラベルの付与が終了したときの状態を示す図である。
図33では、MSC名「データ取得成功」のメッセージ・シーケンス・チャートからステートSt3、St4が生成されている。
図33では、MSC名「データ取得成功」のメッセージ・シーケンス・チャートからステートSt3、St4が生成されている。
ここで、MSC名「データ取得成功」のメッセージ・シーケンス・チャートには、「グラフィックス演算開始・成功:基本動作」のラベルが付与されている。
従って、これらステートSt3、St4それぞれにも、「グラフィックス演算開始・成功:基本動作」のラベルを付与する。
従って、これらステートSt3、St4それぞれにも、「グラフィックス演算開始・成功:基本動作」のラベルを付与する。
また、MSC名「データ取得失敗」のメッセージ・シーケンス・チャートからステートSt5、St6が生成されている。
ここで、MSC名「データ取得失敗」のメッセージ・シーケンス・チャートには、「グラフィックス演算開始・失敗:例外動作」のラベルが付与されている。
ここで、MSC名「データ取得失敗」のメッセージ・シーケンス・チャートには、「グラフィックス演算開始・失敗:例外動作」のラベルが付与されている。
従って、これらステートSt5、St6それぞれにも、「グラフィックス演算開始・失敗:例外動作」のラベルを付与する。
次に、ステップS18のメッセージ・シーケンス・チャートの制約から有限ステートマシンの状態を刈る処理を、具体例を用いて説明する。
次に、ステップS18のメッセージ・シーケンス・チャートの制約から有限ステートマシンの状態を刈る処理を、具体例を用いて説明する。
図34は、状態マトリックスに関する状態図を示す図である。
同期イベントは、実際の動作イベントの部分的順序付けを外部または他の装置により限定するのに利用されているだけであるため、状態図90から削除してもよい。同期イベントを削除することにより、図34に示される簡単化された状態図92が得られる。
同期イベントは、実際の動作イベントの部分的順序付けを外部または他の装置により限定するのに利用されているだけであるため、状態図90から削除してもよい。同期イベントを削除することにより、図34に示される簡単化された状態図92が得られる。
図35は、有限ステートマシンのデータ構造例を示す図である。
有限ステートマシンのデータ110は、XML形式で表現されている。
記述110aは、有限ステートマシン90aの識別子に関する記述部分を示している。当該記述110aには、有限ステートマシンであることを識別する有限ステートマシンタグ<fsm name>が付されている。また、タグ内の内容は、それぞれ付与されたラベルの内容を示している。
有限ステートマシンのデータ110は、XML形式で表現されている。
記述110aは、有限ステートマシン90aの識別子に関する記述部分を示している。当該記述110aには、有限ステートマシンであることを識別する有限ステートマシンタグ<fsm name>が付されている。また、タグ内の内容は、それぞれ付与されたラベルの内容を示している。
また、記述111〜116は、それぞれ各ステートSt1〜St6に関する記述部分を示している。
また、記述117は、各ステートSt1〜St6に関する遷移方向を示している。
また、記述117は、各ステートSt1〜St6に関する遷移方向を示している。
次に、図22に示すLSI20の設計仕様および図33に示すラベル付与済みの有限ステートマシン90aを用いてシナリオ毎の検証用シナリオを生成する具体例を説明する。
まず、図22に示す設計仕様から機能ブロック52に対応付けられている機能「グラフィックス演算開始」を選択する。
まず、図22に示す設計仕様から機能ブロック52に対応付けられている機能「グラフィックス演算開始」を選択する。
次に、選択した機能「グラフィックス演算開始」からシナリオ「成功」を選択する。
次に、選択したシナリオ「成功」と同じラベルを備える有限ステートマシンを抽出する。
次に、選択したシナリオ「成功」と同じラベルを備える有限ステートマシンを抽出する。
具体的には、図33に示す有限ステートマシン90aを抽出する。
次に、選択したシナリオと同じラベルを持つ有限ステートマシンの部分を抽出する。
図33に示すように、シナリオ「成功」は、「グラフィックス演算開始・成功:基本動作」のラベルを備えているため、このラベルと同じラベルを備えるステートSt1、St2、St3、St4を抽出する。
次に、選択したシナリオと同じラベルを持つ有限ステートマシンの部分を抽出する。
図33に示すように、シナリオ「成功」は、「グラフィックス演算開始・成功:基本動作」のラベルを備えているため、このラベルと同じラベルを備えるステートSt1、St2、St3、St4を抽出する。
次に、抽出した有限ステートマシンの部分を、シナリオ「成功」を検証する検証用シナリオとして検証用シナリオ格納部12に格納する。
次に、選択した機能に未処理のシナリオが残っているか否かを判断すると、シナリオ「失敗」が残っている。
次に、選択した機能に未処理のシナリオが残っているか否かを判断すると、シナリオ「失敗」が残っている。
従って、選択した機能「グラフィックス演算開始」からシナリオ「失敗」を選択する。
次に、選択したシナリオ「失敗」と同じラベルを備える有限ステートマシンを抽出する。
次に、選択したシナリオ「失敗」と同じラベルを備える有限ステートマシンを抽出する。
具体的には、図33に示す有限ステートマシン90aを抽出する。
次に、選択したシナリオと同じラベルを持つ有限ステートマシンの部分を抽出する。
図33に示すように、シナリオ「失敗」は、「グラフィックス演算開始・失敗:例外動作」のラベルを備えているため、このラベルと同じラベルを備えるステートSt1、St2、St5、St6を抽出する。
次に、選択したシナリオと同じラベルを持つ有限ステートマシンの部分を抽出する。
図33に示すように、シナリオ「失敗」は、「グラフィックス演算開始・失敗:例外動作」のラベルを備えているため、このラベルと同じラベルを備えるステートSt1、St2、St5、St6を抽出する。
次に、抽出した部分有限ステートマシンを、シナリオ「失敗」を検証する検証用シナリオとして検証用シナリオ格納部12に格納する。
次に、選択した機能に未処理のシナリオが残っているか否かを判断すると、残っていない。
次に、選択した機能に未処理のシナリオが残っているか否かを判断すると、残っていない。
次に、未処理の機能が残っているか否かを判断すると、残っていない。
従って、処理を終了する。
図36は、検証用シナリオ格納部に格納されている検証用シナリオを示す図である。
従って、処理を終了する。
図36は、検証用シナリオ格納部に格納されている検証用シナリオを示す図である。
図36に示すように、シナリオ「成功」を検証する検証用シナリオSc1およびシナリオ「失敗」を検証する検証用シナリオSc2が格納されている。
次に、検証用シナリオ生成処理におけるステップS24の有限ステートマシンの部分から検証用シナリオを生成する方法を詳しく説明する。
次に、検証用シナリオ生成処理におけるステップS24の有限ステートマシンの部分から検証用シナリオを生成する方法を詳しく説明する。
<検証用シナリオの生成>
前述した具体例では、有限ステートマシンの部分から検証用シナリオを容易に作成することができた。
前述した具体例では、有限ステートマシンの部分から検証用シナリオを容易に作成することができた。
しかしながら、有限ステートマシンの部分のステートがループしている場合等がある。 この場合、検証用シナリオ生成部11は、有限ステートマシンの部分を、いくつかの構成単位に「切断」または分割した、検証用シナリオを生成する。
例えば、有限ステートマシンの部分は、パスにおいて再出現するステートに従って切断されてもよい。代わりに、または加えて、「少なくとも最小数または最大数以下のステートが各検証用シナリオにおいて特定されることを要求する」と言う制約を有する複数の検証用シナリオに切断されてもよい。
例えば、以下の有限ステートマシンの部分が抽出されたものとする。
St2→St4→St6→St7→St2→St3→St6→St7→St2→St3→St5→St7→St2→St3→St5→St2
有限ステートマシンの部分を分割する1つの論理的方法は、再出現するステートを切断することである。
St2→St4→St6→St7→St2→St3→St6→St7→St2→St3→St5→St7→St2→St3→St5→St2
有限ステートマシンの部分を分割する1つの論理的方法は、再出現するステートを切断することである。
例えば、ステートSt2は、この長い有限ステートマシンの部分を4つの検証用シナリオに切断するのに利用される。
(1)St2→St4→St6→St7
(2)St2→St3→St6→St7
(3)St2→St3→St5→St7
(4)St2→St3→St5→St2
より長い検証用シナリオを生成するため、検証用シナリオ生成部11は、ステートSt2を用いて切断処理を実行すると共に、各検証用シナリオが少なくとも5つのステートを含むことを要求することができる。
(1)St2→St4→St6→St7
(2)St2→St3→St6→St7
(3)St2→St3→St5→St7
(4)St2→St3→St5→St2
より長い検証用シナリオを生成するため、検証用シナリオ生成部11は、ステートSt2を用いて切断処理を実行すると共に、各検証用シナリオが少なくとも5つのステートを含むことを要求することができる。
これらの制約を用いて、以下の2つの検証用シナリオが特定される。
(5)St2→St4→St6→St7→St2→St3→St6→St7
(6)St2→St3→St5→St7→St2→St3→St5→St2
次に、モード条件を付与する具体例を説明する。
(5)St2→St4→St6→St7→St2→St3→St6→St7
(6)St2→St3→St5→St7→St2→St3→St5→St2
次に、モード条件を付与する具体例を説明する。
以下具体例として、図22に示すLSI20のグラフィックス演算機能に対し、図37に示す電力管理仕様を用いてモードテーブル131aおよび事前条件テーブル131bを作成する例を説明する。
図37は、具体例の電力管理仕様を示す図である。
図37に示す機能ブロック53に対応付けられた電力管理仕様は、シナリオブロック53aに対応付けられているシナリオ「モード:Full」とシナリオブロック53bに対応付けられているシナリオ「モード:Suspend」とを有している。
図37に示す機能ブロック53に対応付けられた電力管理仕様は、シナリオブロック53aに対応付けられているシナリオ「モード:Full」とシナリオブロック53bに対応付けられているシナリオ「モード:Suspend」とを有している。
シナリオ「モード:Full」は、MSCブロック531aに対応付けられているMSC名「MSC#1」のメッセージ・シーケンス・チャートとMSCブロック532aに対応付けられているMSC名「MSC#2」のメッセージ・シーケンス・チャートにより実現されるシナリオである。
このシナリオ「モード:Full」は、データ取得成功時には、Fullモードに切り替わるシナリオである。
シナリオ「モード:Suspend」は、MSCブロック531bに対応付けられているMSC名「MSC#1」のメッセージ・シーケンス・チャートとMSCブロック532bに対応付けられているMSC名「MSC#3」のメッセージ・シーケンス・チャートにより実現されるシナリオである。
シナリオ「モード:Suspend」は、MSCブロック531bに対応付けられているMSC名「MSC#1」のメッセージ・シーケンス・チャートとMSCブロック532bに対応付けられているMSC名「MSC#3」のメッセージ・シーケンス・チャートにより実現されるシナリオである。
このシナリオ「モード:Suspend」は、データ取得失敗時には、Suspendモードに切り替わるシナリオである。
各メッセージ・シーケンス・チャートには、LSI20の設計仕様が有する機能へのリンクが設けられている。
各メッセージ・シーケンス・チャートには、LSI20の設計仕様が有する機能へのリンクが設けられている。
すなわち、電力管理仕様のMSC名「MSC#1」のメッセージ・シーケンス・チャートには、図22に示すMSC名「問い合わせ」のメッセージ・シーケンス・チャートへのリンクが張られている。
また、電力管理仕様のMSC名「MSC#2」のメッセージ・シーケンス・チャートには、図22に示すMSC名「データ取得成功」のメッセージ・シーケンス・チャートへのリンクが張られている。
また、電力管理仕様のMSC名「MSC#3」のメッセージ・シーケンス・チャートには、図22に示すMSC名「データ取得失敗」のメッセージ・シーケンス・チャートへのリンクが張られている。
また、電力管理仕様が有する各メッセージ・シーケンス・チャートには、事前条件が定義されている。
図38は、モードテーブルおよび事前条件テーブルの作成例を示す図である。
図38は、モードテーブルおよび事前条件テーブルの作成例を示す図である。
処理開始前のモードテーブル131aのMSC名およびモード名の欄は空欄である。
まず、条件付与部13が、入力された電力管理仕様からモード名「Full」を選択する。
まず、条件付与部13が、入力された電力管理仕様からモード名「Full」を選択する。
次に、モード名「Full」のMSC名「MSC#1」を選択する。そして、選択したMSC名「MSC#1」のメッセージ・シーケンス・チャートに設けられているリンクを辿って、対応するメッセージ・シーケンス・チャートのMSC名「問い合わせ」を選択する。
次に、条件付与部13は、選択したMSC名「問い合わせ」に一致するMSC名が、モードテーブル131aに格納されているか否かを判断する。
選択したMSC名「問い合わせ」に一致するMSC名が、モードテーブル131aに格納されていないので、モードテーブル131aに、選択したMSC名「問い合わせ」とモード名「Full」を格納する。
選択したMSC名「問い合わせ」に一致するMSC名が、モードテーブル131aに格納されていないので、モードテーブル131aに、選択したMSC名「問い合わせ」とモード名「Full」を格納する。
次に、条件付与部13は、選択したモード名「Full」に未選択のMSCが存在するか否かを判断する。
未選択のMSC名「MSC#2」が存在するため、MSC名「MSC#2」を選択する。そして、選択したMSC名「MSC#2」のメッセージ・シーケンス・チャートに設けられているリンクを辿って、対応するメッセージ・シーケンス・チャートのMSC名「データ取得成功」を選択する。
未選択のMSC名「MSC#2」が存在するため、MSC名「MSC#2」を選択する。そして、選択したMSC名「MSC#2」のメッセージ・シーケンス・チャートに設けられているリンクを辿って、対応するメッセージ・シーケンス・チャートのMSC名「データ取得成功」を選択する。
次に、条件付与部13は、選択したMSC名「データ取得成功」に一致するMSC名が、モードテーブル131aに格納されているか否かを判断する。
選択したMSC名「データ取得成功」に一致するMSC名が、モードテーブル131aに格納されていないので、モードテーブル131aに、選択したMSC名「データ取得成功」とモード名「Full」を格納する。
選択したMSC名「データ取得成功」に一致するMSC名が、モードテーブル131aに格納されていないので、モードテーブル131aに、選択したMSC名「データ取得成功」とモード名「Full」を格納する。
次に、条件付与部13は、選択したモード名「Full」に未選択のMSCが存在するか否かを判断する。
未選択のMSC名は存在しないため、電力管理仕様に未選択のモード名が存在するか否かを判断する。
未選択のMSC名は存在しないため、電力管理仕様に未選択のモード名が存在するか否かを判断する。
電力管理仕様に未選択のモード名「Suspend」が存在するため、モード名「Suspend」を選択する。
次に、条件付与部13は、モード名「Suspend」のMSC名「MSC#1」を選択する。そして、選択したMSC名「MSC#1」のメッセージ・シーケンス・チャートに設けられているリンクを辿って、対応するメッセージ・シーケンス・チャートのMSC名「問い合わせ」を選択する。
次に、条件付与部13は、モード名「Suspend」のMSC名「MSC#1」を選択する。そして、選択したMSC名「MSC#1」のメッセージ・シーケンス・チャートに設けられているリンクを辿って、対応するメッセージ・シーケンス・チャートのMSC名「問い合わせ」を選択する。
次に、条件付与部13は、選択したMSC名「問い合わせ」に一致するMSC名が、モードテーブル131aに格納されているか否かを判断する。
選択したMSC名「問い合わせ」が、モードテーブル131aに格納されているため、モードテーブル131aからそのMSC名「問い合わせ」に関連付けられているモード名「Full」を参照する。
選択したMSC名「問い合わせ」が、モードテーブル131aに格納されているため、モードテーブル131aからそのMSC名「問い合わせ」に関連付けられているモード名「Full」を参照する。
次に、条件付与部13は、モード名「Suspend」とモード名「Full」が一致するか否かを判断する。モード名「Suspend」とモード名「Full」は一致しないため、選択したMSC名「問い合わせ」とモード名「Suspend」をモードテーブル131aに格納する。
次に、条件付与部13は、選択したモード名「Suspend」に未選択のMSC名が存在するか否かを判断する。
未選択のMSC名「MSC#3」が存在するため、MSC名「MSC#3」を選択する。そして、選択したMSC名「MSC#3」のメッセージ・シーケンス・チャートに設けられているリンクを辿って、対応するメッセージ・シーケンス・チャートのMSC名「データ取得失敗」を選択する。
未選択のMSC名「MSC#3」が存在するため、MSC名「MSC#3」を選択する。そして、選択したMSC名「MSC#3」のメッセージ・シーケンス・チャートに設けられているリンクを辿って、対応するメッセージ・シーケンス・チャートのMSC名「データ取得失敗」を選択する。
次に、条件付与部13は、選択したMSC名「データ取得失敗」に一致するMSC名が、モードテーブル131aに格納されているか否かを判断する。
選択したMSC名「データ取得失敗」に一致するMSC名が、モードテーブル131aに格納されていないので、モードテーブル131aに、選択したMSC名「データ取得失敗」とモード名「Suspend」を格納する。
選択したMSC名「データ取得失敗」に一致するMSC名が、モードテーブル131aに格納されていないので、モードテーブル131aに、選択したMSC名「データ取得失敗」とモード名「Suspend」を格納する。
次に、条件付与部13は、選択したモード名「Suspend」に未選択のMSC名が存在するか否かを判断する。
未選択のMSC名は存在しないため、電力管理仕様に未選択のモード名が存在するか否かを判断する。
未選択のMSC名は存在しないため、電力管理仕様に未選択のモード名が存在するか否かを判断する。
電力管理仕様に未選択のモード名が存在しないため、処理を終了する。
これにより、図38に示すモードテーブル131aが完成する。
次に、条件付与部13は、事前条件テーブル作成処理を行う。
これにより、図38に示すモードテーブル131aが完成する。
次に、条件付与部13は、事前条件テーブル作成処理を行う。
処理開始前の事前条件テーブル131bのMSC名および事前条件の欄は空欄である。
まず、条件付与部13は、モードテーブル131aからMSC名「問い合わせ」を選択する。
まず、条件付与部13は、モードテーブル131aからMSC名「問い合わせ」を選択する。
次に、条件付与部13は、選択したMSC名「問い合わせ」と同じMSC名を有するレコードがモードテーブル131a内に存在するか否かを判断する。
MSC名「問い合わせ」と同じMSC名を有するレコードがモードテーブル131a内に存在するので、選択したMSC名「問い合わせ」を事前条件テーブル131bのMSC名の欄に格納する。そして、各レコードのモード名「Full」、「Suspend」を「or」で接続して事前条件テーブル131bの事前条件の欄に格納する。
MSC名「問い合わせ」と同じMSC名を有するレコードがモードテーブル131a内に存在するので、選択したMSC名「問い合わせ」を事前条件テーブル131bのMSC名の欄に格納する。そして、各レコードのモード名「Full」、「Suspend」を「or」で接続して事前条件テーブル131bの事前条件の欄に格納する。
次に、条件付与部13は、事前条件テーブル131bに格納した事前条件「Full or Suspend=true」をMSC名「問い合わせ」のメッセージ・シーケンス・チャート35の事前条件として設定する。これにより、電力管理仕様のメッセージ・シーケンス・チャートの事前条件が、検証用シナリオのメッセージ・シーケンス・チャートに反映される。
次に、条件付与部13は、モードテーブル131aに未選択のMSC名が存在するか否かを判断する。
未選択のMSC名「データ取得成功」が存在するため、MSC名「データ取得成功」を選択する。
未選択のMSC名「データ取得成功」が存在するため、MSC名「データ取得成功」を選択する。
次に、条件付与部13は、選択したMSC名「データ取得成功」と同じMSC名を有するレコードがモードテーブル131a内に存在するか否かを判断する。
MSC名「データ取得成功」と同じMSC名を有するレコードがモードテーブル131a内に存在しないので、選択したMSC名「データ取得成功」を事前条件テーブル131bのMSC名の欄に格納する。そして、MSC名「データ取得成功」のモード名「Full」を事前条件テーブル131bの事前条件の欄に格納する。
MSC名「データ取得成功」と同じMSC名を有するレコードがモードテーブル131a内に存在しないので、選択したMSC名「データ取得成功」を事前条件テーブル131bのMSC名の欄に格納する。そして、MSC名「データ取得成功」のモード名「Full」を事前条件テーブル131bの事前条件の欄に格納する。
次に、条件付与部13は、事前条件テーブル131bに格納した事前条件「Full=true」をMSC名「データ取得成功」のメッセージ・シーケンス・チャート36の事前条件として設定する。
なお、条件付与部13は、trueでないSuspendモードをfalseとする事前条件も同時に設定する。
次に、条件付与部13は、モードテーブル131aに未選択のMSC名が存在するか否かを判断する。
次に、条件付与部13は、モードテーブル131aに未選択のMSC名が存在するか否かを判断する。
未選択のMSC名「データ取得失敗」が存在するため、MSC名「データ取得失敗」を選択する。
次に、条件付与部13は、選択したMSC名「データ取得失敗」と同じMSC名を有するレコードがモードテーブル131a内に存在するか否かを判断する。
次に、条件付与部13は、選択したMSC名「データ取得失敗」と同じMSC名を有するレコードがモードテーブル131a内に存在するか否かを判断する。
MSC名「データ取得失敗」と同じMSC名を有するレコードがモードテーブル131a内に存在しないので、選択したMSC名「データ取得失敗」を事前条件テーブル131bのMSC名の欄に格納する。そして、MSC名「データ取得失敗」のモード名「Suspend」を事前条件テーブル131bの事前条件の欄に格納する。
次に、条件付与部13は、事前条件テーブル131bに格納した事前条件「Suspend」をMSC名「データ取得失敗」のメッセージ・シーケンス・チャート37の事前条件として設定する。
なお、条件付与部13は、trueでないFullモードをfalseとする事前条件も同時に設定する。
次に、条件付与部13は、モードテーブル131aに未選択のMSC名が存在するか否かを判断する。
次に、条件付与部13は、モードテーブル131aに未選択のMSC名が存在するか否かを判断する。
モードテーブル131aに未選択のMSC名が存在しないため、処理を終了する。
これにより、図38に示す事前条件テーブル131bが完成する。
図39は、電力管理検証用シナリオの有向グラフを示す図である。
これにより、図38に示す事前条件テーブル131bが完成する。
図39は、電力管理検証用シナリオの有向グラフを示す図である。
有向グラフ30aは、初期状態ブロック31aと、MSC名「問い合わせ」のメッセージ・シーケンス・チャート35と、MSC名「データ取得成功」のメッセージ・シーケンス・チャート36と、MSC名「データ取得失敗」のメッセージ・シーケンス・チャート37とを有している。
図39では、MSC名「問い合わせ」のメッセージ・シーケンス・チャート35の処理後、V=true、かつ、Full=true or Suspend=falseの制約条件が成立すれば、メッセージ・シーケンス・チャート36に遷移する事前条件が設定されている。一方、V=false、かつ、Full=false or Suspend=trueの制約条件が成立すれば、メッセージ・シーケンス・チャート37に遷移する事前条件が設定されている。
このような事前条件が、検証用シナリオSc1、Sc2にそれぞれ設定されることにより、電力管理検証用シナリオが作成される。
図40および図41は、電力管理検証用シナリオのデータ構造を示す図である。
図40および図41は、電力管理検証用シナリオのデータ構造を示す図である。
図40は、MSC名「問い合わせ」のメッセージ・シーケンス・チャート35の処理後、メッセージ・シーケンス・チャート36に遷移する電力管理検証用シナリオPSc1のデータ構造を示している。
3行目には、<fsm name=“グラフィックス演算開始FSM” type=“scenario”>と記述されている。この「type=“scenario”」が検証用シナリオであることを示している。
また、下から4行目には、制約条件が記述されている。具体的には、ステートSt2からステートSt3に遷移するときの制約条件<transition from="St2" to="St3" guardexpr="V == true & Full = true‖ Suspend = false" />が記述されている。
図41は、MSC名「問い合わせ」のメッセージ・シーケンス・チャート35の処理後、メッセージ・シーケンス・チャート37に遷移する電力管理検証用シナリオPSc2のデータ構造を示している。
3行目には、<fsm name=“グラフィックス演算開始FSM” type=“scenario”>と記述されている。この「type=“scenario”」が検証用シナリオであることを示している。
また、下から4行目には、制約条件が記述されている。具体的には、ステートSt2からステートSt5に遷移するときの制約条件<transition from="St2" to="St5" guardexpr="V == false & Full = false‖ Suspend = true" />が記述されている。
図42は、シナリオリストを示す図である。
シナリオリスト15aには、モード名、電力管理検証用シナリオ名の欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
シナリオリスト15aには、モード名、電力管理検証用シナリオ名の欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
モード名の欄には、電力管理仕様に設定されているモード名が設定されている。図42では、モード名「Full」、「Suspend」が設定されている。
電力管理検証用シナリオ名の欄には、モード名の欄のモードを検証する電力管理検証用シナリオのシナリオ名が設定されている。図42では、Fullモードを検証する電力管理検証用シナリオPSc1のシナリオ名「PSc#1」が設定されている。また、Suspendモードを検証する電力管理検証用シナリオPSc2のシナリオ名「PSc#2」が設定されている。
電力管理検証用シナリオ名の欄には、モード名の欄のモードを検証する電力管理検証用シナリオのシナリオ名が設定されている。図42では、Fullモードを検証する電力管理検証用シナリオPSc1のシナリオ名「PSc#1」が設定されている。また、Suspendモードを検証する電力管理検証用シナリオPSc2のシナリオ名「PSc#2」が設定されている。
以上説明したように、設計検証装置10によれば、生成した検証用シナリオに対して電力管理仕様から制約を加える、すなわち、LSI20の機能設計仕様にモード毎の制約条件を付与することで、電力管理検証用シナリオを生成するようにした。
ユーザは、モード毎の電力管理検証用シナリオを検証することで、電力制御のための制御信号が正しく行われているかの網羅的な検証を行うことができるため、検証漏れや重複検証を抑制することができる。具体的には、シナリオに対し、制約条件を与えているので、その制約条件を満たさないシナリオは電力管理検証用シナリオから除外される。一方、制約条件を満たす組み合わせについては全て出力されるので漏れがない。例えば、前述した具体例では、Suspendモード移行後は、グラフィックスアクセラレータ42aを使用しないので、グラフィックスアクセラレータ42aを使用する検証用シナリオ「データ取得成功」は、検証の対象外とすることができる。従って、前述した具体例では、Fullモードを検証するときは、シナリオ名「PSc#1」の電力管理検証用シナリオのみを実行するだけでよい。一方、Suspendモードを検証するときは、シナリオ名「PSc#2」の電力管理検証用シナリオのみを実行するだけでよい。
なお、電力管理検証用シナリオは、設計の各フェーズにて電力管理検証用に用いることができる。例えば、LSI20の設計仕様からRTLを生成し、生成したRTLを解析、変更するときに電力管理検証用シナリオを用いることができる。また、変更後のRTLに基づいてネットリストを合成し、合成したネットリストを解析、変更するときに電力管理検証用シナリオを用いることができる。
なお、本実施の形態では、シナリオリスト15aには、全てのモード名と、そのモード名に対応する電力管理検証用シナリオを表示するようにした。しかし、これに限らず、例えば、ユーザが、予め検証対象のモードを入力しておき、設計検証装置10が、入力されたモードと、そのモードに対応する電力管理検証用シナリオをリスト化して出力するようにしてもよい。
なお、本実施の形態では、事前条件テーブル131bを作成し、メッセージ・シーケンス・チャートに事前条件を付与した。しかし、これに限らず、事後条件テーブル、不変条件テーブルを設定し、メッセージ・シーケンス・チャートに事後条件、不変条件を付与するようにしてもよい。
なお、本実施の形態では、モードテーブル131aと事前条件テーブル131bを作成し、事前条件を付与するようにした。しかし、これに限らず、例えば、1つのハッシュテーブルを使って事前条件を付与するようにしてもよい。この場合、値を格納する際に条件をマージして登録するようにすればよい。
また、検証用シナリオを生成する際、以下の処理を行った。
検証用シナリオ生成部11が、LSI20の設計仕様が備える複数のシナリオが備えるメッセージ・シーケンス・チャートそれぞれにラベルを関連付けた検証用シナリオを生成するようにした。これにより、1つのシナリオが備えるメッセージ・シーケンス・チャートを特定することができる。
検証用シナリオ生成部11が、LSI20の設計仕様が備える複数のシナリオが備えるメッセージ・シーケンス・チャートそれぞれにラベルを関連付けた検証用シナリオを生成するようにした。これにより、1つのシナリオが備えるメッセージ・シーケンス・チャートを特定することができる。
そして、メッセージ・シーケンス・チャートから有限ステートマシンの生成を行った。但し、有限ステートマシンを生成する際、各ステートに対応するメッセージ・シーケンス・チャートのラベルを付与するようにした。これにより、1つのシナリオが備えるステートを特定することができる。
そして、LSI20の設計仕様の各シナリオに対応する有限ステートマシンを抽出し、抽出した各有限ステートマシンの検証用シナリオを生成するようにした。
これにより、入力されるパターンの入力に対応する(設計・検証の段階に応じた)検証用シナリオを生成することができる。
これにより、入力されるパターンの入力に対応する(設計・検証の段階に応じた)検証用シナリオを生成することができる。
なお、本実施の形態では、電力管理仕様にクロックゲーティングを用いたが、これに限らず、電力管理仕様にパワーゲーティングや、電圧の変更等の他の条件を設定することができる。また、クロックゲーティングに加えてパワーゲーティングや、電圧の変更等の他の条件を追加することができる。
例えば、パワーゲーティングの条件を追加する場合、電力供給を停止するか否かを制御する制約条件を、メッセージ・シーケンス・チャートに加える。これにより、パワーゲーティングの制御を含めたシナリオを生成することができる。
電圧の条件を追加する場合、例えば、動作を保証する電圧等を規定し、規定電圧以下の場合、当該メッセージ・シーケンス・チャートに遷移しないという制約条件を、メッセージ・シーケンス・チャートに加える。これにより、条件を満たすシナリオだけを検証できるシナリオを生成することができる。
周波数の条件を追加する場合、例えば、必要な周波数を設計仕様によって決定する高速な動作が求められている場合に、周波数を上げたり、設定電圧に対応する周波数に設定したりするという制約条件を、メッセージ・シーケンス・チャートに加える。これにより、要求される周波数を満たすシナリオだけを検証できるシナリオを生成することができる。
さらに、別の電力管理仕様への制御信号の条件を追加する場合、電源IC(Integrated Circuit)等で規定されている電力制御バスへの信号を制御する条件をメッセージ・シーケンス・チャートに加える。これにより、LSI20の内部または外部の電源ICの制御も含めたシナリオを生成することができる。
以下、電力管理仕様にパワーゲーティングの条件を追加した場合を説明する。
図43は、電力管理仕様にパワーゲーティングの条件を追加した場合を説明する図である。
図43は、電力管理仕様にパワーゲーティングの条件を追加した場合を説明する図である。
図43に示す電力管理仕様は、シナリオ「モード:Full」を実現するMSC名「問い合わせ」のメッセージ・シーケンス・チャートが有する制約条件として「Clock Gating=OFF」に加え、「Power Gating=OFF」が設定されている。
また、シナリオ「モード:Suspend」を実現するMSC名「データ取得失敗」のメッセージ・シーケンス・チャートが有する制約条件として「Power Gating=ON」が設定されている。
従って、Suspendモードに移行する際には、パワーゲーティングがONすることにより、LSI20が有するグラフィックスアクセラレータ42aおよびメモリコントローラ43aへの電力の供給を停止する。図43中点線で囲まれた部分が電力の供給が停止される範囲である。
この仕様を用いて検証用シナリオに事前条件を付与することにより、Suspendモード移行時は、グラフィックスアクセラレータ42aおよびメモリコントローラ43aに関するシナリオを全て除外した電力管理検証用シナリオを作成することができる。
次に、電力管理仕様に電圧の条件を追加した場合をLSI20がデコーダ回路を有する場合を例にとって説明する。
図44は、デコーダ回路の機能を示すブロック図である。
図44は、デコーダ回路の機能を示すブロック図である。
デコーダ回路120は、バッファ121と、VLD(Variable Length Decoding)処理部122、123と、逆量子化処理部124と、IDCT(Inverse Discrete Cosine Transform)処理部125と、メモリ126と、MC(Motion Compensation)処理部127とを有している。
バッファ121は、入力されるビットストリームを一時保持する。
VLD処理部122、123は、それぞれ、バッファ121に一時保持されたビットストリームを基本処理単位であるマクロブロックに分割する。そして各ブロックに対し離散コサイン変換(DCT)を施してから量子化する。そして、量子化されたDCT係数と量子化幅を可変長符号化する。
VLD処理部122、123は、それぞれ、バッファ121に一時保持されたビットストリームを基本処理単位であるマクロブロックに分割する。そして各ブロックに対し離散コサイン変換(DCT)を施してから量子化する。そして、量子化されたDCT係数と量子化幅を可変長符号化する。
逆量子化処理部124は、量子化されたDCT係数を逆量子化する。
IDCT処理部125は、逆離散コサイン変換を行い、予測誤差信号を再生する。
メモリ126は、再生された予測誤差信号を一時記憶する。
IDCT処理部125は、逆離散コサイン変換を行い、予測誤差信号を再生する。
メモリ126は、再生された予測誤差信号を一時記憶する。
MC処理部127は、メモリ126に記憶された予測誤差信号と、検出された動きベクトルに基づき、データを圧縮、伸長する。
ところで、電力管理仕様に設定するメッセージ・シーケンス・チャートの電圧条件として、オブジェクト自体(デコーダ回路120全体)の電圧の条件を設定するようにしてもよいし、オブジェクトが有する個々の機能の電圧の条件を設定するようにしてもよい。
ところで、電力管理仕様に設定するメッセージ・シーケンス・チャートの電圧条件として、オブジェクト自体(デコーダ回路120全体)の電圧の条件を設定するようにしてもよいし、オブジェクトが有する個々の機能の電圧の条件を設定するようにしてもよい。
例えば、デコーダ回路120という単位でオブジェクトが設定されている場合には、図44に示す各機能ブロックにより示されるデコーダ回路120(1つの大きな機能ブロック)がメッセージ・シーケンス・チャートのオブジェクトに対応する。以下、電力管理仕様に設定するメッセージ・シーケンス・チャートの電圧条件として、デコーダ回路120全体の電圧の条件を設定する例を図45に示す。また、オブジェクトが有する個々の機能の電圧の条件を設定する例を図46、図47に示す。
図45は、メッセージ・シーケンス・チャートの電圧条件として、デコーダ回路全体の電圧の条件を設定する例を示す図である。
図45に示すオブジェクトは、LSI20が有するオブジェクトを示している。
図45に示すオブジェクトは、LSI20が有するオブジェクトを示している。
このオブジェクトは、CPU41a、デコーダ回路120、メモリコントローラ43aおよびメモリ47aによって表される。
メッセージ・シーケンス・チャート40eに現れるデコーダ回路120は、デコーダ回路120が有する複数の機能をひとつにまとめたオブジェクトである。
メッセージ・シーケンス・チャート40eに現れるデコーダ回路120は、デコーダ回路120が有する複数の機能をひとつにまとめたオブジェクトである。
このメッセージ・シーケンス・チャート40eは、MSC名「問い合わせ」のメッセージ・シーケンス・チャートと、MSC名「データ取得成功」のメッセージ・シーケンス・チャートを有している。
このメッセージ・シーケンス・チャート40eは、以下の処理を行う。
まず、CPU41aは、演算開始をデコーダ回路120に送信する(ステップS81)。
まず、CPU41aは、演算開始をデコーダ回路120に送信する(ステップS81)。
演算開始の受信後、デコーダ回路120は、データリード要求をメモリコントローラ43aに送信する(ステップS82)。
データリード要求の受信後、メモリコントローラ43aは、データリード要求をメモリ47aに送信する(ステップS83)。
データリード要求の受信後、メモリコントローラ43aは、データリード要求をメモリ47aに送信する(ステップS83)。
データリード要求の受信後、メモリ47aは、データリード要求に対するデータをメモリコントローラ43aに転送する(ステップS84)。
データの受信後、メモリコントローラ43aは、受信したデータをデコーダ回路120に転送する(ステップS85)。
データの受信後、メモリコントローラ43aは、受信したデータをデコーダ回路120に転送する(ステップS85)。
データの受信後、デコーダ回路120は、受信したデータを用いて演算を行う。そして、演算の終了後、デコーダ回路120は、データライト要求をメモリコントローラ43aに送信する(ステップS86)。
データライト要求の受信後、メモリコントローラ43aは、データライト要求をメモリ47aに送信する(ステップS87)。
データライト要求の受信後、メモリ47aは、データライト要求に対するデータをメモリコントローラ43aに転送する(ステップS88)。
データライト要求の受信後、メモリ47aは、データライト要求に対するデータをメモリコントローラ43aに転送する(ステップS88)。
データの受信後、メモリコントローラ43aは、受信したデータをデコーダ回路120に転送する(ステップS89)。
デコーダ回路120は、演算終了通知をCPU41aに送信する(ステップS90)。
デコーダ回路120は、演算終了通知をCPU41aに送信する(ステップS90)。
図46は、デコーダ回路が有する各機能の配置位置の一例を示す図である。
図46の各領域が、デコーダ回路120が有する各機能の配置位置を示している。各領域の機能は、異なるモードが選択されているときは、異なる電圧で駆動させることができる。
図46の各領域が、デコーダ回路120が有する各機能の配置位置を示している。各領域の機能は、異なるモードが選択されているときは、異なる電圧で駆動させることができる。
図47は、電力管理仕様に電圧の条件を追加した場合を説明する図である。
図47は、デコーダ回路120の機能を実現するMSCが複数の下位hMSCを有しており、下位のhMSCの制約条件として電圧が設定されている状況の例を示している。
図47は、デコーダ回路120の機能を実現するMSCが複数の下位hMSCを有しており、下位のhMSCの制約条件として電圧が設定されている状況の例を示している。
図47に示す機能ブロック54に対応付けられた電力管理仕様は、シナリオブロック54aに対応付けられているシナリオ「モード:Full」とシナリオブロック54bに対応付けられているシナリオ「モード:Suspend」とを有している。
シナリオ「モード:Full」は、MSCブロック541aに対応付けられているMSC名「MSC#a」のメッセージ・シーケンス・チャート等により実現されるシナリオである。
シナリオ「モード:Suspend」は、MSCブロック541bに対応付けられているMSC名「MSC#a」のメッセージ・シーケンス・チャート等により実現されるシナリオである。
図47に示す電力管理仕様は、シナリオ「モード:Full」を実現するMSC名「MSC#a」のメッセージ・シーケンス・チャートが有する制約条件として「Voltage_all=1.3V」、「Voltage_buffer=1.1V」、「Voltage_VLD=1.2V」、「Voltage_逆量子化=1.3V」、「Voltage_IDCT=1.3V」、「Voltage_MC=1.2V」が設定されている。
ここで、「Voltage_all=1.3V」は、Fullモード時に各機能を動作させるときの電圧を示す制約条件である。「Voltage_buffer=1.1V」は、Fullモード時にバッファ121を駆動するための電圧を示す制約条件である。「Voltage_VLD=1.2V」は、Fullモード時にVLD処理部122、123を駆動するための電圧を示す制約条件である。「Voltage_逆量子化=1.3V」は、Fullモード時に逆量子化処理部124を駆動するための電圧を示す制約条件である。「Voltage_IDCT=1.3V」は、Fullモード時にIDCT処理部125を駆動するための電圧を示す制約条件である。「Voltage_MC=1.2V」は、Fullモード時にMC処理部127を駆動するための電圧を示す制約条件である。
また、シナリオ「モード:Suspend」を実現するMSC名「MSC#a」のメッセージ・シーケンス・チャートが有する制約条件として「Voltage_all=1.1V」、「Voltage_buffer=1.1V」、「Voltage_VLD=1.1V」、「Voltage_逆量子化=1.1V」、「Voltage_IDCT=1.1V」、「Voltage_MC=1.1V」が設定されている。
ここで、「Voltage_all=1.1V」は、Suspendモード時に各機能を動作させるときの電圧を示す制約条件である。「Voltage_buffer=1.1V」は、Suspendモード時にバッファ121を駆動するための電圧を示す制約条件である。「Voltage_VLD=1.1V」は、Suspendモード時にVLD処理部122、123を駆動するための電圧を示す制約条件である。「Voltage_逆量子化=1.1V」は、Suspendモード時に逆量子化処理部124を駆動するための電圧を示す制約条件である。「Voltage_IDCT=1.1V」は、Suspendモード時にIDCT処理部125を駆動するための電圧を示す制約条件である。「Voltage_MC=1.1V」は、Suspendモード時にMC処理部127を駆動するための電圧を示す制約条件である。
この仕様を用いて検証用シナリオに制約条件を付与することにより、Fullモード移行時は、制約条件として設定された電圧を印加するときの処理を示すメッセージ・シーケンス・チャート以外のメッセージ・シーケンス・チャートを有するシナリオを全て除外した電力管理検証用シナリオを得ることができる。すなわち、例えば、制約条件「Voltage_all=1.3V」を有するメッセージ・シーケンス・チャートを備えるシナリオが他に存在したとしても、そのシナリオの制約条件が、「Voltage_buffer=1.1V」以外であれば、そのシナリオは、電力管理検証用シナリオから除外される。
同様に、サスペンドモード移行時は、デコーダ回路120の各機能に、1.1V以外の電圧を印加するときの処理を示すメッセージ・シーケンス・チャートを有するシナリオを全て除外した電力管理検証用シナリオを得ることができる。
なお、本実施の形態では、制約条件を付与する仕様として電力管理仕様を用いたが、これに限らず、例えば、性能(動作速度)を管理する仕様や、乗り心地を管理する仕様等の種々の検証対象の仕様を用いることができる。
また、本実施の形態では、2つの仕様(機能仕様、電力管理仕様)を用いる場合について説明したが、これに限らず、3つ以上の仕様を用いて検証用シナリオを生成する場合についても適用することができる。
なお、設計検証装置10が行った処理が、複数の装置によって分散処理されるようにしてもよい。
例えば、1つの装置が、検証用シナリオ生成処理を行って検証用シナリオを生成しておき、他の装置が、その検証用シナリオを用いて電力管理検証用シナリオを生成する処理を行うようにしてもよい。
例えば、1つの装置が、検証用シナリオ生成処理を行って検証用シナリオを生成しておき、他の装置が、その検証用シナリオを用いて電力管理検証用シナリオを生成する処理を行うようにしてもよい。
以上、本発明の設計検証装置および設計検証プログラムを、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
また、本発明は、前述した各実施の形態のうちの、任意の2以上の構成(特徴)を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、設計検証装置10が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープ等が挙げられる。光ディスクとしては、例えば、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等が挙げられる。光磁気記録媒体としては、例えば、MO(Magneto-Optical disk)等が挙げられる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、設計検証装置10が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープ等が挙げられる。光ディスクとしては、例えば、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等が挙げられる。光磁気記録媒体としては、例えば、MO(Magneto-Optical disk)等が挙げられる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
設計検証プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
以上の第1〜第2の実施の形態に関し、さらに以下の付記を開示する。
(付記1) 設計対象の第1の設計仕様を検証する検証用情報が有する制約条件に、前記設計対象の第2の設計仕様の検証項目毎の処理手順が備える処理単位に設けられた、前記第1の設計仕様が備える処理単位に対するリンクに基づいて、前記第2の設計仕様の制約条件を付与する制約条件付与部と、
前記制約条件付与部によって前記制約条件が付与された前記検証用情報を識別する情報を、対応する前記検証項目とともに出力する出力部と、
を有することを特徴とする設計検証装置。
(付記1) 設計対象の第1の設計仕様を検証する検証用情報が有する制約条件に、前記設計対象の第2の設計仕様の検証項目毎の処理手順が備える処理単位に設けられた、前記第1の設計仕様が備える処理単位に対するリンクに基づいて、前記第2の設計仕様の制約条件を付与する制約条件付与部と、
前記制約条件付与部によって前記制約条件が付与された前記検証用情報を識別する情報を、対応する前記検証項目とともに出力する出力部と、
を有することを特徴とする設計検証装置。
(付記2) 前記第2の設計仕様は、複数の処理手順を有し、
前記制約条件付与部は、前記第1の設計仕様が有する前記処理単位に対し、共通のリンクが設けられた前記処理単位を有する前記処理手順に遷移する条件を、前記第2の設計仕様の制約条件とすることを特徴とする付記1記載の設計検証装置。
前記制約条件付与部は、前記第1の設計仕様が有する前記処理単位に対し、共通のリンクが設けられた前記処理単位を有する前記処理手順に遷移する条件を、前記第2の設計仕様の制約条件とすることを特徴とする付記1記載の設計検証装置。
(付記3) 前記第1の設計仕様が備える複数の処理手順が備える処理単位それぞれに前記設計仕様の検証対象部位を識別する識別情報を関連付けて前記検証用情報を生成する生成部をさらに有することを特徴とする付記1記載の設計検証装置。
(付記4) 前記生成部は、同じ前記識別情報を備える前記処理単位を抽出し、抽出した前記処理単位の集合をそれぞれ前記検証用情報とすることを特徴とする付記3記載の設計検証装置。
(付記5) 前記処理単位は、オブジェクト間で送受信される信号の関係を示すシーケンスを備えており、前記生成部は、前記シーケンスそれぞれに、前記識別情報を関連付けることを特徴とする付記3記載の設計検証装置。
(付記6) 前記生成部は、前記シーケンスに対応したステートマシンを生成し、生成した前記ステートマシンのステートそれぞれに当該ステートマシンの元となる前記シーケンスが備える前記識別情報を付与することを特徴とする付記5記載の設計検証装置。
(付記7) 前記識別情報は、前記検証対象部位を示す機能、前記処理手順、前記シーケンスのうちの少なくとも1つの情報を有しており、
前記生成部は、同じ前記識別情報を備える前記ステートマシンを抽出し、抽出した前記ステートマシンの部分を前記検証用情報とすることを特徴とする付記6記載の設計検証装置。
前記生成部は、同じ前記識別情報を備える前記ステートマシンを抽出し、抽出した前記ステートマシンの部分を前記検証用情報とすることを特徴とする付記6記載の設計検証装置。
(付記8) 前記シーケンスの制約に基づいて、前記シーケンスそれぞれの処理に対応したステートの数を減らすことを特徴とする付記6記載の設計検証装置。
(付記9) コンピュータに、
設計対象の第1の設計仕様を検証する検証用情報が有する制約条件に、前記設計対象の第2の設計仕様の検証項目毎の処理手順が備える処理単位に設けられた、前記第1の設計仕様が備える処理単位に対するリンクに基づいて、前記第2の設計仕様の制約条件を付与する制約条件付与手順、
前記制約条件付与手順によって前記制約条件が付与された前記検証用情報を識別する情報を、対応する前記検証項目とともに出力する出力手順、
を実行させることを特徴とする設計検証プログラム。
(付記9) コンピュータに、
設計対象の第1の設計仕様を検証する検証用情報が有する制約条件に、前記設計対象の第2の設計仕様の検証項目毎の処理手順が備える処理単位に設けられた、前記第1の設計仕様が備える処理単位に対するリンクに基づいて、前記第2の設計仕様の制約条件を付与する制約条件付与手順、
前記制約条件付与手順によって前記制約条件が付与された前記検証用情報を識別する情報を、対応する前記検証項目とともに出力する出力手順、
を実行させることを特徴とする設計検証プログラム。
1、10 設計検証装置
1a 生成部
1b 格納部
1c 制約条件付与部
15 出力部
2 第1の設計仕様
2a 機能
3 構造体
3a、31、31a 初期状態ブロック
3b、3c、3d 検証用情報
4 第2の設計仕様
5 出力結果
11 検証用シナリオ生成部
12 検証用シナリオ格納部
13 条件付与部
14 電力管理検証用シナリオ格納部
15a シナリオリスト
16 優先度ルール格納部
17 パラメータ格納部
18 検証順位決定部
20 LSI
20a〜20f 処理手順
21、51、52、53 機能ブロック
21a、21b、51a〜51c、52a、52b、53a、53b シナリオブロック
30、30a 有向グラフ
32〜37、40、40a〜40e、70 メッセージ・シーケンス・チャート(MSC)
34 hメッセージ・シーケンス・チャート(hMSC)
41、42、43 ハードウェア(HW)
41a CPU
42a グラフィックスアクセラレータ
43a メモリコントローラ
44、45、46 オブジェクトライン
44a CPUライン
45a グラフィックスアクセラレータライン
46a メモリコントローラライン
47a、126 メモリ
47、48 ボックス
61〜63、61a〜63a、110a、111〜117、120a 記述
60、110 データ
71 送信オブジェクト
72 長距離送信オブジェクト
73 受信オブジェクト
74 長距離受信オブジェクト
80 状態マトリックス
81、82 領域
90、92 状態図
90a 有限ステートマシン
91、St1〜St8 ステート
100 システム
120 デコーダ回路
121 バッファ
122、123 VLD処理部
124 逆量子化処理部
125 IDCT処理部
127 MC処理部
131a モードテーブル
131b 事前条件テーブル
200 信号インタフェース
211a、212a、511a〜511c、512a〜512c、513a、513b 521a、521b、522a、522b、531a、531b、532a、532b MSCブロック
300 テスト対象装置
400 ネットワーク
521a1、522a1、522b1 ラベル
Sc1、Sc2 検証用シナリオ
e1、e2、e3 イベント
m、m1〜m9 データ・イベント・メッセージ
PSc1、PSc2 電力管理検証用シナリオ
r1〜r6、rj 受信イベント
t1〜t5、ti 送信イベント
1a 生成部
1b 格納部
1c 制約条件付与部
15 出力部
2 第1の設計仕様
2a 機能
3 構造体
3a、31、31a 初期状態ブロック
3b、3c、3d 検証用情報
4 第2の設計仕様
5 出力結果
11 検証用シナリオ生成部
12 検証用シナリオ格納部
13 条件付与部
14 電力管理検証用シナリオ格納部
15a シナリオリスト
16 優先度ルール格納部
17 パラメータ格納部
18 検証順位決定部
20 LSI
20a〜20f 処理手順
21、51、52、53 機能ブロック
21a、21b、51a〜51c、52a、52b、53a、53b シナリオブロック
30、30a 有向グラフ
32〜37、40、40a〜40e、70 メッセージ・シーケンス・チャート(MSC)
34 hメッセージ・シーケンス・チャート(hMSC)
41、42、43 ハードウェア(HW)
41a CPU
42a グラフィックスアクセラレータ
43a メモリコントローラ
44、45、46 オブジェクトライン
44a CPUライン
45a グラフィックスアクセラレータライン
46a メモリコントローラライン
47a、126 メモリ
47、48 ボックス
61〜63、61a〜63a、110a、111〜117、120a 記述
60、110 データ
71 送信オブジェクト
72 長距離送信オブジェクト
73 受信オブジェクト
74 長距離受信オブジェクト
80 状態マトリックス
81、82 領域
90、92 状態図
90a 有限ステートマシン
91、St1〜St8 ステート
100 システム
120 デコーダ回路
121 バッファ
122、123 VLD処理部
124 逆量子化処理部
125 IDCT処理部
127 MC処理部
131a モードテーブル
131b 事前条件テーブル
200 信号インタフェース
211a、212a、511a〜511c、512a〜512c、513a、513b 521a、521b、522a、522b、531a、531b、532a、532b MSCブロック
300 テスト対象装置
400 ネットワーク
521a1、522a1、522b1 ラベル
Sc1、Sc2 検証用シナリオ
e1、e2、e3 イベント
m、m1〜m9 データ・イベント・メッセージ
PSc1、PSc2 電力管理検証用シナリオ
r1〜r6、rj 受信イベント
t1〜t5、ti 送信イベント
Claims (8)
- コンピュータに、
設計対象の第1の設計仕様を検証する検証用情報が有する制約条件に、前記設計対象の第2の設計仕様の検証項目毎の処理手順が備える処理単位に設けられた、前記第1の設計仕様が備える処理単位に対するリンクに基づいて、前記第2の設計仕様の制約条件を付与する制約条件付与手順、
前記制約条件付与手順によって前記制約条件が付与された前記検証用情報を識別する情報を、対応する前記検証項目とともに出力する出力手順、
を実行させることを特徴とする設計検証プログラム。 - 前記第2の設計仕様は、複数の処理手順を有し、
前記制約条件付与手順では、前記第1の設計仕様が有する前記処理単位に対し、共通のリンクが設けられた前記処理単位を有する前記処理手順に遷移する条件を、前記第2の設計仕様の制約条件とすることを特徴とする請求項1記載の設計検証プログラム。 - 前記第1の設計仕様が備える複数の処理手順が備える処理単位それぞれに前記第1の設計仕様の検証対象部位を識別する識別情報を関連付けて前記検証用情報を生成する生成手順をさらに実行させることを特徴とする請求項1記載の設計検証プログラム。
- 前記生成手順では、同じ前記識別情報を備える前記処理単位を抽出し、抽出した前記処理単位の集合をそれぞれ前記検証用情報とすることを特徴とする請求項3記載の設計検証プログラム。
- 前記処理単位は、オブジェクト間で送受信される信号の関係を示すシーケンスを備えており、前記生成手順では、前記シーケンスそれぞれに、前記識別情報を関連付けることを特徴とする請求項3記載の設計検証プログラム。
- 前記生成手順では、前記シーケンスに対応したステートマシンを生成し、生成した前記ステートマシンのステートそれぞれに当該ステートマシンの元となる前記シーケンスが備える前記識別情報を付与することを特徴とする請求項5記載の設計検証プログラム。
- 前記識別情報は、前記検証対象部位を示す機能、前記処理手順、前記シーケンスのうちの少なくとも1つの情報を有しており、
前記生成手順では、同じ前記識別情報を備える前記ステートマシンを抽出し、抽出した前記ステートマシンの部分を前記検証用情報とすることを特徴とする請求項6記載の設計検証プログラム。 - 設計対象の第1の設計仕様を検証する検証用情報が有する制約条件に、前記設計対象の第2の設計仕様の検証項目毎の処理手順が備える処理単位に設けられた、前記第1の設計仕様が備える処理単位に対するリンクに基づいて、前記第2の設計仕様の制約条件を付与する制約条件付与部と、
前記制約条件付与部によって前記制約条件が付与された前記検証用情報を識別する情報を、対応する前記検証項目とともに出力する出力部と、
を有することを特徴とする設計検証装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US30273610P | 2010-02-09 | 2010-02-09 | |
US61/302,736 | 2010-02-09 | ||
US12/805,141 | 2010-07-14 | ||
US12/805,141 US20110197172A1 (en) | 2010-02-09 | 2010-07-14 | Design verification apparatus and design verification program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011165166A true JP2011165166A (ja) | 2011-08-25 |
Family
ID=44354648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010183203A Withdrawn JP2011165166A (ja) | 2010-02-09 | 2010-08-18 | 設計検証装置および設計検証プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110197172A1 (ja) |
JP (1) | JP2011165166A (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8943451B2 (en) * | 2010-06-23 | 2015-01-27 | Mentor Graphics Corporation | Hierarchical finite state machine generation for power state behavior in an electronic design |
US8448112B1 (en) * | 2011-04-08 | 2013-05-21 | Cadence Design Systems, Inc. | System, method, and computer program product for automatic power management verification |
US9002694B2 (en) * | 2012-05-03 | 2015-04-07 | Freescale Semiconductors, Inc. | Verification of design derived from power intent |
US9201994B1 (en) * | 2013-03-13 | 2015-12-01 | Calypto Design Systems, Inc. | Flexible power query interfaces and infrastructures |
US10318695B2 (en) | 2013-12-05 | 2019-06-11 | International Business Machines Corporation | Phase algebra for virtual clock and mode extraction in hierarchical designs |
US9268889B2 (en) | 2013-12-05 | 2016-02-23 | International Business Machines Corporation | Verification of asynchronous clock domain crossings |
US9916407B2 (en) | 2013-12-05 | 2018-03-13 | International Business Machines Corporation | Phase algebra for analysis of hierarchical designs |
US10503856B2 (en) * | 2013-12-05 | 2019-12-10 | International Business Machines Corporation | Phase algebra for specifying clocks and modes in hierarchical designs |
US9721058B2 (en) * | 2015-04-13 | 2017-08-01 | Synopsys, Inc. | System and method for reactive initialization based formal verification of electronic logic design |
US10592212B2 (en) | 2016-10-21 | 2020-03-17 | Samsung Electronics Co., Ltd. | System and method for software development based on procedures |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4355525B2 (ja) * | 2002-10-09 | 2009-11-04 | 富士通マイクロエレクトロニクス株式会社 | 検証支援方法、検証支援プログラムおよび検証支援装置 |
US7275231B2 (en) * | 2004-09-15 | 2007-09-25 | Fujitsu Limited | High level validation of designs and products |
US7739629B2 (en) * | 2006-04-14 | 2010-06-15 | Cadence Design Systems, Inc. | Method and mechanism for implementing electronic designs having power information specifications background |
JP2007310565A (ja) * | 2006-05-17 | 2007-11-29 | Toshiba Corp | システムlsi検証装置及びシステムlsi検証プログラム |
US7779381B2 (en) * | 2006-09-11 | 2010-08-17 | Cadence Design Systems, Inc. | Test generation for low power circuits |
US7770142B1 (en) * | 2006-10-30 | 2010-08-03 | Cadence Design Systems, Inc. | Modeling power management for an integrated circuit |
US7694251B2 (en) * | 2006-10-30 | 2010-04-06 | Cadence Design Systems, Inc. | Method and system for verifying power specifications of a low power design |
US7958475B2 (en) * | 2007-09-28 | 2011-06-07 | Cadence Design Systems, Inc. | Synthesis of assertions from statements of power intent |
-
2010
- 2010-07-14 US US12/805,141 patent/US20110197172A1/en not_active Abandoned
- 2010-08-18 JP JP2010183203A patent/JP2011165166A/ja not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20110197172A1 (en) | 2011-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2011165166A (ja) | 設計検証装置および設計検証プログラム | |
Pimentel et al. | A systematic approach to exploring embedded system architectures at multiple abstraction levels | |
JP2022153634A (ja) | 情報処理装置及び情報処理方法 | |
US8056046B2 (en) | Integrated system-of-systems modeling environment and related methods | |
CN101587446B (zh) | 基于分布交互仿真平台的仿真模型转换方法 | |
JP5540887B2 (ja) | 設計検証プログラム、設計検証方法および設計検証装置 | |
TW200919310A (en) | Software factory specification and execution model | |
Fan et al. | DRAS-CQSim: A reinforcement learning based framework for HPC cluster scheduling | |
CN111881051A (zh) | 测试用例的生成方法、装置、终端及存储介质 | |
US8479168B2 (en) | Computer-readable recording medium storing verification support program, information processor, and verification support method | |
US20240330060A1 (en) | Data processing method and computing platform | |
JP5910499B2 (ja) | 拡張性評価装置、拡張性評価方法および拡張性評価プログラム | |
JP2008250721A (ja) | モデル生成方法及びモデル生成装置 | |
US20070283260A1 (en) | Human-machine Interface System with Device Bridge and Method for Designing and Operating the Same | |
St-Aubin et al. | A web based modeling and simulation environment to support the DEVS simulation lifecycle | |
JP2011044131A (ja) | 設計検証プログラム、設計検証方法および設計検証装置 | |
US8036865B2 (en) | System and method for constructing flexible ordering to improve productivity and efficiency in process flows | |
Guo et al. | A unified model-based systems engineering framework supporting system design platform based on data exchange mechanisms | |
CN111126961B (zh) | 一种复杂产品全生命周期数字主线服务系统 | |
Vitzthum | SSIML/AR: A visual language for the abstract specification of augmented reality user interfaces | |
US7729896B2 (en) | Cycle simulation method, cycle simulator, and computer product | |
JP2002203086A (ja) | ワークフロー管理装置、ワークフロー管理方法およびワークフロー管理プログラムを記録した記録媒体 | |
Thomas et al. | Framework for development and distribution of hardware acceleration | |
JP5162531B2 (ja) | シミュレーション支援方法、シミュレーション支援プログラムを記憶した記憶媒体およびシミュレーション支援装置 | |
US20020143511A1 (en) | Method and computer program product for system design support |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130604 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20130702 |