KR20230029541A - 공통 설계로부터 전체 다이 및 부분 다이 테이프 아웃 - Google Patents

공통 설계로부터 전체 다이 및 부분 다이 테이프 아웃 Download PDF

Info

Publication number
KR20230029541A
KR20230029541A KR1020220104738A KR20220104738A KR20230029541A KR 20230029541 A KR20230029541 A KR 20230029541A KR 1020220104738 A KR1020220104738 A KR 1020220104738A KR 20220104738 A KR20220104738 A KR 20220104738A KR 20230029541 A KR20230029541 A KR 20230029541A
Authority
KR
South Korea
Prior art keywords
region
sub
instance
integrated circuit
circuit components
Prior art date
Application number
KR1020220104738A
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 KR20230029541A publication Critical patent/KR20230029541A/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
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03FPHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
    • G03F1/00Originals for photomechanical production of textured or patterned surfaces, e.g., masks, photo-masks, reticles; Mask blanks or pellicles therefor; Containers specially adapted therefor; Preparation thereof
    • G03F1/68Preparation processes not covered by groups G03F1/20 - G03F1/50
    • G03F1/70Adapting basic layout or design of masks to lithographic process requirements, e.g., second iteration correction of mask patterns for imaging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/70Manufacture or treatment of devices consisting of a plurality of solid state components formed in or on a common substrate or of parts thereof; Manufacture of integrated circuit devices or of parts thereof
    • H01L21/77Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate
    • H01L21/78Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices
    • H01L21/82Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices to produce devices, e.g. integrated circuits, each consisting of a plurality of components
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers
    • H01L27/0203Particular design considerations for integrated circuits
    • H01L27/0207Geometrical layout of the components, e.g. computer aided design; custom LSI, semi-custom LSI, standard cell technique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/16Customisation or personalisation
    • 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
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/02System on chip [SoC] design
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/20Design reuse, reusability analysis or reusability optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Architecture (AREA)
  • Power Engineering (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Manufacturing & Machinery (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Computer Networks & Wireless Communication (AREA)

Abstract

칩 설계 방법 및 공통 설계 데이터베이스로부터 테이프 아웃되는(taped out) 집적 회로들의 세트가 개시된다. 집적 회로의 전체 인스턴스의 영역이 정의되고, 하나 이상의 촙 라인들은 하나 이상의 부분 인스턴스들에 대해 제거될 부분들을 식별하도록 정의된다. 다양한 기술들 및 메커니즘들이 공통 설계 데이터베이스로부터 테이프 아웃이 발생하도록 정의되어, 부분 인스턴스들을 테이프 아웃하려는 노력이 전체 인스턴스를 테이프 아웃하는 것 이상으로 최소화될 수 있다.

Description

공통 설계로부터 전체 다이 및 부분 다이 테이프 아웃{FULL DIE AND PARTIAL DIE TAPE OUTS FROM COMMON DESIGN}
본 명세서에서 설명되는 실시예들은 집적 회로들에 관한 것으로, 더 구체적으로는, 전체 및 부분 테이프 아웃(tape out)들을 위해 설계된 집적 회로에 관한 것이다.
집적 회로들은, 단일 반도체 기판 또는 "칩" 상에 집적되는 다양한 디지털 로직 회로들 및/또는 아날로그 회로들을 포함한다. 고정 기능 하드웨어 내지 마이크로프로세서들로부터, 프로세서들, 집적 메모리 제어기들 및 시스템의 중심에 있을 수 있는 고도로 집적된 칩을 형성하는 다양한 다른 컴포넌트들을 포함하는 시스템 온 칩(systems on a chip, SOCs)까지 매우 다양한 집적 회로들이 존재한다.
주어진 집적 회로는 다양한 시스템들(예를 들어, "기성품(off the shelf)" 컴포넌트)에서의 사용을 위해 설계될 수 있다. 주어진 집적 회로는 자신이 다양한 시스템들에서 사용될 수 있게 하는 컴포넌트들의 세트를 포함할 수 있지만, 특정 시스템은 컴포넌트들 모두 또는 컴포넌트들 모두의 전체 기능 및/또는 성능을 요구하지는 않을 수 있다. 여분의 컴포넌트들/기능은 상당히 낭비되고, 매몰 비용이 들며, 시스템에서 전력(적어도 누설 전력)을 소비한다. 벽 콘센트의 본질적으로 무제한의 공급과는 대조적으로, 제한된 전력 공급(예를 들어, 배터리) 상에서 적어도 때때로 동작하는 휴대용 시스템들의 경우, 전력의 비효율적인 사용은 제한된 공급부의 비효율적인 사용 및 심지어 제한된 공급에 대한 충전 요건들 사이에서 수용가능하지 않게 짧은 시간들로 이어진다.
따라서, 주어진 시스템의 요건들에 집적 회로 기능을 매칭시키는 것은 고품질 제품을 생산하는 데 중요하다. 그러나, 많은 상이한 시스템들에 대한 맞춤 집적 회로 설계는 또한, 각각의 집적 회로에 대한 설계 및 검증 노력의 관점에서 비용을 나타낸다.
다음의 상세한 설명은 첨부 도면들을 참조하며, 이제 도면들이 간단히 설명된다.
도 1은 전체 및 부분 인스턴스들을 지원하는 집적 회로 설계의 일 실시예의 블록도이다.
도 2 내지 도 4는 도 1에 도시된 집적 회로의 전체 및 부분 인스턴스들의 다양한 실시예들이다.
도 5는 집적 회로의 각각의 하위 영역에 로컬 클록 소스들을 갖는, 도 1에 도시된 집적 회로의 일 실시예의 블록도이다.
도 6은 집적 회로의 각각의 하위 영역에 로컬 아날로그 패드들을 갖는, 도 1에 도시된 집적 회로의 일 실시예의 블록도이다.
도 7은, 각각의 하위 영역의 코너들에서의 차단 영역들 및 각각의 하위 영역의 에지들 근처의 영역들을 배제하는 상호연결 "범프들"에 대한 영역들을 갖는, 도 1에 도시된 집적 회로의 일 실시예의 블록도이다.
도 8은 스터브(stub) 및 대응하는 회로 컴포넌트의 일 실시예를 예시하는 블록도이다.
도 9는 한 쌍의 집적 회로들의 일 실시예 및 한 쌍의 집적 회로들의 특정한 추가적인 세부사항들을 예시하는 블록도이다.
도 10은 집적 회로 설계 방법의 일 실시예를 예시하는 흐름도이다.
도 11은 전체 및 부분 인스턴스들을 테스트하기 위한 테스트 벤치 배열을 예시하는 블록도이다.
도 12는 컴포넌트-레벨 테스팅을 위한 테스트 벤치 배열을 예시하는 블록도이다.
도 13은 집적 회로에 대한 설계 및 제조 방법의 일 실시예를 예시하는 흐름도이다.
도 14는 집적 회로들을 제조하기 위한 방법의 일 실시예를 예시하는 흐름도이다.
도 15는 컴퓨터 액세스가능 저장 매체에 대한 일 실시예의 블록도이다.
도 16은 집적 회로들을 이용할 수 있는 다양한 시스템들의 블록도이다.
본 발명에 설명된 실시예들은 다양한 수정들 및 대안적인 형태들을 허용할 수 있지만, 그의 특정 실시예들이 도면들에 예로서 도시되고, 본 명세서에서 상세히 설명될 것이다. 그러나, 그에 대한 도면들 및 상세한 설명은 실시예들을 개시된 특정 형태로 제한하는 것으로 의도되는 것이 아니라, 그와는 반대로, 의도는 첨부된 청구범위의 사상 및 범주 내에 속한 모든 수정들, 등가물들, 및 대안들을 커버하기 위한 것임을 이해하여야 한다. 본 명세서에서 사용되는 표제들은 오직 구성 목적들을 위한 것이며 설명의 범위를 제한하기 위해 사용되는 것으로 의도되지 않는다.
일 실시예에서, 집적 회로의 방법 및 설계는 공통 설계 데이터베이스에 기초하여 집적 회로의 상이한 구현들의 하나 초과의 테이프 아웃, 및 궁극적으로는 제조를 지원한다. 설계는, 설계에 포함된 모든 회로 컴포넌트들이 제조된 칩에 포함되는 전체 인스턴스뿐만 아니라, 제조된 칩에 회로 컴포넌트들의 서브세트를 포함하는 하나 이상의 부분 인스턴스들을 지원할 수 있다. 부분 인스턴스들은 더 작은 다이 상에 제조될 수 있지만, 부분 인스턴스를 갖는 회로 컴포넌트들 및 이들의 물리적 배열 및 배선은 전체 인스턴스 내의 대응하는 영역과 동일할 수 있다. 즉, 부분 인스턴스를 생성하기 위해 설계 데이터베이스로부터 전체 인스턴스의 영역의 일부 및 그 위의 컴포넌트들을 제거함으로써 부분 인스턴스가 생성될 수 있다. 설계, 검증, 합성, 타이밍 분석 수행, 설계 규칙 체크 수행, 전기 분석 수행 등의 작업은 전체 인스턴스 및 부분 인스턴스들에 걸쳐 공유될 수 있다. 추가로, 일 실시예에서, 다양한 컴퓨팅 요건들, 폼 팩터들, 비용 구조들, 전원 공급 제한들 등을 갖는 다양한 제품들에 적절한 집적 회로 칩이 동일한 설계 프로세스로부터 지원될 수 있다. 일 실시예에서, SOC의 전체 인스턴스는 더 큰 시스템을 구축하기 위해 다른 전체 인스턴스들 또는 심지어 상이한 SOC들과 커플링될 수 있다. 일 실시예에서, 더 큰 시스템을 또한 구축하기 위해 부분 인스턴스는 전체 인스턴스, 다른 부분 인스턴스들, 및/또는 다른 SOC들과 유사하게 커플링될 수 있다. 일 실시예에서, 주어진 SOC의 부분 인스턴스는 주어진 회로 컴포넌트의 부분 인스턴스를 포함할 수 있다.
예를 들어, 전체 인스턴스는 특정 수의 컴퓨팅 유닛들(예를 들어, 중앙 프로세싱 유닛(CPU) 프로세서들, 그래픽 프로세싱 유닛(GPU)들, CPU에 부착된 코프로세서들, 디지털 신호 프로세서들과 같은 다른 특수 프로세서들, 이미지 신호 프로세서들 등)을 포함할 수 있다. 부분 인스턴스들은 더 적은 컴퓨팅 유닛들을 포함할 수 있다. 전체 인스턴스는 복수의 메모리 제어기들을 통해 특정량의 메모리 용량을 포함할 수 있고, 부분 인스턴스들은 더 낮은 메모리 용량을 지원하는 더 적은 메모리 제어기들을 포함할 수 있다. 일 실시예에서, 메모리 채널들의 수는 감소될 수 있고, 이는 대역폭을 감소시킬 수 있다. 즉, 메모리 제어기들/메모리 채널들의 감소는 더 낮은 메모리 및/또는 더 낮은 메모리 대역폭을 지원할 수 있다. 전체 인스턴스는 특정 수의 입력 출력(I/O) 디바이스들 및/또는 인터페이스들(주변 디바이스들/인터페이스들 또는 간단히 주변기기들로 또한 지칭됨)을 포함할 수 있다. 부분 인스턴스는 더 적은 I/O 디바이스들/인터페이스들을 가질 수 있다.
일 실시예에서, 부분 인스턴스들은 스터브 영역을 더 포함할 수 있다. 스터브 영역은 부분 인스턴스들에 포함된 회로 컴포넌트들에 대한 입력 신호들에 대한 종단들을 제공할 수 있으며, 여기서, 전체 인스턴스에서 그러한 입력 신호들에 대한 소스들은 제거된 영역 내의 회로 컴포넌트들이고 따라서 입력 신호들은 스터브의 부재 시에 연결되지 않는다. 회로 컴포넌트들로부터 제거된 영역의 회로 컴포넌트들로의 출력 신호들은 적어도 스터브의 에지에 도달할 수 있고 연결되지 않을 수 있다. 일 실시예에서, 스터브 영역은, 부분 인스턴스에서 회로 컴포넌트들의 적절한 기능을 제공하기 위해 필요에 따라, 입력 신호들을 전력(디지털 1) 또는 접지(디지털 0) 와이어들(예를 들어, 전력 및 접지 그리드들)에 연결하기 위한 금속화를 포함할 수 있다. 예를 들어, 부분 인스턴스에서 전력 관리자 블록은 제거된 회로 컴포넌트들로부터 입력들을 수신할 수 있고, 입력들은 제거된 회로 컴포넌트들이 전력이 차단된 것, 유휴 상태인 것 등을 표시하기 위해 전력 또는 접지에 연결될 수 있어서, 전력 관리자 블록은 전력 상태들을 변경할 때 등의 경우 제거된 회로 컴포넌트의 응답을 기다리지 않는다. 일 실시예에서, 스터브 영역은 금속화(배선)만을 포함할 수 있다. 즉, 스터브 영역은 능동 회로부(예를 들어, 반도체 기판에 형성된 트랜지스터들)를 배제할 수 있다. 금속화 층들(또는 금속 층들)은, 능동 회로 요소들 사이에 와이어 상호연결부를 제공하기 위해(또는 스터브 영역에서 디지털 1/0 값들을 제공하기 위해) 반도체 기판의 표면 영역 위에 형성된다. 이러한 방식으로 부분 인스턴스 설계들을 관리하는 것은 전체 인스턴스에서의 노력에 비해 부분 인스턴스들의 검증의 양을 최소화할 수 있다. 예를 들어, 추가적인 타이밍 검증이 필요하지 않을 수 있고, 추가적인 물리적 설계 검증이 최소일 수 있는 식이다.
도 1은 집적 회로의 전체 인스턴스 및 몇몇 부분 인스턴스들의 일 실시예를 예시하는 블록도이다. 집적 회로의 전체 인스턴스는 중괄호 12("칩 1")로 표시되고, 집적 회로의 부분 인스턴스들은 중괄호들 14 및 16("칩 2" 및 "칩 3")으로 표시된다. 전체 인스턴스인 칩 1은 복수의 회로 컴포넌트들(10A-10D)을 포함한다. 전체 인스턴스에 대한 반도체 기판 칩 또는 다이(참조 번호 18)의 표면 상의 회로 컴포넌트들(10A-10D)의 물리적 위치들은 회로 컴포넌트들(10A-10D)의 배치에 의해 표시된다. 도 1은 간략화된 표현이며, 도 1에 도시된 것보다 더 많은 회로 컴포넌트들이 존재할 수 있고, 물리적 배열이 더 변경될 수 있다. 회로 컴포넌트들(10A-10D) 사이의 다양한 상호연결부가 도 1에 도시되지 않은 컴포넌트 간 통신을 위해 사용된다. 상호연결부뿐만 아니라 회로 컴포넌트들(10A-10D) 자체 내의 상호연결부는 반도체 기판 표면 위의 금속화 층들에서 구현될 수 있다.
각각의 부분 인스턴스는 도 1의 "촙 라인(chop line)"(20A-20B)에 대응한다. 촙 라인은 전체 인스턴스에 포함된 그러한 회로 컴포넌트들(10A-10D)을 다양한 부분 인스턴스들에 포함된 회로 컴포넌트들(10A-10D)로부터 분할한다. 따라서, 예를 들어, 칩(2)은 촙 라인(20A)에 의해 정의되고, 회로 컴포넌트들(10A-10C)을 포함하지만 회로 컴포넌트(10D)를 포함하지 않는다. 유사하게, 칩(3)은 촙 라인(20B)에 의해 정의되고, 회로 컴포넌트들(10A-10B)을 포함하지만 회로 컴포넌트들(10C-10D)을 포함하지 않는다. 촙 라인은 설계 데이터베이스에 정의될 수 있거나, 설계 프로세스의 일부일 수 있지만, 설계 데이터베이스에 명시적으로 표현되지 않을 수 있다.
일반적으로, 설계 데이터베이스는 회로 컴포넌트들(10A-10D) 및 이들의 상호연결부의 디스크립션들을 저장하는 복수의 컴퓨터 파일들을 포함할 수 있다. 설계 데이터베이스는, 예를 들어, Verilog, VHDL 등과 같은 하드웨어 디스크립션 언어(HDL)로 표현된 회로들의 레지스터 전송 레벨(RTL) 디스크립션들을 포함할 수 있다. 설계 데이터베이스는 표준 셀들의 라이브러리를 사용하여 RTL 디스크립션들로부터 합성되기보다는 직접 구현되는 회로들에 대해, 회로 편집기 툴로부터의 회로 디스크립션들을 포함할 수 있다. 설계 데이터베이스는, 표준 셀 인스턴스들 및 이들의 상호연결부를 설명하는, 합성으로부터 초래되는 네트리스트(netlist)들을 포함할 수 있다. 설계 데이터베이스는 회로 컴포넌트들 및 이들의 상호연결부의 물리적 레이아웃 디스크립션들을 포함할 수 있고, 집적 회로 제조 프로세스를 위한 마스크들을 생성하는 데 사용될 수 있는 기하학적 형상들 및 층들의 관점에서 집적 회로들을 설명하는 테이프 아웃 디스크립션 파일들을 포함할 수 있다. 테이프 아웃 디스크립션 파일들은 그래픽 설계 시스템(GDSII) 포맷, 개방 아트워크 시스템 교환 표준(OASIS) 포맷 등으로 표현될 수 있다. 위의 것들의 임의의 조합이 설계 데이터베이스에 포함될 수 있다.
촙 라인들(20A-20B)은 칩(18) 영역을 회로 컴포넌트들(10A-10D)의 서브세트들이 인스턴스화되는 하위 영역들로 분할한다. 예를 들어, 촙 라인(20B)은 칩(18) 영역을 (도 1에서 배향된 바와 같이 라인(20B) 위의) 제1 하위 영역 및 (라인(20B) 아래의) 제2 하위 영역으로 분할한다. 촙 라인(20A)은 제2 하위 영역을 제3 하위 영역 및 제4 하위 영역으로 추가로 분할하며, 여기서 제3 하위 영역은 제1 하위 영역에 인접하거나 접한다. 제1 하위 영역과 제2 하위 영역의 조합은 전체 인스턴스를 표현한다. 제1 하위 영역만이 (스터브 영역과 함께) 가장 작은 부분 인스턴스(칩 3)를 표현한다. 제1 하위 영역 및 제3 하위 영역은 이 예에서 다른 부분 인스턴스(칩 2)를 표현한다.
주어진 하위 영역 내의 회로 컴포넌트들의 물리적 위치들, 및 회로 컴포넌트들 내의 그리고 회로 컴포넌트들 사이의 상호연결부는 전체 인스턴스와 부분 인스턴스들 사이에서 변경되지 않을 수 있다. 따라서, 전체 인스턴스 내의 회로 컴포넌트들이 전체 인스턴스의 성공적인 제조 및 사용을 위한 타이밍 요건들, 물리적 설계 요건들 및 전기적 요건들을 충족할 때, 대부분의 부분에 대한 부분 인스턴스들에 의해 동일한 요건들이 또한 충족되어야 한다. 스터브 영역들 내의 물리적 설계 및 전기적 요건들이 검증될 필요가 있을 수 있으며, 아래에서 논의되는 바와 같이 코너 배제부들, 제어된 붕괴 칩 연결(C4) 범프 배제 구역들 등과 같은 하위 영역들에 특정 물리적 설계 요건들이 적용될 수 있다. 그러나, 일 실시예에서, 일단 전체 인스턴스가 검증되고 테이프 아웃을 위해 준비되면, 부분 인스턴스들로부터의 테이프 아웃은 최소의 노력들로 진행될 수 있다.
도 2 내지 도 4는 도 1에 도시된 실시예에 대한 부분 인스턴스들 및 전체 인스턴스를 예시한다. 도 4는 전체 인스턴스이며, 따라서 회로 컴포넌트들(10A-10D)을 포함한다. 도 2 및 도 3은 각각 칩 3 및 칩 2에 대응한다. 따라서, 도 2의 부분 인스턴스는 제1 하위 영역으로부터의 회로 컴포넌트들(10A-10B)뿐만 아니라 스터브 영역(22)(스터브 1)을 포함한다. 도 3의 부분 인스턴스는 제1 하위 영역으로부터의 회로 컴포넌트들(10A-10B), 제2 하위 영역으로부터의 회로 컴포넌트(10C) 및 스터브 영역(24)(스터브 2)을 포함한다. 다른 실시예에서, 촙 라인들(20A-20B), 예를 들어 컴포넌트 회로(10C) 사이의 부분을 제거하고, 나머지 하위 영역들, 예를 들어 컴포넌트 회로들(10A-10B)과 컴포넌트 회로(10D)를 결합시킴으로써, 부분 인스턴스가 형성될 수 있다. 2개 초과의 촙 라인들이 정의되면, 각각의 촙 라인들 사이의 하나 이상의 하위 영역들을 제거함으로써 훨씬 더 많은 변형들이 지원될 수 있다. 그러한 실시예는 (제거된 하위 영역보다 작을 수 있는) 촙 라인들 사이의 스터브 영역을 구현함으로써, 또는 하위 영역이 제거되고 나머지 하위 영역들이 함께 이동될 때 제거된 하위 영역의 어느 한 측 상의 와이어들이 일치하고 정확하게 연결되는 것을 보장함으로써 이루어질 수 있다. 다수의 촙 라인들이 사용되는 또 다른 실시예에서, 하나 이상의 촙 라인들은 다른 촙 라인들에 직교하여, 서브 영역들이 하나 초과의 방향으로 제거될 수 있게 할 수 있다. 외부 섹션들의 중간 섹션 제거/결합의 직교 촙 라인들의 임의의 조합이 다양한 실시예들에서 구현될 수 있다.
회로 컴포넌트는 IC의 특정 컴포넌트(예를 들어, CPU 또는 GPU와 같은 프로세서, 프로세서들 또는 GPU들의 클러스터, 메모리 제어기, 통신 패브릭 또는 이들의 일부, 주변 디바이스 또는 주변 인터페이스 회로 등)를 구현하도록 배열되는 임의의 그룹의 회로들일 수 있다. 주어진 회로 컴포넌트는 계층적 구조를 가질 수 있다. 예를 들어, 프로세서 클러스터 회로 컴포넌트는 클러스터에 의해 점유된 영역 내에 여러 번 배치된 동일한 프로세서 설계의 사본들일 수 있는 프로세서의 다수의 인스턴스들을 가질 수 있다.
이 설명에 따르면, 방법은, 집적 회로 설계에 대응하는 설계 데이터베이스에서, 반도체 기판 상에 제조될 때 집적 회로 설계에 의해 점유될 영역을 정의하는 단계를 포함할 수 있다. 예를 들어, 영역은 도 1 및 도 4에 도시된 바와 같은 전체 인스턴스의 영역일 수 있다. 이 방법은 촙 라인(다수의 촙 라인들 중 하나일 수 있음)을 정의하는 단계를 더 포함할 수 있다. 촙 라인은 영역을 제1 하위 영역 및 제2 하위 영역으로 구획할 수 있으며, 제1 하위 영역과 제2 하위 영역의 조합은 전체 인스턴스를 표현한다. 제1 하위 영역 및 스터브 영역은 전체 인스턴스보다 적은 회로 컴포넌트들을 포함하는 집적 회로의 부분 인스턴스를 표현한다. 설계 데이터베이스에서, 집적 회로의 전체 인스턴스 및 부분 인스턴스 둘 모두에 포함된 복수의 회로 컴포넌트들의 물리적 위치가 제1 하위 영역에서 정의된다. 제1 하위 영역 내의 복수의 회로 컴포넌트들 및 제1 하위 영역 내의 복수의 회로 컴포넌트들의 상호연결부의 상대적 위치는 전체 인스턴스 및 부분 인스턴스에서 변경되지 않을 수 있다. 전체 인스턴스에 포함되지만 부분 인스턴스로부터 배제된 다른 복수의 회로 컴포넌트들의 물리적 위치가 제2 하위 영역에서 정의된다. 스터브 영역이 또한 설계 데이터베이스에 정의된다. 스터브 영역은, 그렇지 않으면 제1 하위 영역과 제2 하위 영역 사이의 촙 라인을 횡단할 와이어들에 대한 종단들을 포함할 수 있다. 스터브 영역은, 부분 인스턴스에, 제2 하위 영역의 부재 시에, 제1 하위 영역 내의 복수의 회로 컴포넌트들의 정확한 동작을 보장할 수 있다. 전체 인스턴스에 대한 제1 데이터 세트는 제1 하위 영역 및 제2 하위 영역을 사용하여 생성될 수 있고, 제1 데이터 세트는 전체 인스턴스의 제조를 위한 전체 인스턴스를 정의한다. 부분 인스턴스에 대한 제2 데이터 세트는 또한 제1 하위 영역 및 스터브 영역을 사용하여 생성될 수 있다. 제2 데이터 세트는 부분 인스턴스의 제조를 위한 부분 인스턴스를 정의한다. 일 실시예에서, 이 방법은 제2 하위 영역을 제3 하위 영역 및 제4 하위 영역으로 분할하는 제2 촙 라인을 제2 하위 영역에 정의하는 단계를 더 포함할 수 있다. 제3 하위 영역은 제1 하위 영역에 인접할 수 있고, 제3 하위 영역 및 제1 하위 영역은 집적 회로의 제2 부분 인스턴스를 표현할 수 있다. 이 방법은 제1 하위 영역, 제3 하위 영역 및 제2 스터브 영역을 사용하여 제2 부분 인스턴스에 대한 제3 데이터 세트를 생성하는 단계를 더 포함할 수 있다. 제3 데이터 세트는 제2 부분 인스턴스의 제조를 위한 제2 부분 인스턴스를 정의한다.
전술된 바와 같이, 스터브 영역은 회로부를 배제할 수 있다. 예를 들어, 스터브 영역은 반도체 기판에 형성된 트랜지스터들 또는 다른 회로들과 같은 능동 회로부를 배제할 수 있다. 스터브 영역은 금속화 층들에 또한 형성될 수 있는 회로들(예를 들어, 명시적 저항기들, 인덕터들 또는 커패시터들)을 배제할 수 있다. 금속화 층들은 기생 속성들(예를 들어, 저항, 인덕턴스, 및 커패시턴스)을 갖지만, 명시적으로 정의된 회로들은 허용되지 않을 수 있다. 스터브 영역은 반도체 기판의 표면 영역 위의 하나 이상의 금속화 층들에 배선만을 포함할 수 있다.
다른 방법은, 예를 들어, 반도체 제조 설비 또는 "파운드리"에서 제1 데이터 세트 및 제2 데이터 세트를 수신하는 단계를 포함할 수 있다. 이 방법은, 제1 데이터 세트에 기초하여 집적 회로의 제1 복수의 전체 인스턴스를 제조하는 단계, 및 제2 데이터 세트에 기초하여 집적 회로의 제2 복수의 부분 인스턴스를 제조하는 단계를 더 포함할 수 있다.
본 개시내용에 따른 부분 인스턴스를 구현하는 집적 회로는, 집적 회로를 형성하는 반도체 기판의 표면 상에 물리적으로 배열된 복수의 회로 컴포넌트들; 및 표면의 단일 에지(예를 들어, 스터브 영역)를 따르는 복수의 와이어 종단들을 포함할 수 있다. 복수의 와이어 종단들은, 복수의 회로 컴포넌트들 중 하나 이상에 대한 입력들인 와이어들 상에 고정된 디지털 로직 레벨들을 제공하기 위해, 집적 회로의 복수의 공급 와이어들에 전기적으로 연결될 수 있다. 전력 공급 와이어들은 집적 회로의 금속화 층들의 전력 공급 그리드(예를 들어, 전력 및/또는 접지)의 일부일 수 있다. 전력 및 접지 그리드들은 또한 전력 및 접지 그리드들로 지칭될 수 있다. 와이어 종단들에 의해 종료되는 입력 와이어들은 단일 에지와 교차하도록 배향되고, 집적 회로 내의 와이어들을 구동하도록 구성된 회로가 없다(예를 들어, 와이어들은 부분 인스턴스에 존재하지 않은 제2 하위 영역 내의 회로 컴포넌트들에 의해 전체 인스턴스에서 구동됨). 복수의 와이어 종단들을 포함하는 단일 에지를 따르는 영역은 능동 회로 요소들을 또한 배제한다. 예를 들어, 단일 에지를 따르는 영역은 반도체 기판의 표면 영역 위의 하나 이상의 금속화 층들에 배선만을 포함할 수 있다.
본 명세서에서 설명되는 방법은 집적 회로에 대한 전체 설계 프로세스의 다양한 영역들에 영향을 미칠 수 있다. 예를 들어, 플로어 계획은, 다양한 회로 컴포넌트들이 반도체 기판 상의 영역들에 할당되는 설계 프로세스의 요소이다. 플로어 계획 동안, 부분 인스턴스들의 존재 및 촙 라인들의 위치가 고려될 수 있어서, 모든 인스턴스들에 포함된 회로 컴포넌트들이 제1 하위 영역에 있고 다른 회로 컴포넌트들이 제2 하위 영역(또는 제3 및 제4 하위 영역들 등)에 포함되는 것을 보장한다. 추가적으로, 하위 영역들의 형상은 전체 인스턴스 및 부분 인스턴스들 둘 모두에서 영역의 효율적인 사용을 제공하도록 신중하게 설계될 수 있다. 전체 인스턴스 전반에 걸쳐 회로 컴포넌트들 사이의 통신을 제공할 수 있는 메인 버스들 또는 다른 상호연결부는 다양한 인스턴스들에서 통신을 정확하게 관리하도록 설계될 수 있다(예를 들어, 부분 인스턴스에서, 버스들은 스터브 영역에서 종료될 수 있거나 또는 스터브 영역에서 연결되지 않을 수 있고, 따라서, 통신들은 스터브 영역의 방향으로 송신되지 않아야 한다). 플로어 계획은 또한 전체 인스턴스 및 부분 인스턴스들 둘 모두에 대한 테이프 아웃에 대한 요건들을 고려할 수 있다(예를 들어, 아래에서 더 상세히 논의되는 바와 같은 다양한 배제 구역들). 추가적으로, 플로어 계획은, 부분 인스턴스들이 정확하게 동작할 것이라는 검증을 단순화하기 위해, 촙 라인을 횡단하는 와이어들의 수를 최소화하려고 시도할 수 있다.
일 실시예에서, 플로어 계획 단계에서의 고려사항은, 부분 인스턴스들에 대한 초핑에 의해 영향을 받을 수 있는 특정 임계 연결들의 정의를 포함할 수 있다. 클록 상호연결부 및 아날로그 상호연결부가 예들일 수 있다. 클록 상호연결부(또는 "클록 트리")는 종종, 클록 생성기 또는 클록 소스로부터 회로 컴포넌트들의 다양한 상태 요소들에서의 클록 종단들까지의 거리 및 전기 부하가 대략 동일하거나 또는 "밸런싱"되도록 설계된다. 상태 요소들은 예를 들어, 플립플롭들("플롭들"), 레지스터들, 래치들, 메모리 어레이들, 및 다른 클록킹된 저장 디바이스들을 포함할 수 있다.
집적 회로 설계의 다양한 인스턴스들 사이의 밸런스를 유지하기 위해, 각각의 하위 영역 내의 로컬 클록 소스들과 그 하위 영역 내의 상태 요소들 사이에 독립적인 클록 트리들이 정의될 수 있다. 예를 들어, 도 5는 집적 회로(칩 18)의 전체 인스턴스 및 촙 라인들(20A-20B)이 부분 인스턴스들로의 초핑을 위해 전체 인스턴스의 하위 영역들을 구획하는 실시예를 예시하는 블록도이다. 로컬 클록 소스(들)(30A-30C)가 예시되며, 이들 각각은 각각의 하위 영역 내의 라인들에 의해 예시된 독립적인 클록 트리들을 구동한다. 클록 트리들은 촙 라인들(20A-20B)을 가로지르지 않을 수 있다. 즉, 주어진 하위 영역 내의 클록 트리는 그 하위 영역 내에 유지될 수 있다.
클록 소스는, 자신의 클록 트리에 커플링된 회로부에 대한 클록 신호를 생성하도록 구성된 임의의 회로일 수 있다. 예를 들어, 클록 소스는 위상 잠금 루프(PLL), 지연 잠금 루프(DLL), 클록 분할기 회로 등일 수 있다. 클록 소스는 외부 클록 신호가 제공되는 집적 회로에 대한 클록 입력에 커플링될 수 있고, 클록 소스는 위상 또는 클록 에지들을 외부 신호에 대해 잠금하는 동안 외부 클록 신호를 주파수에서 곱하거나 주파수에서 나눌 수 있다.
따라서, 방법은, 제1 하위 영역에서, 제1 하위 영역 내에서 클록들을 분배하기 위해 하나 이상의 제1 클록 트리들을 정의하는 단계, 및 제2 하위 영역에서, 제2 하위 영역과 함께 분산형 클록들에 대해 하나 이상의 제2 클록 트리들을 정의하는 단계를 더 포함할 수 있다. 하나 이상의 제1 클록 트리들은 전체 인스턴스에서 하나 이상의 제2 클록 트리들로부터 전기적으로 격리될 수 있다. 클록 트리들은 도 5에 도시된 바와 같이 물리적으로 독립적일 수 있다(예를 들어, 상이한 로컬 클록 소스들에 연결됨). 클록 트리들은 다른 하위 영역으로 촙 라인을 가로지르지 않을 수 있다. 제조 방법에서, 제1 데이터 세트는 제1 하위 영역 내에 클록들을 분배하기 위한 하나 이상의 제1 클록 트리들 및 제2 하위 영역과 함께 클록들을 분배하기 위한 하나 이상의 제2 클록 트리들을 더 포함할 수 있고, 하나 이상의 제1 클록 트리들은 전체 인스턴스에서 하나 이상의 제2 클록 트리들로부터 전기적으로 격리될 수 있다.
일 실시예에서, 집적 회로는 제1 영역의 제1 하위 영역 내에 클록들을 분배하기 위한 하나 또는 이상의 제1 클록 트리들; 및 제2 하위 영역과 함께 분산형 클록들에 대한 하나 이상의 제2 클록 트리들을 포함할 수 있다. 하나 이상의 제1 클록 트리들은 하나 이상의 제2 클록 트리들로부터 전기적으로 격리될 수 있다.
도 6은 촙 라인들(20A-20B)에 의해 구획된 전체 다이(18)의 일 실시예, 및 촙 라인들(20A-20B)에 의해 정의된 각각의 하위 영역 내의 로컬 아날로그 패드들(32A-32C)의 제공의 블록도이다. 아날로그 패드들(32A-32C)은 칩에 대한 아날로그 입력들을 위한 연결 포인트들을 제공할 수 있다. 아날로그 신호들은 종종, 아날로그 신호들의 정확도 및 기능성에 영향을 미칠 수 있는 디지털 잡음으로부터의 차폐와 같은 특별한 요건들을 가지며, 이러한 디지털 잡음은 디지털 값들에서만 의미를 갖고 이들 사이에서 전환하지 않는 디지털 신호들과는 대조적으로 연속적인 값 신호들이다. 각각의 하위 영역 내에서 아날로그 요건들이 충족됨을 보장하는 것은 집적 회로의 설계를 전체적으로 단순화할 수 있다. 일 실시예에서, 주어진 하위 영역 내에서 아날로그 신호들의 사용이 없다면, 그 하위 영역은 아날로그 패드들 및 신호 라우팅을 배제할 수 있다.
따라서, 방법은, 제1 하위 영역에서 하나 이상의 제1 아날로그 입력들을 정의하고, 제2 하위 영역에서 하나 이상의 제2 아날로그 입력들을 정의하는 단계를 더 포함할 수 있다. 하나 이상의 제1 아날로그 입력은 제1 하위 영역과 함께 유지될 수 있고 하나 이상의 제2 아날로그 입력들은 제2 하위 영역 내에 유지될 수 있다. 즉, 입력들 상에서의 또는 입력들로부터 유도된 아날로그 신호들은 촙 라인들(20A-20B)을 가로지르지 않는 와이어들을 통해 전달될 수 있다. 제조 방법에서, 제1 데이터 세트는 제1 하위 영역 내의 하나 이상의 제1 아날로그 입력들을 더 포함할 수 있고, 하나 이상의 제1 아날로그 입력들은 제1 하위 영역과 함께 유지되고, 제1 데이터 세트는 제2 하위 영역 내에 하나 이상의 제2 아날로그 입력들을 더 포함하고, 하나 이상의 제2 아날로그 입력들은 제2 하위 영역 내에 유지된다.
본 개시내용에 따르면, 집적 회로는, 집적 회로를 형성하는 반도체 기판의 표면의 제1 영역 내에 물리적으로 배열된 제1 복수의 회로 컴포넌트들, 및 집적 회로를 형성하는 반도체 기판의 표면의 제2 영역 내에 물리적으로 배열된 제2 복수의 회로 컴포넌트들을 포함할 수 있다. 하나 이상의 제1 아날로그 입력들이 제1 영역 내에 제공될 수 있으며, 여기서 하나 이상의 제1 아날로그 입력들은 제1 복수의 회로 컴포넌트들에 대해 격리된다. 하나 이상의 제2 아날로그 입력들이 제2 영역 내에 있고, 여기서 하나 이상의 제2 아날로그 입력들은 제2 복수의 회로 컴포넌트들에 대해 격리된다.
고려될 수 있는 집적 회로들의 다른 특징은 DFT(design for test) 전략이다. DFT는 일반적으로, DFT 인터페이스가 정의되는 포트 또는 포트들, 이를테면 JTAG(joint test access group) 규격들과 호환가능한 인터페이스를 포함한다. DFT는, 상태가 스캔 인 및 스캔 아웃될 수 있도록 설계 내의 상태 요소들의 스캔 체인들을 정의하는 것을 포함할 수 있고, 스캔 체인들은, 예를 들어 주어진 하위 영역 내에 유지되도록 정의될 수 있다. 크로스-촙(cross-chop) 라인 통신을 가능한 한 최소화하기 위해, 별개의 DFT 포트들이 각각의 하위 영역 내에 제공될 수 있다. 크로스-촙 라인 통신이 필요한 경우, 다른 신호들과 유사하게, 그러한 신호들은 스터브 영역에서 종료되고(하위 영역으로의 입력들) 연결되지 않을 수 있다(하위 영역의 출력들). 일 실시예에서, 스캔 네트워크들 및 다른 DFT 네트워크들은 계층적 링들로서 설계될 수 있어서, 제거된 회로 컴포넌트들의 부분들은 나머지 네트워크에 대한 추가의 영향 없이 DFT 네트워크로부터 연결해제될 수 있다.
일 실시예에서, 일부 회로 컴포넌트들은 전체 인스턴스 내에서 여러 번 인스턴스화될 수 있다. 인스턴스들 중 하나 이상은 부분적 인스턴스들 중 하나 이상에 포함되지 않은 하위 영역들에 있을 수 있다. 이러한 회로 컴포넌트들은 인스턴스의 각각의 위치에서 모든 요건들(타이밍, 물리적, 전기적)을 충족시키도록 설계될 수 있고, 따라서 일부 다른 위치들에 대해 과잉 설계될 수 있다(예를 들어, 회로 컴포넌트는 그의 위치들 등에 걸친 최악의 클록 스큐(skew)에 대해 설계될 수 있다). 추가적으로, 부분 인스턴스들은 상이한 패키징 솔루션을 가질 수 있으며, 이는 패키지들의 차이들(예를 들어, 상이한 IR 전압 강하들)을 처리하기 위한 추가적인 설계를 요구할 수 있다.
일 실시예에서, 파운드리는 반도체 기판 상의 특정 "비-논리" 셀들의 제작을 요구할 수 있다. 이러한 셀들은 집적 회로 자체의 일부가 아니라, 제조 프로세스를 튜닝하기 위해 파운드리에 의해 사용될 수 있다. 파운드리-요구 셀들은 엄격한 규칙들을 가질 수 있고, 다이-크기 의존적일 수 있으며, 따라서 부분 인스턴스(들)에 셀들이 적절하게 위치되도록 전체 인스턴스의 플로어 계획에서 이들 셀들의 배치를 위한 계획이 필요할 수 있다.
도 7은 집적 회로 설계에 대한 다른 고려사항인 다양한 유형들의 배제 영역들(또는 배제 구역들)의 실시예를 예시한다. 도 7에서, 좌측에는 전체 다이(18)의 전체 인스턴스(칩 1)가 있고, 우측의 부분 인스턴스들과 함께, 최상부의 칩 3(전체 인스턴스에서의 그의 위치는 점선들(34)로 표시된 칩 라인(20B) 위에 있음) 및 최하부의 칩 2(전체 인스턴스에서의 그의 위치는 쇄선들(36)로 표시된 칩 라인(20A) 위에 있음)가 있다. 각각의 경우에, 칩들의 코너들은 반도체 기판 표면의 다른 부분들보다 회로부가 허용되지 않는(또는 훨씬 더 엄격한 설계 규칙들을 따라야 하는) 배제 구역들을 갖는다. 반도체 다이의 코너들에 대한 기계적 응력이 칩의 다른 위치들에서보다 더 클 수 있기 때문에, 코너 배제 구역들이 정의될 수 있다. 코너 배제 구역들은 도 7에서 참조 번호 38로 표시된, 교차 해칭된 영역들에 의해 표시된다.
따라서, 전체 인스턴스는 자신의 4개의 코너들 각각에서 코너 전용 구역들뿐만 아니라, 부분 인스턴스들에 대한 칩들의 코너들인 것으로 종료될 촙 라인들(20A-20B)에 인접한 하위 영역들의 코너들에서 칩의 측면들을 따른 "코너" 배제 구역들을 갖는다. 추가적인 코너 배제 구역은 전체 인스턴스의 코너 배제 구역들과 동일한 크기일 수 있거나, 또는 코너 배제 구역들의 크기가 전체 다이 크기로 스케일링되는 경우 상이한 크기들일 수 있다.
따라서, 방법은 반도체 기판의 각각의 코너들에 복수의 배제 구역들을 정의하는 단계를 더 포함할 수 있고, 회로 컴포넌트들은 집적 회로를 제조하기 위해 이용될 제조 프로세스의 기계적 요건들에 따라 복수의 배제 구역들로부터 배제된다. 이 방법은 촙 라인에 인접한 제1 하위 영역의 코너들에 추가적인 배제 구역들을 정의하는 단계를 더 포함할 수 있어서, 부분 인스턴스는 상부에 부분 인스턴스가 형성된 반도체 기판의 각각의 코너들에 배제 구역들을 포함한다. 제조 방법의 제1 데이터 세트는 반도체 기판의 각각의 코너들에 복수의 배제 구역들을 포함할 수 있고, 회로 컴포넌트들은 집적 회로를 제조하기 위해 이용될 제조 프로세스의 기계적 요건들에 따라 복수의 배제 구역들로부터 배제되고; 제1 데이터 세트는 제2 하위 영역에 인접한 제1 하위 영역의 코너들에 추가적인 배제 구역들을 포함하여, 부분 인스턴스는 상부에 부분 인스턴스가 형성된 반도체 기판의 각각의 코너들에 배제 구역들을 포함할 수 있다.
추가적으로, (예를 들어, 전체 인스턴스를 포함하는) 집적 회로는, 집적 회로를 형성하는 반도체 기판의 표면의 제1 영역 내에 물리적으로 배열된 제1 복수의 회로 컴포넌트들; 반도체 기판의 각각의 코너들에 있는 복수의 배제 구역들 - 회로 컴포넌트들은 집적 회로를 제조하기 위해 이용된 제조 프로세스의 기계적 요건들에 따라 복수의 배제 구역들로부터 배제됨 -; 및 반도체 기판의 한 쌍의 공칭적으로 평행한 에지들을 따라 각각의 코너들과 별개인 다른 복수의 배제 구역들을 포함할 수 있고, 회로 컴포넌트들은 다른 복수의 배제 구역들로부터 배제되고, 다른 복수의 배제 구역들은 복수의 배제 구역들과 실질적으로 동일하게 치수가 정해진다.
도 7은 또한, 도 7의 참조 번호 40에서 이중 교차 해칭된 영역들로 도시된, 집적 회로의 전체 인스턴스 및 부분 인스턴스들 상의 C4 범프들의 허용가능한 위치들을 예시한다. 이중 교차 해칭된 영역들(40)로 표시된 영역들 외부의 영역들은 C4 범프들에 대한 허용가능한 위치들(예를 들어, C4 범프들에 대한 배제 구역들)이 아닐 수 있거나, 또는 그러한 영역들에서의 C4 범프들의 배치에 대해 더 엄격한 규칙들이 있을 수 있다. 따라서, 각각의 인스턴스의 각각의 에지에 대해 허용가능한 위치들/배제 구역들이 존재한다. 즉, 전체 다이(18)의 주변부 주위뿐만 아니라 촙 라인들(20A-20B)의 양측들 상에 C4 배제 구역들이 존재할 수 있다. 따라서, 방법은 제2 하위 영역에 인접한 제1 하위 영역의 에지를 따라 제2 배제 구역을 정의하는 단계를 더 포함할 수 있고, 제어된 붕괴 칩 연결(C4) 연결부들은 제2 배제 구역에서 배제된다. 제조 방법에서, 제1 데이터 세트는 제2 하위 영역에 인접한 제1 하위 영역의 에지를 따라 제2 배제 구역을 더 포함할 수 있고, 제어된 붕괴 칩 연결(C4) 연결부들은 제2 배제 구역에서 배제된다. 일 실시예에서, 집적 회로는 복수의 배제 구역들 사이의 라인을 따르는 제2 배제 구역을 더 포함할 수 있고, 제어된 붕괴 칩 연결(C4) 연결부들은 제2 배제 구역에서 배제된다.
도 8은 도 2에 도시된 칩 3 실시예에 대한 회로 컴포넌트(10B) 및 스터브 영역(22)의 일 실시예를 더 상세히 예시하는 블록도이다. 회로 컴포넌트(10A)에 대한 유사한 연결들이 또한 제공될 수 있고, 도 3의 스터브 영역(24)은 회로 컴포넌트들(10A-10C)과 유사할 수 있다. 스터브 영역(22)은, 스터브 영역(22)의 에지에 대한 종단들로부터 도 8의 점선들로 예시된, 전체 인스턴스의 부분이지만 부분 인스턴스의 부분이 아닌 제거된 회로 컴포넌트에 의해 제공될 입력들에 대한 회로 컴포넌트(10B)에 대해 (타이 업되거나(tied up) 이진 1에 연결될 입력들에 대한) VDD 종단들(50) 및 (타이 다운되거나(tied down) 이진 0에 연결될 입력들에 대한) VSS 또는 접지 종단들(52)과 같은 종단들을 포함할 수 있다. 주어진 종단에 대한 이진 1 또는 이진 0의 선택은 회로 컴포넌트(10B) 내의 입력의 논리적 효과에 의존할 수 있다. 일반적으로, 종단은, (예를 들어, 제거된 회로 컴포넌트의 출력으로서) 전체 인스턴스에서 입력을 소싱할 제거된 회로 컴포넌트로부터의 추가 입력 없이 수신 회로가 진행하게 할 어떠한 값으로도 선택될 수 있다. 신호를 위한 구동 회로가 없을 때, 종단은 알려진 값을 제공한다. 제거된 회로 컴포넌트에 연결될 회로 컴포넌트(10B)의 출력들은 스터브 영역(22)(예를 들어, 참조 번호들 54 및 56)에 도달할 수 있지만, 연결되지 않을 수 있다(예를 들어, 수신 회로에 연결되지 않음). 전체 인스턴스 또는 더 큰 부분 인스턴스에서, 출력 와이어들(54 및 56)은 부분 인스턴스에 존재하지 않는 회로 컴포넌트들(도 8에서 점선들로 예시됨)까지 연장될 수 있다.
따라서, 스터브 영역에서 종료되는 입력들은, 스터브 영역으로 연장되고, 스터브 영역이 배열되는 집적 회로의 에지와 교차하도록 배향되는 와이어들일 수 있다. 입력들은, 집적 회로 내의 와이어들을 구동하도록 구성된 회로가 없다(예를 들어, 와이어들은 부분 인스턴스에 존재하지 않은 회로 컴포넌트들에 의해 전체 인스턴스에서 구동됨).
다른 경우들에서, 제거된 회로 컴포넌트로부터의 입력을 로컬 입력으로 대체하는 것이 바람직할 수 있다. 예를 들어, 테스트를 위해 사용되는 루프 백 회로 또는 링 상호연결 구조는 부분 인스턴스에서 루프백/링을 국부적으로 완성할 수 있다. 이러한 인스턴스들을 지원하기 위해, 수신 회로 컴포넌트(예를 들어, 회로 컴포넌트(10B))는 제거된 컴포넌트로부터의 입력과 로컬 신호 사이에서 선택하기 위한 로직 회로를 포함할 수 있다. 예를 들어, 도 8에서, 회로 컴포넌트(10B)는 복수의 멀티플렉서(mux)들(58 및 60)을 포함할 수 있다. 각각의 mux(58 또는 60)는 부분 인스턴스에 존재하지 않는 회로 컴포넌트로부터 일반적으로 소싱되는 입력 와이어에 커플링될 수 있다. 입력 와이어는 스터브 영역(22)에 도달할 수 있지만 연결되지 않을 수 있다. 대안적으로, 입력 와이어는 원하는 경우 이진 1 또는 0으로 종료될 수 있다. 그러한 입력을 종료하는 것은, 플로팅 입력이 상당한 기간 동안 전력과 접지 사이에 있는 경우, 그러한 입력이 플로팅되는 것 그리고 가능하게는 낭비되는 전류를 야기하는 것을 방지할 수 있다. mux 선택 와이어는 또한 스터브 영역(22)으로부터 제공될 수 있고, 이진 0(VSS) 또는 이진 1(VDD)로 종료될 수 있으며, 이는 mux가 로컬 와이어를 선택하게 할 수 있다. (예를 들어, 전체 또는 더 큰 부분 인스턴스에) 입력 와이어의 소스 회로 컴포넌트가 존재할 때, mux 선택 와이어는 소스 회로 컴포넌트(도 8의 점선)로부터 제공될 수 있다. 그러한 경우, mux 선택 와이어는 동작 동안 원하는 대로 로컬 입력과 소스 회로 컴포넌트로부터의 입력 사이에서 선택할 수 있는 동적 신호일 수 있거나, 또는 스터브 영역(22) 내의 mux 선택 와이어와 비교하여 반대 이진 값에 연결될 수 있다.
따라서, 방법의 일 실시예에서, 전체 인스턴스는, 제1 하위 영역 내의 복수의 회로 컴포넌트들에 대한 복수의 입력들인 복수의 출력들을 포함할 수 있는, 제2 하위 영역 내의 다른 복수의 회로 컴포넌트들을 포함할 수 있다. 복수의 회로 컴포넌트들은 입력들로서 복수의 입력들의 각각의 입력들을 갖는 복수의 멀티플렉서 회로들을 포함할 수 있다. 방법은 스터브 영역에서, 복수의 멀티플렉서 회로들에 대한 복수의 선택 신호들을 표현하는 단계를 포함할 수 있다. 복수의 선택 신호들은, 복수의 입력들이 연결되는 mux 입력들과 상이한 복수의 멀티플렉서 회로들의 입력을 선택하는 이진 값으로 스터브 영역 내에서 종료될 수 있다. 일 실시예에서, 복수의 선택 신호들은 상이한 이진 값으로 제2 하위 영역에서 종료될 수 있다.
일 실시예에서, 집적 회로는 집적 회로를 형성하는 반도체 기판의 표면 상에 물리적으로 배열된 복수의 회로 컴포넌트들을 포함할 수 있다. 복수의 회로 컴포넌트들은 복수의 멀티플렉서 회로들을 포함하며, 복수의 멀티플렉서 회로들의 주어진 멀티플렉서 회로는 제1 입력 와이어, 제2 입력 와이어, 및 선택 제어 와이어를 갖는다. 집적 회로는 표면의 단일 에지를 따르는 영역을 더 포함할 수 있고, 영역은 선택 제어 와이어의 전기 소스이고, 제2 입력 와이어들은 표면의 단일 에지에 도달하고 연결되지 않으며, 선택 제어 와이어들은 집적 회로의 공급 와이어들에 전기적으로 연결된다. 사용 동안 공급 와이어들 상의 전압은 복수의 멀티플렉서 회로들로 하여금 제1 입력 와이어들을 복수의 멀티플렉서 회로들의 출력들로서 선택하게 하는 디지털 로직 레벨에 대응한다.
이제 도 9를 참조하면, 칩(18)의 전체 인스턴스들일 수 있는 한 쌍의 집적 회로들(76 및 78)의 일 실시예의 블록도가 도시된다. 촙 라인들(20A-20B)은 집적 회로(76)에 대해 도시되고, 집적 회로(76)의 특정한 추가적인 세부사항들이 실시예에 대해 도시된다. 특히, 집적 회로(76)는 집적 회로(76)에서 통신 네트워크의 일부일 수 있는 복수의 네트워크 스위치들(70A-70H)을 포함할 수 있다. 통신 네트워크는 회로 컴포넌트들의 예일 수 있고, 다른 회로 컴포넌트들(예를 들어, 프로세서들, 메모리 제어기들, 주변기기들 등) 사이의 통신을 제공하도록 구성될 수 있다.
네트워크 스위치들(70A-70H)은 링, 메시, 스타 등과 같은 임의의 토폴로지를 사용하여 서로 커플링될 수 있다. 주어진 통신 메시지 또는 패킷이 네트워크 스위치(70A-70H)에서 수신될 때, 네트워크 스위치(70A-70H)는 패킷을 자신의 목적지를 향해 이동시키기 위해 패킷이 어느 출력 상에서 송신될지를 결정할 수 있다. 방향은, 네트워크 스위치들이 집적 회로의 어느 인스턴스 상에 제조되었는지에 의존할 수 있다. 예를 들어, 전체 인스턴스가 제조되면, 네트워크 스위치(70E)와 같은 주어진 네트워크 스위치는 도 9에 도시된 바와 같이 상향 또는 하향으로 패킷을 송신할 수 있다(또는, 네트워크 스위치(70E)에 커플링된 도시되지 않은 다른 회로 컴포넌트가 패킷의 타겟인 경우, 네트워크 스위치(70E)는 패킷을 그 회로 컴포넌트에 송신할 수 있다). 그러나, 부분 인스턴스가 촙 라인(20A)에 기초하여 형성되면, 네트워크 스위치(70E)는 거기에 수신 회로가 없기 때문에 하향으로 패킷들을 송신하지 않을 수 있다. 유사하게, 네트워크 스위치(70F)는 그 시나리오에서 하향으로 패킷들을 송신하지 않을 수 있다. 부분 인스턴스가 촙 라인(20B)에 기초하여 형성되면, 네트워크 스위치들(70C 및 70D)은 하향 방향으로 패킷들을 송신하지 않을 수 있다.
따라서, 네트워크 스위치들(70A-70H) 중 적어도 일부의 동작은 인스턴스에 의존할 수 있다. 차이들을 관리하기 위한 다수의 방식들이 있을 수 있다. 예를 들어, 스위치들에 대한 입력은 인스턴스(전체 인스턴스에 대해 스터브 영역들에 의해 또는 촙 라인(20B) 아래의 영역 내의 회로 컴포넌트에 의해 출력됨)를 특정할 수 있다. 예시된 실시예에서, 라우팅 테이블 또는 다른 프로그래밍가능 자원(74)이 각각의 네트워크 스위치(70A-70H)에 포함될 수 있다. 라우팅 테이블(74)은 제자리에 있는 인스턴스에 기초하여 (예를 들어, 부트 코드 또는 다른 펌웨어에 의해) 초기화 시에 프로그래밍될 수 있다.
유사하게, 다양한 인스턴스들은 상이한 수들의 메모리 제어기들을 가질 수 있다(예를 들어, 제거된 하위 영역들의 회로 컴포넌트들은 메모리 제어기들을 포함할 수 있고, 나머지 하위 영역들에는 추가적인 메모리 제어기들이 존재할 수 있다). 메모리 어드레스 공간은 메모리 제어기들 상에 맵핑될 수 있고, 따라서 맵핑은 주어진 전체 또는 부분 인스턴스에 실제로 존재하는 메모리 제어기들의 수에 기초하여 변할 수 있다. 메모리 동작 패킷들을 반송하는 네트워크 스위치들(70A-70H)은 또한 프로그래밍가능 자원을 사용하여 어드레스 맵핑을 설명하는 데이터로 프로그래밍가능할 수 있다. 적절히 동작하기 위해 어드레스 맵핑을 통지받을 필요가 있을 수 있는 다른 회로 컴포넌트들은 유사하게 프로그래밍가능 자원을 가질 수 있다.
예시된 실시예에서, 한 쌍의 집적 회로들(76 및 78)은 서로 통신하고, 이들이 하나의 집적 회로 다이인 것처럼 동작하도록 구성될 수 있다. 예를 들어, 각각의 집적 회로(76 및 78) 상의 네트워크 스위치들(70A-70H)은 집적 회로들(76 및 78)에 걸쳐 하나의 통신 상호연결부를 형성하기 위해 다이 투 다이(D2D) 인터페이스 회로(72)를 통해 통신하도록 구성될 수 있다. 따라서, 어느 하나의 집적 회로 다이 상에서 발생하는 패킷은 다른 집적 회로 다이 상에 목적지를 가질 수 있고, D2D 인터페이스 회로들(72)을 통해, 끊김없이 그리고 따라서 시스템에서 실행되는 소프트웨어에 본질적으로 보이지 않게 타겟에 송신될 수 있다.
집적 회로의 부분 인스턴스들이 전체 미만의 회로 인스턴스를 포함하기 때문에, 부분 인스턴스들 각각으로부터 제거될 수 있는 컴포넌트 회로들 중 하나는 D2D 인터페이스 회로(72)이다. 즉, D2D 인터페이스 회로(72)는 (예를 들어, 예시된 실시예에서 촙 라인(20A) 아래의) 부분 인스턴스들 각각으로부터 제거되는 하위 영역에서 인스턴스화될 수 있다.
도 10은 전체 및 부분 인스턴스들을 지원하는 집적 회로의 일 실시예에 대한 설계 및 확인/검증 방법의 다양한 부분들을 예시하는 흐름도이다. 전체 인스턴스에 대한 설계 데이터베이스는 도 10의 최상부 중심에 도시된다(참조 번호 80). 부분 인스턴스들에 대한 설계 데이터베이스들은 전체 인스턴스의 좌측 및 우측에 도시된다(참조 번호들 82 및 84). 설계 데이터베이스들(82 및 84)은, 도 10에 도시된 바와 같이 대응하는 스터브 영역들(22 및 24)과 함께, 화살표들(86 및 88)로 표시된 바와 같이, 설계 데이터베이스(80)로부터 그러한 집적 회로들을 형성하는 하위 영역들에 대한 콘텐츠를 인출한다.
데이터베이스들(80, 82, 및 84)은, 설계들이 타이밍 요건들을 충족함을 검증하기 위한 정적 타이밍 분석(블록(90)), 설계들이 다양한 물리적 설계 규칙들을 충족함을 검증하기 위한 물리적 검증(블록(92)), 및 설계들이 (전체 인스턴스와 부분 인스턴스 사이에서 다를 수 있는, 각각의 설계에 대해 사용될 패키지와 함께) 전력 그리드 안정성, 임피던스 등과 같은 전기적 요건들을 충족함을 검증하기 위한 전기적 검증(블록(94))을 사용하여 분석될 수 있다. 물리적 설계 규칙들은 디바이스들 사이의 최소 간격들 및/또는 배선 층들에서의 배선, 디바이스 크기들 등과 같은 특징들을 포함할 수 있다. 물리적 설계 규칙들은 또한, 전술된 바와 같이 코너 배제, C4 범프 배제들 등을 포함할 수 있다. 추가적으로, 일 실시예에서, 부분 인스턴스들에서 연결되지 않은 회로 컴포넌트들로부터의 출력들로 인해, 다루어질 추가적인 "안테나" 규칙들이 존재할 수 있다.
다양한 검증 단계들의 결과들은 검토되고, 다양한 검증들의 후속 실행들(분류 ECO 블록들(96, 98, 100))에서 결과들을 개선할 것으로 예상될 수 있는 설계 변경들(엔지니어링 변경 명령, 즉, ECO들)에 대해 분류될 수 있다. ECO들은, 어느 인스턴스가 ECO를 초래하였는지와 무관하게, 설계 데이터베이스(80)(화살표들(102, 104, 및 106))에서 구현될 수 있다. 따라서, 설계에 필요한 최악의 경우의 정정이 부분 인스턴스들 중 하나로부터 기인한 경우, 설계 데이터베이스(80)는 다소 과잉설계될 수 있다. 설계 데이터베이스들(82 및 84)은, 부분 인스턴스들에 포함된 하위 영역에서 변경들이 이루어진 경우들에서, 부분 인스턴스들을 업데이트하기 위해 변경들이 이루어진 후에, 설계 데이터베이스(80)로부터 추출될 수 있다.
다양한 검증들이 완료되면(클린 블록들(108, 110, 및 112)), 전체 인스턴스 및 부분 인스턴스들에 대해 테이프 아웃들이 수행될 수 있어서(블록들(114, 116, 및 118)) 각각의 인스턴스에 대한 데이터 세트들로 이어질 수 있다(블록들(120, 122, 및 124)).
다양한 실시예들에서 추가적인 분석 및 설계 흐름들이 있을 수 있지만, 유사하게, 다양한 설계 노력들에 의해 식별된 임의의 ECO들이 전체 인스턴스 설계 데이터베이스(80)에서 구현되고, 이어서, 부분 설계 데이터베이스들(82 및 84)로 추출될 수 있다.
집적 회로 설계의 전체 및 부분적 인스턴스들에 대한 지원에 의해 영향을 받을 수 있는 집적 회로 설계 방법의 다른 영역은 설계 검증(DV)이다. DV는 일반적으로, 설계가 예상대로 동작하고 설계에 대한 기능 및/또는 성능 요건들을 충족함을 보장하기 위해, 주어진 회로 컴포넌트와 같은 집적 회로 설계 또는 그 일부를 테스트하는 것을 포함한다. 예를 들어, DV는 예상 결과들에 대해 설계 및 측정 동작을 자극하기 위한 테스트 벤치를 정의하는 것을 포함할 수 있다. 테스트 벤치는, 예를 들어, 자극을 설명하는 추가적인 HDL 코드를 포함할 수 있다. 설계의 모든 인스턴스들에 대해 DV를 수행하기 위한 상당한 재작업 및 추가적인 자원들을 회피하기 위해, 각각의 인스턴스를 커버하는 구성가능한 테스트 벤치 환경이 정의될 수 있다. 컴포넌트 레벨에서, 인스턴스들 사이의 칩-레벨 차이들의 재현은 컴포넌트들을 테스트하기 위해 사용될 수 있다.
도 11은 칩-레벨 DV에 대한 테스트 벤치 배열의 일 실시예를 예시하는 블록도이다. 테스트 벤치는 이러한 예에서 Chip1(전체 인스턴스), Chip2(부분 인스턴스) 또는 Chip3(부분 인스턴스)이 되도록 선택될 수 있는 정의 진술($DEFINE)을 포함할 수 있는 테스트 최상위 레벨(170)을 포함할 수 있다. 즉, 주어진 시뮬레이션에 대해, $DEFINE 진술은 테스트되고 있는 인스턴스(라벨들 Chip1, Chip2, 또는 Chip3 중 하나)로 설정될 수 있다. 테스트 최상위 레벨(170)은 테스트 중인 디바이스(DUT)(172)(예를 들어, 그 부분 및 전체 인스턴스들의 집적 회로) 및 테스트 벤치(TB)(174)를 더 포함할 수 있다.
DUT(172)는 인스턴스들 각각에 포함된 집적 회로의 부분(예를 들어, 이 예에서는 각각의 인스턴스에 공통인 회로 컴포넌트들(10A-10B))을 포함할 수 있다. 공통 부분(176)은 주어진 시뮬레이션에 대해 DUT(172)에 조건 없이 포함될 수 있다. 주어진 시뮬레이션에서 어느 인스턴스가 테스트되고 있는지에 따라 3개의 추가 부분들 중 하나가 조건부로 포함될 수 있다. 예를 들어, 칩 1이 테스트되고 있을 때(그리고 이에 따라 $DEFINE 진술이 Chip1을 언급함), 다른 회로 컴포넌트들(10C-10D)이 포함될 수 있다(참조 번호 178). 칩 2가 테스트되고 있다면(그리고 그에 따라 $DEFINE 진술이 Chip2를 언급하면), 회로 컴포넌트(10C) 및 스터브(24)가 포함될 수 있다(참조 번호 180). 칩 3이 테스트되고 있다면(그리고 그에 따라 $DEFINE 진술이 Chip3을 언급하면), 최악의 경우 스터브(22)가 포함될 수 있다(참조 번호 182).
테스트 벤치(174)는 $DEFINE 진술에 기초하여 유사하게 구성가능할 수 있다. 테스트 벤치(174)는 공통 부분(176)에 대응하는 공통 부분(184)(예를 들어, 공통 부분(176)에 대한 자극)을 포함할 수 있다. 다른 부분들(184, 186, 또는 188)은 각각 Chip1, Chip2 및 Chip3을 인용하는 $DEFINE 진술에 기초하여 선택적으로 포함될 수 있다. 대응하는 부분들(178, 180, 및 182)에 대한 자극이 각각 포함될 수 있다. 즉, 회로 컴포넌트들(10C-10D)의 조합에 대한 자극이 부분(186)에 포함될 수 있다. 회로 컴포넌트(10C)와 스터브(24)의 조합에 대한 자극은 부분(188)에 포함될 수 있고; 스터브(22)에 대한 자극은 부분(190)에 포함될 수 있다. 일 실시예에서, 스터브(22)가 임의의 능동 회로부를 포함하지 않을 수 있기 때문에, 부분(190)은 생략될 수 있다. 대안적으로, 공통 부분(176)에서의 동작의 차이들은 부분(190)에서의 캡처들일 수 있다.
따라서, 테스트 최상위 레벨(170)의 동일한 전체 셋업은 설계를 선택하기 위한 $DEFINE 진술의 변화만으로 설계의 임의의 인스턴스의 시뮬레이션을 가능하게 한다.
도 12는 복제를 통한 회로 컴포넌트-레벨 테스팅의 예를 예시한다. 이 예에서, 회로 컴포넌트(10C)와 회로 컴포넌트(10B) 사이에 특정 입력들/출력들(예를 들어, 인터페이스)을 갖는 칩(1)이 도시된다. 회로 컴포넌트들(10A 및 10D) 중 다른 것들 사이의 다른 인터페이스들이 회로 컴포넌트(10B)에 의해 수신되지만, 이들은 간략화를 위해 도 12에 예시되지 않는다.
따라서, 회로 컴포넌트(10B)에 대한 테스트 배열은 DUT의 회로 컴포넌트(10B)(참조 번호 192)를 포함할 수 있다. 회로 컴포넌트(10B)와 회로 컴포넌트(10C) 사이의 인터페이스는 테스트 벤치(194)에서 회로 컴포넌트(10C)의 모델을 통해 모델링될 수 있다. 모델은 회로 컴포넌트(10C)의 거동 모델일 수 있다. 대안적으로, 모델은, 인터페이스 상에서 회로 컴포넌트(10C)의 동작을 충실하게 재현하지만 많은 내부 동작들을 생략할 수 있는 회로 컴포넌트(10C)의 버스 기능 모델일 수 있다. 임의의 모델이 사용될 수 있다. 테스트 배열은 칩 3 배열을 테스트하기 위해 복제될 수 있으며, 예를 들어, 여기서 회로 컴포넌트(10C)로부터 소싱된, 인터페이스 상의 회로 컴포넌트(10B)에 대한 다양한 입력 신호들을 타이 업 및 타이 다운하기 위해 스터브(22)가 포함된다. 재현된 배열은 DUT(192), 및 스터브(22)의 타이 업들 및 타이 다운들을 인스턴스화하는 테스트 벤치(196)를 포함할 수 있다.
일 실시예에서, 설계 통합(DI)이 또한 수정될 수 있다. 설계 통합은 다양한 회로 컴포넌트들(10A-10D)을 연결하는 것, 회로 컴포넌트들(10A-10D) 사이의 정확한 통신을 허용할 수 있는 임의의 필요한 "글루 로직(glue logic)"을 제공하는 것 등의 프로세스를 포함할 수 있다. 집적 회로의 상이한 인스턴스들이 테이프 아웃될 때 다양한 구성이 변할 수 있다. 예를 들어, 네트워크 스위치들(70A-70H)(또는 주어진 인스턴스에 포함된 스위치들의 서브세트들)을 통한 패킷들의 라우팅은 인스턴스에 의존할 수 있다. 따라서, 라우팅 테이블들(74)의 프로그래밍은 인스턴스에 기초하여 변할 수 있다. 설계의 다른 거동들, 이를테면 전력 관리가 또한 변할 수 있다. 퓨즈들은, 거동이 스터브들(22 또는 24)에서의 풀업들 및 풀 다운들에 의해 적절하게 제어되지 않는 경우, 다른 회로 컴포넌트들(10A-10D)에서의 라우팅 테이블들(74) 또는 다양한 구성 레지스터들의 인스턴스 및 그에 따른 프로그래밍을 식별하기 위해 사용될 수 있다. 퓨즈들은 스터브들의 일부일 수 있거나, 또는 회로 컴포넌트들(10A-10D)에 포함될 수 있고, 주어진 인스턴스에 대해 선택적으로 끊어질 수 있다.
도 13은 집적 회로에 대한 설계 및 제조 방법의 일 실시예를 예시하는 흐름도이다. 블록들이 이해의 용이함을 위해 특정 순서로 도시되었지만, 다른 순서들도 사용될 수 있다. 독립적인 블록들은 병렬로 수행될 수 있다.
방법은 집적 회로 설계에 대응하는 설계 데이터베이스에서, 반도체 기판 상에 제조될 때 상기 집적 회로 설계에 의해 점유될 영역을 정의하는 단계(블록(130))를 포함할 수 있다. 방법은 원하는 대로 촙 라인 또는 하나 초과의 촙 라인을 정의하는 단계를 더 포함할 수 있다. 촙 라인은 영역을 제1 하위 영역 및 제2 하위 영역으로 구획할 수 있고, 제1 하위 영역 및 제2 하위 영역의 조합은 집적 회로의 전체 인스턴스를 표현하고, 제1 하위 영역 및 스터브 영역은 전체 인스턴스보다 적은 회로 컴포넌트들을 포함하는 집적 회로의 부분 인스턴스를 표현한다(블록(132)). 방법은 설계 데이터베이스에서, 제1 하위 영역 내의 집적 회로의 전체 인스턴스 및 부분 인스턴스 둘 모두에 포함된 복수의 회로 컴포넌트들의 물리적 위치를 표현하는 단계를 더 포함할 수 있다(블록(134)). 일 실시예에서, 제1 하위 영역 내의 복수의 회로 컴포넌트들 및 제1 하위 영역 내의 복수의 회로 컴포넌트들의 상호연결부의 상대적 위치는 전체 인스턴스 및 부분 인스턴스에서 변경되지 않는다. 방법은 설계 데이터베이스에서, 전체 인스턴스에 포함되지만 제2 하위 영역의 부분 인스턴스로부터 배제된 다른 복수의 회로 컴포넌트들의 물리적 위치를 표현하는 단계를 더 포함할 수 있다(블록(136)). 방법은 설계 데이터베이스의 스터브 영역에서, 그렇지 않으면 제1 하위 영역과 제2 하위 영역 사이의 촙 라인을 횡단할 와이어들에 대한 종단들을 정의하여, 부분 인스턴스에서 제2 하위 영역의 부재 시에 제1 하위 영역 내의 복수의 회로 컴포넌트들의 정확한 동작을 보장하는 단계를 더 포함할 수 있다(블록(138)). 방법은 제1 하위 영역 및 제2 하위 영역을 사용하여 전체 인스턴스에 대한 제1 데이터 세트를 생성하는 단계를 더 포함할 수 있다(블록(140)). 제1 데이터 세트는 전체 인스턴스를 제조하기 위한 전체 인스턴스를 정의할 수 있다. 방법은 제1 하위 영역 및 스터브 영역을 사용하여 부분 인스턴스에 대한 제2 데이터 세트를 생성하는 단계를 더 포함할 수 있고, 제2 데이터 세트는 부분 인스턴스의 제조를 위한 부분 인스턴스를 정의한다(블록(142)). 방법은 각각 제1 및 제2 데이터 세트들에 기초하여 전체 및 부분 인스턴스들을 제조하는 단계를 더 포함할 수 있다(블록(144)).
일 실시예에서, 스터브 영역은 회로부를 배제할 수 있다. 예를 들어, 스터브 영역은 반도체 기판의 표면 영역 위의 하나 이상의 금속화 층들에 배선만을 포함할 수 있다. 일 실시예에서, 제2 하위 영역 내의 다른 복수의 회로 컴포넌트들은 제1 하위 영역 내의 복수의 회로 컴포넌트들에 대한 복수의 입력들인 복수의 출력들을 포함할 수 있다. 복수의 회로 컴포넌트들은 입력들로서 복수의 입력들의 각각의 입력들을 갖는 복수의 멀티플렉서 회로들을 포함할 수 있다. 방법은 스터브 영역에서, 복수의 멀티플렉서 회로들에 대한 복수의 선택 신호들을 표현하는 단계를 더 포함할 수 있다. 복수의 선택 신호들은, 복수의 입력들이 연결되는 입력들과 상이한 복수의 멀티플렉서 회로들의 입력을 선택하는 이진 값으로 스터브 영역 내에서 종료될 수 있다. 복수의 선택 신호들은 상이한 이진 값으로 제2 하위 영역에서 종료될 수 있다.
일 실시예에서, 방법은 반도체 기판의 각각의 코너들에서 복수의 배제 구역들을 정의하는 단계를 더 포함할 수 있다. 회로 컴포넌트들은 집적 회로를 제조하는 데 이용될 제조 프로세스의 기계적 요건들에 따라 복수의 배제 구역들로부터 배제될 수 있다. 이 방법은 촙 라인에 인접한 제1 하위 영역의 코너들에 추가적인 배제 구역들을 정의하는 단계를 또한 더 포함할 수 있어서, 부분 인스턴스는 상부에 부분 인스턴스가 형성된 반도체 기판의 각각의 코너들에 배제 구역들을 포함한다.
일 실시예에서, 방법은 제2 하위 영역에 인접한 제1 하위 영역의 에지를 따라 제2 배제 구역을 정의하는 단계를 더 포함할 수 있다. 제어된 붕괴 칩 연결(C4) 연결부들은 제2 배제 구역으로부터 배제될 수 있다. 일 실시예에서, 방법은, 제1 하위 영역에서 하나 이상의 제1 아날로그 입력들을 정의하고, 제2 하위 영역에서 하나 이상의 제2 아날로그 입력들을 정의하는 단계를 더 포함할 수 있다. 하나 이상의 제1 아날로그 입력들은 제1 하위 영역 내에 유지되고 하나 이상의 제2 아날로그 입력들은 제2 하위 영역 내에 유지된다. 일 실시예에서, 방법은 제1 하위 영역에서, 제1 하위 영역 내에서 클록들을 분배하기 위해 하나 이상의 제1 클록 트리들을 정의하는 단계, 및 제2 하위 영역에서, 제2 하위 영역과 함께 분산형 클록들에 대해 하나 이상의 제2 클록 트리들을 정의하는 단계를 포함할 수 있다. 하나 이상의 제1 클록 트리들은 전체 인스턴스에서 하나 이상의 제2 클록 트리들로부터 전기적으로 격리될 수 있다. 일 실시예에서, 방법은 설계 데이터베이스에서 제2 하위 영역에 제2 촙 라인을 정의하는 단계를 더 포함할 수 있다. 제2 칩 라인은 제2 하위 영역을 제3 하위 영역 및 제4 하위 영역으로 분할할 수 있고, 여기서 제3 하위 영역은 제1 하위 영역에 인접한다. 제3 하위 영역 및 제1 하위 영역은 집적 회로의 제2 부분 인스턴스를 표현할 수 있다. 이 방법은 제1 하위 영역, 제3 하위 영역 및 제2 스터브 영역을 사용하여 제2 부분 인스턴스에 대한 제3 데이터 세트를 생성하는 단계를 더 포함할 수 있다. 제3 데이터 세트는 제2 부분 인스턴스의 제조를 위한 제2 부분 인스턴스를 정의할 수 있다.
도 14는 집적 회로들을 제조하기 위한 방법의 일 실시예를 예시하는 흐름도이다. 블록들이 이해의 용이함을 위해 특정 순서로 도시되었지만, 다른 순서들도 사용될 수 있다. 독립적인 블록들은 병렬로 수행될 수 있다.
일 실시예에서, 방법은 집적 회로 설계의 전체 인스턴스에 대한 제1 데이터 세트를 수신하는 단계를 포함할 수 있다(블록(150)). 제1 데이터 세트는 전체 인스턴스를 제조하기 위한 전체 인스턴스를 정의할 수 있다. 전체 인스턴스는 전체 인스턴스에 의해 반도체 기판 상에 점유된 영역의 제1 하위 영역에 물리적으로 위치된 제1 복수의 회로 컴포넌트들 및 전체 인스턴스에 의해 반도체 기판 상에 점유된 영역의 제2 하위 영역에 물리적으로 위치된 제2 복수의 회로 컴포넌트들을 포함할 수 있다. 방법은 집적 회로 설계의 부분 인스턴스에 대해 제2 데이터 세트를 수신하는 단계를 더 포함할 수 있다(블록(152)). 제2 데이터 세트는 부분 인스턴스를 제조하기 위한 부분 인스턴스를 정의할 수 있다. 부분 인스턴스는 제1 하위 영역 내의 제1 복수의 회로 컴포넌트들을 포함할 수 있고, 제1 하위 영역 내의 제1 복수의 회로 컴포넌트들 및 제1 하위 영역 내의 제1 복수의 회로 컴포넌트들의 상호연결부의 상대적 위치는 전체 인스턴스 및 부분 인스턴스에서 변경되지 않는다. 부분 인스턴스는 제1 하위 영역에 인접한 스터브 영역을 더 포함할 수 있고, 스터브 영역은, 그렇지 않으면 제1 하위 영역 및 제2 하위 영역 내의 컴포넌트들을 상호연결할 와이어들에 대한 종단들을 포함하여, 부분 인스턴스에서 제2 하위 영역의 부재 시에 제1 하위 영역 내의 제1 복수의 회로 컴포넌트들의 정확한 동작을 보장한다. 방법은 제1 데이터 세트에 기초하여 집적 회로의 상기 제1 복수의 전체 인스턴스를 제조하는 단계(블록(154)); 및 제2 데이터 세트에 기초하여 상기 집적 회로의 상기 제2 복수의 부분 인스턴스를 제조하는 단계(블록(156))를 더 포함할 수 있다.
일 실시예에서, 스터브 영역은 회로부를 배제한다. 예를 들어, 스터브 영역은 반도체 기판의 표면 영역 위의 하나 이상의 금속화 층들에 배선만을 포함할 수 있다. 일 실시예에서, 제2 하위 영역 내의 다른 복수의 회로 컴포넌트들은 제1 하위 영역 내의 제1 복수의 회로 컴포넌트들에 대한 복수의 입력들인 복수의 출력들을 포함하고, 제1 복수의 회로 컴포넌트들은 입력들로서 복수의 입력들의 각각의 입력들을 갖는 복수의 멀티플렉서 회로들을 포함한다. 스터브 영역은 복수의 멀티플렉서 회로들에 대한 복수의 선택 신호들을 더 포함할 수 있다. 일 실시예에서, 복수의 선택 신호들은, 복수의 입력들이 연결되는 입력들과 상이한 복수의 멀티플렉서 회로들의 입력을 선택하는 이진 값으로 스터브 영역 내에서 종료된다. 복수의 선택 신호들은 전체 인스턴스에서 상이한 이진 값으로 제2 하위 영역에서 종료될 수 있다.
일 실시예에서, 제1 데이터 세트는 반도체 기판의 각각의 코너들에서 복수의 배제 구역들을 포함할 수 있다. 회로 컴포넌트들은 집적 회로를 제조하는 데 이용될 제조 프로세스의 기계적 요건들에 따라 복수의 배제 구역들로부터 배제될 수 있다. 제1 데이터 세트는 제2 하위 영역에 인접한 제1 하위 영역의 코너들에 추가적인 배제 구역들을 더 포함할 수 있어서, 부분 인스턴스는 상부에 부분 인스턴스가 형성된 반도체 기판의 각각의 코너들에 배제 구역들을 포함한다. 일 실시예에서, 제1 데이터 세트는 제2 하위 영역에 인접한 제1 하위 영역의 에지를 따라 제2 배제 구역을 더 포함할 수 있고, 제어된 붕괴 칩 연결(C4) 연결부들은 제2 배제 구역에서 배제된다. 일 실시예에서, 제1 데이터 세트는 제1 하위 영역 내의 하나 이상의 제1 아날로그 입력들 및 제2 하위 영역 내의 하나 이상의 제2 아날로그 입력들을 더 포함할 수 있다. 하나 이상의 제1 아날로그 입력은 제1 하위 영역과 함께 유지될 수 있고 하나 이상의 제2 아날로그 입력들은 제2 하위 영역 내에 유지된다. 일 실시예에서, 제1 데이터 세트는 제1 하위 영역 내에 클록들을 분배하기 위한 하나 이상의 제1 클록 트리들 및 제2 하위 영역과 함께 분산형 클록들에 대한 하나 이상의 제2 클록 트리들을 더 포함할 수 있고, 하나 이상의 제1 클록 트리들은 전체 인스턴스에서 하나 이상의 제2 클록 트리들로부터 전기적으로 격리된다.
컴퓨터 판독가능 저장 매체
이제 도 15를 참조하면, 컴퓨터 판독가능 저장 매체(800)의 일 실시예의 블록도가 도시된다. 일반적으로 말하면, 컴퓨터 액세스가능 저장 매체는 명령어들 및/또는 데이터를 컴퓨터에 제공하기 위하여 사용 동안 컴퓨터에 의해 액세스가능한 임의의 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 액세스가능 저장 매체는, 자기 또는 광학 매체, 예를 들어, 디스크(고정식 또는 착탈식), 테이프, CD-ROM, DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW, 또는 블루레이(Blu-Ray)와 같은 저장 매체들을 포함할 수 있다. 저장 매체들은, RAM(예를 들어, 동기식 동적 RAM(SDRAM), 램버스 DRAM(RDRAM), 정적 RAM(SRAM) 등), ROM, 또는 플래시 메모리와 같은 휘발성 또는 비휘발성 메모리 매체들을 더 포함할 수 있다. 저장 매체들은 저장 매체들이 명령어들/데이터를 제공하는 컴퓨터 내에 물리적으로 포함될 수 있다. 대안적으로, 저장 매체들은 컴퓨터에 연결될 수 있다. 예를 들어, 저장 매체들은 네트워크 부착형 저장소와 같이, 네트워크 또는 무선 링크를 통해 컴퓨터에 연결될 수 있다. 저장 매체들은 USB(Universal Serial Bus)와 같은 주변기기 인터페이스를 통해 연결될 수 있다. 일반적으로, 컴퓨터 액세스가능 저장 매체(800)는 비일시적 방식으로 데이터를 저장할 수 있고, 이러한 맥락에서 비일시적은 신호 상에서 명령어들/데이터를 송신하지 않는 것을 지칭할 수 있다. 예를 들어, 비일시적 저장소는 휘발성(그리고 전력 차단에 응답하여 저장된 명령어들/데이터를 상실할 수 있음) 또는 비휘발성일 수 있다.
도 15의 컴퓨터 액세스가능 저장 매체(800)는 집적 회로의 전체 인스턴스 및 집적 회로의 부분 인스턴스들을 표현하는 데이터베이스들(802, 804 및 806)을 저장할 수 있다. 일반적으로, 데이터베이스들(802, 804, 및 806)은, 프로그램에 의해 판독될 수 있고 인스턴스들을 포함하는 하드웨어를 제조하기 위해 직접적으로 또는 간접적으로 사용될 수 있는 데이터베이스일 수 있다. 예를 들어, 데이터베이스는 베릴로그(Verilog) 또는 VHDL과 같은 고레벨 설계 언어(high level design language, HDL)에서 하드웨어 기능의 거동-레벨 디스크립션(behavioral-level description) 또는 레지스터-전송 레벨(register-transfer level, RTL) 디스크립션일 수 있다. 디스크립션은 합성 라이브러리로부터의 게이트들의 목록을 포함하는 넷리스트(netlist)를 생성하기 위해 디스크립션을 합성할 수 있는 합성 도구에 의해 판독될 수 있다. 넷리스트는 인스턴스들을 포함하는 하드웨어의 기능을 또한 표현하는 한 세트의 게이트들을 포함한다. 이어서, 넷리스트는 마스크들에 적용될 기하학적 형상들을 설명하는 데이터 세트를 생성하기 위해 배치되고 라우팅될 수 있다. 이어서, 마스크들은 인스턴스들에 대응하는 반도체 회로 또는 회로들을 생성하기 위한 다양한 반도체 제조 단계들에서 사용될 수 있다. 대안적으로, 컴퓨터 액세스가능 저장 매체(800) 상의 데이터베이스들(802, 804 및 806)은, 원하는 대로, 넷리스트(합성 라이브러리가 있거나 없음) 또는 데이터 세트일 수 있다.
컴퓨터 액세스가능 저장 매체(800)가 인스턴스들의 표현을 저장하지만, 다른 실시예들은 원하는 대로, 인스턴스들의 임의의 부분의 표현을 반송할 수 있다.
컴퓨터 시스템
다음으로 도 16을 참조하면, 시스템(700)의 일 실시예의 블록도가 도시된다. 예시된 실시예에서, 시스템(700)은 하나 이상의 주변기기들(704) 및 외부 메모리(702)에 커플링된 시스템 온 칩(SOC)(706)의 적어도 하나의 인스턴스를 포함한다. SOC(10)에 공급 전압들을 공급할 뿐만 아니라, 메모리(702) 및/또는 주변기기들(704)에 하나 이상의 공급 전압들을 공급하는 전력 공급부(PMU)(708)가 제공된다. 일부 실시예들에서, SOC(706)의 1개 초과의 인스턴스가 포함될 수 있다(그리고 1개 초과의 메모리(702)가 또한 포함될 수 있다). 보다 구체적으로, SOC(706)는 본 명세서에 설명된 집적 회로의 임의의 인스턴스들(예를 들어, 전체 또는 부분)일 수 있다.
주변기기들(704)은 시스템(700)의 유형에 의존하여 임의의 원하는 회로부를 포함할 수 있다. 예를 들어, 일 실시예에서, 시스템(704)은 모바일 디바이스(예를 들어, 개인 휴대 정보 단말기(personal digital assistant, PDA), 스마트 폰 등)일 수 있고, 주변기기들(704)은 Wi-Fi, 블루투스(Bluetooth), 셀룰러, 글로벌 포지셔닝 시스템 등과 같은 다양한 유형들의 무선 통신용 디바이스들을 포함할 수 있다. 주변기기들(704)은 또한 RAM 저장소, 솔리드 스테이트 저장소(solid state storage) 또는 디스크 저장소를 포함하는 부가적인 저장소를 포함할 수 있다. 주변기기들(704)은 사용자 인터페이스 디바이스들, 예컨대 터치 디스플레이 스크린들 또는 멀티터치 디스플레이 스크린을 포함한 디스플레이 스크린, 키보드 또는 다른 입력 디바이스, 마이크로폰, 스피커 등을 포함할 수 있다. 다른 실시예들에서, 시스템(700)은 임의의 타입의 컴퓨팅 시스템(예컨대 데스크톱 개인용 컴퓨터, 랩톱, 워크스테이션, 넷톱 등)일 수 있다.
외부 메모리(702)는 임의의 유형의 메모리를 포함할 수 있다. 예를 들어, 외부 메모리(702)는 SRAM, 동적 RAM(DRAM), 예컨대, 동기식 DRAM(synchronous DRAM, SDRAM), 더블 데이터 레이트(double data rate)(DDR, DDR2, DDR3 등) SDRAM, RAMBUS DRAM, 저전력 버전들의 DDR DRAM(예를 들어, LPDDR, mDDR 등) 등일 수 있다. 외부 메모리(702)는 메모리 디바이스들이 장착되는 하나 이상의 메모리 모듈들, 예컨대, 단일 인라인 메모리 모듈(single inline memory module, SIMM)들, 듀얼 인라인 메모리 모듈(dual inline memory module, DIMM)들 등을 포함할 수 있다. 대안적으로, 외부 메모리(702)는 칩-온-칩(chip-on-chip) 또는 패키지-온-패키지(package-on-package) 구현예로 SOC(706) 상에 장착되는 하나 이상의 메모리 디바이스들을 포함할 수 있다.
예시된 바와 같이, 시스템(700)은 넓은 범위의 영역들의 애플리케이션을 갖는 것으로 도시되어 있다. 예를 들어, 시스템(700)은 데스크톱 컴퓨터(710), 랩톱 컴퓨터(720), 태블릿 컴퓨터(730), 셀룰러 또는 모바일 폰(740), 또는 텔레비전(750)(또는 텔레비전에 커플링된 셋톱 박스)의 칩들, 회로부, 컴포넌트들 등의 부분으로서 이용될 수 있다. 스마트워치 및 건강 모니터링 디바이스(760)가 또한 예시된다. 일부 실시예들에서, 스마트워치는 다양한 범용 컴퓨팅 관련 기능들을 포함할 수 있다. 예를 들어, 스마트워치는 이메일, 셀폰 서비스, 사용자 캘린더 등에 대한 액세스를 제공할 수 있다. 다양한 실시예들에서, 건강 모니터링 디바이스는 전용 의료 디바이스일 수 있거나, 또는 그렇지 않으면 전용 건강 관련 기능을 포함할 수 있다. 예를 들어, 건강 모니터링 디바이스는 사용자의 바이탈 사인(vital sign)들을 모니터링하고, 역학적인 사회적 거리두기의 목적을 위해 다른 사용자들에 대한 사용자의 근접도를 추적하고, 접촉을 추적하고, 건강 위험의 경우 응급 서비스에 통신을 제공하는 등일 수 있다. 다양한 실시예들에서, 위에서 언급된 스마트워치는 일부 또는 임의의 건강 모니터링 관련 기능들을 포함할 수 있거나 포함하지 않을 수 있다. 목부 주위에 착용된 디바이스들, 인체에서 이식가능한 디바이스들, 증강 및/또는 가상 현실 경험을 제공하도록 설계된 안경 등과 같은 다른 웨어러블 디바이스들이 또한 고려된다.
시스템(700)은 클라우드 기반 서비스(들)(770)의 일부로서 추가로 사용될 수 있다. 예를 들어, 이전에 언급된 디바이스들, 및/또는 다른 디바이스들은 클라우드 내의 컴퓨팅 리소스들(즉, 원격으로 위치된 하드웨어 및/또는 소프트웨어 리소스들)에 액세스할 수 있다. 더 추가적으로, 시스템(700)은 이전에 언급된 것들 이외의 홈(home)의 하나 이상의 디바이스들에서 이용될 수 있다. 예를 들어, 홈 내의 기기들은 주의를 요하는 조건들을 모니터링하고 검출할 수 있다. 예를 들어, 홈 내의 다양한 디바이스들(예를 들어, 냉장고, 냉각 시스템 등)은 디바이스의 상태를 모니터링하고, 특정 이벤트가 검출되면 경보를 집주인(또는 예를 들어, 수리 설비)에게 제공할 수 있다. 대안적으로, 서모스탯(thermostat)은 홈 내의 온도를 모니터링할 수 있고, 집주인에 의한 다양한 조건들에 대한 응답들의 이력에 기초하여 가열/냉각 시스템에 대한 조정들을 자동화할 수 있다. 또한, 다양한 운송 모드들에 대한 시스템(700)의 적용이 도 16에 예시되어 있다. 예를 들어, 시스템(700)은 항공기, 기차들, 버스들, 임대용 자동차들, 개인용 자동차들, 개인용 보트들로부터 유람선(cruise liner)들까지의 수상 선박들, (대여 또는 소유를 위한) 스쿠터들 등의 제어 및/또는 엔터테인먼트 시스템들에서 사용될 수 있다. 다양한 경우들에서, 시스템(700)은 자동화된 안내(예를 들어, 자율-주행 차량들), 일반적인 시스템 제어 등을 제공하기 위해 사용될 수 있다. 이들 임의의 많은 다른 실시예들이 가능하고 고려된다. 도 16에 예시된 디바이스들 및 애플리케이션들이 단지 예시적인 것이며 제한하려는 의도가 아니라는 것을 유의한다. 다른 디바이스들이 가능하고 고려된다.
***
본 개시내용은 "실시예" 또는 "실시예들의 그룹들"(예를 들어, "일부 실시예들" 또는 "다양한 실시예들")에 대한 언급들을 포함한다. 실시예들은 개시된 개념들의 상이한 구현들 또는 인스턴스들이다. "실시예", "일 실시예", "특정 실시예" 등에 대한 언급들은 반드시 동일한 실시예를 지칭하는 것은 아니다. 구체적으로 개시된 것들 뿐만 아니라, 본 개시내용의 사상 또는 범주 내에 속하는 수정들 또는 대안들을 포함하는 많은 가능한 실시예들이 고려된다.
본 개시내용은 개시된 실시예들로부터 발생할 수 있는 잠재적인 이점들을 논의할 수 있다. 이들 실시예들의 모든 구현들이 반드시 잠재적인 이점들 중 임의의 또는 모든 것을 나타내는 것은 아닐 것이다. 특정 구현에 대해 이점이 실현되는지 여부는 많은 인자들에 의존하며, 이들 중 일부는 본 개시내용의 범위를 벗어난다. 실제로, 청구항들의 범위 내에 속하는 구현이 임의의 개시된 이점들 중 일부 또는 전부를 나타내지 않을 수 있는 많은 이유들이 있다. 예를 들어, 특정 구현은 개시된 실시예들 중 하나와 함께, 하나 이상의 개시된 이점들을 무효화하거나 약화시키는, 본 개시내용의 범위 밖의 다른 회로부를 포함할 수 있다. 더욱이, 특정 구현의 차선의 설계 실행(예를 들어, 구현 기법들 또는 도구들)은 또한 개시된 이점들을 무효화하거나 약화시킬 수 있다. 숙련된 구현을 가정하더라도, 이점들의 실현은 구현이 전개되는 환경 상황들과 같은 다른 인자들에 여전히 의존할 수 있다. 예를 들어, 특정 구현에 공급되는 입력들은 본 개시내용에서 해결되는 하나 이상의 문제들이 특정 기회에 발생하는 것을 방지할 수 있으며, 그 결과, 그 해결책의 이익이 실현되지 않을 수 있다. 본 개시내용 외부의 가능한 인자들의 존재를 고려할 때, 본 명세서에서 설명되는 임의의 잠재적인 이점들은, 침해를 입증하기 위해 충족되어야 하는 청구항 제한들로서 해석되지 않아야 한다는 것이 명백하게 의도된다. 오히려, 그러한 잠재적 이점들의 식별은 본 개시내용의 이익을 갖는 설계자들에게 이용가능한 개선의 유형(들)을 예시하도록 의도된다. 그러한 이점들이 허용가능하게 설명된다는 것(예를 들어, 특정 이점이 "발생할 수 있다"고 언급함)은 그러한 이점들이 실제로 실현될 수 있는지에 대한 의구심을 전달하도록 의도되는 것이 아니라, 그러한 이점들의 실현이 종종 부가적인 인자들에 의존한다는 기술적 현실을 인식하도록 의도된다.
달리 언급되지 않는 한, 실시예들은 비제한적이다. 즉, 개시된 실시예들은, 특정 특징에 대해 단일 예만이 설명되는 경우에도, 본 개시내용에 기초하여 작성되는 청구항들의 범위를 제한하도록 의도되지 않는다. 개시된 실시예들은, 이에 반하는 본 개시내용의 어떠한 진술도 없이, 제한적이기보다는 예시적인 것으로 의도된다. 따라서, 본 출원은 개시된 실시예들을 커버하는 청구항들뿐만 아니라, 본 개시내용의 이익을 갖는 당업자에게 명백할 그러한 대안들, 수정들 및 등가물들을 허용하도록 의도된다.
예를 들어, 본 출원에서의 특징들은 임의의 적합한 방식으로 조합될 수 있다. 따라서, 특징부들의 임의의 그러한 조합에 대해 본 출원(또는 그에 대한 우선권을 주장하는 출원)의 심사 동안에 새로운 청구범위가 작성될 수 있다. 특히, 첨부된 청구항들을 참조하면, 종속 청구항들로부터의 특징들은 다른 독립 청구항들로부터 의존하는 청구항들을 포함하여, 적절한 경우 다른 종속 청구항들의 특징들과 조합될 수 있다. 유사하게, 개개의 독립 청구항들로부터의 특징들은 적절한 경우 조합될 수 있다.
따라서, 첨부된 종속 청구항들은 각각이 단일의 다른 청구항들에 의존하도록 작성될 수 있지만, 부가적인 종속성들이 또한 고려된다. 본 개시내용과 일치하는 종속물에서의 특징들의 임의의 조합들이 고려되며, 이러한 또는 다른 애플리케이션에서 청구될 수 있다. 간단히 말하면, 조합들은 첨부된 청구항들에 구체적으로 열거된 것들로 제한되지 않는다.
적절한 경우, 하나의 포맷 또는 법정 유형(예를 들어, 장치)으로 작성된 청구항들은 다른 포맷 또는 법정 유형(예를 들어, 방법)의 대응하는 청구항들을 지원하도록 의도되는 것으로 또한 고려된다.
***
본 개시내용은 법적인 문서이기 때문에, 다양한 용어들 및 문구들은 행정적 및 사법적 해석의 대상이 될 수 있다. 본 개시내용 전반에 걸쳐 제공되는 정의들뿐만 아니라 다음의 단락들이 본 개시내용에 기초하여 작성되는 청구항들을 해석하는 방법을 결정하는 데 사용될 것이라는 공지가 본 명세서에 주어진다.
물품의 단수 형태(즉, "a", "an" 또는 "the"가 선행되는 명사 또는 명사 문구)에 대한 언급들은, 문맥상 명확하게 달리 지시되지 않는 한, "하나 이상"을 의미하는 것으로 의도된다. 따라서, 청구항에서 "항목"에 대한 언급은, 수반되는 상황 없이, 항목의 추가적인 인스턴스들을 배제하지 않는다. "복수"의 항목들은 항목들 중 2개 이상의 세트를 지칭한다.
"~할 수 있다"라는 단어는 본 명세서에서 강제적인 의미(즉, ~ 해야 하는)가 아니라 허용적인 의미(즉, ~할 가능성을 갖는, ~할 수 있는)로 사용된다.
용어들 "포함하는"("comprising" 및 "including") 및 이들의 형태는 개방형(open-ended)이며, "포함하지만 이로 한정되지 않는"을 의미한다.
용어 "또는"이 옵션들의 리스트에 관하여 본 개시내용에서 사용될 때, 문맥이 달리 제공하지 않는 한, 일반적으로 포괄적인 의미로 사용되는 것으로 이해될 것이다. 따라서, "x 또는 y"의 언급은 "x 또는 y, 또는 둘 모두"와 동등하고, 따라서 1) x지만 y 아님, 2) y지만 x 아님 및 3) x 및 y 둘 모두를 커버한다. 반면에, "둘 모두가 아니라 x 또는 y 중 어느 하나"와 같은 문구는 "또는"이 배타적인 의미로 사용되고 있다는 것을 명확하게 한다.
"w, x, y, 또는 z, 또는 이들의 임의의 조합" 또는 "... w, x, y, 및 z 중 적어도 하나"의 언급은 세트 내의 요소들의 총 개수까지 단일 요소를 수반하는 모든 가능성들을 커버하도록 의도된다. 예를 들어, 세트 [w, x, y, z]가 주어지면, 이러한 문구들은 세트의 임의의 단일 요소(예를 들어, w지만 x, y, 또는 z 아님), 임의의 2개의 요소들(예를 들어, w 및 x지만 y 또는 z 아님), 임의의 3개의 요소들(예를 들어, w, x 및 y지만, z 아님) 및 4개의 요소들 모두를 커버한다. 따라서, "... w, x, y, 및 z 중 적어도 하나"라는 문구는 세트 [w, x, y, z]의 적어도 하나의 요소를 지칭하고, 이로써 요소들의 이러한 리스트 내의 모든 가능한 조합들을 커버한다. 이 문구는 w의 적어도 하나의 인스턴스, x의 적어도 하나의 인스턴스, y의 적어도 하나의 인스턴스, 및 z의 적어도 하나의 인스턴스가 있음을 요구하도록 해석되지 않아야 한다.
본 개시내용에서 다양한 "라벨들"이 명사들 또는 명사 문구들에 선행할 수 있다. 문맥이 달리 제공하지 않는 한, 특징에 대해 사용되는 상이한 라벨들(예를 들어, "제1 회로", "제2 회로", "특정 회로", "주어진 회로" 등)은 특징의 상이한 인스턴스들을 지칭한다. 부가적으로, 특징에 적용될 때, "제1", "제2" 및 "제3" 라벨들은, 달리 언급되지 않는 한, 어떠한 유형의 순서화(예를 들어, 공간적, 시간적, 논리적 등)를 의미하지 않는다.
문구 "기초하여"는 결정에 영향을 주는 하나 이상의 인자들을 설명하기 위해 사용된다. 이러한 용어는 부가적인 인자들이 결정에 영향을 줄 수 있는 가능성을 배제하지 않는다. 즉, 결정은 단지 특정된 인자들에 기초하거나 또는 그 특정된 인자들뿐만 아니라 다른, 불특정된 인자들에 기초할 수 있다. "B에 기초하여 A를 결정한다"라는 문구를 고려한다. 이러한 문구는 B가 A를 결정하는 데 사용되거나 A의 결정에 영향을 주는 인자라는 것을 명시한다. 이러한 문구는 A의 결정이 C와 같은 일부 다른 인자에 또한 기초할 수 있음을 배제하지 않는다. 또한, 이 문구는 A가 B만에 기초하여 결정되는 실시예를 커버하도록 의도된다. 본 명세서에서 사용되는 바와 같이, "에 기초하여"라는 문구는 "적어도 부분적으로 기초하여"라는 문구와 동의어이다.
문구들 "~ 에 응답하여" 및 "~ 에 응답으로"는 효과를 트리거하는 하나 이상의 인자들을 설명한다. 이러한 문구는 부가적인 인자들이 특정 인자들과 공동으로 또는 특정 인자들과는 독립적으로 영향을 주거나 또는 달리 효과를 트리거할 수 있는 가능성을 배제하지 않는다. 즉, 효과는 단지 이들 인자들에만 응답할 수 있거나 또는 특정 인자들 뿐만 아니라 다른 불특정 인자들에 응답할 수 있다. "B에 응답하여 A를 수행한다"라는 문구를 고려한다. 이러한 문구는 B가 A의 수행을 트리거하는 또는 A에 대한 특정 결과를 트리거하는 인자라는 것을 명시한다. 이러한 문구는 A를 수행하는 것이 C와 같은 일부 다른 인자에 또한 응답할 수 있음을 배제하지 않는다. 이러한 문구는 또한 A를 수행하는 것이 B와 C에 응답하여 공동으로 수행될 수 있다는 것을 배제하지 않는다. 이러한 문구는 또한 A가 B에만 응답하여 수행되는 실시예를 커버하도록 의도된다. 본 명세서에서 사용되는 바와 같이, 문구 "응답하여"는 문구 "적어도 부분적으로 응답하여"와 동의어이다. 유사하게, 문구 "~ 에 응답하여"는 문구 "적어도 부분적으로 응답하여"와 동의어이다.
***
본 개시내용 내에서, 상이한 엔티티들(이는, "유닛들", "회로들", 다른 컴포넌트들 등으로 다양하게 지칭될 수 있음)은 하나 이상의 태스크들 또는 동작들을 수행하도록 "구성된" 것으로 설명되거나 또는 청구될 수 있다. 이러한 표현-[하나 이상의 태스크들을 수행]하도록 구성된 [엔티티]-은 본 명세서에서 구조(즉, 물리적인 것)를 지칭하는 데 사용된다. 더 상세하게는, 이러한 표현은 이러한 구조가 동작 동안 하나 이상의 태스크들을 수행하도록 배열됨을 나타내는 데 사용된다. 구조는 그 구조가 현재 동작되고 있지 않더라도 일부 태스크를 수행하도록 "구성된다"고 말할 수 있다. 따라서, 일부 태스크를 수행"하도록 구성된" 것으로 설명된 또는 언급된 엔티티는 디바이스, 회로, 태스크를 구현하도록 실행가능한 프로그램 명령어들을 저장하는 메모리 및 프로세서 유닛을 갖는 시스템 등과 같은 물리적인 것을 지칭한다. 이러한 문구는 본 명세서에서 무형인 것을 지칭하기 위해 사용되지는 않는다.
일부 경우들에서, 다양한 유닛들/회로들/컴포넌트들은 태스크 또는 동작들의 세트를 수행하는 것으로 본 명세서에서 설명될 수 있다. 이들 엔티티들은, 구체적으로 언급되지 않더라도, 그러한 태스크들/동작들을 수행하도록 "구성"된다는 것이 이해된다.
용어 "~ 하도록 구성된"은 "~하도록 구성가능한"을 의미하도록 의도되지 않는다. 예를 들어, 프로그래밍되지 않은 FPGA는 특정 기능을 수행하도록 "구성된" 것으로 간주되지 않을 것이다. 그러나, 이러한 프로그래밍되지 않은 FPGA는 그 기능을 수행하도록 "구성가능"할 수 있다. 적절한 프로그래밍 후에, 이어서 FPGA는 특정 기능을 수행하도록 "구성된다"고 말할 수 있다.
본 개시내용에 기초한 미국 특허 출원들의 목적들을 위해, 구조가 하나 이상의 태스크들을 수행하도록 "구성"된다고 청구항에서 언급하는 것은 명백히 그 청구항 요소에 대하여 35 U.S.C. §112(f)를 적용하지 않도록 의도된다. 출원인이 본 개시내용에 기초하여 미국 특허 출원의 심사 동안 섹션 112(f)의 적용을 원하면, [기능을 수행]"하기 위한 수단" 구조를 이용하여 청구항 요소들을 열거할 것이다.
상이한 "회로들"이 본 개시내용에서 설명될 수 있다. 이러한 회로들 또는 "회로부"는 조합 로직, 클로킹된 저장 디바이스들(예를 들어, 플립-플롭들, 레지스터들, 래치들 등), 유한 상태 머신들, 메모리(예를 들어, 랜덤 액세스 메모리, 내장형 동적 랜덤 액세스 메모리), 프로그래밍가능 로직 어레이들 등과 같은 다양한 유형들의 회로 요소들을 포함하는 하드웨어를 구성한다. 회로부는 맞춤 설계되거나 표준 라이브러리들로부터 취해질 수 있다. 다양한 구현들에서, 회로부는 적절하게 디지털 컴포넌트들, 아날로그 컴포넌트들, 또는 둘 모두의 조합을 포함할 수 있다. 특정 유형들의 회로들은 일반적으로 "유닛들"(예를 들어, 디코딩 유닛, 산술 로직 유닛(ALU), 기능 유닛, 메모리 관리 유닛(MMU) 등)로 지칭될 수 있다. 그러한 유닛들은 또한 회로들 또는 회로를 지칭한다.
따라서, 도면들에 예시되고 본 명세서에서 설명된 개시된 회로들/유닛들/컴포넌트들 및 다른 요소들은 이전 단락에서 설명된 것들과 같은 하드웨어 요소들을 포함한다. 많은 경우들에서, 특정 회로 내의 하드웨어 요소들의 내부 배열은 그 회로의 기능을 설명함으로써 특정될 수 있다. 예를 들어, 특정 "디코딩 유닛"은 "명령어의 오피코드를 프로세싱하고 그 명령어를 복수의 기능 유닛들 중 하나 이상에 라우팅하는" 기능을 수행하는 것으로 설명될 수 있으며, 이는 디코딩 유닛이 이러한 기능을 수행하도록 "구성됨"을 의미한다. 이러한 기능의 규격은, 컴퓨터 분야의 당업자들에게, 회로에 대한 가능한 구조들의 세트를 암시하기에 충분하다.
다양한 실시예들에서, 이전 단락에서 논의된 바와 같이, 회로들, 유닛들, 및 이들이 구현하도록 구성된 기능들 또는 동작들에 의해 정의된 다른 요소들, 그러한 회로들/유닛들/컴포넌트들의 배열은 서로에 대해 그리고 이들이 상호작용하는 방식으로, 마이크로 아키텍처 정의의 물리적 구현을 형성하도록 집적 회로에서 궁극적으로 제조되거나 FPGA로 프로그래밍되는 하드웨어의 마이크로 아키텍처 정의를 형성한다. 따라서, 마이크로 아키텍처 정의는 많은 물리적 구현들이 유도될 수 있는 구조로서 당업자들에 의해 인식되며, 이들 모두는 마이크로 아키텍처 정의에 의해 설명된 더 넓은 구조에 속한다. 즉, 본 개시내용에 따라 공급되는 마이크로 아키텍처 정의를 제공받는 당업자는, 과도한 실험 없이 그리고 통상의 기술의 적용으로, 회로들/유닛들/컴포넌트들의 디스크립션을 베릴로그 또는 VHDL과 같은 하드웨어 디스크립션 언어(HDL)로 코딩함으로써 구조를 구현할 수 있다. HDL 디스크립션은 종종, 기능적으로 보일 수 있는 방식으로 표현된다. 그러나, 당업자들에게, 이러한 HDL 디스크립션은 회로, 유닛 또는 컴포넌트의 구조를 다음 레벨의 구현 세부사항으로 변환하는 데 사용되는 방식이다. 그러한 HDL 디스크립션은 (통상적으로 합성가능하지 않은) 거동 코드, (거동 코드와는 대조적으로, 통상적으로 합성가능한) 레지스터 전송 언어(RTL) 코드, 또는 구조적 코드(예를 들어, 로직 게이트들 및 그들의 연결성을 특정하는 넷리스트)의 형태를 취할 수 있다. HDL 디스크립션은 주어진 집적 회로 제조 기술을 위해 설계된 셀들의 라이브러리에 대해 순차적으로 합성될 수 있고, 타이밍, 전력 및 다른 이유들로 인해 수정되어 최종 설계 데이터베이스를 생성할 수 있으며, 이는 파운드리(foundry)로 송신되어 마스크들을 생성하고 궁극적으로 집적 회로를 생성할 수 있다. 일부 하드웨어 회로들 또는 그의 부분들은 또한 회로도 편집기(schematic editor)로 맞춤 설계될 수 있고 합성된 회로부와 함께 집적 회로 설계 내로 캡처될 수 있다. 집적 회로들은 트랜지스터들, 및 다른 회로 요소들(예를 들어, 커패시터들, 저항기들, 인덕터들 등과 같은 수동 요소들) 및 트랜지스터들과 회로 요소들 사이의 상호연결부를 포함할 수 있다. 일부 실시예들은 하드웨어 회로들을 구현하기 위해 함께 결합된 다수의 집적 회로들을 구현할 수 있고, 그리고/또는 일부 실시예들에서는 이산 요소들이 사용될 수 있다. 대안적으로, HDL 설계는 FPGA(Field Programmable Gate Array)와 같은 프로그래밍가능 로직 어레이로 합성될 수 있으며 FPGA에서 구현될 수 있다. 회로들의 그룹의 설계와 이들 회로들의 후속 저레벨 구현 사이의 이러한 디커플링은 일반적으로, 회로 또는 로직 설계자가 회로가 무엇을 하도록 구성되는지의 설명을 넘어서 저레벨 구현에 대한 특정 세트의 구조들을 특정하지 않는 시나리오를 도출하는데, 이는 이러한 프로세스가 회로 구현 프로세스의 상이한 스테이지에서 수행되기 때문이다.
회로 요소들의 많은 상이한 저-레벨 조합들이 회로의 동일한 규격을 구현하는 데 사용될 수 있다는 사실은 그 회로에 대한 다수의 등가 구조들을 초래한다. 언급된 바와 같이, 이러한 저레벨 회로 구현들은 제조 기술의 변화들, 집적 회로를 제조하기 위해 선택된 파운드리, 특정 프로젝트를 위해 제공된 셀들의 라이브러리 등에 따라 변할 수 있다. 많은 경우들에서, 이들 상이한 구현들을 생성하기 위해 상이한 설계 도구들 또는 방법론들에 의해 이루어지는 선택들은 임의적일 수 있다.
게다가, 회로의 특정 기능 규격의 단일 구현이 주어진 실시예에 대해 많은 수의 디바이스들(예를 들어, 수백만 개의 트랜지스터들)을 포함하는 것이 일반적이다. 따라서, 엄청난 체적의 이러한 정보는, 등가의 가능한 구현들의 방대한 어레이는 말할 것도 없이, 단일 실시예를 구현하는 데 사용되는 저레벨 구조의 완전한 설명을 제공하는 것을 비실용적으로 만든다. 이러한 이유로, 본 개시내용은 업계에서 일반적으로 사용되는 기능적 속기(shorthand)를 사용하여 회로들의 구조를 설명한다.
본 출원의 청구대상의 실현들은 다음의 예들을 포함하지만, 이들로 제한되지는 않는다:
방법 예들:
1. 방법으로서,
집적 회로 설계의 전체 인스턴스에 대한 제1 데이터 세트를 수신하는 단계 - 상기 제1 데이터 세트는 상기 전체 인스턴스를 제조하기 위한 상기 전체 인스턴스를 정의하고, 상기 전체 인스턴스는 상기 전체 인스턴스에 의해 반도체 기판 상에 점유된 영역의 제1 하위 영역에 물리적으로 위치된 제1 복수의 회로 컴포넌트들 및 상기 전체 인스턴스에 의해 상기 반도체 기판 상에 점유된 상기 영역의 제2 하위 영역에 물리적으로 위치된 제2 복수의 회로 컴포넌트들을 포함함 -;
상기 집적 회로 설계의 부분 인스턴스에 대한 제2 데이터 세트를 수신하는 단계 - 상기 제2 데이터 세트는 상기 부분 인스턴스를 제조하기 위한 상기 부분 인스턴스를 정의하고, 상기 부분 인스턴스는 상기 제1 하위 영역에 상기 제1 복수의 회로 컴포넌트들을 포함하고, 상기 제1 하위 영역 내의 상기 제1 복수의 회로 컴포넌트들 및 상기 제1 하위 영역 내의 상기 제1 복수의 회로 컴포넌트들의 상호연결부의 상대적 위치는 상기 전체 인스턴스 및 상기 부분 인스턴스에서 변경되지 않고; 상기 부분 인스턴스는 상기 제1 하위 영역에 인접한 스터브 영역을 더 포함하고, 상기 스터브 영역은, 그렇지 않으면 상기 제1 하위 영역 및 상기 제2 하위 영역 내의 컴포넌트들을 상호연결할 와이어들에 대한 종단들을 포함하여, 상기 부분 인스턴스에서 상기 제2 하위 영역의 부재 시에 상기 제1 하위 영역 내의 상기 제1 복수의 회로 컴포넌트들의 정확한 동작을 보장함 -;
상기 제1 데이터 세트에 기초하여 상기 집적 회로의 상기 제1 복수의 전체 인스턴스를 제조하는 단계; 및
상기 제2 데이터 세트에 기초하여 상기 집적 회로의 상기 제2 복수의 부분 인스턴스를 제조하는 단계를 포함하는, 방법.
2. 예 1에 있어서, 상기 스터브 영역은 회로부를 배제하는, 방법.
3. 예 2에 있어서, 상기 스터브 영역은 상기 반도체 기판의 표면 영역 위의 하나 이상의 금속화 층들에 배선만을 포함하는, 방법.
4. 예 1에 있어서, 상기 제2 하위 영역 내의 상기 다른 복수의 회로 컴포넌트들은 상기 제1 하위 영역 내의 상기 제1 복수의 회로 컴포넌트들에 대한 복수의 입력들인 복수의 출력들을 포함하고, 상기 제1 복수의 회로 컴포넌트들은 입력들로서 상기 복수의 입력들의 각각의 입력들을 갖는 복수의 멀티플렉서 회로들을 포함하고, 상기 스터브 영역은 상기 복수의 멀티플렉서 회로들에 대한 복수의 선택 신호들을 더 포함하는, 방법.
5. 예 4에 있어서, 상기 복수의 선택 신호들은, 상기 복수의 입력들이 연결되는 입력들과 상이한 상기 복수의 멀티플렉서 회로들의 입력을 선택하는 이진 값으로 상기 스터브 영역 내에서 종료되는, 방법.
6. 예 5에 있어서, 상기 복수의 선택 신호들은 상기 전체 인스턴스에서 상이한 이진 값으로 상기 제2 하위 영역에서 종료되는, 방법.
7. 예 1에 있어서, 상기 제1 데이터 세트는 상기 반도체 기판의 각각의 코너들에 복수의 배제 구역들을 포함하고, 회로 컴포넌트들은 상기 집적 회로를 제조하기 위해 이용될 제조 프로세스의 기계적 요건들에 따라 상기 복수의 배제 구역들로부터 배제되고; 상기 제1 데이터 세트는 상기 제2 하위 영역에 인접한 상기 제1 하위 영역의 코너들에 추가적인 배제 구역들을 포함하여, 상기 부분 인스턴스는 상부에 상기 부분 인스턴스가 형성된 상기 반도체 기판의 각각의 코너들에 배제 구역들을 포함하는, 방법.
8. 예 1에 있어서, 상기 제1 데이터 세트는 상기 제2 하위 영역에 인접한 상기 제1 하위 영역의 에지를 따라 제2 배제 구역을 더 포함하고, 제어된 붕괴 칩 연결(C4) 연결부들은 상기 제2 배제 구역에서 배제되는, 방법.
9. 예 1에 있어서, 상기 제1 데이터 세트는 상기 제1 하위 영역 내의 하나 이상의 제1 아날로그 입력들을 더 포함하고, 상기 하나 이상의 제1 아날로그 입력들은 상기 제1 하위 영역과 함께 유지되고, 상기 제1 데이터 세트는 상기 제2 하위 영역에 하나 이상의 제2 아날로그 입력들을 더 포함하고, 상기 하나 이상의 제2 아날로그 입력들은 상기 제2 하위 영역 내에 유지되는, 방법.
10. 예 1에 있어서, 상기 제1 데이터 세트는 상기 제1 하위 영역 내에 클록들을 분배하기 위한 하나 이상의 제1 클록 트리들 및 상기 제2 하위 영역과 함께 분산형 클록들에 대한 하나 이상의 제2 클록 트리들을 더 포함하고, 상기 하나 이상의 제1 클록 트리들은 상기 전체 인스턴스에서 상기 하나 이상의 제2 클록 트리들로부터 전기적으로 격리되는, 방법.
집적 회로 예들:
11. 집적 회로로서,
상기 집적 회로를 형성하는 반도체 기판의 표면 상에 물리적으로 배열된 복수의 회로 컴포넌트들 - 복수의 회로 컴포넌트들은 복수의 멀티플렉서 회로들을 포함하며, 상기 복수의 멀티플렉서 회로들 중 주어진 멀티플렉서 회로는 제1 입력 와이어, 제2 입력 와이어 및 선택 제어 와이어를 가짐 -; 및
상기 표면의 단일 에지를 따르는 영역을 포함하고,
상기 영역은 상기 선택 제어 와이어의 전원이고,
상기 제2 입력 와이어들은 상기 표면의 상기 단일 에지에 도달하며 연결되지 않고,
상기 선택 제어 와이어들은 상기 집적 회로의 공급 와이어들에 전기적으로 연결되고, 사용 동안 상기 공급 와이어들 상의 전압은 상기 복수의 멀티플렉서 회로들로 하여금 상기 제1 입력 와이어들을 상기 복수의 멀티플렉서 회로들의 출력들로서 선택하게 하는 디지털 로직 레벨에 대응하는, 집적 회로.
12. 집적 회로로서,
상기 집적 회로를 형성하는 반도체 기판의 표면의 제1 영역 내에 물리적으로 배열된 제1 복수의 회로 컴포넌트들;
상기 반도체 기판의 각각의 코너들에 있는 복수의 배제 구역들 - 회로 컴포넌트들은 상기 집적 회로를 제조하기 위해 이용된 제조 프로세스의 기계적 요건들에 따라 상기 복수의 배제 구역들로부터 배제됨 -; 및
상기 반도체 기판의 한 쌍의 공칭적으로 평행한 에지들을 따라 상기 각각의 코너들과 별개인 다른 복수의 배제 구역들을 포함하고, 회로 컴포넌트들은 상기 다른 복수의 배제 구역들로부터 배제되고, 상기 다른 복수의 배제 구역들은 상기 복수의 배제 구역들과 실질적으로 동일하게 치수가 정해지는, 집적 회로.
13. 예 12에 있어서,
상기 복수의 배제 구역들 사이의 라인을 따르는 제2 배제 구역을 더 포함하고, 제어된 붕괴 칩 연결(C4) 연결부들은 상기 제2 배제 구역에서 배제되는, 집적 회로.
14. 예 12에 있어서,
상기 제1 영역의 제1 하위 영역 내의 하나 이상의 제1 아날로그 입력들 - 상기 하나 이상의 제1 아날로그 입력들은 상기 제1 하위 영역과 함께 유지됨 -; 및
상기 제1 영역 및 상기 제1 하위 영역에 인접한 제2 하위 영역 내의 하나 이상의 제2 아날로그 입력들 - 상기 하나 이상의 제2 아날로그 입력들은 상기 제2 하위 영역 내에 유지됨 - 을 더 포함하는, 집적 회로.
15. 예 12에 있어서,
상기 제1 영역의 제1 하위 영역 내에 클록들을 분배하기 위한 하나 이상의 제1 클록 트리들; 및
상기 제2 하위 영역과 함께 분산형 클록들에 대한 하나 이상의 제2 클록 트리들을 더 포함하고;
상기 하나 이상의 제1 클록 트리들은 상기 하나 이상의 제2 클록 트리들로부터 전기적으로 격리되는, 집적 회로.
16. 집적 회로로서,
상기 집적 회로를 형성하는 반도체 기판의 표면의 제1 영역 내에 물리적으로 배열된 제1 복수의 회로 컴포넌트들;
상기 집적 회로를 형성하는 상기 반도체 기판의 상기 표면의 제2 영역 내에 물리적으로 배열된 제2 복수의 회로 컴포넌트들;
상기 제1 영역 내의 하나 이상의 제1 아날로그 입력들 - 상기 하나 이상의 제1 아날로그 입력들은 상기 제1 복수의 회로 컴포넌트들에 대해 격리됨 -; 및
상기 제2 영역 내의 하나 이상의 제2 아날로그 입력들을 포함하고, 상기 하나 이상의 제2 아날로그 입력들은 상기 제2 복수의 회로 컴포넌트들에 대해 격리되는, 집적 회로.
일단 위의 개시내용이 완전히 이해되면 다수의 변형들 및 수정들이 당업자들에게 명백해질 것이다. 다음의 청구범위는 모든 그러한 변형들 및 수정들을 망라하는 것으로 해석되도록 의도된다.

Claims (30)

  1. 방법으로서,
    집적 회로 설계에 대응하는 설계 데이터베이스에서, 반도체 기판 상에 제조될 때 상기 집적 회로 설계에 의해 점유될 영역을 정의하는 단계;
    상기 영역을 제1 하위 영역 및 제2 하위 영역으로 구획하는 촙 라인(chop line)을 정의하는 단계 - 상기 제1 하위 영역 및 상기 제2 하위 영역의 조합은 상기 집적 회로의 전체 인스턴스를 표현하고, 상기 제1 하위 영역 및 스터브(stub) 영역은 상기 전체 인스턴스보다 적은 회로 컴포넌트들을 포함하는 상기 집적 회로의 부분 인스턴스를 표현함 -;
    상기 설계 데이터베이스에서, 상기 제1 하위 영역 내의 상기 집적 회로의 상기 전체 인스턴스 및 상기 부분 인스턴스 둘 모두에 포함된 복수의 회로 컴포넌트들의 물리적 위치를 표현하는 단계 - 상기 제1 하위 영역 내의 상기 복수의 회로 컴포넌트들 및 상기 제1 하위 영역 내의 상기 복수의 회로 컴포넌트들의 상호연결부의 상대적 위치는 상기 전체 인스턴스 및 상기 부분 인스턴스에서 변경되지 않음 -;
    상기 설계 데이터베이스에서, 상기 전체 인스턴스에 포함되지만 상기 제2 하위 영역의 상기 부분 인스턴스로부터 배제된 다른 복수의 회로 컴포넌트들의 물리적 위치를 표현하는 단계;
    상기 설계 데이터베이스의 상기 스터브 영역에서, 그렇지 않으면 상기 제1 하위 영역과 상기 제2 하위 영역 사이의 상기 촙 라인을 횡단할 와이어들에 대한 종단들을 정의하여, 상기 부분 인스턴스에서 상기 제2 하위 영역의 부재 시에 상기 제1 하위 영역 내의 상기 복수의 회로 컴포넌트들의 정확한 동작을 보장하는 단계;
    상기 제1 하위 영역 및 상기 제2 하위 영역을 사용하여 상기 전체 인스턴스에 대한 제1 데이터 세트를 생성하는 단계 - 상기 제1 데이터 세트는 상기 전체 인스턴스를 제조하기 위한 상기 전체 인스턴스를 정의함 -; 및
    상기 제1 하위 영역 및 상기 스터브 영역을 사용하여 상기 부분 인스턴스에 대한 제2 데이터 세트를 생성하는 단계 - 상기 제2 데이터 세트는 상기 부분 인스턴스의 제조를 위한 상기 부분 인스턴스를 정의함 - 를 포함하는, 방법.
  2. 제1항에 있어서, 상기 스터브 영역은 회로부를 배제하는, 방법.
  3. 제2항에 있어서, 상기 스터브 영역은 상기 반도체 기판의 표면 영역 위의 하나 이상의 금속화 층들에 배선만을 포함하는, 방법.
  4. 제1항에 있어서, 상기 제2 하위 영역 내의 상기 다른 복수의 회로 컴포넌트들은 상기 제1 하위 영역 내의 상기 복수의 회로 컴포넌트들에 대한 복수의 입력들인 복수의 출력들을 포함하고, 상기 복수의 회로 컴포넌트들은 입력들로서 상기 복수의 입력들의 각각의 입력들을 갖는 복수의 멀티플렉서 회로들을 포함하고, 상기 방법은 상기 스터브 영역에서, 상기 복수의 멀티플렉서 회로들에 대한 복수의 선택 신호들을 표현하는 단계를 더 포함하는, 방법.
  5. 제4항에 있어서, 상기 복수의 선택 신호들은, 상기 복수의 입력들이 연결되는 입력들과 상이한 상기 복수의 멀티플렉서 회로들의 입력을 선택하는 이진 값으로 상기 스터브 영역 내에서 종료되는, 방법.
  6. 제5항에 있어서, 상기 복수의 선택 신호들은 상기 전체 인스턴스에서 상이한 이진 값으로 상기 제2 하위 영역에서 종료되는, 방법.
  7. 제1항에 있어서,
    상기 반도체 기판의 각각의 코너들에 복수의 배제 구역들을 정의하는 단계 - 회로 컴포넌트들은 상기 집적 회로를 제조하기 위해 이용될 제조 프로세스의 기계적 요건들에 따라 상기 복수의 배제 구역들로부터 배제됨 -; 및
    상기 촙 라인에 인접한 상기 제1 하위 영역의 코너들에 추가적인 배제 구역들을 정의하는 단계로서, 상기 부분 인스턴스는 상부에 상기 부분 인스턴스가 형성된 상기 반도체 기판의 각각의 코너들에 배제 구역들을 포함하는, 상기 정의하는 단계를 더 포함하는, 방법.
  8. 제1항에 있어서,
    상기 제2 하위 영역에 인접한 상기 제1 하위 영역의 에지를 따라 제2 배제 구역을 정의하는 단계를 더 포함하고, 제어된 붕괴 칩 연결(C4) 연결부들은 상기 제2 배제 구역에서 배제되는, 방법.
  9. 제1항에 있어서,
    상기 제1 하위 영역에서 하나 이상의 제1 아날로그 입력들을 정의하는 단계; 및
    상기 제2 하위 영역에서 하나 이상의 제2 아날로그 입력들을 정의하는 단계를 더 포함하고;
    상기 제1 하나 이상의 아날로그 입력들은 상기 제1 하위 영역과 함께 유지되고 상기 하나 이상의 제2 아날로그 입력들은 상기 제2 하위 영역 내에 유지되는, 방법.
  10. 제1항에 있어서,
    상기 제1 하위 영역에서, 상기 제1 하위 영역 내에 클록들을 분배하기 위해 하나 이상의 제1 클록 트리들을 정의하는 단계; 및
    상기 제2 하위 영역에서, 상기 제2 하위 영역과 함께 분산형 클록들에 대한 하나 이상의 제2 클록 트리들을 정의하는 단계를 더 포함하고;
    상기 하나 이상의 제1 클록 트리들은 상기 전체 인스턴스에서 상기 하나 이상의 제2 클록 트리들로부터 전기적으로 격리되는, 방법.
  11. 제1항에 있어서,
    상기 제2 하위 영역을 제3 하위 영역 및 제4 하위 영역으로 분할하는 제2 촙 라인을 상기 제2 하위 영역에 정의하는 단계 - 상기 제3 하위 영역은 상기 제1 하위 영역에 인접하고, 상기 제3 하위 영역 및 상기 제1 하위 영역은 상기 집적 회로의 제2 부분 인스턴스를 표현함 -; 및
    상기 제1 하위 영역, 상기 제3 하위 영역 및 제2 스터브 영역을 사용하여 상기 제2 부분 인스턴스에 대한 제3 데이터 세트를 생성하는 단계 - 상기 제3 데이터 세트는 상기 제2 부분 인스턴스의 제조를 위한 상기 제2 부분 인스턴스를 정의함 - 를 더 포함하는, 방법.
  12. 제1항에 있어서,
    집적 회로에 대한 테스트 벤치 환경을 정의하는 단계를 더 포함하고,
    상기 테스트 벤치 환경은 상기 집적 회로의 상기 전체 인스턴스 및 상기 부분 인스턴스 둘 모두에 포함된 상기 복수의 회로 컴포넌트들을 조건 없이 포함하고;
    상기 테스트 벤치 환경은 상기 전체 인스턴스가 테스트되는 것에 기초하여 상기 전체 인스턴스에 포함되지만 상기 부분 인스턴스로부터 배제된 상기 다른 복수의 회로 컴포넌트들을 조건부로 포함하고;
    상기 테스트 벤치 환경은 상기 부분 인스턴스가 테스트되는 것에 기초하여 상기 스터브 영역을 조건부로 포함하고;
    상기 테스트 벤치 환경은 상기 집적 회로의 상기 전체 인스턴스 및 상기 부분 인스턴스 둘 모두에 포함된 상기 복수의 회로 컴포넌트들에 대한 제1 테스트 자극을 조건 없이 포함하고;
    상기 테스트 벤치 환경은 상기 전체 인스턴스가 테스트되는 것에 기초하여 상기 전체 인스턴스에 포함되지만 상기 부분 인스턴스로부터 배제된 상기 다른 복수의 회로 컴포넌트들에 대한 제2 테스트 자극을 조건부로 포함하는, 방법.
  13. 제1항에 있어서,
    상기 집적 회로 설계의 검증 동안 상기 집적 회로에서 요구되는 변화를 검출하는 단계;
    상기 전체 인스턴스에 대한 상기 설계 데이터베이스에서 상기 요구되는 변화를 구현하는 단계; 및
    상기 부분 인스턴스에 대한 상기 설계 데이터베이스로부터 상기 부분 인스턴스에 대한 상기 설계 데이터베이스를 추출하는 단계를 더 포함하는, 방법.
  14. 집적 회로로서,
    상기 집적 회로를 형성하는 반도체 기판의 표면 상에 물리적으로 배열된 복수의 회로 컴포넌트들; 및
    상기 표면의 단일 에지를 따르는 복수의 와이어 종단들을 포함하고, 상기 복수의 와이어 종단들은 와이어들 상에 고정된 디지털 로직 레벨들을 제공하기 위해 상기 집적 회로의 복수의 공급 와이어들에 전기적으로 연결되고, 상기 와이어들은 상기 복수의 회로 컴포넌트들 중 하나 이상에 대한 입력들이고 상기 단일 에지와 교차하도록 배열되고 상기 와이어들을 구동하도록 구성된 회로가 없고, 상기 복수의 와이어 종단들을 포함하는 상기 단일 에지를 따르는 영역은 능동 회로 요소들을 배제하는, 집적 회로.
  15. 제14항에 있어서,
    상기 복수의 회로 컴포넌트들은 복수의 멀티플렉서 회로들을 포함하고,
    상기 복수의 멀티플렉서 회로들 중 주어진 멀티플렉서 회로는 제1 입력 와이어, 제2 입력 와이어 및 선택 제어 와이어를 갖고;
    상기 단일 에지를 따르는 영역은 상기 선택 제어 와이어의 전원이고,
    상기 제2 입력 와이어들은 상기 표면의 상기 단일 에지에 도달하며 연결되지 않고,
    상기 선택 제어 와이어들은 상기 집적 회로의 공급 와이어들에 전기적으로 연결되고, 사용 동안 상기 공급 와이어들 상의 전압은 상기 복수의 멀티플렉서 회로들로 하여금 상기 제1 입력 와이어들을 상기 복수의 멀티플렉서 회로들의 출력들로서 선택하게 하는 디지털 로직 레벨에 대응하는, 집적 회로.
  16. 제14항에 있어서, 상기 단일 에지를 따르는 영역은 상기 반도체 기판의 표면 영역 위의 하나 이상의 금속화 층들에 배선만을 포함하는, 집적 회로.
  17. 제14항에 있어서,
    상기 제1 복수의 회로 컴포넌트들은 상기 반도체 기판의 상기 표면의 제1 하위 영역 내에 물리적으로 배열되고;
    상기 집적 회로는,
    상기 반도체 기판의 각각의 코너들에 있는 복수의 배제 구역들 - 회로 컴포넌트들은 상기 집적 회로를 제조하기 위해 이용된 제조 프로세스의 기계적 요건들에 따라 상기 복수의 배제 구역들로부터 배제됨 -; 및
    상기 반도체 기판의 한 쌍의 공칭적으로 평행한 에지들을 따라 그리고 상기 제1 하위 영역의 코너들에서 상기 각각의 코너들과 별개인 다른 복수의 배제 구역들을 더 포함하고, 회로 컴포넌트들은 상기 다른 복수의 배제 구역들로부터 배제되고, 상기 다른 복수의 배제 구역들은 상기 복수의 배제 구역들과 실질적으로 동일하게 치수가 정해지는, 집적 회로.
  18. 제17항에 있어서,
    상기 복수의 배제 구역들 사이의 라인을 따르는 제2 배제 구역을 더 포함하고, 제어된 붕괴 칩 연결(C4) 연결부들은 상기 제2 배제 구역에서 배제되는, 집적 회로.
  19. 제17항에 있어서,
    상기 제1 하위 영역 내의 하나 이상의 제1 아날로그 입력들 - 상기 하나 이상의 제1 아날로그 입력들은 상기 제1 하위 영역과 함께 유지됨 -; 및
    상기 제1 하위 영역에 인접한 제2 하위 영역 내의 하나 이상의 제2 아날로그 입력들 - 상기 하나 이상의 제2 아날로그 입력들은 상기 제2 하위 영역 내에 유지됨 - 을 더 포함하는, 집적 회로.
  20. 제17항에 있어서,
    상기 제1 하위 영역 내에 클록들을 분배하기 위한 하나 이상의 제1 클록 트리들; 및
    상기 제1 하위 영역에 인접한 제2 하위 영역과 함께 분산형 클록들에 대한 하나 이상의 제2 클록 트리들을 더 포함하고;
    상기 하나 이상의 제1 클록 트리들은 상기 하나 이상의 제2 클록 트리들로부터 전기적으로 격리되는, 집적 회로.
  21. 방법으로서,
    집적 회로 설계의 전체 인스턴스에 대한 제1 데이터 세트를 수신하는 단계 - 상기 제1 데이터 세트는 상기 전체 인스턴스를 제조하기 위한 상기 전체 인스턴스를 정의하고, 상기 전체 인스턴스는 상기 전체 인스턴스에 의해 반도체 기판 상에 점유된 영역의 제1 하위 영역에 물리적으로 위치된 제1 복수의 회로 컴포넌트들 및 상기 전체 인스턴스에 의해 상기 반도체 기판 상에 점유된 상기 영역의 제2 하위 영역에 물리적으로 위치된 제2 복수의 회로 컴포넌트들을 포함함 -;
    상기 집적 회로 설계의 부분 인스턴스에 대한 제2 데이터 세트를 수신하는 단계 - 상기 제2 데이터 세트는 상기 부분 인스턴스를 제조하기 위한 상기 부분 인스턴스를 정의하고, 상기 부분 인스턴스는 상기 제1 하위 영역에 상기 제1 복수의 회로 컴포넌트들을 포함하고, 상기 제1 하위 영역 내의 상기 제1 복수의 회로 컴포넌트들 및 상기 제1 하위 영역 내의 상기 제1 복수의 회로 컴포넌트들의 상호연결부의 상대적 위치는 상기 전체 인스턴스 및 상기 부분 인스턴스에서 변경되지 않고; 상기 부분 인스턴스는 상기 제1 하위 영역에 인접한 스터브 영역을 더 포함하고, 상기 스터브 영역은, 그렇지 않으면 상기 제1 하위 영역 및 상기 제2 하위 영역 내의 컴포넌트들을 상호연결할 와이어들에 대한 종단들을 포함하여, 상기 부분 인스턴스에서 상기 제2 하위 영역의 부재 시에 상기 제1 하위 영역 내의 상기 제1 복수의 회로 컴포넌트들의 정확한 동작을 보장함 -;
    상기 제1 데이터 세트에 기초하여 상기 집적 회로의 상기 제1 복수의 전체 인스턴스를 제조하는 단계; 및
    상기 제2 데이터 세트에 기초하여 상기 집적 회로의 상기 제2 복수의 부분 인스턴스를 제조하는 단계를 포함하는, 방법.
  22. 제21항에 있어서, 상기 스터브 영역은 회로부를 배제하는, 방법.
  23. 제22항에 있어서, 상기 스터브 영역은 상기 반도체 기판의 표면 영역 위의 하나 이상의 금속화 층들에 배선만을 포함하는, 방법.
  24. 제21항에 있어서, 상기 제2 하위 영역 내의 상기 다른 복수의 회로 컴포넌트들은 상기 제1 하위 영역 내의 상기 제1 복수의 회로 컴포넌트들에 대한 복수의 입력들인 복수의 출력들을 포함하고, 상기 제1 복수의 회로 컴포넌트들은 입력들로서 상기 복수의 입력들의 각각의 입력들을 갖는 복수의 멀티플렉서 회로들을 포함하고, 상기 스터브 영역은 상기 복수의 멀티플렉서 회로들에 대한 복수의 선택 신호들을 더 포함하는, 방법.
  25. 제24항에 있어서, 상기 복수의 선택 신호들은, 상기 복수의 입력들이 연결되는 입력들과 상이한 상기 복수의 멀티플렉서 회로들의 입력을 선택하는 이진 값으로 상기 스터브 영역 내에서 종료되는, 방법.
  26. 제25항에 있어서, 상기 복수의 선택 신호들은 상기 전체 인스턴스에서 상이한 이진 값으로 상기 제2 하위 영역에서 종료되는, 방법.
  27. 제21항에 있어서, 상기 제1 데이터 세트는 상기 반도체 기판의 각각의 코너들에 복수의 배제 구역들을 포함하고, 회로 컴포넌트들은 상기 집적 회로를 제조하기 위해 이용될 제조 프로세스의 기계적 요건들에 따라 상기 복수의 배제 구역들로부터 배제되고; 상기 제1 데이터 세트는 상기 제2 하위 영역에 인접한 상기 제1 하위 영역의 코너들에 추가적인 배제 구역들을 포함하여, 상기 부분 인스턴스는 상부에 상기 부분 인스턴스가 형성된 상기 반도체 기판의 각각의 코너들에 배제 구역들을 포함하는, 방법.
  28. 제21항에 있어서, 상기 제1 데이터 세트는 상기 제2 하위 영역에 인접한 상기 제1 하위 영역의 에지를 따라 제2 배제 구역을 더 포함하고, 제어된 붕괴 칩 연결(C4) 연결부들은 상기 제2 배제 구역에서 배제되는, 방법.
  29. 제21항에 있어서, 상기 제1 데이터 세트는 상기 제1 하위 영역 내의 하나 이상의 제1 아날로그 입력들을 더 포함하고, 상기 하나 이상의 제1 아날로그 입력들은 상기 제1 하위 영역과 함께 유지되고, 상기 제1 데이터 세트는 상기 제2 하위 영역에 하나 이상의 제2 아날로그 입력들을 더 포함하고, 상기 하나 이상의 제2 아날로그 입력들은 상기 제2 하위 영역 내에 유지되는, 방법.
  30. 제21항에 있어서, 상기 제1 데이터 세트는 상기 제1 하위 영역 내에 클록들을 분배하기 위한 하나 이상의 제1 클록 트리들 및 상기 제2 하위 영역과 함께 분산형 클록들에 대한 하나 이상의 제2 클록 트리들을 더 포함하고, 상기 하나 이상의 제1 클록 트리들은 상기 전체 인스턴스에서 상기 하나 이상의 제2 클록 트리들로부터 전기적으로 격리되는, 방법.
KR1020220104738A 2021-08-23 2022-08-22 공통 설계로부터 전체 다이 및 부분 다이 테이프 아웃 KR20230029541A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163236013P 2021-08-23 2021-08-23
US63/236,013 2021-08-23
US17/873,694 2022-07-26
US17/873,694 US20230053664A1 (en) 2021-08-23 2022-07-26 Full Die and Partial Die Tape Outs from Common Design

Publications (1)

Publication Number Publication Date
KR20230029541A true KR20230029541A (ko) 2023-03-03

Family

ID=84540688

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220104738A KR20230029541A (ko) 2021-08-23 2022-08-22 공통 설계로부터 전체 다이 및 부분 다이 테이프 아웃

Country Status (7)

Country Link
US (1) US20230053664A1 (ko)
JP (1) JP7478199B2 (ko)
KR (1) KR20230029541A (ko)
CN (1) CN115713058A (ko)
DE (1) DE102022121035A1 (ko)
GB (2) GB202404319D0 (ko)
TW (1) TW202312004A (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2508386B2 (ja) * 1990-08-29 1996-06-19 三菱電機株式会社 集積回路のレイアウト構造
JP3234505B2 (ja) * 1996-09-04 2001-12-04 松下電器産業株式会社 半導体集積回路の設計装置および設計方法
US6516455B1 (en) * 2000-12-06 2003-02-04 Cadence Design Systems, Inc. Partitioning placement method using diagonal cutlines
US7581198B2 (en) 2006-10-07 2009-08-25 Active-Semi, Inc. Method and system for the modular design and layout of integrated circuits
CN113361227B (zh) * 2021-06-22 2022-11-15 无锡江南计算技术研究所 一种封装与印制板级分布式电源压降仿真方法

Also Published As

Publication number Publication date
GB2612165A (en) 2023-04-26
DE102022121035A1 (de) 2023-02-23
TW202312004A (zh) 2023-03-16
US20230053664A1 (en) 2023-02-23
JP2023031273A (ja) 2023-03-08
JP7478199B2 (ja) 2024-05-02
GB202211197D0 (en) 2022-09-14
GB202404319D0 (en) 2024-05-08
CN115713058A (zh) 2023-02-24

Similar Documents

Publication Publication Date Title
US6857110B1 (en) Design methodology for merging programmable logic into a custom IC
US9817937B2 (en) Area efficient power switch
US9032343B1 (en) Integrating multiple FPGA designs by merging configuration settings
US8860458B2 (en) Integrated circuits with logic regions having input and output bypass paths for accessing registers
US10725528B2 (en) Methods and apparatus for selectively extracting and loading register states
US20110209112A1 (en) Method for clock load alignment during standard cell optimization
US10437946B1 (en) Using implemented core sources for simulation
KR20230029541A (ko) 공통 설계로부터 전체 다이 및 부분 다이 테이프 아웃
US9652573B1 (en) Creating and using a wide-gate data structure to represent a wide-gate in an integrated circuit (IC) design
US9690890B1 (en) Creating and using a wide-bus data structure to represent a wide-bus in an integrated circuit (IC) design
US9697314B1 (en) Identifying and using slices in an integrated circuit (IC) design
US8621412B1 (en) Micro-regions for auto place and route optimization
US11449660B1 (en) Method to perform secondary-PG aware buffering in IC design flow
TW202240455A (zh) 多位元胞元
US10157253B2 (en) Multi-bit-mapping aware clock gating
US10354032B2 (en) Optimizing an integrated circuit (IC) design comprising at least one wide-gate or wide-bus
KR102645526B1 (ko) 스캔 인에이블 핀을 사용한 데이터 게이팅
US20240105727A1 (en) Vertical Transistor Cell Structures Utilizing Topside and Backside Resources
US20230106989A1 (en) Method of verifying semiconductor device, method of designing and manufacturing semiconductor device using the same, and system performing the same
US20240104280A1 (en) Functional Circuit Block Harvesting in Integrated Circuits
US20230306180A1 (en) Static timing analysis of multi-die three-dimensional integrated circuits
US20220004688A1 (en) Systems And Methods For Circuit Design Dependent Programmable Maximum Junction Temperatures
Tu et al. Device (Chip Design) Modeling
Boon et al. Speeding Parasitic-Extraction Stage in Layout-Change-Order Validation Cycle Through Net-Tracing and Layout Trimming
Trimberger SRAM Programmable FPGAs