KR20120075418A - 배선경로 작성프로그램 및 배선경로 작성방법 - Google Patents
배선경로 작성프로그램 및 배선경로 작성방법 Download PDFInfo
- Publication number
- KR20120075418A KR20120075418A KR1020110143369A KR20110143369A KR20120075418A KR 20120075418 A KR20120075418 A KR 20120075418A KR 1020110143369 A KR1020110143369 A KR 1020110143369A KR 20110143369 A KR20110143369 A KR 20110143369A KR 20120075418 A KR20120075418 A KR 20120075418A
- Authority
- KR
- South Korea
- Prior art keywords
- vector
- unprocessed
- wiring
- pattern
- point
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
하나의 드라이버와 복수의 드라이버를 배선하기 위한 배선경로를 작성하는 프로그램에 관하여, 총 배선길이가 최소가 될 수 있는 배선경로를, 그것이 복수 존재하는 경우에는 그 중에서도 최대 DR간 배선길이가 가장 작게 되도록 하는 배선경로를 자동적으로 구한다.
드라이버로부터 각 리시버로 향하는 복수의 벡터에 관하여, 임의의 2개의 벡터로 된 벡터 페어에 대하여 중복길이를 구하고, 그것이 최대인 것을 선택 벡터 페어로 한다. 이 선택 벡터 페어에 대하여, 도중까지를 공통화 하는 3종류의 결합점을 작성하여 벡터를 공통화하고, 3종류의 벡터 패턴을 얻는다. 이와 같은 작업을 반복해서, 벡터의 공통화가 종료한 시점에서 각 벡터 패턴을 결선후보로 한다. 결선후보 중에서 총 배선길이가 최소인 것을 최적 배선경로로 한다. 이것이 복수 있는 경우에는 최대 DR간 배선길이가 가장 작은 것을 최적 배선경로로 한다.
드라이버로부터 각 리시버로 향하는 복수의 벡터에 관하여, 임의의 2개의 벡터로 된 벡터 페어에 대하여 중복길이를 구하고, 그것이 최대인 것을 선택 벡터 페어로 한다. 이 선택 벡터 페어에 대하여, 도중까지를 공통화 하는 3종류의 결합점을 작성하여 벡터를 공통화하고, 3종류의 벡터 패턴을 얻는다. 이와 같은 작업을 반복해서, 벡터의 공통화가 종료한 시점에서 각 벡터 패턴을 결선후보로 한다. 결선후보 중에서 총 배선길이가 최소인 것을 최적 배선경로로 한다. 이것이 복수 있는 경우에는 최대 DR간 배선길이가 가장 작은 것을 최적 배선경로로 한다.
Description
본 발명은 하나의 신호원단자(이하, 「드라이버」라 한다.)와 복수의 신호수신 단자(이하, 「리시버」라 한다.)를 배선하는 경로를 작성하기 위한 배선경로 작성프로그램 및 배선경로 작성방법에 관한 것이다.
배선기판 등에 있어서 하나의 드라이버와 복수의 리시버를 결선하는 경우에는 총 배선길이를 될 수 있는 한, 짧게 하고 싶은 요망이 있다. 또 다른 한편으로는 드라이버로부터 리시버로 향하는 각개 배선의 배선길이를 되도록 짧게 하고 싶다고 하는 요망도 있다. 총 배선길이를 짧게 함으로써 배선경로 전체의 부유용량을 최소로 할 수 있어 신호의 열화를 억제할 수 있다. 또한 드라이버로부터 리시버로 향하는 배선에 착안하면은 특히 그 배선의 길이를 짧게 함으로써 드라이버로부터 리시버로 향하는 신호의 열화를 억제할 수 있다.
다(多)단자의 상호접속에 관하여, 최소의 총 배선길이가 되도록 배선경로를 구하는 방법으로서는 슈타이너 나무를 이용한 해법이 알려져 있다. 일반적으로 단자의 수가 많아지면 가능한 모든 배선경로를 검토함으로써 총 배선길이가 최소가 될 수 있는 최적한 해법을 구하기 위해서는 방대한 계산이 필요하게 된다. 이에 대하여 슈타이너 나무의 근사해법을 사용하면 비교적 간단하게 최단의 배선경로를 발견할 수가 있다. 일본 특개소62-39024호 공보(특허문헌1)의 도3은 그 근사해법을 구하는 방법을 도시하고 있다. 이것에 의하면 우선 다수의 단자 중에서 상호간의 거리가 가장 짧은 2개의 단자를 선택하여 그 사이에 가상경로를 작성한다. 다음으로 그 가상경로에 가장 가까운 거리에 있는 다음의 단자를 선택하여 그 단자와 가상경로를 연결하여 이것을 새로운 가상경로로 한다. 이하 동일한 방법으로 차례차례 단자를 연결해 가면 근사적으로 총 배선길이가 최소인 배선경로를 구할 수가 있다. 이 방법은 일본 특개2005-275780호 공보(특허문헌2)의 도5에도 설명되어 있다. 이와 같은 방법을 이하, 슈타이너 나무의 근사해법이라고 부르기로 한다.
상술한 슈타이너 나무의 근사해법은 총 배선길이가 최소가 되는 경로를 간편하게 구하는 데에는 편리하지만 드라이버와 리시버를 구별하고 있지 않는 점이 문제가 된다. 하나의 드라이버로부터 복수의 리시버로 향하는 개개의 배선을 생각하여 이들의 경로(리시버의 수만큼 존재한다.)중에서 가장 긴 배선의 길이를 최대 DR간 배선 길이라고 부르기로 한다. 총 배선길이가 최소가 될 수 있는 배선경로는 복수의 종류가 존재하는 일이 있으며 그 중에는 최대 DR간 배선길이가 다른 것도 있을 수 있다. 슈타이너 나무의 근사해법은 총 배선길이가 최소가 될 수 있는 배선경로를 하나만 찾는 방법임으로 그 배선경로가 총 배선길이가 최소가 되는 복수의 배선경로 중에서 최대 DR간 배선길이가 최소일 것이라고는 한정되지 않는다. 즉, 슈타이너 나무의 근사해법은 드라이버ㆍ리시버간의 신호의 흐름까지 고려할 때 반드시 최적의 해법이라고는 단정하기 어렵다.
다른 한편으로, 드라이버ㆍ리시버간의 신호의 흐름을 고려한 최적의 배선경로를 작성하는 방법이 알려져 있다. 일본 특개평11-167564호 공보(특허문헌3)는 이와 같은 방법을 개시하고 있으며 드라이버로부터 리시버로 향하는 개개의 배선경로에 대하여 이들 간의 「중복코스트」라고 하는 개념을 이용하여 중복코스트가 최대가 되도록 배선경로를 공유시켜서 최적의 배선경로를 구하고 있다. 이 방법을 이하, 「중복코스트 최대화법」이라고 부른다. 이 중복코스트 최대화법을 사용하면 항상 드라이버ㆍ리시버간의 배선경로가 최단이 될 수 있는 배선경로를 작성할 수 있지만, 단자 배치에 따라서는 상술한 슈타이너 나무의 근사해법의 것보다도 총 배선길이가 커진다. 따라서 중복코스트 최대화법을 사용하면 반드시 총 배선길이가 최소인 배선경로는 얻어지지 않는다.
어떤 단자배치에 있어서는 슈타이너 나무의 근사해법을 사용함으로써 총 배선길이가 최소가 되며 또한 최대 DR간 배선길이도 최소가 될 수 있지만, 다른 단자배치에 있어서는 최대 DR간 배선길이는 최소가 되지 않는다. 그리고 어떤 단자배치에 있어서는 중복코스트 최대화법을 사용함으로써 최대 DR간 배선길이가 최소가 되고 또한 총 배선길이도 최소가 될 수 있지만, 다른 단자배치에서는 총 배선길이가 최소가 되지 않는다.
본 발명은 상술한 문제점을 해결하기 위한 것으로써 그 목적은 하나의 드라이버와 복수의 드라이버를 배선하기 위한 배선경로를 작성하는 프로그램에 관하여 총 배선길이가 최소가 되고 또한, 총 배선길이가 최소인 배선경로가 복수 존재하는 경우에는 그 중에서도 최대 DR간 배선길이가 가장 작은 배선경로를 자동적으로 구할 수 있는 프로그램을 제공하는데 있으며, 또 이와 같은 프로그램을 이용하여 배선경로를 작성하는 방법을 제공하는데 있다.
본 발명의 요지는 다음과 같다. 그리고 단자배치 예 1의 실시 예에 있어서 부호 또는 도면 번호를 괄호 안에 기재하여 이해를 용이하게 하였다.
본 발명의 프로그램은 하나의 신호원 단자와 복수의 신호수신 단자를 배선하여 배선경로를 작성하기 위한 프로그램으로서 컴퓨터에 다음의 (a) 내지 (j)의 기능을 실현시키는 것을 특징으로 한다.
(a) 서로 직교하는 X축과 Y축으로 이루어지는 2차원 좌표계에 있어서, 상기 신호원 단자 (D)의 좌표와 상기 복수의 신호수신 단자 (R1 ~ R3)의 각각의 좌표를 취득하는 단자좌표 취득기능.
(b) 상기 신호원 단자 (D)를 어미 노드(결합점)로 정하고, 상기 복수의 신호수신 단자 (R1~R3)를 아들 노드(결합점)로 정하여, 상기 어미 노드(결합점)를 시점(始點)으로 하여 상기 복수의 아들 노드(결합점)를 각각 종점으로 하는 복수의 벡터 (D→R1, D→R2, D→R3)를 미처리 벡터로 정하고, 초기상태의 벡터 패턴(도 5의 초기상태)을 작성하는 벡터 패턴 작성기능.
(c) 상기 복수의 미처리 벡터 (D→R1, D→R2, D→R3) 에 포함되는 임의의 2개의 벡터로 이루어지는 가능한 모든 벡터 페어(pair)에 대하여, 이 벡터 페어에 속하는 2개의 벡터의 X좌표의 중복치와 Y좌표의 중복치의 합을 산출하여, 이 합이 최대가 되는 하나의 벡터 페어(이하, 「선택 벡터 페어」라 한다.) (D→R2와 D→R3의 페어)를 선택하여 이 선택 벡터 페어에 대해서 상기 X좌표의 중복치와 상기 Y좌표의 중복치로 구성된 좌표 (8, 0)를 종점으로 하여 상기 신호원 단자(D)를 시점으로 하는 벡터(이하, 「중복 벡터」라 한다.)를 작성하는 중복 벡터 작성기능.
(d)상기 선택 벡터 페어 (D→R2와 D→R3의 페어)에 대하여, 상기 중복 벡터의 종점 (8, 0)을 제1결합점 (N1)으로 하고 이 제1결합점 (N1)을 시점으로 하여 상기 선택 벡터 페어 (D→R2와 D→R3의 페어)에 관련하는 2 개의 상기 신호수신 단자 (R2와 R3)를 종점으로 하는 2개의 벡터 (N1→R2와 N1→R3)를 결선 확정 벡터로 하여, 이들 결선확정 벡터(N1→R2와 N1→R3)에 관련하는 2개의 미처리 벡터 (D→R2와 D→R3)를 삭제하여 상기 중복 벡터(D→N1)를 새로이 미처리 벡터로 정하여, 새 벡터 패턴(도 6의 조건 1)을 작성하는 제1결합기능.
(e)상기 선택 벡터 페어(D→R2와 D→R3의 페어)에 대하여, 상기 선택 벡터 페어에 속하는 2개의 벡터(D→R2와 D→R3) 중의 짧은 쪽의 벡터(이하, 「단(短)벡터」라 한다.) (D→R2)의 종점(R2)을 제2결합점(R2)으로 하고 이 제2결합점(R2)을 시점으로 하여 상기 선택 벡터 페어에 속하는 2개의 벡터(D→R2와 D→R3) 중의 긴 쪽의 벡터(이하, 「장(長) 벡터」라 한다.) (D→R3)의 종점(R3)을 종점(R3)으로 하는 벡터를 결선 확정 벡터(R2→R3)로 하고, 상기 장 벡터(D→R3)에 관련하는 미처리 벡터(D→R3)를 삭제하고 상기 단 벡터(D→R2)에 관련하는 미처리 벡터(D→R2)를 그대로 남겨서 새 벡터 패턴(도 6의 조건 2)를 작성하는 제2결합기능.
(f)상기 선택 벡터 페어(D→R2와 D→R3의 페어)에 대하여, 상기 선택 벡터 페어의 장 벡터(D→R3)의 종점(R3)을 제3결합점(R3)으로 하고, 이 제3결합점(R3)을 시점으로 하여 상기 선택 벡터 페어의 단 벡터(D→R2)의 종점(R2)을 종점(R2)으로 하는 벡터를 결선 확정 벡터(R3→R2)로 하여, 상기 단 벡터(D→R2)에 관련하는 미처리 벡터(D→R2)를 삭제하고, 상기 장 벡터(D→R3)에 관련하는 미처리 벡터(D→R3)를 그대로 남겨서, 새 벡터 패턴(도 6 의 조건 3)을 작성하는 제3결합기능.
(g)상기 제1결합기능, 제2결합기능 및 제3결합기능을 각각 실행한 다음에, 미처리 벡터가 하나인지 아닌지의 여부를 판단해서, 미처리 벡터가 하나일 때에는 그 시점에서의 벡터 패턴을 결선후보(도 7의 조건 1-1~1-3, 도 8의 조건 2-1~2-3, 및 도 9의 조건 3-1~3-3)로서 취득하고, 미처리 벡터가 복수인 때에는 그 시점에서의 벡터 패턴을 미처리 패턴(도 6의 조건 1~3)으로 취득하는 결선후보 취득기능.
(h)상기 미처리 패턴(도 6의 조건 1~3)이 남아 있는가 아닌가의 여부를 판단해서, 미처리 패턴이 남아 있을 때에는 임의의 미처리 패턴을 선택해서 상기 중복 벡터 작성기능으로부터 상기 결선후보 취득기능까지를 반복하고, 미처리 패턴이 남아 있지 않을 때에는 결선후보(도 7의 조건 1-1~1-3, 도 8의 조건 2-1~2-3, 및 도 9의 조건 3-1~3-3)의 취득을 완료시키는 미처리 패턴 존재 여부의 판정기능.
(i)취득한 복수의 결선후보(도7의 조건 1-1~1-3, 도 8의 조건 2-1~2-3, 및 도 9의 조건 3-1~3-3)의 각각에 대하여 총 배선길이(TL)를 구하는 총 배선길이 산출기능.
(j)상기 복수의 총 배선길이(TL)에 대하여, 최소의 총 배선길이(TL=18)를 가지는 결선후보가 하나인 때에는, 그 결선후보를 최적 배선경로로서 취득하고, 최소의 총 배선길이(TL=18)를 가지는 결선후보(도 10의 조건 1-1과 조건 2-1)가 복수인 경우에는, 이들 결선후보에 있어서, 상기 신호원 단자(D)와 복수의 상기 신호수신 단자(R1~R3)를 연결하는 배선의 길이(이하, 「DR간 배선길이」라 한다.) 중에서 최대의 것(PL)을 결선후보끼리 상호 비교해서, 최대 DR간 배선길이(PL)가 가장 작은 결선후보(도 10의 조건 1-1)를 최적 배선경로로서 취득하는 최적 배선경로 취득기능.
또한, 본 발명의 배선경로 작성방법은 프로그램 되어 있는 컴퓨터에 의하여 하나의 신호원 단자와 복수의 신호수신 단자를 배선하여 선로경로를 작성하는 방법으로서, 다음의 (a) 내지 (j)의 스텝을 포함하는 것을 특징으로 한다.
(a)서로 직교하는 X축과 Y축으로 된 2차원 좌표계에 있어서 상기 신호원 단자(D)의 좌표와 상기 복수의 신호수신 단자(R1~R3)의 각각의 좌표를 취득하는 단자좌표 취득 스텝.
(b)상기 신호원 단자(D)를 어미 노드(결합점)로 정하고, 상기 복수의 신호수신 단자(R1~R3)를 아들 노드(결합점)로 정하여, 상기 어미 노드(결합점)를 시점으로 하고 상기 복수의 아들 노드(결합점)를 각각 종점으로 하는 복수의 벡터 (D→R1, D→R2, D→R3)를 미처리 벡터로 정하여, 초기상태의 벡터 패턴(도 5의 초기상태)을 작성하는 벡터 패턴 작성스텝.
(c)상기 복수의 미처리 벡터(D→R1, D→R2, D→R3)에 포함되는 임의의 2개의 벡터로 이루어진 가능한 모든 벡터 페어에 대하여, 그 벡터 페어에 속하는 2개의 벡터의 X좌표의 중복치와 Y좌표의 중복치의 합을 산출해서, 그 합이 최대가 되는 하나의 벡터 페어(이하, 「선택 벡터 페어」라 한다.) (D→R2와 D→R3의 페어)를 선택하고, 그 선택 벡터 페어에 있어서 상기 X좌표의 중복치와 상기 Y좌표의 중복치로 구성된 좌표 (8, 0)를 종점으로 하여 상기 신호원 단자(D)를 시점으로 하는 벡터(이하, 「중복 벡터」라 한다.)를 작성하는 중복 벡터 작성스텝.
(d)상기 선택 벡터 페어(D→R2와 D→R3의 페어)에 대하여, 상기 중복 벡터의 종점(8, 0)을 제1결합점(N1)으로 하고, 이 제1결합점(N1)을 시점으로 하여 상기 선택 벡터 페어(D→R2 와 D→R3의 페어)에 관련하는 2개의 상기 신호수신 단자(R2와 R3)를 종점으로 하는 2개의 벡터(N1→R2와 N1→R3)를 결선확정 벡터로 하고, 이들 결선확정 벡터(N1→R2 와 N1→R3)에 관련하는 2개의 미처리 벡터(D→R2와 D→R3)를 삭제하여, 상기 중복 벡터(D→N1)를 새로 미처리 벡터로 정하고, 새 벡터 패턴(도 6의 조건 1)을 작성하는 제1결합스텝.
(e)상기 선택 벡터 페어(D→R2와 D→R3의 페어)에 대하여, 상기 선택 벡터 페어에 속하는 2개의 벡터(D→R2와 D→R3)중의 짧은 쪽의 벡터(이하, 「단 벡터」라 한다.) (D→R2)의 종점(R2)을 제2결합점(R2)으로 하고, 이 제2결합점 (R2)을 시점으로 하여 상기 선택 벡터 페어에 속하는 2개의 벡터(D→R2와 D→R3) 중의 긴 쪽의 벡터(이하, 「장 벡터」라 한다.) (D→R3)의 종점(R3)을 종점 (R3)으로 하는 벡터를 결선확정 벡터(R2→R3)로 하고, 상기 장 벡터(D→R3)에 관련하는 미처리 벡터(D→R3)를 삭제하고, 상기 단 벡터(D→R2)에 관련하는 미처리 벡터(D→R2)를 그대로 남겨서, 새 벡터 패턴(도 6의 조건 2)을 작성하는 제2결합스텝.
(f)상기 선택 벡터 페어(D→R2와 D→R3의 페어)에 대하여, 상기 선택 벡터 페어의 장 벡터(D→R3)의 종점(R3)을 제3결합점(R3)으로 하여, 이 제3결합점(R3)을 시점으로 하여 상기 선택 벡터 페어의 단 벡터(D→R2)의 종점(R2)을 종점(R2)으로 하는 벡터를 결선확정 벡터(R3→R2)로 하여, 상기 단 벡터(D→R2)에 관련하는 미처리 벡터(D→R2)를 삭제하고, 상기 장 벡터(D→R3)에 관련하는 미처리 벡터(D→R3)를 그대로 존치시켜 새 벡터 패턴(도 6의 조건 3)을 작성하는 제3 결합스텝.
(g)상기 제1결합스텝, 제2결합스텝 및 제3결합스텝을 각각 실행한 후에, 미처리 벡터가 하나인가 아닌가의 여부를 판단해서, 미처리 벡터가 하나인 때에는 그 시점에서의 벡터 패턴을 결선후보(도 7의 조건 1-1~1-3, 도 8의 조건 2-1~2-3, 및 도 9의 조건 3-1~3-3)로서 취득하고, 미처리 벡터가 복수일 때에는 그 시점에서의 벡터 패턴을 미처리 패턴(도 6의 조건 1~3)으로서 취득하는 결선후보 취득스텝.
(h)상기 미처리 패턴(도 6의 조건 1~3)이 남아 있는지 여부를 판단해서, 미처리 패턴이 남아 있을 때에는 임의의 미처리 패턴을 선택하여 상기 중복 벡터 작성스텝으로부터 상기 결선후보 취득스텝까지를 반복하고, 미처리 패턴이 남아 있지 않을 때에는 결선후보(도 7의 조건 1-1~1-3, 도 8의 조건 2-1~2-3, 및 도 9의 조건 3-1~3-3)의 취득을 완료시키는 미처리 패턴 존재 여부의 판정스텝.
(i)취득한 복수의 결선후보(도 7의 조건 1-1~1-3, 도 8의 조건 2-1~2-3, 및 도 9의 조건 3-1~3-3)의 각각에 대하여 총 배선길이(TL)를 구하는 총 배선길이 산출스텝.
(j)상기 복수의 총 배선길이(TL)에 대하여, 최소의 총 배선길이(TL=18)를 가지는 결선후보가 하나일 경우에는 그 결선후보를 최적 배선경로로서 취득하고, 최소의 총 배선길이(TL=18)를 가지는 결선후보(도 10의 조건 1-1과 조건 2-1)가 복수일 때에는, 이들 결선후보에 있어서, 상기 신호원 단자(D)와 복수의 상기 신호수신 단자(R1~R3)를 연결하는 배선의 길이(이하, 「DR간 배선길이」라 한다.) 중에서 최대의 것(PL)을 결선후보끼리 상호 비교해서, 최대 DR간 배선길이(PL)가 가장 작은 결선후보(도10의 조건 1-1)를 최적 배선경로로서 취득하는 최적 배선경로 취득스텝.
본 발명은 하나의 드라이버와 복수의 드라이버를 결선하기 위한 배선경로를 작성하는 프로그램에 있어서, 총 배선길이가 최소가 되며 또한, 총 배선길이가 최소의 배선경로가 복수 존재할 때에는, 그 중에서도 최대 DR간 배선길이가 가장 작은 배선경로를 자동적으로 구할 수가 있다. 이와 같은 배선경로를 구함에 있어서는 가능한 모든 결선후보를 검토하지 않더라도 특정의 조건만을 고려함으로써, 검토하여야 할 결선후보의 수를 줄일 수가 있고 또한 상술한 목적을 만족시킬 수 있는 배선경로를 얻을 수가 있다.
도 1은 본 발명에서 사용하는 중복 벡터를 설명하는 설명도이다.
도 2는 제1 결합점의 설명도이다.
도 3은 제2 결합점의 설명도이다.
도 4는 제3 결합점의 설명도이다.
도 5는 단자배치 예 1과 배선경로를 검토하기 위한 벡터 패턴의 초기상태를 나타내는 것이다.
도 6은 조건 1~3의 벡터 패턴을 나타낸 것이다.
도 7은 조건 1-1~1-3의 벡터 패턴을 나타낸 것이다.
도 8은 조건 2-1~2-3의 벡터 패턴을 나타낸 것이다.
도 9는 조건 3-1~3-3의 벡터 패턴을 나타낸 것이다.
도 10은 조건 1-1과 조건 2-1의 벡터 패턴을 비교하여 나타낸 것이다.
도 11은 본 발명의 프로그램이 실현하는 기능의 플로차트이다.
도 12는 도 11의 플로차트중의 결선후보 취득의 서브루틴 플로차트이다.
도 13은 도 11의 플로차트중의 최적 배선경로 취득의 서브루틴 플로차트이다.
도 14는 단자배치 예 2와 그 최적 배선경로를 나타낸 것이다.
도 15는 제3결합점을 채용하는 것의 이점을 설명하는 것으로, 단자배치 예 3과 그 최적 배선경로를 나타낸 것이다.
도 16은 단자배치 예 4와 그 최적 배선경로를 나타내고 있다.
도 2는 제1 결합점의 설명도이다.
도 3은 제2 결합점의 설명도이다.
도 4는 제3 결합점의 설명도이다.
도 5는 단자배치 예 1과 배선경로를 검토하기 위한 벡터 패턴의 초기상태를 나타내는 것이다.
도 6은 조건 1~3의 벡터 패턴을 나타낸 것이다.
도 7은 조건 1-1~1-3의 벡터 패턴을 나타낸 것이다.
도 8은 조건 2-1~2-3의 벡터 패턴을 나타낸 것이다.
도 9는 조건 3-1~3-3의 벡터 패턴을 나타낸 것이다.
도 10은 조건 1-1과 조건 2-1의 벡터 패턴을 비교하여 나타낸 것이다.
도 11은 본 발명의 프로그램이 실현하는 기능의 플로차트이다.
도 12는 도 11의 플로차트중의 결선후보 취득의 서브루틴 플로차트이다.
도 13은 도 11의 플로차트중의 최적 배선경로 취득의 서브루틴 플로차트이다.
도 14는 단자배치 예 2와 그 최적 배선경로를 나타낸 것이다.
도 15는 제3결합점을 채용하는 것의 이점을 설명하는 것으로, 단자배치 예 3과 그 최적 배선경로를 나타낸 것이다.
도 16은 단자배치 예 4와 그 최적 배선경로를 나타내고 있다.
이하, 도면을 참조하면서 본 발명의 실시 예를 상세히 설명한다. 도 1은 본 발명에서 사용하는 「중복 벡터」라는 개념을 설명하는 설명도이다. 신호원 단자를 드라이버라 호칭하며 이것을 D로 표시하기로 한다. 신호수신 단자를 리시버라 호칭하며, 이것을 기호 R로 표시하기로 한다. 서로 직교하는 X축과 Y축으로 구성된 2 차원 좌표계에 있어서, 하나의 드라이버 D와 2개의 리시버 R1, R2를 생각한다. 드라이버 D의 좌표는 좌표축의 원점 (0, 0)이다. 리시버 R1의 좌표는 (3, 6)이고, 리시버 R2의 좌표는 (9, 3)이다. 드라이버 D로부터 리시버 R1로 향하는 벡터 D→R1과, 드라이버 D로부터 리시버 R2로 향하는 벡터 D→R2를 생각한다. 2개의 벡터로 구성된 벡터 페어에 대하여, 중복 벡터는 다음과 같이 정의한다. 「중복 벡터」란, 벡터 페어에 포함되는 2개의 벡터의 X좌표의 「중복치」(2개의 X좌표의 중첩 부분)과 Y좌표의 「중복치」(2개의 Y좌표의 중첩 부분)로 이루어진 좌표를 종점으로 하고, 드라이버를 시점으로 하는 벡터를 말한다. 도 1의 예에 있어서 2개의 벡터의 X좌표는, 각각 3과 9 이고, 그 중복치는 3 이다. 2개의 벡터의 Y좌표는 각각 6과 3 이며 그 중복치는 3 이다. 따라서 중복 벡터의 종점은 (3, 3)이다. 시점은 좌표축의 원점, 즉 드라이버 D의 위치이다. 중복 벡터의 종점은 후술하는 결합점(node)으로 될 수 있음으로 N으로 표시하기로 한다. 또한, 중복치를 구할 때에는 좌표의 정부(+, -)를 고려한다. 정의 좌표와 부의 좌표의 중복치는 영(0)이다.
중복 벡터 D→N의 길이를 「중복 길이」라 정의한다. 다만, 본 건 명세서에 있어서 「벡터의 길이」란 벡터의 시점과 종점을 X축과 Y축에 따라서 최단으로 연결하였을 때의 길이, 즉 맨해턴(manhattan)거리를 의미한다. 도 1의 예에서 설명하면 중복 벡터 D→N의 길이는 X축 방향의 길이 3 과 Y축 방향의 길이 3을 합계한 6 이다. 본 발명은 배선경로를 작성하기 위한 프로그램에 관한 것으로써 배선 방향은 X축과 Y축에 따르는 것으로 한정하고 있음으로 벡터의 길이(즉, 배선의 길이)를 고려하는데 있어서는 상술한 바와 같은 2방향에 따른 길이를 채용하는 것이 편리하다.
벡터 페어의 「중복 길이」는 총 배선길이가 작은 배선경로를 작성하기 위하여 중요한 인자가 된다. 드라이버 D와 리시버 R1, R2를 결선하는 경우에는 개별로 결선하기보다는 중간까지를 공통의 배선으로 한다면 총 배선길이가 짧아진다. 몇 개의 벡터 페어를 고려한다면 중복 길이가 큰 벡터 페어 일수록 배선의 공통화의 비율이 높아진다.
본 발명의 프로그램은 벡터 페어의 배선을 중간까지 공통화하기 위한 방법으로서 3종류의 선택지를 준비하고 있다. 공통화한 배선의 종점을 결합점이라고 호칭하기로 한다면, 그 결합점의 결정방법에 3종류가 있다. 즉, 제1결합점부터 제3결합점까지를 이용해서 배선경로를 검토하고 있다.
도 2는 제1결합점의 설명도이다. 중복 벡터 D→N의 종점 N을 결합점으로 하는 것이며 이것을 제1결합점이라 부른다. 드라이버 D부터 제1결합 점 N까지는 공통의 배선으로 하고 이 제1결합점 N부터 2개의 리시버 R1, R2까지를 별개로 배선한다.
도 3은 제2결합점의 설명도이다. 벡터 페어를 구성하는 2개의 벡터중의 단 벡터의 종점 R1을 결합점으로 하고 이것을 제2결합점이라 부른다. 이 제2결합점(리시버 R1과 동일)까지가 공통 배선이고 그곳으로부터 리시버 R2로 향해 다시 배선을 한다.
도 4는 제3결합점의 설명도이다. 벡터 페어를 구성하는 2개의 벡터 중의 장 벡터의 종점 R2를 결합점으로 하고, 이것을 제3결합점이라 부른다. 이 제3결합점(리시버 R2와 동일)까지가 공통 배선이며 그곳으로부터 리시버 R1로 향해 다시 배선을 한다.
다음으로 구체적인 단자 배치를 이용하여 본 발명의 원리를 상세히 설명한다. 도 5는 단자배치 예 1과 그 벡터 패턴의 초기상태를 나타낸다. 단자배치 예 1은 하나의 드라이버 D와 3개의 리시버 R1, R2, R3을 포함하고 있다. 드라이버 D의 좌표는 좌표축의 원점 (0, 0)이다. 리시버 R1의 좌표는 (4, 3)이고, 리시버 R2의 좌표는 (8, 3)이며 리시버 R3의 좌표는 (12, 0)이다. 드라이버로부터 각 리시버로 향해서 벡터를 끈 것이 초기상태의 벡터 패턴이며, 드라이버 D로부터 리시버 R1로 향하는 벡터 D→R1과, 드라이버 D로부터 리시버 R2로 향하는 벡터 D→R2와, 드라이버 D로부터 리시버 R3으로 향하는 벡터 D→R3을 작성할 수가 있다. 이 상태를 초기상태로 한다. 그리고 각 리시버로 향하는 벡터를 중간까지 공통화 해 감으로써 총 배선길이가 최소인 배선경로를 찾는 것이다. 도 5(및, 그 후의 도면)에 있어서, 배선경로가 확정되지 않은 벡터(이것을 「미처리 벡터」라 한다.)는 파선으로 표시하기로 한다. 도 5의 초기상태의 벡터는 모두 파선으로 나타내고 있다. 초기상태의 벡터 패턴의 우측에 표시한 것은 드라이버로부터 리시버로 향하는 벡터를 나무 구조로 표시한 것이다. 초기상태에서는 하나의 드라이버 D로부터 3개의 리시버 R1, R2, R3으로 향해서 3가닥의 접속선이 병렬로 연장되어 있다.
초기상태의 벡터 패턴에 있어서 최초로 작업을 하여야 할 일은 중복 길이가 최대가 되는 벡터 페어를 선택하는 일이다. 초기상태의 벡터 패턴에는 3개의 벡터가 존재하며, 그 중의 임의의 2개의 벡터를 이용하여 벡터 페어를 작성한다. 벡터 페어의 수는 3개 중에서 2개를 끌어내는 조합의 수이며, 3ㅧ 2ㆇ 2=3종류이다. 우선, 벡터 D→R1과 벡터 D→R2의 조합으로 구성된 벡터 페어에 있어서는 중복 벡터는 D→R1과 같고, 그 중복 길이는 7(=4+3)이다. 벡터 D→R2와 벡터 D→R3의 조합으로 구성된 벡터 페어에 있어서는 중복 벡터의 종점은 좌표 (8, 0)이고, 그 중복 길이는 8 이다. 벡터 D→R1과 벡터 D→R3의 조합으로 구성된 벡터 페어에 있어서는 중복 벡터의 종점은 좌표 (4, 0)이고, 그 중복 길이는 4 이다. 따라서 최대의 중복 길이를 가지는 벡터 페어는 벡터 D→R2와 벡터 D→R3의 조합이다. 이것이 「선택 벡터 페어」가 된다.
도 6은 상술한 선택 벡터 페어에 대하여 조건 1~3의 벡터 패턴을 나타낸 것이다. 이것들은 상술한 선택 벡터 페어에 대하여 3개의 결합점을 적용하여 새로 벡터 패턴(초기 상태보다도 공통화가 진척된 벡터 패턴)을 작성한 것이다.
조건 1의 벡터 패턴은 제1결합점을 적용한 것이다. 즉, 중복 벡터의 종점 (8, 0)을 제1결합점 N1로 한다. 이 제1 결합 점 N1을 시점으로 하여 리시버 R2로 향하는 벡터와, 리시버 R3으로 향하는 벡터를 작성하고, 이들 벡터를 결선 확정 벡터로 한다. 결선 확정 벡터는 도 6(및, 그 후의 도면)에서 실선으로 나타나 있다. 드라이버 D로부터 제1결합점 N1로 향하는 벡터를 새 미처리 벡터로 한다. 이와 같은 처리로 인하여 미처리 벡터가 하나 감소한다. 즉, 3개의 미처리 벡터가 2개의 미처리 벡터 D→R1, D→N1이 된다. 조건 1의 벡터 패턴의 도면 우측에 표시한 나무 구조에서는 드라이버 D로부터 연결되어 있는 것은 R1과 N1 뿐이고, N1의 하층에 R2와 R3이 연결되어 있다.
조건 2의 벡터 패턴은 제2결합점을 적용한 것이다. 즉, 선택 벡터 페어 중의 단 벡터 D→R2의 종점 (8, 3)을 제2결합점(R2와 같음)으로 한다. 이 제2결합점 R2를 시점으로 하여 리시버 R3으로 향하는 벡터를 작성하고 이 벡터를 결선 확정 벡터로 한다. 드라이버 D로부터 제2결합점 R2로 향하는 벡터는 그대로 미처리 벡터로서 남겨둔다. 이 처리에서도 미처리 벡터가 하나 감소하여 3개의 미처리 벡터가 2개의 미처리 벡터 D→R1, D→R2가 된다. 조건 2의 벡터 패턴의 도면 우측에 표시하는 나무 구조에서는, 드라이버 D로부터 연결되어 있는 것은 R1과 R2 뿐이며 R2의 하층에 R3이 연결되어 있다.
조건 3의 벡터 패턴은 제3결합점을 적용한 것이다. 즉, 선택 벡터 페어 중의 장 벡터 D→R3의 종점 (12, 0)을 제3결합점(R3과 동일)으로 한다. 이 제3결합점 R3을 시점으로 하여 리시버 R2로 향하는 벡터를 작성하고, 이 벡터를 결선 확정 벡터로 한다. 드라이버 D로부터 제3결합점 R3으로 향하는 벡터는 그대로 미처리 벡터로서 남겨 둔다. 이 처리에서도 미처리 벡터가 하나 감소하여, 3개의 미처리 벡터가 2개의 미처리 벡터 D→R1, D→R3이 된다. 조건 3의 벡터 패턴의 도면 우측에 표시하는 나무 구조에서는 드라이버 D로부터 연결되어 있는 것은 R1과 R3 뿐이고, R3의 하층에 R2가 연결되어 있다.
조건 1~3의 벡터 패턴을 보면, 어느 것이나 미처리 벡터가 2개 남아 있음으로 미처리 벡터를 감소시키기 위한 또 다른 처리가 필요하게 된다.
도 7은 조건 1-1~1-3의 벡터 패턴을 나타낸 것이며, 이것들은 도 6의 조건 1의 벡터 패턴을 출발점으로 하여, 다시 3개의 결합점을 적용해서 새로 3개의 벡터 패턴을 작성한 것이다. 조건 1의 벡터 패턴은 미처리 벡터가 2개뿐(D→R1과 D→N1)임으로, 벡터 페어는 1종류뿐이고 그것이 선택 벡터 페어가 된다. 그 중복 벡터의 종점은 (4, 0) 이다.
도 7의 조건 1-1의 벡터 패턴은 조건 1의 벡터 패턴(도 6의 조건 1을 참조)에 제1결합점을 적용한 것이다. 중복 벡터의 종점 (4, 0)을 제1결합점 N2로 한다. 이 제1결합점 N2를 시점으로 하여 리시버 R1로 향하는 벡터와, 결합점 N1로 향하는 벡터를 작성하고, 이들의 벡터를 결선 확정 벡터로 한다. 드라이버 D로부터 제1결합점 N2로 향하는 벡터를 새로운 미처리 벡터로 한다. 이 처리로 말미암아, 미처리 벡터가 하나 감소하여, 2개의 미처리 벡터가 하나의 미처리 벡터 D→N22가 된다. 미처리 벡터가 하나가 되었을 때에는, 그 시점에서의 벡터 패턴을 결선 후보로서 취득한다. 즉, 조건 1-1의 벡터 패턴에 따라 배선을 함으로써 결선 후보로서의 배선 경로가 완성된다. 또한, 벡터에 따라 배선을 할 때에는 X축 또는 Y축에 평행이 되는 배선을 작성하는 것이다.
도 7의 조건 1-2의 벡터 패턴은 조건 1의 벡터 패턴(도 6의 조건 1을 참조)에 제2결합점을 적용한 것이다. 즉, 선택 벡터 페어 중의 단 벡터 D→R1의 종점 (4, 3)을 제2결합점(R1과 동일)으로 한다. 이 제2결합점 R1을 시점으로 하여 결합점 N1로 향하는 벡터를 작성하고, 이 벡터를 결선 확정 벡터로 한다. 드라이버 D로부터 제2결합점 R1로 향하는 벡터는 그대로 미처리 벡터로서 남는다. 이 처리로 말미암아, 미처리 벡터가 하나 감소하여 2개의 미처리 벡터가 하나의 미처리 벡터 D→R1이 된다. 미처리 벡터가 하나가 되었음으로 이 벡터 패턴을 결선 후보로서 취득한다.
도 7의 조건 1-3의 벡터 패턴은 조건 1의 벡터 패턴(도 6의 조건 1을 참조)에 제3결합점을 적용한 것이다. 즉, 선택 벡터 페어 중의 장 벡터 D→N1의 종점 (8, 0)을 제3결합점으로 한다. 이 제3결합점 N1을 시점으로 하여 리시버 R1로 향하는 벡터를 작성하고, 이 벡터를 결선 확정 벡터로 한다. 드라이버 D로부터 제3결합점 N1로 향하는 벡터는 그대로 미처리 벡터로서 남는다. 이 처리로 말미암아 미처리 벡터가 하나 감소하여 2개의 미처리 벡터가 하나의 미처리 벡터 D→N1이 된다. 미처리 벡터가 하나가 되었음으로 이 벡터 패턴을 결선 후보로서 취득한다.
도 8은 조건 2-1~2-3의 벡터 패턴을 나타낸 것이며, 이들은 도 6의 조건 2의 벡터 패턴을 출발점으로 하여, 거기에 다시 3개의 결합점을 적용해서 새롭게 벡터 패턴을 작성한 것이다. 조건 2의 벡터 패턴은 미처리 벡터가 2개뿐임으로 벡터 페어는 1종류뿐이고, 이것이 선택 벡터 페어가 된다. 그 중복 벡터의 종점은 (4,3)이고 리시버 R1과 같은 위치이다.
도 8의 조건 2-1의 벡터 패턴은 조건 2의 벡터 패턴(도 6의 조건 2를 참조)에 제1결합점을 적용한 것이다. 중복 벡터의 종점 (4,3) 즉 리시버 R1을 제1결합점으로 한다. 이 제1결합점 R1을 시점으로 하여 단 벡터의 종점 즉 같은 지점 R1로 향하는 벡터(즉, 제로 벡터)와, 리시버 R2로 향하는 벡터를 작성하고, 이들 벡터를 결선 확정 벡터로 한다. 드라이버로부터 제1결합점 R1로 향하는 벡터를 새로운 미처리 벡터로 한다(이것은 단 벡터와 같은 것). 이 처리로 말미암아 미처리 벡터가 하나 감소하여 2개의 미처리 벡터가 하나의 미처리 벡터 D→R1이 된다. 미처리 벡터가 하나가 되었음으로 이 벡터 패턴을 결선 후보로서 취득한다.
도 8의 조건 2-2의 벡터 패턴은 조건 2의 벡터 패턴(도 6의 조건 2를 참조)에 제2결합점을 적용한 것이다. 즉, 선택 벡터 페어 중의 단 벡터 D→R1의 종점 (4, 3)을 제2결합점(R1과 같음)으로 한다. 이 제2결합점은 조건 2-1의 제1결합점과 동일하다. 그 이유는 조건 2의 선택 벡터 페어는 중복 벡터와 단 벡터가 동일한 것이기 때문이다. 그러므로 조건 2-2의 벡터 패턴은 조건 2-1의 벡터 패턴과 같다. 이것을 결선 후보로서 취득한다. 조건 2-1과 동일한 것임으로 결선 후보로서 취득하는 것을 생략하는 처리로 하여도 무방하다.
도 8의 조건 2-3의 벡터 패턴은 조건 2의 벡터 패턴(도 6의 조건 2를 참조)에 제3결합점을 적용한 것이다. 즉, 선택 벡터 페어 중의 장 벡터 D→R2의 종점 (8, 3)을 제3결합점으로 한다. 이 제3결합점 R2를 시점으로 하여 리시버 R1로 향하는 벡터를 작성하고, 이 벡터를 결선 확정 벡터로 한다. 드라이버 D로부터 제3결합점 R2로 향하는 벡터는 그대로 미처리 벡터로서 남겨 둔다. 이 처리로 말미암아 미처리 벡터가 하나 감소하여 2개의 미처리 벡터가 하나의 미처리 벡터 D→R2가 된다. 미처리 벡터가 하나가 되었음으로 이 벡터 패턴을 결선 후보로서 취득한다.
도 9는 조건 3-1~3-3의 벡터 패턴을 나타낸 것이며, 이것들은 도 6의 조건 3의 벡터 패턴을 출발점으로 하여 다시 3개의 결합점을 적용하여 새롭게 벡터 패턴을 작성한 것이다. 조건 3의 벡터 패턴은 미처리 벡터가 2개뿐임으로 벡터 페어는 1종류뿐이고, 이것이 선택 벡터 페어가 된다. 그 중복 벡터의 종점은 (4, 0)이다.
도 9의 조건 3-1의 벡터 패턴은 조건 3의 벡터 패턴(도 6의 조건 3을 참조)에 제1결합점을 적용한 것이다. 중복 벡터의 종점 (4, 0)을 제1결합점 N1로 한다. 이 제1결합점 N1을 시점으로 하여 리시버 R1로 향하는 벡터와, 리시버 R3으로 향하는 벡터를 작성하고 이들 벡터를 결선 확정 벡터로 한다. 드라이버 D로부터 제1결합점 N1로 향하는 벡터를 새로운 미처리 벡터로 한다. 이 처리로 말미암아 미처리 벡터가 하나 감소하여 2개의 미처리 벡터가 하나의 미처리 벡터 D→N1이 된다. 미처리 벡터가 하나가 되었음으로 이 벡터 패턴을 결선 후보로서 취득한다.
도 9의 조건 3-2의 벡터 패턴은 조건 3의 벡터 패턴(도 6의 조건 3을 참조)에 제2결합점을 적용한 것이다. 즉, 선택 벡터 페어 중의 단 벡터 D→R1의 종점 (4, 3)을 제2결합점(R1과 동일)으로 한다. 이 제2결합점 R1을 시점으로 하여 리시버 R3으로 향하는 벡터를 작성하고, 이 벡터를 결선 확정 벡터로 한다. 드라이버로부터 제2결합점 R1로 향하는 벡터는 그대로 미처리 벡터로서 남겨 둔다. 이 처리로 인하여 미처리 벡터가 하나 감소하여 2개의 미처리 벡터가 하나의 미처리 벡터 D→R1이 된다. 미처리 벡터가 하나가 되었음으로 이 벡터 패턴을 결선 후보로서 취득한다.
도 9의 조건 3-3의 벡터 패턴은 조건 3의 벡터 패턴(도 6의 조건 3을 참조)에 제3결합점을 적용한 것이다. 즉, 선택 벡터 페어 중의 장 벡터 D→R3의 종점 (12, 0)을 제3결합점으로 한다. 이 제3결합점 R3을 시점으로 하여 리시버 R1로 향하는 벡터를 작성하고, 이 벡터를 결선 확정 벡터로 한다. 드라이버로부터 리시버 R3으로 향하는 벡터는 그대로 미처리 벡터로서 남겨 둔다. 이 처리로 말미암아, 미처리 벡터가 하나 감소하여 2개의 미처리 벡터가 하나의 미처리 벡터 D→R3이 된다. 미처리 벡터가 하나가 되었음으로 이 벡터 패턴을 결선 후보로서 취득한다.
이상의 처리로서 미처리 벡터 패턴(미처리 벡터가 2개 이상 남아있는 벡터 패턴)이 존재하지 않게 되어 결선 후보를 취득하는 작업이 완료한다.
다음으로, 취득한 복수의 결선 후보, 이 예에 있어서는 조건 1-1~3-3의 9종류의 벡터 패턴에 대하여, 총 배선길이를 구한다. 도 7의 조건 1-1의 결선후보에 대하여 설명하면, 총 배선길이 TL(total length)은, 벡터의 길이의 합계이고 18 이다. 이 값을 조건 1-1의 벡터 패턴의 도면 우상측에 TL=18이라고 기재되어 있다. 드라이버와 리시버를 연결하는 배선의 길이 (이것을 「DR간 배선길이」라고 한다.)에 대해서도 설명한다. 리시버는 3개가 있음으로 그 배선길이도 3종류가 있으며, 드라이버 D와 리시버 R1의 DR간 배선길이는 7이고, 드라이버 D와 리시버 R2의 DR간 배선길이는 11이며, 드라이버 D와 리시버R3의 DR간 배선길이는 12이다. 3개의 DR간 배선길이 중에서 최대인 것을 최대 DR간 배선길이라고 정의하고 이것을 PL(path length의 뜻)로 표시하기로 한다. PL은 12이다. 이것도 벡터 패턴의 도면 우상측에 PL=12라고 기재되어 있다.
도 7의 조건 1-2에 대하여서도 설명하면, 총 배선길이 TL은 21이 된다. 이 경우에, 벡터 D→R1의 배선길이에 대해서는 X축과 Y축에 따른 길이를 구하는 것으로 하며 7이 된다. 벡터 R1→N1에 대해서도 마찬가지로 7이 된다. 또 최대 DR간 배선길이 PL은 18이다.
도 7의 조건 1-3, 도 8의 조건 2-1~2-3, 및 도 9의 조건 3-1~3-3의 벡터 패턴에 대해서도 총 배선길이 TL 과 DR간 배선길이 PL의 값을 각 벡터 패턴의 우상측에 기재하고 있다.
상술한 9개의 결선 후보에 대하여 이것들의 총 배선길이를 비교하면, 최소의 총 배선길이가 18인 것을 알 수 있다. 그리고 최소 총 배선길이 18을 가지는 결선후보는 2개가 있으며, 그것은 조건 1-1과 조건 2-1이다. 그 배선경로를 도 10에 나란히 표시한다. 이와 같이 최소 총 배선수의 배선경로가 복수 얻어지는 경우엔 다시 최대 DR간 배선길이를 서로 비교한다. 조건 1-1의 최대 DR간 배선길이 PL은 12이고, 조건 2-1의 최대 DR간 배선길이 PL은 18이다. 전자 쪽이 작다. 따라서 조건 1-1의 배선경로를 최종적인 최적 배선경로로서 취득한다.
이상 설명하여 온 프로그램의 기능을 플로차트로 표시하면, 도 11~도 13과 같이 된다. 이 플로차트를 사용하여 본 프로그램의 기능을 복습한다. 도 11에 있어서 우선 드라이버 및 리시버의 단자 좌표를 취득한다(스텝 S11). 이 기능은 예를 들면, 도 5의 단자배치 예1을 오퍼레이터가 컴퓨터에 입력하고 컴퓨터가 이것을 취득하는 것을 의미한다.
다음으로 컴퓨터는 드라이버로부터 각 리시버로 향하는 벡터 패턴을 작성한다(스텝 S12). 이 기능은 도 5의 초기상태의 벡터 패턴을 작성하는 것에 상당한다. 이 벡터 패턴에 포함되는 벡터는 모두 미처리 벡터이다.
다음으로 컴퓨터는 이 벡터 패턴에 포함되는 복수의 미처리 벡터에 관하여, 임의의 2개의 미처리 벡터로 구성된 가능한 모든 벡터 페어에 대하여 중복 길이를 산출한다(스텝 S13). 중복길이란, 그 벡터 페어에 속하는 2개의 벡터의 X좌표의 중복치와 Y좌표의 중복치의 합이다. 그 중복길이를 가능한 모든 벡터 페어에 대해서 비교하고, 중복길이가 최대가 되는 벡터 페어를 선택한다(스텝 S14). 그 선택 벡터 페어에 대하여 중복 벡터를 결정한다. 중복 벡터란, 상기 X좌표의 중복치와 상기 Y좌표의 중복치로 구성된 좌표를 종점으로 하고, 드라이버를 시점으로 하는 벡터이다. 도 5의 초기상태의 벡터 패턴에서는 선택 벡터 페어는 D→R2와 D→R3의 조합이고, 중복 벡터의 종점은 (8,0)이며 중복길이는 8 이다.
이 선택 벡터 페어가 결정되면 컴퓨터는 결선후보 취득의 서브루틴을 실행한다(스텝 S15). 이 서브루틴의 플로차트는 도 12에 나타낸다.
도 12에 있어서, 특정의 선택 벡터 페어에 대하여 중복 벡터의 종점을 제1결합점으로 하여 새로운 벡터 패턴을 작성한다(스텝 S21). 이것이 도 6의 조건 1에 상당한다. 이 새로운 벡터 패턴에서는 제1결합점을 시점으로 하여, 선택 벡터 페어에 관련하는 2개의 리시버를 종점으로 하는 2개의 벡터를 결선확정 벡터로 한다. 그리고 이들의 결선 확정 벡터에 관련하는 2개의 미처리 벡터를 삭제하고 중복 벡터를 새로 미처리 벡터로 결정한다. 도 6의 조건 1에서 설명하면, 거기까지의 2개의 미처리 벡터 D→R2와 D→R3을 삭제하고 그를 대치하여 중복 벡터를 새로운 미처리 벡터로 한다. 이것으로써 미처리 벡터가 하나 감소하여 벡터 패턴의 공통화가 진척된다. 이 새로운 벡터패턴에 대하여 미처리 벡터의 수를 판정해서(스텝 S22), 미처리 벡터가 하나인 때엔, 이 벡터 패턴을 결선후보로서 취득하고, 제2결합점에 의한 처리로 이동한다(스텝 S23). 미처리 벡터가 복수인 때에는 결선후보를 취득하지 않고 제2결합점에 의한 처리로 이동한다. 도 6의 조건 1에서는 미처리 벡터가 2개 남아있음으로, 결선후보는 취득하지 않은 채, 제2결합점에 의한 처리로 이동하고 있다.
다음으로, 제2결합점에 의한 처리를 실시한다(스텝 S24). 이것이 도 6의 조건 2에 상당한다. 선택 벡터 페어에 속하는 2개의 벡터 중의 단 벡터의 종점을 제2결합점으로 하고, 이 제2결합점을 시점으로 하여 선택 벡터 페어에 속하는 2개의 벡터중에 장 벡터의 종점을 종점으로 하는 벡터를 결선 확정 벡터로 한다. 상기 장 벡터에 관련하는 미처리 벡터를 삭제하고, 상기 단 벡터에 관련하는 미처리 벡터를 그대로 남겨서 새로운 벡터 패턴을 작성한다. 도 6의 조건 2에서 설명하면, 벡터 R2→R3을 결선 확정 벡터로 하고, 장 벡터에 관련하는 미처리 벡터 D→R3을 삭제하고, 단 벡터에 관련하는 미처리 벡터 D→R2를 그대로 남겨 둔다. 이 제2결합점에 의한 처리에서도 제1결합점에 의한 처리와 마찬가지로 새로운 벡터 패턴에 대해서 미처리 벡터의 수를 판정한다(스텝 S25). 미처리 벡터가 하나인 때에는 이 벡터 패턴을 결선후보로서 취득하고 나서, 제3결합점에 의한 처리로 이동한다(스텝 S26). 미처리 벡터가 복수인 때에는 결선후보를 취득하지 않고 제3결합점에 의한 처리로 이동한다. 도 6의 조건 2에서도 미처리 벡터가 2개 남아 있음으로 결선후보는 취득하지 않고 제3결합점에 의한 처리로 이동하고 있다.
다음으로, 제3결합점에 의한 처리를 실시한다(스텝 S27). 이것이 도 6의 조건 3에 상당한다. 선택 벡터 페어에 속하는 2개의 벡터 중의 장 벡터의 종점을 제3결합점으로 하고, 이 제3결합점을 시점으로 하여 선택 벡터 페어에 속하는 2개의 벡터 중의 단 벡터의 종점을 종점으로 하는 벡터를 결선확정 벡터로 한다. 상기 단 벡터에 관련하는 미처리 벡터를 삭제하고, 상기 장 벡터에 관련하는 미처리 벡터를 그대로 남겨서 새로운 벡터 패턴을 작성한다. 도 6의 조건 3에서 설명하면, 벡터 R3→R2를 결선확정 벡터로 하고, 단 벡터에 관련하는 미처리 벡터 D→R2를 삭제하고, 장 벡터에 관련하는 미처리 벡터 D→R3을 그대로 남긴다. 이 제3결합점에 의한 처리에서도 제1결합점 및 제2결합점에 의한 처리와 마찬가지로, 새로운 벡터 패턴에 대하여 미처리 벡터의 수를 판정한다(스텝 S28). 미처리 벡터가 하나인 때엔, 이 벡터 패턴을 결선후보로서 취득하고 나서(스텝 S29), 이 서브루틴을 빠져서 도 11의 플로차트로 복귀한다. 미처리 벡터가 복수인 때엔, 결선후보를 취득하지 않고 이 서브루틴을 빠져서 도 11의 플로차트로 복귀한다. 도 6의 조건 3에서도 미처리 벡터가 2개 남아있음으로 결선후보는 취득하지 않고 도 11의 플로차트로 복귀하고 있다.
도 12의 결선후보 취득의 서브루틴을 실행하면, 하나의 벡터 패턴으로부터 새로운 3개의 벡터 패턴이 생긴다. 이들의 벡터 패턴에 포함되는 미처리 벡터가 하나인 때에는 그 벡터 패턴을 결선후보로서 취득한다. 미처리 벡터가 복수 남아 있을 때에는 그 벡터 패턴에 대하여 도 11의 플로차트로 복귀하여 선택 벡터 페어를 결정한 다음에 결선후보 취득의 서브루틴을 반복하게 된다. 리시버가 3개인 때에는 미처리 벡터가 하나로 감소하기까지 결선후보 취득 루틴을 2회 반복하게 된다. 따라서 취득하는 결선후보의 수는 원칙적으로 3ㅧ 3=9개가 된다. 이것이 도 7~9의 조건 1-1~3-3의 9개의 결선후보이다.
결선후보 취득의 서브루틴을 빠지면 도 11의 플로차트로 복귀하여 미처리 패턴의 판정을 실행한다(스텝 S16). 여기서는 결선후보의 취득에 이르지 않는 벡터 패턴(즉, 미처리 벡터를 복수개 포함하는 벡터 패턴이고, 이것을 미처리 패턴이라고 부른다.)이 남아있는지의 여부를 판정한다. 남아있을 때에는 임의의 미처리 패턴을 선택해서(스텝 S17), 각 벡터 페어의 중복 길이를 산출하는 스텝으로 복귀한다. 미처리 패턴이 남아 있지 않으면 결선후보의 취득이 모두 완료하고 있는 것이 됨으로, 최적 배선경로 취득의 서브루틴으로 이동한다(스텝 S18).
도 13은 최적 배선경로 취득의 서브루틴의 플로차트이다. 우선, 그때까지 취득한 복수의 결선후보 각각에 대하여 총 배선길이를 구한다. 그 중에서 최소의 총 배선길이를 가지는 결선후보를 찾는다(스텝 S31). 이 기능은 도 7~9에 표시한 9개의 결선후보 중에서 총 배선길이 TL이 가장 작은 것을 찾는 작업에 상당한다. 이 결선후보가 하나인 경우에는(스텝 S32), 그 결선후보를 최적 배선경로로서 취득한다. 복수인 경우에는 그들의 결선후보에 대하여 다시 최대 DR간 배선길이를 비교한다(스텝 S33). 그리고 최대 DR간 배선길이가 가장 작은 결선후보를 최적 배선경로로서 취득한다(스텝 S34). 상술한 예에서는 도 10에 표시한대로, 총 배선길이 TL이 가장 작은 것으로서 조건 1-1과 2-1이 발견되어 그 중에서 최대 DR간 배선길이가 작은 쪽의 조건 2-1을 최적 배선경로로 하고 있다. 이상으로 본 프로그램의 동작이 종료한다.
여기서 본 프로그램에서 얻어지는 최적 배선경로와 종래 기술에서 얻어지는 최적 배선경로를 비교한다. 도 10에 표시하는 조건 1-1의 배선경로(본 프로그램에서 최적 배선경로로서 얻어진 것)는, 상술한 특허문헌 3에 기재되어 있는 중복코스트 최대화법에서도 얻을 수 있는 것이다. 조건 1-1은 2회의 결합점 처리에서 어느 것이나 제1결합점을 채용한 것이고, 이 처리는 기본적인 사고법으로서 드라이버로부터 리시버까지의 배선거리가 항상 최단이 되도록 배선경로를 공통화 해 가는 것에 상당한다. 이 사고법은 상술한 중복코스트 최적화법과 실질적으로 동일한 것이다. 따라서 조건 1-1의 배선경로가 중복코스트 최적화법에서 얻어지는 배선경로와 동일하게 되는 것은 당연하다.
도 10에 나타낸 조건 2-1의 배선경로(본 프로그램에서는 최적 배선경로로서 채용되지 않았던 것)는 상술한 특허문헌 1에 기재되어 있는 슈타이너 나무의 근사해법에서 얻어지는 것과 같다. 슈타이너 나무의 근사해법은 총 배선길이가 최소인 배선경로를 얻기 위한 방법임으로, 조건 2-1과 같이 최소의 총 배선길이의 것이 얻어진다. 그러나 슈타이너 나무의 근사해법은 드라이버로부터 리시버까지의 배선의 길이를 가능한 한 짧게 한다, 고 하는 사고법은 하고 있지 않음으로 조건 1-1의 배선경로가 얻어지지 않는다.
도 5의 단자배치 예 1만을 생각하면, 본 프로그램에서 얻어지는 배선경로는 중복코스트 최대화법으로 얻어지는 배선경로와 동등하다. 컴퓨터에 의한 처리량을 비교하면 본 프로그램에서는 처리의 도중단계에서 복수의 결선후보(리시버의 수가 증가하면 취득하는 결선후보의 수는 상당히 많아진다)를 취득하는 것에 대하여, 중복코스트 최대화법에서는 기본적으로 결선후보는 항상 1종류뿐이다. 그러므로 컴퓨터에 의한 처리량을 비교하면 중복코스트 최대화법의 쪽이 적어져서 유리하다. 그러나 후술하는 바와 같이 다른 단자배치 예를 생각하면, 중복코스트 최대화법으로 얻어지는 배선경로는 본 프로그램으로 얻어지는 배선경로보다도 총 배선길이가 길어지게 된다. 왜냐하면, 중복코스트 최대화법에서는 총 배선길이를 최소로 한다고 하는 사고법을 가지지 않기 때문이다.
도 14는 단자배치 예 2와 그 최적 배선경로를 나타낸 것이다. 단자배치 예 2는, 도 5의 단자배치 예에 대하여 다시 리시버 R4를 추가한 것이다. 이 단자배치 예 2에서는, 드라이버로부터 4개의 리시버로 향하는 미처리 벡터까지 기재한 상태에서 표시하고 있다. 이 단자배치 예 2에 대하여, 중복코스트 최대화법을 적용하면, 도 14의 중간 단과 같은 배선경로가 된다. 총 배선길이 TL은 21이고, 최대 DR간 배선길이는 12이다. 한편, 슈타이너 나무의 근사해법을 적용하면, 도 14의 하단과 같은 배선경로가 된다. 총 배선길이 TL은 18이고, 최대 DR간 배선길이는 18이다. 본 발명인이 의도하고 있는 최적 배선경로(즉, 본 프로그램이 지향하는 것)는, 총 배선길이가 최소이고 또한 이와 같은 배선경로가 복수 존재하는 것이라면, 그 중에서 최대 DR간 배선길이가 최소인 것이 된다. 따라서 도 14의 하단의 배선경로 쪽이 총 배선길이가 작음으로 바람직한 것이다. 그리고 단자배치 예 2에 대하여 본 프로그램을 적용하면, 최적 배선경로 로서는 도 14의 하단의 배선경로가 얻어진다. 즉, 단자배치 예 2의 경우에는 중복 코스트 최대화법에서는 최적 배선경로가 얻어지지 않고 슈타이너 나무의 근사해법에서 얻어지는 것(그리고 본 프로그램에서 얻어지는 것)이 최적 배선경로가 된다.
이상 설명한 바와 같이, 「총 배선길이가 최소이고 또한 이와 같은 배선경로가 복수 존재하는 것이라면 그 중에서 최대 DR간 배선길이가 최소인 것 」을 찾는다고 하는 목적에 대하여 그것을 어떠한 단자배치라 하더라도 달성하기 위해서는 중복코스트 최대화법으로는 불충분하며(단자배치 예 2에서는 최적 해법이 얻어지지 않음), 또 슈타이너 나무의 근사해법으로도 불충분하다(단자배치 예 1에서는 최적해법이 얻어지지 않음). 본 발명의 프로그램을 사용하면 발명인이 인식하는 한에 있어서 어떠한 단자배치라 하더라도 상술한 목적을 달성할 수가 있다.
그런데, 많은 단자배치 예에 있어서 제1결합점(선택 벡터 페어의 중복 벡터의 종점을 결합점으로 하는 것)과 제2결합점(선택 벡터 페어의 단 벡터의 종점을 결합점으로 하는 것)만을 채용함으로써 최적 경로배치를 얻을 수가 있다. 그러나 발명인이 여러모로 검토하여 본 바, 이 2개의 결합점만으로는 반드시 최소의 총 배선길이가 얻어지지 않는다는 것이 판명되었다. 그래서 본 발명에서는 제3결합점(선택 벡터 페어의 장 벡터의 종점을 결합점으로 하는 것)까지를 적용하여 결선후보를 취득하고 있다.
도 15는 제3결합점을 채용하는 것의 이점을 설명한 것이며, 단자배치 예 3과 그 최적 배선경로를 나타내고 있다. 단자배치 예 3은 하나의 드라이버 D와 4개의 리시버 R1~R4를 포함하고 있다. 제3결합점을 고려하지 않는 경우(제1결합점과 제2결합점을 이용하여 결선후보를 취득한 경우)는 최종적으로 얻어지는 최적 배선경로는 같은 도면 하단 좌측의 배선경로가 된다. 총 배선길이 TL은 13이고, 최대 DR간 배선길이 PL은 9이다. 한편, 제3결합점까지 고려하는 경우엔, 최종적으로 얻어지는 최적 배선경로는 같은 도면 하단 우측의 배선경로가 된다. 총 배선길이 TL은 12이고, 최대 DR간 배선길이 PL은 10이다. 발명인이 의도하는 것은 「총 배선길이가 최소이고 또한, 그와 같은 배선경로가 복수 존재하는 것이면 그 중에서 최대 DR간 배선길이가 최소인 것」을 찾는 것임으로 제3결합점을 고려하는 경우의 최적 배선경로의 쪽이 발명인의 의도에 합치하는 것이다.
도 16은 단자배치 예 4와 그 최적 배선경로를 나타내고 있다. 이 단자배치 예 4는 현실의 배선기판에 있어서의 단자배치를 상정한 것이다. 하나의 드라이버 D와 6개의 리시버 R1~R6을 포함하고 있다. 이 단자배치 예 4에 대하여 본 프로그램을 적용하면 같은 도면 하단의 최적 배선경로가 얻어진다.
D 드라이버 (신호원 단자)
R1~R6 리시버 (신호수신 단자)
N1~N2 결합점
R1~R6 리시버 (신호수신 단자)
N1~N2 결합점
Claims (2)
- 하나의 신호원 단자와 복수의 신호수신 단자를 배선하여 배선경로를 작성하기 위한 프로그램으로서, 컴퓨터에 다음의 (a)내지 (j)의 기능을 실현시키기 위한 프로그램.
(a)서로 직교하는 X축과 Y축으로 이루어진 2차원 좌표계에 있어서, 상기 신호원 단자의 좌표와 상기 복수의 신호수신 단자의 각각의 좌표를 취득하는 단자 좌표 취득기능.
(b)상기 신호원 단자를 어미 노드라 정하고, 상기 복수의 신호수신 단자를 아들 노드라 정하여 상기 어미 노드를 시점으로 하여 상기 복수의 아들 노드를 각각 종점으로 하는 복수의 벡터를 미처리 벡터라 정하고, 초기상태의 벡터 패턴을 작성하는 벡터 패턴 작성기능.
(c)상기 복수의 미처리 벡터에 포함되는 임의의 2개의 벡터로 구성된 가능한 모든 벡터 페어에 대하여, 그 벡터 페어에 속하는 2개의 벡터의 X좌표의 중복치와 Y좌표의 중복치의 합을 산출하여, 그 합이 최대가 되는 하나의 벡터 페어를 선택하여 그 선택 벡터 페어(이하, 「선택 벡터 페어」라 한다.)에 대하여 상기 X좌표의 중복치와 상기 Y좌표의 중복치로 이루어진 좌표를 종점으로 하여 상기 신호원 단자를 시점으로 하는 벡터(이하, 「중복 벡터」라 한다.)를 작성하는 중복 벡터 작성기능.
(d)상기 선택 벡터 페어에 대하여, 상기 중복 벡터의 종점을 제1결합점으로 하고, 이 제1결합점을 시점으로 하여 상기 선택 벡터 페어에 관련한 2개의 상기 신호수신 단자를 종점으로 하는 2개의 벡터를 결선확정 벡터로 하여, 이들의 결선확정 벡터에 관련한 2개의 미처리 벡터를 삭제하고, 상기 중복 벡터를 새로이 미처리 벡터로 정하고, 새 벡터 패턴을 작성하는 제1결합기능.
(e)상기 선택 벡터 페어에 대하여, 상기 선택 벡터 페어에 속하는 2개의 벡터중의 짧은 쪽의 벡터(이하, 「단(短) 벡터」라고 한다.)의 종점을 제2결합점으로 하고, 이 제2결합점을 시점으로 하여 상기 선택 벡터 페어에 속하는 2개의 벡터중의 긴 쪽의 벡터(이하, 「장(長) 벡터」라 한다.)의 종점을 종점으로 하는 벡터를 결선확정 벡터로 하고, 상기 장 벡터에 관련한 미처리 벡터를 삭제하고, 상기 단 벡터에 관련한 미처리 벡터를 그대로 남겨서, 새 벡터 패턴을 작성하는 제2결합기능.
(f)상기 선택 벡터 페어에 대하여, 상기 선택 벡터 페어의 장 벡터의 종점을 제3결합점으로 하고, 이 제3결합점을 시점으로 하여 상기 선택 벡터 페어의 단 벡터의 종점을 종점으로 하는 벡터를 결선확정 벡터로 하고, 상기 단 벡터에 관련한 미처리 벡터를 삭제하여, 상기 장 벡터에 관련한 미처리 벡터를 그대로 남겨서 새 벡터 패턴을 작성하는 제3결합기능.
(g)상기 제1결합기능, 제2결합기능 및 제3결합기능을 각각 실행한 후에, 미처리 벡터가 하나인가 아닌가의 여부를 판단해서, 미처리 벡터가 하나인 때에는 그 시점에서의 벡터 패턴을 결선후보로서 취득하고, 미처리 벡터가 복수인 때에는 그 시점에서의 벡터 패턴을 미처리 패턴으로서 취득하는 결선후보 취득기능.
(h)상기 미처리 패턴이 남아 있는지 아닌지의 여부를 판단해서, 미처리 패턴이 남아 있을 때에는 임의의 미처리 패턴을 선택하여 상기 중복 벡터 작성기능에서부터 상기 결선후보 취득기능까지를 반복해고, 미처리 패턴이 남아 있지 않을 때에는 결선후보의 취득을 완료시키는 미처리 패턴 존재여부 판단기능.
(i)취득한 복수의 결선후보의 각각에 대하여 총 배선길이를 구하는 총 배선길이 산출기능.
(j)상기 복수의 총 배선길이에 대하여, 최소의 총 배선길이를 가지는 결선후보가 하나인 때에는, 그 결선후보를 최적 배선경로로서 취득하고, 최소의 총 배선길이를 가지는 결선후보가 복수인 경우에는 이들의 결선후보에 있어서, 상기 신호원 단자와 복수의 상기 신호수신 단자를 연결하는 배선의 길이(이하, 「DR간 배선길이」라 한다.) 중에서 최대의 것을 결선후보끼리 서로 비교하여, 최대 DR간 배선길이가 가장 작은 결선후보를 최적 배선경로로서 취득하는 최적 배선경로 취득기능. - 프로그램 되어 있는 컴퓨터에 의하여, 하나의 신호원 단자와 복수의 신호수신 단자를 배선하여 배선경로를 작성하는 방법으로서 다음의 (a)내지 (j)의 스텝을 포함한 방법.
(a)서로 직교하는 X축과 Y축으로 이루어진 2차원 좌표계에 있어서, 상기 신호원 단자의 좌표와 상기 복수의 시호수신 단자의 각각의 좌표를 취득하는 단자좌표 취득 스텝.
(b)상기 신호원 단자를 어미 노드로 정하고, 상기 복수의 신호수신 단자를 아들 노드로 정하여, 상기 어미 노드를 시점으로 하여 상기 복수의 아들 노드를 각각 종점으로 하는 복수의 벡터를 미처리 벡터로 정해서, 초기상태의 벡터 패턴을 작성하는 벡터 패턴 작성 스텝.
(c)상기 복수의 미처리 벡터에 포함되는 임의의 2개의 벡터로 이루어진 가능한 모든 벡터 페어에 대하여, 그 벡터 페어에 속하는 2개의 벡터의 X좌표의 중복치와 Y좌표의 중복치의 합을 산출하고, 그 합이 최대가 되는 하나의 벡터 페어(이하, 「선택 벡터 페어」라 한다.)를 선택해서, 그 선택 벡터 페어에 대하여 상기 X좌표의 중복치와 상기 Y좌표의 중복치로 구성된 좌표를 종점으로 하여 상기 신호원 단자를 시점으로 하는 벡터(이하, 「중복 벡터」라 한다.)를 작성하는 중복벡터 작성스텝.
(d)상기 선택 벡터 페어에 대하여, 상기 중복벡터의 종점을 제1결합점으로 하고, 이 제1결합점을 시점으로 하여 상기 선택 벡터 페어에 관련한 2개의 상기 신호수신 단자를 종점으로 하는 2개의 벡터를 결선확정 벡터로 하고, 이들의 결선확정 벡터에 관련한 2개의 미처리 벡터를 삭제하고, 상기 중복 벡터를 새로 미처리 벡터로 정하여 새 벡터 패턴을 작성하는 제1결합스텝.
(e)상기 선택 벡터 페어에 대하여, 상기 선택 벡터 페어에 속하는 2개의 벡터중의 짧은 쪽의 벡터(이하, 「단 벡터」라 한다.)의 종점을 제2결합점으로 하고, 이 제2결합점을 시점으로 하여 상기 선택 벡터 페어에 속하는 2개의 벡터중의 긴 쪽의 벡터(이하, 「장 벡터」라 한다.)의 종점을 종점으로 하는 벡터를 결선확정 벡터로 하고, 상기 장 벡터에 관련한 미처리 벡터를 삭제하여 상기 단 벡터에 관련한 미처리 벡터를 그대로 남겨서 새 벡터 패턴을 작성하는 제2결합스텝.
(f)상기 선택 벡터 페어에 대하여, 상기 선택 벡터 페어의 장 벡터의 종점을 제3결합점으로 하여, 이 제3결합점을 시점으로 하여 상기 선택 벡터 페어의 단 벡터의 종점을 종점으로 하는 벡터를 결선확정 벡터로 하고, 상기 단 벡터에 관련한 미처리 벡터를 삭제하여 상기 장 벡터에 관련한 미처리 벡터를 그대로 남겨서, 새 벡터 패턴을 작성하는 제3결합스텝.
(g)상기 제1결합스텝, 제2결합스텝 및 제3결합스텝을 각각 실행한 다음에, 미처리 벡터가 하나인가 아닌가의 여부를 판단해서, 미처리 벡터가 하나인 때에는 그 시점에서의 벡터 패턴을 결선후보로서 취득하고, 미처리 벡터가 복수인 때에는 그 시점에서의 벡터 패턴을 미처리 패턴으로서 취득하는 결선후보 취득스텝.
(h)상기 미처리 패턴이 남아 있는지 아닌지의 여부를 판단해서 미처리 패턴이 남아 있을 때에는 임의의 미처리 패턴을 선택하여 상기 중복 벡터 작성스텝으로부터 상기 결선후보 취득스텝까지를 반복하고, 미처리 패턴이 남아 있지 않을 때에는 결선후보의 취득을 완료시키는 미처리 패턴 존재여부 판정스텝.
(i)취득한 복수의 결선후보의 각각에 대하여 총 배선길이를 구하는 총 배선길이 산출스텝.
(j)상기 복수의 총 배선길이에 대하여, 최소의 총 배선길이를 가지는 결선후보가 하나인 경우에는 그 결선후보를 최적 배선경로로서 취득하고, 최소의 총 배선길이를 가지는 결선후보가 복수인 때에는 이들의 결선후보에 있어서, 상기 신호원단자와 복수의 상기 신호수신 단자를 연결하는 배선의 길이(이하, 「DR간 배선길이」라 한다.)중에서 최대의 것을 결선후보끼리 서로 비교하여, 최대 DR간 배선길이가 가장 작은 결선후보를 최적 배선경로로서 취득하는 최적 배선경로 취득스텝.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010293124A JP5590725B2 (ja) | 2010-12-28 | 2010-12-28 | 配線経路作成プログラム及び配線経路作成方法 |
JPJP-P-2010-293124 | 2010-12-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120075418A true KR20120075418A (ko) | 2012-07-06 |
KR101770185B1 KR101770185B1 (ko) | 2017-09-05 |
Family
ID=46318612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110143369A KR101770185B1 (ko) | 2010-12-28 | 2011-12-27 | 배선경로 작성프로그램 및 배선경로 작성방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8365130B2 (ko) |
JP (1) | JP5590725B2 (ko) |
KR (1) | KR101770185B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104503202B (zh) * | 2014-12-25 | 2018-10-16 | 上海华虹宏力半导体制造有限公司 | 重复设计单元的区分方法 |
CN108595378B (zh) * | 2018-05-10 | 2020-05-12 | 北京华大九天软件有限公司 | 一种异形版图中非正交端口的定义选择方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6239024A (ja) * | 1985-08-14 | 1987-02-20 | Fujitsu Ltd | 理論線長によるデイレ−解析処理装置 |
JP3138675B2 (ja) | 1997-12-05 | 2001-02-26 | 日本電気株式会社 | 多点網配線方法とそのための電子ハードウェア装置 |
US6295634B1 (en) | 1999-04-02 | 2001-09-25 | International Business Machines Corporation | Wiring design apparatus, wiring determination apparatus and methods thereof |
US7107564B1 (en) * | 2001-06-03 | 2006-09-12 | Cadence Design Systems, Inc. | Method and apparatus for routing a set of nets |
JP4376670B2 (ja) * | 2004-03-24 | 2009-12-02 | 富士通株式会社 | スタイナー木処理装置、スタイナー木処理方法及びスタイナー木処理プログラム |
US7571411B2 (en) * | 2006-01-12 | 2009-08-04 | International Business Machines Corporation | Methods and apparatus for providing flexible timing-driven routing trees |
US7859537B2 (en) * | 2007-01-23 | 2010-12-28 | Microsoft Corporation | Evaluation of self-intersecting vector graphics objects via planar map profiles |
US7725863B2 (en) * | 2007-02-27 | 2010-05-25 | Agate Logic, Inc. | Reverse routing methods for integrated circuits having a hierarchical interconnect architecture |
-
2010
- 2010-12-28 JP JP2010293124A patent/JP5590725B2/ja active Active
-
2011
- 2011-12-27 KR KR1020110143369A patent/KR101770185B1/ko active IP Right Grant
- 2011-12-28 US US13/338,875 patent/US8365130B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20120167032A1 (en) | 2012-06-28 |
KR101770185B1 (ko) | 2017-09-05 |
JP5590725B2 (ja) | 2014-09-17 |
US8365130B2 (en) | 2013-01-29 |
JP2012141715A (ja) | 2012-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Min et al. | Faster pipe auto-routing using improved jump point search | |
US20030223373A1 (en) | Dual Dijkstra search for planning multipe paths | |
CN105205205A (zh) | 基于网表位置信息最优划分的fpga粗粒度并行布线方法 | |
AU2020220223B2 (en) | Apparatus, method and software product for drilling sequence planning | |
US20160026747A1 (en) | Method for Determining a Sequence for Drilling Holes According to a Pattern using Global and Local Optimization | |
US7251802B2 (en) | Method and system for deciding a wiring route | |
JP2020154411A (ja) | ニューラルネットワーク装置 | |
CN102420797B (zh) | 一种拓扑映射方法及系统 | |
KR20120075418A (ko) | 배선경로 작성프로그램 및 배선경로 작성방법 | |
JP5550455B2 (ja) | ワイヤハーネス導通検査方法およびワイヤハーネス導通検査プログラム | |
US8726222B1 (en) | Method and system for routing optimally between terminals through intermediate vias in a circuit design | |
KR102594944B1 (ko) | 교착상태없는 변환을 위한 네트워크 온칩의 합성을 위한 시스템 및 방법 | |
TWI412947B (zh) | 佈局編輯之電腦可讀媒體、積體電路及方法 | |
JP7285805B2 (ja) | 多層構造内の経路ルーティングのための円形フレームの生成方法およびコンピューティング装置 | |
CN111062180A (zh) | 一种fpga布线方法及装置 | |
CN102867095B (zh) | 一种总线布线方法 | |
CN111780762B (zh) | 巡检路径生成方法、装置和存储介质 | |
CN118133765B (zh) | 芯片布线方法、装置、设备及存储介质 | |
KR102094980B1 (ko) | Psc 교량의 텐던 설계를 위한 3d 교량 텐던 캐드모델 생성 시스템 및 그 방법 | |
KR102682558B1 (ko) | 포인트 클라우드에서 인스턴스를 생성하는 방법 및 장치 | |
CN104932975B (zh) | 一种测试用例选择方法和装置 | |
Mata et al. | PCB Auto Routing Algorithm Based on Morphological Operations | |
CN117473935A (zh) | 可编程器件内硬核电路的线路布局确定方法及装置 | |
CN118102588A (zh) | 电路板自动布线方法、装置、设备以及计算机存储介质 | |
CN114186521A (zh) | 一种可实现并行布线的fpga设计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |