KR20220042305A - 자동화된 라우팅을 수행하는 방법 및 시스템 - Google Patents
자동화된 라우팅을 수행하는 방법 및 시스템 Download PDFInfo
- Publication number
- KR20220042305A KR20220042305A KR1020217039280A KR20217039280A KR20220042305A KR 20220042305 A KR20220042305 A KR 20220042305A KR 1020217039280 A KR1020217039280 A KR 1020217039280A KR 20217039280 A KR20217039280 A KR 20217039280A KR 20220042305 A KR20220042305 A KR 20220042305A
- Authority
- KR
- South Korea
- Prior art keywords
- routing
- path
- nets
- pin
- rule
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L23/00—Details of semiconductor or other solid state devices
- H01L23/48—Arrangements for conducting electric current to or from the solid state body in operation, e.g. leads, terminal arrangements ; Selection of materials therefor
- H01L23/488—Arrangements for conducting electric current to or from the solid state body in operation, e.g. leads, terminal arrangements ; Selection of materials therefor consisting of soldered or bonded constructions
- H01L23/498—Leads, i.e. metallisations or lead-frames on insulating substrates, e.g. chip carriers
- H01L23/49811—Additional leads joined to the metallisation on the insulating substrate, e.g. pins, bumps, wires, flat leads
- H01L23/49816—Spherical bumps on the substrate for external connection, e.g. ball grid arrays [BGA]
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L23/00—Details of semiconductor or other solid state devices
- H01L23/48—Arrangements for conducting electric current to or from the solid state body in operation, e.g. leads, terminal arrangements ; Selection of materials therefor
- H01L23/488—Arrangements for conducting electric current to or from the solid state body in operation, e.g. leads, terminal arrangements ; Selection of materials therefor consisting of soldered or bonded constructions
- H01L23/498—Leads, i.e. metallisations or lead-frames on insulating substrates, e.g. chip carriers
- H01L23/49838—Geometry or layout
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L24/00—Arrangements for connecting or disconnecting semiconductor or solid-state bodies; Methods or apparatus related thereto
- H01L24/01—Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
- H01L24/18—High density interconnect [HDI] connectors; Manufacturing methods related thereto
- H01L24/19—Manufacturing methods of high density interconnect preforms
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L24/00—Arrangements for connecting or disconnecting semiconductor or solid-state bodies; Methods or apparatus related thereto
- H01L24/01—Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
- H01L24/18—High density interconnect [HDI] connectors; Manufacturing methods related thereto
- H01L24/20—Structure, shape, material or disposition of high density interconnect preforms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/18—Chip packaging
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Power Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Manufacturing & Machinery (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
레벨 패키지 라우팅을 위한 방법, 시스템, 및 비 일시적 컴퓨터 판독 가능 매체가 제공된다. 방법은 라우팅 리소스 그래프를 생성하기 위해 네트 세트에 대한 삼각측량을 수행하는 단계를 포함한다. 네트 세트의 물체들은 삼각측량 동안 제각기의 중심점에 의해 표현된다. 방법은 또한 적어도 총 비용에 기반하여 네트 세트의 물체들 간의 경로를 생성하는 단계를 포함한다. 총 비용은 적어도 라우팅 리소스 그래프에 기반하여 결정된다. 방법은 또한 제약 규칙이 충족되지 않는다는 결정에 기반하여 경로를 변경하는 단계 및 네트 세트에 대한 경로를 포함하는 라우팅 정보를 출력하는 단계를 포함한다.
Description
본 출원은 2019년 8월 12일에 출원된 미국 가특허 출원 번호 제62/885,504호의 35 U.S.C. § 119(e)에 따른 이익을 주장하며, 이 미국 출원은 모든 목적을 위해 그 전체가 본원에 참고로 포함된다.
본 개시 내용은 자동화된 통합 팬 아웃 웨이퍼 레벨 패키지 라우팅에 관한 것이다.
통합 팬 아웃(Integrated Fan-Out)(InFO) 웨이퍼 레벨 패키지는 기존 전자 패키지에서 기판을 제거하여, 보다 작은 사이즈, 보다 낮은 전력, 및 보다 높은 인터커넥트 밀도를 가능하게 한다. 이러한 패키지는 또한 로직, 메모리, 및 수동 컴포넌트를 컴팩트한 형태로 통합하는 데 도움을 준다. InFO 기술은 모바일 및 다른 중급(mid-range) 내지 고급(high-range)의 애플리케이션에서 인기를 얻고 있다.
InFO 패키지 설계 사이클은 핀 할당, 신호 라우팅, 전원/접지 라우팅, 전원/접지 평면 생성, 티어드롭(teardrop) 생성 등을 포함한 많은 단계를 포함한다. 라우팅은 설계 사이클의 주요 부분이다. InFO 패키지에 사용되는 복잡한 설계 규칙과 I/O 핀 수의 증가로 인해, 기존의 패키지 재배선 층(redistribution layer)(RDL) 라우터 또는 인쇄 회로 보드(printed circuit board)(PCB) 라우터는 완전히 자동화된 라우팅을 수행할 수 있는 용량이나 능력을 갖지 못하고 있다. 상당한 수동 개입이 요구된다.
일 양태에서, 방법은 라우팅 리소스 그래프를 생성하기 위해 네트 세트(a set of nets)에 대해 삼각측량(triangulation)을 수행하는 단계를 포함한다. 네트 세트의 물체들은 삼각측량 동안 제각기의 중심점에 의해 표현된다. 방법은 또한 적어도 총 비용에 기반하여 네트 세트의 물체들 간의 경로를 생성하는 단계를 포함한다. 총 비용은 적어도 라우팅 리소스 그래프에 기반하여 결정된다. 방법은 또한 제약 규칙이 충족되지 않는다는 결정에 기반하여 경로를 변경하는 단계 및 네트 세트에 대한 경로를 포함하는 라우팅 정보를 출력하는 단계를 포함한다.
일 양태에서, 시스템은 명령어를 저장하는 메모리, 및 메모리와 연결되고, 명령어를 실행하는 프로세서를 포함한다. 명령어는 실행 시 프로세서로 하여금 라우팅 리소스 그래프를 생성하기 위해 네트 세트에 대한 삼각측량을 수행하게 하고, 적어도 총 비용에 기반하여 네트 세트의 물체들 간의 경로를 생성하게 하고, 제약 규칙이 충족되지 않는다는 결정에 기반하여 경로를 변경하게 하고, 그리고 네트 세트에 대한 경로를 포함하는 라우팅 정보를 출력하게 한다. 네트 세트의 물체들은 삼각측량 동안 제각기의 중심점에 의해 표현된다. 총 비용은 적어도 라우팅 리소스 그래프에 기반하여 결정된다.
일 양태에서, 비 일시적 컴퓨터 판독 가능 매체는 저장된 명령어를 포함하고 있다. 명령어는 프로세서에 의한 실행 시 프로세서로 하여금, 라우팅 리소스 그래프를 생성하기 위해 네트 세트에 대한 삼각측량을 수행하게 하고 ― 상기 네트 세트의 물체들은 삼각측량 동안 제각기의 중심점에 의해 표현됨 ―; 적어도 총 비용에 기반하여 네트 세트의 물체들 간의 경로를 생성하게 하고 ― 상기 총 비용은 적어도 라우팅 리소스 그래프에 기반하여 결정됨 ―; 제약 규칙이 충족되지 않는다는 결정에 기반하여 경로를 변경하게 하고, 그리고 네트 세트에 대한 경로를 포함하는 라우팅 정보를 출력하게 한다.
본 개시 내용은 이하에 주어진 상세한 설명 및 본 개시 내용의 실시예의 첨부 도면으로부터 보다 완전하게 이해될 것이다. 도면은 본 개시 내용의 실시예에 대한 지식 및 이해를 제공하기 위해 사용되며, 본 개시 내용의 범위를 이러한 특정 실시예로 제한하지는 않는다. 게다가, 도면은 반드시 축척에 맞게 도시되는 것은 아니다.
도 1은 본 개시 내용의 실시예에 따른 통합 팬 아웃(InFO) 패키지 라우팅 흐름을 도시한 것이다.
도 2a는 본 개시 내용의 일 실시예에 따른 실제 레이아웃 형상을 도시한 것이다.
도 2b는 원형 형상을 팔각형으로 근사화하는 것을 도시한 것이다.
도 2c는 본 개시 내용의 일 실시예에 따른 중심점을 사용하여 원형 형상을 나타내는 것을 도시한 것이다.
도 3은 본 개시 내용의 일 실시예에 따른 라우팅 채널을 도시한 것이다.
도 4는 본 개시 내용의 일 실시예에 따른 검색 그래프 노드 및 에지를 도시한 것이다.
도 5는 본 개시 내용의 일 실시예에 따른 장애물의 사이즈를 고려한 용량 조정을 도시한 것이다.
도 6은 본 개시 내용의 일 실시예에 따른 장애물의 사이즈를 고려한 용량 조정을 도시한 것이다.
도 7은 본 개시 내용의 일 실시예에 따른 기존의 사전 경로를 고려한 용량 조정을 도시한 것이다.
도 8은 본 개시 내용의 일 실시예에 따른 기존의 사전 경로를 고려한 용량 조정을 도시한 것이다.
도 9는 본 개시 내용의 일 실시예에 따른 핀 확장 라우팅 예를 도시한 것이다.
도 10은 본 개시 내용의 일 실시예에 따른 핀 확장 라우팅 흐름을 도시한 것이다.
도 11은 본 개시 내용의 일 실시예에 따른 교차 검출의 예를 도시한 것이다.
도 12는 본 개시 내용의 일 실시예에 따른 커넥션 도중의 예각을 수정하는 예를 도시한 것이다.
도 13은 본 개시 내용의 일 실시예에 따라 커넥션 시작 또는 종료 시에 발생하는 예각을 수정하는 것을 도시한 것이다.
도 14는 본 개시 내용의 일 실시예에 따라 전원/접지 라우팅 예를 도시한 것이다.
도 15는 본 개시 내용의 일부 실시예에 따른 집적 회로의 설계 및 제조 동안 사용되는 다양한 공정의 흐름도를 도시한 것이다.
도 16은 본 개시 내용의 실시예가 동작할 수 있는 예시적인 컴퓨터 시스템의 추상도를 도시한 것이다.
도 1은 본 개시 내용의 실시예에 따른 통합 팬 아웃(InFO) 패키지 라우팅 흐름을 도시한 것이다.
도 2a는 본 개시 내용의 일 실시예에 따른 실제 레이아웃 형상을 도시한 것이다.
도 2b는 원형 형상을 팔각형으로 근사화하는 것을 도시한 것이다.
도 2c는 본 개시 내용의 일 실시예에 따른 중심점을 사용하여 원형 형상을 나타내는 것을 도시한 것이다.
도 3은 본 개시 내용의 일 실시예에 따른 라우팅 채널을 도시한 것이다.
도 4는 본 개시 내용의 일 실시예에 따른 검색 그래프 노드 및 에지를 도시한 것이다.
도 5는 본 개시 내용의 일 실시예에 따른 장애물의 사이즈를 고려한 용량 조정을 도시한 것이다.
도 6은 본 개시 내용의 일 실시예에 따른 장애물의 사이즈를 고려한 용량 조정을 도시한 것이다.
도 7은 본 개시 내용의 일 실시예에 따른 기존의 사전 경로를 고려한 용량 조정을 도시한 것이다.
도 8은 본 개시 내용의 일 실시예에 따른 기존의 사전 경로를 고려한 용량 조정을 도시한 것이다.
도 9는 본 개시 내용의 일 실시예에 따른 핀 확장 라우팅 예를 도시한 것이다.
도 10은 본 개시 내용의 일 실시예에 따른 핀 확장 라우팅 흐름을 도시한 것이다.
도 11은 본 개시 내용의 일 실시예에 따른 교차 검출의 예를 도시한 것이다.
도 12는 본 개시 내용의 일 실시예에 따른 커넥션 도중의 예각을 수정하는 예를 도시한 것이다.
도 13은 본 개시 내용의 일 실시예에 따라 커넥션 시작 또는 종료 시에 발생하는 예각을 수정하는 것을 도시한 것이다.
도 14는 본 개시 내용의 일 실시예에 따라 전원/접지 라우팅 예를 도시한 것이다.
도 15는 본 개시 내용의 일부 실시예에 따른 집적 회로의 설계 및 제조 동안 사용되는 다양한 공정의 흐름도를 도시한 것이다.
도 16은 본 개시 내용의 실시예가 동작할 수 있는 예시적인 컴퓨터 시스템의 추상도를 도시한 것이다.
본 개시 내용의 양태는 자동화된 통합 팬 아웃 웨이퍼 레벨 패키지 라우팅을 수행하는 방법 및 시스템에 관련된 것이다.
기존의 통합 팬 아웃(InFO) 패키지 라우팅은 예기치 않은 요구 사항 변경, 네트리스트 변경, 또는 모든 승인 확인(sign-off checking)을 통과하지 못한 경우 다수 회의 반복을 필요로 할 수 있다. 각 반복은 긴 런타임(long runtime)을 필요로 할 수 있으며, 이러한 런타임은 InFO 기술에 이용될 수 있는 I/O 핀 및 라우팅 층의 수에 따라 증가하게 된다.
기존 패키지 라우팅 솔루션은 일반적으로 45도 또는 90도 자동 라우팅만 가능하다. 일부 패키지 라우터 또는 인쇄 회로 보드(PCB) 라우터는 모든 각도 라우팅을 대화식으로 해결할 수 있지만 배치 모드(batch mode)에서는 해결할 수 없다. InFO 패키지에서 층의 수와 핀의 수가 증가함에 따라, 성공적인 라우팅을 달성하고 모든 자동 각도 라우팅을 가능하게 하려면, 각 네트마다 적절한 층 정렬과 정확한 라우팅 리소스 추정이 필수적이다.
InFO 웨이퍼 레벨 패키지에 대한 라우팅을 자동화하기 위한 접근 방식이 본원에서 기술된다. 라우팅을 자동화하기 위해 설명된 접근 방식은 기존의 전자 패키지에 비해, 보다 작은 사이즈, 보다 낮은 전력 및 보다 높은 인터커넥트 밀도를 가능하게 하는 동시에 설계 생산성을 향상시킨다. "모든 각도" 라우팅을 사용하여 라우팅 리소스(예컨대, 평면도)의 활용을 극대화할 수 있다. 본원에 기술되는 접근 방식은 모든 각도 경로에 필요한 리소스 추정을 정확하게 모델링하고, 모든 자동 각도 라우팅을 지원한다. 또한, 본원에 기술되는 접근 방식은 교차 경로들 간의 예각 위반(acute angle violations)에 대한 결정론적 일반 수정 솔루션을 체계적인 방식으로 제공한다.
자동화된 라우팅 흐름이 본원에서 기술된다. 자동화된 라우팅 흐름은 복잡한 InFO 라우팅 문제를 여러 단계로 나눈다. 모든 각도 경로에 대한 정확한 라우팅 리소스 추정, 스태킹 비아 규칙(stacking via rule)을 고려한 핀 확장 라우팅(pin escape routing), 간략 라우팅(coarse routing)에서의 교차 비용/길이 비용 고려, 세부 라우팅 중 예각 수정, 및 분리된 전원/접지 평면을 고려한 전원/접지 라우팅을 위한 방법이 본원에서 기술된다.
기존 라우팅 리소스 계획(전역적 계획)은 이용 가능한 라우팅 구역을 분리된 전역적 라우팅 셀(gcell) 세트로 분할하고, 각 gcell의 경계에서 공급/수요를 분석하는 것을 포함한다. 일반적인 InFO 설계는 높은 핀 카운트를 가지며, 이웃하는 핀들 간의 공간은 작고, 많아야 몇 개의 최소 폭 라우팅 트레이스를 수용할 수 있다. 파티션이 너무 많은 gcell을 생성하게 되면, gcell의 사이즈는 너무 작아서 하나의 패키지 라우팅 트레이스조차 수용할 수 없다. 본원에 기술된 접근 방식은 핀 또는 장애물에 대한 라우팅 리소스의 과도한 분할(over-fracturing)을 피하고, 라우팅 리소스의 대형 청크(big chunk)를 하나의 gcell로 유지하는 방법을 제공한다. 이하, gcell은 라우팅 채널(routing channel)이라고 지칭될 수도 있다.
일 실시예에서, 전역적 계획 후에, 2-핀 네트에 대한 경로를 순차적으로 생성하는 간략 라우팅이 수행된다. 간략 라우팅이 네트 라우팅 순서에 덜 민감해지도록 하기 위해 교차 비용이 도입되었다. 간략 라우팅은 또한 사용자 정의 제약(예컨대, 길이 매칭 제약)도 고려하고 있다. 간략 라우팅의 출력은 기존의 핀 또는 장애물과 관련한 각 2-핀 커넥션의 정확한 토폴로지를 정의한다(즉, 핀 또는 장애물의 좌측 또는 우측 중 어느 한 측에 있는 커넥션의 상대적 관계는 간략 라우팅 후에 결정된다).
일 실시예에서, 세부 라우터(detail router)는 설계 규칙을 위반하지 않고 간략 라우팅 결과를 바로잡을 수 있다. 본원에 기술된 세부 라우터는 패키지 라우팅에서 발생할 수 있는 교차하는 두 라우팅 경로 사이의 예각을 수정하기 위한 일반적인 솔루션을 제공하며, 패치를 추가하여 수정하려면 상당한 수작업이 필요하다.
일 실시예에서, 전원/접지 평면 인식 및 전원/접지 라우팅이 수행된다. 전원/접지 라우팅은 해당 전원/접지 평면에 대한 라우팅 패턴을 최적화하고, 분리된 동일한 네트의 평면들을 커넥트한다.
도 1은 본 개시 내용의 일 실시예에 따른 InFO 패키지 라우팅 흐름(100)을 도시한 것이다. 라우팅 흐름(100)은 모든 네트를 커넥트하고 설계 규칙 및 사용자 제약을 충족시키는 라우팅 경로/비아를 출력하는 동시에, 범프, I/O 핀, 및 매크로 핀의 세트를 포함하는 InFO 설계에 대한 전체 배선 길이 및 비아 카운트를 최소화한다.
단계 102에서, 바로 인접한 핀 사이의 단거리 경로가 생성된다. 이러한 단거리 라우팅은 라우팅 리소스 모델링 이전에 수행된다. 즉, 라우팅 리소스 모델링 이전에 단거리 커넥션이 커넥트된다. 두 개의 핀이 동일한 층 상에서 바로 이웃하는 것인 경우(즉, 두 개의 핀 사이에 제3 핀이 존재하지 않는 경우) 바로 인접한 것으로 간주되고, 초단거리 배선에 의해 커넥트될 수 있다. 두 개의 핀이 x/y 위치(즉, 층 내의 수평 위치 또는 포지션)에서 중첩되지만 인접한 층 상에 상주하는 경우 바로 인접한 것으로 또한 간주되고, 비아를 통해 커넥트될 수 있다.
단계 104에서, 범프, 핀, 및/또는 비아의 세트에 대해 삼각측량(예컨대, 들로네 삼각측량(Delaunay triangulation))을 수행하여, 라우팅 리소스 그래프(즉, 라우팅 검색 그래프)를 구축한다. 삼각측량은 라우팅 구역을 각 영역이 삼각형인 분리된 라우팅 영역으로 분할하기 위해 패키지 라우팅에 사용되는 기법이다. 삼각측량은 점 세트를 입력으로 사용하고 삼각형 세트를 출력하며, 그에 따라 삼각형들의 합은 라우팅 구역과 같아지게 된다. 경계에서 두 개의 이웃하는 삼각형이 공통 에지를 공유하는 것을 제외하고는 삼각형들은 서로 중첩되지 않는다. 본원에 기술된 방법은 원형 또는 원형에 가까운 핀/비아 물체들의 모델링을 통해 삼각측량에서 생성된 삼각형의 수를 최소화하여, 단계 108에서 전역적 계획을 단순화한다.
단계 106에서, 시험 라우팅(trial route)을 수행하여 각각의 2-핀 네트에 대한 1차 라우팅 층을 결정한다. 패키지 라우팅은 주로 단일 층 라우팅이다. 다른 층 상의 제한된 라우팅을 추가하여 상이한 층에 상주하는 소스 핀 또는 타겟 핀에 도달할 수 있게 된다. 시험 라우팅(trial routing)은 네트들에 대해 순차적으로 수행된다. 네트들의 라우팅 순서는 네트 임계치에 기반할 수 있다. 예를 들어, 차폐/매칭/타이밍 제약을 가진 네트는 보다 높은 임계치를 가지며, 다른 네트보다 먼저 라우팅될 수 있다. 시험 라우팅의 출력은 각 2-핀 네트마다 라우팅 층(즉, 1차 라우팅 층)을 할당한다.
단계 108에서, 각 라우팅 계층에 대한 라우팅 순서와 무관하게 각 신호 네트에 대한 전역적 계획이 수행된다. 라우팅 검색 그래프의 모든 에지에 대한 혼잡으로 인한 라우팅 용량 및 라우팅 비용은 아래에서 추가로 기술되는 바와 같이 결정된다. 본원에 기술된 방법은 기존의 사전 경로의 존재 여부에 관계없이 모든 각도 경로 라우팅을 위한 라우팅 검색 그래프의 모든 에지의 라우팅 용량을 정확하게 결정한다.
단계 110에서, 2-핀 네트마다 순차적인 간략 라우팅을 수행하여, 2-핀 네트 커넥션이 교차하는 모든 삼각형 에지를 식별한다. 106에서 수립된 라우팅 층을 지정하기 위해 핀 층으로부터 단거리 라우팅을 수행하는 핀 확장 라우팅(pin escape routing)이 수행된다. 단일 층 간략 라우터는 108에서 수립된 라우팅 검색 그래프에 기반하여 최소 비용 검색을 수행할 수 있다. 간략 라우팅 출력은 각 2-핀 네트에 대해 기존의 핀/장애물과 관련하여 결정론적 토폴로지를 갖는다.
단계 112에서, 설계 규칙을 위반하지 않고, 세부 라우팅을 수행하여 각각의 간략 라우팅 커넥션을 바로잡는다. 각 교차 에지에 대해 교차점의 정확한 좌표를 결정하고, 설계 규칙을 충족시키면서 배선 길이를 최소화한다. 간략 라우팅 결과에는 불필요한 굴곡(bends)이 있을 수 있다. 세부 라우팅은 설계 규칙을 위반하지 않고 루즈한 커넥션을 바로잡는다/타이트하게 한다.
단계 114에서, 전원/접지 네트에 대해 라우팅을 수행하여, 전원/접지 핀을 가장 가까운 전원/접지 평면에 커넥트하거나 2개의 분리된 전원/접지 평면을 커넥트한다. 본원에 기술된 전원/접지 라우팅에 대한 접근 방식은 아래에서 추가로 기술되는 바와 같이 기존의 패키지 라우터에 의해 핸들링되지 않은 분리된 전원/접지 평면들 간의 커넥션을 핸들링한다.
일 실시예에서, 경로는 아래에서 추가로 기술되는 바와 같이 제약 규칙이 충족되지 않는다는 결정(예컨대, 예각)에 기반하여 변경된다. 또한, 네트에 대한 경로를 포함하는 라우팅 정보가 출력될 수 있다.
도 1의 흐름도의 위의 단계들 중 일부는 도면에 도시되고 기술된 순서와 다른 순서 또는 시퀀스로 실행되거나 수행될 수 있다는 것을 이해해야 한다. 또한, 위의 단계들 중 일부는 다른 단계보다 훨씬 앞서 수행될 수 있거나, 실질적으로 동시에 또는 병렬로 실행 또는 수행될 수 있다. 예를 들어, 단계 106 및 단계 108은 동시에 수행될 수 있다.
도 2a는 본 개시 내용의 일 실시예에 따른, InFO 패키지 설계에서 범프 또는 핀의 실제 레이아웃 형상을 도시한 것이다. InFO 패키지 설계에서, 범프 또는 핀은 일반적으로 원형(예컨대, 202a, 202b, 202c) 또는 거의 원형(예컨대, 직사각형)이다. 삼각측량에 대한 입력은 일반적으로 점 세트를 사용하므로, 각 레이아웃 다각형은 삼각측량 전에 점으로 변환된다. 일반적으로, 다각형의 정점은 삼각측량의 입력인 것으로 선택된다. 전통적으로, 원형 범프/핀은 팔각형으로 근사화된다. 팔각형 정점에 대해 CDT(Constrained Delaunay triangulation)를 수행하게 되면, 자유 라우팅 구역은 도 2b에 도시된 바와 같이 많은 작은 삼각형으로 분할된다.
도 2b는 원형 형상을 팔각형(204a, 204b, 204c)으로 근사화하는 것을 도시한 것이다. CDT를 수행하게 되면, 3개의 원형 물체(예컨대, 202a, 202b, 202c) 사이에 많은 작은 삼각형이 생성된다. 각 삼각형(예컨대, 208)은 gcell이다. 작은 삼각형은 하나의 패키지 라우팅 트레이스조차 수용할 수 없기 때문에, 리소스 계획(도 1의 단계 108)을 보다 어렵고 덜 효과적이게 만든다. 핀 카운트가 높고 패키지 사이즈가 작은 일반적인 InFO 패키지 설계에서, 두 개의 이웃하는 핀 사이의 공간은 많아야 두 개의 최소 폭 트레이스를 수용할 수 있다.
도 2c는 본 개시 내용의 일 실시예에 따른 중심점을 사용하여 원형 형상을 나타내는 것을 도시한 것이다. 원형 형상(202a, 202b, 202c)은 원형 형상의 중심점(206a, 206b, 206c)을 사용하여 표현된다. CDT는 중심점에 대해 수행된다. 중심점(206a, 206b, 206c)에 대해 CDT를 수행하게 되면, 삼각측량이 보다 간단해진다. 삼각형(210)은 도 2b의 삼각형(예컨대, 삼각형(208))보다 훨씬 더 크다. 보다 큰 삼각형은 (예컨대, 도 1의 단계 108에서) 리소스 전역적 계획을 용이하게 한다. 즉, 세 개의 원형 물체 사이의 라우팅 구역은 하나의 gcell로서 유지된다.
후술되는 바와 같이 라우팅 리소스 그래프의 에지 용량을 결정하는 경우, 원형 형상의 사이즈에 따른 라우팅 리소스에 미치는 영향이 고려된다.
(예컨대, 도 1의 단계 108에서 수행되는) 전역적 계획의 목적 중 하나는 단계 104에서 생성된 모든 삼각형에 대해 단락 또는 간격 위반을 일으키지 않고, 삼각형 에지를 동시에 교차할 수 있는 트레이스의 수를 결정할 수 있는 라우팅 용량 값을 수립하는 것이다. 단계 104에서 생성된 각 삼각형은 라우팅 채널을 나타낸다.
도 3은 본 개시 내용의 일 실시예에 따른 라우팅 채널(300)을 도시한 것이다. AD, BE, CF는 각각 라우팅 채널(300)의 대응하는 베이스 에지에 대한 고도선이 된다. 한 쌍의 교차 에지에 기반하여 삼각형 채널(300)을 통해 라우팅하는 세 가지 가능한 방법이 있다. 각 에지 쌍에 대해 채널 용량이 결정된다. 라우팅 채널(300)은 3개의 채널 용량 수와 연관된다. 예를 들어, 쌍 AB와 AC, 쌍 BC와 BA, 및 쌍 CA와 CB에 대한 채널 용량이 결정된다.
일 실시예에서, 장애물(물체 A, B, C)이 0 치수를 가질 때 라우팅이 고도선에 수직인 경우 다음의 관계가 성립된다. AB와 AC 쌍의 용량은 AD의 길이와 같다. BC와 BA 쌍의 용량은 BE의 길이와 같다. CA와 CB 쌍의 용량은 CF의 길이와 같다.
도 4는 본 개시 내용의 일 실시예에 따른 검색 그래프 노드 및 에지를 도시한 것이다. 라우팅 검색 그래프 노드는 (예컨대, 도 1의 단계 104에서) CDT로부터 생성된 각 삼각형의 중간점 및 (예컨대, 도 1의 단계 104에서) CDT에 의해 생성된 소스/타겟 노드를 포함한다. 라우팅 검색 그래프(400)의 경우, 에지(v1, v2)는 에지 AB로부터 라우팅 채널(300)에 진입하고, 에지 AC로부터 삼각형을 빠져나가는 경로를 나타낸다. 에지(v1, v3)는 에지 AB로부터 라우팅 채널(300)에 진입하고, 에지 BC로부터 라우팅 채널(300)을 빠져나가는 경로를 나타낸다. 에지(v2, v3)는 에지 AC로부터 라우팅 채널(300)에 진입하고, 에지 BC로부터 라우팅 채널(300)을 빠져나가는 경로를 나타낸다.
도 5는 본 개시 내용의 일 실시예에 따른 장애물의 사이즈를 고려한 용량 조정을 도시한 것이다. 라우팅 채널 용량 결정은 또한 장애물 사이즈의 함수이다. 장애물 A는 원형 물체이고, 반경 C를 갖는다. A가 점이라고 가정할 때 C(R1)은 라우팅 R1의 용량이라고 한다. A가 원이라고 가정할 때 C'(R1)은 R1의 실제 용량이라고 한다. 따라서, C'(R1)=C(R1)-C(원)이다.
도 6은 본 개시 내용의 일 실시예에 따른 장애물의 사이즈를 고려한 용량 조정을 도시한 것이다. 일 실시예에서, C(원 A), C(원 B), 및 C(원 C)는 각각 정점 A, B, 및 C에서 원형 장애물 형상의 반경을 나타낸다. A, B, 및 C 장애물의 사이즈를 고려한 R1의 실제 용량은 C''(R1)=C(R1)-C(원 A)-max(C(원 B), C(원 C))이고, 여기서 C(R1)는 A, B, 및 C 장애물이 단일 점일 때 라우팅 R1의 용량이다.
일 실시예에서, InFO 설계는 기존의 배선/비아(즉, 사전 경로)를 포함할 수 있다. 기존의 사전 경로가 이동 또는 수정될 수 없는 경우 삼각형 채널에 기존의 사전 경로가 제공된다면 남아 있는 채널 용량이 결정된다.
도 7은 본 개시 내용의 일 실시예에 따른 기존의 사전 경로에 기반한 용량 조정을 도시한 것이다. 개략도(700)는 BC에 평행한 사전 경로 a-a' 및 AC에 평행한 b-b'(R2)를 도시한 것이다. R1과 R2는 서로 다른 방향으로 가는 라우팅을 나타낸다. R1은 교차 에지 AB 및 AC를 라우팅하는 것을 나타낸다. R2은 교차 에지 AB 및 BC를 라우팅하는 것을 나타낸다.
C(R1|R2)가 사전 경로 R2가 존재하는 상태에서 R1의 남아 있는 용량을 나타내면, C(R1|R2)=C(R1)-F(R2)이고, 여기서 C(R1)은, R2가 존재하지 않는 경우 R1의 총 용량이 되고, F(R2)는 R2의 존재로 인해 감소된 용량이 된다.
도 8은 본 개시 내용의 일 실시예에 따른 기존의 사전 경로를 고려한 용량 조정을 도시한 것이다. 개략도(800)는 사전 경로 a-a'가 BC에 평행하고, b-b'가 AC에 평행하고, c-c'가 AB에 평행하다는 것을 도시한 것이다. R1은 교차 에지 AB 및 AC를 라우팅하는 것을 나타낸다. R2은 교차 에지 AB 및 BC를 라우팅하는 것을 나타낸다. R3은 교차 에지 AC 및 BC를 라우팅하는 것을 나타낸다. C(R1|{R2, R3})가 사전 경로 R2 및 R3이 존재하는 상태에서 R1의 남아 있는 용량이라고 하면, C(R1|{R2, R3)=C(R1)-max(F(R2), F(R3))이고, 여기서 C(R1)은 R2/R3가 존재하지 않는 경우 R1의 총 용량이 되고, F(R2)는 R2가 존재함으로 인해 감소된 용량이 되고, 그리고 F(R3)은 R3의 존재로 인해 감소된 용량이 된다.
간략 라우팅(도 1의 단계 110)은 도 1의 단계 106에서 결정된 1차 라우팅 층에 대한 핀 확장 라우팅 및 단일 층 라우팅을 포함한다. 핀 확장 라우팅의 목적은 도 1의 단계 106(즉, 시험 라우팅)에서 수립된 2-핀 네트에 대한 1차 라우팅 층에 도달하기 위해 핀으로부터 단거리 커넥션을 생성하는 것이다. 본원에 기술된 핀 확장 라우팅은 배선 길이를 최적화하면서 특정 네트에 대해 지정된 층에 도달하기 위해 스태킹 비아 규칙과 모든 각도 요구 사항을 고려한다.
도 9는 본 개시 내용의 일 실시예에 따른 핀 확장 라우팅 예를 도시한 것이다. 일 예에서, M3 핀 A는 902에 도시된 바와 같이 M1 핀 B를 향해 라우팅될 수 있다. 일 예에서, M3-M2 및 M2-M1은 넌 스태킹 비아(non-stacking via) 규칙을 갖는다. 도 1의 단계 110에서 일반적인 단일 층 라우팅(즉, 간략 라우팅)을 수행하기 전에 핀 A에 대해 핀 확장 라우팅을 먼저 수행하여 핀 A를 M3에서 M1로 확장한다.
일 실시예에서, M3은 지그재그 45도 넌 스태킹 비아(zig-zag 45-degrees non-stacking via)를 필요로 할 수 있고, M2는 모든 각도의 넌 스태킹 비아(any-angle non-stacking via)를 필요로 할 수 있다. M3에서 M2로 확장하려면, 규칙이 지그재그 패턴을 필요로 할 수 있기 때문에, 핀 확장 라우터는 핀 B를 향해 설계 규칙 체크(design rule check)(DRC) 클린 45도 지그재그 경로(clean 45-degrees zig-zag path)를 생성하고, A'에 M3-M2 비아를 생성한다. 주목할 것은, 임의의 형상에 DRC 위반이 있는 경우, 핀 확장 라우터는 최단거리 배선 길이를 갖는 다른 대체 지그재그 경로를 생성한다는 것이다. 904로 도시된 바와 같이 M3-M2 비아가 생성된 후, 핀 확장 라우터는 핀 B를 향해 확장 경로 및 비아를 지속적으로 생성한다. 확장 공정은 A'에서 핀 B를 향해 반복되지만, 차이점은 M2가 지그재그 45도 규칙보다는 모든 각도 규칙을 갖는다는 것이다. 따라서, 라우터는 906으로 도시된 바와 같이 A''에서 핀 B를 향하는 직선 경로 및 M2-M1 비아를 생성하고, 핀 확장 공정을 완료한다.
도 10은 본 개시 내용의 일 실시예에 따른 핀 확장 라우팅 흐름(1000)을 도시한 것이다. 일 실시예에서, 핀 확장 라우팅 흐름은 간략 라우팅 전에 실행된다. 타겟 층은 도 1의 단계 106에서 결정된 2-핀 네트에 대해 지정된 층이다.
단계 1002에서, 현재 형상을 시작 핀으로 설정한다.
단계 1004에서, 현재 형상이 타겟 층 상에 있는지 여부를 결정한다. 현재 형상이 타겟 층 상에 있다는 결정에 응답하여 공정은 종료된다. 현재 형상이 타겟 층 상에 있지 않다는 결정에 응답하여, 공정은 단계 1006으로 진행한다.
단계 1006에서, 시작 핀이 적층될 수 있는지 여부를 결정한다. 시작 핀이 적층될 수 있다는 결정에 응답하여, 공정은 단계 1014로 진행한다. 핀이 적층될 수 없다는 결정에 응답하여, 공정은 단계 1008로 진행한다.
단계 1008에서, 최단거리 배선 길이를 갖는 확장 경로를 선택한다.
단계 1014에서, 현재 형상의 중심에 비아를 생성한다.
단계 1010에서 설계 규칙 체크(design rule check)(DRC) 확인을 수행한다. DRC가 클린 상태라는 결정에 응답하여, 공정은 단계 1012로 진행한다. DRC가 클린 상태가 아니라는 결정에 응답하여, 공정은 단계 1008로 되돌아간다.
단계 1012에서, 확장 경로 패턴의 말단에 비아를 생성한다. 그 후, 공정은 단계 1016으로 진행한다. 단계 1016에서, 현재 형상을 비아로 설정한다. 그 후, 공정은 단계 1004로 되돌아간다.
단일 층 간략 라우팅은 간략 라우팅의 제2 단계(즉, 도 1의 단계 110)이다. 동일한 층으로 라우팅된 다른 네트로부터의 커넥션들 간에는 교차가 허용되지 않는다. 본원에 기술된 간략 라우팅은 길이 매칭 및 차폐 제약 조건 하에서 전체 라우팅 패턴을 최적화하기 위해 내장된 교차 및 길이 비용을 갖는다.
간략 라우터는 도 4에 기술된 검색 그래프를 통해 소스 노드에서 타겟 노드까지 검색하는 비용 기반 라우터이다. 각각의 검색 그래프 에지는 기존의 사전 경로가 없을 경우 도 6에 도시된 식에 의해 계산되거나 기존의 사전 경로가 있는 경우 도 7 및 도 8에 기술된 바와 같은 식에 의해 계산된 초기 용량을 갖는다. 검색 그래프 에지를 통해 네트를 라우팅하게 되면, 네트의 라우팅 피치만큼 검색 그래프 에지에 대한 수요가 증가하게 된다. 간략 라우팅은 모든 네트를 일일이 순차적으로 라우팅할 수 있다. 다음의 비용: 즉, 추정된 라우팅되는 배선 길이 비용, 현재 점에서 타겟 점까지의 추정된 필요한 배선 길이 비용, 우회 비용, 오버플로우 비용, 교차 비용, 및 길이 매칭 비용이 고려된다. 차폐 제약은 차폐 설정(예컨대, 갭, 간격 등)에 의해 계산되는 추가 수요를 추가하며, 이러한 추가 수요는 오버플로우 비용에 의해 모델링될 수 있다.
비용은 교차 비용 및 길이 매칭 비용을 포함한다. 검색 그래프 노드 상의 레코딩된 라우팅 순서를 확인함으로써 두 네트 간의 교차를 검출한다.
도 11은 본 개시 내용의 일 실시예에 따른 교차 검출의 예를 도시한 것이다. 일 예에서, 네트 A는 먼저 그래프 1102에 도시된 바와 같이 라우팅된다. 검색 그래프 노드 3을 통해 네트 B를 노드 1로 라우팅하는 경우, 간략 라우터는 현재 및 이전 삼각측량 메시 검색 그래프 노드(즉, 노드 1 내지 5)를 확인하여, 현재 라우팅이 이전에 라우팅된 네트와의 교차를 유발할 수 있는지를 결정한다. 그래프 1104에서, 각 검색 그래프 노드는 라우팅된 네트의 순서를 레코딩하므로, 검색 그래프 노드 1 내지 5를 확인하게 되면, 네트 A와 네트 B가 교차하는 것을 검출할 수 있게 된다. 교차는 교차가 검출되는 경우 비용으로서 모델링된다.
길이 매칭 비용은 주어진 검색 그래프 노드에서 현재 추정된 배선 길이와 목표 배선 길이 간의 차이를 계산함으로써 모델링된다. 일 예에서, 두 개의 네트 A와 B는 길이 매칭 제약을 갖는다. 네트 A의 핀 대 핀 거리는 10이고, 네트 B의 핀 대 핀 거리는 5이다. 그러면, 네트 B의 목표 배선 길이는 10이 된다. 네트 B에 대한 검색 그래프 노드의 비용을 결정하는 경우, 간략 라우터는 먼저 소스 노드로부터 현재 노드를 경유하여 네트 B에 대한 타겟 노드까지의 추정된 배선 길이 L을 계산할 수 있다. 그런 다음, 간략 라우터는 L과 네트 A의 핀 대 핀 거리 사이의 절대 차이를 비용으로서 계산할 수 있다.
교차하는 두 경로 사이의 예각은 일반적으로 패키지 라우팅에서 설계 규칙 위반으로 간주된다. 예각은 0°보다 크지만 90°보다 작은 각이다. 예각은 세부 라우팅에서(예컨대, 도 1의 단계 112에서) 생성될 수 있다. 라우팅에서 예각을 제거하는 동시에 최소 세그먼트 길이 또는 간격 규칙을 충족시키는 2-스테이지 예각 수정 휴리스틱(two-stage acute angle fixing heuristic)이 본원에 기술된다.
도 12는 본 개시 내용의 일 실시예에 따른 커넥션 도중의 예각을 수정하는 예를 도시한 것이다. 예각 ∠ABC가 세부 라우팅 동안의 커넥션 도중에 생성된다. 예각은 제3 세그먼트 B1-B2를 추가함으로써 수정될 수 있다. B-B1의 길이는 B-B2의 길이와 같다. 또한, 제3 세그먼트 B1-B2의 길이는 최소 공정 간격 또는 최소 공정 세그먼트 길이 이상이다. 새로 형성된 경로 A-B1-B2-C에는 예각이 존재하지 않는다. 각도 BB1B2와 각도 BB2B1은 모두 예각이다. 따라서, 각도 CB2B1=각도 AB1B2=180°-각도 BB1B2>90°이다.
도 13은 본 개시 내용의 일 실시예에 따라 커넥션의 시작 또는 종료 시에 발생하는 예각을 수정하는 것을 도시한 것이다. CD는 이미 존재하는 세그먼트이고 수정될 수 없다고 가정한다. 새 커넥션 AB가 생성되고 있다. 커넥션 AB는 점 B에서 CD와 교차한다. 일 예에서, 결과적인 각도 ABD는 예각이다. 예각은, 길이(BBi)=길이(BBi')(i=1, 2, 3…)가 되는 일련의 인접 패치 세그먼트 B1B1', B2B2', B3B3' 등을 추가함으로써 수정될 수 있다. 패칭 공정은, 마지막 세그먼트 BiBi'가 최소 공정 간격 또는 최소 공정 세그먼트 길이보다 작지 않은 BiBi'의 길이를 가지게 되면, 중지된다.
전원/접지 평면을 인식하는 전원/접지 라우터가 본원에 기술된다. 전원/접지 라우터는 평면에 대해 직접적인 단거리 커넥션뿐만 아니라 휴리스틱을 통한 분리된 동일한 네트의 평면들의 커넥션을 위해 전원/접지 라우팅 패턴을 최적화한다.
도 14는 본 개시 내용의 일 실시예에 따라 전원/접지 라우팅 예를 도시한 것이다. 일 예에서, 설계물은 전원 도메인에 대한 2개의 전원 평면, 즉 M1 평면 가이던스(1402) 및 M2 평면 가이던스(1404)를 필요로 할 수 있다. M2 전원 핀은 M1 평면 가이던스(1402) 내에 있고, M3 전원 핀은 M2 평면 가이던스(1404) 내에 있다.
전원/접지 라우터는 먼저 도 10에 도시되고 기술된 핀 확장 라우팅 방법을 사용하여 전원 핀을 제각기의 최인접 평면으로 확장할 수 있다. 그런 다음, 라우터는 소스로서 사용할 핀을 식별하고, 분리된 평면을 커넥트하기 위한 타겟으로서 가상 핀을 생성할 수 있다. 소스에서 타겟으로의 라우팅은 간략 라우팅(즉, 도 1의 단계 110)에서 기술된 것과 동일한 라우팅 기법을 사용한다.
도 15는 집적 회로를 나타내는 설계 데이터 및 명령어를 변환 및 검증하기 위해 집적 회로와 같은 제조 물품의 설계, 검증, 및 제조 동안 사용되는 예시적인 공정 세트(1500)를 도시한 것이다. 이러한 각 공정은 다수의 모듈 또는 동작으로서 구성되고 활성화될 수 있다. 'EDA'라는 용어는 '전자 설계 자동화(Electronic Design Automation)'라는 용어를 의미한다. 이러한 공정은 설계자가 제공한 정보로 제품 아이디어(1510)를 구상하는 것으로 시작하며, 이 정보는 EDA 공정(1512) 세트를 사용하는 제조 물품을 생성하도록 변환된다. 설계가 완료되면, 설계가 테이프 아웃(tape out)(1534)되며, 이는 집적 회로에 대한 아트워크(artwork)(예: 기하학적 패턴)가 마스크 세트를 제조하기 위해 제조 시설로 보내지는 시점이고, 마스크 세트는 그 후 집적 회로를 제조하는 데 사용된다. 테이프 아웃 후, 반도체 다이를 제조하고(1536) 패키징 및 조립 공정(1538)을 수행하여 완성된 집적 회로(1540)를 생성한다.
회로 또는 전자 구조에 대한 지정은 로우 레벨의 트랜지스터 재료 레이아웃에서 하이 레벨의 디스크립션 랭귀지에 이르기까지 다양할 수 있다. VHDL, Verilog, SystemVerilog, SystemC, MyHDL, 또는 OpenVera와 같은 하드웨어 디스크립션 랭귀지(hardware description language)('HDL')를 사용하여 회로 및 시스템을 설계하는 데 하이 레벨의 추상화가 사용될 수 있다. HDL 디스크립션은 로직 레벨의 레지스터 전사 레벨(register transfer level)('RTL') 디스크립션, 게이트 레벨 디스크립션, 레이아웃 레벨 디스크립션, 또는 마스크 레벨 디스크립션으로 변환될 수 있다. 덜 추상적인 디스크립션인 각각의 보다 로우 레벨의 추상화는 설계 디스크립션에 대해 보다 유용한 세부 사항, 예를 들어, 디스크립션을 포함하는 모듈들에 대한 보다 많은 세부 사항을 추가한다. 덜 추상적인 디스크립션인 보다 로우 레벨의 추상화는 컴퓨터에 의해 생성되거나, 설계 라이브러리에서 유도되거나, 또는 다른 설계 자동화 공정에 의해 생성될 수 있다. 보다 로우 레벨의 추상화 랭귀지에서 보다 세부 디스크립션을 지정하기 위한 지정 랭귀지의 예는 SPICE이며, 이는 많은 아날로그 컴포넌트를 갖는 회로의 세부 디스크립션을 위해 사용된다. 각 추상화 레벨에서의 디스크립션은 해당 층의 해당 툴(예컨대, 형식적 검증 툴)에 의한 사용을 위해 활성화된다. 설계 공정은 도 15에 도시된 시퀀스를 사용할 수 있다. 기술된 공정은 EDA 제품(또는 툴)에 의해 활성화될 수 있다.
시스템 설계(1514) 동안, 제조될 집적 회로의 기능이 지정된다. 설계는 전력 소비, 성능, 면적(물리적 및/또는 코드 라인), 비용 절감 등과 같은 원하는 특성에 맞게 최적화될 수 있다. 이 스테이지에서 설계를 다양한 타입의 모듈 또는 컴포넌트로 분할할 수 있다.
로직 설계 및 기능 검증(1516) 동안, 회로 내의 모듈 또는 컴포넌트는 하나 이상의 디스크립션 랭귀지로 지정되고 이러한 지정은 기능적 정확성에 대해 검사된다. 예를 들어, 회로의 컴포넌트들을 검증하여 설계 중인 회로 또는 시스템의 사양의 요구 사항과 매칭되는 출력을 생성할 수 있다. 기능 검증은 시뮬레이터, 및 다른 프로그램, 예를 들어, 테스트벤치 생성기, 정적 HDL 검사기, 및 형식 검증기를 사용할 수 있다. 일부 실시예에서, '에뮬레이터' 또는 '프로토타이핑 시스템'으로 지칭되는 컴포넌트의 특수 시스템은 기능 검증의 속도를 높이는 데 사용된다.
테스트를 위한 합성 및 설계(1518) 동안 HDL 코드는 네트리스트(netlist)로 변환된다. 일부 실시예에서, 네트리스트는 그래프 구조일 수 있고, 이 그래프 구조의 에지는 회로의 컴포넌트를 나타내고, 이 그래프 구조의 노드는 컴포넌트들이 인터커넥트되는 방식을 나타낸다. HDL 코드와 네트리스트는 모두, EDA 제품에 의해, 집적 회로가 제조 시 지정된 설계에 따라 수행하는지를 검증하는 데 사용될 수 있는 계층적 제조 물품이다. 네트리스트는 목표 반도체 제조 기술에 맞게 최적화될 수 있다. 추가적으로, 완성된 집적 회로를 테스트하여 집적 회로가 사양의 요구 사항을 충족한다는 것을 검증할 수 있다.
네트리스트 검증(1520) 동안, 네트리스트는 타이밍 제약을 준수하고 HDL 코드와 일치하는지에 대해 확인된다. 설계 계획(1522) 동안, 집적 회로에 대한 전체 평면도가 구성되고 타이밍 및 상단 레벨 라우팅(top-level routing)에 대해 분석된다.
레이아웃 또는 물리적 구현(1524) 동안, 물리적 배치(트랜지스터 또는 캐패시터와 같은 회로 컴포넌트의 위치 지정) 및 라우팅(다수의 도체에 의한 회로 컴포넌트들의 커넥션)이 발생하고, 특정 로직 기능을 활성화하기 위해 라이브러리로부터 셀 선택이 수행될 수 있다. 본원에서 사용되는 바와 같이, 용어 '셀'은 부울 로직 기능(예컨대, AND, OR, NOT, XOR) 또는 저장 기능(예컨대, 플립플롭 또는 래치)을 제공하는 트랜지스터, 다른 컴포넌트, 및 인터커넥션의 세트를 지정할 수 있다. 본원에서 사용되는 바와 같이, 회로 '블록'은 둘 이상의 셀을 지칭할 수 있다. 셀과 회로 블록은 모두 모듈 또는 컴포넌트라고 지칭될 수 있으며, 물리적 구조로서 활성화될 수 있고 시뮬레이션에서 활성화될 수 있다. 파라미터는 사이즈와 같은 선택된 셀에 대해('표준 셀'에 기반하여) 지정되며, EDA 제품에 의해 사용되도록 데이터베이스에서 액세스 가능하게 만들어진다.
분석 및 추출(1526) 동안, 회로 기능은 레이아웃 설계의 개선을 가능하게 하는 레이아웃 레벨에서 검증된다. 물리적 검증(1528) 동안, 레이아웃 설계를 검사하여, DRC 제약, 전기적 제약, 리소그래피 제약과 같은 제조 제약이 정확하고 회로 기능이 HDL 설계 사양과 매칭된다는 것을 확인한다. 해상도 향상(1530) 동안, 레이아웃의 기하학적 구조는 회로 설계물이 제조되는 방법을 개선하도록 변환된다.
테이프 아웃 동안, (적절한 경우 리소그래피 향상이 적용된 후) 리소그래피 마스크의 생산에 사용할 데이터가 생성된다. 마스크 데이터 준비(1532) 동안, '테이프 아웃' 데이터를 사용하여, 완성된 집적 회로를 생성하는 데 사용되는 리소그래피 마스크를 생성한다.
컴퓨터 시스템(예를 들어, 도 16의 컴퓨터 시스템(1600))의 저장 서브 시스템은 본원에 기술된 EDA 제품의 일부 또는 전부에 의해 사용되는 프로그램 및 데이터 구조를 저장하는 데 사용될 수 있고, 그리고 라이브러리를 위한 셀 개발 용으로 그리고 라이브러리를 사용하는 물리적 및 논리적 설계 용으로 사용되는 제품을 저장하는 데 사용될 수 있다.
도 16은 컴퓨터 시스템(1600)의 예시적인 머신을 도시한 것으로, 이러한 머신 내의 명령어 세트는 머신으로 하여금 본원에서 논의된 임의의 하나 이상의 방법을 수행하게 하도록 실행될 수 있다. 대안적인 구현예에서, 이러한 머신은 LAN, 인트라넷, 엑스트라넷, 및/또는 인터넷의 다른 머신에 커넥트(예컨대, 네트워크)될 수 있다. 이러한 머신은 클라이언트-서버 네트워크 환경에서 서버 또는 클라이언트 머신의 자격으로, 피어 투 피어(또는 분산) 네트워크 환경에서 피어 머신으로서, 또는 클라우드 컴퓨팅 인프라 또는 환경에서 서버 또는 클라이언트 머신으로서 동작할 수 있다.
이러한 머신은 퍼스널 컴퓨터(PC), 태블릿 PC, 셋탑 박스(STB), PDA(personal digital assistant), 셀룰러 전화기, 웹 기기, 서버, 네트워크 라우터, 스위치 또는 브릿지일 수 있거나, 또는 해당 머신에 의해 취해질 동작을 지정하는 (순차적인 또는 다른 방식의) 명령어의 세트를 실행할 수 있는 임의의 머신일 수 있다. 또한, 하나의 머신이 도시되어 있지만, "머신"이라는 용어는 본원에서 논의된 임의의 하나 이상의 방법을 수행하는 명령어의 세트(또는 다수의 세트)를 개별적으로 또는 공동으로 실행하는 임의의 머신 집합체를 포함하는 것으로 또한 간주될 것이다.
예시적인 컴퓨터 시스템(1600)은 처리 디바이스(1602), 메인 메모리(1604)(예컨대, 판독 전용 메모리(ROM), 플래시 메모리, 동적 랜덤 액세스 메모리(dynamic random access memory)(DRAM), 예를 들어, 동기식 DRAM (SDRAM), 정적 메모리(1606)(예컨대, 플래시 메모리, 정적 랜덤 액세스 메모리(SRAM) 등), 및 데이터 저장 디바이스(1618)를 포함하며, 이들은 버스(1630)를 통해 서로 통신한다.
처리 디바이스(1602)는 마이크로프로세서, 중앙 처리 장치 등과 같은 하나 이상의 프로세서를 나타낸다. 보다 구체적으로, 처리 디바이스는 복소 명령어 세트 컴퓨팅(complex instruction set computing)(CISC) 마이크로프로세서, 축소 명령어 세트 컴퓨팅(reduced instruction set computing)(RISC) 마이크로프로세서, 훨씬 긴 명령어(very long instruction word)(VLIW) 마이크로프로세서, 또는 다른 명령어 세트를 구현하는 프로세서, 또는 명령어 세트 조합을 구현하는 프로세서일 수 있다. 처리 디바이스(1602)는 또한 주문형 집적 회로(application specific integrated circuit)(ASIC), 필드 프로그래머블 게이트 어레이(field programmable gate array)(FPGA), 디지털 신호 프로세서(digital signal processor)(DSP), 네트워크 프로세서 등과 같은 하나 이상의 특수 목적 처리 디바이스일 수 있다. 처리 디바이스(1602)는 본원에 기술된 동작 및 단계를 수행하기 위한 명령어(1626)를 실행하도록 구성될 수 있다.
컴퓨터 시스템(1600)은 네트워크(1620)를 통해 통신하기 위한 네트워크 인터페이스 디바이스(1608)를 더 포함할 수 있다. 컴퓨터 시스템(1600)은 또한 비디오 디스플레이 유닛(1610)(예컨대, 액정 디스플레이(LCD) 또는 음극선관(CRT)), 영숫자 입력 디바이스(1612)(예컨대, 키보드), 커서 제어 디바이스(1614)(예컨대, 마우스), 그래픽 처리 유닛(1622), 신호 생성 디바이스(1616)(예컨대, 스피커), 그래픽 처리 유닛(1622), 비디오 처리 유닛(1628), 및 오디오 처리 유닛(1632)을 포함할 수 있다.
데이터 저장 디바이스(1618)는 본원에 기술된 방법 또는 기능 중 임의의 하나 이상을 구현하는 명령어 세트(1626) 또는 소프트웨어 중 하나 이상의 세트를 저장한 머신 판독 가능 저장 매체(1624)(비 일시적 컴퓨터 판독 가능 매체라고도 함)를 포함할 수 있다. 명령어(1626)는 또한 머신 판독 가능 저장 매체를 또한 구성하는 컴퓨터 시스템(1600), 메인 메모리(1604), 및 처리 디바이스(1602)에 의한 실행 동안 메인 메모리(1604) 내에 및/또는 처리 디바이스(1602) 내에 전체적으로 또는 적어도 부분적으로 상주할 수 있다.
일부 구현예에서, 명령어(1626)는 본 개시 내용에 대응하는 기능을 구현하기 위한 명령어를 포함한다. 머신 판독 가능 매체(1624)가 일 구현예에서 단일 매체인 것으로 도시되어 있지만, "머신 판독 가능 저장 매체"라는 용어는 하나 이상의 명령어 세트를 저장한 단일 매체 또는 다중 매체(예컨대, 중앙 집중식 또는 분산형 데이터베이스, 및/또는 연관된 캐시 및 서버)를 포함하는 것으로 간주되어야 한다. "머신 판독 가능 저장 매체"라는 용어는 또한, 머신에 의한 실행을 위한 명령어 세트를 저장하거나 인코딩할 수 있고, 머신 및 처리 디바이스(1602)로 하여금 본 개시 내용의 임의의 하나 이상의 방법을 수행하게 하는 임의의 매체를 포함하는 것으로 간주될 것이다. 따라서 "머신 판독 가능 저장 매체"라는 용어는 솔리드 스테이트 메모리, 광학 매체, 및 자기 매체를 포함하되 이에 제한되지는 않는 것으로 간주될 것이다.
이전의 상세한 설명의 일부는 컴퓨터 메모리 내의 데이터 비트에 대한 연산의 알고리즘 및 심볼 표현의 관점에서 제시되었다. 이러한 알고리즘의 설명 및 표현은 데이터 처리 기술 분야의 기술자가 해당 기술 분야의 다른 기술자에게 자신의 연구 내용을 가장 효과적으로 전달하기 위해 사용하는 방법이다. 알고리즘은 원하는 결과로 이어지는 일련의 연산일 수 있다. 연산은 물리량의 물리적 조작을 필요로 하는 것이다. 그러한 양은 저장, 결합, 비교, 및 조작될 수 있는 전기 또는 자기 신호의 형태를 취할 수 있다. 이러한 신호는 비트, 값, 요소, 심볼, 문자, 용어, 숫자 등으로 지칭될 수 있다.
그러나, 이러한 모든 용어 및 유사한 용어는 적절한 물리량과 연관되어야 하며, 이러한 양에 적용되는 편리한 레이블에 불과할 뿐이라는 점을 염두에 두어야 한다. 달리 구체적으로 언급되지 않는 한, 본 개시 내용으로부터 명백한 바와 같이, 설명 전반에 걸쳐, 특정의 용어는 컴퓨터 시스템, 또는 유사한 전자 컴퓨팅 디바이스의 동작 및 처리를 지칭하는 것이며, 이러한 컴퓨터 시스템, 또는 유사한 전자 컴퓨팅 디바이스는 컴퓨터 시스템의 레지스터 및/또는 메모리 내의 물리적(전자적) 수량으로 표현되는 데이터를, 그러한 컴퓨터 시스템의 메모리 또는 레지스터 또는 다른 그러한 정보 저장 디바이스 내의 물리적 수량으로 유사하게 표현되는 다른 데이터로 조작 및 변환시키는 것으로 이해된다.
본 개시 내용은 또한 본원의 동작을 수행하기 위한 장치에 관련된다. 이 장치는 의도된 목적을 위해 특별히 구성될 수 있거나, 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 컴퓨터를 포함할 수 있다. 이러한 컴퓨터 프로그램은 플로피 디스크, 광 디스크, CD-ROM, 및 자기 광학 디스크를 포함한 임의의 타입의 디스크, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), EPROM, EEPROM, 자기 또는 광학 카드와 같은 하지만 이에 제한되지는 않는 컴퓨터 판독 가능 저장 매체, 또는 전자 명령어를 저장하기에 적합한 임의의 타입의 매체에 저장될 수 있으며, 이들 각각은 컴퓨터 시스템 버스에 연결되어 있다.
본원에 제시된 알고리즘 및 디스플레이는 본질적으로는 임의의 특정 컴퓨터 또는 다른 장치와는 관련이 없다. 다양한 다른 시스템이 본원의 교시 내용에 따른 프로그램과 함께 사용될 수 있거나, 방법을 수행하기 위해 보다 특수화된 장치를 구성하는 것이 편리한 것으로 입증될 수 있다. 또한, 본 개시 내용은 임의의 특정 프로그래밍 랭귀지를 참조하여 기술되지는 않는다. 다양한 프로그래밍 랭귀지가 본원에 설명된 바와 같이 본 개시 내용의 교시 내용을 구현하기 위해 사용될 수 있다는 것이 이해될 것이다.
본 개시 내용은, 컴퓨터 시스템(또는 다른 전자 디바이스)을 프로그래밍하여 본 개시 내용에 따른 공정을 수행하는 데 사용될 수 있는 명령어를 저장한 머신 판독 가능 매체를 포함할 수 있는 컴퓨터 프로그램 제품 또는 소프트웨어로서 제공될 수 있다. 머신 판독 가능 매체는 머신(예컨대, 컴퓨터)에 의해 판독 가능한 형태로 정보를 저장하기 위한 임의의 메커니즘을 포함한다. 예를 들어, 머신 판독 가능(예컨대, 컴퓨터 판독 가능) 매체는 판독 전용 메모리("ROM"), 랜덤 액세스 메모리("RAM"), 자기 디스크 저장 매체, 광 저장 매체, 플래시 메모리 디바이스 등과 같은 머신(예컨대, 컴퓨터) 판독 가능 저장 매체를 포함한다.
전술한 개시 내용에서, 본 개시 내용의 구현물은 그 특정 예시적인 구현물을 참조하여 기술되었다. 아래의 청구항에 나열된 바와 같은 본 개시 내용의 구현예의 보다 넓은 사상 및 범위를 벗어나지 않고 그에 대한 다양한 수정을 가할 수 있다는 것은 명백할 것이다. 본 개시 내용이 단수 시제의 일부 요소를 언급하는 경우, 하나 초과의 요소가 도면에 도시될 수 있고 유사한 요소는 유사한 숫자로 표시된다. 따라서, 본 개시 내용 및 도면은 제한적인 의미가 아니라 예시적인 의미로 간주되어야 한다.
Claims (20)
- 방법으로서,
하나 이상의 처리 디바이스에 의해, 라우팅 리소스 그래프를 생성하기 위해 네트 세트에 대한 삼각측량을 수행하는 단계 ― 상기 네트 세트의 물체들은 삼각측량 동안 제각기의 중심점에 의해 표현됨 ―;
상기 하나 이상의 처리 디바이스에 의해, 적어도 총 비용에 기반하여 상기 네트 세트의 물체들 간의 경로를 생성하는 단계 ― 상기 총 비용은 적어도 상기 라우팅 리소스 그래프에 기반하여 결정됨 ―;
상기 하나 이상의 처리 디바이스에 의해, 제약 규칙이 충족되지 않는다는 결정에 기반하여 상기 경로를 변경하는 단계; 및
상기 하나 이상의 처리 디바이스에 의해, 상기 네트 세트에 대한 상기 경로를 포함하는 라우팅 정보를 출력하는 단계를 포함하는, 방법. - 제1항에 있어서,
상기 삼각측량을 수행하기 전에 제1 물체와 제2 물체 간의 단거리 경로를 생성하는 단계를 더 포함하고, 상기 제1 물체와 상기 제2 물체는 층 상에서 인접하거나, 상기 제1 물체와 상기 제2 물체는 두 개의 인접한 층 상에서 동일한 수평 위치를 갖는, 방법. - 제1항에 있어서,
상기 경로를 생성하는 단계는:
스태킹 비아 규칙 및 각도 요구 사항에 기반하여 물체에서 라우팅 층으로의 핀 확장 경로를 결정하는 단계를 더 포함하는, 방법. - 제3항에 있어서,
상기 핀 확장 경로를 결정하는 단계는:
현재 형상을 상기 물체와 연관시키는 단계;
상기 물체가 상기 스태킹 비아 규칙에 기반하여 적층될 수 있을 경우 상기 현재 형상의 중심에 비아를 생성하는 단계; 및
상기 물체가 상기 스태킹 비아 규칙에 기반하여 적층될 수 없을 경우 확장 경로를 생성하고 상기 확장 경로의 말단에 제2 비아를 생성하는 단계를 포함하는, 방법. - 제1항에 있어서,
상기 총 비용은 교차 비용 및 길이 매칭 비용을 포함하는, 방법. - 제5항에 있어서,
현재 라우팅이 라우팅된 네트와 교차하는지 여부를 결정하기 위해 상기 라우팅 리소스 그래프에 대한 확인을 수행하는 단계; 및
상기 현재 라우팅이 상기 라우팅된 네트와 교차하는 경우 교차를 교차 비용으로서 모델링하는 단계를 더 포함하는, 방법. - 제5항에 있어서,
상기 라우팅 리소스 그래프에 대한 추정된 배선 길이와 목표 배선 길이 간의 차이로부터 상기 길이 매칭 비용을 결정하는 단계를 더 포함하는, 방법. - 제1항에 있어서,
상기 경로를 생성하는 단계는 상기 총 비용 및 라우팅 용량에 기반하는, 방법. - 제8항에 있어서,
상기 라우팅 용량은 장애물 사이즈 및 사전 경로에 기반하는, 방법. - 제1항에 있어서,
상기 경로를 변경하는 단계는:
제1 세그먼트와 제2 세그먼트 사이의 각도가 설계 규칙을 위반하는지 여부를 결정하는 단계 ― 상기 제1 세그먼트와 상기 제2 세그먼트는 상기 물체들 간의 경로 상에서 인접해 있음 ―; 및
상기 제1 세그먼트와 상기 제2 세그먼트 사이에 제3 세그먼트를 삽입하는 단계를 더 포함하고, 상기 제3 세그먼트의 길이는 상기 설계 규칙의 최소 세그먼트 길이를 충족시키는, 방법. - 제1항에 있어서,
상기 경로를 변경하는 단계는:
기존 커넥션과 상기 라우팅에 의해 생성된 커넥션 간의 각도가 설계 규칙을 위반하는지 여부를 결정하는 단계 ― 상기 각도는 상기 커넥션의 원거리 말단에 있음 ―; 및
상기 각도가 설계 규칙을 위반하는 경우 하나 이상의 패칭 세그먼트를 추가하는 단계를 더 포함하는, 방법. - 제1항에 있어서,
전원 핀을 평면으로 확장함으로써 전원/접지 라우팅을 수행하는 단계; 및
상기 전원 핀을 가상 핀에 커넥트함으로써 분리된 평면들을 커넥트하는 단계를 더 포함하는, 방법. - 시스템으로서,
명령어를 저장하는 메모리; 및
메모리와 연결되고, 명령어를 실행하는 프로세서를 포함하고, 상기 명령어는 실행 시 상기 프로세서로 하여금:
라우팅 리소스 그래프를 생성하기 위해 네트 세트에 대해 삼각측량을 수행하게 하고 ― 상기 네트 세트의 물체들은 삼각측량 동안 제각기의 중심점에 의해 표현됨 ―,
적어도 총 비용에 기반하여 상기 네트 세트의 물체들 간의 경로를 생성하게 하고 ― 상기 총 비용은 적어도 상기 라우팅 리소스 그래프에 기반하여 결정됨 ―,
제약 규칙이 충족되지 않는다는 결정에 기반하여 상기 경로를 변경하게 하며,
상기 네트 세트에 대한 상기 경로를 포함하는 라우팅 정보를 출력하게 하는, 시스템. - 제13항에 있어서,
상기 프로세서는:
상기 삼각측량을 수행하기 전에 제1 물체와 제2 물체 간의 단거리 경로를 생성하는 것을 포함하는 동작을 수행하도록 추가로 구성되고, 상기 제1 물체와 상기 제2 물체는 층 상에서 인접하거나, 상기 제1 물체와 상기 제2 물체는 두 개의 인접한 층 상에서 동일한 수평 위치를 갖는, 시스템. - 제13항에 있어서,
상기 경로를 생성하는 것은:
스태킹 비아 규칙 및 각도 요구 사항에 기반하여 물체에서 라우팅 층으로의 핀 확장 경로를 결정하는 것을 더 포함하는, 시스템. - 제15항에 있어서,
상기 핀 확장 경로를 결정하는 것은:
현재 형상을 상기 물체와 연관시키는 것;
상기 물체가 상기 스태킹 비아 규칙에 기반하여 적층될 수 있을 경우 상기 현재 형상의 중심에 비아를 생성하는 것; 및
상기 물체가 상기 스태킹 비아 규칙에 기반하여 적층될 수 없을 경우 확장 경로를 생성하고 상기 확장 경로의 말단에 제2 비아를 생성하는 것을 포함하는, 시스템. - 제13항에 있어서,
상기 총 비용은 교차 비용 및 길이 매칭 비용을 포함하는, 시스템. - 제17항에 있어서,
상기 프로세서는:
현재 라우팅이 라우팅된 네트와 교차하는지 여부를 결정하기 위해 상기 라우팅 리소스 그래프에 대한 확인을 수행하는 것; 및
상기 현재 라우팅이 상기 라우팅된 네트와 교차하는 경우 교차를 교차 비용으로서 모델링하는 것을 포함하는 동작을 수행하도록 추가로 구성되는, 시스템. - 제17항에 있어서,
상기 프로세서는:
상기 라우팅 리소스 그래프에 대한 추정된 배선 길이와 목표 배선 길이 간의 차이를 결정하는 것을 포함하는 동작을 수행하도록 추가로 구성되는, 시스템. - 프로세서에 의해 실행될 때 상기 프로세서로 하여금 동작을 수행하게 하는 명령어를 저장한 비 일시적 컴퓨터 판독 가능 매체로서, 상기 동작은:
라우팅 리소스 그래프를 생성하기 위해 네트 세트에 대한 삼각측량을 수행하는 단계 ― 상기 네트 세트의 물체들은 삼각측량 동안 제각기의 중심점에 의해 표현됨 ―;
적어도 총 비용에 기반하여 상기 네트 세트의 물체들 간의 경로를 생성하는 단계 ― 상기 총 비용은 적어도 상기 라우팅 리소스 그래프에 기반하여 결정됨 ―;
제약 규칙이 충족되지 않는다는 결정에 기반하여 상기 경로를 변경하는 단계; 및
상기 네트 세트에 대한 상기 경로를 포함하는 라우팅 정보를 출력하는 단계를 포함하는, 비 일시적 컴퓨터 판독 가능 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962885504P | 2019-08-12 | 2019-08-12 | |
US62/885,504 | 2019-08-12 | ||
PCT/US2020/045978 WO2021030468A1 (en) | 2019-08-12 | 2020-08-12 | Methods and systems to perform automated routing |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220042305A true KR20220042305A (ko) | 2022-04-05 |
Family
ID=72193684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217039280A KR20220042305A (ko) | 2019-08-12 | 2020-08-12 | 자동화된 라우팅을 수행하는 방법 및 시스템 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11176306B2 (ko) |
EP (1) | EP3953852A1 (ko) |
KR (1) | KR20220042305A (ko) |
CN (1) | CN114556352A (ko) |
WO (1) | WO2021030468A1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102663070B1 (ko) | 2021-09-28 | 2024-05-03 | 전남대학교산학협력단 | 예취부 자세 제어장치 |
US11675960B2 (en) * | 2021-11-01 | 2023-06-13 | X Development Llc | Machine learning based layout nudging for design rule compliance |
US11790147B1 (en) * | 2021-11-22 | 2023-10-17 | Cadence Design Systems, Inc. | System and method for routing in an electronic design |
CN114896940B (zh) * | 2022-07-13 | 2022-09-20 | 之江实验室 | 一种软件定义的晶圆级交换***设计方法及装置 |
TWI831584B (zh) * | 2023-01-19 | 2024-02-01 | 和碩聯合科技股份有限公司 | 引線處理裝置以及引線布局方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3786398B2 (ja) * | 2000-09-07 | 2006-06-14 | 新光電気工業株式会社 | 半導体パッケージの配線方法 |
US6829757B1 (en) * | 2001-06-03 | 2004-12-07 | Cadence Design Systems, Inc. | Method and apparatus for generating multi-layer routes |
US6877146B1 (en) * | 2001-06-03 | 2005-04-05 | Cadence Design Systems, Inc. | Method and apparatus for routing a set of nets |
US7069530B1 (en) * | 2001-06-03 | 2006-06-27 | Cadence Design Systems, Inc. | Method and apparatus for routing groups of paths |
US7117468B1 (en) * | 2002-01-22 | 2006-10-03 | Cadence Design Systems, Inc. | Layouts with routes with different spacings in different directions on the same layer, and method and apparatus for generating such layouts |
US6938234B1 (en) * | 2002-01-22 | 2005-08-30 | Cadence Design Systems, Inc. | Method and apparatus for defining vias |
US7971173B1 (en) * | 2006-04-28 | 2011-06-28 | Cadence Design Systems, Inc. | Method and system for implementing partial reconfiguration and rip-up of routing |
US8006216B1 (en) * | 2008-06-06 | 2011-08-23 | Magma Design Automation, Inc. | Dynamic push for topological routing of semiconductor packages |
US8288871B1 (en) * | 2011-04-27 | 2012-10-16 | Taiwan Semiconductor Manufacturing Company, Ltd. | Reduced-stress bump-on-trace (BOT) structures |
US9009645B2 (en) * | 2012-12-26 | 2015-04-14 | Synopsys, Inc. | Automatic clock tree routing rule generation |
US10409943B2 (en) * | 2013-09-03 | 2019-09-10 | Synopsys, Inc. | Efficient analog layout prototyping by layout reuse with routing preservation |
CN104750885A (zh) * | 2013-12-29 | 2015-07-01 | 北京华大九天软件有限公司 | 集成电路版图布线中引脚布线资源预分配方法 |
-
2020
- 2020-08-12 US US16/991,653 patent/US11176306B2/en active Active
- 2020-08-12 CN CN202080057020.6A patent/CN114556352A/zh active Pending
- 2020-08-12 KR KR1020217039280A patent/KR20220042305A/ko active Search and Examination
- 2020-08-12 WO PCT/US2020/045978 patent/WO2021030468A1/en unknown
- 2020-08-12 EP EP20761100.5A patent/EP3953852A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210049315A1 (en) | 2021-02-18 |
WO2021030468A1 (en) | 2021-02-18 |
EP3953852A1 (en) | 2022-02-16 |
US11176306B2 (en) | 2021-11-16 |
TW202113656A (zh) | 2021-04-01 |
CN114556352A (zh) | 2022-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11176306B2 (en) | Methods and systems to perform automated Integrated Fan-Out wafer level package routing | |
US9898567B2 (en) | Automatic layout modification tool with non-uniform grids | |
TWI789911B (zh) | 用於電容值提取的系統、方法及儲存媒體 | |
US20220391566A1 (en) | Machine learning models for predicting detailed routing topology and track usage for accurate resistance and capacitance estimation for electronic circuit designs | |
US20220300688A1 (en) | Fast synthesis of logical circuit design with predictive timing | |
US11694016B2 (en) | Fast topology bus router for interconnect planning | |
EP4356283A1 (en) | Machine-learning-based power/ground (p/g) via removal | |
TW201926217A (zh) | 針對設計半導體裝置的資源規劃的方法、系統及儲存媒介 | |
US20230260591A1 (en) | Transforming local wire thru resistances into global distributed resistances | |
Posser et al. | Challenges and approaches in vlsi routing | |
US11704467B2 (en) | Automated balanced global clock tree synthesis in multi level physical hierarchy | |
TWI845737B (zh) | 執行自動化整合扇出晶圓級封裝佈線的方法及系統、及其非暫時性電腦可讀媒體 | |
US11416661B2 (en) | Automatic derivation of integrated circuit cell mapping rules in an engineering change order flow | |
EP4256458A1 (en) | Modelling timing behavior using augmented sensitivity data for physical parameters | |
US12014127B2 (en) | Transforming a logical netlist into a hierarchical parasitic netlist | |
US20220398372A1 (en) | Dynamic clock tree planning using feedtiming cost | |
US11144700B1 (en) | Grouping nets to facilitate repeater insertion | |
US11914939B1 (en) | Clock re-convergence pessimism removal through pin sharing during clock tree planning | |
US20230126888A1 (en) | Computation of weakly connected components in a parallel, scalable and deterministic manner | |
US11586796B1 (en) | Keep-through regions for handling end-of-line rules in routing | |
US11972191B2 (en) | System and method for providing enhanced net pruning | |
US20230306180A1 (en) | Static timing analysis of multi-die three-dimensional integrated circuits | |
US20230061120A1 (en) | Routing of high-speed, high-throughput interconnects in integrated circuits | |
US20230267261A1 (en) | Design system, design method and method of manufacture of semiconductor device | |
US20240249053A1 (en) | Timing analysis in stacked dies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |