(57)【要約】【課題】シミュレーション時間の短縮並びにコスト低減が可能な複数の回路モジュール間の接続検証方法を提供する。【解決手段】入力部１１により第１、第２のモジュールの第１、第２の波形データを入力し、演算部１２により第１、第２の波形データから第１、第２の信号パターンを抽出して分類し、演算部１２により第１のモジュールと第２のモジュールとの間の接続定義を用いて第１、第２の信号パターンの対応付けを行い一致する組み合わせが存在するか否か判定し、少なくとも一部において一致する組み合わせが存在する場合に演算部１２により第１のモジュールと第２のモジュールとの間でシミュレーションを行うことで第１のモジュールと第２のモジュールとの間の接続の可否を検証する。【選択図】図１
2009053930.tif 000002
【特許請求の範囲】
【請求項１】
入力部、演算部、記憶部及び出力部を有する検証装置を用いて、第１のモジュールと第２のモジュールとの間の接続検証を行う方法であって、
前記入力部により、前記第１のモジュールの第１の波形データと、前記第２のモジュールの第２の波形データとを入力し、前記記憶部に記憶するステップと、
前記演算部により、前記記憶部に記憶された前記第１の波形データから第１の信号パターンを抽出して分類し、前記記憶部に記憶された前記第２の波形データから第２の信号パターンを抽出して分類するステップと、
前記演算部により、前記第１のモジュールと前記第２のモジュールとの間の接続定義を用いて、それぞれ分類された前記第１の信号パターンと前記第２の信号パターンとの対応付けを行い、一致する組み合わせが存在するか否かを判定するステップと、
少なくとも一部において一致する組み合わせが存在する場合に、前記演算部により、前記第１のモジュールと前記第２のモジュールとを接続してシミュレーションを行うことで、前記第１のモジュールと前記第２のモジュールとの間の接続の可否を検証するステップと、
を備えることを特徴とする複数の回路モジュール間の接続検証方法。
【請求項２】
前記第１の信号パターン及び前記第２の信号パターンをそれぞれを抽出するステップでは、
前記演算部により、前記第１の波形データ及び前記第２の波形データにおいて、それぞれ基準レベルから信号レベルが変化した時刻を信号開始時刻とし、前記信号レベルが前記基準レベルに戻り、所定の時間前記基準レベルを維持するとき、前記信号レベルが前記基準レベルに戻った時刻を信号終了時刻として前記第１の信号パターン及び前記第２の信号パターンの抽出を行うことを特徴とする請求項１記載の複数の回路モジュール間の接続検証方法。
【請求項３】
前記第１の信号パターン及び前記第２の信号パターンをそれぞれ分類するステップでは、
前記演算部により、抽出された前記第１の信号パターンを第１の数値データに変換し、抽出された前記第２の信号パターンを第２の数値データに変換し、前記第１の数値データと前記第２の数値データとを分類アルゴリズムを用いてそれぞれ分類を行うステップと、
を有することを特徴とする請求項１又は２記載の複数の回路モジュール間の接続検証方法。
【請求項４】
前記第１の信号パターンと前記第２の信号パターンとの対応付けを行うステップでは、
前記演算部により、前記接続定義ファイルを用いて、前記第１のモジュールの出力端子から出力される値と、この出力端子と接続される前記第２のモジュールの入力端子に入力される値との一致又は不一致、前記第１のモジュールの入力端子に入力される値と、この入力端子と接続される前記第２のモジュールの出力端子から出力される値との一致又は不一致を調べることを特徴とする請求項１乃至３のいずれかに記載の複数の回路モジュール間の接続検証方法。
【請求項５】
前記第１のモジュールと前記第２のモジュールとの間で、少なくとも一部の値が一致している場合、前記シミュレーションを行うステップにおいて、前記第１のモジュールの出力端子から出力される値を前記第２のモジュールの入力端子に与え、あるいは前記第２のモジュールの出力端子から出力される値を前記第１のモジュールの入力端子に与えてシミュレーションを行うことで、前記第１のモジュールと前記第２のモジュールとの間の接続の可否を検証することを特徴とする請求項４記載の複数の回路モジュール間の接続検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の回路モジュールを接続する際の検証方法に関するものである。
【背景技術】
【０００２】
従来は、複数の回路モジュール間の接続を検証する際に、モジュール間の接続を確認するための入力ベクタ及び期待値を別途作成し、回路モジュールを接続した後、直ちにシミュレータに入力ベクタを与えてシミュレーションを実行し、期待値と比較していた。
【０００３】
入力ベクタ、期待値を生成するためには、各モジュールの動作仕様についての理解が必要となる。このため、シミュレーションを実行してモジュール間の接続に問題が発見された場合においても、モジュール間の仕様の不一致が原因であるのか、あるいは入力ベクタや期待値に問題があるのか、判断するのに時間を要することが多かった。
【０００４】
このため、特に回路規模が大きい場合、あるいは入力ベクタにおける特定の範囲で問題が発生するコーナーケースの場合のように、大量の入力ベクタを入力してようやく発生した問題を解決する場合にはシミュレーション時間が増大しコストの増加を招いていた。
【０００５】
従来の回路モジュール間の接続検証技術を開示した文献名を以下に記載する。
【特許文献１】特開２００５−２０８７６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、シミュレーション時間の短縮並びにコスト低減が可能な複数の回路モジュール間の接続検証方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様による複数の回路モジュール間の接続検証方法は、入力部、演算部、記憶部及び出力部を有する検証装置を用いて、第１のモジュールと第２のモジュールとの間の接続検証を行う方法であって、前記入力部により、前記第１のモジュールの第１の波形データと、前記第２のモジュールの第２の波形データとを入力し、前記記憶部に記憶するステップと、前記演算部により、前記記憶部に記憶された前記第１の波形データから第１の信号パターンを抽出して分類し、前記記憶部に記憶された前記第２の波形データから第２の信号パターンを抽出して分類するステップと、前記演算部により、前記第１のモジュールと前記第２のモジュールとの間の接続定義を用いて、それぞれ分類された前記第１の信号パターンと前記第２の信号パターンとの対応付けを行い、一致する組み合わせが存在するか否かを判定するステップと、少なくとも一部において一致する組み合わせが存在する場合に、前記演算部により、前記第１のモジュールと前記第２のモジュールとを接続してシミュレーションを行うことで、前記第１のモジュールと前記第２のモジュールとの間の接続の可否を検証するステップとを備えることを特徴とする。
【発明の効果】
【０００８】
本発明の複数の回路モジュール間の接続検証方法によれば、シミュレーション時間を短縮しコストを低減することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態について図面を参照して説明する。
【００１０】
図１のフローチャートに、本発明の実施の形態による複数の回路モジュール間の接続検証方法における所定の手順を示す。
【００１１】
また、この処理を実行する際に用いられる複数の回路モジュール間の接続検証装置は、図２に示されるように、入力部１１、演算部１２、記憶部１３及び出力部１４を備えている。
【００１２】
入力部１１は接続の検証に必要な各種データの入力を行う。
【００１３】
演算部１２は、入力部１１から入力されたデータ、記憶部１３に記憶されたデータを用いて、後述する接続の検証に必要な静的処理及び動的な回路動作を伴うシミュレーションを行う。
【００１４】
記憶部１３は、入力部１１から入力されたデータや、演算部１２が演算した結果を記憶する。
【００１５】
図１において、ステップＳ１０として、単体検証が完了しているモジュールＡの時系列的な信号データである波形データを、入力部１１が入力して記憶部１３に記憶する。同様に、ステップＳ２０として、単体検証が完了しているモジュールＢの波形データを入力部１１が入力し、記憶部１３に記憶する。
【００１６】
ステップＳ１１において、演算部１２が記憶１３をアクセスしてモジュールＡの波形データの中から信号パターンを抽出する。同様にステップＳ２１において、モジュールＢの波形データの中から信号パターンを抽出する。
【００１７】
ステップＳ１２として、演算部１２が、モジュールＡに関して抽出した信号パターンを信号レベルの変化タイミングに基づいて分類する。同様に、ステップＳ２２として、演算部１２が、モジュールＢの信号パターンを信号レベルの変化タイミングに基づいて分類する。
【００１８】
ステップＳ１３において、モジュールＡ、Ｂ間の接続を定義したファイルを入力部１１が入力する。ステップＳ１４において、演算部１２がこのファイルを用いて、モジュールＡの出力信号線とモジュールＢの入力信号線との対応付けを行う。接続定義において定義されていない信号線については、対応付けを行わない。
【００１９】
ステップＳ３１において、演算部１２により信号の対応付けを行った結果、複数ビット幅のデータ及びデータの入出力のタイミングを規定する制御信号を含む全体の信号において完全に一致する信号パターンが得られたか否かを判断する。
【００２０】
得られた場合はステップＳ４１へ移行し、得られなかった場合ステップＳ３２に移行する。
【００２１】
ステップＳ３２において、演算部１２が、複数ビット幅のデータ以外の制御信号において一致する信号パターンが得られたか否かを判断する。得られた場合はステップＳ３３へ移行し、得られなかった場合にステップＳ３５へ移行する。
【００２２】
ステップＳ３３において、演算部１２が、モジュールＡにおける単体検証の出力値をモジュールＢにおける単体検証の入力値としてそれぞれのモジュールＡ、Ｂに与える。そして、ステップＳ３４において、正常に終了したか否かを判断し、正常に終了した場合はステップＳ４１へ移行する。
【００２３】
ステップＳ３４において正常に終了しなかった場合、あるいはステップＳ３２において複数ビット幅のデータを除く制御信号において一致する信号パターンが得られなかった場合は、ステップＳ３５へ移行する。ステップＳ３５において、対応付けを行った結果、データを除く制御信号においても信号パターンが全く一致せず接続検証が失敗した、即ちモジュールＡとモジュールＢとの接続は不能と判断する。
【００２４】
ステップＳ３１において、複数ビット幅のデータ及び制御信号の全てにおいて完全に一致する信号パターンが得られた場合、あるいはステップＳ３４において正常に終了した場合、ステップＳ４１へ移行する。上記ステップＳ１０〜Ｓ３４までは回路動作を伴わない静的な検証を行い、ステップＳ４１以降は回路動作を伴うシミュレーションにより検証を行う。
【００２５】
ステップＳ４１として、演算部１２において、モジュールＡとモジュールＢとを接続した状態で、モジュールＢの出力値を期待値としてモジュールＡに信号を与えたときの出力値と一致するか否かを検証するための信号パターンを生成する。
【００２６】
ステップＳ４２において、演算部１２がこの入力信号をモジュールＡに入力する。
【００２７】
ステップＳ４３において、演算部１２により、モジュールＢの単体検証から得られる信号パターンを期待値とし、モジュールＢの出力値と比較する。
【００２８】
ステップＳ４４において、モジュールＢの出力値と期待値とが一致した場合、この接続は正しいと判断し、一致しなかった場合正しくないと判断する。
【００２９】
ここで、ステップＳ１１、Ｓ２１における、モジュールＡ、Ｂの信号時系列データから信号パターンを抽出する処理の手順について、図３のフローチャート並びに図４、図５のタイムチャートを用いて説明する。
【００３０】
図３において、ステップＳ５０において、信号パターンの取得処理を開始する。
【００３１】
ステップＳ５１〜Ｓ５５において、演算部１２により、Ｔ＝０から順に、Ｔ＝ｎ−１（ｎは１以上の正数）の信号レベルとＴ＝ｎの信号レベルとが一致するか否かを判断していく。
【００３２】
両者が一致しない時、即ち信号レベルが変化する時刻Ｔを探索する。そして、信号レベルが変化した時に、ステップＳ５６において、変化した時刻Ｔの１クロック前の時刻Ｔ＝ｎ−１における信号レベルを基準信号レベルとする。この基準信号レベルに基づいて、信号パターンの抽出を開始する。
【００３３】
ステップＳ５８において、演算部１２において、時刻Ｔ＝ｎのときの信号レベルを取得する。
【００３４】
ステップＳ５９において、時刻Ｔ＝ｎにおける信号レベルがＴ＝ｎ−１における基準信号レベルと完全に一致しないか否かを判断する。一致しない間はステップＳ５７へ戻って同じ処理を繰り返し、一致するとステップＳ６０へ移行する。
【００３５】
ステップＳ６０において、時刻Ｔ＝ｎから△Ｔが経過するまので間、即ち信号Ｔｎから信号Ｔ（ｎ＋△Ｔ）の間、Ｔ＝ｎ−１における基準信号レベルと一致しないか否かを判断する。一致しない間はステップＳ５７へ戻って同じ処理を繰り返し、一致するとステップＳ６１へ移行して信号パターンの取得処理を終了する。
【００３６】
このように、全ての信号レベルが基準信号レベルと一致し、かつ時刻Ｔ＝ｎからΔＴが経過するまでの間、基準信号レベルで維持されている場合に、時刻Ｔ＝ｎを信号終了時刻として信号パターンの取得処理を終える。
【００３７】
ある信号パターンの取得処理を終了すると、次の信号パターンの取得処理を開始する。そして、信号時系列データが全てなくなるまで、このような処理を続けていく。尚、時刻の単位Ｔをクロック単位とし、ΔＴの最小値は実行時に設定可能でありここでは「０」とする。
【００３８】
図４に、上述した手順によって信号パターンの開始時刻を探索する手法の具体例を示す。
【００３９】
図４（ａ）において、開始時刻Ｔ＝０における波形データを示す。さらに、図４（ｂ）に時刻Ｔ＝１における波形データを示す。
【００４０】
入力信号（１）及び（２）が制御信号に相当し、両者が組み合わせられて入力のタイミングが規定され、両者が共に論理「０」から論理「１」に変化したとき、入力信号（３）がアドレス等のデータとして与えられる。
【００４１】
入力信号（４）が論理「０」、かつ出力信号（３）が論理「１」で初期状態となる。
【００４２】
出力信号（１）及び（２）が制御信号に相当し、両者が組み合わせられて出力のタイミングが規定され、両者が共に論理「０」から論理「１」に変化したとき、出力信号（４）がデータとして出力される。
【００４３】
開始時刻Ｔ＝０からＴ＝１において、入力信号（１）及び（２）、出力信号（１）及び（２）の信号レベルは論理「０」のままであり、変化していない。
【００４４】
しかし、図４（ｃ）に示された時刻Ｔ＝２になると、入力信号（１）及び（２）が論理「０」レベルから「１」レベルへ変化している。
【００４５】
このような時刻Ｔ＝２を信号パターンの取得開始時刻とし、時刻Ｔ＝１における信号レベルを基準信号パターンとする。
【００４６】
図５に、信号パターンの取得処理を開始してからこの処理を終了する際の手法について示す。
【００４７】
上述した図４における時刻Ｔ＝２の信号パターン取得開始時における波形レベルを図５（ａ）に示す。この時刻Ｔ＝２から、図５（ｂ）に示された時刻Ｔ＝ＥＮＤ−１に至るまでの間、信号レベルは基準信号レベルと一致しない。
【００４８】
図５（ｃ）に示された時刻Ｔ＝ＥＮＤにおいて、全ての信号レベルが基準信号レベルに戻る。そして、時刻Ｔ＝ＥＮＤから時刻Ｔ＝ＥＮＤ＋ΔＴの時間において信号レベルが変化していない場合に、時刻Ｔ＝ＥＮＤを信号パターン抽出終了時刻とし、今回の信号パターンの取得処理を終了する。そして、次の信号パターンの取得処理を開始する。
【００４９】
この後、抽出された信号は数値データに置換される。図６に、信号パターンから数値データへ置換する処理の一例を示す。ローレベルを論理「０」、ハイレベルを論理「１」とする。３つの制御信号と、複数ビット幅の３つのデータを含む４ビット幅を有する６つの信号を、横４行、縦６列のマトリクス状の数値データに変換する。
【００５０】
次に、図１におけるステップＳ１２、Ｓ２２の信号パターンの分類処理について述べる。
【００５１】
分類処理には、接続定義ファイルで与えられる信号のみを使用する。後述するように、２分木アルゴリズムにより信号パターンの分類を行う。尚、ここでは分類の一例として２分木アルゴリズムを用いて説明するが、これに限らず他の分類アルゴリズムを用いてもよい。
【００５２】
信号パターンの分類処理の手順を図７のフローチャートに示す。
【００５３】
抽出された信号パターンがｎ（ｎは０以上の整数）個、信号パターン（Ｐｎ｛ｎ＝０， １，…，４｝）に対して処理を行うものと仮定する。信号パターンは、図８に示されたように、２ビット幅を有する３個の信号が、図６を用いて説明したような数値データに変換されて横２行、縦３列のマトリクス状のデータとして表されている。
【００５４】
ステップＳ７０として、信号パターンＰ０を基準信号パターンＰとする。
【００５５】
ステップＳ７１においてｎ＝１とし、ステップＳ７２において信号パターンＰ１を取得する。
【００５６】
ステップＳ７３として、Ｐ＝Ｐ１であるか否かを判断し、Ｐ＝Ｐ１であるときステップＳ７４へ移行してこの信号パターンＰ１を信号パターンＰ０と同じグループＰに追加する。Ｐ＝Ｐ１でないときステップＳ７５へ移行する。
【００５７】
ステップＳ７５において、Ｐ＞Ｐ１か否かを大小比較を行う。Ｐ＞Ｐ１でない場合ステップＳ７７へ移行し、Ｐ’＞Ｐという信号パターンＰ’が既に存在するか否かを判断する。
【００５８】
Ｐ’＞Ｐである信号パターンＰ’が存在する場合、ステップＳ７９へ移行して、この信号パターンＰ’を新たな基準信号パターンＰ（＝Ｐ’）としてステップＳ７３へ戻って上記処理を行う。
【００５９】
Ｐ’＞Ｐである信号パターンＰ’が存在しない場合、ステップＳ７８へ移行し、信号パターンＰ１は登録されていない新たな信号パターンであるとしてこれをＰ１として登録し、ステップＳ８０においてｎに１を加算してステップ７２へ戻る。
【００６０】
ステップＳ７５において、Ｐ＞Ｐ１である場合にステップＳ７６へ移行し、Ｐ’＜Ｐであるような既存の信号パターンＰ’が存在するか否かを判断する。
【００６１】
Ｐ’＜Ｐである信号パターンＰ’が存在する場合、ステップＳ７９へ移行して、この信号パターンＰ’を新たな基準信号パターンＰ（＝Ｐ’）としてステップＳ７３へ戻って上記処理を行う。
【００６２】
Ｐ’＜Ｐである信号パターンＰ’が存在しない場合、ステップＳ７８へ移行し、信号パターンＰ１は登録されていない新たな信号パターンであるとしてこれをＰ１として登録し、ステップＳ８０においてｎに１を加算してステップ７２へ戻る。
【００６３】
ステップＳ８０においてｎ＝２となり、ステップＳ７２において信号パターンＰ２を取得する。以降、ｎ＝１のときと同様な処理を繰り返す。
【００６４】
図８に、信号パターンを分離する一例を示す。
【００６５】
信号パターンＰ０が、「１０、１０、００」、信号パターンＰ１が、「１０、０１、００」、信号パターンＰ２が、「００、００、１０」、信号パターンＰ３が、「１１、１０、００」、信号パターンＰ４が、「１０、０１、００」であるとする。尚、複数ビット幅信号ＸP0〜ＸP4は比較処理に用いない。
【００６６】
（段階１）
ステップＳ７０として、信号パターンＰ０を取得しこれを基準パターンＰとする。
【００６７】
（段階２）
ステップＳ７１、Ｓ７２として、信号パターンＰ１を取得する。そして、ステップＳ７３において基準パターンＰ（＝Ｐ０）と信号パターンＰ１とが同一か否か判断し、同一でないためステップＳ７５へ移行する。ステップＳ７５において、ＰとＰ１の大小を比較し、Ｐ＞Ｐ１であるためステップＳ７６へ移行する。Ｐより小さい信号パターンＰ’が未だ存在しないため、ステップＳ７８において、図８における基準信号パターンＰ（Ｐ＝０）の下方、左側にこの信号パターンＰ１を配置して登録する。
【００６８】
（段階３）
ステップＳ７１、Ｓ７２として、信号パターンＰ２を取得する。ステップＳ７３において基準パターンＰ（＝Ｐ０）と信号パターンＰ２とが同一か否か判断し、同一でないためステップＳ７５へ移行する。ステップＳ７５において、ＰとＰ２の大小を比較し、Ｐ＞Ｐ２であるためステップＳ７６へ移行する。Ｐより小さい信号パターンＰ’が既に登録されているため、この信号パターンＰ’、即ちここでは信号パターンＰ１を新たな基準パターンＰとする。
【００６９】
ステップＳ７３において基準パターンＰ（＝Ｐ１）と信号パターンＰ２とが同一か否か判断し、同一でないためステップＳ７５へ移行する。ステップＳ７５において、ＰとＰ２の大小を比較し、Ｐ＞Ｐ２であるためステップＳ７６へ移行する。Ｐより小さい信号パターンＰ’は未だ存在しないため、ステップＳ７８において、図８における基準信号パターンＰ（Ｐ＝１）の下方、左側にこの信号パターンＰ２を配置して登録する。
【００７０】
（段階４）
ステップＳ７１、Ｓ７２として、信号パターンＰ３を取得する。そして、ステップＳ７３において基準パターンＰ（＝Ｐ０）と信号パターンＰ３とが同一か否か判断し、同一でないためステップＳ７５へ移行する。ステップＳ７５において、ＰとＰ３の大小を比較し、Ｐ＞Ｐ３でないためステップＳ７７へ移行する。Ｐより大きい信号パターンＰ’が未だ存在しないため、ステップＳ７８において、図８における基準信号パターンＰ（Ｐ＝０）の下方、右側にこの信号パターンＰ３を配置して登録する。
【００７１】
（段階５）
ステップＳ７１、Ｓ７２として、信号パターンＰ４を取得する。そして、ステップＳ７３において基準パターンＰ（＝Ｐ０）と信号パターンＰ４とが同一か否か判断し、同一でないためステップＳ７５へ移行する。ステップＳ７５において、ＰとＰ４の大小を比較し、Ｐ＞Ｐ１であるためステップＳ７６へ移行する。Ｐより小さい信号パターンＰ’が既に存在するため、この信号パターンＰ’、即ちここでは信号パターンＰ１を新たな基準パターンＰとする。
【００７２】
ステップＳ７３において基準パターンＰ（＝Ｐ１）と信号パターンＰ４とが同一か否か判断する。同一であるため、ステップＳ７４においてこの信号パターンＰ４を信号パターンＰ１と同一のグループＣＰ１に登録する。
【００７３】
ここで、図７におけるステップＳ７６、Ｓ７７における信号パターンの大小比較の手法について、図９を用いて説明する。図９（ａ）にマトリクス状の信号配列（Ｐ００、Ｐ１０、…、Ｐｎ０、Ｐ０１、Ｐ１１、…、Ｐｎ１、…、Ｐ０ｍ、Ｐ１ｍ、…、Ｐｎｍ）（但し、ｎ、ｍはそれぞれ１以上の整数）を示し、図９（ｂ）にＣ言語によるプログラムの一例を示す。
【００７４】
例えば、図６に示された信号パターンでは、横４行（ｎ＝４）、縦６列（ｍ＝６）の数値データとなり、図８に示された信号パターンでは横２行（ｎ＝２）、縦３列（ｍ＝３）の数値データとなる。
【００７５】
そして、図９に示されたように、図中横方向に、１行目のＰ00から始まってＰ10、…、Ｐn0へ順に数値を比較する。全て同じ場合は、２行目のＰ01、Ｐ11、…、Ｐn1へ順に比較する。これらも全て同じ場合は、３行目のＰ02、Ｐ12、…、Ｐn2へ順に比較する。そして、１番目に発見された異なる数値の大小で比較する。
【００７６】
例えば、図８に示された信号パターンＰ０を基準信号パターンＰとし、これと信号パターンＰ１との比較について述べる。信号パターンＰ（＝Ｐ０）における１列目のＰ00に相当する値「１」と、信号パターンＰ１における１列目のＰ00に相当する値「１」とを比較する。
【００７７】
一致しているため信号パターンＰにおけるＰ10に相当する値「０」と、信号パターンＰ１における１列目のＰ10に相当する値「０」とを比較する。
【００７８】
一致しているため、信号パターンＰにおける２列目のＰ01に相当する値「１」と、信号パターンＰ１におけるＰ01に相当する値「０」とを比較する。異なっており、基準信号パターンＰが信号パターンＰ１より大であると判断する。
【００７９】
図１におけるステップＳ１４の信号パターンの対応付けの処理の手法について、図１０にフローチャートを示す。さらに図１１にその具体例として、モジュールＡの入力端子ｉｎＡ０、ｉｎＡ１とモジュールＢの出力端子ｏｕｔＢ０、ｏｕｔＢ１との接続、モジュールＡの出力端子ｏｕｔＡ０、ｏｕｔＡ１とモジュールＢの入力端子ｉｎＢ０、ｉｎＢ１との間における接続を検証する手順を示す。
【００８０】
図１０におけるステップＳ１０１として、外部から与えられる接続定義ファイルから、モジュールＡ、Ｂの接続情報を取得する。
【００８１】
図１１に示された例では、モジュールＡの入力端子ｉｎＡ０とモジュールＢの出力端子ｏｕｔＢ０、モジュールＡの入力端子ｉｎＡ１とモジュールＢの出力端子ｏｕｔＢ１、モジュールＡの出力端子ｏｕｔＡ０とモジュールＢの入力端子ｉｎＢ０、モジュールＡの出力端子ｏｕｔＡ１とモジュールＢの入力端子ｉｎＢ１との接続について検証を行っている。ここで、モジュールＡの入力端子ｉｎＡ０、ｉｎＡ１、出力端子ｏｕｔＡ０、モジュールＢの出力端子ｏｕｔＢ０、ｏｕｔＢ１、入力端子ｉｎＢ０、ｉｎＢ１において制御信号の入出力が行われ、モジュールＡの出力端子ｏｕｔＡ１、モジュールＢの入力端子ｉｎＢ１が複数ビット幅のデータの入出力が行われる。
【００８２】
モジュールＡには、外部から入力端子ｉｎＡ２より信号が入力され、出力端子ｏｕｔＡ２から外部へ信号が出力される。モジュールＢには、外部から入力端子ｉｎＢ２より信号が入力され、出力端子ｏｕｔＢ２から外部へ信号が出力される。
【００８３】
モジュールＡの入力端子ｉｎＡ０、ｉｎＡ１に「１０」、「００」の入力値が与えられ、これがモジュールＢの出力端子ｏｕｔＢ０、ｏｕｔＢ１からの出力値「１０」、「００」に一致している。
【００８４】
モジュールＡの出力端子ｏｕｔＡ０、ｏｕｔＡ１から「１０」、「ｘｘ」の出力値が出力され、これがモジュールＢの入力端子ｉｎＢ０、ｉｎＢ１への入力値「００」、「ｘｘ」に一致している。
【００８５】
モジュールＡには外部から入力端子ｉｎＡ２に「００」が入力され、出力端子ｏｕｔＡ２から外部へ「ｙｙ」が出力される。
【００８６】
モジュールＢには外部から入力端子ｉｎＢ２に「１０」が入力され、出力端子ｏｕｔＢ２から外部へ「ｗｗ」が出力される。
【００８７】
図１０のステップＳ１０２において、接続が正しいか否かを判断する。ここではモジュールＡの２本の入力端子とモジュールＢの２本の出力端子、モジュールＡの２本の出力端子とモジュールＢの２本の入力端子とが接続されており、正しいと判断されステップＳ１０４へ移行する。例えば、モジュールＡの２本の入力端子とモジュールＢの３本の出力端子とを接続しようとしている場合、あるいはモジュールＡの１本の入力端子とモジュールＢの１本の入力端子とを接続しようとしている場合のように接続が正しくない場合は、ステップＳ１０３へ移行しエラーとして終了する。
【００８８】
ステップＳ１０４からステップＳ１１０に至る処理により、これらの接続されている各信号線のうち、複数ビット幅の信号を除いた信号について、例えばデータを除く入出力のタイミングを規定する制御信号のみについて、モジュールＡとモジュールＢとの間で比較を行う。ここで、モジュールＡの複数ビット幅の信号とモジュールＢの複数ビット幅の信号とを比較して一致又は不一致を判断していく順序は、図９を用いて説明した手法に従う。
【００８９】
ステップＳ１０４に示されたように、Ｉ（Ｉは０以上の整数）とＪ（Ｊは０以上の整数）とにそれぞれ初期値として「０」を与える。
【００９０】
ステップＳ１０５において、モジュールＡの信号パターンＩとモジュールＢの信号パターンＪとが一致するかどうかを判断する。一致する場合はステップＳ１１１へ移行する。一致しない場合は、このような判断を、ステップＳ１０６〜Ｓ１０８により、ＩとＪの間が最終値に至るまで行う。いずれも一致しなかった場合は、ステップＳ１１０へ移行し、全て不一致であり接続検証はエラーであったと判断する。
【００９１】
モジュールＡの信号パターンＩ（Ｉ＝０からＩEND）、モジュールＢの信号パターンＪ（Ｊ＝０からＪEND）のうち、少なくともいずれか一組みが一致すると、ステップＳ１１１へ移行する。
【００９２】
ステップＳ１１１からステップＳ１１８までの処理により、複数ビット幅の信号を含めて、例えばデータ及び制御信号を含む全ての信号が完全に一致するか否かを検証する。
【００９３】
ステップＳ１１１において、Ｋ（Ｋは０以上の整数）、Ｌ（Ｌは０以上の整数）にそれぞれ初期値として「０」を与える。
【００９４】
ステップＳ１１２において、モジュールＡの複数ビット幅の信号パターンＫとモジュールＢの複数ビット幅の信号パターンＬとが一致するかどうかを判断する。一致する場合はステップＳ１１３へ移行し、複数ビット幅の信号パターンが完全に一致する組み合わせが少なくとも一組存在すると判断する。
【００９５】
一致しない場合は、このような判断を、ステップＳ１１４〜Ｓ１１７により、ＬとＫの間が最終値に至るまで行う。いずれも一致しなかった場合は、ステップＳ１１８へ移行し、複数ビット幅信号としてのデータも含む全ビット幅においては全て不一致であるが、データを除く制御信号に関しては一致する組み合わせが存在すると判断する。
【００９６】
モジュールＡの複数ビット幅の信号パターンＫ（Ｋ＝０からＫEND）、モジュールＢの複数ビット幅の信号パターンＬ（Ｌ＝０からＬEND）のうち、少なくともいずれか一組みが一致したときはステップＳ１１３へ移行する。上述のように、複数ビット幅のデータを含む信号パターンが完全に一致する組み合わせが少なくとも一組存在すると判断する。
【００９７】
このような比較処理の結果、ステップＳ１１３に到達し、複数ビット幅のデータを含む全信号が完全に一致する信号パターンの組み合わせが少なくとも一組見つかった場合、モジュールＡ、モジュールＢの入力信号（ｉｎＡ２、ｉｎＢ２）をシミュレーションを行う際の接続検証用の入力信号とし、モジュールＡ、モジュールＢの出力信号（ｏｕｔＡ２、ｏｕｔＢ２）をシミュレーション時の接続検証用の期待値信号とする。
【００９８】
このような場合の一例を図１１において「複数ビット幅信号を含め完全に一致」した場合として示す。
【００９９】
制御信号に関し、モジュールＡの入力端子ｉｎＡ０の値「１０」、ｉｎＡ１の値「００」、出力端子ｏｕｔＡ０の値「００」と、モジュールＢの出力端子ｏｕｔＢ０の値「１０」、ｏｕｔＢ１の値「００」、入力端子ｉｎＢ０の値「００」とが一致している。複数ビット幅のデータに関し、モジュールＡの出力端子ｏｕｔＡ１の値「ＤＤ」とモジュールＢの入力端子ｉｎＢ１の値「ＤＤ」とが一致している。
【０１００】
このような場合は接続可能であると判断し、モジュールＡの入力端子ｉｎＡ０、ｉｎＡ１、出力端子ｏｕｔＡ０、ｏｕｔＡ１と、モジュールＢの出力端子ｏｕｔＢ０、ｏｕｔＢ１、入力端子ｉｎＢ０、ｉｎＢ１とを接続する。
【０１０１】
そしてシミュレーションを行い、モジュールＡの入力端子ｉｎＡ２に外部から「００」を与え、モジュールＢの入力端子ｉｎＢ２に外部から「１０」を与え、この場合の期待値としてモジュールＡの出力端子ｏｕｔＡ２から「ＸＸ」、モジュールＢの出力端子ｏｕｔＢ２から「ＹＹ」が出力されることを検証する。
【０１０２】
ステップＳ１１８に到達し、複数ビット幅の信号を除いて一致するパターンが見つかった場合、モジュールＡの出力信号（ｏｕｔＡ２）を、モジュールＢの単体検証の入力信号として、出力値を得る。モジュールＡ、モジュールＢに入力値を与えてシミュレーションを行い、出力値と単体検証のモジュールＡの出力値、単体検証から得られたモジュールＢの出力値とが一致するか否かを検証する。
【０１０３】
このような場合の一例を図１１において「複数ビット幅信号を除き一致」した場合として示す。
【０１０４】
制御信号に関し、モジュールＡの入力端子ｉｎＡ０、ｉｎＡ１、出力端子ｏｕｔＡ０の値と、モジュールＢの出力端子ｏｕｔＢ０、ｏｕｔＢ１、入力端子ｉｎＢ０の値とが一致している。しかし、複数ビット幅のデータに関し、モジュールＡの出力端子ｏｕｔＡ１の値「ＤＤ」と、モジュールＢの入力端子ｉｎＢ１の値「ＤＥ」とが不一致である。
【０１０５】
このような場合、制御信号は相互に一致している。複数ビット幅のデータを整合させるために、モジュールＡの出力端子ｏｕｔＡ１の値「ＤＤ」に、モジュールＢの入力端子ｉｎＢ１の値を一致させるようにする。
【０１０６】
モジュールＢ単体における、制御信号に関する入力端子ｉｎＢ０、複数ビット幅のデータに関する入力端子ｉｎＢ１の値をそれぞれ「００」、「ＤＤ」とする。モジュールＢ単体における、制御信号に関する出力端子ｏｕｔＢ０、複数ビット幅のデータに関する出力端子ｏｕｔＢ１の値を「００」、「ＤＥ」とする。
【０１０７】
この状態で、モジュールＡの入力端子ｉｎＡ０、ｉｎＡ１、出力端子ｏｕｔＡ０、ｏｕｔＡ１と、モジュールＢの出力端子ｏｕｔＢ０、ｏｕｔＢ１、入力端子ｉｎＢ０、ｉｎＢ１とを接続する。
【０１０８】
そしてシミュレーションを行い、モジュールＡの入力端子ｉｎＡ２に外部から「００」を与え、モジュールＢの入力端子ｉｎＢ２に外部から「１０」を与え、この場合の期待値としてモジュールＡの出力端子ｏｕｔＡ２から「ＸＸ」、モジュールＢの出力端子ｏｕｔＢ２から「ＹＹ」が出力されることを検証する。
【０１０９】
ステップＳ１１０に到達し、比較処理の結果一致する波形パターンが全く見つからない場合は、モジュールＡとＢとの間で仕様が一致していないことが判明し、接続不能として検証を終了する。
【０１１０】
図１１において「不一致」として示された例では、制御信号に関し、モジュールＡの入力端子ｉｎＡ１の値「００」とモジュールＢの出力端子ｏｕｔＢ１の値「０１」とが不一致である。また、複数ビット幅のデータに関し、モジュールＡの出力端子ｏｕｔＡ１の値「ＤＤ」とモジュールＢの入力端子ｉｎＢ１の値「ＤＥ」とが不一致である。このような場合、モジュールＡとモジュールＢとの接続は不能であると判断し、エラーとして終了する。
【０１１１】
上記実施の形態によれば、接続すべきモジュール間の接続検証を、それぞれのモジュールの単体検証の結果を用いることで、人手を介さず、静的かつ自動的に行うことができるため、処理効率を向上させ接続検証に要する時間及びコストを削減することが可能である。
【０１１２】
上述した実施の形態は一例であって本発明を限定するものではなく、本発明の技術的範囲内において様々に変形することが可能である。
【図面の簡単な説明】
【０１１３】
【図１】本発明の実施の形態による複数の回路モジュール間の接続検証方法における処理の手順を示すフローチャート。
【図２】同接続検証方法を実行する検証装置の構成を示すブロック図。
【図３】同接続検証方法における信号パターンの取得処理の手順を示すフローチャート。
【図４】同接続検証方法における信号パターンの取得開始時点を示すタイムチャート。
【図５】同接続検証方法における信号パターンの取得終了時点を示すタイムチャート。
【図６】同接続検証方法における信号パターンから数値データへの置き換えを示す説明図。
【図７】同接続検証方法における信号パターンの分類処理を示すフローチャート。
【図８】同接続検証方法における信号パターンの分類処理の一例を示す説明図。
【図９】同接続検証方法における信号パターンの分類処理における信号パターンの大小比較の手法の一例を示す説明図。
【図１０】同接続検証方法における信号の対応付け処理の手順を示すフローチャート。
【図１１】同接続検証方法における回路モジュールの接続後の信号の対応付けを示す説明図。
【符号の説明】
【０１１４】
１１  入力部
１２  演算部
１３  記憶部
１４  出力部
【図１】
2009053930.tif 000003
【図２】
2009053930.tif 000004
【図３】
2009053930.tif 000005
【図４】
2009053930.tif 000006
【図５】
2009053930.tif 000007
【図６】
2009053930.tif 000008
【図７】
2009053930.tif 000009
【図８】
2009053930.tif 000010
【図９】
2009053930.tif 000011
【図１０】
2009053930.tif 000012
【図１１】
2009053930.tif 000013