KR102419645B1 - Computer-implemented method and computing system for designing integrated circuit and method of manufacturing integrated circuit - Google Patents

Computer-implemented method and computing system for designing integrated circuit and method of manufacturing integrated circuit Download PDF

Info

Publication number
KR102419645B1
KR102419645B1 KR1020170101871A KR20170101871A KR102419645B1 KR 102419645 B1 KR102419645 B1 KR 102419645B1 KR 1020170101871 A KR1020170101871 A KR 1020170101871A KR 20170101871 A KR20170101871 A KR 20170101871A KR 102419645 B1 KR102419645 B1 KR 102419645B1
Authority
KR
South Korea
Prior art keywords
drc
integrated circuit
data
lvs
layout
Prior art date
Application number
KR1020170101871A
Other languages
Korean (ko)
Other versions
KR20180127141A (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 US15/971,079 priority Critical patent/US10628550B2/en
Priority to CN201810461072.4A priority patent/CN108959693B/en
Publication of KR20180127141A publication Critical patent/KR20180127141A/en
Application granted granted Critical
Publication of KR102419645B1 publication Critical patent/KR102419645B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Abstract

본 개시는 집적 회로의 설계를 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템을 개시한다. 본 개시의 기술적 사상에 따른 집적 회로의 설계를 위한 컴퓨터 구현 방법은 DRC 구문을 포함하는 룰 파일을 기초로 집적 회로의 레이아웃 데이터로부터 폴리곤들의 연결관계를 검출하고, 검출된 연결관계를 이용하여 레이아웃 데이터로부터 레이아웃 넷리스트를 추출하며, 집적 회로의 스키메틱 데이터와 레이아웃 넷리스트를 비교함으로써 LVS 결과 데이터를 생성하도록 집적 회로에 대한 LVS 검증을 수행한다.The present disclosure discloses a computer-implemented method and computing system for the design of an integrated circuit. A computer-implemented method for designing an integrated circuit according to the technical concept of the present disclosure detects a connection relationship between polygons from layout data of an integrated circuit based on a rule file including a DRC syntax, and uses the detected connection relationship to provide layout data Extracts a layout netlist from , and performs LVS verification on the integrated circuit to generate LVS result data by comparing the schematic data of the integrated circuit with the layout netlist.

Description

집적 회로를 설계하기 위한 컴퓨터 구현 방법, 컴퓨팅 시스템, 및 집적 회로의 제조 방법{Computer-implemented method and computing system for designing integrated circuit and method of manufacturing integrated circuit}TECHNICAL FIELD Computer-implemented method and computing system for designing integrated circuit and method of manufacturing integrated circuit

본 개시의 기술적 사상은 집적 회로에 관한 것이며, 더욱 상세하게는, 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템, 그리고, 집적 회로의 제조 방법에 관한 것이다.The technical idea of the present disclosure relates to an integrated circuit, and more particularly, to a computer-implemented method and computing system for designing an integrated circuit, and a manufacturing method of the integrated circuit.

집적 회로는 트랜지스터, 저항, 다이오드 등과 같은 다양한 소자들을 포함하는 스키메틱(schematic) 데이터에 의해 정의될 수 있다. 집적 회로의 레이아웃 데이터는 스키메틱 데이터에 기초하여 생성될 수 있고, 복수의 폴리곤들(polygons)을 포함할 수 있다. 레이아웃 데이터가 스키메틱 데이터와 일치하는지 여부를 검증하기 위해 LVS(Layout-Versus-Schematic) 검증이 수행될 수 있다. 구체적으로, LVS 검증은 레이아웃 데이터와 스키메틱 데이터에서 넷(net), 소자, 및 파라미터의 일치 여부를 검증할 수 있다. 넷은 집적 회로의 레이아웃에서 하나의 상호연결에 대응할 수 있고, 하나의 상호연결은 서로 전기적으로 연결된 메탈 레이어들 및 비아들을 포함하는 배선 구조에 대응할 수 있다.An integrated circuit may be defined by schematic data including various elements such as transistors, resistors, diodes, and the like. The layout data of the integrated circuit may be generated based on the schematic data and may include a plurality of polygons. Layout-Versus-Schematic (LVS) verification may be performed to verify whether the layout data matches the schematic data. Specifically, the LVS verification may verify whether a net, a device, and a parameter match in the layout data and the schematic data. Four may correspond to one interconnection in the layout of the integrated circuit, and one interconnection may correspond to a wiring structure including metal layers and vias electrically connected to each other.

본 개시의 기술적 사상은 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템, 및 집적 회로의 제조 방법을 제공한다.The technical idea of the present disclosure provides a computer-implemented method and computing system for designing an integrated circuit, and a method of manufacturing the integrated circuit.

본 개시의 기술적 사상에 따른 집적 회로의 설계를 위한 컴퓨터 구현 방법은, 프로세서에 의해, DRC(Design Rule Check) 구문(syntax)을 포함하는 룰 파일(rule file)을 기초로, 상기 집적 회로의 레이아웃 데이터로부터 폴리곤들의 연결관계(connectivity)를 검출하는 단계, 검출된 상기 연결관계를 이용하여 상기 레이아웃 데이터로부터 레이아웃 넷리스트를 추출하는 단계, 및 상기 집적 회로의 스키메틱 데이터와 상기 레이아웃 넷리스트를 비교함으로써 LVS(Layout-Versus-Schematic) 결과 데이터를 생성하도록 상기 집적 회로에 대한 LVS 검증을 수행하는 단계를 포함한다.A computer implemented method for designing an integrated circuit according to the technical spirit of the present disclosure includes, by a processor, a layout of the integrated circuit based on a rule file including a Design Rule Check (DRC) syntax. detecting connectivity of polygons from data, extracting a layout netlist from the layout data using the detected connectivity, and comparing the layout netlist with the schematic data of the integrated circuit. and performing LVS verification on the integrated circuit to generate Layout-Versus-Schematic (LVS) result data.

또한, 본 개시의 기술적 사상에 따른 집적 회로의 제조 방법은 집적 회로의 레이아웃 데이터에 대해 DRC를 수행함으로써, 상기 레이아웃 데이터로부터 폴리곤들의 연결관계를 검출하고, 레이아웃 넷리스트를 추출하는 단계, 추출된 상기 레이아웃 넷리스트 및 상기 집적 회로의 스키메틱 데이터에 대해 LVS 검증을 수행함으로써 LVS 결과 데이터를 생성하는 단계, 및 상기 레이아웃 데이터 및 상기 LVS 결과 데이터에 기초한 레이아웃에 따라 상기 집적 회로를 제조하는 단계를 포함한다.In addition, the method of manufacturing an integrated circuit according to the technical spirit of the present disclosure includes the steps of: detecting a connection relationship between polygons from the layout data, and extracting a layout netlist, by performing DRC on the layout data of the integrated circuit; generating LVS result data by performing LVS verification on a layout netlist and schematic data of the integrated circuit, and manufacturing the integrated circuit according to a layout based on the layout data and the LVS result data. .

또한, 본 개시의 기술적 사상에 따른 집적 회로의 설계를 위한 컴퓨팅 시스템은 상기 집적 회로에 대한 LVS 검증을 수행하기 위한 LVS 엔진을 저장하는 메모리, 및 상기 메모리에 액세스 가능하고, 상기 LVS 엔진을 실행하는 프로세서를 포함하고, 상기 LVS 엔진은, DRC 구문을 포함하는 룰 파일을 기초로 상기 집적 회로의 레이아웃 데이터로부터 폴리곤들의 연결관계를 검출하고, 검출된 상기 연결관계를 이용하여 상기 레이아웃 데이터로부터 레이아웃 넷리스트를 추출하며, 추출된 상기 레이아웃 넷리스트를 상기 집적 회로의 스키메틱 데이터를 비교한다.In addition, the computing system for designing an integrated circuit according to the technical spirit of the present disclosure includes a memory storing an LVS engine for performing LVS verification on the integrated circuit, and being accessible to the memory and executing the LVS engine a processor, wherein the LVS engine detects a connection relationship of polygons from the layout data of the integrated circuit based on a rule file including a DRC syntax, and uses the detected connection relationship to a layout netlist from the layout data , and compares the extracted layout netlist with the schematic data of the integrated circuit.

본 개시의 기술적 사상에 따르면, DRC 구문을 포함하는 룰 파일을 기초로 레이아웃 데이터로부터 폴리곤들의 연결관계를 자동으로 검출하고, 검출된 연결관계를 이용하여 LVS 검증을 수행할 수 있다. 이에 따라, 레이아웃 데이터에 포함된 필수적인 연결관계만을 검출할 수 있으므로, 연결관계 정보에 해당하는 데이터 사이즈를 줄일 수 있다. 또한, 설계자가 직접 연결관계를 기술하는 작업을 생략할 수 있으므로, LVS 코딩 시간이 단축될 수 있으며, 동시에, LVS 검증의 수행 시간이 증가하지 않을 수 있다. 나아가, DRC 구문은 루프 알고리즘을 이용하여 DRC 루프 구문으로 구현할 수 있고, 이에 따라, 반도체 공정의 미세화에 의해 레이아웃에서 폴리곤들의 개수가 증가하더라도 연결관계 정보의 누락을 방지할 수 있다. According to the technical idea of the present disclosure, it is possible to automatically detect a connection relationship between polygons from layout data based on a rule file including a DRC syntax, and perform LVS verification using the detected connection relationship. Accordingly, since only essential connection relationships included in the layout data can be detected, the size of data corresponding to connection relationship information can be reduced. In addition, since the designer can omit the task of describing the direct connection relationship, the LVS coding time may be shortened, and at the same time, the LVS verification execution time may not increase. Furthermore, the DRC syntax can be implemented as a DRC loop syntax using a loop algorithm, and thus, it is possible to prevent omission of connection relationship information even if the number of polygons in the layout increases due to the miniaturization of the semiconductor process.

도 1은 본 개시의 일 실시예에 따른 집적 회로의 설계 방법을 개략적으로 나타내는 흐름도이다.
도 2는 본 개시의 일 실시예에 따른 집적 회로의 설계를 위한 컴퓨팅 시스템을 나타내는 블록도이다.
도 3은 본 개시의 일 실시예에 따른 LVS 엔진을 나타내는 블록도이다.
도 4a는 본 개시의 일 실시예에 따른 집적 회로 레이아웃을 나타내고, 도 4b는 본 개시의 일 실시예에 따른 집적 회로 스키메틱을 나타낸다.
도 5는 본 개시의 일 실시예에 따른 룰 파일 및 연결관계를 나타낸다.
도 6은 본 개시의 일 실시예에 다른 집적 회로에 대한 LVS 검증 방법을 나타내는 흐름도이다.
도 7a는 본 개시의 일 실시예에 따른 LVS 동작을 나타내고, 도 7b는 본 개시의 비교예에 따른 LVS 동작을 나타낸다.
도 8은 본 개시의 일 실시예에 따른 LVS 코딩 방법을 나타내는 흐름도이다.
도 9는 본 개시의 일 실시예에 따른 LVS 엔진을 나타내는 블록도이다.
도 10은 본 개시의 일 실시예에 따른 LVS 엔진을 나타내는 블록도이다.
도 11a는 본 개시의 일 실시예에 따른 집적 회로의 레이아웃에 포함된 배선 구조의 일 예를 나타내고, 도 11b는 본 개시의 일 실시예에 따른 룰 파일을 나타낸다.
도 12a는 본 개시의 일 실시예에 따른 집적 회로의 레이아웃에 포함된 배선 구조의 다른 예를 나타내고, 도 12b는 본 개시의 일 실시예에 따른 룰 파일을 나타낸다.
도 13은 본 개시의 일 실시예에 따른 룰 파일의 일 예를 나타낸다.
도 14는 본 개시의 일 실시예에 따른 DRC 동작의 일 예를 나타내고, 도 15는 본 개시의 일 실시예에 따른 DRC 동작의 다른 예를 나타낸다.
도 16 내지 도 21은 본 개시의 일부 실시예들에 따른 DRC에 의한 연결관계 검출 동작들의 예들을 나타낸다.
도 22는 본 개시의 일 실시예에 따른 집적 회로의 제조 방법을 개략적으로 나타내는 흐름도이다.
도 23은 본 개시의 일 실시예에 따른 집적 회로의 제조 방법을 구체적으로 나타내는 흐름도이다.
도 24는 본 개시의 일 실시예에 따른 컴퓨터로 독출 가능한 저장 매체를 나타낸다.
1 is a flowchart schematically illustrating a method of designing an integrated circuit according to an embodiment of the present disclosure.
2 is a block diagram illustrating a computing system for designing an integrated circuit according to an embodiment of the present disclosure.
3 is a block diagram illustrating an LVS engine according to an embodiment of the present disclosure.
4A shows an integrated circuit layout according to an embodiment of the present disclosure, and FIG. 4B shows an integrated circuit schematic according to an embodiment of the present disclosure.
5 shows a rule file and a connection relationship according to an embodiment of the present disclosure.
6 is a flowchart illustrating an LVS verification method for an integrated circuit according to an embodiment of the present disclosure.
7A illustrates an LVS operation according to an embodiment of the present disclosure, and FIG. 7B illustrates an LVS operation according to a comparative example of the present disclosure.
8 is a flowchart illustrating an LVS coding method according to an embodiment of the present disclosure.
9 is a block diagram illustrating an LVS engine according to an embodiment of the present disclosure.
10 is a block diagram illustrating an LVS engine according to an embodiment of the present disclosure.
11A shows an example of a wiring structure included in a layout of an integrated circuit according to an embodiment of the present disclosure, and FIG. 11B shows a rule file according to an embodiment of the present disclosure.
12A shows another example of a wiring structure included in a layout of an integrated circuit according to an embodiment of the present disclosure, and FIG. 12B shows a rule file according to an embodiment of the present disclosure.
13 shows an example of a rule file according to an embodiment of the present disclosure.
14 shows an example of a DRC operation according to an embodiment of the present disclosure, and FIG. 15 shows another example of a DRC operation according to an embodiment of the present disclosure.
16 to 21 are diagrams in accordance with some embodiments of the present disclosure; Examples of connection relationship detection operations by DRC are shown.
22 is a flowchart schematically illustrating a method of manufacturing an integrated circuit according to an embodiment of the present disclosure.
23 is a flowchart specifically illustrating a method of manufacturing an integrated circuit according to an embodiment of the present disclosure.
24 illustrates a computer-readable storage medium according to an embodiment of the present disclosure.

이하, 첨부한 도면을 참조하여 본 개시의 실시 예에 대해 상세히 설명한다. Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings.

도 1은 본 개시의 일 실시예에 따른 집적 회로의 설계 방법을 개략적으로 나타내는 흐름도이다.1 is a flowchart schematically illustrating a method of designing an integrated circuit according to an embodiment of the present disclosure.

도 1을 참조하면, 집적 회로의 설계 방법은 집적 회로에 대한 레이아웃을 디자인 및 검증하는 단계로서, 집적 회로를 설계하기 위한 툴을 이용하여 수행될 수 있다. 이때, 집적 회로를 설계하기 위한 툴은 프로세서에 의해 실행되는 복수의 명령어들(instructions)을 포함하는 프로그램 또는 소프트웨어 모듈일 수 있고, 컴퓨터로 읽을 수 있는 저장 매체에 저장될 수 있다. 이에 따라, 집적 회로의 설계 방법을 집적 회로의 설계를 위한 컴퓨터 구현(computer implemented) 방법이라고 지칭할 수 있다.Referring to FIG. 1 , a method of designing an integrated circuit is a step of designing and verifying a layout for the integrated circuit, and may be performed using a tool for designing the integrated circuit. In this case, the tool for designing the integrated circuit may be a program or software module including a plurality of instructions executed by a processor, and may be stored in a computer-readable storage medium. Accordingly, the design method of the integrated circuit may be referred to as a computer implemented method for designing the integrated circuit.

단계 S110에서, 표준 셀 라이브러리를 이용하여, 집적 회로에 대해 RTL(Register Transfer Level)에서 정의된 입력 데이터를 합성함으로써, 게이트 레벨의 넷리스트(netlist)를 생성할 수 있다. 예를 들어, 단계 S110은 합성 툴을 이용하여 프로세서에 의해 수행될 수 있다. 단계 S130에서, 넷리스트에 따라 집적 회로를 정의하는 표준 셀들을 배치 및 라우팅(Placement & Routing, 이하 "P&R")함으로써, 집적 회로의 레이아웃 데이터를 생성한다. 예를 들어, 단계 S130은 P&R 툴을 이용하여 프로세서에 의해 수행될 수 있다. 예를 들어, 레이아웃 데이터는 GDS(Graphic Design System) 또는 GDSII 형식의 데이터일 수 있다.In step S110, a gate-level netlist may be generated by synthesizing input data defined at a Register Transfer Level (RTL) for the integrated circuit using the standard cell library. For example, step S110 may be performed by a processor using a synthesis tool. In step S130, layout data of the integrated circuit is generated by placing and routing standard cells defining the integrated circuit according to the netlist (Placement & Routing, hereinafter referred to as "P&R"). For example, step S130 may be performed by a processor using a P&R tool. For example, the layout data may be data in a graphic design system (GDS) or GDSII format.

단계 S150에서, 집적 회로에 대해 LVS 검증을 수행함으로써 LVS 결과 데이터를 생성한다. 예를 들어, 단계 S150은 LVS 검증 툴을 이용하여 프로세서에 의해 수행될 수 있다. 구체적으로, 레이아웃 데이터에 대해 DRC(Design Rule Check) 동작을 수행함으로써 레이아웃 데이터로부터 폴리곤들의 연결관계를 자동으로 검출하고, 검출된 연결관계를 이용하여 LVS 검증을 수행할 수 있다. 이때, LVS 검증은 집적 회로의 스키메틱 데이터와 집적 회로의 레이아웃 데이터가 일치하는지 여부를 검증하는 동작을 지칭할 수 있다. 일 실시예에 따르면, 스키메틱 데이터 및 레이아웃 데이터는 LVS 검증 툴에 입력 파일로써 제공될 수 있고, LVS 결과 데이터는 LVS 검증 툴에서 출력 파일로써 출력될 수 있다.In step S150, LVS result data is generated by performing LVS verification on the integrated circuit. For example, step S150 may be performed by the processor using the LVS verification tool. Specifically, by performing a Design Rule Check (DRC) operation on the layout data, it is possible to automatically detect a connection relationship between polygons from the layout data, and perform LVS verification using the detected connection relationship. In this case, the LVS verification may refer to an operation of verifying whether the schematic data of the integrated circuit matches the layout data of the integrated circuit. According to an embodiment, the schematic data and the layout data may be provided as input files to the LVS verification tool, and the LVS result data may be output as an output file from the LVS verification tool.

단계 S170에서, 레이아웃 데이터로부터 기생 성분을 추출함으로써 기생 성분 데이터를 생성한다. 예를 들어, 단계 S170은 PEX(Parasitic Extraction) 툴을 이용하여 프로세서에 의해 수행될 수 있다. 예를 들어, 기생 성분 데이터는 SPEF(Standard Parasitic Extraction Format) 파일로써 생성될 수 있다. 일 실시예에 따르면, 레이아웃 데이터는 PEX 툴에 입력 파일로써 제공될 수 있고, SPEF 파일은 P&R 툴에서 출력 파일로써 출력될 수 있다. In step S170, parasitic component data is generated by extracting a parasitic component from the layout data. For example, step S170 may be performed by the processor using a Parasitic Extraction (PEX) tool. For example, the parasitic component data may be generated as a Standard Parasitic Extraction Format (SPEF) file. According to an embodiment, the layout data may be provided as an input file to the PEX tool, and the SPEF file may be output as an output file from the P&R tool.

도 2는 본 개시의 일 실시예에 따른 집적 회로의 설계를 위한 컴퓨팅 시스템(100)을 나타내는 블록도이다.2 is a block diagram illustrating a computing system 100 for designing an integrated circuit according to an embodiment of the present disclosure.

도 2를 참조하면, 집적 회로를 설계하기 위한 컴퓨팅 시스템(이하 '집적 회로 설계 시스템'이라고 지칭함)(100)은 프로세서(110), 메모리(130), 입출력 장치(150), 저장 장치(170) 및 버스(190)를 포함할 수 있다. 집적 회로 설계 시스템(100)은 도 1의 단계 S110 내지 S170을 포함하는 집적 회로 설계 동작을 수행할 수 있다. 일 실시예에서, 집적 회로 설계 시스템(100)은 일체화된 디바이스로 구현될 수 있고, 이에 따라, 집적 회로 설계 장치라고 지칭할 수도 있다. 집적 회로 설계 시스템(100)은 반도체 장치의 집적 회로를 설계하기 위한 전용 장치로 제공될 수도 있지만, 다양한 시뮬레이션 툴이나 설계 툴들을 구동하기 위한 컴퓨터일 수도 있다.Referring to FIG. 2 , a computing system for designing an integrated circuit (hereinafter referred to as an 'integrated circuit design system') 100 includes a processor 110 , a memory 130 , an input/output device 150 , and a storage device 170 . and a bus 190 . The integrated circuit design system 100 may perform an integrated circuit design operation including steps S110 to S170 of FIG. 1 . In an embodiment, the integrated circuit design system 100 may be implemented as an integrated device, and thus may be referred to as an integrated circuit design apparatus. The integrated circuit design system 100 may be provided as a dedicated device for designing an integrated circuit of a semiconductor device, or may be a computer for driving various simulation tools or design tools.

프로세서(110)는 집적 회로를 설계하기 위한 다양한 동작 중 적어도 하나를 수행하는 명령어들을 실행하도록 구성될 수 있다. 프로세서(110)는 버스(190)를 통해 메모리(130), 입출력 장치(150) 및 저장 장치(170)와 통신을 수행할 수 있다. 프로세서(110)는 메모리(130)에 로딩된 합성 모듈(130a), P&R 모듈(130b), LVS 모듈(130c), 및 PEX 모듈(130d)을 구동함으로써, 집적 회로의 설계 동작을 실행할 수 있다.The processor 110 may be configured to execute instructions that perform at least one of various operations for designing an integrated circuit. The processor 110 may communicate with the memory 130 , the input/output device 150 , and the storage device 170 through the bus 190 . The processor 110 may execute an integrated circuit design operation by driving the synthesis module 130a, the P&R module 130b, the LVS module 130c, and the PEX module 130d loaded into the memory 130 .

메모리(130)는 합성 모듈(130a), P&R 모듈(130b), LVS 모듈(130c), 및 PEX 모듈(130d)을 저장할 수 있다. 합성 모듈(130a), P&R 모듈(130b), LVS 모듈(130c), 및 PEX 모듈(130d)은 저장 장치(170)로부터 메모리(130)로 로딩될 수 있다. 합성 모듈(130a)은 예를 들어, 도 1의 단계 S110에 따른 논리 합성 동작을 수행하기 위한 복수의 명령어들을 포함하는 프로그램일 수 있다. P&R 모듈(130b)은 예를 들어, 도 1의 단계 S130에 따른 P&R 동작을 수행하기 위한 복수의 명령어들을 포함하는 프로그램일 수 있다. LVS 모듈(130c)은 예를 들어, 도 1의 단계 S150에 따른 LVS 검증 동작을 수행하기 위한 복수의 명령어들을 포함하는 프로그램일 수 있다. PEX 모듈(130d)은 예를 들어, 도 1의 단계 S170에 따른 기생 추출 동작을 수행하기 위한 복수의 명령어들을 포함하는 프로그램일 수 있다. 메모리(130)는 SRAM이나 DRAM과 같은 휘발성 메모리이거나, PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등의 비휘발성 메모리일 수 있다.The memory 130 may store the synthesis module 130a, the P&R module 130b, the LVS module 130c, and the PEX module 130d. The synthesis module 130a , the P&R module 130b , the LVS module 130c , and the PEX module 130d may be loaded into the memory 130 from the storage device 170 . The synthesis module 130a may be, for example, a program including a plurality of instructions for performing a logic synthesis operation according to step S110 of FIG. 1 . The P&R module 130b may be, for example, a program including a plurality of instructions for performing the P&R operation according to step S130 of FIG. 1 . The LVS module 130c may be, for example, a program including a plurality of instructions for performing the LVS verification operation according to step S150 of FIG. 1 . The PEX module 130d may be, for example, a program including a plurality of instructions for performing a parasitic extraction operation according to step S170 of FIG. 1 . The memory 130 may be a volatile memory such as SRAM or DRAM, or a non-volatile memory such as PRAM, MRAM, ReRAM, FRAM, or NOR flash memory.

입출력 장치(150)는 사용자 인터페이스 장치들로부터의 사용자 입력 및 출력을 제어할 수 있다. 예를 들어, 입출력 장치(150)는 키보드, 마우스, 터치패드 등과 같은 입력 장치를 구비하여, 집적 회로를 정의하는 입력 데이터 등을 입력 받을 수 있다. 예를 들어, 입출력 장치(150)는 디스플레이, 스피커 등과 같은 출력 장치를 구비하여, 배치 결과, 라우팅 결과, DRC 결과, LVS 결과, 또는 PEX 결과 등을 표시할 수 있다. 저장 장치(170)는 합성 모듈(130a), P&R 모듈(130b), LVS 모듈(130c), 및 PEX 모듈(130d)과 관련된 각종 데이터를 저장할 수 있다. 저장 장치(170)는 메모리 카드(MMC, eMMC, SD, MicroSD 등), SSD(solid state drive), HDD(hard disk drive) 등을 포함할 수 있다. The input/output device 150 may control user input and output from user interface devices. For example, the input/output device 150 may include input devices such as a keyboard, a mouse, and a touch pad to receive input data defining an integrated circuit. For example, the input/output device 150 may include an output device such as a display and a speaker, and may display an arrangement result, a routing result, a DRC result, an LVS result, or a PEX result. The storage device 170 may store various data related to the synthesis module 130a, the P&R module 130b, the LVS module 130c, and the PEX module 130d. The storage device 170 may include a memory card (MMC, eMMC, SD, MicroSD, etc.), a solid state drive (SSD), a hard disk drive (HDD), or the like.

도 3은 본 개시의 일 실시예에 따른 LVS 엔진(30)을 나타내는 블록도이다.3 is a block diagram illustrating an LVS engine 30 according to an embodiment of the present disclosure.

도 3을 참조하면, LVS 엔진(30)은 집적 회로에 대한 LVS 검증을 수행하는 프로그램일 수 있고, 예를 들어, 도 2의 메모리(130)에 저장된 LVS 모듈(130c)의 일 예에 대응할 수 있다. LVS 엔진(30)은 DRC 검증기(31) 및 LVS 검증기(32)와 같은 복수의 프로시저들을 포함할 수 있다. 여기서, 프로시저는 특정 태스크를 수행하기 위한 일련의 명령어들을 지칭할 수 있고, 함수, 루틴(routine), 서브루틴(subroutine), 서브프로그램 등으로도 지칭될 수 있다. 본 명세서에서, 프로세서(예를 들어, 도 2의 110)가 메모리(예를 들어, 도 2의 130)에 저장된 프로시저를 실행함으로써 동작을 수행하는 것은, 프로시저가 그러한 동작을 수행하는 것으로도 표현된다.Referring to FIG. 3 , the LVS engine 30 may be a program that performs LVS verification for an integrated circuit, and may correspond to, for example, an example of the LVS module 130c stored in the memory 130 of FIG. 2 . have. The LVS engine 30 may include a plurality of procedures, such as a DRC verifier 31 and an LVS verifier 32 . Here, a procedure may refer to a series of instructions for performing a specific task, and may also be referred to as a function, a routine, a subroutine, a subprogram, and the like. In the present specification, when the processor (eg, 110 in FIG. 2 ) performs an operation by executing a procedure stored in the memory (eg, 130 in FIG. 2 ), the procedure is also referred to as performing such an operation. is expressed

LVS 엔진(30)은 레이아웃 데이터(D10) 및 스키메틱 데이터(D20)를 수신할 수 있다. 레이아웃 데이터(D10)는 집적 회로의 레이아웃에 관한 토폴로지컬(topological) 데이터일 수 있고, 복수의 폴리곤들을 포함할 수 있다. 반도체 제조 공정을 통해서, 집적 회로는 복수의 레이어들이 적층된 구조를 가질 수 있고, 집적 회로의 레이아웃 데이터(D10)는 복수의 레이어들의 토폴로지컬 정보를 포함할 수 있다. 복수의 레이어들은 전도성 레이어 및 절연 레이어 등을 포함할 수 있고, 집적 회로의 소자는 하나 이상의 레이어에 형성된 패턴으로서 구성될 수 있다. 레이아웃 데이터(D10)에서 복수의 레이어들 및 복수의 패턴들은 폴리곤들로 표시될 수 있다. 일 실시예에서, 레이아웃 데이터(D10)는 도 1의 단계 S130의 P&R 동작이 수행되는 P&R 툴의 출력 데이터일 수 있으나, 본 발명은 이에 한정되지 않는다.The LVS engine 30 may receive the layout data D10 and the schematic data D20 . The layout data D10 may be topological data related to the layout of the integrated circuit, and may include a plurality of polygons. Through a semiconductor manufacturing process, the integrated circuit may have a structure in which a plurality of layers are stacked, and the layout data D10 of the integrated circuit may include topological information of the plurality of layers. The plurality of layers may include a conductive layer and an insulating layer, and the like, and the device of the integrated circuit may be configured as a pattern formed on one or more layers. In the layout data D10, a plurality of layers and a plurality of patterns may be displayed as polygons. In an embodiment, the layout data D10 may be output data of a P&R tool in which the P&R operation of step S130 of FIG. 1 is performed, but the present invention is not limited thereto.

스키메틱 데이터(D20)는 트랜지스터, 저항, 다이오드 등과 같은 소자들을 포함할 수 있고, 소자들 사이의 연결관계를 정의할 수 있다. 구체적으로, 스키메틱 데이터(D20)에서 집적 회로의 소자는 대응하는 심볼(symbol)의 인스턴스(instance)로서 정의될 수 있고, 인스턴스들 각각은 와이어를 통해서 연결될 수 있다. 심볼은 동일한 기능을 수행하는 소자를 정의하는 것으로서, 예컨대 NMOS 트랜지스터, PMOS 트랜지스터, 다이오드, 저항 등의 소자들 각각은 고유한 심볼로서 정의될 수 있다. 예를 들어, 스키메틱 데이터(D20)는 트랜지스터 레벨의 넷리스트, 게이트 레벨의 넷리스트, 셀 레벨의 넷리스트 또는 IP(Intellectual Property) 레벨의 넷리스트 등을 포함할 수 있다. 일 실시예에서, 스키메틱 데이터(D20)는 도 1의 단계 S110의 합성 동작이 수행되는 합성 툴의 출력 데이터일 수 있으나, 본 발명은 이에 한정되지 않는다. 이하에서는, 도 4a 및 도 4b를 참조하여 레이아웃 데이터(D10) 및 스키메틱 데이터(D20)에 대해 상세하게 설명하기로 한다.The schematic data D20 may include devices such as transistors, resistors, and diodes, and may define a connection relationship between the devices. Specifically, in the schematic data D20 , an element of the integrated circuit may be defined as an instance of a corresponding symbol, and each of the instances may be connected through a wire. The symbol defines a device performing the same function, and each of the devices such as an NMOS transistor, a PMOS transistor, a diode, and a resistor may be defined as a unique symbol. For example, the schematic data D20 may include a transistor level netlist, a gate level netlist, a cell level netlist or an IP (Intellectual Property) level netlist, and the like. In an embodiment, the schematic data D20 may be output data of a synthesis tool on which the synthesis operation of step S110 of FIG. 1 is performed, but the present invention is not limited thereto. Hereinafter, the layout data D10 and the schematic data D20 will be described in detail with reference to FIGS. 4A and 4B .

도 4a는 본 개시의 일 실시예에 따른 집적 회로 레이아웃(41)을 나타내고, 도 4b는 본 개시의 일 실시예에 따른 집적 회로 스키메틱(42)을 나타낸다 낸다. 4A shows an integrated circuit layout 41 according to an embodiment of the present disclosure, and FIG. 4B shows an integrated circuit schematic 42 according to an embodiment of the present disclosure.

도 3, 도 4a 및 도 4b를 함께 참조하면, 집적 회로 레이아웃(41)은 레이아웃 데이터(D10)에 의해 정의될 수 있다. 집적 회로 레이아웃(41)은 각각 폴리곤으로 표시되는, 액티브 영역(RX), 게이트 라인(GL), 제1 컨택(CA_N), 제2 컨택(CA_P), 비아(V0) 및 제1 메탈 레이어(M1)를 포함할 수 있다. 집적 회로 스키메틱(42)은 스키메틱 데이터(D20)에 의해 정의될 수 있다. 집적 회로 스키메틱(42)은 PMOS 트랜지스터(TR1)와 NMOS 트랜지스터(TR2)를 포함하는 CMOS 트랜지스터를 포함할 수 있다. 3, 4A, and 4B together, the integrated circuit layout 41 may be defined by layout data D10. The integrated circuit layout 41 has an active region RX, a gate line GL, a first contact CA_N, a second contact CA_P, a via V0, and a first metal layer M1, each represented by polygons. ) may be included. The integrated circuit schematic 42 may be defined by schematic data D20 . The integrated circuit schematic 42 may include a CMOS transistor including a PMOS transistor TR1 and an NMOS transistor TR2.

집적 회로 레이아웃(41)을 정의하는 레이아웃 데이터(D10)는 집적 회로 스키메틱(42)을 정의하는 스키메틱 데이터(D20)에 따라 생성될 수 있다. LVS 엔진(30)은 스키메틱 데이터(D20)에 포함된 인스턴스들, 예를 들어, PMOS 트랜지스터(TR1) 및 NMOS 트랜지스터(TR2)에 대응하는 소자들이, 레이아웃 데이터(D10)에 존재하는지 여부를 검증할 수 있다. 또한, LVS 엔진(30)은 대응하는 스키메틱 데이터(D20)의 인스턴스와 레이아웃 데이터(D10)의 소자가 동일한 파라미터, 예를 들어, 길이 또는 너비를 갖는지 여부를 검증할 수 있다. 이하에서는, LVS 엔진(30)의 구체적인 동작을 설명하기로 한다.The layout data D10 defining the integrated circuit layout 41 may be generated according to the schematic data D20 defining the integrated circuit schematic 42 . The LVS engine 30 verifies whether elements corresponding to instances included in the schematic data D20, for example, the PMOS transistor TR1 and the NMOS transistor TR2 exist in the layout data D10. can do. Also, the LVS engine 30 may verify whether the corresponding instance of the schematic data D20 and the element of the layout data D10 have the same parameter, for example, a length or a width. Hereinafter, a detailed operation of the LVS engine 30 will be described.

DRC 검증기(31)는 룰 파일(D30)을 기초로 레이아웃 데이터(D10)에 대해 DRC를 수행함으로써 DRC 결과 데이터(D40)를 생성할 수 있다. 여기서, 룰 파일(D30)은 집적 회로의 레이아웃에서 복수의 레이어들로서 소자를 정의하는 LVS 규칙 파일(LVS rule file)(또는 LVS rule deck)을 지칭할 수 있다. 예를 들어, 룰 파일(D30)은 SVRF(Standard Verification Rule Format) 또는 TVF(TCL Verification Format)에 따라 작성된 일련의 코드들을 포함할 수 있다. The DRC verifier 31 may generate the DRC result data D40 by performing DRC on the layout data D10 based on the rule file D30. Here, the rule file D30 may refer to an LVS rule file (or LVS rule deck) defining devices as a plurality of layers in the layout of the integrated circuit. For example, the rule file D30 may include a series of codes written according to a Standard Verification Rule Format (SVRF) or a TCL Verification Format (TVF).

일 실시예에서, 룰 파일(D30)은 DRC 구문(DRC Syntax)(DS)를 포함할 수 있고, DRC 검증기(31)는 룰 파일(D30)에 포함된 DRC 구문(DS)에 따라 레이아웃 데이터(D10)에 대해 DRC를 수행함으로써, 폴리곤들의 연결관계를 자동으로 검출할 수 있다. 이때, DRC 결과 데이터(D40)는 검출된 연결관계를 포함할 수 있다. 도 3에서는 DRC 검증기(31)가 LVS 엔진(30)에 포함하는 것으로 도시되었으나, 본 발명은 이에 한정되지 않는다. 일부 실시예들에서, DRC 검증기(31)는 LVS 엔진(30)에 포함되지 않고, 별도의 DRC 엔진으로 구현될 수도 있다. 이하에서는, 도 5를 참조하여 DRC 검증기(31)의 동작을 상세하게 설명하기로 한다.In one embodiment, the rule file D30 may include a DRC syntax (DS), and the DRC verifier 31 may include layout data (DS) according to the DRC syntax included in the rule file D30. By performing DRC on D10), it is possible to automatically detect the connection relationship between polygons. In this case, the DRC result data D40 may include the detected connection relationship. In FIG. 3 , the DRC verifier 31 is illustrated as being included in the LVS engine 30 , but the present invention is not limited thereto. In some embodiments, the DRC verifier 31 is not included in the LVS engine 30 and may be implemented as a separate DRC engine. Hereinafter, the operation of the DRC verifier 31 will be described in detail with reference to FIG. 5 .

도 5는 본 개시의 일 실시예에 따른 룰 파일(51) 및 연결관계(52)를 나타낸다.5 shows a rule file 51 and a connection relationship 52 according to an embodiment of the present disclosure.

도 3 내지 5를 함께 참조하면, 룰 파일(51)은 제1 내지 제5 DRC 구문들(511 내지 515)을 포함할 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 룰 파일(51)은 제1 내지 제5 DRC 구문들(511 내지 515) 중 적어도 하나를 포함하거나, 제1 내지 제5 DRC 구문들(511 내지 515) 이외의 다른 DRC 구문들을 더 포함할 수 있다. 일 실시예에서, 제1 내지 제5 DRC 구문들(511 내지 515)은 루프 알고리즘으로 구현되는 DRC 루프 구문들일 수 있고, 이에 따라, 레이아웃 데이터(D10)에 포함된 복수의 레이어들 및 각 레이어에 포함된 복수의 폴리곤들 각각에 대해 DRC를 지시할 수 있다. 이하에서는, 제1 내지 제5 DRC 구문들(511 내지 515)에 대해 설명하기로 한다.3 to 5 , the rule file 51 may include first to fifth DRC phrases 511 to 515 . However, the present invention is not limited thereto, and the rule file 51 includes at least one of the first to fifth DRC phrases 511 to 515 or other than the first to fifth DRC phrases 511 to 515 . may further include other DRC constructs of In an embodiment, the first to fifth DRC constructs 511 to 515 may be DRC loop constructs implemented as a loop algorithm, and accordingly, a plurality of layers included in the layout data D10 and each layer. A DRC may be indicated for each of a plurality of polygons included. Hereinafter, first to fifth DRC syntaxes 511 to 515 will be described.

제1 DRC 구문(511)은 레이아웃 데이터(D10)에서 폴리곤들의 측면(lateral) 연결관계 또는 수직(vertical) 연결관계를 검출하기 위해, 두 개의 폴리곤들의 터치 여부를 체크하도록 구성될 수 있다. 예를 들어, 제1 DRC 구문(511)은 "…{@ A INTERACT B}" 또는 "…{@ A TOUCH B}"로 생성될 수 있다. 이때, A는 제1 폴리곤을 나타내고, B는 제2 폴리곤을 나타낼 수 있다. 일 실시예에서, 레이아웃 데이터(D10)는 서로 다른 레이어들에 각각 배치된 액티브 영역(RX) 및 제1 컨택(CA_N)을 포함할 수 있고, 제1 DRC 구문(511)은 액티브 영역(RX)과 제1 컨택(CA_N)의 터치 여부의 체크를 지시할 수 있다(예를 들어, "…{@ RX INTERACT CA_N}"). 일 실시예에서, 레이아웃 데이터(D10)는 동일 레이어에 포함된 제1 및 제2 컨택들(CA_N, CA_P)을 포함할 수 있고, 제1 DRC 구문(511)은 제1 컨택(CA_N)과 제2 컨택(CA_P)의 터치 여부의 체크를 지시할 수 있다(예를 들어, "…{@ CA_N INTERACT CA_P}"). The first DRC syntax 511 may be configured to check whether two polygons are touched in order to detect a lateral connection relationship or a vertical connection relationship between polygons in the layout data D10. For example, the first DRC syntax 511 may be generated as “…{@ A INTERACT B}” or “…{@ A TOUCH B}”. In this case, A may represent a first polygon and B may represent a second polygon. In an embodiment, the layout data D10 may include the active area RX and the first contact CA_N respectively disposed in different layers, and the first DRC syntax 511 may include the active area RX. and a check of whether the first contact CA_N is touched (eg, “…{@ RX INTERACT CA_N}”). In an embodiment, the layout data D10 may include first and second contacts CA_N and CA_P included in the same layer, and the first DRC syntax 511 includes the first contact CA_N and the second contact CA_N. A check of whether the second contact CA_P has been touched may be indicated (eg, “…{@ CA_N INTERACT CA_P}”).

제2 DRC 구문(512)은 레이아웃 데이터(D10)에서 폴리곤들의 수직 연결관계를 검출하기 위해, 적어도 세 개의 폴리곤들의 터치 여부를 체크하도록 구성될 수 있다. 예를 들어, 제2 DRC 구문(512)은 "…{@ (A INTERACT B) INTERACT C}" 또는 "…{@ (A TOUCH B) TOUCH C}"로 생성될 수 있다. 이때, A, B, C는 서로 다른 레이어들에 배치된 제1 내지 제3 폴리곤들을 각각 나타낼 수 있다. 일 실시예에서, 레이아웃 데이터(D10)는 서로 다른 레이어들에 각각 배치된 제1 컨택(CA_N), 비아(V0) 및 제1 메탈 레이어(M1)를 포함할 수 있고, 제2 DRC 구문(512)은 제1 컨택(CA_N), 비아(V0) 및 제1 메탈 레이어(M1)의 터치 여부의 체크를 지시할 수 있다(예를 들어, "…{@ (M1 INTERACT CA_N) INTERACT V0}"). The second DRC syntax 512 may be configured to check whether at least three polygons are touched in order to detect a vertical connection relationship between polygons in the layout data D10 . For example, the second DRC syntax 512 may be generated as “…{@ (A INTERACT B) INTERACT C}” or “…{@ (A TOUCH B) TOUCH C}”. In this case, A, B, and C may represent first to third polygons disposed on different layers, respectively. In an embodiment, the layout data D10 may include a first contact CA_N, a via V0, and a first metal layer M1 disposed on different layers, respectively, and a second DRC syntax 512 . ) may indicate checking whether the first contact CA_N, the via V0, and the first metal layer M1 are touched (eg, “…{@ (M1 INTERACT CA_N) INTERACT V0}”) .

제3 DRC 구문(513)은 레이아웃 데이터(D10)에서 폴리곤들의 오버랩 여부를 체크하도록 구성될 수 있다. 예를 들어, 제3 DRC 구문(513)은 "…{@ A AND B}"로 생성될 수 있다. 이때, A, B는 동일 레이어에 배치된 제1 및 제2 폴리곤들을 각각 나타낼 수 있다. 일 실시예에서, 레이아웃 데이터(D10)는 제1 레이어를 포함할 수 있고, 제3 DRC 구문(513)은 제1 레이어에 포함된 제1 및 제2 폴리곤들(A, B)의 오버랩 여부의 체크를 지시할 수 있다. 제3 구문(513)에 대해 도 18을 참조하여 후술하기로 한다.The third DRC syntax 513 may be configured to check whether polygons overlap in the layout data D10 . For example, the third DRC syntax 513 may be generated as “…{@ A AND B}”. In this case, A and B may represent first and second polygons disposed on the same layer, respectively. In an embodiment, the layout data D10 may include a first layer, and the third DRC syntax 513 determines whether the first and second polygons A and B included in the first layer overlap. You can order a check. The third syntax 513 will be described later with reference to FIG. 18 .

제4 DRC 구문(514)은 레이아웃 데이터(D10)에서 파생(derived) 레이어로 정의되지 않은, 즉, 누락된(missing) 폴리곤을 체크하도록 구성될 수 있다. 예를 들어, 제4 DRC 구문(514)은 "…{@ M1 NOT A}"로 생성될 수 있다. 이때, M1은 오리지널 레이어를 나타내고, A는 오리지널 레이어로부터 파생된 폴리곤, 다시 말해, 파생 레이어를 나타낼 수 있다. 일 실시예에서, 레이아웃 데이터(D10)는 적어도 하나의 폴리곤으로 구분되는 제1 레이어를 포함하고, DRC 구문(514)은 제1 레이어 상에서 적어도 하나의 폴리곤으로 정의되지 않은 폴리곤의 존재 여부의 체크를 지시할 수 있다. 제4 구문(514)에 대해 도 19를 참조하여 후술하기로 한다.The fourth DRC syntax 514 may be configured to check a polygon that is not defined as a derived layer in the layout data D10 , that is, a missing polygon. For example, the fourth DRC syntax 514 may be generated as “…{@ M1 NOT A}”. In this case, M1 may indicate an original layer, and A may indicate a polygon derived from the original layer, that is, a derived layer. In one embodiment, the layout data D10 includes a first layer divided by at least one polygon, and the DRC syntax 514 checks whether there is a polygon that is not defined as at least one polygon on the first layer. can direct The fourth syntax 514 will be described later with reference to FIG. 19 .

제5 DRC 구문(515)은 레이아웃 데이터(D10)에서 플로팅 넷(floating net)을 체크하도록 구성될 수 있다. 예를 들어, 제5 구문(515)은 "…{@ ((PORT1 INTERACT A) INTERACT B) INTERACT C}"로 생성될 수 있다. 이때, PORT1은 특정 포트에 대응하는 폴리곤을 나타내고, A 내지 C는 서로 다른 레이어들에 배치된 제1 내지 제3 폴리곤들을 각각 나타낼 수 있다. 제5 구문(515)에 대해 도 20a 및 도 20b를 참조하여 후술하기로 한다.The fifth DRC syntax 515 may be configured to check a floating net in the layout data D10 . For example, the fifth syntax 515 may be generated as “…{@ ((PORT1 INTERACT A) INTERACT B) INTERACT C}”. In this case, PORT1 may indicate a polygon corresponding to a specific port, and A to C may indicate first to third polygons disposed on different layers, respectively. The fifth syntax 515 will be described later with reference to FIGS. 20A and 20B .

상술한 바와 같이, 제1 내지 제5 DRC 구문들(515)과 같은 다양한 DRC 구문들을 이용하여 연결관계 미싱(missing), 연결관계 오버랩핑, 연결관계 플로팅 등을 검출할 수 있다. 일 실시예에 따르면, 제1 내지 제5 DRC 구문들(515)과 같은 다양한 DRC 구문들은 DRC 동작 시 레이아웃 데이터에 포함된 모든 연결관계를 검출할 수 있도록 코딩의 루프 방식을 통해 구현할 수 있다.As described above, a missing connection relationship, overlapping connection relationship, floating connection relationship, etc. may be detected using various DRC syntaxes such as the first to fifth DRC syntaxes 515 . According to an embodiment, various DRC syntaxes such as the first to fifth DRC syntaxes 515 may be implemented through a coding loop method to detect all connections included in layout data during a DRC operation.

DRC 검증기(31)는 룰 파일(51)을 기초로 레이아웃 데이터(D10)로부터 제1 내지 제5 연결관계들(521 내지 525)를 자동으로 검출함으로써 DRC 결과 데이터(52)를 생성할 수 있다. 일 실시예에서, DRC 검증기(31)는 룰 파일(51)에 포함된 제1 DRS 구문(511)에 따라 레이아웃 데이터(D10)에 대해 DRC를 수행함으로써, 제1 컨택(CA_N)과 제2 컨택(CA_P)의 제1 연결관계(521), 액티브 영역(RX)과 제1 컨택(CA_N)의 제2 연결관계(522), 및 액티브 영역(RX)과 제2 컨택(CA_P)의 제3 연결관계(523)를 검출할 수 있다. The DRC verifier 31 may generate the DRC result data 52 by automatically detecting the first to fifth connection relationships 521 to 525 from the layout data D10 based on the rule file 51 . In one embodiment, the DRC verifier 31 performs the DRC on the layout data D10 according to the first DRS syntax 511 included in the rule file 51 , whereby the first contact CA_N and the second contact A first connection relationship 521 of (CA_P), a second connection relationship 522 between the active area RX and the first contact CA_N, and a third connection between the active area RX and the second contact CA_P A relationship 523 may be detected.

또한, 일 실시예에서, DRC 검증기(31)는 룰 파일(51)에 포함된 제2 DRS 구문(512)에 따라 레이아웃 데이터(D10)에 대해 DRC를 수행함으로써, 제1 메탈 레이어(M1), 제1 컨택(CA_N) 및 비아(V0)의 제4 연결관계(524), 및 제1 메탈 레이어(M1), 제2 컨택(CA_P) 및 비아(V0)의 제5 연결관계(525)를 검출할 수 있다. 이와 같이, DRC 결과 데이터(52)에 포함된 연결관계 정보는 레이아웃 데이터(D10)에서 실제로 연결된 폴리곤들의 필수적인(essential) 연결관계들인, 제1 내지 제5 연결관계들(521 내지 525)을 포함할 수 있다.In addition, in one embodiment, the DRC verifier 31 performs DRC on the layout data D10 according to the second DRS syntax 512 included in the rule file 51, whereby the first metal layer M1, A fourth connection relationship 524 between the first contact CA_N and the via V0 and a fifth connection relationship 525 between the first metal layer M1, the second contact CA_P, and the via V0 are detected. can do. As such, the connection relationship information included in the DRC result data 52 may include first to fifth connection relationships 521 to 525, which are essential connection relationships of polygons actually connected in the layout data D10. can

일 실시예에서, DRC 검증기(31)는 DRC 구문에 따라 레이아웃 데이터(D10)에 대해 DRC를 수행하므로, 레이아웃 데이터(D10)에서 DRC 구문에 해당하는 연결관계가 검출되지 않으면, 더 이상 검출을 진행하지 않고 해당 DRC 구문을 무시할 수 있다. 예를 들어, "…{@ A AND B}"라는 DRC 구문의 경우, DRC 검증기(31)는 레이아웃 데이터(D10)에 폴리곤들(A, B)이 겹친 부분이 없으면 더 이상 검출을 진행하지 않을 수 있다. 그러므로, DRC 구문들의 개수가 매우 많더라도 LVS 런타임(runtime)이 증가되지 않을 수 있다. 또한, 일 실시예에서, DRC 검증기(31)는 DRC 루프 구문에 따라 레이아웃 데이터(D10)에 대해 DRC를 수행하므로, 사람이 손으로 기술하고 확인하던 작업이 생략될 수 있으므로 집적 회로의 개발 기간이 단축될 수 있고, 파생 레이어로 정의되지 않은, 누락된 폴리곤을 검출할 수 있다.In one embodiment, since the DRC verifier 31 performs DRC on the layout data D10 according to the DRC syntax, if a connection relationship corresponding to the DRC syntax is not detected in the layout data D10, detection is further performed. You can ignore the corresponding DRC statement without For example, in the case of the DRC syntax of “…{@ A AND B}”, the DRC verifier 31 does not proceed with detection if there is no overlapping portion of the polygons A and B in the layout data D10. can Therefore, even if the number of DRC statements is very large, the LVS runtime may not be increased. In addition, in one embodiment, since the DRC verifier 31 performs DRC on the layout data D10 according to the DRC loop syntax, the task of describing and verifying by hand can be omitted, thereby reducing the development period of the integrated circuit. It can be shortened, and it is possible to detect missing polygons that are not defined as a derived layer.

다시 도 3을 참조하면, LVS 검증기(32)는 룰 파일(D30) 및 DRC 결과 데이터(D40)에 기초하여 레이아웃 데이터(D10)와 스키메틱 데이터(D20)를 비교하는 LVS 검증을 수행함으로써 LVS 결과 데이터(D50)를 생성할 수 있다. 구체적으로, LVS 검증기(32)는 룰 파일(D30) 및 DRC 결과 데이터(D40)에 기초하여 레이아웃 데이터(D10)로부터 레이아웃 넷리스트를 추출할 수 있다. 또한, LVS 검증기(32)는 스키메틱 데이터(D20)를 컴파일(compile)함으로써 소스 넷리스트를 생성할 수 있다. 이어서, LVS 검증기(32)는 레이아웃 넷리스트 및 소스 넷리스트를 비교함으로써 LVS 결과 데이터(D50)를 생성할 수 있다. LVS 결과 데이터(D50)는 레이아웃 데이터(D10)와 스키메틱 데이터(D20)의 일치 및 불일치 여부뿐만 아니라, 불일치하는 부분에 대한 정보를 포함할 수 있다. 설계자는 LVS 결과 데이터(D50)를 참조하여 레이아웃 데이터(D10) 또는 스키메틱 데이터(D20)를 수정할 수 있다.Referring back to FIG. 3 , the LVS verifier 32 performs LVS verification that compares the layout data D10 with the schematic data D20 based on the rule file D30 and the DRC result data D40 to obtain the LVS result. Data D50 may be generated. Specifically, the LVS verifier 32 may extract a layout netlist from the layout data D10 based on the rule file D30 and the DRC result data D40. In addition, the LVS verifier 32 may generate the source netlist by compiling the schematic data D20. The LVS verifier 32 may then generate LVS result data D50 by comparing the layout netlist and the source netlist. The LVS result data D50 may include not only whether the layout data D10 and the schematic data D20 match or not match, but also information about a non-matching part. The designer may modify the layout data D10 or the schematic data D20 by referring to the LVS result data D50.

도 6은 본 개시의 일 실시예에 다른 집적 회로에 대한 LVS 검증 방법을 나타내는 흐름도이다.6 is a flowchart illustrating an LVS verification method for an integrated circuit according to an embodiment of the present disclosure.

