(57)【要約】【課題】製造コストの低減を実現可能なディジタルシステムの設計システムおよび製造方法を提供する。【解決手段】例えば、フリップフロップのクロック入力部にプログラマブル遅延回路が挿入され、この遅延回路の遅延時間が遺伝的アルゴリズム（ＧＡ）によって探索されるディジタルシステムを製造する。この際に、回路設計後（Ｓ１０１）に静的タイミング解析（ＳＴＡ）などの検証（Ｓ１０２）を行い、このＳＴＡの結果に基づいて、ディジタルシステム内に挿入するプログラマブル遅延回路の場所および数を限定する（Ｓ１０３）。次いで、この遅延回路の限定によって生じる歩留まり変動を、有向グラフをモデルとするシミュレータで検証し（Ｓ１０４）、この検証をＳ１０３での限定数を変更しながら行うことで、遅延回路の最適な挿入数を見積もる。【選択図】  図１
2008217350.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムによるプログラム処理によって実現され、
複数のフリップフロップのクロック入力部にプログラマブル遅延回路が設けられることで、前記複数のフリップフロップ間のパスのタイミングマージンが調整可能となっているディジタルシステムを設計対象とし、
前記ディジタルシステムに対する設計段階のタイミング解析結果から、前記複数のフリップフロップ間の接続関係と、前記複数のフリップフロップ間のパス遅延時間とを取得する第１機能と、
前記第１機能で取得した前記複数のフリップフロップ間の接続関係に基づき、前段のフリップフロップから後段のフリップフロップへ向かうパスをアークとし、前記前段のフリップフロップと前記後段のフリップフロップをそれぞれノードとした有向グラフのシミュレーションモデルを生成する第２機能と、
前記アークに対して伝播時間の情報を持たせ、前記アークが持つ伝播時間が所定のスペックを満たす場合は前記アークの先に接続されたノードに第１情報を記憶させ、前記所定のスペックを満たさない場合は前記アークの先に接続されたノードに第２情報を記憶させ、前記第２情報が記憶されたノードが有る場合は前記アークの方向にしたがって前記ノード間で前記第２情報の伝達を行う第３機能と、
前記プログラマブル遅延回路の設定時間を変更しながら、前記第３機能で前記ノードが前記第１情報を記憶できるように前記設定時間を確率的探索手法に基づいて探索する第４機能とを備え、
前記アークが持つ伝播時間は、前記第１機能で取得した前記パス遅延時間と、製造ばらつきを反映した第１遅延時間と、前記第４機能による前記プログラマブル遅延回路の設定時間を反映した第２遅延時間とに基づいて決定されることを特徴とするディジタルシステムの設計システム。
【請求項２】
請求項１記載のディジタルシステムの設計システムにおいて、
更に、前記第１機能で取得したパス遅延時間の大きさに基づいて、前記プログラマブル遅延回路による調整対象とするパスを限定する第５機能を備え、
前記第５機能で限定されたパスに対応するアークの前記第２遅延時間が、前記第４機能に基づく確率的探索手法によって決定されることを特徴とするディジタルシステムの設計システム。
【請求項３】
請求項２記載のディジタルシステムの設計システムにおいて、
前記第５機能は、前記パス遅延時間が大きい順にソーティングを行い、このソーティングによって得られた順番でパスを限定することを特徴とするディジタルシステムの設計システム。
【請求項４】
請求項２記載のディジタルシステムの設計システムにおいて、
前記設計システムは、前記第５機能によって限定されたパスの両端に前記プログラマブル遅延回路を設けることを特徴とするディジタルシステムの設計システム。
【請求項５】
請求項１記載のディジタルシステムの設計システムにおいて、
前記確率的探索手法は、遺伝的アルゴリズムに基づく手法であることを特徴とするディジタルシステムの設計システム。
【請求項６】
請求項１記載のディジタルシステムの設計システムにおいて、
前記第１機能での前記タイミング解析結果は、静的タイミング解析の結果であることを特徴とするディジタルシステムの設計システム。
【請求項７】
請求項１記載のディジタルシステムの設計システムにおいて、
前記第１遅延時間は、正規乱数に基づいて定められることを特徴とするディジタルシステムの設計システム。
【請求項８】
コンピュータシステムによるプログラム処理によって実現され、
複数のフリップフロップのクロック入力部にプログラマブル遅延回路が設けられることで、前記複数のフリップフロップ間のパスのタイミングマージンが調整可能となっているディジタルシステムを設計対象とし、
前記ディジタルシステムに対する設計段階のタイミング解析結果から取得した前記複数のフリップフロップ間の接続関係と、前記複数のフリップフロップ間のパス遅延時間とを利用し、前記パス遅延時間に対して製造ばらつきに基づく分布と前記プログラマブル遅延回路による調整値を反映させることで、それぞれパス遅延時間のばらつき量が異なると共に前記プログラマブル遅延回路によってパス遅延時間が調整可能とされた複数の仮想チップを生成する第１機能と、
前記複数の仮想チップに対して、確率的探索手法に基づいて前記プログラマブル遅延回路の調整値を探索し、前記パス遅延時間が予め定めたスペック内に収まるような前記プログラマブル遅延回路の調整値が得られたか否かを前記複数の仮想チップ毎に判定する第２機能とを有することを特徴とするディジタルシステムの設計システム。
【請求項９】
請求項８記載のディジタルシステムの設計システムにおいて、
更に、前記第１機能で用いた前記パス遅延時間の大きさに基づいて、前記プログラマブル遅延回路による調整対象とするパスを限定する第３機能を備え、
前記第２機能は、前記第３機能で限定されたパスに対応する前記プログラマブル遅延回路を対象として、確率的探索手法に基づく探索を行うことを特徴とするディジタルシステムの設計システム。
【請求項１０】
請求項９記載のディジタルシステムの設計システムにおいて、
前記設計システムは、前記第３機能によって限定されたパスの両端に前記プログラマブル遅延回路を設けることを特徴とするディジタルシステムの設計システム。
【請求項１１】
請求項８記載のディジタルシステムの設計システムにおいて、
前記確率的探索手法は、遺伝的アルゴリズムに基づく手法であることを特徴とするディジタルシステムの設計システム。
【請求項１２】
請求項８記載のディジタルシステムの設計システムにおいて、
前記第１機能での前記タイミング解析結果は、静的タイミング解析の結果であることを特徴とするディジタルシステムの設計システム。
【請求項１３】
請求項８記載のディジタルシステムの設計システムにおいて、
前記第１機能での製造ばらつきに基づく分布は、正規乱数に基づいて定められることを特徴とするディジタルシステムの設計システム。
【請求項１４】
複数のフリップフロップのクロック入力部にプログラマブル遅延回路が設けられることで、前記複数のフリップフロップ間のパスのタイミングマージンが調整可能となっているディジタルシステムを製造する第１工程と、
前記第１工程で製造されたディジタルシステムに対して電気的特性のテストを行いながら、前記テスト結果が予め定めたスペックを満足するように前記プログラマブル遅延回路の遅延時間を確率的探索手法に基づいて探索する第２工程と、
前記第１工程よりも前の段階となる前記ディジタルシステムの設計段階において、前記ディジタルシステムに対してタイミング解析を行う第３工程と、
前記第３工程と前記第１工程の間で行われ、前記複数のフリップフロップ間のパスの中から、前記タイミング解析の結果に基づいて、タイミングマージンが少ないパスを所定の数だけ選択する第４工程と、
前記第４工程で選択した所定の数のパスを対象として前記プログラマブル遅延回路を挿入した場合の歩留まりをシミュレーション上の仮想チップを用いて評価し、更に、この評価を前記第４工程で選択する所定の数を変更しながら行うことで、高い歩留まりが得られる最適な前記プログラマブル遅延回路の挿入数を予測する第５工程とを有することを特徴とするディジタルシステムの製造方法。
【請求項１５】
請求項１４記載のディジタルシステムの製造方法において、
前記確率的探索手法は、遺伝的アルゴリズムに基づく手法であり、
前記第２工程では、前記遺伝的アルゴリズムに基づいて生成される初期集団に、製造ばらつきに基づく分布を持たせていることを特徴とするディジタルシステムの製造方法。
【請求項１６】
請求項１５記載のディジタルシステムの製造方法において、
前記製造ばらつきに基づく分布は、正規分布であることを特徴とするディジタルシステムの製造方法。
【請求項１７】
請求項１４記載のディジタルシステムの製造方法において、
前記第５工程は、
前記第３工程での前記タイミング解析の結果から得られる前記複数のフリップフロップ間の接続関係と、前記複数のフリップフロップ間のパス遅延時間とを利用し、さらに前記パス遅延時間に対して製造ばらつきに基づく分布と前記プログラマブル遅延回路による調整値を反映させることで、それぞれパス遅延時間のばらつき量が異なると共に前記プログラマブル遅延回路によってパス遅延時間が調整可能とされた複数の仮想チップを生成する第１処理と、
前記複数の仮想チップを用いて、前記第４工程で選択された所定の数のパスに対応する前記プログラマブル遅延回路の調整値を確率的探索手法に基づいて探索し、前記パス遅延時間が予め定めたスペック内に収まるような前記プログラマブル遅延回路の調整値が得られたか否かを前記複数の仮想チップ毎に判定することで、前記第４工程で選択した所定の数が妥当か否かを判断する第２処理とを含むことを特徴とするディジタルシステムの製造方法。
【請求項１８】
請求項１７記載のディジタルシステムの製造方法において、
前記確率的探索手法は、遺伝的アルゴリズムに基づく手法であり、
前記第２工程では、前記遺伝的アルゴリズムに基づいて生成される初期集団に、製造ばらつきに基づく分布を持たせていることを特徴とするディジタルシステムの製造方法。
【請求項１９】
請求項１８記載のディジタルシステムの製造方法において、
前記製造ばらつきに基づく分布は、正規分布であることを特徴とするディジタルシステムの製造方法。
【請求項２０】
請求項１７記載のディジタルシステムの製造方法において、
前記第３工程での前記タイミング解析の結果は、静的タイミング解析の結果であることを特徴とするディジタルシステムの製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタルシステムの設計システムおよびディジタルシステムの製造方法に関し、特にプログラマブル遅延回路を備えたディジタルシステムに対してそのプログラマブル遅延回路の遅延時間を遺伝的アルゴリズムを用いて設定する設計システムに適用して有効な技術に関するものである。
【背景技術】
【０００２】
例えば、特許文献１には、各フリップフロップのクロック入力部に遅延素子を備えたディジタルシステムが示されている。この各遅延素子の遅延時間は、ディジタルシステムの製造後に例えば外部装置から設定可能となっている。この際には、各遅延素子の遅延時間をそれぞれ設定するための複数のレジスタ値を纏めて一つの染色体とみなし、例えば遺伝的アルゴリズムを代表とする確率的探索手法に基づいて最適な染色体（即ち最適な各遅延素子の遅延時間）を決定する。具体的には、ディジタルシステムに対して、例えばロジックテスト等を行いながら各ノードの論理レベルを観測し、それが期待値と一致した比率を評価関数として、この評価関数が高くなるような染色体を遺伝的アルゴリズムによって探索していく。このようなディジタルシステムを用いることで、製造ばらつきに起因するディジタルシステムの機能・性能の低下を抑制でき、製造歩留まりを向上させることが可能となる。
【特許文献１】国際公開第０４／１０９９１６号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【０００３】
近年、ディジタルＬＳＩ（Large Scale Integration）等の高速化や微細化に伴い、クロック信号の伝播時間のずれであるクロック・スキュー（Clock Skew）の問題が深刻になってきている。この結果、ディジタルＬＳＩの動作歩留（設計通りのスペックで動作できるチップの比率）が低下し、チップ価格の上昇を招いている。クロック・スキューの主な発生原因の一つに製造ばらつきがあり、これにより個々のトランジスタの遅延時間や駆動能力、配線の抵抗や寄生容量等が変動してしまう。
【０００４】
このディジタルＬＳＩのクロック・スキュー問題を解決するためには、例えば、特許文献１の技術も用いることが考えられる。図１３は、本発明の前提として検討したディジタルシステムの設計システムにおいて、その構成例を示すブロック図である。図１３に示す設計システムは、特許文献１の図１に示された構成と同様のものである。
【０００５】
図１３に示す設計システムは、ディジタルシステム１と、電源装置２と、ディジタルテスト信号発生装置３と、調整装置４と、ディジタル信号観測装置５などによって構成される。ディジタルシステム１は、例えば、マイクロコンピュータ等を代表に各種論理演算機能を備えたものであり、単体の半導体チップであってもよく、それぞれ所望の論理演算を行う複数の半導体チップが回路基板上で接続されたような形態でもよい。ディジタルシステム１は、複数のフリップフロップＦＦ１ａ〜ＦＦ１ｄ，ＦＦ２ａ，ＦＦ２ｂと、複数の遅延回路ＤＬＹ１ａ〜ＤＬＹ１ｄと、複数の保持回路（例えばレジスタ）ＲＥＧ１ａ〜ＲＥＧ１ｄなどを含んでいる。
【０００６】
ＦＦ１ａ〜ＦＦ１ｄは、クロック調整を行うフリップフロップであり、ＦＦ２ａ，ＦＦ２ｂは、クロック調整を行わないフリップフロップである。ＦＦ１ａ〜ＦＦ１ｄは、クロック信号ＣＬＫに同期して１ビットを記憶する回路であり、例えばＤフリップフロップやＳＲフリップフロップなどを始めとする様々な構成の回路に該当する。遅延回路ＤＬＹ１ａ〜ＤＬＹ１ｄは、フリップフロップＦＦ１ａ〜ＦＦ１ｄのクロック入力部にそれぞれ接続され、保持回路ＲＥＧ１ａ〜ＲＥＧ１ｄの設定値に応じてそれぞれ遅延時間を設定可能なプログラマブル遅延回路となっている。プログラマブル遅延回路は、特許文献１に記載されているように、インバータ遅延を利用したものや、容量と抵抗のＣＲ遅延を利用したものなど一般的に知られている様々な構成で実現できる。保持回路ＲＥＧ１ａ〜ＲＥＧ１ｄは、それぞれ、複数ビットを記憶する回路であり、例えば複数のフリップフロップからなるレジスタによって実現されるほか、ＲＡＭ又は書き換え可能な不揮発性メモリなどであってもよい。
【０００７】
この保持回路ＲＥＧ１ａ〜ＲＥＧ１ｄの値は、調整回路４によって設定される。調整回路４は、例えば、パーソナルコンピュータなどのようにプログラム処理を実行可能で、外部入出力機能を備えたものであればよい。ディジタルテスト信号発生装置３は、調整装置４からの起動信号を受けて、ディジタルシステム１に対してテスト信号（データ入力信号）Ｄｉｎやクロック信号ＣＬＫを与える。電源装置２は、その出力電圧値が調整装置４によって制御され、ディジタルシステム１に対して電源供給６を行う。ディジタル信号観測装置５は、ディジタルシステム１からのデータ出力信号Ｄｏｕｔや、ディジタルシステム１の内部ノードの論理レベル７を観測し、その観測結果を調整装置４に与える。
【０００８】
なお、電源装置２、ディジタルテスト信号発生装置３、ディジタル信号観測装置５は、それぞれ、例えば、一般的な直流電源発生装置、パターンジェネレータ、ロジックアナライザなどを用いて個別に構成してもよいし、これらの機能を全て備えたロジックテスタなどを用いてもよい。また、電源装置２、ディジタルテスト信号発生装置３、ディジタル信号観測装置５および調整装置４の一部又は全部は、ディジタルシステム１に内蔵することも可能である。
【０００９】
このような設計システムを用いると、遅延回路ＤＬＹ１ａ〜ＤＬＹ１ｄの遅延時間を変えながら、更にディジタルシステム１に供給する電源電圧も変えながら、ディジタルシステム１のテストを行うことができ、そのテスト結果に基づいてＤＬＹ１ａ〜ＤＬＹ１ｄの最適な遅延時間を決定することができる。図１４は、図１３のディジタルシステム１の一例となるパイプライン型の回路を示すものであり、(ａ)〜（ｃ）は、それぞれ動作条件が異なる場合を示している。この図１４の回路を例として、製造後に遅延回路ＤＬＹの遅延時間を調整する際の様子を説明する。
【００１０】
図１４(ａ)〜（ｃ）の回路は、データ入力信号Ｄｉｎを４段のフリップフロップＦＦａ〜ＦＦｄを介して転送する構成となっている。ＦＦａとＦＦｂの間、ＦＦｂとＦＦｃの間、ＦＦｃをＦＦｄの間には、それぞれ所望の演算を行う組み合わせ回路ＣＣａ、ＣＣｂ、ＣＣｃが設けられる。そして、各フリップフロップＦＦａ〜ＦＦｄのクロック信号ＣＬＫの入力部には遅延回路ＤＬＹａ〜ＤＬＹｄが備わっている。ここで、仮に各組み合わせ回路ＣＣａ〜ＣＣｃが同一の回路構成であっても、製造ばらつきなどが生じた場合にはＣＣａ〜ＣＣｃがそれぞれ異なるパス遅延時間を持つことになる。ここでは、ＣＣａ、ＣＣｂ、ＣＣｃのパス遅延時間を、それぞれ９０ｐｓ、１００ｐｓ、８０ｐｓとする。
【００１１】
ＤＬＹａ〜ＤＬＹｄの遅延時間がゼロの場合、ＦＦａ〜ＦＦｄで正確なデータを保持できるクロック信号の周期は、図１４（ａ）に示すように、最も遅い組み合わせ回路ＣＣｂに合わせた１００ｐｓである。すなわち、この回路全体は１００ｐｓの周期で動作する。ここで、図１４（ｂ）のように、回路全体の周期を９０ｐｓに変更する。すると、１００ｐｓで動作する組み合わせ回路ＣＣｂを通過するデータがＦＦｃでのクロック信号ＣＬＫの到達に間に合わなくなる。そのため、回路全体では誤動作が生じることになる。そこで、図１４（ｃ）のように、データ信号の到達からクロック信号ＣＬＫの到達までに時間的余裕が無いＦＦｃへのクロック信号ＣＬＫを、遅延回路ＤＬＹｃにより１０ｐｓ遅らせる。
【００１２】
このようにする事で、１００ｐｓで動作する組み合わせ回路ＣＣｂに１０ｐｓの時間的余裕をつくり、回路全体の誤動作を解消することができる。しかし、遅延回路ＤＬＹｃによりＦＦｃのクロック到達タイミングが１０ｐｓ遅れてしまったため、その直後の組み合わせ回路ＣＣｃは、通常の周期より１０ｐｓ早い８０ｐｓで動作しなければならない。だが、組み合わせ回路ＣＣｃは元々８０ｐｓで動作する回路なので、誤動作は起こらない。したがって、１つのフリップフロップのクロックタイミングを遅延させることで、回路全体のクロック周波数を向上させることが可能となる。この結果、製造歩留まりを向上させたり、または設計よりも早いクロックスピードを実現させることが可能となる。
【００１３】
同様の原理でＬＳＩの低消費電力化も実現可能である。ＬＳＩの消費電力は、電源電圧の２乗に比例して大きくなるという性質がある。すなわち、ＬＳＩの電源電圧を低くすることができれば、消費電力の削減が可能である。ただし、電源電圧を低下させると、回路内部のトランジスタの駆動能力が低下し、これに伴う遅延により一部の組み合わせ回路ではフリップフロップへのクロック信号到達にデータ処理が間に合わなくなってしまい、誤動作が起こる。そこで、クロックスピードを向上させる場合と同様の原理で、遅延回路を利用することで、電源電圧を低下させたにもかかわらず、回路を正常に動作させることができる。この低消費電力化は、特に携帯電話などのモバイル機器において有益となる。
【００１４】
このように、製造後にクロック信号の遅延時間を調整することで、各種有益な効果が得られるが、実際のディジタルＬＳＩなどでは、多くのフリップフロップが含まれ、各フリップフロップが複雑に影響を及ぼし合うため、この調整に伴い膨大な探索空間を解く必要がある。すなわち、実際のディジタルＬＳＩなどでは、１つのフリップフロップの次段に複数のフリップフロップが接続されるため、１つのフリップフロップ回路のクロック到達時間を変更すると、その影響が多数のフリップフロップ回路に及ぶことになる。
【００１５】
そこで、特許文献１では、この遅延時間を調整する際に、遺伝的アルゴリズム（Genetic Algorithm；GA）や遺伝的プログラミングなどのような確率的探索手法を用い、この手法よる自動探索処理を図１３の調整装置４に行わせている。これによって、遅延回路ＤＬＹの遅延時間の最適解を高速に求めることが可能となる。なお、確率的探索手法の詳細については、特許文献１に記載されているため、ここでは、その概要について説明する。
【００１６】
図１５は、遺伝的アルゴリズムで用いる染色体の構成例を示す概略図である。図１６は、遺伝的アルゴリズムにおいて、染色体に対して行う操作の一例を示すものであり、（ａ）、（ｂ）は、それぞれ交叉、突然変異の操作の一例を示す概略図である。図１７は、遺伝的アルゴリズムで操作が進んでいく様子を示す概念図である。
【００１７】
図１７の上段に示すように、遺伝的アルゴリズムでは、初期集団として複数（ここでは５個）の染色体ＣＨ１ａ〜ＣＨ５ａを乱数等によって生成する。各染色体ＣＨは、図１５に示すように複数のレジスタＲＥＧ１ａ〜ＲＥＧ１ｄの値を一つに纏めたような構造となっている。各レジスタＲＥＧ１ａ〜ＲＥＧ１ｄは、例えば、図１３の保持回路（レジスタ）ＲＥＧ１ａ〜ＲＥＧ１ｄに該当し、それぞれが記憶している値が遅延時間となる。すなわち、各染色体ＣＨは、図１３のディジタルシステム１に含まれる全ての遅延回路の保持情報（遅延情報）からなる集合体である。なお、図１５において、遅延時間としてマイナス（例えば−３５０ｐｓ）が設定されているが、このマイナスは、例えば、ＰＬＬ回路等から生成される基準のクロック信号ＣＬＫ自体を相対的に早めることで実現できる。
【００１８】
遺伝的アルゴリズムでは、図１７に示すように、各染色体の優劣を適応度（評価関数）ｆｉｔの大きさによって評価する。ここでは、図１７に示すように、染色体ＣＨのバリエーション（すなわちその中に含まれるビット値の組み合わせ）と適応度ｆｉｔとの間に、関数Ｆに示すような関係があるとする。ここで、仮に遺伝的アルゴリズムを用いない場合だと、例えば、初期値として図１７の上段に示す中の１つの染色体（例えばＣＨ１ａ）のみが生成される。ここから山登り法などに基づいて適応度ｆｉｔが高いものを探索していくと、通常は地点１７０が解となってしまい、必ずしも適応度ｆｉｔが高い解が得られるとは限らない。
【００１９】
そこで、遺伝的アルゴリズムでは、乱数等によって複数の染色体（すなわちそれぞれ含まれるビット値が異なる染色体）を初期集団として生成し、そこから染色体に対して、選択（淘汰）、交叉および突然変異といった操作を繰り返しながら、全体的に適応度が高い染色体を探索していく。交叉とは、図１６（ａ）に示すように、図１７の上段から例えば染色体ＣＨ１ａと染色体ＣＨ３ａを抽出し、染色体の一部のビットを交換することで新たな染色体ＣＨ１ｂと染色体ＣＨ３ｂを生成するような操作である。突然変異とは、図１６（ｂ）に示すように、図１７の上段から例えば染色体ＣＨ４ａを抽出し、その適当なビットを反転させることで新たな染色体ＣＨ４ｂを生成するような操作である。選択（淘汰）とは、図１７の上段から中段に至る染色体ＣＨ２ａ、または中断から下段に至る染色体ＣＨ３ｂに示すように、適応度が低い染色体を淘汰し、適応度が高い染色体を残していく操作である。
【００２０】
淘汰された後に生き残っている優秀な染色体に対して交叉や突然変異といった操作を行うと、更に優秀な染色体が生成されることが期待できる。したがって、このような選択（淘汰）、交叉および突然変異といった操作を繰り返していくと、図１７の上段→中段→下段に示すように、広い範囲で適応度が高い染色体を探索していくことが可能となり、最終的には、図１７の下段の染色体ＣＨ３ｃに示すように、グローバルな範囲で最も適応度ｆｉｔが高い最終解を得ることが可能となる。なお、この適応度（評価関数）ｆｉｔは、例えば、図１３のディジタル信号観測装置５での観測値を用いて、ｆｉｔ＝（期待値と一致したノードおよびデータ出力信号の数）／（観測したノードおよびデータ出力信号の総数）などとすることができる。この場合、評価関数ｆｉｔの最大値は、「１」である。
【００２１】
以上のような設計システムを用いると、特に、中・小規模なディジタルシステムに対して前述したような有益な効果を得ることが可能となる。しかしながら、このような設計システムを、例えば、数万から数百万ゲートにも及ぶ大規模なディジタルシステム（ディジタルＬＳＩ）に適用する場合、次の２点が問題となってくる。１点目は、仮に全てのフリップフロップ（またはレジスタ）に遅延回路を挿入すると、面積オーバーヘッドが大きくなってしまうことである。２点目は、遅延回路の数が増えると、染色体のビット数が増加し、その調整時間が指数関数的に増大してしまうことである。例えば、ＬＳＩの量産工程において、ＬＳＩ製造後のテスト工程でロジックテスタなどを用いながら遅延回路の調整を行うことを想定すると、スループットの面から調整時間は可能な限り短いほうが望ましい。
【００２２】
このような問題は、ともに製造コストの増大を招くことになる。全てのフリップフロップ（またはレジスタ）に遅延回路を挿入すると共にその最適解を設定可能になると、前述したような歩留まり向上等に伴いコストを低減できるが、それ以上に製造コストが増大してしまう恐れがある。また、探索空間が広くなり過ぎると、実用的な時間では最適解が得られずに、その効果を十分に発揮できないこともある。そこで、面積オーバーヘッドと調整時間を勘案してＬＳＩ内に作り込む遅延回路の数を限定することが考えられるが、その場所と数をどの適度に限定すればよいかが判らない。すなわち、ＬＳＩの設計段階では、遅延回路の数に対して、その調整に要する時間や面積オーバーヘッドは容易に算出することができるが、それによってどの程度の歩留まり向上効果が得られるかなどを予想することができないため、どの場所にどの程度作り込むかが判断できない。
そこで、本発明の目的は、製造コストの低減を実現可能なディジタルシステムの設計システムおよび製造方法を提供することにある。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００２３】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００２４】
本発明のディジタルシステムの設計システムは、コンピュータシステムによるプログラム処理によって実現され、複数のフリップフロップのクロック入力部にプログラマブル遅延回路が設けられることで、複数のフリップフロップ間のパスのタイミングマージンが調整可能となっているディジタルシステムを設計対象とするものである。この設計システムは、ディジタルシステムに対する設計段階のタイミング解析結果を利用して、ディジタルシステムのシミュレーションモデルを生成し、このシミュレーションモデル上でプログラマブル遅延回路を設けることによる各種効果を確認できるようにしたことが主要な特徴となっている。
【００２５】
すなわち、プログラマブル遅延回路の設定時間は、例えば、遺伝的アルゴリズムといった確率的探索手法に基づいて探索されるが、このような確率的探索手法では、ディジタルシステムに対するテストを膨大な回数繰り返す必要がある。したがって、この確率的探索手法による遅延時間の調整動作をコンピュータ上でシミュレーションする場合、いかに短時間でシミュレーションを行えるかが重要となる。特に、大規模ＬＳＩになる程シミュレーション時間が延びるため、この要求が強くなる。
【００２６】
そこで、この設計システムでは、高速なシミュレーション動作を可能にするため、タイミング解析結果に含まれるフリップフロップをノード、フリップフロップ間の接続（すなわち組合せ回路）を方向性を持ったアークとして表現したシミュレーションモデルを用いる。このシミュレーションモデルでは、組合せ回路に関連する論理情報のシミュレーションは行わないため、高速動作が可能である。
【００２７】
各アークは、タイミング解析結果から得たパス遅延時間と、製造ばらつきを反映した第１遅延時間と、プログラマブル遅延回路の設定時間を反映した第２遅延時間とから得られる伝播時間を保持する。ここで、このアークが持つ伝播時間が所定のスペックを満たす場合はアークの先に接続されたノードに第１情報を記憶させ、満たさない場合はアークの先に接続されたノードに第２情報を記憶させる。そして、第２情報が記憶されたノードが有る場合は、アークの方向性にしたがってノード間で第２情報の伝達を行う。
【００２８】
この各ノードが第１情報なのか第２情報なのかが、シミュレーション結果の判断材料であり、理想状態では各ノードが全て第１情報となる。このように、このシミュレーションモデルは、簡単な計算処理、比較処理、および伝達処理しか行わないため、大規模ＬＳＩを対象とした場合でも十分に高速性を発揮できる。そして、確率的探索手法を用いた遅延回路の調整動作をシミュレーションする場合、この確率的探索手法を用いた探索結果が第２遅延時間に反映され、これに応じて各ノードの第１情報・第２情報が変化するシミュレーションモデルを用いているため、各ノードの第１情報の割合を適応度とすることで、この調整動作のシミュレーションが実現可能となる。
【００２９】
なお、この調整動作のシミュレーションが高速に行えるようになると、ディジタルシステム内のどこにどの程度遅延回路を設ければよいかを設計時に判断できるようになる。前述したように、特に大規模ＬＳＩでは、遅延回路を挿入することで面積オーバーヘッドの増大や調整時間の増大が生じ、これに伴い製造コストが増大するため、挿入する遅延回路を設計段階で限定することが望ましい。従来においては、この限定による効果を設計段階で確認するための実用的な術がなかったが、本発明の設計システムを用いることでこの問題を解決でき、必要最低限の遅延回路によって歩留まりを向上させ、製造コストの低減が実現可能になる。
【００３０】
具体的には、例えば、設計段階でのタイミング解析結果に基づいて、タイミングマージンが少ないパスを複数選択し、これらのパスに対して遅延回路を挿入した状態を本発明の設計システムによって作りだし、これに対してシミュレーションを行えばよい。そして、この挿入する遅延回路の数を変えながらシミュレーションを行うことで、最適な遅延回路の数を見つけ出すことができる。この際に、その判断材料としては、歩留まりを用いることが望ましい。そこで、この歩留まりを検証できるようにするため、本発明の設計システムでは、前述したアークの伝播時間内に製造ばらつきを反映した第１遅延時間を含ませている。この第１遅延時間は、具体的には、例えば正規乱数によって定められる。
【００３１】
この第１遅延時間によりばらつきを持たせることによって、前述したシミュレーションモデルに基づく仮想チップを複数生成し、それぞれの仮想チップでばらつき量が異なる状態を作り出すことが可能となる。したがって、この複数の仮想チップに対して遺伝的アルゴリズムによる調整動作が成功した場合を良品、失敗した場合と不良品として扱えば、シミュレーション上で歩留まりを導き出すことが可能となる。
【００３２】
また、本発明のディジタルシステムの製造方法は、前述したような遅延回路を限定した際の有効性確認を本発明の設計システムを用いて行う工程が含まれていることが一つの特徴となっている。更に、これに加えて、製造後の遺伝的アルゴリズムを用いた調整動作において、その初期集団に、製造ばらつきに基づく分布を持たせていることが他の特徴となっている。実際上のＬＳＩは、例えば正規分布などの製造ばらつきを持つことが知られており、これに併せて初期集団にも同様のばらつきを持たせることで、調整動作が収束するまでの時間を短縮することが可能となる。これによって、製造コストを低減できる。
【発明の効果】
【００３３】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、ディジタルシステムの製造コストを低減可能になる。
【発明を実施するための最良の形態】
【００３４】
以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００３５】
本実施の形態によるディジタルシステムの設計システムおよび製造方法は、次の３点が主要な特徴となっている。
（１）例えば静的タイミング解析（Static Timing Analysis；STA)などの結果を用いて、調整する遅延回路の数をＬＳＩの設計時に限定する。これにより、調整時間を短縮させ、遅延回路のために必要な回路面積を削減させることができる。その結果、製造コストの低減が実現可能となる。
（２）回路シミュレーション（動的タイミング解析）を行うことなく、短時間で各種調整効果を確認できるシミュレータを実現する。このシミュレータを用いることで、ＬＳＩ設計時に（１）の効果も容易に確認することができ、最適な遅延回路の数を決定することができる。その結果、製造コストの低減が実現可能となる。
（３）調整時のＧＡの初期集団の分布を工夫する。この工夫により、ＧＡの収束速度を高め、ＬＳＩ製造後の調整時間を短縮することができる。その結果、製造コストの低減が実現可能となる。
【００３６】
以下、これらの詳細について説明を行う。
【００３７】
図１は、本発明の一実施の形態によるディジタルシステムの製造方法において、その処理の一例を示す工程フロー図である。図１においては、まず、図１３のディジタルシステム１で述べた遅延回路ＤＬＹや保持回路ＲＥＧが無い状態で回路設計を行う（Ｓ１０１）。この回路設計の中には、論理設計や論理検証、およびその後の論理合成なども含まれる。次いで、このようにして完成した回路に対して、テストパターンを与えない静的タイミング解析（ＳＴＡ）やテストパターンを与える動的タイミング解析といった検証を行う（Ｓ１０２）。
【００３８】
この静的タイミング解析（ＳＴＡ）では、回路内に含まれる全てのフリップフロップに対し、そのフリップフロップ間のパス遅延時間を得ることが可能となる。このＳＴＡは、一般的に、各フリップフロップ間に含まれるゲート（組み合わせ回路）の概算遅延時間や配線の概算遅延時間などを単純に加算していくような処理を行い、大規模回路においても高速に処理を行うことが可能となっている。なお、検証（Ｓ１０２）でエラーが発生した場合は、再び回路設計（Ｓ１０１）に戻ることになる。
【００３９】
次いで、ディジタルシステム１内に設ける遅延回路ＤＬＹの限定と調整シミュレーションを行う（Ｓ１０３とＳ１０４）。ここでの処理は、本実施の形態の特徴的な部分である。詳細は後述するが、概略としては例えばＳＴＡの結果を利用した高速動作可能なシミュレータを作成し、このシミュレータ上で遅延回路ＤＬＹを挿入することで、遅延回路をどこにどの程度作り込めば、実用的な調整時間でどの程度の歩留まり向上が見込めるかを検証する。なお、図示はしないが、ここでの処理によって得られた遅延回路ＤＬＹの挿入箇所およびその数は、Ｓ１０１での回路設計に反映させるか、場合によっては、その後のフィジカル設計（Ｓ１０５）などにおいて反映させることも可能である。この場合だと、設計戻りを生じさせなくて済む。
【００４０】
続いて、回路の配置配線やクロックツリーの形成などといったフィジカル設計を行う（Ｓ１０５）。この処理では、回路配置によってタイミングの微調整を行ったり、あるいは最適化設計（オプティマイズ処理）などと呼ばれる手法を用いてクロックツリーにバッファ等を挿入してタイミングの微調整を行ったりする。したがって、場合によっては、このバッファ等と共に遅延回路ＤＬＹを挿入することも可能である。次いで、マスク設計を行い（Ｓ１０６）、このマスクに基づいてＬＳＩの製造を行う（Ｓ１０７）。
その後、この製造されたＬＳＩに対するテスト工程などにおいて、ＬＳＩテスタ（ロジックテスタ）などを用いて遺伝的アルゴリズム（ＧＡ）による遅延回路ＤＬＹの調整を行う。詳細は後述するが、この処理において、遺伝的アルゴリズムにおける初期集団の生成処理に正規乱数を利用したことが、本実施の形態の他の主要な特徴となっている。そして、調整処理が行われたＬＳＩは、電気的特性などの検査工程（Ｓ１０９）を経て、出荷される（Ｓ１１０）。
【００４１】
図２は、図１に示すディジタルシステムの製造方法において、その遅延回路の限定（Ｓ１０３）を行う際の詳細な処理内容の一例を示すフロー図である。ここでの処理は、遅延回路の挿入箇所を限定することによって、図１のＳ１０８における調整時間を短縮し、また、図１３に示したようなディジタルシステム１におけるチップ面積のオーバーヘッドを小さくすることが主な目的である。なお、この処理は、例えば、コンピュータシステムでのプログラム処理によって自動的に行われる。
【００４２】
図２において、まず、図１のＳ１０２における静的タイミング解析（ＳＴＡ）の結果から、パス遅延時間のリストを生成する（Ｓ２０１）。パス遅延時間とは、フリップフロップからフリップフロップまでの間の組み合わせ回路などをデータ信号が通過するのにかかる時間のことである。次いで、この作成したリストを基に、タイミング的な余裕に関してパス遅延時間を順位付けする（Ｓ２０２）。その後、最も余裕の無いパス遅延時間の両端のフリップフロップから順にＮ箇所を調整箇所（遅延回路の挿入箇所）に決定する（Ｓ２０３）。
すなわち、コンピュータシステムのプログラム内容としては、例えば、ＳＴＡの結果によって得られるパス遅延時間（およびその両端のフリップフロップを特定する情報も含む）のリストに対してソーティングを行う。そして、ユーザや又は後述する調整シミュレーションを実行するプログラムからＮが指定されると、このソーティング結果を参照してフリップフロップを決定する。
【００４３】
なお、Ｓ２０３において、両端のフリップフロップを対象とするのは、前述したように実際のＬＳＩに含まれる各フリップフロップは、互いに密接に影響を及ぼし合うため、タイミングマージンの少ないパスの両端のフリップフロップのうち、他のフリップフロップへの悪影響が少ない方で調整可能にするためである。または、両端のフリップフロップにマージンを適宜振り分けることで、他のフリップフロップへの悪影響が全体的に少なくなるような調整を可能にするためである。更には、両端に振り分けることで、その両端の間のパス遅延時間がばらつきによって非常に大きなものとなった場合に、その調整を両端に位置する２つの遅延回路分の最大調整幅で調整可能にするためである。
【００４４】
このように、両端に遅延回路を挿入することを想定して、図１のＳ１０４の調整シミュレーションを行うことが最も望ましいが、勿論、場合によっては片側のみに挿入することを想定して調整シミュレーションを行うことも可能である。すなわち、パスの始点側のみに挿入してマイナスの遅延時間を設定するか、もしくはパスの終点側のみに挿入してプラスの遅延時間を設定するかのいずれによってもパスのタイミングマージンを拡大可能である。なお、調整シミュレーション上でマイナスの遅延時間を設定することが見込まれる場合は、実際に製造されるチップ上では、例えば、ＰＬＬ回路などの調整でそのマイナスの遅延時間を実現すればよい。
【００４５】
以上のように、調整の効果が見込める場所にのみ調整箇所を限定することで、調整時間を短縮し、面精オーバーヘッドを小さくする。ただし、この時、限定する調整箇所の個数Ｎの最適値は、調整による歩留まり向上等と調整時間（および面積オーバーヘッド）の増大とのトレードオフで決まるので、対象とするＬＳＩによって異なる。そこで、図１のＳ１０４において、この個数Ｎの遅延回路を挿入した場合の歩留まり向上効果を、調整シミュレーションを用いて見積もり、この個数Ｎを変更しながら調整シミュレーションを行うことで最適なＮを見つけ出す。
【００４６】
図３は、図１に示すディジタルシステムの製造方法において、その調整シミュレーションで用いるシミュレーションモデルの一例を示した概念図である。調整の効果を設計時に確認するためには、遺伝的アルゴリズム（ＧＡ）による調整シミュレーションを行う必要がある。ＧＡでは、前述したように、回路がどの程度正常動作するかを適応度（評価関数）ｆｉｔとして使用し、遺伝的操作により染色体の修正を行った後に再度適応度の計算を行う。このような繰り返し作業を何千回と行うことになるため、回路が正常動作するかを調べるために組み合わせ回路によるデータパターンの転送を含めたタイミングシミュレーション（動的タイミング解析）を行ったのでは、一度の評価関数の計算に時間がかかり、調整シミュレーションが完了するまでに膨大な時間がかかってしまう。
【００４７】
そこで、フリップフロップが正常な情報を伝達できるかという、タイミング情報のみをモデル化したシミュレータを作成する。このシミュレータは、コンピュータシステムでのプログラム処理によって実現され、遅延回路の挿入効果を検証するのに必要な最小限の機能のみを備え、高速動作が可能なものとなっている。
【００４８】
すなわち、このシミュレータは、ディジタルシステム１を図３に示すようなシミュレーションモデルで表現する。図３のシミュレーションモデルでは、入力データが組み合わせ回路やフリップフロップを通過し、出力されるまでの様子が有向グラフで表現される。図３中の丸印は、ディジタルシステム１内に含まれるフリップフロップ（すなわちＳＴＡの結果に含まれているフリップフロップ）をノードとして表したものである。この各ノードは、後述するタイミング条件を満足した場合と不満足だった場合とで１か０かを保持する。
【００４９】
図３中の矢印は、ディジタルシステム１内に含まれるフリップフロップ間のパス（組み合わせ回路）をアーク（辺）として表したものである。この各アークは、そのパスを信号が通過するのに要する時間を保持する。詳細は後述するが、この時間は、ＳＴＡの結果に基づくパス遅延時間を加工した時間である。このように、図３のシミュレーションモデルでは、一つ一つの組み合わせ回路の論理情報や、例えば、フリップフロップのセットアップ・ホールドタイミングといった通過データの細かいタイミング関係などを省いているため、少ない計算量でタイミングに関する動作確認が可能となる。具体的には、以下のような手順で、このディジタルシステム１のシミュレーションモデル（以下では、チップ又は仮想チップとも呼ぶ）対して動作確認を行う。
【００５０】
［１Ａ］シミュレーションの初期状態では、全てのフリップフロップｉ（０≦ｉ≦ｎ−１，ｎは全フリップフロップ数）は全て正常に動作すると仮定する。ここで、フリップフロップｉが正常に動作するかどうかを表す値をＳｉとし、正常動作するならば１、正常動作しないならば０とする。したがって、例えば正常動作する場合は、式（１）となる。
Ｓｉ＝１      （１）
【００５１】
［２Ａ］図４は、図３のシミュレーションモデルに対して動作確認を行う際の処理内容を説明する図であり、フリップフロップの動作モデルを表したものである。図４に示すように、チップ内のフリップフロップｉ，ｊを前後に持つ組み合わせ回路を通過する時間Ｄｉｊが、クロック信号の一周期分の時間Ｔｃｌｋ以下であれば、演算されるデータが正常に伝達されると仮定し、フリップフロップｊが正常に動作するかどうかを表す値Ｓｊを１とする。また、データが正常に伝達されていないフリップフロップｊには正常なデータでないという印Ｓｊ＝０をつける。これによって、式（２）および式（３）の関係が成り立つ。
Ｄｉｊ≦Ｔｃｌｋ  ：  Ｓｊ＝１      （２）
Ｄｉｊ＞Ｔｃｌｋ  ：  Ｓｊ＝０      （３）
【００５２】
［３Ａ］図５は、図３のシミュレーションモデルに対して動作確認を行う際の処理内容を説明する図であり、フリップフロップの動作状態の遷移モデルを表したものである。図５に示すように、正常なデータを持たない印Ｓｊ＝０のついたフリップフロップｊを入力に持つ組み合わせ回路Ｄｊｋでは、正常な値を出力することができないため、フリップフロップｊの出力値を入力とするフリップフロップｋには、同様に印Ｓｋ=０をつける。このようにして、チップ内の全ての組み合わせ回路でデータが正常に伝達されているかをチェックする。
なお、例えばフリップフロップｋに印Ｓｋ＝０をつけるということは、図３において、フリップフロップｋに該当するノードに０を保持させることに該当する。ここで、図３に示すように、ノード間に帰還ループ（すなわち順序回路などに該当）が発生するようなパス（アーク）あった場合、ここでの処理によって後段の０が帰還されてその帰還先となる前段が０になるような正しい伝達は生じても、後段の１が帰還されてその帰還先の前段が０から１に変更されるような誤った伝達は生じない。つまり、前段が０ならばその後段も必ず０となるからである。
【００５３】
［４Ａ］前述した［１Ａ］〜［３Ａ］の処理を経て、最終的に、図３の出力データに含まれる各フリップフロップｏｕｔ＿ｉが、正常なデータＳｏｕｔ＿ｉ＝１を全て保持できていればそのチップは正常に動作していると判断する。また、各フリップフロップｏｕｔ＿ｉが、一つでも正常なデータを保持できていなければ(Ｓｏｕｔ＿ｉ＝０)、そのチップは誤作動してしまうチップだと判断する。
ここで、各フリップフロップｏｕｔ＿ｉの総数Ｎｏｕｔのうち、正常なデータを保持しているフリップフロップｏｕｔ＿ｉの個数ｎｏｕｔの割合ｎｏｕｔ／Ｎｏｕｔを、遺伝的アルゴリズムでの適応度ｆｉｔに対応させる。このようにして、遺伝的アルゴリズムでは、適応度ｆｉｔが１になる染色体が現れるまで遺伝的操作を繰り返すことになる。
【００５４】
次に、組み合わせ回路（図３のアーク）のタイミングに関するモデルについて説明する。
【００５５】
フリップフロップｉ，ｊのクロックラインに挿入した遅延回路の遅延値をＤｉ，Ｄｊとした場合、調整後のフリップフロップｉ，ｊ間のパス遅延時間Ｄｉｊ’は式（４）で求められる。
Ｄｉｊ’＝Ｄｉｊ＋Ｄｊ−Ｄｉ      （４）
このとき、遅延時間Ｄｉｊは、例えばＬＳＩ設計時のＳＴＡの解析結果を用いればよい。製造工程で、２つのフリップフロップ間のパス遅延時間にＶａｒ＿ｉｊのばらつきが生じるとすると、ばらつきを考慮した遅延時間Ｄｉｊ’’は、式（５）のように定義できる。
Ｄｉｊ’’＝Ｄｉｊ’＋Ｖａｒ＿ｉｊ      （５）
ばらつき値Ｖａｒ＿ｉｊは、簡単のために相対値σｒｅｌで正規分布すると仮定し、正規乱数Ｎ（０，１）を用いて式（６）で求める。
Ｖａｒ＿ｉｊ＝Ｄｉｊ×σｒｅｌ×Ｎ（０，１）      （６）
こうして求まったＤｉｊ’’を、図３の各アークに保持させ、更に、式（２），式（３）のタイミング条件においてＤｉｊの代わりに用いることで図３の各ノードが０か１を検証し、その０または１を前述した手順［３Ａ］のように伝達させていく。
【００５６】
このように、図３の各アークの遅延時間に式（６）のばらつき値Ｖａｒ＿ｉｊを反映させることで、それぞれパス遅延時間のばらつきが異なった図３のチップ（仮想チップ）を複数生成可能になる。ここで、このばらつきは、実際の製造ばらつきに近いと考えられる正規分布に基づくことになる。更に、図３の各アークの遅延時間に式（４）のように遅延値Ｄｉ，Ｄｊを反映させると、この仮想チップに対して遅延回路を挿入したことになる。したがって、この生成した仮想チップは、実際に遅延回路が挿入された状態で製造されたディジタルシステム１（ディジタルＬＳＩ）を高精度に反映したものと言える。
【００５７】
そこで、図１の実チップでのクロック調整（Ｓ１０８）と同様に、前述した複数の仮想チップに対して遺伝的アルゴリズム（ＧＡ）により遅延回路の遅延時間を調整し、その調整が成功した（すなわち適応度ｆｉｔを１にできた）割合を判定することで、遅延回路を挿入することによる歩留まり改善効果を見積もることが可能となる。更に、図２等で説明したような方法で、この仮想チップに挿入する遅延回路の数を限定しながら同様な評価を行うことで、歩留まり改善効果と調整時間および面積オーバーヘッドとのトレードオフを勘案しながら、最適な遅延回路の数を決定することが可能となる。この際に、前述したシミュレータは、簡単な数式の計算や、１および０の伝達といった単純な処理を行うため、高速動作が可能である。
【００５８】
なお、ここでは製造ばらつきとして正規分布を用いたが、別の分布に基づくような場合は、勿論、正規乱数をその分布を表現する乱数に置き換えればよい。また、図３の各アークの遅延時間Ｄｉｊとして、ここでは静的タイミング解析（ＳＴＡ）の結果を用いたが、必ずしもＳＴＡの結果である必要はなく、各プリップフロップ間のパス遅延時間の情報とそれに対応する各フリッププロップを特定できる情報とを備えたデータであれば代替え可能である。例えば、データパターンを用いてパス遅延時間を検証する動的タイミング解析の結果などで代替えすることも可能である。また、場合によっては、図１のフィジカル設計（Ｓ１０５）によって得たパス遅延時間を用いることも可能である。この場合、より精度が高い調整シミュレーションが可能となる。ただし、この場合は、図１で述べたように、回路設計（Ｓ１０１）への戻りを生じさせないように、フィジカル設計時（Ｓ１０５）に遅延回路を挿入できる仕組みを実現することが望ましい。
【００５９】
図６は、図１に示すディジタルシステムの製造方法において、その遺伝的アルゴリズム（ＧＡ）を用いた製造後クロック調整（Ｓ１０８）の詳細な処理の一例を示すフロー図である。ここでの処理は、例えばコンピュータシステムによるプログラム処理によって実現され、前述したように、図１の調整シミュレーション（Ｓ１０４）においても同様に使用される。ただし、図１３で述べたように、遺伝的アルゴリズムをディジタルシステム１内に組み込む場合には、ＧＡを用いた製造後クロック調整（Ｓ１０８）の処理は、ディジタルシステム１自身によって行われることになる。図６の処理内容は、後述する母集団（初期集団）の生成処理（Ｓ６０１）を除き、特許文献１に記載された処理と同様である。その詳細は、特許文献１に記載されているため、ここでは、簡単に説明を行う。
【００６０】
遺伝的アルゴリズムの調整を開始した後（Ｓ６００）、まず、母集団（初期集団）の生成を行う（Ｓ６０１）。ここでは、母集団とは、遺伝的アルゴリズムで用いる所定の数の染色体からなる集合体を意味し、その各染色体は、交叉や突然変異などを経て選択（淘汰）されることで逐次入れ替えられる。また、初期集団とは、この選択（淘汰）が行われる前の最初に生成した所定の数の染色体からなる集合体を意味し、言うなれば、母集団の初期状態である。
【００６１】
特許文献１では、この初期集団の各染色体に設定される初期パラメータ値を一様乱数により定めていた。しかし、製造誤差は、一般的に、設計値を中心として前後にばらついて発生している。そこで、本実施の形態では、この性質を生かすために、初期集団に含まれる各染色体の初期パラメータ値を設計値を中心として正規乱数により分布させる。具体的には、Ｎ個の遅延回路のそれぞれの設定値Ｄｉ（０≦ｉ≦Ｎ−１）は、相対値σＧＡで正規分布が行われ、正規乱数Ｎ（０，１）を用いて式（７）で決定される。
Ｄｉ＝σＧＡ×Ｎ（０，１）      （７）
【００６２】
図７は、図６における母集団の生成処理（Ｓ６０１）において、一様乱数と正規乱数による初期集団の分布の違いを示す概略図である。一様乱数を用いた場合、図７のばらつき特性７１のように、初期集団に含まれる各染色体の初期パラメータ値（遅延回路の初期遅延値）は、その調整範囲に渡ってほぼ等しい確率でばらつくことになる。一方、正規乱数を用いた場合、図７のばらつき特性７２のように、各染色体の初期パラメータ値（遅延回路の初期遅延値）は、設計の中心値（すなわちゼロの遅延時間に該当する）を持つ確率が最も高く、これを中心に下限から上限に渡って正規分布でばらつくことになる。
【００６３】
このように、遅延回路の初期遅延値を、設計値を中心として正規乱数により分布させることで、ＧＡの収束速度が高まり、解候補をより迅速に発見できる。したがって、図１の製造後クロック調整（Ｓ１０８）に要する時間を短縮できる。あるいは、一様乱数の場合と比較して、同じ調整時間内で、より最適解を得られる確率が高くなる。これは、調整時間を一定とすると、よりチップの歩留まり向上等に寄与できることを意味する。
【００６４】
また、図６のＳ６０１では、この生成した母集団（ここでは初期集団となる）に対して、ぞれぞれの適応度ｆｉｔが求められる。ここで、適応度ｆｉｔを判定し（Ｓ６０２）、適応度ｆｉｔが１．０になる染色体が存在すれば調整は成功とみなし終了となる（Ｓ６０８）。適応度ｆｉｔが１．０になる染色体が一つもない場合には、Ｓ６０３へ移行する。
【００６５】
Ｓ６０３では、母集団の中からランダムに２つの染色体を選択し、この２つの染色体を親として図１６に示したような交叉、突然変異の処理を行い、子となる２つの染色体を生成する。更に、子の２つの染色体に対して適応度ｆｉｔを求める。ここで、適応度ｆｉｔを判定し（Ｓ６０４）、子の染色体の一方でも適応度ｆｉｔが１．０ならば調整は成功とみなし終了となる（Ｓ６０８）。どちらの染色体も適応度ｆｉｔが１．０に満たないならば、Ｓ６０５へ移行する。
【００６６】
Ｓ６０５では、親となる２つの染色体と子となる２つの染色体とで適応度ｆｉｔを比較し、適応度ｆｉｔの大きい２つの染色体を元の母集団に戻す。すなわち、母集団において置換が行われることになる。言い換えれば、母集団に残す染色体が選択され、適応度ｆｉｔが低い染色体が淘汰される。（母集団の数）／２の回数だけＳ６０３〜Ｓ６０５の処理を繰り返した場合、１世代終了したとみなす。そして、予め定めた所定の世代数に達したか否かを判定し（Ｓ６０６）、到達した場合、調整は失敗とみなして終了する（Ｓ６０７）。
【００６７】
図８は、図１に示すディジタルシステムの製造方法において、その調整シミュレーション（Ｓ１０４）で用いるシミュレータの構成例を示すブロック図である。このシミュレータは、図３〜図５で述べたような各種処理を行い、更に、図６で述べたような遺伝的アルゴリズム（ＧＡ）を実行するものとなっており、コンピュータによるプログラム処理によって実現される。なお、このシミュレータは、勿論、以下に説明するような構成に限定されるものではなく、以下と同様の機能は、プログラム処理によって様々な形態で実現可能である。
【００６８】
図８に示すシミュレータは、例えば、Ｉ／Ｏ部１００と、タイミングシミュレータ部１０１と、遺伝的アルゴリズム（ＧＡ）実行部１０２などによって構成される。タイミングシミュレータ部１０１は、Ｉ／Ｏ部１００を通じて、外部から、ノード数、ノード間の接続情報、入出力ノード情報、各アークのＤｉｊ、式（６）のσｒｅｌを取得する。σｒｅｌを除いた情報は、例えばＳＴＡなどの結果から適宜取得すればよい。σｒｅｌについては、想定しているＬＳＩの製造プロセスがどれくらいバラツキをもっているかの度合いを、例えば、ユーザからの入力等を通じて取得する。σｒｅｌの値は、ばらつきがおおきなプロセスでは、たとえば、５％（σｒｅｌ＝０．０５）などの値となる。
【００６９】
また、どこのノードを調整対象とするかについても、タイミングシミュレータ部１０１が外部から取得する。この情報は、図２の調整箇所限定方法の結果から入手すればよい。調整条件である、想定動作周波数も、外部から取得する。なお、各アークのＤｉｊは、想定する動作電源電圧に応じて、予め例えばＳＴＡなどで計算しておいたティピカル値を用いればよい。
【００７０】
遺伝的アルゴリズム実行部１０２は、Ｉ／Ｏ部１００を通じて、外部から、母集団数、染色体長、打ち切り評価回数、交叉確率、突然変異確率、式（７）のσＧＡ、遅延回路の設定値Ｄｉの上下限値、出力端子の総数Ｎｏｕｔを取得する。なお、染色体長は、調整箇所（挿入する遅延回路の数）Ｎに応じて定まる。
【００７１】
図９は、図８のシミュレータにおいて、その遺伝的アルゴリズム（ＧＡ）実行部の詳細な構成例を示すブロック図である。図９に示す遺伝的アルゴリズム（ＧＡ）実行部１０２は、例えば、初期集団生成部１１０と、遺伝的操作処理部１１１と、適応度計算部１１２と、終了条件判定部１１３などによって構成される。
【００７２】
初期集団生成部１１０は、図６のフローにおける「母集団の生成」（Ｓ６０１）の処理を行う。ここで生成された初期集団に含まれる各染色体の初期パラメータ値（遅延回路の設定値）がタイミングシミュレータ部１０１に送られる。遺伝的操作処理部１１１は、図６のフローにおける「選択  交叉  突然変異」（Ｓ６０３）や「置換」（Ｓ６０５）の処理を行う。ここで生成された子となる染色体の情報がタイミングシミュレータ部１０１に送られる。
【００７３】
適応度計算部１１２は、図６のフローにおける「母集団の生成」（Ｓ６０１）や「選択  交叉  突然変異」（Ｓ６０３）中で行われる「各染色体に対して評価値ｆｉｔを求める処理」を実行する。具体的には、初期集団生成部１１０や遺伝的操作処理部１１１からタイミングシミュレータ部１０１に送った各染色体の情報に対して、タイミングシミュレータ部１０１から、そのシミュレーション結果として正常なデータを保持しているフリップフロップｏｕｔ＿ｉの個数ｎｏｕｔが送り返されてくる。そこで、適応度計算部１１２は、フリップフロップｏｕｔ＿ｉの総数Ｎｏｕｔを用いて各染色体に対応する適応度ｆｉｔ＝ｎｏｕｔ／Ｎｏｕｔを計算し、この適応度ｆｉｔを遺伝的操作処理部１１１もしくは初期集団生成部１１０に送信する。
【００７４】
終了条件判定部１１３は、図６のフローにおける「ｆｉｔ＝＝１．０」（Ｓ６０２およびＳ６０４）と「世代数繰り返したか」（Ｓ６０６）の判定処理を行う。具体的には、Ｓ６０２内の「ｆｉｔが１．０になる個体が存在すれば」の判断と、Ｓ６０４内の「一方でも評価値ｆｉｔが１．０ならば」の判断と、Ｓ６０６内の「一定の世代数繰り返しても」の判断を行う。ここでの判断の結果、調整が成功したもしくは失敗したかの情報は、Ｉ／Ｏ部１００を通じて外部に出力される。
なお図示していないが、この遺伝的アルゴリズム（ＧＡ）実行部１０２内には、母集団中のすべての染色体情報と適応度情報を対で記憶するメモリが必要である。
【００７５】
図１０は、図８のシミュレータにおいて、そのタイミングシミュレータ部の詳細な構成例を示すブロック図である。図１０に示すタイミングシミュレータ部１０１は、例えば、ネットワーク生成部１２０と、タイミング情報伝播部１２１と、仮想チップ生成部１２２と、遅延値設定部１２３と、出力情報判定部１２４などによって構成される。
【００７６】
ネットワーク生成部１２０は、一連の調整シミュレーションにつき１回だけ起動される。ここでは、外部から取得した、ノード数、ノード間接続情報、入出力ノード情報に基づいて、図３の有向グラフを生成、記憶する。この情報は、他の処理部と共有する。
【００７７】
仮想チップ生成部１２２は、ある想定動作周波数のある想定動作電源電圧のある仮想チップ１つにつき１回起動される。ここでは、外部から与えられた想定動作周波数から、式（２），（３）のＴｃｌｋを計算し、タイミング情報伝播部１２１に送る。また、想定動作電源電圧に対応した各アークのＤｉｊ値を外部から取得し、遅延値設定部１２３に送る。なお、このＤｉｊ値は、仮想チップ生成部１２２内のメモリに保持しておき、仮想チップを生成する際にその想定動作電源電圧値が同じ値の場合は、Ｄｉｊ値を外部から取得せずにメモリに保持されているＤｉｊ値を用いればよい。さらに、仮想チップ生成部１２２では、式（６）に従って、すべてのアークのＶａｒ＿ｉｊを計算し、遅延値設定部１２３に送る。
【００７８】
遅延値生成部１２３は、遺伝的アルゴリズム（ＧＡ）実行部１０２から染色体情報が送られてくる度に、起動される。ここでは、与えられた染色体情報から、調整対象とするノードの遅延回路に遅延値Ｄｉを設定する。また調整対象でないノードに対しては、遅延値０を設定する。すべてのノードに対して、遅延値を設定した後に、仮想チップ生成部１２２から送られてきたＤｉｊ値とＶａｒ＿ｉｊ値を用いて、式（４），（５）に従って、すべてのアークのＤｉｊ’’を計算し、タイミング情報伝播部１２１に送る。
【００７９】
タイミング情報伝播部１２１は、仮想チップ生成部１２２と遅延値設定部１２３から送られたＴｃｌｋ値とＤｉｊ’’値を用いて、タイミングの正誤情報を伝播させる。具体的には、図３の説明で述べた［１Ａ］〜［３Ａ］の処理を行う。
【００８０】
出力情報判定部１２４は、タイミング情報伝播部１２１でタイミング情報を伝播させた結果、図３の出力データ内のノードのうち正常なデータを保持可能なノードの数を判定し、その数ｎｏｕｔを遺伝的アルゴリズム（ＧＡ）実行部１０２に送る。具体的には図３の述べた［４Ａ］の処理を行う。
【００８１】
以上、図８〜図１０に示したシミュレータは、その主な動作として、仮想チップ生成部１２２等で生成した複数の仮想チップに対して、遅延値生成部１２３により遅延回路を挿入し、この遅延回路の遅延時間を遺伝的アルゴリズム（ＧＡ）実行部１０２により探索しながら、終了条件判定部１１３で仮想チップ毎に調整が成功したか否かを判定する。そして、この調整の成否によって、複数の仮想チップの歩留まりを判断することができる。そこで、図２の遅延回路の限定から得られた情報に基づいて、遺伝的アルゴリズム（ＧＡ）実行部１０２で用いる染色体長を変更し、遅延値生成部１２３でこの染色体長に対応したノードを調整対象として遅延回路を挿入し、同様のシミュレーションを行うことで、遅延回路の数に対する歩留まり向上効果を判断することが可能となる。
【００８２】
また、このシミュレータは、外部から、ノード数、ノード間の接続情報、入出力ノード情報、および各アークのＤｉｊなどを含むデータ（例えばＳＴＡ結果）を取得し、この取得したデータに応じた仮想チップを生成した上で、前述したような歩留まりの評価を行うことが可能となっている。したがって、様々なＬＳＩを対象とした場合も、そのＳＴＡ結果等があればシミュレーションを行うことができるため、汎用的に用いることが可能である。
【００８３】
更に、このシミュレータは、外部から、母集団数、打ち切り評価回数、交叉確率、突然変異確率等を取得し、この情報に応じて遺伝的アルゴリズムを実行可能となっている。したがって、このような遺伝的アルゴリズムの各種条件を変更しながらシミュレーションを行うことで、最適な条件を模索することが可能となる。そして、これによって得られた条件は、図１の製造後クロック調整（Ｓ１０８）で実際に用いることが可能となる。すなわち、実際に製造後に行われる遺伝的アルゴリズムの条件を、設計段階で検証することが可能となるため、製造工程の効率化を図ることが可能となる。
【００８４】
次に、これまでに述べたような遅延回路の限定および調整シミュレーション、ならびにＧＡの初期集団分布の改良を、実際に設計した大規模ＬＳＩに適用し、その有効性を検証した実験結果について説明する。
【００８５】
今回の実験では、設計動作周波数２００ＭＨｚ、設計動作電源電圧１．０Ｖで設計された画像圧縮伸長処理に用いるＤＣＴ演算回路を基に、遅延回路を組み込んだ試作ＬＳＩの設計情報を用いた。この回路の規模は、３万ゲート、フリップフロップ数は１０３１個である。この回路のＳＴＡの結果を基に、図８〜図１０に示したようなシミュレータ上で仮想チップを１００チップ作成し、（１）調整箇所を限定した時の効果と（２）ＧＡ初期集団の分布を改良した時の効果を、動作周波数方向の調整実験で比較した。
【００８６】
動作周波数方向の調整実験では、動作電源電圧を１．０Ｖで固定し、動作周波数を２００ＭＨｚから３２０ＭＨｚまで１０ＭＨｚ刻みで増加させ、各動作周波数毎に歩留を調査した。
ＧＡの諸条件は以下のように設定した。
母集団数：５０
染色体長：調整箇所数Ｎ
打ち切り評価回数：３０００（６０世代）
交叉方法：一様交叉
交叉確率：０．５
突然変異方法：Ｇａｕｓｓｉａｎ  Ｍｕｔａｔｉｏｎ（正規分布を用いた突然変異）
突然変異確率：１．０
σＧＡ：７２ｐｓ
Ｄｉの上下限値：−５０４ｐｓ〜５７６ｐｓ
打ち切り評価回数を３０００回に設定した理由として、実際のＬＳＩでは１回の評価時間に１ミリ秒程度要すると見積もっているため、１チップあたりの調整時間を実用的な限度である数秒程度に抑えるためには、３０００回程度が妥当であると考えられるためである。
【００８７】
上記の条件の下、実験は以下のような手順で行った。
【００８８】
［１Ｂ］動作周波数を設定し、遅延回路の調整値を０にした状態（無調整状態）で正常動作するかどうかを確認する。
［２Ｂ］この［１Ｂ］で正常動作したチップに対しては調整を行う必要がないため、［４Ｂ］へ移行し、［１Ｂ］で正常動作しなかったチップは、［３Ｂ］へ移行する。
［３Ｂ］ＧＡを用いた遅延回路の調整を行う。調整が成功すれば正常動作するチップと判断し、［４Ｂ］へ移行する。調整が失敗した場合は、正常動作しないチップと判断し、［４Ｂ］へ移行する。
［４Ｂ］次のチップへ移り［１Ｂ］〜［３Ｂ］を繰り返す。ただし、一定のチップ数の実験を終えた場合は［５Ｂ］へ移行する。
［５Ｂ］動作周波数を変更し、［１Ｂ］〜［４Ｂ］を繰り返す。調査する動作周波数が全て終了した場合は、実験を終了する。
【００８９】
ここで、調整シミュレーション時間に関し、上記実験手順を１試行完了するのにかかった時間は平均１４時間程度であった。最適な調整箇所数を確認するシミュレーション実験にかかる時間としては、十分現実的な時間だといえる。
【００９０】
続いて、調整箇所の限定による歩留まり向上効果に関し、限定した調整箇所の個数Ｎについて、１００，３００，６００，１０３１（全箇所調整）の４通りを設定し、それぞれの調整実験を行った。図１１は、動作周波数方向における調整箇所限定時の調整実験結果を示すグラフである。図１１では、横軸に動作周波数、縦軸にチップの歩留まりを設定し、調整実験で求まった調整前の平均歩留まりと、調整箇所数毎の調整後の歩留まりをそれぞれ折れ線グラフで表している。
【００９１】
図１１に示すように、１０３１箇所の全箇所調整ではほとんど歩留が向上していないことがわかる。これは、探索空間が広いために、３０００回の打ち切り条件ではＧＡが十分に収束していないためと考えられる。それに比べて、調整箇所を限定した場合の調整では歩留の向上が確認でき、調整の効果を得られることがわかる。例えば、動作周波数２７０ＭＨｚにおいて、調整を行わない場合や１０３１箇所の全箇所調整では、歩留まりが６０％程度となるのに対して、１００箇所や３００箇所の調整では、９０％以上の歩留まりが得られている。これらの結果は、探索空間を縮小することで、ＧＡの収束速度を向上させることができたためである。
【００９２】
続いて、ＧＡ初期集団の分布を改良した時の効果に関し、前述した調整箇所の限定で効果の大きかった１００箇所と３００箇所での調整実験において、ＧＡ初期集団の分布を改良した時の調整実験を行った。図１２は、動作周波数方向におけるＧＡ改良時の調整実験結果を示すグラフである。図１２では、横軸に動作周波数、縦軸にはチップの歩留まりを設定し、前述した実験で比較的効果の見られた１００箇所調整の歩留まりと３００箇所調整の歩留まりに加え、ここでの実験で求まったＧＡ初期集団の分布を改良した時の１００箇所調整の歩留まりと３００箇所調整の歩留まりをそれぞれ折れ線グラフで表している。
図１２に示すように、ＧＡの初期集団の分布を改良することで、３００箇所の調整での歩留が大幅に上昇していることがわかる。特に、動作周波数２８０ＭＨｚでのチップの歩留まりを見ると、改良前のＧＡによる３００箇所の調整では約１５％であった歩留が、改良を加えたＧＡによる３００箇所の調整を行うことで、約９０％程度にまで向上した。これは、ＧＡの初期集団の分布を改良することで、ＧＡが３０００回の打ち切り回数以内で十分に収束できたためである。
【００９３】
一方、１００箇所の調整の歩留が初期集団の分布改良後にほとんど上昇していない。これは、１００箇所の調整では必要な遅延回路が足りず、歩留まりをこれ以上向上させられないことが考えられる。したがって、今回の実験では、調整箇所を３００箇所に限定した場合に最も調整効果が大きいという結果が得られた。
【００９４】
以上、今回の実験によって、遅延回路の限定および調整シミュレーション、ならびにＧＡの初期集団分布の改良を大規模ＬＳＩに適用した場合に、有益な効果が得られることが確認できた。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００９５】
本発明のディジタルシステムの設計システムおよび製造方法は、特に、遺伝的アルゴリズムで値が調整されるプログラマブル遅延回路を備えた大規模のディジタルシステムの設計システムおよび製造方法に適用して有益な技術であり、これに限らず、プログラマブル遅延回路を備えたディジタルシステム全般に対して広く適用可能である。
【図面の簡単な説明】
【００９６】
【図１】本発明の一実施の形態によるディジタルシステムの製造方法において、その処理の一例を示す工程フロー図である。
【図２】図１に示すディジタルシステムの製造方法において、その遅延回路の限定（Ｓ１０３）を行う際の詳細な処理内容の一例を示すフロー図である。
【図３】図１に示すディジタルシステムの製造方法において、その調整シミュレーションで用いるシミュレーションモデルの一例を示した概念図である。
【図４】図３のシミュレーションモデルに対して動作確認を行う際の処理内容を説明する図であり、フリップフロップの動作モデルを表したものである。
【図５】図３のシミュレーションモデルに対して動作確認を行う際の処理内容を説明する図であり、フリップフロップの動作状態の遷移モデルを表したものである。
【図６】図１に示すディジタルシステムの製造方法において、その遺伝的アルゴリズム（ＧＡ）を用いた製造後クロック調整の詳細な処理の一例を示すフロー図である。
【図７】図６における母集団の生成処理において、一様乱数と正規乱数による初期集団の分布の違いを示す概略図である。
【図８】図１に示すディジタルシステムの製造方法において、その調整シミュレーションで用いるシミュレータの構成例を示すブロック図である。
【図９】図８のシミュレータにおいて、その遺伝的アルゴリズム（ＧＡ）実行部の詳細な構成例を示すブロック図である。
【図１０】図８のシミュレータにおいて、そのタイミングシミュレータ部の詳細な構成例を示すブロック図である。
【図１１】動作周波数方向における調整箇所限定時の調整実験結果を示すグラフである。
【図１２】動作周波数方向におけるＧＡ改良時の調整実験結果を示すグラフである。
【図１３】本発明の前提として検討したディジタルシステムの設計システムにおいて、その構成例を示すブロック図である。
【図１４】図１３のディジタルシステムの一例となるパイプライン型の回路を示すものであり、(ａ)〜（ｃ）は、それぞれ動作条件が異なる場合を示している。
【図１５】遺伝的アルゴリズムで用いる染色体の構成例を示す概略図である。
【図１６】遺伝的アルゴリズムにおいて、染色体に対して行う操作の一例を示すものであり、（ａ）、（ｂ）は、それぞれ交叉、突然変異の操作の一例を示す概略図である。
【図１７】遺伝的アルゴリズムで操作が進んでいく様子を示す概念図である。
【符号の説明】
【００９７】
１  ディジタルシステム
２  電源装置
３  ディジタルテスト信号発生装置
４  調整装置
５  ディジタル信号観測装置
６  電源供給
７  内部ノードの論理レベル
７１，７２  分布
１００  Ｉ／Ｏ部
１０１  タイミングシミュレータ部
１０２  遺伝的アルゴリズム実行部
１１０  初期集団生成部
１１１  遺伝的操作処理部
１１２  適応度計算部
１１３  終了条件判定部
１２０  ネットワーク生成部
１２１  タイミング情報伝播部
１２２  仮想チップ生成部
１２３  遅延値設定部
１２４  出力情報判定部
ＦＦ  フリップフロップ
ＲＥＧ  レジスタ
ＤＬＹ  遅延回路
Ｄｉｎ  データ入力信号
Ｄｏｕｔ  データ出力信号
ＣＬＫ  クロック信号
ＣＣ  組合せ回路
ＣＨ  染色体
【図１】
2008217350.tif 000003
【図２】
2008217350.tif 000004
【図３】
2008217350.tif 000005
【図４】
2008217350.tif 000006
【図５】
2008217350.tif 000007
【図６】
2008217350.tif 000008
【図７】
2008217350.tif 000009
【図８】
2008217350.tif 000010
【図９】
2008217350.tif 000011
【図１０】
2008217350.tif 000012
【図１１】
2008217350.tif 000013
【図１２】
2008217350.tif 000014
【図１３】
2008217350.tif 000015
【図１４】
2008217350.tif 000016
【図１５】
2008217350.tif 000017
【図１６】
2008217350.tif 000018
【図１７】
2008217350.tif 000019