(57)【特許請求の範囲】
【請求項１】
記憶手段にアクセス可能なコンピュータを、
ユーザにより作成された１つ以上のテストパターン群を前記記憶手段に格納する第１テストパターン格納手段と、
ランダムなテストパターンを順次発生するランダムパターン発生手段と、
前記ランダムパターン発生手段により発生するランダムなテストパターンを前記記憶手段に格納する第２テストパターン格納手段と、
前記第２テストパターン格納手段により前記記憶手段に格納されたテストパターンと前記第１テストパターン格納手段により前記記憶手段に格納された前記テストパターン群の先頭にあるテストパターンとの一致を監視し、一致を検知すると、一致を検知した前記テストパターン群に定められているテストパターンの順番に前記テストパターンを出力し、一致を検知しなければ、前記第２テストパターン格納手段により前記記憶手段に格納されている前記テストパターンを、格納した順番に出力するパターン制御手段と
して機能させる為のテストデータ生成プログラム。
【請求項２】
前記パターン制御手段は、一致を検知すると、一致を検知した前記テストパターン群に定められている先頭にあるテストパターンから最後にあるテストパターンまで、順番通りになるように前記記憶手段より、前記第２テストパターン格納手段により格納された前記テストパターンを読み出して出力することを特徴とする請求項１記載のテストデータ生成プログラム。
【請求項３】
前記第１テストパターン格納手段は、優先度が設定されている前記１つ以上のテストパターン群を前記記憶手段に格納しており、
前記パターン制御手段は、前記優先度に従った順番で、前記テストパターン群に定められているテストパターンの順番に前記テストパターンを出力することを特徴とする請求項１又は２記載のテストデータ生成プログラム。
【請求項４】
前記ランダムパターン発生手段は、テスト対象の集積回路の仕様上、順次発生する前記テストパターンの内容に制約事項がある場合、その制約事項に応じた前記テストパターンを順次発生することを特徴とする請求項１乃至３何れか一項記載のテストデータ生成プログラム。
【請求項５】
前記テストデータ生成プログラムは、テストデータ生成装置の属性を設定するファイルと、テスト対象の集積回路の仕様上、順次発生する前記テストパターンの内容に制約がある場合、その制約事項を設定するファイルと、前記第１テストパターン格納手段に格納される前記１つ以上のテストパターン群を設定するファイルとに基づき、生成されることを特徴とする請求項１乃至４何れか一項記載のテストデータ生成プログラム。
【請求項６】
テストデータを生成して出力するテストデータ生成装置であって、
ユーザにより作成された１つ以上のテストパターン群を格納する第１テストパターン格納手段と、
ランダムなテストパターンを順次発生するランダムパターン発生手段と、
前記ランダムパターン発生手段により発生するランダムなテストパターンを格納する第２テストパターン格納手段と、
前記第２テストパターン格納手段に格納されたテストパターンと前記第１テストパターン格納手段に格納された前記テストパターン群の先頭にあるテストパターンとの一致を監視し、一致を検知すると、一致を検知した前記テストパターン群に定められているテストパターンの順番に前記テストパターンを出力し、一致を検知しなければ、前記第２テストパターン格納手段に格納されている前記テストパターンを、格納した順番に出力するパターン制御手段と
を有することを特徴とするテストデータ生成装置。
【請求項７】
テストデータを生成して出力するテストデータ生成装置におけるテストデータ生成方法であって、
記憶手段にアクセス可能なコンピュータを、
ユーザにより作成された１つ以上のテストパターン群を前記記憶手段に格納する第１テストパターン格納手順と、
ランダムなテストパターンを順次発生するランダムパターン発生手順と、
前記ランダムパターン発生手段により発生するランダムなテストパターンを前記記憶手段に格納する第２テストパターン格納手順と、
前記第２テストパターン格納手順で前記記憶手段に格納されたテストパターンと前記第１テストパターン格納手順で前記記憶手段に格納された前記テストパターン群の先頭にあるテストパターンとの一致を監視する監視手順と、
前記監視手順で一致を検知すると、一致を検知した前記テストパターン群に定められているテストパターンの順番に前記テストパターンを出力し、一致を検知しなければ、前記第２テストパターン格納手段により前記記憶手段に格納されている前記テストパターンを、格納した順番に出力するパターン制御手順と
を有することを特徴とするテストデータ生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テストデータ生成プログラム、テストデータ生成装置及びテストデータ生成方法に係り、特に集積回路のテストデータを生成するテストデータ生成プログラム、テストデータ生成装置及びテストデータ生成方法に関する。
【背景技術】
【０００２】
近年、電子機器等に用いられているＬＳＩ（Large Scale Integration）は、より大規模集積化し、従来に比べて機能が多種複雑化している。ＬＳＩは一般的にＨＤＬ（Hardware Description Language）を用いたＲＴＬ（Register Transfer Level）記述で設計を行っている。また、ＬＳＩの設計では、その設計の正当性を検証するために、シミュレータ等を用いた論理検証を行っている。
【０００３】
論理検証では設計されたＬＳＩの内容の全てを検証する必要がある。設計されたＬＳＩの内容を、どれだけ検証したかを示す指標としては、ガバレッジ（Coverage）が使用されている。カバレッジには、コードカバレッジ，機能カバレッジ，状態（遷移）カバレッジなど、いくつかの種類がある。
【０００４】
コードカバレッジは、ＲＴＬのソースコードをどれだけ網羅したかを表している。機能カバレッジは、ＬＳＩの機能をどれだけ網羅したかを表している。また、状態（遷移）カバレッジはＬＳＩ内の状態及び状態遷移をどれだけ網羅したかを表している。
【０００５】
近年の多種複雑化したＬＳＩでは、カバレッジを１００％にすることが難しいが、網羅しきれなかった（検証できなかった）部分にバグが潜んでいることも多く、なおざりにできない。この為、近年の多種複雑化したＬＳＩではカバレッジ（検証網羅性）を向上させるため、テストデータや設計を工夫する必要が生じている。
【０００６】
検証網羅性を向上させるための工夫として、近年では検証担当者が作成した検証項目からテストデータを作成して行う検証（以下、ダイレクト検証と呼ぶ）に加えて、ランダムに発生したテストデータにより行う検証（以下、ランダム検証と呼ぶ）が用いられるようになった。
【０００７】
従来、ＬＳＩの論理検証においては、ダイレクト検証のみを実施する方法、ランダム検証のみを実施する方法、ダイレクト検証及びランダム検証の両方を逐次的に実施する方法があった。例えば特許文献１には、テストパターンの作成に関する発明であって、基本パターン発生部，優先パターン発生部，いずれかを選択するセレクタからなる検証支援方法が開示されている。
【特許文献１】特開２００７−１８８４４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来、ＬＳＩの論理検証においては、ダイレクト検証のみを実施する方法、ランダム検証のみを実施する方法、ダイレクト検証及びランダム検証の両方を逐次的に実施する方法の何れを利用したとしても、カバレッジを１００％にする（もしくは１００％に近づける）ことが難しかった。
【０００９】
例えば「ある任意の状態において、ある特定の条件が与えられたときに、状態Ｂに遷移する」という状態遷移が設計されているＬＳＩ内の状態遷移（ステートマシン）の論理検証について考える。このＬＳＩ内における状態遷移を、ダイレクト検証のみを実施する方法、ランダム検証のみを実施する方法、ダイレクト検証及びランダム検証の両方を逐次的に実施する方法の何れかを用いて論理検証しようとした場合は、カバレッジの点で以下の問題が生じていた。
【００１０】
ダイレクト検証のみを実施する場合は「任意の状態」の網羅が難しかった。ランダム検証のみを実施する場合は「特定の条件」が与えられにくいという問題があった。ダイレクト検証及びランダム検証の両方を逐次的に実施する場合は「任意の状態において、ある特定の条件が与えられる」という場合を網羅することが難しかった。
【００１１】
なお、特許文献１は、ある機能の正当性を優先パターン発生部で発生する優先パターンで早めに論理検証しつつ、基本パターン発生部で発生した基本パターンで広範囲の論理検証を行うものであって、「任意の状態において、ある特定の条件が与えられる」という場合を網羅することが難しいという問題を解決するものではない。
【００１２】
本発明は、上記の点に鑑みなされたもので、論理検証における検証網羅性を向上させることが可能なテストデータ生成プログラム、テストデータ生成装置及びテストデータ生成方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するため、本発明は、記憶手段にアクセス可能なコンピュータを、ユーザにより作成された１つ以上のテストパターン群を前記記憶手段に格納する第１テストパターン格納手段と、ランダムなテストパターンを順次発生するランダムパターン発生手段と、前記ランダムパターン発生手段により発生するランダムなテストパターンを前記記憶手段に格納する第２テストパターン格納手段と、前記第２テストパターン格納手段により前記記憶手段に格納されたテストパターンと前記第１テストパターン格納手段により前記記憶手段に格納された前記テストパターン群の先頭にあるテストパターンとの一致を監視し、一致を検知すると、一致を検知した前記テストパターン群に定められているテストパターンの順番に前記テストパターンを出力し、一致を検知しなければ、前記第２テストパターン格納手段により前記記憶手段に格納されている前記テストパターンを、格納した順番に出力するパターン制御手段として機能させる為のテストデータ生成プログラムであることを特徴とする。
【００１４】
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【００１５】
上述の如く、本発明によれば、論理検証における検証網羅性を向上させることが可能なテストデータ生成プログラム、テストデータ生成装置及びテストデータ生成方法を提供可能である。
【発明を実施するための最良の形態】
【００１６】
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、本実施例では集積回路の一例としてＬＳＩのテストパターンを生成する例を説明するが、テストパターンにより論理検証を行う如何なる集積回路であってもよい。
【００１７】
図１は、テストデータ生成装置の一例の構成図である。テストデータ生成装置は、それぞれバスＢで相互に接続されている入力装置１１，出力装置１２，ドライブ装置１３，補助記憶装置１４，主記憶装置１５，演算処理装置１６およびインターフェース装置１７で構成される。
【００１８】
入力装置１１はキーボードやマウスなどで構成され、各種信号を入力するために用いられる。出力装置１２はディスプレイ装置などで構成され、各種ウインドウやデータ等を表示するために用いられる。インターフェース装置１７は、外部の機器やネットワークと接続する為に用いられる。
【００１９】
本発明のテストデータ生成プログラムは、テストデータ生成装置を制御する各種プログラムの少なくとも一部である。テストデータ生成プログラムは例えば記録媒体１８の配布やネットワークからのダウンロードなどによって提供される。テストデータ生成プログラムを記録した記録媒体１８は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００２０】
テストデータ生成プログラムを記録した記録媒体１８がドライブ装置１３にセットされると、テストデータ生成プログラムは記録媒体１８からドライブ装置１３を介して補助記憶装置１４にインストールされる。ネットワークからダウンロードされたテストデータ生成プログラムは、インターフェース装置１７を介して補助記憶装置１４にインストールされる。
【００２１】
テストデータ生成装置は、インストールされたテストデータ生成プログラムを格納すると共に、必要なファイル，データ等を格納する。主記憶装置１５は、補助記憶装置１４からテストデータ生成プログラムを読み出して格納する。そして、演算処理装置１６は主記憶装置１５に格納されたテストデータ生成プログラムに従って、後述するような各種処理を実現している。なお、以下の実施例ではテストデータ生成プログラムをテストデータ生成モジュールと呼ぶ。
【００２２】
図２は、テストデータ生成モジュールが生成するテストデータ（テストパターン）の一例のイメージ図である。テストデータ生成モジュールが生成するテストパターンはランダムテストパターンが基本となっており、後述のタイミングでダイレクトテストパターンが割り込む形となる。ダイレクトテストパターンは、検証担当者が作成したテストパターンを言う。ダイレクトテストパターンは複数定義することができ、また、それぞれに優先度を設定することができる。ダイレクトテストパターンは、優先度の順番でランダムテストパターンに割り込む。図２の例では、優先度１のダイレクトテストパターンが最初にランダムテストパターンに割り込み、優先度２のダイレクトテストパターンが次にランダムテストパターンに割り込んだ例を示している。
【００２３】
図３は、テストデータ生成モジュールの一例の構成図である。図３のテストデータ生成モジュール２０は、ランダムパターン発生部２１，パターン制御部２２，ＬＳＩ  Ｉ／Ｆ変換部２３，パターンＤＢ２４，ダイレクトＤＢ２５を有する構成である。
【００２４】
ランダムパターン発生部２１はランダムパターン発生関数により実現される。ランダムパターン発生関数はランダムなテストパターンを発生し、パターンＤＢに格納する。
【００２５】
パターン制御部２２はパターン制御関数により実現される。パターン制御関数はランダムテストパターンとダイレクトテストパターンとの切り替えを制御し、ランダムテストパターン及びダイレクトテストパターンのどちらか一方をＬＳＩ  Ｉ／Ｆ変換部２３へ出力する。なお、パターン制御関数は検証対象となるＬＳＩからの受信完了信号に基づいたタイミングで、ランダムテストパターン及びダイレクトテストパターンのどちらか一方を出力する。受信完了信号は、次にランダムテストパターン及びダイレクトテストパターンのどちらか一方を出力するタイミングを示している。
【００２６】
ＬＳＩ  Ｉ／Ｆ変換部２３はＬＳＩ  Ｉ／Ｆ変換関数により実現される。パターン制御部２２からの送信イベントに基づき、ＬＳＩ  Ｉ／Ｆ変換関数はパターン制御部２２からランダムテストパターン及びダイレクトテストパターンのどちらか一方を受信する。ＬＳＩ  Ｉ／Ｆ変換関数はパターン制御部２２から受信したランダムテストパターン及びダイレクトテストパターンのどちらか一方を、検証対象となるＬＳＩのインターフェースやタイミングに合わせて変換し、テストデータ生成モジュール２０の外から受信したクロックに基づいたタイミングで出力する。
【００２７】
パターンＤＢ２４は、ランダムパターン発生関数が発生したランダムなテストパターンを格納するデータベースである。ダイレクトＤＢ２５は、検証担当者が作成したダイレクトテストパターンの内容を格納するデータベースである。
【００２８】
図４はランダムパターン発生関数の処理概要を示すフローチャートである。ステップＳ１に進み、ランダムパターン発生関数は後述のルールリストを満たすランダムなデータ値を順次発生する。ステップＳ２に進み、ランダムパターン発生関数は順次発生したランダムなデータ値をテストパターンとしてパターンＤＢ２４に格納する。なお、図４のフローチャートに示す処理は、前述した受信完了信号の周期に比べて非常に速い周期で繰り返される。
【００２９】
図５は、パターン制御関数の処理概要を示すフローチャートである。まず、パターン制御関数はステップＳ１１に進み、ランダム検証を行うランダム状態となる。パターン制御関数はパターンＤＢ２４から古い順番（格納した順番）にテストパターンを検索し、ランダムテストパターンとして出力する。なお、パターン制御関数はランダムテストパターンの出力に後述のルールリストに基づく制約事項がある場合、その制約事項を考慮してランダムテストパターンの出力を行う。
【００３０】
ランダム状態において、パターン制御関数はダイレクトＤＢ２５に格納されているダイレクトテストパターン（テストパターン群）の先頭にあるテストパターンが、パターンＤＢ２４に格納されている何れかのランダムなテストパターンと一致するまで、パターンＤＢ２４から古い順番にテストパターンを検索し、ランダムテストパターンとして出力し続ける。
【００３１】
一方、ランダム状態において、パターン制御関数はダイレクトＤＢ２５に格納されているダイレクトテストパターンの先頭にあるテストパターンが、パターンＤＢ２４に格納されている何れかのランダムなテストパターンと一致すると、ステップＳ１２に進み、ダイレクト検証を行うダイレクト状態となる。
【００３２】
ステップＳ１２では、パターン制御関数が、ダイレクトＤＢ２５に格納されているダイレクトテストパターンの順番となるように、パターンＤＢ２４からテストパターンを検索して出力する。ステップＳ１２の処理は、ダイレクトＤＢ２５に格納されているダイレクトテストパターンの先頭にあるテストパターンから最後にあるテストパターンまで順番に行われる。
【００３３】
パターン制御関数は、ダイレクトＤＢ２５に格納されているダイレクトテストパターンの最後にあるテストパターンまでステップＳ１２の処理が到達すると、ステップＳ１１に戻り、ランダム状態となる。
【００３４】
図６はＬＳＩ  Ｉ／Ｆ変換関数の処理概要を示すフローチャートである。ステップＳ２１に進み、ＬＳＩ  Ｉ／Ｆ変換関数はパターン制御部２２からの送信イベントを待つ。パターン制御部２２からの送信イベントを受信すると、ＬＳＩ  Ｉ／Ｆ変換関数はステップＳ２２に進み、パターン制御部２２から受信したランダムテストパターン及びダイレクトテストパターンのどちらか一方を、検証対象となるＬＳＩのインターフェースやタイミングに合わせて変換し、テストデータ生成モジュール２０の外から受信したクロックに基づいたタイミングで送信する。
【００３５】
図７はテストデータ生成モジュールがテストパターンをどのように生成しているかを示したイメージ図である。図７ではテストパターンの違いを色で表している。図７では優先度１のダイレクトテストパターンの内容と優先度２のダイレクトテストパターンの内容とがダイレクトＤＢ２５に格納されている例を表している。
【００３６】
優先度１のダイレクトテストパターンの内容は、先頭からテストパターン赤，橙，黄が格納されている。また、優先度２のダイレクトテストパターンの内容は先頭からテストパターン緑，白，白が格納されている。
【００３７】
図７（１）に表したパターンＤＢ２４は古い順にテストパターン青，紫，橙，白，白を格納している。図７（１）ではパターンＤＢ２４に、ダイレクトＤＢ２５に格納されている優先度１のダイレクトテストパターンの先頭にあるテストパターン赤に一致するテストパターンが無いため、パターンＤＢ２４に格納されている最古のテストパターン青をランダムテストパターンとして出力する。
【００３８】
図７（２）に表したパターンＤＢ２４は古い順にテストパターン紫，橙，白，白，赤を格納している。図７（２）ではパターンＤＢ２４に、ダイレクトＤＢ２５に格納されている優先度１のダイレクトテストパターンの先頭にあるテストパターン赤に一致するテストパターン赤が追加されたため、パターンＤＢ２４に格納されているテストパターン赤をダイレクトテストパターンとして出力する。
【００３９】
図７（３）に表したパターンＤＢ２４は古い順にテストパターン紫，橙，白，白，白を格納している。図７（３）ではパターンＤＢ２４に、ダイレクトＤＢ２５に格納されている優先度１のダイレクトテストパターンの２番目にあるテストパターン橙に一致するテストパターン橙が有るため、パターンＤＢ２４に格納されているテストパターン橙をダイレクトテストパターンとして出力する。
【００４０】
図７（４）に表したパターンＤＢ２４は古い順にテストパターン紫，白，白，白，黄を格納している。図７（４）ではパターンＤＢ２４に、ダイレクトＤＢ２５に格納されている優先度１のダイレクトテストパターンの最後にあるテストパターン黄に一致するテストパターン黄が追加されるまで待つ。そして、図７（４）ではパターンＤＢ２４にテストパターン黄が追加されると、パターンＤＢ２４に格納されているテストパターン黄をダイレクトテストパターンとして出力する。
【００４１】
図７（５）に表したパターンＤＢ２４は古い順にテストパターン紫，白，白，白，白を格納している。図７（５）では優先度１のダイレクトテストパターンに定められている順番でパターンＤＢ２４からテストパターンを出力済みの為、優先度２のダイレクトテストパターンに対する処理に移る。
【００４２】
図７（５）ではパターンＤＢ２４に、ダイレクトＤＢ２５に格納されている優先度２のダイレクトテストパターンの先頭にあるテストパターン緑に一致するテストパターンが無いため、パターンＤＢ２４に格納されている最古のテストパターン紫をランダムテストパターンとして出力する。
【００４３】
図７（６）に表したパターンＤＢ２４は古い順にテストパターン白，白，白，白，緑を格納している。図７（６）ではパターンＤＢ２４に、ダイレクトＤＢ２５に格納されている優先度２のダイレクトテストパターンの先頭にあるテストパターン緑に一致するテストパターン緑が追加されるまで待つ。そして、図７（６）ではパターンＤＢ２４にテストパターン緑が追加されると、パターンＤＢ２４に格納されているテストパターン緑をダイレクトテストパターンとして出力する。以下、同様にして処理を続ける。
【００４４】
本発明によるテストデータ生成モジュール２０ではランダムに発生したテストパターンがダイレクトテストパターンの先頭にあるテストパターンと一致することにより、ランダム検証からダイレクト検証に移行する仕組みとなっている。そこで、本発明によるテストデータ生成モジュール２０では、ランダムなテストパターンを検証対象となるＬＳＩが要求するテストパターンの周期よりも非常に高速に発生させ、パターンＤＢ２４へ格納しておくことにより、ランダムに発生するテストパターンをダイレクトテストパターンの先頭にあるテストパターンと一致させやすく（ダイレクト検証に移行しやすく）している。
【００４５】
ところで、検証対象となるＬＳＩの種類毎に、テストデータ生成モジュール２０を人手により生成するのは非効率である。そこで、本発明によるテストデータ生成モジュール２０はモジュール生成ツールを使用して自動生成する。
【００４６】
図８はモジュール生成ツールを使用したテストデータ生成モジュールの生成手順を表したフローチャートである。図８に表したフローチャートの前提は以下の通りである。テストデータ生成モジュール２０は、ＳｙｓｔｅｍＣ（ハードウェア記述用Ｃ＋＋クラスライブラリ）で生成される。テストデータ生成モジュール２０は、ＬＳＩからの受信完了信号を受信後、次のテストパターン（ランダムテストパターン又はダイレクトテストパターンの何れか）をＬＳＩに送信する。
【００４７】
テストパターンの内容は、仮想フレームデータとする。また、１フレーム＝１テストパターン＝１６ビットデータとする。ＬＳＩは、テストデータ生成モジュール２０から仮想フレームデータを受信する仕様である。ＬＳＩは、テストデータ生成モジュール２０からフレームデータを受信後、受信完了信号をテストデータ生成モジュール２０に送信する仕様である。ＬＳＩは、フレームデータ値に従って内部の状態が遷移する仕様である。
【００４８】
テストデータ生成モジュール２０を生成する場合はテストデータ生成モジュール２０を生成する為のインプットとなるコンフィグレーション３１，ルールリスト３２，パターンリスト３３を作成する。
【００４９】
図９は、コンフィグレーションの一例の構成図である。コンフィグレーション３１はテストデータ生成モジュール２０の各種属性を設定するファイルである。例えばコンフィグレーション３１はテストパターン生成モジュール名，フレームサイズ，ランダムフレームデータ発生回数，ＬＳＩクロック周波数，ＬＳＩ  Ｉ／Ｆビット幅，ＬＳＩ  Ｉ／Ｆエンディアン方向等の各種属性が設定されている。なお、ＬＳＩ  Ｉ／Ｆエンディアン方向はフレームデータを分割して転送する場合に、最上位から順番に転送するか、最下位から順番に転送するかを表すものである。
【００５０】
図１０はルールリストの一例の構成図である。ルールリスト３２はＬＳＩの仕様上、テストパターンの内容に制約事項がある場合に、制約事項を設定するファイルである。例えばルールリスト３２はテストパターン値「０ｘ００００１」の次はテストパターン値「０ｘ０００２」を発行すること、テストパターン値「０ｘｅ０００」を禁止すること、テストパターン値の範囲を「０ｘ００００〜０ｘ７ｆｆｆ」とすること等が、制約事項として設定されている。
【００５１】
図１１はパターンリストの一例の構成図である。パターンリスト３３は検証担当者が作成したダイレクト検証用のダイレクトテストパターンを示すファイルである。図１１のパターンリスト３３はダイレクトテストパターン名（pattern_name）、優先度（prio）、テストパターン値（data）が設定されている。図１１のパターンリスト３３は、ダイレクトテストパターンが、順番の決められた１つ以上のテストパターン値を含むように設定されている。
【００５２】
モジュール生成ツール３０は、図９のコンフィグレーション３１，図１０のルールリスト３２及び図１１のパターンリストを入力されると、テストデータ生成モジュール２０を後述のように生成する。
【００５３】
生成されたテストデータ生成モジュール２０は、例えば図１２に示すようなＬＳＩ論理検証環境（テストベンチ）４０へ組み込まれる。図１２はテストベンチの一例の構成図である。図１２のテストデータ生成モジュール２０には、検証対象となるＬＳＩ４１が接続されている。信号モニタ４２は、ＬＳＩ４１から出力される信号をモニタするモジュールである。信号モニタ４２は、本発明と直接的な関係が無いため、説明を省略する。
【００５４】
生成されたテストデータ生成モジュール２０は、例えば図１３に示すようなＬＳＩ論理検証環境（テストベンチ）５０へ組み込まれるようにしてもよい。図１３はテストベンチの他の例の構成図である。図１３のテストデータ生成モジュール２０には、検証対象となるＬＳＩ４１が接続されている。また、テストデータ生成モジュール２０にはリファレンスモデル５１が接続されている。リファレンスモデル５１は検証対象となるＬＳＩ４１と同じ動作をするソフトウェアにより実現される。リファレンスモデル５１には検証対象となるＬＳＩ４１と同じテストパターンが入力される。
【００５５】
信号チェッカ５２は、ＬＳＩ４１から出力される信号と、リファレンスモデル５１から出力される信号との一致又は不一致をチェックするモジュールである。信号チェッカ５２は本発明と直接的な関係が無いため、説明を省略する。
【００５６】
図１２の例では、テストデータ生成モジュール２０，テストベンチ４０，検証対象となるＬＳＩ４１，信号モニタ４２をシミュレータでコンパイルし、シミュレーションを実行することにより、テストデータ生成モジュール２０から図２に示すようなテストパターンが発生し、検証対象となるＬＳＩ４１を論理検証することができる。
【００５７】
図１３の例では、テストデータ生成モジュール２０，検証対象となるＬＳＩ４１，テストベンチ５０，リファレンスモデル５１，信号チェッカ５２をシミュレータでコンパイルし、シミュレーションを実行することにより、テストデータ生成モジュール２０から図２に示すようなテストパターンが発生し、検証対象となるＬＳＩ４１を論理検証することができる。
【００５８】
図１４はパターンＤＢの内部イメージを表した構成図である。図１４のパターンＤＢ２４はｉｎｄｅｘ，データ，次データをデータ項目として有している。ｉｎｄｅｘは値が小さい程、古いことを表している。データはランダムパターン発生関数が発生したランダムなテストパターン値である。次データは、次のテストパターン値に制約がある場合、その制約のあるテストパターン値を設定し、制約が無ければ「−１」を設定している。
【００５９】
図１５はダイレクトＤＢの内部イメージを表した構成図である。図１５のダイレクトＤＢ２５は、図１１のダイレクトパターンを読み込んだときのダイレクトＤＢ２５の内部イメージを表している。ダイレクトＤＢ２５は項番，ｉｎｄｅｘ，データをデータ項目として有している。
【００６０】
なお、項番は優先度を表している。項番は値が小さい程、高い優先度を表す。ｉｎｄｅｘは値が小さい方からテストパターンの順番を表している。データはテストパターン値である。
【００６１】
図１６は、ランダムパターン発生関数の処理を示すフローチャートである。ステップＳ３１に進み、ランダムパターン発生関数はランダムにデータ値を発生する。ステップＳ３２に進み、ランダムパターン発生関数は、前のテストデータ値（前データ値）が「０ｘ０００１」であり、且つ、ステップＳ３１で発生したデータ値が「０ｘ０００２」以外でないかを判定する。
【００６２】
前データ値が「０ｘ０００１」であり、且つ、データ値が「０ｘ０００２」以外でなければ、ランダムパターン発生関数はフラグ１に「ｔｒｕｅ」を設定した後、ステップＳ３３に進む。一方、前データ値が「０ｘ０００１」であり、且つ、データ値が「０ｘ０００２」以外であれば、ランダムパターン発生関数はステップＳ３２からステップＳ３３に進む。
【００６３】
ステップＳ３３に進み、ランダムパターン発生関数はデータ値が「０ｘｅ０００」でないか否かを判定する。データ値が「０ｘｅ０００」でなければ、ランダムパターン発生関数はフラグ１に「ｔｒｕｅ」を設定した後、ステップＳ３４に進む。一方、データ値が「０ｘｅ０００」であれば、ランダムパターン発生関数はステップＳ３３からステップＳ３４に進む。
【００６４】
ステップＳ３４に進み、ランダムパターン発生関数は、データ値の範囲が「０ｘ００００」から「０ｘ７ｆｆｆ」であるか否かを判定する。ランダムパターン発生関数はデータ値の範囲が「０ｘ００００」から「０ｘ７ｆｆｆ」であれば、フラグ３に「ｔｒｕｅ」を設定した後、ステップＳ３５に進む。一方、ランダムパターン発生関数はデータ値の範囲が「０ｘ００００」から「０ｘ７ｆｆｆ」でなければ、ステップＳ３４からステップＳ３５に進む。
【００６５】
ステップＳ３５に進み、ランダムパターン発生関数は、データ値が「０ｘ０００１」であるか否かを判定する。データ値が「０ｘ０００１」であれば、ランダムパターン発生関数はパターンＤＢ２４のデータ項目「次データ」に「０ｘ０００２」を設定する。データ値が「０ｘ０００１」でなければ、ランダムパターン発生関数は、ステップＳ３５からステップＳ３６に進む。
【００６６】
ステップＳ３６に進み、ランダムパターン発生関数は、フラグ１〜３の全てに「ｔｒｕｅ」が設定されているか否かを判定する。フラグ１〜３の全てに「ｔｒｕｅ」が設定されていなければ、図１０のルールリストに基づく制約事項を満たしていないデータ値を発生したため、ランダムパターン発生関数はステップＳ３１に戻る。一方、フラグ１〜３の全てに「ｔｒｕｅ」が設定されていれば、図１０のルールリストに基づく制約事項を満たしているデータ値を発生したため、ランダムパターン発生関数はステップＳ３７に進む。
【００６７】
ステップＳ３７では、ランダムパターン発生関数が、データ及び次データをパターンＤＢ２４に追加する。ステップＳ３８に進み、ランダムパターン発生関数はステップＳ３７でパターンＤＢ２４に追加したデータを前データとして設定する。そして、ステップＳ３９に進み、ランダムパターン発生関数は、受信完了信号の周期に比べて非常に速い周期の時間待ったあと、ステップＳ３１に戻る。
【００６８】
図１６に示したフローチャートの処理により、ランダムパターン発生関数はルールリスト３２を満たすランダムなデータ値を順次発生できる。
【００６９】
図１７はパターン制御関数の処理を示すフローチャートである。パターン制御関数はステップＳ４１に進み、初期値として、状態＝ランダム，次データ＝−１，項番＝０，ダイレクトＤＢ  ｉｎｄｅｘ＝０を設定する。ステップＳ４２に進み、パターン制御関数はパターンＤＢ  ｉｎｄｅｘ＝０を設定する。
【００７０】
ステップＳ４３に進み、パターン制御関数は、ランダム状態かダイレクト状態かを判定する。ランダム状態であれば、パターン制御関数はステップＳ４４に進み、ダイレクトＤＢ２５に格納されているダイレクトテストパターンの先頭（テストパターン）に一致するテストパターンをパターンＤＢ２４から探す。
【００７１】
ステップＳ４５に進み、パターン制御関数はダイレクトＤＢ２５に格納されているダイレクトテストパターンの先頭（テストパターン）に一致するテストパターンがパターンＤＢ２４になければ、ステップＳ４６に進む。ステップＳ４６に進み、パターン制御関数はパターンＤＢ２４から最古（一番若いｉｎｄｅｘ）のテストパターンをランダムテストパターンとして出力する。
【００７２】
なお、ステップＳ４３でダイレクト状態と判定された場合、又はステップＳ４５でダイレクトＤＢ２５に格納されているダイレクトテストパターンの先頭（テストパターン）に一致するテストパターンがパターンＤＢ２４にあると判定された場合、パターン制御関数はステップＳ４７に進む。
【００７３】
ステップＳ４７に進み、パターン制御関数はダイレクトＤＢ２５に格納されているダイレクトテストパターンの順番となるように、パターンＤＢ２４からテストパターンを検索して出力する。ステップＳ４６又はＳ４７に続いてステップＳ４８に進み、パターン制御関数は受信完了信号を受信するまで待ったあと、ステップＳ４２に戻る。
【００７４】
続いて、ステップＳ４４のパターン一致検索、ステップＳ４６のランダムパターン出力及びステップＳ４７のダイレクトパターン出力の処理について説明する。
【００７５】
図１８は、パターン一致検索の処理を示すフローチャートである。まず、ステップＳ５１に進み、パターン制御関数はパターンＤＢ  ｉｎｄｅｘがパターンＤＢ２４のｉｎｄｅｘの範囲内であるか否かを判定する。パターンＤＢ  ｉｎｄｅｘがパターンＤＢ２４のｉｎｄｅｘの範囲内であれば、パターン制御関数はステップＳ５２に進む。
【００７６】
ステップＳ５２に進み、パターン制御関数は、ダイレクトＤＢ２５の項番及びダイレクトＤＢ  ｉｎｄｅｘに応じたテストパターン値と、パターンＤＢ２４のパターンＤＢ  ｉｎｄｅｘに応じたテストパターン値とが一致するかを判定する。ダイレクトＤＢ２５の項番及びダイレクトＤＢ  ｉｎｄｅｘに応じたテストパターン値と、パターンＤＢ２４のパターンＤＢ  ｉｎｄｅｘに応じたテストパターン値とが一致すれば、ステップＳ５４に進む。ステップＳ５４に進み、パターン制御関数はランダム状態からダイレクト状態に移行する。
【００７７】
ダイレクトＤＢ２５の項番及びダイレクトＤＢ  ｉｎｄｅｘに応じたテストパターン値と、パターンＤＢ２４のパターンＤＢ  ｉｎｄｅｘに応じたテストパターン値とが一致しなければ、パターン制御関数はステップＳ５３に進み、パターンＤＢ  ｉｎｄｅｘに１を加算したあと、ステップＳ５１に戻る。
【００７８】
ステップＳ５４の処理後、又は、ステップＳ５１においてパターンＤＢ  ｉｎｄｅｘがパターンＤＢ２４のｉｎｄｅｘの範囲内でないと判定した後、パターン制御関数は図１８に示すパターン一致検索の処理を終了する。
【００７９】
図１９は、ランダムパターン出力の処理を示すフローチャートである。まず、ステップＳ６１に進み、パターン制御関数はパターンＤＢ  ｉｎｄｅｘに０を設定する。ステップＳ６２に進み、パターン制御関数は、次データが−１であるか、又は−１以外の次データが次のパターンＤＢ  ｉｎｄｅｘに対応するテストパターン値と一致しているかを判定する。
【００８０】
次データが−１でなく、又は−１以外の次データが次のパターンＤＢ  ｉｎｄｅｘに対応するテストパターン値と一致していなければ、パターン制御関数はステップＳ６４に進み、パターンＤＢ  ｉｎｄｅｘに１を加算したあと、ステップＳ６２に戻る。
【００８１】
一方、次データが−１であるか、又は−１以外の次データが次のパターンＤＢ  ｉｎｄｅｘに対応するテストパターン値と一致していれば、パターン制御関数はステップＳ６３に進み、パターンＤＢ２４からパターンＤＢ  ｉｎｄｅｘに対応するデータ及び次データを読み出し、送信イベントを通知する。また、パターン制御関数はパターンＤＢ  ｉｎｄｅｘに対応するテストパターンをパターンＤＢ２４から削除した後、図１９に示すランダムパターン出力の処理を終了する。
【００８２】
図２０は、ダイレクトパターン出力の処理を示すフローチャートである。なお、図１７のステップＳ４３から進んだ場合は、ステップＳ７１に進む。図１７のステップＳ４５から進んだ場合は、ステップＳ７４に進む。ステップＳ７１に進み、パターン制御関数はパターンＤＢ  ｉｎｄｅｘが、パターンＤＢ２４のｉｎｄｅｘの範囲内であるか否かを判定する。パターンＤＢ  ｉｎｄｅｘがパターンＤＢ２４のｉｎｄｅｘの範囲内であれば、パターン制御関数はステップＳ７２に進む。
【００８３】
ステップＳ７２に進み、パターン制御関数は、項番及びダイレクトＤＢ  ｉｎｄｅｘに対応するテストパターン値と、パターンＤＢ  ｉｎｄｅｘに対応するテストパターン値とが一致するか否かを判定する。項番及びダイレクトＤＢ  ｉｎｄｅｘに対応するテストパターン値と、パターンＤＢ  ｉｎｄｅｘに対応するテストパターン値とが一致すれば、パターン制御関数はパターンＤＢ２４からパターンＤＢ  ｉｎｄｅｘに対応するデータ及び次データを読み出し、送信イベントを通知する。パターン制御関数はパターンＤＢ  ｉｎｄｅｘに対応するテストパターンをパターンＤＢ２４から削除した後、ステップＳ７５に進む。
【００８４】
ステップＳ７５に進み、パターン制御関数はダイレクトＤＢ  ｉｎｄｅｘが終端であるかを判定する。ダイレクトＤＢ  ｉｎｄｅｘが終端であれば、パターン制御関数はステップＳ７７に進み、ダイレクト状態からランダム状態に移行すると共に、項番に１を加算し、ダイレクトＤＢ  ｉｎｄｅｘ＝０を設定した後、図２０に示すダイレクトパターン出力の処理を終了する。パターン制御関数は、ダイレクトＤＢ  ｉｎｄｅｘが終端でなければ、ステップＳ７６に進み、ダイレクトＤＢ  ｉｎｄｅｘに１を加算した後、図２０に示すダイレクトパターン出力の処理を終了する。
【００８５】
なお、ステップＳ７１においてパターンＤＢ  ｉｎｄｅｘがパターンＤＢ２４のｉｎｄｅｘの範囲内でなければ、パターン制御関数は図２０に示すダイレクトパターン出力の処理を終了する。
【００８６】
図２１はモジュール生成ツールの処理手順を表したフローチャートである。ステップＳ８１に進み、モジュール生成ツール３０はテストデータ生成モジュール２０を生成する為のインプットとなるコンフィグレーション３１，ルールリスト３２，パターンリスト３３を読み込んで内部テーブルに展開する。
【００８７】
ステップＳ８２に進み、モジュール生成ツール３０はクラス定義部をヘッダファイルに出力する。ステップＳ８３に進み、モジュール生成ツール３０はランダムパターン発生関数定義をソースファイルに出力する。ステップＳ８４に進み、モジュール生成ツール３０はパターン制御関数定義をソースファイルに出力する。また、ステップＳ８５に進み、モジュール生成ツール３０はＬＳＩ  Ｉ／Ｆ変換関数定義をソースファイルに出力する。
【００８８】
図２１における下線部はコンフィグレーション３１，ルールリスト３２，パターンリスト３３から値をあてがう項目である。図２２〜図２５はテストデータ生成モジュール２０のソースコードを表した一例のイメージ図である。
【００８９】
図２２〜図２５では、コンフィグレーション３１，ルールリスト３２，パターンリスト３３による可変記述要素が、ソースコードの中で、どのようにあてがわれるかを注釈で記述している。具体的に、図２２〜図２５中、「／＊＊＊〜＊＊＊／」のコメントで記述されている箇所は、ソースコード（テストデータ生成モジュール２０）の可変記述要素となるものを示している。
【００９０】
コンフィグレーション３１，ルールリスト３２，パターンリスト３３から読み込まれたパラメータ値やパターン値を使用して、モジュール生成ツール３０はソースコードの可変記述要素を決定する。それ以外の箇所は、固定の形で出力される。
【００９１】
本発明によるテストデータ生成モジュール２０は、ランダムパターン発生部２１でテストパターンをランダムに発生し、発生したテストパターンが所定のダイレクトパターンの先頭（テストパターン）と一致するかを監視する。テストデータ生成モジュール２０は発生したテストパターンが所定のダイレクトパターンの先頭（テストパターン）と一致する場合にランダムパターン発生部２１で発生したテストパターンからダイレクトパターンの順番にテストパターンを優先的に出力し、一致しない場合にランダムパターン発生部２１で発生した順番にテストパターンを出力することで、ランダムテストパターンによる広範囲の検証を行うだけでは網羅し難い複雑な条件の処理をダイレクトテストパターンで網羅することを可能とした。
【００９２】
前述したように、本発明によるテストデータ生成モジュール２０はランダム検証中にダイレクト検証が割り込む動作を行い、従来の方法で網羅しにくい機能（状態遷移）を網羅することができる。したがって、本発明によるテストデータ生成モジュール２０はダイレクト検証のみ、或いはランダム検証のみ、又はそれらの逐次的検証を用いて検証する場合に生じやすい検証網羅性不足を防止し、ＬＳＩの品質を向上させることができる。
【００９３】
以上、本発明によるテストデータ生成モジュール２０はＬＳＩの論理検証において検証網羅性を向上させることができる。なお、前述した本実施例ではパターンＤＢ２４からテストパターンを出力する構成を説明したが、ダイレクト検証時にダイレクトＤＢ２５からテストパターンを出力する構成も可能である。
【００９４】
本発明は、以下に記載する付記のような構成が考えられる。
（付記１）
記憶手段にアクセス可能なコンピュータを、
ユーザにより作成された１つ以上のテストパターン群を前記記憶手段に格納する第１テストパターン格納手段と、
ランダムなテストパターンを順次発生するランダムパターン発生手段と、
前記ランダムパターン発生手段により発生するランダムなテストパターンを前記記憶手段に格納する第２テストパターン格納手段と、
前記第２テストパターン格納手段により前記記憶手段に格納されたテストパターンと前記第１テストパターン格納手段により前記記憶手段に格納された前記テストパターン群の先頭にあるテストパターンとの一致を監視し、一致を検知すると、一致を検知した前記テストパターン群に定められているテストパターンの順番に前記テストパターンを出力し、一致を検知しなければ、前記第２テストパターン格納手段により前記記憶手段に格納されている前記テストパターンを、格納した順番に出力するパターン制御手段と
して機能させる為のテストデータ生成プログラム。
（付記２）
前記パターン制御手段は、一致を検知すると、一致を検知した前記テストパターン群に定められている先頭にあるテストパターンから最後にあるテストパターンまで、順番通りになるように前記記憶手段より、前記第２テストパターン格納手段により格納された前記テストパターンを読み出して出力することを特徴とする付記１記載のテストデータ生成プログラム。
（付記３）
前記第１テストパターン格納手段は、優先度が設定されている前記１つ以上のテストパターン群を前記記憶手段に格納しており、
前記パターン制御手段は、前記優先度に従った順番で、前記テストパターン群に定められているテストパターンの順番に前記テストパターンを出力することを特徴とする付記１又は２記載のテストデータ生成プログラム。
（付記４）
前記ランダムパターン発生手段は、テスト対象の集積回路の仕様上、順次発生する前記テストパターンの内容に制約事項がある場合、その制約事項に応じた前記テストパターンを順次発生することを特徴とする付記１乃至３何れか一項記載のテストデータ生成プログラム。
（付記５）
前記テストデータ生成プログラムは、テストデータ生成装置の属性を設定するファイルと、テスト対象の集積回路の仕様上、順次発生する前記テストパターンの内容に制約がある場合、その制約事項を設定するファイルと、前記第１テストパターン格納手段に格納される前記１つ以上のテストパターン群を設定するファイルとに基づき、生成されることを特徴とする付記１乃至４何れか一項記載のテストデータ生成プログラム。
（付記６）
テストデータを生成して出力するテストデータ生成装置であって、
ユーザにより作成された１つ以上のテストパターン群を格納する第１テストパターン格納手段と、
ランダムなテストパターンを順次発生するランダムパターン発生手段と、
前記ランダムパターン発生手段により発生するランダムなテストパターンを格納する第２テストパターン格納手段と、
前記第２テストパターン格納手段に格納されたテストパターンと前記第１テストパターン格納手段に格納された前記テストパターン群の先頭にあるテストパターンとの一致を監視し、一致を検知すると、一致を検知した前記テストパターン群に定められているテストパターンの順番に前記テストパターンを出力し、一致を検知しなければ、前記第２テストパターン格納手段に格納されている前記テストパターンを、格納した順番に出力するパターン制御手段と
を有することを特徴とするテストデータ生成装置。
（付記７）
テストデータを生成して出力するテストデータ生成装置におけるテストデータ生成方法であって、
記憶手段にアクセス可能なコンピュータを、
ユーザにより作成された１つ以上のテストパターン群を前記記憶手段に格納する第１テストパターン格納手順と、
ランダムなテストパターンを順次発生するランダムパターン発生手順と、
前記ランダムパターン発生手段により発生するランダムなテストパターンを前記記憶手段に格納する第２テストパターン格納手順と、
前記第２テストパターン格納手順で前記記憶手段に格納されたテストパターンと前記第１テストパターン格納手順で前記記憶手段に格納された前記テストパターン群の先頭にあるテストパターンとの一致を監視する監視手順と、
前記監視手順で一致を検知すると、一致を検知した前記テストパターン群に定められているテストパターンの順番に前記テストパターンを出力し、一致を検知しなければ、前記第２テストパターン格納手段により前記記憶手段に格納されている前記テストパターンを、格納した順番に出力するパターン制御手順と
を有することを特徴とするテストデータ生成方法。
【００９５】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【００９６】
【図１】テストデータ生成装置の一例の構成図である。
【図２】テストデータ生成モジュールが生成するテストデータ（テストパターン）の一例のイメージ図である。
【図３】テストデータ生成モジュールの一例の構成図である。
【図４】ランダムパターン発生関数の処理概要を示すフローチャートである。
【図５】パターン制御関数の処理概要を示すフローチャートである。
【図６】ＬＳＩ  Ｉ／Ｆ変換関数の処理概要を示すフローチャートである。
【図７】テストデータ生成モジュールがテストパターンをどのように生成しているかを示したイメージ図である。
【図８】モジュール生成ツールを使用したテストデータ生成モジュールの生成手順を表したフローチャートである。
【図９】コンフィグレーションの一例の構成図である。
【図１０】ルールリストの一例の構成図である。
【図１１】パターンリストの一例の構成図である。
【図１２】テストベンチの一例の構成図である。
【図１３】テストベンチの他の例の構成図である。
【図１４】パターンＤＢの内部イメージを表した構成図である。
【図１５】ダイレクトＤＢの内部イメージを表した構成図である。
【図１６】ランダムパターン発生関数の処理を示すフローチャートである。
【図１７】パターン制御関数の処理を示すフローチャートである。
【図１８】パターン一致検索の処理を示すフローチャートである。
【図１９】ランダムパターン出力の処理を示すフローチャートである。
【図２０】ダイレクトパターン出力の処理を示すフローチャートである。
【図２１】モジュール生成ツールの処理手順を表したフローチャートである。
【図２２】テストデータ生成モジュール２０のソースコード（１／４）を表した一例のイメージ図である。
【図２３】テストデータ生成モジュール２０のソースコード（２／４）を表した一例のイメージ図である。
【図２４】テストデータ生成モジュール２０のソースコード（３／４）を表した一例のイメージ図である。
【図２５】テストデータ生成モジュール２０のソースコード（４／４）を表した一例のイメージ図である。
【符号の説明】
【００９７】
１１    入力装置
１２    出力装置
１３    ドライブ装置
１４    補助記憶装置
１５    主記憶装置
１６    演算処理装置
１７    インターフェース装置
２０    テストデータ生成モジュール
２１    ランダムパターン発生部
２２    パターン制御部
２３    ＬＳＩ  Ｉ／Ｆ変換部
２４    パターンＤＢ
２５    ダイレクトＤＢ
３０    モジュール生成ツール
３１    コンフィグレーション
３２    ルールリスト
３３    パターンリスト
４０，５０    ＬＳＩ論理検証環境（テストベンチ）
４１    検証対象となるＬＳＩ
４２    信号モニタ
５１    リファレンスモデル
５２    信号チェッカ
【図１】
0004918907.tif 000002
【図２】
0004918907.tif 000003
【図３】
0004918907.tif 000004
【図４】
0004918907.tif 000005
【図５】
0004918907.tif 000006
【図６】
0004918907.tif 000007
【図７】
0004918907.tif 000008
【図８】
0004918907.tif 000009
【図９】
0004918907.tif 000010
【図１０】
0004918907.tif 000011
【図１１】
0004918907.tif 000012
【図１２】
0004918907.tif 000013
【図１３】
0004918907.tif 000014
【図１４】
0004918907.tif 000015
【図１５】
0004918907.tif 000016
【図１６】
0004918907.tif 000017
【図１７】
0004918907.tif 000018
【図１８】
0004918907.tif 000019
【図１９】
0004918907.tif 000020
【図２０】
0004918907.tif 000021
【図２１】
0004918907.tif 000022
【図２２】
0004918907.tif 000023
【図２３】
0004918907.tif 000024
【図２４】
0004918907.tif 000025
【図２５】
0004918907.tif 000026