KR20220140578A - Skeletal representation of layouts for development of lithographic masks - Google Patents

Skeletal representation of layouts for development of lithographic masks Download PDF

Info

Publication number
KR20220140578A
KR20220140578A KR1020227031168A KR20227031168A KR20220140578A KR 20220140578 A KR20220140578 A KR 20220140578A KR 1020227031168 A KR1020227031168 A KR 1020227031168A KR 20227031168 A KR20227031168 A KR 20227031168A KR 20220140578 A KR20220140578 A KR 20220140578A
Authority
KR
South Korea
Prior art keywords
mask
development process
layout
skeletal
representations
Prior art date
Application number
KR1020227031168A
Other languages
Korean (ko)
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 claimed from PCT/US2021/018034 external-priority patent/WO2021163623A1/en
Publication of KR20220140578A publication Critical patent/KR20220140578A/en

Links

Images

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
    • 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/68Preparation processes not covered by groups G03F1/20 - G03F1/50
    • G03F1/70Adapting basic layout or design of masks to lithographic process requirements, e.g., second iteration correction of mask patterns for imaging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30172Centreline of tubular or elongated structure

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Preparing Plates And Mask In Photomechanical Process (AREA)

Abstract

방법은 다음의 단계들을 포함한다: 리소그래피 마스크 개발 프로세스에서 사용되는 레이아웃이 액세스되고, 예컨대, 레이아웃은 마스크 자체의 레이아웃일 수 있거나 또는 웨이퍼 상의 결과적인 인쇄된 패턴의 레이아웃일 수 있고; 레이아웃은 다수의 분리된 형상들을 포함하고; 레이아웃 내의 분리된 형상들 중 적어도 일부에 대한 골격 표현들이 결정되고; 개별 형상의 골격 표현은 에지들에 의해 연결된 2개 이상의 노드의 요소들을 갖고; 개별 형상의 골격 표현은 또한, 요소들 중 적어도 일부에 대한 크기 파라미터들을 포함하고; 형상들의 골격 표현들은 마스크 개발 프로세스에서 사용된다. 시스템은 방법을 실행하기 위한 프로세서를 포함한다. 비일시적 컴퓨터 판독가능 매체는 방법을 실행하기 위한 저장된 명령어를 포함한다.The method includes the following steps: a layout used in the lithographic mask development process is accessed, eg, the layout may be the layout of the mask itself or the layout of the resulting printed pattern on the wafer; The layout includes a number of discrete shapes; skeletal representations for at least some of the discrete shapes in the layout are determined; A skeletal representation of an individual shape has elements of two or more nodes connected by edges; The skeletal representation of the individual shape also includes size parameters for at least some of the elements; Skeletal representations of shapes are used in the mask development process. The system includes a processor for executing the method. The non-transitory computer readable medium includes stored instructions for executing the method.

Description

리소그래피 마스크들의 개발을 위한 레이아웃들의 골격 표현Skeletal representation of layouts for development of lithographic masks

관련 출원Related applications

본 출원은 2020년 2월 14일자로 출원된 "Skeleton Mask Representation"이라는 미국 가출원 제62/977,020호의 우선권을 주장하고, 이 미국 가출원은 그 전체가 참조로 포함된다.This application claims priority to US Provisional Application No. 62/977,020, entitled "Skeleton Mask Representation," filed on February 14, 2020, which is incorporated by reference in its entirety.

기술 분야technical field

본 개시내용은, 예컨대, 집적 회로들의 제작에서 사용되는 바와 같은 리소그래피 마스크들의 개발에 관한 것이다.The present disclosure relates to the development of lithographic masks as used, for example, in the fabrication of integrated circuits.

집적 회로들에 대한 설계들이 더 커지고, 더 조밀해지고, 더 복잡해지고 있음에 따라, 제작에서 사용되는 마스크들을 개발하기 위한 계산 리소그래피 솔루션들에 대한 요구들이 증가되고 있다. 마스크들 상의 피처들은 더 작아지고 덜 직선적이게 되고 있다. 예컨대, 고급 마스크 기입 툴들은 곡선 형상들을 생성할 수 있다. 이는 그들의 시뮬레이션을 더 어렵고 더 계산 집약적이게 만든다. 추가하여, 마스크 상의 피처의 수가 증가되고 있고, 그에 따라, 컴퓨팅 요건들을 더 증가시키고 있다. 리소그래피 프로세스 자체가 또한 더 복잡해지고 있다. 예컨대, 조명 소스들이 더 복잡화되고 있다. 이는 결국 더 정교한 분석을 요구한다. 따라서, 광학 근접 보정(OPC), 인버스 리소그래피 기술(ILT), 및 리소그래피 검증과 같은 마스크 관련 애플리케이션들에 의해 마스크 레이아웃을 프로세싱할 때, 프로세싱 요구들을 감소시키기 위한 단계들을 취하는 것이 바람직하다.As designs for integrated circuits become larger, denser, and more complex, the demands on computational lithography solutions for developing masks used in fabrication are increasing. Features on masks are becoming smaller and less linear. For example, advanced mask writing tools can create curved shapes. This makes their simulations more difficult and more computationally intensive. In addition, the number of features on the mask is increasing, thus further increasing computing requirements. The lithography process itself is also becoming more complex. For example, lighting sources are becoming more complex. This, in turn, requires more sophisticated analysis. Accordingly, it is desirable to take steps to reduce processing requirements when processing a mask layout by mask related applications such as optical proximity correction (OPC), inverse lithography technology (ILT), and lithography verification.

특정 실시예들에서, 방법은 다음의 단계들을 포함한다. 리소그래피 마스크 개발 프로세스에서 사용되는 레이아웃이 액세스된다. 예컨대, 레이아웃은 마스크 자체의 레이아웃일 수 있거나 또는 웨이퍼 상의 결과적인 인쇄된 패턴의 레이아웃일 수 있다. 레이아웃은 다수의 분리된 형상들을 포함한다. 레이아웃 내의 분리된 형상들 중 적어도 일부에 대한 골격 표현들이 결정된다. 개별 형상의 골격 표현은 에지들에 의해 연결된 2개 이상의 노드의 요소들을 갖는다. 이는 또한, 요소들 중 적어도 일부에 대한 크기 파라미터들을 포함한다. 형상들의 골격 표현들은 마스크 개발 프로세스에서 사용된다.In certain embodiments, the method includes the following steps. The layout used in the lithography mask development process is accessed. For example, the layout may be the layout of the mask itself or the layout of the resulting printed pattern on the wafer. The layout includes a number of discrete shapes. Skeletal representations for at least some of the discrete shapes in the layout are determined. A skeletal representation of an individual shape has elements of two or more nodes connected by edges. It also includes size parameters for at least some of the elements. Skeletal representations of shapes are used in the mask development process.

다른 양태들은 구성요소들, 디바이스들, 시스템들, 개선들, 방법들, 프로세스들, 애플리케이션들, 컴퓨터 판독가능 매체들, 및 상기된 것들 중 임의의 것과 관련된 다른 기술들을 포함한다.Other aspects include components, devices, systems, improvements, methods, processes, applications, computer-readable media, and other techniques related to any of the above.

본 개시내용은 아래에서 주어지는 상세한 설명 및 본 개시내용의 실시예들의 첨부 도면들로부터 더 완전히 이해될 것이다. 도면들은 본 개시내용의 실시예들의 지식 및 이해를 제공하기 위해 사용되고, 본 개시내용의 범위를 이러한 특정 실시예들로 제한하지 않는다. 게다가, 도면들은 반드시 실척대로 도시된 것은 아니다.
도 1은 본 개시내용의 일부 실시예들에 따른 마스크 개발 프로세스에 대한 흐름도를 도시한다.
도 2a 내지 도 2c는 레이아웃 내의 개별 형상들의 다각형 표현들 및 대응하는 골격 표현들의 예들을 도시한다.
도 3a 및 도 3b는 다각형 표현을 골격 표현으로 변환하는 것을 도시한다.
도 3c 및 도 3d는 골격 표현을 다각형 표현으로 변환하는 것을 도시한다.
도 4a는 형상의 팁의 교란(perturbation)을 도시한다.
도 4b는 형상의 교란의 다른 예를 도시한다.
도 5 및 도 6은 마스크 규칙 체킹(mask rule checking)을 위한 골격 표현들의 사용을 도시한다.
도 7은 본 개시내용의 일부 실시예들에 따른, 집적 회로의 설계 및 제조 동안 사용되는 다양한 프로세스들의 흐름도를 도시한다.
도 8은 본 개시내용의 실시예들이 동작할 수 있는 예시적인 컴퓨터 시스템의 추상도를 도시한다.
BRIEF DESCRIPTION OF THE DRAWINGS The present disclosure will be more fully understood from the detailed description given below and from the accompanying drawings of embodiments of the present disclosure. The drawings are used to provide knowledge and understanding of embodiments of the disclosure, and do not limit the scope of the disclosure to these specific embodiments. In addition, the drawings are not necessarily drawn to scale.
1 shows a flow diagram for a mask development process in accordance with some embodiments of the present disclosure.
2A-2C show examples of polygonal representations and corresponding skeletal representations of individual shapes in a layout;
3a and 3b show the conversion of a polygonal representation to a skeletal representation.
3c and 3d show the conversion of a skeleton representation to a polygonal representation.
Figure 4a shows the perturbation of the tip of the shape.
Figure 4b shows another example of a shape disturbance.
5 and 6 show the use of skeletal representations for mask rule checking.
7 shows a flow diagram of various processes used during design and manufacture of an integrated circuit, in accordance with some embodiments of the present disclosure.
8 depicts an abstract diagram of an exemplary computer system in which embodiments of the present disclosure may operate.

본 개시내용의 양태들은 리소그래피 마스크들의 개발을 위한 레이아웃들의 골격 표현들에 관한 것이다. 전통적으로, 마스크 레이아웃들은 다각형들, 더 구체적으로는, 직선 다각형들에 의해 표현된다. 그러나, 리소그래피가 더 복잡해지고 도전적이게 됨에 따라, 마스크 레이아웃들이 또한 더 복잡해지고 있다. 하위 해상도 보조 피처(sub-resolution assist feature)들 및 비직사각형 및 심지어 곡선 형상들의 사용은 직선 다각형들에 기초하는 전통적인 표현을 이상적이지 않게 만든다. 직선 다각형들에 의해 곡선 형상을 표현하는 것은 다수의 다각형들을 요구하고, 여전히, 계단 근사화에 의해 곡선 에지를 표현한다. 비직선 다각형들이 허용되는 경우에도, 곡선 에지는 곡선을 근사화하기 위해 다수의 변들을 갖는 다각형을 여전히 요구할 것이다.Aspects of the present disclosure relate to skeletal representations of layouts for development of lithographic masks. Traditionally, mask layouts are represented by polygons, more specifically, straight polygons. However, as lithography becomes more complex and challenging, mask layouts are also becoming more complex. The use of sub-resolution assist features and non-rectangular and even curved shapes makes the traditional representation based on straight polygons less than ideal. Representing a curved shape by straight polygons requires a large number of polygons, and still, expressing a curved edge by step approximation. Even if non-straight polygons were allowed, a curved edge would still require a polygon with multiple sides to approximate the curve.

광학 근접 보정(OPC), 인버스 리소그래피 기술(ILT), 및 리소그래피 검증과 같은 마스크들의 개발에서 사용되는 다수의 프로세스들은 이러한 표현들의 분석 또는 조작을 요구한다. 예컨대, 이러한 마스크 개발 프로세스들은 변경들이 유익할 수 있는지 여부를 결정하기 위해 레이아웃들에 약간의 변경들을 도입할 수 있다.Many processes used in the development of masks, such as optical proximity correction (OPC), inverse lithography technology (ILT), and lithographic verification, require the analysis or manipulation of these representations. For example, such mask development processes may introduce some changes to the layouts to determine whether the changes may be beneficial.

아래에서 설명되는 접근법에서, 레이아웃들은 다각형들이 아니라 골격 표현에 의해 표현된다. 레이아웃들은 마스크 자체의 레이아웃, 웨이퍼 상의 결과적인 인쇄된 패턴의 레이아웃, 마스크에 의해 생성되는 에어리얼 이미지의 2차원 표현, 또는 마스크 개발을 위해 사용되는 다른 타입들의 2차원 이미지들일 수 있다. 레이아웃은 다수의 형상들을 포함하고, 그들은 전통적으로 직선 다각형들에 의해 표현될 수 있다. 여기서, 형상들 중 적어도 일부는 다른 타입들의 표현들 대신에 또는 그들에 추가하여 골격 표현에 의해 표현된다. 개별 형상의 골격 표현은 형상의 축 또는 중심선에 대응하는 "골격"을 포함한다. 골격의 요소들은 에지들에 의해 연결된 2개 이상의 노드를 포함한다. 노드들은 골격의 "관절들"이고, 에지들은 골격의 "뼈들"이다. 골격 표현은 또한, 이러한 요소들 중 적어도 일부에 대한 크기 파라미터들을 포함한다. 이러한 크기 파라미터들은 골격을 따르는 상이한 위치들에서의 형상의 크기에 관한 정보를 제공한다. 예컨대, 골격 표현 내의 에지 요소들에 대한 크기 파라미터들은 이러한 에지들을 따르는 형상의 폭들에 기초할 수 있다. 골격 표현 내의 노드들에 대한 크기 파라미터들은 이러한 노드들에서의 형상의 국부적 반경들에 기초할 수 있다.In the approach described below, layouts are represented by skeletal representations rather than polygons. The layouts may be the layout of the mask itself, the layout of the resulting printed pattern on the wafer, a two-dimensional representation of the aerial image created by the mask, or other types of two-dimensional images used for mask development. A layout includes a number of shapes, which can be traditionally represented by straight polygons. Here, at least some of the shapes are represented by skeletal representations instead of or in addition to other types of representations. Skeletal representations of individual shapes include "skeletons" corresponding to the axes or centerlines of the shapes. Elements of the skeleton include two or more nodes connected by edges. The nodes are the "joints" of the skeleton, and the edges are the "bones" of the skeleton. The skeleton representation also includes size parameters for at least some of these elements. These size parameters provide information about the size of the shape at different locations along the skeleton. For example, size parameters for edge elements in a skeletal representation may be based on the widths of the shape along these edges. The size parameters for nodes in the skeleton representation may be based on local radii of shape at these nodes.

골격 표현은 특정 마스크 개발 프로세스들에 대한 레이아웃의 더 콤팩트하고 더 계산 효율적인 표현일 수 있다. 예컨대, 형상의 위치를 이동시키는 것 또는 형상의 두께를 변경하는 것이 요구되는 경우, 이는 대응하는 요소들(노드들 및 에지들)을 수정하는 것 및/또는 그러한 요소들에 대한 다양한 크기 파라미터들을 변경하는 것에 의해 간단히 달성될 수 있다. 결과로서, 계산 속도가 증가되고, 요구되는 계산 리소스들(메모리 및 프로세서 활용)이 감소된다.A skeleton representation may be a more compact and more computationally efficient representation of a layout for certain mask development processes. For example, if it is desired to move the position of the shape or to change the thickness of the shape, this may involve modifying the corresponding elements (nodes and edges) and/or changing the various size parameters for those elements. It can be achieved simply by As a result, the computational speed is increased, and the required computational resources (memory and processor utilization) are reduced.

도 1은 본 개시내용의 일부 실시예들에 따른 마스크 개발 프로세스에 대한 흐름도를 도시한다. 본 개시내용에서 설명되는 기법들은 다수의 타입들의 마스크 개발 프로세스들(120)에 적용될 수 있다. 이는 마스크 합성 프로세스들(예컨대, 원하는 결과를 달성하도록 마스크를 설계함)과 마스크 검증 프로세스들(예컨대, 마스크 설계가 원하는 결과를 생성하는지 여부를 확인함) 둘 모두를 포함한다. 이는 또한, 순방향 전파 프로세스들(예컨대, 마스크에 의해 생성되는 에어리얼 이미지를 예측함)과 역방향 전파(예컨대, 원하는 에어리얼 이미지로부터 그 에어리얼 이미지를 생성할 마스크를 결정하기 위해 역방향으로 전파됨) 둘 모두를 포함한다. 마스크 개발 프로세스들(120)의 예들은 광학 근접 보정(OPC), 인버스 리소그래피 기술(ILT), 및 리소그래피 검증(마스크 설계 규칙 체크들을 포함함)을 포함한다.1 shows a flow diagram for a mask development process in accordance with some embodiments of the present disclosure. The techniques described in this disclosure may be applied to multiple types of mask development processes 120 . This includes both mask synthesis processes (eg, designing a mask to achieve a desired result) and mask verification processes (eg, verifying whether the mask design produces a desired result). It also includes both forward propagation processes (e.g., predicting an aerial image generated by a mask) and backward propagation (e.g. propagating backward from a desired aerial image to determine which mask to generate that aerial image). do. Examples of mask development processes 120 include optical proximity correction (OPC), inverse lithography technique (ILT), and lithography verification (including mask design rule checks).

마스크 개발 프로세스(120)에 대한 입력은 다양한 기하학적 형상들의 레이아웃(110)이다. 마스크 개발 프로세스(120)에 대해, 레이아웃(110)은 집적 회로를 제작하는 데 사용되는 마스크의 레이아웃일 수 있지만, 골격 표현은 이러한 예로 제한되지 않는다. 다수의 경우들에서, 레이아웃 내의 형상들은 도 1의 다각형 표현(115)에 도시된 바와 같이 다각형들로서 표현된다.The input to the mask development process 120 is a layout 110 of various geometries. For mask development process 120 , layout 110 may be a layout of a mask used to fabricate an integrated circuit, although the skeleton representation is not limited to this example. In many cases, shapes in the layout are represented as polygons, as shown in polygonal representation 115 of FIG. 1 .

마스크 개발 프로세스(120)의 결과는 일반적으로 "솔루션"(190)으로 지칭될 것이다. 솔루션은 마스크 개발 프로세스(120)에 따라 결정될 것이다. 아래의 표 1은 일부 예시적인 애플리케이션들을 열거한다. "레이아웃" 열은 마스크 개발 프로세스에 대한 입력이고, "솔루션" 열은 출력이다. 열 "골격 표현"은 어떤 양들이 골격 표현들에 의해 표현될 수 있는지를 표시한다.The result of the mask development process 120 will generally be referred to as a “solution” 190 . The solution will be determined according to the mask development process 120 . Table 1 below lists some example applications. The "Layout" column is the input to the mask development process, and the "Solution" column is the output. The column "skeletal representations" indicates which quantities can be represented by skeletal representations.

[표 1] 일부 예시적인 마스크 개발 프로세스들Table 1 Some Exemplary Mask Development Processes

Figure pct00001
Figure pct00001

하나의 접근법에서, 마스크 개발 프로세스(120)는 도 1의 우측에 도시된 바와 같이 형상들 중 적어도 일부에 대해 골격 표현(125)을 사용함으로써 레이아웃 내의 형상들에 적용된다. 레이아웃(110)은 다수의 분리된 형상들을 포함한다. 형상들 중 적어도 일부에 대해 골격 표현이 결정된다(122). 개별 형상의 골격 표현은 에지들에 의해 연결된 2개 이상의 노드의 요소들을 포함한다. 골격 표현은 또한, 요소들 중 적어도 일부에 대한 크기 파라미터들을 포함한다. 이어서, 마스크 개발 프로세스는 형상들의 골격 표현을 사용하여 적용된다(124).In one approach, the mask development process 120 is applied to shapes in a layout by using a skeletal representation 125 for at least some of the shapes as shown on the right side of FIG. 1 . Layout 110 includes a number of discrete shapes. A skeletal representation is determined 122 for at least some of the shapes. A skeletal representation of an individual shape includes elements of two or more nodes connected by edges. The skeleton representation also includes size parameters for at least some of the elements. A mask development process is then applied (124) using the skeletal representation of the shapes.

도 2a 내지 도 2c는 레이아웃 내의 개별 형상들의 다각형 표현들 및 대응하는 골격 표현들의 예들을 도시한다. 각각의 도면에서, 좌측은 파선들로 중첩된 골격만을 갖는 다각형 표현을 도시하고, 우측은 크기 파라미터들에 의해 정의된 에지들과 골격 둘 모두를 갖는 골격 표현을 도시한다. 다각형 표현(210)은 형상의 경계의 조각별 선형 근사화이다. 이러한 예들에서, 다각형 표현(210)은 45도 각도들의 경계 세그먼트들에 기초한다. 골격 표현(250)은 노드들 및 에지들의 조각별 연결된 골격(252)을 포함한다. 도면들에서, 노드들은 원들이고, 에지들은 원들을 연결하는 더 두꺼운 라인들이다. 골격(252)은 2차원 마스크 다각형(210)의 표현이지만 "더 낮은" 차원에 있다. 이는 형상(210)의 형태학적 침식(morphological erosion)에 기초할 수 있다.2A-2C show examples of polygonal representations and corresponding skeletal representations of individual shapes in a layout; In each figure, the left side shows a polygonal representation with only the skeleton superimposed with dashed lines, and the right shows the skeleton representation with both the bones and edges defined by the size parameters. Polygonal representation 210 is a piecewise linear approximation of the boundary of a shape. In these examples, the polygonal representation 210 is based on boundary segments of 45 degree angles. The skeleton representation 250 includes a piecewise connected skeleton 252 of nodes and edges. In the figures, the nodes are circles, and the edges are thicker lines connecting the circles. Skeleton 252 is a representation of the two-dimensional mask polygon 210 but in a “lower” dimension. This may be based on morphological erosion of the shape 210 .

골격 표현(250)은 추가적인 속성들을 가질 수 있다. 도 2a에서, 노드들 및 에지들은 크기 파라미터들과 연관된다. 노드들(N)은 국부적 반경(R)에 의해 특성화되고, 에지들(E)은 폭(W)에 의해 특성화된다. 이러한 크기 파라미터들은 노드에 의해 정의되는 곡선의 국부적 반경(R) 및 에지에 의해 정의되는 형상의 폭(W)을 표현한다. 노드(N1)는 말단 노드이고(즉, 하나의 다른 노드에만 연결됨), 그에 따라, 형상은 반경(R = R0)을 갖는 팁을 갖는다. 에지들(E1, E2, E3) 모두는 폭(W = W0 = R0)을 갖는다. 노드(N4)는 또한 반경(R = R0)을 갖는 말단 노드이다. 노드들(N2 및 N3)은 내부 노드들이다(2개 이상의 다른 노드에 연결됨). 그들의 반경들(R = R0)은 그 노드들을 중심으로 하는 국부적 곡선 형상의 형상을 정의한다. 이러한 속성들은 팽창(dilation) 또는 사이징 절차를 통해 베이스 골격(252)으로부터 원래의 형상(210)을 재구성하는 데 사용될 수 있다. 사이징 절차는 노드들/에지들에서 정의되는 크기 파라미터들을 사용하여, 베이스 형상(210)의 대응하는 세그먼트를 적절하게 사이징한다. 마스크 표현을 더 낮은 차원으로 감소시키는 것은 더 간단한 알고리즘들이 다양한 기하형상 조작들을 위해 구현되는 것을 허용하고, 도 2a에 도시된 바와 같은 비분지 골격에 의해 잘 표현되고 높은 종횡비들을 갖는 보조 피처들과 같은 마스크 상의 다수의 피처들이 있다.The skeletal representation 250 may have additional properties. In FIG. 2A , nodes and edges are associated with size parameters. Nodes N are characterized by a local radius R, and edges E are characterized by a width W. These size parameters express the local radius (R) of the curve defined by the node and the width (W) of the shape defined by the edge. Node N1 is a terminal node (ie connected to only one other node), and thus the shape has a tip with a radius (R = R0). Edges E1, E2, E3 all have a width (W = W0 = R0). Node N4 is also an end node with radius R = R0. Nodes N2 and N3 are internal nodes (connected to two or more other nodes). Their radii (R = R0) define the shape of the local curvilinear shape centered at the nodes. These properties can be used to reconstruct the original shape 210 from the base skeleton 252 via a dilation or sizing procedure. The sizing procedure properly sizes the corresponding segment of the base shape 210 using the size parameters defined at the nodes/edges. Reducing the mask representation to a lower dimension allows simpler algorithms to be implemented for various geometry manipulations, such as auxiliary features with high aspect ratios and well represented by an unbranched skeleton as shown in Figure 2a. There are multiple features on the mask.

골격 표현은 분지 골격들을 갖는 것들을 포함하는 더 복잡한 형상들을 표현하기 위해 추가적인 속성들을 포함할 수 있다. 도 2b에서, 형상의 축은 "H" 형상으로 다수의 분지들을 갖고, 그에 따라, 골격(252)은 분지형이다. 이는 노드들(N1 내지 N6) 및 에지들(E1 내지 E5)을 포함한다. 추가하여, 형상의 팁들은 원호들이 아니라 둥근 코너들이다. 이를 캡처하기 위해, 말단 노드(N1)는 2개의 크기 파라미터: R 및 r에 의해 특성화된다. R은 말단 형상의 폭을 정의하고, r은 코너들의 국부적 반경을 정의한다. 따라서, r = 0은 네모진 팁을 지정하고, r = R은 도 2a에 도시된 바와 같은 원형 팁을 지정한다. 도 2b에서, 0 < r < R이고, 팁은 둥근 코너들을 갖는다. 추가하여, 노드들(N2 및 N5)은 "H"의 크로스바를 따르는 내부 코너들의 형상을 지정하기 위해 r의 음의 값들을 가질 수 있다. 다른 파라미터들이 더 많은 자유도들을 제공하기 위해 또한 사용될 수 있다. 예컨대, 노드들에 대응하는 팁들 및 다른 곡선들은 타원형, 다각형, 또는 다른 형상들일 수 있다. 에지들에 대응하는 분지들은 폭이 변화될 수 있는데: 선형적으로 증가 또는 감소되거나, 주기적으로 변화되거나, 또는 다른 방식으로 변화될 수 있다. 이들 및 다른 변동들을 캡처하기 위해 상이한 파라미터들이 사용될 수 있다.The skeleton representation may include additional properties to represent more complex shapes, including those with branching skeletons. In FIG. 2B , the axis of the shape has a number of branches in an “H” shape, so the skeleton 252 is branched. It includes nodes N1 to N6 and edges E1 to E5. In addition, the tips of the shape are rounded corners, not arcs. To capture this, the terminal node N1 is characterized by two size parameters: R and r. R defines the width of the end shape and r defines the local radius of the corners. Thus, r = 0 designates a square tip, and r = R designates a circular tip as shown in Figure 2a. In Figure 2b, 0 < r < R, the tip has rounded corners. In addition, nodes N2 and N5 may have negative values of r to specify the shape of the inner corners along the crossbar of "H". Other parameters may also be used to provide more degrees of freedom. For example, tips and other curves corresponding to nodes may be oval, polygonal, or other shapes. The branches corresponding to the edges may vary in width: increase or decrease linearly, change periodically, or change in some other way. Different parameters may be used to capture these and other variations.

도 2c는 다른 예를 도시하고, 여기서, 골격(252)은 6개의 노드(N1 내지 N6)를 갖지만, 노드들(N1 내지 N3)이 다각형으로서 연결되고, 노드들(N4 내지 N6)도 마찬가지이다. 일부 경우들에서, 형상들은 내부 홀들을 가질 수 있다.Figure 2c shows another example, where skeleton 252 has six nodes N1 to N6, but nodes N1 to N3 are connected as polygons, and so are nodes N4 to N6. . In some cases, the shapes may have internal holes.

노드들 및 에지들은 또한, 원래의 형상 이외의 정보를 캡처하는 속성들을 가질 수 있다. 일 예는 노드 또는 에지로부터 특정 다각형 피처로의 연관이다. 예컨대, 특정 골격 노드(N) 또는 에지(E)는 특정 다각형 세그먼트(들)와 연관될 수 있다. 이는 OPC 솔버들에서 사용될 수 있고, 여기서, 노드(N) 및 반경과 같은 그의 파라미터들은 시뮬레이트되는 마스크(이는 N 및 다른 골격 노드들에 의해 정의됨)가 다각형 세그먼트 또는 세그먼트 상의 포인트에서의 타깃 상에 있는 이미지를 인쇄할 때까지 조정된다. 다른 예들은 노드/에지의 변위에 대한 제약들, 노드/에지의 크기에 대한 제약들, 및 노드/에지와 연관된 세그먼트 또는 형상에 대한 다른 제약들을 포함한다.Nodes and edges may also have properties that capture information other than the original shape. One example is the association from a node or edge to a specific polygonal feature. For example, a particular skeletal node (N) or edge (E) may be associated with a particular polygon segment(s). This can be used in OPC solvers, where a node (N) and its parameters such as radius are simulated mask (which is defined by N and other skeletal nodes) on a polygon segment or target at a point on the segment. The image is adjusted until it prints. Other examples include constraints on the displacement of the node/edge, constraints on the size of the node/edge, and other constraints on the segment or shape associated with the node/edge.

다각형 또는 다른 표현으로부터 골격 표현을 생성하기 위해 상이한 기법들이 사용될 수 있다. 일 예가 도 3a 및 도 3b에 도시된다. 이 예에서, 도 3a에 도시된 바와 같이, 형상의 다각형 표현(310)이 먼저 보로노이 다이어그램(Voronoi diagram)(320)으로 변환된다. 보로노이 다이어그램은 다각형의 중간 축이다. 도 3b에 도시된 바와 같이, 보로노이 다이어그램은 노드들 및 에지들의 골격(330)을 생성하기 위해 트리밍된다. 트리밍은 보로노이 다이어그램 상의 특정 포인트를 정의하는 다각형 경계 상의 포인트들 사이의 거리의 함수들에 기초할 수 있다. 대안적으로, 트리밍은 경계에 대한 중간 축의 근접성에 기초할 수 있다. 이어서, 폭들 및 반경들과 같은 추가적인 속성들 및 어떤 다각형 세그먼트들이 어떤 골격 요소들에 대응하는지가 골격에 부착될 수 있다.Different techniques may be used to create a skeletal representation from a polygon or other representation. An example is shown in FIGS. 3A and 3B . In this example, as shown in FIG. 3A , a polygonal representation 310 of a shape is first transformed into a Voronoi diagram 320 . A Voronoi diagram is the mid-axis of a polygon. 3B , the Voronoi diagram is trimmed to create a skeleton 330 of nodes and edges. Trimming may be based on functions of the distance between points on a polygon boundary defining a particular point on the Voronoi diagram. Alternatively, the trimming may be based on the proximity of the intermediate axis to the boundary. Additional attributes such as widths and radii and which polygon segments correspond to which skeleton elements can then be attached to the skeleton.

반대 방향으로, 상이한 기법들을 사용하여, 골격 표현이 다각형 표현과 같은 전체 형상으로 변환될 수 있다. 하나의 접근법이 도 3c 및 도 3d에 도시된다. 도 3c는 골격(340)을 도시한다. 골격의 노드들 및 에지들은, 가는 화살표들에 의해 표시된 바와 같이, 그들의 반경들 및 폭들에 따라 확장된다. 대안적으로, 노드들 및 에지들에 대해 다각형들이 생성될 수 있고, 그 후, 도 3d에 도시된 결과적인 다각형(350)으로 다각형들을 병합할 수 있다. 일부 경우들에서, 골격은 다각형들을 생성하기 전에 단순화될 수 있다.Conversely, using different techniques, the skeleton representation can be transformed into an overall shape, such as a polygonal representation. One approach is shown in FIGS. 3C and 3D . 3C shows the skeleton 340 . The nodes and edges of the skeleton extend according to their radii and widths, as indicated by the thin arrows. Alternatively, polygons may be created for nodes and edges, and then merged into the resulting polygon 350 shown in FIG. 3D . In some cases, the skeleton may be simplified prior to creating the polygons.

골격 표현이 다른 표현들보다 더 효율적인 다수의 사용 사례들이 있다. 하나의 부류의 사용 사례들에서, 형상 또는 형상의 일부를 형상의 축에 수직인 방향으로 시프트하는 것이 바람직하다. 골격 표현은 자연스럽게 이를 허용한다. 이 사용 사례의 예는 OPC에 대한 교란 테이블들의 사용이다. 교란 테이블들은 마스크(M)의 경계에 대한 교란들이 적용될 때(즉, 형상들의 경계들이 이동될 때), 툴이 마스크(M)로부터 리소그래피 시뮬레이션에 의해 생성되는 솔루션의 변화들을 신속하게 컴퓨팅하는 것을 허용한다. 예컨대, 교란 테이블은 주어진 마스크 교란에 대한 웨이퍼 강도의 변화를 표로 만들 수 있다. 골격들에 대한 교란 테이블들의 사용은 아래에서 설명된다.There are a number of use cases where skeletal representations are more efficient than others. In one class of use cases, it is desirable to shift a shape or part of a shape in a direction perpendicular to the axis of the shape. Skeletal representation naturally allows for this. An example of this use case is the use of perturbation tables for OPC. The perturbation tables allow the tool to quickly compute changes in the solution generated by the lithographic simulation from the mask M when perturbations to the boundary of the mask M are applied (ie when the boundaries of the shapes are moved). do. For example, a perturbation table may tabulate the change in wafer intensity for a given mask perturbation. The use of perturbation tables for skeletons is described below.

일반적인 마스크 합성 문제는 리소그래피 신호(L)(예컨대, 마스크 레이아웃)를 입력으로서 취하고 비용 값(C)을 리턴하는 비용 함수(C(L))의 최적화로서 프레이밍될 수 있다. 상이한 교란들(P)에 대한 C의 기울기가 컴퓨팅될 수 있다. 이러한 기울기들(dC/dP)은 기울기 기반 최적화 방식을 통해 레이아웃을 최적화하는 데 사용될 수 있다.A general mask synthesizing problem can be framed as an optimization of a cost function C(L) that takes a lithography signal L (eg, mask layout) as input and returns a cost value C. The slope of C for different perturbations P can be computed. These gradients (dC/dP) may be used to optimize a layout through a gradient-based optimization method.

도 4a는 형상의 단부(490)의 교란을 도시한다. 골격 표현(450)에서, 단부는 노드들(N1, N2) 및 에지(E1)에 의해 표현된다. 노드들(N1, N2)은 반경(R = R0)을 갖고, 에지(E1)는 폭(W = W0 = R0)을 갖는다. 다각형 표현(410)이 사용되는 경우, 팁은 둥근 팁을 근사화하는 7개의 경계 세그먼트(421 내지 427)에 의해 표현된다. 이는 그다지 양호한 근사화가 아니다. 더 정확한 근사화들은 한층 더 많은 경계 세그먼트들을 사용할 것이다.4A shows the disturbance of the end 490 of the shape. In the skeleton representation 450 , an end is represented by nodes N1 , N2 and an edge E1 . Nodes N1 and N2 have a radius (R = R0) and an edge E1 has a width (W = W0 = R0). When a polygonal representation 410 is used, the tip is represented by seven boundary segments 421 - 427 approximating a rounded tip. This is not a very good approximation. More accurate approximations will use more boundary segments.

팁을 교란하는 것은 영향을 받는 경계 세그먼트들 모두를 함께 이동시키는 것을 요구할 것이다. 각각의 개별 경계 세그먼트가 교란됨에 따라, 비용 함수의 결과적인 변화가 측정되고, 주어진 교란(P)에 대해 리소그래피 비용 기울기(dC/dP)가 컴퓨팅될 수 있다. 그러나, 형상에 대한 골격 표현이 사용되는 경우, 기울기(dC/dP)는 골격에 대한 기하학적 파라미터들에 대해 컴퓨팅될 수 있고, 이는 더 간단하고 더 계산 효율적일 수 있다.Disturbing the tip will require moving all of the affected boundary segments together. As each individual boundary segment is perturbed, the resulting change in the cost function is measured, and the lithography cost slope (dC/dP) can be computed for a given perturbation (P). However, if a skeleton representation for a shape is used, the slope (dC/dP) can be computed for the geometric parameters for the skeleton, which can be simpler and more computationally efficient.

예컨대, 관심 교란이 단부(490)의 크기를 증가시키고 있는 것으로 가정한다. 골격 표현의 경우, 이는 노드(N2)의 위치의 약간의 대응하는 이동과 함께 크기 파라미터(W = R)를 증가시키는 것과 동등하다. 교란의 영향은 기울기(dC/dW)에 의해 주어진다. 다각형 표현에서, 7개의 경계 세그먼트(421 내지 428)는 함께 이동되고, 총 기울기는 각각의 경계 세그먼트에 대한 개별 기울기들의 합이다.For example, assume that the disturbance of interest is increasing the size of the end 490 . For the skeleton representation, this is equivalent to increasing the size parameter (W = R) with a slight corresponding movement of the position of node N2. The effect of the disturbance is given by the slope (dC/dW). In the polygonal representation, the seven boundary segments 421 - 428 are moved together, and the total slope is the sum of the individual slopes for each boundary segment.

이제, 도 4b에 도시된 바와 같은 다른 예를 고려한다. 이 예에서, 노드(N1)는 최적화될 골격 요소이다. 특히, 특정 방향(v)을 따르는 노드(N1)의 위치의 최적화를 고려한다. 먼저, 노드(N1)에 연결된 골격 에지(E1)에 대한 접선인 v = t(N1)을 가정한다. 이는 형상의 축을 따라 그 형상을 신장 및 수축시키는 것을 고려한다. 공식이 이용가능한 경우, 기울기(dC/dNT)가 계산되고 최적화를 위해 사용될 수 있다.Consider now another example as shown in FIG. 4B . In this example, node N1 is a skeletal element to be optimized. In particular, we consider the optimization of the position of the node N1 along a specific direction v. First, assume v = t(N1), which is a tangent to the skeleton edge E1 connected to node N1. This allows for stretching and contracting the shape along the shape's axis. If a formula is available, the slope (dC/dN T ) can be calculated and used for optimization.

대안적으로, 기울기는 노드(N)와 연관된 다각형 경계 세그먼트들의 집합적 도함수로부터 구성될 수 있다. 이 세트를 D = {Di}로 지칭한다. 골격으로부터의 다각형의 구성으로부터, 세트(D)는 경계 세그먼트들(423 내지 425)을 포함한다. 그러한 세그먼트들(Di) 각각은 비용 변화(dCi)의 자신 고유의 크기를 가질 것이고, 그러한 세그먼트들의 법선들({ni}) 및 길이들({Li})은 방정식 (1)에 따라 비용 변화를 t(N) 상으로 투영하는 데 사용될 수 있다.Alternatively, the slope may be constructed from the collective derivative of the polygonal boundary segments associated with node N. This set is referred to as D = {D i }. From the construction of the polygons from the skeleton, set D comprises boundary segments 423 - 425 . Each of those segments D i will have its own magnitude of cost change dC i , and the normals {n i }) and lengths ({L i }) of those segments are given in equation (1) can be used to project the cost change onto t(N).

Figure pct00002
Figure pct00002

여기서, 합산은 다각형 세그먼트들(i)(세그먼트들(423 내지 425))에 대한 것이고, ·는 내적이다.Here, the summation is for polygonal segments i (segments 423 to 425), and ? is the dot product.

이제, 노드(N1)의 반경(R)의 변화를 고려한다. 노드(N1)에서의 반경의 변화에 대한 도함수(dC/dR)를 컴퓨팅하기 위해, 시스템은 대응하는 다각형 에지들(423 내지 425)의 외향 법선 상으로 투영되는 dCi의 합을 사용할 수 있다.Now consider the change in radius R of node N1. To compute the derivative dC/dR for the change in radius at node N1 , the system may use the sum of dC i projected onto the outward normal of the corresponding polygon edges 423 - 425 .

이제, 에지(E1)의 방향에 수직인 방향으로의 에지(E1)의 이동인 형상의 측방향 시프트를 고려한다. 형상의 측방향 시프트에 대한 도함수를 컴퓨팅하기 위해, 시스템은 에지에 직교하는 방향으로 에지(E1)를 이동시키는 것에 대한 도함수(dC/dE)를 찾을 수 있다.Consider now a lateral shift of the shape, which is a movement of the edge E1 in a direction perpendicular to the direction of the edge E1 . To compute the derivative for the lateral shift of shape, the system can find the derivative dC/dE for moving the edge E1 in a direction orthogonal to the edge.

이를 컴퓨팅하기 위해 다각형 표현이 사용되는 경우, 세그먼트들(D)은 에지(E1)의 법선 벡터(n(E1)) 상으로 투영된다. 이는 방정식 (2)에 의해 주어진다.If a polygonal representation is used to compute this, the segments D are projected onto the normal vector n(E1) of the edge E1. This is given by equation (2).

Figure pct00003
Figure pct00003

여기서, 합산은 영향을 받는 다각형 세그먼트들(i)에 대한 것이다. 방정식 (2)의 E1과 연관된 경계 세그먼트들(D)은 방정식 (1)의 노드(N1)와 연관된 것들과 상이한 세트라는 점에 유의한다. 애플리케이션 요구들에 따라 유용할 수 있는 다른 골격 수정들을 허용하기 위해, 이러한 도함수들의 조합들의 다른 변형들이 컴퓨팅될 수 있다.Here, the summation is for the affected polygonal segments i. Note that the boundary segments D associated with E1 in equation (2) are a different set than those associated with node N1 in equation (1). Other variations of combinations of these derivatives may be computed to allow for other skeletal modifications that may be useful depending on application requirements.

이러한 기울기들이 컴퓨팅되면, 골격 요소들을 이동시키거나 또는 그들의 파라미터들을 수정함으로써 마스크를 최적화하여 개선된 비용 함수(C)를 달성하기 위해, 기울기 기반 최적화 방식이 사용될 수 있다.Once these gradients have been computed, a gradient-based optimization approach can be used to optimize the mask by moving the skeletal elements or modifying their parameters to achieve an improved cost function (C).

OPC에 대해 위에서 설명된 접근법은 또한, ILT 및 다른 마스크 개발 프로세스들에 대해 사용될 수 있다. ILT에서, 골격 요소들의 최적화는 ILT 비용 함수 및 대응하는 기울기 필드를 사용하고, 이는 도함수 값들(dCi)이 다각형 에지들에서 샘플링될 수 있는 ILT 비용 함수 기울기 필드로부터 컴퓨팅되는 것을 제외하면 위에서 설명된 바와 같이 컴퓨팅될 수 있다. 접선 방향 노드 시프팅, 반경의 수정, 또는 에지 시프팅에 의한 후속 이동은 위에서 설명된 것과 유사할 것이다. 이는 외향 법선이 다각형 에지들에서 크기 = 1을 갖는 레벨 세트 함수에 대해 ILT 기울기가 컴퓨팅되기 때문이다.The approach described above for OPC can also be used for ILT and other mask development processes. In ILT, the optimization of skeletal elements uses the ILT cost function and the corresponding gradient field, which is described above except that the derivative values (dC i ) are computed from the ILT cost function gradient field, which can be sampled at polygon edges. It can be computed as Subsequent movement by tangential node shifting, radius modification, or edge shifting would be similar to that described above. This is because the ILT gradient is computed for a level set function whose outgoing normal has magnitude = 1 at polygon edges.

리소그래피 비용 기반 최적화 단계들과 유사하게, MRC(마스크 규칙 체킹) 시행이 또한, 마스크 다각형 에지들에 대한 적절한 보정들을 컴퓨팅한 후에, 그들을 위에서 설명된 바와 같은 방식으로 적용하여 골격 요소 위치들 및/또는 파라미터들을 수정함으로써, 이루어질 수 있다. 따라서, 다각형들에 대해 사용될 표준 MRC 체크들이 적용될 수 있고, 그 후, 위반 정보는 MRC 위반들을 해결하기 위해 골격 기하학적 연산들을 안내하는 데 사용될 수 있다. 도 5에서, 다각형 표현(510)의 경계 세그먼트들(512 및 514)은 서로 가장 근접한 2개의 세그먼트이다. 그들은 너무 근접해 있고, 마스크 규칙 위반을 생성한다. 다각형 기반 MRC 체크는 이러한 2개의 경계 세그먼트 및 규칙 위반을 식별한다. 세그먼트(512)는 상단 골격의 노드(N1)와 연관되고, 세그먼트(514)는 하단 골격의 에지(E1)와 연관된다. 이어서, 이러한 골격 요소들(550)은 MRC 위반을 감소 또는 제거하는 방식으로 수정될 수 있다.Similar to the lithography cost based optimization steps, the MRC (Mask Rule Checking) enforcement also computes the appropriate corrections for the mask polygon edges, then applies them in the manner as described above to determine the skeletal element positions and/or By modifying the parameters, this can be done. Thus, standard MRC checks to be used for polygons can be applied, and then the violation information can be used to guide skeletal geometry operations to resolve MRC violations. 5 , boundary segments 512 and 514 of polygonal representation 510 are the two segments closest to each other. They are too close, creating a mask rule violation. A polygon-based MRC check identifies these two boundary segments and rule violations. Segment 512 is associated with node N1 of the upper skeleton, and segment 514 is associated with edge E1 of the lower skeleton. These framework elements 550 can then be modified in a manner that reduces or eliminates MRC violations.

추정된 MRC 결과를 컴퓨팅하는 다른 방법은 인접한 골격들 및 골격 요소들 사이의 거리들을 컴퓨팅하는 것이다. 도 6은 2개의 별개의 골격(650 및 655)을 도시한다. 골격(655)은, 예컨대, U자 형상과 같이 맞접힌 형상에 대한 것이다. 그들은 골격들 자체이고 형상들이 아니라는 점에 유의한다. 형상들의 경계는 명확성을 위해 생략된다. 양방향 화살표들은 가능한 MRC 위반들의 위치들을 도시한다. 이러한 위치들에서의 2개의 골격 사이의 거리 및 그들의 대응하는 크기 파라미터들이 주어지면, MRC 간격 위반들이 평가될 수 있다.Another way to compute the estimated MRC result is to compute the distances between adjacent skeletons and skeleton elements. 6 shows two separate skeletons 650 and 655 . The skeleton 655 is for a folded shape, such as a U-shape, for example. Note that they are skeletons themselves, not shapes. The boundaries of the shapes are omitted for clarity. Double arrows show the locations of possible MRC violations. Given the distance between two skeletons at these locations and their corresponding magnitude parameters, MRC spacing violations can be evaluated.

이러한 검출은 에지 대 에지 탐색 알고리즘들을 사용함으로써 이루어질 수 있다. 대안적으로, 이는 마스크 골격들(650, 655)의 추가적인 "MRC" 골격들(670, 675)을 생성함으로써 이루어질 수 있다. 이 도면에서, MRC 골격들은 파선들로 도시되고, 이러한 골격들은 어떤 마스크 골격 에지들이 그들에 가장 근접해 있고 그들이 얼마나 멀리 떨어져 있는지에 관한 정보를 포함한다. 이 정보는 MRC 위반 위치들을 컴퓨팅하기 위해 사용될 수 있다. 이는 유용한 기법인데, 그 이유는 골격 생성이 MRC 간격 위반들을 결정하기 위해 골격(655)의 어떤 에지들이 서로 비교될 수 있는지를 자연스럽게 결정하기 때문이다.Such detection may be accomplished by using edge-to-edge search algorithms. Alternatively, this may be done by creating additional “MRC” skeletons 670 , 675 of the mask skeletons 650 , 655 . In this figure, the MRC skeletons are shown with dashed lines, and these skeletons contain information about which mask skeleton edges are closest to them and how far away they are. This information can be used to compute MRC violation locations. This is a useful technique, since bone generation naturally determines which edges of the skeleton 655 can be compared to each other to determine MRC spacing violations.

도 7은 집적 회로를 표현하는 설계 데이터 및 명령어들을 변환 및 검증하기 위해 집적 회로와 같은 제조 물품의 설계, 검증, 및 제작 동안 사용되는 프로세스들의 예시적인 세트(700)를 예시한다. 이러한 프로세스들 각각은 다수의 모듈들 또는 동작들로서 구조화 및 인에이블될 수 있다. 'EDA'라는 용어는 '전자 설계 자동화'라는 용어를 의미한다. 이러한 프로세스들은 설계자에 의해 공급되는 정보를 갖는 제품 아이디어(710)의 생성으로 시작되고, 정보는 EDA 프로세스들(712)의 세트를 사용하는 제조 물품의 생성을 위해 변환된다. 설계가 완성될 때, 설계는 테이프 아웃되고(734), 이는, 마스크 세트를 제조하기 위해 제작 설비로 집적 회로에 대한 아트워크(artwork)(예컨대, 기하학적 패턴들)가 전송되는 시점이고, 그 마스크 세트는 집적 회로를 제조하기 위해 추후에 사용된다. 테이프 아웃 후에, 반도체 다이가 제작되고(736), 완성된 집적 회로(740)를 생성하기 위해 패키징 및 조립 프로세스들(738)이 수행된다.7 illustrates an example set 700 of processes used during design, verification, and fabrication of an article of manufacture, such as an integrated circuit, to transform and verify design data and instructions representing the integrated circuit. Each of these processes may be structured and enabled as multiple modules or operations. The term 'EDA' refers to the term 'electronic design automation'. These processes begin with the creation of a product idea 710 with information supplied by a designer, and the information is transformed for the creation of an article of manufacture using a set of EDA processes 712 . When the design is complete, the design is taped out 734 , which is the point at which artwork (eg, geometric patterns) for the integrated circuit is sent to a fabrication facility to manufacture a set of masks and the mask. The set is later used to fabricate integrated circuits. After tape out, the semiconductor die is fabricated 736 , and packaging and assembly processes 738 are performed to create the finished integrated circuit 740 .

회로 또는 전자 구조에 대한 사양들은 낮은 레벨 트랜지스터 재료 레이아웃들로부터 높은 레벨 설명 언어들에 이르는 범위에 있을 수 있다. VHDL, Verilog, SystemVerilog, SystemC, MyHDL, 또는 OpenVera와 같은 하드웨어 설명 언어(‘HDL’)를 사용하여 회로들 및 시스템들을 설계하기 위해 높은 추상화 레벨이 사용될 수 있다. HDL 설명은 논리 레벨 레지스터 전송 레벨('RTL') 설명, 게이트 레벨 설명, 레이아웃 레벨 설명, 또는 마스크 레벨 설명으로 변환될 수 있다. 덜 추상적인 설명인 각각의 더 낮은 추상화 레벨은 설계 설명에 더 유용한 세부사항, 예컨대, 설명을 포함하는 모듈들에 대한 더 많은 세부사항들을 추가한다. 덜 추상적인 설명들인 더 낮은 추상화 레벨들은 컴퓨터에 의해 생성될 수 있거나, 설계 라이브러리로부터 도출될 수 있거나, 또는 다른 설계 자동화 프로세스에 의해 생성될 수 있다. 더 상세한 설명들을 지정하기 위한 더 낮은 추상화 레벨 언어에서의 명세 언어의 예는 SPICE이고, 이는 다수의 아날로그 구성요소들을 갖는 회로들의 상세한 설명들을 위해 사용된다. 각각의 추상화 레벨에서의 설명들은 그 계층의 대응하는 툴들(예컨대, 형식 검증 툴)에 의해 사용하기 위해 인에이블된다. 설계 프로세스는 도 7에 도시된 시퀀스를 사용할 수 있다. 설명되는 프로세스들은 EDA 제품들(또는 툴들)에 의해 가능하게 될 수 있다.Specifications for a circuit or electronic structure can range from low level transistor material layouts to high level description languages. A high level of abstraction may be used to design circuits and systems using a hardware description language ('HDL') such as VHDL, Verilog, SystemVerilog, SystemC, MyHDL, or OpenVera. HDL descriptions can be translated into logic level register transfer level ('RTL') descriptions, gate level descriptions, layout level descriptions, or mask level descriptions. Each lower abstraction level, which is a less abstract description, adds more useful detail to the design description, eg, more details about the modules that contain the description. Lower abstraction levels, less abstract descriptions, may be generated by a computer, derived from a design library, or generated by another design automation process. An example of a specification language in a lower abstraction level language for specifying more detailed descriptions is SPICE, which is used for detailed descriptions of circuits having multiple analog components. Descriptions at each level of abstraction are enabled for use by corresponding tools in that layer (eg, a formal verification tool). The design process may use the sequence shown in FIG. 7 . The processes described may be enabled by EDA products (or tools).

시스템 설계(714) 동안, 제조될 집적 회로의 기능성이 지정된다. 설계는 전력 소비, 성능, 면적(물리적 및/또는 코드 라인들), 및 비용들의 감소 등과 같은 원하는 특성들에 대해 최적화될 수 있다. 상이한 타입들의 모듈들 또는 구성요소들로의 설계의 파티셔닝이 이 스테이지에서 발생할 수 있다.During system design 714, the functionality of the integrated circuit to be manufactured is specified. The design may be optimized for desired characteristics such as reduction in power consumption, performance, area (physical and/or code lines), and costs. Partitioning of the design into different types of modules or components may occur at this stage.

논리적 설계 및 기능 검증(716) 동안, 회로 내의 모듈들 또는 구성요소들은 하나 이상의 설명 언어들로 지정되고, 사양이 기능 정확성에 대해 체크된다. 예컨대, 회로의 구성요소들은 설계되고 있는 회로 또는 시스템의 사양의 요건들과 매칭하는 출력들을 생성하도록 검증될 수 있다. 기능 검증은 테스트벤치 생성기들, 정적 HDL 체커들, 및 형식 검증기들과 같은 시뮬레이터들 및 다른 프로그램들을 사용할 수 있다. 일부 실시예들에서, '에뮬레이터들' 또는 '프로토타이핑 시스템들'로 지칭되는 구성요소들의 특수 시스템들이 기능 검증의 속도를 높이기 위해 사용된다.During logical design and functional verification 716, modules or components within a circuit are specified in one or more descriptive languages, and specifications are checked for functional correctness. For example, components of a circuit may be verified to produce outputs that match the requirements of the specification of the circuit or system being designed. Functional verification can use simulators and other programs such as testbench generators, static HDL checkers, and formal verifiers. In some embodiments, specialized systems of components referred to as 'emulators' or 'prototyping systems' are used to speed up functional verification.

테스트를 위한 합성 및 설계(718) 동안, HDL 코드는 네트리스트로 변환된다. 일부 실시예들에서, 네트리스트는 그래프 구조일 수 있고, 여기서, 그래프 구조의 에지들은 회로의 구성요소들을 표현하고, 그래프 구조의 노드들은 구성요소들이 어떻게 상호연결되는지를 표현한다. HDL 코드와 네트리스트 둘 모두는 집적 회로가 제조될 때 지정된 설계에 따라 수행하는지를 검증하기 위해 EDA 제품에 의해 사용될 수 있는 계층적 제조 물품들이다. 네트리스트는 타깃 반도체 제조 기술에 대해 최적화될 수 있다. 추가적으로, 완성된 집적 회로는 집적 회로가 사양의 요건들을 만족시키는지를 검증하기 위해 테스트될 수 있다.During synthesis and design for test 718, the HDL code is converted into a netlist. In some embodiments, the netlist may be a graph structure, wherein the edges of the graph structure represent components of a circuit, and nodes of the graph structure represent how the components are interconnected. Both HDL codes and netlists are hierarchical articles of manufacture that can be used by EDA products to verify that an integrated circuit performs according to a specified design when manufactured. The netlist may be optimized for the target semiconductor manufacturing technology. Additionally, the completed integrated circuit may be tested to verify that the integrated circuit meets the requirements of the specification.

네트리스트 검증(720) 동안, 네트리스트는 타이밍 제약들에 대한 순응성(compliance) 및 HDL 코드에 대한 대응성(correspondence)에 대해 체크된다. 설계 계획(722) 동안, 집적 회로에 대한 전체 플로어 플랜(floor plan)이 구성되고, 타이밍 및 최상위 레벨 라우팅에 대해 분석된다.During netlist verification 720 , the netlist is checked for compliance to timing constraints and correspondence to HDL codes. During design planning 722, an overall floor plan for the integrated circuit is constructed and analyzed for timing and top-level routing.

레이아웃 또는 물리적 구현(724) 동안, 물리적 배치(트랜지스터들 또는 커패시터들과 같은 회로 구성요소들을 위치시키는 것) 및 라우팅(다수의 전도체에 의한 회로 구성요소들의 연결)이 발생하고, 특정 논리 함수들을 가능하게 하기 위한 라이브러리로부터의 셀들의 선택이 수행될 수 있다. 본원에서 사용되는 바와 같이, '셀'이라는 용어는 부울 논리 함수(예컨대, AND, OR, NOT, XOR) 또는 저장 기능(이를테면, 플립플롭 또는 래치)을 제공하는 트랜지스터들, 다른 구성요소들, 및 상호연결들의 세트를 지정할 수 있다. 본원에서 사용되는 바와 같이, 회로 '블록'은 2개 이상의 셀을 지칭할 수 있다. 셀과 회로 블록 둘 모두는 모듈 또는 구성요소로 지칭될 수 있고, 물리적 구조들과 시뮬레이션들 둘 모두로 인에이블된다. 크기와 같은 파라미터들이 선택된 셀들에 대해('표준 셀들'에 기초하여) 지정되고, EDA 제품들에 의한 사용을 위해 데이터베이스에서 액세스가능하게 된다.During layout or physical implementation 724, physical placement (locating circuit components such as transistors or capacitors) and routing (connection of circuit components by multiple conductors) occur and enable certain logical functions A selection of cells from the library to allow can be performed. As used herein, the term 'cell' refers to transistors, other components that provide Boolean logic functions (eg, AND, OR, NOT, XOR) or storage functions (eg, flip-flops or latches), and A set of interconnections can be specified. As used herein, a circuit 'block' may refer to two or more cells. Both a cell and a circuit block may be referred to as a module or component, and are enabled with both physical structures and simulations. Parameters such as size are specified for selected cells (based on 'standard cells') and made accessible in a database for use by EDA products.

분석 및 추출(726) 동안, 회로 기능이 레이아웃 레벨에서 검증되고, 이는 레이아웃 설계의 정밀화를 가능하게 한다. 물리적 검증(728) 동안, 레이아웃 설계는 DRC 제약들, 전기적 제약들, 리소그래피 제약들과 같은 제조 제약들이 정확하고 회로부 기능이 HDL 설계 사양과 매칭하는 것을 보장하기 위해 체크된다. 해상도 향상(730) 동안, 레이아웃의 기하형상은 회로 설계가 제조되는 방법을 개선하기 위해 변환된다.During analysis and extraction 726, circuit functions are verified at the layout level, which allows refinement of the layout design. During physical verification 728 , the layout design is checked to ensure that manufacturing constraints such as DRC constraints, electrical constraints, and lithography constraints are correct and that the circuitry function matches the HDL design specification. During resolution enhancement 730, the geometry of the layout is transformed to improve how the circuit design is manufactured.

테이프 아웃 동안, 리소그래피 마스크들의 생성을 위해 (적절한 경우 리소그래피 향상들이 적용된 후에) 사용될 데이터가 생성된다. 마스크 데이터 준비(732) 동안, '테이프 아웃' 데이터는 완성된 집적 회로들을 생성하기 위해 사용되는 리소그래피 마스크들을 생성하는 데 사용된다.During tape out, data is generated that will be used (after lithographic enhancements have been applied if appropriate) for the creation of lithographic masks. During mask data preparation 732 , the 'tape out' data is used to create lithographic masks that are used to create the completed integrated circuits.

컴퓨터 시스템(이를테면, 도 8의 컴퓨터 시스템(800))의 저장 서브시스템은 본원에서 설명되는 EDA 제품들 중 일부 또는 전부에 의해 사용되는 프로그램들 및 데이터 구조들, 및 라이브러리에 대한 셀들의 개발 및 라이브러리를 사용하는 물리적 및 논리적 설계를 위해 사용되는 제품들을 저장하는 데 사용될 수 있다.The storage subsystem of a computer system (eg, computer system 800 of FIG. 8 ) is a library and development of cells for programs and data structures, and libraries used by some or all of the EDA products described herein. can be used to store products used for physical and logical design using

도 8은 컴퓨터 시스템(800)의 예시적인 머신을 예시하고, 그 내부에서, 머신으로 하여금 본원에서 논의되는 방법들 중 임의의 하나 이상을 수행하게 하기 위한 명령어들의 세트가 실행될 수 있다. 대안적인 구현들에서, 머신은 LAN, 인트라넷, 익스트라넷, 및/또는 인터넷에서 다른 머신들에 연결(예컨대, 네트워킹)될 수 있다. 머신은 클라이언트-서버 네트워크 환경에서 서버 또는 클라이언트 머신의 능력으로 동작할 수 있거나, 피어-투-피어(또는 분산) 네트워크 환경에서 피어 머신으로서 동작할 수 있거나, 또는 클라우드 컴퓨팅 기반구조 또는 환경에서 서버 또는 클라이언트 머신으로서 동작할 수 있다.8 illustrates an example machine of computer system 800 , within which a set of instructions may be executed to cause the machine to perform any one or more of the methods discussed herein. In alternative implementations, the machine may be connected (eg, networked) to other machines on a LAN, intranet, extranet, and/or the Internet. A machine may operate in the capacity of a server or client machine in a client-server network environment, as a peer machine in a peer-to-peer (or distributed) network environment, or as a server or in a cloud computing infrastructure or environment. It can act as a client machine.

머신은 개인용 컴퓨터(PC), 태블릿 PC, STB(set-top box), 개인용 디지털 어시스턴트(PDA), 셀룰러 전화, 웹 기기, 서버, 네트워크 라우터, 스위치 또는 브리지, 또는 머신에 의해 행해질 액션들을 지정하는 명령어들의 세트를 (순차적으로 또는 다른 방식으로) 실행할 수 있는 임의의 머신일 수 있다. 추가로, 단일 머신이 예시되어 있지만, "머신"이라는 용어는 또한, 본원에서 논의되는 방법들 중 임의의 하나 이상을 수행하도록 명령어들의 세트(또는 다수의 세트)를 개별적으로 또는 집합적으로 실행하는 머신들의 임의의 콜렉션을 포함하는 것으로 이해될 것이다.A machine is a personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), cellular phone, web device, server, network router, switch or bridge, or It can be any machine capable of executing (sequentially or otherwise) a set of instructions. Additionally, although a single machine is illustrated, the term “machine” also refers to individually or collectively executing a set (or multiple sets) of instructions to perform any one or more of the methods discussed herein. It will be understood to include any collection of machines.

예시적인 컴퓨터 시스템(800)은 프로세싱 디바이스(802), 메인 메모리(804)(예컨대, 판독 전용 메모리(ROM), 플래시 메모리, 동적 랜덤 액세스 메모리(DRAM), 이를테면 동기식 DRAM(SDRAM), 정적 메모리(806)(예컨대, 플래시 메모리, 정적 랜덤 액세스 메모리(SRAM) 등), 및 데이터 저장 디바이스(818)를 포함하고, 이들은 버스(830)를 통해 서로 통신한다.Exemplary computer system 800 includes processing device 802, main memory 804 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM), such as synchronous DRAM (SDRAM), static memory ( 806 (eg, flash memory, static random access memory (SRAM), etc.), and a data storage device 818 , which communicate with each other via a bus 830 .

프로세싱 디바이스(802)는 마이크로프로세서, 중앙 프로세싱 유닛 등과 같은 하나 이상의 프로세서를 표현한다. 더 구체적으로, 프로세싱 디바이스는 CISC(complex instruction set computing) 마이크로프로세서, RISC(reduced instruction set computing) 마이크로프로세서, VLIW(very long instruction word) 마이크로프로세서, 또는 다른 명령어 세트들을 구현하는 프로세서, 또는 명령어 세트들의 조합을 구현하는 프로세서들일 수 있다. 프로세싱 디바이스(802)는 또한, 하나 이상의 특수 목적 프로세싱 디바이스, 이를테면, 주문형 집적 회로(ASIC), 필드 프로그램가능 게이트 어레이(FPGA), 디지털 신호 프로세서(DSP), 네트워크 프로세서 등일 수 있다. 프로세싱 디바이스(802)는 본원에서 설명되는 동작들 및 단계들을 수행하기 위한 명령어들(826)을 실행하도록 구성될 수 있다.Processing device 802 represents one or more processors, such as a microprocessor, central processing unit, or the like. More specifically, the processing device may be a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets, or of instruction sets. It may be processors that implement the combination. The processing device 802 may also be one or more special purpose processing devices, such as application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), digital signal processors (DSPs), network processors, and the like. The processing device 802 may be configured to execute instructions 826 for performing the operations and steps described herein.

컴퓨터 시스템(800)은 네트워크(820)를 통해 통신하기 위해 네트워크 인터페이스 디바이스(808)를 더 포함할 수 있다. 컴퓨터 시스템(800)은 또한, 비디오 디스플레이 유닛(810)(예컨대, 액정 디스플레이(LCD) 또는 음극선관(CRT)), 영숫자 입력 디바이스(812)(예컨대, 키보드), 커서 제어 디바이스(814)(예컨대, 마우스), 그래픽 프로세싱 유닛(822), 신호 생성 디바이스(816)(예컨대, 스피커), 그래픽 프로세싱 유닛(822), 비디오 프로세싱 유닛(828), 및 오디오 프로세싱 유닛(832)을 포함할 수 있다.Computer system 800 may further include a network interface device 808 for communicating via network 820 . The computer system 800 also includes a video display unit 810 (eg, a liquid crystal display (LCD) or cathode ray tube (CRT)), an alphanumeric input device 812 (eg, a keyboard), a cursor control device 814 (eg, , mouse), a graphics processing unit 822 , a signal generating device 816 (eg, a speaker), a graphics processing unit 822 , a video processing unit 828 , and an audio processing unit 832 .

데이터 저장 디바이스(818)는 머신 판독가능 저장 매체(824)(비일시적 컴퓨터 판독가능 매체로 또한 알려져 있음)를 포함할 수 있고, 그 머신 판독가능 저장 매체(824) 상에, 본원에서 설명되는 방법들 또는 기능들 중 임의의 하나 이상을 구현하는 소프트웨어 또는 명령어들(826)의 하나 이상의 세트가 저장된다. 명령어들(826)은 또한, 컴퓨터 시스템(800)에 의한 이들의 실행 동안 프로세싱 디바이스(802) 및/또는 메인 메모리(804) 내에 완전히 또는 적어도 부분적으로 상주할 수 있고, 메인 메모리(804) 및 프로세싱 디바이스(802)는 또한, 머신 판독가능 저장 매체들을 구성한다.The data storage device 818 may include a machine-readable storage medium 824 (also known as a non-transitory computer-readable medium), on the machine-readable storage medium 824 , the method described herein. One or more sets of software or instructions 826 implementing any one or more of the functions or functions are stored. Instructions 826 may also reside fully or at least partially within processing device 802 and/or main memory 804 during their execution by computer system 800 , main memory 804 and processing Device 802 also constitutes machine-readable storage media.

일부 구현들에서, 명령어들(826)은 본 개시내용에 대응하는 기능성을 구현하기 위한 명령어들을 포함한다. 머신 판독가능 저장 매체(824)가 예시적인 구현에서 단일 매체인 것으로 도시되어 있지만, "머신 판독가능 저장 매체"라는 용어는 명령들의 하나 이상의 세트들을 저장하는 단일 매체 또는 다수의 매체들(예컨대, 중앙 집중형 또는 분산형 데이터베이스 및/또는 연관된 캐시들 및 서버들)을 포함하는 것으로 이해되어야 한다. "머신 판독가능 저장 매체"라는 용어는 또한, 머신에 의한 실행을 위해 명령어들의 세트를 저장 또는 인코딩할 수 있고, 머신 및 프로세싱 디바이스(802)로 하여금 본 개시내용의 방법들 중 임의의 하나 이상을 수행하게 하는 임의의 매체를 포함하는 것으로 이해될 것이다. 따라서, "머신 판독가능 저장 매체"라는 용어는 솔리드 스테이트 메모리들, 광학 매체들, 및 자기 매체들을 포함하지만 이에 제한되지는 않는 것으로 이해될 것이다.In some implementations, instructions 826 include instructions for implementing functionality corresponding to the present disclosure. Although machine-readable storage medium 824 is shown as being a single medium in the example implementation, the term "machine-readable storage medium" is a single medium or multiple media (eg, centralized centralized or distributed database and/or associated caches and servers). The term “machine-readable storage medium” may also store or encode a set of instructions for execution by a machine, and cause the machine and processing device 802 to perform any one or more of the methods of the present disclosure. It will be understood to include any medium that makes it happen. Accordingly, the term “machine-readable storage medium” will be understood to include, but is not limited to, solid state memories, optical media, and magnetic media.

이전의 상세한 설명들의 일부 부분들은 컴퓨터 메모리 내의 데이터 비트들에 대한 동작들의 기호 표현들 및 알고리즘들과 관련하여 제시되었다. 이러한 알고리즘 설명들 및 표현들은, 데이터 프로세싱 기술분야들의 통상의 기술자에 의해, 이들의 작업의 내용을 관련 기술분야의 다른 통상의 기술자에게 가장 효과적으로 전달하기 위해 사용되는 방식들이다. 알고리즘은 원하는 결과를 발생시키는 동작들의 시퀀스일 수 있다. 동작들은 물리적 양들의 물리적 조작들을 요구하는 동작들이다. 이러한 양들은 저장, 조합, 비교, 및 다른 방식으로 조작될 수 있는 전기 또는 자기 신호들의 형태를 취할 수 있다. 이러한 신호들은 비트들, 값들, 요소들, 심볼들, 문자들, 항들, 숫자들 등으로 지칭될 수 있다.Some portions of the preceding detailed descriptions have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the ways used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm may be a sequence of actions that produces a desired result. Operations are operations that require physical manipulations of physical quantities. These quantities may take the form of electrical or magnetic signals capable of being stored, combined, compared, and otherwise manipulated. Such signals may be referred to as bits, values, elements, symbols, characters, terms, numbers, or the like.

그러나, 이들 및 유사한 용어들 모두는 적절한 물리적 양들과 연관될 것이고, 그리고 단지 이들 양들에 적용되는 편리한 표시들일 뿐이라는 것이 유념되어야 한다. 구체적으로 달리 명시되지 않는 한, 본 개시내용으로부터 명백한 바와 같이, 본 설명 전체에 걸쳐, 특정 용어들은, 컴퓨터 시스템의 레지스터들 및 메모리들 내의 물리적(전자적) 양들로서 표현된 데이터를, 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 그러한 정보 저장 디바이스들 내의 물리적 양들로서 유사하게 표현된 다른 데이터로 조작 및 변환하는, 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 액션 및 프로세스들을 지칭하는 것으로 이해된다.It should be borne in mind, however, that all of these and similar terms will be associated with the appropriate physical quantities, and are merely convenient indications applied to these quantities. Unless specifically indicated otherwise, and as apparent from this disclosure, throughout this description, specific terms refer to data expressed as physical (electronic) quantities within registers and memories of a computer system, computer system memories. or to operations and processes of a computer system or similar electronic computing device that manipulate and transform into other data similarly represented as physical quantities in registers or other such information storage devices.

본 개시내용은 또한, 본원의 동작들을 수행하기 위한 장치에 관한 것이다. 이러한 장치는 의도된 목적들을 위해 특별히 구성될 수 있거나, 또는 그 장치는 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화 또는 재구성되는 컴퓨터를 포함할 수 있다. 그러한 컴퓨터 프로그램은, 컴퓨터 판독가능 저장 매체, 이를테면, 플로피 디스크들, 광학 디스크들, CD-ROM들 및 자기 광학 디스크들을 포함하는 임의의 타입의 디스크, 판독 전용 메모리(ROM)들, 랜덤 액세스 메모리(RAM)들, EPROM들, EEPROM들, 자기 또는 광학 카드들, 또는 전자 명령어들을 저장하는 데 적합한 임의의 타입의 매체들(그러나 이에 제한되지는 않음)에 저장될 수 있고, 이들 각각은 컴퓨터 시스템 버스에 커플링된다.The present disclosure also relates to an apparatus for performing the operations herein. Such an apparatus may be specially constructed for its intended purposes, or it may comprise a computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium such as floppy disks, optical disks, CD-ROMs and any type of disk including magneto-optical disks, read-only memories (ROMs), random access memory ( RAM), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, each of which is a computer system bus is coupled to

본원에서 제공되는 알고리즘들 및 디스플레이들은 임의의 특정한 컴퓨터 또는 다른 장치에 본질적으로 관련되지 않는다. 다양한 다른 시스템들이 본원의 교시들에 따라 프로그램들과 함께 사용될 수 있거나, 또는 방법을 수행하기 위해 더 특수화된 장치를 구성하는 것이 편리한 것으로 입증될 수 있다. 추가하여, 본 개시내용은 임의의 특정 프로그래밍 언어를 참조하여 설명되지 않는다. 본원에서 설명되는 바와 같은 본 개시내용의 교시들을 구현하기 위해, 다양한 프로그래밍 언어들이 사용될 수 있다는 것이 인식될 것이다.The algorithms and displays provided herein are not inherently related to any particular computer or other device. Various other systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the method. In addition, the present disclosure is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the present disclosure as described herein.

본 개시내용은 본 개시내용에 따라 프로세스를 수행하도록 컴퓨터 시스템(또는 다른 전자 디바이스들)을 프로그래밍하기 위해 사용될 수 있는 명령어들이 저장된 머신 판독가능 매체를 포함할 수 있는 컴퓨터 프로그램 제품 또는 소프트웨어로서 제공될 수 있다. 머신 판독가능 매체는 머신(예컨대, 컴퓨터)에 의해 판독가능한 형태로 정보를 저장하기 위한 임의의 메커니즘을 포함한다. 예컨대, 머신 판독가능(예컨대, 컴퓨터 판독가능) 매체는 판독 전용 메모리("ROM"), 랜덤 액세스 메모리("RAM"), 자기 디스크 저장 매체들, 광학 저장 매체들, 플래시 메모리 디바이스들 등과 같은 머신(예컨대, 컴퓨터) 판독가능 저장 매체를 포함한다.The present disclosure may be provided as software or a computer program product that may include a machine-readable medium having stored thereon instructions that may be used to program a computer system (or other electronic devices) to perform a process in accordance with the present disclosure. have. Machine-readable media includes any mechanism for storing information in a form readable by a machine (eg, a computer). For example, a machine readable (eg, computer readable) medium may be a machine readable (eg, computer readable) medium such as read only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory devices, and the like. (eg, computer) readable storage media.

전술된 개시내용에서, 본 개시내용의 구현들은 그의 특정 예시적인 구현들을 참조하여 설명되었다. 다음의 청구항들에 제시된 바와 같은 본 개시내용의 구현들의 더 넓은 사상 및 범위로부터 벗어나지 않으면서, 다양한 수정들이 본 개시내용에 대해 이루어질 수 있다는 것이 자명할 것이다. 본 개시내용이 단수의 의미로 일부 요소들을 언급하는 경우, 하나 초과의 요소가 도면들에 도시될 수 있고, 유사한 요소들은 유사한 번호들로 레이블링된다. 따라서, 본 개시내용 및 도면들은 제한적인 의미가 아니라 예시적인 의미로 간주되어야 한다.In the foregoing disclosure, implementations of the disclosure have been described with reference to specific example implementations thereof. It will be apparent that various modifications may be made to the present disclosure without departing from the broader spirit and scope of implementations of the present disclosure as set forth in the following claims. When this disclosure refers to some elements in the singular, more than one element may be shown in the figures, and like elements are labeled with like numbers. Accordingly, the present disclosure and drawings are to be regarded in an illustrative rather than a restrictive sense.

Claims (20)

방법으로서,
리소그래피 마스크에 대한 마스크 개발 프로세스에서 사용되는 레이아웃에 액세스하는 단계 ― 상기 레이아웃은 복수의 분리된 형상들을 포함함 ―;
프로세서에 의해, 상기 레이아웃 내의 상기 분리된 형상들 중 적어도 일부에 대한 골격 표현들을 결정하는 단계 ― 개별 형상의 골격 표현은 에지들에 의해 연결된 2개 이상의 노드의 요소들 및 상기 요소들 중 적어도 일부에 대한 크기 파라미터들을 포함함 ―; 및
상기 마스크 개발 프로세스에서 상기 골격 표현들을 사용하는 단계
를 포함하는, 방법.
As a method,
accessing a layout used in a mask development process for a lithographic mask, the layout including a plurality of discrete shapes;
determining, by a processor, skeletal representations for at least some of the discrete shapes in the layout, wherein the skeletal representations of individual shapes are at least some of the elements and elements of two or more nodes connected by edges. including size parameters for −; and
using the skeletal representations in the mask development process;
A method comprising
제1항에 있어서,
상기 개별 형상은 다각형이고,
상기 개별 형상의 상기 골격 표현을 결정하는 것은,
상기 다각형에 대한 보로노이 다이어그램(Voronoi diagram)을 결정하는 것; 및
상기 보로노이 다이어그램으로부터 상기 골격 표현을 결정하는 것
을 포함하는, 방법.
According to claim 1,
The individual shape is a polygon,
Determining the skeletal representation of the individual shape comprises:
determining a Voronoi diagram for the polygon; and
Determining the skeletal representation from the Voronoi diagram
A method comprising
제1항에 있어서,
상기 개별 형상의 상기 골격 표현의 상기 노드들 및 상기 에지들은 상기 개별 형상의 형태학적 침식(morphological erosion)에 기초하는, 방법.
According to claim 1,
and the nodes and the edges of the skeletal representation of the individual shape are based on morphological erosion of the individual shape.
제1항에 있어서,
상기 개별 형상은 상기 노드들 및 상기 에지들에 대한 상기 크기 파라미터들에 따른, 상기 개별 형상의 상기 골격 표현의 상기 노드들 및 상기 에지들의 형태학적 팽창(morphological dilation)에 의해 재구성가능한, 방법.
According to claim 1,
wherein the individual shape is reconfigurable by morphological dilation of the nodes and the edges of the skeletal representation of the individual shape according to the size parameters for the nodes and the edges.
제1항에 있어서,
상기 골격 표현들의 상기 에지들에 대한 상기 크기 파라미터들은 그러한 에지들을 따르는 상기 개별 형상들의 폭들에 기초하는, 방법.
According to claim 1,
and the size parameters for the edges of the skeletal representations are based on widths of the individual shapes along those edges.
제1항에 있어서,
상기 골격 표현들의 상기 노드들에 대한 상기 크기 파라미터들은 그러한 노드들에서의 상기 개별 형상들의 국부적 반경들에 기초하는, 방법.
According to claim 1,
and the size parameters for the nodes of the skeletal representations are based on local radii of the respective shapes at those nodes.
제1항에 있어서,
상기 에지들은 상기 개별 형상의 축에 대응하는, 방법.
According to claim 1,
and the edges correspond to the axes of the respective shapes.
제7항에 있어서,
상기 축은 분지형인, 방법.
8. The method of claim 7,
wherein the axis is branched.
제1항에 있어서,
상기 마스크 개발 프로세스는 광학 근접 보정과 인버스 리소그래피 기술 중 하나이고,
상기 마스크 개발 프로세스에서 상기 골격 표현들을 사용하는 단계는,
상기 골격 표현들의 상기 요소들의 위치들의 변화들로부터 기인하는, 상기 마스크 개발 프로세스에 대한 비용 함수에 대한 영향을 결정하는 단계를 포함하는, 방법.
According to claim 1,
the mask development process is one of optical proximity correction and inverse lithography;
Using the skeleton representations in the mask development process comprises:
determining an impact on a cost function on the mask development process resulting from changes in positions of the elements of the skeleton representations.
제1항에 있어서,
상기 마스크 개발 프로세스는 광학 근접 보정과 인버스 리소그래피 기술 중 하나이고,
상기 마스크 개발 프로세스에서 상기 골격 표현들을 사용하는 단계는,
상기 골격 표현들의 상기 크기 파라미터들의 변화들로부터 기인하는, 상기 마스크 개발 프로세스에 대한 비용 함수에 대한 영향을 결정하는 단계를 포함하는, 방법.
According to claim 1,
the mask development process is one of optical proximity correction and inverse lithography;
Using the skeleton representations in the mask development process comprises:
determining an impact on a cost function on the mask development process resulting from changes in the size parameters of the skeleton representations.
제1항에 있어서,
상기 마스크 개발 프로세스는 마스크 규칙 체킹(mask rule checking)이고,
상기 마스크 개발 프로세스에서 상기 골격 표현들을 사용하는 단계는,
2개의 형상에 대한 상기 골격 표현들의 상기 요소들 사이의 간격에 기초하여 그리고 상기 요소들의 상기 크기 파라미터들에 기초하여, 상기 레이아웃 내의 상기 2개의 형상 사이의 간격을 결정하는 단계를 포함하는, 방법.
According to claim 1,
The mask development process is mask rule checking,
Using the skeleton representations in the mask development process comprises:
determining a spacing between the two shapes in the layout based on the spacing between the elements of the skeletal representations for the two shapes and based on the size parameters of the elements.
시스템으로서,
명령어들을 저장하는 메모리; 및
상기 메모리와 커플링되고 상기 명령어들을 실행하기 위한 프로세서
를 포함하고,
상기 명령어들은, 실행될 때, 상기 프로세서로 하여금,
리소그래피 마스크에 대한 마스크 개발 프로세스에서 사용되는 레이아웃에 액세스하고 ― 상기 레이아웃은 복수의 분리된 형상들을 포함함 ―,
상기 레이아웃 내의 상기 분리된 형상들 중 적어도 일부에 대한 골격 표현들을 결정하고 ― 개별 형상의 골격 표현은 에지들에 의해 연결된 2개 이상의 노드의 요소들 및 상기 요소들 중 적어도 일부에 대한 크기 파라미터들을 포함함 ―,
상기 마스크 개발 프로세스에서 상기 골격 표현들을 사용하게 하는, 시스템.
As a system,
a memory storing instructions; and
a processor coupled with the memory and for executing the instructions
including,
The instructions, when executed, cause the processor to:
access a layout used in a mask development process for a lithographic mask, the layout including a plurality of discrete shapes;
determine skeletal representations for at least some of the discrete shapes in the layout, the skeletal representation of an individual shape comprising elements of two or more nodes connected by edges and size parameters for at least some of the elements Ham-,
use the skeleton representations in the mask development process.
제12항에 있어서,
상기 레이아웃은 상기 마스크 개발 프로세스에 의해 개발되고 있는 마스크에 대한 마스크 레이아웃인, 시스템.
13. The method of claim 12,
wherein the layout is a mask layout for a mask being developed by the mask development process.
제12항에 있어서,
상기 레이아웃은 상기 리소그래피 마스크에 의해 생성된 에어리얼 이미지(aerial image)와 상기 리소그래피 마스크에 의해 웨이퍼 상에 생성된 인쇄된 패턴 중 하나인, 시스템.
13. The method of claim 12,
wherein the layout is one of an aerial image created by the lithography mask and a printed pattern created on a wafer by the lithography mask.
제12항에 있어서,
상기 개별 형상은 다각형이고,
상기 개별 형상의 상기 골격 표현을 결정하는 것은,
상기 다각형에 대한 보로노이 다이어그램을 결정하는 것; 및
상기 보로노이 다이어그램으로부터 상기 골격 표현을 결정하는 것
을 포함하는, 시스템.
13. The method of claim 12,
The individual shape is a polygon,
Determining the skeletal representation of the individual shape comprises:
determining a Voronoi diagram for the polygon; and
Determining the skeletal representation from the Voronoi diagram
comprising, a system.
제12항에 있어서,
상기 개별 형상의 상기 골격 표현의 상기 노드들 및 상기 에지들은 상기 개별 형상의 형태학적 침식에 기초하는, 시스템.
13. The method of claim 12,
and the nodes and the edges of the skeletal representation of the individual shape are based on morphological erosion of the individual shape.
제12항에 있어서,
상기 개별 형상은 상기 노드들 및 상기 에지들에 대한 상기 크기 파라미터들에 따른, 상기 개별 형상의 상기 골격 표현의 상기 노드들 및 상기 에지들의 형태학적 팽창에 의해 재구성가능한, 시스템.
13. The method of claim 12,
wherein the individual shape is reconfigurable by morphological expansion of the nodes and the edges of the skeletal representation of the individual shape according to the size parameters for the nodes and the edges.
비일시적 컴퓨터 판독가능 매체로서,
저장된 명령어들을 포함하고,
상기 명령어들은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
리소그래피 마스크에 대한 마스크 개발 프로세스에서 사용되는 레이아웃에 액세스하고 ― 상기 레이아웃은 복수의 분리된 형상들을 포함함 ―,
상기 레이아웃 내의 상기 분리된 형상들 중 적어도 일부에 대한 골격 표현들을 결정하고 ― 개별 형상의 골격 표현은 에지들에 의해 연결된 2개 이상의 노드의 요소들 및 상기 요소들 중 적어도 일부에 대한 크기 파라미터들을 포함함 ―,
상기 마스크 개발 프로세스에서 사용하기 위해 상기 골격 표현들을 제공하게 하는, 비일시적 컴퓨터 판독가능 매체.
A non-transitory computer-readable medium comprising:
stored instructions;
The instructions, when executed by a processor, cause the processor to:
access a layout used in a mask development process for a lithographic mask, the layout including a plurality of discrete shapes;
determine skeletal representations for at least some of the discrete shapes in the layout, the skeletal representation of an individual shape comprising elements of two or more nodes connected by edges and size parameters for at least some of the elements Ham-,
provide the skeleton representations for use in the mask development process.
제18항에 있어서,
상기 마스크 개발 프로세스는 광학 근접 보정과 인버스 리소그래피 기술 중 하나이고,
상기 마스크 개발 프로세스에서 상기 골격 표현들을 사용하는 것은,
상기 골격 표현들의 변화들로부터 기인하는, 상기 마스크 개발 프로세스에 대한 비용 함수에 대한 영향을 결정하는 것을 포함하는, 비일시적 컴퓨터 판독가능 매체.
19. The method of claim 18,
the mask development process is one of optical proximity correction and inverse lithography;
Using the skeleton representations in the mask development process comprises:
and determining an effect on a cost function for the mask development process resulting from changes in the skeleton representations.
제18항에 있어서,
상기 마스크 개발 프로세스는 마스크 규칙 체킹이고,
상기 마스크 개발 프로세스에서 상기 골격 표현들을 사용하는 것은,
2개의 형상에 대한 상기 골격 표현들에 기초하여, 상기 레이아웃 내의 상기 2개의 형상 사이의 간격을 결정하는 것을 포함하는, 비일시적 컴퓨터 판독가능 매체.
19. The method of claim 18,
The mask development process is mask rule checking,
Using the skeleton representations in the mask development process comprises:
and determining, based on the skeleton representations of the two shapes, a spacing between the two shapes in the layout.
KR1020227031168A 2020-02-14 2021-02-12 Skeletal representation of layouts for development of lithographic masks KR20220140578A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202062977020P 2020-02-14 2020-02-14
US62/977,020 2020-02-14
PCT/US2021/018034 WO2021163623A1 (en) 2020-02-14 2021-02-12 Skeleton representation of layouts for the development of lithographic masks

Publications (1)

Publication Number Publication Date
KR20220140578A true KR20220140578A (en) 2022-10-18

Family

ID=77273788

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227031168A KR20220140578A (en) 2020-02-14 2021-02-12 Skeletal representation of layouts for development of lithographic masks

Country Status (4)

Country Link
US (1) US11860531B2 (en)
EP (1) EP4073584A1 (en)
KR (1) KR20220140578A (en)
CN (1) CN115004107A (en)

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081658A (en) 1997-12-31 2000-06-27 Avant! Corporation Proximity correction system for wafer lithography
US6832364B2 (en) * 2002-10-03 2004-12-14 International Business Machines Corporation Integrated lithographic layout optimization
US6823503B2 (en) * 2002-12-31 2004-11-23 Numerical Technologies, Inc. Method and apparatus for creating a phase-shifting mask for a photolithographic process
US7049652B2 (en) 2003-12-10 2006-05-23 Sandisk Corporation Pillar cell flash memory technology
US7240306B2 (en) 2005-02-24 2007-07-03 International Business Machines Corporation Integrated circuit layout critical area determination using Voronoi diagrams and shape biasing
US7831954B2 (en) 2007-09-25 2010-11-09 Synopsys, Inc. Flash-based updating techniques for high-accuracy high efficiency mask synthesis
US7707539B2 (en) * 2007-09-28 2010-04-27 Synopsys, Inc. Facilitating process model accuracy by modeling mask corner rounding effects
US9561622B2 (en) 2008-05-05 2017-02-07 Georgia Tech Research Corporation Systems and methods for fabricating three-dimensional objects
US8490034B1 (en) * 2010-07-08 2013-07-16 Gauda, Inc. Techniques of optical proximity correction using GPU
US8312394B2 (en) * 2010-11-29 2012-11-13 Synopsys, Inc. Method and apparatus for determining mask layouts for a spacer-is-dielectric self-aligned double-patterning process
US8745556B2 (en) * 2012-06-28 2014-06-03 Taiwan Semiconductor Manufacturing Co., Ltd. Layout method and system for multi-patterning integrated circuits
JP5957357B2 (en) * 2012-10-15 2016-07-27 株式会社日立ハイテクノロジーズ Pattern inspection / measurement apparatus and program
JP6399751B2 (en) * 2013-12-25 2018-10-03 キヤノン株式会社 Mask pattern creation method, program, mask manufacturing method, exposure method, and article manufacturing method
US20170053058A1 (en) * 2015-08-21 2017-02-23 Taiwan Semiconductor Manufacturing Company, Ltd. Model-based rule table generation
US9881870B2 (en) 2015-12-30 2018-01-30 Taiwan Semiconductor Manufacturing Co., Ltd. Semiconductor device and manufacturing method thereof
US10262100B2 (en) 2017-05-24 2019-04-16 Synopsys, Inc. Rule based assist feature placement using skeletons
US10656530B2 (en) 2018-05-08 2020-05-19 Asml Us, Llc Application of FreeForm MRC to SRAF optimization based on ILT mask optimization

Also Published As

Publication number Publication date
CN115004107A (en) 2022-09-02
US11860531B2 (en) 2024-01-02
US20210255539A1 (en) 2021-08-19
EP4073584A1 (en) 2022-10-19

Similar Documents

Publication Publication Date Title
US20210064977A1 (en) Neural network based mask synthesis for integrated circuits
TWI836186B (en) Method, system, and non-transitory computer readable medium for developing lithographic masks using skeleton representation of layouts
US20210049315A1 (en) Methods and systems to perform automated integrated fan-out wafer level package routing
US11836425B2 (en) Engineering change orders with consideration of adversely affected constraints
US11748553B2 (en) Mask rule checking for curvilinear masks for electronic circuits
WO2021034495A1 (en) Applying reticle enhancement technique recipes based on failure modes predicted by an artificial neural network
US11694016B2 (en) Fast topology bus router for interconnect planning
US20220082932A1 (en) Three-dimensional mask simulations based on feature images
US20210390244A1 (en) System and Method for Synchronizing Net Text Across Hierarchical Levels
KR20220140578A (en) Skeletal representation of layouts for development of lithographic masks
US11720015B2 (en) Mask synthesis using design guided offsets
US11449659B2 (en) Lithography-based pattern optimization
US11416661B2 (en) Automatic derivation of integrated circuit cell mapping rules in an engineering change order flow
US12014127B2 (en) Transforming a logical netlist into a hierarchical parasitic netlist
US11644746B1 (en) Inverse etch model for mask synthesis
US11836000B1 (en) Automatic global clock tree synthesis
US11586796B1 (en) Keep-through regions for handling end-of-line rules in routing
US20230126888A1 (en) Computation of weakly connected components in a parallel, scalable and deterministic manner
US20220392191A1 (en) Large scale computational lithography using machine learning models
US20230306180A1 (en) Static timing analysis of multi-die three-dimensional integrated circuits
US20230409791A1 (en) Field-net for placement evaluation
US20220198109A1 (en) Boolean methods for engineering change order (eco) patch identification
US20220382955A1 (en) Constraint file-based novel framework for net-based checking technique
KR20230015922A (en) Systems and methods for processing virtual partition cells injected into hierarchical integrated circuit design