KR102631355B1 - 반도체 소자 집적 회로 및 그것의 레이아웃을 설계하는 방법 - Google Patents

반도체 소자 집적 회로 및 그것의 레이아웃을 설계하는 방법 Download PDF

Info

Publication number
KR102631355B1
KR102631355B1 KR1020220157504A KR20220157504A KR102631355B1 KR 102631355 B1 KR102631355 B1 KR 102631355B1 KR 1020220157504 A KR1020220157504 A KR 1020220157504A KR 20220157504 A KR20220157504 A KR 20220157504A KR 102631355 B1 KR102631355 B1 KR 102631355B1
Authority
KR
South Korea
Prior art keywords
area
layout
calculating
score
input layout
Prior art date
Application number
KR1020220157504A
Other languages
English (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 KR1020220157504A priority Critical patent/KR102631355B1/ko
Application granted granted Critical
Publication of KR102631355B1 publication Critical patent/KR102631355B1/ko

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
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having at least one potential-jump barrier or surface barrier; including integrated passive circuit elements with at least one potential-jump barrier or surface barrier
    • H01L27/0203Particular design considerations for integrated circuits
    • H01L27/0207Geometrical layout of the components, e.g. computer aided design; custom LSI, semi-custom LSI, standard cell technique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/12Sizing, e.g. of transistors or gates

Abstract

본 개시의 기술적 사상에 따른 메모리 장치의 레이아웃 설계를 위한 방법은, 메모리 장치의 입력 레이아웃을 수신하는 단계, 입력 레이아웃을 점수화하는 단계, 점수화에 기초하여 메모리 장치의 적어도 하나의 소자의 재배치 여부를 결정하는 단계 및 재배치 여부에 기초하여 출력 레이아웃을 생성하는 단계를 포함할 수 있고, 점수화하는 단계는, 입력 레이아웃에서 메모리 장치에 포함된 하나 이상의 소자가 차지하는 제1 면적을 연산하는 단계, 하나 이상의 소자에 대한 설계 규칙(Design Rule) 및 제1 면적에 기초하여, 제조 공정상 필요한 제2 면적을 연산하는 단계, 제1 면적 및 제2 면적을 기초로, 입력 레이아웃의 보이드(Void) 면적을 연산하는 단계 및 보이드 면적에 기초하여 입력 레이아웃의 점수를 연산하는 단계를 포함할 수 있다.

Description

반도체 소자 집적 회로 및 그것의 레이아웃을 설계하는 방법{A METHOD OF DESIGNING A SEMICONDUCTOR DEVICE INTEGRATED CIRCUIT AND ITS LAYOUT}
본 개시의 기술적 사상은 집적 회로 및 그 레이아웃을 설계하는 방법에 관한 것으로서, 더욱 상세하게는, 레이아웃의 점수화에 기초하여 레이아웃을 설계하기 위한 방법에 관한 것이다.
반도체의 제조 공정 기술이 발전함에 따라, 칩(Chip) 사이즈는 점점 작아지고 있으며 집적 회로에 포함되는 소자들의 수는 계속 증가하고 있다. 예를 들면, 다른 전자 시스템의 구성들을 포함하는 시스템-온-칩(System-On-Chip; SOC)은 널리 사용되고 있으며, 더욱 많은 구성들을 포함하는 집적 회로가 요구되고 있다.
따라서, 전술한 바와 같이 칩 사이즈가 작아짐에 따라 반도체 장치를 제조하는 공정의 난이도와 중요성도 증가하고 있다. 집적도를 높이기 위해 가용 면적을 보다 효율적으로 활용하는 방안이 요구되고 있다.
본 개시의 기술적 사상은 최적화된 레이아웃을 갖는 집적 회로 및 집적 회로의 레이아웃을 설계하는 방법을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일 측면에 따른 메모리 장치의 레이아웃 설계를 위한 방법은, 메모리 장치의 입력 레이아웃을 수신하는 단계, 입력 레이아웃을 점수화하는 단계, 점수화에 기초하여 메모리 장치의 적어도 하나의 소자의 재배치 여부를 결정하는 단계 및 재배치 여부에 기초하여 출력 레이아웃을 생성하는 단계를 포함할 수 있고, 점수화하는 단계는, 입력 레이아웃에서 메모리 장치에 포함된 하나 이상의 소자가 차지하는 제1 면적을 연산하는 단계, 하나 이상의 소자에 대한 설계 규칙(Design Rule) 및 제1 면적에 기초하여, 제조 공정상 필요한 제2 면적을 연산하는 단계, 제1 면적 및 제2 면적을 기초로, 입력 레이아웃의 보이드(Void) 면적을 연산하는 단계 및 보이드 면적에 기초하여 입력 레이아웃의 점수를 연산하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일 측면에 따른 집적 회로의 레이아웃 설계를 위한 컴퓨터 구현 방법은, 집적 회로의 입력 레이아웃을 수신하는 단계, 입력 레이아웃에서 집적 회로에 포함된 하나 이상의 소자가 차지하는 제1 면적을 연산하는 단계, 하나 이상의 소자에 대한 설계 규칙(Design Rule) 및 제1 면적에 기초하여, 제조 공정상 요구되는 제2 면적을 연산하는 단계, 제1 면적 및 제2 면적을 기초로, 입력 레이아웃의 보이드(Void) 면적을 연산하는 단계, 제1 면적, 제2 면적 및 보이드 면적에 기초하여 입력 레이아웃의 점수를 연산하는 단계, 입력 레이아웃의 점수와 문턱 값을 비교하는 단계 및 비교 결과에 기초하여 집적 회로에 대한 라우팅을 수행하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일 측면에 따른 집적 회로의 레이아웃 설계를 위한 방법은, 집적 회로의 입력 레이아웃을 수신하는 단계, 입력 레이아웃의 점수를 연산하는 단계, 입력 레이아웃의 점수와 기준 점수를 비교하는 단계 및 비교 결과에 기초하여 집적 회로의 재배치 여부를 결정하는 단계를 포함할 수 있고, 점수를 연산하는 단계는, 입력 레이아웃에서 집적 회로에 포함된 하나 이상의 소자가 차지하는 제1 면적을 연산하는 단계, 하나 이상의 소자에 대한 설계 규칙(Design Rule) 및 제1 면적에 기초하여, 공정에서 구현하기 위해 필요한 제2 면적을 연산하는 단계, 제1 면적 및 제2 면적에 기초하여 보이드(Void) 면적을 연산하는 단계 및 보이드 면적에 기초하여 입력 레이아웃의 점수를 연산하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 예시적 실시예에 따른 집적 회로의 레이아웃 설계를 위한 방법은, 레이아웃을 점수화(Scoring)하는 과정을 통해, 소자들의 재배치 여부를 결정함으로써 레이아웃의 가용 면적을 효율적으로 활용하여 레이아웃을 최적화할 수 있다.
또한, 본 개시의 기술적 사상의 예시적 실시예에 따른 집적 회로의 레이아웃 설계를 위한 방법은, 서로 다른 다양한 회로들에 대해, 레이아웃 점수에 기초하여 효율적인 배치 여부에 대해 평가할 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 반도체 장치를 설계하기 위한 컴퓨터 시스템을 보여주는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 반도체 소자의 설계 및 제조 방법을 보여주는 순서도이다.
도 3은 본 개시의 예시적 실시예에 따른 도 2의 레이아웃 설계 방법을 구체적으로 보여주는 순서도이다.
도 4는 본 개시의 예시적 실시예에 따른 소자의 재배치를 통한 레이아웃 출력 과정을 구체적으로 보여주는 순서도이다.
도 5는 본 개시의 예시적 실시예에 따른 레이아웃의 점수화 방법을 구체적으로 보여주는 순서도이다.
도 6은 본 개시의 예시적 실시예에 따른 면적 계산을 위한 LVS(Layout Versus Schematic) 모듈을 나타내는 블록도이다.
도 7 및 도 8은 본 개시의 예시적 실시예에 따른 면적 계산을 위한 설계 규칙(Design Rule)을 설명하기 위한 레이아웃을 나타내는 평면도이다.
도 9는 본 개시의 예시적 실시예에 따른 레이아웃의 점수화 방법을 설명하기 위한 예시적인 레이아웃 평면도이다.
도 10은 본 개시의 예시적 실시예에 따른 레이아웃의 점수화를 수행하였을 때, 기준 점수를 만족하는 경우를 설명하기 위한 레이아웃 평면도의 예시이다.
도 11은 본 개시의 예시적 실시예에 따른 레이아웃의 점수화를 수행하였을 때, 기준 점수를 만족하지 못하는 경우를 설명하기 위한 레이아웃 평면도의 예시이다.
도 12는 본 개시의 예시적 실시예에 따른 레이아웃의 점수화 방법을 설명하기 위한 다른 예시적인 레이아웃 평면도이다.
도 13은 본 개시의 예시적 실시예에 따른 레이아웃 점수화에 따른 레이아웃의 최적화 과정을 나태내기 위한 순서도이다.
도 14는 본 개시의 예시적 실시예에 따른 레이아웃 설계 방법이 적용된 메모리 시스템을 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시예들에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시예에 따른 반도체 장치를 설계하기 위한 컴퓨터 시스템을 보여주는 블록도이다.
도 1을 참조하면, 컴퓨터 시스템(또는 레이아웃 설계 시스템; 100)은 적어도 하나의 프로세서(10), 워킹 메모리(20), 입출력 장치(30), 및 저장 장치(40)를 포함할 수 있다. 적어도 하나의 프로세서(10), 워킹 메모리(20), 입출력 장치(30) 및 저장 장치(40)는 시스템 인터커넥터(50)(예를 들어, 버스)를 통하여 서로 연결될 수 있다. 여기서, 컴퓨터 시스템(100)은 본 발명의 레이아웃을 설계하기 위한 전용 장치로 제공될 수 있다. 그리고 컴퓨터 시스템(100)은 다양한 설계 및 검증 시뮬레이션 프로그램을 구동하도록 구성될 수 있다
프로세서(10)는 컴퓨터 시스템(100)에서 수행될 소프트웨어(예를 들어, 응용 프로그램, 운영 체제, 장치 드라이버들)를 실행할 수 있다. 프로세서(10)는 워킹 메모리(20)에 로드되는 운영 체제(OS, 미도시)를 실행할 수 있다. 프로세서(10)는 운영 체제(OS) 기반에서 구동될 다양한 응용 프로그램들(Application Program)을 실행할 수 있다. 예를 들어, 프로세서(10)는 워킹 메모리(20)에 로딩된 레이아웃 설계 툴(21)을 실행할 수 있다.
워킹 메모리(20)는 SRAM(Static Random Access Memory), 또는 DRAM (Dynamic Random Access Memory)과 같은 휘발성 메모리를 포함할 수 있다. 그러나, 워킹 메모리(20)는 이에 한정되지 않으며, PRAM(Phase-change RAM), MRAM(Magnetic Random Access Memory), ReRAM(Resistance RAM), FRAM(Ferroelectric RAM), 플래시 메모리와 같은 불휘발성 메모리를 포함할 수 있다.
워킹 메모리(20)에는 운영 체제(OS)나 응용 프로그램들이 로딩될 수 있다. 컴퓨터 시스템(100)의 부팅 시에 저장 장치(40)에 저장된 OS 이미지(미도시)가 부팅 시퀀스에 따라 워킹 메모리(20)로 로딩될 수 있다. 운영 체제(OS)에 의해서 컴퓨터 시스템(100)의 제반 입출력 동작들이 지원될 수 있다. 마찬가지로, 사용자에 의하여 선택되거나 기본적인 서비스 제공을 위해서 응용 프로그램들이 워킹 메모리(20)에 로딩될 수 있다. 특히, 본 개시의 예시적 실시예에 따른 레이아웃 설계를 위한 레이아웃 설계 툴(21)도 저장 장치(40)로부터 워킹 메모리(20)에 로딩될 수 있다.
레이아웃 설계 툴(21)은 특정 레이아웃 패턴들의 형태 및 위치를 디자인 룰(Design Rule, 설계 규칙)에 의해서 정의된 것과 다르게 변경할 수 있는 바이어싱 기능을 구비할 수 있다. 그리고 레이아웃 설계 툴(21)은 변경된 바이어싱 데이터 조건에서 설계 규칙 검사(Design Rule Check; DRC)를 수행할 수 있다. 설계 규칙에 대한 구체적인 설명은 후술한다.
또한, 워킹 메모리(20)에는 설계된 레이아웃 데이터에 대해서 광근접 보정(Optical Proximity Correction; OPC)을 수행하는 시뮬레이션 툴(22)이 더 로딩될 수 있다
입출력 장치(30)는 사용자 인터페이스 장치들로부터의 사용자 입력 및 출력을 제어한다. 예를 들면, 입출력 장치(30)는 키보드나 모니터를 구비하여 설계자로부터 정보를 입력 받을 수 있다. 입출력 장치(30)를 사용하여 설계자는 조정된 동작 특성을 요구하는 반도체 영역이나 데이터 경로들에 대한 정보를 입력 받을 수 있다. 그리고 입출력 장치(30)를 통해서 시뮬레이션 툴(22)의 처리 과정 및 처리 결과 등이 표시될 수 있다.
저장 장치(40)는 컴퓨터 시스템(100)의 저장 매체(Storage Medium)로서 제공된다. 저장 장치(40)는 응용 프로 그램들(Application Program), 운영 체제 이미지 및 각종 데이터를 저장할 수 있다. 예를 들어, 저장 장치(40)는 SSD(Solid State Drive), eMMC(embedded Multi Media Card), 또는 HDD(Hard Disk Drive) 등으로 제공될 수 있다. 저장 장치(40)는 낸드 플래시 메모리(NAND Flash memory)를 포함할 수 있다. 그러나 이에 한정되지 않으며, 저장 장치(40)는 PRAM, MRAM, ReRAM, FRAM 등과 같은 불휘발성 메모리를 포함할 수 있다.
시스템 인터커넥터(50)는 컴퓨터 시스템(100)의 내부에서 네트워크를 제공하기 위한 시스템 버스(System Bus)일 수 있다. 시스템 인터커넥터(90)를 통해서 프로세서(10), 워킹 메모리(20), 입출력 장치(30), 및 저장 장치(40)가 전기적으로 연결되고 상호 데이터를 교환할 수 있다. 하지만, 시스템 인터커넥터(50)의 구성은 상술한 설명에만 국한되지 않으며, 효율적인 관리를 위한 중재 수단들을 더 포함할 수 있다.
도 2는 본 개시의 예시적 실시예에 따른 반도체 소자의 설계 및 제조 방법을 보여주는 순서도이다.
도 1의 컴퓨터 시스템(100)을 이용하여 반도체 집적회로의 상위 수준 설계(High Level Design)가 수행될 수 있다(S201). 상위 수준 설계란, 설계 대상 집적회로를 컴퓨터 언어의 상위 언어로 기술하는 것을 의미할 수 있다. 예를 들어, C 언어와 같은 상위 언어가 사용될 수 있다. 상위 수준 설계에 의해서 설계된 회로들은 레지스터 전송 레벨(Register Transfer Level; RTL) 코딩이나 시뮬레이션에 의해서 보다 구체적으로 표현될 수 있다. 나아가, 레지스터 전송 레벨 코딩에 의해서 생성된 코드는 넷리스트(Netlist)로 변환되어 전체 반도체 소자로 합성될 수 있다. 합성된 스키매틱(schematic) 회로는 시뮬레이션 툴(22)에 의해서 검증되고, 검증 결과에 따라 조정 과정이 수반될 수 있다.
논리적으로 완성된 반도체 집적회로를 실리콘 기판 위에 구현하기 위한 레이아웃 설계가 수행될 수 있다(S202). 예를 들어, 상위 수준 설계에서 합성된 스키매틱 회로 또는 그에 대응하는 넷리스트를 참조하여 레이아웃 설계가 수행될 수 있다. 레이아웃 설계는 규정된 디자인 룰(Design Rule)에 따라 셀 라이브러리(Cell Library)에서 제공되는 다양한 스탠다드 셀(standard cell, 표준 셀)들을 배치(placement)하고 연결하는 라우팅(routing) 절차를 포함할 수 있다.
스탠다드 셀은 특정 기능을 수행하는 논리 소자(예를 들어, 인버터, 플립플롭 등)의 구성을 의미할 수 있다. 즉, 스탠다드 셀은 논리 소자를 구성하기 위한 복수의 트랜지스터들, 및 복수의 트랜지스터들 사이를 연결하는 배선 등을 포함할 수 있다.
레이아웃 설계를 위한 셀 라이브러리에는 스탠다드 셀의 동작, 속도 그리고 소모 전력 등에 대한 정보도 포함될 수 있다. 특정 게이트 레벨의 회로를 레이아웃으로 표현하기 위한 셀 라이브러리가 대부분의 레이아웃 설계 툴에 정의되어 있다. 레이아웃은 실제로 실리콘 기판 상에 형성될 트랜지스터 및 금속 배선들을 구성하기 위한 패턴의 형태나 사이즈를 정의하는 절차일 수 있다. 예를 들면, 인버터 회로를 실제로 실리콘 기판 상에 형성시키기 위하여, PMOS, NMOS, N-WELL, 게이트 전극, 및 이들 상에 배치될 금속 배선들과 같은 레이아웃 패턴들을 적절히 배치할 수 있다.
이를 위하여 우선 셀 라이브러리에 이미 정의된 인버터들 중에서 적합한 것을 검색하여 선택할 수 있다. 더불어, 선택 및 배치된 스탠다드 셀들에 대한 라우팅이 수행될 수 있다. 이러한 일련의 과정들은 대부분 레이아웃 설계 툴에 의해서 자동으로 또는 수동적으로 수행될 수 있다.
라우팅 이후, 디자인 룰에 위배되는 부분이 존재하는지 레이아웃에 대한 검증이 수행될 수 있다. 검증 동작의 예로써, 레이아웃이 디자인 룰에 맞게 제대로 되었는지 검증하는 DRC(Design Rule Check), 내부에서 전기적으로 끊어짐 없이 제대로 되었는지 검증하는 ERC(Electrical Rule Check), 및 레이아웃이 게이트 수준 네트리스트와 일치하는지 확인하는 LVS(Layout vs Schematic) 등이 있다. 본 개시의 예시적 실시예에 따른 면적 계산을 위한 DRC 및 LVS 과정은 후술하겠다.
또한, 광근접 보정(Optical Proximity Correction; OPC)이 실행될 수 있다(S203). 포토리소그래피 공정을 이용하여, 레이아웃 설계를 통해서 얻어진 레이아웃 패턴들이 실리콘 기판 상에 구현될 수 있다. 이때, 광근접 보정은 포토리소그래피 공정에서 발생할 수 있는 왜곡 현상을 보정하기 위한 기술일 수 있다. 즉, 광근접 보정을 통하여, 레이아웃된 패턴을 이용한 노광시에 빛의 특성 때문에 발생하는 굴절이나 공정 효과 등의 왜곡 현상이 보정될 수 있다. 광근접 보정을 실행하면서, 설계된 레이아웃 패턴들의 형태 및 위치가 미세하게 변경될 수 있다.
광근접 보정(OPC)에 의해 변경된 레이아웃에 기초하여, 포토마스크들(Photomasks)이 제작될 수 있다(S204). 일반적으로 포토마스크들은 유리 기판 위에 도포된 크롬 박막을 이용하여 레이아웃 패턴들을 묘사하는 방식으로 제작될 수 있다.
제작된 포토마스크들을 이용하여 반도체 장치가 제조될 수 있다(S205). 포토마스크들을 이용한 반도체 장치의 제조 공정에서는 다양한 방식의 노광 및 식각 공정들이 반복될 수 있다. 이러한 공정들을 통해서 실리콘 기판 상에 레이아웃 설계 시에 구성된 패턴들의 형태가 순차적으로 형성될 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 도 2의 레이아웃 설계 방법을 구체적으로 보여주는 순서도이다.
도 3을 참조하면, 레이아웃 디자인 툴을 이용하여 오리지널 스탠다드 셀 레이아웃이 구성될 수 있다(S301). 스탠다드 셀 레이아웃을 구성하는 것은, 로직 트랜지스터들을 포함하는 로직 레이아웃 상에 배선 레이아웃을 구성하는 것을 포함할 수 있다. 배선 레이아웃은 반도체 기판 상에 형성되는 금속층에 대응할 수 있다. 로직 레이아웃은 활성 영역들을 정의하는 레이아웃 패턴들을 포함할 수 있다. 활성 영역들은 PMOSFET 영역 및 NMOSFET 영역을 포함할 수 있다. PMOSFET 영역 및 상기 NMOSFET 영역은 서로 이격될 수 있다. 로직 레이아웃은 PMOSFET 영역 및 NMOSFET 영역을 가로지르며 연장되는 게이트 패턴들을 포함할 수 있다. 게이트 패턴들은 서로 이격될 수 있으며, PMOSFET 영역, NMOSFET 영역 및 게이트 패턴들은 반도체 기판 상에 형성되는 로직 트랜지스터들을 구성할 수 있다.
위와 같이 구성된 스탠다드 셀 레이아웃들은 앞서 도 2를 참조하여 설명한 셀 라이브러리에 저장될 수 있다. 이어서, 셀 라이브러리에 저장된 스탠다드 셀 레이아웃들이 배치될 수 있다(S302). 스탠다드 셀 레이아웃은 복수 개로 제공되어 특정 방향을 따라 나란히 배치될 수 있다. 이어서, 배치된 스탠다드 셀 레이아웃 상에 상위 배선 레이아웃과의 라우팅이 수행될 수 있 다(S303). 본 개시의 예시적 실시예들에서는, 레이아웃 생성 및 셀 배치에 대하여 보다 구체적으로 설명하도록 한다.
도 4는 본 개시의 예시적 실시예에 따른 소자의 재배치를 통한 레이아웃 출력 과정을 구체적으로 보여주는 순서도이다.
도 4를 참조하면, 디자인 툴은 집적 회로에 배치된 소자들에 기초하여 생성된 입력 레이아웃을 수신할 수 있다(S401). 예를 들어, 디자인 툴은 도 1에서 예시한 레이아웃 디자인 툴(21)일 수 있다. 디자인 툴은 입력 레이아웃 데이터에 기초하여, 도 5를 참조하여 구체적으로 후술할 바와 같이 수신한 입력 레이아웃을 점수화(Scoring)할 수 있다(S402). 디자인 툴은 수신한 입력 레이아웃의 점수에 기초하여 집적 회로의 소자들이 재배치되어야 할지 여부에 대해 결정할 수 있다(S403). 예를 들어, 후술할 바와 같이 설정된 특정 조건을 만족하지 못할 경우 디자인 툴은 소자들의 재배치를 수행할 수 있으며, 반대로 특정 조건을 만족할 경우 재배치를 수행하지 않을 수 있다.
소자들의 재배치 여부 결정 과정 이후에, 디자인 툴은 결정된 레이아웃에 기초하여 출력 레이아웃을 생성할 수 있다(S404). 도 3을 참조하여 전술한 바와 같이, 출력된 레이아웃에 기초하여 라우팅이 수행될 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 레이아웃의 점수화 방법을 구체적으로 보여주는 순서도이다.
도 4 및 도 5를 참조하면, 디자인 툴은 입력 레이아웃을 수신하여 레이아웃을 점수화할 수 있다(S402). 일부 실시예들에서, 디자인 툴은 입력 레이아웃을 수신한 후 이에 기초하여 레이아웃 상에서 집적 회로에 포함되는 적어도 하나의 회로 소자가 차지하는 제1 면적(A)을 연산할 수 있다(S501). 이때, 제1 면적(A)은 회로에 구현된 면적에 대응할 수 있다. 즉, 합성된 스키매틱(schematic)을 구성하는 소자(예를 들어, 트랜지스터 또는 저항 등)들이 레이아웃 상에서 구현되면, 디자인 툴은 실제로 레이아웃에서 소자들이 차지하는 면적을 연산할 수 있다. 이 과정에서, 예를 들어 디자인 툴은 구체적으로 후술할 바와 같이 LVS(Layout Versus Schematic) 모듈을 참조하여 제1 면적(A)을 연산할 수 있다. 예를 들어, 제1 면적(A)은 트랜지스터의 채널(Channel)의 사이즈, 다이오드, 저항, 커패시터 등에 대응할 수 있다.
또한, 디자인 툴은 제1 면적(A) 이외에, 실제로 공정으로 구현될 수 있는지 판단하는 설계 규칙(Design Rule)을 만족하기 위한 면적, 즉 집적 회로의 제조 공정상 필요한 제2 면적(B)을 연산할 수 있다(S502). 즉, 제2 면적(B)은 공정상 필요한 면적에 대응할 수 있다. 도 7 및 도 8을 참조하여 구체적으로 후술할 바와 같이, 설계한 집적 회로가 공정 상에서 물리적으로 구현될 수 있도록 충분한 면적이 확보되어야 하는데, 디자인 툴은 이와 같은 설계 규칙을 만족하기 위해 사용된 면적을 연산할 수 있다. 예를 들어, 제2 면적(B)은 액티브 영역의 스페이스, 게이트의 스페이스, 웰(Well) 내의 오버랩(Overlap) 트랜지스터 등을 포함할 수 있다.
위와 같이 집적 회로에 포함되는 적어도 하나의 회로 소자가 차지하는 제1 면적(A)과 집적 회로의 제조 공정상 필요한 제2 면적(B)에 대한 연산이 완료되면, 디자인 툴은 이들에 기초하여 레이아웃 상에서의 빈 공간을 나타내는 면적 즉, 전체 레이아웃에서 제1 면적과 제2 면적을 제외한 보이드(Void) 면적(C)을 연산할 수 있다(S503).
디자인 툴은 S501 내지 S503 단계를 기반으로 연산된 보이드 면적(C)에 기초하여 레이아웃을 점수화 할 수 있다(S504). 일부 실시예들에서, 레이아웃을 점수화하는 연산하는 과정은 아래 [수식 1]에 기초할 수 있다.
[수식 1]
S501 내지 S504에 따른 레이아웃의 점수화 방법에 따른 레이아웃의 점수에 기초하여 전술한 바와 같이, 소자들의 재배치 여부가 결정될 수 있다(S403). 이처럼 서로 다른 다양한 종류의 회로 레이아웃에 대하여 일관된 점수화 과정을 거치므로, 객관적인 점수에 기초하여 레이아웃의 효율 등을 평가할 수 있다는 효과가 있다.
도 6은 본 개시의 예시적 실시예에 따른 면적 계산을 위한 LVS(Layout Versus Schematic) 모듈을 나타내는 블록도이다.
도 6을 참조하면, 예를 들어 LVS 모듈(600)은 컴퓨터로 읽을 수 있는 저장 매체에 구현될 수 있다. LVS 모듈(600)은 집적 회로의 배선도 데이터(610), 집적 회로의 레이아웃 데이터(620), LVS 규칙 파일(Rule File)(630), LVS 검증기(Verifier)(640) 및 LVS 결과 데이터(650)를 포함할 수 있다.
LVS 모듈(600)은 컴퓨터에 명령어들 및/또는 데이터를 제공하는데 사용되는 동안 컴퓨터에 의해 읽혀질 수 있는 임의의 저장 매체를 포함할 수 있다. 예를 들면, LVS 모듈(600)은 디스크, 테이프, CD-ROM, DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW 등과 같은 자기 또는 광학 매체, RAM, ROM, 플래시 메모리 등과 같은 휘발성 또는 비휘발성 메모리, USB 인터페이스를 통해서 엑세스 가능한 비휘발성 메모리, 그리고 MEMS(microelectromechanical systems) 등을 포함할 수 있다. LVS 모듈(600)은 컴퓨터에 삽입 가능하거나, 컴퓨터 내에 집적되거나, 네트워크 및/또는 무선 링크와 같은 통신 매개체를 통해서 컴퓨터와 결합될 수 있다.
일 실시예에서, 집적 회로의 배선도 데이터(스키매틱 데이터)(610)는 수직형 메모리 셀들을 포함하는 집적 회로를 정의하는 데이터일 수 있다. 예를 들면, 집적 회로의 배선도 데이터(610)는, 복수의 스트링들이 스트링 심볼의 인스턴스들로서 정의된 데이터일 수도 있고, 상이한 레벨들에 배치되는 메모리 셀들 및 보조 셀이 상이한 셀 심볼들의 인스턴스들로서 정의된 데이터일 수도 있다.
집적 회로의 레이아웃 데이터(620)는 반도체 제조 공정을 통해서 제조되는 집적 회로의 구조를 정의하기 위한 토폴로지컬 데이터를 포함할 수 있다. 또한, 집적 회로의 레이아웃 데이터(620)는 집적 회로에 포함된 복수의 레이어들에 관한 토폴로지컬 데이터를 포함할 수 있다. 예를 들면 집적 회로의 레이아웃 데이터(620)는, 도 4에서 전술한 바와 같이, 레이아웃이 수신되고 점수화되는 과정(S401, S402)에서 사용되는 레이아웃에 대한 데이터를 포함할 수 있다.
LVS 규칙 파일(630)은 LVS 검증기(640)가 LVS 검증을 수행할 때 참조하는 것으로서, 집적 회로의 레이아웃 데이터(620)에서 소자를 인식하고 추출하기 위하여 소자를 정의할 수 있다. 예를 들면, LVS 규칙 파일(630)은, 스트링 심볼에 대응하는 스트링 소자를 정의할 수도 있고, 상이한 레벨들에 배치되는 메모리 셀들에 각각 대응하는 복수의 셀 소자들을 정의할 수도 있다. 일부 실시예들에서, 전술한 바와 같이 제1 면적(A)을 연산하기 위해, 디자인 툴은 LVS 규칙 파일(630)을 이용할 수 있다. LVS 규칙 파일(630)에는 집적 회로의 레이아웃 데이터(620)에 기초하여 인식한 소자들에 대해 정의가 되어있는 바, 디자인 툴은 이와 같이 정의된 소자들의 면적 값 등에 기초하여 제1 면적(A)을 연산할 수 있다.
LVS 검증기(640)는 LVS 규칙 파일(630)에 기초하여 집적 회로의 배선도 데이터(610) 및 집적 회로의 레이아웃 데이터(620)를 비교함으로써 LVS 결과 데이터(650)를 생성할 수 있다. LVS 검증기(640)는 LVS 검증을 수행하기 위한 복수의 명령어들을 포함할 수 있고, 컴퓨팅 시스템 또는 컴퓨팅 시스템에 포함된 프로세서는 LVS 검증기(640)에 포함된 복수의 명령어들을 실행함으로써 LVS 검증을 수행할 수 있다.
도 7 및 도 8은 본 개시의 예시적 실시예에 따른 면적 계산을 위한 설계 규칙(Design Rule)을 설명하기 위한 레이아웃을 나타내는 평면도이다. 구체적으로 도 7은 마스크에 기초하여 형성된 복수의 패턴들로 구성된 평면도를 나타내고, 복수의 패턴들(710 내지 740)은 일 레이어 상에 형성될 수 있다.
설계 규칙(Design Rule)은 동일한 마스크에 기초하여 하나의 레이어에 형성되는 2개의 패턴들 사이의 최소 간격인 D_same을 포함할 수 있고, 상이한 마스크들에 기초하여 하나의 레이어에 형성되는 2개의 패턴들 사이의 최소 간격인 D_diff를 포함할 수 있다. 멀티 마스크 패터닝의 효과에 의해서 D_diff는 D_same 보다 작을 수 있다. 입력 레이아웃에 따른 집적 회로의 레이아웃에서 복수의 패턴들 사이의 거리는 D_diff보다 크거나 같을 수 있다. 상이한 마스크들에 기초하여 형성되는 패턴들 사이의 거리는 주어진 반도체 제조 공정으로부터 구현이 가능한 최소의 거리일 수 있고, 이에 따라 입력 레이아웃에서 하나의 레이어에 형성된 복수의 패턴들 사이의 거리가 D_diff보다 크거나 같도록 설계될 수 있다. 서로 D_diff이상 이격된 복수의 패턴들 중 각각을 복수의 마스크들 중 하나를 대응시키는 컬러링 동작이 수행되고, 컬러링 정보가 생성될 수 있다.
서로 다른 마스크들에 기초하여 각각 형성되는 제1 패턴(710) 및 제3 패턴(730) 사이의 거리(D1)는 설계 규칙에 따른 D_diff보다 클 수 있다(즉, D1 > D_diff). 만약, D1이 D_diff 보다 작다면, 제1 패턴(710) 및 제3 패턴(730)은 설계 규칙을 위반한 패턴들로서 분류될 수 있다. 마찬가지로, 서로 다른 마스크들에 기초하여 각각 형성되는 제1 패턴(710) 및 제4 패턴(740) 사이의 거리(D3)도 설계 규칙에 따른 D_diff보다 클 수 있다(즉, D3 > D_diff). 동일한 마스크에 기초하여 형성되는 제1 패턴(710) 및 제2 패턴(720) 사이의 거리(D2)는 설계 규칙에 따른 D_same보다 클 수 있다(즉, D2 > D_same). 위 예시들처럼, 레이아웃대로 제조 공정 상에서 구현될 수 있도록 하는 소자들 및/또는 패턴들 간의 최소 거리인 D_same 및 D_diff와 같은 설계 규칙에 기초하여, 전술한 제2 면적(B)이 연산될 수 있다.
도 8은 설계 규칙을 위반한 패턴들을 포함하는 집적 회로의 레이아웃을 나타내는 평면도이다. 전술한 바와 같이, 하나의 레이어에 형성되는 복수의 패턴들은 컬러링에 의해서 복수의 마스크들 중 하나에 대응될 수 있고, 컬러링 정보는 집적 회로의 레이아웃을 생성할 때 디폴트로 정의될 수도 있고, 집적 회로의 레이아웃에 기초하여 디자인 툴의 컬러링 알고리즘에 의해서 생성될 수도 있다. 도 8에서, 제1, 제2, 제6 및 제7 패턴들 (810, 820, 860, 870)은 제1 마스크에 기초하여 형성될 수 있고, 제3 및 제8 패턴들(830, 880)은 제2 마스크에 기초하여 형성될 수 있고, 제4 및 제5 패턴들(840, 850)은 제3 마스크에 기초하여 형성될 수 있다.
도 8을 참조하면, 집적 회로의 레이아웃(800)은 하나의 레이어에서 형성되는 복수의 패턴들(810 내지 880)을 포함할 수 있다. 제1 마스크에 기초하여 형성되는 제1 패턴(810) 및 제2 패턴(820)은 Da만큼 이격될 수 있고, Da가 설계 규칙에 따른 D_same보다 작은 경우 제1 패턴(810) 및 제2 패턴(820)은 설계 규칙을 위반한 패턴으로 분류될 수 있다.
설계 규칙을 준수하기 위한 한 방법으로서, 제1 패턴(810)을 제1 마스크와 다른 마스크, 예컨대 제2 마스크에 대응시키는 경우, 제1 패턴(810) 및 제3 패턴(830)은 설계 규칙에 따른 D_same에 기인하여 설계 규칙을 위반할 수 있다. 또한, 제1 패턴(810)을 제3 마스크에 대응시키는 경우, 제1 패턴(810) 및 제4 패턴(840)은 설계 규칙에 따른 D_same에 기인하여 설계 규칙을 위반할 수 있다. 이와 같이, 위반된 패턴들 중 하나를 다른 마스크에 대응시키는 것은 설계 규칙을 위반한 새로운 패턴들을 생성할 수 있다.
또는, 설계 규칙을 준수하기 위한 다른 방법으로서, 제1 패턴(810)이 제2 패턴(820)으로부터 D_same보다 멀리 이격되도록 제1 패턴(810)을 이동시키는 경우, 제1 패턴(810)과 제1 패턴(810)에 인접한 다른 패턴들, 예컨대 제4 패턴(840) 또는 제5 패턴(850) 사이의 거리가 감소함에 따라, 설계 규칙에 따른 D_diff에 기인하여 설계 규칙을 위반할 수 있다. 이와 같이, 위반된 패턴들 중 하나의 위치를 이동시키는 것은 설계 규칙을 위반한 새로운 패턴들을 생성할 수 있다.
따라서 이처럼 설계 규칙이 위반되는 것을 피하기 위해 소자들 간에 일정한 이격 거리가 필요하므로, 최소한의 이격 거리 확보를 위해 소자 자체의 면적을 제외한 설계 규칙을 만족하기 위한 면적이 필요할 수 있다. 따라서 위와 같은 과정을 통해 디자인 툴은, 설계 규칙을 만족하기 위해 요구되는 면적, 즉 전술한 바와 같은 집적 회로의 제조 공정상 필요한 제2 면적(B)을 연산할 수 있다.
도 9는 본 개시의 예시적 실시예에 따른 레이아웃의 점수화 방법을 설명하기 위한 예시적인 레이아웃 평면도이다.
도 5 및 도 9를 참조하면, 디자인 툴은 레이아웃(900)을 점수화하기 위해 다양한 면적들을 연산할 수 있다. 도 5를 참조하여 전술한 바와 같이 제1 면적(A), 제2 면적(B) 및 보이드 면적(C)은, 레이아웃(900)은 집적 회로에 포함되는 적어도 하나의 회로 소자가 차지하는 제1 면적(A), 집적 회로의 제조 공정상 필요한 제2 면적(B), 전체 레이아웃에서 제1 면적과 제2 면적을 제외한 보이드 면적(C)을 의미할 수 있다.
디자인 툴은 레이아웃(900)을 수신한 후, 레이아웃(900)에 포함된 집적 회로에 포함되는 적어도 하나의 회로 소자가 차지하는 제1 면적(A)을 연산할 수 있다. 제1 면적(A)은 트랜지스터가 차지하는 면적(A1), 다이오드가 차지하는 면적(A2), 저항이 차지하는 면적(A3)을 포함할 수 있다. 일부 실시예들에 있어서, 트랜지스터가 차지하는 면적(A1)은 트랜지스터의 소스(Source) 영역과 드레인(Drain) 영역이 사이에 위치한 영역의 면적을 의미할 수 있다. 소스 영역 및 드레인 영역은 각각의 컨택트(Contact) 영역을 포함할 수 있다. 즉, 트랜지스터가 차지하는 면적(A1)은 트랜지스터의 게이트(Gate) 영역과 액티브(Active) 영역이 중첩되는 채널(Channel) 영역의 면적을 의미할 수 있다. 예를 들어, 디자인 툴은 채널의 너비, 길이 및 채널의 개수를 곱하여 채널 영역이 차지하는 면적을 연산할 수 있다. 이처럼 디자인 툴은 트랜지스터가 차지하는 스키매틱(Schematic) 영역을 연산하기 위해 면적 A1에 대한 연산을 수행할 수 있다. 또한, 디자인 툴은 저항이 차지하는 면적(A3)을 연산할 때, 도시된 바와 같이 컨택트(Contact) 영역을 포함하여 연산할 수 있다.
또한, 일부 실시예들에 있어서, 집적 회로의 제조 공정상 필요한 제2 면적(B)은 예를 들어, 소자 자체를 배치시키기 위한 영역에 대한 스페이스(Space) 면적(B1) 및 웰(Well) 영역 내에 트랜지스터 등을 배치하기 위해 확보되어야 할 영역인 오버랩(Overlap) 면적(B2)을 포함할 수 있다. 소자 자체를 배치시키기 위한 영역에 대한 스페이스 면적(B1)은, 전술한 바와 같이 설계 규칙에 의한 면적을 의미할 수 있다. 즉 스페이스 면적(B1)은 레이아웃(900)에 형성되는 2개의 패턴들 사이의 최소 간격을 의미할 수 있고, 또는 소자가 배치되어 정상적으로 동작하기 위한 면적(예를 들어, 소스 영역, 드레인 영역 및/또는 라우팅(Routing)하기 위해 채널에서 연장된 컨택트 영역 등)을 의미할 수 있다. 오버랩 면적(B2) 또한 설계 규칙에 정의된 면적일 수 있으며, 웰 영역에 트랜지스터 등의 소자가 배치되기 위해 공정적으로 얼마나 이격되어야 하는지를 나타내는 면적일 수 있다.
일부 실시예들에 있어서, 보이드 면적(C)은 레이아웃(900)의 전체 레이아웃에서, 본 도면에서 설명한 제1 면적(A) 및 제2 면적(B)을 제외한 면적일 수 있다. 즉, 보이드 면적(C)을 연산할 때 필요한 제1 면적(A)을 연산함에 있어서, 트랜지스터가 차지하는 면적(A1)은 채널 영역의 면적에 기초하여 연산될 수 있다. 또는, 저항이 차지하는 면적(A3)은 컨택트 영역을 포함하여 연산될 수 있다. 또한, 보이드 면적(C)을 연산할 때 필요한 제2 면적(B)은 스페이스 면적(B1) 및/또는 오버랩 면적(B2)을 포함하여 연산될 수 있다. 또한, 레이아웃(900)의 전체 면적은 반도체 칩(Chip) 하나 전체의 면적이 될 수 있으나, 이에 국한되지 않는다. 즉, 레이아웃(900)의 전체 면적은 정의하기에 따라 다양한 양태로 연산될 수 있다. 마찬가지로 제1 면적(A) 및 제2 면적(B)에 대한 연산 또한 이에 국한되지 않으며, 각각 소자가 차지하는 면적을 어떻게 정의하는 지와 공정을 위한 면적을 어떻게 정의하는 지에 따라 다양한 양태로 연산될 수 있다.
또한, 디자인 툴의 레이아웃을 구성하는 면적들에 대한 연산은 본 개시의 예시적 실시예에 국한되는 것은 아니며, 언급되지 않은 다양한 소자들의 면적 및 제조 공정상 필요한 면적들에 대한 연산을 포함할 수 있다.
도 10은 본 개시의 예시적 실시예에 따른 레이아웃의 점수화를 수행하였을 때, 기준 점수를 만족하는 경우를 설명하기 위한 레이아웃 평면도의 예시이다.
도 10을 참조하면, 일부 실시예들에 있어서, 레이아웃(1000)은 적어도 하나의 회로 소자가 차지하는 제1 면적(A), 집적 회로의 제조 공정상 필요한 제2 면적(B), 전체 레이아웃에서 제1 면적과 제2 면적을 제외한 보이드 면적(C)을 포함할 수 있다. 이와 같은 정의는 본 명세서에서 설명되는 레이아웃 평면도의 예시들에서 동일 또는 유사하게 사용될 수 있다.
제1 면적(A)은 트랜지스터가 차지하는 면적(A1, A2) 및 다이오드가 차지하는 면적(A3)를 포함할 수 있다. 트랜지스터가 차지하는 면적(A1, A2)은 전술한 바와 같이 트랜지스터의 게이트 영역과 엑티브 영역이 중첩되는 채널 영역의 면적을 의미할 수 있다. 또한, 트랜지스터가 차지하는 면적(A1, A2)은 PMOS(P-channel Metal Oxide Semiconductor) 트랜지스터 또는 NMOS(N-channel Metal Oxide Semiconductor) 트랜지스터가 차지하는 면적일 수 있다. 트랜지스터가 차지하는 면적(A1, A2)은 도시된 바와 같이 다양한 형태로 나타날 수 있다. 예를 들어, 트랜지스터가 좁은 너비(Width)에서 하나의 소스 라인과 하나의 드레인 라인을 공유하며 세로로 배열될 경우 차지하는 레이아웃의 면적은 면적(A1)과 같이 나타날 수 있다. 또는, 트랜지스터가 넓은 너비(Width)에서 가로로 배열 될 경우 차지하는 레이아웃의 면적은 면적(A2)와 같이 나타날 수 있다.
일부 실시예들에 있어서, 제2 면적(B)은 웰 오버랩(Well overlap) 면적(B3), 웰-액티브 스페이스(Well - active space) 면적(B4), 게이트 스페이스(Gate space) 면적(B5), 게이트-액티브 스페이스(Gate - active space) 면적(B6) 및 트랜지스터 스페이스(B7)를 포함할 수 있다. 웰 오버랩 면적(B3)은 도 9를 참조하여 전술한 바와 같이 웰 영역에 트랜지스터 등의 소자가 배치되기 위해 공정적으로 얼마나 이격되어야 하는지를 나타내는 면적일 수 있다. 웰-액티브 스페이스 면적(B4) 및 게이트-액티브 스페이스 면적(B6)은 각각 대상이 되는 트랜지스터에 대응하는 웰 영역과 액티브 영역 간의 공간을 나타내는 면적 및 대상이 되는 트랜지스터에 대응하는 게이트 영역과 액티브 영역 간의 공간을 나타내는 면적으로서, 대응하는 소자가 설계한 성능 대로 동작할 수 있도록 또는 소자 자체가 형성될 수 있도록 확보해야하는 최소한의 공간을 의미할 수 있다. 예를 들어, 웰-액티브 스페이스 면적(B4)은 NMOS 트랜지스터의 경우 NMOS 트랜지스터의 액티브 영역인 Nactive와 NMOS 트랜지스터의 웰 영역인 Nwell 간의 공간, 또는 PMOS 트랜지스터의 경우 PMOS 트랜지스터의 액티브 영역인 Pactive와 PMOS 트랜지스터의 웰 영역인 Pwell 간의 공간을 의미할 수 있다.
또한, 게이트 스페이스 면적(B5) 및 트랜지스터 스페이스(B7)는 각각 게이트 영역을 확보하기 위해 필요한 면적 및 트랜지스터들 간에 이격 되어야 할 최소 면적을 의미할 수 있다.
일부 실시예들에 있어서, 보이드 면적(C)은 레이아웃(1000)의 전체 면적에서, 본 도면에서 설명한 제1 면적(A1, A2, A3) 및 제2 면적(B3, B4, B5, B6, B7)을 모두 제외한 면적일 수 있다. 디자인 툴은 위와 같은 면적들(A, B, C)에 따른 연산 결과(1010)에 기초하여 전술한 바와 같은 레이아웃(1000)의 점수화를 수행할 수 있으며, [수식 1]에 따라 계산한 결과 레이아웃(1000)의 점수는 94점이 될 수 있다. 예를 들어, 목표로 설정한 기준 점수가 90점일 경우, 본 도면의 레이아웃(1000)의 점수는 목표 값을 충족하므로, 디자인 툴은 본 레이아웃 설계에 기초하여 출력 레이아웃 데이터를 생성할 수 있다.
도 11은 본 개시의 예시적 실시예에 따른 레이아웃의 점수화를 수행하였을 때, 기준 점수를 만족하지 못하는 경우를 설명하기 위한 레이아웃 평면도의 예시이다.
도 10 및 도 11을 참조하면, 일부 실시예들에 있어서, 레이아웃 (1100)에서 제1 면적(A), 제2 면적(B) 및 보이드 면적(C)에 대한 설명은 도 10을 참조하여 설명한 바, 생략하도록 한다. 디자인 툴은 위와 같은 면적들(A, B, C)에 따른 연산 결과(1110)에 기초하여 [수식 1]에 따라 레이아웃(1100)의 점수화를 수행할 수 있으며, 레이아웃(1100)의 점수는 예를 들어, 88점일 수 있다. 예를 들어, 목표로 설정한 기준 점수가 90점일 경우, 본 도면의 레이아웃(1100)은 목표 값을 충족하지 못한다.
도 12는 본 개시의 예시적 실시예에 따른 레이아웃의 점수화 방법을 설명하기 위한 다른 예시적인 레이아웃 평면도이다.
도 12를 참조하면, 일부 실시예들에 있어서, 레이아웃(1200)에서 제1 면적(A)은 저항 소자가 차지하는 면적(A1, A2), 커패시터(Capacitor)가 차지하는 면적(A3, A4, A5, A7) 및 트랜지스터가 차지하는 면적(A6, A8)을 포함할 수 있다. 반도체 공정에서 저항 소자를 구현할 때, 예를 들어, 각 소스 또는 드레인의 액티브 영역, 웰 영역, 게이트 영역 (예를 들어, Poly-Si이 사용되는) 등을 활용하여 저항 소자를 만들 수 있다. 도핑을 통해 비저항을 조절하거나 전류가 흐르지 못하는 영역을 설계하여 집적 회로에서의 저항이 구성될 수 있다. 소스 또는 드레인의 액티브 영역을 만드는 공정에서 저항을 생성하는 공정이 동시에 진행될 수 있다. Poly-Si이 사용되는 게이트 영역을 활용한 저항 소자(이하, Gate poly Resistor, GP Res라 한다.)는 불순물의 종류 및/또는 도핑 양에 따라 그 비저항이 조절될 수 있으며, 이를 통해 다양한 저항 값을 가질 수 있다. 예를 들어, 저항 소자가 차지하는 면적(A1, A2)은 Gate poly Resistor가 차지하는 영역을 의미할 수 있다. 커패시터(Capacitor)가 차지하는 면적(A3, A4, A5, A7)은 커패시터가 차지하는 영역을 의미할 수 있으며, 여기서 커패시터는, 커패시터로 사용되는 NMOS 트랜지스터 소자를 의미할 수 있다. 트랜지스터가 차지하는 면적(A6)은 NMOS 트랜지스터가 차지하는 영역을 의미할 수 있으며, 트랜지스터가 차지하는 면적(A8)은 PMOS 트랜지스터가 차지하는 영역을 의미할 수 있다.
제2 면적(B)은 GP Res 스페이스 면적(B8), GP Res 오버랩 면적(B9) 및 GP Res - 웰 스페이스 면적(B10)을 포함할 수 있다. 도 10을 참조하여 전술한 바와 같이, GP Res 스페이스 면적(B8)은 Gate poly Resistor 영역을 확보하기 위해 필요한 면적을 의미할 수 있으며, GP Res 오버랩 면적(B9)은 웰 영역에 저항 역할을 하는 GP Res 소자가 배치되기 위해 공정적으로 얼마나 이격되어야 하는지를 나타내는 영역일 수 있다. 또한, GP Res - 웰 스페이스 면적(B10)은 공정에서 GP Res 소자가 형성되기 위한 최소한의 영역을 의미하거나, 설계한 대로 마스크 패턴이 형성되기 위한 최소한의 공정 조건을 의미할 수 있다.
일부 실시예들에 있어서, 보이드 면적(C)은 레이아웃(1200)의 전체 면적에서, 본 도면에서 설명한 제1 면적(A1 내지 A8) 및 제2 면적(B8, B9, B10)을 모두 제외한 면적일 수 있다. 디자인 툴은 위와 같은 면적들(A, B, C)을 바탕으로 한 연산 결과에 기초하여 레이아웃(1200)의 점수화를 수행할 수 있다.
도 13은 본 개시의 예시적 실시예에 따른 레이아웃 점수화에 따른 레이아웃의 최적화 과정을 나태내기 위한 순서도이다.
도 13을 참조하면, 디자인 툴은 본 개시의 예시적 실시예에 따른 레이아웃 점수화에 기초하여 최적화된 레이아웃을 생성할 수 있다. 먼저, 사용자 등은 집적 회로를 설계하기 위해 다양한 소자들을 배치할 수 있다(S1301). 디자인 툴은 집적 회로에 배치된 소자들에 기초하여 생성된 레이아웃을 수신하여 점수화할 수 있다(S1302, S1303). 이에 대한 설명은 도 4 및 도 9 내지 도 11을 참조하여 상세히 설명한 바, 생략하도록 한다. 디자인 툴은 위와 같은 레이아웃의 점수와, 설정된 기준 점수를 비교할 수 있다(S1304).
예를 들어, 보이드 면적이 클수록 레이아웃에서 낭비되는 공간이 많은 것이므로 비효율적인 레이아웃일 수 있다. 따라서 사용자 등은 레이아웃 내에서 소자들을 보다 효율적으로 배치하기 위해 기준 점수를 설정하여 레이아웃 점수를 비교할 수 있으며, 이에 따라 디자인 툴은 기준 점수보다 같거나 높은 경우에만 수신한 레이아웃을 출력 레이아웃으로서 생성할 수 있다(S1306). 일부 실시예들에 있어서, 기준 점수는 사용자 등이 임의로 설정한 점수일 수 있다. 또는, 기존에 생성된 여러 레이아웃들의 점수를 기초로(예를 들어, 기존 레이아웃들의 점수의 평균) 기준 점수가 설정될 수 있다. 또는, 기준 점수는 디자인 툴이 레이아웃들의 점수화를 수행하면서 얻은 점수 데이터를 활용하여 설정한 점수일 수 있다. 디자인 툴은 레이아웃 점수가 기준 점수보다 작은 경우, (소자들이 비교적 비효율적으로 배치된 것이므로) 소자들의 재배치를 수행할 수 있다(S1305).
결과적으로, 디자인 툴은 레이아웃을 수신하여 일정 기준 점수를 만족할 때까지 반복하여 소자 재배치를 수행할 수 있다. 이를 통해, 레이아웃 내에서 낭비되는 빈 공간을 감소시킴으로써, 가용 면적을 더욱 효율적으로 활용하여 레이아웃의 소자 배치를 최적화할 수 있다.
도 14는 본 개시의 예시적 실시예에 따른 레이아웃 설계 방법이 적용된 메모리 시스템을 나타내는 블록도이다.
도 14를 참조하면, 메모리 시스템(2000)은 호스트(2100), 메모리 장치(2200)을 포함할 수 있다. 메모리 장치(2200)는 본 개시의 예시적 실시예에 따른 레이아웃 설계 방법에 기초하여 설계된, 메모리 컨트롤러(2210) 및 비휘발성 메모리(2220)를 포함할 수 있다. 호스트(2100)와 메모리 장치(2200)는 전기적으로 연결될 수 있다. 호스트(2100)는 메모리 장치(2200)에 논리 블록 어드레스 (LBA)(logical block address) 및 요청 신호(REQ)(request signal)를 제공할 수 있으며, 호스트(2100)와 메모리 장치(2200)는 데이터(DATA)를 주고받을 수 있다. 예를 들어, 호스트(2100)는 메모리 컨트롤러(2210)와 연결될 수 있다.
호스트(2100)는 예를 들어, PC(personal computer), 노트북(laptop), 휴대폰(mobile phone), 스마트 폰(smart phone), 태블릿(tablet) PC 등을 포함할 수 있다.
메모리 장치(2200)는 메모리 컨트롤러(2210) 및 비휘발성 메모리(2220)를 포함할 수 있다. 메모리 장치(2200)는 하나의 반도체 장치로 집적될 수 있다. 메모리 장치(2200)의 집적 과정에서, 메모리 장치(2200)가 포함하는 다양한 구성들 각각이 설계될 때, 본 개시의 예시적 실시예에 따른 레이아웃 설계 방법이 이용될 수 있다. 예를 들어, 메모리 장치(2200)는 본 개시의 예시적 실시예에 따른 레이아웃 설계 방법이 적용된 임베디드(Embedded) UFS(Universal Flash Storage) 메모리 장치, eMMC(embedded Multi-Media Card), SSD(Solid State Drive), 탈부착이 가능한 UFS 메모리 카드, CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 또는 메모리 스틱(Memory Stick) 등을 포함할 수 있다.
비휘발성 메모리(2220) 또한 본 개시의 예시적 실시예에 따른 레이아웃 설계 방법이 적용된 NAND 플래시 메모리(NAND flash memory) 또는 NOR 플래시 메모리(NOR flash memory)를 포함하거나, 또는, PRAM(Phase-change RAM), MRAM(Magneto resistive RAM), FeRAM(Ferroelectric RAM) 및 RRAM(Resistive RAM)과 같은 저항성 메모리를 포함할 수 있다.
메모리 컨트롤러(2210)는 비휘발성 메모리(2220)에 연결되어, 비휘발성 메모리(2220)를 제어할 수 있다. 예를 들어, 메모리 컨트롤러(2210)는 호스트(2100)로부터 수신한 논리 블록 어드레스(LBA), 요청 신호(REQ) 등에 응답하여 비휘발성 메모리(2220)에 어드레스(ADDR), 커맨드(CMD), 제어 신호(CTRL) 등을 제공할 수 있다. 즉, 메모리 컨트롤러(2210)는 비휘발성 메모리(2220)에 신호들을 제공하여, 비휘발성 메모리(2220)에 데이터를 라이트(Write)하거나, 비휘발성 메모리(2220)로부터 데이터를 독출(Read)하도록 제어할 수 있다. 또한, 메모리 컨트롤러(2210)와 비휘발성 메모리(2220)는 데이터(DATA)를 주고 받을 수 있다.
본 개시는 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.

Claims (20)

  1. 메모리 장치의 레이아웃 설계를 위한 방법으로서,
    상기 메모리 장치의 입력 레이아웃을 수신하는 단계;
    상기 입력 레이아웃을 점수화하는 단계;
    상기 점수화에 기초하여 상기 메모리 장치의 적어도 하나의 소자의 재배치 여부를 결정하는 단계; 및
    상기 재배치 여부에 기초하여 출력 레이아웃을 생성하는 단계를 포함하고,
    상기 점수화하는 단계는,
    상기 입력 레이아웃에서 상기 메모리 장치에 포함된 하나 이상의 소자가 차지하는 제1 면적을 연산하는 단계;
    상기 하나 이상의 소자에 대한 설계 규칙(Design Rule) 및 상기 제1 면적에 기초하여, 제조 공정상 필요한 제2 면적을 연산하는 단계;
    상기 입력 레이아웃의 전체 면적과, 상기 제1 면적 및 상기 제2 면적의 차에 기초하여, 상기 입력 레이아웃의 보이드(Void) 면적을 연산하는 단계; 및
    상기 보이드 면적에 기초하여 상기 입력 레이아웃의 점수를 연산하는 단계를 포함하고,
    상기 제1 면적을 연산하는 단계는, 상기 하나 이상의 소자가 트랜지스터를 포함할 경우, 상기 트랜지스터의 게이트 영역과 액티브 영역이 중첩되는 채널 영역에 기초하여 상기 트랜지스터가 차지하는 면적을 연산하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 입력 레이아웃의 점수를 연산하는 단계는,
    상기 입력 레이아웃의 전체 면적과 상기 보이드 면적의 차이를 상기 입력 레이아웃의 전체 면적으로 나눈 값으로부터 상기 입력 레이아웃의 점수를 연산하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 재배치 여부를 결정하는 단계는, 상기 입력 레이아웃의 점수와 기준 점수의 비교하는 단계를 포함하는 방법.
  4. 제3항에 있어서,
    상기 재배치 여부를 결정하는 단계는, 상기 입력 레이아웃의 점수가 상기 기준 점수보다 작을 경우, 상기 입력 레이아웃의 점수가 상기 기준 점수보다 크거나 같을 때까지,
    상기 적어도 하나의 소자를 재배치하는 단계; 및
    상기 재배치가 수행된 레이아웃에 기초하여 상기 점수화하는 단계를 반복하는 단계를 포함하는 방법.
  5. 제1항에 있어서,
    상기 제2 면적을 연산하는 단계는, 상기 트랜지스터 자체를 배치시키기 위한 상기 설계 규칙에 따른 면적에서 상기 트랜지스터가 차지하는 면적을 감산한 제3 면적을 연산하는 단계를 포함하는 방법.
  6. 제5항에 있어서,
    상기 제2 면적을 연산하는 단계는, 상기 메모리 장치에 포함된 소자들이 웰(Well) 영역 내에 배치될 수 있도록 하는 상기 설계 규칙을 만족하기 위해 요구되는 면적인 제4 면적을 연산하는 단계를 포함하는 방법.
  7. 제1항에 있어서,
    상기 제1 면적을 연산하는 단계는,
    상기 하나 이상의 소자가 저항을 포함할 경우, 상기 저항의 컨택트 영역을 포함하여 상기 저항이 차지하는 면적을 연산하는 단계; 및
    상기 저항을 제외한 상기 하나 이상의 소자의 경우, 정의된 LVS(Layout-Versus-Schematic) 룰 파일(Rule file)에 기초하여 상기 하나 이상의 소자가 차지하는 면적을 연산하는 단계를 포함하는 방법.
  8. 집적 회로의 레이아웃 설계를 위한 컴퓨터 구현 방법으로서,
    상기 집적 회로의 입력 레이아웃을 수신하는 단계;
    상기 입력 레이아웃에서 상기 집적 회로에 포함된 하나 이상의 소자가 차지하는 제1 면적을 연산하는 단계;
    상기 하나 이상의 소자에 대한 설계 규칙(Design Rule) 및 상기 제1 면적에 기초하여, 제조 공정상 요구되는 제2 면적을 연산하는 단계;
    상기 입력 레이아웃의 전체 면적과, 상기 제1 면적 및 상기 제2 면적의 차에 기초하여, 상기 입력 레이아웃의 보이드(Void) 면적을 연산하는 단계;
    상기 제1 면적, 상기 제2 면적 및 상기 보이드 면적에 기초하여 상기 입력 레이아웃의 점수를 연산하는 단계;
    상기 입력 레이아웃의 점수와 문턱 값을 비교하는 단계; 및
    상기 비교 결과에 기초하여 상기 집적 회로에 대한 라우팅을 수행하는 단계를 포함하고,
    상기 제1 면적을 연산하는 단계는, 상기 하나 이상의 소자가 트랜지스터를 포함할 경우, 상기 트랜지스터의 게이트 영역과 액티브 영역이 중첩되는 채널 영역에 기초하여 상기 트랜지스터가 차지하는 면적을 연산하는 단계를 포함하는 방법.
  9. 제8항에 있어서,
    상기 점수를 연산하는 단계는,
    상기 입력 레이아웃의 전체 면적과 상기 보이드 면적의 차이를 상기 입력 레이아웃의 전체 면적으로 나눈 값으로부터 상기 입력 레이아웃의 점수를 연산하는 단계를 포함하는 방법.
  10. 제8항에 있어서,
    상기 제2 면적을 연산하는 단계는,
    상기 트랜지스터를 배치시키기 위한 상기 설계 규칙에 따른 면적에서 상기 트랜지스터가 차지하는 면적을 감산한 제3 면적을 연산하는 단계; 및
    상기 집적 회로에 포함된 소자들이 웰(Well) 영역 내에 배치될 수 있도록 하는 상기 설계 규칙을 만족하기 위해 요구되는 면적인 제4 면적을 연산하는 단계를 포함하는 방법.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020220157504A 2022-11-22 2022-11-22 반도체 소자 집적 회로 및 그것의 레이아웃을 설계하는 방법 KR102631355B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220157504A KR102631355B1 (ko) 2022-11-22 2022-11-22 반도체 소자 집적 회로 및 그것의 레이아웃을 설계하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220157504A KR102631355B1 (ko) 2022-11-22 2022-11-22 반도체 소자 집적 회로 및 그것의 레이아웃을 설계하는 방법

Publications (1)

Publication Number Publication Date
KR102631355B1 true KR102631355B1 (ko) 2024-01-31

Family

ID=89717237

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220157504A KR102631355B1 (ko) 2022-11-22 2022-11-22 반도체 소자 집적 회로 및 그것의 레이아웃을 설계하는 방법

Country Status (1)

Country Link
KR (1) KR102631355B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003209172A (ja) * 2002-01-11 2003-07-25 Hitachi Ltd 半導体装置の設計方法および設計装置
JP2004252622A (ja) * 2003-02-19 2004-09-09 Renesas Technology Corp 論理回路図入力装置
JP2006277668A (ja) * 2005-03-30 2006-10-12 Fujitsu Ltd レイアウト設計方法及びレイアウト設計装置
JP2010044689A (ja) * 2008-08-18 2010-02-25 Toshiba Corp レイアウト面積見積り装置、レイアウト面積見積り方法およびレイアウト面積見積りプログラム
KR20180127141A (ko) * 2017-05-19 2018-11-28 삼성전자주식회사 집적 회로를 설계하기 위한 컴퓨터 구현 방법, 컴퓨팅 시스템, 및 집적 회로의 제조 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003209172A (ja) * 2002-01-11 2003-07-25 Hitachi Ltd 半導体装置の設計方法および設計装置
JP2004252622A (ja) * 2003-02-19 2004-09-09 Renesas Technology Corp 論理回路図入力装置
JP2006277668A (ja) * 2005-03-30 2006-10-12 Fujitsu Ltd レイアウト設計方法及びレイアウト設計装置
JP2010044689A (ja) * 2008-08-18 2010-02-25 Toshiba Corp レイアウト面積見積り装置、レイアウト面積見積り方法およびレイアウト面積見積りプログラム
KR20180127141A (ko) * 2017-05-19 2018-11-28 삼성전자주식회사 집적 회로를 설계하기 위한 컴퓨터 구현 방법, 컴퓨팅 시스템, 및 집적 회로의 제조 방법

Similar Documents

Publication Publication Date Title
KR101904417B1 (ko) 반도체 집적 회로 및 그 설계 방법
US7278118B2 (en) Method and process for design of integrated circuits using regular geometry patterns to obtain geometrically consistent component features
US8607019B2 (en) Circuit and method of a memory compiler based on subtractive approach
US10037401B2 (en) Methods of designing a layout of a semiconductor device including field effect transistor and methods of manufacturing a semiconductor device using the same
US9996658B2 (en) Method of manufacturing a semiconductor device
US8037432B2 (en) Method and apparatus for mapping design memories to integrated circuit layout
US20150234964A1 (en) Pattern density-dependent mismatch modeling flow
USRE49780E1 (en) Methods of designing a layout of a semiconductor device including field effect transistor and methods of manufacturing a semiconductor device using the same
TW202018869A (zh) 積體電路佈局方法
TWI789911B (zh) 用於電容值提取的系統、方法及儲存媒體
KR20170133750A (ko) 집적 회로의 설계를 위한 컴퓨터 구현 방법
US9652580B2 (en) Integrated circuit layout design system and method
US9436792B2 (en) Method of designing layout of integrated circuit and method of manufacturing integrated circuit
US10424518B2 (en) Integrated circuit designing system and a method of manufacturing an integrated circuit
US9275186B2 (en) Optimization for circuit migration
US11082044B2 (en) Integrated circuit including power gating cell
US10223485B2 (en) Reliability verification based on combining voltage propagation with simulation
KR102636094B1 (ko) 트리플 패터닝 리소그래피를 위한 집적 회로, 상기 집적 회로의 설계를 위한 컴퓨팅 시스템 및 컴퓨터 구현 방법
KR102631355B1 (ko) 반도체 소자 집적 회로 및 그것의 레이아웃을 설계하는 방법
KR20170094744A (ko) 집적 회로 및 상기 집적 회로의 제조를 위한 컴퓨터 구현 방법
KR102257381B1 (ko) 집적회로 레이아웃의 설계 방법 및 그것을 수행하는 컴퓨터 시스템
KR20190085588A (ko) 반도체 장치, 반도체 장치의 레이아웃 설계 방법 및 반도체 장치의 제조 방법
US11387144B2 (en) Semiconductor device and method of manufacturing the same
US11023651B2 (en) Optical proximity correction (OPC) modeling methods and methods for manufacturing semiconductor device using the same
US10509888B1 (en) System and method for forming integrated device

Legal Events

Date Code Title Description
GRNT Written decision to grant