(58)【調査した分野】(Int.Cl.,DB名)
前記算出する処理は、さらに、前記複数の部分領域のそれぞれに含まれる三角形の数の上限に設定された第1の数に対する前記複数の部分領域のそれぞれに含まれる三角形の数の割合に基づいて前記複数の部分領域のそれぞれの特徴量を算出し、
前記決定する処理は、算出した前記特徴量の組み合わせと、記憶装置に記憶された基板上のエラー発生点に対応する特徴量の組み合わせとを比較した結果に基づいて、前記候補点をエラー発生点に決定することを特徴とする請求項2に記載の設計支援プログラム。
前記決定する処理は、算出した前記特徴量の組み合わせと、記憶装置に記憶された基板上の疑似エラー発生点に対応する特徴量の組み合わせとを比較した結果に基づいて、前記候補点を疑似エラー発生点に決定することを特徴とする請求項3に記載の設計支援プログラム。
前記点群は、前記各頂点と、前記各頂点から前記基板上に形成されるいずれかの配線の辺に対して垂線を引いた場合の前記辺と前記垂線との交点とを含む点群であることを特徴とする請求項6に記載の設計支援プログラム。
前記算出する処理は、さらに、前記複数の部分領域のそれぞれに含まれる三角形の数の上限に設定された第1の数に対する前記複数の部分領域のそれぞれに含まれる三角形の数の割合に基づいて前記複数の部分領域のそれぞれの特徴量を算出し、
前記決定する処理は、算出した前記特徴量の組み合わせと、記憶装置に記憶された基板上のエラー発生点に対応する特徴量の組み合わせとを比較した結果に基づいて、前記候補点をエラー発生点に決定することを特徴とする請求項6または7に記載の設計支援プログラム。
【発明を実施するための形態】
【0011】
以下に図面を参照して、本発明にかかる設計支援プログラム、設計支援方法、および設計支援装置の実施の形態を詳細に説明する。
【0012】
(設計支援の一例)
図1は、設計支援の一例を示す説明図である。設計支援装置100は、実施の形態にかかる設計支援プログラムを実行し、基板上の配線の設計を支援するコンピュータである。
【0013】
ここで、実際に、フォトリソグラフィ(Photolithography)を用いて基板に対して配線を形成する工程において、基板上にホットスポットが発生する場合がある。フォトリソグラフィは、基板上に感光性の物質を塗布し、配線の設計内容に従って露光することにより、配線を形成する技術である。
【0014】
ホットスポットは、光近接効果(Optical Proximity Effect)などにより発生した、配線の設計内容の通りに配線を形成することができない箇所である。ホットスポットは、例えば、ブリッジング、ネッキング、Viaのカバレッジ不足などが発生する点である。ブリッジングは、設計内容よりも、配線の幅が広くなり、隣り合う配線が近づいたり、接触することである。ネッキングは、設計内容よりも、配線の幅が狭くなることである。Viaのカバレッジ不足は、Viaと接続される配線の面積が少なくなることである。
【0015】
このため、OPCと、リソSim.と、パターンマッチングを用いた解析などとを繰り返して、ホットスポットの発生を抑制するように配線の設計内容を修正することがある。OPCは、ホットスポットの発生を抑制するために、配線の設計内容を修正する。リソSim.は、基板上のホットスポットの発生点の候補点を検出する。パターンマッチングを用いた解析は、過去に検出されたホットスポットの近傍の配線の形状のパターンと、リソSim.により検出した候補点の近傍の配線の形状のパターンとが一致するか否かに基づいて、ホットスポットの発生点になるか否かを判定する。
【0016】
例えば、リソSim.によってホットスポットの発生点の候補点が検出されると、パターンマッチングを用いた解析などによって実際にホットスポットの発生点になるか否かを判定し、ホットスポットの発生点がなくなるまでOPCを繰り返す。しかしながら、微細化し、複雑化した基板において、不良品の製造を防止し歩留まり率を向上させるために、厳しくホットスポットの発生点の候補点を検出するようにすると、実際にはホットスポットにならない点までも候補点として検出され、候補点が膨大になる。そして、パターンマッチングを用いた解析などによって、検出したホットスポットの発生点の候補点が、実際にホットスポットの発生点になるか否かを精度よく判定することも難しく、設計者が目視でホットスポットの発生点になるか否かを判定する場合もある。
【0017】
ドロネー図は、基板上の点群から選択された3点で形成される三角形の集合をあらわす。ドロネー図は、基板上の配線の相対的な位置関係を三角形の集合で表現して配線の相対的な位置関係を解析するための図面である。分布状況は、三角形の数、三角形の面積、三角形の周囲長などである。点群は、例えば、配線の各頂点を含む点群である。
【0018】
このため、ホットスポットの発生点の候補点が検出されたとき、実際にはホットスポットの発生点にはならない場合であってもOPCを繰り返してしまい、処理負荷が増大する。また、パターンマッチングを用いた解析などによって実際にホットスポットの発生点になるか否かを判定することができず、設計者が目視によってホットスポットの発生点になるか否かを判定することになると、設計者の作業量が増大する。
【0019】
そこで、実施の形態にかかる設計支援装置100は、基板上に形成される配線の各頂点を含む点群に、さらに補助点を追加することにより、ドロネー図を作成し、ドロネー図に基づいてホットスポットの発生点になるか否かを判定する際の精度を向上させる。
【0020】
図1において、設計支援装置100は、例えば、設計データに基づいて、
図1(A−1)に示すように、配線L1,L2の各頂点を特定する。設計データは、基板上に形成される所定幅の配線の各頂点を示すデータを含む。各頂点は、
図1の例では、●で表現される。
【0021】
次に、設計支援装置100は、
図1(A−2)に示すように、各頂点から基板上に形成されるいずれかの配線の辺に対して垂線を引いた場合の辺と垂線との交点を、補助点として特定し、配線の各頂点を含む点群にさらに補助点を追加する。補助点は、
図1の例では、▲で表現された点である。
【0022】
ここで、設計支援装置100が、補助点を追加する前の状態で、配線L1,L2の各頂点を含む点群から選択された3点で形成される三角形の集合をあらわすドロネー図を作成する場合を想定する。この場合では、設計支援装置100は、
図1(B−1)に示すように、ドロネー図として、三角形を形成することになる。ここで、実際には2つの配線が近くに隣接していて配線の間が密であっても、配線の頂点が離れている場合、配線の相対的な位置関係を表現するための三角形が密に形成されないことがある。このとき、ドロネー図は2つの配線が近くに隣接していることをあらわすことができない場合がある。
【0023】
一方で、設計支援装置100が、補助点を追加した後の状態で、補助点を含む点群から選択された3点で形成される三角形の集合をあらわすドロネー図を作成する場合を想定する。この場合では、設計支援装置100は、
図1(B−2)に示すように、ドロネー図として、複数の三角形を形成することになる。このため、配線の相対的な位置関係を表現するための三角形が複数形成され、ドロネー図は2つの配線が近くに隣接していることを、補助点を追加する前よりも精度よくあらわすことができる。
【0024】
ところで、設計支援装置100は、設計データに基づいて、
図1(A−1)とは異なり、
図1(A−3)に示す配線L3,L4の各頂点を特定したとする。配線L3,L4は、配線L1,L2と同じように頂点が配置されているが、配線L1,L2とは異なり配線の間が疎である。
【0025】
ここで、設計支援装置100が、配線L3,L4の各頂点を含む点群から選択された3点で形成される三角形の集合をあらわすドロネー図を作成する場合を想定する。この場合では、設計支援装置100は、
図1(B−3)に示すように、ドロネー図として、
図1(B−1)と同様に、三角形を形成することになる。ここで、2つの配線が近くに隣接していないため、配線の相対的な位置関係を表現するための三角形が密に形成されない。
【0026】
すなわち、設計支援装置100は、補助点を追加しなければ、ドロネー図に基づいて、
図1(A−1)に示す配線の形状と、
図1(A−3)に示す配線の形状とで形成される三角形の密度に差が生じない場合があり、形状を区別することが困難となる場合がある。換言すれば、設計支援装置100は、補助点を追加することにより、ドロネー図に基づいて、
図1(A−1)に示す配線の形状と、
図1(A−3)に示す配線の形状との配線の相対的な位置関係の違いを精度よく表現することができる。
【0027】
同様に、設計支援装置100は、例えば、設計データに基づいて、
図1(C−1)に示すように、配線L5,L6,L7の各頂点を特定する。設計データは、基板上に形成される所定幅の配線の各頂点を示すデータを含む。
【0028】
次に、設計支援装置100は、
図1(C−2)に示すように、各頂点から基板上に形成されるいずれかの配線の辺に対して垂線を引いた場合の辺と垂線との交点を、補助点として特定し、配線の各頂点を含む点群にさらに補助点を追加する。
【0029】
ここで、設計支援装置100が、補助点を追加する前の状態で、配線L5,L6,L7の各頂点を含む点群から選択された3点で形成される三角形の集合をあらわすドロネー図を作成する場合を想定する。この場合では、設計支援装置100は、
図1(D−1)に示すように、ドロネー図として、配線L6を跨いだ2つの三角形を形成することになる。このため、実際には2つの配線L5,L7の間に配線L6があり配線の間が密であるにも関わらず、配線の相対的な位置関係を表現するための三角形が配線L6を跨いで形成されてしまい、ドロネー図は配線の間が密であることをあらわすことができない。
【0030】
一方で、設計支援装置100が、補助点を追加した後の状態で、補助点を含む点群から選択された3点で形成される三角形の集合をあらわすドロネー図を作成する場合を想定する。この場合では、設計支援装置100は、
図1(D−2)に示すように、ドロネー図として、配線L5,L6,L7のそれぞれの配線の間に複数の三角形を形成することになる。このため、配線の相対的な位置関係を表現するための三角形が配線L5,L6,L7のそれぞれの配線の間に複数形成され、ドロネー図は配線の間が密であることを、補助点を追加する前よりも精度よくあらわすことができる。
【0031】
ところで、設計支援装置100は、設計データに基づいて、
図1(C−1)とは異なり、
図1(C−3)に示す配線L8,L9の各頂点を特定したとする。配線L8,L9は、配線L5,L6,L7から、配線L6を除外したものと一致する。
【0032】
ここで、設計支援装置100が、配線L8,L9の各頂点を含む点群から選択された3点で形成される三角形の集合をあらわすドロネー図を作成する場合を想定する。この場合では、設計支援装置100は、
図1(D−3)に示すように、ドロネー図として、
図1(D−1)と同様の2つの三角形を形成することになる。
【0033】
すなわち、設計支援装置100は、補助点を追加しなければ、ドロネー図に基づいて、
図1(C−1)に示す配線の形状と、
図1(C−3)に示す配線の形状との配線の相対的な位置関係の違いを区別することが難しい。換言すれば、設計支援装置100は、補助点を追加することにより、ドロネー図に基づいて、
図1(C−1)に示す配線の形状と、
図1(C−3)に示す配線の形状との配線の相対的な位置関係の違いを精度よく表現することができる。
【0034】
このように、設計支援装置100は、補助点を追加することにより、ホットスポットの発生点になりやすい、配線の各頂点の近隣の配線の凹凸が存在する箇所についての三角形の数を増加させ、当該箇所について解析しやすくすることができる。また、設計支援装置100は、配線の間が近づいているのに、配線の頂点の数が少ないために三角形の数が少なくなってしまう箇所についての三角形の数を増加させ、当該箇所について解析しやすくすることができる。
【0035】
結果として、設計支援装置100は、ドロネー図に関する図形データに基づいて、ホットスポットの発生点の候補点が、実際にホットスポットの発生点であるか否かを、精度よく決定することができるようになる。図形データは、例えば、ドロネー図があらわす三角形の集合に含まれるそれぞれの三角形の重心を示すデータである。
【0036】
(設計支援装置100のハードウェア構成例)
次に、
図2を用いて、設計支援装置100のハードウェア構成例を示すブロック図である。
【0037】
図2は、実施の形態にかかる設計支援装置100のハードウェア構成例を示すブロック図である。
図2において、設計支援装置100は、CPU(Central Processing Unit)201と、ROM(Read Only Memory)202と、RAM(Random Access Memory)203と、を有する。
【0038】
さらに、設計支援装置100は、磁気ディスクドライブ(Hard Disk Drive)204と、磁気ディスク205と、光ディスクドライブ206と、光ディスク207と、を有する。さらに、設計支援装置100は、ディスプレイ208と、インターフェース(I/F:Interface)209と、キーボード210と、マウス211と、スキャナ212と、プリンタ213と、を有する。また、各構成部はバス200によってそれぞれ接続されている。
【0039】
ここで、CPU201は、設計支援装置100の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御に従って磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。
【0040】
光ディスクドライブ206は、CPU201の制御に従って光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。
【0041】
ディスプレイ208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ208は、例えば、液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【0042】
I/F209は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク214に接続され、このネットワーク214を介して他の装置に接続される。そして、I/F209は、ネットワーク214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、例えば、モデムやLANアダプタなどを採用することができる。
【0043】
キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【0044】
スキャナ212は、画像を光学的に読み取り、設計支援装置100内に画像データを取り込む。なお、スキャナ212は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ213は、画像データや文書データを印刷する。プリンタ213には、例えば、レーザプリンタやインクジェットプリンタを採用することができる。また、光ディスクドライブ206、光ディスク207、ディスプレイ208、キーボード210、マウス211、スキャナ212、およびプリンタ213の少なくともいずれか1つは、なくてもよい。
【0045】
(設計支援装置100の機能的構成例)
次に、
図3を用いて、設計支援装置100の機能的構成例について説明する。
図3は、設計支援装置100の機能的構成例を示すブロック図である。設計支援装置100は、制御部となる機能として、受付部301と、特定部302と、作成部303と、取得部304と、算出部305と、決定部306と、出力部307と、更新部308とを含む。
【0046】
受付部301は、設計データを受け付ける。設計データは、基板上に形成される所定幅の配線の各頂点を示すデータを含む。設計データは、例えば、配線の各頂点についての基板上での座標値を示すデータを含む。設計データは、具体的には、配線ごとに、当該配線の各頂点についての基板上での座標値を対応付けたデータを含む。また、設計データは、Viaの各頂点を示すデータを含んでもよい。設計データは、例えば、Viaの各頂点についての基板上での座標値を示すデータを含んでもよい。
【0047】
これにより、受付部301は、基板上に形成される配線の各頂点を特定するための設計データを受け付けることができる。受け付けられたデータは、例えば、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。受付部301は、例えば、
図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、または、I/F209により、その機能を実現する。
【0048】
特定部302は、受け付けた設計データに基づいて、配線の各頂点と、配線の各頂点から基板上に形成されるいずれかの配線の辺に対して垂線を引いた場合の辺と垂線との交点とを含む点群を特定する。また、特定部302は、点群のそれぞれの点の属性を特定する。属性は、例えば、点が、配線の凹部の頂点であるか、凸部の頂点であるか、Viaの頂点であるか、補助点であるかを示すパラメータである。属性は、点が、基板上に形成されるいずれの配線内の点であるかを示すパラメータであってもよい。
【0049】
特定部302は、例えば、設計データに基づいて、配線の各頂点を特定する。次に、特定部302は、補助点として、配線の各頂点から配線の辺のうち当該頂点から所定範囲内を通過する辺に対して垂線を引いた場合の当該辺と当該垂線との交点を特定する。そして、特定部302は、特定した各頂点と、特定した各補助点とを含む点群を特定する。
【0050】
所定範囲は、配線間の最小間隔になる所定幅と、配線の所定幅とに基づいて設定される。所定範囲は、例えば、各頂点から、配線間の最小間隔になる所定幅と、配線の所定幅とを加算した長さ以内の範囲である。
【0051】
次に、特定部302は、特定した各頂点の属性として、配線の凹部の頂点であるか配線の凸部の頂点であるかを示すパラメータを特定し、いずれの配線に所属するかを示すパラメータを特定する。そして、特定部302は、特定した各補助点の属性として、補助点であることを示すパラメータを特定し、いずれの配線内の点であるかを示すパラメータを特定する。
【0052】
また、特定部302は、設計データに基づいて、さらに、基板上に形成されるViaの各頂点を含む点群を特定してもよい。特定部302は、例えば、設計データに基づいて、配線の各頂点を特定し、配線の各頂点から垂線を引いた場合の補助点を特定する。次に、特定部302は、設計データに基づいて、Viaの各頂点を特定する。そして、特定部302は、特定した配線の各頂点と、特定したViaの各頂点と、特定した各補助点とを含む点群を特定する。
【0053】
次に、特定部302は、特定した配線の各頂点の属性として、配線の凹部の頂点であるか配線の凸部の頂点であるかを示すパラメータを特定し、いずれの配線に所属するかを示すパラメータを特定する。そして、特定部302は、特定した各補助点の属性として、補助点であることを示すパラメータを特定し、いずれの配線内の点であるかを示すパラメータを特定する。さらに、特定部302は、特定したViaの各頂点の属性として、Viaの頂点であることを示すパラメータを特定し、いずれの配線内の点であるかを示すパラメータを特定する。
【0054】
また、特定部302は、さらに、Viaの各頂点から基板上に形成されるいずれかの配線の辺に対して垂線を引いた場合の辺と垂線との交点を含む点群を特定してもよい。特定部302は、例えば、設計データに基づいて、配線の各頂点を特定し、配線の各頂点から垂線を引いた場合の補助点を特定し、Viaの各頂点を特定する。次に、特定部302は、補助点として、Viaの各頂点から配線の辺のうち当該頂点から所定範囲内を通過する辺に対して垂線を引いた場合の当該辺と当該垂線との交点を特定する。そして、特定部302は、特定した配線の各頂点と、特定したViaの各頂点と、特定した各補助点とを含む点群を特定する。
【0055】
次に、特定部302は、特定した配線の各頂点の属性として、配線の凹部の頂点であるか配線の凸部の頂点であるかを示すパラメータを特定し、いずれの配線に所属するかを示すパラメータを特定する。そして、特定部302は、特定した各補助点の属性として、補助点であることを示すパラメータを特定し、いずれの配線内の点であるかを示すパラメータを特定する。さらに、特定部302は、特定したViaの各頂点の属性として、Viaの頂点であることを示すパラメータを特定し、いずれの配線内の点であるかを示すパラメータを特定する。
【0056】
これにより、特定部302は、ドロネー図を作成するための点群を特定することができる。特定結果は、例えば、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。特定部302は、例えば、
図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、その機能を実現する。
【0057】
作成部303は、特定した点群から選択された3点で形成される三角形の集合をあらわすドロネー図に関する図形データを作成する。ドロネー図は、点群から選択された3点で形成される三角形の集合をあらわす図である。図形データは、ドロネー図に関するデータである。図形データは、例えば、ドロネー図があらわす三角形の集合のそれぞれの三角形の重心についての基板上での座標値を示すデータを含む。
【0058】
作成部303は、例えば、特定した点群から選択された点間の距離の和が閾値以下になる3点で形成される三角形の集合をあらわすドロネー図に関する図形データを作成する。
【0059】
作成部303は、具体的には、特定した点群から選択された点間の距離の和が閾値以下になる3点で形成される三角形の集合をあらわすドロネー図を作成する。次に、作成部303は、ドロネー図があらわす三角形の集合のそれぞれの三角形の重心についての基板上での座標値を算出する。そして、作成部303は、算出した座標値を示す図形データを作成する。
【0060】
また、作成部303は、例えば、特定した点群から選択された異なる電位の点を含む3点で形成される三角形の集合をあらわすドロネー図に関する図形データを作成する。作成部303は、具体的には、特定した点群のそれぞれの点の属性に基づいて、特定した点群から選択された異なる配線内の点を含む3点で形成される三角形の集合をあらわすドロネー図を作成する。次に、作成部303は、ドロネー図があらわす三角形の集合のそれぞれの三角形の重心についての基板上の座標値を算出する。そして、作成部303は、算出した座標値を示す図形データを作成する。
【0061】
また、作成部303は、特定した点群から選択されたViaの頂点を含む3点で形成される三角形の集合をあらわすドロネー図に関する図形データを作成する。作成部303は、具体的には、特定した点群のそれぞれの点の属性に基づいて、特定した点群から選択されたViaの頂点を含む3点で形成される三角形の集合をあらわすドロネー図を作成する。次に、作成部303は、ドロネー図があらわす三角形の集合のそれぞれの三角形の重心についての基板上の座標値を算出する。そして、作成部303は、算出した座標値を示す図形データを作成する。
【0062】
また、作成部303は、特定した点群から選択された配線の凹部の頂点を含む3点で形成される三角形の集合をあらわすドロネー図に関する図形データを作成する。作成部303は、具体的には、特定した点群のそれぞれの点の属性に基づいて、特定した点群から選択された配線の凹部の頂点を含む3点で形成される三角形の集合をあらわすドロネー図を作成する。次に、作成部303は、ドロネー図があらわす三角形の集合のそれぞれの三角形の重心についての基板上の座標値を算出する。そして、作成部303は、算出した座標値を示す図形データを作成する。
【0063】
これにより、作成部303は、配線の相対的な位置関係を解析するためのドロネー図に関する図形データを作成することができる。作成されたデータは、例えば、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。作成部303は、例えば、
図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、その機能を実現する。
【0064】
取得部304は、リソグラフィシミュレーションによって検出された基板上のエラー発生点の候補点を取得する。エラー発生点は、例えば、ホットスポットの発生点である。取得部304は、例えば、リソグラフィシミュレーションを実行して、基板上のホットスポットの発生点の候補点を取得する。また、取得部304は、リソグラフィシミュレーションを実行する他の装置から、リソグラフィシミュレーションによって検出された基板上のホットスポットの発生点の候補点を取得してもよい。
【0065】
これにより、取得部304は、ホットスポットの発生点であるか、疑似発生点であるかを判定する対象になる、ホットスポットの発生点の候補点を取得することができる。疑似発生点は、リソSim.ではホットスポットの発生点の候補点として検出されるものの、実際にはホットスポットの発生点にならない点である。取得されたデータは、例えば、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。取得部304は、例えば、
図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、または、I/F209により、その機能を実現する。
【0066】
算出部305は、図形データに基づいて、複数の部分領域のそれぞれの特徴量を算出する。複数の部分領域は、候補点の周囲の領域を分割した領域である。複数の部分領域は、例えば、候補点を中心にする直交座標系における候補点からの角度に基づいて分割される。また、複数の部分領域は、例えば、候補点を中心にする直交座標系における候補点からの距離に基づいて分割される。
【0067】
複数の部分領域は、具体的には、候補点を中心にする直交座標系において、候補点を中心にする第1の矩形の内側の領域を、候補点からの角度0度を基準とした45度ごとの範囲で分割した領域を含む。また、複数の部分領域は、候補点を中心にする直交座標系において、第1の矩形の外側、かつ候補点を中心にする第1の矩形より大きい第2の矩形の内側の領域を、候補点からの角度0度を基準とした45度ごとの範囲で分割した領域を含んでもよい。
【0068】
また、複数の部分領域は、候補点を中心にする直交座標系において、第2の矩形の外側、かつ候補点を中心にする第2の矩形より大きい第3の矩形の内側の領域を、候補点からの角度0度を基準とした45度ごとの範囲で分割した領域を含んでもよい。また、複数の部分領域は、候補点を中心にする直交座標系において、第3の矩形の外側、かつ候補点を中心にする第3の矩形より大きい第4の矩形の内側の領域を、候補点からの角度0度を基準とした45度ごとの範囲で分割した領域を含んでもよい。特徴量は、候補点に対する部分領域の配線の位置関係をあらわす。
【0069】
算出部305は、例えば、図形データに基づいて、三角形の集合のうちで、複数の部分領域のそれぞれに含まれる三角形の数を算出する。算出部305は、具体的には、図形データに基づいて、複数の部分領域のそれぞれの特徴量として、三角形の集合のうちで複数の部分領域のそれぞれに重心が含まれる三角形の数を算出する。
【0070】
また、算出部305は、例えば、複数の部分領域のそれぞれに含まれる三角形の数の上限に設定された所定数に対する複数の部分領域のそれぞれに含まれる三角形の数の割合に基づいて、複数の部分領域のそれぞれの特徴量を算出してもよい。三角形の数の上限は、算出部305によって今までに算出された三角形の数のうちで最大の数に基づいて設定される。算出部305は、具体的には、図形データに基づいて、三角形の集合のうちで複数の部分領域のそれぞれに重心が含まれる三角形の数を算出する。次に、算出部305は、複数の部分領域のそれぞれの特徴量として、三角形の数の上限に設定された所定数に対する複数の部分領域のそれぞれに含まれる三角形の数の割合を算出する。これにより、算出部305は、特徴量が最大で1になるように正規化することができる。
【0071】
また、算出部305は、例えば、複数の部分領域のそれぞれに設定された補正係数と、所定数に対する複数の部分領域のそれぞれに含まれる三角形の数の割合とに基づいて、複数の部分領域のそれぞれの特徴量を算出してもよい。補正係数は、特徴量についての係数であって、値が大きいほど特徴量を大きくする係数である。補正係数は、例えば、特徴量に乗算する値である。補正係数は、具体的には、0〜1の範囲で設定され、補正後の特徴量が最大で1を超えないようにされてもよい。算出部305は、具体的には、候補点からの距離が近い部分領域の方が、候補点からの距離が遠い部分領域に比べて補正係数が大きくなるように、複数の部分領域のそれぞれに補正係数を設定する。次に、算出部305は、図形データに基づいて、三角形の集合のうちで複数の部分領域のそれぞれに重心が含まれる三角形の数を算出し、三角形の数の上限に設定された所定数に対する複数の部分領域のそれぞれに含まれる三角形の数の割合を算出する。そして、算出部305は、複数の部分領域のそれぞれについて算出した割合に、複数の部分領域のそれぞれに設定した補正係数を乗算して、複数の部分領域のそれぞれの特徴量を算出する。
【0072】
このとき、算出部305は、異なる電位の点を含む3点で形成される三角形を含む部分領域の方が、Viaの頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が大きくなるように、複数の部分領域のそれぞれに補正係数を設定してもよい。また、算出部305は、異なる電位の点を含む3点で形成される三角形を含む部分領域の方が、Viaの頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が小さくなるように、複数の部分領域のそれぞれに補正係数を設定してもよい。
【0073】
また、算出部305は、異なる電位の点を含む3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が大きくなるように、複数の部分領域のそれぞれに補正係数を設定してもよい。また、算出部305は、異なる電位の点を含む3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が小さくなるように、複数の部分領域のそれぞれに補正係数を設定してもよい。
【0074】
また、算出部305は、点間の距離の和が閾値以下になる3点で形成される三角形を含む部分領域の方が、Viaの頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が大きくなるように、複数の部分領域のそれぞれに補正係数を設定してもよい。算出部305は、点間の距離の和が閾値以下になる3点で形成される三角形を含む部分領域の方が、Viaの頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が小さくなるように、複数の部分領域のそれぞれに補正係数を設定してもよい。
【0075】
また、算出部305は、点間の距離の和が閾値以下になる3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が大きくなるように、補正係数を設定してもよい。また、算出部305は、点間の距離の和が閾値以下になる3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が小さくなるように、補正係数を設定してもよい。
【0076】
また、算出部305は、Viaの頂点を含む3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が大きくなるように、複数の部分領域のそれぞれに補正係数を設定してもよい。また、算出部305は、Viaの頂点を含む3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が小さくなるように、複数の部分領域のそれぞれに補正係数を設定してもよい。ここでは、算出部305は、複数の部分領域のそれぞれに補正係数を設定したが、これに限らない。例えば、算出部305は、三角形の属性に応じて補正係数を設定してもよい。具体的には、算出部305は、点間の距離の和が閾値以下になる3点で形成される三角形の数を5分の1に補正し、配線の凹部にある頂点を含む3点で形成される三角形の数を2分の1に補正するように、補正係数を設定してもよい。そして、算出部305は、三角形の集合のうちで複数の部分領域のそれぞれに重心が含まれる三角形の数を補正係数に基づいて補正し、三角形の数の上限に設定された所定数に対する複数の部分領域のそれぞれに含まれる補正した三角形の数の割合を算出してもよい。
【0077】
これにより、算出部305は、複数の部分領域のそれぞれの特徴量を算出することができる。算出されたデータは、例えば、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。算出部305は、例えば、
図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、その機能を実現する。
【0078】
決定部306は、算出した特徴量の組み合わせと、記憶装置に記憶された基板上のエラー発生点に対応する特徴量の組み合わせとを比較した結果に基づいて、候補点をエラー発生点に決定する。決定部306は、例えば、算出した三角形の数の組み合わせと、記憶装置に記憶された基板上のエラー発生点に対応する三角形の数の組み合わせとを比較した結果に基づいて、候補点をエラー発生点に決定する。決定部306は、具体的には、算出した三角形の数の組み合わせと、記憶装置に記憶された基板上のエラー発生点に対応する三角形の数の組み合わせとの類似度合いを、SVM(Support Vector Machine)などを用いて算出する。ここで、決定部306は、算出した類似度合いが閾値よりも大きい場合は、エラー発生点の候補点を、エラー発生点に決定する。一方で、決定部306は、算出した類似度合いが閾値以下の場合は、エラー発生点の候補点を、エラー発生点に決定しない。
【0079】
また、決定部306は、算出した特徴量の組み合わせと、記憶装置に記憶された基板上の疑似エラー発生点に対応する特徴量の組み合わせとを比較した結果に基づいて、候補点を疑似エラー発生点に決定する。決定部306は、例えば、算出した三角形の数の組み合わせと、記憶装置に記憶された基板上の疑似エラー発生点に対応する三角形の数の組み合わせとを比較した結果に基づいて、候補点を疑似エラー発生点に決定する。決定部306は、具体的には、算出した三角形の数の組み合わせと、記憶装置に記憶された基板上の疑似エラー発生点に対応する三角形の数の組み合わせとの類似度合いを、SVMなどを用いて算出する。ここで、決定部306は、算出した類似度合いが閾値よりも大きい場合は、エラー発生点の候補点を、疑似エラー発生点に決定する。一方で、決定部306は、算出した類似度合いが閾値以下の場合は、エラー発生点の候補点を、疑似エラー発生点に決定しない。
【0080】
これにより、決定部306は、ホットスポットの発生点であるか、疑似発生点であるかを決定することができる。決定されたデータは、例えば、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。決定部306は、例えば、
図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、その機能を実現する。
【0081】
出力部307は、決定部306による決定結果を出力する。出力部307は、例えば、決定結果を、ディスプレイ208へ表示し、プリンタ213へ印刷出力し、I/F209により外部装置へ送信し、またはRAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶する。また、出力部307は、さらに、類似度合いを出力してもよい。これにより、出力部307は、決定結果を、設計支援装置100のユーザに通知することができる。
【0082】
更新部308は、算出部305によって算出された複数の部分領域のそれぞれの特徴量の組み合わせを、エラー発生点に対応する特徴量の組み合わせ、または疑似エラー発生点に対応する特徴量の組み合わせとして、記憶装置に記憶する。更新部308は、例えば、出力部307によってエラー発生点にも、疑似エラー発生点にも決定しないことが出力された結果、エラー発生点の候補点がエラー発生点または疑似エラー発生点のうちのいずれであるかの情報を受け付ける。
【0083】
そして、更新部308は、算出部305によって算出された複数の部分領域のそれぞれの特徴量の組み合わせを、エラー発生点または疑似エラー発生点のうちの受け付けた情報が示す方に対応する特徴量の組み合わせとして、記憶装置に記憶する。これにより、更新部308は、新たな特徴量の組み合わせを記憶装置に登録することができる。決定部306は、例えば、
図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、その機能を実現する。
【0084】
(配線の設計内容の一例)
次に、
図4を用いて、配線の設計内容の一例について説明する。
【0085】
図4は、配線の設計内容の一例を示す説明図である。
図4に示すように、基板400上には、複数の配線L11〜L22が設置される。複数の配線L11〜L22は、それぞれ、別々の領域であって、異なる電位の領域である。また、基板400上には、Viaが設置される。配線L11〜L22の設計内容は、設計データによって規定される。
【0086】
設計データは、例えば、GDSIIの形式で記述されたデータである。設計データは、具体的には、それぞれの配線の外周をいずれかの方向に一回りした場合に通過する頂点の順番に、それぞれの配線の各頂点の座標値を並べたデータを含む。また、設計データは、Viaの各頂点の座標値を並べたデータを含む。ここで、設計支援装置100は、設計データに基づいて、
図4に示した配線の設計内容について、リソSim.によってホットスポットの発生点の候補点H1を検出する。
【0087】
以下の説明では、設計支援装置100は、
図4に示した配線の設計内容において、検出した候補点H1の周囲の基板400上の領域410についてドロネー図を作成し、候補点H1が実際にホットスポットの発生点であるか、疑似発生点であるかを決定する。また、以下の説明では、説明の簡略化のため、基板400上の領域411を例に挙げて説明することがある。
【0088】
(補助点を作成する一例)
次に、
図5および
図6を用いて、補助点を作成する一例について説明する。
【0089】
図5および
図6は、補助点を作成する一例を示す説明図である。
図5において、設計支援装置100は、設計データに基づいて、配線の各頂点と、Viaの各頂点を特定する。配線の頂点は、
図5の例では、●で表現される。Viaの頂点は、
図5の例では、★で表現される。設計支援装置100は、例えば、基板400上の領域411を例に挙げると、配線L15の各頂点P1〜P8と、配線L16の各頂点P11,P12と、Viaの各頂点P21〜P24とを特定する。
【0090】
図6において、設計支援装置100は、配線L15の各頂点P1〜P8と、配線L16の各頂点P11,P12とから、配線の辺のうち当該頂点から所定範囲内を通過する辺に対して垂線を引いた場合の当該辺と当該垂線との交点を、補助点として特定する。補助点は、
図6の例では、▲で表現される。所定範囲は、例えば、ホットスポットが発生しやすくなる配線の間隔に基づいて設定される。所定範囲は、具体的には、配線の最小間隔と配線の最小幅と任意のマージンαとを加算した長さを半径にする範囲である。
【0091】
そして、設計支援装置100は、交点の座標値を補助点の座標値として記憶する。設計支援装置100は、例えば、配線L16の頂点P11から、配線L15の頂点P6と頂点P7との間の辺に対して垂線を引いた場合の当該辺と当該垂線との交点を、補助点P31として特定する。そして、設計支援装置100は、補助点P31の座標値を記憶する。
【0092】
また、設計支援装置100は、同様に、Viaの各頂点から、配線の辺のうち当該頂点から所定範囲内を通過する辺に対して垂線を引いた場合の当該辺と当該垂線との交点の座標値を、補助点として特定し、交点の座標値を補助点の座標値として記憶する。Viaの頂点からの所定範囲は、配線の各頂点からの所定範囲よりも小さくてもよい。設計支援装置100は、例えば、配線L16のViaの頂点P21から所定範囲内を通過する辺がないため、補助点を特定しない。
【0093】
(各頂点の属性を特定する一例)
次に、
図7を用いて、各頂点の属性を特定する一例について説明する。
【0094】
図7は、各頂点の属性を特定する一例を示す説明図である。
図7において、設計支援装置100は、配線の各頂点の属性と、Viaの各頂点の属性とを特定する。設計支援装置100は、配線の各頂点の属性として、配線の凸部の頂点であることを示す属性、または配線の凹部の頂点であることを示す属性のいずれかを特定する。設計支援装置100は、例えば、頂点に接する2つの辺の外積の符号に基づいて、当該頂点が配線の凸部の頂点であるか、配線の凹部の頂点であるかを特定する。
【0095】
図7の例では、説明の簡略化のため、新たに配線L31を例に挙げ、設計データが配線L31の外周を反時計回りに一回りして通過する頂点の順番に、配線L31の各頂点の座標値を並べたデータを含む場合について説明する。
【0096】
この場合、設計支援装置100は、設計データに基づいて、頂点Aに向かう正規化ベクトルHA=(0,−1)、頂点Aから出る正規化ベクトルAB=(1,0)を特定する。次に、設計支援装置100は、外積HA×ABの符号={(0・0)−(1・−1)}=+1を算出する。そして、設計支援装置100は、外積HA×ABの符号が+1であれば頂点Aを配線の凸部の頂点であると判定し、外積HA×ABの符号が−1であれば頂点Aを配線の凹部の頂点であると判定する。ここでは、設計支援装置100は、外積HA×ABの符号が+1であるため、頂点Aを配線の凸部の頂点であると判定する。
【0097】
設計支援装置100は、同様に、頂点B,E,F,G,Hを、それぞれ、配線の凸部の頂点であると判定する。また、設計支援装置100は、同様に、頂点C,Dを、それぞれ、配線の凹部の頂点であると判定する。また、設計支援装置100は、Viaの各頂点の属性として、Viaの頂点であることを示す属性を特定する。
【0098】
(ドロネー図を作成する一例)
次に、
図8〜
図10を用いて、ドロネー図を作成する一例について説明する。
【0099】
図8〜
図10は、ドロネー図を作成する一例を示す説明図である。
図8において、設計支援装置100は、配線の各頂点と、Viaの各頂点と、補助点とを含む点群から選択された3点で形成される三角形の集合をあらわすドロネー図を作成する。配線の各頂点のうち、配線の凸部にある頂点は、
図8の例では、●で表現される。配線の各頂点のうち、配線の凹部にある頂点は、
図8の例では、■で表現される。Viaの各頂点は、
図8の例では、★で表現される。補助点は、
図8の例では、▲で表現される。
【0100】
設計支援装置100は、例えば、基板400上の領域411を例に挙げると、配線L16の頂点P11と、配線L16の頂点P12と、補助点P31との3点で、三角形を形成する。設計支援装置100は、同様に、他の頂点や補助点から三角形を形成する。
【0101】
これにより、設計支援装置100は、ホットスポットの発生点の候補点H1の周囲の領域410について、
図9に示した三角形の集合をあらわすドロネー図を作成する。
【0102】
図10において、設計支援装置100は、
図9に示したドロネー図があらわす三角形の集合に含まれるそれぞれの三角形のパラメータを示す図形データを作成する。
【0103】
設計支援装置100は、例えば、それぞれの三角形のパラメータを示す三角形情報テーブル1000を作成する。三角形情報テーブル1000は、例えば、
図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶領域によって実現される。
【0104】
図10に示すように、三角形情報テーブル1000は、三角形を形成する第1の点と第2の点と第3の点とのそれぞれの座標項目の組み合わせに対応付けて、面積項目と、長さ項目と、内角項目と、重心の座標項目とを有する。三角形情報テーブル1000は、三角形ごとに各項目に情報が設定されることにより、レコード1001〜100iを記憶する。iは、自然数である。レコード1001〜100iは、それぞれ、三角形のパラメータを示す。
【0105】
三角形を形成する第1の点の座標項目は、X1項目と、Y1項目と、Lay1項目と、CI1項目と、FID1項目とを有する。X1項目には、第1の点のX座標値が記憶される。Y1項目には、第1の点のY座標値が記憶される。Lay1項目には、第1の点があるレイヤーの番号と、データタイプが記憶される。レイヤーは、例えば、SiN(窒化膜)、poly0(ポリシリコン層)、Viaの層などである。換言すれば、レイヤー番号は、配線の頂点であるか、Viaの頂点であるかを示す情報である。配線は、例えば、Viaの層以外の層に、フォトリソグラフィによって形成される多角形である。データタイプは、省略してもよい。CI1項目には、第1の点が、凹部の頂点、凸部の頂点、補助点のいずれであるかを示す情報が記憶される。FID1項目には、第1の点がある配線の番号が記憶される。
【0106】
三角形を形成する第2の点の座標項目は、X2項目と、Y2項目と、Lay2項目と、CI2項目と、FID2項目とを有する。X2項目には、第2の点のX座標値が記憶される。Y2項目には、第2の点のY座標値が記憶される。Lay2項目には、第2の点があるレイヤーの番号と、データタイプが記憶される。CI2項目には、第2の点が、凹部の頂点、凸部の頂点、補助点のいずれであるかを示す情報が記憶される。FID2項目には、第2の点がある配線の番号が記憶される。
【0107】
三角形を形成する第3の点の座標項目は、X3項目と、Y3項目と、Lay3項目と、CI3項目と、FID3項目とを有する。X3項目には、第3の点のX座標値が記憶される。Y3項目には、第3の点のY座標値が記憶される。Lay3項目には、第3の点があるレイヤーの番号と、データタイプが記憶される。CI3項目には、第3の点が、凹部の頂点、凸部の頂点、補助点のいずれであるかを示す情報が記憶される。FID3項目には、第3の点がある配線の番号が記憶される。
【0108】
面積項目は、Area項目を有する。Area項目には、三角形の面積が記憶される。長さ項目は、ab項目と、bc項目と、ca項目と、Peri項目とを有する。ab項目には、三角形を形成する第1の点から第2の点までを結んだ第1の辺の長さが記憶される。bc項目には、三角形を形成する第2の点から第3の点までを結んだ第2の辺の長さが記憶される。ca項目には、三角形を形成する第3の点から第1の点までを結んだ第3の辺の長さが記憶される。Peri項目には、第1の辺と第2の辺と第3の辺とのそれぞれの長さの和が記憶される。
【0109】
内角項目は、angleA項目と、angleB項目と、angleC項目とを有する。angleA項目には、第1の点における第1の辺と第3の辺との間の角度が記憶される。angleB項目には、第2の点における第1の辺と第2の辺との間の角度が記憶される。angleC項目には、第3の点における第2の辺と第3の辺との間の角度が記憶される。重心の座標項目は、CenterX項目と、CenterY項目とを有する。CenterX項目には、重心のX座標値が記憶される。CenterY項目には、重心のY座標値が記憶される。
【0110】
(三角形を抽出する一例)
次に、
図11および
図12を用いて、三角形を抽出する一例について説明する。
【0111】
図11および
図12は、三角形を抽出する一例を示す説明図である。
図11において、設計支援装置100は、所定の規則に従って、ドロネー図があらわす三角形の集合の中から、三角形を抽出する。
【0112】
設計支援装置100は、周囲長が閾値以下かつ異なる電位の点を含む三角形を抽出する所定の規則に従って、ドロネー図があらわす三角形の集合の中から、周囲長が閾値以下かつ異なる電位の点を含む三角形を抽出する。
【0113】
設計支援装置100は、例えば、Peri項目を参照して周囲長が閾値以下か否かを判定し、FID1項目とFID2項目とFID3項目とを参照して異なる電位の点を含むか否かを判定する。そして、設計支援装置100は、基板400上の領域411を例に挙げると、配線L15の頂点P8と、配線L16の頂点P11,P12と、Viaの各頂点P22,P23と、補助点P31,P33,P35,P37とのうちの3点で形成される三角形などを抽出する。
【0114】
これにより、設計支援装置100は、
図12(E−1)〜(E−4)に示すように、ホットスポットの発生点に関する三角形を残し、候補点がホットスポットの発生点であるか疑似発生点であるかを決定するために用いない三角形を除外することができる。
【0115】
設計支援装置100は、具体的には、異なる電位の2つの配線が近づいている位置の周囲の三角形を抽出することができる。換言すれば、設計支援装置100は、ブリッジングのホットスポットの発生点になりやすい位置の周囲の三角形を残して、ブリッジングのホットスポットの発生点を解析するためのドロネー図を作成することができる。
【0116】
ここでは、設計支援装置100が、周囲長が閾値以下かつ異なる電位の点を含む三角形を抽出する場合について説明したが、これに限らない。例えば、設計支援装置100は、凹部の頂点を含まない三角形、Viaの頂点を含まない三角形、または三角形の内角が閾値以上の三角形などを抽出してもよい。
【0117】
設計支援装置100は、具体的には、異なる電位の点を含む3点で形成される三角形を抽出してもよい。これにより、設計支援装置100は、配線の内側に形成され、配線同士の位置関係を表現するために用いることができない三角形を除外し、配線同士の位置関係を表現するために用いる三角形を抽出することができる。
【0118】
また、設計支援装置100は、具体的には、配線の凹部の頂点を含む3点で形成された三角形を抽出してもよい。ここで、設計支援装置100は、CI1項目とCI2項目とCI3項目とを参照してViaの頂点か否かを判定する。これにより、設計支援装置100は、配線の凹部以前の部分と凹部以降の部分とが折れ曲がって近づいている、ホットスポットの発生点になりやすい位置を解析するための三角形を残すことができる。
【0119】
また、設計支援装置100は、具体的には、周囲長が閾値以下の三角形を抽出してもよい。これにより、設計支援装置100は、配線同士が離れていてホットスポットの発生点にはなりにくい位置を解析するための三角形を除外して、配線同士が近づいており、ホットスポットの発生点になりやすい位置を解析するための三角形を残すことができる。
【0120】
また、設計支援装置100は、具体的には、Viaの頂点を含む3点で形成された三角形を抽出してもよい。ここで、設計支援装置100は、Lay1項目とLay2項目とLay3項目とを参照してViaの頂点か否かを判定する。これにより、設計支援装置100は、Viaのカバレッジ不足のホットスポットの発生点になりやすい位置を解析するための三角形を残すことができる。
【0121】
また、設計支援装置100は、具体的には、三角図の内角が閾値以上の三角形を抽出してもよい。これにより、設計支援装置100は、ホットスポットの発生点の候補点の周囲の領域の端の部分に存在する、配線同士の位置関係を表現するために用いることができない三角形を除外することができる。
【0122】
また、設計支援装置100は、ドロネー図を、設計者に通知してもよい。これにより、設計者が、ドロネー図において三角形が集中している部分を目視して、ホットスポットの発生点を検出することができる。
【0123】
(特徴量を算出する一例)
次に、
図13〜
図15を用いて、特徴量を算出する一例について説明する。
【0124】
図13〜
図15は、特徴量を算出する一例を示す説明図である。
図13において、設計支援装置100は、リソSim.によって検出されたホットスポットの発生点の候補点H1の周囲の領域410を、複数の部分領域に分割する。
【0125】
図13の例では、設計支援装置100は、候補点H1を中心とする矩形a,b,c,d,eと、45度ごとの角度範囲1,2,3,4,5,6,7,8と、に基づいて、複数の部分領域に分割する。
【0126】
矩形a,b,c,d,eは、それぞれ、候補点H1から辺までの距離が0.25umの矩形、0.45umの矩形、0.65umの矩形、0.85umの矩形、1.05umの矩形である。角度範囲1,2,3,4,5,6,7,8は、それぞれ、0〜45度、45〜90度、90〜135度、135〜180度、180〜225度、225〜270度、270〜315度、315〜360度である。
【0127】
設計支援装置100は、例えば、矩形a内の領域であって、角度範囲1に含まれる領域を部分領域a−1として分割する。同様に、設計支援装置100は、部分領域a−2,a−3,a−4,a−5,a−6,a−7,a−8として分割する。また、設計支援装置100は、矩形a外かつ矩形b内の領域であって、角度範囲1に含まれる領域を部分領域b−1として分割する。同様に、設計支援装置100は、部分領域b−2,b−3,b−4,b−5,b−6,b−7,b−8として分割する。
【0128】
また、設計支援装置100は、矩形b外かつ矩形c内の領域であって、角度範囲1に含まれる領域を部分領域c−1として分割する。同様に、設計支援装置100は、部分領域c−2,c−3,c−4,c−5,c−6,c−7,c−8として分割する。また、設計支援装置100は、矩形c外かつ矩形d内の領域であって、角度範囲1に含まれる領域を部分領域d−1として分割する。同様に、設計支援装置100は、部分領域d−2,d−3,d−4,d−5,d−6,d−7,d−8として分割する。
【0129】
また、設計支援装置100は、矩形d外かつ矩形e内の領域であって、角度範囲1に含まれる領域を部分領域e−1として分割する。同様に、設計支援装置100は、部分領域e−2,e−3,e−4,e−5,e−6,e−7,e−8として分割する。
【0130】
設計支援装置100は、角度範囲に基づいて分割することにより、ポリ層のトランジスタなどといった配線の形状の向きがホットスポットの発生点になるかに関係する場合について、ホットスポットの発生点であるかを決定する精度を向上させることができる。
【0131】
図14において、設計支援装置100は、ドロネー図があらわす三角形の集合のうち、ホットスポットの発生点の候補点の周囲の領域に含まれる三角形のパラメータを示す図形データを作成する。
【0132】
設計支援装置100は、例えば、それぞれの三角形のパラメータを示す分析テーブル1400を作成する。分析テーブル1400は、三角形情報テーブル1000から、除外されなかった三角形に対応するレコードを抽出したテーブルである。分析テーブル1400は、例えば、
図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶領域によって実現される。
【0133】
図14に示すように、分析テーブル1400は、三角形を形成する第1の点と第2の点と第3の点とのそれぞれの座標項目の組み合わせに対応付けて、面積項目と、長さ項目と、内角項目と、重心の座標項目と、位置項目とを有する。分析テーブル1400は、三角形ごとに各項目に情報が設定されることにより、レコード1401〜140jを記憶する。jは、i以下の自然数である。レコード1401〜140jは、それぞれ、三角形のパラメータを示す。
【0134】
三角形を形成する第1の点と第2の点と第3の点とのそれぞれの座標項目は、
図10を用いて説明した三角形を形成する第1の点と第2の点と第3の点とのそれぞれの座標項目と同様のため、説明を省略する。面積項目と、長さ項目と、内角項目と、重心の座標項目とは、それぞれ、
図10を用いて説明した面積項目と、長さ項目と、内角項目と、重心の座標項目と同様のため、説明を省略する。
【0135】
位置項目は、CDT項目と、Range項目と、CAG項目と、CangID項目とを有する。CDT項目には、リソSim.によって検出されたホットスポットの発生点の候補点から三角形の重心までの距離が記憶される。Range項目には、三角形の重心が含まれる部分領域を特定するための矩形a〜eのいずれかをあらわす情報が記憶される。CAG項目は、リソSim.によって検出されたホットスポットの発生点の候補点からの三角形の重心の角度が記憶される。CangID項目には、三角形の重心が含まれる部分領域を特定するための角度範囲1〜8のいずれかをあらわす情報が記憶される。
【0136】
図15において、設計支援装置100は、分析テーブル1400を参照して、ホットスポットの発生点の候補点の周囲の領域を分割した複数の部分領域のそれぞれの特徴量を算出する。設計支援装置100は、例えば、分析テーブル1400のRange項目と、CangID項目とを参照して、複数の部分領域のそれぞれに重心が含まれる三角形の数を算出する。
【0137】
次に、設計支援装置100は、複数の部分領域のそれぞれについて、算出した三角形の数と、過去に算出された三角形の数とのうち、最大の数を特定する。そして、設計支援装置100は、特定した最大の数に対する、複数の部分領域のそれぞれに含まれる三角形の数の割合を、複数の部分領域のそれぞれの特徴量として算出する。
【0138】
これにより、設計支援装置100は、ホットスポットの発生点であるか疑似発生点であるかを決定するために、過去に算出されたホットスポットの発生点、または疑似発生点に対応する特徴量の組み合わせと比較する特徴量の組み合わせを算出することができる。また、設計支援装置100は、最大の数に対する割合を算出することにより、特徴量が最大で1になるように正規化することができる。
【0139】
ここでは、設計支援装置100が、部分領域に含まれる三角形の数の割合を部分領域の特徴量として算出する場合について説明したが、これに限らない。例えば、設計支援装置100は、三角形を形成する点の属性に基づいて、部分領域の特徴量を算出してもよい。
【0140】
設計支援装置100は、具体的には、候補点H1からの距離が近い部分領域の方が、候補点H1からの距離が遠い部分領域に比べて補正係数が大きくなるように、複数の部分領域のそれぞれに補正係数を設定する。補正係数は、値が大きいほど、特徴量を増大させる係数である。そして、設計支援装置100は、複数の部分領域のそれぞれに設定された補正係数と、所定数に対する複数の部分領域のそれぞれに含まれる三角形の数の割合を乗算して、複数の部分領域のそれぞれの特徴量を算出する。
【0141】
これにより、設計支援装置100は、ホットスポットの発生点の候補点に近く、ホットスポットの発生点になるか否かに与える影響の大きい位置を解析するための三角形の重みを重くすることができる。結果として、設計支援装置100は、ホットスポットの発生点の候補点が、ホットスポットの発生点であるか、疑似発生点であるかを決定する精度を向上させることができる。
【0142】
また、設計支援装置100は、具体的には、異なる電位の点を含む3点で形成される三角形を含む部分領域の方が、Viaの頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が大きくなるように、補正係数を設定する。または、設計支援装置100は、具体的には、異なる電位の点を含む3点で形成される三角形を含む部分領域の方が、Viaの頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が小さくなるように、補正係数を設定する。そして、設計支援装置100は、複数の部分領域のそれぞれに設定された補正係数と、所定数に対する複数の部分領域のそれぞれに含まれる三角形の数の割合を乗算して、複数の部分領域のそれぞれの特徴量を算出する。
【0143】
これにより、設計支援装置100は、配線やViaに関するホットスポットの発生点になるか否かに与える影響の大きい三角形の重みを重くすることができる。結果として、設計支援装置100は、配線やViaに関するホットスポットの発生点の候補点が、ホットスポットの発生点であるか、疑似発生点であるかを決定する精度を向上させることができる。
【0144】
また、設計支援装置100は、具体的には、異なる電位の点を含む3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が大きくなるように、補正係数を設定する。または、設計支援装置100は、具体的には、異なる電位の点を含む3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が小さくなるように、補正係数を設定する。そして、設計支援装置100は、複数の部分領域のそれぞれに設定された補正係数と、所定数に対する複数の部分領域のそれぞれに含まれる三角形の数の割合を乗算して、複数の部分領域のそれぞれの特徴量を算出する。
【0145】
これにより、設計支援装置100は、配線やViaに関するホットスポットの発生点になるか否かに与える影響の大きい三角形の重みを重くすることができる。結果として、設計支援装置100は、配線やViaに関するホットスポットの発生点の候補点が、ホットスポットの発生点であるか、疑似発生点であるかを決定する精度を向上させることができる。
【0146】
また、設計支援装置100は、具体的には、点間の距離の和が閾値以下になる3点で形成される三角形を含む部分領域の方が、Viaの頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が大きくなるように、補正係数を設定する。または、設計支援装置100は、具体的には、点間の距離の和が閾値以下になる3点で形成される三角形を含む部分領域の方が、Viaの頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が小さくなるように、補正係数を設定する。そして、設計支援装置100は、複数の部分領域のそれぞれに設定された補正係数と、所定数に対する複数の部分領域のそれぞれに含まれる三角形の数の割合を乗算して、複数の部分領域のそれぞれの特徴量を算出する。
【0147】
これにより、設計支援装置100は、配線やViaに関するホットスポットの発生点になるか否かに与える影響の大きい三角形の重みを重くすることができる。結果として、設計支援装置100は、配線やViaに関するホットスポットの発生点の候補点が、ホットスポットの発生点であるか、疑似発生点であるかを決定する精度を向上させることができる。
【0148】
また、設計支援装置100は、具体的には、点間の距離の和が閾値以下になる3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が大きくなるように、補正係数を設定する。または、設計支援装置100は、具体的には、点間の距離の和が閾値以下になる3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が小さくなるように、補正係数を設定する。そして、設計支援装置100は、複数の部分領域のそれぞれに設定された補正係数と、所定数に対する複数の部分領域のそれぞれに含まれる三角形の数の割合を乗算して、複数の部分領域のそれぞれの特徴量を算出する。
【0149】
これにより、設計支援装置100は、配線やViaに関するホットスポットの発生点になるか否かに与える影響の大きい三角形の重みを重くすることができる。結果として、設計支援装置100は、配線やViaに関するホットスポットの発生点の候補点が、ホットスポットの発生点であるか、疑似発生点であるかを決定する精度を向上させることができる。
【0150】
また、設計支援装置100は、具体的には、Viaの頂点を含む3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が大きくなるように、補正係数を設定する。または、設計支援装置100は、具体的には、Viaの頂点を含む3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が小さくなるように、補正係数を設定する。そして、設計支援装置100は、複数の部分領域のそれぞれに設定された補正係数と、所定数に対する複数の部分領域のそれぞれに含まれる三角形の数の割合を乗算して、複数の部分領域のそれぞれの特徴量を算出する。
【0151】
これにより、設計支援装置100は、Viaに関するホットスポットの発生点になるか否かに与える影響の大きい三角形の重みを重くすることができる。結果として、設計支援装置100は、Viaに関するホットスポットの発生点の候補点が、ホットスポットの発生点であるか、疑似発生点であるかを決定する精度を向上させることができる。
【0152】
(ホットスポットの発生点に決定する一例)
次に、
図16を用いて、ホットスポットの発生点に決定する一例について説明する。
【0153】
図16は、ホットスポットの発生点に決定する一例を示す説明図である。設計支援装置100は、組み合わせ情報テーブル1600を参照して、リソSim.によって検出されたホットスポットの発生点の候補点H1が、ホットスポットの発生点であるか、疑似発生点であるかを決定する。
【0154】
組み合わせ情報テーブル1600は、ホットスポットの発生点、または疑似発生点について、過去に算出された特徴量の組み合わせを記憶するテーブルである。組み合わせ情報テーブル1600は、例えば、
図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶領域によって実現される。
【0155】
図16に示すように、組み合わせ情報テーブル1600は、種別項目に対応付けて、特徴量項目を有し、ホットスポットの発生点、または疑似発生点ごとに各項目に情報が設定されることにより、レコード1601〜160kを記憶する。kは、自然数である。レコード1601〜160kは、それぞれ、ホットスポットの発生点、または疑似発生点について、過去に算出された特徴量の組み合わせを示す。
【0156】
種別項目には、特徴量の組み合わせが、ホットスポットの発生点に対応する組み合わせであるか、ホットスポットの疑似発生点に対応する組み合わせであるかを示す情報が記憶される。例えば、ホットスポットの発生点に対応する組み合わせである場合には、種別項目には1が設定される。また、ホットスポットの疑似発生点に対応する組み合わせである場合には、種別項目には−1が設定される。
【0157】
特徴量項目は、複数の部分領域のそれぞれに対応する項目を有する。特徴量項目は、例えば、a−1項目と、a−2項目と、a−3項目と、a−4項目と…を有する。a−1項目には、ホットスポットの発生点に対応する複数の部分領域のうちの部分領域a−1の特徴量、またはホットスポットの疑似発生点に対応する複数の部分領域のうちの部分領域a−1の特徴量が記憶される。a−2項目と、a−3項目と、a−4項目と…も、a−1項目と同様である。
【0158】
組み合わせ情報テーブル1600に記憶された特徴量は、正規化された値である。このため、組み合わせ情報テーブル1600に記憶された特徴量は、大きさの異なる基板について算出された値であっても、比較することができる。このとき、設計支援装置100は、今回算出した三角形の数と、過去に算出された三角形の数とのうち、今回算出した三角形の数が最大の数である場合には、正規化し直すために、組み合わせ情報テーブル1600の特徴量を算出し直すことになる。
【0159】
次に、設計支援装置100は、組み合わせ情報テーブル1600に記憶された複数の部分領域のそれぞれの特徴量の組み合わせの中からホットスポットの発生点の候補点に対応する複数の部分領域のそれぞれの特徴量の組み合わせと類似する組み合わせを探索する。設計支援装置100は、例えば、組み合わせ情報テーブル1600に記憶された複数の部分領域のそれぞれの特徴量の組み合わせとホットスポットの発生点の候補点に対応する複数の部分領域のそれぞれの特徴量の組み合わせとの類似度を、SVMにより算出する。そして、設計支援装置100は、類似度が閾値以上になる類似する組み合わせを探索する。
【0160】
ここで、設計支援装置100は、探索した組み合わせが、ホットスポットの発生点に対応する組み合わせである場合には、ホットスポットの発生点の候補点をホットスポットの発生点に決定する。一方で、設計支援装置100は、探索した組み合わせが、ホットスポットの疑似発生点に対応する組み合わせである場合には、ホットスポットの発生点の候補点をホットスポットの疑似発生点に決定する。
【0161】
これにより、設計支援装置100は、設計者がホットスポットの発生点であるか否かの判定について不慣れであっても、自動でホットスポットの発生点の候補点が、ホットスポットの発生点であるか、疑似発生点であるかを決定することができる。このため、設計者は、ホットスポットの発生点であるか否かの判定について不慣れであってもよく、目視でホットスポットの発生点の候補点を確認しなくてもよくなり、作業量が低減される。
【0162】
また、設計支援装置100は、過去に設計した他の基板におけるホットスポットの発生点について正規化した特徴量を算出し、組み合わせ情報テーブル1600に記憶することができる。このため、設計支援装置100は、今回の基板400と、過去に設計した他の基板との大きさが異なる場合であっても、それぞれについての特徴量を比較することができる。換言すれば、設計支援装置100は、過去に設計した他の基板とは配線の幅や配線の間隔が異なる新たな基板を用いて設計する場合であっても、候補点の周囲の領域の大きさを適宜変更すれば、適応することができる。
【0163】
また、設計支援装置100は、特徴量の組み合わせが類似するか否かに基づいて、ホットスポットの発生点であるか、疑似発生点であるかを判定することができる。このため、設計支援装置100は、過去に設計した他の基板におけるホットスポットの発生点の周囲に形成される配線の形状と、今回の基板400における候補点H1の周囲に形成される配線の形状とが同一でなくても、実際に発生点になるか判定することができる。
【0164】
また、設計支援装置100は、特徴量の組み合わせが類似するか否かに基づいて、ホットスポットの発生点であるか、疑似発生点であるかを判定することができる。このため、設計支援装置100は、組み合わせ情報テーブル1600に、特徴量の組み合わせの全てのパターンを記憶しておかなくてもよく、組み合わせ情報テーブル1600を更新する回数を低減することができる。
【0165】
ここでは、設計支援装置100は、部分領域を矩形外か矩形内かと角度範囲とに基づいて分割したが、これに限らない。例えば、設計支援装置100は、部分領域を矩形外か矩形内かのみに基づいて分割してもよい。これにより、設計支援装置100は、ホットスポットの発生点の候補点の周囲の領域の配線の形状の向きに関わらず、特徴量を算出し、ホットスポットの発生点であるか、疑似発生点であるかを決定することができる。
【0166】
ここで、設計支援装置100は、ホットスポットの発生点とも、疑似発生点とも決定することができなかった場合には、ホットスポットの発生点の候補点の周囲の領域における配線の形状を設計者に通知して、設計者からの操作入力を受け付ける。設計者は、例えば、配線の形状を目視して、ホットスポットの発生点であるか、疑似発生点であるかを示す情報を、設計支援装置100に操作入力する。
【0167】
設計支援装置100は、操作入力を受け付けると、当該情報に基づいて、算出した特徴量の組み合わせを、ホットスポットの発生点、または疑似発生点に対応付けて、組み合わせ情報テーブル1600に追加する。これにより、設計支援装置100は、組み合わせ情報テーブル1600を更新することができる。
【0168】
(設計支援処理手順の一例)
次に、
図17を用いて、設計支援処理手順の一例について説明する。
【0169】
図17は、設計支援処理手順の一例を示すフローチャートである。
図17において、設計支援装置100は、設計データを取得する(ステップS1701)。次に、設計支援装置100は、OPC補正を行う(ステップS1702)。そして、設計支援装置100は、設計データに基づいてリソSim.を行い、ホットスポットの発生点の候補点を検出する(ステップS1703)。
【0170】
次に、設計支援装置100は、設計データに基づいて、いずれかのホットスポットの周囲の領域について、ドロネー図を作成する(ステップS1704)。そして、設計支援装置100は、ドロネー図に関する図形データを作成する(ステップS1705)。
【0171】
次に、設計支援装置100は、ホットスポットの発生点の候補点の周囲の領域を分割した複数の部分領域のそれぞれの特徴量を算出する(ステップS1706)。そして、設計支援装置100は、組み合わせ情報テーブル1600に記憶された特徴量の組み合わせの中に、ホットスポットの発生点の候補点に対応する特徴量の組み合わせと類似する組み合わせがあるか否かを判定する(ステップS1707)。
【0172】
ここで、設計支援装置100は、類似する組み合わせがある場合(ステップS1707:Yes)、組み合わせ情報テーブル1600の種別項目に基づいて、ホットスポットの発生点の候補点を、ホットスポットの発生点、または疑似発生点に決定する(ステップS1708)。そして、設計支援装置100は、ステップS1711の処理に移行する。
【0173】
一方で、設計支援装置100は、類似する組み合わせがない場合(ステップS1707:No)、ホットスポットの発生点の候補点が、ホットスポットの発生点であるか、疑似発生点であるかを示す、ユーザからの操作入力を受け付ける(ステップS1709)。
【0174】
次に、設計支援装置100は、受け付けた操作入力に基づいて、組み合わせ情報テーブル1600に、ホットスポットの発生点の候補点に対応する特徴量の組み合わせを、ホットスポットの発生点、または疑似発生点に対応付けて記憶する(ステップS1710)。そして、設計支援装置100は、ステップS1711の処理に移行する。
【0175】
次に、設計支援装置100は、未処理のホットスポットの発生点の候補点があるか否かを判定する(ステップS1711)。ここで、候補点がある場合(ステップS1711:Yes)、設計支援装置100は、ステップS1706の処理に戻る。一方で、候補点がない場合(ステップS1711:No)、設計支援装置100は、設計支援処理を終了する。
【0176】
以上説明したように、設計支援装置100によれば、設計データに基づいて、配線の各頂点と、各頂点から基板上に形成されるいずれかの配線の辺に対して垂線を引いた場合の辺と垂線との交点とを含む点群から、ドロネー図を作成することができる。これにより、設計支援装置100は、補助点を追加することにより、エラー発生点になりやすい、配線の各頂点の近隣の配線の凹凸が存在する箇所についての三角形の数を増加させ、凹凸が存在する箇所と存在しない箇所とを差別化することができる。このため、設計支援装置100は、配線の各頂点の近隣の配線の凹凸が存在する箇所について解析しやすくすることができる。また、設計支援装置100は、補助点を追加することにより、配線の間が近づいているのに、配線の頂点の数が少ないために三角形の数が少なくなってしまう箇所についての三角形の数を増加させ、当該箇所について解析しやすくすることができる。また、設計支援装置100は、補助点を追加することにより、SBARが挿入できない箇所について解析しやすくすることができる。
【0177】
また、設計支援装置100によれば、図形データに基づいて、三角形の集合のうちで、複数の部分領域のそれぞれに含まれる三角形の数の組み合わせと、記憶装置に記憶された基板上のエラー発生点に対応する三角形の数の組み合わせとを比較することができる。これにより、設計支援装置100は、ドロネー図に関する図形データに基づいて、エラー発生点の候補点が、実際にエラー発生点であるか否かを、精度よく決定することができるようになる。
【0178】
また、設計支援装置100によれば、複数の部分領域のそれぞれに含まれる三角形の数の上限に設定された所定数に対する複数の部分領域のそれぞれに含まれる三角形の数の割合に基づいて複数の部分領域のそれぞれの特徴量を算出することができる。そして、設計支援装置100によれば、算出した特徴量の組み合わせと、記憶装置に記憶された基板上のエラー発生点に対応する特徴量の組み合わせとを比較した結果に基づいて、候補点をエラー発生点に決定することができる。これにより、設計支援装置100は、複数の部分領域のそれぞれに含まれる三角形の数を正規化し、エラー発生点の候補点が、実際にエラー発生点であるか否かを決定する精度を向上させることができる。
【0179】
また、設計支援装置100によれば、算出した特徴量の組み合わせと、記憶装置に記憶された基板上の疑似エラー発生点に対応する特徴量の組み合わせとを比較した結果に基づいて、候補点を疑似エラー発生点に決定することができる。これにより、設計支援装置100は、複数の部分領域のそれぞれに含まれる三角形の数を正規化し、エラー発生点の候補点が、疑似エラー発生点であるか否かを決定する精度を向上させることができる。
【0180】
また、設計支援装置100によれば、各頂点と、各頂点から基板上に形成される配線の辺のうち当該頂点から所定範囲内を通過する辺に対して垂線を引いた場合の当該辺と当該垂線との交点とを含む点群を特定することができる。これにより、設計支援装置100は、配線同士が近づいており、エラー発生点になりやすい箇所には補助点を作成し、他の箇所には補助点を作成しないようにすることができる。そして、設計支援装置100は、エラー発生点の候補点が、実際にエラー発生点であるか、疑似エラー発生点であるかを決定する精度を向上させることができる。また、設計支援装置100は、ドロネー図を作成するのにかかる処理負荷を低減することができる。
【0181】
また、設計支援装置100によれば、所定範囲を、配線間の最小間隔になる所定幅と、配線の所定幅とに基づいて設定することができる。これにより、設計支援装置100は、配線同士が近づいており、エラー発生点になりやすい箇所に補助点を作成することができる。
【0182】
また、設計支援装置100によれば、特定した点群から選択された点間の距離の和が閾値以下になる3点で形成される三角形の集合をあらわすドロネー図に関する図形データを作成することができる。これにより、設計支援装置100は、配線同士が近づいているためにエラー発生点になりやすい箇所に形成された三角形を含む三角形の集合をあらわすドロネー図を作成することができる。そして、設計支援装置100は、エラー発生点の候補点が、実際にエラー発生点であるか、疑似エラー発生点であるかを決定する精度を向上させることができる。
【0183】
また、設計支援装置100によれば、特定した点群から選択された異なる電位の点を含む3点で形成される三角形の集合をあらわすドロネー図に関する図形データを作成することができる。これにより、設計支援装置100は、異なる電位の配線同士が近づいているためにエラー発生点になりやすい箇所に形成された三角形を含む三角形の集合をあらわすドロネー図を作成することができる。そして、設計支援装置100は、エラー発生点の候補点が、実際にエラー発生点であるか、疑似エラー発生点であるかを決定する精度を向上させることができる。
【0184】
また、設計支援装置100によれば、Viaの各頂点を含む点群を特定することができる。そして、設計支援装置100によれば、特定した点群から選択されたViaの頂点を含む3点で形成される三角形の集合をあらわすドロネー図に関する図形データを作成することができる。これにより、設計支援装置100は、Viaのカバレッジ不足のホットスポットの発生点になりやすい位置を解析するための三角形を含む三角形の集合をあらわすドロネー図を作成することができる。
【0185】
また、設計支援装置100によれば、特定した点群から選択された配線の凹部にある頂点を含む3点で形成される三角形の集合をあらわすドロネー図に関する図形データを作成することができる。これにより、設計支援装置100は、配線の凹部以前の部分と凹部以降の部分とが折れ曲がって近づいているために、エラー発生点になりやすい箇所に形成された三角形を含む三角形の集合をあらわすドロネー図を作成することができる。そして、設計支援装置100は、エラー発生点の候補点が、実際にエラー発生点であるか、疑似エラー発生点であるかを決定する精度を向上させることができる。
【0186】
また、設計支援装置100によれば、複数の部分領域を、候補点を中心にして放射状に伸ばした複数の線分によって分割することができる。これにより、設計支援装置100は、角度に基づいて、エラー発生点の候補点の周囲の領域を分割することができる。このため、設計支援装置100は、エラー発生点の候補点からどのような角度にある配線がどのような形状になっているかがエラー発生点へのなりやすさに影響する場合にも適応することができる。
【0187】
また、設計支援装置100によれば、複数の部分領域を、候補点からの距離に基づいて分割することができる。これにより、設計支援装置100は、距離に基づいて、エラー発生点の候補点の周囲の領域を分割することができる。このため、設計支援装置100は、エラー発生点の候補点からどのような距離にある配線がどのような形状になっているかがエラー発生点へのなりやすさに影響する場合にも適応することができる。
【0188】
また、設計支援装置100によれば、候補点からの距離が近い部分領域の方が、候補点からの距離が遠い部分領域に比べて補正係数が大きくなるように、複数の部分領域のそれぞれに補正係数を設定することができる。そして、設計支援装置100によれば、複数の部分領域のそれぞれに設定された補正係数と、所定数に対する複数の部分領域のそれぞれに含まれる三角形の数の割合とに基づいて、複数の部分領域のそれぞれの特徴量を算出することができる。これにより、設計支援装置100は、エラー発生点の候補点に近く、エラー発生点になるか否かに与える影響の大きい位置を解析するための三角形の重みを重くすることができる。結果として、設計支援装置100は、エラー発生点の候補点が、エラー発生点であるか、疑似発生点であるかを決定する精度を向上させることができる。
【0189】
また、設計支援装置100によれば、異なる電位の点を含む3点で形成される三角形を含む部分領域の方が、Viaの頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が大きくなるように、補正係数を設定することができる。または、設計支援装置100によれば、異なる電位の点を含む3点で形成される三角形を含む部分領域の方が、Viaの頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が小さくなるように、補正係数を設定することができる。これにより、設計支援装置100は、配線のショートに関するエラー発生点になるか否かに与える影響の大きい三角形の重みを重くすることができる。結果として、設計支援装置100は、配線のショートに関するエラー発生点の候補点が、エラー発生点であるか、疑似発生点であるかを決定する精度を向上させることができる。
【0190】
また、設計支援装置100によれば、異なる電位の点を含む3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が大きくなるように、補正係数を設定することができる。または、設計支援装置100によれば、異なる電位の点を含む3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が小さくなるように、補正係数を設定することができる。これにより、設計支援装置100は、配線のショートに関するエラー発生点になるか否かに与える影響の大きい三角形の重みを重くすることができる。結果として、設計支援装置100は、配線のショートに関するエラー発生点の候補点が、エラー発生点であるか、疑似発生点であるかを決定する精度を向上させることができる。
【0191】
また、設計支援装置100によれば、点間の距離の和が閾値以下になる3点で形成される三角形を含む部分領域の方が、Viaの頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が大きくなるように、補正係数を設定することができる。これにより、設計支援装置100は、配線やViaに関するエラー発生点になるか否かに与える影響の大きい三角形の重みを重くすることができる。結果として、設計支援装置100は、配線やViaに関するエラー発生点の候補点が、エラー発生点であるか、疑似発生点であるかを決定する精度を向上させることができる。
【0192】
また、設計支援装置100によれば、点間の距離の和が閾値以下になる3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が大きくなるように、補正係数を設定することができる。これにより、設計支援装置100は、配線やViaに関するエラー発生点になるか否かに与える影響の大きい三角形の重みを重くすることができる。結果として、設計支援装置100は、配線やViaに関するエラー発生点の候補点が、エラー発生点であるか、疑似発生点であるかを決定する精度を向上させることができる。
【0193】
また、設計支援装置100によれば、Viaの頂点を含む3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が大きくなるように、補正係数を設定することができる。または、設計支援装置100によれば、Viaの頂点を含む3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて補正係数が小さくなるように、補正係数を設定することができる。これにより、設計支援装置100は、Viaに関するエラー発生点になるか否かに与える影響の大きい三角形の重みを重くすることができる。結果として、設計支援装置100は、Viaに関するエラー発生点の候補点が、エラー発生点であるか、疑似発生点であるかを決定する精度を向上させることができる。
【0194】
ここで、従来の情報処理装置が、パターンマッチングにより、エラー発生点の候補点が、実際にエラー発生点であるか、疑似エラー発生点であるかを決定する場合が考えられる。しかしながら、この場合、エラー発生点の近傍の領域における配線の形状のパターンを記憶するだけでは、エラー発生点の近傍の領域より広い、周囲の領域における配線の形状のパターンがエラー発生点へのなりやすさに影響する場合に適応することが難しい。一方で、エラー発生点の周囲の領域における配線の形状のパターンを全て記憶するようにすると、互いにわずかに異なるだけの複数のパターンであっても全て記憶しなければならず、記憶領域の使用量が膨大になってしまう。
【0195】
また、エラー発生点の近傍の領域における配線の形状のパターンを記憶するだけであっても、想定されるエラー発生点の近傍の領域における配線の形状のパターンを全て記憶することになり、記憶領域の使用量が膨大になってしまう。さらに、配線の形状のパターンを記憶したとしても、設計に用いる基板の大きさ、配線の最小幅、配線の最小間隔などを変更した場合では、配線の形状が拡大・縮小されるため、改めて配線の形状のパターンを記憶し直さなければならなくなる。また、設計者が、予め記憶した配線の形状のパターンと、基板上に形成される配線の形状のパターンとを、目視で比較することになり、設計者がホットスポットの発生点であるか否かの判定について不慣れであると、パターンマッチングの精度が悪くなってしまう。
【0196】
一方で、本実施の形態にかかる設計支援装置100は、エラー発生点、または疑似エラー発生点に対応する複数の部分領域のそれぞれの特徴量の組み合わせを記憶すればよい。そして、設計支援装置100は、算出した特徴量の組み合わせと、記憶しておいた特徴量の組み合わせとが類似するか否かに基づいて、エラー発生点であるか、疑似エラー発生点であるかを判定することができる。これにより、設計支援装置100は、類似する全ての特徴量のパターンを記憶しておかなくてもよく、記憶領域の更新回数を低減することができ、記憶領域の使用量を低減することができる。
【0197】
また、設計支援装置100は、設計に用いる基板の大きさ、配線の最小幅、配線の最小間隔などを変更した場合であっても、候補点の周囲の領域の大きさを変更すれば、記憶しておいた特徴量の組み合わせをそのまま流用することができる。換言すれば、設計支援装置100は、過去に設計した他の基板とは配線の幅や配線の間隔が異なる新たな基板を用いて設計する場合であっても、候補点の周囲の領域の大きさを適宜変更すれば、適応することができる。また、設計支援装置100は、配線の形状のパターンが同一ではない場合であっても、エラー発生点になるか否かを判定することができる。
【0198】
また、設計支援装置100は、設計者がホットスポットの発生点であるか否かの判定について不慣れであっても、自動でホットスポットの発生点の候補点が、ホットスポットの発生点であるか、疑似発生点であるかを決定することができる。このため、設計者は、ホットスポットの発生点であるか否かの判定について不慣れであってもよく、目視でホットスポットの発生点の候補点を確認しなくてもよくなり、作業量が低減される。
【0199】
また、従来の情報処理装置が、補助点を作成せず、配線の各頂点からドロネー図を作成し、複数の部分領域のそれぞれに含まれる三角形の面積などにより、エラー発生点を検出する場合が考えられる。しかしながら、この場合、補助点がないため、配線が隣り合っている位置などをドロネー図で表現することが難しく、エラー発生点を検出する精度が悪くなってしまうことがある。一方で、本実施の形態にかかる設計支援装置100は、エラー発生点になりやすい箇所に補助点を作成することができる。これにより、設計支援装置100は、エラー発生点の候補点が、実際にエラー発生点であるか、疑似エラー発生点であるかを決定する精度を向上させることができる。
【0200】
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【0201】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0202】
(付記1)コンピュータに、
基板上に形成される第1の幅の配線の各頂点を示す設計データを受け付け、
受け付けた前記設計データに基づいて、前記各頂点と、前記各頂点から前記基板上に形成されるいずれかの配線の辺に対して垂線を引いた場合の前記辺と前記垂線との交点とを含む点群を特定し、
特定した前記点群から選択された3点で形成される三角形の集合をあらわすドロネー図に関する図形データを作成する、
処理を実行させることを特徴とする設計支援プログラム。
【0203】
(付記2)前記コンピュータに、
前記設計データに基づいてリソグラフィシミュレーションによって検出された前記基板上のエラー発生点の候補点を取得し、
前記図形データに基づいて、前記三角形の集合のうちで、前記候補点の周囲の領域を分割した複数の部分領域のそれぞれに含まれる三角形の数を算出し、
算出した前記三角形の数の組み合わせと、記憶装置に記憶された基板上のエラー発生点に対応する三角形の数の組み合わせとを比較した結果に基づいて、前記候補点をエラー発生点に決定する、
処理を実行させることを特徴とする付記1に記載の設計支援プログラム。
【0204】
(付記3)前記算出する処理は、さらに、前記複数の部分領域のそれぞれに含まれる三角形の数の上限に設定された第1の数に対する前記複数の部分領域のそれぞれに含まれる三角形の数の割合に基づいて前記複数の部分領域のそれぞれの特徴量を算出し、
前記決定する処理は、算出した前記特徴量の組み合わせと、記憶装置に記憶された基板上のエラー発生点に対応する特徴量の組み合わせとを比較した結果に基づいて、前記候補点をエラー発生点に決定することを特徴とする付記2に記載の設計支援プログラム。
【0205】
(付記4)前記決定する処理は、算出した前記特徴量の組み合わせと、記憶装置に記憶された基板上の疑似エラー発生点に対応する特徴量の組み合わせとを比較した結果に基づいて、前記候補点を疑似エラー発生点に決定することを特徴とする付記3に記載の設計支援プログラム。
【0206】
(付記5)前記特定する処理は、前記各頂点と、前記各頂点から前記基板上に形成される配線の辺のうち当該頂点から第1の範囲内を通過する辺に対して垂線を引いた場合の当該辺と当該垂線との交点とを含む点群を特定することを特徴とする付記1〜4のいずれか一つに記載の設計支援プログラム。
【0207】
(付記6)前記第1の範囲は、配線間の最小間隔になる第1の間隔と、前記配線の前記第1の幅とに基づいて設定されることを特徴とする付記5に記載の設計支援プログラム。
【0208】
(付記7)前記作成する処理は、特定した前記点群から選択された点間の距離の和が閾値以下になる3点で形成される三角形の集合をあらわすドロネー図に関する図形データを作成することを特徴とする付記1〜6のいずれか一つに記載の設計支援プログラム。
【0209】
(付記8)前記作成する処理は、特定した前記点群から選択された異なる電位の点を含む3点で形成される三角形の集合をあらわすドロネー図に関する図形データを作成することを特徴とする付記1〜7のいずれか一つに記載の設計支援プログラム。
【0210】
(付記9)前記点群は、さらに、Viaの各頂点を含むことを特徴とする付記1〜8のいずれか一つに記載の設計支援プログラム。
【0211】
(付記10)前記作成する処理は、特定した前記点群から選択されたViaの頂点を含む3点で形成される三角形の集合をあらわすドロネー図に関する図形データを作成することを特徴とする付記9に記載の設計支援プログラム。
【0212】
(付記11)前記作成する処理は、特定した前記点群から選択された配線の凹部にある頂点を含む3点で形成される三角形の集合をあらわすドロネー図に関する図形データを作成することを特徴とする付記1〜10のいずれか一つに記載の設計支援プログラム。
【0213】
(付記12)前記複数の部分領域は、前記候補点を中心にして放射状に伸ばした複数の線分によって分割されることを特徴とする付記2〜4のいずれか一つに記載の設計支援プログラム。
【0214】
(付記13)前記複数の部分領域は、前記候補点からの距離に基づいて分割されることを特徴とする付記12に記載の設計支援プログラム。
【0215】
(付記14)前記コンピュータに、
前記複数の部分領域のそれぞれの特徴量についての補正係数を、前記候補点からの距離が近い部分領域の方が、前記候補点からの距離が遠い部分領域に比べて値が大きくなるように設定する処理を実行させ、
前記算出する処理は、前記複数の部分領域のそれぞれに設定された補正係数と、前記第1の数に対する前記複数の部分領域のそれぞれに含まれる三角形の数の割合とに基づいて、前記複数の部分領域のそれぞれの特徴量を算出することを特徴とする付記3または4に記載の設計支援プログラム。
【0216】
(付記15)前記設定する処理は、前記複数の部分領域のそれぞれの特徴量についての補正係数を、異なる電位の点を含む3点で形成される三角形を含む部分領域の方が、Viaの頂点を含む3点で形成される三角形を含む部分領域に比べて値が大きくなるか、または小さくなるように設定することを特徴とする付記14に記載の設計支援プログラム。
【0217】
(付記16)前記設定する処理は、前記複数の部分領域のそれぞれの特徴量についての補正係数を、異なる電位の点を含む3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて値が大きくなるか、または小さくなるように設定することを特徴とする付記14または15に記載の設計支援プログラム。
【0218】
(付記17)前記設定する処理は、前記複数の部分領域のそれぞれの特徴量についての補正係数を、点間の距離の和が閾値以下になる3点で形成される三角形を含む部分領域の方が、Viaの頂点を含む3点で形成される三角形を含む部分領域に比べて値が大きくなるか、または小さくなるように設定することを特徴とする付記14〜16のいずれか一つに記載の設計支援プログラム。
【0219】
(付記18)前記設定する処理は、前記複数の部分領域のそれぞれの特徴量についての補正係数を、点間の距離の和が閾値以下になる3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて値が大きくなるか、または小さくなるように設定することを特徴とする付記14〜17のいずれか一つに記載の設計支援プログラム。
【0220】
(付記19)前記設定する処理は、前記複数の部分領域のそれぞれの特徴量についての補正係数を、Viaの頂点を含む3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて値が大きくなるか、または小さくなるように設定することを特徴とする付記14〜18のいずれか一つに記載の設計支援プログラム。
【0221】
(付記20)コンピュータに、
基板上に形成される第1の幅の配線の各頂点を示す設計データに基づいてリソグラフィシミュレーションによって検出された前記基板上のエラー発生点の候補点を取得し、
前記各頂点を含む点群から選択された3点で形成される三角形の集合をあらわすドロネー図に関する図形データに基づいて、前記三角形の集合のうちで、前記候補点の周囲の領域を分割した複数の部分領域のそれぞれに含まれる三角形の数を算出し、
算出した前記三角形の数の組み合わせと、記憶装置に記憶された基板上のエラー発生点に対応する三角形の数の組み合わせとを比較した結果に基づいて、前記候補点をエラー発生点に決定する、
処理を実行させることを特徴とする設計支援プログラム。
【0222】
(付記21)前記点群は、前記各頂点と、前記各頂点から前記基板上に形成されるいずれかの配線の辺に対して垂線を引いた場合の前記辺と前記垂線との交点とを含む点群であることを特徴とする付記20に記載の設計支援プログラム。
【0223】
(付記22)前記算出する処理は、さらに、前記複数の部分領域のそれぞれに含まれる三角形の数の上限に設定された第1の数に対する前記複数の部分領域のそれぞれに含まれる三角形の数の割合に基づいて前記複数の部分領域のそれぞれの特徴量を算出し、
前記決定する処理は、算出した前記特徴量の組み合わせと、記憶装置に記憶された基板上のエラー発生点に対応する特徴量の組み合わせとを比較した結果に基づいて、前記候補点をエラー発生点に決定することを特徴とする付記20または21に記載の設計支援プログラム。
【0224】
(付記23)前記決定する処理は、算出した前記特徴量の組み合わせと、記憶装置に記憶された基板上の疑似エラー発生点に対応する特徴量の組み合わせとを比較した結果に基づいて、前記候補点を疑似エラー発生点に決定することを特徴とする付記22に記載の設計支援プログラム。
【0225】
(付記24)前記複数の部分領域は、前記候補点を中心にして放射状に伸ばした複数の線分によって分割されることを特徴とする付記20〜23のいずれか一つに記載の設計支援プログラム。
【0226】
(付記25)前記複数の部分領域は、前記候補点からの距離に基づいて分割されることを特徴とする付記20〜24のいずれか一つに記載の設計支援プログラム。
【0227】
(付記26)前記コンピュータに、
前記複数の部分領域のそれぞれの特徴量についての補正係数を、前記候補点からの距離が近い部分領域の方が、前記候補点からの距離が遠い部分領域に比べて値が大きくなるように設定する処理を実行させ、
前記算出する処理は、前記複数の部分領域のそれぞれに設定された補正係数と、第1の数に対する前記複数の部分領域のそれぞれに含まれる三角形の数の割合とに基づいて、前記複数の部分領域のそれぞれの特徴量を算出することを特徴とする付記22または23に記載の設計支援プログラム。
【0228】
(付記27)前記設定する処理は、前記複数の部分領域のそれぞれの特徴量についての補正係数を、異なる電位の点を含む3点で形成される三角形を含む部分領域の方が、Viaの頂点を含む3点で形成される三角形を含む部分領域に比べて値が大きくなるか、または小さくなるように設定することを特徴とする付記26に記載の設計支援プログラム。
【0229】
(付記28)前記設定する処理は、前記複数の部分領域のそれぞれの特徴量についての補正係数を、異なる電位の点を含む3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて値が大きくなるか、または小さくなるように設定することを特徴とする付記26または27に記載の設計支援プログラム。
【0230】
(付記29)前記設定する処理は、前記複数の部分領域のそれぞれの特徴量についての補正係数を、点間の距離の和が閾値以下になる3点で形成される三角形を含む部分領域の方が、Viaの頂点を含む3点で形成される三角形を含む部分領域に比べて値が大きくなるか、または小さくなるように設定することを特徴とする付記26〜28のいずれか一つに記載の設計支援プログラム。
【0231】
(付記30)前記設定する処理は、前記複数の部分領域のそれぞれの特徴量についての補正係数を、点間の距離の和が閾値以下になる3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて値が大きくなるか、または小さくなるように設定することを特徴とする付記26〜29のいずれか一つに記載の設計支援プログラム。
【0232】
(付記31)前記設定する処理は、前記複数の部分領域のそれぞれの特徴量についての補正係数を、Viaの頂点を含む3点で形成される三角形を含む部分領域の方が、配線の凹部にある頂点を含む3点で形成される三角形を含む部分領域に比べて値が大きくなるか、または小さくなるように設定することを特徴とする付記26〜30のいずれか一つに記載の設計支援プログラム。
【0233】
(付記32)コンピュータが、
基板上に形成される第1の幅の配線の各頂点を示す設計データを受け付け、
受け付けた前記設計データに基づいて、前記各頂点と、前記各頂点から前記基板上に形成されるいずれかの配線の辺に対して垂線を引いた場合の前記辺と前記垂線との交点とを含む点群を特定し、
特定した前記点群から選択された3点で形成される三角形の集合をあらわすドロネー図に関する図形データを作成する、
処理を実行することを特徴とする設計支援方法。
【0234】
(付記33)コンピュータが、
基板上に形成される第1の幅の配線の各頂点を示す設計データに基づいてリソグラフィシミュレーションによって検出された前記基板上のエラー発生点の候補点を取得し、
前記各頂点を含む点群から選択された3点で形成される三角形の集合をあらわすドロネー図に関する図形データに基づいて、前記三角形の集合のうちで、前記候補点の周囲の領域を分割した複数の部分領域のそれぞれに含まれる三角形の数を算出し、
算出した前記三角形の数の組み合わせと、記憶装置に記憶された基板上のエラー発生点に対応する三角形の数の組み合わせとを比較した結果に基づいて、前記候補点をエラー発生点に決定する、
処理を実行することを特徴とする設計支援方法。
【0235】
(付記34)基板上に形成される第1の幅の配線の各頂点を示す設計データを受け付け、
受け付けた前記設計データに基づいて、前記各頂点と、前記各頂点から前記基板上に形成されるいずれかの配線の辺に対して垂線を引いた場合の前記辺と前記垂線との交点とを含む点群を特定し、
特定した前記点群から選択された3点で形成される三角形の集合をあらわすドロネー図に関する図形データを作成する、
制御部を有することを特徴とする設計支援装置。
【0236】
(付記35)基板上に形成される第1の幅の配線の各頂点を示す設計データに基づいてリソグラフィシミュレーションによって検出された前記基板上のエラー発生点の候補点を取得し、
前記各頂点を含む点群から選択された3点で形成される三角形の集合をあらわすドロネー図に関する図形データに基づいて、前記三角形の集合のうちで、前記候補点の周囲の領域を分割した複数の部分領域のそれぞれに含まれる三角形の数を算出し、
算出した前記三角形の数の組み合わせと、記憶装置に記憶された基板上のエラー発生点に対応する三角形の数の組み合わせとを比較した結果に基づいて、前記候補点をエラー発生点に決定する、
制御部を有することを特徴とする設計支援装置。