KR20240036476A - 집적 회로 설계 방법, 시스템 및 컴퓨터 프로그램 제품 - Google Patents

집적 회로 설계 방법, 시스템 및 컴퓨터 프로그램 제품 Download PDF

Info

Publication number
KR20240036476A
KR20240036476A KR1020230118833A KR20230118833A KR20240036476A KR 20240036476 A KR20240036476 A KR 20240036476A KR 1020230118833 A KR1020230118833 A KR 1020230118833A KR 20230118833 A KR20230118833 A KR 20230118833A KR 20240036476 A KR20240036476 A KR 20240036476A
Authority
KR
South Korea
Prior art keywords
layout
block
circuit
blocks
options
Prior art date
Application number
KR1020230118833A
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 타이완 세미콘덕터 매뉴팩쳐링 컴퍼니 리미티드
Publication of KR20240036476A publication Critical patent/KR20240036476A/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/20Configuration CAD, e.g. designing by assembling or positioning modules selected from libraries of predesigned modules
    • 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

Landscapes

  • Engineering & Computer Science (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)
  • Architecture (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

복수의 상이한 레이아웃 블록을 생성하는 단계; 복수의 레이아웃 블록 중에서, 회로의 평면도의 복수의 블록에 대응하는 레이아웃 블록을 선택하는 단계; 평면도에 따라 선택된 레이아웃 블록을 회로의 레이아웃으로 결합하는 단계; 및 회로의 레이아웃을 셀 라이브러리에 저장하거나 회로의 레이아웃을 사용하여 회로를 포함하는 집적 회로(integrated circuit; IC)의 레이아웃을 생성하는 단계를 수행하도록 구성된 프로세서를 포함하는 시스템이 개시된다. 복수의 레이아웃 블록 각각은 미리 결정된 설계 규칙을 충족하고, 제1 레이아웃 피처와 연관된 복수의 상이한 제1 블록 옵션 중 적어도 하나, 및 제1 레이아웃 피처와는 다른 제2 레이아웃 피처와 연관된 복수의 상이한 제2 블록 옵션 중 적어도 하나를 포함한다.

Description

집적 회로 설계 방법, 시스템 및 컴퓨터 프로그램 제품{INTEGRATED CIRCUIT DESIGN METHOD, SYSTEM AND COMPUTER PROGRAM PRODUCT}
관련 출원(들)
본 출원은 2022년 9월 13일에 출원된 미국 특허 가출원 제63/375,415호의 이익을 주장하고 그 내용은 그 전체적으로 참조로 본 개시 내용에 편입된다.
집적 회로(integrated circuit; "IC") 디바이스는 IC 레이아웃("레이아웃도(layout diagram)"라고도 함)에 표현된 하나 이상의 반도체 디바이스를 포함한다. 레이아웃도는 계층적이며 반도체 디바이스 설계 사양에 따라 상위 수준 기능을 수행하는 모듈을 포함한다. 모듈은 종종 각각이 특정 기능을 수행하도록 구성된 하나 이상의 반도체 구조물을 나타내는 셀 결합(a combination of cells)으로부터 구축된다. 사전 설계된 레이아웃도를 갖는 셀은 셀 라이브러리(때때로 단순화를 위해 "라이브러리"라고도 함)에 저장되며 예를 들어, 전자 설계 자동화(electronic design automation; EDA) 도구와 같은 다양한 도구로 액세스하여 IC용 설계를 생성, 최적화 및 검증한다.
레이아웃도는 설계 규칙의 맥락에서 생성된다. 설계 규칙의 세트는 레이아웃도에서 대응하는 패턴의 배치에 대해 제약, 예를 들어, 지리적/공간적 제한, 접속 제한 등을 가한다. 종종 설계 규칙의 세트는 인접하거나 접하는 셀들의 패턴들 사이의 간격 및 기타 상호 작용과 관련된 설계 규칙의 서브세트를 포함하며, 여기서 패턴은 금속화층(a layer of metallization)의 전도체를 나타낸다. 라우팅은 디바이스의 상이한 디바이스들이 접속되는 곳이다.
본 개시 내용의 양상은 첨부한 도면들과 함께 읽을 때 하기의 상세한 설명으로부터 가장 잘 이해된다. 업계의 표준적 관행에 따라, 다양한 피처(features)는 실제 크기대로 도시되지 않는 것을 주목된다. 실제로, 다양한 피처의 치수는 논의의 명료화를 위해 임의로 증가되거나 감소될 수 있다.
도 1a는 일부 실시예에 따른 IC 시스템의 블록도이다.
도 1b는 일부 실시예에 따른 IC 설계 흐름의 적어도 일부의 기능 흐름도이다.
도 2는 일부 실시예에 따른 IC 디바이스의 회로의 개략적 회로도이다.
도 3a, 3c, 3d는 일부 실시예에 따른 IC 디바이스의 회로의 레이아웃도의 다양한 층에서의 개략도이다. 도 3b는 일부 실시예에 따른 회로의 평면도(floorplan)의 개략도이다.
도 3e는 일부 실시예에 따른 IC 디바이스의 개략적 단면도이다.
도 4a, 4b는 일부 실시예에 따라 대응하는 레이아웃 피처와 연관된 다양한 블록 옵션(block options)을 도시하는 개략도이다.
도 4c는 일부 실시예에 따라 대응하는 레이아웃 피처와 연관된 블록 옵션의 예시적인 결합을 도시하는 개략도를 포함한다.
도 4d, 4e는 일부 실시예에 따라 추가 레이아웃 피처와 연관된 다양한 블록 옵션을 도시하는 개략도이다.
도 4f는 일부 실시예에 따라 대응하는 레이아웃 피처와 연관된 블록 옵션의 예시적인 결합을 도시하는 개략도를 포함한다.
도 5a는 일부 실시예에 따라 IC 디바이스의 회로의 평면도에 대한 레이아웃 피처와 연관된 블록 옵션의 매핑 예를 도시하는 개략도이다.
도 5b는 일부 실시예에 따라 다양한 레이아웃 블록을 IC 디바이스의 회로의 평면도에 매핑한 예시적인 결과를 도시하는 개략도이고, 도 5c는 다양한 레이아웃 블록을 결합하여 획득된 레이아웃도의 개략도이다.
도 5d는 일부 실시예에 따라 다양한 레이아웃 블록을 IC 디바이스의 회로의 평면도에 매핑하는 예를 도시하는 개략도 및 다양한 레이아웃 블록을 결합함으로써 획득되는 레이아웃도의 개략도를 포함한다.
도 6은 일부 실시예에 따라 IC 디바이스의 회로의 평면도에 매핑된 다양한 레이아웃 블록을 회로의 다양한 레이아웃도로 결합하기 위한 검색(search)을 도시한 개략도이다.
도 7a는 특정 레이아웃 블록이 결합될 때 잠재적인 설계 규칙 위반을 도시하는 개략도이다.
도 7b 내지 도 7d는 일부 실시예에 따라 레이아웃 블록을 결합하는 다양한 예를 도시하는 개략도이다.
도 8a 내지 8d는 일부 실시예에 따른 다양한 방법의 흐름도이다.
도 9는 일부 실시예에 따른 전자 설계 자동화(electronic design automation; EDA) 시스템의 블록도이다.
도 10은 일부 실시예에 따른 IC 제조 시스템 및 이와 연관된 IC 제조 흐름의 블록도이다.
하기의 개시 내용은 제공되는 특허 대상의 상이한 피처들을 구현하기 위한 다수의 상이한 실시예들 또는 예시들을 제공한다. 본 개시 내용을 간단하게 하기 위해, 컴포넌트, 물질, 값, 단계, 동작, 배열 등의 특정한 예시가 하기에서 설명된다. 물론, 이것들은 단지 예이고, 제한하는 것으로 의도되지 않는다. 다른 컴포넌트, 값, 동작, 물질, 배열 등이 고려된다. 예를 들어, 이하의 설명에서 제2 피처 위에 또는 제2 피처 상에 제1 피처의 형성은, 제1 피처와 제2 피처가 직접 접촉해서 형성되는 실시예를 포함할 수 있고, 추가적인 피처가 제1 피처와 제2 피처 사이에 형성될 수 있어서 제1 피처와 제2 피처가 직접 접촉될 수 없는 실시예를 또한 포함할 수 있다. 또한, 본 개시 내용은 다양한 예들에서 참조 번호들 및/또는 문자들을 반복할 수 있다. 이 반복은 간략함과 명료함을 위한 것이고, 논의되는 다양한 실시예들 및/또는 구성들 간의 관계를 본질적으로 지시하지는 않는다.
또한, "밑에", "아래에", "하부에", "위에", "상부에" 등과 같은 공간적으로 상대적인 용어들은 도면들에서 예시되는 바와 같이 하나의 요소 또는 피처와 또 다른 요소(들) 또는 피처(들) 간의 관계를 설명하도록 설명의 용이함을 위해 본 명세서에서 사용될 수 있다. 공간적으로 상대적인 용어들은 도면들에서 묘사된 방위에 추가적으로 사용 또는 동작 중인 디바이스의 상이한 방위들을 포괄하도록 의도된다. 장치는 다르게(90도 회전되거나 또는 다른 방위로) 배향될 수 있고, 본 명세서에서 사용된 공간적으로 상대적인 기술어들(descriptors)은 마찬가지로 상응하게 해석될 수 있다. 소스/드레인(들)은 상황에 따라 개별적으로 또는 총칭하여 소스 또는 드레인을 지칭할 수 있다.
집적 회로(IC) 설계 프로세스에서, IC 디바이스의 설계는 회로 설계자에 의해 제공된다. IC 디바이스의 IC 레이아웃은 예를 들어, 배치 및 라우팅 동작에 의해 설계에 기초해 생성된다. 생성된 IC 레이아웃에 대해 다양한 검사 및/또는 시뮬레이션이 수행된다. 하나 이상의 검사 또는 시뮬레이션이 하나 이상의 수율 및/또는 성능 문제를 나타날 때, IC 레이아웃이 수정된다. IC 레이아웃을 수정하는 접근법은 IC 레이아웃에 있는 회로의 현재 레이아웃을 동일한 회로의 또 다른 레이아웃으로 변경하는 것이다. 예를 들어, 전력, 성능, 면적(power, performance, area; PPA)과 같은 다양한 설계 고려 사항은 회로의 한 레이아웃(또는 레이아웃 솔루션)에서 동일한 회로의 다른 레이아웃과 크게 다를 수 있다.
일부 실시예는 예를 들어, 하나 이상의 셀 라이브러리에서 회로의 다수의 상이한 레이아웃(또는 레이아웃 솔루션)을 제공한다. 적어도 하나의 실시예에서, 현재 레이아웃의 특정 PPA 관심(들)에 따라, 제공된 다수의 상이한 레이아웃 중에서 현재 레이아웃보다 더 나은 레이아웃을 찾는 것이 가능하다. 일부 실시예는 주어진 레이아웃 구성에 대해 회로의 모든 가능한 레이아웃에 대한 완전 탐색(exhaustive search)을 제공한다. 주어진 레이아웃 구성에 대해 식별되는 회로의 모든 가능한 레이아웃으로 현재 레이아웃보다 더 나은 레이아웃을 찾을 수 있는 가능성이 증가되어 하나 이상의 실시예에서 IC 레이아웃을 개선할 수 있다.
일부 실시예에서, 회로의 다수의 또는 모든 가능한 레이아웃을 찾기 위한 방법은 레이아웃 블록을 생성하는 단계, 생성된 레이아웃 블록 중 일부를 회로의 평면도와 매핑하는 단계, 및 매핑된(또는 선택된) 레이아웃 블록을 회로의 레이아웃으로 결합하는 단계를 포함한다. 적어도 하나의 실시예에서, 생성된 레이아웃 블록은 미리 결정된 설계 규칙을 충족하고, 때때로 설계-규칙-검사(design-rule-check; DRC)-프리(즉, 생성된 레이아웃 블록은 DRC가 실행될 때 DRC 위반을 야기하지 않음)로 지칭된다. 적어도 하나의 실시예에서, 생성된 레이아웃 블록 중 일부와 회로의 평면도의 매핑은 미리 결정된 LVS(layout-versus-schematic) 규칙을 충족하는 방식으로 수행되며, 때때로 LVS-프리라고 지칭된다. 적어도 하나의 실시예에서, 매핑된(또는 선택된) 레이아웃 블록을 회로의 레이아웃으로 결합하는 단계는 실질적으로 DRC-프리 방식으로 수행되며, 때때로 DRC-레스(DRC-less)(즉, DRC가 실행될 때 DRC 위반을 야기할 가능성이 더 적음)라고 지칭된다. 하나 이상의 실시예에서, 회로의 레이아웃을 생성하는 프로세스의 다양한 단계는 DRC-프리, LVS-프리, 또는 DRC-레스이기 때문에, 생성된 레이아웃으로 인해 생성된 레이아웃을 포함하는 IC 레이아웃이 DRC 또는 LVS 검사에 실패할 가능성이 낮으므로 IC 설계 프로세스의 효율성이 향상된다.
도 1a는 일부 실시예에 따른 IC 디바이스(100A)의 블록도이다.
도 1에서, IC 디바이스(100A)는 무엇보다도 매크로(102)를 포함한다. 일부 실시예에서, 매크로(102)는 메모리, 전력 그리드, 셀 또는 셀들, 인버터, 래치, 버퍼 및/또는 셀 라이브러리에서 디지털로 표현될 수 있는 임의의 다른 유형의 회로 배열 중 하나 이상을 포함한다. 일부 실시예에서, 매크로(102)는 주어진 계산 기능을 수행하기 위해 메인 프로그램에 의해(또는 다른 서브루틴에 의해)에 의해 서브루틴/프로시저가 호출되는 모듈식 프로그래밍의 아키텍처 계층과 유사한 맥락에서 이해된다. 이러한 맥락에서, IC 디바이스(100A)는 하나 이상의 주어진 기능을 수행하기 위해 매크로(102)를 사용한다. 따라서, 이러한 맥락에서 그리고 아키텍처 계층의 관점에서, IC 디바이스(100A)는 메인 프로그램과 유사하고 매크로(102)는 서브루틴/프로시저와 유사하다. 일부 실시예에서, 매크로(102)는 소프트 매크로이다. 일부 실시예에서, 매크로(102)는 하드 매크로이다. 일부 실시예에서, 매크로(102)는 레지스터 전송 레벨(register-transfer level; RTL) 코드에서 디지털로 설명되는 소프트 매크로이다. 일부 실시예에서, 소프트 매크로가 다양한 프로세스 노드에 대해 합성, 배치 및 라우팅될 수 있도록 매크로(102)에 대해 합성, 배치 및 라우팅이 아직 수행되지 않았다. 일부 실시예에서, 매크로(102)는 이진 파일 형식(예컨대, 그래픽 데이터베이스 시스템 II(Graphic Database System II; GDSII) 스트림 형식)으로 디지털 방식으로 설명되는 하드 매크로이며, 이진 파일 포맷은 계층적 형태로 매크로(102)의 하나 이상의 레이아웃도의 평면 기하학적 형상, 텍스트 라벨, 기타 정보 등을 나타낸다. 일부 실시예에서, 합성, 배치 및 라우팅은 하드 매크로가 특정 프로세스 노드에 특유하도록 매크로(102)에 대해 수행되었다.
매크로(102)는 본 명세서에 설명된 바와 같은 일부 실시예에 따라 생성된 회로에 대한 적어도 하나의 레이아웃을 포함하는 회로 영역(104)을 포함한다. 일부 실시예에서, 회로 영역(104)은 FEOL(front-end-of-line) 제조에서 그 위에 형성된 회로를 갖는 기판을 포함한다. 또한, 기판 위 및/또는 아래에서, 회로 영역(104)은 BEOL(Back End of Line) 제조에서 절연층 위에 그리고/또는 아래에 적층되는 다양한 금속층을 포함한다. BEOL은 매크로(102) 및 영역(104)을 포함하는 IC 디바이스(100A)의 회로에 대한 전력망 및/또는 라우팅을 제공한다.
도 1b는 일부 실시예에 따른 IC 설계 흐름(100B)의 적어도 일부의 기능 흐름도이다. 적어도 하나의 실시예에서, 설계 흐름(100B)은 IC를 제조하기 전에 IC의 설계를 테스트하기 위해 하나 이상의 전자 설계 자동화(electronic design automation; EDA) 도구를 활용한다. 일부 실시예에서, EDA 도구는 나타내어진 기능을 수행하기 위해 프로세서 또는 컨트롤러 또는 프로그래밍된 컴퓨터에 의해 실행하기 위한 하나 이상의 실행 가능한 명령어 세트이다. 적어도 하나의 실시예에서, IC 설계 흐름(100B)은 도 9 및 10과 관련하여 본 명세서에서 논의된 IC 제조 시스템의 설계 하우스에 의해 수행된다. 일부 실시예에서, IC 설계 흐름(100B)은 IC 디바이스(100A)에 대한 IC 레이아웃을 설계하기 위해 수행된다.
동작(110)에서, IC의 설계는 회로 설계자에 의해 제공된다. 일부 실시예에서, IC의 설계는 IC 회로도(schematic), 즉, IC의 전기 다이어그램을 포함한다. 일부 실시예에서, 이 회로도는 예를 들어, SPICE(Simulation Program with Integrated Circuit Emphasis) 네트리스트(netlist)와 같은 도식적 네트리스트의 형태로 생성되거나 제공된다. 설계를 설명하기 위한 다른 데이터 형식은 일부 실시예에서 사용 가능하다.
동작(120)에서, 설계가 미리 결정된 사양을 충족하는지 여부를 결정하기 위해 설계에 대해 예를 들어, EDA 도구에 의해 사전 레이아웃 시뮬레이션이 수행된다. 설계가 미리 결정된 사양을 충족하지 않으면 IC가 재설계된다. 일부 실시예에서, SPICE 시뮬레이션은 SPICE 네트리스트에 대해 수행된다. 다른 실시예에서 SPICE 시뮬레이션 대신에 또는 SPICE 시뮬레이션에 추가하여 다른 시뮬레이션 도구가 사용 가능하다.
동작(130)에서, 설계에 기초하여 IC의 레이아웃(또는 레이아웃도)이 생성된다. IC 레이아웃도는 IC의 다양한 회로 요소(또는 디바이스)의 물리적 위치뿐만 아니라 회로 요소를 상호 접속하는 다양한 네트 및 비아의 물리적 위치를 포함한다. 일부 실시예에서, IC 레이아웃은 EDA 도구에 의해 그래픽 설계 시스템(Graphic Design System; GDS) 파일의 형태로 생성된다. IC의 레이아웃을 설명하기 위한 다른 데이터 형식은 다양한 실시예의 범위 내에 있다.
일부 실시예에서, IC 레이아웃도는 예를 들어, 자동 배치 및 라우팅(Automatic Placement and Routing; APR) 도구와 같은 EDA 도구에 의해 동작(130)에서 생성된다. APR 도구는 본 명세서에 설명된 바와 같이 네트리스트 형태로 IC의 설계를 수신하고 배치 동작(또는 배치)을 수행한다. 예를 들어, 미리 정의된 기능을 제공하도록 구성되고 미리 설계된 레이아웃을 갖는 셀은 적어도 하나의 라이브러리(133)에 저장된다. 일부 실시예에서, 적어도 하나의 라이브러리(133)는 적어도 하나의 비일시적 컴퓨터 판독 가능 매체에 저장된다. APR 도구는 적어도 하나의 라이브러리(133)로부터 다양한 셀에 액세스하고 셀을 인접한 방식으로 배치하여 IC 회로도에 대응하는 IC 레이아웃을 생성한다. 셀의 예는 인버터, 가산기, 곱셈기, 논리 게이트, 위상 동기 루프(phase lock loop; PLL), 플립플롭, 멀티플렉서, 메모리 셀, 이들의 결합 등을 포함하지만 이에 제한되지 않는다. 예시적인 논리 게이트는 AND, OR, NAND, NOR, XOR, INV, AOI(AND-OR-Invert), OAI(OR-AND-Invert), MUX, 플립-플롭, BUFF, 래치, 지연, 클록 셀 등을 포함하지만, 이것들에 제한되지는 않는다. 일부 실시예에서, 셀은 하나 이상의 능동 회로 요소 또는 수동 회로 요소를 포함한다. 능동 요소의 예는 트랜지스터 및 다이오드를 포함하지만 이에 제한되지는 않는다. 트랜지스터의 예는 금속 산화물 반도체 전계 효과 트랜지스터(metal oxide semiconductor field effect transistor; MOSFET), 상보형 금속 산화물 반도체(complementary metal oxide semiconductor; CMOS) 트랜지스터, 양극성 접합 트랜지스터(bipolar junction transistor; BJT), 고전압 트랜지스터, 고주파 트랜지스터, p-채널 및/또는 n-채널 전계 효과 트랜지스터(p-channel and/or n-channel field effect transistor; PFET/NFET), FinFET, 융기된 소스/드레인을 갖는 평면 MOS 트랜지스터 등을 포함하지만 이에 제한되지 않는다. 수동 요소의 예는 커패시터, 인덕터, 퓨즈, 및 저항기를 포함하지만, 이에 제한되지 않는다.
그런 다음 APR 도구는 라우팅 동작(또는 라우팅)을 수행하여 배치된 회로 요소를 상호 접속하는 다양한 네트 및 비아를 라우팅한다. 네트의 예는 전도성 패드, 전도성 패턴 및 전도성 재배선층 등을 포함하지만 이에 제한되지는 않는다. 라우팅 동작은 라우팅된 상호 접속이 일련의 제약 조건을 충족하는지 보장하기 위해 수행된다. 라우팅 동작 후 APR 도구는 배치된 회로 요소와 라우팅된 네트 및 비아를 포함하는 IC 레이아웃도를 출력한다. 네트와 비아는 여기에서 일반적으로 라우팅 피처라고 한다. 설명된 APR 도구는 예이다. 다른 배열도 다양한 실시예의 범위 내에 속한다. 예를 들어, 하나 이상의 실시예에서, 설명된 동작 중 하나 이상이 생략된다.
동작(135)에서, 다양한 실시예에 대해 본 명세서에서 설명된 바와 같이, 적어도 하나의 회로에 대해 다수의 레이아웃(또는 레이아웃 솔루션)이 생성된다. 적어도 하나의 회로에 대해 생성된 다수의 레이아웃은 적어도 하나의 라이브러리(133)에 저장된다. 일부 실시예에서, 적어도 하나의 라이브러리(133)는 복수의 회로(또는 셀) 중에서 각 회로(또는 셀)에 대해 동작(135)에서 생성된 다수의 레이아웃을 저장한다. 따라서, 적어도 하나의 라이브러리(133)는 설계자가 선택할 수 있는 각 셀의 다양한 레이아웃 솔루션을 제공하여, 설계자가 설계되는 특정 IC에 가장 적합한 레이아웃을 선택하고, 그리고/또는 예를 들어, PPA, 타이밍, 주파수, 결합 성능(예컨대, 주파수 및 전력), 낮은 누설 우려, 회로 견고성, 제약된 금속 라우팅 사용 등과 같은 다양한 요건을 충족하도록 설계되는 IC를 수정할 수 있게 한다. 도 1b의 예시적인 구성에서, 동작(135)은 설계 흐름(100B)의 일부로서 포함된다. 일부 실시예에서, 동작(135)은 설계 흐름(100B)과는 별개의 프로세스이고, 설계 흐름(100B)에서 사용하기 위해 적어도 하나의 라이브러리(133)에서 각각의 셀의 다수의 레이아웃을 제공한다.
동작(140)에서, LVS(layout-versus-schematic) 검사가 수행된다. 생성된 IC 레이아웃이 설계에 대응하는 것을 보장하기 위해 LVS 검사가 수행된다. 구체적으로, LVS 검사 도구, 즉, EDA 도구는 생성된 IC 레이아웃의 패턴들로부터 전기적 컴포넌트들 및 이들 사이의 접속들을 인식한다. 그런 다음, LVS 검사 도구는 인식된 전기적 컴포넌트 및 접속을 나타내는 레이아웃 네트리스트를 생성한다. IC 레이아웃으로부터 생성된 레이아웃 네트리스트는 LVS 검사 도구에 의해 설계의 회로도 네트리스트와 비교된다. 두 개의 네트리스트가 매칭 허용 오차 내에서 매칭하면, LVS 검사가 통과된다. 그렇지 않으면, 프로세스를 동작(110) 및/또는 동작(130)으로 되돌려 IC 레이아웃 또는 설계 중 적어도 하나에 대한 수정이 이루어진다. 다른 검증 프로세스는 일부 실시예에서 사용 가능하다. 일부 실시예에서, LVS 검사에 사용된 또는 사용된 것과 유사한 하나 이상의 LVS 규칙이 본 명세서에 설명된 바와 같이 동작(135)에서 사용된다.
동작(150)에서, IC 레이아웃이 특정 제조 설계 규칙을 충족하는 것을 보장하기 위해, 즉, IC의 제조 가능성을 보장하기 위해, 예를 들어, EDA 도구에 의해 IC 레이아웃을 나타내는 GDS 파일에 대해 설계 규칙 검사(DRC)가 수행된다. 하나 이상의 설계 규칙이 위반되면, 프로세스를 동작(110) 및/또는 동작(130)으로 되돌려 IC 레이아웃 또는 설계 중 적어도 하나에 대해 수정이 이루어진다. 설계 규칙의 예는, IC 레이아웃에서 패턴의 최소 폭을 명시하는 폭 규칙, IC 레이아웃에서 인접한 패턴들 사이의 최소 간격을 명시하는 간격 규칙, IC 레이아웃에서 패턴의 최소 면적을 명시하는 면적 규칙, 금속 패턴과 인접한 비아 사이의 최소 간격을 명시하는 금속-비아 간격 규칙, 금속-금속 간격 규칙, 폴리실리콘-산화물 규정(polysilicon-to-oxide definition; PO-to-OD) 간격 규칙, PO-PO 간격 규칙 등을 포함하지만 이에 제한되지는 않는다. 다른 검증 프로세스는 일부 실시예에서 사용 가능하다. 일부 실시예에서, DRC에서 사용되는 하나 이상의 설계 규칙은 본 명세서에 설명된 바와 같이 동작(135)에서 사용된다.
동작(160)에서, 예를 들어, EDA 도구에 의해 저항 및 커패시턴스(resistance and capacitance; RC) 추출이 수행되어 후속 동작에서 타이밍 시뮬레이션을 위해 IC 레이아웃의 상호접속부의 기생 파라미터, 예를 들어, 기생 저항 및 기생 커패시턴스를 결정한다. 다른 검증 프로세스는 일부 실시예에서 사용 가능하다.
동작(170)에서, 추출된 기생 파라미터를 고려하면서 IC 레이아웃이 미리 결정된 사양을 충족하는지 여부를 결정하기 위해 시뮬레이션 도구, 즉, EDA 도구에 의해 사후-레이아웃 시뮬레이션이 수행된다. IC 레이아웃이 미리 결정된 사양을 충족하지 않는다는 것을 시뮬레이션이 나타내는 경우, 예를 들어, 기생 파라미터가 바람직하지 않은 지연을 야기하는 경우, 프로세스를 동작(110) 및/또는 동작(130)으로 되돌림으로써 IC 레이아웃 또는 설계 중 적어도 하나에 대해 수정이 이루어진다. 그렇지 않으면 IC 레이아웃이 제조 또는 추가 검증 프로세스로 전달된다.
일부 실시예에서, 하나 이상의 평가, 점검 및/또는 시뮬레이션은 하나 이상의 수율 및/또는 성능 문제를 나타내고, 예를 들어, 프로세스를 동작(130)으로 되돌림으로써 IC 레이아웃을 수정하기 위한 결정이 이루어진다. IC 레이아웃을 수정하기 위한 접근법은 IC 레이아웃 내의 회로의 현재 레이아웃을 적어도 하나의 라이브러리(133)로부터 획득된 동일한 회로의 또 다른 레이아웃으로 대체하는 것이다. 회로의 다수의 레이아웃이 적어도 하나의 라이브러리(133)로부터 사용 가능하기 때문에, 일부 실시예에 따르면, 현재 레이아웃보다 더 나은 레이아웃을 찾을 수 있는 가능성이 증가되어, IC 레이아웃을 성공적으로 수정하여 효율적인 방식으로 하나 이상의 문제를 해결하는 것이 가능해진다. 수정된 IC 레이아웃은 예를 들어, 동작(140 내지 170)과 관련하여 설명된 바와 같이 하나 이상의 검사 및/또는 시뮬레이션을 거친다. 수정된 IC 레이아웃이 동작(140 내지 170)에서 하나 이상의 요건을 충족하지 않는 경우, 프로세스는 추가 레이아웃 수정을 위해 동작(130)으로 돌아가며, 여기에 설명된 후속 검사 및 검증이 있다. 일부 실시예에서, 수정 전의 IC 레이아웃 및/또는 수정된 IC 레이아웃 및/또는 제조를 위한 최종 IC 레이아웃은 비일시적 컴퓨터 판독 가능 매체에 저장된다.
일부 실시예에서, 설명된 동작 중 하나 이상이 생략된다. 일 예에서, 하나 이상의 실시예에서, 동작(120)의 사전-레이아웃 시뮬레이션, 동작(160)의 RC 추출, 및 동작(170)의 사후-레이아웃 시뮬레이션 중 하나 이상이 생략될 수 있다. 다른 배열도 다양한 실시예의 범위 내에 속한다. 단순함을 위해, 다양한 동작 및/또는 결정이 APR 도구에 의해 수행되는 것으로 여기에서 설명된다. 그러나, 적어도 하나의 실시예에서, 설명된 동작 및/또는 결정 중 하나 이상은 APR 도구 외부에서, 예를 들어, 하나 이상의 추가 자동화 시스템, 하나 이상의 프로세서, 및/또는 하나 이상의 컴퓨터 시스템에 의해 수행된다.
도 2는 일부 실시예에 따른 회로(200)의 개략적 회로도이다. 적어도 하나의 실시예에서, 회로(200)는 도 1a의 영역(104)의 일부분에 대응하고 그리고/또는 도 1b의 동작(135)에서 다수의 레이아웃이 생성되는 회로에 대응한다. 도 2의 예시적인 구성에서, 회로(200)는 때때로 AOI22D1 셀로 지칭되는 셀에 대응하는 2개의 2-입력 AND 게이트를 갖는 AOI(AND-OR-Invert) 로직을 포함한다. 영역(104)에 포함되고 그리고/또는 동작(135)의 대상이 되는 다른 예시적인 회로 또는 셀은 AND, OR, NAND, NOR, XOR, INV, OAI(OR-AND-Invert), MUX, 플립플롭, BUFF, 래치, 지연, 클록, 메모리, 이들의 결합 등을 포함하지만 이에 제한되지는 않는다.
회로(200)는 전기적으로 함께 결합된 입력(A1, A2, B1, B2), 출력(ZN), 및 복수의 트랜지스터(PA1, PA2, PB1, PB2, NA1, NA2, NB1, NB2)를 포함하여 동작 시 회로(200)의 미리 정해진 기능을 수행한다. 회로(200) 내의 트랜지스터의 예는, 금속 산화물 반도체 전계 효과 트랜지스터(metal oxide semiconductor field effect transistor; MOSFET), 상보성 금속 산화물 반도체(complementary metal oxide semiconductor; CMOS) 트랜지스터, P-채널 금속 산화물 반도체(P-channel metal-oxide semiconductor; PMOS), N-채널 금속 산화물 반도체(N-channel metal-oxide semiconductor; NMOS), 양극성 접합 트랜지스터(bipolar junction transistor; BJT), 고전압 트랜지스터, 고주파 트랜지스터, P-채널 및/또는 N-채널 전계 효과 트랜지스터(PFET/NFET), FinFET, 상승된 소스/드레인을 갖는 평면형 MOS 트랜지스터, 나노시트 FET, 나노와이어 FET 등을 포함하지만 이에 제한되지는 않는다. 도 2의 예시적인 구성에서, 회로(200)는 PMOS 트랜지스터(PA1, PA2, PB1, PB2) 및 NMOS 트랜지스터 (NA1, NA2, NB1, NB2)를 포함한다.
트랜지스터 PA1, NA1의 게이트는 입력(A1)에 전기적으로 결합된다. 트랜지스터(PA2, NA2)의 게이트는 입력(A2)에 전기적으로 결합된다. 트랜지스터(PB1, NB1)의 게이트는 입력(B1)에 전기적으로 결합된다. 트랜지스터(PB2, NB2)의 게이트는 입력(B2)에 전기적으로 결합된다.
트랜지스터(PB1, PB2)의 소스는 제1 전력 공급 전압의 제1 노드(또는 레일)에 전기적으로 결합된다. 제1 노드(또는 레일) 및 제1 전력 공급 전압은 본 명세서에서 일반적으로 VDD로 지칭된다. 트랜지스터(PB1, PB2)의 드레인은 네트 con에 전기적으로 결합된다. 그 결과, 트랜지스터(PB1, PB2)는 VDD와 네트 con 사이에 병렬로 전기적으로 결합된다. 트랜지스터(PA1, PA2)의 소스는 네트 con에 전기적으로 결합된다. 트랜지스터(PA1, PA2)의 드레인은 출력(ZN)에 전기적으로 결합된다. 그 결과, 트랜지스터(PA1, PA2)는 네트 con과 출력(ZN) 사이에 병렬로 전기적으로 결합된다. 병렬 결합 트랜지스터(PB1, PB2)와 병렬 결합 트랜지스터(PA1, PA2)는 네트 con에서 직렬로 전기적으로 결합된다.
트랜지스터(NA2, NB2)의 소스는 제2 전력 공급 전압의 제2 노드(또는 레일)에 전기적으로 결합된다. 제2 노드(또는 레일) 및 제2 전원 전압은 본 명세서에서 일반적으로 VSS(또는 접지)로 지칭된다. 트랜지스터(NA2)의 드레인은 네트 n2에서 트랜지스터(NA1)의 소스에 전기적으로 결합된다. 그 결과, 트랜지스터(NA1, NA2)는 전기적으로 직렬로 결합된다. 트랜지스터(NB2)의 드레인은 네트 n1에서 트랜지스터(NB1)의 소스에 전기적으로 결합된다. 그 결과, 트랜지스터(NB1, NB2)는 전기적으로 직렬로 결합된다. 트랜지스터(NA1, NB1)의 드레인은 출력(ZN)에 전기적으로 결합된다. 그 결과, 직렬 결합된 트랜지스터(NA1, NA2) 및 직렬 결합된 트랜지스터(NB1, NB2)는 출력(ZN)과 VSS 사이에 병렬로 결합된다. 설명된 VDD, VSS, A1, A2, B1, B2, ZN, 네트 n1, 네트 n2, 및 네트 con은 본 명세서에 설명된 바와 같이 회로의 평면도에 있는 다양한 네트의 예이다.
도 3a는 일부 실시예에 따라 회로(200)의 레이아웃(300)의 여러 층을 포함하는 레이아웃(300A)의 개략도이다. 회로(200) 및 레이아웃(300)의 대응 요소는 동일한 참조 번호로 지정된다.
도 3a에 도시된 바와 같이, 레이아웃(300)은 복수의 활성 영역(OD-1, OD-2)을 포함한다. 활성 영역은 때때로 산화물 규정(oxide-definition; OD) 영역 또는 소스/드레인 영역이라고 하며 도면에 라벨 "OD"를 사용해 개략적으로 예시된다. 활성 영역(OD-1, OD-2)은 제1 축, 예를 들어, X축을 따라 연장된다. 활성 영역(OD-1, OD-2)은 P형 도펀트 및/또는 N형 도펀트를 포함하여 하나 이상의 회로 요소 또는 디바이스를 형성한다. 하나 이상의 PMOS 디바이스를 형성하도록 구성된 활성 영역은 때때로 "PMOS 활성 영역"이라고 지칭되며, 하나 이상의 NMOS 디바이스를 형성하도록 구성된 활성 영역은 때때로 "NMOS 활성 영역"이라고 지칭된다. 도 3a와 관련하여 설명된 예시적인 구성에서, 활성 영역(OD-1)은 PMOS 활성 영역을 포함하고, 활성 영역(OD-2)은 NMOS 활성 영역을 포함한다. 다른 구성도 다양한 실시예의 범위 내에 있다.
레이아웃(300)은 활성 영역(OD-1, OD-2) 위에 복수의 게이트 영역(321, 322, 323, 324, 325, 326)을 더 포함한다. 게이트 영역(321, 322, 323, 324, 325, 326)은 X축을 가로지르는 제2 축, 예를 들어, Y축을 따라 연장된다. 게이트 영역(321, 322, 323, 324, 325, 326)은 도 3a에서 CPP(contacted poly pitch)로 지정된 규칙적인 피치로 X축을 따라 배열된다. CPP는 2개의 바로 인접한 게이트 영역 사이의 X축을 따른 중심 간 거리이다. 2개의 게이트 영역은 그 사이에 다른 게이트 영역이 없이 바로 인접한 것으로 간주된다. X 축을 따른 레이아웃(300)의 폭(또는 셀 피치)은 도 3a의 예시적인 구성에서 5 CPP이다. 레이아웃(300)에 대응하는 제조된 IC 디바이스 내의 게이트 영역(321, 322, 323, 324, 325, 326, 300)은 때때로 "폴리"로 지칭되는 폴리실리콘과 같은 전도성 물질을 포함한다. 게이트 영역(321, 322, 323, 324, 325, 326)은 도면에 라벨 "PO"을 사용해 개략적으로 예시되어 있다. 금속과 같은 게이트 영역을 위한 다른 전도성 물질은 다양한 실시예의 범위 내에 있다. 도 3a의 예시적인 구성에서, 게이트 영역(322, 323, 323, 325)은, 활성 영역(OD-1, OD-2)과 함께 본 명세서에 설명된 바와 같이 복수의 트랜지스터를 구성하는 기능적 게이트 영역이다. 일부 실시예에서, 게이트 영역(321, 326)은 비기능적 또는 더미 게이트 영역이다. 더미 게이트 영역은 하부 활성 영역과 함께 트랜지스터를 형성하도록 구성되지 않고, 그리고/또는 하부 활성 영역과 함께 더미 게이트 영역에 의해 형성된 하나 이상의 트랜지스터는 다른 회로에 전기적으로 결합되지 않는다. 적어도 하나의 실시예에서, 비기능적 또는 더미 게이트 영역은 제조된 IC 디바이스에 유전체 물질을 포함한다.
도 3a의 예시적인 구성에서, 게이트 영역(321, 322, 323, 324, 325, 326) 각각은 활성 영역(OD-1, OD-2)을 가로질러 연속적으로 연장된다. 일부 실시예에서, 게이트 영역은 각각 대응하는 활성 영역 위에 여러 부분으로 절단되거나 분할된다. 예를 들어, 또 다른 회로에 대한 레이아웃에서, 게이트 영역(322)은 예를 들어, 본 명세서에 설명된 절단-폴리(cut-poly; CPO) 영역에 의해 활성 영역(OD-1, OD-2) 중 대응하는 하나 위에 각각 2개의 게이트 영역 부분으로 절단된다. 또 다른 예를 들어, 2개보다 많은 활성 영역을 갖는 추가 회로에 대한 레이아웃에서, 게이트 영역은 다수의 CPO 영역에 의해 2개보다 많은 활성 영역 위의 2개보다 많은 부분으로 절단된다.
레이아웃(300)은 게이트 영역(321, 322, 323, 324, 325, 326) 및 활성 영역(OD-1, OD-2)에 의해 구성된 복수의 트랜지스터를 더 포함한다. 예를 들어, 트랜지스터(PB2, PB1, PA1, PA2)는 대응하는 게이트 영역(322, 323, 324, 325)과 함께 PMOS 활성 영역(OD-1)에 의해 구성된다. 트랜지스터(NB2, NB1, NA1, NA2)는 대응하는 게이트 영역(322, 323, 324, 325)과 함께 NMOS 활성 영역(OD-2)에 의해 구성된다. 게이트 영역(322)은 트랜지스터(PB2, NB2)의 게이트에 대응하고, 또한 회로(200)의 입력(B2)에 대응한다. 게이트 영역(323)은 트랜지스터(PB1, NB1)의 게이트에 대응하고, 또한 회로(200)의 입력(B1)에 대응한다. 게이트 영역(324)은 트랜지스터(PA1, NA1)의 게이트에 대응하고, 또한 회로(200)의 입력(A1)에 대응한다. 게이트 영역(325)은 트랜지스터(PA2, NA2)의 게이트에 대응하고, 또한 회로(200)의 입력(A2)에 대응한다. 트랜지스터(PB2, PB1, PA1, PA2)의 소스/드레인은 대응하는 게이트 영역(322, 323, 324, 325)의 양측부 상의 활성 영역(OD-1)의 일부분에 대응한다. 트랜지스터(NB2, NB1, NA1, NA2)의 소스/드레인은 대응하는 게이트 영역(322, 323, 324, 325)의 양측부 상의 활성 영역(OD-2)의 일부분에 대응한다.
레이아웃(300)은 활성 영역(OD-1, OD-2)의 대응하는 소스/드레인 위의 소스/드레인 접촉 영역을 더 포함한다. 소스/드레인 접촉 영역은 때때로 MD(metal-to-device) 영역으로 지칭되며, "MD"라는 레이블로 도면에 개략적으로 예시되어 있다. 레이아웃(300)에 대응하는 제조된 IC 디바이스에서, MD 영역은 활성 영역에 형성된 하나 이상의 디바이스로부터 IC 디바이스의 다른 내부 회로 또는 외부 회로로의 전기적 접속을 규정하기 위해 대응하는 활성 영역 내의 대응하는 소스/드레인 위에 형성된 전도성 물질, 예를 들어, 금속을 포함한다. 도 3a의 예시적인 구성에서, MD 영역(331, 332, 333, 334, 335)은 활성 영역(OD-1) 위에 있고, 트랜지스터(PB2, PB1, PA1, PA2)의 대응하는 소스/드레인과 전기적 접촉을 규정하도록 구성되며, X축을 따라 게이트 영역(321, 322, 323, 324, 325, 326)과 교대로 배열된다. 바로 인접한 MD 영역 사이의 피치, 즉, X축을 따른 중심 간 거리는 바로 인접한 게이트 영역들 사이의 피치 CPP와 동일하다. 게이트 영역(예컨대, 323)과 바로 인접한 MD 영역(예컨대, 338) 사이의 중심 간 거리는 0.5 CPP이다. MD 영역(336, 337, 338, 339, 340)은 활성 영역(OD-2) 위에 있고, 트랜지스터(NB2, NB1, NA1, NA2)의 대응하는 소스/드레인과 전기적 접촉을 규정하도록 구성되며, X축을 따라 게이트 영역(321, 322, 323, 324, 325, 326)과 교대로 배열된다. 다른 구성도 다양한 실시예의 범위 내에 있다.
MD 영역(331, 333, 335)은 회로(200)의 네트 con에 대응하고, 본 명세서에 설명된 바와 같이 하나 이상의 금속층에 의해 함께 전기적으로 결합된다. MD 영역(332)은 회로(200)의 VDD에 대응한다. MD 영역(334, 338)은 회로(200)의 출력(ZN)에 대응하고, 본 명세서에 설명된 바와 같이 하나 이상의 금속층에 의해 함께 전기적으로 결합될 것이다. MD 영역(336, 340)은 회로(200)의 VSS에 대응하고, 여기에 설명된 바와 같이 하나 이상의 금속층에 의해 함께 전기적으로 결합될 것이다. MD 영역(337)은 회로(200)의 네트 n1에 대응한다. MD 영역(339)은 회로(200)의 네트 n2에 대응한다.
MD 영역(331, 336)은 Y축을 따라 서로 정렬되며, 때때로 활성 영역(OD-1, OD-2)을 가로질러 연속적으로 연장되는 MD 영역의 두 부분으로 간주되지만, 본 명세서에 설명된 절단-MD(cut-MD; CMD) 영역에 의해 활성 영역(OD-1, OD-2) 위에 대응하여 MD 영역(331, 336)으로 절단되거나 분할된다. 유사하게, MD 영역(332 및 337, 333 및 338, 334 및 339, 335 및 340)의 쌍들 각각은 때때로 활성 영역(OD-1, OD-2)을 가로질러 연속적으로 연장되지만 대응하는 절단-MD(CMD) 영역에 의해 절단되는 MD 영역의 2개의 부분으로서 간주된다. 다른 MD 영역 구성은 다양한 실시예의 범위 내에 있다. 예를 들어, 또 다른 회로에 대한 레이아웃에서, MD 영역(331 및 336)은 서로 인접하여 활성 영역(OD-1, OD-2) 위에서 연속적으로 연장되는 MD 영역을 구성한다. 또 다른 예를 들어, 2개보다 많은 활성 영역을 갖는 추가 회로에 대한 레이아웃에서, MD 영역은 2개보다 많은 활성 영역 위에서 다수의 CMD 영역에 의해 2개 이상의 부분으로 절단된다.
레이아웃(300)은 에지(361, 362, 363, 364)를 포함하는 경계(또는 셀 경계)(360)를 더 포함한다. 에지(361, 362)는 X축을 따라 연장되고, 에지(363, 364)는 Y축을 따라 연장된다. 에지(361, 362, 363, 364)는 함께 접속되어 폐쇄 경계(360)를 형성한다. 배치 및 라우팅 동작("자동 배치 및 라우팅(automated placement and routing; APR)"이라고도 함)에서, 셀은 각각의 경계에서 서로 인접하게 IC 레이아웃도에 배치된다. 경계(360)는 때때로 "배치 및 라우팅 경계(place-and-route boundary)"로 지칭되며 도면에서 "pr경계(prBoundary)"라는 라벨을 사용해 개략적으로 예시된다. 경계(360)의 직사각형 형상이 일례이다. 다양한 셀에 대한 다른 경계 형상은 다양한 실시예의 범위 내에 있다. 에지(361, 362)는 본 명세서에 설명된 바와 같이 대응하는 M0 전도성 패턴(도 3a에 도시되지 않음)의 중심선과 일치한다. 에지(363, 364)는 더미 또는 비기능적 게이트 영역(321, 326)의 중심선과 일치한다. 에지(361, 362) 사이에서 Y축을 따라, 레이아웃(300)은 하나의 PMOS 활성 영역, 즉, OD-1과 하나의 NMOS 활성 영역, 즉, OD-2를 포함하며, 하나의 셀 높이 h에 대응하는 높이를 갖는 것으로 간주된다. 다른 구성은 다양한 실시예의 범위 내에 있다. 예를 들어, 하나 이상의 실시예에서, Y축을 따라 2개의 PMOS 활성 영역 및 2개의 NMOS 활성 영역을 포함하는 또 다른 셀 또는 회로(미도시됨)는 2개의 셀 높이, 즉, 이중 셀 높이 2h에 대응하는 높이를 갖는 것으로 간주된다. 더 큰 셀 높이, 예를 들어, 3h, 4h 등을 갖는 셀 또는 회로는 다양한 실시예의 범위 내에 있다.
도 3a의 레이아웃(300A)은 회로(200)의 평면도에서 복수의 교번하는 게이트 블록 및 소스/드레인 블록과 연관된 복수의 네트의 물리적 배열을 도시한다. 도 3a의 평면도는 게이트 블록(372, 374, 376, 378) 및 소스/드레인 블록(371, 373, 375, 377, 379)을 포함하는 복수의 블록(371 내지 379)을 포함한다. 각 게이트 블록은 Y축을 따라 서로 정렬된 게이트 영역을 포함한다. 예를 들어, 게이트 블록(372)은 게이트 영역(322)의 일부분인 트랜지스터(PB2, NB2)의 게이트 영역을 포함하고 Y축을 따라 서로 정렬된다. 각 소스/드레인 블록은 Y축을 따라 서로 정렬된 MD 영역을 포함한다. 예를 들어, 소스/드레인 블록(371)은 Y축을 따라 서로 정렬되는 MD 영역(331, 336)을 포함한다. 각 블록(371 내지 379)은 평면도에서 X축을 따라 블록의 X 위치에 의해 식별된다. 예를 들어, 소스/드레인 블록(371)은 평면도에서 (좌측부터) 제1 블록이며 X=1로 식별된다. 게이트 블록(372)은 평면도에서 제2 블록이고, X=2로 식별되는 식이다. 평면도에서 블록을 식별하기 위한 다른 방식은 다양한 실시예의 범위 내에 있다.
본 명세서에 설명된 바와 같이, 네트 con, B2, VDD, B1, con, A1, ZN, A2, con은 PMOS 활성 영역(OD1) 위의 교번하는 MD 영역 및 게이트 영역(331, 322, 332, 323, 333, 324, 334, 325, 335)에 대응한다. 네트 VSS, B2, n1, B1, ZN, A1, n2, A2, VSS는 NMOS 활성 영역(OD2) 위의 교번하는 MD 영역 및 게이트 영역(336, 322, 337, 323, 338, 324, 339, 325, 340)에 대응한다. 결과적으로, MD 영역(331, 336)을 포함하는 소스/드레인 블록(371)은 대응하는 네트 con, VSS와 연관된다. 유사하게, 게이트 블록(372)은 대응하는 네트(B2, B2)와 연관된다. 일부 실시예에서, 평면도의 블록이 2개 미만의 네트, 예를 들어, 1개의 네트 또는 0개의 네트와 연관되는 것이 가능하다. 예를 들어, 게이트 영역 또는 MD 영역이 사용되지 않거나 기능 하지 않는 경우, 대응 게이트 블록 또는 소스/드레인 블록과 접속된 네트가 없다. 일부 실시예에서, 평면도의 블록이 2개보다 많은 네트와 연관되는 것이 가능하다. 예를 들어, 하나 이상의 실시예에서, 또 다른 셀 또는 회로(미도시)는 Y축을 따라 4개의 활성 영역, 예를 들어, 2개의 PMOS 활성 영역 및 2개의 NMOS 활성 영역을 포함한다. 이러한 상황에서 셀 또는 회로의 평면도의 블록은 4개의 활성 영역에 대응하는 4개의 네트와 연관된다. 다른 구성도 다양한 실시예의 범위 내에 있다.
도 3b는 일부 실시예에 따른 회로(200)의 평면도(300B)의 개략도이다. 도 3b의 평면도(300B)의 개략도는 도 3a와 관련하여 설명된 평면도에서 네트 및 연관 블록의 물리적 배열에 대응한다.
도 3b의 평면도(300B)는 도 3a와 관련하여 설명된 블록(371 내지 379)에 대응하는 열(371 내지 379) 및 행(380 내지 382)을 갖는 표로서 개략적으로 도시되어 있다. 행(380)은 블록(371 내지 379)의 X개의 위치를 나타내고, 행(381)은 PMOS 활성 영역(OD1) 위에 있고 블록(371 내지 379)과 연관되는 네트를 나타내며, 행(382)은 NMOS 활성 영역(OD2) 위에 있고 블록(371 내지 379)과 연관되는 네트를 나타낸다. 단순함을 위해, 평면도(300B)는 다양한 예의 후속 설명에서 참조된다. 평면도를 제시하기 위한 다른 방식은 다양한 실시예의 범위 내에 있다.
도 3c는 일부 실시예에 따라 회로(200)의 레이아웃(300)의 추가 층을 포함하는 레이아웃(300C)의 개략도이다. 단순화를 위해, 활성 영역(OD-1, OD-2)은 중괄호(curly brackets 또는 braces)에 의해 개략적으로 나타내어지고 경계(360)는 도 3c에서 생략된다. 적어도 하나의 실시예에서, 도 3c의 레이아웃(300C)은 회로(200)에 대한 평면도(300B)에 따라 동작(135)에서 생성되고, 비일시적 컴퓨터 판독 가능 매체 상의 적어도 하나의 라이브러리(133)에 저장되는 다수의 레이아웃 중 하나이다. 일부 실시예에서, 도 3c의 레이아웃은 후속적으로 적어도 하나의 라이브러리(133)로부터 판독되고, 동작(130)에서 설계 및/또는 제조될 실제 IC의 IC 레이아웃으로 배치된다.
도 3c에 도시된 바와 같이, 레이아웃(300)은 절단-MD 영역(CMD-1, CMD-2, CMD-3, CMD-4, CMD-5)을 더 포함한다. 일부 실시예에서, 절단-MD 영역은 마스크이고, 달리 연속적인 MD 영역이 분리되는 곳에 대응한다. 예를 들어, 절단-MD 영역(CMD-1)은 그렇지 않았으면 연속적이었을 MD 영역을 MD 영역(331 및 336)으로 절단하거나 분할한다. 각각의 절단-MD 영역은 Y축을 따라 한 쌍의 에지를 가지며, 이에 따라 한 쌍의 인접한 게이트 영역의 중심선과 일치한다. X축을 따라 절단-MD 영역의 크기(폭)는 1 CPP이다. 예를 들어, 도 3c에서 절단-MD 영역(CMD-3)의 좌측 에지 및 우측 에지는 Y축을 따라 연장되고 인접한 게이트 영역(323, 324)의 중심선과 대응하게 일치한다. 다른 절단(cut)-MD 영역 구성은 다양한 실시예의 범위 내에 있다. 본 명세서에 설명된 바와 같은 일부 실시예에서, 또 다른 회로의 레이아웃은 그렇지 않았으면 연속적이었을 게이트 영역을 여러 게이트 영역 부분으로 절단 또는 분할하기 위한 하나 이상의 절단-PO 영역을 포함한다. 절단-PO 영역(예컨대, 마스크)은 게이트 영역이 단절된 위치에 대응한다.
레이아웃(300)은 대응하는 게이트 영역 또는 MD 영역 위의 비아를 더 포함한다. 게이트 영역 위의 비아는 때때로 VG(via-to-gate) 비아라고 한다. MD 영역 위의 비아는 때때로 VD(via-to-device) 비아라고 한다. VG 및 VD 비아는 대응 라벨 "VG" 및 "VD"와 함께 도면에 개략적으로 예시되어 있다. 도 3c의 예시적인 구성에서, 비아(VG-1, VG-2, VG-3, VG-4)는 대응하는 게이트 영역(322, 323, 324, 325) 위에 있다. 도 3c의 VD 비아는 신호용 VD 비아와 전력 공급용 VD 비아를 포함한다. 신호용 VD 비아는 신호 네트 con 및 ZN과 연관된 대응하는 MD 영역(331, 333, 335, 334, 338) 위에 있는 비아(VD-1, VD-2, VD-3, VD-4, VD-5)를 포함한다. 전력 공급용 VD 비아는 도면에 "VD2"라는 라벨로 개략적으로 예시되어 있으며, 전력 공급 네트(VDD 및 VSS)와 연관된 대응 MD 영역(332, 336, 340) 위에 있는 비아(VD2-1, VD2-2, VD2-3)를 포함한다. 레이아웃(300)에 대응하는 제조된 IC 디바이스에서, VD 비아 및 VG 비아는 전도성 물질, 예를 들어, 금속을 포함한다. 다른 비아 구성은 다양한 실시예의 범위 내에 있다.
VD 비아 및 VG 비아는 대응하는 MD 영역 및 게이트 영역으로부터 상부 금속층, 즉, 금속 제로(metal-zero; M0) 층의 전도성 패턴으로의 전기적 접속을 형성하도록 구성된다. M0 층의 전도성 패턴은 본 명세서에서 M0 전도성 패턴으로 지칭된다. 레이아웃(300)의 예시적인 M0 전도성 패턴이 도 3d와 관련하여 본 명세서에서 설명된다. M0 전도성 패턴은 X축을 따라 연장되는 하나 이상의 트랙(M0_VSS, M0_1, M0_2, M0_3, M0_4, M0_5, M0_VDD)를 따라 형성되어 미리 결정된 설계 규칙이 충족되도록 보장한다. 트랙(M0_VSS, M0_1, M0_2, M0_3, M0_4, M0_5, M0_VDD) 등은 본 명세서에서 M0 트랙이라고도 한다. 트랙(M0_1, M0_2, M0_3, M0_4, M0_5)은 회로(200)로, 회로로부터 또는 회로 내에서 신호를 전달하도록 구성된 M0 전도성 패턴에 대응한다. 트랙(M0_1, M0_2, M0_3, M0_4, M0_5)은 Y축을 따라 거리 d1만큼 서로 이격되어 있다. 트랙(M0_VSS, M0_VDD)은 회로(200)에 전력 공급을 제공하도록 구성된 M0 전도성 패턴에 대응한다. 트랙(M0_VSS)은 인접 트랙(M0_1)으로부터 Y축을 따라 거리(d2)만큼 이격되어 있고, 트랙(M0_VDD)은 인접 트랙(M0_5)으로부터 Y축을 따라 거리(d2)만큼 이격되어 있다. 도 3c의 예시적인 구성에서, d1 < d2이다. 다른 구성은 다양한 실시예의 범위 내에 있다. 신호를 위한 5개의 M0 트랙과 전력 공급을 위한 2개의 M0 트랙의 설명된 수는 예이다. 다른 구성은 다양한 실시예의 범위 내에 있다.
도 3d와 관련하여 설명된 바와 같이, M0 전도성 패턴은 M0 트랙을 따라 배열된다. 상부 M0 전도성 패턴과 전기적 접속을 형성하기 위해 VD 비아 및 VG 비아도 M0 트랙을 따라 배열된다. 도 3c의 예시적인 구성에서, 비아(VD2-1)는 트랙(M0_VDD)을 따라 배열되어 VDD를 수신하기 위한 전기적 접속을 형성하고, 비아(VD-1, VD-2, VD-3)는 트랙(M0_5)을 따라 배열되고, 비아(VD-4)는 트랙(M0_4)을 따라 배열되고, 비아(VG-2)는 트랙(M0_3)을 따라 배열되고, 비아(VD-5, VG-4)는 트랙(M0_2)을 따라 배열되고, 비아(VG-1, VG-3)는 트랙(M0_1)을 따라 배열되며, 비아(VD2-2, VD2-3)는 트랙(M0_VSS)을 따라 배열되어 VSS를 수신하기 위한 전기적 접속을 형성한다. 절단-MD 영역이 있는 곳, 즉, 하부 MD 영역이 존재하지 않는 곳에서는 VD 비아가 배열될 수 없다. 마찬가지로, VG 비아는 절단-PO 영역이 있는 곳에, 즉, 하부 게이트 영역이 존재하지 않는 곳에서는 배열될 수 없다. 이들은 IC 레이아웃을 설계하거나 생성할 때 준수되고 따라야 할 예시적인 규칙이다.
동일한 M0 트랙을 따라 상이한 네트와 연관된 다수의 VD 및/또는 VG 비아가 존재하려면 동일한 M0 트랙을 따라 다수의 대응 M0 전도성 패턴이 필요하다. 이것은 그렇지 않았으면 연속적이었을 M0 전도성 패턴이 분리되거나 2개의 분리된 M0 전도성 패턴으로 분할되는 곳에 대응하는 절단-M0(CM0) 영역, 예를 들어, 마스크에 의해 달성된다. 예를 들어, 절단-M0 영역(CM0A-2)은 도 3d에 대해 설명된 바와 같이, 동일한 트랙(M0_2)을 따라 비아 VD-5(네트 ZN과 연관됨)와 비아 VG-4(네트 A2와 연관됨) 사이에 배열되어, 2개의 분리된 상부 M0 전도성 패턴을 구성한다. 또 다른 예를 들어, 절단-M0 영역(CM0B-1)은, 도 3d와 관련하여 설명된 바와 같이, 동일한 트랙(M0_1)을 따라 비아(VG-1)(네트 B2와 연관됨)와 비아 VG-3(네트 A1과 연관됨) 사이에 배열되어 두 개의 분리된 상부 M0 전도성 패턴을 구성한다. 그러나, 동일한 네트와 연관된 다수의 비아가 동일한 M0 트랙을 따라 배열되면, 다수의 비아 위에서 그리고 이들을 접속하는 M0 전도성 패턴을 형성하는 것이 가능하며, 절단-M0 영역이 필요하지 않다. 예를 들어, 비아(VD-1, VD-2, VD-3)가 동일한 트랙(M0_5)을 따라 배열되어 있지만, 비아(VD-1, VD-2, VD-3)가 모두 네트 con과 접속되어 있기 때문에 절단-M0 영역이 필요하지 않는다. 또 다른 예로, 비아(VD2-2, VD2-3)가 동일한 트랙(M0_VSS)을 따라 배열되어 있지만, 비아(VD2-2, VD2-3)가 모두 네트 VSS와 연관되어 있기 때문에 절단-M0 영역이 필요하지 않다. 이들은 IC 레이아웃을 설계하거나 생성할 때 관찰되고 따라야 할 추가 예시적인 규칙이다.
도 3d는 일부 실시예에 따라 회로(200)의 레이아웃(300)의 추가 층을 포함하는 레이아웃(300D)의 개략도이다. 단순화를 위해, 도 3d에서 활성 영역(OD-1, OD-2)은 중괄호(curly brackets 또는 braces)로 개략적으로 나타내어지고, 게이트 영역(321 내지 326)은 대응하는 중심선으로 개략적으로 나타내어지며, 경계(360), 절단-MD 영역(CMD-1, CMD-2, CMD-3, CMD-4, CMD-5) 및 CM0 영역(CM0A-2, CM0B-1)은 생략된다.
레이아웃(300)을 포함하는 IC 레이아웃은 VD 및 VG 비아 위에 순차적으로 그리고 교대로 배열된 복수의 금속층 및 비아층을 포함한다. VD 비아 및 VG 비아 바로 위에 있는 최하위 금속층은 M0 층, 즉, 금속 제로(M0) 층이다. M0 층은 활성 영역(OD-1, OD-2) 위의 최하위 금속층이거나 이 활성 영역에 가장 가까운 금속층이다. M0층 바로 위의 다음 금속층은 M1층이고, M1층 바로 위의 다음 금속층은 M2층이며, 이런 식이다. 비아층(Vn)은 Mn 층과 Mn+1 층 사이에 배열되고 이 층들을 전기적으로 결합하며, 여기서 n은 0 이상의 정수 형태이다. 예를 들어, 비아 제로(V0) 층은 M0 층과 M1 층 사이에 배열되고 전기적으로 이 층들을 결합하는 최하부 비아층이다. 다른 비아층은 V1, V2 등이다.
도 3d의 예시적인 구성에서, 레이아웃(300)은 추가로 M0 층, V0 층 및 M1 층을 포함한다. 레이아웃(300)을 포함하는 IC 레이아웃은 더 높은 금속층 및/또는 도 3d에서 생략된 비아층을 포함한다. 일부 실시예에서, 다양한 셀 또는 회로의 레이아웃은 상이한 세트의 금속층 및 비아층을 포함한다. 예를 들어, 일부 셀의 레이아웃은 금속 층을 포함하지 않는다. 다른 셀의 레이아웃은 금속층을 포함하지 않고 M0층보다 높은 비아층을 포함하지 않는다. 추가 셀의 레이아웃은 적어도 하나의 금속층 및/또는 적어도 M1층보다 높은 비아층을 포함한다. 다른 구성은 다양한 실시예의 범위 내에 있다.
도 3d의 예시적인 구성에서, 레이아웃(300)의 M0 전도성 패턴은 하나 이상의 설계 및/또는 제조 요건을 충족하기 위해 여러 마스크로 분리된다. 예를 들어, 레이아웃(300)은 하나의 M0 마스크(이하 M0A 마스크라고 함)에 대응하는 전도성 패턴(M0A-1, M0A-2, M0A-3, M0A-4, M0A-5), 및 또 다른 M0 마스크(본 명세서에서는 M0B 마스크라 함)에 대응하는 전도성 패턴(M0B-1, M0B-2, M0B-3, M0B-4)을 더 포함한다. M0A 전도성 패턴과 M0B 전도성 패턴은 Y축을 따라 교대로 배열된다. 예를 들어, 전도성 패턴(M0B-1)은 일측부 상의 전도성 패턴(M0A-1)과 타측부 상의 전도성 패턴(M0A-2) 사이에 배열된다. M0A 전도성 패턴은 트랙(M0_VSS, M0_2, M0_4, M0_VDD)을 따라 배열된다. M0B 전도성 패턴은 트랙(M0_1, M0_3, M0_5)을 따라 배열된다. 예를 들어, M0A 전도성 패턴의 중심선은 대응 트랙(M0_VSS, M0_2, M0_4, M0_VDD)과 일치하고, M0B 전도성 패턴의 중심선은 대응 트랙(M0_1, M0_3, M0_5)과 일치한다. 전도성 패턴(M0A-3, M0A-4)은 동일한 트랙(M0_2)을 따라 배열되며, 절단-M0 영역(CM0A-2)에 대응하는 간격만큼 서로 이격된다. 절단-MO 영역(CM0A-2)은 M0A 전도성 패턴을 절단하도록 구성된 절단-M0 마스크(CM0A)에 속한다. 전도성 패턴(M0B-3, M0B-4)은 동일한 트랙(M0_1)을 따라 배열되며, 절단-M0 영역(CM0B-1)에 대응하는 간격만큼 서로 이격된다. 절단-M0 영역(CM0B-1)은 M0B 전도성 패턴을 절단하도록 구성된 추가적인 절단-M0 마스크(CM0B)에 속한다. 일부 실시예에서, M0 층의 모든 M0 전도성 패턴은 동일한 마스크에 속하고, 모든 절단-M0 영역은 동일한 절단-M0 마스크에 속한다. 일부 실시예에서, M0 층의 M0 전도성 패턴은 2개보다 많은 마스크에 속하고, 절단-M0 영역은 2개보다 많은 절단-M0 마스크에 대응하게 속한다.
전도성 패턴(MOA-1)은 VDD 전력 레일로서 구성되며 VD2-1 비아 위에 위치하여 MD 영역(332)에 전기적으로 결합된다. 전도성 패턴(M0B-1)은 비아(VD-1, VD-2, VD-3) 위에 있고, 회로(200)의 네트 con에 대응하는 MD 영역(331, 333, 335)을 함께 전기적으로 결합한다. 전도성 패턴(M0A-2)은 비아(VD-4) 위에 있고, 회로(200)의 네트 ZN에 대응하는 MD 영역(334)에 전기적으로 결합된다. 전도성 패턴(M0B-2)은 비아(VG-2) 위에 있으며, 게이트 영역(323)에 전기적으로 결합된다. 전도성 패턴(M0A-3)은 비아(VD-5) 위에 있고, 회로(200)의 네트 ZN에 대응하는 MD 영역(338)에 전기적으로 결합된다. 전도성 패턴(MOA-4)은 VG-4 위에 있으며, 게이트 영역(325)에 전기적으로 결합된다. 전도성 패턴(M0B-3)은 VG-1 위에 있으며, 게이트 영역(322)에 전기적으로 결합된다. 전도성 패턴(M0B-4)은 VG-3 위에 있으며, 게이트 영역(324)에 전기적으로 결합된다. 전도성 패턴(MOA-5)은 VSS 전력 레일로서 구성되고 비아(VD2-2, VD2-3) 위에 있어 MD 영역(336, 340)에 전기적으로 결합된다.
레이아웃(300)은 M0 층 위의 V0층에서, M0 층의 대응 전도성 패턴(M0A-2, M0B-2, M0A-3, M0A-4, M0B-3, M0B-4) 위의 비아(V0-1, V0-2, V0-3, V0-4, V0-5, V0-6)를 더 포함한다. 도 3d의 예시적인 구성에서, 비아(V0-2, V0-6)는 비아(VG-2, VG-3)와 대응하게 중첩된다. 다른 구성은 다양한 실시예의 범위 내에 있다.
레이아웃(300)은 V0 층 위의 M1 층에서, 하나 이상의 설계 및/또는 제조 요건을 충족하기 위해 여러 마스크로 분리된 M1 전도성 패턴을 더 포함한다. 예를 들어, 레이아웃(300)은 하나의 M1 마스크(본 명세서에서 M1A 마스크라고 함)에 대응하는 전도성 패턴(M1A-1, M1A-2, M1A-3, M1A-4), 및 또 다른 M1 마스크(본 명세서에서는 M1B 마스크라 함)에 대응하는 전도성 패턴(M1B-1)을 더 포함한다. 전도성 패턴(M1A-1, M1A-2, M1A-3, M1A-4, M1B-1)은 레이아웃(300)의 입력(B2, B1, A1, A2) 및 출력(ZN)에 대응한다. 다른 구성은 다양한 실시예의 범위 내에 있다. 예를 들어, 일부 실시예에서, 셀 또는 회로는 M1 층 이외의 상부 금속 층에서, 예를 들어, M2 층, 또는 M3 층, 또는 더 높은 금속 층에 적어도 하나의 입력 또는 출력을 포함한다.
전도성 패턴(M1A-1)은 비아(V0-5) 위에 있다. 그 결과, 게이트 영역(322)은 비아(VG-1), 전도성 패턴(M0B-3) 및 비아(V0-5)를 통해 전도성 패턴(M1A-1)에 전기적으로 결합되어 입력(B2)에 대응하는 입력 신호를 수신한다. 전도성 패턴(M1A-2)은 비아(V0-2) 위에 있다. 그 결과, 게이트 영역(323)은 비아(VG-2), 전도성 패턴(M0B-2) 및 비아(V0-2)를 통해 전도성 패턴(M1A-2)에 전기적으로 결합되어 입력(B1)에 대응하는 입력 신호를 수신한다. 전도성 패턴(M1A-3)은 비아 V0-6 위에 있다. 그 결과, 게이트 영역(324)은 비아(VG-3), 전도성 패턴(M0B-4) 및 비아(V0-4)를 통해 전도성 패턴(M1A-3)에 전기적으로 결합되어 입력(A1)에 대응하는 입력 신호를 수신한다. 전도성 패턴(M1A-4)은 비아(V0-4) 위에 있다. 그 결과, 게이트 영역(325)은 비아(VG-4), 전도성 패턴(M0A-4) 및 비아(V0-4)를 통해 전도성 패턴(M1A-4)에 전기적으로 결합되어 입력(A2)에 대응하는 입력 신호를 수신한다. 전도성 패턴(M1B-1)은 비아(V0-1, V0-3) 위에 있다. 그 결과, MD 영역(334, 338)은 대응하는 비아(VD-4, VD-5), 대응하는 전도성 패턴(M0A-2, M0A-3), 및 대응하는 비아(V0-1, V0-3)를 통해 서로 그리고 전도성 패턴(M1B-1)에 전기적으로 결합되어 출력(ZN)에 대응하는 출력 신호를 출력한다. 전도성 패턴(M1A-1, M1A-2, M1A-3, M1A-4, M1B-1)은 IC 디바이스의 다른 회로로의 또는 외부 회로로의 레이아웃(300)의 전기적 접속을 위해 입력(B2, B1, A1, A2) 및 출력(ZN)에 대응하는 핀-아웃을 제공한다.
적어도 하나의 실시예에서, 레이아웃(300D)은 회로(200)에 대한 평면도(300B)에 따라 동작(135)에서 생성되고, 비일시적 컴퓨터 판독 가능 매체 상의 적어도 하나의 라이브러리(133)에 저장되는 다수의 레이아웃 중 하나이다. 일부 실시예에서, 레이아웃(300D)은 후속적으로 적어도 하나의 라이브러리(133)로부터 판독되고, 동작(130)에서 설계 및/또는 제조될 실제 IC의 IC 레이아웃으로 배치된다.
적어도 하나의 실시예에서, 동작(130)에서 레이아웃(300D)은 적어도 하나의 라이브러리(133)로부터 레이아웃(300C)을 판독하고, 레이아웃(300C)을 설계 및/또는 제조될 실제 IC의 IC 레이아웃에 배치하고, 라우팅을 수행하여, 레이아웃(300C)의 네트를 회로(200)에 대응하는 회로에 접속하기 위해 도 3d와 관련하여 설명된 M0 전도성 패턴, V0 비아, 및 M1 전도성 패턴을 생성한다.
도 3e는 일부 실시예에 따른 IC 디바이스(300E)의 개략적인 단면도이다. IC 디바이스(300E)는 레이아웃(300)에 대응하는 회로 영역을 포함한다. 도 3e의 단면도가 따라서 취해진 단면 라인은 도 3d의 트랙(M0_1)에 대응하고, X축을 따라 전도성 패턴(M0B-3)의 길이에 걸쳐 있다. 도 3a, 3c, 3d의 대응 컴포넌트를 갖는 도 3e의 컴포넌트는 동일한 참조 번호로 지정된다.
도 3e에 도시된 바와 같이, IC 디바이스(300E)는, 레이아웃(300)에 대응하는 회로 영역이 그 위에 형성되는 기판(385)을 포함한다. 기판(385)은 X축 및 Y축 모두에 수직인 Z축을 따른 두께 방향을 갖는다. 기판(385)은 적어도 하나의 실시예에서 실리콘, 실리콘 게르마늄(SiGe), 갈륨 비소, 또는 다른 적절한 반도체 또는 유전체 물질을 포함한다. 일부 실시예에서, 기판(385)은 P-도핑된 기판이다. 일부 실시예에서, 기판(385)은 N-도핑된 기판이다. 일부 실시예에서, 기판(385)은 위에 IC가 제조되는 반도체 물질(예컨대, 다이아몬드, 사파이어, 알루미늄 산화물(Al2O3) 등) 이외의 강성 결정질 물질이다.
N형 및 P형 도펀트가 기판(385)에 추가되어 활성 영역(OD-2)에 대응하는 NMOS 활성 영역에 대응하는 N 웰을 형성하고, 활성 영역(OD-1)에 대응하는 PMOS 활성 영역에 P 웰을 형성한다. 일부 실시예에서, 격리 구조물은 인접한 P웰과 N웰 사이에 형성된다. N웰은 트랜지스터(NB2)의 소스/드레인(386, 387)을 규정한다. 트랜지스터(NB2)의 게이트(322)는 게이트 유전체층(388, 389)의 스택 및 게이트 전극(322)을 포함한다. 적어도 하나의 실시예에서, 트랜지스터(NB2)는 다수의 게이트 유전체 대신 게이트 유전체층을 포함한다. 게이트 유전체층 또는 게이트 유전체층들의 예시적인 물질은 HfO2, ZrO2 등을 포함한다. 게이트 전극(322)의 예시적인 물질은 폴리실리콘, 금속 등을 포함한다.
IC 디바이스(300E)는 트랜지스터(NB2)의 소스/드레인(386, 387)을 IC 디바이스(300E)의 회로 내의 다른 회로 요소에 전기적으로 결합하기 위한 MD 영역(336, 337)을 더 포함한다.
IC 디바이스(300E)는 VD 비아 및 VG 비아 위에 있고, 기판(385)의 두께 방향, 즉, Z축을 따라 교대로 배열된 복수의 금속층들(M0, M1, ...) 및 복수의 비아층들(V0, V1, ...)을 포함하는 상호접속 구조물(390)을 더 포함한다. 상호접속 구조물(390)은 금속층 및 비아층이 내부에 매립되는 다양한 층간 유전체(interlayer dielectric; ILD) 층(도시되지 않음)을 더 포함한다. 상호접속 구조물(390)의 금속층 및 비아층은 IC 디바이스(300E)의 다양한 요소 또는 회로를 서로 그리고 외부 회로와 전기적으로 결합하도록 구성된다. 단순화를 위해, M1 층 위의 금속층 및 비아층은 도 3e에서 생략된다. 도 3a, 3c, 3d와 관련하여 설명된 바와 같이, 트랜지스터(NB2)의 게이트(322)는 비아(VG-1)에 의해 M0 전도성 패턴(M0B-3)에 결합되고, M0 전도성 패턴(M0B-3)은 비아(V0-5)에 의해 M1 전도성 패턴(M1A-1)에 결합된다.
본 명세서에 설명된 바와 같이, 레이아웃(300C)은 평면도(300B)에 대응하는 많은 레이아웃 중 하나이다. 일부 실시예에서, 회로의 평면도에 대응하는 다수의 레이아웃이 생성되고 적어도 하나의 라이브러리에 저장된다. 다수의 레이아웃은 설계자가 선택할 수 있도록 각 셀의 다양한 옵션을 제공하여 설계자가 설계되고 있는 특정 IC에 가장 적합한 레이아웃을 선택하고, 그리고/또는 예를 들어, PPA, 타이밍 등과 같은 다양한 요건을 충족하도록 설계된 IC를 수정할 수 있도록 한다. 일부 실시예에서, 회로의 다수의 또는 모든 가능한 레이아웃을 찾기 위한 방법은 레이아웃 블록을 생성하는 단계, 생성된 레이아웃 블록 중 일부를 회로의 평면도와 매핑하는 단계, 및 매핑된(또는 선택된) 레이아웃 블록을 회로의 레이아웃으로 결합하는 단계를 포함한다. 레이아웃 블록을 생성하는 예는 도 4a 내지 4f 중 하나 이상과 관련하여 설명된다. 생성된 레이아웃 블록 중 일부를 회로의 평면도와 매핑하는 예가 도 5a 및 5b 중 하나 이상과 관련하여 설명된다. 매핑된(또는 선택된) 레이아웃 블록을 회로의 레이아웃으로 결합하는 예가 도 5c 내지 5d, 6, 7a 내지 7d 중 하나 이상과 관련하여 설명된다. 일부 실시예에서, 레이아웃 블록을 생성하고, 생성된 레이아웃 블록의 일부를 회로의 평면도와 매핑하며, 매핑된(또는 선택된) 레이아웃 블록을 회로의 레이아웃으로 결합하는 것을 포함하는 방법이 본 명세서에 설명된 바와 같은 적어도 하나의 프로세서에 의해 전체적으로 또는 적어도 부분적으로 수행된다.
도 4a, 4b는 일부 실시예에 따라 대응하는 레이아웃 피처와 연관된 다양한 블록 옵션을 도시하는 개략도이다. 도 4a에서, 레이아웃 피처는 게이트 영역이고, 레이아웃 피처와 연관된 블록 옵션은 총칭하여 400A로 지칭되는 게이트 블록 옵션이다. 도 4b에서, 레이아웃 피처는 소스/드레인 접촉 영역(또는 MD 영역)이고, 레이아웃 피처와 연관된 블록 옵션은 총칭하여 400B로 지칭되는 소스/드레인 블록 옵션이다. 다른 레이아웃 피처는 예를 들어, 도 4d, 4e와 관련하여 설명된 바와 같이 다양한 실시예의 범위 내에 있다.
도 4a에서, 게이트 블록 옵션(400A)은 주어진 레이아웃 구성에 대응하는 모든 가능한 게이트 블록 옵션을 포함한다. 레이아웃 구성은 사용 가능한 블록 옵션의 수 및/또는 구성에 영향을 미치는 하나 이상의 인자를 포함한다. 예시적인 인자는 다수의 레이아웃이 생성될 셀 또는 회로의 M0 트랙의 수를 포함한다. 더 많은 수의 M0 트랙은 다양한 비아(예컨대, VD 비아 및/또는 VG 비아)가 레이아웃에서 배열 가능한 더 많은 수의 위치로 이어지고, 이는 결국, 더 많은 수의 사용 가능한 블록 옵션 및/또는 각 블록 옵션의 더 높은 복잡도로 이어진다. 또 다른 예시적인 요인은 다수의 레이아웃이 생성될 셀 또는 회로의 활성 영역(또는 셀 높이)의 수를 포함한다. 활성 영역의 더 많은 수(예컨대, 4개)는 다양한 비아(예컨대, VD 비아 및/또는 VG 비아) 및/또는 다양한 절단 영역(예컨대, 절단-MD 영역, 절단-PO 영역, 절단-M0 영역 등)이 레이아웃에서 배열될 수 있으며, 이는 차례로 더 많은 수의 사용 가능한 블록 옵션 및/또는 각 블록 옵션의 더 높은 복잡성으로 이어진다. 레이아웃 구성의 다른 요인은 다양한 실시예의 범위 내에 있다. 여기에서 논의되는 다양한 예는 도 3a, 3c, 3d와 관련하여 설명된 바와 같이, 신호용 5개의 M0 트랙, 전력 공급용 2개의 M0 트랙, 및 2개의 활성 영역(하나의 PMOS 활성 영역 및 하나의 NMOS 활성 영역)을 포함하는 레이아웃 구성에 대한 것이다. 다른 레이아웃 구성은 다양한 실시예의 범위 내에 있다.
도 4a의 게이트 블록 옵션(본 명세서에서 PO 블록 옵션이라고 함)은 21개의 PO 블록 옵션(PO0~PO20)을 포함한다. PO 블록 옵션들(400A) 각각은 게이트 영역(예컨대, PO 블록 옵션(PO14)), 또는 (i) 게이트 영역의 일부분을 절단 또는 디스에이블하도록 구성된 적어도 하나의 제1 절단 영역, 또는 (ii) 게이트 영역 위의 적어도 하나의 제1 비아 중 적어도 하나를 갖는 게이트 영역의 결합(예컨대, PO 블록 옵션(PO0~PO13, PO13~PO20))이다.
예를 들어, PO 블록 옵션(PO14)은 도 3a에 대해 설명된 게이트 영역(322 내지 324)과 유사하게 PMOS 활성 영역 및 NMOS 활성 영역(미도시) 위로 연속적으로 연장되는 게이트 영역(401)이다. PO 블록 옵션(PO14)의 게이트 영역(401) 상의 또는 이 게이트 영역(401)과 연관된 절단 영역 또는 비아가 없다.
PO 블록 옵션(PO0-PO3) 각각은 게이트 영역, 절단-PO 영역, 및 하나의 VG 비아의 결합이다. 예를 들어, PO 블록 옵션(PO0)은 절단-PO 영역(402) 및 VG 비아(403)를 갖는 게이트 영역(401)(번호가 매겨지지 않음)의 결합이다. PO 블록 옵션(PO0) 내의 게이트 영역(401)은 절단-PO 영역(402)에 의해 PMOS 활성 영역 및 NMOS 활성 영역 위에 대응하게 게이트 영역 부분(404, 405)으로 분할된다. 절단-PO 영역(402)은 Y축을 따라 셀의 중간에 있는 트랙(M0_3)을 따라 배열된다. VG 비아는 게이트 영역이 존재하지 않는 절단-PO 영역과 중첩되지 않을 수 있다. 따라서, 신호를 위한 다른 M0 트랙 중 하나, 즉, 트랙(M0_1, M0_2, M0_4, M0_5) 중 하나 상에 VG 비아가 배열될 수 있다. PO 블록 옵션(PO0)은 트랙(M0_1) 상의 VG 비아(403)를 포함한다. PO 블록 옵션(PO1 내지 PO3)은, 트랙(M0_2, M0_4, M0_5) 상에 대응하게 배열되는 VG 비아의 위치를 제외하고는 PO 블록 옵션(PO0)과 유사하다.
PO 블록 옵션(PO4 내지 PO7) 각각은 게이트 영역, 절단-PO 영역, 및 절단-PO 영역에 의해 분할된 2개의 게이트 영역 부분 상의 대응하는 2개의 VG 비아의 결합이다. 예를 들어, PO 블록 옵션(PO4)은 제2 VG 비아(406)가 추가된 PO 블록 옵션(PO0)과 유사하다. 두 VG 비아의 위치는 PO 블록 옵션(PO4 내지 PO7) 중에 다르다.
PO 블록 옵션(PO8 내지 PO13) 각각은 게이트 영역, 게이트 영역을 2개의 게이트 영역 부분으로 분할하는 절단-PO 영역, 및 게이트 영역 부분들 중 하나를 디스에이블하는 추가 절단 영역(CPODR)의 결합이다. 디스에이블된 게이트 영역 부분은 그 위에 VG 비아를 갖지 않을 수 있다. 예를 들어, PO 블록 옵션(PO8)은, PO 블록 옵션(PO8)이 게이트 영역 부분(404)을 디스에이블하는 절단 영역 CPODR(407)을 추가로 포함하는 것을 제외하고는, PO 블록 옵션(PO0)과 유사하다. PO 블록 옵션(PO9, PO11, PO12)은, 게이트 영역 부분 중 하나를 디스에이블하는 추가 절단 영역(CPODR)을 제외하고는, PO 블록 옵션(PO1, PO2, PO3)과 대응하게 유사하다. PO 블록 옵션(PO8, PO9, PO11, PO12) 각각은 VG 비아를 포함하지만 PO 블록 옵션(PO10, P13) 각각은 VG 비아가 없다.
PO 블록 옵션(PO15 내지 PO19) 각각은 게이트 영역과 VG 비아의 결합이다. VG 비아는 PO 블록 옵션(PO15-PO19)의 트랙(M0_1, M0_2, M0_3, M0_4, M0_5) 상에 대응하게 배열된다. 예를 들어, PO 블록 옵션(PO15)은 절단 영역 없이 트랙(M0_1) 상의 VG 비아(403) 및 게이트 영역(401)을 포함한다. 또 다른 예로서, PO 블록 옵션(PO16)은 절단 영역 없이 트랙(M0_2) 상의 VG 비아(408) 및 게이트 영역(401)을 포함한다. 절단-PO 영역(예컨대, 절단-PO 영역(402))의 존재로 인해 트랙(M0_3) 상에 VG 비아가 배열될 수 없는 PO 블록 옵션(PO0-PO9, PO11, PO12)과는 달리, PO 블록 옵션(PO17)은 절단-PO 영역이 없을 때 트랙(M0_3) 상에 VG 비아를 포함한다.
PO 블록 옵션(PO20)은 게이트 영역과, 전체 게이트 영역을 디스에이블하는 절단 영역 CPODR(409)의 결합이다.
모든 PO 블록 옵션(400A)은 미리 결정된 설계 규칙을 충족한다. 다시 말해서, PO 블록 옵션(400A)은 DRC-프리이다.
도 4b에서, 소스/드레인 블록 옵션(400B)은 주어진 레이아웃 구성, 즉, 도 4a에 대해 설명된 레이아웃 구성에 대응하는 모든 가능한 소스/드레인 블록 옵션을 포함한다. 다른 레이아웃 구성은 다양한 실시예의 범위 내에 있다.
도 4a의 소스/드레인 블록 옵션(본 명세서에서 MD 블록 옵션이라고 함)은 28개의 MD 블록 옵션(MD0~MD27)을 포함한다. MD 블록 옵션들(400B) 각각은 MD 영역(예컨대, MD 블록 옵션(MD9)), 또는 (i) MD 영역의 일부분을 절단 또는 디스에이블하도록 구성된 적어도 하나의 제1 절단 영역, 또는(ii) MD 영역 위의 적어도 하나의 제1 비아 중 적어도 하나를 갖는 MD 영역의 결합(예컨대, MD 블록 옵션(MD0 내지 MD8, MD10 내지 MD27))이다.
예를 들어, MD 블록 옵션(MD9)은 PMOS 활성 영역과 NMOS 활성 영역(미도시) 위에서 연속적으로 연장되는 MD 영역(411)이다. MD 블록 옵션(MD9)의 MD 영역(411) 상의 또는 이와 연관된 절단 영역 또는 비아가 없다.
MD 블록 옵션(MD0)은 MD 영역(411)과 절단-MD 영역(412)이 있고 비아가 없는 결합이다. MD 블록 옵션(MD0) 내의 MD 영역(411)은 절단-MD 영역(412)에 의해 PMOS 활성 영역 및 NMOS 활성 영역 위에 대응하게 MD 영역 부분(413, 414)으로 분할된다. 절단-MD 영역(412)은 Y축을 따라 셀의 중간에 있는 트랙(M0_3)을 따라 배열된다.
MD 블록 옵션(MD1, MD2, MD4, MD6) 각각은 MD 영역, 절단-MD 영역, 및 하나의 VD 비아의 결합이다. 예를 들어, MD 블록 옵션(MD1)은 MD 영역(411)(MD 영역 부분(413, 414)으로 표현됨), 절단-MD 영역(412), 및 하나의 VD 비아(415)를 포함한다. VD 비아는 MD 영역이 존재하지 않는 절단-MD 영역과 중첩되지 않을 수 있다. 절단-MD 영역(412)이 트랙 M0_3을 따라 배열되기 때문에, 신호를 위한 다른 M0 트랙 중 하나, 즉, 트랙(M0_1, M0_2, M0_4, M0_5) 중 하나 상에 VD 비아가 배열될 수 있다. 예를 들어, MD 블록 옵션(MD1)에서, VD 비아(415)는 트랙(M0_5) 상에 있다. MD 블록 옵션(MD2, MD4, MD6)은, 트랙(M0_1, M0_2, M0_4) 상에 대응하게 배열되는 VD 비아의 위치를 제외하고는 MD 블록 옵션(MD1)과 유사하다.
MD 블록 옵션(MD3, MD5, MD7, MD8) 각각은 MD 영역, 절단-MD 영역, 및 절단-MD 영역에 의해 분할된 2개의 MD 영역 부분에 대응하는 2개의 VD 비아의 결합이다. 예를 들어, MD 블록 옵션(MD3)은 제2 VD 비아(416)가 추가된 MD 블록 옵션(MD1)과 유사하다. 두 VD 비아의 위치는 MD 블록 옵션(MD3, MD5, MD7, MD8) 중에서 다르다.
MD 블록 옵션(MD10 내지 MD14) 각각은 절단 영역이 없는 MD 영역과 VD 비아의 결합이다. VD 비아는 MD 블록 옵션(MD10 내지 MD14)의 트랙(M0_1, M0_2, M0_3, M0_4, M0_5) 상에 대응하게 배열된다. 예를 들어, MD 블록 옵션(MD13)은 트랙(M0_4) 상의 MD 영역(411) 및 VD 비아(419)를 포함한다. 절단-MD 영역(예컨대, 절단-MD 영역(412))의 존재로 인해 트랙(M0_3) 상에 VD 비아가 배열될 수 없는 MD 블록 옵션(MD1 내지 MD8)과는 달리, MD 블록 옵션(MD12)은 절단-MD 영역이 없을 때 트랙(M0_3) 상에 VD 비아를 포함한다.
MD 블록 옵션(MD15 내지 MD20) 각각은 절단 영역이 없이 MD 영역과 VD 비아의 결합이다. 2개의 VD 비아 각각은 트랙(M0_1, M0_2, M0_3, M0_4, M0_5) 중 하나 상에 배열될 수 있다. 두 VD 비아의 위치는 MD 블록 옵션(MD15 내지 MD20) 중에 다르다.
MD 블록 옵션(MD21)은 MD 영역, 절단-MD 영역, 및 전력 공급을 위한 2개의 VD2 비아의 결합이다. 예를 들어, MD 블록 옵션(MD21)은 트랙(M0_VDD, M0_VSS) 상의 대응하는 VD2 비아(417, 418)가 추가된 MD 블록 옵션(MD0)과 유사하다.
MD 블록 옵션(MD22, MD25) 각각은 MD 영역, 절단-MD 영역, 및 전력 공급을 위한 하나의 VD2 비아의 결합이다. 예를 들어, MD 블록 옵션(MD22)은, VD2 비아(418)가 생략된다는 점을 제외하고는 MD 블록 옵션(MD21)과 유사하다. MD 블록 옵션(MD25)은, MD 블록 옵션(MD21)의 VD2 비아(417)가 생략된다는 점을 제외하면 MD 블록 옵션(MD21)과 유사하다.
MD 블록 옵션(MD23, MD24, MD26, MD27) 각각은 MD 영역, 절단-MD 영역, 신호용 하나의 VD 비아, 전력 공급용 하나의 VD2 비아의 결합이다. 예를 들어, MD 블록 옵션(MD27)은, MD 블록 옵션(MD21)의 VD2 비아(417)가 VD 비아(419)로 대체된다는 점을 제외하고는 MD 블록 옵션(MD21)과 유사하다. VD 비아와 VD2 비아의 위치는 MD 블록 옵션(MD23, MD24, MD26, MD27) 중에서 다르다.
모든 MD 블록 옵션(400B)은 미리 결정된 설계 규칙을 충족한다. 다른 말로 하면, MD 블록 옵션(400B)은 DRC-프리이다.
일부 실시예에서, PO 블록 옵션(400A) 및 MD 블록 옵션(400B)은 예를 들어, 비일시적 컴퓨터 판독 가능 매체 상의 적어도 하나의 라이브러리(133)에 저장된다. 적어도 하나의 실시예에서, PO 블록 옵션(400A) 중 하나의 PO 블록 옵션은 MD 블록 옵션(400B) 중 하나의 MD 블록 옵션과 미리 결정된 설계 규칙을 충족하는 DRC-프리 방식으로 결합되어 레이아웃 블록을 획득한다. 적어도 하나의 실시예에서, PO 블록 옵션(400A) 중 하나의 PO 블록 옵션과 MD 블록 옵션(400B) 중 하나의 MD 블록 옵션의 모든 가능한 DRC-프리 결합이 결정되어 PO 블록 옵션과 MD 블록 옵션을 각각 포함하는 복수의 레이아웃 블록을 획득한다. 일부 실시예에서, 각각의 PO 블록 옵션(400A) 및 각각의 MD 블록 옵션(400B)은 DRC-프리이고, PO 블록 옵션 및 MD 블록 옵션은 DRC-프리 방식으로 결합되기 때문에, 결과적인 복수의 레이아웃 블록도 DRC-프리이다. 일부 실시예에서, 복수의 레이아웃 블록은 적어도 하나의 라이브러리(133)에 저장되어 나중에 검색(retrieve)되어 다양한 셀 또는 회로에 대한 다수의 레이아웃을 구축하는 데 사용된다.
도 4c는 일부 실시예에 따라 대응하는 레이아웃 피처와 연관된 블록 옵션의 예시적인 결합(421, 422, 423)을 도시하는 개략도를 포함한다.
결합(421)은 도 4a의 PO 블록 옵션(PO16)과 도 4b의 MD 블록 옵션(MD21)의 결합이다. PO 블록 옵션(PO16)은 MD 블록 옵션(MD21)과 결합되어 PO 블록 옵션(PO16)의 게이트 영역(401)의 중심선과 MD 블록 옵션(MD21)의 MD 영역(411)의 중심선 사이의 X축을 따른 거리(d3)가 0.5 CPP가 되도록 한다. 0.5 CPP의 거리는 도 3a와 관련하여 설명된 바와 같이 셀 레이아웃에서 게이트 영역과 바로 인접한 MD 영역 사이의 중심 간 거리와 동일하다. PO 블록 옵션(PO16)과 MD 블록 옵션(MD21)을 결합함에 있어서, MD 블록 옵션(MD21)의 절단-MD 영역(412)의 에지(예컨대, 좌측 에지)는 PO 블록 옵션(PO16)에서 게이트 영역(401)의 중심선과 일치하게 된다. PO 블록 옵션(PO16)은 결합(421)에서 MD 블록 옵션(MD21)과 인접해 있다. X축을 따른 결합(421)의 크기(폭)는 1 CPP이다. 결합(421)은 미리 결정된 설계 규칙을 충족하며, 다양한 셀 또는 회로에 대한 다수의 레이아웃을 구축하기 위해 사용될 레이아웃 블록으로서 허용(accept)된다. 여기서 PO 블록 옵션과 MD 블록 옵션의 결합을 PO-MD 결합이라 하고, PO-MD 결합에 대응하는 레이아웃 블록을 PO-MD 레이아웃 블록이라 한다. X축을 따라 PO-MD 레이아웃 블록의 크기(폭)는 1 CPP이다.
결합(422)은 도 4a의 PO 블록 옵션(PO4)과 도 4b의 MD 블록 옵션(MD0)의 PO-MD 결합이다. PO 블록 옵션(PO4)은 결합(421)과 관련하여 설명된 방식으로 MD 블록 옵션(MD0)과 결합(또는 인접)된다. 결합(422)은 미리 결정된 설계 규칙을 충족하며, 다양한 셀 또는 회로에 대한 다수의 레이아웃을 구축하기 위해 사용될 PO-MD 레이아웃 블록으로서 허용된다.
결합(423)은 도 4a의 PO 블록 옵션(PO18)과 도 4b의 MD 블록 옵션(MD13)의 PO-MD 결합이다. PO 블록 옵션(PO18)은 결합(421)과 관련하여 설명된 방식으로 MD 블록 옵션(MD13)과 결합(또는 인접)된다. 그러나 결합(423)은 PO 블록 옵션(PO18)의 VG 비아(406)와 MD 블록 옵션(MD13)의 VD 비아(419) 사이의 X축을 따른 에지 간 거리(d4)와 관련하여 설계 규칙을 위반한다. VG 비아(406) 및 VD 비아(419)는 모두 동일한 트랙(M0_4) 상에 배열되고, 에지 간 거리(d4)는 설계 규칙에 의해 요구되는 임계 거리보다 작다. 결합(423)은 PO-MD 레이아웃 블록으로서 허용되지 않는다. 결합(423)은 PO 블록 옵션과 MD 블록 옵션의 모든 결합(또는 인접)이 PO-MD 레이아웃 블록으로 허용되는 것은 아니라는 예이다.
일부 실시예에서, DRC-프리인 모든 가능하고 허용 가능한 PO-MD 레이아웃 블록은 PO 블록 옵션(400A)과 MD 블록 옵션(400B)의 결합으로부터 결정되며 다양한 셀 또는 회로에 대한 다수의 레이아웃을 구축하는 데 사용되도록 저장된다.
결합(421, 422)은 하나의 PO 블록 옵션과 하나의 MD 블록 옵션을 결합하여 획득되는 1 CPP의 폭을 갖는 PO-MD 레이아웃 블록의 예이다. 다른 결합은 다양한 실시예의 범위 내에 있다. 예를 들어, 동일한 PO 블록 옵션(400A)과 MD 블록 옵션(400B)으로부터 결합(421)과 관련하여 설명된 방식으로 두 PO 블록 옵션 사이에 그리고 이들 두 PO 블록 옵션에 인접하는 MD 블록 옵션을 배열함으로써 다양한 PO-MD-PO 결합이 획득될 수 있다. 각각의 획득된 PO-MD-PO 결합은 MD 블록 옵션과 두 PO 블록 옵션 사이 그리고/또는 두 PO 블록 옵션 사이에서 DRC 위반에 대해 검증된다. DRC 위반이 발견되지 않으면, 즉, PO-MD-PO 결합이 미리 결정된 설계 규칙을 충족하면 PO-MD-PO 결합은 나중에 사용할 수 있도록 PO-MD-PO 레이아웃 블록으로서 저장된다. 일부 실시예에서, DRC-프리인 모든 가능하고 허용 가능한 PO-MD-PO 레이아웃 블록은 PO 블록 옵션(400A) 및 MD 블록 옵션(400B)의 결합으로부터 결정되고, 다양한 셀 또는 회로에 대한 다수의 레이아웃을 구축하는데 사용되기 위해 저장된다. PO-MD-PO 레이아웃 블록은 X축을 따라 1.5 CPP의 폭을 갖는다.
일부 실시예에서, DRC-프리인 모든 가능하고 허용 가능한 MD-PO-MD 레이아웃 블록은 PO 블록 옵션(400A) 및 MD 블록 옵션(400B)의 결합으로부터 결정되고, 다양한 셀 또는 회로에 대한 다수의 레이아웃을 구축하는데 사용되기 위해 저장된다.
일부 실시예에서, PO 블록 옵션(400A) 및 MD 블록 옵션(400B)으로부터 더 큰 폭을 가진 더 복잡한 레이아웃 블록이 획득될 수 있다. 적어도 하나의 실시예에서, DRC-프리인 모든 가능하고 허용 가능한 PO-MD-PO-MD 레이아웃 블록은 PO 블록 옵션(400A) 중 2개의 PO 블록 옵션과 MD 블록 옵션(400B) 중 2개의 MD 블록 옵션의 결합(또는 교번 인접(alternating abutment))으로부터 결정된다. 모든 가능한 DRC-프리 PO-MD-PO-MD 레이아웃 블록이 저장되어 다양한 셀 또는 회로에 대한 다수의 레이아웃을 구축하는 데 사용된다. PO-MD-PO-MD 레이아웃 블록은 X축을 따라 2 CPP의 폭을 가진다.
일부 실시예에서, 최대 10 CPP 폭의 DRC-프리 레이아웃 블록은 최대 10개의 PO 블록 옵션과 최대 10개의 MD 블록 옵션의 결합(또는 교번 인접)으로부터 획득되며, 다양한 셀 또는 회로에 대한 다수의 레이아웃을 구축하는데 사용되기 위해 저장된다.
도 4d, 4e는 일부 실시예에 따라 추가 레이아웃 피처와 연관된 다양한 블록 옵션을 도시하는 개략도이다. 도 4d 및 4e와 관련하여 논의된 추가 레이아웃 피처는 절단-M0(CM0) 영역이고, 연관된 블록 옵션은 CM0 블록 옵션으로 지칭된다.
도 4d에서, CM0 블록 옵션은 그 자체로 예시되지 않는다; 오히려 CM0 블록 옵션은 MD 블록 옵션(MD0)과 결합되어 도시된다. 예를 들어, 도 4d에서, MD 블록 옵션(MD0)과 결합되어 도시된 CM0 블록 옵션(C0)은 MD0-C0으로 지정되고, MD 블록 옵션(MD0)과 결합되어 도시된 CM0 블록 옵션(C1)은 MD0-C1로 지정되는 식이고, 따라서 MD 블록 옵션(MD0)과 결합되어 도시된 CM0 블록 옵션(C14)은 MD0-C14로 지정된다.
CM0 블록 옵션은 절단-M0 영역의 수와 위치가 서로 다르다. 예를 들어, CM0 블록 옵션(C0 내지 C4)은 하나의 절단-M0 영역을 갖는 CM0 블록 옵션이고, 트랙(M0_1, M0_2, M0_3, M0_4, M0_5)을 따라 M0 전도성 패턴을 대응하게 절단하도록 구성된 절단-M0 영역(431 내지 435)을 대응하게 포함한다. CM0 블록 옵션(C5 내지 C14)은 2개의 절단-M0 영역을 갖는 CM0 블록 옵션이며, 이에 대응하여 다양한 가능한 결합으로 절단-M0 영역(431 내지 435) 중 2개를 포함한다. 절단-M0 영역(432, 434)은 트랙(M0_2, M0_4)을 따라 M0A 전도성 패턴을 절단하도록 구성된 절단-M0 마스크(CM0A)에 속한다. 절단-M0 영역(431, 433, 435)은 트랙(M0_1, M0_3, M0_5)을 따라 M0B 전도성 패턴을 절단하도록 구성된 절단-M0 마스크(CM0B)에 속한다.
도 4d에서, 다이어그램(436)은 복수의 "X" 마크 각각에서 M0 트랙이 대응하는 CM0 블록 옵션에서 절단-M0 영역에 의해 절단되는 것을 도시한다. 하나의 예에서, "X" 표시(437)는 CM0 블록 옵션(C0)의 절단-M0 영역(435)이 트랙(M0_5)을 따라 M0 전도성 패턴을 절단하도록 구성되었음을 도시한다. 또 다른 예에서, "X" 표시(438, 439)는 CM0 블록 옵션(C14)의 절단-M0 영역(432, 431)이 대응하여 트랙(M0_1, M0_2)을 따라 M0 전도성 패턴을 절단하도록 구성됨을 도시한다.
도 4d의 개략도는 모든 가능한 CM0 블록 옵션을 도시하지는 않는다. 예를 들어, 단순화를 위해 각각 3개, 4개, 또는 5개의 절단-M0 영역을 포함하는 CM0 블록 옵션은 예시되지 않는다. 그러나, 각각 1, 2, 3, 4 또는 5개의 절단-M0 영역을 포함하는 모든 CM0 블록 옵션은 PO 블록 옵션(400A) 및/또는 MD 블록 옵션(400B)과의 결합을 고려하여 다양한 셀 또는 회로에 대한 다수의 레이아웃을 구축하기 위한 레이아웃 블록을 형성한다. 도 4d에 예시된 바와 같이, MD 블록 옵션과 결합하여, CM0 블록 옵션의 절단-M0 영역(들)이 MD 블록 옵션의 MD 영역 위에 배열된다. PO 블록 옵션과 결합하여, CM0 블록 옵션의 절단-M0 영역(들)이 PO 블록 옵션의 게이트 영역 위에 배열된다. CM0 블록 옵션과 PO 블록 옵션의 결합의 예는 도 5d의 레이아웃 블록(523)에 포함되어 있다.
MD 블록 옵션과 CM0 블록 옵션의 결합이 DRC-프리인 경우, 그 결합은 MD-MC0 블록 옵션이라고 한다. 예를 들어, 도 4d에서, CM0 블록 옵션(C0 내지 C14)과 MD 블록 옵션(MD0)의 모든 결합은 미리 결정된 설계 규칙을 충족하고 DRC-프리이다. 따라서, 도 4d에서 CM0 블록 옵션(C0 내지 C14)과 MD 블록 옵션(MD0)의 모든 결합은 MD-MC0 블록 옵션이다. PO 블록 옵션과 CM0 블록 옵션의 결합이 DRC-프리인 경우, 그 결합은 PO-MC0 블록 옵션이라고 한다. MD-MC0 블록 옵션 또는 MD 블록 옵션은 PO 블록 옵션 또는 PO-MC0 블록 옵션과의 추가 결합에 대해 고려된다. 그 결합이 DRC-프리인 경우, 다양한 셀 또는 회로에 대한 다수의 레이아웃을 구축하는 데 사용될 레이아웃 블록으로서 간주된다. 일부 실시예에서, MD-MC0 블록 옵션은 MD 영역, 임의의 절단-MD 영역 및/또는 임의의 VD 비아에 더하여 하나 이상의 절단-M0 영역(들)을 포함하는 MD 블록 옵션으로 간주된다. 일부 실시예에서, PO-MC0 블록 옵션은 게이트 영역, 임의의 절단-PO 영역 및/또는 임의의 VG 비아 및/또는 임의의 절단 영역(CPODR) 외에 하나 이상의 절단-M0 영역을 포함하는 PO 블록 옵션으로 간주된다.
도 4e에서, CM0 블록 옵션이 MD 블록 옵션(MD1)과 결합되어 도시되어 있다. 예를 들어, 도 4e에서, MD 블록 옵션(MD1)과 결합되어 도시된 CM0 블록 옵션(C0)은 MD1-C0으로 지정되고, MD 블록 옵션(MD1)과 결합되어 도시된 CM0 블록 옵션(C1)은 MD1-C1로 지정되는 식이고, 따라서 MD 블록 옵션(MD1)과 함께 도시된 CM0 블록 옵션(C14)은 MD1-C14로 지정된다. 도 4d와 유사하게, 도 4e의 개략도는 모든 가능한 CM0 블록 옵션을 도시하지 않으며, 예를 들어, 단순화를 위해 각각 3개, 4개 또는 5개의 절단-M0 영역을 포함하는 CM0 블록 옵션은 예시되지 않는다.
도 4e의 개략도는 CM0 블록 옵션과 MD 블록 옵션의 모든 결합이 DRC-프리이거나 PO 블록 옵션과의 추가 결합에 허용되는 것은 아님을 도시한다. 예를 들어, MD1-C0 결합에서, MD 블록 옵션(MD1)의 VD 비아(415)는 CM0 블록 옵션(C0)의 절단-M0 영역(435)과 중첩된다. 절단-M0 영역(435)은 VD 비아(415) 위의 M0 전도성 패턴을 제거하고, VD 비아(415)와 전기적으로 결합될 M0 전도성 패턴을 남기지 않는다. 이는 DRC 위반이고, MD1-C0 결합은 MD-MC0 블록 옵션으로 간주되지 않으며 PO 블록 옵션과의 추가 결합에서 제외된다. 절단-M0 영역(435)과 중첩되는 VD 비아(415)와 유사한 상황이 MD1-C5, MD1-C6, MD1-C7, MD1-C8 결합에서 관찰되며, 이들 모두는 MD-MC0 블록 옵션으로 간주되지 않으며 PO 블록 옵션과의 추가 결합에서 제외된다.
MD1-C1 결합에서 VD 비아(415)가 절단-M0 영역(434)과 부분적으로 중첩되지만 이는 DRC 위반이 아니다. 그 이유는 절단-M0 영역(434)이 트랙 M0_4를 따라 M0 전도성 패턴을 절단하도록 구성되고, VD 비아(415)가 배열되는 트랙(M0_5)을 따라 M0 전도성 패턴에 영향을 미치지 않기 때문이다. MD1-C0, MD1-C5, MD1-C6, MD1-C7, MD1-C8의 결합을 제외하고, 도 4e의 CM0 블록 옵션과 MD 블록 옵션(MD1)의 다른 모든 결합은 미리 정해진 설계 규칙을 충족하고, DRC-프리이며, PO 블록 옵션과의 추가 결합을 위해 고려될 MD-MC0 블록 옵션이다.
일부 CM0 블록 옵션과 도 4d의 MD 블록 옵션(MD0)과의 그리고 도 4e의 MD 블록 옵션(MD1)과의 설명된 결합은 예이다. 일부 실시예에서, 모든 MD 블록 옵션(MD0 내지 MD27)과의 그리고 모든 PO 블록 옵션(PO0 내지 PO20)과의 2개보다 많은 절단-M0 영역과의 CM0 블록 옵션을 포함해, 모든 CM0 블록 옵션의 결합이 결정된다. DRC-프리인 모든 MD-MC0 및 PO-MC0 결합은 MD-MC0 및 PO-MC0 블록 옵션으로 간주된다. 모든 MD-MC0 블록 옵션 및 모든 MD 블록 옵션(MD0 내지 MD27)은 MD 블록 옵션으로 간주된다. 모든 PO-MC0 블록 옵션 및 모든 PO 블록 옵션(PO0 내지 PO20)은 PO 블록 옵션으로 간주된다. 최대 10 CPP 폭의 모든 MD 블록 옵션과 모든 PO 블록 옵션의 모든 가능한 결합이 결정된다. DRC-프리인 모든 결합은 다양한 셀 또는 회로에 대한 다수의 레이아웃을 구축하는 데 사용될 레이아웃 블록으로서 저장된다.
도 4f는 일부 실시예에 따라 대응하는 레이아웃 피처와 연관된 블록 옵션의 예시적인 결합(451, 452)을 도시하는 개략도를 포함한다.
결합(451)은 도 4a의 PO 블록 옵션(PO7), 도 4b의 MD 블록 옵션(MD0), 및 도 4d에 대해 설명된 CM0 블록 옵션(C3)의 PO-MD-CM0 결합이다. CM0 블록 옵션(C3)의 절단-M0 영역(432)은 MD 블록 옵션(MD0)의 MD 영역(411) 위에 배열되어 도 4d에 도시된 바와 같이 MD-MC0 블록 옵션(MD0-C3)을 생성한다. MD-MC0 블록 옵션(MD0-C3)은 결합(451)을 얻기 위해 도 4c에 대해 설명된 것과 유사한 방식으로 PO 블록 옵션(PO7)과 결합(즉, 인접)된다. 결합(451)은 미리 결정된 설계 규칙을 충족하며, 다양한 셀 또는 회로에 대한 다수의 레이아웃을 구축하기 위해 사용될, 1 CPP의 폭을 갖는, 레이아웃 블록으로서 허용된다.
결합(452)은 도 4a의 PO 블록 옵션(PO16), 도 4b의 MD 블록 옵션(MD21), 및 도 4d에 대해 설명된 CM0 블록 옵션(C6)의 PO-MD-CM0 결합이다. CM0 블록 옵션 C6의 절단-M0 영역(433, 435)은 MD 블록 옵션(MD21)의 MD 영역(411) 위에 배열되어 MD-MC0 블록 옵션을 생성한다. MD-MC0 블록 옵션은 결합(452)을 얻기 위해 도 4c에 대해 설명된 것과 유사한 방식으로 PO 블록 옵션(PO16)과 결합(즉, 인접)된다. 결합(452)은 미리 결정된 설계 규칙을 충족하며, 다양한 셀 또는 회로에 대한 다수의 레이아웃을 구축하기 위해 사용될, 1 CPP의 폭을 갖는, 레이아웃 블록으로서 허용된다.
도 5a는 일부 실시예에 따라 IC 디바이스의 회로의 평면도에 대한 레이아웃 피처와 연관된 블록 옵션의 매핑 예를 도시하는 개략도이다. 도 5a의 예에서, MD 블록 옵션(400B)은 평면도(300B)의 소스/드레인 블록(371)에 매핑되어 MD 블록 옵션(400B) 중 어느 것이 소스/드레인 블록(371)의 하나 이상의 네트와 매칭하는지를 결정한다. 일부 실시예에서, 매핑은 다음과 같이 하나 이상의 LVS 규칙에 따라 수행된다.
2개의 상이한 네트 con 및 VSS를 포함하는 소스/드레인 블록(371)에 응답하여, 예를 들어, 적어도 하나의 프로세서에 의해, 매칭 MD 블록 옵션이 2개의 네트를 전기적으로 분리하기 위해 절단-MD 영역을 포함해야 한다고 결정된다. 결과적으로 절단-MD 영역을 포함하지 않는 MD 블록 옵션(MD9-MD20)은 제외된다.
NMOS 활성 영역에 대응하는 네트 VSS를 포함하는 소스/드레인 블록(371)에 응답하여, 예를 들어, 적어도 하나의 프로세서에 의해 매칭하는 MD 블록 옵션이 NMOS 활성 영역에 대응하는 VD2 비아를 포함해야 한다고 결정된다. 결과적으로 MD 블록 옵션(MD21, MD25, MD26, MD27) 이외의 모든 MD 블록 옵션은 제외된다.
PMOS 활성 영역에 대응하는 네트 con을 포함하는 소스/드레인 블록(371)에 응답하여, 예를 들어, 적어도 하나의 프로세서에 의해 매칭 MD 블록 옵션이 네트 con에 대한 접속을 위해 PMOS 활성 영역에 대응하는 VD 비아를 포함해야 한다고 결정된다. 나머지 MD 블록 옵션(MD21, MD25, MD26, MD27) 중에서, MD 블록 옵션(MD26, MD27)만 이 요건을 충족한다.
따라서, 소스/드레인 블록(371)과 연관된 네트 con 및 VSS에 기초하여, 매칭 레이아웃 블록이 MD 블록 옵션(MD26, MD27) 중 하나를 포함해야 한다는 것이 예를 들어, 적어도 하나의 프로세서에 의해 결정된다. 일부 실시예에서, MD 블록 옵션(MD26 또는 MD27)을 포함하는 모든 레이아웃 블록은 평면도(300B)에 따라 레이아웃을 구축하기 위해 사용되도록 선택된다.
일부 실시예에서, 설명된 매핑은 도 4b의 MD 블록 옵션(400B)뿐만 아니라 하나 이상의 절단-M0 영역을 갖는 사용 가능한 MD-MC0 블록 옵션을 소스/드레인 블록(371)에 매핑하기 위해 수행된다. 설명된 매핑은 평면도(300B)의 모든 다른 소스/드레인 블록(373, 375, 377, 379)에 대해 수행된다.
일부 실시예에서, 예를 들어, 적어도 하나의 프로세서에 의해 사용 가능한 PO 블록 옵션 중 하나 이상을 평면도(300B)의 게이트 블록(372, 374, 376, 378) 각각에 매핑하기 위해 유사한 매핑이 수행된다. 설명된 게이트 블록 매핑 및 소스/드레인 블록 매핑의 예시적인 결과가 도 5b에 주어진다.
도 5b는 일부 실시예에 따라 평면도(300B)에 다양한 레이아웃 블록을 매핑한 예시적인 결과를 보여주는 개략도이다.
도 5a와 관련하여 논의된 바와 같이, MD 블록 옵션 MD26 또는 MD27을 포함하는 모든 레이아웃 블록은 평면도(300B)의 소스/드레인 블록(371)과 매칭하는 레이아웃 블록으로서 선택된다. 이들 선택된 레이아웃 블록 중 하나는 MD 블록 옵션 MD26을 포함하는 레이아웃 블록(511)이다. 레이아웃 블록(511)은 소스/드레인 블록(371)의 좌측부 상의 셀 경계에 대응하는 PO 블록 옵션(P20)을 더 포함한다.
게이트 블록(372)과 연관된 네트(B2, B2)에 기초하여 게이트 블록(372)에 대한 사용 가능한 PO 블록 옵션의 매핑의 결과로서, 매칭하는 레이아웃 블록이 PO 블록 옵션(PO15 내지 PO19) 중 하나를 포함해야 한다고 결정된다. 소스/드레인 블록(373)과 연관된 네트(VDD, n1)에 기초하여 소스/드레인 블록(373)에 대한 사용 가능한 MD 블록 옵션의 매핑 결과로서, 매칭하는 레이아웃 블록은 네트 VDD(PMOS 상의 VD2) 및 네트 n1(NMOS 상의 VD 없음)과 매칭하는 유일한 MD 블록 옵션인 MD 블록 옵션(MD22)을 포함해야 한다고 결정된다. PO 블록 옵션(PO15 내지 PO19) 및 MD 블록 옵션(MD22) 중 하나를 포함하는 모든 레이아웃 블록은 평면도(300B)의 게이트 블록(372) 및 소스/드레인 블록(373) 모두와 매칭하는 레이아웃 블록으로서 선택된다. 이들 선택된 레이아웃 블록 중 하나는 PO 블록 옵션(PO15) 및 MD 블록 옵션(MD22)을 포함하는 레이아웃 블록(512)이다.
평면도(300B)의 나머지 블록(374 내지 379)에 대해 유사한 블록 옵션 매핑 및 레이아웃 블록 선택이 수행된다. 도 5b의 예시적인 결과에서, 레이아웃 블록(513)은 게이트 블록(374)과 매칭하는 PO 블록 옵션(PO17) 및 소스/드레인 블록(375)과 매칭하는 CM0 블록 옵션(C4)과의 MD 블록 옵션(MD5)의 결합을 포함한다. 레이아웃 블록(514)은 게이트 블록(376)과 매칭하는 PO 블록 옵션(PO15) 및 소스/드레인 블록(377)과 매칭하는 CM0 블록 옵션(C3)과의 MD 블록 옵션(MD6)의 결합을 포함한다. 레이아웃 블록(515)은 게이트 블록(378)과 매칭하는 PO 블록 옵션(PO16) 및 소스/드레인 블록(379)과 매칭하는 MD 블록 옵션(MD26)을 포함한다. 레이아웃 블록(515)의 우측부 상의 셀 경계에 대응하는 PO 블록 옵션(P20)이 추가된다.
일부 실시예에서, 선택된 레이아웃 블록(511 내지 515)은 도 4c와 관련하여 설명된 것과 유사한 방식으로 인접에 의해 결합된다. 예를 들어, 레이아웃 블록(511)을 레이아웃 블록(512)과 인접시키기 위해, 레이아웃 블록(511)의 MD 블록 옵션(MD26)의 절단-MD 영역(412)의 우측 에지는 레이아웃 블록(512)의 PO 블록 옵션(PO15)의 게이트 영역(401)의 중심선과 정렬된다. 다른 선택된 레이아웃 블록(513 내지 515)은 또한 유사한 방식으로 레이아웃 블록(512)의 우측부에 그리고 서로 인접해 있다.
도 5c는 일부 실시예에 따라 도 5b의 다양한 레이아웃 블록(511 내지 515)을 결합함으로써 획득된 레이아웃(500C)의 개략도이다. 이 예에서, 레이아웃(500C)은 도 3c와 관련하여 설명된 레이아웃(300C)에 대응한다.
레이아웃(500C)은 평면도(300B)에 따라 생성되는 많은 다른 레이아웃 솔루션 중에서 한 레이아웃 솔루션일 뿐이다. 대체 레이아웃 솔루션(미도시)은 소스/드레인 블록(371)을 위한 MD 블록 옵션(MD26), 게이트 블록(372)을 위한 PO 블록 옵션(PO17), 소스/드레인 블록(373)을 위한 MD 블록 옵션(MD22), 게이트 블록(374)을 위한 PO 블록 옵션(PO18), 소스/드레인 블록(375)을 위한 MD 블록 옵션(MD3)과 CM0 블록 옵션(C9)의 결합, 게이트 블록(376)을 위한 PO 블록 옵션(PO16), 소스/드레인 블록(377)을 위한 MD 블록 옵션(MD6), 게이트 블록(378)을 위한 PO 블록 옵션(PO17), 및 소스/드레인 블록(379)을 위한 MD 블록 옵션(MD26)을 포함한다.
일부 실시예에서, 본 명세서에 설명된 바와 같이, 회로의 평면도(300B)와 같은 평면도에 대응하는 모든 가능한 레이아웃 솔루션은 미리 결정된 레이아웃 블록으로부터 생성된다. 결과적으로, 하나 이상의 실시예에서 IC 설계자는 동일한 회로에 대해 현재 레이아웃보다 더 나은 레이아웃을 찾을 수 있으므로 IC 레이아웃을 개선할 수 있다.
일부 실시예에서, 예를 들어, 도 5d와 관련하여 설명된 바와 같이, 동일한 미리 결정된 레이아웃 블록이 상이한 회로에 대한 레이아웃 솔루션을 생성하는 데 사용될 수 있다.
도 5d는 일부 실시예에 따라 다양한 레이아웃 블록을 IC 디바이스의 회로의 평면도에 매핑하는 예를 도시하는 개략도 및 다양한 레이아웃 블록을 결합함으로써 획득되는 레이아웃(500D)의 개략도를 포함한다. 도 5d의 회로는 XOR2D1이며, 즉, 도 5c와 관련하여 논의된 AOI22D1 회로와는 다르다. XOR2D1은 구동 강도가 1인 2-입력 XOR 게이트이다. XOR2D1의 평면도는 평면도(300B)와는 다르며, 도 5d에는 도시되어 있지 않다.
도 5d에서, 도 5a 및 5b와 관련하여 설명된 바와 같이 사용 가능한 PO, MD 및/또는 CM0 블록 옵션을 XOR2D1의 평면도의 다양한 소스/드레인 블록 및 게이트 블록에 매핑한 결과로서, 다양한 매칭 PO, MD 및/또는 CM0 블록 옵션이 식별되고, 매칭 PO, MD 및/또는 CM0 블록 옵션에 기초해 하나 이상의 사용 가능한 레이아웃 블록이 선택된다. 선택된 레이아웃 블록은 평면도의 복수의 교번 게이트 블록 및 소스/드레인 블록에 대응하게 매핑된 교번 게이트 블록 옵션 및 소스/드레인 블록 옵션의 세트를 함께 포함한다. 예를 들어, 도 5d의 선택된 레이아웃 블록의 세트는 예를 들어, 도 5c와 관련하여 설명된 바와 같은 또 다른 회로, 예를 들어, AOI22D1에 대한 다양한 레이아웃 솔루션을 생성하는 데 사용할 수 있는 다양한 PO, MD 및/또는 CM0 블록 옵션을 포함하는 레이아웃 블록(521 내지 525)을 포함한다.
레이아웃 블록(521)은 XOR2D1의 평면도에서 게이트 블록에 대한 PO 블록 옵션(PO16)과 소스/드레인 블록에 대한 MD 블록 옵션(MD21)을 포함한다. 레이아웃 블록(522)은 XOR2D1의 평면도에서 게이트 블록에 대한 PO 블록 옵션(PO4)과 소스/드레인 블록에 대한 MD 블록 옵션(MD0)을 포함한다. 레이아웃 블록(523)은 XOR2D1의 평면도에서 PO 블록 옵션 PO17과 게이트 블록에 대한 CM0 블록 옵션(C11) 및 소스/드레인 블록에 대한 MD 블록 옵션(MD7)과의 결합을 포함한다. PO 블록 옵션(PO17)과 CM0 블록 옵션(C11)의 결합에서, CM0 블록 옵션(C11)의 절단-M0 영역(531, 532)은 PO 블록 옵션(PO17)의 게이트 영역(533) 위에 배열된다. 레이아웃 블록(524)은 XOR2D1의 평면도에서 게이트 블록에 대한 PO 블록 옵션(PO7) 및 소스/드레인 블록에 대한 CM0 블록 옵션(C3)과 MD 블록 옵션(MD0)의 결합을 포함한다. 레이아웃 블록(525)은 XOR2D1의 평면도에서 게이트 블록에 대한 PO 블록 옵션(PO16) 및 소스/드레인 블록에 대한 CM0 블록 옵션(C6)과 MD 블록 옵션(MD21)의 결합을 포함한다. 레이아웃(500D)은 다양한 레이아웃 블록(521 내지 525)을 결합, 예를 들어, 인접시킴으로써 획득된다. 레이아웃(500D)은 XOR2D1의 평면도에 따라 생성되는 많은 다른 레이아웃 솔루션 중 단지 하나의 레이아웃 솔루션일 뿐이다.
설명된 예에서, 1 CPP의 폭을 가진 PO-MD 및/또는 PO-MD-CM0 레이아웃 블록이 레이아웃 솔루션을 생성하는 데 사용된다. 최대 10 CPP의 폭을 가진 다른 더 큰 레이아웃 블록을 유사한 방식으로 사용하여 레이아웃 솔루션을 생성할 수 있다.
도 6은 일부 실시예에 따라 IC 디바이스의 회로의 평면도에 매핑된 다양한 레이아웃 블록을 회로의 다양한 레이아웃도로 결합하기 위한 검색(search)(600)을 도시한 개략도이다. 도 6의 예에서, 검색(600)은 적어도 하나의 프로세서에 의해 실행되는 깊이 우선 탐색(depth-first search; DFS) 알고리즘을 포함한다. 적어도 하나의 실시예에서, DFS 알고리즘은 검색 트리의 루트(root)에서 시작하고 역추적하기 전에 각 분기를 따라 가능한 한 또는 필요한 한 멀리(또는 깊게) 탐색한다.
예를 들어, 회로의 평면도는 각각 게이트 블록과 소스/드레인 블록을 포함하는 블록(601 내지 605)을 포함한다. 검색(600)은 평면도의 블록(601)과 매칭하는 레이아웃 블록(621)으로부터 시작한다. 그 다음, 검색(600)은 평면도의 블록(602)과 매칭하는 제1 레이아웃 블록(622)을 찾고 발견한다. 그 다음, 검색(600)은 평면도의 블록(603)과 매칭하는 제1 레이아웃 블록(623)을 찾고 발견한다. 그 다음, 검색(600)은 평면도의 블록(604)과 매칭하는 제1 레이아웃 블록(624)을 찾고 발견한다. 그 다음, 검색(600)은 평면도의 블록(605)과 매칭하는 제1 레이아웃 블록(625)을 찾는다. 이 시점에서 평면도와 매칭하는 레이아웃 블록(621 내지 625)을 포함하는 제1 레이아웃 솔루션이 획득되고 저장된다. 그 다음, 검색(600)은 블록(604)에 대응하는 현재 레이아웃 블록(624)과 결합될 블록(605)과 매칭하는 또 다른 레이아웃 블록을 찾는다.
블록(605)과 매칭하는 다음 레이아웃 블록이 발견되지 않거나 하나 이상의 설계 규칙으로 인해 블록(604)에 대응하는 현재 레이아웃 블록(624)과 결합할 수 없는 경우, 검색(600)은 블록(604)과 매칭하는 다음 레이아웃 블록을 찾기 위해 한 레벨을 역추적한다.
블록(604)과 매칭하는 다음 레이아웃 블록이 발견되지 않거나, 하나 이상의 설계 규칙으로 인해 블록(603)에 대응하는 현재 레이아웃 블록(623)과 결합할 수 없는 경우, 검색(600)은 블록(603)과 매칭하는 다음 레이아웃 블록을 찾기 위해 하나의 추가 레벨을 역추적한다.
블록(603)과 매칭하는 레이아웃 블록(626)이 발견되면, 검색(600)은 평면도의 블록(604)과 일치하고 레이아웃 블록(626)과 결합 가능한 제1 레이아웃 블록을 찾는다. 레이아웃 블록(627)이 발견되면, 검색(600)은 평면도의 블록(605)과 매칭하고 레이아웃 블록(627)과 결합 가능한 제1 레이아웃 블록을 찾는다. 레이아웃 블록(628)이 발견되면, 평면도와 매칭하는 레이아웃 블록(621, 622, 626, 627, 628)을 포함하는 제2 레이아웃 솔루션이 획득되고 저장된다.
검색(600)은 유사한 방식으로 진행되어 제3 내지 제5 레이아웃 솔루션을 찾는다. 제3 레이아웃 솔루션은 레이아웃 블록(621, 629, 630, 631, 632)을 포함한다. 제4 레이아웃 솔루션은 레이아웃 블록(621, 629, 630, 631, 633)을 포함한다. 제5 레이아웃 솔루션은 레이아웃 블록(621, 629, 630, 634, 635)을 포함한다.
이 시점에서, 레이아웃 블록(621)으로 시작하는 레이아웃 솔루션에 대한 검색이 철저했다고 결정되고 검색(600)은 평면도의 블록(601)과 매칭하는 추가 레이아웃 블록으로부터 시작하는 새로운 검색 트리로 전환된다. 설명된 알고리즘은 평면도와 매칭하는 모든 가능한 레이아웃 솔루션에 대한 완전 탐색을 수행하기 위해 유사한 방식으로 반복된다.
평면도에 대응하는 모든 가능한 레이아웃 솔루션을 찾기 위해 일부 실시예에 따라 예를 들어, 너비 우선 검색과 같은 다른 검색 방법론이 사용 가능하지만, 설명된 DSF는 제1 레이아웃 솔루션을 신속하게 찾는(locate) 데 유리하다.
본 명세서에 설명된 바와 같은 일부 실시예에서, 하나 이상의 레이아웃 블록은 도 4c에 대해 설명된 것과 유사한 방식으로 하나의 레이아웃 블록을 다른 레이아웃 블록과 인접시킴으로써 서로 결합된다. 레이아웃 블록을 결합하기 위한 다른 방법은 예를 들어, 도 7b 내지 7d와 관련하여 설명된 바와 같이 다양한 실시예의 범위 내에 있다.
도 7a는 특정 레이아웃 블록이 결합될 때 잠재적인 설계 규칙 위반을 도시하는 개략도이다.
도 7a의 단순화된 예에서, 2개의 동일한 레이아웃 블록(701 및 702)이 결합된다. 레이아웃 블록(701 및 702)은 또한 도 5d와 관련하여 설명된 레이아웃 블록(523)과 동일하다. 레이아웃 블록(701 및 702)이 결합되어, 레이아웃 블록(701)의 절단-M0 영역(703)과 레이아웃 블록(702)의 절단-M0 영역(704) 사이의 X축을 따라 중심 간 거리가 1 CPP인 결합된 레이아웃 블록(708)을 생성한다. 미리 결정된 설계 규칙에 따르면 동일한 M0 트랙 상의 절단-M0 영역은 1 CPP보다 큰 중심 간 거리만큼 이격되어야 한다. 따라서, 레이아웃 블록(701 및 702)의 결합은 DRC 위반이 된다.
도 7a와 관련하여 설명된 예시적인 상황은 레이아웃 블록이 결합될 때 DRC 위반의 잠재적 위험을 예시한다. 결합된 레이아웃 블록에 DRC 위반이 있는지 여부를 결정하기 위해 레이아웃 블록이 결합된 후 특정 검사를 수행할 수 있다. 그러나 이러한 검사로 인해 평면도에 대응하는 다수의 여러 레이아웃 솔루션을 검색하는 속도가 느려질 수 있다. 적어도 하나의 실시예에서, DRC 위반의 잠재적 위험은 도 7b 내지 7d와 관련하여 설명된 바와 같이 레이아웃 블록이 인접하지 않고 동일한 경계 영역에서 중첩함으로써 결합될 때 감소된다.
도 7b는 일부 실시예에 따라 레이아웃 블록을 결합하는 예를 도시하는 개략도이다.
도 7b에서, 레이아웃 블록(711, 712)은 결합될 것이다. 레이아웃 블록(711, 712) 각각은 2 CPP의 폭을 갖는 PO-MD-PO-MD 레이아웃 블록이다. 레이아웃 블록(711)은 제1 영역(713) 및 경계 영역(715)을 포함한다. 레이아웃 블록(712)은 제2 영역(716) 및 경계 영역(715)을 포함한다. 레이아웃 블록(711)의 경계 영역(715)은 레이아웃 블록(712)의 경계 영역(715)과 동일하다. 본 명세서에 설명된 바와 같이, 미리 결정된 설계 규칙이 충족되는 것을 보장하는 방식으로, 즉, 레이아웃 블록이 DRC-프리임을 보장하는 방식으로 레이아웃 블록이 생성된다. 또한, 본 명세서에 설명된 바와 같이, 레이아웃 블록이 DRC-프리임을 보장하기 위해, 레이아웃 블록을 생성하는 데 사용되는 다양한 블록 옵션은 DRC-프리이며, DRC-프리 방식으로 서로 결합된다. 블록 옵션의 결합은 예를 들어, 도 4c, 4e와 관련하여 설명된 바와 같이 이러한 결합이 DRC-프리가 아니라고 결정될 때 레이아웃 블록으로서 사용되는 것에서 제외된다. 레이아웃 블록(711, 712)은 DRC-프리이기 때문에, 레이아웃 블록(711)에서 제1 영역(713)과 경계 영역(715) 사이 및 레이아웃 블록(712)에서 제2 영역(716)과 경계 영역(715) 사이에 DRC 위반의 위험이 없다.
일부 실시예에서, 레이아웃 블록(711, 712)은 자신의 동일한 경계 영역(715)에서 레이아웃 블록(711, 712)을 중첩함으로써, 즉, 레이아웃 블록(712)의 동일한 경계 영역(715) 위에 레이아웃 블록(711)의 경계 영역(715)을 중첩함으로써 결합된다. 그 결과 결합된 레이아웃 블록(718)은 제1 영역(713), 제2 영역(716), 및 제1 영역(713)과 제2 영역(716) 사이의 경계 영역(715)(더 이상 경계 영역이 아님)을 포함한다.
레이아웃 블록(711)에서 제1 영역(713)과 경계 영역(715) 사이에 DRC 위반 위험이 없기 때문에, 결합된 레이아웃 블록(718)에서도 제1 영역(713)과 경계 영역(715) 사이에 DRC 위반 위험이 없다. 레이아웃 블록(712)에서 제2 영역(716)과 경계 영역(715) 사이에 DRC 위반 위험이 없기 때문에, 결합된 레이아웃 블록(718)에서 제2 영역(716)과 경계 영역(715) 사이에 DRC 위반 위험도 없다. 그 결과 결합된 레이아웃 블록(718)은 하나 이상의 실시예에서 DRC-프리이거나 적어도 DRC-프리이다. 동일한 경계 영역을 중첩함으로써 설명된 결합 기술을 활용하기 위한 다양한 접근법이 도 7c 및 7d와 관련하여 설명된다.
도 7c는 일부 실시예에 따라 레이아웃 블록을 결합하는 예를 도시하는 개략도이다.
도 7c에서, 레이아웃 블록(721, 722)이 결합된다. 예를 들어, 레이아웃 블록(721)은 평면도에서 블록 X=1, X=2, X=3, X=4에 대응하는 블록 옵션 A, B, C, D를 포함한다. 일부 상황에서, 레이아웃 블록(721)은 DRC-프리인 미리 결정된 레이아웃 블록이다. 다른 상황에서, 레이아웃 블록(721)은 하나는 블록 A, B를 포함하고 다른 하나는 블록 옵션 C, D를 포함하는 두 개의 DRC-프리 레이아웃 블록의 DRC-프리 결합이다. 레이아웃 블록(722)은 평면도에서 블록 X=5, X=6에 대응하는 블록 옵션 E, F를 포함한다. 레이아웃 블록(721)은 레이아웃 블록(722)과 결합되어, 평면도의 대응하는 블록(X=1, X=2, X=3, X=4, X=5, X=6)에 따라 블록 옵션(A, B, C, D)이 블록 옵션(E, F)에 인접하게 된다. 일부 실시예에서, 블록 옵션(A, C, E)은 PO 또는 MD 블록 옵션을 포함하고, 블록 옵션(B, D, F)는 MD 또는 PO 블록 옵션을 포함한다.
일부 실시예에 따라 레이아웃 블록(721, 722)을 결합하기 위한 접근법은 대응하는 대향 에지(723, 724)를 따라 레이아웃 블록(721)과 레이아웃 블록(722)을 인접시키는 것을 수반한다. 그러나, 도 7a와 관련하여 논의된 바와 같이, 특정 상황에서 이러한 접근법에서 DRC 위반의 위험이 있을 수 있다.
일부 실시예에 따른 대안적인 접근법은 도 7b와 관련하여 논의된 바와 같이 레이아웃 블록을 인접시키기보다는 중첩하는 것을 수반한다. 이 접근법에서, 블록 옵션(C, D, E, F)을 포함하는 중간 레이아웃 블록(725)은 미리 결정된 레이아웃 블록 및/또는 이전에 결합된 DRC-프리 레이아웃 블록 중에서 찾아진다. 중간 레이아웃 블록(725)은 제1 영역(726) 및 경계 영역(727)을 포함한다. 경계 영역(727)은 블록 옵션(C, D)을 포함하며, 레이아웃 블록(721)에서 블록 옵션(C, D)을 포함하는 대응 경계 영역과 동일하다. 중간 레이아웃 블록(725)의 제1 영역(726)은 레이아웃 블록(722)의 블록 옵션(E, F)을 포함한다. 중간 레이아웃 블록(725)이 발견되면, 레이아웃 블록(721) 및 중간 레이아웃 블록(725)은 자신의 동일한 경계 영역(727)에서 중첩되고, 결과적으로 평면도에서 블록(X=1, X=2, X=3, X=4, X=5, X=6)에 대응하는 블록 옵션(A, B, C, D, E, F)을 포함하는 결합된 레이아웃 블록(728)을 생성한다.
레이아웃 블록(721) 및 중간 레이아웃 블록(725) 각각은 DRC-프리로 미리 결정되거나 결합되기 때문에, 레이아웃 블록(721)의 블록 옵션(A, B, C, D) 중 DRC 위반의 위험이 없고, 중간 레이아웃 블록(725)의 블록 옵션(C, D, E, F) 중 DRC 위반의 위험이 없다. 결과적으로, 대향 에지(723, 724)를 따라 인접하는 레이아웃 블록(721, 722)의 결합과 동일한, 결합된 레이아웃 블록(728)의 블록 옵션(A, B, C, D, E, F) 중 DRC 위반의 위험이 없다.
일부 실시예에서, 대향 에지(723, 724)를 따라 레이아웃 블록(721, 722)을 인접시킨 다음 DRC 위반에 대한 하나 이상의 검사를 수행하는 대신에, 적어도 하나의 프로세서는 동일한 경계 영역(727) 내의 레이아웃 블록(721, 725)을 중첩시킴으로써 레이아웃 블록(721)과 결합되는 기존의 DRC-프리 중간 레이아웃 블록(725)을 검색하도록 구성된다. 적어도 하나의 실시예에서, 획득된 결합된 레이아웃 블록(728)은 DRC-프리이거나 적어도 DRC-프리이다. 결과적으로 평면도에 따라 레이아웃 블록을 빠르게 결합하는 동시에, 획득된 레이아웃 솔루션이 DRC-프리이거나 적어도 DRC-프리인 것을 보장할 수 있다.
도 7d는 일부 실시예에 따라 레이아웃 블록을 결합하는 예를 도시하는 개략도이다.
도 7d에서, 레이아웃 블록(721, 732)이 결합된다. 레이아웃 블록(721)은 도 7c와 관련하여 설명된다. 레이아웃 블록(732)은 평면도에서 블록(X=5, X=6, X=7, X=8)에 대응하는 블록 옵션(E, F, G, H)을 포함한다. 일부 상황에서, 레이아웃 블록(732)은 DRC-프리인 미리 결정된 레이아웃 블록이다. 다른 상황에서, 레이아웃 블록(732)은, 하나는 블록(E, F)을 포함하는 반면에 다른 하나는 블록 옵션(G, H)을 포함하는 두 개의 DRC-프리 레이아웃 블록의 DRC-프리 결합이다. 레이아웃 블록(721)은 레이아웃 블록(732)과 결합되어, 평면도에서 대응하는 블록(X=1, X=2, X=3, X=4, X=5, X=6, X=7, X=8)에 따라 블록 옵션(A, B, C, D)이 블록 옵션(E, F, G, H)에 인접하게 된다. 일부 실시예에서, 블록 옵션(A, C, E, G)은 PO 또는 MD 블록 옵션을 포함하고, 블록 옵션(B, D, F, H)은 MD 또는 PO 블록 옵션을 포함한다.
일부 실시예에 따라 레이아웃 블록(721, 732)을 결합하기 위한 접근법은 대응하는 대향 에지(723, 734)를 따라 레이아웃 블록(721)과 레이아웃 블록(732)을 인접시키는 것을 수반한다. 그러나, 도 7a와 관련하여 논의된 바와 같이, 특정 상황에서 이러한 접근법에서 DRC 위반의 위험이 있을 수 있다.
일부 실시예에 따른 대안적인 접근법은 도 7b 및 7c와 관련하여 논의된 바와 같이 레이아웃 블록을 인접시키기보다는 중첩시키는 것을 수반한다. 이 접근법에서, 블록 옵션(C, D, E, F)을 포함하는 중간 레이아웃 블록(725)은 미리 결정된 레이아웃 블록 및/또는 이전에 결합된 DRC-프리 레이아웃 블록 중에서 찾아진다. 중간 레이아웃 블록(725)은 제1 경계 영역(726) 및 제2 경계 영역(727)을 포함한다. 제2 경계 영역(727)은 블록 옵션(C, D)을 포함하며, 레이아웃 블록(721)에서 블록 옵션(C, D)을 포함하는 대응 경계 영역과 동일하다. 중간 레이아웃 블록(725)의 제1 경계 영역(726)은 블록 옵션(E, F)을 포함하고 레이아웃 블록(732)의 블록 옵션(E, F)을 포함하는 대응하는 경계 영역과 동일하다.
중간 레이아웃 블록(725)이 발견되면, 레이아웃 블록(721) 및 중간 레이아웃 블록(725)은 자신의 동일한 경계 영역(727)에서 중첩되고, 결과적으로 평면도에서 블록(X=1, X=2, X=3, X=4, X=5, X=6)에 대응하는 블록 옵션(A, B, C, D, E, F)을 포함하는 중간 결합 레이아웃 블록(728)을 생성한다.
중간 결합 레이아웃 블록(728)은 레이아웃 블록(732)의 블록 옵션(E, F)을 포함하는 대응하는 경계 영역과 동일한 경계 영역(726)을 갖는다. 레이아웃 블록(732) 및 중간 결합 레이아웃 블록(725)은 자신의 동일한 경계 영역(726)에서 중첩되어, 결과적으로 평면도에서 블록(X=1, X=2, X=3, X=4, X=5, X=6, X=7, X=8)에 대응하는 블록 옵션(A, B, C, D, E, F, G, H)을 포함하는 결합된 레이아웃 블록(738)을 생성한다.
레이아웃 블록(721), 중간 레이아웃 블록(725), 및 레이아웃 블록(732) 각각은 DRC-프리로 미리 결정되거나 결합되기 때문에, 레이아웃 블록(721)의 블록 옵션(A, B, C, D) 중 DRC 위반의 위험이 없고, 중간 레이아웃 블록(725)의 블록 옵션(C, D, E, F) 중 DRC 위반의 위험이 없으며, 레이아웃 블록(732)의 블록 옵션(E, F, G, H) 중 DRC 위반의 위험이 없다. 결과적으로, 자신의 대향 에지(723, 734)를 따라 인접되는 레이아웃 블록(721, 732)의 결합과 동일한, 결합된 레이아웃 블록(738)의 블록 옵션(A, B, C, D, E, F, G, H) 중 DRC 위반의 위험이 없다.
일부 실시예에서, 자신의 대향 에지(723, 734)를 따라 레이아웃 블록(721, 732)을 인접시킨 다음에 DRC 위반에 대한 하나 이상의 검사를 수행하는 대신에, 적어도 하나의 프로세서는 결합될 레이아웃 블록(721, 732)의 경계 영역과 대응하게 동일한 2개의 경계 영역을 포함하는 기존의 DRC-프리 중간 레이아웃 블록(725)을 검색하도록 구성된다. 그 다음, 중간 레이아웃 블록(725)은 동일한 경계 영역에서 중첩함으로써 레이아웃 블록(721, 732)과 결합된다. 적어도 하나의 실시예에서, 획득된 결합된 레이아웃 블록(738)은 DRC-프리이거나 적어도 DRC-프리이다. 결과적으로 평면도에 따라 레이아웃 블록들을 빠르게 결합하는 동시에, 획득된 레이아웃 솔루션이 DRC-프리이거나 적어도 DRC-프리인 것을 보장할 수 있다. 도 7b 내지 도 7d와 관련하여 설명된 예에서, 하나의 레이아웃 블록이 또 다른 레이아웃 블록과 중첩되는 경계 영역은 PO 블록 옵션 및 MD 블록 옵션을 포함하고, 1 CPP의 폭을 갖는다. 더 큰 경계 영역(또는 중첩 영역)은 다양한 실시예의 범위 내에 있다. 일부 실시예에서, 중첩 영역은 최대 5 CPP의 폭을 갖는다. 일부 실시예에서, 설명된 방법, 프로세스 또는 검색 방법론 중 하나 이상은 다수의 금속 층, 예를 들어, M0, M1, M2, M3 층 중 하나 이상에서 모든 가능한 라우팅을 찾기 위해 적용 가능하다.
도 8a는, 일부 실시예에 따른, 회로의 레이아웃을 생성하는 방법(800A)의 흐름도이다. 적어도 하나의 실시예에서, 방법(800B)은 적어도 하나의 프로세서에 의해 수행된다.
동작(810)에서, 복수의 상이한 레이아웃 블록이 생성된다. 각각의 레이아웃 블록은 미리 결정된 설계 규칙을 충족하고 제1 레이아웃 피처와 연관된 적어도 하나의 제1 블록 옵션 및 제2 레이아웃 피처와 연관된 적어도 하나의 제2 블록 옵션을 포함한다. 예를 들어, 도 4c, 4f와 관련하여 설명된 바와 같이, 복수의 상이한 레이아웃 블록, 예를 들어, 도 4c의 레이아웃 블록(421, 422), 도 4f의 레이아웃 블록(451, 452)이 생성된다. 각각의 레이아웃 블록은 미리 결정된 설계 규칙을 충족하며, 예를 들어, 각각의 레이아웃 블록은 본 명세서에 설명된 바와 같이 DRC-프리이다. 각각의 레이아웃 블록, 예를 들어, 도 4c의 레이아웃 블록(421)은 예를 들어, 게이트 영역과 같은 제1 레이아웃 피처와 연관된 적어도 하나의 제1 블록 옵션, 예를 들어, PO16, 및 제2 레이아웃 피처, 예를 들어, MD 영역과 연관된 적어도 하나의 제2 블록 옵션, 예를 들어, MD21을 포함한다. 설명된 레이아웃 블록은 예이다. 예를 들어, 적어도 21개의 PO 블록 옵션(도 4a) 및 28개의 MD 블록 옵션(도 4b)을 결합함으로써 다수의 레이아웃 블록이 생성된다. 레이아웃 블록의 수는 도 4d 내지 4f와 관련하여 설명된 바와 같이 적어도 하나의 추가적인 레이아웃 피처, 예를 들어, CM0이 고려될 때 더 증가된다.
동작(812)에서, 복수의 레이아웃 블록 중에서, 예를 들어, 도 5b와 관련하여 설명된 바와 같이 회로의 평면도에서 복수의 블록에 대응하는 레이아웃 블록이 선택된다.
동작(816)에서, 선택된 레이아웃 블록은 예를 들어, 도 5b 내지 5d, 6, 7b 내지 7d와 관련하여 설명된 바와 같이 평면도에 따라 회로의 레이아웃으로 결합된다.
동작(818)에서, 회로의 레이아웃은 셀 라이브러리, 예를 들어, 도 1b의 적어도 하나의 라이브러리(133)에 저장되거나, 예를 들어, 도 1b의 동작(130 내지 170)과 관련하여 설명된 바와 같이, 회로를 포함하는 집적 회로(IC)에 대한 레이아웃을 생성하는 데 사용된다.
일부 실시예에서, 동작(810)에서 생성된 레이아웃 블록은 PO 블록 옵션 및 MD 블록 옵션으로부터 획득될 수 있는 모든 가능한 DRC-프리 레이아웃 블록을 포함한다. 이러한 레이아웃 블록은 예를 들어, 다양한 셀 또는 회로에 대한 다수의 레이아웃을 구축하기 위한 미리 결정된 블록으로서 나중에 사용하기 위해 적어도 하나의 라이브러리(133)에 저장된다.
일부 실시예에서, 동작(812, 816)은 회로의 평면도에 기초하여 레이아웃 솔루션을 생성하는 것에 대응한다. 적어도 하나의 실시예에서, 동작(812, 816)을 반복적으로 수행함으로써, 도 1b의 동작(135)과 관련하여 설명된 바와 같이, 회로의 평면도에 기초한 다수의 또는 모든 가능한 레이아웃 솔루션이 생성된다. 적어도 하나의 실시예에서, 여기에 설명된 하나 이상의 이점이 방법(800A)에 의해 달성될 수 있다.
도 8b는, 일부 실시예에 따른, 회로의 레이아웃을 생성하는 방법(800B)의 흐름도이다. 적어도 하나의 실시예에서, 방법(800B)은 적어도 하나의 프로세서에 의해 수행된다.
동작(820)에서, 평면도 내의 각각의 게이트 블록에 게이트 블록과 연관된 하나 이상의 네트에 기초하여, 복수의 미리 결정된 게이트 블록 옵션 중에서 하나 이상의 게이트 블록 옵션을 매핑하기 위해 제1 매핑이 수행된다. 예를 들어, 도 5b와 관련하여 설명된 바와 같이, PO 블록 옵션(400A)(도 4a) 중 하나 이상의 게이트 블록 옵션은 게이트 블록(372, 374, 376, 378) 각각과 연관된 네트에 기초하여 평면도(300B)의 게이트 블록(372, 374, 376, 378) 각각에 매핑된다.
동작(822)에서, 평면도의 각각의 소스/드레인 블록에 그리고 소스/드레인 블록과 연관된 하나 이상의 네트에 기초하여 복수의 미리 결정된 소스/드레인 블록 옵션 중에서 하나 이상의 소스/드레인 블록 옵션을 매핑하기 위해 제2 매핑이 수행된다. 예를 들어, 도 5a, 5b와 관련하여 설명된 바와 같이, MD 블록 옵션(400B)(도 4b) 중 하나 이상의 MD 블록 옵션은 소스/드레인 블록(371, 373, 375, 377, 379) 각각과 연관된 네트에 기초하여 평면도(300B)의 소스/드레인 블록(371, 373, 375, 377, 379) 각각에 매핑된다.
동작(824)에서, 각각이 미리 결정된 설계 규칙을 충족하고 적어도 하나의 게이트 블록 옵션 및 적어도 하나의 소스/드레인 블록 옵션을 포함하는 복수의 미리 결정된 레이아웃 블록으로부터 레이아웃 블록이 선택된다. 선택된 레이아웃 블록은 평면도의 복수의 교번 게이트 블록 및 소스/드레인 블록에 대응하게 매핑된 교번 게이트 블록 옵션 및 소스/드레인 블록 옵션 세트를 함께 포함한다. 예를 들어, 도 5b, 5d와 관련하여 설명된 바와 같이, 다양한 레이아웃 블록(511 내지 515, 521 내지 525)은 평면도에서 게이트 블록 및 소스/드레인 블록을 매칭시키기 위해 복수의 미리 결정된 레이아웃 블록으로부터 선택된다.
동작(826)에서, 선택된 레이아웃 블록은 예를 들어, 도 5b 내지 5d, 6, 7b 내지 7d와 관련하여 설명된 바와 같이 평면도에 따라 회로의 레이아웃으로 결합된다.
동작(828)에서, 회로의 레이아웃은 셀 라이브러리, 예를 들어, 도 1b의 적어도 하나의 라이브러리(133)에 저장되거나, 예를 들어, 도 1b의 동작(130 내지 170)과 관련하여 설명된 바와 같이, 회로를 포함하는 집적 회로(IC)에 대한 레이아웃을 생성하는 데 사용된다. 적어도 하나의 실시예에서, 여기에 설명된 하나 이상의 이점이 방법(800B)에 의해 달성될 수 있다.
도 8c는, 일부 실시예에 따른, 회로의 레이아웃을 생성하는 방법(800C)의 흐름도이다. 적어도 하나의 실시예에서, 방법(800C)은 적어도 하나의 프로세서에 의해 수행된다.
동작(830)에서, 제1 레이아웃 블록이 획득된다. 제1 레이아웃 블록은 평면도의 제1 부분에 대응하는 제1 영역 및 경계 영역을 포함한다. 예를 들어, 도 7c와 관련하여 설명된 바와 같이, 제1 레이아웃 블록(721)은 평면도의 제1 부분에 대응하는 제1 영역 A, B 및 경계 영역 C, D(또는 727)를 포함한다.
동작(832)에서, 제2 레이아웃 블록이 획득된다. 제2 레이아웃 블록은 평면도의 제2 부분에 대응하는 제2 영역 및 제1 레이아웃 블록의 경계 영역과 동일한 경계 영역을 포함한다. 예를 들어, 도 7c와 관련하여 설명한 바와 같이, 제2 레이아웃 블록(725)은 평면도의 제2 부분에 대응하는 제2 영역(E, F) 및 제1 레이아웃 블록(721)의 경계 영역과 동일한 경계 영역(C, D)을 포함한다.
동작(836)에서, 제1 레이아웃 블록과 제2 레이아웃 블록은 제1 레이아웃 블록의 경계 영역을 제2 레이아웃 블록의 동일한 경계 영역과 중첩함으로써 결합되어 회로의 레이아웃의 결합된 레이아웃 블록을 생성한다. 결합된 레이아웃 블록은 경계 영역의 양측부 상의 제1 영역 및 제2 영역을 포함한다. 예를 들어, 도 7c와 관련하여 설명한 바와 같이, 제1 레이아웃 블록(721) 및 제2 레이아웃 블록(725)은 제1 레이아웃 블록(721)의 경계 영역(727)을 제2 레이아웃 블록(725)의 동일한 경계 영역과 중첩함으로써 결합되어 회로의 레이아웃의 결합된 레이아웃 블록(728)을 생성한다. 결합된 레이아웃 블록(728)은 경계 영역(C, D)의 양측부 상의 제1 영역(A, B) 및 제2 영역(E, F)을 포함한다.
동작(838)에서, 회로의 레이아웃은 셀 라이브러리, 예를 들어, 도 1b의 적어도 하나의 라이브러리(133)에 저장되거나, 예를 들어, 도 1b의 동작(130 내지 170)과 관련하여 설명된 바와 같이, 회로를 포함하는 집적 회로(IC)에 대한 레이아웃을 생성하는 데 사용된다. 적어도 하나의 실시예에서, 여기에 설명된 하나 이상의 이점이 방법(800C)에 의해 달성될 수 있다.
도 8d는 일부 실시예에 따른 반도체 디바이스 또는 IC를 제조하는 방법(800D)의 흐름도이다.
방법(800D)은 예를 들어, 일부 실시예에 따라 EDA 시스템(900)(도 9, 아래에서 논의됨) 및 집적 회로(IC) 제조 시스템(1000)(도 10, 아래에서 논의됨)을 사용하여 구현 가능하다.
도 8d에서, 방법(800D)은 동작(892, 894)을 포함한다. 동작(892)에서, 특히, 본 명세서에 개시된 바와 같이 다양한 회로 등에 대한 하나 이상의 레이아웃을 포함하는 레이아웃도가 생성된다. 동작(892)은 일부 실시예에 따라, 예를 들어, EDA 시스템(900)(도 9, 아래에서 논의됨)을 사용하여 구현 가능하다. 동작(892)으로부터, 흐름은 블록(894)으로 진행한다.
동작(894)에서, 레이아웃도에 기초하여, 도 10과 관련하여 아래에 설명된 바와 같이, (A) 하나 이상의 포토리소그래피 노광이 수행되는 것, 또는 (B) 하나 이상의 반도체 마스크가 제조되는 것, 또는 (C) 반도체 디바이스의 층 내의 하나 이상의 컴포넌트가 제조되는 것 중 적어도 하나가 수행된다.
적어도 하나의 실시예에서, 설명된 동작들 중 하나 이상이 생략된다. 적어도 하나의 실시예에서, 설명된 동작 중 하나 이상이 결합된다. 적어도 하나의 실시예에서, 설명된 동작 중 하나 또는 일부 또는 전부는 적어도 하나의 프로세서에 의해 자동으로 수행된다.
설명된 방법은 예시 동작을 포함하지만, 이 동작들은 도시된 순서대로 수행될 필요는 없다. 동작들은 본 개시의 실시예의 정신 및 범위에 따라 적절히 추가, 대체, 순서 변화, 그리고/또는 제거될 수 있다. 상이한 피처 및/또는 상이한 실시예를 결합한 실시예는 본 개시의 범위 내에 있으며, 본 개시를 검토한 후에 당업자에게 명백할 것이다.
일부 실시예에서, 본 명세서에서 논의된 적어도 하나의 방법(들)은 적어도 하나의 EDA 시스템에 의해 전체적으로 또는 부분적으로 수행된다. 일부 실시예에서, EDA 시스템은 아래에서 논의되는 IC 제조 시스템의 설계 하우스의 일부로서 사용 가능하다.
도 9는 일부 실시예에 따른 전자 설계 자동화(electronic design automation; EDA) 시스템(900)의 블록도이다.
일부 실시예에서, EDA 시스템(900)은 자동 배치 및 라우팅(automatic placement and routing; APR) 시스템을 포함한다. 레이아웃도를 설계하는 본 명세서에 설명된 방법은 하나 이상의 실시예에 따른 와이어 라우팅 배열을 나타내며, 예를 들어, 일부 실시예에 따라 EDA 시스템(900)을 사용하여 구현 가능하다.
일부 실시예에서, EDA 시스템(900)은 하드웨어 프로세서(902) 및 비일시적 컴퓨터 판독 가능 저장 매체(904)를 포함하는 범용 컴퓨팅 디바이스이다. 특히 저장 매체(904)는 컴퓨터 프로그램 코드(906), 즉, 실행 가능한 명령어 세트로 인코딩되는데, 즉, 이 명령어 세트를 저장한다. 하드웨어 프로세서(902)에 의한 명령어(906)의 실행은 (적어도 부분적으로) 하나 이상의 실시예에 따라 여기에 설명된 방법(이하, 언급된 프로세스 및/또는 방법)의 일부 또는 전부를 구현하는 EDA 도구를 나타낸다.
프로세서(902)는 버스(908)를 통해 컴퓨터 판독 가능 저장 매체(904)에 전기적으로 결합된다. 프로세서(902)는 또한 버스(908)에 의해 I/O 인터페이스(910)에 전기적으로 결합된다. 네트워크 인터페이스(912)는 또한 버스(908)를 통해 프로세서(902)에 전기적으로 접속된다. 네트워크 인터페이스(912)는 네트워크(914)에 접속되어, 프로세서(902) 및 컴퓨터 판독 가능 저장 매체(904)가 네트워크(914)를 통해 외부 요소에 접속할 수 있다. 프로세서(902)는 시스템(900)으로 하여금 언급된 프로세스 및/또는 방법의 일부 또는 전부를 수행하는데 사용 가능하게 하기 위해 컴퓨터 판독 가능 저장 매체(904)에 인코딩된 컴퓨터 프로그램 코드(906)를 실행하도록 구성된다. 하나 이상의 실시예에서, 프로세서(902)는 중앙 프로세싱 유닛(central processing unit; CPU), 다중 프로세서, 분산 프로세싱 시스템, 주문형 집적 회로(application specific integrated circuit; ASIC), 및/또는 적절한 프로세싱 유닛이다.
하나 이상의 실시예에서, 컴퓨터 판독 가능 저장 매체(904)는 전자, 자기, 광학, 전자기, 적외선, 및/또는 반도체 시스템(또는 장치 또는 디바이스)이다. 예를 들어, 컴퓨터 판독 가능 저장 매체(904)는, 반도체 또는 솔리드 스테이트 메모리, 자기 테이프, 착탈식 컴퓨터 디스켓, 랜덤 액세스 메모리(random access memory; RAM), 판독 전용 메모리(read-only memory; ROM), 강성의(rigid) 자기 디스크, 및/또는 광디스크를 포함한다. 광디스크를 사용하는 하나 이상의 실시예에서, 컴퓨터 판독 가능 저장 매체(904)는 콤팩트디스크 판독 전용 메모리(compact disk-read only memory; CD-ROM), 콤팩트디스크 판독/기록(compact disk-read/write; CD-R/W), 및/또는 디지털 비디오 디스크(digital video disc; DVD)를 포함한다.
하나 이상의 실시예에서, 저장 매체(904)는 시스템(900)(이러한 실행이 (적어도 부분적으로) EDA 도구를 나타내는 경우)으로 하여금 언급된 프로세스 및/또는 방법의 일부 또는 전부를 수행하기 위해 사용 가능하게 하도록 구성된 컴퓨터 프로그램 코드(906)를 저장한다. 하나 이상의 실시예에서, 저장 매체(904)는 또한, 언급된 프로세스 및/또는 방법의 일부 또는 전부를 수행하는 것을 용이하게 하는 정보를 저장한다. 하나 이상의 실시예에서, 저장 매체(904)는 본 명세서에 개시된 이러한 표준 셀을 포함하는 표준 셀의 라이브러리(907)를 저장한다. 하나 이상의 실시예에서, 저장 매체(904)는 여기에 개시된 하나 이상의 레이아웃도를 저장한다.
EDA 시스템(900)은 I/O 인터페이스(910)를 포함한다. I/O 인터페이스(910)는 외부 회로에 결합된다. 하나 이상의 실시예에서, I/O 인터페이스(910)는 정보 및 명령을 프로세서(902)에 전달하기 위한 키보드, 키패드, 마우스, 트랙볼, 트랙 패드, 터치 스크린, 및/또는 커서 방향 키를 포함한다.
EDA 시스템(900)은 또한 프로세서(902)에 결합된 네트워크 인터페이스(912)를 포함한다. 네트워크 인터페이스(912)는 시스템(900)이 하나 이상의 다른 컴퓨터 시스템이 접속되는 네트워크(914)와 통신할 수 있게 한다. 네트워크 인터페이스(912)는, 예를 들어, 블루투스(BLUETOOTH), WIFI, WIMAX, GPRS, 또는 WCDMA와 같은 무선 네트워크 인터페이스; 또는 예를 들어, 이더넷(ETHERNET), USB, 또는 IEEE-2164와 같은 유선 네트워크 인터페이스를 포함한다. 하나 이상의 실시예에서, 언급된 프로세스 및/또는 방법의 일부 또는 전부는 둘 이상의 시스템(900)에서 구현된다.
시스템(900)은 I/O 인터페이스(910)를 통해 정보를 수신하도록 구성된다. I/O 인터페이스(910)를 통해 수신된 정보는 프로세서(902)에 의한 프로세싱을 위한 명령어, 데이터, 설계 규칙, 표준 셀의 라이브러리 및/또는 다른 파라미터 중 하나 이상을 포함한다. 정보는 버스(908)를 경유하여 프로세서(902)로 전달된다. EDA 시스템(900)은 I/O 인터페이스(910)를 통해 UI와 관련된 정보를 수신하도록 구성된다. 정보는 사용자 인터페이스(UI)(942)로서 컴퓨터 판독 가능 매체(904)에 저장된다.
일부 실시예에서, 언급된 프로세스 및/또는 방법의 일부 또는 전부는 프로세서에 의한 실행을 위한 독립형 소프트웨어 애플리케이션으로서 구현된다. 일부 실시예에서, 언급된 프로세스 및/또는 방법의 일부 또는 전부는 추가 소프트웨어 애플리케이션의 일부인 소프트웨어 애플리케이션으로서 구현된다. 일부 실시예에서, 언급된 프로세스 및/또는 방법의 일부 또는 전부는 소프트웨어 애플리케이션에 대한 플러그인으로서 구현된다. 일부 실시예에서, 언급된 프로세스 및/또는 방법 중 적어도 하나는 EDA 도구의 일부인 소프트웨어 애플리케이션으로서 구현된다. 일부 실시예에서, 언급된 프로세스 및/또는 방법의 일부 또는 전부는 EDA 시스템(900)에 의해 사용되는 소프트웨어 애플리케이션으로서 구현된다. 일부 실시예에서, 표준 셀을 포함하는 레이아웃도는 CADENCE DESIGN SYSTEMS, Inc.로부터 입수 가능한 VIRTUOSO®와 같은 도구 또는 또 다른 적절한 레이아웃 생성 도구를 사용하여 생성된다.
일부 실시예에서, 프로세스는 비일시적 컴퓨터 판독 가능한 기록 매체에 저장된 프로그램의 기능으로서 구현된다. 비일시적 컴퓨터 판독 가능한 기록 매체의 예는 외부의/탈착식 및/또는 내부의/빌트인 저장소 또는 메모리 유닛, 예를 들어, DVD와 같은 광학 디스크, 예를 들어, 하드 디스크와 같은 자기 디스크, 예를 들어, ROM, RAM, 메모리 카드 등과 같은 반도체 메모리를 포함하지만, 이에 제한되지 않는다.
도 10은 일부 실시예에 따른 집적 회로(IC) 제조 시스템(1000) 및 이와 연관된 IC 제조 흐름의 블록도이다. 일부 실시예에서, 레이아웃도에 기초하여, (A) 하나 이상의 반도체 마스크 또는 (B) 반도체 집적 회로의 층 내의 적어도 하나의 컴포넌트 중 적어도 하나가 제조 시스템(1000)을 사용하여 제조된다.
도 10에서 IC 제조 시스템(1000)은 IC(1060)를 제조하는 것과 관련된 설계, 개발, 및 제조 사이클 및/또는 서비스에서 서로 상호작용하는 설계 하우스(1020), 마스크 하우스(1030), 및 IC 제조업체/제조자("팹(fab)")(1050)와 같은 엔티티를 포함한다. 시스템(1000)의 엔티티는 통신 네트워크에 의해 접속된다. 일부 실시예에서, 통신 네트워크는 단일 네트워크이다. 일부 실시예에서, 통신 네트워크는 예를 들어, 인트라넷 및 인터넷과 같은 다양한 상이한 네트워크이다. 통신 네트워크는 유선 및/또는 무선 통신 채널을 포함한다. 각 엔티티는 하나 이상의 다른 엔티티와 상호 작용하고 하나 이상의 다른 엔티티에 서비스를 제공하고 그리고/또는 하나 이상의 다른 엔티티로부터 서비스를 수신한다. 일부 실시예에서, 설계 하우스(1020), 마스크 하우스(1030), 및 IC 팹(1050) 중 둘 이상은 하나의 대기업이 소유한다. 일부 실시예에서, 설계 하우스(1020), 마스크 하우스(1030), 및 IC 팹(1050) 중 둘 이상이 공통 설비에 공존하고 공통 리소스를 사용한다.
설계 하우스(또는 설계 팀)(1020)는 IC 설계 배치도(1022)를 생성한다. IC 설계 배치도(1022)는 IC(1060)를 위해 설계된 다양한 기하학적 패턴을 포함한다. 기하학적 패턴은 제조될 IC(1060)의 다양한 컴포넌트들을 구성하는 금속, 산화물, 또는 반도체층의 패턴에 대응한다. 다양한 층들은 다양한 IC 피처들을 형성하기 위해 결합한다. 예를 들어, IC 설계 레이아웃도(1022)의 일부는 (실리콘 웨이퍼와 같은) 반도체 기판 및 반도체 기판 상에 배치된 다양한 물질층에 형성될 활성 영역, 게이트 전극, 소스 및 드레인, 층간 상호접속의 금속 라인들 또는 비아들, 접합 패드를 위한 개구와 같은 다양한 IC 피처들을 포함한다. 설계 하우스(1020)는 IC 설계 배치도(1022)를 형성하기 위해 적절한 설계 절차를 구현한다. 설계 절차는 논리 설계, 물리적 설계, 또는 배치 및 라우팅 중 하나 이상을 포함한다. IC 설계 배치도(1022)는 기하학적 패턴의 정보를 가지는 하나 이상의 데이터 파일로 제시된다. 예를 들어, IC 설계 배치도(1022)는 GDSII 파일 포맷 또는 DFII 파일 포맷으로 표현될 수 있다.
마스크 하우스(1030)는 데이터 준비(1032) 및 마스크 제작(1044)을 포함한다. 마스크 하우스(1030)는 IC 설계 배치도(1022)에 따라 IC(1060)의 다양한 층을 제조하는 데 사용될 하나 이상의 마스크(1045)를 제조하기 위해 IC 설계 배치도(1022)를 사용한다. 마스크 하우스(1030)는 마스크 데이터 준비(1032)를 수행하며, 여기서 IC 설계 배치도(1022)는 대표 데이터 파일(representative data file; "RDF")로 변환된다. 마스크 데이터 준비(1032)는 마스크 제조(1044)에 RDF를 제공한다. 마스크 제조(1044)는 마스크 기록기를 포함한다. 마스크 기록기는 RDF를 예를 들어, 마스크(레티클)(1045) 또는 반도체 웨이퍼(1053)와 같은 기판 상의 이미지로 변환한다. 설계 배치도(1022)는 마스크 기록기의 특정 특성 및/또는 IC 팹(1050)의 요건에 따르기 위해 마스크 데이터 준비(1032)에 의해 조작된다. 도 10에서, 마스크 데이터 준비(1032) 및 마스크 제조(1044)는 별개의 요소로서 예시된다. 일부 실시예에서, 마스크 데이터 준비(1032) 및 마스크 제조(1044)는 총칭하여 마스크 데이터 준비로서 지칭될 수 있다.
일부 실시예에서, 마스크 데이터 준비(1032)는 예를 들어, 회절, 간섭, 기타 프로세스 효과 등으로부터 발생할 수 있는 것과 같은 이미지 오류를 보상하기 위해 리소그래피 향상 기술을 사용하는 광학 근접 보정(optical proximity correction; OPC)을 포함한다. OPC는 IC 설계 배치도(1022)를 조정한다. 일부 실시예에서, 마스크 데이터 준비(1032)는 예를 들어, 축외(off-axis) 조명, 서브-해상도 지원 피처(sub-resolution assist features), 위상 시프팅 마스크, 다른 적절한 기술 등 또는 이들의 결합과 같은 추가 해상도 향상 기술(resolution enhancement techniques; RET)을 더 포함한다. 일부 실시예에서, 역 리소그래피 기술(inverse lithography technology; ILT)이 또한 사용되며, 이는 OPC를 역 이미징 문제로 취급한다.
일부 실시예에서, 마스크 데이터 준비(1032)는 충분한 마진을 보장하기 위해 특정 기하학적 및/또는 접속성 제한을 포함하는 마스크 생성 규칙 세트를 사용해, OPC에서 프로세스를 거친 IC 설계 배치도(1022)를 검사하는 마스크 규칙 검사기(mask rule checker; MRC)를 포함하여, 반도체 제조 프로세스의 변동성 등을 처리한다. 일부 실시예에서, MRC는 마스크 제조(1044) 동안 포토리소그래피 구현 효과를 보상하기 위해 IC 설계 배치도(1022)를 수정하는데, 이는 마스크 생성 규칙을 충족하기 위해 OPC에 의해 수행된 수정의 일부를 취소할 수 있다.
일부 실시예에서, 마스크 데이터 준비(1032)는 IC(1060)를 제조하기 위해 IC 팹(1050)에 의해 구현될 프로세싱을 시뮬레이션하는 리소그래피 프로세스 검사(lithography process checking; LPC)를 포함한다. LPC는 예를 들어, IC(1060)와 같은 시뮬레이션된 제조된 디바이스를 생성하기 위해 IC 설계 배치도(1022)에 기초하여 이 프로세싱을 시뮬레이션한다. LPC 시뮬레이션에서 프로세싱 파라미터는 IC 제조 사이클의 다양한 프로세스와 연관된 파라미터, IC를 제조하기 위해 사용되는 도구와 연관된 파라미터, 및/또는 제조 프로세스의 다른 양상들을 포함할 수 있다. LPC는 공중 이미지 콘트라스트(aerial image contrast), 초점 심도(depth of focus; DOF), 마스크 오류 향상 인자(mask error enhancement factor; MEEF), 기타 적절한 인자 등과 같은 다양한 인자 또는 이들의 결합을 고려한다. 일부 실시예에서, 시뮬레이션된 제조된 디바이스가 LPC에 의해 생성된 후, 시뮬레이션된 디바이스가 설계 규칙을 충족하기에 형상적으로(in shape) 충분히 가깝지 않으면, OPC 및/또는 MRC가 반복되어 IC 설계 배치도(1022)를 더 정제한다(refine).
마스크 데이터 준비(1032)의 상기 설명은 명확성을 위해 간략화되었음을 이해해야 한다. 일부 실시예에서, 데이터 준비(1032)는 제조 규칙에 따라 IC 설계 배치도(1022)를 수정하기 위한 논리 연산(logic operation; LOP)과 같은 추가 피처를 포함한다. 추가적으로, 데이터 준비(1032) 동안 IC 설계 레이아웃도(1022)에 적용되는 프로세스는 다양한 상이한 순서로 실행될 수 있다.
마스크 데이터 준비(1032) 후 그리고 마스크 제조(1044) 동안, 마스크(1045) 또는 마스크 그룹(1045)은 수정된 IC 설계 레이아웃도(1022)에 기초하여 제조된다. 일부 실시예에서, 마스크 제조(1044)는 IC 설계 레이아웃도(1022)에 기초하여 하나 이상의 리소그래피 노광을 수행하는 것을 포함한다. 일부 실시예에서, 전자빔(e-beam) 또는 다중 전자빔의 메커니즘이 수정된 IC 설계 레이아웃도(1022)에 기초하여 마스크(포토마스크 또는 레티클)(1045) 상에 패턴을 형성하기 위해 사용된다. 마스크(1045)는 다양한 기술로 형성될 수 있다. 일부 실시예에서, 마스크(1045)는 바이너리 기술(binary technology)을 사용하여 형성된다. 일부 실시예에서, 마스크 패턴은 불투명한 영역들 및 투명한 영역들을 포함한다. 웨이퍼 상에 코팅된 이미지 민감 물질층(예컨대, 포토레지스트)을 노출하기 위해 사용되는 예를 들어, 자외선(ultraviolet; UV) 빔과 같은 방사선 빔이 불투명한 영역에 의하여 차단되고 투명한 영역을 통해 투과된다. 일 예시에서, 바이너리 마스크 버전의 마스크(1045)는 투명한 기판(예컨대, 용융 석영) 및 바이너리 마스크의 불투명한 영역에 코팅된 불투명한 물질(예컨대, 크롬)을 포함한다. 또 다른 예에서, 마스크(1045)는 위상 시프트 기술을 사용하여 형성된다. 위상 시프트 마스크(phase shift mask; PSM) 버전의 마스크(1045)에서, 위상 시프트 마스크 상에 형성된 패턴 내의 다양한 피처들이 해상도와 이미징 품질을 향상시키기 위하여 적절한 위상 차이를 가지도록 구성된다. 다양한 예시에서, 위상 시프트 마스크는 감쇠된(attenuated) PSM 또는 교번 PSM일 수 있다. 마스크 제조(1044)에 의해 생성된 마스크(들)는 다양한 프로세스에서 사용된다. 예를 들어, 이러한 마스크(들)는 반도체 웨이퍼(1053)에 다양한 도핑 영역을 형성하기 위한 이온 주입 프로세스에서, 반도체 웨이퍼(1053)에 다양한 에칭 영역을 형성하기 위한 에칭 프로세스에서, 그리고/또는 다른 적절한 프로세스에서 사용된다.
IC 팹(1050)은 다양한 상이한 IC 제품들의 제조를 위한 하나 이상의 제조 설비를 포함하는 IC 제조 사업이다. 일부 실시예에서, IC 팹(1050)은 반도체 파운드리이다. 예를 들어, 복수의 IC 생성물의 프론트엔드 제조를 위한 제조 설비(FEOL(front-end-of-line) 제조)가 있을 수 있는 한편, 제2 제조 설비는 IC 생성물의 상호접속 및 패키징을 위한 백엔드 제조(BEOL(back-end-of-line) 제조)를 제공할 수 있고, 제3 제조 설비는 파운드리 사업을 위한 다른 서비스를 제공할 수 있다.
IC 팹(1050)은, IC(1060)가 마스크(들), 예를 들어, 마스크(1045)에 따라 제조되도록 반도체 웨이퍼(1053) 상에서 다양한 제조 동작을 실행하도록 구성된 제조 도구(1052)를 포함한다. 다양한 실시예에서, 제조 도구(1052)는 웨이퍼 스테퍼, 이온 주입기, 포토레지스트 코팅기, 프로세스 챔버(예컨대, CVD 챔버 또는 LPCVD 퍼니스(furnace)), CMP 시스템, 플라즈마 에칭 시스템, 웨이퍼 세정 시스템, 또는 본 명세서에서 논의된 바와 같은 하나 이상의 적합한 제조 프로세스를 수행할 수 있는 다른 제조 장비 중 하나 이상을 포함한다.
IC 팹(1050)은 IC(1060)를 제조하기 위해 마스크 하우스(1030)에 의해 제조된 마스크(들)(1045)를 사용한다. 따라서, IC 팹(1050)은 IC(1060)를 제조하기 위해 적어도 간접적으로 IC 설계 레이아웃도(1022)를 사용한다. 일부 실시예에서, 반도체 웨이퍼(1053)는 IC(1060)를 형성하기 위해 마스크(들)(1045)를 사용하여 IC 팹(1050)에 의해 제조된다. 일부 실시예에서, IC 제조는 IC 설계 레이아웃도(1022)에 적어도 간접적으로 기초하여 하나 이상의 리소그래피 노출을 수행하는 것을 포함한다. 반도체 웨이퍼(1053)는 물질층이 그 위에 형성된 실리콘 기판 또는 다른 적절한 기판을 포함한다. 반도체 웨이퍼(1053)는 (후속 제조 단계에서 형성되는) 다양한 도핑 영역, 유전체 피처, 다중 레벨 상호접속부 등 중 하나 이상을 더 포함한다.
일부 실시예에서, 시스템은 프로세서, 및 프로세서에 접속된 비일시적 컴퓨터 판독 가능 저장 매체를 포함하고, 여기서 프로세서는 컴퓨터 판독 가능 저장 매체에 저장된 명령어를 실행하도록 구성된다. 프로세서는, 복수의 상이한 레이아웃 블록을 생성하는 단계; 복수의 레이아웃 블록 중에서, 회로의 평면도의 복수의 블록에 대응하는 레이아웃 블록을 선택하는 단계, 평면도에 따라 선택된 레이아웃 블록을 회로의 레이아웃으로 결합하는 단계; 및 회로의 레이아웃을 셀 라이브러리에 저장하거나 회로의 레이아웃을 사용하여 회로를 포함하는 집적 회로(IC)의 레이아웃을 생성하는 단계를 수행하도록 구성된다. 복수의 레이아웃 블록 각각은 미리 결정된 설계 규칙을 충족하고, 제1 레이아웃 피처와 연관된 복수의 상이한 제1 블록 옵션 중 적어도 하나, 및 제1 레이아웃 피처와는 다른 제2 레이아웃 피처와 연관된 복수의 상이한 제2 블록 옵션 중 적어도 하나를 포함한다.
일부 실시예에서, 회로의 평면도에 따라 회로에 대한 레이아웃을 생성하는 방법은 프로세서에 의해 적어도 부분적으로 수행된다. 평면도는 복수의 교번하는 게이트 블록 및 소스/드레인 블록과 연관된 복수의 네트를 포함한다. 이 방법은 평면도의 각각의 게이트 블록에 그리고 게이트 블록과 연관된 하나 이상의 네트에 기초하여, 복수의 미리 결정된 게이트 블록 옵션 중에서 하나 이상의 게이트 블록 옵션을 매핑하는 제1 매핑 단계를 포함한다. 이 방법은 또한, 평면도의 각각의 소스/드레인 블록에 그리고 소스/드레인 블록과 연관된 하나 이상의 네트에 기초하여, 복수의 미리 결정된 소스/드레인 블록 옵션 중에서 하나 이상의 소스/드레인 블록 옵션을 매핑하는 제2 매핑 단계를 포함한다. 이 방법은 또한, 각각 미리 결정된 설계 규칙을 충족하고 복수의 미리 결정된 게이트 블록 옵션 중 적어도 하나와 복수의 미리 결정된 소스/드레인 블록 옵션 중 적어도 하나를 포함하는 복수의 미리 결정된 레이아웃 블록으로부터, 상기 제1 매핑 단계 및 제2 매핑 단계에 의해 평면도 내의 복수의 교번하는 게이트 블록 및 소스/드레인 블록에 대응하게 매핑되는 교번하는 게이트 블록 옵션 및 소스/드레인 블록 옵션의 세트를 함께 포함하는 레이아웃 블록을 선택하는 단계를 포함한다. 이 방법은 또한, 평면도에 따라 선택된 레이아웃 블록을 회로의 레이아웃으로 결합하는 단계; 및 회로의 레이아웃을 셀 라이브러리에 저장하거나 회로의 레이아웃을 사용하여 회로를 포함하는 집적 회로(IC)에 대한 레이아웃을 생성하는 단계를 포함한다.
일부 실시예에서, 컴퓨터 프로그램 제품은 내부에 명령어를 포함하는 비일시적 컴퓨터 판독 가능 매체를 포함한다. 명령어는 실행될 때 프로세서로 하여금, 회로의 평면도에 따라 회로의 레이아웃을 생성하는 단계; 및 생성된 레이아웃을 셀 라이브러리에 저장하거나 생성된 레이아웃을 사용하여 회로를 포함하는 집적 회로(IC)에 대한 레이아웃을 생성하는 단계를 수행하게 한다. 레이아웃을 생성하는 단계는 제1 레이아웃 블록 및 제2 레이아웃 블록을 획득하는 단계를 포함한다. 제1 레이아웃 블록은 평면도의 제1 부분에 대응하는 제1 영역 및 경계 영역을 포함한다. 제2 레이아웃 블록은 평면도의 제2 부분에 대응하는 제2 영역 및 제1 레이아웃 블록의 경계 영역과 동일한 경계 영역을 포함한다. 레이아웃을 생성하는 단계는 또한, 제1 레이아웃 블록의 경계 영역을 제2 레이아웃 블록의 동일한 경계 영역과 중첩시킴으로써 제1 레이아웃 블록과 제2 레이아웃 블록을 결합하여, 회로의 레이아웃의 결합된 레이아웃 블록을 생성하는 단계를 포함한다. 결합된 레이아웃 블록은 경계 영역의 양측부 상의 제1 영역 및 제2 영역을 포함한다.
전술된 설명은, 당업자가 본 개시 내용의 양상을 더 잘 이해할 수 있도록 여러 실시예의 피처를 약술한다. 당업자는, 자신이 본 명세서에서 소개된 실시예의 동일한 목적을 수행하고 그리고/또는 동일한 이점을 달성하기 위한 다른 프로세스와 구조물을 설계 또는 수정하기 위한 기초로서 본 개시를 쉽게 사용할 수 있다는 것을 인식해야 한다. 또한, 당업자는 이러한 등가의 구성이 본 개시 내용의 취지 및 범위를 벗어나지 않으며, 본 개시 내용의 취지 및 범위를 벗어나지 않으면서 다양한 변화, 대체, 및 변경을 이룰 수 있음을 알아야 한다.
<부기>
1. 시스템에 있어서,
프로세서; 및
상기 프로세서에 결합된 비일시적 컴퓨터 판독 가능 저장 매체
를 포함하고, 상기 프로세서는 상기 컴퓨터 판독 가능 저장 매체에 저장된 명령어를 실행하여:
복수의 상이한 레이아웃 블록을 생성하는 것 - 상기 복수의 상이한 레이아웃 블록 각각은, 미리 결정된 설계 규칙을 충족하고,
제1 레이아웃 피처(feature)와 연관된 복수의 상이한 제1 블록 옵션(block options) 중 적어도 하나, 및
상기 제1 레이아웃 피처와는 상이한 제2 레이아웃 피처와 연관된 복수의 상이한 제2 블록 옵션 중 적어도 하나
를 포함함 -;
상기 복수의 상이한 레이아웃 블록 중에서, 회로의 평면도(floorplan)의 복수의 블록에 대응하는 레이아웃 블록을 선택하는 것;
상기 평면도에 따라 상기 선택된 레이아웃 블록을 상기 회로의 레이아웃으로 결합하는 것; 및
상기 회로의 상기 레이아웃을 셀 라이브러리에 저장하는 것 또는 상기 회로의 상기 레이아웃을 사용하여 상기 회로를 포함하는 집적 회로(integrated circuit; IC)에 대한 레이아웃을 생성하는 것
를 수행하도록 구성되는 것인, 시스템.
2. 제1항에 있어서,
상기 프로세서는 또한, 상기 컴퓨터 판독 가능 저장 매체에 저장된 상기 명령어를 실행하여:
상기 회로의 다수의 상이한 레이아웃을 생성하기 위해 상기 선택하는 것 및 상기 결합하는 것을 반복적으로 수행하고,
상기 회로의 상기 다수의 상이한 레이아웃을 상기 셀 라이브러리에 저장하도록
구성되는 것인, 시스템.
3. 제1항에 있어서,
상기 프로세서는 또한, 상기 컴퓨터 판독 가능 저장 매체에 저장된 상기 명령어를 실행하여:
상기 선택하는 것 및 상기 결합하는 것이 반복적으로 수행되는 완전 탐색(exhaustive search)을 수행하여 상기 회로의 모든 가능한 레이아웃을 생성하고,
상기 회로의 상기 모든 가능한 레이아웃을 상기 셀 라이브러리에 저장하도록
구성되는 것인, 시스템.
4. 제1항에 있어서,
상기 프로세서는 또한, 상기 컴퓨터 판독 가능 저장 매체에 저장된 상기 명령어를 실행하여:
상기 선택하는 것 및 상기 결합하는 것이 반복적으로 수행되는 깊이 우선 탐색(Depth-First-Search; DFS) 알고리즘을 실행하여 상기 회로의 다수의 상이한 레이아웃을 생성하고,
상기 회로의 상기 다수의 상이한 레이아웃을 상기 셀 라이브러리에 저장하도록
구성되는 것인, 시스템.
5. 제1항에 있어서,
상기 프로세서는 또한,
2개의 레이아웃 블록을 인접시키는 것; 또는
상기 2개의 레이아웃 블록의 동일한 경계 영역에서 상기 2개의 레이아웃 블록을 중첩시키는 것
에 의해 상기 선택된 레이아웃 블록 중에서 상기 2개의 레이아웃 블록을 결합하기 위해 상기 컴퓨터 판독가능 저장 매체에 저장된 상기 명령어를 실행하도록 구성되는 것인, 시스템.
6. 제1항에 있어서,
상기 제1 레이아웃 피처는 게이트 영역이고,
상기 제2 레이아웃 피처는 소스/드레인 접촉 영역인 것인, 시스템.
7. 제1항에 있어서,
상기 프로세서는 또한, 상기 컴퓨터 판독 가능 저장 매체에 저장된 상기 명령어를 실행하여 상기 복수의 상이한 제1 블록 옵션을 생성하도록 구성되고, 상기 복수의 상이한 제1 블록 옵션 각각은,
게이트 영역, 또는
상기 게이트 영역의 일부분을 절단하거나 디스에이블(disable)하도록 구성된 적어도 하나의 절단 영역(cut region), 또는
상기 게이트 영역 위의 적어도 하나의 제1 비아
중 적어도 하나와의 상기 게이트 영역의 결합
인 것인, 시스템.
8. 제1항에 있어서,
상기 프로세서는 또한, 상기 컴퓨터 판독 가능 저장 매체에 저장된 상기 명령어를 실행하여 상기 복수의 상이한 제2 블록 옵션을 생성하도록 구성되고, 상기 복수의 상이한 제2 블록 옵션 각각은,
소스/드레인 접촉 영역, 또는
상기 소스/드레인 접촉 영역의 일부분을 절단하도록 구성된 적어도 하나의 절단 영역, 또는
상기 소스/드레인 접촉 영역 위의 적어도 하나의 제2 비아
중 적어도 하나와의 상기 소스/드레인 접촉 영역의 결합
인 것인, 시스템.
9. 제1항에 있어서,
상기 프로세서는 또한, 상기 컴퓨터 판독 가능 저장 매체에 저장된 상기 명령어를 실행하여,
상기 복수의 상이한 레이아웃 블록을 생성하도록 구성되고, 상기 복수의 상이한 레이아웃 블록 각각은, 상기 미리 결정된 설계 규칙을 충족하고,
상기 제1 레이아웃 피처 및 상기 제2 레이아웃 피처와는 상이한 제3 레이아웃 피처와 연관된 복수의 상이한 제3 블록 옵션 중 적어도 하나를 더 포함하는 것인, 시스템.
10. 제9항에 있어서,
상기 프로세서는 또한, 상기 컴퓨터 판독 가능 저장 매체에 저장된 상기 명령어를 실행하여
상기 복수의 제3 블록 옵션을 생성하도록 구성되고, 상기 복수의 제3 블록 옵션 각각은, 금속층에서 전도성 패턴의 일부분을 절단하도록 구성된 적어도 하나의 절단 영역을 포함하는 것인, 시스템.
11. 회로의 평면도에 따라 상기 회로에 대한 레이아웃을 생성하는 방법에 있어서,
상기 평면도는 복수의 교번하는 게이트 블록 및 소스/드레인 블록과 연관된 복수의 네트(net)를 포함하고, 상기 방법은 프로세서에 의해 적어도 부분적으로 수행되며, 상기 방법은,
상기 평면도의 각각의 게이트 블록에 그리고 상기 게이트 블록과 연관된 하나 이상의 네트에 기초하여, 복수의 미리 결정된 게이트 블록 옵션 중에서 하나 이상의 게이트 블록 옵션을 매핑하는 제1 매핑 단계;
상기 평면도의 각각의 소스/드레인 블록에 그리고 상기 소스/드레인 블록과 연관된 하나 이상의 네트에 기초하여, 복수의 미리 결정된 소스/드레인 블록 옵션 중에서 하나 이상의 소스/드레인 블록 옵션을 매핑하는 제2 매핑 단계;
각각이 미리 결정된 설계 규칙을 충족하고 상기 복수의 미리 결정된 게이트 블록 옵션 중 적어도 하나 및 상기 복수의 미리 결정된 소스/드레인 블록 옵션 중 적어도 하나를 포함하는 것인 복수의 미리 결정된 레이아웃 블록으로부터, 상기 제1 매핑 단계 및 상기 제2 매핑 단계에 의해, 상기 평면도 내의 상기 복수의 교번하는 게이트 블록 및 소스/드레인 블록에 대응하게 매핑되는 교번하는 게이트 블록 옵션 및 소스/드레인 블록 옵션의 세트를 함께 포함하는 레이아웃 블록을 선택하는 단계;
상기 평면도에 따라 상기 선택된 레이아웃 블록을 상기 회로의 레이아웃으로 결합하는 단계; 및
상기 회로의 상기 레이아웃을 셀 라이브러리에 저장하는 단계 또는 상기 회로의 상기 레이아웃을 사용하여 상기 회로를 포함하는 집적 회로(IC)에 대한 레이아웃을 생성하는 단계
를 포함하는 것인, 회로에 대한 레이아웃을 생성하는 방법.
12. 제11항에 있어서,
상기 제1 매핑 단계 및 상기 제2 매핑 단계는 또한, 미리 결정된 LVS(layout-versus-schematic) 규칙에 기초하는 것인, 회로에 대한 레이아웃을 생성하는 방법.
13. 제11항에 있어서,
상기 복수의 미리 결정된 게이트 블록 옵션 각각은,
게이트 영역, 또는
상기 게이트 영역의 일부분을 절단하거나 디스에이블하도록 구성된 적어도 하나의 제1 절단 영역,
상기 게이트 영역 위의 적어도 하나의 제1 비아, 또는
상기 게이트 영역 위에서 그리고 금속층의 전도성 패턴의 일부분을 절단하도록 구성된 적어도 하나의 제2 절단 영역
중 적어도 하나와의 상기 게이트 영역의 결합
인 것인, 회로에 대한 레이아웃을 생성하는 방법.
14. 제11항에 있어서,
상기 복수의 미리 결정된 소스/드레인 블록 옵션 각각은,
소스/드레인 접촉 영역, 또는
상기 소스/드레인 접촉 영역의 일부분을 절단하도록 구성된 적어도 하나의 제1 절단 영역,
상기 소스/드레인 접촉 영역 위의 적어도 하나의 비아, 또는
상기 소스/드레인 접촉 영역 위에서 그리고 금속층의 전도성 패턴의 일부분을 절단하도록 구성된 적어도 하나의 제2 절단 영역
중 적어도 하나와의 상기 소스/드레인 접촉 영역의 결합
인 것인, 회로에 대한 레이아웃을 생성하는 방법.
15. 제11항에 있어서,
상기 복수의 미리 결정된 게이트 블록 옵션 각각은 상기 미리 결정된 설계 규칙을 충족하고,
상기 복수의 미리 결정된 소스/드레인 블록 옵션 각각은 상기 미리 결정된 설계 규칙을 충족하는 것인, 회로에 대한 레이아웃을 생성하는 방법.
16. 명령어를 포함하는 비일시적 컴퓨터 판독 가능 매체를 포함하는 컴퓨터 프로그램 제품에 있어서, 상기 명령어는 프로세서에 의해 실행될 때 상기 프로세서로 하여금,
회로의 평면도에 따라 상기 회로의 레이아웃을 생성하는 단계; 및
상기 생성된 레이아웃을 셀 라이브러리에 저장하는 단계 또는 상기 생성된 레이아웃을 사용하여 상기 회로를 포함하는 집적 회로(IC)에 대한 레이아웃을 생성하는 단계
를 수행하게 하고,
상기 레이아웃을 생성하는 단계는:
제1 레이아웃 블록 및 제2 레이아웃 블록을 획득하는 단계 -
상기 제1 레이아웃 블록은,
상기 평면도의 제1 부분에 대응하는 제1 영역, 및
경계 영역
을 포함하고,
상기 제2 레이아웃 블록은,
상기 평면도의 제2 부분에 대응하는 제2 영역, 및
상기 제1 레이아웃 블록의 상기 경계 영역과 동일한 경계 영역
을 포함함 -; 및
상기 제1 레이아웃 블록의 상기 경계 영역을 상기 제2 레이아웃 블록의 상기 동일한 경계 영역과 중첩시킴으로써 상기 제1 레이아웃 블록과 상기 제2 레이아웃 블록을 결합하여, 이로써 상기 회로의 상기 레이아웃의 결합된 레이아웃 블록을 생성하는 단계
를 포함하며,
상기 결합된 레이아웃 블록은, 상기 경계 영역의 양 측부 상의 상기 제1 영역 및 상기 제2 영역을 포함하는 것인, 컴퓨터 프로그램 제품.
17. 제16항에 있어서,
상기 경계 영역은 상기 평면도의 제3 부분에 대응하고,
상기 제3 부분은, 상기 평면도에서 상기 제1 부분과 상기 제2 부분 사이에 있고 상기 제1 부분 및 상기 제2 부분에 인접하며,
상기 경계 영역은, 상기 회로의 상기 레이아웃의 상기 결합된 레이아웃 블록에서 제1 영역과 제2 영역 사이에 있고 상기 제1 영역 및 상기 제2 영역에 인접한 것인, 컴퓨터 프로그램 제품.
18. 제16항에 있어서,
상기 제1 레이아웃 블록 및 상기 제2 레이아웃 블록을 획득하는 단계는,
각각이 미리 결정된 설계 규칙을 충족하는 것인 복수의 미리 결정된 상이한 레이아웃 블록 중에서 상기 제1 레이아웃 블록 또는 상기 제2 레이아웃 블록 중 적어도 하나를 선택하는 단계
를 포함하는 것인, 컴퓨터 프로그램 제품.
19. 제16항에 있어서,
상기 제1 레이아웃 블록 및 상기 제2 레이아웃 블록을 획득하는 단계는,
각각이 미리 결정된 설계 규칙을 충족하는 것인 복수의 미리 결정된 상이한 레이아웃 블록 중에서, 상기 제2 영역이 상기 제2 레이아웃 블록의 추가 경계 영역을 포함하고 제3 레이아웃 블록의 추가 경계 영역과 동일하도록, 상기 제2 레이아웃 블록을 선택하는 단계
를 포함하고,
상기 제3 레이아웃 블록은 또한, 상기 평면도의 제3 부분에 대응하는 제3 영역을 포함하고,
상기 레이아웃을 생성하는 단계는 또한,
상기 제2 레이아웃 블록의 상기 추가 경계 영역을 상기 제3 레이아웃 블록의 상기 동일한 추가 경계 영역과 중첩시킴으로써 상기 결합된 레이아웃 블록과 상기 제3 레이아웃 블록을 결합하여, 이로써 상기 회로의 상기 레이아웃의 추가 결합된 레이아웃 블록을 생성하는 단계
를 포함하며,
상기 추가 결합된 레이아웃 블록은, 상기 추가 경계 영역의 양 측부 상의 상기 제2 영역 및 상기 제3 영역을 포함하는 것인, 컴퓨터 프로그램 제품.
20. 제19항에 있어서,
상기 경계 영역은 상기 평면도의 제4 부분에 대응하고,
상기 제1 부분, 상기 제4 부분, 상기 제2 부분, 및 상기 제3 부분은, 상기 평면도에서 서로 인접하며,
상기 제1 영역, 상기 경계 영역, 상기 제2 영역, 및 상기 제3 영역은, 상기 회로의 상기 레이아웃의 상기 추가 결합된 레이아웃 블록에서 서로 인접한 것인, 컴퓨터 프로그램 제품.

Claims (10)

  1. 시스템에 있어서,
    프로세서; 및
    상기 프로세서에 결합된 비일시적 컴퓨터 판독 가능 저장 매체
    를 포함하고, 상기 프로세서는 상기 컴퓨터 판독 가능 저장 매체에 저장된 명령어를 실행하여:
    복수의 상이한 레이아웃 블록을 생성하는 것 - 상기 복수의 상이한 레이아웃 블록 각각은, 미리 결정된 설계 규칙을 충족하고,
    제1 레이아웃 피처(feature)와 연관된 복수의 상이한 제1 블록 옵션(block options) 중 적어도 하나, 및
    상기 제1 레이아웃 피처와는 상이한 제2 레이아웃 피처와 연관된 복수의 상이한 제2 블록 옵션 중 적어도 하나
    를 포함함 -;
    상기 복수의 상이한 레이아웃 블록 중에서, 회로의 평면도(floorplan)의 복수의 블록에 대응하는 레이아웃 블록을 선택하는 것;
    상기 평면도에 따라 상기 선택된 레이아웃 블록을 상기 회로의 레이아웃으로 결합하는 것; 및
    상기 회로의 상기 레이아웃을 셀 라이브러리에 저장하는 것 또는 상기 회로의 상기 레이아웃을 사용하여 상기 회로를 포함하는 집적 회로(integrated circuit; IC)에 대한 레이아웃을 생성하는 것
    를 수행하도록 구성되는 것인, 시스템.
  2. 제1항에 있어서,
    상기 프로세서는 또한, 상기 컴퓨터 판독 가능 저장 매체에 저장된 상기 명령어를 실행하여:
    상기 회로의 다수의 상이한 레이아웃을 생성하기 위해 상기 선택하는 것 및 상기 결합하는 것을 반복적으로 수행하고,
    상기 회로의 상기 다수의 상이한 레이아웃을 상기 셀 라이브러리에 저장하도록
    구성되는 것인, 시스템.
  3. 제1항에 있어서,
    상기 프로세서는 또한, 상기 컴퓨터 판독 가능 저장 매체에 저장된 상기 명령어를 실행하여:
    상기 선택하는 것 및 상기 결합하는 것이 반복적으로 수행되는 완전 탐색(exhaustive search)을 수행하여 상기 회로의 모든 가능한 레이아웃을 생성하고,
    상기 회로의 상기 모든 가능한 레이아웃을 상기 셀 라이브러리에 저장하도록
    구성되는 것인, 시스템.
  4. 제1항에 있어서,
    상기 프로세서는 또한, 상기 컴퓨터 판독 가능 저장 매체에 저장된 상기 명령어를 실행하여:
    상기 선택하는 것 및 상기 결합하는 것이 반복적으로 수행되는 깊이 우선 탐색(Depth-First-Search; DFS) 알고리즘을 실행하여 상기 회로의 다수의 상이한 레이아웃을 생성하고,
    상기 회로의 상기 다수의 상이한 레이아웃을 상기 셀 라이브러리에 저장하도록
    구성되는 것인, 시스템.
  5. 제1항에 있어서,
    상기 프로세서는 또한,
    2개의 레이아웃 블록을 인접시키는 것; 또는
    상기 2개의 레이아웃 블록의 동일한 경계 영역에서 상기 2개의 레이아웃 블록을 중첩시키는 것
    에 의해 상기 선택된 레이아웃 블록 중에서 상기 2개의 레이아웃 블록을 결합하기 위해 상기 컴퓨터 판독가능 저장 매체에 저장된 상기 명령어를 실행하도록 구성되는 것인, 시스템.
  6. 제1항에 있어서,
    상기 프로세서는 또한, 상기 컴퓨터 판독 가능 저장 매체에 저장된 상기 명령어를 실행하여 상기 복수의 상이한 제1 블록 옵션을 생성하도록 구성되고, 상기 복수의 상이한 제1 블록 옵션 각각은,
    게이트 영역, 또는
    상기 게이트 영역의 일부분을 절단하거나 디스에이블(disable)하도록 구성된 적어도 하나의 절단 영역(cut region), 또는
    상기 게이트 영역 위의 적어도 하나의 제1 비아
    중 적어도 하나와의 상기 게이트 영역의 결합
    인 것인, 시스템.
  7. 제1항에 있어서,
    상기 프로세서는 또한, 상기 컴퓨터 판독 가능 저장 매체에 저장된 상기 명령어를 실행하여 상기 복수의 상이한 제2 블록 옵션을 생성하도록 구성되고, 상기 복수의 상이한 제2 블록 옵션 각각은,
    소스/드레인 접촉 영역, 또는
    상기 소스/드레인 접촉 영역의 일부분을 절단하도록 구성된 적어도 하나의 절단 영역, 또는
    상기 소스/드레인 접촉 영역 위의 적어도 하나의 제2 비아
    중 적어도 하나와의 상기 소스/드레인 접촉 영역의 결합
    인 것인, 시스템.
  8. 제1항에 있어서,
    상기 프로세서는 또한, 상기 컴퓨터 판독 가능 저장 매체에 저장된 상기 명령어를 실행하여,
    상기 복수의 상이한 레이아웃 블록을 생성하도록 구성되고, 상기 복수의 상이한 레이아웃 블록 각각은, 상기 미리 결정된 설계 규칙을 충족하고,
    상기 제1 레이아웃 피처 및 상기 제2 레이아웃 피처와는 상이한 제3 레이아웃 피처와 연관된 복수의 상이한 제3 블록 옵션 중 적어도 하나를 더 포함하는 것인, 시스템.
  9. 회로의 평면도에 따라 상기 회로에 대한 레이아웃을 생성하는 방법에 있어서,
    상기 평면도는 복수의 교번하는 게이트 블록 및 소스/드레인 블록과 연관된 복수의 네트(net)를 포함하고, 상기 방법은 프로세서에 의해 적어도 부분적으로 수행되며, 상기 방법은,
    상기 평면도의 각각의 게이트 블록에 그리고 상기 게이트 블록과 연관된 하나 이상의 네트에 기초하여, 복수의 미리 결정된 게이트 블록 옵션 중에서 하나 이상의 게이트 블록 옵션을 매핑하는 제1 매핑 단계;
    상기 평면도의 각각의 소스/드레인 블록에 그리고 상기 소스/드레인 블록과 연관된 하나 이상의 네트에 기초하여, 복수의 미리 결정된 소스/드레인 블록 옵션 중에서 하나 이상의 소스/드레인 블록 옵션을 매핑하는 제2 매핑 단계;
    각각이 미리 결정된 설계 규칙을 충족하고 상기 복수의 미리 결정된 게이트 블록 옵션 중 적어도 하나 및 상기 복수의 미리 결정된 소스/드레인 블록 옵션 중 적어도 하나를 포함하는 것인 복수의 미리 결정된 레이아웃 블록으로부터, 상기 제1 매핑 단계 및 상기 제2 매핑 단계에 의해, 상기 평면도의 상기 복수의 교번하는 게이트 블록 및 소스/드레인 블록에 대응하게 매핑되는 교번하는 게이트 블록 옵션 및 소스/드레인 블록 옵션의 세트를 함께 포함하는 레이아웃 블록을 선택하는 단계;
    상기 평면도에 따라 상기 선택된 레이아웃 블록을 상기 회로의 레이아웃으로 결합하는 단계; 및
    상기 회로의 상기 레이아웃을 셀 라이브러리에 저장하는 단계 또는 상기 회로의 상기 레이아웃을 사용하여 상기 회로를 포함하는 집적 회로(IC)에 대한 레이아웃을 생성하는 단계
    를 포함하는 것인, 회로에 대한 레이아웃을 생성하는 방법.
  10. 명령어를 포함하는 비일시적 컴퓨터 판독 가능 매체에 있어서, 상기 명령어는 프로세서에 의해 실행될 때 상기 프로세서로 하여금,
    회로의 평면도에 따라 상기 회로의 레이아웃을 생성하는 단계; 및
    상기 생성된 레이아웃을 셀 라이브러리에 저장하는 단계 또는 상기 생성된 레이아웃을 사용하여 상기 회로를 포함하는 집적 회로(IC)에 대한 레이아웃을 생성하는 단계
    를 수행하게 하고,
    상기 레이아웃을 생성하는 단계는:
    제1 레이아웃 블록 및 제2 레이아웃 블록을 획득하는 단계 -
    상기 제1 레이아웃 블록은,
    상기 평면도의 제1 부분에 대응하는 제1 영역, 및
    경계 영역
    을 포함하고,
    상기 제2 레이아웃 블록은,
    상기 평면도의 제2 부분에 대응하는 제2 영역, 및
    상기 제1 레이아웃 블록의 상기 경계 영역과 동일한 경계 영역
    을 포함함 -; 및
    상기 제1 레이아웃 블록의 상기 경계 영역을 상기 제2 레이아웃 블록의 상기 동일한 경계 영역과 중첩시킴으로써 상기 제1 레이아웃 블록과 상기 제2 레이아웃 블록을 결합하여, 이로써 상기 회로의 상기 레이아웃의 결합된 레이아웃 블록을 생성하는 단계
    를 포함하며,
    상기 결합된 레이아웃 블록은, 상기 경계 영역의 양 측부 상의 상기 제1 영역 및 상기 제2 영역을 포함하는 것인, 비일시적 컴퓨터 판독 가능 매체.
KR1020230118833A 2022-09-13 2023-09-07 집적 회로 설계 방법, 시스템 및 컴퓨터 프로그램 제품 KR20240036476A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202263375415P 2022-09-13 2022-09-13
US63/375,415 2022-09-13
US18/170,111 US20240086609A1 (en) 2022-09-13 2023-02-16 Integrated circuit design method, system and computer program product
US18/170,111 2023-02-16

Publications (1)

Publication Number Publication Date
KR20240036476A true KR20240036476A (ko) 2024-03-20

Family

ID=90054726

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230118833A KR20240036476A (ko) 2022-09-13 2023-09-07 집적 회로 설계 방법, 시스템 및 컴퓨터 프로그램 제품

Country Status (3)

Country Link
US (1) US20240086609A1 (ko)
KR (1) KR20240036476A (ko)
DE (1) DE102023116053A1 (ko)

Also Published As

Publication number Publication date
TW202411874A (zh) 2024-03-16
US20240086609A1 (en) 2024-03-14
DE102023116053A1 (de) 2024-03-14

Similar Documents

Publication Publication Date Title
US11768991B2 (en) Pin access hybrid cell height design
US20220075922A1 (en) System and computer program product for integrated circuit design
US11893334B2 (en) Method for optimizing floor plan for an integrated circuit
US12014131B2 (en) Integrated circuit and method of forming same and a system
US12009356B2 (en) Integrated circuit and method of forming the same
US12093625B2 (en) Integrated circuit design method, system and computer program product
US20240201727A1 (en) Clock signal distribution system, integrated circuit device and method
US20240160826A1 (en) Conductor scheme selection and track planning for mixed-diagonal-manhattan routing
US20230403868A1 (en) Method of manufacturing integrated circuit device
US20230376660A1 (en) Integrated circuit design method, system and computer program product
US20230237234A1 (en) Integrated circuit design method, system and computer program product
TWI852470B (zh) 積體電路設計方法、系統以及電腦程式產品
US20240086609A1 (en) Integrated circuit design method, system and computer program product
CN117371380A (zh) 集成电路设计方法、系统和计算机程序产品