도 6을 참조하면, 본 실시예에 따른 LVS 검증 방법은 예를 들어, 도 1의 단계 S150의 일 구현 예에 대응할 수 있다. 따라서, 도 1 내지 도 5를 참조하여 상술된 내용은 본 실시예에도 적용될 수 있으며, 중복된 설명은 생략하기로 한다. LVS 검증 방법은 단계 S210, S230 및 S250을 포함할 수 있고, 단계 S210, S230 및 S250은 각각 프로세서(예를 들어, 도 2의 110)에 의해 수행될 수 있다.Referring to FIG. 6 , the LVS verification method according to the present embodiment may correspond to, for example, an implementation example of step S150 of FIG. 1 . Accordingly, the contents described above with reference to FIGS. 1 to 5 may also be applied to the present embodiment, and a redundant description will be omitted. The LVS verification method may include steps S210, S230, and S250, and steps S210, S230, and S250 may be performed by a processor (eg, 110 of FIG. 2 ), respectively.

단계 S210에서, DRC 구문을 포함하는 룰 파일을 기초로 레이아웃 데이터로부터 폴리곤들의 연결관계를 검출한다. 일 실시예에서, 룰 파일은 레이아웃 데이터에 포함된 복수의 레이어들, 및 복수의 레이어들 각각에 포함되는 복수의 폴리곤들에 대한 정의를 더 포함할 수 있다. 일 실시예에서, DRC 구문은 루프 알고리즘으로 구현된 DRC 루프 구문일 수 있다. DRC 루프 구문에 따라 레이아웃 데이터에 포함된 복수의 레이어들 각각에 대하여, 그리고, 각 레이어에 포함된 복수의 폴리곤들 각각에 대하여 연결관계를 검출할 수 있다. 예를 들어, DRC 구문은 'foreach 루프'를 이용하여 구현될 수 있다. In step S210, a connection relationship between polygons is detected from the layout data based on the rule file including the DRC syntax. In an embodiment, the rule file may further include definitions for a plurality of layers included in the layout data and a plurality of polygons included in each of the plurality of layers. In one embodiment, the DRC syntax may be a DRC loop syntax implemented as a loop algorithm. According to the DRC loop syntax, a connection relationship may be detected for each of a plurality of layers included in the layout data and for each of a plurality of polygons included in each layer. For example, the DRC syntax may be implemented using a 'foreach loop'.

단계 S230에서, 연결관계를 이용하여 레이아웃 데이터로부터 레이아웃 넷리스트를 추출한다. 단계 S250에서, 집적 회로의 스키메틱 데이터와 레이아웃 넷리스트를 비교함으로써 LVS 결과 데이터를 생성하도록 집적 회로에 대한 LVS 검증을 수행한다. 일 실시예에서, 스키메틱 데이터로부터 소스 넷리스트를 컴파일하는 단계를 더 포함할 수 있고, LVS 검증은 소스 넷리스트와 레이아웃 넷리스트를 비교함으로써 수행될 수 있다. 예를 들어, LVS 검증 단계는 루프 알고리즘을 이용하여 폴리곤들의 연결관계, 기생 성분에 대한 더블 카운팅, 쇼트/오픈 체크 등을 수행할 수 있다.In step S230, the layout netlist is extracted from the layout data using the linkage relationship. In step S250, LVS verification is performed on the integrated circuit to generate LVS result data by comparing the layout netlist with the schematic data of the integrated circuit. In one embodiment, the method may further comprise compiling the source netlist from the schematic data, and the LVS verification may be performed by comparing the source netlist and the layout netlist. For example, in the LVS verification step, a connection relationship between polygons, double counting on parasitic components, short/open check, etc. may be performed using a loop algorithm.

도 7a는 본 개시의 일 실시예에 따른 LVS 동작을 나타내고, 도 7b는 본 개시의 비교예에 따른 LVS 동작을 나타낸다.7A illustrates an LVS operation according to an embodiment of the present disclosure, and FIG. 7B illustrates an LVS operation according to a comparative example of the present disclosure.

도 7a를 참조하면, 일 실시예에 따르면, 룰 파일을 기초로 레이아웃 데이터(71)에 대해 DRC를 수행함으로써 폴리곤들의 연결관계(72)를 자동으로 검출하고, 검출된 연결관계(72)를 이용하여 LVS 검증을 수행함으로써 LVS 검증이 완료된 레이아웃 데이터(73)를 획득할 수 있다. 레이아웃 데이터(71)는 제1 내지 제4 폴리곤들(711 내지 714)를 포함하고, 레이아웃 데이터(71)에서 제1 및 제4 폴리곤들(711, 714)은 제3 폴리곤(713)을 통해 수직으로 연결되고, 제1 및 제2 폴리곤들(711, 712)은 수직으로 연결될 수 있다. 이에 따라, 연결관계(72)는 레이아웃 데이터(71)에서 실제로 연결된 폴리곤들에 대한 두 개의 연결관계들을 포함할 수 있다.Referring to FIG. 7A , according to an embodiment, the connection relationship 72 of polygons is automatically detected by performing DRC on the layout data 71 based on the rule file, and the detected connection relationship 72 is used. Thus, by performing LVS verification, the layout data 73 for which LVS verification has been completed can be obtained. The layout data 71 includes first to fourth polygons 711 to 714 , and in the layout data 71 , the first and fourth polygons 711 and 714 are perpendicular to the third polygon 713 . , and the first and second polygons 711 and 712 may be vertically connected. Accordingly, the connection relationship 72 may include two connection relationships for polygons actually connected in the layout data 71 .

도 7b를 참조하면, 종래에는 레이아웃 데이터를 생성하기 전에 인간, 즉, 설계자가 연결관계(74)를 텍스트로 기술하였다. 예를 들어, 연결관계(74)는 'CONNECT' 함수 또는 'push_conn_stack' 함수를 이용하여 기술되었다. 예를 들어, 연결관계(74)는 'CONNECT A B BY V1'으로 기술될 수 있고, 여기서, 'CONNECT'는 함수이고, A, B, V1는 인자들이다. 집적 회로의 미세화 공정에 의해 집적 회로에서 인자들의 개수가 증가함에 따라 인자들의 조합이 지수적으로 증가하게 되며, 이에 따라, 휴먼 에러(human error)가 지속적으로 발생할 수 있다.Referring to FIG. 7B , in the related art, a human, ie, a designer, describes a connection relationship 74 in text before generating layout data. For example, the connection relationship 74 was described using a 'CONNECT' function or a 'push_conn_stack' function. For example, the connection relationship 74 may be described as 'CONNECT A B BY V1', where 'CONNECT' is a function and A, B, and V1 are factors. As the number of factors increases in the integrated circuit due to the miniaturization process of the integrated circuit, the combination of factors increases exponentially, and thus, human error may continuously occur.

집적 회로에서 넷 연결은 와이어들로 이루어지며, 와이어들은 메탈 레이어들 및 비아들을 포함할 수 있다. LVS 검증 시, 넷 연결을 정확히 검출하지 않으면, 실제 마스크에서 넷의 쇼트(Short)와 오픈(Open)을 구별하지 못하게 될 수 있다. 그러나 기존에는 이러한 결정을 사람이 타이핑을 통해서 수행하였다. 공정의 미세화에 따라, 와이어들의 물리적인 관계가 더 이상 사람의 눈으로 판별할 수 없는 단계에 이르렀기 때문에 CAE(Computer Aided Engineering) 차원의 해결 방법이 요구된다. 본 개시의 실시예들에 따르면, DRC 검증 단계에서 레이아웃 데이터(71)로부터 자동으로 폴리곤들의 연결관계(72)를 검출하고, 검출된 연결관계(72)를 LVS 검증 단계에 적용함으로써 휴먼 에러를 방지할 수 있다. 이에 따라, LVS 검증의 오류로 인하여 발생하는 마스크 페일(mask fail)을 방지할 수 있다.A net connection in an integrated circuit is made of wires, which may include metal layers and vias. During LVS verification, if the net connection is not accurately detected, it may be impossible to distinguish between short and open nets in the actual mask. However, in the past, such a decision was made by a human typing. According to the miniaturization of the process, since the physical relationship of the wires has reached a stage where the human eye can no longer identify it, a CAE (Computer Aided Engineering) level solution is required. According to embodiments of the present disclosure, human error is prevented by automatically detecting the connection relationship 72 of polygons from the layout data 71 in the DRC verification step and applying the detected connection relationship 72 to the LVS verification step. can do. Accordingly, it is possible to prevent a mask fail occurring due to an LVS verification error.

도 8은 본 개시의 일 실시예에 따른 LVS 코딩 방법을 나타내는 흐름도이다.8 is a flowchart illustrating an LVS coding method according to an embodiment of the present disclosure.

도 8을 참조하면, 본 실시예에 따른 LVS 코딩 방법은 LVS 검증에 이용되는 룰 파일을 생성하는 방법에 대응할 수 있다. 예를 들어, LVS 코딩 방법은 도 1의 단계 S150에 포함되거나 도 6의 단계 S210 이전에 수행될 수 있다. Referring to FIG. 8 , the LVS coding method according to the present embodiment may correspond to a method of generating a rule file used for LVS verification. For example, the LVS coding method may be included in step S150 of FIG. 1 or may be performed before step S210 of FIG. 6 .

단계 S310에서, 오리지널 레이어를 정의한다. 단계 S330에서, 파생 레이어를 정의한다. 오리지널 레이어는 복수의 파생 레이어들로 구분(classify)될 수 있고, 복수의 파생 레이어들은 복수의 폴리곤들에 대응할 수 있다. 일 실시예에서, 오리지널 레이어는 불순물(impurity)의 농도 또는 메탈 레이어의 두께 등을 포함하는 공정 근거에 의해 복수의 파생 레이어들로 구분될 수 있다. 일 실시예에서, 오리지널 레이어는 코딩에 의해 논리적으로 복수의 파생 레이어들로 구분될 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 오리지널 레이어는 다양한 기준들에 의해 복수의 파생 레이어들로 구분될 수 있다. In step S310, an original layer is defined. In step S330, a derived layer is defined. The original layer may be classified into a plurality of derived layers, and the plurality of derived layers may correspond to a plurality of polygons. In an embodiment, the original layer may be divided into a plurality of derived layers based on a process basis including a concentration of an impurity or a thickness of a metal layer. In an embodiment, the original layer may be logically divided into a plurality of derived layers by coding. However, the present invention is not limited thereto, and the original layer may be divided into a plurality of derived layers according to various criteria.

단계 S350에서, 소자 및 파라미터를 정의한다. 예를 들어, 소자는 PMOS, NMOS 등을 포함할 수 있다. 파라미터는 소자의 전기적인 특성과 관련된 기하학적 파라미터일 수 있고, 예를 들어, 너비와 길이 등을 포함할 수 있다. 일 실시예에서, LVS 코딩 방법은 단계 S350 이후에, LVS 검증 단계에서 레이아웃 데이터와 스키메틱 데이터 사이의 비교 대상을 정의하는 단계를 더 포함할 수 있다. 단계 S370에서, ERC(Electrical Rule Check)를 정의한다. In step S350, elements and parameters are defined. For example, the device may include PMOS, NMOS, and the like. The parameter may be a geometric parameter related to an electrical characteristic of the device, and may include, for example, a width and a length. In an embodiment, the LVS coding method may further include, after step S350, defining a comparison target between the layout data and the schematic data in the LVS verification step. In step S370, an ERC (Electrical Rule Check) is defined.

종래에는 LVS 코딩 과정에서 단계 S330과 S350 사이에서 연결관계를 정의하는 단계를 수행되었고, 집적 회로의 레이아웃 데이터가 생성되기 전에 설계자가 직접 연결관계를 기술하였다. 그러나, 본 실시예에 따르면, LVS 코딩 과정에서 설계자에 의해 연결관계를 정의하는 단계는 생략될 수 있고, 이에 따라, 룰 파일(예를 들어, 도 5의 51)은 폴리곤들의 연결관계가 생략될 수 있다. 따라서, 본 개시의 실시예들에 따른 룰 파일은 연결관계와 관련된 코딩이 생략될 수 있으며, 예를 들어, 'CONNECT' 함수 또는 'push_conn_stack'를 포함하지 않을 수 있다.Conventionally, in the LVS coding process, the step of defining the connection relationship between steps S330 and S350 was performed, and the designer directly described the connection relationship before the layout data of the integrated circuit was generated. However, according to the present embodiment, the step of defining the connection relationship by the designer in the LVS coding process may be omitted, and accordingly, the rule file (eg, 51 in FIG. 5 ) may not include the connection relationship of polygons. can Accordingly, in the rule file according to embodiments of the present disclosure, coding related to a connection relationship may be omitted, and for example, a 'CONNECT' function or a 'push_conn_stack' may not be included.

도 9는 본 개시의 일 실시예에 따른 LVS 엔진(90)를 나타내는 블록도이다.9 is a block diagram illustrating an LVS engine 90 according to an embodiment of the present disclosure.

도 9를 참조하면, LVS 엔진(90)은 추출기(93) 및 비교기(95)를 포함할 수 있다. 추출기(93)는 룰 파일(D30)을 기초로 레이아웃 데이터(D10)로부터 폴리곤들의 연결관계를 추출하고, 추출된 연결관계 및 룰 파일(D30)을 기초로 레이아웃 데이터(D10)로부터 레이아웃 넷리스트(D45)를 추출할 수 있다. 일 실시예에서, 추출기(93)는 룰 파일(D30)에 포함된 DRC 구문(DS)에 따라 레이아웃 데이터(D10)에 대해 DRC를 수행하도록 구성된 DRC 프로시저를 포함하도록 구성될 수 있다. Referring to FIG. 9 , the LVS engine 90 may include an extractor 93 and a comparator 95 . The extractor 93 extracts the connection relationship of polygons from the layout data D10 based on the rule file D30, and the layout netlist ( D45) can be extracted. In one embodiment, the extractor 93 may be configured to include a DRC procedure configured to perform DRC on the layout data D10 according to the DRC syntax DS included in the rule file D30.

비교기(95)는 레이아웃 넷리스트(D45)와 스키메틱 데이터(D20)를 비교할 수 있고, 구체적으로, 넷의 연결 상태, 소자들의 개수, 너비와 길이 등의 파라미터를 비교할 수 있다. 비교 결과, 레이아웃 넷리스트(D45)와 스키메틱 데이터(D20)가 일치하면, 비교기(95)는 패쓰 결과를 포함하는 LVS 결과 데이터(D50)를 생성할 수 있다. 한편, 레이아웃 넷리스트(D45)와 스키메틱 데이터(D20)가 불일치하면, 비교기(95)는 페일 결과를 포함하는 LVS 결과 데이터(D50)를 생성할 수 있다. 일 실시예에서, LVS 엔진(90)은 스키메틱 데이터(D20)로부터 소스 넷리스트를 생성하기 위한 컴파일러를 더 포함할 수 있다. The comparator 95 may compare the layout netlist D45 with the schematic data D20 and, specifically, may compare parameters such as the connection state of the net, the number of elements, width and length, and the like. As a result of the comparison, if the layout netlist D45 and the schematic data D20 match, the comparator 95 may generate the LVS result data D50 including the path result. Meanwhile, if the layout netlist D45 and the schematic data D20 do not match, the comparator 95 may generate the LVS result data D50 including the fail result. In an embodiment, the LVS engine 90 may further include a compiler for generating a source netlist from the schematic data D20.

도 10은 본 개시의 일 실시예에 따른 LVS 엔진(90a)을 나타내는 블록도이다.10 is a block diagram illustrating an LVS engine 90a according to an embodiment of the present disclosure.

도 10을 참조하면, LVS 엔진(90a)은 디자인 룰 체크기(91), 추출기(93) 및 비교기(95)를 포함할 수 있고, 도 9의 LVS 엔진(90)의 변형 실시예에 대응할 수 있다. 디자인 룰 체크기(91)는 룰 파일(30)에 포함된 DRC 구문(DS)에 따라 레이아웃 데이터(D10)에 대해 DRC를 수행함으로써, 폴리곤들의 연결관계를 자동으로 추출하고, 추출된 연결관계를 포함하는 DRC 결과 데이터(D40)를 생성할 수 있다. 추출기(93)는 추출된 연결관계 및 룰 파일(D30)을 기초로 레이아웃 데이터(D10)로부터 레이아웃 넷리스트(D45)를 추출할 수 있다. 비교기(95)는 레이아웃 넷리스트(D45)와 스키메틱 데이터(D20)를 비교함으로써 LVS 결과 데이터(D50)를 생성할 수 있다.Referring to FIG. 10 , the LVS engine 90a may include a design rule checker 91 , an extractor 93 , and a comparator 95 , and may correspond to a modified embodiment of the LVS engine 90 of FIG. 9 . . The design rule checker 91 automatically extracts the connection relationship of polygons by performing DRC on the layout data D10 according to the DRC syntax DS included in the rule file 30, and includes the extracted connection relationship. DRC result data D40 may be generated. The extractor 93 may extract the layout netlist D45 from the layout data D10 based on the extracted connection relationship and the rule file D30. The comparator 95 may generate the LVS result data D50 by comparing the layout netlist D45 with the schematic data D20.

도 11a는 본 개시의 일 실시예에 따른 집적 회로의 레이아웃에 포함된 배선 구조의 일 예(111)를 나타내고, 도 11b는 본 개시의 일 실시예에 따른 룰 파일(113)을 나타낸다.11A shows an example 111 of a wiring structure included in a layout of an integrated circuit according to an embodiment of the present disclosure, and FIG. 11B shows a rule file 113 according to an embodiment of the present disclosure.

도 11a를 참조하면, 배선 구조(111)는 수직 방향으로 적층된 복수의 메탈 레이어들(M1 내지 M5) 및 복수의 비아들(V1 내지 V4)을 포함할 수 있다. 각 비아(V1 내지 V4)는 서로 다른 층에 위치하는 메탈 레이어들(M1 내지 M5)을 전기적으로 연결할 수 있다. 예를 들어, 제1 비아(V1)는 제1 메탈 레이어(M1)와 제2 메탈 레이어(M2)의 사이에 배치되어, 제1 메탈 레이어(M1)와 제2 메탈 레이어(M2)를 전기적으로 연결시킬 수 있다.Referring to FIG. 11A , the wiring structure 111 may include a plurality of metal layers M1 to M5 and a plurality of vias V1 to V4 stacked in a vertical direction. Each of the vias V1 to V4 may electrically connect the metal layers M1 to M5 positioned in different layers. For example, the first via V1 is disposed between the first metal layer M1 and the second metal layer M2 to electrically connect the first metal layer M1 and the second metal layer M2. can be connected

도 11b를 참조하면, 종래의 룰 파일(112)은 설계자가 기술한, 배선 구조(111)의 연결관계에 대응하는 4줄의 'CONNECT' 구문들을 포함할 수 있다. 이러한 단순한 'CONNECT' 구문을 기술하는 경우에도, 텍스트 타이핑(typing) 과정에서 오타 및 누락이 발생할 수 있다. 그러나, 본 개시의 일 실시예에 따른 룰 파일(113)은 DRC 구문들을 포함할 수 있고, DRC 구문들은 루프 알고리즘을 이용하여 배선 구조(111)에 포함된 모든 레이어들 및 모든 폴리곤들에 대한 연결관계를 자동으로 검출하도록 지시할 수 있다.Referring to FIG. 11B , the conventional rule file 112 may include four lines of 'CONNECT' phrases corresponding to the connection relationship of the wiring structure 111 described by the designer. Even when such a simple 'CONNECT' syntax is described, typos and omissions may occur during text typing. However, the rule file 113 according to an embodiment of the present disclosure may include DRC statements, and the DRC statements are connected to all layers and all polygons included in the wiring structure 111 using a loop algorithm. You can instruct it to automatically detect the relationship.

도 12a는 본 개시의 일 실시예에 따른 집적 회로의 레이아웃에 포함된 배선 구조의 다른 예(121)를 나타내고, 도 12b는 본 개시의 일 실시예에 따른 룰 파일(123)을 나타낸다.FIG. 12A shows another example 121 of a wiring structure included in a layout of an integrated circuit according to an embodiment of the present disclosure, and FIG. 12B shows a rule file 123 according to an embodiment of the present disclosure.

도 12a를 참조하면, 배선 구조(112)는 수직 방향(예를 들어, Z 방향)으로 적층된 제1 메탈 레이어(M1), 제1 비아 레이어(V1), 및 제2 메탈 레이어(M2)를 포함할 수 있다. 제1 메탈 레이어(M1), 제1 비아 레이어(V1), 및 제2 메탈 레이어(M2)는 예를 들어, 도 8의 단계 S310에서 정의되는 오리지널 레이어들에 각각 대응할 수 있다. 제1 메탈 레이어(M1), 제1 비아 레이어(V1), 및 제2 메탈 레이어(M2) 각각은 수평 방향(예를 들어, X 방향 또는 Y 방향)으로 복수의 파생 레이어들로 구분될 수 있다.Referring to FIG. 12A , the wiring structure 112 includes a first metal layer M1, a first via layer V1, and a second metal layer M2 stacked in a vertical direction (eg, Z direction). may include The first metal layer M1 , the first via layer V1 , and the second metal layer M2 may each correspond to, for example, original layers defined in operation S310 of FIG. 8 . Each of the first metal layer M1 , the first via layer V1 , and the second metal layer M2 may be divided into a plurality of derivative layers in a horizontal direction (eg, an X direction or a Y direction). .

예를 들어, 제1 메탈 레이어(M1)는 7개의 폴리곤들(M1a 내지 M1g)에 각각 대응하는 7개의 파생 레이어들로 구분되고, 제1 메탈 레이어(M1)에서 가능한 측면 연결관계들의 개수는 21개(즉, 7C2)일 수 있다. 예를 들어, 제1 비아 레이어(V1)는 3개의 폴리곤들(V1a 내지 V1c)에 각각 대응하는 3개의 파생 레이어들로 구분되며, 제1 비아 레이어(V1)에서 가능한 측면 연결관계들의 개수는 3개(즉, 3C2)일 수 있다. 예를 들어, 제2 메탈 레이어(M2)는 3개의 폴리곤들(M2a 내지 M2c)에 각각 대응하는 3개의 파생 레이어들로 구분되고, 제2 메탈 레이어(M2)에서 가능한 측면 연결관계들의 개수는 3개(즉, 3C2)일 수 있다. 한편, 제1 메탈 레이어(M1), 제1 비아 레이어(V1), 및 제2 메탈 레이어(M2)에서 가능한 수직 연결관계들의 개수는 63개(즉, 3*3*7)일 수 있다. 따라서, 배선 구조(112)에서 가능한 연결관계들의 총 개수는 90개에 대응할 수 있다.For example, the first metal layer M1 is divided into 7 derived layers corresponding to 7 polygons M1a to M1g, respectively, and the number of possible side connection relationships in the first metal layer M1 is 21 dog (ie, 7 C 2 ). For example, the first via layer V1 is divided into three derived layers respectively corresponding to the three polygons V1a to V1c, and the number of possible side connection relationships in the first via layer V1 is 3 dog (ie, 3 C 2 ). For example, the second metal layer M2 is divided into three derived layers corresponding to three polygons M2a to M2c, respectively, and the number of possible side connection relationships in the second metal layer M2 is 3 dog (ie, 3 C 2 ). Meanwhile, the number of possible vertical connection relationships in the first metal layer M1 , the first via layer V1 , and the second metal layer M2 may be 63 (ie, 3*3*7). Accordingly, the total number of possible connection relationships in the wiring structure 112 may correspond to 90.

도 12b를 참조하면, 종래의 룰 파일(122)은 설계자가 기술한, 배선 구조(121)의 연결관계에 대응하는 90줄의 'CONNECT' 구문들을 포함할 수 있다. 구체적으로, 룰 파일(122)은 제2 메탈 레이어(M2)의 측면 연결관계들을 기술하는 3줄의 구문들(122a), 제1 비아 레이어(V1)의 측면 연결관계들을 기술하는 3줄의 구문들(122b), 제1 메탈 레이어(M1)의 측면 연결관계들을 기술하는 21줄의 구문들(122c), 및 제1 메탈 레이어(M1), 제1 비아 레이어(V1), 및 제2 메탈 레이어(M2)의 수직 연결관계들을 기술하는 63줄의 구문들(122d)을 포함할 수 있다. Referring to FIG. 12B , the conventional rule file 122 may include 90 lines of 'CONNECT' phrases corresponding to the connection relationship of the wiring structure 121 described by the designer. Specifically, the rule file 122 has three lines of phrases 122a describing the lateral connectivity of the second metal layer M2, and three lines of phrases describing the lateral connectivity of the first via layer V1. 122b, 21-line phrases 122c describing lateral connection relationships of the first metal layer M1, and the first metal layer M1, the first via layer V1, and the second metal layer 63 lines of phrases 122d describing the vertical connections of (M2).

한편, 본 개시의 일 실시예에 따른 룰 파일(123)은 오리지널 레이어들 및 파생 레이어들을 정의하는 제1 부분(123a)과 DRC 구문들을 포함하는 제2 부분(123b)을 포함할 수 있다. 제1 부분(123a)은 제1 메탈 레이어(M1), 제1 비아 레이어(V1), 및 제2 메탈 레이어(M2)를 오리지널 레이어들로서 정의하고, 제1 메탈 레이어(M1)의 파생 레이어들을 M1a 내지 M1g으로 정의하며, 제1 비아 레이어(V1)의 파생 레이어들을 V1a 내지 V1c로 정의하고, 제2 메탈 레이어(M2)의 파생 레이어들을 M2a 내지 M2c로 정의할 수 있다. Meanwhile, the rule file 123 according to an embodiment of the present disclosure may include a first part 123a defining original layers and derived layers and a second part 123b including DRC phrases. The first portion 123a defines the first metal layer M1 , the first via layer V1 , and the second metal layer M2 as original layers, and uses the derivative layers of the first metal layer M1 as M1a . to M1g, derivative layers of the first via layer V1 may be defined as V1a to V1c, and derivative layers of the second metal layer M2 may be defined as M2a to M2c.

제2 부분(123b)에서 DRC 구문들은 루프 알고리즘을 이용하여 배선 구조(121)에 포함된 모든 레이어들 및 모든 폴리곤들에 대한 연결관계를 자동으로 검출하도록 지시할 수 있다. 예를 들어, DRC 구문들은 foreach Tcl(Tool Command Language)를 포함하고, 이에 따라, 각 오리지널 레이어에 포함된 파생 레이어들에 대해 DRC의 수행을 지시할 수 있다. 따라서, 집적 회로의 미세화에 의해, 레이아웃 데이터에 포함된 폴리곤들의 개수가 급격히 증가하더라도, 폴리곤들의 연결관계를 모두 검출할 수 있다. In the second part 123b, the DRC constructs may instruct to automatically detect a connection relationship for all layers and all polygons included in the wiring structure 121 using a loop algorithm. For example, the DRC constructs may include foreach Tool Command Language (Tcl), and accordingly, may instruct execution of DRC for derived layers included in each original layer. Accordingly, even if the number of polygons included in the layout data rapidly increases due to the miniaturization of the integrated circuit, all connection relationships between the polygons may be detected.

도 13은 본 개시의 일 실시예에 따른 룰 파일(131)의 일 예를 나타낸다. 13 shows an example of a rule file 131 according to an embodiment of the present disclosure.

도 13을 참조하면, 룰 파일(131)은 오리지널 레이어들 및 파생 레이어들을 정의하는 제1 부분(131a) 및 DRC 구문들을 포함하는 제2 부분(131b)을 포함할 수 있다. 제1 부분(131a)은 도 12b의 제1 부분(123a)의 일 예에 대응하고, 제2 부분(131b)은 도 12b의 제2 부분(123b)의 일 예에 대응할 수 있다. 제2 부분(131b)에 포함된 DRC 구문은 foreach 루프를 이용하여 구현될 수 있고, 이에 따라, 레이아웃 데이터에 포함된 모든 레이어들 및 각 레이어에 포함된 모든 파생 레이어들, 즉, 폴리곤들에 대해 연결관계를 자동으로 검출할 수 있다. Referring to FIG. 13 , the rule file 131 may include a first part 131a defining original layers and derived layers, and a second part 131b including DRC phrases. The first part 131a may correspond to an example of the first part 123a of FIG. 12B , and the second part 131b may correspond to an example of the second part 123b of FIG. 12B . The DRC syntax included in the second part 131b may be implemented using a foreach loop, and accordingly, for all layers included in the layout data and all derived layers included in each layer, that is, polygons. Connections can be automatically detected.

도 14는 본 개시의 일 실시예에 따른 DRC 동작의 일 예를 나타낸다.14 illustrates an example of a DRC operation according to an embodiment of the present disclosure.

도 14를 참조하면, 레이아웃 데이터(D10a)는 제1 및 제2 메탈 레이어들(M1, M2), 및 제1 및 제2 메탈 레이어들(M1, M2) 사이의 제1 비아(V1)를 포함할 수 있다. 디자인 룰 체크기(91)는 룰 파일(D30a)에 포함된 DRC 구문에 따라 레이아웃 데이터(D10a)에 대해 DRC를 수행함으로써 DRC 결과 데이터(D40a)를 생성할 수 있다. 룰 파일(D30a)은 예를 들어, "… @ (M1 AND V1) AND M2"으로 표시된 DRC 구문을 포함할 수 있고, 이에 따라, 디자인 룰 체크기(91)는 레이아웃 데이터(D10a)로부터 제1 및 제2 메탈 레이어들(M1, M2)과 제1 비아(V1)의 연결관계를 자동으로 검출할 수 있다. Referring to FIG. 14 , the layout data D10a includes first and second metal layers M1 and M2 and a first via V1 between the first and second metal layers M1 and M2 . can do. The design rule checker 91 may generate the DRC result data D40a by performing DRC on the layout data D10a according to the DRC syntax included in the rule file D30a. The rule file D30a may include, for example, a DRC syntax expressed as “… @ (M1 AND V1) AND M2”, and accordingly, the design rule checker 91 may use the first and A connection relationship between the second metal layers M1 and M2 and the first via V1 may be automatically detected.

레이아웃 데이터(D10a)는 제1 내지 제3 넷들(N1 내지 N3)을 포함할 수 있다. 제1 내지 제3 넷들(N1 내지 N3) 각각은 제1 및 제2 메탈 레이어들(M1, M2)과 제1 비아(V1)가 연결되는 수직 연결관계에 대응할 수 있다. 따라서, DRC 결과 데이터(D40a)는 레이아웃 데이터(D10a)에서 검출된 제1 및 제2 메탈 레이어들(M1, M2)과 제1 비아(V1)의 연결관계들의 전체 개수가 3개라는 정보를 포함할 수 있다. DRC 결과 데이터(D40a)는 DRC 로그(log) 파일이라고 지칭할 수 있다.The layout data D10a may include first to third nets N1 to N3 . Each of the first to third nets N1 to N3 may correspond to a vertical connection relationship in which the first and second metal layers M1 and M2 and the first via V1 are connected. Accordingly, the DRC result data D40a includes information that the total number of connections between the first and second metal layers M1 and M2 and the first via V1 detected in the layout data D10a is three. can do. The DRC result data D40a may be referred to as a DRC log file.

도 15는 본 개시의 일 실시예에 따른 DRC 동작의 다른 예를 나타낸다.15 shows another example of a DRC operation according to an embodiment of the present disclosure.

도 15를 참조하면, 레이아웃 데이터(D10b)는 제1 및 제2 메탈 레이어들(M1, M2), 및 제1 및 제2 메탈 레이어들(M1, M2) 사이의 제1 비아(V1)를 포함할 수 있다. 디자인 룰 체크기(91)는 룰 파일(D30b)에 포함된 DRC 구문에 따라 레이아웃 데이터(D10b)에 대해 DRC를 수행함으로써 DRC 결과 데이터(D40b)를 생성할 수 있다. 룰 파일(D30b)은 예를 들어, "… {@ (M1 AND V1) AND M2}"으로 표시된 DRC 구문을 포함할 수 있고, 이에 따라, 디자인 룰 체크기(91)는 레이아웃 데이터(D10b)로부터 제1 및 제2 메탈 레이어들(M1, M2)의 연결관계를 자동으로 검출할 수 있다. Referring to FIG. 15 , the layout data D10b includes first and second metal layers M1 and M2 , and a first via V1 between the first and second metal layers M1 and M2 . can do. The design rule checker 91 may generate the DRC result data D40b by performing DRC on the layout data D10b according to the DRC syntax included in the rule file D30b. The rule file D30b may include, for example, a DRC syntax indicated by "... {@ (M1 AND V1) AND M2}", and accordingly, the design rule checker 91 receives the second order from the layout data D10b. A connection relationship between the first and second metal layers M1 and M2 may be automatically detected.

레이아웃 데이터(D10b)는 제1 및 제2 메탈 레이어들(M1, M2)과 제1 비아(V1)가 연결되는 수직 연결관계를 전혀 포함하지 않을 수 있다. 따라서, DRC 결과 데이터(D40b)는 검출된 제1 및 제2 메탈 레이어들(M1, M2)과 제1 비아(V1)의 연결관계들의 연결관계들의 전체 개수가 0개라는 정보를 포함할 수 있다.The layout data D10b may not include a vertical connection relationship between the first and second metal layers M1 and M2 and the first via V1 at all. Accordingly, the DRC result data D40b may include information that the total number of connection relationships between the detected first and second metal layers M1 and M2 and the first via V1 is zero. .

도 16은 본 개시의 일 실시예에 따른 DRC에 의한 연결관계 검출 동작의 일 예를 나타낸다.16 illustrates an example of a connection relationship detection operation by DRC according to an embodiment of the present disclosure.

도 16을 참조하면, 오리지널 레이어는 제1 메탈 레이어(M1)이고, 제1 메탈 레이어(M1)는 제1 내지 제3 파생 레이어들, 즉, 제1 내지 제3 폴리곤들(A, B, C)로 구분될 수 있다. 레이아웃 데이터(161)에 따르면, 제1 및 제2 폴리곤들(A, B)이 제1 방향(예를 들어, X 방향)으로 연결되고, 제1 및 제3 폴리곤들(A, C)이 제2 방향(예를 들어, Y 방향)으로 연결될 수 있다. Referring to FIG. 16 , the original layer is a first metal layer M1, and the first metal layer M1 includes first to third derived layers, that is, first to third polygons A, B, and C. ) can be distinguished. According to the layout data 161, the first and second polygons (A, B) are connected in a first direction (eg, X direction), and the first and third polygons (A, C) are the second It may be connected in two directions (eg, Y direction).

일 실시예에 따르면, 룰 파일(161)은 오리지널 레이어를 정의하는 제1 부분(162a), 파생 레이어들을 정의하는 제2 부분(162b), 및 DRC 구문을 포함하는 제3 부분(162c)을 포함할 수 있다. 제3 부분(162c)은 foreach 루프를 이용하여 DRC 구문을 루프 알고리즘으로 구현하였다. 따라서, 룰 파일(162)에 포함된 DRC 구문에 따라 제1 메탈 레이어(M1)에 포함된 파생 레이어들(A 내지 C) 각각에 대해 DRC를 수행할 수 있다. DRC 결과 데이터(163)는 레이아웃 데이터(161)에서 실제로 연결된 폴리곤들의 필수적인 연결관계들인 "CONNECT A B" 및 "CONNECT C A"만 포함할 수 있다.According to an embodiment, the rule file 161 includes a first part 162a defining an original layer, a second part 162b defining derived layers, and a third part 162c including a DRC syntax. can do. The third part 162c implements the DRC syntax as a loop algorithm using a foreach loop. Accordingly, DRC may be performed on each of the derived layers A to C included in the first metal layer M1 according to the DRC syntax included in the rule file 162 . The DRC result data 163 may include only "CONNECT A B" and "CONNECT C A", which are essential connection relationships of polygons actually connected in the layout data 161 .

도 17은 본 개시의 일 실시예에 따른 DRC에 의한 연결관계 검출 동작의 일 예를 나타낸다.17 illustrates an example of a connection relationship detection operation by DRC according to an embodiment of the present disclosure.

도 17을 참조하면, 오리지널 레이어는 제1 메탈 레이어(M1)이고, 제1 메탈 레이어(M1)는 제1 내지 제3 파생 레이어들, 즉, 제1 내지 제3 폴리곤들(A, B, C)로 구분될 수 있다. 레이아웃 데이터(171)에 따르면, 제1 및 제3 폴리곤들(A, C)이 제2 방향(예를 들어, Y 방향)으로 연결될 수 있다. Referring to FIG. 17 , the original layer is a first metal layer M1, and the first metal layer M1 includes first to third derived layers, that is, first to third polygons A, B, and C. ) can be distinguished. According to the layout data 171 , the first and third polygons A and C may be connected in the second direction (eg, the Y direction).

일 실시예에 따르면, 룰 파일(172)은 도 16의 룰 파일(162)과 실질적으로 동일할 수 있다. 따라서, 룰 파일(172)에 포함된 DRC 구문에 따라 제1 메탈 레이어(M1)에 포함된 파생 레이어들(A 내지 C) 각각에 대해 DRC를 수행할 수 있다. DRC 결과 데이터(173)는 레이아웃 데이터(171)에서 실제로 연결된 폴리곤들의 필수적인 연결관계인 "CONNECT C A"만 포함할 수 있다. According to an embodiment, the rule file 172 may be substantially the same as the rule file 162 of FIG. 16 . Accordingly, DRC may be performed on each of the derived layers A to C included in the first metal layer M1 according to the DRC syntax included in the rule file 172 . The DRC result data 173 may include only “CONNECT C A”, which is an essential connection relationship between polygons actually connected in the layout data 171 .

도 18은 본 개시의 일 실시예에 따른 DRC에 의한 연결관계 검출 동작의 일 예를 나타낸다.18 illustrates an example of a connection relationship detection operation by DRC according to an embodiment of the present disclosure.

도 18을 참조하면, 오리지널 레이어는 제1 메탈 레이어(M1)이고, 제1 메탈 레이어(M1)는 제1 내지 제3 파생 레이어들, 즉, 제1 내지 제3 폴리곤들(A, B, C)로 구분될 수 있다. 레이아웃 데이터(181)에 따르면, 제1 및 제3 폴리곤들(A, C)이 제2 방향(예를 들어, Y 방향)으로 오버랩될 수 있다. 이와 같이, 제1 및 제3 폴리곤들(A, C)이 오버랩되는 경우, 오버랩 영역에 대해서는 기생 성분 추출 단계(예를 들어, 도 1의 단계 S190)에서 기생 저항 또는 기생 커패시턴스와 같은 기생 성분이 중복되어 추출될 수 있다. 이에 따라, 기생 성분 데이터에 오류가 발생할 수 있고, 그로 인해 집적 회로의 타이밍 분석 결과에도 오류가 발생할 수 있다. 따라서, 측면 연결관계에서 오버랩 영역의 검출이 필요하다. 그러나, 종래 기술에 따르면 레이아웃의 생성 전에 연결관계를 기술하므로 오버랩 영역을 미리 예측하지 못할 것이고, 이에 따라, 오버랩 영역을 검출하기 어려웠다.Referring to FIG. 18 , the original layer is a first metal layer M1 , and the first metal layer M1 includes first to third derived layers, that is, first to third polygons A, B, and C. ) can be distinguished. According to the layout data 181 , the first and third polygons A and C may overlap in the second direction (eg, the Y direction). As such, when the first and third polygons A and C overlap, a parasitic component such as a parasitic resistance or a parasitic capacitance in the parasitic component extraction step (eg, step S190 of FIG. 1 ) for the overlap region is It can be duplicated and extracted. Accordingly, an error may occur in the parasitic component data, which may also cause an error in the timing analysis result of the integrated circuit. Therefore, it is necessary to detect the overlap area in the lateral connection relationship. However, according to the prior art, since the connection relationship is described before the creation of the layout, the overlap area cannot be predicted in advance, and thus, it is difficult to detect the overlap area.

일 실시예에 따르면, 룰 파일(182)은 오리지널 레이어를 정의하는 제1 부분(182a), 파생 레이어들을 정의하는 제2 부분(182b), 및 DRC 구문을 포함하는 제3 부분(182c)을 포함할 수 있다. 예를 들어, 제3 부분(182c)은 "… {@ A AND C}"라는 DRC 구문을 포함할 수 있고, 제3 부분(182c)은 "… {@ A AND B}" 및 "… {@ B AND C}"를 더 포함할 수 있다. 예를 들어, 제3 부분(182c)에서 DRC 구문은 루프 알고리즘을 이용하여 DRC 루프 구문으로 구현될 수도 있다. 따라서, 룰 파일(182)에 포함된 DRC 구문에 따라 제1 메탈 레이어(M1)에 포함된 파생 레이어들(A 내지 C) 각각에 대해 DRC를 수행할 수 있다. DRC 결과 데이터(183)는 레이아웃 데이터(181)에서 실제로 오버랩된 폴리곤들의 필수적인 연결관계인 "OVERLAP A C"만 포함할 수 있다.According to an embodiment, the rule file 182 includes a first part 182a defining an original layer, a second part 182b defining derived layers, and a third part 182c including a DRC syntax. can do. For example, the third part 182c may include the DRC syntax "... {@ A AND C}", and the third part 182c may include "... {@ A AND B}" and "... {@ B AND C}" may be further included. For example, the DRC syntax in the third part 182c may be implemented as a DRC loop syntax using a loop algorithm. Accordingly, DRC may be performed on each of the derived layers A to C included in the first metal layer M1 according to the DRC syntax included in the rule file 182 . The DRC result data 183 may include only "OVERLAP AC", which is an essential connection relationship between polygons that actually overlap in the layout data 181 .

도 19는 본 개시의 일 실시예에 따른 DRC에 의한 연결관계 검출 동작의 일 예를 나타낸다.19 illustrates an example of a connection relationship detection operation by DRC according to an embodiment of the present disclosure.

도 19를 참조하면, 오리지널 레이어는 제1 메탈 레이어(M1)이고, 제1 메탈 레이어(M1)는 제1 및 제2 파생 레이어들, 즉, 제1 및 제2 폴리곤들(A, B)로 구분될 수 있다. 레이아웃 데이터(191)에 따르면, 제1 폴리곤(A)은 파생 레이어로 구분되지 않은 제3 폴리곤(C)과 연결될 수 있다. 이때, 제1 메탈 레이어(M1)에 포함된 제3 폴리곤(C)은 제1 메탈 레이어(M1)에 대한 구분 과정에서 누락됨으로써, 예를 들어, 도 8의 단계 S330에서 파생 레이어로 정의되지 않을 수 있다. 종래 기술에 따르면 레이아웃의 생성 전에 연결관계를 기술하므로 파생 레이어로 정의되지 않은 제3 폴리곤(C)에 대한 연결관계를 미리 예측하지 못할 것이다.Referring to FIG. 19 , the original layer is a first metal layer M1, and the first metal layer M1 is formed of first and second derived layers, that is, first and second polygons A and B. can be distinguished. According to the layout data 191 , the first polygon A may be connected to a third polygon C that is not divided into a derived layer. At this time, the third polygon (C) included in the first metal layer (M1) is omitted in the classification process for the first metal layer (M1), for example, it is not defined as a derived layer in step S330 of FIG. can According to the prior art, since the connection relationship is described before the generation of the layout, the connection relationship to the third polygon C that is not defined as the derived layer may not be predicted in advance.

일 실시예에 따르면, 룰 파일(192)은 오리지널 레이어를 정의하는 제1 부분(192a), 파생 레이어들을 정의하는 제2 부분(192b), 및 DRC 구문을 포함하는 제3 부분(192c)을 포함할 수 있다. 예를 들어, 제3 부분(192c)은 "… {@ M1 NOT A NOT B}"라는 DRC 구문을 포함할 수 있다. 따라서, 룰 파일(192)에 포함된 DRC 구문에 따라 레이아웃 데이터(191)에 대해 DRC를 수행함으로써, 제1 메탈 레이어(M1)에서 파생 레이어로 정의되지 않은 폴리곤을 검출하고, 실제로 연결된 제1 및 제3 폴리곤들의 연결관계인 "CONNECT C A"를 포함하는 DRC 결과 데이터(193)를 생성할 수 있다.According to an embodiment, the rule file 192 includes a first part 192a defining an original layer, a second part 192b defining derived layers, and a third part 192c including a DRC syntax. can do. For example, the third part 192c may include a DRC phrase of “… {@ M1 NOT A NOT B}”. Accordingly, by performing DRC on the layout data 191 according to the DRC syntax included in the rule file 192, polygons not defined as a derived layer in the first metal layer M1 are detected, and the first and DRC result data 193 including "CONNECT C A", which is a connection relationship between the third polygons, may be generated.

도 20a 및 도 20b는 본 개시의 일 실시예에 따른 DRC에 의한 연결관계 검출 동작의 예들을 나타낸다.20A and 20B show examples of a connection relationship detection operation by DRC according to an embodiment of the present disclosure.

도 20a를 참조하면, 레이아웃 데이터(201)는 배선 구조(201a)를 포함할 수 있고, 배선 구조(201a)는 수직으로 적층된 제1 포트(PORT1), 제1 컨택(CA) 및 제1 메탈 레이어(M1)를 포함할 수 있다. 예를 들어, 제1 포트(PORT1)에 연결되는 입력 핀 또는 출력 핀이 제1 메탈 레이어(M1) 상부의 제2 메탈 레이어로 구현되는 경우, 배선 구조(201a)는 제1 포트(PORT1)에 연결되는 제2 메탈 레이어를 포함하지 않으므로, 배선 구조(201a)는 플로팅 넷이 될 수 있다. Referring to FIG. 20A , the layout data 201 may include a wiring structure 201a, in which the first port PORT1, the first contact CA, and the first metal are vertically stacked. It may include a layer M1. For example, when an input pin or an output pin connected to the first port PORT1 is implemented as a second metal layer on the first metal layer M1 , the wiring structure 201a is connected to the first port PORT1 . Since the second metal layer to be connected is not included, the wiring structure 201a may be a floating net.

만약 룰 파일이 "… {@ (PORT1 AND M1) AND CA}"라는 DRC 구문만을 포함할 경우, 레이아웃 데이터(201)에 대한 LVS 검증 결과 플로팅 넷을 검출할 수 없다. 그러나, 일 실시예에 따르면, 룰 파일(202)은 특정 포트, 예를 들어, 제1 포트(PORT1)에 대해 두 층 이상의 메탈 레이어들이 배치되도록 배선 구조를 제한하는 "… {@ (((PORT1 AND M1) AND CA) AND V1) AND M2}"라는 DRC 구문을 포함할 수 있다. 따라서, 룰 파일(202)에 포함된 DRC 구문에 따라 레이아웃 데이터(201)에 대해 DRC를 수행함으로써 DRC 구문을 만족하는 두 층 이상의 메탈 레이어들이 배치되는 넷이 0개 임을 나타내는 DRC 결과 데이터(203)를 생성할 수 있다.If the rule file includes only the DRC syntax of “… {@ (PORT1 AND M1) AND CA}”, the floating net cannot be detected as a result of LVS verification for the layout data 201 . However, according to an embodiment, the rule file 202 limits the wiring structure such that two or more metal layers are disposed with respect to a specific port, for example, the first port PORT1 "... {@ ((PORT1). AND M1) AND CA) AND V1) AND M2}". Therefore, by performing DRC on the layout data 201 according to the DRC syntax included in the rule file 202, DRC result data 203 indicating that there are zero four or more metal layers satisfying the DRC syntax. can create

도 20b를 참조하면, 레이아웃 데이터(204)는 배선 구조(204a)를 포함할 수 있고, 배선 구조(204a)는 수직으로 적층된 제1 포트(PORT1), 제1 컨택(CA), 제1 메탈 레이어(M1), 비아(V1) 및 제2 메탈 레이어(M2)를 포함할 수 있다. 예를 들어, 제2 메탈 레이어(M2)가 입력 핀 또는 출력 핀으로 구현되는 경우, 배선 구조(204a)는 플로팅 넷이 아닌 정상 넷이 될 수 있다. 일 실시예에 따르면, 룰 파일(202)에 포함된 DRC 구문에 따라 레이아웃 데이터(204)에 대해 DRC를 수행함으로써, DRC 구문을 만족하는 두 층 이상의 메탈 레이어들이 배치되는 넷이 1개 임을 나타내는 DRC 결과 데이터(205)를 생성할 수 있다.Referring to FIG. 20B , the layout data 204 may include a wiring structure 204a, wherein the wiring structure 204a includes a first port PORT1, a first contact CA, and a first metal stacked vertically. It may include a layer M1 , a via V1 , and a second metal layer M2 . For example, when the second metal layer M2 is implemented as an input pin or an output pin, the wiring structure 204a may be a normal net instead of a floating net. According to an embodiment, by performing DRC on the layout data 204 according to the DRC syntax included in the rule file 202, DRC indicating that there is one four of two or more metal layers satisfying the DRC syntax. Result data 205 may be generated.

도 21은 본 개시의 일 실시예에 따른 DRC에 의한 연결관계 검출 동작의 일 예를 나타낸다.21 illustrates an example of a connection relationship detection operation by DRC according to an embodiment of the present disclosure.

도 21을 참조하면, 레이아웃 데이터(211)는 최종 메탈 레이어(Last Metal layer)(LM)를 포함하고, 최종 메탈 레이어(LM)는 패드에 대응할 수 있다. 레이아웃 데이터(211)에서, 최종 메탈 레이어(LM) 하부에 비아 및 하부 메탈 레이어가 배치되지 않을 경우, 최종 메탈 레이어(LM)는 플로팅 넷이 될 수 있다. Referring to FIG. 21 , the layout data 211 may include a last metal layer LM, and the final metal layer LM may correspond to a pad. In the layout data 211 , when a via and a lower metal layer are not disposed under the final metal layer LM, the final metal layer LM may be a floating net.

종래에는 레이아웃의 생성 전에 기술되는 연결관계에서 최종 메탈 레이어(LM)를 패드로 기술할 수 있고, 이에 따라, LVS 검증 단계에서 최종 메탈 레이어(LM)를 플로팅 넷으로 검출할 수 없었다. 그러나, 일 실시예에 따르면, 룰 파일은 패드와 같은 특정 포트에 대해 다른 메탈 레이어들이 연결되도록 배선 구조를 제한하는 DRC 구문(예를 들어, "… {@ (LM AND M1) AND V1")을 포함할 수 있다. 따라서, 룰 파일에 포함된 DRC 구문에 따라 레이아웃 데이터(211)에 대한 DRC를 수행함으로써 최종 메탈 레이어가 플로팅 넷임을 나타내는 DRC 결과 데이터(212)를 생성할 수 있다.Conventionally, the final metal layer LM can be described as a pad in the connection relationship described before the layout is created, and accordingly, the final metal layer LM cannot be detected as a floating net in the LVS verification step. However, according to one embodiment, the rule file contains a DRC syntax (eg, "… {@ (LM AND M1) AND V1") that restricts the wiring structure so that different metal layers are connected to a specific port, such as a pad. may include Accordingly, DRC result data 212 indicating that the final metal layer is a floating net may be generated by performing DRC on the layout data 211 according to the DRC syntax included in the rule file.

도 1 내지 도 21을 참조하여 상술한 바와 같이, 본 개시의 실시예들에 따르면, LVS 검증 단계에 DRC 검증 방식을 적용할 수 있다. 이로써, 레이아웃과 스키매틱을 비교하는 LVS 검증 단계에서 연결관계 정보를 누락하는 가능성을 줄일 수 있다. 구체적으로, 실시예들에 따르면, LVS 검증 시에는 연결되었지만 실제 마스크(real mask)에서는 패턴들이 끊긴 경우, LVS 검증 시에는 끊겼지만 실제 마스크에서는 패턴들이 연결된 경우, LVS 검증에서는 컨덕터(conductor)가 존재하지 않지만 실제 마스크에서는 존재하는 경우, LVS 검증에서는 컨덕터가 존재하지만 실제 마스크에서는 존재하지 않는 경우 등과 같은 에러를 모두 검출할 수 있다. 또한, 실시예들에 따르면, 집적 회로가 플로팅 넷을 포함하는 에러도 검출할 수 있다.As described above with reference to FIGS. 1 to 21 , according to embodiments of the present disclosure, the DRC verification method may be applied to the LVS verification step. Accordingly, it is possible to reduce the possibility of omitting the connection relationship information in the LVS verification step of comparing the layout and the schematic. Specifically, according to embodiments, when patterns are connected during LVS verification but disconnected in a real mask, when patterns are disconnected during LVS verification but connected in a real mask, a conductor is present in LVS verification However, it is possible to detect all errors such as a case in which the conductor is present in the actual mask but not present in the actual mask in the LVS verification. Further, according to embodiments, the integrated circuit may also detect an error comprising a floating net.

도 22는 본 개시의 일 실시예에 따른 집적 회로의 제조 방법을 개략적으로 나타내는 흐름도이다.22 is a flowchart schematically illustrating a method of manufacturing an integrated circuit according to an embodiment of the present disclosure.

도 22를 참조하면, 집적 회로의 제조 방법은 집적 회로의 설계 및 집적 회로의 제조 공정으로 구분될 수 있다. 집적 회로의 설계는 단계 S410 및 S430을 포함하고, 집적 회로의 제조 공정은 단계 S450 및 S470을 포함할 수 있다. 집적 회로의 제조 공정은 레이아웃 데이터를 기초로 집적 회로에 따른 반도체 장치를 제조하는 단계로서, 반도체 공정 모듈에서 수행될 수 있다. 본 실시예에 따른 집적 회로의 제조 방법은 도 1 내지 도 21을 참조하여 상술된 집적 회로의 설계 방법을 수행함으로써 생성된 레이아웃 데이터를 기초로 집적 회로를 제조할 수 있다.Referring to FIG. 22 , a method of manufacturing an integrated circuit may be divided into an integrated circuit design and an integrated circuit manufacturing process. The design of the integrated circuit may include steps S410 and S430, and the manufacturing process of the integrated circuit may include steps S450 and S470. The integrated circuit manufacturing process is a step of manufacturing a semiconductor device according to the integrated circuit based on layout data, and may be performed in a semiconductor process module. The integrated circuit manufacturing method according to the present embodiment may manufacture the integrated circuit based on layout data generated by performing the integrated circuit design method described above with reference to FIGS. 1 to 21 .

단계 S410에서, 집적 회로에 대해 LVS 검증을 수행한다. 구체적으로, DRC 구문을 포함하는 룰 파일을 기초로 레이아웃 데이터에 대해 DRC를 수행함으로써 레이아웃 데이터로부터 폴리곤들의 연결관계를 자동으로 검출하고, 검출된 연결관계를 이용하여 레이아웃 데이터로부터 레이아웃 넷리스트를 추출하고, 레이아웃 넷리스트와 스키메틱 데이터를 비교함으로써 LVS 검증을 수행한다. 단계 S410은 도 1의 S150, 또는 도 6의 단계 S210 내지 S250에 대응할 수 있고, 도 1 내지 도 21을 참조하여 상술된 실시예들은 본 실시예에도 적용될 수 있다. 단계 S430에서, LVS 검증이 완료된 레이아웃 데이터에 대해 기생 성분 추출 동작을 수행한다. 단계 S430은 도 1의 S170에 대응할 수 있다.In step S410, LVS verification is performed on the integrated circuit. Specifically, by performing DRC on the layout data based on the rule file including the DRC syntax, the connection relationship of polygons is automatically detected from the layout data, and the layout netlist is extracted from the layout data using the detected connection relationship, and , LVS verification is performed by comparing the layout netlist with the schematic data. Step S410 may correspond to S150 of FIG. 1 or steps S210 to S250 of FIG. 6 , and the embodiments described above with reference to FIGS. 1 to 21 may also be applied to this embodiment. In step S430, a parasitic component extraction operation is performed on the layout data for which the LVS verification is completed. Step S430 may correspond to S170 of FIG. 1 .

단계 S450에서, 레이아웃 데이터를 기초로 마스크를 제작한다. 일 실시예에서, 단계 S430에서 생성된 기생 성분 데이터를 기초로 레이아웃 데이터를 수정할 수 있고, 수정된 레이아웃 데이터에 따라 마스크를 생성할 수 있다. 구체적으로, 먼저 레이아웃 데이터를 기초로 OPC(Optical Proximity Correction)를 수행할 수 있는데, OPC는 광 근접 효과에 따른 오차를 반영하여 레이아웃을 변경하는 공정을 지칭한다. 이어서, OPC 수행 결과에 따라 변경된 레이아웃에 따라 마스크를 제조할 수 있다. 이때, OPC를 반영한 레이아웃, 예컨대, OPC가 반영된 GDSII를 이용하여 마스크를 제조할 수 있다.In step S450, a mask is produced based on the layout data. In an embodiment, layout data may be modified based on the parasitic component data generated in step S430, and a mask may be generated according to the modified layout data. Specifically, optical proximity correction (OPC) may be first performed based on layout data. OPC refers to a process of changing a layout by reflecting an error caused by an optical proximity effect. Subsequently, a mask may be manufactured according to a layout changed according to the result of performing OPC. In this case, the mask may be manufactured using a layout reflecting OPC, for example, GDSII reflecting OPC.

단계 S470에서, 마스크를 이용하여 집적 회로를 제조한다. 구체적으로, 복수의 마스크들을 이용하여 웨이퍼 등과 같은 반도체 기판 상에 다양한 반도체 공정을 진행하여 집적 회로가 구현된 반도체 장치를 형성한다. 예를 들어, 마스크를 이용하는 공정은 리소그라피 공정을 통한 패터닝 공정을 의미할 수 있다. 이러한 패터닝 공정을 통해 반도체 기판이나 물질층 상에 원하는 패턴을 형성할 수 있다. 한편, 반도체 공정은 증착 공정, 식각 공정, 이온 공정, 세정 공정 등을 포함할 수 있다. 또한, 반도체 공정은 반도체 소자를 PCB 상에 실장하고 밀봉재로 밀봉하는 패키징 공정을 포함할 수도 있고, 반도체 소자나 패키지에 대해 테스트를 하는 테스트 공정을 포함할 수도 있다.In step S470, an integrated circuit is manufactured using the mask. Specifically, various semiconductor processes are performed on a semiconductor substrate such as a wafer using a plurality of masks to form a semiconductor device in which an integrated circuit is implemented. For example, a process using a mask may mean a patterning process through a lithography process. A desired pattern may be formed on a semiconductor substrate or a material layer through such a patterning process. Meanwhile, the semiconductor process may include a deposition process, an etching process, an ion process, a cleaning process, and the like. In addition, the semiconductor process may include a packaging process of mounting a semiconductor device on a PCB and sealing the semiconductor device with a sealing material, or may include a test process of testing the semiconductor device or package.

도 23은 본 개시의 일 실시예에 따른 집적 회로의 제조 방법을 구체적으로 나타내는 흐름도이다. 23 is a flowchart specifically illustrating a method of manufacturing an integrated circuit according to an embodiment of the present disclosure.

도 23을 참조하면, 단계 S510에서, 집적 회로의 레이아웃 데이터에 대해 DRC를 수행함으로써 레이아웃 데이터로부터 폴리곤들의 연결관계를 검출하고, 레이아웃 넷리스트를 추출한다. 일 실시예에서, 레이아웃 넷리스트를 추출하는 단계는 DRC 구문을 포함하는 룰 파일을 기초로 레이아웃 데이터에 대해 DRC를 수행함으로써 연결관계를 검출하는 단계, 및 검출된 연결관계를 이용하여 레이아웃 데이터로부터 레이아웃 넷리스트를 추출하는 단계를 포함할 수 있다. 단계 S530에서, 레이아웃 넷리스트와 스키메틱 데이터에 대해 LVS 검증을 수행함으로써 LVS 결과 데이터를 생성한다. 단계 S550에서, 레이아웃 데이터로부터 기생 성분을 추출함으로써 기생 성분 데이터를 생성한다. 일부 실시예들에서, 단계 S550은 생략될 수도 있다.Referring to FIG. 23 , in step S510, a connection relationship between polygons is detected from the layout data by performing DRC on the layout data of the integrated circuit, and a layout netlist is extracted. In one embodiment, the step of extracting the layout netlist includes detecting a connection relationship by performing DRC on the layout data based on a rule file including the DRC syntax, and layout from the layout data using the detected connection relationship. extracting the netlist. In step S530, LVS result data is generated by performing LVS verification on the layout netlist and schematic data. In step S550, parasitic component data is generated by extracting the parasitic component from the layout data. In some embodiments, step S550 may be omitted.

단계 S570에서, 레이아웃 데이터에 기초한 레이아웃에 따라 집적 회로를 제조한다. 일 실시예에서, 집적 회로를 제조하는 단계는, LVS 결과 데이터를 기초로 레이아웃 데이터를 수정하는 단계, 수정된 레이아웃 데이터에 따라 마스크를 제작하는 단계, 및 마스크를 이용하여 집적 회로를 제조하는 단계를 포함할 수 있다. 일 실시예에서, 집적 회로를 제조하는 단계는, LVS 결과 데이터 및 기생 성분 데이터를 기초로 레이아웃 데이터를 수정하는 단계, 수정된 레이아웃 데이터에 따라 마스크를 제작하는 단계, 및 마스크를 이용하여 집적 회로를 제조하는 단계를 포함할 수 있다.In step S570, an integrated circuit is manufactured according to the layout based on the layout data. In one embodiment, manufacturing the integrated circuit includes modifying layout data based on the LVS result data, manufacturing a mask according to the modified layout data, and manufacturing the integrated circuit using the mask. may include In one embodiment, manufacturing the integrated circuit includes modifying layout data based on the LVS result data and parasitic component data, fabricating a mask according to the modified layout data, and fabricating the integrated circuit using the mask. It may include a manufacturing step.

도 24는 본 개시의 일 실시예에 따른 컴퓨터로 독출 가능한 저장 매체(1000)를 나타낸다.24 illustrates a computer-readable storage medium 1000 according to an embodiment of the present disclosure.

도 24를 참조하면, 저장 매체(1000)는 집적 회로의 스키메틱 데이터(1100), 집적 회로의 레이아웃 데이터(1200), LVS 룰 파일(1300), LVS 엔진(1400), 및 LVS 결과 데이터(1500)를 저장할 수 있다. 저장 매체(1000)는 컴퓨터로 읽을 수 있는 저장 매체로서, 컴퓨터에 명령어들 및/또는 데이터를 제공하는데 사용되는 동안 컴퓨터에 의해 읽혀질 수 있는 임의의 저장 매체를 포함할 수 있다. 예를 들면, 컴퓨터로 읽을 수 있는 저장 매체(1000)는 디스크, 테이프, CD-ROM, DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW 등과 같은 자기 또는 광학 매체, RAM, ROM, 플래시 메모리 등과 같은 휘발성 또는 비휘발성 메모리, USB 인터페이스를 통해서 엑세스 가능한 비휘발성 메모리, 그리고 MEMS(microelectromechanical systems) 등을 포함할 수 있다. 컴퓨터로 읽을 수 있는 저장 매체는 컴퓨터에 삽입 가능하거나, 컴퓨터 내에 집적되거나, 네트워크 및/또는 무선 링크와 같은 통신 매개체를 통해서 컴퓨터와 결합될 수 있다.Referring to FIG. 24 , the storage medium 1000 includes schematic data 1100 of an integrated circuit, layout data 1200 of an integrated circuit, an LVS rule file 1300 , an LVS engine 1400 , and LVS result data 1500 . ) can be stored. The storage medium 1000 is a computer-readable storage medium and may include any storage medium that can be read by a computer while being used to provide instructions and/or data to a computer. For example, the computer-readable storage medium 1000 may include a magnetic or optical medium such as a disk, tape, CD-ROM, DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW, RAM, and the like. , ROM, volatile or non-volatile memory such as flash memory, non-volatile memory accessible through a USB interface, microelectromechanical systems (MEMS), and the like. The computer-readable storage medium may be inserted into, integrated into, or coupled to the computer through a communication medium such as a network and/or a wireless link.

집적 회로의 스키메틱 데이터(1100)는 집적 회로를 정의하는 데이터일 수 있다. 예를 들면, 집적 회로의 스키메틱 데이터(1100)는 도 3, 도 9, 도 10의 D20, 또는 도 4b의 42으로 예시된 스키메틱 데이터일 수 있다. 집적 회로의 레이아웃 데이터(1200)는 반도체 제조 공정을 통해서 제조되는 집적 회로의 구조를 정의하기 위한 토폴로지컬 데이터를 포함할 수 있다. 예를 들면, 집적 회로의 레이아웃 데이터(1200)는 도 3, 도 9, 도 10의 D10, 도 4a의 41, 도 7a의 71, 도 11a의 111, 도 12a의 121, 도 14의 D10a, 도 15의 D10b, 도 16의 161, 도 17의 171, 도 18의 181, 도 19의 191, 도 20a의 201, 도 20b의 204, 또는 도 21의 211로 예시된 레이아웃 데이터일 수 있다.The schematic data 1100 of the integrated circuit may be data defining the integrated circuit. For example, the schematic data 1100 of the integrated circuit may be the schematic data illustrated by D20 of FIGS. 3 , 9 , 10 , or 42 of FIG. 4B . The layout data 1200 of the integrated circuit may include topological data for defining a structure of an integrated circuit manufactured through a semiconductor manufacturing process. For example, the layout data 1200 of the integrated circuit may include D10 in FIGS. 3, 9, and 10, 41 in FIG. 4A, 71 in FIG. 7A, 111 in FIG. 11A, 121 in FIG. 12A, D10a in FIG. 14, and D10a in FIG. 15 , 161 of FIG. 16 , 171 of FIG. 17 , 181 of FIG. 18 , 191 of FIG. 19 , 201 of FIG. 20A , 204 of FIG. 20B , or 211 of FIG. 21 may be layout data.

LVS 룰 파일(1300)은 LVS 엔진(1400)이 LVS 검증을 수행할 때 참조하는 파일로서, 집적 회로의 레이아웃 데이터(1200)에서 소자를 인식하고 추출하기 위하여 소자를 정의할 수 있다. 일 실시예에서, LVS 룰 파일(1300)은 DRC 구문을 포함할 수 있고, DRC 구문은 루프 알고리즘을 이용하여 DRC 루프 구문으로 구현될 수 있다. 예를 들어, DRC 구문은 foreach Tcl를 포함할 수 있다. 예를 들면, LVS 룰 파일(1300)은 도 3, 도 9, 도 10의 D30, 도 5의 51, 도 11b의 113, 도 12b의 123, 도 13의 131, 도 14의 D30a, 도 15의 D30b, 도 16의 162, 도 17의 172, 도 18의 182, 도 19의 192, 또는 도 20a 및 20b의 202로 예시된 룰 파일일 수 있다.The LVS rule file 1300 is a file referenced by the LVS engine 1400 when performing LVS verification, and may define an element in order to recognize and extract the element from the layout data 1200 of the integrated circuit. In one embodiment, the LVS rule file 1300 may include a DRC syntax, and the DRC syntax may be implemented as a DRC loop syntax using a loop algorithm. For example, the DRC syntax may include foreach Tcl. For example, the LVS rule file 1300 is shown in Figs. 3, 9 and 10 D30, Fig. 5 51 , Fig. 11b 113 , Fig. 12b 123 , Fig. 13 131 , Fig. 14 D30a of Fig. 15 . It may be a rule file exemplified by D30b, 162 of FIG. 16, 172 of FIG. 17, 182 of FIG. 18, 192 of FIG. 19, or 202 of FIGS. 20A and 20B.

LVS 엔진(1400)는 LVS 규칙 파일(1300)에 기초하여 집적 회로의 레이아웃 데이터(1200)로부터 폴리곤들의 연결관계를 자동으로 검출하고, 검출된 연결관계를 이용하여 집적 회로의 레이아웃 데이터(1200)로부터 레이아웃 넷리스트를 추출하며, 추출된 레이아웃 넷리스트와 집적 회로의 스키메틱 데이터(1100)를 비교함으로써 LVS 결과 데이터(1500)를 생성할 수 있다. 예를 들어, LVS 엔진(1400)은 도 2의 130c, 도 3의 30, 도 9의 90, 또는 도 10의 90a로 예시된 LVS 엔진일 수 있다.The LVS engine 1400 automatically detects the connection relation of polygons from the layout data 1200 of the integrated circuit based on the LVS rule file 1300, and uses the detected connection relation to the layout data 1200 of the integrated circuit. LVS result data 1500 may be generated by extracting the layout netlist and comparing the extracted layout netlist with the schematic data 1100 of the integrated circuit. For example, the LVS engine 1400 may be the LVS engine illustrated by 130c in FIG. 2 , 30 in FIG. 3 , 90 in FIG. 9 , or 90a in FIG. 10 .

LVS 엔진(1400)는 LVS 검증을 수행하기 위한 복수의 명령어들을 포함할 수 있고, 컴퓨팅 시스템 또는 컴퓨팅 시스템에 포함된 프로세서는 LVS 엔진(1400)에 포함된 복수의 명령어들을 실행함으로써 LVS 검증을 수행할 수 있다. 일 실시예에서, LVS 엔진(1400)은 DRC를 수행하기 위한 디자인 룰 체크기를 포함할 수 있다. 일 실시예에서, 저장 매체(1000)는 DRC 엔진을 더 저장할 수 있고, DRC 엔진은 LVS 규칙 파일(1300)에 기초하여 집적 회로의 레이아웃 데이터(1200)로부터 폴리곤들의 연결관계를 자동으로 검출함으로써 DRC 결과 데이터를 생성할 수 있다.The LVS engine 1400 may include a plurality of instructions for performing LVS verification, and the computing system or a processor included in the computing system executes the plurality of instructions included in the LVS engine 1400 to perform LVS verification. can In one embodiment, the LVS engine 1400 may include a design rule checker for performing DRC. In one embodiment, the storage medium 1000 may further store a DRC engine, which automatically detects a connection relationship of polygons from the layout data 1200 of the integrated circuit based on the LVS rule file 1300 to thereby DRC Result data can be generated.

이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.Exemplary embodiments have been disclosed in the drawings and specification as described above. Although the embodiments have been described using specific terms in the present specification, these are used only for the purpose of explaining the technical spirit of the present disclosure and not used to limit the meaning or the scope of the present disclosure described in the claims. . Therefore, it will be understood by those skilled in the art that various modifications and equivalent other embodiments are possible therefrom. Accordingly, the true technical protection scope of the present disclosure should be defined by the technical spirit of the appended claims.

D10, D10a, D10b: 레이아웃 데이터, D20: 스키메틱 데이터
D30, D30a, D30b: 룰 파일, D40, D40a, D40b: DRC 결과 데이터
D45: 레이아웃 넷리스트, D50: LVS 결과 데이터
M1, M2, M3, M4, M5: 메탈 레이어들, V0, V1, V2, V3. V4: 비아들
D10, D10a, D10b: Layout data, D20: Schematic data
D30, D30a, D30b: Rule file, D40, D40a, D40b: DRC result data
D45: Layout netlist, D50: LVS result data
M1, M2, M3, M4, M5: metal layers, V0, V1, V2, V3. V4: vias

Claims (20)

