KR19990023204A - 다수의 집적 회로의 배선 방법 및 시스템 - Google Patents

다수의 집적 회로의 배선 방법 및 시스템 Download PDF

Info

Publication number
KR19990023204A
KR19990023204A KR1019980028675A KR19980028675A KR19990023204A KR 19990023204 A KR19990023204 A KR 19990023204A KR 1019980028675 A KR1019980028675 A KR 1019980028675A KR 19980028675 A KR19980028675 A KR 19980028675A KR 19990023204 A KR19990023204 A KR 19990023204A
Authority
KR
South Korea
Prior art keywords
rule
net
node
nodes
wiring
Prior art date
Application number
KR1019980028675A
Other languages
English (en)
Other versions
KR100276848B1 (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 KR19990023204A publication Critical patent/KR19990023204A/ko
Application granted granted Critical
Publication of KR100276848B1 publication Critical patent/KR100276848B1/ko

Links

Classifications

    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/70Manufacture or treatment of devices consisting of a plurality of solid state components formed in or on a common substrate or of parts thereof; Manufacture of integrated circuit devices or of parts thereof
    • H01L21/71Manufacture of specific parts of devices defined in group H01L21/70
    • H01L21/768Applying interconnections to be used for carrying current between separate components within a device comprising conductors and dielectrics
    • 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

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

상호 접속될 다수의 노드를 포함하는 네트에 클러스터 포인트를 부가시킴으로써, 하나 이상의 패키지내의 칩 내부 또는 칩간의 다수의 집적 회로를 배선을 행하는 방법을 제공한다. 이 상호 접속된 노드는 물리적 제약 조건, 전기적 제약 조건, 및 잡음 제약 조건을 포함하는 한 세트의 배선 룰에 의해 통상 표현되는 시스템 요구 사항을 만족시키도록 설계된다. 이 방법은 상호접속 네트 특성을 배선 룰 논리적 사양에 정합시키는 단계를 포함하며, 여기서 배선 룰은 룰 노드 및 룰 접속부를 포함한다. 룰 노드는 핀, 비아 및 클러스터 포인트 구조에 대한 제약 조건을 규정한다. 룰 접속부는 노드 구조간의 배선 제약 조건을 규정하여서 네트 토폴로지를 설정한다. 개시되는 프로세스는 네트 오더링 및 체크에 근거하고 있다. 배선 룰에 근거하여 핀과 핀간의 접속을 규정하는 네트 오더링은 칩 또는 패키지 배선전에 수행된다. 네트 오더링은 부가된 클러스터 포인트, 원하는 상호 접속 토폴로지 및 배선 제약 조건에 대한 배선 룰을 네트에 부가한다. 체크 단계에서는, 설계 배선이 완료될 때 네트 특성의 정확성을 검증한다.

Description

다수의 집적 회로의 배선 방법 및 시스템
본 발명은 전반적으로, 집적 회로 칩, 다중-칩-모듈, 카드 등의 배선 방법에 관한 것으로, 특히 제약 조건을 갖는 클러스터 포인트(constrained cluster points)를 상호접속된 네트에 부가시키는 방법에 관한 것으로서, 여기서 이 제약 조건은 전기적 명세와, 타이밍 및 잡음 명세에 근거한 것이다.
최근의 고속 컴퓨터 및 통신 패키지 설계에서, 설계가 명세에 대해 신뢰성있게 기능하도록 하기 위해 전자 회로간의 배선은 엄격한 전기적 제약 조건과, 타이밍 및 잡음 제약 조건을 준수하여야 한다. 본 기술 분야의 실무자라면, 이들 제약 조건이 규정되고 적용되는 방법에 대한 많은 기본적인 개념들이 패키지 레벨에 의해 실질적으로 적용됨을 용이하게 알 것이다. 이 변용은 오직 패키지 레벨에만 일치하며, 실제로 구동기 상승 시간, 배선 전파 지연, 및 시스템 잡음 특성간의 상관관계에 근거하고 있음이 증명될 것이다. 컴퓨터 칩 설계의 경우, 라인 길이는 시스템 사이클 시간 및 구동기 상승 시간에 따라 비교적 짧다. 이로 인해, 캐패시턴스 로딩의 근사(approximation)를 매우 간략화할 수 있게 된다. 따라서, 네트의 캐패시턴스를 제약하고, 이 제약 조건을 갖는 캐패시턴스값을, 시간 지연 특성, 및 이에 따른 시스템 타이밍을 용이하게 결정하는데 사용할 수 있다. 다른 유형의 패키지, 특히 모듈, 카드, 보드, 프레임 케이블 등과 같이 더 긴 라인 길이를 갖는 패키지에서, 대부분의 라인 길이는 통상적으로 너무 길어서 단순한 캐패시턴스 로드로서 생각할 수 없다. 또한, 전송 라인 분석을 수행하여 타이밍 및 전기적 네트 특성을 고려하여야 한다.
용량성 등가 간략화의 개념이 적용될 수 있는지 여부와 시기를 결정하기 위한 첫 번째 룰은, 배선의 전파 지연 시간(즉, 플라이트(flight) 시간), 즉 전자로 인해 배선의 속도가 저하되는 속도가, 주어진 배선 길이에 대한 전기 회로의 구동기 상승 시간의 1/8보다 작을 때, 배선은 용량성으로 모델링될 수 있다. 용량성 모델이 사용될 수 있는 최대 배선 길이는 이하의 수식에 의해 주어진다.
여기서 단위는, [길이]=상수×[시간]×[길이]/[시간]이다.
여기서의 요지는, 단순히 칩으로부터 더 높은 레벨의 패키지로 확장되는 잘 규정된 개념에 본 발명의 방법이 작용하지 않는다는 것이다. 실제로, 그 밖의 다른 패키지가 용량성 근사의 개념을 적용하기에 충분히 짧은 배선 길이를 가질 경우, 본 발명은 필요없게 될 것이다. 또한, 네트의 일부 또는 모두가 더 이상 용량성으로 모델링되지 않기에 충분할 정도로 칩이 크게 되면, 본 발명은 또한 칩에 적용된다. 또한, 고속 회로가 개발됨에 따라, 구동기 상승 시간은 이에 대응하여 감소되어, 배선 길이를 더 감소시키게 된다. 마찬가지로, 고속 배선(예를 들면, 저온 배선(cryogenic wires))이 개발됨에 따라, 플라이트 시간은 마찬가지로 감소되어서, 용량성 등가물 모델링의 적용을 위한 최대 배선 길이를 감소시키게 된다.
본 발명의 모델에서, 전기적 제약 조건은, 통상 전기 설계 엔지니어에 의해 지정되며, 럼프(lump) 용량성 모델링 개념을 사용하지 않고, 시스템 타이밍 고려 사항 및 신뢰성 요구 사항에 근거하여 개발된다. 이들 제약 조건은 상이한 상호 접속 구성 뿐만 아니라, 구동기, 수신기, 종단기, I/O 커넥터, 및 이들의 결합에 근거하여 응용 분야에 사용하기 위해 개발된다. 통상적으로, 칩 및 더욱 많은 고레벨 패키지상에 1000개의 상이한 고유의 제약 조건 유형이 존재할 수 있다.
전기적인 상호 접속 분석은, 적합한 스위칭 레벨 및 기능에 대한 모든 상호 접속된 칩 회로 기법의 신중한 평가를 포함할 뿐만 아니라, 회로상의 전송 라인 로딩의 영향도 고려해야 한다. 회로의 빠른 에지 스위칭 속도는 회로간의 정확한 전파 지연을 예측하기 위한 광범위한 분석을 필요로 한다. 내부 접속 지연을 제어하는 이 분석은, 칩 I/O와, 신호 반사, 에지 라운딩, 언더슈트, 오버슈트, 발생하기 쉬운 스위칭 및 안정 시간에 대한 패키지 배선 특성에 의해 설계 전기적 잡음 마진을 만족시킨다. 이들 요구 사항은, 최소의 비용으로 시스템을 개발할 필요성에 의해 구성된다. 종래 기술의 시스템에서, 시스템 개발과 관련된 과도하게 높은 비용을 발생시키지 않으면서 최대 시스템 설계를 최적화하기 위해 더 많은 북 유형(book types)(즉, 기술 라이브러리내에 있으며, 설계자에 의해 구성 블럭으로서 사용하기에 유용한 사전결정된 매크로)이 존재한다.
실질적인 하드웨어 설계에서 발견되는 상호 접속 네트워크의 분석에는 실질적인 엔지니어링 판단 이외에도 광범위한 분석이 요구된다. 따라서, 계산적인 관점에서 보면, 패키지 설계 프로세스 동안 상세한 네트 설계 분석을 실시간 수행하는 데에는 엄청나게 많은 비용이 든다. 대부분 자동화되는 패키지 설계 프로세스 동안 요구되는 엔지니어링 판단을 도출하는 것도 또한 논리학적으로 불가능하다. 이러한 큰 설계 마진을 갖는 설계에 대해, 계산적 복잡성, 및 이에 따른 정밀도 요구 사항이 이에 따라 매우 낮게 된다는 예외가 오직 하나 존재한다.
실질적으로 유효한 설계를 보장하기 위해, 특징적으로 작은 설계 마진을 갖는 복잡한 설계에 대해 프로세싱 시간에 영향을 주지 않으면서 필요한 엔지니어링 판단을 포함하는 다른 방법이 요구된다. 후자의 경우, 배선 룰의 사용을 바람직하게 선택할 수 있을 것인데, 그 이유는 특히 설계에서 유효 네트워크를 규정하고, 회로를 상호 접속시킬 때 배선 라우터를 구동시키며 설계 해제 기준으로서 설계를 체크하도록 룰을 개발하기 때문이다. 이들 배선 룰은, 북 유형, 노드 캐패시턴스, 임피던스 로딩, 최소 또는 최대 길이 제약 조건, 및 네트 토폴로지와 같은 특정 개체로 엔지니어링 전기 명세를 이력적으로 변환시킨다.
네트 토폴로지는 네트워크내의 노드가 상호 접속되는 방법을 규정한다. 종종, 토폴로지는 데이지-체인(daisy-chain)으로서 규정되는데, 이 데이지-체인은 네트의 각 노드를 하나씩 하나씩 연결한다. 토폴로지의 다른 유형은 네트의 다른 노드에 팬 아웃되는 공통 노드를 갖는 클러스터 네트를 포함한다. 이들 두 네트 유형의 타이밍 또는 전파 지연 특성은 전기적으로 서로 다르다. 종종, 네트는 각 노드에 매우 엄격한 길이 및 북 유형 명세를 갖는 이들 두 네트 유형의 조합으로 규정된다.
이력적으로, 제시되는 복잡한 제약 조건의 규정내에서 (자동 기구에 의해) 자동적으로 경로 지정될 수 없을 정도로 다양하며 복잡한 네트 유형이 규정되고 모델링되었다. 이들 복잡한 네트 유형은, 핀, 또는 칩내의 소정의 내부의 임의의 위치(즉, 사전결정된 노드 또는 비아 포인트가 아닌 위치), 또는 칩 또는 패키지 내부의 소정의 요구되는 내부 위치에서 하나 이상의 클러스터를 포함할 수 있다. 이들 네트는 일반적으로 길이, 및/또는 캐패시턴스에 대한 분기 세그먼트(branching segments)간의 로드 밸런싱에 대한 제약 조건을 포함한다. 타당하게 지시되지 않은, 이들 네트의 대부분(종종 주어진 설계에서 수 백 개)은 오버플로우인 상태로 남으며, 후속하여 수동적으로 삽입해야 한다. 이 수동 삽입은 개발 프로세스에서 후에 발견될 때 정정하는데 있어서 에러가 발생하기 쉬우며 비용이 많이 드는 길고 지루한 프로세스이다.
전술한 문제점 및 제안된 해결책의 몇몇은, 시 세링거(C. Selinger) 및 시 바커치스(Vakirtzis)에 의한 제목이 IBM ES/9000 Buried Engineering Change Modeling for Verification(IEEE Multi-Chip Module Conference, Santa Cruz, CA, 1992)인 문헌과 같은 몇몇 출판물에 나타나 있다. 여기에는 공지의 분석 기법에 의해 분석될 수 있는 소정의 유형의 접속을 모델링하는 방법이 개시되어 있다. 이 프로세스에서는, T 접합부를 그것을 놓아주는 캐패시턴스를 갖는 직선 배선으로서 처리할 수 있도록 해주는 머시 모델링 방법(mushy modeling methods : MMM)을 이용한다. 이 방안의 적용가능성은, 배선 브랜치가 타이트하게 제한된 최대 길이 한계(통상 8 내지 10mm 차수)를 갖는 캐패시턴스로서 취급될 수 있는 경우로 한정된다. 따라서, 이 방안이 예를 들어 ES/9000 엔지니어링 변화 네트에서 유용하지만, 그다지 정확하지 않으며, 사용되었던 모델의 길이의 제한에 의해 규제되었던 MMM을 사용한 지원을 제공한다.
클러스터 포인트를 필요로 하는 네트에 배선을 내장시키는데 많은 시간과 비용이 소비되었다. 이는 핀에서의 클러스터 포인트에만 제한되는 것이 아니라, 특히 이미 존재하는 비아 시이트에서는 발견되지 않는 공간내의 임의의 포인트에 위치되는 클러스터 포인트도 포함한다. 여기서의 과제는 정확도가 감소되지 않으면서, 완전한 저하되지 않은 전기적 검증, 잡음 면역 및 타이밍 분석을 제공하는 것이다. 본 기술 분야의 기구의 현재 상태는 전송 라인 특성에 근거하여 제약 조건을 갖는 클러스터 포인트를 부가하는 개념을 지원하지 않는다. 이전의 인식에 대한 이러한 단점을 다루는 프로세스 또는 방법의 부족으로 인해 비용이 많이 들 수 있다. 이 요구 사항이 이전에 지원될 수 없었던 이유중 하나는, 논리 설계에서 네트 리스트내에 클러스터 노드의 표시를 포함하지 않기 때문이다. 따라서, 클러스터 노드를 부가하는 것은 수동적으로 조작되었다. 또한, 클러스터 포인트로 혹은 클럭스터 포인트로부터 중요한 요구 사항이 팬 아웃 배선 길이의 각각에 부여되었으며, 이는 수동 조작을 필요로 했었다. 모든 작업을 수동으로 행해야 했기 때문에, 사람이 에러를 범하기 쉬우며, 이들 에러의 발견 및 교정을 행하는 데에는 실질적으로 비용이 많이 들었다. 또한, 네트가 엔지니어링 변화를 필요로 할 때, 이는 마찬가지로, 완전히 수동으로 행해야 했는데, 이는 초기에 자동적으로 배선되지 않았기 때문이다.
본 발명은 허용되는 네트 유형의 설계에서 임의의 네트에 클러스터 포인트 또는 포인트들을 부가하는 방법을 제공한다. 배선 룰 사용은 부가된 클러스터 노드를 규정하도록 확장되며, 이 설계는 네트 토폴로지에 논리적으로 그 위치에 주석을 단다. 네트워크에 전기적 또는 타이밍 요구사항/제한에 부가되는 제약 조건 뿐만 아니라, 네트를 경로 지정하는데 사용되는 제약 조건도 부가된다. 이는 오버플로우 없이 이 유형의 모든 배선을 타당하게 경로 지정하는 능력을 가능하게 해주는데, 이는 이전에는 불가능하였다. 임의의 위치에서 부가된 클러스터 포인트를 갖는 이 유형의 네트는 이제, 완전히 자동적으로 내장될 수 있다. 또한, 결론적으로 프로세스는, 상세한 배선 룰의 명세에 의해 잘 제어되며, 동일하거나 변경된 배선 룰을 동일하거나 다른 칩 또는 패키지에 적용함으로써 반복가능하고, 라우터가 모든 배선을 내장하도록 함으로써 효율적으로 되며, 배선후의 배선 룰 체크 방법에 의해 증명될 수 있다.
전술한 문제에 대한 종래의 해결책은, 존재하는 개념이 네트의 용량성 럼프 또는 완전히 수동 프로세스를 필요로 하기 때문에, 전형적으로 모든 네트중 가장 짧은 것만 지원한다는 단점을 갖는다. 또한, 본 기술 분야에서, 긴 세그먼트는 전송 라인 특성을 나타냄이 잘 알려져 있다. 이들 세그먼트는 용량성으로 모델링될 수 없다. 전송 라인 네트는, 반사 및 노드의 임피던스 변화, 종단 반사, 네트 주변부로부터 유발된 신호, 주어진 시간 슬라이스내의 다중 구동기 스위칭의 효과, 및 오늘날 알려진 캐패시턴스 근사 방법에 용이하거나 혹은 정확하게 근사될 수 없는 그 밖의 다른 많은 고려 사항을 고려해야 한다.
따라서, 본 발명의 가장 중요한 목적은, 임의의 유형의 네트, 특히 칩 또는 더 높은 레벨의 패키지내에 포함되며, 용량성 드롭-오프(drop-off) 모델링 근사에 의해 제한되지 않는 네트를 지원하는 설계 자동화 시스템을 제공하는 것이다.
본 발명의 다른 목적은, 엄격한 토폴로지 및 배선 길이 제약 조건을 가하지 않으면서, n개의 확장된 클러스터 포인트에 대한 라우터 제약 조건을 지정할 것을 요구하는 설계내의 중요한 네트를 효율적으로 경로 지정하는 것이다.
본 발명의 또다른 목적은, 설계의 네트내에 새로운 클러스터 포인트를 설정하기 위한 임의의 실시간 부가 및 제약 조건을 지원하는 방법을 제공하는 것이다.
본 발명의 또다른 목적은, n개의 확장된 클러스터 포인트를 하나의 구성 배선으로서 취급하고, 길이 제한 또는 임의의 용량성 등가 세그먼트 길이를 과도하게 제약하지 않고 모델링되는 네트를 갖는 것이다.
본 발명의 또다른 목적은, 물리적인 설계 프로세스의 지속 시간을 감소시키기 위해 물리적인 설계 단계 동안 라우터 플래그 설계 룰 에러를 갖는 것이다.
본 발명의 또다른 목적은, 자동 라우터로 자동적으로 경로 지정되는 n개의 확장된 클러스터 포인트 제약 조건을 가져서, 고성능 카드의 배선을 간략화하고 비용을 감소시키는 것이다.
도 1a-1b는 종래 기술의 클러스터 부가 네트의 예로서, 논리적/물리적 규정 및 원하는 네트 결과 규정을 갖는 종래의 네트를 도시하는 도면,
도 2는 본 기술 분야에 알려져 있는 클러스터 부가 룰을 나타내는 도면,
도 3은 본 발명에 따라, 네트를 클러스터 부가 배선 룰에 정합시키는 프로세스를 조합하여 나타내는 여러 부분을 표현한 트레이스 구조의 예를 도시하는 도면,
도 4-7은 본 발명에 따라 클러스터 포인트를 오더링되지 않은 네트에 부가하는 프로세스를 나타내는 도면,
도 8은 본 발명의 바람직한 실시예에 따라, 클러스터 부가 프로세스를 구현하는 단계를 나타내는 흐름도.
도면의 주요 부분에 대한 부호의 설명
111 : 구동기 칩 112, 113, 114 : 수신기 칩
120 : 카드 210 : 클러스터 부가된 노드
215, 216, 217, 218 : 접속 스테이트먼트
본 발명의 제 1 관점에 따르면, 상호 접속될 다수의 노드를 포함하는 네트에 클러스터 포인트(cluster points)를 부가함으로써 하나 이상의 패키지내의 칩 내부 또는 칩간의 다수의 집적 회로의 배선을 행하는 방법 ― 상기 배선을 행하는 동안 상기 상호 접속된 노드가 물리적 제약 조건, 전기적 제약 조건, 및 잡음 제약 조건을 포함하는 시스템 요구 사항을 만족시키며, 상기 시스템 요구 사항은 배선 룰에 의해 표현됨 ― 으로서, a) 트레이스 구조(trace structure)를 구축하는 단계 ― 상기 트레이스 구조는, ⅰ) 각각이 적어도 하나의 룰 노드 제약 조건을 포함하는 다수의 룰 노드와, ⅱ) 각각이 상기 룰 노드 제약 조건을 만족시키는 제 1 특성을 갖는 네트 노드를 포함하는, 상기 룰 노드와 연관된 다수의 네트 노드 리스트와, ⅲ) 각각이 한 쌍의 룰 노드에 부가될 접속 제약 조건을 포함하는 다수의 룰 접속부를 포함함 ― 와, b) 상기 모든 룰 노드가 연결될 때까지 상기 룰 접속부의 각각에 상기 룰 노드 각각을 연속적으로 연결시키는 단계 ― 이로 인해 상기 네트가 형성됨 ― 와, c) 상기 룰 접속 제약 조건을 상기 한 쌍의 연결된 룰 노드와 연관된 제 2 특성에 정합시키는 단계 ― 여기서, 상기 정합이 성공할 때, 상기 룰 접속 제약 조건이 상기 한 쌍의 연결된 룰 노드에 부가되며, 상기 정합이 성공하고 상기 한 쌍의 연결된 룰 노드중 적어도 하나의 룰 노드의 상기 네트 노드 리스트가 비어 있을 때, 적어도 하나의 클러스터 포인트가 상기 네트에 부가되고, 상기 정합이 성공하지 않을 때, 상기 연결된 룰 노드간의 접속이 상기 배선 룰을 위반하는 것으로서 플래그됨 ― 를 포함하는 방법을 제공한다.
본 발명의 다른 관점에 따르면, 상호 접속될 다수의 노드를 포함하는 네트에 클러스터 포인트를 부가함으로써 하나 이상의 패키지내의 칩 내부 또는 칩간의 집적 회로의 배선을 행하는 시스템 ― 상기 배선을 행하는 동안 상기 상호 접속된 노드가 물리적 제약 조건, 전기적 제약 조건, 및 잡음 제약 조건을 포함하는 시스템 요구 사항을 만족시키며, 상기 시스템 요구 사항은 배선 룰에 의해 표현됨 ― 으로서, a) 트레이스 구조를 구축하는 수단 ― 상기 트레이스 구조는, ⅰ) 각각이 적어도 하나의 룰 노드 제약 조건을 포함하는 다수의 룰 노드와, ⅱ) 각각이 상기 룰 노드 제약 조건을 만족시키는 제 1 특성을 갖는 네트 노드를 포함하는, 상기 룰 노드와 연관된 다수의 네트 노드 리스트와, ⅲ) 각각이 한 쌍의 룰 노드에 부가될 룰 접속 제약 조건을 포함하는 다수의 룰 접속부를 포함함 ― 과, b) 상기 모든 룰 노드가 연결될 때까지 상기 룰 접속부의 각각에 상기 네트 룰 노드 각각을 연속적으로 연결시키는 수단 ― 이로 인해 상기 네트가 형성됨 ― 과, c) 상기 룰 접속 제약 조건을 상기 한 쌍의 연결된 룰 노드와 연관된 제 2 특성에 정합시키는 수단 ― 여기서, 상기 정합이 성공할 때, 상기 룰 접속 제약 조건이 상기 한 쌍의 연결된 네트 노드에 부가되며, 상기 정합이 성공하고 상기 한 쌍의 연결된 룰 노드중 적어도 하나의 룰 노드의 상기 네트 노드 리스트가 비어 있을 때, 적어도 하나의 클러스터 포인트가 상기 네트에 부가되고, 상기 정합이 성공하지 않을 때, 상기 연결된 룰 노드간의 접속이 상기 배선 룰을 위반하는 것으로서 플래그됨 ― 을 포함하는 시스템을 제공한다.
전술한 바와 같이, 본 발명은 물리적인 노드에 대한 배선 룰 노드의 결합 또는 상호 접속 그래프가 배선 룰 알고리즘에 의해 규정되는 것보다 더 적은 노드를 갖는 네트의 정합을 지원하는 오더링 프로세스를 개발하는 것뿐만 아니라 배선 룰 명세에 근거하여 클러스터 포인트를 부가시키는 것에 관한 것이다.
오더링 프로세스는 주어진 패키지의 배선 룰 명세를 네트 규정에 부가하며, 여기서 주어진 패키지는 하나 또는 다수의 칩, 카드, 모듈 등으로 구성될 수 있다. 오더링이 성공적으로 완료되도록 하기 위해, 부가된 클러스터 노드 규정 및 제약 조건에 따라 설계 데이터가 증가하며, 이들 둘 모두는 배선 룰에 의해 제공된다. 클러스터 포인트를 네트에 부가시키는 것은 메모리 카드 어드레스 버스와 같은 응용 분야에 특히 관련되며, 여기서 각 64비트 버스, 어드레스 라인은 전형적으로 16 로드로 팬 아웃된다. 종종, 초기의 클러스터가 두 개의 분리된 클러스터 포인트로 분기되고 그 후 이는 4개의 로드로 분기되며 후속하여 여전히 2개의 부가적인 로드로 되는 클러스터 포인트의 계층이 존재한다. 이 유형의 네트의 타이밍 및 잡음 요구 사항은 각 클러스터 레벨에서의 로딩과 네트의 주요 분기의 전반적인 로딩이 동일하고 평형을 이루도록 지정한다. 이 요구 사항을 수동으로 달성하는 것은 많은 노동력을 필요로 한다. 또한, 도달된 결과는 검증을 필요로 하는데, 적절한 알고리즘에 의해 자동적으로 개발되어서, 결과가 정확하고 최적으로 되도록 하는 것이 바람직하다.
본 명세서에 개시된 프로세스는 복잡한 경우들을 완전히 지원할 수 있도록 완전히 일반적이며 충분히 광범위한 것이다. 이는 라우터에 대해 클러스터 포인트를 규정하고 네트워크내의 위치의 함수로서 제약 조건을 규정함으로써 달성된다.
네트에 클러스터 포인트를 부가하는 프로세스의 개관
도 1a를 참조하면, '클러스터가 부가된 예시적인 네트'를 나타내는 네트가 도시되어 있으며, 이는 한 세트의 원하는 결과 특성을 가지면서, 본 발명의 프로세스의 초기에 나타난다. 원래의 네트는 노드(핀)의 집합으로 구성된다. 고려 사항에서 패키지의 유형(예를 들면, 칩, 다중-칩-모듈, 카드, 보드 등)에 관계없이, 모든 구성 성분은, 신호 배선 경로 지정전에 이미 배치되고 IO 할당된 것으로 간주된다.
본 실시예에서, 4개의 칩, 즉 구동기 칩(111), 및 3개의 수신기 칩(112, 113, 114)으로 이루어진 카드(120)가 도시되어 있다. 이 4개의 칩은 도 1a에서 상호 접속되지 않은 채로 도시되어 있다. 칩(111)에서 수신기 칩(112)으로, 칩(111)에서 수신기 칩(113)으로, 칩(111)에서 수신기 칩(114)으로 연결하는 독립적인 배선이 유효하게 상호 접속될 수 있는 반면에, 이러한 배선 구성은 예를 들어 구동기 칩(111)상의 과도한 팬-아웃과 같은 전기적인 요구 사항 및 잡음 요구 사항을 위반할 것이 확실하다.
본 명세서에서 기술되는 '클러스터 부가' 프로세스는, 예를 들어 40개의 핀 네트를 갖는 예에서 도시된 바와 같은 한정된 수의 핀만을 갖는 네트로 제한되는 것은 아니다.
부가된 클러스터의 규정은 패키지 배선의 전기적 분석 및 IO 전기적 특성에 근거하며, 이는 고려되어야 하며 또한 상호 접속의 요구 사항을 만족시켜야 하는 캐패시턴스, 차별적 길이, 전파 지연, I/O 북 명칭과, 전송 라인 효과, 저항성 부하, 용량성 부하, 플라이트 시간, 슬루 레이트, 응답 시간 및 잡음 면역성과 같은 그 밖의 다른 전기적, 물리적 특성을 포함한다. 이러한 고려 사항은 오버슈트 전압, 언더슈트 전압, 지연 시간, 상승 시간, 하강 시간, 안정화 시간(settling time), 및 잡음 마진을 포함한다. 좀 더 일반적으로 기술하면, 네트 명세는 시스템 타이밍 및 잡음 요구 사항을 만족시켜야 한다. 본 예에서, 부가적인 클러스터 노드는, 1) 신호 반사를 감소시키고, 2) 네트를 형성하는 분기간의 용량성 부하의 평형을 이루게 하는 요구 사항을 만족시키는데 필요하다.
도 1b를 참조하면, 잡음 및 타이밍 요구 사항에 부합하는 유효한 배선 구성이 도시되어 있다. 여기에는 전기 설계 엔지니어에 의해 지정되었으며 제약 조건을 갖는 클러스터 포인트 노드가 부가된 네트가 도시되어 있다. 도시된 배선 구성은, 배선 룰에 부합되는 부가되는 클러스터 포인트(110)를 포함하며, 전형적으로 실시가능성 및 설계 분석 동안 규정되어서 네트에 최적의 배선 구성을 제공하여, 시스템 설계 명세가 주어지게 된다. 전형적으로 이들 명세는, 타이밍 요구 사항, 잡음 허용도, 배선가능성 능력, 및 회로 특성을 포함한다. 패키지 전기 설계자는 최적의 네트 구성을 달성하기 위해 이들 모든 명세를 고려해야 한다.
도 1b에 도시된 네트는, 각각 상호 접속되는 핀(111, 112, 113, 114)으로 구성되어 있다. 이 네트는 실질적인 설계 제약 조건의 예를 반영한다. 클러스터 포인트(110)로부터 칩(112, 113, 114)으로의 3개의 분기 배선은 동일한 길이가 되도록 제약 조건을 갖는다. 이 제약 조건은 동일한 길이 명세 L=K를 갖는 각 배선에 의해 규정된다. 길이 K가 선택되어 있는 반면에, 전파 지연 또는 비용 고려 사항(이들 모두는 최소 및 최대 값에 의해 통상 지정됨)과 같은 그 밖의 다른 제약 조건도 또한 계산에 넣어야 한다. 이 제약값은 회로 시뮬레이션, 전기 실험, 또는 기술적 그라운드룰을 적용함으로써 도출된다. 3개의 분기 모두가 동일한 길이를 갖기 때문에 구동기 칩(111)으로부터의 신호는 클러스터 포인트(110)로 네트의 배선을 통해 전파될 것이며, 이 포인트에서, 이 신호는 3개의 모든 분기(구동기로 도로 반사되는 부분을 포함함)에서 교차되어서, 3개의 동일한 길이를 갖는 배선 세그먼트를 교차하여 전파되며, 시간적으로 동일한 순간에 각 수신기 칩에 도달한다.
전기적 설계자 및 물리적 설계자간의 정보 전달을 용이하게 하기 위해, 상호 접속의 요구 사항을 규정하는데 배선 룰 또는 룰 포맷이 사용된다. '클러스터 부가 룰 도면'(도 2)은 적절한 네트 배선 명세를 물리적 설계자에게 전달하는데 사용되는 룰을 나타낸다. 도 1에 도시된 네트에 대응하는 이 룰은, 원하는 네트 배선 결과를 획득하는데 필요한 5개의 NODE 스테이트먼트 및 4개의 CONN 스테이트먼트를 규정한다. NODE 스테이트먼트는 네트의 노드 구조(통상적으로 핀, 비아, 테스트 포인트 등)에 정합될 제약 조건을 규정하며, CONN 스테이트먼트는 규정된 NODE 스테이트먼트간의 상호 접속 제약 조건을 규정한다. 이 룰은, 초기에 존재하는 네트의 4개의 노드 각각에 대한 NODE 스테이트먼트 뿐만 아니라, 부가된 클러스터 노드에 대한 NODE 스테이트먼트도 갖는다. CONN 스테이트먼트는 '부가된 클러스터' 노드 규정도 또한 포함한다. 전기적 분석 및 시스템 설계 요구 사항의 결과는, 클러스터 네트 토폴로지와 각 네트 노드간에 배선된 길이 제약 조건을 지정하는 룰의 NODE 및 CONN 스테이트먼트로 규정된다. 실제로, 그 밖의 다른 제약 조건도 또한 NODE 및 CONN 스테이트먼트에 부가되기 때문에, 룰은 전술한 바와 같이 간단하지 않다.
도 2에 도시된 배선 룰은 도 1b에 도시된 네트 구성의 실시예를 나타낸다. 노드(211)는 네트의 구동기 핀을 나타내며, 노드(212, 213, 214)는 네트의 수신기 핀을 나타낸다. 노드(210)는 부가된 클러스터 노드이다. 이들 노드 규정은 일반적인 핀 및 그들 각각의 제약 조건을 나타낸다. 노드(211)는 IO=OUT으로 규정된다. Type=P는, 이 노드가 네트 구동기(또는 출력 핀)에 대응하는 것을 지정한다. 노드(212, 213, 214)는 오직 하나의 수신기 핀만을 허용하는 TYPE=P 및 IO=IN 제약 조건을 지정한다.
도 2에는 CONN(즉, 접속) 스테이트먼트(215, 216, 217, 218)도 또한 도시되어 있다. 이들 접속 스테이트먼트는 배선 룰의 노드가 연결되는 방법을 규정하며, 그들간의 배선에 대한 제약 조건을 지정한다. 원하는 네트 토폴로지는, 프롬(from) 및 투(to) 노드 할당에 의해 규정된다. 규정된 접속은 도 1b에 도시된 원하는 배선 길이를 반영한다. NODE 및 CONN 스테이트먼트간의 프롬 및 투 노드 명칭 대응은 원하는 네트 토폴로지를 반영하는 템플릿을 규정하며, 이는 그래프에서 용이하게 관찰할 수 있다. 동일한 제약 조건을 반영하는 실질적으로 부호화된 배선 룰이 도 2의 하부에 도시되어 있다.
이제 도 3을 참조하면, 클러스터 부가 프로세스를 용이하게 하기 위해 (소프트웨어로) 구현된 상세한 트레이싱 구조가 도시되어 있다. 트레이싱 구조는 3개의 주요한 구조 부분, 즉 NetNodeLists, Rule Nodes, 및 Rule Connections으로 구성되어 있다. 주요 구조 각각은 도 1a-1b 및 도 2의 구성 성분과 직접 관련될 수 있으며, 이는 협력하여서, 클러스터 노드를 부가하는 동안 네트가 효율적으로 배선 룰과 정합되도록 하는 방식으로 배선 룰 규정에 설계 네트 데이터를 타이트하게 연결시킨다.
도 2 및 도 3을 결부시켜 참조하면, NODE 스테이트먼트(이하, 룰 노드로 또한 칭해짐) 부분은 룰 노드 구조(310, 311, 312, 313, 314)(도 3)를 연결하는 노드 리스트에 의해 규정된다. 여기서 각 룰 노드 구조는, 각각 (310)과 (210), (311)과 (211), (312)와 (212), (314)와 (214)의 대응에 따라, 도 2의 배선 룰에서 규정되는 각 NODE 스테이트먼트로 맵핑된다. 이들 구조는 배선 룰 NODE 스테이트먼트로부터의 제약 조건을 유지한다. 각 룰 노드 구조로부터, NetNodeList(예를 들면, 도 3에 도시된 (300, 301, 302, 303, 304))가 형성된다.
NetNodeList 구성 요소는, 네트의 핀(110, 111, 112, 113, 114)(도 1b)을 식별하는, NetNodes(321, 322, ..., 330)(도 3)의 각각을 갖는 네트 데이터에 직접 대응한다. 각 NetNodeList는 자신의 룰 노드에 의해 규정되는 제약 조건을 만족시키는, 도 1a에 도시된 네트의 모든 핀을 갖는다.
예시를 통해, 룰 노드(310)는 NetNodeList상에 단일 NetNode(321)를 가지며, 노드 D1(도 1의 (111))은 NODE 스테이트먼트(310)에서 규정된 제약 조건 Type=P 및 IO=OUT를 만족시키는 오직 하나의 네트 노드이다. 룰 노드(312)는 네트 노드 R1, R2 및 R3(도 1의 (112, 113, 114))에 대응하는 3개의 NetNode(322, 323, 324)를 갖는다. 마찬가지로, 모든 3개의 네트 노드는 규정된 제약 조건 Type=P 및 IO=IN을 만족시킨다. 룰 노드(313, 314)는 룰 노드(312)와 유사하다. 룰 노드(311)는 비어 있는 NetNodeList(301)를 갖는다. 처음에, 이 네트(도 1a 참조)는 임의의 Type=T 노드를 가지지 않는다. 그 후, 룰 노드(311)는 클러스터 포인트의 위치를 유지한다. 각 룰 노드로부터 NetNodeList를 구축하는 프로세스는, 규정된 노드를 배선 룰내에 맵핑하고 부가될 각 클러스터 핀에 대한 위치를 유지하기 위해 어떤 네트 핀이 선택되는지를 설정한다.
최종적으로, 트레이스 구조를 구성하기 위해, CONN 스테이트먼트(이하, 룰 접속으로 또한 칭해짐)는 NodeList의 Node 스테이트먼트(또는 룰 노드)에 연결된다. 프롬 및 투 노드 명칭 각각은 동일 노드 명칭을 갖는 NODE 스테이트먼트로 맵핑된다. 이러한 방식으로, CONN 스테이트먼트(또는 룰 접속)(315)는 룰 노드(310, 311)를 가로질러 연결되며, CONN 스테이트먼트(또는 룰 접속)(316)은 룰 노드(311, 312)에 접속되며, (317)은 (311, 313)에, (318)은 (311, 314)에 접속되고, 이들 각각은 프롬 및 투 명칭의 룰 노드를 가로질러 연결된다. 룰 접속(315, 316, 317, 318)은 지시된 리스트를 형성하도록 연결된다.
클러스터 부가 프로세스에서 상세하게 기술되는 바와 같이, CONN 스테이트먼트의 리스트는 트레이싱을 구동시키고 클러스터 포인트를 부가하는 마스터 리스트를 나타낸다. 기본적으로, 이 프로세스는 첫 번째 CONN 스테이트먼트(315)로부터 마지막 스테이트먼트(318)로 진행한다. 각 CONN 스테이트먼트에서, CONN 스테이트먼트 기준을 만족시키는 유효한 NetNode 할당을 찾기 위해, 체계적인 시도가 행해진다. 임의의 주어진 시점에서, NetNode에 하나 이상의 NODE 스테이트먼트가 할당되지 않도록 하기 위해 각 NetNode 할당에서 체크가 행해진다. 각 CONN 스테이트먼트에 NetNode가 성공적으로 할당될 때, 다음 CONN 스테이트먼트로 CONN 스테이트먼트 제어가 전달된다(예를 들면, (315)에서 (316)로). 미사용 NetNode가 할당에 이용될 수 없거나, 이들이 길이 제약 조건을 만족시키지 못하는 이유로 인해 CONN 스테이트먼트 할당이 실패할 경우, ConnList의 제어는 이전의 CONN 스테이트먼트로 복귀((316)에서 (315)로 복귀)되며, NetNodeList내의 다음 NetNode가 할당된다. ConnList의 처음 또는 끝이 도달할 때 트레이싱이 종료한다. 리스트의 끝이 도달할 때 성공적인 트레이스가 달성된다. 대신에, 리스트의 처음이 도달하면 오류가 선언된다.
요구되는 길이 체크는 처음에, 배선되지 않은 패키지에 대한 카드상에 위치하는 핀간의 상대적인 거리에 근거한다. 가장 공통적으로 사용되는 길이는 맨하탄 거리(Manhattan distance)로 알려져 있으며, 이는 X 및 Y 방향 각각의 길이의 변화의 합이다. 선택사양적으로, 드래그(drag)를 이용하는 그 밖의 다른 길이 근사법이 사용될 수 있다. 후에, 카드가 배선될 때, CONN 스테이트먼트 배선 제약 조건에 대해 실질적인 배선 길이가 사용된다. 또한, 네트가 배선될 때, 클러스터 포인트가 네트에 부가된다. 클러스터 포인트가 이제 네트내에 있기 때문에, 트레이스 구조가 최종적으로 구축될 때 NODE 스테이트먼트(302)로부터의 NetNodeList내에 클러스터 노드(110)(도 1b)가 포함된다. 배선된 네트에 적용가능한 프로세스는 배선되지 않은 카드에 적용가능한 것과 동일한 단계를 수행한다. 이로 인해 설계 검증을 제공하고 완료된 패키지 설계의 기능을 체크할 수 있게 된다.
두 개의 수신기 네트의 예
이전에 규정된 프로세스를 더 잘 이해하기 위해, 이하 하나의 구동기 핀과 두 개의 수신기(이하 드롭(drops) 또는 로드(loads)로 또한 칭해짐)로 구성되는 네트에 대해 실질적인 예를 제공한다.
배선 룰 스테이트먼트
처음에, 시스템 설계 명세를 만족시키기 위한 특정 네트 토폴로지 및 제약 조건을 규정하는 한 세트의 배선 룰 스테이트먼트를 기술한다. 이하에 3개의 중요한 스테이트먼트를 나타낸다.
RULE : 룰 명칭 및 전역 값과 제약 조건을 식별한다.
NODE : 네트 노드의 각각에 대한 제약 조건을 규정한다.
CONN : 각 노드가 인접 노드에 접속되는 방법을 규정한다. 네트 토폴로지를 부과하며 노드간의 제약 조건을 규정한다.
현재의 기법을 개선한 기법, 즉 논리 설계가 초기에 요구되는 것에 부가하여 RULE이 NODE 스테이트먼트를 규정하도록 허용되는 것이 존재한다. 또한, NODE 스테이트먼트는 원래의 네트의 일부가 아니었던 클러스터 포인트도 포함한다. (클러스터) NODE 스테이트먼트에 연결되는 CONN 스테이트먼트는 제약값, 예를 들면 노드간의 최대 및 최소 배선 길이를 포함하는데, 이는 부가된 노드가 정확한 위치에 전자적으로 위치되도록 라우터가 행하도록 한다.
이하, 클러스터 포인트를 네트에 부가하는 여러 프로세스 단계를 기술한다.
도 4를 참조하면, 3개의 노드 유형(즉, 핀), 즉 하나의 구동기와 두 개의 수신기를 갖는 하나의 지시되지 않은 'ADDR_1'로 칭해지는 Net Name이 도시되어 있다. 네트를 형성하는 노드간의 상호 접속은 아직 규정되지 않았다. 이하에 기술될 오더링 프로세스 동안, 네트에 대한 상호 접속은 배선 룰에 의해 할당될 것이다.
배선 룰을 참조하면, 오더링 프로세스 동안 RULE 어드레스는 Net ADDR_1에 정합된다. 이는 부가된 클러스터 노드 뿐만 아니라, 네트 규정에 룰 특정 배선 제약 조건을 부가하는 것을 가능하게 해준다. 이 룰은 'ADDR'로 시작하는 네트와 정합하려고만 한다. 4개의 NODE(즉, A, B, C, 및 D)가 여기에서 규정된다. NODE A는 구동기 핀을 제한하며, NODE C 및 D는 수신기 핀을 표시하며, NODE B는 네트와 정합될 때 배선 룰에 의해 부가될 클러스터 포인트 'T'를 지정한다.
다음에, CONN 스테이트먼트가 NODE간의 상호 접속을 지정한다. 프롬 및 투 노드 명칭을 연결함으로써, 도 4-7에 도시되는 네트 토폴로지가 배선 룰에 의해 강화된다.
도 5는 도 4에 도시된 배선 룰에 의해 지정되는 토폴로지를 도시한다. 룰 제약 조건은 삽입구 '()'를 사용하여 언급되며, 부가된 클러스터 포인트는 블랭킷 '[]'을 사용하여 도시된다. 특히, 도면에 도시된 '18-20 길이'는 독립적인 전기적 분석을 도입함으로써 획득되며, 이는 또한 구동기 노드 및 부가된 클러스터 포인트 T간의 배선 길이에 부가되는 제약 조건을 규정한다.
오더링(도 6)
오더링은, 네트의 물리적인 핀과 네트 룰의 핀 모델간의 상관관계를 처음에 생성하고, 그 룰에 의해 규정되는 토폴로지에 그들을 맵핑하기 위해 네트내의 핀에 프롬-투 결합을 할당하는 프로세스이다.
오더링되지 않음은, 전술한 상관관계 둘 모두 존재하지 않음을 의미한다.
네트를 배선 룰에 정합시키고 네트 토폴로지 및 제약 조건(즉, 네트 오더링)을 할당한 후, Net ADDR_1은 RULE 어드레스에 정합될 때 이하의 제약 조건 및 부가된 클러스터 포인트, 즉 1) 네트에 인가되는 RULE로부터의 토폴로지 및 제약 조건과, 2) 네트 노드 1을 RULE 노드 A, 네트 노드 2를 RULE 노드 C, 네트 노드 3을 RULE 노드 D에 정합시키는 오더링 프로세스와, 3) 클러스터 포인트 [4] 또는 (T)를 RULE 노드 B에 근거하여 네트에 부가시키는 프로세스를 가질 것이다. '18-20', '2.5-3' 등과 같은 RULE에서 규정된 제약 조건도 또한 라우터에 대한 부가된 제약 조건으로서 네트에 인가된다.
경로 지정(도 7)
이제, Net ADDR_1이 경로 지정된다. 부가된 클러스터 포인트 및 네트 제약 조건으로 인해 라우터가 요구되는 네트 경로 지정을 제공하게 된다. 이 경로 지정 단계가 완료되면, 네트는 이하의 결과, 즉 부가된 클러스터 포인트 [4] 및 배선 길이 2.5, 3 및 19(이들 모두는 배선 룰에 의해 부가되는 대응 제약 조건을 만족시킴)를 디스플레이한다.
체크
이 경로 지정 단계가 완료되면, 이 설계의 정확성을 검증하기 위해 설계를 형성하는 네트가 다시 룰에 정합된다. 최종 경로 지정된 네트 토폴로지, 세그먼트, 및 노드 특성이 체크된다. 체크는, 클러스터 노드가 부가되었는지, 클러스터 노드를 위치시키는 제약 조건이 만족되었는지, 할당된 배선 룰에서 규정된 임의의 다른 제약 조건도 또한 마찬가지로 만족되었는지에 대한 검증을 행하는 것이다.
클러스터를 부가하는 프로세스 단계
클러스터 부가 프로세스 흐름을 나타내는 부분은 네트를 클러스터 부가 배선 룰에 정합시키고, 부가된 노드 및 관련 배선 제약 조건에 대한 주석을 설계에 다는 프로세스를 나타낸다.
트레이스 구조의 예(도 3)는 이 흐름도와 이전에 기술된 네트 예와 관련된 데이터 구조 관계를 상세히 나타낸다.
이제, 도 3의 트레이스 구조를 염두에 두면서 도 8의 클러스터 부가 프로세스 흐름도를 참조하면, 본 발명에 따라, 현재의 프로세스를 규정하는 단계의 시퀀스가 도시되어 있다.
두 개의 구별되는 노드 유형이 존재한다. 네트 노드는 물리적인 하드웨어내의 물리적인 개체이다. 룰 노드는 네트 배선 룰내에만 존재하는 물리적인 노드의 논리적인 모델이다.
따라서, Net Node 리스트는 위에서 규정된 물리적인 네트 노드의 리스트이다. Rule Node 리스트는 위에서 규정한 바와 같이 논리적인 룰 노드의 리스트이다.
흐름도의 단계(100-103)는 룰 NODE 스테이트먼트 제약 조건 및 네트 노드 특성에 근거하여 NodeList 구조를 구축한다. 룰 NODE 스테이트먼트는 NodeList를 형성하도록 연결된다(단계(101)). 그 후, NodeList의 각 NODE에 대해, 네트의 각 노드는 NetNodeList에 합체되기 전에 제한된다(단계(102)). 각 NODE 구조로부터 NetNodeList를 구축하는 동안, 그 위치에 대해 유효한 모든 가능한 네트 노드가 리스트에 포함된다. 그 후, 성공적인 트레이스가 행해질 수 있는지 여부를 판단하기 위해, NodeList내의 NODE 구조가 감사된다(단계(103)). 이 감사에서는, 각 NODE가 적어도 하나의 NetNodeList를 갖는지, 혹은 임의의 링크가 없는 NODE가 클러스터 부가 유형 노드(유형 T)에 대한 것인지를 식별한다.
NetNodeLists가 없는 클러스터 부가 NODE 스테이트먼트는 후속하여 네트에 삽입될 클러스터 포인트에 대한 위치를 유지한다(단계(604)). 룰 NODE 스테이트먼트가 클러스터 부가 노드 포인트가 아니며 NetNodeList가 비어 있는 경우, 룰의 NODE 스테이트먼트에 자격을 부여하는 네트 노드가 존재하지 않으며, 룰과 네트 정합이 불가능하다.
NodeList 구축 단계가 성공적인 트레이스에 대한 가능성을 나타낼 경우, 단계(201)는 CONN 스테이트먼트를 NODE 스테이트먼트에 연결시키기 위해 계속 진행된다. 이 연결은 배선 룰로부터 네트 토폴로지를 설정하여서, 성공적인 트레이스 오더링이 룰의 토폴로지에 정합되도록 한다. ConnList는 네트 트레이싱을 완료하도록 조작되는 중요한 리스트로 된다. 처음(즉, 첫 번째) CONN 스테이트먼트로부터 트레이싱(A에서 B로)을 준비할 때, 프롬 NODE(A)가 첫 번째 NetNodeLink(D1)로 초기화된다. NetNodeLink가 NODE에 할당될 때, 미사용 네트 노드가 사용으로 재명명된다. NetNode를 사용으로 표시함으로써 모든 공통 NetNodeLink의 NetNode를 식별하게 되도록, 각 NetNodeLink가 NetNode의 단일 발생에 대해 지적한다. 이는 NetNode가 현재의 NetNodeLink로서 하나 이상의 NODE 스테이트먼트에 할당되는 것을 방지한다.
네트 단계(300-307)를 트레이싱하는 동안, 현재의 ConnList 포인터는 초기에, 현재의 NetNodeLink를 각 CONN 스테이트먼트 투 NODE로 연속적이고 성공적으로 할당함으로써 처음(즉, 첫 번째) CONN으로부터 마지막 CONN으로 지시된다. CONN 스테이트먼트 프롬 또는 투 NODE 스테이트먼트가 클러스터 부가 노드내에서와 같이 NetNodeLinks를 가지지 않을 경우, 현재의 ConnList CONN 스테이트먼트 포인터는 다음 CONN으로 진행한다(단계(301)). 투 NODE NetNodeLinks가 할당될 때, 이 트레이싱은 다음 CONN으로 이동하게 된다(단계(302)). 일단 투 Node가 할당되면, 접속에 대해 규정된 제약 조건(예를 들면, 최소 및 최대 길이)이 네트의 특성에 대해 테스트된다(단계(304)). 테스트가 성공적이고 부가적인 CONN 스테이트먼트가 존재할 경우, CONN 투 노드 NetNodeLinks의 할당이 계속된다. CONN 테스트가 실패할 경우, 다음 트레이스를 다시 루핑함으로써 다음 미사용 투 Node 할당이 시도된다(단계(301)).
트레이싱 동안, NODE 스테이트먼트에 투 Node를 할당하려고 할 때 NetNodeList의 끝이 도달할 경우, 이전의 트레이스가 시도된다(단계(500)). 현재의 것에 대한 이전의 CONN 스테이트먼트가 존재하는 경우, 이전의 것은 현재의 것으로 되고 다음 트레이스가 시도된다. 이전의 CONN이 존재하지 않을 경우, 처음 CONN에 다음 프롬 Node가 할당되며(단계(505)), 트레이싱이 계속된다.
ConnList의 끝이 도달할 때, 성공적인 트레이스가 표시된다(단계(307)). 각 성공적인 트레이스에 따라, 가장 좋은 트레이스에 자격을 부여하기 위한 테스트가 행해진다(단계(400)). 처음 CONN 프롬 노드 NetNodeList의 NetNodeList가 다 소모될 때 모든 가능한 트레이스가 트레이스된 것으로 간주된다.
가장 좋은 트레이스(단계(400))는 이전의 가장 좋은 트레이스 결과에 대해 현재의 트레이스 결과를 평가한다. 현재의 트레이스가 이전의 트레이스보다 좋거나, 혹은 첫 번째 트레이스일 경우, 현재의 트레이스의 투 노드 및 프롬 노드 할당은 이 후의 기록을 위해 저장된다.
트레이싱이 다 소모되고 가장 좋은 트레이스가 발견될 때(단계(600)), 설계 네트 리스트가 갱신된다. 이는 클러스터 포인트 부가를 갱신하며, 배선 토폴로지를 규정하고, 배선 룰 명세에 근거하여 네트상에 배선 경로 지정 제약 조건을 부가한다. 클러스터 노드가 네트 리스트내의 네트 규정에 부가된다. 네트 토폴로지는 이하의 라우터에 대한 일련의 접속 프롬 및 투 노드 쌍 규정으로서 규정된다. 최종적으로 클러스터의 위치는 CONN 스테이트먼트 접속 제약 조건(예를 들면, 최소 및 최대 길이)을 규정된 접속에 전달함으로써 제약 조건을 갖는다.
이하의 코딩은 설계 네트리스트를 갱신하기 위한 커맨드의 리스트를 나타낸다. 이 리스트는 원하는 제약 조건을 갖는 부가된 클러스터 포인트 및 도 1a-1b 및 도 2의 배선 룰에서 전기 설계자에 의해 규정되는 토폴로지의 부가에 대응한다.
이하, 도 8에 도시된 흐름도를 형성하는 단계 시퀀스를 나타낸다.
100 : 룰 NODE 스테이트먼트에 근거하여 NodeList를 구축한다.
101 : 룰 NODE 스테이트먼트가 NodeList를 형성하는 리스트내에 함께 연결 된다.
102 : 자격이 부여된 NetNodeLinks를 각 NODE 스테이트먼트에 할당한다. 룰 NODE 스테이트먼트에 의해 규정되는 제약 조건에 대해 네트의 각 노드의 특성이 테스트된다. 네트 노드가 룰의 NODE 위치에 대한 후보자로서 자격 부여되는 것을 나타내는 전달 결과가 제약 조건 테스트로부터 복귀된다. 그 후, 네트 노드를 식별하는 NetNodeList에 NetNodeLink 엘리먼트가 부가된다. 특정 NodeTrace에 할당되는 자격이 부여된 모든 NetNodeLink 엘리먼트는 NetNodeList를 형성하기 위해 함께 연결된다.
103 : 각 NODE 스테이트먼트가 그 NetNodeList내에 적어도 하나의 NetNodeLink 엘리먼트를 갖는지, 혹은 임의의 비어 있는 NodeTrace 엘리먼트가 클러스터 부가 노드를 규정하는 룰 NODE 스테이트먼트에 대응하는지를 판단하기 위해 NodeList 엘리먼트를 테스트한다. 결과가 부정일 경우, 트레이스는 성공적으로 될 수 없으며, 그 후 600으로 진행한다(실패). 그 외에는 트레이스를 초기화하는 200으로 진행한다.
200 : 트레이스를 초기화한다.
201 : 룰 CONN 스테이트먼트 각각의 FromNode 및 ToNode 노드간의 연결을 NodeList내의 대응하는 NODE 스테이트먼트 각각에 할당한다.
202 : 대응하는 NetNodeList내의 첫 번째 NetNodeLink 엘리먼트를 선택하기 위해 첫 번째 룰 CONN 스테이트먼트 FromNode의 NODE 스테이트먼트를 초기화한다. 할당된 NetNodeLink의 네트 노드를 사용으로 표시한다.
203 : 다음 트레이스인 300으로 진행한다.
300 : 다음 트레이스
301 : 클러스터 부가 핀이 규정된 비어 있는 NetTraceList를 스킵한다. ToNode 또는 FromNode NetTraceList가 비어 있는 동안 다음 CONN 스테이트먼트로 스킵한다.
302 : CONN 스테이트먼트 ToNode를 대응하는 NetNodeList내의 첫 번째/다음 미사용 NetNodeLink 엘리먼트에 할당한다.
303 : ToNode 리스트가 다 소모될 경우, 이전 트레이스인 500으로 진행한다.
304 : 룰 CONN 스테이트먼트에 의해 규정된 제약 조건에 대해 네트의 현재 의 FromNode 및 ToNode 노드에 의해 규정된 접속 특성을 체크한다. 체크 룰 CONN 스테이트먼트가 실패할 경우 다음 트레이스인 300으로 진행한다.
305 : 전달 접속 ToNode NetNodeLink를 사용으로 표시한다.
306 : 다음 룰 CONN 스테이트먼트로 진행하고 다음 트레이스인 300에서 계 속 진행한다.
307 : 룰 CONN 스테이트먼트 리스트가 다 소모될 경우, 가장 좋은 트레이스 를 설정하는 400으로 진행한다. NetNodeLink에 사용 또는 미사용을 표시할 때마다, 동일한 네트 노드를 공유하는 모든 NetNodeLinks도 또한 사용 또는 미사용으로 표시된다.
400 : 가장 좋은 트레이스를 설정한다.
401 : 각 트레이스가 행해질 때 실행하는 총 특정 특성이 유지된다. 이 특성은 트레이스의 품질을 나타내도록 선택된다. 배선 접속 트레이싱에서, 이는 통상 총 네트 길이이다.
402 : 이 현재의 총합이 이전의 총합보다 더 나을 경우, 현재의 NetNode 값 을 가장 좋은 트레이스 데이터로서 NODE 스테이트먼트의 각각에 저장한다.
403 : 다른 트레이스를 수행하고, 마지막 룰 CONN 스테이트먼트의 ToNode NetNodeLink를 미사용으로 하고, NODE 스테이트먼트의 NetNodeList 포인터를 다음 NetNodeLink로 이동시키며, 다른 트레이스를 시도하기 위해 다음 트레이스인 300으로 진행한다.
500 : 이전 트레이스
501 : 부가된 클러스터 핀이 규정되는 비어 있는 NetTraceList를 스킵한다. ToNode 또는 FromNode NetTraceList가 비어 있는 동안 이전의 CONN 스테이트먼트로 진행한다.
502 : 이전의 룰 CONN 스테이트먼트가 이용가능한 경우, 현재의 ToNode NetNodeLink가 미사용으로 되며, 현재의 룰 CONN 스테이트먼트 포인터를 이전의 룰 CONN 스테이트먼트로 설정하고, 다음 트레이스인300으로 진행한다.
503 : 현재의 룰 CONN FromNode로 할당된 NetNodeLink를 미사용으로 하고 다음 NetNodeLink로 이동한다.
504 : 현재의 CONN 스테이트먼트의 FromNode NetNodeList가 다 소모될 경우 성공적인 트레이스인 600으로 진행한다.
505 : CONN 스테이트먼트의 FromNode NetNodeLink를 미사용으로 표시한 다.
506 : 다음 트레이스인 300으로 진행한다.
600 : 수행, 피드백 파일을 드라이브 라우터에 출력한다.
601 : 가장 좋은 트레이스 데이터가 저장될 경우, 전달 트레이스가 존재하 며, 602로 진행하고, 그렇지 않을 경우 트레이스는 실패한다.
602 : 각 룰 접속 기록을 처리한다. 사용되는 라우터를 지원하기 위해 적 절한 포맷의 트레이스를 출력한다.
603 : CONN 스테이트먼트 FromNode 또는 ToNode에 대해 NetNodeList가 존재할 경우, 핀 번호 및 구성 성분 명칭과 같은 특성을 리스트에 올린다.
604 : 클러스터 부가된 노드의 경우에서와 같이, CONN 스테이트먼트 FromNode 또는 ToNode에 대해 가장 좋은 NetNodeList가 존재하지 않을 경우, 핀 번호 및 구성 성분 명칭 대신에 T 또는 T1과 같은 클러스터 부가 노드를 규정하기 위해 적절한 신택스를 사용한다.
605 : 프롬 및 투 노드 사이에 경로 지정된 배선 길이를 부가하기 위해 피 드백 파일에 최소/최대 길이 제한도 또한 부가한다.
전술한 흐름도는 컴퓨터 프로그램 제품에 필수적이며, 설계 자동화 프로그램 제품의 범주에 속한다. 하나 이상의 패키지내의 칩의 내부 또는 칩간의 집적 회로의 배선에 사용되는 프로그램을 포함하는 이들 제품은 실제 사용자에 의해 집적 회로 칩 및 패키지를 자동적으로 설계하는데 일반적으로 사용된다.
본 기술 분야의 기술자라면, 이러한 프로그램 제품이 머신(예를 들면 컴퓨터)에 의해 판독가능한 프로그램 저장 장치로 수행되며, 머신(예를 들면 컴퓨터)에 의해 실행가능한 인스트럭션의 프로그램을 명백히 구현하여서, 하나 이상의 패키지내의 칩 내부 또는 칩간의 다수의 집적 회로의 배선 방법 단계를 수행하며, 본 발명의 방법을 조합하여 규정하는 첨부된 특허청구범위에서 인용되는 여러 단계로 구현할 수 있음을 충분히 알 것이다.
본 기술 분야에 통상의 지식을 가진 자라면, 이들 본 발명의 기법의 응용으로 인해, 발생가능성이 있는 에러 및 반복을 더 적게 하면서, 좀더 신뢰성 있으며 명세에 일치하는 전자 회로 및 시스템을 생산할 수 있음을 알 것이다.
본 발명에 따르면, 임의의 유형의 네트, 특히 칩 또는 더 높은 레벨의 패키지내에 포함되며, 용량성 드롭-오프 모델링 근사에 의해 제한되지 않는 네트를 지원하는 설계 자동화 시스템을 제공한다. 또한 본 발명은, 엄격한 토폴로지 및 배선 길이 제약 조건을 가하지 않으면서, n개의 확장된 클러스터 포인트에 대한 라우터 제약 조건을 지정할 것을 요구하는 설계내의 중요한 네트를 효율적으로 경로 지정한다. 또한 본 발명은, 설계의 네트내에 새로운 클러스터 포인트를 설정하기 위한 임의의 실시간 부가 및 제약 조건을 지원하는 방법을 제공한다. 또한 본 발명은, n개의 확장된 클러스터 포인트를 하나의 구성 배선으로서 취급하고, 길이 제한 또는 임의의 용량성 등가 세그먼트 길이를 과도하게 제약하지 않고 모델링되는 네트를 제공한다. 또한 본 발명은, 물리적인 설계 프로세스의 지속 시간을 감소시키기 위해 물리적인 설계 단계 동안 라우터 플래그 설계 룰 에러를 갖는다. 또한 본 발명은, 자동 라우터로 자동적으로 경로 지정되는 n개의 확장된 클러스터 포인트 제약 조건을 가져서, 고성능 카드의 배선을 간략화하고 비용을 감소시킨다.

Claims (20)

  1. 상호 접속될 다수의 노드를 포함하는 네트에 클러스터 포인트(cluster points)를 부가함으로써 하나 이상의 패키지내의 칩 내부 또는 칩간의 다수의 집적 회로의 배선을 행하는 방법 ― 상기 배선을 행하는 동안 상기 상호 접속된 노드가 물리적 제약 조건, 전기적 제약 조건, 및 잡음 제약 조건을 포함하는 시스템 요구 사항을 만족시키며, 상기 시스템 요구 사항은 배선 룰에 의해 표현됨 ― 에 있어서,
    a) 트레이스 구조(a trace structure)를 구축하는 단계 ― 상기 트레이스 구조는,
    ⅰ) 각각이 적어도 하나의 룰 노드 제약 조건을 포함하는 다수의 룰 노드와,
    ⅱ)각각이 상기 룰 노드 제약 조건을 만족시키는 제 1 특성을 갖는 네트 노드를 포함하는, 상기 룰 노드와 연관된 다수의 네트 노드 리스트와,
    ⅲ) 각각이 한 쌍의 룰 노드에 부가될 접속 제약 조건을 포함하는 다수의 룰 접속부를 포함함 ― 와,
    b) 상기 모든 룰 노드가 연결될 때까지 상기 룰 접속부의 각각에 상기 룰 노드 각각을 연속적으로 연결시키는 단계 ― 이로 인해 상기 네트가 형성됨 ― 와
    c) 상기 룰 접속 제약 조건을 상기 한 쌍의 연결된 룰 노드와 연관된 제 2 특성에 정합시키는 단계 ― 여기서,
    상기 정합이 성공할 때, 상기 룰 접속 제약 조건이 상기 한 쌍의 연결된 룰 노드에 부가되며,
    상기 정합이 성공하고 상기 한 쌍의 연결된 룰 노드중 적어도 하나의 룰 노드의 상기 네트 노드 리스트가 비어 있을 때, 적어도 하나의 클러스터 포인트가 상기 네트에 부가되고,
    상기 정합이 성공하지 않을 때, 상기 연결된 룰 노드간의 접속이 상기 배선 룰을 위반하는 것으로서 플래그됨 ― 를 포함하는 다수의 집적 회로의 배선 방법.
  2. 제 1 항에 있어서,
    상기 룰 접속부 각각은 프롬-투(from-to) 제약 조건 및 최소-최대 제약 조건을 포함하는 다수의 집적 회로의 배선 방법.
  3. 제 1 항에 있어서,
    상기 제 1 특성은 구동기, 수신기, IO 유형, 구성 성분 명칭 및 구성 성분 기능으로 구성되는 그룹으로부터 선택되는 다수의 집적 회로의 배선 방법.
  4. 제 1 항에 있어서,
    상기 제 2 특성은 배선 상호 접속 길이 및/또는 배선 상호 접속 지연을 포함하는 다수의 집적 회로의 배선 방법.
  5. 제 1 항에 있어서,
    상기 단계 c)는,
    d) 상기 룰 접속부중 첫 번째 하나를 선택하고, 프롬 특성을 상기 네트 노드 리스트내의 상기 제 1 네트 노드에 할당하며, 상기 할당된 프롬 특성을 갖는 상기 네트 노드를 사용됨으로 특징지우는 단계와,
    e) 잠재적인 상호 접속을 형성하기 위해 상기 네트 노드 리스트내의 제 1 미사용 네트 노드에 투(to) 노드를 할당하는 단계 ― 여기서,
    ⅰ) 상기 미사용 네트 노드를 발견함으로써 상기 할당이 성공할 경우, 상기 잠재적 상호 접속이 유효하게 되며, 상기 룰 접속부중 다음 하나의 룰 접속부의 상기 투 노드가 상기 네트 노드 리스트내의 상기 제 1 미사용 네트 노드에 할당되고,
    ⅱ) 상기 네트 노드 리스트내의 상기 미사용 네트 노드가 발견되지 않을 경우, 상기 할당이 실패한 것으로 간주되며, 다른 투 노드가 상기 룰 접속부중 이전의 접속부로부터 선택되고,
    ⅲ) 상기 할당이 성공할 경우, 오더링된 룰 접속부를 포함하는 룰 접속 리스트의 끝이 도달될 때까지 단계 ⅰ)이 반복되며,
    ⅳ) 상기 룰 접속 리스트의 시작 동안 상기 네트 노드 리스트내의 상기 미사용 네트 노드가 발견되지 않을 경우, 상기 룰 접속부로부터 다른 프롬 노드가 선택됨 ― 를 더 포함하는 다수의 집적 회로의 배선 방법.
  6. 제 5 항에 있어서,
    상기 단계 ⅰ)에서,
    상기 잠재적 상호 접속의 유효성은 측정된 경로 지정된 배선 특성 또는 실제적인 경로 지정된 배선 특성에 근거하는 다수의 집적 회로의 배선 방법.
  7. 제 5 항에 있어서,
    상기 단계 ⅰ) 및 상기 단계 ⅱ)는,
    상기 룰 접속 리스트내에 이용가능한 이전의 룰 접속부가 존재하지 않을 때, 상기 유효성의 실패를 기록하는 단계와,
    상기 룰 접속 리스트내의 다음 룰 접속이 이용가능하지 않을 때 상기 유효성의 성공을 기록하는 단계와,
    성공이 기록될 때, 적어도 클러스터 포인트 및 제약 조건을 상기 유효한 네트에 부가하는 단계를 더 포함하는 다수의 집적 회로의 배선 방법.
  8. 제 7 항에 있어서,
    상기 배선 룰에 의해 규정되는 클러스터 포인트가 존재하지 않을 때, 상기 유효한 네트에 부가되는 클러스터 포인트가 존재하지 않는 다수의 집적 회로의 배선 방법.
  9. 상호 접속될 다수의 노드를 포함하는 네트에 클러스터 포인트를 부가함으로써 하나 이상의 패키지내의 칩 내부 또는 칩간의 다수의 집적 회로의 배선을 행하는 방법 ― 상기 배선을 행하는 동안 상기 상호 접속된 노드가 물리적 제약 조건, 전기적 제약 조건, 및 잡음 제약 조건을 포함하는 시스템 요구 사항을 만족시키며, 상기 시스템 요구 사항은 배선 룰에 의해 표현됨 ― 에 있어서,
    a) 상기 집적 회로 칩 또는 패키지를 설계하는 단계와,
    b) 트레이스 구조를 구축하는 단계 ― 상기 트레이스 구조는,
    ⅰ) 각각이 적어도 하나의 룰 노드 제약 조건을 포함하는 다수의 룰 노드와,
    ⅱ)각각이 상기 룰 노드 제약 조건을 만족시키는 제 1 특성을 갖는 네트 노드를 포함하는, 상기 룰 노드와 연관된 다수의 네트 노드 리스트와,
    ⅲ) 각각이 한 쌍의 룰 노드에 부가될 룰 접속 제약 조건을 포함하는 다수의 룰 접속부를 포함함 ― 와,
    c) 상기 룰 노드가 모두 연결될 때까지 상기 룰 접속부의 각각에 상기 룰 노드 각각을 연속적으로 연결시키는 단계 ― 이로 인해 상기 네트가 형성됨 ― 와
    d) 상기 룰 접속 제약 조건을 상기 한 쌍의 연결된 룰 노드와 연관된 제 2 특성에 정합시키는 단계 ― 여기서,
    상기 정합이 성공할 때, 상기 룰 접속 제약 조건이 상기 한 쌍의 연결된 룰 노드에 부가되며,
    상기 정합이 성공하고 상기 한 쌍의 연결된 룰 노드중 적어도 하나의 룰 노드의 상기 네트 노드 리스트가 비어 있을 때, 적어도 하나의 클러스터 포인트가 상기 네트에 부가되고,
    상기 정합이 성공하지 않을 때, 상기 연결된 룰 노드간의 상호 접속이 상기 배선 룰을 위반하는 것으로서 플래그됨 ― 와,
    e) 이전 단계에서 판단된 바와 같이 성공적으로 정합되었던 네트의 각각에 대한 상기 부가된 클러스터 포인트 및 상기 상호 접속 제약 조건을 갖는 상기 집적 회로 칩 또는 패키지를 제조하는 단계를 포함하는 다수의 집적 회로의 배선 방법.
  10. 제 9 항에 있어서,
    상기 단계 d)는,
    a) 상기 오더링된 룰 접속부의 리스트중 첫 번째 하나를 선택하고, 프롬 특성을 상기 네트 노드 리스트내의 제 1 네트 노드에 할당하며, 상기 할당된 프롬 특성을 갖는 상기 네트 노드를 사용됨으로 플래그하는 단계와,
    b) 상기 네트 노드 리스트내의 제 1 미사용 네트 노드에 투 노드를 할당하는 단계 ― 이에 따라 잠재적인 상호 접속을 형성하게 되며,
    ⅰ) 상기 네트 리스트내의 상기 미사용 네트 노드가 발견되어서 상기 할당이 성공적으로 될 경우, 상기 잠재적 상호 접속이 유효하게 되며, 상기 룰 접속부의 다음 하나의 룰 접속부의 상기 투 노드가 상기 네트 노드 리스트내의 상기 제 1 미사용 네트 노드에 할당되고,
    ⅱ) 상기 네트 노드 리스트내의 상기 미사용 네트가 발견되지 않아서, 상기 할당이 실패하게 되는 경우, 다른 투 노드가 상기 룰 접속부중 이전의 하나의 룰 접속부로부터 선택되며,
    ⅲ) 상기 할당이 성공할 경우, 상기 접속 리스트의 두 개의 종료중 하나가 도달할 때까지 상기 단계 ⅰ)이 반복되며,
    ⅳ) 상기 룰 접속 리스트의 시작 동안 상기 네트 노드 리스트내의 상기 미사용 네트 노드가 발견되지 않을 경우, 상기 룰 접속으로부터 다른 프롬 노드가 선택됨 ― 를 더 포함하는 다수의 집적 회로의 배선 방법.
  11. 상호 접속될 다수의 노드를 포함하는 네트에 클러스터 포인트(cluster points)를 부가함으로써 하나 이상의 패키지내의 칩 내부 또는 칩간의 집적 회로의 배선을 행하는 장치 ― 상기 배선을 행하는 동안 상기 상호 접속된 노드가 물리적 제약 조건, 전기적 제약 조건, 및 잡음 제약 조건을 포함하는 시스템 요구 사항을 만족시키며, 상기 시스템 요구 사항은 배선 룰에 의해 표현됨 ― 에 있어서,
    a) 트레이스 구조를 구축하는 수단 ― 상기 트레이스 구조는,
    ⅰ) 각각이 적어도 하나의 룰 노드 제약 조건을 포함하는 다수의 룰 노드와,
    ⅱ)각각이 상기 룰 노드 제약 조건을 만족시키는 제 1 특성을 갖는 네트 노드를 포함하는, 상기 룰 노드와 연관된 다수의 네트 노드 리스트와,
    ⅲ) 각각이 한 쌍의 룰 노드에 부가될 룰 접속 제약 조건을 포함하는 다수의 룰 접속부를 포함함 ― 과,
    b) 상기 모든 룰 노드가 연결될 때까지 상기 룰 접속부의 각각에 상기 네트 룰 노드 각각을 연속적으로 연결시키는 수단 ― 이로 인해 상기 네트가 형성됨 ― 과,
    c) 상기 룰 접속 제약 조건을 상기 한 쌍의 연결된 룰 노드와 연관된 제 2 특성에 정합시키는 수단 ― 여기서,
    상기 정합이 성공할 때, 상기 룰 접속 제약 조건이 상기 한 쌍의 연결된 네트 노드에 부가되며,
    상기 정합이 성공하고 상기 한 쌍의 연결된 룰 노드중 적어도 하나의 룰 노드의 상기 네트 노드 리스트가 비어 있을 때, 적어도 하나의 클러스터 포인트가 상기 네트에 부가되고,
    상기 정합이 성공하지 않을 때, 상기 연결된 룰 노드간의 접속이 상기 배선 룰을 위반하는 것으로서 플래그됨 ― 을 포함하는 집적 회로의 배선 시스템.
  12. 제 11 항에 있어서,
    상기 룰 접속부의 각각은 프롬-투 제약 조건 및 최소-최대 제약 조건을 포함하는 집적 회로의 배선 시스템.
  13. 제 11 항에 있어서,
    상기 제 1 특성은 구동기, 수신기, IO 유형, 구성 성분 명칭 및 구성 성분 기능으로 구성되는 그룹으로부터 선택되는 집적 회로의 배선 시스템.
  14. 제 11 항에 있어서,
    상기 제 2 특성은 배선 상호 접속 길이 및/또는 배선 상호 접속 지연을 포함하는 집적 회로의 배선 시스템.
  15. 제 11 항에 있어서,
    상기 정합 수단은,
    d) 상기 룰 접속부중 첫 번째 하나를 선택하는 수단과, 프롬 특성을 상기 네트 노드 리스트내의 상기 제 1 네트 노드에 할당하며 상기 할당된 프롬 특성을 갖는 상기 네트 노드를 사용됨으로 특징지우는 수단과,
    e) 잠재적인 상호 접속을 형성하기 위해 상기 네트 노드 리스트내의 제 1 미사용 네트 노드에 투 노드를 할당하는 수단 ― 여기서,
    ⅰ) 상기 미사용 네트 노드를 발견함으로써 상기 할당이 성공할 경우, 상기 잠재적 상호 접속이 유효하게 되며, 상기 룰 접속부중 다음 하나의 룰 접속부의 상기 투 노드가 상기 네트 노드 리스트내의 상기 제 1 미사용 네트 노드에 할당되고,
    ⅱ) 상기 네트 노드 리스트내의 상기 미사용 네트 노드가 발견되지 않을 경우, 상기 할당이 실패한 것으로 간주되며, 다른 투 노드가 상기 룰 접속부중 이전의 접속부로부터 선택되고,
    ⅲ) 상기 할당이 성공할 경우, 상기 접속 리스트의 두 개의 종료중 하나가 도달할 때까지 단계 ⅰ)이 반복되며,
    ⅳ) 상기 룰 접속 리스트의 시작 동안 상기 네트 노드 리스트내의 상기 미사용 네트 노드가 발견되지 않을 경우, 상기 룰 접속부로부터 다른 프롬 노드가 선택됨 ― 를 더 포함하는 집적 회로의 배선 시스템.
  16. 제 15 항에 있어서,
    상기 잠재적 상호 접속을 유효하게 하는 수단은 측정된 경로 지정된 배선 특성 또는 실제적인 경로 지정된 배선 특성을 포함하는 집적 회로의 배선 시스템.
  17. 제 15 항에 있어서,
    상기 룰 접속 리스트내에 이용가능한 이전의 룰 접속부가 존재하지 않을 때, 상기 유효성의 실패를 기록하는 수단과,
    상기 룰 접속 리스트내의 다음 룰 접속이 이용가능하지 않을 때 상기 유효성의 성공을 기록하는 수단과,
    성공이 기록될 때, 적어도 클러스터 포인트 및 제약 조건을 상기 유효한 네트에 부가하는 수단을 더 포함하는 집적 회로의 배선 시스템.
  18. 제 17 항에 있어서,
    상기 배선 룰에 의해 규정되는 클러스터 포인트가 존재하지 않을 때, 상기 유효한 네트에 부가되는 클러스터 포인트가 존재하지 않는 집적 회로의 배선 시스템.
  19. 상호 접속될 다수의 노드를 포함하는 네트에 클러스터 포인트를 부가함으로써 하나 이상의 패키지내의 칩 내부 또는 칩간의 다수의 집적 회로의 배선을 행하는 방법 단계를 수행하기 위해 머신에 의해 실행가능한 인스트럭션 프로그램을 명백하게 구현하는 상기 머신에 의해 판독가능한 프로그램 저장 장치 ― 상기 배선을 행하는 동안 상기 상호 접속된 노드가 물리적 제약 조건, 전기적 제약 조건, 및 잡음 제약 조건을 포함하는 시스템 요구 사항을 만족시키며, 상기 시스템 요구 사항은 배선 룰에 의해 표현됨 ― 에 있어서,
    a) 트레이스 구조를 구축하는 단계 ― 상기 트레이스 구조는,
    ⅰ) 각각이 적어도 하나의 룰 노드 제약 조건을 포함하는 다수의 룰 노드와,
    ⅱ)각각이 상기 룰 노드 제약 조건을 만족시키는 제 1 특성을 갖는 네트 노드를 포함하는, 상기 룰 노드와 연관된 다수의 네트 노드 리스트와,
    ⅲ) 각각이 한 쌍의 룰 노드에 부가될 룰 접속 제약 조건을 포함하는 다수의 룰 접속부를 포함함 ― 와,
    b) 상기 모든 룰 노드가 연결될 때까지 상기 룰 접속부의 각각에 상기 룰 노드 각각을 연속적으로 연결시키는 단계와,
    c) 상기 룰 접속 제약 조건을 상기 한 쌍의 연결된 룰 노드와 연관된 제 2 특성에 정합시키는 단계 ― 여기서,
    상기 정합이 성공할 때, 상기 룰 접속 제약 조건이 상기 한 쌍의 연결된 룰 노드에 부가되며,
    상기 정합이 성공하고 상기 한 쌍의 연결된 룰 노드중 적어도 하나의 룰 노드의 상기 네트 노드 리스트가 비어 있을 때, 적어도 하나의 클러스터 포인트가 상기 네트에 부가되고,
    상기 정합이 성공하지 않을 때, 상기 연결된 룰 노드간의 접속이 상기 배선 룰을 위반하는 것으로서 플래그됨 ― 를 포함하는 프로그램 저장 장치.
  20. 상호 접속될 다수의 노드를 포함하는 네트에 클러스터 포인트를 부가함으로써 하나 이상의 패키지내의 칩 내부 또는 칩간의 다수의 집적 회로의 배선을 행하는 컴퓨터 프로그램 제품 ― 상기 배선을 행하는 동안 상기 상호 접속된 노드가 물리적 제약 조건, 전기적 제약 조건, 및 잡음 제약 조건을 포함하는 시스템 요구 사항을 만족시키며, 상기 시스템 요구 사항은 배선 룰에 의해 표현됨 ― 에 있어서,
    a) 컴퓨터가 트레이스 구조를 구축하는 수단을 실행하도록 구현된 컴퓨터 판독가능한 프로그램 코드 수단을 갖는 컴퓨터 사용가능한 매체 ― 상기 트레이스 구조는,
    ⅰ) 각각이 적어도 하나의 룰 노드 제약 조건을 포함하는 다수의 룰 노드와,
    ⅱ)각각이 상기 룰 노드 제약 조건을 만족시키는 제 1 특성을 갖는 네트 노드를 포함하는, 상기 룰 노드와 연관된 다수의 네트 노드 리스트와,
    ⅲ) 각각이 한 쌍의 룰 노드에 부가될 룰 접속 제약 조건을 포함하는 다수의 룰 접속부를 포함함 ― 와,
    b) 상기 모든 룰 노드가 연결될 때까지 상기 룰 접속부의 각각에 상기 네트 룰 노드 각각을 연속적으로 연결시키는 수단을 컴퓨터가 실행하도록 구현된 컴퓨터 판독가능한 프로그램 코드 수단을 갖는 컴퓨터 사용가능한 매체와,
    c) 상기 룰 접속 제약 조건을 상기 한 쌍의 연결된 룰 노드와 연관된 제 2 특성에 정합시키는 수단을 컴퓨터가 실행하도록 구현된 컴퓨터 판독가능한 프로그램 코드 수단을 갖는 컴퓨터 사용가능한 매체 ― 여기서,
    상기 정합이 성공할 때, 상기 룰 접속 제약 조건이 상기 한 쌍의 연결된 룰 노드에 부가되며,
    상기 정합이 성공하고 상기 한 쌍의 연결된 룰 노드중 적어도 하나의 룰 노드의 상기 네트 노드 리스트가 비어 있을 때, 적어도 하나의 클러스터 포인트가 상기 네트에 부가되고,
    상기 정합이 성공하지 않을 때, 상기 연결된 룰 노드간의 접속이 상기 배선 룰을 위반하는 것으로서 플래그됨 ― 를 포함하는 컴퓨터 프로그램 제품.
KR1019980028675A 1997-08-11 1998-07-15 다수의 집적 회로의 배선 방법 및 시스템 KR100276848B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/909,112 US6014508A (en) 1997-08-11 1997-08-11 Method of adding constrained cluster points to interconnection nets in integrated circuit chips and packages
US8/909,112 1997-08-11

Publications (2)

Publication Number Publication Date
KR19990023204A true KR19990023204A (ko) 1999-03-25
KR100276848B1 KR100276848B1 (ko) 2001-02-01

Family

ID=25426653

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980028675A KR100276848B1 (ko) 1997-08-11 1998-07-15 다수의 집적 회로의 배선 방법 및 시스템

Country Status (2)

Country Link
US (1) US6014508A (ko)
KR (1) KR100276848B1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6367055B1 (en) * 1999-04-27 2002-04-02 Hewlett-Packard Company Method and apparatus for determining certain characteristics of circuit elements
US6327697B1 (en) * 1999-06-28 2001-12-04 Sun Microsystems, Inc. Method for routing conductive paths in an integrated circuit
US6418552B1 (en) * 1999-12-10 2002-07-09 Hewlett-Packard Company Method and apparatus for optimizing trace lengths to maximize the speed of a clocked bus
US6658631B1 (en) * 2000-03-30 2003-12-02 Intel Corporation Method and system for dynamically generating resistance, capacitance, and delay table look-ups
US6484293B1 (en) * 2000-07-14 2002-11-19 Sun Microsystems, Inc. Method for determining optimal configuration for multinode bus
US7027446B2 (en) * 2001-07-18 2006-04-11 P-Cube Ltd. Method and apparatus for set intersection rule matching
US20080155486A1 (en) * 2006-12-20 2008-06-26 International Business Machines Corporation Systems and methods for reducing wiring vias during synthesis of electronic designs
US10643016B1 (en) * 2017-12-19 2020-05-05 Cadence Design Systems, Inc. System, method and computer program product for design rule awareness associated with die and package electronic circuit co-design
CN116127902B (zh) * 2023-01-28 2024-02-09 上海合见工业软件集团有限公司 基于二分图匹配的电路示意图垂直轨道分配系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5212650A (en) * 1986-09-12 1993-05-18 Digital Equipment Corporation Procedure and data structure for synthesis and transformation of logic circuit designs
US5150308A (en) * 1986-09-12 1992-09-22 Digital Equipment Corporation Parameter and rule creation and modification mechanism for use by a procedure for synthesis of logic circuit designs
US5168455A (en) * 1991-03-28 1992-12-01 Digital Equipment Corporation Procedure for incorporating timing parameters in the synthesis of logic circuit designs
US5566078A (en) * 1993-05-26 1996-10-15 Lsi Logic Corporation Integrated circuit cell placement using optimization-driven clustering
US5682321A (en) * 1994-10-05 1997-10-28 Lsi Logic Corporation Cell placement method for microelectronic integrated circuit combining clustering, cluster placement and de-clustering
US5838585A (en) * 1995-03-24 1998-11-17 Lsi Logic Corporation Physical design automation system and method using monotonically improving linear clusterization
US5729466A (en) * 1996-04-03 1998-03-17 Cadence Design Systems, Inc. Optimization multiple performance criteria by simulating the behavior of a constraint graph expanded by subgraphs derived from PWL convex cost functions
US5757653A (en) * 1996-05-16 1998-05-26 International Business Machines Corporation Method and apparatus for dynamically varying net rules

Also Published As

Publication number Publication date
US6014508A (en) 2000-01-11
KR100276848B1 (ko) 2001-02-01

Similar Documents

Publication Publication Date Title
US5036473A (en) Method of using electronically reconfigurable logic circuits
US5657241A (en) Routing methods for use in a logic emulation system
US6272668B1 (en) Method for cell swapping to improve pre-layout to post-layout timing
JP3891599B2 (ja) 集積回路レイアウト内への標準セルの自動挿入装置
US6425109B1 (en) High level automatic core configuration
US6415430B1 (en) Method and apparatus for SAT solver architecture with very low synthesis and layout overhead
US7111269B2 (en) Comparison of two hierarchical netlist to generate change orders for updating an integrated circuit layout
US5521836A (en) Method for determining instance placements in circuit layouts
US8607178B2 (en) Integrated circuit chip with repeater flops and methods for automated design of same
US8521483B1 (en) Method and apparatus for concurrent design of modules across different design entry tools targeted to single simulation
US7821849B2 (en) Configurable embedded processor
US20090271750A1 (en) Timing constraint merging in hierarchical soc designs
Case et al. Solid logic design automation
US6651232B1 (en) Method and system for progressive clock tree or mesh construction concurrently with physical design
KR100276848B1 (ko) 다수의 집적 회로의 배선 방법 및 시스템
KR100873885B1 (ko) 설계 검증 장치, 설계 검증 방법 및 cad 시스템
US6223334B1 (en) Automatic topology synthesis and optimization
US20030188278A1 (en) Method and apparatus for accelerating digital logic simulations
JP3197842B2 (ja) ネット・ルールを動的に変更するための方法および装置
JP3499673B2 (ja) プリント基板回路設計システム
US11727178B2 (en) Under test pin location driven simultaneous signal grouping and pin assignment
Graff et al. Solid logic design automation
Brady A wire-wrap design aid, written in Prolog
JPH11259555A (ja) マクロの設計方法
CN115859894A (zh) 集成电路的设计方法、中继模块数据库的构建方法及装置

Legal Events

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