KR102038736B1 - 네트리스트 추상화 - Google Patents

네트리스트 추상화 Download PDF

Info

Publication number
KR102038736B1
KR102038736B1 KR1020157020435A KR20157020435A KR102038736B1 KR 102038736 B1 KR102038736 B1 KR 102038736B1 KR 1020157020435 A KR1020157020435 A KR 1020157020435A KR 20157020435 A KR20157020435 A KR 20157020435A KR 102038736 B1 KR102038736 B1 KR 102038736B1
Authority
KR
South Korea
Prior art keywords
netlist
abstraction
star
satellite
objects
Prior art date
Application number
KR1020157020435A
Other languages
English (en)
Other versions
KR20150103161A (ko
Inventor
더글라스 창
발크리쉬나 알 라싱카르
Original Assignee
시놉시스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 시놉시스, 인크. filed Critical 시놉시스, 인크.
Publication of KR20150103161A publication Critical patent/KR20150103161A/ko
Application granted granted Critical
Publication of KR102038736B1 publication Critical patent/KR102038736B1/ko

Links

Images

Classifications

    • G06F17/505
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist

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)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

네트리스트 추상화를 생성하기 위한 시스템들 및 기술들이 설명된다. 동작 동안, 일 실시형태는 회로 설계를 위한 네트리스트를 수신할 수 있으며, 회로 설계에 있어서의 회로 엘리먼트들은 논리적 계위 (LH) 에서 체계화된다. 다음으로, 그 실시형태는 LH 에 있어서 LH 노드들의 세트를 수신할 수 있다. 그 후, 그 실시형태는, LH 노드들의 세트에 있어서의 각각의 LH 노드에 대해, LH 노드 아래에 있는 네트리스트의 부분을 스타 네트리스트로 대체함으로써 네트리스트 추상화를 생성할 수 있으며, 여기서, 스타 네트리스트는 위성 오브젝트들의 세트에 전기적으로 접속된 중심 오브젝트를 포함하고, 각각의 위성 오브젝트는 LH 노드의 포트에 대응한다.

Description

네트리스트 추상화{NETLIST ABSTRACTION}
본 개시는 전자 설계 자동화 (EDA) 에 관한 것이다. 더욱 상세하게는, 본 개시는 네트리스트 추상화를 생성 및 이용하는 것에 관한 것이다.
소비자 전자기기들에 대한 프로세스 기술의 진보들 및 사실상 무제한의 욕구는 집적회로 (IC) 설계들의 사이즈 및 복잡도에 있어서의 급속한 증가를 야기하였다. EDA 툴들의 성능은, IC 설계들을 마켓팅하기 위한 시간을 감소시키기 때문에 매우 중요하다. IC 레이아웃에 있어서 다양한 오브젝트들 (블록들, 모듈들, 회로 엘리먼트들 등) 에 대한 위치들을 결정하는 것을 수반하는 플로어플래닝 (Floorplanning) 은 EDA 설계 플로우에서 중요한 스테이지이다. 플로어플랜의 품질은 최종 IC 레이아웃의 전체 품질에 현저하게 영향을 줄 수 있다.
불행하게도, IC 설계들의 사이즈 및 복잡도에서의 급속한 증가로 인해, 종래의 플로어플래닝 툴들은 플로어플랜들을 생성하는데 매우 긴 시간이 걸리고/걸리거나 불량한 품질의 플로어플랜들을 생성할 수 있다.
본 명세서에서 설명된 일부 실시형태들은 네트리스트 추상화를 생성하기 위한 방법들 및 시스템들을 제공한다. 그 후, 네트리스트 추상화는 플로어플래닝 동작들의 결과들의 성능 및 품질을 실질적으로 개선하는데 사용될 수 있다.
구체적으로, 일 실시형태는 회로 설계를 위한 네트리스트를 수신할 수 있으며, 회로 설계에 있어서의 회로 엘리먼트들은 논리적 계위에서 체계화된다. 다음으로, 그 실시형태는 논리적 계위에서 논리적 계위 노드들의 세트를 수신할 수 있다. 그 후, 그 실시형태는 논리적 계위 노드들의 세트에 있어서의 각각의 논리적 계위 노드에 대해 다음의 동작을 수행함으로써 네트리스트 추상화를 생성할 수 있다: 즉, 논리적 계위 노드 아래에 있는 네트리스트의 부분을 스타 네트리스트로 대체함, 여기서, 스타 네트리스트는 위성 오브젝트들의 세트에 전기적으로 접속된 중심 오브젝트를 포함하고, 각각의 위성 오브젝트는 논리적 계위 노드의 포트에 대응함.
일부 실시형태들에 있어서, 중심 오브젝트들을 위성 오브젝트들과 전기적으로 접속시키는 네트들에는 위성 오브젝트들을 서로 전기적으로 접속시키는 네트들보다 더 큰 가중치가 할당된다. 일부 실시형태들에 있어서, 각각의 스타 네트리스트는 위성 오브젝트들의 세트를 서로 전기적으로 상호접속시키는 네트를 포함한다. 일부 실시형태들에 있어서, 각각의 스타 네트리스트에 있어서의 위성 오브젝트들의 세트와 중심 오브젝트의 영역들의 합은, 스타 네트리스트에 대응하는 논리적 계위 노드의 영역과 실질적으로 동일하다. 일부 실시형태들에 있어서, 각각의 스타 네트리스트에 있어서의 중심 오브젝트의 영역은 스타 네트리스트에 있어서의 각각의 위성 오브젝트의 영역보다 더 크다.
일단 네트리스트 추상화가 생성되면, 네트리스트 추상화에 대해 배치가 수행되어 배치된 네트리스트 추상화를 획득할 수 있다. 네트리스트 추상화의 사이즈가 오리지널 네트리스트 (즉, 비-추상 네트리스트) 보다 실질적으로 더 작을 수 있기 때문에, 배치 동작은 네트리스트 추상화로부터 배치된 네트리스트 추상화를 신속히 생성할 수 있다. 그 후, 배치된 네트리스트 추상화는 하나 이상의 플로어플래닝 동작들을 위한 시드로서 이용될 수 있다. 예를 들어, 그 실시형태는 회로 설계에 대한 블록 형상화 및/또는 매크로 배치를 수행하기 위한 시드로서 배치된 네트리스트 추상화를 이용할 수 있다. 이러한 방식으로 네트리스트 추상화를 생성 및 이용하는 것은 플로어플래닝 동작들의 결과들의 전체 성능 및 품질을 실질적으로 개선시킬 수 있다.
도 1 은 본 명세서에서 설명된 일부 실시형태들에 따라 플로어플래닝 동작들의 성능을 개선시키기 위해 네트리스트 추상화가 어떻게 이용될 수 있는지를 도시한 플로우차트를 제시한다.
도 2 는 본 명세서에서 설명된 일부 실시형태들에 따라 네트리스트 추상화를 생성하기 위한 프로세스를 도시한 플로우차트를 제시한다.
도 3 은 본 명세서에서 설명된 일부 실시형태들에 따른 회로 설계의 논리적 계위를 도시한다.
도 4a 는 본 명세서에서 설명된 일부 실시형태들에 따른 네트리스트의 뷰를 도시한다.
도 4b 는 본 명세서에서 설명된 일부 실시형태들에 따라 네트리스트 추상화가 네트리스트로부터 어떻게 생성될 수 있는지를 도시한다.
도 4c 는 본 명세서에서 설명된 일부 실시형태들에 따라 스타 네트리스트에 있어서의 위성 오브젝트의 세트를 서로 전기적으로 상호접속시키는 네트를 도시한다.
도 5a 내지 도 5c 는 본 명세서에서 설명된 일부 실시형태들에 따라 배치 및 블록 형상화를 위해 네트리스트 추상화가 어떻게 이용될 수 있는지를 도시한다.
도 6 은 본 개시에서 설명된 일부 실시형태들에 따른 컴퓨터 시스템을 도시한다.
다음의 설명은 당업자로 하여금 본 발명을 제조 및 이용할 수 있도록 제시되며, 특정 어플리케이션 및 그 요건들의 컨텍스트에서 제공된다. 개시된 실시형태들에 대한 다양한 변형들은 당업자에게 용이하게 자명할 것이며, 본 명세서에서 정의된 일반적인 원리들은 본 발명의 사상 및 범위로부터 일탈함없이 다른 실시형태들 및 어플리케이션들에 적용될 수도 있다. 따라서, 본 발명은 설명된 실시형태들로 한정되지 않으며, 본 명세서에 개시된 원리들 및 특징들과 부합하는 최광의 범위를 부여받아야 한다.
EDA 플로우의 개관
EDA 플로우는 회로 설계를 생성하는데 이용될 수 있다. 일단 회로 설계가 완결되면, 집적 회로 칩들을 생산하기 위해 제조, 패키징, 및 어셈블리를 경험할 수 있다. EDA 플로우는 다중의 단계들을 포함할 수 있으며, 각각의 단계는 하나 이상의 EDA 소프트웨어 툴들을 이용하는 것을 수반할 수 있다. 일부 EDA 단계들 및 소프트웨어 툴들이 하기에 설명된다. EDA 단계들 및 소프트웨어 툴들의 이들 예들은 단지 예시적인 목적들일 뿐, 실시형태들을 개시된 형태들로 한정하도록 의도되지 않는다.
일부 EDA 소프트웨어 툴들은 회로 설계자들로 하여금 회로 설계자들이 구현하길 원하는 기능을 기술할 수 있게 한다. 이들 툴들은 또한, 회로 설계자들로 하여금 기능을 정세화하고 비용들을 체크하는 등등을 위해 가정의 (what-if) 플래닝을 수행할 수 있게 한다. 로직 설계 및 기능적 검증 동안, HDL (하드웨어 디스크립션 언어), 예를 들어, SystemVerilog, 코드가 기입될 수 있고, 그 설계는 기능 정확도에 대해 체크될 수 있으며, 예를 들어, 그 설계는, 정확한 출력들을 생성함을 보장하기 위해 체크될 수 있다.
테스트를 위한 합성 및 설계 동안, HDL 코드는 하나 이상의 EDA 소프트웨어 툴들을 이용하여 네트리스트로 전환될 수 있다. 추가로, 네트리스트는 타겟 기술에 대해 최적화될 수 있으며, 테스트들이 완료된 칩들을 체크하기 위해 설계 및 구현될 수 있다. 네트리스트 검증 동안, 네트리스트는 타이밍 제약들에 따르는지 그리고 HDL 코드와 대응하는지에 대해 체크될 수 있다.
설계 플래닝 동안, 칩에 대한 전체 플로어플랜이 타이밍 및 상부 레벨 라우팅을 위해 구성 및 분석될 수 있다. 물리적 구현 동안, 회로 엘리먼트들은 레이아웃에 배치될 수 있고 전기적으로 커플링될 수 있다.
분석 및 추출 동안, 회로의 기능이 트랜지스터 레벨에서 검증되고 기생물들 (parasitics) 이 추출될 수 있다. 물리적 검증 동안, 제조에 대한 정확성, 전기적 이슈들, 리소그래픽 이슈들, 및 회로를 보장하기 위해 설계가 체크될 수 있다.
해상도 향상 동안, 기하학적 조작들이 설계의 제조가능성을 개선하기 위해 레이아웃에 대해 수행될 수 있다. 마스크 데이터 준비 동안, 설계는 제조 동안 사용되는 마스크들을 생성하기 위해 "테이프 아웃"될 수 있다.
네트리스트 추상화
회로 추상화는 회로 설계의 상세 모두를 포함하지는 않은 회로 설계의 표현이다. 본 명세서에서 설명된 일부 실시형태들은, 플로어플래닝 동작들의 성능을 실질적으로 개선시키는 회로 추상화를 생성한다.
도 1 은 본 명세서에서 설명된 일부 실시형태들에 따라 플로어플래닝 동작들의 성능을 개선시키기 위해 네트리스트 추상화가 어떻게 이용될 수 있는지를 도시한 플로우차트를 제시한다. 네트리스트 (102) 는 회로 설계의 상이한 회로 엘리먼트들이 서로 어떻게 전기적으로 접속되는지를 기술한다. 네트리스트는 인스턴스들의 세트 및 네트들의 세트를 갖는 것으로서 보여질 수 있다. 각각의 인스턴스는 하나 이상의 핀들을 포함할 수 있으며, 각각의 네트는 네트리스트에 있어서 2 이상의 핀들을 전기적으로 접속시킬 수 있다. 인스턴스는 임의의 추상화 레벨에서의 회로 엔터티를 나타낼 수 있다. 예를 들어, 인스턴스는 전기 컴포넌트 (예를 들어, 트랜지스터, 저항기 등), 게이트 (예를 들어, "AND" 게이트, "OR" 게이트 등), 모듈 (예를 들어, 가산기, 메모리 블록 등), 또는 임의의 다른 추상화 레벨에서의 임의의 다른 회로 엔터티일 수 있다.
네트리스트 추상화 (106) 는 네트리스트 (102) 에 기초하여 생성될 수 있다 (동작 104). 구체적으로, 네트리스트 추상화 (106) 는 네트리스트 (102) 와 연관된 논리적 계위에 기초하여 생성될 수 있다. 다음으로, 네트리스트 추상화 (106) 에 대해 배치가 수행되어 (동작 108) 배치된 네트리스트 추상화 (110) 를 획득할 수 있다. 배치 동작 동안, 네트리스트 추상화 (106) 에 있어서의 배치가능한 오브젝트들에는 회로 설계 플로어플랜에서의 위치가 할당된다. 네트리스트 추상화 (106) 가 네트리스트 (102) 보다 사이즈에 있어서 현저히 더 작을 수 있음을 주목한다. 따라서, 플로어플래닝 동작들 (예를 들어, 배치) 은 네트리스트 (102) 에 대해서보다 네트리스트 추상화 (106) 에 대해 현저히 더 신속하게 수행될 수 있다.
그 후, 블록 형상화 및/또는 매크로 배치가, 배치된 네트리스트 추상화 (110) 를 시드로서 이용함으로써 회로 설계 (예를 들어, 네트리스트 (102)) 에 대해 수행될 수 있다 (동작 112). 예를 들어, 블록 형상화 및/또는 매크로 배치를 위한 초기 솔루션은 배치된 네트리스트 추상화 (110) 에 기초하여 네트리스트 (102) 에 있어서 회로 엘리먼트들을 배치함으로써 신속하게 생성될 수 있다. 다음으로, 그 초기 솔루션이 추가로 최적화되어, 배치된 및 형상화된 회로 설계 (114) 를 생성할 수 있다. 이러한 방식으로 네트리스트 추상화 (106) 를 생성 및 이용하는 것은, 네트리스트 (102) 에 대해 수행되는 플로어플래닝 동작들의 결과들의 전체 성능 및 품질을 실질적으로 개선시킬 수 있다.
도 2 는 본 명세서에서 설명된 일부 실시형태들에 따라 네트리스트 추상화를 생성하기 위한 프로세스를 도시한 플로우차트를 제시한다. 프로세스는 회로 설계를 위한 네트리스트를 수신하는 것으로 시작할 수 있으며, 회로 설계에 있어서의 회로 엘리먼트들은 논리적 계위에서 체계화된다 (동작 202). 다음으로, 프로세스는 논리적 계위에서 논리적 계위 노드들의 세트를 수신할 수 있다 (동작 204).
예를 들어, 사용자는 예컨대, 그래픽 사용자 인터페이스를 이용하여 회로 블록들을 선택함으로써, 파일에 논리적 계위 노드 식별자들의 리스트를 제공함으로써 등에 의해 논리적 계위 노드들의 세트를 네트리스트 추상화 툴에 제공할 수도 있다. 대안적으로, 네트리스트 추상화 툴은 예컨대, 영역 임계치 (예를 들어, 그 툴은, 영역들이 영역 임계치보다 더 큰 최저의 논리적 계위 노드들을 자동으로 선택할 수도 있음), 셀 카운트 임계치 (예를 들어, 그 툴은, 셀 카운트들이 셀 카운트 임계치보다 더 큰 최저의 논리적 계위 노드들을 자동으로 선택할 수도 있음), 매크로 카운트 임계치 (예를 들어, 그 툴은, 매트로 카운트들이 매크로 카운트 임계치보다 더 큰 최저의 논리적 계위 노드들을 자동으로 선택할 수도 있음) 등에 기초하여 논리적 계위 노드들의 세트를 자동으로 (즉, 사용자 입력 없이) 선택할 수도 있다.
그 후, 프로세스는, 논리적 계위 노드들의 세트에 있어서의 각각의 논리적 계위 노드에 대해, 논리적 계위 노드 아래에 있는 네트리스트의 부분을 스타 네트리스트로 대체함으로써 네트리스트 추상화를 생성할 수 있으며, 여기서, 스타 네트리스트는 위성 오브젝트들의 세트에 전기적으로 접속된 중심 오브젝트를 포함하고, 각각의 위성 오브젝트는 논리적 계위 노드의 포트에 대응한다 (동작 206).
도 3 은 본 명세서에서 설명된 일부 실시형태들에 따른 회로 설계의 논리적 계위를 도시한다. 논리적 계위 (300) 는 논리적 계위 노드들 (302-314) 을 포함한다. 논리적 계위 노드 (302) 는, 전체 회로 설계에 또는 회로 설계에 있어서의 물리적 블록 (예를 들어, 메모리 블록, 프로세서 블록 등) 에 대응할 수 있는 상부 레벨 노드일 수 있다. 논리적 계위 노드들 (304-312) 은 논리적 계위 (300) 에 있어서 중간 노드들에 대응할 수 있고, 논리적 계위 노드 (314) 는 논리적 계위 (300) 에 있어서 리프 노드에 대응할 수 있다. 논리적 계위 (300) 에 있어서의 중간 레벨 노드는 회로 설계 내 중간 레벨 엔터티 (예를 들어, 멀티플렉서, 가산기, 레지스터 뱅크 등) 에 대응할 수 있다. 구체적으로, 중간 레벨 노드는, 회로 설계를 기술하는 HDL (예를 들어, SystemVerilog) 파일에 있어서의 모듈에 대응할 수 있다. 리프 노드, 예를 들어, 논리적 계위 노드 (314) 는 회로 설계의 기본 컴포넌트, 예를 들어, 인버터에 대응할 수 있다.
논리적 계위 노드들 (304-312) 아래의 음영 영역들은, 그 논리적 계위 노드들 각각 내에 있는 회로 설계 네트리스트의 부분들에 대응한다. 예를 들어, 음영 영역 (316) 은, 논리적 계위 노드 (304) 아래에 있는 회로 설계 네트리스트의 부분에 대응한다. 음영 영역 (316) 내의 노드들은, 논리적 계위 노드 (304) 에 대한 회로의 부분인 엔터티들에 대응한다. 예를 들어, 논리적 계위 노드 (304) 가 가산기 모듈에 대응하면, 음영 영역 (316) 은 가산기 모듈에 대한 네트리스트에 대응할 수 있으며, 음영 영역 (316) 내에 있는 논리적 계위 노드 (314) 는, 가산기 모듈 네트리스트에 있는 회로 엘리먼트 (예를 들어, 인버터) 에 대응할 수 있다. 논리적 계위 (300) 에 있어서의 비-음영 영역들은, 논리적 계위 노드들 (304-312) 내에 있지 않은 네트리스트의 부분들에 대응한다. 예를 들어, 비-음영 영역 (318) 은, 계위 노드 (304) 에 있어서의 제 1 회로 엘리먼트를 계위 노드 (306) 에 있어서의 제 2 회로 엘리먼트와 전기적으로 상호접속시키는 회로를 포함할 수 있다.
도 4a 는 본 명세서에서 설명된 일부 실시형태들에 따른 네트리스트의 뷰를 도시한다. 도 4a 에 도시된 타원들은, 논리적 계위 노드들 (402-406) 에 대응하는 네트리스트의 부분들을 나타낸다. 도 4a 에 있어서의 각각의 타원은 타원의 경계 상에 하나 이상의 흑색 정사각형들을 포함한다. 이들 정사각형 각각은 논리적 계위 노드의 포트를 나타낸다. 포트는 논리적 계위 노드 내에 있지 않은 회로 엘리먼트로부터 신호를 수신하거나 또는 논리적 계위 노드 내에 있지 않은 회로 엘리먼트에 신호를 제공하는데 사용될 수 있다. 포트에서 수신될 수 있거나 포트에 의해 제공될 수 있는 신호들의 예들은 클록, 데이터, 및 어드레스 신호들을 포함하지만 이에 한정되지 않는다. 논리적 계위 노드의 포트는, 논리적 계위에 있어서의 논리적 계위 노드 아래에 있는 회로 엘리먼트의 입력 핀 또는 출력 핀에 대응할 수 있음을 주목한다.
논리적 계위 노드의 포트는 다른 논리적 계위 노드들의 포트들에 및/또는 회로 설계에 있어서의 다른 회로 엘리먼트들에 전기적으로 접속될 수 있다. 예를 들어, 논리적 계위 노드 (402) 에 있어서의 포트 (408) 는 논리적 계위 노드 (404) 에 있어서의 포트 (418) 에 전기적으로 접속될 수 있다. 유사하게, 네트 (410) 는 논리적 계위 노드들 (402, 404, 및 406) 에 있어서의 포트들 (412, 414, 및 416) 을 각각 전기적으로 접속시키는데 사용될 수 있다. 포트 (420) 는 도 4a 에 도시된 논리적 계위 노드들에 있지 않은 하나 이상의 회로 엘리먼트들에 전기적으로 접속될 수도 있다.
도 4b 는 본 명세서에서 설명된 일부 실시형태들에 따라 네트리스트 추상화가 네트리스트로부터 어떻게 생성될 수 있는지를 도시한다. 회로 설계 네트리스트에 있어서 논리적 계위 노드들의 세트가 주어지면, 네트리스트 추상화는 계위 노드들의 세트에 있어서의 각각의 논리적 계위 노드에 대해 다음의 동작들을 수행함으로써 생성될 수 있다: 즉, (1) 논리적 계위 노드에 대한 스타 네트리스트를 생성함, 여기서, 각각의 스타 네트리스트는 하나 이상의 위성 오브젝트들에 전기적으로 접속된 중심 오브젝트를 포함하고, 각각의 위성 오브젝트는 논리적 계위 노드에 있어서의 포트에 대응함, 그리고 (2) 논리적 계위 노드 아래의 네트리스트의 부분을 스타 네트리스트로 대체함. 스타 네트리스트는 스타 네트리스트가 대체하는 네트리스트의 부분보다 사이즈에 있어서 실질적으로 더 작을 수 있다.
도 4b 에 도시된 네트리스트 추상화는 도 4a 에 도시된 네트리스트에 대응한다. 스타 네트리스트들 (472, 474, 및 476) 은 논리적 계위 노드들 (402, 404, 및 406) 에 각각 대응한다. 각각의 스타 네트리스트는, (도 4b 에 있어서의 비-음영 정사각형들로서 도시된) 하나 이상의 위성 오브젝트들에 전기적으로 접속된 (도 4b 에 있어서의 음영 정사각형으로서 도시된) 중심 오브젝트를 포함한다. 예를 들어, 중심 오브젝트 (452) 는 위성 오브젝트들 (458, 466) 및 5개의 다른 위성 오브젝트들에 전기적으로 접속된다. 오리지널 네트리스트에 있어서, 논리적 계위 노드 (402) 는 수천 또는 수백만의 회로 엘리먼트들을 포함하였을 수도 있다. 도 4b 에 도시된 네트리스트 추상화에 있어서, 논리적 계위 노드 (402) 에서의 (수천 또는 수백만일 수 있는) 회로 엘리먼트들은 (오직 8개의 오브젝트들만을 포함하는) 스타 네트리스트 (472) 로 대체되었다.
논리적 계위 노드의 포트와 다른 포트들 또는 회로 엘리먼트들 사이의 오리지널 네트리스트에 존재하였던 전기 커넥션들이 네트리스트 추상화에 보존될 수 있다. 예를 들어, 도 4a 에 도시된 오리지널 네트리스트에 있어서, 전기 커넥션이 포트 (408) 와 포트 (418) 사이에 존재하였다. 이러한 전기 커넥션은 도 4b 에 도시된 네트리스트 추상화에 보존되어, (포트 (408) 에 대응하는) 위성 오브젝트 (458) 가 (포트 (418) 에 대응하는) 위성 오브젝트 (468) 에 전기적으로 접속하게 한다.
일부 실시형태들에 있어서, 중심 오브젝트와 위성 오브젝트 간의 전기 커넥션들에는 충분히 높은 가중치가 할당될 수 있어서, 배치 엔진이 중심 오브젝트와 위성 오브젝트들을 배치 동안 서로 근접하게 유지되게 한다. 예를 들어, 중심 오브젝트 (452) 와 위성 오브젝트 (458) 간의 전기 커넥션에는 위성 오브젝트들 (458 및 468) 사이의 전기 커넥션의 가중치보다 더 큰 가중치가 할당될 수 있다 (위성 오브젝트들 (458 및 468) 간의 전기 커넥션의 가중치는 오리지널 네트리스트에 존재하였던 가중치와 동일할 수 있음을 주목한다).
배치 엔진은 통상적으로, 회로 엘리먼트들의 배치를 최적화하기 위한 비용 함수를 사용한다. 일반적으로, 비용 함수에서의 컴포넌트들 중 하나는 전기 커넥션 길이들의 가중 합 (예를 들어, 네트들의 와이어 길이들의 가중 합) 이다. 따라서, 중심 오브젝트와 위성 오브젝트들 간의 전기 커넥션들에 더 큰 가중치가 할당되면, 배치 엔진이 그들 오브젝트들을 서로 근처에 유지되도록 시도할 것인데, 왜냐하면 그렇게 하는 것이 비용 함수를 최소화하는 것을 도울 것이기 때문이다.
본 명세서에서 설명된 일부 실시형태들에 있어서, 스타 네트리스트에 있어서의 위성 오브젝트들을 서로 전기적으로 상호접속시키는 네트가 네트리스트 추상화에 부가될 수 있다. 그러한 네트를 부가하는 것은 배치 엔진이 중심 오브젝트와 위성 오브젝트들을 배치 동안 서로 근접하게 유지됨을 보장할 수 있다. 도 4c 는 본 명세서에서 설명된 일부 실시형태들에 따라 스타 네트리스트에 있어서의 위성 오브젝트의 세트를 서로 전기적으로 상호접속시키는 네트를 도시한다. 도 4c 에 도시된 바와 같이, 네트 (470) 는, 배치 엔진이 중심 오브젝트 (452) 와 위성 오브젝트들 (예를 들어, 위성 오브젝트들 (458 및 466)) 을 배치 동안 서로 근접하게 유지됨을 보장하도록 스타 네트리스트 (472) 에 부가될 수 있다. (도 4c 에 있어서 점선들을 사용하여 도시된) 네트 (470) 는 위성 오브젝트들 모두를 서로 전기적으로 상호접속시킴을 주목한다.
본 명세서에서 설명된 일부 실시형태들에 있어서, 각각의 스타 네트리스트에 있어서의 중심 오브젝트와 위성 오브젝트들의 영역들의 합은, 스타 네트리스트에 대응하는 논리적 계위 노드의 영역과 실질적으로 동일하다. 배치 엔진이 스타 네트리스트를 배치할 경우 (즉, 스타 네트리스트에 있어서 중심 오브젝트와 위성 오브젝트들을 배치함), 스타 네트리스트에 의해 커버된 전체 영역은 스타 네트리스트가 나타내는 회로의 전체 영역에 대응할 것이다. 그렇지 않으면, 배치 엔진은, 그 배치 엔진이 네트리스트 추상화에 대해 배치를 수행할 경우 의미있는 출력을 생성하지 않을 수도 있다.
본 명세서에서 설명된 일부 실시형태들에 있어서, 중심 오브젝트의 영역은 각각의 스타 네트리스트에 있어서의 각각의 위성 오브젝트의 영역보다 더 크다. 이러한 방식으로 중심 오브젝트와 위성 오브젝트들에 영역 값들을 할당하는 것은 그래픽 사용자 인터페이스 상에서 스타 네트리스트를 시각화하는 것을 더 용이하게 할 수 있다.
본 명세서에서 설명된 일부 실시형태들에 있어서, 중심 오브젝트들과 위성 오브젝트들은 플로어플래닝 툴에 대해 "정규" 배치가능한 오브젝트들로서 보인다. 즉, 플로어플래닝 툴은 네트리스트 추상화를 임의의 다른 "정규" 네트리스트와 같이 처리할 수도 있으며, 네트리스트 추상화를 처리하는 플로어플래닝 툴에 어떠한 변형들도 요구되지 않을 수도 있다.
본 명세서에서 설명된 네트리스트 추상화 장치들 및 프로세스들은 플로어플랜의 상부 레벨에서 또는 플로어플랜에 있어서의 물리적 블록 내에서의 배치 및 블록 형상화 동안에 이용될 수 있다. 일부 실시형태들에 있어서, 본 명세서에서 설명된 네트리스트 추상화 장치들 및 프로세스들은 재귀적으로 이용될 수 있다. 예를 들어, 네트리스트 추상화 장치들 및 프로세스들은 플로어플랜의 상부 레벨에서의 배치 및 블록 형상화 동안에 이용될 수 있다. 다음으로, 결과적인 상부 레벨 플로어플랜에 있어서의 각각의 블록 내에서, 배치 및 블록 형상화가, 본 명세서에서 설명된 네트리스트 추상화 장치들 및 프로세스들을 이용함으로써 수행될 수 있다. 그 후, 이러한 프로세스는 각각의 블록 내의 각각의 서브-블록 등에 대해 반복될 수 있다. 일부 실시형태들에 있어서, 본 명세서에서 설명된 네트리스트 추상화 장치들 및 프로세스들은 다중의 레벨들에서 동시에 네트리스트 추상화들을 생성하는데 이용될 수 있으며, 즉, 네트리스트 추상화는 상부 레벨, 블록 레벨, 서브-블록 레벨 등에서 동시에 생성될 수 있다. 일단 생성되면, 다중의 레벨들에서의 네트리스트 추상화들은 다중의 레벨들에서의 배치 및 블록 형상화를 동시에 수행하는데 이용될 수 있다.
도 5a 내지 도 5c 는 본 명세서에서 설명된 일부 실시형태들에 따라 배치 및 블록 형상화를 위해 네트리스트 추상화가 어떻게 이용될 수 있는지를 도시한다. 도 5a 는 논리적 계위 노드들 (502-506), 매크로 셀들 (508-510), 및 복수의 I/O 셀들 (예를 들어, I/O 셀들 (580)) 을 포함하는 회로 설계의 네트리스트 (500) 를 도시한다. 도 5b 는 네트리스트 (500) 에 대응하는 배치된 네트리스트 추상화 (530) 를 도시한다. 배치된 네트리스트 추상화 (530) 는 네트리스트 (500) 에 기초하여 네트리스트 추상화가 생성된 이후에 획득되며, 배치는 네트리스트 추상화에 대해 수행된다. 배치된 네트리스트 추상화 (530) 에 있어서의 중심 오브젝트들 (532, 534, 및 536) 은, 네트리스트 (500) 에 있어서 논리적 계위 노드들 (502, 504, 및 506) 에 각각 대응하는 스타 네트리스트들의 부분이다. 그 후, 배치된 네트리스트 추상화 (530) 는 네트리스트 (500) 에 대해 블록 형상화를 수행하기 위한 시드로서 이용될 수 있다. 플로어플랜 (560) 은, 배치된 네트리스트 추상화 (530) 를 시드로서 이용함으로써 네트리스트 (500) 에 대해 블록 형상화를 수행하는 결과를 도시한 블록들 (562, 564, 및 566) 을 포함한다.
컴퓨터 시스템
도 6 은 본 개시에서 설명된 일부 실시형태들에 따른 컴퓨터 시스템을 도시한다. 컴퓨터 시스템 (602) 은 프로세서 (604), 메모리 (606), 및 저장 디바이스 (608) 를 포함할 수 있다. 컴퓨터 시스템 (602) 은 디스플레이 디바이스 (614), 키보드 (610), 및 포인팅 디바이스 (612) 에 커플링될 수 있다. 저장 디바이스 (608) 는 오퍼레이팅 시스템 (616), 어플리케이션 (618), 및 데이터 (620) 를 저장할 수 있다. 데이터 (620) 는 어플리케이션 (618) 에 의해 요구된 입력 및/또는 어플리케이션 (618) 에 의해 생성된 출력을 포함할 수 있다.
컴퓨터 시스템 (602) 은, 본 개시에서 암시적으로 또는 명시적으로 설명되는 하나 이상의 동작들을 자동으로 (또는 사용자 개입으로) 수행할 수도 있다. 예를 들어, 컴퓨터 시스템 (602) 은 메모리 (606) 에 어플리케이션 (618) 을 로딩할 수 있고, 그 후, 어플리케이션 (618) 은, 네트리스트 추상화를 생성하고 그리고 네트리스트 추상화를 시드로서 이용하여 성능을 실질적으로 개선할 수 있는 하나 이상의 플로어플래닝 동작들을 수행하도록 사용될 수 있다.
결론
상기 설명은 당업자로 하여금 본 실시형태들을 제조 및 이용할 수 있도록 제시된다. 개시된 실시형태들에 대한 다양한 변형들은 당업자에게 용이하게 자명할 것이며, 본 명세서에서 정의된 일반적인 원리들은 본 개시의 사상 및 범위로부터 일탈함없이 다른 실시형태들 및 어플리케이션들에 적용가능하다. 따라서, 본 발명은 설명된 실시형태들로 한정되지 않으며, 본 명세서에 개시된 원리들 및 특징들과 부합하는 최광의 범위를 부여받아야 한다.
본 개시에서 설명된 데이터 구조들 및 코드는 컴퓨터 판독가능 저장 매체 및/또는 하드웨어 모듈 및/또는 하드웨어 장치 상에 부분적으로 또는 완전히 저장될 수 있다. 컴퓨터 판독가능 저장 매체는 코드 및/또는 데이터를 저장할 수 있는 디스크 드라이브들, 자기 테이프, CD들 (컴팩트 디스크들), DVD들 (디지털 다기능 디스크들 또는 디지털 비디오 디스크들), 또는 지금 공지된 또는 이후에 개발되는 다른 매체들과 같은, 휘발성 메모리, 비휘발성 메모리, 자기 및 광학 저장 디바이스들을 포함하지만 이에 한정되지 않는다. 본 개시에서 설명된 하드웨어 모듈들 또는 장치들은 주문형 집적회로들 (ASIC들), 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 전용 또는 공유 프로세서들, 및/또는 지금 공지된 또는 이후 개발되는 다른 하드웨어 모듈들 또는 장치들을 포함하지만 이에 한정되지 않는다.
본 개시에서 설명된 방법들 및 프로세스들은 컴퓨터 판독가능 저장 매체 또는 디바이스에 저장된 코드 및/또는 데이터로서 부분적으로 또는 완전히 구현될 수 있어서, 컴퓨터 시스템이 코드 및/또는 데이터를 판독하고 실행할 경우 컴퓨터 시스템이 관련 방법들 및 프로세스들을 수행하게 한다. 그 방법들 및 프로세스들은 또한, 하드웨어 모듈들 또는 장치들에서 부분적으로 또는 완전히 구현될 수 있어서, 하드웨어 모듈들 또는 장치들이 활성화될 경우 관련 방법들 및 프로세스들을 수행하게 한다. 그 방법들 및 프로세스들은 코드, 데이터, 및 하드웨어 모듈들 또는 장치들의 조합을 이용하여 구현될 수 있음을 주목한다.
본 발명의 실시형태들의 상기 설명들은 단지 예시 및 설명의 목적으로만 제시되었다. 이들은 포괄적인 것으로 또는 본 발명을 개시된 형태들로 한정하도록 의도되지 않는다. 이에 따라, 다수의 변형들 및 변동들은 당업자에게 자명할 것이다. 부가적으로, 상기 개시는 본 발명을 한정하도록 의도되지 않는다. 본 발명의 범위는 첨부된 청구항들에 의해 정의된다.

Claims (20)

  1. 네트리스트 추상화를 생성하는 방법으로서,
    회로 설계를 위한 네트리스트를 수신하는 단계로서, 상기 회로 설계에 있어서의 회로 엘리먼트들은 논리적 계위 (LH) 에서 체계화되는, 상기 네트리스트를 수신하는 단계;
    상기 LH 에 있어서 LH 노드들의 세트를 수신하는 단계; 및
    상기 LH 노드들의 세트에 있어서의 각각의 LH 노드에 대해, 상기 LH 에 있어서의 상기 LH 노드 아래에 있는 상기 네트리스트의 부분을 스타 네트리스트로 대체함으로써 상기 네트리스트 추상화를 생성하는 단계를 포함하고,
    상기 스타 네트리스트는 위성 오브젝트들의 세트에 전기적으로 접속된 중심 오브젝트를 포함하고,
    각각의 위성 오브젝트는 상기 LH 노드의 포트에 대응하는, 네트리스트 추상화를 생성하는 방법.
  2. 제 1 항에 있어서,
    상기 네트리스트 추상화에 대해 배치를 수행하여 배치된 네트리스트 추상화를 획득하는 단계를 더 포함하는, 네트리스트 추상화를 생성하는 방법.
  3. 제 2 항에 있어서,
    상기 배치된 네트리스트 추상화를 시드로서 이용함으로써 상기 회로 설계에 대한 블록 형상화를 수행하는 단계를 더 포함하는, 네트리스트 추상화를 생성하는 방법.
  4. 제 2 항에 있어서,
    상기 배치된 네트리스트 추상화를 시드로서 이용함으로써 상기 회로 설계에 대한 매크로 배치를 수행하는 단계를 더 포함하는, 네트리스트 추상화를 생성하는 방법.
  5. 제 1 항에 있어서,
    중심 오브젝트들을 위성 오브젝트들과 전기적으로 접속시키는 네트들에는, 위성 오브젝트들을 서로 전기적으로 접속시키는 네트들보다 더 큰 가중치가 할당되는, 네트리스트 추상화를 생성하는 방법.
  6. 제 1 항에 있어서,
    각각의 스타 네트리스트는 상기 위성 오브젝트들의 세트를 서로 전기적으로 상호접속시키는 네트를 포함하는, 네트리스트 추상화를 생성하는 방법.
  7. 제 1 항에 있어서,
    각각의 스타 네트리스트에 있어서의 상기 위성 오브젝트들의 세트와 상기 중심 오브젝트의 영역들의 합은, 상기 스타 네트리스트에 대응하는 상기 LH 노드의 영역과 실질적으로 동일한, 네트리스트 추상화를 생성하는 방법.
  8. 제 7 항에 있어서,
    각각의 스타 네트리스트에 있어서, 상기 중심 오브젝트의 영역은 각각의 위성 오브젝트의 영역보다 더 큰, 네트리스트 추상화를 생성하는 방법.
  9. 명령들을 저장하는 비-일시적인 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 컴퓨터에 의해 실행될 경우, 상기 컴퓨터로 하여금 네트리스트 추상화를 생성하는 방법을 수행하게 하며,
    상기 네트리스트 추상화를 생성하는 방법은
    회로 설계를 위한 네트리스트를 수신하는 단계로서, 상기 회로 설계에 있어서의 회로 엘리먼트들은 논리적 계위 (LH) 에서 체계화되는, 상기 네트리스트를 수신하는 단계;
    상기 LH 에 있어서 LH 노드들의 세트를 수신하는 단계; 및
    상기 LH 노드들의 세트에 있어서의 각각의 LH 노드에 대해, 상기 LH 에 있어서의 상기 LH 노드 아래에 있는 상기 네트리스트의 부분을 스타 네트리스트로 대체함으로써 상기 네트리스트 추상화를 생성하는 단계를 포함하고,
    상기 스타 네트리스트는 위성 오브젝트들의 세트에 전기적으로 접속된 중심 오브젝트를 포함하고,
    각각의 위성 오브젝트는 상기 LH 노드의 포트에 대응하는, 비-일시적인 컴퓨터 판독가능 저장 매체.
  10. 제 9 항에 있어서,
    상기 네트리스트 추상화를 생성하는 방법은 상기 네트리스트 추상화에 대해 배치를 수행하여 배치된 네트리스트 추상화를 획득하는 단계를 더 포함하는, 비-일시적인 컴퓨터 판독가능 저장 매체.
  11. 제 10 항에 있어서,
    상기 네트리스트 추상화를 생성하는 방법은 상기 배치된 네트리스트 추상화를 시드로서 이용함으로써 상기 회로 설계에 대한 블록 형상화를 수행하는 단계를 더 포함하는, 비-일시적인 컴퓨터 판독가능 저장 매체.
  12. 제 10 항에 있어서,
    상기 네트리스트 추상화를 생성하는 방법은 상기 배치된 네트리스트 추상화를 시드로서 이용함으로써 상기 회로 설계에 대한 매크로 배치를 수행하는 단계를 더 포함하는, 비-일시적인 컴퓨터 판독가능 저장 매체.
  13. 제 9 항에 있어서,
    중심 오브젝트들을 위성 오브젝트들과 전기적으로 접속시키는 네트들에는, 위성 오브젝트들을 서로 전기적으로 접속시키는 네트들보다 더 큰 가중치가 할당되는, 비-일시적인 컴퓨터 판독가능 저장 매체.
  14. 제 9 항에 있어서,
    각각의 스타 네트리스트는 상기 위성 오브젝트들의 세트를 서로 전기적으로 상호접속시키는 네트를 포함하는, 비-일시적인 컴퓨터 판독가능 저장 매체.
  15. 제 9 항에 있어서,
    각각의 스타 네트리스트에 있어서의 상기 위성 오브젝트들의 세트와 상기 중심 오브젝트의 영역들의 합은, 상기 스타 네트리스트에 대응하는 상기 LH 노드의 영역과 실질적으로 동일한, 비-일시적인 컴퓨터 판독가능 저장 매체.
  16. 제 15 항에 있어서,
    각각의 스타 네트리스트에 있어서, 상기 중심 오브젝트의 영역은 각각의 위성 오브젝트의 영역보다 더 큰, 비-일시적인 컴퓨터 판독가능 저장 매체.
  17. 시스템으로서,
    프로세서; 및
    명령들을 저장하는 저장 매체를 포함하고,
    상기 명령들은, 상기 프로세서에 의해 실행될 경우, 상기 시스템으로 하여금 네트리스트 추상화를 생성하는 방법을 수행하게 하며,
    상기 네트리스트 추상화를 생성하는 방법은
    회로 설계를 위한 네트리스트를 수신하는 단계로서, 상기 회로 설계에 있어서의 회로 엘리먼트들은 논리적 계위 (LH) 에서 체계화되는, 상기 네트리스트를 수신하는 단계;
    상기 LH 에 있어서 LH 노드들의 세트를 수신하는 단계; 및
    상기 LH 노드들의 세트에 있어서의 각각의 LH 노드에 대해, 상기 LH 에 있어서의 상기 LH 노드 아래에 있는 상기 네트리스트의 부분을 스타 네트리스트로 대체함으로써 상기 네트리스트 추상화를 생성하는 단계를 포함하고,
    상기 스타 네트리스트는 위성 오브젝트들의 세트에 전기적으로 접속된 중심 오브젝트를 포함하고,
    각각의 위성 오브젝트는 상기 LH 노드의 포트에 대응하는, 시스템.
  18. 제 17 항에 있어서,
    상기 네트리스트 추상화를 생성하는 방법은
    상기 네트리스트 추상화에 대해 배치를 수행하여 배치된 네트리스트 추상화를 획득하는 단계; 및
    상기 배치된 네트리스트 추상화를 시드로서 이용함으로써 상기 회로 설계에 대한 매크로 배치 및 블록 형상화를 수행하는 단계를 더 포함하는, 시스템.
  19. 제 17 항에 있어서,
    중심 오브젝트들을 위성 오브젝트들과 전기적으로 접속시키는 네트들에는, 위성 오브젝트들을 서로 전기적으로 접속시키는 네트들보다 더 큰 가중치가 할당되는, 시스템.
  20. 제 17 항에 있어서,
    각각의 스타 네트리스트에 있어서의 상기 위성 오브젝트들의 세트와 상기 중심 오브젝트의 영역들의 합은, 상기 스타 네트리스트에 대응하는 상기 LH 노드의 영역과 실질적으로 동일한, 시스템.
KR1020157020435A 2012-12-31 2013-12-27 네트리스트 추상화 KR102038736B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261747969P 2012-12-31 2012-12-31
US61/747,969 2012-12-31
US13/849,430 2013-03-22
US13/849,430 US8910097B2 (en) 2012-12-31 2013-03-22 Netlist abstraction
PCT/US2013/077978 WO2014106043A1 (en) 2012-12-31 2013-12-27 Netlist abstraction

Publications (2)

Publication Number Publication Date
KR20150103161A KR20150103161A (ko) 2015-09-09
KR102038736B1 true KR102038736B1 (ko) 2019-10-30

Family

ID=51018860

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157020435A KR102038736B1 (ko) 2012-12-31 2013-12-27 네트리스트 추상화

Country Status (5)

Country Link
US (1) US8910097B2 (ko)
JP (1) JP6282285B2 (ko)
KR (1) KR102038736B1 (ko)
DE (1) DE112013005831T5 (ko)
WO (1) WO2014106043A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11854916B2 (en) 2022-02-04 2023-12-26 MakinaRocks Co., Ltd. Method for evaluating placement of semiconductor devices

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10318692B2 (en) * 2015-03-23 2019-06-11 Synopsys, Inc. Scalable chip placement
US10372860B2 (en) 2015-07-01 2019-08-06 Synopsys, Inc. Netlist abstraction for circuit design floorplanning

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002342396A (ja) 2001-05-18 2002-11-29 Nec Corp 半導体集積回路の自動フロアプランシステムとそのフロアプラン方法及びそのコンピュータプログラム
US20090313596A1 (en) 2008-06-11 2009-12-17 Bernhard Lippmann System and Method for Integrated Circuit Planar Netlist Interpretation
JP2011192172A (ja) 2010-03-16 2011-09-29 Ricoh Co Ltd フロアプランデータ生成装置及び方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0388072A (ja) * 1989-08-31 1991-04-12 Toshiba Corp 半導体集積回路のフロアプラン設計用cad装置
US6799309B2 (en) * 2002-12-04 2004-09-28 International Business Machines Corporation Method for optimizing a VLSI floor planner using a path based hyper-edge representation
US7437695B1 (en) 2004-03-03 2008-10-14 Xilinx, Inc. Method of memory and run-time efficient hierarchical timing analysis in programmable logic devices
US7162706B2 (en) * 2004-03-05 2007-01-09 Picocraft Design Systems, Inc. Method for analyzing and validating clock integration properties in circuit systems
US7266796B1 (en) 2005-04-08 2007-09-04 Iowa State University Research Foundation, Inc. Fastplace method for integrated circuit design
US20070245281A1 (en) * 2006-04-14 2007-10-18 Riepe Michael A Placement-Driven Physical-Hierarchy Generation
US20070256037A1 (en) * 2006-04-26 2007-11-01 Zavadsky Vyacheslav L Net-list organization tools
US8104000B2 (en) 2008-10-27 2012-01-24 Synopsys, Inc. Method and apparatus for memory abstraction and for word level net list reduction and verification using same
WO2010073399A1 (ja) 2008-12-26 2010-07-01 株式会社ルネサステクノロジ 半導体集積回路の設計方法およびソフトウエア
JP5401256B2 (ja) * 2009-10-16 2014-01-29 ルネサスエレクトロニクス株式会社 半導体装置の設計方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002342396A (ja) 2001-05-18 2002-11-29 Nec Corp 半導体集積回路の自動フロアプランシステムとそのフロアプラン方法及びそのコンピュータプログラム
US20090313596A1 (en) 2008-06-11 2009-12-17 Bernhard Lippmann System and Method for Integrated Circuit Planar Netlist Interpretation
JP2011192172A (ja) 2010-03-16 2011-09-29 Ricoh Co Ltd フロアプランデータ生成装置及び方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11854916B2 (en) 2022-02-04 2023-12-26 MakinaRocks Co., Ltd. Method for evaluating placement of semiconductor devices

Also Published As

Publication number Publication date
JP6282285B2 (ja) 2018-02-21
WO2014106043A1 (en) 2014-07-03
US20140189620A1 (en) 2014-07-03
US8910097B2 (en) 2014-12-09
DE112013005831T5 (de) 2015-09-24
JP2016507818A (ja) 2016-03-10
KR20150103161A (ko) 2015-09-09

Similar Documents

Publication Publication Date Title
US10318686B2 (en) Methods for reducing delay on integrated circuits by identifying candidate placement locations in a leveled graph
US10896280B1 (en) Netlist abstraction for circuit design floorplanning
US8635579B1 (en) Local clock skew optimization
US10318684B2 (en) Network flow based framework for clock tree optimization
US8954915B2 (en) Structured placement of hierarchical soft blocks during physical synthesis of an integrated circuit
US9069699B2 (en) Identifying inconsistent constraints
US8719752B1 (en) Hierarchical crosstalk noise analysis model generation
US9298872B2 (en) Apportioning synthesis effort for better timing closure
KR102038736B1 (ko) 네트리스트 추상화
US10073944B2 (en) Clock tree synthesis based on computing critical clock latency probabilities
US8091052B2 (en) Optimization of post-layout arrays of cells for accelerated transistor level simulation
Golshan et al. Seu-aware high-level data path synthesis and layout generation on sram-based fpgas
US9690890B1 (en) Creating and using a wide-bus data structure to represent a wide-bus in an integrated circuit (IC) design
US9697314B1 (en) Identifying and using slices in an integrated circuit (IC) design
US9652573B1 (en) Creating and using a wide-gate data structure to represent a wide-gate in an integrated circuit (IC) design
US9747405B2 (en) Buffer chain management for alleviating routing congestion
US20090241082A1 (en) Method and System for Generating an Accurate Physical Realization for an Integrated Circuit Having Incomplete Physical Constraints
US10346578B2 (en) Placement-based congestion-aware logic restructuring
US10354032B2 (en) Optimizing an integrated circuit (IC) design comprising at least one wide-gate or wide-bus
US10157253B2 (en) Multi-bit-mapping aware clock gating
US10049174B2 (en) Exact delay synthesis
US10318692B2 (en) Scalable chip placement
WO2014106040A1 (en) Pattern-based power-and-ground (pg) routing and via creation
US20220114321A1 (en) Systems And Methods For Generating Placements For Circuit Designs Using Pyramidal Flows

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant