KR970008535B1 - 배치요소 배치설계 시스템 - Google Patents

배치요소 배치설계 시스템 Download PDF

Info

Publication number
KR970008535B1
KR970008535B1 KR1019920018978A KR920018978A KR970008535B1 KR 970008535 B1 KR970008535 B1 KR 970008535B1 KR 1019920018978 A KR1019920018978 A KR 1019920018978A KR 920018978 A KR920018978 A KR 920018978A KR 970008535 B1 KR970008535 B1 KR 970008535B1
Authority
KR
South Korea
Prior art keywords
arrangement
area
data
cell
unit
Prior art date
Application number
KR1019920018978A
Other languages
English (en)
Other versions
KR930009077A (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 KR930009077A publication Critical patent/KR930009077A/ko
Application granted granted Critical
Publication of KR970008535B1 publication Critical patent/KR970008535B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Architecture (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

없음.

Description

배치요소 배치설계 시스템
제 1 도는 종래의 배치/루팅 설계 시스템을 나타낸 도면.
제 2 도는 종래의 배치/루팅 설계 시스템의 데이타 구성도.
제 3 도는 종래의 모사 어니일링(annealing) 방법에 의한 배치변경방법을 나타낸 도면.
제 4 도는 본 발명의 개통도.
제 5 도는 본 발명의 배치영역과 가상배치영역의 개념도.
제 6 도는 본 발명의 일실시예의 구성을 나타낸 개통도.
제 7 도는 본 발명의 배치설계 시스템의 일실시예의 개념도.
제 8 도는 본 발명의 일실시예에서 셀면적과 단위면적의 개념도.
제 9 도는 본 발명에서 여분도를 나타낸 설명도.
제 10 도는 본 발명의 일실시예의 데이타 구성을 나타낸 도면.
제 11 도는 제 10 도에 도시된 구성을 갖는 데이타의 내용의 설명도.
제 12 도는 셀영역 생성부에 의해서 셀을 배치하기 위한 앨고리즘을 나타낸 도면.
제 13 도는 여분이 없을 때 배치를 변경키 위한 앨고리즘의 일실시예도.
제 14 도는 여분이 있을 때 배치를 변경하기 위한 앨고리즘의 일실시예도.
제 15A 도는 본 발명에 의한 요소 배치 가능성을 점검하기 위한 앨고리즘도.
제 15B 도는 종래 기술에 의한 요소 배치 가능성을 점검하기 위한 앨고리즘.
제 16 도는 좌표치를 생성키 위한 확률분포의 일예도.
제 17 도는 본 발명의 좌표위치 생성부의 구조를 상세히 나타낸 도면.
제 18 도는 본 발명의 좌표위치 생성부의 앨고리즘도.
제 19 도는 본 발명을 적용한 모사 어니일링법의 어니일링도.
본 발명은 통상, 부품의 배치설계를 위한 시스템에 관한 것이며, 보다 구체적으로는 셀 단자 또는 배선등의 배치요소의 직접회로, 프린트 회로기판 등에서의 배치설계 시스템에 관한 것이다.
직접회로, 프린트 회로기판 등에서 셀, 단자 및 배선등의 배치요소들은, 최소한의 배선비용으로써 가능한한 최고의 정도로 셀들이 집적되도록 배치할 필요가 있다.
배치요소들의 배치는, 현재의 배치의 확률과 신 배치의 확률의 비교에 의해서 결정돼 왔으며, 모사 어니일링 법에 의해 산출된 배선길이 또는 에너지에 의한 루팅(routing) 비용이 상기 확률을 결정한다.
이와 같은 배치설계 시스템은, 배치요소의 수가 증가하면, 시간이 길어지므로, 직접회로 또는 프린터 회로기판이 더욱 고도로 패키지된 것과 같은 더 신속한 시스템이 탐구돼 왔다.
본 명세서에서 사용되는 용어등의 정의는 하기와 같다.
배치요소 : 배치요소는 직접회로, 프린트 회로기판등에서의 배치 대상물이다. 셀, 셀에 접속된 단자 및 배선등의 배치요소들은 직접회로내에 배치된다. 실제로 배치영역의 일부를 차지하는 배치된 셀 및 통공등의 배치요소들이 프린트 회로내에 배치되 있다. 1셀은, 단일 프로세서 또는 논리 케이트부등의 단일 배치부로서 정의된다.
배치영역 : 배치영역은 배치요소를 배치하기 위한 영역이고, 기억부내에 기억된 한 영역내에 배치된 배치요소상의 배치요소, 데이타에 의해 구성된다. 배치영역은, 배치요소들은 배치하기 위한 프린트 회로기판 또는 직접회로기판등의 표시부에 출력된다.
단위영역 : 단위영역은, 이 단위영역을 특정하기 위한 데이타(즉, 단위영역 번호)의 할당을 위하여 배치영역을 분할함으로써 얻어진다. 예를 들어 1셀에 대한 단위영역은 통상 기본셀(이하 BC로서 약기함)이며, 게이트 어레이내의 1셀의 고정단위이고, 1배선에 대한 단위영역은, 통상 그리드 단위이고, 여기서 1 그리드는 VLSI(very large scale integrated circuit : 초대규모 직접회로)의 최소단위로서 정의된다. 1셀은 복수의 단위셀을 포함할 수 있다.
가상배치영역 : 배치요소를 가장 배치하기 위한 가상배치영역은, 배치요소가 배치되는 단위영역은 특정하기 위한 데이타(즉, 단위영역번호)에 대응해서 각 유형의 배치요소에 대해 할당된다.
이것은, 예를 들어, 배치요소, 배치를 위한 단위영역번호, 적정명칭등의 속성들을 기억하기 위한 기억부에 의해 구성된다.
배치요소가 셀, 단자, 배선 또는 공통인 경우, 가상배치영역은, 셀영역, 단자영역, 배선영역 또는 통공영역으로 칭한다.
종래의 배치설계 시스템은, 직접회로의 회로소자의 배치를 설계할 때, 셀이 배치영역의 위치에 관한 데이타를 갖고, 단자와 배선 각각이, 셀의 접속에 관한 단자 데이타와, 배선 데이타를 갖음으로써, 셀과 셀에 접속된 배선의 배치를 얻도록 돼 있다.
제 1도는 종래의 배치설계 시스템이다.
제 1 도에서 각 참조번호가 나타내는 바는 하기와 같다 :
1 : 각종의 배치요소에 관한 배치요소 데이타(즉, 셀 데이타, 단자 데이타 또는 배선 데이타)에 대한 포인터(pointer)를 기억하기 위한 포인터 기억부
2 : 각종 배치요소에 관한 배치요소 데이타(즉, 셀 데이타, 단자 데이타 또는 배선 데이타)를 기억하기 위한 배치기억부
3 : 배치영역 기억부
3' : BC 부들의 배치영역으로부터 분할된 단위영역이고, 여기서, 각 BC는 x-y 좌표치로 표시된 좌표치
4 : 직접회로내의 논리게이트등의 배치요소를 나타내는, 셀번호(1)를 갖는 셀에 대한 셀 데이타
5 : 직접회로내의 논리게이트등의 배치요소를 나타내는, 셀번호(2)를 갖는 셀에 관한 셀 데이타
6 : 셀번호(1)을 갖는 셀을 배선번호(1)을 갖는 배선에 접속시키는 단자 번호 A1의 단자에 관한 단자 데이타
7 : 셀번호(1)을 셀을 배선번호(2)의 배선에 접속시키는 단자 번호 A2를 갖는 단자에 관한 단자 데이타
8 : 셀번호(2)의 셀을 배선번호(2)의 배선과 배선번호(3)의 배선에 접속하는 단자번호 A의 단자에 관한 단자 데이타
9 : 셀번호(2)의 셀을 배선번호(3)의 배선에 접속하는 단자번호 A4를 갖는 단자에 관한 단자 데이타
10 : 배선번호(1)의 배선에 관한 배선 데이타
11 : 배선번호(2)를 갖는 배선에 관한 배선 데이타
12 : 배선번호(3)를 갖는 배선에 관한 배선 데이타
통상, 배치 기억부(2)는, 셀 데이타(4)(셀번호 1의 셀), 셀 데이타(5)(셀번호 2의 셀에 관한 것), 단자 데이타(6)(단자번호 A1을 갖는 셀에 관한 것), 단자 데이타(7)(단자 번호 A2를 갖는 단자에 관한), 단자 데이타(8)(단자번호 A3의 단자에 관한 것), 단자 데이타(9)(단자번호 A4를 갖는 단자에 관한 것), 배선 데이타(10)(배선번호 1을 갖는 배선), 배선 데이타(11)(배선번호 2의 배선에 관한 것) 및 배선 데이타(12)(배선번호 3의 배선에 관한 것)을 위한 각각의 데이타 기억영역들을 갖고 있다.
포인터 기억부(1)는, 각 배치요소들의 데이타에 대한 포인터를 포함하고 있다.
상기 배치기억부(2)와 배치영역 기억부(3)의 내용들을 하기에 더욱 구체적으로 설명한다. 상기 배치영역 기억부(3)는, 배치영역으로부터 분할된 각 단위영역의 좌표위치, 단위영역의 특성, 예를 들어, 1 단위영역내의 셀배치에 대한 금제등을 기억하고 있다. 다른 한편, 배치기억부(2)는, 셀과 단자에 관한 구체적 데이타를 기억하고 있다. 예를 들어, 상기 배치기억부(2)는, 셀을 배치하기 위한 단위영역의 좌표위치와 단자와 접속된 셀의 번호를 기억한다.
제 2 도는 종래의 배치설계 시스템의 데이타 구조를 나타낸다.
구체적으로는, 제 2 도는 게이트 어레이의 배치와 루팅의 일례를 나타낸다. 제 2 도에서 각 참조번호들이 나타내는 바는 하기와 같다 :
13 : 게이트 어레이의 처리를 나타내는 데이타
14 : 배치요소에 대한 포인터
15 : 직접회로내의 배치영역의 온도와 치수등의 글로벌(global) 데이타를 기억하는 것
16 (제 1 도의 (1)에 대응함) : 셀 데이타에 대한 포인터, 단자 데이타에 대한 포인터 및 배선 데이타에 대한 포인터등과 같이, 각 배치요소에 관한 데이타에 대한 포인터들을 기억하기 위한 포인터 기억부
17 : 셀들(즉, 제 1 도에서 도시된 셀 4(셀번호 1), 셀 5(셀번호 2)이 배치된 단위영역의 좌표위치들과 같은 셀 데이타를 셀번호순으로 기억하는 셀영역
18 : 단자들(즉, 제 1 도에 도시된 단자 6(단자번호 A1), 단자 7(단자 번호 A2), 단자 8(단자번호 A3), 단자 9(단자번호 A4)이 접속된 셀의 셀번호와 상기 단자들이 배치된 단위영역들의 좌표위치등의 단자 데이타를 단자번호순으로 기억하는 단자영역 ;
19 : 배선들(즉, 배선 10(배선번호 1), 배선 11(배선번호 2) 및 배선 12(배선번호 3)이 접속된 단자들의 단자번호와, 배선들이 배치된 단위영역들의 좌표위치등의 배선데이타를 배선번호순으로 기억하는 배선영역 본 명세서에서 언급하는 직접회로내의 배치영역의 온도와 치수는, 후술하는 배선길이 또는 에너지에 의해서 모사어니일링 방법에 의하여 루팅비용을 산출하는데 사용되는 변수들이다.
제 1 도에서는, 셀 데이타에 대한 포인터가 셀(4)(셀번호 1)을 가리키고, 단자 데이타에 대한 포인터가 단자(6)(단자번호 A1)만을 가리키는 것처럼 보인다. 그러나, 셀 데이타에 대한 포인터는 실제로 셀 데이타를 순차로 기억하기 위한 셀영역(즉, 제 2 도에 도시된 셀영역(17))의 선두를 가리킨다.
즉, 제 1 도에 도시된 배치기억부(2)는 제 2 도에 도시된 셀영역(17), 단자영역(18) 및 배선영역(19)의 결합과 동등하다.
종래, 제 2 도에의 데이타 구성에 의하면 셀 데이타에 대한 포인터는, 각 셀의 데이타 기억영역을 특정하고, 단자 데이타에 대한 포인터는 각 단자에 관한 데이타의 기억영역을 특정한다. 상기 포인터들에 의해 특정된 기억영역들의 데이타에 의하여 셀들을 특정 좌표위치에 배치하고 셀을 단자에 접속하고, 단자를 특정셀에 접속함으로써 배치가 설계돼 있다.
종래의 배치설계 시스템을 제 1 도에 도시된 각 단위영역들의 좌표위치를 사용하여 하기에 설명한다.
첫째, 상기 포인터 기억부(1)가 셀 데이타에 대한 포인터 또는 단자 데이타에 대한 포인터를 특정한다.
둘째, 셀 데이타에 대한 포인터에 의하면, 포인터 기억부(1)가 셀번호(1,2)등을 순차로 특정하고, 셀(4)와 (5)가 배치된 배치영역의 단위영역들에서 셀(4)(셀번호 1)의 좌표위치(즉, (1,3))와 셀(5)(셀번호 2)의 좌표위치(1,4) 등의 셀 데이타를 셀영역(17)내로 기입한다.
셋째, 단자 데이타에 대한 포인터에 의하여 상기 포인터 기억부(1)가 셀번호 A1, A2, A3, A4 등을 순차로 특정하고, 단자들(6~9)이 접속된 셀들의 셀번호(즉, 단자)(6)(단자번호 A1)은 1, 단(7)(단자번호 A2)은 1, 단자(8)(단자번호 A3))은 2, 단자(9)(단자번호 A4)는 2) 등의 단자 데이타를 단자영역(18)내로 기입한다.
넷째, 배선 데이타에 대한 포인터에 의하여 포인터 기억부(1)가 배선번호(1,2,3등)를 순차로 특정하고, 배선(10),(11) 및 (12)가 접속된 단자들의 단자번호(즉, 배선(10)(배선번호 1)은 A1, 배선(11)(배선번호 2)은 A2와 A3, 배선(12)(배선번호 3)는 A3와 A4) 등의 배선데이타를 배선영역(19)내에 기입한다.
직접회로의 배치영역과 프린트 회로기판에 배선영역이 배치요소 데이타를 반송할 수 있으나, 상기 배치요소 데이타는, 셀 치수에 관한 데이타로 제한되며, 이것은 단자 또는 단자간 배선에 관한 구체 데이타를 포함하지 않는다.
보다 구체적으로는, 상기 배치요소 데이타들은, 각 분할영역들내에 배치된 그의 치수에 의해 분류된 셀수에 관한 데이타에만 한정되었다.
제 3 도는 종래의 모사 어니일링법에 의해 배치를 변경하는 방법을 나타낸다.
제 3 도에 도시된 번호들에 따라서 종래의 배치변경방법을 하기에 설명한다.
(1) 셀과 단자등의 배치요소에 대해서 새로운 좌표위치들이 확률적으로 생성된다. 배치영역에 전반에 걸쳐 균일한 생성확률로 상기 신좌표위치를 구하기 위해서 예를들어 난수가 사용된다.
(2) 배치변경 전,후의 에너지 차를 산출하며, 여기서 에너지는 배선길이에 의해서 결정된다.
(3) 상기 에너지차를 비교함으로써, 신좌표위치로 옮길것인가 여부를 결정키 위한 벤치마크(bechmark)등의 인덱스가 생성된다.
(4) 임의의 수가 난수로서 발생되어, (3)에서 산출된 인덱스와 비교되어, 신좌표위치로 옮길것인가 여부가 결정된다. 신좌표 위치로 이동하는 것으로 결정되면, 신좌표위치로 이동된다.
신좌표위치로 이동하지 않는 것으로 결정되면, 현재 좌표위치에의 배치가 유지된다.
상기 (1)~(4)의 처리가, 종료조건이 만족되어(5)에 최적배치가 얻어질 때까지 반복되어 최적배치가 얻어진다.
(5) 상기 종료조건은, 예를들면 (a) 일정횟수의 반복, (b) 소정 에너지 미만에 달할 때까지 반복 및 (c) 에너지 저감량이 N회의 (N은 소정수) 종료시의 소정 에너지 E미만이 될때까지의 반복중 임의의 것이다.
종래의 배치설계 시스템은 셀번호순으로 그리고 단자번호순으로 배치요소들을 기억하며 여기서 셀은 배치영역의 좌표위치(단위영역을 배치하기 위한 위치)를 갖고, 단자는 단자를 배치하기 위한 셀의 셀번호를 갖으며, 배선은 그 배선이 접속된 단자번호를 갖는다. 셀이 배치변경을 행할시에, 접속 데이타의 변경(즉, 셀좌표치와, 셀에 접속된 단자 및 배선접속)을 위해서 모든 셀들이 순차로 억세스된 후, 상기 셀들과 단자들이 순차로 억세스되어 신좌표데이타를 구한다.
따라서, 종래의 배치설계 시스템은, 배치변경을 처리하기 위해서 장시간을 소모한다.
또한, 데이타 구성때문에, 배치변경에서 신좌표위치로의 변환을 위하여 상기 좌표위치들을 셀번호와 단자번호순으로 검색해야 하므로, 배치와 루팅을 설계하기 위한 종래의 방법은 멀티프로세서 시스템을 도입한 병렬 컴퓨터용으로 적합치 않다.
셀 배치의 변경시 문제점들을 하기에 더욱 상세히 설명한다.
셀 배치의 변경시 입계점은, 상기 변경된 셀은 다른 셀과의 중첩부를 갖고 있다.
셀중첩부를 검사하기 위해서 각 셀에 대해 셀 이동후의 좌표위치가 셀 이동전의 좌표위치와 동일한가 여부를 점검해야 한다.
셀이 이동될 때, 셀에 접속된 단자의 위치가 변경될 수 있기 때문에 단자 데이타를 갱신해야 한다. 제 1 도, 제 2 도에 도시된 바와 같이 셀이 단자 데이타를 갖지 않고 대신 단자가 셀 데이타를 갖는 경우, 셀에 접속된 단자를 검색하기 위해서 모든 단자 데이타를 억세스해야 한다.
예를 들어, 셀번호(1)의 셀의 위치가 변경될 때 셀번호(1)의 셀에 신좌표위치를 부여해야 한다. 셀이 상기 신좌표위치에 이미 존재하는가를 점검하기 위해서, 셀번호(1)의 셀이 신좌표위치가 셀번호(2)의 셀의 좌표위치와 동등한가 여부를, 셀번호(2)의 셀에 대한 셀 데이타를 억세스함으로써, 점검해야 한다. 셀번호(1)의 셀에 접속된 모든 단자들을 검색하기 위해서, 각 단자들(단자번호 A1,A2,A3,A4)이 셀번호(1)의 셀에 접속돼 있는가 여부를 상기 단자들(단자번호 A1,A2,A3,A4)에 관한 데이타를 억세스함으로써 점검해야 한다. 따라서, 셀배치의 변경을 위한 처리가 더 많은 시간을 소모하는 경향이 있다.
셀등의 배치요소가 배치영역과 합치되면, 셀이 데이타를 거의 갖지 못하며, 이것은, 실제 배치에서 필요한 셀 형상에 의한 엄격한 제한(즉, 복수의 단위영역상에 단일 셀이 배치되는 것)을 만족하는 배치를 결정하거나, 또는 엄격한 제한하에서 상기 얻어진 배치를 평가하는 것을 불가능하지는 않으나 곤란하게 한다.
또한, 종래 배치를 변경하기 위한 신좌표치를 생성할 확률이 배치영역전반에 걸쳐 균일하므로, 셀 특성에 무관하에 이동목적지가 무조건적으로 생성된다. 따라서, 효율이 낮을 뿐만 아니라, 처리시간이 더 많이 걸린다.
본 발명은 설계처리를 효과적으로 해주는 배치요소의 배치/루팅 설계 시스템에 관한 것이다.
본 발명에 의하면, 배치/루팅 설계 시스템에 있어서, 배치/루팅부(1)가 한 영역으로부터 분할된 배치요소를 배치하기 위한 단위영역에 관한 단위영역 데이타를 기억하기 위한 단위영역 데이타 기억부(31)와, 배치요소가 배치되며, 가상으로 배치된 배치요소의 각 유형에 대해 한정된 가상배치영역의 위치를 각각 기억시키기 위한 복수의 내부 가상배치영역 배치요소 위치기억부(38,39)와, 상기 단위영역 데이타와 대응해서 설치되고, 상기 내부 가상배치영역 배치요소 위치기억부(38,39)에 기억된 배치요소중, 단위영역 데이타와 대응하는 배치요소를 특정하는 포인터부(33)를 구비하며, 상기 포인터부(33)가 배치 및 루팅을 행할시에, 상기 단위영역 데이타 기억부(31)에 기억된 단위영역과 내부 가상배치영역 배치요소 위치기억부(38,39)간의 대응 관계를 설정하는 것이 특징인 배치/루팅 설계 시스템이 제공된다.
본 기술분야의 숙련자는 하기 양호한 실시예의 설명과 첨부 도면의 내용으로부터 본 발명의 기타 특징과 목적들을 용이하게 이해할 수 있을 것이다.
본 발명은 병렬 컴퓨터에 대한 적용이 용이하게 설계 처리를 효율적으로 하는 배치설계 시스템를 제공하는데 있다.
본 발명에 의하면, 셀과 단자등의 배치요소를 가상으로 배치하기 위한 가상배치영역들이, 각종의 배치요소용 기억부에 설정돼 있다. 포인터들이, 배치영역의 각 단위영역내에 배치된 배치요소들의 가상영역을 특정하여 가상배치영역내의 각 배치요소에 관한 배치요소 데이타에 의하여 각 단위영역내에 배치된 배치요소를 구함으로써, 배치영역에 관한 배치요소 데이타를 구한다.
본 명세서에서, "가상배치영역"중 "가상"이란 용어른, 첫째, 가상배치된 배치요소들의 최적 배치의 점검과, 둘째는, 셀들을 프린트 회로기판내에 배치를 위해서 적층할 수 없더라도 설계의 중간상태 동안 가상영역(후술함)의 다층 구조에 의한 셀의 중첩이 허용됨을 의미한다.
제 4 도는 본 발명의 개통도이다.
제 4 도에서 ; 참조번호들의 의미를 하기와 같다 :
21 : 배치요소들을 배치하기 위한 컴퓨터의 중앙 처리부, 외장 메모리장치 등으로 구성된 배치설정부 ;
22 : 배치요소들(셀, 루팅등)을 기억하기 위한 컴퓨터의 내부 기억장치 또는 디스크 화일장치등의 외장 기억장치로 구성된 배치요소 기억부 ;
22' : 배치요소 A에 관한 데이타 ;
22" : 배치요소 B에 관한 데이타 ;
23 : 자기 테이프와 디스크장치등의 자기매체, 또는 키보드등의 입력부에 기억된 배치 데이타를 입력하는 것을 포함할 수 있는 회로의 루팅 데이타등의 루팅배치조건을 한정하는 배치 데이타를 입력하는 배치 데이타 입력부
24 : 배치 데이타 입력부(23)에 의해 입력된 배치 데이타
25 : 상기 배치 데이타 입력부(23)에 의해 입력되며, 좌표위치 생성부(44)(후술함)에 의해서 좌표위치를 생성하는데 필요한 변수(모사 어니일링법(후술함)에 의해 배치가 실행될때의 온도등)를 나타내는 변수 ;
29 : 중앙처리부와 메인 메모리상에서 전개되는 각종 처리를 실행하기 위한 동작 프로그램에 의해 구성되고, 배치 데이타의 생성을 제어하기 위한 배치 제어부 ;
30 : 배치영역을 생성하고, 이 배치영역을 단위영역으로 분할하고, 좌표위치를 할당하고, 상기 단위영역들을 단위영역 데이타 기억부(31)내에 세트하는 단위영역 데이타 생성부
31 : 상기 단위영역 데이타 생성부(30)에 의해 생성된 단위영역들을 기억하는 단위영역 데이타 기억부
32 : 각 단위영역에 대해 가상배치영역내의 배치요소들을 특정하기 위한 포인터를 생성하는 포인터 생성부
33 : 각 단위영역내에 배치요소를 특정하는 포인터를 기억하기 위한 포인터 기억부
34와 35 : 상기 베치 데이타(24), 각 배치요소에 관한 데이타 및 상기 좌표위치 생성부(44)(후술함)에 의해 생성된 좌표위치들에 의하여, 각 가상기억영역들에서 데이타(즉, 배치요소 A와 배치요소 B가 배치된 배치영역들에서의 위치에 관한 데이타)를 각각 생성하기 위한 배치요소 A생성부와, 배치요소 B생성부 ;
38과 39 : 상기 배치요소 A생성부(34)와 배치요소 B생성부(35)에 의해 각각 생성된 배치요소 A와 B의 배치영역들내의 배치에 관한 위치 데이타를 기억하기 위한 각각, 내부 가상배치영역 배치요소 A 위치기억부와 내부 가상배치영역 배치요소 B 위치기억부(상기 2유형(A,B)의 배치요소가 구분되는 이유는 셀, 단자, 루팅 및 통공등의 상이한 유형의 배치요소들을 구분해야 하기 때문이다. 이 배치요소들중, B는 그들의 여분의 정도를 나타내야 할 것들을 표시한다.)
42 : 상기 내부 가상배치영역 배치요소 A 위치기억부(38)와 내부 가상배치영역 배치요소 B 위치기억부(39)에 기억된 각 배치요소들의 가상배치 데이타와, 상기 단위영역 데이타 기억부(31)에 기억된 배치영역 데이타에 의하여 배치영역내의 각 배치요소에 관한 배치 데이타를 출력하는 배치 데이타 생성부
43 : 동일한 루팅들이 동일한 단위영역내에 여분성 있게 배치될 때 여분정도를 판정하고, 이 여분정도를 대응하는 가상배치영역의 루팅영역내에 기록하기 위한 여분정도 판정부
44 : 배치요소를 배치하기 위한 좌표위치를 생성하기 위한 좌표생성부
45 : 생성후의 좌표위치가 생성전의 좌표위치로부터의 확률분포에 따라서 결정되도록 하는 확률분포를 생성하기 위한, 좌표위치 생성부(44)에 대한 확률분포 생성부
46 : 상기 여분정도 판정부(43)에 의해 판정된 여분정도를 기억하기 위한 여분정도 기억영역
47 : 배치 데이타 생성부(42)에 의한 생성된 배치 데이타 또는 실제 배치화상을 표시부 또는 프린터에 출력하기 위한 배치출력부 ;
48 : 상기 배치 데이타 생성부(42)에 의해 생성된 배치에 의하여 배치를 변경할 것인가 또는 현재 좌표위치에서의 배치를 유지할 것인가 여부를 판정하기 위한, 배치변경 필요성 판정부
제 5 도는 본 발명의 배치영역과 가상배치영역의 개념도이다.
제 4 도에 도시된 기본구성의 동작을 설명하기 전에, 본 발명의 배치영역과 가상배치영역의 개념을 제 5 도를 참조하여 설명한다.
51과 52 : 단위영역(51-1~51-4)와 (52-1~52-4)의 좌표위치를 각각 표시하는 단위영역 데이타 기억부(31)에 기억된 단위영역그룹, 상기 내부 가상배치영역 배치요소 A 위치기억부(38)는, 예를들어, 배치영역내의 배치요소 A의 배치에 관한 위치 데이타를 기억하기 위한 것이다.
상기 내부 가상배치영역 배치요소 A 위치기억부(38)는, 1이상의 가상배치영역층을 갖고 있다. (38')은 배치요소 A의 가상배치영역이다. (28'-1)은 단위배치영역(5-1)에 대응하는 제 1 층내의 기억영역이다.
(28'-2)는 단위배치영역(51-1)에 대응하는 제 2 층내의 기억영역이다.
상기 내부 가상배치영역 배치요소 B 위치기억부(39)는 1이상의 가상배치영역을 갖고 있다. (39')는 배치요소 B의 가상배치영역이다.
(39'-1)은 단위배치영역(51-1)에 대응하는 제 1 층내의 기억영역이다.
(39'-2)는 단위영역(51-1)에 대응하는 제 2 층내의 기억영역이다.
(39'-3)은 단위배치영역(51-1)에 대응하는 제 3 층내의 기억영역이다. 상기 포인터기억부(33)는, 가상배치영역(38',29')에 기억된 각 단위영역들에 배치된 배치요소들에 관한 배치요소 데이타에 대한 포인터를 기억한다.
단위영역 데이타 기억부(31)는, 각 단위영역내에 현재 배치된 배치요소에 대한 배치요소영역내의 데이타에 대한 포인터를 특정하기 위한 단위영역 데이타를 기억한다.
더 구체적으로, 상기 단위영역 데이타 기억부(31)는, 배치요소 A와 배치요소 B에 대한 포인터에 관한 데이타를 단위영역(51-1)내에 기억시키는 포인터 기억부(33)를 갖고 있다.
배치요소 A에 대한 포인터는, 배치요소 A가 셀인 경우에 셀번호등의 단위영역(51-1)내에 배치된 배치요소 A에 관한 데이타를 특정하기 위한 데이타를 기억하기 위한 기억영역(38'-1)(배치요소 A의 가상배치영역 A내)을 특정한다.
배치요소 A의 가상배치영역과 배치요소 B의 가상배치영역은 다층 구조를 갖고 있다.
예를 들어, 배치요소 A의 가상배치영역(38')이 2개의 기억영역(38'-1)과 (28'-2)을 포함하는 이유는 설계과정중 단위영역(51-1)내에 2개의 셀이 적층될 수 있기 때문이다.
보다 구체적으로는 배치요소 A의 가상배치영역(38')이 복수의 기억영역(38'-1)과 (38'-2)를 갖지 않으면 현재 아무런 셀도 배치돼 있지 않은 단위영역에만 셀이 이동될 수 있다. 특히, 셀이 크면 한번 고정된 그의 위치를 변경하기가 불가능하다.
복수의 가상배치 배치들을 갖음으로써, 다른 셀을 배치하기 위한 단위영역에 기타의 셀들이 이동할 수 있다. 또한, 단위영역내에 원래 배치된 셀을 상이한 단위영역내로 배치하는 것이 가능해진다.
제 5 도에 도시된 기본구성하의 동작을 제 5 도와(제 4 도)를 참조하여 설명한다.
상기 배치/루팅부(21)는, 상기 배치요소 기억부(22)로부터, 배치요소 A와 배치요소 B에 관한 데이타를 독출 및 수신하고, 상기 배치 데이타 입력부(23)로부터 배치 데이타와 변수를 수신한다.
본 발명은, 배치를 수회 변경함으로써 더 바람직한 배치를 얻는데 있다. 따라서, 배치변경을 초기설정하기 위하여 초기배치가 필요하며, 이것은 한 방법 또는 다른 방법으로 임의로 발생할 수 있다.
단위영역 데이타 생성부(30)가, 배치영역내의 단위영역 그룹(51,52)에 좌표위치를 할당함으로써, 단위영역(51-1~51-4)과 (52-1~52-4)로 분할한다.
상기 배치요소 A생성부(34)와 배치요소 B생성부(35)가, 배치 데이타(24)에 의하여, 각 가상배치영역에 대응하여 배치요소 A와 배치요소 B에 관한 데이타를 각각 생성한다.
예를 들어, 2개의 배치요소 A와 배치요소 B가 단위영역(51-1)내에 배치된 경우, 배치요소 A가, 단위영역(51-1)내의 내부 가상배치영역 배치요소 A 위치기억부(38)내의 가상배치영역(38')의 기억영역(38'-1)내에 가상으로 배치된다. 이와 마찬가지로, 배치요소 B가 단위영역(51-1)내의 내부 가상배치영역 배치요소 B 위치기억부(39)내의 가상배치영역(39')의 기억영역(39'-1)내의 가상적으로 배치돼 있다.
이와 함께, 단위영역의 위치를 나타내는 수에 따라서, 포인터 생성부(32)가, 포인터부(33)에 기억용 단위영역내에 배치된 배치요소에 관한 데이타에 대한 포인터를 생성한다.
배치 데이타 생성부(42)가, 각 단위영역내의 포인터 기억부(33)에 의해 특정된 각 배치요소의 가상배치로부터, 단위영역 데이타 기억부(30)내에 배치 데이타를 생성하기 위해서 각 단위영역내에 배치된 배치요소들의 유형과 수를 구한다.
예를들어, 단위영역(51-1)내의 배치요소 A에 대한 포인터 기억부(33)의 포인터에 의하면, 상기 배치 데이타 생성부(22)가, 단위영역(51-1)의 기억영역(38'-1)내의 배치요소 A에 관한 가상배치 데이타를 구한다. 또한 단위영역(51-1)내의 배치요소 B에 대한 포인터 기억부(33)의 포인터에 의하면, 상기 배치 데이타 생성부(42)가, 단위영역(51-1)의 기억영역(39'-1)내의 배치요소 B에 대한 가상배치 데이타를 구한다. 다음, 배치 데이타 생성부(22)가, 단위영역(51-1)내에 배치된 배치요소 A와 배치요소 B에 관한 배치 데이타를 생성한다. 따라서, 상기 배치 데이타 생성부(42)가, 배치출력부(47)에 대한 출력을 위한 모든 단위영역에 대한 배치 데이타를 생성한다.
상기 배치출력부(47)가, 예를들어, 단위영역 데이타 기억부(31)내에 기억된 데이타에 따라서 단위영역을 화면상에 그리드상으로 표시하고, 단위영역(51-1)내에 배치된 배치요소 A와 배치요소 B의 화상을 출력하기 위한 표시부를 구비하고 있다.
배치변경 필요성 판정부(48)는, 상기 배치 데이타 생성부(42)에 의해 생성된 배치 데이타를 수신하고, 신규로 생성된 배치에 의하여 배치요소의 배치를 변경할 것인가 또는 현재 배치를 지킬것인가 여부를 통계학적으로 판정한다.
상기 배치변경 필요성 판정부(48)가, 신규배치에 의한 루팅길이에 대한 루팅비용 또는 루팅에너지를 산출한다. 상기 배치변경 필요성 판정부(48)가, 상기 루팅비용 또는 루팅에너지에 의하여 배치변경 필요성을 통계학적으로 판정하기 위한 인덱스를 생성한다. 다음, 상기 인덱스와의 비교를 통하여 상기 배치변경을 판정하기 위해서 난수가 생성된다(예를 들어, 생성된 수가 인덱스보다 작으면 배치요소들이 상이하게 배치되고, 그렇지 않으면 "그대로" 유지된다.) 배치변경을 실행할 것으로 판정하면, 상기 배치변경 필요성 판정부(48)가 신규배치에 의하여 배치요소의 배치를 변경한다.
배치변경을 실행치 않을 것으로 판정하면, 상기 배치변경 필요성 판정부(48)가 기존의 배치를 유지한다. 다음, 상기 배치변경 필요성 판정부(48)는, 상기 좌표위치 생성부(44)가 후속 좌표위치를 생성할 것을 명령한다.
상기 배치변경 필요성 판정부(48)로부터 명령을 수신하면, 좌표위치 생성부(44)가 상이한 좌표위치를 생성한다. 각 데이타 생성부(배치요소 A생성부(34), 배치요소 B생성부(35), 단위영역 데이타 생성부(30) 및 포인터 생성부(32)가, 상기 내부 가상배치영역 배치요소 A 위치기억부(38), 상기 내부 가상배치영역 배치요소 B 위치기억부(39), 단위영역 데이타 기억부(31) 및 포인터 기억부(33)내의 기억용 배치요소 A와 배치요소 B에 대한 배치 데이타를 생성한다.
다음, 앞서 설명한 방법에 의하여 신좌표 데이타가 생성된다.
본 발명은, 좌표위치 생성부(44)에 의한 좌표위치 생성은 좌표위치 생성전의 좌표위치를 고려치 않고는 안되나, 대신 상기 좌표위치 생성전의 좌표위치에 관련된 좌표위치는, 확률분포 생성부(45)에 의해 생성된 확률분포에 따라서 발생됨으로써, 무의미한 배치변경을 최소화하도록 돼 있다.
또한, 배치요소 B가 예를들어 루팅인 경우, 동일한 루팅들이 배치영역의 동일 단위영역 내에 여분성 있게 배치될 수 있다.
본 발명은, 상기 여분도 판정부(43)가 상기 여분도를 판정하고, 이 여분도를 기록함으로써 배치/루팅을 표현하도록 돼 있다.
따라서, 복수층의 동일 루팅들을 동일 좌표위치에 대응하여 가산배치영역내에 배치할 수 있다.
상기 여분도 판정부(43)에 대한 입력은, 여분도의 판정을 요구하는 배치요소 생성부(즉, 제 4 도에 도시된 배치요소 B생성수단(35)로부터의 출력이다. 상기 여분도 기억영역(46)에서, 상기 여분도 판정부(43)로부터의 출력부를 기억한다.
상기 내부 가상배치영역 배치요소 B 위치기억부(39)가 여분도 기억영역(46)내에 기억된 데이타를 함유하고 있고, 상기 데이타는 상기 배치 데이타 생성부(42)에 대한 입력이 된다.
상기 설명한 바와 같이, 본 발명은 상기 단위영역 데이타 기억부(31)가, 각 단위영역내에 배치되는 배치요소에 관한 배치요소 데이타내에 기억된 가상 배치영역에 대한 포인터를 기억하고 있다. 예를들어, 단위영역(51-1)내의 셀이 이동하는 경우, 단위영역(51-1)이 기배치된 다른 셀을 갖고 있는지 여부를 검사하기 위해서 내부가상 배치영역 배치요소(A) 기억부(38)내의 가상 배치영역의 배치요소 A의 영역(38')내의 기억영역들(38'-1,38'-2)을 상기 셀에 대응해서 단지 억세스하기만 하면 된다. 이럼으로써, 종래기술에서와 같이 모든 셀데이타를 억세스할 필요성이 없으므로, 처리시간이 상당히 감소될 수 있다.
제 4 도는, 상기 단위영역 데이타 기억부(31), 내부 가상배치영역 배치요소 A 위치기억부(38) 및 상기 내부 가상배치영역 배치요소 B 위치기억부(39)가 모두 상이한 구조를 나타내고 있으며, 이들은 실제 컴퓨터의 동일 기억부의 상이한 기억영역들내에서 실현될 수도 있다.
제 6 도는 본 발명의 일실시예의 구조를 나타내는 계통도이다.
보다 구체적으로는, 제 6 도는 집적회로기판 또는 프린트 회로기판내의 회로소자들의 배치가 설계된 경우의 구조를 나타낸다.
제 6 도에서 각 참조번호들이 나타내는 바는 하기와 같다 :
56 : 배치/루팅부 ;
57 : 셀데이타, 단자데이타, 루팅데이타 및 통공 데이타를 기억하기 위한 배치요소화일 ;
58 : 배치데이타와 파라미터를 입력하기 위한 것으로, 자기 테이프 장치, 자기디스크 장치 또는 키보드등을 포함한 배치데이타 입력부 ;
60 : 배치 제어부 ;
61 : 기억부 ;
70 : 단위영역 데이타 생성부 ;
71 : 단위영역 데이타 기억부 ;
72 : 포인터 생성부 ;
72' : 포인터부 ;
73 : 가상배치 기억부 ;
74 : 집적회로기판 또는 프린트 회로기판상에 배치된 셀을 배치하는 것에 관한 데이타를 생성하기 위한 셀배치 생성부 ;
75 : 단자 배치에 관한 데이타를 생성하기 위한 단자배치 생성부 ;
76 : 통공배치에 관한 데이타를 생성하기 위한 통공배치 생성부 ;
77 : 루팅의 배치에 관한 데이타를 생성하기 위한 루팅배치 생성부 ;
78 : (제 4 도에 도시된 내부 가상배치영역 배치요소 A 위치기억부(38)와 내부 가상배치영역 배치요소 B 위치기억부(39)중 하나와 동등함)
상기 셀배치 생성부(74)내에 생성된 셀배치 데이타를 기억하는 셀배치 기억부 ;
79 : (제 4 도에 도시된 내부 가상배치영역 배치요소 A 위치기억부(38)와 내부 가상배치영역 배치요소 B 위치기억부(39)중 하나와 동등함)
상기 단자배치 생성부(75)내에 생성된 단자배치 데이타를 기억하는 단자배치 기억부 ;
80 : (제 1 도에 도시된 내부 가상배치영역 배치요소 A 위치기억부(38)와 내부 가상배치영역 배치요소 B 위치기억부(39)중 하나와 동등함)
상기 통공배치 생성부(76)내에 생성된 통공 배치 데이타를 기억하는 통공배치 기억부 ;
81 : (제 1 도에 도시된 내부 가상배치영역 배치요소 A 위치기억부(38)와 내부 가상배치영역 배치요소 B 위치기억부(39)중 하나와 동등함)
상기 루팅배치 생성부(77)내에 생성된 루팅배치 데이타를 기억하는 루팅배치 기억부 ;
83 : 여분도 판정부 ;
84 : 좌표위치 생성부 ;
85 : 확률분포 생성부 ;
87 : 배치변경 필요성 판정부 ;
88 : 배치출력부 ;
제 7 도는 본 발명의 배치설계 시스템의 일실시예의 개념도이다.
제 7 도는 제 6 도에 도시된 일실시예의 동작을 나타낸다.
제 7 도에서 각 참조번호들이 나타내는 바는 하기와 같다 :
81A와 81B(제 1 도에 도시된 내부 가상배치영역 배치요소 A 위치기억부(38)와 내부 가상배치영역 배치요소 A 위치기억부(38)와 내부가상 배치영역 배치요소 B와 동등함)
상기 루팅배치 생성부(77)에 의해 생성된 루팅배치 데이타를 기억하기 위한 루팅배치 기억부
91과 93 : 셀 또는 루팅을 배치하기 위한 배치영역내의 단위영역
92 : 루팅, 단자 또는 통공을 배치하기 위한 단위영역
96-1~96-6, 96'-1 및 96'-2 : 루팅을 가상배치하기 위한 가상배선영역, 이중 (96-1)과 (96'-1)는 제 1 층, (96-2)와 (96'-2)은 제 2 층, (96-3), (96-4), (96-5) 및 (96-6)은 각각 제 3, 제 4, 제 5 및 제 6 층에 있다 :
96-1~96-6 : 루팅을 가상 배치하기 위한 루팅영역으로 단위영역(91)에 대응함 ;
96-1~96'-2 : 루팅을 가상 배치하기 위한 가상루팅영역으로 단위영역(92)에 대응함 :
97-1, 97-2, 97-3 : 단위영역(91)에 대응하여 셀의 가상배치를 각각 나타내며, 제 1, 제 2 및 제 3 층내에 각각 셀들을 가상배치하기 위한 셀영역
98 : 통공을 가상으로 배치하기 위한 통공영역으로, 단위영역(92)에 대응함 ;
99-1과 99-2 : 단자들을 가상배치하기 위한 가상단자영역으로 제 1 과 제 2 층내의 단위영역(92)에 각각 대응함.
상기 루팅배치 기억부(81A)와 (81B)가 집적회로의 실제 설계에 따라서 개별적으로 배치된다. 기판내의 지정된 영역만이 셀배치용으로 유용하므로, 나머지 부분들(루팅배치 기억부(81B)은 배선을 배치하는데(즉, 배선을 루팅하는데)에 유용하고, 셀배치에 유용하지는 않는다.
상기 기판내의 지정된 영역중에서, 셀배치용으로 사용되지 않는 부분(루팅배치 기억부(81A))이 배선을 배치(배선을 루팅)하는데 유용하다.
제 6 도에 도시된 구성을 갖는 상기 실시예의 동작을 제 7 도를 참조하여 설명한다.
상기 배치/루팅부(56)는, 배치요소 화일(57)로부터, 셀명칭, 셀치수등의 셀데이타, 단자 명칭과 단자 치수등의 단자 데이타, 루팅 명칭과 루팅 폭등의 루팅 데이타 및 통공 데이타를 독출한다.
배치/루팅부(56)가 또한, 상기 배치 데이타 입력부(58)로부터 회로루팅 데이타를 수신한다.
여기서, 상기 배치요소 화일(57)내의 루팅 데이타는, 단일 루팅의 폭등의 루팅 속성에 관한 데이타인 반면 상기 루팅 데이타 입력부(58)내의 루팅 데이타는, 특정 단위영역내의 루팅 번호등의, 개별 루팅경로에 관한 구체 데이타이다.
단위영역 데이타 생성부(70)가, 배치영역을 생성하고, 이것을 단위영역 번호를 할당함으로써 단위영역((제 7 도에 도시됨) 91,92,93)으로 분할하며, 단위영역 데이타 기억부(71)가 각 단위영역의 좌표위치를 기억한다.
좌표위치 생성부(84)가, 상기 배치 데이타 입력부(58)로부터 배치 데이타와 파라미터를 수신한다. 상기 확률분포 생성부(85)가, 배치 데이타와 셀좌표위치에 의하여 배치요소를 가상 배치하기 위한 배치 데이타를 생성하고, 상기 확률분포에 의하여, 셀을 배치하기 위한 좌표위치(셀을 배치하기 위한 단위영역의 번호)를 세트한다.
예를들어, 셀의 좌표위치가 변경되면, 상기 좌표위치 생성부(4)가, 셀의 원래 좌표위치를 배치 데이타로서 수신한다.
셀배치 생성부(74)가, 생성된 좌표위치에 의하여 셀을 가상 배치하기 위한 그리고, 셀배치 기억부(78)내의 기억을 위한 배치 데이타를 생성한다.
상기 단자배치 생성부(75), 통공배치 생성부(76) 및 루팅배치 생성부(77)가 배치 데이타와 셀 좌표위치에 의하여 각 배치요소를 가상 배치하기 위한 그리고 상기 단자배치 기억부(70)와, 통공 배치기억부(80) 및 루팅배치 기억부(81)내에 각각 기억시키기 위한 배치 데이타를 생성한다.
상기 포인터 생성부(72)는, 각 단위영역내에 배치된 배치요소들의 가상 배치영역을 특정하고, 포인터 기억부(72')내에 기억시키기 위한 포인터를 생성한다.
상기 배치 데이타 생성부(82)는 포인터 기억부(72')에 의한 포인터에 의해 특정되는, 가상배치 영역내의 배치요소에 관한 배치 데이타로부터 각 단위영역내에 배치되는 배치요소를 구함으로써 배치 데이타를 생성한다. 즉, 상기 배치 데이타 생성부(82)를, 각 단위영역내에 배치되는 배치요소 데이타를 구하고, 이들을, 배치 출력부(88)에 허용되는 포맷으로 변환시킨다.
배치 출력부(88)는, 상기 배치 데이타 생성부(82)로부터 출력된 배치 데이타를 수신하고 얻어진 배치(셀 배치, 셀에 접속된 단자, 단자간 접속배선 및 통공간 접속배선)를 실제 배치화상으로 표시부상에 표시한다.
또한, 상기 배치변경 필요성 판정부(87)는 새로운 배치로서 얻어진 배치를 세트할 것인가 또는 현재 배치를 유지할 것인가 여부를 판정하기 위하여 상기 배치 데이타 생성부(82)에 의해 생성된 배치 데이타를 입력한다. 배치변경의 필요성을 판정하는 방법은 후술한다.
여분도 판정부(82)는, 동일 배선들이 동일 단위영역내에 배치될 때 여분도를 카운트하고, 이 여분도를 단위영역에 대응하는 배선을 가상 배치하기 위한 배선영역(즉, 제 7 도에서, 96-1~96-6, 96'-1 및 96'-2)에 기록한다.
이것은, 동일 배선들이 가장 배치영역내에 복수층으로 적층되는 것을 방지하기 위함이다.
제 8 도는 본 발명의 일실시예에서 셀영역과 단위영역의 개념도이다.
상기 셀영역은 제 7 도에 도시된 셀영역(97-1,97-2,97-3)과 대응한다.
제 8 도에서 (a)는, 게이트 어레이의 배치시 배치영역을 나타낸다.
(130)은, 배치영역이고, (131), (132) 및 (133)은, 게이트 어레이의 배치영역들이고, (134)는 단위영역 (BC)이다.
(a)는, 단위영역이 게이트 어레이의 셀단위인 기본셀인 경우를 나타낸다.
(135)는 배선채널 영역이며, 게이트 어레이의 배치영역(131)과 게이트 어레이의 배치영역(132) 사이와, 게이트 어레이의 배치영역(132)과 게이트 어레이의 배치영역(133) 사이에 있다. 상기 배선채널 영역(135)은 제 7 도에 도시된 단위영역(92)과 대응한다.
(b)는, 복수의 단위영역상에 배치된 단일셀이 단일층의 셀영역상에 배치된 경우를 나타낸다.
(b)에서, (140)은 3단위영역상에 위치된 셀 C이다. 단위영역내에 배치된 부분 [1], [2], [3]은 각각 셀영역(1), 셀영역(2) 및 셀영역(3)이다.
셀 C(140)를 가상 배치하기 위한 좌표위치들이 셀영역(1)과 셀영역(2)에서 유휴 상태가 아니기 때문에, 셀 C(140)가 셀번호(3)내에 가상 배치된 경우가 도시돼 있다. (b)에서 도시된 바와 같이, 관련된 위치들을 나타내는, [1], [2], [3]으로 분할됨으로써 셀 C(140)가 단위영역내에 배치된다.
(C)는, 복수의 단위영역상에 배치된 단일셀이 셀영역들상에 상이한 층으로 배치된 경우를 나타낸다.
(c)에서, (145)는 3단위영역상에 배치된 셀 C이다. 단위영역내에 배치된 부분 [1], [2] 및 [3]은 관련 위치들을 나타낸다. (146), (147) 및 (148)은 각각 , 셀영역(1), 셀번호(2) 및 셀번호(3)이다.
셀 C(145)의 부분[1]과 [2]를 가상으로 배치하기 위한 좌표위치들이 셀번호(1)과 셀영역(2)에서 비어 있기 때문에, (C)에 도시된 바와 같이, 셀 C(145)의 부분[1]과 [2]가 셀번호(3)내에 가상 배치돼 있다. 또한, 셀영역(1)이 비어있지 않으나, 셀 C(145)의 [3]을 배치하기 위한 위치로서, 셀영역(2)(147)이 비어 있으므로, 셀 C(145)의 부분[3]이 셀번호(2)(147)내에 가상으로 배치돼 있다.
제 9 도는 본 발명의 여분도를 나타내는 설명챠트이다.
(a)에서 (151)은 그 좌표위치가 (1,1)인 단위배선영역이다(제 7 도에 도시된 단위영역(91),(92),(93)중 하나에 대응함). (152)는 그 좌표위치가 (1,3)인 단위배치영역이다.
(153), (154) 및 (155)는 배선번호(105), (105), (297)인 배선들이다. (b)에서, (156)은 단위영역(1,1)에서의 여분도이다. (c)에서 (157)은, 단위영역(1,3)에서의 여분도이다.
배선을 배치할 때, 동일유형의 배선들(동일 배선번호를 갖는 배선)이 동일 단위영역내에 배치되는 경우가 있다. 이러한 배선들이 가상 배치영역들내에 가상으로 배치되면, 단일층내의 가상 배치영역에서, 상기 배선들을 다층으로 배치하는 대신에 배선내의 여분도를 기록한다.
(b)에서 도시된 바와 같이, 배선번호(105)와 배선번호(297)이 배선되는 경우, 단위 배치영역(1,1)에 대응하는 가상 배치영역내에 2개의 배선번호(105)가 배치되기 때문에, 층번호(1)에서 배선번호(105)와 여분도(2)를 기록한다.
다음, 배선번호(297)가 좌표위치(1,1)의 단위 배치영역(1)내에 배치되기 때문에, 층번호(2)에서, 여분도(1)의 배선번호(297)를 기록한다.
이와 유사하게, (c)에 도시된 바와 같이, 좌표위치(1,3)의 단위 배치영역이 각각의 배선번호가(105),(297)인 하나의 배선을 갖으므로, 층번호(1)에서 여분도(1)의 배선번호(105)를 기록하고, 층번호(2)에서 여분도 (2)의 배선번호(297)를 기록한다.
제 10 도는 본 발명의 일실시예의 데이타 구성을 나타내는 도면이다.
이것은, 종래의 배치방법과 본 발명의 배치방법을 혼합하여 게이트 어레이를 데이타 구조내에 배치한 경우를 나타낸다. 종래 배치방법의 데이타 구조는 제 2 도에 도시된 것과 같과 동일하므로, 여기서는 그의 구조의 도시가 생략돼 있다.
제 10 도에서 각 참조번호들을 하기의 의미이다 :
71 : 단위영역 데이타 기억부 ;
73 : 가상 배치기억부(내부가상 배치영역 배치요소 위치 기억부) ;
170 : 게이트 어레이의 배치배선 데이타를 나타내는 데이타 ;
171 : 종래의 배치/루팅 방법에 의한, 데이타(제 6 도의 배치요소 화일(57)내의 셀 데이타 등과 같은)에 대한 포인터 ;
172 : 본 발명의 배치/루팅 방법에 의한 데이타에 의한 포인터 ;
173 : 단위영역들과의 대응성을 갖는 각 배치요소들의 기억영역에 대한 포인터 ;
72' : 배치요소에 관한 가상 배치 데이타의 기억영역(셀영역, 배선영역등)에 대한 포인터를 나타내기 위한 포인터 기억부 ;
175 : 각 셀번호와 대응하여 셀내에 배치하기 위한 단위영역 번호(좌표위치)를 기억하기 위한 셀영역에 관한 데이타 ;
176 : 배치영역의 번호에 대응하는 좌표위치와 여분도를 기억하기 위한 배치영역에 관한 데이타.
본 발명의 데이타 구조는, 상기 단위영역 데이타 기억부(71)가, 각 단위영역내에 배치된 배치요소를 특정하는 각 단위영역내의 포인터에 의해 특정된 각 배치요소에 대한 포인터를 갖도록 되 있다.
상기 포인터 기억부(72')가 각 단위영역내에 배치된 셀, 단자의 가상배치들을, 셀배치용, 셀에 접속된 단자배치용, 그리고 단자접속용 배선의 배치용 단위영역내에 각각 배치된 배선과 결합시킨다.
제 10 도에 도시된 데이타 구성을 더욱 상세히 설명한다. 먼저 단위영역 데이타 기억부(71)내의 포인터들 (73)은, 전 단위영역에 대한 단위영역 번호(즉, 1)에 대한 포인터, 단위영역 데이타(즉, 단위영역(1)이 배치될 수 있는가 여부에 대한 데이타)에 대한 포인터 및 배치요소 영역에 대한 포인터를 구비하고 있다. 셀영역에 대한 포인터가 가리키는 단위영역은, 단위영역(1)내에 배치된 셀의 셀번호에 관한 데이타를 갖고 있다.
따라서, 배선영역에 대한 포인터가 가리키는 단위영역은, 단위영역(1)내에 배치된 셀의 셀번호에 관한 데이타를 갖고 있다.
따라서, 배치영역에 대한 포인터가 가리키는 단위영역은, 단위영역(1)내에 배치된 배선의 배선수에 관한 데이타를 갖고 있다.
제 11 도는, 제 10 도에 도시된 구조를 갖는 데이타의 내용의 설명 챠트도이다.
본 발명에 의하면, 단위영역 데이타 기억부(71)내의 각 단위영역에 대응하여, 상기 가상배치 기억부(73)가 단위영역내에 배치되는 배치요소(즉, 셀)에 관한 구체 데이타를 기억하고 있다. 좌표치들은 단위영역의 위치를 나타낸다. 예를들어, 그의 좌표치가 (1,1)인 단위영역에 대한 내부가상 배치영역 데이타는 "셀번호가 37인 셀내의 제 1 BC(기본셀)내에 배치"를 나타낸다.
또한, 그 좌표치가 (15,27)인 단위영역에 대한 내부가상 배치영역 데이타는, 복수의 셀들을 일시적으로 배치하는 것의 허용성을 나타내며, 그 대응하는 가상영역은 복수의 층을 갖고 있다.
다른, 한편, 제 2 도에 도시된 종래 시스템에 의하면, 예를들어, 1셀에 대한 셀영역(17)이 전술한 바와 같이, 셀번호에 대응해서 셀을 배치하기 위한 좌표위치를 기억하고 있으므로 셀이 특정위치에 배치되면, 모든 셀들의 배치위치에 대해 새로운 셀을 배치할 가능성을 점검할 필요가 있다.
제 12 도는 셀을 배치하기 위한 앨고리즘을 나타낸다.
제 6 도에 도시된 셀배치 생성부(74)는 하기 앨고리즘을 실행한다.
(1) 셀의 모든 부분(즉, 제 8 도에 도시된 셀 C의 3부분 [1],[2],[3])이 완전히 처리됐는가 여부를 판정한다. 완료시 처리가 종료한다. 그렇지 않으면 (2)로 진행한다.
(2) 처리안된 셀의 부분을 선택한다.
(3) 상기 선택된 셀부분의 셀위치와 관련위치(복수의 단위영역상에 셀이 배치된 경우 셀의 각 부분들의 관련위치들)에 대응하는 단위영역을 구한다.
(4) 배치의 경우, 선택된 부분을 단위영역내에 배치한다.
보다 구체적으로는, 제 7 도에 도시된 셀배치 기억부(78)는, 상기 선택된 부분상에 그의 셀영역 기억데이타를 갖고 있고, 포인터 기억부(72')가 그에 대한 포인터를 세트한다. 제거의 경우, 셀내의 단위영역으로부터 선택된 부분을 제거한다.
(5) 처리들이 성공됐는가를 판정한다. 처리들이 성공된 경우, (1)로 돌아가서 (1) 이후의 처리를 반복한다. 상기 처리들의 비성공적이면, 그 결과를 외부로 출력한다. 위치가 셀의 배치를 금지하면, 그 처리는 실패한 것으로 판정한다.
제 13 도는 여분성이 없을 때 배치변경에 대한 앨고리즘의 일실시예를 나타낸다.
상기 셀배치 생성부(74), 단자배치 생성부(75) 및 통공배치 생성부(76)가 상기 앨고리즘을 실행한다. 이 앨고리즘을 제 9 도에 도시된 번호에 의하여 하기에 설명한다.
(1) 배치요소를 가상 배치영역내에 배치하라는 명령 또는 가상 배치영역으로부터 배치요소를 제거하라는 명령을 수신한다.
(2) 명령이 배치요소의 배치 또는 제거인가를 판정한다. 배치인 경우 (3)으로 진행하고, 제거인 경우 (8)로 진행한다.
(3) 배치의 경우, 배치요소를 배치하는데 필요한 단위영역이 비어있는가 여부를 판정한다. 빈 영역이 있으면, (4)로 진행한다. 빈 영역이 없으면, (5)로 건너뛴다. (3)에서 판정을 행하는데 있어서, 제 7 도에 도시된 단위영역(91)이 셀과 배선 모두를 동시적으로 배치할 수 있는 경우에, 배치요소의 유형을 고려해야 한다.
(4) 단위영역 또는 대응하는 가상 기억영역이 비어 있으면 필요데이타를 빈 영역상에 기록한다.
(5) 빈 영역이 없을 때 그 결과를 외부로 출력한다.
(6) (2)에서 상기 명령이 배치요소를 제거하라는 것임으로 판정될시에 배치요소의 단위영역으로부터 제거 명령된 것과 매치(match)되는가 여부를 판정한다. 양자가 배치되면, (7)로 진행되고, 그렇지 않으면 (8)로 건너뛴다.
(7) 배치요소의 단위영역내의 데이타를 삭제한다.
(8) 지시된 배치요소와의 미스매치에 관하여 알리는 메시지를 외부로 출력한다.
제 14 도는 여분이 있을 때의 배치변경을 위한 앨고리즘에 관한 일실시예를 나타내고 있다.
배치요소의 종류에 대응하는 배선배치 생성부(77)는 상기 앨고리즘을 실행한다. 이 앨고리즘을 제 14 도에 나타낸 수에 따라서 이하에 설명하겠다.
(1) 가상 배치영역에 배치요소를 배치하는 명령 또는 가상 배치영역으로부터 배치요소를 제거하라는 명령을 받는다.
(2) 명령이 배치요소를 배치하라는 것인지 제거하라는 것인지를 판단한다. 배치하라는 명령일 경우에는 (3)으로 진행하고 제거하라는 명령일 경우에는 (8)로 진행한다.
(3) 배치일 경우에는 배치요소를 배치하는데 요구되는 단위영역이 각 단위영역에 대응하는 가상 배치영역의 내용에 따라서 배치요소와 일치하는 영역이 있는지의 여부를 판단한다.
배치요소와 일치된 것이 없을 경우에 (4)로 진행한다.
배치요소와 일치되는 것이 있을 경우에 (7)로 진행한다.
(4) 배치요소를 배치시키는데 요구되는 단위영역이 비어 있는 영역인지의 여부를 판단한다.
(5) 필요한 데이타 예를 들면 비어 있는 단위영역을 기록하고 대응하는 가상영역내의 여분도로서 1을 기입한다.
(6) (4)에서 단위영역이 비어 있는 영역이라고 판단되지 않은 경우에 그 결과를 외부로 출력한다.
(7) (3)에서 결정된 단위영역의 여분도를 1 증가시킨다.
(8) (2)에서 명령이 배치요소를 제거하라는 것으로 판단되었을때에 단위영역으로부터 제거하라고 명령된 것과 배치요소가 일치되는 것이 있는지의 여부를 판단한다. 둘다 일치되면 (9)로 진행하고 그렇지 않으면 (12)로 진행한다.
(9) 배치요소에 대응하는 영역내의 여분도가 1인지의 여부를 판단한다. 1일 경우에 (10)으로 진행하고 1이 아닐 경우에 (11)로 진행한다.
(10) 배치요소에 대응하는 영역의 여분도가 1인 경우에 여분도를 0으로 설정하여 가상 배치영역내에 관련 데이타를 동시에 삭제한다.
(11) 여분도가 1이 아닌 경우에 여분도를 1만큼 감소시킨다.
(12) (8)에서 상기 단위영역내에 배치된 배치요소가 한 배치요소와 일치하지 않을 때, 그 결과를 외부로 출력한다.
제 13 도 및 제 14 도에 나타낸 앨고리즘에 있어서 배치요소가 지정단위영역에 배치될 수 있는지의 여부를 시험할 수 있는 것이 중요하다.
다시 말하면 배치요소가 이동되는 새로운 위치에(동일형의) 배치요소가 배치되었는지의 여부를 체크하는 것이 극히 중요하다.
이것은 실제 집적회로를 설계하는데 있어서 동일위치에 하나 이상의 셀을 배치할 수 없기 때문이고 영역내 배치되는 배선의 체적이 한정되기 때문이다.
제 15A 도는 본 발명에 의한 요소의 배치확률을 체크하기 위한 앨고리즘을 나타내고 있다.
(1) 좌표값(X,Y)을 갖는 단위영역내의 배치요소의 배치는 처리를 스타트하게 한다[제 5 도에 나타낸 단위영역에 배치요소를 배치하라는 명령을 받은 것으로 한다].
(2) 단위영역의 결정은 좌표값(X,Y)을 갖는 단위영역내의 배치요소 영역이 결정될 수 있게 한다[포인터 기억부(33)가 제 5 도에 나타낸 배치요소(A)를 얻는다].
(3) 가상 배치영역내의 배치요소영역이 비어 있는지의 여부가 판단된다. 가상 배치요소영역이 배치요소영역내에 복수의 데이타를 기억시킬 수 있다. 가상 배치영역내의 배치요소영역내에 얼마나 많은 데이타가 기업되었는지(얼마나 많은 보이드가 있는지) 조사된다[내부가상 배치영역 배치요소(B) 기억부(38)내의 가상 배치영역의 배치영역(A) 영역(38')내에 기억영역(38'-1,38'-2)가 비어 있는지 조사된다. 제 5 도 참조].
(4) (3)에서 긍정적 판단결과(YES)인 경우에 배치요소가 가상 배치영역내의 배치요소영역내에 배치가능한 것으로 결론지워진다.
(5) (3)에서 부정적판단(NO)인 경우에 배치요소가 가상 배치영역내의 배치요소영역내에 배치 불가능한 것으로 결론지워진다.
배치요소가 복수의 단위영역에 거쳐서 배치되었을때에 배치요소의 각부가 그 대응단위영역에 배치될 수 있는 것인지의 여부를 조사한다. 배치요소의 전체부가 그들의 대응단위영역에 배치될 수 있을때만 배치요소는 이동이 허가된다.
상술한 바와 같이 배치요소영역은 복수의 데이타를 기억할 수 있다. 여기서 복수의 데이타수는 실제 배치의 제한수보다 크다. 그 이유를 예로서 셀 이동을 들어 이하에 설명하겠다.
복수의 셀은 동일위치에 적층될 수 없다. 즉 셀은 다른 셀을 배치하는 위치에 배치할 수 없다. 작은 셀은 그 새로운 위치로서 비어 있는 단위영역을 찾기 어렵지 않지만 큰 셀은 그 새로운 위치로서 비어 있는 단위영역을 찾는 큰 어려움이 있다.
큰 셀을 이동시키지 않고 단지 작은 셀만 이동한다면 배치의 최종제품으로서 얻어지는 배선은 초기배치에 너무나 많이 의존되고 그것은 실로 유용하지 못하다.
그와 같은 경우에 복수의 셀이 가상적으로 동일위치에 배치되고 큰 셀은 용이하게 이동되게 한다. 가상이라고 한 이유는 셀이 적층된 상태가 실제 설계에서 불가능하기 때문이다. 그러나 이 문제는 셀의 중복이 반복이동후에 최종적으로 클리어되기 때문에 이 문제는 해결된다.
제 15B 도는 종래 기술에 의한 요소 배치 확률을 체크하는 앨고리즘을 나타내고 있다.
그 동작을 이하에 다음 번호에 따라서 설명하겠다.
(1) 좌표위치(X,Y)로의 배치요소의 이동이 처리를 스타트시킨다.
(2) 이동될 배치요소를 제외하고 모든 배치요소(예 : 셀들)위의 좌표위치(X',Y')의 데이타를 추출함으로써 처리된다.
(3) 좌표위치(x,y)와 좌표위치(x',y')와의 비교결과가 일치를 나타내면 다음 배치요소가 계수치를 1만큼 증가 처리된다.
불일치를 나타내면 다음 배치요소가 계수치를 1만큼 증가시키지 않게 처리된다.
모든 셀에 대한 비교가 완료되었을 때에 실제 배치를 위한 제한수보다 적은지의 여부를 조사한다.
(5) 실제 배치를 위한 제한수보다도 계수치가 적을 경우에 배치요소가 가상 배치영역에 배치될 수 있는 것으로 결론지워진다.
(6) 실제 배치를 위한 계수치가 제한수와 같을 경우에 배치요소가 가상 배치영역에 배치될 수 있는 것으로 결론지워진다.
이와 같은 종래 기술은 배치요소의 새로운 위치에 다른 배치요소가 이미 배치되었는지의 여부를 판단하고 모든 배치요소의 위치가 조사될 필요가 있기 때문에 처리에 소요되는 시간이 너무 길다.
제 16 도는 좌표치를 생성하는 확률분포의 일예를 나타내고 있다.
본 발명은 제 6 도에 나타낸 배치데이타 입력부(58)을 통하여 예를들어 사용자에 의해서 공급되고 평균이 현재의 좌표치이고 분산을 파라미터로 한 변경좌표위치의 생성 확률로서 정규분포를 사용한다.
예를들면 좌표위치(x,y)는 다음 생성확률 분포를 사용하여 생성된다. 여기서 Ux 및 Uy는 현재의 좌표위치(x,y)의 분산을 나타낸다.
f(x)=2(π)-1/2Ux-1exp·[-(X-X)2/2Ux2]
f(y)=2(π)-1/2Uy-1exp·[-(Y-Y)2/2Uy2]
다음 설명에서 좌표위치는 BC단위이고 정수 ±0.5가 정수범위이다.
제16도(a)는 본 발명에 의한 배치변경에 있어서의 X 좌표위치의 생성확률 분포의 일예를 나타내고 있다. 도면은 현재의 좌표위치(X)를 평균으로 하고 분산을 Ux로 한 정규분포(x=0, 분산=1)을 나타낸다. 즉 상기 식은 아래식으로 나타내어진다.
f(x)=2(π)-1/2Ux-1exp·(-X2/2)
생성확률 분포 생성으로서는 큰 셀을 이동되기 어렵게 하기 위하여 셀의 치수를 파라미터로 하고 X 좌표치의 평균을 현좌표위치(X)로 하고 X 좌표치의 분산을 Ux/S로 하고 Y 좌표치의 평균을 현좌표위치(y)로 하고 Y 좌표치의 분산을 Uy/S로 하게 확률분포를 생성할 수 있다.
f(X)=2(π)-1/2(Ux/S)-1exp·[-(X-X)2/2(Ux/S)2]
f(Y)=2(π)-1/2(Uy/S)-1exp·[-(Y-Y)2/2(Uy/S)2]
셀이 클수록 상기 생성확률 분포에 의한 분산이 작으므로 셀이 움직이기 어렵게 된다.
또는 제 8 도에 나타낸 셀(C)등의 복수의 단위영역위에 단일 셀이 배치되었는지의 여부를 나타내는 셀의 크기에 의한 셀의 움직임의 용이도를 조정하기 위하여 X 좌표치와 Y 좌표치의 분산을 Ux/S, Uy/S 대신에 Ux/S1/2, Uy/S1/2로 하여도 좋다.
또, 제 8 도의 (a)에 나타낸 것과 같이 게이트 어레이를 배치할 경우에 2컬럼으로 된 게이트 어레이의 배치영역 내에서 현재의 좌표위치가 좌측(기수 X 좌표위치)일 때에는 우측으로 이동되기 쉽게 하고 현재의 좌표위치가 우측(우수 X 좌표위치)일 때에는 좌측으로 이동되기 쉽도록 정규분포를 설정하여도 좋다.
이들 정규분포를 설정하는 이점을 제 8 도의 (a)를 참조하여 더 상세하게 설명하겠다. 이들 설정방법의 사용은 새로운 좌표위치가 원래대로 동일 2컬럼조(예 컬럼 1 및 2)내에 있기 어렵기 때문에 새로운 좌표위치를 받아들이기 쉽게 한다.
예를들면 셀(X)이 (3,3)일 때에 새로운 좌표위치로서 (4,3)이 선택되면 게이트 어레이의 동일 2 컬럼내에 셀(X)이 남아 있으므로 새로운 배치는 용이해진다. 그러나 새로운 좌표위치로서 (2,3)이 선택되면 셀(X)이 일반적으로 채널영역 외부에 있으므로 새로운 좌표위치를 받아들임이 용이하지 않다.
예를들어 정의 실수(aodd)와 부의 실수(aeven)을 파라미터로 하여 현재의 좌표위치(x,y)에 대해서 기수위치에 있는 경우에는 X 좌표치 생성에 있어서는 평균과 분산은 각각 x+aodd와 Ux/S1/2이고 한편 Y 좌표치 생성에 있어서는 마찬가지로 평균과 분산이 각각 y+aodd와 Uy/S1/2이다.
여기서, aodd>0이다.
또 현재의 좌표위치(x,y)에 대해서 우수 위치에 있는 경우에는 X 좌표치 생성에 있어서는 평균과 분산이 각각 X+aeven, Ux/S1/2이고 한편 Y 좌표치 생성에 있어서는 마찬가지로 각각 y+aeven과 Uy/S1/2이다.
제 16 도의 (b)는 현재위치에 비대칭의 정규분포를 나타내고 있다.
상기 예 이외의 셀역사를 나타내는 파라미터에 의해서 과거에 평균이동거리가 큰 셀일수록 정규분포의 분산을 크게 하여도 좋다. 제 6 도에 나타낸 확률분포 생성부(85)는 그와 같은 분포를 생성한다.
배치가 금지된 BC 근방의 데이타를 파라미터로 하고 배치가 금지된 BC를 제거하고 새로운 생성좌표치를 새로운 X 좌표위치로서 해석해도 좋다. 예를들면 현재의 좌표위치의 우측의 배치가 금지되어 있는 BCS가 2개 계속해서 있는 경우에 새로운 좌표위치로서 현재의 X 좌표치보다 3이 큰 좌표위치가 생성되면 그때에는 새로운 좌표치를 현재의 X 좌표치보다도 5가 큰 것으로 한다.
또 생성확률 분포는 집적회로의 크기, 문제의 셀수, 및 시뮬레이숀아닐링법(상세하게는 후술한다)의 경우에 사용되는 온도나 각종 에너지에 의해서 정규분포의 분산을 줄이는 등 정규분포나 분산을 바꿈으로써 다양하게 변경할 수 있다.
또 처음부터 상기 확률분포에 의해서 좌표위치를 생성하지 않고 초기에 랜덤하게 좌표위치를 생성함으로써 배치변경을 반복하여 개략위치를 한 후에 확률론적으로 좌표치를 생성하는 것이 효과적이다.
제 17 도는 본 발명의 좌표위치 생성에 관한 구성을 상세히 나타내고 있다.
제 17 도에서 182는 입력 파라미터를 기억하는 파라미터 기억부이고 183은 제어부이고 184는 난수 발생부이고 185는 파라미터와 난수에 준하여 좌표위치를 생성하는 좌표위치 계산부이다.
제 18 도는 본 발명의 좌표위치 생성부를 위한 앨고리즘을 나타내고 있다.
더 구체적으로는 제 18 도는 제 17 도에 나타낸 구성하의 동작을 나타내고 있다.
앨고리즘을 번호(제17도 도시)에 의해서 설명하겠다.
(1) 좌표치를 생성하라는 명령을 받으면 좌표치 생성부(84)를 작동시킨다.
(2) 확률분포 생성부(85)는 파라미터 기록부(182)로부터 좌표치를 생성하는데 필요한 파라미터를 취한다. (더 구체적으로는 제어부(183)는 파라미터 기억부(182)로부터 좌표치를 생성하는데 필요한 파라미터를 취하여 좌표 계산부(185)로 공급한다)
(3) 좌표치 위치 계산부(185)로부터 명령을 받았을 때에 제어부(183)은 난수발생부(184)로부터 필요한 난수를 취한다.
(4) 제어부(183)는 좌표치 계산부(185)로 난수를 공급한다.
(5) 제어부(183)는 좌표치 계산부(185)에 의해서 계산된 좌표치를 독출한다.
(6) 제어부(183)는 생성된 좌표치가 적절한지의 여부를 판단한다. 적절하지 않을 경우에 (3)으로 되돌아가 처리를 반복하고 적절한 경우에 (7)로 진행된다.
(7) 확률분포 생성부(85)는 생성된 좌표치를 외부로 출력한다.
(1) 이후의 처리를 반복하여 모든 셀에 대해서 좌표를 생성한다.
제 19 도는 본 발명을 적용시킨 시뮬레이티드 아닐링법의 앨고리즘을 나타내고 있다.
이 시뮬레이숀 아닐링법 셀과 배선의 여분도를 고려하여 배치되어 있는 상태에서의 에너지를 산출한다.
새로운 상태와 현상태의 에너지를 비교하여 온도를 파라미터로 하고 설정되어 있는 온도와 에너지의 차로 정해지는 배치변경을 하는지의 여부를 결정하기 위한 기준으로서 지수를 산출한다.
기준의 지수와 비교하여 신배치를 채용할 것인지의 여부를 결정하기 위하여 랜덤하게 발생된 수치를 선택한다.
지수와 선택된 수와의 비교를 비교하여 선배치로 하느냐 현재의 배치를 변경하지 않는냐를 선택할 수 있다. 온도를 변경하면서 처리를 반복하여 셀의 중복이 없게 되고 또는 배선길이 감소를 통한 에너지가 최소로 되는 최적배치가 얻어질 때까지 처리를 반복한다.
셀의 여부개념을 이하에 설명하겠다.
그 개념은 단위영역에 적용된다.
더 구체적으로는 셀의 여분은 복수의 동일 단위영역을 점유한 특이의 셀을 말한다.
제 7 도에 나타난 예에 있어서 동일 단위영역에 3개의 셀영역, (그중 2개가 셀수(127,213)을 기록하고 나머지 하나가 기록하지 않는다)이 동일 단위영역에 상당하면 단위영역이 셀의 여분은 2이다. 그러나 여기서 셀의 여분은 동일배선에 대한 여분도와는 다른 것임을 주목해야 한다.
제 14 도에 나타낸 번호에 의해서 앨고리즘을 설명하겠다.
(1) 처리를 개시한다.
(2) 배치를 초기배치상태로 설정한다(초기화) 초기화로서는 가상 배치영역으로서 데이타 에어리어와 각종 파라미터가 설정된다.
(3) 종료판정을 한다. 종료하지 않으면 (4)로 진행한다. 최적 배치가 얻어진 후에 종료할 경우에는 (11)로 진행하여 처리를 종료한다.
제 3 도의 (5)에 설명한 것과 마찬가지 조건이 종료조건으로서 사용된다.
(4) 온도(T)를 갱신한다.
사용자는 예를들면 식 T=To∝K에 의해서 온도(T)의 갱신폭을 결정한다.(즉 증가변경 또는 감소변경) 여기서 To는 초기온도이고 ∝는 0과 1 사이의 실수이고 K는 갱신수이다.
(5) 상태변경의 대상이 되는 배치요소를 예를들어 차례로 배치요소의 각 종류에 대해서 선택한다.
(6) 선택된 배치요소에 대한 다음 상태(좌표치 등)를 선택하여 신배치를 위한 좌표를 얻는다.
(7) 제 3 도에 나타낸 (2)와 마찬가지로 현상태와 선택된 상태간의 에너지의 차(△E)를 계산한다. 그리고 △E에 준하여 좌표변경을 판정하는데 사용하는 기준지수 exp(-K△E/T)를 산출한다.
(8) 0~1간의 균일한 난수로서 수치(P)를 선택한다.
(9) 조건 P<exp(-K△-E/T)를 만족시키느냐를 판정한다. 조건 만족시에는 (10)으로 진행한다. 조건 불만족시에는 (3)으로부터 반복한다.
(10) 신배치를 위한 후보인 신상태를 현상태로서 채용한다.
상기 앨고리즘의 조건(9)은 현상태와 선택된 상태(신상태)간의 에너지차(△E)(>0)가 온도(T)에서 작을 경우에 난수(P)가 에너지화(△E)가 클 경우보다도 (9)로 나타낸 조건을 만족시키기 쉽다는 관계를 나타낸다.
또 온도(T)가 높을 경우에는 낮을 경우보다도 난수(P)가 (9)로 나타낸 조건을 만족시키기 쉽기 때문에 신상태가 선택되기 쉽다는 관계를 나타낸다.
시뮬레이티드 아닐링법은 상기 처리를 각 셀에 대해서 차례로 실행하고(1 이포크(epoch), 최적배치가 얻어질 때까지 이포크를 반복한다.
또 본 발명은 회로요소의 배치를 구하는 경우에 더하여 전화교환국의 배치 설계와 같은 기타 배치 설계에 적용시킬 수 있다.
또 본 발명은 시뮬레이티드 아닐링법 뿐만 아니라 유전자를 모델로 한 GE(genetic algorithm) 등의 기타 앨고리즘에도 적용시킬 수 있다.
GA법은 예를들면 유전자라고 칭하는 복수의 코드를 초기에 제공함으로써 적절한 코드로서 배치상태를 나타낸다.
2개의 유전자의 돌연변이(부호의 랜덤변경)와 부분교환을 일으켜 새로운 유전자조를 얻는다. 더 좋은 유전자조가 유전자조중의 유전자 맴버에 대해서 적절한 대상 기능을 적용시킴으로써 선택된다.
이상 상세히 설명한 바와 같이 본 발명은 배치/루팅에 필요한 배선 또는 셀등의 배치 요소의 데이타를 배치영역에 있어서의 단위영역에 대응시켜 가상 배치영역에 배치하도록 하였으므로 배치변경이 더 용이하게 행할 수 있다. 또 본 발명은 데이타를 대량으로 설정할 수 있기 때문에 배치/루팅을 하는데 필요한 위치 및 형태에 의존한 작은 제약들을 평가할 수 있게 한다.
또 본 발명은 병렬 컴퓨터시스템의 각 프로세서 요소에 단위영역의 그룹을 대응시켜 병렬컴퓨터를 설계하는 시스템에 극히 용이하게 적용시킬 수 있다.
또 본 발명에 의한 배치변경 방법은 최적배치를 얻는데 필요한 처리시간을 좌표치를 생성하는 확률분포를 변경할 수 있기 때문에 단축할 수 있다.
본 발명은 집적회로를 설계하는 반도체 공업에 의해서 사용될 뿐만 아니라 소정의 영역에 배치요소의 최적배치를 설계하는 시스템을 요구하는 기타 각종 공업 분야에 의해서도 사용된다.

Claims (20)

  1. 배치요소에 관한 배치요소 데이타를 기억하는 배치요소 기억수단(22)과, 상기 배치요소의 배치를 설정하고 그 결과를 출력하기 위한 배치/루팅수단(21)을 구비한 배치 설계 시스템에서 사용되는, 배치요소의 배치 설계 시스템에 있어서, 상기 배치/루팅수단(21)이 상기 각 배치요소를 배치하기 위한 단위영역에 관한 단위영역데이타를 기억하기 위해 분할된 단위영역 데이타 기억수단(31)을 포함하는 배치영역과 ; 각각 가상 배치영역(38',39')내의 배치요소에 관한 배치요소 데이타를 가상으로 기억하기 위해 각종 배치요소에 대해 설치되는 복수의 내부 가상 배치요소 위치기억수단(38,39)과; 상기 단위영역과 대응하는 상기 내부가상 배치요소 위치기억수단(38,39)내에 기억된 배치요소 데이타를 특정하는 포인터 기억수단(33)과 ; 상기 가상배치영역(38',39')내에 기억된 그의 배치요소 데이타가, 상기 포인터 기억수단(33)에 의해 특정된 배치요소 데이타에 따라서 상기 단위영역 데이타 기억수단(31)내의 각 단위영역내에 배치되도록 상기 배치영역내의 배치요소들의 배치를 설정하는 배치 제어수단(29) 및 ; 상기 배치설정 결과를 출력하기 위한 배치출력수단(47)을 구비함을 특징으로 하는 배치요소 배치 설계 시스템.
  2. 제 1 항에 있어서, 상기의 복수의 가상 배치영역(38',39')이 각각의 제한 숫자를 초과하는 수의 동종의 배치요소 데이타를 상기 단위영역에 대응하여 기억하도록 다층(38'-1,38'-2, 39'-1, 39'-2 및 39'-3)으로 구성된 것이 특징인 배치요소 배치 설계 시스템.
  3. 제 1 항에 있어서, 상기 단위영역 데이타 기억수단(31)은 상기 배치영역으로부터 분할된 상기 단위영역의 위치들을 기억하며, 상기 단위영역은 게이트 어레이 배치영역들간에 복수의 게이트 어레이 배치영역과 배선채널영역을 구비하고 있고 ; 상기 복수의 게이트 어레이 배치영역이 게이트 어레이내의 셀의 고정단위인 기본 셀들의 치수에 대응하는 단위영역들을 포함한 것이 특징인 배치요소 배치 설계 시스템.
  4. 제 1 항에 있어서, 상기 복수의 내부가상 배치요소 위치기억수단(38,39)중 하나가 상기 배치영역내의 동일 단위영역내에 배치된 배치요소들의 여분도를 기억하기 위한 여분도 기억영역(46)을 구비하고 있고 ; 상기 배치제어수단(29)이 상기 배치영역을 단위영역들로 분할하고, 이 분할결과를 상기 단위영역 데이타 기억수단(31)에 기억시키는 단위영역 데이타 생성수단(30)과 ; 상기 포인터 기억수단(33)내에 기억될 상기 단위영역에 대응하는 포인터를 생성하는 포인터 생성수단(32)과 ; 상기 배치영역내의 배치요소들의 배치의 변경이 필요한가 여부를 배치 데이타 생성수단(42)에 의해 생성된 배치 데이타를 사용함으로써 판정하기 위한 배치 변경 필요성 판정수단(48)과 ; 상기 배치 변경 필요성 판정수단(48)이 배치변경 필요성을 판정한 후에 채용된 배치에 의해서 신배치 데이타를 생성하기 위한 기초가 되는 신 좌표치를 생성키 위한 확률분포를 생성하는 확률분포 생성수단(45) 및 ; 상기 확률분포 생성수단(45)에 의해 생성된 상기 확률분포를 사용하여 배치용 신좌표위치를 생성하고, 이 신좌표위치 생성결과를 상기 단위영역 데이타 생성수단(30), 상기 포인터 생성수단(32) 및 복수의 배치요소 생성수단(34,35)에 출력하는 좌표위치 생성수단(44)을 구비한 것이 특징인 배치요소 배치 설계 시스템.
  5. 제 1 항에 있어서, 상기 배치요소 기억수단(22)이 셀의 명칭과 치수등의 셀데이타와, 단자의 명칭과 유형등의 단자 데이타와, 배선폭등의 배선 데이타 및 통공에 관한 통공 데이타를 기억하기 위한 배치요소 화일(52)을 구비하고 있고 ; 상기 복수 유형의 배치요소에 대응하는 상기 복수의 내부가상 배치요소 위치기억수단(38,39)이 각각 셀배치 기억수단(78), 단자배치 기억수단(79), 통공배치 기억수단(80) 및 여분도 기억영역(83')을 갖는 배선배치 기억수단(81)을 구비하며 ; 상기 복수의 배치요소 생성수단(34,35)이 각각, 셀배치 데이타를 상기 셀배치 기억수단(78)에 출력하기 위한 셀배치 생성수단(74)과, 단자배치 데이타를 단자배치 기억수단(79)에 출력하기 위한 단자배치 생성수단(75)과, 통공배치 데이타를 상기 통공배치 기억수단(80)에 출력하기 위한 통공배치 생성수단(77) 및 배선 데이타를 상기 배선배치 기억수단(81)과 여분도 판정수단(43)에 출력하는 배선배치 생성수단(77)을 구비한 것을 특징으로 하는 배치요소 배치 설계 시스템.
  6. 제 1 항에 있어서, 상기 단위영역 데이타 기억수단(31)내에 위치가 기억되 있는 단위영역이 각각 셀과 배선중 하나를 배치하기 위한 단위영역(91,93)과, 배선, 단자 및 통공 중 하나를 배치하기 위한 단위영역(92)을 구비하고 있고 ; 상기 포인터 기억수단(33)내에 기억된 포인터가 상기 배선 배치 기억수단(81)내에 기억된 배선에 관한 배선 데이타를 각각 기억하는 복수의 배선영역층(96-1~96-6)중 제 1 층(96-1)을 상기 단위영역(91)내에 배치되도록 특정하는 포인터와 ; 상기 셀 배치 기억수단(78)내에 기억된 셀에 관한 데이타를 기억하는 복수의 셀영역층(97-1~97-3)중 제 1 층(97-1)을 상기 단위영역(91)내에 배치되도록 특정하는 포인터와 상기 단자 배치 기억수단(79)내에 기억된 단자에 관한 단자 데이타를 각각 기억하는 복수의 단자영역층(99-1~99-2)중 제 1 층(99-1)을 상기 단위영역(92)내에 배치되도록 특정하는 포인터와 ; 상기 통공배치 기억수단(81)내에 기억된 통공에 관한 통공 데이타를 기억하는 복수의 통공영역(98)을 상기 단위영역(92)내에 배치되도록 특정하는 포인터를 포함하는 것을 특징으로 하는 배치요소 배치 설계 시스템.
  7. 제 5 항에 있어서, 상기 셀배치 기억수단(78)이 상기 배치영역내의 복수의 단위영역들 위에 배치된 단일 셀의 각 부분들에 관한 데이타를 상기 단위영역들에 각각 대응하는 복수층의 셀 영역들중 단일층내에 기억시키는 것이 특징인 배치요소 배치 설계 시스템.
  8. 제 5 항에 있어서, 상기 셀 배치 기억수단(78)이 상기 배치영역내의 복수의 단위영역들 위에 배치된 단일 셀의 각 부분들에 관한 데이타를 상기 단위영역들에 각각 대응하는 복수층의 셀 영역들중 상이한 충들에 기억시키는 것이 특징인 배치요소 배치 설계 시스템.
  9. 제 5 항에 있어서, 상기 여분도 기억영역(83')은 여분도로서 상기 배선배치 기억수단(81)내의 복수층의 배선영역에 대응하여 동일단위 영역들에 배치된 동일 배선들의 각 번호를 기억시키는 것이 특징인 배치요소 배치 설계 시스템.
  10. 제 5 항에 있어서, 상기 단위영역 데이타 기억수단(31)내에 기억된 단위영역 데이타가 상기 배치영역으로부터 분할된 각 단위영역들의 단위영역 번호와 상기 단위영역내에 배치될 수 없는 배치요소 유형과, 포인터 기억위치를 상기 포인터 기억수단(33)내의 상기 단위영역내에 배치되는 배치요소에 관한 내부가상 배치요소 데이타에 특정하는 포인터를 포함하며 ; 상기 포인터 기억수단(33)내에 기억된 포인터 데이타는 상기 단위영역들에 각각 대응하는 셀영역 배치영역, 단위영역 및 통공영역에 대한 포인터를 포함하며 ; 상기 셀 배치 기억수단(78)내에 기억된 셀 배치 데이타가 복수층의 각 셀 영역들에 대해서, 셀 영역 번호와 셀들을 배치하기 위한 단위영역위치등의 셀영역 데이타를 포함하며, 상기 배선 배치 기억수단(81)내에 기억된 배선 배치 데이타가 복수층의 각 배치영역에 대해서, 배선의 여분도와 배선을 배치하기 위한 셀의 셀번호등의 배치영역 데이타를 포함하고 있는 것이 특징인 배치요소 배치 설계 시스템.
  11. 제 5 항에 있어서, 상기 셀 배치 생성수단(74)이 ; 복수의 단위영역들 위에 배치된 단일셀의 전부분들의 셀 배치처리가 완료됐는가 여부를 판정하는 제 1 수단과 ; 상기 제 1 수단의 판정이 부정인 경우에 상기 단일셀내의 아직 처리안된 부분들중 하나를 선택하는 제 2 수단과 ; 상기 단일셀의 상기 부분을 배치하기 위한 위치와 상기 단일셀내의 상기 선택된 부분들의 관련위치로부터 상기 제 2 수단에서 선택된 상기 부분에 대응하는 단위영역을 얻기 위한 제 3 수단과 ; 상기 선택된 부분을 상기 단위영역내에 배치하기 위한 제 4 수단과 ; 상기 제 4 수단의 결과가 성공적인가 여부를 판정하고, 긍정인 경우 상기 제 1 수단으로 복귀시키는 제 5 수단과 ; 상기 제 5 수단에서 부정 판정의 경우에 실패를 표시하는 결과를 외부로 출력하는 제 6 수단 및 ; 상기 제 1 수단에서 긍정 판정의 경우에 셀 배치처리를 종료하는 제 7 수단을 구비한 것이 특징인 배치요소 배치 설계 시스템.
  12. 제 5 항에 있어서, 상기 셀 배치 생성수단(74), 상기 단자배치 생성수단(75) 및 상기 통공배치 생성수단(76)이 ; 대응하는 배치요소의 배치를 변경하는 명령을 수신하는 제 1 수단과 ; 상기 명령이 배치요소의 배치 또는 제거에 대한 것인가를 판정하는 제 2 수단과 ; 상기 제 2 수단의 판정이 배치인 경우, 상기 배치요소를 배치하기 위한 단위영역이 비어 있는가 여부를 판정하는 제 3 수단과 ; 상기 제 3 수단에서 긍정판정인 경우, 필요한 데이타를 빈 영역내에 기록하는 제 4 수단과 ; 상기 제 3 수단에서 부정판정인 경우, 빈 영역이 없으면, 그 결과를 외부로 출력하는 제 5 수단과 : 상기 제 2 수단에서의 판정이 제거된 경우, 배치요소가 상기 배치요소의 단위영역으로부터의 제거 명령된 것과 매치하는가 여부를 판정하는 제 6 수단과 ; 상기 제 6 수단에서 긍정판정인 경우, 상기 배치요소의 단위영역으로부터 데이타를 제거하는 제 7 수단과 및 ; 상기 제 6 수단에 의한 판정결과 부정인 경우, 명령된 배치요소와의 미스매치를 통지하는 메시지를 외부로 출력하는 제 8 수단을 구비한 것이 특징인 배치요소 배치 설계 시스템.
  13. 제 5 항에 있어서, 상기 배선 배치 생성수단(77)이 ; 배선의 배치를 변경하라는 명령을 수신하는 제 1 수단과 ; 배선의 배치 또는 제거 명령인가 여부를 판정하는 제 2 수단과 ; 상기 제 2 수단에서 판정이 배치인 경우, 상기 배선을 배치하기 위한 소정의 단위영역이 상기 배선과 배치되는 것을 갖고 있는가 여부를 판정하는 제 3 수단과 ; 상기 제 3 수단에서 부정 판정인 경우, 상기 배치요소를 배치하기 위한 소정의 단위영역이 빈 영역을 갖고 있는가 여부를 판정하는 제 4 수단과 ; 상기 제 4 수단에서 긍정 판정인 경우, 필요한 데이타를 자유 단위영역내에 기록하고 여분도로서 [1]을 대응하는 가상영역중에 기입하는 제 5 수단과 ; 상기 제 4 수단에서 부정 판정인 경우, 그 결과를 외부로 출력하는 제 6 수단과 ; 상기 제 3 수단에 의한 판정결과 긍정인 경우, 상기 단위영역내의 상기 배선의 여분도로서 [1]을 증가시키는 제 7 수단과 ; 상기 제 2 수단의 판정이 제거인 경우, 배선이 단위영역으로부터 제거명령된 것과 배치되는가 여부를 판정하는 제 8 수단과 ; 상기 제 8 수단에서 긍정판정인 경우, 상기 배치요소에 대응하는 영역내의 여분도가 [1]인가 여부를 판정하는 제 9 수단과 ; 상기 제 9 수단에서 긍정 명령의 경우에, 상기 여분도를 [0]으로 설정하고 동시에 상기 가상배치영역내의 관련 데이타를 삭제하는 제 10 수단과 ; 상기 제 9 수단에서 부정판정인 경우, [1]이 아닌 여분도를 [1]씩 감소시키는 제 11 수단 및 ; 상기 제 8 수단에서 부정판정인 경우, 단위영역으로부터 제거명령된 것과 매치하는 것이 없음을 외부로 출력하는 제 12 수단을 구비한 것이 특징인 배치요소 배치 설계 시스템.
  14. 제 5 항에 있어서, 셀 배치 확률을 점검하기 위한 상기 셀 배치 생성수단(74)과 단자 배치확률을 점검하기 위한 상기 단자 배치 생성수단(75)과 배치확률을 점검하기 위한 상기 통공배치 생성 생성수단(76) 및, 배선 배치확률을 점검하기 위한 상기 배선배치 생성수단(77)이 각각 : 그의 위치가 좌표치(x,y)로 특정되는 단위영역내에 배치요소를 배치하라는 명령을 수신하는 제 1 수단과 ; 상기 좌표치에 의해 특정된 상기 단위영역내에 배치되는 배치요소의 배치요소 데이타를 기억하는 가상 배치영역을 구하는 제 2 수단과 ; 상기 가상 배치영역이 비어 있는가 여부를 판정하는 제 3 수단과 ; 상기 제 3 수단에서 긍정 판정의 경우에, 상기 배치요소를 배치할 수 있음을 판정하는 제 4 수단과 ; 상기 제 3 수단에 의한 판정결과가 부정일 때 상기 배치요소를 배치할 수 없음을 판정하는 제 5 수단을 구비한 것이 특징인 배치요소 배치 설계 시스템.
  15. 제 4 항에 있어서, 회로의 배선 데이타를 포함하는 배치 데이타(24)를 상기 배치제어 수단(29)에 입력하고, 상기 배치 제어수단(29)내의 확률분포 생성수단(45)에 확률분포를 생성하기 위한 상수를 포함한 파라미터(25)를 입력하기 위한 배치 데이타 입력수단(23)을 더 구비한 것이 특징인 배치요소 배치 설계 시스템.
  16. 제 15 항에 있어서, 상기 확률분포 생성수단(45)이 상기 배치 데이타 입력수단(23)으로부터 파라미터(25)의 일부로서 공급된 변수 Ux와 Uy를 사용하여, 현재 좌표치(x,y)의 동등한 평균을 갖는 정규분포에 의해 신좌표치(X,Y)를 생성하기 위한 확률분포를 생성하고,
    f(X)=2(π)-1/2Ux-1exp·[-(X-x)2/2Ux2]
    f(Y)=2(π)-1/2Uy-1exp·[-(Y-y)2/2Uy2]
    상기 좌표치 생성수단(44)이 상기 확률분포에 의하여 신좌표위치를 생성하는 것이 특징인 배치요소 배치 설계 시스템.
  17. 제 15 항에 있어서, 상기 확률분포 생성수단(45)이 상기 배치 데이타 입력수단(23)으로부터 파리미터(25)의 일부로서 공급된 변수 Ux와 Uy와, 상기 단일 셀이 배치된 단위영역의 번호에 의해서 단일 셀의 치수로서 정의된 s를 사용하여 현재 좌표치(x,y)와 동등한 평균을 갖는 정규분포에 의해 신좌표치(X,Y)를 생성하기 위한 확률분포를 생성하고,
    f(X)=2(π)-1/2(Ux/s)-1exp·[-(X-x)2/2(Ux/s)2]
    f(Y)=2(π)-1/2(Uy/s)-1exp·[-(Y-y)2/2(Uy/s)2]
    상기 좌표치 생성수단(44)이, 상기 확률분포에 의하여 신좌표위치를 생성하는 것이 특징인 배치요소 배치 설계 시스템.
  18. 제 15 항에 있어서, 상기 확률분포 생성수단(45)이 현재 좌표치(x,y)를 사용하여 양의 실수 aodd와 음의 실수 Aeven, 평균 x+aodd와 y+aodd를 갖는 확률분포의 제 1 세트와 평균 x+aeven와 y+aeven를 갖는 확률분포의 제 2 세트를 생성하며 ; 상기 좌표위치 생성수단(44)이 상기 제 1 세트의 확률분포와 제 2 세트의 확률분포중 어느 하나를 사용하여 현좌표치(x,y)에 의한 신좌표치를 생성하는 것이 특징인 배치요소 배치 설계 시스템.
  19. 제 15 항에 있어서, 상기 확률분포 생성수단(45)이 난수를 발생키 위한 난수발생수단(184)과, 좌표치 산출을 위한 좌표치 산출수단(185)과, 상기 난수발생수단(184)과 상기 좌표치 산출수단(185)을 제어하기 위한 제어수단(183)을 구비하고 있고 ; 상기 좌표위치 생성수단(44)이 상기 파라미터 데이타 입력수단(23)으로부터 입력된 파라미터를 기억시키기 위한 파라미터 기억수단(182)을 더 구비한 것이 특징인 배치요소 배치 설계 시스템.
  20. 제 19 항에 있어서, 상기 좌표위치 생성수단(44)이 좌표위치 생성처리에 따라 좌표위치를 생성하고 ; 상기 제어수단(183)이 상기 난수발생수단(184)에 의해 발생된 난수를 수신하고 ; 상기 제어수단(183)이 상기 수신된 난수를 상기 좌표위치 산출부(185)에 공급하고 ; 상기 제어수단(183)이 상기 좌표치 산출수단(185)에 의해 산출된 좌표치를 독출하고 ; 상기 제어수단(183)이 상기 독출된 좌표치가 적정한가 여부를 판정하고 ; 상기 제어수단(183)이 적정한 것으로 판정하면 좌표치를 출력하고, 그렇지 않으면, 상기 난수발생수단(184)에 의해 발생된 난수를 수신하여 그의 처리를 반복하는 것이 특징인 배치요소 배치 설계 시스템.
KR1019920018978A 1991-10-15 1992-10-15 배치요소 배치설계 시스템 KR970008535B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP3266105A JP2601586B2 (ja) 1991-10-15 1991-10-15 配置要素の配置配線方法
JP91-266105 1991-10-15

Publications (2)

Publication Number Publication Date
KR930009077A KR930009077A (ko) 1993-05-22
KR970008535B1 true KR970008535B1 (ko) 1997-05-24

Family

ID=17426387

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920018978A KR970008535B1 (ko) 1991-10-15 1992-10-15 배치요소 배치설계 시스템

Country Status (5)

Country Link
US (1) US5475608A (ko)
EP (1) EP0538035B1 (ko)
JP (1) JP2601586B2 (ko)
KR (1) KR970008535B1 (ko)
DE (1) DE69232026T2 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5691913A (en) * 1994-03-28 1997-11-25 Matsushita Electric Ind. Co. Layout designing apparatus for circuit boards
US5640328A (en) * 1994-04-25 1997-06-17 Lam; Jimmy Kwok-Ching Method for electric leaf cell circuit placement and timing determination
US5535134A (en) * 1994-06-03 1996-07-09 International Business Machines Corporation Object placement aid
US5619419A (en) * 1994-09-13 1997-04-08 Lsi Logic Corporation Method of cell placement for an itegrated circuit chip comprising integrated placement and cell overlap removal
JPH08235150A (ja) * 1995-02-24 1996-09-13 Fujitsu Ltd シミュレーティド・アニーリングによる次候補生成装置および方法
US6516307B1 (en) 1995-02-24 2003-02-04 Fujitsu Limited Next alternative generating apparatus using simulated annealing and method thereof
US5796625A (en) * 1996-03-01 1998-08-18 Lsi Logic Corporation Physical design automation system and process for designing integrated circuit chip using simulated annealing with "chessboard and jiggle" optimization
JP3204381B2 (ja) * 1997-11-04 2001-09-04 エヌイーシーマイクロシステム株式会社 半導体装置の自動配置配線方法
US6099583A (en) * 1998-04-08 2000-08-08 Xilinx, Inc. Core-based placement and annealing methods for programmable logic devices
US6898773B1 (en) * 2002-01-22 2005-05-24 Cadence Design Systems, Inc. Method and apparatus for producing multi-layer topological routes
JP2003076734A (ja) * 2001-09-03 2003-03-14 Fujitsu Ltd 集積回路設計装置及び集積回路設計方法並びにプログラム
US6782518B2 (en) * 2002-03-28 2004-08-24 International Business Machines Corporation System and method for facilitating coverage feedback testcase generation reproducibility
US7340489B2 (en) * 2002-04-10 2008-03-04 Emc Corporation Virtual storage devices
US7113945B1 (en) * 2002-04-10 2006-09-26 Emc Corporation Virtual storage device that uses volatile memory
US7526739B2 (en) * 2005-07-26 2009-04-28 R3 Logic, Inc. Methods and systems for computer aided design of 3D integrated circuits
US7404166B2 (en) * 2005-10-24 2008-07-22 Lsi Corporation Method and system for mapping netlist of integrated circuit to design
WO2016153401A1 (en) * 2015-03-24 2016-09-29 Telefonaktiebolaget Lm Ericsson (Publ) Methods and nodes for scheduling data processing
CN109920787B (zh) * 2017-12-12 2021-05-25 中芯国际集成电路制造(北京)有限公司 互连结构的设计方法、装置及制造方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1502554A (ko) * 1965-12-01 1968-02-07
US4630219A (en) * 1983-11-23 1986-12-16 International Business Machines Corporation Element placement method
JPS60114968A (ja) * 1983-11-28 1985-06-21 Hitachi Ltd 推論システム
US4700316A (en) * 1985-03-01 1987-10-13 International Business Machines Corporation Automated book layout in static CMOS
US4918614A (en) * 1987-06-02 1990-04-17 Lsi Logic Corporation Hierarchical floorplanner
JPH02242474A (ja) * 1989-03-16 1990-09-26 Hitachi Ltd 素子配置最適化方法及び装置並びに最適配置判定方法及び装置
EP0431532B1 (en) * 1989-12-04 2001-04-18 Matsushita Electric Industrial Co., Ltd. Placement optimization system aided by CAD
US5208759A (en) * 1990-12-13 1993-05-04 Vlsi Technology, Inc. Method for placement of circuit components in an integrated circuit

Also Published As

Publication number Publication date
EP0538035B1 (en) 2001-08-29
EP0538035A2 (en) 1993-04-21
JPH05108759A (ja) 1993-04-30
US5475608A (en) 1995-12-12
KR930009077A (ko) 1993-05-22
DE69232026T2 (de) 2002-01-24
EP0538035A3 (ko) 1994-12-28
DE69232026D1 (de) 2001-10-04
JP2601586B2 (ja) 1997-04-16

Similar Documents

Publication Publication Date Title
KR970008535B1 (ko) 배치요소 배치설계 시스템
US5559718A (en) System and method for model-based verification of local design rules
KR100413861B1 (ko) 집적회로의표준셀영역내에예비셀을분배하기위한방법및장치
US6378110B1 (en) Layer-based rule checking for an integrated circuit layout
US4542458A (en) Method of and apparatus for assigning software resources to memory devices
US5778216A (en) Method for hierarchical time drive circuit layout by rebudgeting timing constraints of plurality of logical blocks after placement
US5818726A (en) System and method for determining acceptable logic cell locations and generating a legal location structure
EP0126525A1 (en) A method for manufacturing a gate array integrated circuit device
US20110145775A1 (en) Cell library, layout method, and layout apparatus
US10216883B2 (en) Integrated circuit and method of designing integrated circuit
US7818703B2 (en) Density driven layout for RRAM configuration module
US6066178A (en) Automated design method and system for synthesizing digital multipliers
KR20080051037A (ko) 회로 설계 지원 장치, 회로 설계 지원 방법, 회로 설계지원 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및프린트 기판의 제조 방법
CN111597768B (zh) 用于构建版图图案集的方法、设备和计算机可读存储介质
Rutman An algorithm for placement of interconnected elements based on minimum wire length
US3653072A (en) Process for producing circuit artwork utilizing a data processing machine
KR100291494B1 (ko) 노광데이타작성방법과노광데이타작성장치
US6086625A (en) Method and apparatus for designing a circuit by describing logic design information with a hardware description language
US10474038B2 (en) Method, system, and storage medium for resolving coloring conflict in multi-patterning lithography
US6189129B1 (en) Figure operation of layout for high speed processing
US5617328A (en) Automatic code pattern generator for repetitious patterns in an integrated circuit layout
JP3166847B2 (ja) プリント基板設計における配線収容性評価プログラムを記録した記録媒体および装置
Rose Computer aided design of printed wiring boards
JPH11238802A (ja) 自動配置配線方法及び自動配置配線装置
JPH0785117A (ja) 配線処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20081010

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee