JP6107059B2 - Layout pattern correction method - Google Patents
Layout pattern correction method Download PDFInfo
- Publication number
- JP6107059B2 JP6107059B2 JP2012242617A JP2012242617A JP6107059B2 JP 6107059 B2 JP6107059 B2 JP 6107059B2 JP 2012242617 A JP2012242617 A JP 2012242617A JP 2012242617 A JP2012242617 A JP 2012242617A JP 6107059 B2 JP6107059 B2 JP 6107059B2
- Authority
- JP
- Japan
- Prior art keywords
- opc
- area
- processing
- functional block
- layout pattern
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Exposure And Positioning Against Photoresist Photosensitive Materials (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Preparing Plates And Mask In Photomechanical Process (AREA)
Description
本発明は、レイアウトパターンの補正方法に関する。 The present invention relates to a layout pattern correction method.
フォトマスク上に数十nm間隔で配置されたパターンをレジスト膜に転写すると、フォトマスク上のパターンとは異なった形状を有するレジストパターンが形成される。このようなパターン形状の変形は、フォトマスク上のパターンを光近接効果補正(Optical Proximity Correction; 以下OPC処理と呼ぶ)することで抑制される。 When a pattern arranged at intervals of several tens of nanometers on a photomask is transferred to a resist film, a resist pattern having a shape different from the pattern on the photomask is formed. Such deformation of the pattern shape is suppressed by performing optical proximity correction (hereinafter referred to as OPC processing) on the pattern on the photomask.
OPC処理は、コンピュータにより行われる。しかしコンピュータが一度にOPC処理できるパターン数は、コンピュータのメモリ容量によって制限される。そこでフォトマスクのパターンは複数の領域(以下、OPCエリアと呼ぶ)に分割され、複数のコンピュータが並列してそれぞれのOPCエリアをOPC処理する。 The OPC process is performed by a computer. However, the number of patterns that the computer can perform OPC at a time is limited by the memory capacity of the computer. Therefore, the photomask pattern is divided into a plurality of regions (hereinafter referred to as OPC areas), and a plurality of computers perform OPC processing on the respective OPC areas in parallel.
集積回路が微細化すると、フォトマスクのパターン密度は増加する。するとOPCエリア内のパターン数が増加し、OPC処理に使用されるメモリ量が増加する。その結果、メモリ不足によりOPC処理に障害をきたし易くなる。 When the integrated circuit is miniaturized, the pattern density of the photomask increases. Then, the number of patterns in the OPC area increases, and the amount of memory used for OPC processing increases. As a result, the OPC process is liable to be damaged due to a memory shortage.
そこで集積回路が微細化すると、フォトマスクパターンの分割数を増やしてOPC処理が行われる。フォトマスクパターンの分割数が増加すると、OPCエリアが小さくなる。するとOPCエリア内のパターン数が減少し、OPC処理に使用されるメモリ量が抑制される。このため、OPC処理に障害をきたし難くなる。 Therefore, when the integrated circuit is miniaturized, the OPC process is performed by increasing the number of divisions of the photomask pattern. When the division number of the photomask pattern you increase, OPC area decreases. Then, the number of patterns in the OPC area decreases, and the amount of memory used for the OPC process is suppressed. For this reason, it becomes difficult to cause an obstacle to the OPC processing.
しかしOPCエリアの処理時間は、分割数に反比例して減少しない。分割数がN倍になった時の一OPCエリア当たりの処理時間は、分割前の処理時間の1/Nより長い。このためフォトマスクパターンの分割数が増加すると、フォトマスク全体のOPC処理時間が長くなる。 However, the processing time of the OPC area does not decrease in inverse proportion to the number of divisions. The processing time per OPC area when the number of divisions is N times is longer than 1 / N of the processing time before the division. For this reason, when the number of divisions of the photomask pattern increases, the OPC processing time of the entire photomask becomes longer.
上記の問題を解決するために、本方法の一観点によれば、集積回路のレイアウトパターンから機能ブロックに対応する機能ブロック領域を検出する工程と、前記機能ブロック領域のパターン密度に基づいて、前記機能ブロック領域を分割するサイズを決定する工程と、前記機能ブロック領域を、決定された前記サイズに分割して単位エリアを生成する工程と、前記単位エリアをコンピュータにOPC処理させる工程とを有するレイアウトパターンの補正方法が提供される。 In order to solve the above problem, according to one aspect of the present method, the step of detecting a functional block area corresponding to a functional block from a layout pattern of an integrated circuit, and the pattern density of the functional block area, A layout including a step of determining a size for dividing a functional block region, a step of generating a unit area by dividing the functional block region into the determined size, and a step of causing a computer to perform OPC processing on the unit area pattern of correction how is provided.
開示の方法によれば、フォトマスクパターンのOPC処理にかかる時間が短くなる。 According to the disclosed method, the time required for the OPC processing of the photomask pattern is shortened.
以下、図面にしたがって本発明の実施の形態について説明する。但し、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。尚、図面が異なっても対応する部分には同一の符号を付し、その説明を省略する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. However, the technical scope of the present invention is not limited to these embodiments, but extends to the matters described in the claims and equivalents thereof. Note that, even if the drawings are different, corresponding parts are denoted by the same reference numerals, and description thereof is omitted.
(1)パターン補正装置
図1は、実施の形態のパターン補正方法を実行するパターン補正装置2の構成図である。
(1) Pattern Correction Device FIG. 1 is a configuration diagram of a
パターン補正装置2は図1に示すように、マスターマシン4と、マスターマシン4の命令に従ってOPC処理を実行するスレーブマシン6と、マスターマシン4とスレーブマシン6を接続するネットワーク8とを有する。マスターマシン4およびスレーブマシン6は、コンピュータである。
As shown in FIG. 1, the
パターン補正装置2は、マスターマシン4によりレイアウトパターン(フォトマスク全体のパターン)を複数の領域に分割し、分割された領域をスレーブマシン6に並列処理させる。
The
―マスターマシン―
図2は、マスターマシン4の構成図である。
―Master machine―
FIG. 2 is a configuration diagram of the
マスターマシン4は、例えばCPU(Central Processing Unit)10と、ROM(Read Only Memory)12と、RAM(Random Access Memory)14と、ハードディスクを有するHDD(Hard Disk Drive)16とを有する。HDD16は、コンピュータにより読取可能な記録媒体である。
The
さらにマスターマシン4は、ネットワークインターフェース18と、キーボードやマウスなどの入力機器20と、表示装置22と、バス24とを有する。バス24には、上記各装置(CPU等)が接続される。
The
RAM14は、CPU10が直接アクセスできる主記憶装置(メインメモリ)である。HDD16は、補助記憶装置である。マスターマシン4は、DVDD(Digital Versatile Disc Driver)などの他の補助記憶装置を有してもよい。DVDDには、DVD−R(Digital Versatile Disk Recordable)などの記録媒体が装着される。
The
CPU10はHDD16を制御するとともに、HDD16に記録されたプログラムをRAM14にロードし、ロードされたプログラムを実行する。RAM14にはプログラム以外にも、CPU10がプログラムを実行する際の途中データが一時的に記録される。
The
ROM12には、CPU10が実行する基本的なプログラム等が記録されている。
The
HDD16には、実施の形態のパターン補正方法をCPU10に実行させるレイアウトパターン補正プログラム26が記録されている。レイアウトパターン補正プログラムは、CPU10が実行可能なプログラムである。
The
―スレーブマシン―
スレーブマシン6の構成は、図2に示すマスターマシン4の構成と略同じである。ただしスレーブマシン6のHDDには、マスターマシン4の命令に応答してOPC処理を実行するOPCプログラムが記録されている。
―Slave machine―
The configuration of the
マスターマシン4とスレーブマシン6を有するコンピュータ群は、マスターマシン4のCPU10がレイアウトパターン補正プログラム26を実行するとともにスレーブマシンのCPUがOPCプログラムを実行することで、パターン補正装置になる。
The computer group having the
(2)パターン補正方法
図3〜5は、実施の形態のレイアウトパターン補正方法のフローチャートの一例である。
(2) Pattern Correction Method FIGS. 3 to 5 are examples of a flowchart of the layout pattern correction method according to the embodiment.
(i)前工程(S2〜S4)
マスターマシン4は、まずフォトマスクのパターン(以下、レイアウトパターンと呼ぶ)を取得する。取得されるレイアウトパターンは、集積回路の形成に用いられる複数のフォトマスクそれぞれのパターンを有している。
(I) Previous process (S2 to S4)
First, the
具体的にはマスターマシン4は図3に示すように、ネットワーク8を介して集積回路の形成に用いられるフォトマスクの図形データ(以下、レイアウトデータと呼ぶ)を取得する(S2)。取得されたレイアウトデータは、例えばHDD16に記録される。
Specifically, as shown in FIG. 3, the
レイアウトデータは、例えばフォトマスクに含まれる各パターンの「形状」を表す形状情報と各パターンの「座標」と各パターンが含まれる「レイヤー」を表すレイヤー情報とを有する。「レイヤー」は、集積回路の形成に用いられる複数のフォトマスクを識別する識別子である。 The layout data includes, for example, shape information representing “shape” of each pattern included in the photomask, “coordinates” of each pattern, and layer information representing “layer” including each pattern. “Layer” is an identifier for identifying a plurality of photomasks used for forming an integrated circuit.
「形状」は例えば、多角形である。「座標」は例えば、各パターンの頂点座標である。レイヤーの識別子は例えば、層番号と型番号である。レイアウトデータのフォーマットは例えば、GDS II(Graphic Design System II)またはOASIS(Open Artwork System Interchange Standard)である。 The “shape” is, for example, a polygon. “Coordinates” are, for example, vertex coordinates of each pattern. The layer identifier is, for example, a layer number and a model number. The layout data format is, for example, GDS II (Graphic Design System II) or OASIS (Open Artwork System Interchange Standard).
マスターマシン4はさらに、ネットワーク8を介して該レイアウトデータに対応するネットリストを取得する(S2)。取得されたネットリストは、例えばHDD16に記録される。
The
マスターマシン4はさらに、ネットワーク8を介して上記レイアウトデータに対応するネーミングルールを取得する(S2)。取得されたネーミングルールは、例えばHDD16に記録される。
The
マスターマシン4はさらに、OPC処理するレイヤーの識別情報を取得する(S2)。具体的には例えばレイヤー名(例えば、「第1金属層」)がマスクパターンの設計者により、入力機器20によりマスターマシン4に入力される。入力された識別情報は、例えば上記識別子に変換されHDD16に記録される。
The
以後「レイアウトパターン」とは、取得されたレイヤー識別情報に対応するフォトマスク全体のパターンを意味する。「レイアウトデータ」とは、このレイアウトパターンのデータである。 Hereinafter, the “layout pattern” means a pattern of the entire photomask corresponding to the acquired layer identification information. “Layout data” is data of this layout pattern.
さらにマスターマシン4は図3に示すように、ネットワーク8に接続された各コンピュータに問い合わせてOPC処理の実行が可能な装置の識別情報(ホスト名など)を取得する(S4)。取得された識別情報は例えば、HDD16に記録される。OPC処理の実行が可能なコンピュータの識別情報は、予めHDD16に記録されていてもよい。取得された識別情報に対応するコンピュータは、スレーブマシン6として利用される。
Further, as shown in FIG. 3, the
(ii)機能ブロック領域の検出(S6)
図6は、集積回路のレイアウトパターン28を説明する図である。
(Ii) Function block area detection (S6)
FIG. 6 is a diagram for explaining the
ASIC(Application Specific Integrated Circuit)など集積回路は、一定の機能を有する機能ブロック(例えば、SRAM(Static Random Access Memory)やCPUなど)を含んでいる。このような集積回路のレイアウトパターン28は図6に示すように、機能ブロックに対応する機能ブロック領域30を含んでいる。
An integrated circuit such as an ASIC (Application Specific Integrated Circuit) includes a functional block having a certain function (for example, an SRAM (Static Random Access Memory) or a CPU). As shown in FIG. 6, the integrated
マスターマシン4は、集積回路のレイアウトパターン28から機能ブロックに対応する機能ブロック領域30を検出する(S6)。
The
具体的には例えばマスターマシン4はまず、レイアウトパターン28に対応するネットリスト(結線情報)からセル名を検出する。
Specifically, for example, the
図7は、ネットリストの構成を示す図である。集積回路は、集積回路に含まれる各ゲート(論理ゲートやバッファなど)の端子(ピン)がどのように接続されているかを示す結線情報により表される。 FIG. 7 is a diagram showing the configuration of the net list. Integrated circuit is represented by connection information indicating terminals of the gate (such as logic gates and buffers) included in the integrated circuit (pin) is any good urchin connection.
ネットリストには図7に示すように、各機能ブロックの結線情報32が記録されている。ネットリストはさらに、ネット名34とセル名36とを有している。ネット名34は、機能ブロックの整理番号である。セル名36は、機能ブロックのネットリスト上の名称である。ネット名34およびセル名36は、結線情報32に対応している。
As shown in FIG. 7,
機能ブロック領域30(図6参照)内の各パターンのデータ(形状情報、座標、レイヤー情報;以後、パターンデータと呼ぶ)は、ネットリストのセル名36が対応付けられている。
Each pattern data (shape information, coordinates, layer information; hereinafter referred to as pattern data) in the functional block area 30 (see FIG. 6) is associated with a
マスターマシン4はまず、ステップS2で取得したネットリストからセル名36を検出する。マスターマシン4はネットリストから検出したセル名36をキーとして、ステップS2で取得したレイアウトデータを検索して、各機能ブロック領域30内のパターンに対応するパターンデータを検出する。マスターマシン4は検出したパターンデータに基づいて、各機能ブロック領域30の位置座標(例えば、対角する頂点の座標)を算出する。
First, the
図8は、ネーミングルール38を説明する図である。ネーミングルール38は、セル名36とデバイスパターン40の対応関係を示すデータである。デバイスパターン38は、機能ブロックの名称(以下、機能ブロック名と呼ぶ)である。デバイスパターン40から、機能ブロックの機能や最小線幅などを知ることができる。
FIG. 8 is a diagram for explaining the naming
マスターマシン4はステップS2で取得したネーミングルール38を検索して、ネットリストから検出したセル名36に対応するデバイスパターン40を検出する。
The
マスターマシン4は、算出した機能ブロック領域30の位置座標と検出したデバイスパターン40とを有する機能ブロック領域30の位置データを生成する。図9は、機能ブロック領域30の位置データ42を説明するテーブルである。
The
機能ブロック領域30の位置データ42は例えば図9に示すように、機能ブロック名44(すなわち、デバイスパターン40)を有する複数のデータ(例えば、レコード)を有する。該データはそれぞれ、機能ブロック名44と、機能ブロック名44に対応する機能ブロック領域30の左下頂点の位置座標46と、該機能ブロック名44に対応する機能ブロック領域30の右上頂点の位置座標48とを有する。座標の単位は、例えばμmである。
The
機能ブロック領域30の位置データ42を参照することで、機能ブロック領域30の位置と機能ブロック30の最小線幅などを知ることができる。
By referring to the
(iii)分割工程(S8〜S12)
図10〜13は、レイアウトパターンの分割工程を説明する図である。
(Iii) Division process (S8 to S12)
10 to 13 are diagrams for explaining a layout pattern dividing step.
図6に示すように、集積回路のレイアウトパターン28は多くの場合、複数の機能ブロック領域30を有している。第1機能ブロック領域30a〜第3機能ブロック領域30cは、例えばSRAMに対応する領域である。第4機能ブロック領域30dは、例えばロジック回路に対応する領域である。第5機能ブロック領域30eは、例えば入出力回路に対応する領域である。
As shown in FIG. 6, the
図10(a)には、第1機能ブロック領域30a内の一部分が示されている。図10(b)には、第5機能ブロック領域30e内の一部分が示されている。図10(a)及び(b)に示すように、第1機能ブロック領域30a内のパターン50の線幅と第5機能ブロック領域30eのパターン52の線幅は異なる。第2機能ブロック領域30b〜第4機能ブロック領域30d内のパターンの線幅も、他のブロック内の線幅とは異なる。
FIG. 10A shows a part in the first functional block region 30a. FIG. 10B shows a part in the fifth functional block region 30e. As shown in FIGS. 10A and 10B, the line width of the
―単位サイズの決定(S8)―
機能ブロックの最小線幅は、その機能および世代(例えば、65nm世代)に応じて固有の値を有する。マスターマシン4は、機能ブロック領域30を分割する単位エリアのサイズを、機能ブロック領域30ごとに決定する(S8)。マスターマシン4はさらに、機能ブロック領域30の外側の領域(以下、機能ブロック外領域と呼ぶ)を分割する単位エリアのサイズを決定する(S8)。最小線幅に基づいて単位エリアのサイズを決定することにより、単位エリアに含まれるパターンのデータ量を概ねねらい値に揃えることができる。それにより、コンピュータでOPC処理する際に必要となるメモリ量がある程度予測することができ、後述する再測定(S20)および単位サイズの再設定の手間を抑制することができる。
-Determination of unit size (S8)-
The minimum line width of a functional block has a unique value depending on its function and generation (for example, 65 nm generation). The
単位エリアは、一定のサイズを有する領域である。単位エリアのサイズとは例えば、単位エリアが矩形領域の場合、各辺の一定の長さである。単位エリアのサイズは以後、単位サイズと呼ばれる。 The unit area is an area having a certain size. The size of the unit area is, for example, a certain length of each side when the unit area is a rectangular area. The unit area size is hereinafter referred to as a unit size.
単位サイズは例えば、各機能ブロック(機能ブロック領域30に対応する機能ブロック)の最小線幅の数倍(例えば、4〜10倍)の辺長である。マスターマシン4は、決定した単位サイズを有する単位サイズデータを生成する。図11は、単位サイズデータ54を説明するテーブルである。
The unit size is, for example, a side length several times (for example, 4 to 10 times) the minimum line width of each functional block (functional block corresponding to the functional block region 30). The
単位サイズデータ54は図11に示すように、機能ブロック名44または機能ブロック外領域の名称56に対応するブロック名58と該ブロック名58に対応する領域の単位サイズ60とをそれぞれ有する複数のデータ(例えば、レコード)を有する。単位サイズの単位は、例えばμmである。例えば「SRAM1」の単位サイズは、縦6.5μm、横6.5μmである。
As shown in FIG. 11, the
各機能ブロック領域の最小線幅は、例えば入力機器20からマスターマシン4に入力される。具体的には例えばマスターマシン4は、ステップS6で検出した機能ブロック名44を表示装置22に表示する。するとマスクパターンの設計者は、機能ブロック名44から判明する各機能ブロックの最小線幅をマスターマシン4に入力する。
The minimum line width of each functional block area is input from the
―処理対象ブロックの決定(S10)―
マスターマシン4は単位サイズデータ54(図11)を参照して例えば、OPC処理が行われていない機能ブロック領域30のうち単位サイズ60が最も小さいものを、OPC処理を行うブロック(以下、処理対処ブロックと呼ぶ)に決定する(S10)。図11に示す例では、マスターマシン4はブロック名「SRAM1」に対応する第1機能ブロック30a(図6)を選択する。
-Determination of processing target block (S10)-
For example, the
単位サイズ60が最も小さい機能ブロック領域を処理対象ブロックに選択することで、メモリ不足によりOPC処理に障害をきたさないかを早期に検知することができる。
By selecting the functional block area having the
―機能ブロックの分割(S12)―
次にマスターマシン4は図12に示すように、選択された機能ブロック領域30を単位エリア62に分割する(S12)。単位エリア62は上述したように、単位サイズ60を有する領域である。
―Division of functional blocks (S12) ―
Next, as shown in FIG. 12, the
さらにマスターマシン4は、分割された単位エリア62の位置などを表すデータ64(以下、単位エリアデータと呼ぶ)を生成する。図13は、単位エリアデータ64を説明するテーブルである。図13に示すように単位エリアデータ64は例えば、単位エリア62の対角する頂点の座標66と処理状況68とメモリ使用量70とをそれぞれ有する複数のデータ(例えば、レコード)を有している。
Further, the
頂点座標66は例えば、単位エリア62の左下の頂点座標と単位エリア62の右上の頂点座標である。処理状況68は、各単位エリア62のOPC処理が開始済み(すなわち、各単位エリア62のOPC処理をスレーブマシン6に命令済み)であるか否かを示す。OPC処理が終了している場合も、「OPC処理は開始済み」である。
The vertex coordinates 66 are, for example, the lower left vertex coordinates of the
処理状況68の初期値は、未処理である。メモリ使用量70は、各単位エリア62のOPC処理に使われるメモリ量である。メモリ使用量70の初期値は、ヌル・データである。
The initial value of the
(iv)同時処理数の決定工程(S14〜S26)
図14及び15は、同時処理数の決定工程を説明する図である。
(Iv) Step of determining the number of simultaneous processes (S14 to S26)
14 and 15 are diagrams for explaining the process of determining the number of simultaneous processes.
―メモリ使用量の測定(S14)―
マスターマシン4は図14に示すように、機能ブロック領域30から分割された複数の単位エリア62から、複数のエリア72(以下、サンプルエリアと呼ぶ)を選択する。サンプルエリア72の数は例えば、ステップS4で識別子を取得したスレーブマシン6と同数である。サンプルエリア72の数は、スレーブマシン6の数より少なくてもよい。
-Measurement of memory usage (S14)-
As shown in FIG. 14, the
マスターマシン4は、ステップS4で取得した識別子に対応するスレーブマシン6それぞれに、サンプルエリア72のOPC処理を行わせる。各スレーブマシン6は、異なるサンプルエリア72をOPC処理する。尚、あるエリア(領域)をOPC処理するとは、該エリア内のパターンをOPC処理することを意味する。
The
各スレーブマシン6は、OPC処理に使用されたメモリ使用量をマスターマシン4に送信する。メモリ使用量は、例えば各スレーブマシン6のOS(Operating System)により検出される。各スレーブマシン6はさらに、OPC処理されたサンプルエリア72のパターンデータをマスターマシン4に送信する。
Each
各スレーブマシン6のOPC処理プログラムは、略同じものである。したがって各スレーブマシン6のメモリ使用量は、処理対象ブロックが同じであれば略同じである。
The OPC processing program of each
マスターマシン4は各サンプルエリア72のメモリ使用量を受信すると、単位エリアデータ64(図13参照)のメモリ使用量70を受信したメモリ使用量で書き換える。具体的にはマスターマシン4は、OPC処理された各サンプルエリア72の頂点座標66に対応するメモリ使用量70の初期値(ヌルデータ)を、該各サンプルエリア72をOPC処理したスレーブマシン6のメモリ使用量で置き換える。
When the
マスターマシン4はさらに、図15に示すように、単位エリアデータ64の処理状況68を変更する。具体的にはマスターマシン4は、(OPC処理が行われた)各サンプルエリア72に対応する処理状況68を、OPC処理の開始済みを意味する「完了」に変更する。
The
マスターマシン4はさらに、OPC処理された各サンプルエリア72のパターンデータを有するレイアウトデータ(以下、OPCデータと呼ぶ)を生成する。OPCデータのフォーマットは例えば、GDS IIまたはOASISである。OPCデータのフォーマットは、GDS IIまたはOASISへの変換が可能な他のフォーマットであってもよい。
The
このような手順によりマスターマシン4は、選択された複数のエリア(サンプルエリア72)それぞれにおけるOPC処理のメモリ使用量(主記憶装置におけるメモリ使用量)を測定する(S14)。なお後述するように、マスターマシン4は単位サイズを縮小して、メモリ使用量を再測定することがある。
By such a procedure, the
サンプルエリア72の一部(例えば、半数)は、パターン密度が高くなり易い機能ブロック領域30の中央部から選択されることが好ましい。
A part (for example, half) of the sample area 72 is preferably selected from the central part of the
メモリ使用量は、全てのサンプルエリア72について測定されることが好ましい。しかし所定の時間内に全ての測定が終了しない場合には、マスターマシン4は全サンプルエリアのうちの一定数(例えば、7〜8割)の測定が終了した時点で、ステップ14を終了してもよい。
The memory usage is preferably measured for all sample areas 72. However, if all the measurements are not completed within a predetermined time, the
―最大メモリ使用量の検出(S16)―
マスターマシン4は、ステップS14でメモリ使用量が記録された単位エリアデータ64(図15)を参照して、ステップS14で測定されたメモリ使用量のうち最大のメモリ使用量(以下、最大メモリ使用量と呼ぶ)を検出する(S16)。
-Detection of maximum memory usage (S16)-
The
―判断(S18)―
マスターマシン4は、各スレーブマシン6のOPC処理に使用可能なメモリ容量(以下、使用可能メモリ量と呼ぶ)が最大メモリ使用量以上であるか判断する(S18)。
-Judgment (S18)-
The
使用可能メモリ量は例えば、スレーブマシン6の空きメモリ量に一定の係数(例えば、0.8)を掛け算して得られるメモリ量である。空きメモリ量とは、アプリケーションプログラムを実行していないスレーブマシン6で使用されていないメモリの量である。使用可能メモリ量は、予測値である。
The usable memory amount is, for example, a memory amount obtained by multiplying the free memory amount of the
―再測定(S20)―
各スレーブマシン6の使用可能メモリ量にステップS16で検出した最大メモリ使用量より小さいものが存在する場合、マスターマシン4は単位サイズ60(図11)を縮小する(S20)。その後マスターマシン4はステップS12に戻り、メモリ使用量を再測定する(S12〜S16)。
-Remeasurement (S20)-
If there is a usable memory amount of each
―処理命令先マシンの決定(S22)―
各スレーブマシン6の使用可能メモリ量が全て最大メモリ使用量以上の場合、マスターマシン4は、各スレーブマシン6にOPC処理の実行が可能か問い合わせる。
-Determination of processing instruction destination machine (S22)-
When the usable memory amount of each
スレーブマシン6はOPC処理の実行が可能な場合、OPC処理の実行が可能であることをマスターマシン4に回答する。スレーブマシン6はさらに、回答時点での空きメモリ量をマスターマシン4に報告する。スレーブマシン6は、先に命令されたOPC処理の実行中などの理由で新たなOPC処理の実行が困難な場合、新たなOPC処理の実行が困難であることをマスターマシン4に回答する。
When the
マスターマシン4は例えば、OPC処理の実行が可能であると最初に回答したスレーブマシン6を、OPC処理の命令先に決定する(S22)。マスターマシン4はさらに、OPC処理の実行が可能と回答したスレーブマシンの数(以下、並列数と呼ぶ)をカウントし記録する。
For example, the
―同時処理数の算出(S24)―
マスターマシン4は、OPC処理の実行が可能と回答した各スレーブマシン6が報告した空きメモリ量から、該報告時点での該スレーブマシン6の使用可能メモリ量M1(ステップS18参照)を算出する。マスターマシン4はさらに、算出した使用可能メモリ量M1をステップS16で検出した最大メモリ使用量M2で割り算して、各スレーブマシン6の同時処理数C(=M1/M2)を算出する(S24)。割り算の結果が整数でない場合には、少数点以下は切り捨てられる。スレーブマシン6が多コアマシンの場合、同時処理数Cは、使用可能メモリ量M1を最大メモリ使用量M2とコア数で割り算した数である。
-Calculation of the number of simultaneous processes (S24)-
The
算出された同時処理数Cは、各スレーブマシン6がメモリ不足を起こさずに同時にOPC処理できる単位エリア62の最大数である。
The calculated simultaneous processing number C is the maximum number of
―同時処理数の検査(S26)―
同時処理数Cが1以上の場合、同時処理数と同数の単位エリア62を有する領域(以下、処理エリアと呼ぶ)をスレーブマシン6がOPC処理しても、メモリ不足が起きる可能性は低い。しかし同時処理数が1より小さい場合には、メモリ不足が起きる可能性が高い。そこでマスターマシン4は、ステップS22で処理命令先に決定したスレーブマシン6の同時使用量が1以上か否かを判断する(S26)。
-Inspection of the number of simultaneous processing (S26)-
When the number of simultaneous processes C is 1 or more, even if the
同時使用量が1より小さい場合には、マスターマシン4はステップS22に戻り、別の処理命令先を決定する。同時使用量が1以上の場合には、マスターマシン4はステップS28に進む。
If the simultaneous usage amount is smaller than 1, the
(v)OPC処理(S28、S30、S34)
―処理エリアの決定(S28、S30)―
マスターマシン4は、OPC処理が開始されていない単位エリア62の数がステップ24で算出した同時処理数Cのうちの最も大きい値Cmaxに並列数nを掛け算して得られる数値(=Cmax×n;以下、最大並列処理数と呼ぶ)より多いか判断する(S28)。OPC処理は、マスターマシン4がスレーブマシン6にOPC処理を命令した時点で開始する。
(V) OPC processing (S28, S30, S34)
-Determination of processing area (S28, S30)-
The
この時マスターマシン4は、単位エリアデータ64(図15)を参照して、OPC処理が開始していない単位エリア62(処理状況58が「未処理」の単位エリア)の数を検出する。
At this time, the
OPC処理が開始していない単位エリア62の数が最大並列処理数(=Cmax×n)より多いと判断した場合、マスターマシン4はスレーブマシン6にOPC処理させる処理エリアを決定する。図16は、処理エリアの決定方法を説明する図である。
If it is determined that the number of
図16には、単位エリア62に分割された機能ブロック領域30が示されている。ハッチングされている単位エリア62は、OPC処理が開始済みである。ハッチングされていない単位エリア62は、OPC処理が開始されていない。
FIG. 16 shows the
マスターマシン4は図16に示すように、OPC処理が開始されていない単位エリア(OPC処理済みのものも含む)から一または複数のエリアを選択し、選択された単位エリア62を有する領域を処理エリア74に決定する(S30)。この時マスターマシン4は、単位エリアデータ64(図15参照)の処理状況68を参照して、OPC処理が開始されていない単位エリア(処理状況58が「未処理」の単位エリア)の一部または全部を処理エリア74に含める領域に決定する。
As shown in FIG. 16, the
処理エリア74に含まる単位エリア62の数は、ステップS22でOPC処理の命令先を決定したスレーブマシン6の同時処理数Cである。同時処理数Cは多くの場合、2以上である。
The number of
OPC処理されていない単位エリア62の数が同時処理数Cより少ない場合、処理エリア74に含まれる単位エリア62の数は同時処理数Cより小さくする。
When the number of
すなわち処理エリア74に含まれる単位エリア62の数は、同時処理数C以下に制限される。一方、処理エリア74の形状は一定の形状に制限されない。例えば、処理エリア74の形状はL字形であってもよい。
That is, the number of
尚、ステップ32は後述する「(vi)平準化処理」で説明する。
―OPC処理(S34)―
マスターマシン4は、ステップS22で処理命令先に決定されたスレーブマシン6に、ステップS30で決定した処理エリア74のOPC処理を命令する。
-OPC processing (S34)-
The
マスターマシン4はOPC処理を命令すると、単位エリアデータ64(図15参照)のうち上記処理エリア74に含まれる単位エリア62の処理状況68を「未処理」から「完了」に変更する。
When the
OPC処理を命令されたスレーブマシン6は、上記処理エリア74のOPC処理を行う。スレーブマシン6はOPC処理が終わると、OPC処理の結果をマスターマシン4に送信する。マスターマシン4に送信される「OPC処理の結果」は、OPC処理されたパターンのパターンデータ(以下、OPC処理されたパターンデータと呼ぶ)である。
The
マスターマシン4はOPC処理されたパターンデータを受信すると、受信したパターンデータをOPCデータに追加する。OPCデータは、ステップS14で説明したように、OPC処理されたパターンデータを有するレイアウトデータである。
When the
―未処理エリアのOPC処理(S36)―
マスターマシン4はステップS34でスレーブマシン6にOPC処理を命令するとOPC処理の結果を待たずに、ステップS10で選択した機能ブロック30にOPC処理が開始されてない単位エリア62が存在するか判断する。この時マスターマシン4は、単位エリアデータ64の処理状況68(図15)を参照する。
-OPC processing of unprocessed area (S36)-
When the
OPC処理が開始していない単位エリア62が存在すると判断した場合、マスターマシン4はステップS22に戻って、ステップS22〜ステップS36を再度実行する。これにより、複数の処理エリア74がそれぞれ、複数のスレーブマシン6により並列してOPC処理される。
If it is determined that there is a
マスターマシン4はステップS36で、複数のスレーブマシン6のうちOPC処理を実行していない(すなわち、実行中でない)第1スレーブマシン6にOPCを命令した後にOPC処理が開始されていない単位エリアが存在するか否か判断する。マスターマシン4は、OPC処理が開始されていない単位エリアが存在すると判断するとステップS22に戻って、複数のコンピュータ6のうちOPC処理を実行していない第2コンピュータにOPC処理が開始されていない単位エリアのOPCを命令する。
In step S36, the
(vi)平準化処理(S32)
ステップS28においてOPC処理が開始されていない単位エリア62の数が最大並列処理数(=Cmax×n)以下と判断した場合、処理エリア74に含まれる単位エリア62の数を1に決定する。すなわち単位エリア62を、OPCの処理対象に決定する。
(Vi) Leveling process (S32)
If it is determined in step S28 that the number of
これにより後述するように、各スレーブマシン6で処理される単位エリア62の数が平準化される。
Thereby, as will be described later, the number of
(vii)未処理ブロックのOPC処理(S38)
ステップS36でOPC処理が開始されていない単位エリア62が存在しないと判断した場合、マスターマシン4は全てのOPC処理が終了するまで待機する。
(Vii) OPC processing of unprocessed block (S38)
If it is determined in step S36 that there is no
全てのOPC処理が終了すると、マスターマシン4はOPC処理が済んだ機能ブロック領域30のブロック名58を記録する。マスターマシン4はさらに、OPC処理が済んでいない機能ブロック30が存在するか判断する(S38)。
When all the OPC processes are completed, the
OPC処理が済んでいない機能ブロック30が存在すると判断した場合には、マスターマシン4はステップS10に戻って、OPC処理が済んでいない機能ブロック30に対してステップS10〜ステップS36を再度実行する。
When it is determined that there is a
(viii)機能ブロック外領域のOPC処理(S40)
OPC処理が済んでいない機能ブロック30が存在しないと判断した場合、マスターマシン4はさらに、機能ブロック外領域のOPC処理が終わっているか判断する(S40)。
(Viii) OPC processing of area outside functional block (S40)
When it is determined that there is no
機能ブロック外領域のOPC処理が終わっていないと判断した場合、マスターマシン4はステップS10に戻って、機能ブロック外領域に対してステップS10〜ステップS38を再度実行する。この時マスターマシン4およびスレーブマシン6は、機能ブロック外領域を機能ブロック領域とみなして各ステップを実行する。
If it is determined that the OPC processing for the function block outside area is not completed, the
(ix)後処理(S42)
機能ブロック外領域のOPC処理が終わっていると判断した場合、マスターマシン4は、OPC処理されたパターンを合成する(S42)。これにより、OPC処理されたマスクパターンが形成される。具体的には例えばマスターマシン4は、OPCデータに含まれるパターンデータをOR処理により合成する。
(Ix) Post-processing (S42)
If it is determined that the OPC processing for the area outside the functional block has been completed, the
マスターマシン4はさらに、OPC処理されたマスクパターンを出力する。出力されるマスクパターンのフォーマットは、例えばGDS IIまたはOASISである。
The
(3)単位エリアごとのOPC処理
スレーブマシン6が一度にOPC処理できるパターン数は、コンピュータのメモリ容量によって制限される。そこでマスターマシン4は機能ブロック領域および機能ブロック外領域を単位エリア62に分割し、該単位エリア62を有する処理エリア74(図16)をOPC処理する。
(3) OPC processing for each unit area The number of patterns that the
単位エリア62は、全てのスレーブマシン6がメモリ不足を起こさずにOPC処理できる領域である。単位エリア62は、ブロック領域(機能ブロック領域および機能ブロック外領域)ごとに異なる。
The
そこで各ブロック領域の単位エリア62のうち最も小さい単位エリア62でレイアウトパターンを分割し、該分割により得られる領域(OPCエリア)内のパターンをOPC処理することも考えられる。この場合OPCエリアが予め決定されていれば、S6〜S32は省略される。しかし、OPCエリアの決定は容易ではない。さらに上記のように最も小さいOPCエリアをOPC処理する方法には、レイアウトパターン全体のOPC処理時間が長くなるという問題がある。
Therefore, it is also conceivable to divide the layout pattern in the
図17は、OPCエリア76が小さい場合の問題を説明する図である。OPC処理では、OPCエリア76内のマスクパターン78の像が近接するマスクパターン80から受ける影響が補正される。このためOPC処理は、OPCエリア76より広い領域82内の全てのパターンに対して行われる。しかしOPC処理されたパターンのうちOPCエリア76内のパターンだけが利用され、OPCエリア76の外側でOPC処理されたパターンのデータは捨てられる。
FIG. 17 is a diagram for explaining a problem when the
したがってレイアウトパターン全体のOPC処理にかかる時間(以下、全OPC処理時間と呼ぶ)は、OPCエリア76が小さくなりレイアウトパターンの分割数が増えるほど増加する。このためOPCエリア76が小さくなるほど、全OPC処理時間は長くなる。
Therefore, the time required for the OPC processing of the entire layout pattern (hereinafter referred to as the total OPC processing time) increases as the
さらに分割された領域がマスターマシン4とスレーブマシン6の間で送受信される回数も、OPCエリア76が小さくなりレイアウトパターンの分割数が増えるほど多くなる。このため、全OPC処理時間はさらに長くなる。
Further, the number of times the divided area is transmitted / received between the
一方図3〜16を参照して説明したレイアウトパターンの補正方法によれば、各スレーブマシン6によりOPC処理される領域(処理エリア74)が広くなるので、全OPC処理時間は短くなる。さらに分割された領域がマスターマシン4とスレーブマシン6の間で送受信される回数が少なくなるので、全OPC処理時間はさらに短くなる。
On the other hand, according to the layout pattern correction method described with reference to FIGS. 3 to 16, since the area (processing area 74) subjected to OPC processing by each
(4)平準化処理
図18及び19は、平準化処理(S32)を説明する図である。
(4) Leveling Process FIGS. 18 and 19 are diagrams for explaining the leveling process (S32).
図18には、ステップS22〜36により処理エリア74が順次OPC処理される過程が示されている。横軸は、各スレーブマシン6の名称である。縦軸は、各スレーブマシンSL1〜SL5により処理される単位エリア62の数(処理数)である。
FIG. 18 shows a process in which the
今、スレーブマシンSL1の同時処理数を1とする。スレーブマシンSL2の同時処理数を2とする。スレーブマシンSL3の同時処理数を3とする。スレーブマシンSL4の同時処理数を4とする。スレーブマシンSL5の同時処理数を5とする。単位エリア62の総数は25とする。
Now, the number of simultaneous processes of the slave machine SL1 is 1. The number of simultaneous processes of the slave machine SL2 is 2. Assume that the number of simultaneous processes of the slave machine SL3 is three. Assume that the number of simultaneous processes of the slave machine SL4 is four. The number of simultaneous processes of the slave machine SL5 is 5. The total number of
ステップS22〜S36により処理エリア74が順次スレーブマシンSL1〜SL5に割り当てられ、複数のスレーブマシン6が複数の処理エリア74を並列してOPC処理する。図18に示す例では、一巡目の割り当て(処理命令)により各スレーブマシンSL1〜SL5が処理する単位エリア62の数84は、各スレーブマシンSL1〜SL5の同時処理数である。
The
二巡目の割り当てにより各スレーブマシンSL1〜SL5が処理する単位エリア62の数86は、スレーブマシンSL1では同時処理数(=1)である。スレーブマシンSL2〜スレーブマシンSL5では零である。これは、スレーブマシンSL1に処理エリア74が割り当てられる時点で、スレーブマシンSL2〜スレーブマシンSL5は一巡目で割り当てられたOPC処理が済んでいないためである(S22)。
The
三巡目の割り当てにより各スレーブマシンSL1〜SL5が処理する単位エリア62の数88は、スレーブマシンSL1とスレーブマシンSL2では同時処理数である。スレーブマシンSL3〜スレーブマシンSL5では零である。
The
この時の最大同時処理数Cmaxは、スレーブマシンSL1の同時処理数(=1)とスレーブマシンSL2の同時処理数C(=2)のうち最も大きい同時処理数(=2)である。並列数nは2である。したがって最大並列処理数(=Cmax×n)は、4(=2×2)である。OPC処理が開始されていない単位エリア62の数は、9である。
The maximum simultaneous processing number Cmax at this time is the largest simultaneous processing number (= 2) among the simultaneous processing number (= 1) of the slave machine SL1 and the simultaneous processing number C (= 2) of the slave machine SL2. The parallel number n is 2. Therefore, the maximum number of parallel processes (= Cmax × n) is 4 (= 2 × 2). The number of
故に、OPC処理が開始されていない単位エリア62の数(=9)は、最大並列処理数(=4)より大きい。このためスレーブマシンSL1とスレーブマシンSL2には、同時処理数と同数の単位エリア62を含む処理エリア74が割り当てられる(S30)。
Therefore, the number (= 9) of
四巡目の割り当てでは、スレーブマシンSL1とスレーブマシンSL3に単位エリア62が割り当てられる。この時の最大同時処理数Cmaxは、スレーブマシンSL1の同時処理数C(=1)とスレーブマシンSL3の同時処理数C(=3)のうち最も大きい同時処理数Cmax(=3)である。並列数nは2である。したがって最大並列処理数(=Cmax×n)は、6(=3×2)である。OPC処理が開始されていない単位エリア62の数は、6である。
In the fourth allocation, the
故に、OPC処理が開始されていない単位エリア62の数(=6)は、最大並列処理数(=6)以下である。このためスレーブマシンSL1とスレーブマシンSL3には、単位エリアが割り当てられる(S32)。
Therefore, the number (= 6) of
五巡目の割り当てでも、OPC処理が開始されていない単位エリア62の数は、最大並列処理数以下になる。したがってスレーブマシンSL1〜SL4に、単位エリアが割り当てられる。このため図18に示すように、各スレーブマシンSL1〜SL5の処理数は平準化される。各スレーブマシン6の同時処理数および単位エリア62の総数は、図18の例と同じである。
Even in the fifth round of allocation, the number of
図19には、平準化処理(S32)が行われない場合の例が示されている。横軸は、各スレーブマシン6の名称である。縦軸は、各スレーブマシン6により処理される単位エリア62の数(処理数)である。
FIG. 19 shows an example in which the leveling process (S32) is not performed. The horizontal axis is the name of each
三巡目の割り当てまでは各スレーブマシンの処理数は、平準化処理を行う場合と同じである。しかし図19に示す例では、四順目以降も各スレーブマシンの処理数は同時処理数と同数である。このため図19に示すように、各スレーブマシンの処理数にバラつきが生じる。その結果、全OPC処理時間が長くなる。 Until the third round of allocation, the number of processes of each slave machine is the same as when performing the leveling process. However, in the example shown in FIG. 19, the number of processes of each slave machine is the same as the number of simultaneous processes after the fourth order. For this reason, as shown in FIG. 19, the number of processes of each slave machine varies. As a result, the total OPC processing time becomes longer.
各割り当てサイクルでOPC処理が開始(命令)される単位エリア62の数は最大でも、最大並列処理数(=Cmax×n)である。したがって図18に示すように、OPC処理が開始(命令)されていない単位エリア62の数が最大並列処理数以下になった時点でOPC処理する領域を単位エリアにすれば、各スレーブマシンの処理数に生じるバラつきは小さくなる。
The maximum number of
以上の例では、OPC処理が開始されていない単位エリア62の数が最大並列処理数(=Cmax×n)以下の場合に、平準化処理が行われる。しかしOPC処理が開始されていない単位エリア62の数が最大並列処理数以外の一定数以下の場合に、平準化処理が行われてもよい。
In the above example, the leveling process is performed when the number of
例えば、OPC処理が開始されていない単位エリア62の数が同時処理数のうち2番に大きい同時処理数に並列数nをかけた数以下の場合に、平準化処理が行われてもよい。この場合でも、スレーブマシンの処理数に生じるバラつきは、平準化処理を行わない場合より小さくなる。
For example, the leveling process may be performed when the number of
以上の例ではマスターマシン4は、OPC処理を行わない。しかしマスターマシン4が、スレーブマシン6とともにOPC処理を行ってもよい。
In the above example, the
以上の実施の形態に関し、更に以下の付記を開示する。 Regarding the above embodiment, the following additional notes are disclosed.
(付記1)
集積回路のレイアウトパターンから機能ブロックに対応する機能ブロック領域を検出する工程と、
前記機能ブロック領域のパターン密度に基づいて、前記機能ブロック領域を分割するサイズを決定する工程と、
前記機能ブロック領域を、決定された前記サイズに分割して単位エリアを生成する工程と、
前記単位エリアをコンピュータにOPC処理させる工程と
を有するレイアウトパターンの補正方法。
(Appendix 1)
Detecting a functional block area corresponding to the functional block from the layout pattern of the integrated circuit;
Determining a size of dividing the functional block area based on a pattern density of the functional block area;
Dividing the functional block region into the determined size to generate a unit area;
And a step of causing the computer to perform OPC processing on the unit area.
(付記2)
付記1に記載のレイアウトパターンの補正方法において、
前記パターン密度は、前記機能ブロック領域に含まれるパターンの最小線幅に基づいて決定されることを特徴とするレイアウトパターンの補正方法。
(Appendix 2)
In the layout pattern correction method according to attachment 1,
The method of correcting a layout pattern, wherein the pattern density is determined based on a minimum line width of a pattern included in the functional block region.
(付記3)
付記1に記載のレイアウトパターンの補正方法において、
前記コンピュータに前記OPC処理させる工程では前記コンピュータを複数用意し、前記複数のコンピュータのうち前記OPC処理を実行していない第1コンピュータに前記OPCを命令した後に前記OPC処理が開始されていない前記単位エリアが存在する場合には、前記複数のコンピュータのうち前記OPC処理を実行していない第2コンピュータに前記OPC処理が開始されていない前記単位エリアの前記OPCを命令する
ことを特徴とするレイアウトパターンの補正方法。
(Appendix 3)
In the layout pattern correction method according to attachment 1,
In the step of causing the computer to perform the OPC process, a plurality of the computers are prepared, and the OPC process is not started after instructing the OPC to a first computer that is not executing the OPC process among the plurality of computers. If there is an area, a layout pattern in which the OPC of the unit area in which the OPC processing is not started is instructed to a second computer that is not executing the OPC processing among the plurality of computers. Correction method.
(付記4)
付記1乃至3いずれか一項に記載のレイアウトパターンの補正方法において、さらに、
前記コンピュータに前記OPC処理させる工程の前に、複数の前記単位エリアから複数のエリアを選択し、選択された前記複数のエリアそれぞれにおけるOPC処理のメモリ使用量を測定する工程を有し、
前記コンピュータに前記OPC処理させる工程では、前記OPC処理が開始されていない前記単位エリアから一または複数の単位エリアを選択し、選択された前記各単位エリアを含む処理エリアを前記コンピュータにOPC処理させ、
前記処理エリアに含まれる前記単位エリアの数は、前記各コンピュータのOPC処理に使用可能なメモリ容量を測定された前記メモリ使用量のうちの最大のメモリ使用量で割り算して得られる同時処理数であることを
特徴とするレイアウトパターンの補正方法。
(Appendix 4)
In the layout pattern correction method according to any one of appendices 1 to 3,
Before the step of causing the computer to perform the OPC process, the method includes a step of selecting a plurality of areas from the plurality of unit areas and measuring a memory usage amount of the OPC process in each of the selected areas.
In the step of causing the computer to perform the OPC process, one or a plurality of unit areas are selected from the unit areas where the OPC process is not started, and the computer is caused to perform an OPC process on a processing area including the selected unit areas. ,
The number of unit areas included in the processing area is the number of simultaneous processes obtained by dividing the memory capacity usable for OPC processing of each computer by the maximum memory usage of the measured memory usage. A layout pattern correction method characterized by being.
(付記5)
付記4のいずれか1項に記載のレイアウトパターンの補正方法において、
前記コンピュータに前記OPC処理させる工程では、複数の前記処理エリアを複数の前記コンピュータに並列してOPC処理させ、
前記各処理エリアに含まる前記単位エリアの数は、
前記OPC処理が開始されていない前記単位エリアが一定数より多く存在する場合に、前記各処理エリアを前記OPC処理する前記コンピュータが処理可能な最も大きい数であり、
前記OPC処理が開始されていない前記単位エリアが前記一定数以下の場合には、1であることを
特徴とするレイアウトパターンの補正方法。
(Appendix 5)
In the layout pattern correction method according to any one of
In the step of causing the computer to perform the OPC process, a plurality of the processing areas are subjected to an OPC process in parallel with the plurality of computers,
The number of unit areas included in each processing area is:
When there are more than a certain number of unit areas where the OPC processing has not started, the processing area is the largest number that can be processed by the computer that performs the OPC processing,
The layout pattern correction method according to claim 1, wherein the unit area in which the OPC processing has not started is 1 when the unit area is equal to or less than the predetermined number.
(付記6)
付記5に記載のレイアウトパターンの補正方法において、
前記一定数は、前記各処理エリアをOPC処理する前記コンピュータごとに得られる前記同時処理数のうち最も大きい値に前記コンピュータの数を乗じた数であることを
特徴とするレイアウトパターンの補正方法。
(Appendix 6)
In the layout pattern correction method according to attachment 5,
The layout pattern correction method according to claim 1, wherein the predetermined number is a value obtained by multiplying the largest value among the simultaneous processing numbers obtained for each computer that performs OPC processing on each processing area by the number of the computers.
(付記7)
付記4に記載のレイアウトパターンの補正方法において、
前記OPC処理のメモリ使用量を測定する工程では、前記複数のエリアの少なくとも一部を、前記機能ブロック領域の中央部から選択することを
特徴とするレイアウトパターンの補正方法。
(Appendix 7)
In the layout pattern correction method according to
In more engineering to measure memory usage before Symbol OPC process, the correction method of the layout pattern, wherein a least a portion of said plurality of areas is selected from the central portion of the functional block area.
2・・・パターン補正装置
4・・・マスターマシン
6・・・スレーブマシン
30・・・機能ブロック領域
54・・・単位サイズデータ
62・・・単位エリア
74・・・処理エリア
2 ...
Claims (6)
前記機能ブロック領域のパターン密度に基づいて、前記機能ブロック領域を分割するサイズを決定する工程と、
前記機能ブロック領域を、決定された前記サイズに分割して単位エリアを生成する工程と、
前記単位エリアをコンピュータにOPC処理させる工程と
を有するレイアウトパターンの補正方法。 Detecting a functional block area corresponding to the functional block from the layout pattern of the integrated circuit;
Determining a size of dividing the functional block area based on a pattern density of the functional block area;
Dividing the functional block region into the determined size to generate a unit area;
And a step of causing the computer to perform OPC processing on the unit area.
前記パターン密度は、前記機能ブロック領域に含まれるパターンの最小線幅に基づいて決定されることを特徴とするレイアウトパターンの補正方法。 The layout pattern correction method according to claim 1,
The method of correcting a layout pattern, wherein the pattern density is determined based on a minimum line width of a pattern included in the functional block region.
前記コンピュータに前記OPC処理させる工程の前に、複数の前記単位エリアから複数のエリアを選択し、選択された前記複数のエリアそれぞれにおけるOPC処理のメモリ使用量を測定する工程を有し、
前記コンピュータに前記OPC処理させる工程では、前記OPC処理が開始されていない前記単位エリアから一または複数の単位エリアを選択し、選択された前記各単位エリアを含む処理エリアを前記コンピュータにOPC処理させ、
前記処理エリアに含まれる前記単位エリアの数は、前記各コンピュータのOPC処理に使用可能なメモリ容量を測定された前記メモリ使用量のうちの最大のメモリ使用量で割り算して得られる同時処理数であることを
特徴とするレイアウトパターンの補正方法。 The layout pattern correction method according to claim 1, further comprising:
Before the step of causing the computer to perform the OPC process, the method includes a step of selecting a plurality of areas from the plurality of unit areas and measuring a memory usage amount of the OPC process in each of the selected areas.
In the step of causing the computer to perform the OPC process, one or a plurality of unit areas are selected from the unit areas where the OPC process is not started, and the computer is caused to perform an OPC process on a processing area including the selected unit areas. ,
The number of unit areas included in the processing area is the number of simultaneous processes obtained by dividing the memory capacity usable for OPC processing of each computer by the maximum memory usage of the measured memory usage. A layout pattern correction method characterized by being.
前記コンピュータに前記OPC処理させる工程では、複数の前記処理エリアを複数の前記コンピュータに並列してOPC処理させ、
前記各処理エリアに含まる前記単位エリアの数は、
前記OPC処理が開始されていない前記単位エリアが一定数より多く存在する場合に、前記各処理エリアを前記OPC処理する前記コンピュータが処理可能な最も大きい数であり、
前記OPC処理が開始されていない前記単位エリアが前記一定数以下の場合には、1であることを
特徴とするレイアウトパターンの補正方法。 The layout pattern correction method according to claim 3,
In the step of causing the computer to perform the OPC process, a plurality of the processing areas are subjected to an OPC process in parallel with the plurality of computers,
The number of unit areas included in each processing area is:
When there are more than a certain number of unit areas where the OPC processing has not started, the processing area is the largest number that can be processed by the computer that performs the OPC processing,
The layout pattern correction method according to claim 1, wherein the unit area in which the OPC processing has not started is 1 when the unit area is equal to or less than the predetermined number.
前記一定数は、前記各処理エリアをOPC処理する前記コンピュータごとに得られる前記同時処理数のうち最も大きい値に前記コンピュータの数を乗じた数であることを
特徴とするレイアウトパターンの補正方法。 The layout pattern correction method according to claim 4,
The layout pattern correction method according to claim 1, wherein the predetermined number is a value obtained by multiplying the largest value among the simultaneous processing numbers obtained for each computer that performs OPC processing on each processing area by the number of the computers.
前記OPC処理のメモリ使用量を測定する工程では、前記複数のエリアの少なくとも一部を、前記機能ブロック領域の中央部から選択することを
特徴とするレイアウトパターンの補正方法。 The layout pattern correction method according to claim 3,
In more engineering to measure memory usage before Symbol OPC process, the correction method of the layout pattern, wherein a least a portion of said plurality of areas is selected from the central portion of the functional block area.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012242617A JP6107059B2 (en) | 2012-11-02 | 2012-11-02 | Layout pattern correction method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012242617A JP6107059B2 (en) | 2012-11-02 | 2012-11-02 | Layout pattern correction method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014092655A JP2014092655A (en) | 2014-05-19 |
JP6107059B2 true JP6107059B2 (en) | 2017-04-05 |
Family
ID=50936771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012242617A Expired - Fee Related JP6107059B2 (en) | 2012-11-02 | 2012-11-02 | Layout pattern correction method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6107059B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6482190B2 (en) * | 2014-06-10 | 2019-03-13 | キヤノン株式会社 | Arithmetic method, apparatus and program for simulating lithography |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3934719B2 (en) * | 1995-12-22 | 2007-06-20 | 株式会社東芝 | Optical proximity correction method |
JP2000323377A (en) * | 1999-05-07 | 2000-11-24 | Nikon Corp | Proximity effect correcting method |
JP3360662B2 (en) * | 1999-10-05 | 2002-12-24 | 日本電気株式会社 | Electron beam drawing method and electron beam drawing mask |
SE0104131D0 (en) * | 2001-12-10 | 2001-12-10 | Micronic Laser Systems Ab | Improved method and apparatus for image formation |
JP2004212482A (en) * | 2002-12-27 | 2004-07-29 | Fujitsu Ltd | Manufacture method of photomask |
JP2006235184A (en) * | 2005-02-24 | 2006-09-07 | Seiko Epson Corp | Design pattern correcting apparatus, design pattern correcting method, data calculating apparatus for size setting, data calculating method for size setting, and program |
US7650587B2 (en) * | 2006-11-30 | 2010-01-19 | International Business Machines Corporation | Local coloring for hierarchical OPC |
JP4996972B2 (en) * | 2007-05-21 | 2012-08-08 | ルネサスエレクトロニクス株式会社 | Mask data generation method and mask data generation system |
-
2012
- 2012-11-02 JP JP2012242617A patent/JP6107059B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2014092655A (en) | 2014-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10643015B2 (en) | Properties in electronic design automation | |
US8683392B2 (en) | Double patterning methodology | |
US6823496B2 (en) | Physical design characterization system | |
JP4979142B2 (en) | Calculation of electrical characteristics of IC layout | |
US8930857B2 (en) | Mask data verification apparatus, design layout verification apparatus, method thereof, and computer program thereof | |
JP4530049B2 (en) | Semiconductor device design program and semiconductor device design system | |
US20090106715A1 (en) | Programmable Design Rule Checking | |
WO2008063651A9 (en) | Model-based design verification | |
JP2013149286A (en) | Incremental analysis of layout design data | |
US20140337810A1 (en) | Modular platform for integrated circuit design analysis and verification | |
JP2011197520A (en) | Method for manufacturing photomask | |
CN101226326B (en) | Use the method and system with the simplation examination mask layout printability of adjustable accuracy | |
CN115470741B (en) | Method, electronic device and storage medium for light source mask co-optimization | |
JP2003203849A (en) | Lithographic process margin evaluation device, lithographic process margin evaluating method, and lithographic process margin evaluation program | |
US20110145770A1 (en) | Device Annotation | |
JP6107059B2 (en) | Layout pattern correction method | |
JP2014182219A (en) | Flawed site predictor, identification model generator, flawed site prediction program, and flawed site prediction method | |
JP2009014790A (en) | Photomask pattern verifying method, photomask pattern verifying device, method of manufacturing semiconductor integrated circuit, photomask pattern verification control program and readable storage medium | |
JP5309623B2 (en) | Photomask data processing method, photomask data processing system, and manufacturing method using hierarchical structure | |
JP2019159905A (en) | Generation program, generation device and generation method | |
JP4946655B2 (en) | Design support program, recording medium recording the program, design support apparatus, and design support method | |
JP2015201055A (en) | Defective place prediction apparatus, defective place prediction program and defective place prediction method | |
US20230108555A1 (en) | Layout check system using full-chip layout and layout check method using the same | |
TWI839878B (en) | Layout check system using full-chip layout and layout check method using the same | |
JP6123398B2 (en) | DEFECT LOCATION PREDICTION DEVICE, IDENTIFICATION MODEL GENERATION DEVICE, DEFECT LOCATION PREDICTION PROGRAM, AND DEFECT LOCATION PREDICTION METHOD |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150728 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160516 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160705 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160822 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170207 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170220 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6107059 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |