(57)【要約】      （修正有）【課題】プロセッサが回路部の接続先情報が属性情報と矛盾するか否かを判定する設計方法を提供する。【解決手段】プロセッサ２は、半導体装置の設計仕様を示す仕様情報１１に含まれる、回路部１２ａ，１２ｂの端子Ａ〜Ｇの属性を示す属性情報１３を検出しＳ１、回路部１２ａ，１２ｂを実装する際の端子Ａ〜Ｇの接続状態を示す実装情報１２から、端子Ａ〜Ｇの接続先を示す接続先情報１４を検出しＳ２、属性情報１３と接続先情報１４とを比較し、接続先情報１４が、属性情報１３と矛盾するか否かを判定するＳ３。【選択図】図１
2016206957.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサが、半導体装置の設計仕様を示す仕様情報に含まれる、回路部の端子の属性を示す属性情報を検出し、
前記プロセッサが、前記回路部を実装する際の前記端子の接続状態を示す実装情報から、前記端子の接続先を示す接続先情報を検出し、
前記プロセッサが、前記属性情報と前記接続先情報とを比較し、前記接続先情報が、前記属性情報と矛盾するか否かを判定する、
ことを特徴とする設計方法。
【請求項２】
前記属性情報は、前記端子がデバッグに用いられる、または前記端子の値が実装状況に依存して変化する、ことを示す情報であることを特徴とする請求項１に記載の設計方法。
【請求項３】
前記プロセッサは、前記属性情報が、前記端子がデバッグに用いられることを示し、前記接続先情報が、前記端子がどこにも接続されていないことを示すときには、前記接続先情報が前記属性情報と矛盾していると判定する、ことを特徴とする請求項２に記載の設計方法。
【請求項４】
前記プロセッサは、前記属性情報が、前記端子の前記値が前記実装状況に依存して変化することを示し、前記接続先情報が、前記端子が１つの値で固定されていることを示すときには、前記接続先情報が前記属性情報と矛盾していると判定する、ことを特徴とする請求項２または３に記載の設計方法。
【請求項５】
前記プロセッサは、前記接続先情報が前記属性情報と矛盾するときに、前記属性情報に基づくアクセスが行われるレジスタを生成し、前記レジスタを前記端子に接続する、ことを特徴とする請求項１乃至４の何れか一項に記載の設計方法。
【請求項６】
前記属性情報と、前記接続先情報とは、同一のフォーマットでデータベース化されていることを特徴とする請求項１乃至５の何れか一項に記載の設計方法。
【請求項７】
前記プロセッサが、前記属性情報を前記仕様情報に登録することを特徴とする請求項１乃至６の何れか一項に記載の設計方法。
【請求項８】
半導体装置の設計仕様を示す仕様情報に含まれる、回路部の端子の属性を示す属性情報を検出する属性情報検出部と、
前記回路部を実装する際の前記端子の接続状態を示す実装情報から、前記端子の接続先を示す接続先情報を検出する接続先情報検出部と、
前記属性情報と前記接続先情報とを比較し、前記接続先情報が、前記属性情報と矛盾するか否かを判定する実装ミス検出部と、
を有することを特徴とする設計装置。
【請求項９】
半導体装置の設計仕様を示す仕様情報に含まれる、回路部の端子の属性を示す属性情報を検出し、
前記回路部を実装する際の前記端子の接続状態を示す実装情報から、前記端子の接続先を示す接続先情報を検出し、
前記属性情報と前記接続先情報とを比較し、前記接続先情報が、前記属性情報と矛盾するか否かを判定する、
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計方法、設計装置及びプログラムに関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integrated circuit）の開発時、ＩＰ（Intellectual Property）コアやモジュールなどの回路部の端子は、他の回路部に接続される以外に、オープン状態または特定の値で固定（クリップ）状態とされることがある。オープン状態またはクリップ状態とする処理は、タイオフ（Tie-Off）処理と呼ばれている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２５４２９４号公報
【特許文献２】特開２０１２−３８１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
端子のタイオフ処理は、回路部の設計仕様書などに基づき人手により行われることがある。そのため、設計仕様書を見誤るなどの理由で、間違った値で端子がクリップされてしまうなどの実装ミスが発生する可能性があるという問題があった。
【課題を解決するための手段】
【０００５】
発明の一観点によれば、プロセッサが、半導体装置の設計仕様を示す仕様情報に含まれる、回路部の端子の属性を示す属性情報を検出し、前記プロセッサが、前記回路部を実装する際の前記端子の接続状態を示す実装情報から、前記端子の接続先を示す接続先情報を検出し、前記プロセッサが、前記属性情報と前記接続先情報とを比較し、前記接続先情報が、前記属性情報と矛盾するか否かを判定する、設計方法が提供される。
【０００６】
また、発明の一観点によれば、半導体装置の設計仕様を示す仕様情報に含まれる、回路部の端子の属性を示す属性情報を検出する属性情報検出部と、前記回路部を実装する際の前記端子の接続状態を示す実装情報から、前記端子の接続先を示す接続先情報を検出する接続先情報検出部と、前記属性情報と前記接続先情報とを比較し、前記接続先情報が、前記属性情報と矛盾するか否かを判定する実装ミス検出部と、を有する設計装置が提供される。
【０００７】
また、発明の一観点によれば、半導体装置の設計仕様を示す仕様情報に含まれる、回路部の端子の属性を示す属性情報を検出し、前記回路部を実装する際の前記端子の接続状態を示す実装情報から、前記端子の接続先を示す接続先情報を検出し、前記属性情報と前記接続先情報とを比較し、前記接続先情報が、前記属性情報と矛盾するか否かを判定する、処理をコンピュータに実行させるプログラムが提供される。
【発明の効果】
【０００８】
開示の設計方法、設計装置及びプログラムによれば、実装ミスの発生を抑制できる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施の形態の設計方法及び設計装置の一例を示す図である。
【図２】第１の実施の形態の設計装置の一例の機能ブロック図である。
【図３】第２の実施の形態の設計装置の一例を示す図である。
【図４】第２の実施の形態の設計方法の一例の処理の流れを示すフローチャートである。
【図５】仕様情報と登録された属性情報の一例を示す図である（その１）。
【図６】仕様情報と登録された属性情報の一例を示す図である（その２）。
【図７】属性情報に基づくデータベースの一例を示す図である。
【図８】接続仕様の一例を示す図である。
【図９】ＲＴＬ情報の一例を示す図である（その１）。
【図１０】ＲＴＬ情報の一例を示す図である（その２）。
【図１１】接続情報に基づくデータベースの一例を示す図である。
【図１２】比較処理の一例の流れを示すフローチャートである。
【図１３】実装ミスの発生をユーザに通知する表示画面の一例を示す図である。
【図１４】実装ミスの発生をユーザに通知する表示画面の他の例を示す図である。
【図１５】更新されたデータベースの一例を示す図である。
【図１６】レジスタビットの生成例を示す図である。
【図１７】ＲＴＬで生成されるレジスタの一例をブロック図で示した図である。
【図１８】生成されるレジスタモジュールの一例を示す図である。
【図１９】接続仕様の更新例を示す図である。
【図２０】レジスタモジュールの接続仕様の一例を示す図である。
【図２１】ＲＴＬ情報の更新例を示す図である。
【図２２】本実施の形態の設計方法により設計された半導体装置の一例を示す図である。
【図２３】書き込み処理時と読み出し処理時におけるレジスタモジュールのアドレスの指定例を示す図である。
【発明を実施するための形態】
【００１０】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、第１の実施の形態の設計方法及び設計装置の一例を示す図である。
【００１１】
また、図２は、第１の実施の形態の設計装置の一例の機能ブロック図である。
設計装置１は、たとえば、コンピュータであり、プロセッサ２と記憶部３を有している。プロセッサ２は、記憶部３に記憶されているデータ及びプログラムに基づき、図２に示すような、属性情報検出部２ａ、接続先情報検出部２ｂ、実装ミス検出部２ｃの機能を実現する。記憶部３は、プロセッサ２が実行するプログラムや、半導体装置の仕様情報１１、実装情報１２などの各種データを記憶する。
【００１２】
仕様情報１１は、半導体装置の設計仕様を示す情報であり、半導体装置内の回路部（モジュールまたはＩＰなど）の端子の属性を示す属性情報などを含む。属性情報は、端子がデバッグに用いられる、または端子の値が実装状況（どのようなシステムに実装されるか）によって変化する（または変化させたい）、などの端子の属性を示す情報である。
【００１３】
実装情報１２は、回路部を実装する際の端子の接続状態を示すものであり、端子の接続先を示す接続先情報を含む。実装情報は、たとえば、ＲＴＬ（Register Transfer Level）で記述された情報、または、端子の接続状態を指定する接続仕様などである。
【００１４】
以下、上記のような設計装置１を用いた設計方法の一例を、図１、図２を用いて説明する。
属性情報検出部２ａは、上記のような仕様情報１１に含まれる属性情報を検出する（ステップＳ１）。また、接続先情報検出部２ｂは、上記のような実装情報１２から、端子の接続先を示す接続先情報を検出する（ステップＳ２）。
【００１５】
その後、実装ミス検出部２ｃは、属性情報と接続先情報とを比較し、接続先情報が、属性情報と矛盾するか否かを判定することで実装ミスの検出を行う（ステップＳ３）。
たとえば、図１に示すような回路部１２ａ，１２ｂを含む半導体装置の設計を行う場合、ステップＳ１の処理では、回路部１２ａ，１２ｂのそれぞれにおいて、端子Ａ〜Ｇの何れか１つまたは複数に割り当てられた属性情報が検出される。
【００１６】
たとえば、回路部１２ａの端子Ｄがデバッグに用いられる端子であり、回路部１２ｂの端子Ｆが、実装状況によって値が変化する端子であるときには、図１に示すような属性情報１３が検出される。属性情報１３には、端子Ｄ，Ｆの端子名（Ｄ，Ｆ）と、端子Ｄ，Ｆの属性（デバッグに用いられる端子であることを示す“ＤｅｂｕｇＰｏｒｔ”と、実装状況によって値が変化する端子であることを示す“ＶａｌｉａｂｌｅＰｏｒｔ”）などが含まれている。
【００１７】
ステップＳ２の処理では、回路部１２ａ，１２ｂの端子Ａ〜Ｇの接続状態を示す実装情報１２から、図１に示すような接続先情報１４が検出される。図１に示す実装情報１２の例では、回路部１２ａの端子Ａには、クロック信号ＣＬＫが入力される。また、ビット数（ビット幅）が［１：０］（２ビット）の値を出力する端子Ｂ（ビットごと設けられる）は、回路部１２ｂの、ビット数が２ビットの値を入力する端子Ｅ（ビットごと設けられる）に接続されている。また、回路部１２ａの端子Ｃには入力信号ＩＮが入力される。端子Ｄはオープン状態（Ｏｐｅｎ）とされている。また、回路部１２ｂの２ビットの信号が入力される端子Ｆ（ビットごと設けられている）は、値が固定されており（クリップ状態となっており）、端子Ｇから出力信号ＯＵＴが出力される。
【００１８】
このような実装情報１２から検出される接続先情報１４には、端子Ａ〜Ｇの接続先の情報が含まれる。端子Ｄ，Ｆに関しては、オープン状態とクリップ状態であるので、図１の例では、接続先として“ＯｐｅｎＰｏｒｔ”、“ＣｌｉｐＰｏｒｔ”と表記されている。
【００１９】
ステップＳ３の処理では、このような属性情報１３と接続先情報１４とが比較される。図１の例は、端子Ｄは、属性情報１３では、デバッグに用いられる端子であると属性が指定されているにもかかわらず、接続先情報１４では、オープン状態（どこにも接続されていない状態）とされている。また、端子Ｆは、属性情報１３では、実装状況によって値が変化する端子であると属性が指定されているにもかかわらず、接続先情報１４では、クリップ状態とされている。
【００２０】
このような場合は、接続先情報１４が、属性情報１３と矛盾していると判定される。つまり、実装される回路部が設計仕様を満たさないことが検出され、実装ミスが検出される。
【００２１】
なお、ステップＳ１，Ｓ２の処理は入れ替えてもよいし、並列に行われるようにしてもよい。
以上のような設計方法及び設計装置１では、仕様情報１１に含まれている回路部の端子の属性情報を検出し、属性情報と実装時の端子の接続先情報とから、接続先情報が属性情報と矛盾しているか否かが判定される。これにより、設計仕様と合わない実装であるか否かが検出可能になるため、実装ミスを減らせる。
【００２２】
（第２の実施の形態）
図３は、第２の実施の形態の設計装置の一例を示す図である。
設計装置は、たとえば、コンピュータ２０であり、プロセッサ２１によって装置全体が制御されている。プロセッサ２１には、バス２９を介してＲＡＭ（Random Access Memory）２２と複数の周辺機器が接続されている。プロセッサ２１は、マルチプロセッサであってもよい。プロセッサ２１は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ２１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００２３】
ＲＡＭ２２は、コンピュータ２０の主記憶装置として使用される。ＲＡＭ２２には、プロセッサ２１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２２には、プロセッサ２１による処理に必要な各種データが格納される。
【００２４】
バス２９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）２３、グラフィック処理装置２４、入力インタフェース２５、光学ドライブ装置２６、機器接続インタフェース２７及びネットワークインタフェース２８がある。
【００２５】
ＨＤＤ２３は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。ＨＤＤ２３は、コンピュータ２０の補助記憶装置として使用される。ＨＤＤ２３には、ＯＳのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００２６】
グラフィック処理装置２４には、モニタ２４ａが接続されている。グラフィック処理装置２４は、プロセッサ２１からの命令にしたがって、画像をモニタ２４ａの画面に表示させる。モニタ２４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００２７】
入力インタフェース２５には、キーボード２５ａとマウス２５ｂとが接続されている。入力インタフェース２５は、キーボード２５ａやマウス２５ｂから送られてくる信号をプロセッサ２１に送信する。なお、マウス２５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００２８】
光学ドライブ装置２６は、レーザ光などを利用して、光ディスク２６ａに記録されたデータの読み取りを行う。光ディスク２６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００２９】
機器接続インタフェース２７は、コンピュータ２０に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース２７には、メモリ装置２７ａやメモリリーダライタ２７ｂを接続することができる。メモリ装置２７ａは、機器接続インタフェース２７との通信機能を搭載した記録媒体である。メモリリーダライタ２７ｂは、メモリカード２７ｃへのデータの書き込み、またはメモリカード２７ｃからのデータの読み出しを行う装置である。メモリカード２７ｃは、カード型の記録媒体である。
【００３０】
ネットワークインタフェース２８は、ネットワーク２８ａに接続されている。ネットワークインタフェース２８は、ネットワーク２８ａを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００３１】
以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、図１、図２に示した第１の実施の形態の設計装置１も、図３に示したコンピュータ２０と同様のハードウェアにより実現することができる。
【００３２】
コンピュータ２０は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。コンピュータ２０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、コンピュータ２０に実行させるプログラムをＨＤＤ２３に格納しておくことができる。プロセッサ２１は、ＨＤＤ２３内のプログラムの少なくとも一部をＲＡＭ２２にロードし、プログラムを実行する。またコンピュータ２０に実行させるプログラムを、光ディスク２６ａ、メモリ装置２７ａ、メモリカード２７ｃなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ２１からの制御により、ＨＤＤ２３にインストールされた後、実行可能となる。またプロセッサ２１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００３３】
（設計方法の一例）
図４は、第２の実施の形態の設計方法の一例の処理の流れを示すフローチャートである。
【００３４】
コンピュータ２０において、プロセッサ２１は、ＨＤＤ２３に格納されたプログラムを読み出してＲＡＭ２２上に展開して、たとえば、図４に示すような各ステップの処理を実行する。
【００３５】
処理が開始すると、プロセッサ２１は、たとえば、ＨＤＤ２３に格納された仕様情報へ属性情報の登録を行う（ステップＳ１０）。
図５、図６は、仕様情報と登録された属性情報の一例を示す図である。
【００３６】
なお、図５、図６では、図１に示したような回路部１２ａ，１２ｂに関して、ＩＰ−ＸＡＣＴと呼ばれるＸＭＬ（Extensible Markup Language）フォーマットで表記された仕様情報３０，４０が示されている。
【００３７】
図５に示されている仕様情報３０には、回路部１２ａの名前（モジュール名）のほか、端子Ａ〜Ｄの仕様（端子方向や、ビット数）が含まれている。
たとえば、ユーザにより、端子Ｄをデバッグ用の端子とする旨の情報がコンピュータ２０に入力されると、プロセッサ２１は、端子Ｄが“ＤｅｂｕｇＰｏｒｔ”である旨の属性情報３１を仕様情報３０に登録する。属性情報３１は、たとえば、ＩＰ−ＸＡＣＴにおいて自由に情報を追加して良い領域である“ｖｅｎｄｏｒＥｘｔｅｎｓｉｏｎｓ”タグに登録される。
【００３８】
図６に示されている仕様情報４０には、回路部１２ｂの名前のほか、端子Ｅ〜Ｇの仕様（端子方向や、ビット数）が含まれている。
たとえば、ユーザにより、端子Ｆを実装状況によって値が変わる端子とする旨の情報がコンピュータ２０に入力されると、プロセッサ２１は、端子Ｆが“ＶａｒｉａｂｌｅＰｏｒｔ”である旨の属性情報４１を仕様情報４０に登録する。属性情報４１も、たとえば、“ｖｅｎｄｏｒＥｘｔｅｎｓｉｏｎｓ”タグに登録される。
【００３９】
このような仕様情報への属性情報の登録は、異なる半導体装置の設計の際に再度行わなくてもよく、その半導体装置に同じ回路部が用いられる場合には、その回路部の仕様情報（属性情報が登録済のもの）を用いることができる。
【００４０】
なお、このようなステップＳ１０の処理は、別のコンピュータで行われるようにしてもよい。その場合は、別のコンピュータで属性情報が登録された仕様情報を、コンピュータ２０が取得して、ＨＤＤ２３に格納しておく。
【００４１】
次に、プロセッサ２１は、仕様情報から属性情報を検出（抽出）する（ステップＳ１１）。
ステップＳ１１の処理では、端子に関する記述部分に“ｖｅｎｄｏｒＥｘｔｅｎｓｉｏｎｓ”タグが付加されており、かつ、そのタグに含まれる属性情報が、“ＤｅｂｕｇＰｏｒｔ”または“ＶａｒｉａｂｌｅＰｏｒｔ”であるとき、その属性情報が抽出される。
【００４２】
そして、プロセッサ２１は、抽出した属性情報に基づくデータベースを作成する（ステップＳ１２）。
図７は、属性情報に基づくデータベースの一例を示す図である。
【００４３】
データベース５０には、モジュール名、端子名、端子方向、ビット数（ビット幅）、属性が含まれる。図７の例では、図５、図６の仕様情報３０，４０から抽出された属性情報３１，４１に基づいて作成されたデータベース５０が示されている。
【００４４】
端子Ｄが属する回路部１２ａのモジュール名“Ｘ”と、端子Ｄの端子名“Ｄ”、端子方向“ｏｕｔ”及び、端子Ｄの属性である“ＤｅｂｕｇＰｏｒｔ”がデータベース５０に登録されている。また、端子Ｆが属する回路部１２ｂのモジュール名“Ｙ”と、端子Ｆの端子名“Ｆ”、端子方向“ｉｎ”、ビット数“１：０”及び、端子Ｆの属性である“ＶａｒｉａｂｌｅＰｏｒｔ”がデータベース５０に登録されている。
【００４５】
プロセッサ２１は作成したデータベース５０を、一旦ＨＤＤ２３に格納してもよい。
また、プロセッサ２１は、実装情報から接続情報の検出（抽出）を行う（ステップＳ１３）。実装情報には、たとえば、接続仕様と、ＲＴＬで記述された情報（以下ＲＴＬ情報と呼ぶ）がある。実装情報は、すでに製造された半導体装置（たとえば、試作品）に基づく情報であってもよいし、これから製造する半導体装置の設計仕様から生成されたものであってもよい。
【００４６】
図８は、接続仕様の一例を示す図である。
接続仕様５１には、図１に示した回路部１２ａ，１２ｂの接続状態などが示されている。モジュール名“Ｘ”でインスタンス名“ｉｎｓｔＸ”の回路部１２ａに関しては、端子Ａ〜Ｄの端子名、ビット数、端子方向のほか、接続先が示されている。ここで、端子Ｄに関しては、接続先が“Ｏｐｅｎ”となっている。
【００４７】
また、モジュール名“Ｙ”でインスタンス名“ｉｎｓｔＹ”の回路部１２ｂに関しても、端子Ｅ〜Ｇの端子名、ビット数、端子方向のほか、接続先が示されている。ここで、端子Ｆに関しては、接続先が“２’ｂ１０”と、固定値になっている。
【００４８】
図９、図１０は、ＲＴＬ情報の一例を示す図である。
図９、図１０に示されているＲＴＬ情報５２ａ，５２ｂの例では、回路部１２ａ，１２ｂを接続したモジュールがＲＴＬで表現されている。
【００４９】
図９のＲＴＬ情報５２ａでは、端子Ｄの接続先が“．Ｄ（  ）”となっており、オープン状態であることが示されている。また、端子Ｆの接続先が“．Ｆ（２’ｂ１０）”となっており、クリップ状態であることが示されている。
【００５０】
図１０のＲＴＬ情報５２ｂでは、ｗｉｒｅ文により、“．Ｄ（ｏｐｅｎ＿ｗｉｒｅ）”と表記されており、端子Ｄがオープン状態であることが示されている。また、端子Ｆに関しても、“．Ｆ（ｃｌｉｐ＿ｗｉｒｅ）”と表記され、クリップ状態であることが示されている。なお、クリップ状態における値は、“ａｓｓｉｇｎ  ｃｌｉｐ＿ｗｉｒｅ＝２’ｂ１０”と定義されている。
【００５１】
ステップＳ１３の処理では、プロセッサ２１は、上記のような実装情報から接続情報を抽出する。抽出する接続情報としては、モジュール名、インスタンス名、端子名、ビット数、値、属性がある。接続情報の属性は、端子がオープン状態、クリップ状態、または他の端子に接続、もしくは外部端子に接続されていることを示す。つまり、実装の際の接続状態を示している。なお、プロセッサ２１は、属性がオープン状態の端子の接続情報以外は抽出しないようにしてもよいし、属性がクリップ状態の端子の接続情報以外は抽出しないようにしてもよい。
【００５２】
図９、図１０に示した例では、端子Ａ，Ｃ，Ｇは外部端子（クロック端子、入力端子、出力端子）に接続されている。なお、上記では、“ＣＬＫ”、“ＩＮ”、“ＯＵＴ”をクロック信号、入力信号、出力信号の符号として用いたが、ここではそれらの信号が入力または出力される端子を示している（以降も同様の箇所がある）。また、端子Ｂ，Ｆは配線を介して他の端子に接続されており、端子Ｄはオープン状態、端子Ｆはクリップ状態である。
【００５３】
次に、プロセッサ２１は、抽出した接続情報に基づくデータベースを作成する（ステップＳ１４）。
図１１は、接続情報に基づくデータベースの一例を示す図である。
【００５４】
データベース５３には、モジュール名、インスタンス名、端子名、ビット数、値、属性が含まれる。図１１の例では、図８に示した接続仕様、または図９、図１０に示したＲＴＬ情報５２ａ，５２ｂから抽出された接続情報に基づいて作成されたデータベース５３が示されている。オープン状態の端子Ｄの属性については、“ＯｐｅｎＰｏｒｔ”、クリップ状態の端子Ｆの属性については、“ＣｌｉｐＰｏｒｔ”と表記されている。なお、図示を省略しているが、他の端子については、外部端子などに接続されているため、たとえば、属性が“ＣｏｎｎｅｃｔＰｏｒｔ”である旨をデータベース５３に含めてもよい。
【００５５】
プロセッサ２１は、作成されたデータベース５３を、たとえば、一旦ＨＤＤ２３に格納してもよい。
次に、プロセッサ２１は、ステップＳ１２，Ｓ１４の処理で作成した両データベースの比較処理を行う（ステップＳ１５）。
【００５６】
図１２は、比較処理の一例の流れを示すフローチャートである。
まず、プロセッサ２１は、ステップＳ１２，Ｓ１４の処理で作成した両データベースにおいて、モジュール名、端子名、ビット数が一致する端子があるか否かを判定する（ステップＳ２０）。そのような端子がないときには、処理が終了し、そのような端子があるときには、ステップＳ２１の処理が行われる。
【００５７】
ステップＳ２１の処理では、プロセッサ２１は、属性情報に基づくデータベースにおけるその端子の属性が“ＤｅｂｕｇＰｏｒｔ”であり、接続情報に基づくデータベースにおけるその端子の属性が“ＯｐｅｎＰｏｒｔ”であるか否かを判定する。両データベースにおける端子の属性の関係が、そのような関係であるときには、ステップＳ２３の処理が行われ、そのような関係にないときには、ステップＳ２２の処理が行われる。
【００５８】
ステップＳ２２の処理では、プロセッサ２１は、属性情報に基づくデータベースにおける上記端子の属性が“ＶａｌｉａｂｌｅＰｏｒｔ”であり、接続情報に基づくデータベースにおけるその端子の属性が“ＣｌｉｐＰｏｒｔ”であるか否かを判定する。両データベースにおける端子の属性の関係が、そのような関係であるときには、ステップＳ２３の処理が行われ、そのような関係にないときには処理が終了する。
【００５９】
図７に示した属性情報に基づくデータベース５０と、図１１に示した接続情報に基づくデータベース５３との比較が行われる場合、データベース５０，５３における端子Ｄについては、モジュール名、端子名、ビット数が一致する。端子Ｆについても、モジュール名、端子名、ビット数が一致する。そして、端子Ｄについては、データベース５０，５３における属性の関係が“ＤｅｂｕｇＰｏｒｔ”と“ＯｐｅｎＰｏｒｔ”となっている。また、データベース５０，５３における端子Ｆの属性の関係も、“ＶａｌｉａｂｌｅＰｏｒｔ”と“ＣｌｉｐＰｏｒｔ”となっている。そのため、実装ミスの発生が検出され、ステップＳ２３の処理が行われる。
【００６０】
データベース５０，５３は、共通のフォーマットとなっているので、このような比較処理は容易である。
ステップＳ２３の処理では、プロセッサ２１は、実装ミスの発生を出力する。たとえば、プロセッサ２１は、図３に示したようなグラフィック処理装置２４を制御して、実装ミスの発生をモニタ２４ａに表示させてもよい。
【００６１】
図１３は、実装ミスの発生をユーザに通知する表示画面の一例を示す図である。
表示画面６０において、たとえば、実装ミスが発生する端子に関する情報として、モジュール名、インスタンス名、端子名、端子方向、ビット数、値（初期値）、レジスタ種類が表示される。また、実装ミスが発生する端子に接続するレジスタ（図１３では専用レジスタと表記している）を生成する旨が表示される。レジスタ種類は、属性情報に基づくデータベースに含まれる属性“ＤｅｂｕｇＰｏｒｔ”と、“ＶａｌｉａｂｌｅＰｏｒｔ”に基づき設定される。属性が“ＤｅｂｕｇＰｏｒｔ”のときには、レジスタ種類はＲＯ（Read-Only）、属性が“ＶａｌｉａｂｌｅＰｏｒｔ”のときには、レジスタ種類はＲＷ（Read-Write）となる。
【００６２】
図１４は、実装ミスの発生をユーザに通知する表示画面の他の例を示す図である。
表示画面６１には、図１３と同様に実装ミスが発生する端子に関する情報が表示されているほか、レジスタを生成してその端子に接続するか否かをユーザに選択させるメッセージが表示されている。図１４に示すように、端子ごとに、その端子と接続するレジスタを生成するか否かの選択が可能となっている。
【００６３】
ステップＳ２３の処理後、プロセッサ２１は、実装ミスが発生する端子に接続するレジスタを生成するか否かを判定する（ステップＳ２４）。図１４に示したような表示画面６１上において、ユーザにより、たとえば、キーボード２５ａで、“Ｙ”が入力されたときには、プロセッサ２１はレジスタを生成すると判定し、ステップＳ１６の処理を行う。ユーザにより、たとえば、キーボード２５ａで、“ｎ”が入力されたときには、プロセッサ２１はレジスタを生成しないと判定し、処理を終了する。
【００６４】
なお、たとえば、ステップＳ２３の処理で、図１３に示したような表示画面６０が表示される場合には、ステップＳ２４の判定処理は行われず、ステップＳ１６の処理が行われるようにしてもよい。
【００６５】
図４に示すステップＳ１６の処理では、データベースの更新処理が行われる。
図１５は、更新されたデータベースの一例を示す図である。
プロセッサ２１は、たとえば、図７に示したデータベース５０において、図１１に示したデータベース５３の情報（インスタンス名、値）を追加し、さらに、属性を上記のようなレジスタ種類に書き換えることで、データベース５０ａを得る。
【００６６】
データベース５０，５３は、共通のフォーマットとなっているので、データベースの更新は容易である。
なお、プロセッサ２１は、図１１に示したデータベース５３を更新することで、データベース５０ａを得るようにしてもよい。
【００６７】
上記のようなデータベースの更新処理後、プロセッサ２１は、レジスタモジュールの生成を行う（ステップＳ１７）。
レジスタモジュールの生成にあたって、まず、プロセッサ２１は、ステップＳ１６の処理で得られたデータベースの情報に基づき、実装するレジスタ数などを決定する。
【００６８】
１つのアドレスで指定されるレジスタ群を１段のレジスタとすると、実装されるレジスタ段数はレジスタ種類がＲＯであるレジスタの段数とレジスタ種類がＲＷであるレジスタの段数とを加算することで得られる。
【００６９】
レジスタ種類がＲＯであるレジスタの段数は、属性が“ＲＯ”である端子に割り当てられたビット数の総数を、データバス幅で割ったときの整数部に、余りがあるときは１、余りがないときは０を加えた値となる。データバス幅は、たとえば、３２ビット、または６４ビットなどの値である。
【００７０】
レジスタ種類がＲＷであるレジスタの段数は、属性が“ＲＷ”である端子に割り当てられたビット数の総数を、データバス幅で割ったときの整数部に、余りがあるときは１、余りがないときは０を加えた値となる。
【００７１】
たとえば、図１５に示したようなデータベース５０ａに基づいて、レジスタを生成する際には、レジスタの段数は２段となり、以下のようなレジスタビットが生成可能である。
図１６は、レジスタビットの生成例を示す図である。
【００７２】
図１６では、データバス幅が３２ビットであるものとしている。図１５に示したデータベース５０ａでは、属性が“ＲＷ”である端子Ｆに割り当てられたビット数は２であるため、その分のレジスタビットが図１６に示されている。“ｒｗ＿ｉｎｓｔＹ＿Ｆ＿１”は、端子Ｆ用の最上位ビットのビットフィールド名であり、“ｒｗ＿ｉｎｓｔＹ＿Ｆ＿０”は、端子Ｆ用の最下位ビットのビットフィールド名を示している。また、“ＲＷ”は属性を示しており、“１”と“０”は各ビットの値（初期値）を示している。この初期値は、データベース５０ａに登録されている値“２ｂ’１０”から得られる。これらのレジスタビットは、アドレス０ｘ４で指定される。
【００７３】
属性が“ＲＯ”である端子Ｄに割り当てられたビット数は１であるため（データベース５０ａではビット数が１の場合は図示を省略している）、その分のレジスタビットが図１６に示されている。“ｒｏ＿ｉｎｓｔＸ＿Ｄ”は、端子Ｄ用の１ビットのビットフィールド名を示している。また、“ＲＯ”は属性を示しており、“−”は初期値が不定であることを示している。このレジスタビットは、アドレス０ｘ０で指定される。
【００７４】
プロセッサ２１は、図１６に示すような３つのレジスタビットに対応して３つのレジスタ（フリップフロップ）を、たとえば、ＲＴＬで生成する。このとき、プロセッサ２１は、データベース５０ａに登録されている端子Ｄ，Ｆに接続されるレジスタの端子を、属性に基づいて定義する。
【００７５】
属性が“ＲＯ”の端子Ｄに接続される端子は、入力端子“ｉｎｐｕｔ”と定義され、端子名は、たとえば、“ｉｎｓｔＸ＿Ｄ”と定義される。属性が“ＲＷ”の端子Ｆに接続される端子は、出力端子“ｏｕｔｐｕｔ”と定義され、端子名は、ビットごとに、たとえば、“ｉｎｓｔＹ＿Ｆ＿１”、“ｉｎｓｔＹ＿Ｆ＿０”と定義される。
【００７６】
つまり、端子名は、“インスタンス名”＿“端子名”＿“ビット位置（２ビット以上の場合）”というネーミングルールで定義される。
そして、プロセッサ２１は、このように定義した端子名をもつ端子を、その端子名を含むビットフィールド名のレジスタビットに対応したレジスタの端子とする。たとえば、“ｉｎｓｔＸ＿Ｄ”と定義された端子は、この端子名を含むビットフィールド名“ｒｏ＿ｉｎｓｔＸ＿Ｄ”のレジスタビットに対応して生成されるレジスタの端子となる。
【００７７】
図１７は、ＲＴＬで生成されるレジスタの一例をブロック図で示した図である。
レジスタ７０，７１，７２は、それぞれ、図１６に示した、ビットフィールド名“ｒｏ＿ｉｎｓｔＸ＿Ｄ”、“ｒｗ＿ｉｎｓｔＹ＿Ｆ＿１”、“ｒｗ＿ｉｎｓｔＹ＿Ｆ＿０”のレジスタビットに対応している。
【００７８】
端子名が“ｉｎｓｔＸ＿Ｄ”であるレジスタ７０の入力端子は、前述した回路部１２ａの端子Ｄに接続される。端子名が“ｉｎｓｔＹ＿Ｆ＿１であるレジスタ７１の出力端子は、前述した回路部１２ｂの端子Ｆ［１］（ビットごとに設けられた端子Ｆのうち、最上位ビットを入力する端子）に接続される。端子名が“ｉｎｓｔＹ＿Ｆ＿０であるレジスタ７２の出力端子は、前述した回路部１２ｂの端子Ｆ［０］（ビットごとに設けられた端子Ｆのうち、最下位ビットを入力する端子）に接続される。
【００７９】
また、レジスタ７０，７１，７２には、クロック信号ＰＣＬＫが入力されている。また、レジスタ７０，７２のＲＥＳＥＴ端子と、レジスタ７１のＳＥＴ端子には、リセット信号ＰＲＥＳＥＴｎが入力されている（これらの信号が入力される外部端子と接続されていると言い換えることもできる）。
【００８０】
ステップＳ１７の処理では、さらにプロセッサ２１は、図１７に示すようなレジスタ７０から７２に対して、ＣＰＵなどのプロセッサでアクセスするためのインタフェースを含めたレジスタモジュールを生成する。
【００８１】
図１８は、生成されるレジスタモジュールの一例を示す図である。
レジスタモジュール８０は、たとえば、ＡＭＢＡ（Advanced Microcontroller Bus Architecture）のＡＰＢ（Advanced Peripheral Bus）と呼ばれるインターフェースプロトコルに準拠したレジスタ書き込み部８１とレジスタ読み出し部８２を有する。
【００８２】
レジスタモジュール８０には、たとえば、図示しないＣＰＵからクロック信号ＰＣＬＫ、リセット信号ＰＲＥＳＥＴｎ、アドレス信号ＰＡＤＤＲ、選択信号ＰＳＥＬ、イネーブル信号ＰＥＮＡＢＬＥ、書き込み信号ＰＷＲＩＴＥが入力される。また、図示しないバスから書き込みデータＰＷＤＡＴＡがレジスタモジュール８０に入力される。
【００８３】
レジスタ書き込み部８１は、たとえば、図１８に示すように、ＡＮＤ回路８１ａ、選択信号生成回路８１ｂ、書き込み先選択回路８１ｃを有する。
ＡＮＤ回路８１ａは、選択信号ＰＳＥＬ、イネーブル信号ＰＥＮＡＢＬＥ、書き込み信号ＰＷＲＩＴＥを入力して、これらの信号のＡＮＤ論理演算結果を出力する。
【００８４】
選択信号生成回路８１ｂは、アドレス信号ＰＡＤＤＲと、ＡＮＤ回路８１ａの出力信号を入力する。そして、選択信号生成回路８１ｂは、ＡＮＤ回路８１ａの出力信号の論理レベルが１のときは、アドレス信号ＰＡＤＤＲに基づき、書き込み先選択回路８１ｃにレジスタ７１，７２の何れかを選択させるための選択信号を生成する。
【００８５】
書き込み先選択回路８１ｃは、書き込みデータＰＷＤＡＴＡを入力し、選択信号生成回路８１ｂから供給される選択信号に基づき、書き込みデータＰＷＤＡＴＡを、レジスタ７１，７２に書き込む。
【００８６】
レジスタ読み出し部８２は、ＡＮＤ回路８２ａ、選択信号生成回路８２ｂ、読み出しデータ選択回路８２ｃを有する。
ＡＮＤ回路８２ａは、選択信号ＰＳＥＬ、イネーブル信号ＰＥＮＡＢＬＥを入力するとともに、インバータ回路７３で論理レベルが反転された書き込み信号ＰＷＲＩＴＥを入力し、これらの信号のＡＮＤ論理演算結果を出力する。
【００８７】
選択信号生成回路８２ｂは、アドレス信号ＰＡＤＤＲと、ＡＮＤ回路８２ａの出力信号を入力する。そして、選択信号生成回路８２ｂは、ＡＮＤ回路８１ａの出力信号の論理レベルが１のときは、アドレス信号ＰＡＤＤＲに基づき、読み出しデータ選択回路８２ｃにレジスタ７０または、レジスタ７１，７２の何れかを選択させるための選択信号を生成する。
【００８８】
読み出しデータ選択回路８２ｃは、選択信号生成回路８２ｂから供給される選択信号に基づき、レジスタ７０または、レジスタ７１，７２のデータを読み出し、読み出しデータＰＲＤＡＴＡとして、図示しないバスに出力する。
【００８９】
以上で、ステップＳ１７の処理の説明を終える。
次に、プロセッサ２１は、実装情報の更新を行う（ステップＳ１８）。
前述のように、レジスタの端子名は、“インスタンス名”＿“端子名”＿“ビット位置（２ビット以上の場合）”というネーミングルールで定義されているため、回路部１２ａ，１２ｂにおいて、レジスタの端子と接続する端子の検索は容易である。
【００９０】
実装情報として、図８に示したような接続仕様５１を用いた場合には、たとえば、以下のように更新される。
図１９は、接続仕様の更新例を示す図である。
【００９１】
更新された接続仕様５１ａにおいて、端子名が“Ｄ”の端子Ｄについては、接続先が、“ｉｎｓｔ＿ｍｋｒｅｇ＿ＢＬＫ＿ＸＹ．ｉｎｓｔＸ＿Ｄ”と更新されている。“ｉｎｓｔ＿ｍｋｒｅｇ＿ＢＬＫ＿ＸＹ”は、レジスタモジュールのインスタンス名であり、“ｉｎｓｔＸ＿Ｄ”は、レジスタ７０の入力端子の端子名である。また端子名が“Ｆ”の端子Ｆについては、接続先が、“ｉｎｓｔ＿ｍｋｒｅｇ＿ＢＬＫ＿ＸＹ．ｉｎｓｔＹ＿Ｆ＿１”と“ｉｎｓｔ＿ｍｋｒｅｇ＿ＢＬＫ＿ＸＹ．ｉｎｓｔＹ＿Ｆ＿０に更新されている。“ｉｎｓｔＹ＿Ｆ＿１”は、レジスタ７１の出力端子の端子名であり、“ｉｎｓｔＹ＿Ｆ＿０”は、レジスタ７２の出力端子の端子名である。
【００９２】
さらに、プロセッサ２１は、実装情報としてレジスタモジュールの接続仕様を生成する。
図２０は、レジスタモジュールの接続仕様の一例を示す図である。
【００９３】
レジスタモジュールの接続仕様５１ｂには、モジュール名とインスタンス名のほか、図１８に示したようなレジスタモジュール８０の各端子の端子名と、ビット数、端子方向（“Ｉ”は入力端子、“Ｏ”は出力端子）、接続先が示されている。
【００９４】
実装情報として、図９、図１０に示したようなＲＴＬ情報５２ａ，５２ｂを用いた場合には、たとえば、以下のように更新される。
図２１は、ＲＴＬ情報の更新例を示す図である。
【００９５】
ＲＴＬ情報５２ｃには、図１８に示したようなレジスタモジュールの端子の端子名などが追加されている。なお、上記の説明では、“ＰＣＬＫ”などはクロック信号であるとしたが、図２１では端子名として表記してある。
【００９６】
また、端子Ｄについては、接続先が“．Ｄ（ｔｉｅｏｆｆ＿ｗｉｒｅ１）”と更新されている。“ｔｉｅｏｆｆ＿ｗｉｒｅ１”は、図１７に示したようなレジスタ７０の端子名“ｉｎｓｔＸ＿Ｄ”の入力端子と回路部１２ａの端子Ｄとを結ぶ配線名である。また、“ｔｉｅｏｆｆ＿ｗｉｒｅ２”は、図１７に示したようなレジスタ７１の端子名“ｉｎｓｔＹ＿Ｆ＿１”の入力端子と回路部１２ｂの端子Ｆ［１］とを結ぶ配線名である。また、“ｔｉｅｏｆｆ＿ｗｉｒｅ３”は、図１７に示したようなレジスタ７２の端子名“ｉｎｓｔＹ＿Ｆ＿０”の入力端子と回路部１２ｂの端子Ｆ［０］とを結ぶ配線名である。
【００９７】
また、ＲＴＬ情報５２ｃには、レジスタモジュール８０の各端子の接続先を示す情報が、“ｍｋｒｅｇ＿ＢＬＫ＿ＸＹ  ｉｎｓｔ＿ｍｋｒｅｇ＿ＢＬＫ＿ＸＹ”以下の部分に追加されている。
【００９８】
以上のような実装情報の更新は、ユーザが行ってもよい。たとえば、接続仕様５１が市販の表計算ソフトで作成されている場合は、ユーザは、ＶＢＡ（Visual Basic for Applications）などを用いて、図１９、図２０に示したような接続仕様５１ａ，５１ｂを作成できる。
【００９９】
以上のようなステップＳ１８の処理が終了すると、本実施の形態の設計方法の処理が終わる。なお、各ステップの順序は、図４や図１２に示した例に限定されない。たとえば、図４において、ステップＳ１３，Ｓ１４の処理をステップＳ１０〜Ｓ１２の処理よりも前に行ってもいいし、並列に行ってもよい。また、図１２において、ステップＳ２１，Ｓ２２の順序を入れ替えてもよい。
【０１００】
図２２は、本実施の形態の設計方法により設計された半導体装置の一例を示す図である。図１、図１８に示した要素と同じ要素については同一符号が付されている。
半導体装置９０は、たとえば、ＳｏＣ（System on Chip）であり、回路部１２ａ，１２ｂ、レジスタモジュール８０、バス９１、ＣＰＵ９２を有している。
【０１０１】
ＣＰＵ９２は、バス９１を介してレジスタモジュール８０にアクセスできる。たとえば、ＣＰＵ９２は、レジスタモジュール８０に対してライトアクセスを行い、図１８に示したレジスタ７１，７２に格納されている値を変えることで、回路部１２ｂの端子Ｆのクリップ値を変更することができる。
【０１０２】
また、ＣＰＵ９２は、レジスタモジュール８０に対してリードアクセスを行い、図１８に示したレジスタ７０に書き込まれた回路部１２ａの端子Ｄの値を読み出すことができる。
【０１０３】
図２３は、書き込み処理時と読み出し処理時におけるレジスタモジュールのアドレスの指定例を示す図である。
図２３では、ＡＭＢＡのＡＰＢを適用した場合の信号例が示されている。ＣＰＵ９２はレジスタモジュール８０に対して、バス９１を介して、クロック信号ＰＣＬＫなど、前述した各種信号を供給する。
【０１０４】
書き込み時には、ＣＰＵ９２は、書き込み信号ＰＷＲＩＴＥを１として、端子Ｆと接続されているレジスタ（図１７の例ではレジスタ７１，７２）のアドレスを、アドレス信号ＰＡＤＤＲで指定する（図２３の例では、０ｘ４）。そして、ＣＰＵ９２は、バス９１を介して書き込みデータＰＷＤＡＴＡ（図２３の例では０ｘ１１）を指定したアドレスのレジスタに書き込む。これにより、回路部１２ｂの端子Ｆの値を変更できる。
【０１０５】
読み出し時には、ＣＰＵ９２は、書き込み信号ＰＷＲＩＴＥを０として、端子Ｄと接続されているレジスタ（図１７の例ではレジスタ７０）のアドレスを、アドレス信号ＰＡＤＤＲで指定する（図２３の例では、０ｘ０）。そして、ＣＰＵ９２は、指定されたアドレスのレジスタに格納された端子Ｄの値（図２３の例では０）を読み出しデータＰＲＤＡＴＡとして読み出す。
【０１０６】
以上のように、第２の実施の形態の設計方法及び設計装置によれば、第１の実施の形態の設計方法及び設計装置と同様の効果が得られるとともに、実装ミスが発生する端子にレジスタを接続することで、ＣＰＵなどによる値の書き換えや、読み出しが可能となる。そのため、固定値を変更して問題発生時のリカバリを行ったり、デバッグを行うことが可能となる。
【０１０７】
以上、実施の形態に基づき、本発明の設計方法、設計装置及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【０１０８】
１  設計装置（コンピュータ）
２  プロセッサ
３  記憶部
１１  仕様情報
１２  実装情報
１２ａ，１２ｂ  回路部
１３  属性情報
１４  接続先情報
Ａ〜Ｇ  端子
【図１】
2016206957.tif 000003
【図２】
2016206957.tif 000004
【図３】
2016206957.tif 000005
【図４】
2016206957.tif 000006
【図５】
2016206957.tif 000007
【図６】
2016206957.tif 000008
【図７】
2016206957.tif 000009
【図８】
2016206957.tif 000010
【図９】
2016206957.tif 000011
【図１０】
2016206957.tif 000012
【図１１】
2016206957.tif 000013
【図１２】
2016206957.tif 000014
【図１３】
2016206957.tif 000015
【図１４】
2016206957.tif 000016
【図１５】
2016206957.tif 000017
【図１６】
2016206957.tif 000018
【図１７】
2016206957.tif 000019
【図１８】
2016206957.tif 000020
【図１９】
2016206957.tif 000021
【図２０】
2016206957.tif 000022
【図２１】
2016206957.tif 000023
【図２２】
2016206957.tif 000024
【図２３】
2016206957.tif 000025