(57)【要約】【課題】回路のリーク電流に関する歩留分布を正確に見積もること。【解決手段】本設計支援手法では、セルＣｉのリーク電流を表現する関数モデルに含まれるバラツキパラメータαi、βの平均、標準偏差を調整して、設計対象回路のリーク電流の見積リーク歩留分布と実測リーク歩留分布との誤差を最小化する。ただし、バラツキパラメータαｉは、セルＣｉ固有のバラツキを表わす変数である。また、バラツキパラメータβは、設計対象回路内の全セルＣ１〜Ｃｎ共通のバラツキを表わす変数である。そして、本設計支援手法では、調整後のバラツキパラメータαi、βの平均、標準偏差を用いて見積リーク歩留分布を再計算することで見積精度を向上させる。【選択図】図１
2010267210.tif 000002
【特許請求の範囲】
【請求項１】
シミュレータにアクセス可能なコンピュータを、
対象回路のリーク電流に関する実測された歩留分布を表わす実測歩留分布と、前記対象回路内のセルごとのリーク電流に関するモデルデータとの入力を受け付ける入力手段、
前記入力手段によって入力されたモデルデータと前記セルのリーク電流のバラツキ成分を表わす正規分布の値とを前記シミュレータに与えて、前記対象回路のリーク電流を取得する取得手段、
前記取得手段によって取得された対象回路のリーク電流に基づいて、前記対象回路のリーク電流に関する歩留分布を表わす見積歩留分布を算出する第１の算出手段、
前記入力手段によって入力された実測歩留分布と、前記第１の算出手段によって算出された見積歩留分布との誤差を最小化する前記正規分布の値を算出する第２の算出手段、
前記正規分布に初期値を設定するとともに、前記正規分布に前記第２の算出手段によって算出された値（以下、「算出値」という）を設定する設定手段、
前記モデルデータと前記設定手段によって設定された算出値とを前記シミュレータに与えて取得されたリーク電流に基づく前記見積歩留分布を出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
【請求項２】
前記第２の算出手段は、
Ｎｅｌｄｅｒ−Ｍｅａｄ法を用いた最小二乗法により、前記実測歩留分布と前記見積歩留分布との誤差を最小化する前記正規分布の値を算出することを特徴とする請求項１に記載の設計支援プログラム。
【請求項３】
前記第２の算出手段は、
勾配法を用いた最小二乗法により、前記実測歩留分布と前記見積歩留分布との誤差を最小化する前記正規分布の値を算出することを特徴とする請求項１に記載の設計支援プログラム。
【請求項４】
前記正規分布は、前記各セル固有のバラツキ成分を表わす第１正規分布と、前記対象回路内の全セル共通のバラツキ成分を表わす第２正規分布とを含み、
前記正規分布の値は、前記第１および第２正規分布の平均および標準偏差であることを特徴とする請求項１〜３のいずれか一つに記載の設計支援プログラム。
【請求項５】
対象回路のリーク電流に関する実測された歩留分布を表わす実測歩留分布と、前記対象回路内のセルごとのリーク電流に関するモデルデータとの入力を受け付ける入力手段と、
前記入力手段によって入力されたモデルデータと前記セルのリーク電流のバラツキ成分を表わす正規分布の値とをシミュレータに与えて、前記対象回路のリーク電流を取得する取得手段と、
前記取得手段によって取得された対象回路のリーク電流に基づいて、前記対象回路のリーク電流に関する歩留分布を表わす見積歩留分布を算出する第１の算出手段と、
前記入力手段によって入力された実測歩留分布と、前記第１の算出手段によって算出された見積歩留分布との誤差を最小化する前記正規分布の値を算出する第２の算出手段と、
前記正規分布に初期値を設定するとともに、前記正規分布に前記第２の算出手段によって算出された値（以下、「算出値」という）を設定する設定手段と、
前記モデルデータと前記設定手段によって設定された算出値とを前記シミュレータに与えて取得されたリーク電流に基づく前記見積歩留分布を出力する出力手段と、
を備えることを特徴とする設計支援装置。
【請求項６】
制御手段および記憶手段を備え、シミュレータにアクセス可能なコンピュータが、
前記制御手段により、対象回路のリーク電流に関する実測された歩留分布を表わす実測歩留分布と、前記対象回路内のセルごとのリーク電流に関するモデルデータとの入力を受け付けて、前記記憶手段に記憶する入力工程と、
前記制御手段により、前記セルのリーク電流のバラツキ成分を表わす正規分布に初期値を設定して、前記記憶手段に記憶する第１の設定工程と、
前記制御手段により、前記入力工程によって入力されたモデルデータと前記第１の設定工程によって設定された初期値とを前記シミュレータに与えて、前記対象回路のリーク電流を取得して、前記記憶手段に記憶する第１の取得工程と、
前記制御手段により、前記第１の取得工程によって取得された対象回路のリーク電流に基づいて、前記対象回路のリーク電流に関する歩留分布を表わす見積歩留分布を算出して、前記記憶手段に記憶する第１の算出工程と、
前記制御手段により、前記入力工程によって入力された実測歩留分布と、前記第１の算出工程によって算出された見積歩留分布との誤差を最小化する前記正規分布の値を算出して、前記記憶手段に記憶する第２の算出工程と、
前記制御手段により、前記正規分布に前記第２の算出工程によって算出された値（以下、「算出値」という）を設定して、前記記憶手段に記憶する第２の設定工程と、
前記制御手段により、前記モデルデータと前記第２の設定工程によって設定された算出値とをシミュレータに与えて、前記対象回路のリーク電流を取得して、前記記憶手段に記憶する第２の取得工程と、
前記制御手段により、前記第２の取得工程によって取得された対象回路のリーク電流に基づいて、前記対象回路のリーク電流に関する歩留分布を表わす見積歩留分布を算出して、前記記憶手段に記憶する第３の算出工程と、
前記制御手段により、前記第３の算出工程によって算出された見積歩留分布を出力する出力工程と、
を実行させることを特徴とする設計支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示技術は、半導体集積回路の設計を支援する設計支援プログラム、設計支援装置、および設計支援方法に関する。
【背景技術】
【０００２】
電子回路で本来流れるはずのないところで流れ出る電流をリーク電流という。リーク電流は、回路の消費電力・発熱を増大させ、回路の性能を低下させる原因となる。そのため、回路設計時にリーク電流を正確に見積もり、その対策を行なうことが重要となる。
【０００３】
近年、プロセスの微細化により、回路のリーク電流に対してもプロセスに起因するバラツキの影響が増大している。そのため、バラツキを考慮して、より正確にリーク電流を見積もる統計的リーク解析の手法が知られている。
【０００４】
一般に、統計的リーク解析では、回路内の各セルのリーク電流のバラツキモデルを作成する。バラツキモデルは、たとえば、バラツキ要因となるゲート長、ゲート幅、Ｖｔｈ（ｔｈｒｅｓｈｏｌｄ  ｖｏｌｔａｇｅ）などをパラメータとする近似式によって表現できる。また、回路のリーク電流は、各セルのバラツキモデルの総和としてモデル化できる。
【０００５】
そして、ＳＰＩＣＥ（Ｓｉｍｕｌａｔｉｏｎ  Ｐｒｏｇｒａｍ  ｗｉｔｈ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｅｍｐｈａｓｉｓ）などの汎用の回路解析プログラムを用いて、モデル化された回路のリーク電流を解析する。これにより、回路のリーク電流の歩留分布を計算することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１９５２４号公報
【特許文献２】特開２００３−２３０７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、統計的リーク解析では、プロセスに起因する全バラツキ要因を考慮したバラツキモデルを作成することは困難であり、ＳＰＩＣＥモデルなどにも誤差が含まれる。したがって、従来の統計的リーク解析では、計算されたリーク電流の歩留分布と、実際に測定されたリーク電流の歩留分布との間で誤差が生じてしまう。この結果、回路設計の手戻りが生じ、設計者の作業負担が増大するとともに、設計期間の長期化を招くという問題があった。
【０００８】
本開示技術は、上述した従来技術による問題点を解消するため、回路のリーク電流に関する歩留分布を正確に見積もることができる設計支援プログラム、設計支援装置、および設計支援方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、本開示技術は、対象回路のリーク電流に関する実測された歩留分布を表わす実測歩留分布と、前記対象回路内のセルごとのリーク電流に関するモデルデータとの入力を受け付け、前記セルのリーク電流のバラツキ成分を表わす正規分布に初期値を設定し、入力されたモデルデータと前記初期値とをシミュレータに与えて、前記対象回路のリーク電流を取得し、取得された対象回路のリーク電流に基づいて、前記対象回路のリーク電流に関する歩留分布を表わす見積歩留分布を算出し、入力された実測歩留分布と、算出された見積歩留分布との誤差を最小化する前記正規分布の値を算出し、前記正規分布に算出された値（以下、「算出値」という）を設定し、入力されたモデルデータと前記算出値とをシミュレータに与えて、前記対象回路のリーク電流を取得し、取得された対象回路のリーク電流に基づいて、前記対象回路のリーク電流に関する歩留分布を表わす見積歩留分布を算出し、算出された見積歩留分布を出力することを特徴とする。
【発明の効果】
【００１０】
本設計支援プログラム、設計支援装置、および設計支援方法によれば、回路のリーク電流に関する歩留分布を正確に見積もることができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかる設計支援手法の説明図である。
【図２】設計支援装置のハードウェア構成を示すブロック図である。
【図３】モデルデータテーブルの記憶内容の一例を示す説明図である。
【図４】実測データテーブルの記憶内容の一例を示す説明図である。
【図５】設計支援装置の機能的構成を示すブロック図である。
【図６】見積データテーブルの記憶内容の一例を示す説明図である。
【図７】Ｎｅｌｄｅｒ−Ｍｅａｄ法の概要を示す説明図である。
【図８】設計支援装置の設計支援処理手順の一例を示すフローチャートである。
【図９】見積リーク歩留分布算出処理の具体的処理手順の一例を示すフローチャートである。
【図１０】Ｎｅｌｄｅｒ−Ｍｅａｄ法を用いた平均、標準偏差算出処理手順の一例を示すフローチャートである。
【図１１】勾配法を用いた平均、標準偏差算出処理手順の一例を示すフローチャートである。
【図１２】ｔの探索条件を示す説明図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、この発明にかかる設計支援プログラム、設計支援装置、および設計支援方法の好適な実施の形態を詳細に説明する。
【００１３】
（実施の形態１）
まず、実施の形態１にかかる設計支援手法について説明する。図１は、実施の形態１にかかる設計支援手法の説明図である。本設計支援手法では、設計対象回路のリーク電流に関する歩留分布の見積もり精度を向上させる手法を提案する。ここで、リーク電流に関する歩留分布とは、回路のリーク電流がｘ以下となる確率ｙを表わす確率密度分布である。
【００１４】
統計的リーク解析において、設計対象回路のリーク電流の歩留分布を見積もる場合、回路内の各セルのリーク電流の総和を回路全体のリーク電流としてシミュレータに与えて、リーク電流の歩留分布を計算する。なお、以下の説明では、計算された設計対象回路のリーク電流の歩留分布を「見積リーク歩留分布」という。
【００１５】
ここで、セルのリーク電流は、たとえば、下記式（１）を用いて表現できる。ただし、Ｅiは設計対象回路内のセルＣ１〜Ｃｎのうち任意のセルＣｉのリーク電流である（ｉ＝１〜ｎ）。また、αi、βはセルＣｉのバラツキパラメータであり、ａ、ｂ、ｃ、ｐ、ｑ、ｒはセルＣｉ固有の係数である。
【００１６】
Ｅi＝ｅｘｐ（ａ＋ｂ×αi＋ｃ×β＋ｐ×αi2＋ｑ×αi×β＋ｒ×β2）…（１）
【００１７】
上記式（１）では、プロセスに起因する様々なバラツキ要因（たとえば、ゲート長、ゲート幅、Ｖｔｈなど）を２つのバラツキパラメータαi、βによって表わしている。具体的には、バラツキパラメータαiは、セルＣｉ固有のバラツキを表わす変数である。バラツキパラメータβは、全セルＣ１〜Ｃｎ共通のバラツキを表わす変数である。
【００１８】
ここでは、バラツキパラメータαiを「平均：μα、標準偏差：σα」の標準正規分布と仮定する。また、バラツキパラメータβを「平均：μβ、標準偏差：σβ」の標準正規分布と仮定する。これにより、設計対象回路の見積リーク歩留分布は、下記式（２）を用いて表わすことができる。ただし、ｘはリーク電流であり、ｙは設計対象回路のリーク電流がｘ以下となる確率である。
【００１９】
ｙ＝Ｆ（ｘ；μα、σα、μβ、σβ）      ・・・（２）
【００２０】
統計的リーク解析において、見積リーク歩留分布と実測された歩留分布（以下、「実測リーク歩留分布」という）との間で誤差が生じた場合、その誤差を修正する必要がある。見積リーク歩留分布と実測リーク歩留分布との誤差を最小化するには、上記式（１）に含まれる係数ａ、ｂ、ｃ、ｐ、ｑ、ｒを修正することが考えられる。しかしながら、回路内の数百万〜数千万個の各セルについて上記係数群の修正を行なうには、膨大な時間と労力が必要となる。
【００２１】
そこで、本設計支援手法では、２つのバラツキパラメータαi、βに着目して、見積リーク歩留分布と実測リーク歩留分布との誤差を最小化するバラツキパラメータαi、βの平均、標準偏差を探索する。そして、本設計支援手法では、探索されたバラツキパラメータαi、βの平均、標準偏差を用いて、設計対象回路の見積リーク歩留分布を再計算する。
【００２２】
図１において、グラフ１１０は、設計対象回路の見積リーク歩留分布である。また、グラフ１２０は、リーク電流ｘ１，ｘ２，ｘ３に対する実測された歩留まりｙ１，ｙ２，ｙ３を表わす実測リーク歩留分布である。ここで、見積リーク歩留分布と実測リーク歩留分布との二乗誤差を表わす二乗誤差関数Ｇ（ｍα、ｓα、ｍβ、ｓβ）は、たとえば、下記式（３）となる。
【００２３】
Ｇ（ｍα、ｓα、ｍβ、ｓβ）
＝（Ｆ（ｘ１；μα、σα、μβ、σβ）−ｙ１）2＋（Ｆ（ｘ２；μα、σα、μβ、σβ）−ｙ２）2＋（Ｆ（ｘ３；μα、σα、μβ、σβ）−ｙ３）2  …（３）
【００２４】
本設計支援手法では、たとえば、最小二乗法により、上記式（３）の二乗誤差関数Ｇ（μα、σα、μβ、σβ）を最小化する｛μα、σα、μβ、σβ｝を探索する。そして、探索された｛μα、σα、μβ、σβ｝を用いて各セルのリーク電流を表現し、それらの総和を回路全体のリーク電流として見積リーク歩留分布を再計算する。
【００２５】
以上説明したように、実施の形態１にかかる設計支援手法によれば、設計対象回路のリーク電流の見積もり精度を向上させることができる。さらに、上記係数群を修正する場合に比べて作業時間および作業負担を軽減させて設計期間の短縮化を図ることができる。また、バラツキ要因を表わすバラツキパラメータαi、βを修正対象とすることにより、設計対象回路が変わってもプロセスが大きく変わらなければ同程度の効果を得ることができる。
【００２６】
（実施の形態２）
つぎに、実施の形態２にかかる設計支援装置２００について説明する。なお、実施の形態１で説明した箇所と同一箇所については説明を省略する。図２は、設計支援装置のハードウェア構成を示すブロック図である。図２において、設計支援装置２００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、磁気ディスクドライブ２０４と、磁気ディスク２０５と、光ディスクドライブ２０６と、光ディスク２０７と、ディスプレイ２０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０９と、キーボード２１０と、マウス２１１と、スキャナ２１２と、プリンタ２１３と、を備えている。また、各構成部はバス２２０によってそれぞれ接続されている。
【００２７】
ここで、ＣＰＵ２０１は、設計支援装置２００の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。磁気ディスクドライブ２０４は、ＣＰＵ２０１の制御にしたがって磁気ディスク２０５に対するデータのリード／ライトを制御する。磁気ディスク２０５は、磁気ディスクドライブ２０４の制御で書き込まれたデータを記憶する。
【００２８】
光ディスクドライブ２０６は、ＣＰＵ２０１の制御にしたがって光ディスク２０７に対するデータのリード／ライトを制御する。光ディスク２０７は、光ディスクドライブ２０６の制御で書き込まれたデータを記憶したり、光ディスク２０７に記憶されたデータをコンピュータに読み取らせたりする。
【００２９】
ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ２０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００３０】
インターフェース（以下、「Ｉ／Ｆ」と略する。）２０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク２１４に接続され、このネットワーク２１４を介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワーク２１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００３１】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３２】
スキャナ２１２は、画像を光学的に読み取り、設計支援装置２００内に画像データを取り込む。なお、スキャナ２１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ２１３は、画像データや文書データを印刷する。プリンタ２１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３３】
（モデルデータテーブルの記憶内容）
つぎに、設計支援装置２００が用いるモデルデータテーブル３００の記憶内容について説明する。なお、モデルデータテーブル３００は、たとえば、図２に示したＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶されている。
【００３４】
図３は、モデルデータテーブルの記憶内容の一例を示す説明図である。図３において、モデルデータテーブル３００は、セルＩＤ、係数ａ、係数ｂ、係数ｃ、係数ｐ、係数ｑおよび係数ｒのフィールドを有する。各フィールドに情報を設定することで、セルＣｉごとのリーク電流に関するモデルデータ３００−１〜３００−ｎがレコードとして記憶されている。
【００３５】
セルＩＤは、設計対象回路に含まれるセルＣｉの識別子である。係数ａ、ｂ、ｃ、ｐ、ｑ、ｒは、セルＣｉのリーク電流を表現する上記式（１）に含まれる係数群である。ここで、セルＣｉを例に挙げると、係数群｛ａ、ｂ、ｃ、ｐ、ｑ、ｒ｝は｛ａｉ、ｂｉ、ｃｉ、ｐｉ、ｑｉ、ｒｉ｝となる。
【００３６】
（実測データテーブル）
つぎに、設計支援装置２００が用いる実測データテーブル４００の記憶内容について説明する。なお、実測データテーブル４００は、たとえば、図２に示したＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶されている。
【００３７】
図４は、実測データテーブルの記憶内容の一例を示す説明図である。図４において、実測データテーブル４００は、リーク電流および実測歩留のフィールドを有する。各フィールドに情報を設定することで、設計対象回路のリーク電流に関する実測データ４００−１〜４００−ｍがレコードとして記憶されている。
【００３８】
リーク電流は、設計対象回路のリーク電流に関する歩留分布の分割点を表わすリーク電流である。また、実測歩留は、設計対象回路のリーク電流に関する実測された歩留まりである。ここで、実測データ４００−ｊを例に挙げると、設計対象回路のリーク電流がｘ（ｊ）以下となる確率はｙ（ｊ）である。
【００３９】
（設計支援装置の機能的構成）
つぎに、設計支援装置２００の機能的構成について説明する。図５は、設計支援装置の機能的構成を示すブロック図である。図５において、設計支援装置２００は、入力部５０１と、設定部５０２と、取得部５０３と、第１の算出部５０４と、第２の算出部５０５と、出力部５０６と、を含む構成である。この制御部となる機能（入力部５０１〜出力部５０６）は、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、Ｉ／Ｆ２０９により、その機能を実現する。
【００４０】
入力部５０１は、設計対象回路の実測リーク歩留分布の入力を受け付ける機能を有する。ここで、実測リーク歩留分布とは、設計対象回路のリーク電流に関する実測された歩留分布を表わす確率密度分布である。実測リーク歩留分布は、たとえば、図４に示した離散化された実測データ４００−１〜４００−ｍである。
【００４１】
以下の説明では、リーク電流ｘｊに対する実測された歩留分布を表わす実測リーク歩留分布を「実測リーク歩留分布ｙ（ｊ）」と表記する（ｊ＝１，２，…，ｍ）。なお、ｙ（ｊ）は、設計対象回路のリーク電流がｘｊ以下となる確率である。
【００４２】
具体的には、たとえば、入力部５０１が、図２に示したキーボード２１０やマウス２１１を用いたユーザの操作により実測データ４００−１〜４００−ｍの入力を受け付ける。また、入力部５０１が、不図示のデータベースやライブラリからの抽出により実測データ４００−１〜４００−ｍを取得してもよい。なお、入力された実測データ４００−１〜４００−ｍは、たとえば、図４に示した実測データテーブル４００に記憶される。
【００４３】
また、入力部５０１は、設計対象回路内のセルＣｉごとのリーク電流に関するモデルデータの入力を受け付ける機能を有する。ここで、セルＣｉとは、たとえば、設計対象回路に含まれるＮＯＴ回路、ＡＮＤ回路、ＮＡＮＤ回路、ＯＲ回路、ＮＯＲ回路などの素子である。また、モデルデータとは、各セルＣｉのリーク電流を特定するための情報である。モデルデータは、たとえば、図３に示したモデルデータ３００−１〜３００−ｎである。
【００４４】
具体的には、たとえば、入力部５０１が、キーボード２１０やマウス２１１を用いたユーザの操作によりモデルデータ３００−１〜３００−ｎの入力を受け付ける。また、入力部５０１が、不図示のデータベースやライブラリからの抽出によりモデルデータ３００−１〜３００−ｎを取得してもよい。なお、入力されたモデルデータ３００−１〜３００−ｎは、たとえば、図３に示したモデルデータテーブル３００に記憶される。
【００４５】
設定部５０２は、セルＣｉのリーク電流のバラツキ成分を表わす正規分布の値を設定する機能を有する。ここで、リーク電流のバラツキ成分とは、プロセスに起因するバラツキ要因（ゲート長、ゲート幅、Ｖｔｈなど）を表わすものである。バラツキ成分を表わす正規分布とは、たとえば、上記式（１）に含まれるバラツキパラメータαiやバラツキパラメータβである。
【００４６】
バラツキパラメータαiは、セルＣｉ固有のバラツキ成分を表わす正規分布である。また、バラツキパラメータβは、全セルＣ１〜Ｃｎ共通のバラツキ成分を表わす正規分布である。また、正規分布の値とは、正規分布を特徴付ける平均、標準偏差、分散などである。すなわち、バラツキ成分を表わす正規分布の値は、たとえば、セルＣｉのバラツキパラメータαi、βの平均「μα、μβ」、標準偏差「σα、σβ」である。
【００４７】
具体的には、たとえば、後述する第２の算出部５０５の実行前は、設定部５０２が、バラツキ成分を表わす正規分布に初期値を設定する。また、後述する第２の算出部５０５の実行後は、設定部５０２が、バラツキ成分を表わす正規分布に第２の算出部５０５によって算出された値（以下、「算出値」という）を設定する。設定された設定結果は、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶される。
【００４８】
なお、正規分布の初期値（たとえば、平均：０、標準偏差：１）は、たとえば、予め指定されてＲＯＭ２０２、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶されている。また、入力部５０１が、たとえば、キーボード２１０やマウス２１１を用いたユーザの操作により初期値の入力を受け付けてもよい。
【００４９】
取得部５０３は、入力されたモデルデータとセルＣｉのリーク電流のバラツキ成分を表わす正規分布の値とをシミュレータに与えて、設計対象回路のリーク電流を取得する機能を有する。具体的には、たとえば、取得部５０３が、モデルデータ３００−１〜３００−ｎとバラツキパラメータαi、βの平均「μα、μβ」、標準偏差「σα、σβ」をシミュレータに与えて、モンテカルロシミュレーションを実行する。そして、取得部５０３が、シミュレーション結果として設計対象回路のリーク電流をシミュレータから取得する。
【００５０】
ここで取得される設計対象回路のリーク電流は離散値であり、たとえば、モンテカルロシミュレーションの反復回数分のリーク電流Ｉ（ｊ）である（ｊ＝１，２，…，ｍ）。なお、取得された取得結果は、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶される。
【００５１】
シミュレータは、設計支援装置２００が備えていてもよく、また、外部のコンピュータ装置が備えていてもよい。ただし、外部のコンピュータ装置が備える場合、取得部５０３が、モデルデータとセルＣｉのリーク電流のバラツキ成分を表わす正規分布の値を外部のコンピュータ装置に送信する。そして、取得部５０３が、シミュレーション結果として設計対象回路のリーク電流を外部のコンピュータ装置から取得する。
【００５２】
第１の算出部５０４は、取得された設計対象回路のリーク電流に基づいて、設計対象回路のリーク電流に関する歩留分布を表わす見積リーク歩留分布を算出する機能を有する。具体的には、たとえば、第１の算出部５０４が、下記式（４）を用いて、リーク電流Ｉ（ｊ）に対する歩留まりＰ（ｊ）を算出する（ｊ＝１，２，…，ｍ）。ただし、ｍはモンテカルロシミュレーションの反復回数である。
【００５３】
Ｐ（ｊ）＝ｊ／ｍ      …（４）
【００５４】
なお、上記式（４）を用いて算出された見積リーク歩留分布は、離散値｛Ｐ（１），Ｐ（２），…，Ｐ（ｍ）｝となる。算出された算出結果は、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶される。
【００５５】
第２の算出部５０５は、入力された実測リーク歩留分布ｙ（ｊ）と、算出された見積リーク歩留分布との誤差を最小化する正規分布の値を算出する機能を有する。具体的には、たとえば、第２の算出部５０５が、最小二乗法により、実測リーク歩留分布ｙ（ｊ）と見積リーク歩留分布との二乗誤差を表わす関数を最小化するバラツキパラメータαi、βの平均「μα、μβ」、標準偏差「σα、σβ」を算出する。なお、以下の説明では、実測リーク歩留分布ｙ（ｊ）と見積リーク歩留分布との二乗誤差関数を「Ｇ（μα、σα、μβ、σβ）」と表記する。
【００５６】
より具体的には、たとえば、第２の算出部５０５が、Ｎｅｌｄｅｒ−Ｍｅａｄ法を用いた最小二乗法により、二乗誤差関数Ｇ（μα、σα、μβ、σβ）を最小化する｛μα、σα、μβ、σβ｝を算出する。また、第２の算出部５０５が、勾配法を用いた最小二乗法により、二乗誤差関数Ｇ（μα、σα、μβ、σβ）を最小化する｛μα、σα、μβ、σβ｝を算出してもよい。なお、第２の算出部５０５の具体的な処理内容については後述する。
【００５７】
出力部５０６は、算出された設計対象回路の見積リーク歩留分布を出力する機能を有する。具体的には、たとえば、出力部５０６が、モデルデータと算出値とをシミュレータに与えて取得されたリーク電流に基づく設計対象回路の見積リーク歩留分布（図６参照）を出力する。
【００５８】
図６は、見積データテーブルの記憶内容の一例を示す説明図である。図６において、見積データテーブル６００は、リーク電流および見積歩留のフィールドを有する。各フィールドに情報を設定することで、設計対象回路のリーク電流に関する見積データ６００−１〜６００−ｍがレコードとして記憶されている。
【００５９】
リーク電流は、設計対象回路のリーク電流に関する歩留分布の分割点を表わすリーク電流である。また、見積歩留は、設計対象回路のリーク電流に関する見積もられた歩留まりである。ここで、実測データ６００−ｊを例に挙げると、設計対象回路のリーク電流がＩ（ｊ）以下となる確率はＰ（ｊ）である。
【００６０】
なお、出力形式としては、たとえば、ディスプレイ２０８への表示、プリンタ２１３への印刷出力、Ｉ／Ｆ２０９による外部装置への送信がある。また、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶することとしてもよい。
【００６１】
（第２の算出部５０５の具体的処理内容（Ｎｅｌｄｅｒ−Ｍｅａｄ法））
つぎに、第２の算出部５０５の具体的処理内容の一例について説明する。ここでは、まず、Ｎｅｌｄｅｒ−Ｍｅａｄ法を用いた最小二乗法により、二乗誤差関数Ｇ（μα、σα、μβ、σβ）を最小化するバラツキパラメータαi、βの平均、標準偏差を算出する手法について説明する。
【００６２】
以下の説明では、設計対象回路の見積リーク歩留分布を「見積リーク歩留分布Ｆ（ｘ（ｊ）；μα、σα、μβ、σβ）」と表記する（ｊ＝１，２，…，ｍ）。この場合、二乗誤差関数Ｇ（μα、σα、μβ、σβ）は下記式（５）を用いて表わすことができる。なお、ｙ（ｊ）は設計対象回路の実測リーク歩留分布である。
【００６３】
【数１】
2010267210.tif 000003
【００６４】
第２の算出部５０５は、Ｎｅｌｄｅｒ−Ｍｅａｄ法を用いた最小二乗法により、上記式（５）のＧ（μα、σα、μβ、σβ）を最小化する｛μα、σα、μβ、σβ｝を算出する。見積リーク歩留分布Ｆ（ｘ（ｊ）；μα、σα、μβ、σβ）をモンテカルロシミュレーションなどの直接シミュレーションで計算する場合、その出力結果は離散値となる。そのため、二乗誤差関数Ｇ（μα、σα、μβ、σβ）の微分係数が計算できない。
【００６５】
そこで、Ｎｅｌｄｅｒ−Ｍｅａｄ法では、二乗誤差関数Ｇ（μα、σα、μβ、σβ）の微分係数を計算することなく、二乗誤差関数Ｇ（μα、σα、μβ、σβ）を最小化する｛μα、σα、μβ、σβ｝を探索する。なお、ここでは、バラツキパラメータαi、βの平均、標準偏差｛μα、σα、μβ、σβ｝を下記式（６）〜（８）のようにベクトル化して表記する。
【００６６】
ｐ＝（ｐx、ｐy、ｐz、ｐt）＝（μα、σα、μβ、σβ）  …（６）
【００６７】
Ｇ（ｐ）＝Ｇ（μα、σα、μβ、σβ）    …（７）
【００６８】
Ｆ（ｘ（ｊ）；ｐ）＝Ｆ（ｘ（ｊ）；μα、σα、μβ、σβ）  …（８）
【００６９】
以下、Ｎｅｌｄｅｒ−Ｍｅａｄ法の概要について説明する。Ｎｅｌｄｅｒ−Ｍｅａｄ法では、リフレクション（鏡映）と、シュリンク（縮小）という２つの操作を繰り返して、評価関数Ｇの最小点を囲む単体（三角形）を探索する。ここでは、２次元の引数の評価関数Ｇを最小化する場合を例に挙げて説明する。なお、評価関数Ｇは二乗誤差関数Ｇ（ｐ）である。
【００７０】
図７は、Ｎｅｌｄｅｒ−Ｍｅａｄ法の概要を示す説明図である。図７において、Ｘ軸とＹ軸とからなる２次元平面上に３個の点ｐ0、ｐ1、ｐ2が設定されている。ここでは点ｐ0、ｐ1、ｐ2の座標値を評価関数Ｇにそれぞれ与えた場合、下記式（９）の関係が成立すると仮定する。
【００７１】
Ｇ（ｐ0）≦Ｇ（ｐ1）≦Ｇ（ｐ2）      …（９）
【００７２】
Ｎｅｌｄｅｒ−Ｍｅａｄ法では、３個の点ｐ0、ｐ1、ｐ2の中で関数値｛Ｇ（ｐ0）、Ｇ（ｐ1）、Ｇ（ｐ2）｝が最大となる点ｐ2を、残りの点ｐ0、ｐ1が定める超平面の逆側に単体（三角形）の面積を維持したまま移動させる。ここでは、点ｐ2を点ｐrに移動させる。
【００７３】
そして、点ｐrの座標値を評価関数Ｇに与えてＧ（ｐr）を求めて、Ｇ（ｐr）とＧ（ｐ2）の大小関係を判断する。ここで、Ｇ（Ｐr）がＧ（Ｐ2）よりも小さい場合、リフレクションの操作を行なう。具体的には、点Ｐ2を点Ｐrに移動させて、単体７０１を単体７０２に移動させる。Ｎｅｌｄｅｒ−Ｍｅａｄ法では、リフレクションの操作により、単体が評価関数Ｇの最小点に近づいたとみなす。
【００７４】
一方、Ｇ（ｐr）がＧ（ｐ2）よりも大きい場合は、シュリンクの操作を行なう。すなわち、単体７０１を単体７０２に移動させても、評価関数Ｇの最小点が単体７０２の中に存在しないと判断してリフレクションの操作を行なわない。
【００７５】
この場合、単体７０１の中で評価関数Ｇの最小点を探索する。具体的には、関数値が最小となる点ｐ0を中心に単体７０１を縮小する。ここでは、単体７０１が３個の点ｐ0、ｐ1s、ｐ2sからなる単体７０３に縮小されている。Ｎｅｌｄｅｒ−Ｍｅａｄ法では、シュリンクの操作により、評価関数Ｇの最小点が存在する領域を絞り込めたとみなす。
【００７６】
このように、Ｎｅｌｄｅｒ−Ｍｅａｄ法によれば、リフレクションとシュリンクの操作を繰り返すことにより、評価関数Ｇの最小点を探索することができる。なお、リフレクションおよびシュリンクの操作は、たとえば、所定回数（たとえば、１０万回）、または、単体が収束するまで繰り返し行なう。
【００７７】
（★）ここで、評価関数Ｇ（ｐ）の計算手法について説明する。評価関数Ｇ（ｐ）は、上記式（５）、（７）および（８）により下記式（１０）を用いて表わすことができる。
【００７８】
【数２】
2010267210.tif 000004
【００７９】
評価関数Ｇ（ｐ）を求める場合、まず、Ｆ（ｘ（ｊ）；ｐ）を算出する。具体的には、たとえば、第２の算出部５０５が、モデルデータ３００−１〜３００−ｎとバラツキパラメータαi、βの平均、標準偏差をシミュレータに与えて、モンテカルロシミュレーションを実行する。これにより、たとえば、リーク電流｛Ｉ1，Ｉ2，…，Ｉm｝に対する歩留まり｛Ｐ1，Ｐ2，…，Ｐm｝を求めることができる。そして、以下の（条件１）〜（条件３）にしたがって、Ｆ（ｘ（ｊ）；ｐ）を算出する。
【００８０】
（条件１）「ｘ（ｊ）＜Ｉ1」の場合
Ｆ（ｘ（ｊ）；ｐ）＝０
【００８１】
（条件２）「Ｉ1＜ｘ（ｊ）＜Ｉm」の場合
「Ｉk≦ｘ（ｊ）＜Ｉk+1」となるｋを用いて
Ｆ（ｘ（ｊ）；ｐ）
＝（Ｐk+1−Ｐk）×（ｘ（ｊ）―Ｉk）／（Ｉk+1−Ｉk）＋Ｐk
【００８２】
（条件３）「Ｉm≦ｘ（ｊ）」の場合
Ｆ（ｘ（ｊ）；ｐ）＝１
【００８３】
このあと、算出されたＦ（ｘ（ｊ）；ｐ）と、実測リーク歩留分布ｙ（ｊ）とを上記式（１０）に代入することにより、評価関数Ｇ（ｐ）を求めることができる。
【００８４】
本実施の形態２では、上述したＮｅｌｄｅｒ−Ｍｅａｄ法を用いた最小二乗法を、４次元の引数｛μα、σα、μβ、σβ｝の評価関数Ｇ（ｐ）に適用することになる。なお、Ｎｅｌｄｅｒ−Ｍｅａｄ法を用いた平均、標準偏差算出処理手順についての詳細な説明は、図１０に示すフローチャートを用いて説明する。
【００８５】
（第２の算出部５０５の具体的処理内容（勾配法））
つぎに、勾配法を用いた最小二乗法により、二乗誤差関数Ｇ（μα、σα、μβ、σβ）を最小化するバラツキパラメータαi、βの平均、標準偏差を算出する手法について説明する。勾配法は、評価関数Ｇの微分∇Ｇが計算可能なときに『∇Ｇ（ｘ0）＝０』となる停留点ｘ0を評価関数Ｇの最小点として探索する手法である。
【００８６】
そこで、設計対象回路の見積リーク歩留分布Ｆ（ｘ（ｊ）；μα、σα、μβ、σβ）を既存分布でモデル化する。これにより、評価関数Ｇ（μα、σα、μβ、σβ）の微分が計算可能となり、Ｇ（μα、σα、μβ、σβ）を最小化する｛μα、σα、μβ、σβ｝を探索することができる。
【００８７】
ここで、評価関数Ｇ（μα、σα、μβ、σβ）の微分は下記式（１１）を用いて表わすことができる。また、見積リーク歩留分布Ｆ（ｘ（ｊ）；μα、σα、μβ、σβ）の微分は下記式（１２）を用いて表わすことができる。
【００８８】
【数３】
2010267210.tif 000005
【００８９】
∇Ｆ＝（∂Ｆ／μα，∂Ｆ／σα，∂Ｆ／μβ，∂Ｆ／σβ）    …（１２）
【００９０】
また、見積リーク歩留分布Ｆ（ｘ（ｊ）；μα、σα、μβ、σβ）を正規分布でモデル化し、下記式（１３）を用いてセルＣｉのリーク電流を表現する。なお、下記式（１３）は上記式（１）を簡略化した多項式である。また、ＭおよびＳ2を下記式（１４）および（１５）を用いて定義する。
【００９１】
Ｅi＝ｅｘｐ（ａ＋ｂ×αi＋ｃ×β）    …（１３）
【００９２】
Ｍ＝Σjｅｘｐ｛ａｊ＋ｂｊ×μα＋ｃｊ×μβ＋（ｂｊ×σα）2／２＋（ｃｊ×
σβ）2／２｝    …（１４）
【００９３】
Ｓ2＝Σjｅｘｐ｛２ａｊ＋２ｂｊ×μα＋２ｃｊ×μβ＋２（ｂｊ×σα）2＋２
（ｃｊ×σβ）2｝＋Σj,iｅｘｐ｛ａｊ＋ａｉ＋（ｂｊ＋ｂｉ）×μα＋（ｃｊ＋ｃｉ
）×μβ＋｛（ｂｊ×σα）2＋（ｂｉ×σα）2＋（ｃｊ×σβ＋ｃｉ×σβ）2｝／２｝
…（１５）
【００９４】
これにより、見積リーク歩留分布Ｆ（ｘ（ｊ）；μα、σα、μβ、σβ）は、上記式（１４）および（１５）に示すＭ，Ｓを用いて、ｘ（ｊ）の分数多項式により下記式（１６）のように近似計算することができる。
【００９５】
【数４】
2010267210.tif 000006
【００９６】
そして、上記式（１６）に示すＦ（ｘ（ｊ）；μα、σα、μβ、σβ）を｛μα、σα、μβ、σβ｝それぞれについて微分することにより、下記式（１７）〜（２０）を計算することができる。なお、∂Ｍ／μα，∂Ｍ／μβ，∂Ｓ／σα，∂Ｓ／σβは、上記式（１４）および（１５）を直接微分することで求めることができる。
【００９７】
【数５】
2010267210.tif 000007
【００９８】
【数６】
2010267210.tif 000008
【００９９】
【数７】
2010267210.tif 000009
【０１００】
【数８】
2010267210.tif 000010
【０１０１】
勾配法を用いた最小二乗法によれば、評価関数Ｇ（μα、σα、μβ、σβ）の値が減少する方向へ探索を進めることができる。このため、Ｎｅｌｄｅｒ−Ｍｅａｄ法を用いた場合に比べて少ない反復回数で収束でき処理時間の短縮化を図ることができる。なお、勾配法を用いた平均、標準偏差算出処理手順についての詳細な説明は、図１１に示すフローチャートを用いて説明する。
【０１０２】
（設計支援装置の設計支援処理手順）
つぎに、設計支援装置２００の設計支援処理手順について説明する。図８は、設計支援装置の設計支援処理手順の一例を示すフローチャートである。図８のフローチャートにおいて、まず、入力部５０１により、実測データ４００−１〜４００−ｍとモデルデータ３００−１〜３００−ｎの入力を受け付けたか否かを判断する（ステップＳ８０１）。
【０１０３】
ここで、入力部５０１により、実測データ４００−１〜４００−ｍとモデルデータ３００−１〜３００−ｎが入力されるのを待つ（ステップＳ８０１：Ｎｏ）。つぎに、入力された場合（ステップＳ８０１：Ｙｅｓ）、第１の算出部５０４により、見積リーク歩留分布算出処理を実行する（ステップＳ８０２）。そして、第２の算出部５０５により、平均、標準偏差算出処理を実行する（ステップＳ８０３）。
【０１０４】
このあと、第１の算出部５０４により、見積リーク歩留分布算出処理を実行する（ステップＳ８０４）。そして、出力部５０６により、ステップＳ８０４において算出された見積リーク歩留分布を出力して（ステップＳ８０５）、本フローチャートによる一連の処理を終了する。
【０１０５】
（見積リーク歩留分布算出処理）
つぎに、図８に示したステップＳ８０２またはステップＳ８０４の見積リーク歩留分布算出処理の具体的処理手順について説明する。図９は、見積リーク歩留分布算出処理の具体的処理手順の一例を示すフローチャートである。
【０１０６】
図９のフローチャートにおいて、まず、設定部５０２により、バラツキパラメータαi、βの平均「μα、μβ」、標準偏差「σα、σβ」に、初期値または算出値を設定する（ステップＳ９０１）。なお、算出値は、図８に示したステップＳ８０３において算出されたバラツキパラメータαi、βの平均、標準偏差の値である。
【０１０７】
具体的には、図８に示したステップＳ８０３の平均、標準偏差算出処理の実行前（ステップＳ８０２の見積リーク歩留分布算出処理）は、設定部５０２により初期値が設定される。一方、図８に示したステップＳ８０３の平均、標準偏差算出処理の実行後（ステップＳ８０４の見積リーク歩留分布算出処理）は、設定部５０２により算出値が設定される。
【０１０８】
このあと、取得部５０３により、標準正規乱数βを生成して（ステップＳ９０２）、ステップＳ９０１において設定された初期値または算出値を下記式（２１）に代入することで、バラツキパラメータβ（ｊ）を算出する（ステップＳ９０３）。
【０１０９】
β（ｊ）＝σβ×β＋μβ      …（２１）
【０１１０】
つぎに、取得部５０３により、設計対象回路のリーク電流Ｉ（ｊ）を「Ｉ（ｊ）＝０」で初期化して（ステップＳ９０４）、「ｊ＝１」とする（ステップＳ９０５）。このあと、取得部５０３により、「ｉ＝１」として（ステップＳ９０６）、標準正規乱数αを生成する（ステップＳ９０７）。そして、取得部５０３により、ステップＳ９０１において設定された初期値または算出値を下記式（２２）に代入することで、バラツキパラメータα（ｊ）を算出する（ステップＳ９０８）。
【０１１１】
α（ｊ）＝σα×α＋μα      …（２２）
【０１１２】
このあと、取得部５０３により、図８に示したステップＳ８０１において入力されたモデルデータ３００−ｉとバラツキパラメータα（ｊ）、β（ｊ）を下記式（２３）に代入することで、設計対象回路のリーク電流Ｉ（ｊ）を算出する（ステップＳ９０９）。
【０１１３】
Ｉ（ｊ）＝Ｉ（ｊ）＋ｅｘｐ（ａｉ＋ｂｉ×α（ｊ）＋ｃｉ×β（ｊ）＋ｐｉ×α（ｊ）2＋ｑｉ×α（ｊ）×β（ｊ）＋ｒｉ×β（ｊ）2）      …（２３）
【０１１４】
つぎに、取得部５０３により、ｉをインクリメントして（ステップＳ９１０）、「ｉ＞ｎ」か否かを判断する（ステップＳ９１１）。ここで、「ｉ≦ｎ」の場合（ステップＳ９１１：Ｎｏ）、ステップＳ９０７に戻る。一方、「ｉ＞ｎ」の場合（ステップＳ９１１：Ｙｅｓ）、取得部５０３により、ｊをインクリメントする（ステップＳ９１２）。
【０１１５】
そして、取得部５０３により、「ｊ＞ｍ」か否かを判断する（ステップＳ９１３）。ここで、「ｊ≦ｍ」の場合（ステップＳ９１３：Ｎｏ）、ステップＳ９０６に戻る。一方、「ｊ＞ｍ」の場合（ステップＳ９１３：Ｙｅｓ）、取得部５０３により、ステップＳ９０９において算出されたリーク電流Ｉ（ｊ）を昇順にソートする（ステップＳ９１４）。
【０１１６】
このあと、第１の算出部５０４により、ソートされたリーク電流Ｉ（ｊ）を下記式（２４）に代入することで、設計対象回路の見積リーク歩留分布Ｆ（ｊ）を算出して（ステップＳ９１５）、図８に示したステップＳ８０３またはステップＳ８０５に移行する。
【０１１７】
Ｆ（ｊ）＝ｊ／ｍ      （ｊ＝１，２，…，ｍ）      …（２４）
【０１１８】
これにより、各セルＣｉ固有のバラツキ成分と全セルＣ１〜Ｃｎ共通のバラツキ成分とを考慮して設計対象回路のリーク電流Ｉ（ｊ）を見積もることができる。この結果、設計対象回路のリーク電流Ｉ（ｊ）に関する見積リーク歩留分布Ｆ（ｊ）を正確に見積もることができる。
【０１１９】
（平均、標準偏差算出処理）
＜Ｎｅｌｄｅｒ−Ｍｅａｄ法を用いた最小二乗法＞
つぎに、図８に示したステップＳ８０３の平均、標準偏差算出処理の具体的処理手順について説明する。ここでは、まず、Ｎｅｌｄｅｒ−Ｍｅａｄ法を用いた最小二乗法により、二乗誤差関数Ｇ（μα、σα、μβ、σβ）を最小化する｛μα、σα、μβ、σβ｝を算出する場合について説明する。
【０１２０】
図１０は、Ｎｅｌｄｅｒ−Ｍｅａｄ法を用いた平均、標準偏差算出処理手順の一例を示すフローチャートである。図１０のフローチャートにおいて、まず、第２の算出部５０５により、４次元空間上の任意の５点ｐ0，ｐ1，ｐ2，ｐ3，ｐ4を初期値として設定する（ステップＳ１００１）。すなわち、第２の算出部５０５により、４次元空間において単体を形成するために最低限必要となる５点を設定する。
【０１２１】
このあと、第２の算出部５０５により、各点ｐ0，ｐ1，ｐ2，ｐ3，ｐ4の座標値を評価関数Ｇ（ｐ）に与えて、関数値｛Ｇ（ｐ0），Ｇ（ｐ1），Ｇ（ｐ2），Ｇ（ｐ3）、Ｇ（ｐ4）｝を算出する（ステップＳ１００２）。なお、Ｇ（ｐ）の計算手法については、上述した（★）を参照。
【０１２２】
そして、第２の算出部５０５により、関数値｛Ｇ（ｐ0），Ｇ（ｐ1），Ｇ（ｐ2），Ｇ（ｐ3）、Ｇ（ｐ4）｝が昇順となるように５点ｐ0，ｐ1，ｐ2，ｐ3，ｐ4をソートする（ステップＳ１００３）。つぎに、第２の算出部５０５により、「ｐｒ＝（ｐ0＋ｐ1＋ｐ2＋ｐ3）／２−ｐ4」として（ステップＳ１００４）、関数値Ｇ（ｐｒ）を算出する（ステップＳ１００５）。
【０１２３】
このあと、第２の算出部５０５により、「Ｇ（ｐｒ）＜Ｇ（ｐ4）」か否かを判断する（ステップＳ１００６）。ここで、「Ｇ（ｐｒ）＜Ｇ（ｐ4）」の場合（ステップＳ１００６：Ｙｅｓ）、「ｐ4＝ｐｒ」とする（ステップＳ１００７）。一方、「Ｇ（ｐｒ）≧Ｇ（ｐ4）」の場合（ステップＳ１００６：Ｎｏ）、「ｐk,s＝（ｐ0＋ｐk）／２」として（ステップＳ１００８）、「ｐk＝ｐk,s」とする（ステップＳ１００９）。ただし、ｋは「ｋ＝１，２，３，４」とする。
【０１２４】
つぎに、第２の算出部５０５により、単体が収束したか否かを判断して（ステップＳ１０１０）、収束していない場合（ステップＳ１０１０：Ｎｏ）、ステップＳ１００２に戻る。一方、収束した場合（ステップＳ１０１０：Ｙｅｓ）、関数値Ｇ（ｐk）が最小となるｐkに対して、「μα＝ｐkx、σα＝ｐky、μβ＝ｐkz、σβ＝ｐkt」として（ステップＳ１０１１）、図８に示したステップＳ８０４に移行する。
【０１２５】
なお、単体が収束したか否かの判断は、たとえば、各点間の距離の総和が所定値以下の場合は５点ｐ0，ｐ1，ｐ2，ｐ3，ｐ4が互いに十分近いとして単体が収束したと判断してもよい。また、ステップＳ１００７およびステップＳ１００９の処理の実行回数が所定回数（たとえば、１０万回）以上となった場合に単体が収束したと判断してもよい。
【０１２６】
これにより、実測リーク歩留分布ｙ（ｊ）と見積リーク歩留分布Ｆ（ｊ）との二乗誤差を表わす二乗誤差関数の微分係数を計算することなく、二乗誤差関数を最小化するバラツキパラメータαi、βの平均、標準偏差を算出することができる。
【０１２７】
＜勾配法を用いた最小二乗法＞
つぎに、勾配法を用いた最小二乗法により、二乗誤差関数Ｇ（μα、σα、μβ、σβ）を最小化する｛μα、σα、μβ、σβ｝を算出する場合について説明する。図１１は、勾配法を用いた平均、標準偏差算出処理手順の一例を示すフローチャートである。図１１のフローチャートにおいて、まず、第２の算出部５０５により、任意の初期値ｘ0を設定する（ステップＳ１１０１）。
【０１２８】
このあと、第２の算出部５０５により、「ｋ＝０」として（ステップＳ１１０２）、「ｄk＝−∇Ｇ（ｘk）」を算出する（ステップＳ１１０３）。そして、第２の算出部５０５により、「ｄk＝０」か否かを判断する（ステップＳ１１０４）。
【０１２９】
ここで、「ｄk≠０」の場合（ステップＳ１１０４：Ｎｏ）、第２の算出部５０５により、下記式（２５）および（２６）を満たすｔを探索する（ステップＳ１１０５）。ただし、ｔは「ｔ＞０」であり、λ、νは「０＜λ＜０．５、λ＜ν＜１」の固定値である。
【０１３０】
Ｇ（ｘk＋ｔｄk）≦Ｇ（ｘk）＋λ×ｔ×∇Ｇ（ｘk）・ｄk    …（２５）
【０１３１】
∇Ｇ（ｘk＋ｔｄk）・ｄk≧ν×∇Ｇ（ｘk）・ｄk            …（２６）
【０１３２】
そして、第２の算出部５０５により、「ｘk+1＝ｘk＋ｔ×ｄk」とし（ステップＳ１１０６）、ｋをインクリメントして（ステップＳ１１０７）、ステップＳ１１０３に戻る。一方、ステップＳ１１０４において、「ｄk＝０」の場合（ステップＳ１１０４：Ｙｅｓ）、第２の算出部５０５により、ｘk＝（μα、σα、μβ、σβ）として（ステップＳ１１０８）、図８に示したステップＳ８０４に移行する。
【０１３３】
なお、上記式（２５）および（２６）のＧ（ｘk＋ｔｄk）をｇ（ｔ）とすると、ステップＳ１１０５のｔの探索条件は、下記式（２７）および（２８）となる。
【０１３４】
ｇ（ｔ）≦ｇ（０）＋λ×ｔ×ｇ’（０）    …（２７）
【０１３５】
ｇ’（ｔ）＝νｇ’（０）                  …（２８）
【０１３６】
ここで、上記式（２７）は、「Ｇ（ｘk＋ｔｄk）＜Ｇ（ｘk）」となるｔの条件である（図１２参照）。また、上記式（２８）は、Ｇ（ｘk＋ｔｄk）の値がなるべく小さく（傾きが緩やか）なるための条件である（図１２参照）。
【０１３７】
これにより、Ｎｅｌｄｅｒ−Ｍｅａｄ法を用いた場合に比べて、バラツキパラメータαi、βの平均、標準偏差を算出する際の処理時間の短縮化を図ることができる。
【０１３８】
以上説明したように、本開示技術によれば、設計対象回路の実測リーク歩留分布と見積リーク歩留分布との誤差を最小化する、セルのリーク電流のバラツキ成分を表わす正規分布の値を算出することができる。また、本開示技術によれば、算出された正規分布の値を用いて、設計対象回路の見積リーク歩留分布を計算することにより、見積精度を向上させることができる。
【０１３９】
また、本開示技術によれば、Ｎｅｌｄｅｒ−Ｍｅａｄ法を用いた最小二乗法により、実測リーク歩留分布と見積リーク歩留分布との誤差を最小化する正規分布の値を算出することができる。これにより、実測リーク歩留分布と見積リーク歩留分布との二乗誤差を表わす二乗誤差関数の微分係数を計算することなく、二乗誤差関数を最小化する正規分布の値を算出することができる。
【０１４０】
また、本開示技術によれば、勾配法を用いた最小二乗法により、実測歩留分布と見積歩留分布との誤差を最小化する正規分布の値を算出することができる。これにより、Ｎｅｌｄｅｒ−Ｍｅａｄ法を用いた場合に比べて、正規分布の値を算出する際の処理時間の短縮化を図ることができる。
【０１４１】
また、本開示技術によれば、セルのリーク電流のバラツキ成分をバラツキパラメータαiとバラツキパラメータβによって表わすことができる。これにより、各セルＣｉ固有のバラツキ成分と全セルＣ１〜Ｃｎ共通のバラツキ成分とを考慮して設計対象回路のリーク電流を見積もることができる。この結果、設計対象回路のリーク電流に関する歩留分布を正確に見積もることができる。
【０１４２】
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【０１４３】
２００  設計支援装置
５０１  入力部
５０２  設定部
５０３  取得部
５０４  第１の算出部
５０５  第２の算出部
５０６  出力部
【図１】
2010267210.tif 000011
【図２】
2010267210.tif 000012
【図３】
2010267210.tif 000013
【図４】
2010267210.tif 000014
【図５】
2010267210.tif 000015
【図６】
2010267210.tif 000016
【図７】
2010267210.tif 000017
【図８】
2010267210.tif 000018
【図９】
2010267210.tif 000019
【図１０】
2010267210.tif 000020
【図１１】
2010267210.tif 000021
【図１２】
2010267210.tif 000022