(57)【特許請求の範囲】
【請求項１】
設計支援装置が、
ネットリストと、複数種類のユニットセルのレイアウト情報とに基づいて、半導体装置に搭載する前記ユニットセルの種類を解析し、
前記解析されたユニットセルの種類に基づいて前記半導体装置に搭載する少なくとも第１及び第２の種類を含む複数種類のバルクの個数を算出し、
前記複数種類のバルクの並び順に対する制約情報に基づいて前記半導体装置に含まれる複数の列領域に前記複数種類のバルクを配置し、
前記配置された前記複数種類のバルクを含む前記ユニットセルを前記複数の列領域に配置し、
前記複数の列領域のそれぞれに配置された前記ユニットセルのそれぞれに含まれる前記複数種類のバルクの数に基づいて、前記各列領域における前記バルクの種類毎の使用率を求め、
前記各列領域における第１の種類のバルクの使用率と第２の種類のバルクの使用率の差が閾値よりも大きい場合に、前記各列領域に配置された前記ユニットセルの配置位置を変更する
ことを特徴とする半導体装置の設計方法。
【請求項２】
前記各列領域に配置されたユニットセルの配置位置の変更は、前記各列領域における前記第１の種類のバルクの使用率と前記第２の種類のバルクの使用率の差が、前記閾値よりも小さくなるように行なわれる
ことを特徴とする請求項１に記載の半導体装置の設計方法。
【請求項３】
前記設計支援装置が、
前記ネットリストに基づいて、前記半導体装置に信号配線の情報を生成し、
前記信号配線についてタイミング解析を行い、前記タイミング解析の結果に基づいてタイミング調整用のユニットセルを配置する
ことを特徴とする請求項２に記載の半導体装置の設計方法。
【請求項４】
前記設計支援装置が、
前記タイミング調整用のユニットセルの配置後、前記各列領域における前記バルクの種類毎の使用率を求め、前記各列領域における前記第１の種類のバルクの使用率と前記第２の種類のバルクの使用率の差が閾値よりも大きい場合に、前記各列領域に配置されたユニットセルの配置位置を変更する
ことを特徴とする請求項３に記載の半導体装置の設計方法。
【請求項５】
設計支援装置に、
ネットリストと、複数種類のユニットセルのレイアウト情報とに基づいて、半導体装置に搭載する前記ユニットセルの種類を解析する工程と、
前記解析されたユニットセルの種類に基づいて前記半導体装置に搭載する少なくとも第１及び第２の種類を含む複数種類のバルクの個数を算出する工程と、
前記複数種類のバルクの並び順に対する制約情報に基づいて前記半導体装置に含まれる複数の列領域に前記複数種類のバルクを配置する工程と、
前記配置された前記複数種類のバルクを含む前記ユニットセルを前記複数の列領域に配置する工程と、
前記複数の列領域のそれぞれに配置された前記ユニットセルのそれぞれに含まれる前記複数種類のバルクの数に基づいて、前記各列領域における前記バルクの種類毎の使用率を求める工程と、
前記各列領域における第１の種類のバルクの使用率と第２の種類のバルクの使用率の差が閾値よりも大きい場合に、前記各列領域に配置された前記ユニットセルの配置位置を変更する工程と
を実行させることを特徴とするプログラム。
【請求項６】
前記各列領域に配置された前記ユニットセルの配置位置を変更する工程においては、前記各列領域における前記第１の種類のバルクの使用率と前記第２の種類のバルクの使用率の差が、前記閾値よりも小さくなるように行なわれる
ことを特徴とする請求項５に記載のプログラム。
【請求項７】
前記設計支援装置に、
前記ネットリストに基づいて、前記半導体装置に信号配線の情報を生成する工程と、
前記信号配線についてタイミング解析を行い、前記タイミング解析の結果に基づいてタイミング調整用のユニットセルを配置する工程と
を実行させることを特徴とする請求項６に記載のプログラム。
【請求項８】
前記設計支援装置に、
前記タイミング調整用のユニットセルの配置後、前記各列領域における前記バルクの種類毎の使用率を求め、前記各列領域における前記第１の種類のバルクの使用率と前記第２の種類のバルクの使用率の差が閾値よりも大きい場合に、前記各列領域に配置されたユニットセルの配置位置を変更する工程
を実行させることを特徴とする請求項７に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
半導体装置の設計方法及びプログラムに関する。
【背景技術】
【０００２】
従来、短期間でユーザの要望に応じたチップを提供するために、ゲートアレイ等の半導体装置が用いられている。ゲートアレイは、複数の素子（例えばトランジスタ）を含むバルク（Ｂｕｌｋ）を格子状に形成したマスタ基板に、配線を形成することによりチップとして提供される。
【０００３】
回路を構成するセル（例えばＡＮＤ回路）は、バルクの構成に応じて、１又は複数のバルクにより構成される。例えば、４個のトランジスタを含むバルクの場合、アンド回路は１個のバルクを用いて形成される。しかし、フリップフロップ回路等のように、構成するトランジスタの数が多いセルは、複数のバルクを用いて形成される。
【０００４】
このため、複数種類のバルクを基板上に形成することが提案されている。例えば、図２０（ａ）に示すように、４個のトランジスタを含む第１のバルク（図中，「Ａ」と表記）と、８個のトランジスタを含む第２のバルク（図中，「Ｂ」と表記）とを基板上に形成する。第２のバルクの面積は、２個の第１のバルクの面積よりも小さい。これは、第２のバルクについて、バルクに含まれるトランジスタ同士を分離する必要がないためである。つまり、図２０（ｂ）示すように、１種類のバルク（図では第１のバルクＡ）を用いたゲートアレイに比して、複数種類のバルクを用いたゲートアレイの方が、セルサイズを小さくすることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ゲートアレイに形成するためのセル（ゲートアレイセル）は、使用するバルクに応じて設計される。つまり、図２０（ａ）に示すゲートアレイの場合、セルは、第１のバルクＡと第２のバルクＢとの少なくとも一方を用いて定義される。このため、セルの配置に自由度が少なくなる。例えば、第１のバルクＡと第２のバルクＢをそれぞれ１個使用するセルは、第１のバルクＡと第２のバルクＢとが隣接する場所にしか配置できない。
【０００６】
このため、特定の列に対してセルが集中して配置されることになる。すると、セルに接続される配線も集中することになり、信号配線の収束性、即ち全ての信号配線を接続することができにくくなる場合がある。このように、チップサイズを縮小する妨げとなっていた。
【課題を解決するための手段】
【０００７】
本発明の一観点によれば、設計支援装置が、ネットリストと、複数種類のユニットセルのレイアウト情報とに基づいて、半導体装置に搭載する前記ユニットセルの種類を解析し、前記解析されたユニットセルの種類に基づいて前記半導体装置に搭載する少なくとも第１及び第２の種類を含む複数種類のバルクの個数を算出し、前記複数種類のバルクの並び順に対する制約情報に基づいて前記半導体装置に含まれる複数の列領域に前記複数種類のバルクを配置し、前記配置された前記複数種類のバルクを含む前記ユニットセルを前記複数の列領域に配置し、前記複数の列領域のそれぞれに配置された前記ユニットセルのそれぞれに含まれる前記複数種類のバルクの数に基づいて、前記各列領域における前記バルクの種類毎の使用率を求め、前記各列領域における第１の種類のバルクの使用率と第２の種類のバルクの使用率の差が閾値よりも大きい場合に、前記各列領域に配置された前記ユニットセルの配置位置を変更する。
【発明の効果】
【０００８】
本発明の一観点によれば、チップサイズの縮小を図ることができる。
【図面の簡単な説明】
【０００９】
【図１】設計支援装置の概略構成図である。
【図２】設計処理の概略フローチャートである。
【図３】ユニットセル作成処理のフローチャートである。
【図４】チップレイアウト作成処理のフローチャートである。
【図５】チップレイアウト作成処理のフローチャートである。
【図６】（ａ）（ｂ）は、バルク配置の説明図である。
【図７】（ａ）（ｂ）は、バルク配置の説明図である。
【図８】（ａ）〜（ｃ）は、バルク配置の説明図である。
【図９】（ａ）〜（ｃ）は、バルク配置の説明図である。
【図１０】（ａ）（ｂ）は、バルク配置の説明図である。
【図１１】バルク配置の説明図である。
【図１２】（ａ）（ｂ）は、バルク配置の説明図である。
【図１３】（ａ）（ｂ）は、バルクの説明図である。
【図１４】（ａ）（ｂ）は、バルクの説明図である。
【図１５】ＲＯＷ内バルク形状決定処理の説明図である。
【図１６】ＲＯＷ内バルク形状決定処理の説明図である。
【図１７】（ａ）（ｂ）は、バルク形状決定処理の説明図である。
【図１８】ＲＯＷ内バルク形状決定処理の説明図である。
【図１９】チップレイアウト作成処理のフローチャートである。
【図２０】（ａ）（ｂ）は、バルク配置の説明図である。
【発明を実施するための形態】
【００１０】
以下、一実施形態を図面に従って説明する。
図１に示すように、設計支援装置１１は、例えば一般的な設計支援装置（ＣＡＤ：Computer Aided Design ）であり、中央処理装置（以下、ＣＰＵという）１２、メモリ１３、記憶装置１４、表示装置１５、入力装置１６、及び、ドライブ装置１７により構成され、それらはバス１８を介して相互に接続されている。この設計支援装置１１は、半導体装置に形成するユニットセルを作成するデータ作成装置として機能する。また、設計支援装置１１は、ユニットセルを用いて半導体装置に形成するパターンを作成するデータ作成装置として機能する。
【００１１】
ＣＰＵ１２は、メモリ１３を利用してプログラムを実行し、半導体装置の設計等の必要な処理を実現する。メモリ１３には、各種処理を提供するために必要なプログラムとデータが格納され、メモリ１３としては、通常、キャッシュ・メモリ、システム・メモリおよびディスプレイ・メモリを含む。
【００１２】
表示装置１５は、パターン表示、パラメータ入力画面等の表示に用いられ、これにはＣＲＴ，ＬＣＤ，ＰＤＰ等が用いられる。入力装置１６は、ユーザからの要求や指示，パターン，パラメータの入力に用いられ、これにはキーボードおよびマウス装置（図示せず）等が用いられる。設計支援装置１１は、ライブラリに基づくユニットセルのパターン（図形）、バルクの配列状態、検証結果、等を表示装置１５に表示させることもできる。
【００１３】
記憶装置１４は、通常、磁気ディスク装置、光ディスク装置、光磁気ディスク装置を含む。この記憶装置１４には、半導体装置（半導体集積回路装置）を設計するためのプログラムデータを含むファイルが格納され、ＣＰＵ１２は、入力装置１６による指示に応答しているプログラムをメモリ１３へ転送し、それを実行する。
【００１４】
この設計支援装置１１において、記憶装置１４には図３〜５に示すファイルが格納される。これらのファイルには、半導体装置を製造するために用いられる各種データ、図３〜図５に示す各処理においてＣＰＵ１２が作成する各種データが格納される。尚、各ファイルに格納されるデータについては後述する。設計支援装置１１は、記憶装置１４のファイルに格納されたデータを読み出し、そのデータに基づいて、半導体装置の設計データ（例えばレイアウトデータ）を作成する。そして、設計支援装置１１は、作成したデータを含むファイルを記憶装置１４に格納する。
【００１５】
ＣＰＵ１２が実行するプログラムデータは、記録媒体１９にて提供される。ドライブ装置１７は、記録媒体１９を駆動し、その記憶内容にアクセスする。ＣＰＵ１２は、ドライブ装置１７を介して記録媒体１９からプログラムデータを読み出し、それを記憶装置１４にインストールする。
【００１６】
記録媒体１９としては、磁気テープ（MT）、メモリカード、フレキシブルディスク、光ディスク（CD-ROM,DVD-ROM,… ）、光磁気ディスク（MO,MD,…）等、任意のコンピュータ読み取り可能な記録媒体を使用することができる。この記録媒体１９に、上述のプログラム，データを格納しておき、必要に応じて、メモリ１３にロードして使用することもできる。
【００１７】
尚、記録媒体１９には、通信媒体を介してアップロード又はダウンロードされたプログラムデータを記録した媒体、ディスク装置を含む。更に、コンピュータによって直接実行可能なプログラムを記録した記録媒体だけでなく、いったん他の記録媒体（ハードディスク等）にインストールすることによって実行可能となるようなプログラムを記録した記録媒体や、暗号化されたり、圧縮されたりしたプログラムを記録した記録媒体も含む。
【００１８】
次に、設計処理の概要を図２に従って説明する。
ステップ２１（ユニットセル作成工程）において、設計支援装置１１は、チップに搭載するユニットセルが使用するバルク及びその並びを決定し、ユニットセルのレイアウトデータを生成する。
【００１９】
ステップ２２（チップレイアウト工程）において、設計支援装置１１は、ユニットセルのバルクに応じて、チップ上の列、及び列を構成するバルクの並びを決定する。そして、設計支援装置１１は、ユニットセルを配置し、チップのレイアウトデータを生成する。
【００２０】
ステップ２２は、ステップ２２ａ〜２２ｃのサブステップを含む。
ステップ２２ａ（バルク領域設定）において、設計支援装置１１は、バルク情報と半導体装置の論理情報に基づいて、列（バルク領域）を設定する。バルク情報は、ステップ２１において設定したユニットセルが使用するバルク、バルクの並び順に対する制限情報を含む。論理情報は例えばチップに形成する回路のネットリストである。設計支援装置１１は、バルク情報と論理情報とに基づいて、列に形成するバルクの種類、数、並び順を設定する。
【００２１】
ステップ２２ｂ（セル配置）において、設計支援装置１１は、ステップ２２ａにおいて生成した列にユニットセルを配置する。次に、ステップ２２ｃ（バルク使用状況検証）において、設計支援装置１１は、チップ上の列について、バルクの列使用率をバルクの種類毎に算出する。そして、設計支援装置１１は、算出した列使用率に基づいて、バルクの使用状況が均等か不均等かを判定し、不均等の場合にステップ２２ｂに戻ってセル配置を変更する。
【００２２】
一方、設計支援装置１１は、バルクの使用状況を均等と判定した場合、ステップ２３に移行する。そして、ステップ２３（配線工程）において、設計支援装置１１は、配置したセルに対する信号配線の配置データを生成する。
【００２３】
次に、ユニットセル作成処理を図３に従って説明する。
ステップ４１（作成セル検討）において、設計支援装置１１は、ファイル３１から読み出したターゲットアプリケーションの情報と、ファイル３２から読み出したプロセスルールに従って、作成するユニットセルの種類を検討する。ターゲットアプリケーション３１には、ユーザが要求する半導体装置（チップ）の使用目的（アプリケーション）の情報が含まれる。アプリケーションは、例えば、デジタルスチルカメラ、プリンタ等の用途を示す情報である。作成するユニットセルは、例えば、論理積回路（ＡＮＤ回路），否定論理積回路（ＮＡＮＤ回路），フリップフロップ回路（ＦＦ回路）、等の論理回路の種別、駆動能力（出力電流量）等の電気的特性が異なるバッファ回路やインバータ回路、等である。
【００２４】
半導体装置の用途（アプリケーション）により、必要とするセルの種類（論理回路や電気的特性）が異なる。このため、設計支援装置１１は、ターゲットアプリケーションの情報に基づいて、作成するセルの種類を検討する。
【００２５】
次に、ステップ４２（レイアウト見積もり）において、設計支援装置１１は、ステップ４１の検討結果と、プロセスルール３２に基づいて、バルクの形状を検討する。プロセスルール３２には、チップを作成する製造工程における製造ルール（例えば、１８０ｎｍ，９０ｎｍ等の線幅、配線間隔、等）が含まれる。設計支援装置１１は、作成するユニットセルに対して、セルの面積を最も小さくするために、必要とするバルクの形状（バルクの構造）を見積る。
【００２６】
例えば、設計支援装置１１は、レイアウトが最も小さなバルク形状のセル（例えばスタンダードセル）のレイアウトを基準とする。そして、設計支援装置１１は、作成するユニットセルに必要なバルクの種類及び数を洗い出す。
【００２７】
次に、ステップ４３（バルク種類検討）において、設計支援装置１１は、ステップ４２において洗い出したバルクの情報に基づいて、作成するバルクの種類の数を設定する。
ユニットセルを配置する観点では、バルクの種類が少ないほど配置の自由度が高くなり、バルク配置の均等性を良くすることができる。一方、ユニットセルのサイズ（面積）の観点では、バルクの種類が少ないと、セルサイズが大きくなり、チップサイズの増大を招く。このため、設計支援装置１１は、バルク種類の組合せが異なる組合せ例を複数記憶し、洗い出したバルクの種類から、組合せ例を選択する。その組合せ例を以下に示す。
【００２８】
第１の案（Ａ案）は、２種類のバルクを含む。これらのバルクは、図１３（ａ）に示すように、４個のトランジスタを含むバルク（以下、４Ｔｒバルク）Ｂ１Ａと、図１３（ｂ）に示す８個のトランジスタを含むバルク（以下、８Ｔｒバルク）Ｂ１Ｂである。第２の案（Ｂ案）は、２種類のバルクを含む。これらのバルクは、図１４（ａ）に示す６個のトランジスタを含むバルク（以下、６Ｔｒバルク）Ｂ２Ａと、８ＴｒバルクＢ２Ｂである。
【００２９】
設計支援装置１１は、ターゲットアプリケーションの情報に基づいて、セル使用頻度からバルクの種類を判定する。そして、設計支援装置１１は、バルクの使用状況に基づいて、各案についてセルの面積を算出する。例えば、図１５に示すように、ターゲットアプリケーションがデジタルスチルカメラの場合、上記第１の案（Ａ案）ではセルエリアが３平方μｍとなり、上記第２の案（Ｂ案）では３．５平方μｍとなる。従って、設計支援装置１１は、デジタルスチルカメラに使用する半導体装置について、第１の案（Ａ案）を採用する。また、ターゲットアプリケーションがプリンタの場合、上記第１の案（Ａ案）ではセルエリアが３．２平方μｍとなり、上記第２の案（Ｂ案）では２．８平方μｍとなる。従って、設計支援装置１１は、プリンタに使用する半導体装置について、第２の案（Ｂ案）を採用する。
【００３０】
次に、設計支援装置１１は、採用したバルク種類の案に基づいて、バルクの使用状況を算出する。例えば、図１６に示すように、デジタルスチルカメラの場合、４Ｔｒバルクと、８Ｔｒバルクの使用状況の割合は、５０％：５０％となる。また、プリンタの場合、６Ｔｒバルクと、８Ｔｒバルクの使用状況の割合は、４０％：６０％となる。
【００３１】
次に、ステップ４４（各セルのバルク割り振り）において、設計支援装置１１は、作成する各ユニットセルに対して、利用するバルクを決定する。
例えば、１つのユニットセルがＮＡＮＤ回路の場合、このセルを４Ｔｒバルクのみを用いてレイアウトした方が良いか、８Ｔｒバルクのみを用いてレイアウトした方が良いかを、検討する。
【００３２】
ステップ４５（チップサイズ見積り）において、設計支援装置１１は、設定したバルクの種類、バルクを割り振るセルの種類及び数に基づいて、バルクを搭載するチップの概略サイズを見積る。例えば、設計支援装置１１は、ネットリストから各ユニットセルの数を算出し、その算出結果から各バルクの使用数を算出する。そして、設計支援装置１１は、バルクの数にバスクの面積を乗算し、各バルクの総面積の和に、チップにおいてバルク以外に必要とする要素（Ｉ／Ｏセルやパッド）の面積を加算した結果を、チップの概略サイズとする。
【００３３】
ステップ４６（チップサイズ検証）において、設計支援装置１１は、ステップ４５において見積もったチップのサイズが妥当か否かを判定する。設計支援装置１１は、ターゲットとするチップのサイズと、ステップ４５において見積もった概略サイズとを比較し、予定した数及び種類のバルクがチップに搭載可能であるか否かを判定する。そして、設計支援装置１１は、搭載可能であると判定した場合には次のステップ４７に移行する。一方、設計支援装置１１は、搭載不可能であると判定した場合には、ステップ４３又はステップ４４に移行する。移行するステップは、例えば、サイズの比較結果に応じて設定される。例えば、ターゲットのサイズと見積もった概略サイズとの差が大きい場合にはステップ４３へ移行し、差が小さい場合にはステップ４４へ移行する。
【００３４】
ステップ４７（レイアウト）において、設計支援装置１１は、設定した各バルクを用いてユニットセルのレイアウトデータを作成し、その作成したレイアウトデータをユニットセルライブラリ（Unit Cell ライブラリと表記）３３に格納する。ユニットセルのレイアウトデータは、ユニットセルを形成するために必要とするバルクの種類及び個数を含む。また、ユニットセルのレイアウトデータは、バルク内にあってゲート間を接続する配線のデータ、複数のバルクを用いて形成されたユニットセルにおいてバルク間を接続する配線のデータを含む。
【００３５】
また、設計支援装置１１は、作成したユニットセルのレイアウトに基づいて、バルクの並び順制約の情報を作成し、その情報をファイル３４に格納する。並び順制約は、使用するバルクの種類、及び使用するバルクの並び順の定義情報である。例えば、１つのセルをチップ上に形成するためには、１つのバルクＢと、２つのバルクＡを必要とし、それらのバルクは「ＢＡＡ」の順番で並べられていなければセルを形成することができない。また、別のセルをチップ上に形成するためには、それぞれ１つのバルクＡ，Ｂを必要とし、それらのバルクは「ＡＢ」の順番で並べられていなければセルを形成することができない。これらの場合、設計支援装置１１は、各セルのバルクの並びを並び順制約として抽出し、それらの情報をファイル３４に格納する。
【００３６】
次に、チップレイアウト作成処理を図４，図５に従って説明する。
図４に示すステップ６１（セル種類解析）において、設計支援装置１１は、タイミング制約５１、ネットリスト５２、ユニットセル(Unit Cell )ライブラリ３３を読み込む。タイミング制約５１は、タイミングを考慮した配置処理時に参照されるデータであり、回路のクロック情報、マルチパス、フォールトパス等が記述されている。ネットリスト５２は、端子やユニットセル等の回路要素の接続関係を示すデータである。設計支援装置１１は、読み込んだデータに基づいて、半導体装置（チップ）に搭載するユニットセルの種類を解析する。
【００３７】
次に、ステップ６２（バルク種毎の個数算出）において、設計支援装置１１は、ステップ６１において解析したセル種類に基づいて、チップ上にユニットセルを形成するために必要なバルクの個数を算出する。更に、設計支援装置１１は、算出したバルクの個数に基づいて、列（ＲＯＷ）に配列するバルクの個数を算出する。
【００３８】
ネットリストには、ネットリストに含まれるユニットセルに対して、配線により伝達される信号のタイミングを調整するために必要なセル（クロックバッファ、バッファ、インバータ、等）は含まれていない。また、上記のタイミングの調整や、半導体装置の特性（例えば消費電力）などを調整するために、ユニットセルを同じ論理構成であって電気的特性が異なるユニットセルに交換する場合がある。このような場合を想定し、列に含まれるバルクの数に対して、ネットリストに従って使用するバルクの数の比率（ロウ使用率）が設定される。設計支援装置１１は、このロウ使用率に従って、ロウを構成するバルクの数を、バルクの種類毎に算出する。
【００３９】
次に、ステップ６３（ＲＯＷ生成）において、設計支援装置１１は、ユニットセルバルク並び順制約３４に基づいて、列に対するバルクの配列を決定する。設計支援装置１１は、制約３４に応じた数のバルクを、その制約に従って配置する。例えば、２種類のバルク（バルクＡとバルクＢ）を同数配置する場合、図１７（ａ）に示すように、各種類のバルクをまとめて配置することが考えられる。しかし、このように配置すると、バルクＡを使用するセル、バルクＢを使用するセルが隣接して配置されることになる、つまり、同様な特性のセルが集中して配置されることとなる。このため、設計支援装置１１は、並び順制約３４に従って、図１７（ｂ）に示すように、バルクＡとバルクＢを交互に配置する。このように配置することで、セルが集中配置されるのを防ぐことができる。
【００４０】
そして、設計支援装置１１は、並び順制約３４を満足し、バルクが残った場合、つまり制約３４を満足するバルクの個数が、ステップ６２において算出したバルクの個数よりも少ない場合、その差の数のバルクを均等に配置する。設計支援装置１１は、例えば図１８に示すように、制約に従って、バルクＢとバルクＡを「ＢＡＡ」の並びで配置した後、それぞれ同数のバルクＢとバルクＡを配置する。
【００４１】
なお、チップ上にメモリ（ＲＡＭ：Random Access Memory）を形成することもできる。この場合、ユニットセルの種類としてＲＡＭセルを用意する。そして、設計支援装置１１は、図３にステップ４２においてバルク形状のレイアウトを見積もり、ラムバルク並び順制約（G/A RAM Bulk並び順制約と表記）５３に基づいてバルクを配置する。
【００４２】
次に、ステップ６４（バルク数判定）において、設計支援装置１１は、ステップ６３において生成した列（ＲＯＷ）について、列に含まれるバルクの個数をバルクの種類毎に検証する。なお、後の工程においてセルが追加される可能性がある。追加されるセルの個数は、過去の半導体装置の設計において追加されたセルの個数を元に設定される。このため、設計支援装置１１は、追加されるセルの個数を考慮したロウ使用率を設定、若しくはアプリケーションに応じた値をテーブルから読み出し、その比率に基づいて検証を行う。なお、ロウ使用率をユーザが設定し、その比率ベースで検証するようにしてもよい。設計支援装置１１は、バルク数が足りているか否かを判定し、足りている（ＯＫ）場合には次のステップに移行し、足りていない（ＮＧ）場合にはステップ６３に戻ってロウの再作成を行う。
【００４３】
ステップ６５（並び順制約判定）において、設計支援装置１１は、ステップ６３において生成した列（ＲＯＷ）について、列に含まれるバルクの配列が、全てのユニットセルを配置可能な配列か否かを検証する。そして、設計支援装置１１は、配置可能（ＯＫ）と判定した場合には次のステップに移行し、配置不可能（ＮＧ）と判定した場合にはステップ６３に戻ってロウの再作成を行う。
【００４４】
次に、ステップ６６（セル配置）において、設計支援装置１１は、生成した列に対してユニットセルを配置する。
次に、ステップ６７（バルク使用状況検証）において、設計支援装置１１は、制御値５４に基づいて、バルクの配置が均等か否かを判定する。制御値５４は、検証サイズ、均等値を含む。検証サイズは、１回の検証処理において、検証の対象とするバルクが含まれる範囲（検証エリア）を示す値である。均等値は、検証サイズに含まれる各種のバルクの使用率の差に対する許容値である。
【００４５】
設計支援装置１１は、検証エリアに含まれるバルクの個数（総数）と、検証エリア内において使用されたバルクの個数（使用数）を、各バルクの種類毎にカウントする。設計支援装置１１は、使用率、すなわち総数に対する使用数の比率を、バルクの種類毎に算出する。そして、設計支援装置１１は、各種のバルクの使用率の差を算出し、その差の値と均等値とを比較する。設計支援装置１１は、使用率の差が均等値以下の場合に、配置が均等である（ＯＫ）と判定し、次のステップに移行する。一方、使用率の差が均等値より大きい場合、設計支援装置１１は、配置が均等ではない（ＮＧ）と判定し、ステップ６６に移行する。つまり、設計支援装置１１は、バルクの配置が均等である（ＯＫ）と判定するまでステップ６６の処理を繰り返し実行する。
【００４６】
図５に示すステップ６８（クロックツリー生成：ＣＴＳ：Clock Tree Synthesis）において、設計支援装置１１は、ネットリスト５２に基づいて、クロックツリー、すなわちユニットセルにクロック信号を供給する経路（パス）を形成する。クロックツリーは、パス中に含まれるクロックバッファと、セル間を接続する配線を含む。設計支援装置１１は、クロックバッファの配置情報（座標値）と、配線の配置情報（配線層、配線位置）を生成する。
【００４７】
次に、ステップ６９（バルク使用状況検証）において、設計支援装置１１は、制御値５４に基づいて、バルクの配置が均等か否かを判定する。そして、設計支援装置１１は、配置が均等ではない（ＮＧ）と判定したばあいにステップ７０に移行し、配置が均等である（ＯＫ）と判定した場合にステップ７１に移行する。
【００４８】
ステップ７０（均等配置）において、設計支援装置１１は、バルクの配置が均等となるように、セルの配置位置を変更する。例えば、設計支援装置１１は、バルクの使用率が高いエリアのユニットセルを、バルクの使用率が低いエリアに移動させる。
【００４９】
使用するバルクが異なるユニットセルは、ユニットセルのサイズや、配線を接続するためにセルに形成される端子の数が異なる。バルクの使用率を均一化することは、そのブロック（エリア）に含まれるユニットセルの密度や、端子の数の均一化につながる。ユニットセルの密度が低くなると、その分、チップサイズの縮小を図ることや、セル間等を接続する配線を形成し易くする。また、端子の数を均一化することにより、配線の集中を防止して、未結線配線の発生を抑制し、設計時間の短縮を図ることができる。
【００５０】
ステップ７１（電源電圧検証：ＩＲ−ＤＲＯＰ検証）において、設計支援装置１１は、配置したセルの情報に基づいて、電源配線におけるチップ内部の電位降下を検証する。例えば、設計支援装置１１は、シミュレーション（電源配線による抵抗網解析）により、チップ内部の電圧降下を算出する。そして、設計支援装置１１は、算出した電圧降下により、各セルに供給される電源電圧値を算出する。そして、設計支援装置１１は、算出した電源電圧値が動作保証範囲内か否かを判定する。設計支援装置１１は、電源電圧値が動作保証範囲内であるときに検証ＯＫ（適合）と判定し、電源電圧値が範囲外であるときに検証ＮＧ（不適合）と判定する。
【００５１】
次に、ステップ７２（検証判定）において、設計支援装置１１は、ステップ７１における検証結果がＯＫかＮＧかを判定する。そして、設計支援装置１１は、検証結果がＯＫであるときにはステップ７５に移行し、検証結果がＮＧであるときにはステップ７３に移行する。
【００５２】
ステップ７３（セル再配置）において、設計支援装置１１は、セルの再配置を行う。
次に、ステップ７４（バルク使用状況検証）において、設計支援装置１１は、制御値５４に基づいて、バルクの配置が均等か否かを判定する。そして、設計支援装置１１は、配置が均等である（ＯＫ）と判定した場合にステップ７５に移行し、配置が均等ではない（ＮＧ）と判定したばあいにステップ７３に移行する。つまり、設計支援装置１１は、バルクの配置が均等である（ＯＫ）と判定するまでステップ７３の処理を繰り返し実行する。
【００５３】
なお、クロックツリーに含まれるクロックバッファは、入力信号（クロック信号）に応答して出力信号を変更するため、他の論理回路を構成するセルに比べて動作が多く、消費電力が高い。設計支援装置１１は、バルクの配置が均等となる、未使用又は使用したバルクの数が、各検証エリア、バルクの種類に対して、均等となるように、ユニットセルを配置する。従って、クロックバッファも分散して配置されるため、チップにおいて、消費電力の分布が集中しにくくなる。
【００５４】
消費電力が高いセルが集中して配置されると、その配置された領域における電源電圧降下が、他の領域におけるそれよりも大きくなるため、ステップ７２の検証において、電圧降下が規定よりも大きくなる場合がある。しかし、設計支援装置１１はクロックバッファ等を均等配置するため、電圧降下が大きいセルが集中して配置されなくなり、ＮＧと判定されにくくなる。このことは、設計時間を短縮させる要因となり、設計期間の短縮、コスト低減に寄与する。
【００５５】
次に、ステップ７５（信号配線）において、設計支援装置１１は、ネットリスト５２に基づいて、回路要素を接続する信号配線の情報を生成する。そして、設計支援装置１１は、ユニットセルや配線を含むチップのレイアウトデータ（図示略）を記憶装置１４に記憶する。
【００５６】
次に、ステップ７６（タイミング検証）において、設計支援装置１１は、チップに形成する配線について、タイミング検証を行う。設計支援装置１１は、ユニットセルや配線の電気的特性、配線長などに基づいてタイミング解析（例えば、静的タイミング解析）を行い、その解析結果に基づいて、タイミングエラーの原因（クロック・スキュー、グリッチ、等）の有無を検証する。
【００５７】
次に、ステップ７７（検証判定）において、設計支援装置１１は、検証結果に基づいて、タイミングエラーの原因が存在しない（ＯＫ）の場合に処理を終了する。一方、検証結果に基づいて、タイミングエラーの原因が存在する（ＮＧ）の場合、設計支援装置１１はステップ７８に移行する。
【００５８】
ステップ７８（セル挿入）において、設計支援装置１１は、タイミングエラーを解消するように、挿入するユニットセル（例えばバッファ）の選択と、ユニットセルを挿入する箇所（ネット）を設定する。そして、ステップ７９（セル再配置）において、設計支援装置１１は、ステップ７８において設定したユニットセルを、該当する列に挿入する。そして、設計支援装置１１は、ユニットセルや配線を含むチップのレイアウトデータ（図示略）を記憶装置１４に記憶する。
【００５９】
次に、ステップ８０（バルク使用状況検証）において、設計支援装置１１は、制御値５４に基づいて、バルクの配置が均等か否かを判定する。そして、設計支援装置１１は、配置が均等である（ＯＫ）と判定した場合に処理を終了する。一方、配置が均等ではない（ＮＧ）と判定した場合、設計支援装置１１は、ステップ７９に移行する。つまり、設計支援装置１１は、バルクの配置が均等である（ＯＫ）と判定するまでステップ７９の処理を繰り返し実行する。
【００６０】
次に、バルクのレイアウト例を用いて上記の処理を説明する。
図６（ａ）には、単一のバルク（図中「Ａ」と表記）を用いたチップレイアウトの一部が示されている。このチップの場合、ＲＯＷ（列）は、１種類のバルクＡにより構成される。このようにバルクが形成されたチップには、バルクＡを用いたユニットセルが配置される。
【００６１】
図６（ｂ）には、２つのバルク（図中「Ａ」「Ｂ」と表記）を用いたチップレイアウトの一部が示されている。このチップの場合、ＲＯＷ（列）は、１個のバルクＢと２個のバルクＡの割合で構成されている。このように、バルクが形成されたチップには、バルクＡを用いたユニットセル、バルクＢを用いたユニットセル、バルクＡ及びバルクＢを用いたユニットセルが配置される。
【００６２】
図１に示す設計支援装置１１は、チップに形成するバルクに従ってユニットセルを配置する。そして、設計支援装置１１は、列に含まれるバルクに対して配置したセルが使用するバルクの比率をロウ使用率として、各バルクの種類毎に算出する。
【００６３】
例えば、図７（ａ）に示すように、チップに形成される各列Ｒ１は、バルクＡとバルクＢを含む。尚、図７（ａ）は、検証エリアＫ１に含まれる列Ｒ１及びバルクＡ，Ｂを示している。
【００６４】
設計支援装置１１は、図７（ａ）に示す列に対して、図７（ｂ）に示すように、セルを配置する。なお、図７（ｂ）において、ハッチングによりユニットセルを配置したバルクを示している。
【００６５】
そして、設計支援装置１１は、各バルクにおける列使用率を算出する。図７（ｂ）において、検証エリアＫ１内には、１６個のバルクＡが含まれ、５個のバルクＡに対してユニットセルが配置されている。従って、バルクＡに対する列使用率は、３１．２５％（＝５／１６×１００）となる。一方、検証エリアＫ１内には、８個のバルクＢが含まれ、３個のバルクＢに対してユニットセルが配置されている。従って、バルクＢに対する列使用率は、３７．５％（＝３／８×１００）となる。
【００６６】
次に、設計支援装置１１は、バルクＡの列使用率と、バルクＢの列使用率とを比較する。そして、設計支援装置１１は、その比較結果に基づいて、ユニットセルを変更する。設計支援装置１１は、ユニットセルの変更として、ユニットセルの配置位置を変更する。例えば、設計支援装置１１は、各バルクの列使用率の相対的な差（絶対値）と所定のしきい値とを比較し、列使用率の差がしきい値よりも大きいときに、ユニットセルを変更し、列使用率の差がしきい値以下のときにはユニットセルを変更しない。しきい値は、例えば、列に含まれるバルクの種類、各バルクの個数に応じて設定される。
【００６７】
例えば、しきい値を５％とすると、図７（ｂ）において、バルクＡの列使用率とバルクＢの列使用率の差が６．２５％であるため、設計支援装置１１は、ユニットセルを変更する。例えば、バルクＡを使用するユニットセルのうちの１つと、バルクＢを使用するユニットセルのうちの１つを、この検証エリアＫ１から他の場所へ移動させる。これにより、バルクＡの列使用率と、バルクＢの列使用率との均一化を図る。
【００６８】
尚、列使用率の上限値を設定し、各バルクの列使用率が上限値を超えるときに、列使用率の均一化を図るようにしてもよい。各バルクの使用率が上限値よりも小さい場合、検証エリア内には使用可能な多くのバルクが含まれている。従って、各バルクの列使用率を均一化しなくても、各バルクを使用するユニットセルを自由に配置することができるからである。
【００６９】
次に、ユニットセルの調整について説明する。
今、一例として、図８（ａ）に示すように、バルクＡとバルクＢを使用してユニットセルが配置されている。図において、使用されたバルクＡを右下がりのハッチングにて示し、使用されたバルクＢを左下がりのハッチングにて示す。ハッチングが無いバルクは未使用である。この場合、バルクＡの列使用率とバルクＢの列使用率は、それぞれ５６．２５％，５０％である。
【００７０】
上記のエリア内に、例えば、４個のバッファセルを挿入する。１個のバッファセルは、４個のトランジスタにより構成される。上記したように、バルクＡは４個のトランジスタを含み、バルクＢは８個のトランジスタを含む。従って、図８（ｃ）に示すように、バルクＡのみを使用して４個のバッファセル９１を挿入することが可能である。しかし、このようにバッファセルを挿入すると、バルクＡの列使用率が８１．２５％となり、バルクＡの列使用率が局所的に増加することになる。
【００７１】
このため、設計支援装置１１は、バルクが異なるユニットセルを選択する。例えば、設計支援装置１１は、挿入する４個のバッファセルのうち、図８（ｂ）に示すように、バルクＡを使用する２個のバッファセル９１を選択するとともに、バルクＢを使用する２個のバッファセル９２を選択する。すると、バルクＡの列使用率とバルクＢの列使用率は、それぞれ６８．７５％，７５％となる。このように、図８（ｃ）に示すレイアウトに比して、図８（ｂ）に示すレイアウトは、バルクの列使用率が均一化されている。
【００７２】
なお、バルクＢを使用するバッファセルは、バルクＡを使用するバッファセルの駆動能力の１．５倍の駆動能力を持つ。つまり、設計支援装置１１は、挿入するユニットセルの電気的特性の変更を許容することにより、バルクの列使用率を均一化することができる。
【００７３】
また、別の例として、図９（ａ）に示すように、バルクＡとバルクＢを使用してユニットセルが配置されている。この場合、バルクＡの列使用率とバルクＢの列使用率は、それぞれ４３．７５％，５０％である。
【００７４】
上記のエリア内に、例えば、３個のバッファセルを挿入する。１個のバッファセルは、隣接する２つのバルクＡを使用するように定義されている。この場合、図９（ｃ）に示すように、２個のバッファセル９３しか挿入することができない。
【００７５】
これに対し、ユニットセルライブラリ３３（図３参照）には、２個のバルクＡを使用するバッファセルと同じ電気的特性を有し、１個のバルクＢを使用するバッファセルが定義されている。このため、設計支援装置１１は、挿入するユニットセルの種類を変更する。つまり、図９（ｂ）に示すように、バルクＢを使用するバッファセル（ユニットセル）９４を配置する。すると、バルクＡの列使用率とバルクＢの列使用率は、それぞれ６８．７５％，６２．５％となる。このように、同じ電気的特性を有し、使用するバルクが互いに異なる２種類のバッファセル９３，９４を作成してユニットセルライブラリ３３に登録しておくことにより、挿入するすべてのバッファセル９３，９４をエリア内に配置することができる。また、定義された２種類のバッファセルを用いることにより、バルクの列使用率を均一化することができる。
【００７６】
次に、単一のバルクで構成したチップにおけるセル配置と、複数種類のバルクで構成したチップにおけるセル配置について説明する。
複数種類のバルクにより構成されるユニットセルは、使用するバルクの配列に応じて、配置位置に制約を受ける。例えば、図１０（ａ）に示すように、バルクＢとバルクＡをそれぞれ１つ使用するユニットセル１０１の場合、図中に黒丸で示す点を基準点として列Ｒ２に配置される。
【００７７】
一方、図１０（ｂ）に示すように、１種類のバルクにより構成されるユニットセル１０２は、図中に黒丸で示す点を基準点として列Ｒ３に配列される、つまり、バルクの配列ピッチで配置の基準点を設定することができるため、配置の自由度が複数種類のバルクを用いた場合に比して高い。
【００７８】
しかし、複数種類のバルクにより構成されたユニットセルは、単一種類のバルクにより構成されたユニットセルよりも、セル面積が小さくなる。従って、単位面積あたりのセル数が、単一種類のバルクを形成したチップよりも多くなる、すなわち集積度が高くなる。そして、複数種類のバルクにより構成されるユニットは、単一種類のバルクにより構成されるユニットセルのレイアウトを利用して作成することが可能である。従って、ユニットセルをいちから作成する場合に比して、設計にかかる時間が短い、すなわち開発コストをかけることなくユニットセルを作成することができる。また、チップ上のバルクは、制約にしたがって規則的に配列（レイアウト）される。このため、ユニットセルの電気的特性のばらつきを抑えることができる。
【００７９】
複数種類のバルクを用いた場合、バルクの種類に応じて回路を分けることができる。ユニットセルは、例えば、ＡＮＤ回路やＮＡＮＤ回路等の組合回路と、フリップフロップ回路やラッチ回路等の順序回路とに分けられる。一般的に、組合回路と順序回路は、図１１に示すように、セル面積については組合せ回路が順序回路よりも小さく、端子密度については組合せ回路が順序回路よりも高い。そして、組合せ回路をバルクＡを用いて構成し、順序回路をバルクＢを用いて形成される。端子密度が高い回路は、その端子に接続される配線の数が多いため、その回路の周辺に配線の混雑を招く。
【００８０】
しかし、設計支援装置１１は、制約にしたがうものの、複数種類のバルクを均等的に配置する。したがって、端子密度が高いセルが集中されにくくなるため、配線の混雑を低減することが可能となる。また、クロックバッファのように、消費電力が大きいユニットセルは、分散して配置されることになるため、エリア毎の消費電力のバラツキが抑えられることになる。この結果、特定箇所での電圧降下が発生しにくくなる。
【００８１】
次に、ユニットセルとチップの列について説明する。
設計支援装置１１は、図３に示すフローチャートに従って、ユニットセルと並び順制約を生成する。そして、設計支援装置１１は、並び順制約に従ってチップの列にバルクを配置し、ユニットセルを配置する。
【００８２】
チップに形成するユニットセルは、チップを使用する目的（アプリケーション）や、チップに形成する回路（ネットリスト）に応じて設定される。上記したように、アプリケーションに応じて回路が設計され、ネットリストが生成される従って、アプリケーションの情報や、ネットリストにより、使用するバルク、各種類のバルクの個数の割合を判断することができる。これにより、チップの列に形成するバルクの割合を設定することができる。そして、ユニットセルのレイアウト、つまりバルクの並び順により、列におけるバルクの並び順序を設定することができる。
【００８３】
従って、図１２（ａ）に示すように、バルクＡの個数がバルクＢの個数よりも多く設定された列や、図１２（ｂ）に示すように、バルクＡの個数がバルクＢの個数よりも少なく設定された列等が形成される。そして、バルクＡとバルクＢの並び順序が設定される。例えば、バルクＢとバルクＡをそれぞれ１個含むユニットセルの場合、このユニットセルを図１２（ａ）に示す列では３個配置することができる。しかし、図１２（ｂ）に示す列では２個、図１７（ａ）に示す列では１個しか配置することができない。
【００８４】
このように、ユニットセルを構成するバルクの種類及び配列と、チップ上の列を構成するバルクの比率及び配列とを対応させることにより、ユニットセルを確実に配置すること、使用するバルクを均一化すること、ユニットセルの面積を縮小してチップのサイズを縮小することができる。
【００８５】
以上記述したように、本実施形態によれば、以下の効果を奏する。
（１）設計支援装置１１は、作成したユニットセルに応じて、複数種類のバルクを配置した列（バルク領域）を設定し（ステップ２２ａ）し、列にユニットセルを配置する（ステップ２２ｂ）。設計支援装置１１は、列におけるバルクの使用情報をバルクの周類毎に生成し、その使用情報に基づいてバルクの使用状況を検証する（ステップ２２ｃ）。そして、設計支援装置１１は、バルクの配置が均等ではない場合にユニットセルの配置を変更するようにした。
【００８６】
ユニットセルを複数種類のバルクにより構成することで、ユニットセルのサイズを、単一のバルクを用いたユニットセルに比して小さくすることができる。また、ユニットセルが使用するバルクに応じて列を生成することにより、ユニットセルを効率よく列に配置することができる。この結果、ユニットセルの集積度が上がるため、チップサイズの縮小を図ることができる。
【００８７】
（２）設計支援装置１１は、列におけるバルクの列使用率をバルクの種類毎に算出し、各種類のバルクの列使用率が均一となるように、ユニットセルの配置位置を変更するようにした。その結果、クロックツリーの生成やタイミング検証結果に応じて追加するユニットセルを配置することが可能となる。このため、チップサイズを増大させる必要がなく、見積もったサイズのチップにより形成する、つまりチップサイズの縮小を図ることができる。また、ユニットセルが配置できずにチップ全体の配置をやり直す等の手戻りの発生が無くなるため、設計期間の短縮を図ることができる。
【００８８】
（３）設計支援装置１１は、ターゲットアプリケーション３１に基づいて、ユニットセルのレイアウトデータを生成し、レイアウトデータを含むユニットセルライブラリ３３と、ユニットセルに使用されるバルクに対する並び順制約３４とを生成する。このように、ターゲットとするアプリケーションに応じたユニットセルを作成することにより、ターゲットアプリケーションに対応してチップのサイズを縮小することが可能となる。
【００８９】
尚、上記実施形態は、以下の態様で実施してもよい。
・上記実施形態において、ユニットセルを変更して使用するバルクの均等化を図るようにしてもよい。その場合の処理を図１９に示す。
【００９０】
設計支援装置１１は、ステップ１１１において、ユニットセルを概略配置する。概略配置は、ユニットセルが含まれるブロック（例えば検証エリア）を決定する処理である。
次に、ステップ１１２において、設計支援装置１１は、制御値５４に従ってバルクの配置が均等か否かを判定する。これにより、設計支援装置１１は、ブロックにおける配置混雑度を確認する。そして、設計支援装置１１は、配置が均等ではない（図中ＮＧ）の場合にステップ１１３に移行し、配置が均等である（図中ＯＫ）場合にステップ１１４に移行する。
【００９１】
ステップ１１３において、設計支援装置１１は、セルを変更する。設計支援装置１１は、列使用率の大きいバルクを使用するユニットセルを、列使用率が小さいバルクを使用するユニットセルに変更する。このとき、設計支援装置１１は、以下の何れかの方法により、セルを変更する。
【００９２】
１．駆動能力及び使用するバルクが異なるユニットセルに変更する。
２．駆動能力が同じで使用するバルクが異なるユニットセルに変更する。
例えば、バルクＡを使用するバッファ回路を、同じ電気的特性を有しバルクＢを使用するバッファ回路に変更する。また、バルクＡを使用するインバータ回路を、バルクＢを使用し入力端子の１つを除いてＨレベルに固定された入力端子を有するナンド回路に変更する。そして、設計支援装置１１は、ステップ１１１に移行する。
【００９３】
このように、設計支援装置１１は、バルクの配置を均等にするまで、ステップ１１１〜１１３の処理を繰り返す。そして、バルクの配置が均等になると、設計支援装置１１はステップ１１４に移行する。
【００９４】
ステップ１１４において、設計支援装置１１は、セルの詳細配置を行う。詳細配置は、ブロックに含まれるユニットセルの配置位置を決定する処理である。設計支援装置１１は、各ユニットセルの配置位置を決定する。
【００９５】
・上記実施形態において、設計支援装置１１がユニットセルを配置する際に、バルクの列使用率を考慮しながら配置することで、バルク使用状況検証のステップを省略することが可能となる。
【符号の説明】
【００９６】
１１  設計支援装置
３１  ターゲットアプリケーション
３２  プロセスルール
３３  ユニットセルライブラリ
３４  バルク並び順制約
５１  タイミング制約
５２  ネットリスト
５４  制御値（検証サイズ、均等値）
Ａ，Ｂ  バルク
【図１】
0005531723.tif 000002
【図２】
0005531723.tif 000003
【図３】
0005531723.tif 000004
【図４】
0005531723.tif 000005
【図５】
0005531723.tif 000006
【図６】
0005531723.tif 000007
【図７】
0005531723.tif 000008
【図８】
0005531723.tif 000009
【図９】
0005531723.tif 000010
【図１０】
0005531723.tif 000011
【図１１】
0005531723.tif 000012
【図１２】
0005531723.tif 000013
【図１３】
0005531723.tif 000014
【図１４】
0005531723.tif 000015
【図１５】
0005531723.tif 000016
【図１６】
0005531723.tif 000017
【図１７】
0005531723.tif 000018
【図１８】
0005531723.tif 000019
【図１９】
0005531723.tif 000020
【図２０】
0005531723.tif 000021