[go: up one dir, main page]

KR20180028252A - 집적 회로 설계 시스템 및 집적 회로의 제조 방법 - Google Patents

집적 회로 설계 시스템 및 집적 회로의 제조 방법 Download PDF

Info

Publication number
KR20180028252A
KR20180028252A KR1020160115714A KR20160115714A KR20180028252A KR 20180028252 A KR20180028252 A KR 20180028252A KR 1020160115714 A KR1020160115714 A KR 1020160115714A KR 20160115714 A KR20160115714 A KR 20160115714A KR 20180028252 A KR20180028252 A KR 20180028252A
Authority
KR
South Korea
Prior art keywords
pin
pins
reordering
cells
integrated circuit
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
KR1020160115714A
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 삼성전자주식회사
Priority to KR1020160115714A priority Critical patent/KR20180028252A/ko
Priority to US15/477,182 priority patent/US10424518B2/en
Publication of KR20180028252A publication Critical patent/KR20180028252A/ko
Pending legal-status Critical Current

Links

Images

Classifications

    • H01L27/0207
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10DINORGANIC ELECTRIC SEMICONDUCTOR DEVICES
    • H10D89/00Aspects of integrated devices not covered by groups H10D84/00 - H10D88/00
    • H10D89/10Integrated device layouts
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L22/00Testing or measuring during manufacture or treatment; Reliability measurements, i.e. testing of parts without further processing to modify the parts as such; Structural arrangements therefor
    • H01L22/20Sequence of activities consisting of a plurality of measurements, corrections, marking or sorting steps
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03FPHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
    • G03F7/00Photomechanical, e.g. photolithographic, production of textured or patterned surfaces, e.g. printing surfaces; Materials therefor, e.g. comprising photoresists; Apparatus specially adapted therefor
    • G03F7/70Microphotolithographic exposure; Apparatus therefor
    • G03F7/70483Information management; Active and passive control; Testing; Wafer monitoring, e.g. pattern monitoring
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03FPHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
    • G03F7/00Photomechanical, e.g. photolithographic, production of textured or patterned surfaces, e.g. printing surfaces; Materials therefor, e.g. comprising photoresists; Apparatus specially adapted therefor
    • G03F7/70Microphotolithographic exposure; Apparatus therefor
    • G03F7/70483Information management; Active and passive control; Testing; Wafer monitoring, e.g. pattern monitoring
    • G03F7/70605Workpiece metrology
    • G03F7/70616Monitoring the printed patterns
    • G06F17/5077
    • 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/394Routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • G06F30/3947Routing global
    • 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/396Clock trees
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/02Manufacture or treatment of semiconductor devices or of parts thereof
    • H01L21/02002Preparing wafers
    • H01L21/02005Preparing bulk and homogeneous wafers
    • H01L21/02035Shaping
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L23/00Details of semiconductor or other solid state devices
    • H01L23/52Arrangements for conducting electric current within the device in operation from one component to another, i.e. interconnections, e.g. wires, lead frames
    • H01L23/522Arrangements for conducting electric current within the device in operation from one component to another, i.e. interconnections, e.g. wires, lead frames including external interconnections consisting of a multilayer structure of conductive and insulating layers inseparably formed on the semiconductor body
    • H01L23/5226Via connections in a multilevel interconnection structure
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L23/00Details of semiconductor or other solid state devices
    • H01L23/52Arrangements for conducting electric current within the device in operation from one component to another, i.e. interconnections, e.g. wires, lead frames
    • H01L23/522Arrangements for conducting electric current within the device in operation from one component to another, i.e. interconnections, e.g. wires, lead frames including external interconnections consisting of a multilayer structure of conductive and insulating layers inseparably formed on the semiconductor body
    • H01L23/525Arrangements for conducting electric current within the device in operation from one component to another, i.e. interconnections, e.g. wires, lead frames including external interconnections consisting of a multilayer structure of conductive and insulating layers inseparably formed on the semiconductor body with adaptable interconnections
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10DINORGANIC ELECTRIC SEMICONDUCTOR DEVICES
    • H10D84/00Integrated devices formed in or on semiconductor substrates that comprise only semiconducting layers, e.g. on Si wafers or on GaAs-on-Si wafers
    • H10D84/90Masterslice integrated circuits
    • H10D84/903Masterslice integrated circuits comprising field effect technology
    • H10D84/907CMOS gate arrays
    • H10D84/968Macro-architecture
    • H10D84/974Layout specifications, i.e. inner core regions
    • H10D84/975Wiring regions or routing
    • H01L2027/11875

Landscapes

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

Abstract

본 개시의 기술적 사상에 따른 적어도 부분적으로 프로세서에 의해 수행되는, 집적 회로의 제조 방법은 집적 회로를 정의하는 입력 데이터에 따라 셀들을 배치하고, 셀들의 배치에 따른 셀들 내의 복수의 핀들의 물리적 정보를 기초로 셀들 중 적어도 하나의 셀 내의 핀들에 대하여 핀 리오더링(pin reordering)을 수행하며, 핀 리오더링 이후에 셀들을 라우팅하고, 라우팅에 의해 생성된 레이아웃을 기초로 집적 회로를 제조한다.

Description

집적 회로 설계 시스템 및 집적 회로의 제조 방법{Integrated Circuit Designing System and Method of Manufacturing Integrated Circuit}
본 개시의 기술적 사상은 집적 회로에 관한 것이며, 더욱 상세하게는, 집적 회로의 설계 시스템, 집적 회로의 설계를 위한 컴퓨터 구현 방법, 및 집적 회로의 제조 방법에 관한 것이다.
고성능 칩에 대한 수요의 증가 및 반도체 공정의 미세화에 의해, 셀 내의 핀 밀집도(pin density)가 높아지고 디자인 룰이 증가하게 된다. 또한, 미세 공정에서 DPT(Double Pattering Technology), TPT(Triple Patterning Technology) 등과 같은 멀티 패터닝 기술이 사용되는 경우, 셀의 일부 핀 주변에 국부적인 혼잡(local congestion)이 발생하게 된다. 이에 따라, 라우팅 복잡도(routing congestion)를 감소시키기 위한 방법이 요구된다.
본 개시의 기술적 사상은 라우팅 복잡도를 감소시킬 수 있는 집적 회로의 설계 방법, 집적 회로의 제조 방법 및 집적 회로의 설계 시스템을 제공한다.
본 개시의 기술적 사상에 따른 적어도 부분적으로 프로세서에 의해 수행되는, 집적 회로의 제조 방법은 상기 집적 회로를 정의하는 입력 데이터에 따라 셀들을 배치하는 단계, 상기 셀들의 배치에 따른 상기 셀들 내의 복수의 핀들의 물리적 정보를 기초로, 상기 셀들 중 적어도 하나의 셀 내의 핀들에 대하여 핀 리오더링(pin reordering)을 수행하는 단계, 상기 핀 리오더링을 수행하는 단계 이후에, 상기 셀들을 라우팅하는 단계, 및 상기 라우팅에 의해 생성된 레이아웃을 기초로 상기 집적 회로를 제조하는 단계를 포함한다.
또한, 본 개시의 기술적 사상에 따른 집적 회로 설계 시스템은 프로세서, 및 상기 프로세서와 연결되고, 집적 회로의 설계를 위한 배치 및 배선 동작을 수행하기 위한 명령어들을 저장하는 메모리를 포함하고, 상기 명령어들은, 상기 프로세서로 하여금, 상기 집적 회로를 정의하는 셀들을 배치하고, 상기 셀들의 배치에 따른 상기 셀들 내의 복수의 핀들의 물리적 정보를 기초로 상기 셀들 중 적어도 하나의 셀 내의 핀들에 대해 핀 리오더링을 수행하며, 상기 핀 리오더링이 수행된 셀들을 라우팅하도록 구성된다.
본 개시의 기술적 사상에 따르면, 셀들의 배치에 따른 핀들의 물리적 정보를 기초로 핀 리오더링을 수행할 수 있고, 이에 따라, 라우팅 복잡도를 감소시킬 수 있다. 따라서, 디자인 룰 체크(Design Rule Check) 단계에서 디자인 룰 위반을 감소시키고, 타이밍 QoR(Quality of Result)을 향상시킬 수 있으며, 설계에 소요되는 시간을 전체적으로 감소시킬 수 있다.
도 1은 본 개시의 일 실시예에 따른 집적 회로의 제조 방법을 나타내는 흐름도이다.
도 2는 본 개시의 일 실시예에 따른 핀 리오더링 동작의 일 예를 나타낸다.
도 3은 도 2의 제1 셀의 일 예를 나타낸다.
도 4는 도 2의 제1 셀의 다른 예를 나타낸다.
도 5는 본 개시의 일 실시예에 따른 핀 리오더링 동작의 다른 예를 나타낸다.
도 6은 도 5의 제1 셀의 일 예를 나타낸다.
도 7은 본 개시의 일 실시예들에 따른 집적 회로 설계 시스템을 나타낸다.
도 8은 본 개시의 일 실시예들에 따른 집적 회로 설계 시스템을 나타낸다.
도 9는 본 개시의 일 실시예에 따른 집적 회로의 설계 방법을 나타내는 흐름도이다.
도 10은 본 개시의 일 실시예에 따른 핀 리오더링 방법을 나타내는 흐름도이다.
도 11은 본 개시의 일 실시예에 따른 라우팅 복잡도의 예측 방법을 나타내는 흐름도이다.
도 12는 본 개시의 일 실시예에 따른 레이아웃을 나타낸다.
도 13 내지 도 15는 본 개시의 일 실시예에 따른 핀 리오더링 동작의 다양한 예들을 나타낸다.
도 16a 및 도 16b는 본 개시의 일 실시예에 따른 집적 회로에 포함되는 표준 셀을 나타내는 제1 및 제2 레이아웃들이다.
도 17은 본 개시의 일 실시예에 따른 저장 매체를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시예에 대해 상세히 설명한다. 도면 상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고, 이에 대한 중복된 설명은 생략한다.
도 1은 본 개시의 일 실시예에 따른 집적 회로의 제조 방법을 나타내는 흐름도이다.
도 1을 참조하면, 본 실시예에 따른 집적 회로의 제조 방법은 집적 회로의 설계(S10) 및 집적 회로의 제조 공정(S20)으로 구분될 수 있다. 집적 회로의 설계(S10)는 단계 S110 내지 S130을 포함하고, 집적 회로에 대한 레이아웃을 디자인하는 단계로서, 집적 회로를 설계하기 위한 툴을 이용하여 수행될 수 있다. 이때, 집적 회로를 설계하기 위한 툴은 프로세서에 의해 수행되는 복수의 명령어들을 포함하는 프로그램일 수 있다. 이에 따라, 집적 회로의 설계(S10)는 집적 회로의 설계를 위한 컴퓨터 구현(computer implemented) 방법이라고 지칭할 수 있다. 한편, 집적 회로의 제조 공정(S20)은 디자인된 레이아웃을 기초로 집적 회로에 따른 반도체 장치를 제조하는 단계로서, 반도체 공정 모듈에서 수행될 수 있다.
집적 회로는 복수의 셀들로서 정의될 수 있고, 구체적으로, 복수의 셀들의 특성 정보를 포함하는 셀 라이브러리를 이용하여 설계될 수 있다. 셀 라이브러리에는 셀의 명칭, 치수, 게이트 폭, 핀(pin), 딜레이(delay) 특성, 누설 전류, 임계 전압, 기능 등이 정의될 수 있다. 본 개시의 실시예들에서, 셀 라이브러리는 표준 셀 라이브러리일 수 있다. 표준 셀 라이브러리는 복수의 표준 셀들의 레이아웃 정보 및 타이밍 정보 등과 같은 정보를 포함할 수 있고, 컴퓨터로 읽을 수 있는 저장매체에 저장될 수 있다.
단계 S110에서, 집적 회로를 정의하는 표준 셀들을 배치한다. 예를 들어, 단계 S110은 배치 및 배선(placement and routing, 이하 'P&R') 툴을 이용하여 프로세서에 의해 수행될 수 있다. 먼저, 집적 회로를 정의하는 입력 데이터를 수신한다. 여기서, 입력 데이터는 집적 회로의 동작(behavior)에 대한 추상적 형태, 예컨대 RTL(Register Transfer Level)에서 정의된 데이터로부터, 표준 셀 라이브러리를 이용하여 합성(synthesis)에 의해서 생성된 데이터일 수 있다. 예를 들면, 입력 데이터는 VHDL(VHSIC Hardware Description Language) 및 Verilog와 같은 HDL(Hardware Description Language)로서 정의된 집적 회로가 합성됨으로써 생성된 비트스트림(bitstream) 또는 네트리스트(netlist)일 수 있다. 이어서, 표준 셀 라이브러리를 저장하는 저장 매체를 액세스하고, 표준 셀 라이브러리에 저장된 복수의 표준 셀들 중 입력 데이터에 따라 선택된 표준 셀들을 배치한다.
단계 S120에서, 표준 셀들의 배치에 따른 물리적 정보를 기초로, 배치된 표준 셀들 중 적어도 하나의 표준 셀 내의 핀들에 대해 핀 리오더링(pin reordering)을 수행한다. 여기서, '핀 리오더링'은 기능적으로 등가인(functionally equivalent) 또는 논리적으로(logically) 등가인 적어도 두 개의 핀들을 리오더링하는 동작이다. 구체적으로, 핀 A 및 핀 B로 각각 오더링된 제1 및 제2 핀들은, 핀 리오더링에 의해 핀 B 및 핀 A로 각각 리오더링될 수 있다. 이와 같이, 핀 리오더링에 의해 두 개의 핀들에 대한 연결들이 스왑핑될 수 있으므로, 핀 리오더링은 '핀 스왑핑(pin swapping)'이라고 지칭될 수도 있다.
본 실시예에서, 핀 리오더링은 표준 셀들의 배치에 따른 물리적 정보를 기초로 수행될 수 있는데, 여기서, 물리적 정보는 배치된 표준 셀들 내의 복수의 핀들의 물리적 정보일 수 있다. 일 실시예에서, 물리적 정보는 복수의 핀들의 위치들을 포함할 수 있다. 일 실시예에서, 물리적 정보는 복수의 핀들 사이의 간격들을 포함할 수 있다. 핀 리오더링 동작에 대한 상세한 설명은 도 2 내지 도 6을 참조하여 후술하기로 한다.
단계 S130에서, 핀 리오더링이 완료된 표준 셀들을 라우팅한다. 구체적으로, 배치된 표준 셀들에 포함된 복수의 네트들을 라우팅한다. 여기서, 네트는 집적 회로의 등가 회로도에서 등전위를 나타낸다. 하나의 네트는 집적 회로의 레이아웃에서 하나의 상호연결(interconnection)에 대응할 수 있고, 하나의 상호연결은 서로 전기적으로 연결된 복수의 배선층들 및 비아들을 포함하는 배선 구조에 대응할 수 있다. 각 배선층은 복수의 도전 패턴들을 포함할 수 있고, 상이한 레벨의 배선층들에 형성된 도전 패턴들은, 전도성 물질로 구성된 비아를 통해서 서로 전기적으로 연결될 수 있다. 배선층은 전도성 물질로서 금속을 포함하는 것으로 설명될 수 있고, 금속층으로 지칭될 수 있다. 그러나, 본 개시의 일부 실시예들에서, 배선층들은 금속이 아닌 전도성 물질을 포함할 수도 있다.
단계 S130 이후, 집적 회로를 정의하는 출력 데이터를 반도체 공정 모듈에 제공할 수 있다. 여기서, 출력 데이터는 표준 셀들의 모든 레이아웃 정보, 즉, 모든 레이어들에서 패턴 정보를 포함하는 형식, 예를 들어, GDS(Graphic Design System)II 형식을 가질 수 있다. 또는, 출력 데이터는 표준 셀의 핀과 같이 표준 셀의 외부 정보를 포함하는 형식, 예컨대 LEF 형식 또는 Milkyway 형식을 가질 수도 있다.
집적 회로의 설계(S10)는 상술한 단계 S110 내지 S130을 포함할 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 표준 셀 라이브러리의 생성, 표준 셀 라이브러리의 수정, 레이아웃의 검증 등과 같은 일반적인 집적 회로의 설계 방법에 따른 다양한 단계들을 더 포함할 수 있다. 또한, 단계 S110 내지 S130은 집적 회로의 설계 과정 중 백엔드(back-end) 설계 과정에 대응할 수 있고, 단계 S110 이전에 프론트 엔드(front-end) 설계 과정이 수행될 수 있다. 프론트 엔드 설계 과정은 설계 사양의 결정, 행위 수준 모델링 및 검증, RTL 설계, 기능 검증, 논리 합성, 게이트 수준의 검증(또는 프리-레이아웃 시뮬레이션) 등을 포함할 수 있다.
단계 S140에서, 레이아웃을 기초로 마스크를 생성한다. 구체적으로, 먼저 레이아웃을 기초로 OPC(Optical Proximity Correction)를 수행할 수 있는데, OPC는 광 근접 효과에 따른 오차를 반영하여 레이아웃을 변경하는 공정을 말한다. 이어서, OPC 수행 결과에 따라 변경된 레이아웃에 따라 마스크를 제조할 수 있다. 이때, OPC를 반영한 레이아웃, 예컨대, OPC가 반영된 GDS를 이용하여 마스크를 제조할 수 있다.
단계 S150에서, 마스크를 이용하여 집적 회로를 제조한다. 구체적으로, 마스크를 이용하여 웨이퍼 등과 같은 반도체 기판 상에 다양한 반도체 공정을 진행하여 집적 회로가 구현된 반도체 장치를 형성한다. 예를 들어, 마스크를 이용하는 공정은 리소그라피(lithography) 공정을 통한 패터닝 공정을 의미할 수 있다. 이러한 패터닝 공정을 통해 반도체 기판이나 물질층 상에 원하는 패턴을 형성할 수 있다. 한편, 반도체 공정은 증착 공정, 식각 공정, 이온 공정, 세정 공정 등을 포함할 수 있다. 또한, 반도체 공정은 반도체 소자를 PCB 상에 실장하고 밀봉재로 밀봉하는 패키징 공정을 포함할 수도 있고, 반도체 소자나 패키지에 대해 테스트를 하는 테스트 공정을 포함할 수도 있다.
도 2는 본 개시의 일 실시예에 따른 핀 리오더링 동작의 일 예를 나타낸다.
도 2를 참조하면, 제1 레이아웃(100)은 핀 리오더링 수행 전의 레이아웃으로서, 예를 들어, 도 1의 단계 S110에 의해 생성될 수 있고, 글로벌 라우팅에 따른 핀 연결 구조를 가질 수 있다. 한편, 제2 레이아웃(100')은 핀 리오더링 수행 후의 레이아웃으로서, 예를 들어, 도 1의 단계 S120에 의해 생성될 수 있고, 핀 리오더링에 의한 신규 라우팅에 따른 핀 연결 구조를 가질 수 있다. 본 실시예에 따르면, 제1 레이아웃(100)에서 제1 및 제2 핀들(111, 112)은 핀 A, 핀 B로 오더링되고, 제2 레이아웃(100')에서 제1 및 제2 핀들(111, 112)은 핀 B, 핀 A로 리오더링될 수 있다.
제1 레이아웃(100)은 배치된 제1 내지 제5 셀들(110 내지 150)을 포함하고, 제1 셀(110)은 핀들(111, 112)을 포함하며, 제2 셀(120)은 핀(P11)을 포함하고, 제3 셀(130)은 핀(P12)을 포함할 수 있다. 제1 내지 제5 셀들(110 내지 150)의 배치에 따라, 제1 내지 제5 셀들(110 내지 150)의 위치 및 복수의 핀들(111, 112, P11, P12)의 위치가 결정될 수 있고, 이에 따라, 복수의 핀들(111, 112, P11, P12)의 물리적 정보가 획득될 수 있다.
본 실시예에서, 제1 셀(110)의 핀들(111, 112)은 논리적으로 등가인 입력 핀들일 수 있고, 핀 A 및 핀 B로 각각 오더링될 수 있다. 이하에서는, 제1 셀(110)의 핀들(111, 112)을 제1 및 제2 입력 핀들(111, 112)이라고 지칭하기로 한다. 제1 및 제2 입력 핀들(111, 112)은 게이트 입력 핀들일 수 있고, 이에 따라, 제1 및 제2 입력 핀들(111, 112)에 각각 연결되는 핀들(P11, P12)을 제1 및 제2 팬인(fan-in) 핀들(P11, P12)이라고 지칭하기로 한다. 그러나, 본 발명은 입력 핀들에 대한 핀 리오더링 동작에 한정되지 않으며, 다른 실시예에서, 핀 리오더링 동작은 논리적으로 등가인 임의의 복수의 핀들에 대해 수행될 수 있다. 또한, 본 발명에 따른 핀 리오더링 동작은 한 쌍의 핀들에 한정되지 않으며, 두 개 이상의 복수의 핀들에 대해 적용될 수 있다.
일 실시예에서, 물리적 정보는 제1 입력 핀(111)과 제1 팬인 핀(P11) 사이의 간격(S1), 제2 입력 핀(112)과 제2 팬인 핀(P12) 사이의 간격(S2), 제2 입력 핀(112)과 제1 팬인 핀(P11) 사이의 간격(S1'), 및 제1 입력 핀(111)과 제2 팬인 핀(P12) 사이의 간격(S2')을 포함할 수 있다. 이때, 간격들(S1, S2, S1', S2')은 제1 방향(예를 들어, X 방향)에 따른 간격으로서, 수평 간격(horizontal space)이라고 지칭할 수 있다. 예를 들어, 제1 방향은 제1 내지 제5 셀들(110 내지 150) 내의 파워 레일들(power rails)의 연장 방향과 동일할 수 있다.
본 실시예에 따르면, 핀들의 물리적 정보를 기초로 핀 리오더링의 수행에 따른 라우팅 복잡도의 감소 여부를 예측할 수 있고, 예측 결과에 따라 핀 리오더링 여부를 결정할 수 있다. 구체적으로, 제1 및 제2 입력 핀들(111, 112)에 대한 핀 리오더링을 수행할 경우에 제1 및 제2 입력 핀들(111, 112)에 연결되는 배선들의 길이의 합이, 제1 및 제2 입력 핀들(111, 112)에 대한 핀 리오더링을 수행하지 않을 경우에 제1 및 제2 입력 핀들(111, 112)에 연결되는 배선들의 길이의 합보다 작으면, 핀 리오더링에 의해 라우팅 복잡도가 감소할 것으로 예측할 수 있다. 따라서, 이 경우에는 제1 및 제2 입력 핀들(111, 112)을 핀 B 및 핀 A로 각각 리오더링하여 제2 레이아웃(100')을 생성하고, 제2 레이아웃(100')을 도 1의 단계 S130에 제공할 수 있다.
도 3는 도 2의 제1 셀(110)의 일 예(110a)를 나타낸다.
도 3을 참조하면, 제1 셀(110a)은 제1 및 제2 AND 게이트들(31, 32) 및 NOR 게이트(33)를 포함하는 AOI22 셀일 수 있다. 제1 셀(110a)은 제1 내지 제4 입력 핀들(A, B, C, D)를 포함하고, 제1 내지 제4 입력 핀들(A, B, C, D)은 각각 제1 내지 제4 팬인 핀들(P11, P12, P13, P14)에 연결될 수 있다. 또한, 제1 셀(110a)은 출력 핀(OUT)을 포함하고, 출력 핀(OUT)은 팬아웃(fan-out) 핀(P15)에 연결될 수 있다.
본 실시예에 따르면, 제1 및 제2 입력 핀들(A, B)은 논리적으로 등가이므로, 제1 및 제2 입력 핀들(A, B)은 핀 리오더링 대상 핀들에 해당할 수 있고, 제1 셀(110a)은 핀 리오더링 대상 셀에 해당할 수 있다. 일 실시예에서, 제1 및 제2 입력 핀들(A, B)에 각각 연결된 제1 및 제2 네트들(n1, n2)의 길이 정보를 기초로, 제1 및 제2 입력 핀들(A, B)에 대해 핀 리오더링의 수행 여부를 결정할 수 있다. 예를 들어, 제1 및 제2 입력 핀들(A, B)을 도 2에 예시된 바와 같이 리오더링함으로써 라우팅 복잡도를 감소시킬 수 있다. 이에 따라, 제1 및 제2 네트들(n1, n2) 각각의 길이가 짧아질 수 있고, 이로써, 신호 지연을 감소시킬 수 있다.
또한, 본 실시예에 따르면, 제3 및 제4 입력 핀들(C, D)은 논리적으로 등가이므로, 제3 및 제4 입력 핀들(C, D)은 핀 리오더링 대상 핀들에 해당할 수 있고, 제1 셀(110a)은 핀 리오더링 대상 셀에 해당할 수 있다. 일 실시예에서, 제3 및 제4 입력 핀들(C, D)에 각각 연결된 제3 및 제4 네트들(n3, n4)의 길이 정보를 기초로, 제3 및 제4 입력 핀들(C, D)에 대해 핀 리오더링의 수행 여부를 결정할 수 있다. 예를 들어, 제3 및 제4 입력 핀들(C, D)을 도 2에 예시된 바와 같이 리오더링함으로써 라우팅 복잡도를 감소시킬 수 있다. 이에 따라, 제3 및 제4 네트들(n3, n4) 각각의 길이가 짧아질 수 있고, 이로써, 신호 지연을 감소시킬 수 있다.
도 4는 도 2의 제1 셀(110)의 다른 예(110b)를 나타낸다.
도 4를 참조하면, 제1 셀(110b)은 제1 및 제2 OR 게이트들(41, 42) 및 NAND 게이트(43)를 포함하는 OAI22 셀일 수 있다. 제1 셀(110b)은 제1 내지 제4 입력 핀들(A, B, C, D)를 포함하고, 제1 내지 제4 입력 핀들(A, B, C, D)은 각각 제1 내지 제4 팬인 핀들(P11, P12, P13, P14)에 연결될 수 있다. 또한, 제1 셀(110a)은 출력 핀(OUT)을 포함하고, 출력 핀(OUT)은 팬아웃 핀(P15)에 연결될 수 있다.
본 실시예에 따르면, 제1 및 제2 입력 핀들(A, B)은 논리적으로 등가이므로, 제1 및 제2 입력 핀들(A, B)은 핀 리오더링 대상 핀들에 해당할 수 있고, 제1 셀(110b)은 핀 리오더링 대상 셀에 해당할 수 있다. 일 실시예에서, 제1 및 제2 입력 핀들(A, B)에 각각 연결된 제1 및 제2 네트들(n1, n2)의 길이 정보를 기초로, 제1 및 제2 입력 핀들(A, B)에 대해 핀 리오더링의 수행 여부를 결정할 수 있다.
또한, 본 실시예에 따르면, 제3 및 제4 입력 핀들(C, D)은 논리적으로 등가이므로, 제3 및 제4 입력 핀들(C, D)은 핀 리오더링 대상 핀들에 해당할 수 있고, 제1 셀(110b)은 핀 리오더링 대상 셀에 해당할 수 있다. 일 실시예에서, 제3 및 제4 입력 핀들(C, D)에 각각 연결된 제3 및 제4 네트들(n3, n4)의 길이 정보를 기초로, 제3 및 제4 입력 핀들(C, D)에 대해 핀 리오더링의 수행 여부를 결정할 수 있다.
도 5는 본 개시의 일 실시예에 따른 핀 리오더링 동작의 다른 예를 나타낸다.
도 5를 참조하면, 제1 레이아웃(200)은 핀 리오더링 수행 전의 레이아웃으로서, 예를 들어, 도 1의 단계 S110에 의해 생성될 수 있고, 글로벌 라우팅에 의한 핀 연결 구조를 가질 수 있다. 한편, 제2 레이아웃(200')은 핀 리오더링 수행 후의 레이아웃으로서, 예를 들어, 도 1의 단계 S120에 의해 생성될 수 있고, 핀 리오더링에 의한 신규 라우팅에 따른 핀 연결 구조를 가질 수 있다. 본 실시예에 따르면, 제1 레이아웃(200)에서 제1 내지 제3 핀들(211 내지 213)은 각각 핀 A, 핀 B 및 핀 C로 오더링되고, 제2 레이아웃(200')에서 제1 및 제3 핀들(211, 213)은 핀 C 및 핀 A로 리오더링될 수 있다.
제1 레이아웃(200)은 배치된 제1 내지 제4 셀들(210 내지 240)을 포함하고, 제1 셀(210)은 핀들(211 내지 213)을 포함하며, 제2 셀(220)은 핀(P21)을 포함하고, 제3 셀(230)은 핀(P22)을 포함하고, 제4 셀(P240)은 핀(P23)을 포함할 수 있다. 제1 내지 제4 셀들(210 내지 240)의 배치에 따라, 제1 내지 제4 셀들(210 내지 240)의 위치 및 복수의 핀들(211 내지 213, P21 내지 P23)의 위치가 결정될 수 있고, 이에 따라, 복수의 핀들(211 내지 213, P21 내지 P23)의 물리적 정보가 획득될 수 있다.
본 실시예에서, 제1 셀(210)의 핀들(211 내지 213)은 논리적으로 등가인 입력 핀들일 수 있다. 이와 같이, 제1 셀(210)은 세 개의 입력 핀들을 포함할 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 실시예에 따라 제1 셀(210)은 네 개 이상의 입력 핀들을 포함할 수도 있다. 이하에서는, 제1 셀(210)의 핀들(211 내지 213)을 제1 내지 제3 입력 핀들(211 내지 213)이라고 지칭하기로 한다. 제1 내지 제3 입력 핀들(211 내지 213)은 게이트 입력 핀들일 수 있고, 이에 따라, 제1 내지 제3 입력 핀들(211 내지 213)에 각각 연결되는 핀들(P21 내지 P23)을 제1 내지 제3 팬인 핀들(P21 내지 P23)이라고 지칭하기로 한다.
일 실시예에서, 물리적 정보는 제1 입력 핀(211)과 제1 팬인 핀(P21) 사이의 간격(S1), 제3 입력 핀(213)과 제3 팬인 핀(P23) 사이의 간격(S2), 제3 입력 핀(213)과 제1 팬인 핀(P21) 사이의 간격(S1'), 및 제1 입력 핀(111)과 제3 팬인 핀(P23) 사이의 간격(S2')을 포함할 수 있다. 이때, 간격들(S1, S2, S1', S2')은 제1 방향(예를 들어, X 방향)에 따른 간격으로서, 수평 간격이라고 지칭할 수 있다.
본 실시예에 따르면, 물리적 정보를 기초로 핀 리오더링의 수행에 따른 라우팅 복잡도의 감소 여부를 예측할 수 있고, 예측 결과에 따라 핀 리오더링 여부를 결정할 수 있다. 구체적으로, 제1 내지 제3 입력 핀들(211 내지 213)에 대한 핀 리오더링을 수행할 경우에 제1 내지 제3 입력 핀들(211 내지 213)에 연결되는 배선들의 길이의 합이, 제1 내지 제3 입력 핀들(211 내지 213)에 대한 핀 리오더링을 수행하지 않을 경우에 제1 내지 제3 입력 핀들(211 내지 213)에 연결되는 배선들의 길이의 합보다 작으면, 핀 리오더링에 의해 라우팅 복잡도가 감소할 것으로 예측할 수 있다. 따라서, 이 경우에는 제1 및 제3 입력 핀들(211, 213)에 대해 핀 리오더링을 수행하여 제2 레이아웃(200')을 생성하고, 제2 레이아웃(200')을 도 1의 단계 S130에 제공할 수 있다.
도 6은 도 5의 제1 셀(210)의 일 예(210a)를 나타낸다.
도 6을 참조하면, 제1 셀(210a)은 3-입력(3-input) AND 게이트(61)를 포함하는 셀일 수 있다. 제1 셀(210a)은 제1 내지 제3 입력 핀들(A, B, C)을 포함하고, 제1 내지 제3 입력 핀들(A, B, C)은 각각 제1 내지 제3 팬인 핀들(P21, P22, P23)에 연결될 수 있다. 또한, 제1 셀(210a)은 출력 핀(OUT)을 포함하고, 출력 핀(OUT)은 팬아웃 핀(P24)에 연결될 수 있다.
본 실시예에 따르면, 제1 내지 제3 입력 핀들(A, B, C)은 논리적으로 등가이므로, 제1 내지 제3 입력 핀들(A, B, C)은 핀 리오더링 대상 핀들에 해당할 수 있고, 제1 셀(210a)은 핀 리오더링 대상 셀에 해당할 수 있다. 일 실시예에서, 제1 내지 제3 입력 핀들(A, B, C)에 각각 연결된 제1 내지 제3 네트들(n1, n2, n3)의 길이 정보를 기초로, 제1 내지 제3 입력 핀들(A, B, C)에 대해 핀 리오더링의 수행 여부를 결정할 수 있다. 예를 들어, 도 5에 예시된 바와 같이, 제1 및 제3 입력 핀들(A, C)을 리오더링함으로써 라우팅 복잡도를 감소시킬 수 있다. 이에 따라, 제1 및 제3 네트들(n1, n3) 각각의 길이가 짧아질 수 있고, 이로써, 신호 지연을 감소시킬 수 있다.
도 7은 본 개시의 일 실시예에 따른 집적 회로 설계 시스템(10)을 나타낸다.
도 7을 참조하면, 집적 회로 설계 시스템(10)은 프로세서(11), 워킹 메모리(13), 입출력 장치(15), 저장 장치(17) 및 버스(19)를 포함할 수 있다. 집적 회로 설계 시스템(10)은 도 1의 집적 회로 설계 단계(S10)을 수행할 수 있다. 본 실시예에서, 집적 회로 설계 시스템(10)은 일체화된 디바이스로 구현될 수 있고, 이에 따라, 집적 회로 설계 장치라고 지칭할 수도 있다. 집적 회로 설계 시스템(10)은 반도체 장치의 집적 회로를 설계하기 위한 전용 장치로 제공될 수도 있지만, 다양한 시뮬레이션 툴이나 설계 툴들을 구동하기 위한 컴퓨터일 수도 있다.
프로세서(11)는 집적 회로를 설계하기 위한 다양한 동작 중 적어도 하나를 수행하는 명령어들을 실행하도록 구성될 수 있다. 프로세서(11)는 버스(19)를 통해 워킹 메모리(13), 입출력 장치(15) 및 저장 장치(17)와 통신을 수행할 수 있다. 프로세서(11)는 워킹 메모리(13)에 로딩된 P&R 모듈(13a)을 구동함으로써, 집적 회로의 설계 동작을 실행할 수 있다.
워킹 메모리(13)는 집적 회로의 설계를 위한 배치 및 배선 동작을 수행하기 위한 명령어들을 저장할 수 있다. 워킹 메모리(13)에 저장된 명령어들은 프로세서(11)로 하여금, 집적 회로를 정의하는 셀들을 배치하고, 셀들의 배치에 따른 셀들 내의 복수의 핀들의 물리적 정보를 기초로 셀들 중 적어도 하나의 셀 내의 핀들에 대해 핀 리오더링을 수행하며, 핀 리오더링이 수행된 셀들을 라우팅하도록 구성될 수 있다.
이때, 물리적 정보는, 셀들 내의 복수의 핀들의 위치들 또는 복수의 핀들의 사이의 간격들을 포함할 수 있다. 적어도 하나의 셀은 복수의 입력 핀들을 포함하고, 복수의 입력 핀들 중 적어도 제1 및 제2 입력 핀들을 논리적으로 등가일 수 있다. 제1 및 제2 핀들은 적어도 하나의 셀 외부의 제1 및 제2 팬인 핀들에 연결 가능하며, 물리적 정보는 제1 핀과 제1 팬인 핀 사이의 간격, 제1 핀과 제2 팬인 핀 사이의 간격, 제2 핀과 제1 팬인 핀 사이의 간격, 및 제2 핀과 제2 팬인 핀 사이의 간격을 포함할 수 있다.
일 실시예에서, 워킹 메모리(13)는 P&R 모듈(13a)을 저장할 수 있고, P&R 모듈(13a)은 저장 장치(17)로부터 워킹 메모리(13)로 로딩될 수 있다. P&R 모듈(13a)은 예를 들어, 도 1의 단계 S110에 따른 배치 동작, 단계 S120에 따른 핀 리오더링 동작, 및 단계 S130에 따른 배선 동작을 수행하기 위한 복수의 명령어들을 포함하는 프로그램일 수 있다.
그러나, 본 발명은 이에 한정되지 않고, 워킹 메모리(13)는 타이밍 분석 모듈, 시뮬레이션 모듈 등과 같은 다양한 모듈들을 더 저장할 수 있다. 워킹 메모리(13)는 SRAM(Static Random Access Memory)이나 DRAM(Dynamic Random Access Memory)과 같은 휘발성 메모리이거나, PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등의 비휘발성 메모리일 수 있다.
입출력 장치(15)는 사용자 인터페이스 장치들로부터의 사용자 입력 및 출력을 제어할 수 있다. 예를 들어, 입출력 장치(15)는 키보드, 마우스, 터치패드 등과 같은 입력 장치를 구비하여, 집적 회로를 정의하는 입력 데이터를 입력 받을 수 있다. 예를 들어, 입출력 장치(15)는 디스플레이, 스피커 등과 같은 출력 장치를 구비하여, 배치 결과, 배선 결과 또는 타이밍 분석 결과 등을 표시할 수 있다.
저장 장치(17)는 P&R 모듈(13a)과 관련된 각종 데이터를 저장할 수 있다. 저장 장치(17)는 메모리 카드(MMC, eMMC, SD, MicroSD 등), 솔리드 스테이트 드라이브(solid state drive), 하드 디스크 드라이브(hard disk drive) 등을 포함할 수 있다.
도 8은 본 개시의 일 실시예에 따른 집적 회로 설계 시스템(20)을 나타낸다.
도 8을 참조하면, 집적 회로 설계 시스템(20)은 사용자 장치(21), 집적 회로 설계 플랫폼(22) 및 저장 장치(23)를 포함할 수 있다. 집적 회로 설계 시스템(20)은 도 1의 집적 회로 설계 단계(S10)을 수행할 수 있다. 본 실시예에서, 사용자 장치(21), 집적 회로 설계 플랫폼(22) 및 저장 장치(23) 중 적어도 하나는 별개의 디바이스일 수 있고, 사용자 장치(21), 집적 회로 설계 플랫폼(22) 및 저장 장치(23)는 유무선 통신 또는 네트워크를 통해 연결될 수 있다. 일 실시예에서, 사용자 장치(21), 집적 회로 설계 플랫폼(22) 및 저장 장치(23) 중 적어도 하나는 서로 이격되어 위치할 수 있다.
사용자 장치(21)는 프로세서(21a) 및 사용자 인터페이스(User Interface, UI)(21b)를 포함할 수 있다. 사용자 인터페이스(21a)를 통해 입력되는 사용자 입력에 따라, 프로세서(21a)는 집적 회로 설계 플랫폼(22)을 구동할 수 있다. 집적 회로 설계 플랫폼(22)은 집적 회로의 설계를 위한 컴퓨터로 독출 가능한 명령어의 세트로서, P&R 모듈(22a)을 포함할 수 있다. P&R 모듈(22a)은 도 7의 P&R 모듈(13a)과 실질적으로 유사하게 구현될 수 있다.
구체적으로, 집적 회로 설계 플랫폼(22)은 집적 회로의 설계를 위한 배치 및 배선 동작을 수행하기 위한 명령어들을 저장할 수 있다. 집적 회로 설계 플랫폼(22)에 저장된 명령어들은 프로세서(21a)로 하여금, 집적 회로를 정의하는 셀들을 배치하고, 셀들의 배치에 따른 셀들 내의 복수의 핀들의 물리적 정보를 기초로 셀들 중 적어도 하나의 셀 내의 핀들에 대해 핀 리오더링을 수행하며, 핀 리오더링이 수행된 셀들을 라우팅하도록 구성될 수 있다.
저장 장치(23)는 셀 라이브러리 데이터베이스(database, 이하 'DB')(23a) 및 레이아웃 DB(23b)를 포함할 수 있다. 셀 라이브러리 DB(23a)는 집적 회로의 레이아웃을 생성하기 위해 필요한 셀에 대한 정보를 저장하고, 구체적으로, 표준 셀 라이브러리를 저장할 수 있다. 레이아웃 DB(23b)는 P&R 모듈(22a)에서 생성된 레이아웃에 대한 정보, 구체적으로, 레이아웃에 대한 물리적 정보를 저장할 수 있다.
도 9는 본 개시의 일 실시예에 따른 집적 회로의 설계 방법을 나타내는 흐름도이다.
도 9를 참조하면, 본 실시예에 따른 집적 회로 설계 방법(S10A)은 도 1의 집적 회로 설계 방법(S10)의 일 구현 예에 대응할 수 있다. 본 실시예에 따른 집적 회로 설계 방법(S10A)은 예를 들어, 도 7의 집적 회로 설계 시스템(10)에서 프로세서(11)에 의해 또는 도 8의 집적 회로 설계 시스템(20)에서 프로세서(21a)에 의해 수행될 수 있다. 따라서, 도 1 내지 도 8을 참조하여 상술된 내용은 본 실시예에도 적용될 수 있다.
단계 S210에서, 집적 회로를 정의하는 입력 데이터에 따라 셀들을 배치한다. 단계 S210 이전에, 플로어 플랜(floorplan)을 수행하는 단계가 수행될 수 있다. 여기서, 플로어 플랜은 배치 계획 단계로서, 표준 셀들과 매크로 셀들을 어떻게 배치/배선할 것인지 대략적으로 계획하는 작업을 지칭한다. 구체적으로, 플로어 플랜은 전체 칩에서 I/O 셀들, 표준 셀들, RAM 등을 배치하는 단계이다. 또한, 단계 S210 이후에, 포스트-배치 최적화(post-placement optimization)이 수행될 수도 있다.
단계 S230에서, 클럭 트리 합성을 수행한다. 여기서, 클럭 트리 합성은 집적 회로의 레이아웃 생성 시, 자동으로 클럭 네트워크를 구성하고, 적절한 위치에 버퍼를 삽입하는 작업을 지칭한다. 단계 S210 및 S230에 의해, 셀들을 배치하고, 클릭 트리 합성을 수행하면, 셀들의 배치가 완료된 것으로 볼 수 있다.
단계 S250에서, 셀들의 배치에 따른 셀들 내의 복수의 핀들의 물리적 정보를 기초로, 셀들 중 적어도 하나의 셀 내의 핀들에 대하여 핀 리오더링을 수행한다. 이때, 미리 정의된 셀 리스트를 기초로, 배치된 복수의 셀들 중 적어도 하나의 셀을 선택할 수 있다. 일 실시예에서, 물리적 정보는 배치된 셀들 내의 복수의 핀들의 위치들을 포함할 수 있다. 일 실시예에서, 물리적 정보는 배치된 셀들 내의 복수의 핀들 사이의 간격들을 포함할 수 있다. 단계 S270에서, 핀 리오더링이 완료된 셀들을 라우팅한다.
도 10은 본 개시의 일 실시예에 따른 핀 리오더링 방법을 나타내는 흐름도이다.
도 10을 참조하면, 본 실시예에 따른 핀 리오더링 방법(S250A)은 도 9의 핀 리오더링 동작(S250)의 일 구현 예에 대응할 수 있다. 본 실시예에 따른 핀 리오더링 방법(S250A)은 예를 들어, 도 7의 집적 회로 설계 시스템(10)에서 프로세서(11)에 의해 또는 도 8의 집적 회로 설계 시스템(20)에서 프로세서(21a)에 의해 수행될 수 있다. 따라서, 도 1 내지 도 9를 참조하여 상술된 내용은 본 실시예에도 적용될 수 있다.
단계 S310에서, 미리 정의된 셀 리스트를 기초로, 배치된 복수의 셀들 중 적어도 하나의 셀을 선택한다. 여기서, 셀 리스트는 핀 리오더링을 적용할 수 있는 셀들에 대한 리스트이며, 핀 리오더링 룰(rule)이라고 지칭할 수도 있다. 구체적으로, 셀 리스트는 리오더링 가능한 핀들, 및 리오더링 가능한 핀들을 포함하는 셀들을 포함할 수 있다. 리오더링 가능한 핀들은 기능적으로 등가인 또는 논리적으로 등가인 핀들이다. 셀 리스트는 표준 셀 라이브러리에 저장된 다양한 표준 셀들을 분석함으로써 미리 정의될 수 있고, 핀 리오더링 동작을 위해 P&R 툴에 입력 값으로 제공될 수 있다.
단계 S330에서, 핀들의 물리적 정보를 기초로 라우팅 복잡도를 예측한다. 구체적으로, 단계 S310에서 선택된 적어도 하나의 셀 내의 핀들에 대해 핀 리오더링을 수행할 경우 라우팅 복잡도의 감소 여부를 예측할 수 있다. 일 실시예에서, 라우팅 복잡도는 핀들 각각에 연결된 배선들의 길이의 합을 기초로 결정될 수 있다. 일 실시예에서, 라우팅 복잡도는 핀들 각각에 연결된 배선들의 수평 길이의 합을 기초로 결정될 수 있다. 일 실시예에서, 라우팅 복잡도는 핀들 사이의 간격을 기초로 결정될 수 있다. 라우팅 복잡도의 예측 동작에 대해서는 도 11을 참조하여 후술하기로 한다.
단계 S350에서, 핀 리오더링 리스트를 생성한다. 구체적으로, 단계 S330에서 핀 리오더링을 수행할 경우 라우팅 복잡도가 감소하는 것으로 예측된 핀들을 핀 리오더링 리스트에 추가함으로써 핀 리오더링 리스트를 생성할 수 있다. 단계 S370에서, 핀 리오더링 리스트를 기초로 핀 리오더링을 수행한다.
도 11은 본 개시의 일 실시예에 따른 라우팅 복잡도의 예측 방법을 나타내는 흐름도이다. 도 12는 본 개시의 일 실시예에 따른 레이아웃(300)을 나타낸다. 이하에서는, 도 11 및 도 12를 함께 참조하여 라우팅 복잡도의 예측 방법을 설명하기로 한다. 레이아웃(300)은 제1 및 제2 셀들(310, 320)을 포함하고, 제1 셀(310)은 제1 및 제2 입력 핀들(311, 312)을 포함하고, 제2 셀(320)은 팬인 핀(321)을 포함할 수 있다.
본 실시예는, 제1 셀(310)의 제1 및 제2 입력 핀들(311, 312)에 대해 핀 리오더링을 수행할 경우 라우팅 복잡도의 감소 여부를 예측하는 방법에 관한 것으로서, 도 10의 라우팅 복잡도 예측 동작(S330)의 일 구현 예에 대응할 수 있다. 본 실시예에 따른 라우팅 복잡도의 예측 방법(S330A)은 예를 들어, 도 7의 집적 회로 설계 시스템(10)에서 프로세서(11)에 의해 또는 도 8의 집적 회로 설계 시스템(20)에서 프로세서(21a)에 의해 수행될 수 있다. 따라서, 도 1 내지 도 10을 참조하여 상술된 내용은 본 실시예에도 적용될 수 있다.
단계 S410에서, 제1 셀(310)의 제1 및 제2 입력 핀들(311, 312)에 연결될 수 있는 팬인 핀(321)의 위치를 확인한다. 구체적으로, 단계 S410은 제1 및 제2 셀들(310, 320)의 배치 단계 이후에 수행될 수 있으므로, 제1 및 제2 셀들(310, 320)의 배치 정보를 기초로 팬인 핀(321)의 위치를 확인할 수 있다.
단계 S430에서, 제1 간격(SA) 및 제2 간격(SB)을 확인한다. 여기서, 제1 간격(SA)은 핀 리오더링을 수행하기 전의 핀 연결에 따른, 제1 입력 핀(311)과 팬인 핀(321) 사이의 X 방향에 따른 수평 거리이다. 제2 간격(SB)은 핀 리오더링을 수행한 후의 핀 연결에 따른, 제2 입력 핀(312)과 팬인 핀(321) 사이의 X 방향에 따른 수평 거리이다.
단계 S450에서, 제1 간격(SA)과 제2 간격(SB)을 비교한다. 비교 결과, 제1 간격(SA)이 제2 간격(SB)보다 크면, 핀 리오더링을 수행할 경우 라우팅 복잡도가 감소할 것으로 예측하고, 단계 S470을 수행한다. 단계 S470에서, 제1 및 제2 입력 핀들(311, 312)을 핀 리오더링 리스트에 추가한다. 한편, 제1 간격(SA)이 제2 간격(SB)보다 크지 않으면, 핀 리오더링을 수행할 경우 라우팅 복잡도가 감소하지 않을 것으로 예측하고 라우팅 복잡도의 예측 동작을 종료한다.
도 13은 본 개시의 일 실시예에 따른 핀 리오더링 동작의 일 예를 나타낸다.
도 13을 참조하면, 제1 레이아웃(400)은 핀 리오더링 수행 전의 레이아웃이고, 제2 레이아웃(400')은 핀 리오더링 수행 후의 레이아웃이다. 구체적으로, 제1 레이아웃(400)은 제1 내지 제3 셀들(410 내지 430)을 포함하고, 제1 셀(410)은 제1 및 제2 입력 핀들(411, 412)을 포함하며, 제2 셀(420)은 제1 팬인 핀(421)을 포함하고, 제3 셀(430)은 제2 팬인 핀(431)을 포함할 수 있다. 본 실시예에 따르면, 제1 레이아웃(400)에서 제1 및 제2 입력 핀들(411, 412)은 핀 A, 핀 B로 오더링되고, 제2 레이아웃(400')에서 제1 및 제2 핀들(411, 412)은 핀 B, 핀 A로 리오더링될 수 있다.
제1 레이아웃(400)은 셀 배치 단계 이후 생성될 수 있고, 예를 들어, 도 1의 단계 S110에 의해 생성될 수 있다. 제1 레이아웃(400)으로부터 복수의 핀들의 물리적 정보를 획득할 수 있으며, 예를 들어, 물리적 정보는 제1 및 제2 입력 핀들(411, 412) 사이의 간격(x), 제1 입력 핀(411)과 제2 팬인 핀(431) 사이의 간격(a) 및 제2 입력 핀(412)과 제1 팬인 핀(421) 사이의 간격(b)을 포함할 수 있다.
본 실시예에 따르면, 핀 리오더링 수행 전의 제1 레이아웃(400)에서, 제1 입력 핀(411)은 제2 팬인 핀(431)에 연결되고, 제2 입력 핀(412)은 제1 팬인 핀(421)에 연결될 수 있다. 이때, 제1 입력 핀(411)에 연결된 배선의 제1 수평 길이는 a이고, 제2 입력 핀(412)에 연결된 배선의 제2 수평 길이는 b이므로, 제1 및 제2 수평 길이들의 합(D1)은 a와 b의 합에 대응할 수 있다(즉, D1=a+b).
한편, 핀 리오더링 수행 후의 제2 레이아웃(400')에서, 제1 입력 핀(411)은 제1 팬인 핀(421)에 연결되고, 제2 입력 핀(412)은 제2 팬인 핀(431)에 연결될 수 있다. 이때, 제1 입력 핀(411)에 연결된 배선의 제1 수평 길이는 b-x고, 제2 입력 핀(412)에 연결된 배선의 제2 수평 길이는 a-x이다. 따라서, 제1 및 제2 수평 길이들의 합(D1')은 a+b-2x이므로, 핀 리오더링 수행 전의 합(D1)보다 작을 수 있다(즉, D1'<D1).
본 실시예에 따르면, 제1 및 제2 입력 핀들(411, 412) 및 제1 및 제2 팬인 핀들(421,431)의 물리적 정보를 기초로, 제1 및 제2 입력 핀들(411, 412)에 대해 핀 리오더링을 수행하면 라우팅 복잡도가 감소할 것으로 예측할 수 있다. 그러므로, 제1 및 제2 입력 핀들(411, 412)을 핀 리오더링 리스트에 추가하고, 제1 및 제2 입력 핀들(411, 412)에 대해 핀 리오더링을 수행할 수 있다. 이에 따라, 제1 입력 핀(411)에 연결된 배선의 길이 및 제2 입력 핀(412)에 연결된 배선의 길이가 짧아질 수 있으므로, 시간 지연을 감소시킬 수 있고, 라우팅 복잡도를 감소시킬 수 있다.
도 14는 본 개시의 일 실시예에 따른 핀 리오더링 동작의 일 예를 나타낸다.
도 14를 참조하면, 제1 레이아웃(500)은 핀 리오더링 수행 전의 레이아웃이고, 제2 레이아웃(500')은 핀 리오더링 수행 후의 레이아웃이다. 구체적으로, 제1 레이아웃(500)은 제1 및 제2 셀들(510, 520)을 포함하고, 제1 셀(510)은 제1 및 제2 입력 핀들(511, 512)을 포함하며, 제2 셀(520)은 제1 및 제2 팬인 핀들(521, 522)을 포함할 수 있다.
제1 레이아웃(500)은 셀 배치 단계 이후 생성될 수 있고, 예를 들어, 도 1의 단계 S110에 의해 생성될 수 있다. 제1 레이아웃(500)으로부터 복수의 핀들의 물리적 정보를 획득할 수 있으며, 예를 들어, 물리적 정보는 제1 및 제2 입력 핀들(511, 512) 사이의 간격(x), 제1 입력 핀(511)과 제2 팬인 핀(522) 사이의 간격(a) 및 제2 입력 핀(512)과 제1 팬인 핀(521) 사이의 간격(b)을 포함할 수 있다.
본 실시예에 따르면, 핀 리오더링 수행 전의 제1 레이아웃(500)에서, 제1 입력 핀(511)은 제2 팬인 핀(522)에 연결되고, 제2 입력 핀(512)은 제1 팬인 핀(521)에 연결될 수 있다. 이때, 제1 입력 핀(511)에 연결된 배선의 제1 수평 길이는 a이고, 제2 입력 핀(512)에 연결된 배선의 제2 수평 길이는 b이므로, 제1 및 제2 수평 길이들의 합(D2)은 a와 b의 합에 대응할 수 있다(즉, D2=a+b).
한편, 핀 리오더링 수행 후의 제2 레이아웃(500')에서, 제1 입력 핀(511)은 제1 팬인 핀(521)에 연결되고, 제2 입력 핀(512)은 제2 팬인 핀(522)에 연결될 수 있다. 이때, 제1 입력 핀(511)에 연결된 배선의 제1 수평 길이는 b-x이고, 제2 입력 핀(512)에 연결된 배선의 제2 수평 길이는 a+x이다. 따라서, 제1 및 제2 수평 길이들의 합(D2')은 a+b이므로, 핀 리오더링 수행 전의 합(D2)과 같을 수 있다(즉, D2'=D2).
본 실시예에 따르면, 제1 및 제2 입력 핀들(511, 512) 및 제1 및 제2 팬인 핀들(521,522)의 물리적 정보를 기초로, 제1 및 제2 입력 핀들(511, 512)에 대해 핀 리오더링을 수행하면 라우팅 복잡도가 감소하지 않을 것으로 예측할 수 있다. 그러므로, 제1 및 제2 입력 핀들(511, 512)을 핀 리오더링 리스트에 추가하지 않고, 제1 및 제2 입력 핀들(511, 512)에 대해 핀 리오더링을 수행하지 않을 수 있다.
도 15는 본 개시의 일 실시예에 따른 핀 리오더링 동작의 일 예를 나타낸다.
도 15를 참조하면, 제1 레이아웃(600)은 핀 리오더링 수행 전의 레이아웃이고, 제2 레이아웃(600')은 핀 리오더링 수행 후의 레이아웃이다. 구체적으로, 제1 레이아웃(600)은 제1 및 제2 셀들(610, 620)을 포함하고, 제1 셀(610)은 제1 및 제2 입력 핀들(611, 612)을 포함하며, 제2 셀(620)은 제1 및 제2 팬인 핀들(621, 622)을 포함할 수 있다.
제1 레이아웃(600)은 셀 배치 단계 이후 생성될 수 있고, 예를 들어, 도 1의 단계 S110에 의해 생성될 수 있다. 제1 레이아웃(600)으로부터 복수의 핀들의 물리적 정보를 획득할 수 있으며, 예를 들어, 물리적 정보는 제1 및 제2 입력 핀들(611, 612) 사이의 간격(x), 제1 입력 핀(611)과 제2 팬인 핀(622) 사이의 간격(a) 및 제2 입력 핀(612)과 제1 팬인 핀(621) 사이의 간격(b)을 포함할 수 있다.
본 실시예에 따르면, 핀 리오더링 수행 전의 제1 레이아웃(600)에서, 제1 입력 핀(611)은 제2 팬인 핀(622)에 연결되고, 제2 입력 핀(612)은 제1 팬인 핀(621)에 연결될 수 있다. 이때, 제1 입력 핀(611)에 연결된 배선의 제1 수평 길이는 a이고, 제2 입력 핀(612)에 연결된 배선의 제2 수평 길이는 b이므로, 제1 및 제2 수평 길이들의 합(D3)은 a와 b의 합에 대응할 수 있다(즉, D3=a+b).
한편, 핀 리오더링 수행 후의 제2 레이아웃(600')에서, 제1 입력 핀(611)은 제1 팬인 핀(621)에 연결되고, 제2 입력 핀(612)은 제2 팬인 핀(622)에 연결될 수 있다. 이때, 제1 입력 핀(611)에 연결된 배선의 제1 수평 길이는 b+x이고, 제2 입력 핀(612)에 연결된 배선의 제2 수평 길이는 a-x이다. 따라서, 제1 및 제2 수평 길이들의 합(D3')은 a+b이므로, 핀 리오더링 수행 전의 합(D3)과 같을 수 있다(즉, D3'=D3).
본 실시예에 따르면, 제1 및 제2 입력 핀들(611, 612) 및 제1 및 제2 팬인 핀들(621,622)의 물리적 정보를 기초로, 제1 및 제2 입력 핀들(611, 612)에 대해 핀 리오더링을 수행하면 라우팅 복잡도가 감소하지 않을 것으로 예측할 수 있다. 그러므로, 제1 및 제2 입력 핀들(611, 612)을 핀 리오더링 리스트에 추가하지 않고, 제1 및 제2 입력 핀들(611, 612)에 대해 핀 리오더링을 수행하지 않을 수 있다.
도 16a 및 도 16b는 본 개시의 일 실시예에 따른 집적 회로에 포함되는 표준 셀을 나타내는 제1 및 제2 레이아웃들(700, 700')이다.
도 16a 및 도 16b를 참조하면, 제1 레이아웃(700)은 핀 리오더링 수행 전의 레이아웃이고, 제2 레이아웃(700')은 핀 리오더링 수행 후의 레이아웃이다. 본 실시예에 따르면, 제1 레이아웃(700)에서 제1 금속 라인들(M1a, M1b)은 핀 A, 핀 B로 오더링되고, 제2 레이아웃(700')에서 제1 금속 라인들(M1a, M1b)은 핀 B, 핀 A로 리오더링될 수 있다.
제1 레이아웃(700)에서, 표준 셀은 셀 바운더리(CB)에 의해 한정되고, 복수의 핀들(FN), 제1 및 제2 액티브(active) 영역들(AR1, AR2), 복수의 게이트 라인들(gate lines)(GLa, GLb, GLc; GL), 복수의 제1 금속 라인들(metal lines)(M1a, M1b, M1c; M1) 및 복수의 제2 금속 라인들(M2a, M2b; M2)을 포함할 수 있다. 셀 바운더리(CB)는 표준 셀을 한정하는 아웃라인으로, 배치 및 배선 툴(예를 들어, 도 7의 13a 또는 도 8의 22a)은 셀 바운더리(CB)를 이용하여 표준 셀을 인식할 수 있다. 셀 바운더리(CB)는 네 개의 바운더리 라인들로 구성된다.
복수의 핀들(FN)은 X 방향으로 연장되고, X 방향에 수직인 Y 방향을 따라 서로 평행하게 배치될 수 있다. 제1 액티브 영역(AR1)과 제2 액티브 영역(AR2)은 서로 평행하게 배치될 수 있으며, 서로 다른 도전형을 가질 수 있다. 구체적으로, 본 실시예에서는, 제1 및 제2 액티브 영역들(AR1, AR2) 각각에 3개의 핀들(FN)이 배치될 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 제1 및 제2 액티브 영역들(AR1, AR2) 각각에 배치된 핀들(FN)의 개수는 다양하게 변경될 수 있다.
이때, 제1 및 제2 액티브 영역들(AR1, AR2)에 배치되는 복수의 핀들(FN)은 액티브 핀들이라고 지칭할 수 있다. 도 16a 및 도 16b에서는 액티브 핀들만을 도시하였으나, 본 발명은 이에 한정되지 않으며, 표준 셀은 셀 바운더리(CB)와 제1 액티브 영역(AR1), 제1 및 제2 액티브 영역들(AR1, AR2) 사이의 영역, 또는 제2 액티브 영역(AR2)과 셀 바운더리(CB) 사이의 영역에 배치되는 더미 핀들을 더 포함할 수 있다.
복수의 게이트 라인들(GLa, GLb, GLc)은 Y 방향으로 연장될 수 있고, X 방향을 따라 서로 평행하게 배치될 수 있다. 이때, 게이트 라인들(GLa, GLb, GLc)은 전기 전도성을 갖는 임의의 물질로 구성될 수 있으며, 예를 들어, 폴리 실리콘, 금속, 금속 합금 등을 포함할 수 있다. 도 16a 및 도 16b에서는 표준 셀이 세 개의 게이트 라인들(GLa, GLb, GLc)을 포함하는 것으로 도시되었으나, 이는 일 실시예에 불과하고, 표준 셀은 Y 방향으로 연장되고 X 방향을 따라 서로 평행하게 배치되는 4개 이상의 게이트 라인들을 포함할 수 있다.
제1 비아들(V0)은 복수의 게이트 라인들(GLa, GLb, GLc) 상에 각각 배치되어, 복수의 게이트 라인들(GLa, GLb, GLc)과 복수의 제1 금속 라인들(M1a, M1b, M1c)을 각각 전기적으로 연결할 수 있다. 이때, 제1 비아들(V0)은 전기 전도성을 갖는 임의의 물질로 구성될 수 있으며, 예를 들어, 폴리 실리콘, 금속, 금속 합금 등을 포함할 수 있다.
복수의 제1 금속 라인들(M1a, M1b, M1c)은 복수의 게이트 라인들(GLa, GLb, GLc)의 상부에 배치되는 일 레이어을 구성할 수 있다. 예를 들어, 제1 금속 라인(M1a)은 도 13의 제1 입력 핀(411)에 대응하고, 제1 금속 라인(M1b)은 도 13의 제2 입력 핀(412)에 대응할수 있다. 이때, 제1 금속 라인들(M1a, M1b, M1c)은 전기 전도성을 갖는 임의의 물질로 구성될 수 있으며, 예를 들어, 폴리 실리콘, 금속, 금속 합금 등을 포함할 수 있다.
제1 금속 라인들(M1a, M1b, M1c)은 Y 방향으로 연장될 수 있고, X 방향을 따라 서로 평행하게 배치될 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 일부 실시예들에서, 제1 금속 라인들(M1a, M1b, M1c) 중 일부 제1 금속 라인의 일 부분이 Y 방향으로 연장되고 다른 일 부분은 X 방향으로 연장되는 L자 형상으로 구현될 수도 있다. 도 16a 및 도 16b에서는 표준 셀이 세 개의 제1 금속 라인들(M1a, M1b, M1c)을 포함하는 것으로 도시되었으나, 이는 일 실시예에 불과하고, 표준 셀은 4개 이상의 제1 금속 라인들을 포함할 수 있다.
제2 비아들(V1)은 복수의 제1 금속 라인들(M1a, M1b) 상에 각각 배치되어, 복수의 제1 금속 라인들(M1a, M1b)과 복수의 제2 금속 라인들(M2a, M2b)을 각각 전기적으로 연결할 수 있다. 이때, 제2 비아들(V1)은 전기 전도성을 갖는 임의의 물질로 구성될 수 있으며, 예를 들어, 폴리 실리콘, 금속, 금속 합금 등을 포함할 수 있다.
복수의 제2 금속 라인들(M2a, M2b)은 복수의 제1 금속 라인들(M1a, M1b, M1c)의 상부에 배치되는 일 레이어를 구성할 수 있다. 예를 들어, 제2 금속 라인(M2a)은 도 13의 제2 팬인 핀(431)에 연결될 수 있고, 제2 금속 라인(M2b)은 도 13의 제1 팬인 핀(421)에 연결될 수 있다. 이때, 제2 금속 라인들(M2a, M2b)은 전기 전도성을 갖는 임의의 물질로 구성될 수 있으며, 예를 들어, 폴리 실리콘, 금속, 금속 합금 등을 포함할 수 있다.
제2 금속 라인들(M2a, M2b)은 X 방향으로 연장될 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 일부 실시예들에서, 제2 금속 라인들(M2a, M2b)의 일 부분이 X 방향으로 연장되고 다른 일 부분은 Y 방향으로 연장되는 L자 형상으로 구현될 수도 있다. 도 16a 및 도 16b에서는 표준 셀이 두 개의 제2 금속 라인들(M2a, M2b)을 포함하는 것으로 도시되었으나, 이는 일 실시예에 불과하고, 표준 셀은 3개 이상의 제2 금속 라인들을 포함할 수 있다.
본 실시예에 따르면, 제1 금속 라인들(M1a, M1b)에 각각 연결되는 제2 금속 라인들(M2a, M2b)의 X 방향의 길이를 기초로, 제1 금속 라인들(M1a, M1b)에 대해 핀 리오더링을 수행할 경우 라우팅 복잡도의 감소 여부를 예측할 수 있다. 제1 금속 라인들(M1a, M1b)에 대해 핀 리오더링을 수행할 경우 라우팅 복잡도가 감소할 것으로 예측된 경우, 제1 금속 라인들(M1a, M1b)에 대해 핀 리오더링을 수행함으로써 제2 레이아웃(700')을 생성할 수 있다.
제2 레이아웃(700')에 따르면, 제1 금속 라인(M1a)은 제2 금속 라인(M2b')과 연결되고, 제1 금속 라인(M1b)은 제2 금속 라인(M2a')과 연결될 수 있다. 이에 따라, 제2 금속 라인들(M2a', M2b') 각각의 X 방향의 길이는 감소할 수 있다. 따라서, 라우팅 복잡도가 감소할 수 있고, 시간 지연을 방지할 수 있다.
도 1 내지 도 16b을 참조하여 상술된 바와 같이, 본 개시의 실시예들에 따르면, 집적 회로의 레이아웃을 설계하는 단계에서, 셀들의 배치에 따른 복수의 핀들의 물리적 정보를 기초로, 복수의 셀들 중 적어도 하나의 셀 내의 핀들에 대해 핀 리오더링을 수행할 수 있다. 이에 따라, 라우팅 복잡도가 실질적으로 감소될 수 있고, 배선 길이의 감소에 따라 타이밍 QoR가 향상될 수 있다.
도 17은 본 개시의 일 실시예에 따른 저장 매체를 나타내는 블록도이다.
도 17을 참조하면, 저장 매체(1000)는 셀 라이브러리(1100), 레이아웃 데이터(1200), 배치 및 배선 프로그램(1300) 및 분석 프로그램(1400)을 저장할 수 있다. 저장 매체(1000)는 컴퓨터로 읽을 수 있는 저장 매체로서, 컴퓨터에 명령어들 및/또는 데이터를 제공하는데 사용되는 동안 컴퓨터에 의해 읽혀질 수 있는 임의의 저장 매체를 포함할 수 있다. 예를 들면, 컴퓨터로 읽을 수 있는 저장 매체(1000)는 디스크, 테이프, CD-ROM, DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW 등과 같은 자기 또는 광학 매체, RAM, ROM, 플래시 메모리 등과 같은 휘발성 또는 비휘발성 메모리, USB 인터페이스를 통해서 엑세스 가능한 비휘발성 메모리, 그리고 MEMS(microelectromechanical systems) 등을 포함할 수 있다. 컴퓨터로 읽을 수 있는 저장 매체는 컴퓨터에 삽입 가능하거나, 컴퓨터 내에 집적되거나, 네트워크 및/또는 무선 링크와 같은 통신 매개체를 통해서 컴퓨터와 결합될 수 있다.
셀 라이브러리(1100)는 표준 셀 라이브러리일 수 있고, 집적 회로를 구성하는 단위인 표준 셀에 대한 정보를 포함할 수 있다. 일 실시예에서, 표준 셀에 대한 정보는 레이아웃 생성에 필요한 레이아웃 정보를 포함할 수 있다. 일 실시예에서, 표준 셀에 대한 정보는 레이아웃의 검증 또는 시뮬레이션에 필요한 타이밍 정보를 포함할 수 있다. 일 실시예에서, 표준 셀에 대한 정보는 핀 리오더링의 대상 셀들이 정의된 셀 리스트를 포함할 수 있다.
레이아웃 데이터(1200)는 배치 및 배선 동작을 통해 생성된 레이아웃에 대한 물리적 정보를 포함할 수 있다. 일 실시예에서, 레이아웃 데이터(1200)는 도전 패턴들 및 절연 패턴들의 폭, 길이, 및 스페이스를 포함할 수 있다. 일 실시예에서, 레이아웃 데이터(1200)는 핀 리오더링 리스트를 더 포함할 수도 있다.
배치 및 배선 프로그램(1300)은 본 발명의 예시적인 실시예들에 따른 표준 셀 라이브러리를 사용하여 집적 회로의 레이아웃을 생성하는 방법을 수행하기 위하여 복수개의 명령어들을 포함할 수 있다. 구체적으로, 배치 및 배선 프로그램(1300)은 프로세서로 하여금, 집적 회로를 정의하는 셀들을 배치하고, 셀들의 배치에 따른 셀들 내의 복수의 핀들의 물리적 정보를 기초로 셀들 중 적어도 하나의 셀 내의 핀들에 대해 핀 리오더링을 수행하며, 핀 리오더링이 수행된 셀들을 라우팅하도록 구성될 수 있다. 배치 및 배선 프로그램(1300)은 예를 들어, 도 1의 단계 S110 내지 S130, 도 9의 단계 S210 내지 S270, 도 10의 단계 S310 내지 S370, 또는 도 11의 단계 S410 내지 S470을 수행하기 위해 이용될 수 있다.
분석 프로그램(1400)은 집적 회로를 정의하는 입력 데이터에 기초하여 집적 회로를 분석하는 방법을 수행하는 복수개의 명령어들을 포함할 수 있다. 일 실시예에서, 분석 프로그램 프로그램(1400)은 타이밍 분석 프로그램 또는 전력 분석 프로그램일 수 있다. 예를 들어, 분석 프로그램(1400)은 STA(Static Timing Analysis) 프로그램일 수 있다. STA는 디지털 회로의 예상되는(expected) 타이밍을 계산하는 시뮬레이션 방법이며, 배치된 표준 셀들의 모든 타이밍 경로들에 대해 타이밍 분석을 수행하고, 타이밍 분석 결과를 출력할 수 있다.
일부 실시예들에서, 저장 매체(1000)는 데이터 구조를 더 저장할 수 있고, 데이터 구조는 표준 셀 라이브러리(1100)에 포함된 표준 셀 라이브러리를 사용하거나, 표준 셀 라이브러리(1100)에 포함된 표준 셀 라이브러리로부터 특정 정보를 추출하거나, 또는 분석 프로그램에 의해서 집적 회로의 특성을 분석하는 과정에서 생성된 데이터를 관리하기 위한 저장 공간 등을 포함할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10, 20: 집적 회로 설계 시스템
100, 100', 200, 200', 300, 300', 400, 400', 500, 500', 600, 600', 700, 700': 레이아웃

Claims (10)

  1. 적어도 부분적으로 프로세서에 의해 수행되는, 집적 회로의 제조 방법으로서,
    상기 집적 회로를 정의하는 입력 데이터에 따라 셀들을 배치하는 단계;
    상기 셀들의 배치에 따른 상기 셀들 내의 복수의 핀들의 물리적 정보를 기초로, 상기 셀들 중 적어도 하나의 셀 내의 핀들에 대하여 핀 리오더링(pin reordering)을 수행하는 단계;
    상기 핀 리오더링을 수행하는 단계 이후에, 상기 셀들을 라우팅하는 단계; 및
    상기 라우팅에 의해 생성된 레이아웃을 기초로 상기 집적 회로를 제조하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 물리적 정보는, 배치된 상기 셀들 내의 복수의 핀들의 위치들을 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 물리적 정보는, 배치된 상기 셀들 내의 복수의 핀들의 사이의 간격들을 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 적어도 하나의 셀은 복수의 입력 핀들을 포함하고, 상기 복수의 입력 핀들 중 적어도 두 개의 입력 핀들을 논리적으로 등가인(logically equivalent) 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 적어도 하나의 셀 내의 상기 핀들은, 논리적으로 등가인 적어도 제1 핀 및 제2 핀을 포함하고,
    상기 핀 리오더링을 수행하는 단계는, 상기 물리적 정보를 기초로, 상기 제1 및 제2 핀들 각각에 연결될 제1 및 제2 배선들의 수평 길이의 합이 감소하도록 상기 제1 및 제2 핀들을 리오더링하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 제1 및 제2 핀들은 상기 적어도 하나의 셀의 입력 핀들이고, 상기 적어도 하나의 셀 외부의 제1 및 제2 팬인(fan-in) 핀들에 연결 가능하며,
    상기 물리적 정보는, 상기 제1 핀과 상기 제1 팬인 핀 사이의 간격, 상기 제1 핀과 상기 제2 팬인 핀 사이의 간격, 상기 제2 핀과 상기 제1 팬인 핀 사이의 간격, 및 상기 제2 핀과 상기 제2 팬인 핀 사이의 간격을 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 배치하는 단계 이후에, 그리고, 상기 핀 리오더링을 수행하는 단계 이전에, 상기 배치된 셀들에 대해 클럭 트리 합성(Clock Tree Synthesis)을 수행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    상기 핀 리오더링을 수행하는 단계는,
    미리 정의된 셀 리스트를 기초로, 배치된 상기 셀들 중 상기 적어도 하나의 셀을 선택하는 단계;
    선택된 상기 적어도 하나의 셀 내의 상기 핀들에 대해 핀 리오더링을 수행할 경우 라우팅 복잡도(congestion)의 감소 여부를 예측하는 단계; 및
    상기 예측 결과에 따라 상기 핀들을 핀 리오더링 리스트에 추가하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 적어도 하나의 셀 내의 상기 핀들은 논리적으로 등가인 제1 및 제2 핀들을 포함하고, 상기 제1 및 제2 핀들은 상기 적어도 하나의 셀 외부의 팬인 핀과 연결 가능하며,
    상기 라우팅 복잡도의 감소 여부를 예측하는 단계는,
    상기 제1 핀과 상기 팬인 핀 사이의 제1 간격을 확인하는 단계;
    상기 제2 핀과 상기 팬인 핀 사이의 제2 간격을 확인하는 단계; 및
    상기 제1 및 제2 간격들을 비교하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 프로세서; 및
    상기 프로세서와 연결되고, 집적 회로의 설계를 위한 배치 및 배선 동작을 수행하기 위한 명령어들을 저장하는 메모리를 포함하고,
    상기 명령어들은, 상기 프로세서로 하여금, 상기 집적 회로를 정의하는 셀들을 배치하고, 상기 셀들의 배치에 따른 상기 셀들 내의 복수의 핀들의 물리적 정보를 기초로 상기 셀들 중 적어도 하나의 셀 내의 핀들에 대해 핀 리오더링을 수행하며, 상기 핀 리오더링이 수행된 셀들을 라우팅하도록 구성된 것을 특징으로 하는 집적 회로 설계 시스템.
KR1020160115714A 2016-09-08 2016-09-08 집적 회로 설계 시스템 및 집적 회로의 제조 방법 Pending KR20180028252A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160115714A KR20180028252A (ko) 2016-09-08 2016-09-08 집적 회로 설계 시스템 및 집적 회로의 제조 방법
US15/477,182 US10424518B2 (en) 2016-09-08 2017-04-03 Integrated circuit designing system and a method of manufacturing an integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160115714A KR20180028252A (ko) 2016-09-08 2016-09-08 집적 회로 설계 시스템 및 집적 회로의 제조 방법

Publications (1)

Publication Number Publication Date
KR20180028252A true KR20180028252A (ko) 2018-03-16

Family

ID=61281408

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160115714A Pending KR20180028252A (ko) 2016-09-08 2016-09-08 집적 회로 설계 시스템 및 집적 회로의 제조 방법

Country Status (2)

Country Link
US (1) US10424518B2 (ko)
KR (1) KR20180028252A (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10198551B1 (en) * 2017-08-18 2019-02-05 Cadence Design Systems, Inc. Clock cell library selection
KR102539066B1 (ko) 2018-11-09 2023-06-01 삼성전자주식회사 서로 다른 타입의 셀들을 포함하는 집적 회로, 그 설계 방법 및 설계 시스템
KR20210042218A (ko) 2019-10-08 2021-04-19 삼성전자주식회사 반도체 소자 및 제조방법
CN111931450B (zh) * 2020-08-11 2024-09-20 上海华力微电子有限公司 一种集成电路数字后端设计的方法和系统
US12008300B2 (en) * 2021-08-31 2024-06-11 Siemens Industry Software Inc. Machine learning-based unravel engine for integrated circuit packaging design

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6473885B1 (en) 1998-07-17 2002-10-29 Mentor Graphics Corporation Digital circuit layout techniques using circuit decomposition and pin swapping
US20050144575A1 (en) * 2003-03-04 2005-06-30 Fujitsu Limited Circuit arrangement design method and circuit arrangement design program
WO2007002799A1 (en) 2005-06-29 2007-01-04 Lightspeed Logic, Inc. Methods and systems for placement
US8332793B2 (en) 2006-05-18 2012-12-11 Otrsotech, Llc Methods and systems for placement and routing
US8151229B1 (en) 2007-04-10 2012-04-03 Cadence Design Systems, Inc. System and method of computing pin criticalities under process variations for timing analysis and optimization
US7814452B1 (en) * 2007-11-01 2010-10-12 Xilinx, Inc. Function symmetry-based optimization for physical synthesis of programmable integrated circuits
US8015522B2 (en) 2008-01-04 2011-09-06 Springsoft Usa, Inc. System for implementing post-silicon IC design changes
US7996812B2 (en) 2008-08-14 2011-08-09 International Business Machines Corporation Method of minimizing early-mode violations causing minimum impact to a chip design
JP4350789B2 (ja) 2008-11-14 2009-10-21 富士通株式会社 電気回路図自動生成装置
US8069431B1 (en) 2009-03-18 2011-11-29 Lattice Semiconductor Corporation Routing signals to pins of components in programmable logic devices
US8521483B1 (en) 2010-06-02 2013-08-27 Cadence Design Systems, Inc. Method and apparatus for concurrent design of modules across different design entry tools targeted to single simulation
WO2014153029A1 (en) 2013-03-14 2014-09-25 New York University System, method and computer-accessible medium for providing secure split manufacturing
KR102356616B1 (ko) 2015-08-06 2022-01-28 삼성전자주식회사 반도체 소자의 제조 방법

Also Published As

Publication number Publication date
US20180068907A1 (en) 2018-03-08
US10424518B2 (en) 2019-09-24

Similar Documents

Publication Publication Date Title
US10418354B2 (en) Integrated circuit and computer-implemented method of manufacturing the same
CN107918694B (zh) 用于减少集成电路上的延迟的方法
KR102514044B1 (ko) 집적 회로 및 집적 회로의 설계 방법
JP4530049B2 (ja) 半導体装置の設計プログラムおよび半導体装置の設計システム
US11030383B2 (en) Integrated device and method of forming the same
KR20180028252A (ko) 집적 회로 설계 시스템 및 집적 회로의 제조 방법
US11163932B2 (en) Semiconductor process modeling to enable skip via in place and route flow
KR20170133750A (ko) 집적 회로의 설계를 위한 컴퓨터 구현 방법
US11651136B2 (en) Method and system of forming semiconductor device
KR102717096B1 (ko) 집적 회로 및 상기 집적 회로의 제조를 위한 컴퓨터 구현 방법
US10977415B2 (en) Integrated device and method of forming the same
US20170061063A1 (en) Integrated circuit with reduced routing congestion
US20040003363A1 (en) Integrated circuit design and manufacture utilizing layers having a predetermined layout
US20230267261A1 (en) Design system, design method and method of manufacture of semiconductor device
Kan et al. Post-layout Redundant Via Insertion Approach Considering Multiple Via Configuration
Tsai et al. Routability optimization for crossbar-switch structured ASIC design

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20160908

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20210727

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20160908

Comment text: Patent Application

PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20220922

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20230330