説明

検証シナリオ作成プログラム、該プログラムを記録した記録媒体、検証シナリオ作成装置、および検証シナリオ作成方法

【課題】バスシステムの検証に必要となる検証シナリオを効率的かつ網羅的に作成する。
【解決手段】検証対象となるバスシステムを構成する複数のハードウェアブロックの中から、相互にアクセス可能な任意のアクセス元およびアクセス先のハードウェアブロックを抽出し、アクセス元のハードウェアブロックからアクセス先のハードウェアブロックに辿り着くまでのパスを探索する。そして、探索されたパスごとに、アクセス先のハードウェアブロックに割り当てられたアドレス範囲へのアクセスが発生した場合における、アクセス元のハードウェアブロックのトランザクションを検証するための検証シナリオを作成し、その検証シナリオを当該検証シナリオに対応するパスと関連付けて出力する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、システムLSIのバスシステムを検証するための検証シナリオを作成する検証シナリオ作成プログラム、該プログラムを記録した記録媒体、検証シナリオ作成装置、および検証シナリオ作成方法に関する。
【背景技術】
【0002】
一般に、システムLSIのバスシステムの検証では、メモリマップに基づいて、相互にアクセス可能なアクセス元のハードウェアブロックとアクセス先のハードウェアブロックとの間のデータ通信が正常に動作するか否かを確認する。しかし、近年では、システムLSIの大規模化、複雑化により、バスシステムの検証が困難となってきている。このため、検証作業にかかる作業労力および作業期間が増大しており、検証期間の短縮による作業効率化が要求されている。
【0003】
検証作業の効率化を図るために、たとえば、CPU、メモリおよびCPUとメモリとを接続するバスからなるシステムLSIの検証を、CPUに備えられた命令キューのループキュー動作によって実現する手法が提供されている(たとえば、下記特許文献1参照。)。これによれば、同じテストプログラムを繰り返し実行可能にするため分岐命令が不要となり、メモリチップに対するテスト効率を向上させることができる。
【0004】
【特許文献1】国際公開第2002/073411号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上述した従来技術によれば、アクセス元からアクセス先までの経路を特定するための十分な情報がメモリマップに定義されていないため、検証シナリオの作成に必要となる経路をメモリマップから特定することができなかった。このため、アクセス先に対する複数のアクセスが発生した場合のデータ破壊の検証が不十分となり、検証品質が低下してしまうという問題があった。
【0006】
一方で、システムLSIの設計仕様書を検証者が理解するなどして、設計仕様書から経路情報を抽出することも考えられる。しかし、設計仕様書の記述内容は設計する観点からまとまっているため、経路情報の抽出作業が困難なものとなってしまう場合があり、検証者にかかる負担の増大化を招くという問題があった。
【0007】
また、システムLSIの大規模化、複雑化により、特定のアクセス先に接続される経路の数が増大化し、すべての経路を手作業で網羅することが難しくなっているという問題があった。さらには、検証漏れにともなう回路設計の手戻りが生じてしまい、設計者にかかる負担の増大化および設計期間の長期化を招くという問題があった。
【0008】
この発明は、上述した従来技術による問題点を解消するため、バスシステムの検証に必要となる検証シナリオを効率的かつ網羅的に作成することにより、検証者の負担軽減および設計期間の短縮化を図ることができる検証シナリオ作成プログラム、該プログラムを記録した記録媒体、検証シナリオ作成装置、および検証シナリオ作成方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するため、この発明にかかる検証シナリオ作成プログラム、該プログラムを記録した記録媒体、検証シナリオ作成装置、および検証シナリオ作成方法は、検証対象となるバスシステムを構成する複数のハードウェアブロックの中から、相互にアクセス可能な任意のアクセス元およびアクセス先のハードウェアブロックを抽出し、アクセス元のハードウェアブロックからアクセス先のハードウェアブロックに辿り着くまでのパスを探索する。そして、探索されたパスごとに、前記アクセス先のハードウェアブロックに割り当てられたアドレス範囲へのアクセスが発生した場合における、前記アクセス元のハードウェアブロックのトランザクションを検証するための検証シナリオを作成し、その検証シナリオを当該検証シナリオに対応するパスと関連付けて出力することを特徴とする。
【0010】
この発明によれば、特定のアクセス先のハードウェアブロックに対してアクセスが発生した場合における、アクセス元のハードウェアブロックのトランザクションを検証するための検証シナリオを網羅的に作成することができる。
【0011】
また、上記発明において、複数のパスが探索された場合、前記パスごとの検証シナリオを組み合わせることにより、前記アドレス範囲への競合アクセスが発生した場合における検証シナリオを作成することとしてもよい。
【0012】
この発明によれば、特定のアクセス先のハードウェアブロックに対して複数のアクセスが発生した場合における、データ破壊を検証するための検証シナリオを網羅的に作成することができる。
【0013】
また、上記発明において、前記アクセス元のハードウェアブロックと前記アクセス先のハードウェアブロックとが同一のハードウェアブロックとからなるパスの検証シナリオを削除し、残余の検証シナリオを当該検証シナリオに対応するパスと関連付けて出力することとしてもよい。
【0014】
この発明によれば、アクセス元のハードウェアブロックが自分自身にトランザクションを発生させる無駄な検証シナリオを削除することができる。
【0015】
また、上記発明において、前記バスシステム内の同一のバス系統に属するアクセス元およびアクセス先のハードウェアブロックを検出し、探索されたパスのうち、検出されたアクセス元のハードウェアブロックからアクセス先のハードウェアブロックに辿り着くまでの間に前記バス系統とは異なる他のバス系統を経由するパスを検索し、検索されたパス内のアクセス先のハードウェアブロックが前記他のバス系統に属するか否かを判定する。その結果、前記他のバス系統に属していないと判定された場合、前記検索されたパスに関連付けられている検証シナリオを削除することとしてもよい。
【0016】
この発明によれば、バスシステムの構成上、物理的に存在し得ないパスについての無駄な検証シナリオを削除することができる。
【0017】
また、上記発明において、前記バスシステム内の異なるバス系統を接続するブリッジと前記アクセス元のハードウェアブロックと前記アクセス先のハードウェアブロックとがノード化された有向グラフを生成し、この有向グラフから任意のアクセス先のハードウェアブロックを抽出し、前記有向グラフ内のノード間を接続する有向エッジに従って、抽出されたアクセス元のハードウェアブロックから当該アクセス先のハードウェアブロックにアクセス可能なアクセス元のハードウェアブロックまでのパスを探索することとしてもよい。
【0018】
この発明によれば、バスシステム内のハードウェアブロック間の論理的な接続関係を表わす有向グラフを利用して、相互にアクセス可能なアクセス元のハードウェアブロックからアクセス先のハードウェアブロックまでのパスを探索することができる。
【発明の効果】
【0019】
本発明にかかる検証シナリオ作成プログラム、該プログラムを記録した記録媒体、検証シナリオ作成装置、および検証シナリオ作成方法によれば、バスシステムの検証に必要となる検証シナリオを効率的かつ網羅的に作成することにより、検証者の負担軽減および設計期間の短縮化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【0020】
以下に添付図面を参照して、この発明にかかる検証シナリオ作成プログラム、該プログラムを記録した記録媒体、検証シナリオ作成装置、および検証シナリオ作成方法の好適な実施の形態を詳細に説明する。
【0021】
(検証シナリオ作成装置のハードウェア構成)
まず、この発明の実施の形態にかかる検証シナリオ作成装置のハードウェア構成について説明する。図1は、この発明の実施の形態にかかる検証シナリオ作成装置のハードウェア構成を示す説明図である。
【0022】
図1において、検証シナリオ作成装置100は、コンピュータ本体110と、入力装置120と、出力装置130と、から構成されており、不図示のルータやモデムを介してLAN,WANやインターネットなどのネットワーク140に接続可能である。
【0023】
コンピュータ本体110は、CPU,メモリ,インターフェースを有する。CPUは、検証シナリオ作成装置100の全体の制御を司る。メモリは、ROM,RAM,HD,光ディスク111,フラッシュメモリから構成される。メモリはCPUのワークエリアとして使用される。
【0024】
また、メモリには各種プログラムが格納されており、CPUからの命令に応じてロードされる。HDおよび光ディスク111はディスクドライブによりデータのリード/ライトが制御される。また、光ディスク111およびフラッシュメモリはコンピュータ本体110に対し着脱自在である。インターフェースは、入力装置120からの入力、出力装置130への出力、ネットワーク140に対する送受信の制御をおこなう。
【0025】
また、入力装置120としては、キーボード121、マウス122、スキャナ123などがある。キーボード121は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス122は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ123は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体110内のメモリに格納される。なお、スキャナ123にOCR機能を持たせてもよい。
【0026】
また、出力装置130としては、ディスプレイ131、スピーカ132、プリンタ133などがある。ディスプレイ131は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、スピーカ132は、効果音や読み上げ音などの音声を出力する。また、プリンタ133は、画像データや文書データを印刷する。
【0027】
(検証対象の一例)
【0028】
つぎに、この発明の実施の形態にかかる検証対象について説明する。図2は、この発明の実施の形態にかかる検証対象となるバスシステムの一例を示す構成図である。図面では、バスシステムの一部を抜粋して表示している。図2において、バスシステム200は、CPU201、デバイスA202と、デバイスB203と、メインバスコントローラ204と、サブバスコントローラ205と、から構成されている。
【0029】
CPU201は、バスシステム200全体の制御を司るハードウェアブロックである。デバイスA202およびデバイスB203は、外部とのデータ通信を制御するインターフェースや画像処理などの機能を有するハードウェアブロックである。メインバスコントローラ204は、メインバス上のデータ通信を制御するハードウェアブロックである。サブバスコントローラ205は、サブバス上のデータ通信を制御するハードウェアブロックである。
【0030】
上記ハードウェアブロック(201〜204)は、メインバス206、サブバス207およびブリッジ208を介して接続されている。ここで、デバイスB203にアクセス可能なアクセス元のハードウェアブロックをCPU201およびデバイスA202として、アクセス元のハードウェアブロックからアクセス先のハードウェアブロックまでのパスについて説明する。
【0031】
図3は、バスシステム内のパスの一例を示す説明図である。図3において、パスPaはCPU201からデバイスB203に直接アクセスする経路であり、パスPbはCPU201からブリッジ208(図2参照)を経由してデバイスB203にアクセスする経路である。また、パスPcはデバイスA202からデバイスB203に直接アクセスする経路であり、パスPdはデバイスA202からブリッジ208を経由してデバイスB203にアクセスする経路である。
【0032】
このように、デバイスB203にアクセスするパスが複数存在する場合には、デバイスB203への競合アクセスが発生した際のデータ破壊の有無を検証するために、パスPa〜Pdごとの検証シナリオ(単体シナリオ)を組み合わせた検証シナリオ(並列シナリオ)を作成する必要がある。
【0033】
本実施の形態では、バスシステム200内において相互に通信可能なアクセス元のハードウェアブロックからアクセス先のハードウェアブロックまでのパスを自動探索し、探索されたパスごとの検証シナリオを自動作成する。これにより、バスシステムの検証に必要となる検証シナリオの効率的かつ網羅的な作成を実現する。
【0034】
(検証シナリオ作成装置100の機能的構成)
つぎに、この発明の実施の形態にかかる検証シナリオ作成装置100の機能的構成について説明する。図4は、この発明の実施の形態にかかる検証シナリオ作成装置の機能的構成を示すブロック図である。図4において、検証シナリオ作成装置100は、抽出部401と、探索部402と、生成部403と、作成部404と、出力部405と、削除部406と、検出部407と、検索部408と、判定部409と、から構成されている。
【0035】
これら各機能401〜409は、メモリに格納された当該機能に関するプログラムをCPUに実行させることにより、当該機能を実現することができる。また、各機能401〜409からの出力データはメモリに保持される。また、図4中矢印で示した接続先の機能的構成は、接続元の機能からの出力データをメモリから読み込んで、当該機能に関するプログラムをCPUに実行させる。
【0036】
まず、抽出部401は、検証対象となるバスシステムを構成する複数のハードウェアブロックの中から、相互にアクセス可能な任意のアクセス元およびアクセス先のハードウェアブロックを抽出する機能を有する。具体的には、複数のハードウェアブロックの中からアクセス先となり得る任意のハードウェアブロックを抽出し、そのアクセス先のハードウェアブロックにアクセス可能なアクセス元のハードウェアブロックを抽出することとしてもよい。
【0037】
バスシステムは、LSIを構成するハードウェアブロック間のデータ通信を実現するための通信網であり、たとえば、図2に示したバスシステム200である。また、ハードウェアブロックとしては、バスコントローラ、プロセッサ(CPU)、メモリおよび専用ハードウェアなどが挙げられる。なお、ハードウェアブロック間は、バスによってそれぞれ接続されている。
【0038】
探索部402は、抽出部401によって抽出されたアクセス元のハードウェアブロックからアクセス先のハードウェアブロックに辿り着くまでのパスを探索する機能を有する。ここでは、アクセス元のハードウェアブロックからアクセス先のハードウェアブロックに直接アクセスするパスと、バスシステム内の異なるバス系統を接続するブリッジを経由して、アクセス元のハードウェアブロックからアクセス先のハードウェアブロックにアクセスするパスとを探索することとなる。
【0039】
このとき、バスシステム上に物理的に存在するパスであるか否かにかかわらず、論理的に想定し得るすべてのパスを探索する。具体的には、ハードウェアブロック間の論理的な接続関係を表わす有向グラフを用いて、アクセス元のハードウェアブロックからアクセス先のハードウェアブロックに辿り着くまでのパスを探索することとしてもよい。
【0040】
生成部403は、バスシステム内の異なるバス系統を接続するブリッジとアクセス元のハードウェアブロックとアクセス先のハードウェアブロックとがノード化された有向グラフを生成する機能を有する。有向グラフとは、アクセス元のハードウェアブロックとアクセス先のハードウェアブロックとブリッジとが、方向性を有するエッジによって接続された図表である。
【0041】
有向グラフを用いてパスを探索する場合、まず、抽出部401により、生成部403によって生成された有向グラフから任意のアクセス先のハードウェアブロックを抽出する。このあと、探索部402により、有向グラフ内のノード間を接続する有向エッジに従って、抽出部401によって抽出されたアクセス元のハードウェアブロックから当該アクセス先のハードウェアブロックにアクセス可能なアクセス元のハードウェアブロックまでのパスを探索する。
【0042】
作成部404は、探索部402によって探索されたパスごとに、アクセス先のハードウェアブロックに割り当てられたアドレス範囲へのアクセスが発生した場合における、アクセス元のハードウェアブロックのトランザクションを検証するための検証シナリオを作成する機能を有する。
【0043】
検証シナリオの作成には、たとえば、ROMやRAMなどの記憶領域に予め保持されているシナリオテンプレートを利用する。図5は、シナリオテンプレートの一例を示す説明図である。図5において、シナリオテンプレート500は、特定のアクセス先のハードウェアブロックへのアクセスが発生した場合における、アクセス元のハードウェアブロックのトランザクションを検証する検証シナリオを作成するためのテンプレートである。
【0044】
このシナリオテンプレート500には、所定の文字列を挿入するための挿入位置510〜540が設けられている。ここで、挿入位置510は、検証シナリオを識別するシナリオ名を挿入するための挿入位置である。挿入位置520は、アクセス元のハードウェアブロックの名称を挿入するための挿入位置である。
【0045】
挿入位置530は、アクセス先のハードウェアブロックに割り当てられているアドレス範囲を挿入するための挿入位置である。挿入位置540は、アクセス元のハードウェアブロックのトランザクションの種類を挿入するための挿入位置である。作成部404は、これら挿入位置510〜540にそれぞれ対応する文字列を挿入することによりパスごとの検証シナリオを作成する。
【0046】
また、作成部404は、探索部402によって複数のパスが探索された場合、パスごとの検証シナリオを組み合わせることにより、アクセス先のハードウェアブロックに割り当てられたアドレス範囲への競合アクセスが発生した場合における検証シナリオを作成する機能を有する。
【0047】
検証シナリオの組み合わせとは、特定のアクセス先のハードウェアブロックへのアクセスが発生した際の検証シナリオを、並列にアクセス可能となるように組み合わせたものである。このとき、並列に動作する検証シナリオ(単体シナリオ)の組み合わせをすべて網羅することにより、競合アクセスを考慮した検証シナリオ(並列シナリオ)を作成する。
【0048】
たとえば、同一のアクセス先のハードウェアブロックへのアクセスが発生した場合の検証シナリオが3つ(シナリオ名:シナリオA、シナリオB、シナリオC)あるとする。この場合、並列に動作する検証シナリオの組み合わせは、「シナリオAとシナリオB」、「シナリオAとシナリオC」、「シナリオBとシナリオC」、「シナリオAとシナリオBとシナリオC」の4つとなる。
【0049】
このように、複数のパスが存在する場合には、各パスの検証シナリオ(単体シナリオ)を組み合わせて、競合アクセスを考慮した検証シナリオ(並列シナリオ)を自動作成する。以下、検証シナリオの組み合わせを、シナリオ名(たとえば、シナリオA、シナリオB)を並列に列挙して『シナリオA‖シナリオB』と表現する。
【0050】
出力部405は、作成部404によって作成された検証シナリオを当該検証シナリオに対応するパスと関連付けて出力する機能を有する。出力部405による出力形式は、ディスプレイ131での画面表示、プリンタ133での印刷出力、メモリへのデータ出力(保存)、外部のコンピュータ装置への送信のいずれであってもよい。具体的には、検証シナリオと当該検証シナリオに対応するパスとを関連付けて示す関連付けテーブルを出力することとしてもよい。なお、関連付けテーブルの具体例は図13を用いて後述する。
【0051】
削除部406は、アクセス元のハードウェアブロックとアクセス先のハードウェアブロックとが同一のハードウェアブロックとからなるパスの検証シナリオを削除する機能を有する。具体的には、アクセス元のハードウェアブロックが自分自身にトランザクションを発生させる検証シナリオを削除する。これは、実際のバスシステムではあり得ないトランザクションを検証するための検証シナリオである。
【0052】
また、バスシステムの構成をモデル化して表わす構成モデルを参照して、物理的に存在し得ないパスの検証シナリオを削除することとしてもよい。ここで、図2に示したバスシステム200の構成をモデル化して表わす構成モデルについて説明する。図6は、構成モデルの一例を示す説明図である。
【0053】
図6において、構成モデル600は、CPUモデル601と、デバイスAモデル602と、デバイスBモデル603と、メインバスモデル604と、サブバスモデル605と、ブリッジモデル606と、から構成されている。この構成モデル600は、バスシステム200内のハードウェアブロック、ブリッジおよびバスをノードとしてグラフ化し、物理的に接続されているノード間を接続することによって生成することができる。
【0054】
ここでは、構成モデル600を参照して、探索部402によって探索されたパスのうち、物理的に存在しないパスを特定する。具体的には、探索部402によって探索された論理的に想定し得るパスのうち物理的には存在しないパスを、構成モデル600内のノード間の接続関係を参照することによって判断する。
【0055】
ここで、物理的に存在しないパスの検証シナリオを削除する削除処理の具体的手法について説明する。まず、検出部407により、構成モデル内(たとえば、構成モデル600)のノード間の接続関係を参照して、バスシステム内の同一のバス系統に属するアクセス元およびアクセス先のハードウェアブロックを検出する。
【0056】
このあと、検索部408により、探索部402によって探索されたパスのうち、検出部407によって検出されたアクセス元のハードウェアブロックからアクセス先のハードウェアブロックに辿り着くまでの間に上記バス系統とは異なる他のバス系統を経由するパスを検索する。
【0057】
そして、判定部409により、検索部408によって検索されたパス内のアクセス先のハードウェアブロックが他のバス系統に属するか否かを判定する。この結果、他のバス系統に属していないと判定された場合、削除部406により、検索部408によって検索されたパスに関連付けられている検証シナリオを削除する。
【0058】
また、出力部405は、削除部406によって検証シナリオが削除された場合、残余の検証シナリオを当該検証シナリオに対応するパスと関連付けて出力することとなる。なお、上記機能部401〜409による各種処理は、検証対象となるバスシステムのメモリマップや回路情報などに基づいて実行される。メモリマップに基づく各種処理は、後述する実施例において説明する。
【0059】
(検証シナリオ作成装置の検証シナリオ作成処理手順)
つぎに、この発明の実施の形態にかかる検証シナリオ作成装置100の検証シナリオ作成処理手順について説明する。図7は、この発明の実施の形態にかかる検証シナリオ作成装置の検証シナリオ作成処理手順を示すフローチャートである。
【0060】
図7のフローチャートにおいて、まず、抽出部401により、検証対象となるバスシステムを構成する複数のハードウェアブロックの中から、相互にアクセス可能な任意のアクセス元およびアクセス先のハードウェアブロックを抽出する(ステップS701)。このあと、探索部402により、抽出部401によって抽出されたアクセス元のハードウェアブロックからアクセス先のハードウェアブロックに辿り着くまでのパスを探索する(ステップS702)。
【0061】
このあと、作成部404により、探索部402によって探索されたパスごとに、アクセス先のハードウェアブロックに割り当てられたアドレス範囲へのアクセスが発生した場合における、アクセス元のハードウェアブロックのトランザクションを検証するための検証シナリオを作成する(ステップS703)。
【0062】
このあと、ステップS702において複数のパスが探索されたか否かを判断して(ステップS704)、複数のパスが探索された場合(ステップS704:Yes)、作成部404により、パスごとの検証シナリオを組み合わせることにより、アドレス範囲への競合アクセスが発生した場合における検証シナリオを作成する(ステップS705)。
【0063】
このあと、削除部406により、不要な検証シナリオを削除する削除処理を実行する(ステップS706)。最後に、出力部405により、作成部404によって作成された検証シナリオを当該検証シナリオに対応するパスと関連付けて出力して(ステップS707)、本フローチャートによる一連の処理を終了する。また、ステップS704において、複数のパスが探索されなかった場合には(ステップS704:No)、ステップS706に移行する。
【0064】
つぎに、図7に示したステップS706における削除処理の処理手順について説明する。図8は、削除処理の処理手順を示すフローチャートである。図8のフローチャートにおいて、まず、探索部402によって探索されたパスのうち、アクセス元のハードウェアブロックとアクセス先のハードウェアブロックとが同一のハードウェアブロックとからなるパスが検出されたか否かを判断する(ステップS801)。
【0065】
ここで、パスが検出された場合(ステップS801:Yes)、削除部406により、検出されたパスの検証シナリオを削除する(ステップS802)。このあと、検出部407により、バスシステム内の同一のバス系統に属するアクセス元およびアクセス先のハードウェアブロックが検出されたか否かを判断する(ステップS803)。
【0066】
ここで、アクセス元およびアクセス先のハードウェアブロックが検出された場合(ステップS803:Yes)、検索部408により、探索部402によって探索されたパスのうち、検出部407によって検出されたアクセス元のハードウェアブロックからアクセス先のハードウェアブロックに辿り着くまでの間にバス系統とは異なる他のバス系統を経由するパスを検索する(ステップS804)。
【0067】
このあと、判定部409により、検索部408によって検索されたパス内のアクセス先のハードウェアブロックが他のバス系統に属するか否かを判定する(ステップS805)。ここで、他のバス系統に属していないと判定された場合(ステップS805:No)、削除部406により、検索部408によって検索されたパスの検証シナリオを削除して(ステップS806)、図7に示したステップS707に移行する。
【0068】
また、ステップS801において、パスが検出されなかった場合(ステップS801:No)、ステップS803に移行する。また、ステップS805においてアクセス元およびアクセス先のハードウェアブロックが検出されなかった場合(ステップS803:No)、およびステップS805において他のバス系統に属していると判定された場合(ステップS805:Yes)、図7に示したステップS707に移行する。
【0069】
この発明の実施の形態によれば、検証対象となるバスシステム内の特定のアクセス先のハードウェアブロックに対してアクセスが発生した場合における、アクセス元のハードウェアブロックのトランザクションを検証するための検証シナリオを網羅的に自動作成することができる。これにより、アクセス元のハードウェアブロックのトランザクションを検証する際の検証漏れを防ぐことができ、検証品質の向上を図ることができる。
【0070】
さらに、パスごとの検証シナリオを組み合わせることにより、特定のアクセス先のハードウェアブロックに対して複数のアクセスが発生した場合におけるデータ破壊を検証するための検証シナリオを網羅的に自動作成することができる。これにより、並列アクセス時のデータ破壊を検証する際の検証漏れを防ぐことができ、検証品質の向上を図ることができる。
【0071】
また、アクセス元のハードウェアブロックが自分自身にトランザクションを発生させる無駄な検証シナリオを削除することができる。さらに、バスシステムの構成上、物理的に存在し得ないパスに関する無駄な検証シナリオを削除することができる。この結果、無駄な検証処理を削減することができ、検証作業の効率化を図ることができる。
【0072】
また、バスシステム内のハードウェアブロック間の論理的な接続関係を表わす有向グラフを利用して、相互にアクセス可能なアクセス元のハードウェアブロックからアクセス先のハードウェアブロックまでのパスを探索することができる。さらに、バスシステムの構成モデルを利用して、探索されたパスのうち物理的に存在し得ないパスを削除することで、検証に必要となるパスを効率的かつ正確に特定することができる。
【実施例】
【0073】
つぎに、上述した実施の形態の実施例について説明する。実施例では、メモリマップに定義されているデータ通信に関する仕様情報に基づいて、上記機能部401〜409による各種処理を実行する。まず、メモリマップについて説明する。なお、本実施例では、バスシステム全体として、唯一のメモリマップを各ハードウェアブロックが共有することとする。
【0074】
(メモリマップの具体例)
図9は、メモリマップの一例を示す説明図である。図9において、メモリマップ900は、アドレスごとに、バスシステム200(図2参照)内のデータ通信に関する仕様情報900−1〜900−3を有している。ここで、符号910は、アクセス先のハードウェアブロックにアクセスするためのアドレス範囲を表わしている。
【0075】
また、符号920は、アクセス先のハードウェアブロックの名称を表わしている。また、符号930は、アクセス元のハードウェアブロックが利用可能なトランザクションの種類(アクセスパターン)を表わしている。また、符号940は、アクセス元のハードウェアブロックの名称を表わしている。ここでは、920,940に表記されているハードウェアブロックの組み合わせによって、相互にアクセス可能なアクセス元およびアクセス先のハードウェアブロックの組み合わせを表わしている。
【0076】
ここで、仕様情報900−2を例に挙げると、アドレス範囲「0x2000_0000〜0x2000_FFFF」が割り当てられたアクセス先のデバイスA202にアクセス可能なアクセス元のハードウェアブロックとして、CPU201およびブリッジ208が定義されている。また、トランザクションの種類を示すアクセスパターンとして、シングルまたはバースト転送が定義されている。
【0077】
ここでは、ブリッジを、アクセス元のハードウェアブロックから送信されるデータをアクセス先のハードウェアブロックに中継する機能を有したハードウェアブロックとして扱う。このメモリマップ900は、たとえば、図1に示したキーボード121やマウス122などの入力装置120をユーザが操作することで、検証シナリオ作成装置100に入力される。
【0078】
(生成処理の具体例)
つぎに、このメモリマップ900に定義されている仕様情報900−1〜900−3に基づいて、有向グラフを生成する生成部403による生成処理の具体例について説明する。図10〜図12は、有向グラフの生成過程を示す説明図である。
【0079】
まず、図10に示すように、メモリマップ900内の920,940に基づいて、バスシステム200内のアクセス元となり得るすべてのハードウェアブロックおよびアクセス先となり得るすべてのハードウェアブロックをノードN1〜N6としてそれぞれ異なる列1010,1020に配置する。このとき、アクセス元およびアクセス先の双方になり得るハードウェアブロックは、アクセス元およびアクセス先の両列に配置する。
【0080】
このあと、図11に示すように、ブリッジ208に該当するノードN3,N6を識別するためにマークMを付す。ここでは、ブリッジ208に該当するノードN3,N6を丸点線で囲うこととする。つぎに、仕様情報900−1〜900−3に基づいて、アクセス先のハードウェアブロックに対してアクセス可能なアクセス元のハードウェアブロックから該アクセス先のハードウェアブロックに有向エッジを接続する。
【0081】
ここで、仕様情報900−1を例に挙げると、アクセス先のノードN6(ブリッジ208)に対してアクセス可能なアクセス元のノードN1(CPU201)およびノードN2(デバイスA202)から有向エッジE3,E5をそれぞれ接続する。さらに、アクセス先のノードN5(デバイスB203)に対してアクセス可能なアクセス元のノードN1(CPU201)、ノードN2(デバイスA202)およびノードN3(ブリッジ208)から有向エッジE2,E4,E7をそれぞれ接続する。
【0082】
このあと、図12に示すように、ブリッジ208に該当するノードN3,N6を1つのノードN7に集約する。具体的には、ブリッジ208に該当するノードN7を、列1010,1020とは異なる列1210に配置する。さらに、自己ループとなっているノード間の有向エッジを削除する。つまり、アクセス元とアクセス先とが同一のハードウェアブロックとなっているノード間を接続する有向エッジを削除する。
【0083】
さらに、バスシステム200の構成上、物理的に接続不能なノード間が有向エッジによって接続されている場合、その有向エッジを削除することとしてもよい。具体的には、たとえば、図6に示した構成モデル600を用いて、バスシステム200内のパスを探索する探索アルゴリズムを利用することにより、物理的に接続不能なノード間が有向エッジを検出する。
【0084】
より詳しく説明すると、あるアクセス先のハードウェアブロックに着目し、アクセス先のハードウェアブロックからアクセス元のハードウェアブロックまでのパスを探索する。その結果、パスを探索することができなければ、それらハードウェアブロックを表わすノード間を接続する有向エッジを削除する。ここでは、自己ループおよび接続不能となる有向エッジは存在しない。
【0085】
このように、上述した一連の処理を実行することにより、バスシステム200内のアクセス元のハードウェアブロックとアクセス先のハードウェアブロックとブリッジとがノード化された有向グラフ1200を生成することができる。
【0086】
(抽出処理および探索処理の具体例)
つぎに、この有向グラフ1200を用いて、抽出部401による抽出処理および探索部402による探索処理の具体例について説明する。まず、抽出部401により、有向グラフ1200から任意のアクセス先のハードウェアブロックを表わすノードN4,N5のいずれか一方を抽出する。このあと、探索部402により、有向エッジに従って、抽出部401によって抽出されたノードからアクセス元のハードウェアブロックを表わすノードに辿り着くまでのパスを探索する。
【0087】
たとえば、有向グラフ1200からノードN4が抽出された場合、ノードN4に接続されている有向エッジE1,E6を辿ることにより、アクセス元のCPU201およびデバイスA202を表わすノードN1,N2からアクセス先のデバイスA202を表わすノードN4に辿り着くまでのパスを探索する。なお、上述で説明したように、ここで探索されるパスは論理的に想定し得るパスであり、物理的に存在するパスとは限らない。
【0088】
ここでは、アクセス元のCPU201からアクセス先のデバイスA202に直接アクセスするパスP1(ノードN1→ノードN4)と、アクセス元のCPU201からブリッジ208を経由してアクセス先のデバイスA202にアクセスするパスP2(ノードN1→ノードN7→ノードN4)と、アクセス元のデバイスA202からブリッジ208を経由してアクセス先のデバイスA202にアクセスするパスP3(ノードN2→ノードN7→ノードN4)とが探索される。
【0089】
また、有向グラフ1200からノードN5が抽出された場合には、ノードN5に接続されている有向エッジE2,E4,E7を辿ることにより、アクセス元のCPU201およびデバイスA202を表わすノードN1,N2からアクセス先のデバイスB203を表わすノードN5に辿り着くまでのパスを探索することとなる。
【0090】
この結果、アクセス元のCPU201からアクセス先のデバイスB203に直接アクセスするパスP4(ノードN1→ノードN5)と、アクセス元のCPU201からブリッジ208を経由してアクセス先のデバイスB203にアクセスするパスP5(ノードN1→ノードN7→ノードN5)と、アクセス元のデバイスA202からアクセス先のデバイスB203に直接アクセスするパスP6(ノードN2→ノードN5)と、アクセス元のデバイスA202からブリッジ208を経由してアクセス先のデバイスB203にアクセスするパスP7(ノードN2→ノードN7→ノードN5)と、が探索される。
【0091】
(作成処理の具体例)
つぎに、作成部404による作成処理の具体例について説明する。ここでは、作成部404は、探索部402によって探索されたパスP1〜P7ごとの検証シナリオを作成することとなる。ここで、図5に示したシナリオテンプレート500を利用して、パスP1の検証シナリオを作成する場合について説明する。パスP1は、アクセス元のCPU201からアクセス先のデバイスA202に直接アクセスする経路である。
【0092】
この場合、メモリマップ900内の仕様情報900−2に基づいて、シナリオテンプレート500の各挿入位置510〜540に所定の文字列を挿入する。具体的には、シナリオ名『Scenario1』を挿入位置510に挿入し、アクセス元のハードウェアブロックの名称『CPU』を挿入位置520に挿入する。
【0093】
さらに、アクセス先のハードウェアブロックに割り当てられているアドレス『0x2000_0000から0x2000_FFFF』を挿入位置530に挿入し、トランザクションの種類『シングル転送またはバースト転送』を挿入位置540に挿入する。これにより、パスP1の検証シナリオを作成することができる。
【0094】
なお、挿入位置510には、検証シナリオの作成順序に従って「Scenario1→Scenario2→…」の順にシナリオ名が挿入されることとする。また、ブリッジは、アクセス元のハードウェアブロックとして扱わないこととする。以下、パスP1〜P3の検証シナリオを表1〜表3に示す。
【0095】
表1は、パスP1の検証シナリオである。これは、CPU201がデバイスA202に直接トランザクションを発生する検証シナリオである。
【0096】
【表1】

【0097】
表2は、パスP2の検証シナリオである。これは、CPU201がブリッジ208を介してデバイスA202にトランザクションを発生する検証シナリオである。
【0098】
【表2】

【0099】
表3は、パスP3の検証シナリオである。これは、デバイスA202がブリッジ208を介してデバイスA202にトランザクションを発生する検証シナリオである。
【0100】
【表3】

【0101】
このあと、作成部404により、パスP1〜P3の検証シナリオ(以下、「単体シナリオ」という)の組み合わせ(以下、「並列シナリオ」という)を作成する。ここで、シナリオ名がScenario1、Scenario2およびScenario3の3つの単体シナリオの組み合わせからなる並列シナリオを示す。
【0102】
(1)2つの単体シナリオの組み合わせからなる並列シナリオ
『Scenario1‖Scenario2,Scenario1‖Scenario3,Scenario2‖Scenario3』
【0103】
(2)3つの単体シナリオの組み合わせからなる並列シナリオ
『Scenario1‖Scenario2‖Scenario3』
【0104】
このあと、作成部404によって作成された検証シナリオ(単体シナリオ、並列シナリオ)のうち不要な検証シナリオを削除する。具体的には、図8に示した削除処理を実行する。ここでは、単体シナリオScenario3が、デバイスA202が自分自身にトランザクションを発生させる検証シナリオとなっているため不要となる。
【0105】
また、単体シナリオScenario2が、CPU201がブリッジ208を介してデバイスA202にトランザクションを発生するものとなっており、物理的には存在し得ないパスの検証シナリオとなっているため不要となる。したがって、これら2つの単体シナリオと、これらの単体シナリオを含む並列シナリオを削除する。この結果、作成部404によって作成された検証シナリオのうち単体シナリオScenario1のみが残ることとなる。
【0106】
同様にして、仕様情報900−1に基づいて、所定の文字列を挿入位置510〜540に挿入することにより、パスP4〜P7の検証シナリオを作成する。以下、パスP4〜P7の検証シナリオを表4〜表7に示す。
【0107】
表4は、パスP4の検証シナリオである。これは、CPU201がデバイスB203に直接トランザクションを発生する検証シナリオである。
【0108】
【表4】

