KR20180092692A - Beol을 고려하여 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템 - Google Patents

Beol을 고려하여 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템 Download PDF

Info

Publication number
KR20180092692A
KR20180092692A KR1020170018764A KR20170018764A KR20180092692A KR 20180092692 A KR20180092692 A KR 20180092692A KR 1020170018764 A KR1020170018764 A KR 1020170018764A KR 20170018764 A KR20170018764 A KR 20170018764A KR 20180092692 A KR20180092692 A KR 20180092692A
Authority
KR
South Korea
Prior art keywords
integrated circuit
clock
clock latency
parasitic
placement
Prior art date
Application number
KR1020170018764A
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 KR1020170018764A priority Critical patent/KR20180092692A/ko
Priority to US15/842,184 priority patent/US10928442B2/en
Priority to CN201810018185.7A priority patent/CN108416077B/zh
Publication of KR20180092692A publication Critical patent/KR20180092692A/ko

Links

Images

Classifications

    • G06F17/5068
    • 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
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/2851Testing of integrated circuits [IC]
    • G06F17/5072
    • G06F17/5077
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • 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/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/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation
    • 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

Abstract

집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템이 개시된다. 본 개시의 기술적 사상에 따른 집적 회로를 설계하기 위한 컴퓨터 구현 방법은, 집적 회로를 정의하는 표준 셀들에 대한 배치 및 라우팅 동작의 결과로부터 특성 값들을 추출하고, 추출된 특성 값들로부터 복수의 그룹들에 각각 대응하는 복수의 대표 특성 값들을 결정함으로써 물리-인식 어노테이션 파일을 생성하며, 생성된 물리-인식 어노테이션 파일을 이용하여, 집적 회로에 대한 입력 데이터로부터 넷리스트를 생성하도록 물리-인식 합성 동작을 수행한다.

Description

BEOL을 고려하여 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템{Computer-implemented method and computing system for designing integrated circuit by considering Back-End-Of-Line}
본 개시의 기술적 사상은 집적 회로에 관한 것이며, 더욱 상세하게는, BEOL(Back-End-Of-Line)을 고려하여 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템에 관한 것이다.
집적 회로는 표준 셀들을 기반으로 설계될 수 있다. 구체적으로, 집적 회로를 정의하는 데이터에 따라 표준 셀들을 배치하고, 배치된 표준 셀들을 라우팅함으로써 집적 회로의 레이아웃을 생성할 수 있다. 반도체 제조 공정이 미세화됨에 따라, 표준 셀 내의 패턴들의 사이즈가 감소할 수 있고, 표준 셀의 사이즈도 감소할 수 있다. 이에 따라, 라우팅 복잡도 및 금속 저항이 증가할 수 있으므로, 집적 회로의 설계에 있어서 BEOL에 관련된 영향이 더욱 커지고 있다.
본 개시의 기술적 사상은 BEOL을 고려하여 최적화된 합성 결과를 생성할 수 있는 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템을 제공한다.
본 개시의 기술적 사상에 따른 집적 회로를 설계하기 위한 컴퓨터 구현 방법은, 프로세서에 의해, 상기 집적 회로를 정의하는 표준 셀들에 대한 배치 및 라우팅 동작의 결과로부터 특성 값들을 추출하는 단계, 상기 프로세서에 의해, 추출된 상기 특성 값들로부터 복수의 그룹들에 각각 대응하는 복수의 대표 특성 값들을 결정함으로써 물리-인식 어노테이션 파일을 생성하는 단계, 상기 프로세서에 의해, 생성된 상기 물리-인식 어노테이션 파일을 이용하여, 상기 집적 회로에 대한 입력 데이터로부터 넷리스트를 생성하도록 물리-인식 합성 동작을 수행하는 단계를 포함한다.
또한, 본 개시의 기술적 사상에 따른 집적 회로를 설계하기 위한 컴퓨터 구현 방법은, 프로세서에 의해, 상기 집적 회로를 정의하는 복수의 표준 셀들에 대한 이전 배치 및 라우팅 동작의 결과로부터 클럭 레이턴시 정보 및 기생 성분 정보 중 적어도 하나를 추출하는 단계, 상기 프로세서에 의해, 추출된 상기 클럭 레이턴시 정보 및 상기 기생 성분 정보 중 적어도 하나를 이용하여, 상기 집적 회로에 대한 입력 데이터로부터 넷리스트를 생성하도록 물리-인식 합성 동작을 수행하는 단계, 및 상기 프로세서에 의해, 생성된 상기 넷리스트에 따라, 상기 집적 회로를 정의하는 상기 복수의 표준 셀들에 대한 배치 및 라우팅 동작을 수행하는 단계를 포함한다.
또한, 본 개시의 기술적 사상에 따른 집적 회로를 설계하기 위한 컴퓨터 구현 방법은, 프로세서에 의해, 상기 집적 회로에 대한 넷리스트를 이용하여 제1 배치 및 라우팅 동작을 수행하고, 상기 제1 배치 및 라우팅 동작의 결과로부터 클럭 레이턴시 정보를 추출하는 단계, 및 상기 프로세서에 의해, 상기 넷리스트 및 상기 클럭 레이턴시 정보를 이용하여 제2 배치 및 라우팅 동작을 수행하는 단계를 포함하고, 상기 제2 배치 및 라우팅 동작을 수행하는 단계는, 추출된 상기 클럭 레이턴시 정보를 이용하여, 상기 집적 회로를 정의하는 복수의 표준 셀들을 배치하는 단계를 포함한다.
본 개시의 기술적 사상에 따르면, 이전 P&R 동작의 결과로부터 특성 값들을 추출하고, 추출된 특성 값들을 이용하여 로직 합성을 수행함으로써, 로직 합성 단계에서 BEOL의 물리적 정보를 고려하여 최적화된 게이트 레벨의 넷리스트를 생성할 수 있다. 따라서, 생성된 넷리스트에 따른 이후 P&R 단계에서 타이밍 클로져(closure)에 소요되는 시간을 줄일 수 있고, 집적 회로의 타이밍이나 면적과 같은 QoR(Quality of Result)를 향상시킬 수 있으며, TAT(Turn Around Time)을 감소시킬 수 있다.
도 1은 본 개시의 일 실시예에 따른 반도체 장치의 제조 방법을 나타내는 흐름도이다.
도 2는 본 개시의 비교예에 따른 집적 회로의 설계 방법과 본 개시의 일 실시예에 따른 집적 회로의 설계 방법을 나타낸다.
도 3은 본 개시의 일 실시예에 따른 집적 회로의 설계 방법을 나타내는 개념도이다.
도 4는 본 개시의 일 실시예에 따른 클럭 레이턴시 어노테이션의 일 예를 나타낸다.
도 5a 내지 도 5b는 본 개시의 일 실시예에 따른 클럭 레이턴시 어노테이션의 다른 예를 나타낸다.
도 6은 본 개시의 일 실시예에 따른 제1 클럭 레이턴시 테이블을 나타낸다.
도 7a는 본 개시의 일 실시예에 따라, 도 3의 설계 방법의 일 예를 더욱 상세하게 나타내는 흐름도이다.
도 7b는 본 개시의 일 실시예에 따라, 도 3의 설계 방법의 다른 예를 더욱 상세하게 나타내는 흐름도이다.
도 8은 본 개시의 일 실시예에 따른 제2 클럭 레이턴시 테이블을 나타낸다.
도 9는 도 7a에 예시된 합성 단계의 변형 실시예를 나타내는 흐름도이다.
도 10은 본 개시의 일 실시예에 따른 집적 회로의 설계 방법을 나타내는 개념도이다.
도 11은 본 개시의 일 실시예에 따라, 도 10의 설계 방법을 더욱 상세하게 나타내는 흐름도이다.
도 12는 본 개시의 일 실시예에 따라, 기생 성분 스케일링 팩터 테이블 생성 방법을 나타내는 흐름도이다.
도 13a는 본 개시의 일 실시예에 따른 기생 저항 스케일링 팩터 테이블을 나타내고, 도 13b는 본 개시의 일 실시예에 따른 기생 커패시턴스 스케일링 팩터 테이블을 나타낸다.
도 14는 도 11에 예시된 합성 단계의 변형 실시예를 나타내는 흐름도이다.
도 15는 본 개시의 일 실시예에 따른 집적 회로의 설계 방법을 나타내는 개념도이다.
도 16은 본 개시의 일 실시예에 따른 집적 회로를 설계하기 위한 컴퓨팅 시스템을 나타내는 블록도이다.
도 17은 도 16의 메모리에 저장된 프로그램의 일 예를 나타낸다.
도 18은 본 개시의 일 실시예에 따른 집적 회로를 설계하기 위한 컴퓨팅 시스템을 나타내는 블록도이다.
도 19는 본 개시의 일 실시예에 따른 집적 회로의 설계 방법을 나타내는 흐름도이다.
도 20은 본 개시의 일 실시예에 따른 집적 회로의 설계 방법을 나타내는 흐름도이다.
도 21은 본 개시의 일 실시예에 따른 컴퓨터로 독출 가능한 저장 매체를 나타낸다.
이하, 첨부한 도면을 참조하여 본 개시의 실시 예에 대해 상세히 설명한다.
도 1은 본 개시의 일 실시예에 따른 반도체 장치의 제조 방법을 나타내는 흐름도이다.
도 1을 참조하면, 반도체 장치의 제조 방법은 집적 회로의 설계 및 집적 회로의 제조 공정으로 구분될 수 있다. 집적 회로의 설계는 단계 S110 및 S130을 포함하고, 집적 회로의 레이아웃을 디자인하는 단계로서, 집적 회로를 설계하기 위한 툴을 이용하여 수행될 수 있다. 이때, 집적 회로를 설계하기 위한 툴은 프로세서에 의해 수행되는 복수의 명령어들을 포함하는 프로그램일 수 있다. 이에 따라, 집적 회로의 설계 방법을 집적 회로의 설계를 위한 컴퓨터 구현(computer implemented) 방법이라고 지칭할 수 있다. 한편, 집적 회로의 제조 공정은 단계 S150 및 S170을 포함하고, 레이아웃 데이터를 기초로 집적 회로에 따른 반도체 장치를 제조하는 단계로서, 반도체 공정 모듈에서 수행될 수 있다.
단계 S110에서, 물리-인식(physical-aware) 합성 동작을 수행한다. 예를 들어, 단계 S110은 합성 툴을 이용하여 프로세서에 의해 수행될 수 있다. "합성"은 집적 회로에 대한 입력 데이터를, 로직 게이트들로 이루어진 하드웨어 형태로 변환함으로써 넷리스트(netlist)를 생성하는 동작으로서, "로직(logic) 합성"이라고 지칭할 수 있다. 입력 데이터는 집적 회로의 동작(behavior)에 대한 추상적 형태, 예컨대, RTL(Register Transfer Level)에서 정의된 데이터일 수 있다. 넷리스트는 표준 셀 라이브러리를 이용하여 RTL 코드로부터 생성될 수 있고, 게이트 레벨의 넷리스트일 수 있다.
집적 회로는 많은 수의 클럭 패쓰들(clock paths)과 많은 수의 데이터 패쓰들(data paths)을 포함할 수 있다. 합성 단계에서, 클럭 패쓰는 이상적인(ideal) 클럭 신호에 따라 생성되고, 데이터 패쓰는 글로벌 라우터를 이용하여 생성될 수 있다. 반면, 배치 및 라우팅(placement and routing, P&R) 단계에서, 클럭 패쓰는 딜레이된 클럭 신호에 따라 생성되고, 데이터 패쓰는 디테일 라우터를 이용하여 생성될 수 있다. 이에 따라, 합성 단계에서 생성된 클럭 패쓰와 P&R 단계에서 생성된 클럭 패쓰 간에 오상관(miscorrelation)이 있을 수 있고, 합성 단계에서 생성된 데이터 패쓰와 P&R 단계에서 생성된 데이터 패쓰 간에 오상관이 있을 수 있다.
본 실시예에 따르면, 단계 S110에서, BEOL(Back-End-Of-Line)의 영향을 고려하여, 이전 P&R 동작의 결과로부터 추출된 특성 값들을 이용하여 물리-인식 합성을 수행할 수 있다. 이에 따라, 합성 단계에서 생성된 클럭 패쓰와 P&R 단계에서 생성된 클럭 패쓰 간의 차이를 줄일 수 있고, 합성 단계에서 생성된 데이터 패쓰와 P&R 단계에서 생성된 데이터 패쓰 간의 차이를 줄일 수 있다. 일 실시예에서, 추출된 특성 값들 및 RTL 코드는 합성 툴에 입력 파일로써 제공될 수 있고, 게이트 레벨의 넷리스트는 합성 툴에서 출력 파일로써 출력될 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 일부 실시예에서, 대표 특성 값들 또는 물리-인식 어노테이션 파일이 입력 파일로써 합성 툴에 입력될 수도 있다.
일 실시예에서, 추출된 특성 값들은 클럭 레이턴시(clock latency) 정보를 포함할 수 있다. 클럭 레이턴시 정보는 복수의 클럭 패쓰들 각각에 대한 클럭 레이턴시들을 포함할 수 있고, 클럭 레이턴시 정보를 이용하여 CTS(Clock Tree Synthesis)-인식 합성을 수행할 수 있다. 이에 따라, 단계 S110에서 CTS가 수행되지 않더라도, 단계 S110에서 생성된 클럭 패쓰는 BEOL에 최적화될 수 있다.
일 실시예에서, 추출된 특성 값들은 기생 성분(parasitic) 정보를 포함할 수 있다. 기생 성분 정보는 복수의 데이터 패쓰들(다시 말해, 복수의 물리적인 시그널 넷들(signal nets)) 각각에 대한 기생 저항들 또는 기생 커패시턴스들을 포함할 수 있고, 기생 성분 정보를 이용하여 디테일 라우팅-인식 합성을 수행할 수 있다. 이에 따라, 단계 S110에서 디테일 라우팅이 수행되지 않더라도, 단계 S110에서 생성된 데이터 패쓰는 BEOL에 최적화될 수 있다.
단계 S130에서, P&R 동작을 수행한다. 예를 들어, 단계 S130은 P&R 툴을 이용하여 프로세서에 의해 수행될 수 있다. 구체적으로, 넷리스트에 따라 집적 회로를 정의하는 표준 셀들을 배치하고, 이어서, 배치된 표준 셀들에 포함된 넷들을 라우팅함으로써, 집적 회로에 대한 레이아웃 데이터를 생성할 수 있다. 일 실시예에 따르면, 넷리스트는 P&R 툴에 입력 파일로써 제공될 수 있고, 레이아웃 데이터 및 특성 값들은 P&R 툴에서 출력 파일로써 출력될 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 일부 실시예에서, P&R 툴에서 대표 특성 값들 또는 물리-인식 어노테이션 파일이 출력 파일로써 출력될 수도 있다.
일 실시예에서, P&R 동작의 결과로부터 특성 값들을 추출할 수 있고, 추출된 특성 값들을 합성 툴에 제공할 수 있다. 예를 들어, 추출된 특성 값들은 클럭 레이턴시 어노테이션 파일 또는 기생 성분 어노테이션 파일로써 출력되어, 합성 툴에 제공될 수 있다. 따라서, 이전 배치 및 라우팅 동작의 결과로부터 추출된 특성 값들은 현재 합성 동작에 이용될 수 있고, 현재 배치 및 라우팅 동작의 결과로부터 추출된 특성 값들은 다음 합성 동작에 이용될 수 있다.
합성 단계에서는, 아키텍쳐 최적화(architecture optimization), 로직 최적화 등과 같은 계층적(hierarchical) 최적화를 수행하기 때문에 넷리스트의 변경이 자유롭지만, CTS 및 디테일 라우팅을 수행하지 않으므로 타이밍을 정확하게 예측하기 어려워서 최적의 합성 결과를 얻기 어려울 수 있다. 한편, P&R 단계에서는, 셀 사이징(sizing), 문턱 전압 스왑핑(swapping), 버퍼 삽입(insertion) 등만 가능하기 때문에 넷리스트의 변경에 한계가 있지만, CTS 및 디테일 라우팅을 수행하기 때문에 합성 단계에 비해 타이밍을 정확하게 예측할 수 있다.
본 실시예에 따르면, 이전 P&R 동작의 결과로부터 추출한 특성 값들을 이용하여 물리-인식 합성을 수행할 수 있다. 이에 따라, 기존의 합성 동작에 비해, 정확한 물리적 정보를 가지고 있으므로 타이밍을 더욱 정확하게 예측할 수 있고, 이로써, 최적의 합성 결과, 즉, 최적의 넷리스트를 얻을 수 있다. 따라서, 이후 P&R 단계에서, 타이밍 클로져(closure)가 용이하게 되어, 향상된 디자인 QoR(Quality of Result) 및 감소된 TAT(Turn Around Time)을 획득할 수 있다.
단계 S150에서, 레이아웃 데이터를 기초로 마스크를 생성한다. 구체적으로, 먼저 레이아웃 데이터를 기초로 OPC(Optical Proximity Correction)를 수행할 수 있는데, OPC는 광 근접 효과에 따른 오차를 반영하여 레이아웃을 변경하는 공정을 지칭한다. 이어서, OPC 수행 결과에 따라 변경된 레이아웃에 따라 마스크를 제조할 수 있다. 이때, OPC를 반영한 레이아웃, 예컨대, OPC가 반영된 GDS(Graphic Data System)II를 이용하여 마스크를 제조할 수 있다.
단계 S170에서, 마스크를 이용하여 집적 회로가 구현된 반도체 장치를 제조한다. 구체적으로, 복수의 마스크들을 이용하여 웨이퍼 등과 같은 반도체 기판 상에 다양한 반도체 공정을 진행하여 집적 회로가 구현된 반도체 장치를 형성한다. 예를 들어, 마스크를 이용하는 공정은 리소그라피 공정을 통한 패터닝 공정을 의미할 수 있다. 이러한 패터닝 공정을 통해 반도체 기판이나 물질층 상에 원하는 패턴을 형성할 수 있다. 한편, 반도체 공정은 증착 공정, 식각 공정, 이온 공정, 세정 공정 등을 포함할 수 있다. 또한, 반도체 공정은 반도체 소자를 PCB 상에 실장하고 밀봉재로 밀봉하는 패키징 공정을 포함할 수도 있고, 반도체 소자나 패키지에 대해 테스트를 하는 테스트 공정을 포함할 수도 있다.
도 2는 본 개시의 비교예에 따른 집적 회로의 설계 방법(S10)과 본 개시의 일 실시예에 따른 집적 회로의 설계 방법(S20)을 나타낸다.
도 2를 참조하면, 본 개시의 비교예에 따른 집적 회로의 설계 방법(S10)에 따르면, i번째 합성 동작(S101)이 수행되고, 이어서 i번째 P&R 동작(S102)이 수행되며, 이어서 i+1번째 합성 동작(S103)이 수행되고, 이어서 i+1번째 P&R 동작(S104)이 수행된다(여기서, i는 임의의 자연수). 이와 같이, 합성 동작 및 P&R 동작은 하나의 세트 또는 하나의 모듈을 구성하며, 이를 SVP(Silicon Virtual Prototyping)이라고 지칭할 수 있다. SVP는 RTL 코드 및 플로어플랜(floorplan)의 변경을 반영하기 위해 반복적으로 수행될 수 있다. 이때, i번째 P&R 동작(S102)의 결과는 i+1번째 합성 동작(S103)에 활용되지 않으며, 단계 S102에서 단계 S103으로 전송되는 데이터는 없다.
본 개시의 일 실시예에 따른 집적 회로의 제조 방법(S20)에 따르면, i번째 합성 동작(S210)이 수행되고, 이어서 i번째 P&R 동작(S220)이 수행되며, 이어서 i+1번째 합성 동작(S230)이 수행되고, 이어서 i+1번째 P&R 동작(S240)이 수행된다(여기서, i는 임의의 자연수). 본 실시예에 따르면, i번째 P&R 동작(S220)의 결과는 i+1번째 합성 동작(S230)에 활용되며, 단계 S220에서 단계 S230으로 전송되는 데이터는 특성 값들, 대표 특성 값들, 또는 물리-인식 어노테이션 파일일 수 있다.
도 3은 본 개시의 일 실시예에 따른 집적 회로의 설계 방법을 나타내는 개념도이다.
도 3을 참조하면, P&R 동작(S310)에서, 클럭 패쓰에 대한 클럭 레이턴시 정보를 추출할 수 있고, 추출된 클럭 레이턴시 정보는 다음 합성 동작에 활용하기 위하여 합성 툴에 입력 파일로써 제공될 수 있다. 예를 들어, P&R 동작(S310)은 도 2의 S220의 일 예일 수 있다. 구체적으로, P&R 동작(S310)에서, 모든 플립 플롭들의 클럭 핀들에 대한 클럭 레이턴시 정보를 추출할 수 있다. 또한, P&R 동작(S310)에서, 추출된 클럭 레이턴시 정보를 기초로 클럭 레이턴시 테이블을 생성할 수 있다.
물리-인식 합성 동작(S320)에서, 클럭 레이턴시 정보를 이용하여, RTL 코드로부터 게이트 레벨의 넷리스트를 생성할 수 있다. 예를 들어, 물리-인식 합성 동작(S320)은 도 2의 S230의 일 예일 수 있다. 본 실시예에 따른 물리-인식 합성 동작은 BEOL의 CTS를 인지하는 합성 동작일 수 있다. 본 실시예에 따르면, 이전 P&R 동작(S310)에서 추출된 클럭 레이턴시 정보를 이용하여 합성 동작을 수행하므로, CTS 결과가 반영된 넷리스트를 생성할 수 있다. 일 실시예에서, 클럭 레이턴시 정보를 이용하는 방법은 클럭 레이턴시 어노테이션(annotation)일 수 있다. 클럭 레이턴시 어노테이션에 대한 실시예들은 도 4 내지 도 5c를 참조하여 후술하기로 한다.
합성 단계에서는, 실제로 CTS를 수행하지 않고 이상적인 클럭 신호를 이용하여 합성 및 데이터 패쓰 최적화를 수행한다. BEOL에서 발생하는 클럭 레이턴시 차이를 고려하지 않을 경우, 합성 단계에서는 타이밍 위반이 발생하지 않았던 패쓰에 대해, P&R 단계에서 타이밍 위반이 발생할 가능성이 있다. 본 실시예에서는, P&R 동작(S310)에서 추출된 클럭 레이턴시 정보를 이용하여 합성 동작을 수행함으로써, 합성 단계에서 더욱 정확하게 데이터 패쓰 최적화를 수행하여, 최적화된 넷리스트를 생성할 수 있다. 또한, 이후 최적화된 넷리스트에 따라 P&R을 수행함으로써, 타이밍 클로져에 소요되는 시간을 줄일 수 있고, P&R의 결과도 향상될 수 있다.
일 실시예에서, 집적 회로에 포함된 클럭 패쓰들을 복수의 그룹들로 그룹핑하고, 합성 단계에서, 각 그룹에 포함되는 클럭 패쓰들에는 동일한 클럭 레이턴시를 적용할 수 있다. 예를 들어, 집적 회로에 포함된 로직 모듈들을 모듈 계층(module hierarchy)에 따라 복수의 그룹들로 그룹핑하고, 각 그룹에 포함된 로직 모듈들에 대해 동일한 클럭 레이턴시를 적용하고, 서로 다른 그룹에 포함된 로직 모듈들에 대해 서로 다른 클럭 레이턴시들을 적용할 수 있다. 이에 대해, 도 8을 참조하여 후술하기로 한다.
도 4는 본 개시의 일 실시예에 따른 클럭 레이턴시 어노테이션의 일 예를 나타낸다.
도 4를 참조하면, 복수의 SVP들이 반복적으로 수행될 수 있고, 예를 들어, i번째 SVP(41)가 수행되고, 이어서, i+1번째 SVP(42)가 수행될 수 있다. i번째 SVP(41)는 i번째 합성 단계 및 i번째 P&R 단계를 포함할 수 있고, i번째 합성 단계에서 집적 회로(411)를 정의하는 넷리스트가 출력될 수 있고, i번째 P&R 단계에서 집적 회로(412)의 레이아웃 데이터 및 클럭 레이턴시 어노테이션 파일이 출력될 수 있다. i+1번째 SVP(42)는 i+1번째 합성 단계 및 i+1번째 P&R 단계를 포함할 수 있고, i+1번째 합성 단계에서 집적 회로(421)를 정의하는 넷리스트가 출력될 수 있고, i+1번째 P&R 단계에서 집적 회로(422)의 레이아웃 데이터 및 클럭 레이턴시 어노테이션 파일이 출력될 수 있다.
집적 회로(411)는 제1 및 제2 플립 플롭들(Flip-Flops)(FF1, FF2)을 포함할 수 있다. 제1 플립 플롭(FF1)은 제1 클럭 핀(Clock Pin)(CP1)을 포함할 수 있고, 클럭 단자(Clock Terminal, CT)에서 제1 클럭 핀(CP1)까지의 패쓰를 제1 클럭 패쓰로 정의할 수 있다. 제2 플립 플롭(FF2)은 제2 클럭 핀(CP2)을 포함할 수 있고, 클럭 단자(CT)에서 제2 클럭 핀(CP2)까지의 패쓰를 제2 클럭 패쓰로 정의할 수 있다. 제1 플립 플롭(FF1)의 출력 단자에서 제2 플립 플롭(FF2)의 입력 단자까지의 패쓰는 데이터 패쓰로 정의할 수 있다.
i번째 합성 단계에서는, 이상적인 클럭 신호를 사용하여 타이밍을 예측한다. 예를 들어, 제1 및 제2 클럭 패쓰들에서 딜레이가 0 ns인 것으로 보고 타이밍을 예측할 수 있다. 이에 따라, i번째 합성 단계의 결과, 타이밍 요구 조건(constraints)에 따른 원하는 시간(required time, RT)(예를 들어, 3 ns)과 실제 도착 시간(arrival time, AT)(예를 들어, 3 ns) 사이의 차이인 슬랙(slack)이 0 ns이고, 타이밍 위반이 발생하지 않을 것으로 예측할 수 있다.
CTS는 셀 배치가 완료된 이후, 셀 위치 정보 및 넷 커넥션 정보를 기반으로 수행될 수 있다. 따라서, i번째 합성 단계에서는, 실제 셀 배치가 이루어지지 않은 상태이므로, 클럭 네트워크가 이상적인 것으로 가정하고, 합성 및 데이터 패쓰 최적화를 수행한다. 이와 같이, 이상적인 클럭 넷(clock net)을 기반으로 합성을 수행할 경우, 제1 및 제2 플립 플롭들(FF1, FF2) 간에 클럭 스큐(skew)가 발생하지 않는다.
그러나, i번째 P&R 단계에서는, 클럭 전달 딜레이(clock propagation delay)가 발생하고, 제1 및 제2 플립 플롭들(FF1, FF2) 간에 클럭 스큐가 발생할 수 있 된다. 왜냐하면, 이상적으로 제1 및 제2 플립 플롭들(FF1, FF2)이 동시에 토글(toggle)될 수 있도록 제1 및 제2 클럭 레이턴시들(CL1, CL2)을 맞출 수 없고, 또한, 공정 변이를 보정하기 위한 OCV(On-Chip Variation) 마진(margin)이 적용되기 때문에, 제1 및 제2 플립 플롭들(FF1, FF2) 간에 클럭 스큐가 발생하게 된다.
예를 들어, 제1 클럭 패쓰에서 제1 클럭 레이턴시(CL1)(예를 들어, 1.1 ns)가 발생하고, 제2 클럭 패쓰에서 제2 클럭 레이턴시(CL2)(예를 들어, 0.9 ns)가 발생할 수 있다. 이에 따라, i번째 P&R 단계의 결과, 슬랙(즉, RT-AT)은 음의 값(예를 들어, -0.2 ns)을 갖고, 타이밍 위반이 발생할 수 있다. 본 실시예에 따르면, i번째 P&R 단계의 결과로부터, 제1 클럭 핀(CP1)에 대한 제1 클럭 레이턴시(CL1) 및 제2 클럭 핀(CP2)에 대한 제2 클럭 레이턴시(CL2)를 추출할 수 있다.
i+1번째 합성 단계에서는, 이상적인 클럭 신호가 아닌, i번째 P&R 단계의 결과로부터 추출된 제1 및 제2 클럭 레이턴시들(CL1, CL2)을 이용하여 타이밍을 예측할 수 있다. 다시 말해, 제1 클럭 패쓰에 제1 클럭 레이턴시(CL1)를 적용하고, 제2 클럭 패쓰에 제2 클럭 레이턴시(CL2)를 적용할 수 있다. 또한, 데이터 패쓰에 제1 클럭 레이턴시(CL1)와 제2 클럭 레이턴시(CL2)의 차이(즉, CL1 - CL2 = 0.2 ns)를 반영함으로써 데이터 패쓰 최적화를 수행할 수 있다. 이에 따라, i+1번째 합성 단계의 결과, 슬랙이 0 ns일 수 있고, i+1번째 합성의 결과 최적화된 넷리스트를 출력할 수 있다. i+1번째 P&R 단계에서, 클럭 전달 딜레이가 발생하더라도, 이미 제1 및 제2 클럭 레이턴시들(CL1, CL2)을 반영하여 i+1번째 합성을 수행하였으므로, i+1번째 P&R 단계의 결과, 슬랙이 0 ns일 수 있다.
도 5a 내지 도 5b는 본 개시의 일 실시예에 따른 클럭 레이턴시 어노테이션의 다른 예를 나타낸다.
도 5a를 참조하면, 집적 회로(51)는 제1 내지 제3 플립 플롭들(FF1 내지 FF3)을 포함할 수 있다. 제1 플립 플롭(FF1)은 제1 클럭 핀(CP1)을 포함할 수 있고, 클럭 단자(CT)에서 제1 클럭 핀(CP1)까지의 패쓰를 제1 클럭 패쓰(511)로 정의할 수 있다. 제2 플립 플롭(FF2)은 제2 클럭 핀(CP2)을 포함할 수 있고, 클럭 단자(CT)에서 제2 클럭 핀(CP2)까지의 패쓰를 제2 클럭 패쓰(512)로 정의할 수 있다. 제3 플립 플롭(FF3)은 제3 클럭 핀(CP3)을 포함할 수 있고, 클럭 단자(CT)에서 제3 클럭 핀(CP3)까지의 패쓰를 제3 클럭 패쓰(513)로 정의할 수 있다. 제1 플립 플롭(FF1)의 출력 단자에서 제2 플립 플롭(FF2)의 입력 단자까지의 패쓰는 제1 데이터 패쓰(514)로 정의할 수 있고, 제2 플립 플롭(FF2)의 출력 단자에서 제3 플립 플롭(FF3)의 입력 단자까지의 패쓰는 제2 데이터 패쓰(515)로 정의할 수 있다.
도 5b를 참조하면, 집적 회로(52)에서, 클럭 단자(CT)와 제1 및 제2 플립 플롭들(FF1, FF2) 사이에서, 점선으로 표시된, 제1 타이밍 패쓰가 생성될 수 있다. 이때, 제1 플립 플롭(FF1)은 론치(launch)로 동작하고, 제2 플립 플롭(FF2)은 캡쳐(capture)로 동작하게 된다. 제1 타이밍 패쓰에 대한 워스트 케이스는 제1 클럭 핀(CP1)에 대한 제1 클럭 레이턴시가 최대 값을 갖고(즉, 제1 클럭 핀(CP1)에 레이트 클럭이 인가되고), 제2 클럭 핀(CP2)에 대한 제2 클럭 레이턴시가 최소 값을 갖는(즉, 제2 클럭 핀(CP2)에 얼리 클럭이 인가되는) 경우이다. 따라서, 제1 타이밍 패쓰에 대한 물리-인지 합성을 위해서는, 제1 클럭 레이턴시의 최대 값 및 제2 클럭 레이턴시의 최소 값이 요구된다.
도 5c를 참조하면, 집적 회로(53)에서, 클럭 단자(CT)와 제2 및 제3 플립 플롭들(FF2, FF3) 사이에서, 굵은 실선으로 표시된, 제2 타이밍 패쓰가 생성될 수 있다. 이때, 제2 플립 플롭(FF2)은 론치로 동작하고, 제3 플립 플롭(FF3)은 캡쳐로 동작하게 된다. 제2 타이밍 패쓰에 대한 워스트 케이스는 제2 클럭 핀(CP2)에 대한 제2 클럭 레이턴시가 최대 값을 갖고(즉, 제2 클럭 핀(CP2)에 레이트 클럭이 인가되고), 제3 클럭 핀(CP3)에 대한 제3 클럭 레이턴시가 최소 값을 갖는(즉, 제3 클럭 핀(CP3)에 얼리 클럭이 인가되는) 경우이다. 따라서, 제2 타이밍 패쓰에 대한 물리-인지 합성을 위해서는, 제2 클럭 레이턴시의 최대 값 및 제3 클럭 레이턴시의 최소 값이 요구된다.
상술한 바와 같이, 제2 플립 플롭(FF2)은 타이밍 패쓰의 구성에 따라, 도 5b와 같이 캡쳐로 동작할 수도 있고, 도 5c와 같이 론치로 동작할 수 있다. 따라서, 본 실시예에 따르면, P&R 동작의 결과로부터 제2 클럭 핀(CP2)에 대한 제2 클럭 레이턴시의 최대 값 및 최소 값을 각각 추출할 수 있다. 그러나, 이는 제2 플립 플롭(FF2)에 한정되지 않으며, 제1 및 제3 플립 플롭들(FF1, FF3)도 마찬가지이다.
도 6은 본 개시의 일 실시예에 따른 제1 클럭 레이턴시 테이블(61)을 나타낸다.
도 5 및 도 6을 함께 참조하면, 제1 클럭 레이턴시 테이블(61)은 P&R 동작의 결과로부터 추출될 수 있고, 클럭 레이턴시 어노테이션을 통해 다음 합성 동작에 이용될 수 있다. 제1 클럭 핀(CP1)에 대한 제1 최대 클럭 레이턴시(CL1_max) 및 제1 최소 클럭 레이턴시(CL1_min)가 추출될 수 있다. 또한, 제2 클럭 핀(CP2)에 대한 제2 최대 클럭 레이턴시(CL2_max) 및 제2 최소 클럭 레이턴시(CL2_min)가 추출될 수 있다. 또한, 제3 클럭 핀(3에 대한 제3 최대 클럭 레이턴시(CL3_max) 및 제3 최소 클럭 레이턴시(CL3_min)가 추출될 수 있다. 예를 들어, 다음 합성 동작에서, 제2 플립 플롭(FF2)이 캡쳐로 동작할 경우(즉, 제1 타이밍 패쓰의 경우) 제2 최소 클럭 레이턴시(CL2_min)가 적용될 수 있고, 제2 플립 플롭(FF2)이 론치로 동작할 경우(즉, 제2 타이밍 패쓰의 경우) 제2 최대 클럭 레이턴시(CL2_max)가 적용될 수 있다.
도 7a는 본 개시의 일 실시예에 따라, 도 3의 설계 방법의 일 예를 더욱 상세하게 나타내는 흐름도이다.
도 7a를 참조하면, i번째 P&R 단계(71)에서, P&R을 실행하고(711), P&R 결과로부터 클럭 레이턴시를 추출하며(712), 이에 따라, 클럭 레이턴시 테이블(713)을 출력한다. P&R의 실행(711)은 배치 단계부터 포스트 라우트 최적화 단계를 포함할 수 있다. 클럭 레이턴시의 추출(712)은 포스트 라우트 최적화 단계에서 수행될 수 있다. 일 실시예에서, 클럭 레이턴시 테이블(713)은 예를 들어, 도 6에 예시된 바와 같이, 클럭 핀 별 클럭 레이턴시를 포함하도록 생성될 수 있다. 일 실시예에서, 클럭 레이턴시 테이블(713)은 예를 들어, 도 8에 예시된 바와 같이, 그룹 별 대표 클럭 레이턴시를 포함하도록 생성될 수 있다. 예를 들어, 대표 클럭 레이턴시는 각 그룹에 포함된 클럭 레이턴시들의 평균 값에 대응할 수 있다.
i+1번째 합성 단계(72)에서, 클럭 레이턴시 어노테이션 파일(721)을 수신하고, 클럭 레이턴시 어노테이션 파일(721)을 이용하여 RTL 코드를 컴파일(722)하여, 넷리스트를 출력할 수 있다. 이에 따라, 실제로 CTS가 수행되지 않는 합성 단계(72)에서, CTS-인지된 넷리스트를 얻을 수 있다. 본 실시예에서, 클럭 레이턴시 어노테이션 파일(721)은 i번째 P&R 단계(71)에서 출력된 클럭 레이턴시 테이블(713)에 대응할 수 있다.
i+1번째 P&R 단계(73)에서, 플로어 플래닝(731)을 수행하고, 클럭 레이턴시 어노테이션 파일(732)을 수신하고, 클럭 레이턴시 어노테이션 파일(732)을 이용하여 넷리스트에 따라 표준 셀들을 배치한다(733). 이에 따라, CTS가 아직 수행되기 전의 배치 단계(733)에서, CTS-인지된 배치 결과를 얻을 수 있다. 본 실시예에서, 클럭 레이턴시 어노테이션 파일(732)은 i번째 P&R 단계(71)에서 출력된 클럭 레이턴시 테이블(713)에 대응할 수 있다. 이어서, 클럭 레이턴시 어노테이션 파일을 제거하고(734), CTS(735), 포스트 CTS 최적화(736), 라우팅(737) 및 포스트 라우트 최적화(738)를 순차적으로 수행한다.
또한, 본 개시의 다른 실시예에 따르면, i번째 P&R 단계에서 클럭 레이턴시를 추출함으로써 클럭 레이턴시 어노테이션 파일을 생성한 후에, i+1번째 합성 단계에서는 클럭 레이턴시 어노테이션 파일을 적용하지 않고, i+1번째 P&R 단계에서 클럭 레이턴시 어노테이션 파일을 적용하여 배치 및 배치 최적화를 수행할 수도 있다.
도 7b는 본 개시의 일 실시예에 따라, 도 3의 설계 방법의 다른 예를 더욱 상세하게 나타내는 흐름도이다.
도 7b를 참조하면, 본 실시예에 따른 설계 방법은 도 7a에 예시된 설계 방법의 변형 실시예에 대응하며, 도 7a를 참조하여 상술된 내용은 본 실시예에도 적용될 수 있다. 본 실시예에 따르면, i번째 P&R 단계(71)를 수행하고, 이어서, i+1번째 P&R 단계(73)를 수행한다. 본 실시예에 따르면, i번째 P&R 단계(71)와 i+1번째 P&R 단계(73) 사이에 i+1번째 합성 단계가 수행되지 않는다. 따라서, i번째 P&R 단계(71)에 입력되는 제1 넷리스트와 i+1번째 P&R 단계(73)에 입력되는 제2 넷리스트는 동일하므로, 제2 넷리스트에는 i번째 P&R 단계(71)에서 추출된 클럭 레이턴시가 적용되지 않는다. 그러나, i+1번째 P&R 단계(73)에서, 플로어 플래닝(731)을 수행하고, 클럭 레이턴시 어노테이션 파일(732)을 수신하고, 클럭 레이턴시 어노테이션 파일(732)을 이용하여 넷리스트에 따라 표준 셀들을 배치한다(733). 이에 따라, CTS가 아직 수행되기 전의 배치 단계(733)에서, CTS-인지된 배치 결과를 얻을 수 있다. 본 실시예에서, 클럭 레이턴시 어노테이션 파일(732)은 i번째 P&R 단계(71)에서 출력된 클럭 레이턴시 테이블(713)에 대응할 수 있다.도 8은 본 개시의 일 실시예에 따른 제2 클럭 레이턴시 테이블(81)을 나타낸다.
도 8을 참조하면, 제2 클럭 레이턴시 테이블(81)은 P&R 동작의 결과로부터 생성될 수 있고, 클럭 레이턴시 어노테이션을 통해 다음 합성 동작에 이용될 수 있다. 예를 들어, 제2 클럭 레이턴시 테이블(81)은 도 6의 제1 클럭 레이턴시 테이블(61)로부터 생성될 수 있다. i+1번째 합성 단계(예를 들어, 도 2의 S230)에서의 인스턴스 네임(instance name)은 i번째 합성 단계(예를 들어, 도 2의 S210) 및 i번째 P&R 단계(예를 들어, 도 2의 S220)에서의 인스턴스 네임과 다를 수 있다. 따라서, 인스턴스 네임에 따라 클럭 레이턴시 테이블을 생성할 경우, i+1번째 합성 단계에서 인스턴스 네임이 변경된 인스턴스 내의 클럭 패쓰에 대해, i번째 P&R 단계에서 추출된 클럭 레이턴시 정보를 적용하지 못할 수 있다.
본 실시예에 따르면, P&R 동작의 결과 추출된 클럭 레이턴시들로부터 복수의 그룹들에 각각 대응하는 복수의 대표 클럭 레이턴시들을 계산함으로써, 제2 클럭 레이턴시 테이블(81)을 생성할 수 있다. 일 실시예에서, 대표 클럭 레이턴시는 해당 그룹에 포함된 클럭 패쓰들의 클럭 레이턴시들의 평균 값에 대응할 수 있다. 예를 들어, 제1 로직 모듈 그룹(LMG1)에 대응하는 대표 클럭 레이턴시는 제1 최대 클럭 레이턴시(CL_M1_max) 및 제2 최소 클럭 레이턴시(CL_M1_min)에 대응할 수 있다.
일 실시예에 따르면, 집적 회로에 포함된 로직 모듈들은 모듈 계층에 따라 복수의 로직 모듈 그룹들로 그룹핑될 수 있다. 다시 말해, 로직 모듈들은 서로 다른 모듈 뎁쓰(module depth)를 가질 수 있다. 예를 들어, 모듈 뎁쓰가 1 레벨인 로직 모듈들은 제1 로직 모듈 그룹(LMG1)으로 그룹핑되고, 모듈 뎁쓰가 2 레벨인 로직 모듈들은 제2 로직 모듈 그룹(LMG2)으로 그룹핑되며, 모듈 뎁쓰가 3 레벨인 로직 모듈들은 제3 로직 모듈 그룹(LMG3)으로 그룹핑될 수 있다. 본 실시예에서, 합성 단계에 적용되는 클럭 레이턴시는 로직 모듈 그룹 별로 다를 수 있으며, 이하에서 상세하게 설명하기로 한다.
기준 클럭 레이턴시(REF)는 최대 기준 클럭 레이턴시(CL_max) 및 최소 기준 클럭 레이턴시(CL_min)를 포함할 수 있다. 최대 기준 클럭 레이턴시(CL_max)는 집적 회로에 포함된 모든 클럭 핀들에 대한 최대 클럭 레이턴시들의 평균 값으로 결정될 수 있고, 최소 기준 클럭 레이턴시(CL_min)는 집적 회로에 포함된 모든 클럭 핀들에 대한 최소 클럭 레이턴시들의 평균 값으로 결정될 수 있다. 예를 들어, 최대 기준 클럭 레이턴시(CL_max)는 도 6의 제1 내지 제3 최대 클럭 레이턴시들(CL1_max 내지 CL3_max)의 평균 값일 수 있고, 최소 기준 클럭 레이턴시(CL_min)는 도 6의 제1 내지 제3 최소 클럭 레이턴시들(CL1_min 내지 CL3_min)의 평균 값일 수 있다.
제1 로직 모듈 그룹(LMG1)에 대하여, 제1 최대 클럭 레이턴시(CL_M1_max) 및 제1 최소 클럭 레이턴시(CL_M1_min)가 결정될 수 있다. 제1 최대 클럭 레이턴시(CL_M1_max)는 제1 로직 모듈 그룹(LMG1)에 포함된 로직 모듈들에 대한 최대 클럭 레이턴시들의 평균 값으로 결정될 수 있고, 제1 최소 클럭 레이턴시(CL_M1_min)는 제1 로직 모듈들에 대한 최소 클럭 레이턴시들의 평균 값으로 결정될 수 있다. 마찬가지로, 제2 로직 모듈 그룹(LMG2)에 대하여, 제2 최대 클럭 레이턴시(CL_M2_max) 및 제2 최소 클럭 레이턴시(CL_M2_min)가 결정될 수 있고, 제3 로직 모듈 그룹(LMG3)에 대하여, 제3 최대 클럭 레이턴시(CL_M3_max) 및 제3 최소 클럭 레이턴시(CL_M3_min)가 결정될 수 있다.
일 실시예에서, 합성 단계에서, 모든 로직 모듈들에 포함된 클럭 핀들에 대해 기준 클럭 레이턴시(REF)가 먼저 적용될 수 있다. 이어서, 각 그룹 내의 로직 모듈들에 포함된 클럭 핀들에 대해, 각 그룹에 대응하는 대표 클럭 레이턴시가 더 적용될 수 있다. 이에 따라, 제1 내지 제3 로직 모듈 그룹들(LMG1 내지 LMG3)에 포함되지 않는 로직 모듈에 대해서도 기준 클럭 레이턴시(REF)가 적용되므로, 인스턴스 네임이 변경되더라도 예외없이 물리-인식 합성을 수행할 수 있다.
예를 들어, 제1 로직 모듈 그룹(LMG1)에 포함된 로직 모듈들에 대해서는, 최대 기준 클럭 레이턴시(CL_max)와 제1 최대 클럭 레이턴시(CL_M1_max)의 차이 값 또는 최소 기준 클럭 레이턴시(CL_min)와 제1 최소 클럭 레이턴시(CL_M1_min)의 차이 값이 적용될 수 있다. 마찬가지로, 제2 로직 모듈 그룹(LMG2)에 포함된 로직 모듈들에 대해서는, 최대 기준 클럭 레이턴시(CL_max)와 제2 최대 클럭 레이턴시(CL_M2_max)의 차이 값 또는 최소 기준 클럭 레이턴시(CL_min)와 제2 최소 클럭 레이턴시(CL_M2_min)의 차이 값이 적용될 수 있다. 마찬가지로, 제3 로직 모듈 그룹(LMG3)에 포함된 로직 모듈들에 대해서는, 최대 기준 클럭 레이턴시(CL_max)와 제3 최대 클럭 레이턴시(CL_M3_max)의 차이 값 또는 최소 기준 클럭 레이턴시(CL_min)와 제3 최소 클럭 레이턴시(CL_M3_min)의 차이 값이 적용될 수 있다.
일 실시예에서, 제1 로직 모듈 그룹(LMG1)에 포함된 로직 모듈들에 대해서는, 제1 최대 클럭 레이턴시(CL_M1_max) 또는 제1 최소 클럭 레이턴시(CL_M1_min) 가 적용될 수 있다. 또한, 제2 로직 모듈 그룹(LMG2)에 포함된 로직 모듈들에 대해서는, 제2 최대 클럭 레이턴시(CL_M2_max) 또는 제2 최소 클럭 레이턴시(CL_M2_min)가 적용될 수 있다. 또한, 제3 로직 모듈 그룹(LMG3)에 포함된 로직 모듈들에 대해서는, 제3 최대 클럭 레이턴시(CL_M3_max) 또는 제3 최소 클럭 레이턴시(CL_M3_min)가 적용될 수 있다. 모든 로직 모듈들의 모듈 뎁쓰가 1에서 3 사이인 경우에는, 모든 로직 모듈들은 제1 내지 제3 로직 모듈 그룹들(LMG1 내지 LMG3) 중 하나로 그룹핑될 수 있으므로, 기준 클럭 레이턴시(REF)를 적용하지 않을 수도 있다.
도 9는 도 7a에 예시된 합성 단계(72)의 변형 실시예(72')를 나타내는 흐름도이다.
도 9를 참조하면, i+1번째 합성 단계(72')에서, 클럭 레이턴시 어노테이션파일(721)을 수신하고, 클럭 레이턴시 어노테이션 파일(721)을 이용하여 RTL 코드를 1차 컴파일(722')하며, 1차 컴파일 결과를 2차 컴파일(723)한다. 여기서, 2차 컴파일(723)은 타이밍 최적화를 위해 수행될 수 있고, 인크리멘탈(incremental) 컴파일이라고 지칭할 수도 있다. 일 실시예에서, 2차 컴파일(723)은 클럭 레이턴시 어노테이션 파일(721)을 이용하여 컴파일링할 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 일부 실시예에서, 2차 컴파일(723)은 클럭 레이턴시 어노테이션 파일(721)을 이용하지 않고 컴파일링할 수도 있다.
도 10은 본 개시의 일 실시예에 따른 집적 회로의 설계 방법을 나타내는 개념도이다.
도 10을 참조하면, P&R 동작(S410)에서, 데이터 패쓰에 대한 기생 성분 정보를 추출할 수 있고, 추출된 기생 성분 정보는 다음 합성 동작에 활용하기 위하여 합성 툴에 입력 파일로써 제공될 수 있다. 예를 들어, P&R 동작(S410)은 도 2의 S220의 일 예일 수 있다. 구체적으로, P&R 동작(S410)에서, 모든 시그널 넷들(signal nets)에 대한 기생 성분 정보를 추출할 수 있다. 예를 들어, 기생 성분 정보는 기생 저항 정보 또는 기생 커패시턴스 정보를 포함할 수 있다. 또한, P&R 동작(S410)에서, 추출된 기생 성분 정보를 이용하여 기생 성분 스케일링 팩터를 생성할 수 있다.
물리-인식 합성 동작(S420)에서, 기생 성분 정보를 이용하여, RTL 코드로부터 게이트 레벨의 넷리스트를 생성활 수 있다. 예를 들어, 물리-인식 합성 동작(S420)은 도 2의 S230의 일 예일 수 있다. 본 실시예에 따른 물리-인식 합성 동작은 BEOL의 디테일 라우팅을 인지하는 합성 동작일 수 있다. 본 실시예에 따르면, 이전 P&R 동작(S410)에서 추출된 기생 성분 정보를 이용하여 합성 동작을 수행하므로, 디테일 라우팅 결과가 반영된 넷리스트를 생성할 수 있다. 일 실시예에서, 기생 성분 정보를 이용하는 방법은 기생 성분 어노테이션일 수 있다.
합성 단계에서는, 실제로 디테일 라우팅을 수행하지 않고 글로벌 라우팅을 수행하고, 글로벌 라우팅 결과에 따라 시그널 넷의 기생 성분을 예측한다. 따라서, 실제 물리적인 넷들이 존재하지 않으므로, 서로 근접한 넷들 사이에 발생하는 커플링 커패시턴스의 영향을 고려하기 어렵다. 또한, 합성 단계에서, 혼잡도(congestion) 또는 타이밍 요구조건에 따라 시그널 넷에 대한 레이어 할당(layer assignment)을 수행하는데, 이때, 레이어 레벨에 따른 비아 저항을 고려하기 어렵다. 이러한 커플링 커패시턴스 또는 물리적인 넷의 비아 저항을 고려하지 않을 경우, 예측된 기생 성분 및 예측된 넷 딜레이가 정확하지 않을 수 있다.
본 실시예에서는, P&R 동작(S410)에서 추출된 기생 성분 정보로부터 기생 성분 스케일링 팩터를 생성하고, 물리-인식 합성 동작(S420)에서 글로벌 라우팅 결과에 따라 예측된 시그널 넷의 기생 성분에, 기생 성분 스케일링 팩터를 적용할 수 있다. 이에 따라, 물리-인식 합성 동작(S420)에서 기생 성분 및 넷 딜레이가 더욱 정확하게 예측될 수 있다.
일 실시예에서, 집적 회로에 포함된 시그널 넷들을 복수의 그룹들로 그룹핑하고, 합성 단계에서, 각 그룹에 포함되는 시그널 넷들에 동일한 기생 성분 스케일링 팩터를 적용할 수 있다. 예를 들어, 집적 회로에 포함된 시그널 넷들을 넷 길이에 따라 복수의 그룹들로 그룹핑하고, 각 그룹에 포함된 시그널 넷들에 대해 동일한 기생 성분 스케일링 팩터를 적용하고, 서로 다른 그룹에 포함된 시그널 넷들에 대해 서로 다른 기생 성분 스케일링 팩터들을 적용할 수 있다. 이에 대해, 도 13a 및 도 13b를 참조하여 후술하기로 한다.
도 11은 본 개시의 일 실시예에 따라, 도 10의 설계 방법을 더욱 상세하게 나타내는 흐름도이다.
도 11을 참조하면, i번째 P&R 단계(111)에서, P&R을 실행하고(1111), P&R 결과로부터 기생 성분들을 추출하며(1112), 이에 따라, 기생 성분 테이블(1113)을 출력한다. 예를 들어, 기생 성분 테이블(1113)은 기생 저항 테이블 및 기생 커패시턴스 테이블을 포함할 수 있다. P&R의 실행(1111)은 배치 단계부터 포스트 라우트 최적화 단계를 포함할 수 있다. 기생 성분들의 추출(1112)은 포스트 라우트 최적화 단계에서 수행될 수 있다. 일 실시예에서, 기생 성분 테이블(1113)은 시그널 넷 별 기생 성분을 포함하도록 생성될 수 있다. 일 실시예에서, 기생 성분 테이블(1113)은 그룹 별 대표 기생 성분 스케일링 팩터를 포함하도록 생성될 수 있다. 예를 들어, 대표 기생 성분 스케일링 팩터는 각 그룹에 포함된 기생 성분 스케일링 팩터의 평균 값에 대응할 수 있다.
i+1번째 합성 단계(112)에서, 기생 성분 어노테이션 파일(1121)을 수신하고, 기생 성분 어노테이션 파일(1121)을 이용하여 RTL 코드를 컴파일(1122)하여, 넷리스트를 출력할 수 있다. 이에 따라, 실제로 디테일 라우팅이 수행되지 않는 합성 단계(112)에서, 디테일 라우팅-인지된 넷리스트를 얻을 수 있다. 본 실시예에서, 기생 성분 어노테이션 파일(1121)은 i번째 P&R 단계(111)에서 출력된 기생 성분 테이블(1113)에 대응할 수 있다.
도 12는 본 개시의 일 실시예에 따라, 기생 성분 스케일링 팩터 테이블 생성 방법을 나타내는 흐름도이다.
도 11 및 도 12를 함께 참조하면, 기생 성분 스케일링 팩터 테이블은 기생 성분 테이블(1113)의 일 예에 대응할 수 있고, i번째 P&R 단계(111)에 생성될 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 기생 성분 스케일링 팩터 테이블은 i번째 P&R 단계(111) 이후에 생성될 수도 있다. 기생 성분 스케일링 팩터 테이블은 예를 들어, 도 13a의 기생 저항 스케일링 팩터 테이블 및 예를 들어, 도 13b의 기생 커패시턴스 스케일링 팩터 테이블을 포함할 수 있다. i번째 P&R 단계(111)에서는 예를 들어, 도 7a의 i+1번째 P&R 단계(73)와 같이, 플로어 플래닝, 배치, CTS, 포스트 CTS 최적화, 라우팅, 포스트 라우트 최적화가 순차적으로 수행될 수 있다.
포스트 CTS 최적화 동작(121)의 결과, 글로벌 라우팅된 넷들(122)을 출력할 수 있고, 글로벌 라우팅된 넷들(122)로부터 제1 기생 저항들 및 제1 기생 커패시턴스들을 추정(estimate)할 수 있다. 또한, 라우팅 동작(123)의 결과, 디테일 라우팅된 넷들(124)을 출력할 수 있고, 디테일 라우팅된 넷들(124)로부터 제2 기생 저항들 및 제2 기생 커패시턴스들을 추출할 수 있다.
이어서, 기생 성분 비교 동작(125)을 수행할 수 있다. 구체적으로, 추정된 제1 기생 저항들과 추출된 제2 기생 저항들을 비교하고, 추정된 제1 기생 커패시턴스들과 추출된 제2 기생 커패시턴스들을 비교할 수 있다. 기생 성분 비교 동작(125)의 결과, 기생 성분 스케일링 팩터들(126)을 출력할 수 있고, 출력된 기생 성분 스케일링 팩터들(126)로부터 기생 성분 스케일링 테이블을 생성할 수 있다.
일 실시예에서, 시그널 넷들은 다양한 기준에 따라 복수의 그룹들로 그룹핑할 수 있다. 예를 들어, 시그널 넷들은 팬아웃(fan-out) 핀들의 개수, 넷 길이, 넷과 매크로 셀(macro cell)의 직접 연결 여부, 넷과 I/O 패드의 직접 연결 여부 등에 따라 복수의 그룹들로 그룹핑할 수 있다. 일 실시예에서, 출력된 기생 성분 스케일링 팩터들로부터 복수의 그룹들 각각에 대한 기생 성분 스케일링 테이블을 생성할 수 있다.
도 13a는 본 개시의 일 실시예에 따른 기생 저항 스케일링 팩터 테이블(131)을 나타낸다.
도 13a를 참조하면, 기생 저항 스케일링 팩터 테이블(131)은 팬아웃(fanout, FO) 핀들의 개수 및 넷 길이에 따라 생성될 수 있다. 이때, 넷 길이는 시그널 넷의 길이의 상한 값에 대응할 수 있다. 따라서, 넷 길이가 제1 길이(L1) 이하인 시그널 넷들에 적용되는 기생 저항 스케일링 팩터들은, 팬아웃 핀들의 개수에 따라 서로 다를 수 있다.
예를 들어, 팬아웃 핀의 개수가 1이고 넷 길이가 제1 길이(L1)(예를 들어, 1 μm) 이하인 시그널 넷에 대해서는 R11(예를 들어, 1.34)가 적용될 수 있고, 이에 따라, i+1번째 합성 단계에서 R11을 이용하여 물리-인지 합성을 수행할 수 있다. 예를 들어, 팬아웃 핀의 개수가 3개이고 넷 길이가 제1 길이(L1)와 제2 길이(L2)(예를 들어, 2 μm) 사이인 시그널 넷에 대해서는 R32(예를 들어, 1.21)가 적용될 수 있고, 이에 따라, 이에 따라, i+1번째 합성 단계에서 R32를 이용하여 물리-인지 합성을 수행할 수 있다.
도 13b는 본 개시의 일 실시예에 따른 기생 커패시턴스 스케일링 팩터 테이블(132)을 나타낸다.
도 13b를 참조하면, 기생 커패시턴스 스케일링 팩터 테이블(132)은 팬아웃(FO) 핀들의 개수 및 넷 길이에 따라 생성될 수 있다. 이때, 넷 길이는 시그널 넷의 길이의 상한 값에 대응할 수 있다. 따라서, 넷 길이가 제1 길이(L1) 이하인 시그널 넷들에 적용되는 기생 커패시턴스 스케일링 팩터들은, 팬아웃 핀들의 개수에 따라 서로 다를 수 있다.
예를 들어, 팬아웃 핀의 개수가 1이고 넷 길이가 제1 길이(L1) 이하인 시그널 넷에 대해서는 C11(예를 들어, 1.34)가 적용될 수 있고, 이에 따라, i+1번째 합성 단계에서 C11을 이용하여 물리-인지 합성을 수행할 수 있다. 예를 들어, 팬아웃 핀의 개수가 2개이고 넷 길이가 제1 길이(L1)와 제2 길이(L2) 사이인 시그널 넷에 대해서는 C22(예를 들어, 1.41)가 적용될 수 있고, 이에 따라, 이에 따라, i+1번째 합성 단계에서 C22를 이용하여 물리-인지 합성을 수행할 수 있다. 물리-인지 합성 결과 생성된 넷리스트는, 디테일 라우팅 결과가 반영된 넷리스트일 수 있고, 디테일 라우팅-인지 넷리스트라고 지칭할 수 있다.
도 14는 도 11에 예시된 합성 단계(112)의 변형 실시예(112')를 나타내는 흐름도이다.
도 14를 참조하면, i+1번째 합성 단계(112')에서, 기생 성분 어노테이션 파일(1221)을 수신하고, 기생 성분 어노테이션 파일을 이용하여 RTL 코드를 1차 컴파일(1222')한다. 이어서, 기생 성분 어노테이션 파일을 제거하고(1223), 1차 컴파일 결과를 2차 컴파일(1224)한다. 여기서, 2차 컴파일은 타이밍 최적화를 위해 수행될 수 있고, 인크리멘탈 컴파일이라고 지칭할 수도 있다. 그러나, 본 발명은 이에 한정되지 않으며, 일부 실시예에서, 2차 컴파일(1224)은 기생 성분 어노테이션 파일을 이용하여 컴파일링할 수 있다.
도 15는 본 개시의 일 실시예에 따른 집적 회로의 설계 방법을 나타내는 개념도이다.
도 15를 참조하면, 본 실시예에 따른 집적 회로의 설계 방법은 도 3의 설계 방법 및 도 10의 설계 방법의 변형 예에 대응할 수 있다. 따라서, 도 3 및 도 10을 참조하여 상술된 내용은 본 실시예에 적용될 수 있고, 중복된 설명은 생략하기로 한다. P&R 동작(S510)에서, 클럭 패쓰에 대한 클럭 레이턴시 정보 및 데이터 패쓰에 대한 기생 성분 정보를 추출할 수 있다. 추출된 클럭 레이턴시 정보 및 추출된 기생 성분 정보는 다음 합성 동작에 활용하기 위하여 합성 툴에 입력 파일로써 제공될 수 있다.
물리-인식 합성 동작(S520)에서, 클럭 레이턴시 정보 및 기생 성분 정보를 이용하여, RTL 코드로부터 게이트 레벨의 넷리스트를 생성활 수 있다. 실제 합성 동작 시에는 CTS를 수행하지 않지만, 본 실시예에 따르면, 이전 P&R 동작(S510)에서 추출된 클럭 레이턴시 정보를 이용하여 합성 동작을 수행하므로, CTS가 반영된 넷리스트를 생성할 수 있다. 또한, 실제 합성 동작 시에는 글로벌 라우팅을 수행하지만, 본 실시예에 따르면, 이전 P&R 동작(S510)에서 추출된 기생 성분 정보를 이용하여 합성 동작을 수행하므로, 디테일 라우팅이 반영된 넷리스트를 생성할 수 있다.
도 16은 본 개시의 일 실시예에 따른 집적 회로를 설계하기 위한 컴퓨팅 시스템(160)을 나타내는 블록도이다.
도 16을 참조하면, 집적 회로를 설계하기 위한 컴퓨팅 시스템(이하 '집적 회로 설계 시스템'이라고 지칭함)(160)은 프로세서(161), 워킹 메모리(163), 입출력 장치(165), 저장 장치(167) 및 버스(169)를 포함할 수 있다. 집적 회로 설계 시스템(160)은 예를 들어, 도 1의 단계 S110 및 S130을 포함하는 집적 회로 설계 동작을 수행할 수 있다. 본 실시예에서, 집적 회로 설계 시스템(160)은 일체화된 디바이스로 구현될 수 있고, 이에 따라, 집적 회로 설계 장치라고 지칭할 수도 있다. 집적 회로 설계 시스템(160)은 반도체 장치의 집적 회로를 설계하기 위한 전용 장치로 제공될 수도 있지만, 다양한 시뮬레이션 툴이나 설계 툴들을 구동하기 위한 컴퓨터일 수도 있다.
프로세서(161)는 집적 회로를 설계하기 위한 다양한 동작 중 적어도 하나를 수행하는 명령어들을 실행하도록 구성될 수 있다. 프로세서(161)는 버스(169)를 통해 워킹 메모리(163), 입출력 장치(165) 및 저장 장치(167)와 통신을 수행할 수 있다. 프로세서(161)는 워킹 메모리(163)에 로딩된 합성 모듈(163a) 및 P&R 모듈(163b)을 구동함으로써, 집적 회로의 설계 동작을 실행할 수 있다.
워킹 메모리(163)는 합성 모듈(163a) 및 P&R 모듈(163b)을 저장할 수 있다. 합성 모듈(163a) 및 P&R 모듈(163b)은 저장 장치(167)로부터 워킹 메모리(163)로 로딩될 수 있다. 워킹 메모리(163)는 SRAM(Static Random Access Memory)이나 DRAM(Dynamic Random Access Memory)과 같은 휘발성 메모리이거나, PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등의 비휘발성 메모리일 수 있다.
합성 모듈(163a)은 예를 들어, 도 1의 단계 S110에 따른 물리-인식 합성 동작을 수행하기 위한 복수의 명령어들을 포함하는 프로그램일 수 있다. P&R 모듈(163b)은 예를 들어, 도 1의 단계 S130에 따른 P&R 동작을 수행하기 위한 복수의 명령어들을 포함하는 프로그램일 수 있다.
입출력 장치(165)는 사용자 인터페이스 장치들로부터의 사용자 입력 및 출력을 제어할 수 있다. 예를 들어, 입출력 장치(165)는 키보드, 마우스, 터치패드 등과 같은 입력 장치를 구비하여, 집적 회로를 정의하는 입력 데이터를 입력 받을 수 있다. 예를 들어, 입출력 장치(165)는 디스플레이, 스피커 등과 같은 출력 장치를 구비하여, 배치 결과, 배선 결과 또는 타이밍 분석 결과 등을 표시할 수 있다.
저장 장치(167)는 합성 모듈(163a) 및 P&R 모듈(163b)과 관련된 각종 데이터를 저장할 수 있다. 저장 장치(167)는 메모리 카드(MMC, eMMC, SD, MicroSD 등), 솔리드 스테이트 드라이브(solid state drive), 하드 디스크 드라이브(hard disk drive) 등을 포함할 수 있다.
도 17은 도 16의 워킹 메모리(163)에 저장된 프로그램의 일 예를 나타낸다.
도 16 및 도 17을 함께 참조하면, 워킹 메모리(163)에 저장된 프로그램은 복수의 프로시저들(procedures)(PRC)을 포함할 수 있고, 여기서, 프로시저는 특정 태스크를 수행하기 위한 일련의 명령어들을 지칭할 수 있다. 프로시저는 함수, 루틴(routine), 서브루틴(subroutine), 서브프로그램 등으로도 지칭될 수 있다. 본 실시예에 따르면, 프로시저들(PRC)은 합성기(synthesizer)(SYN), 배치기(placer) (PLC) 및 라우터(router)(RT)를 포함할 수 있다. 또한, 합성기(SYN)는 컴파일러(compiler)(CMP)를 포함할 수 있다. 본 명세서에서, 도 16의 프로세서(161)가 프로시저(SYN, PLC 또는 RT)를 실행함으로써 동작을 수행하는 것은, 프로시저(SYN, PLC 또는 RT)가 그러한 동작을 수행하는 것으로도 표현된다.
저장 장치(167)는 셀 라이브러리 데이터베이스(database, 이하 'DB')(167a) 및 레이아웃 DB(167b)를 포함할 수 있다. 셀 라이브러리 DB(167a)는 집적 회로의 레이아웃을 생성하기 위해 필요한 표준 셀에 대한 정보를 저장할 수 있고, 표준 셀 라이브러리 DB로 지칭할 수 있다. 레이아웃 DB(167b)은 프로시저들(PRC)에서 생성된 레이아웃에 대한 정보, 구체적으로, 레이아웃에 대한 물리적 정보를 저장할 수 있다. 또한, 저장 장치(167)는 집적 회로의 제조 공정에서 사용되는 룰들(rules) 및 물질들(materials)을 저장하는 테크놀로지 파일 DB를 더 포함할 수 있고, 테크놀로지 파일 DB는 예를 들어, 레이어 정의, 디바이스 정의, 디자인 룰들 등을 저장할 수 있다.
합성기(SYN)는 이전 배치 및 라우팅 동작의 결과로부터 추출된 특성 값들(즉, 물리-인식 정보)을 기초로, RTL 코드(D10)로부터 넷리스트를 생성할 수 있다. 구체적으로, 컴파일러(CMP)는 추출된 특성 값들에 따른 물리-인식 어노테이션 파일을 수신할 수 있고, 물리-인식 어노테이션 파일을 이용하여 RTL 코드(D10)를 컴파일링하여 넷리스트를 생성할 수 있다.
배치기(PLC)는 넷리스트를 기초로 표준 셀들을 배치할 수 있고, 구체적으로, 배치기(PLC)는 셀 라이브러리 DB(167a)에 액세스하여 배치 동작을 수행할 수 있다. 일 실시예에서, 배치기(PLC)는 물리-인식 어노테이션 파일을 이용하여 표준 셀들을 배치할 수 있고, 이에 따라, 배치 성능을 더욱 향상시킬 수 있다. 라우터(RT)는 배치기(PLC)에 의해 배치된 표준 셀들에 대해 라우팅을 수행하여 레이아웃 데이터를 생성할 수 있다.
도 18은 본 개시의 일 실시예에 따른 집적 회로를 설계하기 위한 컴퓨팅 시스템(180)을 나타내는 블록도이다.
도 18을 참조하면, 집적 회로 설계 시스템(180)은 사용자 장치(181), 집적 회로 설계 플랫폼(182) 및 저장 장치(183)를 포함할 수 있다. 집적 회로 설계 시스템(180)은 예를 들어, 도 1의 단계 S110 및 S130을 포함하는 집적 회로 설계 동작을 수행할 수 있다. 본 실시예에서, 사용자 장치(181), 집적 회로 설계 플랫폼(182) 및 저장 장치(183) 중 적어도 하나는 별개의 디바이스일 수 있고, 사용자 장치(181), 집적 회로 설계 플랫폼(182) 및 저장 장치(183)는 유무선 통신 또는 네트워크를 통해 연결될 수 있다. 일 실시예에서, 사용자 장치(181), 집적 회로 설계 플랫폼(182) 및 저장 장치(183) 중 적어도 하나는 서로 이격되어 위치할 수 있다.
사용자 장치(181)는 프로세서(181a) 및 사용자 인터페이스(User Interface, UI)(181b)를 포함할 수 다. 사용자 인터페이스(181b)를 통해 입력되는 사용자 입력에 따라, 프로세서(181a)는 집적 회로 설계 플랫폼(182)을 구동할 수 있다. 집적 회로 설계 플랫폼(182)은 집적 회로의 설계를 위한 컴퓨터로 독출 가능한 명령어의 세트로서, 합성 모듈(182a) 및 P&R 모듈(182a)을 포함할 수 있다. 저장 장치(183)는 셀 라이브러리 DB(183a) 및 레이아웃 DB(183b)를 포함할 수 있다. 셀 라이브러리 DB(183a)는 집적 회로의 레이아웃을 생성하기 위해 필요한 셀에 대한 정보를 저장하고, 레이아웃 DB(183b)는 P&R 모듈(182b)에서 생성된 레이아웃에 대한 정보, 구체적으로, 레이아웃에 대한 물리적 정보를 저장할 수 있다.
도 19는 본 개시의 일 실시예에 따른 집적 회로의 설계 방법을 나타내는 흐름도이다.
도 19를 참조하면, 본 실시예에 따른 집적 회로의 설계 방법은 BEOL을 고려하여 집적 회로를 설계하기 위한 컴퓨터 구현 방법이며, 예를 들어, 도 16의 집적 회로 설계 시스템(160)에서 시계열적으로 수행되는 단계들(S610 내지 S650)을 포함할 수 있다. 따라서, 본 실시예에 포함된 단계들(S610 내지 S650)은 프로세서(예를 들어, 도 16의 161)에 의해 수행될 수 있다. 도 1 내지 도 18을 참조하여 상술된 내용은 본 실시예에도 적용될 수 있고, 중복된 설명은 생략하기로 한다.
단계 S610에서, 집적 회로를 정의하는 표준 셀들에 대한 배치 및 라우팅 동작의 결과로부터 특성 값들을 추출한다. 일 실시예에서, 특성 값들은 클럭 레이턴시 정보 및 기생 성분 정보 중 적어도 하나를 포함할 수 있다. 일 실시예에서, 배치 및 라우팅 동작의 결과로부터 복수의 클럭 핀들 각각에 대한 클럭 레이턴시 정보를 특성 값들로써 추출할 수 있다. 예를 들어, 클럭 레이턴시 정보는 각 클럭 핀에 대한 최대 클럭 레이턴시 및 최소 클럭 레이턴시를 포함할 수 있다.
일 실시예에서, 배치 및 라우팅 동작의 결과로부터 복수의 시그널 넷들 각각에 대한 기생 저항 및 기생 커패시턴스 중 적어도 하나를 포함하는 기생 성분 정보를 특성 값들로써 추출할 수 있다. 구체적으로, 배치 및 라우팅 동작의 글로벌 라우팅 결과로부터 제1 기생 성분들을 추정하고, 배치 및 라우팅 동작의 디테일 라우팅 결과로부터 제2 기생 성분들을 추출하며, 제1 기생 성분들과 제2 기생 성분들을 비교함으로써, 기생 성분 스케일링 팩터들을 생성할 수 있다.
단계 S630에서, 추출된 특성 값들로부터 복수의 그룹들에 각각 대응하는 복수의 대표 특성 값들을 결정함으로써 물리-인식 어노테이션 파일을 생성한다. 일 실시예에서, 집적 회로에 포함된 로직 모듈들을 복수의 그룹들로 그룹핑하고, 복수의 그룹들 각각에 대한 클럭 레이턴시 평균 값들을, 복수의 그룹들 각각에 대응하는 복수의 대표 특성 값들로 각각 결정할 수 있다.
일 실시예에서, 복수의 시그널 넷들을 복수의 그룹들로 그룹핑하고, 생성된 기생 성분 스케일링 팩터들을 기초로, 복수의 그룹들 각각에 대응하는 대표 기생 성분 스케일링 팩터들을 결정할 수 있다. 예를 들어, 팬아웃 핀들의 개수, 넷 길이, 넷과 IO 셀의 직접 연결 여부, 넷과 매크로 셀의 직접 연결 여부 중 적어도 하나를 기초로 복수의 시그널 넷들을 복수의 그룹들로 그룹핑할 수 있다.
단계 S650에서, 생성된 물리-인식 어노테이션 파일을 이용하여, 집적 회로에 대한 입력 데이터로부터 넷리스트를 생성하도록 물리-인식 합성 동작을 수행한다. 일 실시예에서, 집적 회로에 포함된 복수의 클럭 핀들에, 전체 클럭 레이턴시들의 평균 값에 대응하는 기준 클럭 레이턴시를 적용하고, 각 그룹 내의 로직 모듈들에 포함된 클럭 핀들에, 각 그룹에 대응하는 대표 특성 값을 더 적용할 수 있다.
도 20은 본 개시의 일 실시예에 따른 집적 회로의 설계 방법을 나타내는 흐름도이다.
도 20을 참조하면, 본 실시예에 따른 집적 회로의 설계 방법은 BEOL을 고려하여 집적 회로를 설계하기 위한 컴퓨터 구현 방법이며, 예를 들어, 도 16의 집적 회로 설계 시스템(160)에서 시계열적으로 수행되는 단계들(S710 및 S720)을 포함할 수 있다. 따라서, 본 실시예에 포함된 단계들(S710 및 S720)은 프로세서(예를 들어, 도 16의 161)에 의해 수행될 수 있다. 도 1 내지 도 19를 참조하여 상술된 내용은 본 실시예에도 적용될 수 있고, 중복된 설명은 생략하기로 한다.
단계 S710에서, 집적 회로에 대한 넷리스트를 이용하여 제1 P&R을 수행하고, 제1 P&R 동작의 결과로부터 클럭 레이턴시 정보를 추출한다. 예를 들어, 제1 P&R은 도 7b의 i번째 P&R 단계(71)에 대응할 수 있다.
단계 S720에서, 집적 회로에 대한 넷리스트 및 추출된 클럭 레이턴시 정보를 이용하여 제2 P&R을 수행한다. 예를 들어, 제2 P&T은 도 7b의 i+1번째 P&R 단계(73)에 대응할 수 있다. 일 실시예에서, 제2 P&R은 추출된 클럭 레이턴시 정보를 이용하여, 집적 회로를 정의하는 복수의 표준 셀들을 배치하는 단계를 포함할 수 있다.
본 실시예에 따르면, 단계 S710과 단계 S720 사이에 합성 단계가 수행되지 않을 수 있다. 이에 따라, 단계 S710에 이용되는 넷리스트와 단계 S720에 이용되는 넷리스트는 동일할 수 있고, 따라서, 단계 S720에 이용되는 넷리스트는 단계 S710에서 추출된 클럭 레이턴시 정보가 반영되지 않을 수 있다.
도 21은 본 개시의 일 실시예에 따른 컴퓨터로 독출 가능한 저장 매체를 나타낸다.
도 21을 참조하면, 저장 매체(1000)는 셀 라이브러리(1100), 합성 프로그램(1200), P&R 프로그램(1300) 및 레이아웃 데이터(1400)를 저장할 수 있다. 저장 매체(1000)는 컴퓨터로 읽을 수 있는 저장 매체로서, 컴퓨터에 명령어들 및/또는 데이터를 제공하는데 사용되는 동안 컴퓨터에 의해 읽혀질 수 있는 임의의 저장 매체를 포함할 수 있다. 예를 들면, 컴퓨터로 읽을 수 있는 저장 매체(1000)는 디스크, 테이프, CD-ROM, DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW 등과 같은 자기 또는 광학 매체, RAM, ROM, 플래시 메모리 등과 같은 휘발성 또는 비휘발성 메모리, USB 인터페이스를 통해서 엑세스 가능한 비휘발성 메모리, 그리고 MEMS(microelectromechanical systems) 등을 포함할 수 있다. 컴퓨터로 읽을 수 있는 저장 매체는 컴퓨터에 삽입 가능하거나, 컴퓨터 내에 집적되거나, 네트워크 및/또는 무선 링크와 같은 통신 매개체를 통해서 컴퓨터와 결합될 수 있다.
셀 라이브러리(1100)는 표준 셀 라이브러리일 수 있고, 집적 회로를 구성하는 단위인 표준 셀에 대한 정보를 포함할 수 있다. 일 실시예에서, 표준 셀에 대한 정보는 레이아웃 생성에 필요한 레이아웃 정보를 포함할 수 있다. 일 실시예에서, 표준 셀에 대한 정보는 레이아웃의 검증 또는 시뮬레이션에 필요한 타이밍 정보를 포함할 수 있다. 레이아웃 데이터(1400)는 P&R 동작을 통해 생성된 레이아웃에 대한 물리적 정보를 포함할 수 있다. 예를 들어, 레이아웃 데이터(1400)는 시그널 넷을 구성하는 도전 패턴들의 너비 값 및 스페이스 값을 포함할 수 있다.
합성 프로그램(1200)은 본 개시의 예시적인 실시예들에 따라, 이전 P&R 동작의 결과로부터 추출된 특성 값들, 대표 특성 값들 또는 물리-인식 어노테이션 파일을 이용하여, 집적 회로에 대한 RTL 코드로부터 넷리스트를 생성하기 위한 물리-인식 합성 동작을 수행하기 위한 복수의 명령어들을 포함할 수 있다. 합성 프로그램(1200)은 예를 들어, 도 1의 S110, 도 2의 S210, S230, 도 3의 S320, 도 7a의 72, 도 9의 72', 도 10의 S420, 도 11의 112, 도 14의 112', 도 15의 S520, 또는 도 19의 S650을 수행하기 위해 이용될 수 있다.
배치 및 배선 프로그램(1300)은 본 개시의 예시적인 실시예들에 따른 표준 셀 라이브러리를 사용하여 집적 회로의 레이아웃을 생성하는 방법을 수행하기 위한 복수의 명령어들을 포함할 수 있다. 배치 및 배선 프로그램(1300)은 예를 들어, 도 1의 S130, 도 2의 S230, S240, 도 3의 S310, 도 7a의 71, 73, 도 7b의 71, 73, 도 10의 S410, 도 11의 111, 도 15의 S510, 도 19의 S610, S630, 또는 도 20의 S710, S720을 수행하기 위해 이용될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 집적 회로를 설계하기 위한 컴퓨터 구현 방법으로서,
    프로세서에 의해, 상기 집적 회로를 정의하는 표준 셀들에 대한 배치 및 라우팅 동작의 결과로부터 특성 값들을 추출하는 단계;
    상기 프로세서에 의해, 추출된 상기 특성 값들로부터 복수의 그룹들에 각각 대응하는 복수의 대표 특성 값들을 결정함으로써 물리-인식 어노테이션 파일(physical-aware annotation file)을 생성하는 단계;
    상기 프로세서에 의해, 생성된 상기 물리-인식 어노테이션 파일을 이용하여, 상기 집적 회로에 대한 입력 데이터로부터 넷리스트를 생성하도록 물리-인식 합성 동작을 수행하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 추출하는 단계는, 상기 배치 및 라우팅 동작의 결과로부터 복수의 클럭 핀들 각각에 대한 클럭 레이턴시 정보를 상기 특성 값들로써 추출하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 클럭 레이턴시 정보는, 각 클럭 핀에 대한 최대 클럭 레이턴시 및 최소 클럭 레이턴시를 포함하는 것을 특징으로 하는 방법.
  4. 제2항에 있어서,
    상기 물리-인식 어노테이션 파일을 생성하는 단계는,
    상기 집적 회로에 포함된 로직 모듈들을 상기 복수의 그룹들로 그룹핑하는 단계; 및
    상기 복수의 그룹들 각각에 대한 클럭 레이턴시 평균 값들을, 상기 복수의 그룹들 각각에 대응하는 상기 복수의 대표 특성 값들로 각각 결정하는 단계를 포함하는 방법.
  5. 제4항에 있어서,
    상기 물리-인식 합성 동작을 수행하는 단계는,
    상기 집적 회로에 포함된 복수의 클럭 핀들에, 전체 클럭 레이턴시들의 평균 값에 대응하는 기준 클럭 레이턴시를 적용하는 단계; 및
    각 그룹 내의 로직 모듈들에 포함된 클럭 핀들에, 상기 각 그룹에 대응하는 대표 특성 값을 더 적용하는 단계를 포함하는 방법.
  6. 제2항에 있어서,
    상기 넷리스트 및 상기 클럭 레이턴시 정보를 이용하여, 상기 집적 회로를 정의하는 상기 표준 셀들에 대한 배치 및 라우팅 동작을 수행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 추출하는 단계는, 상기 배치 및 라우팅 동작의 결과로부터 복수의 시그널 넷들(signal nets) 각각에 대한 기생 저항 및 기생 커패시턴스 중 적어도 하나를 포함하는 기생 성분 정보를 상기 특성 값들로써 추출하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서,
    상기 추출하는 단계는,
    상기 배치 및 라우팅 동작의 글로벌 라우팅 결과로부터 제1 기생 성분들을 추정(estimate)하는 단계;
    상기 배치 및 라우팅 동작의 디테일 라우팅 결과로부터 제2 기생 성분들을 추출하는 단계; 및
    상기 제1 기생 성분들과 상기 제2 기생 성분들을 비교함으로써, 기생 성분 스케일링 팩터들을 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 물리-인식 어노테이션 파일을 생성하는 단계는,
    상기 복수의 시그널 넷들을 상기 복수의 그룹들로 그룹핑하는 단계; 및
    생성된 상기 기생 성분 스케일링 팩터들을 기초로, 상기 복수의 그룹들 각각에 대응하는 대표 기생 성분 스케일링 팩터들을 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 집적 회로를 설계하기 위한 컴퓨터 구현 방법으로서,
    프로세서에 의해, 상기 집적 회로를 정의하는 복수의 표준 셀들에 대한 이전 배치 및 라우팅 동작의 결과로부터 클럭 레이턴시 정보 및 기생 성분 정보 중 적어도 하나를 추출하는 단계;
    상기 프로세서에 의해, 추출된 상기 클럭 레이턴시 정보 및 상기 기생 성분 정보 중 적어도 하나를 이용하여, 상기 집적 회로에 대한 입력 데이터로부터 넷리스트를 생성하도록 물리-인식 합성 동작을 수행하는 단계; 및
    상기 프로세서에 의해, 생성된 상기 넷리스트에 따라, 상기 집적 회로를 정의하는 상기 복수의 표준 셀들에 대한 배치 및 라우팅 동작을 수행하는 단계를 포함하는 방법.
KR1020170018764A 2017-02-10 2017-02-10 Beol을 고려하여 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템 KR20180092692A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170018764A KR20180092692A (ko) 2017-02-10 2017-02-10 Beol을 고려하여 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템
US15/842,184 US10928442B2 (en) 2017-02-10 2017-12-14 Computer implemented methods and computing systems for designing integrated circuits by considering back-end-of-line
CN201810018185.7A CN108416077B (zh) 2017-02-10 2018-01-09 用于通过考虑后段制程来设计集成电路的方法和计算系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170018764A KR20180092692A (ko) 2017-02-10 2017-02-10 Beol을 고려하여 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템

Publications (1)

Publication Number Publication Date
KR20180092692A true KR20180092692A (ko) 2018-08-20

Family

ID=63104561

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170018764A KR20180092692A (ko) 2017-02-10 2017-02-10 Beol을 고려하여 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템

Country Status (3)

Country Link
US (1) US10928442B2 (ko)
KR (1) KR20180092692A (ko)
CN (1) CN108416077B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111666732B (zh) * 2019-03-07 2023-09-26 瑞昱半导体股份有限公司 集成电路布局设计方法
US11646305B2 (en) 2019-10-02 2023-05-09 Samsung Electronics Co., Ltd. Semiconductor devices and methods of manufacturing the same
US11275883B2 (en) * 2020-02-12 2022-03-15 Siemens Industry Software Inc. Machine learning-based classification in parasitic extraction automation for circuit design and verification
US11681842B2 (en) * 2020-12-08 2023-06-20 Synopsys, Inc. Latency offset in pre-clock tree synthesis modeling
CN113536717B (zh) * 2021-07-14 2022-05-24 北京华大九天科技股份有限公司 一种基于增量编译的电路仿真方法

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026219A (en) * 1995-05-12 2000-02-15 Synopsys, Inc. Behavioral synthesis links to logic synthesis
US6438735B1 (en) * 1999-05-17 2002-08-20 Synplicity, Inc. Methods and apparatuses for designing integrated circuits
US6552589B1 (en) * 1999-10-21 2003-04-22 International Business Machines Corporation Method and apparatus for process independent clock signal distribution
US6530073B2 (en) * 2001-04-30 2003-03-04 Lsi Logic Corporation RTL annotation tool for layout induced netlist changes
US6973632B1 (en) 2002-06-11 2005-12-06 Synplicity, Inc. Method and apparatus to estimate delay for logic circuit optimization
JP2004102703A (ja) * 2002-09-10 2004-04-02 Matsushita Electric Ind Co Ltd レジスタ転送レベル設計支援装置
US20040153278A1 (en) 2003-01-27 2004-08-05 Pengfei Zhang Signal flow driven circuit physical synthesis technique
US7137093B2 (en) * 2003-08-08 2006-11-14 Cadence Design Systems, Inc. Post-placement timing optimization of IC layout
US7207020B1 (en) * 2004-02-09 2007-04-17 Altera Corporation Method and apparatus for utilizing long-path and short-path timing constraints in an electronic-design-automation tool
US7257782B2 (en) * 2004-10-22 2007-08-14 Synopsys, Inc. Method and apparatus for reducing power consumption in an integrated circuit chip
JP2006146345A (ja) * 2004-11-16 2006-06-08 Matsushita Electric Ind Co Ltd 半導体集積回路の設計方法及びその設計装置
EP1907957A4 (en) * 2005-06-29 2013-03-20 Otrsotech Ltd Liability Company INVESTMENT METHODS AND SYSTEMS
US7752588B2 (en) * 2005-06-29 2010-07-06 Subhasis Bose Timing driven force directed placement flow
US7996797B1 (en) 2006-08-16 2011-08-09 Altera Corporation Method and apparatus for performing multiple stage physical synthesis
US8127260B1 (en) 2006-11-22 2012-02-28 Cadence Design Systems, Inc. Physical layout estimator
US7546567B2 (en) * 2007-01-10 2009-06-09 Synopsys, Inc. Method and apparatus for generating a variation-tolerant clock-tree for an integrated circuit chip
US7761832B2 (en) 2007-11-16 2010-07-20 International Business Machines Corporation Method for incremental, timing-driven, physical-synthesis optimization under a linear delay model
US7853915B2 (en) 2008-06-24 2010-12-14 Synopsys, Inc. Interconnect-driven physical synthesis using persistent virtual routing
US8261218B1 (en) * 2008-08-01 2012-09-04 Altera Corporation Systems and methods for determining beneficial clock-path connection delays
JP4655240B2 (ja) * 2008-09-26 2011-03-23 日本電気株式会社 タイミング解析支援装置
US20100153896A1 (en) * 2008-12-12 2010-06-17 Lsi Corporation Real-time critical path margin violation detector, a method of monitoring a path and an ic incorporating the detector or method
JP5444985B2 (ja) * 2009-09-16 2014-03-19 日本電気株式会社 情報処理装置
US8091057B1 (en) * 2009-10-23 2012-01-03 Xilinx, Inc. Synthesis, place, and route responsive to reasons for critical paths not meeting performance objective
CN102169515B (zh) * 2010-02-26 2014-04-16 国际商业机器公司 一种专用集成电路中时钟树延迟时间的估计方法和系统
US8196081B1 (en) * 2010-03-31 2012-06-05 Xilinx, Inc. Incremental placement and routing
US8539413B1 (en) * 2010-04-27 2013-09-17 Applied Micro Circuits Corporation Frequency optimization using useful skew timing
US8719743B1 (en) * 2011-04-29 2014-05-06 Cadence Design Systems, Inc. Method and system for implementing clock tree prototyping
US8584065B2 (en) * 2011-05-05 2013-11-12 Advanced Micro Devices, Inc. Method and apparatus for designing an integrated circuit
CN102799698B (zh) * 2011-05-26 2014-07-23 国际商业机器公司 一种用于专用集成电路的时钟树规划的方法和系统
CN102955869B (zh) * 2011-08-30 2015-04-08 国际商业机器公司 评估时钟偏移的方法和装置
KR20130084029A (ko) * 2012-01-16 2013-07-24 삼성전자주식회사 탭리스 스탠다드 셀을 포함하는 시스템-온-칩의 설계 방법, 설계 시스템 및 시스템-온-칩
US8875075B2 (en) 2012-06-20 2014-10-28 Synopsys, Inc. Generating pattern-based estimated RC data with analysis of route information
JP2014021573A (ja) * 2012-07-13 2014-02-03 International Business Maschines Corporation 半導体集積回路の論理回路設計に用いるネットリストを最適化する方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラム
US8782591B1 (en) * 2012-12-31 2014-07-15 Cadence Design Systems, Inc. Physically aware logic synthesis of integrated circuit designs
US9053283B2 (en) * 2013-03-12 2015-06-09 Taiwan Semiconductor Manufacturing Company, Ltd. Methods for layout verification for polysilicon cell edge structures in finFET standard cells using filters
US8843872B1 (en) * 2013-03-15 2014-09-23 Synopsys, Inc. Automatic clock tree synthesis exceptions generation
US8887117B1 (en) * 2013-10-07 2014-11-11 Taiwan Semiconductor Manufacturing Company Ltd. Register clustering for clock network topology generation
US9607122B2 (en) * 2014-01-30 2017-03-28 Mentor Graphics Corporation Timing driven clock tree synthesis
US9443047B2 (en) 2014-05-28 2016-09-13 International Business Machines Corporation Physical aware technology mapping in synthesis
JP2016110408A (ja) 2014-12-05 2016-06-20 株式会社ソシオネクスト 設計装置、設計プログラム、および設計方法
US9483597B1 (en) * 2015-03-24 2016-11-01 Xilinx, Inc. Opportunistic candidate path selection during physical optimization of a circuit design for an IC
US9773083B1 (en) * 2016-03-14 2017-09-26 Xilinx, Inc. Post-placement and pre-routing processing of critical paths in a circuit design
US10338633B2 (en) * 2016-06-13 2019-07-02 Drexel University Slew-driven clock tree synthesis

Also Published As

Publication number Publication date
US10928442B2 (en) 2021-02-23
CN108416077A (zh) 2018-08-17
US20180231604A1 (en) 2018-08-16
CN108416077B (zh) 2023-10-31

Similar Documents

Publication Publication Date Title
US11475195B2 (en) Computer-implemented method and computing system for designing integrated circuit by considering timing delay
CN108416077B (zh) 用于通过考虑后段制程来设计集成电路的方法和计算系统
US10418354B2 (en) Integrated circuit and computer-implemented method of manufacturing the same
US11775725B2 (en) System and computer program product for integrated circuit design
US11681853B2 (en) Integrated circuit and method of forming same and a system
KR102416490B1 (ko) 와이어의 공정 변이를 고려한 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템
US20170344692A1 (en) Computer-implemented method of designing an integrated circuit
TWI789911B (zh) 用於電容值提取的系統、方法及儲存媒體
US10628550B2 (en) Method for designing an integrated circuit, and method of manufacturing the integrated circuit
KR20180127141A (ko) 집적 회로를 설계하기 위한 컴퓨터 구현 방법, 컴퓨팅 시스템, 및 집적 회로의 제조 방법
US10956643B2 (en) Method, system, and storage medium of resource planning for designing semiconductor device
US10424518B2 (en) Integrated circuit designing system and a method of manufacturing an integrated circuit
US20210248297A1 (en) Integrated circuit design method, system and computer program product
US20220335197A1 (en) Post-Routing Congestion Optimization
KR20170094744A (ko) 집적 회로 및 상기 집적 회로의 제조를 위한 컴퓨터 구현 방법
TW201935289A (zh) 用於單元交換的方法
US11270052B2 (en) System and method of timing characterization for semiconductor circuit
Lienig et al. Steps in Physical Design: From Netlist Generation to Layout Post Processing
US11861281B2 (en) Computer-implemented method and computing system for designing integrated circuit by considering timing delay
US20230259680A1 (en) Standard cell characterization for internal conductive line of cell
CN111143767A (zh) 统计模型的开发方法及开发系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal