KR101620660B1 - 정의된 패턴들을 이용한 사전-라우트 및 사후-라우트 네트 상관관계 개선 - Google Patents

정의된 패턴들을 이용한 사전-라우트 및 사후-라우트 네트 상관관계 개선 Download PDF

Info

Publication number
KR101620660B1
KR101620660B1 KR1020127020144A KR20127020144A KR101620660B1 KR 101620660 B1 KR101620660 B1 KR 101620660B1 KR 1020127020144 A KR1020127020144 A KR 1020127020144A KR 20127020144 A KR20127020144 A KR 20127020144A KR 101620660 B1 KR101620660 B1 KR 101620660B1
Authority
KR
South Korea
Prior art keywords
routing
design
nets
route
net
Prior art date
Application number
KR1020127020144A
Other languages
English (en)
Other versions
KR20120114328A (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 KR20120114328A publication Critical patent/KR20120114328A/ko
Application granted granted Critical
Publication of KR101620660B1 publication Critical patent/KR101620660B1/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/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/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/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
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/70Manufacture or treatment of devices consisting of a plurality of solid state components formed in or on a common substrate or of parts thereof; Manufacture of integrated circuit devices or of parts thereof
    • H01L21/77Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate
    • H01L21/78Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices
    • H01L21/82Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices to produce devices, e.g. integrated circuits, each consisting of a plurality of components
    • 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 Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Architecture (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Manufacturing & Machinery (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

사전-라우트 및 사후-라우트 상관관계를 개선하는 방법은 디자인에 대한 초기 배치, 가상 라우팅, 및 보다 낮은 노력 실제 라우팅을 포함할 수 있다. 가상 라우팅 및 보다 낮은 노력 실제 라우팅의 결과들은 잘못된 상관관계를 갖는 네트들을 식별하기 위해 비교될 수 있다. 적어도 하나의 소정의 잘못된 상관관계를 갖는 네트들에 기초하여, 하나 이상의 패턴들이 정의될 수 있다. 이 시점에, 네트 라우팅 제약조건들 및/또는 스케일링 팩터들이 정의된 패턴들에 매치되는 네트들에 할당될 수 있다. 이들 네트 라우팅 제약조건들 및 스케일링 팩터들은 패턴들에 매치되는 디자인의 네트들에 적용될 수 있다. 디자인의 최적화된 배치 및 보다 높은 노력 실제 라우팅은 적용된 네트 라우팅 제약조건들 및 스케일링 팩터들을 갖는 네트들을 이용하여 수행될 수 있다. 최적화된 라우팅된 디자인이 출력으로서 생성될 수 있다.

Description

정의된 패턴들을 이용한 사전-라우트 및 사후-라우트 네트 상관관계 개선{IMPROVING PRE-ROUTE AND POST-ROUTE NET CORRELATION WITH DEFINED PATTERNS}
관련 출원들
본 출원은 발명 명칭이 "Automatic RC Pattern Scaling Generation"이고 2009년 9월 8일자로 Kevin Croysdale 및 Jason Upton 에 의해 출원된 미국 특허 가출원 제61/240,574-1069호에 관련되며, 그 내용은 참조로서 전부가 본 명세서에 통합된다.
발명의 분야
본 발명은 집적회로 설계 최적화에 관한 것이고 특히 정의된 패턴들을 이용하여 사전-라우트 및 사후-라우트 상관관계를 개선하는 것에 관한 것이다. 이 개선된 상관관계는 더 우수한 자원 효율 및 더 신속한 설계 클로저 (design closure) 를 가져 온다.
집적회로들에 대한 기술 노드들이 더 작아짐에 따라, 디자인의 상이한 부분들이 IC 설계자들에게 중요한 도전과제들을 제기할 수도 있다. 예를 들어, 와이어 지연들이 프로세스 기술들을 65 nm 이하로 사용하는 디자인들에서 셀 지연들을 좌우할 수 있다. 와이어 지연의 잘못된 상관관계 (mis-correlation) 는 디자인의 라우팅 토폴로지들, 이를테면 높은 팬아웃 또는 혼잡한 영역들 때문일 수 있다. 게다가, 비아 저항에 기인한 지연은 28 nm 이하 기술 노드에 대해 중요한 문제가 될 수 있다. 현재, 디자인 개발에서 얼마나 많은 비아들이 그리고 어떤 종류의 비아들이 사용될지를 조기에 예측하기는 어렵다. 게다가 머지않아, 하부 금속 층들은 28 nm 이하 기술 노드에서 상부 금속 층들에 비교하여 단위 길이 저항 당 20-40 배를 가질 수 있다. 그 결과, 상부 층들에서의 긴 네트들은 비관적인 지연 추정치들을 가질 수 있고, 하부 층들에서의 짧은 네트들은 낙관적인 지연 추정치들을 가질 수 있다.
통상의 배치 및 라우트 도구는 네트 핀들에 대한 초기 배치에 기초한 가상 (대강의) 라우팅 (본 명세서에서 "사전-라우트"라고 언급되는 스테이지) 을 수행한다. 위에서 설명된 지연 추정 문제들을 해결하기 위해, 기존의 배치 및 라우트 도구는 와이어 지연들, 비아 카운트들, 및 층 저항들에 대한 평균 값들을 이용한다. 그 반면, 실제 라우팅 (본 명세서에서 "사후-라우트"라고도 언급되는 스테이지) 동안, 기존의 배치 및 라우트 도구는 상세한 와이어 지연들, 비아 카운트들, 및 층 저항들을 이용하며, 이에 의해 꽤 정확한 지연 추정치들을 생성한다. 유감스럽게도, 이들 지연 추정치들을 생성하려면, 상당한 시스템 및 시간 자원들이 필요하다. 그러므로, 사용자에게 디자인에 대한 신속한 피드백을 제공하기 위해, 가상 라우팅은 사전-라우트 스테이지 동안 덜 정확한 지연 모델을 계속 사용한다.
위에서 설명된 문제들의 결과로서, 사전-라우트 스테이지에서의 회로 최적화 동안에 상정된 네트의 지연은 라우팅 후의 그것의 실제 지연과는 매우 상이하며, 이에 의해 결과적으로 회로 최적화를 잘못된 방향으로 인도할 수도 있다. 이 잘못된 방향으로의 인도는 또한 사전-라우트 최적화 동안 중요한 네트들을 최적화되지 못하게 하거나 또는 중요하지 않은 네트들이 과도하게 최적화되게 할 수도 있다.
그러므로, 사전-라우트 및 사후-라우트 지연 상관관계를 개선하여 최적화된 회로 디자인을 제공하는 방법에 대한 요구가 발생한다. 사전-라우트 최적화가 사후-라우트 최적화보다 상당히 더 플렉시블 하기 때문에, 사후-라우트 최적화는 제한된 최적화 트릭들을 이용하여 디자인 클로저에 대한 사전-라우트 스테이지에서 쉽게 예측될 수 없는 타이밍 및 설계 규칙 위반들을 바로잡아야 한다.
상이한 라우팅 토폴로지들, 층층 할당들, 및 비아 카운트 추정들 최첨단 집적회로 디자인들에 대한 사전-라우트 네트 지연 추정들에 상당히 영향을 줄 수 있다. 사전-라우트 및 사후-라우트 상관관계를 개선하는 방법은 디자인에 대한 초기 배치, 가상 라우팅, 및 보다 낮은 노력 실제 라우팅을 수행하는 단계를 포함할 수 있다. 용어 "노력 (effort)"은 최적화의 공세 (aggressiveness), 예컨대 설계 규칙 위반들 (런타임과 직접적인 상관관계를 가짐) 을 없애는데 사용되는 반복 횟수를 지칭한다는 것에 주의한다. 게다가 가상 라우팅만이 라우팅 추정치들을 제공하고 그러므로 실제 라우팅에 의해 수행된 레벨의 최적화들을 수행하지 않는다는 점에 주의한다.
가상 라우팅 및 보다 낮은 노력 실제 라우팅의 결과들은 잘못된 상관관계를 갖는 네트들을 식별하기 위해 비교될 수 있다. 상당한 잘못된 상관관계가 사용자에 의해 결정될 수 있거나 또는 설정된 임계치를 초과하는 것에 의해 식별될 수 있다. 하나의 실시형태에서, 결과들은 스프레드시트의 순위 매겨진 엔트리들일 수 있으며 이에 의해 비교를 용이하게 한다. 적어도 하나의 소정의 잘못된 상관관계를 갖는 네트들에 기초하여, 하나 이상의 패턴들이 정의될 수 있다.
이때에, 네트 라우팅 제약조건들은 정의된 패턴들에 매치되는 네트들에 할당될 수 있다. 네트 라우팅 제약조건들은 라우팅 층 제약조건 및/또는 비-디폴트 라우팅 규칙을 포함할 수 있다. 라우팅 층 제약조건은 네트 구현을 위해 사용된 최소 층 및/또는 최대 층에 관련될 수 있다. 비-디폴트 라우팅 규칙은, 두 배 폭의 네트들, 네트들 사이의 두 배의 간격, 테이퍼링 규칙, 다수의 비아 커트들, 또는 다른 비-디폴트 비아 구성에 관련될 수 있다. 이들 네트 라우팅 제약조건들은 정의된 패턴들을 갖는 디자인의 네트들에 적용될 수 있다.
디자인의 배치 최적화 및 보다 높은 노력 실제 라우팅은 적용된 네트 라우팅 제약조건들을 갖는 네트들을 이용하여 수행될 수 있다. 최적화된 라우팅된 디자인이 출력될 수 있다. 이 방법은, 가상 라우팅 및 보다 높은 노력 라우팅의 결과들을 비교하여 패턴 정의 및 네트 라우팅 제약조건들을 정제 (refine) 하는 단계를 더 포함할 수 있다.
하나의 실시형태에서, 스케일링 팩터들은 또한 정의된 패턴들에 매치되는 네트들에 할당될 수도 있다. 스케일링 팩터들을 할당하는 단계는, 네트에 대한 수평 커패시턴스, 최소 수평 저항, 최대 수평 커패시턴스, 최대 수평 저항, 최소 수직 커패시턴스, 최소 수직 저항, 최대 수직 커패시턴스, 및 최대 수직 저항을 설정하는 단계를 포함할 수 있다. 이들 스케일링 팩터들은 정의된 패턴들을 갖는 디자인의 네트들에 적용될 수 있다. 하나의 실시형태에서, 비아 카운트 스케일링 팩터가 설정될 수 있고, 적어도 하나의 패턴이 비아 카운트 스케일링에 대해 정의된다. 배치 최적화는 스케일링 팩터들을 갖는 네트들을 이용하여 수행될 수 있다.
정의된 패턴들은 팬아웃들의 수, 바운딩 박스 사이즈, 바운딩 박스 가로세로비, 네트 길이, 혼잡, 슬랙, 및/또는 좌표들 (즉 칩의 영역을 정의하는 특정 세트의 좌표들) 을 지칭할 수 있다. 하나의 실시형태에서, 정의된 패턴은, 팬아웃 임계치, 팬아웃 경계, 바운딩 박스 임계치, 바운딩 박스 경계, 길이 임계치, 길이 경계, 수평 혼잡 임계치, 수평 혼잡 경계, 수직 혼잡 임계치, 수직 혼잡 경계, 슬랙 임계치, 슬랙 경계, 좌표들 (즉, 칩의 직사각형 영역을 정의하는 두 개의 (x, y) 좌표들), 바운딩 박스 가로세로비 임계치, 및 바운딩 박스 가로세로비 경계 중 적어도 하나를 포함할 수 있다.
하나의 실시형태에서, 가상 라우팅에서 사용되는 기존의 디폴트 지연 계산 모델 (예컨대 엘모어 (Elmore) 은 특정 네트 패턴들과 함께 사용하기 위한 더 정밀한 지연 계산 모델 (예컨대 AWE) 로 대체될 수 있다. 집적회로의 디자인을 배치하고 라우팅하기 위한 컴퓨터 실행가능 명령들을 저장하는 컴퓨터 판독가능 매체는, 위에서 설명된 단계들을 수행하기 위한 명령들을 포함할 수 있다.
네트 라우팅 제약조건들 및/또는 스케일링 팩터들을 포함하는 패턴 기반 RC 스케일링 기법은, 사전-라우트 및 사후-라우트 네트 지연 상관관계를 개선하기 위해 사용될 수 있다. 다른 애플리케이션들은 비관적인 비용들을 부과하고 및/또는 버퍼링 대 라우팅 제약조건 할당들을 절충하는 것에 의해, 미리 정의된 패턴들을 갖는 네트들을 최적화로부터 멀리 있게 하는 것을 포함한다.
도 1은 예시적인 디지털 IC 디자인 흐름의 단순화된 표현을 도시한다.
도 2는 패턴 기반 RC 스케일링을 포함하는 예시적인 기법을 도시한다.
도 3은 잘못된 상관관계들을 식별하고 순위 매기는데 사용될 수 있는 예시적인 스프레드시트를 도시한다.
전자 설계 자동화 (EDA) 도구들은 배치 및 라우팅 스테이지들 동안 집적회로 설계를 최적화하기 위해 유익하게 채용될 수 있다. 대체로, 실제 라우팅 동안 수행되는 최적화는 설계 규칙 위반들을 없애는 것을 시도할 것이고 그러므로 배치 동안 수행되는 추정된 라우팅에 비하여 더 많은 반복들 및 더 긴 런타임을 요구하는 경향이 있다.
사전-라우트 및 사후-라우트 상관관계를 개선하는 것에 더하여, 패턴 기반 RC 스케일링을 이용하면 또한 사용자가 디자인에서의 특정 패턴들을 "최적화로부터 멀리 있게 (optimize away)" (즉 하지 못하게) 하는 것을 허용할 수 있다. 더구나, 패턴 기반 RC 스케일링은 또한 사용자가 버퍼링 및 라우팅 제약조건 할당 간을 더 효과적으로 절충하는 것을 허용할 수 있다. 패턴 기반 RC 스케일링의 이들 및 다른 양태들은 아래에서 더 상세히 설명된다.
설명을 더 진행하기 전에, 이 패턴 기반 RC 스케일링 기법을 상황 속에 배치하는 것이 도움이 될 수도 있다. 도 1은 예시적인 IC 디자인 흐름의 단순화된 표현이다. 높은 레벨에서, 프로세스는 제품 아이디어 (단계 100) 로 시작하고 EDA 소프트웨어 설계 프로세스 (단계 110) 에서 실현된다. 디자인이 완성될 때, 그것은 테이프 아웃될 수 있다 (이벤트 140). 테이프 아웃 후, 제작 프로세스 (단계 150) 와 패키징 및 조립 프로세스 (단계 160) 가 일어나서 궁극적으로 완성된 칩들이 생기게 한다 (결과 170).
EDA 소프트웨어 설계 프로세스 (단계 110) 는 간소함을 위해 선형 형태로 보여진 다수의 단계들 112-130 으로 실제로 구성된다. 실제 IC 설계 프로세스에서, 특정한 디자인은 특정 테스트들이 통과되기까지 단계들을 통해 재검토되어야만 한다. 마찬가지로, 임의의 실제 설계 프로세스에서, 이들 단계들은 상이한 순서들 및 조합들로 일어날 수 있다. 이 설명은 그러므로 특정 IC에 대한 특정한, 또는 권고된, 디자인 흐름에서와는 달리 상황 및 일반적인 설명에 맞는 방법으로 제공된다.
EDA 소프트웨어 설계 프로세스 (단계 110) 의 구성요소 단계들의 간략한 설명이 이제 제공될 것이다:
시스템 설계 (단계 112) : 디자이너들은 그들이 구현하기 원하는 기능성을 기재하며, 그들은 기능성을 정제하며, 비용들을 점검하는 등의 만약의 문제의 계획을 수행할 수 있다. 하드웨어-소프트웨어 아키텍처 파티셔닝이 이 스테이지에서 일어날 수 있다. 이 단계에서 사용될 수 있는 시놉시스, 인크. (Synopsys, Inc.) 로부터의 예시적인 EDA 소프트웨어 제품들은 Model Architect, Saber, System Studio, 및 DesignWare® 제품들을 포함한다.
로직 설계 및 기능 검증 (단계 114) : 이 스테이지에서, 시스템에서의 모듈들을 위한 VHDL 또는 Verilog 코드가 작성되고 디자인은 기능적 노력에 대해 점검된다. 더 구체적으로는, 올바른 출력들을 생성하는 것을 보장하는 디자인인지의 여부가 점검된다. 이 단계에서 사용될 수 있는 시놉시스, 인크.로부터의 예시적인 EDA 소프트웨어 제품들은 VCS, VERA, DesignWare®, Magellan, Formality, ESP 및 LEDA 제품들을 포함한다.
합성과 테스트용 설계 (단계 116) : 여기서, VHDL/Verilog 는 네트리스트 (netlist) 에 옮겨진다. 네트리스트는 타깃 기술에 대해 최적화될 수 있다. 덧붙여, 완성된 칩의 점검을 허용하는 테스트들의 설계 및 구현이 일어난다. 이 단계에서 사용될 수 있는 시놉시스, 인크.로부터의 예시적인 EDA 소프트웨어 제품들은 Design Compiler®, Power Compiler, Tetramax, 및 DesignWare® 제품들을 포함한다.
네트리스트 검증 (단계 118) : 이 단계에서, 네트리스트는 타이밍 제약조건들에 부합하고 VHDL/Verilog 소스 코드와 상응하는지가 점검된다. 이 단계에서 사용될 수 있는 시놉시스, 인크.로부터의 예시적인 EDA 소프트웨어 제품들은 Formality, PrimeTime, 및 VCS 제품들을 포함한다.
디자인 계획 (단계 120) : 칩에 대한 전반적인 평면계획이 타이밍 및 최상단-레벨 라우팅을 위해 구성되고 분석된다. 이 단계에서 사용될 수 있는 시놉시스, 인크.로부터의 예시적인 EDA 소프트웨어 제품들은 Astro 및 IC 컴파일러 제품들을 포함한다.
물리적 구현 (단계 122) : 배치 (회로 요소들의 포지셔닝) 및 라우팅 (동일한 회로 요소들의 접속) 이 이 단계에서 일어난다. 이 단계에서 사용될 수 있는 시놉시스, 인크.로부터의 예시적인 EDA 소프트웨어 제품들은 Astro 및 IC 컴파일러 제품들을 포함한다. 하나의 실시형태에서, 패턴 기반 RC 스케일링 기법은 IC 컴파일러 도구에 의해 수행될 수 있다. 아래에서 더 상세히 설명되는 바와 같이, 패턴 기반 RC 스케일링 기법은 유익하게는 실제 라우팅으로부터의 보다 낮은 노력 라우팅 결과들을 사용하여, 배치 스테이지에서의 패턴 기반 RC 스케일링을 정의 및/또는 정제할 수 있다. IC 컴파일러 도구는 배치 스테이지에서 행해지는 가상 라우팅, 및 집적회로 디자인의 실제 라우팅 양쪽 모두를 수행할 수 있다.
분석 및 추출 (단계 124) : 이 단계에서, 회로 기능은 트랜지스터 레벨에서 검증되고, 이는 결국 만약의 문제 정제 (what-if refinement) 를 허용한다. 이 단계에서 사용될 수 있는 시놉시스, 인크.로부터의 예시적인 EDA 소프트웨어 제품들은 AstroRail, PrimeRail, Primetime, 및 Star RC/XT 제품들을 포함한다.
물리적 검증 (단계 126) : 이 단계에서 갖가지 점검 기능들은 제조, 전기적 문제들, 리소그래피 문제들, 및 회로에 대한 정확도를 보장하기 위해 수행된다. 이 단계에서 사용될 수 있는 시놉시스, 인크.로부터의 예시적인 EDA 소프트웨어 제품들은 허큘리스 제품을 포함한다.
해상도 향상 (단계 128) : 이 단계는 디자인의 제조능력을 개선하는 레이아웃의 기하학적 조작들을 수반한다. 이 단계에서 사용될 수 있는 시놉시스, 인크.로부터의 예시적인 EDA 소프트웨어 제품들은 Proteus, ProteusAF, 및 PSMGen 제품들을 포함한다.
마스크 데이터 준비 (단계 130) : 이 단계는 완성된 칩들을 생산하는 리소그래피 사용을 위한 마스크들의 생산용의 "테이프-아웃 (tape-out)" 데이터를 제공한다. 이 단계에서 사용될 수 있는 시놉시스, 인크.로부터의 예시적인 EDA 소프트웨어 제품들은 CATS (R) 패밀리의 제품들을 포함한다.
패턴 기반 RC 스케일링
배치 스테이지에서 수행되는 가상 라우트 (즉 사전-라우트) 네트 지연 추정은 네트 라우팅 제약조건들 및/또는 RC 스케일링 (전자 설계 자동화 (EDA) 업계에서는 기생전류 스케일링 (parasitic scaling) 이라고도 지칭됨) 에 의해 향상될 수 있다. 대체로, 스케일링 팩터는 양호한 설계 최적화를 촉진하기 위해 패턴에 매치되는 네트의 커패시턴스 및/또는 저항과 곱해질 수 있는 값이다.
패턴에 매치되는 네트들의 기생전류는 두 개의 방법들로 조작될 수 있다. 먼저, RC 스케일링 팩터들은 커패시턴스 및 저항에 연관된 최소 및 최대 뿐만 아니라 수평 및 수직 변수들에 기초하여 설정될 수 있다. 하나의 실시형태에서, 비아 카운트에 대한 RC 스케일링 팩터 또한 설정될 수 있다. 다른 실시형태에서, 더 정밀한 지연 계산 모델, 예컨대 AWE 또한 설정될 수 있다. 아래에서 보인 의사-코드는 저항/커패시턴스 팩터들, 비아 카운트 스케일링 팩터들, 및 지연 모델을 제공할 수 있다.
Figure 112012061072621-pct00001
하나의 실시형태에서, 저항/커패시턴스 및 비아 카운트 스케일링 팩터들을 설정하는 것은 사용자-맞춤화될 수 있다, 즉, 사용자는 각각의 스케일링 팩터에 대한 값을 설정한다 ("float"은 임의의 영이 아닌 양의 값, 즉, 정수 또는 소수를 나타낸다). 아래에서 더 상세히 설명되는 바와 같이, 정의된 패턴에 연관된 스케일링 팩터들의 각각의 세트에 대해, 사용자는 또한 패턴 식별정보 (id) 를 설정할 수 있다. 대신에 사용자는 모든 RC 스케일링 팩터들 및 비아 카운트 스케일링 팩터들을 클리어할 뿐만 아니라 가상 라우팅에서 사용된 지연 모델을 덜 정확한 모델, 예컨대 엘모어로 재설정하는 디폴트 옵션 (부울, 즉, 참 또는 거짓) 을 설정할 수 있음에 주의한다.
패턴에 매치되는 네트들은 또한 비-디폴트 라우팅 규칙들 및/또는 라우팅 층 제약조건들을 포함할 수 있는 네트 라우팅 제약조건들의 지배를 받을 수 있다. 비-디폴트 라우팅 규칙들은 두 배 폭 네트들, 네트들 간의 두 배 폭 간격, 테이퍼링 규칙들 (가변하는 폭들의 네트들을 가짐), 비아 커트들 (여기서 디폴트 비아는 일반적으로 하나의 커트를 가지고 임의의 부가적인 커트는 비아 저항을 추가로 줄일 수 있다), 비-디폴트 비아들, 및 특정 관심의 다른 패턴들을 지칭할 수 있다. 라우팅 층 제약조건들은 최소 라우팅 층 제약조건들 및/또는 최대 라우팅 층 제약조건들을 지칭할 수 있다. 하나의 실시형태에서, 네트 라우팅 제약조건들은 사용자가 생성할 수 있다.
아래의 의사-코드는 비-디폴트 라우팅 규칙뿐만 아니라 최소 라우팅 층 제약조건 및 최대 라우팅 층 제약조건을 제공할 수 있다 (여기서 "string"은 비-디폴트 라우팅 규칙 또는 라우팅 층 제약조건을 기재할 수 있는 복수의 글자들 및/또는 숫자들을 나타낸다).
Figure 112012061072621-pct00002
Figure 112012061072621-pct00003
rule_name 은 규칙을 정의하는 방법을 결정하기 위해 도구가 액세스하는 특정 비-디폴트 라우팅 규칙 (사용자에 의해 생성됨) 을 식별한다. 규칙을 정의하기 위한 예시적인 의사-코드가 아래에서 제공된다.
Figure 112012061072621-pct00004
하나의 실시형태에서, 라우팅 제약조건 할당들은 특정 저항들 및 커패시턴스들을 명시적으로 할당하지 않는다; 그러나, 집적회로의 비-디폴트 라우팅 규칙 및/또는 최소 또는 최대 층에 대한 라우팅 제약조건 할당은 이들 라우팅 제약조건들로부터 도출될 수 있는 저항 및 커패시턴스 둘 다를 내재적으로 가진다.
하나의 실시형태에서, 네트 라우팅 제약조건들에는 스케일링 팩터들을 넘어서는 우선순위가 주어질 수 있다. 이 경우, 패턴 매칭 동안, 네트가 패턴에 매치될 때, 네트 라우팅 제약조건이 적용될 것이고 스케일링 팩터들은 무시된다.
디자인에서의 패턴들은, 예를 들어, 팬아웃들의 수, 혼잡, 네트 바운딩 박스 (최소 또는 최대 사이즈, 또는 가로세로비), 슬랙 (최소 또는 최대 값), 및 위의 팩터들의 갖가지 조합들을 이용하여 정의될 수 있다.
예를 들어 팬-아웃 카운트 (예컨대 최소 팬아웃 카운트 (threshold) 및/또는 최대 팬아웃 카운트 (bound)) 및 네트 바운딩 박스 (bbox) 의 사이즈 (예컨대 최소 사이즈 (threshold) 및 최대 사이즈 (bound)) 는 다음의 의사-코드를 이용하여 특정 패턴 (1) 을 정의하는데 사용될 수 있다.
Figure 112012061072621-pct00005
Figure 112012061072621-pct00006
바운딩 박스는 그것의 왼쪽 하부의 LL (x,y) 좌표 위치 및 그것의 오른쪽 상부의 UR (x,y) 좌표 위치에 의해 정의될 수 있다 (칩의 좌표들, (예컨대 길이 = 최대 x 및 폭 = 최대 y) 는 시스템에 의해 정의된다) 는 점에 주의한다. 대체로, 바운딩 박스 (bbox) 는, 배치된 핀들의 모두에 의해 정의되는 네트를 둘러싼다.
유익하게는, 팬아웃들의 수 및 바운딩 박스를 이용함으로써, 큰 팬아웃 네트들이 "최적화로부터 멀어질 (optimized away)" 수 있다. 구체적으로는, 사용자가 높은 스케일링 팩터를 다수의 팬아웃들 및 소정 사이즈의 바운딩 박스를 갖는 패턴에 설정하는 것에 의해, 디자인에서의 큰 팬아웃들에 대해 페널티를 효과적으로 부과할 수 있다.
혼잡도에 관하여, 혼잡한 영역을 지나가는 네트들은 우회로들을 가질 수도 있다. 그러므로, 혼잡 값들은 아래의 의사-코드에 의해 보인 바와 같이, 패턴을 정의하기 위해 설정될 수 있다. 혼잡은 수요 대 공급 값으로서 표현될 수 있다는 점에 주의한다. 예를 들어, "0.80"로 설정된 혼잡 임계치는 소정의 영역에서의 가능한 트랙들 (공급) 의 적어도 80%가, 사전-라우트에 의해 추정된 바와 같이, 네트들 (수요) 에 의해 채워질 것이라는 것을 나타낼 수 있다. 하나의 실시형태에서, 소정의 영역은 네트의 바운딩 박스를 이용하여 확립될 수 있고 혼잡은 그 바운딩 박스 내의 평균 혼잡일 수 있다. 수평 및 수직 양쪽 모두로의 혼잡이, 아래에 보인 바와 같이 설정될 수 있다.
Figure 112012061072621-pct00007
보통, 바운딩 박스는 많은 글로벌 셀들 (이것들은 글로벌 라우트 동안 라우터에 의해 생성된 모든 그리드들이며, 여기서 글로벌 라우트는 글로벌 간 셀들로 제한된다 (상세한 라우트는 글로벌 내 셀 라우팅을 제공함에 주의한다)) 을 포함할 것이다. 이 경우, 네트의 혼잡은 평균 글로벌 셀 혼잡 값 (이것은 네트를 포함한 바운딩 박스의 모든 글로벌 셀들을 고려한다) 에 의해 측정될 수 있다. 동일한 글로벌 셀 그리드가 가상 및 실제 라우터들 양쪽 모두에 의해 사용될 수 있다는 점에 주의한다.
네트 길이에 관하여, 긴 네트들은 더 작은 RC 값들을 가지는 더 높은 레벨들의 금속 층들에 일반적으로 할당된다. 그러므로, 네트 길이는 결국 라우팅 제약조건들에 연관될 수 있는 패턴을 정의하는데 사용될 수 있다. 예를 들어, 다음의 의사-코드는, 50 미크론을 초과하는 길이의 모든 네트들이 M5 이상의 금속 층에 할당되는 패턴을 정의하는데 사용될 수 있다.
Figure 112012061072621-pct00008
비아 저항 추정은 패턴들과의 맞춤화된 비아 카운트 스케일링을 이용하여 개선될 수 있다. 디자인의 소정 영역에서의 비아 카운트들을 스케일링하는 예시적인 패턴이 아래에서 보인 의사-코드를 사용하여 정의될 수 있다. 이 의사-코드는 좌표들 (왼쪽 하부 x,y (10, 10) 및 오른쪽 상부 x,y (20, 20)) 을 이용하여 혼잡한 영역을 정의할 수 있고 "2"라는 스케일링 팩터를 이용하여 그 혼잡한 영역에 대한 비아들의 수를 두 배로 할 수 있다.
Figure 112012061072621-pct00009
네트 길이에 관하여, 더 많은 팬아웃 네트들을 갖는 긴 네트들은 더 정밀한 지연 추정을 필요로 한다. 그러므로, 네트 길이 및 팬아웃은, 결국 더 정밀한 지연 모델에 연관될 수 있는 패턴을 정의하는데 사용된다. 예를 들어, 다음의 의사-코드는, 300 미크론 길이를 초과하는 모든 네트들 및 5개 이상의 팬아웃이 AWE 지연 모델을 이용하도록 할당되는 패턴을 정의하는데 사용될 수 있다.
Figure 112012061072621-pct00010
슬랙 및 바운딩 박스들에 대한 다른 패턴들 (측면, 예컨대 폭/길이, 비율들을 이용) 은 또한 아래의 의사-코드에 의해 보인 바와 같이 정의될 수 있다는 점에 주의한다:
Figure 112012061072621-pct00011
slack_threshold 및 slack_bound는 음의 수들 (즉 정수들 또는 소수들) 일 수 있다는 점에 주의한다. 슬랙 임계 및 바운드는 패턴에 매치되는 네트에 대해 더 엄격하게 작업하기 위한 최적화를 강제하는데 사용될 수 있다.
하나의 실시형태에서, bbox_wl_ratio threshold/bound 정의들에 대해, 폭 대 높이 비율은 그것이 특정 범위 내에 있는 것을 보장하기 위해 점검될 수 있다. 예를 들어, bbox_wl_ratio_threshold가 2.0로 설정되면, bbox의 폭은 bbox 길이의 적어도 2x배이다. 다른 한편으로는, bbox_wl_ratio_bound가 0.5로 설정되면, bbox의 길이는 bbox 폭의 적어도 2x배이다.
도 2는 패턴 기반 네트 라우팅 제약조건들 및/또는 RC 스케일링 팩터들을 생성한 다음, 그 네트 라우팅 제약조건들 및/또는 RC 스케일링 팩터들을 집적회로 디자인의 네트들에 적용하는 예시적인 기법 (200) 을 도시한다. 단계 201은 액세스된 디자인의 대강의 배치 및 라우트를 실행할 수 있다. 배치 및 라우트 도구는 가상 라우팅 및 실제 라우팅 둘 다를 일반적으로 수행할 수 있다는 점에 주의한다. 더구나, 실제 라우팅은 도구 커맨드들을 사용하여 가변하는 노력 정도들 (예컨대 낮음, 중간, 또는 높음) 로 수행될 수 있다. 하나의 바람직한 실시형태에서, 단계 201에서 수행되는 라우팅은 가상 라우팅 및 보다 낮은 노력 실제 라우팅을 포함하며, 이에 의해 런타임을 최소화한다.
단계 202는 디자인의 가상 라우팅 및 보다 낮은 노력 실제 라우팅의 결과들을 비교할 수 있다. 이 비교는 실제 (비록 보다 낮은 노력일지라도) 및 추정된 기생, 저항들, 및 비아 카운트들을 분석하는 것에 의해 행해질 수 있다. 예시적인 배치 및 라우트 도구, 예컨대 IC 컴파일러를 이용하는 하나의 실시형태에서, 단계 202는 compare_rc, compare_rc-resistance, 및 compare_re-only_via_count 커맨드들을 이용할 수 있다. 하나의 실시형태에서, 단계 202는 또한 특정 패턴들에 대한 compare_rc sub-routine을 (예컨대 compare_rc-pattern <pattern_id> 커맨드를 사용하여) 수행하는 것을 포함한다.
하나의 실시형태에서, 정렬 및 순위 매기기를 허용하고, 이에 의해 잘못된 상관관계를 갖는 네트들의 식별을 (예컨대 가상 라우팅 및 보다 낮은 노력 실제 라우팅의 결과들 간의 불일치들을 순위 매기는 것에 의해) 용이하게 하는 비교 데이터는 도 3에 보인 스프레드시트 (300) 에서 표시될 수 있다. 적어도 소정의 잘못된 상관관계 (또한 나쁜 상관관계라고 지칭됨) 를 갖는 네트들은 단계 202에서 식별될 수 있다. 도 3은 또한 "주해 (Annotated)"라고 레이블된 산란 점그래프 (scatter plot; 301) 를 예시한다는 점에 주의한다. 산란 점그래프 (301) 는 추정된 값들 (스프레드시트 (300) 의 제 1 열) 및 주해된 또는 실제 값들 (스프레드시트 (300) 의 제 2 열) 사이의 상관관계를 나타낸다. 완벽한 상관관계는 45도 라인에 의해 표현될 것이다. 따라서, 산란 점그래프 (301) 는 유익하게도 사전-라우트 및 사후-라우트 간의 상관관계에 대한 빠른 가상 피드백을 사용자에게 제공할 수 있다. 도 3에서, 스프레드시트 (300) 는 커패시턴스 값들을 제공하고 다른 스프레드시트는 동일한 네트들에 대한 저항 값들을 제공한다는 점에 주의한다.
단계 203은 나쁜 상관관계를 갖는 네트들의 하나 이상의 공통 팩터들 (예컨대 네트 길이, 팬아웃들의 수 등) 이 존재하는지 여부를 결정할 수 있고, 이에 의해 효과적으로 패턴을 식별할 수 있다. 그러면 식별된 패턴들은 도구 구현을 위해 (예컨대 create_net_pattern 커맨드를 이용하여) 정의될 수 있다. 정의된 패턴들은 사용자에 의해 수동으로 또는 배치 및 라우트 도구, 이를 테면 IC 컴파일러에 의해 자동으로 생성될 수 있다는 점에 주의한다. 하나의 실시형태에서, 자동 패턴 생성은 기생들 (compare_rc) 을 비교하고 및 소정의 임계치 미만의 상관관계를 갖는 (또는 위의 잘못된 상관관계를 갖는) 네트들만을 식별하는 것에 의해 행해질 수 있다. 하나의 실시형태에서, 사용자 입력은 자동 패턴 생성을 최적화하는데 사용될 수 있다.
단계 204에서, 정의된 패턴들에 대한 네트 라우팅 제약조건들 및/또는 RC 스케일링 팩터들은 (예컨대 set_pattern_delay_estimation_options 커맨드를 이용하여) 할당될 수 있다. 정의된 패턴들에 대한 네트 라우팅 제약조건들 및/또는 RC 스케일링 팩터들이 할당된 후, 단계 205는 그 네트 라우팅 제약조건들 및/또는 RC 스케일링 팩터들을 정의된 패턴들에 매치되는 디자인의 네트들에 적용할 수 있다.
하나의 실시형태에서, 각각의 네트는 정의된 패턴들의 기준들의 모두에 대해 점검된다. 예를 들어, 팬아웃 기준들을 만족시키기 위해, 팬아웃 수는 설정된 임계치 (설정된 경우) 보다 크거나 그것과 동일해야 하고 바운드 (설정된 경우) 보다 작아야 한다. 다르게 말하면, 하나의 매개변수가 지정되지 않으면, 그 매개변수는 점검되지 않는다. 위의 팬아웃 예를 이용하여, fanout_threshold가 설정되지만, fanout_bound가 설정되지 않으면, 팬아웃 임계치보다 크거나 또는 그것과 동일한 팬아웃들이 매치물들 (matches) 이라고 간주된다.
단계 204의 하나의 실시형태에서, 패턴들은 각각의 네트에 대한 소정의 순서로 매칭에 대해 점검될 수 있다. 예를 들어, 소정의 순서는 숫자 순서로 패턴 식별 (ID) 을 뒤따를 수 있다. 대체로, 일단 하나의 패턴과의 매치물이 발견되면, 그 네트에 대한 패턴 점검은 끝난다. 하나의 실시형태에서, 사용자는 패턴 점검을 위한 소정의 순서를 지정할 수 있다. 예를 들어, 패턴들 1-5가 정의되고 사용자가 "3 5 2"의 패턴 점검 순서를 지정하면, 패턴 점검 순서는 "3 5 2 1 4"일 것이다.
단계 206은 네트 라우팅 제약조건들 및 RC 스케일링 팩터들을 이용하여, 배치를 최적화하고 더 보다 높은 노력 라우팅 (즉 보다 낮은 노력보다 더 보다 높은 노력 실제 라우팅) 을 수행할 수 있다. RC 스케일링 팩터들은 실제 라우팅 동안 사용되지 않지만, 배치 최적화 동안 유익하게 사용될 수 있다는 점에 주의한다. 단계 207은 라우팅된 집적회로 디자인을 출력할 수 있다.
그 반면, 단계 206에서, 보다 높은 노력 라우팅은 유익하게는 정의된 패턴들에 매치되는 네트들에 연관된 네트 라우팅 제약조건들을 포함한다. 예를 들어, 라우팅 안내는 유익하게는 비-디폴트 라우팅 규칙들 및 라우팅 층 제약조건들을 포함할 수 있다. 따라서, 사용자가 특정 네트 길이에 대한 패턴을 생성하고 특정 층을 그 정의된 패턴에 할당하면, 그 라우팅 층 제약조건은 단계 206에서의 배치 및 실제 라우팅 내내 유지되어야 한다. 이 유형의 제약조건 상속은 바람직한데 배치 및 라우트 도구의 운영 때문이다. 다시 말하면, 특정 네트 길이에 기초하여, 배치 및 라우트 도구는 하나 이상의 버퍼들을 삽입하여 양호한 신호 전송을 보장할 수도 있다. 그러나, 이 버퍼 삽입은 원래의 네트에 비교하여 상당히 더 짧은 길이의 둘 이상의 네트들이 생기게 할 수 있다. 이때, 더 짧은 네트들을 사용하여, 네트 라우팅 제약조건은 새로 만들어진 네트들에 적용되지 않을 수도 있다. 그러므로, 임의의 네트 라우팅 제약조건들은 단계 206에서 라우팅 최적화, 이를 테면 버퍼 삽입, 버퍼 제거, 및 높은 팬아웃 네트 합성을 위해 유지되어야 한다.
그 결과, 이들 비-디폴트 라우팅 규칙들 및 라우팅 층 제약조건들은 "스티커식 (sticky)"이라고 특징지을 수 있는데 그것들이 단계 206에서 유지되고 라우터에 전달되기 때문이다. 이러한 "상속된 (inherited)" 네트 제약조건들은 셀 카운트, 밀도, 및/또는 혼잡을 최적화하기 위해 버퍼링과 절충될 수 있다는 점에 주의한다.
하나의 실시형태에서, 단계 206으로부터의 라우팅 결과는 루프 208을 통해 단계 202로 피드백될 수 있다. 예를 들어, 단계 206에서 수행된 보다 높은 노력 라우팅 (제 1 인스턴스) 이 "중간" 노력 레벨에 있다면, 루프 208은 단계 202에서 보다 높은 노력 실제 라우팅을 가상 라우팅과 비교하는 것에 의해, 사전-라우트 및 사후-라우트 상관관계의 다른 추가의 정제를 위해 사용될 수 있다. 네트 라우팅 제약조건들 및/또는 RC 스케일링 팩터들의 정제는 현재의 배치를 변경할 수 있고, 이에 의해 또한 단계 206에서 수행되는 실제 라우팅을 변경할 수 있다. 하나의 실시형태에서, 단계들 202-206은 소정의 상관관계가 달성되기까지 또는 사용자가 단계 207에서 라우팅된 디자인을 요구하기까지 반복될 수 있다. 하나의 실시형태에서, 단계 202에서 수행되는 보다 높은 노력 실제 라우팅은 동일한 레벨에서 유지된다. 예를 들어, 보다 높은 노력 실제 라우팅이 단계 202에서 중간 노력 레벨에 있다면 (제 1 인스턴스), 단계 202의 임의의 후속 인스턴스들 또한 중간 노력 실제 라우팅을 사용하여 수행된다.
일부 실시형태들에서, 하나의 디자인에 대한 스케일링 팩터들, 비-디폴트 라우팅 규칙들, 및 라우팅 층 제약조건들은 (즉 하나의 디자인에 대한 단계들 201-204 및 하나 이상의 다른 디자인들에 대한 단계들 205-207 을 수행하여) 다수의 디자인들을 위해 사용될 수 있다는 점에 주의한다. 이 다중 사용은 공통 기술 노드, 유사한 셀 활용, 및/또는 플로어 계획들을 갖는 디자인들에 가능할 수도 있다.
단계 202는 가상 라우팅에 대해 지연 모델을 사용한다는 점에 주의한다. 엘모어 지연 모델은 기존의 사전-라우트 추정에 의해 사용되는데 신속한 런 타임 때문이다. 그러나, 엘모어 지연 모델은 특정 경우들에 대해 너무 비관적일 수도 있다. 그러므로, 하나의 실시형태에서, 더 정밀한 지연 모델이 단계 202에서 사용될 수 있다.
예시적인 정밀 지연 모델들은, Arnoldi 및 AWE (asymptotic waveform estimator) 를 포함하지만 이것들로 제한되지는 않는다. Arnoldi는 AWE보다 더 정확하지만, 또한 더 느리다. 그러므로, AWE는 비교적 정확한 솔루션이 필요하고 런타임이 관심사일 때 일반적으로 Arnoldi보다 선호된다.
하나의 실시형태에서, AWE 모델은 미리 정의된 패턴들에 매치되는 특정 네트들을 위해서만 사용될 수 있다. 예를 들어, AWE 모델은 중요한 네트들 또는 소정의 임계치보다 큰 지연을 갖는 네트들에만 적용될 수 있다. 하나의 실시형태에서, 소정의 임계치는 0.001 ns로 설정될 수 있다. 하나의 실시형태에서, 사용자는 소정의 임계치를 설정할 수 있다.
위에서 논의된 바와 같이, 패턴 기반 RC 스케일링 기법은 사전-라우트 및 사후-라우트 네트 지연 상관관계를 개선하는데 사용될 수 있다. 다른 애플리케이션들은, 네트 라우팅 제약조건들을 갖는 패턴들을 할당하는 것에 의해 비관적인 비용들을 부과하고 및/또는 버퍼링 대 라우팅 제약조건 할당들을 절충함으로써, 미리 정의된 패턴들을 갖는 네트들을 최적화로부터 멀리 있게 하는 것을 포함한다.
패턴 기반 RC 스케일링 기법은, 데이터 저장 시스템으로부터 데이터 및 명령들을 수신하고 데이터 및 데이터 저장 시스템에 명령들을 송신하도록 결합되는 적어도 하나의 프로그램가능 프로세서, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스를 구비한 프로그램가능 시스템에서 실행가능한 하나 이상의 컴퓨터 프로그램들로 유익하게 구현될 수 있다. 각각의 컴퓨터 프로그램은 고급 절차적 또는 객체 지향 프로그래밍 언어로 또는 소망된다면 어셈블리 또는 기계어로 구현될 수도 있고; 어쨌든, 이 언어는 컴파일 또는 인터프리트 언어일 수 있다. 적합한 프로세서들은, 예로서, 일반 및 특수 목적 마이크로프로세서들 양쪽 모두, 뿐만 아니라 다른 유형들의 마이크로제어기들을 포함한다. 일반적으로, 프로세서가 명령들 및 데이터를 판독 전용 메모리 및/또는 임의 접근 메모리로부터 수신할 것이다. 일반적으로, 컴퓨터는 데이터 파일들을 저장하기 위한 하나 이상의 대량 저장 디바이스들을 구비할 것이며; 이러한 디바이스들은 자기 디스크들, 이를 테면 내장형 하드 디스크들 및 착탈식 디스크들, 자기-광학 디스크들, 및 광 디스크들을 포함한다. 컴퓨터 프로그램 명령들 및 데이터를 유형적으로 수록하기에 적합한 저장 디바이스들은, 예로서 반도체 메모리 디바이스들, 이를테면 EPROM, EEPROM, 및 플래시 메모리 디바이스들, 자기 디스크들, 이를테면 내장형 하드 디스크들 및 착탈식 디스크들, 자기 광 디스크들, 및 CD-ROM 디스크들을 포함하는 모든 형태의 비휘발성 메모리를 포함한다. 전술한 것들 중의 어느 것이라도 애플리케이션 특화 집적회로들 (IC들) 에 의해 보충되거나, 또는 그것들에 통합될 수도 있다.
예시적인 본 발명의 실시형태들이 첨부 도면들을 참조하여 본 명세서에서 상세히 설명되었지만, 본 발명은 바로 그 실시형태로 제한되지는 않는다는 것이 이해된다. 본 발명이 개시된 바로 그 형태들로만 국한되는 것은 아니다. 이처럼, 많은 변형들 및 개조들이 명백하게 될 것이다. 예를 들어, 패턴 기반 RC 스케일링 기법은 배치 및 라우트 작업들 내내 업데이트될 수 있다는 점에 주의한다. 게다가 비록 단계 202가 보다 낮은 노력 실제 라우팅을 언급하고 단계 206이 보다 높은 노력 실제 라우팅을 언급하지만, 이 구별은 또한 제 2-유형 실제 라우팅에 의해 사용되는 반복들이 제 1-유형 실제 라우팅에 의해 사용되는 반복들보다 많은 제 1-유형 실제 라우팅 및 제 2-유형 실제 라우팅으로서 특징지을 수 있다. 따라서, 본 발명의 범위는 다음의 청구항들 및 그것들의 동등물들에 의해 한정되는 것이 의도된다.

Claims (56)

  1. 집적회로의 디자인에 대한 사전-라우트 (pre-route) 및 사후-라우트 (post-route) 상관관계를 개선하는 방법으로서,
    상기 디자인에 대한 초기 배치, 가상 라우팅, 및 보다 낮은 노력 실제 라우팅 (lower-effort actual routing) 을 수행하는 단계로서, 상기 보다 낮은 노력 실제 라우팅은 상기 가상 라우팅보다 더 공격적인 최적화들을 제공하는, 상기 디자인에 대한 초기 배치, 가상 라우팅, 및 보다 낮은 노력 실제 라우팅을 수행하는 단계;
    잘못된 상관관계 (miscorrelation) 를 갖는 네트들을 식별하기 위해 상기 가상 라우팅과 상기 보다 낮은 노력 실제 라우팅의 결과들을 비교하는 단계;
    적어도 소정의 잘못된 상관관계를 갖는 상기 네트들에 기초하여 패턴들을 정의하는 단계;
    네트 라우팅 제약조건들을 정의된 패턴들에 매치되는 네트들에 할당하는 단계;
    상기 네트 라우팅 제약조건들을 상기 정의된 패턴들을 갖는 상기 디자인의 네트들에 적용하는 단계;
    컴퓨터를 사용하여, 적용된 네트 라우팅 제약조건들을 갖는 네트들을 포함하는 상기 디자인의 배치를 최적화하고 보다 높은 노력 실제 라우팅 (higher-effort actual routing) 을 수행하는 단계; 및
    라우팅된 디자인을 출력하는 단계를 포함하는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  2. 제 1 항에 있어서,
    정의된 패턴들에 매치되는 네트들에 스케일링 팩터들을 할당하는 단계;
    스케일링 팩터들을 상기 디자인의 네트들에 적용하는 단계; 및
    스케일링 팩터들을 갖는 네트들을 이용하여 상기 디자인의 배치를 최적화하는 단계를 더 포함하는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  3. 제 1 항에 있어서,
    상기 네트 라우팅 제약조건들은 비-디폴트 라우팅 규칙 및 라우팅 층 제약조건 중 적어도 하나를 포함하는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  4. 제 3 항에 있어서,
    상기 라우팅 층 제약조건은 네트 구현을 위해 사용된 최소 층에 관련되는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  5. 제 3 항에 있어서,
    상기 라우팅 층 제약조건은 네트 구현을 위해 사용된 최대 층에 관련되는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  6. 제 3 항에 있어서,
    상기 비-디폴트 라우팅 규칙은, 두 배의 폭, 두 배의 간격, 테이퍼링 규칙, 다수의 비아 커트들, 및 비-디폴트 비아 중 적어도 하나에 관련되는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  7. 제 2 항에 있어서,
    상기 가상 라우팅과 상기 보다 높은 노력 실제 라우팅의 결과들을 비교하여 패턴 정의 및 스케일링 팩터 할당을 정제 (refine) 하는 단계를 더 포함하는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  8. 제 2 항에 있어서,
    상기 패턴들을 정의하는 단계는, 다수의 팬아웃들, 바운딩 박스, 길이, 혼잡도, 슬랙 (slack), 및 좌표들 중 적어도 하나를 이용하는 단계를 포함하는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  9. 제 2 항에 있어서,
    상기 패턴들을 정의하는 단계는, 팬아웃 임계치, 팬아웃 경계, 바운딩 박스 임계치, 바운딩 박스 경계, 길이 임계치, 길이 경계, 수평 혼잡 임계치, 수평 혼잡 경계, 수직 혼잡 임계치, 수직 혼잡 경계, 슬랙 임계치, 슬랙 경계, 좌표들, 바운딩 박스 가로세로비 임계치, 및 바운딩 박스 가로세로비 경계 중 적어도 하나를 포함하는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  10. 제 2 항에 있어서,
    상기 스케일링 팩터들을 할당하는 단계는, 최소 수평 커패시턴스, 최소 수평 저항, 최대 수평 커패시턴스, 최대 수평 저항, 최소 수직 커패시턴스, 최소 수직 저항, 최대 수직 커패시턴스, 및 최대 수직 저항 중 적어도 하나를 설정하는 단계를 포함하는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  11. 제 2 항에 있어서,
    비아 카운트 스케일링 팩터를 설정하는 단계를 더 포함하며,
    적어도 하나의 패턴이 상기 비아 카운트 스케일링에 대해 정의되는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  12. 제 2 항에 있어서,
    가상 라우팅에 대한 지연 모델을 설정하는 단계를 더 포함하는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  13. 제 12 항에 있어서,
    상기 지연 모델은 AWE (asymptotic waveform estimator) 인, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  14. 제 1 항에 있어서,
    상기 결과들을 비교하는 단계는 스프레드시트의 엔트리들의 순위를 매기는 단계를 포함하는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  15. 집적회로의 디자인을 배치하고 라우팅하기 위한 컴퓨터 실행가능 명령들을 저장하는 비일시적 컴퓨터 판독가능 매체로서,
    상기 컴퓨터 실행가능 명령들은, 프로세서에 의해 실행될 때 상기 프로세서로 하여금 프로세스를 실행하게 하고,
    상기 프로세스는,
    상기 디자인에 대한 초기 배치, 가상 라우팅, 및 보다 낮은 노력 실제 라우팅을 수행하는 것으로서, 상기 보다 낮은 노력 실제 라우팅은 상기 가상 라우팅보다 더 공격적인 최적화들을 제공하는, 상기 디자인에 대한 초기 배치, 가상 라우팅, 및 보다 낮은 노력 실제 라우팅을 수행하는 것;
    잘못된 상관관계를 갖는 네트들을 식별하기 위해 상기 가상 라우팅과 상기 보다 낮은 노력 실제 라우팅의 결과들을 비교하는 것;
    적어도 소정의 잘못된 상관관계를 갖는 상기 네트들에 기초하여 패턴들을 정의하는 것;
    네트 라우팅 제약조건들을 정의된 패턴들에 매치되는 네트들에 할당하는 것;
    상기 네트 라우팅 제약조건들을 상기 정의된 패턴들을 갖는 상기 디자인의 네트들에 적용하는 것;
    적용된 네트 라우팅 제약조건들을 갖는 네트들을 이용하여 상기 디자인의 배치를 최적화하고 보다 높은 노력 실제 라우팅을 수행하는 것; 및
    라우팅된 디자인을 출력하는 것을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  16. 제 15 항에 있어서,
    정의된 패턴들에 매치되는 네트들에 스케일링 팩터들을 할당하는 것;
    스케일링 팩터들을 상기 디자인의 네트들에 적용하는 것; 및
    상기 스케일링 팩터들을 갖는 네트들을 이용하여 상기 디자인의 배치를 최적화하는 것
    을 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  17. 제 15 항에 있어서,
    상기 네트 라우팅 제약조건들은 비-디폴트 라우팅 규칙 및 라우팅 층 제약조건 중 적어도 하나를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  18. 제 17 항에 있어서,
    상기 라우팅 층 제약조건은 네트 구현을 위해 사용된 최소 층에 관련되는, 비일시적 컴퓨터 판독가능 매체.
  19. 제 17 항에 있어서,
    상기 라우팅 층 제약조건은 네트 구현을 위해 사용된 최대 층에 관련되는, 비일시적 컴퓨터 판독가능 매체.
  20. 제 17 항에 있어서,
    상기 비-디폴트 라우팅 규칙은, 두 배의 폭, 두 배의 간격, 테이퍼링 규칙, 다수의 비아 커트들, 및 비-디폴트 비아 중 적어도 하나에 관련되는, 비일시적 컴퓨터 판독가능 매체.
  21. 제 16 항에 있어서,
    상기 가상 라우팅과 상기 보다 높은 노력 실제 라우팅의 결과들을 비교하여 패턴 정의 및 스케일링 팩터 할당을 정제하는 것을 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  22. 제 16 항에 있어서,
    상기 패턴들을 정의하는 것은, 다수의 팬아웃들, 바운딩 박스, 길이, 혼잡도, 슬랙, 및 좌표들 중 적어도 하나를 이용하는 것을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  23. 제 16 항에 있어서,
    상기 패턴들을 정의하는 것은, 팬아웃 임계치, 팬아웃 경계, 바운딩 박스 임계치, 바운딩 박스 경계, 길이 임계치, 길이 경계, 수평 혼잡 임계치, 수평 혼잡 경계, 수직 혼잡 임계치, 수직 혼잡 경계, 슬랙 임계치, 슬랙 경계, 좌표들, 바운딩 박스 가로세로비 임계치, 및 바운딩 박스 가로세로비 경계 중 적어도 하나를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  24. 제 16 항에 있어서,
    상기 스케일링 팩터들을 할당하는 것은, 최소 수평 커패시턴스, 최소 수평 저항, 최대 수평 커패시턴스, 최대 수평 저항, 최소 수직 커패시턴스, 최소 수직 저항, 최대 수직 커패시턴스, 및 최대 수직 저항 중 적어도 하나를 설정하는 것을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  25. 제 16 항에 있어서,
    비아 카운트 스케일링 팩터를 설정하는 것을 더 포함하고,
    적어도 하나의 패턴이 상기 비아 카운트 스케일링에 대해 정의되는, 비일시적 컴퓨터 판독가능 매체.
  26. 제 16 항에 있어서,
    상기 가상 라우팅에 대한 지연 모델을 설정하는 것을 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  27. 제 26 항에 있어서,
    상기 지연 모델은 AWE (asymptotic waveform estimator) 인, 비일시적 컴퓨터 판독가능 매체.
  28. 제 15 항에 있어서,
    상기 결과들을 비교하는 것은 스프레드시트의 엔트리들의 순위를 매기는 것을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  29. 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계를 개선하는 방법으로서,
    상기 디자인에 대한 초기 배치, 가상 라우팅, 및 제 1 유형 실제 라우팅을 수행하는 단계로서, 상기 제 1 유형 실제 라우팅은 상기 가상 라우팅보다 더 공격적인 최적화들을 제공하는, 상기 디자인에 대한 초기 배치, 가상 라우팅, 및 제 1 유형 실제 라우팅을 수행하는 단계;
    잘못된 상관관계를 갖는 네트들을 식별하기 위해 상기 가상 라우팅과 상기 제 1 유형 실제 라우팅의 결과들을 비교하는 단계;
    적어도 소정의 잘못된 상관관계를 갖는 상기 네트들에 기초하여 패턴들을 정의하는 단계;
    네트 라우팅 제약조건들을 정의된 패턴들에 매치되는 네트들에 할당하는 단계;
    상기 네트 라우팅 제약조건들을 상기 정의된 패턴들을 갖는 상기 디자인의 네트들에 적용하는 단계;
    컴퓨터를 사용하여, 적용된 네트 라우팅 제약조건들을 갖는 네트들을 포함하는 상기 디자인의 배치를 최적화하고 제 2 유형 실제 라우팅을 수행하는 단계로서, 상기 제 2 유형 실제 라우팅은 상기 제 1 유형 실제 라우팅보다 많은 반복들을 수행하는, 상기 적용된 네트 라우팅 제약조건들을 갖는 네트들을 포함하는 상기 디자인의 배치를 최적화하고 제 2 유형 실제 라우팅을 수행하는 단계; 및
    라우팅된 디자인을 출력하는 단계를 포함하는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  30. 제 29 항에 있어서,
    정의된 패턴들에 매치되는 네트들에 스케일링 팩터들을 할당하는 단계;
    스케일링 팩터들을 상기 디자인의 네트들에 적용하는 단계; 및
    스케일링 팩터들을 갖는 네트들을 이용하여 상기 디자인의 배치를 최적화하는 단계를 더 포함하는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  31. 제 29 항에 있어서,
    상기 네트 라우팅 제약조건들은 비-디폴트 라우팅 규칙 및 라우팅 층 제약조건 중 적어도 하나를 포함하는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  32. 제 31 항에 있어서,
    상기 라우팅 층 제약조건은 네트 구현을 위해 사용된 최소 층에 관련되는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  33. 제 31 항에 있어서,
    상기 라우팅 층 제약조건은 네트 구현을 위해 사용된 최대 층에 관련되는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  34. 제 31 항에 있어서,
    상기 비-디폴트 라우팅 규칙은, 두 배의 폭, 두 배의 간격, 테이퍼링 규칙, 다수의 비아 커트들, 및 비-디폴트 비아 중 적어도 하나에 관련되는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  35. 제 30 항에 있어서,
    상기 가상 라우팅과 상기 제 2 유형 실제 라우팅의 결과들을 비교하여 패턴 정의 및 스케일링 팩터 할당을 정제하는 단계를 더 포함하는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  36. 제 30 항에 있어서,
    상기 패턴들을 정의하는 단계는, 다수의 팬아웃들, 바운딩 박스, 길이, 혼잡도, 슬랙, 및 좌표들 중 적어도 하나를 이용하는 단계를 포함하는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  37. 제 30 항에 있어서,
    상기 패턴들을 정의하는 단계는, 팬아웃 임계치, 팬아웃 경계, 바운딩 박스 임계치, 바운딩 박스 경계, 길이 임계치, 길이 경계, 수평 혼잡 임계치, 수평 혼잡 경계, 수직 혼잡 임계치, 수직 혼잡 경계, 슬랙 임계치, 슬랙 경계, 좌표들, 바운딩 박스 가로세로비 임계치, 및 바운딩 박스 가로세로비 경계 중 적어도 하나를 포함하는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  38. 제 30 항에 있어서,
    상기 스케일링 팩터들을 할당하는 단계는, 최소 수평 커패시턴스, 최소 수평 저항, 최대 수평 커패시턴스, 최대 수평 저항, 최소 수직 커패시턴스, 최소 수직 저항, 최대 수직 커패시턴스, 및 최대 수직 저항 중 적어도 하나를 설정하는 단계를 포함하는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  39. 제 30 항에 있어서,
    비아 카운트 스케일링 팩터를 설정하는 단계를 더 포함하며,
    적어도 하나의 패턴이 상기 비아 카운트 스케일링에 대해 정의되는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  40. 제 30 항에 있어서,
    상기 가상 라우팅에 대한 지연 모델을 설정하는 단계를 더 포함하는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  41. 제 40 항에 있어서,
    상기 지연 모델은 AWE (asymptotic waveform estimator) 인, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  42. 제 29 항에 있어서,
    상기 결과들을 비교하는 단계는 스프레드시트의 엔트리들의 순위를 매기는 단계를 포함하는, 집적회로의 디자인에 대한 사전-라우트 및 사후-라우트 상관관계 개선 방법.
  43. 집적회로의 디자인을 배치하고 라우팅하기 위한 컴퓨터 실행가능 명령들을 저장하는 비일시적 컴퓨터 판독가능 매체로서,
    상기 컴퓨터 실행가능 명령들은, 프로세서에 의해 실행될 때 상기 프로세서로 하여금 프로세스를 실행하게 하고,
    상기 프로세스는,
    상기 디자인에 대한 초기 배치, 가상 라우팅, 및 제 1 유형 실제 라우팅을 수행하는 것으로서, 상기 제 1 유형 실제 라우팅은 상기 가상 라우팅보다 더 공격적인 최적화들을 제공하는, 상기 디자인에 대한 초기 배치, 가상 라우팅, 및 제 1 유형 실제 라우팅을 수행하는 것;
    잘못된 상관관계를 갖는 네트들을 식별하기 위해 상기 가상 라우팅과 상기 제 1 유형 실제 라우팅의 결과들을 비교하는 것;
    적어도 소정의 잘못된 상관관계를 갖는 상기 네트들에 기초하여 패턴들을 정의하는 것;
    네트 라우팅 제약조건들을 정의된 패턴들에 매치되는 네트들에 할당하는 것;
    상기 네트 라우팅 제약조건들을 상기 정의된 패턴들을 갖는 상기 디자인의 네트들에 적용하는 것;
    적용된 네트 라우팅 제약조건들을 갖는 네트들을 이용하여 상기 디자인의 배치를 최적화하고 제 2 유형 실제 라우팅을 수행하는 것으로서, 상기 제 2 유형 실제 라우팅은 상기 제 1 유형 실제 라우팅보다 많은 반복들을 수행하는, 상기 적용된 네트 라우팅 제약조건들을 갖는 네트들을 이용하여 상기 디자인의 배치를 최적화하고 제 2 유형 실제 라우팅을 수행하는 것; 및
    라우팅된 디자인을 출력하는 것을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  44. 제 43 항에 있어서,
    정의된 패턴들에 매치되는 네트들에 스케일링 팩터들을 할당하는 것;
    스케일링 팩터들을 상기 디자인의 네트들에 적용하는 것; 및
    상기 스케일링 팩터들을 갖는 네트들을 이용하여 상기 디자인의 배치를 최적화하는 것
    을 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  45. 제 43 항에 있어서,
    상기 네트 라우팅 제약조건들은 비-디폴트 라우팅 규칙 및 라우팅 층 제약조건 중 적어도 하나를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  46. 제 45 항에 있어서,
    상기 라우팅 층 제약조건은 네트 구현을 위해 사용된 최소 층에 관련되는, 비일시적 컴퓨터 판독가능 매체.
  47. 제 45 항에 있어서,
    상기 라우팅 층 제약조건은 네트 구현을 위해 사용된 최대 층에 관련되는, 비일시적 컴퓨터 판독가능 매체.
  48. 제 45 항에 있어서,
    상기 비-디폴트 라우팅 규칙은, 두 배의 폭, 두 배의 간격, 테이퍼링 규칙, 다수의 비아 커트들, 및 비-디폴트 비아 중 적어도 하나에 관련되는, 비일시적 컴퓨터 판독가능 매체.
  49. 제 44 항에 있어서,
    상기 가상 라우팅과 상기 제 2 유형 실제 라우팅의 결과들을 비교하여 패턴 정의 및 스케일링 팩터 할당을 정제하는 것을 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  50. 제 44 항에 있어서,
    상기 패턴들을 정의하는 것은, 다수의 팬아웃들, 바운딩 박스, 길이, 혼잡도, 슬랙, 및 좌표들 중 적어도 하나를 이용하는 것을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  51. 제 44 항에 있어서,
    상기 패턴들을 정의하는 것은, 팬아웃 임계치, 팬아웃 경계, 바운딩 박스 임계치, 바운딩 박스 경계, 길이 임계치, 길이 경계, 수평 혼잡 임계치, 수평 혼잡 경계, 수직 혼잡 임계치, 수직 혼잡 경계, 슬랙 임계치, 슬랙 경계, 좌표들, 바운딩 박스 가로세로비 임계치, 및 바운딩 박스 가로세로비 경계 중 적어도 하나를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  52. 제 44 항에 있어서,
    상기 스케일링 팩터들을 할당하는 것은, 최소 수평 커패시턴스, 최소 수평 저항, 최대 수평 커패시턴스, 최대 수평 저항, 최소 수직 커패시턴스, 최소 수직 저항, 최대 수직 커패시턴스, 및 최대 수직 저항 중 적어도 하나를 설정하는 것을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  53. 제 44 항에 있어서,
    비아 카운트 스케일링 팩터를 설정하는 것을 더 포함하며,
    적어도 하나의 패턴이 상기 비아 카운트 스케일링에 대해 정의되는, 비일시적 컴퓨터 판독가능 매체.
  54. 제 44 항에 있어서,
    상기 가상 라우팅에 대한 지연 모델을 설정하는 것을 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  55. 제 54 항에 있어서,
    상기 지연 모델은 AWE (asymptotic waveform estimator) 인, 비일시적 컴퓨터 판독가능 매체.
  56. 제 43 항에 있어서,
    상기 결과들을 비교하는 것은 스프레드시트의 엔트리들의 순위를 매기는 것을 포함하는, 비일시적 컴퓨터 판독가능 매체.
KR1020127020144A 2010-01-29 2011-01-14 정의된 패턴들을 이용한 사전-라우트 및 사후-라우트 네트 상관관계 개선 KR101620660B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/697,142 US8336015B2 (en) 2009-09-08 2010-01-29 Pre-route and post-route net correlation with defined patterns
US12/697,142 2010-01-29

Publications (2)

Publication Number Publication Date
KR20120114328A KR20120114328A (ko) 2012-10-16
KR101620660B1 true KR101620660B1 (ko) 2016-05-23

Family

ID=44320491

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127020144A KR101620660B1 (ko) 2010-01-29 2011-01-14 정의된 패턴들을 이용한 사전-라우트 및 사후-라우트 네트 상관관계 개선

Country Status (5)

Country Link
US (1) US8336015B2 (ko)
EP (1) EP2529327B1 (ko)
KR (1) KR101620660B1 (ko)
CN (1) CN102741848B (ko)
WO (1) WO2011094079A2 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429589B2 (en) * 2009-09-08 2013-04-23 Synopsys, Inc. Generating net routing constraints for place and route
US8336015B2 (en) 2009-09-08 2012-12-18 Synopsys, Inc. Pre-route and post-route net correlation with defined patterns
US8443324B2 (en) * 2011-03-14 2013-05-14 International Business Machines Corporation Routing and timing using layer ranges
US8386985B2 (en) * 2011-05-06 2013-02-26 International Business Machines Corporation Timing driven routing in integrated circuit design
US8875075B2 (en) 2012-06-20 2014-10-28 Synopsys, Inc. Generating pattern-based estimated RC data with analysis of route information
US9003344B2 (en) 2012-06-20 2015-04-07 Synopsys, Inc. Generating pattern-based estimated RC data with analysis of route information
US9009645B2 (en) * 2012-12-26 2015-04-14 Synopsys, Inc. Automatic clock tree routing rule generation
EP2821799B1 (en) * 2013-07-05 2019-02-13 Dialog Semiconductor GmbH Highly accurate current measurement
US10528696B2 (en) * 2016-02-29 2020-01-07 Synopsys, Inc. Creating and reusing customizable structured interconnects
KR102402673B1 (ko) * 2017-04-28 2022-05-26 삼성전자주식회사 Beol의 공정 변이를 고려하여 집적 회로를 설계하기 위한 컴퓨터 구현 방법 및 컴퓨팅 시스템
CN117272924A (zh) 2017-04-28 2023-12-22 三星电子株式会社 设计集成电路的方法
CN111199133B (zh) * 2019-12-27 2023-09-15 成都锐成芯微科技股份有限公司 一种自动布线绕线的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080127000A1 (en) 2006-05-26 2008-05-29 Open-Silicon, Inc. Method of IC design optimization via creation of design-specific cells from post-layout patterns
US7448012B1 (en) 2004-04-21 2008-11-04 Qi-De Qian Methods and system for improving integrated circuit layout
US20090307642A1 (en) 2008-06-05 2009-12-10 Ya-Chieh Lai Method and system for model-based design and layout of an integrated circuit
US20090319977A1 (en) 2008-06-24 2009-12-24 Synopsys, Inc. Interconnect-Driven Physical Synthesis Using Persistent Virtual Routing

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5311443A (en) 1992-08-13 1994-05-10 Motorola Inc. Rule based floorplanner
US6487705B1 (en) 2001-09-05 2002-11-26 Nec Electronics, Inc. Timing optimization and timing closure for integrated circuit models
US7149991B2 (en) 2002-05-30 2006-12-12 Nec Electronics America, Inc. Calibrating a wire load model for an integrated circuit
US6973632B1 (en) 2002-06-11 2005-12-06 Synplicity, Inc. Method and apparatus to estimate delay for logic circuit optimization
US7480885B2 (en) 2002-11-18 2009-01-20 Cadence Design Systems, Inc. Method and apparatus for routing with independent goals on different layers
JP2004327864A (ja) * 2003-04-25 2004-11-18 Matsushita Electric Ind Co Ltd 半導体集積回路の低消費電力化設計方法
US7178118B2 (en) 2003-05-30 2007-02-13 Synplicity, Inc. Method and apparatus for automated circuit design
US7251800B2 (en) * 2003-05-30 2007-07-31 Synplicity, Inc. Method and apparatus for automated circuit design
JP2006318978A (ja) 2005-05-10 2006-11-24 Toshiba Corp パターン設計方法
US8332793B2 (en) 2006-05-18 2012-12-11 Otrsotech, Llc Methods and systems for placement and routing
US8336015B2 (en) 2009-09-08 2012-12-18 Synopsys, Inc. Pre-route and post-route net correlation with defined patterns
US8429589B2 (en) * 2009-09-08 2013-04-23 Synopsys, Inc. Generating net routing constraints for place and route

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7448012B1 (en) 2004-04-21 2008-11-04 Qi-De Qian Methods and system for improving integrated circuit layout
US20080127000A1 (en) 2006-05-26 2008-05-29 Open-Silicon, Inc. Method of IC design optimization via creation of design-specific cells from post-layout patterns
US20090307642A1 (en) 2008-06-05 2009-12-10 Ya-Chieh Lai Method and system for model-based design and layout of an integrated circuit
US20090319977A1 (en) 2008-06-24 2009-12-24 Synopsys, Inc. Interconnect-Driven Physical Synthesis Using Persistent Virtual Routing

Also Published As

Publication number Publication date
CN102741848A (zh) 2012-10-17
EP2529327B1 (en) 2024-02-28
CN102741848B (zh) 2015-05-06
WO2011094079A2 (en) 2011-08-04
KR20120114328A (ko) 2012-10-16
EP2529327A2 (en) 2012-12-05
US8336015B2 (en) 2012-12-18
US20110061038A1 (en) 2011-03-10
WO2011094079A3 (en) 2011-10-13
EP2529327A4 (en) 2017-11-01

Similar Documents

Publication Publication Date Title
KR101620660B1 (ko) 정의된 패턴들을 이용한 사전-라우트 및 사후-라우트 네트 상관관계 개선
US8429589B2 (en) Generating net routing constraints for place and route
US7853915B2 (en) Interconnect-driven physical synthesis using persistent virtual routing
Chan et al. BEOL stack-aware routability prediction from placement using data mining techniques
US10387604B2 (en) Multi-threaded global routing
EP2278506A1 (en) Method and apparatus for automated circuit design
US8589848B2 (en) Datapath placement using tiered assignment
US8423940B2 (en) Early noise detection and noise aware routing in circuit design
US9251306B2 (en) Alignment net insertion for straightening the datapath in a force-directed placer
US11205032B2 (en) Integrated circuit design method, system and computer program product
US8365120B2 (en) Resolving global coupling timing and slew violations for buffer-dominated designs
US8713501B1 (en) Dual-box location aware and dual-bitmap voltage domain aware on-chip variation techniques
US8707230B1 (en) Method and system for semiconductor simulation
US8806407B2 (en) Multiple-instantiated-module (MIM) aware pin assignment
US20140359546A1 (en) Structured placement of hierarchical soft blocks during physical synthesis of an integrated circuit
US7657860B1 (en) Method and system for implementing routing refinement and timing convergence
Li et al. Guiding a physical design closure system to produce easier-to-route designs with more predictable timing
US11194949B1 (en) Predictor-guided cell spreader to improve routability for designs at advanced process nodes
Yu et al. TILA: Timing-driven incremental layer assignment
US20130346936A1 (en) Method and Apparatus to Generate Pattern-Based Estimated RC Data with Analysis of Route Information
US7614028B1 (en) Representation, configuration, and reconfiguration of routing method and system
US8132141B2 (en) Method and apparatus for generating a centerline connectivity representation
Ahn et al. Neural Network Model for Detour Net Prediction
US11288425B1 (en) Path-based timing driven placement using iterative pseudo netlist changes
Wei Overcoming Physical Design challenges in nanometer-scale integrated circuits

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190417

Year of fee payment: 4