KR100910421B1 - 집적회로를 자동으로 배선하는 방법 및 시스템, 집적회로를 자동으로 배선하기 위한 하나 이상의 명령어로 구성된 하나 이상의 시퀀스를 갖는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 및 집적회로 레이아웃을 자동으로 검증하는 방법 - Google Patents

집적회로를 자동으로 배선하는 방법 및 시스템, 집적회로를 자동으로 배선하기 위한 하나 이상의 명령어로 구성된 하나 이상의 시퀀스를 갖는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 및 집적회로 레이아웃을 자동으로 검증하는 방법 Download PDF

Info

Publication number
KR100910421B1
KR100910421B1 KR1020017004914A KR20017004914A KR100910421B1 KR 100910421 B1 KR100910421 B1 KR 100910421B1 KR 1020017004914 A KR1020017004914 A KR 1020017004914A KR 20017004914 A KR20017004914 A KR 20017004914A KR 100910421 B1 KR100910421 B1 KR 100910421B1
Authority
KR
South Korea
Prior art keywords
integrated circuit
wiring
circuit device
wiring path
determining
Prior art date
Application number
KR1020017004914A
Other languages
English (en)
Other versions
KR20010087374A (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 KR20010087374A publication Critical patent/KR20010087374A/ko
Application granted granted Critical
Publication of KR100910421B1 publication Critical patent/KR100910421B1/ko

Links

Images

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/394Routing
    • 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/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • 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

Landscapes

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

Abstract

비직교 배선을 사용하여 집적회로를 배선하기 위한 컴퓨터 구현 방법이 두단계 동안 수행된다: 포괄 배선 단계 및 세부 배선 단계. 포괄 배선 동안, 힌트 다각형 형태의 배선 표시자가 집적회로 레이아웃에 추가되고, 새 와이어(wire)들에 대한 바이어스 방향 및 탈선 제한 조건을 포함하는 전략 리스트가 발생된다. 상기 힌트 다각형 및 전략 리스트는 세부 배선 동안에 새 와이어들을 위치시키는 것을 보조하기 위해 사용된다. 장애물 충돌 또는 부족한 공간 문제가 새 와이어의 세부 배선을 방해하는 경우에는, 포괄 배선의 장애물 해결 부분이 사용되어 장애물 충돌문제를 해결하고 및/또는 집적회로 레이아웃에 새 와이어들을 배선할 추가의 공간을 제공한다. 본 발명의 다른 관점에 따른, 장애물 해결책은, 어떠한 제한도 없이, 힌트 다각형을 변경시키거나 추가하는 단계, 바이어스 방향을 바꾸고 및/또는 탈선(straying) 한계를 조절하여 배선 전략을 변경은 단계, 하나 이상의 층 변경들을 삽입하는 단계, 세부 라우터로 하여금 굽힘(bend)을 백업하고 삽입하도록 하는 단계, 상기 와이어를 파기하고 재배선하는 단계, 또는 상기 목적지 연결점로부터 상기 와이어를 배선하는 단계를 포함한다. 또한 조밀한 배선 방법이 조밀한 레이아웃 영역에서 배선 경로 구축을 수용하기 위해 채용된다. 객체-특정 설계 규칙 체크가 배선 유동성 최적화 배선 성능을 증가시키기 위해 채용된다. 배선 경로가 구축되는 동안 "온-더-플라이(on-the-fly)" 설계 규칙 체크가 배선 경로의 부분 상에서 수행된다.

Description

집적회로를 자동으로 배선하는 방법 및 시스템, 집적회로를 자동으로 배선하기 위한 하나 이상의 명령어로 구성된 하나 이상의 시퀀스를 갖는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 및 집적회로 레이아웃을 자동으로 검증하는 방법{METHOD AND SYSTEM FOR AUTOMATICALLY ROUTING AN INTEGRATED CIRCUIT, COMPUTER-READABLE MEDIUM CARRYING ONE OR MORE SEQUENCES OF ONE OR MORE INSTRUCTIONS FOR AUTOMATICALLY ROUTING AN INTEGRATED CIRCUIT AND METHOD FOR AUTOMATICALLY VERIFYING AN INTEGRATED CIRCUIT LAYOUT}
본 발명은 집적회로에 관련된 것이며, 보다 상세하게는 집적회로를 배선하기 위한 방법에 관련된 것이다.
집적회로를 배선하는(routing) 것에는 집적회로 디바이스 및 셀들을 전기적으로 연결하기 위한 와이어(wire)의 위치를 결정하여 집적회로가 올바르게 동작하도록 하는 것이 포함된다. 소형 집적회로에 대해서, 배선은 집적회로에 필요한 연결을 하기 위해 수동으로 새 와이어를 추가하는 회로 설계자에 의해 수행될 수 있다. 자주, 설계자는 소자 및 셀의 위치를 바꿔서 새 와이어들을 위한 공간을 만든다. 수동 배선이 상대적으로 치밀한 설계를 제공할 수는 있지만, 수동 접근 방식은 수백 만개의 트랜지스터를 포함하는 대형 집적회로에는 비현실적이다.
대형 집적회로에 대해서, 배선은 통상적으로 CAD(computer-aided design) 시스템 상에서 소프트웨어 툴로 구현되는 "라우터"로 알려진 배선 메카니즘에 의해 자동적으로 수행된다. 라우터는 집적회로("레이아웃";layout) 및 상기 집적회로 레이아웃("네트리스트";netlist)에 포함된 소자들 및 셀들 사이에 만들어진 전기 연결의 데이터 표현을 수신한다. 상기 라우터는 특정 연결을 만들기 위해 집적회로 레이아웃의 어디에 새 와이어를 위치시킬 것인가를 결정한다. 새 와이어의 위치는, 새 와이어의 길이 및 위치가 집적회로의 성능에 직접적인 영향을 미칠 수 있으므로 중요하다. 라우터가 새 와이어를 위치시킬 곳을 결정한 후에, 라우터는 새 와이어를 반영하도록 집적회로 레이아웃을 업데이트한다.
배선은 통상적으로 포괄 배선 및 세부 배선의 두가지 상태로 수행된다. 포괄 배선은 일반적으로 새 와이어의 개략적인 위치를 결정하는 단계를 포함한다. 관습적으로, 어느 포인트들이 연결될 것인가를 결정하기 위해 스패닝 트리(spanning tree)가 만들어진다. 스패닝 트리의 한 특정 타입으로서 슈타이너 트리(Steiner tree)가 있으며, 연결점들의 원래 리스트에 있지 않던 이른바 슈타이너 포인트라고 불리는 새 포인트들을 허용한다. 새 포인트들은 포인트 쌍들을 연결하는데 있어서 추가의 유연성을 제공하고, 10 내지 15%까지 총 와이어의 길이를 감소시켜서 신호 전송시간을 줄일 수 있다.
세부 배선 상태동안, 상기 라우터는 새 와이어를 추가하므로써 각 포인트 쌍들 사이의 연결을 구현한다. 이상적으로는, 모든 새 와이어들은 특정 연결점들 사이의 직선으로 구현될 것이다. 그러나, 새 와이어들은 보통 장애물, 즉 소자 및 셀들을 피하기 위해, 레이아웃에서 굽혀져야 한다. 추가로, 주어진 포인트 쌍들 사이의 각은 보통 라우터에 의해 지원되는 각도(대부분의 현재 라우터들에 대해서는 90도의 정수배)가 아닐 것이며, 따라서 와이어의 모든 컴포넌트들이 합리적인 방향을 갖도록 확실히 하기 위해서는 적어도 한번의 굽힘이 필요할 것이다. 그리하여, 다양한 배선 방법이 새 와이어의 위치를 최적화하기 위해 사용된다. 이러한 방법 중에는 채널 배선 방법과 영역 배선 방법이 포함된다.
채널 배선 방법은 일반적으로 2차원 영역 배선 문제를 일련의 1차원 채널 배선 문제로 변환하는 단계를 포함한다. 채널 배선 방법의 설명을 위해서는, VLSI를 위한 CAD 입문(Introduction to CAD for VLSI, 초판(1987), Stephen M.Trimberger 저, Kluwer Academic Publishers, Boston, ISBN 0-89838-231-9)을 보기 바람.
채널 배선 방법에 있어서, 라우터는 새 와이어가 수평으로 이동할 채널 및 새 와이어가 채널들 사이에서 수직으로 이동할 슬롯을 선택한다. 많은 이러한 선택들은 열에서 기준셀의 위치에 기초를 두고 있다. 채널 라우터는 채널의 높이를 최소화하는 시도에서 수평 배선 트랙의 사용을 최적화 한다. 이것은 NP-하드(hard)이기는 하지만, 대부분의 채널 라우터들은 채널의 각 네트가 한개의 배선 트랙 내에 한개의 수평 척추(spine)를 갖는다는 제한조건을 부과한다. 이러한 제한 조건하에서, 각 트랙은 그래프 컬러링(graph coloring) 알고리즘을 사용하여 각 슬롯 위치의 서로 다른 네트에 할당된다. 수평 와이어들이 한 층에서 배선되고, 수직 와이어들은 두번째 층에서 배선된다. 더 많은 층들이 사용가능한 경우에는, 상기 층들은 통상적으로 방향을 교번한다. 대부분의 상업적 라우터들은 세부 배선을 수행하기 위해 몇몇 형태의 채널 라우터를 사용하여 그 채널을 압축하여 네트 당 다수의 척추를 갖는 경우를 시뮬레이션 한다. 도 1A는 3개의 배선 트랙을 갖는 채널을 필요로 하는 집적회로 레이아웃(100)의 한 부분에 대한 블록도이다. 도 1B는 4개의 배선 트랙을 갖는 채널을 필요로 하는 집적회로 레이아웃(150)의 한 부분에 대한 블록도이다. 상기 채널은 압축되어 3개의 배선 트랙에 상당하는 공간을 사용한다.
채널 배선 방법의 주된 이점은 크기 및 유연성을 희생하기는 하지만 매우 단순하다는데 있다. 그러나, 상기 채널 배선 방법도 단점이 없지는 않다. 상세하게 말하면, 상기 채널 배선 방법은 상기 채널까지 연장하는 장애물이 매우 많은 경우나 핀들 및/또는 장애물들이 상기 배선 영역의 중간에 있는 경우 또는 배선될 영역의 4개의 측면 모두에 핀 연결이 있는 경우에는(이 경우는 척추들에 대한 트랙을 할당하는 어려움을 크게 증가시킴) 비현실적 또는 불가능하게 된다.
고전적인 영역 라우터로는 미로 라우터(Maze Router)라고도 알려진 리 라우터(Lee Router)가 있는데, 배선되는 포인트 쌍들 사이의 모든 그리드 위치를 점진적으로 검색하므로써 한번에 한 와이어씩 배선한다. 상기 포인트들을 연결하는 방법이 있는 경우에는, 상기 리 라우터는 가장 효율적인 방법을 찾겠지만 검색될 위치들의 수가 매우 많다(특히 하나 이상의 층이 사용될 수 있는 경우에 그러함). 결과적으로, 영역 라우터는 일반적으로 그에 대응하는 채널 라우터보다 더 효과적이지만, 영역 라우터는 동작시키는데 실질적으로 더 많은 계산 수단을 필요로 하는 경향이 있고, 구현하기도 더 힘들다. 대형의 집적회로에 대해서는, 영역 라우터는 비현실적일 수 있다. "칩 레벨 영역 배선"(Chip Level Area Routing, 리-친 유진 류등 공저, 1998년 로직 설계에 관한 국제 심포지엄 회보 pp.197-204) 참조. 상기 저자들은 상기 틀을 영역 배선을 위한 더 작은 영역들로 나눈 점이 주지된다.
도 2는 장애물(208) 주위에서 소스 핀(204)으로부터 목적지 핀(206)으로의 경로를 구축하는데 어떻게 "파면(wave front)" 타입 검색이 사용되는지를 설명하는 블록도(200)이다. x축(210) 및 y축(212)에 의해 정의된 파면상의 각 포인트들에 대해, 4개의 인접한 그리드 위치는 그 위치가 관통되었는지, 장애물들인지 또는 서로 다른 와이어에 사용되었는지가 테스트되어야 한다. 라인(214)은 소스 핀(204)으로부터 18번째 유닛의 포인트들의 궤적을 나타낸다. 관통되지 않고, 사용되지 않았으며, 장애물이 아닌 모든 위치는 다음 파면에 추가되어야 한다. 더 작은 그리드를 고르면 더 많은 위치들이 조사될 것이며, 상기 라우터는 통상적으로 접점 배선 피치 크기의 그리드 상에서 동작한다.
도 3A 및 3B는 각각 영역 라우터 또는 채널 라우터와 같은 라우터에서 배선 그리드를 사용하므로써 발생하는 공간 소모를 설명하는 블록도(300 및 350)이다. 접점 없는 와이어들은 통상적으로 10 내지 20% 공간을 더 적게 필요로 한다. 따라서, 접점을 갖는 와이어를 기초로 그리드를 배선하는 것은 상당한 양의 공간을 소모할 수 있다. 도 3A에서, 각각 폭이 0.5 람다(lambda)인 와이어(302 및 304;특정 유닛은 중요하지 않다)는, 접점(306) 및 접점(308) 사이에 필요로 하는 최소 공간인 0.5 람다 때문에, 1.25 람다의 피치를 갖는다. 대조적으로, 도 3B의 와이어들(352 및 354)은 접점을 갖지 않기 때문에, 1.0 람다의 피치를 갖는다.
리 라우터(Lee Router)가 다수의 배선 층으로 구현되는 경우에는, 파면의 각 포인트들은 훨씬 많은 가능성 : 상,하,좌,우,다음 배선 층 또는 이전 배선 층으로 갈 수 있는 가능성을 갖는다는 것을 주목하는 것이 중요하다. 리 라우터 같은 모든 시퀀셜 라우터(sequential router)는 개개 와이어들 사이의 간섭과 관련이 있다. 한 와이어를 완료하면 당연히 다른 와이어도 차단한다. 적절한 배선 순서가 일반적으로 미리 알려지지 않기 때문에, 영역 라우터는 통상적으로 파기(rip-up) 및 재배선의 형태를 구현하여야 하고, 여기서 수개의 존재하는 와이어들이 제거되고, 다른 와이어가 끌어당겨지며 상기 파기된 와이어들이 다시 끌어당겨진다. 이것은 훨씬 많은 차단이 되고, 추가의 재배선을 필요로 한다. 최악의 경우에는 영역 라우터는 모든 와이어들에 대한 실행 가능한 해결책을 제시할 수 없을 수도 있다.
기본적인 리 라우터에 많은 개선방안이 제시되어 왔다. 예컨대, 집적회로 레이아웃에 대한 조합 알고리즘(Combinatorial Algorithms for Integrated Circuit Layout, Thomas Lengauer 저, John Wiely & Sons Ltd., England, ISBN 0-471-92838-0)을 참조. 이러한 개선방안들은 직교 배선에 제한되어 있고, 대개 조잡한 배선 그리드의 사용을 필요로 한다는 사실은 주목할만 하다.
상업적인 집적회로 배선 도구들은 종종 우선 채널 배선 메카니즘을 사용하고, 그 다음 배선해제(unroute)가 완료되거나 일단 만들어진 후에 회로에서의 작은 변화를 구현하기 위해(즉 공업적 변경 요구;Engineering Change Orders or ECOs), 영역 배선 메카니즘을 사용하는데 이때 변화될 마스크 레벨의 생산량을 최소화하는 것이 유리하다. 통상적으로 자원 필요조건의 과소평가 때문에 채널 라우터로는 완료될 수 없었던 와이어 연결중 짧은 섹션들은 배선 해제된다. 이러한 상황에서, 채널에 트랙을 추가하면 모든 트랜지스터 열들은 서로 멀어질 것이며, 모든 마스크 레벨은 재구성되어야 할 것이다.
채널 배선 방법 및 영역 방법을 포함한 통상적인 배선 방법에서의 중요한 한계점은 정의된 와이어 주위의 구조를 변형시킬 수 없다는 것이다. 이러한 한계에 대한 몇가지 이유가 있다. 한가지 이유는 많은 통상적인 라우터들이 소정의 셀들만을 연결하는 엄격한 셀간 라우터라는 것 때문이다. 다른 이유는 대부분의 통상적인 배선 방법은 와이어들에 대한 직교 구조만을 사용하고, 그것을 통과하는 와이어가 비직교가 아닐 경우에는, 엔클로져(enclosure)의 코너 클리핑(corner clipping)과 같은 구조 변화가, 장점을 제공하지 못한다는 점 때문이다. 세번째 이유는 비직교 와이어는 조잡한 배선 그리드에 효과적으로 잘 맞지 않고, 그리드 크기를 낭비시키거나 "그리드없는" 라우터를 필요로 하기 때문이다. 일부 그리드없는 라우터들이 설계되었지만, 그들 중 어느 것도 비직교 와이어를 배선할 수 없다. 비직교 배선은 직교 배선에 비해 전체 와이어 길이를 7%까지 감소시켜서, 영역을 절약하고 동시에 딜레이를 감소시킨다.
그러므로, 집적회로에서의 경로 연결의 필요성 및 이전 방법에서의 한계점을 기초로 하여, 전형적인 배선 방법 고유의 한계점을 갖는 집적회로를 자동적으로 배선하기 위한 방법이 매우 바람직하다.
본 발명의 한 관점에 따라, 컴퓨터-구현 방법이 자동적으로 집적회로를 배선하기 위해 제공된다. 본 방법에 따라, 상기 집적회로에 포함될 2이상의 집적회로 디바이스들 세트를 정의하는 집적회로 레이아웃(layout) 데이터가 수신된다. 집적회로 디바이스들 사이에 만들어질 하나 이상의 전기 연결을 특정하는 집적회로 연결 데이터도 수신된다. 2 이상의 집적회로 디바이스로부터 제1 및 제2 집적회로 디바이스들 사이의 경로를 배선하기 위한, 하나 이상의 바람직한 중간 배선 위치의 세트를 표시하는 배선 표시자들 세트가 집적회로 레이아웃 및 집적회로 연결 데이터를 기초로 결정된다. 배선 경로는 집적회로 레이아웃 데이터, 집적회로 연결 데이터 및 하나 이상의 배선 표시자들 세트를 기초로 제1 및 제2 집적회로 디바이스들 사이에서 결정되고, 상기 배선 경로는 특정 설계 기준을 만족시킨다. 결국, 상기 집적회로 레이아웃 데이터는 제1 및 제2 집적회로 디바이스들 사이의 배선 경로를 반영하는 업데이트된 집적회로를 발생시키기 위해 업데이트된다.
본 발명의 또다른 관점에 따른 배선 전략이 배선 바이어스 방향 및 특정 배선 영역으로 배선 경로의 배선을 제한하는 이탈 한계(straying limit)를 포함하는 각 배선 경로에 채용된다.
본 발명의 또다른 관점에 따라, 배선 경로의 배선을 적용시키기 위한 하나 이상의 레이아웃 객체(object)에 대해 하나 이상의 변화가 수행된다. 이러한 변화들은, 아무런 제한 없이, 레이아웃 객체를 이동시키고 레이아웃 객체들의 코너를 클리핑(clipping)하는 단계를 포함한다.
본 발명의 다른 관점에 따라 배넌 경로의 배선을 수용하기 위해 장애물 해결책이 포함된다. 장애물 해결책은, 아무런 제한 없이, 힌트 다각형(hint polygon)을 변경하거나 추가하는 단계, 바이어스 방향을 바꾸고 및/또는 이탈 한계를 조절하여 배선 전략을 변경하는 단계, 하나 이상의 층 변경(layer change)을 삽입하는 단계, 세부 라우터로 하여금 굽힘(bend)을 백업하고 삽입하도록 하는 단계, 상기 와이어를 파기(rip-up)하고 재배선하는 단계, 또는 상기 타겟 연결점로부터 상기 와이어를 배선하는 단계를 포함한다. 또한 조밀한(tight) 배선 방법이 조밀한 레이아웃 영역에서 배선 경로 구축을 수용하기 위해 채용된다.
본 발명의 또다른 실시예에 따라, 배선 경로가 구축되는 동안 "온-더-플라이(on-the-fly)" 설계 규칙 체크가 배선 경로의 부분 상에서 수행된다. 또한, 레이아웃 객체-특정 설계 규칙 체크도 채용된다.
본 발명의 실시예들을 설명하고자 하는데, 첨부되는 도면의 예들은 제한의 의미가 아니며, 도면들에서 동일한 참조번호는 같은 엘리먼트를 가리킨다.
도 1A는 3개의 배선 트랙을 갖는 채널을 필요로 하는 집적회로 레이아웃의 부분에 대한 블록도.
도 1B는 4개의 배선 트랙을 갖는 채널을 필요로 하는 집적회로 레이아웃의 부분에 대한 블록도.
도 2는 "파면(wave front)"이 장애물 주위의 소스 핀으로부터 목적지 핀까지의 경로를 구축하는데 어떻게 사용되는가를 설명하는 블록도.
도 3A 및 도 3B는 영역 라우터 또는 채널 라우터와 같은 라우터에서 배선 그리드를 사용하므로써 발생되는 공간 소모를 설명하는 블록도.
도 4A는 본 발명의 한 실시예에 따른 집적회로를 배선하기 위한 방법을 설명하는 흐름도.
도 4B-도 4D는 스페이싱(spacing)의 예시 및 게이트에 적용가능한 확장 설계 룰을 설명하는 블록도.
도 4E는 본 발명의 실시예에 따른 단일 접점 접속점의 개개의 층을 설명하는 블록도.
도 4F는 본 발명의 실시예에 따른 접점 접속점의 라인을 설명하는 블록도.
도 4G는 본 발명의 실시예에 따른 접점 접속점의 어레이를 설명하는 블록도.
도 4H는 본 발명의 실시예에 따른 2개의 트랜지스터 게이트 접속점들을 설명하는 블록도.
도 4I는 본 발명의 실시예에 따른 외부 포트 직각 접속점을 설명하는 블록도.
도 4J는 본 발명의 실시예에 따른 단일층 브랜치(branch) 접속점들을 설명하는 블록도.
도 5A는 코너를 클리핑하지 않고 2개의 접점 사이의 와이어 배선을 설명하는 블록도.
도 5B는 본 발명의 실시예에 따른 코너 클리핑을 사용하여 두개의 접점 사이의 와이어 배선을 설명하는 블록도.
도 6A는 본 발명의 실시예에 따른 시작 접속점에서 끝 접속점까지 새 와이어를 배선하기 위한 바이어스 방향의 사용을 설명하는 블록도.
도 6B는 본 발명의 실시예에 따른 시작 접속점에서 끝 접속점까지 새 와이어의 배선을 콘트롤 하기 위한 이탈 한계의 사용을 설명하는 블록도.
도 7은 실시예에 따른 집적회로를 배선하는 동안 힌트 다각형의 사용을 설명하는 집적회로 부분에 대한 블록도.
도 8은 본 발명의 실시예에 따른 집적회로 레이아웃에 있는 새 와이어를 배선하기 위한 세부 배선 방법을 설명하는 하이레벨 흐름도.
도 9는 본 발명의 실시예에 따른 접속점들에 와이어 접점의 추가를 설명하는 블록도.
도 10A는 본 발명의 실시예에 따른 배선 스트레치(stretch)를 발생시키기 위한 방법을 설명하는 흐름도.
도 10B는 본 발명의 실시예에 따른 배선 스트레치를 확장하기 위한 방법을 설명하는 흐름도.
도 11은 본 발명의 실시예에 따른 응용가능 설계 규칙 세트의 한계 내에서, 세부 배선 동안에 연결점들을 변경하는 것을 설명하는 블록도.
도 12는 본 발명의 실시예에 따른 트랜지스터 아일랜드(island)의 코너를 클리핑하기 위한 방법을 설명하는 블록도.
도 13A 및 도 13B는 본 발명의 실시예에 따른 트랜지스터 소스/드레인 접점 위치를 조절하여 새 와이어의 배선을 수용하도록 하는 것을 설명하는 블록도.
도 14A-도 14H는 본 발명의 실시예에 따른 굽힘 방향을 결정하기 위한 방법을 설명하는 블록도.
도 15는 본 발명의 실시예에 따른 배선 경로의 확장에 기인하는 도그본(dogbone) 스페이싱 규칙의 위반(violation)을 설명하는 블록도.
도 16은 본 발명의 실시예에 따른 와이어 연결을 정의할때 접점 주위의 엔클로져를 일시적으로 감소시키기 위한 방법을 설명하는 블록도.
도 17A 및 도 17B는 본 발명의 실시예에 따른 배선을 하는 동안, 접근 표시자의 사용을 설명하는 블록도.
도 18은 본 발명의 실시예에 따른 설계 규칙을 체크하는 동안 짧은 경로 표시자의 사용을 설명하는 블록도.
도 19는 본 발명의 실시예에 따른 배선 경로 설계 규칙 체크를 수행하는 것을 설명하는 블록도.
도 20은 본 발명의 실시예에 따른 배선 경로 설계 규칙 수행을 체크하는 것을 설명하는 블록도.
도 21은 본 발명의 실시예에 따른 배선 경로 및 접점 엔클로져 접속점들 사이의 설계 규칙 체크 수행을 위한 방법을 설명하는 블록도.
도 22A-도 22F는 본 발명의 실시예에 따른 조밀한 배선 방법 수행을 설명하는 블록도.
도 23은 본 발명의 실시예에 따른 힌트 다각형을 집적회로 레이아웃에 추가하므로써 장애물 충돌 문제를 해결하기 위한 방법을 설명하는 블록도.
도 24는 본 발명의 실시예에 따른 이탈 한계를 조절하므로써 장애물 충돌 문제를 해결하기 위한 방법을 설명하는 블록도.
도 25A 및 도 25B는 본 발명의 실시예에 따른 층 변경을 삽입하므로써 장애물 충돌 문제를 해결하기 위한 방법을 설명하는 블록도.
도 26은 본 발명의 실시예에 따른 세부 배선으로 하여금 배선 경로의 굽힘을 백업하고 삽입하도록 하므로써 장애물 충돌 문제를 해결하기 위한 방법을 설명하는 블록도.
도 27은 본 발명의 실시예들이 구현된 컴퓨터 시스템의 블록도.
지금 부터 본 발명의 완전한 이해를 위해 특정예를 들어 설명 하고자 한다. 그러나, 본 발명이 이러한 특정 설명 없이도 실행될 수 있다는 사실은 명백하다. 이외의 경우에, 잘 알려진 구조 및 소자들은 불필요하게 발명을 불분명하게 만드는 것을 피하기 위해 블록도 형태로 설명된다.
본 발명의 실시예에 대한 다양한 관점 및 특징들이 다음 섹션에서 더 상세히 설명될 것이다. :(1)서론; (2)기능적 개관; (3)적용가능한 원리들; (4)포괄 배선; (5)세부 배선; (6) 장애물 및 불충분한 공간 해결책; (7)구현 메카니즘.
1. 서론
비직교 배선을 사용하는 집적회로를 배선하기 위한 컴퓨터-구현 방법을 설명하고자 한다. 상기 방법은 셀내(intra-cell) 및 셀간(inter-cell) 응용 모두에 응용가능하며, 배선을 위한 프로세스 설계 규칙 및 접점 층들이 전형적인 라우터들을 사용하기 어려워지는 경우에는 직교 배선과 함께 사용하는데 적용될 수 있다. 일반적으로, 배선은 2단계로 수행된다: 포괄 배선(global routing) 단계 및 세부 배선(detailed routing) 단계. 포괄 배선 동안에, 힌트 다각형이 집적회로 레이아웃에 추가되고, 전략 리스트들이 추가될 새 와이어들에 대해 발생된다. 힌트 다각형들 및 전략 리스트들이 새 와이어들을 보조하기 위해 세부 배선 동안 사용된다. 장애물 충돌 문제 또는 불충분한 공간 문제들이 새 와이어의 세부 배선을 방해하는 경우에는, 포괄 배선의 장애물 해결책 부분이 장애물 충돌 문제를 해결하고 및/또는 집적회로 레이아웃에 추가의 공간을 제공하여 새 와이어들을 배선 하는데 사용된다. 그리하여, 세부 배선을 단순화시키기 위해 주된 변화는 일반적으로 포괄 배선 동안에 만들어진다.
2. 기능적 개관
본 발명의 한 실시예에 따른 집적회로를 배선하기 위한 방법이 도 4A의 흐름도(400)에 설명되어 있다. 스텝(402)에서 시작한 뒤에, 스텝(404)에서, 집적회로의 데이터 표현 및 연결 데이터가 수신된다. 상기 데이터 표현은 집적회로에 포함된 소자 및 셀들을 특정하고 통상적으로 집적회로 합성 도구에 의해 제공된다. 상기 연결 데이터는 전기적으로 연결될 집적회로에서의 위치를 특정한다.
스텝(406)에서는, 포괄 배선이 수행된다. 아래에서 더 상세히 설명될 바와 같이, 포괄 배선은 노드 그래프 및 접속점들을 발생시키고, 배선을 준비할때 레이아웃의 구조를 바꾸고, 세부 배선 동안에 새 와이어들의 위치에서 하나 이상의 힌트 다각형 및 전략 리스트 세트를 발생하는 단계를 포함한다. 포괄 배선은 또한 장애물 충돌문제 또는 불충분한 공간문제가 세부 배선 동안에 새 와이어의 배선을 방해할때, 장애물 해결 수단을 수행하는 단계를 포함한다.
스텝(408)에서는, 연결점들 사이에 새 와이어들을 발생 및 위치시키는 세부 배선이 수행된다. 스텝(410)에서는, 새 와이어가 장애물 충돌문제 또는 불충분한 공간때문에 배선될 수 없는지에 대한 판단이 내려진다. 이러한 이유들때문에 새 와이어가 배선될 수 없는 경우에는, 제어는 스텝(406)의 포괄 배선으로 돌아가고, 여기서 장애물 해결 수단이 수행되어 장애물 충돌문제를 해결 및/또는 새 와이어를 배선할 추가의 공간을 제공한다.
스텝(410)에서, 세부 배선이 장애물 충돌문제 또는 불충분한 공간 문제없이 완료되었다는 판단이 내려지고, 스텝(412)에서 상기 집적회로의 데이터 표현이 업데이트되어 특정 연결을 만들기 위해 추가된 새 와이어들이 반영된다. 상기 프로세스는 스텝(414)에서 완료된다. 흐름도(400)의 스텝들은 신규한 배선 접근 방식에 대한 하이-레벨 이해를 제공하며 모든 가능한 시나리오를 반영하지는 않는다. 예를 들어, 스텝(406)의 포괄 배선에 있어서 문제는 해결되지 않을 수 있다. 이러한 상황에서, 포괄 배선은 결국 정지되고, 문제점들이 확인되어 설계자는 상기 문제점들을 수동으로 해결할 수 있다. 다른 예로서, 어떤 설계자들은 자동 배선이 완료될 때까지 오랜 시간을 기다리기 보다는 상대적으로 적은 수의 배선되지 않은 와이어들을 고치기를 더 선호한다. 이러한 상황에서, 사용자 선택가능 임계값이 채용되어 사용자로 하여금 언제 자동 배선이 멈춰질 것인가를 특정하도록 하는 것이 가능하다.
3.적용가능한 원리들
수개의 원리들이 여기에 설명된 집적회로를 배선하기 위한 방법에 적용가능하다. 이러한 원리들의 이해는 포괄 배선 및 세부 배선에 대한 더 나은 이해를 제공할 것이다. 이러한 원리들은 접속점, 배선 기준점 및 코너 클리핑을 포함하며, 이하에서 보다 상세히 설명된다.
a. 접속점
표준 산업 관행에서 전형적인 바와 같이, 집적회로에서 배선될 각 노드(네트)는 두부분으로 된 그래프에 의해 표현되고, 연결을 표현하는 노드들(핀들 또는 슈타이너 포인트)은 임의 개수의 에지들에 의해 접속된다. 상기 연결들은 여기서 "접속점(joint point)"라고 명명된다. 본 발명의 실시예에 따라서, 각 접속점은 객체-지향 기술을 사용하여 구현되고, 이것은 모든 접속점 타입에 공통적인 절차적 인터페이스를 갖는다는 것을 의미한다. 각 접속점은 모든 적용가능한 너비, 자가-스페이싱(self-spacing) 및 엔클로져 규칙을 충족시키는 설계 규칙 수정 구조(design rule correct geometry)를 발생하는 책임을 진다. 이것은 모든 집적회로 레이아웃 구조에 대해서 일반적인 설계 규칙 체크를 채용하는 전형적인 배선 방법에 대해 상당한 유동성 및 수행 이점을 제공하는 지역 접속점-특정 설계 규칙 체크가 채용되도록 한다. 상세하게 말하면, 접속점-특정 설계 규칙을 구현하는 것이 바람직한 상황이 있다. 예를 들어, 단일의 스택화된(stacked) 접점 구조에서, 연결된 다수의 배선 층들에 제한 조건이 있을 수 있다. 또한, 특별한 접속점에 대한 설계 규칙은 접속된 배선의 상태를 기초로 시간에 따라 변화할 수 있다. 예를 들어, 어떤 설계 규칙은, 외부 와이어가 연결되지 않는 경우에는, 제1 금속 층부터 제3 금속 층까지의 연결(따라서 2개의 스택화된 접점들을 포함하고, 그 중 하나는 나머지 하나의 위에 있게됨)이 제2 금속층 상에 랜딩 패드(landing pad)라고 불리는 특대형의 금속 엔클로져를 사용할 것을 요구한다. 이러한 타입의 설계 규칙은 통상 "랜딩 구역(landing zone)" 규칙으로 언급된다.
또다른 예로서, 트랜지스터 게이트의 개방된 단부는, 확장 설계 규칙이 충족되는 확산층을 지나 충분히 멀리까지 확장하도록 정의된다. 그러나, 와이어가 추가되면, 상기 단부가 짧아져서 상기 와이어가 더 빨리 굽혀지도록 할 수 있다. 일단 와이어가 연결되면, 상기 확장 규칙(확산 및 게이트가 아닌 폴리실리콘 사이의 어떤 스페이싱 필요조건은 물론)은 와이어가 접속점을 떠나자마자 굽혀지는 경우에도, 충족될 것이다. 도 4B는 예시 스페이싱 및 게이트에 적용가능한 확장 설계 규칙을 설명한다. 확산 영역(420)은 접점(421)을 포함한다. 폴리실리콘(422)은 확산 영역(420)을 너머 게이트 확장량(423), 예컨대 2 람다만큼 확장되어 게이트 확장 규칙을 만족시킨다. 폴리실리콘 게이트(422)는 확산 영역(420)으로부터 스페이싱(424) 만큼 떨어져서 폴리실리콘 대 확산 스페이싱 규칙을 만족시킨다. 도 4C에서, 폴리실리콘 게이트(425)는 확산 영역(426)을 너머 양쪽 끝의 게이트 확장(423)만큼 확장된다. 도 4D에서, 폴리실리콘 게이트(427)는 확산 영역(428) 이상으로 연결되지 않은 끝 상에서 게이트 확장량(423)만큼 확장된다. 보통, 폴리실리콘 게이트(427)는 게이트 확장 규칙을 만족시키기 못할 것이다. 왜냐하면 폴리실리콘 게이트(427)는 밑면 상에서 게이트 확장량(423)만큼 확산 영역(428) 이상으로 확장되지 않기 때문이다. 그러나, 폴리실리콘 게이트(427)는 와이어(429)에 연결되고, 게이트 확장 규칙 및 폴리실리콘 대 확산 스페이싱 규칙은 각각 게이트 확장량(423) 및 스페이싱(424)에 의해 만족된다.
범용 설계 규칙 체크가 특별한 조절 없이도 이러한 문제점들을 검출할 수 있긴 하지만, 이는 상대적으로 더 많은 분석 시간을 요구할 수 있다. 접속점 레벨에서 설계 규칙 체크를 구현하는 것이 훨씬 효과적이며 일반 설계 규칙 체크가 접속점 내에서 이러한 체크들을 배제하도록 한다. 접속점들은 아래에서 접속점들의 타입 및 접속점들의 속성에 따라 더 상세히 설명될 것이다.
i. 접속점들의 타입
본 발명의 한 실시예에 따라서, 6가지 타입의 접속점들이 사용된다. 여기에는 단일 접점, 한 라인의 접점, 한 배열의 접점, 트랜지스터 게이트, 외부 포트 직사각형(아마도 그 밑에 하나 이상의 접점을 가진) 및 단일-층 브랜치가 포함된다. 이 6가지 타입 접속점들의 예들은 도 4E-도 4J로 설명된다.
도 4E는 금속층 같은 윗 배선 층의 단일 접점 접속점(430) 및 폴리실리콘 같은 단일 접점 접속점(432)을 포함하는 단일 접점 접속점의 개개 층들을 설명한다.
도 4F는 참조번호(436,438 및 439)의 3개의 접점을 포함하는 접점 접속점(434) 라인의 한 예를 설명한다.
도 4G는 접점 접속점(440) 배열의 한 예를 설명한다. 이 예에서, 접점 접속점(440)의 배열은 참조번호(441)에 설명된 바와 같이, 채워지는 것이 아니라 절단된다.
도 4H는 일반적으로 참조번호(442 및 444)로 표시되는 트랜지스터 게이트 접속점들의 2가지 예를 설명한다. 트랜지스터 게이트 접속점(442,444) 각각은 트랜지스터 게이트 접속점(442 및 444)의 부분이 아닌 확산 영역(448)과 오버랩되는 폴리실리콘 영역(446;게이트)을 포함한다. 폴리실리콘 영역(446;게이트)은 폴리실리콘 영역(446)이 확산 영역(448)을 넘어 확장되는 게이트 확장부(449)를 포함한다. 확산 영역(448)은 설명만을 위해 도시된 것이다. 마찬가지로, 설명만을 위해서, 트랜지스터 게이트 접속점(442,444)의 부분이 아닌 접점(450)들 또한 제공된다.
도 4I는 상부 배선층(454), 하부 배선층(456) 및 접점층(458)을 포함하는 외부 포트 직사각형 접속점(452)을 포함한다. 통상적인 라우터와의 호환을 위해, 상부층에서 4개의 직교 접속 방향(459)만이 허용된다. 일시적인 배선을 위해서는, 이러한 접속 방향은 일반적으로 사용되지 않으며, 셀간 라우터에 대해 사용된다.
도 4J는 예시 단일-층 브랜치 접속점(460,462,464,466,468 및 470)을 설명한다.
ii. 접속점들의 속성
각 접속점은 속성과 관련된 수를 갖는다. 본 발명의 한 실시예에 따라, 각 접속점은 상부 배선 층 인덱스, 하부 배선 층 인덱스, 라우터 기준점 리스트 및 층 설명어(layer descriptor) 세트를 갖는다. 접속점 내의 각층, 예컨대 배선층 또는 접점층은 그 층의 구조를 표현하는 다각형을 갖는다. 추가로, 배선층은 클리핑된 코너 리스트(각 대각선 방향에 대해 하나씩 4개), 연결된 와이어(숫자로 색인될 수 있고 와이어 방향과 함께 저장될 수도 있지만, 통상적으로 각 방향에 대하여 하나씩 8개)를 갖는다. 단일층 상의 접속점, 예컨대 트랜지스터 게이트 접속점은 동일한 상부 및 하부 배선 인덱스를 가지며, 접점층을 갖지 않는다. 게이트 및 브랜치 접속점들을 제외하고, 추가의 배선층은 어느 때라도 추가되거나 제거될 수 있으나, 그러한 추가 또는 제거는 배선 다각형에 접점 엔클로져의 증가같은 다른 변화를 일으킬 수 있다. 그리하여, 변화는, 받아들여지기 전에, 주위 구조에 대하여 설계 규칙 체크를 성공적으로 만족시켜야 한다.
단일 접점 및 작은 포트 연결과 같은 소형 접속점들은, 예각이 되기 때문에 모든 8개의 배선 방향들을 사용할 수는 없다. 배선은 게이트의 끝에만 접속될 수 있으며, 브랜치는 특정 연결 방향을 제공하기 위한 세부 라우터의 계획 단계에 의해 정의되기 때문에 트랜지스터 게이트 및 브랜치 접속점들은 제한된 접속 방향을 갖는다. 와이어는, 유효한 방향을 갖지 않는 경우에는 연결될 수 없으며, 상기 연설은 배선 다각형에 예각을 발생시키지 않는다. 본 발명의 한 실시예에 따라서, 단 하나의 접속 와이어만이 각 방향에 대해 허용되고, 허용가능한 접속 방향이 유지된다. 게다가, 트랜지스터 게이트 같은 제한된 접속점들은 유효한 방향만을 포함하도록 초기화된 리스트를 갖는다. 다른 방법도 가능하므로, 본 발명은 이 특정 실시예에 제한되지 않는다. 예를 들어, 설계 규칙 체크는 제안된 와이어를 주위의 구조에 비교하기 위해 수행된다.
와이어 두께 및 에지 길이 필드는, 도그본 또는 넓은 금속 스페이싱 규칙이 적용될 것인지를 판단하도록 하므로써 접속점의 외부 설계 규칙 체크를 보조한다. 해당 분야에서 잘 이해될 바와 같이, 도그본은 정규 스페이싱 규칙을 포기하므로써, 위반(violation)에 있어서의 다각형 에지의 길이를 특정양, 예컨대 단일 접점 엔클로져의 한 변의 길이 이하로 하려는 것이다. 넓은 금속 설계 규칙은, 웨이퍼 프로세싱에서의 비선형성때문에 특정 두께를 초과하는 와이어 주위의 추가의 공간을 필요로 한다.
어떤 경우에는, 노드에 대해, 폴리실리콘 같은 고저항 배선 층에 할당되는 배선의 양을 제한하는 것이 바람직하다. 접속점의 배선 길이 필드는 주어진 노드에 얼마나 많은 배선이 각 배선층에 있는지를 결정할 때 전체 라우터를 보조한다. 목적지 노드는 전류를 갖지 않으며, 폴리실리콘 게이트만을 구동시켜서, 상대적으로 자유로운 고저항 배선층을 사용할 수 있다. 마이너(minor) 노드들은 단일 셀 내에서 또는 서로 매우 가까운 셀들 사이에서만 전류를 갖는다. 결과적으로, 고저항 배선층은 소수의 노드들을 갖는 단거리에서 사용될 수 있다. 메이저(major) 노드들은 칩을 통과하여 상당한 거리동안 전류를 포함하고, 따라서 셀 내에서 게이트를 연결할 때를 제외하고는 고저항 배선층을 사용하여서는 안된다. 파워 노드에 대해서, 상기 연결 와이어들은 통상적으로 폭이 넓고(레이아웃 합성 시스템 내에서 미리 정해져 있음), 층 변경은 최소화 되며 접점들의 큰 배열들이 배선 층들 사이를 연결하기 위해 사용된다. 본 발명의 실시예에 따라서, 각 노드는 목적지, 마이너, 메이저 또는 얼마나 많은 양의 배선이 고저항 배선 층에 할당되었는지를 특정하는 파워등의 전형적 속성을 갖는다.
b. 배선 기준점들
라우터의 역할들 중 하나는 새 와이어를 접속점의 어디에 연결할 것인가를 정확하게 판단하는 것이다. 한 실시예에 따라서, 배선 기준점들에게 배선을 보조하기 위해 접속점들이 제공된다. 전체 라우터는 와이어가 향하는 기준점이 어느 것인지를 선택하고, 세부 라우터는 방해되는 설계 규칙, 합법적 연결 방향 및 외부 구조를 기초로 와이어들이 어디에 연결되어야 할지를 결정한다. 도 4E를 참조하면, 단일 접점 접속점(430)은 단일의 중앙에 위치한 배선 기준점(472)을 포함한다. 마찬가지로, 도 4J에서, 단일 층 브랜치 접속점(460,462,464,466,468 및 470) 각각은 배선 기준점(473)을 포함한다. 도 4F를 참조하면, 접점 접속점의 라인(434)은 접점(436,438 및 439)의 중앙에 배선 기준점(474)을 포함한다. 배열 접점들은 일반적으로 대전력선을 함께 연결하는데 사용되고, 따라서 단일 배선 기준점이 제공된다. 예를 들어, 도 4G를 참조하면, 접점 접속점의 배열(440)은 배선 기준점(476)을 포함한다.
배선 접속점들은 접속점이 상당한 스페이싱을 갖고 있을때 특히 유용하다. 예를 들어, 도 4H를 참조하면, 와이어는 끝의 한쪽 또는 양쪽 모두에서 트랜지스터 게이트로 연결될 수 있으므로, 트랜지스터 게이트 접속점(442 및 444)에는 폴리실리콘 영역(446)의 양 끝에 각각 배선 기준점(478 및 480)이 제공된다. 이 경우에, 폴리실리콘 게이트(446)는 "자유" 배선 자원으로서 사용가능하다.
c. 코너 클리핑
코너 클리핑은 집적회로 레이아웃의 구조를 변화시켜 구조에 더 가까이 접근하므로써, 더 소형의 레이아웃을 제공하기 위한 방법이다. 코너 클리핑은 정사각형 코너에서 구조를 제거하므로써 45도의 각이 발생되도록 한다. 도 5A 및 도 5B는 코너 클리핑의 사용 및 장점을 설명한다. 도 5A는 코너 클리핑 없는 두개의 점접들 사이의 와이어 배선을 설명하는 블록도(500)이다. 보다 상세하게는, 두개의 접점(504 및 506) 사이에서 배선되는 와이어(502)는, 참조번호(508)로 표시된 최소 스페이싱 필요조건을 만족시키면서 접점들(504 및 506)을 통과하기 위해 직교 조그(jog)를 포함하여야 한다. 코너 클리핑 없이 배선하는 이 예에서, 접점(504)의 좌측 에지부터 접점(506)의 우측 에지까지 측정된 레이아웃의 크기는 참조번호(510)로 표시된다.
도 5B는 코너 클리핑을 사용하여 두개의 접점들 사이에서 와이어를 배선하는 것을 설명하는 블록도(520)이다. 보다 상세하게는, 와이어(522)는 두개의 접점들(524 및 526) 사이에서 배선된다. 접점들(524 및 526) 각각은, 각각 참조번 호(528 및 530)로 표시된 클리핑된 코너를 갖는다. 와이어(522)는 여전히 최소 스페이싱 필요조건(508)을 만족시키면서 비직교 조그(jog)를 사용하여 접점들(524 및 526)을 통해 배선된다. 이것은 접점들(524 및 526)이 서로 더 가까이(수평으로) 배치되도록 하고, 더 소형의 레이아웃을 제공한다. 보다 상세하게는, 접점(524)의 좌측 에지부터 접점(526)의 우측 에지까지 측정된 레이아웃의 크기는, 참조번호(532)로 표시된 바와 같이, 도 5A의 크기(510)보다 작다. 따라서, 코너 클리핑 접점(524 및 526)은 수평방향에서 볼때 레이아웃의 크기를 더 작게 하여, 회로 밀도를 증가시킨다.
코너 클리핑의 한가지 단점이라면 상기 기술은 마스크 피처(feature) 총수를 증가시켜서, 마스크 점검을 더 어렵게 하고 접점들이 배선 층들과 적절히 결합되지 않는 경우에는 회로 수율(yield)을 감소시킨다는 것이다. 그러므로, 한 실시예에 따라, 코너 클리핑은 회로 밀도의 증가를 이루는 경우에만 사용된다.
도 5B의 예에서, 상기 코너 클리핑 영역(528 및 530)은 대략 접점들(524 및 526) 한개의 그리드 유닛을 각각 제거시킨다. 그러나, 어떤 배선 층에서는 하나 이상의 그리드 유닛이 제거될 수도 있다. 그러므로, 한 실시예에 따라, 클리핑 양은, 클리핑된 양을 표시하기 위해, 각 배선 층의 각 코너에 대해 저장된다.
코너 클리핑의 다른 예로서, 도 4E에 도시된 단일 접점 접속점(432)의 클리핑된 코너(482) 및 도 4F에 도시된, 하부 배선층 및 상부 배선층 각각 위의 클리핑 안된(unclipped) 코너(483) 및 클리핑된 코너(484)가 있다.
코너 클리핑이 모든 타입의 레이아웃 구조에 적용 가능한 것은 아니다. 보다 상세하게는, 트랜지스터 게이트, 포트 및 브랜치 구조들은 코너가 클리핑 될 수 없다. 여기 설명된 바와 같이, 트랜지스터 게이트는 확산 다각형의 에지를 지나 최소한의 폴리실리콘 확장을 필요로 한다. 각 포트의 상부층은, 하부 배선 층 상의 코너(후에 추가되는 경우에)가 클리핑되더라도, 통상적으로 사용자에 의해 정의되고, 통상적인 셀간 라우터의 필요조건을 만족시켜야 한다. 결국, 브랜치 구조는 직선 또는 45도의 굽힘이 되도록 정의된다.
본 발명의 한 실시예에 따라, 배선 층을 위한 다각형은 배선층의 코너가 클리핑되거나 와이어가 상기 배선 층에 추가될 때마나 변형된다. 이 변화는 접속점들 사이의 와이어링에 생기는 변화와는 독립적으로 발생된다. 접속점들은 그들 자신의 다각형에 대한 설계 규칙 체크를 배제할 필요가 없기 때문에 각 배선층에 대한 단일 논-오버래핑(non-overlapping) 다각형을 유지하는 것은 설계 규칙 체크의 복잡성을 감소시킬 수 있다. 층이 추가되거나 제거되는 경우에, 나머지 층들에 대한 다각형들 또한 설계 규칙에 따라, 변형될 필요가 있다. 본 발명은 단일 다각형 배선층에 제한되지 않는다. 접속 연결점들에 대한 배선층들은 다수의 다각형들로부터 만들어질 수도 있다.
4. 포괄 배선
포괄 배선은 개괄적으로 배선될 집적회로를 평가하여, 효과적인 회피 전략을 만들어 내기 위해, 포괄 배선에 사용가능한 집적회로 레이아웃의 하이레벨 지식을 사용하여, 포괄 배선 동안 가장 잘 조절될 수 있는 문제 영역을 확인하는 것을 포함한다. 예를 들어, 포괄 배선에 사용가능한 확산 아일랜드(diffusion island) 위치에 대한 지식은 세부 배선에 앞서 조절된다. 이 방법은 세부 라우터에서 층변화를 만들어 내는것 또는 객체 주위에서 배선하는 과정을 덜어주므로 알고리즘적 단순함 및 수행 스피드를 향상시킨다. 결과적으로 많은 와이어들이 간섭 없이도 배선될 수 있다.
본 발명의 한 실시예에 따라, 포괄 배선은 앞서 설명한 바와 같이, 새 와이어의 배선이 접속점 상의 배선 기준점로 향하게 한다. 그러나, 상기 와이어들은 스페이싱 위반이 발생하지 않는 한 세부 배선 동안에 이동될 수 있다. 유효한 와이어 이동의 예들이 세부 배선 섹션에서 이하에서 더 상세히 설명된다.
이러한 목적들을 달성하기 위해, 본 발명의 실시예에 따라, 포괄 배선은 전략 리스트를 발생하는 단계 및 힌트 다각형을 발생하는 단계를 포함한다. 전략 리스트 및 힌트 다각형은 임의의 형태의 접속점들 사이에서 배선되는 새 와이어에 적용가능하며, 이를 이하에서 더 상세히 설명하고자 한다.
a. 전략 리스트
전략 리스트는 세부 배선 동안 새 와이어 배선의 가이드를 돕는다. 본 발명의 한 실시예에 따라, 전략 리스트는 각 새 와이어에 대해 발생되고 바이어스 방향, 이탈 한계 및 단순 배선 표시자(플래그)를 특정한다. 전략 리스트들의 이러한 속성들 각각을 더 상세히 살펴보자.
i. 바이어스 방향
바이어스 방향은 특정 시작 접속점으로부터 특정된 끝 접속점까지 도달하기 위해 와이어가 세부 배선 동안에 따라야 할 일반적인 방향을 특정하는데 사용된다. 본 발명의 실시예에 따라, 상기 바이어스 방향은 시작 접속점부터 끝 접속점까지, 와이어가 왼쪽 또는 오른쪽으로 배선되어야 할 지를 특정한다. 도 6A는 본 발명의 실시예에 따라 시작 접속점으로부터 끝 접속점까지 새 와이어를 배선하기 위해 바이어스 방향의 사용을 설명하는 블록도(600)이다. 새 와이어가 시작 접속점(602)으로부터 끝 접속점(604)까지 배선되는 경우를 살펴보자. 라인(606)은 일반적으로 시작 접속점(602)으로부터 끝 접속점(604)까지의 개괄적인 직선 관찰을 나타낸다. 좌측 바이어스는, 시작 접속점(602)으로부터 끝 접속점(604)까지의 새 와이어는 일반적으로 라인(608)에 의해 표시된 바와 같이, 가능한 한 라인(606)의 좌측 멀리 배선되어야 한다는 것을 나타낸다. 우측 바이어스는 일반적으로 라인(610)에 의해 표시된 바와 같이, 가능한 한 라인(606)의 우측 멀리까지 배선되어야 한다는 것을 나타낸다.
ii. 이탈 한계
이탈 한계는 세부 배선 동안에 새 와이어가 배선되어 시작 접속점으로부터 끝 접속점까지 연결될 수 있는 영역을 정의하는데 사용된다. 그리하여, 이탈 한계는 바람직한 경로를 따라 장애물들을 마주치고 대체 경로가 상기 장애물을 돌아서 배선 시도되는 경우에, 상기 세부 배선을 제한한다.
도 6B는 본 발명의 실시예에 따른 시작 접속점(652)부터 끝 접속점(654)까지 새 와이어의 배선을 콘트롤하기 위해 이탈 한계의 사용을 설명하는 블록 다이어그램(650)이다. 배선 영역(656)은 시작 접속점(652) 및 끝 접속점(654) 사이에 정의된 8분의(octant) 배선 영역(비-직교 구조에 대해)이다. 배선 영역(658)은 배선 영역(656) 및 특정된 이탈 한계 사이에 정의된다. 본 발명의 한 실시예에 따라, 상기 특정된 이탈 한계는 시작 및 끝 접속점들 사이에 정의된 8분의 배선 영역 바깥의 맨해튼 거리(Manhattan distance)(비-직교인 경우에는, 그 거리의 각 유닛에 대해 한 유닛은 넘어져 있고, 한 유닛은 서있는)이다. 따라서, 이 예에서, 배선 영역(658)은 배선 영역(656)으로부터의 특정 이탈 한계(맨해튼 거리)에 의해 정의된다. 따라서, 시작 접속점(652) 및 끝 접속점(654)을 연결시키기 위한 새 와이어의 배선은 특정 이탈 한계에 의해 정의되는 배선 영역(658)을 넘어 확장될 수 없다.
iii. 단순 배선 표시자
새 와이어를 성공적으로 배선하기 위해, 통상적으로 새 와이어를 배선하기 위한 충분한 공간을 마련하므로써, 레이아웃 구조에 변화가 요구되는 것은 드문 일이 아니다. 그러나, 이러한 변화들은 결과적인 집적회로에 좋지 않은 영향을 끼칠 수 있다. 예를 들어, 접점 엔클로져의 코너를 클리핑하는 것은 접점 엔클로져를 오정렬(misalignment)에 더 민감하게 만들고 생산량을 감소시킬 수 있다. 마찬가지로, 트랜지스터 아일랜드의 코너를 클리핑하거나 또는 소스/드레인 접점을 조절하는 것은 소스/드레인 저항을 증가시키고, 따라서 집적회로를 느리게 한다.
그러므로, 본 발명의 한 실시예에 따라, 단순 배선 표시자는 일반적으로 새 와이어의 세부 배선 동안에 주위 구조에 변화를 가할 것인지를 콘트롤하는데 사용된다. 본 발명의 한 실시예에 따라, 단순 배선 표시자가 생성되어 (디폴트로써) 포괄 배선동안 각 새로운 와이어에 대해 인가(assert)되어 세부 배선동안 레이아웃 변화를 디스에이블(disable)시킨다. 포괄 배선 동안에, 특정 영역에 존재하는 와이어가 이동하여 새 와이어의 배선을 가능케할 필요가 있는 경우에는, 상기 샘플 배선 플래그는 상기 영향받은 와이어들의 각 배선 스트레치 동안에 제거되고, 근처 부분들은 재배선된다. 배선 스트레치는 여기서는 두 접속점들 사이, 접속점 및 힌트 다각형 사이(이하에서 설명됨) 또는 두개의 힌트 다각형 사이의 배선 와이어의 한 부분으로 정의된다. 세부 배선 동안에, 상기 단순 배선 표시자는 그것이 세팅되었는지를 판단하기 위해 조사된다. 세팅되어 있는 경우는, 세부 배선동안에, 새 와이어들은 장애물 또는 주위 구조를 변형시키는 대신에 장애물을 돌아 배선된다. 그리하여, 세부 배선 동안에 레이아웃 변화가 허용되어야할 지에 대한 판단이, 포괄 배선 동안에 내려진다.
b. 힌트 다각형(Hint Polygons)
여기에 설명된 집적회로를 배선하기 위한 방법은, 세부 배선 동안에 새 와이어의 배치를 보조하기 위한, 본 명세서에서 편의상 "힌트 다각형"이라고 명명된 배선 표시자를 포함한다. 본 발명의 한 실시예에 따라, 힌트 다각형은 세부 배선이 특히 어려울 것 같은 집적회로 레이아웃에서의 위치를 확인하기 위해 만들어진다. 예를 들어, 힌트 다각형은, 예컨대 엔클로져 코너가 공간을 만들기 위해 클리핑되어야 하는 경우에, 새 와이어를 배선할 공간이 존재할 것이 확실치 않은 접점들 사이의 촘촘한 지점(tight spot)을 확인하는데 사용될 수 있다. 또다른 예로서, 힌트 다각형은 장애물의 끝을 확인하여 세부 배선 동안에 요구되는 검색의 양을 감소시켜서 장애물의 끝을 발견하는데 사용될 수 있다. 본 발명의 또다른 실시예에 따라, 힌트 다각형은 세부 배선 알고리즘을 단순화하는데 사용된다. 예를 들어, 트랜지스터 게이트 같은 접속점이 연결 방향을 제한하는 경우에, 힌트 다각형은 세부 배선 동안에 U턴의 필요성을 피하는데 사용될 수 있다. 또다른 예로서, 힌트 다각형은 새 와이어가 나중에 배선되도록 하기 위해 위치를 "예약"하는데 사용될 수 있다. 본 발명의 한 실시예에 따라, 각 힌트 다각형은 방향 속성을 갖기 때문에, 힌트 다각형은 세부 배선 동안에 적절한 끝으로부터 접근될 수 있다.
몇몇 전형적인 라우터들, 예컨대 MAGIC 레이아웃 툴의 인터랙티브 미로 라우터는 라우터가 레이아웃의 바람직하지 못한 영역을 사용하지 못하도록 하기 위해 "펜스(fence)"를 사용한다는 사실을 주목할 필요가 있다. 두개의 평행한 담을 사용하면, 라우터가 이미 그것에 접근하도록 선택한 경우에 촘촘한 지점을 통하여 라우터를 가이드할 수 있지만, 이 담들은 유한 크기를 갖고 있기 때문에, 그 다음 와이어들의 배선을 방해할 수 있다. 추가로, 세부 라우터가 펜스 근처의 레이아웃 영역을 사용하기로 선택한 경우에, 펜스들은 와이어가 자신들을 거쳐가도록 할 뿐만 아니라 세부 라우터를 제한한다. 그리하여, 펜스들은 부정적인 제한조건이고, 힌트 다각형은 긍정적인 제한조건이다.
도 7은 집적회로의 배선 동안에 힌트 다각형의 사용에 대해 방금 설명된 다양한 실시예들을 설명하는 집적회로의 한 부분(700)의 블록도이다. 집적회로(700)는 확산 영역(702 및 704)을 포함한다. 집적회로(700)는 또한 확산 영역(702)상의 폴리실리콘 영역(706 및 708) 및 확산 영역(704) 상의 폴리실리콘 영역(710 및 712)을 포함한다. 확산 영역(702)은 접점(714,716 및 718)을 포함한다. 확산 영역(704)은 접점들(720,722 및 724)을 포함한다.
힌트 다각형(726)은 점선 라인(728)에 의해 정의된 경로를 따라 접점들(714 및 716) 사이의 금속 와이어의 배선을 보조하기 위하여 집적회로(700)에서 발생되고 포함된다. 힌트 다각형(726)은 시각적으로 화살표로 표현되었으며, 금속 와이어가 접점들(714 및 716) 사이에 맞추기 위해 접근해야하는 일반적으로 선호하는 방향을 표시하는 방향 표시자(730)를 포함한다.
힌트 다각형(732)은 확산 아일랜드(704) 및 접점(720) 주위에서 금속 와이어를 배선에서 보조하기 위해 집적회로(700)에 발생되고 포함된다. 보다 상세하게, 힌트 다각형(732)은, 방향 표시자(734) 및 화살표(736)에 의해 표시되는 방향으로, 접점(720)에 의해 정의되는 장애물의 끝 및 이에 의해 금속 와이어가 접점(720) 주위로 굽혀질 수 있는 포인트를 표시한다. 힌트 다각형(732)은 세부 배선 동안 수행되어야 할 접점(720)의 끝을 검색하는 양을 제한하고, 이에 의해 세부 배선을 단순화 시킨다.
힌트 다각형(738 및 740)은 폴리실리콘 영역(708)을 폴리실리콘 영역(710)에 연결할때 보조하기 위하여 집적회로(700)에 발생되고 포함된 U-턴 회피 타입 힌트 다각형이다. 트랜지스터 게이트와 같이, 폴리실리콘 영역(708 및 710)은 제한된 접속 방향을 갖기 때문에, 힌트 다각형(738 및 740)은 이러한 상황에서 특히 유용하다. 보다 상세하게 설명하면, 집적회로(700)에 추가되는 새 폴리실리콘은 폴리실리콘 영역(708 및 710)에 직선으로, 확산 영역(702 및 704)에 직각으로 연결되어야 한다. 힌트 다각형(738 및 740)은 각각 방향 표시자(742 및 704)를 포함하여, 화살표(746)에 의해 표시된 바와 같이 폴리실리콘 영역(708)에서 폴리실리콘(710)까지의 보다 바람직한 배선 방향을 표시한다. 이 예에서, 타겟이 여기에 설명된 바와 같이 정의되는 경우에는 폴리실리콘 영역(708 및 710)의 끝(748 및 750)이, 각각 짧아진 것을 주목하라.
힌트 다각형(752)은 폴리실리콘 배선 영역을 보존하기 위해 집적회로(700)에 발생되고 포함된다.
힌트 다각형은 또한 제안된 경로를 따라 배치될 수 있으며, 세부 배선 동안에 제안된 경로의 가능성이 결정될 수 있다. 예를 들어, 접점(714 및 716;소스/드레인 접점 접속점들) 사이에 배치된 힌트 다각형(726)은 세부 배선 동안에 엔클로져 코너(754 및 756)의 클리핑을 발생시킬 수 있다. 마찬가지로, 힌트 다각형(726)은 접점들(714 및 716)이 세부 배선 동안에 분리되도록 하여 배선될 때 금속 와이어를 위한 공간을 만들도록 한다.
본 발명의 또다른 실시예에 따라, 세부 배선 동안의 배선 가능성을 확실히 하기 위해, 포괄 배선 동안에 발생되기 때문에, 힌트 다각형 상에서 설계 규칙 체크가 실행된다. 힌트 다각형의 작은 크기 및 일반적으로 제한된 수 때문에, 이것은 가능성 테스트에 대한 세부 배선을 수행하는 방법에 대하여 상당한 성능 이득을 제공할 수 있다.
본 발명의 한 실시예에 따라, 두개의 접속점이 매우 짧아서 스페이싱 규칙을 위반할 정도가 되면, 즉 서로 매우 가깝거나 닿을 정도가 되면, "짧은 경로" 표시자가 작동한다. 이것은 짧은 경로의 설계 규칙 체크를 수용하는 것이다.
5. 세부 배선
세부 배선은 일반적으로 새 와이어를 배치시킬 집적회로 레이아웃에 유효한 포인트들의 세트를 검색하여 접속점들 사이에 특정 연결을 만드는 단계를 포함한다.
도 8은 새 와이어를 배선하기 위한 세부 배선 방법을 설명하는 하이-레벨 흐름도(800)이다. 흐름도(800)는 세부 배선 프로세스에 대한 개관을 제공하는데, 지금 부터 각 스텝을 상세히 설명하고자 한다. 스텝(802)에서 시작한 뒤에, 접속점들이 세부 배선에 준비된다. 이것은 일반적으로 와이어 접속을 추가하고, 와이어가 연결된 접속점 타겟을 구축하는 단계를 포함한다.
스텝(806)에서, 제1 와이어가 배선된다. 스텝(808)에서, 더이상의 와이어가 배선될 필요가 있는지에 대한 판단이 내려진다. 필요한 경우에는, 스텝(806)에서, 다음 와이어가 배선된다. 더이상의 와이어가 배선될 필요가 없거나, 불충분한 공간때문에 남은 와이어들 중 어떤것도 배선될 수 없는 경우에는, 상기 프로세스는 스텝(810)에서 완료된다. 배선이 완료될 수 없으면, 통상적인 라우터에서와 같은 수동 개입이 요구된다.
본 발명의 실시예에 따른 세부 배선의 다양한 관점들은 다음과 같다: 와이어 연결의 추가, 타겟 배선, 새 와이어 배선, 접속점 설계 규칙 체크, 설계 규칙 체크에 대한 표시자에 접근하기, 설계 규칙 체크에 대한 짧은 경로 표시자, 배선 경로 설계 규칙 체크 및 조밀한 배선 상황들.
a. 와이어 연결부의 추가
접속점이 처음 만들어질 때는 거기에 연결된 와이어가 없다. 그러므로, 본 발명의 실시예에 따라, 세부 배선의 제1 스텝 중의 하나는 와이어 연결부를 각 에지의 끝에 있는 접속점에 추가하는 것이다. 직교 배선 및 조잡한 배선 그리드를 사용하는 통상적인 배선 방법들에서, 모든 핀 위치는 중심이 그리드 포인트 상에 놓인 단순 직사각형이다. 와이어의 중심 또한 이 그리드 상에 있고, 각 핀은 가능한 표현 방법의 수가 매우 제한되어 있다.
전에 설명한 대로, 본 발명의 실시예에 따른 집적회로를 배선하기 위한 방법은 비-직교(non-orthogonal) 배선을 지원한다. 비-직교 배선에 있어서, 때로는 와이어들의 중심선들이 접속점들의 중심을 지나지 않도록 와이어들을 접속점에 연결할 필요가 있다. 이것은 와이어를 접속점에 연결할 많은 방법들을 제공하고, 이에 의해 내재적인 연결 위치없이 접속점 다각형을 표현하는 많은 방법들을 제공한다.
도 9는 본 발명의 실시예에 따라 와이어 연결부를 접속점에 추가하는 것을 설명하는 블록도(900)이다. 블록도(900)는 접점(902) 및 또다른 집적회로 레이아웃 객체(904)를 포함하고, 타입은 이 예에 있어서는 중요하지 않다. 도 9에 점선(906)으로 표현된 위치의 새 와이어는 비-직교 각, 즉 90도 이외의 각에서 접점(908)에 연결된다. 따라서, 이 예에서, 와이어(906)의 중심선(910)은 접점(908)의 중심선(912)과 일치하지 않는다. 와이어(906)가 접점(908)에 연결되도록 하기 위해, 점선(914)에 의해 표현된 접점(908)의 원래 엔클로져는 세부 배선 동안에 새 와이어(906)가 쉽고 합법적으로 연결될 수 있는 배선 타겟(916)을 갖는 작은 와이어 조각을 포함하도록 변형된다. 즉, 새 와이어(906)를 배선 타겟(916)에 추가하는 것은 적용 가능한 설계 규칙이 만족됨을 확실히 한다. 이하에서, 세부 배선을 보조하기 위한 배선 타겟의 사용을 보다 상세히 설명하고자 한다.
와이어 연결부를 접점 접속점 배열에 추가하는 것의 예가 도 4F에서 설명된다. 새 와이어(미도시)를 접점 접속점(434)에 연결시키기 위해서는, 점선(486)으로 표현된 접점(439)의 원래 엔클로져는 배선 타겟(487)을 갖는 작은 와이어 조각을 포함하도록 변형되는데, 상기 배선 타겟에 세부 배선 동안 새 와이어가 쉽게 연결될 수 있다. 새 와이어를 배선 타겟(487)에 연결하는 것은 적용가능한 설계 규칙이 만족됨을 확실히 한다.
b. 배선 타겟
배선 타겟은, 여기서 설명된 배선 방법에 따라, 설계 규칙 유효 위치 및 새 와이어를 접속점으로 배선하기 위한 접근 방향을 특정하므로써, 새 와이어의 세부 배선을 보조하는데 사용된다. 도 9를 참조하여 앞서 설명한 대로, 배선 타겟(916)은 설계 규칙 유효 연결 위치를 와이어(906)에 제공한다. 본 발명의 한 실시예에 따라, 배선 타겟은 접속점 상에서 발생되어 배선 타겟에 연결된 와이어들이 적용 가능한 설계 규칙을 만족시킴을 확실히 한다. 예를 들어, 도 4E에서, 배선 타겟(488 및 489)이 단일 접점 연결점(430 및 432)에 각각 제공된다. 도 4G에서, 배선 타겟(490 및 491)이 접점 접속점(440) 배열의 양측 상에 제공된다.
도 4J는 단일-층 브랜치 접속점(460,462,464,466,468 및 470) 상의 타겟을 배선하기 위한 다양한 위치의 예를 설명한다. 이 예에서, 단일-층 브랜치 접속점(460,462,464,466,468 및 470)은 그 끝에 배선 타겟(492)을 갖고, 상기 배선 타겟은 접속점의 몸체 만큼 넓다. 결과적으로, 배선 타겟(492)은 하나의 유효한 위치만을 갖는다. 단일-층 브랜치 접속점(460,462,464,466,468 및 470)은 또한 더 작거나 더 넓은 와이어들이 연결되는 면상에 배선 타겟(496)을 가진다. 배선 타겟(496)은 설계 규칙들이 만족되는 단일-층 브랜치 접속점(460,462,464,466,468 및 470)의 한면을 따라 어디든지 위치할 수 있다.
도 4J에 설명된 대로, 각 배선 타겟(492)은 와이어로의 배선 타겟(492)의 유효 연결 방향을 표시하는 방향 표시자를 포함한다. 배선 타겟은 와이어의 세부 배선을 접속점으로 가이드하여 연결이 적용 가능한 설계 규칙을 만족시킴을 확실히 한다. 예를 들어, 도 4J를 참조하면, 단일-층 브랜치 접속점(468)은 4개의 배선 타겟(492 및 496)을 포함한다. 와이어는 표시된 방향으로부터 이들 배선 타겟 중 어느 것에도 연결되어 적용가능한 설계 규칙을 만족시킬 수 있다. 그러나, 단일-층 접속 브랜치 접속점(468)은 참조번호(493)에 의해 확인된 영역 내의 어떠한 배선 타겟도 포함하지 않는다. 왜냐하면 이 위치에서 와이어를 단일-층 브랜치 접속점(468)에 연결하는 것은 설계 규칙 스페이싱 필요 조건을 위반하게 될 것이기 때문이다. 마찬가지로, 와이어를 배선 타겟이 없는 영역(494)에서 단일-층 브랜치 접속점(470)에 연결하는것 또한 설계 규칙 스페이싱 필요조건을 위반하게 될 것이기 때문에, 단일-층 브랜치 접속점(470)은 영역(494)을 포함한다.
c. 새 와이어 배선
새 와이어를 배선하는 것은 일반적으로, 시작 및 끝 접속점 사이, 시작 접속점 및 힌트 다각형 사이, 두개의 힌트 다각형 사이 또는 힌트 다각형 및 끝 접속점 사이에, 하나 이상의 배선 스트레치, 즉 새 와이어의 부분들을 발생하는 것을 포함한다. 그리하여, 배선 스트레치의 끝은 힌트 다각형(첫번째 또는 그 다음) 또는 끝 접속점이다. 와이어의 마지막 배선 스트레치는 항상 그 끝 접속점에서 종결된다.
(마스크 생성을 위한 작은 작도 그리드(drawing grid)에 따라 달라지는) 집적회로 레이아웃의 임의의 위치에 새 와이어의 배치, 비-직교 구조와 "도그본" 같은 발전된 설계 규칙의 지원 및 넓은 금속 스페이싱 규칙은 모두, 설계 규칙 체크가 배선된 구조 상에서 그 구조가 만들어질때 처럼 수행될 것을 요구한다. 세부 배선 동안 설계 규칙 체크를 수행하는 것은 몇가지 중요한 장점들을 제공한다. 첫째, 새 와이어가 설계 규칙이 수정되도록 만들어지기 때문에, 설계 규칙 체크를 수행하는데 요구되는 시간이 대체로 감소된다. 둘째, 이것은, 세부 배선 동안에 해결될 수는 없고 포괄 배선 동안에 해결되어야 할 장애물 충돌문제를 해결하는데 있어서 도움이 된다.
새 와이어에 대한 시작 접속점으로부터 시작하여, 제1 배선 스트레치는 배선 스트레치가 허용된 배선 영역의 에지 또는 장애물에 닿을 때까지 배선 스트레치의 끝을 향하는 직선에서 확장된다. 상기 배선 스트레치는 적절히 굽혀진다. 바이어스 방향이 배선 스트레치의 직접 확장이 배선 스트레치로 하여금 배선 영역의 틀린 쪽을 따르도록 하게 하는 방향인 경우에, 상기 굽힘이 가능한 한 빨리 추가된다. 배선 스트레치의 배선 동안에, 배선 영역의 에지가 장애물 앞에 닿은 경우에, 상기 배선 스트레치는 배선 스트레치가 배선 스트레치의 타겟, 즉 다음 힌트 다각형 또는 끝 접속점을 향한다. 장애물이 닿으면, 어느 방향으로의 굽힘이 가능한 지에 대한 결정이 내려진다. 각 굽힘 방향은 세부 배선이 정지되기 전에 순서대로 테스트된다. 이것은, 배선 영역의 에지 또는 또다른 장애물이 닿기 전에 배선 스트레치를 다시 굽히고 확장하는 것을 포함한다. 일단 장애물 주위에서 성공적으로 배선 스트레치를 배선할 명백한 방법이 없거나, U턴이 필요하다는 결정이 내려진 경우에는, 굽힘 방향이 어떠하던 간에, 와이어의 세부 배선은 정지된다. 현재의 끝 포인트가 포괄 배선에 제공되고, 어떻게 진행할 것인가에 대한 결정이 내려진다.
통상적인 미로 라우터(maze router)에서, 시작 및 끝 포인트들 사이의 직접 경로를 벗어난 것까지 모든 가능한 위치가 테스트된다는 사실을 주목할 필요가 있다. 그리하여, 시작 및 끝 포인트에 장애물이 없는 경우에는, 필요한것 이상의 많은 위치가 테스트된다. 본 실시예에서, 집적 경로를 벗어난 검색은 장애물을 마주쳤을때만 시작되고, 상기 검색은 장애물 주위에 분명한 경로가 확인되지 않는 경우에는 비교적 빨리 종결된다. 전체 라우터는 세부 라우터에 도움을 제공하여 장애물을 피할 수 있도록 한다. 그리하여 와이어를 배선하는데 요구되는 계산 수단의 양이 상당히 감소된다.
본 발명의 한 실시예에 따라, 세부 배선은 와이어의 원래 끝이 닿을때까지 거슬러 올라가겠지만, 그 이상은 가지 않을 것이다. 만일 간다해도, 추가의 역추적(backtrack)은 포괄 배선 동안에 수행되어야 한다. 예를 들어, 전체 라우터는 이전 굽힘까지 역추적하여 변화되도록 할 수 있고, 다른 굽힘 방향을 가능케하는 다른 각으로 와이어가 장애물에 접근하도록 한다. 포괄 배선은 또한 하나 이상의 힌트 다각형을 삽입하여 장애물을 돌아서 가는 세부 배선 검색의 방향을 정할 수 있다.
도 10A 및 10B는 각각 본 발명의 실시예에 다른 배선 스트레치를 발생시키기 위한 방법을 설명하는 흐름도(1000 및 1500)이다. 도 10A를 참조하면, 스텝(1002)에서 시작한 뒤에, 스텝(1004)에서, 배선 스트레치가 배선 영역의 에지에 있는가에 대한 판단이 내려진다. 그런 경우에는, 스텝(1006)에서, 배선 스트레치는 배선 영역의 에지를 따라 배선 스트레치의 끝으로 방향이 전환된다.
스텝(1008)에서, 다음 굽힘까지의 거리가 결정된다. 스텝(1010)에서, 결정된 거리가 배선 영역의 에지까지의 거리보다 더 큰가에 대한 결정이 내려진다. 더큰 경우에는, 스텝(1012)에서, 결정된 거리는 배선 스트레치를 배선 영역 내로 유지시키도록 감소된다.
스텝(1014)에서, 배선 경로는 가능한 한 멀리까지 확장된다. 도 10B를 참조하여 이하에서 좀더 상세히 설명하고자 한다.
스텝(1016)에서, 결정된 거리가 달성되었는가에 대한 판단이 내려진다. 결정된 거리가 달성된 경우에는, 스텝(1018)에서, 배선 스트레치가 완료되었는가에 대한 판단이 내려진다. 배선 스트레치가 완료되지 않은 경우에는, 스텝(1020)에서, 배선 스트레치는 배선 스트레치의 끝을 향하도록 방향전환된다. 제어는 스텝(1008)으로 돌아가고 다음 굽힘까지의 거리가 결정된다.
스텝(1016)에서 결정된 거리가 달성되지 않은 경우에는, 도중에 장애물이 있는 것이고, 스텝(1022)에서, 방향 전환이 가능한 가에 대한 판단이 내려진다. 방향 전환이 가능한 경우에는, 제어는 스텝(1026)까지 계속되는데, 거기서 배선 스트레치는 장애물을 돌아서 방향 전환된다. 제어는 스텝(1008)으로 넘어가고, 여기서 다음 굽힘까지의 거리가 결정된다.
방향 전환은, 상기 전환된 방향이 배선 스트레치의 끝에서 180도 벗어난 배선 경로를 향하고 있는 경우, 즉 U턴을 필요로 하는 경우, 또는 배선 경로의 끝이, 특정된 방향으로 방향 전환을 결정한 후에 배선 영역 바깥에 있게 되는 경우에는 유효하지 않다.
스텝(1022)에서 더이상 방향 전환을 할 수 없는 경우에는, 장애물 충돌 문제는 해결될 수 없고 프로세스는 스텝(1024)에서 완료된다. 이 상황에서, 장애물 충돌 문제를 해결하기 위한 해결책이 포괄 배선에서 수행된다.
스텝(1018)에서, 배선 스트레치가 완료된 경우에는, 상기 프로세스는 스텝(1024)에서 완료된다.
도 10B를 참조하면, 흐름도(1050)는 본 발명의 실시예에 따른 배선 스트레치를 확장하기 위한 방법을 설명한다. 스텝(1052)에서 시작한 뒤에, 스텝(1054)에서, 배선 스트레치를 확장하기 위한 전류량의 초기값이 설정된다. 예를 들어, 전류량은 특정값으로 세팅된다. 스텝(1056)에서, 배선 스트레치는 전류량 만큼 확장된다.
스텝(1058)에서, 설계 규칙 체크가 확장된 배선 스트레치 상에서 수행되어 적용가능한 설계 규칙들이 만족된다. 스텝(1060)에서, 설계 규칙 체크가 성공하였는가에 대한 판단이 내려진다. 설계 규칙 체크가 성공하지 못한 경우에는, 스텝(1062)에서, 단순 배선 표시자가 배선 경로에 대해 인가(assert)되었는가에 대한 판단이 내려진다. 단순 배선 표시자가 인가된 경우에, 주위 레이아웃 구조 및 제어는 스텝(1064)까지 진행하고, 전류량은 특정양 만큼 감소된다. 그리고, 스텝(1066)에서, 전류량이 0인가에 대한 판단이 내려진다. 전류량이 0이 아닌 경우에는, 제어는 스텝(1056)으로 돌아가고, 배선 스트레치는 이번에는 스텝(1064)에서 감소된 전류량 만큼 감소된다.
스텝(1062)에서, 단순 배선 표시자가 인가되지 않은 경우에는, 스텝(1068)에서, 설계 규칙 체크 에러를 해결하기 위해 주위 레이아웃 구조에 변화가 수행된다. 예를 들어, 여기에 설명된 바와 같이, 코너 클리핑이 채용되거나, 소스/드레인 접점은 배선 스트레치에 추가의 공간을 제공하도록 이동될 수 있다.
스텝(1070)에서, 상기 변화들이 성공하였는가에 대한 판단이 내려진다. 변화가 성공하지 못한 경우에는, 전류량은 스텝(1064)에서 특정양만큼 감소된다. 스텝(1066)에서는 전류량이 0인가에 대한 판단이 내려진다. 전류량이 0이 아닌 경우에는, 제어는 스텝(1056)으로 돌아가고 배선 스트레치는 더 적은 양만큼 확장된다.
스텝(1060)에서 설계 규칙 체크가 성공한 경우, 또는 스텝(1070)에서 주위의 구조에 수행된 변화가 성공적으로 설계 규칙 체크 에러를 해결한 경우, 또는 스텝(1066)에서 전류량이 0인 경우에는, 프로세스는 스텝(1072)에서 완료된다. 프로세스가 완료된 상황에서, 전류량이 0이기 때문에, 스텝(1066)을 거쳐, 배선 스트레치는 적용 가능한 설계 규칙 내에서 확장될 수 없고 방향 전환 또는 포괄 배선이 충돌 문제를 해결하는데 사용된다는 점을 주목할것. 돌아온 전류량이 초기값보다 적은 경우에는, 도 10A의 스텝(1016)은 결정된 거리가 달성되지 않았음을 주목할 것이고, 스텝(1022)이 수행될 것이다. 다른 방향으로 돌릴 수 있는 경우는, 마지막 설계 규칙 체크 에러가 스텝(1026)에서 장애물 회피 전환 방향을 결정하는데 사용된다.
본 발명의 한 실시예에 따라서, 새 와이어의 배선은 "배선 경로(routing path)"를 따라 수행된다. 여기에 정의된 것처럼, 배선 경로는 2개의 접속점들 사이의 연결을 너비의 변화가 없는 단일 층 상의 와이어로 구현한다. 와이어의 너비가 변경되어야 한다는 판단이 내려진 경우에는, 브랜치 접속점은 들어오는 와이어가 나가는 와이어와 다른 너비를 갖도록 하기 위해 측면 연결없이 삽입된다.
노드 그래프(즉, 포괄 배선 동안에 만들어진 것)의 모든 에지는 배선 경로를 갖는다. 각 배선 경로는 층 번호, 와이어 너비, 세부 배선을 가이드하는데 사용되는 전략 리스트 및 와이어에 대한 실제 배선을 나타내는 하나 이상의 다각형을 갖는다. 세부 배선은 에지의 끝 또는 한쪽 끝으로부터의 시도가 다른 쪽에 닿지 못하고(그 사이의 스트레치를 여기서는 "비배선(unroute)"이라고 부르며, 양쪽 끝으로부터의 배선은 비배선된 섹션의 길이를 감소시키고, 때로는 배선을 완료시키기도 한다), 시도된 끝마다 한개의 다각형이 있는 경우에는, 양쪽 끝 모두로부터 진행한다.
i. 세부 배선 동안 와이어들의 연결점을 이동시키기
앞서 설명한 대로, 배선 기준점들은 새 와이어의 배선을 접속점들로 가이드한다. 그럼에도 불구하고, 와이어들은 배선 기준점들로만 연결될 것이 요구되지는 않지만, 세부 배선 동안에 결정된 바와 같이, 다른 위치로 연결될 수도 있다. 도 11은 본 발명의 실시예에 따라 적용가능한 설계 규칙들의 세트의 제한 조건 내에서 세부 배선 동안에 연결점들을 변경하는 것을 설명하는 블록도이다.
접점 접속점(1100)의 배열은 참조 번호(1102,1104,1106 및 1108)로 확인되는 4개의 접점들을 포함한다. 이론적으로, 와이어는 접점 접속점(1100) 배열 상의 어느 위치에든 전기적으로 연결될 수 있다. 그러나, 설계 규칙은 와이어가 접점 접속점(1100)으로 연결되는 특정 위치 및/또는 각도 또는 방향을 제한한다. 예를 들어, 와이어(1110 및 1112)는 어떤 설계 규칙 스페이싱 필요 조건도 위반하지 않고 접점 접속점(600)의 배열에 연결될 수 있다. 그러나, 와이어(1114)는 설명된 방향에서 접점(1104)으로 연결될 수 없다. 왜냐하면, 이것은 화살표(1116)에 의해 표시된 바와 같이 와이어(1114) 및 접점 접속점(1100)의 배열 사이의 예각을 이루고, 이것은 설계 규칙 스페이싱 필요 조건을 위반할 것이기 때문이다. 마찬가지로, 와이어(1118 및 1120)는 스페이싱 위반 때문에, 접점 접속점(1100)의 배열에 연결될 수 없다. 즉, 도 11에 설명된 방식으로 와이어(1118) 또는 와이어(1120)를 접점 접속점(1100)에 연결하는 것은 와이어(1118 및 1120) 각각 및 화살표(1122 및 1124)로 각각 표시되는 접점 접속점(1100)의 배열 사이의 예각 때문에, 설계 규칙 스페이싱 필요 조건 위반을 발생시킬 것이다.
또다른 예로서, 와이어(미도시)가 접점(1108) 상의 배선 타겟(1126)에 연결되어 있다고 가정하자. 화살표(1128)에 의해 표시되는 와이어 너비 및 화살표(1130)로 표시되는 최소 스페이싱 필요조건이 주어지면, 테스트 영역(1132)은 세부 배선 동안 와이어를 재배치 시키기 위해 정의된다. 접속점의 어떤 구조라도 테스트 영역까지 확장하는 경우에, 그 배선 타겟 사이트는 허용되지 않는다.
세부 배선 동안, 집적회로 레이아웃은 변화되고, 접속점들은 시작 접속점에서 끝 접속점까지, 또는 그렇지 않은 경우에는 적용가능한 설계 규칙을 만족시키기 위해 필요한 대로, 와이어가 성공적으로 배선되도록 하기 위해 이동된다. 본 발명의 한 실시예에 따라서, 접점 엔클로져의 코너 클리핑, 트랜지스터 아일랜드의 코너 클리핑 및 접속점 이동을 포함하는 세가지 타입의 변화가 허용된다. 접점 엔클로져의 코너를 클리핑하는 것은 앞서 설명되었다. 일반적으로, 코너 클리핑은 가능할 때마다 수행되고, 와이어는 다시 확장된다. 더이상의 진전이 없는 경우에는, 변화는 복구되고 와이어는 다음과 같이 굽혀진다.
도 12는 본 발명의 실시예에 따른 트랜지스터 아일랜드의 코너를 클리핑하기 위한 방법을 설명하는 블록도(1200)이다. 한 예로서, 다각형 와이어(1204)는 다각형(1204) 상의 장애물 및 확산 영역(1206), 다각형 게이트(1208)와 소스/드레인 접점(1209)으로 구성된 트랜지스터 아일랜드 사이의 루트(1203)를 따라 확장되고 있다. 확산 및 다각형 사이의 최소 필요한 공간은 참조 번호(1210)에 의해 표시된 영역에서 만족되지는 않을 것이기 때문에, 확산 영역(1206)의 부분(1212)은 제거되고, 참조번호(1216)에 의해 표시된 바와 같이 확산 소스/드레인 확장 규칙을 만족시키는 새 확산 영역 경계(1214)를 형성한다.
접점 엔클로져 클리핑 또는 트랜지스터 아일랜드는 적용가능한 설계 규칙에 의해 허락되는 경우에만 발생할 수 있다. 적용가능한 설계 규칙에 의해 특정된 제한 조건 내에서 접속점을 이동시키는 것은 접속점이 이동 가능, 즉 트랜지스터 게이트 또는 포트가 아니고 거기에 연결된 와이어가 없기만 하다면, 세부 배선 동안 수행될 수 있다. 와이어들은 세부 배선 동안 파기되지 않는다. 그보다는, 앞서 언급한 대로, 시작 접속점으로부터 끝 접속점까지 완전한 와이어를 만들기 위한 시도가 행해지고, 와이어가 예컨대, 돌아갈 수 없는 장애물 때문에 완료될 수 없는 경우에는, 포괄 배선 동안에 장애물 해결책이 강구된다. 본 발명의 한 실시예에 따라, 세부 배선 동안 와이어가 시작 접속점으로부터 끝 접속점까지 성공적으로 배선될 수 없는 때는, 포괄 배선에 상기 배선이 성공적으로 완료될 수 없었던 이유를 표시하는 에러 코드가 제공된다. 예를 들어, 상기 에러 코드는 와이어가 그 이상 확장되는 경우에 발생할 수 있는 설계 규칙 위반을 표시할 수 있다.
접속점 이동의 특별한 타입이며 레이아웃 합성 시스템에만 적절한 것으로 게이트 최적화기(gate optimizer)에 의해 계산되는 제한조건 내에서 트랜지스터 소스/드레인 접점 배치를 조절하는 것이 있다. 도 13A 및 13B는 본 발명의 한 실시예에 따른 새 와이어의 배선을 수용하도록 트랜지스터 소스/드레인 배치의 조절을 설명하는 블록도이다. 도 13A에서, 트랜지스터 아일랜드(1300)는 각각 상부 금속층을 포함하는 소스/드레인 접점 접속점(1306 및 1308) 사이에서 배선된 확산 영역(1302) 및 다각형 게이트(1304)를 포함한다. 금속 와이어(1310)는 경로(1311)를 따라 소스/드레인 접점 접속점(1306 및 1308) 사이에서 배선된다. 그러나, 이것은 최소 금속 대 금속 스페이싱 필요조건을 위반하지 않고서는 수행될 수 없다. 상세하게 설명하면, 와이어(1310)는 참조번호(1312)에 의해 표시되는 최소 스페이싱 필요조건을 위반할 것이고, 실제로 위치(1314)의 소스/드레인 접점 접속점(1308)과 접촉할 것이다.
본 발명의 실시예에 따라, 소스/드레인 접점 접속점(1306 및 1308) 사이에서 와이어(1310)의 배선은, 각각 화살표(1316 및 1318)에 의해 표시된 바와 같이, 소스/드레인 접점 접속점(1306 및 1308)을 서로 떨어지게 하므로써 도 13B에 설명된 바와 같이 달성되어, 금속 대 금속 최소 스페이싱 필요조건은 화살표(1320 및 1322)에 의해 표시된 바와 같이 만족된다.
와이어(1310)에 가장 가까운 소스/드레인 접점 접속점(1306 및 1308)의 코너는 추가의 공간을 배선 와이어(1310)에 제공하도록 클리핑될 수 있다는 사실을 주목할것.
방금 설명된 방식대로 접점 접속점을 이동시키면 트랜지스터의 소스/드레인 저항을 증가시킬 수 있다. 그러므로, 본 발명의 실시예에 따라, 접속점을 이동시킨 후에 더 이상의 진전이 불가능한 경우에는, 접속점은 그 원래 위치로 재이동되고 대신 와이어가 굽혀진다. 진전이 있는 경우에는, 상기 변화는 확장되는 와이어에 대한 변경 리스트에 저장되며, 이하에서 보다 상세히 설명한다.
앞서 설명된 대로, 트랜지스터는 포괄 배선 동안에 단일 트랜지스터 아일랜드 또는 서로 떨어진 전체 트랜지스터 아일랜드 내에서 널리 분산될 수 있다. 이것은 비용이 많이 드는 변경이고, 기존 와이어가 파기되어야 하기 때문에, 바람직하게는 포괄 배선 동안에 수행된다.
ii. 변경 리스트
변경 리스트는 세부 배선 동안 새 와이어를 배선하는 동안에 집적회로 구조에 수행된 변경을 기록하는데 사용된다. 본 발명의 한 실시예에 따라, 2개의 변경 리스트가 각 새 와이어에 대해 만들어 진다. 변경 리스트 중의 하나는, 새 와이어가 시작 접속점으로부터 끝 접속점까지 확장되는 동안, 집적회로 레이아웃 구조에 수행된 변경을 기록한다. 다른 변경 리스트는, 새 와이어가 끝 접속점으로부터 시작 접속점까지 확장되는 동안, 집적회로 레이아웃 구조에 수행된 변경을 기록한다. 와이어는 시작 접속점에서 끝 접속점으로, 끝 접속점에서 시작 접속점으로 또는 두가지 방식 모두로 배선될 수 있다는 사실을 상기할것. 2개의 와이어가 만나서 성공적으로 배선을 완료한 경우에는, 다각형 및 변경 리스트가 조합된다. 본 발명의 한 실시예에 따라, 변경 리스트 중의 하나는 나머지 한 리스트에 역순으로 추가되고, 모든 변경은 특정 끝에서 다른 쪽으로 읽어갈때 순서대로 있게 된다.
본 발명의 한 실시예에 따라, 각 변경은 변경 타입, 객체 포인터, (코너 위치 같은)변경 동작에 요구되는 임의의 파라미터 및 변경 전의 객체의 상태(예컨대, 엔클로져가 어느 때에 약간 클리핑될 수 있기 때문에, 그 이전 클리핑 양)에 의해 특성화 된다.
iii. 와이어 굽힘(wire bending)
와이어가 트랜지스터 아일랜드의 코너 또는 접속점을 클리핑한 후에 또는 접속점을 방해되지 않는 곳으로 이동시키므로써, 성공적으로 배선될 수 없는 경우에는, 새 와이어가 굽혀진다. 와이어가 기지의 끝에서 확장되고 있기 때문에, 설계 규칙 위반의 성질은 장애물을 피하기 위한 보다 바람직한 굽힘 방향을 결정하는데 사용될 수 있다. 정규 방향은 도 10B의 스텝(1060)에서 수행된 설계 규칙 체크에 의해 결정된다. 예를 들어, 방향있는 와이어 세그먼트를 포함하는 와이어를 사용하는 본 발명의 한 실시예에 따라, 바람직한 굽힘 방향은 이하에서 도 14A-14H를 참조하여 설명되는 식으로 결정된다. 굽힘 방향은 도 10A의 스텝(1022 및 1026)에서 결정된다는 것을 주목할 것.
도 14A에 설명된 바와 같이, 배선 경로(1400)에서 장애물(1402)까지의 법선 방향(canonical direction)이 화살표(1404)에 의해 표시된 바와 같이 수직으로 위를 향하는 경우에는, 배선 경로(1400)에 대한 가능한 유일한 굽힘 방향은 도 14B에 설명된 바와 같이 좌측 윗 방향, 예컨대 45도 굽힘 방향이다. 다른 방향은 배선 경로(1400)가 거슬러 올라가야 하고, 초기의 굽힘이 삽입되어야 하는 U턴이 될 것이다.
도 14C에 도시된 바와 같이, 배선 경로(1400)에서 장애물(1402)까지의 법선 방향(canonical direction)이 화살표(1406)에 의해 표시된 바와 같이 수직으로 위를 향하는 경우에는, 배선 경로(1400)에 대한 가능한 유일한 굽힘 방향은 도 14D에 설명된 바와 같이 좌측 윗 방향, 예컨대 45도 굽힘 방향이다.
도 14E에 설명된 바와 같이, 배선 경로(1400)에서 장애물(1402)까지의 법선 방향이 위를 향하는 경우에는, 바이어스 방향은 보다 바람직한 굽힘 방향을 결정하도록 조사된다. 바이어스 방향이 도 14E에 설명된 바와 같이 좌측을 향하는 경우에는, 배선 경로(1400)는 좌측, 예컨대 좌측으로 90도 만큼 굽혀진다. 바이어스 방향이 도 14F에 설명된 바와 같이 우측을 향하는 경우에는, 배선 경로(1400)는 우측, 예컨대 우측으로 90도 만큼 굽혀진다.
배선 경로(1400)가 추가의 장애물때문에 또는 배선 경로(1400)가 유효한 영역의 에지에 도달할 수 없거나, 즉 이탈 한계를 초과하였기 때문에 더이상 바람직한 방향으로 확장될 수 없는 경우에는, 프로세스를 종료하기 전에 반대 방향을 시도해 본다. 예를 들어, 바이어스 방향이 좌측인 경우에는 우측으로 90도 굽힘(1408;도 14E), 바이어스 방향이 우측인 경우에는 좌측으로 90도 굽힘(1410;도 14F).
도 14G에 설명된 바와 같이, 배선 경로(1400)의 끝에서 장애물(1412)로의 법선 방향이 좌측인 경우에는, 참조번호(1414)에 의해 설명되는 바와 같이, 배선 경로(1400)의 세부 배선 거슬러 올라가서 우측 위로 향하는 굽힘이 삽입된다. 우측 위로 향하는 굽힘이 장애물(1412)을 성공적으로 돌아가지 않는 경우에는, 참조 번호(1416)에 설명된 바와 같이, 우측 굽힘이 배선 경로(1400)에 삽입된다.
도 14H에 설명된 바와 같이, 배선 경로(1400)의 끝에서 장애물(1412)로의 법선 방향이 우측인 경우에는 참조번호(1418)에 의해 설명되는 배선 경로(1400)의 세부 배선을 거슬러 올라가서 좌측 위로 향하는 굽힘이 삽입된다. 좌측 위로 향하는 굽힘이 장애물(1412)을 성공적으로 돌아가지 못한 경우에는 참조번호(1420)에 의해 설명된 바와 같이 좌측 굽힘이 배선 경로(1400)에 삽입된다.
d. 접속점 설계 규칙 체크
본 발명의 실시예에 따라서, 각 레이아웃 다각형에는 타입 코드 및 객체 색인과 같은 확인 정보가 추가되어, 설계 규칙은 배선 동안에 효과적으로 체크된다. 예를 들어, 트랜지스터 게이트 다각형은 타입 트랜지스터 아일랜드 구조(트랜지스터는 그것이 올려져 있는 층으로부터 알 수 있다) 및 어느 아일랜드가 트랜지스터 게이트를 포함하고 그 아일랜드 내의 어디에 트랜지스터 게이트가 위치하고 있는가를 표시하는 색인을 갖는다. 트랜지스터 소스/드레인 접점들, 우물 연결줄 및 확산 다각형들 또한 이러한 타입을 갖는다. 배선 접속점 다각형은 타입 접속점 및 노드를 나타내는 그래프 내의 노드 번호에 대한 색인 및 포인트 색인을 갖는다. 배선 경로 다각형은 타입 배선 경로, 노드 번호에 대한 색인 및 그래프 내의 에지 번호에 대한 색인을 갖는다. 우물, 주입물, 고급 다각형 및 주변(제한하는) 다각형 같은 다른 구조 또한 확인 타입 및 꼬리표를 갖는다. 그리하여 설계 규칙 체크가 성공하지 못한 경우에는, 2개의 영향받은 다각형들은 위반의 성질을 판단하고 하이-레벨 회피 전략을 구현하는데 사용된다. 예를 들어, 다각형 와이어가 트랜지스터 아일랜드의 확산 다각형에 접근하는 경우에는, 세부 배선은 정지되고 상기 위반은 전체 라우터로 리턴되며, 배선 스트레치에 대한 이탈 한계를 증가시키거나, 트랜지스터 아일랜드 주위의 배선을 가이드하기 위한 힌트 다각형을 발생시키거나, 배선 층을 트랜지스터 아일랜드와 겹칠 수 있는 것으로 변경시키거나 아니면 포기하고 다른 방향을 찾아본다.
본 발명의 한 실시예에 따라, 두가지 타입의 설계 규칙 체크가 수행된다: 접속점 설계 규칙 체크 및 배선 경로 설계 규칙 체크. 접속점 설계 규칙 체크는 주위 레이아웃 구조에 관한 접속점의 구조를 평가한다. 배선 경로 설계 규칙 체크는 주위 레이아웃 구조에 관한 배선 경로의 구조(또는 그 섹션)를 평가하며, 이하에서 보다 상세히 설명된다. 구조는 항상 설계 규칙을 만족시키는 영역에 추가되기 때문에, 비록 상기 설계 규칙 에러와는 관계없는 레이아웃 구조 엘리먼트들 사이에 있는 것이지만, 임의의 확인된 설계 규칙 에러는 새 레이아웃 구조의 직접적인 결과이다. 예를 들어, 이것은 접속점 또는 배선 경로의 추가가 도그본(dogbone) 스페이싱 규칙이 위반되도록 하였을때 발생한다. 도 15는 배선 경로의 확장에 적용가능한 도그본 스페이싱 규칙의 위반을 설명하는 블록도(1500)이다. 다이어그램(1500)은 접점 엔클로져(1504 및 1506)에 인접한 새로 확장된(금속) 배선 경로(1502)를 포함한다. 설명을 위해, 통상적인 스페이싱 필요조건은 접점 엔클로져(1504 및 1506) 사이의 분리된 최소한 4개의 유닛을 필요로 한다. 이 필요조건에 대한 예외는 소위 "도그본(dogbone)" 규칙이라고 불리며, 접점 엔클로져(1504 또는 1506)가 다른 레이아웃 엘리먼트에 근접한 그 에지중 하나의 특정양을 갖지 않는 한, 정상적인 최소 스페이싱 필요조건에 대한 예외를 제공하고 접점 엔클로져(1504 및 1506)가 더 가까와 지도록 한다. 그리하여, 본 예에서, 배선 경로(1502)가 나타나지 않고, 접점 엔클로져(1504 및 1506)가 스스로 평수행하는 경우에는, 기준 스페이싱 필요조건을 위반하겠지만, 도그본 예외는 만족시킬 것이다. 그러나, 참조 번호(1510)에 의해 표현되는 배선 경로(1502)에 근접한 접점 엔클로져의 하부 에지의 양은 특정양을 초과할 것이다. 결과적으로, 배선 경로(1502)의 존재는 접점 엔클로져(1504)에 근접한 배선 경로(1502)의 확장 전에는 존재하지 않았던 엔클로져 접점들(1504 및 1506) 사이의 스페이싱 위반을 발생시킨다. 한번에 두개의 객체만을 고려하는 에지 길이의 더 느슨한 정의가 이러한 타입의 스페이싱 에러가 되지 않는다는 사실을 주목하여야 한다. 그러나, 때로는 최악의 경우의 평가를 수행하는 것이 더 바람직하다.
본 발명의 실시예에 따라 의사 코드로 구현된 접속점 설계 규칙 체크의 예는 다음 스텝들을 포함한다:
for 접속점의 각 층에 대해서 do
for 상기 층 상에 각각 접속된 와이어에 대해서 do
if 와이어 끝에 대한 "방법" 플래그가 세팅되지 않은 경우에는, then 제외 리스트에 와이어링 끝에 대한 배선 경로 다각형을 추가한다.
endif
if 와이어의 그래프 에지에 대한 "단거리 경로" 플래그가 세팅된 경우에는, then 제외 리스트에 에지의 다른 쪽에서 접속점에 대한 모든 다각형들을 추가한다.
endif
end # 각각 연결된 와이어
for 접속점 다각형 근처의 각 다각형에 대해서 do # 모든 층 상에서
다각형의 타입, 층수 및 설계 규칙에 따라 두개의 다각형들 사이의 간 격을 계산함
if 스페이싱이 적용되는 경우에 then
if 다각형이 서로 너무 가까운 경우에 then # 한정된 도그본 에러를 포함하여
그 에러값을 리턴한다.
endif # 너무 가까움
if 근처의 다각형이 이 층상에 있고 and
근처의 다각형의 접속점의 한 부분이고 and
상기 다각형이 서로 너무 가깝고 and # 즉, 도그본을 위반할 수도 있음
에러들이 축적되고 있는 경우에는 then
근처의 접속점을 기억한다.
endif
endif # 스페이싱이 적용됨
다각형의 타입, 층수 및 설계 규칙에 따라 두개의 다각형들 사 이의 엔클로져를 계산한다.
if 엔클로져가 적용되고 and 다각형이 규칙을 만족시키지 않는 경우에는 then 그 에러값을 리턴한다.
endif
end # 각각의 다각형
end # 각각의 층
if 에러들이 축적되고 and 근처의 접속점들이 도그본 규칙을 위반하는 경우에는 then
for 근처의 접속점을 각각 위반하는 것에 대해 do
그 접속점 주위에서 더이상의 에러 축적없이 접속점 DRC(Design Rule Check)를 실행한다.
if 침해가 발견되면 then
그 위반을 리턴한다. # 그것이 새 구조를 가리키지는 않는다 하더라도
endif
end # 각각 접속점 위반이 가능함
endif # 위반하였을 수도 있음
스페이싱 또는 엔클로져의 정확성을 체크할때 요구되며, 포괄적인 스페이싱 또는 엔클로져 체크 루틴으로 넘겨진 객체에 의해 수행되는 계산들은 설계 규칙, 층 번호, 다각형 타입, 각 다각형의 와이어 너비, 각 다각형의 에지 길이 및 접속점 근처의 다각형이 임의의 제외 리스트에 있는가에 따라 달라진다. 예를 들어, 가까운 다각형이 넓은 배선 경로인 경우에는, 두개의 다각형 중 적어도 하나의 에지 길이가 설계 규칙의 도그본 에지 길이보다 적지 않은 한, 스페이싱 필요조건은 정상보다 더 클 수 있다. 정상적인 너비의 와이어들 사이의 도그본 에지 길이 필요조건 또는 다각형 내부연결 및 트랜지스터 소스/드레인 접점 사이의 여분의 스페이싱 같은 다른 관습적 규칙 평가도 또한 가능하다.
본 발명의 한 실시예에 따라, 위반을 바로잡기 위해 새 데이터가 이동되어야 하는 거리 같은 특정 범주에 의해 결정된 "최악"의 설계 규칙 위반이 확인된다. 그리하여, 발견된 각 위반은 현재의 최악과 비교되고, 최악의 위반은 프로시저의 끝에서 반환될 것이다.
제외 리스트는 접속점 내의 배선 층에 대한 층내 스페이싱 체크 및 접속점 내의 접점 층에 대한 인터층 엔클로져 체크에 적용된다. 두개의 다각형이 동일한 배선 층에 있고, 근처의 다각형이 제외 리스트에 있는 경우에는, 스페이싱이 인가되지 않는다. 접속점 다각형이 접점 층상에 있고 근처의 다각형이 제외 리스트, 예컨대 동일한 접속점의 한 부분에 있는 경우에는, 엔클로져가 인가되지 않는다. 이것은, 와이어 접속을 정의할 때, 배선 경로가 그려지자마자 엔클로져 규칙 필요조건이 충족될 것임을 알기 때문에, 접속점으로 하여금 일시적으로 접점 주위의 엔클로져를 감소시키도록 한다. 예를 들어, 도 16은 와이어 접속을 정의할 때, 접점 주위의 엔클로져를 일시적으로 감소시키는 방법을 설명하는 블록 다이어그램(1600)이다. 다이어그램(1600)은 참조번호(1604)로 표시되는 감소된 엔클로져를 갖는 접점 엔클로져 접속점(1602) 및 배선 타겟(1606)을 포함한다. 엔클로져 규칙 필요조건은 배선 경로(1608)가 접점 엔클로져 접속점(1602)에 접속될 때 만족된다.
본 발명의 한 실시예에 따라, 설계 규칙 체크가 수행된 뒤에, 설계 규칙들을 위반할 수도 있는 접속점들은 확인 및 기억된다. 예를 들어, 이것은 도그본 스페이싱 위반이 특정 접속점에서 발생할 수도 있었을 경우에 발생한다. 근처의 접속점이 분명히 체크되고 있는 접속점에 대한 도그본 스페이싱 규칙을 위반하는 경우에는, 그 에러는 즉시 발견된다. 그렇지 않으면, 위반에 있어서 전체 에지 길이가 설계 규칙 한계를 초과하는지를 살펴보기 위해 그 접속점에 대한 접속점 설계 규칙 체크는 나중에 수행된다. 무한 반복을 피하기 위해, 이 접속점 설계 규칙 체크는 설계 규칙을 위반할 수도 있는 가까운 접속점은 확인하지 않는다. 그보다는, 단일 접속점 DRC(Design Rule Check)는 모든 스페이싱 조합을 고려하지 않고 테스트 중의 접속점만을 참조하는 경우에만 수행된다.
e. 설계 규칙 체크에 대한 표시자에 접근하기
배선 경로가 배선 타겟보다 접속점 부분에 지나치게 가까이 가지 않도록, 즉 스페이싱 규칙을 위반하지 않도록 확실히 할 것이 필요하다. 그러므로, 본 발명의 실시예에 따라, 배선 경로의 각 끝은 관련된 접근 표시자(플래그)를 갖는다. 접근 표시자가 특정 끝에 대해 인가(세팅)되면, 배선 경로는 접속점에 아직 도달하지 않은 것이고, 배선 경로 및 접속점 사이의 스페이싱, 특히 배선 타겟 이외의 위치는 체크될 수 있다. 이것은 배선 경로가 배선 타겟 이외의 접속점의 부분에 대한 스페이싱 규칙을 위반하지 않도록 확실히 하는 것이다. 접속점과 관련된 설계 규칙 체크는, 배선 경로가 굽히기에 충분한 정도로 긴 경우를 제외하고는 연결된 와이어들에 대한 배선 타겟이 설계 규칙을 위반하지 않도록 확실히 한다.
배선 경로가 접속점과의 어떠한 설계 규칙 위반도 발생시키지 않는다는 것이 일단 알려지면, 배선 경로에 대한 접근 표시자는 인가해제(deassert)된다. 그리고는 배선 경로는 접속점 상의 배선 타겟에 닿을 때까지 확장되고, 그 다음 배선 경로 DRC는 접속점 배선 다각형을 고려 대상에서 제외시킨다.
도 17A 및 도 17B는 본 발명의 실시예에 따른 접근 표시자의 사용을 설명한다. 도 17A에서, 배선 경로(1700)는 접점 엔클로져 접속점(1702) 및 배선 타겟(1704)으로 확장되고 있다. 이 지점에서, 배선 경로(1700)에 대한 접근 표시자가 인가되고, 배선 경로(1700) 및 배선 타겟(1704) 사이의 스페이싱(1706)은 적용 가능한 설계 규칙을 기준으로 체크된다. 도 17B에서, 배선 경로(1700)에 대한 접근 표시자는 인가해제(삭제)되고, 결과적으로 배선 경로(1700) 및 접점 엔클로져 접속점(1702)은 체크되지 않는다.
f. 설계 규칙 체크에 대한 짧은 경로 표시자
어떤 상황에서는, 배선 경로는, 배선 경로의 의미있는 설계 규칙 체크가 수행되지 못하게 할 정도로 충분히 가까운 두개의 접속점들, 특히 접점 엔클로져 접속점들을 연결한다. 마찬가지로, 접속점의 근접은 접속점의 설계 규칙 체크가 다른 접속점에 대한 배선 다각형을 제외하도록 한다. 두개의 접속점들 사이에 와이어가 있는 경우에는(닿을 수 있다) "노치(notch)" 위반을 피하기 위해 보통보다 더 넓게 그려질 수도 있다.
예를 들어, 도 18에서, 두개의 접점 엔클로져 접속점들(1800 및 1802)은 배선 경로(1804)에 의해 연결된다. 배선 경로(1806 및 1808)는 각각 접점 엔클로져 접속점(1800 및 1802)에 연결된다. 이 예에서, 접점 엔클로져 접속점들(1800 및 1802)의 근접은 참조번호(1810)로 표시된 바와 같이, 접점 엔클로져에 대한 최소 스페이싱 규칙을 위반하고, 접점 엔클로져 접속점(1800 및 1802)의 설계 규칙 체크 또는 배선 경로(1804)를 실행 불가능하게 한다.
다른 상황에서, 접점들이 서로의 상부에 직접 배치될 수 없을때, 단일 접속점은 두개의 근접하지 않는 배선 층들, 즉 제1 금속 및 제3 금속을 연결하기 위한 두개의 접점을 통합한다. 이러한 상황에서, 접점들의 근접은 의미있는 규칙 체크가 수행될 수 없도록 한다. 다시 도 18을 참조하면, 예제에 대한 상황에서, 배선 경로(1806)는 제1 금속층 상에 있고, 배선 경로(1804)는 제2 금속층 상에 있으며, 배선 경로(1808)는 제3 금속층 상에 있다. 이러한 상황에서, 접점 엔클로져 접속점(1800)은 제1 및 제2 금속층들을 연결하고, 접점 엔클로져 접속점(1802)은 제2 및 제3 금속층을 연결할 것이다.
접속점들 사이의 매우 짧은 배선 경로와 관련된 특정 문제들에 대한 관점에서, 본 발명의 실시예에 따라, 이러한 타입의 짧은 경로는 짧은 경로 표시자에 의해 확인된다. 배선 경로에 대한 짧은 경로 표시자가 인가될 때는, 배선 경로는 짧은 배선 경로이고, 통상적인 배선 경로 및 접속점 설계 규칙 체크는 수행되지 않는다. 대신에 배선 경로 및 연결된 접속점들은 만들때부터 교정되어 있어야 한다.
g. 배선 경로 설계 규칙 체크
본 발명의 실시예에 따라 의사 코드로 구현된 배선 경로 설계 규칙 체크의 예를 설명하고자 한다. 배선 경로의 설계 규칙 체크는, 임의의 연결된 에지들에 반대로 배선 경로가 단일층 및 정확하게 두개의 끝 접속점만을 갖는다는 사실을 제외하고는, 접속점의 설계 규칙에 유사하다.
배선 경로 다각형으로부터 시험 다각형을 구성하여 보자.
if 첫번째 끝으로의 "방법" 플래그가 세팅되지 않은 경우에 then
첫번째 끝의 접속점에 있는 모든 다각형들을 제외 리스트에 추가한다.
for 첫번째 접속점에 연결된 각각의 배선 경로에 대해서 do
if 나머지 배선 경로가 현재의 배선 경로와 같고 and
나머지 배선 경로의 끝에 대한 "방법" 플래그가 세팅되지 않은 경우에 then 나머지 배선 경로 다각형에 근접한 부분을 제외 리스트에 추가한다.
if 나머지 배선 경로가 "짧은 경로" 플래그를 세팅시키는 경우에 then 나머지 배선 경로의 나머지 끝의 접속점의 모든 다각형들을 제외 리스트에 추가한다.
endif # 짧은 경로
endif # 동일한 층
end # 다른 모든 경로들
endif
if 두번째 끝에 대한 "방법" 플래그가 세팅되지 않은 경우에 then
두번째 끝의 접속점에 있는 모든 다각형을 제외 리스트에 추가한다.
for 두번째 접속점에 연결된 각각의 배선 경로에 대해서 do
if 나머지 경로가 현재 배선 경로와 동일한 층에 있고 and 나머지 배선 경로의 이 끝에 대한 "방법" 플래그가 세팅되지 않은 경우에 then 나머지 배선 경로 다각형에 근접한 부분을 제외 리스트에 추가한다.
if 나머지 배선 경로가 "짧은 경로"를 세팅시키는 경우에 then
나머지 배선 경로의 나머지 끝의 접속점에 있는 다각형들을 제외리스트에 추가시킨다.
endif # 짧은 경로
endif
end # 모든 다른 경로
endif
for 시험 다각형 근처의 각각의 다각형에 대해 do # 모든 층상에서
다각형의 타입, 층번호 및 설계 규칙에 따라 두 다각형들 사이의 스페이싱을 계산한다.
if 스페이싱이 적용되는 경우에 then
if 다각형들이 서로 너무 가까운 경우에 then # 명확한 도그본 에러를 포함하여 그 에러를 반환한다.
endif # 너무 가깝다.
if 근접한 다각형이 이 층위에 있고 and
상기 근접한 다각형의 접속점의 한 부분이며 and
상기 다각형들이 서로 너무 가까워질 수 있고 and # 즉, 도그본을 위반할 수있고
에러들이 축적되고 있는 경우에 then
근처의 접속점을 기억한다.
endif
endif # 스페이싱이 적용된다.
다각형의 타입, 층번호 및 설계 규칙에 따라 두개의 다각형들 사이의 엔클로져를 계산한다.
if 엔클로져가 적용되고 and 상기 다각형이 규칙을 만족시키지 않는 경우에 then 그 에러를 반환한다.
endif
end # 각 다각형
if 에러가 축적되고 and 근처의 접속점이 도그본 규칙을 위반하는 경우에 then
for 가능한 각각의 근처 접속점 위반에 대해서 do
더이상의 에러를 축적시키지 않고 그 접속점 주위로 접속점 DRC를 실행시킨다.
if 위반이 발견되는 경우에 then
그 위반을 반환한다. # 비록 그것이 새 구조를 반환하지 않는다 하더라도
endif
end # 가능한 각각의 접속점 위반
endif # 위반하였을 수도 있다.
시험 다각형은 임의의 새로 발생된 도그본 위반이 확실히 통보되도록 하기에 충분한 배선 경로를 포함한다. 상세하게는, 테스트 다각형은 모든 새로 확장된 배선 경로 구조 및 적어도 도그본 에지 길이 한계 만큼의 기존 와이어의 길이를 포함한다. 이 값은 도그본 스페이싱 위반을 검출할 필요에 의해 결정된다.
본 발명의 한 실시예에 따라, 포괄 배선 경로 다각형은, 배선 경로의 길이가 매우 긴 경우에는, 예컨대 칩-레벨 라우터에서는 계산적으로 비싸기는 하지만 배선 경로 설계 규칙 체크를 위해 사용될 수 있다. 대체로 상대적으로 적은 양의 배선 경로를 테스트하고 그것을 만들어지고 있는 배선 경로를 따라 이동시키는 것이 훨씬 효과적이다.
필요한 스페이싱 및 엔클로져는 접속점 설계 규칙 체크와 동일한 방식으로 계산된다. 다시, 층내 스페이싱 체크가, 제외 리스트가 배선 경로 및 각 끝에서의 접속점들 사이의 위반을 통보할 수 없도록 하기 위해 사용된다.
접근 표시자가 배선 경로의 끝에 대해 인가되지 않는 경우에, 상기 배선 경로는 동일한 층 상의 동일한 접속점에 접근하는 다른 배선 경로에 대한 스페이싱 규칙들을 위반할 수 있다. 결과적으로, 그러한 배선 경로의 부분은 설계 규칙 체크에서 제외되어야 한다.
도 19는 이 상황을 설명하는 블록도(1900)이다. 배선 경로(1902 및 1904)는 접점 엔클로져 접속점(1906)에 연결된다. 이런 상황에서, 설계 규칙 최소 스페이싱 필요조건은 화살표(1908)로 표시된 바와 같이 배선 경로(1902 및 1904)의 접근에 의해 위반된다. 마찬가지로, 배선 경로(1910,1912 및 1914)는 브랜치 접속점(1916)에 연결된다. 이런 상황에서, 설계 규칙 최소 스페이싱 필요조건은 화살표(1918)로 표시된 바와 같이 배선 경로(1910 및 1912)의 접근에 의해 위반된다. 또한, 설계 규칙 최소 스페이싱 필요조건은 화살표(1920)로 표시된 바와 같이, 배선 경로(1912 및 1914)의 접근에 의해 위반된다.
그러므로, 본 발명의 실시예에 따라, 배선 경로의 마지막 와이어 세그먼트는 동일한 접속점에 연결된 다른 배선 경로의 마지막 와이어 세그먼트에 대항하여 체크되지 않는다. 이것은, 와이어 세그먼트는 볼록렌즈이고 마지막 와이어 세그먼트는 적어도 스페이싱 규칙만큼 길어야 하기 때문에 유사 에러(false error)만을 제외시킨다. 예를 들어, 도 20에서, 와이어 세그먼트(2002 및 2004)를 포함하는 배선 경로(2000)와 와이어 세그먼트(2008,2010 및 2012)를 포함하는 배선 경로(2006)는 접점 엔클로져 접속점(2014)에 연결된다. 본 발명의 실시예에 따라, 스페이싱 체크는 와이어 세그먼트(2022 및 2008) 사이에서 수행되지 않는다. 그러나, 스페이싱 체크는 와이어 세그먼트(2004) 및 와이어 세그먼트(2008, 2010 및 2012) 사이에서 수행된다. 마찬가지로, 스페이싱 체크는 와이어 세그먼트(2010) 및 와이어 세그먼트(2022 및 2004) 사이에서 수행된다. 또한, 스페이싱 체크는 와이어 세그먼트(2012) 및 와이어 세그먼트(2002 및 2004) 사이에서 수행된다.
제1 배선 경로의 끝에서 접속점에 연결된 배선 경로가 짧은 경로 표시를 인가시키는 경우에, 제1 배선 경로 및 제2 접속점 사이에 유사 스페이싱 위반이 있을 수 있다. 도 21은 배선 경로(2104)에 의해 연결된 두개의 접점 엔클로져 접속점(2100 및 2102)을 설명한다. 배선 경로(2106)는 접점 엔클로져 접속점(2100)에 연결된다. 이 상황에서, 배선 경로(2106)에 인가된 설계 규칙 체크는 배선 경로들(2106 및 2104) 사이의 스페이싱 에러(2108) 및 배선 경로(2106)와 접속점(2102) 사이의 스페이싱 에러(2110)를 거짓으로 식별할 수 있다. 본 발명의 실시예에 따라, 세부 배선은 배선 경로(2106) 및 접점 엔클로져 접속점(2102) 사이에, 예컨대 접속점들 사이의 특정 타입의 근접만을 허용하므로써 진짜 위반이 발생하는 것을 보장한다. 예를 들어, 트랜지스터 게이트 접속점은 뒤로 굽혀지지 않는 것으로 알려져 있어서 브랜치 접속점과 충돌할 것이다. 두개의 단일-접점 접속점들은, 예를 들어 다각형에서 제1 접속점의 제1 금속층까지 및 제1 금속층에서 제2 접속점에 있는 제2 금속층까지의 연결이 만들어지는 경우에, 서로 근접하여 배치된다. 그렇지 않으면, 제1 금속층 상의 제1 접속점에 연결된 와이어는 제2 접속점에 유사 위반이 통보되도록 할 것이다.
다시, 새 구조를 배선 경로에 추가하는 것은 위반이 근처 접속점 상에 나타 나도록 할 수 있다. 따라서 어느 도그본이 현재 나타나 있는가를 판단하기 위해, 이러한 접속점들 주위에 중심을 둔 접속점 설계 규칙 체크를 실행할 필요가 있다.
h. 조밀한 배선 상황
두개의 접속점들이 매우 가까워서 접근 설계 규칙 체크를 위한 배선 경로를 정하기 위한 공간이 불충분한 경우가 있다. 예를 들어, 이것은 두개의 접속점들이 스페이싱 규칙보다 약간 더 떨어져 있거나, 연결 방향이 너무 제한되어 있어서 완료되어야 할 배선 경로의 끝이 정렬될 수 없는 경우 또는 힌트 다각형이 접속점 또는 제한된 배선 환경 때문에 다른 힌트 다각형에 매우 근접한 경우에 발생한다. 이러한 환경에서, 세부 배선은 배선 경로 또는 배선 스트레치를 완료할 수 없을 수도 있다.
그러므로, 본 발명의 실시예에 따라, 배선 될 거리가 와이어 너비의 특정 배수, 예컨대 4배보다 적은 경우에는, 특별한 목적의 조밀한 배선 방법이, 한 스텝에서, 배선 경로 및 접속점들 또는 그 끝의 힌트 다각형들 사이에 스페이싱없이, 배선 스트레치(또는 배선 경로)를 만드는데 사용된다. 그리고나서, 배선 경로 설계 규칙 체크가, 임의의 설계 규칙 위반을 확인하기 위해 접근 표시자가 인가 해제된 상태로, 배선 경로 상에서 수행된다. 만들어진 배선 경로를 따라 어딘가에서 설계 규칙 위반이 검출된 경우에, 연결된 와이어 또는 힌트 다각형은 설계 규칙 위반을 고치기 위해 이동될 수 있다. 예컨대, 135도 굽힘과 같은 임의의 상황에서, 배선 경로의 형태는 설계 규칙 에러를 수정하기 위해, 굽힘의 위치를 선택하거나 90도(직교) 굽힘을 분리된 45도(비직교)굽힘으로 변환시키므로써 변경될 수 있다.
도 22A 및 22B는 본 발명의 한 실시예에 따른 조밀한 배선 방법의 사용을 설명한다. 상세하게는, 도 22A 및 22B에서, 접점 엔클로져 접속점들(2200 및 2202) 사이의 배선 경로가 요구된다. 도 22A에서, 접점 엔클로져 접속점들(200 및 2202)은 약간 꺾인(비직교) 배선 경로(2204)에 의해 연결된다. 도 22B에서, 접점 엔클로져 접속점(2200 및 2202)은 굽힘(비직교) 배선 경로(2206)에 의해 연결된다.
조밀한 배선 방법은 예컨대 트랜지스터 게이트 끝의 연결 방향이 제한되어 있고, 접속점 또는 힌트 다각형이 측면으로 오프셋되어 있는 경우에 특히 유용하다. 예를 들어, 도 22C에서, 본 발명의 실시예에 따라 만들어진, 굽혀진 배선 경로(2208)는 트랜지스터 게이트 접속점(2210) 및 힌트 다각형(2212)을(배선 방향으로) 연결한다.
조밀한 배선 방법은 접속점에 연결된 와이어가 코너쪽으로 항상 오프셋되어 있을때에도 유용하다. 이 상황에서, 배선 경로는, 배선 경로와 접속점 사이에 노치(notch)가 생기지 않을 것이기 때문에, 스페이싱 규칙이 충족되기 전에 굽혀질 수 있다. 정상적으로, 배선 경로는 굽혀지기 전에 스페이싱 규칙을 만족시킬 수 있을 정도로 접속점에서 충분히 멀리 떨어져 이동하여야 한다. 그러나, 또다른 경로가 굽힘 위치 가까이에 연결되어 있는 경우에는, 위반이 발생할 것이다. 예를 들어, 배선 경로(2214)는 접점 엔클로져 접속점(2216)을 코너로부터 접점 엔클로져 접속점(2216)에서 오프셋된 힌트 다각형에 연결한다. 도 22E에서, 조밀한 배선 접근과 함께 만들어진 배선 경로(2220)는 힌트 다각형(2222 및 2224)을 연결한다.
조밀한 배선 방법은 또한 예컨대 두개의 근접한 게이트 끝을 연결하기 위해 U턴을 해야하는 경우에 특히 유용하다. 이것은, U턴이 과도한 검색을 방지하기 위해 요구되는데 세부 배선이 정지되더라도 사용될 수 있다. 도 22F는 트랜지스터 게이트 접속점들(2228 및 2230)을 연결하는 배선 경로(2226)를 발생시키기 위한 조밀한 배선 방법의 사용을 설명한다. 동일한 층의 접속점에 연결된 다른 배선 경로가 배선 경로 설계 규칙 체크의 고려사항에서 제외되기 때문에, 조밀한 배선 방법은 그 층에 가까이에 연결된 와이어가 없지 않은 경우에 와이어가 접속점에 연결될 것을 요구하면 안된다.
6. 장애물 및 불충분한 공간 해결책
와이어가 장애물 또는 불충분한 공간 때문에 배선 될 수 없는 경우에, 장애물 충돌문제를 해결하고 및/또는 와이어를 배선 하기 위해 집적회로 레이아웃에 추가의 공간을 제공하는 스텝이 진행된다. 한 실시예에 따라, 수개의 방법들 중 어느 것이든, 장애물 충돌문제 및/또는 추가의 공간을 제공하기 위해 채용될 수 있다. 이것은 힌트 다각형을 변경 및 추가하는 단계, 배선 전략을 변경시키는 단계, 하나 이상의 층 변경들을 삽입하는 단계, 세부 라우터가 굽힘을 백업하고 삽입하도록 지시하는 단계, 하나 이상의 와이어를 파기하고 재배선하는 단계 또는 목적지 연결점로부터의 와이어를 배선하는 단계를 포함한다. 이들 스텝의 각각을 이하에서 보다 상세히 설명한다.
a. 힌트 다각형을 변경하거나 추가하기
포괄 배선은 세부 배선 동안에 장애물 주위의 배선 경로의 방향을 정하기 위해 힌트 다각형을 변경 및 추가할 수 있다. 도 23은 본 발명의 실시예에 따라 장애물 충돌문제를 해결하기 위해 힌트 다각형을 추가하는 것을 설명하는 블록도(2300)이다. 배선 경로가 접점 엔클로져 접속점(2302 및 2304) 사이에서 배선될 필요가 있다고 가정하자. 장애물(2306)은 엔클로져 접속점들(2302 및 2304) 사이의 직선 경로의 배선을 방지한다. 이 예에서, 세부 배선은 엔클로져 접속점들(2302 및 2304) 사이의 올바른 설계 규칙 배선을 결정할 수 없었을 것이다. 본 발명의 실시예에 따라, 힌트 다각형(2308)이 엔클로져 접속점(2302 및 2304) 사이의 배선 경로의 세부 배선을 가이드하기 위해 추가된다.
b. 배선 전략의 변경
포괄 배선은 단순 배선 표시자를 변경시키거나, 이탈 한계를 조정하거나 또는 바이어스 방향을 변경시키므로써, 특정 배선 경로에 대한 배선 전략을 변경할 수 있다. 단순 배선 플래그를 디스에이블하는 것은, 주위 레이아웃 구조가 이동 또는 변경되도록 하므로써, 예컨대 코너를 클리핑하므로써 추가의 공간을 제공할 수 있다.
배선 경로에 대한 이탈 한계를 조정하는 것, 예컨대 증가시키는 것은 배선 경로가 장애물을 돌아서 배선되도록 한다. 이탈 한계를 조정하는 것은, 새 힌트 다각형의 위치에 따라, 하나 이상의 힌트 다각형을 추가하는 것과 함께 요구될 수도 있다. 도 23에 설명된 바와 같이, 원래 배선 영역은 참조 번호(2310)에 의해 표시된다. 그리하여, 새 힌트 다각형(2308)이 엔클로져 접속점들(2302 및 2304) 사이의 배선 경로의 세부 배선을 가이드 하기 위해 추가되었을 지라도, 이탈 한계를 증가시키지 않고는 배선은 수행될 수 없다. 상세하게는, 엔클로져 접속점(2302) 및 힌트 다각형(2308) 사이의 새 배선 경로의 제1 스트레치에 대하여, 이탈 한계는 참조번호(2302)로 표시된 바와 같이 증가된다. 힌트 다각형(2308) 및 엔클로져 접속점(23204) 사이의 새 배선 경로의 제2 스트레치에 대하여, 이탈 한계는 참조번호(2314)로 표시된 바와 같이 증가된다.
도 24는 본 발명의 실시예에 따라 장애물을 피하기 위해 이탈 한계를 증가시키는 또다른 예를 설명하는 블록도(2400)이다. 배선 경로가 엔클로져 접속점(2402 및 2404) 사이에서 발생된다고 가정하자. 장애물(2406)은 엔클로져 접속점(2402 및 2404) 사이의 직선 경로의 배선을 방지한다. 배선 경로(2408)는 엔클로져 접속점(2402)에서 시작하여 현재 이탈 한계에 의해 정의된 경계(2410)에 정지되는데, 그 이탈 한계는 0일 수 있다. 의도한 배선 경로는 라인(2412)에 의해 표시된다. 본 발명의 실시예에 따라, 이탈 한계는 배선 경로(2408)가 장애물(2406)을 돌아서 확장될 수 있도록 하고 엔클로져 접속점(2404)에 연결될 수 있도록 하는 더 큰 배선 영역(2414)을 제공하도록 증가된다.
포괄 배선 또한 배선 경로에 대한 바이어스 방향을 변경시켜 배선되거나, 파기되고 재배선될 때, 가능한 한 많은, 다른 배선 경로에 의해 사용되도록 의도된 영역을 피하게 된다. 이것은 힌트 다각형을 삽입하는 것보다 간단하다. 예를 들어, 나중에 삽입될 접점 접속점에 공간을 제공하기 위해, 가운데보다는 개방 영역의 좌측을 향하는 경로를 배선하는 것이 바람직할 수 있다.
c. 하나 이상의 층 변경(layer change)을 삽입
포괄 배선은 장애물 위 또는 밑으로 배선 경로를 배선 하기 위한 하나 이상의 층 변경들을 삽입할 수 있다. 도 25A 및 25B는 본 발명의 실시예에 따라 장애물 위 또는 밑으로 배선 경로를 배선하기 위한 하나 이상의 층 변경들을 삽입하므로써 장애물을 피하기 위한 방법을 설명한다. 도 25A에서, 배선 경로는 접점 엔클로져 접속점들(2500 및 2502) 사이에서 배선 된다. 배선 경로(2504 및 2506)가 접점 엔클로져 접속점(2500 및 2502)에서 확장될 수는 있지만, 장애물(2508)은 상기 배선이 완료되지 못하도록 한다.
도 25B에서, 접점 엔클로져 접속점(2510 및 2512)이, 층 변경을 장애물(2508)이 있는 층과는 다른 층에 제공하기 위해 배선 경로(2504 및 2506)에 각각 추가 및 연결된다. 그리하여, 배선 스트레치(2514)가 접점 엔클로져 접속점(2510 및 2512)를 연결하기 위해 추가된다. 예를 들어, 접점 엔클로져 접속점들(2500 및 2502) 및 장애물(2508)이 제1 금속층에 배치된 경우, 접점 엔클로져 접속점들(2510 및 2512)은 제2 금속층으로의 연결을 제공할 수 있으며, 이것은 장애물(2508)을 넘어가기 위한 배선 스트레치(2514)를 포함한다. 상기 방법은 장애물 밑의 배선 스트레치를 배선하기 위한 층 변경에도 적용가능하다.
d. 세부 라우터가 굽힘을 백업하고 삽입하도록 지시
포괄 배선은 또한 세부 배선이 장애물을 돌아서 배선하도록 위해 굽힘을 백업하고 삽입하도록 하므로써 장애물 충돌문제를 해결할 수 있다. 도 26은 장애물을 피하기 위한 이 방법의 사용을 설명하는 블록도(2600)이다. 배선 경로(2602)는 끝 접속점(2604)으로 확장되고 있으며, 이 예에서의 끝 접속점은 접점 엔클로져 접속점이다. 장애물(2606)은 배선 경로(2602)가 끝 접속점(2604)에 닿는 것을 방지한다. 본 발명의 실시예에 따르면, 포괄 배선은 세부 배선이 특정 위치로 거슬러 올라가서, 참조번호(2608)로 표시된 다른 경로를 따라 배선 경로를 재배선하도록 한다.
e. 하나 이상의 와이어를 파기하고 재배선하기
포괄 배선은 장애물 충돌문제를 해결하기 위해 하나 이상의 배선 경로들을 파기하고 재배선할 수 있다. 포괄 배선이 전략적인 이유로 배선 경로를 파기하는 경우에, 변경들은 변경 리스트로부터 하나씩 제거되고, 각 변경의 영향은 가능하면 원상복구 된다. 예를 들어, 접점 엔클로져 코너가 클리핑된 경우에, 코너가 새 설계 규칙 체크 위반을 일으키지 않는 경우에 상기 코너는 복구된다(이후의 배선은 클리핑된 코너를 이용할 수도 있었을 것이다). 와이어가 부분적으로만 파기 된다면, 제거된 와이어 섹션에 요구되는 변경들만 원상복구된다.
앞서 설명한 바와 같이, 접점 엔클로져의 코너 클리핑은 회로 생산량을 약간 감소시킬 수 있으므로(부분적으로 벗겨진 접점은 적절히 동작하지 않을 수도 있으며, 클리핑 코너는 이것이 발생할 가능성을 증가시킨다), 코너 클리핑은 배선 농도를 증가시킬 필요가 있을때 및 혼잡한 영역에서만 수행된다. 유사한 논리가 트랜지스터 아일랜드 코너를 클리핑하기 및 소스/드레인 접점들을 조절하는데 적용된다;트랜지스터 소스/드레인 저항은 증가하고 회로의 속도를 약간 낮춘다. 그리하여 배선 경로가 다른 와이어를 위한 공간을 만들기 위해 파기되는 경우에, 그 배선 경우에 대한 모든 접속점 및 트랜지스터 아일랜드 변경들은 가능하면 원상 복구된다. 나중에 추가된 배선은 변경을 이용할 수도 있으며, 설계 규칙 체크는 구조를 저장할 때 실행되어야 한다. 에러가 발견되는 경우에, 변경은 뒤로 미뤄진다. 후에 파기는 교대로 더 새로운 배선을 제거할 수 있으며, 모든 배선이 완료되면 트랜지스터 아일랜드 및 접속점 코너는 어느 코너 클리핑이 저장될 수 있는지를 살펴보기 위해 다시 조사된다.
f. 목적지 연결점으로부터 와이어를 배선하기
전체 라우터는 다른 쪽으로부터 배선 경로를 끌어오는 시도를 할 수도 있다; 배선할 수 없는 섹션의 길이는 적용할 전략을 결정하는 것을 돕는데 사용될 수 있다. 예를 들어, 길이가 매우 짧은 경우, 예컨대 단일 와이어의 너비 보다 그리 넓지 않은 경우에는, 간섭하는 하나 이상의 와이어들을 파기하고 그 와이어들을 새 와이어로 넘기는 것이 유리할 수 있다. 와이어 길이가 긴 경우, 예컨대 가능한 최소 배선 경로 길이의 상당한 부분 정도의 길이인 경우에는, 배선은 아마도 서로 다른 층을 사용할 필요가 있을 것이다. 이것은 현재층의 모든 간섭 구조를 제거하는 비용이 높아질 것이기 때문이다.
7.구현 메카니즘.
여기에 설명된 집적회로를 배선하기 위한 방법은 임의의 타입의 집적회로 설계 시스템에도 적용가능하고 특정 시스템에 의해 채용된 특정 설계 규칙에 영향을 받지 않는다. 또한, 상기 방법은 집적회로 설계 시스템의 부분 또는 집적회로 설계 시스템과 상호 작용하는 독립형(stand-alone) 배선 메카니즘으로 구현될 수 있다. 여기 설명된 배선 방법은 하드웨어 회로, 컴퓨터 소프트웨어 또는 하드웨어 회로 및 컴퓨터 소프트웨어를 조합한 것에서 구현될 수 있다.
도 27은 본 발명의 구현이 구현된 컴퓨터 시스템(2700)을 설명하는 블록도이다. 컴퓨터 시스템(2700)은 버스(2702) 또는 정보를 교환하기 위한 다른 통신 메카니즘 및 정보를 프로세싱하기 위하여 버스(2702)와 연결된 프로세서(2704)를 포함한다. 컴퓨터 시스템(2700)은 프로세서(2704)에 의해 수행될 정보 및 명령어들을 저장하기 위하여 버스(2702)에 연결된 RAM 또는 다른 동적 저장 소자같은 주메모리(2706)를 포함한다. 주메모리(2706)는 프로세서(2704)에 의해 수행될 명령어들을 수행하는 동안 임시 변수 또는 다른 중간 정보를 저장하기 위해 사용된다. 컴퓨터 시스템(2700)은 프로세서(2704)를 위한 정적 정보 및 명령어들을 저장하기 위한 버스(2702)에 연결된 ROM(2708) 또는 다른 정적 저장 소자를 더 포함한다. 자기 디스크 또는 광학 디스크 같은 저장 소자(2710)가 정보 및 명령어를 저장하기 위해 버스(2702)에 제공 및 연결된다.
컴퓨터 시스템(2700)은 컴퓨터 사용자에게 정보를 디스플레이하기 위해 버스(2702)를 통해, 음극선관(CRT)과 같은 디스플레이(2712)에 연결될 수 있다. 문자숫자식(alphanumeric) 및 다른 키들을 포함하는 입력 소자(2714)는 정보 및 명령어 선택을 프로세서(2704)로 통신하기 위한 버스(2702)에 연결된다. 다른 타입의 사용자 입력 소자는 방향 정보 및 명령어 선택을 프로세서(2704)에 전달하고 디스플레이(2712) 상의 커서 이동을 콘트롤하기 위한 마우스, 트랙볼 또는 커서 방향키 같은 커서 제어기(2716)이다. 이 입력 소자는 통상적으로 2개 축으로 2개의 자유도를 갖는다. 제1축(예컨대 x축) 및 제2축(예컨대 y축)은 상기 소자가 평면 상의 위치를 특정하도록 한다.
본 발명은 집적회로를 배선하기 위한 컴퓨터 시스템(2700)의 사용에 관련된 것이다. 본 발명의 실시예에 따라, 집적회로의 배선은 주메모리(2706)에 저장된 하나 이상의 명령어 시퀀스를 수행하는 프로세서(2704)에 응답하여 컴퓨터 시스템(2700)에 의해 제공된다. 그러한 명령어들은 저장 소자(2710) 같은 다른 컴퓨터-판독가능 매체로부터 주메모리(2706)로 읽혀질 수 있다. 주메모리(2706)에 저장된 명령어 시퀀스의 수행은 프로세서(2704)가 여기 설명된 프로세스 스텝을 수행하도록 한다. 멀티 프로세싱 정렬된 하나 이상의 프로세서 또한 주메모리(2706)에 저장된 명령어 시퀀스를 수행하도록 채용된다. 대체적인 실시예에서, 하드웨어 회로는 본 발명을 구현하기 위해 소프트웨어 명령어를 대신하여 소프트웨어 명령어와 함께 사용될 수 있다. 그리하여, 본 발명의 실시예는 하드웨어 회로 및 소프트웨어의 어느 특정 조합에 제한되지 않는다.
여기에 사용된 "컴퓨터-판독가능 매체"라는 용어는 수행될 명령어들을 프로세서(2704)에 공급하는 모든 매체를 가리킨다. 그러한 매체는 비휘발성 매체, 휘발성 매체 및 전송 매체와 같은 많은 형태를 가지며, 이외에 다른 형태들도 가능하다. 비휘발성 매체는 예를 들어 저장 소자(2710) 같은 광학 또는 자기 디스크를 포함한다. 휘발성 매체는 주메모리(2706) 같은 동적 메모리를 포함한다. 전송 매체는 동축 케이블, 구리 와이어 및 광섬유를 포함하며, 버스(2702)를 포함하는 와이어 들을 포함한다. 전송 매체는 무선파 및 적외선 데이터 통신 동안 발생된 것 같은 음파 또는 광파의 형태를 가질 수도 있다.
컴퓨터-판독가능 매체의 공통적인 형태는, 예컨대 플로피 디스크, 플렉서블 디스크, 하드 디스크. 자기 테이프 또는 이외의 자기 매체, CD-ROM, 다른 광 매체, 펀치 카드, 종이 테이프, 구멍의 형태를 갖는 이외의 물리적 매체, RAM, PROM 및 EPROM, FLASH-EPROM, 이외의 칩 또는 카트리지, 이하에서 설명될 반송파 또는 컴퓨터가 읽을 수 있는 모든 형태의 매체들을 포함한다.
다양한 형태의 컴퓨터 판독 가능 매체는 수행할 하나 이상의 명령어 시퀀스를 프로세서(2704)에 전달하는 것에 관련된다. 예를 들어, 명령어들은 처음에는 원거리 컴퓨터의 자기 디스크 상에서 수행된다. 상기 원거리 컴퓨터는 명령어들을 그 동적 메모리에 로드하고 그 명령어들을 모뎀을 사용하여 전화선을 통해 전송할 수 있다. 컴퓨터 시스템(2700)에 국부적인 모뎀은 전화선 상에서 데이터를 수신하고 적외선 전송기를 사용하여 데이터를 적외선 신호로 변환시킬 수 있다. 버스(2702)에 연결된 적외선 검출기는 적외선 신호로 전송되는 데이터를 수신하고 상기 데이터를 버스(2702)상에 배치시킬 수 있다. 버스(2702)는 데이터를 주메모리(2706)로 전송하고, 프로세서(2704)는 주메모리에서 명령어를 검색 및 수행한다. 주메모리(2706)에 의해 수신된 명령어들은 프로세서(2704)에 의한 수행전 또는 수행 후에 선택적으로 저장 소자(2710)에 저장될 수 있다.
컴퓨터 시스템(2700)은 버스(2702)에 연결된 통신 인터페이스(2718)를 포함한다. 통신 인터페이스(2718)는 지역 네트워크(2722)에 연결된 네트워크 링크에 2-방향 데이터 통신 연결을 제공한다. 예를 들어, 통신 인터페이스(2718)는 전화선에 대응하는 타입에 데이터 통신 연결을 제공하기 위한 종합 정보 통신망(ISDN) 카드 또는 모뎀일 수 있다. 다른 예로서, 통신 인터페이스(2718)는 호환 가능한 LAN에 데이터 통신 연결을 제공하기 위한 LAN 카드일 수 있다. 무선 링크 또한 구현될 수 있다. 그러한 구현에서, 통신 인터페이스(2718)는 다양한 타입의 정보를 나타내는 디지털 데이터 스트림을 운반하는 전기, 전자기 또는 광학 신호를 송신 및 수신한다.
네트워크 링크(2720)는 통상적으로 하나 이상의 네트워크를 통해 다른 데이터 소자로의 데이터 통신을 제공한다. 예를 들어, 네트워크 링크(2720)는 지역 네트워크(2722)를 통해 호스트 컴퓨터(2724) 또는 인터넷 서비스 공급자(ISP)에 의해 작동되는 데이터 장비로의 연결을 제공한다. ISP(2726)는 교대로 "인터넷"(2728)으로 불리는 전세계적 패킷 데이터 통신 네트워크를 통해 데이터 통신 서비스를 제공한다. 지역 네트워크(2722) 및 인터넷(2728)은 모두 디지털 데이터 스트림을 운반하는 전기, 전자기 또는 광학 신호를 사용한다. 디지털 데이터를 컴퓨터 시스템(2700)으로 및 컴퓨터 시스템(2700)으로부터 전송하는 다양한 네트워크를 통한 신호 및 네트워크 링크 및 통신 인터페이스(2718)를 통한 신호들은 정보를 전송하는 반송파의 예시적 형태이다.
컴퓨터 시스템(2700)은 네트워크, 네트워크 링크(2720) 및 통신 인터페이스(2718)를 통해 메시지를 전송하고, 동시에 프로그램 코드를 포함하는 데이터를 수신할 수 있다. 인터넷의 예에서, 서버(2730)는 애플리케이션 프로그램에 대해 요구된 코드를 인터넷(2728), ISP(2726), 지역 네트워크(2722) 및 통신 인터페이스(2718)를 통해 전송할 수 있다. 본 발명에 따라, 다운로드된 애플리케이션 같은 것이 본 명세서에 설명된 집적회로의 배선을 위해 제공된다.
수신된 코드는 수신되고 및/또는 저장 소자(2710) 또는 나중에 수행하기 위해 다른 비휘발성 저장소자에 저장된 뒤에, 프로세서(2704)에 의해 수행될 수 있다. 이런 방식으로, 컴퓨터 시스템(2700)은 반송파 형태의 애플리케이션 코드를 얻을 수 있다.
여기에 설명된 집적회로를 배선하기 위한 신규한 방법은 이전의 배선 방법에 대해 몇가지 장점을 갖는다. 첫번째 장점은 설계 규칙 체크가 객체-특정(object-specific)을 기초로 수행된다는 것이다. 이것은 집적회로 설계를 검증하는 동안 증가된 유연성을 제공한다. 이 증가된 유연성의 한가지 이점은 예컨대, 라인 너비를 감소시키기 위한 위상-이동 마스킹 애플리케이션에서 객체-특정 설계 규칙이 채용되도록 한다는 것이다. 증가된 유연성의 또다른 장점은 어느 특정한 객체에 대한 설계 규칙도 레이아웃의 다른 객체에 적용된 설계 규칙에 관계없이 시간에 따라 변경한다는 것이다. 이것은 특히 "착륙지점(landing zone)" 규칙을 지원하는데 있어서 중요하다.
종래 기술의 라우터들은 셀들을 분리하는것, 즉 한줄의 셀 또는 트랜지스터 아일랜드(셀내 라우터에서)에 피드스루(feedthrough) 이외에는 새 와이어들을 위한 공간을 만들수 없다. 와이어를 접근하도록 하기에만 충분하도록 장애물을 이동시키거나 변형시키므로써, 더 많은 공간이 다른 쪽의 와이어를 추가하는데 남겨진다. 그리하여 본 발명에 따라 발생된 집적회로에 대한 배선은 조잡한-그리드 또는 직교 라우터로 가능한 것보다 더 조밀하게 만들어질 수 있다.
장애물-이동 세부 라우터 및 장애물-피하기 전체 라우터의 조합은 알고리즘적 간단성, 수행 속도 및 라우터 능력을 향상시킨다. 전체 라우터는 장애물이 발견될 때가지 개개의 배선 경로에 대한 전략을 설정할 필요가 없는데 이것은 와이어의 많은 부분이 방해 없이 배선될 수 있다는 것을 의미한다. 일단 장애물이 발견되면, 전체 라우터는 주된 장애물, 예컨대 트랜지스터 아일랜드에 대한 그 하이-레벨 지식을 사용하여 기피 전략을 정의할 수 있다. 힌트 다각형 및 이탈 한계의 사용은 통상적인 배선 방법에 사용되는 바와 같이 이러한 타입의 방법에 공통되는 하부 최적화 배선에 대한 걱정없이 효율적이고, 목적-지향적("깊이 우선(depth first)")인 검색 메카니즘을 가능케한다. 세부 라우터의 알고리즘은 층 변경을 고려하거나 장애물 주위를 돌아다니는 노력을 허비할 필요가 없기 때문에 또한 더 간단하다. 주된 변경은 전체 라우터에 의해 만들어지고; 작은 변경은 세부 라우터에 의해 만들어진다. 또한 중요한 성능의 장점은 접속점 및 배선 작업 사이에서, 예컨대 설계 규칙 체크 같은 작업들을 분리할 수 있다는 것이다. 또다른 장점은 본 명세서에 설명된 바와 같은, 조밀한 배선 상황을 조절하기 위한 조밀한 배선 메카니즘에 의해 제공된다.
앞선 명세서에서, 본 발명은 특정 실시예를 참조하여 설명되었다. 그러나 본 발명의 범위를 벗어나지 않고 다양한 변형 및 변경이 가능하다. 따라서, 명세서 및 도면들은 한정의 의미가 아닌 예시적인 것으로 해석되어야 할 것이다.

Claims (33)

  1. 집적회로를 자동으로 배선(routing)하기 위한 방법으로서, 상기 방법은 컴퓨터로 실행되는 단계들을 포함하며, 상기 단계들은,
    상기 집적회로에 포함될 2개 이상의 집적회로 디바이스들의 세트를 정의하는 집적회로 레이아웃 데이터를 수신하는 단계;
    상기 집적회로 디바이스들 사이에 형성될 하나 이상의 전기적 연결을 특정하는 집적회로 연결 데이터를 수신하는 단계;
    상기 집적회로 레이아웃 데이터 및 상기 집적회로 연결 데이터를 기초로, 상기 2개 이상의 집적회로 디바이스의 세트로부터, 제1 집적회로 디바이스와 제2 집적회로 디바이스 사이의 배선 경로에 대한 하나 이상의 바람직한 중간 배선 위치의 세트를 표시하는 하나 이상의 배선 표시자의 세트를 결정하는 단계;
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터 및 상기 하나 이상의 배선 표시자의 세트를 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계 -상기 배선 경로는 특정 설계 기준을 만족시킴-; 및
    상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 반영하는 업데이트된 집적회로 레이아웃 데이터를 생성하도록 집적회로 레이아웃을 업데이트하는 단계를 포함하는,
    집적회로 자동 배선 방법.
  2. 제1항에 있어서, 상기 배선 경로를 결정하는 단계는,
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 바이어스 방향 기준 및 이탈 한계 기준을 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계를 포함하며, 상기 바이어스 방향 기준은 상기 2개 이상의 집적회로 디바이스의 세트로부터의 제1 집적회로 디바이스와 제2 집적회로 디바이스 사이의 배선 경로에 대한 바람직한 배선 방향을 특정하고, 상기 이탈 한계 기준은 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로가 배치될 수 있는 배선 영역을 정의하는 것을 특징으로 하는 집적회로 자동 배선 방법.
  3. 제1항에 있어서, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계는,
    상기 배선 경로를 가로막는 하나 이상의 장애물을 확인하는 단계;
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터 및 상기 하나 이상의 장애물을 기초로, 하나 이상의 추가의 배선 표시자를 결정하는 단계; 및
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 상기 하나 이상의 배선 표시자의 세트 및 상기 하나 이상의 추가의 배선 표시자를 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계를 포함하는 것을 특징으로 하는 집적회로 자동 배선 방법.
  4. 제1항에 있어서, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계는,
    상기 배선 경로를 가로막는 하나 이상의 장애물을 확인하는 단계;
    상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로가 변형된 배선 영역을 정의하는 변경된 특정 이탈 한계를 발생하도록 배치될 수 있는 배선 영역을 정의하는 특정 이탈 한계 기준을 변경시키는 단계; 및
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 상기 하나 이상의 배선 표시자의 세트 및 상기 변경된 특정 이탈 한계 기준을 기초로, 제1 집적회로 디바이스와 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계를 포함하는 것을 특징으로 하는 집적회로 자동 배선 방법.
  5. 제1항에 있어서, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계는,
    상기 배선 경로를 가로막는 하나 이상의 장애물을 확인하는 단계;
    상기 배선 경로가 상기 하나 이상의 장애물을 피하도록 하기 위해 하나 이상의 층 변경의 세트를 결정하는 단계; 및
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 상기 하나 이상의 배선 표시자의 세트 및 상기 하나 이상의 층 변경을 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계를 포함하는 것을 특징으로 하는 집적회로 자동 배선 방법.
  6. 제1항에 있어서, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계는,
    상기 배선 경로를 가로막는 하나 이상의 장애물을 확인하는 단계;
    상기 하나 이상의 장애물을 피하기 위해, 상기 배선 경로에 포함될 하나 이상의 굽힘의 세트를 결정하는 단계; 및
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 상기 하나 이상의 배선 표시자의 세트 및 상기 하나 이상의 굽힘의 세트를 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계를 포함하는 것을 특징으로 하는 집적회로 자동 배선 방법.
  7. 제1항에 있어서, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계는,
    상기 배선 경로를 가로막는 하나 이상의 장애물을 확인하는 단계;
    파기되고(ripped up) 재배선될(rerouted) 하나 이상의 배선 경로 부분을 결정하는 단계; 및
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 상기 하나 이상의 배선 표시자의 세트 및 상기 파기되고 재배선될 하나 이상의 배선 경로 부분을 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계를 포함하는 것을 특징으로 하는 집적회로 자동 배선 방법.
  8. 제7항에 있어서, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계는,
    파기되고 재배선될 하나 이상의 다른 배선 경로 중 하나 이상의 부분을 결정하는 단계; 및
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 상기 하나 이상의 배선 표시자, 상기 파기되고 재배선될 하나 이상의 배선 경로 부분 및 상기 파기되고 재배선될 하나 이상의 다른 배선 경로 중 하나 이상의 부분을 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계를 더 포함하는 것을 특징으로 하는 집적회로 자동 배선 방법.
  9. 제1항에 있어서, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계는,
    상기 배선 경로를 가로막는 하나 이상의 장애물을 확인하는 단계;
    상기 파기되고 재배선될 하나 이상의 배선 경로 중 하나 이상의 부분을 결정하는 단계; 및
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 상기 하나 이상의 배선 표시자의 세트 및 파기되고 재배선될 하나 이상의 배선 경로 중 하나 이상의 부분을 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계를 더 포함하는 것을 특징으로 하는 집적회로 자동 배선 방법.
  10. 제1항에 있어서, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계는,
    상기 배선 경로를 가로막는 하나 이상의 장애물을 확인하는 단계; 및
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터 및 상기 하나 이상의 배선 표시자의 세트를 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계를 포함하며, 상기 배선 경로는 상기 제2 집적회로 디바이스로부터 상기 제1 집적회로 디바이스로 배선되는 것을 특징으로 하는 집적회로 자동 배선 방법.
  11. 제1항에 있어서, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계는,
    상기 배선 경로를 가로막는 하나 이상의 장애물을 확인하는 단계;
    상기 배선 경로를 배선할 추가의 공간을 제공하기 위해 코너 클리핑을 채용할 하나 이상의 위치를 결정하는 단계; 및
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 상기 하나 이상의 표시자의 세트 및 상기 코너 클리핑을 채용할 하나 이상의 위치를 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계를 포함하는 것을 특징으로 하는 집적회로 자동 배선 방법.
  12. 제1항에 있어서, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계는,
    상기 배선 경로를 가로막는 하나 이상의 장애물을 확인하는 단계;
    상기 배선 경로를 배선하기 위한 추가의 공간을 제공하기 위해 이동될 하나 이상의 집적회로 레이아웃 객체(object)를 결정하는 단계; 및
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 상기 하나 이상의 배선 표시자의 세트 및 상기 하나 이상의 집적회로 레이아웃 객체의 이동을 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계를 포함하는 것을 특징으로 하는 집적회로 자동 배선 방법.
  13. 제1항에 있어서, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계는,
    상기 배선 경로의 배선을 수용하기 위해 상기 집적회로 레이아웃 데이터에 의해 정의된 상기 하나 이상의 레이아웃 객체에 변경이 수행될 수 있는지를 표시하는 데이터를 검토하는 단계; 및
    상기 데이터가 상기 배선 경로의 배선을 수용하기 위해 상기 집적회로 회로 레이아웃 데이터에 의해 정의된 상기 하나 이상의 레이아웃 객체에 변경이 수행될 수 있다고 표시하는 경우에,
    상기 집적회로 레이아웃 데이터에 의해 정의된 하나 이상의 레이아웃 객체에 하나 이상의 변경을 수행하는 단계; 및
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 상기 하나 이상의 배선 표시자의 세트 및 상기 레이아웃 객체에 수행된 하나 이상의 변경을 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계를 포함하는 것을 특징으로 하는 집적회로 자동 배선 방법.
  14. 제13항에 있어서, 상기 하나 이상의 레이아웃 객체에 수행된 하나 이상의 변경을 특정하는 데이터를 발생하는 단계를 더 포함하는 것을 특징으로 하는 집적회로 자동 배선 방법.
  15. 제1항에 있어서, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계는,
    상기 배선 경로가 배선될 하나 이상의 배선 타겟의 세트를 결정하는 단계; 및
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 상기 하나 이상의 배선 표시자의 세트 및 상기 하나 이상의 배선 타겟의 세트를 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계를 포함하는 것을 특징으로 하는 집적회로 자동 배선 방법.
  16. 제1항에 있어서, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계는 상기 배선 경로가 결정될 때, 하나 이상의 배선 경로 부분 상에서 하나 이상의 설계 규칙 체크를 수행하는 단계를 포함하는 것을 특징으로 하는 집적회로 자동 배선 방법.
  17. 제16항에 있어서, 상기 업데이트된 회로 레이아웃 데이터 상에서 설계 규칙 체크를 수행하는 단계를 더 포함하며, 상기 설계 규칙 체크는 상기 배선 경로를 결정하는 동안 이전에 체크된 하나 이상의 레이아웃 객체를 체크하지 않는 것을 특징으로 하는 집적회로 자동 배선 방법.
  18. 제1항에 있어서, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계는,
    상기 배선 경로를 특정한 양만큼 확장시켜 상기 배선 경로의 확장된 부분을 생성하는 단계; 및
    상기 배선 경로의 확장부분 상에서만 설계 규칙 체크를 수행하는 단계를 포함하는 것을 특징으로 하는 집적회로 자동 배선 방법.
  19. 제1항에 있어서, 상기 업데이트된 집적회로 레이아웃 데이터에 의해 정의된 모든 연결 및 굽힘 각도는 90도의 배수인 것을 특징으로 하는 집적회로 자동 배선 방법.
  20. 제1항에 있어서, 상기 업데이트된 집적회로 레이아웃 데이터에 의해 정의된 하나 이상의 연결 또는 굽힘 각도는 90도 이외의 배수인 것을 특징으로 하는 집적회로 자동 배선 방법.
  21. 집적회로 레이아웃을 자동으로 검증하기 위한 방법으로서, 상기 방법은 컴퓨터로 실행되는 단계들을 포함하며, 상기 단계들은,
    상기 집적회로 레이아웃에 포함된 2개 이상의 레이아웃 객체의 세트를 정의하는 집적회로 레이아웃 데이터를 수신하는 단계;
    특정 설계 기준에 따라 상기 레이아웃 객체를 평가함으로써, 상기 2개 이상의 레이아웃 객체의 세트로부터의 레이아웃 객체 상에서 제1 설계 규칙 체크를 수행하는 단계;
    업데이트된 특정 설계 기준을 생성하기 위해 상기 특정 설계 기준에 의해 정의된 하나 이상의 값을 변경시키는 단계 -여기서, 상기 하나 이상의 값의 변경은 특정된 시간이 경과한 후에 수행되고 상기 레이아웃 객체 또는 상기 2개 이상의 레이아웃 객체의 세트로부터의 하나 이상의 다른 레이아웃 객체에 대해 이루어짐- ; 및
    상기 업데이트된 특정 설계 기준에 따라 상기 레이아웃 객체를 평가함으로써 상기 레이아웃 객체 상에서 제2 설계 규칙 체크를 수행하는 단계를 포함하는 집적회로 레이아웃 자동 검증 방법.
  22. 집적회로를 자동으로 배선하기 위한 방법으로서, 상기 방법은 컴퓨터로 실행되는 단계들을 포함하며, 상기 단계들은,
    상기 집적회로에 포함될 2개 이상의 집적회로 디바이스의 세트를 정의하는 집적회로 레이아웃 데이터를 수신하는 단계;
    상기 집적회로 디바이스들 사이에 형성될 하나 이상의 전기적 연결을 특정하는 집적회로 연결 데이터를 수신하는 단계;
    상기 집적회로 레이아웃 데이터 및 상기 집적회로 연결 데이터를 기초로, 전기적으로 연결될 2개 이상의 접속점(joint point)의 세트를 결정하는 단계;
    상기 집적회로 레이아웃 데이터 및 상기 2개 이상의 접속점의 세트를 기초로, 상기 2개 이상의 접속점의 세트를 연결하기 위해 하나 이상의 배선 경로를 결정하는 단계 - 여기서, 상기 하나 이상의 배선 경로는 특정 설계 기준을 만족시킴-; 및
    상기 하나 이상의 배선 경로를 반영하는 업데이트된 집적회로 레이아웃 데이터를 생성하기 위하여 상기 집적회로 레이아웃 데이터를 업데이트하는 단계를 포함하는,
    집적회로 자동 배선 방법.
  23. 집적회로를 자동으로 배선하기 위한 방법으로서, 상기 방법은 컴퓨터로 실행되는 단계들을 포함하며, 상기 단계들은,
    상기 집적회로에 포함될 2개 이상의 집적회로 디바이스의 세트를 정의하는 집적회로 레이아웃 데이터를 수신하는 단계;
    상기 집적회로 디바이스들 사이에 형성될 하나 이상의 전기적 연결을 특정하는 집적회로 연결 데이터를 수신하는 단계;
    상기 집적회로 레이아웃 데이터 및 상기 집적회로 연결 데이터를 기초로, 특정 설계 기준을 만족시키는 제1 집적회로 디바이스와 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계 -여기서, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계는,
    상기 배선 경로의 일부에 대해 배선될 거리가 특정 거리를 초과하는지를 결정하는 단계, 및
    상기 배선 경로의 일부에 대해 배선될 거리가 특정 거리를 초과하지 않는 경우에는, 단일 스텝으로 상기 배선 경로의 일부를 배선하는 단계를 포함함-; 및
    상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 반영하는 업데이트된 집적회로 레이아웃 데이터를 생성하기 위해 상기 집적회로 레이아웃 데이터를 업데이트하는 단계를 포함하는,
    집적회로 자동 배선 방법.
  24. 집적회로를 자동으로 배선하기 위하여, 하나 이상의 명령어의 하나 이상의 시퀀스를 갖는 컴퓨터로 읽을 수 있는 기록매체로서,
    상기 하나 이상의 명령어의 하나 이상의 시퀀스는 하나 이상의 프로세서에 의해 수행될 때, 상기 하나 이상의 프로세서로 하여금,
    상기 집적회로에 포함될 2개 이상의 집적회로 디바이스의 세트를 정의하는 집적회로 레이아웃 데이터를 수신하는 단계;
    상기 집적회로 디바이스들 사이에 형성될 하나 이상의 전기적 연결을 특정하는 집적회로 연결 데이터를 수신하는 단계;
    상기 집적회로 레이아웃 데이터 및 상기 집적회로 연결 데이터를 기초로, 2개 이상의 집적회로 디바이스의 세트로부터의, 제1 집적회로 디바이스와 제2 집적회로 디바이스 사이의 배선 경로를 위한 하나 이상의 바람직한 중간 배선 위치의 세트를 표시하는 하나 이상의 배선 표시자의 세트를 결정하는 단계;
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터 및 상기 하나 이상의 배선 표시자의 세트를 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계 -여기서, 상기 배선 경로는 특정 설계 기준을 만족시킴-; 및
    상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 반영하는 업데이트된 집적회로 레이아웃 데이터를 생성하기 위하여 상기 집적회로 레이아웃 데이터를 업데이트하는 단계를 수행하도록 하는 명령어들을 포함하는,
    컴퓨터로 읽을 수 있는 기록매체.
  25. 제24항에 있어서, 상기 배선 경로를 결정하는 단계는,
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 바이어스 방향 기준 및 이탈 한계 기준을 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계를 포함하고, 상기 바이어스 방향 기준은 상기 2개 이상의 집적회로 디바이스 중에서 제1 집적회로 디바이스와 제2 집적회로 디바이스 사이의 배선 경로에 대한 양호한 배선 방향을 특정하고, 상기 이탈 한계 기준은 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로가 배치될 배선 영역을 정의하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  26. 제24항에 있어서, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계는,
    상기 배선 경로를 가로막는 하나 이상의 장애물을 확인하는 단계;
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터 및 상기 하나 이상의 장애물을 기초로, 하나 이상의 추가의 배선 표시자를 결정하는 단계; 및
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 상기 하나 이상의 배선 표시자 및 상기 하나 이상의 추가의 배선 표시자를 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계를 포함하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  27. 제24항에 있어서, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계는,
    상기 배선 경로를 가로막는 하나 이상의 장애물을 확인하는 단계;
    수정된 배선 영역을 정의하는 변경된 특정 이탈 한계를 생성하기 위해, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로가 배치될 배선 영역을 정의하는 특정 이탈 한계 기준을 변경시키는 단계; 및
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 상기 하나 이상의 배선 표시자의 세트 및 상기 변경된 특정 이탈 한계 기준을 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계를 포함하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  28. 제24항에 있어서, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계는,
    상기 배선 경로를 가로막는 하나 이상의 장애물을 확인하는 단계;
    상기 배선 경로가 상기 하나 이상의 장애물을 피하도록 하기 위해, 하나 이상의 층 변경의 세트를 결정하는 단계; 및
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 상기 하나 이상의 배선 표시자의 세트 및 상기 하나 이상의 층 변경의 세트를 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하는 단계를 포함하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  29. 집적회로를 자동으로 배선하기 위한 시스템으로서,
    상기 집적회로에 포함될 2개 이상의 집적회로 디바이스의 세트를 정의하는 집적회로 레이아웃 데이터, 및 상기 집적회로 디바이스들 사이에 형성될 하나 이상의 전기적 연결을 특정하는 집적회로 연결 데이터가 저장된 데이터 저장 메카니즘; 및
    상기 데이터 저장 메카니즘에 통신 가능하게 연결된 배선 메카니즘을 포함하며, 상기 배선 메카니즘은,
    상기 집적회로 레이아웃 데이터 및 상기 집적회로 연결 데이터를 기초로, 상기 2개 이상의 집적회로 디바이스의 세트로부터의 제1 집적회로 디바이스와 제2 집적회로 디바이스 사이의 배선 경로에 대해 하나 이상의 바람직한 중간 배선 위치의 세트를 표시하는 하나 이상의 배선 표시자의 세트를 결정하고,
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터 및 상기 하나 이상의 배선 표시자의 세트를 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의, 특정 설계 규칙을 만족시키는 배선 경로를 결정하고, 그리고
    상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 반영하는 업데이트된 집적회로 레이아웃 데이터를 생성하기 위해 상기 집적회로 레이아웃 데이터를 업데이트하도록 구성된,
    집적회로 자동 배선 시스템.
  30. 제29항에 있어서, 상기 배선 메카니즘은 추가로 상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 바이어스 방향 기준 및 이탈 한계 기준을 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정함으로써 상기 배선 경로를 결정하도록 추가로 구성되며, 상기 바이어스 방향 기준은 상기 2개 이상의 집적회로 디바이스 중에서, 제1 집적회로 디바이스와 제2 집적회로 디바이스 사이의 배선 경로에 대한 양호한 배선 방향을 특정하고, 상기 이탈 한계 기준은 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로가 배치될 배선 영역을 정의하는 것을 특징으로 하는 집적회로 자동 배선 시스템.
  31. 제29항에 있어서, 상기 배선 메카니즘은,
    상기 배선 경로를 가로막는 하나 이상의 장애물을 확인하고,
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터 및 상기 하나 이상의 장애물을 기초로, 하나 이상의 추가의 배선 표시자를 결정하며,
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 상기 하나 이상의 배선 표시자의 세트 및 하나 이상의 추가의 배선 표시자를 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정함으로써 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하도록 추가로 구성된 것을 특징으로 하는 집적회로 자동 배선 시스템.
  32. 제29항에 있어서, 상기 배선 메카니즘은,
    상기 배선 경로를 가로막는 하나 이상의 장애물을 확인하고,
    변형된 배선 영역을 정의하는 변경된 특정 이탈 한계 기준을 생성하기 위해, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로가 배치될 배선 영역을 정의하는 특정 이탈 한계 기준을 변경시키며,
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 상기 하나 이상의 배선 표시자의 세트 및 변경된 특정 이탈 한계 기준을 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정함으로써 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하도록 추가로 구성된 것을 특징으로 하는 집적회로 자동 배선 시스템.
  33. 제29항에 있어서, 상기 배선 메카니즘은,
    상기 배선 경로를 가로막는 하나 이상의 장애물을 확인하고,
    상기 배선 경로가 상기 하나 이상의 장애물을 피할 수 있도록 하기 위해 하나 이상의 층 변경의 세트를 결정하며,
    상기 집적회로 레이아웃 데이터, 상기 집적회로 연결 데이터, 하나 이상의 배선 표시자의 세트 및 하나 이상의 층 변경의 세트를 기초로, 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정함으로써 상기 제1 집적회로 디바이스와 상기 제2 집적회로 디바이스 사이의 배선 경로를 결정하도록 추가로 구성된 것을 특징으로 하는 집적회로 자동 배선 시스템.
KR1020017004914A 1998-10-19 1999-10-19 집적회로를 자동으로 배선하는 방법 및 시스템, 집적회로를 자동으로 배선하기 위한 하나 이상의 명령어로 구성된 하나 이상의 시퀀스를 갖는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 및 집적회로 레이아웃을 자동으로 검증하는 방법 KR100910421B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10487298P 1998-10-19 1998-10-19
US60/104,872 1998-10-19
US13953299P 1999-06-16 1999-06-16
US60/139,532 1999-06-16

Publications (2)

Publication Number Publication Date
KR20010087374A KR20010087374A (ko) 2001-09-15
KR100910421B1 true KR100910421B1 (ko) 2009-08-04

Family

ID=26802032

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017004914A KR100910421B1 (ko) 1998-10-19 1999-10-19 집적회로를 자동으로 배선하는 방법 및 시스템, 집적회로를 자동으로 배선하기 위한 하나 이상의 명령어로 구성된 하나 이상의 시퀀스를 갖는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 및 집적회로 레이아웃을 자동으로 검증하는 방법

Country Status (8)

Country Link
EP (1) EP1131749A1 (ko)
JP (1) JP2002528795A (ko)
KR (1) KR100910421B1 (ko)
AU (1) AU1124500A (ko)
CA (1) CA2345443C (ko)
IL (1) IL142305A0 (ko)
TW (1) TW495686B (ko)
WO (1) WO2000023920A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266294B2 (en) 2003-08-13 2012-09-11 Microsoft Corporation Routing hints
US7882251B2 (en) 2003-08-13 2011-02-01 Microsoft Corporation Routing hints
JP2005115785A (ja) * 2003-10-09 2005-04-28 Nec Electronics Corp 半導体装置の配線方法、半導体装置の製造方法及び半導体装置
KR100674934B1 (ko) * 2005-01-06 2007-01-26 삼성전자주식회사 온 칩 버스(On Chip Bus)에서 최적화된타일-스위치(tile-switch)맵핑(mapping) 구조를 결정하는 방법 및 그 방법을기록한 컴퓨터로 읽을 수 있는 기록 매체
US7376927B2 (en) * 2005-06-13 2008-05-20 Advanced Micro Devices, Inc. Manhattan routing with minimized distance to destination points
EP1907957A4 (en) 2005-06-29 2013-03-20 Otrsotech Ltd Liability Company INVESTMENT METHODS AND SYSTEMS
US7752588B2 (en) 2005-06-29 2010-07-06 Subhasis Bose Timing driven force directed placement flow
US7681170B2 (en) * 2006-02-09 2010-03-16 Qualcomm Incorporated Method and apparatus for insertion of filling forms within a design layout
US8332793B2 (en) 2006-05-18 2012-12-11 Otrsotech, Llc Methods and systems for placement and routing
US7840927B1 (en) 2006-12-08 2010-11-23 Harold Wallace Dozier Mutable cells for use in integrated circuits
TWI403914B (zh) * 2010-03-08 2013-08-01 Mstar Semiconductor Inc 防止壅塞配置裝置及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5550748A (en) * 1994-03-22 1996-08-27 Cadence Design Systems, Inc. Region search for delay routing and signal net matching

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5258920A (en) * 1989-12-26 1993-11-02 General Electric Company Locally orientation specific routing system
US5450331A (en) * 1992-01-24 1995-09-12 Vlsi Technology, Inc. Method for verifying circuit layout design
JPH06196563A (ja) * 1992-09-29 1994-07-15 Internatl Business Mach Corp <Ibm> Vlsiの配線設計に対するコンピュータ実施可能な過密領域配線方法
JP3335250B2 (ja) * 1994-05-27 2002-10-15 株式会社東芝 半導体集積回路の配線方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5550748A (en) * 1994-03-22 1996-08-27 Cadence Design Systems, Inc. Region search for delay routing and signal net matching

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Goro Suzuki et al, "A practical online design rule checking system", proceedings of the ACM/IEEE design automation conference(DAC), US, New York, IEEE, vol. conf.27, 1990, pages 246-252 *
Goro Suzuki et al, "A practical online design rule checking system", proceedings of the ACM/IEEE design automation conference(DAC), US, New York, IEEE, vol. conf.27, 1990, pages 246-252*
Thorsten Adler et al, "An interactive router for analog IC design", proceedings design, automation and test in Europe, Paris, France, 23-26 Feb. 1998. pages 414-420 *
Thorsten Adler et al, "An interactive router for analog IC design", proceedings design, automation and test in Europe, Paris, France, 23-26 Feb. 1998. pages 414-420*
Thorsten Adler et al, "An interactive router for analog IC design", proceedings. design, automation and test in Europe(cat. no. 98ex123), proceedings design, automation and test in Europe, Paris, France, 23-26 Feb. 1998, pages 414-420 *

Also Published As

Publication number Publication date
TW495686B (en) 2002-07-21
WO2000023920A9 (en) 2000-09-14
AU1124500A (en) 2000-05-08
JP2002528795A (ja) 2002-09-03
IL142305A0 (en) 2002-03-10
KR20010087374A (ko) 2001-09-15
CA2345443C (en) 2009-09-15
EP1131749A1 (en) 2001-09-12
CA2345443A1 (en) 2000-04-27
WO2000023920A1 (en) 2000-04-27

Similar Documents

Publication Publication Date Title
US7065729B1 (en) Approach for routing an integrated circuit
US6378121B2 (en) Automatic global routing device for efficiently determining optimum wiring route on integrated circuit and global routing method therefor
US6598206B2 (en) Method and system of modifying integrated circuit power rails
US5491641A (en) Towards optical steiner tree routing in the presence of rectilinear obstacles
KR100399645B1 (ko) 집적 회로 레이아웃에서 다각형 표현 방법
US7721243B2 (en) Method and apparatus for routing
US8707239B2 (en) Integrated circuit routing with compaction
US5717600A (en) Method for designing an interconnection route in an LSI
US6446246B1 (en) Method and apparatus for detail routing using obstacle carving around terminals
US20150143309A1 (en) Computer implemented system and method for generating a layout of a cell defining a circuit component
US20090172628A1 (en) Method and System for Utilizing Hard and Preferred Rules for C-Routing of Electronic Designs
JPH077427B2 (ja) ノードの相互接続方法
US20090172622A1 (en) Automatic block composition tool for composing custom blocks having non-standard library cells in an integrated circuit design flow
KR100910421B1 (ko) 집적회로를 자동으로 배선하는 방법 및 시스템, 집적회로를 자동으로 배선하기 위한 하나 이상의 명령어로 구성된 하나 이상의 시퀀스를 갖는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 및 집적회로 레이아웃을 자동으로 검증하는 방법
JP2006323643A (ja) 半導体集積回路のフロアプラン設計プログラム、フロアプラン設計装置、および設計方法
US6480996B1 (en) System and method for transposing wires in a circuit design
CN116029254B (zh) 一种基于路径优化的集成电路版图自动布线方法及系统
US20140325467A1 (en) Multiple-instantiated-module (mim) aware pin assignment
CN111553125A (zh) 一种考虑先进技术的超大规模集成电路详细布线方法
US9817936B2 (en) Methods for minimizing layout area of IC
US7487488B1 (en) Predictable repeater routing in an integrated circuit design
US6615401B1 (en) Blocked net buffer insertion
Wu et al. Antenna avoidance in layer assignment
US7617465B1 (en) Method and mechanism for performing latch-up check on an IC design
US6845346B1 (en) Iterative method of parasitics estimation for integrated circuit designs

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee