JP6107059B2 - Layout pattern correction method - Google Patents

Layout pattern correction method Download PDF

Info

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
Application number
JP2012242617A
Other languages
Japanese (ja)
Other versions
JP2014092655A (en
Inventor
弘貴 吉岡
弘貴 吉岡
雅彦 峯村
雅彦 峯村
一弥 須川
一弥 須川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2012242617A priority Critical patent/JP6107059B2/en
Publication of JP2014092655A publication Critical patent/JP2014092655A/en
Application granted granted Critical
Publication of JP6107059B2 publication Critical patent/JP6107059B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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.

特開2004−212482号公報JP 2004-212482 A

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.

図1は、実施の形態のパターン補正方法を実行するパターン補正装置の構成図である。FIG. 1 is a configuration diagram of a pattern correction apparatus that executes a pattern correction method according to an embodiment. 図2は、マスターマシンの構成図である。FIG. 2 is a configuration diagram of the master machine. 図3は、実施の形態のレイアウトパターン補正方法のフローチャートの一例である。 Figure 3 is an example of a flowchart of the layout pattern correction method of implementation forms. 図4は、実施の形態のレイアウトパターン補正方法のフローチャートの一例である。 Figure 4 is an example of a flowchart of the layout pattern correction method of implementation forms. 図5は、実施の形態のレイアウトパターン補正方法のフローチャートの一例である。 Figure 5 is an example of a flowchart of the layout pattern correction method of implementation forms. 図6は、集積回路のレイアウトパターンを説明する図である。FIG. 6 is a diagram for explaining a layout pattern of an integrated circuit. 図7は、ネットリストの構成を示す図である。FIG. 7 is a diagram showing the configuration of the net list. 図8は、ネーミングルールを説明する図である。FIG. 8 is a diagram for explaining a naming rule. 図9は、機能ブロックの位置データを説明するテーブルである。 Figure 9 is a table illustrating the positional data of the function block. 図10は、レイアウトパターンの分割工程を説明する図である。FIG. 10 is a diagram for explaining a layout pattern dividing step. 図11は、単位サイズデータを説明するテーブルである。Figure 11 is a table that describes the unit size data. 図12は、レイアウトパターンの分割工程を説明する図である。FIG. 12 is a diagram for explaining a layout pattern dividing step. 図13は、単位エリアデータを説明するテーブルである。Figure 13 is a table that describes the unit area data. 図14は、同時処理数の決定工程を説明する図である。FIG. 14 is a diagram for explaining the process of determining the number of simultaneous processes. 図15は、同時処理数の決定工程を説明する図である。FIG. 15 is a diagram for explaining the process of determining the number of simultaneous processes. 図16は、処理エリアの決定方法を説明する図である。FIG. 16 is a diagram illustrating a method for determining a processing area. 図17は、OPCエリアが小さい場合の問題を説明する図である。FIG. 17 is a diagram illustrating a problem when the OPC area is small. 図18は、平準化処理を説明する図である。FIG. 18 is a diagram for explaining the leveling process. 図19は、平準化処理を説明する図である。FIG. 19 is a diagram illustrating the leveling process.

以下、図面にしたがって本発明の実施の形態について説明する。但し、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。尚、図面が異なっても対応する部分には同一の符号を付し、その説明を省略する。   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 pattern correction device 2 that executes the pattern correction method of the embodiment.

パターン補正装置2は図1に示すように、マスターマシン4と、マスターマシン4の命令に従ってOPC処理を実行するスレーブマシン6と、マスターマシン4とスレーブマシン6を接続するネットワーク8とを有する。マスターマシン4およびスレーブマシン6は、コンピュータである。   As shown in FIG. 1, the pattern correction apparatus 2 includes a master machine 4, a slave machine 6 that executes OPC processing in accordance with instructions from the master machine 4, and a network 8 that connects the master machine 4 and the slave machine 6. The master machine 4 and the slave machine 6 are computers.

パターン補正装置2は、マスターマシン4によりレイアウトパターン(フォトマスク全体のパターン)を複数の領域に分割し、分割された領域をスレーブマシン6に並列処理させる。   The pattern correction apparatus 2 divides a layout pattern (a pattern of the entire photomask) into a plurality of areas by the master machine 4 and causes the slave machine 6 to process the divided areas in parallel.

―マスターマシン―
図2は、マスターマシン4の構成図である。
―Master machine―
FIG. 2 is a configuration diagram of the master machine 4.

マスターマシン4は、例えばCPU(Central Processing Unit)10と、ROM(Read Only Memory)12と、RAM(Random Access Memory)14と、ハードディスクを有するHDD(Hard Disk Drive)16とを有する。HDD16は、コンピュータにより読取可能な記録媒体である。   The master machine 4 includes, for example, a CPU (Central Processing Unit) 10, a ROM (Read Only Memory) 12, a RAM (Random Access Memory) 14, and an HDD (Hard Disk Drive) 16 having a hard disk. The HDD 16 is a computer-readable recording medium.

さらにマスターマシン4は、ネットワークインターフェース18と、キーボードやマウスなどの入力機器20と、表示装置22と、バス24とを有する。バス24には、上記各装置(CPU等)が接続される。   The master machine 4 further includes a network interface 18, an input device 20 such as a keyboard and a mouse, a display device 22, and a bus 24. Each device (CPU or the like) is connected to the bus 24.

RAM14は、CPU10が直接アクセスできる主記憶装置(メインメモリ)である。HDD16は、補助記憶装置である。マスターマシン4は、DVDD(Digital Versatile Disc Driver)などの他の補助記憶装置を有してもよい。DVDDには、DVD−R(Digital Versatile Disk Recordable)などの記録媒体が装着される。   The RAM 14 is a main storage device (main memory) that can be directly accessed by the CPU 10. The HDD 16 is an auxiliary storage device. The master machine 4 may have another auxiliary storage device such as a DVDD (Digital Versatile Disc Driver). A recording medium such as a DVD-R (Digital Versatile Disk Recordable) is mounted on the DVDD.

CPU10はHDD16を制御するとともに、HDD16に記録されたプログラムをRAM14にロードし、ロードされたプログラムを実行する。RAM14にはプログラム以外にも、CPU10がプログラムを実行する際の途中データが一時的に記録される。   The CPU 10 controls the HDD 16, loads a program recorded on the HDD 16 into the RAM 14, and executes the loaded program. In addition to the program, the RAM 14 temporarily stores data during execution of the program by the CPU 10.

ROM12には、CPU10が実行する基本的なプログラム等が記録されている。   The ROM 12 stores basic programs executed by the CPU 10.

HDD16には、実施の形態のパターン補正方法をCPU10に実行させるレイアウトパターン補正プログラム26が記録されている。レイアウトパターン補正プログラムは、CPU10が実行可能なプログラムである。   The HDD 16 stores a layout pattern correction program 26 that causes the CPU 10 to execute the pattern correction method of the embodiment. The layout pattern correction program is a program that can be executed by the CPU 10.

―スレーブマシン―
スレーブマシン6の構成は、図2に示すマスターマシン4の構成と略同じである。ただしスレーブマシン6のHDDには、マスターマシン4の命令に応答してOPC処理を実行するOPCプログラムが記録されている。
―Slave machine―
The configuration of the slave machine 6 is substantially the same as the configuration of the master machine 4 shown in FIG. However, an OPC program for executing an OPC process in response to an instruction from the master machine 4 is recorded in the HDD of the slave machine 6.

マスターマシン4とスレーブマシン6を有するコンピュータ群は、マスターマシン4のCPU10がレイアウトパターン補正プログラム26を実行するとともにスレーブマシンのCPUがOPCプログラムを実行することで、パターン補正装置になる。   The computer group having the master machine 4 and the slave machine 6 becomes a pattern correction device when the CPU 10 of the master machine 4 executes the layout pattern correction program 26 and the CPU of the slave machine executes the OPC program.

(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 master machine 4 acquires a photomask pattern (hereinafter referred to as a layout pattern). The obtained layout pattern has a pattern of each of a plurality of photomasks used for forming an integrated circuit.

具体的にはマスターマシン4は図3に示すように、ネットワーク8を介して集積回路の形成に用いられるフォトマスクの図形データ(以下、レイアウトデータと呼ぶ)を取得する(S2)。取得されたレイアウトデータは、例えばHDD16に記録される。   Specifically, as shown in FIG. 3, the master machine 4 acquires graphic data (hereinafter referred to as layout data) of a photomask used for forming an integrated circuit via the network 8 (S2). The acquired layout data is recorded in the HDD 16, for example.

レイアウトデータは、例えばフォトマスクに含まれる各パターンの「形状」を表す形状情報と各パターンの「座標」と各パターンが含まれる「レイヤー」を表すレイヤー情報とを有する。「レイヤー」は、集積回路の形成に用いられる複数のフォトマスクを識別する識別子である。   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 master machine 4 further acquires a net list corresponding to the layout data via the network 8 (S2). The acquired netlist is recorded in, for example, the HDD 16.

マスターマシン4はさらに、ネットワーク8を介して上記レイアウトデータに対応するネーミングルールを取得する(S2)。取得されたネーミングルールは、例えばHDD16に記録される。   The master machine 4 further acquires a naming rule corresponding to the layout data via the network 8 (S2). The acquired naming rule is recorded in, for example, the HDD 16.

マスターマシン4はさらに、OPC処理するレイヤーの識別情報を取得する(S2)。具体的には例えばレイヤー名(例えば、「第1金属層」)がマスクパターンの設計者により、入力機器20によりマスターマシン4に入力される。入力された識別情報は、例えば上記識別子に変換されHDD16に記録される。   The master machine 4 further acquires identification information of the layer to be OPC processed (S2). Specifically, for example, a layer name (for example, “first metal layer”) is input to the master machine 4 by the input device 20 by the designer of the mask pattern. The input identification information is converted into the identifier, for example, and recorded in the HDD 16.

以後「レイアウトパターン」とは、取得されたレイヤー識別情報に対応するフォトマスク全体のパターンを意味する。「レイアウトデータ」とは、このレイアウトパターンのデータである。   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 master machine 4 inquires each computer connected to the network 8 and acquires identification information (host name, etc.) of an apparatus capable of executing the OPC process (S4). The acquired identification information is recorded in the HDD 16, for example. The identification information of the computer capable of executing the OPC process may be recorded in the HDD 16 in advance. A computer corresponding to the acquired identification information is used as the slave machine 6.

(ii)機能ブロック領域の検出(S6)
図6は、集積回路のレイアウトパターン28を説明する図である。
(Ii) Function block area detection (S6)
FIG. 6 is a diagram for explaining the layout pattern 28 of the integrated circuit.

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 circuit layout pattern 28 includes a functional block area 30 corresponding to the functional block.

マスターマシン4は、集積回路のレイアウトパターン28から機能ブロックに対応する機能ブロック領域30を検出する(S6)。   The master machine 4 detects the functional block area 30 corresponding to the functional block from the layout pattern 28 of the integrated circuit (S6).

具体的には例えばマスターマシン4はまず、レイアウトパターン28に対応するネットリスト(結線情報)からセル名を検出する。   Specifically, for example, the master machine 4 first detects a cell name from a net list (connection information) corresponding to the layout pattern 28.

図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, connection information 32 of each functional block is recorded in the net list. The net list further includes a net name 34 and a cell name 36. The net name 34 is a function block reference number. The cell name 36 is a name on the net list of the functional block. The net name 34 and the cell name 36 correspond to the connection information 32.

機能ブロック領域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 cell name 36 of the netlist.

マスターマシン4はまず、ステップS2で取得したネットリストからセル名36を検出する。マスターマシン4はネットリストから検出したセル名36をキーとして、ステップS2で取得したレイアウトデータを検索して、各機能ブロック領域30内のパターンに対応するパターンデータを検出する。マスターマシン4は検出したパターンデータに基づいて、各機能ブロック領域30の位置座標(例えば、対角する頂点の座標)を算出する。   First, the master machine 4 detects the cell name 36 from the net list acquired in step S2. The master machine 4 searches the layout data acquired in step S2 using the cell name 36 detected from the net list as a key, and detects pattern data corresponding to the pattern in each functional block area 30. Based on the detected pattern data, the master machine 4 calculates position coordinates (for example, coordinates of diagonal vertices) of each functional block region 30.

図8は、ネーミングルール38を説明する図である。ネーミングルール38は、セル名36とデバイスパターン40の対応関係を示すデータである。デバイスパターン38は、機能ブロックの名称(以下、機能ブロック名と呼ぶ)である。デバイスパターン40から、機能ブロックの機能や最小線幅などを知ることができる。   FIG. 8 is a diagram for explaining the naming rule 38. The naming rule 38 is data indicating the correspondence between the cell name 36 and the device pattern 40. The device pattern 38 is a function block name (hereinafter referred to as a function block name). From the device pattern 40, the function of the functional block, the minimum line width, and the like can be known.

マスターマシン4はステップS2で取得したネーミングルール38を検索して、ネットリストから検出したセル名36に対応するデバイスパターン40を検出する。   The master machine 4 searches the naming rule 38 acquired in step S2, and detects the device pattern 40 corresponding to the cell name 36 detected from the net list.

マスターマシン4は、算出した機能ブロック領域30の位置座標と検出したデバイスパターン40とを有する機能ブロック領域30の位置データを生成する。図9は、機能ブロック領域30の位置データ42を説明するテーブルである。   The master machine 4 generates position data of the functional block area 30 having the calculated position coordinates of the functional block area 30 and the detected device pattern 40. FIG. 9 is a table for explaining the position data 42 of the functional block area 30.

機能ブロック領域30の位置データ42は例えば図9に示すように、機能ブロック名44(すなわち、デバイスパターン40)を有する複数のデータ(例えば、レコード)を有する。該データはそれぞれ、機能ブロック名44と、機能ブロック名44に対応する機能ブロック領域30の左下頂点の位置座標46と、該機能ブロック名44に対応する機能ブロック領域30の右上頂点の位置座標48とを有する。座標の単位は、例えばμmである。   The position data 42 in the functional block area 30 includes a plurality of data (for example, records) having a functional block name 44 (that is, a device pattern 40) as shown in FIG. 9, for example. The data includes a function block name 44, a position coordinate 46 of the lower left vertex of the function block area 30 corresponding to the function block name 44, and a position coordinate 48 of the upper right vertex of the function block area 30 corresponding to the function block name 44, respectively. And have. The unit of coordinates is, for example, μm.

機能ブロック領域30の位置データ42を参照することで、機能ブロック領域30の位置と機能ブロック30の最小線幅などを知ることができる。   By referring to the position data 42 of the functional block area 30, the position of the functional block area 30 and the minimum line width of the functional block 30 can be known.

(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 layout pattern 28 of the integrated circuit often has a plurality of functional block regions 30. The first function block area 30a to the third function block area 30c are areas corresponding to, for example, an SRAM. The fourth functional block region 30d is a region corresponding to, for example, a logic circuit. The fifth functional block area 30e is an area corresponding to, for example, an input / output circuit.

図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 pattern 50 in the first functional block region 30a is different from the line width of the pattern 52 in the fifth functional block region 30e. The line widths of the patterns in the second functional block region 30b to the fourth functional block region 30d are also different from the line widths in the other blocks.

―単位サイズの決定(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 master machine 4 determines the size of the unit area for dividing the functional block area 30 for each functional block area 30 (S8). The master machine 4 further determines the size of a unit area for dividing an area outside the functional block area 30 (hereinafter referred to as an area outside the functional block) (S8). By determining the size of the unit area based on the minimum line width, the data amount of the pattern included in the unit area can be roughly set to a target value. As a result, the amount of memory required for OPC processing by the computer can be predicted to some extent, and the trouble of remeasurement (S20) and resetting of the unit size described later can be suppressed.

単位エリアは、一定のサイズを有する領域である。単位エリアのサイズとは例えば、単位エリアが矩形領域の場合、各辺の一定の長さである。単位エリアのサイズは以後、単位サイズと呼ばれる。   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 master machine 4 generates unit size data having the determined unit size. FIG. 11 is a table for explaining the unit size data 54.

単位サイズデータ54は図11に示すように、機能ブロック名44または機能ブロック外領域の名称56に対応するブロック名58と該ブロック名58に対応する領域の単位サイズ60とをそれぞれ有する複数のデータ(例えば、レコード)を有する。単位サイズの単位は、例えばμmである。例えば「SRAM1」の単位サイズは、縦6.5μm、横6.5μmである。   As shown in FIG. 11, the unit size data 54 includes a plurality of pieces of data each having a block name 58 corresponding to the function block name 44 or the name 56 of the area outside the function block and a unit size 60 of the area corresponding to the block name 58. (For example, record). The unit of the unit size is, for example, μm. For example, the unit size of “SRAM1” is 6.5 μm in length and 6.5 μm in width.

各機能ブロック領域の最小線幅は、例えば入力機器20からマスターマシン4に入力される。具体的には例えばマスターマシン4は、ステップS6で検出した機能ブロック名44を表示装置22に表示する。するとマスクパターンの設計者は、機能ブロック名44から判明する各機能ブロックの最小線幅をマスターマシン4に入力する。   The minimum line width of each functional block area is input from the input device 20 to the master machine 4, for example. Specifically, for example, the master machine 4 displays the function block name 44 detected in step S6 on the display device 22. Then, the mask pattern designer inputs the minimum line width of each functional block found from the functional block name 44 to the master machine 4.

―処理対象ブロックの決定(S10)―
マスターマシン4は単位サイズデータ54(図11)を参照して例えば、OPC処理が行われていない機能ブロック領域30のうち単位サイズ60が最も小さいものを、OPC処理を行うブロック(以下、処理対処ブロックと呼ぶ)に決定する(S10)。図11に示す例では、マスターマシン4はブロック名「SRAM1」に対応する第1機能ブロック30a(図6)を選択する。
-Determination of processing target block (S10)-
For example, the master machine 4 refers to the unit size data 54 (FIG. 11), and, for example, among the functional block areas 30 that have not been subjected to OPC processing, the block having the smallest unit size 60 is subjected to OPC processing (hereinafter referred to as processing processing). (Referred to as a block) (S10). In the example shown in FIG. 11, the master machine 4 selects the first functional block 30a (FIG. 6) corresponding to the block name “SRAM1”.

単位サイズ60が最も小さい機能ブロック領域を処理対象ブロックに選択することで、メモリ不足によりOPC処理に障害をきたさないかを早期に検知することができる。   By selecting the functional block area having the smallest unit size 60 as the processing target block, it is possible to detect at an early stage whether or not the OPC processing is hindered due to a memory shortage.

―機能ブロックの分割(S12)―
次にマスターマシン4は図12に示すように、選択された機能ブロック領域30を単位エリア62に分割する(S12)。単位エリア62は上述したように、単位サイズ60を有する領域である。
―Division of functional blocks (S12) ―
Next, as shown in FIG. 12, the master machine 4 divides the selected functional block area 30 into unit areas 62 (S12). The unit area 62 is an area having the unit size 60 as described above.

さらにマスターマシン4は、分割された単位エリア62の位置などを表すデータ64(以下、単位エリアデータと呼ぶ)を生成する。図13は、単位エリアデータ64を説明するテーブルである。図13に示すように単位エリアデータ64は例えば、単位エリア62の対角する頂点の座標66と処理状況68とメモリ使用量70とをそれぞれ有する複数のデータ(例えば、レコード)を有している。   Further, the master machine 4 generates data 64 (hereinafter referred to as unit area data) representing the position of the divided unit area 62 and the like. FIG. 13 is a table for explaining the unit area data 64. As shown in FIG. 13, the unit area data 64 has, for example, a plurality of data (for example, records) each having a coordinate 66 of a diagonal vertex of the unit area 62, a processing status 68, and a memory usage 70. .

頂点座標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 unit area 62 and the upper right vertex coordinates of the unit area 62. The processing status 68 indicates whether or not the OPC processing of each unit area 62 has been started (that is, the OPC processing of each unit area 62 has been instructed to the slave machine 6). Even when the OPC process is completed, the “OPC process has been started”.

処理状況68の初期値は、未処理である。メモリ使用量70は、各単位エリア62のOPC処理に使われるメモリ量である。メモリ使用量70の初期値は、ヌル・データである。   The initial value of the processing status 68 is unprocessed. The memory usage 70 is the amount of memory used for the OPC process of each unit area 62. The initial value of the memory usage 70 is null data.

(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 master machine 4 selects a plurality of areas 72 (hereinafter referred to as sample areas) from a plurality of unit areas 62 divided from the functional block region 30. For example, the number of sample areas 72 is the same as the number of slave machines 6 that acquired the identifier in step S4. The number of sample areas 72 may be smaller than the number of slave machines 6.

マスターマシン4は、ステップS4で取得した識別子に対応するスレーブマシン6それぞれに、サンプルエリア72のOPC処理を行わせる。各スレーブマシン6は、異なるサンプルエリア72をOPC処理する。尚、あるエリア(領域)をOPC処理するとは、該エリア内のパターンをOPC処理することを意味する。   The master machine 4 causes each slave machine 6 corresponding to the identifier acquired in step S4 to perform the OPC process of the sample area 72. Each slave machine 6 performs OPC processing on a different sample area 72. Note that OPC processing of an area (area) means that OPC processing is performed on a pattern in the area.

各スレーブマシン6は、OPC処理に使用されたメモリ使用量をマスターマシン4に送信する。メモリ使用量は、例えば各スレーブマシン6のOS(Operating System)により検出される。各スレーブマシン6はさらに、OPC処理されたサンプルエリア72のパターンデータをマスターマシン4に送信する。   Each slave machine 6 transmits the amount of memory used for the OPC process to the master machine 4. The memory usage is detected by, for example, an OS (Operating System) of each slave machine 6. Each slave machine 6 further transmits the pattern data of the sample area 72 subjected to the OPC process to the master machine 4.

各スレーブマシン6のOPC処理プログラムは、略同じものである。したがって各スレーブマシン6のメモリ使用量は、処理対象ブロックが同じであれば略同じである。   The OPC processing program of each slave machine 6 is substantially the same. Therefore, the memory usage of each slave machine 6 is substantially the same if the processing target blocks are the same.

マスターマシン4は各サンプルエリア72のメモリ使用量を受信すると、単位エリアデータ64(図13参照)のメモリ使用量70を受信したメモリ使用量で書き換える。具体的にはマスターマシン4は、OPC処理された各サンプルエリア72の頂点座標66に対応するメモリ使用量70の初期値(ヌルデータ)を、該各サンプルエリア72をOPC処理したスレーブマシン6のメモリ使用量で置き換える。   When the master machine 4 receives the memory usage of each sample area 72, the master machine 4 rewrites the memory usage 70 of the unit area data 64 (see FIG. 13) with the received memory usage. Specifically, the master machine 4 uses the initial value (null data) of the memory usage 70 corresponding to the vertex coordinates 66 of each sample area 72 subjected to the OPC processing, and the memory of the slave machine 6 that performs the OPC processing for each sample area 72. Replace with usage.

マスターマシン4はさらに、図15に示すように、単位エリアデータ64の処理状況68を変更する。具体的にはマスターマシン4は、(OPC処理が行われた)各サンプルエリア72に対応する処理状況68を、OPC処理の開始済みを意味する「完了」に変更する。 The master machine 4 further changes the processing status 68 of the unit area data 64 as shown in FIG. The master machine 4 is specifically, to change the processing-like status 68 corresponding to the (OPC processing is performed) each sample area 72, to "completion", which means started the OPC process.

マスターマシン4はさらに、OPC処理された各サンプルエリア72のパターンデータを有するレイアウトデータ(以下、OPCデータと呼ぶ)を生成する。OPCデータのフォーマットは例えば、GDS IIまたはOASISである。OPCデータのフォーマットは、GDS IIまたはOASISへの変換が可能な他のフォーマットであってもよい。   The master machine 4 further generates layout data (hereinafter referred to as OPC data) having pattern data of each sample area 72 subjected to OPC processing. The format of the OPC data is, for example, GDS II or OASIS. The OPC data format may be other formats that can be converted to GDS II or OASIS.

このような手順によりマスターマシン4は、選択された複数のエリア(サンプルエリア72)それぞれにおけるOPC処理のメモリ使用量(主記憶装置におけるメモリ使用量)を測定する(S14)。なお後述するように、マスターマシン4は単位サイズを縮小して、メモリ使用量を再測定することがある。 By such a procedure, the master machine 4 measures the memory usage (memory usage in the main storage device) of the OPC process in each of the plurality of selected areas (sample area 72) (S14). Incidentally, as described later, the master machine 4 to shrink the unit size, it is possible to re-measure the memory usage.

サンプルエリア72の一部(例えば、半数)は、パターン密度が高くなり易い機能ブロック領域30の中央部から選択されることが好ましい。   A part (for example, half) of the sample area 72 is preferably selected from the central part of the functional block region 30 where the pattern density tends to be high.

メモリ使用量は、全てのサンプルエリア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 master machine 4 ends step 14 when a certain number (for example, 70 to 80%) of all the sample areas have been measured. Also good.

―最大メモリ使用量の検出(S16)―
マスターマシン4は、ステップS14でメモリ使用量が記録された単位エリアデータ64(図15)を参照して、ステップS14で測定されたメモリ使用量のうち最大のメモリ使用量(以下、最大メモリ使用量と呼ぶ)を検出する(S16)。
-Detection of maximum memory usage (S16)-
The master machine 4 refers to the unit area data 64 (FIG. 15) in which the memory usage is recorded in step S14, and the maximum memory usage (hereinafter referred to as the maximum memory usage) among the memory usage measured in step S14. (Referred to as quantity) is detected (S16).

―判断(S18)―
マスターマシン4は、各スレーブマシン6のOPC処理に使用可能なメモリ容量(以下、使用可能メモリ量と呼ぶ)が最大メモリ使用量以上であるか判断する(S18)。
-Judgment (S18)-
The master machine 4 determines whether the memory capacity that can be used for the OPC process of each slave machine 6 (hereinafter referred to as “usable memory amount”) is equal to or greater than the maximum memory usage amount (S18).

使用可能メモリ量は例えば、スレーブマシン6の空きメモリ量に一定の係数(例えば、0.8)を掛け算して得られるメモリ量である。空きメモリ量とは、アプリケーションプログラムを実行していないスレーブマシン6で使用されていないメモリの量である。使用可能メモリ量は、予測値である。   The usable memory amount is, for example, a memory amount obtained by multiplying the free memory amount of the slave machine 6 by a certain coefficient (for example, 0.8). The free memory amount is the amount of memory that is not used by the slave machine 6 that is not executing the application program. The usable memory amount is a predicted value.

―再測定(S20)―
各スレーブマシン6の使用可能メモリ量にステップS16で検出した最大メモリ使用量より小さいものが存在する場合、マスターマシン4は単位サイズ60(図11)を縮小する(S20)。その後マスターマシン4はステップS12に戻り、メモリ使用量を再測定する(S12〜S16)。
-Remeasurement (S20)-
If there is a usable memory amount of each slave machine 6 that is smaller than the maximum memory usage detected in step S16, the master machine 4 reduces the unit size 60 (FIG. 11) (S20). Thereafter, the master machine 4 returns to step S12 and remeasures the memory usage (S12 to S16).

―処理命令先マシンの決定(S22)―
各スレーブマシン6の使用可能メモリ量が全て最大メモリ使用量以上の場合、マスターマシン4は、各スレーブマシン6にOPC処理の実行が可能か問い合わせる。
-Determination of processing instruction destination machine (S22)-
When the usable memory amount of each slave machine 6 is equal to or greater than the maximum memory use amount, the master machine 4 inquires each slave machine 6 whether the OPC process can be executed.

スレーブマシン6はOPC処理の実行が可能な場合、OPC処理の実行が可能であることをマスターマシン4に回答する。スレーブマシン6はさらに、回答時点での空きメモリ量をマスターマシン4に報告する。スレーブマシン6は、先に命令されたOPC処理の実行中などの理由で新たなOPC処理の実行が困難な場合、新たなOPC処理の実行が困難であることをマスターマシン4に回答する。   When the slave machine 6 can execute the OPC process, it replies to the master machine 4 that the OPC process can be executed. Further, the slave machine 6 reports the free memory amount at the time of answering to the master machine 4. If the execution of the new OPC process is difficult due to reasons such as the execution of the previously instructed OPC process, the slave machine 6 replies to the master machine 4 that the execution of the new OPC process is difficult.

マスターマシン4は例えば、OPC処理の実行が可能であると最初に回答したスレーブマシン6を、OPC処理の命令先に決定する(S22)。マスターマシン4はさらに、OPC処理の実行が可能と回答したスレーブマシンの数(以下、並列数と呼ぶ)をカウントし記録する。   For example, the master machine 4 determines the slave machine 6 that firstly replied that the execution of the OPC process is possible as the instruction destination of the OPC process (S22). Further, the master machine 4 counts and records the number of slave machines (hereinafter referred to as the parallel number) that answered that the OPC process can be executed.

―同時処理数の算出(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 master machine 4 calculates the available memory amount M1 (see step S18) of the slave machine 6 at the time of reporting from the free memory amount reported by each slave machine 6 that has replied that the execution of the OPC process is possible. Further, the master machine 4 divides the calculated usable memory amount M1 by the maximum memory usage amount M2 detected in step S16 to calculate the simultaneous processing number C (= M1 / M2) of each slave machine 6 (S24). . If the result of the division is not an integer, the decimal point is rounded down. When the slave machine 6 is a multi-core machine, the simultaneous processing number C is a number obtained by dividing the usable memory amount M1 by the maximum memory usage amount M2 and the number of cores.

算出された同時処理数Cは、各スレーブマシン6がメモリ不足を起こさずに同時にOPC処理できる単位エリア62の最大数である。   The calculated simultaneous processing number C is the maximum number of unit areas 62 in which each slave machine 6 can simultaneously perform OPC processing without causing a memory shortage.

―同時処理数の検査(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 slave machine 6 performs the OPC process on an area having the same number of unit areas 62 as the number of simultaneous processes (hereinafter referred to as a process area), it is unlikely that a memory shortage will occur. However, if the number of simultaneous processes is smaller than 1, there is a high possibility that a memory shortage will occur. Therefore, the master machine 4 determines whether or not the simultaneous usage amount of the slave machine 6 determined as the processing instruction destination in step S22 is 1 or more (S26).

同時使用量が1より小さい場合には、マスターマシン4はステップS22に戻り、別の処理命令先を決定する。同時使用量が1以上の場合には、マスターマシン4はステップS28に進む。   If the simultaneous usage amount is smaller than 1, the master machine 4 returns to step S22 and determines another processing instruction destination. If the simultaneous usage amount is 1 or more, the master machine 4 proceeds to step S28.

(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 master machine 4 is a numerical value (= Cmax × n) obtained by multiplying the largest value Cmax of the simultaneous processing numbers C calculated in step 24 by the number of unit areas 62 for which the OPC processing has not started is multiplied by the parallel number n. Hereinafter referred to as the maximum number of parallel processes) is determined (S28). The OPC process starts when the master machine 4 instructs the slave machine 6 to perform the OPC process.

この時マスターマシン4は、単位エリアデータ64(図15)を参照して、OPC処理が開始していない単位エリア62(処理状況58が「未処理」の単位エリア)の数を検出する。   At this time, the master machine 4 refers to the unit area data 64 (FIG. 15), and detects the number of unit areas 62 where the OPC processing has not started (unit areas whose processing status 58 is “unprocessed”).

OPC処理が開始していない単位エリア62の数が最大並列処理数(=Cmax×n)より多いと判断した場合、マスターマシン4はスレーブマシン6にOPC処理させる処理エリアを決定する。図16は、処理エリアの決定方法を説明する図である。   If it is determined that the number of unit areas 62 for which OPC processing has not started is greater than the maximum number of parallel processes (= Cmax × n), the master machine 4 determines a processing area for the slave machine 6 to perform OPC processing. FIG. 16 is a diagram illustrating a method for determining a processing area.

図16には、単位エリア62に分割された機能ブロック領域30が示されている。ハッチングされている単位エリア62は、OPC処理が開始済みである。ハッチングされていない単位エリア62は、OPC処理が開始されていない。   FIG. 16 shows the functional block area 30 divided into unit areas 62. The hatched unit area 62 has already started the OPC process. In the unit area 62 that is not hatched, the OPC process is not started.

マスターマシン4は図16に示すように、OPC処理が開始されていない単位エリア(OPC処理済みのものも含む)から一または複数のエリアを選択し、選択された単位エリア62を有する領域を処理エリア74に決定する(S30)。この時マスターマシン4は、単位エリアデータ64(図15参照)の処理状況68を参照して、OPC処理が開始されていない単位エリア(処理状況58が「未処理」の単位エリア)の一部または全部を処理エリア74に含める領域に決定する。   As shown in FIG. 16, the master machine 4 selects one or a plurality of areas from the unit areas (including those that have been OPC processed) where the OPC processing has not started, and processes the area having the selected unit area 62. The area 74 is determined (S30). At this time, the master machine 4 refers to the processing status 68 of the unit area data 64 (see FIG. 15), and part of the unit area where the OPC processing is not started (the unit area whose processing status 58 is “unprocessed”). Alternatively, the entire area is determined to be included in the processing area 74.

処理エリア74に含まる単位エリア62の数は、ステップS22でOPC処理の命令先を決定したスレーブマシン6の同時処理数Cである。同時処理数Cは多くの場合、2以上である。   The number of unit areas 62 included in the processing area 74 is the simultaneous processing number C of the slave machine 6 that has determined the instruction destination of the OPC processing in step S22. The number C of simultaneous processes is often 2 or more.

OPC処理されていない単位エリア62の数が同時処理数Cより少ない場合、処理エリア74に含まれる単位エリア62の数は同時処理数Cより小さくする。   When the number of unit areas 62 not subjected to OPC processing is smaller than the simultaneous processing number C, the number of unit areas 62 included in the processing area 74 is made smaller than the simultaneous processing number C.

すなわち処理エリア74に含まれる単位エリア62の数は、同時処理数C以下に制限される。一方、処理エリア74の形状は一定の形状に制限されない。例えば、処理エリア74の形状はL字形であってもよい。   That is, the number of unit areas 62 included in the processing area 74 is limited to the number of simultaneous processes C or less. On the other hand, the shape of the processing area 74 is not limited to a certain shape. For example, the shape of the processing area 74 may be L-shaped.

尚、ステップ32は後述する「(vi)平準化処理」で説明する。   Step 32 will be described in “(vi) Leveling process” described later.

―OPC処理(S34)―
マスターマシン4は、ステップS22で処理命令先に決定されたスレーブマシン6に、ステップS30で決定した処理エリア74のOPC処理を命令する。
-OPC processing (S34)-
The master machine 4 commands the slave machine 6 determined as the processing command destination in step S22 to perform the OPC process in the processing area 74 determined in step S30.

マスターマシン4はOPC処理を命令すると、単位エリアデータ64(図15参照)のうち上記処理エリア74に含まれる単位エリア62の処理状況68を「未処理」から「完了」に変更する。   When the master machine 4 instructs the OPC processing, the processing status 68 of the unit area 62 included in the processing area 74 in the unit area data 64 (see FIG. 15) is changed from “unprocessed” to “completed”.

OPC処理を命令されたスレーブマシン6は、上記処理エリア74のOPC処理を行う。スレーブマシン6はOPC処理が終わると、OPC処理の結果をマスターマシン4に送信する。マスターマシン4に送信される「OPC処理の結果」は、OPC処理されたパターンのパターンデータ(以下、OPC処理されたパターンデータと呼ぶ)である。   The slave machine 6 instructed to perform the OPC process performs the OPC process in the processing area 74. When the OPC process is completed, the slave machine 6 transmits the result of the OPC process to the master machine 4. The “OPC process result” transmitted to the master machine 4 is pattern data of an OPC-processed pattern (hereinafter referred to as OPC-processed pattern data).

マスターマシン4はOPC処理されたパターンデータを受信すると、受信したパターンデータをOPCデータに追加する。OPCデータは、ステップS14で説明したように、OPC処理されたパターンデータを有するレイアウトデータである。   When the master machine 4 receives the OPC-processed pattern data, the master machine 4 adds the received pattern data to the OPC data. As described in step S14, the OPC data is layout data having pattern data subjected to OPC processing.

―未処理エリアのOPC処理(S36)―
マスターマシン4はステップS34でスレーブマシン6にOPC処理を命令するとOPC処理の結果を待たずに、ステップS10で選択した機能ブロック30にOPC処理が開始されてない単位エリア62が存在するか判断する。この時マスターマシン4は、単位エリアデータ64の処理状況68(図15)を参照する。
-OPC processing of unprocessed area (S36)-
When the master machine 4 commands the slave machine 6 to execute the OPC process in step S34, the master machine 4 does not wait for the result of the OPC process and determines whether there is a unit area 62 in which the OPC process has not been started in the function block 30 selected in step S10. . At this time, the master machine 4 refers to the processing status 68 (FIG. 15) of the unit area data 64.

OPC処理が開始していない単位エリア62が存在すると判断した場合、マスターマシン4はステップS22に戻って、ステップS22〜ステップS36を再度実行する。これにより、複数の処理エリア74がそれぞれ、複数のスレーブマシン6により並列してOPC処理されるIf it is determined that there is a unit area 62 for which the OPC process has not started, the master machine 4 returns to step S22 and executes steps S22 to S36 again. As a result, the plurality of processing areas 74 are each subjected to OPC processing in parallel by the plurality of slave machines 6.

マスターマシン4はステップS36で、複数のスレーブマシン6のうちOPC処理を実行していない(すなわち、実行中でない)第1スレーブマシン6にOPCを命令した後にOPC処理が開始されていない単位エリアが存在するか否か判断する。マスターマシン4は、OPC処理が開始されていない単位エリアが存在すると判断するとステップS22に戻って、複数のコンピュータ6のうちOPC処理を実行していない第2コンピュータにOPC処理が開始されていない単位エリアのOPCを命令する。   In step S36, the master machine 4 has a unit area in which the OPC process is not started after instructing the OPC process to the first slave machine 6 that is not executing the OPC process (that is, not being executed) among the plurality of slave machines 6. Determine if it exists. When the master machine 4 determines that there is a unit area for which the OPC process has not been started, the master machine 4 returns to step S22, and a unit in which the OPC process has not been started for the second computer that is not executing the OPC process among the plurality of computers 6 is returned. Command area OPC.

(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 unit areas 62 for which OPC processing has not started is equal to or less than the maximum number of parallel processes (= Cmax × n), the number of unit areas 62 included in the processing area 74 is determined to be 1. That is, the unit area 62 is determined as an OPC processing target.

これにより後述するように、各スレーブマシン6で処理される単位エリア62の数が平準化される。   Thereby, as will be described later, the number of unit areas 62 processed in each slave machine 6 is leveled.

(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 unit area 62 for which OPC processing has not started, the master machine 4 waits until all OPC processing is completed.

全てのOPC処理が終了すると、マスターマシン4はOPC処理が済んだ機能ブロック領域30のブロック名58を記録する。マスターマシン4はさらに、OPC処理が済んでいない機能ブロック30が存在するか判断する(S38)。   When all the OPC processes are completed, the master machine 4 records the block name 58 of the functional block area 30 for which the OPC process has been completed. The master machine 4 further determines whether there is a functional block 30 that has not been subjected to the OPC process (S38).

OPC処理が済んでいない機能ブロック30が存在すると判断した場合には、マスターマシン4はステップS10に戻って、OPC処理が済んでいない機能ブロック30に対してステップS10〜ステップS36を再度実行する。   When it is determined that there is a functional block 30 that has not been subjected to the OPC process, the master machine 4 returns to step S10 and executes steps S10 to S36 again for the functional block 30 that has not been subjected to the OPC process.

(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 functional block 30 that has not been subjected to the OPC process, the master machine 4 further determines whether the OPC process for the area outside the functional block has been completed (S40).

機能ブロック外領域の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 master machine 4 returns to Step S10 and executes Steps S10 to S38 again for the function block outside area. At this time, the master machine 4 and the slave machine 6 execute each step by regarding the area outside the functional block as the functional block area.

(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 master machine 4 synthesizes the OPC-processed pattern (S42). As a result, a mask pattern subjected to the OPC process is formed. Specifically, for example, the master machine 4 combines pattern data included in the OPC data by OR processing.

マスターマシン4はさらに、OPC処理されたマスクパターンを出力する。出力されるマスクパターンのフォーマットは、例えばGDS IIまたはOASISである。 The master machine 4 further outputs a mask pattern subjected to OPC processing. Format of the mask pattern output is, for example, a GDS II or OASIS.

(3)単位エリアごとのOPC処理
スレーブマシン6が一度にOPC処理できるパターン数は、コンピュータのメモリ容量によって制限される。そこでマスターマシン4は機能ブロック領域および機能ブロック外領域を単位エリア62に分割し、該単位エリア62を有する処理エリア74(図16)をOPC処理する。
(3) OPC processing for each unit area The number of patterns that the slave machine 6 can perform OPC processing at a time is limited by the memory capacity of the computer. Therefore, the master machine 4 divides the functional block area and the functional block outside area into unit areas 62, and performs OPC processing on the processing area 74 (FIG. 16) having the unit areas 62.

単位エリア62は、全てのスレーブマシン6がメモリ不足を起こさずにOPC処理できる領域である。単位エリア62は、ブロック領域(機能ブロック領域および機能ブロック外領域)ごとに異なる。   The unit area 62 is an area where all slave machines 6 can perform OPC processing without causing a memory shortage. The unit area 62 is different for each block area (functional block area and non-functional block area).

そこで各ブロック領域の単位エリア62のうち最も小さい単位エリア62でレイアウトパターンを分割し、該分割により得られる領域(OPCエリア)内のパターンをOPC処理することも考えられる。この場合OPCエリアが予め決定されていれば、S6〜S32は省略される。しかし、OPCエリアの決定は容易ではない。さらに上記のように最も小さいOPCエリアをOPC処理する方法には、レイアウトパターン全体のOPC処理時間が長くなるという問題がある。   Therefore, it is also conceivable to divide the layout pattern in the smallest unit area 62 among the unit areas 62 of each block area, and perform OPC processing on the pattern in the area (OPC area) obtained by the division. In this case, if the OPC area is determined in advance, S6 to S32 are omitted. However, it is not easy to determine the OPC area. Furthermore, the method of performing OPC processing on the smallest OPC area as described above has a problem that the OPC processing time of the entire layout pattern becomes long.

図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 area 76 is small. In the OPC process, the influence of the image of the mask pattern 78 in the OPC area 76 from the adjacent mask pattern 80 is corrected. For this reason, the OPC process is performed on all patterns in the area 82 wider than the OPC area 76. However, only the pattern within the OPC area 76 among the OPC processed patterns is used, and the data of the pattern subjected to the OPC processing outside the OPC area 76 is discarded.

したがってレイアウトパターン全体の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 OPC area 76 decreases and the number of layout pattern divisions increases. For this reason, the smaller the OPC area 76, the longer the total OPC processing time.

さらに分割された領域がマスターマシン4とスレーブマシン6の間で送受信される回数も、OPCエリア76が小さくなりレイアウトパターンの分割数が増えるほど多くなる。このため、全OPC処理時間はさらに長くなる。   Further, the number of times the divided area is transmitted / received between the master machine 4 and the slave machine 6 also increases as the OPC area 76 becomes smaller and the layout pattern division number increases. This further increases the total OPC processing time.

一方図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 slave machine 6 is widened, the total OPC processing time is shortened. Furthermore, since the number of times that the divided area is transmitted and received between the master machine 4 and the slave machine 6 is reduced, the total OPC processing time is further shortened.

(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 processing area 74 is sequentially OPC processed in steps S22 to S36. The horizontal axis is the name of each slave machine 6. The vertical axis represents the number of unit areas 62 (number of processes) processed by each of the slave machines SL1 to SL5.

今、スレーブマシン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 unit areas 62 is 25.

ステップS22〜S36により処理エリア74が順次スレーブマシンSL1〜SL5に割り当てられ、複数のスレーブマシン6が複数の処理エリア74を並列してOPC処理する。図18に示す例では、一巡目の割り当て(処理命令)により各スレーブマシンSL1〜SL5が処理する単位エリア62の数84は、各スレーブマシンSL1〜SL5の同時処理数である。   The processing areas 74 are sequentially assigned to the slave machines SL1 to SL5 through steps S22 to S36, and the plurality of slave machines 6 perform the OPC process on the plurality of processing areas 74 in parallel. In the example shown in FIG. 18, the number 84 of unit areas 62 processed by each slave machine SL1 to SL5 by the first round of allocation (processing instruction) is the number of simultaneous processes of each slave machine SL1 to SL5.

二巡目の割り当てにより各スレーブマシンSL1〜SL5が処理する単位エリア62の数86は、スレーブマシンSL1では同時処理数(=1)である。スレーブマシンSL2〜スレーブマシンSL5では零である。これは、スレーブマシンSL1に処理エリア74が割り当てられる時点で、スレーブマシンSL2〜スレーブマシンSL5は一巡目で割り当てられたOPC処理が済んでいないためである(S22)。   The number 86 of unit areas 62 processed by the slave machines SL1 to SL5 by the second round allocation is the number of simultaneous processes (= 1) in the slave machine SL1. It is zero in slave machine SL2 to slave machine SL5. This is because when the processing area 74 is assigned to the slave machine SL1, the slave machine SL2 to the slave machine SL5 have not completed the OPC process assigned in the first round (S22).

三巡目の割り当てにより各スレーブマシンSL1〜SL5が処理する単位エリア62の数88は、スレーブマシンSL1とスレーブマシンSL2では同時処理数である。スレーブマシンSL3〜スレーブマシンSL5では零である。   The number 88 of unit areas 62 processed by each of the slave machines SL1 to SL5 by the third round allocation is the number of simultaneous processes in the slave machine SL1 and the slave machine SL2. It is zero in slave machine SL3 to slave machine SL5.

この時の最大同時処理数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 unit areas 62 in which the OPC process has not started is nine.

故に、OPC処理が開始されていない単位エリア62の数(=9)は、最大並列処理数(=4)より大きい。このためスレーブマシンSL1とスレーブマシンSL2には、同時処理数と同数の単位エリア62を含む処理エリア74が割り当てられる(S30)。   Therefore, the number (= 9) of unit areas 62 in which the OPC process has not started is larger than the maximum number of parallel processes (= 4). Therefore, the processing area 74 including the same number of unit areas 62 as the number of simultaneous processes is allocated to the slave machine SL1 and the slave machine SL2 (S30).

四巡目の割り当てでは、スレーブマシン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 unit area 62 is allocated to the slave machine SL1 and the slave machine SL3. The maximum simultaneous processing number Cmax at this time is the largest simultaneous processing number Cmax (= 3) among the simultaneous processing number C (= 1) of the slave machine SL1 and the simultaneous processing number C (= 3) of the slave machine SL3. The parallel number n is 2. Therefore, the maximum number of parallel processes (= Cmax × n) is 6 (= 3 × 2). The number of unit areas 62 in which the OPC process has not started is six.

故に、OPC処理が開始されていない単位エリア62の数(=6)は、最大並列処理数(=6)以下である。このためスレーブマシンSL1とスレーブマシンSL3には、単位エリアが割り当てられる(S32)。   Therefore, the number (= 6) of unit areas 62 where the OPC process has not started is equal to or less than the maximum number of parallel processes (= 6). For this reason, unit areas are allocated to the slave machines SL1 and SL3 (S32).

五巡目の割り当てでも、OPC処理が開始されていない単位エリア62の数は、最大並列処理数以下になる。したがってスレーブマシンSL1〜SL4に、単位エリアが割り当てられる。このため図18に示すように、各スレーブマシンSL1〜SL5の処理数は平準化される。各スレーブマシン6の同時処理数および単位エリア62の総数は、図18の例と同じである。 Even in the fifth round of allocation, the number of unit areas 62 for which OPC processing has not started is equal to or less than the maximum number of parallel processes. Therefore, unit areas are allocated to the slave machines SL1 to SL4. For this reason, as shown in FIG. 18, the number of processes of each of the slave machines SL1 to SL5 is leveled. The number of simultaneous processes of each slave machine 6 and the total number of unit areas 62 are the same as in the example of FIG.

図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 slave machine 6. The vertical axis represents the number of unit areas 62 processed by each slave machine 6 (the number of processes).

三巡目の割り当てまでは各スレーブマシンの処理数は、平準化処理を行う場合と同じである。しかし図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 unit areas 62 in which OPC processing is started (commanded) in each allocation cycle is the maximum number of parallel processes (= Cmax × n). Therefore, as shown in FIG. 18, when the number of unit areas 62 for which OPC processing is not started (commanded) becomes equal to or less than the maximum number of parallel processing, the area of the OPC processing is set as the unit area. Variations in numbers are reduced.

以上の例では、OPC処理が開始されていない単位エリア62の数が最大並列処理数(=Cmax×n)以下の場合に、平準化処理が行われる。しかしOPC処理が開始されていない単位エリア62の数が最大並列処理数以外の一定数以下の場合に、平準化処理が行われてもよい。   In the above example, the leveling process is performed when the number of unit areas 62 for which the OPC process has not started is equal to or less than the maximum number of parallel processes (= Cmax × n). However, the leveling process may be performed when the number of unit areas 62 for which the OPC process has not started is equal to or less than a certain number other than the maximum number of parallel processes.

例えば、OPC処理が開始されていない単位エリア62の数が同時処理数のうち2番に大きい同時処理数に並列数nをかけた数以下の場合に、平準化処理が行われてもよい。この場合でも、スレーブマシンの処理数に生じるバラつきは、平準化処理を行わない場合より小さくなる。   For example, the leveling process may be performed when the number of unit areas 62 in which the OPC process has not been started is equal to or less than the number of simultaneous processings that is the second largest among the simultaneous processing numbers multiplied by the parallel number n. Even in this case, the variation occurring in the number of processes of the slave machine is smaller than that in the case where the leveling process is not performed.

以上の例ではマスターマシン4は、OPC処理を行わない。しかしマスターマシン4が、スレーブマシン6とともにOPC処理を行ってもよい。   In the above example, the master machine 4 does not perform the OPC process. However, the master machine 4 may perform the OPC process together with the slave machine 6.

以上の実施の形態に関し、更に以下の付記を開示する。   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 appendix 4,
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 attachment 4,
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 ... Pattern correction device 4 ... Master machine 6 ... Slave machine 30 ... Functional block area 54 ... Unit size data 62 ... Unit area 74 ... Processing area

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.
請求項1に記載のレイアウトパターンの補正方法において、
前記パターン密度は、前記機能ブロック領域に含まれるパターンの最小線幅に基づいて決定されることを特徴とするレイアウトパターンの補正方法。
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.
請求項1又は2に記載のレイアウトパターンの補正方法において、さらに、
前記コンピュータに前記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.
請求項3に記載のレイアウトパターンの補正方法において、
前記コンピュータに前記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.
請求項4に記載のレイアウトパターンの補正方法において、
前記一定数は、前記各処理エリアを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.
請求項3に記載のレイアウトパターンの補正方法において、
記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.
JP2012242617A 2012-11-02 2012-11-02 Layout pattern correction method Expired - Fee Related JP6107059B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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