KR102423040B1 - 3차원 집적회로 디자인을 생성하는 방법 - Google Patents

3차원 집적회로 디자인을 생성하는 방법 Download PDF

Info

Publication number
KR102423040B1
KR102423040B1 KR1020170107012A KR20170107012A KR102423040B1 KR 102423040 B1 KR102423040 B1 KR 102423040B1 KR 1020170107012 A KR1020170107012 A KR 1020170107012A KR 20170107012 A KR20170107012 A KR 20170107012A KR 102423040 B1 KR102423040 B1 KR 102423040B1
Authority
KR
South Korea
Prior art keywords
design
layer
2dic
inter
3dic
Prior art date
Application number
KR1020170107012A
Other languages
English (en)
Other versions
KR20180025210A (ko
Inventor
사우라브 피주스쿠마르 신하
장경욱
브라이언 트레이시 클라인
에빈 레이니 서덜랜드 주니어
Original Assignee
에이알엠 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에이알엠 리미티드 filed Critical 에이알엠 리미티드
Publication of KR20180025210A publication Critical patent/KR20180025210A/ko
Application granted granted Critical
Publication of KR102423040B1 publication Critical patent/KR102423040B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3315Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • 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
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

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

Abstract

3D 집적회로(3DIC)의 디자인을 생성하는 방법은, 3DIC에 대해서 요구되는 디자인 기준에 따라 생성되는 2D 집적회로(2DIC)의 디자인의 제1 데이터 표현으로부터 적어도 하나의 디자인 특성을 추출하는 것을 포함한다. 3DIC의 구성요소는 추출된 디자인 특성에 따라 그룹으로 구획된다(각각은 3DIC의 한 계층을 나타낸다). 계층간 비아의 위치를 나타내는 계층간 비아 포트와 함께 3DIC 디자인의 하나의 계층에 대한 구성요소 그룹을 각각 포함하는 인접한 다수의 파티션을 포함하는 2DIC 디자인의 제2 데이터 표현이 생성된다. 각 파티션의 배치는, 원래의 제1 데이터 표현으로 표현되는 2DIC의 대응하는 구성요소의 배치와는 별도로 결정된다. 이러한 접근 방식은 3DIC의 디자인에 2DIC EDA 툴을 사용할 수 있게 한다.

Description

3차원 집적회로 디자인을 생성하는 방법{METHOD FOR GENERATING THREE-DIMENSIONAL INTEGRATED CIRCUIT DESIGN}
본 기술은 집적회로의 분야에 관한 것이다. 특히, 본 발명은 3차원 집적회로의 디자인을 생성하는 방법에 관한 것이다.
계층간 비아(inter-tier vias)를 사용하여 접속되는 능동소자 및 인터커넥트층의 다중 계층을 포함하는 3차원 집적회로(3DIC)에 대한 관심이 증가하고 있다. 3D 집적은 3DIC의 서로 다른 계층의 접속장치를 통한 계층간 비아의 신호 전달 지연이 일반적으로 동일한 계층 위의 상이한 장치들을 연결하는 종래의 인터커넥트 경로와 관련된 지연보다 적기 때문에 개선된 성능을 제공할 수 있다.
적어도 일부 예는 소정의 디자인 기준에 따라 3차원 집적회로(3DIC)의 디자인을 생성하는 컴퓨터 구현 방법을 제공하며, 상기 3차원 집적회로는 계층간 비아에 의해 접속된 복수의 계층의 능동소자들을 포함하고, 상기 방법은,
상기 소정의 디자인 기준에 따라 생성된 2차원 집적회로(2DIC)의 디자인의 제1 데이터 표현(first data representation)으로부터 적어도 하나의 디자인 특성을 추출하는 단계 - 상기 2DIC는 하나의 계층의 능동소자를 포함하고 - ;
상기 3DIC의 구성요소를, 상기 제1 데이터 표현으로부터 추출된 상기 적어도 하나의 디자인 특성에 근거하여 복수의 구성요소 그룹으로 구획하는 단계 - 각 구성요소 그룹은 상기 복수의 계층 중 하나에 대응하며 - ; 및
서로 인접하여 위치된 복수의 파티션을 포함하는 2DIC의 디자인의 제2 데이터 표현을 생성하는 단계 - 각 파티션은 3DIC의 대응하는 계층을 나타내고, 대응하는 계층을 위한 구성요소 그룹 및 대응하는 계층을 또 다른 계층에 접속하기 위한 계층간 비아의 위치를 나타내는 계층간 비아 포트를 포함하며-;를 구비하고, 상기 제1 데이터 표현으로 나타낸 상기 2DIC에서의 대응하는 구성요소의 배치와는 별도로 및 상기 배치와는 관계없이 상기 제2 데이터 표현에서 나타낸 상기 2DIC의 디자인에서 주어진 파티션에 대한 구성요소 그룹의 배치가 결정된다.
적어도 일부의 예는 상술한 방법을 수행하도록 컴퓨터를 제어하기 위한 컴퓨터 프로그램을 저장하는 비일시적인 기록매체를 제공한다.
적어도 일부 실시 예는 상술한 방법을 수행하기 위한 처리회로를 포함하는 장치를 제공한다.
본 기술의 다른 국면, 특징 및 이점은 첨부 도면과 관련하여 판독되는 실시 예에 대한 다음의 설명으로부터 명백해질 것이다.
도 1은 2차원 집적회로(2DIC)의 일례를 개략적으로 도시한 것이다.
도 2는 3차원 집적회로(3DIC)의 일례를 개략적으로 도시한 것이다.
도 3은 2DIC 디자인을 위해 설계된 전자 디자인 자동화 (EDA) 툴을 사용하여 3DIC의 디자인을 생성하는 방법을 나타내는 흐름도이다.
도 4는 2DIC의 대응하는 디자인으로부터 추출된 디자인 특성에 근거하여, 3DIC의 각 계층에 대응하는 그룹으로 구성요소를 구획하는 예를 도시한 것이다.
도 5는 3DIC의 하나의 계층 위의 구성요소의 그룹의 임시 배치를 결정하고 계층간 비아의 위치를 식별하는 예를 도시한 것이다.
도 6은 3DIC 디자인의 또 다른 계층에서 계층간 비아의 대응하는 위치를 식별하는 예를 도시한 것이다.
도 7은 계층간 비아의 위치에 근거하여 다른 계층에 대한 임시 배치를 결정하는 예를 도시한 것이다.
도 8은 3DIC의 대응하는 계층을 나타내는 각 파티션으로 서로 인접하여 위치된 파티션을 포함하는 2DIC 디자인에서 계층간 비아 포트의 위치를 고정하는 예를 도시한 것이다.
도 9는 더미 인터커넥션과 계층간 비아 포트를 접속하는 예를 도시한 것이다.
도 10은 디자인에 있어서 더미 인터커넥션을 실제의 인터커넥션과 연결하기 위한 계층간 비아 포트의 위치에 앵커 셀을 배치하는 예를 도시한 것이다.
도 11은 타이밍 요건에 대한 디자인을 테스트하기 위해 타이밍 분석의 대상이 될 수 있는 2D 형태의 제2 데이터 표현에 의해 표현된 3DIC 디자인의 예를 도시한 것이다.
도 1은 종래의 2D 집적회로(2DIC)(2)의 일 예의 단면도를 나타내는데, 이것은 반도체 기판(6) 위의 능동소자 및 인터커넥트의 단일 계층(single tier)(4)을 구비한다. 능동소자는 트랜지스터 또는 게이트와 같이, 전자의 흐름을 제어할 수 있는 디바이스이다. 이들은 기판 (6) 위에 직접 형성되어 있다. 능동소자(7) 사이의 수평 접속(X 방향 또는 Z 방향 중 어느 한 방향)을 제공하기 위한 다수의 금속 인터커넥트(8)의 층들과, 인터커넥트의 층들 사이를 연결하기 위한 비아(9)가, 활성층(active layer) 위에 설치되어 있다. 금속 인터커넥트와 비아는 도 1에서 ILD0 ~ ILD4b로 적힌 계층간 유전체로 둘러싸여 있다. 도 1은 X, Y 및 Z 축을, 지면을 가리키는 3차원에 해당하는 Z축으로 나타낸다. 도 1에는 칩에 전력을 공급 및 신호를 보내기 위한 C4 범프에 연결된 높은 금속 스택이 표시되어 있지 않다. 이들도 설치될 수 있다는 것을 이해할 것이다. 도 1은 4개의 금속층(M1-M4) 및 금속층 사이를 연결하기 위한 그에 대응하는 비아(V0-V3)를 갖는 집적회로 스택의 일례를 도시한 것이다. 이 예에서, 금속 인터커넥트층(M1 및 M3)은 X 방향으로 움직이고, M2 및 M4는 Z 방향으로 움직인다.
대조적으로, 도 2는 2개 이상의 계층의 능동소자(14)와 Y 방향으로 겹쳐서 적층된 인터커넥트층을 구비하는 3D 집적회로(10)(3DIC)의 예를 도시한 것이다. 이 예에서는 "상부"와 "하부"이라는 두 개의 계층이 있다. 각각의 계층(tier)은 능동소자(트랜지스터)(15)의 층 및 다수의 금속층(M1 내지 M4) 및 비아층(V0 내지 V3)을 구비한다. 상부 및 하부 계층은, 이 실시 예에서는 하부 계층의 가장 높은 인터커넥트층(M4)을 상부 계층의 가장 낮은 인터커넥트층(M1)과 연결하는, 계층간 비아(16)를 사용하여 접속된다. 다시, 이 예에서는, 상부 및 하부 계층의 금속층(M1 및 M3)은 X 방향으로 진행하고 양 계층의 M2 및 M4는 Z 방향으로 라우팅된다. 대응하는 금속층이 양 계층에서 동일한 방향으로 진행될 필요는 없다는 것을 이해할 것이다. 다시, 칩에 전력을 공급 및 신호(입력 / 출력) 전달을 위한 C4 범프는 간결성을 위해 도면에 도시되어 있지 않다.
3DIC를 제작하는 데 이용할 수 있는 다양한 기술이 있다. 하나의 기술에 있어서는, 대응하는 능동소자 및 금속 인터커넥트로 개별적으로 각각 구속된 2개 이상의 사전 제작된 다이(dies)는, 이들이 결합된 후에 다이 사이에 계층간 통신을 제공하는 다이 중 하나 또는 둘 모두에 미리 제작된 관통 실리콘 비아(through-silicon via)(TSV)와, 제조 후에 함께 결합될 수 있다. 이러한 접근법에 의하면, 다이는 개별적으로 제조된 후 나중에 정렬되므로 다이 사이의 상대적인 위치 설정에 약간의 허용 오차가 요구되기 때문에, 다이 사이의 적절한 정렬을 보장하기 위해는 TSV가 비교적 크다(예를 들어, 직경 약 10㎛).
보다 세분화된 기술에 있어서는, 능동소자 및 인터커넥트를 포함하도록 개별적으로 처리된 각각의 실리콘 웨이퍼는 본딩된 웨이퍼를 다이에 패키징하기 전에 웨이퍼 - 웨이퍼 결합에 의해 함께 결합될 수 있다. 이 접근법은 예를 들면 직경이 0.5-1㎛ 범위인 더 작은 직경의 계층간 비아를 사용할 수 있다.
또 다른 접근법은 공통 처리 기술로 하나의 기판 위에 여러 계층의 능동소자 및 인터커넥트를 층별로 구축하는 순차 처리 기법을 사용하는 것이다. 예를 들어, 초기 기판은 능동소자 및 인터커넥트의 제1 계층을 제공하도록 처리될 수 있고, 그 다음에 처리된 웨이퍼는 얇은 유전층으로 덮일 수 있다. 그 다음 실리콘의 에피택셜층이 이전의 유전체층의 상부에서 성장되고, 능동소자 및 인터커넥트의 제2 계층을 제공하도록 처리된다. 능동소자와 인터커넥트의 제2 계층은 초기 층과 동일한 제조 장비를 사용하여 처리됨에 따라, 그것은 하부 층에 높은 정렬 정밀도로 처리될 수 있는데 이것은 훨씬 더 좁은 계층간 비아를 사용할 수 있음을 의미한다. 이러한 더 좁은 계층간 비아는 모놀리식 계층간 비아(MIV)라고 불릴 수 있으며, 예를 들어, 약 100nm 이하의 직경을 가질 수 있다. 능동소자 및 인터커넥트의 제2 계층을 증착한 후에, 더 글로벌 인터커넥트층이 추가될 수 있고, 그 다음에 소자가 반도체 다이에의 추가 패키징을 위해 준비될 수 있다.
따라서, 다양한 3D 통합 기술을 사용할 수 있으며, 본 기술은 이러한 기술 중 하나와 함께 사용될 수 있다. 일반적으로, 3DIC라는 용어는 계층간 비아 (inter-tier vias)를 사용하여 접속된 2개 이상의 계층의 능동소자를 포함하는 집적회로를 지칭하는데 사용된다. 계층간 비아는 TSV(through silicon vias) 또는 MIV(monolithic inter-tier vias)와 같은 대체명으로도 알려질 수 있다. 계층간 비아의 크기는 위에서 설명한 것처럼 크기가 다양할 수 있으며, 계층간 비아의 크기와 밀도/피치는 어떤 레벨에서 회로 디자인이 계층으로 구획될 수 있는지에 영향을 미칠 수 있다. 상대적으로 큰 계층간 비아를 사용하는 3DIC의 경우, 대형 매크로 블록(예 : 프로세서 코어, 캐시 등)을 별도의 계층으로 구획하는 데 유용할 수 있다. 예를 들어, 멀티 코어 SoC (System-On-Chip) 디자인에서는, 하나의 프로세서 코어가 상부 계층에 있고 다른 프로세서 코어는 하부 계층에 있을 수 있다. 한편, 순차 처리 기술에 사용되는 서브마이크론 비아와 같은 작은 계층간 비아를 사용하면, 단일 프로세서 내의 구성요소를 두 개 이상의 계층으로 구획할 수 있다. 따라서, 층들 간의 구획은 전체 프로세싱 코어의 레벨에서 수행하거나 표준 셀, 개별 표준 셀, 또는 트랜지스터 레벨에서 수행할 수 있다.
도 2는 두 개의 계층이 있는 예를 나타내지만, 현재의 기술은 3개 이상의 계층을 갖는 3DIC에도 적용될 수 있다는 것을 인식할 것이다. 또한, 도 2는 계층(14)이 페이스-투-백(face-to-back)으로 적층되는, 즉 하부 계층의 기판의 앞면(능동소자가 형성된 기판의 측면)이 상부 계층의 기판의 뒷면(기판 위에 형성된 능동소자를 갖지 않는 기판의 측면)을 향하는 예를 나타낸 것이다. 다른 3DIC 기술에서는, 계층을 페이스-투-페이스 또는 백-투-백으로 적층할 수 있다. 예를 들어, 페이스-투-페이스 배치에 있어서는, 도 2에 도시된 상부 계층은, 효과적으로 금속층 M4_TOP이 금속층 M4_BOT에 가장 가깝도록, X축에 대해서 플립(flipped)될 것이다. 백-투-백 배치에 있어서는, 각각의 기판의 뒷면이 서로 마주보도록(즉, 이 경우에 M1_BOT가 M1_TOP에 가장 가까운 것이다), 하부 계층이 X축에 대해서 플립될 것이다. 따라서, 본 기술은 도 2의 예에 도시된 바와 같이 페이스-투-백(face-to-back) 적층(stacking)에 한정되지 않는다는 것을 알 수 있을 것이다.
집적회로 디자인이 점점 더 복잡해지면서(예를 들면, 수백만 또는 수십억 개의 트랜지스터가 있을 수 있기 때문에), 사람 디자이너가 정확한 트랜지스터 레벨 레이아웃을 지정하는 것은 일반적으로 실용적이지 않기 때문에, 집적회로의 디자인은 컴퓨터에서 실행되는 전자 디자인 자동화(EDA) 툴로 알려진 소프트웨어 툴을 사용하여 일반적으로 수행된다. EDA 툴은 디자인에 통합하기 위해서 사용할 수 있는 "표준 셀"이라고 알려진 반도체 부품의 기본 블록의 데이터베이스를 제공하는 표준 셀 라이브러리에 의해 지원될 수 있다. 예를 들어, 표준 셀 정의는 특정 기능을 제공하기 위해서 디자인에 포함될 트랜지스터 및 입출력 접속의 레이아웃을 지정할 수 있다. 디자인에 의해 충족되어야 할 제약 또는 타겟 등의 디자인 기준, 디자인에 의해 제공될 기능, 또는 포함될 로직 게이트와 같은 구성요소의 보다 상세한 사양이 제공되면, EDA 툴은 그러한 기준을 충족시키기 위한 셀들을 셀 라이브러리로부터 선택하고, 이들 셀의 배치를 결정하며, 필요한 기능을 제공하기 위해 각각의 셀들 사이의 접속을 제공하는 라우팅을 수행한다. 그런 다음 예를 들어, 디자인에 대한 타이밍 분석을 수행하여 디자인이 다양한 타이밍 요건을 충족하는지 확인함으로써, 배치 및 라우팅된 디자인을 테스트할 수 있다. 예를 들어, 디자인 내에서 신호 전파 지연을 테스트하여 디자인에 의해 전파되는 클럭 신호에 비해 충분한 시간 동안 데이터 신호가 디자인의 일부에 도달하는지 여부를 확인함으로써 셋업을 피하거나 위반사항을 파악할 수 있다. 디자인이 타이밍 요건을 충족하면, 디자인이 생산을 위해 승인될 수 있지만 디자인이 실패하면 예를 들어 타이밍 요건을 충족시키기 위해 신호를 지연시키는 추가 버퍼를 포함하도록 디자인을 수정할 수 있다.
그러나, 대부분의 기존 EDA 툴은 2DIC 전용으로 설계되었으며 3DIC 디자인을 지원하지 않는다. 맞춤형 3DIC EDA 툴을 제공하는 것은 상당한 양의 추가 개발이 필요하므로 비용이 많이 들기 때문에 고가일 것이다. 따라서, 3DIC의 디자인을 돕기 위해 기존 2DIC EDA 툴을 재사용하는 것이 바람직할 수 있다. 하나의 접근법은 3DIC에 필요한 디자인 기준에 따라 간단히 2DIC 디자인을 생성하고, 그 다음에 상부 계층에 배치되어 있는 2DIC 디자인의 절반에 있는 디바이스와 3DIC의 하부 계층에 있는 2DIC 디자인의 나머지 절반에 있는 디바이스로 2DIC에 대해 결정된 배치를 반으로 간단히 분할하는 것일 수도 있다.
그러나 2DIC 회로에 대해 결정된 배치는, 3DIC의 각 계층 간의 특성을 고려하지 않기 때문에 3DIC의 각 계층 간의 디바이스를 가장 효율적으로 구획하는 방법이 아닐 수 있으며(예를 들어, 하부 계층은 상부 계층에서 더 효율적인 열적 소실이 있을 수 있기 때문에 상부 계층보다 더 열적 영향을 받을 수 있다), 더 긴 (따라서 느린) 수평 배선과 대조적으로 계층간 비아의 사용을 통해 가능한 잠재적 개선을 고려할 수 없다. 또한, 두 개의 개별 3D 계층으로 분할할 때 2DIC에 대해 결정된 배치는, 효율적인 계층간 접속을 허용하지 않을 수 있는데, 그 이유는 서로 접속되어야 하는 각 계층의 디바이스가 사실상 수평(X 또는 Z) 차원에서 멀리 떨어져 있을 수 있기 때문에, 계층간 비어의 사용에도 불구하고 비교적 긴 수평 배선에 대한 요구가 여전히 존재할 수 있기 때문이다.
도 3은 2DIC 디자인을 위한 EDA 툴을 사용하여 3DIC용 디자인을 생성하는 방법의 예를 도시하는 흐름도이다. 이 방법은, 맞춤형 툴을 개발하는 데 드는 비용을 절약하기 위해서, 3DIC 디자인을 생성하는 것뿐만 아니라 3DIC의 디자인을 테스트하기 위한 타이밍 분석을 수행하는 데에도 기존 2DIC 툴을 사용할 수 있다. 생성되고 있는 디자인은 3DIC용이지만, 2DIC EDA 툴을 사용하여 디자인될 때 이 방법으로 생성된 디자인의 데이터 표현(data representation)은 여전히 2D 형태이며, 3DIC 디자인은 각 파티션이 3DIC 디자인의 해당 계층을 나타내는 2DIC 디자인에서 다수의 인접한 파티션을 사용하여 표현된다. 그럼에도 불구하고, 3DIC의 제조 중에 EDA 툴에 의해 출력되는 2DIC 데이터 표현의 대응하는 파티션에 의해 지정된 레이아웃에 근거하여 디자인의 각각의 개별 계층이 제조될 수 있다.
대체로, 이 방법은 디자인 인식 구획 단계(20), 계층간 비아 계획 단계(22), 3D 구현 단계(24), 및 선택적으로 타이밍 분석 단계(26)를 포함하는 다수의 단계를 구비한다. 다른 예에 있어서는, 타이밍 분석 단계(26)는, 디자인 프로세스의 후반 단계에서 디자인을 검증하기 위해 별도의 타이밍 분석 툴을 사용할 수 있으므로, 생략될 수도 있다.
디자인 인식 구획 단계(20)에 있어서는, 적어도 하나의 디자인 특성은 최종 3DIC 디자인에 대해서 충족되어야 하는 동일한 디자인 기준에 따라 생성된 2DIC용 디자인의 제1 데이터 표현으로부터 추출된다. 추출된 디자인 특성에 근거하여, 3DIC 디자인의 구성요소는 다수의 구성요소 그룹으로 구획되며, 각각의 구성요소 그룹은 3DIC 디자인의 계층 중의 하나에 대응한다. 그 다음, 계층간 비아 계획 단계(22) 및 3D 구현 단계(24)에 있어서는, 서로 인접하여 위치된 다수의 파티션을 포함하는 2DIC용 디자인의 제2 데이터 표현이 생성되고, 각 파티션은 3DIC의 대응하는 계층을 나타내고, 대응하는 계층에 대한 단계 20에서 구획되었던 구성요소 그룹을 포함한다. 계층간 비아 계획 단계(22)는 3DIC 디자인의 각 계층에 대한 계층간 비아 위치를 결정하고, 그 다음 3D 구현 단계(24)는 계획 단계(22)에서 설정된 계층간 비아 위치에 근거하여, 각각의 파티션에 대한 구성요소 그룹의 배치를 결정한다. 단계 24에서 결정된 배치는 구획 단계(20)에서 고려된 제1 데이터 표현에 의해 표현된 원래의 2DIC의 대응하는 구성요소의 배치와는 별도로 결정된다.
이 접근법은 이전 기술에 비해 몇 가지 장점이 있다. 3DIC의 구성요소를 각 계층에 해당하는 그룹으로 구획하기 위해서, 대응하는 2DIC 디자인의 디자인 특성을 추출하여 사용하기 때문에, 예를 들면, 디자인의 모듈 간의 접속성, 더 적은 크리티컬 패스(critical path)보다 우선적으로 처리되어 하는 디자인 내부의 크리티컬 패스의 식별, 또는 디자인 내의 기능 모듈의 열적 작용과 같은 요인들을 고려한 개선된 구획이 결정될 수 있다. 해당 2DIC의 특성을 인식하여 구성요소를 계층으로 구획하면, 원래의 2DIC에서 해당 구성요소 배치와 관계없는, 소정의 계층의 구성요소의 별도의 배치가 결정된다. 따라서, EDA 툴은 앞에서 설명한 대체 접근법과 같이 원래의 2DIC 디자인의 해당 부분에 배치된 것과 동일한 위치에 디바이스의 구성요소를 남겨 두는 것에만 국한되는 것이 아니라, 서로 상호 작용하는 모듈 간의 인터커넥션의 길이를 줄임으로써 성능을 향상시키는 데 도움이 될 수 있는 위치에 구성요소의 각 구획된 그룹을 자유롭게 배치한다.
또한, 3DIC 디자인을 나타내는 구획된 2DIC 디자인의 제2 데이터 표현을 생성하는 스텝을 계층간 비아 계획 단계(22)와 3D 구현 단계(24)로 분리함으로써, 최종 배치의 효율성을 더 향상시킬 수 있다. 계층간 비아 계획 단계(22)는 디자인 인식 구획 단계(20)에서 고려된 제1 데이터 표현으로 표현된 2DIC보다 더 작은 면적을 갖는 단일 계층 2DIC 디자인에서 구성요소 그룹의 임시 배치를 초기에 생성할 수도 있다. 그런 다음 그 임시 배치를 사용하여 계층간 비아의 위치를 식별할 수 있다. 어떤 경우에는, 디자인 중의 하나 이상의 계층이 계층간 비아 계획 단계에서 배치되어 라우팅될 수 있으며 프로세스는 2개 이상의 계층에 대한 임시 배치가 결정된 후 하나의 계층에 대해 결정된 배치가 다른 계층에 대해 결정된 배치로부터 추출된 특성에 근거하여 맞춰지는 경우에 반복적일 수 있어, (예를 들어, 특정 크리티컬 패스와 관련된 처리 지연을 줄임으로써) 점차적으로 계층간 비아의 위치를 개선하여 디자인을 보다 효율적으로 만들 수 있다. 계획 단계(22)에서 계층간 비아의 위치를 고정하면, 3D 구현 단계(24)는 이들 계층간 비아의 고정된 위치를 참조하여 2DIC 디자인의 각 파티션의 배치를 결정할 수 있다. 따라서 단계 24에서 EDA 툴은 계획 단계(22)에서 임시 배치에 제약을 받는 것이 아니라, 고정된 계층간 비아 위치를 참조하여 주어진 계층의 구성요소의 배치를 더 개선할 수 있다. 예를 들어, 일단 계층간 비아 위치가 고정되면, 계획 단계(22)에서 고려된 임시 배치는 더 이상 특정 계층에 대해 가장 효율적인 배치가 될 수 없고(다른 계층에 근거하여 결정된 계층간 비아 위치에서의 절충에 의해 주어진 계층의 배치를 업데이트하는 것이 더 효율적일 수 있기 때문에), 그래서 3D 구현 단계(24)에서 새로운 배치를 결정함으로써, 디자인을 보다 효율적으로 만들 수 있다.
도 3에 도시된 프로세스의 각 단계가 이제 더 상세히 설명될 것이다.
디자인 인식 구획 20
도 3에 도시된 바와 같이, 디자인 인식 구획 단계(20)에서, 2DIC 디자인은 최종 3DIC 디자인에 의해 충족되도록 요구된 소정의 디자인 기준에 따라 스텝 30에서 구현된다. 예를 들어, 디자인 기준은, 제공될 디자인의 기능 및 디자인에 의해 충족되어야 하는 디자인 제약 또는 타겟을 지정할 수도 있다(예를 들어, RTL을 사용하여 정의된다). 2D 디자인은 임의의 공지된 기술을 사용하여 표준 2D EDA 툴을 사용하여 구현될 수 있다. 따라서, EDA 툴은 2DIC의 디자인을 나타내는 제1 데이터 표현을 생성한다. 이 2DIC는 단일 계층이 아니게 설계되도록 전체 3DIC에 해당하는 기능을 포함한다. 따라서, 제1 데이터 표현에 의해 표현된 2DIC 디자인의 전체 면적은 전형적으로 3DIC 디자인의 최종 면적보다 크다.
스텝 32에서, 3DIC 디자인의 계층에 대응하는 그룹으로 디자인의 구성요소의 구획을 안내하기 위해, 2DIC 디자인의 제1 데이터 표현으로부터 하나 이상의 디자인 특성이 추출된다. 또한, 스텝 34에서, 2D 구현 스텝 30으로의 입력으로서 사용된 디자인의 기능적 동작의 또 다른 표현 또는 RTL로부터, 또는 스텝 30에서 생성된 2D 디자인의 데이터 표현으로부터, 각각의 구성요소(예를 들어, 디자인 모듈 또는 기능 블록) 간의 접속 수를 나타내는 접속 정보가 추출될 수 있다. 스텝 36에서는, 스텝 32에서 추출된 접속 정보 및 디자인 특성은, 예를 들어 RTL에 의해 표현된 3DIC의 구성요소를 2개 이상의 구성요소 그룹(예를 들어, 2계층 3DIC 디자인에 대한 상부 그룹 및 하부 그룹)으로 구획하는 데 사용되고, 각 그룹은 3DIC 디자인의 계층들 중의 하나에 해당한다.
예를 들어, 스텝 32에서 추출된 디자인 특성은 다음 중 어느 하나를 포함할 수 있다.
1. 합성 후 매핑된 게이트의 논리 기능.
2. 디자인에서의 네트(nets)의 크기(주어진 출력 노드가 얼마나 많은 입력 노드에 공급되는지, 또는 얼마나 많은 후속 노드가 주어진 출력 노드의 출력에 의존하는지의 관점에서 표현될 수 있는 디자인에서의 신호의 팬아웃의 표시).
3. 크리티컬 패스의 타이밍 정보 및 크리티컬 패스를 포함하는 기능 블록.
4. 각 기능 블록의 면적.
5. 각 기능 블록 쌍 간의 접속 수.
6. 예를 들면, 금속 인터커넥트층이 이용되는, 각 신호 접속에서 와이어 리소스 이용.
7. 기능 모듈의 열적 및 활성 (전력 소비) 프로파일.
2D 구현으로부터 얻은 디자인 정보 지식을 사용하여, RTL은 스텝 36에서 별도의 구성요소 그룹으로 구획되어 디자인 특성을 고려한 보다 효율적인 구획을 제공할 수 있다. 또한, 스텝 36에서의 구획은 3DIC가 실제로 제조될 수 있는 방식을 제한하는 적어도 하나의 3DIC 제조 프로세스 제약도 고려할 수 있다. 예를 들어, 처리 제한은 3DIC 디자인의 특정 계층에 포함될 수 있는 이용 가능한 금속층의 수를 제한하거나, 특정 계층에 배치된 디바이스가 상이한 계층에 배치된 경우와 비교하여 성능을 저하시켰을 수도 있다는 것을 명시할 수 있고, 그래서 이러한 프로세스 제약 구획 결정에 포함시킴으로써, 구성요소의 그룹으로의 전체적인 분할이 개선될 수 있다.
예를 들어, 스텝 36에서의 구획은 다음 목적들 중의 임의의 하나 이상을 충족시킬 수 있다 :
1. 다수의 크리티컬 타이밍 패스가 있는 기능 블록을 별도의 그룹/계층에 배치한다.
2. 신호 피드백이 있는 기능 모듈은 별도의 그룹/계층에 배치되어야 한다.
3. 상부 및 하부 그룹/계층 간의 접속 수를 최대화한다.
4. 글로벌 금속층(예를 들어, M5 이상)을 가로지르는 신호는 구획을 위한 후보이다. 하부 계층의 네트에 대해서, 긴 와이어와 관련된 버퍼가 있는 경우, 상부 계층에 배치한다(목적 1-4는 모두 계층간 비아 접속이 계층간 접속보다 더 빠를 가능성이 있는 특성을 이용한다).
5. 높은 열적/활성 프로파일이 있는 블록을 상부 계층에 배치한다(더 나은 열 소실이 있을 수 있다).
6. 디바이스가 성능 저하된 계층에 비크리티컬 패스(non-critical path)를 배치한다.
7. 더 많은 금속층이 있는 계층에 큰 네트를 배치한다.
8. 상부 및 하부 그룹/계층 위의 면적의 균형유지(회로 면적을 보다 효율적으로 사용하려면, 빈 면적이 큰 하나의 계층을 피하여 전체 면적을 줄일 수 있다).
경우에 따라, 이러한 구획은 이들 목적 중의 몇몇의 균형을 맞추는 것을 목적으로 할 수 있다. 예를 들어, 이러한 구획은 얼마나 많은 목적이 달성되는지 및/또는 어느 정도 목적이 달성되는지에 따라(예를 들어, 열적 프로파일이 높은 디바이스가 상부 계층에 배치되었는지 여부와 같은 정성적 표시, 또는 상부 계층과 하부 계층 사이를 지나가는 접속 수와 같은 정성적 표시에 근거하여), 파티션 품질 스코어를, 주어진 구성요소를 그룹으로 분할하는 것에 할당할 수 있다. 이 툴은 구성요소를 그룹으로 분할하는 다수의 상이한 옵션에 대한 파티션 품질 스코어를 계산한 후에 가장 높은 스코어를 제공하는 그룹핑을 선택할 수 있다. 목적 중의 일부는 상호 배타적일 수 있으므로, 결국 선택한 그룹핑은 여러 목적의 절충안이 될 수 있다.
예를 들어, 도 4는 상기에 표시된 목적 1, 3 및 8을 충족시키는 디자인 인식 구획의 경우를 나타낸다. 도 4의 부분 A는 주어진 디자인의 다수의 모듈 A 내지 F를 도시하고, 스텝 30에서 결정된 디자인의 2D 구현에 근거하여 모듈 A 및 B 사이에 크리티컬 패스가 존재하는 것으로 식별된다. 또한, 각 모듈 간의 접속 수를 결정한다. 이것은 부분 A에서 번호가 매겨진 화살표를 이용해서 일례로서 예시된다. 예를 들어, 모듈 F는 모듈 E로부터 4개의 입력 접속을 받지만, 모듈 E는 모듈 D로부터 하나의 접속을 받는다.
따라서, 크리티컬 패스에 수반된 블록을 별도의 그룹/계층에 배치해야 한다는 요건을 충족시키기 위해, 블록 A와 B는 서로 다른 계층에 고정되어 있는 반면 다른 블록 C ~ F는 상부 그룹 또는 하부 그룹에 자유롭게 할당된다. 이 예에 있어서, 상부 그룹에 블록 D 및 F를 할당하고 하부 그룹에 C 및 E를 할당함으로써, 각 계층에 대한 균형이 잡힌 회로 면적을 유지하면서 계층 간을 가로지르는 타이밍 패스의 수를 최대화할 수 있다. 실제의 집적회로는 실제로 6개 이상의 모듈을 가질 수 있다는 것을 이해할 것이다.
구획을 결정하기 위한 추가 기준은 두 개 이상의 모듈로 구성된 그룹 간의 접속을 확인할 수 있다. 예를 들어, 3개의 모듈 A, B, C가 A → B → C와 같이 접속되면, 모듈 A와 C는 명시적 접속이 없지만, 모듈 B를 통해 암시적으로 접속되므로, 모듈 A와 C의 상대적 배치를 고려하는 것도 유용할 수 있다. 중간 모듈 B를 그룹 중의 하나 또는 다른 그룹에 먼저 배치한 다음 이를 이용하여 B에 접속된 모듈 A 및 C를 배치해야 하는 위치를 안내하면, 더 효율적으로 구획할 수 있다. 예를 들어, 모듈 B를 상부 그룹에 할당하고 모듈 A와 C를 하부 그룹에 할당할 수 있으므로 A에서 B까지의 접속과 B에서 C까지의 접속은 계층 사이를 가로지른다. 이것은 일반적으로 계층간 통신이 종종 단일 계층 내에서 수평으로 이동하는 배선보다도 빠를 것이라는 사실을 이용한다.
상기의 예에서는 모듈 레벨에서 3DIC의 구성요소를 그룹으로 구분하는 것에 대해 설명했지만(각 모듈은 예를 들어 일련의 논리 기능을 구현하는 표준 셀의 그룹에 해당한다), 표준 셀 또는 트랜지스터 레벨에서와 같이 더 정교한 레벨에서 디자인을 구분하는 것도 가능하다. 따라서 그룹으로 구분된 구성요소는 표준 셀 또는 트랜지스터일 수도 있다.
계층간 비아 계획 22
계층간 비아 계획 단계(22)에서, 3DIC 디자인을 위한 계층간 비아의 위치가 결정된다. 스텝 40에서, 스텝 30에서 제1 데이터 표현에 의해 표현된 원래의 2D 디자인보다 더 작은 칩 면적을 이용하는 신규 2DIC 디자인에 대해서는, 주어진 계층들 중의 하나의 계층에 대해 구획 단계(20)에서 결정된 구성요소 그룹의 배치 및 라우팅이 결정된다. 예를 들어, 3DIC가 2개의 계층을 갖는 경우, 스텝 40에서 형성된 2DIC 디자인은 원래의 2D 칩 면적의 50%를 사용할 수 있으며, 상부 또는 하부 계층이 먼저 배치될 수 있다. 예를 들어, 도 4의 예에 도시된 모듈 A 내지 F의 구획을 이용하여, 도 5는 도 4의 상부 그룹에 할당된 구성요소 A, D, F의 그룹을 이용하여 상부 계층의 임시 배치를 결정하는 예를 나타낸다. 이 배치는, 3D 구현 단계(24)에서 다시 상부 계층에서의 해당 구성요소의 실제 배치가 결정되므로 임시 배치이다. 임시 배치는 최종 칩 디자인을 결정하지 않고 계층간 비아 위치를 고정하기 위한 목적으로 이루어진다. 도 3의 스텝 42에서, 상부 및 하부 계층들 간의 접속(계층간 비아)은 입출력(I/O) 핀(44)(도 5 참조)으로서 모델링된다. 그러나, I/O 핀 포트가 디자인의 주변부에 배치되는 종래의 2D 디자인과 달리, 스텝 42에서 I/O 핀(44)은 설계되어 있는 계층의 구성요소 A, D, F의 구동 또는 수신 셀(46) 위의 위치에 배치된다.
도 6에 도시된 바와 같이, 도 3의 스텝 48에서, 스텝 42에서 결정된 계층간 비아 위치(44)는 3DIC 디자인의 인접한 계층에 대응하는 신규 디자인에서 대응하는 계층간 비아 위치(50)를 설정하는데 사용된다. 다른 계층은 스텝 30에서 구현된 2DIC 디자인에 비하여 회로 면적이 줄어든, (먼저 배치된 계층의 디자인과 관련 없는) 별도의 2DIC 디자인으로서 표현된다. 도 6의 예에 도시된 바와 같이, 페이스-투-백 3DIC 기술에 있어서, 제2 계층에서의 계층간 비아 위치(50)의 좌표는 전형적으로 스텝 42에서 결정된 제1 층에서의 대응하는 계층간 비아 위치(44)와 동일할 것이다. 그러나, 이것은 필수적인 것은 아니다. 예를 들어, 페이스-투-백 또는 백-투-백 3DIC 구현의 경우, 계층들 중의 하나는 다른 계층에 대해 플립(flipped)될 수 있으므로, 본질적으로 한 계층에 대해 결정된 I/O 포트 위치는 다른 계층에서 미러링될 수 있으므로 그들은 더 이상 같은 좌표를 갖지 않는다.
일부 구현에서는, 두 계층 디자인 중의 한 계층만, 또는 2 이상의 계층을 갖는 3DIC 디자인의 계층들 중의 일부만 배치하고 라우팅하는 것으로 충분할 수 있다. 예를 들어, 나머지 계층의 계층간 비아 위치는 연결된 다른 계층에 대해 결정된 배치를 참조하여 간단히 고정될 수 있다. 그러나, 이로 인해 계층간 비아 위치가 가장 효율적이지 않을 수도 있다.
반복적인 접근 방식을 사용하면 보다 효율적인 디자인을 달성할 수 있다. 따라서, 스텝 48에서 계층간 비아 위치(50)를 고정시킨 후, EDA 툴은 또 다른 계층에 대해 이미 결정된 계층간 비아의 위치를 모델링하는 I/O 포트(50)의 고정된 위치를 참조하여 또 다른 계층의 구성요소를 배치하고 라우팅할 수 있다. EDA 배치 툴은 타이밍 지연을 줄이기 위해 I/O 핀에 접속된 셀을 핀 자체의 물리적 위치에 가깝게 배치하는 경향이 있으므로, I/O 핀을 사용하여 계층간 비아 위치를 모델링하면, 주어진 계층간 비아에 접속되는 구성요소는 그 비아 근처에 위치될 가능성이 증가한다. 예를 들어, 도 7의 예에서, 하부 그룹이 구현되고, 상부 그룹에 대한 접속을 갖는 기능 모듈 B, C, E 및 그들의 각각의 표준 셀이 대응하는 계층간 비아 위치에 근접하여 배치된다. 하부 그룹을 배치하고 라우팅하면, 상부 그룹의 배치로부터 고정된 계층간 비아 위치가 구성요소의 하부 그룹을 가장 효율적으로 배치할 수 없다는 것을 알 수 있다. 따라서, 하부 그룹의 배치로부터 추출한 특성을 이용하여 상부 그룹 배치를 개선하여 계층간 비아의 위치를 조정할 수 있다. 따라서, 도 3의 점선 52로 도시된 바와 같이, 프로세스는 반복적일 수 있으며, 여기서 각각의 계층을 배치 및 라우팅하는 많은 시도가 이루어지며, 하나의 계층의 배치로부터 알게 되는 특성이 또 다른 계층의 배치를 개선하는데 사용되며, 결국 모든 계층 전체에 걸쳐 효율적인 배치를 가능하게 하는 계층간 비아의 위치에 도달하게 된다.
도 5 내지 도 7 및 도 3은 상부 그룹에서 시작하는 계층간 비아 위치가 결정되는 예를 도시하지만, 하위 그룹 또는 어떤 다른 계층에서 시작하거나, 또는 상기에서 논의된 바와 같이 양 그룹을 반복적으로 구현할 수도 있다.
3D 구현 단계(24)에 대해 도 8에 도시된 바와 같이, 고정된 계층간 비아 위치 및 구성요소의 대응하는 구분된 그룹을 포함하여 개별적으로 구현되는 각 계층에 의해, 각 계층에서의 계층간 비아의 위치에 관한 정보만이 유지되고, 계획 단계(22)에서 결정된 임시 배치 정보의 나머지는 폐기된다.
3D 구현 24
3D 구현 단계(24)의 스텝 64에서, 3DIC의 모든 계층들은 디자인의 하나의 계층에 각각 대응하는 다수의 파티션(60)(도 8에 도시됨)을 포함하는 단일 2DIC 디자인에서 서로 인접하게 동시에 구현된다. 예를 들어, 2계층 3DIC 디자인의 경우, 3D 구현 단계(24)에서 구현된 디자인에 의해 표현된 2DIC는 2:1의 종횡비를 가질 수 있으며, 각 계층의 파티션은 원래의 디자인의 50%인 면적을 점유한다. 유사하게, 3개 이상의 계층이 있는 경우, 종횡비는 N:1일 수 있고, 각 계층은 스텝 30에서 제1 데이터 표현에 의해 표현된 원래의 2DIC 디자인의 면적의 1/Nth을 점유할 수도 있다. 대안적으로, 일부 디자인에 있어서, 파티션은 2차원으로 펼쳐질 수도 있다(예를 들어, 4계층 디자인은 2x2로 레이아웃될 수 있다). 분획 단계(20)에서의 주어진 계층에 할당된 구성요소의 그룹(예를 들어, 셀, 기능 모듈 또는 게이트)이 2DIC 디자인의 대응하는 파티션(60)에 배치되도록 계층 간에 하드 파티션이 생성된다. 도 8에 도시된 바와 같이, 스텝 66에서, 각각의 파티션 내의 계층간 비아 위치(62)는, 먼저 다시 I/O 포트에 의해 모델링된 신규 구획된 2D 디자인에서 고정된다.
도 9에 도시된 바와 같이, 스텝 68에서, 더미 인터커넥션(70)은 상이한 파티션들(60) 내의 각각의 계층간 비아 포트들 사이에 추가되어, 대응하는 계층간 비아를 모델링한다. 즉, 3DIC의 각각의 계층간 비아에 대해, 각각의 파티션 내의 대응하는 계층간 비아 포트는 더미 인터커넥션에 의해 연결된다. 이들 더미 인터커넥션은 실제의 디자인에서 라우팅에 사용되지 않고, 대신 타이밍 분석을 위해 계층간 비아를 시뮬레이션하는 역할을 한다. 2DIC 디자인으로서 구획된 형태로 표현된 3DIC 디자인의 타이밍 요건을 테스트하는 데 2DIC 타이밍 분석 툴을 사용함으로써, 특별한 3D 타이밍 분석 툴이 필요하지 않게 된다. 타이밍 분석 동안, 더미 인터커넥션과 관련된 신호 경로 지연은 0으로 설정되거나, 계층간 비아를 따라 전파되는 신호와 관련된 예상 지연의 더 정확한 마진을 위한 소정의 계층간 비아 지연량으로 설정될 수 있다.
도 10에 도시된 바와 같이, 더미 인터커넥션(70)은 2DIC 디자인에서의 실제 인터커넥션에 사용되는 가장 높은 인터커넥트 금속층보다 높은 금속층을 사용하여 구현될 수 있다. 더미 인터커넥트층으로서 어떤 금속층을 사용할지의 선택은 스텝 32에서 추출된 디자인 특성에 의존할 수 있다. 예를 들어, 스텝 30에서 구현된 원래의 2D 디자인으로부터, 디자인이 금속층(M6)까지만 사용한다고 결정되면, 디자인에서 실제의 인터커넥션의 라우팅을 방해하지 않도록 더미 인터커넥션(70)에 대해서 금속층(M7) 이상이 사용될 수 있다.
도 10에 도시된 바와 같이, 도 3의 스텝 72에서, 앵커 셀(anchor cells)(74)은 파티션의 각각에 있어서 각 계층간 비아 포트의 위치에 배치된다. 앵커 셀(74)은 더미 인터커넥트 금속층(예컨대, 도 10의 예에서 M8) 내의 더미 인터커넥션(70)을 하부 인터커넥트 금속층 내의 실제의 인터커넥션에 결합하기 위한 것이다. 예를 들어, 도 1 또는 도 2에 도시된 바와 같이, 소정의 금속 인터커넥트층은 전형적으로 비아 V0-V3을 사용하여 인접한 금속 인터커넥트층에 직접 접속되지만, 인접하지 않은 층들 사이에는 직접적인 접속이 없다. 예를 들어, 도 1에서, 금속 인터커넥트층(M2)은 비아 V2에 의해 층 M3에 접속되고, 비아 V1에 의해 층 M1에 접속되지만, 예를 들어 층 M1과 M3 간의 직접적인 접속은 없다. 그러나, 계층 사이를 통과하는 계층간 비아(16)를 모델링할 때, 계층간 비아(16)는, 구획된 2D 디자인으로 표현되는 경우 인접 계층에 없는 금속 인터커넥트를 연결해야 할 수도 있다. 예를 들어, 도 2에 도시된 바와 같이, 계층간 비아(16)는 상부 계층의 층 M1의 금속 인터커넥트를 하부 계층의 층 M4의 인터커넥트에 연결하고, 그래서 이들이 도 8 내지 11에 도시된 바와 같이 구획된 2DIC 디자인으로 시뮬레이트될 때, 앵커 셀(74)이 갭을 브릿징하는 데 사용된다.
예를 들어, 도 10은 하부 파티션에서 앵커 셀(74)이 층 M6 내의 실제의 신호 와이어(76)를, 표준 비아가 사용될 수 있는 층 M8 내의 더미 인터커넥트(70)에 간단히 접속하고, 그래서 앵커 셀(74)의 입출력 포트가 동일한 레벨(예를 들어, M6)에 있을 수 있는 예를 나타낸다. 그러나, 상부 파티션의 경우, 앵커 셀(74)은 더미 와이어(70)에 연결되는 층 M6 내의 입력 핀과 실제의 인터커넥트(78)에 연결되는 층 M1 내의 출력 핀을 연결하는 데 필요하며, 표준 비아 V0-V3 등은 개재된 층들 내의 실제의 인터커넥션의 라우팅을 방해할 수 있기 때문에 실용적이지 않을 것이다. 따라서, 앵커 셀(74)은 도 2의 예에서 층간 비아(16)가 반도체 기판을 통해 제1 금속 인터커넥트층(M1)에 접속된다는 사실을 시뮬레이션한다.
앵커 셀(74)은 실질적으로 2DIC EDA 툴에 의해 사용되는 셀 라이브러리에 추가된 신규 더미 셀이며, 다음과 같은 특성을 갖는다.
● 그것의 논리 함수는 버퍼 셀의 논리 함수이다(즉, 셀의 출력은 그것의 입력 값과 동일한 값을 갖는다).
● 그것은 전환 중에 0 입력-출력 지연 및 활성/누설 전력을 갖는다.
● 그것의 입력 및 출력 핀은 상이한 금속층에 있을 수 있다.
이러한 앵커 셀을 제공함으로써, 최종 금속층에 도달하는 상부 계층에서의 계층간 비아 신호를 전달할 수 있고, 더미 인터커넥트(70)와 함께 2DIC 툴을 사용하여 3DIC 디자인에 대해 타이밍 분석을 수행할 수 있다.
또한, 앵커 셀은 층간 비아의 위치 주위에 킵 아웃 영역(keep out region)을 도입하여 이웃하는 셀들이 층간 비아를 위해 비워 둘 필요가 있는 영역에 배치되는 것을 방지하기 위해서 사용될 수 있다. 이것은 사용되는 특정 3DIC 기술에서 계층간 비어에 의해 점유되는 면적에 대응하는 회로 면적을 갖도록 앵커 셀을 정의함으로써 행해질 수 있다. 예를 들어, 2DIC EDA 툴의 표준 셀 라이브러리에는 전술한 바와 같이 상이한 직경을 갖는 서로 다른 형태의 계층간 비아에 대응하는 복수의 앵커 셀의 버전이 제공될 수 있으며, 그 후에 특정 3DIC 기술에 적합한 앵커 셀이 그 기술을 사용하여 제조될 칩을 디지인할 때 라이브러리로부터 선택될 수 있다.
도 3의 스텝 80에서, 각 계층에 할당된 구성요소의 그룹을 2DIC 디자인의 대응하는 파티션(60)에 배치 및 라우팅하기 위해서 신규 배치 및 라우팅 스텝이 3DIC 디자인의 모든 계층에 대해 동시에 수행되고, 다시 그 배치가 동일한 계층간 비어에 대응하는 각각의 I/O 포트를 연결하는 더미 인터커넥트(70)와, 각 I/O 포트의 위치에 배치된 고정 I/O 포트 위치 및 앵커 셀(74)을 참조하여 수행된다. 최종 배치 및 라우팅된 디자인은 도 11에 개략적으로 도시되어 있다. 스텝 80에서 결정된 배치 및 라우팅은 스텝 30에서 결정된 2D 디자인의 원래의 배치 및 계획 단계(22)에서 결정된 임시 배치와는 관련 없음에 주목해야 한다. 스텝 80에서 결정된 배치가 여전히 스텝 40 또는 48에서 결정된 배치와 동일할 수 있지만, 반드시 동일할 필요는 없으며, 배치를 재계산할 자유는 디자인 내부의 신호 전달 시간을 최소화하기 위해 예를 들어 고정된 계층간 비아 위치를 참조하여 개선된 배치가 결정되도록 한다. 스텝 80에서 결정된 배치 및 라우팅된 2DIC 디자인은 타이밍 분석을 위해 출력되는 제2 데이터 표현에 의해 표현된다.
타이밍 분석 단계(26)에 있어서, 스텝 82에서, 2DIC 정적 타이밍 분석 툴은 디자인이 그 타이밍 요건을 충족시키는지 여부를 테스트하는데 사용된다. 스텝 84에서는, 디자인이 타이밍 요건을 충족시키는지의 여부가 결정된다. 어떤 타이밍 위반(timing violations)(예를 들어, 셋업 또는 홀드 위반)이 있으면, 디자인이 실패하고, 스텝 86에서는, 이들 타이밍 위반을 제거하도록 디자인이 조정된다. 예를 들어, 타이밍 위반은 디자인 내부의 데이터 및/또는 클럭 경로에 추가 버퍼를 부가함으로써 제거될 수 있다. 경우에 따라, 디자인을 조정하려면 초기 단계 20, 22, 24의 일부를 반복해야 할 수도 있다. 타이밍 위반을 제거하기 위해 디자인을 조정하면, 스텝 82에서의 타이밍 분석이 반복되고, 결국 타이밍 요건을 충족하는 디자인이 발견될 때까지 타이밍 분석 루프가 스텝 82 내지 스텝 86을 반복하고 그 시점에서 스텝 87에서는 디자인이 승인된다. 스텝 88에서는 2DIC 구획된 형식의 3DIC 디자인을 나타내는 제2 데이터 표현은 (더미 와이어(70)를 제거하고 제조 전에 앵커 셀(74)을 계층간 비아로 변환하기 위해 중간 단계가 먼저 수행될 수 있지만) 3DIC 자체의 제조를 제어하는데 사용될 수 있다. 실제로, 제조는 일반적으로 다른 당사자에 의해 전자 디자인 프로세스와는 별도로 수행될 수 있으므로, 예를 들어 스텝 80에서 생성된 제2 데이터 표현은 제조 장비를 제어하기 위해서 제조자에게 제공될 수도 있다. 3DIC 디자인의 제조 중에, 각 계층은 제2 데이터 표현으로서 정의된 2DIC 디자인의 대응하는 파티션(60)에 대해 지정된 배치 및 라우팅에 근거하여 제조될 수도 있다.
요약하면 이 기술을 사용하면 다음과 같은 장점이 있다.
● 이것에 의해 2D EDA 툴을 사용하여 블록 레벨 및 게이트 레벨 3D 구현이 가능하다.
● 이것은 TSV 기반, 페이스-투-페이스 및 페이스-투-백 웨이퍼 본딩 또는 모놀리식 3D 계층간 VIA 기반 디자인을 구현하는 데 사용될 수 있다.
● 이것에 의해 칩 디자이너가 디자인 구획을 안내할 수 있다.
● 이것은 여러 계층의 레이아웃 효율성을 동시에 구현 및 향상시킬 수 있다.
● 이것은 RTL 레벨에서 어떤 구획 방식이든 구현할 수 있으므로 매우 유연하다.
본원에서, "...하도록 구성된"이라는 단어는 장치의 요소가 정의된 동작을 수행할 수 있는 구성을 갖는 것을 의미하는 것으로 사용된다. 이 문맥에 있어서 "구성"은 하드웨어 또는 소프트웨어의 상호 접속의 배치 또는 방식을 의미한다. 예를 들어, 장치는 정의된 동작을 제공하는 전용 하드웨어를 가질 수 있고, 또는 프로세서 또는 다른 처리장치가 기능을 수행하도록 프로그래밍될 수 있다. "하도록 구성됨"은 정의된 작동을 제공하기 위해 장치 요소가 어떤 식으로든 변경되어야 함을 의미하지는 않는다.
본원에서는 본 발명의 예시적인 실시 예가 첨부도면을 참조하여 상세하게 설명되었지만 본 발명은 이들 실시 예에 한정되지 않으며, 첨부된 청구 범위에 의해 정의된 바와 같이 본 발명의 범위 및 사상을 벗어나지 않으면서 본 기술의 당업자에 의해 다양한 변경 및 수정이 이루어질 수 있음을 이해해야 한다.

Claims (19)

  1. 미리 정해진 설계 기준에 따라 계층간 비아에 의해 접속된 복수의 계층의 능동소자를 포함하는 3DIC(three-dimensional integrated circuit)의 디자인을 생성하는 컴퓨터 구현 방법으로서, 상기 방법은,
    상기 미리 정해진 설계 기준에 따라 생성된, 단일 계층의 능동소자를 포함 하는 2DIC(two-dimensional integrated circuit)의 디자인의 제1 데이터 표현으로부터 적어도 하나의 디자인 특성을 추출하는 단계와,
    상기 제1 데이터 표현으로부터 추출된 상기 적어도 하나의 디자인 특성에 근거하여 상기 3DIC의 구성요소를, 상기 복수의 계층들 중 하나에 각각이 대응하는 복수의 구성요소 그룹으로 구획하는 단계와,
    서로 인접하여 위치된 복수의 파티션을 포함하는 상기 2DIC의 디자인의 제2 데이터 표현을 생성하는 단계를 포함하고, 각 파티션은 상기 3DIC의 대응하는 계층을 나타내고, 대응하는 계층의 구성요소 그룹과 대응하는 계층을 또 다른 계층에 접속하기 위한 계층간 비아의 위치를 나타내는 계층간 비아 포트를 구비하며, 상기 제1 데이터 표현으로 나타낸 상기 2DIC에서의 대응하는 구성요소의 배치와는 별도로 및 상기 배치와는 관계없이 상기 제2 데이터 표현에서 나타낸 상기 2DIC의 디자인에서 주어진 파티션에 대한 구성요소 그룹의 배치가 결정되는 것을 특징으로 하는, 컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    상기 복수의 계층들 중의 적어도 하나의 계층에 대해, 상기 제1 데이터 표현으로 나타낸 상기 2DIC보다 작은 면적을 갖는 단일 계층 2DIC 디자인에서의 대응하는 구성요소 그룹의 임시 배치를 결정하고, 상기 적어도 하나의 계층에 대해 결정된 임시 배치를 이용하여 상기 계층간 비아의 위치를 식별하는 것을 포함하는 것을 특징으로 하는, 컴퓨터 구현 방법.
  3. 제 2 항에 있어서,
    상기 제2 데이터 표현을 생성할 때, 상기 주어진 파티션에 대한 구성요소 그룹의 배치는 임시 배치를 이용하여 식별된 계층간 비아의 위치에 고정된 계층간 비아 포트를 참조하여 결정되는 것을 특징으로 하는, 컴퓨터 구현 방법.
  4. 제 2 항에 있어서,
    상기 계층간 비아의 위치는 2개 이상의 계층에 대한 임시 배치를 결정하고, 하나의 계층에 대해 결정된 임시 배치를, 또 다른 계층에 대해 결정된 임시 배치로부터 추출된 특성에 따라 조정하는 것을 포함하는 반복 프로세스에 의해 결정되는 것을 특징으로 하는, 컴퓨터 구현 방법.
  5. 제 1 항에 있어서,
    상기 제2 데이터 표현에 있어서, 상기 3DIC의 2개의 계층을 접속하기 위한 계층간 비아는, 상기 2개의 계층에 대응하는 상기 2DIC의 각각의 파티션에서의 대응하는 계층간 비아 포트를 접속하는 더미 인터커넥션으로서 표현되는 것을 특징으로 하는, 컴퓨터 구현 방법.
  6. 제 5 항에 있어서,
    상기 제2 데이터 표현에 의해 표현되는 상기 2DIC는, 복수의 인터커넥트 금속층을 구비하고, 상기 더미 인터커넥션은 상기 2DIC에서의 실제의 인터커넥션에 대해 사용되는 가장 높은 인터커넥트 금속층보다도 높은 더미 인터커넥트 금속층에 할당되는 것을 특징으로 하는, 컴퓨터 구현 방법.
  7. 제 6 항에 있어서,
    상기 각각의 파티션에서의 대응하는 계층간 비아 포트에 대응하는 위치에 앵커 셀을 배치하는 것을 포함하고, 각 앵커 셀은 상기 더미 인터커넥트 금속층의 더미 인터커넥션을, 하부 인터커넥트 금속층의 실제의 인터커넥션에 연결하는 것을 특징으로 하는, 컴퓨터 구현 방법.
  8. 제 7 항에 있어서,
    상기 앵커 셀은 버퍼의 논리 기능을 갖는 것을 특징으로 하는, 컴퓨터 구현 방법.
  9. 제 7 항에 있어서,
    상기 2DIC의 디자인에서 앵커 셀이 점유하는 면적은 상기 3DIC에서 계층간 비아가 점유하는 면적에 대응하는 것을 특징으로 하는, 컴퓨터 구현 방법.
  10. 제 1 항에 있어서,
    상기 제2 데이터 표현에 의해 표현된 상기 2DIC가 타이밍 요건을 충족하는지를 검증하기 위한 타이밍 분석을 수행하는 것을 포함하는 것을 특징으로 하는, 컴퓨터 구현 방법.
  11. 제 10 항에 있어서,
    상기 2DIC가 타이밍 요건을 충족시키지 못한다고 결정하는 타이밍 분석에 응답하여, 상기 제2 데이터 표현은 상기 2DIC의 디자인을 수정하도록 갱신되고, 상기 갱신된 제2 데이터 표현을 이용하여 타이밍 분석을 반복하는 것을 특징으로 하는, 컴퓨터 구현 방법.
  12. 제 5 항에 있어서,
    상기 제2 데이터 표현에 의해 표현된 상기 2DIC가 타이밍 요건을 충족하는지를 검증하기 위한 타이밍 분석을 수행하는 것을 포함하고, 상기 더미 인터커넥션과 관련된 경로 지연(path delay)은, 계층간 비아 지연량 또는 0으로 설정되는 것을 특징으로 하는, 컴퓨터 구현 방법.
  13. 제 1 항에 있어서,
    상기 구획 단계에서 구획된 구성요소는 기능 블록 또는 셀을 구비하는 것을 특징으로 하는, 컴퓨터 구현 방법.
  14. 제 1 항에 있어서,
    상기 구획 단계에서 구획된 구성요소는 게이트를 구비하는 것을 특징으로 하는, 컴퓨터 구현 방법.
  15. 제 1 항에 있어서,
    상기 제1 데이터 표현으로부터 추출된 상기 적어도 하나의 디자인 특성은,
    디자인의 구성요소의 논리 기능과,
    디자인에서의 신호의 팬아웃과,
    디자인에서의 크리티컬 패스와,
    디자인의 구성요소의 면적과,
    디자인의 각 구성요소 간의 접속과,
    어느 금속 인터커넥트층이 디자인에 사용되는지와,
    디자인의 구성요소의 열 특성과,
    디자인의 구성요소의 전력 소비 중의 적어도 하나의 특성을 포함하는 것을 특징으로 하는, 컴퓨터 구현 방법.
  16. 제 1 항에 있어서,
    상기 구성요소를 구성요소 그룹으로 구획하는 단계는, 적어도 하나의 3DIC 제조 프로세스 제약에도 근거하는 것을 특징으로 하는, 컴퓨터 구현 방법.
  17. 제 1 항에 있어서,
    상기 제2 데이터 표현에 의해 표현된 2DIC의 대응하는 파티션의 디자인에 따라 제조된 3DIC의 각 계층으로 3DIC를 제조하는 것을 포함하는 것을 특징으로 하는, 컴퓨터 구현 방법.
  18. 청구항 1의 방법을 수행하도록 컴퓨터를 제어하기 위한 컴퓨터 프로그램을 기억하는 비일시적인 기록매체.
  19. 청구항 1의 방법을 수행하기 위한 처리회로를 구비하는 장치.
KR1020170107012A 2016-08-31 2017-08-24 3차원 집적회로 디자인을 생성하는 방법 KR102423040B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/252,592 US10678985B2 (en) 2016-08-31 2016-08-31 Method for generating three-dimensional integrated circuit design
US15/252,592 2016-08-31

Publications (2)

Publication Number Publication Date
KR20180025210A KR20180025210A (ko) 2018-03-08
KR102423040B1 true KR102423040B1 (ko) 2022-07-20

Family

ID=61242804

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170107012A KR102423040B1 (ko) 2016-08-31 2017-08-24 3차원 집적회로 디자인을 생성하는 방법

Country Status (4)

Country Link
US (2) US10678985B2 (ko)
KR (1) KR102423040B1 (ko)
CN (1) CN107798159B (ko)
TW (1) TW201820185A (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10678985B2 (en) * 2016-08-31 2020-06-09 Arm Limited Method for generating three-dimensional integrated circuit design
CN109920787B (zh) * 2017-12-12 2021-05-25 中芯国际集成电路制造(北京)有限公司 互连结构的设计方法、装置及制造方法
US10599806B2 (en) 2018-03-28 2020-03-24 Arm Limited Multi-tier co-placement for integrated circuitry
US11127673B2 (en) * 2018-08-20 2021-09-21 Taiwan Semiconductor Manufacturing Company, Ltd. Semiconductor device including deep vias, and method of generating layout diagram for same
KR102282806B1 (ko) * 2018-09-14 2021-07-27 시놉시스, 인크. 엘모어 지연 시간 (edt) 기반 저항 모델
CN109885850B (zh) * 2018-10-11 2023-01-24 中国科学院微电子研究所 一种局部寄存器的生成方法及生成系统
US10796976B2 (en) * 2018-10-31 2020-10-06 Taiwan Semiconductor Manufacturing Company, Ltd. Semiconductor device and method of forming the same
US11270988B2 (en) * 2020-01-20 2022-03-08 Monolithic 3D Inc. 3D semiconductor device(s) and structure(s) with electronic control units
US20240096798A1 (en) * 2020-01-20 2024-03-21 Monolithic 3D Inc. 3d semiconductor devices and structures with electronic circuit units
US11488939B2 (en) * 2020-01-20 2022-11-01 Monolithic 3D Inc. 3D semiconductor devices and structures with at least one vertical bus
CN112016259B (zh) * 2020-08-31 2022-08-30 上海兆芯集成电路有限公司 电路及其配置方法
US11455454B2 (en) * 2020-11-24 2022-09-27 Arm Limited Methods and apparatuses for concurrent coupling of inter-tier connections
KR102291397B1 (ko) * 2021-01-21 2021-08-20 노환승 인쇄회로기판 역설계 시스템 및 그 방법
US11436402B1 (en) 2021-03-31 2022-09-06 Cadence Design Systems, Inc. Electronic design 3D mixed placement and unfolding
US11693796B2 (en) * 2021-05-31 2023-07-04 Arm Limited Multi-dimensional data path architecture
US11775723B1 (en) * 2021-06-30 2023-10-03 Cadence Design Systems, Inc. Methods, systems, and computer program products for efficiently implementing a 3D-IC

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070287224A1 (en) 2004-08-16 2007-12-13 International Business Machines Corperation Three dimensional integrated circuit and method of design

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW478255B (en) * 2000-12-13 2002-03-01 Via Tech Inc Circuit static timing analysis method using generated clock
US20050015740A1 (en) * 2003-07-18 2005-01-20 Mentor Graphics Corp. Design for manufacturability
KR20060116798A (ko) * 2006-03-15 2006-11-15 피디에프 솔루션즈, 인코포레이티드 제조가능성을 최적화하기 위한 집적 회로 디자인
JP4398989B2 (ja) * 2007-03-26 2010-01-13 株式会社東芝 三次元集積回路設計方法及び三次元集積回路設計装置
US8060843B2 (en) * 2008-06-18 2011-11-15 Taiwan Semiconductor Manufacturing Company, Ltd. Verification of 3D integrated circuits
US8146032B2 (en) 2009-01-30 2012-03-27 Synopsys, Inc. Method and apparatus for performing RLC modeling and extraction for three-dimensional integrated circuit (3D-IC) designs
US9021414B1 (en) * 2013-04-15 2015-04-28 Monolithic 3D Inc. Automation for monolithic 3D devices
US8832608B1 (en) * 2013-06-17 2014-09-09 Duke University Retiming-based design flow for delay recovery on inter-die paths in 3D ICs
US9418985B2 (en) * 2013-07-16 2016-08-16 Qualcomm Incorporated Complete system-on-chip (SOC) using monolithic three dimensional (3D) integrated circuit (IC) (3DIC) technology
US8959472B1 (en) * 2013-09-27 2015-02-17 Arm Limited Considering compatibility of adjacent boundary regions for standard cells placement and routing
US9483598B2 (en) * 2015-02-09 2016-11-01 Qualcomm Incorporated Intellectual property block design with folded blocks and duplicated pins for 3D integrated circuits
US10678985B2 (en) * 2016-08-31 2020-06-09 Arm Limited Method for generating three-dimensional integrated circuit design

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070287224A1 (en) 2004-08-16 2007-12-13 International Business Machines Corperation Three dimensional integrated circuit and method of design

Also Published As

Publication number Publication date
US10678985B2 (en) 2020-06-09
CN107798159A (zh) 2018-03-13
US20180060475A1 (en) 2018-03-01
TW201820185A (zh) 2018-06-01
CN107798159B (zh) 2023-11-17
US11625522B2 (en) 2023-04-11
KR20180025210A (ko) 2018-03-08
US20200257841A1 (en) 2020-08-13

Similar Documents

Publication Publication Date Title
KR102423040B1 (ko) 3차원 집적회로 디자인을 생성하는 방법
Das Design automation and analysis of three-dimensional integrated circuits
US10997346B2 (en) Conception of a 3D circuit comprising macros
US10747933B2 (en) Channel-less integrated circuit layout wiring for chips including a plurality of partitions
US9064077B2 (en) 3D floorplanning using 2D and 3D blocks
JP6009556B2 (ja) シリコン貫通ビアを用いた集積回路設計
KR20190024723A (ko) 집적회로 설계 및/또는 제조
Lim Design for high performance, low power, and reliable 3D integrated circuits
KR102527749B1 (ko) 3d 집적 회로용 폴딩 블록들 및 복제 핀들을 갖는 지적 재산 블록 설계
TW201837760A (zh) 用於產生積體電路的電路模塊的佈局的技術
KR20170094744A (ko) 집적 회로 및 상기 집적 회로의 제조를 위한 컴퓨터 구현 방법
Jagtap et al. A methodology for early exploration of TSV placement topologies in 3D stacked ICs
Pangracious et al. Designing a 3D tree-based FPGA: Optimization of butterfly programmable interconnect topology using 3D technology
Murali et al. Heterogeneous 3d ics: Current status and future directions for physical design technologies
TW202414244A (zh) 產生三維積體電路設計的方法
Xie et al. Design space exploration for 3D integrated circuits
Chang et al. Design-aware partitioning-based 3-D IC design flow with 2-D commercial tools
Chen et al. Reshaping System Design in 3D Integration: Perspectives and Challenges
Zhang A Study of Routing Algorithms for PCB Design
Deng et al. 3-dimensional VLSI: A 2.5-dimensional Integration Scheme
MANEESHA Physical Implementation of Hard Macro on a Lower Technology Node and the Power Delivery Network analysis of IR drop.
Kabir Design, Extraction, and Optimization Tool Flows and Methodologies for Homogeneous and Heterogeneous Multi-Chip 2.5 D Systems
Pangracious et al. Physical Design and Implementation of 3D Tree-Based FPGAs
Pangracious et al. Three-Dimensional FPGAs: Configuration and CAD Development
Knechtel Interconnect planning for physical design of 3D integrated circuits

Legal Events

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