집적 회로의 설계를 위한 컴퓨터 구현 방법으로서,
프로세서에 의해 LVS(Layout-Versus-Schematic) 엔진을 실행함으로써, 집적 회로의 레이아웃 데이터의 레이어들 상에 DRC(Design Rule Check)를 수행하기 위한 명령어들을 포함하는 DRC 구문(syntax)을 포함하는 룰 파일(rule file)을 기초로, 상기 집적 회로의 상기 레이아웃 데이터로부터 폴리곤들의 연결관계(connectivity)를 자동으로 검출하는 단계;
상기 프로세서에 의해 상기 LVS 엔진을 실행함으로써, 검출된 상기 연결관계를 기초로 하나 이상의 연결관계 정보를 포함하는 DRC 결과를 생성하는 단계;
상기 프로세서에 의해 상기 LVS 엔진을 실행함으로써, 상기 DRC 결과의 상기 연결관계 정보를 기초로 검출된 상기 연결관계를 이용하여 상기 레이아웃 데이터로부터 레이아웃 넷리스트를 추출하는 단계; 및
상기 프로세서에 의해 상기 LVS 엔진을 실행함으로써, LVS 결과 데이터를 생성하도록 상기 집적 회로의 스키메틱 데이터와 상기 레이아웃 넷리스트에 대한 LVS 검증을 수행하는 단계를 포함하는 컴퓨터 구현 방법.
A computer-implemented method for designing an integrated circuit, comprising:
A rule file containing a DRC syntax including instructions for performing a Design Rule Check (DRC) on layers of layout data of an integrated circuit by executing a Layout-Versus-Schematic (LVS) engine by a processor automatically detecting connectivity of polygons from the layout data of the integrated circuit based on a rule file;
generating, by the processor, the LVS engine, a DRC result including one or more connection relationship information based on the detected connection relationship;
extracting a layout netlist from the layout data using the connection relationship detected based on the connection relationship information of the DRC result by executing the LVS engine by the processor; and
and executing, by the processor, the LVS engine, performing LVS verification on the layout netlist and the schematic data of the integrated circuit to generate LVS result data.
제1항에 있어서,
상기 룰 파일은, 상기 레이아웃 데이터에 포함된 복수의 레이어들, 및 상기 복수의 레이어들 각각에 포함되는 복수의 폴리곤들에 대한 정의(definition)를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
According to claim 1,
The rule file, a plurality of layers included in the layout data, and a plurality of polygons included in each of the plurality of layers A computer implemented method, characterized in that it further comprises a definition (definition) for.
제2항에 있어서,
상기 DRC 구문은, 상기 복수의 레이어들 각각에 대하여, 그리고, 상기 복수의 폴리곤들 각각에 대하여, 상기 연결관계를 체크하도록 구성된 DRC 루프(loop) 구문인 것을 특징으로 하는 컴퓨터 구현 방법.
3. The method of claim 2,
The DRC syntax is a DRC loop syntax configured to check the connectivity for each of the plurality of layers and for each of the plurality of polygons.
제1항에 있어서,
상기 레이아웃 데이터는, 제1 레이어, 및 상기 제1 레이어 상의 제2 레이어를 포함하고,
상기 DRC 구문은, 상기 제1 레이어에 포함된 적어도 하나의 제1 폴리곤, 및 상기 제2 레이어에 포함된 적어도 하나의 제2 폴리곤의 터치 여부를 체크하도록 구성된 제1 구문을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
According to claim 1,
The layout data includes a first layer and a second layer on the first layer,
The DRC syntax includes a first syntax configured to check whether at least one first polygon included in the first layer and at least one second polygon included in the second layer are touched. How to implement a computer.
제1항에 있어서,
상기 레이아웃 데이터는, 제1 레이어, 상기 제1 레이어 상의 비아 레이어, 및 상기 비아 레이어 상의 제2 레이어를 포함하고,
상기 DRC 구문은, 상기 제1 레이어에 포함된 적어도 하나의 제1 폴리곤, 상기 제2 레이어에 포함된 적어도 하나의 제2 폴리곤, 및 상기 비아 레이어에 포함된 적어도 하나의 제3 폴리곤의 터치 여부를 체크하도록 구성된 제2 구문을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
According to claim 1,
The layout data includes a first layer, a via layer on the first layer, and a second layer on the via layer,
The DRC syntax determines whether at least one first polygon included in the first layer, at least one second polygon included in the second layer, and at least one third polygon included in the via layer is touched. and a second syntax configured to check.
제1항에 있어서,
상기 레이아웃 데이터는, 제1 레이어를 포함하고,
상기 DRC 구문은, 상기 제1 레이어에 포함된 제1 및 제2 폴리곤들의 터치 여부를 체크하도록 구성된 제1 구문을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
According to claim 1,
The layout data includes a first layer,
The DRC syntax includes a first syntax configured to check whether first and second polygons included in the first layer are touched.
제1항에 있어서,
상기 레이아웃 데이터는, 제1 레이어를 포함하고,
상기 DRC 구문은, 상기 제1 레이어에 포함된 제1 및 제2 폴리곤들의 오버랩 여부를 체크하도록 구성된 제3 구문을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
According to claim 1,
The layout data includes a first layer,
The DRC syntax includes a third syntax configured to check whether first and second polygons included in the first layer overlap.
제1항에 있어서,
상기 검출하는 단계는, 상기 레이아웃 데이터에 대해 상기 DRC 구문에 따라 DRC 검증을 수행함으로써, 상기 레이아웃 데이터에서 실제로 연결된 폴리곤들의 연결관계를 포함하는 DRC 결과 데이터를 생성하는 것을 특징으로 하는 컴퓨터 구현 방법.
According to claim 1,
The detecting comprises performing DRC verification on the layout data according to the DRC syntax, thereby generating DRC result data including a connection relationship between polygons actually connected in the layout data.
제1항에 있어서,
상기 레이아웃 데이터는, 적어도 하나의 폴리곤으로 구분되는 제1 레이어를 포함하고,
상기 DRC 구문은, 상기 제1 레이어 상에 상기 적어도 하나의 폴리곤으로 정의되지 않은 폴리곤의 존재 여부를 체크하도록 구성된 제4 구문을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
According to claim 1,
The layout data includes a first layer divided by at least one polygon,
wherein the DRC syntax includes a fourth syntax configured to check whether a polygon not defined as the at least one polygon exists on the first layer.
제9항에 있어서,
상기 검출하는 단계는, 상기 레이아웃 데이터에 대해 상기 제4 구문에 따라 DRC 검증을 수행함으로써, 상기 레이아웃 데이터로부터 정의되지 않은 폴리곤을 포함하는 DRC 결과 데이터를 생성하는 것을 특징으로 하는 컴퓨터 구현 방법.
10. The method of claim 9,
The detecting comprises generating DRC result data including undefined polygons from the layout data by performing DRC verification on the layout data according to the fourth syntax.
제1항에 있어서,
상기 DRC 구문은, 상기 레이아웃 데이터에서 플로팅 네트를 체크하도록 구성된 제5 구문을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
According to claim 1,
wherein the DRC syntax includes a fifth syntax configured to check for a floating net in the layout data.
제11항에 있어서,
상기 검출하는 단계는, 상기 레이아웃 데이터에 대해 상기 제5 구문에 따라 DRC 검증을 수행함으로써, 상기 레이아웃 데이터로부터 상기 플로팅 네트를 포함하는 DRC 결과 데이터를 생성하는 것을 특징으로 하는 컴퓨터 구현 방법.
12. The method of claim 11,
The detecting comprises generating DRC result data including the floating net from the layout data by performing DRC verification on the layout data according to the fifth syntax.
제1항에 있어서,
상기 룰 파일은, 상기 폴리곤들의 연결관계가 생략된 것을 특징으로 하는 컴퓨터 구현 방법.
According to claim 1,
The rule file is a computer implemented method, characterized in that the connection relationship of the polygons is omitted.
제1항에 있어서,
상기 LVS 검증이 완료된 상기 레이아웃 데이터로부터 기생 성분을 추출함으로써, 기생 성분 데이터를 생성하는 단계를 더 포함하는 특징으로 하는 컴퓨터 구현 방법.
According to claim 1,
and generating parasitic component data by extracting a parasitic component from the layout data for which the LVS verification has been completed.
제14항에 있어서,
상기 레이아웃 데이터 및 상기 기생 성분 데이터를 기초로 마스크를 제작하는 단계; 및
상기 마스크를 이용하여 상기 집적 회로를 제조하는 단계를 더 포함하는 컴퓨터 구현 방법.
15. The method of claim 14,
manufacturing a mask based on the layout data and the parasitic component data; and
and fabricating the integrated circuit using the mask.
집적 회로를 제조하는 방법으로서,
프로세서에 의해 LVS(Layout-Versus-Schematic) 엔진을 실행함으로써, 집적 회로의 레이아웃 데이터의 레이어들 상에 DRC(Design Rule Check)를 수행하기 위한 명령어들을 포함하는 DRC 구문(syntax)을 포함하는 룰 파일(rule file)을 기초로, 상기 집적 회로의 상기 레이아웃 데이터로부터 폴리곤들의 연결관계(connectivity)를 자동으로 검출하는 단계;
상기 프로세서에 의해 상기 LVS 엔진을 실행함으로써, 검출된 상기 연결관계를 기초로 하나 이상의 연결관계 정보를 포함하는 DRC 결과를 생성하는 단계;
상기 프로세서에 의해 상기 LVS 엔진을 실행함으로써, 상기 DRC 결과의 상기 연결관계 정보를 기초로 검출된 상기 연결관계를 이용하여 상기 레이아웃 데이터로부터 레이아웃 넷리스트를 추출하는 단계;
상기 프로세서에 의해 상기 LVS 엔진을 실행함으로써, LVS 결과 데이터를 생성하도록 상기 집적 회로의 스키메틱 데이터와 상기 레이아웃 넷리스트에 대한 LVS 검증을 수행하는 단계; 및
상기 레이아웃 데이터 및 상기 LVS 결과 데이터에 기초한 레이아웃에 따라 상기 집적 회로를 제조하는 단계를 포함하는 방법.
A method of manufacturing an integrated circuit comprising:
A rule file containing a DRC syntax including instructions for performing a Design Rule Check (DRC) on layers of layout data of an integrated circuit by executing a Layout-Versus-Schematic (LVS) engine by a processor automatically detecting connectivity of polygons from the layout data of the integrated circuit based on a rule file;
generating, by the processor, the LVS engine, a DRC result including one or more connection relationship information based on the detected connection relationship;
extracting a layout netlist from the layout data using the connection relationship detected based on the connection relationship information of the DRC result by executing the LVS engine by the processor;
performing, by the processor, the LVS engine, performing LVS verification on the layout netlist and the schematic data of the integrated circuit to generate LVS result data; and
manufacturing the integrated circuit according to a layout based on the layout data and the LVS result data.
제16항에 있어서,
상기 집적 회로를 제조하는 단계는,
상기 프로세서에 의해, 상기 LVS 결과 데이터를 기초로 상기 레이아웃 데이터를 수정하는 단계;
수정된 상기 레이아웃 데이터에 따라 마스크를 제작하는 단계; 및
상기 마스크를 이용하여 상기 집적 회로를 제조하는 단계를 포함하는 방법.
17. The method of claim 16,
Manufacturing the integrated circuit comprises:
modifying, by the processor, the layout data based on the LVS result data;
manufacturing a mask according to the modified layout data; and
and fabricating the integrated circuit using the mask.
제16항에 있어서,
상기 프로세서에 의해, 상기 LVS 결과 데이터를 생성하는 단계 이후에, 상기 레이아웃 데이터로부터 기생 성분을 추출함으로써 기생 성분 데이터를 생성하는 단계를 더 포함하는 방법.
17. The method of claim 16,
and generating, by the processor, after generating the LVS result data, parasitic component data by extracting a parasitic component from the layout data.
제18항에 있어서,
상기 집적 회로를 제조하는 단계는,
상기 프로세서에 의해, 상기 LVS 결과 데이터 및 상기 기생 성분 데이터를 기초로 상기 레이아웃 데이터를 수정하는 단계;
수정된 상기 레이아웃 데이터에 따라 마스크를 제작하는 단계; 및
상기 마스크를 이용하여 상기 집적 회로를 제조하는 단계를 포함하는 방법.
19. The method of claim 18,
Manufacturing the integrated circuit comprises:
modifying, by the processor, the layout data based on the LVS result data and the parasitic component data;
manufacturing a mask according to the modified layout data; and
and fabricating the integrated circuit using the mask.
집적 회로의 설계를 위한 컴퓨팅 시스템으로서,
상기 집적 회로에 대한 LVS(Layout-Versus-Schematic) 검증을 수행하기 위한 LVS 엔진을 저장하는 메모리; 및
상기 메모리에 액세스 가능하고, 상기 LVS 엔진을 실행하는 프로세서를 포함하고,
상기 LVS 엔진은,
상기 집적 회로의 레이아웃 데이터의 레이어들 상에 DRC(Design Rule Check)를 수행하기 위한 명령어들을 포함하는 DRC 구문을 포함하는 룰 파일을 기초로 상기 집적 회로의 상기 레이아웃 데이터로부터 폴리곤들의 연결관계를 자동으로 검출하고,
검출된 상기 연결관계를 기초로 하나 이상의 연결 정보를 포함하는 DRC 결과를 생성하며,
상기 DRC 결과의 상기 연결 정보를 기초로 레이아웃 넷리스트를 추출하며,
추출된 상기 레이아웃 넷리스트를 상기 집적 회로의 스키메틱 데이터를 비교하는 것을 특징으로 하는 컴퓨팅 시스템.
A computing system for the design of an integrated circuit, comprising:
a memory for storing an LVS engine for performing Layout-Versus-Schematic (LVS) verification for the integrated circuit; and
a processor accessible to the memory and executing the LVS engine;
The LVS engine is
Based on a rule file including a DRC syntax including instructions for performing a Design Rule Check (DRC) on the layers of the layout data of the integrated circuit, the connection relation of polygons is automatically determined from the layout data of the integrated circuit. detect,
Generates a DRC result including one or more connection information based on the detected connection relationship,
extracting a layout netlist based on the connection information of the DRC result,
and comparing the extracted layout netlist with schematic data of the integrated circuit.
KR1020170101871A 2017-05-19 2017-08-10 Computer-implemented method and computing system for designing integrated circuit and method of manufacturing integrated circuit KR102419645B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/971,079 US10628550B2 (en) 2017-05-19 2018-05-04 Method for designing an integrated circuit, and method of manufacturing the integrated circuit
CN201810461072.4A CN108959693B (en) 2017-05-19 2018-05-15 Method of designing an integrated circuit and method of manufacturing an integrated circuit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170062230 2017-05-19
KR20170062230 2017-05-19

Publications (2)

Publication Number Publication Date
KR20180127141A KR20180127141A (en) 2018-11-28
KR102419645B1 true KR102419645B1 (en) 2022-07-12

Family

ID=64561198

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170101871A KR102419645B1 (en) 2017-05-19 2017-08-10 Computer-implemented method and computing system for designing integrated circuit and method of manufacturing integrated circuit

Country Status (1)

Country Link
KR (1) KR102419645B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7285728B2 (en) * 2019-08-07 2023-06-02 株式会社日立ハイテク System and non-transitory computer readable medium for deriving electrical properties
CN111767690B (en) * 2020-06-23 2024-03-22 杰华特微电子股份有限公司 Basin detection method based on LVS tool
CN112416867A (en) * 2020-12-11 2021-02-26 北京华大九天软件有限公司 Method for comparing netlists in batches
KR102631355B1 (en) * 2022-11-22 2024-01-31 삼성전자주식회사 A method of designing a semiconductor device integrated circuit and its layout
KR102644204B1 (en) * 2022-11-30 2024-03-07 인하대학교 산학협력단 Design Automation Method and System for CMOS Circuitry

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100703982B1 (en) 2006-01-23 2007-04-09 삼성전자주식회사 Method for analyzing layout of semiconductor integrate circuit device, system for analyzing layout of semiconductor integrate circuit device, standard cell library, mask and semiconductor integrate circuit device
US20130305194A1 (en) * 2012-05-14 2013-11-14 Tongsheng Wang Validation of Integrated Circuit Designs Built With Encrypted Silicon IP Blocks

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120128261A (en) * 2011-05-17 2012-11-27 삼성전자주식회사 Method for designing semiconductor element
KR101937851B1 (en) * 2012-06-27 2019-04-10 삼성전자 주식회사 Semiconductor integrated circuit, method of designing the same, and method of fabricating the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100703982B1 (en) 2006-01-23 2007-04-09 삼성전자주식회사 Method for analyzing layout of semiconductor integrate circuit device, system for analyzing layout of semiconductor integrate circuit device, standard cell library, mask and semiconductor integrate circuit device
US20130305194A1 (en) * 2012-05-14 2013-11-14 Tongsheng Wang Validation of Integrated Circuit Designs Built With Encrypted Silicon IP Blocks

Also Published As

Publication number Publication date
KR20180127141A (en) 2018-11-28

Similar Documents

Publication Publication Date Title
KR102419645B1 (en) Computer-implemented method and computing system for designing integrated circuit and method of manufacturing integrated circuit
US20210200929A1 (en) System for designing a semiconductor device, device made, and method of using the system
US20100306720A1 (en) Programmable Electrical Rule Checking
US10628550B2 (en) Method for designing an integrated circuit, and method of manufacturing the integrated circuit
US10817637B2 (en) System and method of designing integrated circuit by considering local layout effect
WO2008045900A1 (en) Properties in electronic design automation
US20140337810A1 (en) Modular platform for integrated circuit design analysis and verification
US10928442B2 (en) Computer implemented methods and computing systems for designing integrated circuits by considering back-end-of-line
US20170344692A1 (en) Computer-implemented method of designing an integrated circuit
US11275883B2 (en) Machine learning-based classification in parasitic extraction automation for circuit design and verification
US10268796B2 (en) Method and system for pin layout
US10346579B2 (en) Interactive routing of connections in circuit using auto welding and auto cloning
KR102320823B1 (en) Integrated circuit and method of designing layout thereof
US20110145770A1 (en) Device Annotation
US9262574B2 (en) Voltage-related analysis of layout design data
US10360331B2 (en) Scoped simulation for electrostatic discharge protection verification
US20100229133A1 (en) Property-Based Classification In Electronic Design Automation
US10896283B1 (en) Noise-based optimization for integrated circuit design
US8875075B2 (en) Generating pattern-based estimated RC data with analysis of route information
US20100023897A1 (en) Property-Based Classification In Electronic Design Automation
US10984164B1 (en) Method, system, and product for generating and maintaining a physical design for an electronic circuit having sync group constraints for design rule checking
US20110119544A1 (en) User Guided Short Correction And Schematic Fix Visualization
US10509888B1 (en) System and method for forming integrated device
Kim et al. Practical Approach to Cell Replacement for Resolving Pin Inaccessibility
US20120192134A1 (en) User Guided Short Correction And Schematic Fix Visualization

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant