KR20150102086A - 자동 클럭 트리 라우팅 규칙 생성 - Google Patents

자동 클럭 트리 라우팅 규칙 생성 Download PDF

Info

Publication number
KR20150102086A
KR20150102086A KR1020157020150A KR20157020150A KR20150102086A KR 20150102086 A KR20150102086 A KR 20150102086A KR 1020157020150 A KR1020157020150 A KR 1020157020150A KR 20157020150 A KR20157020150 A KR 20157020150A KR 20150102086 A KR20150102086 A KR 20150102086A
Authority
KR
South Korea
Prior art keywords
net
metric
congestion
generating
default
Prior art date
Application number
KR1020157020150A
Other languages
English (en)
Other versions
KR102103617B1 (ko
Inventor
아이쿤 카오
산자이 다르
린 위안
Original Assignee
시놉시스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 시놉시스, 인크. filed Critical 시놉시스, 인크.
Publication of KR20150102086A publication Critical patent/KR20150102086A/ko
Application granted granted Critical
Publication of KR102103617B1 publication Critical patent/KR102103617B1/ko

Links

Images

Classifications

    • 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
    • G06F30/396Clock trees
    • 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
    • G06F2217/62

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

하나 이상의 메트릭들에 기초하여 클럭 트리에서 네트를 라우팅하기 위한 비디폴트 라우팅 규칙들의 세트를 자동으로 생성하기 위한 시스템들 및 기법들이 기술된다. 메트릭들은 혼잡 메트릭, 레이턴시 메트릭, 크로스토크 메트릭, 일렉트로마이그레이션 메트릭, 및 클럭 트리 레벨을 포함할 수 있다. 다음에, 실시형태들은 하나 이상의 메트릭들에 기초하여 네트를 라우팅하기 위한 비디폴트 라우팅 규칙들의 세트를 생성할 수 있다. 라우팅 규칙은 와이어들이 얼마나 넓어야 하는지 및 인접한 와이어들이 얼마나 멀리 떨어져 배치되어야 하는지를 특정할 수 있다. 비디폴트 라우팅 규칙은 디폴트 폭과 상이한 와이어 폭을 특정하고 및/또는 디폴트 간격과 상이한 간격 (즉, 2 개의 와이어들 사이의 거리) 을 특정할 수 있다.

Description

자동 클럭 트리 라우팅 규칙 생성{AUTOMATIC CLOCK TREE ROUTING RULE GENERATION}
본 개시는 전자 회로 설계 동안 클럭 트리 합성에 관한 것이다. 더욱 구체적으로는, 본 개시는 자동 클럭 트리 라우팅 규칙 생성에 관한 것이다.
반도체 기술에서의 진보들은 현재 단일 반도체 칩 상에 수억 개의 트랜지스터들을 집적하는 것을 가능하게 한다. 반도체 집적 밀도들에서의 이러한 극적인 증가는 회로들을 설계하는 것을 더욱 더 어렵게 만들어 왔다.
클럭 트리 합성 (clock tree synthesis: CTS) 및 라우팅은 전자 설계 자동화 (electronic design automation: EDA) 에서 2 가지 중요한 동작들이다. CTS 는 회로 설계에서 순차 회로 엘리먼트들의 세트에 클럭 신호를 분배하기 위한 클럭 분배 네트워크를 생성하는 프로세스를 지칭한다. 회로 설계를 라우팅하는 것 (회로 설계에서 하나 이상의 클럭 트리들을 라우팅하는 것을 포함) 은 원하는 기능들을 수행하는 라우팅된 회로들을 생성하기 위해 회로 엘리먼트들을 전기적으로 연결하는 금속 와이어들에 대한 라우트들 (routes) 을 결정하는 것을 수반한다. 라우터에 의해 생성되는 라우팅된 클럭 트리들의 품질은 EDA 설계 플로우에서 하류의 스테이지들에 중요한 영향을 미칠 수 있다.
일부 실시형태들은 하나 이상의 메트릭들에 기초하여 클럭 트리에서의 네트 (net) 를 라우팅하기 위한 비디폴트 라우팅 규칙들의 세트를 자동적으로 (즉, 사용자가 수동으로 그 규칙들을 생성하는 것을 요구하지 않고) 생성한다. 일부 실시형태들은 다음의 메트릭들 중 하나 이상을 결정할 수 있다: (1) 네트에 대한 혼잡 메트릭, 여기서 혼잡 메트릭은 네트에 근접한 라우팅 혼잡의 양에 대응한다, (2) 네트에 대한 레이턴시 메트릭, 여기서 레이턴시 메트릭은 네트를 포함하는 최장 레이턴시 클럭 경로의 클럭 레이턴시에 대응한다, (3) 네트에 대한 크로스토크 메트릭, 여기서 크로스토크 메트릭은 네트가 다른 네트들로부터 수신하는 크로스토크의 양에 대응한다, (4) 네트에 대한 일렉트로마이그레이션 메트릭, 여기서 일렉트로마이그레이션 메트릭은 네트에서 발행할 것으로 예상되는 일렉트로마이그레이션의 양에 대응한다, (5) 네트에 대한 클럭 트리 레벨, 여기서 클럭 트리의 루트 (root) 는 최고 클럭 트리 레벨에 대응한다.
다음에, 실시형태들은 하나 이상의 메트릭들에 기초하여 네트를 라우팅하기 위한 비디폴트 라우팅 규칙들의 세트를 생성할 수 있다. 라우팅 규칙은 와이어들이 얼마나 넓어야 하는지 및 인접한 와이어들이 얼마나 멀리 떨어져 배치되어야 하는지를 특정할 수 있다. 비디폴트 라우팅 규칙은 디폴트 폭과 상이한 와이어 폭을 특정하고 및/또는 디폴트 간격과 상이한 간격 (즉, 2 개의 와이어들 사이의 거리) 을 특정할 수 있다. 구체적으로는, 혼잡 메트릭이 네트가 높은 혼잡 영역에 있다는 것을 나타낸다고 결정하는 것에 응답하여, 일부 실시형태들은 디폴트 규칙 와이어 폭, 디폴트 규칙 간격, 또는 양자 모두를 사용하는 라우팅 규칙을 생성할 수 있다. 다른 한편으로, 혼잡 메트릭이 네트가 높은 혼잡 영역에 있지 않다는 것을 나타낸다고 결정하는 것에 응답하여, 일부 실시형태들은 다음의 라우팅 규칙들 중 하나 이상을 생성할 수 있다: (1) 디폴트 규칙 와이어 폭보다 넓은 와이어 폭, 디폴트 규칙 간격보다 넓은 간격, 또는 양자 모두를 사용하는 라우팅 규칙, (2) 네트가 클럭 레이턴시 규칙을 위반하는 것을 방지하는 와이어 폭 및/또는 간격을 사용하는 라우팅 규칙, (3) 네트가 크로스토크 규칙을 위반하는 것을 방지하는 와이어 폭 및/또는 간격을 사용하는 라우팅 규칙, (4) 네트가 일렉트로마이그레이션 규칙을 위반하는 것을 방지하는 와이어 폭 및/또는 간격을 사용하는 라우팅 규칙, 및/또는 (5) 클럭 트리 레벨에 기초하여 폭 값 및 간격 값을 사용하는 라우팅 규칙, 여기서 더 큰 폭 및 간격 값들이 더 높은 클럭 트리 레벨들에서 사용된다.
도 1 은 여기에 기술된 일부 실시형태들에 따른 동기 회로를 도시한다.
도 2 는 본 발명의 실시형태에 따른 일반 라우팅 문제를 제시하는 예시적인 회로 설계를 도시한다.
도 3 은 여기에 기술된 일부 실시형태들에 따라 클럭 트리에서 네트를 라우팅하기 위한 비디폴트 라우팅 규칙들의 세트를 생성하는 프로세스를 도시한다.
도 4 는 여기에 기술된 일부 실시형태들에 따른 컴퓨터 시스템을 도시한다.
다음의 상세한 설명은 본 기술분야에 통상의 지식을 가진 자가 본 발명을 실시하고 사용하는 것을 가능하게 하도록 제시되고, 특정의 애플리케이션 및 그것의 요건들의 콘텍스트에서 제공된다. 개시된 실시형태들에 대한 여러 변경들이 통상의 기술자들에게는 용이하게 분명할 것이며, 여기에 정의된 일반적인 원리들은 본 발명의 사상 및 범위로부터 일탈하지 않고 다른 실시형태들 및 애플리케이션들에 적용될 수도 있다. 따라서, 본 발명은 도시된 실시형태들에 제한되지 않고, 여기에 개시된 원리들 및 특징들과 일관된 가장 넓은 범위와 조화되어야 한다. 본 개시에서, 용어 "및/또는" 이 엔티티들의 리스트와 함께 사용되는 경우, 그것은 엔티티들의 리스트의 가장 가능한 조합들을 지칭한다. 예를 들어, 어구 "X, Y, 및/또는 Z" 는 다음의 경우들을 커버한다: (1) X 만; (2) Y 만; (3) Z 만; (4) X 및 Y; (5) X 및 Z; (6) Y 및 Z; 및 (7) X, Y, 및 Z. 또한, 본 개시에서, 용어 "~ 에 기초하여" 는 "~에만 또는 ~에 부분적으로 기초하여" 를 의미한다.
전자 설계 자동화 (EDA) 플로우의 개관
EDA 플로우는 회로 설계를 생성하는데 사용될 수 있다. 일단 회로 설계가 마무리되면, 그것은 제조, 패키징, 및 조립을 겪어 집적 회로 칩들을 생성한다. EDA 플로우는 다수의 단계들을 포함할 수 있고, 각 단계는 하나 이상의 EDA 소프트웨어 툴들을 사용하는 것을 수반할 수 있다. 일부 EDA 단계들 및 소프트웨어 툴들이 이하에 기술된다. EDA 단계들 및 소프트웨어 툴들의 이들 예들은 예시적인 목적일 뿐이고, 개시된 형태들로 실시형태들을 제한하도록 의도되지 않는다.
일부 EDA 소프트웨어 툴들은 회로 설계자들이 그들이 구현하기 원하는 기능성을 기술하는 것을 가능하게 한다. 이들 툴들은 또한 회로 설계자들이 기능성, 체크 코스트들 등을 정제하기 위해 홧-이프 (what-if) 플래닝을 수행하는 것을 가능하게 한다. 로직 설계 및 기능 검증 동안, 시스템 내의 모듈들을 위한 HDL (hardware description language), 예를 들어 시스템 베릴로그, 코드가 기입될 수 있고, 설계가 기능적 정확성에 대해 체크될 수 있으며, 예를 들어 설계가 그것이 정확한 출력들을 생성하는 것을 확인하기 위해 체크될 수 있다.
테스트를 위한 합성 및 설계 동안, HDL 코드는 하나 이상의 EDA 소프트웨어 툴들을 사용하여 넷리스트 (netlist) 로 번역될 수 있다. 또한, 넷리스트는 목표 기술에 최적화될 수 있고, 테스트들이 마무리된 칩들을 체크하기 위해 설계 및 구현될 수 있다. 넷리스트 검증 동안, 넷리스트는 타이밍 제약들에의 순응성 및 HDL 코드와의 상응에 대해 체크될 수 있다.
설계 플래닝 동안, 칩에 대한 전체 평면도가 타이밍 및 톱-레벨 (top-level) 라우팅에 대해 구축 및 분석될 수 있다. 물리적 구현 동안, 회로 엘리먼트들이 레이아웃 (배치) 에 위치결정될 수 있고 전기적으로 커플링 (라우팅) 될 수 있다.
분석 및 추출 동안, 회로의 기능성이 트랜지스터 레벨에서 검증될 수 있고 기생성분이 추출될 수 있다. 물리적 검증 동안, 설계는 제조, 전기적 이슈들, 리소그래피 이슈들 및 회로에 대한 정확함을 보장하기 위해 체크될 수 있다.
해상도 향상 동안, 지오메트리 조작들이 설계의 제조가능성을 향상시키기 위해 레이아웃에 대해 수행될 수 있다. 마스크 데이터 준비 동안, 설계는 제조 동안 사용되는 마스크들을 생성하기 위해 "테이프-아웃" 될 수 있다.
클럭 트리들
동기 회로 설계들은 조합적 로직 클라우드들을 통해 전기적으로 연결되는 순차 회로 엘리먼트들의 집합으로서 보여질 수 있다. 예를 들어, 도 1 은 여기에 기술된 일부 실시형태들에 따른 동기 회로를 도시한다. 회로 (100) 는 버퍼들 (104, 106, 107, 및 108), 순차 회로 엘리먼트들 (110, 112, 114, 116, 및 118), 및 조합적 로직 클라우드들 (120, 122, 및 124) 을 포함한다. 클럭 신호는 버퍼들 (104, 106, 107, 및 108) 을 포함하는 클럭 트리를 통해 클럭 핀 (102) 으로부터 순차 회로 엘리먼트들 (110, 112, 114, 116, 및 118) 로 분배된다. 순차 회로 엘리먼트는 일반적으로 클럭 신호에 기초하여 동작을 수행하는 임의의 엘리먼트이다. 예를 들어, 플립-플롭은 순차 회로 엘리먼트이다. 조합적 로직 클라우드는 하나 이상의 조합적 로직 게이트들 (예를 들어, AND 게이트들, OR 게이트들, NOT 게이트들, XOR 게이트들, 멀티플렉서들, 디멀티플렉서들, 버퍼들, 리피터들 등) 을 포함하지만, 임의의 순차 회로 엘리먼트들을 포함하지 않는다.
순차 회로 엘리먼트들 사이의 데이터 전송은 하나 이상의 클럭 신호들을 사용하여 동기화된다. 예를 들어, 순차 회로 엘리먼트 (110) 는 (신호를 다른 신호들과 논리적으로 결합할 수도 있는) 조합적 로직 클라우드 (120) 를 통과하고, 그 후 순차 회로 엘리먼트들 (118) 에 의해 캡쳐될 수 있는 신호를 론치할 수 있다. 론치 및 캡쳐는 순차 회로 엘리먼트들 (110 및 118) 에 제공되는 클럭 신호에 기초하여 동기화된다.
클럭 트리는 회로 설계에서 하나 이상의 순차 회로 엘리먼트들로 클럭 신호를 분배하는 회로를 포함한다. 예를 들어, 도 1 에 도시된 클럭 트리는 버퍼들 (104, 106, 107, 및 108) 을 포함하고, 클럭 핀 (102) 을 순차 회로 엘리먼트들 (110, 112, 114, 116, 및 118) 의 클럭 입력 핀들에 전기적으로 연결한다. 클럭 도메인은 주어진 클럭 신호를 사용하여 클로킹되는 회로 설계의 부분을 지칭할 수 있다. 예를 들어, 도 1 에 도시된 회로 (100) 는 클럭 핀 (102) 으로부터 분배되는 클럭 신호에 대응하는 클럭 도메인의 부분이다. 회로 설계는 다수의 클럭 도메인들을 포함할 수도 있고, 각각의 클럭 도메인은 다수의 클럭 트리들을 포함할 수 있다.
라우팅
일단 클럭 트리가 생성되었으면 (예를 들어, 전기적 연결성 및 버퍼 로케이션들이 결정되었으면), 클럭 트리가 라우팅되어야 한다. 도 2 는 본 발명의 실시형태에 따라 일반적인 라우팅 문제를 제시하는 예시적인 회로 설계를 도시한다. 회로 설계 (200) 는 설계 계층에서의 임의의 레벨의 회로 객체들을 표현할 수도 있는 블록들 (예를 들어, 블록들 (202, 204, 206, 208, 210, 212, 214, 및 216) 의 세트를 포함한다. 예를 들어, 블록들은 임의의 레벨의 계층에 있는 셀들, 매크로들, 버퍼들, 또는 임의의 다른 회로 객체일 수 있다.
회로 엘리먼트 (예를 들어, 버퍼, 순차 회로 엘리먼트 등) 는 하나 이상의 핀들을 가질 수 있고, 각 핀은 네트로 할당될 수도 있다. 라우팅 프로세스 또는 시스템의 태스크는 동일한 네트로 할당되는 핀들이 서로에 전기적으로 연결되도록 회로 설계에서 와이어들을 라우팅하는 것이다. 예를 들어, 네트 (220) 는 블록들 (202, 204, 206, 및 210) 에서의 핀들을 전기적으로 연결하고, 네트 (218) 는 블록들 (208, 210, 212, 214, 및 216) 에서의 핀들을 전기적으로 연결한다.
라우팅 프로세스 또는 시스템은, (a) 셀들 (예를 들어, 버퍼들, 순차 회로 엘리먼트들 등) 의 세트에 배치 정보를 제공하는 배치된 넷리스트, (b) 기술의 설명 (즉, 금속층들의 수, 및 층들의 특징들), (c) 네트들에의 핀들/단자들의 할당, (d) 와이어 폭들 및 간격을 특정하는 비디폴트 라우팅 규칙들의 세트, (e) 비디폴트 규칙들을 사용하는 네트들의 세트 및 이들 네트들 각각을 위해 사용되어야 하는 비디폴트 규칙에 대한 정보, 및 (f) 라우팅 솔루션에 의해 만족되어야 하는 설계 규칙들의 세트를 포함하지만, 이들에 제한되지 않는 다수의 입력들을 취할 수 있다. 라우팅 시스템은 상이한 네트들에 속하는 핀들을 전기적으로 연결하는 라우팅 솔루션을 생성하지 않아야 한다는 것을 주의하라. 또한, 라우팅 시스템은 이용가능한 라우팅 리소스들만을 사용하여 와이어들을 라우팅하는 라우팅 솔루션을 생성해야 하고, 라우팅 솔루션은 DRC 들을 위반하지 않아야 한다 (DRC 들은 보통 라우팅 문제로의 입력으로서 제공되는 것을 주의하라). 예를 들어, DRC 들은 최소 와이어 폭, 2 개의 인접한 와이어들 간의 최소 거리, 사용되지 않아야 하는 라우팅 형상들 등을 특정할 수도 있다.
라우팅 시스템의 출력은 각각의 네트 (예를 들어, 클럭 트리의 일부) 에 속하는 모든 핀들/단자들을 전기적으로 연결하는 넷리스트, 및 와이어 길이, 비아 카운트, 및 미해결의 (unresolved) 설계 규칙 체크들 (DRCs) 을 포함할 수 있는 라우팅 요약을 포함하지만 이들에 제한되지 않는다.
클럭 트리들이 회로 설계에서 하는 중요한 역할 때문에, 및 클럭 트리들이 특수한 요건들 (즉, 존재하지 않을 수도 있거나 회로 설계의 다른 부분들에 비해 그다지 중요하지 않을 수도 있는 요건들) 만족시킬 필요가 있기 때문에, 클럭 트리를 라우팅하는데 사용되는 라우팅 규칙들은 종종 회로 설계에서 다른 네트들을 라우팅하는데 사용되는 것들과 상이하다. 클럭 트리들을 라우팅하는데 사용되는 이들 특수한 라우팅 규칙들은 때때로 이들 라우팅 규칙들을 회로 설계에서 네트들을 라우팅하기 위해 디폴트로 사용되는 "디폴트" 라우팅 규칙들과 구별하기 위해 비디폴트 라우팅 규칙들 또는 비디폴트 규칙들 (NDRs) 로서 지칭된다.
종래의 접근법들에서, 사용자들 (예를 들어, 회로 설계자들) 은 클럭 트리들을 라우팅하기 위해 NDR 들의 세트를 제공할 필요가 있다. 그러나, 이들 접근법들은 사용자 에러의 경향이 있고, 반도체 집적 밀도들이 계속 증가하고 회로 설계들이 점점 더 복잡해 짐에 따라 비실용적이 되고 있다. 또한, 불가능하지는 않지만, 사용자가 클럭 트리가 구축되기 전에 네트에 대한 적절한 NDR 들을 특정하는 것이 어렵다. 따라서, 종래의 접근법들에서, 클럭 트리는 사용자가 NDR 들을 반복적으로 미세하게 튜닝할 수 있도록 다수 회 라우팅되어야 한다.
클럭 트리들을 라우팅하기 위한 NDR 들을 자동으로 생성하는 프로세스
본 개시에 기술된 일부 실시형태들은 클럭 트리들을 라우팅하기 위한 NDR 들의 세트를 자동적으로 생성한다. NDR 들은 회로 설계를 분석하는 것에 기초하여 생성되며, (1) 클럭 네트들 상의 크로스토크를 방지하고 (회로 설계의 적절한 동작을 보장하기 위해 클럭 신호를 가능한 한 깨끗하게 유지하는 것이 중요하다), (2) 클럭 네트들 상의 일렉트로마이그레이션 (EM) 을 방지하며 (클럭 신호들이 EM 의 발생을 증가시킬 수 있는 큰 드라이버들에 의해 구동될 수 있다), (3) 클럭 레이턴시를 감소시키고, (4) 클럭 네트들의 라우팅가능성을 향상시키는 것을 돕는다.
도 3 은 여기에 개시된 일부 실시형태들에 따라 클럭 트리에서의 네트를 라우팅하기 위한 비디폴트 라우팅 규칙들의 세트를 생성하는 프로세스를 도시한다. 프로세스는 네트에 대한 하나 이상의 메트릭들을 결정하는 것, 및 그 후 그 메트릭들에 기초하여 NDR 들의 세트를 결정하는 것을 수반할 수 있다. 구체적으로는, 그 프로세스는 네트에 대한 혼잡 메트릭 (동작 302), 네트에 대한 레이턴시 메트릭 (동작 304), 네트에 대한 크로스토크 메트릭 (동작 306), 네트에 대한 일렉트로마이그레이션 메트릭 (동작 308), 및/또는 클록 트리 레벨 (동작 310) 을 결정하는 것을 수반할 수 있다.
혼잡 메트릭은 네트에 근접한 라우팅 혼잡의 양에 대응할 수 있다. 일부 실시형태들에서, 혼잡 메트릭은 다음과 같이 결정될 수 있다. 회로 설계는 g-셀들로 불리는 직사각형들 또는 정사각형들의 어레이로 분할될 수 있다. 각 g-셀은 그 g-셀을 통해 라우팅될 수 있는 와이어들의 수를 나타내는 용량과 연관된다. 다음에, 회로 블록들의 초기 배치에 기초하여, 프로세스는 하나의 g-셀로부터 다른 것으로 라우팅될 필요가 있는 와이어들의 수를 결정할 수 있다. 프로세스는 그 후 (즉, g-셀 레벨에서) 이들 와이어들에 대한 대략적인 라우트들을 결정하고, 각 g-셀을 통과하고 있는 와이어들의 수를 계속 추적할 수 있다. 프로세스는 그 후 g-셀 을 통해 라우팅되는 것으로 예상되는 와이어들의 수 및 g-셀의 용량에 기초하여 g-셀에 대한 혼잡 메트릭을 결정할 수 있다. 네트에 대한 혼잡 메트릭은 부분적으로 또는 완전히 네트의 경계 박스 (bounding box) 내에 있는 g-셀들의 혼잡 메트릭들의 평균일 수 있다. 예를 들어, 부분적으로 또는 완전히 네트의 경계 박스 내에 있는 N 개의 g-셀들이 존재하는 경우 (네트의 경계는 네트의 모든 핀들을 둘러싸는 직사각형 박스일 수 있다), 네트와 연관된 혼잡 메트릭은 이들 N 개의 g-셀들의 혼잡 메트릭들의 평균일 수 있다. 다른 실시형태들에서는, 이들 N 개의 g-셀들 중 최대 혼잡 메트릭 (또는 N 개의 g-셀들의 혼잡 메트릭들에 기초한 임의의 다른 통계적 측정) 이 사용될 수 있다.
레이턴시 메트릭은 네트를 포함하는 최장 레이턴시 클럭 경로의 클럭 레이턴시에 대응할 수 있다. 일부 실시형태들에서, 레이턴시 메트릭은 플래그, 즉 "0" 또는 "1" 인 값일 수 있다. "0" 값은 네트가 최장 (또는 거의 최장) 클럭 경로의 부분이 아니라는 것을 나타낼 수 있다. "1" 값은 네트가 최장 (또는 거의 최장) 클럭 경로의 부분이라는 것을 나타낼 수 있다.
예를 들어, 버퍼들 (104, 106, 및 108) 의 입력들과 클럭 핀 (102) 을 전기적으로 연결하는 도 1 에서의 네트를 고려하라. 이러한 네트는 다수의 클럭 경로들의 부분이다. 예를 들어, 이러한 네트는 클럭 핀 (102) 에서 시작하고 순차 회로 엘리먼트 (110) 의 클럭 입력에서 종료하는 클럭 경로의 부분이고, 또한 클럭 핀 (102) 에서 시작하고 순차 회로 엘리먼트 (116) 의 클럭 입력에서 종료하는 클럭 경로의 부분이다. 이러한 네트를 포함하는 모든 클럭 경로들 중에서, 클럭 핀 (102) 에서 시작하고 순차 회로 엘리먼트 (116) 의 클럭 입력에서 종료하는 클럭 경로가 최대 지연을 갖는다고 가정하자. 그러면, 버퍼들 (104, 106, 및 108) 의 입력들과 클럭 핀 (102) 을 전기적으로 연결하는 네트의 레이턴시 메트릭은 "1" 로 설정될 수 있다. 다른 한편으로, 순차 회로 엘리먼트 (110) 의 클럭 입력에 버퍼 (104) 의 출력을 연결하는 네트가 최장 (또는 거의 최장) 클럭 경로의 부분이 아니라고 가정하자. 그러면, 순차 회로 엘리먼트 (110) 의 클럭 입력에 버퍼 (104) 의 출력을 전기적으로 연결하는 네트의 레이턴시 메트릭은 "0" 으로 설정될 수 있다.
크로스토크 메트릭은 네트가 다른 네트들로부터 수신하는 크로스토크의 양에 대응할 수 있다. 일부 실시형태들에서, 시스템은 크로스토크에 기인하여 클럭 신호로 도입되는 지터의 양을 결정하고, 그 지터의 양을 크로스토크 메트릭으로서 사용할 수 있다. 지터의 양 (그리고 대응하여 크로스토크 메트릭) 은 절대 지터 (즉, 시간의 단위로) 로서, 또는 하나의 클럭 주기의 프랙션으로서 표현될 수 있다. 또, 지터의 양은 피크-투-피크 지터 또는 제곱 평균 제곱근 (root-mean-squared) 지터로서 정량화될 수 있다.
일렉트로마이그레이션 메트릭은 네트에서 발생할 것으로 예상되는 일렉트로마이그레이션의 양에 대응할 수 있다. 일부 실시형태들에서, (예를 들어, 블랙의 방정식을 사용하여 컴퓨팅된) 일렉트로마이그레이션으로 인한 평균 고장 시간 (mean time to failure: MTTF) 이 일렉트로마이그레이션 메트릭으로서 사용될 수 있다. 네트는 MTTF 값이 주어진 임계값 미만이면 일렉트로마이그레이션 제약을 위반하는 것으로 고려될 수 있다. 일부 실시형태들에서, 일렉트로마이그레이션 메트릭은 플래그일 수 있으며, 즉 그것은 "0" 또는 "1" 값을 가질 수 있다. 구체적으로, MTTF 이 컴퓨팅되고 임계값 (예를 들어, 허용가능한 MTTF 값) 과 비교될 수 있다. MTTF 값이 임계값보다 큰 경우, 일렉트로마이그레이션 메트릭 플래그는 네트가 일렉트로마이그레이션 제약을 위반하지 않는다는 것을 나타내는 "0" 으로 설정될 수 있다. 다른 한편으로, MTTF 값이 임계값보다 작은 경우, 일렉트로마이그레이션 메트릭 플래그는 네트가 일렉트로마이그레이션 제약을 위반한다는 것을 나타내는 "1" 로 설정될 수 있다.
프로세스는 (예를 들어, 클럭 트리의 루트로부터 시작하여 트리 순회 (traversal) 를 수행함으로써) 클럭 트리를 2 이상의 레벨들로 파티셔닝할 수 있고, 네트는 그 네트가 클럭 트리 내의 어느 곳에 위치되어 있는가에 따라 클럭 트리 레벨과 연관될 수 있다. 본 개시에 기술된 일부 실시형태들은 클럭 트리를 다수의 레벨들, 예를 들어 클럭 루트 레벨, 클럭 트렁크 레벨, 및 클럭 리프 (leaf) 레벨로 분할한다. 예를 들어, 도 1 에서, 클럭 트리는 다음의 레벨들로 파티셔닝될 수 있다. 버퍼들 (104, 106, 및 108) 의 입력들과 클럭 핀 (102) 을 전기적으로 연결하는 네트를 포함하는 루트 레벨. 순차 회로 엘리먼트 (112) 의 클럭 입력 및 버퍼 (107) 의 입력과 버퍼 (108) 의 출력을 전기적으로 연결하는 네트를 포함하는 트렁크 레벨. 다음의 네트들을 포함하는 리프 레벨: (a) 순차 회로 엘리먼트 (110) 의 클럭 입력과 버퍼 (104) 의 출력을 전기적으로 연결하는 네트, (b) 순차 회로 엘리먼트 (118) 의 클럭 입력과 버퍼 (106) 의 출력을 전기적으로 연결하는 네트, 및 (c) 순차 회로 엘리먼트들 (114 및 116) 의 클럭 입력들과 버퍼 (107) 의 출력을 전기적으로 연결하는 네트.
메트릭들의 상기 예들은 예시의 목적으로만 제시되었고, 개시된 형태들에 실시형태들을 제한하도록 의도되지 않는다. 혼잡, 레이턴시, 크로스토크, 일렉트로마이그레이션, 및 클럭 트리 레벨 메트릭들의 많은 상이한 정의들이 본 기술분야에서 통상의 기술을 가진 자에게 분명할 것이며, 여기에 기술된 실시형태들의 범위는 그러한 모든 정의들을 커버하는 것으로 의도된다.
일단 하나 이상의 메트릭들이 결정되었으면, 비디폴트 라우팅 규칙들의 세트가 혼잡 메트릭, 레이턴시 메트릭, 크로스토크 메트릭, 일렉트로마이그레이션 메트릭, 및/또는 클록 트리 레벨에 기초하여 네트에 대해 생성될 수 있다 (동작 312).
구체적으로는, 크로스토크 및/또는 일렉트로마이그레이션 위반들을 방지하기 위해, 실시형태들은 라우팅 네트들에 대해 더 넓은 폭 및/또는 더 넓은 간격을 사용할 수 있다. 마찬가지로 클럭 경로의 클럭 레이턴시를 감소시키기 위해, 실시형태들은 라우팅 네트들에 대해 더 넓은 폭 및/또는 더 넓은 간격을 사용할 수 있다. 그러나, 더 넓은 폭 및/또는 더 넓은 간격을 사용하는 것은 더 큰 라우팅 리소스들을 소비한다. 따라서, 높은 혼잡 영역들에서는, 더 넓은 와이어 폭 또는 더 넓은 간격을 사용하는 것이 가능하지 않을 수도 있다.
일부 실시형태들에서, 프로세스는 네트에 대해 상이한 메트릭들을 컴퓨팅하고 그 후 그 컴퓨팅된 메트릭들에 기초하여 적절한 와이어 폭 및 와이어 간격을 선택할 수 있다. 예를 들어, 혼잡 메트릭이 네트가 높은 혼잡 영역에 있지 않다는 것을 나타낸다고 결정하는 것에 응답하여, 프로세스는 디폴트 규칙 와이어 폭보다 넓은 와이어 폭, 디폴트 규칙 간격보다 넓은 간격, 또는 양자 모두를 사용하는 라우팅 규칙 (즉, 더 넓은 와이어들을 사용하고 그들을 더 멀리 이격시키는 규칙) 을 생성할 수 있다. 다른 한편으로는, 혼잡 메트릭이 네트가 높은 혼잡 영역에 있다는 것을 나타낸다고 결정하는 것에 응답하여, 프로세스는 디폴트 규칙 와이어 폭, 디폴트 규칙 간격, 또는 양자 모두를 사용하는 라우팅 규칙을 생성할 수 있다.
혼잡 메트릭이 네트가 높은 혼잡 영역에 있지 않다는 것을 나타내는 경우, 일부 실시형태들은, (1) 네트가 클럭 레이턴시 규칙을 위반하는 것을 방지하는 와이어 폭 및/또는 간격을 사용하는, (2) 네트가 크로스토크 규칙을 위반하는 것을 방지하는 와이어 폭 및/또는 간격을 사용하는, (3) 네트가 일렉트로마이그레이션 규칙을 위반하는 것을 방지하는 와이어 폭 및/또는 간격을 사용하는, 및/또는 (4) 클럭 트리 레벨에 기초하여 폭 값 및 간격 값을 사용하는 라우팅 규칙을 생성할 수 있다. 구체적으로는, 일부 실시형태들은 각각의 클럭 트리 레벨에 대해 NDR 들의 상이한 세트를 생성할 수 있으며, 예를 들어 프로세스는 네트가 클럭 트리의 루트 레벨, 트렁크 레벨, 또는 리프 레벨에 있는지 여부에 따라 상이한 와이어 폭들 및/또는 간격을 사용할 수 있다. 특히, 프로세스는 루트 레벨에 대해 가장 넓은 와이어들 및/또는 최대 간격을 사용하고, 트렁크 레벨 및 리프 레벨에 대해 점진적으로 더 작은 폭 및/또는 간격을 사용할 수 있다. 예를 들어, 일부 실시형태들에서, 프로세스는 루트 레벨에 대해 트리플 폭 및 트리플 간격, 트렁크 레벨에 대해 더블 폭 및 더블 간격, 및 리프 레벨에 대해 싱글 폭 및 싱글 또는 더블 간격을 사용할 수 있다.
컴퓨터 시스템
도 4 는 본 발명의 실시형태에 따른 컴퓨터 시스템을 도시한다. 컴퓨터 또는 컴퓨터 시스템은 일반적으로 계산들을 수행할 수 있는 임의의 시스템일 수 있다. 구체적으로는, 컴퓨터 시스템은 마이크로프로세서, 주문형 반도체, 분포된 컴퓨팅 시스템, 클라우드 컴퓨팅 시스템, 또는 지금 알려져 있거나 이후에 개발되는 임의의 다른 컴퓨팅 시스템일 수 있다. 컴퓨터 시스템 (402) 은 프로세서 (404), 메모리 (406), 및 스토리지 (408) 를 포함한다. 컴퓨터 시스템 (402) 은 디스플레이 (414), 키보드 (410), 및 포인팅 디바이스 (412) 와 커플링될 수 있다. 스토리지 (408) 는 일반적으로 데이터를 저장할 수 있는 임의의 디바이스일 수 있다. 구체적으로는, 스토리지 디바이스는 자기적, 광학적, 또는 자기광학적 스토리지 디바이스일 수 있거나, 그것은 플래시 메모리 및/또는 배터리-백업형 메모리에 기초할 수 있다. 스토리지 (408) 는 애플리케이션 (416), 운영 시스템 (418), 및 데이터 (420) 를 저장할 수 있다.
애플리케이션 (416) 은 컴퓨터 (402) 에 의해 실행될 때 컴퓨터 (402) 로 하여금 본 개시에 암시적으로 또는 명시적으로 기술된 하나 이상의 프로세서들을 수행하게 하는 명령들을 포함할 수 있다. 데이터 (420) 는 애플리케이션 (416) 으로 입력되거나 그것에 의해 출력되는 임의의 데이터를 포함할 수 있다.
상기 설명은 본 기술분야에서 통상의 지식을 가진 자가 실시형태들을 실시 및 사용하는 것을 가능하게 하도록 제시된다. 개시된 실시형태들에 대한 여러 변경들은 통상의 기술자에게 용이하게 분명할 것이고, 여기에 정의된 일반 원리들은 본 개시의 사상 및 범위로부터 일탈하지 않고 다른 실시형태들 및 애플리케이션들에 적용가능하다. 따라서, 본 발명은 도시된 실시형태들에 제한되지 않고, 여기에 개시된 원리들 및 특징들과 일관된 가장 넓은 범위에 따라야 한다.
본 개시에 기술된 데이터 구조들 및 코드는 비일시적 컴퓨터 판독가능 저장 매체 및/또는 하드웨어 모듈 및/또는 하드웨어 장치에 부분적으로 또는 완전히 저장될 수 있다. 비일시적 컴퓨터 판독가능 저장 매체는 전파하는 전자기파 또는 신호만을 제외하고 모든 컴퓨터 판독가능 저장 매체들을 포함한다. 구체적으로는, 비일시적 컴퓨터 판독가능 저장 매체는, 휘발성 메모리, 비휘발성 메모리, 디스크 드라이브들과 같은 자기 및 광학 스토리지 디바이스들, 자기 테이프, CD (컴팩트 디스크) 들, DVD (digital versatile discs 또는 digital video discs) 들, 또는 지금 알려져 있거나 이후에 개발되는, 코드 및/또는 데이터를 저장할 수 있는 다른 매체를 포함하지만 이들에 제한되지 않는다. 본 개시에 기술된 하드웨어 모듈들 또는 장치들은 주문형 반도체 (ASICs), 필드 프로그래머블 게이트 어레이들 (FPGAs), 이산 또는 공유 프로세서들, 및/또는 지금 알려져 있거나 이후에 개발되는 다른 하드웨어 모듈들 또는 장치들을 포함하지만, 이들에 제한되지 않는다.
본 개시에서 기술된 방법들 및 프로세스들은, 컴퓨터 시스템이 코드 및/또는 데이터를 판독 및 실행할 때, 컴퓨터 시스템이 연관된 방법들 및 프로세스들을 수행하도록, 비일시적 컴퓨터 판독가능 저장 매체 또는 디바이스에 저장된 코드 및/또는 데이터로서 부분적으로 또는 전체적으로 구현될 수 있다. 방법들 및 프로세스들은 또한 하드웨어 모듈들 또는 장치들에 부분적으로나 전체적으로 구현될 수 있다. 방법들 및 프로세스들은 코드, 데이터, 및 하드웨어 모듈들 또는 장치들의 조합을 사용하여 구현될 수 있다.
본 발명의 실시형태들의 상기의 설명들은 예시 및 설명의 목적으로만 제시되었다. 그들은 완전하거나 개시된 형태들로 본 발명을 제한하도록 의도되지 않는다. 이에 따라, 다수의 변경들 및 변형들이 통상의 기술자들에게 분명할 것이다. 또, 상기의 개시는 본 발명을 제한하는 것으로 의도되지 않는다. 본 발명의 범위는 첨부된 청구범위에 의해서 정의된다.

Claims (13)

  1. 클럭 트리에서 네트를 라우팅하기 위한 비디폴트 라우팅 규칙들의 세트를 생성하는 방법으로서,
    컴퓨터가 상기 네트에 대한 혼잡 메트릭을 결정하는 단계로서, 상기 혼잡 메트릭은 상기 네트의 근방에서의 라우팅 혼잡의 양에 대응하는, 상기 혼잡 메트릭을 결정하는 단계; 및
    상기 컴퓨터가 상기 혼잡 메트릭에 기초하여 상기 네트에 대한 상기 비디폴트 라우팅 규칙들의 세트를 생성하는 단계를 포함하는, 비디폴트 라우팅 규칙들의 세트를 생성하는 방법.
  2. 제 1 항에 있어서,
    상기 생성하는 단계는,
    상기 혼잡 메트릭이 상기 네트가 높은 혼잡 영역에 있지 않다는 것을 나타낸다고 결정하는 것에 응답하여, 디폴트 규칙 와이어 폭보다 넓은 와이어 폭, 디폴트 규칙 간격보다 넓은 간격, 또는 상기 디폴트 규칙 와이어 폭보다 넓은 와이어 폭 및 상기 디폴트 규칙 간격보다 넓은 간격 양자 모두를 사용하는 라우팅 규칙을 생성하는 단계를 포함하는, 비디폴트 라우팅 규칙들의 세트를 생성하는 방법.
  3. 제 1 항에 있어서,
    상기 생성하는 단계는,
    상기 혼잡 메트릭이 상기 네트가 높은 혼잡 영역에 있다는 것을 나타낸다고 결정하는 것에 응답하여, 디폴트 규칙 와이어 폭, 디폴트 규칙 간격, 또는 디폴트 규칙 와이어 폭 및 디폴트 규칙 간격 양자 모두를 사용하는 라우팅 규칙을 생성하는 단계를 포함하는, 비디폴트 라우팅 규칙들의 세트를 생성하는 방법.
  4. 제 1 항에 있어서,
    상기 네트에 대한 레이턴시 메트릭을 결정하는 단계를 더 포함하고,
    상기 레이턴시 메트릭은 상기 네트를 포함하는 최장 레이턴시 클럭 경로의 클럭 레이턴시에 대응하며,
    상기 생성하는 단계는 상기 혼잡 메트릭 및 상기 레이턴시 메트릭에 기초하여 상기 네트에 대한 상기 비디폴트 라우팅 규칙들의 세트를 생성하는 단계를 포함하는, 비디폴트 라우팅 규칙들의 세트를 생성하는 방법.
  5. 제 4 항에 있어서,
    상기 생성하는 단계는,
    상기 혼잡 메트릭이 상기 네트가 높은 혼잡 영역에 있지 않다는 것을 나타낸다고 결정하는 것에 응답하여, 상기 네트가 클럭 레이턴시 규칙을 위반하는 것을 방지하는 와이어 폭, 간격, 또는 상기 와이어 폭 및 상기 간격 양자 모두를 사용하는 라우팅 규칙을 생성하는 단계를 포함하는, 비디폴트 라우팅 규칙들의 세트를 생성하는 방법.
  6. 제 1 항에 있어서,
    상기 네트에 대한 크로스토크 메트릭을 결정하는 단계를 더 포함하고,
    상기 크로스토크 메트릭은 상기 네트가 다른 네트들로부터 수신하는 크로스토크의 양에 대응하며,
    상기 생성하는 단계는 상기 혼잡 메트릭 및 상기 크로스토크 메트릭에 기초하여 상기 네트에 대한 상기 비디폴트 라우팅 규칙들의 세트를 생성하는 단계를 포함하는, 비디폴트 라우팅 규칙들의 세트를 생성하는 방법.
  7. 제 6 항에 있어서,
    상기 생성하는 단계는,
    상기 혼잡 메트릭이 상기 네트가 높은 혼잡 영역에 있지 않다는 것을 나타낸다고 결정하는 것에 응답하여, 상기 네트가 크로스토크 규칙을 위반하는 것을 방지하는 와이어 폭, 간격, 또는 상기 와이어 폭 및 상기 간격 양자 모두를 사용하는 라우팅 규칙을 생성하는 단계를 포함하는, 비디폴트 라우팅 규칙들의 세트를 생성하는 방법.
  8. 제 1 항에 있어서,
    상기 네트에 대한 일렉트로마이그레이션 메트릭을 결정하는 단계를 더 포함하고,
    상기 일렉트로마이그레이션 메트릭은 상기 네트에서 발행할 것으로 예상되는 일렉트로마이그레이션의 양에 대응하며,
    상기 생성하는 단계는 상기 혼잡 메트릭 및 상기 일렉트로마이그레이션 메트릭에 기초하여 상기 네트에 대한 상기 비디폴트 라우팅 규칙들의 세트를 생성하는 단계를 포함하는, 비디폴트 라우팅 규칙들의 세트를 생성하는 방법.
  9. 제 8 항에 있어서,
    상기 생성하는 단계는,
    상기 혼잡 메트릭이 상기 네트가 높은 혼잡 영역에 있지 않다는 것을 나타낸다고 결정하는 것에 응답하여, 상기 네트가 일렉트로마이그레이션 규칙을 위반하는 것을 방지하는 와이어 폭, 간격, 또는 상기 와이어 폭 및 상기 간격 양자 모두를 사용하는 라우팅 규칙을 생성하는 단계를 포함하는, 비디폴트 라우팅 규칙들의 세트를 생성하는 방법.
  10. 제 1 항에 있어서,
    상기 네트에 대한 클럭 트리 레벨을 결정하는 단계를 더 포함하고,
    클럭 트리의 루트 (root) 는 최고 클럭 트리 레벨에 대응하며,
    상기 생성하는 단계는 상기 혼잡 메트릭 및 상기 클럭 트리 레벨에 기초하여 상기 네트에 대한 상기 비디폴트 라우팅 규칙들의 세트를 생성하는 단계를 포함하는, 비디폴트 라우팅 규칙들의 세트를 생성하는 방법.
  11. 제 10 항에 있어서,
    상기 생성하는 단계는,
    상기 혼잡 메트릭이 상기 네트가 높은 혼잡 영역에 있지 않다는 것을 나타낸다고 결정하는 것에 응답하여, 상기 클럭 트리 레벨에 기초한 폭 값 및 간격 값을 사용하는 라우팅 규칙을 생성하는 단계를 포함하고,
    더 큰 폭 및 간격 값들은 더 높은 클럭 트리 레벨들에서 사용되는, 비디폴트 라우팅 규칙들의 세트를 생성하는 방법.
  12. 명령들을 저장한 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금, 클럭 트리에서 네트를 라우팅하기 위한 비디폴트 라우팅 규칙들의 세트를 생성하는 방법을 실행하게 하며,
    상기 방법은,
    상기 네트에 대한 혼잡 메트릭을 결정하는 단계로서, 상기 혼잡 메트릭은 상기 네트의 근방에서의 라우팅 혼잡의 양에 대응하는, 상기 혼잡 메트릭을 결정하는 단계; 및
    상기 혼잡 메트릭에 기초하여 상기 네트에 대한 상기 비디폴트 라우팅 규칙들의 세트를 생성하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  13. 장치로서,
    프로세서; 및
    명령들을 저장한 비일시적 컴퓨터 판독가능 저장 매체를 포함하고,
    상기 명령들은, 상기 프로세서에 의해 실행될 때, 상기 장치로 하여금, 클럭 트리에서 네트를 라우팅하기 위한 비디폴트 라우팅 규칙들의 세트를 생성하는 방법을 실행하게 하며,
    상기 방법은,
    상기 네트에 대한 혼잡 메트릭을 결정하는 단계로서, 상기 혼잡 메트릭은 상기 네트의 근방에서의 라우팅 혼잡의 양에 대응하는, 상기 혼잡 메트릭을 결정하는 단계; 및
    상기 혼잡 메트릭에 기초하여 상기 네트에 대한 상기 비디폴트 라우팅 규칙들의 세트를 생성하는 단계를 포함하는, 장치.
KR1020157020150A 2012-12-26 2013-12-23 자동 클럭 트리 라우팅 규칙 생성 KR102103617B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261746065P 2012-12-26 2012-12-26
US61/746,065 2012-12-26
US14/066,329 2013-10-29
US14/066,329 US9009645B2 (en) 2012-12-26 2013-10-29 Automatic clock tree routing rule generation
PCT/US2013/077443 WO2014105804A1 (en) 2012-12-26 2013-12-23 Automatic clock tree routing rule generation

Publications (2)

Publication Number Publication Date
KR20150102086A true KR20150102086A (ko) 2015-09-04
KR102103617B1 KR102103617B1 (ko) 2020-04-22

Family

ID=50976278

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157020150A KR102103617B1 (ko) 2012-12-26 2013-12-23 자동 클럭 트리 라우팅 규칙 생성

Country Status (4)

Country Link
US (1) US9009645B2 (ko)
KR (1) KR102103617B1 (ko)
CN (1) CN104981805B (ko)
WO (1) WO2014105804A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170078521A (ko) * 2015-12-29 2017-07-07 타이완 세미콘덕터 매뉴팩쳐링 컴퍼니 리미티드 셀 상호연결의 일렉트로마이그레이션 특성들에 기초한 기술들
WO2021067312A1 (en) * 2019-10-02 2021-04-08 Micron Technology, Inc. Apparatuses and methods for semiconductor devices including clock signal lines

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9330220B1 (en) * 2014-08-25 2016-05-03 Xilinx, Inc. Clock region partitioning and clock routing
CN108279889A (zh) * 2016-12-30 2018-07-13 联芯科技有限公司 时钟树代码生成方法及装置
US10817641B1 (en) * 2017-09-29 2020-10-27 Cadence Design Systems, Inc. Method and system to implement topology integrity throughout routing implementations
US10521097B1 (en) 2017-09-29 2019-12-31 Cadence Design Systems, Inc. User interface to implement topology integrity throughout routing implementations
US10489549B1 (en) 2017-12-22 2019-11-26 Cadence Design Systems, Inc. Tree-routing for specific areas of an electronic design
US10551431B1 (en) 2017-12-22 2020-02-04 Cadence Design Systems, Inc. EM-compliance topology in a tree router
KR20220042305A (ko) * 2019-08-12 2022-04-05 시놉시스, 인크. 자동화된 라우팅을 수행하는 방법 및 시스템
US11599139B1 (en) * 2021-09-03 2023-03-07 Xepic Corporation Limited Dynamic adjustment of root clock frequency in logic system design during verification

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040243956A1 (en) * 2003-06-02 2004-12-02 Alexander Tetelbaum Intelligent engine for protection against injected crosstalk delay
JP3913180B2 (ja) * 1994-08-03 2007-05-09 松下電器産業株式会社 半導体集積回路の設計方法
US7752588B2 (en) * 2005-06-29 2010-07-06 Subhasis Bose Timing driven force directed placement flow
KR20120114328A (ko) * 2010-01-29 2012-10-16 시놉시스, 인크. 정의된 패턴들을 이용한 사전-라우트 및 사후-라우트 네트 상관관계 개선

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774371A (en) * 1994-08-03 1998-06-30 Matsushita Electric Industrial Co., Ltd. Semiconductor integrated circuit and layout designing method for the same
US6651232B1 (en) * 1998-11-05 2003-11-18 Monterey Design Systems, Inc. Method and system for progressive clock tree or mesh construction concurrently with physical design
US6204713B1 (en) * 1999-01-04 2001-03-20 International Business Machines Corporation Method and apparatus for routing low-skew clock networks
US7350173B1 (en) 2002-06-11 2008-03-25 Synplicity, Inc. Method and apparatus for placement and routing cells on integrated circuit chips
US6904585B2 (en) 2003-04-04 2005-06-07 International Business Machines Corporation Method for identification and removal of non-timing critical wire routes from congestion region
US7178124B1 (en) * 2003-05-30 2007-02-13 Golden Gate Technology, Inc. Methods, algorithms, software, architectures and system for placing clocked components and routing timing signals in a circuit and/or layout
US7039891B2 (en) * 2003-08-27 2006-05-02 Lsi Logic Corporation Method of clock driven cell placement and clock tree synthesis for integrated circuit design
US7313776B2 (en) 2005-06-28 2007-12-25 Synopsys, Inc. Method and apparatus for routing an integrated circuit
JP2008218730A (ja) * 2007-03-05 2008-09-18 Nec Electronics Corp 半導体装置の設計方法及び設計プログラム
US8239797B1 (en) 2008-09-18 2012-08-07 Cadence Design Systems, Inc. Congestion aware block placement

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3913180B2 (ja) * 1994-08-03 2007-05-09 松下電器産業株式会社 半導体集積回路の設計方法
US20040243956A1 (en) * 2003-06-02 2004-12-02 Alexander Tetelbaum Intelligent engine for protection against injected crosstalk delay
US7752588B2 (en) * 2005-06-29 2010-07-06 Subhasis Bose Timing driven force directed placement flow
KR20120114328A (ko) * 2010-01-29 2012-10-16 시놉시스, 인크. 정의된 패턴들을 이용한 사전-라우트 및 사후-라우트 네트 상관관계 개선

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170078521A (ko) * 2015-12-29 2017-07-07 타이완 세미콘덕터 매뉴팩쳐링 컴퍼니 리미티드 셀 상호연결의 일렉트로마이그레이션 특성들에 기초한 기술들
WO2021067312A1 (en) * 2019-10-02 2021-04-08 Micron Technology, Inc. Apparatuses and methods for semiconductor devices including clock signal lines
US11264068B2 (en) 2019-10-02 2022-03-01 Micron Technology, Inc. Apparatuses and methods for semiconductor devices including clock signal lines

Also Published As

Publication number Publication date
KR102103617B1 (ko) 2020-04-22
WO2014105804A1 (en) 2014-07-03
US20140181777A1 (en) 2014-06-26
CN104981805B (zh) 2018-07-10
CN104981805A (zh) 2015-10-14
US9009645B2 (en) 2015-04-14

Similar Documents

Publication Publication Date Title
KR102103617B1 (ko) 자동 클럭 트리 라우팅 규칙 생성
US8572532B1 (en) Common path pessimism removal for hierarchical timing analysis
US7103863B2 (en) Representing the design of a sub-module in a hierarchical integrated circuit design and analysis system
US9152742B1 (en) Multi-phase models for timing closure of integrated circuit designs
Alpert et al. What makes a design difficult to route
US7546567B2 (en) Method and apparatus for generating a variation-tolerant clock-tree for an integrated circuit chip
US7555740B2 (en) Method and system for evaluating statistical sensitivity credit in path-based hybrid multi-corner static timing analysis
US8977995B1 (en) Timing budgeting of nested partitions for hierarchical integrated circuit designs
US10318686B2 (en) Methods for reducing delay on integrated circuits by identifying candidate placement locations in a leveled graph
US10467365B1 (en) Systems and methods for calculating common clock path pessimism for hierarchical timing analysis in an electronic design
US20090178013A1 (en) System for implementing post-silicon ic design changes
Kahng New game, new goal posts: A recent history of timing closure
US9542524B2 (en) Static timing analysis (STA) using derived boundary timing constraints for out-of-context (OOC) hierarchical entity analysis and abstraction
US10318684B2 (en) Network flow based framework for clock tree optimization
US10423742B2 (en) Method to perform full accuracy hierarchical block level timing analysis with parameterized chip level contexts
US9298872B2 (en) Apportioning synthesis effort for better timing closure
US10089433B2 (en) Method for triple-patterning friendly placement
JP2005518002A (ja) 階層的な集積回路設計および解析システムにおけるサブモジュールの設計の表示
US8336013B2 (en) Determining an order for visiting circuit blocks in a circuit design for fixing design requirement violations
Posser et al. Electromigration Inside Logic Cells
Xiong et al. Extended global routing with RLC crosstalk constraints
US11017137B2 (en) Efficient projection based adjustment evaluation in static timing analysis of integrated circuits
Golshan et al. Final Route and Timing
Lee Introduction to Place and Route Design in VLSIs
Jiang et al. A mixed-mode extraction flow for high performance microprocessors

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant