[go: up one dir, main page]

KR102877879B1 - Method for optical proximity correction in which consistency is maintain and method for manufacturing mask using the same - Google Patents

Method for optical proximity correction in which consistency is maintain and method for manufacturing mask using the same

Info

Publication number
KR102877879B1
KR102877879B1 KR1020190141095A KR20190141095A KR102877879B1 KR 102877879 B1 KR102877879 B1 KR 102877879B1 KR 1020190141095 A KR1020190141095 A KR 1020190141095A KR 20190141095 A KR20190141095 A KR 20190141095A KR 102877879 B1 KR102877879 B1 KR 102877879B1
Authority
KR
South Korea
Prior art keywords
segments
segment
value
hash
layout
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.)
Active
Application number
KR1020190141095A
Other languages
Korean (ko)
Other versions
KR20210045265A (en
Inventor
오흥석
김주병
김상훈
김국현
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US16/855,083 priority Critical patent/US11150551B2/en
Priority to CN202010716289.2A priority patent/CN112668272B/en
Publication of KR20210045265A publication Critical patent/KR20210045265A/en
Application granted granted Critical
Publication of KR102877879B1 publication Critical patent/KR102877879B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03FPHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
    • G03F1/00Originals for photomechanical production of textured or patterned surfaces, e.g., masks, photo-masks, reticles; Mask blanks or pellicles therefor; Containers specially adapted therefor; Preparation thereof
    • G03F1/36Masks having proximity correction features; Preparation thereof, e.g. optical proximity correction [OPC] design processes
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03FPHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
    • G03F7/00Photomechanical, e.g. photolithographic, production of textured or patterned surfaces, e.g. printing surfaces; Materials therefor, e.g. comprising photoresists; Apparatus specially adapted therefor
    • G03F7/70Microphotolithographic exposure; Apparatus therefor
    • G03F7/70425Imaging strategies, e.g. for increasing throughput or resolution, printing product fields larger than the image field or compensating lithography- or non-lithography errors, e.g. proximity correction, mix-and-match, stitching or double patterning
    • G03F7/70433Layout for increasing efficiency or for compensating imaging errors, e.g. layout of exposure fields for reducing focus errors; Use of mask features for increasing efficiency or for compensating imaging errors
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03FPHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
    • G03F7/00Photomechanical, e.g. photolithographic, production of textured or patterned surfaces, e.g. printing surfaces; Materials therefor, e.g. comprising photoresists; Apparatus specially adapted therefor
    • G03F7/70Microphotolithographic exposure; Apparatus therefor
    • G03F7/70425Imaging strategies, e.g. for increasing throughput or resolution, printing product fields larger than the image field or compensating lithography- or non-lithography errors, e.g. proximity correction, mix-and-match, stitching or double patterning
    • G03F7/70433Layout for increasing efficiency or for compensating imaging errors, e.g. layout of exposure fields for reducing focus errors; Use of mask features for increasing efficiency or for compensating imaging errors
    • G03F7/70441Optical proximity correction [OPC]
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03FPHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
    • G03F7/00Photomechanical, e.g. photolithographic, production of textured or patterned surfaces, e.g. printing surfaces; Materials therefor, e.g. comprising photoresists; Apparatus specially adapted therefor
    • G03F7/70Microphotolithographic exposure; Apparatus therefor
    • G03F7/70483Information management; Active and passive control; Testing; Wafer monitoring, e.g. pattern monitoring
    • G03F7/70491Information management, e.g. software; Active and passive control, e.g. details of controlling exposure processes or exposure tool monitoring processes
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03FPHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
    • G03F7/00Photomechanical, e.g. photolithographic, production of textured or patterned surfaces, e.g. printing surfaces; Materials therefor, e.g. comprising photoresists; Apparatus specially adapted therefor
    • G03F7/70Microphotolithographic exposure; Apparatus therefor
    • G03F7/70691Handling of masks or workpieces
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/02Manufacture or treatment of semiconductor devices or of parts thereof
    • H01L21/027Making masks on semiconductor bodies for further photolithographic processing not provided for in group H01L21/18 or H01L21/34
    • H01L21/033Making masks on semiconductor bodies for further photolithographic processing not provided for in group H01L21/18 or H01L21/34 comprising inorganic layers
    • H01L21/0334Making masks on semiconductor bodies for further photolithographic processing not provided for in group H01L21/18 or H01L21/34 comprising inorganic layers characterised by their size, orientation, disposition, behaviour, shape, in horizontal or vertical plane
    • H01L21/0337Making masks on semiconductor bodies for further photolithographic processing not provided for in group H01L21/18 or H01L21/34 comprising inorganic layers characterised by their size, orientation, disposition, behaviour, shape, in horizontal or vertical plane characterised by the process involved to create the mask, e.g. lift-off masks, sidewalls, or to modify the mask, e.g. pre-treatment, post-treatment
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10DINORGANIC ELECTRIC SEMICONDUCTOR DEVICES
    • H10D89/00Aspects of integrated devices not covered by groups H10D84/00 - H10D88/00
    • H10P76/4085

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Inorganic Chemistry (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Manufacturing & Machinery (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Preparing Plates And Mask In Photomechanical Process (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

프로그램 코드를 포함하는 컴퓨터 판독 가능한 매체가 개시된다. 프로세서에 의해 프로그램 코드가 실행될 때, 프로세서는 반도체 칩의 레이아웃을 복수의 패치들로 분할하는 단계, 상기 복수의 패치들 각각의 레이아웃으로부터 복수의 세그먼트들을 생성하는 단계로써, 상기 복수의 패치들 중 제 1 패치는 제 1 세그먼트들을 포함하고, 제 2 패치는 제 2 세그먼트들을 포함하는 것, 상기 제 1 세그먼트들에 각각 대응하는 해시 값들을 계산하는 단계, 상기 제 2 세그먼트들에 각각 대응하는 해시 값들을 계산하는 단계, 상기 제 1 세그먼트들 중, 제 1 해시 값을 갖는 세그먼트들의 바이어스 값들을 계산하는 단계, 상기 바이어스 값들에 기반하여 대표값을 계산하는 단계, 및 상기 제 1 세그먼트들 중, 상기 제 1 해시 값을 갖는 세그먼트들에 상기 대표값을 적용하는 단계를 실행한다.A computer-readable medium including program code is disclosed. When the program code is executed by a processor, the processor executes the steps of: dividing a layout of a semiconductor chip into a plurality of patches; generating a plurality of segments from the layout of each of the plurality of patches, wherein a first patch of the plurality of patches includes first segments and a second patch includes second segments; calculating hash values corresponding to each of the first segments; calculating hash values corresponding to each of the second segments; calculating bias values of segments having a first hash value among the first segments; calculating a representative value based on the bias values; and applying the representative value to segments having the first hash value among the first segments.

Description

일관성이 유지되는 광 근접 보정 방법 및 이를 이용한 마스크 제조 방법{METHOD FOR OPTICAL PROXIMITY CORRECTION IN WHICH CONSISTENCY IS MAINTAIN AND METHOD FOR MANUFACTURING MASK USING THE SAME}Method for optical proximity correction in which consistency is maintained and method for manufacturing mask using the same

본 발명은 반도체 공정에 관한 것으로, 좀 더 상세하게는, 일관성이 유지되는 광 근접 보정 방법 및 이를 이용한 마스크 제작 방법에 관한 것이다.The present invention relates to a semiconductor process, and more specifically, to an optical proximity correction method that maintains consistency and a mask manufacturing method using the same.

최근 전자 산업이 급속도로 발전함에 따라, 보다 높은 성능, 보다 높은 신뢰성, 그리고 보다 작은 사이즈를 갖는 전자 장치에 대한 요구가 증가하고 있다. 전자 장치는 반도체 제조 공정에 의해 제작되는 반도체 소자들로 구현된다. 따라서, 이러한 요구를 충족시키기 위해, 반도체 장치의 구조는 점차 복잡해지고 있으며, 고집적화 되고 있다. With the recent rapid development of the electronics industry, demand is increasing for electronic devices with higher performance, greater reliability, and smaller sizes. Electronic devices are implemented using semiconductor components manufactured through semiconductor manufacturing processes. Consequently, to meet these demands, the structures of semiconductor devices are becoming increasingly complex and highly integrated.

반도체 소자들은 포토 리소그래피(Photo Lithography) 공정에 의해 얻어진다. 포토 리소그래피 공정을 통하여 반도체 웨이퍼 상에 다양한 패턴들을 포함하는 레이아웃이 인쇄된다. 그런데, 반도체 공정의 집적도가 높아짐에 따라, 마스크의 이미지 패턴들 사이의 거리가 매우 가까워지고 있다. 이러한 "근접성(Proximity)" 때문에, 빛의 간섭 및 회절이 발생하고, 웨이퍼 상에 원하는 레이아웃과 다른 왜곡된 레이아웃이 인쇄될 수 있다.Semiconductor devices are manufactured through the photolithography process. Through this process, a layout containing various patterns is printed on a semiconductor wafer. However, as the integration of semiconductor processes increases, the distance between the image patterns on the mask is becoming increasingly close. This proximity causes interference and diffraction of light, potentially resulting in a distorted layout printed on the wafer that differs from the desired layout.

레이아웃의 왜곡을 방지하기 위해, 광 근접 보정(Optical Proximity Correction)과 같은 해상도 향상 기법(Resolution Enhancement Technology)이 이용된다. 다만, 동일한 형상과 동일한 주변 조건을 갖는 패턴들에 대한 광 근접 보정을 수행함에 있어서, 일관성(consistency)를 유지시키는 것은 반도체 소자의 신뢰성 측면에서 매우 중요하다. 뿐만 아니라, 바이어스 값을 생성하기 위한 시뮬레이션 과정은 많은 시간으로 필요로 한다. 그러므로, 일관성을 유지시킴과 동시에 효율적으로 광 근접 보정을 수행하는 것은 매우 중요하다.To prevent layout distortion, resolution enhancement techniques such as optical proximity correction (OPC) are utilized. However, maintaining consistency when performing OPC on patterns with identical shapes and ambient conditions is crucial for the reliability of semiconductor devices. Furthermore, the simulation process for generating bias values is time-consuming. Therefore, maintaining consistency while efficiently performing OPC is crucial.

본 개시의 실시 예는 동일한 주변 조건을 갖는 패턴들에 대하여 일관성을 유지하게 하는 광 근접 보정 방법을 제공한다.Embodiments of the present disclosure provide an optical proximity correction method that maintains consistency for patterns having identical ambient conditions.

나아가, 본 개시의 실시 예는 일관성을 유지하게 하는 광 근접 보정을 이용하여 생성된 마스크 제작 방법을 제공한다.Furthermore, embodiments of the present disclosure provide a method for manufacturing a mask generated using optical proximity correction that maintains consistency.

본 개시의 실시 예에 따른 프로그램 코드를 포함하는 컴퓨터 판독 가능한 매체에 있어서, 프로세서에 의해 상기 프로그램 코드가 실행될 때, 상기 프로세서는, 반도체 칩의 레이아웃을 복수의 패치들로 분할하는 단계, 상기 복수의 패치들 각각의 레이아웃으로부터 복수의 세그먼트들을 생성하는 단계로써, 상기 복수의 패치들 중 제 1 패치는 제 1 세그먼트들을 포함하고, 제 2 패치는 제 2 세그먼트들을 포함하는 것, 해시 함수를 이용하여 상기 제 1 세그먼트들 및 상기 제 2 세그먼트들에 각각 대응하는 해시 값들을 계산하는 단계, 상기 제 1 세그먼트들 중, 제 1 해시 값을 갖는 세그먼트들의 바이어스 값들을 계산하는 단계, 상기 바이어스 값들에 기반하여 대표값을 계산하는 단계, 그리고 상기 제 1 세그먼트들 중, 상기 제 1 해시 값을 갖는 세그먼트들에 상기 대표값을 적용하는 단계를 실행하되, 상기 해시 함수는 각 세그먼트의 제 1 특성 값, 상기 각 세그먼트에 인접한 적어도 하나의 세그먼트의 제 2 특성 값, 및 상기 각 세그먼트와 상기 적어도 하나의 세그먼트 사이의 제 3 특성 값에 의존한다.In a computer-readable medium including a program code according to an embodiment of the present disclosure, when the program code is executed by a processor, the processor executes the steps of: dividing a layout of a semiconductor chip into a plurality of patches; generating a plurality of segments from the layout of each of the plurality of patches, wherein a first patch of the plurality of patches includes first segments and a second patch includes second segments; calculating hash values corresponding to the first segments and the second segments using a hash function, respectively; calculating bias values of segments having a first hash value among the first segments; calculating a representative value based on the bias values; and applying the representative value to segments having the first hash value among the first segments, wherein the hash function depends on a first characteristic value of each segment, a second characteristic value of at least one segment adjacent to each segment, and a third characteristic value between each segment and the at least one segment.

본 개시의 다른 실시 예에 따른 프로그램 코드를 포함하는 컴퓨터 판독 가능한 매체에 있어서, 프로세서에 의해 상기 프로그램 코드가 실행될 때, 상기 프로세서는, 반도체 소자의 레이아웃으로부터 복수의 세그먼트들을 생성하는 단계, 상기 복수의 세그먼트들 각각에 대하여, 각 세그먼트의 제 1 특성 값, 상기 각 세그먼트에 인접한 적어도 하나의 세그먼트의 제 2 특성 값, 및 상기 각 세그먼트와 상기 적어도 하나의 세그먼트 사이의 제 3 특성 값에 의존하는 해시 함수를 이용하여 해시 값을 계산하는 단계, 상기 복수의 세그먼트들 각각에 대하여 바이어스 값들을 계산하는 단계, 상기 계산된 해시 값들 중 서로 동일한 동일한 해시 값을 갖는 복수의 세그먼트들의 바이어스 값들에 기반하여 대표값을 계산하는 단계, 그리고 상기 서로 동일한 해시 값을 갖는 상기 복수의 세그먼트들에 상기 대표값을 적용하는 단계를 실행한다. In another embodiment of the present disclosure, a computer-readable medium including a program code, when the program code is executed by a processor, the processor executes the steps of: generating a plurality of segments from a layout of a semiconductor device; calculating a hash value for each of the plurality of segments using a hash function that depends on a first characteristic value of each segment, a second characteristic value of at least one segment adjacent to each segment, and a third characteristic value between each segment and the at least one segment; calculating bias values for each of the plurality of segments; calculating a representative value based on bias values of a plurality of segments having the same hash value among the calculated hash values; and applying the representative value to the plurality of segments having the same hash value.

본 개시의 또 다른 실시 예에 따른 반도체 소자의 제조 방법은, 상기 반도체 소자의 레이아웃으로부터 복수의 세그먼트들을 생성하는 단계, 상기 복수의 세그먼트들 각각에 대하여, 각 세그먼트의 제 1 특성 값, 상기 각 세그먼트에 인접한 적어도 하나의 세그먼트의 제 2 특성 값, 및 상기 각 세그먼트와 상기 적어도 하나의 세그먼트 사이의 제 3 특성 값에 의존하는 해시 함수를 이용하여 해시 값을 계산하는 단계, 상기 복수의 세그먼트들 각각에 대하여 바이어스 값들을 계산하는 단계, 상기 계산된 해시 값들 중 서로 동일한 동일한 해시 값을 갖는 복수의 세그먼트들의 바이어스 값들에 기반하여 대표값을 계산하는 단계, 상기 대표값에 따라 보정된 마스크를 생성하는 단계, 그리고 상기 마스크를 이용하여 기판 상에 패턴들을 형성하는 단계를 포함한다.According to another embodiment of the present disclosure, a method for manufacturing a semiconductor device includes the steps of: generating a plurality of segments from a layout of the semiconductor device; calculating a hash value for each of the plurality of segments using a hash function that depends on a first characteristic value of each segment, a second characteristic value of at least one segment adjacent to each segment, and a third characteristic value between each segment and the at least one segment; calculating bias values for each of the plurality of segments; calculating a representative value based on bias values of a plurality of segments having the same hash value among the calculated hash values; generating a mask corrected according to the representative value; and forming patterns on a substrate using the mask.

본 개시의 예시적인 실시 예들에 의하면, 레이아웃으로부터 생성된 세그먼트들 각각에 대하여 세그먼트 자체의 특성 및 주변 세그먼트를 고려하여 해시 값이 계산된다. 그리고, 동일한 해시 값을 갖는 세그먼트들의 바이어스 값들에 대하여 대표값이 계산된다. 계산된 대표값은 동일한 해시 값을 갖는 세그먼트들에 공통으로 적용된다. 그러므로, 패치(patch)들 간, 혹은 반도체 칩들 간의 일관성이 유지된다.According to exemplary embodiments of the present disclosure, a hash value is calculated for each segment generated from a layout, taking into account the characteristics of the segment itself and surrounding segments. A representative value is then calculated for the bias values of segments with the same hash value. This calculated representative value is applied to all segments with the same hash value. Therefore, consistency is maintained between patches or between semiconductor chips.

도 1은 본 개시의 실시 예에 따른 반도체 소자의 설계 및 제조 방법을 보여주는 순서도이다.
도 2는 본 개시의 실시 예에 따른 마스크를 제작하기 위해 이용되는 포토 리소그래피 시스템을 개념적으로 도시한다.
도 3은 웨이퍼 상에 형성되는 레이아웃을 개념적으로 도시한다.
도 4는 광 근접 보정에서 레이아웃의 윤곽을 복수의 세그먼트로 분할하는 과정을 개념적으로 도시한다.
도 5는 광 근접 보정에 의해 갱신된 레이아웃을 개념적으로 도시한다.
도 6은 본 개시의 실시 예에 따른 광 근접 보정을 수행하기 위한 시스템을 도시한다.
도 7은 본 개시의 실시 예에 따른 광 근접 보정을 실행하는 방법을 도시한다.
도 8은 본 개시의 실시 예에 따른 광 근접 보정을 실행하는 방법을 도시한다.
도 9는 본 개시의 실시 예에 따른 세그먼트의 해시 값을 결정하는 요소들을 개념적으로 도시한다.
도 10은 본 개시의 실시 예에 따른 세그먼트의 해시 값을 결정하는 요소들을 개념적으로 도시한다.
도 11은 본 개시의 실시 예에 따른 광 근접 보정을 실행하는 방법을 도시한다.
도 12는 복수의 패치들의 세그먼트들의 바이어스 값들로부터 대표값을 계산하는 것을 개념적으로 도시한다.
도 13은 본 개시의 실시 예에 따른 광 근접 보정을 실행하는 방법을 도시한다.
도 14는 본 개시의 실시 예에 따른 광 근접 보정을 수행하는 방법을 도시한다.
도 15는 마스터 장치에 의해 할당되는 작업들을 개념적으로 도시한다.
도 16은 본 개시의 광 근접 보정에 의해 생성된 마스크를 제작하기 위한 장치를 보여주는 블록도이다.
FIG. 1 is a flowchart showing a method for designing and manufacturing a semiconductor device according to an embodiment of the present disclosure.
FIG. 2 conceptually illustrates a photolithography system used to fabricate a mask according to an embodiment of the present disclosure.
Figure 3 conceptually illustrates the layout formed on the wafer.
Figure 4 conceptually illustrates the process of dividing the outline of a layout into multiple segments in optical proximity correction.
Figure 5 conceptually illustrates the layout updated by optical proximity correction.
FIG. 6 illustrates a system for performing optical proximity correction according to an embodiment of the present disclosure.
FIG. 7 illustrates a method for performing optical proximity correction according to an embodiment of the present disclosure.
FIG. 8 illustrates a method for performing optical proximity correction according to an embodiment of the present disclosure.
FIG. 9 conceptually illustrates elements that determine a hash value of a segment according to an embodiment of the present disclosure.
FIG. 10 conceptually illustrates elements that determine a hash value of a segment according to an embodiment of the present disclosure.
FIG. 11 illustrates a method for performing optical proximity correction according to an embodiment of the present disclosure.
Figure 12 conceptually illustrates calculating a representative value from the bias values of segments of multiple patches.
FIG. 13 illustrates a method for performing optical proximity correction according to an embodiment of the present disclosure.
FIG. 14 illustrates a method for performing optical proximity correction according to an embodiment of the present disclosure.
Figure 15 conceptually illustrates the tasks assigned by the master device.
FIG. 16 is a block diagram showing a device for manufacturing a mask generated by the optical proximity correction of the present disclosure.

이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.Hereinafter, embodiments of the present invention will be described clearly and in detail to the extent that a person having ordinary skill in the art can easily practice the present invention.

상세한 설명에서 사용되는 부 또는 유닛(unit), 모듈(module), 블록(block), ~기(~or, ~er) 등의 용어들을 참조하여 설명되는 구성 요소들 및 도면에 도시된 기능 블록들은 소프트웨어, 또는 하드웨어, 또는 그것들의 조합의 형태로 구현될 수 있다. 예시적으로, 소프트웨어는 기계 코드, 펌웨어, 임베디드 코드, 및 애플리케이션 소프트웨어일 수 있다. 예를 들어, 하드웨어는 전기 회로, 전자 회로, 프로세서, 컴퓨터, 집적 회로, 집적 회로 코어들, 압력 센서, 관성 센서, 멤즈 (microelectromechanical system; MEMS), 수동 소자, 또는 그것들의 조합을 포함할 수 있다.Components described with reference to terms such as unit, module, block, ~or, ~er used in the detailed description and functional blocks depicted in the drawings may be implemented in the form of software, hardware, or a combination thereof. For example, software may be machine code, firmware, embedded code, and application software. For example, hardware may include electrical circuits, electronic circuits, processors, computers, integrated circuits, integrated circuit cores, pressure sensors, inertial sensors, microelectromechanical systems (MEMS), passive components, or a combination thereof.

도 1은 본 개시의 실시 예에 따른 반도체 소자의 설계 및 제조 방법을 보여주는 순서도이다.FIG. 1 is a flowchart showing a method for designing and manufacturing a semiconductor device according to an embodiment of the present disclosure.

S11 단계에서, 반도체 집적회로의 상위 수준 설계(High Level Design)가 수행될 수 있다. 상위 수준 설계란, 설계 대상 집적 회로를 컴퓨터 언어의 상위 언어로 기술하는 것을 의미할 수 있다. 예를 들어, C언어와 같은 상위 언어가 사용될 수 있다. 상위 수준 설계에 의해서 설계된 회로들은 레지스터 전송 레벨(Register Transfer Level; RTL) 코딩이나 시뮬레이션에 의해서 보다 구체적으로 표현될 수 있다. 나아가, 레지스터 전송 레벨 코딩에 의해서 생성된 코드는 넷리스트(Netlist)로 변환되어 전체 반도체 소자로 합성될 수 있다. 합성된 스키매틱 회로는 시뮬레이션 툴에 의해서 검증되고, 검증 결과에 따라 조정 과정이 동반될 수 있다.At step S11, high-level design of the semiconductor integrated circuit can be performed. High-level design can mean describing the target integrated circuit in a high-level computer language. For example, a high-level language such as C can be used. Circuits designed through high-level design can be expressed more specifically through register transfer level (RTL) coding or simulation. Furthermore, the code generated through register transfer level coding can be converted into a netlist and synthesized into the entire semiconductor device. The synthesized schematic circuit is verified by a simulation tool, and an adjustment process may be performed based on the verification results.

S12 단계에서, 논리적으로 완성된 반도체 접적회로를 실리콘 기판 위에 구현하기 위한 레이아웃 설계가 수행될 수 있다. 예를 들어, 상위 수준 설계에서 합성된 스키매틱 회로 또는 그에 대응하는 넷리스트를 참조하여 레이아웃 설계가 수행될 수 있다. 레이아웃 설계는 규정된 디자인 룰에 따라 셀 라이브러리(Cell Library)에서 제공되는 다양한 표준 셀들을 배치(Place)하고 연결하는 라우팅(Routing) 절차를 포함할 수 있다.At step S12, layout design can be performed to implement the logically completed semiconductor integrated circuit on a silicon substrate. For example, the layout design can be performed by referencing the schematic circuit synthesized in the high-level design or its corresponding netlist. The layout design can include a routing procedure that places and connects various standard cells provided from the cell library according to defined design rules.

레이아웃 설계를 위한 셀 라이브러리는 표준 셀의 동작, 속도 그리고 소모 전력 등에 대한 정보를 포함할 수 있다. 특정 게이트 레벨의 회로를 레이아웃으로 표현하기 위한 셀 라이브러리가 대부분의 레이아웃 설계 툴에 정의되어 있다. 레이아웃은 실제로 실리콘 기판 상에 형성될 트랜지스터 및 금속 배선들을 구성하기 위한 패턴의 형태나 사이즈를 정의하는 절차일 수 있다. 예를 들어, 인버터 회로를 실제로 실리콘 기판 상에 형성시키기 위하여, 레이아웃 설계 툴에 의해, PMOS, NMOS, N-WELL, 게이트 전극, 및 이들 상에 배치될 금속 배선들과 같은 레이아웃 패턴들이 적절히 배치될 수 있다. 이를 위해, 우선 셀 라이브러리에 이미 정의된 인버터들 중에서 적합한 것이 검색되고 선택될 수 있다.A cell library for layout design can include information about the operation, speed, and power consumption of standard cells. Most layout design tools define cell libraries for representing circuits at a specific gate level in a layout. Layout can be a process for defining the shape and size of patterns for configuring transistors and metal wiring to be formed on a silicon substrate. For example, to actually form an inverter circuit on a silicon substrate, a layout design tool can appropriately place layout patterns such as PMOS, NMOS, N-WELL, gate electrodes, and metal wiring to be placed thereon. To this end, a suitable inverter can first be searched and selected from among the inverters already defined in the cell library.

나아가, 선택 및 배치된 표준 셀들에 대한 라우팅이 수행될 수 있다. 예를 들어, 선택 및 배치된 표준 셀들 상에 상위 배선들과의 라우팅이 수행될 수 있다. 라우팅 절차를 통해 표준 셀들을 설계에 맞게 서로 연결될 수 있다. 이러한 일련의 과정들은 대부분 레이아웃 설계 툴에 의해서 자동적으로 또는 수동적으로 수행될 수 있다. 예를 들어, 표준 셀들의 배치 및 라우팅은 별도의 Place & Routing 툴을 이용하여 자동적으로 수행될 수도 있다.Furthermore, routing can be performed on the selected and placed standard cells. For example, routing can be performed on the selected and placed standard cells with upper wiring. Through the routing process, the standard cells can be interconnected according to the design. Most of these processes can be performed automatically or manually by a layout design tool. For example, the placement and routing of standard cells can be performed automatically using a separate Place & Routing tool.

라우팅 이후에는 디자인 룰에 위배되는 부분이 존재하는지 레이아웃에 대한 검증이 수행될 수 있다. 검증은 레이아웃이 디자인 룰에 맞게 제대로 되었는지 검증하는 DRC(Design Rule Check), 내부에서 전기적으로 끊어짐 없이 제대로 되었는지 검증하는 ERC(Electronical Rule Check), 및 레이아웃이 게이트 수준 네트리스트와 일치하는지 확인하는 LVS(Layout vs Schematic) 등을 포함할 수 있다.After routing, the layout can be verified for any design rule violations. Verification can include a Design Rule Check (DRC), which verifies that the layout conforms to the design rules; an Electronic Rule Check (ERC), which verifies that internal electrical connections are intact; and a Layout vs. Schematic (LVS), which verifies that the layout matches the gate-level netlist.

S13 단계에서, 광 근접 보정(Optical Proximity Correction; OPC)이 수행될 수 있다. 포토리소그래피 공정을 이용하여, 레이아웃 설계를 통해서 얻어진 레이아웃 패턴들이 실리콘 기판 상에 구현될 수 있다. 이때, 광 근접 보정은 포토리소그래피 공정에서 발생할 수 있는 왜곡 현상을 보정하기 위한 기술일 수 있다. 즉, 광 근접 보정을 통하여, 레이아웃된 패턴을 이용한 노광 시에 빛의 특성 때문에 발생하는 굴절이나 공정 효과 등의 왜곡 현상을 보정할 수 있다. 광 근접 보정을 수행하면서, 설계된 레이아웃 패턴들의 형태 및 위치가 미소하게 보정(바이어스)될 수 있다. 본 개시의 광 근접 보정은 상세하게 후술될 것이다.In step S13, optical proximity correction (OPC) may be performed. Using a photolithography process, layout patterns obtained through layout design may be implemented on a silicon substrate. Optical proximity correction may be a technique for correcting distortion phenomena that may occur during the photolithography process. Specifically, optical proximity correction can correct distortion phenomena, such as refraction or process effects, that occur due to the characteristics of light during exposure using the laid-out pattern. While performing optical proximity correction, the shape and position of the designed layout patterns may be slightly corrected (biased). Optical proximity correction of the present disclosure will be described in detail below.

S14 단계에서, 광 근접 보정에 의해 변경된 레이아웃에 기초하여 포토마스크(Photomask)가 제작될 수 있다. 예를 들어, 포토마스크는 유리 기판 위에 도포된 크롬 막을 이용하여 레이아웃 패턴들을 묘사하는 방식으로 제작될 수 있다.In step S14, a photomask can be manufactured based on the layout changed by the optical proximity correction. For example, the photomask can be manufactured by using a chrome film applied on a glass substrate to describe the layout patterns.

S15 단계에서, 포토마스크를 이용하여 반도체 소자가 제조될 수 있다. 포토마스크를 사용한 반도체 소자의 제조 공정에서는 다양한 방식의 노광 및 식각 공정들이 반복될 수 있다. 이러한 공정들을 통해서 실리콘 기판 상에 레이아웃 설계 시에 구성된 패턴들의 형태가 순차적으로 형성될 수 있다.At step S15, a semiconductor device can be manufactured using a photomask. The manufacturing process for semiconductor devices using a photomask can involve repeating various exposure and etching processes. Through these processes, the patterns configured during the layout design can be sequentially formed on a silicon substrate.

도 2는 본 개시의 실시 예에 따른 마스크를 제작하기 위해 이용되는 포토 리소그래피(Photo Lithography) 시스템을 개념적으로 도시한다. 도 1을 참조하면, 포토 리소그래피 시스템(1000)은 광원(1200), 마스크(1400), 축소 투영 장치(1600), 및 웨이퍼 스테이지(Wafer Stage; 1800)를 포함할 수 있다. 다만, 포토 리소그래피 시스템(1000)은 도 1에 나타내지 않은 구성 요소들을 더 포함할 수 있다. 예를 들어, 포토 리소그래피 시스템(1000)은 웨이퍼(WF)의 표면의 높이 및 기울기를 측정하기 위해 이용되는 센서를 더 포함할 수 있다.FIG. 2 conceptually illustrates a photolithography system used to manufacture a mask according to an embodiment of the present disclosure. Referring to FIG. 1 , the photolithography system (1000) may include a light source (1200), a mask (1400), a reduction projection device (1600), and a wafer stage (1800). However, the photolithography system (1000) may further include components not shown in FIG. 1 . For example, the photolithography system (1000) may further include a sensor used to measure the height and inclination of the surface of the wafer (WF).

광원(1200)은 광을 방출할 수 있다. 광원(1200)에 의해 방출된 광은 마스크(1400)로 조사될 수 있다. 예를 들어, 광원(1200)은 자외선 광원(예컨대, 234nm의 파장을 갖는 KrF 광원, 193nm의 파장을 갖는 ArF 광원 등)을 포함할 수 있다. 예를 들어, 광원(1200)은 시준기(Collimator, 미도시)를 더 포함할 수 있다. 시준기는 자외선 광을 평행 광으로 변환할 수 있다. 평행 광은 마스크(1400)로 제공될 수 있다. 예를 들어, 시준기는 자외선 광의 초점 심도를 높이기 위해 이용되는 다이폴 애퍼처(Dipole Aperture) 또는 쿼드러플 애퍼처(Quadruple Aperture)를 포함할 수 있다.The light source (1200) can emit light. The light emitted by the light source (1200) can be irradiated to the mask (1400). For example, the light source (1200) can include an ultraviolet light source (e.g., a KrF light source having a wavelength of 234 nm, an ArF light source having a wavelength of 193 nm, etc.). For example, the light source (1200) can further include a collimator (not shown). The collimator can convert the ultraviolet light into parallel light. The parallel light can be provided to the mask (1400). For example, the collimator can include a dipole aperture or a quadruple aperture used to increase the depth of focus of the ultraviolet light.

마스크(1400)는 웨이퍼(WF) 상에 레이아웃(Layout)을 인쇄하기 위해 이용되는 이미지 패턴(Image Pattern)들을 포함할 수 있다. 이미지 패턴들은 투명 영역 및 불투명 영역으로 형성될 수 있다. 투명 영역은 마스크(1400) 상의 금속 층을 에칭(Etching)함으로써 형성될 수 있다. 투명 영역은 광원(1200)에 의해 방출된 광을 투과시킬 수 있다. 반면, 불투명 영역은 광을 투과시키지 않을 수 있다. 마스크(1400)는 본 개시의 실시 예에 따른 광 근접 보정에 기반하여 제작될 수 있다. 본 개시의 광 근접 보정은 상세하게 후술될 것이다.The mask (1400) may include image patterns used to print a layout on a wafer (WF). The image patterns may be formed as transparent areas and opaque areas. The transparent area may be formed by etching a metal layer on the mask (1400). The transparent area may transmit light emitted by the light source (1200). On the other hand, the opaque area may not transmit light. The mask (1400) may be manufactured based on optical proximity correction according to an embodiment of the present disclosure. The optical proximity correction of the present disclosure will be described in detail below.

축소 투영 장치(1600)는 마스크(1400)의 투명 영역을 투과한 광을 제공받을 수 있다. 축소 투영 장치(1600)는 웨이퍼(WF) 상에 인쇄될 레이아웃의 회로 패턴들을 마스크(1400)의 이미지 패턴들과 매칭시킬 수 있다. 웨이퍼 스테이지(1800)는 웨이퍼(WF)를 지지할 수 있다.The reduction projection device (1600) can receive light that has passed through the transparent area of the mask (1400). The reduction projection device (1600) can match the circuit patterns of the layout to be printed on the wafer (WF) with the image patterns of the mask (1400). The wafer stage (1800) can support the wafer (WF).

마스크(1400)의 이미지 패턴들에 포함되는 투명 영역은 광원(1200)에 의해 방출된 광을 투과시킬 수 있다. 마스크(1400)를 통과한 광은 축소 투영 장치(1600)를 통해 웨이퍼(WF)로 조사될 수 있다. 그 결과, 마스크(1400)의 이미지 패턴들에 대응하는 회로 패턴들을 포함하는 레이아웃이 웨이퍼(WF) 상에 인쇄될 수 있다.A transparent area included in the image patterns of the mask (1400) can transmit light emitted by a light source (1200). The light passing through the mask (1400) can be irradiated onto the wafer (WF) via a reduction projection device (1600). As a result, a layout including circuit patterns corresponding to the image patterns of the mask (1400) can be printed on the wafer (WF).

그런데, 반도체 공정의 집적도가 높아짐에 따라, 마스크(1400)의 이미지 패턴들 사이의 거리가 매우 가까워지고 투명 영역의 너비가 매우 좁아져 왔다. 이러한 "근접성(Proximity)" 때문에, 빛의 간섭 및 회절이 발생하고, 웨이퍼(WF) 상에 원하는 레이아웃과 다른 왜곡된 레이아웃이 인쇄될 수 있다. 왜곡된 레이아웃이 웨이퍼(WF) 상에 인쇄되는 경우, 설계된 회로가 비정상적으로 동작할 수 있다.However, as the integration of semiconductor processes increases, the distance between image patterns on the mask (1400) has become much closer, and the width of the transparent area has become much narrower. Due to this "proximity," interference and diffraction of light may occur, and a distorted layout different from the desired layout may be printed on the wafer (WF). If a distorted layout is printed on the wafer (WF), the designed circuit may operate abnormally.

레이아웃의 왜곡을 방지하기 위해, 해상도 향상 기법(Resolution Enhancement Technology)이 이용된다. 광 근접 보정(Optical Proximity Correction)은 해상도 향상 기법의 한 예이다. 광 근접 보정에 의하여, 빛의 간섭 및 회절과 같은 왜곡의 정도가 미리 예측된다. 나아가, 예측된 결과에 기초하여, 마스크(1400)에 형성될 이미지 패턴들이 미리 바이어스(Bias)된다. 그 결과, 웨이퍼 상에 원하는 레이아웃이 인쇄될 수 있다.To prevent layout distortion, resolution enhancement technology (RET) is utilized. Optical proximity correction (OPC) is an example of a resolution enhancement technique. Through OPC, the degree of distortion, such as light interference and diffraction, is predicted in advance. Furthermore, based on the predicted results, image patterns to be formed on the mask (1400) are biased in advance. As a result, the desired layout can be printed on the wafer.

본 개시의 실시 예에 따른 광 근접 보정에서, 레이아웃을 구성하는 세그먼트들 각각에 대하여 세그먼트 자신의 특성과 주변 조건을(Surrounding Condition)에 기반한 해시 값이 계산된다. 그리고, 동일한 해시 값을 갖는 세그먼트들의 바이어스 값에 기반하여 대표값이 계산된다. 대표값은, 동일한 해시 값을 갖는 세그먼트들에 할당될 수 있다. 그 결과, 동일한 형상 및 동일한 주변 조건을 갖는 패턴들에 대해 광 근접 보정이 균일하게 수행될 수 있으며, 의도된 마스크에 더욱 근접한 마스크(1400)가 제공될 수 있다. In the optical proximity correction according to an embodiment of the present disclosure, a hash value is calculated for each segment constituting a layout based on the segment's own characteristics and surrounding conditions. Furthermore, a representative value is calculated based on bias values of segments having the same hash value. The representative value can be assigned to segments having the same hash value. As a result, optical proximity correction can be uniformly performed on patterns having the same shape and surrounding conditions, and a mask (1400) closer to the intended mask can be provided.

이하, 본 발명의 실시 예들이 설명될 것이다. 이하의 설명에서, 컴퓨터 시뮬레이션을 이용한 모델 기반(Model-based) 광 근접 보정이 수행되는 것으로 가정한다. 그러나, 이 가정은 본 발명을 제한하기 위한 것은 아니다. 본 발명은 통상의 기술자에 의해 다른 유형의 해상도 향상 기법에 적용될 수 있음이 명백하다.Hereinafter, embodiments of the present invention will be described. In the following description, it is assumed that model-based optical proximity correction is performed using computer simulation. However, this assumption is not intended to limit the present invention. It will be apparent to those skilled in the art that the present invention can be applied to other types of resolution enhancement techniques.

도 3은 웨이퍼 상에 형성되는 레이아웃을 개념적으로 도시한다. 예시적으로, 레이아웃(LO1)은 제 1 회로 패턴(R1) 내지 제 4 회로 패턴(R4)을 포함할 수 있다. 다만, 도 3에 도시된 레이아웃(LO1)의 형태는 본 발명의 이해를 돕기 위한 예이고, 본 발명을 제한하기 위한 것은 아니다.Figure 3 conceptually illustrates a layout formed on a wafer. For example, layout (LO1) may include first circuit patterns (R1) to fourth circuit patterns (R4). However, the form of layout (LO1) illustrated in Figure 3 is merely an example to aid understanding of the present invention and is not intended to limit the present invention.

실선으로 도시된 영역은 웨이퍼(WF) 상에 인쇄하고자 하는 목표 레이아웃을 나타낸다. 예를 들어, 레이아웃(LO1)의 설계자는 도 2의 실선을 따르는 제 1 회로 패턴(R1) 내지 제 4 회로 패턴(R4)의 레이아웃(LO1)을 웨이퍼(WF) 상에 인쇄하고자 할 수 있다. 즉, 도 3의 실선은 목표 레이아웃으로서 인쇄하고자 하는 레이아웃을 나타낸다. 목표 레이아웃은 최초의(Initial) 설계 레이아웃으로서 제공된다.The area depicted by the solid line represents the target layout to be printed on the wafer (WF). For example, the designer of the layout (LO1) may want to print the layout (LO1) of the first circuit pattern (R1) to the fourth circuit pattern (R4) along the solid line of Fig. 2 on the wafer (WF). That is, the solid line of Fig. 3 represents the layout to be printed as the target layout. The target layout is provided as the initial design layout.

반면, 점선으로 도시된 영역은 웨이퍼(WF) 상에 실제로 인쇄되는 레이아웃을 나타낸다. 실제로 반도체 제조 과정에 있어서, 도 2의 마스크(1400)에 의해 빛의 간섭 및 회절과 같은 왜곡이 발생할 수 있다. 이 왜곡 때문에, 설계자의 의도와 달리, 도 2의 점선을 따르는 제 1 회로 패턴(R1) 내지 제 4 회로 패턴(R4)이 웨이퍼(WF) 상에 인쇄될 수 있다. 왜곡된 레이아웃이 웨이퍼(WF) 상에 인쇄되는 경우, 설계된 회로는 설계자의 의도와 달리 비정상적으로 동작할 수 있다.On the other hand, the area shown by the dotted line represents the layout actually printed on the wafer (WF). In reality, during the semiconductor manufacturing process, distortions such as interference and diffraction of light may occur due to the mask (1400) of FIG. 2. Due to this distortion, the first circuit pattern (R1) to the fourth circuit pattern (R4) along the dotted line of FIG. 2 may be printed on the wafer (WF) contrary to the designer's intention. If a distorted layout is printed on the wafer (WF), the designed circuit may operate abnormally contrary to the designer's intention.

레이아웃의 왜곡을 방지하기 위해, 광 근접 보정이 수행될 수 있다. 광 근접 보정에서, 설계 레이아웃에 기초하여 실제로 인쇄될 실제 레이아웃과 목표 레이아웃 사이의 오차를 줄이기 위해, 설계 레이아웃이 바이어스될 수 있다. 광 근접 보정의 예가 도 4 및 도 5를 참조하여 설명될 것이다.To prevent layout distortion, optical proximity correction can be performed. In optical proximity correction, the design layout can be biased to reduce the error between the actual layout to be printed and the target layout based on the design layout. An example of optical proximity correction will be described with reference to FIGS. 4 and 5.

도 4는 광 근접 보정에서 레이아웃의 윤곽을 복수의 세그먼트로 분할하는 과정을 개념적으로 도시한다. 예시적으로, 도 3에 실선으로 나타낸 설계 레이아웃(LO1)의 윤곽을 복수의 세그먼트들로 분할하는 과정이 설명된다.Figure 4 conceptually illustrates the process of dividing the outline of a layout into multiple segments in optical proximity correction. As an example, the process of dividing the outline of the design layout (LO1) shown in solid lines in Figure 3 into multiple segments is described.

설계 레이아웃(LO1)의 윤곽 상에 복수의 분할 지점(Division Point)이 설정될 수 있다. 예를 들어, 설계 레이아웃(LO1)의 윤곽 상에 제 1 분할 지점(PD_1) 및 제 2 분할 지점(PD_2)이 설정될 수 있다. 제 1 분할 지점(PD_1) 및 제 2 분할 지점(PD_2)에 기초하여, 세그먼트(SEG)가 얻어질 수 있다. 유사한 방식으로, 복수의 분할 지점에 기초하여, 설계 레이아웃(LO1)의 윤곽이 복수의 세그먼트로 분할될 수 있다. 세그먼트는 바이어스가 실행되는 최소 단위를 의미할 수 있다.A plurality of division points (Division Points) may be set on the outline of the design layout (LO1). For example, a first division point (PD_1) and a second division point (PD_2) may be set on the outline of the design layout (LO1). Based on the first division point (PD_1) and the second division point (PD_2), a segment (SEG) may be obtained. Similarly, based on the plurality of division points, the outline of the design layout (LO1) may be divided into a plurality of segments. A segment may mean a minimum unit on which a bias is executed.

여기서, "분할"이라는 용어가 이용되었으나, 이는 물리적인 분할을 의미하지 않을 수 있다. 도 4에서, 복수의 세그먼트가 물리적으로 분할된 것으로 표현되었으나, 이것은 본 발명의 이해를 돕기 위해 개념적으로 제공된 것이다.Although the term "segmentation" is used here, it may not imply a physical division. In FIG. 4, multiple segments are depicted as being physically divided, but this is provided conceptually to aid understanding of the present invention.

광 근접 보정에서, 분할된 세그먼트들 각각은 바이어싱(Biasing)의 대상이 될 수 있다. 분할된 세그먼트들 각각은 독립적으로 바이어스 될 수 있다. 예를 들어, 세그먼트(SEG)는 다른 세그먼트들과 독립적으로 제 1 방향(예컨대, 복수의 세그먼트들에 대응하는 각 회로 패턴의 바깥쪽 방향) 및 제 2 방향(예컨대, 복수의 세그먼트들에 대응하는 각 회로 패턴의 안쪽 방향) 중 하나를 따라 바이어스 될 수 있다. 분할된 세그먼트들 각각은 실제 레이아웃과 목표 레이아웃 사이의 오차를 줄이기 위해 바이어스 될 수 있다.In optical proximity correction, each of the segments can be subject to biasing. Each of the segments can be biased independently. For example, a segment (SEG) can be biased along one of a first direction (e.g., an outward direction of each circuit pattern corresponding to the plurality of segments) and a second direction (e.g., an inward direction of each circuit pattern corresponding to the plurality of segments) independently of other segments. Each of the segments can be biased to reduce an error between the actual layout and the target layout.

바이어스 값들을 산출하는 과정은 통상의 기술자들에게 알려져 있으므로, 바이어스 값들을 계산하는 과정에 관한 자세한 설명들은 생략된다. 산출된 바이어스 값들에 기초하여, 세그먼트들 각각이 바이어스 될 수 있다. 바이어스 된 세그먼트들에 기초하여 얻어지는 갱신된 설계 레이아웃의 예가 도 5를 참조하여 설명될 것이다.Since the process of calculating bias values is well known to those skilled in the art, a detailed description of the process will be omitted. Based on the calculated bias values, each segment can be biased. An example of an updated design layout obtained based on the biased segments will be described with reference to Fig. 5.

도 5는 광 근접 보정에 의해 갱신된 레이아웃을 개념적으로 도시한다. 이해를 돕기 위해, 예시적으로, 도 3의 제 1 회로 패턴(R1)으로부터 갱신된 새로운 제 1 회로 패턴(R1')이 설명될 것이다. 그리고, 도 3의 제 2 회로 패턴(R2) 내지 제 4 회로 패턴(R4)에 대응하는 설명들은 생략된다.Fig. 5 conceptually illustrates a layout updated by optical proximity correction. To facilitate understanding, a new first circuit pattern (R1') updated from the first circuit pattern (R1) of Fig. 3 will be described as an example. Furthermore, descriptions corresponding to the second to fourth circuit patterns (R2) to (R4) of Fig. 3 will be omitted.

도 5의 실선은 갱신된 설계 레이아웃에 포함되는 새로운 제 1 보정 패턴(biased pattern)(R1')을 나타낸다. 도 4를 참조하여 설명된 과정에 따라, 도 3의 제 1 회로 패턴(R1)의 윤곽이 여러 세그먼트들로 분할되고, 분할된 세그먼트들 각각이 바이어스 될 수 있다. 도 5에 나타낸 것과 같이, 세그먼트들 각각은 제 1 방향(예컨대, 바깥쪽 방향) 및 제 2 방향(예컨대, 안쪽 방향) 중 하나를 따라 바이어스 될 수 있다. 그 결과, 제 1 보정 패턴(R1')이 얻어질 수 있다.The solid line in Fig. 5 represents a new first biased pattern (R1') included in the updated design layout. According to the process described with reference to Fig. 4, the outline of the first circuit pattern (R1) of Fig. 3 can be divided into several segments, and each of the divided segments can be biased. As shown in Fig. 5, each of the segments can be biased along one of a first direction (e.g., outward direction) and a second direction (e.g., inward direction). As a result, a first biased pattern (R1') can be obtained.

분할된 세그먼트들 각각은 실제 레이아웃과 목표 레이아웃 사이의 오차를 줄이기 위해 바이어스 될 수 있다. 예를 들어, 도 5의 점선은 갱신된 설계 레이아웃에 기초하여 실제로 인쇄될 실제 레이아웃을 나타낸다. 분할된 세그먼트들 각각을 바이어스 시킴으로써, 실제 레이아웃과 목표 레이아웃 사이의 오차가 줄어들 수 있다.Each segmented segment can be biased to reduce the error between the actual layout and the target layout. For example, the dotted line in Figure 5 represents the actual layout to be printed based on the updated design layout. By biasing each segmented segment, the error between the actual layout and the target layout can be reduced.

그런데, 도 3 및 도 4를 참조하면, 제 1 회로 패턴(R1)의 좌측 상단 세그먼트, 좌측 하단 세그먼트, 및 우측 상단 세그먼트는 동일한 주변 조건을 갖는다. 따라서, 제 1 회로 패턴(R1)의 좌측 상단 세그먼트, 좌측 하단 세그먼트, 및 우측 상단 세그먼트는 동일한 바이어스 값을 갖는 것이 바람직하다. 그럼에도 불구하고, 도 5를 참조하면, 제 1 보정 패턴(R1')의 좌측 상단 세그먼트, 좌측 하단 세그먼트, 및 우측 상단 세그먼트가 비대칭적으로 바이어스 되었음을 알 수 있다.However, referring to FIGS. 3 and 4 , the upper left segment, the lower left segment, and the upper right segment of the first circuit pattern (R1) have the same ambient conditions. Therefore, it is preferable that the upper left segment, the lower left segment, and the upper right segment of the first circuit pattern (R1) have the same bias value. Nevertheless, referring to FIG. 5 , it can be seen that the upper left segment, the lower left segment, and the upper right segment of the first correction pattern (R1') are biased asymmetrically.

물론, 도 2 내지 도 4는 예시들일 뿐이다. 그러나, 실제 광 근접 보정에서, 수치 연산의 오차 때문에, 동일한 주변 조건을 갖는 세그먼트들이 서로 다르게 바이어스 될 가능성이 있다. 특히, 분할된 세그먼트들에 각각 대응하는 바이어스 값들을 산출하는 과정이 반복됨에 따라, 오차가 누적될 수 있다. 누적된 오차 때문에 왜곡된 설계 레이아웃이 웨이퍼(WF) 상에 인쇄되는 경우, 설계된 회로는 설계자의 의도와 달리 비정상적으로 동작할 수 있다.Of course, Figures 2 through 4 are merely examples. However, in actual optical proximity correction, segments with identical ambient conditions may be biased differently due to numerical calculation errors. In particular, as the process of calculating bias values corresponding to each segment is repeated, errors can accumulate. If a distorted design layout is printed on a wafer (WF) due to accumulated errors, the designed circuit may operate abnormally, contrary to the designer's intention.

따라서, 본 발명의 실시 예에서, 세그먼트 자신의 특성과 주변의 세그먼트(들)의 특성을 고려하여 세그먼트의 해시 값이 계산된다. 만일, 자신의 특성뿐만 아니라 인접한 세그먼트들의 특성까지 동일한 두 세그먼트들이 있다면, 두 세그먼트들 각각의 해시 값들은 서로 동일할 것이다. 동일한 해시 값들을 갖는 세그먼트들의 바이어스 값들로부터 대표값이 계산될 수 있다. 그 결과, 광 근접 보정이 균일하게 수행될 수 있다.Therefore, in an embodiment of the present invention, a segment's hash value is calculated by considering its own characteristics and the characteristics of its surrounding segment(s). If two segments have identical characteristics, not only their own characteristics but also the characteristics of adjacent segments, the hash values of each segment will be identical. A representative value can be calculated from the bias values of segments with identical hash values. As a result, optical proximity correction can be performed uniformly.

도 6은 본 개시의 실시 예에 따른 광 근접 보정을 수행하기 위한 시스템을 도시한다. 도 7은 본 개시의 실시 예에 따른 광 근접 보정을 실행하는 방법을 도시한다. 예를 들어, 도 7은 도 1의 광 근접 보정 단계(S13)의 구체적인 실시 예를 도시할 수 있다. 도 8은 본 개시의 실시 예에 따른 광 근접 보정을 실행하는 방법을 도시한다.FIG. 6 illustrates a system for performing optical proximity correction according to an embodiment of the present disclosure. FIG. 7 illustrates a method for performing optical proximity correction according to an embodiment of the present disclosure. For example, FIG. 7 may illustrate a specific embodiment of the optical proximity correction step (S13) of FIG. 1. FIG. 8 illustrates a method for performing optical proximity correction according to an embodiment of the present disclosure.

실시 예에 있어서, 도 6의 시스템(100)은 마스터 장치(110) 및 슬레이브 장치들(121~12n)을 포함한다. 예를 들어, 마스터 장치(110) 및 슬레이브 장치들(121~12n)은 별개의 컴퓨팅 장치들로 구현될 수 있다. 또는, 마스터 장치(110) 및 슬레이브 장치들(121~12n)은 각각 복수의 프로세서 코어들로 구현될 수 있다. 비록 도면에 도시되지는 않았지만, 시스템(100)은 광 근접 보정을 실행하기 위한 OPC 툴이 저장되는 저장 매체를 더 포함할 수 있다. 그리고, 시스템(100)은 OPC 툴의 실행 시, OPC 툴이 로딩되는 메모리를 더 포함할 수 있다.In an embodiment, the system (100) of FIG. 6 includes a master device (110) and slave devices (121 to 12n). For example, the master device (110) and the slave devices (121 to 12n) may be implemented as separate computing devices. Alternatively, the master device (110) and the slave devices (121 to 12n) may each be implemented as a plurality of processor cores. Although not shown in the drawing, the system (100) may further include a storage medium in which an OPC tool for executing optical proximity correction is stored. In addition, the system (100) may further include a memory in which the OPC tool is loaded when the OPC tool is executed.

실시 예에 있어서, 본 개시의 광 근접 보정을 수행하는 OPC 툴은 컴퓨터 판독 가능한 프로그램 코드(computer-readable program code)를 포함하는 컴퓨터 프로그램 제품이거나, 컴퓨터 판독 가능한 프로그램 코드를 포함하는 비법정 매체(non-transitory computer-usable medium)를 포함하는 컴퓨터 프로그램 제품일 수 있다.In an embodiment, the OPC tool performing optical proximity correction of the present disclosure may be a computer program product including a computer-readable program code or a computer program product including a non-transitory computer-usable medium including a computer-readable program code.

도 6 및 도 7을 함께 참조하여, 본 개시의 광 근접 보정의 방법을 설명한다. 마스터 장치(110)가 OPC 툴을 구동함으로써 반도체 칩(A)의 레이아웃에 대한 광 근접 보정이 실행될 수 있다. 마스터 장치(110)는 반도체 칩(A)의 레이아웃을 입력 받을 수 있다. 예를 들어, 반도체 칩(A)의 레이아웃은 도 1의 레이아웃 설계 단계(S12)의 결과물일 수 있다. 레이아웃은 복수의 회로 패턴들을 포함할 수 있다. Referring to FIGS. 6 and 7, a method of optical proximity correction of the present disclosure will be described. Optical proximity correction for the layout of a semiconductor chip (A) can be performed by a master device (110) driving an OPC tool. The master device (110) can receive the layout of the semiconductor chip (A). For example, the layout of the semiconductor chip (A) can be a result of the layout design step (S12) of FIG. 1. The layout can include a plurality of circuit patterns.

마스터 장치(110)는 반도체 칩(A)의 레이아웃을 복수의 패치들(PA1~PAn)로 분할할 수 있다. 예를 들어, 패치는 슬레이브 장치에 의해 처리되는 최소 단위일 수 있다. 마스터 장치(110)는 반도체 칩(A)의 패치들(PA1~PAn)을 슬레이브 장치들(121~12n)에 각각 할당할 수 있다. 각 슬레이브 장치는 할당 받은 패치를 처리할 수 있다. 예시적으로, 제 1 슬레이브 장치(121)가 제 1 패치(PA1)를 처리하는 것을 설명한다. The master device (110) can divide the layout of the semiconductor chip (A) into a plurality of patches (PA1 to PAn). For example, a patch may be the minimum unit processed by a slave device. The master device (110) can assign the patches (PA1 to PAn) of the semiconductor chip (A) to the slave devices (121 to 12n), respectively. Each slave device can process the assigned patch. As an example, the first slave device (121) processes the first patch (PA1).

제 1 슬레이브 장치(121)는 제 1 패치(PA1)에 포함된 레이아웃에 기반하여 세그먼트들을 생성할 수 있다(S110). 세그먼트들을 생성하는 과정은 앞서 도 4를 참조하여 설명되었다.The first slave device (121) can generate segments based on the layout included in the first patch (PA1) (S110). The process of generating segments has been previously described with reference to FIG. 4.

제 1 슬레이브 장치(121)는 제 1 패치(PA1)의 세그먼트들의 해시 값들을 계산할 수 있다(S120). 예를 들어, 해시 값은 세그먼트 자체의 특성과 세그먼트 주위의 적어도 하나의 세그먼트의 특성을 반영할 수 있다. 예를 들어, 동일한 특성 및 동일한 주변 조건을 갖는 세그먼트들은 동일한 해시 값을 가질 수 있다. 해시 값을 결정하는 요소(factor)에 대해서는 도 9 및 도 10을 통하여 상세하게 설명될 것이다.The first slave device (121) can calculate hash values of segments of the first patch (PA1) (S120). For example, the hash value may reflect the characteristics of the segment itself and the characteristics of at least one segment surrounding the segment. For example, segments with identical characteristics and surrounding conditions may have identical hash values. The factors determining the hash value will be described in detail with reference to FIGS. 9 and 10.

제 1 슬레이브 장치(121)는 제 1 패치(PA1)를 구성하는 세그먼트들의 바이어스 값들을 계산할 수 있다(S130). 세그먼트의 바이어스 값은, OPC 툴의 최소 시뮬레이션 단위인 그리드(grid)에 대한 시뮬레이션 결과에 기반하여 획득될 수 있다. 예를 들어, 그리드의 사이즈가 클수록 바이어스 값을 획득하는데 드는 시간은 짧아질 수 있으나, 덜 정교한 바이어스 값이 획득될 수 있다. 즉, 동일한 주변 조건을 갖는 세그먼트들의 일관성(consistency)이 약화될 수 있다. 반대로, 그리드의 사이즈가 작을수록 바이어스 값을 획득하는데 드는 시간을 길어질 수 있으나, 더 정교한 바이어스 값이 획득될 수 있다. 즉, 동일한 주변 조건을 갖는 세그먼트들의 일관성이 강화될 수 있다. 한편, 바이어스 값을 계산하는 과정은 통상의 기술자들에게 알려져 있으므로, 생략될 것이다.The first slave device (121) can calculate bias values of segments constituting the first patch (PA1) (S130). The bias values of the segments can be obtained based on simulation results for a grid, which is the minimum simulation unit of the OPC tool. For example, as the grid size increases, the time required to obtain a bias value may decrease, but a less precise bias value may be obtained. In other words, the consistency of segments with identical ambient conditions may be weakened. Conversely, as the grid size decreases, the time required to obtain a bias value may increase, but a more precise bias value may be obtained. In other words, the consistency of segments with identical ambient conditions may be strengthened. Meanwhile, the process of calculating the bias value is well known to those skilled in the art and will therefore be omitted.

마스터 장치(110)는 제 1 슬레이브 장치(121)에 의해 계산된 해시 값들과 바이어스 값들을 수집할 수 있다. 마스터 장치(110)는 수집된 해시 값들과 바이어스 값들에 기반하여 대표값을 계산할 수 있다(S140). 도 5를 통하여 설명된 바와 같이, 동일한 주변 조건을 갖는 세그먼트들일지라도, 바이어스 값들은 서로 다를 수 있다. 그러므로, 일관성을 유지시키기 위해, 마스터 장치(110)는 동일한 해시 값을 갖는 세그먼트들의 바이어스 값들로부터 대표 값을 계산할 수 있다. 예를 들어, 대표 값은 동일한 해시 값을 갖는 세그먼트들의 바이어스 값들의 평균값일 수 있으나, 이에 한정되지 않는다.The master device (110) can collect hash values and bias values calculated by the first slave device (121). The master device (110) can calculate a representative value based on the collected hash values and bias values (S140). As described with reference to FIG. 5, even if segments have the same ambient conditions, the bias values may differ. Therefore, to maintain consistency, the master device (110) can calculate a representative value from the bias values of segments having the same hash value. For example, the representative value may be, but is not limited to, an average value of the bias values of segments having the same hash value.

마스터 장치(110)는 동일한 해시 값을 갖는 세그먼트들에 대응하는 대표값을 라이브러리에 업데이트할 수 있다(S150). 예를 들어, 라이브러리는 해시 값들과 이에 각각 대응하는 바이어스 값들을 포함할 수 있다. 물론, 마스터 장치(110)는 중복되지 않는 고유의 해시 값을 갖는 세그먼트의 바이어스 값도 라이브러리에 업데이트할 수 있다. 마스터 장치(110)는 라이브러리에 기반하여, 보정 패턴(biased pattern)을 생성할 수 있다. The master device (110) can update the library with representative values corresponding to segments having the same hash value (S150). For example, the library may include hash values and their corresponding bias values. Furthermore, the master device (110) can also update the library with bias values for segments having unique, non-duplicated hash values. Based on the library, the master device (110) can generate a biased pattern.

반도체 칩(A)의 세그먼트들 중 동일한 해시 값을 갖는 세그먼트들에는 동일한 바이어스 값(즉, 대표값)이 적용된다. 그러므로, 반도체 칩(A)를 구성하는 복수의패치들에서 동일한 주변 환경을 갖는 패턴들 간에 일관성이 유지될 수 있다. 그러나, 일관성의 유지는 동일한 칩의 복수의 패치들 내로 한정되지 않으며, 반도체 칩들 간에도 일관성이 유지될 수 있다. 예를 들어, 전술된 과정들이 반도체 칩(B) 내지 반도체 칩(Z)에 대해서도 유사하게 실행됨으로써, 반도체 칩들 간에도 일관성이 유지될 수 있다. 이에 대해서는, 도 6 및 도 8을 참조하여 설명한다.Among the segments of a semiconductor chip (A), the same bias value (i.e., representative value) is applied to segments having the same hash value. Therefore, consistency can be maintained among patterns having the same surrounding environment in multiple patches constituting the semiconductor chip (A). However, consistency is not limited to multiple patches of the same chip, and consistency can also be maintained between semiconductor chips. For example, consistency can be maintained between semiconductor chips by similarly performing the aforementioned processes for semiconductor chips (B) to (Z). This will be described with reference to FIGS. 6 and 8 .

도 6 및 도 8을 참조하면, 반도체 칩(A)에 대해 수행되는 광 근접 보정에 따라, 라이브러리가 업데이트 될 수 있다(S150).Referring to FIGS. 6 and 8, the library can be updated (S150) according to the optical proximity correction performed on the semiconductor chip (A).

이후, 반도체 칩(B)에 대한 광 근접 보정을 수행하기 위해, 마스터 장치(110)는 반도체 칩(B)의 레이아웃을 입력 받을 수 있다. 마스터 장치(110)는 반도체 칩(B)의 레이아웃을 복수의 패치들(PA1~PAn)로 분할할 수 있다. 마스터 장치(110)는 반도체 칩(B)의 패치들(PA1~PAn)을 슬레이브 장치들(121~12n)에 각각 할당할 수 있다.Thereafter, in order to perform optical proximity correction on the semiconductor chip (B), the master device (110) can receive the layout of the semiconductor chip (B). The master device (110) can divide the layout of the semiconductor chip (B) into a plurality of patches (PA1 to PAn). The master device (110) can assign the patches (PA1 to PAn) of the semiconductor chip (B) to the slave devices (121 to 12n), respectively.

슬레이브 장치들(121~12n)은 반도체 칩(B)의 패치들(PA1~PAn)을 각각 처리할 수 있다. 예시적으로, 제 1 슬레이브 장치(121)가 반도체 칩(B)의 제 1 패치(PA1)를 처리하는 것을 설명한다. 제 1 슬레이브 장치(121)는 제 1 패치(PA1)에 포함된 레이아웃에 기반하여 세그먼트들을 생성할 수 있다(S210). 제 1 슬레이브 장치(121)는 제 1 패치(PA1)의 세그먼트들의 해시 값들을 계산할 수 있다(S220).Slave devices (121 to 12n) can each process patches (PA1 to PAn) of a semiconductor chip (B). As an example, the first slave device (121) processes the first patch (PA1) of the semiconductor chip (B). The first slave device (121) can generate segments based on the layout included in the first patch (PA1) (S210). The first slave device (121) can calculate hash values of the segments of the first patch (PA1) (S220).

S220 단계에서 계산된 해시 값에 기반하여, 라이브러리가 검색될 수 있다(S230). 실시 예에 있어서, 제 1 슬레이브 장치(121)는 계산된 해시 값들을 마스터 장치(110)로 전송할 수 있다. 마스터 장치(110)는 제 1 슬레이브 장치(121)로부터 수신된 해시 값들과, 라이브러리에 저장될 해시 값들을 비교할 수 있다. 마스터 장치(110)는 비교 결과에 기반하여, 라이브러리에 해시 값이 저장되었는지 여부를 판별할 수 있다.Based on the hash value calculated in step S220, the library can be searched (S230). In an embodiment, the first slave device (121) can transmit the calculated hash values to the master device (110). The master device (110) can compare the hash values received from the first slave device (121) with the hash values to be stored in the library. Based on the comparison result, the master device (110) can determine whether the hash value is stored in the library.

검색 결과, 해시 값이 이미 라이브러리에 저장되어 있으면, 해당 해시 값에 대응하는 세그먼트(들)의 바이어스 값을 새로이 구할 필요가 없을 수 있다. 따라서, 반도체 칩(B)에 대한 보정된 레이아웃 생성 시, 라이브러리에 저장된 바이어스 값이 그대로 이용될 수 있다(S260). If the search result indicates that the hash value is already stored in the library, there may be no need to newly obtain the bias value for the segment(s) corresponding to the hash value. Therefore, when generating a corrected layout for the semiconductor chip (B), the bias value stored in the library can be used as is (S260).

반대로, 해시 값이 이미 라이브러리에 저장되어 있지 않으면, 해당 해시 값에 대응하는 세그먼트(들)의 바이어스 값을 새로이 구할 필요가 있다. 예를 들어, 마스터 장치(110)는 제 1 슬레이브 장치(121)에게 해당 세그먼트에 대한 바이어스 값을 계산하도록 명령할 수 있으며, 제 1 슬레이브 장치(121)는 바이어스 값을 계산할 수 있다(S240). 전술된 S240 단계는, 반도체 칩 (B)의 패치들(PA1~PAn)을 처리하는 슬레이브 장치들(121~12n)에 의해 각각 수행될 수 있다. 슬레이브 장치들(121~12n)은 계산된 바이어스 값들과 이에 대응하는 해시 값들을 마스터 장치(110)로 전송할 수 있다.Conversely, if the hash value is not already stored in the library, it is necessary to newly obtain the bias value of the segment(s) corresponding to the hash value. For example, the master device (110) may instruct the first slave device (121) to calculate the bias value for the segment, and the first slave device (121) may calculate the bias value (S240). The above-described step S240 may be performed by each of the slave devices (121 to 12n) that process the patches (PA1 to PAn) of the semiconductor chip (B). The slave devices (121 to 12n) may transmit the calculated bias values and the corresponding hash values to the master device (110).

마스터 장치(110)는 해시 값들과 바이어스 값들에 기반하여 대표값을 계산할 수 있다(S250). 마스터 장치(110)는 동일한 해시 값을 갖는 세그먼트들에 대응하는 대표값을 라이브러리에 업데이트할 수 있다(S270). 업데이트된 대표값 (혹은 바이어스 값)은 반도체 칩(B)뿐만 아니라 반도체 칩(A), 반도체 칩(C) 내지 반도체 칩(Z)에 대한 보정된 레이아웃 생성 시 적용될 수 있다. 즉, 반도체 칩들 간에도 일관성이 유지될 수 있다.The master device (110) can calculate a representative value based on hash values and bias values (S250). The master device (110) can update the representative value corresponding to segments having the same hash value in the library (S270). The updated representative value (or bias value) can be applied when generating a corrected layout for not only the semiconductor chip (B), but also the semiconductor chip (A), the semiconductor chip (C), and the semiconductor chip (Z). In other words, consistency can be maintained between the semiconductor chips.

한편, 도 8의 실시 예는 도 7의 실시 예에 비하여 비교적 짧은 라이브러리 생성 시간을 가질 수 있다. 이미 라이브러리에 저장된 해시 값들 중, 동일한 해시 값을 갖는 세그먼트에 대한 바이어스 값을 계산하는 과정을 생략할 수 있기 때문이다. 이 경우, 반도체 칩(B)의 세그먼트에 대한 바이어스 값을 계산할 시, 최소 시뮬레이션 단위인 그리드의 사이즈를 더 작게 하는 것이 가능하다. 그리드의 사이즈를 줄임으로써 시뮬레이션 시간이 증가한다 하더라도, 확보된 라이브러리 생성 시간과의 트레이드-오프가 가능할 수 있다.Meanwhile, the embodiment of FIG. 8 can have a relatively shorter library creation time compared to the embodiment of FIG. 7. This is because the process of calculating bias values for segments having the same hash value among hash values already stored in the library can be omitted. In this case, when calculating bias values for segments of a semiconductor chip (B), it is possible to reduce the size of the grid, which is the minimum simulation unit. Even if the simulation time increases by reducing the grid size, a trade-off with the secured library creation time can be possible.

도 9는 본 개시의 실시 예에 따른 세그먼트의 해시 값을 결정하는 요소들을 개념적으로 도시한다. 예시적으로, 도 9에 도시된 세그먼트들은 도 4에 도시된 세그먼트들(SEG1, SEG2, SEG3)에 대응한다. 제 1 세그먼트(SEG1)는 도 3의 제 1 회로 패턴(R1)에 대응할 수 있으며, 제 2 세그먼트(SEG2) 및 제 3 세그먼트(SEG3)는 도 3의 제 3 회로 패턴(R2)에 대응할 수 있다.FIG. 9 conceptually illustrates elements that determine a hash value of a segment according to an embodiment of the present disclosure. By way of example, the segments illustrated in FIG. 9 correspond to the segments (SEG1, SEG2, and SEG3) illustrated in FIG. 4 . The first segment (SEG1) may correspond to the first circuit pattern (R1) of FIG. 3 , and the second segment (SEG2) and the third segment (SEG3) may correspond to the third circuit pattern (R2) of FIG. 3 .

제 1 세그먼트(SEG1)의 해시 값을 계산함에 있어서, 복수의 요소들에 의존하는 해시 함수가 이용될 수 있다. 복수의 요소는 세그먼트 자신의 값 및 세그먼트 주변 조건과 관련될 수 있다. 예를 들어, 해시 값에 영향을 주는 요소들은 세그먼트 자신의 특성과 관련된 제 1 특성 값을 포함할 수 있다. 해시 값에 영향을 주는 요소들은 세그먼트에 인접한 인접 세그먼트의 특성과 관련된 제 2 특성 값을 포함할 수 있다. 그리고, 해시 값에 영향을 주는 요소들은 세그먼트와 인접 세그먼트 사이의 특성과 관련된 제 3 특성 값을 포함할 수 있다. 결국, 서로 동일한 주변 조건을 갖되 자신의 속성도 서로 동일한 세그먼트들은 서로 동일한 해시 값을 가질 수 있다. In calculating the hash value of the first segment (SEG1), a hash function that depends on multiple factors may be used. The multiple factors may be related to the segment's own values and the segment's surrounding conditions. For example, the factors affecting the hash value may include a first characteristic value related to the segment's own characteristics. The factors affecting the hash value may include a second characteristic value related to the characteristics of an adjacent segment adjacent to the segment. Furthermore, the factors affecting the hash value may include a third characteristic value related to the characteristics between the segment and the adjacent segment. Consequently, segments that have the same surrounding conditions and their own characteristics may have the same hash value.

제 1 세그먼트(SEG1)의 해시 값을 결정하는 요소로써, 제 1 세그먼트(SEG1)의 길이(L1)가 채택될 수 있다. 제 1 세그먼트(SEG1)의 길이(L1)는 제 1 방향(D1)으로의 길이 및/또는 제 2 방향(D2)으로의 길이를 포함한다. 예를 들어, 도 9에 도시된 것과 같이, 제 1 세그먼트(SEG1)가 제 1 방향(D1)으로의 성분과 제 2 방향(D2)으로의 성분으로 구성된 경우, 제 1 방향(D1)으로의 성분과 제 2 방향(D2)으로의 성분 각각이 독립적으로 해시 값을 결정하는 요소로 작용할 수 있다. 이 경우, 각 성분이 연장하는 방향도 해시 값을 결정하는 요소로 채택될 수 있다. 그러므로, 전체 길이가 동일한 두 세그먼트들이라 하더라도, 제 1 방향(D1)으로의 길이들이 서로 다르거나, 혹은 제 2 방향(D2)으로의 길이들이 서로 다르다면, 해시 값은 서로 다를 수 있다.As a factor determining the hash value of the first segment (SEG1), the length (L1) of the first segment (SEG1) may be adopted. The length (L1) of the first segment (SEG1) includes the length in the first direction (D1) and/or the length in the second direction (D2). For example, as illustrated in FIG. 9, if the first segment (SEG1) is composed of a component in the first direction (D1) and a component in the second direction (D2), each of the component in the first direction (D1) and the component in the second direction (D2) may independently function as a factor determining the hash value. In this case, the direction in which each component extends may also be adopted as a factor determining the hash value. Therefore, even if two segments have the same overall length, if the lengths in the first direction (D1) are different from each other or the lengths in the second direction (D2) are different from each other, the hash values may be different from each other.

제 1 세그먼트(SEG1)의 해시 값을 결정하는 요소로써, 제 1 세그먼트(SEG1)의 바이어싱 방향(①)이 채택될 수 있다. 바이어싱 방향은 세그먼트가 OPC 툴에 의해 그리드(grid) 단위로 시뮬레이션 되는 순서를 의미할 수 있다. 예를 들어, 하나의 회로 패턴(예컨대, 도 3의 R1)을 구성하는 4개의 세그먼트들은 동일한 바이어싱 방향을 가질 수 있다. 예시적으로, 도 8에는 회로 패턴(도 3의 R1)들을 구성하는 세그먼트들이 시계 방향으로 순차적으로 보정되는 것으로 도시되었다. 예를 들어, 세그먼트들이 시계 방향으로 보정되는 경우 바이어싱 방향은 제 1 값을 가질 수 있으며, 세그먼트들이 반시계 방향으로 보정되는 경우 바이어싱 방향은 제 2 값을 가질 수 있다.As a factor for determining the hash value of the first segment (SEG1), the biasing direction (①) of the first segment (SEG1) may be adopted. The biasing direction may refer to the order in which the segments are simulated in grid units by the OPC tool. For example, four segments constituting one circuit pattern (e.g., R1 of FIG. 3) may have the same biasing direction. For example, FIG. 8 illustrates that the segments constituting the circuit patterns (R1 of FIG. 3) are sequentially corrected in a clockwise direction. For example, when the segments are corrected in a clockwise direction, the biasing direction may have a first value, and when the segments are corrected in a counterclockwise direction, the biasing direction may have a second value.

제 1 세그먼트(SEG1)의 해시 값을 결정하는 요소로써, 제 1 세그먼트(SEG1)와 인접 세그먼트 사이의 거리들(D12, D13)이 채택될 수 있다. 여기서, 인접 세그먼트란 광 근접 보정 시 제 1 세그먼트(SEG1)에 영향을 미치는 거리 내에 배치된 세그먼트를 의미할 수 있다. 그리고, 인접 세그먼트란 제 1 세그먼트(SEG1)가 속하는 회로 패턴(도 3의 R1)에 속하지 않는 인접한 회로 패턴을 의미할 수 있다. 예를 들어, 인접 세그먼트란, 제 1 세그먼트(SEG1)가 속하는 회로 패턴(도 3의 R1)과 인접한 회로 패턴(도 3의 R3)에 속하는 세그먼트들 중 적어도 일부(예컨대, SEG2 및 SEG3)를 일컬을 수 있다. As a factor for determining the hash value of the first segment (SEG1), distances (D12, D13) between the first segment (SEG1) and adjacent segments may be adopted. Here, the adjacent segment may mean a segment positioned within a distance that affects the first segment (SEG1) during optical proximity correction. In addition, the adjacent segment may mean an adjacent circuit pattern that does not belong to the circuit pattern (R1 of FIG. 3) to which the first segment (SEG1) belongs. For example, the adjacent segment may refer to at least some of the segments (e.g., SEG2 and SEG3) belonging to the circuit pattern (R3 of FIG. 3) adjacent to the circuit pattern (R1 of FIG. 3) to which the first segment (SEG1) belongs.

제 1 세그먼트(SEG1)의 해시 값을 결정하는 또 다른 요소로써, 인접 세그먼트들(SEG2, SEG3)의 길이들(L2, L3)이 각각 채택될 수 있다. 인접 세그먼트들(SEG2, SEG3)의 길이들(L2, L3)은 제 1 방향(D1)으로의 길이 및/또는 제 2 방향(D2)으로의 길이를 포함한다. 예를 들어, 도 9에 도시된 것과 같이, 주변 세그먼트(SEG2 또는 SEG2)가 제 1 방향(D1)으로의 성분과 제 2 방향(D2)으로의 성분으로 구성된 경우, 제 1 방향(D1)으로의 성분과 제 2 방향(D2)으로의 성분 각각이 독립적으로 해시 값을 결정하는 요소로 작용할 수 있다.As another factor for determining the hash value of the first segment (SEG1), the lengths (L2, L3) of the adjacent segments (SEG2, SEG3) may be adopted, respectively. The lengths (L2, L3) of the adjacent segments (SEG2, SEG3) include the length in the first direction (D1) and/or the length in the second direction (D2). For example, as illustrated in FIG. 9, when the adjacent segment (SEG2 or SEG2) is composed of a component in the first direction (D1) and a component in the second direction (D2), each of the component in the first direction (D1) and the component in the second direction (D2) may independently serve as a factor for determining the hash value.

제 1 세그먼트(SEG1)의 해시 값을 계산하는데 있어서, 상술된 요소들이 종합적으로 고려되어 해시 값이 계산될 수 있다. 다시 말해, 상술된 요소들을 독립 변수로 하는 해시 함수를 통하여 슬레이브 장치는 제 1 세그먼트(SEG1)의 해시 값을 계산할 수 있다. When calculating the hash value of the first segment (SEG1), the above-described factors can be comprehensively considered to calculate the hash value. In other words, the slave device can calculate the hash value of the first segment (SEG1) through a hash function that uses the above-described factors as independent variables.

도 10은 본 개시의 실시 예에 따른 세그먼트의 해시 값을 결정하는 요소들을 개념적으로 도시한다. 앞서 도 9의 실시 예와는 달리, 본 실시 예는 세그먼트 자신과 관련된 요소만을 고려하여 임시 해시 값이 계산된다. 이후, 임시 해시 값들과 세그먼트들 사이의 거리에 기반하여 최종 해시 값이 계산된다.Figure 10 conceptually illustrates the elements that determine the hash value of a segment according to an embodiment of the present disclosure. Unlike the embodiment of Figure 9, this embodiment calculates a temporary hash value by considering only elements related to the segment itself. The final hash value is then calculated based on the distance between the temporary hash values and the segments.

제 1 세그먼트(SEG1)의 임시 해시 값을 결정하는 요소로들써, 제 1 세그먼트(SEG1)의 길이(L1)와 바이어싱 방향(①)이 채택될 수 있다. 길이(L1)의 D1 방향으로의 성분과 D2 방향으로의 성분 모두 독립적으로 해시 값에 영향을 줄 수 있다. 슬레이브 장치(도 6, 121~12n 중 어느 하나)는 제 1 세그먼트(SEG1)의 제 1 방향(D1) 및/또는 제 2 방향(D2)의 길이와 제 1 세그먼트(SEG1)가 OPC 툴에 의해 그리드(grid) 단위로 시뮬레이션 되는 순서(예컨대, 시계 방향)를 고려하여, 제 1 세그먼트의 임시 해시 값을 계산할 수 있다. As factors determining the temporary hash value of the first segment (SEG1), the length (L1) and the biasing direction (①) of the first segment (SEG1) can be adopted. Both the component of the length (L1) in the D1 direction and the component in the D2 direction can independently affect the hash value. The slave device (any one of 121 to 12n of FIG. 6) can calculate the temporary hash value of the first segment by considering the length of the first direction (D1) and/or the second direction (D2) of the first segment (SEG1) and the order (e.g., clockwise) in which the first segment (SEG1) is simulated in grid units by the OPC tool.

제 2 세그먼트(SEG2)의 임시 해시 값을 결정하는 요소로들써, 제 2 세그먼트(SEG2)의 길이(L2)와 바이어싱 방향(②)이 채택될 수 있다. 슬레이브 장치는 제 2 세그먼트(SEG2)의 제 1 방향(D1) 및/또는 제 2 방향(D2)의 길이와 제 2 세그먼트(SEG2)가 OPC 툴에 의해 그리드 단위로 시뮬레이션 되는 순서(예컨대, 반시계 방향)를 고려하여, 제 2 세그먼트의 임시 해시 값을 계산할 수 있다.The length (L2) and biasing direction (②) of the second segment (SEG2) may be adopted as factors for determining the temporary hash value of the second segment (SEG2). The slave device may calculate the temporary hash value of the second segment by considering the length of the first direction (D1) and/or the second direction (D2) of the second segment (SEG2) and the order in which the second segment (SEG2) is simulated in grid units by the OPC tool (e.g., counterclockwise).

제 3 세그먼트(SEG3)의 임시 해시 값을 결정하는 요소로들써, 제 3 세그먼트(SEG2)의 길이(L3)와 바이어싱 방향(③)이 채택될 수 있다. 슬레이브 장치는 제 3 세그먼트(SEG3)의 제 1 방향(D1) 및/또는 제 2 방향(D2)의 길이와 제 3 세그먼트(SEG3)가 OPC 툴에 의해 그리드 단위로 시뮬레이션 되는 순서(예컨대, 반시계 방향)를 고려하여, 제 3 세그먼트의 임시 해시 값을 계산할 수 있다.The length (L3) and biasing direction (③) of the third segment (SEG2) may be adopted as factors for determining the temporary hash value of the third segment (SEG3). The slave device may calculate the temporary hash value of the third segment by considering the length of the first direction (D1) and/or the second direction (D2) of the third segment (SEG3) and the order in which the third segment (SEG3) is simulated in grid units by the OPC tool (e.g., counterclockwise).

제 1 세그먼트(SEG1)의 최종 해시 값을 계산함에 있어서, 세그먼트들(SEG1, SEG2, SEG3)의 해시 값들, 제 1 세그먼트(SEG1)와 제 2 세그먼트(SEG2) 사이의 거리(D12), 및 제 1 세그먼트(SEG1)와 제 3 세그먼트(SEG3) 사이의 거리(D13)가 고려될 수 있다. 예를 들어, 슬레이브 장치는 제 1 세그먼트(SEG1)의 임시 해시 값에 제 2 세그먼트(SEG2)의 임시 해시 값, 제 3 세그먼트(SEG3)의 임시 해시 값, 및 거리들(D12, D13)를 반영하여 제 1 세그먼트(SEG1)의 최종 해시 값을 계산할 수 있다. In calculating the final hash value of the first segment (SEG1), the hash values of the segments (SEG1, SEG2, SEG3), the distance (D12) between the first segment (SEG1) and the second segment (SEG2), and the distance (D13) between the first segment (SEG1) and the third segment (SEG3) may be taken into consideration. For example, the slave device may calculate the final hash value of the first segment (SEG1) by reflecting the temporary hash value of the second segment (SEG2), the temporary hash value of the third segment (SEG3), and the distances (D12, D13) to the temporary hash value of the first segment (SEG1).

다만, 제 1 세그먼트(SEG1)의 최종 해시 값을 계산하는데 있어서, 제 1 세그먼트(SEG1)와 인접 세그먼트(SEG2 또는 SEG3) 사이의 거리가 임계 값을 초과하는 경우, 제 1 세그먼트(SEG1)의 최종 해시 값을 계산함에 있어서, 해당 해시 값은 반영되지 않을 수 있다. 여기서, 임계 값이라 함은, OPC 툴을 이용한 시뮬레이션에 영향을 주지 않는 거리일 수 있다.However, when calculating the final hash value of the first segment (SEG1), if the distance between the first segment (SEG1) and the adjacent segment (SEG2 or SEG3) exceeds a threshold value, the corresponding hash value may not be reflected when calculating the final hash value of the first segment (SEG1). Here, the threshold value may be a distance that does not affect the simulation using the OPC tool.

도 11은 본 개시의 실시 예에 따른 광 근접 보정을 실행하는 방법을 도시한다. 예시적으로, 도 11의 실시 예는 도 7에 도시된 반도체 칩(A)에 대하여 수행되는 처리 과정들을 좀 더 상세하게 도시한다.FIG. 11 illustrates a method for performing optical proximity correction according to an embodiment of the present disclosure. By way of example, the embodiment of FIG. 11 illustrates in more detail the processing steps performed on the semiconductor chip (A) illustrated in FIG. 7.

S310 단계에서, 마스터 장치(110)는 반도체 칩(A)의 레이아웃을 복수의 패치들(PA1~PAn)로 분할할 수 있다. S320 단계에서, 도 4를 통하여 설명된 것과 같이, 마스터 장치(110)는 분할된 패치들(PA1~PAn)을 복수의 슬레이브 장치들(121~12n)에 각각 할당할 수 있다. S330 내지 S350 단계에서, 각 슬레이브 장치는 할당 받은 처리할 수 있다. At step S310, the master device (110) can divide the layout of the semiconductor chip (A) into a plurality of patches (PA1 to PAn). At step S320, as described with reference to FIG. 4, the master device (110) can assign the divided patches (PA1 to PAn) to a plurality of slave devices (121 to 12n), respectively. At steps S330 to S350, each slave device can process the assigned patches.

실시 예에 있어서, 제 1 슬레이브 장치(121)는 제 1 패치(PA1)로부터 복수의 세그먼트들을 생성할 수 있다(S331). 제 1 슬레이브 장치(121)는 생성된 세그먼트들의 각각에 대한 해시 값을 계산할 수 있다(S341). 예를 들어, 제 1 슬레이브 장치(121)는 도 9 또는 도 10에서 설명된 바와 같은 다양한 방식으로 각 세그먼트의 해시 값을 계산할 수 있다. 이러한 동작들은 제 2 슬레이브 장치(122) 내지 제 n 슬레이브 장치(12n)에 의해서도 유사하게 수행될 것이다.In an embodiment, the first slave device (121) can generate multiple segments from the first patch (PA1) (S331). The first slave device (121) can calculate a hash value for each of the generated segments (S341). For example, the first slave device (121) can calculate the hash value of each segment in various ways as described in FIG. 9 or FIG. 10. These operations will be similarly performed by the second slave device (122) to the n-th slave device (12n).

S351 단계에서, 제 1 슬레이브 장치(121)는 각 세그먼트에 대한 바이어스 값을 계산할 수 있다. 바이어스 값은 OPC 툴의 최소 시뮬레이션 단위인 그리드들의 각각에 대한 시뮬레이션 결과들에 기반하여 획득될 수 있다. 제 2 슬레이브 장치(122) 내지 제 n 슬레이브 장치(12n)도 할당 받은 패치의 세그먼트에 대한 바이어스 값을 계산할 수 있다.In step S351, the first slave device (121) can calculate a bias value for each segment. The bias value can be obtained based on simulation results for each of the grids, which are the minimum simulation units of the OPC tool. The second slave device (122) to the nth slave device (12n) can also calculate bias values for the segments of the assigned patch.

S360 단계에서, 마스터 장치(110)는 슬레이브 장치들(121~12n)에 의해 계산된 해시 값들 및 바이어스 값들을 취합할 수 있다. At step S360, the master device (110) can collect hash values and bias values calculated by the slave devices (121 to 12n).

S370 단계에서, 마스터 장치(110)는 동일한 해시 값을 갖는 세그먼트들에 대한 대표값을 생성할 수 있다. 예를 들어, 대표값은 동일한 해시 값을 갖는 세그먼트들의 바이어스 값들로부터 획득될 수 있다. 예를 들어, 대표값은 동일한 해시 값을 갖는 세그먼트들의 바이어스 값들의 평균값을 가질 수 있으나, 이에 한정되지 않는다. 예를 들어, 대표값은, 동일한 해시 값을 갖는 세그먼트들의 바이어스 값들의 중앙값(median), 최빈값(mode) 등일 수 있다.At step S370, the master device (110) may generate a representative value for segments having the same hash value. For example, the representative value may be obtained from the bias values of segments having the same hash value. For example, the representative value may be the average of the bias values of segments having the same hash value, but is not limited thereto. For example, the representative value may be the median, mode, etc. of the bias values of segments having the same hash value.

S380 단계에서, 라이브러리가 업데이트될 수 있다. 예를 들어, 동일한 해시 값들 갖는 세그먼트들의 보정값들의 대표값이 라이브러리에 저장될 수 있다. 그리고, 중복되지 않는 해시 값을 갖는 세그먼트의 보정 값이 라이브러리에 저장될 수 있다. At step S380, the library may be updated. For example, a representative value of the correction values of segments with identical hash values may be stored in the library. Furthermore, the correction values of segments with non-duplicate hash values may be stored in the library.

도 12는 복수의 패치들의 세그먼트들의 바이어스 값들로부터 대표값을 계산하는 것을 개념적으로 도시한다. 설명의 용이함을 위해 도 6을 함께 참조한다.Figure 12 conceptually illustrates calculating a representative value from the bias values of segments of multiple patches. For ease of explanation, reference is also made to Figure 6.

제 1 슬레이브 장치(121)는 제 1 패치(PA1)로부터 세그먼트들(SEG1~SEGi)을 생성하며, 세그먼트들(SEG1~SEGi) 각각에 대응하는 해시 값들(HV1~HVi)을 계산한다. 제 2 슬레이브 장치(122)는 제 2 패치(PA2)로부터 복수의 세그먼트들(SEG1~SEGj)을 생성하며, 세그먼트들(SEG1~SEGj) 각각에 대응하는 해시 값들(HV1~HVj)을 계산한다. 유사하게, 제 n 슬레이브 장치(12n)는 제 n 패치(PAn)로부터 복수의 세그먼트들(SEG1~SEGn)을 생성하며, 세그먼트들(SEG1~SEGk) 각각에 대응하는 해시 값들(HV1~HVk)을 계산한다. The first slave device (121) generates segments (SEG1 to SEGi) from the first patch (PA1) and calculates hash values (HV1 to HVi) corresponding to each of the segments (SEG1 to SEGi). The second slave device (122) generates a plurality of segments (SEG1 to SEGj) from the second patch (PA2) and calculates hash values (HV1 to HVj) corresponding to each of the segments (SEG1 to SEGj). Similarly, the n-th slave device (12n) generates a plurality of segments (SEG1 to SEGn) from the n-th patch (PAn) and calculates hash values (HV1 to HVk) corresponding to each of the segments (SEG1 to SEGk).

제 1 슬레이브 장치(121)는 세그먼트들(SEG1~SEGi)의 각각에 대응하는 바이어스 값들(BV1~BVi)을 계산할 수 있다. 제 2 슬레이브 장치(122)는 세그먼트들(SEG1~SEGj)의 각각에 대응하는 바이어스 값들(BV1~BVj)을 계산할 수 있다. 유사하게, 제 n 슬레이브 장치(12n)는 세그먼트들(SEG1~SEGk)의 각각에 대응하는 바이어스 값들(BV1~BVk)을 계산할 수 있다. The first slave device (121) can calculate bias values (BV1 to BVi) corresponding to each of the segments (SEG1 to SEGi). The second slave device (122) can calculate bias values (BV1 to BVj) corresponding to each of the segments (SEG1 to SEGj). Similarly, the nth slave device (12n) can calculate bias values (BV1 to BVk) corresponding to each of the segments (SEG1 to SEGk).

마스터 장치(110)는 각 패치의 해시 값들과 바이어스 값들을 취합하고, 서로 동일한 해시 값들을 갖는 세그먼트들의 바이어스 값들로부터 대표값을 계산할 수 있다. 예시적으로, 제 1 패치(PA1)의 제 1 세그먼트(SEG1)의 해시 값(HV1), 제 2 패치(PA2)의 제 2 세그먼트(SEG2)의 해시 값(HV2), 및 제 n 패치(PAn)의 제 k 세그먼트(SEGk)의 해시 값(HVk)이 서로 동일한 것으로 가정될 수 있다. 여기서, 대표값은 평균값, 중앙값, 최빈값 등일 수 있으나, 이에 한정되지 않는다. 계산된 대표값은 라이브러리에 업데이트될 수 있으며, 동일한 해시 값을 갖는 세그먼트들에 공통으로 적용될 수 있다.The master device (110) can collect the hash values and bias values of each patch, and calculate a representative value from the bias values of segments having the same hash values. For example, it can be assumed that the hash value (HV1) of the first segment (SEG1) of the first patch (PA1), the hash value (HV2) of the second segment (SEG2) of the second patch (PA2), and the hash value (HVk) of the k-th segment (SEGk) of the n-th patch (PAn) are the same. Here, the representative value may be, but is not limited to, the mean, median, mode, etc. The calculated representative value can be updated in the library, and can be commonly applied to segments having the same hash value.

앞서 도 9 또는 도 10의 실시 예들에 의하면, 서로 동일한 해시 값을 갖는, 제 1 패치(PA1)의 제 1 세그먼트(SEG1), 제 2 패치(PA2)의 제 2 세그먼트(SEG2), 및 제 n 패치(PAn)의 제 k 세그먼트(SEGk)는 서로 동일한 주변 조건을 갖는 것으로 예상될 수 있다. 따라서, 동일한 주변 조건을 갖는 세그먼트들에 대해 동일한 보정 값을 적용시켜 패치들 간의 일관성(consistency)을 유지시킴으로써, 설계된 회로를 설계자의 의도에 따라 정상적으로 동작시킬 수 있다. According to the embodiments of FIG. 9 or 10, the first segment (SEG1) of the first patch (PA1), the second segment (SEG2) of the second patch (PA2), and the k-th segment (SEGk) of the n-th patch (PAn), which have the same hash value, can be expected to have the same ambient conditions. Accordingly, by applying the same correction value to segments having the same ambient conditions to maintain consistency between patches, the designed circuit can be operated normally according to the designer's intention.

도 13은 본 개시의 실시 예에 따른 광 근접 보정을 실행하는 방법을 도시한다. 예시적으로, 도 13의 실시 예는 도 8에 도시된 반도체 칩(B)에 대하여 수행되는 처리 과정들을 좀 더 상세하게 도시한다.FIG. 13 illustrates a method for performing optical proximity correction according to an embodiment of the present disclosure. By way of example, the embodiment of FIG. 13 illustrates in more detail the processing steps performed on the semiconductor chip (B) illustrated in FIG. 8.

S410 단계에서, 마스터 장치(110)는 반도체 칩(A)의 레이아웃을 복수의 패치들(PA1~PAn)로 분할할 수 있다. S420 단계에서, 도 4를 통하여 설명된 것과 같이, 마스터 장치(110)는 분할된 패치들(PA1~PAn)을 복수의 슬레이브 장치들(121~12n)에 각각 할당할 수 있다. S430 단계 및 S440 단계에서, 각 슬레이브 장치는 할당 받은 패치를 처리할 수 있다. At step S410, the master device (110) can divide the layout of the semiconductor chip (A) into a plurality of patches (PA1 to PAn). At step S420, as described with reference to FIG. 4, the master device (110) can assign the divided patches (PA1 to PAn) to a plurality of slave devices (121 to 12n), respectively. At steps S430 and S440, each slave device can process the assigned patch.

실시 예에 있어서, 제 1 슬레이브 장치(121)는 제 1 패치(PA1)로부터 복수의 세그먼트들을 생성할 수 있다(S431). 제 1 슬레이브 장치(121)는 생성된 세그먼트들의 각각에 대한 해시 값을 계산할 수 있다(S441). 예를 들어, 제 1 슬레이브 장치(121)는 도 9 또는 도 10에서 설명된 바와 같은 다양한 방식으로 각 세그먼트의 해시 값을 계산할 수 있다. 이러한 동작들은 제 2 슬레이브 장치(122) 내지 제 n 슬레이브 장치(12n)에 의해서도 유사하게 수행될 것이다.In an embodiment, the first slave device (121) can generate a plurality of segments from the first patch (PA1) (S431). The first slave device (121) can calculate a hash value for each of the generated segments (S441). For example, the first slave device (121) can calculate the hash value of each segment in various ways as described in FIG. 9 or FIG. 10. These operations will be similarly performed by the second slave device (122) to the n-th slave device (12n).

S450 단계에서, 마스터 장치(110)는 슬레이브 장치들(121~12n)로부터 해시 값들을 수신할 수 있으며, 해시 값들에 기반하여 라이브러리를 검색할 수 있다. 여기서 라이브러리는 반도체 칩(A)에 대한 라이브러리를 포함할 수 있다(예컨대, 도 11의 S380). 마스터 장치(110)는 라이브러리에 저장된 해시 값과, 슬레이브 장치들(121~12n)로부터 수신된 해시 값들을 비교하여, 반도체 칩(B)의 각 세그먼트에 대한 광 근접 보정이 필요한지 여부를 판별할 수 있다. At step S450, the master device (110) can receive hash values from the slave devices (121 to 12n) and search a library based on the hash values. Here, the library can include a library for the semiconductor chip (A) (e.g., S380 of FIG. 11). The master device (110) can compare the hash values stored in the library with the hash values received from the slave devices (121 to 12n) to determine whether optical proximity correction is required for each segment of the semiconductor chip (B).

검색 결과, 슬레이브 장치들(121~12n)로부터 수신된 해시 값과 일치하는 값이 라이브러리에 있으면, 해당 해시 값에 대응하는 세그먼트에 대한 바이어스 값을 계산할 필요는 없다. 반면, 슬레이브 장치들(121~12n)로부터 수신된 해시 값과 일치하는 값이 라이브러리에 없으면, 해당 해시 값에 대응하는 세그먼트에 대한 바이어스 값을 계산할 필요가 있다.If the library contains a value matching the hash value received from the slave devices (121-12n), there is no need to calculate a bias value for the segment corresponding to the hash value. On the other hand, if the library does not contain a value matching the hash value received from the slave devices (121-12n), there is a need to calculate a bias value for the segment corresponding to the hash value.

S460 단계에서, 마스터 장치(110)는 S450 단계에서의 검색 결과를 슬레이브 장치들(121~12n)로 전송할 수 있다. 예를 들어, 제 1 슬레이브 장치(121)는, 검색 결과를 참조하여, 제 1 패치(PA1)의 세그먼트들 중 라이브러리에 저장되지 않은 세그먼트에 대한 바이어스 값을 계산할 수 있다(S461). 나머지 슬레이브 장치들(122~12n)도 유사하게 세그먼트들에 대한 바이어스 값을 계산할 수 있다(S462~S46n).At step S460, the master device (110) can transmit the search results at step S450 to the slave devices (121 to 12n). For example, the first slave device (121) can, with reference to the search results, calculate bias values for segments of the first patch (PA1) that are not stored in the library (S461). The remaining slave devices (122 to 12n) can similarly calculate bias values for their segments (S462 to S46n).

S470 단계에서, 마스터 장치(110)는 슬레이브 장치들(121~12n)에 의해 계산된 바이어스 값들을 취합할 수 있다. At step S470, the master device (110) can collect bias values calculated by the slave devices (121 to 12n).

S480 단계에서, 마스터 장치(110)는 동일한 해시 값을 갖는 세그먼트들에 대한 대표값을 생성할 수 있다. 예를 들어, 대표값은 동일한 해시 값을 갖는 세그먼트들의 바이어스 값들로부터 획득될 수 있다. 예를 들어, 대표값은 동일한 해시 값을 갖는 세그먼트들의 바이어스 값들의 평균값, 중앙값, 최빈값 등일 수 있다.At step S480, the master device (110) may generate a representative value for segments having the same hash value. For example, the representative value may be obtained from the bias values of segments having the same hash value. For example, the representative value may be the mean, median, mode, etc. of the bias values of segments having the same hash value.

S490 단계에서 라이브러리가 업데이트될 수 있다. 예를 들어, 동일한 해시 값들 갖는 세그먼트들의 보정값들의 대표값이 라이브러리에 저장될 수 있으며, 중복되지 않는 해시 값을 갖는 세그먼트의 보정 값이 라이브러리에 저장될 수 있다.At step S490, the library may be updated. For example, a representative value of the correction values of segments with identical hash values may be stored in the library, and a correction value of segments with non-duplicate hash values may be stored in the library.

상술된 도 12 내지 도 14의 실시 예들을 요약하면, 반도체 칩(A)에 대하여 세그먼트들의 바이어스 값들(대표 값 포함) 계산하여 라이브러리를 생성한다. 여기서, 서로 동일한 해시 값을 갖는 세그먼트들에 대해서는 대표 값을 공통적으로 적용하여 반도체 칩(A)의 패치들 간의 일관성(consistency)를 유지시킨다. 더 나아가, 라이브러리에 저장된 대표값을 다른 반도체 칩들(B~Z)에도 공통으로 적용하여 반도체 칩들 간에도 일관성을 유지시킨다. To summarize the embodiments of FIGS. 12 to 14 described above, a library is generated by calculating bias values (including representative values) of segments for a semiconductor chip (A). Here, for segments having the same hash value, the representative value is commonly applied to maintain consistency between patches of the semiconductor chip (A). Furthermore, the representative value stored in the library is commonly applied to other semiconductor chips (B to Z) to maintain consistency between the semiconductor chips.

한편, 각 슬레이브가 해당 패치의 모든 세그먼트들에 대한 바이어스 값들을 계산함으로써, 광 근접 보정을 수행하는데 드는 시간이 지나치게 길어질 수 있다. 따라서, 바이어스 값을 계산하는데 소모되는 시간을 줄이기 위한 다른 방법이 채택될 수 있다. 이에 대해서는 도 14 및 도 15를 참조하여 설명한다.Meanwhile, since each slave calculates bias values for all segments of the corresponding patch, the time required to perform optical proximity correction may become excessively long. Therefore, another method can be adopted to reduce the time required to calculate bias values. This will be described with reference to FIGS. 14 and 15.

도 14는 본 개시의 실시 예에 따른 광 근접 보정을 수행하는 방법을 도시한다. 도 15는 마스터 장치에 의해 할당되는 작업들을 개념적으로 도시한다. FIG. 14 illustrates a method for performing optical proximity correction according to an embodiment of the present disclosure. FIG. 15 conceptually illustrates tasks assigned by a master device.

우선 도 14를 참조하면, 마스터 장치(110)는 반도체 칩(A)의 레이아웃을 복수의 패치들(PA1~PAn)로 분할하고(S510), 분할된 패치들(PA1~PAn)을 복수의 슬레이브 장치들(121~12n)에 각각 할당할 수 있다(S520). 각 슬레이브 장치는 해당 패치로부터 세그먼트들을 생성하고(S531~S53n), 생성된 세그먼트들에 대한 해시 값들을 계산할 수 있다(S541~S54n). 슬레이브 장치들(121~12n)은 계산된 해시 값들을 마스터 장치(110)로 전송할 수 있다.First, referring to FIG. 14, the master device (110) can divide the layout of the semiconductor chip (A) into a plurality of patches (PA1 to PAn) (S510) and assign the divided patches (PA1 to PAn) to a plurality of slave devices (121 to 12n) (S520). Each slave device can generate segments from the corresponding patch (S531 to S53n) and calculate hash values for the generated segments (S541 to S54n). The slave devices (121 to 12n) can transmit the calculated hash values to the master device (110).

마스터 장치(110)는 해시 값들에 기반하여, 각 슬레이브 장치에 작업을 할당할 수 있다(S560). 여기서 작업이란 동일한 (즉, 중복되는) 해시 값들을 갖는 세그먼트들에 대한 바이어스 값을 구하는 것을 의미할 수 있다. 마스터 장치(110)에 의한 작업 할당을 좀 더 상세하게 설명하기 위해 도 15를 함께 참조한다.The master device (110) can assign tasks to each slave device based on hash values (S560). Here, the task may refer to obtaining bias values for segments with identical (i.e., overlapping) hash values. For a more detailed explanation of task assignment by the master device (110), reference is also made to FIG. 15 .

예시적으로, 제 1 슬레이브 장치(121)는 제 1 패치(PA1)로부터 세그먼트들(SEG1~SEGi)을 생성하고, 세그먼트들(SEG1~SEGi) 각각에 대응하는 해시 값들(HV1~HVi)을 계산한다. 제 2 슬레이브 장치(122)는 제 2 패치(PA2)로부터 복수의 세그먼트들(SEG1~SEGj)을 생성하며, 세그먼트들(SEG1~SEGj) 각각에 대응하는 해시 값들(HV1~HVj)을 계산한다. 유사하게, 제 n 슬레이브 장치(12n)는 제 n 패치(PAn)로부터 복수의 세그먼트들(SEG1~SEGn)을 생성하며, 세그먼트들(SEG1~SEGk) 각각에 대응하는 해시 값들(HV1~HVk)을 계산한다. For example, a first slave device (121) generates segments (SEG1 to SEGi) from a first patch (PA1) and calculates hash values (HV1 to HVi) corresponding to each of the segments (SEG1 to SEGi). A second slave device (122) generates a plurality of segments (SEG1 to SEGj) from a second patch (PA2) and calculates hash values (HV1 to HVj) corresponding to each of the segments (SEG1 to SEGj). Similarly, an n-th slave device (12n) generates a plurality of segments (SEG1 to SEGn) from an n-th patch (PAn) and calculates hash values (HV1 to HVk) corresponding to each of the segments (SEG1 to SEGk).

여기서, 제 1 패치의 해시 값들(HV1, HV3), 제 2 패치(PA2)의 해시 값(HV2), 및 제 n 패치(PAn)의 해시 값(HVk)은 동일하다고 가정한다(이상, 제 1 해시 값). 제 1 패치의 해시 값(HV2), 제 2 패치(PA2)의 해시 값들(HV1, HVj), 및 제 n 패치(PAn)의 해시 값(HV3)은 동일하다고 가정한다(이상, 제 2 해시 값). 그리고, 제 1 패치의 해시 값(HVi), 제 2 패치(PA2)의 해시 값(HV3), 및 제 n 패치(PAn)의 해시 값들(HV1, HV2)은 동일하다고 가정한다(이상, 제 3 해시 값).Here, it is assumed that the hash values (HV1, HV3) of the first patch, the hash value (HV2) of the second patch (PA2), and the hash value (HVk) of the n-th patch (PAn) are the same (above, the first hash value). It is assumed that the hash value (HV2) of the first patch, the hash values (HV1, HVj) of the second patch (PA2), and the hash value (HV3) of the n-th patch (PAn) are the same (above, the second hash value). In addition, it is assumed that the hash value (HVi) of the first patch, the hash value (HV3) of the second patch (PA2), and the hash values (HV1, HV2) of the n-th patch (PAn) are the same (above, the third hash value).

앞서 도 11의 실시 예에 의하면, 각 슬레이브 장치는 모든 세그먼트들에 대한 바이어스 값을 계산하기 때문에 광 근접 보정을 수행하는데 드는 시간이 길어질 수 있다. 그러나, 도 15의 실시 예에 의하면, 마스터 장치(110)는, 동일한 해시 값을 갖는 세그먼트들의 개수가 가장 많은 패치를 담당하는 슬레이브 장치에 작업을 할당한다. 여기서, 작업은 동일한 해시 값을 갖는 세그먼트들의 바이어스 값들의 계산 및 계산된 바이어스 값들에 기반한 대표 값의 계산을 의미할 수 있다.According to the embodiment of FIG. 11, since each slave device calculates bias values for all segments, the time required to perform optical proximity correction may be long. However, according to the embodiment of FIG. 15, the master device (110) assigns a task to the slave device responsible for the patch with the largest number of segments having the same hash value. Here, the task may mean calculating bias values for segments having the same hash value and calculating a representative value based on the calculated bias values.

예를 들어, 제 1 해시 값을 갖는 세그먼트들의 개수가 가장 많은 패치는 제 1 패치(PA1)이므로, 마스터 장치(110)는 제 1 패치(PA1)를 담당하는 제 1 슬레이브 장치(121)가 제 1 패치(PA1)의 세그먼트들(SEG1, SEG2)에 대한 바이어스 값들을 계산하도록 작업(Task A)을 할당할 수 있다. 그리고, 마스터 장치(110)는 제 2 슬레이브 장치(122)에게 제 2 패치(PA2)의 제 2 세그먼트(SEG2)에 대한 바이어스 값을 계산하는 작업을 할당하지 않을 수 있다. 유사하게, 마스터 장치(110)는 제 n 슬레이브 장치(12n)에게 제 n 패치(PAn)의 제 k 세그먼트(SEGk)에 대한 바이어스 값을 계산하는 작업을 할당하지 않을 수 있다. For example, since the patch with the largest number of segments having the first hash value is the first patch (PA1), the master device (110) may assign a task (Task A) to the first slave device (121) in charge of the first patch (PA1) to calculate bias values for the segments (SEG1, SEG2) of the first patch (PA1). In addition, the master device (110) may not assign the task of calculating the bias value for the second segment (SEG2) of the second patch (PA2) to the second slave device (122). Similarly, the master device (110) may not assign the task of calculating the bias value for the k-th segment (SEGk) of the n-th patch (PAn) to the n-th slave device (12n).

유사하게, 제 2 해시 값을 갖는 세그먼트들의 개수가 가장 많은 패치는 제 2 패치(PA2)이므로, 마스터 장치(110)는 제 2 슬레이브 장치(122)가 제 2 패치(PA2)의 세그먼트들(SEG1, SEGj)에 대한 바이어스 값들을 계산하도록 작업(Task B)을 분배할 수 있다. 마스터 장치(110)는 제 3 해시 값을 갖는 세그먼트들을 유사한 방식으로 처리할 것이다.Similarly, since the patch with the largest number of segments having the second hash value is the second patch (PA2), the master device (110) can distribute a task (Task B) to the second slave device (122) to calculate bias values for the segments (SEG1, SEGj) of the second patch (PA2). The master device (110) will process the segments having the third hash value in a similar manner.

다시 도 14를 참조하면, S570 단계에서 슬레이브 장치들(121~12n)은 세그먼트들의 바이어스 값들을 계산할 수 있다. 예를 들어, 바이어스 값들을 계산하는 것은 마스터 장치(110)로부터 할당 받은 작업과 관련된 바이어스 값을 계산하는 것을 포함할 수 있다. 즉, 마스터 장치(110)로부터 할당 받은 작업은 동일한 해시 값을 갖는 복수의 세그먼트들에 대한 바이어스 값들을 계산하는 것을 포함할 수 있다. 나아가, 바이어스 값들을 계산하는 것은, 마스터 장치(110)로부터 할당 받은 작업과 관련되지 않은 것으로써, 중복되지 않는 고유의 해시 값을 갖는 세그먼트에 대한 바이어스 값을 계산하는 것을 포함할 수 있다. 그러나, 슬레이브 장치는 다른 슬레이브 장치에 할당된 작업과 관련된 바이어스 값을 계산하지 않을 수 있다.Referring back to FIG. 14, at step S570, the slave devices (121 to 12n) may calculate bias values for the segments. For example, calculating the bias values may include calculating a bias value associated with a task assigned from the master device (110). That is, the task assigned from the master device (110) may include calculating bias values for multiple segments having the same hash value. Furthermore, calculating the bias values may include calculating a bias value for a segment having a unique, non-duplicated hash value that is not associated with a task assigned from the master device (110). However, a slave device may not calculate a bias value associated with a task assigned to another slave device.

도 15의 예를 들어 설명하면, 제 1 슬레이브 장치(121)은 제 1 해시 값을 갖는 세그먼트들에 대한 바이어스 값들을 계산할 수 있다. 그러나, 제 1 슬레이브 장치(121)는 제 2 슬레이브 장치(122)에 할당된 작업(즉, 제 2 해시 값을 갖는 세그먼트들의 바이어스 값들의 계산)과 관련된 바이어스 값을 계산하지 않을 수 있다. 제 1 슬레이브 장치(121)는 제 n 슬레이브 장치(12n)에 할당된 작업(즉, 제 3 해시 값을 갖는 세그먼트들의 바이어스 값들의 계산)과 관련된 바이어스 값을 계산하지 않을 수 있다. 즉, 제 1 슬레이브 장치(121)는 세그먼트들(SEG2, SEGi)의 바이어스 값들을 계산하지 않는다. 물론, 제 1 슬레이브 장치(121)는 다른 슬레이브 장치에 할당되지 않은 작업과 관련된 바이어스 값을 계산할 것이다.For example, as illustrated in FIG. 15, the first slave device (121) may calculate bias values for segments having the first hash value. However, the first slave device (121) may not calculate bias values related to a task assigned to the second slave device (122) (i.e., calculation of bias values of segments having the second hash value). The first slave device (121) may not calculate bias values related to a task assigned to the n-th slave device (12n) (i.e., calculation of bias values of segments having the third hash value). That is, the first slave device (121) does not calculate bias values of the segments (SEG2, SEGi). Of course, the first slave device (121) will calculate bias values related to tasks that are not assigned to other slave devices.

유사하게, 제 2 슬레이브 장치(122)는 제 2 해시 값을 갖는 세그먼트들(SEG1, SEGj)의 해시 값을 계산할 것이며, 다른 슬레이브 장치들에 할당된 세그먼트들(SEG2, SEG3)의 해시 값을 계산하지 않을 것이다. 제 n 슬레이브 장치(12n)는 제 3 해시 값을 갖는 세그먼트들(SEG1, SEG2)의 해시 값을 계산할 것이며, 다른 슬레이브 장치들에 할당된 세그먼트들(SEG3, SEGk)의 해시 값을 계산하지 않을 것이다.Similarly, the second slave device (122) will calculate the hash values of the segments (SEG1, SEGj) having the second hash value and will not calculate the hash values of the segments (SEG2, SEG3) assigned to other slave devices. The nth slave device (12n) will calculate the hash values of the segments (SEG1, SEG2) having the third hash value and will not calculate the hash values of the segments (SEG3, SEGk) assigned to other slave devices.

마스터 장치(110)는 슬레이브 장치들(121~12n)에 의해 계산된 바이어스 값들을 취합할 수 있으며(S580), 취합된 바이어스 값들에 기반하여 대표값을 계산할 수 있다(S590). The master device (110) can collect bias values calculated by slave devices (121 to 12n) (S580) and calculate a representative value based on the collected bias values (S590).

예를 들어, 마스터 장치(110)는 제 1 슬레이브 장치(121)로부터 수신된 바이어스 값들에 기반하여, 제 1 해시 값을 갖는 세그먼트들에 공통으로 적용될 대표값을 계산할 수 있다. 마스터 장치(110)는 제 2 슬레이브 장치(122)로부터 수신된 바이어스 값들에 기반하여, 제 2 해시 값을 갖는 세그먼트들에 공통으로 적용될 대표값을 계산할 수 있다. 유사하게, 마스터 장치(110)는 제 n 슬레이브 장치(12n)로부터 수신된 바이어스 값들에 기반하여, 제 3 해시 값을 갖는 세그먼트들에 공통으로 적용될 대표값을 계산할 수 있다.For example, the master device (110) can calculate a representative value to be commonly applied to segments having a first hash value based on the bias values received from the first slave device (121). The master device (110) can calculate a representative value to be commonly applied to segments having a second hash value based on the bias values received from the second slave device (122). Similarly, the master device (110) can calculate a representative value to be commonly applied to segments having a third hash value based on the bias values received from the n-th slave device (12n).

마스터 장치(110)는 계산된 대표 값(들)을 라이브러리에 업데이트 할 수 있다. 뿐만 아니라, 마스터 장치(110)는 중복되지 않는 고유의 해시 값을 갖는 세그먼트의 바이어스 값도 라이브러리에 업데이트할 수 있다. 업데이트된 라이브러리의 대표값(들) 및 바이어스 값(들)은 패치들(PA1~PAn) 뿐만 아니라, 다른 반도체 칩에도 공통으로 적용될 수 있다. 그 결과, 보정된 마스크의 일관성이 유지될 수 있다.The master device (110) can update the calculated representative value(s) in the library. Furthermore, the master device (110) can also update the bias values of segments with unique, non-duplicated hash values in the library. The updated representative value(s) and bias value(s) in the library can be applied not only to the patches (PA1 to PAn) but also to other semiconductor chips. As a result, the consistency of the corrected mask can be maintained.

도 16은 본 개시의 광 근접 보정에 의해 생성된 마스크를 제작하기 위한 장치를 보여주는 블록도이다. 도 16을 참조하면, 마스크 제작 장치(2000)는 프로세서(2100), 메모리/스토리지(2200), 및 유저 인터페이스(2300)를 포함할 수 있다. 마스크 제작 장치(2000)는 도 2 내지 도 15를 참조하여 설명된 본 발명의 실시 예들에 따라 마스크(1400)를 제작하기 위해 이용될 수 있다.FIG. 16 is a block diagram illustrating a device for manufacturing a mask generated by the optical proximity correction of the present disclosure. Referring to FIG. 16, the mask manufacturing device (2000) may include a processor (2100), memory/storage (2200), and a user interface (2300). The mask manufacturing device (2000) may be used to manufacture a mask (1400) according to the embodiments of the present invention described with reference to FIGS. 2 to 15.

프로세서(2100)는 범용 프로세서, 및 워크스테이션 프로세서와 같은 전용 프로세서 중 적어도 하나를 포함할 수 있다. 프로세서(2100)는 도 3 내지 도 15를 참조하여 설명된, 레이아웃 분할, 세그먼트 생성, 해시 값 계산, 바이어스 값 계산, 대표값 계산, 업데이트 등을 수행하기 위해 다양한 수리 연산 및/또는 논리 연산을 수행할 수 있다. 이를 위해, 프로세서(2100)는 하나 이상의 프로세서 코어들을 포함할 수 있다. 예를 들어, 프로세서(2100)의 프로세서 코어는, 예컨대, 예컨대, FPGA(Field Programmable Gate Array), ASICs(Application Specific Integrated Chips) 등과 같은 전용 논리 회로(Special Purposed Logic Circuit)를 포함할 수 있다.The processor (2100) may include at least one of a general-purpose processor and a dedicated processor, such as a workstation processor. The processor (2100) may perform various mathematical operations and/or logical operations to perform layout division, segment generation, hash value calculation, bias value calculation, representative value calculation, update, etc., as described with reference to FIGS. 3 to 15 . For this purpose, the processor (2100) may include one or more processor cores. For example, the processor core of the processor (2100) may include a special purpose logic circuit, such as, for example, a field programmable gate array (FPGA), an application specific integrated chip (ASIC), etc.

메모리/스토리지(2200)는 프로세서(2100)에 의해 처리된 또는 처리될 데이터를 일시적으로 또는 반영구적으로 저장할 수 있다. 이를 위해, 메모리/스토리지(2200)는 DRAM(Dynamic Random Access Memory), SRAM(Static RAM), SDRAM(Synchronous DRAM) 등과 같은 휘발성 메모리, 및/또는 플래시 메모리(Flash Memory), PRAM(Phase-change RAM), MRAM(Magneto-resistive RAM), ReRAM(Resistive RAM), FRAM(Ferro-electric RAM) 등과 같은 불휘발성 메모리 중 적어도 하나를 포함할 수 있다.The memory/storage (2200) can temporarily or semi-permanently store data processed or to be processed by the processor (2100). To this end, the memory/storage (2200) can include at least one of volatile memory such as dynamic random access memory (DRAM), static RAM (SRAM), synchronous DRAM (SDRAM), and/or non-volatile memory such as flash memory, phase-change RAM (PRAM), magneto-resistive RAM (MRAM), resistive RAM (ReRAM), ferro-electric RAM (FRAM), and the like.

프로세서(2100) 및 메모리/스토리지(2200)의 동작에 따라, 도 3 내지 도 15를 참조하여 설명된 본 발명의 실시 예들이 구현될 수 있다. 마스크 제작 장치(2000)는 프로세서(2100) 및 메모리/스토리지(2200)의 동작에 따라 마스크(1400)를 제작하기 위해 이용될 수 있다.According to the operation of the processor (2100) and the memory/storage (2200), the embodiments of the present invention described with reference to FIGS. 3 to 15 may be implemented. The mask manufacturing device (2000) may be used to manufacture a mask (1400) according to the operation of the processor (2100) and the memory/storage (2200).

마스크 제작 장치(2000)는 프로세서(2100) 및 메모리/스토리지(2200)의 동작에 따라 소프트웨어를 실행할 수 있다. 예를 들어, 소프트웨어는 운영 체제(Operating System) 및/또는 응용 프로그램(Application)을 포함할 수 있다. 운영 체제는 응용 프로그램에 하나 이상의 서비스들을 제공하고, 응용 프로그램과 마스크 제작 장치(2000)의 구성 요소들 사이에서 중개 장치로서 동작할 수 있다. 예를 들어, 응용 프로그램은 도 3 내지 도 15를 참조하여 설명된 본 발명의 실시 예들에 따라 레이아웃을 설계하기 위해 이용되는 프로그램을 포함할 수 있다.The mask manufacturing device (2000) can execute software according to the operation of the processor (2100) and memory/storage (2200). For example, the software may include an operating system and/or an application. The operating system may provide one or more services to the application and may act as an intermediary device between the application and components of the mask manufacturing device (2000). For example, the application may include a program used to design a layout according to embodiments of the present invention described with reference to FIGS. 3 to 15.

유저 인터페이스(2300)는 프로세서(2100) 및 메모리/스토리지(2200)의 동작에 의해 얻어진 결과를 사용자(10)에게 제공하기 위해 동작할 수 있다. 나아가, 유저 인터페이스(2300)는 사용자(10)로부터 다양한 데이터(예컨대, 레이아웃의 설계에 관한 데이터 등)를 제공받기 위해 이용될 수 있다. 예를 들어, 사용자(10)는 마스크(1400) 및 레이아웃의 설계자일 수 있다. 예를 들어, 유저 인터페이스(2300)는 디스플레이 장치, 스피커, 키보드, 마우스 등과 같은 입출력 인터페이스를 포함할 수 있다.The user interface (2300) may operate to provide the user (10) with results obtained by the operations of the processor (2100) and the memory/storage (2200). Furthermore, the user interface (2300) may be used to receive various data (e.g., data related to the design of the layout, etc.) from the user (10). For example, the user (10) may be a designer of the mask (1400) and the layout. For example, the user interface (2300) may include input/output interfaces such as a display device, a speaker, a keyboard, a mouse, etc.

마스크 제작 장치(2000)는 도 3 내지 도 15를 참조하여 설명된 본 발명의 실시 예들에 따라 최종적으로 업데이트된 설계 레이아웃(FU)을 출력할 수 있다. 마스크 제작 장치(2000)는 최종적으로 업데이트된 설계 레이아웃(FU)에 기초하여 마스크(1400)를 제작할 수 있다. 마스크(1400)는 최종적으로 업데이트된 설계 레이아웃(FU)에 대응하는 이미지 패턴들을 포함하여 제작될 수 있다.The mask manufacturing device (2000) can output a final updated design layout (FU) according to the embodiments of the present invention described with reference to FIGS. 3 to 15. The mask manufacturing device (2000) can manufacture a mask (1400) based on the final updated design layout (FU). The mask (1400) can be manufactured including image patterns corresponding to the final updated design layout (FU).

상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.The above-described embodiments are specific examples for practicing the present invention. The present invention will encompass not only the embodiments described above, but also embodiments that can be easily modified or modified. Furthermore, the present invention will encompass techniques that can be easily modified and implemented using the embodiments described above. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be defined not only by the claims set forth below, but also by equivalents of the claims of the present invention.

1000: 포토 리소그래피 시스템
1200: 광원
1400: 마스크
1600: 축소 투영 장치
1800: 웨이퍼 스테이지
1000: Photolithography System
1200: Light source
1400: Mask
1600: Reduction projection device
1800: Wafer Stage

Claims (20)

프로그램 코드를 포함하는 컴퓨터 판독 가능한 매체에 있어서, 프로세서에 의해 상기 프로그램 코드가 실행될 때, 상기 프로세서는:
반도체 칩의 레이아웃을 복수의 패치들로 분할하는 단계;
상기 복수의 패치들 각각의 레이아웃으로부터 복수의 세그먼트들을 생성하는 단계로써, 상기 복수의 패치들 중 제 1 패치는 제 1 세그먼트들을 포함하고, 제 2 패치는 제 2 세그먼트들을 포함하는 것;
해시 함수를 이용하여 상기 제 1 세그먼트들 및 상기 제 2 세그먼트들에 각각 대응하는 해시 값들을 계산하는 단계;
상기 제 1 세그먼트들 중, 제 1 해시 값을 갖는 세그먼트들의 바이어스 값들을 계산하는 단계;
상기 바이어스 값들에 기반하여 대표값을 계산하는 단계; 그리고
상기 제 1 세그먼트들 중, 상기 제 1 해시 값을 갖는 세그먼트들에 상기 대표값을 적용하는 단계를 실행하되,
상기 해시 함수는 각 세그먼트의 제 1 특성 값, 상기 각 세그먼트에 인접한 적어도 하나의 세그먼트의 제 2 특성 값, 및 상기 각 세그먼트와 상기 적어도 하나의 세그먼트 사이의 제 3 특성 값에 의존하는 컴퓨터 판독 가능한 매체.
In a computer-readable medium including a program code, when the program code is executed by a processor, the processor:
A step of dividing the layout of a semiconductor chip into multiple patches;
A step of generating a plurality of segments from the layout of each of the plurality of patches, wherein a first patch among the plurality of patches includes first segments and a second patch includes second segments;
A step of calculating hash values corresponding to each of the first segments and the second segments using a hash function;
A step of calculating bias values of segments having a first hash value among the first segments;
A step of calculating a representative value based on the above bias values; and
Among the first segments, a step of applying the representative value to segments having the first hash value is executed,
A computer-readable medium wherein the hash function depends on a first characteristic value of each segment, a second characteristic value of at least one segment adjacent to each segment, and a third characteristic value between each segment and the at least one segment.
제 1 항에 있어서,
상기 대표값은 상기 제 1 해시 값을 갖는 상기 세그먼트들의 상기 바이어스 값들의 평균값, 중앙값, 최빈값 중 어느 하나인 컴퓨터 판독 가능한 매체.
In the first paragraph,
A computer-readable medium in which the representative value is one of the average, median, and mode of the bias values of the segments having the first hash value.
제 1 항에 있어서,
프로세서에 의해 상기 프로그램 코드가 실행될 때, 상기 프로세서는:
상기 대표값을 라이브러리에 업데이트 하는 단계를 더 실행하는 컴퓨터 판독 가능한 매체.
In the first paragraph,
When the above program code is executed by the processor, the processor:
A computer-readable medium further executing the step of updating the above representative value in the library.
제 1 항에 있어서,
프로세서에 의해 상기 프로그램 코드가 실행될 때, 상기 프로세서는:
상기 제 1 세그먼트들의 해시 값들 중 다른 해시 값과 중복되지 않는 제 2 해시 값을 갖는 제 2 세그먼트의 바이어스 값을 계산하는 단계를 더 실행하는 컴퓨터 판독 가능한 매체.
In the first paragraph,
When the above program code is executed by the processor, the processor:
A computer-readable medium further executing the step of calculating a bias value of a second segment having a second hash value that does not overlap with other hash values among the hash values of the first segments.
제 4 항에 있어서,
프로세서에 의해 상기 프로그램 코드가 실행될 때, 상기 프로세서는:
상기 제 2 세그먼트의 상기 바이어스 값을 라이브러리에 업데이트 하는 단계를 더 실행하는 컴퓨터 판독 가능한 매체.
In paragraph 4,
When the above program code is executed by the processor, the processor:
A computer-readable medium further executing the step of updating the bias value of the second segment in the library.
제 1 항에 있어서,
프로세서에 의해 상기 프로그램 코드가 실행될 때, 상기 프로세서는:
상기 제 2 세그먼트들 중, 상기 제 1 해시 값을 갖는 세그먼트들에 상기 대표값을 적용하는 단계를 더 실행하는 컴퓨터 판독 가능한 매체.
In the first paragraph,
When the above program code is executed by the processor, the processor:
A computer-readable medium further executing a step of applying the representative value to segments having the first hash value among the second segments.
제 1 항에 있어서,
상기 제 1 특성 값은 상기 각 세그먼트의 길이 및 바이어싱 방향 중 적어도 하나를 포함하고,
상기 제 2 특성 값은 상기 적어도 하나의 세그먼트의 길이를 포함하고,
상기 제 3 특성 값은 상기 각 세그먼트와 상기 적어도 하나의 세그먼트 사이의 거리를 포함하는 컴퓨터 판독 가능한 매체.
In the first paragraph,
The first characteristic value includes at least one of the length and biasing direction of each segment,
wherein the second characteristic value comprises the length of at least one segment,
A computer-readable medium wherein the third characteristic value comprises a distance between each segment and the at least one segment.
제 7 항에 있어서,
상기 각 세그먼트의 길이가 제 1 방향 및 제 2 방향으로 연장하는 경우, 상기 각 세그먼트의 상기 제 1 방향으로의 성분 및 상기 각 세그먼트의 상기 제 2 방향으로의 성분 각각이 상기 해시 함수에 독립적으로 영향을 미치는 컴퓨터 판독 가능한 매체.
In paragraph 7,
A computer-readable medium in which each of the components of each segment in the first direction and each of the components of each segment in the second direction independently affects the hash function, when the length of each of the segments extends in the first direction and the second direction.
프로그램 코드를 포함하는 컴퓨터 판독 가능한 매체에 있어서, 프로세서에 의해 상기 프로그램 코드가 실행될 때, 상기 프로세서는:
반도체 소자의 레이아웃으로부터 복수의 세그먼트들을 생성하는 단계;
상기 복수의 세그먼트들 각각에 대하여, 각 세그먼트의 제 1 특성 값, 상기 각 세그먼트에 인접한 적어도 하나의 세그먼트의 제 2 특성 값, 및 상기 각 세그먼트와 상기 적어도 하나의 세그먼트 사이의 제 3 특성 값에 의존하는 해시 함수를 이용하여 해시 값을 계산하는 단계;
상기 복수의 세그먼트들 각각에 대하여 바이어스 값들을 계산하는 단계;
상기 계산된 해시 값들 중 서로 동일한 동일한 해시 값을 갖는 복수의 세그먼트들의 바이어스 값들에 기반하여 대표값을 계산하는 단계; 그리고
상기 서로 동일한 해시 값을 갖는 상기 복수의 세그먼트들에 상기 대표값을 적용하는 단계를 실행하는 컴퓨터 판독 가능한 매체.
In a computer-readable medium including a program code, when the program code is executed by a processor, the processor:
A step of generating a plurality of segments from a layout of a semiconductor device;
For each of the plurality of segments, a step of calculating a hash value using a hash function depending on a first characteristic value of each segment, a second characteristic value of at least one segment adjacent to each segment, and a third characteristic value between each segment and the at least one segment;
A step of calculating bias values for each of the plurality of segments;
A step of calculating a representative value based on the bias values of a plurality of segments having the same hash value among the calculated hash values; and
A computer-readable medium that executes a step of applying the representative value to the plurality of segments having the same hash value.
반도체 소자의 제조 방법에 있어서:
상기 반도체 소자의 레이아웃으로부터 복수의 세그먼트들을 생성하는 단계;
상기 복수의 세그먼트들 각각에 대하여, 각 세그먼트의 제 1 특성 값, 상기 각 세그먼트에 인접한 적어도 하나의 세그먼트의 제 2 특성 값, 및 상기 각 세그먼트와 상기 적어도 하나의 세그먼트 사이의 제 3 특성 값에 의존하는 해시 함수를 이용하여 해시 값을 계산하는 단계;
상기 복수의 세그먼트들 각각에 대하여 바이어스 값들을 계산하는 단계;
상기 계산된 해시 값들 중 서로 동일한 동일한 해시 값을 갖는 복수의 세그먼트들의 바이어스 값들에 기반하여 대표값을 계산하는 단계;
상기 대표값에 따라 보정된 마스크를 생성하는 단계; 그리고
상기 마스크를 이용하여 기판 상에 패턴들을 형성하는 단계를 포함하는 반도체 소자의 제조 방법.
In a method for manufacturing a semiconductor device:
A step of generating a plurality of segments from the layout of the semiconductor device;
For each of the plurality of segments, a step of calculating a hash value using a hash function depending on a first characteristic value of each segment, a second characteristic value of at least one segment adjacent to each segment, and a third characteristic value between each segment and the at least one segment;
A step of calculating bias values for each of the plurality of segments;
A step of calculating a representative value based on bias values of a plurality of segments having the same hash value among the calculated hash values;
A step of generating a mask corrected according to the above representative value; and
A method for manufacturing a semiconductor device, comprising a step of forming patterns on a substrate using the above mask.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020190141095A 2019-10-15 2019-11-06 Method for optical proximity correction in which consistency is maintain and method for manufacturing mask using the same Active KR102877879B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/855,083 US11150551B2 (en) 2019-10-15 2020-04-22 Method for optical proximity correction in which consistency is maintained and method for manufacturing mask using the same
CN202010716289.2A CN112668272B (en) 2019-10-15 2020-07-23 Optical proximity correction method maintaining consistency and method for manufacturing a mask using the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962915109P 2019-10-15 2019-10-15
US62/915,109 2019-10-15

Publications (2)

Publication Number Publication Date
KR20210045265A KR20210045265A (en) 2021-04-26
KR102877879B1 true KR102877879B1 (en) 2025-10-30

Family

ID=75733715

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190141095A Active KR102877879B1 (en) 2019-10-15 2019-11-06 Method for optical proximity correction in which consistency is maintain and method for manufacturing mask using the same

Country Status (1)

Country Link
KR (1) KR102877879B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102878685B1 (en) 2021-08-20 2025-10-30 삼성전자주식회사 Method for designing a pattern layout including oblique edges and method for manufacturing a semiconductor device using the same
KR20230092243A (en) 2021-12-17 2023-06-26 삼성전자주식회사 Optical proximity correction system and operating method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001281836A (en) * 2000-03-30 2001-10-10 Sony Corp Photomask pattern correction method, photomask manufacturing method, and recording medium
JP2004226965A (en) * 2002-12-20 2004-08-12 Lsi Logic Corp Method and system for classifying integrated circuit for optical proximity correction
JP2012177632A (en) * 2011-02-28 2012-09-13 Hitachi High-Technologies Corp Image processor, and computer program for performing image processing
JP2018006746A (en) * 2016-06-29 2018-01-11 株式会社 Ngr Method of utilizing information on shape of frequency distribution of inspection result in pattern inspection apparatus

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10153851A (en) * 1996-11-22 1998-06-09 Sony Corp Exposure data correction method, exposure method, photomask, semiconductor device, exposure data correction device, exposure device, and semiconductor device manufacturing device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001281836A (en) * 2000-03-30 2001-10-10 Sony Corp Photomask pattern correction method, photomask manufacturing method, and recording medium
JP2004226965A (en) * 2002-12-20 2004-08-12 Lsi Logic Corp Method and system for classifying integrated circuit for optical proximity correction
JP2012177632A (en) * 2011-02-28 2012-09-13 Hitachi High-Technologies Corp Image processor, and computer program for performing image processing
JP2018006746A (en) * 2016-06-29 2018-01-11 株式会社 Ngr Method of utilizing information on shape of frequency distribution of inspection result in pattern inspection apparatus

Also Published As

Publication number Publication date
KR20210045265A (en) 2021-04-26

Similar Documents

Publication Publication Date Title
US11415896B2 (en) Dissection method for layout patterns in semiconductor device, optical proximity correction method including the same and method of manufacturing semiconductor device including the same
US8103981B2 (en) Tool for modifying mask design layout
US6807663B2 (en) Accelerated layout processing using OPC pre-processing
US8103983B2 (en) Electrically-driven optical proximity correction to compensate for non-optical effects
US6931617B2 (en) Mask cost driven logic optimization and synthesis
CN112668272B (en) Optical proximity correction method maintaining consistency and method for manufacturing a mask using the same
US8234599B2 (en) Use of graphs to decompose layout design data
US9996658B2 (en) Method of manufacturing a semiconductor device
JP2009506359A (en) Integrated OPC verification tool
CN105045946B (en) Method for IC manufacturing
CN115755522B (en) Mask pattern optimization method and mask plate
US20210263407A1 (en) Stochastic optical proximity corrections
KR102877879B1 (en) Method for optical proximity correction in which consistency is maintain and method for manufacturing mask using the same
US20090077519A1 (en) Displacement Aware Optical Proximity Correction For Microcircuit Layout Designs
CN115933305B (en) Photomask pattern correction method, device, equipment and medium
US20230244136A1 (en) Method for fabricating photomask layout and method for fabricating of semiconductor device using the same
US20230152683A1 (en) Mask Synthesis Integrating Mask Fabrication Effects and Wafer Lithography Effects
TW202326284A (en) Optical proximity correction system, computer-readable medium and operating method
CN116203803A (en) Method for optical proximity correction and method for manufacturing semiconductor device
US20250224666A1 (en) Method for optimizing optical proximity correction model and method for manufacturing semiconductor device including the same
US20240353748A1 (en) Method for generating optical proximity correction model and method for fabricating semiconductor device using the same
CN114721217A (en) Methods and systems for improving optical proximal correction techniques
US20230288795A1 (en) Method Of Fabricating Mask And Method Of Fabricating Semiconductor Device Using The Mask
TWI782372B (en) Method for improving design layout and semiconductor layout system thereof
KR20250140881A (en) Layout design method and manufacturing method of a semiconductor device

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

D22 Grant of ip right intended

Free format text: ST27 STATUS EVENT CODE: A-1-2-D10-D22-EXM-PE0701 (AS PROVIDED BY THE NATIONAL OFFICE)

PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

U11 Full renewal or maintenance fee paid

Free format text: ST27 STATUS EVENT CODE: A-2-2-U10-U11-OTH-PR1002 (AS PROVIDED BY THE NATIONAL OFFICE)

Year of fee payment: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

Q13 Ip right document published

Free format text: ST27 STATUS EVENT CODE: A-4-4-Q10-Q13-NAP-PG1601 (AS PROVIDED BY THE NATIONAL OFFICE)

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000