【0109】
表5は、パスP5の検証シナリオである。これは、CPU201がブリッジ208を介してデバイスB203にトランザクションを発生する検証シナリオである。
【0110】
【表5】

【0111】
表6は、パスP6の検証シナリオである。これは、デバイスA202がデバイスB203に直接トランザクションを発生する検証シナリオである。
【0112】
【表6】

【0113】
表7は、パスP7の検証シナリオである。これは、デバイスA202がブリッジ208を介してデバイスB203にトランザクションを発生する検証シナリオである。
【0114】
【表7】

【0115】
このあと、作成部404により、パスP4〜P7の単体シナリオを組み合わせて、並列シナリオを作成する。ここで、シナリオ名がScenario4、Scenario5、Scenario6およびScenario7の4つの単体シナリオの組み合わせからなる並列シナリオを示す。
【0116】
(3)2つの単体シナリオの組み合わせからなる並列シナリオ
『Scenario4‖Scenario5,Scenario4‖Scenario6,Scenario4‖Scenario7,Scenario5‖Scenario6,Scenario5‖Scenario7,Scenario6‖Scenario7』
【0117】
(4)3つの単体シナリオの組み合わせからなる並列シナリオ
『Scenario4‖Scenario5‖Scenario6,Scenario4‖Scenario5‖Scenario7,Scenario4‖Scenario6‖Scenario7,Scenario5‖Scenario6‖Scenario7』
【0118】
(5)4つの単体シナリオの組み合わせからなる並列シナリオ
『Scenario4‖Scenario5‖Scenario6‖Scenario7』
【0119】
このあと、作成部404によって作成された検証シナリオ(単体シナリオ、並列シナリオ)のうち不要な検証シナリオを削除する。ここでは、不要となる検証シナリオは存在しない。なお、単体シナリオScenario5およびScenario7は、ブリッジ208を介して同一バス系統へのトランザクションが発生している。
【0120】
しかし、図6に示した構成モデル600から、パスP5およびパスP7の経路が実在することがわかる。このため、パスP5およびパスP7の単体シナリオScenario5およびScenario7は必要となる。この結果、作成部404によって作成された検証シナリオのすべてが残ることとなる。
【0121】
最後に、出力部405により、検証シナリオとその検証シナリオに対応するパスとを関連付けて示す関連付けテーブルを出力する。図13は、関連付けテーブルの一例を示す説明図である。図13において、関連付けテーブル1300は、検証シナリオのシナリオ名とその検証シナリオに対応するパスのパス名とを関連付けて示すテーブル表である。
【0122】
具体的には、たとえば、パスP1と関連付けて単体シナリオ「Scenario1」が表記されており、パスP4およびパスP5と関連付けて並列シナリオ「Scenario4‖Scenario5」が表記されており、パスP4、パスP5、パスP6およびパスP7と関連付けて並列シナリオ「Scenario4‖Scenario5‖Scenario6‖Scenario7」が表記されている。
【0123】
なお、実際にバスシステム200の検証をおこなう場合には、関連付けテーブル1300を参照することにより、パスP1〜P7ごとの単体シナリオをそれぞれ実行するとともに、並列アクセス時における各トランザクションの発生順序に従って並列シナリオを実行することとなる。
【0124】
(生成処理の具体的処理手順)
つぎに、生成部403による生成処理の具体的処理手順について説明する。図14は、生成処理の具体的処理手順を示すフローチャートである。図14のフローチャートにおいて、まず、バスシステム内のアクセス元およびアクセス先となり得るすべてのハードウェアブロックをノードとしてそれぞれ異なる列に配置する(ステップS1401)。
【0125】
このあと、ブリッジに該当するノードを識別するためにマークを付し(ステップS1402)、アクセス先のハードウェアブロックに対してアクセス可能なアクセス元のハードウェアブロックから該アクセス先のハードウェアブロックに有向エッジを接続する(ステップS1403)。
【0126】
このあと、ブリッジに該当するノードが複数存在するか否かを判断し(ステップS1404)、複数存在する場合(ステップS1404:Yes)、それら複数のノードを1つのノードに集約する(ステップS1405)。そして、自己ループとなっているノード間の有向エッジを削除し(ステップS1406)、物理的に接続不能なノード間の有向エッジを削除する(ステップS1407)。
【0127】
最後に、生成された有向グラフを出力して(ステップS1408)、本フローチャートによる一連の処理を終了する。また、ステップS1404において、ブリッジに該当するノードが複数存在しない場合(ステップS1404:No)、ステップS1406に移行する。
【0128】
(検証シナリオ作成処理の具体的処理手順)
つぎに、検証シナリオ作成処理の具体的処理手順について説明する。図15は、検証シナリオ作成処理の具体的処理手順を示すフローチャートである。図15のフローチャートにおいて、まず、抽出部401により、生成部403によって生成された有向グラフから任意のアクセス先のハードウェアブロックを表わすノードを抽出する(ステップS1501)。
【0129】
このあと、探索部402により、有向グラフ内ノード間を接続する有向エッジに従って、抽出部401によって抽出されたノードからアクセス元のハードウェアブロックを表わすノードに辿り着くまでのパスを探索する(ステップS1502)。つぎに、作成部404により、探索部402によって探索されたパスごとの単体シナリオを作成する(ステップS1503)。
【0130】
このあと、ステップS1502において複数のパスが探索されたか否かを判断し(ステップS1504)、複数のパスが探索された場合(ステップS1504:Yes)、作成部404により、ステップS1503において作成されたパスごとの単体シナリオを組み合わせて並列シナリオを作成する(ステップS1505)。
【0131】
このあと、削除部406により、不要な検証シナリオを削除し(ステップS1506)、つぎに、未抽出のアクセス先のハードウェアブロックを表わすノードがあるか否かを判断(ステップS1507)。ここで、未抽出のアクセス先のハードウェアブロックを表わすノードがある場合(ステップS1507:Yes)、ステップS1501に戻り、一連の処理を繰り返す。
【0132】
一方、未抽出のアクセス先のハードウェアブロックを表わすノードがない場合(ステップS1507:No)、出力部405により、検証シナリオと該検証シナリオに対応するパスとを関連付けて示す関連付けテーブルを出力して(ステップS1508)、本フローチャートによる一連の処理を終了する。なお、ステップS1504において複数のパスが探索されていない場合には(ステップS1504:No)、ステップS1506に移行する。
【0133】
実施例によれば、メモリマップ900に基づいて、バスシステム200を検証するために必要となるパスごとの単体シナリオ、およびそれらの単体シナリオを組み合わせた並列シナリオを網羅的に自動作成することができる。これにより、設計仕様書から経路情報を抽出するなどの検証者による面倒な作業が不要となり、検証作業にかかる作業負担を軽減するとともに検証品質の向上を図ることができる。
【0134】
特に、複数のバス系統がブリッジよって接続されている複雑化したバスシステムでは、必要となる検証シナリオが膨大な数となるため、手作業でおこなう場合に比べて、より効率的かつ網羅的に検証シナリオを作成することができる。また、バスシステム200の検証に不要となる検証シナリオは削除されるため、無駄な検証作業を削減し検証期間の短縮化を図ることができる。
【0135】
以上説明したように、検証シナリオ作成プログラム、該プログラムを記録した記録媒体、検証シナリオ作成装置、および検証シナリオ作成方法によれば、バスシステムの検証に必要となる検証シナリオを効率的かつ網羅的に作成することにより、検証者の負担軽減および設計期間の短縮化を図ることができる。
【0136】
なお、本実施の形態で説明した検証シナリオ作成方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【0137】
また、本実施の形態で説明した検証シナリオ作成装置100は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した検証シナリオ作成装置100の機能的構成401〜409をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、検証シナリオ作成装置100を製造することができる。なお、上述した実施の形態に関し、さらに以下の付記を開示する。
【0138】
(付記1)検証対象となるバスシステムを構成する複数のハードウェアブロックの中から、相互にアクセス可能な任意のアクセス元およびアクセス先のハードウェアブロックを抽出させる抽出工程と、
前記抽出工程によって抽出されたアクセス元のハードウェアブロックからアクセス先のハードウェアブロックに辿り着くまでのパスを探索させる探索工程と、
前記探索工程によって探索されたパスごとに、前記アクセス先のハードウェアブロックに割り当てられたアドレス範囲へのアクセスが発生した場合における、前記アクセス元のハードウェアブロックのトランザクションを検証するための検証シナリオを作成させる作成工程と、
前記作成工程によって作成された検証シナリオを当該検証シナリオに対応するパスと関連付けて出力させる出力工程と、
をコンピュータに実行させることを特徴とする検証シナリオ作成プログラム。
【0139】
(付記2)前記作成工程は、
さらに、前記探索工程によって複数のパスが探索された場合、前記パスごとの検証シナリオを組み合わせることにより、前記アドレス範囲への競合アクセスが発生した場合における検証シナリオを作成させることを特徴とする付記1に記載の検証シナリオ作成プログラム。
【0140】
(付記3)前記アクセス元のハードウェアブロックと前記アクセス先のハードウェアブロックとが同一のハードウェアブロックとからなるパスの検証シナリオを削除させる削除工程を前記コンピュータに実行させ、
前記出力工程は、
前記削除工程によって削除された結果、残余の検証シナリオを当該検証シナリオに対応するパスと関連付けて出力させることを特徴とする付記1または2に記載の検証シナリオ作成プログラム。
【0141】
(付記4)前記バスシステム内の同一のバス系統に属するアクセス元およびアクセス先のハードウェアブロックを検出させる検出工程と、
前記探索工程によって探索されたパスのうち、前記検出工程によって検出されたアクセス元のハードウェアブロックからアクセス先のハードウェアブロックに辿り着くまでの間に前記バス系統とは異なる他のバス系統を経由するパスを検索させる検索工程と、
前記検索工程によって検索されたパス内のアクセス先のハードウェアブロックが前記他のバス系統に属するか否かを判定させる判定工程と、を前記コンピュータに実行させ、
前記削除工程は、
前記判定工程によって前記他のバス系統に属していないと判定された場合、前記検索工程によって検索されたパスに関連付けられている検証シナリオを削除することを特徴とする付記3に記載の検証シナリオ作成プログラム。
【0142】
(付記5)前記バスシステム内の異なるバス系統を接続するブリッジと前記アクセス元のハードウェアブロックと前記アクセス先のハードウェアブロックとがノード化された有向グラフを生成させる生成工程を前記コンピュータに実行させ、
前記抽出工程は、
前記生成工程によって生成された有向グラフから任意のアクセス先のハードウェアブロックを抽出させ、
前記探索工程は、
前記有向グラフ内のノード間を接続する有向エッジに従って、前記抽出工程によって抽出されたアクセス元のハードウェアブロックから当該アクセス先のハードウェアブロックにアクセス可能なアクセス元のハードウェアブロックまでのパスを探索することを特徴とする付記1〜3のいずれか一つに記載の検証シナリオ作成プログラム。
【0143】
(付記6)前記生成工程は、
前記バスシステム内のハードウェアブロックにアクセスするためのアドレス範囲、および相互にアクセス可能なアクセス元およびアクセス先のハードウェアブロックの組み合わせを定義するメモリマップに基づいて、前記有向グラフを生成させることを特徴とする付記5に記載の検証シナリオ作成プログラム。
【0144】
(付記7)前記作成工程は、
前記バスシステム内のハードウェアブロックが利用可能なトランザクションを定義する前記メモリマップに基づいて、前記アクセス元のハードウェアブロックのトランザクションを検証するための検証シナリオを作成させることを特徴とする付記6に記載の検証シナリオ作成プログラム。
【0145】
(付記8)付記1〜7のいずれか一つに記載の検証シナリオ作成プログラムを記録したコンピュータに読み取り可能な記録媒体。
【0146】
(付記9)検証対象となるバスシステムを構成する複数のハードウェアブロックの中から、相互にアクセス可能な任意のアクセス元およびアクセス先のハードウェアブロックを抽出する抽出手段と、
前記抽出手段によって抽出されたアクセス元のハードウェアブロックからアクセス先のハードウェアブロックに辿り着くまでのパスを探索する探索手段と、
前記探索手段によって探索されたパスごとに、前記アクセス先のハードウェアブロックに割り当てられたアドレス範囲へのアクセスが発生した場合における、前記アクセス元のハードウェアブロックのトランザクションを検証するための検証シナリオを作成する作成手段と、
前記作成手段によって作成された検証シナリオを当該検証シナリオに対応するパスと関連付けて出力する出力手段と、
を備えることを特徴とする検証シナリオ作成装置。
【0147】
(付記10)検証対象となるバスシステムを構成する複数のハードウェアブロックの中から、相互にアクセス可能な任意のアクセス元およびアクセス先のハードウェアブロックを抽出する抽出工程と、
前記抽出工程によって抽出されたアクセス元のハードウェアブロックからアクセス先のハードウェアブロックに辿り着くまでのパスを探索する探索工程と、
前記探索工程によって探索されたパスごとに、前記アクセス先のハードウェアブロックに割り当てられたアドレス範囲へのアクセスが発生した場合における、前記アクセス元のハードウェアブロックのトランザクションを検証するための検証シナリオを作成する作成工程と、
前記作成工程によって作成された検証シナリオを当該検証シナリオに対応するパスと関連付けて出力する出力工程と、
を含んだことを特徴とする検証シナリオ作成方法。
【産業上の利用可能性】
【0148】
以上のように、本発明にかかる検証シナリオ作成プログラム、該プログラムを記録した記録媒体、検証シナリオ作成装置、および検証シナリオ作成方法は、複数のバス系統がブリッジよって接続されているバスシステムの検証に有用である。
【図面の簡単な説明】
【0149】
【図1】この発明の実施の形態にかかる検証シナリオ作成装置のハードウェア構成を示す説明図である。
【図2】この発明の実施の形態にかかる検証対象となるバスシステムの一例を示す構成図である。
【図3】バスシステム内のパスの一例を示す説明図である。
【図4】この発明の実施の形態にかかる検証シナリオ作成装置の機能的構成を示すブロック図である。
【図5】シナリオテンプレートの一例を示す説明図である。
【図6】構成モデルの一例を示す説明図である。
【図7】この発明の実施の形態にかかる検証シナリオ作成装置の検証シナリオ作成処理手順を示すフローチャートである。
【図8】削除処理の処理手順を示すフローチャートである。
【図9】メモリマップの一例を示す説明図である。
【図10】有向グラフの生成過程を示す説明図(その1)である。
【図11】有向グラフの生成過程を示す説明図(その2)である。
【図12】有向グラフの生成過程を示す説明図(その3)である。
【図13】関連付けテーブルの一例を示す説明図である。
【図14】生成処理の具体的処理手順を示すフローチャートである。
【図15】検証シナリオ作成処理の具体的処理手順を示すフローチャートである。
【符号の説明】
【0150】
100 検証シナリオ作成装置
201 CPU
202 デバイスA
203 デバイスB
204 メインバスコントローラ
205 サブバスコントローラ
206 メインバス
207 サブバス
208 ブリッジ
401 抽出部
402 探索部
403 生成部
404 作成部
405 出力部
406 削除部
407 検出部
408 検索部
409 判定部
500 シナリオテンプレート
510,520,530,540 挿入位置
600 構成モデル
900 メモリマップ
900−1,900−2,900−3 仕様情報
1200 有向グラフ
1300 関連付けテーブル

【特許請求の範囲】
【請求項1】
検証対象となるバスシステムを構成する複数のハードウェアブロックの中から、相互にアクセス可能な任意のアクセス元およびアクセス先のハードウェアブロックを抽出させる抽出工程と、
前記抽出工程によって抽出されたアクセス元のハードウェアブロックからアクセス先のハードウェアブロックに辿り着くまでのパスを探索させる探索工程と、
前記探索工程によって探索されたパスごとに、前記アクセス先のハードウェアブロックに割り当てられたアドレス範囲へのアクセスが発生した場合における、前記アクセス元のハードウェアブロックのトランザクションを検証するための検証シナリオを作成させる作成工程と、
前記作成工程によって作成された検証シナリオを当該検証シナリオに対応するパスと関連付けて出力させる出力工程と、
をコンピュータに実行させることを特徴とする検証シナリオ作成プログラム。
【請求項2】
前記作成工程は、
さらに、前記探索工程によって複数のパスが探索された場合、前記パスごとの検証シナリオを組み合わせることにより、前記アドレス範囲への競合アクセスが発生した場合における検証シナリオを作成させることを特徴とする請求項1に記載の検証シナリオ作成プログラム。
【請求項3】
前記アクセス元のハードウェアブロックと前記アクセス先のハードウェアブロックとが同一のハードウェアブロックとからなるパスの検証シナリオを削除させる削除工程を前記コンピュータに実行させ、
前記出力工程は、
前記削除工程によって削除された結果、残余の検証シナリオを当該検証シナリオに対応するパスと関連付けて出力させることを特徴とする請求項1または2に記載の検証シナリオ作成プログラム。
【請求項4】
前記バスシステム内の同一のバス系統に属するアクセス元およびアクセス先のハードウェアブロックを検出させる検出工程と、
前記探索工程によって探索されたパスのうち、前記検出工程によって検出されたアクセス元のハードウェアブロックからアクセス先のハードウェアブロックに辿り着くまでの間に前記バス系統とは異なる他のバス系統を経由するパスを検索させる検索工程と、
前記検索工程によって検索されたパス内のアクセス先のハードウェアブロックが前記他のバス系統に属するか否かを判定させる判定工程と、を前記コンピュータに実行させ、
前記削除工程は、
前記判定工程によって前記他のバス系統に属していないと判定された場合、前記検索工程によって検索されたパスに関連付けられている検証シナリオを削除することを特徴とする請求項3に記載の検証シナリオ作成プログラム。
【請求項5】
前記バスシステム内の異なるバス系統を接続するブリッジと前記アクセス元のハードウェアブロックと前記アクセス先のハードウェアブロックとがノード化された有向グラフを生成させる生成工程を前記コンピュータに実行させ、
前記抽出工程は、
前記生成工程によって生成された有向グラフから任意のアクセス先のハードウェアブロックを抽出させ、
前記探索工程は、
前記有向グラフ内のノード間を接続する有向エッジに従って、前記抽出工程によって抽出されたアクセス元のハードウェアブロックから当該アクセス先のハードウェアブロックにアクセス可能なアクセス元のハードウェアブロックまでのパスを探索することを特徴とする請求項1〜3のいずれか一つに記載の検証シナリオ作成プログラム。
【請求項6】
請求項1〜5のいずれか一つに記載の検証シナリオ作成プログラムを記録したコンピュータに読み取り可能な記録媒体。
【請求項7】
検証対象となるバスシステムを構成する複数のハードウェアブロックの中から、相互にアクセス可能な任意のアクセス元およびアクセス先のハードウェアブロックを抽出する抽出手段と、
前記抽出手段によって抽出されたアクセス元のハードウェアブロックからアクセス先のハードウェアブロックに辿り着くまでのパスを探索する探索手段と、
前記探索手段によって探索されたパスごとに、前記アクセス先のハードウェアブロックに割り当てられたアドレス範囲へのアクセスが発生した場合における、前記アクセス元のハードウェアブロックのトランザクションを検証するための検証シナリオを作成する作成手段と、
前記作成手段によって作成された検証シナリオを当該検証シナリオに対応するパスと関連付けて出力する出力手段と、
を備えることを特徴とする検証シナリオ作成装置。
【請求項8】
検証対象となるバスシステムを構成する複数のハードウェアブロックの中から、相互にアクセス可能な任意のアクセス元およびアクセス先のハードウェアブロックを抽出する抽出工程と、
前記抽出工程によって抽出されたアクセス元のハードウェアブロックからアクセス先のハードウェアブロックに辿り着くまでのパスを探索する探索工程と、
前記探索工程によって探索されたパスごとに、前記アクセス先のハードウェアブロックに割り当てられたアドレス範囲へのアクセスが発生した場合における、前記アクセス元のハードウェアブロックのトランザクションを検証するための検証シナリオを作成する作成工程と、
前記作成工程によって作成された検証シナリオを当該検証シナリオに対応するパスと関連付けて出力する出力工程と、
を含んだことを特徴とする検証シナリオ作成方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2009−93491(P2009−93491A)
【公開日】平成21年4月30日(2009.4.30)
【国際特許分類】
【出願番号】特願2007−264716(P2007−264716)
【出願日】平成19年10月10日(2007.10.10)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】