KR102103685B1 - 전자 설계 자동화 툴의 그래픽 사용자 인터페이스에서의 핀 로케이션들의 업데이팅 - Google Patents
전자 설계 자동화 툴의 그래픽 사용자 인터페이스에서의 핀 로케이션들의 업데이팅 Download PDFInfo
- Publication number
- KR102103685B1 KR102103685B1 KR1020197035494A KR20197035494A KR102103685B1 KR 102103685 B1 KR102103685 B1 KR 102103685B1 KR 1020197035494 A KR1020197035494 A KR 1020197035494A KR 20197035494 A KR20197035494 A KR 20197035494A KR 102103685 B1 KR102103685 B1 KR 102103685B1
- Authority
- KR
- South Korea
- Prior art keywords
- edge
- pins
- gui
- pin
- locations
- 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/31—Design entry, e.g. editors specifically adapted for circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- 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/392—Floor-planning or layout, e.g. partitioning or placement
-
- 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/394—Routing
- G06F30/3947—Routing global
-
- 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/396—Clock trees
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/12—Symbolic schematics
-
- 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
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)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
회로 설계의 플로어플랜을 생성, 편집, 및 뷰잉하기 위한 방법들 및 장치들이 설명된다. 구체적으로, 일부 실시형태들은 사용자로 하여금, 회로 설계 레이아웃에서의 인퍼런스 포인트에서 그래픽 동작을 수행하는 것을 가능하게 하며, 인퍼런스 포인트의 로케이션은 회로 설계 레이아웃에서의 기존의 그래픽 오브젝트들에 기초하여 결정된다. 일부 실시형태들은 회로 설계 레이아웃을 변형시키는 것에 응답하여 회로 설계 레이아웃에서의 혼잡 표시자를 실질적으로 순간적으로 업데이트한다. 일부 실시형태들은 블록 또는 파티션의 사이즈 또는 형상을 변경하는 것에 응답하여 블록 또는 파티션의 핀 로케이션들을 실질적으로 순간적으로 업데이트한다. 일부 실시형태들은, 사용자로 하여금, 논리적 계층구조에 기초하여, 그리고 또한 전압, 전력, 또는 클록 도메인과 같은 적어도 하나의 추가적인 속성 타입에 기초하여 회로 설계 레이아웃을 뷰잉하는 것을 가능하게 한다.
Description
발명자: Zhengtao Yu
관련 출원
본 출원은 대리인 도켓 번호 SNPS-2133US01 을 갖는 2012 년 12 월 27 일 출원된 미국 출원 제 13/728,873 호의 분할 출원이고 이에 대한 우선권을 주장하며, 그 내용은 모든 목적들을 위해 본 명세서에 참조로서 전부 포함된다.
본 개시물은 전자 설계 자동화 (electronic design automation; EDA) 에 관한 것이다. 보다 구체적으로는, 본 개시물은 EDA 를 위한 플로어플래닝 툴용 그래픽 사용자 인터페이스 (GUI) 에 관한 것이다.
집적 회로 (IC) 설계는 IC 의 컴포넌트들 및 배선 (wire) 들을 시각적으로 표현하는 스키마틱 (schematic) 들의 이용을 수반한다. EDA 에서, 플로어플랜은 통상 IC 에서의 주요한 기능적 블록들의 임시의 사이즈들 및 임시의 로케이션들을 적어도 제공하는 스키마틱을 나타낸다.
플로어플래닝 툴이 IC 에 대한 플로어플랜을 생성, 편집, 및 뷰잉하는데 이용될 수 있다. 회로 설계자가 플로어플랜을 생성하면서 행하는 판정들은 후속의 EDA 스테이지들에 상당한 영향을 줄 수 있다. 필요한 것은, 회로 설계자로 하여금, 전체 회로 설계 시간을 감소시키고 및/또는 전체 QoR (quality of results) 을 향상시키는 플로어플랜들을 생성하는 것을 가능하게 하는 사용자-친화적 (user-friendly) 플로어플래닝 툴들이다.
본 명세서에 설명된 일부 실시형태들은 회로 설계의 플로어플랜을 생성, 편집, 및 뷰잉하기 위한 시스템들 및 기법들을 제공한다. 일부 실시형태들은, 사용자로 하여금, 인퍼런스 포인트 (inference point) 에서 그래픽 동작 (graphical operation) 을 수행하는 것을 가능하게 한다. 일 실시형태 (예를 들어, GUI) 는 제 1 사용자 입력을 수신할 수 있으며, 제 1 사용자 입력은 제 1 인퍼런스 포인트인, 회로 설계 레이아웃에서의 제 1 그래픽 오브젝트와 연관된 제 1 포인트를 선택한다. 다음에, 실시형태는 제 2 사용자 입력을 수신할 수 있으며, 제 2 사용자 입력은 제 2 인퍼런스 포인트인, 회로 설계 레이아웃에서의 제 2 그래픽 오브젝트와 연관된 제 2 포인트를 선택한다. 실시형태는 그 후 회로 설계 레이아웃에서의 제 3 인퍼런스 포인트를 디스플레이할 수 있으며, 제 3 인퍼런스 포인트는 제 1 인퍼런스 포인트로부터 연장되는 제 1 라인과 제 2 인퍼런스 포인트로부터 연장되는 제 2 라인의 교차점에 위치한다. 다음에, 실시형태는 제 3 사용자 입력을 수신할 수 있으며, 제 3 사용자 입력은 회로 설계 레이아웃에서의 제 3 인퍼런스 포인트를 선택한다. 실시형태는 그 후 제 3 인퍼런스 포인트에 기초하여 회로 설계 레이아웃에서 동작을 수행할 수 있다. 일부 실시형태들에서, 그 동작은 제 3 인퍼런스 포인트로부터의 오프셋에서 수행될 수 있다. 구체적으로, 그 동작을 수행하기 이전에, 그 동작이 수행되길 원하는 제 3 인퍼런스 포인트로부터의 오프셋을 특정하는 제 4 사용자 입력이 수신될 수 있다.
본 명세서에 설명된 일부 실시형태들은 회로 설계 레이아웃에서의 채널에 대한 혼잡 표시자 (congestion indicator) 를 디스플레이하기 위한 시스템들 및 기법들을 제공한다. 구체적으로, 일 실시형태는 채널에 대한 혼잡 표시자를 (예를 들어, 컴퓨터의 GUI 에서) 디스플레이할 수 있으며, 혼잡 표시자는 회로 설계 레이아웃에 대해 혼잡 분석을 수행하는 것에 기초하여 (예를 들어, 전체 회로 설계 레이아웃에 대해 글로벌 라우팅을 수행하고, 그 후 글로벌 라우팅 솔루션에 기초하여 채널에 대한 혼잡 표시자를 결정함으로써) 결정된다. 다음에, 실시형태는 변형된 회로 설계 레이아웃을 획득하기 위해 사용자 입력에 기초하여 회로 설계 레이아웃을 변형시킬 수 있으며, 그 변형시키는 것은 채널의 폭을 새로운 폭 값으로 변경한다. 실시형태는 그 후, 새로운 폭 값에 기초하여 채널에 대한 업데이트된 용량 값 (capacity value) 을 결정할 수 있으며, 업데이트된 용량 값은 채널에서의 이용가능한 라우팅 리소스들의 양에 대응한다. 다음에, 실시형태는 변형된 회로 설계 레이아웃에 대해 혼잡 분석을 수행하지 않고 (예를 들어, 전체 변형된 회로 설계 레이아웃에 대해 글로벌 라우팅을 수행하지 않고) 업데이트된 용량 값에 기초하여 업데이트된 혼잡 표시자를 결정할 수 있다. 마지막으로, 실시형태는 채널에 대한 업데이트된 혼잡 표시자를 (예를 들어, 컴퓨터의 GUI 에서) 디스플레이할 수 있다. 일부 실시형태들에서, 업데이트된 혼잡 표시자를 디스플레이하는 것은 : 채널을 통하여 라우팅될 것으로 예상되는 배선들의 수에 대응하는 수요 값 (demand value) 을 디스플레이하는 것, 및 업데이트된 용량 값을 디스플레이하는 것을 포함한다. 일부 실시형태들에서, 업데이트된 혼잡 표시자를 디스플레이하는 것은 : 업데이트된 용량 값에 기초하여 업데이트된 컬러를 결정하는 것, 및 업데이트된 컬러로 채널에 대응하는 회로 설계 레이아웃에서의 구역 (region) 을 디스플레이하는 것을 포함한다.
본 명세서에 설명된 일부 실시형태들은 GUI 에서 핀 로케이션들을 실질적으로 순간적으로 업데이트하기 위한 시스템들 및 기법들을 제공하며, 핀들의 세트는 현재, 회로 설계 레이아웃에서의 블록 또는 파티션의 에지 상의 제 1 세트의 핀 로케이션들에 위치한다. 본 개시물에서, 용어들 "실질적으로 순간적인 (substantially instantaneous)" 및 "실질적으로 순간적으로 (substantially instantaneously)" 는, GUI 를 이용하는 사용자가 GUI 가 매우 응답적이라고 느낄 정도로 충분히 작은 양의 시간을 나타낸다. 구체적으로, 일 실시형태는 변형된 회로 설계 레이아웃을 획득하기 위해 사용자 입력에 기초하여 회로 설계 레이아웃을 변형시킬 수 있다. 에지의 길이가 증가했다면, 실시형태는 GUI 에서 제 1 세트의 핀 로케이션들을 변경하지 않는다. 또한, 에지의 길이가 감소했지만 제 1 세트의 핀 로케이션들을 보존할 정도로 충분히 길다면, 실시형태는 GUI 에서 제 1 세트의 핀 로케이션들을 변경하지 않는다. 그러나, 에지의 길이가 감소했고 제 1 세트의 핀 로케이션들을 보존할 정도로 충분히 길지 않다면, 실시형태는 제 2 세트의 핀 로케이션들을 획득하기 위해 이웃하는 신호 핀들 간의 거리들을 감소시키며, 그 감소시키는 것은 하나 이상의 전력 핀들의 로케이션들, 신호 핀들의 상대적 순서 (ordering), 및 하나 이상의 고정 핀들의 로케이션들을 보존한다. 일단 업데이트된 핀 로케이션들 (즉, 제 2 세트의 핀 로케이션들) 이 결정되었다면, 실시형태는 GUI 에서 제 2 세트의 핀 로케이션들에서의 핀들의 세트를 디스플레이할 수 있다. 실시형태는 그 실시형태가 변형된 회로 설계 레이아웃에 대해 글로벌 라우팅을 수행하지 않고 제 2 세트의 핀 로케이션들을 결정하기 때문에 핀 로케이션들을 실질적으로 순간적으로 업데이트하는 것이 가능하다는 것에 주목한다. 일부 실시형태들에서, 이웃하는 신호 핀들 간의 거리들을 감소시키는 것은, 각각의 거리에, 에지의 감소된 길이를 에지의 원래의 길이로 제산함 (dividing) 으로써 컴퓨팅되는 비율을 승산하는 것 (multiplying) 을 포함한다. 일부 실시형태들에서, 감소시키는 것은 또한, 회로 설계 레이아웃에서 하나 이상의 핀들을 배선 트랙 로케이션 (wire track location) 들로 스냅핑하는 것 (snapping) 을 포함한다. 일부 실시형태들에서, 2 개 이상의 핀들이 동일한 배선 트랙 로케이션으로 스냅핑했다면, 실시형태는 상이한 금속층에서 2 개 이상의 핀들 각각에 대한 핀 로케이션을 할당할 수 있다.
일부 실시형태들은 사용자 특정 속성 타입 (예를 들어, 전력 도메인, 클록 도메인 등) 에 기초하여 회로 설계를 디스플레이하기 위한 시스템들 및 기법들을 제공한다. 회로 설계에서의 회로 엘리먼트들은 하나 이상의 속성 타입들 (예를 들어, 전력 도메인 또는 클록 도메인) 에 대응하는 하나 이상의 속성 값들 (예를 들어, 전력 도메인 또는 클록 도메인 식별자들) 과 연관된다. 구체적으로, 일 실시형태는 GUI 에서 회로 설계의 제 1 뷰를 디스플레이할 수 있으며, 제 1 뷰는 회로 엘리먼트들을 회로 설계의 논리적 계층구조 (logical hierarchy) 에 따라 계층적 블록들로 그룹화한다. 다음에, 속성 타입에 기초하여 회로 설계를 디스플레이하라는 요청을 수신하는 것에 응답하여, 실시형태는 회로 설계의 제 2 뷰를 생성할 수 있으며, 제 2 뷰는 회로 엘리먼트들을 속성 타입에 대해 동일한 속성 값을 갖는 블록들로 그룹화한다. 실시형태는 그 후 GUI 에서 회로 설계의 제 2 뷰를 디스플레이할 수 있다. 속성 타입이 전력 도메인이라면, 제 2 뷰를 생성하는 것은, 각각의 회로 엘리먼트를 그 회로 엘리먼트의 전력 도메인에 기초한 블록에 할당하는 것을 포함한다. 이 경우에, 제 2 뷰에서의 블록들은 전력 도메인 계층구조에 대응하는 계층적 구조를 가질 수 있다. 속성 타입이 클록 도메인이라면, 제 2 뷰를 생성하는 것은, 각각의 회로 엘리먼트를 그 회로 엘리먼트의 클록 도메인에 기초한 블록에 할당하는 것을 포함한다.
도 1a 내지 도 1e 는 본 명세서에 설명된 일부 실시형태들에 따라 인퍼런스 포인트들이 회로 설계 레이아웃에서 블록을 배치하는데 이용될 수 있는 방법의 일 예를 예시한다.
도 1f 는 본 명세서에 설명된 일부 실시형태들에 따라 플로어플래닝 툴의 GUI 에서 그래픽 동작을 수행하기 위한 프로세스를 예시하는 플로우차트를 제시한다.
도 2a 내지 도 2c 는 본 명세서에 설명된 일부 실시형태들에 따라 라우팅 혼잡에 관한 실질적으로 순간적인 피드백이 GUI 에서 제공될 수 있는 방법의 예들을 예시한다.
도 2d 는 본 명세서에 설명된 일부 실시형태들에 따라 혼잡 표시자를 디스플레이하기 위한 프로세스를 예시하는 플로우차트를 제시한다.
도 3a 는 본 명세서에 설명된 일부 실시형태들에 따라 GUI 에서 핀 로케이션들을 업데이트하기 위한 프로세스를 예시하는 플로우차트를 제시한다.
도 3b 내지 도 3g 는 본 명세서에 설명된 일부 실시형태들에 따라 회로 설계 레이아웃이 변형될 때 핀 로케이션들이 실질적으로 순간적으로 업데이트되는 방법을 예시한다.
도 4a 는 본 명세서에 설명된 일부 실시형태들에 따라 GUI 가 사용자로 하여금, 회로 설계의 논리적 계층구조를 뷰잉하는 것을 가능하게 할 수 있는 방법을 예시한다.
도 4b 는 본 명세서에 설명된 일부 실시형태에 따라 전력 도메인 계층구조에 기초한 뷰를 제시한다.
도 4c 는 본 명세서에 설명된 일부 실시형태에 따라 클록 도메인 계층구조에 기초한 뷰를 제시한다.
도 4d 는 본 명세서에 설명된 일부 실시형태들에 따라 GUI 에서 회로 설계를 디스플레이하기 위한 프로세스를 예시하는 플로우차트를 제시한다.
도 5 는 본 개시물에서 설명된 일부 실시형태들에 따라 컴퓨터 시스템을 예시한다.
도 1f 는 본 명세서에 설명된 일부 실시형태들에 따라 플로어플래닝 툴의 GUI 에서 그래픽 동작을 수행하기 위한 프로세스를 예시하는 플로우차트를 제시한다.
도 2a 내지 도 2c 는 본 명세서에 설명된 일부 실시형태들에 따라 라우팅 혼잡에 관한 실질적으로 순간적인 피드백이 GUI 에서 제공될 수 있는 방법의 예들을 예시한다.
도 2d 는 본 명세서에 설명된 일부 실시형태들에 따라 혼잡 표시자를 디스플레이하기 위한 프로세스를 예시하는 플로우차트를 제시한다.
도 3a 는 본 명세서에 설명된 일부 실시형태들에 따라 GUI 에서 핀 로케이션들을 업데이트하기 위한 프로세스를 예시하는 플로우차트를 제시한다.
도 3b 내지 도 3g 는 본 명세서에 설명된 일부 실시형태들에 따라 회로 설계 레이아웃이 변형될 때 핀 로케이션들이 실질적으로 순간적으로 업데이트되는 방법을 예시한다.
도 4a 는 본 명세서에 설명된 일부 실시형태들에 따라 GUI 가 사용자로 하여금, 회로 설계의 논리적 계층구조를 뷰잉하는 것을 가능하게 할 수 있는 방법을 예시한다.
도 4b 는 본 명세서에 설명된 일부 실시형태에 따라 전력 도메인 계층구조에 기초한 뷰를 제시한다.
도 4c 는 본 명세서에 설명된 일부 실시형태에 따라 클록 도메인 계층구조에 기초한 뷰를 제시한다.
도 4d 는 본 명세서에 설명된 일부 실시형태들에 따라 GUI 에서 회로 설계를 디스플레이하기 위한 프로세스를 예시하는 플로우차트를 제시한다.
도 5 는 본 개시물에서 설명된 일부 실시형태들에 따라 컴퓨터 시스템을 예시한다.
다음의 설명은, 임의의 당업자로 하여금, 본 발명을 실시 및 이용하는 것을 가능하게 하기 위해 제시되며, 특정 애플리케이션 및 그 요건들의 맥락에서 제공된다. 개시된 실시형태들에 대한 다양한 변형들은 당업자에게 쉽게 명백할 것이며, 본 명세서에 정의된 일반적인 원리들은 본 발명의 사상 및 범위로부터 벗어남 없이 다른 실시형태들 및 애플리케이션들에 적용될 수도 있다. 따라서, 본 발명은 도시된 실시형태들에 제한되지 않고 본 명세서에 개시된 원리들 및 특징들에 부합하는 최광의 범위를 따르게 될 것이다.
전자 설계 자동화 (EDA) 플로우의 개관
EDA 플로우가 회로 설계를 생성하는데 이용될 수 있다. 일단 회로 설계가 완성되면, 제작, 패키징, 및 어셈블리를 실시하여 집적 회로 칩들을 생성할 수 있다. EDA 플로우는 다수의 단계들을 포함할 수 있으며, 각각의 단계는 하나 이상의 EDA 소프트웨어 툴들을 이용하는 것을 수반할 수 있다. 일부 EDA 단계들 및 소프트웨어 툴들은 이하 설명된다. EDA 단계들 및 소프트웨어 툴들의 이들 예들은 단지 예시적인 목적들이며 실시형태들을 개시된 형태들에 제한하도록 의도되지 않는다.
일부 EDA 소프트웨어 툴들은 회로 설계자들로 하여금, 그들이 구현하길 원하는 기능성을 기술하는 것을 가능하게 한다. 이들 툴들은 또한, 회로 설계자들로 하여금, 기능성을 개선하고, 비용들을 체크하며 등등을 행하기 위한 왓-이프 (what-if) 플래닝을 수행하는 것을 가능하게 한다. 논리 설계 및 기능적 검증 동안, 시스템에서의 모듈들용 HDL (hardware description language), 예를 들어, System Verilog, 코드가 기입될 수 있고, 그 설계는 기능적 정확성에 대해 체크될 수 있으며, 예를 들어, 그 설계는 그것이 정확한 출력들을 산출하는 것을 보장하기 위해 체크될 수 있다.
구현을 위한 합성 및 설계 동안, HDL 코드는 하나 이상의 EDA 소프트웨어 툴들을 이용하여 넷리스트 (netlist) 로 트랜슬레이트될 수 있다. 게다가, 넷리스트는 타겟 기술에 대해 최적화될 수 있고, 테스트들이 완성된 칩들을 체크하기 위해 설계 및 구현될 수 있다. 넷리스트 검증 동안, 넷리스트는 타이밍 제약들에의 순응 및 HDL 코드와의 대응성에 대해 체크될 수 있다.
설계 플래닝 동안, 칩에 대한 전체 플로어플랜이 타이밍 및 전력에 대해 구성 및 분석될 수 있다. 물리적 구현 동안, 회로 엘리먼트들은 레이아웃에 포지셔닝될 수 있고 (배치) 및 전기적으로 커플링될 수 있다 (라우팅).
분석 및 추출 동안, 회로의 기능성은 트랜지스터 레벨에서 검증될 수 있고 기생성분 (parasitic) 들이 추출될 수 있다. 물리적 검증 동안, 설계는 전기적 이슈들, 리소그래피 이슈들, 및 회로부 (circuitry) 및 제조에 대한 정확도를 보장하기 위해 체크될 수 있다.
해상도 향상 동안, 지오메트리 조작 (geometric manipulation) 들이 설계의 제조가능성 (manufacturability) 을 향상시키기 위해 레이아웃에 대해 수행될 수 있다. 마스크 데이터 준비 동안, 설계는 제작 동안 이용되는 마스크들을 생성하기 위해 "테이프-아웃 (tape-out)" 될 수 있다.
동적 인퍼런스 포인트들
레이아웃 데이터의 수동 생성 및 편집은 구현 프로세스의 결정적인 부분이고, 그 작업을 행하는 설계자들의 생산성이 설계 팀들에게 중요하다. 상호작용적으로 조작될 필요가 있는 상당수의 그래픽 오브젝트들이 존재하며, 그 그래픽 오브젝트들은 서로에 대하여 정확하게 포지셔닝될 필요가 있다. 관련된 데이터의 사이즈는 대형 및 멀티-모니터 환경들의 경우에도, 의미있는 맥락을 제공하는 줌 레벨들에서 펜/마우스 기반 입력들을 이용하여 포인트들을 특정할 때 도전과제를 정확하게 한다.
전통적으로, 오브젝트 생성 및 편집을 위한 포인트들을 특정할 때, 사용자는 고정 그리드들에, 그리고 오브젝트들로 스냅핑하는 것에 의존하였다. 그러나, 이것은 필요한 제어를 제공하지 않으며, 여기서 포인트들은 각각의 디멘젼에서의 상이한 레퍼런스 포인트들에 대하여 특정되거나, 또는 일종의 레퍼런스에 대한 오프셋으로 특정될 필요가 있다. 사용자 생성 룰러 (ruler) 들이 가이드라인들로서 이용될 수 있지만, 이것은 사용자가 그 가이드라인들은 물론 그들이 특정하고 있는 오브젝트들을 편집하게 하는 추가적인 부담이어서, 생산성에 영향을 준다. 기존의 그래픽 오브젝트들의 경우, 전통의 1 차원 정렬 및 분포 타입들의 기능들에 대한 지원은 다수의 디멘젼들에서의 데이터를 조작할 때 매우 효율적이지 않고 이동될 레퍼런스와 오브젝트 양자가 선택되어야 하기 때문에 이용에 직관적이지 않다.
본 명세서에 설명된 일부 실시형태들은 이웃하는 그래픽 오브젝트들의 좌표들로부터 추정되는 동적 레퍼런스 포인트들에 자동적으로 정렬하고 추정된 동적 레퍼런스 포인트들로부터의 사용자 특정 오프셋들을 허용함으로써 디스플레이 상의 기존 그래픽 오브젝트들로부터의 정확한 오프셋을 가진 좌표 포인트의 선택을 용이하게 하는 사용자 조작 (user-operated) 포인팅 디바이스를 GUI 에 제공한다. 이들 실시형태들은 플로어플랜 및 레이아웃 편집 태스크들에 대한 사용자 생산성 및 정확성을 상당히 증가시킬 수 있다.
각각의 그래픽 오브젝트는 다른 오브젝트들을 포지셔닝할 때 레퍼런스로서 잠재적으로 이용될 수 있는 엔드포인트들 및 미드포인트들을 갖는 일 세트의 에지들로부터 구성된다는 것에 주목한다. 인퍼런스 포인트들은 편집된 오브젝트들을 이들 레퍼런스 포인트들과 정렬하는 것을 허용하기 위해 자동적 가이드라인들을 제공한다. 이들 가이드라인들의 교차점들은 또한 동작들에 대한 레퍼런스의 포인트들일 수 있는 로케이션들이다. 이들 인퍼런스 포인트들을 오프셋을 특정하는 추가적인 능력과 조합함으로써, 사용자는 단순하고 간소화된 인터페이스로, 오브젝터들의 상대적 포지션들에 대한 매우 정확한 제어를 제공받는다. 더욱이, 통상 레이아웃 편집기의 상호작용 툴들 모두는 데이터를 생성 및 편집하기 위한 포인트들의 사양을 수반하기 때문에, 이 일반적인 상호작용 모델은 회로 설계자의 생산성을 상당히 향상시킬 수 있는 강력하고 사용하기 쉬운 환경을 제공하기 위해 지속적으로 그리고 보편적으로 적용될 수 있다.
본 명세서에 설명된 일부 실시형태들은 레이아웃 편집을 위한 포인트들을 입력할 때 활성 인퍼런스 포인트 (예를 들어, 활성 인퍼런스 포인트는 사용자에 의해 활성인 것으로 내재적으로 또는 명시적으로 표시되었던 포인트일 수 있다) 에 대하여 오프셋 정보가 특정되는 것을 또한 허용하기 위해, 동적 인퍼런스 포인트들 및 가이드라인들의 아이디어를 확대한다. 이들 실시형태들은 오브젝트들의 구성 및 편집 동안 빠르고 사용하기 쉬운 정렬을 제공할 뿐만 아니라, 그 오브젝트들은 이들 가이드 포인트들에 대하여 정확하게 포지셔닝될 수 있다. 이들 실시형태들은 또한, GUI 피처로 하여금, 본 출원에서 레이아웃 생성 및 편집 "툴들" 모두에 적용되는 것을 가능하게 하는 일반적이고 지속적인 인터페이스를 제공한다.
일반적으로, 오브젝트의 임의의 엔드포인트 (예를 들어, 다각형의 정점) 또는 미드포인트가 편집 동작들을 위해 정렬 또는 상대적 포지셔닝을 위한 레퍼런스 포인트를 추정하는데 이용될 수 있다. 이들 추정된 레퍼런스 포인트들 (때로는 본 개시물에서 "인퍼런스 포인트들" 로 지칭됨) 은 모든 편집 및 생성 툴들 내로부터 동적으로 사용자에 의해 식별된다. 인퍼런스 포인트들은 포인트들 또는 오브젝트들을 포지셔닝할 때 정렬을 위해 그리고 스냅핑하기 위해 이용되고 있는 동적 가이드라인들을 의미한다. 다수의 인퍼런스 포인트들을 특정할 때, 이들 가이드라인들은 교차점을 생성하고 그 교차점에서 새로운 인퍼런스 포인트를 추정한다. 포인트들이 소정의 생성/편집 동작을 위해 특정됨에 따라, 그 포인트들은 또한 인퍼런스 포인트들로서 취급된다.
도 1a 내지 도 1e 는 본 명세서에 설명된 일부 실시형태들에 따라 인퍼런스 포인트들이 회로 설계 레이아웃에서 블록을 배치하는데 이용될 수 있는 방법의 일 예를 예시한다. 그래픽 오브젝트 (102) (논리적 계층구조에서의 회로 블록에 대응할 수 있다) 는 이동을 위한 레퍼런스 포인트로서 그 상부 우측 코너를 이용하여 이동되고 있다. 사용자는 상부 우측 코너를 선택하기 위해 도 1a 에 도시한 바와 같은 포인터를 이용하여 그 상부 우측 코너가 이동을 위한 레퍼런스 포인트라는 것을 표시할 수 있다. 사용자가 그래픽 오브젝트 (102) 를, 그래픽 오브젝트 (112) 의 하부 우측 코너 및 그래픽 오브젝트 (114) 의 상단 좌측 코너와 정렬되는 로케이션에 배치하길 원한다는 것을 가정한다. 사용자는 다음과 같이 본 명세서에 설명된 실시형태들을 이용하여 이 동작을 수행할 수 있다.
먼저, 사용자는 그래픽 오브젝트 (114) 의 상단 좌측 코너 및 그래픽 오브젝트 (112) 의 하부 우측 코너에 대응하는 인퍼런스 포인트들을 포인터를 이용하여 선택할 수 있다. 예를 들어, 사용자가 포인터를 인퍼런스 포인트에 근접하여 이동시키고 선택 입력을 (예를 들어, 마우스 상의 좌측 버튼을 클릭함으로써) 제공할 때, GUI 는 인퍼런스 포인트에 시각적 표시자 (예를 들어, 정사각형) 를 배치하여, 그 인퍼런스 포인트가 현재의 GUI 동작을 위해 선택되었다는 것을 표시할 수 있다. 도 1b 는 사용자가 2 개의 공백 (hollow) 정사각형들 (106 및 108) 을 이용하여 도시되는 인퍼런스 포인트들을 선택한 후의 디스플레이를 도시한다.
다음에, 사용자는 포인터를, 그래픽 오브젝트 (114) 의 상단 좌측 코너 및 그래픽 오브젝트 (112) 의 하부 우측 코너와 정렬되는 포인트에 근접하여 있는 로케이션으로 이동시킬 수 있다. 포인터가 이 포인트에 근접하여 있을 때, GUI 는 인퍼런스 포인트들로부터 (즉, 정사각형들 (106 및 108) 로부터) 연장되고 도 1c 에 음영진 정사각형 (110) 에 의해 도시된 인퍼런스 포인트에서 교차하는 점선들을 디스플레이할 수 있다. 점선들의 교차점은 활성 인퍼런스 포인트이며 (활성 인퍼런스 포인트는 GUI 동작을 수행하기 위해, 예를 들어, 그 포인트로 블록 (102) 을 이동시키기 위해 이용될 수 있는 인퍼런스 포인트이다) 이 사실은 인퍼런스 포인트를 시각적으로 강조함으로써 (예를 들어, 도 1c 에 도시한 바와 같이 정사각형 (110) 을 음영처리함으로써) 묘사될 수 있다.
사용자는 그래픽 오브젝트 (102) 를 포지셔닝하기 위해 활성 인퍼런스 포인트를 직접 이용할 수 있고, 또는 활성 인퍼런스 포인트에 대한 오프셋을 입력하기 위한 옵션을 갖는다 (예를 들어, GUI 는 사용자로 하여금, 오프셋을 입력하는 것을 가능하게 하기 위한 텍스트 입력 필드를 가진 팝-업 윈도우를 제시할 수도 있고, 또는 GUI 는 사용자가 오프셋을 특정할 수 있는 영구적인 텍스트 입력 필드를 가질 수도 있다). 도 1d 는 사용자가 그래픽 오브젝트 (102) 를 포지셔닝하기 위해 활성 인퍼런스 포인트를 직접 이용할 때의 결과를 예시한다 (이동을 위한 레퍼런스 포인트로서 도 1a 에서 선택되었던 그래픽 오브젝트 (102) 의 상단 우측 코너가 이제 활성 인퍼런스 포인트 (110) 에 위치한다는 것에 주목). 도 1e 는 사용자가 (-10, -10) 의 오프셋을 특정했고, 그 오프셋에 그래픽 오브젝트 (102) 를 배치했을 때의 결과를 예시한다. 오프셋 튜플의 제 1 값은 제 1 디멘젼, 예를 들어, X-축을 따른 오프셋 (예를 들어, 픽셀들의 수로서의, 길이 단위 등) 을 표시하고, 오프셋의 제 2 값은 제 2 디멘젼, 예를 들어, Y-축에 따른 오프셋 (예를 들어, 픽셀들의 수로서의, 길이 단위 등) 을 표시한다.
인퍼런스 포인트들은 일반적으로 임의의 GUI 동작을 수행하는데 이용될 수 있다. 예를 들어, 인퍼런스 포인트들은 다각형을 그리는데 이용될 수 있다. 구체적으로, 다각형을 그리는 동안, 사용자가 이미 생성한 다각형의 정점들은, 교차점들이 후에 다각형의 다음 정점이 생성될 수 있는 인퍼런스 포인트들로서 이용될 수 있는 가이드라인들을 연장하는데 이용될 수 있다. 다른 예로서, 인퍼런스 포인트들은 정확한 양만큼 기존의 직사각형 블록보다 더 크거나 더 작은 직사각형 블록을 생성하는데 이용될 수 있다. 치수들 113×217 (일부 길이 단위, 예를 nm) 을 가진 직사각형 블록이 레이아웃에 존재하고, 치수들 123×227 을 가진 직사각형 블록이 기존의 직사각형 블록을 둘러싸는 레이아웃에서 생성되도록 요망된다는 것을 가정한다. 본 명세서에 설명된 일부 실시형태들은 이 동작을 쉽게 수행하는데 이용될 수 있다. 사용자는 기존의 직사각형 블록의 상단 좌측 코너를 인퍼런스 포인트로서 선택하고 다른 인퍼런스 포인트 (P1) 를 생성하기 위해 (-10, 10) 의 오프셋을 제공할 수 있다. 다음에, 사용자는 기존의 직사각형 블록의 하부 우측 코너를 인퍼런스 포인트로서 선택하고 또 다른 인퍼런스 포인트 (P2) 를 생성하기 위해 (10, -10) 의 오프셋을 제공할 수 있다. 사용자는 그 후 인퍼런스 포인트들 (P1 및 P2) 을 이용하여 원하는 직사각형 블록을 생성할 수 있다.
도 1f 는 본 명세서에 설명된 일부 실시형태들에 따라 플로어플래닝 툴의 GUI 에서 그래픽 동작을 수행하기 위한 프로세스를 예시하는 플로우차트를 제시한다. 프로세스는 제 1 사용자 입력을 (예를 들어, GUI 의 포인터를 통해) 수신하는 것으로 시작되며, 여기서 제 1 사용자 입력은 제 1 인퍼런스 포인트인, 회로 설계 레이아웃에서의 제 1 그래픽과 연관된 제 1 포인트 (예를 들어, 제 1 다각형의 제 1 정점) 를 선택한다 (동작 152). 다음에, 제 2 사용자 입력이 (예를 들어, GUI 의 포인터를 통해) 수신되며, 여기서 제 2 사용자 입력은 제 2 인퍼런스 포인트인, 회로 설계 레이아웃에서의 제 2 그래픽 오브젝트와 연관된 제 2 포인트 (예를 들어, 제 2 다각형의 제 2 정점) 를 선택한다 (동작 154). GUI 는 그 후 회로 설계 레이아웃에서의 제 3 인퍼런스 포인트 (예를 들어, 정사각형 (110) 에 대응하는 인퍼런스 포인트) 를 디스플레이할 수 있으며, 여기서 제 3 인퍼런스 포인트는 제 1 인퍼런스 포인트로부터 연장되는 제 1 라인과 제 2 인퍼런스 포인트로부터 연장되는 제 2 라인의 교차점에 위치한다 (동작 156). 다음에, 제 3 사용자 입력이 (예를 들어, GUI 의 포인터를 통해) 수신되며, 여기서 제 3 사용자 입력은 회로 설계 레이아웃에서의 제 3 인퍼런스 포인트를 선택한다 (동작 158). GUI 는 그 후 제 3 인퍼런스 포인트에 기초하여 회로 설계 레이아웃에서 그래픽 동작을 수행할 수 있다 (동작 160). 구체적으로, 그래픽 동작은 제 3 인퍼런스 포인트에서 또는 제 3 인퍼런스 포인트로부터의 오프셋에서 수행될 수 있다. 후자의 경우에, 프로세스는 오프셋을 특정하는 제 4 사용자 입력을 (그래픽 동작을 수행하기 이전에) 수신할 수 있다.
일단 인퍼런스 포인트가 생성되었다면, 그것은 다른 인퍼런스 포인트들을 생성하기 위한 기반으로서 이용될 수 있다. 예를 들어, 인퍼런스 포인트 (P1) 는 다각형 정점들 (V1 및 V2) 로부터 연장되는 가이드라인들의 교차점에서 생성된다는 것을 가정한다. 이제, 인퍼런스 포인트 (P2) 는 인퍼런스 포인트 (P1) 및 제 3 다각형 정점 (V3) 으로부터 연장되는 가이드라인들의 교차점에서 생성될 수 있다. 또한, 인퍼런스 포인트 (P3) 는 다각형 정점들 (V4 및 V5) 의 교차점에서 생성될 수 있고, 제 4 인퍼런스 포인트 (P4) 는 인퍼런스 포인트 (P1 및 P3) 로부터 연장되는 가이드라인들의 교차점에서 생성될 수도 있다.
본 명세서에 설명된 실시형태들은 다음의 이점들을 갖는다 : (1) 실시형태들은 고도의 정확성을 여전히 제공하면서 매우 높은 줌 레벨에서의 편집을 허용하고, (2) 실시형태들은 편집기에서 포인트들을 특정할 때 상대적 포지셔닝을 제어하기 위한 강력하고 사용하기 쉬운 메커니즘을 제공함으로써 인터페이스를 간소화 및 단순화하고, (3) 실시형태들은 추가적인 클릭들 또는 애플리케이션에서의 다수의 편집 툴들의 이용을 요구하지 않고, 편집 기능들 모두에서의 정렬 및 상대적 포지셔닝에 대한 자동적 지원을 임베딩함으로써 커스토머 생산성을 향상시키며, 그리고 (4) 실시형태들에는 상대적 포지셔닝이 중요한 2D 또는 3D 데이터의 임의의 상호작용 편집이 이용될 수 있다.
왓-이프 혼잡
IC 를 라우팅하는 것은 원하는 기능들을 수행하는 회로들을 생성하기 위해 집적 회로 디바이스들을 전기적으로 접속하는 금속 배선들에 대한 루트들을 결정하는 것을 수반한다. 대규모 IC 칩들은 통상 라우팅 소프트웨어를 이용하여 라우팅되며, 이는 통상 "라우팅 시스템" 또는 "라우터" 로 지칭된다.
라우팅 프로세스는 통상 3 개의 스테이지들을 갖는다 : 글로벌 라우팅, 트랙 할당, 및 세부 (detailed) 라우팅. 그러나, 프로세스에서의 스테이지들의 수는 3 개보다 더 많거나 더 적을 수 있다. 글로벌 라우팅 스테이지에서, 시스템은 배선들에 대한 세부 라우팅 형상들을 생성하지 않는다. 대신에, 시스템은 멀티-핀 네트들의 토폴로지들 및 그 네트들이 라우팅 혼잡을 최소화하고 전체 배선 길이를 최소화하기 위해 검토해야 하는 영역들을 결정한다. 라우팅 혼잡은, 회로 설계의 구역에서, 라우팅 리소스들 (예를 들어, 배선 트랙들의 수) 이 그 구역에 대한 라우팅 수요 (그 구역을 통하여 라우팅되어야 하는 배선들의 수) 를 충족하기에 불충분할 때 일어난다. 트랙 할당 스테이지에서, 시스템은 트랙들에 배선들을 할당함으로써 글로벌 라우팅 플랜을 개선한다. 트랙 할당이 배선들에 대한 세부 루트들을 생성할 수도 있지만, 이 스테이지에서의 라우팅 솔루션은 이 스테이지가 통상 다음 스테이지, 즉, 세부 라우팅보다 더 단순한 라우팅 모델을 이용하기 때문에 모든 설계 룰들을 충족하지 않을 수도 있다는 것에 주목한다. 마지막으로, 세부 라우팅 스테이지에서, 시스템은 각각의 배선에 대한 정확한 경로 및 특정 형상들을 생성한다. 모든 설계 룰들은 통상 이 스테이지에서, 라우팅된 배선들이 설계 룰들 중 임의의 룰들을 위반하지 않는 것을 보장하는데 이용된다는 것에 주목한다.
라우팅은 통상 회로 설계 플로우에서의 다수의 단계들에서 수행된다. 예를 들어, 플로우플래닝 동안, 글로벌 라우팅은, 소정의 플로어플랜이 회로 설계 플로우에서의 실제 라우팅 단계 동안 라우팅 혼잡을 야기할 것으로 예상되는지를 체크하기 위해 수행될 수 있다 (플로어플래닝 동안 이용된 글로벌 라우팅은 개략적일 수 있으며, 즉 그것은 실제 라우팅 단계 동안 이용되는 글로벌 라우팅 단계만큼 정확하지 않을 수도 있다). 회로 블록들은 불필요한 상세들을 숨기기 위해 추출되어, 라우팅 프로세스의 속도를 높일 수 있다. 구체적으로, 플로어플래닝 툴은 매크로들 및 표준 셀들을 블록들로서 표현할 수 있다. 각각의 매크로 및 표준 셀은 통상 그들의 네트 할당들에 기초하여 함께 전기적으로 접속되어야 하는 다수의 핀들을 갖는다.
글로벌 라우팅 솔루션 (즉, 글로벌 라우팅 프로세스의 출력) 은 그 후 회로 블록들의 핀들이 배선들을 이용하여 전기적으로 접속될 때 라우팅 혼잡이 일어날 것으로 예상되는지 아닌지 여부를 결정하는데 이용될 수 있다. 글로벌 라우팅 솔루션이 혼잡이 회로 설계의 하나 이상의 구역들에서 일어날 가능성이 있다는 것을 표시한다면, 사용자는 플로어플래닝 툴을 이용하여 라우팅 혼잡을 완화시키기 위해 블록들/하드 매크로들/파티션들을 리사이징 및 이동시킬 수 있다. 글로벌 라우팅 기반 혼잡 분석은 단지 예시 목적들을 위해 본 개시물에 이용되었고, 본 명세서에 설명된 실시형태들의 범위를 한정하도록 의도되지 않는다. 다른 기법들, 예를 들어, 배치 기반 통계 모델들, 가상 라우팅 기반 기법들 등이 또한 혼잡을 결정하는데 이용될 수 있다.
혼잡을 결정하기 위해 이용되는 기법에 상관없이, 종래의 접근법들은 그들이 초기 플로어플랜을 프로세싱했던 것과 본질적으로 동일한 방식으로 변형된 플로어플랜을 프로세싱함으로써 변형된 플로어플랜에 대한 혼잡을 결정한다. 그 결과, 종래의 접근법들에서, 플로어플랜 혼잡이 없게 하기 위해 하나 이상의 채널들을 리사이징하는 프로세스는 블록들/하드 매크로들/파티션들을 리사이징 또는 이동시키는 것, 및 변형된 플로어플랜에 대해, 그 변형된 플로어플랜이 혼잡이 없는지 여부를 결정하기 위해 (예를 들어, 변형된 플로어플랜에 대한 업데이트된 글로벌 라우팅 솔루션을 결정함으로써) 완전히 진행된 (full blown) 혼잡 컴퓨테이션을 수행하는 것의 많은 시간을 소비하는 반복들을 수반한다.
종래의 접근법들과 대조하여, 본 명세서에 설명된 일부 실시형태들은 플로어플랜에 대한 변형들이 혼잡 문제를 해결할지 안할지 여부에 관하여 사용자에게 실질적으로 순간적인 피드백을 제공한다. 구체적으로, 본 명세서에 설명된 일부 실시형태들은, 이들 실시형태들이 그 변형이 혼잡에 대해 갖는 영향을 결정하기 위해 변형된 플로어플랜에 대해 글로벌 라우팅 (또는 유사한 리소스 집중적 프로세스) 을 수행하지 않기 때문에 실질적으로 순간적인 피드백을 부분적으로 제공한다.
도 2a 내지 도 2c 는 본 명세서에 설명된 일부 실시형태들에 따라 라우팅 혼잡에 관한 실질적으로 순간적인 피드백이 GUI 에서 제공될 수 있는 방법의 예들을 예시한다. 도 2a 에서, 채널 A 및 채널 B 는 플로어플랜 오브젝트들 (202 및 204) 사이에 존재하는 라우팅 리소스들을 표현한다. 채널 A 및 채널 B 는 도 2a 에서 수직 방향으로 배선들을 라우팅하기 위해 이용될 수 있다. 마찬가지로, 채널 C 는 플로어플랜 오브젝트들 (204 및 206) 사이에 존재하며, 수평 방향으로 배선들을 라우팅하기 위해 이용될 수 있다.
도 2a 에 도시된 플로어플랜은 글로벌 라우팅 툴에 제공될 수 있고, 글로벌 라우팅의 결과는 채널 A, 채널 B, 및 채널 C 의 수요들 및 용량들을 결정하는데 이용될 수 있다. 채널의 수요 값은 채널을 통하여 라우팅될 것으로 예상되는 배선들의 수를 표현할 수 있고, 용량 값은 채널을 통하여 라우팅될 수 있는 배선들의 수를 표현할 수 있다. 그 수요 및 용량 값들이 다른 단위들로 표현될 수 있다는 것이 당업자에게 명백할 것이다.
각각의 채널에 대한 수요들 및 용량들은 GUI 에서 도시될 수 있는 혼잡 표시자를 결정하는데 이용될 수 있다. 일부 실시형태들에서, 채널에 대한 그 수요 및 용량 값들 간의 비율은 GUI 에서의 비율로서 도시될 수 있다. 예를 들어, 도 2a 는 채널 A 에 대한 수요 및 용량 값들이 각각 90 및 150 임을 예시한다. 이들 값들은 GUI 에서 도시되는 혼잡 표시자 "90/150" 를 생성하는데 이용될 수 있다. 마찬가지로, 채널 B 및 채널 C 에 대한 혼잡 표시자들은 각각 "60/130" 및 "50/30" 이다. 각 채널에서의 양측식 (double-sided) 화살표는 채널 폭이 측정되는 방향을 예시한다. 도 2a 내지 도 2c 에 도시된 혼잡 표시자들은 단지 예시 목적들을 위한 것이며 본 명세서에 개시된 실시형태들의 범위를 제한하도록 의도되지 않는다. 일반적으로, 혼잡 표시자는 채널에서의 혼잡의 정도를 시각적으로 표현하는 임의의 표시자일 수 있다. 일부 실시형태들에서, 채널의 혼잡은 컬러 코딩될 수 있으며, 예를 들어, 컬러 그린은 낮은 혼잡에 대응하고, 컬러 옐로우는 중간 혼잡에 대응하며, 컬러 레드는 높은 혼잡에 대응할 수 있다.
채널에 대한 혼잡 표시자가 임계값 (예를 들어, 1.0 또는 0.9 등) 보다 더 크다면, 사용자는 혼잡을 완화시키기 위해 하나 이상의 플로어플랜 오브젝트들을 리사이징 및/또는 이동시키기로 결정할 수도 있다. 예를 들어, 도 2a 에서, 채널 A 및 채널 B 에 대한 혼잡 표시자들은 이들 채널들이 혼잡하지 않다는 것을 표시한다. 그러나, 채널 C 에 대한 혼잡 표시자는 이 채널이 혼잡하다는 것을 표시한다.
플로어플랜에서의 혼잡을 완화시키기 위해, 사용자는 플로어플랜 오브젝트들을 리사이징 및/또는 변형시킬 수도 있다. 플로어플랜에 대한 하나 이상의 변형들을 검출하는 것에 응답하여, 본 명세서에 설명된 일부 실시형태들은 사용자의 변형들이 라우팅 혼잡에 미친 영향을 사용자가 즉시 알 수 있도록 실질적으로 순간적으로 혼잡 표시자들을 업데이트한다. 도 2b 는 채널들에 대한 혼잡 표시자들이 실질적으로 순간적으로 업데이트될 수 있는 방법을 예시한다. 도 2b 에 도시한 바와 같이, 사용자는 플로어플랜 오브젝트 (202) 의 사이즈를 증가시켰고, 플로어플랜 오브젝트 (204) 를 위로 (이는 채널 C 의 폭을 증가시켰음) 그리고 왼쪽으로 (이는 채널 B 의 폭을 감소시켰음) 이동시켰다. 수요 값들은 플로어플랜 오브젝트들을 리사이징 및/또는 이동시키는 것이 수요를 변경시키지 않기 때문에 도 2a 및 도 2b 에서와 동일하다는 것에 주목한다. 한편, 용량은 채널의 폭이 증가할 때 증가하고, 채널의 폭이 감소할 때 감소한다. 예를 들어, 채널 A 의 용량은 150 에서 120 으로 감소하였고, 채널 B 의 용량은 130 에서 100 으로 감소하였으며, 채널 C 의 용량은 30 에서 90 으로 증가하였다.
일부 실시형태들은 원래의 채널 폭과 새로운 채널 폭의 비율에 기초하여 채널 용량을 변경한다. 예를 들어, 원래의 채널 폭이 20 유닛들이고, 새로운 채널 폭이 15 유닛들이라면, 새로운 채널 용량을 얻기 위해, 원래의 채널 용량에는 15/20=3/4 가 승산될 수 있다. 반대로, 원래의 채널 폭이 15 유닛들이고, 새로운 채널 폭이 20 유닛들이라면, 새로운 채널 용량을 얻기 위해, 원래의 채널 용량에는 20/15=4/3 이 승산될 수 있다.
도 2c 는 플로어플랜 오브젝트를 이동시키는 것이 기존의 채널을 제거하고 새로운 채널을 생성할 수 있는 일 예를 예시한다. 도 2c 에 도시한 바와 같이, 플로어플랜 오브젝트 (206) 는 플로어플랜 오브젝트 (204) 의 최좌측 에지를 넘어 왼쪽으로 이동되었다. 그 결과, 채널 C 는 더 이상 존재하지 않고, 따라서 GUI 에서 제거된다. 그러나, 새로운 채널 - 채널 D - 이 플로어플랜 오브젝트들 (302 및 206) 사이에 생성되었다. 채널 D 에 대한 채널 용량은 채널 폭에 기초하여 컴퓨팅될 수 있다. 그러나, 채널 D 에 대한 수요는 채널 C 에 대해 존재하였던 수요와는 실질적으로 상이할 수 있다 (예를 들어, 채널 C 를 통하여 라우팅되고 있던 모든 배선들이 채널 D 를 통하여 라우팅될 것임을 가정하는 것이 부정확하기 때문이다). 따라서, 본 명세서에 설명된 일부 실시형태들은 새롭게 생성된 채널의 수요를 알려져 있지 않은 것으로 마크하고, 이에 따라 GUI 에서 혼잡 표시자를 디스플레이한다. 예를 들어, 혼잡 표시자 "?/90" 이 채널 D 를 위해 도시될 수 있으며, 여기서 "?" 심볼은 채널에 대한 수요가 알려져 있지 않다는 것을 표시한다. 새롭게 생성된 채널은 또한 그 채널에 대한 수요가 알려져 있지 않다는 것을 표시하는 컬러를 할당받을 수도 있다.
도 2d 는 본 명세서에 설명된 일부 실시형태들에 따라 혼잡 표시자를 디스플레이하기 위한 프로세스를 예시하는 플로우차트를 제시한다. 프로세스는 GUI 에서 채널에 대한 혼잡 표시자를 디스플레이하는 실시형태로 시작될 수 있으며, 여기서 혼잡 표시자는 회로 설계 레이아웃에 대해 혼잡 분석을 수행하는 것에 기초하여, 예를 들어, 전체 회로 설계 레이아웃에 대해 글로벌 라우팅을 수행함으로써 결정된다 (동작 252). 다음에, 실시형태는 변형된 회로 설계 레이아웃을 획득하기 위해 사용자 입력에 기초하여 회로 설계 레이아웃을 변형시킬 수 있으며, 여기서 변형시키는 것은, 채널의 폭을 새로운 폭 값으로 변경한다 (동작 254). 채널 길이의 변경은 채널 용량을 바꾸지 않고, 채널 폭의 변경은 채널 용량을 바꾼다는 것에 주목한다. 실시형태는 그 후 새로운 폭 값에 기초하여 채널에 대한 업데이트된 용량 값을 결정할 수 있으며, 여기서 업데이트된 용량 값은 채널에서의 이용가능한 라우팅 리소스들의 양에 대응한다 (동작 256). 다음에, 실시형태는 변형된 회로 설계 레이아웃에 대해 혼잡 분석을 수행하지 않고, 예를 들어, 전체 변형된 회로 설계 레이아웃에 대해 글로벌 라우팅을 수행하지 않고 업데이트된 용량 값에 기초하여 업데이트된 혼잡 표시자를 결정할 수 있다 (동작 258). 실시형태는 그 후 GUI 에서 채널에 대한 업데이트된 혼잡 표시자를 디스플레이할 수 있다 (동작 260).
순간적인 핀-업데이트들
핀 할당은 회로 설계에서의 파티션 또는 블록에 핀 로케이션들을 할당하는 프로세스를 나타낸다. 파티션은 회로 설계의 일 부분이다 (파티션은 통상 그 파티션 내에 있는 셀들의 상세들을 포함한다). 파티션은 칩에서의 물리적 영역과 연관되지 않고, 플로어플래닝 툴의 GUI 는 플로어플랜에 배치될 수 있는 플로어플랜 오브젝트로서 파티션을 취급하지 않는다. 한편, 블록은 회로 설계의 일 부분을 포함하는 회로 설계 레이아웃에서의 물리적 영역이다. 플로어플래닝 툴의 GUI 는 배치될 수 있는 플로어플랜 오브젝트로서 블록을 취급할 수 있고, GUI 는 블록에 대해 다양한 동작들 (예를 들어, 형상을 변경, 이동, 사이징) 을 수행하는데 이용될 수 있다.
핀 할당은 파티션 또는 블록에 대해 수행될 수 있다. 파티션 또는 블록의 경계들 상의 핀들은 블록 내의 하나 이상의 셀들에 전기적으로 접속되고, 다른 파티션 또는 블록 내의 다른 셀의 입력에 전기적으로 접속되어야 하는 파티션 또는 블록 내의 셀의 출력은 파티션 또는 블록 내의 핀을 통과해야 한다.
파티션 또는 블록에 대한 원래의 세트의 핀 로케이션들은 회로 설계 레이아웃에 대해 글로벌 라우팅을 수행한 후, 글로벌 라우팅 솔루션에서의 배선들이 파티션 또는 블록의 경계들을 횡단 (cross) 하는 로케이션들에 핀들을 생성함으로써 결정될 수 있다. 종래의 접근법들에서, 회로 설계 레이아웃이 변경될 때 (예를 들어, 파티션 또는 블록이 리사이징되거나 형상이 변경될 때), 글로벌 라우팅이 변형된 회로 설계 레이아웃에 대해 수행되고, 새로운 핀 로케이션들이 새로운 라우팅 솔루션에 기초하여 결정된다. 변형된 회로 설계 레이아웃에 대해 글로벌 라우팅을 수행하는 것은 오랜 시간이 걸릴 수 있으며, 따라서 종래의 접근법들은 사용자가 회로 설계 레이아웃에 대해 변경들을 행한 후 핀 로케이션들을 실질적으로 순간적으로 업데이트할 수 없다.
본 명세서에 설명된 일부 실시형태들은 회로 설계 레이아웃이 변형될 때 (예를 들어, 사용자가 GUI 를 이용하여 파티션 또는 블록의 형상을 변경 또는 리사이징할 때) 파티션 또는 블록의 핀 로케이션들을 실질적으로 순간적으로 업데이트한다. 일반적으로, 본 명세서에 설명된 실시형태들은 핀들이 이동되는 양을 최소화하려고 노력한다. 구체적으로, 도 3a 는 본 명세서에 제시된 일부 실시형태들에 따라 GUI 에서 핀 로케이션들을 업데이트하기 위한 프로세스를 예시하는 플로우차트를 제시한다. 프로세스는 변형된 회로 설계 레이아웃을 획득하기 위해 사용자 입력에 기초하여 회로 설계 레이아웃을 변형시키는 것으로 시작된다 (동작 352). 에지의 길이가 증가하였다면 (동작 354 의 "예" 분기), 원래의 핀 로케이션들은 변경되지 않는다 (동작 360). 한편, 에지의 길이가 감소했다면 (동작 354 의 "아니오" 분기), 실시형태는, 원래의 세트의 핀 로케이션들이 보존될 수 있는지를 체크할 수 있다 (동작 356). 만약 그렇다면 (동작 356 의 "예" 분기), 원래의 핀 로케이션들은 변경되지 않는다 (동작 360). 원래의 핀 로케이션들이 보존될 수 없다면 (동작 356 의 "아니오" 분기), 새로운 세트의 핀 로케이션들이 전력 핀들의 로케이션들, 데이터 신호 핀들의 상대적 순서, 및 고정 핀들의 로케이션들을 보존하면서 이웃하는 데이터 신호 핀들 간의 거리들을 감소시킴으로써 획득된다 (동작 358).
일부 실시형태들에서, 이웃하는 신호 핀들 간의 거리들은 그 신호 핀들 간의 원래의 거리에 비례하여 감소된다. 다른 실시형태들에서, 먼저 (길이가 변형되었던) 에지의 엔드포인트들에 가까운 이웃하는 신호 핀들 간의 거리가 감소되고, 그것이 충분하지 않다면, 에지의 중심에 가까운 이웃하는 신호 핀들 간의 거리들이 감소된다. 이 프로세스 동안, 신호 핀들의 순서는 보존된다. 소정의 타입들의 핀들은 에지의 길이가 감소할 때조차 이동되지 않는다. 구체적으로, 전력 및 접지 핀들 및 고정되는 것으로 표시된 다른 핀들은 이동되지 않는다. 고정 핀이 신호 핀이라면, 고정 신호 핀의 양편의 신호 핀들은 신호 핀들의 순서를 위반하지 않고 이동된다. 일단 새로운 세트의 핀 로케이션들이 결정되었다면, 새로운 세트의 핀 로케이션들은 GUI 에서 디스플레이될 수 있다. 상기 설명된 실시형태는 새로운 세트의 핀 로케이션들을 결정하기 위해 변형된 회로 설계 레이아웃에 대해 글로벌 라우팅을 수행하지 않는다는 것에 주목한다. 고정 핀 로케이션이 더 이상 에지 상에 있지 않을 정도로 에지가 감소한다면, 고정 핀은 제거될 수 있고, 사용자가 적절한 로케이션에 고정 핀을 수동으로 배치할 수 있도록 이 사실을 사용자에게 경보할 수도 있다. 핀들이 감소된 에지 사이즈에 수용될 수 없을 정도로 에지가 감소한다면, 에지가 더 이상 핀들을 수용할 수 없다는 것을 사용자에게 경보하기 위해 경고 (warning) 를 이슈할 수 있다. 이러한 시나리오에서, 핀들은 에지 상에 배치되지만, 그 핀들은 그들이 감소된 에지 사이즈에 수용될 수 없기 때문에 서로 오버랩될 수도 있다.
도 3b 내지 도 3g 는 본 명세서에 설명된 일부 실시형태들에 따라 회로 설계 레이아웃이 변형될 때 핀 로케이션들이 실질적으로 순간적으로 업데이트될 수 있는 방법을 예시한다.
도 3b 는 신호 핀들 (D1 내지 D10), 및 전력/접지 핀 (P1) 을 가진 블록 또는 파티션 (302) 을 예시한다. 도 3b 에 도시된 핀 로케이션들은 예를 들어 회로 설계에 대해 글로벌 라우팅을 수행하고, 배선들이 블록 또는 파티션 (302) 의 경계들을 횡단한 로케이션들을 식별함으로써 결정되었던 원래의 세트의 핀 로케이션들일 수 있다. 신호 핀들은 데이터, 어드레스, 및/또는 제어 신호들을 운반할 수 있다. 전력/접지 핀들은 블록 또는 파티션 (302) 내의 회로부에 전력을 제공한다. 하나 이상의 핀들 (신호 핀들 및/또는 전력/접지 핀들 중 어느 하나) 은 사용자에 의해 또는 EDA 툴에 의해 고정되는 것으로 식별될 수도 있다. 도 3c 는 좌측 및 우측 에지들의 길이들을 감소시킨 리사이징 동작을 수행한 후의 블록 또는 파티션 (302) 을 예시한다 (블록 또는 파티션 (302) 의 하부 에지가 위로 이동되었다). 핀들 (P1 및 D1 내지 D3) 의 로케이션들은 그 핀 로케이션들이 감소된 에지 길이에 수용될 수 있기 때문에 변경되지 않았다는 것에 주목한다. 일부 실시형태들에서, 우측 에지 상의 이웃하는 신호 핀들 (즉, 핀들 (D4 내지 D8)) 간의 거리는 원래의 거리들에 비례하여 감소되며, 즉, 에지의 원래의 길이가 L1 이었고, 감소된 길이는 L2 이며, 2 개의 이웃하는 핀들 간의 거리는 L3 이었다면, 그 2 개의 핀들 간의 새로운 거리는 L4=L3×L2/L1 일 수 있다. 이 실시형태는 도 3c 에 예시된다. 다른 실시형태들에서, 신호 핀은 그것이 이동되어야 하는 경우에만 이동된다. 예를 들어, 일부 실시형태들에서, 단지 신호 핀 (D8) 만이 위로 이동될 수도 있지만, 신호 핀들 (D4 내지 D7) 의 로케이션들은 보존될 수도 있다. 하부 에지의 길이가 변경되지 않았기 때문에, 하부 에지 상의 신호 핀들 (D9 및 D10) 의 로케이션들은 미변경 상태이다.
도 3d 는 도 3b 와 동일하다. 도 3e 는 좌측 및 우측 에지들의 길이들을 감소시킨 리사이징 동작을 수행한 후의 블록 또는 파티션 (302) 을 예시한다 (블록 또는 파티션 (302) 의 상단 에지가 아래로 이동되었다). 이 예에서, 우측 및 좌측 에지 양자 상의 신호 핀들은 도 3e 에 도시한 바와 같이 이동되었다. 전력/접지 핀 (P1) 이 이동되지 않았고, 좌측 에지 상의 핀들의 상대적 순서가 변경되지 않았다 (전력/접지 핀 (P1) 은 도 3d 에서는 신호 핀들 (D1 및 D2) 사이에 있지만, 도 3e 에서는 그 2 개의 신호 핀들 사이에 없다) 는 것에 주목한다. 그러나, 신호 핀들 (D1 내지 D3) 간의 상대적 순서는 블록 또는 파티션 (302) 의 좌측 에지 상에서 유지되었다. 신호 핀들의 순서를 보존하는 것은 라우팅 동안의 문제들을 회피하기 위해 중요하다 (신호 핀들의 순서가 보존되지 않으면, 신호 핀들에 전기적으로 접속되는 배선들은 횡단될 필요가 있을 수도 있으며 이는 라우팅 동안 문제가 될 수도 있다).
도 3f 는 도 3b 와 동일하다. 도 3g 는 블록 또는 파티션 (302) 의 형상을 변경한 후의 블록 또는 파티션 (302) 을 예시한다. 구체적으로, 블록 또는 파티션 (302) 의 하부 우측 코너가 안으로 잘렸다. 이 예에서, 하부 및 우측 에지 상의 신호 핀들 중 일부는 도 3g 에 도시한 바와 같이 이동되었다. 좌측 에지 상의 전력/접지 핀 (P1) 및 신호 핀들 (D1 내지 D3) 은 이동되지 않았다. 마찬가지로, 우측 에지 상의 신호 핀들 (D4 내지 D7) 및 하부 에지 상의 신호 핀 (D10) 은 이동되지 않았다. 하부 에지 상에 있었던 신호 핀 (D9) 은 에지 E1 로 이동되었고, 우측 에지 상에 있었던 신호 핀 (D8) 은 에지 E2 로 이동되었다. 새로운 에지들 (예를 들어, 에지들 E1 및 E2) 이 블록 또는 파티션에 추가될 때, 소정의 배향을 갖는 에지 상의 핀들은 동일한 배향을 가진 새로운 에지로 이동된다. 예를 들어, 핀 (예를 들어, 핀 (D9)) 이 수평 에지 (예를 들어, 하부 에지) 상에 있다면, 그 핀은 형상이 변경된 후 새로운 수평 에지 (예를 들어, 에지 (E1)) 로 이동된다. 마찬가지로, 핀 (예를 들어, 핀 (D8)) 이 수직 에지 (예를 들어, 우측 에지) 상에 있다면, 그 핀은 새로운 수직 에지 (예를 들어, 에지 (E2)) 로 이동된다. 핀들이 수평 에지들 상에 있다는 것만을 고려하거나 또는 핀들이 수직 에지들 상에 있다는 것만을 고려한다면, 신호 핀들의 상대적 순서는 도 3g 에서 보존된다는 것에 주목한다. 그러나, 도 3g 에서 블록 또는 파티션 (302) 주위에 에지 트래버설 (edge traversal) 을 수행한다면, 신호 핀들의 순서가 보존되지 않았다. 구체적으로, 블록 또는 파티션 (302) 의 상단 우측 코너에서 하부 좌측 코너로의 시계방향 에지 트래버설을 수행한다면, 신호 핀들의 순서는 도 3f 및 도 3g 에서 상이하다.
일단 새로운 핀 로케이션들이 결정되었다면, 새로운 핀 로케이션들은 회로 설계 레이아웃에서 배선 트랙 로케이션들로 스냅핑될 수 있다. 예를 들어, 새로운 핀 로케이션이 로케이션 2.42 에 있고 (핀 로케이션들은 에지 상의 레퍼런스 포인트로부터의 길이 단위의 거리로 표현될 수 있다), 가장 가까운 배선 트랙이 할당 2.4 에 있다면, 새로운 핀 로케이션은 2.42 에서 2.4 로 스냅핑 (즉, 변경) 될 수 있다. 일부 실시형태들에서, 2 개 이상의 핀들이 동일한 배선 트랙 로케이션으로 스냅핑했다면, 실시형태는 상이한 금속층에서 2 개 이상의 핀들의 각각에 대한 핀 로케이션을 할당할 수 있다. 예를 들어, 2 개의 핀 로케이션들이 로케이션 2.4 로 스냅핑한다면, 하나의 핀 로케이션은 금속층 (M1) 에 할당될 수 있고, 다른 하나의 핀 로케이션은 금속층 (M2) 에 할당될 수 있다.
계층적 뷰
회로 설계가 예를 들어, 회로 설계용 HDL 코드에 의해 정의될 수 있는 논리적 계층구조를 갖는다. 예를 들어, HDL 코드는 프로세싱 블록이 승산기 블록 및 가산기 블록을 포함하고, 그 승산기 및 가산기 블록들이 결국 그들 내에 다른 블록들을 포함한다는 것을 특정할 수도 있다. 플로어플래닝 툴의 GUI 는 사용자로 하여금, 논리적 계층구조에 따라 회로 설계를 뷰잉하는 것을 가능하게 할 수 있다. 도 4a 는 본 명세서에 설명된 일부 실시형태들에 따라 GUI 가 사용자로 하여금, 회로 설계의 논리적 계층구조를 뷰잉하는 것을 가능하게 할 수 있는 방법을 예시한다. 뷰 (400) 는 블록들 (B1 내지 B4) 을 포함한다. 블록 B1 은 회로 엘리먼트들 (404 내지 408) 을 포함하고, 블록 B3 은 회로 엘리먼트들 (416 내지 422) 을 포함한다. 블록 B2 는 회로 엘리먼트 (410), 및 회로 엘리먼트들 (412 및 414) 을 포함하는 블록 B4 를 포함한다. 명료함을 위해, 상이한 회로 엘리먼트들의 핀들을 전기적으로 접속하는 네트들은 도 4a 내지 도 4c 에 도시되지 않았다.
회로 설계는 다수의 전압 도메인들, 다수의 전력 도메인들, 및/또는 다수의 클록 도메인들을 가질 수 있다. 구체적으로, 회로 설계에서의 각각의 회로 엘리먼트는 특정 전압, 전력 및/또는 클록 도메인과 연관될 수 있다. 일반적으로, 각각의 회로 엘리먼트는 하나 이상의 속성 타입들에 대응하는 하나 이상의 속성 값들과 연관될 수 있다. 전압 도메인, 전력 도메인, 및 클록 도메인은 속성 타입들의 예들이다. 특정 전압 도메인에 대응하는 특정 전압 도메인 식별자, 특정 전력 도메인에 대응하는 특정 전력 도메인 식별자, 또는 특정 클록 도메인에 대응하는 특정 클록 도메인 식별자가 속성 타입에 대응하는 속성 값의 예들이다.
때로는 특정 속성 타입에 기초하여 회로 엘리먼트들을 그룹화함으로써 (예를 들어, 전압, 전력, 또는 클록 도메인들에 기초하여 그룹화됨) 회로 설계를 뷰잉하는 것이 유용하다. 본 명세서에 설명된 일부 실시형태들은, 회로 설계자로 하여금, 하나 이상의 속성 타입들에 기초하여 회로 설계를 뷰잉하는 것을 가능하게 한다. 예를 들어, 사용자는 전압, 전력, 또는 클록 도메인들의 관점에서 회로 설계를 (즉, 논리적 계층구조에 기초하여 회로 설계를 뷰잉하는 대신에, 또는 그것에 추가하여) 뷰잉하길 원할 수도 있다.
일부 속성들은 계층적일 수 있다. 구체적으로, 전압, 전력, 및 클록 도메인들은 계층적일 수 있다. 예를 들어, 제 1 전력 도메인은, 제 2 전력 도메인이 오프일 때마다 제 1 전력 도메인이 항상 오프라면 제 2 전력 도메인의 계층구조 내에 있는 것으로 간주될 수 있다. 회로 설계 뷰가 소정의 속성에 기초하여 생성될 때, 회로 설계에서의 속성 계층구조는 시각적으로 명백해질 수 있다. 회로 엘리먼트들이 속성 타입에 기초하여 그룹화되는 회로 설계를 뷰잉하는 것은 사용자로 하여금, 새로운 방식들로 회로 설계에서의 회로 엘리먼트들 간의 연관성들을 이해하는 것을 가능하게 하여, 사용자가 회로 설계들을 설계 및 디버깅하는 것을 용이하게 할 수 있다.
도 4b 는 본 명세서에 설명된 일부 실시형태들에 따라 전력 도메인 계층구조에 기초한 뷰를 제시한다. 뷰 (430) 는 뷰 (400) 에서 디스플레이되었던 동일한 회로 엘리먼트들을 포함하지만, 그들은 이제 그들의 전력 도메인들에 기초하여 그룹화된다. 구체적으로, 회로 엘리먼트들 (410 및 412) 은 전력 도메인 P1 에 있으며, 즉, 회로 엘리먼트들 (410 및 412) 은 전력 도메인 속성 타입에 대응하는 속성 값 (P1) 과 연관된다. 마찬가지로, 회로 엘리먼트 (414) 는 전력 도메인 P2 에 있고, 회로 엘리먼트들 (406, 416 및 422) 은 전력 도메인 P4 에 있고, 회로 엘리먼트들 (418, 404) 은 전력 도메인 P5 에 있으며, 회로 엘리먼트들 (408 및 420) 은 전력 도메인 P3 에 있다. 게다가, 뷰 (430) 는 전력 도메인들 (P4 및 P5) 이 전력 도메인 P3 내에 있는 전력 도메인 계층구조를 예시한다.
뷰는 각각의 회로 엘리먼트와 연관된 다른 속성 값들을 디스플레이할 수 있다. 게다가, 뷰는 다수의 속성들에 기초하여 회로 엘리먼트들을 그룹화하고 그 그룹화한 것들을 동시에 디스플레이할 수 있다. 예를 들어, 뷰 (430) 는 전력 도메인들 (P1 및 P2) (이는 그들의 전력 도메인들에 기초하여 회로 엘리먼트들을 그룹화함) 이 블록 (B1) (이는 도 4a 에 도시한 바와 같이 논리적 계층구조에 기초하여 회로 엘리먼트들을 그룹화함) 내에 있다는 것을 도시한다.
도 4c 는 본 명세서에 설명된 일부 실시형태들에 따라 클록 도메인 계층구조에 기초한 뷰를 제시한다. 뷰 (440) 는 뷰 (400) 에서 디스플레이되었던 동일한 회로 엘리먼트들을 포함하지만, 그들은 이제 그들의 클록 도메인들에 기초하여 그룹화된다. 클록 도메인은 일반적으로 그들 간에 고정 위상 및 주파수 관계를 갖는 단일 클록 또는 일 세트의 클록들 중 어느 하나에 의해 드라이빙되는 회로 설계의 일 부분으로서 정의될 수 있다. 예를 들어, 일정한 위상 차이를 갖는 동일한 주파수의 2 개의 클록들은 동일한 클록 도메인 내에 있는 것으로 간주될 수 있다. 마찬가지로, 고정 주파수 관계 (예를 들어, 일방의 클록은 타방의 클록의 주파수의 1/2 을 갖는다) 및 또한 고정 위상 차이를 갖는 2 개의 클록들은 또한, 동일한 클록 도메인에 속하는 것으로 간주될 수 있다. 구체적으로, 회로 엘리먼트들 (410, 416, 420) 은 클록 도메인 C1 에 있으며, 즉 회로 엘리먼트들 (410, 416, 420) 은 클록 도메인 속성 타입에 대응하는 속성 값 (C1) 과 연관된다. 마찬가지로, 회로 엘리먼트들 (404, 406, 408, 412, 414, 418, 및 422) 은 클록 도메인 C2 에 있다.
도 4d 는 본 명세서에 설명된 일부 실시형태들에 따라 GUI 에서 회로 설계를 디스플레이하기 위한 프로세스를 예시하는 플로우차트를 제시한다. 프로세스는 GUI 에서 회로 설계의 제 1 뷰를 디스플레이함으로써 시작될 수 있으며, 여기서 제 1 뷰는 회로 엘리먼트들을 회로 설계의 논리적 계층구조에 따라 계층적 블록들로 그룹화하며, 회로 설계에서의 적어도 일부 회로 엘리먼트들은 하나 이상의 속성 타입들에 대응하는 하나 이상의 속성 값들과 연관된다 (동작 452). 다음에, 속성 타입 (예를 들어, 전압, 전력, 또는 클록 도메인) 에 기초하여 회로 설계를 디스플레이하라는 요청이 수신될 수 있고, 그 속성 타입에 기초하여 회로 설계를 디스플레이하라는 요청을 수신하는 것에 응답하여, 실시형태는 회로 설계의 제 2 뷰를 생성할 수 있으며, 여기서 제 2 뷰는 회로 엘리먼트들을 속성 타입에 대해 동일한 속성 값을 갖는 블록들로 그룹화한다 (동작 454). 실시형태는 그 후 GUI 에서 회로 설계의 제 2 뷰를 디스플레이할 수 있다 (동작 456).
예를 들어, 제 1 뷰는 도 4a 에 대응할 수 있다. 속성 타입이 전력 도메인이라면, 제 2 뷰를 생성하는 것은 각각의 회로 엘리먼트를 그 회로 엘리먼트의 전력 도메인에 기초한 블록에 할당하는 것을 수반할 수 있다. 제 2 뷰는 도 4b 에 대응할 수 있다. 도 4b 에 도시한 바와 같이, 제 2 뷰에서의 블록들은 전력 도메인 계층구조에 대응하는 계층적 구조를 가질 수 있다. 속성 타입이 클록 도메인이라면, 제 2 뷰를 생성하는 것은 각각의 회로 엘리먼트를 그 회로 엘리먼트의 클록 도메인에 기초한 블록에 할당하는 것을 수반할 수 있다. 이 경우에, 제 2 뷰는 도 4c 에 대응할 수 있다.
컴퓨터 시스템
도 5 는 본 개시물에 설명된 일부 실시형태들에 따라 컴퓨터 시스템을 예시한다. 컴퓨터 시스템 (502) 은 프로세서 (504), 메모리 (506), 및 저장 디바이스 (508) 를 포함할 수 있다. 컴퓨터 시스템 (502) 은 디스플레이 디바이스 (514) (이는 디스플레이 영역 내의 터치의 존재, 로케이션, 및/또는 움직임을 검출가능할 수도 있고 또는 검출가능하지 않을 수도 있다), 키보드 (510), 및 포인팅 디바이스 (512) 에 커플링될 수 있다. 저장 디바이스 (508) 는 오퍼레이팅 시스템 (516), 애플리케이션 (518), 및 데이터 (520) 를 저장할 수 있다. 데이터 (520) 는 애플리케이션 (518) 에 의해 요구된 입력 및/또는 애플리케이션 (518) 에 의해 생성된 출력을 포함할 수 있다.
컴퓨터 시스템 (502) 은 본 개시물에 내재적으로 또는 명시적으로 설명되는 임의의 방법으로 하나 이상의 동작들을 (자동적으로나 또는 사용자 입력에 의해서나 둘 중 하나에 의해) 수행할 수도 있다. 예를 들어, 동작 동안, 컴퓨터 시스템 (502) 은 애플리케이션 (518) 을 메모리 (506) 로 로드할 수 있다. 애플리케이션 (518) 은 그 후 사용자에 의해, 회로 설계를 위한 플로어플랜을 생성, 뷰잉, 및/또는 편집하는데 이용될 수 있다.
결론
상기 설명은, 임의의 당업자로 하여금, 실시형태들을 실시 및 이용하는 것을 가능하게 하기 위해 제시된다. 개시된 실시형태들에 대한 다양한 변형들은 당업자에게 쉽게 명백할 것이며, 본 명세서에 정의된 일반적인 원리들은 본 개시물의 사상 및 범위로부터 벗어남 없이 다른 실시형태들 및 애플리케이션들에 적용가능하다. 따라서, 본 발명은 도시된 실시형태들에 제한되지 않고, 본 명세서에 개시된 원리들 및 특징들에 부합하는 최광의 범위를 따르게 될 것이다.
본 개시물에 설명된 데이터 구조들 및 코드는 컴퓨터 판독가능 저장 매체 및/또는 하드웨어 모듈 및/또는 하드웨어 장치 상에 부분적으로 또는 완전히 저장될 수 있다. 컴퓨터 판독가능 저장 매체는 휘발성 메모리, 비휘발성 메모리, 자기 및 광학 저장 디바이스들, 이를 테면 디스크 드라이브들, 자기 테이프, CD들 (콤팩트 디스크들), DVD들 (디지털 다기능 디스크들 또는 디지털 비디오 디스크들), 또는 코드 및/또는 데이터를 저장하는 것이 가능한, 현재 알려져 있거나 또는 나중에 개발된 다른 매체들을 포함하지만, 이들에 제한되지는 않는다. 본 개시물에 설명된 하드웨어 모듈들 또는 장치들은 주문형 집적 회로들 (ASIC들), 필드 프로그램가능 게이트 어레이들 (FPGA들), 전용 또는 공유 프로세서들, 및/또는 현재 알려져 있거나 또는 나중에 개발된 다른 하드웨어 모듈들 또는 장치들을 포함하지만, 이들에 제한되지는 않는다.
본 개시물에 설명된 방법들 및 프로세스들은, 컴퓨터 시스템이 코드 및/또는 데이터를 판독 및 실행할 때, 그 컴퓨터 시스템이 연관된 방법들 및 프로세스들을 수행하도록, 컴퓨터 판독가능 저장 매체 또는 디바이스에 저장된 코드 및/또는 데이터로서 부분적으로 또는 완전히 구현될 수 있다. 그 방법들 및 프로세스들은 또한, 하드웨어 모듈들 또는 장치들이 활성화될 때, 그들이 연관된 방법들 및 프로세스들을 수행하도록, 하드웨어 모듈들 또는 장치들에서 부분적으로 또는 완전히 구현될 수 있다. 방법들 및 프로세스들은 코드, 데이터, 및 하드웨어 모듈들 또는 장치들의 조합을 이용하여 구현될 수 있다는 것에 주목한다.
본 발명의 실시형태들의 전술한 설명들은 단지 예시 및 설명의 목적들을 위해서만 제시되었다. 그들은 완전한 것으로 의도되거나 본 발명을 개시된 형태들에 제한하도록 의도되지 않는다. 이에 따라, 다수의 변형들 및 변화들이 당업자에게 명백할 것이다. 추가적으로, 상기 개시물은 본 발명을 제한하도록 의도되지 않는다. 본 발명의 범위는 첨부된 청구항들에 의해 정의된다.
Claims (22)
- 전자 설계 자동화 (EDA) 툴에서, 상기 EDA 툴의 그래픽 사용자 인터페이스 (GUI) 에서의 핀 로케이션들을 업데이트하기 위한 방법으로서,
핀들의 세트는 현재, 회로 설계 레이아웃에서 블록 또는 파티션의 에지 상의 핀 로케이션들의 세트에 위치되고, 상기 방법은,
상기 EDA 툴이 컴퓨터를 사용하여 상기 회로 설계 레이아웃을 변형하는데 사용될 때:
상기 에지에서의 길이가 증가했다고 결정하는 것에 응답하여, 상기 EDA 툴의 상기 GUI 에서의 상기 핀 로케이션들의 세트를 변경하지 않는 단계;
상기 에지에서의 길이가 감소했지만 상기 핀 로케이션들의 세트를 보존하기에 충분히 길다고 결정하는 것에 응답하여, 상기 EDA 툴의 상기 GUI 에서의 상기 핀 로케이션들의 세트를 변경하지 않는 단계; 및
상기 에지에서의 길이가 감소했고 상기 핀 로케이션들의 세트를 보존하기에 충분히 길지 않다고 결정하는 것에 응답하여, 상기 EDA 툴의 상기 GUI 에서의 이웃하는 신호 핀들 사이의 거리를 감소시키는 한편, 하나 이상의 전력 핀들의 로케이션들, 신호 핀들의 상대적 순서, 및 하나 이상의 고정 핀들의 로케이션들을 보존하는 단계를 포함하는, EDA 툴의 GUI 에서의 핀 로케이션들을 업데이트하기 위한 방법. - 제 1 항에 있어서,
상기 이웃하는 신호 핀들 사이의 거리를 감소시키는 것은 상기 에지의 감소된 길이를 상기 에지의 원래 길이로 제산함으로써 컴퓨팅되는 비율로 각각의 거리를 승산하는 것을 포함하는, EDA 툴의 GUI 에서의 핀 로케이션들을 업데이트하기 위한 방법. - 제 1 항에 있어서,
상기 이웃하는 신호 핀들 사이의 거리를 감소시키는 것은 상기 회로 설계 레이아웃에서 배선 트랙 로케이션들에 하나 이상의 핀들을 스냅핑하는 것을 포함하는, EDA 툴의 GUI 에서의 핀 로케이션들을 업데이트하기 위한 방법. - 제 3 항에 있어서,
2 이상의 핀들이 동일한 배선 트랙 로케이션에 스냅핑되었다고 결정하는 것에 응답하여, 핀 로케이션을 상기 2 이상의 핀들 각각에 대해 상이한 금속층에서 할당하는 단계를 더 포함하는, EDA 툴의 GUI 에서의 핀 로케이션들을 업데이트하기 위한 방법. - 제 1 항에 있어서,
상기 블록 또는 파티션의 코너가 절단되고 있기 때문에 상기 에지의 일부가 2 개의 직교 에지 세그먼트들로 대체되고 있다고 결정하는 것에 응답하여, 상기 에지에 평행한 상기 2 개의 직교 에지 세그먼트들 중 하나로 상기 핀들의 세트에서 적어도 하나의 신호 핀을 이동하는 단계를 더 포함하는, EDA 툴의 GUI 에서의 핀 로케이션들을 업데이트하기 위한 방법. - 제 5 항에 있어서,
상기 이동하는 것은 상기 블록 또는 파티션 주위의 에지 트래버설에 대한 신호 핀들의 상대적 순서를 보존하지 않는, EDA 툴의 GUI 에서의 핀 로케이션들을 업데이트하기 위한 방법. - 제 1 항에 있어서,
상기 에지에서의 길이가 감소했고 고정 핀 로케이션을 수용하기에 충분히 길지 않거나 상기 핀들의 세트를 수용하기에 충분히 길지 않다고 결정하는 것에 응답하여, 사용자에게 경보하는 단계를 더 포함하는, EDA 툴의 GUI 에서의 핀 로케이션들을 업데이트하기 위한 방법. - 제 1 항에 있어서,
상기 핀 로케이션들은 글로벌 라우팅을 수행하지 않고 상기 EDA 툴의 상기 GUI 에서 업데이트되는, EDA 툴의 GUI 에서의 핀 로케이션들을 업데이트하기 위한 방법. - 명령들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서,
상기 명령들은, 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금, 전자 설계 자동화 (EDA) 툴의 그래픽 사용자 인터페이스 (GUI) 에서의 핀 로케이션들을 업데이트하기 위한 방법을 수행하게 하고, 핀들의 세트는 현재, 회로 설계 레이아웃에서 블록 또는 파티션의 에지 상의 핀 로케이션들의 세트에 위치되고, 상기 방법은,
상기 EDA 툴이 상기 회로 설계 레이아웃을 변형하는데 사용될 때:
상기 에지에서의 길이가 증가했다고 결정하는 것에 응답하여, 상기 EDA 툴의 상기 GUI 에서의 상기 핀 로케이션들의 세트를 변경하지 않는 단계;
상기 에지에서의 길이가 감소했지만 상기 핀 로케이션들의 세트를 보존하기에 충분히 길다고 결정하는 것에 응답하여, 상기 EDA 툴의 상기 GUI 에서의 상기 핀 로케이션들의 세트를 변경하지 않는 단계; 및
상기 에지에서의 길이가 감소했고 상기 핀 로케이션들의 세트를 보존하기에 충분히 길지 않다고 결정하는 것에 응답하여, 상기 EDA 툴의 상기 GUI 에서의 이웃하는 신호 핀들 사이의 거리를 감소시키는 한편, 하나 이상의 전력 핀들의 로케이션들, 신호 핀들의 상대적 순서, 및 하나 이상의 고정 핀들의 로케이션들을 보존하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제 9 항에 있어서,
상기 이웃하는 신호 핀들 사이의 거리를 감소시키는 것은 상기 에지의 감소된 길이를 상기 에지의 원래 길이로 제산함으로써 컴퓨팅되는 비율로 각각의 거리를 승산하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제 9 항에 있어서,
상기 이웃하는 신호 핀들 사이의 거리를 감소시키는 것은 상기 회로 설계 레이아웃에서 배선 트랙 로케이션들에 하나 이상의 핀들을 스냅핑하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제 11 항에 있어서,
상기 방법은, 2 이상의 핀들이 동일한 배선 트랙 로케이션에 스냅핑되었다고 결정하는 것에 응답하여, 핀 로케이션을 상기 2 이상의 핀들 각각에 대해 상이한 금속층에서 할당하는 단계를 더 포함하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제 9 항에 있어서,
상기 방법은, 상기 블록 또는 파티션의 코너가 절단되고 있기 때문에 상기 에지의 일부가 2 개의 직교 에지 세그먼트들로 대체되고 있다고 결정하는 것에 응답하여, 상기 에지에 평행한 상기 2 개의 직교 에지 세그먼트들 중 하나로 상기 핀들의 세트에서 적어도 하나의 신호 핀을 이동하는 단계를 더 포함하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제 13 항에 있어서,
상기 이동하는 것은 상기 블록 또는 파티션 주위의 에지 트래버설에 대한 신호 핀들의 상대적 순서를 보존하지 않는, 비일시적 컴퓨터 판독가능 저장 매체. - 제 9 항에 있어서,
상기 방법은, 상기 에지에서의 길이가 감소했고 고정 핀 로케이션을 수용하기에 충분히 길지 않거나 상기 핀들의 세트를 수용하기에 충분히 길지 않다고 결정하는 것에 응답하여, 사용자에게 경보하는 단계를 더 포함하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제 9 항에 있어서,
상기 핀 로케이션들은 글로벌 라우팅을 수행하지 않고 상기 EDA 툴의 상기 GUI 에서 업데이트되는, 비일시적 컴퓨터 판독가능 저장 매체. - 장치로서,
프로세서; 및
명령들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체를 포함하고,
상기 명령들은, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 전자 설계 자동화 (EDA) 툴의 그래픽 사용자 인터페이스 (GUI) 에서의 핀 로케이션들을 업데이트하기 위한 방법을 수행하게 하고, 핀들의 세트는 현재, 회로 설계 레이아웃에서 블록 또는 파티션의 에지 상의 핀 로케이션들의 세트에 위치되며, 상기 방법은,
상기 EDA 툴이 상기 회로 설계 레이아웃을 변형하는데 사용될 때:
상기 에지에서의 길이가 증가했다고 결정하는 것에 응답하여, 상기 EDA 툴의 상기 GUI 에서의 상기 핀 로케이션들의 세트를 변경하지 않는 단계;
상기 에지에서의 길이가 감소했지만 상기 핀 로케이션들의 세트를 보존하기에 충분히 길다고 결정하는 것에 응답하여, 상기 EDA 툴의 상기 GUI 에서의 상기 핀 로케이션들의 세트를 변경하지 않는 단계; 및
상기 에지에서의 길이가 감소했고 상기 핀 로케이션들의 세트를 보존하기에 충분히 길지 않다고 결정하는 것에 응답하여, 상기 EDA 툴의 상기 GUI 에서의 이웃하는 신호 핀들 사이의 거리를 감소시키는 한편, 하나 이상의 전력 핀들의 로케이션들, 신호 핀들의 상대적 순서, 및 하나 이상의 고정 핀들의 로케이션들을 보존하는 단계를 포함하는, 장치. - 제 17 항에 있어서,
상기 이웃하는 신호 핀들 사이의 거리를 감소시키는 것은 상기 에지의 감소된 길이를 상기 에지의 원래 길이로 제산함으로써 컴퓨팅되는 비율로 각각의 거리를 승산하는 것을 포함하는, 장치. - 제 17 항에 있어서,
상기 이웃하는 신호 핀들 사이의 거리를 감소시키는 것은 상기 회로 설계 레이아웃에서 배선 트랙 로케이션들에 하나 이상의 핀들을 스냅핑하는 것을 포함하고, 상기 방법은, 2 이상의 핀들이 동일한 배선 트랙 로케이션에 스냅핑했다고 결정하는 것에 응답하여, 핀 로케이션을 상기 2 이상의 핀들 각각에 대해 상이한 금속층에서 할당하는 단계를 더 포함하는, 장치. - 제 17 항에 있어서,
상기 방법은, 상기 블록 또는 파티션의 코너가 절단되고 있기 때문에 상기 에지의 일부가 2 개의 직교 에지 세그먼트들로 대체되고 있다고 결정하는 것에 응답하여, 상기 에지에 평행한 상기 2 개의 직교 에지 세그먼트들 중 하나로 상기 핀들의 세트에서 적어도 하나의 신호 핀을 이동하는 단계를 더 포함하고,
상기 이동하는 것은 상기 블록 또는 파티션 주위의 에지 트래버설에 대한 신호 핀들의 상대적 순서를 보존하지 않는, 장치. - 제 17 항에 있어서,
상기 방법은, 상기 에지에서의 길이가 감소했고 고정 핀 로케이션을 수용하기에 충분히 길지 않거나 상기 핀들의 세트를 수용하기에 충분히 길지 않다고 결정하는 것에 응답하여, 사용자에게 경보하는 단계를 더 포함하는, 장치. - 제 17 항에 있어서,
상기 핀 로케이션들은 글로벌 라우팅을 수행하지 않고 상기 EDA 툴의 상기 GUI 에서 업데이트되는, 장치.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/728,873 | 2012-12-27 | ||
US13/728,873 US8893073B2 (en) | 2012-12-27 | 2012-12-27 | Displaying a congestion indicator for a channel in a circuit design layout |
PCT/US2013/077440 WO2014105802A1 (en) | 2012-12-27 | 2013-12-23 | Graphical user interface for a floorplanning tool for electronic design automation |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157019980A Division KR102055035B1 (ko) | 2012-12-27 | 2013-12-23 | 회로 설계 레이아웃에서의 채널에 대한 혼잡 표시자의 디스플레이 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190135575A KR20190135575A (ko) | 2019-12-06 |
KR102103685B1 true KR102103685B1 (ko) | 2020-04-22 |
Family
ID=51018859
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197035494A KR102103685B1 (ko) | 2012-12-27 | 2013-12-23 | 전자 설계 자동화 툴의 그래픽 사용자 인터페이스에서의 핀 로케이션들의 업데이팅 |
KR1020157019980A KR102055035B1 (ko) | 2012-12-27 | 2013-12-23 | 회로 설계 레이아웃에서의 채널에 대한 혼잡 표시자의 디스플레이 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157019980A KR102055035B1 (ko) | 2012-12-27 | 2013-12-23 | 회로 설계 레이아웃에서의 채널에 대한 혼잡 표시자의 디스플레이 |
Country Status (5)
Country | Link |
---|---|
US (4) | US8893073B2 (ko) |
JP (2) | JP6254190B2 (ko) |
KR (2) | KR102103685B1 (ko) |
DE (1) | DE112013005820T5 (ko) |
WO (1) | WO2014105802A1 (ko) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9117052B1 (en) * | 2012-04-12 | 2015-08-25 | Cadence Design Systems, Inc. | Methods, systems, and articles of manufacture for interactively implementing physical electronic designs with track patterns |
US8893073B2 (en) * | 2012-12-27 | 2014-11-18 | Synopsys, Inc. | Displaying a congestion indicator for a channel in a circuit design layout |
JP2014211824A (ja) * | 2013-04-19 | 2014-11-13 | 富士通株式会社 | 設計支援装置、設計支援方法、および設計支援プログラム |
US9898570B2 (en) * | 2015-03-20 | 2018-02-20 | Synopsys, Inc. | Transparent editing of physical data in hierarchical integrated circuit design |
US9727685B2 (en) * | 2015-05-14 | 2017-08-08 | Globalfoundries Inc. | Method, apparatus, and system for improved standard cell design and routing for improving standard cell routability |
US9697320B2 (en) | 2015-09-24 | 2017-07-04 | Qualcomm Incorporated | Rectilinear macros having non-uniform channel spacing |
US10120970B2 (en) * | 2016-06-14 | 2018-11-06 | International Business Machines Corporation | Global routing framework of integrated circuit based on localized routing optimization |
US10268796B2 (en) * | 2016-09-15 | 2019-04-23 | Taiwan Semiconductor Manufacturing Company Ltd. | Method and system for pin layout |
CN107219988B (zh) * | 2017-05-26 | 2020-07-28 | 维沃移动通信有限公司 | 一种界面操作引导方法及移动终端 |
CN110148199B (zh) * | 2018-02-11 | 2021-06-04 | 北京新唐思创教育科技有限公司 | 基于课件的涂鸦区域生成方法及计算机存储介质 |
DE102018127024B3 (de) | 2018-10-30 | 2019-10-31 | Airbus Operations Gmbh | Flugzeugtürdichtungssystem und Flugzeugtüranordnung |
CN111259615B (zh) * | 2020-01-09 | 2023-06-06 | 中国人民解放军国防科技大学 | 一种基于原有布图规划的自动化物理单元插入方法 |
KR20210118544A (ko) * | 2020-03-23 | 2021-10-01 | 삼성전자주식회사 | 회로 블록의 그래픽 사용자 인터페이스를 변경하는 방법 및 회로 블록의 그래픽 사용자 인터페이스 변경하는 방법에 따른 각각의 단계를 수행하는 명령어를 포함하는 프로그램이 기록된 컴퓨터 판독 가능 저장 매체 |
KR20230122516A (ko) | 2022-02-14 | 2023-08-22 | 주식회사 마키나락스 | 금지 영역 정보를 기반으로 반도체 소자를 배치하는 방법 |
CN116738911B (zh) * | 2023-07-10 | 2024-04-30 | 苏州异格技术有限公司 | 布线拥塞预测方法、装置及计算机设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020066066A1 (en) | 2000-11-30 | 2002-05-30 | Alexander Tetelbaum | Pin placement method for integrated circuits |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5481741A (en) * | 1986-04-14 | 1996-01-02 | National Instruments Corporation | Method and apparatus for providing attribute nodes in a graphical data flow environment |
JPH01206693A (ja) * | 1988-02-15 | 1989-08-18 | Toshiba Corp | プリント板の配線方法 |
JPH0374862A (ja) * | 1989-08-16 | 1991-03-29 | Nec Corp | ゲートアレイの配置方式 |
JPH04107953A (ja) * | 1990-08-28 | 1992-04-09 | Fujitsu Ltd | 半導体装置の配線方法 |
US5812995A (en) * | 1993-10-14 | 1998-09-22 | Matsushita Electric Industrial Co., Ltd. | Electronic document filing system for registering and retrieving a plurality of documents |
JP3504739B2 (ja) * | 1994-09-09 | 2004-03-08 | 富士通株式会社 | 階層レイアウト設計を用いたクロック配線設計方法 |
JP4000198B2 (ja) * | 1994-10-20 | 2007-10-31 | 富士通株式会社 | 会話型回路設計装置 |
US5847965A (en) * | 1996-08-02 | 1998-12-08 | Avant| Corporation | Method for automatic iterative area placement of module cells in an integrated circuit layout |
JP3077601B2 (ja) * | 1996-10-15 | 2000-08-14 | 日本電気株式会社 | 半導体集積回路の配置配線方法 |
US5745111A (en) * | 1996-11-13 | 1998-04-28 | International Business Machines Corporation | Method and system for automatic presentation of default-drop target icons at window borders |
JP2947216B2 (ja) * | 1997-04-18 | 1999-09-13 | 日本電気株式会社 | 電子回路図面入力装置 |
JP4128251B2 (ja) * | 1997-10-23 | 2008-07-30 | 富士通株式会社 | 配線密度予測方法およびセル配置装置 |
JPH11214523A (ja) * | 1998-01-28 | 1999-08-06 | Nec Corp | 半導体集積回路装置のレイアウト方法 |
JPH11260929A (ja) * | 1998-03-13 | 1999-09-24 | Sony Corp | レイアウト支援装置とその方法 |
US6343291B1 (en) * | 1999-02-26 | 2002-01-29 | Hewlett-Packard Company | Method and apparatus for using an information model to create a location tree in a hierarchy of information |
US6460169B1 (en) * | 1999-10-21 | 2002-10-01 | International Business Machines Corporation | Routing program method for positioning unit pins in a hierarchically designed VLSI chip |
US6374394B1 (en) * | 1999-10-21 | 2002-04-16 | International Business Machines Corporation | Method to identify unit pins that are not optimally positioned in a hierarchically designed VLSI chip |
US6415428B1 (en) * | 1999-10-21 | 2002-07-02 | International Business Machines Corporation | Minimal length method for positioning unit pins in a hierarchically designed VLSI chip |
US8172702B2 (en) * | 2000-06-16 | 2012-05-08 | Skyhawke Technologies, Llc. | Personal golfing assistant and method and system for graphically displaying golf related information and for collection, processing and distribution of golf related data |
US6763511B2 (en) * | 2001-07-02 | 2004-07-13 | Nec Electronics Corporation | Semiconductor integrated circuit having macro cells and designing method of the same |
JP4131119B2 (ja) | 2002-04-19 | 2008-08-13 | 富士通株式会社 | 半導体集積回路設計方法及び半導体集積回路設計プログラム |
US7739624B2 (en) * | 2002-07-29 | 2010-06-15 | Synopsys, Inc. | Methods and apparatuses to generate a shielding mesh for integrated circuit devices |
JP2004128436A (ja) * | 2002-08-08 | 2004-04-22 | Sanyo Electric Co Ltd | 半導体集積回路及び半導体集積回路の設計方法 |
US6925627B1 (en) | 2002-12-20 | 2005-08-02 | Conexant Systems, Inc. | Method and apparatus for power routing in an integrated circuit |
US7003751B1 (en) | 2003-01-10 | 2006-02-21 | Xilinx Inc. | Specification of the hierarchy, connectivity, and graphical representation of a circuit design |
US6990648B2 (en) * | 2003-04-04 | 2006-01-24 | International Business Machines Corporation | Method for identification of sub-optimally placed circuits |
US7603641B2 (en) * | 2003-11-02 | 2009-10-13 | Mentor Graphics Corporation | Power/ground wire routing correction and optimization |
US8875039B2 (en) * | 2003-11-18 | 2014-10-28 | The Mathworks, Inc. | Propagation of characteristics in a graphical model environment |
US7326859B2 (en) * | 2003-12-16 | 2008-02-05 | Intel Corporation | Printed circuit boards having pads for solder balls and methods for the implementation thereof |
US7174524B2 (en) * | 2004-09-22 | 2007-02-06 | Lsi Logic Corporation | Method of floorplanning and cell placement for integrated circuit chip architecture with internal I/O ring |
JP2006173191A (ja) * | 2004-12-13 | 2006-06-29 | Matsushita Electric Ind Co Ltd | 半導体集積回路の配線混雑度推定方法 |
US9967424B2 (en) * | 2005-06-02 | 2018-05-08 | Invention Science Fund I, Llc | Data storage usage protocol |
US7603644B2 (en) * | 2005-06-24 | 2009-10-13 | Pulsic Limited | Integrated circuit routing and compaction |
US7363607B2 (en) * | 2005-11-08 | 2008-04-22 | Pulsic Limited | Method of automatically routing nets according to parasitic constraint rules |
US7657859B2 (en) * | 2005-12-08 | 2010-02-02 | International Business Machines Corporation | Method for IC wiring yield optimization, including wire widening during and after routing |
WO2008027311A2 (en) * | 2006-08-25 | 2008-03-06 | The Boeing Company | Method and apparatus for determining a solution group of parts in an assembly |
JP5029070B2 (ja) | 2007-03-02 | 2012-09-19 | 日本電気株式会社 | 集積回路のレイアウト設計支援装置、方法、及びプログラム |
US9317494B2 (en) * | 2007-04-03 | 2016-04-19 | Sap Se | Graphical hierarchy conversion |
JP5211338B2 (ja) * | 2007-04-27 | 2013-06-12 | コクヨ株式会社 | データ管理装置及びそのプログラム |
KR100896801B1 (ko) * | 2007-05-23 | 2009-05-11 | 성균관대학교산학협력단 | 반도체 배선 경로 설정 방법 및 이를 실행하기 위한프로그램을 기록한 기록 매체 |
US8086980B2 (en) | 2008-02-15 | 2011-12-27 | International Business Machines Corporation | Efficient power region checking of multi-supply voltage microprocessors |
JP5373304B2 (ja) * | 2008-03-28 | 2013-12-18 | 株式会社日立情報通信エンジニアリング | 半導体集積回路配置プログラム及び方法 |
US8219959B2 (en) | 2009-07-24 | 2012-07-10 | Lsi Corporation | Generating integrated circuit floorplan layouts |
US20120185456A1 (en) * | 2011-01-14 | 2012-07-19 | Apple Inc. | Information Management with Non-Hierarchical Views |
US8261226B1 (en) * | 2011-07-20 | 2012-09-04 | International Business Machines Corporation | Network flow based module bottom surface metal pin assignment |
US8723268B2 (en) * | 2012-06-13 | 2014-05-13 | Synopsys, Inc. | N-channel and P-channel end-to-end finFET cell architecture with relaxed gate pitch |
US8533647B1 (en) * | 2012-10-05 | 2013-09-10 | Atrenta, Inc. | Method for generating an integrated and unified view of IP-cores for hierarchical analysis of a system on chip (SoC) design |
US9424307B2 (en) * | 2012-10-11 | 2016-08-23 | Scott E. Lilienthal | Multivariate data analysis method |
US8893073B2 (en) * | 2012-12-27 | 2014-11-18 | Synopsys, Inc. | Displaying a congestion indicator for a channel in a circuit design layout |
US10042911B2 (en) * | 2013-07-30 | 2018-08-07 | International Business Machines Corporations | Discovery of related entities in a master data management system |
-
2012
- 2012-12-27 US US13/728,873 patent/US8893073B2/en active Active
-
2013
- 2013-12-23 KR KR1020197035494A patent/KR102103685B1/ko active IP Right Grant
- 2013-12-23 WO PCT/US2013/077440 patent/WO2014105802A1/en active Application Filing
- 2013-12-23 DE DE112013005820.0T patent/DE112013005820T5/de active Pending
- 2013-12-23 KR KR1020157019980A patent/KR102055035B1/ko active IP Right Grant
- 2013-12-23 JP JP2015550722A patent/JP6254190B2/ja active Active
-
2014
- 2014-10-08 US US14/509,765 patent/US9064082B2/en active Active
-
2015
- 2015-05-27 US US14/723,354 patent/US9552450B2/en active Active
-
2016
- 2016-12-08 US US15/373,075 patent/US10248751B2/en active Active
-
2017
- 2017-11-29 JP JP2017229134A patent/JP6534436B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020066066A1 (en) | 2000-11-30 | 2002-05-30 | Alexander Tetelbaum | Pin placement method for integrated circuits |
Also Published As
Publication number | Publication date |
---|---|
JP6534436B2 (ja) | 2019-06-26 |
KR20190135575A (ko) | 2019-12-06 |
US20170091367A1 (en) | 2017-03-30 |
JP2016503921A (ja) | 2016-02-08 |
US10248751B2 (en) | 2019-04-02 |
KR20150100857A (ko) | 2015-09-02 |
JP6254190B2 (ja) | 2017-12-27 |
WO2014105802A1 (en) | 2014-07-03 |
US20150026656A1 (en) | 2015-01-22 |
JP2018060569A (ja) | 2018-04-12 |
US20150254388A1 (en) | 2015-09-10 |
US8893073B2 (en) | 2014-11-18 |
US9552450B2 (en) | 2017-01-24 |
US20140189617A1 (en) | 2014-07-03 |
DE112013005820T5 (de) | 2015-09-24 |
KR102055035B1 (ko) | 2019-12-11 |
US9064082B2 (en) | 2015-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102103685B1 (ko) | 전자 설계 자동화 툴의 그래픽 사용자 인터페이스에서의 핀 로케이션들의 업데이팅 | |
JP3710710B2 (ja) | Icレイアウトにおけるポリゴン表現 | |
US8411107B2 (en) | Adaptive snapping | |
CN107239588A (zh) | 集成电路设计的定制布局 | |
JP2007233455A (ja) | レイアウトエディタ装置、配線表示方法、及び配線表示プログラム | |
US10346575B2 (en) | Graphical user interface to facilitate routing of a physical connection in a hierarchical integrated circuit design | |
US20060066610A1 (en) | Method, device, and computer program product for displaying 3D grid in designing configuration model | |
US10078723B1 (en) | Method and apparatus for design rules driven interactive violation display | |
KR20130116169A (ko) | 더블 패터닝 기술을 위한 rc 코너해 | |
US8650529B2 (en) | System and method for integrated circuit layout editing with asymmetric zoom views | |
US9471742B2 (en) | Method for displaying timing information of an integrated circuit floorplan in real time | |
US10331837B1 (en) | Device graphics rendering for electronic designs | |
JP5397901B2 (ja) | 回路情報管理装置、その方法、及びプログラム | |
US8711177B1 (en) | Generation, display, and manipulation of measurements in computer graphical designs | |
JPH10124567A (ja) | 半導体デバイス設計支援装置 | |
US9026974B2 (en) | Semiconductor integrated circuit partitioning and timing | |
JP4489468B2 (ja) | プリント基板の設計装置におけるクリアランス距離測定方法、プリント基板の設計装置におけるクリアランス距離測定装置、プログラムおよびコンピューター読み取り可能な記録媒体 | |
US20060076547A1 (en) | Three-dimensional viewing and editing of microcircuit design | |
CN116956810A (zh) | 布线方法及装置、计算装置和存储介质 | |
KR20240113984A (ko) | 예측된 제조 윤곽들에 기초한 ic 설계에서의 예측된 중첩 형상의 계산 및 디스플레이 | |
JP2013161439A (ja) | 電源配線設計支援方法、電源配線設計支援装置、電源配線設計支援プログラム、および記録媒体 | |
Jambor et al. | A Trapezoidal Approach to Corner Stitching Data Structures for Arbitrary Routing Angles |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |