(57)【要約】【課題】  仕様変更等によりモジュール数が変化した場合でも、関数の記述変更無しに１個の汎用的な関数で対応を可能にする。【解決手段】  最上位階層にあって、最上位階層以下のモジュールの同じ階層下にある複数の同一モジュールの同じオブジェクトを操作する関数を実行するにあたり、オブジェクト操作関数実行部２５は、操作対象モジュール設定情報取得部２３により取得される操作対象モジュールのうち、オブジェクト操作制御部２２により有効とされた操作対象モジュール内の１以上のオブジェクトに対して所定の操作を実行する。【選択図】図１
2012027526.tif 000002
【特許請求の範囲】
【請求項１】
ハードウエア記述言語を用い複数のモジュールにより階層設計された論理回路のモデル動作を検証する、少なくとも入力装置と、処理装置とからなる動作検証装置であって、
前記処理装置により実行され、最上位階層にあって、前記最上位階層以下のモジュールの同じ階層下にある複数の同一モジュールの同じオブジェクトに対して所定の操作を実行するオブジェクト操作関数実行部と、
前記入力装置による入力により定義される前記複数のモジュールの定義情報を取得する定義情報取得部と、
前記定義情報の有無により、前記オブジェクト操作関数実行部による所定の操作に対する有効又は無効を前記処理装置によって制御するオブジェクト操作制御部と、
前記複数の同一モジュールの中から前記入力装置によって入力される１以上の操作対象モジュールの設定情報を取得する操作対象モジュール設定情報取得部と、を備え、
前記オブジェクト操作関数実行部は、
前記操作対象モジュール設定情報取得部により取得される前記操作対象モジュールのうち、前記オブジェクト操作制御部により有効とされた前記操作対象モジュール内の１以上のオブジェクトに対して所定の操作を実行することを特徴とする動作検証装置。
【請求項２】
前記オブジェクト操作制御部は、
コンパイル指示子によって定義される前記複数のモジュールの階層構造を示すインスタンスパスの定義がある場合に、前記オブジェクト操作関数実行部による前記オブジェクトに対する所定の操作を有効とし、前記インスタンスパスの定義が無い場合に、無効にする制御を行うことを特徴とする請求項１記載の動作検証装置。
【請求項３】
ハードウエア記述言語を用い複数のモジュールにより階層設計された論理回路のモデル動作をコンピュータによって検証する動作検証プログラムであって、
前記コンピュータに、
入力により定義される、前記複数のモジュールの定義情報を取得する処理と、
前記定義情報の有無により、最上位階層以下の同じ階層下にある複数の同一モジュール内の同じオブジェクトに対する所定の操作を有効又は無効にする処理と、
入力設定により、前記複数の同一モジュールの中から選択される１以上の操作対象モジュールの指定情報を取得する処理と、
前記取得された前記操作対象モジュールのうち前記有効とされた操作対象モジュール内の１以上のオブジェクトに対して所定の操作を実行する処理と、
を実行させることを特徴とする動作検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｖｅｌｉｌｏｇ−ＨＤＬ（Hardware Description
Language）等のハードウエア記述言語を用い、複数のモジュールにより階層設計された論理回路のモデル動作を検証する、動作検証装置およびそのプログラムに関する。
【背景技術】
【０００２】
Ｖｅｌｉｌｏｇ−ＨＤＬやＶＨＤＬ（VHSIC Hardware
Description Language）等のハードウエア記述言語は、システム設計からＬＳＩ（Large
Scale Integration）やＦＰＧＡ（Field Programmable Gate Array）までのハードウエア設計全般にわたって多くの回路機能の記述を可能にする。ＨＤＬは、ハードウエアの階層構造、論理値、遅延、並行動作等、ハードウエア特有の機能を記述する言語である。大規模回路の設計では回路を幾つかのモジュール（回路ブロック）に分割して設計する。ＬＳＩを構成するモジュールには、演算回路、メモリ等、多くの回路ブロックがあり、それらモジュールを接続して回路全体を設計する階層設計を行う。
【０００３】
ところで、論理シミュレータは、上記したハードウエア記述言語で技術された論理回路の動作モデルを検証するためのツールである。論理シミュレータは、例えば、特許文献１に示されるように、対象回路の設計データを入力し、これに検証用のパターンを加えてその応答を観測する。最近ではこの検証用のパターンをテストベンチ生成ツールで作ることが増えている。ここでいうテストベンチとは、作成した論理回路（モジュール）にシミュョレーション上で信号を印加し、観測するためのデータ構造をいう。
【０００４】
図６に、ハードウエア記述言語で記述された動作モデルの一例が示されている。具体的には、最上位階層（ｔｏｐ）のモジュール内にあり、この最上位階層（ｔｏｐ）以下のある同一階層下にあるサブ階層（Ｓｕｂ０）に属する複数の同一モジュールの中から１以上のモジュールを選択し、そのモジュール内にある同一オブジェクトを操作する関数を実行する場合が例示している。尚、ここでいう「ある同一オブジェクトの操作」とは、例えば、変数の設定操作をいう。
【０００５】
この場合、ユーザは、まず、操作対象モジュール指定フラグ１０１を操作して、モジュールの数（Ｎ）と同じ数のビット数で構成される各ビットに、“１”、又は“０”を設定する。このことにより、それぞれのモジュールの選択（“１”）、又は非選択（“０”）を指定する。
【０００６】
次に、操作対象モジュール（ｉｎｓｔ０〜ＩｎｓｔＮ−１）内のオブジェクトに対して操作を行うオブジェクト操作部１０２により、操作対象モジュール指定フラグ１０１で選択された各モジュールに対して、そのモジュール内のオブジェクト操作が実行される。このとき、操作対象モジュール指定フラグ１０１で選択されなかったモジュールについては何も操作が実行されない。
尚、図６において、符号１０３で示されるブロックは、オブジェクト操作部１０２がモジュール数（Ｎ）分集まったオブジェクト操作関数である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−１１９６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、ハードウエア記述言語により、存在しないモジュールに対するオブジェクト操作を記述すると文法エラーになる。従って、操作対象モジュール選択指定フラグにより選択される１以上のモジュールに対してそのモジュール内のオブジェクトを操作する関数において、仕様変更等によりモジュールの数が変化した場合に、関数記述を変えずに一つの関数で汎用的に対応することができない。このため、例えば、図７に示されるように、モジュール数に応じてそれぞれ別の関数（オブジェクト操作部１０２）を記述する必要がある。
【０００９】
そこで、本発明は上記問題点に鑑みなされたものであって、仕様変更等によりモジュール数が変化した場合でも、関数の記述変更無しに１個の汎用的な関数で対応することができる、動作検証装置およびそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の動作検証装置は、ハードウエア記述言語を用い複数のモジュールにより階層設計された論理回路のモデル動作を検証する、少なくとも入力装置と、処理装置とからなる動作検証装置であって、前記処理装置により実行され、最上位階層にあって、前記最上位階層以下のモジュールの同じ階層下にある複数の同一モジュールの同じオブジェクトに対して所定の操作を実行するオブジェクト操作関数実行部と、前記入力装置による入力により定義される前記複数のモジュールの定義情報を取得する定義情報取得部と、前記定義情報の有無により、前記オブジェクト操作関数実行部による所定の操作に対する有効又は無効を前記処理装置によって制御するオブジェクト操作制御部と、前記複数の同一モジュールの中から前記入力装置によって入力される１以上の操作対象モジュールの設定情報を取得する操作対象モジュール設定情報取得部と、を備え、前記オブジェクト操作関数実行部は、前記操作対象モジュール設定情報取得部により取得される前記操作対象モジュールのうち、前記オブジェクト操作制御部により有効とされた前記操作対象モジュール内の１以上のオブジェクトに対して所定の操作を実行することを特徴とする。
【００１１】
本発明によれば、オブジェクト操作関数実行部が、操作対象モジュール設定情報取得部により取得される操作対象モジュールのうち、オブジェクト操作制御部により有効とされた操作対象モジュール内の１以上のオブジェクトに対して所定の操作を実行する。このように、定義情報の有無によりオブジェクト操作関数実行部による所定の操作に対する有効／無効が制御できることから、選択された１以上の操作対象モジュールに対してそのモジュール内のオブジェクトを操作するという処理を行う関数において、モジュールの数が変更された場合でも関数の記述変更を要することなく、１個の関数で汎用的に対応することが出来る。
【００１２】
上記発明において、前記オブジェクト操作制御部は、コンパイル指示子によって定義される前記複数のモジュールの階層構造を示すインスタンスパスの定義がある場合に、前記オブジェクト操作関数実行部による前記オブジェクトに対する所定の操作を有効とし、前記インスタンスパスの定義が無い場合に、無効とする制御を行う。本発明によれば、ユーザは、コンパイル指示子によって操作を有効にするモジュールのインスタンスパスを定義するだけで、オブジェクト操作関数実行部による所定の操作に対する有効／無効の制御が可能になるため、仕様変更等によりモジュール数が変更になった場合でも関数を個別に用意する必要がないため、ユーザの負担が軽減される。
【００１３】
本発明の動作検証プログラムは、ハードウエア記述言語を用い複数のモジュールにより階層設計された論理回路のモデル動作をコンピュータによって検証する動作検証プログラムであって、前記コンピュータに、入力により定義される、前記複数のモジュールの定義情報を取得する処理と、前記定義情報の有無により、最上位階層以下の同じ階層下にある複数の同一モジュール内の同じオブジェクトに対する所定の操作を有効又は無効にする処理と、入力設定により、前記複数の同一モジュールの中から選択される１以上の操作対象モジュールの指定情報を取得する処理と、前記取得された前記操作対象モジュールのうち前記有効とされた操作対象モジュール内の１以上のオブジェクトに対して所定の操作を実行する処理と、を実行させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、仕様変更等によりモジュール数が変化した場合でも、関数の記述変更無しに１個の汎用的な関数で対応することができる、動作検証装置およびそのプログラムを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態に係る動作検証装置の構成を示すブロック図である。
【図２】本発明の実施の形態に係る動作検証装置の動作を示すフローチャートである。
【図３】本発明の実施の形態に係る動作検証装置の動作モデルの一例を示す図である。
【図４】本発明の実施の形態に係る動作検証プログラムのＨＤＬ記述（インスタンスパス定義）の一例を示す図である。
【図５】本発明の実施の形態に係る動作検証プログラムのＨＤＬ記述（オブジェクト操作制御）の一例を示す図である。
【図６】従来例における動作モデルの一例を示す図である。
【図７】従来例におけるモジュール数とオブジェクト操作関数との関係を示す図である。
【発明を実施するための形態】
【００１６】
以下、添付図面を参照して、本発明を実施するための形態（以下、実施形態）について詳細に説明する。なお、実施形態の説明の全体を通して同じ要素には同じ番号を付している。
【００１７】
（実施形態の構成）
図１は、実施形態に係る動作検証装置１０の構成を示すブロック図である。図１によれば、実施形態に係る動作検証装置１０は、ハードウエア的には、入力装置１と、処理装置２と、出力装置３と、により構成される。
【００１８】
入力装置１はファイル装置であり、例えば、Ｖｅｌｉｌｏｇ−ＨＤＬ等で記述された動作モデル（ＨＤＬソース）が読み出され、処理装置２に入力される。処理装置２は、メモリとマイクロプロセッサ（ＭＰＵ）で構成され、入力された動作モデルに基づくシミュレーションを実行し、その結果を出力装置３に出力する。出力装置３は、例えば、ＬＣＤ（Liquid Crystal Display）等で構成された表示デバイスである。出力装置３はプリンタ等の印刷装置でも良い、
【００１９】
処理装置２は、Ｖｅｌｉｌｏｇ−ＨＤＬで記述された動作モデルにおいて、例えば、最上位階層のモジュール内にあり、最上位階層以下のある同一階層下にあるサブ階層に属する複数の同一モジュールの中から１以上のモジュールを選択し、そのモジュール内にある同一オブジェクトを操作する関数を実行するにあたり、（１）入力装置１により定義される、複数のモジュールの定義情報を取得する処理と、（２）定義情報の有無により、最上位階層以下の同じ階層下にある複数の同一モジュール内の同じオブジェクトに対する所定の操作を有効又は無効にする処理と、（３）入力設定により、複数の同一モジュールの中から選択される１以上の操作対象モジュールの指定情報を取得する処理と、（５）取得された操作対象モジュールのうち有効とされた操作対象モジュール内の１以上のオブジェクトに対して所定の操作を実行する処理と、を実行する。
【００２０】
このため、処理装置２が実行するプログラムは、定義情報取得部２１と、オブジェクト操作制御部２２と、操作対象モジュール設定情報取得部２３と、操作対象モジュール指定フラグ２４と、オブジェクト操作関数実行部２５と、シミュレーション実行部２６とを含み、構成される。
【００２１】
定義情報取得部２１は、入力装置１による定義される複数のモジュールの定義情報を取得する機能を有し、ここで取得された定義情報は、オブジェクト操作制御部２２及びシミュレーション実行部２６に引き渡される。
【００２２】
オブジェクト操作制御部２２は、定義情報取得部２１により取得される定義情報の有無により、オブジェクト操作関数実行部２５による所定の操作に対する有効又は無効を制御する。具体的に、オブジェクト操作制御部２２は、後述するコンパイル指示子によって定義される、複数のモジュールの階層構造を示すインスタンスパスの定義がある場合に、オブジェクト操作関数実行部２５によるオブジェクトに対する所定の操作を有効とし、インスタンスパスの定義が無い場合に、無効にする制御を行う。
【００２３】
操作対象モジュール設定情報取得部２３は、複数の同一モジュールの中から入力装置１によって入力される１以上の操作対象モジュールの設定情報を取得する機能を有し、ここで取得された設定情報は、操作対照指定フラグ２４を構成する各ビットのＯＮ／ＯＦＦに反映される。操作対象モジュール指定フラグ２４は、モジュールの最大数Ｍと同じビット容量を持つフラグ群である。
【００２４】
オブジェクト操作関数実行部２５は、操作対象モジュール設定情報取得部２３により取得される操作対象モジュールのうち、オブジェクト操作制御部２２により有効とされた操作対象モジュール内の１以上のオブジェクトに対して所定の操作を実行する機能を有する。具体的に、オブジェクト操作関数実行部２５は、操作対象モジュール指定フラグ２４により指定され、かつ、オブジェクト操作制御部２２による制御の下、最上位階層（ｔｏｐ）のモジュールにあって、最上位階層以下のモジュール（ｓｕｂ０）の同じ階層下にある複数の同一モジュールの同じオブジェクトに対し、変数設定等の所定の操作を実行する。尚、所定の操作として、変数設定以外に信号設定等が考えられる。
【００２５】
シミュレーション実行部２６は、オブジェクト操作関数実行部２６によるオブジェクト操作の結果を得、定義情報取得部２１により取得された定義情報に基づく動作検証機能を有し、その結果は出力装置３に出力され表示又は印刷される。
【００２６】
（実施形態の動作）
図２は、実施形態に係る動作検証装置の動作を示すフローチャートであり、図３は、その動作を処理装置２が有するメモリ上に展開して示した動作モデルである。ここでは図３に示されるように、例えば、Ｖｅｌｉｌｏｇ−ＨＤＬで記述された動作モデルにおいて、最上位階層のモジュール（ｔｏｐ）にあって、最上位階層以下のモジュール（ｓｕｂ０）の同じ階層下にあるＮ個の同一モジュールの同じオブジェクトに対し変数設定を行う関数を所定の操作として実行する場合を例示して説明する。
【００２７】
以下、図２のフローチャート、及び図３の動作モデルを参照しながら、図１に示す動作検証装置１０の動作説明を行う。
【００２８】
ハードウエア記述言語で記述された動作モデル（ここでは、Ｖｅｌｉｌｏｇ−ＨＤＬソース）では、まず、モジュール数Ｍの設定が行われ、実施形態に係る動作検証装置１０では、まず、入力装置１が操作されることによりＨＤＬソースが読み出され、処理装置２が起動される。処理装置２では、定義情報取得部２１がこの情報を取得し、内部に割り当てられたレジスタｉに、最大モジュール数を示す値Ｍを設定する（ステップＳ２０１）。この値Ｍは、オブジェクト操作制御部２２に引き渡される。
【００２９】
オブジェクト操作制御部２２は、引き続き定義情報取得部２１により取得される定義情報から、モジュール毎のインスタンスパスの定義の有無を判定する（ステップＳ２０２）。モジュール毎のインスタンスパスの定義は、例えば、図４のＨＤＬソース記述例に示されるように、コンパイル指示子“ｄｅｆｉｎｅ”により行われる。
【００３０】
コンパイル指示子は、周知のように、Ｖｅｌｏｌｏｇ−ＨＤＬ構文ではないが、Ｖｅｅｌｏｌｏｇ−ＨＤＬの動作モデル記述をどのように解釈するかを指示する指示子である。図４に示す例では、Ｉ０〜Ｉ（Ｎ−１）のＮ個のモジュール毎に、階層モジュール構造（ｔｏｐ，ｓｕｂ０）、及びインスタンス名（ｉｎｓｔ０〜ｉｎｓｔＮ−１）が定義されている。ここでは、Ｍ個のモジュールのうち、Ｎ個（Ｍ≧Ｎ）のモジュールについてインスタンスパスの定義がなされている。
【００３１】
オブジェクト操作制御部２２では、まず、モジュールＩ０につき、インスタンスパスの定義があるため（ステップＳ２０２“ＹＥＳ”）、その階層構造とインスタンス名とからなる定義情報を取り込み（ステップＳ２０３）、オブジェクト操作関数実行部２５に対する、オブジェクト操作実行の有効・無効に関する制御を行う（ステップＳ２０４）。
【００３２】
オブジェクト操作の有効・無効制御は、例えば、図５のＨＤＬソース記述例に示されるように、インスタンスパスの定義の有無により行われる。即ち、インスタンスパスの定義があればそのモジュールに対するオブジェクト操作を有効とし、無ければ無効とするもので、コンパイル指示子“ｉｆｄｅｆ−ｅｎｄｉｆ”により定義される。
【００３３】
図５に示す例では、モジュールＩ０について、フラグ０が“１”であれば、変数Ｉ０．ａに値ｉｎを設定する操作を有効にすることが示されている。ここではモジュールＩ０についてのみ示されているが、実際は、Ｍ個のモジュールの全てに対して定義されているものとする。
【００３４】
次に、操作対象モジュール設定情報取得部２３は、複数の同一モジュールの中から入力装置１により入力される１以上の操作対象モジュールの設定情報を取得し、その内容を操作対象モジュール指定フラグ２４に反映させる。操作対象モジュール指定フラグ２４は、上記したように、モジュールの最大数Ｍと同じビット容量を持つフラグ群であり、各ビットのＯＮ／ＯＮによりモジュール毎の選択“１”、非選択“０”を指示する。
【００３５】
オブジェクト操作関数実行部２５は、操作対象モジュール設定フラグ２４を参照して操作対象モジュールの指定情報を取得し（ステップＳ２０５）、選択指定の有無を判定のうえ（ステップＳ２０６）、選択指定されているモジュールに対してのみオブジェクト関数操作を実行する（ステップＳ２０７）。即ち、オブジェクト操作関数実行部２５は、オブジェクト操作制御部２２で有効とされ、操作対象モジュール指定フラグ２４で選択指定されたＮ個のモジュールに対してのみ上記のオブジェクト操作関数を実行する。
【００３６】
オブジェクト操作関数実行部２５による指定のモジュールに対する変数設定等所定の操作実行後、制御は定義情報取得部２１に移る。定義情報取得部２１では、先に内蔵レジスタに設定されたモジュール数Ｎを−１更新し（ステップＳ２０８）、未だ０になっていないことを確認して（ステップＳ２０９“ＮＯ”）、ステップＳ２０２のインスタンスパス定義の有無判定処理に戻る。
【００３７】
即ち、Ｍの値が“０”になるまで（ステップＳ２０９“ＹＥＳ”）、ステップＳ２０２〜Ｓ２０８の動作が繰り返し実行され、Ｍ個のモジュールのうち、オブジェクト操作制御部２２で有効とされ、操作対象モジュール指定フラグ２４で選択指定されたＮ個のモジュールに対して、オブジェクト操作関数実行部２５によるオブジェクト操作が実行される。
【００３８】
最後にシミュレーション実行部２６による本来の動作検証が行われ（ステップＳ２１０）、結果が出力装置に表示され、上記した一連の処理が終了する。
【００３９】
（実施形態の効果）
上記した実施形態に係る動作検証装置１０によれば、処理装置２（オブジェクト操作関数実行部２５）が、操作対象モジュール設定情報取得部２３により取得される操作対象モジュールのうち、オブジェクト操作制御部２２により有効とされた操作対象モジュール内の１以上のオブジェクトに対して所定の操作を実行する。従って、定義情報の有無により所定の操作に対する有効／無効が制御できることから、選択された１以上の操作対象モジュールに対してそのモジュール内のオブジェクトを操作するという処理を行う関数において、モジュールの数が変更された場合でも関数の記述変更を要することなく、１個の関数で汎用的に対応することが出来る。
【００４０】
又、オブジェクト操作制御部２２は、コンパイル指示子によって定義される複数のモジュールの階層構造を示すインスタンスパスの定義がある場合に、オブジェクト操作関数実行部２５によるオブジェクトに対する所定の操作を有効とし、インスタンスパスの定義が無い場合に、無効とする制御を行う。従って、ユーザは、コンパイル指示子によって操作を有効にするモジュールのインスタンスパスを定義するだけで、オブジェクト操作関数実行部２５による所定の操作に対する有効／無効の制御が可能になるため、仕様変更等によりモジュール数が変更になった場合でも関数を個別に用意する必要がないため、ユーザの負担が軽減される。
【００４１】
（動作検証プログラム）
尚、本発明の動作検証プログラムは、ハードウエア記述言語を用い複数のモジュールにより階層設計された論理回路のモデル動作を、例えば、図１に示される入力装置１と処理装置２と出力装置３とで構成されるコンピュータ（動作検証装置１０）によって検証する動作検証プログラムであって、前記コンピュータに、例えば、図２のフローチャートにおいて、入力により定義される、前記複数のモジュールの定義情報を取得する処理（ステップＳ２０１〜Ｓ２０３）と、前記定義情報の有無により、最上位階層以下の同じ階層下にある複数の同一モジュール内の同じオブジェクトに対する所定の操作を有効又は無効にする処理（ステップＳ２０４）と、入力設定により、前記複数の同一モジュールの中から選択される１以上の操作対象モジュールの指定情報を取得する処理（ステップＳ２０５）と、前記取得された前記操作対象モジュールのうち前記有効とされた操作対象モジュール内の１以上のオブジェクトに対して所定の操作を実行する処理（ステップＳ２０６、Ｓ２０７）とを実行させることを特徴とするものである。
【００４２】
上記した動作検証プログラムによれば、コンピュータ（処理装置２）に上記の処理を実行させることにより、定義情報の有無により所定の操作に対する有効／無効が制御できることから、選択された１以上の操作対象モジュールに対してそのモジュール内のオブジェクトを操作するという処理を行う関数において、モジュールの数が変更された場合でも関数の記述変更を要することなく、１個の関数で汎用的に対応することが出来る。又、ユーザは、コンパイル指示子によって操作を有効にするモジュールのインスタンスパスを定義するだけで、オブジェクト操作関数実行部２５による所定の操作に対する有効／無効の制御が可能になるため、仕様変更等によりモジュール数が変更になった場合でも関数を個別に用意する必要がないため、ユーザの負担が軽減される。
【００４３】
以上、実施形態を用いて本発明を説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されないことは言うまでもない。上記実施形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。またその様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【００４４】
１    入力装置
２    処理装置
３    出力装置
１０  動作検証装置
２１  定義情報取得部
２２  オブジェクト操作制御部
２３  操作対象モジュール設定情報取得部
２４  操作対象モジュール指定フラグ
２５  オブジェクト操作関数実行部
２６  シミュレーション実行部
【図１】
2012027526.tif 000003
【図２】
2012027526.tif 000004
【図３】
2012027526.tif 000005
【図４】
2012027526.tif 000006
【図５】
2012027526.tif 000007
【図６】
2012027526.tif 000008
【図７】
2012027526.tif 000009