KR101832117B1 - 회로 스텐실들의 발생 및 인스턴스화를 이용한 집적 회로 설계 - Google Patents

회로 스텐실들의 발생 및 인스턴스화를 이용한 집적 회로 설계 Download PDF

Info

Publication number
KR101832117B1
KR101832117B1 KR1020177030544A KR20177030544A KR101832117B1 KR 101832117 B1 KR101832117 B1 KR 101832117B1 KR 1020177030544 A KR1020177030544 A KR 1020177030544A KR 20177030544 A KR20177030544 A KR 20177030544A KR 101832117 B1 KR101832117 B1 KR 101832117B1
Authority
KR
South Korea
Prior art keywords
circuit
stencil
segment
components
information
Prior art date
Application number
KR1020177030544A
Other languages
English (en)
Other versions
KR20170123708A (ko
Inventor
프리드리히 군터 쿠르트 젠디히
도날드 존 오리어던
조나단 리 샌더스
세일럼 리 갠존
베리 앤드류 지펠
샹-원 지미 린
Original Assignee
시놉시스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 시놉시스, 인크. filed Critical 시놉시스, 인크.
Priority to KR1020187004535A priority Critical patent/KR102674709B1/ko
Publication of KR20170123708A publication Critical patent/KR20170123708A/ko
Application granted granted Critical
Publication of KR101832117B1 publication Critical patent/KR101832117B1/ko

Links

Images

Classifications

    • G06F17/504
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
    • G06F17/5072
    • G06F17/5077
    • G06F17/5081
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • 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/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/12Symbolic schematics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/08Intellectual property [IP] blocks or IP cores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/12Printed circuit boards [PCB] or multi-chip modules [MCM]
    • 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
    • G06F2217/06

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Architecture (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

실시형태들은 회로 스텐실들의 발생 및 인스턴스화를 이용한 집적 회로들의 설계에 관한 것이다. 회로 스텐실은 회로 세그먼트의 추상화된 버전을 나타낸다. 회로 스텐실들은 집적 회로의 컴포넌트들 및 노드들의 연결성 정보의 컬랩스된 버전들을 포함한다. 연결성 정보의 컬랩스된 버전은 회로 세그먼트의 기능을 분석하고 기능을 수정함이 없이 회로 세그먼트의 적어도 하나의 여분의 컴포넌트 또는 노드를 제거하거나 또는 대체함으로써 발생된다. 회로 스텐실은 컴포넌트들을 제 2 집적 회로로 인스턴스화하거나 또는 참조하는데 사용된다.

Description

회로 스텐실들의 발생 및 인스턴스화를 이용한 집적 회로 설계{INTEGRATED CIRCUIT DESIGN USING GENERATION AND INSTANTIATION OF CIRCUIT STENCILS}
관련 출원에 대한 상호 참조
본 출원은 2016년 2월 25일에 출원된 미국 가출원 번호 제 62/299,968호, 및 2016년 2월 26일에 출원된 미국 가출원 번호 제 62/300,594호의 이익을 주장하며, 이 양자는 그들 전체로 참고로 포함된다
본 개시물의 분야
본 개시물은 일반적으로 집적 회로들 (ICs) 의 설계, 특히, 회로 스텐실들 (circuit stencils) 의 발생 및 인스턴스화 또는 참조에 기초한 IC들의 설계에 관한 것이다.
IC들에 대한 설계 플로우는 일반적으로 깨끗한 스키매틱 설계 (schematic design) 를 발생시키기 위해 트랜지스터-레벨 설계 및 시뮬레이션의 단계들을 포함한다. 설계 플로우는 시뮬레이트된 스키매틱에 대한 레이아웃을 생성하고 그 레이아웃에 대해 레이아웃-대-스키매틱 (LVS) 체크들 및 설계 규칙 체크들 (DRC) 을 실행하는 것을 더 포함한다. LVS 는 특정의 IC 레이아웃이 원래 스키매틱 설계에 대응하는지 여부를 결정하는 것을 지칭하는 반면, DRC 는 특정의 칩의 물리적인 레이아웃이 설계 규칙들로 불리는 일련의 권장된 파라미터들을 만족시키는지 여부를 결정하는 것을 지칭한다. 회로 설계 플로우들은 주로 커스터마이즈되며, 완전 자동화가 부족하다. IP 재-사용이 달성되는 경우, 그것은 일반적으로 '정적' 또는 하드코딩된 형태로 되어 있으며, 따라서 그의 애플리케이션들을 오직 설계 소스와 정확히 매칭하는 목표 로케이션들에만 제한한다. 모듈 발생기들의 형태에서의 대안적인 재-사용 접근법들은 전자 설계 자동화 (EDA) 공급업체 및/또는 설계자의 상당한 프로그래밍 또는 스크립팅 (scripting) 기술들을 필요로 하며, 따라서 그들의 애플리케이션에서도 동등하게 제한된다.
실시형태들은 회로 스텐실들을 통해서 회로 설계에 "보조 (assistive)" 자동화를 제공함으로써, 회로 세그먼트들의 재-사용을 증진시키는 것에 관한 것이다. 스텐실-기반의 설계 플로우의 확산을 달성하기 위해, 유용하고 자가-체킹하는 회로 스텐실들의 라이브러리가 생성된다. 회로 스텐실들이 IC 에서 인스턴스화되거나 또는 참조될 때, 그들의 구성 컴포넌트들 및/또는 라우팅 (routing) 은 임의의 추가적인 계층구조가 도입됨이 없이 배치될 수도 있다.
일 실시형태에서, 연결성 정보가 제 1 IC 에서의 회로 세그먼트에 대해 수신된다. 연결성 정보는 회로 세그먼트의 컴포넌트들과 제 1 IC 의 컴포넌트들 사이의 접속들을 표시한다. 연결성 정보는 회로 세그먼트의 기능을 분석하고 기능을 수정함이 없이 회로 세그먼트의 적어도 하나의 여분의 컴포넌트 또는 노드를 제거하거나 또는 대체함으로써 회로 세그먼트에 대해 감소된 연결성 정보를 발생시키도록 컬랩스 (collapse) 된다. 감소된 연결성 정보는 연결성 정보의 논리적으로 압축된 버전을 나타낸다. 회로 스텐실은 감소된 연결성 정보를 이용하여 발생된다. 회로 스텐실은 회로 세그먼트를 제 2 IC 에 인스턴스화하기 위해 사용된다. 회로 스텐실은 회로 세그먼트의 추상화된 버전을 나타낸다. 실시형태들에서, 회로 스텐실은 제 2 집적 회로에서의 적어도 하나의 컴포넌트에 대한 정보를 참조하기 위해 사용된다.
일 실시형태에서, 연결성 정보의 컬랩싱은 회로 세그먼트의 컴포넌트들의 병렬 스택을 단일 컴포넌트로 대체하는 것, 회로 세그먼트의 컴포넌트들의 시리즈를 단일 컴포넌트로 대체하는 것, 또는 회로 세그먼트의 하나 이상의 컴포넌트들의 입력 단자들을 치환 (permute) 하는 것을 포함할 수도 있다.
일 실시형태에서, 회로 스텐실은 제 2 IC 에 적어도 하나의 컴포넌트로서 인스턴스화되거나 또는 참조된다. 적어도 하나의 컴포넌트의 인스턴스화 또는 참조는 제 2 IC 를 시뮬레이션하기 위해 제약들 정보를 이용하여 시뮬레이터 체크들을 발생시키는 것을 포함할 수도 있다. 제약들 정보는 회로 세그먼트의 컴포넌트들 또는 노드들에 대한 설계 제약들을 표시한다. 적어도 하나의 컴포넌트의 인스턴스화 또는 참조는 제약들 정보를 이용하여 회로 세그먼트에 대응하는 제 2 IC 의 적어도 일부분의 레이아웃을 발생시키는 것을 포함할 수도 있다.
일 실시형태에서, 제약들 정보는 회로 세그먼트의 컴포넌트들에 대한 전기적 어서션들 (electrical assertions) 을 포함한다. 시뮬레이터 체크들을 발생시키는 것은 전기적 어서션들을 회로 시뮬레이터에 대한 시뮬레이터-특정의 회로 체크 스테이트먼트들로 전환하는 것을 포함한다.
일 실시형태에서, 제약들 정보는 회로 세그먼트의 컴포넌트들에 대한 기하학적 및 연결성 어서션들을 포함한다. 제 2 IC 의 적어도 일부분의 레이아웃을 발생시키는 것은 기하학적 및 연결성 어서션들을 이용하여 회로 세그먼트에 대응하는 제 2 IC 의 컴포넌트들 또는 노드들의 물리적 표현들을 배치하고 라우팅하는 것을 포함한다.
일 실시형태에서, 제약들 정보는 설계자 입력 지령들, 회로 세그먼트의 컴포넌트들 및 노드들의 심볼 물리적 표현들을 배치하도록 구성된 심볼 에디터, 또는 회로 세그먼트의 컴포넌트들 및 노드들에 대한 연결성 라우팅 패턴들을 배치하도록 구성된 패턴 라우트 인터페이스 중 하나 이상으로부터 수신된다.
일 실시형태에서, 회로 스텐실의 발생은 회로 스텐실에의 포함을 위해 회로 세그먼트의 컴포넌트들 및 노드들의 이름들을 정규화하는 것을 포함한다.
일 실시형태에서, 제 2 IC 에의 적어도 하나의 컴포넌트 회로 스텐실의 인스턴스화 또는 참조는 제 2 IC 에 대한 맵핑을 발생시키는 것을 포함한다. 맵핑은 제 2 IC 의 컴포넌트들 및 노드들의 실제 이름들을 회로 스텐실에서의 정규화된 이름들과 연관시킨다.
일 실시형태에서, 파라미터 관계들이 회로 세그먼트의 컴포넌트들의 파라미터들 사이에 결정된다. 결정된 파라미터 관계들은 회로 스텐실에 기록된다.
일 실시형태에서, 파라미터 관계들의 결정은 회로 세그먼트의 다른 컴포넌트의 파라미터 값을 포함하는 집합 수식 (aggregate expression) 과 매칭하는 파라미터 값을 가지는 회로 세그먼트의 컴포넌트를 식별하는 것을 포함한다. 식별된 컴포넌트의 파라미터 값은 집합 수식으로 대체된다.
일 실시형태에서, 파라미터 관계들의 결정은 파라미터 데이터베이스로부터 회로 세그먼트의 컴포넌트들의 파라미터들의 서브세트를 선택하는 것을 포함한다. 동일한 값들을 가지는 파라미터들이 파라미터들의 선택된 서브세트에 걸쳐서 식별된다.
일 실시형태에서, 파라미터 관계들의 결정은 그 파라미터 값들이 식별된 파라미터들의 동일한 값들과 매칭하는 회로 세그먼트의 컴포넌트들을 식별하는 것을 포함한다. 식별된 컴포넌트들의 파라미터 값들은 동일한 값들을 나타내는 수식들로 대체된다.
일 실시형태에서, 제 2 IC 에의 적어도 하나의 컴포넌트 회로 스텐실의 인스턴스화 또는 참조는 회로 스텐실의 컴포넌트의 파라미터 값을 포함하는 집합 수식을 평가함으로써, 제 2 IC 의 컴포넌트에 대한 파라미터 값을 발생시키는 것을 포함한다.
일 실시형태에서, 회로 세그먼트는 하나 이상의 회로 스텐실들에 대응한다. 각각의 회로 스텐실은 회로 세그먼트의 별개의 물리적인 구현예에 대응한다.
일 실시형태에서, 기준들에 매칭하는 회로 스텐실이 회로 세그먼트에 대응하는 하나 이상의 회로 스텐실들 중에서 탐색된다. 기준들은 발생된 감소된 연결성 정보를 포함한다. 기준들은 회로 세그먼트의 컴포넌트들 또는 노드들에 대한 제약들 정보, 회로 세그먼트의 컴포넌트들의 파라미터들에 대한 파라미터 값들, 회로 세그먼트의 컴포넌트들의 파라미터들 사이의 파라미터 관계들, 회로 스텐실의 이름, 또는 회로 스텐실의 설명을 포함할 수도 있다.
일 실시형태에서, 회로 스텐실은 발생된 감소된 연결성 정보를 포함한다. 회로 스텐실은 회로 세그먼트의 컴포넌트들 또는 노드들에 대한 제약들 정보, 회로 세그먼트의 컴포넌트들 또는 노드들의 정규화된 이름들, 회로 세그먼트의 컴포넌트들의 파라미터들 사이의 파라미터 관계들, 또는 메타데이터를 포함할 수도 있다. 메타데이터는 회로 스텐실의 이름, 회로 스텐실의 설명, 회로 스텐실의 스키매틱 미리보기 이미지까지의 경로, 또는 회로 스텐실의 레이아웃 미리보기 이미지까지의 경로를 포함할 수도 있다.
본 발명의 실시형태들의 교시들은 첨부 도면들과 함께 다음 상세한 설명들 고려함으로써 용이하게 이해될 수 있다.
도 1 은 일 실시형태에 따른, IC 를 설계하고 제조하는 여러 동작들을 예시하는 예시적인 플로우이다.
도 2 는 일 실시형태에 따른, IC 를 설계하는 예시적인 컴퓨팅 디바이스를 예시하는 하이-레벨 블록도이다.
도 3 은 일 실시형태에 따른, 회로 스텐실들의 발생 및 인스턴스화에 기초한 IC들의 설계를 위한 예시적인 시스템을 예시하는 블록도이다.
도 4 는 일 실시형태에 따른, 예시적인 회로 세그먼트의 회로도이다.
도 5 는 일 실시형태에 따른, 도 4 에서의 회로 세그먼트에 대한 예시적인 컬랩스된 연결성 정보를 예시하는 회로도이다.
도 6 은 일 실시형태에 따른, 도 5 에서의 회로 스텐실의 컴포넌트들에 대한 예시적인 파라미터 관계들을 예시하는 회로도이다.
도 7 은 일 실시형태에 따른, 예시적인 IC 에의 도 5 의 회로 스텐실의 인스턴스화를 예시하는 회로도이다.
도 8 은 일 실시형태에 따른, 회로 스텐실들의 발생 및 재사용을 위한 예시적인 프로세스를 예시하는 플로우차트이다.
도면들은 본 발명의 여러 실시형태들을 단지 예시의 목적을 위해서 도시한다. 당업자는 본원에서 예시된 구조들 및 방법들의 대안적인 실시형태들이 본원에서 설명되는 원리들로부터 일탈함이 없이 채용될 수도 있음을 다음 설명으로부터 용이하게 알 수 있을 것이다.
실시형태들의 다음 설명에서, 매우 많은 구체적인 세부 사항들이 더 완전한 이해를 제공하기 위해 개시된다. 그러나, 본 발명이 이들 구체적인 세부 사항들 중 하나 이상 없이도 실시될 수도 있다는 점에 유의한다. 다른 경우, 널리 공지된 특징들은 설명을 복잡하게 하는 것을 피하기 위해 자세하게 설명되지 않았다.
실시형태들이 도면들을 참조하여 본원에서 설명되며, 여기서, 유사한 참조 번호들은 동일하거나 또는 기능적으로 유사한 엘리먼트들을 나타낸다. 또한, 도면들에서, 각각의 참조 번호의 최좌측 숫자들은 참조 번호가 처음 사용된 도면에 대응한다.
실시형태들은 회로 스텐실들을 통해서 회로 설계에 "보조" 자동화를 제공함으로써, 회로 세그먼트들의 재-사용을 증진시키는 것에 관한 것이다. 스텐실-기반의 설계 플로우의 확산을 달성하기 위해, 유용하고 자가-체킹하는 회로 스텐실들의 라이브러리가 생성된다. 제 1 IC 에서의 회로 세그먼트에 대한 접속된 컴포넌트들의 세트가 선택되며, 메타데이터 (예컨대, 스텐실에 대한 이름, 의도된 사용의 설명, 또는 미리보기 이미지) 가 제공된다. 컴포넌트 파라미터들과 같은 회로 세그먼트에 관련된 정보, 전기적 어서션들, 스키매틱 정보, 레이아웃 정보, 또는 제약들 정보가 스텐실에 기록될 수도 있다. 스텐실은 라이브러리 데이터베이스에 저장되어, 그의 재-사용을 가능하게 한다. 회로 스텐실들이 IC 에서 인스턴스화되거나 또는 참조될 때, 그들의 구성 컴포넌트들 및/또는 라우팅은 임의의 추가적인 계층구조가 도입됨이 없이 배치된다.
본원에서 설명되는 바와 같은 회로 스텐실은 회로 세그먼트에 대한 감소된 연결성 정보의 표현을 포함하는 IC 세그먼트의 설계 추상화를 지칭한다. 회로 스텐실은 또한 설계 제약들, 컴포넌트들의 정규화된 이름들, 또는 회로 세그먼트의 컴포넌트들의 파라미터들을 포함할 수도 있다. 회로 스텐실 인스턴스화는 제 1 IC 및 애플리케이션으로부터 제 2 IC 로의 IC 설계 의도의 명시적인 추출 또는 추론을 포함하며, 이에 의해 제 1 설계로부터 학습함으로써 제 2 IC 설계의 엘리먼트들이 구현될 수 있게 한다.
EDA 설계 플로우
도 1 은 일 실시형태에 따른, IC 를 설계하고 제조하는 여러 동작들을 예시하는 예시적인 플로우 (100) 이다. 설계 프로세스 (100) 는 전자 설계 자동화 (EDA) 소프트웨어 (112) 를 이용하는 설계 프로세스 동안 구현되는 제품 아이디어 (110) 의 발생으로 시작한다. 설계가 완료될 때, 테이프-아웃될 수 있다 (134). 테이프-아웃 (134) 이후, IC 설계에서 여러 오브젝트들 (예컨대, 게이트들, 금속 층들, 및 비아들) 을 형성하기 위해 반도체 다이가 제조된다 (136). 패키징 및 어셈블리 프로세스들 (138) 이 수행되며, 이것은 완성된 칩들 (140) 을 초래한다.
EDA 소프트웨어 (112) 는 도 2 를 참조하여 아래에서 예시되고 설명된 컴퓨팅 디바이스 (200) 와 같은 하나 이상의 컴퓨팅 디바이스들에서 구현될 수도 있다. 예를 들어, EDA 소프트웨어 (112) 는 아래에 설명되는 설계 플로우의 동작들 (114-132) 을 수행하는 프로세서에 의해 실행되는 컴퓨터-판독가능 매체에 명령들로서 저장된다. 이 설계 플로우 설명은 예시의 목적들을 위한 것이다. 특히, 이 설명은 본 개시물을 한정하려는 것이 아니다. 예를 들어, 실제 IC 설계는 설계자가 본원에서 설명되는 시퀀스와는 상이한 시퀀스로 설계 동작들을 수행하도록 요구할 수도 있다.
시스템 설계 (114) 동안, 설계자들은 구현할 기능을 기술한다. 그들은 또한 기능을 개선하고 비용들을 체크하기 위해 가정의 계획 (what-if planning) 을 수행할 수 있다. 하드웨어-소프트웨어 아키텍처 파티셔닝이 이 단계에서 일어날 수 있다는 점에 유의한다. 이 단계에서 사용될 수 있는 캘리포니아, 마운틴 뷰 (Mountain View) 소재의 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은, Model Architect®, Saber®, System Studio®, 및 Designware® 제품들을 포함한다.
스키매틱 캡쳐 및 검증 (116) 동안, 회로에서의 모듈들에 대한 VHDL 또는 Verilog 코드가 기록되고 기능적 정확도에 대해 설계가 체크된다. 좀더 구체적으로, 설계가 올바른 출력들을 생성하도록 보장하는지가 체크된다. 이 단계에서 사용될 수 있는 캘리포니아, 마운틴 뷰 소재의 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은, Custom Compiler®, VCS®, Vera®, 10 Designware®, Magellan®, Formality®, ESP® 및 Leda® 제품들을 포함한다.
테스트를 위한 합성 및 설계 (118) 동안, VHDL/Verilog 는 네트리스트 (netlist) 로 전환된다. 이 네트리스트는 목표 기술에 최적화될 수 있다. 추가적으로, 완성된 칩들을 체크하기 위해 테스트들이 설계되고 구현될 수 있다. 이 단계에서 사용될 수 있는 캘리포니아, 마운틴 뷰 소재의 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은, Custom Compiler®, Design Compiler®, Physical Compiler®, Test Compiler®, Power Compiler®, FPGA Compiler®, Tetramax®, 및 Designware® 제품들을 포함한다.
네트리스트 검증 (120) 동안, 네트리스트가 타이밍 제약들의 준수 및 VHDL/Verilog 소스 코드와의 대응 (correspondence) 에 대해 체크된다. 이 단계에서 사용될 수 있는 캘리포니아, 마운틴 뷰 소재의 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은, Formality®, Primetime®, 및 VCS® 제품들을 포함한다.
설계 계획 (122) 동안, 칩에 대한 전체 평면도가 구성되어 타이밍 및 최고-레벨 라우팅에 대해 분석된다. 이 단계에서 사용될 수 있는 캘리포니아, 마운틴 뷰 소재의 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은, Astro® 및 IC Compiler® 제품들을 포함한다.
물리적인 구현 (124) 동안, 배치 (회로 엘리먼트들의 위치 지정) 및 라우팅 (회로 엘리먼트들의 접속) 이 발생한다. 이 단계에서 사용될 수 있는 캘리포니아, 마운틴 뷰 소재의 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은, Custom Compiler, Astro® 및 IC Compiler® 제품들을 포함한다. 본원에서 설명되는 실시형태들은 주로 물리적인 구현 (124) 에 관한 것이다.
회로 분석 (126) 동안, 회로 기능이 개선이 가능한 트랜지스터 레벨에서 검증된다. 이 단계에서 사용될 수 있는 캘리포니아, 마운틴 뷰 소재의 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은, Astrorail®, Primerail®, Primetime®, 및 Star RC/XT® 제품들을 포함한다. 물리적인 검증 (128) 동안, 설계가 제조, 전기적 문제들, 리소그라피 이슈들, 및 회로에 대한 정확도를 보장하기 위해 체크된다.
해상도 (resolution) 향상 (130) 동안, 설계의 제조성을 향상시키기 위해 레이아웃의 기하학적 조작들이 수행된다. 이 단계에서 사용될 수 있는 캘리포니아, 마운틴 뷰 소재의 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은, Proteus®, Proteus®AF, 및 PSMGED® 제품들을 포함한다.
마스크-데이터 준비 (132) 동안, 완성된 칩들을 제조하기 위한 마스크들의 생산을 위한 '테이프-아웃' 데이터가 제공된다. 이 단계에서 사용될 수 있는 캘리포니아, 마운틴 뷰 소재의 Synopsys, Inc. 로부터의 예시적인 EDA 소프트웨어 제품들은, CATS® 제품들의 패밀리를 포함한다.
회로 스텐실들의 발생 및 인스턴스화에 기초한 IC들의 설계를 위한 개시된 실시형태들은 특히, 스키매틱 캡쳐 및 검증 (116), 테스트를 위한 합성 및 설계 (118), 또는 물리적인 구현 (124) 프로세스들의 일부일 수도 있다.
예시적인 컴퓨팅 디바이스
도 2 는 일 실시형태에 따른, IC 를 설계하기 위한 예시적인 컴퓨팅 디바이스 (200) 를 예시하는 하이-레벨 블록도이다. 컴퓨팅 디바이스 (200) 는 칩셋 (204) 에 커플링된 적어도 하나의 프로세서 (202) 를 포함한다. 칩셋 (204) 은 메모리 제어기 허브 (220) 및 입력/출력 (I/O) 제어기 허브 (222) 를 포함한다. 메모리 (206) 및 그래픽스 어댑터 (212) 가 메모리 제어기 허브 (220) 에 커플링되며, 디스플레이 (218) 는 그래픽스 어댑터 (212) 에 커플링된다. 저장 디바이스 (208), 키보드 (210), 포인팅 디바이스 (214), 및 네트워크 어댑터 (216) 가 I/O 제어기 허브 (222) 에 커플링된다. 컴퓨팅 디바이스 (200) 의 다른 실시형태들은 상이한 아키텍쳐들을 갖는다.
저장 디바이스 (208) 는 하드 드라이브, 컴팩트 디스크 판독 전용 메모리 (CD-ROM), DVD, 또는 고체-상태 메모리 디바이스와 같은, 비일시성 컴퓨터-판독가능 저장 매체이다. 메모리 (206) 는 프로세서 (202) 에 의해 사용되는 명령들 및 데이터를 유지한다. 포인팅 디바이스 (214) 는 마우스, 트랙 볼, 또는 다른 유형의 포인팅 디바이스이며, 데이터를 컴퓨팅 디바이스 (200) 에 입력하기 위해 키보드 (210) 와 함께 사용된다. 그래픽스 어댑터 (212) 는 디스플레이 (218) 상에 이미지들 및 다른 정보를 디스플레이한다. 네트워크 어댑터 (216) 는 컴퓨팅 디바이스 (200) 를 하나 이상의 컴퓨터 네트워크들에 커플링한다.
컴퓨팅 디바이스 (200) 는 본원에서 설명되는 기능을 제공하는 컴퓨터 프로그램 모듈들을 실행하도록 적응된다. 본원에서 사용될 때, 용어 "모듈" 은 규정된 기능을 제공하기 위해 사용되는 컴퓨터 프로그램 로직을 지칭한다. 따라서, 모듈은 하드웨어, 펌웨어, 및/또는 소프트웨어로 구현될 수 있다. 일 실시형태에서, 프로그램 모듈들은 저장 디바이스 (208) 상에 저장되고, 메모리 (206) 에 로드되고, 그리고 프로세서 (202) 에 의해 실행된다. 사용되는 컴퓨팅 디바이스들 (200) 의 유형들은 실시형태 및 요건들에 따라서 변할 수 있다. 예를 들어, 컴퓨팅 디바이스는 디스플레이들, 키보드들, 및/또는 도 2 에 나타낸 다른 디바이스들이 없을 수도 있다.
아래에서 도 3 을 참조하여 아래에서 자세하게 설명되는 회로 설계 시스템 (300) 은 컴퓨팅 디바이스 (200) 에 의해 구현될 수도 있다.
회로 스텐실들의 발생 및 인스턴스화를 위한 예시적인 시스템
도 3 은 일 실시형태에 따른, 회로 스텐실들의 발생 및 인스턴스화 또는 회로 스텐실들에 대한 참조들의 생성에 기초한 IC들의 설계를 위한 예시적인 시스템을 예시하는 블록도이다. 회로 스텐실들을 재-사용하기 위한 설계 플로우는 회로 설계 프로세스로 하여금, 추가적인 계층구조를 도입함이 없이, IC 설계에서 관련된 회로 스텐실들을 탐색, 필터링, 식별, 및 인스턴스화 또는 그 회로 스텐실들에 대한 참조들을 생성가능하게 한다. 회로 스텐실이 인스턴스화되거나 또는 참조될 때, 스키매틱 설계 프로세스는 물리적인 구현 프로세스에게, "레이아웃을 스텐실하게" 함으로써, 레이아웃 구현 동안 스텐실과 연관된 레이아웃 및/또는 제약들 정보의 후속 재-사용을 가능하게 할 수도 있다. 선택된 회로 스텐실의 유니퀴파이드 (uniquified) "변형" 이 포함된 컴포넌트들의 파라미터 값들을 수정함으로써 후속 재-사용을 위해 저장될 수도 있다. 회로 시뮬레이션 프로세스는 각각의 인스턴스화된 또는 참조된 회로 스텐실과 연관되는 전기적 제약들을 자동적으로 체크하도록 명령받을 수도 있다.
회로 설계 시스템 (300) 은 특히, 설계자 입력들이 수신됨에 따라서 컴포넌트들 및 접속들을 디스플레이하고, 설정하고, 그리고 수정함으로써, 회로의 컴포넌트들 및 접속들을 인스턴스화 또는 참조 및 라우팅하는 동작을 상호작용으로 (interactively) 수행할 수도 있다. 실시형태들에서, 회로 설계 시스템 (300) 은 일련의 설계자 입력들을 수신한 후 프로세스 컴포넌트들 및 접속들을 배치할 수도 있다.
이 목적을 위해서, 회로 설계 시스템 (300) 은 회로 설계 데이터베이스 (350) 와 통신하고, 입력 디바이스들 (예컨대, 키보드 (210), 마우스 (214)) 및 출력 디바이스들 (예컨대, 디스플레이하는 디바이스 (218)) 을 통해서 설계자와 상호작용한다. 설계자에 의해 입력 디바이스들 (210, 214) 을 통해서 제공되는 설계자 입력들은 회로 설계 시스템 (300) 에게, IC 의 스키매틱에서 회로 스텐실을 인스턴스화하거나 또는 회로 스텐실에 대한 참조를 생성하고, 회로 세그먼트로 또는 그로부터, 또는 회로 세그먼트의 노드들과 컴포넌트들 사이의 접속들을 확립하거나 또는 수정하고, 그리고 디스플레이 이러한 접속들을 디스플레이 (218) 상에 디스플레이하도록 명령할 수도 있다. 회로 설계 시스템 (300) 은 컴포넌트 파라미터 정의들 데이터베이스 (360) 와 통신하여 컴포넌트 파라미터 정의들 데이터베이스 (360) 로부터 파라미터들 (362) 을 수신한다. 회로 설계 시스템 (300) 은 회로 스텐실 데이터베이스 (370) 와 통신하여 회로 스텐실들을 저장한다.
회로 설계 데이터베이스 (350) 는 스키매틱 및 레이아웃 데이터 (352) 및 수정된 스키매틱 및 레이아웃 데이터 (354) 를 저장하기 위해 회로 설계 시스템 (300) 과 상호작용하는 데이터베이스이다. 물리적인 레이아웃 데이터 (352) 는, 본원에서 사용할 때, 패턴들의 물리적인 기하학적 레이아웃, 스키매틱-레이아웃 맵핑 정보 (이하, "맵핑 정보" 로서 지칭됨), 금속 층들의 개수, 및 제조하는 회로와 연관되는 물리적인 프로세스들을 포함한다. 맵핑 정보는 특히, 노드들의 하나 이상의 서브세트들로의 하나 이상의 회로 엘리먼트들에서의 노드들의 그룹화, 및 하나 이상의 회로 엘리먼트들에서의 다른 노드들 또는 컴포넌트들에의 하나 이상의 회로 엘리먼트들에서의 노드들 또는 컴포넌트들의 대응을 표시할 수도 있다.
수정된 스키매틱 및 물리적인 레이아웃 데이터 (354) 는 상호작용 회로 설계 시스템 (300) 에 의해 원래 스키매틱 및 물리적인 레이아웃 데이터 (352) 에 대해 수정된 회로 데이터의 버전이다. 패턴들의 물리적인 기하학적 레이아웃은 예를 들어, GDSII 포맷과 같은, 회로의 디지털 표현이다. 수정된 스키매틱 및 물리적인 레이아웃 데이터 (354) 는 물리적인 레이아웃 데이터 (352) 에서의 패턴들의 물리적인 기하학적 레이아웃에 존재하지 않는 라우팅된 접속들의 패턴들의 수정된 배치들, 수정된 스키매틱들, 또는 물리적인 기하학적 레이아웃을 포함한다. 회로의 새로 발생된 접속들을 나타내는 추가 정보가 수정된 물리적인 레이아웃 데이터 (354) 에 포함될 수도 있다.
회로 설계 데이터베이스 (350) 는 예를 들어, OpenAccess 데이터베이스로서 구현될 수도 있다. 회로 설계 데이터베이스 (350) 가 상호작용 회로 설계 시스템 (300) 과 분리된 컴포넌트인 것으로 설명되지만, 회로 설계 데이터베이스 (350) 는 회로 설계 시스템 (300) 의 일부일 수도 있다. 예를 들어, 회로 설계 데이터베이스 (350) 는 메모리 (206) 내 모듈일 수도 있다.
회로 설계 시스템 (300) 은 다른 컴포넌트들 중에서, I/O 제어기 허브 (222), 메모리 (206), 및 그래픽스 어댑터 (212) 를 포함할 수도 있다. I/O 제어기 허브 (222) 는 상호작용 회로 설계 시스템 (300) 외부에 있는 회로 설계 데이터베이스 (350) 로부터의 스키매틱 및 물리적인 레이아웃 데이터 뿐만 아니라 입력 디바이스들 (210 및 214) 로부터의 설계자 입력을 수신하고, 수신된 스키매틱 및 물리적인 레이아웃 데이터 뿐만 아니라 수신된 설계자 입력을 프로세싱하고, 프로세싱된 정보를 메모리 (206) 에 제공한다.
메모리 (206) 는 다른 모듈들 중에서, 스키매틱 설계 모듈 (304), 회로 시뮬레이터 (308), 물리 구현 모듈 (312), 스텐실 발생 모듈 (316), 설계 규칙 체킹 (DRC) 및 레이아웃 대 스키매틱 (LVS) 모듈 (324), 및 회로 스텐실 탐색 모듈 (320) 을 포함할 수도 있다. 메모리 (206) 는 도 3 에 예시되지 않은 다른 소프트웨어 컴포넌트들 (예컨대, 운영 시스템) 을 포함할 수도 있다. 메모리 (206) 는 또한 단지 이들 모듈들의 서브세트만을 포함할 수도 있다.
스키매틱 설계 모듈 (304) 은 컴포넌트들, 노드들, 및 IC (예컨대, 도 7 을 참조하여 아래에서 예시되는 IC (700)) 의 다른 엘리먼트들의 표현을 추상적인, 그래픽 심볼들 및 텍스트 표현을 이용하여 생성하는 소프트웨어 모듈이다. 스키매틱 설계 모듈 (304) 은 컴포넌트들을 나타내는 심볼들을 이용하고 그들의 상호접속 경로들을 강조하는 IC 의 스키매틱을 생성한다. 스키매틱 설계 모듈 (304) 은 스키매틱 캡쳐 툴들 및 스키매틱 엔트리 툴들을 포함할 수도 있다. 스키매틱 설계 모듈 (304) 은 전체 회로 설계 플로우에 통합되고 회로의 검증 및 시뮬레이션을 위해 다른 EDA 툴들에 링크될 수도 있다. 스키매틱 설계 모듈 (304) 은 도 7 을 참조하여 아래에 예시되고 설명되는 바와 같이, 스키매틱 설계 동안 IC 의 스키매틱에서의 회로 스텐실들을 인스턴스화하거나 또는 참조한다.
회로 시뮬레이터 (308) 는 수학적 모델들을 이용하여 IC 의 거동을 모사하는 소프트웨어 모듈이다. 회로 시뮬레이터 (308) 는 엄격하게는 아날로그 전자 회로 시뮬레이터일 수도 있거나 또는 아날로그 및 이벤트-구동 디지털 시뮬레이션 능력들 모두 (예컨대, 혼합-모드 시뮬레이터) 를 포함할 수도 있다. 전체 혼합된 신호 분석이 하나의 통합된 스키매틱으로부터 도출될 수 있다. 회로 시뮬레이터 (308) 에서의 디지털 모델들은 IC 에서의 컴포넌트들 및 노드들의 전파 시간 및 상승/하강 시간 지연들의 사양들을 제공한다. 스키매틱 설계 모듈 (304) 은 회로 스텐실들의 인스턴스화 또는 회로 스텐실들에 대한 참조들의 생성을 통해서 IC 의 회로 세그먼트들에 대한 연결성, 제약들, 및 파라미터들 정보를 연관시킨다. 예를 들어, (실제 설계 레이아웃에 기초한) 회로 세그먼트에 대한 상세한 기생물들 (parasitics) 이 회로 세그먼트에 대한 회로 스텐실을 통해서 회로 스키매틱에 포함될 수도 있다. 회로 시뮬레이터 (308) 는 회로 스텐실의 하나 이상의 인스턴스들이 배치되는 (증폭기 또는 비교기와 같은) 목표 설계의 사전-레이아웃 시뮬레이션에서 이러한 정보의 재-사용을 가능하게 한다.
물리 구현 모듈 (312) 은 IC 의 부분들의 표현을 IC 의 컴포넌트들에 포함되는 금속, 산화물, 또는 반도체 계층들의 패턴들에 대응하는 평면 기하학적 형상들로 생성하는 소프트웨어 모듈이다. 물리 구현 모듈 (312) 은 회로 세그먼트에 대한 스텐실을 포함한, IC 의 적어도 일부분의 레이아웃을 회로 스텐실에서의 설계 제약들 정보를 이용하여 발생시킬 수도 있다. 실시형태들에서, 물리 구현 모듈 (312) 은 IC 의 적어도 일부분의 레이아웃을 배치 동작 (batch operation) 으로 발생시킬 수도 있다.
스텐실 발생 모듈 (316) 은 IC 의 회로 세그먼트에 대한 연결성 정보를 수신하는 소프트웨어 모듈이다. 연결성 정보는 회로 세그먼트의 컴포넌트들과 IC 의 컴포넌트들 사이의 접속들을 표시한다. 스텐실 발생 모듈 (316) 은 또한 회로 세그먼트의 컴포넌트들 또는 노드들에 대한 설계 제약들을 표시하는 제약들 정보를 수신할 수도 있다. 스텐실 발생 모듈 (316) 은 회로 스텐실, 즉, 회로 세그먼트에 대한 감소된 연결성 정보의 표현을 포함하는 회로 세그먼트의 설계 추상화를 발생시킨다. 스텐실은 또한 도 5 및 도 6 을 참조하여 아래에서 설명되는 바와 같이, 회로 세그먼트의 컴포넌트들 또는 노드들에 대한 제약들 정보, 회로 세그먼트의 컴포넌트들 또는 노드들의 정규화된 이름들, 또는 회로 세그먼트의 컴포넌트들의 파라미터들 사이의 파라미터 관계들을 포함할 수도 있다.
컴포넌트들의 파라미터 정의들 (예컨대, 트랜지스터들의 트랜지스터 길이) 이 컴포넌트 파라미터 정의들 데이터베이스 (360) 에 저장된다. 컴포넌트 파라미터 정의들 데이터베이스 (360) 는 파라미터들의 정의들 (예컨대, 파라미터 이름들, 설명들, 디폴트 값들, 값들의 가능한 범위들, 등) 을 포함한다. 컴포넌트 파라미터 정의들 데이터베이스 (360) 는 또한 상호 이용가능한 컴포넌트 설명 포맷 (iCDF) 데이터베이스로 불릴 수도 있다. 스텐실 발생 모듈 (316) 은 도 6 을 참조하여 아래에서 자세하게 설명되는 바와 같이, 디바이스들 (364) 의 파라미터들을 이용하여 컴포넌트 파라미터 정의들 데이터베이스 (360) 를 탐색할 수도 있다. 스텐실 발생 모듈 (316) 은 컴포넌트 파라미터 정의들 데이터베이스 (360) 로부터 파라미터들 (362) 을 수신한다.
회로 스텐실 데이터베이스 (370) 는 회로 스텐실들을 저장하는 데이터베이스이다. 회로 스텐실들에서의 연결성 정보 (376) 가 스텐실 발생 모듈 (316) 에 의해 회로 스텐실 데이터베이스 (370) 로 전송된다. 스키매틱 설계 모듈 (304) 및 물리 구현 모듈 (312) 은 각각 회로 스텐실 데이터베이스 (370) 로부터 회로 스텐실들 (372) 을 수신할 수도 있다. 실시형태들에서, 회로 스텐실들은 다른 유형들의 설계 셀들과 유사하게 설계 라이브러리들 내 셀들로서 저장될 수도 있다. 회로 스텐실들은 스텐실 연결성을 텍스트 또는 네트리스트 포맷으로 포함하는, 회로 스텐실 셀 내 특수 "stencilNetlist" 파티션의 존재에 의해 식별될 수도 있다. 라이브러리-레벨 카탈로그는 라이브러리 내 모든 회로 스텐실 셀들을 리스트하는 OpenAccess 라이브러리 속성으로서 유지관리될 수도 있다. 회로 스텐실 정보는 또한 관계형 데이터베이스 내에 저장될 수도 있다.
DRC 및 LVS 체킹 모듈 (324) 은 특정의 칩의 물리적인 레이아웃이 일련의 설계 규칙들을 만족시키는지 여부를 결정하는 소프트웨어 모듈이다. 설계 규칙들은, 당업계에 널리 알려져 있는 바와 같이, 적합한 IC들이 반도체 제조업자들에 의해 제조될 수 있도록 보장하기 위해 반도체 제조업자들에 의해 권장되는 일반적인 파라미터들을 지칭한다. 설계 규칙들이 위반될 때, DRC 및 LVS 체킹 모듈 (324) 은 교정 액션들을 위해 설계자에게 그 위반을 프롬프트하거나 또는 설계 규칙들을 준수하도록 물리적인 레이아웃을 자동적으로 수정한다. DRC 및 LVS 체킹 모듈 (324) 은 물리 구현 모듈 (312) 에 의해 생성된 특정의 IC 레이아웃이 스키매틱 설계 모듈 (304) 에 의해 생성된 설계의 스키매틱에 대응하는지 여부를 결정한다. DRC 및 LVS 체킹 모듈 (324) 은 레이아웃 동안 회로를 나타내기 위해 그려진 층들을 영역-기반의 로직 동작들을 이용하여 검사하여, 그들의 구성 층들로 도면에 나타낸 반도체 컴포넌트들을 결정한다. DRC 및 LVS 체킹 모듈 (324) 은 추출된 컴포넌트들을 직렬 및 병렬 조합들로 결합하여, 레이아웃 데이터베이스의 네트리스트 표현을 발생시킨다. DRC 및 LVS 체킹 모듈 (324) 은 스키매틱 상에서 유사한 감소를 수행한다. DRC 및 LVS 체킹 모듈 (324) 은 추출된 레이아웃 네트리스트를 회로 스키매틱과 비교한다.
회로 스텐실 탐색 모듈 (320) 은 회로 설계 시스템 (300) 으로 하여금 IC 설계 내에서 인스턴스화를 위해 적합한 회로 스텐실들을 탐색, 필터링, 및 식별가능하게 하는 소프트웨어 모듈이다. 회로 스텐실 탐색 모듈 (320) 은 음의 금속 산화물 반도체 (NMOS) 및 양의 금속 산화물 반도체 (PMOS) 변형들 양쪽, NPN 및 PNP 양극성 변형들에, 어쩌면, 저전압 및 고전압 트랜지스터 변형들 또는 다른 제조-프로세스-특정의 변형들, 등을 곱한, 상당한 수의 공통 회로 "빌딩 블록 (building block)" 토폴로지들을 포함하여 가용 회로 스텐실들의 총 개수가 클 수도 있기 때문에 탐색 및 필터 능력을 제공한다.
일부 예시적인 실시형태들에서, 도 3 의 시스템은 위에서 설명한 것들과는 상이한 및/또는 추가적인 컴포넌트들을 가질 수도 있다. 전용 배치 및 라우팅 툴과 같은 추가적인 컴포넌트들이 추가될 수도 있다. 자동적인 테스트 패턴 발생 모듈은 IC들에 대한 테스트 시퀀스들을 발생시키기 위해 스키매틱 설계 모듈 (304) 과 함께 동작할 수도 있다. 데이터베이스들 (350, 360, 및 370) 은 단일 데이터베이스로 통합될 수도 있거나, 또는 데이터베이스들 중 임의의 데이터베이스는 메모리 (206) 의 부분일 수도 있다.
예시적인 회로 세그먼트
도 4 는 일 실시형태에 따른, 회로 세그먼트 (400) 의 예시적인 다이어그램이다. 스텐실 발생 모듈 (316) 은 관심 회로 세그먼트, 예를 들어, 도 4 의 회로 세그먼트 (400) 를 포함하는 (완료되거나 또는 부분적으로 완료될 수도 있는) 기존 IC 설계를 생성하거나 또는 연다. 실시형태들에서, 레이아웃 설계들이 스키매틱 설계들 대신 사용될 수도 있다.
회로 세그먼트 (400) 는 능동 디바이스들의 다른 세트에서의 전류를 제어함으로써 능동 디바이스들의 하나의 세트를 통해서 전류를 복사하고 출력 전류를 부하에 관계없이 일정하게 유지하는 전류 미러를 나타낸다. 회로 세그먼트 (400) 는 트랜지스터들 (404, 408, 412, 및 416) 의 시리즈를 포함한다. 트랜지스터들의 임계치 이하 및 게이트 누설 전류들이 초 서브마이크론 IC들에서 소비 전력에 대한 중요한 기여자일 수 있다. 트랜지스터들의 직렬 스택은, 도 4 에 나타낸 바와 같이, 종종 나노 규모의 IC들에서 누설 전류들 및 게이트 누설 대 전체 누설 비를 감소시키도록 설계된다.
도 4 에서의 노드 (428) 는 직렬 스택의 드레인을 나타내고, 노드 (432) 는 직렬 스택의 소스를 나타낸다. 노드 (428) 는 전력 ("Vdd") 에 접속될 수도 있다. 노드 (432) 는 예컨대, 증폭기에서의, 트랜지스터들의 차동 쌍을 로드하는데 사용될 수도 있다. 노드 (424) 는 직렬 스택 및 트랜지스터 (420) 양쪽의 게이트들에 접속된다. 트랜지스터 (420) 는 전류 미러 (400) 의 다른 레그 (leg) 를 나타낸다. 노드 (436) 는 트랜지스터 (420) 의 드레인을 나타내며, 노드 (440) 는 트랜지스터 (420) 의 소스를 나타낸다. 노드 (436) 는 전력 ("Vdd") 에 접속될 수도 있다. 노드 (440) 는 예컨대, 증폭기에서의, 트랜지스터들의 차동 쌍을 로드하는데 사용될 수도 있다.
스텐실 발생 모듈 (316) 은 회로 세그먼트 (400) 에 대한 연결성 정보 및 (옵션적으로) 설계 제약들 정보를 수신한다. 연결성 정보는 (예컨대, 노드 (424) 가 직렬 스택 및 트랜지스터 (420) 양쪽의 게이트들에 접속되는) 회로 세그먼트의 컴포넌트들과, (예컨대, 노드들 (432 및 440) 이 IC 에서의 차동 쌍에 접속될 수도 있는) IC 의 컴포넌트들 사이의 접속들을 표시한다. 일 실시형태에서, 회로 세그먼트의 연결성은 텍스트 포맷, 예컨대, "m1 nmos {net1 벌크} {net2 게이트} {net3 소스} {net4 드레인}" 으로 인코딩될 수도 있다. 이 포맷은 회로 세그먼트의 전기 연결성을 정규화된, 비-그래픽 형태로 캡쳐한다. 스텐실 발생 모듈 (316) 은 회로 세그먼트의 기능을 분석하고 회로 세그먼트에서의 적어도 하나의 여분의 컴포넌트 또는 노드를 기능을 수정함이 없이 제거하거나 또는 대체함으로써, 연결성 정보를 컬랩스하여 회로 세그먼트에 대해 감소된 연결성 정보를 발생시킨다. 감소된 연결성 정보는 연결성 정보의 논리적으로 압축된 버전을 나타낸다.
스텐실 발생 모듈 (316) 은 (i) 회로 세그먼트의 컴포넌트들의 병렬 스택을 단일 컴포넌트로 대체하거나, (ii) 회로 세그먼트의 컴포넌트들의 시리즈를 단일 컴포넌트로 대체하거나, 또는 (iii) 회로 세그먼트의 하나 이상의 컴포넌트들의 입력들을 치환함으로써, 회로 세그먼트의 연결성 정보를 컬랩스할 수도 있다. 예를 들어, 전력 증폭기들은 전류를 공유하고 유사한 열 발산을 가지는 출력 트랜지스터들의 병렬 스택을 이용할 수도 있다. 스텐실에서 이러한 회로 세그먼트를 모델링하기 위해, 스텐실 발생 모듈 (316) 은 병렬 스택을 단일 컴포넌트로 대체할 수도 있다.
이하에서 도 5 를 참조하면, 도 4 에서의 회로 세그먼트 (400) 의 트랜지스터들 (404, 408, 412, 및 416) 의 직렬 스택은 도 5 의 회로 세그먼트 (500) 에서의 단일 컴포넌트 (504) 로 대체되었다. 도 4 에서의 회로 세그먼트 (400) 에 대한 연결성 정보는 도 5 를 참조하여 아래에서 예시되는 바와 같이 회로 세그먼트 (500) 에 대해 감소된 연결성 정보로 컬랩스되었다. 트랜지스터들의 드레인 및 소스와 같은 입력 단자들은 또한 네트리스트 감소 방법들을 이용하여 연결성을 압축하기 위해 치환될 수도 있다. 예를 들어, MOS 트랜지스터들의 소스/드레인 단자들은 감소된 연결성 정보를 발생시키기 위해 회로 세그먼트의 기능을 수정함이 없이 치환될 수도 있다.
스텐실 발생 모듈 (316) 은 또한 회로 세그먼트 (400) 에 대한 설계 제약들 정보를 수신할 수도 있다. 제약들 정보는 회로 스텐실에 이후 기록되는, 회로 세그먼트의 컴포넌트들 또는 노드들에 대한 설계 제약들을 표시한다. 예를 들어, 회로 스텐실은 정적 또는 하드코딩된 설계 정보보다는, 설계 의도를 캡쳐하도록, 제약들을 포함할 수도 있다. 이것은 하나의 설계 컨텍스트로부터 제공받고, 그후 예컨대, 상이한 트랜지스터 사이즈들, 핀들의 개수, 등을 가지는 다른 설계 컨텍스트들에서 적용될 수도 있기 때문에, 회로 스텐실의 재-사용 가능성을 추가로 증가시킨다. 회로 스텐실에서의 제약들을 통한 설계 의도의 통합은 선행 기술의 "정적" IP-공유 접근법들과는 상이하다. 회로 스텐실들에 대한 설계 제약들이 도 5 를 참조하여 아래에서 자세히 설명된다.
발생된 회로 스텐실은 회로 세그먼트에 대한 정보 구조를 생성하고 그후 재사용하는 프로세스를 반영한다. 회로 스텐실을 생성하는 것은, 도 5 를 참조하여 아래에서 자세히 설명되는 바와 같이, 큰 데이터셋 (예컨대, 회로 세그먼트 내 컴포넌트들의 선택에 의한, 구현된 회로 세그먼트 및 그의 기생물들) 을 수신하는 것, 큰 데이터셋를 감소시키는 것 (예컨대, 연결성 정보를 컬랩스하는 것), 선택된 컴포넌트들 사이의 관심 관계들 (예컨대, 파라미터 관계들, 레이아웃에서의 인스턴스들의 상대 위치 지정, 그들을 라우팅하는데 사용되는 패턴들) 을 결정하기 위해 추론들을 수행하는 것, 및 그후 스텐실 데이터 파티션들에 저장된 관계들이 정규화된 네임스페이스와 관련되도록 보장하기 위해 네임스페이스를 정규화하는 것을 포함한다.
컬랩스된 연결성의 예시적인 표현
도 5 는 일 실시형태에 따른, 도 4 에서의 회로 세그먼트에 대한 컬랩스된 연결성 정보를 예시하는 예시적인 다이어그램이다. 회로 세그먼트 (500) 는 또한 전류 미러를 나타내며, 그러나, 도 4 에서의 4개의 직렬 스택된 트랜지스터들은 도 5 에서 단일 트랜지스터 (504) 로 감소되었다. 회로 세그먼트 (500) 의 다른 엘리먼트들은 상기 도 4 에서의 회로 세그먼트 (400) 와 동일하다. 도 5 는, 따라서, 도 4 에서의 회로 세그먼트 (400) 의 스텐실된 유형을 나타낸다. 도 5 에서의 회로 스텐실 표현은 감소된 연결성 정보 및 (옵션적으로) 제약들 정보를 포함한다. 그것은 상기 도 4 에서의 회로 세그먼트 (400) 의 추상화된 버전을 나타낸다. 실시형태들에서, 회로 스텐실은 또한 IC 설계 레이아웃으로 인스턴스화되거나 또는 구현되어, 정적 형태로 변질될 수도 있는 정적 레이아웃 파티션을 포함할 수도 있다. 실시형태들에서, 회로 스텐실은 또한 IC 설계 스키매틱으로 인스턴스화되거나 또는 구현될 수도 있는 정적 스키매틱 파티션을 포함할 수도 있다.
회로 스텐실에서의 제약들 정보는 회로 세그먼트의 컴포넌트들에 대한 전기적 어서션들을 포함할 수도 있다. 시뮬레이터 체크들은 전기적 어서션들을 회로 시뮬레이터 (308) 에 대한 시뮬레이터-특정의 회로 체크 스테이트먼트들로 전환함으로써 발생될 수도 있다. 예를 들어, 전류 미러 (500) 에서, 트랜지스터들 (504 및 420) 양쪽은 동작의 "포화" 영역에 있어야 하며, 이는 기능적 전류 미러에 대한 전형적인 배열이다. 실시형태들에서, 예를 들어, 채널 길이 변조로 인한 체계적인 불일치를 피하기 위해 "2개의 트랜지스터들의 드레인-소스 전압 차이가 임계치 미만이다" 라는 추가적인 그리고 더 복잡한 전기적 어서션들이 규정될 수도 있다. 스텐실 발생 모듈 (316) 은 또한 회로 스텐실들을 생성하기 전에 제약들을 제거할 수도 있다.
인스턴스화된 또는 참조된 회로 스텐실들과 연관되는 전기적 어서션 체크들은 회로 시뮬레이터 (308) 에 의한 체킹에 대해 인에이블될 수도 있다. IC 설계 플로우에서, 계층적 설계가 스키매틱 설계 모듈 (304) 에 의한 스키매틱 설계에 대해 선택될 때, 스키매틱 설계 모듈 (304) 에 의해 수행되는 네트리스팅 프로세스는 인스턴스 도면들 (instance figures) 을 스키매틱 셀 계층구조의 각각의 레벨에서 검사하고, 그들을 텍스트 네트리스트 파일에 회로 시뮬레이터 (308) 에 적합한 포맷으로 기록한다. 예를 들어, 트랜지스터들 (504 및 420) 의 의도된 포화 동작 영역들을 리스트하는 전기적 어서션들이 회로 스텐실에서 생성될 수도 있다. 이 설계 의도는 검증 목적들을 위해 회로 시뮬레이터 (308) 로 전달된다. 따라서, 스키매틱 설계 및 시뮬레이션 플로우가 스키매틱 인스턴스 도면들을 검사할 뿐만 아니라, 인스턴스화된 또는 참조된 회로 스텐실들에 대한 스키매틱을 검사하도록 확장된다.
구체적으로 설명하면, 인스턴스화된 또는 참조된 회로 스텐실들이 식별되고 전기적 어서션들에 대해 검사된다. 각각의 이러한 인스턴스화된 또는 참조된 회로 스텐실에 대해, 전기적 어서션들이 존재하면, 그들 어서션들은 회로 시뮬레이터 (308) 에 대한 시뮬레이터-특정의 회로 체크 스테이트먼트들로 전환된다. 이에 응답하여, 회로 시뮬레이터 (308) 는 트랜지스터들 (504 및 420) 이 동작의 포화 영역에 실제로 있는지를 끊임없이 체크하여, 이 의도된 동작 영역으로부터의 임의의 일탈들 (divergences) 을 보고한다. 이 "자가-체킹" 특징은 회로 스텐실들이 인스턴스화되거나 또는 참조된 목표 IC들의 검증을 가능하게 한다.
스키매틱 설계 모듈 (304) 은 스키매틱 트랜지스터들을 선택하고 그후 동일한 대응하는 연결성을 가지는 하나의 (또는, 그 이상의) 매칭 회로 스텐실들을 탐색할 수도 있다. 스키매틱 설계 모듈 (304) 은 회로 스텐실 데이터베이스 (370) 로부터 회로 스텐실을 선택하고, 그후 동일한 연결성을 가지는 매칭 스키매틱 트랜지스터들의 하나의 (또는, 그 이상의) 그룹들을 탐색할 수도 있다. 이렇게 함으로써, IC 에 대한 이전에 생성된 스키매틱이 "스텐실될 (stencilized)" 수도 있다. 그의 구성요소인 회로 세그먼트들 중 임의의 회로 세그먼트가 스텐실의 인스턴스 또는 스텐실에 대한 참조로 대체될 수도 있는지 여부를 결정하기 위해 스키매틱이 검사될 수도 있다. 이들 "탐색 및 구현 (search and realize)" 또는 "탐색 및 재-구현 (search and re-realize)" 특징들은 또한 아래에서 설명되는 바와 같이, 스키매틱 중심 (driven) 레이아웃 (SDL) 발생에 의해 수행될 수도 있다.
제약들 정보는 또한 회로 세그먼트의 컴포넌트들에 대한 기하학적 및 연결성 어서션들을 포함할 수도 있다. IC 의 일부의 레이아웃을 발생시키는 것은 기하학적 및 연결성 어서션들을 이용하여 회로 세그먼트에 대응하는 IC 의 컴포넌트들 또는 노드들의 물리적 표현들을 배치 및 라우팅하는 것을 포함할 수도 있다. 예를 들어, 목표 설계에서 회로 스텐실을 인스턴스화하거나 또는 참조할 때, 스키매틱 설계 모듈 (304) 은 목표 설계를 구현하기 위해 생성될 레이아웃에 대해 제어를 행할 수도 있다. 스키매틱 설계 모듈 (304) 은 물리 구현 모듈 (312) 로 하여금 레이아웃을 구현할 때 스텐실의 가용 레이아웃 또는 제한 파티션들 중 어느 것을 이용할지에 대한 제어의 정도를 가능하게 할 수도 있거나, 또는 스키매틱 설계 모듈 (304) 은 물리 구현 모듈 (312) 을 단지 그 스텐실된 레이아웃 파티션에만 제한하기 위해 파티션을 선택하고 "단지 이 파티션에만 록킹할 (lock to this partition only)" 수도 있다. 후자의 경우에, (예를 들어, SDL 을 이용하여) 레이아웃을 구현할 때, 물리 구현 모듈 (312) 은 회로 스텐실에 규정된 레이아웃 제약들을 따르도록 제약된다.
SDL 이 IC 의 레이아웃에서 스텐실들을 인스턴스화하기 위해 사용되는 실시형태들에서, 물리 구현 모듈 (312) 은 위에서 설명한 바와 같이 회로 스텐실을 직접 선택 및 배치할 수도 있다. 대안적으로, 물리 구현 모듈 (312) 은 스키매틱 트랜지스터들을 선택하고 그후 동일한 대응하는 연결성을 가지는 하나의 (또는, 그 이상의) 매칭 회로 스텐실들을 탐색할 수도 있다. 물리 구현 모듈 (312) 은 회로 스텐실 데이터베이스 (370) 로부터 회로 스텐실을 선택하고, 그후 동일한 연결성을 가지는 매칭 스키매틱 트랜지스터들의 하나의 (또는, 그 이상의) 그룹들을 탐색할 수도 있다.
매칭 회로 스텐실들은 또한 자동화된 배치 및 라우트 툴들에 의해 사용될 수도 있다. 이들 툴들은 디바이스 인스턴스들을 자동화된 방법으로 배치 또는 라우팅할 때, 예를 들어, 회로 스텐실 제약들을 입력하고, 그들을 적용 또는 이행할 수 있다. 예를 들어, 제한은 차동-쌍 트랜지스터들 양자를 단일 로우로 배치하거나, 또는 다수의 매칭 아이템들을 N 개의 로우들 곱하기 M 개의 칼럼들의 그리드, 등으로 배치하기 위해, 자동화된 플레이서 (placer) 툴을 필요로 할 수도 있다. 회로 스텐실은 그들의 기생물들이 거의 매칭하는, 등등이 되도록, 2개의 네트들 (nets) 을 대칭적으로 라우팅하기 위해 자동화된 라우팅 툴을 필요로 할 수도 있다. 다수의 매칭 회로 스텐실들이 존재하는 실시형태들에서, 전체 앙상블이 자동화된 배치 및 라우팅 툴들에 의해 한꺼번에 고려될 수도 있다. 실시형태는 또한 모든 회로 스텐실들이 반복되는 것을 가능하게 하며, (하나 이상의 매치들을 가질 수도 있는) 각각의 회로 스텐실에 대해, 동일한 프로세스가 매치 마다 뒤따른다. 이것은 동작들을 배치-형 방식으로 자동화 또는 집합한다.
스텐실 발생 모듈 (316) 은 예를 들어, (i) 설계자 입력 지령들, (ii) 회로 세그먼트의 컴포넌트들 및 노드들의 심볼 물리적 표현들을 배치하도록 구성된 심볼 에디터, 또는 (iii) 회로 세그먼트의 컴포넌트들 및 노드들에 대한 연결성 라우팅 패턴들을 배치하도록 구성된 패턴 라우트 인터페이스로부터, 회로 세그먼트에 대한 제약들 정보를 수신할 수도 있다. 스텐실 발생 모듈 (316) 은 I/O 제어기 허브 (222) 를 통한 입력 디바이스들 (210 및 214) 로부터의 설계자 입력으로부터 제약들을 수신할 수도 있다. 예를 들어, 스크린 (218) 상에 디스플레이되는 설계자 인터페이스 다이얼로그가 레이아웃 도면들 및/또는 제약들의 세트를 포함한 초기 선택을 생성하기 위해 사용될 수도 있다. 스텐실 발생 모듈 (316) 은 회로 스텐실 연결성 뿐만 아니라, 선택된 레이아웃 도면들, 제약들 및/또는 연관된 스키매틱 도면들을, 새로 생성된 스텐실 셀 내 별개의 스텐실 파티션들에 저장할 수도 있다. 회로 스텐실 메타데이터 다이얼로그의 "고급 (advanced)" 섹션은 옵션적으로, 파라미터화 및 어서션 (전기적 제한) 정보를 제공하기 위해 확장될 수도 있다. 파라미터화 정보는 "파라미터들 (parameters)" 탭을 통해서 기입될 수도 있으며, 전기적 어서션들은 "어서션들 (assertions)" 탭을 통해서 기입될 수도 있다. 파라미터들 테이블은 관심있는 전형적인 파라미터들로 사전-팝퓰레이트된, 스크린 (218) 상에 디스플레이될 수도 있다. 스텐실 발생 모듈 (316) 은 설계자 지령들에 기초하여 테이블의 콘텐츠를 직접 편집함으로써, 회로 스텐실을 파라미터화하지 않도록 선택하거나, 또는 파라미터들을 제거하거나 새로운 파라미터들을 추가하거나 또는 파라미터들을 개명하도록 진행할 수도 있다. 회로 스텐실들의 파라미터화가 도 6 을 참조하여 아래에서 자세히 설명된다.
심볼 에디터는 디지털 및 아날로그 회로 레이아웃에 사용되는 소프트웨어 모듈이다. 심볼 에디터는 회로 세그먼트 (500) 에 대한 다수의 PMOS 및 NMOS 로우 쌍들에 대한 제약들을 정의하는 능력을 갖는다. 심볼 에디터 상의 미리보기 윈도우는 레이아웃 캔버스 상에서 구현될 때 레이아웃이 어떻게 보일 것인지를 디스플레이할 수도 있다. 예를 들어, 설계를 좀더 압축하기 위해서, 더 큰 트랜지스터들은 접혀질 필요가 있을 수도 있다. 심볼 에디터는 트랜지스터들에 대한 원하는 세그먼트들의 개수 또는 폭 임계치를 제한함으로써 설계자로 하여금 트랜지스터를 접을 수 있게 한다. 물리 구현 모듈 (312) 은 그후 적합한 디바이스들을 선택하고 트랜지스터들이 로우들에 깔끔하게 맞도록 그들을 접을 수 있다. 아날로그 IC들은 일반적으로 프로세스 변화, 잡음 및 다른 제조상의 차이들에 민감하다. 회로의 중요 부분들에 대한 이들 차이들의 영향을 경감시키기 위해, 심볼 에디터는 복잡한 인터디지테이션 (interdigitation) 패턴 제약들을 규정할 수도 있다. 심볼 에디터는 또한 디바이스들을 특정의 순서로 인터디지테이트하는데 사용될 수 있는 내장 패턴들의 라이브러리로부터 제약들을 취출할 수도 있다.
패턴 라우트 인터페이스는 기존 레이아웃들로부터 라우팅 패턴들을 추론하여, 제약들을 이용하여 그들 패턴들을 발생 및 저장할 수 있는 소프트웨어 라우팅 인터페이스이다. 패턴 라우트 인터페이스는 노드들에 대응하는 기존 다각형들 및 사전-라우트들로서 불리는 기존 와이어링을 취출할 수도 있다. 패턴 라우트 인터페이스는 동일한 네트에 할당된 모든 노드들은 접속되고 상이한 네트들에 할당된 어떤 노드들도 접속되지 않고 그리고 모든 설계 규칙들이 준수되도록, 기하학적인 제약들을 생성할 수도 있다. 네트들을 정확하게 연결하기 위해, 패턴 라우트 인터페이스는 또한 설계가 타이밍을 만족시키고, 어떤 크로스토크 문제들도 갖지 않고, 임의의 금속 밀도 요건들을 만족시키고, 안테나 효과들을 겪지 않는, 등등이 되도록 제약들을 생성할 수도 있다.
스텐실 발생 모듈 (316) 은 회로 스텐실에의 포함을 위해 회로 세그먼트의 컴포넌트들 및 노드들의 이름들을 정규화한다. 회로 스텐실에서의 노드들 및 컴포넌트들은 아래에서 설명되는 이름 정규화 방법을 이용하여 정규화되거나 또는 "유니퀴파이된 (uniquified)" 그들의 이름들을 가질 수도 있다. 스텐실 발생 모듈 (316) 은 관심 회로 세그먼트를 포함하는 IC 의 노드 구조들에 대해 반복한다. 각각의 노드에 마주치면, 그것이 관심대상인지를 검사된다. 그 노드는 스텐실의 컴포넌트들 중 임의의 컴포넌트의 직접 상호접속과 연관되면, "관심 대상" 이다. 노드가 이러한 직접 상호접속과 연관되지 않으면 (예컨대, 아래 도 4 에서의 노드들 (424 또는 428)), 그것은 관심대상이 아니다. 노드가 관심대상이면, 노드는 정규화되며 (그의 이름이 노드 맵에서의 대응하는 값으로 대체됨) 스텐실에 기록되며, 프로세스는 그 노드와 연관되는 노드 엘리먼트들로 계속 진행한다. 각각의 노드 엘리먼트가 그의 필드들이 관심대상인지를 확인하기 위해 검사되며, 만약 그렇다면 스텐실에 기록되기 전에 "스텐실화" 가 그들 노드 필드들에 다시 적용된다. 노드 이름들은 스텐실에 기록하기 전에 그들의 인스턴스 이름들에의 스트링의 첨부를 통해서 유니퀴파이될 수도 있다. 모든 노드들이 소모될 때, 컴포넌트들이 횡단 (traverse) 된다. 관심있는 각각의 컴포넌트가 고려되며, 그의 인스턴스 이름이 스텐실에 기록하기 전에 인스턴스 이름 맵으로부터의 대응하는 값으로 정규화된다. 게다가, 그의 노드 필드들이 또한 네트 이름 맵과 비교되고, 임의의 다른 노드 아이템에 대해서 처럼 스텐실된다.
발생된 회로 스텐실은 (도 5 에 예시된 바와 같은) 발생된 감소된 연결성 정보 및 (옵션적으로) 제약들 정보, 컴포넌트들 또는 노드들의 정규화된 이름들, 또는 (도 6 을 참조하여 아래에서 자세히 예시되고 설명된) 회로 세그먼트의 컴포넌트들의 파라미터들 사이의 파라미터 관계들을 포함한다. 회로 스텐실은 또한 메타데이터를 포함할 수도 있으며, 그 메타데이터는 회로 스텐실의 이름 (예컨대, "ScalableCurrentMirror"), 회로 스텐실의 설명 (예컨대, "비 파라미터 (ratio parameter) 가 출력 전류로 하여금 참조 전류에 대해 스케일링될 수 있게 하는 스케일러블 NMOS 전류 미러"), 회로 스텐실의 스키매틱 미리보기 이미지까지의 경로, 또는 회로 스텐실의 레이아웃 미리보기 이미지까지의 경로 중 하나 이상을 포함한다. 섬네일 미리보기 이미지는 도 5 에 예시된 바와 같이, 회로 세그먼트 셀뷰로부터 유도된 회로 스텐실에 대해 발생될 수도 있다. 실시형태들에서, 설계자는 대안적인 이미지를 대신 제공할 수도 있다. 미리보기 이미지 및 회로 스텐실 "설명" 메타데이터는 도 7 을 참조하여 아래에서 설명되는 바와 같이, 회로 스텐실의 재-사용을 가능하게 한다.
회로 스텐실에서의 예시적인 파라미터 관계들
도 6 은 일 실시형태에 따른, 상기 도 5 에 예시된 회로 세그먼트 (500) 의 컴포넌트들에 대한 파라미터 관계들 (608) 을 예시하는 예시적인 다이어그램이다. 컴포넌트들의 파라미터들은 트랜지스터 길이와 같은 트랜지스터 설계 파라미터들, 등을 지칭하며, 스텐실 발생 모듈 (316) 에 의해 회로 스텐실에 통합된다.
도 6 은 (상기 도 4 의 직렬 스택으로부터 감소된) 트랜지스터 (504) 에 대한 파라미터들 (604) 을 예시한다. 심볼 nf 는 트랜지스터 (504) 의 핑거들의 개수를 나타내며 수식 gPar(nfingers) 로 대체되었다. 심볼 l 은 트랜지스터 (504) 의 트랜지스터 길이를 나타내며 이 예에서는 0.1u 와 같다. 심볼 w 은 트랜지스터 (504) 의 트랜지스터 길이를 나타내며 이 예에서는 0.19u 와 같다. 파라미터들 리스트 (612) 에서 트랜지스터 (420) 에 대한 심볼 nf 는 트랜지스터 (420) 의 핑거들의 개수를 나타내며 수식 gPar(nfingers)*gPar(ratio) 로 대체되었다. 트랜지스터 (420) 에 대한 심볼 l 은 트랜지스터 (420) 의 트랜지스터 길이를 나타내며 이 예에서는 0.1u 와 같다. 트랜지스터 (420) 에 대한 심볼 w 는 트랜지스터 (420) 의 트랜지스터 길이를 나타내며 이 예에서는 0.19u 와 같다. 수식 gPar(nfingers) 는 회로 스텐실에 대한 파라미터들 (608) 의 리스트에서 2 와 같다. 비 (ratio) 의 값은 파라미터들 (608) 의 리스트에서 4 와 같다. 트랜지스터 (420) 는 따라서 4 곱하기 트랜지스터 (504) 의 핑거들의 수, 즉, 4 × 2 = 8 을 갖는다.
스텐실 발생 모듈 (316) 은 회로 세그먼트의 컴포넌트들의 파라미터들 사이의 파라미터 관계들을 결정하고 결정된 파라미터 관계들을 회로 스텐실에 기록한다. 파라미터 관계들을 결정하는 것은 컴포넌트 파라미터 정의들 데이터베이스 (360) 로부터 회로 세그먼트의 컴포넌트들의 파라미터들의 서브세트를 선택하고 파라미터들의 선택된 서브세트에 걸쳐서 동일한 값들을 가지는 파라미터들을 식별하는 것을 포함할 수도 있다. 파라미터 관계들을 결정하는 것은 그 파라미터 값들이 식별된 파라미터들의 동일한 값들과 매칭하는 회로 세그먼트의 컴포넌트들을 식별하고 식별된 컴포넌트들의 파라미터 값들을 동일한 값들을 나타내는 수식들로 대체하는 것을 더 포함할 수도 있다.
회로 스텐실에 대한 파라미터들 (608) 의 테이블은 초기에 관심 후보 파라미터들로 사전-팝퓰레이트된다. 도 6 에 나타낸 회로 스텐실의 구성 컴포넌트들을 다시 참조하면, 디스플레이된 파라미터들의 세트 (nf, l, 및 w) 를 갖는 2개의 트랜지스터들 (504 및 420) 이 있다. 전형적인 MOS 트랜지스터 또는 다른 디바이스는 이것보다 더 많은 파라미터들을 가질 수도 있다; 그러나, 이들 3개의 파라미터들은 이들이 도 6 에 나타낸 회로 회로의 의도된 기능에 가장 직접적으로 구속되는 경향이 있기 때문에 디폴트로 디스플레이될 수도 있다. 구성 트랜지스터들에 대한 "디폴트 디스플레이" 에 대해 선택된 파라미터들 (604 및 612) 의 서브세트들은 따라서 회로 스텐실에 전체적으로 포함되는 디바이스들의 "그룹" 에 영향을 미치는 동일한 파라미터들이다. 파라미터 테이블 (608) 은 회로 스텐실에 포함되는 트랜지스터 인스턴스들, 예를 들어, 도 6 에서 선택된 것들에 대한 iCDF 데이터베이스 (컴포넌트 파라미터 정의들 데이터베이스 (360)) 의 "paramLabelSet" 속성과 같은, 미리 정의된 속성에 기초하여 사전-팝퓰레이트될 수도 있다.
파라미터 사전-팝퓰레이션 프로세스에 대한 최상의 후보 파라미터들을 식별하는 프로세스는 (i) 선택된 트랜지스터 인스턴스들 (예컨대, 트랜지스터 (504)) 을 식별하는 것, (ii) 제품 개발 키트의 iCDF 데이터베이스 섹션으로부터 그들의 iCDF 정보를 발견하는 것, (iii) iCDF 의 "paramLabelSet" 속성과 같은 미리 정의된 속성에 의해 규정된 가장 일반적으로 편집된 파라미터들을 식별하는 것, 및 (iv) 그들 파라미터들 중 어느 파라미터가 식별된 파라미터들에 걸쳐서 공통 값들을 가지는지를 결정하는 것이다. 결정된 파라미터들에 대한 iCDF 정보가 회로 스텐실에 대한 파라미터 테이블 (608) 을 사전-팝퓰레이트하는데 사용된다. 파라미터들은 스텐실 발생 모듈 (316) 에 의해 초기 "시드" 세트에 기초하여 수정, 개명, 삭제, 또는 추가될 수도 있다. 파라미터들을 회로 스텐실에 추가하기 위해, iCDF 데이터베이스가 생성되고 회로 스텐실과 연관된다. iCDF 데이터베이스가 테이블 (608) 에 규정된 파라미터 정의들로 팝퓰레이트되며, 회로 스텐실-레벨 파라미터화가 지속될 수 있게 한다. 도 6 에 나타낸 회로 스텐실이 메타데이터 및 파라미터 정의들과 함께 저장됨에 따라, 새로운 회로 스텐실 스키매틱 셀뷰가 도 6 에 나타낸 바와 같이 스키매틱 도면 인스턴스들 및 그들의 연결성의 복사본을 저장하기 위해 회로 스텐실 셀 내에 생성된다. 회로 스텐실 스키매틱 셀뷰는 설계자에 의해 편집될 수도 있다.
회로 스텐실 스키매틱 셀뷰를 생성하는 프로세스의 일부로서, 구성 디바이스 인스턴스들 (트랜지스터들 (504 및 420)) 이 횡단되며, 그들의 인스턴스 파라미터들 (604 및 612) 이 이들이 (아마 상이한 이름들 및 디폴트 값들이 주어지더라도) 테이블 (608) 에서의 파라미터들로서 유지하고 있는지 여부를 체크하기 위해 검사된다. 이 검사를 수행하기 위해, 테이블 (608) 및 그의 연관된 데이터 구조는 또한 원래 디바이스 파라미터 이름들 및 디폴트 값들을 나타내는 여분의 칼럼들을 포함할 수도 있다. 매칭하는 디바이스 인스턴스 파라미터들 (예컨대, 파라미터 l) 을 가지는, 도 6 에 나타낸 회로 스텐실 스키매틱 셀뷰에서의 그들 구성 디바이스들 (예컨대, 트랜지스터들 (504 및 420)) 에 대해, 대응하는 디바이스 인스턴스 파라미터 값들은 테이블 (608) 에서의 대응하는 회로 스텐실 파라미터에 대한 gPar() 참조로 대체될 수도 있다. 예를 들어, 도 6 에서의 스키매틱 회로 스텐실 셀뷰는 선택된 디바이스 인스턴스 (604) 상에서 (프롬프트 "길이" 를 갖는) "l" 파라미터의 값에 대해 쿼리될 수도 있다. 상기 치환 프로세스의 결과로서, 인스턴스 (504) 상에서의 "l" 파라미터의 값은 0.1u 의 수치 값으로부터 수식 "gPar(l)" 으로 변경될 수도 있다. 여기서, gPar(l)l 로 명명되는 "그룹 파라미터" 에 대한 참조를 표시한다.
치환의 결과들이 테이블 (608) 에 예시된다. 양쪽의 트랜지스터들의 길이 (length) 파라미터는 동일한 그룹 파라미터 l 에 대한 참조를 공유하도록, 트랜지스터 (420) 에 대해 유사한 대체가 이루어질 수도 있다. 회로 스텐실이 IC 설계 에서 인스턴스화되거나 또는 참조될 때 그룹 파라미터 l 이 상이한 값을 할당받으면, 인스턴스들 양쪽은 동일한 값을 취해, 구성에 따라 올바른 방식으로 그들의 매칭 속성들을 유지할 것이다.
스텐실 발생 모듈 (316) 은 회로 세그먼트의 다른 컴포넌트의 파라미터 값을 포함한 집합 수식과 매칭하는 파라미터 값을 가지는 회로 세그먼트의 컴포넌트를 식별할 수도 있다. 스텐실 발생 모듈 (316) 은 식별된 컴포넌트의 파라미터 값을 집합 수식으로 대체할 수도 있다. 예를 들어, 테이블 (604) 에서, 트랜지스터 (504) 상의 nf 파라미터는 수식 gPar(nfingers) 으로 대체된다. 테이블 (612) 에서, 트랜지스터 (420) 상의 nf 파라미터는 2개의 회로 스텐실 그룹 파라미터들을 참조하는 수식 gPar(nfingers)*gPar(ratio) 로 대체된다. 이 수식을 이용하여, 트랜지스터 (420) 는 회로 스텐실의 nfingers 파라미터를 회로 스텐실의 비 파라미터로 곱한 결과와 동일한 핑거들의 개수를 갖도록 수정된다. 효과적인 결과는 참조 레그 전류에 대해 미러 레그 트랜지스터에서 스케일링된 또는 비율화된 전류를 제공하는 전류 미러 회로 스텐실이다. 실제 전류 비 또는 스케일 인자는 IC 설계에서 사용될 때, 인스턴스화된 또는 참조된 회로 스텐실의 비 파라미터의 값에 의해 결정된다. 도 6 의 예에서, gPar(ratio) 는 4 와 같고 gPar(nfingers) 는 2 와 같으며, 따라서, gPar(nfingers)*gPar(ratio) 는 8 과 같다. "ScalableCurrentMirror" 회로 스텐실이 발생되었을 때, 그것은 인스턴스화를 위해 회로 스텐실 데이터베이스 (370) 에 추가된다.
집적 회로에의 회로 스텐실의 예시적인 통합
도 7 은 일 실시형태에 따른, 집적 회로에의 도 5 의 회로 스텐실의 인스턴스화를 예시하는 예시적인 다이어그램이다. 도 7 은 예시적인 다단 opamp 의 일부를 예시한다. 통합된 회로 (700) 는 노드들 (704, 708, 및 712) 에서 전원들에 커플링될 수도 있다. 집적 회로 (700) 에서의 노드들 (728, 432, 440 및 768) 은 접지될 수도 있다. 노드들 (740 및 756) 은 집적 회로 (700) 에의 입력들을 형성한다. 트랜지스터들 (716 및 720) 로 형성된 전류 미러는 집적 회로 (700) 에 바이어스 전류를 공급할 수도 있다. 집적 회로 (700) 는 트랜지스터들 (744 및 756) 에 의해 형성된 차동 쌍을 포함한다. 집적 회로 (700) 의 제 2 단계는 전류 소스 트랜지스터 (724) 로 능동적으로 로드된 공통 소스 증폭기인 트랜지스터 (764) 로 이루어진다. 커패시터 (760) 가 제 2 단계의 음의 피드백 경로에 포함된다. 집적 회로 (700) 의 출력은 노드 (748) 이다.
트랜지스터들 (504 및 420) 을 포함하는 전류 미러에 대한 회로 세그먼트가 상기 도 5 에 예시된 회로 세그먼트에 대한 스텐실 (780) 을 인스턴화하거나 그에 대한 참조를 생성함으로써 집적 회로 (700) 의 스키매틱에 생성된다. 도 6 으로부터의 회로 세그먼트에 대한 스텐실 (780) 에서의 파라미터들 정보가 집적 회로 (700) 에 대한 스키매틱에서 테이블들 (772 및 776) 로서 평가된다.
회로 스텐실 셀뷰는 임의의 단자들을 포함할 필요가 없다. 회로 스텐실-기반의 플로우는 임의의 추가적인 계층구조를 생성할 필요가 없기 때문에, 이러한 핀들이 필요없다. 상기 도 4 로부터의 링거링 (Lingering) 핀들은 스텐실을 발생시킬 때 삭제된다. 일 실시형태에서, 도 4 의 선택으로부터의 임의의 링거링 핀들은, 스텐실 (780) 을 도 7 에 예시된 IC (700) 으로 인스턴스화하는 동안 상기 도 5 의 스키매틱 형상들을 구현할 때 삭제될 수도 있다. 와이어 스터브들이 아래에서 설명되는 바와 같이 IC 에서 회로 스텐실의 배치 및 접속을 용이하게 하기 위해서 스텐실 생성 동안 배치, 연장, 또는 단축될 수도 있다. 회로 스텐실 스키매틱 셀뷰를 취출할 때, 스키매틱 설계 모듈 (304) 은 누락된 단자들을 추가하여 도 7 에 나타낸 스키매틱을 완료할 수도 있다. 선택된 회로 스텐실 (780) 이 인스턴스화되거나 또는 참조될 때, 그의 대응하는 회로 스텐실 설계 셀뷰는 회로 스텐실 데이터베이스 (370) 라이브러리 주석에서의 정보에 기초하여 결정되며, 그의 구성 도면들이 복사 또는 발생되어, 복사 버퍼에 배치된다. 회로 스텐실 형상들은 그들의 배치를 완료하기 전에 IC 설계 내에서 이동될 수도 있다. 회로 스텐실 스키매틱 도면들이 그후 어떤 추가적인 셀-기반의 계층구조도 생성됨이 없이, IC 스키매틱으로 직접 복사된다. 인스턴스화 동안, 정렬 마커들이 도 7 의 IC 설계에서의 기존 도면들 양쪽, 및 상기 도 5 에 나타낸 바와 같은, 회로 스텐실 자체에서의 도면들에 대해, 발생될 수도 있다. 회로 스텐실들이 IC 에서의 회로 세그먼트들에 대해 인스턴스화되거나 또는 참조될 때, 그들의 구성 디바이스들 및/또는 라우팅은 전통적인 표준 셀-기반의 설계 플로우와는 달리, 임의의 추가적인 계층구조가 도입됨이 없이 배치된다.
IC 에서의 회로 스텐실 (780) 의 재-사용은 회로 스텐실 (780) 구현을 포함한다. 스키매틱 또는 레이아웃 컨텍스트에서의 표준 셀 재-사용은 재-사용중인 전체 셀에 대한 참조인 IC 설계에서의 인스턴스를 생성하는 것을 포함한다. IC 에서의 회로 스텐실 재-사용을 위해, 그러나, 어떤 이러한 인스턴스도 생성되지 않는다. 대신, 회로 스텐실이 구현된다, 즉, 하나 이상의 추가적인 오브젝트들이 IC 설계에서 직접 생성된다. 스키매틱 설계에 있어, 구현은 복사 동작이다. 스키매틱 설계 모듈 (304) 은 스키매틱 형상들 (네트들, 인스턴스들, 및 그들의 상대적인 레이아웃들/위치 지정) 을 회로 스텐실 (780) 의 스키매틱 파티션으로부터 IC 스키매틱으로 복사한다. 게다가, 컴포넌트 및 노드 이름들이 맵핑에 의해 개명된다. 맵핑은 IC 의 컴포넌트들 및 노드들의 실제 이름들을 회로 스텐실 (780) 에서의 정규화된 이름들과 연관시킨다.
회로 스텐실 (780) 의 하나 이상의 인스턴스들이 IC 설계 (스키매틱 또는 레이아웃) 에 배치될 때, 인스턴스들은 IC 설계에서의 기존 이름들과의 충돌들을 방지하기 위해 개명될 수도 있다. 이름 맵핑 정보는 각각의 배치된 회로 스텐실 (780) 인스턴스 상에 주석될 수도 있다. 이름 맵들은 IC 설계에서의 배치된 이름들로부터 회로 스텐실 (780) 에서의 대응하는 오브젝트 이름들에의 맵핑들을 포함한다. (회로 스텐실 (780) 가 생성된) 도 4 에서의 트랜지스터들의 이름들은 회로 스텐실 (780) 이 구현되는 IC 설계 (도 7) 에서의 오브젝트들의 이름들과는 상이한, 회로 스텐실 셀 자체 (도 5) 에 기록된 오브젝트들에 대해 사용되는 이름들과는 상이하다. 따라서, 2-레벨 이름 맵핑이 채용된다.
레이아웃 설계 컨텍스트에서의 회로 스텐실 재-사용을 위해, 회로 스텐실 셀 레이아웃으로부터의 오브젝트들이 다시 복사되고 IC 레이아웃에 이름-맵핑되는 스키매틱 설계 경우와 매우 유사하게, 정적 복사 구현기가 사용될 수도 있다. 게다가, 동적 구현 동작이 사용될 수도 있다. 여기서, 구현 프로세스는 회로 스텐실 (780) 에서의 오브젝트들과 IC 레이아웃에서의 오브젝트들 사이의 1:1 맵핑이 더 이상 아닌, 회로 스텐실 셀 레이아웃에서의 각각의 오브젝트에 대한, IC 설계 레이아웃에서의 다수의 오브젝트들의 생성을 포함한다. 예를 들어, 트랜지스터의 핀들의 개수와 같은 파라미터는 IC 에서 이들 다수의 오브젝트들이 컬랩스되거나 또는 병합되는 추상화된 네트리스트 버전 또는 초기 회로 세그먼트에서의 파라미터와는 상이할 수도 있다. 일반적으로 표준 셀의 정적 복사 또는 재-사용에서의 경우와 같이 단순히 1:1 관계가 아닌, 회로 세그먼트 설계 오브젝트들과 IC 설계 오브젝트들 사이에, 일-대-다 관계, 다-대-일 관계, 또는 심지어 다-대-다 관계일 수 있다. IC 설계 레이아웃에서의 이들 오브젝트들을 구현 프로세스의 일부로서 생성하는 동안, (회로 스텐실 (780) 생성의 일부로서 추론된) 회로 스텐실 (780) 오브젝트들 사이의 여러 관계들이 또한 복사되거나 또는 아니면 맵핑된 IC 설계 오브젝트들 사이에 시행된다.
목표 설계 (스키매틱 또는 레이아웃) 에서의 구현된 오브젝트들은 이들이 원자적 단위로 조작될 수 있도록 (예컨대, 스키매틱 트랜지스터 인스턴스들 및 그들의 접속하는 와이어들의 전체 그룹이 단일 원자적 동작으로 이동될 수 있도록) 그룹화되며, 그룹은 그것을 회로 스텐실로서 식별하도록 추가로 "태그"되고, 그리고 (예컨대, 상이한 파라미터 값들로) 나중에 다시 구현될 필요가 있는 경우 회로 스텐실 (780) 소스 (예컨대, 도 4) 에 대한 되참조로 추가로 태그된다.
회로 스텐실 (780) 을 IC (700) 에 인스턴스화 또는 구현하는 것은 회로 스텐실 (780) 의 컴포넌트의 파라미터 값을 포함하는 집합 수식을 평가함으로써 IC (700) 의 컴포넌트에 대한 파라미터 값을 발생시키는 것을 포함할 수도 있다. 도 5 로부터의 "ScalableCurrentMirror" 회로 스텐실이 IC (700) 에서의 인스턴스화를 위해 선택된 후, 도 6 에 나타낸 전류 스케일링 비 (ratio) 파라미터에 대해 값 "4" 가 선택될 수도 있다. IC (700) 에서의 배치된 "ScalableCurrentMirror" 회로 스텐실을 정렬한 후, 스키매틱 회로 스텐실 셀뷰로부터의 형상들이 IC (700) 설계로 복사된다. 배치 동작의 일부로서, "instParams" 속성은 그 값이 컴포넌트 파라미터 정의들 데이터베이스 (360) 및 회로 스텐실 셀 데이터베이스 (370) 에 저장된 그의 iCDF 파라미터 디폴트 값과 상이한 파라미터 테이블들 (772 및 776) 에서의 각각의 파라미터에 대한 (파라미터, 값) 쌍들의 리스트를 인코딩하도록 설정될 수도 있다. 그러므로, 단지 그 값이 스텐실 생성 동안 오버라이드된 그들 회로 스텐실 속성들만이 instParams 속성에 포함된다. 이 값들은 아래에서 설명되는 gPar() 해결 프로세스에서 사용된다. instParams 속성에 더해서, 회로 스텐실 마스터 자체를 나타내는 라이브러리 및 셀의 이름들이 또한 "datestamp' 속성" 과 함께 추가적인 속성들로서 주석된다.
상기 도 6 에 예시된 선택된 트랜지스터 (420) 상의 nf 파라미터에 대한 gPar(nfingers)*gPar(ratio) 수식과 같은, gPar() 인스턴스 파라미터 값들에 대한 평가 프로세스는 다음과 같다. 도 7 에서의 gPar() 해결 프로세스 (resolution process) 는 인스턴스 (예컨대, 트랜지스터 (504)) 에서 시작한다. 그 인스턴스가 결국 gPar(nfingers) (도 6 참조) 와 같은 gPar() 참조를 포함하는 임의의 인스턴스 파라미터들 (예컨대, nf) 을 규정하면, 해결 프로세스는 그 인스턴스가 파라미터들 그룹의 멤버인지를 먼저 결정한다. 그렇다면, gPar() 참조가 그 그룹 자체, 즉, 트랜지스터 인스턴스가 연관되는 그룹을 이용하여 해결된다. 평가 프로세스가 트랜지스터 인스턴스의 연관된 그룹 인스턴스를 이용하여 gPar(nf) 에 대한 참조를 해결하지 못하면, 그것이 회로 스텐실을 실제로 나타내는지 (그리고 어떤 다른 관련없는 프로세스를 통해서 생성되지 않았는지) 를 알기 위해 그룹 인스턴스가 추가로 검사된다. 그룹 인스턴스가 회로 스텐실 인스턴스를 나타내는 것으로 식별되면, 평가 프로세스는 회로 스텐실 마스터-기반의 탐색을 통해서 그것을 해결하려고 시도한다. 또한 스텐실 마스터-기반의 탐색 시도가 실패하면, gPar() 참조를, 마치 셀-기반의 부모 파라미터 참조인 것처럼 해결하려는 시도가 이루어진다.
gPar() 참조가 존재하는 인스턴스에서 시작하여, 평가 프로세스는 인스턴스 (504) 가 멤버인 그룹으로 횡단한다. 그후, 그룹 자체 상의 스트링 속성 "instParams" 으로 인코딩되는 임의의 파라미터 오버라이드들 (overrides) 을 가지는지를 알기 위해 그룹 자체가 검사된다. 그렇다면, 그 스트링 속성이 (이름, 값) 쌍들의 리스트로서 파싱되며, 그리고 쌍 이름들 중 임의의 이름이 gPar() 참조에 매칭하면, 매칭 (이름, 값) 쌍에서의 대응하는 값이 그 인스턴스에 대한 gPar() 참조의 해결된 값으로서 취해지며, 그리고 플로우가 종료된다.
어떤 오버라이드 속성들도 발견되지 않으면, 평가 프로세스는 인스턴스의 그룹 회로 스텐실 마스터를 이용하여 gPar() 참조들을 해결하려고 시도한다. gPar() 참조가 존재하는 인스턴스 (예컨대, 트랜지스터 (504)) 에서 시작하여, 평가 프로세스는 인스턴스가 멤버인 그룹으로 횡단한다. 그후, 그룹이 회로 스텐실 배치 동작을 통해서 존재한다는 것을 표시하는 속성들을 가지는지를 알기 위해 검사된다. 그렇다면, 그룹의 연관된 마스터 셀, 즉, 회로 스텐실의 셀-기반의 정의를 식별하기 위해 속성 값들이 사용된다. 그후, 그 마스터 셀이 gPar() 수식에서 참조된 파라미터 (예컨대, nf) 의 설명을 포함하는 연관된 iCDF 데이터베이스를 가지는지를 알기 위해 검사된다. 그렇다면, 그 파라미터의 iCDF 디폴트 값이 사용되며 해결 프로세스가 종료된다.
셀-기반의 계층구조가 존재하는 전형적인 계층적 설계에서는, 인스턴스 계층구조, 즉, 어떤 경우, 그의 자식 인스턴스들 (배치된 인스턴스에 대응하는 셀 내 모든 인스턴스들) 및 그들의 개별 자식들의 리스트를 결정하기 위해 쿼리될 수 있는 계층구조 데이터 구조가 유지된다. 데이터 구조는 또한 "역방향으로" 횡단될 수 있어, 인스턴스로부터 그의 부모 인스턴스로의 횡단을 가능하게 한다. gPar() 해결을 위한 셀-기반의 부모 참조 접근법은 그 계층구조 데이터 구조를 이용하여, gPar() 참조를 포함하는 인스턴스 (예컨대, 트랜지스터 (504)) 의 부모 인스턴스 (있다면) 로 횡단한다. 부모 인스턴스가 발견되면, 부모 인스턴스가 결국 gPar() 에 의해 참조된 파라미터에 대한 값을 규정하는 인스턴스 파라미터 세팅을 가지는지를 결정하기 위해 검사된다. 어떤 이러한 인스턴스 파라미터 세팅도 발견되지 않으면, 프로세스는 gPar() 참조를 형성하는 트랜지스터 인스턴스를 포함하는 마스터 셀을 결정하고, 그 마스터 셀을 이용하여 gPar() 참조를 해결하려고 시도한다.
일 실시형태에서, 셀-기반의 부모 인스턴스에 기초하여 gPar() 참조들을 해결하는 평가 프로세스는 계층구조 데이터 구조를 이용하여, gPar() 참조를 포함하는 인스턴스의 부모 인스턴스 (있다면) 로 횡단한다. 발견되면, gPar() 참조와 동일한 이름을 가지는 파라미터에 대해 그 부모 인스턴스가 쿼리된다. OpenAccess "findParam" 인스턴스 쿼리가 사용될 수도 있다. 쿼리가 gPar() 참조된 파라미터와 동일한 이름을 가지는 파라미터를 발견하면, 그의 값이 취해지고, 해결 프로세스가 성공한다.
gPar() 참조가 발견되는 인스턴스에서 시작하여, 평가 프로세스는 그 인스턴스에 대한 마스터 셀을 결정할 수도 있다. 인스턴스 오브젝트 상의 표준 OpenAccess getDatabase() 쿼리가 이 목적을 위해 사용될 수도 있다. 이 결과적인 오브젝트로부터, 라이브러리 및 셀 오브젝트들이 표준 OpenAccess getLibrary() 및 getCell() 데이터베이스 오브젝트 쿼리들을 이용하여 쿼리된다. 이것은 검사중인 인스턴스를 포함하는 셀에 대한 셀 마스터를 결정한다. 그후, 그 마스터 셀이 gPar() 수식에서 참조된 파라미터 (예컨대, nf) 의 설명을 포함하는 연관된 iCDF 데이터베이스를 가지는지를 알기 위해 검사된다. 그렇다면, 그 파라미터의 iCDF 디폴트 값이 취해지고 해결 프로세스가 해결/종료된다. 어떤 iCDF 데이터베이스도 그룹/회로 스텐실 마스터 셀에 대해 존재하지 않거나 또는 iCDF 데이터베이스가 존재하지만 참조된 파라미터가 그 데이터베이스 내에 존재하지 않으면, 해결 프로세스가 종료된다.
일 실시형태에서, gPar() 참조들은 참조된 파라미터 이름에 더해서, 디폴트 파라미터 값을 포함하도록 허용될 수도 있다. 예를 들어, 트랜지스터 인스턴스는 gPar(nf, 2) 로서 핑거들의 개수를 규정할 수도 있다. 여기서, 값 2 는 nf 그룹 파라미터에 대한 디폴트 값을 나타낸다. 그 의도는 모든 해결 프로세스들이 실패할 경우에 이 값을 사용하는 것이다. 어떤 해결 메커니즘들도 성공적이지 않으면 에러를 발생시키는 대신, 평가 프로세스는 gPar() 참조에 규정된 디폴트 값을 대신 사용한다. 도 6 에 예시된 트랜지스터 (604) 에 대한 gPar(nfingers) 수식은 위에서 설명한 바와 같이 2 로 결정된다. 상기 도 6 에서 예시된 420 의 nf 파라미터에 대한 gPar(nfingers)*gPar(ratio) 수식이 nf = 2 × 4 = 8 로서 결정된다.
일 실시형태에서, IC (700) 의 스키매틱은 IC (700) 의 스키매틱에 대해 시뮬레이션을 수행하기 전에 수정될 수도 있다. 예를 들어, IC (700) 의 스키매틱은 도 5 로부터의 회로 세그먼트에 대한 회로 스텐실 (780) 의 재-사용이 시뮬레이션 동안 IC (700) 에서 설계 결함을 드러낼 때 수정될 수도 있다.
각각의 회로 세그먼트 (예컨대, 도 5 에서의 세그먼트 (500)) 는 회로 세그먼트로부터 발생된 하나 이상의 회로 스텐실들에 대응할 수도 있다. 각각의 이러한 회로 스텐실은 회로 세그먼트의 별개의 물리적인 구현예에 대응한다. 예를 들어, 상이한 물리적인 구현예들은 회로 세그먼트 (500) 의 컴포넌트들에 포함되는 금속, 산화물, 또는 반도체 계층들의 상이한 패턴들에 대응하는 상이한 평면 기하학적 형상들에 대응할 수도 있다. 최종 집적 회로 (700) 의 거동은 기하학적 형상들의 위치들 및 상호접속부들에 의존한다. 상이한 물리적인 구현예들은 성능, 사이즈, 밀도, 및 제조성의 관점에서 상이한 기준들을 만족시키도록 설계될 수도 있다. 회로 시뮬레이터 (308) 는 회로 세그먼트 (500) 에 대응하는 각각의 회로 스텐실에 대해 상이한 회로 스텐실들을 이용하여 집적 회로 (700) 의 상이한 스키매틱들에 대해 시뮬레이션들을 수행할 수도 있다. 스키매틱 설계 모듈 (304) 은 집적 회로 (700) 의 스키매틱에서 인스턴스화하거나 또는 참조하기 위한 시뮬레이션들에 기초하여 회로 스텐실들 중 하나를 선택할 수도 있다.
회로 스텐실 라이브러리는 회로 스텐실들을 저장하기 위해 생성될 수도 있다. 회로 스텐실 라이브러리는 프로세스-독립적이다 (즉, 그 안의 회로 스텐실들은 임의의 특정의 제조 프로세스에 의존하지 않는다). 회로 스텐실 라이브러리에서의 회로 스텐실들은 어떤 정적 레이아웃 정보도 갖지 않는, 오직 감소된 연결성, 스키매틱 및 제약들 정보만을 포함할 수도 있다. 게다가, 회로 스텐실들의 스키매틱 파티션들은 또한 프로세스-독립적인 샘플 컴포넌트 라이브러리로부터의 프리미티브 (primitive) 컴포넌트들을 포함한다. 회로 스텐실 라이브러리로부터, 회로 스텐실 라이브러리 컴포넌트들을 복사하고 그들을 프로세스-특정적이 되도록 수정함으로써 프로세스-의존적인 회로 스텐실 라이브러리가 생성될 수도 있다. 스키매틱 파티션들에서의 프리미티브 컴포넌트들은 제조 프로세스 라이브러리로부터의 특정의 컴포넌트들로 대체될 수도 있으며, 레이아웃들은 프로세스-특정의 정보 (예컨대, 계층 정보, 프로세스-특정의 트랜지스터 셀들의 라이브러리, 맵핑 정보 등) 에 더해서, 회로 스텐실 라이브러리에서의 감소된 연결성 및 제약들을 이용하여 발생될 수도 있다.
NMOS 및 PMOS 변형들 양쪽, NPN 및 PNP 양극성 변형들, 저전압 및 고전압 트랜지스터 변형들, 및 다른 제조-프로세스-특정의 변형들, 등을 가지는 상당한 개수의 공통 회로 "빌딩 블록" 토폴로지들을 포함하여, 설계자가 이용가능한 회로 스텐실들의 총 개수는 클 수도 있다. 회로 스텐실 인스턴스화 전에, 회로 스텐실 탐색 모듈 (320) 은 IC (700) 설계에서의 재-사용에 적합한 전류 미러 회로 스텐실에 대해 회로 스텐실 데이터베이스 (370) 를 탐색할 수도 있다. 회로 스텐실에 대한 탐색은 발생된 감소된 연결성 정보, 및 (i) (예컨대, 도 5 를 참조하여 위에서 설명한 바와 같은) 제약들 정보, (ii) (예컨대, 도 6 을 참조하여 위에서 설명한 바와 같은) 회로 세그먼트의 컴포넌트들의 파라미터들 사이의 파라미터 관계들, (iii) 회로 스텐실의 이름, (iv) 또는 회로 스텐실의 설명 중 하나 이상을 포함하는 기준들에 기초할 수도 있다. 목표 설계를 생성할 때, 설계자는 동일한 회로 스텐실 관리기 인터페이스를 이용하여, 스크린 (218) 상에서 가용 설계 회로 스텐실들의 리스트를 미리보기할 수도 있다. 목표 설계가 스키매틱 설계이면, 가용 스키매틱 파티션들을 가지는 회로 스텐실들이 리스트에 포함된다. 따라서, 리스트는 스키매틱 파티션들을 가지는 모든 가용 회로 스텐실들의 상위집합 (superset) 을 포함할 것이며, 관계형 데이터베이스/OpenAccess 라이브러리 주석들에 기초하여 팝퓰레이트될 것이다. 가용 회로 스텐실들의 상위집합은 설계자의 개인 데이터베이스/라이브러리에서의 가용 회로 스텐실들과 함께 임의의 공유된 데이터베이스/라이브러리들에서의 가용 회로 스텐실들을 결합함으로써 발견될 수도 있다.
회로 스텐실들의 발생 및 재사용에 대한 예시적인 프로세스
도 8 은 일 실시형태에 따른, 회로 스텐실들의 발생 및 재사용을 위한 프로세스를 예시하는 플로우차트이다. 일부 예시적인 실시형태들에서, 프로세스는 도 8 과 관련하여 설명된 단계들과는 상이한 및/또는 추가적인 단계들을 가질 수도 있다. 프로세스의 단계들은 또한 도 8 과 관련하여 설명된 순서와는 상이한 순서로 수행될 수도 있다. 일부 단계들은 병렬로 실행될 수도 있다. 대안적으로, 단계들의 일부는 병렬로 실행될 수도 있으며 일부 단계들은 순차적으로 실행될 수도 있다. 대안적으로, 일부 단계들은 단계의 실행이 이전 단계의 실행 전에 시작되도록 파이프라인 방식으로 실행될 수도 있다.
스텐실 발생 모듈 (316) 은 제 1 집적 회로에서의 회로 세그먼트에 대한 연결성 정보를 수신한다 (800). 연결성 정보는 회로 세그먼트의 컴포넌트들과 제 1 집적 회로의 컴포넌트들 사이의 접속들을 표시한다. 스텐실 발생 모듈 (316) 은 또한 제약들 정보를 수신할 수도 있다. 제약들 정보는 회로 세그먼트의 컴포넌트들 또는 노드들에 대한 설계 제약들을 표시한다.
스텐실 발생 모듈 (316) 은 회로 세그먼트의 기능을 분석하고 기능을 수정함이 없이 회로 세그먼트에서의 적어도 하나의 여분의 컴포넌트 또는 노드를 제거하거나 또는 대체함으로써 회로 세그먼트에 대해 감소된 연결성 정보를 발생시키기 위해 연결성 정보를 컬랩스한다 (804). 감소된 연결성 정보는 연결성 정보의 논리적으로 압축된 버전을 나타낸다.
스텐실 발생 모듈 (316) 은 감소된 연결성 정보 및 (옵션적으로) 제약들 정보를 이용하여 회로 스텐실을 발생시킨다 (808). 회로 스텐실은 회로 세그먼트의 추상화된 버전을 나타낸다.
스키매틱 설계 모듈 (304) 은 제 2 집적 회로에서 회로 스텐실을 인스턴스화하거나 또는 그에 대한 참조를 생성한다 (812). 인스턴스화 또는 참조는 회로 시뮬레이터 (308) 에 의해 제 2 집적 회로를 시뮬레이션하기 위해 제약들 정보를 이용하여 시뮬레이터 체크들을 발생시키는 것을 포함할 수도 있다. 인스턴스화 또는 참조는 물리 구현 모듈 (312) 에 의해 제약들 정보를 이용하여 회로 세그먼트에 대응하는 제 2 집적 회로 중 적어도 일부분의 레이아웃을 발생시키는 것을 포함할 수도 있다.
청구된 실시형태들의 이점들 및 장점들은 회로 스텐실들의 사용을 통해 '보조' 자동화를 제공하는 것에 의한 회로 설계 플로우에 걸친 증가된 효율, 계층적 인터페이스들을 다루는 사용자 부담을 부과함이 없는 계층구조 및 계층적 설계의 이점들, 및 감소된 설계 반복들 및 턴어라운드 시간을 포함한다.
실시형태들의 전술한 설명은 예시의 목적을 위해 제시되었으며; 총망라하거나 또는 본 발명을 개시된 정확한 형태들에 한정하려는 것이 아니다. 상기 개시물을 감안하여 많은 변경들 및 변형들이 가능함을 알 수 있을 것이다.
마지막으로, 명세서에서 사용되는 용어는 주로 가독성과 교육적 목적들을 위해 선택되었으며, 본 발명의 기술요지를 기술하거나 또는 제한하기 위해 선택되지 않았을 수도 있다. 따라서, 그 범위는 이 상세한 설명보다는, 오히려 본원에 기초하는 출원에 대해 부여하는 임의의 청구항들에 의해 제한되도록 의도된다. 따라서, 실시형태들의 개시물은 다음 청구항들에서 개시되는 범위를 예시하려는 것으로, 제한하려는 것이 아니다.

Claims (23)

  1. 컴퓨터-구현 방법으로서,
    제 1 집적 회로에서의 회로 세그먼트에 대한 연결성 정보 및 제약들 정보를 수신하는 단계로서, 상기 연결성 정보는 상기 회로 세그먼트의 컴포넌트들과 상기 제 1 집적 회로의 컴포넌트들 사이의 접속들을 표시하며, 상기 제약들 정보는 상기 회로 세그먼트의 상기 컴포넌트들 또는 노드들에 대한 설계 제약들을 표시하는, 상기 연결성 정보 및 제약들 정보를 수신하는 단계;
    상기 회로 세그먼트의 기능을 분석하고 상기 기능을 수정함이 없이 상기 회로 세그먼트에서의 적어도 하나의 여분의 컴포넌트 또는 노드를 제거하거나 또는 대체함으로써 상기 회로 세그먼트에 대한 감소된 연결성 정보를 발생시키기 위해 상기 연결성 정보를 컬랩스 (collapse) 하는 단계로서, 상기 감소된 연결성 정보는 상기 연결성 정보의 논리적으로 압축된 버전을 나타내는, 상기 연결성 정보를 컬랩스하는 단계;
    상기 감소된 연결성 정보 및 상기 제약들 정보를 이용하여 회로 스텐실을 발생시키는 단계로서, 상기 회로 스텐실은 상기 회로 세그먼트의 추상화된 버전을 나타내는, 상기 회로 스텐실을 발생시키는 단계; 및
    적어도 하나의 컴포넌트로서 제 2 집적 회로로 상기 회로 스텐실을 인스턴스화하는 단계를 포함하며,
    상기 회로 스텐실을 인스턴스화하는 단계는,
    상기 제 2 집적 회로를 시뮬레이션하기 위해 상기 제약들 정보를 이용하여 시뮬레이터 체크들을 발생시키는 단계, 및
    상기 제약들 정보를 이용하여 상기 회로 세그먼트에 대응하는 상기 제 2 집적 회로 중 적어도 일부분의 레이아웃을 발생시키는 단계 중 하나 이상을 포함하는, 컴퓨터-구현 방법.
  2. 제 1 항에 있어서,
    상기 연결성 정보를 컬랩스하는 단계는,
    상기 회로 세그먼트의 컴포넌트들의 병렬 스택을 단일 컴포넌트로 대체하는 단계;
    상기 회로 세그먼트의 컴포넌트들의 시리즈를 단일 컴포넌트로 대체하는 단계; 및
    상기 회로 세그먼트의 하나 이상의 컴포넌트들의 입력들을 치환하는 단계 중 하나 이상을 포함하는, 컴퓨터-구현 방법.
  3. 컴퓨터-구현 방법으로서,
    제 1 집적 회로에서의 회로 세그먼트에 대한 연결성 정보를 수신하는 단계로서, 상기 연결성 정보는 상기 회로 세그먼트의 컴포넌트들과 상기 제 1 집적 회로의 컴포넌트들 사이의 접속들을 표시하는, 상기 연결성 정보를 수신하는 단계;
    상기 회로 세그먼트의 기능을 분석하고 상기 기능을 수정함이 없이 상기 회로 세그먼트의 적어도 하나의 여분의 컴포넌트 또는 노드를 제거하거나 또는 대체함으로써 상기 회로 세그먼트에 대한 감소된 연결성 정보를 발생시키기 위해 상기 연결성 정보를 컬랩스하는 단계로서, 상기 감소된 연결성 정보는 상기 연결성 정보의 논리적으로 압축된 버전을 나타내는, 상기 연결성 정보를 컬랩스하는 단계; 및
    상기 감소된 연결성 정보를 이용하여 회로 스텐실을 발생시키는 단계로서, 상기 회로 스텐실은 적어도 하나의 컴포넌트를 제 2 집적 회로로 인스턴스화하기 위해 사용되며, 상기 회로 스텐실은 상기 회로 세그먼트의 추상화된 버전을 나타내는, 상기 회로 스텐실을 발생시키는 단계를 포함하는, 컴퓨터-구현 방법.
  4. 제 3 항에 있어서,
    상기 연결성 정보를 컬랩스하는 단계는,
    상기 회로 세그먼트의 컴포넌트들의 병렬 스택을 단일 컴포넌트로 대체하는 단계;
    상기 회로 세그먼트의 컴포넌트들의 시리즈를 단일 컴포넌트로 대체하는 단계; 및
    상기 회로 세그먼트의 하나 이상의 컴포넌트들의 입력 단자들을 치환하는 단계 중 하나 이상을 포함하는, 컴퓨터-구현 방법.
  5. 제 3 항에 있어서,
    상기 적어도 하나의 컴포넌트로서 상기 제 2 집적 회로로 상기 회로 스텐실을 인스턴스화하는 단계를 더 포함하며,
    상기 회로 스텐실을 인스턴스화하는 단계는,
    상기 제 2 집적 회로를 시뮬레이션하기 위해 제약들 정보를 이용하여 시뮬레이터 체크들을 발생시키는 단계로서, 상기 제약들 정보는 상기 회로 세그먼트의 상기 컴포넌트들 또는 노드들에 대한 설계 제약들을 표시하는, 상기 시뮬레이터 체크들을 발생시키는 단계; 및
    상기 제약들 정보를 이용하여 상기 회로 세그먼트에 대응하는 상기 제 2 집적 회로 중 적어도 일부분의 레이아웃을 발생시키는 단계 중 하나 이상을 포함하는, 컴퓨터-구현 방법.
  6. 제 5 항에 있어서,
    상기 제약들 정보는 상기 회로 세그먼트의 상기 컴포넌트들에 대한 전기적 어서션 (assertion) 들을 포함하며,
    상기 시뮬레이터 체크들을 발생시키는 단계는 상기 전기적 어서션들을 회로 시뮬레이터에 대한 시뮬레이터-특정의 회로 체크 스테이트먼트들로 전환하는 단계를 포함하는, 컴퓨터-구현 방법.
  7. 제 5 항에 있어서,
    상기 제약들 정보는 상기 회로 세그먼트의 상기 컴포넌트들에 대한 기하학적 및 연결성 어서션들을 포함하며,
    상기 제 2 집적 회로 중 적어도 일부분의 레이아웃을 발생시키는 단계는 상기 기하학적 및 연결성 어서션들을 이용하여 상기 회로 세그먼트에 대응하는 상기 제 2 집적 회로의 상기 컴포넌트들 또는 노드들의 물리적 표현들을 배치 및 라우팅하는 단계를 포함하는, 컴퓨터-구현 방법.
  8. 제 3 항에 있어서,
    제약들 정보는,
    설계자 입력 지령들;
    상기 회로 세그먼트의 컴포넌트들 및 노드들의 심볼 물리적 표현들을 배치하도록 구성된 심볼 에디터; 및
    상기 회로 세그먼트의 상기 컴포넌트들 및 상기 노드들에 대한 연결성 라우팅 패턴들을 배치하도록 구성된 패턴 라우트 인터페이스
    중 하나 이상으로부터 수신되는, 컴퓨터-구현 방법.
  9. 제 3 항에 있어서,
    상기 회로 스텐실을 발생시키는 단계는 상기 회로 스텐실에의 포함을 위해 상기 회로 세그먼트의 컴포넌트들 및 노드들의 이름들을 정규화하는 단계를 포함하는, 컴퓨터-구현 방법.
  10. 제 3 항에 있어서,
    상기 회로 스텐실의 상기 제 2 집적 회로로의 인스턴스화는 상기 제 2 집적 회로에 대한 맵핑을 발생시키는 것을 포함하며,
    상기 맵핑은 상기 제 2 집적 회로의 컴포넌트들 및 노드들의 실제 이름들을 상기 회로 스텐실에서의 정규화된 이름들과 연관시키는, 컴퓨터-구현 방법.
  11. 제 3 항에 있어서,
    상기 회로 세그먼트의 상기 컴포넌트들의 파라미터들 사이의 파라미터 관계들을 결정하는 단계; 및
    상기 결정된 파라미터 관계들을 상기 회로 스텐실에 기록하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  12. 제 11 항에 있어서,
    상기 파라미터 관계들을 결정하는 단계는,
    상기 회로 세그먼트의 다른 컴포넌트의 파라미터 값을 포함하는 집합 수식과 매칭하는 파라미터 값을 가지는 상기 회로 세그먼트의 컴포넌트를 식별하는 단계; 및
    식별된 컴포넌트의 상기 파라미터 값을 상기 집합 수식으로 대체하는 단계를 포함하는, 컴퓨터-구현 방법.
  13. 제 11 항에 있어서,
    상기 파라미터 관계들을 결정하는 단계는,
    파라미터 데이터베이스로부터 상기 회로 세그먼트의 상기 컴포넌트들의 파라미터들의 서브세트를 선택하는 단계; 및
    선택된 상기 파라미터들의 서브세트에 걸쳐서 동일한 값들을 가지는 파라미터들을 식별하는 단계를 포함하는, 컴퓨터-구현 방법.
  14. 제 13 항에 있어서,
    상기 파라미터 관계들을 결정하는 단계는,
    그 파라미터 값들이 식별된 상기 파라미터들의 상기 동일한 값들과 매칭하는 상기 회로 세그먼트의 컴포넌트들을 식별하는 단계; 및
    식별된 상기 컴포넌트들의 파라미터 값들을 상기 동일한 값을 나타내는 수식들로 대체하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  15. 제 3 항에 있어서,
    상기 회로 스텐실을 상기 제 2 집적 회로로 인스턴스화하는 것은, 상기 회로 스텐실의 컴포넌트의 파라미터 값을 포함하는 집합 수식을 평가함으로써 상기 제 2 집적 회로의 컴포넌트에 대한 파라미터 값을 발생시키는 것을 포함하는, 컴퓨터-구현 방법.
  16. 제 3 항에 있어서,
    상기 회로 세그먼트는 상기 회로 세그먼트로부터 발생된 하나 이상의 회로 스텐실들에 대응하며, 상기 회로 스텐실들의 각각은 상기 회로 세그먼트의 별개의 물리적인 구현예에 대응하는, 컴퓨터-구현 방법.
  17. 제 16 항에 있어서,
    상기 회로 세그먼트에 대응하는 상기 하나 이상의 회로 스텐실들 중에서, 기준들에 매칭하는 회로 스텐실을 탐색하는 단계를 더 포함하며,
    상기 기준들은,
    발생된 감소된 연결성 정보와,
    상기 회로 세그먼트의 컴포넌트들 또는 노드들에 대한 제약들 정보; 상기 회로 세그먼트의 상기 컴포넌트들의 파라미터들 사이의 파라미터 관계들; 상기 회로 스텐실의 이름; 및 상기 회로 스텐실의 설명 중 하나 이상을 포함하는, 컴퓨터-구현 방법.
  18. 제 3 항에 있어서,
    상기 회로 스텐실은,
    발생된 감소된 연결성 정보와,
    상기 회로 세그먼트의 상기 컴포넌트들 또는 노드들에 대한 제약들 정보; 상기 회로 세그먼트의 상기 컴포넌트들 또는 상기 노드들의 정규화된 이름들; 상기 회로 세그먼트의 상기 컴포넌트들의 파라미터들 사이의 파라미터 관계들; 및 상기 회로 스텐실의 이름, 상기 회로 스텐실의 설명, 상기 회로 스텐실의 스키매틱 미리보기 이미지까지의 경로, 및 상기 회로 스텐실의 레이아웃 미리보기 이미지까지의 경로 중 하나 이상을 포함하는 메타데이터 중 하나 이상을 포함하는, 컴퓨터-구현 방법.
  19. 컴퓨터-구현 방법으로서,
    제 1 집적 회로에서의 회로 세그먼트에 대한 연결성 정보를 수신하는 단계로서, 상기 연결성 정보는 상기 회로 세그먼트의 컴포넌트들과 상기 제 1 집적 회로의 컴포넌트들 사이의 접속들을 표시하는, 상기 연결성 정보를 수신하는 단계;
    상기 회로 세그먼트의 기능을 분석하고 상기 기능을 수정함이 없이 상기 회로 세그먼트의 적어도 하나의 여분의 컴포넌트 또는 노드를 제거하거나 또는 대체함으로써 상기 회로 세그먼트에 대한 감소된 연결성 정보를 발생시키기 위해 상기 연결성 정보를 컬랩스하는 단계로서, 상기 감소된 연결성 정보는 상기 연결성 정보의 논리적으로 압축된 버전을 나타내는, 상기 연결성 정보를 컬랩스하는 단계; 및
    상기 감소된 연결성 정보를 이용하여 회로 스텐실을 발생시키는 단계로서, 상기 회로 스텐실은 제 2 집적 회로에서의 적어도 하나의 컴포넌트를 참조하는데 사용되며, 상기 회로 스텐실은 상기 회로 세그먼트의 추상화된 버전을 나타내는, 상기 회로 스텐실을 발생시키는 단계를 포함하는, 컴퓨터-구현 방법.
  20. 제 19 항에 있어서,
    상기 제 2 집적 회로에서의 상기 적어도 하나의 컴포넌트로서 상기 회로 스텐실을 참조하는 단계를 더 포함하며,
    상기 회로 스텐실을 참조하는 단계는,
    상기 제 2 집적 회로를 시뮬레이션하기 위해 제약들 정보를 이용하여 시뮬레이터 체크들을 발생시키는 단계로서, 상기 제약들 정보는 상기 회로 세그먼트의 상기 컴포넌트들 또는 노드들에 대한 설계 제약들을 표시하는, 상기 시뮬레이터 체크들을 발생시키는 단계; 및
    상기 제약들 정보를 이용하여 상기 회로 세그먼트에 대응하는 상기 제 2 집적 회로 중 적어도 일부분의 레이아웃을 발생시키는 단계
    중 하나 이상을 포함하는, 컴퓨터-구현 방법.
  21. 제 19 항에 있어서,
    상기 제 2 집적 회로로의 상기 회로 스텐실의 참조는, 상기 제 2 집적 회로에 대한 맵핑을 발생시키는 것을 포함하며,
    상기 맵핑은 상기 제 2 집적 회로의 컴포넌트들 및 노드들의 실제 이름들을 상기 회로 스텐실에서의 정규화된 이름들과 연관시키는, 컴퓨터-구현 방법.
  22. 명령들을 저장하는 비일시성 컴퓨터-판독가능 저장 매체로서,
    상기 명령들은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    제 1 집적 회로에서의 회로 세그먼트에 대한 연결성 정보를 수신하게 하는 것으로서, 상기 연결성 정보는 상기 회로 세그먼트의 컴포넌트들과 상기 제 1 집적 회로의 컴포넌트들 사이의 접속들을 표시하는, 상기 연결성 정보를 수신하게 하고;
    상기 회로 세그먼트의 기능을 분석하고 상기 기능을 수정함이 없이 상기 회로 세그먼트의 적어도 하나의 여분의 컴포넌트 또는 노드를 제거하거나 또는 대체함으로써 상기 회로 세그먼트에 대한 감소된 연결성 정보를 발생시키기 위해 상기 연결성 정보를 컬랩스하게 하는 것으로, 상기 감소된 연결성 정보는 상기 연결성 정보의 논리적으로 압축된 버전을 나타내는, 상기 연결성 정보를 컬랩스하게 하고;
    상기 감소된 연결성 정보를 이용하여 회로 스텐실을 발생시키게 하는 것으로, 상기 회로 스텐실은 제 2 집적 회로로 인스턴스화하기 위해 사용되며, 상기 회로 스텐실은 상기 회로 세그먼트의 추상화된 버전을 나타내는, 상기 회로 스텐실을 발생시키게 하는, 비일시성 컴퓨터-판독가능 저장 매체.
  23. 제 22 항에 있어서,
    프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 상기 제 2 집적 회로로 상기 회로 스텐실을 인스턴스화하게 하는 명령들을 추가로 저장하며,
    상기 회로 스텐실을 인스턴스화하는 것은,
    상기 제 2 집적 회로를 시뮬레이션하기 위해 제약들 정보를 이용하여 시뮬레이터 체크들을 발생시키는 것으로서, 상기 제약들 정보는 상기 회로 세그먼트의 상기 컴포넌트들 또는 노드들에 대한 설계 제약들을 표시하는, 상기 시뮬레이터 체크들을 발생시키는 것; 및
    상기 제약들 정보를 이용하여 상기 회로 세그먼트에 대응하는 상기 제 2 집적 회로 중 적어도 일부분의 레이아웃을 발생시키는 것
    중 하나 이상을 포함하는, 비일시성 컴퓨터-판독가능 저장 매체.
KR1020177030544A 2016-02-25 2017-02-24 회로 스텐실들의 발생 및 인스턴스화를 이용한 집적 회로 설계 KR101832117B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020187004535A KR102674709B1 (ko) 2016-02-25 2017-02-24 회로 스텐실들의 발생 및 인스턴스화를 이용한 집적 회로 설계

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662299968P 2016-02-25 2016-02-25
US62/299,968 2016-02-25
US201662300594P 2016-02-26 2016-02-26
US62/300,594 2016-02-26
PCT/US2017/019466 WO2017147502A1 (en) 2016-02-25 2017-02-24 Integrated circuit design using generation and instantiation of circuit stencils

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020187004535A Division KR102674709B1 (ko) 2016-02-25 2017-02-24 회로 스텐실들의 발생 및 인스턴스화를 이용한 집적 회로 설계

Publications (2)

Publication Number Publication Date
KR20170123708A KR20170123708A (ko) 2017-11-08
KR101832117B1 true KR101832117B1 (ko) 2018-02-23

Family

ID=59679649

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020187004534A KR102139425B1 (ko) 2016-02-25 2017-02-24 회로 스텐실들을 이용한 회로 설계를 위한 추출된 레이아웃-의존 효과들의 재사용
KR1020177030543A KR101832116B1 (ko) 2016-02-25 2017-02-24 회로 스텐실들을 이용한 회로 설계를 위한 추출된 레이아웃-의존 효과들의 재사용
KR1020187004535A KR102674709B1 (ko) 2016-02-25 2017-02-24 회로 스텐실들의 발생 및 인스턴스화를 이용한 집적 회로 설계
KR1020177030544A KR101832117B1 (ko) 2016-02-25 2017-02-24 회로 스텐실들의 발생 및 인스턴스화를 이용한 집적 회로 설계

Family Applications Before (3)

Application Number Title Priority Date Filing Date
KR1020187004534A KR102139425B1 (ko) 2016-02-25 2017-02-24 회로 스텐실들을 이용한 회로 설계를 위한 추출된 레이아웃-의존 효과들의 재사용
KR1020177030543A KR101832116B1 (ko) 2016-02-25 2017-02-24 회로 스텐실들을 이용한 회로 설계를 위한 추출된 레이아웃-의존 효과들의 재사용
KR1020187004535A KR102674709B1 (ko) 2016-02-25 2017-02-24 회로 스텐실들의 발생 및 인스턴스화를 이용한 집적 회로 설계

Country Status (5)

Country Link
US (4) US10102324B2 (ko)
EP (2) EP3259693B1 (ko)
KR (4) KR102139425B1 (ko)
CN (3) CN107533577B (ko)
WO (2) WO2017147502A1 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102139425B1 (ko) 2016-02-25 2020-07-29 시놉시스, 인크. 회로 스텐실들을 이용한 회로 설계를 위한 추출된 레이아웃-의존 효과들의 재사용
US10354037B1 (en) * 2016-06-30 2019-07-16 Cadence Design Systems, Inc. Methods, systems, and computer program product for implementing an electronic design by manipulating a hierarchical structure of the electronic design
CN106227946B (zh) * 2016-07-26 2019-03-12 上海望友信息科技有限公司 一种pcb网板制作方法及系统
US10192020B1 (en) 2016-09-30 2019-01-29 Cadence Design Systems, Inc. Methods, systems, and computer program product for implementing dynamic maneuvers within virtual hierarchies of an electronic design
US10210299B1 (en) 2016-09-30 2019-02-19 Cadence Design Systems, Inc. Methods, systems, and computer program product for dynamically abstracting virtual hierarchies for an electronic design
US10282505B1 (en) 2016-09-30 2019-05-07 Cadence Design Systems, Inc. Methods, systems, and computer program product for implementing legal routing tracks across virtual hierarchies and legal placement patterns
US10409948B1 (en) * 2017-09-29 2019-09-10 Cadence Design Systems, Inc. Topology preserving schematic transformations for RF net editing
US10558780B1 (en) * 2017-09-30 2020-02-11 Cadence Design Systems, Inc. Methods, systems, and computer program product for implementing schematic driven extracted views for an electronic design
US10467370B1 (en) 2017-09-30 2019-11-05 Cadence Design Systems, Inc. Methods, systems, and computer program product for implementing a net as a transmission line model in a schematic driven extracted view for an electronic design
US10678978B1 (en) 2017-09-30 2020-06-09 Cadence Design Systems, Inc. Methods, systems, and computer program product for binding and back annotating an electronic design with a schematic driven extracted view
US10762259B1 (en) * 2018-06-08 2020-09-01 Diakopto, Inc. Circuit design/layout assistance based on sensitivities to parasitics
US10783296B1 (en) 2018-06-08 2020-09-22 Diakopto, Inc. Matched net and device analysis based on parasitics
KR102312415B1 (ko) 2018-09-13 2021-10-12 주식회사 엘지에너지솔루션 배터리 모듈, 이러한 배터리 모듈을 포함하는 배터리 팩 및 이러한 배터리 팩을 포함하는 자동차
CN108984992B (zh) * 2018-09-25 2022-03-04 郑州云海信息技术有限公司 一种电路板设计方法和装置
US11232248B2 (en) * 2018-09-28 2022-01-25 Taiwan Semiconductor Manufacturing Company, Ltd. Routing-resource-improving method of generating layout diagram and system for same
US11314914B2 (en) * 2018-11-29 2022-04-26 Taiwan Semiconductor Manufacturing Co., Ltd. Method and non-transitory computer readable medium of operating an electronic design automation platform for an optimal intgrated circuit design
US11144688B1 (en) 2018-12-17 2021-10-12 Diakopto, Inc. Virtual repeater insertion
US10796042B1 (en) * 2019-04-22 2020-10-06 Cadence Design Systems, Inc. Partial selection-based model extraction from circuit design layout
CN110941932B (zh) * 2019-11-29 2021-07-20 大连理工大学 一种面向硬件逻辑设计的需求建模与验证方法
US10997333B1 (en) 2019-12-05 2021-05-04 Cadence Design Systems, Inc. Methods, systems, and computer program product for characterizing an electronic design with a schematic driven extracted view
CN113011125B (zh) * 2019-12-18 2023-01-10 海信视像科技股份有限公司 印制电路板核查方法、装置、设备及计算机存储介质
US11714945B2 (en) 2020-04-09 2023-08-01 Tokyo Electron Limited Method for automated standard cell design
US11550985B2 (en) 2020-04-09 2023-01-10 Tokyo Electron Limited Method for automated standard cell design
DE102021107950A1 (de) * 2020-05-28 2021-12-02 Taiwan Semiconductor Manufacturing Co., Ltd. Verfahren zum fertigen von halbleiterbauelementen mit unterschiedlichen architekturen und damit gefertigte halbleiterbauelemente
WO2022066952A1 (en) * 2020-09-23 2022-03-31 Silvaco, Inc. Physical verification workflow for semiconductor circuit designs
US11347913B1 (en) * 2021-03-19 2022-05-31 Cadence Design Systems, Inc. Method of reconstruction of post-layout design for graphical display
CN112989733B (zh) * 2021-05-07 2021-11-30 北京芯愿景软件技术股份有限公司 电路分析方法、装置、设备及存储介质
US11847392B1 (en) * 2021-11-30 2023-12-19 Cadence Design Systems, Inc. Method, product, and system for dynamic design switching for high performance mixed signal simulation
CN114611452B (zh) * 2022-03-22 2024-07-02 成都华大九天科技有限公司 基于电路原理图在版图中自动生成Sub Cell的方法
CN115658692A (zh) * 2022-10-28 2023-01-31 深圳市电巢科技有限公司 适用于原理图网表的校对分析方法、分析装置及电子设备
CN117436379B (zh) * 2023-12-21 2024-04-09 成都行芯科技有限公司 一种通孔压缩方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090288055A1 (en) 2008-05-19 2009-11-19 Rajiv Shankar Method and system for characterizing an integrated circuit design
US20120066659A1 (en) 2010-09-13 2012-03-15 Springsoft Usa, Inc. Methods for generating device layouts by combining an automated device layout generator with a script
US20120066542A1 (en) 2010-09-13 2012-03-15 National Tsing Hua University Method for Node Addition and Removal of a Circuit

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5095441A (en) * 1986-09-12 1992-03-10 Digital Equipment Corporation Rule inference and localization during synthesis of logic circuit designs
US6662149B1 (en) 1999-05-27 2003-12-09 International Business Machines Corporation Method and apparatus for efficient computation of moments in interconnect circuits
WO2001075687A1 (en) 2000-03-31 2001-10-11 Cadence Design Systems, Inc. Method and apparatus to optimize an integrated circuit design using transistor folding
KR100459731B1 (ko) * 2002-12-04 2004-12-03 삼성전자주식회사 반도체 집적회로의 시뮬레이션을 위한 인터커넥션 영향을포함한 선택적 연결정보를 생성하는 장치 및 그 방법
US7206731B2 (en) 2003-06-02 2007-04-17 Agilent Technologies, Inc. Electromagnetic/circuit co-simulation and co-optimization with parametric layout components
US7184040B1 (en) 2003-11-21 2007-02-27 Nvidia Corporation Early stencil test rejection
US7620743B2 (en) 2004-04-01 2009-11-17 Lsi Corporation System and method for implementing multiple instantiated configurable peripherals in a circuit design
US7496884B2 (en) * 2005-09-02 2009-02-24 Synopsys, Inc. Distributed hierarchical partitioning framework for verifying a simulated wafer image
US20070268731A1 (en) * 2006-05-22 2007-11-22 Pdf Solutions, Inc. Layout compiler
US7579606B2 (en) * 2006-12-01 2009-08-25 D2S, Inc. Method and system for logic design for cell projection particle beam lithography
US7877376B2 (en) 2007-07-18 2011-01-25 Oracle International Corporation Supporting aggregate expressions in query rewrite
US8443329B2 (en) * 2008-05-16 2013-05-14 Solido Design Automation Inc. Trustworthy structural synthesis and expert knowledge extraction with application to analog circuit design
US8037433B2 (en) 2008-08-22 2011-10-11 International Business Machines Corporation System and methodology for determining layout-dependent effects in ULSI simulation
US8103983B2 (en) * 2008-11-12 2012-01-24 International Business Machines Corporation Electrically-driven optical proximity correction to compensate for non-optical effects
US8112729B2 (en) 2009-04-20 2012-02-07 International Business Machines Corporation Method and system for selective stress enablement in simulation modeling
CN102024066B (zh) * 2009-09-09 2013-02-06 中国科学院微电子研究所 从模拟电路网表自动生成模拟电路原理图的方法
US8533650B2 (en) 2009-09-17 2013-09-10 Cadence Design Systems, Inc. Annotation management for hierarchical designs of integrated circuits
WO2012067688A1 (en) * 2010-08-25 2012-05-24 Et International, Inc. Codeletset representation, manipulation, and execution-methods, system and apparatus
US8316335B2 (en) * 2010-12-09 2012-11-20 International Business Machines Corporation Multistage, hybrid synthesis processing facilitating integrated circuit layout
US8745571B2 (en) 2011-02-14 2014-06-03 International Business Machines Corporation Analysis of compensated layout shapes
US8732640B1 (en) 2011-10-26 2014-05-20 Cadence Design Systems, Inc. Methods, systems, and articles for multi-scenario physically-aware design methodology for layout-dependent effects
US8769456B1 (en) * 2011-10-26 2014-07-01 Cadence Design Systems, Inc. Methods, systems, and articles for implementing extraction and electrical analysis-driven module creation
US8621409B2 (en) 2012-04-30 2013-12-31 Taiwan Semiconductor Manufacturing Co., Ltd. System and method for reducing layout-dependent effects
US8739124B2 (en) 2012-06-27 2014-05-27 Sap Ag Configuring integration capabilities for system integration
US8745556B2 (en) * 2012-06-28 2014-06-03 Taiwan Semiconductor Manufacturing Co., Ltd. Layout method and system for multi-patterning integrated circuits
US9092589B2 (en) 2013-11-29 2015-07-28 Taiwan Semiconductor Manufacturing Company, Ltd. Integrated circuit design flow with device array layout generation
US9626471B2 (en) * 2014-02-21 2017-04-18 Dassault Systemes Americas Corp. Methods and systems for filtering components in hierarchically-referenced data
US9262578B2 (en) 2014-04-25 2016-02-16 Taiwan Semiconductor Manufacturing Company, Ltd. Method for integrated circuit manufacturing
CN105224709B (zh) * 2014-08-29 2018-09-18 杭州广立微电子有限公司 快速产生多样化环形振荡器的方法
US20160125115A1 (en) 2014-11-05 2016-05-05 International Business Machines Corporation Generating an electromagnetic parameterized cell for an integrated circuit design
CN105653744A (zh) 2014-11-13 2016-06-08 中芯国际集成电路制造(上海)有限公司 版图布局的设计方法及装置
US9779193B1 (en) * 2015-03-31 2017-10-03 Cadence Design Systems, Inc. Methods, systems, and computer program product for implementing electronic design layouts with symbolic representations
US10127338B2 (en) 2015-12-15 2018-11-13 Taiwan Semiconductor Manufacturing Company Ltd. System, method and associated computer readable medium for designing integrated circuit with pre-layout RC information
KR102139425B1 (ko) 2016-02-25 2020-07-29 시놉시스, 인크. 회로 스텐실들을 이용한 회로 설계를 위한 추출된 레이아웃-의존 효과들의 재사용

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090288055A1 (en) 2008-05-19 2009-11-19 Rajiv Shankar Method and system for characterizing an integrated circuit design
US20120066659A1 (en) 2010-09-13 2012-03-15 Springsoft Usa, Inc. Methods for generating device layouts by combining an automated device layout generator with a script
US20120066542A1 (en) 2010-09-13 2012-03-15 National Tsing Hua University Method for Node Addition and Removal of a Circuit

Also Published As

Publication number Publication date
KR20170123708A (ko) 2017-11-08
EP3259693A4 (en) 2018-07-11
CN107533576A (zh) 2018-01-02
US20170249400A1 (en) 2017-08-31
US20170249416A1 (en) 2017-08-31
CN107533576B (zh) 2021-09-24
CN114091396A (zh) 2022-02-25
CN107533577B (zh) 2019-11-08
KR20170122840A (ko) 2017-11-06
US10380297B2 (en) 2019-08-13
US10521535B2 (en) 2019-12-31
US20180089340A1 (en) 2018-03-29
US20180068036A1 (en) 2018-03-08
EP3259692A4 (en) 2018-07-04
KR102139425B1 (ko) 2020-07-29
WO2017147453A1 (en) 2017-08-31
KR102674709B1 (ko) 2024-06-12
EP3259693A1 (en) 2017-12-27
US10102324B2 (en) 2018-10-16
US10078715B2 (en) 2018-09-18
KR20180109837A (ko) 2018-10-08
WO2017147502A1 (en) 2017-08-31
EP3259693B1 (en) 2019-05-29
EP3259692A1 (en) 2017-12-27
CN107533577A (zh) 2018-01-02
KR20180109836A (ko) 2018-10-08
KR101832116B1 (ko) 2018-02-23

Similar Documents

Publication Publication Date Title
KR101832117B1 (ko) 회로 스텐실들의 발생 및 인스턴스화를 이용한 집적 회로 설계
US7480878B2 (en) Method and system for layout versus schematic validation of integrated circuit designs
US7418683B1 (en) Constraint assistant for circuit design
US8762912B2 (en) Tiered schematic-driven layout synchronization in electronic design automation
US8141016B2 (en) Integrated design for manufacturing for 1×N VLSI design
Lourenço et al. AIDA: Layout-aware analog circuit-level sizing with in-loop layout generation
US9881119B1 (en) Methods, systems, and computer program product for constructing a simulation schematic of an electronic design across multiple design fabrics
US10289793B1 (en) System and method to generate schematics from layout-fabrics with a common cross-fabric model
US20100107130A1 (en) 1xn block builder for 1xn vlsi design
Martin Cadence design environment
US11467851B1 (en) Machine learning (ML)-based static verification for derived hardware-design elements
US8001503B2 (en) Method and system for automatically accessing internal signals or ports in a design hierarchy
US20220058325A1 (en) Method for Recognizing Analog Circuit Structure
US10997333B1 (en) Methods, systems, and computer program product for characterizing an electronic design with a schematic driven extracted view
US11341310B1 (en) Layout-versus-schematic (LVS) debugging and error diagnosis via type of graph matching
Krinke et al. Layout Verification Using Open-Source Software
White et al. Electrically aware design methodologies for advanced process nodes
Nancollas Fully Automatic Standard Cell Creation in an Analog Generator Framework
WO2024112505A1 (en) Auto-creation of custom standard cells
Zhang Systematic modeling and fast simulation of mixed-signal integrated systems in deep submicron technologies
Shepherd et al. CAD: How can we make the tasks possible?

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant