KR20060050072A - 반도체 집적 회로의 소자 배치 시스템, 소자 배치 방법, 및소자 배치 프로그램 - Google Patents

반도체 집적 회로의 소자 배치 시스템, 소자 배치 방법, 및소자 배치 프로그램 Download PDF

Info

Publication number
KR20060050072A
KR20060050072A KR1020050062684A KR20050062684A KR20060050072A KR 20060050072 A KR20060050072 A KR 20060050072A KR 1020050062684 A KR1020050062684 A KR 1020050062684A KR 20050062684 A KR20050062684 A KR 20050062684A KR 20060050072 A KR20060050072 A KR 20060050072A
Authority
KR
South Korea
Prior art keywords
designated
logic
logic element
routing
capacitor
Prior art date
Application number
KR1020050062684A
Other languages
English (en)
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 KR20060050072A publication Critical patent/KR20060050072A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/70Manufacture or treatment of devices consisting of a plurality of solid state components formed in or on a common substrate or of parts thereof; Manufacture of integrated circuit devices or of parts thereof
    • H01L21/77Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate
    • H01L21/78Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices
    • H01L21/82Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices to produce devices, e.g. integrated circuits, each consisting of a plurality of components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers
    • H01L27/04Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers the substrate being a semiconductor body

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Architecture (AREA)
  • Manufacturing & Machinery (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

소자 배치 시스템은 배치될 논리 소자에 관한 소자 정보와 논리 소자가 배치가능한 영역의 영역 정보를 포함하는 배치 정보와, 라우팅을 실행하기 위해 필요한 라우팅 정보를 기억하는 배치 라우팅용 라이브러리와, 근방에 캐패시터를 배치하도록 지정된 논리 소자인 지정 논리 소자에 관한 지정 소자 정보를 기억하는 배치 개량용 라이브러리와, 논리 소자 간의 접속 데이터를 포함하는 입력 데이터와 배치 라우팅용 라이브러리에 기억된 배치 정보에 따라 논리 소자의 배치를 실행하는 배치부와, 배치부에 의한 배치 결과를, 배치 개량용 라이브러리에 기억된 지정 논리 소자의 근방에 간극을 모으도록 지정 논리 소자 이외의 논리 소자를 이동하여 개량하는 배치 개량부와, 배치 개량부에 의한 배치 개량 후의 논리 소자에 대하여 입력 데이터에 기초하여 라우팅을 실행하는 라우팅부와, 모아진 간극에 캐패시터를 배치하는 캐패시터 발생부를 포함한다.
배치 라우팅용 라이브러리, 배치 개량용 라이브러리, 논리 소자, 온 칩 캐패시터, 배치 개량부, 캐패시터 발생부

Description

반도체 집적 회로의 소자 배치 시스템, 소자 배치 방법, 및 소자 배치 프로그램{SYSTEM FOR PLACING ELEMENTS OF SEMICONDUCTOR INTEGRATED CIRCUIT, METHOD OF PLACING ELEMENTS THEREON, AND PROGRAM FOR PLACING ELEMENTS}
도 1은 본 발명의 소자 배치 시스템의 구성을 도시한 도면이다.
도 2는 본 발명의 배치 개량용 라이브러리의 일례를 도시한 도면이다.
도 3a, 3b, 3c 및 3d는 본 발명의 제1 형태의 간극 생성 처리를 설명하기 위한 배치도로서, 도 3a는 간극 이동 처리 전의 배치를 나타내는 도면이고, 도 3b는 간극 이동 처리 중의 배치를 나타내는 도면이며, 도 3c는 간극 이동 처리 후의 배치를 나타내는 도면이고, 도 3d는 생성된 간극 내에 배치된 캐패시터 등을 나타내는 도면이다.
도 4는 본 발명의 제1 형태의 동작을 도시한 플로우차트이다.
도 5는 본 발명의 제2 형태의 간극 생성 처리를 설명하기 위한 배치도로서, 도 5a는 간극 이동 처리 전의 배치를 나타내는 도면이고, 도 5b는 간극 이동 처리 후의 도면을 나타내는 도면이다.
도 6은 본 발명의 제2 형태의 간극 생성 처리의 동작을 도시한 플로우차트이다.
<도면의 주요 부분에 대한 부호의 설명>
100 : 소자 배치 시스템
101 : 배치부
102 : 배치 개량부
103 : 라우팅부
104 : 배치 추가부
105 : 캐패시터 발생부
201 : 입력 데이터
202 : 배치 라우팅용 라이브러리
203 : 배치 개량용 라이브러리
204 : 출력 데이터
본 발명은 반도체 집적 회로, 반도체 집적 회로의 소자 배치 방법, 및 소자 배치 프로그램에 관한 것으로, 특히, LSI 설계용 CAD의 배치 설계에서 노이즈의 영향을 억제하기 위한 온 칩 캐패시터를 배치하는 기술에 관한 것이다.
반도체 집적 회로(LSI라고도 함)의 설계에서는 기능 블록으로 불리는 NAND 회로나 NOR 회로나 인버터(Inverter) 회로 등의 기본적인 동작을 행하는 작은 회로를, 컴퓨터의 프로그램상에서 작성 대상의 LSI 내에 배치하고, 그 사이의 라우팅의 접속을 행함으로써, 반도체 상에서 제조에 사용하는 마스크의 기초로 되는 데이터 를 작성한다. 이 과정을 배치 라우팅 처리(placement and routing processing)라고 한다.
배치 라우팅 처리는, 크게 나누어, 라우팅 프로그램과 배치 프로그램에 의해 실행된다. 종래의 배치 프로그램은 라우팅에 의한 지연과 면적을 목표값 내로 하는 것을 목적으로 하여 배치를 행하고 있다.
그런데, 최근 초고속의 LSI에서는 기능 블록이 동작하는 것에 수반하는 노이즈의 발생이 문제로 되고 있다. 노이즈의 영향을 억제하기 위해서는 LSI 내부의 간극(또는 빈 공간)(space)에 온 칩 캐패시터를 배치하는 것이 유효하다. 온 칩 캐패시터란, LSI 내부에 PN 접합 용량이나 게이트 용량을 이용한 축전기인 캐패시터이다.
LSI 설계에서의 온 칩 캐패시터의 배치 방법이 일본 특개평11-168177호 공보의 발명에 도시되어 있다. 본 발명에서 생성된 온 칩 캐패시터는, 지연 제약만으로 결정된 배치 결과의 간극에 배치되어 있지만, 노이즈를 발생하는 기능 블록이나 노이즈에 약한 기능 블록을 배려한 배치는 되어 있지 않다.
온 칩 캐패시터는, 노이즈의 발생원의 근방이나 노이즈에 약한 기능 블록의 근방에 배치할수록 그 효과가 높지만, 종래의 배치 프로그램은 노이즈의 발생을 전혀 고려하고 있지 않기 때문에, 노이즈의 발생원이나 노이즈에 약한 기능 블록의 근방에 효과적으로 온 칩 캐패시터를 배치할 수 없었다.
또한, 이 일본 특개평11-168177호 공보의 발명에서는 배치 대상의 영역에 대한 기능 블록의 수가 증가함에 따라, 매우 작은 간극이 기능 블록간에 산재하게 된다. 온 칩 캐패시터는 어느 정도의 폭의 간극을 필요로 하기 때문에, 작은 간극이 산재하는 환경에서는, 효과적으로 온 칩 캐패시터가 배치되기 어렵게 된다.
본 발명의 목적은, 사전에 온 칩 캐패시터를 근방에 배치하고자 하는 기능 블록을 지정하고, 그 근변에 산재하는 작은 간극을 배치하고자 하는 기능 블록의 근방으로 이동·병합(merge)함으로써, 온 칩 캐패시터를 보다 효과적으로 배치할 수 있게 한 반도체 집적 회로, 반도체 집적 회로의 소자 배치 방법, 및 소자 배치 프로그램을 제공하는 것에 있다.
본 발명의 또 다른 목적은, 반도체 집적 회로, 반도체 집적 회로의 소자 배치 방법, 인접 또는 다른 행 영역으로의 기능 블럭 이동의 범위를 확장함으로써 캐패시터를 보다 효과적으로 배치할 수 있게 한 공간을 할당하는 것이 가능하도록 하는 소자 배치 프로그램을 제공하여 LSI 내부의 잡음의 생성 및 영향을 상당히 줄일 수 있다.
1. 본 발명에 따른 소자 배치 시스템은,
배치될 논리 소자에 관한 소자 정보와 논리 소자가 배치가능한 영역의 영역 정보를 포함하는 배치 정보와, 라우팅을 실행하기 위해 필요한 라우팅 정보를 기억하는 배치 라우팅용 라이브러리와,
근방에 캐패시터를 배치하도록 지정된 논리 소자인 지정 논리 소자에 관한 지정 소자 정보를 기억하는 배치 개량용 라이브러리와,
논리 소자 간의 접속 데이터를 포함하는 입력 데이터와 상기 배치 라우팅용 라이브러리에 기억된 상기 배치 정보에 따라 논리 소자의 배치를 실행하는 배치부와,
상기 배치부에 의한 배치 결과를, 배치 개량용 라이브러리에 기억된 지정 논리 소자의 근방에 간극을 모으도록 지정 논리 소자 이외의 논리 소자를 이동하여 개량하는 배치 개량부와,
상기 배치 개량부에 의한 배치 개량 후의 논리 소자에 대하여 상기 입력 데이터에 기초하여 라우팅을 실행하는 라우팅부와,
상기 모아진 간극에 캐패시터를 배치하는 캐패시터 발생부를 포함한다.
2. 본 발명에 따른 소자 배치 시스템에 있어서,
상기 배치 개량부는, 상기 지정 논리 소자 이외의 논리 소자의 이동 후에, 간극을 더 모으기 위해 상기 지정 논리 소자를 이동한다.
3. 본 발명에 따른 소자 배치 시스템에 있어서,
상기 배치 개량용 라이브러리에 기억되는 지정 소자 정보는, 상기 지정 논리 소자의 명칭과, 상기 지정 논리 소자의 근방에 배치해야 할 캐패시터의 크기와, 배치해야 할 캐패시터를 지정 논리 소자의 한쪽측에만 배치할 것인가 혹은 양방측에 배치할 것인가를 지정하는 배치측 정보를 포함하고, 상기 배치 개량부는 상기 배치측 정보에 따라 지정 논리 소자의 한쪽 또는 양방측에 간극을 모은다.
4. 본 발명에 따른 소자 배치 시스템에 있어서,
상기 라우팅부에 의한 라우팅 결과가 사전에 결정된 조건을 만족시키지 않는 라우팅에 대하여 중계용의 버퍼인 논리 소자를 삽입하는 처리를 포함하는 논리 소자의 추가 또는 변경을 실행하는 배치 추가부를 더 포함하고,
상기 배치 추가부에 의한 논리 소자의 추가 또는 변경 후에, 상기 배치 개량부는 추가 또는 변경된 논리 소자에 대하여 이동을 실행하며, 상기 라우팅부는 논리 소자의 추가 또는 변경에 의해 재배치가 필요로 된 부분의 라우팅을 행한다.
5. 본 발명에 따른 소자 배치 시스템에 있어서,
상기 캐패시터는 크기가 서로 다른 복수의 캐패시터를 포함하며, 상기 캐패시터 발생부는 캐패시터를 배치하는 간극의 크기에 대하여 실장 가능한 최대의 캐패시터를 선택하여 배치한다.
6. 본 발명에 따른 소자 배치 시스템에 있어서,
상기 논리 소자는 반도체 집적 회로에 실장하는 기본적인 동작을 행하는 작은 회로인 기능 블록이다.
7. 본 발명에 따른 소자 배치 시스템에 있어서,
상기 배치 개량부는, 상기 배치부에 의한 배치의 결과에 대하여 배치 개량용 라이브러리에 기억된 상기 지정 논리 소자의 근방에 간극을 모으도록, 상기 배치 개량용 라이브러리 내에 기억된 상기 지정 논리 소자 외의 논리 소자를 상기 특정 논리 소자가 배치된 행 영역의 간극뿐만 아니라 다른 행 영역의 공간으로 이동한다.
8. 본 발명에 따른 소자 배치 방법은,
a) 실장될 논리 소자의 배치 단계 후에,
b) 논리 소자 중에서 근방에 캐패시터를 사전에 배치하도록 지정된 각 지정 논리 소자에 대하여, 상기 지정 논리 소자 이외의 논리 소자를 이동하여 상기 지정 논리 소자의 근방에 간극을 모으는 단계 - 상기 논리 소자는 상기 지정 논리 소자의 근방에 배치됨 - 와,
c) 상기 모아진 간극에 캐패시터를 배치하는 단계를 포함한다.
9. 본 발명에 따른 소자 배치 방법에 있어서,
b1) 논리 소자 중에서 근방에 캐패시터를 사전에 배치하도록 지정된 각 지정 논리 소자에 대하여, 상기 지정 논리 소자 이외의 논리 소자를 상기 지정 논리 소자가 배치된 행 영역의 공간뿐만 아니라 다른 행 영역의 간극으로 이동하여 상기 지정 논리 소자의 근방에 간극을 모으는 단계를 더 포함하고,
상기 논리 소자는 상기 지정 논리 소자의 근방에 배치된다.
10.본 발명에 따른 소자 배치 방법에 있어서,
b2) 상기 지정 논리 소자 이외의 논리 소자를 이동한 후에, 간극을 더 모으기 위해 상기 지정 논리 소자를 이동하는 단계를 더 포함한다.
11.본 발명에 따른 소자 배치 방법은,
a) 논리 소자간의 접속 데이터를 포함하는 입력 데이터와, 배치될 논리 소자에 관한 정보 및 논리 소자가 배치가능한 영역의 정보를 포함하는 배치 정보에 따라 논리 소자를 배치하는 단계 - 상기 논리 소자에 관한 정보와 상기 배치 정보는 배치 라우팅용 라이브러리에 기억됨 - 와,
b) 상기 배치 실행의 결과에 대하여, 근방에 캐패시터를 배치하기 위해 지정 된 지정 논리 소자에 관한 지정 소자 정보를 저장한 배치 개량용 라이브러리를 참조하고, 상기 지정 논리 소자가 배치된 영역의 근방에 간극을 모으도록 상기 지정 논리 소자 이외의 논리 소자를 이동하는 단계와,
c) 상기 이동된 논리 소자에 대하여, 상기 입력 데이터와, 상기 배치 라우팅 라이브러리에 기록된 라우팅을 실행하는데 필요한 라우팅 정보에 기초하여 라우팅을 실행하는 단계와,
d) 상기 모아진 간극 내에 캐패시터를 배치하는 단계를 포함한다.
12. 본 발명에 따른 소자 배치 방법에 있어서,
e) 상기 지정 논리 소자 이외의 논리 소자를 이동하는 상기 단계에 있어서, 상기 지정 논리 소자 이외의 논리 소자를 이동한 다음에, 간극을 더 모으도록 상기 지정 논리 소자를 이동하는 단계를 더 포함한다.
13. 본 발명에 따른 소자 배치 방법에 있어서,
상기 배치 개량용 라이브러리에 기억되는 지정 소자 정보는, 상기 지정 논리 소자의 명칭과, 상기 지정 논리 소자의 근방에 배치해야 할 캐패시터의 크기와, 배치해야할 캐패시터를 지정 논리 소자의 한쪽측에만 배치할지 혹은 양방측에 배치할지를 지정하는 배치측 정보를 포함하고,
상기 논리 소자의 이동 단계 후에, 상기 배치측 정보에 따라 지정 논리 소자의 한쪽 또는 양방측에 간극을 모으도록 지정 논리 소자 혹은 그 이외의 논리 소자를 이동한다.
14. 본 발명에 따른 소자 배치 방법에 있어서,
f) 상기 라우팅한 결과가 사전에 결정된 조건을 만족시키지 않는 라우팅에 대하여 중계용의 버퍼인 논리 소자를 삽입하는 처리를 포함하는 논리 소자의 추가 또는 변경을 실행하는 단계와,
g) 지정 논리 소자가 배치된 영역 근방에 간극을 모으도록 상기 추가 또는 변경된 논리 소자를 이동하는 단계와,
h) 상기 라우팅 결과에 대하여, 논리 소자의 추가 또는 변경에 의해 재배치를 필요로 하게된 부분을 라우팅하는 단계를 더 포함한다.
15. 본 발명에 따른 소자 배치 방법에 있어서,
상기 캐패시터는 크기가 서로 다른 복수의 캐패시터를 포함하고, 상기 모아진 간극에 캐패시터를 배치하는 상기 d) 단계에서, 캐패시터를 배치하는 간극의 크기에 대하여 실장 가능한 최대의 캐패시터를 선택하여 배치한다.
16. 본 발명에 따른 소자 배치 방법에 있어서,
상기 논리 소자는 반도체 집적 회로에 실장하는, 기본적인 동작을 행하는 작은 회로인 기능 블록이다.
17. 본 발명에 따른 소자 배치 방법에 있어서,
b1) 논리 소자 중에서 근방에 캐패시터를 사전에 배치하도록 지정된 각 지정 논리 소자에 대하여, 상기 지정 논리 소자 이외의 논리 소자를 상기 지정 논리 소자가 배치된 행 영역의 공간뿐만 아니라 다른 행 영역의 간극으로 이동하여 지정 논리 소자의 근방에 간극을 모으는 단계를 더 포함하고,
상기 논리 소자는 상기 지정 논리 소자의 근방에 배치된다.
본 발명의 예시적 이점은, LSI 내부의 잡음을 제어하기에 효과적인 공간이 선택되어 공간이 제공되며 온 칩 캐패시터가 그 공간 내에 배치되기 때문에, LSI 내에서 생성된 노이즈가 제어될 수 있다는 것이다.
본 발명의 특성으로 믿어지는 신규한 특징은 첨부된 청구항 내에 표현되어 있다. 그러나 본 발명 자체뿐만 아니라 본 발명의 다른 특징 및 이점은,후속하는 상세한 설명과 첨부된 도면을 참조하면 가장 잘 이해될 것이다.
이하, 본 발명을 실시하기 위한 최량의 형태에 대하여 도면을 참조하여 상세히 설명한다. 본 발명의 제1 형태의 소자 배치 시스템(이후 제1 소자 배치 시스템이라고도 함)은, 컴퓨터로 실현되며, 컴퓨터는 프로그램을 실행하는 CPU, 데이터나 프로그램을 기억하는 기억 수단, 데이터의 입력이나 출력을 행하는 입출력 수단을 포함한다.
도 1을 참조하면, 제1 소자 배치 시스템(100)은, 배치부(101)와, 제1 배치 개량부(102)와, 제1 라우팅부(103)와, 배치 추가부(104)와, 제2 배치 개량부(102)와, 제2 라우팅부(103)와, 캐패시터 발생부(105)를 포함하고, 이들은 각각 프로그램에 의해 실현된다. 또한, 제1 소자 배치 시스템(100)은, 필요에 따라 입력 데이터(201)를 일시적 또는 영구적으로 유지하는 입력 데이터 기억부(201)와, 배치 및 라우팅의 실행 동안 참조되는 정보를 일시적 또는 영구적으로 유지하는 배치 라우팅용 라이브러리(202)를 포함한다. 제1 소자 배치 시스템(100)은 필요에 따라 배피를 개량하기 위한 정보를 일시적 또는 영구적으로 유지하는 배치 개량용 라이브러리(203)와, 출력 데이터(204)를 일시적 또는 영구적으로 유지하는 출력 데이터 기억부(204)를 포함한다. 이들 기억부(201, 202) 및 라이브러리(202, 203)는 메모리, 디스크 드라이브와 같은 외부 저장부 및 다른 정보 저장 장치일 수 있다.
입력 데이터(201a)(네트 리스트(201a)라고도 함)는 일반적으로 네트 리스트로 불리는 기능 블록간의 접속을 나타낸 데이터로 이루어지며, 처리에 앞서서 컴퓨터의 기억 수단에 판독되어 보존된다. 출력 데이터(204a)는 배치 라우팅 결과로, 일반적으로는 마스크 데이터로 불리는 것과 등가이며, 처리 후에 컴퓨터 외부로 출력되지만, 처리 중에는 컴퓨터의 기억 수단에 일시적으로 보존된다.
배치 라우팅용 라이브러리(202)는, 배치 라우팅 프로그램이 일반적으로 필요로 하는 라이브러리로서, 배치부(101)가 배치를 실행하거나 라우팅부(103)가 라우팅을 실행하거나 할 때에 참조하는 정보를 등록한 것이다. 등록된 정보는, 예를 들면, 각 기능 블록의 크기나 핀 위치 등의 기능 블록에 관한 정보나, LSI 상의 전원이나 접지의 배치나 기능 블록을 실장 가능한 위치 등의 LSI에 관한 정보나, 라우팅을 실행 가능한 영역의 정보이다. 각 기능 블록의 크기나 기능 블록을 실장 가능한 위치에 관한 정보는 배치 정보로서 이용되며, 각 기능 블록의 핀 위치나 라우팅을 실행 가능한 영역의 정보는 라우팅 정보로서 이용된다.
배치 개량용 라이브러리(203)는, 본 발명에서 특징으로 하는 라이브러리로서, 노이즈를 받기 쉽게 근방에 온 칩 캐패시터를 배치하는 것이 바람직한 기능 블록이나, 노이즈를 발생하기 쉽게 근방에 온 칩 캐패시터를 배치하는 것이 바람직한 기능 블록이나, 배치 개량하기 위한 모드의 지정이나 우선순을 등록한 라이브러리이다.
도 2는 배치 개량용 라이브러리(203)의 등록 내용의 일례를 도시한 도면이다. 배치 개량용 라이브러리(203)는, 대상 기능 블록이 간극을 사이에 두고 있는 경우의 간극의 할당 방식, 간극에 대한 제한의 우선 순위, 대상으로 되는 기능 블록 종류 및 그 기능 블록에 대한 지정을 포함하고 있다.
기능 블록에 대한 지정은, 그 기능 블록의 상대적인 중요도를 나타내기 위한 상대적 가중치, 좌우 어느 하나에 최저한 필요한 간극의 사이즈, 간극이 좌우에 필요한지 그렇지 않으면 한쪽이면 되는지, 그 기능 블록이 노이즈를 발생하는 것인지 그렇지 않으면 노이즈에 약한 것인지를 포함하고 있다.
간극 할당 모드는, 상대적 가중치에 기초하여 간극을 분할하는 것인지, 그렇지 않으면 균등하게 분할하는 것인지를 나타내고 있다. 도 2에서는 상대 가중치가 우선된다. 우선 모드에서는 어떤 순으로 간극의 할당을 결정하는지를 나타내고 있다. 도 2에서는, 상대적 가중치가 최우선이고, 좌우의 최저한의 간극은 가장 낮은 우선도이며, 우선도가 낮은 항목일 수록 만족할 수 없어도 된다고 하는 지정으로 되어 있다.
도 2에서는, 기능 블록으로서 "InverterX10"과 "FlipFlopX1"이 등록되어 있는 모습을 도시하고있다. 예를 들면 "Inverterx10"은, 노이즈를 발생하기 쉬운 기능 블록 "Aggressor"이고, 최저한 필요한 간극이 결정된 단위로 "10" 필요하며, 또한 좌우에 간극이 필요한 것을 나타내고 있다. "FlipFlopX1"은, 노이즈에 약한 기능 블록이고, 최저한 필요한 간극이 "20"으로 편측만으로 되는 것을 나타내고 있다.
배치부(101)는, 네트 리스트(201)에 기술된 기능 블록간의 결합 정보에 기초하여, 기능 블록간의 지연이나 라우팅의 혼잡도 등을 배려하여 기능 블록을 배치한다.
배치 개량부(102)는, 배치부(101)에 의해 배치된 기능 블록의 간극의 영역을, 배치 개량용 라이브러리(203)의 정보에 기초하여, 간극이 필요한 기능 블록의 근방에 모으기 위해, 기능 블록의 배치를 이동한다.
라우팅부(103)는, 네트 리스트(201)에 기술된 기능 블록간의 결합 정보에 기초하여, 기능 블록간을 라우팅한다.
배치 추가부(104)는, 라우팅 결과에 의해 라우팅이 너무 길어 지연이 삽입되지 않거나 전파 파형이 너무 둔화되었다고 판정되는 경우 등에, 라우팅 길이를 짧게 하기 위해 새로운 기능 블록의 추가를 행한다. 이 기능은 본 발명에서는 주된 기능이 아니기 때문에 자세한 설명은 생략한다.
캐패시터 발생부(105)는, 기능 블록을 이동한 후의 간극에 온 칩 캐패시터(캐패시터라고도 함)를 배치하고, 결과를 출력 데이터(204)로서 출력한다.
다음으로, 본 발명의 제1 형태의 동작에 대하여 도면을 참조하여 설명한다. 도 3은 기능 블록을 이동하여 간극을 작성하는 모습을 설명하기 위한 배치도이다. 도 4는 제1 형태의 동작을 도시한 플로우차트이다. 도 3, 도 4를 참조하여 동작을 설명한다.
우선, 네트 리스트(입력 데이터)(201a)가 입력되면, 배치부(101)는, 네트 리스트(201)에 기술된 기능 블록간의 결합 정보에 기초하여, 기능 블록간의 지연이나 라우팅의 혼잡도 등을 배려하여 기능 블록을 배치하는 배치 처리를 행한다(S601).
이 결과의 배치예를 설명하기 쉬운 형태로 도시한 도면이 도 3a이다. 도 3a를 참조하면, 5개의 기능 블록(301∼305)이 배치되어, 노이즈를 발생하기 쉬운 기능 블록(302)과 노이즈에 약한 기능 블록(305)이 포함되어 있다. 이후의 설명에서는, 기능 블록(302)은 편측에 간극을 필요로 하고, 기능 블록(305)은 양측에 간극을 필요로 하는 것으로 한다.
또한, 세로 방향의 전원(VDD)과 접지(GND)는 VIA에 의해 가로 방향의 VDD와 GND와 접속하고 있다. 도 3에서 세로 방향의 VDD·GND와 가로 방향의 VDD와 가로 방향의 GND에 둘러싸인 영역인 행 영역(플로우차트에서는 행(ROW)로 표시함)에는 기능 블록이 배치되지 않은 간극(311∼315)이 산재되어 있다.
계속해서, 배치 개량부(102)는, 배치 개량용 라이브러리(203)를 참조하여, 배치된 기능 블록이 노이즈에 약하거나 또는 노이즈를 발생하기 쉬운 기능 블록으로서 등록되어 있는 경우, 배치 개량용 라이브러리(203)에 따라 그 기능 블록의 양측 혹은 일측에 간극을 발생하는 간극 생성 처리를 실행한다(S602).
도 3과 도 4를 참조하여 제1 형태의 간극 생성 처리에 대하여 상세히 설명한다. 배치 개량부(102)는, 우선 배치 개량용 라이브러리(203)에서 지정된 노이즈를 발생하기 쉬운 기능 블록이나 노이즈에 약한 기능 블록이 배치되어 있는 장소를 찾는다(S701).
다음으로, 배치 개량부(102)는, 찾아낸 지정 기능 블록이 배치되어 있는 행 영역의 근방에, 기능 블록이 배치되어 있지 않은 간극이 있는지 체크한다(S702). 다음으로 간극이 있었던 경우, 배치 개량부(102)는, 지정 기능 블록의 옆으로 간극을 이동하기 위해, 또는 간극을 이동하여 간극을 결합하기 위해, 지정 기능 블록 이외의 기능 블록을 이동한다(S703).
일례를 도 3에 도시한다. 도 3a는 찾아낸 지정 기능 블록이 배치되어 있는 행 영역의 모습을 도시하고 있다. 도 3에서는 동일한 행 영역 내에서 간극을 이동하고 있지만, 배치 개량용 라이브러리(203)에 간극의 검색·이동 범위를 지정하여, 예를 들면, 인접하는 행 영역도 포함한 영역 내에서 이동하도록 해도 된다(이후에 제2 형태로서 나타냄).
도 3a의 경우, 단계 S701에 의해, 노이즈를 발생하기 쉬운 기능 블록(302)과, 노이즈에 약한 기능 블록(304)이 발견된다. 배치 개량부(102)는, 도 3의 (A)의 행 영역을 조사하여, 기능 블록(302)의 근방에 간극(311), 간극(312), 간극(313)을 발견한다. 마찬가지로 하여, 배치 개량부(102)는, 기능 블록(305)의 근방에 간극(313), 간극(314), 간극(315)을 발견한다.
도 3a와 같이 행 영역에, 참조 부호 302와 305와 같이 복수의 지정된 기능 블록이 포함되는 경우의 간극의 생성 방법으로서는, 지정 기능 블록간의 간극을 균등하게 분할하여 할당하는 방법, 기능 블록마다 배치 개량용 라이브러리(203)에 가중치를 부여해 놓고, 그것에 따라 간극을 할당하는 방법 등이 있다. 간극의 할당 방법은 배치 개량용 라이브러리(203)에 의해 지정한다.
배치 개량부(102)는, 간극을 지정 기능 블록의 옆으로 이동하기 위해, 지정되어 있지 않은 기능 블록을 이동한다. 도 3b는, 도 3a의 배치로부터 기능 블록 (301)을 좌측으로, 기능 블록(303)을 우측으로, 기능 블록(304)을 좌측으로 각각 이동한 후의 배치를 나타내고 있다. 이 결과, 간극(311)이 간극(312)과 병합(merge)되어 간극(321)으로 확대되어, 간극(313)이 간극(322)이 간극(323)의 일부로 된다. 이 이동에 의해, 지정된 기능 블록(302, 305)에 인접하는 간극을 확대하고 있다.
다음으로, 배치 개량부(102)는, 행 영역에서 지정 기능 블록도 포함하여 이동함으로써 간극의 병합을 행할 수 있는지를 판단하고(S704), 가능하면 기능 블록을 이동하여 간극의 병합를 행한다(S705). 구체적으로 설명하면, 배치 개량부(102)는 배치 개량용 라이브러리(203)를 참조하여, 지정 기능 블록의 양측에 간극이 필요한지, 그렇지 않으면 편측에만 필요한지 등의 정보에 기초하여 생성된 간극이 지정 기능 블록의 이동에 의해 병합 가능한지의 여부를 조사·판정한다(S704).
도 3의 경우, 기능 블록(302)은 편측에 간극이 필요하고, 기능 블록(305)은 양측에 간극이 필요하며, 간극(323)과 간극(315) 모두 충분히 필요한 사이즈의 간극으로 되어 있는 것으로 한다. 이 경우, 기능 블록(302)을 이동함으로써 간극(321)과 간극(322)이 병합 가능하며, 병합되어 큰 간극(331)이 생성된다(S705). 도 3c에 병합 후의 배치를 도시하고 있다.
또한 기능 블록(305)의 양측의 간극(323)과 간극(315)은, 폭이 조정되어 동일한 폭의 간극(332)과 간극(333)으로 된다. 기능 블록(305)이 양측에 간극이 필요한 지정이고, 또한 균등화 후의 간극이 각각 필요량에 미치지 않는 경우에는 간극의 균등화 처리는 행하지 않는다.
제1 간극 생성 처리에서는 이와 같이 간극의 병합을 행하고 있지만, 본 발명을 실시하는 데에 있어서 병합은 필수가 아니며, 실행하지 않아도 본 발명을 실시 가능하다.
간극 생성 처리가 종료되어 간극을 포함한 배치가 종료되면, 라우팅부(103)는, 배치된 각 기능 블록간을 네트 리스트(201)와 배치 라우팅용 라이브러리(202)에 따라, 라우팅한다(S603).
다음으로, 배치 추가부(104)는, 라우팅 결과를 사전에 결정된 제한값과 비교하여, 예를 들면, 신호의 전파 지연이 제한값보다 큰 경우나, 전파하는 파형의 둔화가 제한보다 큰 경우나, 인접하는 라우팅간의 크로스토크량이 큰 경우에, 라우팅의 도중에 버퍼 필요의 기능 블록을 삽입하거나, 라우팅을 구동하는 기능 블록을 구동력이 다른 기능 블록으로 변경하는 등의 처리를 행한다(S604). 일반적으로 이러한 방법은 일반적으로 기지의 기술이기 때문에 상세한 설명은 생략한다.
배치 추가부(104)에 의해 단계 S602에서 작성·병합한 간극이 사용되는 경우가 있기 때문에, 여기서 재차 배치 개량부(102)는 간극 생성 처리를 실행한다(S605). 간극 생성 처리는 이미 설명한 단계 S701∼S705의 처리와 동일하다
다음으로, 라우팅부(103)는, 배치 추가부(104)에 의해 추가된 기능 블록이나 단계 S605에서 이동한 기능 블록간 등의 라우팅이 완료되지 않은 개소를 대상으로 하여 단계 S603과 마찬가지로 라우팅을 추가한다(S606).
다음으로, 캐패시터 발생부(105)는, 기능 블록이 놓여져 있지 않은 간극에서 캐패시터가 실장 가능하고 또한 캐패시터를 필요로 하는 간극에 캐패시터를 추가한 다(S607). 다음으로, 남은 간극에 대하여 필 셀(fill cell)로 부르는 간극을 매립하기 위한 기능 블록을 배치한다(S608). 캐패시터 발생부(105)는, 필 셀을 배치한 후의 결과 데이터를 출력 데이터(204)로서 기억 수단에 일시적으로 유지하고, 요구에 따라 출력 데이터(204)를 출력한다.
여기서 필 셀이란, 일반적으로 스탠더드 셀 등을 사용한 LSI 설계에서 기능블록간의 간극을 매립하기 위한 구조물을 LSI 기판 상에 만들기 위해 준비된 편의상의 기능 블록으로, 온 칩 캐패시터의 소자를 포함한 캐패시터도 필 셀의 일종이라고도 할 수 있다.
필 셀은, 일반적으로 사이즈가 다른 복수의 기능 블록을 준비하여, 큰 순서대로 간극에 들어갔는지의 여부를 체크하고, 간극에 들어가는 경우에는 그 필 셀을 생성하고, 들어가지 않는 경우에는 작은 사이즈의 것이 들어가는지의 여부를 시험하는 처리를 실행한다. 본 발명에서는 캐패시터도 사이즈가 서로 다른 복수의 기능 블록을 준비한다. 또한, 캐패시터의 사이즈는 필 셀의 사이즈보다 큰 것으로 한다.
캐패시터 발생부(105)는, 간극에 대하여 캐패시터가 큰 것부터 순서대로 실장 가능한지를 조사하고, 실장 가능하며 가장 큰 캐패시터를 간극에 추가한다. 도 3d의 캐패시터(342)가 그 예이다. 캐패시터의 실장이 가능하지 않은 경우 캐패시터 발생부(105)는, 필 셀이 큰 것부터 순서대로 실장 가능한지를 조사하고, 실장 가능하며 가장 큰 캐패시터를 간극에 추가한다.
도 3d는 도 3c의 영역 크기와 같도록 조정된 간극(332, 333) 내에 캐패시터 (343, 344)가 배치된 것을 나타낸다.
본 발명에서는, 이와 같이 캐패시터와 필 셀을 배치하지만, 캐패시터가 불필요한 간극이나 캐패시터를 배치하는 데 적합하지 않은 조건 등이 있으면 캐패시터 대신에 필 셀을 배치하도록 해도 되며, 캐패시터와 필 셀의 배치 관계는 특별히 한정되지 않는다.
또한, 이상의 설명에서는 단계 S603 후에 단계 S604∼S606을 실행하여 배치 추가 처리를 포함하고 있지만, 배치 추가 처리가 불필요하면, 단계 S603 후에 단계 S604∼S606을 스킵하여 단계 S607의 캐패시터 배치 처리에 계속되도록 해도 된다.
이와 같이, 제1 형태에서는, 노이즈를 발생하기 쉬운 기능 블록이나 노이즈에 약한 기능 블록의 근방에 캐패시터를 실장 가능한 모아진 간극을 확보할 가능성을 높일 수 있기 때문에, 노이즈를 발생하기 쉬운 기능 블록이나 노이즈에 약한 기능 블록의 옆에 보다 큰 온 칩 캐패시터를 배치할 수 있게 되어, LSI 내부의 노이즈의 발생이나 영향을 대폭 저감할 수 있다.
다음으로, 본 발명의 제2 형태에 대하여 설명한다. 제2 형태는 제1 형태와 비교하여 간극 생성 처리가 상이하지만, 그 밖에는 제1 형태와 동일하기 때문에, 간극 생성 처리에 대하여 설명한다. 제2 형태의 간극 생성 처리는, 기능 블록의 이동 범위를 상하의 행 영역으로 확대하고 있는 점에 특징이 있다.
제2 형태의 구성은 제1 형태의 구성과 동일하지만, 배치 개량부(102)가 실행하는 기능 블록의 이동 범위가 다르다. 배치 개량부(102)의 기능의 차분에 대해서는 이후의 동작의 설명에 의해 설명을 행한다.
다음으로 도 5와 도 6을 참조하여 제2 형태의 간극 생성 처리의 동작을 설명한다. 도 5는 제2 형태의 간극 생성 처리를 설명하기 위한 배치도이고, 도 6은 제2 형태의 간극 생성 처리의 동작을 도시한 플로우차트이다. 또한, 간극 생성 처리 이외의 제2 형태의 처리 수순은 제1 형태와 동일하기(도 4의 단계 S601∼S607) 때문에 설명은 생략한다.
배치 개량부(102)는, 단계 S701∼S703과 마찬가지로 하여 단계 S711∼S713을 실행하고, 지정 기능 블록 이외의 기능 블록을 이동하여, 모아진 간극을 생성한다. 도 5a는 기능 블록 이동 전의 배치를 나타내고 있으며, 인접하는 상하의 행 영역이 이동 대상 범위로 되어 있지만 여기서는 간극을 많이 포함한 하단의 행 영역만을 나타내고 있다.
도 5에서는, 기능 블록(402)은 노이즈를 발생하기 쉬운 기능 블록으로서 지정되어 있고, 기능 블록(405)은 노이즈에 약한 기능 블록으로서 지정되어 있다. 또한, 도 5의 상단의 행 영역의 배치는 도 3의 행 영역의 배치와 동일하다. 따라서, 단계 S713까지의 처리에 의해, 단계 S711 상단의 행 영역의 배치는 도 3b와 같이 변경된다.
다음으로, 제2 형태에서는, 배치 개량부(102)는, 인접하는 행 영역에 기능 블록을 이동할 수 있는 간극이 있는지를 조사·판정한다(S714). 도 5에서는, 하단의 행 영역에 간극이 있기 때문에, 배치 개량부(102)는, 기능 블록(401)과 기능 블록(403)과 기능 블록(404)이 이동 가능으로 판정한다. 다음으로, 배치 개량부(102)는, 이동 가능한 기능 블록을 다른 행 영역으로 이동한다(S715). 도 5의 예 에서 배치 개량부(102)는, 기능 블록(401)을 기능 블록(406)의 좌측으로, 기능 블록(403)을 기능 블록(407)과 기능 블록(408)의 사이에, 기능 블록(404)을 기능 블록(408)의 우측으로 각각 이동한다. 이동 후의 배치는 도 5의 (B)와 같이 된다.
또한, 배치 개량부(102)는, 단계 S704와 마찬가지로 지정 기능 블록의 이동에 의해 간극의 병합이 가능한지 판정하고(S716), 가능하면 단계 S705와 마찬가지로 지정 기능 블록의 이동에 의해 간극의 병합을 실행한다(S717). 이 결과는 도시하지 않지만, 도 5b에서 기능 블록(405)이 양측에 간극을 필요로 하여 간극(415)의 크기가 충분하지 않은 경우에는 기능 블록(405)을 좌측으로 이동하여 간극(415)의 크기를 확보하거나, 간극(421)이나 간극(422)의 크기를 준비된 캐패시터의 크기에 적합시키도록 기능 블록(402)을 이동하거나 한다.
이와 같이, 제2 형태에서는, 지정 기능 블록이 배치된 행 영역뿐만 아니라, 인접하는 행 영역까지 기능 블록의 이동 범위를 넓힘으로써, 보다 효과적으로 캐패시터를 배치하기 위한 간극을 확보하는 것이 가능하게 되기 때문에, LSI 내의 노이즈의 발생이나 영향을 대폭 저감할 수 있다.
이상의 설명에서는, 지정 기능 블록이 배치된 행 영역 내에서 기능 블록을 이동하여 간극을 확보하는 방법과, 지정 기능 블록이 배치된 행 영역에 인접하는 상하의 행 영역까지 범위를 넓혀 기능 블록을 이동하여 간극을 확보하는 방법을 설명하였지만, 또한 좌우의 행 영역이나 더 많은 상하의 행 영역까지를 기능 블록의 이동 범위로서 조정하도록 해도 된다.
또한, LSI의 배치 외에도, 프린트판에 IC나 LSI나 전기 소자를 실장 배치할 때에도, 노이즈를 발생하거나 노이즈에 약한 IC나 LSI나 전기 소자가 포함되어 있으면, 본 발명을 적용하여 노이즈를 발생하거나 노이즈에 약한 IC나 LSI나 전자 소자의 주변에 캐패시터(컨덴서)를 실장하기 위한 영역을 자동적으로 확보하여, 프린트판 내의 노이즈의 발생이나 영향을 저감하는 것이 가능하게 된다.
본 발명의 예시적 실시예를 참조하여 기술되었으나, 이는 본 발명을 제한하고자 의도된 것은 아니다. 본 발명의 기술을 참조하면 당업자가 예시적 실시예 뿐만 아니라 다른 실시예에 대한 다양한 변형을 할 수 있음은 명백하다. 그러므로, 첨부된 청구항은 그러한 변형 또는 실시예를 본 발명의 범주 내에 포함하는 것으로 보아야 한다.
본 발명은 LSI 내부의 노이즈를 억제하는 데 효과적인 장소를 선택하여 간극을 준비하여 온 칩 캐패시터를 배치하도록 하였기 때문에, LSI의 발생 노이즈를 억제할 수 있다고 하는 효과가 있다.

Claims (23)

  1. 배치될 논리 소자에 관한 소자 정보와 논리 소자가 배치가능한 영역의 영역 정보를 포함하는 배치 정보와, 라우팅을 실행하기 위해 필요한 라우팅 정보를 기억하는 배치 라우팅용 라이브러리와,
    근방에 캐패시터를 배치하도록 지정된 논리 소자인 지정 논리 소자에 관한 지정 소자 정보를 기억하는 배치 개량용 라이브러리와,
    논리 소자간의 접속 데이터를 포함하는 입력 데이터와 상기 배치 라우팅용 라이브러리에 기억된 상기 배치 정보에 따라 논리 소자의 배치를 실행하는 배치부와,
    상기 배치부에 의한 배치 결과를, 배치 개량용 라이브러리에 기억된 지정 논리 소자의 근방에 간극을 모으도록 지정 논리 소자 이외의 논리 소자를 이동하여 개량하는 배치 개량부와,
    상기 배치 개량부에 의한 배치 개량 후의 논리 소자에 대하여 상기 입력 데이터에 기초하여 라우팅을 실행하는 라우팅부와,
    상기 모아진 간극에 캐패시터를 배치하는 캐패시터 발생부를 포함하는 소자 배치 시스템.
  2. 제1항에 있어서,
    상기 배치 개량부는, 상기 지정 논리 소자 이외의 논리 소자의 이동 후에, 간극을 더 모으기 위해 상기 지정 논리 소자를 이동하는 소자 배치 시스템.
  3. 제1항에 있어서,
    상기 배치 개량용 라이브러리에 기억되는 지정 소자 정보는, 상기 지정 논리 소자의 명칭과, 상기 지정 논리 소자의 근방에 배치해야 할 캐패시터의 크기와, 배치해야 할 캐패시터를 지정 논리 소자의 한쪽측에만 배치할 것인가 혹은 양방측에 배치할 것인가를 지정하는 배치측 정보를 포함하고, 상기 배치 개량부는 상기 배치측 정보에 따라 지정 논리 소자의 한쪽 또는 양방측에 간극을 모으는 소자 배치 시스템.
  4. 제1항에 있어서,
    상기 라우팅부에 의한 라우팅 결과가 사전에 결정된 조건을 만족시키지 않는 라우팅에 대하여 중계용의 버퍼인 논리 소자를 삽입하는 처리를 포함하는 논리 소자의 추가 또는 변경을 실행하는 배치 추가부를 더 포함하고,
    상기 배치 추가부에 의한 논리 소자의 추가 또는 변경 후에, 상기 배치 개량부는 추가 또는 변경된 논리 소자에 대하여 이동을 실행하며, 상기 라우팅부는 논리 소자의 추가 또는 변경에 의해 재배치가 필요로 된 부분의 라우팅을 행하는 소자 배치 시스템.
  5. 제2항에 있어서,
    상기 캐패시터는 크기가 서로 다른 복수의 캐패시터를 포함하며, 상기 캐패시터 발생부는 캐패시터를 배치하는 간극의 크기에 대하여 실장 가능한 최대의 캐패시터를 선택하여 배치하는 소자 배치 시스템.
  6. 제2항에 있어서,
    상기 논리 소자는 반도체 집적 회로에 실장하는 기본적인 동작을 행하는 작은 회로인 기능 블록인 소자 배치 시스템.
  7. 제1항에 있어서,
    상기 배치 개량부는, 상기 배치부에 의한 배치의 결과에 대하여 배치 개량용 라이브러리에 기억된 상기 지정 논리 소자의 근방에 간극을 모으도록, 상기 배치 개량용 라이브러리 내에 기억된 상기 지정 논리 소자 외의 논리 소자를 상기 특정 논리 소자가 배치된 행 영역의 간극뿐만 아니라 다른 행 영역의 공간으로 이동하는 소자 배치 시스템.
  8. a) 실장될 논리 소자의 배치 단계 후에,
    b) 논리 소자 중에서 근방에 캐패시터를 사전에 배치하도록 지정된 각 지정 논리 소자에 대하여, 상기 지정 논리 소자 이외의 논리 소자를 이동하여 상기 지정 논리 소자의 근방에 간극을 모으는 단계 - 상기 논리 소자는 상기 지정 논리 소자의 근방에 배치됨 - 와,
    c) 상기 모아진 간극에 캐패시터를 배치하는 단계
    를 포함하는 소자 배치 방법.
  9. 제8항에 있어서,
    b1) 논리 소자 중에서 근방에 캐패시터를 사전에 배치하도록 지정된 각 지정 논리 소자에 대하여, 상기 지정 논리 소자 이외의 논리 소자를 상기 지정 논리 소자가 배치된 행 영역의 공간뿐만 아니라 다른 행 영역의 간극으로 이동하여 상기 지정 논리 소자의 근방에 간극을 모으는 단계
    를 더 포함하고,
    상기 논리 소자는 상기 지정 논리 소자의 근방에 배치되는 소자 배치 방법.
  10. 제8항에 있어서,
    b2) 상기 지정 논리 소자 이외의 논리 소자를 이동한 후에, 간극을 더 모으기 위해 상기 지정 논리 소자를 이동하는 단계
    를 더 포함하는 소자 배치 방법.
  11. a) 논리 소자간의 접속 데이터를 포함하는 입력 데이터와, 배치될 논리 소자에 관한 정보 및 논리 소자가 배치가능한 영역의 정보를 포함하는 배치 정보에 따라 논리 소자를 배치하는 단계 - 상기 논리 소자에 관한 정보와 상기 배치 정보는 배치 라우팅용 라이브러리에 기억됨 - 와,
    b) 상기 배치 실행의 결과에 대하여, 근방에 캐패시터를 배치하기 위해 지정된 지정 논리 소자에 관한 지정 소자 정보를 저장한 배치 개량용 라이브러리를 참조하고, 상기 지정 논리 소자가 배치된 영역의 근방에 간극을 모으도록 상기 지정 논리 소자 이외의 논리 소자를 이동하는 단계와,
    c) 상기 이동된 논리 소자에 대하여, 상기 입력 데이터와, 상기 배치 라우팅 라이브러리에 기록된 라우팅을 실행하는데 필요한 라우팅 정보에 기초하여 라우팅을 실행하는 단계와,
    d) 상기 모아진 간극 내에 캐패시터를 배치하는 단계
    를 포함하는 소자 배치 방법.
  12. 제11항에 있어서,
    e) 상기 지정 논리 소자 이외의 논리 소자를 이동하는 상기 단계에 있어서, 상기 지정 논리 소자 이외의 논리 소자를 이동한 다음에, 간극을 더 모으기 위해 상기 지정 논리 소자를 이동하는 단계
    를 더 포함하는 소자 배치 방법.
  13. 제11항에 있어서,
    상기 배치 개량용 라이브러리에 기억되는 지정 소자 정보는, 상기 지정 논리 소자의 명칭과, 상기 지정 논리 소자의 근방에 배치해야 할 캐패시터의 크기와, 배치해야할 캐패시터를 지정 논리 소자의 한쪽측에만 배치할지 혹은 양방측에 배치할 지를 지정하는 배치측 정보를 포함하고,
    상기 논리 소자의 이동 단계 후에, 상기 배치측 정보에 따라 지정 논리 소자의 한쪽 또는 양방측에 간극을 모으도록 지정 논리 소자 혹은 그 이외의 논리 소자를 이동하는 소자 배치 방법.
  14. 제11항에 있어서,
    f) 상기 라우팅한 결과가 사전에 결정된 조건을 만족시키지 않는 라우팅에 대하여 중계용의 버퍼인 논리 소자를 삽입하는 처리를 포함하는 논리 소자의 추가 또는 변경을 실행하는 단계와,
    g) 지정 논리 소자가 배치된 영역 근방에 간극을 모으도록 상기 추가 또는 변경된 논리 소자를 이동하는 단계와,
    h) 상기 라우팅 결과에 대하여, 논리 소자의 추가 또는 변경에 의해 재배치를 필요로 하게된 부분을 라우팅하는 단계
    를 더 포함하는 소자 배치 방법.
  15. 제12항에 있어서,
    상기 캐패시터는 크기가 서로 다른 복수의 캐패시터를 포함하고, 상기 모아진 간극에 캐패시터를 배치하는 상기 d) 단계에서, 캐패시터를 배치하는 간극의 크기에 대하여 실장 가능한 최대의 캐패시터를 선택하여 배치하는 소자 배치 방법.
  16. 제12항에 있어서,
    상기 논리 소자는 반도체 집적 회로에 실장하는, 기본적인 동작을 행하는 작은 회로인 기능 블록인 소자 배치 방법.
  17. 제8항에 있어서,
    b1) 논리 소자 중에서 근방에 캐패시터를 사전에 배치하도록 지정된 각 지정 논리 소자에 대하여, 상기 지정 논리 소자 이외의 논리 소자를 상기 지정 논리 소자가 배치된 행 영역의 공간뿐만 아니라 다른 행 영역의 간극으로 이동하여 지정 논리 소자의 근방에 간극을 모으는 단계
    를 더 포함하고,
    상기 논리 소자는 상기 지정 논리 소자의 근방에 배치되는 소자 배치 방법.
  18. 전기 신호로 구현된 프로그램으로서, 청구항 제8항의 각 단계를 컴퓨터에 실행시키는 프로그램.
  19. 전기 신호로 구현된 프로그램으로서, 청구항 제10항의 각 단계를 컴퓨터에 실행시키는 프로그램.
  20. 전기 신호로 구현된 프로그램으로서, 청구항 제11항의 각 단계를 컴퓨터에 실행시키는 프로그램.
  21. 전기 신호로 구현된 프로그램으로서, 청구항 제12항의 각 단계를 컴퓨터에 실행시키는 프로그램.
  22. 전기 신호로 구현된 프로그램으로서, 청구항 제13항의 각 단계를 컴퓨터에 실행시키는 프로그램.
  23. 전기 신호로 구현된 프로그램으로서, 청구항 제17항의 각 단계를 컴퓨터에 실행시키는 프로그램.
KR1020050062684A 2004-07-13 2005-07-12 반도체 집적 회로의 소자 배치 시스템, 소자 배치 방법, 및소자 배치 프로그램 KR20060050072A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004206324A JP4186890B2 (ja) 2004-07-13 2004-07-13 半導体集積回路の素子配置システム、素子配置方法、及びプログラム
JPJP-P-2004-00206324 2004-07-13

Publications (1)

Publication Number Publication Date
KR20060050072A true KR20060050072A (ko) 2006-05-19

Family

ID=35169958

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050062684A KR20060050072A (ko) 2004-07-13 2005-07-12 반도체 집적 회로의 소자 배치 시스템, 소자 배치 방법, 및소자 배치 프로그램

Country Status (4)

Country Link
US (3) US7363597B2 (ko)
EP (1) EP1617346A3 (ko)
JP (1) JP4186890B2 (ko)
KR (1) KR20060050072A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4186890B2 (ja) * 2004-07-13 2008-11-26 日本電気株式会社 半導体集積回路の素子配置システム、素子配置方法、及びプログラム
US9070791B2 (en) * 2006-11-15 2015-06-30 International Business Machines Corporation Tunable capacitor

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044209A (en) * 1997-09-15 2000-03-28 International Business Machines Corporation Method and system for segmenting wires prior to buffer insertion
JP3178399B2 (ja) 1997-12-04 2001-06-18 日本電気株式会社 半導体集積回路、その素子配置方法およびその製造方法
US6480992B1 (en) * 1999-11-08 2002-11-12 International Business Machines Corporation Method, apparatus, and program product for laying out capacitors in an integrated circuit
JP3348709B2 (ja) * 1999-11-24 2002-11-20 日本電気株式会社 プリント回路基板設計支援装置及び制御プログラム記録媒体
JP2001167139A (ja) * 1999-12-06 2001-06-22 Nec Corp 電源デカップリング設計方法及び設計支援システム
US6834380B2 (en) * 2000-08-03 2004-12-21 Qualcomm, Incorporated Automated EMC-driven layout and floor planning of electronic devices and systems
JP2002222230A (ja) * 2000-11-27 2002-08-09 Matsushita Electric Ind Co Ltd 不要輻射最適化方法および不要輻射解析方法
US6996512B2 (en) * 2001-04-19 2006-02-07 International Business Machines Corporation Practical methodology for early buffer and wire resource allocation
US7114132B2 (en) * 2001-04-20 2006-09-26 Nec Corporation Device, system, server, client, and method for supporting component layout design on circuit board, and program for implementing the device
US6877144B1 (en) * 2002-02-28 2005-04-05 Dupont Photomasks, Inc. System and method for generating a mask layout file to reduce power supply voltage fluctuations in an integrated circuit
US20030212538A1 (en) * 2002-05-13 2003-11-13 Shen Lin Method for full-chip vectorless dynamic IR and timing impact analysis in IC designs
US6898769B2 (en) * 2002-10-10 2005-05-24 International Business Machines Corporation Decoupling capacitor sizing and placement
JP2005004268A (ja) * 2003-06-09 2005-01-06 Matsushita Electric Ind Co Ltd 半導体集積回路装置の動作解析方法、これに用いられる解析装置およびこれを用いた最適化設計方法
US7031084B2 (en) * 2003-07-23 2006-04-18 Eastman Kodak Company Imaging system using combined dichroic/high-pass filters
US7089520B2 (en) * 2003-11-19 2006-08-08 International Business Machines Corporation Methodology for placement based on circuit function and latchup sensitivity
US7131084B2 (en) * 2003-12-09 2006-10-31 International Business Machines Corporation Method, apparatus and computer program product for implementing automated detection excess aggressor shape capacitance coupling in printed circuit board layouts
JP4186890B2 (ja) * 2004-07-13 2008-11-26 日本電気株式会社 半導体集積回路の素子配置システム、素子配置方法、及びプログラム

Also Published As

Publication number Publication date
US20080189668A1 (en) 2008-08-07
EP1617346A3 (en) 2006-11-08
US20100257500A1 (en) 2010-10-07
US20060013059A1 (en) 2006-01-19
EP1617346A2 (en) 2006-01-18
JP4186890B2 (ja) 2008-11-26
US7363597B2 (en) 2008-04-22
JP2006031174A (ja) 2006-02-02

Similar Documents

Publication Publication Date Title
US9852253B2 (en) Automated layout for integrated circuits with nonstandard cells
EP0894308B1 (en) Method for placement of clock buffers in a clock distribution system
US6557145B2 (en) Method for design optimization using logical and physical information
KR101100049B1 (ko) 집적회로 장치 및 집적회로 장치를 설계하기 위한 방법 및장치
US8977995B1 (en) Timing budgeting of nested partitions for hierarchical integrated circuit designs
US10318686B2 (en) Methods for reducing delay on integrated circuits by identifying candidate placement locations in a leveled graph
US20030005398A1 (en) Timing-driven global placement based on geometry-aware timing budgets
US8572541B2 (en) Method and system for adaptive physical design
KR20180028252A (ko) 집적 회로 설계 시스템 및 집적 회로의 제조 방법
US7168057B2 (en) Targeted optimization of buffer-tree logic
US10339241B1 (en) Methods for incremental circuit design legalization during physical synthesis
KR20060050072A (ko) 반도체 집적 회로의 소자 배치 시스템, 소자 배치 방법, 및소자 배치 프로그램
CN116090401A (zh) 标准单元、集成电路的设计方法、标准单元、集成电路
US20040003363A1 (en) Integrated circuit design and manufacture utilizing layers having a predetermined layout
US10936772B1 (en) Methods for incremental circuit physical synthesis
Xiong et al. Extended global routing with RLC crosstalk constraints
JP4293028B2 (ja) オンチップデカップリングキャパシタ挿入方法
US20220004688A1 (en) Systems And Methods For Circuit Design Dependent Programmable Maximum Junction Temperatures
Sabbavarapu et al. A novel physical synthesis methodology in the VLSI design automation by introducing dynamic library concept
KR102717096B1 (ko) 집적 회로 및 상기 집적 회로의 제조를 위한 컴퓨터 구현 방법
JP2007219859A (ja) 半導体集積回路の設計方法
Sayal EDA design for Microscale Modular Assembled ASIC (M2A2) circuits
Leong Incremental placement for field-programmable gate arrays
Alupoaei et al. Net clustering based constructive and iterative improvement approaches for macro-cell placement
Bazargan FPGA Technology Mapping, Placement, and Routing

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application