KR20230109649A - 폴리-비트 셀들 - Google Patents

폴리-비트 셀들 Download PDF

Info

Publication number
KR20230109649A
KR20230109649A KR1020237018020A KR20237018020A KR20230109649A KR 20230109649 A KR20230109649 A KR 20230109649A KR 1020237018020 A KR1020237018020 A KR 1020237018020A KR 20237018020 A KR20237018020 A KR 20237018020A KR 20230109649 A KR20230109649 A KR 20230109649A
Authority
KR
South Korea
Prior art keywords
function
bit
bit cell
cell
different
Prior art date
Application number
KR1020237018020A
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 KR20230109649A publication Critical patent/KR20230109649A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • G06F30/3953Routing detailed
    • 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/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
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation
    • 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)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Power Engineering (AREA)
  • Architecture (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Memories (AREA)
  • Automatic Disk Changers (AREA)

Abstract

폴리-비트 셀들 및 이를 형성하기 위한 방법들이 제공된다. 일 예에서, 폴리-비트 셀을 형성하기 위한 방법은, 결합가능한 상이한 기능 및 상이한 구동 중 하나 이상을 갖는 싱글-비트 셀들의 라이브러리에서의 레이아웃들을 식별하는 단계; 결합가능한 레이아웃들을 메모리에 저장하는 단계; 및 저장된 결합가능한 싱글-비트 셀들로부터 폴리-비트 셀들의 레이아웃들을 생성하는 단계를 포함한다. 적어도 2개의 싱글-비트 셀의 레이아웃들로부터 결합된 각각의 폴리-비트 셀은 상이한 기능 및 상이한 구동 중 하나 이상을 갖는다.

Description

폴리-비트 셀들
본 개시내용은 일반적으로 셀-기반 설계를 포함하는 전자장치(electronics)의 분야에 관한 것이다. 보다 구체적으로, 본 개시내용은 폴리-비트 셀들(poly-bit cells)을 제공하기 위한 시스템 및 방법에 관한 것이다.
반도체 프로세스에서, 레이아웃의 압축은 독립적인 상호접속된 셀들의 집합 대신에, 단일의 통합된 레이아웃으로 다수의 독립적인 또는 상호접속된 기능들(functions)을 구현함으로써 달성될 수 있다. 그러한 압축은 일반적으로 커스텀 회로 설계 및 레이아웃에서 이루어지며, 커스텀 설계된 레이아웃을 표준 셀들을 빌딩 블록들(building blocks)로서 이용하여 생성된 것보다 훨씬 더 조밀하게 만든다. 셀-기반 설계에서의 최근의 진보는 영역을 절감하기 위해 다수의 동일한 독립 셀들을 단일 셀에 통합하는 멀티-비트 셀들(multi-bit cells)을 이용한다. 영역 절감은 더 우수한 레이아웃 압축으로부터, 그리고 때때로 공유 디바이스들로부터 얻어진다. 이러한 셀들 내의 개별 비트들은 종래의 독립적인 싱글 비트 셀들(single bit cells)과 유사한 성능을 갖지만, 더 작은 영역 내에 있다. 예를 들어, 개별 비트들 사이에 확산 브레이크(diffusion break)를 공유함으로써, 2개의 비트를 포함하는 멀티-비트 셀은 2개의 싱글-비트 셀의 영역들에 비해 대략 25%의 영역 절약을 제공할 수 있다.
칩 구현 흐름 동안, 호환가능한 싱글-비트 셀들이 멀티-비트 셀에 매핑되어, 설계 영역을 감소시킬 수 있다. 셀들은 그들의 기능들이 매칭되고, 아주 근접하여 배치되고(또는 배치될 가능성이 있고), 유사한 성능 요구들을 갖는 경우에 호환가능하다. 호환성 요건은 멀티-비트 셀들에 매핑될 수 있는 셀들의 수를 감소시킨다. 멀티-비트에 매핑되는 셀들의 비율은 많이 이용되는 셀들에 대해서는 적당히 높지만, 드물게 이용되는 셀들에 대해서는 그렇지 않다. 따라서, 멀티-비트 셀들이 대체될 수 있는 상황들은 설계자들이 달리 원하는 것보다 숫자상으로 더 적을 수 있다.
폴리-비트 셀들 및 이를 형성하기 위한 방법들이 제공된다. 일 예에서, 폴리-비트 셀을 형성하기 위한 방법은, 결합가능한 상이한 기능(functionality) 및 상이한 구동(drive) 중 적어도 하나 이상을 갖는 싱글-비트 셀들의 라이브러리에서의 레이아웃들을 식별하는 단계; 결합가능한 레이아웃들을 메모리에 저장하는 단계; 및 저장된 결합가능한 싱글-비트 셀들로부터 폴리-비트 셀들의 레이아웃들을 생성하는 단계를 포함한다. 적어도 2개의 싱글-비트 셀의 레이아웃들로부터 결합된 각각의 폴리-비트 셀은 상이한 기능 및 상이한 구동 중 하나 이상을 갖는다.
다른 예에서, 전력 접속(power connection), 접지 접속(ground connection), 제1 기능(first function), 및 제2 기능(second function)을 포함하는 폴리-비트 셀이 제공된다. 제1 기능은 전력 접속과 접지 접속 사이에 접속된다. 제1 기능은 제1 구동 전력(driving power) 및 제1 동작을 갖는다. 제2 기능은 전력 접속과 접지 접속 사이에 접속된다. 제2 기능은 제2 구동 전력 및 제2 동작을 갖는다. 제2 기능은 구동 전력 또는 동작, 또는 구동 전력과 동작 둘 다에서 제1 기능과 상이하다.
또 다른 예에서, 제1 구동 강도의 제1 기능을 포함하는 제1 싱글-비트 셀을 식별하는 단계; 제2 구동 강도의 제2 기능을 포함하는 제2 싱글-비트 셀을 식별하는 단계; 및 회로 레이아웃에서의 제1 싱글-비트 셀 및 제2 싱글-비트 셀을, 제1 구동 강도로 설정된 제1 기능 및 제2 구동 강도로 설정된 제2 기능을 포함하는 폴리-비트 셀로 대체하는 단계를 포함하는 방법이 제공된다.
본 개시내용은 아래에 주어지는 상세한 설명으로부터 그리고 본 개시내용의 실시예들의 첨부 도면들로부터 더 충분히 이해될 것이다. 도면들은 본 개시내용의 실시예들의 지식 및 이해를 제공하기 위해 이용되며, 본 개시내용의 범위를 이러한 특정 실시예들로 제한하지 않는다. 더욱이, 도면들이 반드시 축척대로 그려져 있는 것은 아니다.
도 1a, 도 1b 및 도 1c는 본 개시내용의 실시예들에 따른, 폴리-비트 셀로 병합될 수 있는 싱글-비트 셀들을 도시한다.
도 2a, 도 2b, 도 2c 및 도 2d는 본 개시내용의 실시예들에 따른, 2개의 싱글-비트 셀의 병합으로부터 형성된 폴리-비트 셀들을 도시한다.
도 3은 본 개시내용의 실시예들에 따른, 폴리-비트 셀들을 제공하기 위한 방법의 흐름도이다.
도 4는 본 개시내용의 일부 실시예들에 따른, 집적 회로의 설계 및 제조 동안 이용되는 다양한 프로세스들의 흐름도를 도시한다.
도 5는 본 개시내용의 실시예들이 동작할 수 있는 예시적인 컴퓨터 시스템의 도면을 도시한다.
본 개시내용의 실시예들은 폴리-비트 셀들(PB 셀들이라고도 지칭됨)의 구성 및 구현에 관한 것이다. PB 셀에서는, 접지 및 전력 접속을 공유하기 위해 2개의 개별 싱글-비트 셀이 하나의 셀로 결합된다. PB 셀에서 결합된 2개의 싱글-비트 셀의 기능, 구동 강도 및 이들의 조합은 상이하거나 동일할 수 있다. 기능은 셀에 의해 구현되는 기능 및/또는 동작이다. 일부 실시예들에서, 기능은 추가적으로 또는 대안적으로 능동 디바이스, 예를 들어, 트랜지스터 등과 같은 집적 회로 구조체의 크기에 의해 특성화될 수 있다. 예를 들어, 하나의 트랜지스터는, 트랜지스터들 둘 다가 동일한 기능을 구현하더라도, 다른 트랜지스터에 비해 원하는 기준들을 충족시키도록 상이하게 크기가 정해질 수 있다. 트랜지스터들이 상이하게 크기가 정해질 수 있는 일부 예들은, 다른 것들 중에서, 상승 및 하강 지연들의 평균을 최소화하도록 최적화된 셀들; 둘 다가 아니라 P 또는 N 트랜지스터의 크기를 감소시킴으로써 상승 지연을 개선하도록 최적화된 셀들; 동일한 방식으로 하강 지연을 최소화하도록 최적화된 셀들; 모든 아크들(arcs)이 아니라 지정된 아크의 속도를 높이도록 최적화된 다중 입력 셀들; 상승 및 하강 지연들의 균형을 맞추도록 최적화된 셀들; 및 셀들의 연속적인 스테이지들 사이의 구동들의 비율이 상이한 멀티-스테이지 셀 패밀리들을 포함한다. 구동은 셀의 출력 스테이지의 전기적 구동이다. 따라서, 인접 셀들에서의 확산으로 셀에서의 확산들을 격리하기 위해 단일 확산 브레이크들 또는 연속 확산 메커니즘들을 이용하는 셀 레이아웃들에 대해, 결합된 셀의 폭은 1개의 그리드 더 작을 것인 반면, 이중 확산 브레이크 레이아웃들에서는, 폭이 2개의 그리드만큼 감소될 수 있다.
2개의 싱글-비트 셀이 동일한 기능 및 구동 강도를 공유하는지에 관계없이 PB 셀로 결합하기 위한 싱글-비트 셀들을 선택하는 능력은 전형적인 멀티-비트 셀들보다 더 큰 범위의 결합할 잠재적 셀들을 제공한다. 바람직하게, 영역 절감은 설계 레이아웃에서 더 많은 수의 셀들에 적용될 수 있으며, 따라서 설계에서 더 많은 양의 영역을 절감하여, 더 작고 더 전력 효율적인 회로 설계들을 가능하게 한다. PB 셀들은 서로 독립적인 동작들 및/또는 구동 강도들을 갖는 2개의 싱글-비트 셀을 결합하도록 구현될 수 있다. 달리 말하면, PB 셀들은 서로에 대해 등가의 또는 상이한 구동 강도들에서 등가의 또는 상이한 동작들(예를 들어, 인버터(OR), NAND, NOR, XNOR, XOR, AND, ANDOR, ORAND, 멀티플렉스(MUX) 및 버퍼)을 이용하는 셀들을 결합할 수 있다. 이들 PB 셀들은 영역 절감에서 멀티-비트 셀들과 유사한 이점들을 제공하지만, 멀티-비트 셀들보다 큰 차수로 이점을 축적하기 위해 결합될 수 있는 호환가능한 셀들의 타입들의 수의 증가를 제공한다.
도 1a, 도 1b, 도 1c, 도 2a, 도 2b, 도 2c 및 도 2d는 본 개시내용의 실시예들에 따른, 다양한 셀들의 이중 확산 브레이크 레이아웃들을 도시한다. 도 1a, 도 1b, 도 1c, 도 2a, 도 2b, 도 2c 및 도 2d는 출력(111)을 갖는 NAND 기능, 출력(131)을 갖는 1x 구동 인버터 기능, 및 출력(121)을 갖는 2x 구동 인버터 기능을 갖는 예들을 제공하지만, 본 기술분야의 통상의 기술자라면, 본 예들은 제한이 아니며, 본 개시내용은 폴리-비트 셀들 밖에서 액세스가능하고, 폴리-비트 셀들 내에서 내부 이용을 위해 접속되고, 이들의 조합들일 수 있는 다양한 상이한 출력들을 갖는 대응하는 개별 셀들로부터 PB 셀로 결합되는 많은 상이한 기능들에 적용될 수 있다는 것을 인식할 것이다.
도 1a에서, 제1 싱글-비트 셀(110)은 제2 입력(113)에 대해 비교되는 제1 입력(112)을 갖는 NAND 기능 출력(111)을 제공하는 한편, 도 1b에서, 제2 싱글-비트 셀(120)은 칩 레벨에서 함께 접속되는 입력(122)의 2개의 포트(122a 및 122b)를 갖는 2X 강도 인버터 기능 출력(121)을 제공한다. 싱글-비트 셀들(110, 120)에서의 기능 출력들(111, 121) 각각은 전력 레일(power rail)(160a)로부터 접속들(140a, 140b)(VDD)에서의 구동 전압을 수신한다. 추가적으로, NAND 기능 출력(111)은 접지 레일(ground rail)(160b)에 대한 접지 접속(150)(VSS)을 갖고, 인버터 기능 출력(121)은 접지 레일(160b)에 대한 접지 접속들(150a, 150b)(VSS)을 갖는다. 제1 싱글-비트 셀(110) 및 제2 싱글-비트 셀(120)은 접지 접속들(170) 및 전력 접속들(172)에 의해 경계가 정해진다. 접지 접속(170)이 좌측 셀 경계를 제공하고 전력 접속(172)이 우측 셀 경계를 제공하지만, 접지 접속(170)은 대안적으로 우측 셀 경계를 제공할 수 있는 한편 전력 접속(172)은 좌측 셀 경계를 제공한다. 제1 싱글-비트 셀(110) 및 제2 싱글-비트 셀(120) 둘 다는 2개의 개별 싱글 비트 셀(110, 120)에 대해 적어도 8 CPP(플러스 사용자에 의해 설정된 임의의 셀간 간격 요건들)의 총 폭에 대해 각각 4 접촉 폴리 피치(contacted poly pitch)(CPP) 폭인 영역을 점유한다. 다양한 실시예에서, CPP의 크기는 이용되는 제조 기술에 기초하여 변할 수 있지만, 폴리-비트 셀들의 이점들은 다수의 상이한 제조 기술들 및 셀 크기들에 걸쳐 적용될 수 있다.
도 1c는 하나의 입력(122)을 갖는 (도 1b의 2x 강도 인버터 출력(121)과 대조적으로) 1x 강도 구동 인버터 기능 출력(131)을 제공하는 제3 싱글-비트 셀(130)을 도시한다. 제3 싱글-비트 셀(130)의 기능 출력(131)은 전력 레일(160a)로부터 하나의 접속(140)(VDD)에서 구동 전압을 수신하고, 접지 레일(160b)에서 하나의 접지 접속(150)(VSS)에 접속된다. 제3 싱글-비트 셀(130)은 3 CPP 폭인 영역을 점유한다. 제3 싱글-비트 셀(130) 및 제1 싱글-비트 셀(110) 또는 제2 싱글-비트 셀(120) 중 하나에 의해 점유되는 총 영역은 2개의 개별 싱글-비트 셀(130 및 110/120)에 대해 적어도 7 CPP(플러스 사용자에 의해 설정된 임의의 셀간 간격 요건들)일 것이다.
도 2a, 도 2b, 도 2c 및 도 2d에서, 도 1a, 도 1b 및 도 1c에서 설명된 NAND 기능 출력(111) 및 인버터 기능 출력들(121, 131)의 변형들이 하나의 셀, 즉, PB 셀에서 구현된다. PB 셀들은 2개의 싱글-비트 셀로부터의 논리적 기능들이 공유하는 전력 레일(160a) 및 접지 레일(160b)을 각각 포함하는 IC 디바이스들이다. 전력/접지 레일들을 공유함으로써, PB 셀은 여러 상이한 타입의 싱글-비트 셀들을 등가의 구동 강도를 이용하는 상이한 기능들, 상이한 구동 강도들을 이용하는 상이한 기능들, 및 상이한 구동 강도들을 이용하는 하나의 기능 상의 다수의 인스턴스를 포함하는 하나의 셀에 병합할 수 있다. 또한, PB 셀들은 2개보다 많은 기능들을 포함할 수 있다. 통상적으로, PB 셀은 PB 셀이 컴포넌트 셀들보다 영역이 작을 때마다 구성될 수 있으며, 컴포넌트 셀들은 통상의 단일 기능 셀들 또는 기능들의 서브세트를 구현하는 더 작은 PB 셀들이다.
도 2a에서, 제1 PB 셀(210a)은 기능들을 구동하기 위한 구동 전압 접속(140a, 140b)(VDD)의 2개의 인스턴스를 제공하지만, 도 1a 및 도 1b에서와 같이 2x 구동 강도가 아니라 1x 구동 강도에 있다. 기능 출력들(111, 131) 각각은 공유된 구동 전압 접속들(VDD)과 접지 접속들(VSS) 사이에 접속된다. 제1 PB 셀(210a)은 출력을 갖는 NAND 기능(111)에 제1 입력(112) 및 제2 입력(113)을 제공하고, 인버터 기능 출력(131)에 입력(132)의 하나의 인스턴스를 제공한다. 결과적인 결합된 제1 PB 셀(210a)은 5 CPP 폭인 영역을 점유하고, 2개의 컴포넌트 싱글-비트 셀(110, 130)에 대한 7 CPP 폭의 총 폭보다 작고, 단일 셀에서 2개의 상이한 기능을 제공한다.
도 2b에서, 제2 PB 셀(210b)은 구동 전압 접속(140a, 140b)(VDD)의 2개의 인스턴스를 기능들에 제공하고, 1x 구동 강도의 인버터 기능 출력(131) 및 2x 구동 강도의 인버터 기능 출력(121)을 포함한다. 인버터 기능들의 2개의 인스턴스는 둘 다 구동 전압 접속들(VDD)과 접지 접속들(VSS) 사이에 배치된다. 제2 PB 셀(210b)은 1x 강도 인버터 기능 출력(131)의 제1 인스턴스에 입력(132)의 하나의 인스턴스를 제공하여 연관된 출력으로서 반전시키고, 2x 강도 인버터 기능 출력(121)의 제2 인스턴스에 입력의 2개의 포트(122a, 122b)를 제공하여 연관된 출력으로서 반전시킨다. 결과적인 결합된 제2 PB 셀(210b)은 5 CPP 폭인 영역을 점유하고, 각각의 인버터 기능 출력들(121, 131)에 대한 2개의 싱글-비트 셀(120)의 총 폭보다 작고, 상이한 구동 강도들로 구동되는 2개의 기능의 조합을 제공한다.
도 2c에서, 제3 PB 셀(210c)은 기능들을 구동하기 위해 구동 전압 접속(140a, 140b, 140c)(VDD)의 3개의 인스턴스 및 접지 접속(VSS)(150a, 150b)의 2개의 인스턴스를 제공하며, 2x 구동 강도로 각각 구동되는 NAND 기능 출력(111) 및 인버터 기능 출력(121)을 포함한다. NAND 기능 출력(111) 및 인버터 기능 출력(121)은 둘 다 공유된 구동 전압 접속들(VDD)과 접지 접속들(VSS) 사이에 배치된다. 제3 PB 셀(210c)은 제1 NAND 기능 출력(111)에 제1 입력(112) 및 제2 입력(113)을 제공하고, 인버터 기능 출력(121)에 칩 레벨에서 함께 접속되는 입력(122)의 2개의 포트(122a, 122b)를 제공한다. 결과적인 결합된 제3 PB 셀(210c)은 6 CPP 폭인 영역을 점유하고, 2개의 컴포넌트 싱글-비트 셀(110, 120)의 총 폭보다 작고, 단일 셀에서 2개의 상이한 기능을 제공한다.
다양한 실시예들에서, PB 셀들(210)에서의 기능들의 출력들은 PB 셀들(210)에서의 다른 기능들의 입력들에 PB 셀(210)에 내부적으로 접속될 수 있다. 예를 들어, 도 2d에서, 제4 PB 셀(210d)은 기능들을 구동하기 위한 구동 전압 접속(140a, 140b)(VDD)의 2개의 인스턴스를 제공한다. 기능들의 출력들(111, 131) 각각은 공유된 구동 전압 접속들(VDD)과 접지 접속들(VSS) 사이에 접속된다. 제4 PB 셀(210d)은 NAND 기능 출력(111)에 제1 입력(112) 및 제2 입력(113)을 제공하고, 인버터 기능 출력(131)에 입력(132)의 하나의 인스턴스를 제공한다. 제2 입력(113)은 내부 트레이스(220)를 통해 인버터 기능 출력(131)으로부터 논리 값을 수신하는 반면, 제1 입력(112)은 제4 PB 셀(210d)의 외부로부터 논리 값을 수신한다. 결과적인 결합된 제4 PB 셀(210d)은 5 CPP 폭인 영역을 점유하고, 2개의 컴포넌트 싱글-비트 셀(110, 130)에 대한 7 CPP 폭의 총 폭보다 작고, 2개의 기능 사이의 설계 레이아웃에서 공간을 이전에 점유한 트레이스(220)를 포함하고, 따라서 설계 레이아웃에서 공간을 더 절감하고 트레이스 라우팅 복잡성을 감소시킨다. 달리 말하면, PB 셀 내에 2개의 개별 싱글-비트 셀의 외부에 있고 그들을 접속한 트레이스(220)를 통합하는 것은 PB 셀이 풋프린트의 부분에서 동일한 기능을 갖는 것을 가능하게 하면서 외부 공간들에 대해 추가적인 공간이 필요하지 않게 한다.
도 3은 본 개시내용의 실시예들에 따른, PB 셀들을 구성하기 위한 방법(300)의 흐름도이다. 방법(300)은, 회로 레이아웃을 위한 설계 시스템이 라이브러리에 정의된 셀들에 대한 이동-경계 레이아웃들(mobile-boundary layouts)을 생성하는 310에서 시작한다. 다양한 실시예들에서, 설계 시스템은 라이브러리에서의 모든 셀에 대한 이동-경계 레이아웃을 생성하지만, 다른 실시예들에서, 설계 시스템은 셀들 또는 기능들의 지정된 서브세트에 대한 이동-경계 레이아웃들을 생성할 수 있다. 예를 들어, 서브세트는 주어진 오퍼레이터에 대한 설계 레이아웃들에서의 임계 이용 레벨(threshold level of usage)(예를 들어, 적어도 X회 이용됨, 최상위 Y개의 가장 많이 이용된 기능 등)을 고려하는 싱글-비트 셀들로 제한될 수 있고, 이는 폴리-비트 셀들이 구성될 수 있는 셀들의 수를 감소시키고 잠재적인 폴리-비트 셀들의 수가 너무 확장되지 못하게 유지한다. 임계 이용 레벨은 사용자, 설계 시스템에 의해 선택되거나, 미리 결정된 값으로 설정될 수 있다. X의 임계값을 갖는 예에서, 이동-경계 레이아웃들만이 X회 이용되는 셀들에 대해서만 만들어진다. Y의 임계값을 갖는 다른 예에서, 최상위 Y개의 가장 많이 이용된 기능인 셀에 대해서만 이동-경계 레이아웃들이 만들어진다. 이동-경계 레이아웃들은 전력 및 접지 접속기들이 셀 경계의 좌측 또는 우측으로 이동될 수 있는 회로 요소들의 배열들이다. 셀이 이동-경계 레이아웃을 갖는 것으로 식별되면, 식별된 셀은 이동-경계 셀을 정의하기 위해 셀 경계의 좌측 및 우측에 전력 및 접지 접속기들이 재배치되게 하도록 재구성된다. 결과적인 이동-경계 셀들의 세트는 SetA로서 라이브러리에 다시 저장된다. SetA는 적어도 제1 싱글-비트 셀 및 제2 싱글-비트 셀을 포함하고, 제1 싱글-비트 셀의 기능 또는 구동 중 적어도 하나는 제2 싱글-비트 셀의 기능 또는 구동과 상이하다. SetA는 또한 이동-경계 레이아웃을 갖지 않지만 SetA를 포함하는 이동-경계 셀들과 동일한 전력 및 접지 접속기 위치를 공유하는 셀들을 포함할 수 있다.
320에서, 설계 시스템은 setA에서의 싱글-비트 셀들에 대응하는 다수의 이동-경계 레이아웃들로부터 폴리-비트 셀들을 생성한다. 각각의 폴리-비트 셀은 이동-경계 레이아웃들을 갖는 SetA의 싱글-비트 셀들로부터의 적어도 제1 싱글-비트 셀 및 제2 싱글-비트 셀을 포함한다. 제1 싱글-비트 셀의 기능 또는 구동 중 적어도 하나는 제2 싱글-비트 셀의 기능 또는 구동과 상이하다. 설계 시스템은 setA의 각각의 선택된 멤버의 전력 및 접지 접속을 병합하여, 둘 이상의 싱글-비트 셀을 병합하는 새로운 멀티-비트 PB 셀을 생성한다. 각각의 PB 셀은 각각의 전력 레일(160a) 및 접지 레일(160b)을 공유하는 setA의 적어도 2개의 멤버를 포함한다. 다양한 실시예들에서, 설계 시스템은 임계 수의 싱글-비트 셀들까지 갖는 조합들을 생성할 수 있다. 예를 들어, 임계 수가 2일 때, 설계 시스템은 싱글-비트 셀들의 쌍들을 결합하는 2-비트 PB 셀들을 생성한다. 다른 예에서, 임계 수가 3일 때, 설계 시스템은 싱글-비트 셀들의 쌍들을 결합하는 2-비트 PB 셀들, 및 3개의 싱글-비트 셀을 결합하는 3-비트 셀들을 생성한다.
결과적인 PB 셀은 구성 셀들로부터 둘 이상의 독립 기능을 구현하며, 단일 확산 브레이크 스타일 레이아웃에 대해, 전형적으로 2개의 기능이 2개의 독립 셀인 경우보다 하나의 CPP가 더 좁다. PB 셀들에 의해 제공되는 영역 절감에 더하여, 전력 레일들(160a) 및 접지 레일들(160b)의 공유는 구성 싱글-비트 셀들에서의 확산들을 병합하며, 이는 ~4%까지 성능을 개선할 수 있다. 추가적으로, 개별 기능들 사이의 외부 트레이스들이 식별될 때, 그러한 트레이스들은 PB 셀 내에 내부 트레이스들로서 포함될 수 있으며, 따라서 레이아웃에서의 공간을 더 절감하고 트레이스 라우팅 복잡성을 감소시킬 수 있다.
330에서, 설계 시스템은 주어진 PB 셀에 의한 대체를 위해 설계 레이아웃에서 대응하는 싱글-비트 셀들이 식별될 때 나중의 이용을 위해 이러한 PB 셀들을 라이브러리에 저장한다.
PB 셀들이 라이브러리에 저장되면, 340에서 설계 시스템은 PB 셀들(예를 들어, 설계 레이아웃에서의 서브-회로들을 공유할 수 있는 셀들)로의 병합에 이용가능한 설계 레이아웃에서의 싱글-비트 셀들을 식별한다. 예를 들어, 2-입력 반전 멀티플렉서(MUXI2) 및 2-입력 비반전 멀티플렉서(MUX2)는 공통 인에이블 버퍼를 공유할 수 있다. 2, 3 및 4 비트의 다수의 PB 셀들이 생성될 수 있으며, PB 셀에서의 각각의 비트의 구동 강도(예로서, 1x, 2x 및 3x) 및 기능(예로서, MUX2, MUXI2)은 독립적으로 선택되었다. 따라서, 설계 시스템은 350에 따라, 현재 배치된 기능들의 구성 셀들을 갖는 라이브러리로부터 PB 셀을 싱글-비트 셀들로서 선택하고, 레이아웃에서의 싱글-비트 셀들을 대응하는 PB 셀로 대체할 수 있다. 대응하는 PB 셀은 레이아웃에서의 개별 싱글-비트 셀들을 대체하며, 레이아웃에서의 기능들에 의해 점유되는 공간의 양을 감소시킨다. 결과적인 PB 셀은 동일하거나 상이한 구동 강도들 및 동일하거나 상이한 동작들을 갖는 둘 이상의 기능을 포함할 수 있다.
360에서, 설계 시스템은 가능한 경우, 외부 트레이스들을 폴리-비트 셀에서의 내부 트레이스들로 대체한다. 설계 시스템은 350에 따라 폴리-비트 셀에 의해 대체된 개별 싱글-비트 셀들이 임의의 외부 트레이스들을 통해 링크되었는지를 체크하고, 이에 응답하여 회로 레이아웃으로부터 외부 트레이스를 제거하고 폴리-비트 셀 내에 내부 트레이스(220)를 생성하여 2개의 기능을 링크할 수 있다. 예를 들어, 제1 싱글-비트 셀이 제2 싱글-비트 셀의 입력에 접속되는 출력을 제공할 때, 외부 트레이스는 그러한 싱글-비트 셀들의 기능들과 함께 폴리-비트 셀 내에서 이동될 수 있다. 따라서, 설계 시스템은 설계 레이아웃에서 공간을 더 절감하고, 폴리-비트 셀 내에 병합된 기능들 사이의 트레이스들을 내부화함으로써 라우팅 복잡성을 감소시킬 수 있다.
도 4는 집적 회로를 나타내는 설계 데이터 및 명령어들을 변환 및 검증하기 위해 집적 회로와 같은 제조 물품의 설계, 검증, 및 제조 동안 이용되는 프로세스들의 예시적인 세트(400)를 도시한다. 이러한 프로세스들 각각은 다수의 모듈들 또는 동작들로서 구조화되고 가능해질 수 있다. 용어 'EDA'는 용어 '전자 설계 자동화'를 의미한다. 이러한 프로세스들은 설계자에 의해 공급되는 정보, 즉, EDA 프로세스들(412)의 세트를 이용하는 제조 물품을 생성하도록 변환되는 정보를 갖는 제품 아이디어(410)의 생성으로 시작한다. 설계가 완료될 때, 설계는 테이프 아웃(taped-out)(434)되고, 이는 집적 회로에 대한 아트워크(artwork)(예를 들어, 기하학적 패턴들)가 마스크 세트를 제조하기 위해 제조 설비에 전송되고, 이는 이후 집적 회로를 제조하는 데 이용된다. 테이프 아웃 후에, 반도체 다이가 제조(436)되고, 패키징 및 조립 프로세스들(438)이 수행되어 완성된 집적 회로(440)를 생성한다.
회로 또는 전자 구조체에 대한 사양들은 로우-레벨 트랜지스터 재료 레이아웃들로부터 하이-레벨 기술 언어들까지의 범위일 수 있다. VHDL, Verilog, SystemVerilog, SystemC, MyHDL 또는 OpenVera와 같은 하드웨어 기술 언어(hardware description language)('HDL')를 이용하여 회로들 및 시스템들을 설계하기 위해 하이-레벨의 표현이 이용될 수 있다. HDL 기술은 논리-레벨 레지스터 전송 레벨('RTL') 기술, 게이트-레벨 기술(gate-level description), 레이아웃-레벨 기술(layout-level description), 또는 마스크-레벨 기술(mask-level description)로 변환될 수 있다. 더 상세한 기술인 각각의 더 낮은 표현 레벨은 설계 기술에 더 유용한 상세, 예를 들어, 기술을 포함하는 모듈들에 대한 더 많은 상세들을 추가한다. 더 상세한 기술들인 표현의 더 낮은 레벨들은 컴퓨터에 의해 생성되거나, 설계 라이브러리로부터 도출되거나, 다른 설계 자동화 프로세스에 의해 생성될 수 있다. 더 상세한 기술들을 특정하기 위한 표현 언어의 더 낮은 레벨에서의 사양 언어의 예는 SPICE이며, 그것은 많은 아날로그 컴포넌트들을 갖는 회로들의 상세한 기술들에 이용된다. 표현의 각각의 레벨에서의 기술들은 그 계층의 대응하는 툴들(예를 들어, 형식 검증 툴)에 의한 이용을 위해 인에이블된다. 설계 프로세스는 도 4에 도시된 시퀀스를 이용할 수 있다. 설명된 프로세스들은 EDA 제품들(또는 툴들)에 의해 가능해진다.
시스템 설계(414) 동안, 제조될 집적 회로의 기능이 특정된다. 설계는 전력 소비, 성능, 영역(물리적 및/또는 코드의 라인들), 및 비용의 감소 등과 같은 원하는 특성들을 위해 최적화될 수 있다. 설계를 상이한 타입들의 모듈들 또는 컴포넌트들로 파티셔닝하는 것은 이 스테이지에서 발생할 수 있다.
논리적 설계 및 기능적 검증(416) 동안, 회로에서의 모듈들 또는 컴포넌트들은 하나 이상의 기술 언어로 특정되고, 사양은 기능 정확도에 대해 체크된다. 예를 들어, 회로의 컴포넌트들은 설계되는 회로 또는 시스템의 사양의 요건들에 부합하는 출력들을 생성하도록 검증될 수 있다. 기능적 검증은 시뮬레이터들 및 다른 프로그램들, 예컨대, 테스트벤치 생성기들(testbench generators), 정적 HDL 체커들, 및 형식 검증기들을 이용할 수 있다. 일부 실시예들에서, '에뮬레이터들(emulators)' 또는 '프로토타이핑 시스템들(prototyping systems)'이라고 지칭되는 컴포넌트들의 특수 시스템들은 기능적 검증의 속도를 높이는 데 이용된다.
테스트를 위한 합성 및 설계(418) 동안, HDL 코드는 네트리스트로 변환된다. 일부 실시예들에서, 네트리스트는 그래프 구조일 수 있으며, 그래프 구조의 에지들은 회로의 컴포넌트들을 나타내고, 그래프 구조의 노드들은 컴포넌트들이 어떻게 상호접속되는지를 나타낸다. HDL 코드 및 네트리스트 둘 다는, 제조될 때, 집적 회로가 특정된 설계에 따라 수행하는 것을 검증하기 위해 EDA 제품에 의해 이용될 수 있는 계층적 제조 물품들이다. 네트리스트는 타겟 반도체 제조 기술에 대해 최적화될 수 있다. 추가적으로, 완성된 집적 회로는 집적 회로가 사양의 요건들을 만족시키는지를 검증하기 위해 테스트될 수 있다.
네트리스트 검증(420) 동안, 네트리스트는 타이밍 제약들의 준수 및 HDL 코드와의 대응에 대해 체크된다. 설계 계획(422) 동안, 집적 회로에 대한 전체 플로어 플랜(overall floor plan)이 구성되고 타이밍 및 상위 레벨 라우팅(top-level routing)을 위해 분석된다.
레이아웃 또는 물리적 구현(424) 동안, 물리적 배치(트랜지스터들 또는 커패시터들과 같은 회로 컴포넌트들을 위치시키는 것) 및 라우팅(다수의 전도체들에 의한 회로 컴포넌트들의 접속)이 발생하고, 특정 논리 기능들을 가능하게 하기 위한 라이브러리로부터의 셀들의 선택이 수행될 수 있다. 본 명세서에서 이용된 바와 같이, 용어 '셀'은 부울 논리 함수(Boolean logic function)(예를 들어, AND, OR, NOT, XOR) 또는 (플립플롭 또는 래치와 같은) 저장 함수를 제공하는 트랜지스터들, 다른 컴포넌트들 및 상호접속들의 세트를 특정할 수 있다. 본 명세서에서 이용된 바와 같이, 회로 '블록'은 둘 이상의 셀을 지칭할 수 있다. 셀 및 회로 블록 둘 다는 모듈 또는 컴포넌트라고 지칭될 수 있고, 물리적 구조들 및 시뮬레이션들 둘 다로서 인에이블된다. 파라미터들은 크기와 같은 ('표준 셀들'에 기초하여) 선택된 셀들에 대해 특정되고, EDA 제품들에 의한 이용을 위해 데이터베이스에서 액세스가능하게 된다.
분석 및 추출(426) 동안, 회로 기능은 레이아웃 레벨에서 검증되고, 이는 레이아웃 설계의 개선을 허용한다. 물리적 검증(428) 동안, DRC 제약들, 전기적 제약들, 리소그래피 제약들과 같은 제조 제약들이 정확하고, 회로 기능이 HDL 설계 사양과 부합하도록 보장하기 위해 레이아웃 설계가 체크된다. 해상도 향상(430) 동안, 레이아웃의 기하구조는 회로 설계가 어떻게 제조되는지를 개선하도록 변환된다.
테이프 아웃 동안, 데이터는 리소그래피 마스크들의 생성을 위해 (적절한 경우에 리소그래피 향상들이 적용된 후에) 이용되도록 생성된다. 마스크 데이터 준비(432) 동안, '테이프 아웃' 데이터는 완성된 집적 회로들을 생성하는 데 이용되는 리소그래피 마스크들을 생성하는 데 이용된다.
(도 5의 컴퓨터 시스템(500)과 같은) 컴퓨터 시스템의 저장 서브시스템은 본 명세서에서 설명된 EDA 제품들의 일부 또는 전부에 의해 이용되는 프로그램들 및 데이터 구조들, 및 라이브러리에 대한 셀들의 개발을 위해 그리고 라이브러리를 이용하는 물리적 및 논리적 설계를 위해 이용되는 제품들을 저장하는 데 이용될 수 있다.
도 5는 머신으로 하여금 본 명세서에서 논의된 방법들 중 임의의 하나 이상을 수행하게 하기 위한 명령어들의 세트가 실행될 수 있는 컴퓨터 시스템(500)의 예시적인 머신을 도시한다. 대안적인 구현들에서, 머신은 LAN, 인트라넷, 엑스트라넷, 및/또는 인터넷에서 다른 머신들에 접속(예를 들어, 네트워킹)될 수 있다. 머신은 클라이언트-서버 네트워크 환경에서 서버 또는 클라이언트 머신으로서, 피어-투-피어(또는 분산형) 네트워크 환경에서 피어 머신으로서, 또는 클라우드 컴퓨팅 인프라스트럭처 또는 환경에서 서버 또는 클라이언트 머신으로서 동작할 수 있다.
머신은 개인용 컴퓨터(personal computer)(PC), 태블릿 PC, 셋톱 박스(set-top box)(STB), PDA(Personal Digital Assistant), 셀룰러 전화, 웹 기기, 서버, 네트워크 라우터, 스위치 또는 브리지, 또는 해당 머신에 의해 취해질 액션들을 특정하는 (순차적이거나 또는 다른 방식의) 명령어들의 세트를 실행할 수 있는 임의의 머신일 수 있다. 또한, 단일 머신이 예시되어 있지만, "머신"이라는 용어는 또한 본 명세서에서 논의된 방법들 중 임의의 하나 이상을 수행하기 위해 명령어들의 세트(또는 다수의 세트들)를 개별적으로 또는 공동으로 실행하는 머신들의 임의의 집합을 포함하는 것으로 간주되어야 한다.
예시적인 컴퓨터 시스템(500)은, 버스(530)를 통해 서로 통신하는, 처리 디바이스(502), 메인 메모리(504)(예를 들어, 판독 전용 메모리(ROM), 플래시 메모리, 동기식 DRAM(SDRAM)과 같은 동적 랜덤 액세스 메모리(DRAM)), 정적 메모리(506)(예를 들어, 플래시 메모리, 정적 랜덤 액세스 메모리(SRAM) 등), 및 데이터 저장 디바이스(518)를 포함한다.
처리 디바이스(502)는 마이크로프로세서, 중앙 처리 유닛 등과 같은 하나 이상의 프로세서를 나타낸다. 보다 구체적으로, 처리 디바이스는 CISC(complex instruction set computing) 마이크로프로세서, RISC(reduced instruction set computing) 마이크로프로세서, VLIW(very long instruction word) 마이크로프로세서, 또는 다른 명령어 세트들을 구현하는 프로세서, 또는 명령어 세트들의 조합을 구현하는 프로세서들일 수 있다. 처리 디바이스(502)는 또한 주문형 집적 회로(application specific integrated circuit)(ASIC), 필드 프로그래머블 게이트 어레이(field programmable gate array)(FPGA), 디지털 신호 프로세서(digital signal processor)(DSP), 네트워크 프로세서 등과 같은 하나 이상의 특수 목적 처리 디바이스일 수 있다. 처리 디바이스(502)는 본 명세서에 설명된 동작들 및 단계들을 수행하기 위한 명령어들(526)을 실행하도록 구성될 수 있다.
컴퓨터 시스템(500)은 네트워크(520)를 통해 통신하기 위해 네트워크 인터페이스 디바이스(508)를 더 포함할 수 있다. 컴퓨터 시스템(500)은 또한, 비디오 디스플레이 유닛(510)(예를 들어, 액정 디스플레이(LCD) 또는 음극선관(CRT)), 영숫자 입력 디바이스(512)(예를 들어, 키보드), 커서 제어 디바이스(514)(예를 들어, 마우스), 그래픽 처리 유닛(522), 신호 생성 디바이스(516)(예를 들어, 스피커), 그래픽 처리 유닛(522), 비디오 처리 유닛(528), 및 오디오 처리 유닛(532)을 포함할 수 있다.
데이터 저장 디바이스(518)는, 본 명세서에 설명된 방법들 또는 기능들 중 임의의 하나 이상을 구현하는 소프트웨어 또는 명령어들(526)의 하나 이상의 세트가 저장되어 있는 (비일시적 컴퓨터 판독가능 매체라고도 알려진) 머신 판독가능 저장 매체(524)를 포함할 수 있다. 명령어들(526)은 또한, 컴퓨터 시스템(500)에 의한 그 실행 동안에, 완전히 또는 적어도 부분적으로, 메인 메모리(504) 내에 및/또는 처리 디바이스(502) 내에 존재할 수 있고, 메인 메모리(504) 및 처리 디바이스(502)는 또한 머신 판독가능 저장 매체를 구성한다.
일부 구현들에서, 명령어들(526)은 본 개시내용에 대응하는 기능을 구현하기 위한 명령어들을 포함한다. 머신 판독가능 저장 매체(524)가 예시적인 구현에서 단일 매체인 것으로 도시되어 있지만, "머신 판독가능 저장 매체"라는 용어는 명령어들의 하나 이상의 세트를 저장한 단일 매체 또는 다수의 매체들(예를 들어, 중앙집중형 또는 분산형 데이터베이스, 및/또는 연관된 캐시들 및 서버들)을 포함하는 것으로 간주되어야 한다. 용어 "머신 판독가능 저장 매체"는 또한, 머신에 의한 실행을 위한 명령어들의 세트를 저장 또는 인코딩할 수 있고, 머신 및 처리 디바이스(502)로 하여금 본 개시내용의 방법들 중 임의의 하나 이상을 수행하게 하는 임의의 매체를 포함하는 것으로 간주되어야 한다. 따라서, "머신 판독가능 저장 매체"라는 용어는 고체 상태 메모리들, 광학 매체 및 자기 매체를 포함하지만 이에 제한되지는 않는 것으로 간주되어야 한다.
이전의 상세한 설명들의 일부 부분들은 컴퓨터 메모리 내의 데이터 비트들에 대한 동작들의 알고리즘들 및 심볼 표현들의 관점에서 제시되었다. 이러한 알고리즘 설명들 및 표현들은 데이터 처리 분야의 통상의 기술자가 그들의 작업의 본질을 본 기술분야의 다른 통상의 기술자에게 가장 효과적으로 전달하기 위해 이용되는 방식들이다. 알고리즘은 원하는 결과를 초래하는 동작들의 시퀀스일 수 있다. 동작들은 물리적 양들의 물리적 조작들을 요구하는 것들이다. 그러한 양들은 저장, 결합, 비교, 및 다른 방식으로 조작될 수 있는 전기 또는 자기 신호들의 형태를 취할 수 있다. 그러한 신호들은 비트들, 값들, 요소들, 심볼들, 문자들, 용어들, 숫자들 등으로 지칭될 수 있다.
그러나, 이들 및 유사한 용어들 모두는 적절한 물리적 양들과 연관되고 이들 양들에 적용되는 편리한 라벨들일 뿐이라는 점을 명심해야 한다. 본 개시내용으로부터 명백한 바와 같이 구체적으로 달리 언급되지 않는 한, 설명 전반에 걸쳐, 특정 용어들이 컴퓨터 시스템의 레지스터들 및 메모리들 내의 물리적(전자적) 양들로서 표현되는 데이터를 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 그러한 정보 저장 디바이스들 내의 물리적 양들로서 유사하게 표현되는 다른 데이터로 조작하고 변환하는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 액션 및 프로세스들을 지칭한다는 것이 이해된다.
본 개시내용은 또한 본 명세서에서의 동작들을 수행하기 위한 장치에 관한 것이다. 이 장치는 의도된 목적을 위해 특별히 구성될 수 있거나, 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 컴퓨터를 포함할 수 있다. 그러한 컴퓨터 프로그램은, 각각이 컴퓨터 시스템 버스에 결합되는, 플로피 디스크들, 광학 디스크들, CD-ROM들, 및 자기-광학 디스크들을 포함하는 임의의 타입의 디스크, 판독 전용 메모리(ROM)들, 랜덤 액세스 메모리(RAM)들, EPROM들, EEPROM들, 자기 또는 광학 카드들, 또는 전자 명령어들을 저장하기에 적합한 임의의 타입의 매체들과 같은, 그러나 이에 제한되지 않는, 컴퓨터 판독가능 저장 매체에 저장될 수 있다.
본 명세서에 제시된 알고리즘들 및 디스플레이들은 본질적으로 임의의 특정 컴퓨터 또는 다른 장치에 관련되지 않는다. 다양한 다른 시스템들이 본 명세서의 교시들에 따라 프로그램들과 함께 이용될 수 있거나, 또는 방법을 수행하기 위해 더 특수화된 장치를 구성하는 것이 편리한 것으로 판명될 수 있다. 또한, 본 개시내용은 임의의 특정 프로그래밍 언어를 참조하여 설명되지 않는다. 다양한 프로그래밍 언어들이 본 명세서에 설명된 바와 같은 본 개시내용의 교시들을 구현하기 위해 이용될 수 있다는 것이 이해될 것이다.
본 개시내용은 본 개시내용에 따른 프로세스를 수행하도록 컴퓨터 시스템(또는 다른 전자 디바이스들)을 프로그래밍하는 데 이용될 수 있는 명령어들이 저장되어 있는 머신 판독가능 매체를 포함할 수 있는 컴퓨터 프로그램 제품 또는 소프트웨어로서 제공될 수 있다. 머신 판독가능 매체는 머신(예를 들어, 컴퓨터)에 의해 판독가능한 형태로 정보를 저장하기 위한 임의의 메커니즘을 포함한다. 예를 들어, 머신 판독가능(예를 들어, 컴퓨터 판독가능) 매체는 판독 전용 메모리("ROM"), 랜덤 액세스 메모리("RAM"), 자기 디스크 저장 매체들, 광학 저장 매체들, 플래시 메모리 디바이스들 등과 같은 머신(예를 들어, 컴퓨터) 판독가능 저장 매체를 포함한다.
전술한 개시내용에서, 본 개시내용의 구현들은 그 특정 예시적인 구현들을 참조하여 설명되었다. 다음의 청구항들에 개시된 바와 같은 본 개시내용의 구현들의 더 넓은 사상 및 범위를 벗어나지 않고 다양한 수정들이 이루어질 수 있다는 것이 명백할 것이다. 본 개시내용이 단일 시제에서의 일부 요소들을 언급하는 경우, 하나보다 많은 요소가 도면들에 묘사될 수 있고, 유사한 요소들은 유사한 번호들로 라벨링된다. 따라서, 본 개시내용 및 도면들은 제한적인 의미가 아니라 예시적인 의미로 간주되어야 한다.

Claims (20)

  1. 폴리-비트 셀을 형성하기 위한 방법으로서,
    결합가능한 상이한 기능 및 상이한 구동 중 하나 이상을 갖는 싱글-비트 셀들의 라이브러리에서의 레이아웃들을 식별하는 단계;
    결합가능한 레이아웃들을 메모리에 저장하는 단계; 및
    상기 저장된 결합가능한 싱글-비트 셀들로부터 폴리-비트 셀들의 레이아웃들을 생성하는 단계 - 적어도 2개의 싱글-비트 셀의 레이아웃들로부터 결합된 각각의 폴리-비트 셀은 상이한 기능 및 상이한 구동 중 하나 이상을 가짐 - 를 포함하는, 방법.
  2. 제1항에 있어서,
    결합가능한 상이한 기능 및 상이한 구동 중 하나 이상을 갖는 싱글-비트 셀들의 레이아웃들을 식별하는 단계는,
    설계 레이아웃에서 적어도 제1 싱글-비트 셀의 제1 인스턴스 및 제2 싱글-비트 셀의 제2 인스턴스를 식별하고, 상기 설계 레이아웃에서 상기 제1 인스턴스 및 상기 제2 인스턴스를 상기 폴리-비트 셀들 중 제1 폴리-비트 셀로 대체하는 단계를 더 포함하는, 방법.
  3. 제1항에 있어서,
    상기 싱글-비트 셀들의 상기 식별된 레이아웃들에 대한 이동-경계 레이아웃들을 생성하는 단계; 및
    상기 이동-경계 레이아웃들을 갖는 상기 싱글-비트 셀들 중 적어도 제1 싱글-비트 셀 및 제2 싱글-비트 셀에 대한 폴리-비트 셀을 생성하는 단계 - 상기 제1 싱글-비트 셀의 기능 또는 구동 중 적어도 하나는 상기 제2 싱글-비트 셀의 각각의 기능 또는 구동과 상이함 - 를 더 포함하는, 방법.
  4. 제3항에 있어서,
    접지 접속 및 전력 접속은 상기 싱글-비트 셀들 각각의 경계들을 정의하고, 상기 폴리-비트 셀을 생성하는 단계는,
    상기 싱글-비트 셀들 중 제1 싱글-비트 셀의 제1 전력 접속을 상기 싱글-비트 셀들 중 제2 싱글-비트 셀의 제2 전력 접속과 병합하는 단계; 및
    상기 제1 싱글-비트 셀의 제1 접지 접속을 상기 제2 싱글-비트 셀의 제2 접지 접속과 병합하는 단계를 포함하는, 방법.
  5. 제4항에 있어서,
    설계 레이아웃에서 적어도 상기 제1 싱글-비트 셀의 제1 인스턴스 및 상기 제2 싱글-비트 셀의 제2 인스턴스를 식별하는 것에 응답하여, 상기 설계 레이아웃에서 상기 제1 인스턴스 및 상기 제2 인스턴스를 상기 폴리-비트 셀의 인스턴스로 대체하는 단계를 더 포함하는, 방법.
  6. 제1항에 있어서,
    상기 폴리-비트 셀들의 레이아웃들을 생성하는 단계는, 설계 레이아웃에서 이용 임계값을 만족시키는 것에 기초하여 상기 결합가능한 레이아웃들의 서브세트에 대한 레이아웃들을 생성하는 단계를 포함하는, 방법.
  7. 제3항에 있어서,
    상기 이동-경계 레이아웃들 각각을 생성하는 단계는, 상기 싱글-비트 셀의 경계들로 이동가능한 접지 및 전력 접속들을 갖는 상기 싱글-비트 셀로부터 레이아웃을 생성하는 단계를 포함하는, 방법.
  8. 제1항에 있어서,
    상기 적어도 2개의 싱글-비트 셀은 제1 싱글-비트 셀 및 제2 싱글-비트 셀을 포함하고, 상기 제1 싱글-비트 셀의 제1 기능은 상기 제2 싱글-비트 셀의 제2 기능과 상이하고, 상기 제1 기능은 상기 제2 기능과 상이한 동작을 갖는, 방법.
  9. 제1항에 있어서,
    상기 적어도 2개의 싱글-비트 셀은 제1 싱글-비트 셀 및 제2 싱글-비트 셀을 포함하고, 상기 제1 싱글-비트 셀의 제1 기능은 상기 제2 싱글-비트 셀의 제2 기능과 상이하고, 상기 제1 기능은 상기 제2 기능과 상이한 구동 강도를 갖는, 방법.
  10. 제1항에 있어서,
    상기 적어도 2개의 싱글-비트 셀은 제1 싱글-비트 셀 및 제2 싱글-비트 셀을 포함하고, 상기 제1 싱글-비트 셀의 제1 기능은 상기 제2 싱글-비트 셀의 제2 기능과 상이하고, 상기 제1 기능은 상기 제2 기능과 상이한 구동 강도를 갖고, 상기 제1 기능은 상기 제2 기능과 상이한 동작을 갖는, 방법.
  11. 폴리-비트 셀로서,
    전력 접속;
    접지 접속;
    상기 전력 접속과 접지 접속 사이에 접속되고, 제1 구동 전력 및 제1 동작을 갖는 제1 기능; 및
    상기 전력 접속과 상기 접지 접속 사이에 접속되고, 제2 구동 전력 및 제2 동작을 갖는 제2 기능 - 상기 제2 기능은 구동 전력 또는 동작, 또는 구동 전력과 동작 둘 다에서 상기 제1 기능과 상이함 - 을 포함하는, 폴리-비트 셀.
  12. 제11항에 있어서,
    상기 제1 및 제2 기능들의 상기 구동 전력 및 상기 동작 둘 다가 상이한, 폴리-비트 셀.
  13. 제11항에 있어서,
    상기 제1 기능의 동작은 상기 제2 기능의 동작과 상이한, 폴리-비트 셀.
  14. 제11항에 있어서,
    상기 제1 기능의 구동 전력은 상기 제2 기능의 제2 구동 전력과 상이한, 폴리-비트 셀.
  15. 제11항에 있어서,
    상기 제1 기능은 레이아웃에서 제1 싱글-비트 셀로서 구현될 때 제1 접촉 폴리 피치(CPP) 폭을 점유하고, 상기 제2 기능은 상기 레이아웃에서 제2 싱글-비트 셀로서 구현될 때 제2 CPP 폭을 점유하고, 상기 폴리-비트 셀은 상기 제1 CPP 폭과 상기 제2 CPP 폭의 결합된 폭보다 작은 상기 레이아웃에서의 제3 CPP 폭을 점유하는, 폴리-비트 셀.
  16. 방법으로서,
    제1 구동 강도의 제1 기능을 포함하는 제1 싱글-비트 셀을 식별하는 단계;
    제2 구동 강도의 제2 기능을 포함하는 제2 싱글-비트 셀을 식별하는 단계; 및
    회로 레이아웃에서의 상기 제1 싱글-비트 셀 및 상기 제2 싱글-비트 셀을, 상기 제1 구동 강도로 설정된 상기 제1 기능 및 상기 제2 구동 강도로 설정된 상기 제2 기능을 포함하는 폴리-비트 셀로 대체하는 단계를 포함하는, 방법.
  17. 제16항에 있어서,
    상기 제1 기능은 상기 제2 기능의 제2 동작과는 상이한 제1 동작을 갖는, 방법.
  18. 제16항에 있어서,
    상기 제1 구동 강도는 상기 제2 구동 강도와 상이한, 방법.
  19. 제16항에 있어서,
    상기 제1 기능은 상기 제2 기능의 제2 동작과는 상이한 제1 동작을 갖고, 상기 제1 구동 강도는 상기 제2 구동 강도와 상이한, 방법.
  20. 제16항에 있어서,
    상기 제1 싱글-비트 셀의 출력과 상기 제2 싱글-비트 셀의 입력 사이의 외부 셀 트레이스를 식별하는 것에 응답하여, 상기 회로 레이아웃에서의 상기 외부 트레이스를 상기 폴리-비트 셀 내에 있는 상기 출력과 상기 입력 사이의 내부 트레이스로 대체하는 단계를 더 포함하는, 방법.
KR1020237018020A 2020-11-30 2021-11-30 폴리-비트 셀들 KR20230109649A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063119489P 2020-11-30 2020-11-30
US63/119,489 2020-11-30
PCT/US2021/061132 WO2022115757A1 (en) 2020-11-30 2021-11-30 Poly-bit cells

Publications (1)

Publication Number Publication Date
KR20230109649A true KR20230109649A (ko) 2023-07-20

Family

ID=79092987

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237018020A KR20230109649A (ko) 2020-11-30 2021-11-30 폴리-비트 셀들

Country Status (5)

Country Link
US (1) US20220171912A1 (ko)
KR (1) KR20230109649A (ko)
CN (1) CN116569336A (ko)
TW (1) TW202240455A (ko)
WO (1) WO2022115757A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017127276A1 (de) * 2017-08-30 2019-02-28 Taiwan Semiconductor Manufacturing Co., Ltd. Standardzellen und abwandlungen davon innerhalb einer standardzellenbibliothek

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223330B1 (en) * 1999-08-24 2001-04-24 Ess Technology, Inc. System and method for designing integrated circuits using cells with multiple unrelated outputs
US8266561B2 (en) * 2007-09-21 2012-09-11 Broadcom Corporation Systems and techniques for developing high-speed standard cell libraries
US9361417B2 (en) * 2014-02-07 2016-06-07 Synopsys, Inc. Placement of single-bit and multi-bit flip-flops
US9779197B1 (en) * 2015-02-13 2017-10-03 Microsemi Solutions (U.S.), Inc. Method and system of merging memory cells into multi-bit registers in an integrated circuit layout
US10157253B2 (en) * 2016-10-17 2018-12-18 Synopsys, Inc. Multi-bit-mapping aware clock gating
US10579771B2 (en) * 2017-06-14 2020-03-03 Samsung Electronics Co., Ltd. Integrated circuit including standard cells overlapping each other and method of generating layout of the integrated circuit
US10650112B1 (en) * 2017-12-21 2020-05-12 Apple Inc. Multi-bit clock gating cell to reduce clock power
US10990745B2 (en) * 2018-09-20 2021-04-27 Taiwan Semiconductor Manufacturing Company Ltd. Integrated circuit and method of forming same and a system
US11095272B2 (en) * 2018-09-21 2021-08-17 Taiwan Semiconductor Manufacturing Company, Ltd. Flip-flop cell
US11847396B1 (en) * 2020-08-05 2023-12-19 Synopsys, Inc. Integrated circuit design using multi-bit combinational cells

Also Published As

Publication number Publication date
TW202240455A (zh) 2022-10-16
WO2022115757A1 (en) 2022-06-02
CN116569336A (zh) 2023-08-08
US20220171912A1 (en) 2022-06-02

Similar Documents

Publication Publication Date Title
US20220085018A1 (en) Mixed diffusion break for cell design
US20220171912A1 (en) Poly-bit cells
US20230274064A1 (en) On-the-fly multi-bit flip flop generation
Lanius et al. Automatic Generation of Structured Macros Using Standard Cells‒Application to CIM
US11790150B2 (en) Placement and simulation of cell in proximity to cell with diffusion break
US11836433B2 (en) Memory instance reconfiguration using super leaf cells
US12032894B2 (en) System and method for synchronizing net text across hierarchical levels
US11893332B2 (en) Global mistracking analysis in integrated circuit design
US11847396B1 (en) Integrated circuit design using multi-bit combinational cells
US11531797B1 (en) Vector generation for maximum instantaneous peak power
US11159163B2 (en) Single phase clock-gating circuit
US11416661B2 (en) Automatic derivation of integrated circuit cell mapping rules in an engineering change order flow
US11328109B2 (en) Refining multi-bit flip flops mapping without explicit de-banking and re-banking
US11231462B1 (en) Augmenting an integrated circuit (IC) design simulation model to improve performance during verification
US11300614B1 (en) Save and restore register
US11836000B1 (en) Automatic global clock tree synthesis
US11799480B1 (en) Scalable supply multiplexer circuit
Singh et al. Register-Transfer-Level Design for Application-Specific Integrated Circuits
US20230022615A1 (en) Boundary cell having a common semiconductor type for library cell
US11972191B2 (en) System and method for providing enhanced net pruning
US20240062810A1 (en) Memory clock level-shifting buffer with extended range
US11868696B2 (en) Lightweight unified power format implementation for emulation and prototyping
US20240143878A1 (en) Delay calculation with pattern matching for static timing analysis
US20230306180A1 (en) Static timing analysis of multi-die three-dimensional integrated circuits
WO2022256955A1 (en) Metal-insulator-metal capacitor insertion