KR20240088440A - 집적 회로의 레이아웃을 설계하는 방법 및 시스템 - Google Patents

집적 회로의 레이아웃을 설계하는 방법 및 시스템 Download PDF

Info

Publication number
KR20240088440A
KR20240088440A KR1020220174179A KR20220174179A KR20240088440A KR 20240088440 A KR20240088440 A KR 20240088440A KR 1020220174179 A KR1020220174179 A KR 1020220174179A KR 20220174179 A KR20220174179 A KR 20220174179A KR 20240088440 A KR20240088440 A KR 20240088440A
Authority
KR
South Korea
Prior art keywords
point
shortest path
area
data
distance
Prior art date
Application number
KR1020220174179A
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 KR1020220174179A priority Critical patent/KR20240088440A/ko
Priority to US18/535,160 priority patent/US20240193340A1/en
Publication of KR20240088440A publication Critical patent/KR20240088440A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • 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
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

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

Abstract

본 개시의 기술적 사상에 따른 집적 회로의 레이아웃을 설계하는 방법은, 집적 회로에 대한 입력 데이터에 기초하여 플로어 플랜(Floorplan)을 수행함으로써 플로어 플랜 데이터를 생성하는 단계, 플로어 플랜 데이터를 바탕으로, 특정된 제1 지점 및 제2 지점 간 경로를 탐색하는 단계 및 탐색의 결과에 기초하여 레이아웃의 구성들을 위치시키는 단계를 포함할 수 있고, 경로를 탐색하는 단계는, 플로어 플랜 데이터에 기초하여, 라우팅(Routing)이 가능한 제1 영역과 라우팅이 불가능한 제2 영역을 구분하는 단계, 제1 지점 및 제2 지점에 대한 위치 데이터를 수신하는 단계 및 제1 영역 상에서, 제1 지점 및 제2 지점 간의 최단 경로를 탐색하는 단계를 포함할 수 있다.

Description

집적 회로의 레이아웃을 설계하는 방법 및 시스템 {Method and system for designing the layout of an integrated circuit}
본 발명의 기술적 사상은 집적 회로의 레이아웃을 설계하는 방법에 관한 것으로서, 더욱 상세하게는, 배선 경로 탐색을 통해 레이아웃을 설계하는 방법에 관한 것이다.
반도체 기술이 고도화됨에 따라, 집적 회로의 설계가 복잡해지고 많은 수의 소자들이 회로에 집적되고 있다. 많은 소자들이 회로 내에 집적됨에 따라 배선이 복잡해지고, 이로 인해 설계 규칙 위반(Design Rule Violation) 및/또는 타이밍 위반(Timing Violation)의 문제가 발생할 수 있다.
특히, 집적도가 높아짐에 따라 셀 및/또는 포트 등을 연결하는 경로의 길이가 설계 품질(Design quality)에 큰 영향을 미칠 수 있다. 구체적으로, 배선 경로의 길이는 타이밍 지연(Timing latency) 등에 많은 영향을 미치는데, 사용자가 원하는 거리 이내로 배치되지 않아 설계 품질이 낮아지는 문제점이 발생할 수 있다.
본 발명의 기술적 사상이 해결하고자 하는 과제는 집적 회로의 소자들을 연결하는 배선의 경로를 조기에 검증할 수 있게 하여, 검증 및 회로의 수정에 소요되는 시간 및 자원을 감소시킬 수 있으며, 최단 경로의 탐색을 통해 설계 품질을 향상시킬 수 있는 레이아웃 설계 방법을 제공하는 데에 있다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 기술적 사상의 일 측면에 따른 집적 회로의 레이아웃을 설계하는 방법은, 집적 회로에 대한 입력 데이터에 기초하여 플로어 플랜(Floorplan)을 수행함으로써 플로어 플랜 데이터를 생성하는 단계, 플로어 플랜 데이터를 바탕으로, 특정된 제1 지점 및 제2 지점 간 경로를 탐색하는 단계 및 탐색의 결과에 기초하여 레이아웃의 구성들을 위치시키는 단계를 포함할 수 있고, 경로를 탐색하는 단계는, 플로어 플랜 데이터에 기초하여, 라우팅(Routing)이 가능한 제1 영역과 라우팅이 불가능한 제2 영역을 구분하는 단계, 제1 지점 및 상기 제2 지점에 대한 위치 데이터를 수신하는 단계 및 제1 영역 상에서, 제1 지점 및 제2 지점 간의 최단 경로를 탐색하는 단계를 포함할 수 있다.
본 발명의 기술적 사상의 일 측면에 따른 집적 회로의 레이아웃을 설계하는 방법은, 집적 회로에 대한 입력 데이터 중, 집적 회로의 물리적 정보를 포함하는 물리적 데이터를 수신하는 단계, 물리적 데이터에 기초하여, 라우팅(Routing)이 가능한 제1 영역과 라우팅이 불가능한 제2 영역을 구분하는 단계, 특정된 제1 지점 및 제2 지점에 대한 위치 정보를 수신하는 단계 및 제1 영역 상에서, 제1 지점 및 제2 지점 간의 최단 경로를 탐색하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일 측면에 따른 반도체 칩(Chip)을 설계하는 시스템은, 프로세서 및 프로세서와 연결되고, 칩을 설계하기 위한 배선 경로 탐색을 위한 명령어들을 저장하는 메모리를 포함할 수 있고, 명령어들에 의해, 프로세서는, 칩의 DEF(Design Exchange Format) 데이터 및 LEF(Library Exchange Format) 데이터를 포함하는 물리적 정보를 수신하고, 물리적 정보에 기초하여, 칩에서 라우팅(Routing)이 가능한 제1 영역과 라우팅이 불가능한 제2 영역을 구분하고, 칩의 크기에 대응하는 크기의 행렬을 생성하고, 제1 영역에 대응하는 행렬의 성분들인 제1 성분 그룹과 제2 영역에 대응하는 행렬의 성분들인 제2 성분 그룹을 서로 다른 문자로 표시하고, 특정된 제1 지점 및 제2 지점에 대한 위치 정보를 수신하고, 제1 성분 그룹 상에서, 제1 지점 및 제2 지점 간의 최단 경로를 탐색하는 것을 특징으로 할 수 있다.
본 발명의 기술적 사상의 예시적 실시예에 따른 레이아웃 설계 방법은, 집적 회로 내 소자들의 논리적 연결(Logical connection)에 대한 논리적 정보 없이, 초기 수준의 데이터인 물리적 정보만에 기초하여 최단 경로를 탐색하여 사용자가 원하는 거리 내로 라우팅(Routing)될 수 있는지 조기에 판단 및 검증을 통해 회로를 수정할 수 있으므로, 사용되는 시간 및 자원을 감소시킬 수 있는 바, 설계 품질(Design quality)을 향상시킬 수 있다.
또한 본 발명의 기술적 사상의 예시적 실시예에 따른 레이아웃 설계 방법은, 초기 수준의 데이터에 기초한 최단 경로 탐색 및 검증 과정을 자동화하여 수행할 수 있으므로, 수동으로 수행함으로 인해서 발생하는 에러(Error)를 낮춰 정확도를 높일 수 있고, 검증 자체에 소요되는 시간도 감소시킬 수 있다.
도 1은 본 발명의 예시적 실시예에 따른 집적 회로 설계 시스템을 나타내기 위한 블록도이다.
도 2는 본 발명의 예시적 실시예에 따른 집적 회로의 설계 과정을 설명하기 위한 흐름도이다.
도 3은 본 발명의 예시적 실시예에 따른 최단 경로 탐색 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 예시적 실시예에 따른 경로 탐색의 다른 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 예시적 실시예에 따라 라우팅(Routing)이 가능한 영역을 구분하는 과정을 나타내기 위한 도면이다.
도 6은 본 발명의 예시적 실시예에 따른 최단 경로 탐색 방법을 설명하기 위한 도면이다.
도 7은 본 발명의 예시적 실시예에 따른 행렬(Array) 생성 과정을 설명하기 위한 도면이다.
도 8은 본 발명의 예시적 실시예에 따라 최단 경로 탐색의 방법을 설명하기 위한 도면이다.
도 9는 본 발명의 예시적 실시예에 따른 집적 회로의 레이아웃 설계 과정을 설명하기 위한 흐름도이다.
도 10은 본 발명의 예시적 실시예에 따른 최단 경로 탐색에 따른 셀 배치 조정을 설명하기 위한 도면이다.
도 11a 및 도 11b는 본 발명의 예시적 실시예에 따른 최단 경로 탐색에 따른 포트의 위치 조정을 설명하기 위한 도면이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시예들에 대해 상세히 설명한다.
도 1은 본 발명의 예시적 실시예에 따른 집적 회로 설계 시스템을 나타내기 위한 블록도이다.
도 1을 참조하면, 집적 회로 설계 시스템(100)은 프로세서(Processor)의 일 예시인 CPU(110), 워킹 메모리(Working memory)(또는 메모리)(120), I/O 인터페이스(130), 저장 장치(140), 시스템 버스(150)를 포함할 수 있다. 여기서, 집적 회로 설계 시스템(100)은 반도체 장치를 설계하기 위한 전용 장치로 제공될 수도 있지만, 다양한 설계 툴들이나 배치 툴들을 구동하기 위한 컴퓨터일 수도 있을 것이다.
CPU(110)는 집적 회로 설계 시스템(100)에서 수행될 소프트웨어(응용 프로그램, 운영 체제, 장치 드라이버들)를 실행할 수 있다. 예를 들어, CPU(110)는 워킹 메모리(120)에 로드되는 운영 체제(OS)를 실행할 수 있다. CPU(110)는 운영 체제(OS) 기반에서 구동될 다양한 응용 프로그램들 (Application Program)이나 설계 툴들을 실행할 수 있다. 예를 들면, CPU(110)는 워킹 메모리(120)에 로드되는 반도체 장치의 설계 툴들을 구동할 수 있다. 예를 들어, 설계 툴로서 제공되는 EDA(electronic design automation) 툴(122)이 CPU(110)에 의해서 구동될 수 있다.
워킹 메모리(120)에는 운영 체제(OS)나 응용 프로그램들(Application Program)이 로드될 수 있다. 집적 회로 설계 시스템(100)의 부팅 시에 저장 장치(140)에 저장된 OS 이미지가 부팅 시퀀스에 의거하여 워킹 메모리(120)로 로드될 수 있다. 운영 체제(OS)에 의해서 집적 회로 설계 시스템(100)의 제반 입출력 동작들이 지원될 수 있다. 마찬가지로, 사용자에 의하여 선택되거나 기본적인 서비스 제공을 위해서 응용 프로그램들(예를 들어, EDA 툴(122))이 워킹 메모리(120)에 로드될 수 있다. 워킹 메모리(120)는 SRAM(Static Random Access Memory)이나 DRAM(Dynamic Random Access Memory)과 같은 휘발성 메모리이거나, PRAM, MRAM, ReRAM, FRAM, 플래시 메모리 등의 비휘발성 메모리일 수 있다.
EDA 툴(122)은 집적 회로에 포함되는 스탠다드 셀을 생성할 수 있다. 예를 들면, EDA 툴(122)은 스탠다드 셀의 라이브러리를 저장하거나 외부로부터 수신할 수 있다. 스탠다드 셀들은 모두 동일한 단위 높이(Unit Height)를 가질 수 있다. 스탠다드 셀들은 그 종류에 따라 서로 다른 셀 폭(Cell Width)을 가질 수 있다. EDA 툴(122)은 PNR 단계에서 사용되는 금속 배선들의 정보를 이용할 수 있다.
또한, EDA 툴(122)은 상기 집적 회로에 포함되는 스탠다드 셀들의 정보를 이용하여 플로어 플랜 룰(Floorplan Rule)에 따라 플로어 플랜(Floorplan)을 수행할 수 있다. 예를 들면, 플로어 플랜은 사이트-로우를 생성하는 것과 생성된 사이트-로우에 금속 배선 트랙(Metal Routing Track)을 형성하는 것을 포함할 수 있다. 사이트-로우는 반도체 장치를 설계하기 위해 이용되는 스탠다드 셀들을 배치하기 위한 틀이다. EDA 툴(122)은 반도체 장치를 설계하기 위하여 복수의 사이트-로우들을 생성할 수 있으며, 사이트-로우들은 동일한 크기로 생성되어 서로 인접하여 배치될 수 있다. EDA 툴(122)은 상기 플로어 플랜이 수행된 데이터에 기초하여 본 발명의 예시적 실시예에 따른 최단 경로 탐색을 수행할 수 있다. 또는, EDA 툴(122)은 회로의 물리적 정보(예를 들어, DEF(Design Exchange Format), LEF(Library Exchange Format) 데이터)만에 기초하여 본 발명의 예시적 실시예에 따른 최단 경로 탐색을 수행할 수도 있다. 이에 대한 구체적인 설명은 후술하도록 하겠다. 금속 배선 트랙은 추후 금속 배선들이 형성되는 가상의 선이다. 본 발명의 예시적 실시예에서는, 이와 같은 배선들을 형성함에 있어서, 최단 경로의 측정 결과에 따라 레이아웃의 구성들을 위치시켜 배선들을 형성할 수 있다.
또한 EDA 툴(122)은 PNR단계를 수행함에 있어서, 본 발명의 예시적 실시예에 따른 최단 경로 탐색 방법에 기초하여 설계된 레이아웃에 따라 스탠다드 셀들을 배치하고, 스탠다드 셀들 사이에 금속 배선들을 연결할 수 있다. 예를 들면, EDA 툴(122)은 본 발명의 예시적 실시예에 따른 방법에 기초하여 생성되는 반도체 장치의 정보에 기초하여 스탠다드 셀들을 배치할 수 있다. 또한, EDA 툴(122)은 반도체 장치의 넷리스트(Netlist)를 사용하여 금속 배선 트랙을 따라 금속 배선들을 형성하여 스탠다드 셀들 사이를 연결할 수 있다.
I/O 인터페이스(130)는 사용자 인터페이스 장치들로부터의 사용자 입력 및 출력을 제어할 수 있다. 예를 들면, I/O 인터페이스(130)는 키보드, 마우스, 터치패드와 같은 입력 장치를 구비하여 반도체 장치의 넷리스트 파일이나 다양한 스탠다드 셀들의 구성 정보를 수신할 수 있다. 그리고 I/O 인터페이스 (130)는 모니터 등의 출력 장치를 구비하여 집적 회로 설계 시스템(100)의 설계 동작에서의 경과 및 처리 결과 등을 표시할 수 있다.
저장 장치(140)는 집적 회로 설계 시스템(100)의 저장 매체(Storage Medium)로서 제공될 수 있다. 저장 장치(140)는 응용 프로그램들(Application Program), 운영 체제(OS) 이미지 및 각종 데이터를 저장할 수 있다. 저장 장치(140)는 메모리 카드(MMC, eMMC, SD, MicroSD 등)나 하드디스크 드라이브(HDD)로 제공될 수도 있다. 저장 장치(170)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)를 포함할 수 있다. 또는, 저장 장치(140)는 PRAM, MRAM, ReRAM, FRAM 등의 차세대 불휘발성 메모리나 플래시 메모리를 포함할 수도 있다.
시스템 버스(150)는 집적 회로 설계 시스템(100)의 내부에서 네트워크를 제공하기 위한 인터커넥터로 제공될 수 있다. 시스템 버스(150)를 통해서 CPU(110), 워킹 메모리(120), I/O 인터페이스(130), 그리고 저장 장치(140)가 전기적으로 연결되고 상호 데이터를 교환할 수 있다. 하지만, 시스템 버스(150)의 구성은 상술한 설명에만 국한되지 않으며, 효율적인 관리를 위한 중재 수단들을 더 포함할 수 있다.
도 2는 본 발명의 예시적 실시예에 따른 집적 회로의 설계 과정을 설명하기 위한 흐름도이다.
도 1 및 도 2를 참조하면, 집적 회로의 설계 과정은 집적 회로에 대한 레이아웃을 디자인하는 단계로서, 도 1을 참조하여 설명한 집적 회로 설계 시스템(100)에 의해 수행될 수 있다. 집적 회로 설계 시스템(100)은 프로세서에 의해 수행되는 복수의 명령어들을 포함하는 프로그램을 포함할 수 있다. 이에 따라, 본 설계 과정은 집적 회로의 설계를 위한 컴퓨터 구현(computer implemented) 단계일 수 있다. 이와 같이 설계된 레이아웃을 기초로 하여 반도체 소자를 제조하는 과정은 반도체 공정 모듈에서 수행될 수 있다.
집적 회로의 설계 과정은, 설계된 집적 회로에 대한 정보(예를 들어, RTL 데이터)를 포함하는 입력 데이터를 수신하는 단계(S10), 도 1에서 전술한 바와 같은 플로어 플랜(Floorplan) 단계(S11), 파워 플랜(powerplan) 단계(S12), 배치(Place) 단계(S13), CTS(Clock Tree Synthesis) 단계(S14), 라우팅(Routing) 단계(S15), 및 타이밍(Timing) ECO(Engineering Change Order) 단계(S16)를 포함할 수 있다. 집적 회로 설계 과정의 각각의 단계들 중 적어도 일부는 스탠다드 셀 라이브러리(Cell Library)(50)의 스탠다드 셀들에 기초하여 수행될 수 있다.
플로어 플랜 단계(S11)는 논리적으로 설계된 스키매틱 회로를 자르고 옮겨서 물리적으로 설계하는 단계일 수 있다. 예를 들어 플로어 플랜은, 블록 내 게이트들의 개략적인 배치 정보를 의미할 수 있다. EDA 툴(122)은 본 발명의 예시적 실시예에 따른 최단 경로 탐색을 위해 이와 같이 플로어 플랜 수행에 있어서 사용되는 데이터 중, 회로에 대한 물리적 정보(예를 들어, DEF(Design Exchange Format), LEF(Library Exchange Format) 등)를 이용할 수 있다. 플로어 플랜 단계(S11)에서는 메모리 또는 회로 기능 블록들이 배치될 수 있다. 마찬가지로, EDA 툴(122)은 구체적으로 후술할 바와 같이 이러한 블록들 등의 배치 정보(Location data)를 이용하여 라우팅이 가능한 최단 경로를 탐색할 수 있다. 본 단계에서는, 예를 들어, 인접하게 배치되어야 하는 회로 기능 블록들을 식별하고, 사용 가능한 공간 및 필요한 성능 등을 고려하여 상기 회로 기능 블록들을 위한 공간을 할당할 수 있다. 예를 들어, 플로어 플랜 단계(S11)는 전술한 바와 같이 사이트-로우(site-row)를 생성하는 단계 및 생성된 사이트-로우에 라우팅 트랙(routing track)을 형성하는 단계를 포함할 수 있다. 상기 사이트-로우는 규정된 설계 규칙에 따라, 스탠다드 셀 라이브러리(50)에 저장된 스탠다드 셀들(standard cells)을 배치하기 위한 틀이다. 상기 라우팅 트랙은 추후에 배선들이 형성되는 가상의 선을 제공한다. 상기 라우팅 트랙들에는, 후속의 라우팅 단계(S15)에서 배선들이 배치될 수 있다.
파워 플랜 단계(S12)는 배치된 상기 회로 기능 블록들에 국지적인 전원, 예를 들어, 구동 전압 또는 접지를 연결하는 배선들의 패턴들을 배치하는 단계일 수 있다. 예를 들어, 네트 형태로 칩(Chip) 전체에 전원이 골고루 공급될 수 있도록, 전원 또는 접지를 연결하는 배선들의 패턴들이 생성될 수 있다. 본 단계에서는 상기 패턴들을 다양한 규칙을 통해서 네트 형태로 생성할 수 있다.
배치(Place) 단계(S13)는 상기 회로 기능 블록을 구성하는 소자들의 패턴들을 배치하는 단계로, 스탠다드 셀 라이브러리(50)로부터의 스탠다드 셀들을 배치하는 단계를 포함할 수 있다. 특히, 예시적인 실시예들에서, 스탠다드 셀들 각각은 본 발명의 예시적 실시예에 따라 탐색된 최단 배선 경로에 대응하도록 구성될 수 있다. 스탠다드 셀들의 사이에는 빈 영역들이 발생할 수 있으며, 상기 빈 영역들은 필러 셀들에 의해 채워질 수 있다. 스탠다드 셀들과 달리, 필러 셀들은 더미 영역을 포함할 수 있다. 본 단계에 의해, 실제로 실리콘 기판 상에 형성될 트랜지스터 및 배선들을 구성하기 위한 패턴의 형태나 사이즈가 정의될 수 있다. 예를 들면, 인버터 회로를 실제 실리콘 기판 상에 형성하기 위하여, PMOS, NMOS, N-WELL, 게이트 전극, 및 이들 상에 배치될 배선들과 같은 레이아웃 패턴들을 적절히 배치할 수 있다. 일부 실시예들에 있어서, 배치 단계(S13)가 수행된 이후라도, 본 발명의 예시적 실시예에 따른 최단 경로 탐색 방법에 기초하여, 최단 배선 경로를 만족하도록 셀들 등의 재배치가 이루어질 수도 있다.
CTS 단계(S14)는 반도체 소자의 성능을 결정하는 동작 속도와 관련된 중심 클럭의 신호선들의 패턴들을 생성하는 단계일 수 있다.
라우팅 단계(S15)는 위와 같이 배치된 스탠다드 셀들을 연결하는 배선 구조물을 생성하는 단계일 수 있다. 상기 배선 구조물은 스탠다드 셀들 내의 배선들에 전기적으로 연결되며, 스탠다드 셀들을 상호 전기적으로 연결할 수 있다.
이후에, 배치, CTS, 라우팅(S13 내지 S15) 단계의 결과를 검증할 수 있다. 구체적으로는, 타이밍 ECO(engineering change order) 단계(S16)가 수행될 수 있다. 예를 들어, 상기 타이밍 ECO 동작은 정적 타이밍 분석(Static Timing Analysis; STA) 동작 및 타이밍을 업데이트 하는 동작(update timing)을 포함할 수 있다. 예를 들어, 상기 타이밍 ECO 동작은 타이밍 최적화(timing optimization) 동작을 포함할 수 있다. 검증을 위해, 타이밍 위반(timing violation)이 있는지 여부를 판단하는 동작을 포함할 수 있다. 예를 들어, 플립 플롭(flip-flop)의 셋업 타이밍 위반(setup time violation) 또는 홀드 타이밍 위반(hold time violation)이 있는지 여부가 판단될 수 있다. 타이밍 지연(Timing Latency)은 배선 경로 즉, 물리적 거리에 따라 상당한 영향을 받을 수 있다. 따라서, 본 발명의 예시적 실시예에 따라 최단 배선 경로를 조기에 획득함으로써, 타이밍 위반 또는 지연을 유발하는 포인트를 조기에 확인할 수 있다. 이러한 포인트들을 조기에 수정함으로써, 설계 퀄리티(Design quality)(예를 들어, 타이밍 QoR(Quality of Result))를 높이고, TAT(Turn Around Time)를 향상시킬 수 있다. 또한, 설계에 소요되는 시간 역시 전체적으로 감소시킬 수 있다. 마찬가지로, 타이밍 ECO 단계(S16)가 수행된 이후라 하더라도, 본 발명의 예시적 실시예에 따른 최단 경로 탐색 방법에 기초하여, 목표하는 타이밍을 만족하도록 셀들 등의 재배치가 이루어질 수도 있다.
이후, 미리 정해진 물리적 설계 규칙 확인(physical design rule check(DRC)) 및 수정이 수행될 수 있다. 예를 들어, 설계 규칙 확인은 도 1의 저장 장치(140)에 저장된 설계 규칙에 기초하여 수행될 수 있다.
도 3은 본 발명의 예시적 실시예에 따른 최단 경로 탐색 방법을 설명하기 위한 흐름도이다.
도 1 내지 도 3을 참조하면, 본 발명의 예시적 실시예에 따른 최단 경로 탐색 방법은 플로어 플랜 데이터를 수신하는 단계(S21), 라우팅이 가능한 영역과 불가능한 영역을 구분하는 단계(S22), 제1 지점 및 제2 지점의 위치 데이터를 수신하는 단계(S23) 및 최단 경로를 탐색하는 단계(S24)를 포함할 수 있다.
전술한 바와 같이, 플로어 플랜을 수행할 때, 논리적으로 설계된 스키매틱 회로를 물리적으로 설계하는 동작이 수행될 수 있다. 이때, EDA 툴(122)은 플로어 플랜을 수행한 결과인 플로어 플랜 데이터를 수신할 수 있다(S21). 예를 들어, 플로어 플랜 데이터는 다양한 블록(Block)에 대한 데이터, I/O 영역에 대한 데이터, IP들에 대한 데이터를 포함할 수 있다. 즉, 플로어 플랜 데이터는 블록 및 IP 등의 위치와 크기(size)에 대한 정보를 포함할 수 있다. 또는 예를 들어, 설계 규칙(Design Rule)을 준수하기 위한 영역에 대한 데이터가 포함될 수도 있다. 이처럼 블록 및 IP 등이 차지하는 영역에 대한 데이터는 라우팅 즉, 배선이 불가능한 영역을 정의하는데 사용될 수 있다.
따라서, EDA 툴(122)은 플로어 플랜에 대한 데이터를 수신한 후, 이에 기초하여 라우팅이 가능한 영역과 라우팅이 불가능한 영역을 구분할 수 있다(S22). 이후, EDA 툴(122)은 사용자로부터 임의의 지점들에 대한 정보를 수신할 수 있다(S23). 즉, 사용자는 셀 또는 포트 또는 핀 등이 원하는 거리 내에 배치되었는지 확인하기 위해, 또는 이들을 원하는 지점에 위치시키기 위해 특정한 두 지점을 지정할 수 있다.
EDA 툴(122)은 상기 두 지점(제1 지점 및 제2 지점)에 대한 위치 데이터를 수신하여, 제1 지점 및 제2 지점 간의 최단 경로를 탐색할 수 있다(S24). 최단 경로를 탐색하는데 있어서, 예를 들어, 최단 경로 탐색에 대한 알고리즘인 에이스타(A*) 알고리즘 또는 점프 포인트 서치(Jump Point Search) 알고리즘 등이 이용될 수 있다. 그러나 본 발명은 이에 국한되지 않는다. 즉, 최단 경로를 탐색하는 데에 있어 위 알고리즘들 외에도 다양한 방법이 이용될 수 있다.
도 4는 본 발명의 예시적 실시예에 따른 최단 경로 탐색 방법을 설명하기 위한 흐름도이다.
도 2 내지 도 4를 참조하면, EDA 툴(122)은 집적 회로의 물리적 정보를 이용하여 최단 경로 탐색을 수행할 수 있다. 집적 회로의 물리적 정보만으로도 집적 회로에서 라우팅이 가능한 영역과 라우팅이 불가능한 영역은 구분될 수 있다. 즉, EDA 툴(122)은 플로어 플랜 단계(S11)가 수행되기 전이라도, 집적 회로에 대한 데이터를 수신한 후, 이에 기초하여 본 발명의 예시적 실시예에 따른 거리 측정을 수행할 수 있다(S10 및 S30).
구체적으로는, EDA 툴(122)은 집적 회로에 대한 데이터 중, 라우팅이 가능한 영역을 구분하기 위해 필요한 데이터를 수신할 수 있다. 일부 예시적 실시예들에 있어서, EDA 툴(122)은 상기 데이터 중 물리적 정보(예를 들어, DEF(Design Exchange Format), LEF(Library Exchange Format) 등)만을 이용할 수 있다(S31). 물리적인 영역들을 구분하는 것이기 때문에, 회로의 논리적 연결(Logical connection)에 대한 논리적 연결(Logical connection)에 대한 논리적 정보(예를 들어, 넷리스트(netlist)) 등이 없더라도, 물리적 정보에 기초하여 라우팅이 불가능한 영역을 구분할 수 있다(S32). 예를 들어, EDA 툴(122)은 DEF, LEF 데이터 등을 통해 라우팅이 될 수 없는 영역에 대한 정보, 예를 들어, 다양한 블록(Block)에 대한 데이터, I/O 영역에 대한 데이터, IP들에 대한 데이터, 또는 설계 규칙(Design Rule)을 준수하기 위한 영역에 대한 데이터 등을 얻을 수 있다. 이처럼 블록 및 IP 등이 차지하는 영역에 대한 데이터는 라우팅 즉, 배선이 불가능한 영역을 정의하는 데 사용될 수 있다.
이하, 단계 S32 내지 S34는 도 3을 참조하여 전술한 단계 S22 내지 S24에 대응되므로, 이에 대한 설명은 생략하도록 하겠다.
도 5는 본 발명의 예시적 실시예에 따라 라우팅(Routing)이 가능한 영역을 구분하는 과정을 나타내기 위한 도면이다.
도 1, 도 3 내지 도 5를 참조하면, EDA 툴(122)은 플로어 플랜 데이터 또는 전술한 물리적 정보(예를 들어, DEF 및/또는 LEF 데이터)에 기초하여 영역을 구분할 수 있다. 일부 예시적 실시예들에 있어서, 구체적으로는, EDA 툴(122)은 플로어 플랜(Floorplan) 데이터 또는 전술한 바와 같은 물리적 정보(Physical Data)에 따라, 집적 회로의 전체 영역을 나타내는 영역 데이터(Region Data)를 생성할 수 있다. 또한 EDA 툴(122)은, 플로어 플랜 데이터 또는 물리적 정보(Floorplan / Physical Data)로부터 라우팅이 될 수 없는 영역에 대한 데이터를 얻을 수 있다. 예를 들어, EDA 툴(122)은 다양한 블록(Block)들이 차지하는 영역 대한 데이터, I/O 영역에 대한 데이터, IP들에 대한 데이터, 또는 설계 규칙(Design Rule)을 준수하기 위한 영역에 대한 데이터 등을 얻을 수 있다. 그러나 본 발명이 라우팅이 불가능한 영역을 구분하기 위해 사용하는 데이터는 이에 국한되지 않는다. 즉, EDA 툴(122)은 플로어 플랜 데이터 또는 물리적 정보(Floorplan / Physical Data)로부터, 상기 예시들 이외에도 배선이 될 수 없게 하는 영역에 대한 데이터를 얻을 수 있다. EDA 툴(122)은 획득한 상기 라우팅이 될 수 없는 영역에 대한 데이터에 따라, 영역 데이터(Region Data)를 라우팅이 가능한 제1a 영역(Region 1a)과 라우팅이 불가능한 제2a 영역(Region 2a)로 구분한 제1 구분 영역 데이터(200)를 생성할 수 있다.
도 6은 본 발명의 예시적 실시예에 따른 최단 경로 탐색 방법을 설명하기 위한 도면이다.
도 5 내지 도 6을 참조하면, EDA 툴(122)은 제1 구분 영역 데이터(200)에 기초하여 특정된 두 지점 간의 최단 경로를 탐색할 수 있다. 예를 들어, EDA 툴(122)은 사용자 등 외부에 의해 특정된 제1 지점(A) 및 제2 지점(B)에 대한 위치 데이터를 수신할 수 있다. EDA 툴(122)은 제1 지점(A) 및 제2 지점(B)에 대한 위치 데이터에 기초하여 제1 구분 영역 데이터(200) 상에 도시된 바와 같이 두 지점을 특정할 수 있다. 이어서, EDA 툴(122)은 라우팅이 가능한 제1a 영역(Region 1a) 상에서, 특정된 제1 지점(A) 및 제2 지점(B)을 연결하는 최단 경로(예를 들어, 제1 최단 경로(SP1))를 탐색할 수 있다. 예를 들어, 최단 경로 탐색에 대한 알고리즘인 에이스타(A*) 알고리즘 또는 점프 포인트 서치(Jump Point Search) 알고리즘 등이 이용될 수 있다. 그러나 본 발명은 이에 국한되지 않는다. 즉, 최단 경로를 탐색하는 데에 있어 위 알고리즘들 외에도 다양한 방법이 이용될 수 있다.
일 실시예로, 제1 지점(A) 및 제2 지점(B)은 사용자가 배치된 셀들 간의 경로를 검증하기 위해 지정한(또는, 사용자가 연결될 셀들을 배치하고 싶은 위치를 특정하기 위해 지정한) 셀들의 임의의 위치일 수 있다. 또는, 예를 들어, 제1 지점(A) 및 제2 지점(B)은 포트들 간의 라우팅을 위해 지정한 포트들의 임의의 위치일 수 있다. 그러나 본 발명은 이에 국한되지 않는다. 즉, 제1 지점(A) 및/또는 제2 지점(B)은 어느 두 지점간의 최단 경로를 파악하기 위해 사용자가 특정한 포인트들(예를 들어, 핀 위치 등)을 포괄할 수 있다. 이를 통해, 사용자가 특정한 제1 지점(A) 및 제2 지점(B)에 원하는 레이아웃의 구성들이 배치될 수 있고, 상기 구성들은 제1 최단 경로(SP1)에 기초하여 라우팅될 수 있다.
설계의 퀄리티(Design quality)(예를 들어, 타이밍 퀄리티(Timing quality))를 높이기 위해서는 타이밍 지연(Timing latency)에 큰 영향을 미치는 물리적인 거리를 감소시키는 등의 조정이 요구될 수 있다. 상술한 바와 같이 본 발명은, 회로의 라우팅 가능 영역 판단을 위해 논리적 정보(예를 들어, 넷리스트(Netlist) 등의 논리적 연결(Logical connection)에 대한 정보) 없이 물리적 정보(예를 들어, DEF, LEF 데이터 등)만을 이용하므로, 초기 수준의 데이터만에 기초하여 최단 경로를 파악할 수 있다. 결과적으로, 본 발명을 통해 사용자가 원하는 거리 내에 셀, 포트 등이 배치되어 목표하는 타이밍 동작을 수행할 수 있도록 조기에 판단하여 레이아웃의 구성을 위치시킬 수 있고, 또는, 원하는 거리 내에 셀, 포트 등이 배치되어 있는지를 조기에 검증하여 위치를 조정할 수 있다. 이를 통해, 설계 규칙 위반(Design Rule Violation) 및/또는 타이밍 위반(Timing Violation)을 유발하는 지점을 파악하여 상기 현상들을 보다 빠른 시점에서 예방할 수 있고, 따라서 TAT(Turn Around Time) 및/또는 QoR(Quality of Result)을 향상시킬 수 있다.
또한, 배치(Place) 또는 라우팅이 이루어진 후에 배선 길이를 측정하여 판단할 경우, 배치 단계, CTS 단계, 라우팅 단계가 모두 수행되어야하므로 소요 시간 및 자원 소모가 증가할 수 있다. 특히 레이아웃 또는 칩의 크기가 커질수록 상기 단계들의 수행시간이 크게 증가할 수 있다. 또한, 라우팅 이후 배선 길이를 통해 측정하기 위해서는 합성(Synthesis)를 위해 SDC(Synopsys Design Constraints) 파일 등이 요구되므로, 이를 준비하기 위한 추가적인 시간 및 자원이 요구될 수 있다. 그러나, 본 발명은 초기 수준의 데이터를 통해 거리(distance) 및 타이밍(timing)에 대한 판단 및 그에 따른 레이아웃 구성의 수정이 가능하므로 시간 및 자원 소모를 효과적으로 줄일 수 있다.
또한, 상술한 바와 같이 본 발명은 초기 수준의 데이터에 기초한 최단 경로 탐색 및 검증 과정을 자동화하여 수행하므로, 수동으로 수행할 때 발생하는 에러를 낮춰 정확도를 높일 수 있고, 검증 자체에 소요되는 시간도 감소시킬 수 있다.
도 7은 본 발명의 예시적 실시예에 따른 행렬(Array) 생성 과정을 설명하기 위한 도면이다.
도 3 내지 도 5 및 도 7을 참조하면, EDA 툴(122)은 회로의 전체 영역을 제1 행렬(Array 1)로 변환할 수 있다. 일부 실시예들에 있어서, EDA 툴(122)은 플로어 플랜 데이터 또는 전술한 물리적 정보(예를 들어, DEF 및/또는 LEF 데이터)에 기초하여 영역 데이터(Region Data)를 생성할 수 있다. EDA 툴(122)은 레이아웃의 전체 영역을 단위 면적으로 나눌 수 있다. 단위 면적의 크기는 외부의 제어에 의하여 미리 설정될 수 있으며, 다양한 크기를 가질 수 있다.
EDA 툴(122)은 단위 면적 각각에 대응하는 성분들을 포함하는 행렬을 생성할 수 있다. 예를 들어, 도시된 바와 같이 영역 데이터(Region Data)를 일정 크기의 영역으로 나눈 후, 이에 대응하는 11 x 11 크기의 제1 행렬(Array 1)로 변환할 수 있다. 제1 행렬(Array 1)의 성분들 각각은, 상기 일정 크기의 영역들 각각에 대응할 수 있다. 본 실시예에서는 제1 행렬(Array 1)의 성분들이 0으로 표시되었지만, 이에 국한되지 않고 다양한 문자로 표시될 수 있다.
도 8은 본 발명의 예시적 실시예에 따라 최단 경로 탐색의 다른 방법을 설명하기 위한 도면이다.
도 5 내지 도 8을 참조하면, EDA 툴(122)은 변환한 행렬에 기초하여 최단 경로를 탐색할 수 있다. 일부 실시예들에 있어서, EDA 툴(122)은 도 5를 참조하여 전술한 바와 같이, 플로어 플랜 데이터 또는 물리적 정보(예를 들어, DEF 및/또는 LEF 데이터)에 기초하여, 회로의 레이아웃을 라우팅이 가능한 제1b 영역(Region 1b)과 라우팅이 불가능한 제2b 영역(Region 2b)으로 구분한 제2 구분 영역 데이터(300)를 생성할 수 있다.
이후, EDA 툴(122)은 제2 구분 영역 데이터(300)에 기초하여 제1 행렬(Array 1)의 성분들을 변경할 수 있다. 구체적으로는, 제2 구분 영역 데이터(300) 역시 도 7을 참조하여 전술한 바와 같이 미리 설정된 단위 면적으로 나누어질 수 있다. 제1 행렬(Array 1) 역시 상기 단위 면적으로 나뉘어져 있으므로, 제1 행렬(Array 1)이 포함하는 성분들은 제2 구분 영역 데이터(300)의 단위 면적 각각에 대응할 수 있다. 마찬가지로, 제2 구분 영역 데이터(300)에 포함된 제1b 영역(Region 1b)과 제2b 영역(Region 2b)도 단위 면적에 기초하여 나뉘어질 수 있다. 이때, EDA 툴(122)은 제1b 영역(Region 1b)에 포함된 단위 면적들과 대응하는 제1 행렬(Array 1)의 성분들을 0으로 표시할 수 있다. 마찬가지로, EDA 툴(122)은 제2b 영역(Region 2b)에 포함된 단위 면적들과 대응하는 제1 행렬(Array 1)의 성분들을 1로 표시할 수 있다. 결과적으로, EDA 툴(122)은 레이아웃에서 라우팅이 가능한 영역과 불가능한 영역을 행렬의 성분들을 통해 구분할 수 있는 제2 행렬(Array)을 생성할 수 있다. 본 실시예에서는 제2 행렬(Array 2)에서 라우팅이 가능한 영역에 대응하는 성분들이 0으로, 라우팅이 불가능한 영역에 대응하는 성분들이 1로 표시되었지만, 이에 국한되지 않고 양 영역을 구분하기 위해, 행렬의 성분들이 다양한 문자로 표시될 수 있다.
일부 실시예들에 있어서, EDA 툴(122)은 도 6을 참조하여 전술한 바와 같이, 사용자 등 외부에 의해 특정된 제3 지점(C) 및 제4 지점(D)에 대한 위치 데이터를 수신할 수 있다. EDA 툴(122)은 제3 지점(C) 및 제4 지점(D)에 대한 위치 데이터에 기초하여, 도시된 바와 같이 제2 행렬(Array 2) 상에 두 지점을 특정할 수 있다. 이어서, EDA 툴(122)은 라우팅이 가능한 제1b 영역(Region 1b) 상에서, 즉, 제2 행렬(Array 2)에서 0으로 표시된 성분들 상에서, 특정된 제3 지점(C) 및 제4 지점(D)을 연결하는 최단 경로(예를 들어, 제2 최단 경로(SP2))를 탐색할 수 있다. 예를 들어, 최단 경로 탐색에 대한 알고리즘인 에이스타(A*) 알고리즘 또는 점프 포인트 서치(Jump Point Search) 알고리즘 등이 이용될 수 있다. 그러나 본 발명은 이에 국한되지 않는다. 즉, 최단 경로를 탐색하는 데에 있어 위 알고리즘들 외에도 다양한 방법이 이용될 수 있다. 일 실시예로, 제3 지점(C) 및 제4 지점(D)은 사용자가 배치된 셀들 간의 경로를 검증하기 위해 지정한(또는, 사용자가 연결될 셀들을 배치하고 싶은 위치를 특정하기 위해 지정한) 셀들의 임의의 위치일 수 있다. 이하 전술한 내용들과 중복되는 설명은 생략하도록 하겠다.
이를 통해 본 발명은, 회로의 라우팅 가능 영역 판단을 위해 논리적 정보 없이 물리적 정보만을 이용하여, 즉 초기 수준의 데이터를 행렬로 변환하여 최단 경로를 탐색할 수 있다. 행렬 변환을 통해 사용자가 원하는 거리 내에 셀, 포트 등이 배치되어 목표하는 동작을 수행하는지 조기에 판단 및 검증하는 과정을 보다 자동화할 수 있고, 정확한 면적 구획을 통해 정확도를 높일 수 있다. 따라서, 설계 규칙 위반 및/또는 타이밍 위반을 유발하는 지점의 보다 빠르고 정확한 파악을 통해 사용되는 시간과 자원을 감소시킬 수 있고, TAT 및/또는 QoR을 보다 효과적으로 향상시킬 수 있다.
도 9는 본 발명의 예시적 실시예에 따른 집적 회로의 레이아웃 설계 과정을 설명하기 위한 흐름도이다.
도 3 및 도 9를 참조하면, EDA 툴(122)은 탐색한 최단 경로의 거리를 기준 거리와 비교하여 레이아웃을 설계할 수 있다. 본 도면에서의 단계 S41 내지 S43은 도 3을 참조하여 전술한 단계 S22 내지 S24에 대응되므로, 이에 대한 설명은 생략하도록 하겠다.
EDA 툴(122)은 탐색한 최단 경로의 거리(이하, 최단 거리)를 기준 거리와 비교할 수 있다(S44). 기준 거리는 사용자 등 외부의 제어에 의하여 미리 설정될 수 있다. 최단 거리가 기준 거리보다 클 경우, 사용자가 원하는 타이밍 스펙(Spec) 등의 기준에 미치지 못하는 것이므로, EDA 툴(122)은 새로운 지점(들)에 대한 위치 정보를 수신할 수 있다. 다시 말해서, 사용자는 제1 지점(A) 및 제2 지점(B)을 특정하여 최단 경로를 탐색한 결과, 최단 거리가 기준 거리보다 커서 특정 기준을 만족하지 못할 경우, 새로운 지점을 특정하여 최단 경로를 재탐색하게 할 수 있다. 사용자는 제1 지점(A) 및 제2 지점(B)을 모두 대체하는 새로운 지점들을 지정할 수 있고, 또는, 제1 지점(A) 또는 제2 지점(B) 중 어느 하나를 대체하는 지점을 지정할 수도 있다. EDA 툴(122)은 지점들의 위치 정보를 상기 새로운 지점(들)에 대한 위치 정보로 업데이트할 수 있다(S45).
반대로, 최단 거리가 기준 거리보다 작거나 같을 경우, 대응하는 최단 경로는 사용자가 원하는 타이밍 스펙(Spec) 등의 기준을 만족한다고 볼 수 있다. 따라서, EDA 툴(122)은 제1 지점(A) 및 제2 지점(B)에 대응하도록 셀들(또는, 포트들, 핀들 등)을 위치시키거나, 또는 셀들(또는, 포트들, 핀들 등)의 위치를 수정할 수 있다(S46). 예를 들어 셀들을 위치시키고자 할 경우, EDA 툴(122)은 탐색한 최단 경로를 따라 셀들이 라우팅될 수 있도록, 셀들 각각이 제1 지점(A) 및 제2 지점(B)에 위치하는 것으로 설정할 수 있다. 이처럼, EDA 툴(122)은 사용자가 원하는 조건을 만족할 때까지, 최단 경로 탐색을 반복할 수 있다.
도 10은 본 발명의 예시적 실시예에 따른 최단 경로 탐색에 따른 셀 배치 조정을 설명하기 위한 도면이다.
도 10을 참조하면, 일부 예시적 실시예들에 있어서, 집적 회로는 제1 내지 제3 셀(C1 내지 C3)을 포함할 수 있다. 또한, 집적 회로는 라우팅 영역(Routing Area)을 포함할 수 있다. 라우팅 영역(Routing Area)은 제1 내지 제3 셀(C1 내지 C3)을 연결하는 라우팅 배선을 포함할 수 있다. 구체적으로, 제1 및 제2 셀(C1 및 C2)은 제1 라우팅 배선(RT1)에 의해 연결될 수 있다. 제1 라우팅 배선(RT1)은 제1 트랙(TR1)에 따라 배치될 수 있고, 제1 라우팅 배선(RT1)은 M2 배선층과 다른 M1 배선층에 형성될 수 있다. 제1 라우팅 배선(RT1)의 X축 방향의 길이는 제1 거리(d1)일 수 있다. 라우팅 배선의 Y축 방향의 길이, 즉 너비는 라우팅 배선의 X축 방향 길이에 기초하여 결정될 수 있다.
예를 들어, 사용자는 전술한 바와 같이 임의의 스펙(예를 들어, 타이밍 지연, TAT 등)을 만족시키기 위해, 제1 셀(C1)과 제2 셀(C2)을 라우팅할 때 형성되는 경로의 거리가 제1 기준 거리(d1보다 작고 d2보다 크거나 같은 값)보다 작거나 같기를 요구할 수 있다. 제1 라우팅 배선(RT1)이 가지는 제1 거리(d1)은 제1 기준 거리보다 크므로, 사용자는 제1 셀(C1) 및 제2 셀(C2)이 위치할 새로운 지점(들)을 지정할 수 있다. EDA 툴(122)이 새로운 지점(들)에 대하여 최단 경로를 탐색한 결과, 이에 기초한 제2 라우팅 배선(RT2)을 탐색할 수 있다. 제2 라우팅 배선(RT2)은 X축 방향으로 제2 거리(d2)를 가지는 바, 제1 기준 거리보다 작거나 같으므로 상기 임의의 스펙을 만족할 수 있다. 결과적으로, 셀 배치가 사용자가 요구하는 임의의 조건을 만족하지 못할 경우, 상기 셀 배치는 EDA 툴(122)의 최단 경로 탐색에 기초하여 수정될 수 있다.
도 11a 및 도 11b는 본 발명의 예시적 실시예에 따른 최단 경로 탐색에 따른 포트의 위치 조정을 설명하기 위한 도면이다.
도 11a 및 도 11b를 참조하면, 일부 실시예들에 있어서, 집적 회로는 제4 내지 제6 셀(C4 내지 C6)을 포함할 수 있으며, 제4 내지 제6 셀(C4 내지 C6) 각각은 D3 방향으로 서로 인접하여 배치될 수 있다. 제4 셀(C4)은 포트(P1)를 포함할 수 있고, 포트(P1)는 D2 방향으로 나열된 핀들의 후보 위치들(PIN11, PIN12)을 포함할 수 있다. 제5 셀(C5)은 포트들(P2, P3)을 포함할 수 있고, 포트(P2)는 핀들의 후보 위치들(PIN21, PIN22)을, 포트(P3)은 핀들의 후보 위치들(PIN31, PIN32)을 포함할 수 있다. 제6 셀(C6)은 포트(P4)를 포함할 수 있고, 포트(P4)는 핀들의 후보 위치들(PIN41, PIN42)을 포함할 수 있다. 본 예시적 실시예에서는 2개의 후보 위치들을 포함하는 포트들이 설명되지만, 이에 국한되지 않는다. 즉, 포트들 각각은 다양한 개수의 후보 위치들을 포함할 수 있다.
도시된 바와 같이, 예를 들어, 제4 셀(C4)과 제5 셀(C5)이 서로 연결되기 위해 포트(P1)의 핀과 포트(P3)의 핀이 연결될 수 있다. 이 경우, 포트(P1)와 포트(P3)가 연결되기 위한 배선의 D3 방향으로의 길이는 제3 거리(d3)일 수 있다. 또한, 제5 셀(C5)과 제6 셀(C6)이 서로 연결되기 위해 포트(P2)의 핀과 포트(P4)의 핀이 연결될 수 있고, 이 경우, 포트(P2)와 포트(P4)가 연결되기 위한 배선의 D3 방향으로의 길이는 제4 거리(d4)일 수 있다. 한편, 사용자가 요구하는 전술한 바와 같은 임의의 스펙들을 만족시키기 위해, 제2 기준 거리(d3보다 작고 d5보다 크거나 같은 값) 및 제3 기준 거리(d4보다 작고 d6보다 크거나 같은 값)가 설정될 수 있다. 제3 거리(d3) 및 제4 거리(d4)는 각각 제2 기준 거리 및 제3 기준 거리보다 크므로, 사용자는 포트들(P1 내지 P4)이 위치한 새로운 지점(들)을 지정할 수 있다.
예를 들어, 사용자는 포트(P3)의 새로운 지점으로서 지점(P_a)를, 포트(P2)의 새로운 지점으로서 지점(P_b)를 특정할 수 있다. 이에 기초하여, EDA 툴(122)은 새로운 지점들(P1과 P_a 지점 간 / P_b와 P4 지점 간)에 대하여 최단 경로를 탐색할 수 있다. 탐색 결과, P1과 P_a 지점 간의 제5 거리(d5)는 제2 기준 거리보다 작거나 같고, P_b와 P4 지점 간의 제6 거리(d6)은 제3 기준 거리보다 작거나 같으므로, 상기 임의의 스펙들을 만족할 수 있다. 따라서, 위 결과들에 기초하여 포트들(P2, P3)의 위치가 조정될 수 있고, 탐색된 최단 경로를 따라 포트(P1) 및 포트(P3)는 배선(M1)으로, 포트(P2) 및 포트(P4)는 배선(M4)로 라우팅될 수 있다. 마찬가지로, 포트(P1)의 핀의 후보 위치(PIN12)는 다른 셀과의 최단 경로를 만족하도록 D3 방향의 배선(M2)으로, 포트(P4)의 핀의 후보 위치(PIN41) 또한 다른 셀과의 최단 경로를 만족하도록 D1 방향의 배선(M3)으로 라우팅될 수 있다.
결과적으로, 포트 배치가 사용자가 요구하는 임의의 조건을 만족하지 못할 경우, 상기 포트 배치는 EDA 툴(122)의 최단 경로 탐색에 기초하여 수정될 수 있다.
본 개시는 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.

Claims (20)

  1. 집적 회로의 레이아웃을 설계하는 방법으로서,
    상기 집적 회로에 대한 입력 데이터에 기초하여 플로어 플랜(Floorplan)을 수행함으로써 플로어 플랜 데이터를 생성하는 단계;
    상기 플로어 플랜 데이터를 바탕으로, 특정된 제1 지점 및 제2 지점 간 경로를 탐색하는 단계; 및
    상기 탐색의 결과에 기초하여 상기 레이아웃의 구성들을 위치시키는 단계를 포함하고,
    상기 경로를 탐색하는 단계는,
    상기 플로어 플랜 데이터에 기초하여, 라우팅(Routing)이 가능한 제1 영역과 라우팅이 불가능한 제2 영역을 구분하는 단계;
    상기 제1 지점 및 상기 제2 지점에 대한 위치 데이터를 수신하는 단계; 및
    상기 제1 영역 상에서, 상기 제1 지점 및 상기 제2 지점 간의 최단 경로를 탐색하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 제1 영역 및 제2 영역을 구분하는 단계는,
    상기 플로어 플랜 데이터에 기초하여, 단위 면적에 각각 대응하는 성분들을 포함하는 행렬을 생성하는 단계; 및
    상기 행렬에 기초하여, 상기 제1 영역 및 상기 제2 영역을 구별하는 단계를 포함하는 방법.
  3. 제2항에 있어서,
    상기 단위 면적은 외부의 제어에 의하여 미리 설정되는 것을 특징으로 하는 방법.
  4. 제2항에 있어서,
    상기 제1 영역 및 상기 제2 영역을 구별하는 단계는,
    상기 행렬에서, 상기 제1 영역에 대응하는 상기 행렬의 성분들과 상기 제2 영역에 대응하는 상기 행렬의 성분들을 서로 다른 문자로 표시하는 단계를 포함하는 방법.
  5. 제1항에 있어서,
    상기 경로를 탐색하는 단계는,
    상기 최단 경로의 거리와 기준 거리를 비교하여 지점들 간 경로의 재탐색 여부를 결정하는 단계를 더 포함하는 방법.
  6. 제5항에 있어서,
    상기 재탐색 여부를 결정하는 단계는,
    상기 최단 경로의 거리가 상기 기준 거리보다 클 경우, 상기 제1 지점 및 상기 제2 지점 중 적어도 하나를 대체하는 새로운 지점에 대한 위치 데이터를 수신하여 양 지점 간의 최단 경로를 탐색하는 단계를 포함하는 방법.
  7. 제5항에 있어서,
    상기 레이아웃의 구성들을 위치시키는 단계는,
    상기 최단 경로의 거리가 상기 기준 거리보다 작거나 같을 경우, 상기 최단 경로를 따라 셀들을 연결시키기 위해, 상기 제1 지점 및 상기 제2 지점에 대응하도록 상기 셀들을 배치하는 단계를 포함하는 방법.
  8. 제5항에 있어서,
    상기 레이아웃의 구성들을 위치시키는 단계는,
    상기 최단 경로의 거리가 상기 기준 거리보다 작거나 같을 경우, 상기 제1 지점 및 상기 제2 지점에 대응하도록, 셀들에 포함된 포트의 위치를 설정하는 단계를 포함하는 방법.
  9. 제5항에 있어서,
    상기 기준 거리는 외부의 제어에 의하여 미리 설정되는 것을 특징으로 하는 방법.
  10. 제1항에 있어서,
    상기 최단 경로를 탐색하는 단계는,
    에이스타(A*) 알고리즘 또는 점프 포인트 서치(Jump Point Search) 알고리즘을 이용하여 상기 제1 지점 및 상기 제2 지점 간의 최단 경로를 탐색하는 단계를 포함하는 방법.
  11. 집적 회로의 레이아웃을 설계하는 방법으로서,
    상기 집적 회로에 대한 입력 데이터 중, 상기 집적 회로의 물리적 정보를 포함하는 물리적 데이터를 수신하는 단계;
    상기 물리적 데이터에 기초하여, 라우팅(Routing)이 가능한 제1 영역과 라우팅이 불가능한 제2 영역을 구분하는 단계;
    특정된 제1 지점 및 제2 지점에 대한 위치 정보를 수신하는 단계; 및
    상기 제1 영역 상에서, 상기 제1 지점 및 상기 제2 지점 간의 최단 경로를 탐색하는 단계를 포함하는 방법.
  12. 제11항에 있어서,
    상기 물리적 데이터는 DEF(Design Exchange Format) 데이터 및 LEF(Library Exchange Format) 데이터를 포함하는 것을 특징으로 하는 방법.
  13. 제11항에 있어서,
    상기 제1 영역 및 제2 영역을 구분하는 단계는,
    상기 레이아웃을 단위 면적으로 나누어, 상기 단위 면적 각각에 대응하는 성분들을 포함하는 행렬로 변환하는 단계; 및
    상기 제1 영역에 대응하는 상기 행렬의 성분들과 상기 제2 영역에 대응하는 상기 행렬의 성분들을 서로 다른 문자로 표시하는 단계를 포함하는 방법.
  14. 제11항에 있어서,
    상기 방법은,
    상기 최단 경로의 거리와 기준 거리를 비교하여 지점들 간 경로의 재탐색 여부를 결정하는 단계를 더 포함하는 방법.
  15. 제14항에 있어서,
    상기 재탐색 여부를 결정하는 단계는,
    상기 최단 경로의 거리가 상기 기준 거리보다 클 경우, 상기 제1 지점 및 상기 제2 지점 중 적어도 하나를 대체하는 새로운 지점에 대한 위치 정보를 수신하여 양 지점 간의 최단 경로를 탐색하는 단계를 포함하는 방법.
  16. 제14항에 있어서,
    상기 방법은,
    상기 최단 경로의 거리가 상기 기준 거리보다 작거나 같을 경우, 상기 최단 경로를 따라 셀들을 연결시키기 위해 상기 제1 지점 및 상기 제2 지점에 대응하도록 상기 셀들을 배치하거나, 상기 셀들에 포함된 포트의 위치를 설정하는 단계를 더 포함하는 방법.
  17. 제11항에 있어서,
    상기 최단 경로를 탐색하는 단계는,
    에이스타(A*) 알고리즘 또는 점프 포인트 서치(Jump Point Search) 알고리즘을 이용하여 상기 제1 지점 및 상기 제2 지점 간의 최단 경로를 탐색하는 단계를 포함하는 방법.
  18. 반도체 칩(Chip)을 설계하는 시스템으로서,
    프로세서; 및
    상기 프로세서와 연결되고, 상기 칩을 설계하기 위한 배선 경로 탐색을 위한 명령어들을 저장하는 메모리를 포함하고,
    상기 명령어들에 의해, 상기 프로세서는,
    상기 칩의 DEF(Design Exchange Format) 데이터 및 LEF(Library Exchange Format) 데이터를 포함하는 물리적 정보를 수신하고,
    상기 물리적 정보에 기초하여, 상기 칩에서 라우팅(Routing)이 가능한 제1 영역과 라우팅이 불가능한 제2 영역을 구분하고,
    상기 칩의 크기에 대응하는 크기의 행렬을 생성하고,
    상기 제1 영역에 대응하는 상기 행렬의 성분들인 제1 성분 그룹과 상기 제2 영역에 대응하는 상기 행렬의 성분들인 제2 성분 그룹을 서로 다른 문자로 표시하고,
    특정된 제1 지점 및 제2 지점에 대한 위치 정보를 수신하고,
    상기 제1 성분 그룹 상에서, 상기 제1 지점 및 상기 제2 지점 간의 최단 경로를 탐색하는 것을 특징으로 하는 시스템.
  19. 제18항에 있어서,
    상기 프로세서는,
    상기 최단 경로의 거리가 기준 거리보다 클 경우, 상기 제1 지점 및 상기 제2 지점 중 적어도 하나를 대체하는 새로운 지점에 대한 위치 정보를 수신하여 양 지점 간의 최단 경로를 탐색하는 것을 특징으로 하는 시스템.
  20. 제18항에 있어서,
    상기 프로세서는,
    상기 최단 경로의 거리가 기준 거리보다 작거나 같을 경우,
    상기 최단 경로를 따라 셀들을 연결시키기 위해 상기 제1 지점 및 상기 제2 지점에 대응하도록 상기 셀들을 배치하거나,
    또는 상기 제1 지점 및 상기 제2 지점에 대응하도록 셀들에 포함된 포트의 위치를 설정하는 것을 특징으로 하는 시스템.
KR1020220174179A 2022-12-13 2022-12-13 집적 회로의 레이아웃을 설계하는 방법 및 시스템 KR20240088440A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220174179A KR20240088440A (ko) 2022-12-13 2022-12-13 집적 회로의 레이아웃을 설계하는 방법 및 시스템
US18/535,160 US20240193340A1 (en) 2022-12-13 2023-12-11 Method and system for designing layout of integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220174179A KR20240088440A (ko) 2022-12-13 2022-12-13 집적 회로의 레이아웃을 설계하는 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20240088440A true KR20240088440A (ko) 2024-06-20

Family

ID=91381312

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220174179A KR20240088440A (ko) 2022-12-13 2022-12-13 집적 회로의 레이아웃을 설계하는 방법 및 시스템

Country Status (2)

Country Link
US (1) US20240193340A1 (ko)
KR (1) KR20240088440A (ko)

Also Published As

Publication number Publication date
US20240193340A1 (en) 2024-06-13

Similar Documents

Publication Publication Date Title
US10796053B2 (en) Computer implemented system and method for generating a layout of a cell defining a circuit component
US8479141B1 (en) Automation using spine routing
Li et al. Routability-driven placement and white space allocation
US8037441B2 (en) Gridded-router based wiring on a non-gridded library
US8966425B1 (en) Clock tree generation and routing
US6598215B2 (en) Datapath design methodology and routing apparatus
US11288432B2 (en) Computer implemented system and method for generating a layout of a cell defining a circuit component
US7603644B2 (en) Integrated circuit routing and compaction
US9003349B1 (en) Methods, systems, and articles of manufacture for implementing a physical electronic design with area-bounded tracks
US8984465B1 (en) Methods, systems, and articles of manufacture for automatically assigning track patterns to regions for physical implementation of an electronic design
US9213793B1 (en) Methods, systems, and articles of manufacture for implementing electronic designs using flexible routing tracks
US8954915B2 (en) Structured placement of hierarchical soft blocks during physical synthesis of an integrated circuit
US10928442B2 (en) Computer implemented methods and computing systems for designing integrated circuits by considering back-end-of-line
KR20180070320A (ko) 쿼드러플 패터닝 리소그래피를 위한 집적 회로, 상기 집적 회로의 설계를 위한 컴퓨팅 시스템 및 컴퓨터 구현 방법
US10424518B2 (en) Integrated circuit designing system and a method of manufacturing an integrated circuit
US8601425B2 (en) Solving congestion using net grouping
US9104830B1 (en) Methods, systems, and articles of manufacture for assigning track patterns to regions of an electronic design
KR20180070321A (ko) 트리플 패터닝 리소그래피를 위한 집적 회로, 상기 집적 회로의 설계를 위한 컴퓨팅 시스템 및 컴퓨터 구현 방법
KR20240088440A (ko) 집적 회로의 레이아웃을 설계하는 방법 및 시스템
US10970452B2 (en) System for designing semiconductor circuit and operating method of the same
US20210264081A1 (en) Methods of designing semiconductor devices, design systems performing the same and methods of manufacturing semiconductor devices using the same
US9293450B2 (en) Synthesis of complex cells
US20230267261A1 (en) Design system, design method and method of manufacture of semiconductor device
US20230237236A1 (en) Method of designing layout of semiconductor integrated circuit, method of designing and manufacturing semiconductor integrated circuit using the same, and design system performing same
Kumar et al. Automated, inter-macro channel space adjustment and optimization for faster design closure