KR20180127141A - 집적 회로를 설계하기 위한 컴퓨터 구현 방법, 컴퓨팅 시스템, 및 집적 회로의 제조 방법 - Google Patents

집적 회로를 설계하기 위한 컴퓨터 구현 방법, 컴퓨팅 시스템, 및 집적 회로의 제조 방법 Download PDF

Info

Publication number
KR20180127141A
KR20180127141A KR1020170101871A KR20170101871A KR20180127141A KR 20180127141 A KR20180127141 A KR 20180127141A KR 1020170101871 A KR1020170101871 A KR 1020170101871A KR 20170101871 A KR20170101871 A KR 20170101871A KR 20180127141 A KR20180127141 A KR 20180127141A
Authority
KR
South Korea
Prior art keywords
drc
integrated circuit
data
layout
layout data
Prior art date
Application number
KR1020170101871A
Other languages
English (en)
Other versions
KR102419645B1 (ko
Inventor
김민수
이용석
신한신
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US15/971,079 priority Critical patent/US10628550B2/en
Priority to CN201810461072.4A priority patent/CN108959693B/zh
Publication of KR20180127141A publication Critical patent/KR20180127141A/ko
Application granted granted Critical
Publication of KR102419645B1 publication Critical patent/KR102419645B1/ko

Links

Images

Classifications

    • G06F17/5068

Landscapes

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

Abstract

본 개시는 집적 회로의 설계를 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템을 개시한다. 본 개시의 기술적 사상에 따른 집적 회로의 설계를 위한 컴퓨터 구현 방법은 DRC 구문을 포함하는 룰 파일을 기초로 집적 회로의 레이아웃 데이터로부터 폴리곤들의 연결관계를 검출하고, 검출된 연결관계를 이용하여 레이아웃 데이터로부터 레이아웃 넷리스트를 추출하며, 집적 회로의 스키메틱 데이터와 레이아웃 넷리스트를 비교함으로써 LVS 결과 데이터를 생성하도록 집적 회로에 대한 LVS 검증을 수행한다.

Description

집적 회로를 설계하기 위한 컴퓨터 구현 방법, 컴퓨팅 시스템, 및 집적 회로의 제조 방법{Computer-implemented method and computing system for designing integrated circuit and method of manufacturing integrated circuit}
본 개시의 기술적 사상은 집적 회로에 관한 것이며, 더욱 상세하게는, 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템, 그리고, 집적 회로의 제조 방법에 관한 것이다.
집적 회로는 트랜지스터, 저항, 다이오드 등과 같은 다양한 소자들을 포함하는 스키메틱(schematic) 데이터에 의해 정의될 수 있다. 집적 회로의 레이아웃 데이터는 스키메틱 데이터에 기초하여 생성될 수 있고, 복수의 폴리곤들(polygons)을 포함할 수 있다. 레이아웃 데이터가 스키메틱 데이터와 일치하는지 여부를 검증하기 위해 LVS(Layout-Versus-Schematic) 검증이 수행될 수 있다. 구체적으로, LVS 검증은 레이아웃 데이터와 스키메틱 데이터에서 넷(net), 소자, 및 파라미터의 일치 여부를 검증할 수 있다. 넷은 집적 회로의 레이아웃에서 하나의 상호연결에 대응할 수 있고, 하나의 상호연결은 서로 전기적으로 연결된 메탈 레이어들 및 비아들을 포함하는 배선 구조에 대응할 수 있다.
본 개시의 기술적 사상은 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템, 및 집적 회로의 제조 방법을 제공한다.
본 개시의 기술적 사상에 따른 집적 회로의 설계를 위한 컴퓨터 구현 방법은, 프로세서에 의해, DRC(Design Rule Check) 구문(syntax)을 포함하는 룰 파일(rule file)을 기초로, 상기 집적 회로의 레이아웃 데이터로부터 폴리곤들의 연결관계(connectivity)를 검출하는 단계, 검출된 상기 연결관계를 이용하여 상기 레이아웃 데이터로부터 레이아웃 넷리스트를 추출하는 단계, 및 상기 집적 회로의 스키메틱 데이터와 상기 레이아웃 넷리스트를 비교함으로써 LVS(Layout-Versus-Schematic) 결과 데이터를 생성하도록 상기 집적 회로에 대한 LVS 검증을 수행하는 단계를 포함한다.
또한, 본 개시의 기술적 사상에 따른 집적 회로의 제조 방법은 집적 회로의 레이아웃 데이터에 대해 DRC를 수행함으로써, 상기 레이아웃 데이터로부터 폴리곤들의 연결관계를 검출하고, 레이아웃 넷리스트를 추출하는 단계, 추출된 상기 레이아웃 넷리스트 및 상기 집적 회로의 스키메틱 데이터에 대해 LVS 검증을 수행함으로써 LVS 결과 데이터를 생성하는 단계, 및 상기 레이아웃 데이터 및 상기 LVS 결과 데이터에 기초한 레이아웃에 따라 상기 집적 회로를 제조하는 단계를 포함한다.
또한, 본 개시의 기술적 사상에 따른 집적 회로의 설계를 위한 컴퓨팅 시스템은 상기 집적 회로에 대한 LVS 검증을 수행하기 위한 LVS 엔진을 저장하는 메모리, 및 상기 메모리에 액세스 가능하고, 상기 LVS 엔진을 실행하는 프로세서를 포함하고, 상기 LVS 엔진은, DRC 구문을 포함하는 룰 파일을 기초로 상기 집적 회로의 레이아웃 데이터로부터 폴리곤들의 연결관계를 검출하고, 검출된 상기 연결관계를 이용하여 상기 레이아웃 데이터로부터 레이아웃 넷리스트를 추출하며, 추출된 상기 레이아웃 넷리스트를 상기 집적 회로의 스키메틱 데이터를 비교한다.
본 개시의 기술적 사상에 따르면, DRC 구문을 포함하는 룰 파일을 기초로 레이아웃 데이터로부터 폴리곤들의 연결관계를 자동으로 검출하고, 검출된 연결관계를 이용하여 LVS 검증을 수행할 수 있다. 이에 따라, 레이아웃 데이터에 포함된 필수적인 연결관계만을 검출할 수 있으므로, 연결관계 정보에 해당하는 데이터 사이즈를 줄일 수 있다. 또한, 설계자가 직접 연결관계를 기술하는 작업을 생략할 수 있으므로, LVS 코딩 시간이 단축될 수 있으며, 동시에, LVS 검증의 수행 시간이 증가하지 않을 수 있다. 나아가, DRC 구문은 루프 알고리즘을 이용하여 DRC 루프 구문으로 구현할 수 있고, 이에 따라, 반도체 공정의 미세화에 의해 레이아웃에서 폴리곤들의 개수가 증가하더라도 연결관계 정보의 누락을 방지할 수 있다.
도 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은 본 개시의 일 실시예에 따른 집적 회로의 설계 방법을 개략적으로 나타내는 흐름도이다.
도 1을 참조하면, 집적 회로의 설계 방법은 집적 회로에 대한 레이아웃을 디자인 및 검증하는 단계로서, 집적 회로를 설계하기 위한 툴을 이용하여 수행될 수 있다. 이때, 집적 회로를 설계하기 위한 툴은 프로세서에 의해 실행되는 복수의 명령어들(instructions)을 포함하는 프로그램 또는 소프트웨어 모듈일 수 있고, 컴퓨터로 읽을 수 있는 저장 매체에 저장될 수 있다. 이에 따라, 집적 회로의 설계 방법을 집적 회로의 설계를 위한 컴퓨터 구현(computer implemented) 방법이라고 지칭할 수 있다.
단계 S110에서, 표준 셀 라이브러리를 이용하여, 집적 회로에 대해 RTL(Register Transfer Level)에서 정의된 입력 데이터를 합성함으로써, 게이트 레벨의 넷리스트(netlist)를 생성할 수 있다. 예를 들어, 단계 S110은 합성 툴을 이용하여 프로세서에 의해 수행될 수 있다. 단계 S130에서, 넷리스트에 따라 집적 회로를 정의하는 표준 셀들을 배치 및 라우팅(Placement & Routing, 이하 "P&R")함으로써, 집적 회로의 레이아웃 데이터를 생성한다. 예를 들어, 단계 S130은 P&R 툴을 이용하여 프로세서에 의해 수행될 수 있다. 예를 들어, 레이아웃 데이터는 GDS(Graphic Design System) 또는 GDSII 형식의 데이터일 수 있다.
단계 S150에서, 집적 회로에 대해 LVS 검증을 수행함으로써 LVS 결과 데이터를 생성한다. 예를 들어, 단계 S150은 LVS 검증 툴을 이용하여 프로세서에 의해 수행될 수 있다. 구체적으로, 레이아웃 데이터에 대해 DRC(Design Rule Check) 동작을 수행함으로써 레이아웃 데이터로부터 폴리곤들의 연결관계를 자동으로 검출하고, 검출된 연결관계를 이용하여 LVS 검증을 수행할 수 있다. 이때, LVS 검증은 집적 회로의 스키메틱 데이터와 집적 회로의 레이아웃 데이터가 일치하는지 여부를 검증하는 동작을 지칭할 수 있다. 일 실시예에 따르면, 스키메틱 데이터 및 레이아웃 데이터는 LVS 검증 툴에 입력 파일로써 제공될 수 있고, LVS 결과 데이터는 LVS 검증 툴에서 출력 파일로써 출력될 수 있다.
단계 S170에서, 레이아웃 데이터로부터 기생 성분을 추출함으로써 기생 성분 데이터를 생성한다. 예를 들어, 단계 S170은 PEX(Parasitic Extraction) 툴을 이용하여 프로세서에 의해 수행될 수 있다. 예를 들어, 기생 성분 데이터는 SPEF(Standard Parasitic Extraction Format) 파일로써 생성될 수 있다. 일 실시예에 따르면, 레이아웃 데이터는 PEX 툴에 입력 파일로써 제공될 수 있고, SPEF 파일은 P&R 툴에서 출력 파일로써 출력될 수 있다.
도 2는 본 개시의 일 실시예에 따른 집적 회로의 설계를 위한 컴퓨팅 시스템(100)을 나타내는 블록도이다.
도 2를 참조하면, 집적 회로를 설계하기 위한 컴퓨팅 시스템(이하 '집적 회로 설계 시스템'이라고 지칭함)(100)은 프로세서(110), 메모리(130), 입출력 장치(150), 저장 장치(170) 및 버스(190)를 포함할 수 있다. 집적 회로 설계 시스템(100)은 도 1의 단계 S110 내지 S170을 포함하는 집적 회로 설계 동작을 수행할 수 있다. 일 실시예에서, 집적 회로 설계 시스템(100)은 일체화된 디바이스로 구현될 수 있고, 이에 따라, 집적 회로 설계 장치라고 지칭할 수도 있다. 집적 회로 설계 시스템(100)은 반도체 장치의 집적 회로를 설계하기 위한 전용 장치로 제공될 수도 있지만, 다양한 시뮬레이션 툴이나 설계 툴들을 구동하기 위한 컴퓨터일 수도 있다.
프로세서(110)는 집적 회로를 설계하기 위한 다양한 동작 중 적어도 하나를 수행하는 명령어들을 실행하도록 구성될 수 있다. 프로세서(110)는 버스(190)를 통해 메모리(130), 입출력 장치(150) 및 저장 장치(170)와 통신을 수행할 수 있다. 프로세서(110)는 메모리(130)에 로딩된 합성 모듈(130a), P&R 모듈(130b), LVS 모듈(130c), 및 PEX 모듈(130d)을 구동함으로써, 집적 회로의 설계 동작을 실행할 수 있다.
메모리(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 플래시 메모리 등의 비휘발성 메모리일 수 있다.
입출력 장치(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) 등을 포함할 수 있다.
도 3은 본 개시의 일 실시예에 따른 LVS 엔진(30)을 나타내는 블록도이다.
도 3을 참조하면, LVS 엔진(30)은 집적 회로에 대한 LVS 검증을 수행하는 프로그램일 수 있고, 예를 들어, 도 2의 메모리(130)에 저장된 LVS 모듈(130c)의 일 예에 대응할 수 있다. LVS 엔진(30)은 DRC 검증기(31) 및 LVS 검증기(32)와 같은 복수의 프로시저들을 포함할 수 있다. 여기서, 프로시저는 특정 태스크를 수행하기 위한 일련의 명령어들을 지칭할 수 있고, 함수, 루틴(routine), 서브루틴(subroutine), 서브프로그램 등으로도 지칭될 수 있다. 본 명세서에서, 프로세서(예를 들어, 도 2의 110)가 메모리(예를 들어, 도 2의 130)에 저장된 프로시저를 실행함으로써 동작을 수행하는 것은, 프로시저가 그러한 동작을 수행하는 것으로도 표현된다.
LVS 엔진(30)은 레이아웃 데이터(D10) 및 스키메틱 데이터(D20)를 수신할 수 있다. 레이아웃 데이터(D10)는 집적 회로의 레이아웃에 관한 토폴로지컬(topological) 데이터일 수 있고, 복수의 폴리곤들을 포함할 수 있다. 반도체 제조 공정을 통해서, 집적 회로는 복수의 레이어들이 적층된 구조를 가질 수 있고, 집적 회로의 레이아웃 데이터(D10)는 복수의 레이어들의 토폴로지컬 정보를 포함할 수 있다. 복수의 레이어들은 전도성 레이어 및 절연 레이어 등을 포함할 수 있고, 집적 회로의 소자는 하나 이상의 레이어에 형성된 패턴으로서 구성될 수 있다. 레이아웃 데이터(D10)에서 복수의 레이어들 및 복수의 패턴들은 폴리곤들로 표시될 수 있다. 일 실시예에서, 레이아웃 데이터(D10)는 도 1의 단계 S130의 P&R 동작이 수행되는 P&R 툴의 출력 데이터일 수 있으나, 본 발명은 이에 한정되지 않는다.
스키메틱 데이터(D20)는 트랜지스터, 저항, 다이오드 등과 같은 소자들을 포함할 수 있고, 소자들 사이의 연결관계를 정의할 수 있다. 구체적으로, 스키메틱 데이터(D20)에서 집적 회로의 소자는 대응하는 심볼(symbol)의 인스턴스(instance)로서 정의될 수 있고, 인스턴스들 각각은 와이어를 통해서 연결될 수 있다. 심볼은 동일한 기능을 수행하는 소자를 정의하는 것으로서, 예컨대 NMOS 트랜지스터, PMOS 트랜지스터, 다이오드, 저항 등의 소자들 각각은 고유한 심볼로서 정의될 수 있다. 예를 들어, 스키메틱 데이터(D20)는 트랜지스터 레벨의 넷리스트, 게이트 레벨의 넷리스트, 셀 레벨의 넷리스트 또는 IP(Intellectual Property) 레벨의 넷리스트 등을 포함할 수 있다. 일 실시예에서, 스키메틱 데이터(D20)는 도 1의 단계 S110의 합성 동작이 수행되는 합성 툴의 출력 데이터일 수 있으나, 본 발명은 이에 한정되지 않는다. 이하에서는, 도 4a 및 도 4b를 참조하여 레이아웃 데이터(D10) 및 스키메틱 데이터(D20)에 대해 상세하게 설명하기로 한다.
도 4a는 본 개시의 일 실시예에 따른 집적 회로 레이아웃(41)을 나타내고, 도 4b는 본 개시의 일 실시예에 따른 집적 회로 스키메틱(42)을 나타낸다 낸다.
도 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 트랜지스터를 포함할 수 있다.
집적 회로 레이아웃(41)을 정의하는 레이아웃 데이터(D10)는 집적 회로 스키메틱(42)을 정의하는 스키메틱 데이터(D20)에 따라 생성될 수 있다. LVS 엔진(30)은 스키메틱 데이터(D20)에 포함된 인스턴스들, 예를 들어, PMOS 트랜지스터(TR1) 및 NMOS 트랜지스터(TR2)에 대응하는 소자들이, 레이아웃 데이터(D10)에 존재하는지 여부를 검증할 수 있다. 또한, LVS 엔진(30)은 대응하는 스키메틱 데이터(D20)의 인스턴스와 레이아웃 데이터(D10)의 소자가 동일한 파라미터, 예를 들어, 길이 또는 너비를 갖는지 여부를 검증할 수 있다. 이하에서는, LVS 엔진(30)의 구체적인 동작을 설명하기로 한다.
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)에 따라 작성된 일련의 코드들을 포함할 수 있다.
일 실시예에서, 룰 파일(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)의 동작을 상세하게 설명하기로 한다.
도 5는 본 개시의 일 실시예에 따른 룰 파일(51) 및 연결관계(52)를 나타낸다.
도 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)에 대해 설명하기로 한다.
제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}").
제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}").
제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을 참조하여 후술하기로 한다.
제4 DRC 구문(514)은 레이아웃 데이터(D10)에서 파생(derived) 레이어로 정의되지 않은, 즉, 누락된(missing) 폴리곤을 체크하도록 구성될 수 있다. 예를 들어, 제4 DRC 구문(514)은 "…{@ M1 NOT A}"로 생성될 수 있다. 이때, M1은 오리지널 레이어를 나타내고, A는 오리지널 레이어로부터 파생된 폴리곤, 다시 말해, 파생 레이어를 나타낼 수 있다. 일 실시예에서, 레이아웃 데이터(D10)는 적어도 하나의 폴리곤으로 구분되는 제1 레이어를 포함하고, DRC 구문(514)은 제1 레이어 상에서 적어도 하나의 폴리곤으로 정의되지 않은 폴리곤의 존재 여부의 체크를 지시할 수 있다. 제4 구문(514)에 대해 도 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를 참조하여 후술하기로 한다.
상술한 바와 같이, 제1 내지 제5 DRC 구문들(515)과 같은 다양한 DRC 구문들을 이용하여 연결관계 미싱(missing), 연결관계 오버랩핑, 연결관계 플로팅 등을 검출할 수 있다. 일 실시예에 따르면, 제1 내지 제5 DRC 구문들(515)과 같은 다양한 DRC 구문들은 DRC 동작 시 레이아웃 데이터에 포함된 모든 연결관계를 검출할 수 있도록 코딩의 루프 방식을 통해 구현할 수 있다.
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)를 검출할 수 있다.
또한, 일 실시예에서, 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)을 포함할 수 있다.
일 실시예에서, 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를 수행하므로, 사람이 손으로 기술하고 확인하던 작업이 생략될 수 있으므로 집적 회로의 개발 기간이 단축될 수 있고, 파생 레이어로 정의되지 않은, 누락된 폴리곤을 검출할 수 있다.
다시 도 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)를 수정할 수 있다.
도 6은 본 개시의 일 실시예에 다른 집적 회로에 대한 LVS 검증 방법을 나타내는 흐름도이다.
도 6을 참조하면, 본 실시예에 따른 LVS 검증 방법은 예를 들어, 도 1의 단계 S150의 일 구현 예에 대응할 수 있다. 따라서, 도 1 내지 도 5를 참조하여 상술된 내용은 본 실시예에도 적용될 수 있으며, 중복된 설명은 생략하기로 한다. LVS 검증 방법은 단계 S210, S230 및 S250을 포함할 수 있고, 단계 S210, S230 및 S250은 각각 프로세서(예를 들어, 도 2의 110)에 의해 수행될 수 있다.
단계 S210에서, DRC 구문을 포함하는 룰 파일을 기초로 레이아웃 데이터로부터 폴리곤들의 연결관계를 검출한다. 일 실시예에서, 룰 파일은 레이아웃 데이터에 포함된 복수의 레이어들, 및 복수의 레이어들 각각에 포함되는 복수의 폴리곤들에 대한 정의를 더 포함할 수 있다. 일 실시예에서, DRC 구문은 루프 알고리즘으로 구현된 DRC 루프 구문일 수 있다. DRC 루프 구문에 따라 레이아웃 데이터에 포함된 복수의 레이어들 각각에 대하여, 그리고, 각 레이어에 포함된 복수의 폴리곤들 각각에 대하여 연결관계를 검출할 수 있다. 예를 들어, DRC 구문은 'foreach 루프'를 이용하여 구현될 수 있다.
단계 S230에서, 연결관계를 이용하여 레이아웃 데이터로부터 레이아웃 넷리스트를 추출한다. 단계 S250에서, 집적 회로의 스키메틱 데이터와 레이아웃 넷리스트를 비교함으로써 LVS 결과 데이터를 생성하도록 집적 회로에 대한 LVS 검증을 수행한다. 일 실시예에서, 스키메틱 데이터로부터 소스 넷리스트를 컴파일하는 단계를 더 포함할 수 있고, LVS 검증은 소스 넷리스트와 레이아웃 넷리스트를 비교함으로써 수행될 수 있다. 예를 들어, LVS 검증 단계는 루프 알고리즘을 이용하여 폴리곤들의 연결관계, 기생 성분에 대한 더블 카운팅, 쇼트/오픈 체크 등을 수행할 수 있다.
도 7a는 본 개시의 일 실시예에 따른 LVS 동작을 나타내고, 도 7b는 본 개시의 비교예에 따른 LVS 동작을 나타낸다.
도 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)에서 실제로 연결된 폴리곤들에 대한 두 개의 연결관계들을 포함할 수 있다.
도 7b를 참조하면, 종래에는 레이아웃 데이터를 생성하기 전에 인간, 즉, 설계자가 연결관계(74)를 텍스트로 기술하였다. 예를 들어, 연결관계(74)는 'CONNECT' 함수 또는 'push_conn_stack' 함수를 이용하여 기술되었다. 예를 들어, 연결관계(74)는 'CONNECT A B BY V1'으로 기술될 수 있고, 여기서, 'CONNECT'는 함수이고, A, B, V1는 인자들이다. 집적 회로의 미세화 공정에 의해 집적 회로에서 인자들의 개수가 증가함에 따라 인자들의 조합이 지수적으로 증가하게 되며, 이에 따라, 휴먼 에러(human error)가 지속적으로 발생할 수 있다.
집적 회로에서 넷 연결은 와이어들로 이루어지며, 와이어들은 메탈 레이어들 및 비아들을 포함할 수 있다. LVS 검증 시, 넷 연결을 정확히 검출하지 않으면, 실제 마스크에서 넷의 쇼트(Short)와 오픈(Open)을 구별하지 못하게 될 수 있다. 그러나 기존에는 이러한 결정을 사람이 타이핑을 통해서 수행하였다. 공정의 미세화에 따라, 와이어들의 물리적인 관계가 더 이상 사람의 눈으로 판별할 수 없는 단계에 이르렀기 때문에 CAE(Computer Aided Engineering) 차원의 해결 방법이 요구된다. 본 개시의 실시예들에 따르면, DRC 검증 단계에서 레이아웃 데이터(71)로부터 자동으로 폴리곤들의 연결관계(72)를 검출하고, 검출된 연결관계(72)를 LVS 검증 단계에 적용함으로써 휴먼 에러를 방지할 수 있다. 이에 따라, LVS 검증의 오류로 인하여 발생하는 마스크 페일(mask fail)을 방지할 수 있다.
도 8은 본 개시의 일 실시예에 따른 LVS 코딩 방법을 나타내는 흐름도이다.
도 8을 참조하면, 본 실시예에 따른 LVS 코딩 방법은 LVS 검증에 이용되는 룰 파일을 생성하는 방법에 대응할 수 있다. 예를 들어, LVS 코딩 방법은 도 1의 단계 S150에 포함되거나 도 6의 단계 S210 이전에 수행될 수 있다.
단계 S310에서, 오리지널 레이어를 정의한다. 단계 S330에서, 파생 레이어를 정의한다. 오리지널 레이어는 복수의 파생 레이어들로 구분(classify)될 수 있고, 복수의 파생 레이어들은 복수의 폴리곤들에 대응할 수 있다. 일 실시예에서, 오리지널 레이어는 불순물(impurity)의 농도 또는 메탈 레이어의 두께 등을 포함하는 공정 근거에 의해 복수의 파생 레이어들로 구분될 수 있다. 일 실시예에서, 오리지널 레이어는 코딩에 의해 논리적으로 복수의 파생 레이어들로 구분될 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 오리지널 레이어는 다양한 기준들에 의해 복수의 파생 레이어들로 구분될 수 있다.
단계 S350에서, 소자 및 파라미터를 정의한다. 예를 들어, 소자는 PMOS, NMOS 등을 포함할 수 있다. 파라미터는 소자의 전기적인 특성과 관련된 기하학적 파라미터일 수 있고, 예를 들어, 너비와 길이 등을 포함할 수 있다. 일 실시예에서, LVS 코딩 방법은 단계 S350 이후에, LVS 검증 단계에서 레이아웃 데이터와 스키메틱 데이터 사이의 비교 대상을 정의하는 단계를 더 포함할 수 있다. 단계 S370에서, ERC(Electrical Rule Check)를 정의한다.
종래에는 LVS 코딩 과정에서 단계 S330과 S350 사이에서 연결관계를 정의하는 단계를 수행되었고, 집적 회로의 레이아웃 데이터가 생성되기 전에 설계자가 직접 연결관계를 기술하였다. 그러나, 본 실시예에 따르면, LVS 코딩 과정에서 설계자에 의해 연결관계를 정의하는 단계는 생략될 수 있고, 이에 따라, 룰 파일(예를 들어, 도 5의 51)은 폴리곤들의 연결관계가 생략될 수 있다. 따라서, 본 개시의 실시예들에 따른 룰 파일은 연결관계와 관련된 코딩이 생략될 수 있으며, 예를 들어, 'CONNECT' 함수 또는 'push_conn_stack'를 포함하지 않을 수 있다.
도 9는 본 개시의 일 실시예에 따른 LVS 엔진(90)를 나타내는 블록도이다.
도 9를 참조하면, LVS 엔진(90)은 추출기(93) 및 비교기(95)를 포함할 수 있다. 추출기(93)는 룰 파일(D30)을 기초로 레이아웃 데이터(D10)로부터 폴리곤들의 연결관계를 추출하고, 추출된 연결관계 및 룰 파일(D30)을 기초로 레이아웃 데이터(D10)로부터 레이아웃 넷리스트(D45)를 추출할 수 있다. 일 실시예에서, 추출기(93)는 룰 파일(D30)에 포함된 DRC 구문(DS)에 따라 레이아웃 데이터(D10)에 대해 DRC를 수행하도록 구성된 DRC 프로시저를 포함하도록 구성될 수 있다.
비교기(95)는 레이아웃 넷리스트(D45)와 스키메틱 데이터(D20)를 비교할 수 있고, 구체적으로, 넷의 연결 상태, 소자들의 개수, 너비와 길이 등의 파라미터를 비교할 수 있다. 비교 결과, 레이아웃 넷리스트(D45)와 스키메틱 데이터(D20)가 일치하면, 비교기(95)는 패쓰 결과를 포함하는 LVS 결과 데이터(D50)를 생성할 수 있다. 한편, 레이아웃 넷리스트(D45)와 스키메틱 데이터(D20)가 불일치하면, 비교기(95)는 페일 결과를 포함하는 LVS 결과 데이터(D50)를 생성할 수 있다. 일 실시예에서, LVS 엔진(90)은 스키메틱 데이터(D20)로부터 소스 넷리스트를 생성하기 위한 컴파일러를 더 포함할 수 있다.
도 10은 본 개시의 일 실시예에 따른 LVS 엔진(90a)을 나타내는 블록도이다.
도 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)를 생성할 수 있다.
도 11a는 본 개시의 일 실시예에 따른 집적 회로의 레이아웃에 포함된 배선 구조의 일 예(111)를 나타내고, 도 11b는 본 개시의 일 실시예에 따른 룰 파일(113)을 나타낸다.
도 11a를 참조하면, 배선 구조(111)는 수직 방향으로 적층된 복수의 메탈 레이어들(M1 내지 M5) 및 복수의 비아들(V1 내지 V4)을 포함할 수 있다. 각 비아(V1 내지 V4)는 서로 다른 층에 위치하는 메탈 레이어들(M1 내지 M5)을 전기적으로 연결할 수 있다. 예를 들어, 제1 비아(V1)는 제1 메탈 레이어(M1)와 제2 메탈 레이어(M2)의 사이에 배치되어, 제1 메탈 레이어(M1)와 제2 메탈 레이어(M2)를 전기적으로 연결시킬 수 있다.
도 11b를 참조하면, 종래의 룰 파일(112)은 설계자가 기술한, 배선 구조(111)의 연결관계에 대응하는 4줄의 'CONNECT' 구문들을 포함할 수 있다. 이러한 단순한 'CONNECT' 구문을 기술하는 경우에도, 텍스트 타이핑(typing) 과정에서 오타 및 누락이 발생할 수 있다. 그러나, 본 개시의 일 실시예에 따른 룰 파일(113)은 DRC 구문들을 포함할 수 있고, DRC 구문들은 루프 알고리즘을 이용하여 배선 구조(111)에 포함된 모든 레이어들 및 모든 폴리곤들에 대한 연결관계를 자동으로 검출하도록 지시할 수 있다.
도 12a는 본 개시의 일 실시예에 따른 집적 회로의 레이아웃에 포함된 배선 구조의 다른 예(121)를 나타내고, 도 12b는 본 개시의 일 실시예에 따른 룰 파일(123)을 나타낸다.
도 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 방향)으로 복수의 파생 레이어들로 구분될 수 있다.
예를 들어, 제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개에 대응할 수 있다.
도 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)을 포함할 수 있다.
한편, 본 개시의 일 실시예에 따른 룰 파일(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로 정의할 수 있다.
제2 부분(123b)에서 DRC 구문들은 루프 알고리즘을 이용하여 배선 구조(121)에 포함된 모든 레이어들 및 모든 폴리곤들에 대한 연결관계를 자동으로 검출하도록 지시할 수 있다. 예를 들어, DRC 구문들은 foreach Tcl(Tool Command Language)를 포함하고, 이에 따라, 각 오리지널 레이어에 포함된 파생 레이어들에 대해 DRC의 수행을 지시할 수 있다. 따라서, 집적 회로의 미세화에 의해, 레이아웃 데이터에 포함된 폴리곤들의 개수가 급격히 증가하더라도, 폴리곤들의 연결관계를 모두 검출할 수 있다.
도 13은 본 개시의 일 실시예에 따른 룰 파일(131)의 일 예를 나타낸다.
도 13을 참조하면, 룰 파일(131)은 오리지널 레이어들 및 파생 레이어들을 정의하는 제1 부분(131a) 및 DRC 구문들을 포함하는 제2 부분(131b)을 포함할 수 있다. 제1 부분(131a)은 도 12b의 제1 부분(123a)의 일 예에 대응하고, 제2 부분(131b)은 도 12b의 제2 부분(123b)의 일 예에 대응할 수 있다. 제2 부분(131b)에 포함된 DRC 구문은 foreach 루프를 이용하여 구현될 수 있고, 이에 따라, 레이아웃 데이터에 포함된 모든 레이어들 및 각 레이어에 포함된 모든 파생 레이어들, 즉, 폴리곤들에 대해 연결관계를 자동으로 검출할 수 있다.
도 14는 본 개시의 일 실시예에 따른 DRC 동작의 일 예를 나타낸다.
도 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)의 연결관계를 자동으로 검출할 수 있다.
레이아웃 데이터(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) 파일이라고 지칭할 수 있다.
도 15는 본 개시의 일 실시예에 따른 DRC 동작의 다른 예를 나타낸다.
도 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)의 연결관계를 자동으로 검출할 수 있다.
레이아웃 데이터(D10b)는 제1 및 제2 메탈 레이어들(M1, M2)과 제1 비아(V1)가 연결되는 수직 연결관계를 전혀 포함하지 않을 수 있다. 따라서, DRC 결과 데이터(D40b)는 검출된 제1 및 제2 메탈 레이어들(M1, M2)과 제1 비아(V1)의 연결관계들의 연결관계들의 전체 개수가 0개라는 정보를 포함할 수 있다.
도 16은 본 개시의 일 실시예에 따른 DRC에 의한 연결관계 검출 동작의 일 예를 나타낸다.
도 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 방향)으로 연결될 수 있다.
일 실시예에 따르면, 룰 파일(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"만 포함할 수 있다.
도 17은 본 개시의 일 실시예에 따른 DRC에 의한 연결관계 검출 동작의 일 예를 나타낸다.
도 17을 참조하면, 오리지널 레이어는 제1 메탈 레이어(M1)이고, 제1 메탈 레이어(M1)는 제1 내지 제3 파생 레이어들, 즉, 제1 내지 제3 폴리곤들(A, B, C)로 구분될 수 있다. 레이아웃 데이터(171)에 따르면, 제1 및 제3 폴리곤들(A, C)이 제2 방향(예를 들어, Y 방향)으로 연결될 수 있다.
일 실시예에 따르면, 룰 파일(172)은 도 16의 룰 파일(162)과 실질적으로 동일할 수 있다. 따라서, 룰 파일(172)에 포함된 DRC 구문에 따라 제1 메탈 레이어(M1)에 포함된 파생 레이어들(A 내지 C) 각각에 대해 DRC를 수행할 수 있다. DRC 결과 데이터(173)는 레이아웃 데이터(171)에서 실제로 연결된 폴리곤들의 필수적인 연결관계인 "CONNECT C A"만 포함할 수 있다.
도 18은 본 개시의 일 실시예에 따른 DRC에 의한 연결관계 검출 동작의 일 예를 나타낸다.
도 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)에서 기생 저항 또는 기생 커패시턴스와 같은 기생 성분이 중복되어 추출될 수 있다. 이에 따라, 기생 성분 데이터에 오류가 발생할 수 있고, 그로 인해 집적 회로의 타이밍 분석 결과에도 오류가 발생할 수 있다. 따라서, 측면 연결관계에서 오버랩 영역의 검출이 필요하다. 그러나, 종래 기술에 따르면 레이아웃의 생성 전에 연결관계를 기술하므로 오버랩 영역을 미리 예측하지 못할 것이고, 이에 따라, 오버랩 영역을 검출하기 어려웠다.
일 실시예에 따르면, 룰 파일(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"만 포함할 수 있다.
도 19는 본 개시의 일 실시예에 따른 DRC에 의한 연결관계 검출 동작의 일 예를 나타낸다.
도 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)에 대한 연결관계를 미리 예측하지 못할 것이다.
일 실시예에 따르면, 룰 파일(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)를 생성할 수 있다.
도 20a 및 도 20b는 본 개시의 일 실시예에 따른 DRC에 의한 연결관계 검출 동작의 예들을 나타낸다.
도 20a를 참조하면, 레이아웃 데이터(201)는 배선 구조(201a)를 포함할 수 있고, 배선 구조(201a)는 수직으로 적층된 제1 포트(PORT1), 제1 컨택(CA) 및 제1 메탈 레이어(M1)를 포함할 수 있다. 예를 들어, 제1 포트(PORT1)에 연결되는 입력 핀 또는 출력 핀이 제1 메탈 레이어(M1) 상부의 제2 메탈 레이어로 구현되는 경우, 배선 구조(201a)는 제1 포트(PORT1)에 연결되는 제2 메탈 레이어를 포함하지 않으므로, 배선 구조(201a)는 플로팅 넷이 될 수 있다.
만약 룰 파일이 "… {@ (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)를 생성할 수 있다.
도 20b를 참조하면, 레이아웃 데이터(204)는 배선 구조(204a)를 포함할 수 있고, 배선 구조(204a)는 수직으로 적층된 제1 포트(PORT1), 제1 컨택(CA), 제1 메탈 레이어(M1), 비아(V1) 및 제2 메탈 레이어(M2)를 포함할 수 있다. 예를 들어, 제2 메탈 레이어(M2)가 입력 핀 또는 출력 핀으로 구현되는 경우, 배선 구조(204a)는 플로팅 넷이 아닌 정상 넷이 될 수 있다. 일 실시예에 따르면, 룰 파일(202)에 포함된 DRC 구문에 따라 레이아웃 데이터(204)에 대해 DRC를 수행함으로써, DRC 구문을 만족하는 두 층 이상의 메탈 레이어들이 배치되는 넷이 1개 임을 나타내는 DRC 결과 데이터(205)를 생성할 수 있다.
도 21은 본 개시의 일 실시예에 따른 DRC에 의한 연결관계 검출 동작의 일 예를 나타낸다.
도 21을 참조하면, 레이아웃 데이터(211)는 최종 메탈 레이어(Last Metal layer)(LM)를 포함하고, 최종 메탈 레이어(LM)는 패드에 대응할 수 있다. 레이아웃 데이터(211)에서, 최종 메탈 레이어(LM) 하부에 비아 및 하부 메탈 레이어가 배치되지 않을 경우, 최종 메탈 레이어(LM)는 플로팅 넷이 될 수 있다.
종래에는 레이아웃의 생성 전에 기술되는 연결관계에서 최종 메탈 레이어(LM)를 패드로 기술할 수 있고, 이에 따라, LVS 검증 단계에서 최종 메탈 레이어(LM)를 플로팅 넷으로 검출할 수 없었다. 그러나, 일 실시예에 따르면, 룰 파일은 패드와 같은 특정 포트에 대해 다른 메탈 레이어들이 연결되도록 배선 구조를 제한하는 DRC 구문(예를 들어, "… {@ (LM AND M1) AND V1")을 포함할 수 있다. 따라서, 룰 파일에 포함된 DRC 구문에 따라 레이아웃 데이터(211)에 대한 DRC를 수행함으로써 최종 메탈 레이어가 플로팅 넷임을 나타내는 DRC 결과 데이터(212)를 생성할 수 있다.
도 1 내지 도 21을 참조하여 상술한 바와 같이, 본 개시의 실시예들에 따르면, LVS 검증 단계에 DRC 검증 방식을 적용할 수 있다. 이로써, 레이아웃과 스키매틱을 비교하는 LVS 검증 단계에서 연결관계 정보를 누락하는 가능성을 줄일 수 있다. 구체적으로, 실시예들에 따르면, LVS 검증 시에는 연결되었지만 실제 마스크(real mask)에서는 패턴들이 끊긴 경우, LVS 검증 시에는 끊겼지만 실제 마스크에서는 패턴들이 연결된 경우, LVS 검증에서는 컨덕터(conductor)가 존재하지 않지만 실제 마스크에서는 존재하는 경우, LVS 검증에서는 컨덕터가 존재하지만 실제 마스크에서는 존재하지 않는 경우 등과 같은 에러를 모두 검출할 수 있다. 또한, 실시예들에 따르면, 집적 회로가 플로팅 넷을 포함하는 에러도 검출할 수 있다.
도 22는 본 개시의 일 실시예에 따른 집적 회로의 제조 방법을 개략적으로 나타내는 흐름도이다.
도 22를 참조하면, 집적 회로의 제조 방법은 집적 회로의 설계 및 집적 회로의 제조 공정으로 구분될 수 있다. 집적 회로의 설계는 단계 S410 및 S430을 포함하고, 집적 회로의 제조 공정은 단계 S450 및 S470을 포함할 수 있다. 집적 회로의 제조 공정은 레이아웃 데이터를 기초로 집적 회로에 따른 반도체 장치를 제조하는 단계로서, 반도체 공정 모듈에서 수행될 수 있다. 본 실시예에 따른 집적 회로의 제조 방법은 도 1 내지 도 21을 참조하여 상술된 집적 회로의 설계 방법을 수행함으로써 생성된 레이아웃 데이터를 기초로 집적 회로를 제조할 수 있다.
단계 S410에서, 집적 회로에 대해 LVS 검증을 수행한다. 구체적으로, DRC 구문을 포함하는 룰 파일을 기초로 레이아웃 데이터에 대해 DRC를 수행함으로써 레이아웃 데이터로부터 폴리곤들의 연결관계를 자동으로 검출하고, 검출된 연결관계를 이용하여 레이아웃 데이터로부터 레이아웃 넷리스트를 추출하고, 레이아웃 넷리스트와 스키메틱 데이터를 비교함으로써 LVS 검증을 수행한다. 단계 S410은 도 1의 S150, 또는 도 6의 단계 S210 내지 S250에 대응할 수 있고, 도 1 내지 도 21을 참조하여 상술된 실시예들은 본 실시예에도 적용될 수 있다. 단계 S430에서, LVS 검증이 완료된 레이아웃 데이터에 대해 기생 성분 추출 동작을 수행한다. 단계 S430은 도 1의 S170에 대응할 수 있다.
단계 S450에서, 레이아웃 데이터를 기초로 마스크를 제작한다. 일 실시예에서, 단계 S430에서 생성된 기생 성분 데이터를 기초로 레이아웃 데이터를 수정할 수 있고, 수정된 레이아웃 데이터에 따라 마스크를 생성할 수 있다. 구체적으로, 먼저 레이아웃 데이터를 기초로 OPC(Optical Proximity Correction)를 수행할 수 있는데, OPC는 광 근접 효과에 따른 오차를 반영하여 레이아웃을 변경하는 공정을 지칭한다. 이어서, OPC 수행 결과에 따라 변경된 레이아웃에 따라 마스크를 제조할 수 있다. 이때, OPC를 반영한 레이아웃, 예컨대, OPC가 반영된 GDSII를 이용하여 마스크를 제조할 수 있다.
단계 S470에서, 마스크를 이용하여 집적 회로를 제조한다. 구체적으로, 복수의 마스크들을 이용하여 웨이퍼 등과 같은 반도체 기판 상에 다양한 반도체 공정을 진행하여 집적 회로가 구현된 반도체 장치를 형성한다. 예를 들어, 마스크를 이용하는 공정은 리소그라피 공정을 통한 패터닝 공정을 의미할 수 있다. 이러한 패터닝 공정을 통해 반도체 기판이나 물질층 상에 원하는 패턴을 형성할 수 있다. 한편, 반도체 공정은 증착 공정, 식각 공정, 이온 공정, 세정 공정 등을 포함할 수 있다. 또한, 반도체 공정은 반도체 소자를 PCB 상에 실장하고 밀봉재로 밀봉하는 패키징 공정을 포함할 수도 있고, 반도체 소자나 패키지에 대해 테스트를 하는 테스트 공정을 포함할 수도 있다.
도 23은 본 개시의 일 실시예에 따른 집적 회로의 제조 방법을 구체적으로 나타내는 흐름도이다.
도 23을 참조하면, 단계 S510에서, 집적 회로의 레이아웃 데이터에 대해 DRC를 수행함으로써 레이아웃 데이터로부터 폴리곤들의 연결관계를 검출하고, 레이아웃 넷리스트를 추출한다. 일 실시예에서, 레이아웃 넷리스트를 추출하는 단계는 DRC 구문을 포함하는 룰 파일을 기초로 레이아웃 데이터에 대해 DRC를 수행함으로써 연결관계를 검출하는 단계, 및 검출된 연결관계를 이용하여 레이아웃 데이터로부터 레이아웃 넷리스트를 추출하는 단계를 포함할 수 있다. 단계 S530에서, 레이아웃 넷리스트와 스키메틱 데이터에 대해 LVS 검증을 수행함으로써 LVS 결과 데이터를 생성한다. 단계 S550에서, 레이아웃 데이터로부터 기생 성분을 추출함으로써 기생 성분 데이터를 생성한다. 일부 실시예들에서, 단계 S550은 생략될 수도 있다.
단계 S570에서, 레이아웃 데이터에 기초한 레이아웃에 따라 집적 회로를 제조한다. 일 실시예에서, 집적 회로를 제조하는 단계는, LVS 결과 데이터를 기초로 레이아웃 데이터를 수정하는 단계, 수정된 레이아웃 데이터에 따라 마스크를 제작하는 단계, 및 마스크를 이용하여 집적 회로를 제조하는 단계를 포함할 수 있다. 일 실시예에서, 집적 회로를 제조하는 단계는, LVS 결과 데이터 및 기생 성분 데이터를 기초로 레이아웃 데이터를 수정하는 단계, 수정된 레이아웃 데이터에 따라 마스크를 제작하는 단계, 및 마스크를 이용하여 집적 회로를 제조하는 단계를 포함할 수 있다.
도 24는 본 개시의 일 실시예에 따른 컴퓨터로 독출 가능한 저장 매체(1000)를 나타낸다.
도 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) 등을 포함할 수 있다. 컴퓨터로 읽을 수 있는 저장 매체는 컴퓨터에 삽입 가능하거나, 컴퓨터 내에 집적되거나, 네트워크 및/또는 무선 링크와 같은 통신 매개체를 통해서 컴퓨터와 결합될 수 있다.
집적 회로의 스키메틱 데이터(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로 예시된 레이아웃 데이터일 수 있다.
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로 예시된 룰 파일일 수 있다.
LVS 엔진(1400)는 LVS 규칙 파일(1300)에 기초하여 집적 회로의 레이아웃 데이터(1200)로부터 폴리곤들의 연결관계를 자동으로 검출하고, 검출된 연결관계를 이용하여 집적 회로의 레이아웃 데이터(1200)로부터 레이아웃 넷리스트를 추출하며, 추출된 레이아웃 넷리스트와 집적 회로의 스키메틱 데이터(1100)를 비교함으로써 LVS 결과 데이터(1500)를 생성할 수 있다. 예를 들어, LVS 엔진(1400)은 도 2의 130c, 도 3의 30, 도 9의 90, 또는 도 10의 90a로 예시된 LVS 엔진일 수 있다.
LVS 엔진(1400)는 LVS 검증을 수행하기 위한 복수의 명령어들을 포함할 수 있고, 컴퓨팅 시스템 또는 컴퓨팅 시스템에 포함된 프로세서는 LVS 엔진(1400)에 포함된 복수의 명령어들을 실행함으로써 LVS 검증을 수행할 수 있다. 일 실시예에서, LVS 엔진(1400)은 DRC를 수행하기 위한 디자인 룰 체크기를 포함할 수 있다. 일 실시예에서, 저장 매체(1000)는 DRC 엔진을 더 저장할 수 있고, DRC 엔진은 LVS 규칙 파일(1300)에 기초하여 집적 회로의 레이아웃 데이터(1200)로부터 폴리곤들의 연결관계를 자동으로 검출함으로써 DRC 결과 데이터를 생성할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
D10, D10a, D10b: 레이아웃 데이터, D20: 스키메틱 데이터
D30, D30a, D30b: 룰 파일, D40, D40a, D40b: DRC 결과 데이터
D45: 레이아웃 넷리스트, D50: LVS 결과 데이터
M1, M2, M3, M4, M5: 메탈 레이어들, V0, V1, V2, V3. V4: 비아들

Claims (20)

  1. 집적 회로의 설계를 위한 컴퓨터 구현 방법으로서,
    프로세서에 의해, DRC(Design Rule Check) 구문(syntax)을 포함하는 룰 파일(rule file)을 기초로, 상기 집적 회로의 레이아웃 데이터로부터 폴리곤들의 연결관계(connectivity)를 검출하는 단계;
    상기 프로세서에 의해, 검출된 상기 연결관계를 이용하여 상기 레이아웃 데이터로부터 레이아웃 넷리스트를 추출하는 단계; 및
    상기 프로세서에 의해, 상기 집적 회로의 스키메틱 데이터와 상기 레이아웃 넷리스트를 비교함으로써 LVS(Layout-Versus-Schematic) 결과 데이터를 생성하도록 상기 집적 회로에 대한 LVS 검증을 수행하는 단계를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 룰 파일은, 상기 레이아웃 데이터에 포함된 복수의 레이어들, 및 상기 복수의 레이어들 각각에 포함되는 복수의 폴리곤들에 대한 정의(definition)를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  3. 제2항에 있어서,
    상기 DRC 구문은, 상기 복수의 레이어들 각각에 대하여, 그리고, 상기 복수의 폴리곤들 각각에 대하여, 상기 연결관계를 체크하도록 구성된 DRC 루프(loop) 구문인 것을 특징으로 하는 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 레이아웃 데이터는, 제1 레이어, 및 상기 제1 레이어 상의 제2 레이어를 포함하고,
    상기 DRC 구문은, 상기 제1 레이어에 포함된 적어도 하나의 제1 폴리곤, 및 상기 제2 레이어에 포함된 적어도 하나의 제2 폴리곤의 터치 여부를 체크하도록 구성된 제1 구문을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 레이아웃 데이터는, 제1 레이어, 상기 제1 레이어 상의 비아 레이어, 및 상기 비아 레이어 상의 제2 레이어를 포함하고,
    상기 DRC 구문은, 상기 제1 레이어에 포함된 적어도 하나의 제1 폴리곤, 상기 제2 레이어에 포함된 적어도 하나의 제2 폴리곤, 및 상기 비아 레이어에 포함된 적어도 하나의 제3 폴리곤의 터치 여부를 체크하도록 구성된 제2 구문을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 레이아웃 데이터는, 제1 레이어를 포함하고,
    상기 DRC 구문은, 상기 제1 레이어에 포함된 제1 및 제2 폴리곤들의 터치 여부를 체크하도록 구성된 제1 구문을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 레이아웃 데이터는, 제1 레이어를 포함하고,
    상기 DRC 구문은, 상기 제1 레이어에 포함된 제1 및 제2 폴리곤들의 오버랩 여부를 체크하도록 구성된 제3 구문을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  8. 제1항에 있어서,
    상기 검출하는 단계는, 상기 레이아웃 데이터에 대해 상기 DRC 구문에 따라 DRC 검증을 수행함으로써, 상기 레이아웃 데이터에서 실제로 연결된 폴리곤들의 연결관계를 포함하는 DRC 결과 데이터를 생성하는 것을 특징으로 하는 컴퓨터 구현 방법.
  9. 제1항에 있어서,
    상기 레이아웃 데이터는, 적어도 하나의 폴리곤으로 구분되는 제1 레이어를 포함하고,
    상기 DRC 구문은, 상기 제1 레이어 상에 상기 적어도 하나의 폴리곤으로 정의되지 않은 폴리곤의 존재 여부를 체크하도록 구성된 제4 구문을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  10. 제9항에 있어서,
    상기 검출하는 단계는, 상기 레이아웃 데이터에 대해 상기 제4 구문에 따라 DRC 검증을 수행함으로써, 상기 레이아웃 데이터로부터 정의되지 않은 폴리곤을 포함하는 DRC 결과 데이터를 생성하는 것을 특징으로 하는 컴퓨터 구현 방법.
  11. 제1항에 있어서,
    상기 DRC 구문은, 상기 레이아웃 데이터에서 플로팅 네트를 체크하도록 구성된 제5 구문을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  12. 제11항에 있어서,
    상기 검출하는 단계는, 상기 레이아웃 데이터에 대해 상기 제5 구문에 따라 DRC 검증을 수행함으로써, 상기 레이아웃 데이터로부터 상기 플로팅 네트를 포함하는 DRC 결과 데이터를 생성하는 것을 특징으로 하는 컴퓨터 구현 방법.
  13. 제1항에 있어서,
    상기 룰 파일은, 상기 폴리곤들의 연결관계가 생략된 것을 특징으로 하는 컴퓨터 구현 방법.
  14. 제1항에 있어서,
    상기 LVS 검증이 완료된 상기 레이아웃 데이터로부터 기생 성분을 추출함으로써, 기생 성분 데이터를 생성하는 단계를 더 포함하는 특징으로 하는 컴퓨터 구현 방법.
  15. 제14항에 있어서,
    상기 레이아웃 데이터 및 상기 기생 성분 데이터를 기초로 마스크를 제작하는 단계; 및
    상기 마스크를 이용하여 상기 집적 회로를 제조하는 단계를 더 포함하는 컴퓨터 구현 방법.
  16. 집적 회로를 제조하는 방법으로서,
    상기 집적 회로의 레이아웃 데이터에 대해 DRC를 수행함으로써, 상기 레이아웃 데이터로부터 폴리곤들의 연결관계를 검출하고, 레이아웃 넷리스트를 추출하는 단계;
    추출된 상기 레이아웃 넷리스트 및 상기 집적 회로의 스키메틱 데이터에 대해 LVS 검증을 수행함으로써 LVS 결과 데이터를 생성하는 단계; 및
    상기 레이아웃 데이터 및 상기 LVS 결과 데이터에 기초한 레이아웃에 따라 상기 집적 회로를 제조하는 단계를 포함하는 방법.
  17. 제16항에 있어서,
    상기 집적 회로를 제조하는 단계는,
    상기 LVS 결과 데이터를 기초로 상기 레이아웃 데이터를 수정하는 단계;
    수정된 상기 레이아웃 데이터에 따라 마스크를 제작하는 단계; 및
    상기 마스크를 이용하여 상기 집적 회로를 제조하는 단계를 포함하는 방법.
  18. 제16항에 있어서,
    상기 LVS 결과 데이터를 생성하는 단계 이후에, 상기 레이아웃 데이터로부터 기생 성분을 추출함으로써 기생 성분 데이터를 생성하는 단계를 더 포함하는 방법.
  19. 제18항에 있어서,
    상기 집적 회로를 제조하는 단계는,
    상기 LVS 결과 데이터 및 상기 기생 성분 데이터를 기초로 상기 레이아웃 데이터를 수정하는 단계;
    수정된 상기 레이아웃 데이터에 따라 마스크를 제작하는 단계; 및
    상기 마스크를 이용하여 상기 집적 회로를 제조하는 단계를 포함하는 방법.
  20. 집적 회로의 설계를 위한 컴퓨팅 시스템으로서,
    상기 집적 회로에 대한 LVS 검증을 수행하기 위한 LVS 엔진을 저장하는 메모리; 및
    상기 메모리에 액세스 가능하고, 상기 LVS 엔진을 실행하는 프로세서를 포함하고,
    상기 LVS 엔진은, DRC 구문을 포함하는 룰 파일을 기초로 상기 집적 회로의 레이아웃 데이터로부터 폴리곤들의 연결관계를 검출하고, 검출된 상기 연결관계를 이용하여 상기 레이아웃 데이터로부터 레이아웃 넷리스트를 추출하며, 추출된 상기 레이아웃 넷리스트를 상기 집적 회로의 스키메틱 데이터를 비교하는 것을 특징으로 하는 컴퓨팅 시스템.
KR1020170101871A 2017-05-19 2017-08-10 집적 회로를 설계하기 위한 컴퓨터 구현 방법, 컴퓨팅 시스템, 및 집적 회로의 제조 방법 KR102419645B1 (ko)

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 (zh) 2017-05-19 2018-05-15 设计集成电路的方法,以及制造集成电路的方法

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 true KR20180127141A (ko) 2018-11-28
KR102419645B1 KR102419645B1 (ko) 2022-07-12

Family

ID=64561198

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170101871A KR102419645B1 (ko) 2017-05-19 2017-08-10 집적 회로를 설계하기 위한 컴퓨터 구현 방법, 컴퓨팅 시스템, 및 집적 회로의 제조 방법

Country Status (1)

Country Link
KR (1) KR102419645B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767690A (zh) * 2020-06-23 2020-10-13 杰华特微电子(杭州)有限公司 基于lvs工具的盆区检测方法
KR20210018019A (ko) * 2019-08-07 2021-02-17 주식회사 히타치하이테크 전기 특성을 도출하는 시스템 및 비일시적 컴퓨터 가독 매체
CN112416867A (zh) * 2020-12-11 2021-02-26 北京华大九天软件有限公司 一种对网表进行批量对比的方法
KR102631355B1 (ko) * 2022-11-22 2024-01-31 삼성전자주식회사 반도체 소자 집적 회로 및 그것의 레이아웃을 설계하는 방법
KR102644204B1 (ko) * 2022-11-30 2024-03-07 인하대학교 산학협력단 Cmos 기반 회로 설계 자동화 방법 및 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100703982B1 (ko) * 2006-01-23 2007-04-09 삼성전자주식회사 반도체 집적 회로 장치의 레이아웃 분석 방법, 레이아웃 분석 시스템, 스탠다드 셀 라이브러리, 마스크 및 반도체 집적 회로 장치
KR20120128261A (ko) * 2011-05-17 2012-11-27 삼성전자주식회사 반도체 소자의 설계 방법
US20130305194A1 (en) * 2012-05-14 2013-11-14 Tongsheng Wang Validation of Integrated Circuit Designs Built With Encrypted Silicon IP Blocks
KR20140001578A (ko) * 2012-06-27 2014-01-07 삼성전자주식회사 반도체 집적 회로, 그 설계 방법 및 제조방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100703982B1 (ko) * 2006-01-23 2007-04-09 삼성전자주식회사 반도체 집적 회로 장치의 레이아웃 분석 방법, 레이아웃 분석 시스템, 스탠다드 셀 라이브러리, 마스크 및 반도체 집적 회로 장치
KR20120128261A (ko) * 2011-05-17 2012-11-27 삼성전자주식회사 반도체 소자의 설계 방법
US20130305194A1 (en) * 2012-05-14 2013-11-14 Tongsheng Wang Validation of Integrated Circuit Designs Built With Encrypted Silicon IP Blocks
KR20140001578A (ko) * 2012-06-27 2014-01-07 삼성전자주식회사 반도체 집적 회로, 그 설계 방법 및 제조방법

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210018019A (ko) * 2019-08-07 2021-02-17 주식회사 히타치하이테크 전기 특성을 도출하는 시스템 및 비일시적 컴퓨터 가독 매체
KR20210146855A (ko) * 2019-08-07 2021-12-06 주식회사 히타치하이테크 전기 특성을 도출하는 시스템 및 비일시적 컴퓨터 가독 매체
CN111767690A (zh) * 2020-06-23 2020-10-13 杰华特微电子(杭州)有限公司 基于lvs工具的盆区检测方法
CN111767690B (zh) * 2020-06-23 2024-03-22 杰华特微电子股份有限公司 基于lvs工具的盆区检测方法
CN112416867A (zh) * 2020-12-11 2021-02-26 北京华大九天软件有限公司 一种对网表进行批量对比的方法
KR102631355B1 (ko) * 2022-11-22 2024-01-31 삼성전자주식회사 반도체 소자 집적 회로 및 그것의 레이아웃을 설계하는 방법
KR102644204B1 (ko) * 2022-11-30 2024-03-07 인하대학교 산학협력단 Cmos 기반 회로 설계 자동화 방법 및 시스템

Also Published As

Publication number Publication date
KR102419645B1 (ko) 2022-07-12

Similar Documents

Publication Publication Date Title
US11675954B2 (en) Method of designing a device
KR102419645B1 (ko) 집적 회로를 설계하기 위한 컴퓨터 구현 방법, 컴퓨팅 시스템, 및 집적 회로의 제조 방법
US11914940B2 (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
US10928442B2 (en) Computer implemented methods and computing systems for designing integrated circuits by considering back-end-of-line
US20140337810A1 (en) Modular platform for integrated circuit design analysis and verification
US7900178B2 (en) Integrated circuit (IC) design method, system and program product
US20170344692A1 (en) Computer-implemented method of designing an integrated circuit
US10346579B2 (en) Interactive routing of connections in circuit using auto welding and auto cloning
KR102320823B1 (ko) 집적 회로 및 그것의 레이아웃을 설계하는 방법
US9262574B2 (en) Voltage-related analysis of layout design data
US10896283B1 (en) Noise-based optimization for integrated circuit design
KR20170094744A (ko) 집적 회로 및 상기 집적 회로의 제조를 위한 컴퓨터 구현 방법
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
US8726218B2 (en) Transistor-level layout synthesis
US10509888B1 (en) System and method for forming integrated device
US8826197B2 (en) Pattern-based replacement for layout regularization
Braasch et al. Model-based verification and analysis for 65/45nm physical design

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