KR101917916B1 - 집적 회로를 위해 높은 유연성을 갖는 클록 네트워크 아키텍처 - Google Patents

집적 회로를 위해 높은 유연성을 갖는 클록 네트워크 아키텍처 Download PDF

Info

Publication number
KR101917916B1
KR101917916B1 KR1020157014343A KR20157014343A KR101917916B1 KR 101917916 B1 KR101917916 B1 KR 101917916B1 KR 1020157014343 A KR1020157014343 A KR 1020157014343A KR 20157014343 A KR20157014343 A KR 20157014343A KR 101917916 B1 KR101917916 B1 KR 101917916B1
Authority
KR
South Korea
Prior art keywords
clock
routing
distribution
horizontal
tri
Prior art date
Application number
KR1020157014343A
Other languages
English (en)
Other versions
KR20150087256A (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 KR20150087256A publication Critical patent/KR20150087256A/ko
Application granted granted Critical
Publication of KR101917916B1 publication Critical patent/KR101917916B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/08Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices
    • H03K19/094Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices using field-effect transistors
    • H03K19/096Synchronous circuits, i.e. using clock signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • G06F17/5054
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • 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/396Clock trees
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • H03K19/1774Structural details of routing resources for global signals, e.g. clock, reset
    • G06F2217/62
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Abstract

장치는 회로 블록들(203)의 어레이(202)에 클록 네트워크(600)를 갖는 집적 회로(200)를 포함한다. 클록 네트워크는 라우팅 트랙들(400, 402, 403), 분배 스파인들(501, 502), 및 클록 리프들(601)을 포함한다. 라우팅 트랙들(400, 402, 403) 및 분배 스파인들(501, 502)은 양방향이다.

Description

집적 회로를 위해 높은 유연성을 갖는 클록 네트워크 아키텍처{CLOCK NETWORK ARCHITECTURE WITH HIGHER FLEXIBILITY FOR AN INTEGRATED CIRCUIT}
본 발명개시는 집적 회로 디바이스(IC)에 관한 것이다. 보다 구체적으로, 본 발명개시는 IC를 위한 클록 네트워크에 대한 아키텍처에 관한 것이다.
예를 들어, 필드 프로그램 가능 게이트 어레이(Field Programmable Gate Array, "FGPA")와 같은 프로그램 가능 로직 디바이스(programmable logic device, "PLD")의 클록 네트워크는 지역적 및 글로벌 클록을 이용하고 있다. 종래에는, 이러한 지역적 클록은 이러한 PLD의 "에지"에서만 구동되었고, 이러한 글로벌 클록은 이러한 PLD의 중심에서만 구동되었다. 이러한 유형의 클록 네트워크 아키텍처는 상당히 경직되었다. 그러나, PLD가 더욱 커짐에 따라, 클록 스큐 및/또는 클록 지연뿐만 아니라, 증가된 타이밍 불확실성은 더욱 문제가 되었고, 이러한 경직성은 이러한 문제들 중 하나 이상을 더욱 문제가 있게 다루었다.
따라서, 이러한 문제들 중 하나 이상을 줄이기 위해 더 많은 유연성을 갖는 IC를 제공하는 것이 바람직하고 유용하다.
장치는 회로 블록들의 어레이에 클록 네트워크를 갖는 집적 회로를 포함한다. 클록 네트워크는 라우팅 트랙들, 분배 스파인(distribution spine)들, 및 클록 리프(clock leaf)들을 포함한다. 라우팅 트랙들 및 분배 스파인들은 양방향이다.
이러한 장치에서, 다음 중 하나 이상은 사실일 수 있다. 라우팅 트랙들 및 분배 스파인들은 회로 블록들의 경계에서 세그먼트화될 수 있다. 라우팅 트랙들은 수평 및 수직 라우팅 트랙들을 포함할 수 있다. 분배 스파인들은 수평 및 수직 분배 스파인들을 포함할 수 있다. 수직 분배 스파인들은 수평 분배 스파인들에 각각 결합된 선택 가능한 지연을 포함할 수 있다. 리프들의 세트가 회로 블록들 중 하나의 회로 블록 내의 분배 스파인들 중 수평 분배 스파인에 결합되어, 수평 분배 스파인으로부터의 클록 신호를 리프들의 세트에 제공할 수 있고; 로컬 게이팅이 수평 분배 스파인을 통하지 않고 클록 신호를 리프들의 상기 세트에 제공하도록 상호 접속 타일이 구성될 수 있다. 분배 스파인들의 교차점들은 클록 루트(root)의 풀(pool)을 제공할 수 있다. 회로 블록들은 프로그램 가능 자원들의 패브릭 서브 영역들일 수 있고, 회로 블록들은 입력/출력 블록들 및 멀티 기가비트 트랜시버 블록들에 결합되도록 구성될 수 있다. 분배 스파인들의 교차점들은 프로그램 가능 자원들의 패브릭 서브 영역들에 위치될 수 있다. 장치는 분배 스파인들과 연관된 지연들을 더 포함할 수 있, 상기 지연들은 점진적인 지연을 제공하기 위해 선택적으로 이용 가능하다. 장치는 클록 리프들과 연관된 지연들을 더 포함할 수 있고, 상기 지연들은 회로 블록들 중 인접한 것들 사이의 스큐 불연속성을 확산시키기 위해 선택적으로 이용 가능하다. 분배 스파인들은 클록 리프들 앞의 클록 트리의 일부분에 대해 세그먼트 가능하고 양방향일 수 있다. 분배 스파인들은 낮은 스큐 클록 네트워크 또는 낮은 인젝션(injection) 클록 네트워크 중 어느 하나에 대해 결합될 수 있다.
앞서 기술된 바와 같은 제 1 및 제 2 집적 회로 다이를 포함하는 멀티 다이 시스템이 또한 개시된다. 제 1 집적 회로 다이는 제 1 클록 라우팅 자원들의 제 1 네트워크를 갖고, 제 1 클록 라우팅 자원들의 제 1 라우팅 트랙이 제 1 집적 회로 다이의 클록 소스를 제 1 클록 라우팅 자원들의 제 2 라우팅 트랙에 결합시킨다. 제 2 집적 회로 다이는 제 2 클록 라우팅 자원들의 제 2 네트워크를 갖는다. 제 2 클록 라우팅 자원들의 제 3 라우팅 트랙이 제 2 라우팅 트랙에 결합된다. 회로 설계의 제 1 루트가 제 1 라우팅 트랙 및 제 2 라우팅 트랙을 거쳐 클록 소스에 결합된다. 회로 설계의 제 2 루트가 제 1 라우팅 트랙, 제 2 라우팅 트랙, 및 제 3 라우팅 트랙을 거쳐 클록 소스에 결합된다. 제 1 루트는 제 1 집적 회로 다이 상에 위치되고, 제 2 루트는 제 2 집적 회로 다이 상에 위치된다.
이러한 멀티 다이 시스템에서, 다음 중 하나 이상은 사실일 수 있다. 제 1 루트는 제 1 클록 라우팅 자원들의 제 1 분배 스파인들 중 제 1 분배 스파인과 제 2 라우팅 트랙의 교차점에 위치될 수 있다. 제 2 루트는 제 2 클록 라우팅 자원들의 제 2 분배 스파인들 중 제 2 분배 스파인과 제 3 라우팅 트랙의 교차점에 위치될 수 있다. 일부 시스템에서, 제 1 분배 스파인들이나 제 2 분배 스파인들 모두 제 1 집적 회로 다이와 제 2 집적 회로 다이 사이의 다이 대 다이(die-to-die) 라우팅에 대하여 결합되지 않다.
다른 장치에서, 집적 회로 다이는 클록 라우팅 자원들의 네트워크 및 클록 소스를 갖는다. 회로 설계는 클록 도메인의 루트를 갖는다. 클록 라우팅 자원들의 라우팅 트랙이 클록 소스 및 루트를 결합시킨다. 클록 라우팅 자원들의 제 1 분배 스파인이 라우팅 트랙에 결합된다. 클록 라우팅 자원들의 제 2 분배 스파인이 제 1 분배 스파인 및 클록 소스를 결합시킨다. 제 2 분배 스파인은 클록 신호에 피드백 패스를 제공한다.
또 다른 장치에서, 제 1 집적 회로 다이는 제 1 클록 라우팅 자원들의 제 1 네트워크를 갖는다. 제 1 클록 라우팅 자원들의 제 1 라우팅 트랙이 제 1 집적 회로 다이의 클록 소스 및 제 1 클록 라우팅 자원들의 제 2 라우팅 트랙을 결합시킨다. 제 2 집적 회로 다이는 제 2 클록 라우팅 자원들의 제 2 네트워크를 갖는다. 제 2 클록 라우팅 자원들의 제 3 라우팅 트랙이 제 2 라우팅 트랙에 결합된다. 제 1 루트가 제 1 라우팅 트랙 및 제 2 라우팅 트랙을 거쳐 클록 소스에 결합된다. 제 2 루트가 제 1 라우팅 트랙, 제 2 라우팅 트랙 및 제 3 라우팅 트랙을 거쳐 클록 소스에 결합된다. 제 1 루트는 제 1 집적 회로 다이 상에 위치된다. 제 2 루트는 제 2 집적 회로 다이 상에 위치된다.
첨부 도면들은 예시적인 블록 및 회로 다이어그램을 도시한다. 그러나, 첨부 도면들은 도시된 예들을 제한하기 위해서 취해져서는 안 되며, 단지 설명과 이해를 위한 것으로 취해져야 한다.
도 1은 예시적인 컬럼형(columnar) 필드 프로그램 가능 게이트 어레이 아키텍처를 도시하는 간략화된 블록도이다.
도 2는 예시적인 집적 회로를 도시하는 블록도이다.
도 3은 패브릭 서브 영역(fabric sub-region; FSR)의 서브세트에 인스턴스화된(instantiated) 예시적인 회로의 묘사를 갖는 도 2의 블록도이다.
도 4는 클록 소스로부터 루트로의 예시적인 경로의 묘사를 갖는 도 3의 블록도이다.
도 5는 회로 클라우드를 위한 예시적인 수직 및 수평 분배 스파인(distribution spine)의 묘사를 갖는 도 4의 블록도이다.
도 6은 회로 네트워크의 예시적인 클록 리프(clock leaf)의 묘사를 갖는 도 5의 블록도이다.
도 7은 도 2의 집적 회로를 위한 예시적인 클록 라우팅 계층 구조를 도시하는 블록도이다.
도 8a 및 도 8b는 FSR의 어레이의 개개의 예시적인 부분을 도시하는 블록/회로도이다.
도 9 내지 도 20은 멀티 다이 시스템을 위해 도 1 내지 도 8b의 상기 설명에 따라 개개의 예시적인 클록 네트워크를 도시하는 블록도이다.
도 21a 및 도 21b(본 명세서에서 함께 도 21로서 언급됨)는 FSR을 위한 예시적인 클록 네트워크를 도시하는 클록/블록도이다.
도 22는 클록 네트워크의 예시적인 "리프"를 도시하는 클록/블록도이다.
도 23은 FSR의 예시적인 부분을 도시하는 블록도이다.
도 24는 상호 접속 타일의 예시적인 부분을 도시하는 회로도이다.
다음의 설명에서는, 특정 예들의 보다 완전한 설명을 제공하기 위해 수많은 특정 상세한 설명들이 기술된다. 하지만, 하나 이상의 예들은 아래에서 주어진 모든 특정 상세한 설명들 없이 실시될 수 있다는 것이 본 발명분야의 당업자에게 분명해져야 한다. 다른 경우들에, 하나 이상의 예들을 애매모호하게 하지 않도록, 잘 알려진 특징들은 상세하게 기술되지 않았다. 용이한 예시를 위해, 상이한 도면들에서 동일한 항목들을 가리키기 위해 동일한 번호 라벨들이 이용되지만, 대안적인 실시예들에서, 이 항목들은 상이할 수 있다.
몇몇 도면들에서 예시적으로 도시된 예들을 설명하기 전에, 일반적인 소개가 이해를 촉진시키기 위해 제공된다.
앞서 기술된 바와 같이, 종래의 클록 네트워크 아키텍처는 지역적 및 글로벌 클록을 위해 전문화된 네트워크를 이용하였다. 지역적 클록은 PLD 프로그램 가능 자원의 어레이의 바깥 에지에서 구동되도록 제한되었고, 글로벌 클록은 이러한 어레이의 중심에서 구동되도록 제한되었다.
위의 일반적인 이해를 유념하면서, 다양한 예시적인 클록 네트워크 아키텍처가 아래에 설명된다. 아래에 설명된 바와 같이, 지역적 및 글로벌 클로킹의 기능이 결합되어 프로그램 가능 자원에 인스턴스화된 회로 설계에 클록 네트워크를 맞추기 위해서 사용자가 클록 자원 풀(pool)로부터 선택하는 것을 허용하였다. 이것은 프로그램 가능 자원에 인스턴스화된 회로 설계가 주문형 회로를 더욱 많이 닮도록 허용한다. 다시 말해서, 예를 들어, 루트(root)는 집적 회로 다이의 중심, 또는 이러한 집적 회로 다이의 회로 자원의 레이아웃의 중심, 또는 집접 회로 다이에 특유한 임의의 다른 이러한 중심 위치에 있을 필요는 없지만, 프로그램 가능 자원에 인스턴스화된 회로 설계에 상대적으로 위치할 수 있다.
보다 구체적으로, 사용자는 이러한 클록 자원의 풀에 대하여 클록 분배 네트워크의 루트를 배치할 위치를 선택할 수 있다. 이것은 루트가 집적 회로에 인스턴스화된 회로 설계 내의 거의 모든 곳에 배치되도록 허용하고, 따라서 집적 회로 자체의 루트 위치에 얽매이지 않는다. 일반적으로, 클록 분배 네트워크의 루트는 아래에 추가로 상세히 기술되는 바와 같이, 클록 네트워크 내의 어디에나 배치될 수 있다. 이러한 배치를 제공하기 위해서, 세그먼트화되고 버퍼링된 클록 트랙이 제공된다. 클록 분배 스파인의 선택적 지연 요소는 적어도 대략 널 아웃(null out)시키거나 클록 스큐("스큐")를 균등하게 하는데 이용될 수 있다. 인접한 클록 세그먼트들 간의 스큐를 감소시키기 위해서, 선택적 지연 요소들이 홀드 타이밍("홀드") 문제를 완화시키거나 피하는데 이용될 수 있다.
설명된 회로들 중 하나 이상이 특정 유형의 IC를 이용하여 예시되기 때문에, 이러한 IC의 상세산 설명이 아래에 제공된다. 그러나, 프로그램 가능 자원의 어레이를 갖는 다른 유형의 IC들이 본 명세서에 설명된 예들 중 하나 이상으로부터 이익을 얻을 수 있다는 것을 이해해야 한다.
프로그램 가능 로직 디바이스(Programmable logic device; "PLD")는 특정한 로직 기능을 수행하도록 프로그램될 수 있는 잘 알려져 있는 유형의 집적 회로이다. 하나의 유형의 PLD, 즉 필드 프로그램 가능 게이트 어레이(field programmable gate array; "FPGA")는 일반적으로 프로그램 가능 타일들의 어레이를 포함한다. 이러한 프로그램 가능 타일들은, 예를 들어, 입력/출력 블록(input/output block; "IOB"), 구성 가능 로직 블록(configurable logic block; "CLB"), 전용 랜덤 액세스 메모리 블록(dedicated random access memory block; "BRAM"), 승산기, 디지털 신호 프로세싱 블록(digital signal processing block; "DSP"), 프로세서, 클록 관리자, 지연 로크 루프(delay lock loop; "DLL") 등을 포함한다. 본 명세서에서 이용되는 바와 같이, "포함하다"와 "포함하는"은 제한 없이 포함한다는 것을 의미한다.
각각의 프로그램 가능 타일은 일반적으로 프로그램 가능 상호 접속과 프로그램 가능 로직 모두를 포함한다. 프로그램 가능 상호 접속은 일반적으로 프로그램 가능 상호 접속점(programmable interconnect point; "PIP")에 의해 상호 접속된 다양한 길이의 방대한 수의 상호 접속 라인들을 포함한다. 프로그램 가능 로직은, 예를 들어, 함수 생성기, 레지스터, 연산 로직 등을 포함할 수 있는 프로그램 가능 요소들을 이용하여 사용자 설계의 로직을 구현한다.
프로그램 가능 상호 접속 및 프로그램 가능 로직은 일반적으로 프로그램 가능 요소들을 구성시키는 방법을 정의하는 내부 구성 메모리 셀들에 구성 데이터의 스트림을 로딩시킴으로써 프로그램된다. 구성 데이터는 메모리(예컨대, 외부 PROM)로부터 판독될 수 있거나, 또는 외부 디바이스에 의해 FPGA에 기록될 수 있다. 그런 다음, 개별적인 메모리 셀들의 총체적 상태들은 FPGA의 기능을 결정한다.
또 다른 유형의 PLD는 복합 프로그램 가능 로직 디바이스(Complex Programmable Logic Device) 즉, CPLD이다. CPLD는 상호 접속 스위치 매트릭스에 의해 입력/출력(input/output; "I/O") 자원들에 함께 연결된 두 개 이상의 "기능 블록들"을 포함한다. CPLD의 각각의 기능 블록은 프로그램 가능 로직 어레이(Programmable Logic Array; "PLA") 및 프로그램 가능 어레이 로직(Programmable Array Logic; "PAL") 디바이스들에서 이용된 것과 유사한 투 레벨(two-level) AND/OR 구조를 포함한다. CPLD에서, 구성 데이터는 일반적으로 비휘발성 메모리에 온 칩(on-chip) 저장된다. 몇몇 CPLD들에서, 구성 데이터는 비휘발성 메모리에 온 칩 저장되고, 그런 다음, 초기 구성(프로그래밍) 시퀀스의 일부로서 휘발성 메모리에 다운로딩된다.
이러한 프로그램 가능 로직 디바이스들("PLD") 모두의 경우, 디바이스의 기능은 그 목적을 위해 디바이스에 제공된 데이터 비트들에 의해 제어된다. 데이터 비트들은 휘발성 메모리(예컨대, FPGA 및 몇몇의 CPLD의 경우와 같은, 정적 메모리 셀), 비휘발성 메모리(예컨대, 몇몇의 CPLD의 경우와 같은, FLASH 메모리), 또는 임의의 다른 유형의 메모리 셀에 저장될 수 있다.
다른 PLD들은 디바이스 상의 다양한 요소들을 프로그램 가능하게 상호 접속하는, 금속층과 같은, 프로세싱층을 적용시킴으로써 프로그램된다. 이러한 PLD는 마스크 프로그램 가능 디바이스로서 알려져 있다. PLD는 또한, 예컨대, 퓨즈 또는 안티퓨즈 기술을 이용하는 다른 방법들로 구현될 수 있다. 용어 "PLD" 및 "프로그램 가능 로직 디바이스"는 이러한 예시적인 디바이스들이 포함될 수 있을 뿐만 아니라, 오직 부분적으로 프로그램 가능한 디바이스들을 포함하지만 이들로 제한되는 것은 아니다. 예를 들어, 하나의 유형의 PLD는 하드 코딩된 트랜지스터 로직을 프로그램 가능하게 상호 접속하는 프로그램 가능 스위치 패브릭 및 하드 코딩된 트랜지스터 로직의 조합을 포함한다.
앞서 언급한 바와 같이, 진보된 FPGA는 어레이에 여러 상이한 유형들의 프로그램 가능 로직 블록들을 포함할 수 있다. 예를 들어, 도 1은 멀티 기가비트 트랜시버(multi-gigabit transceiver; "MGT")(101), 구성 가능 로직 블록(configurable logic block; "CLB")(102), 랜덤 액세스 메모리 블록(random access memory block; "BRAM")(103), 입력/출력 블록(input/output block; "IOB")(104), 구성 및 클록 로직(configuration and clocking logic; "CONFIG/CLOCKS")(105), 디지털 신호 프로세싱 블록(digital signal processing block; "DSP")(106), (예컨대, 구성 포트 및 클록 포트와 같은) 특수화된 입력/출력 블록(input/output block; "I/O")(107), 및 디지털 클록 관리자, 아날로그-디지털 컨버터, 시스템 모니터링 로직 등과 같은 기타 프로그램 가능 로직(108)을 포함한 방대한 수의 상이한 프로그램 가능 타일들을 포함하는 FPGA 아키텍처(100)를 도시한다. 일부 FPGA는 또한 전용 프로세서 블록("PROC")(110)을 포함한다.
일부 FPGA에서, 각각의 프로그램 가능 타일은 각각의 인접한 타일의 대응하는 상호 접속 요소에 대한 표준화된 접속을 갖는 프로그램 가능 상호 접속 요소("INT")(111)를 포함한다. 그러므로, 취해진 프로그램 가능 상호 접속 요소들은 도시된 FPGA에 대한 프로그램 가능 상호 접속 구조를 함께 구현한다. 도 1의 상단부에 포함된 예들에 의해 도시된 바와 같이, 프로그램 가능 상호 접속 요소(111)는 또한 동일 타일 내의 프로그램 가능 로직 요소에 대한 접속을 포함한다.
예를 들어, CLB(102)는 사용자 로직을 구현하도록 프로그램될 수 있는 구성 가능 로직 요소("CLE")(112) 및 단일 프로그램 가능 상호 접속 요소("INT")(111)를 포함할 수 있다. BRAM(103)은 하나 이상의 프로그램 가능 상호 접속 요소들에 더하여 BRAM 로직 요소("BRL")(113)를 포함할 수 있다. 일반적으로, 타일에 포함된 상호 접속 요소들의 수는 타일의 높이에 좌우된다. 도시된 예에서, BRAM 타일은 다섯 개의 CLB와 동일한 높이를 가지지만, 다른 수들(예컨대, 네 개)이 또한 이용될 수 있다. DSP 타일(106)은 적절한 수의 프로그램 가능 상호 접속 요소들에 더하여 DSP 로직 요소("DSPL")(114)를 포함할 수 있다. IOB(104)는, 예를 들어, 프로그램 가능 상호 접속 요소(INT)(111)의 하나의 인스턴스에 더하여 입력/출력 로직 요소("IOL")(115)의 두 개의 인스턴스를 포함할 수 있다. 본 발명분야의 당업자에게 자명한 바와 같이, 일반적으로 I/O 로직 요소(115)에 접속된 실제의 I/O 패드들은 입력/출력 로직 요소(115)의 영역으로 국한되지 않는다.
도시된 예에서, (도 1에서 도시된) 다이의 중심 근처의 수평 영역은 구성 로직, 클록 로직, 및 기타 제어 로직을 위해 이용된다. 이러한 수평 영역 또는 컬럼(column)으로부터 연장된 수직 컬럼들(109)은 FPGA의 폭에 걸쳐 클록 및 구성 신호들을 분배하는데 이용된다.
도 1에서 도시된 아키텍처를 활용한 일부 FPGA들은 FPGA의 대부분을 구성하는 정규의 컬럼형 구조를 분열시키는 추가적인 로직 블록들을 포함한다. 추가적인 로직 블록들은 프로그램 가능 블록들 및/또는 전용 로직일 수 있다. 예를 들어, 프로세서 블록(110)은 CLB 및 BRAM의 여러 컬럼들에 걸쳐 있다.
도 1은 단지 예시적인 FPGA 아키텍처를 도시하려고 의도된 것임을 주목하라. 예를 들어, 로우(row) 내의 로직 블록들의 수, 로우들의 상대적 폭, 로우들의 수 및 순서, 로우들 내에 포함된 로직 블록들의 유형, 로직 블록들의 상대적 크기, 및 도 1의 상단부에 포함된 상호 접속/로직 구현들은 단순한 예시에 불과하다. 예를 들어, 실제의 FPGA에서는, 일반적으로 사용자 로직의 효율적인 구현을 촉진시키기 위해, CLB가 나타나는 곳이라면 어디라도 CLB들의 하나 보다 많은 인접한 로우가 포함되지만, 인접 CLB 로우들의 수는 FPGA의 총 크기에 따라 달라진다.
도 2는 예시적인 집적 회로(200)를 도시하는 블록도이다. 이러한 집적 회로(200)는 도 1의 FPGA(100), 또는 추가로 상세하게 아래에 기술되는 바와 같은, 프로그램 가능 로직 자원의 어레이를 갖는 다른 집적 회로일 수 있다.
집적 회로(200)는 프로그램 가능 자원의 N x M 어레이(202)를 포함한다. 프로그램 가능 자원은 CLB, 프로그램 가능 로직 어레이 블록(programmable logic array block, "LABS"), 또는 다른 형태의 패브릭 서브 영역("FSR")(203)을 포함할 수 있다. 각각의 FSR(203)은 대략 동일한 높이 및 폭일 수 있고, 동일한 세트의 회로 자원을 포함할 수 있으며, 즉, FSR들(203)은 서로 반복될 수 있다.
FSR들(203)의 이러한 어레이(202)는 기가비트 트랜시버(gigabit transceiver, "GT")(205)의 어레이(201)에 의해 상부 및 하부가 브래킷될 수 있고, IOB들(206)의 어레이(204)에 의해 오른쪽 및 왼쪽이 브래킷될 수 있고, 그 반대의 경우도 가능하다. 어레이들(201 및 204)은 집적 회로(200)의 일부분을 형성할 수 있다. IOB(206)는 도 1의 IOB(104)일 수 있고, 예를 들어, GT(205)는 도 1의 MGT(101)일 수 있다. 어레이들(201, 202, 및 204)에 대해 특정 크기가 예시적으로 도시되었지만, 이러한 어레이들에 대해 이런 크기 또는 다른 크기가 이용될 수 있다.
도 3은 FSR(203)의 서브세트에 인스턴스화된 회로("회로 클라우드")(300)를 일반적으로 도시하는 도 2의 블록도이다. 회로 클라우드(300)는 임의의 모양의 로직 클라우드 또는 회로 설계일 수 있다. 더욱이, IOB(206)는 일반적으로 클록 소스 노드("클록 소스")(301)를 도시한다. 회로 클라우드(300)의 클록 로드 위치는 클록 소스(301)와 함께 식별될 수 있다. 회로 클라우드(300)의 클록 로드 위치를 식별함으로써, 클록 네트워크 루트("루트")(401)는 이러한 회로 클라우드(300)의 클록 분배 네트워크의 중심에 가깝게 위치할 수 있다. 일반적으로 별표로 표시된 바와 같이, 루트(401)는 회로 클라우드(300)의 경계 내에 있을 수 있다.
어레이(202)는, 예를 들어, 클록 리프 및 클록 트랙을 포함하는 를록 네트워크(600)와 같은, 클록 네트워크를 가질 수 있다. 두 종류의 클록 트랙이 있는데, 즉, 수평 및 수직 클록 분배 스파인("분배 스파인"), 및 수평 및 수직 클록 라우팅 트랙("라우팅 트랙")이 있다.
도 4를 참조하면, 클록 소스(301)로부터 루트(401)까지의 예시적인 경로(400)를 도시하는 도 3의 블록도가 도시된다. 경로(400)는 하나 이상의 수직 라우팅 트랙(402), 및/또는 하나 이상의 수평 라우팅 트랙(403)으로 구성될 수 있고, 경로(400)는 라우팅 트랙(400)으로서 언급될 수 있다. 예에서, 라우팅 트랙들(402 및 403)은 FSR들(203)의 경계에서 세그먼트화되고, 이러한 라우팅 트랙들(402 및 403)은 양방향이다. 이 예에서, 경로(400)가 수평 방향에서 네 개의 FSR들(203)로 확장되고 수직 방향으로 두 개의 FSR들(203)로 확장됨에 따라, 네 개의 수평 라우팅 트랙 세그먼트들이 라우팅 트랙(402)을 제공하는데 이용될 수 있고, 두 개의 수직 라우팅 트랙 세그먼트들이 라우팅 트랙(403)을 제공하는데 이용될 수 있다. 다른 실시예들에서, 상이한 수의 라우팅 트랙 세그먼트가 클록 소스로부터 클록 네트워크 루트까지의 경로를 제공하는데 이용될 수 있다.
라우팅 트랙들(402 및 403)은 클록 소스(301)로부터 임의의 하나 이상의 수평 및 수직 분배 스파인(502) 교차점까지의 경로(400)를 제공하는데 이용될 수 있는 전용 클록 자원이다. 일례에서, FSR(203)마다 두 개의 이러한 스파인 교차점이 있다. 그러나, 다른 실시예들에서, FSR(203)마다 두 개의 스파인 교차점보다 작거나 많은 스파인 교차점이 제공될 수 있다.
요약하기 위해서, 라우팅 트랙들(402 및/또는 403)과 같은 라우팅 트랙들은 회로 클라우드(300)와 같은 회로 설계의, 루트(401)와 같은 분배 클록 네트워크 루트에, 하나 이상의 전용 클록 자원들을 이용하여, 클록 신호를 라우팅하는데 이용될 수 있다. 일반적으로, 회로 설계의 클록 네트워크 루트는 클록이 가장 가까운 공통 노드의 관점으로부터 발산하는 위치이다. 클록 소스(301)로부터 회로 클라우드(300)의 루트(401)까지의 라우팅을 가능하게 함으로써, 임의의 수 및 임의의 모양의 로직 클라우드에 대한 클록 네트워크는 이러한 로직 클라우드의 클록 네트워크에 일반적으로 "중심이 있는" 클록 노드를 가질 수 있다. 루트(401)로 라우팅을 제공하는 능력은 스큐의 감소를 용이하게 하고, 클록 분배 네트워크 내의 스큐가 균등하게 되거나, 감소되거나, 널 아웃되도록 허용한다. 예를 들어, 클록 신호가 클록 네트워크의 다른 부분으로 발산하는 공통 클록 루트 노드의 정확한 위치를 중심적으로 찾아냄으로써, 이러한 클록 네트워크를 통한 이러한 클록 신호의 전파의 최대 지연량이 감소될 수 있다.
노드가 라우팅 트랙, 분배 스파인, 및 리프의 교차점을 일반적으로 나타내는데 이용될 수 있긴 하지만, 이러한 교차점은 반드시 직접 금속 교차점을 의미하는 노드인 것이 아니라, 오히려 아래에 추가로 상세히 기술되는 바와 같이, 두 개의 금속 또는 다른 전도성 라인을 선택적으로 결합하기 위한 회로를 포함할 수 있다. 더욱이, 연속적인 라인이 라우팅 트랙 및 분배 스파인을 일반적으로 나타내는데 이용되긴 하지만, 이러한 라우팅 트랙 및 분배 스파인은 아래에 추가로 상세히 기술되는 바와 같이, 회로에 의해 각각 서로 결합되는 라우팅 트랙 및/또는 분배 스파인의 세그먼트들에 의해 형성될 수 있다.
분배 스파인으로부터 라우팅 트랙을 분리시킴으로써, 라우팅 트랙은 더욱 적은 스큐 민감성이 있을 수 있다. 예를 들어, 라우팅 트랙은 레이아웃에서 더욱 적은 공간을 이용하기 위해서 더욱 얇고 좁은 금속 라인을 이용하여 형성될 수 있다. 더욱이, 분배 스파인으로부터 라우팅 트랙을 분리시킴으로써, 소프트웨어 배치 알고리즘은 단순화될 수 있는데, 왜냐하면 이러한 소프트웨어 배치 알고리즘이 라우팅/분배 쌍으로 이러한 이러한 자원을 다룰 수 있기 때문이다. 그러나, 다른 실시예에서, 동일한 자원 유형이 라우팅 트랙 및 분배 스파인 양자 모두에 대해, 즉, 이러한 기능들 모두에 대해 이용될 수 있다.
클록 분배 서브넷 또는 클록 도메인의 루트는 회로 클라우드의 파라미터들을 충족시키도록 선택된 가상 점일 수 있다. 이러한 루트는 이러한 클록 분배 서브넷이 팬 아웃(fan out)하는 중심 위치일 수 있다. 따라서, 루트에 대한 최악의 경우는 클록 트리 또는 클록 분배 서브넷에서 임의의 두 개의 패스(path)에 대한 가장 가까운 공통 노드일 수 있다. 하나 이상의 라우팅 트랙들은 클록 소스 노드로부터 분배 스파인의 하나 이상의 교차점들로 연장될 수 있다. 회로 클라우드의 루트 위치는 클록 스큐를 감소시키거나 최소화하기 위해 결정될 수 있다. 예를 들어, 루트 위치는 클록 스큐를 최소화하기 위한 최적의 위치로서 결정될 수 있다. 하나 이상의 라우팅 트랙들은 적어도 하나의 분배 스파인 교차점과의 교차를 위해 회로 클라우드의 클록 네트워크 루트에 클록 소스를 라우팅하는데 이용될 수 있다. 라우팅 트랙들은 루트에 클록 소스를 라우팅하는데 이용되는 전용 클록 트랙이고, 분배 스파인은 루트로부터 리프를 거쳐 를록 로드에 클록 신호를 분배하기 위한 낮은 스큐 클록 자원이다. 이런 라인들을 따라, 다수의 클록 소스 노드들은 이러한 클록 소스 노드로부터 이러한 교차점으로 연장되는 다수의 라우팅 트랙들을 이용하여 분배 스파인의 다수의 교차점들에 결합될 수 있다.
도 5를 참조하면, 회로 클라우드(300)를 위한 예시적인 수직 및 수평 분배 스파인을 도시하는 도 4의 블록도가 도시된다. 루트(401)에 대한 경로(400)는 수직 분배 스파인(501)과 교차한다. 다시 말해서, 루트(401)로부터, 클록 신호는 수직 분배 스파인(501)을 이용하여 수직적으로 분배될 수 있다. 도 5의 예에서, 수직 분배 스파인(501)은 네 개의 인접한 FSR들(203)을 통해 연장된다. 사실상, 이 예에서, 회로 클라우드(300)가 수직 방향에서 네 개의 FSR들로 연장됨에 따라, 수직 분배 스파인(501)을 제공하는데 이용되는 네 개의 수직 분배 스파인 세그먼트가 있다. 이런 라인들을 따라, 하나 이상의 수직 분배 스파인 세그먼트들이 수직 분배 스파인을 제공하는데 이용될 수 있다. 수평 및 수직 양자 모두의 분배 스파인들은 FSR들(203)의 경계에서 세그먼트화된다. 더욱이, 분배 스파인은 아래에서 추가로 상세히 기술되는 바와 같이, 양방향이다.
도시된 예에서, 수직 분배 스파인(501)은 네 개의 수평 분배 스파인들(502-1 내지 502-1)("분배 스파인(502)")과 교차한다. 더욱 많거나 적은 수평 분배 스파인들(502)이 다른 실시예들에 이용될 수 있다. 분배 스파인(502-1)은 회로 클라우드(300)의 대응하는 부분이 연장되는 FSR들(203)에 대응하는 세 개의 수평 분배 스파인 세그먼트들로 형성되고; 분배 스파인(502-2)은 회로 클라우드(300)의 대응하는 부분이 연장되는 FSR들(203)에 대응하는 네 개의 수평 분배 스파인 세그먼트들로 형성되고; 분배 스파인(502-3)은 회로 클라우드(300)의 대응하는 부분이 연장되는 FSR들(203)에 대응하는 다섯 개의 수평 분배 스파인 세그먼트들로 형성되며; 분배 스파인(502-4)은 회로 클라우드(300)의 대응하는 부분이 연장되는 FSR들(203)에 대응하는 네 개의 수평 분배 스파인 세그먼트들로 형성된다.
수직 분배 스파인(501)을 이용하여 분배된 클록 신호의 수직 스큐를 최소화하거나 감소시키기 위해서, 선택적 지연(511)이 이용될 수 있다. 이러한 지연은 수직 분배 스파인과 교차하는 수평 분배 스파인의 관점에서, 즉, 이 예에서 수직 분배 스파인(501)과 교차하는 수평 분배 스파인(502)의 관점에서, 수직 지연을 균등하게 하기 위해서 프로그램에 따라서 설정될 수 있다. 이 예시적인 구조에서, 수직 스파인(501)에 대한 수평 분배 스파인들(502)의 네 개의 교차점들(401)이 있고, 이 네 개의 교차점들(401) 중 하나는 별표로 표시된 바와 같은 루트("루트(401)")이다. 루트(401)는 수직 스큐를 널 아웃하도록 적어도 시도하기 위해서 최대 지연이 추가된다. 루트(401)에 가장 가까운 교차점(401)은 그 다음의 최대 지연량이 추가되고, 이런 식으로, 루트(401)로부터 가장 먼 교차점(401)은 최소 지연량이 추가된다. 다시 말해서, 수평 분배 스파인(502-2)은 최대 지연량이 추가되고, 여기서 수평 분배 스파인(502-2)과 연관된 지연(511)은 2와 같은 단위 간격 지연을 갖고; 수평 분배 스파인들(502-1 및 502-3)은 그 다음의 최대 지연량이 추가되고, 여기서 이러한 수평 분배 스파인들과 연관된 지연(511)은 1과 같은 단위 간격 지연을 가지며; 수평 분배 스파인(502-4)은 최소 지연량이 추가되고, 여기서 수평 분배 스파인(502-4)과 연관된 지연(511)은 0과 같은 단위 간격 지연을 갖는다. 즉, 어떠한 지연도 추가되지 않는다. 일반적으로, 지연은 루트에서 추가될 수 있고, 하나 이상의 후속 교차 노드에서 이러한 루트로부터 떨어진 임의의 방향으로 계속해서 감소될 수 있다.
수직 분배 스파인(501)의 수직 세그먼트들의 일부분(505)이 회로 클라우드(300)의 클록 도메인 둘레(504)를 넘어 연장될 수 있다. 마찬가지로, 수평 분배 스파인(502)의 수평 세그먼트들의 일부분(503)이 회로 클라우드(300)의 둘레(504)를 넘어 연장될 수 있다.
도 6은 회로 네트워크의 예시적인 클록 리프("리프")(601)를 도시하는 도 5의 블록도이다. 리프(601)는 수평 분배 스파인들(502)의 수평 세그먼트들과 교차한다. FSR(203) 내의 일부 리프들(601)의 일부분은 회로 클라우드(300)의 둘레(504) 밖으로 연장될 수 있다. 마찬가지로, 둘레(504) 밖에 리프(601)가 위치하는 FSR(203)의 일부분을 회로 클라우드(300)가 소모하더라도, 이들 전체에서 일부 리프(601)는 회로 클라우드(300)의 둘레(504) 밖에 있을 수 있다. 리프(601)는 FSR(203) 내에 위치하고, 이러한 FSR(203)의 경계에 의해 세그먼트되거나 경계가 지어질 수 있다.
요약하기 위해서, 클록 소스는 하나 이상의 라우팅 트랙들을 이용하여 수평 또는 수직 방향 중 하나 또는 양자 모두의 방향으로 하나 이상의 FSR들에 걸쳐 있는 회로 클라우드의 클록 네트워크 루트로 라우팅될 수 있다. 이러한 클록 소스는 온칩 또는 오프칩일 수 있고, 이러한 클록 소스는 IOB 또는 기가비트 트랜시버("GT")에 또는 이들로부터 클록 신호를 제공할 수 있다. 더욱이, 타일들의 컬럼과 같은 타일들이 하나의 다이로부터 다른 다이로 라우팅하는데 이용될 수 있고, 클록 분배의 루트가 임의의 분배 스파인 교차점에 존재할 수 있다. 오히려, 루트는 이러한 집적 회로 다이의 프로그램 가능 자원을 이용하여 사용자에 의해 인스턴스화된 회로 클라우드에 특유할 수 있다. 이것은 회로 클라우드에 대한 클록 분배를 조정하는 능력의 상당한 증가를 제공한다. 부가적으로, 이러한 루트에 라우팅하는데 이용되는 자원은 라우팅 트랙과 같은 전용 클록 자원일 수 있고, 이는 집적 회로 다이에 특유한 중심 위치에 결합되지 않는다. 더욱이, 로컬 상호 접속이 이용되어 라우팅 트랙 및/또는 분배 스파인과 같은, 클록 네트워크의 전용 클록 자원 상으로 클록 신호를 라우팅할 수 있다. 예를 들어, 라우팅 트랙과 같은 전용 클록 자원을 제공함으로써, 회로 클라우드의 클록 도메인의 중심 위치 또는 클록 분배 네트워크 센터에 대한 낮은 스큐 경로가 인스턴스화될 수 있다. 그러나, 사용자는 가능한 한 직접적으로, 예를 들어, 레지스터와 같은 클록 로드에 이르기를 원할 수 있으므로, 라우팅 트랙은 낮은 인젝션 지연 라우팅을 위해 클록 소스로부터 하나 이상의 분배 스파인들로 직접적으로 가도록 스킵 또는 바이패스될 수 있다.
요약하면, 라우팅 트랙은 수평 및 수직 분배 스파인들의 교차점에 결합될 수 있다. 이러한 수직 분배 스파인들은 집적 회로 다이에 특유한 중심 위치로 제한되는 것이 아니라, 루트의 다양한 위치를 활성화시키기 위해 프로그램 가능 자원들의 어레이를 통해 분배된다. 더욱이, 수직 및 수평 분배 스파인은 양방향이다. 지금까지는, 클록 신호가 집적 회로 다이에 특유한 중심 위치로 라우팅되었고, 그런 다음 이러한 중심 위치로부터 일방향성으로 멀리 라우팅되었다. 그러나, 루트가 프로그램 가능 자원들의 어레이 내의 다양한 위치에, 보다 구체적으로, 이러한 프로그램 가능 자원들의 어레이 내의 클록 네트워크에 위치할 수 있기 때문에, 수직 및 수평 분배 스파인들의 양방향 능력은 루트에 대해 이러한 다양한 위치를 허용한다. 다시 말해서, 클록 루트가 이러한 집적 회로 다이의 프로그램 가능 자원을 이용하여 인스턴스화된 모든 회로 클라우드에 대해 위치할 경우, 이것은 집적 회로 다이 레이아웃에 의해 선험적으로 결정되지 않는다. 오히려, 예를 들어, 수직 분배 스파인은 회로 클라우드의 인스턴스화에 응답하여 복수의 수직 분배 스파인들 가운데서 선택될 수 있다. 수직 분배 스파인 상의 루트로부터, 클록 신호는 이러한 루트로부터 멀리 이러한 수직 분배 스파인을 따라 하나 이상의 수평 분배 스파인들에 라우팅될 수 있고, 수평 분배 스파인으로부터, 클록 신호는 회로 클라우드 내의 클록 로드에 도달하도록 하나 이상의 리프에 라우팅될 수 있다.
도 7은 도 2의 앞서 기술된 집적 회로(200)를 위한 예시적인 클록 라우팅 계층 구조(700)를 도시하는 블록도이다. 클록 라우팅 계층 구조(700)는 클록 소스(710) 및 클록 네트워크 자원(711)을 포함한다. 클록 소스(710)는 트랜시버 및 수신기 소스(701)의 풀(pool), I/O 및 내부 클록 소스(702)의 풀, 및 로컬 상호 접속 소스(703)의 풀을 포함한다. 클록 네트워크 소스(711)는, 비제한적으로, 수평 및 수직 클록 라우팅 트랙(400)을 포함하는 클록 라우팅 트랙(400)의 풀, 수직 분배 스파인(501), 수평 분배 스파인(502), 리프(601), 및 하나 이상의 루트들을 위한 교차점(401)을 포함한다. 앞서 기술된 바와 같이, 클록 라우팅 트랙(400)으로부터, 클록 신호가 교차점에 전달될 수 있고, 교차점은 화살표(731)로 일반적으로 표시된 바와 같은, 루트(401)일 수 있다. 루트(401)로부터, 이러한 클록 신호는 화살표(732)로 일반적으로 표시된 바와 같은, 하나 이상의 수직 분배 스파인들(501)에 전달될 수 있다. 수직 분배 스파인들(501)로부터, 클록 신호는 화살표(733)로 일반적으로 표시된 바와 같은, 하나 이상의 수평 분배 스파인들(502)에 전달될 수 있다. 마지막으로, 수평 분배 스파인들(502)로부터, 클록 신호는 화살표(734)로 일반적으로 표시된 바와 같은, 하나 이상의 리프들(601)에 전달될 수 있다.
트랜시버 및 수신기 소스(701)의 풀, I/O 및 내부 클록 소스(702)의 풀, 또는 로컬 상호 접속 소스(703)의 풀로부터, 화살표(722)로 일반적으로 표시된 바와 같은 클록 신호가 클록 라우팅 트랙(400)의 풀로부터의 하나 이상의 자원들을 이용하여 직접적으로 전달될 수 있다. 내부 클록 소스(702)는 PLL, DLL, 또는 다른 내부 클록 소스를 포함할 수 있다.
트랜시버 및 수신기 소스(701)의 풀, I/O 및 내부 클록 소스(702)의 풀, 또는 로컬 상호 접속 소스(703)의 풀로부터, 화살표(721)로 일반적으로 표시된 바와 같은 클록 신호가 로컬 상호 접속을 이용하여 적어도 하나의 루트(401)에 직접적으로 전달되거나, 또는 클록 라우팅 트랙(400)의 풀로부터 적어도 하나의 루트(401)까지의 화살표(731) 및 화살표(722)로 일반적으로 표시된 바와 같은 클록 라우팅 트랙(400)의 풀로부터의 하나 이상의 자원들을 이용하여 적어도 하나의 루트(401)에 간접적으로 전달될 수 있다.
I/O 및 내부 클록 소스(702)의 풀 또는 로컬 상호 접속 소스(703)의 풀로부터, 화살표(723)로 일반적으로 표시된 바와 같은 클록 신호가 수평 분배 스파인(502)의 풀로부터의 하나 이상의 자원들을 이용하여 직접적으로 전달될 수 있다. 로컬 상호 접속 소스(703)의 풀로부터, 화살표(724)로 일반적으로 표시된 바와 같은 클록 신호가 리프(601)의 풀로부터의 하나 이상의 자원들을 이용하여 직접적으로 전달될 수 있다.
도 8a는 FSR들(203)의 어레이(202)의 예시적인 부분을 도시하는 블록/회로도이다. FSR(203)을 위해, 왼쪽 부분(203-2)이 오른쪽 부분(203-1)과 함께 예시적으로 도시된다. 이런 라인들을 따라, FSR(203)은 클록 신호를 오른쪽에서 왼쪽으로 또는 왼쪽에서 오른쪽으로 구동하는데 이용될 수 있는 수평 분배 스파인(502)을 갖는다는 것을 이해해야 한다. 수직 분배 스파인 또는 세그먼트(501) 및 수직 분배 스파인 또는 세그먼트(502)의 교차점(401) 또는 루트로부터, 클록 신호가 선택적 지연(511)에 제공될 수 있다. 지연(511)은 프로그램 가능하므로, 회로 안에서 또는 밖에서 선택될 수 있다. 그러나, 이러한 지연(511)의 지연은 인버터 체인에 의해 제공된 "고정" 지연일 수 있다. 지연(511)의 출력은 버퍼(801)의 입력에 각각 결합될 수 있고, 버퍼(801)의 출력은 수평 분배 스파인(502) 상의 클록 신호를 구동할 수 있다. 이 예는 각각의 수평 분배 스파인(502)에 대해 한 쌍의 지연(511) 및 한 쌍의 버퍼(801)를 도시하지만, FSR들(203)의 어레이(202)의 예시적인 일부분을 도시하는 도 8b의 블록/회로도에 예시적으로 도시된 바와 같이, 다른 예에서, 단일 지연(511) 및 단일 버퍼(801)가 각각의 수평 분배 스파인(502)에 대해 이용될 수 있다.
지연(511)을 위해 멀티탭 선택적 인버터 체인을 이용함으로써, 가상의 제로 지연 수직 스파인(501)이 형성될 수 있다. 지연은 일반적으로 루트(401)에 더욱 가까운 노드에 더욱 큰 지연을 계속해서 부가함으로써, 각각의 수평 분배 스파인에 대해 대략 150 피코초 내에서 균등하게 될 수 있다. 인버터 체인은 공정-전압-온도 변화에 대한 금속 대 트랜지스터 지연으로 인해 서로 완벽하게 일치하지 않을 수 있기 때문에, 수직 분배 스파인(501)의 지연에 일부 변동이 있을 수 있다. 그러나, 수직 스큐의 감소가 달성될 수 있 고, 이러한 감소는 루트 노드(401)로부터 더욱 먼 노드(401)에 대해 더욱 두드러질 수 있다.
도 9 내지 도 14는 멀티 다이 시스템(900)을 위해 도 1 내지 도 8b의 상기 설명에 따라 개개의 예시적인 클록 네트워크를 도시하는 블록도이다. 도 9 내지 도 14는 도 1 내지 도 14를 동시에 참조하여 아래에 기술된다. 따라서, 낮은 스큐 클록은 글로벌 클록을 대신하고, 낮은 인젝션 클록은 지역적 클록을 대신한다. 낮은 스큐 클록 및 낮은 인젝션 클록의 특정 예들이 제공되었지만, 이러한 유형의 클록들은 클록 네트워크에서 결합될 수 있다. 낮은 인젝션 클록을 참조하면, 소스를 클록 분배 스파인에 직접적으로 라우팅하고 임의의 클록 라우팅 트랙을 바이패스함으로써, 낮은 인젝션 지연 클록이 제공될 수 있고, 이는 예를 들어 I/O 대 패브릭 통신에 유용할 수 있다.
집적 회로 다이(910)는 I/O 뱅크들(902)의 컬럼, I/O 뱅크들(902)과 각각 연관된 클로킹 블록들(903)의 컬럼, FSR들(203)의 컬럼들, 및 FSR들(203)의 컬럼들 사이에 위치하는 PCIe/구성 블록("PCIe 블록") 컬럼(904)을 포함한다. FSR들(203)의 컬럼들 및 PCIe 블록 컬럼(904)은 모두 집적 회로 다이(910)의 패브릭 어레이(914)의 일부이다. 일례에서, 분리된 GT 다이(901)가 인터포저(도시되지 않음)를 통해 집적 회로 다이(910)에 결합될 수 있다.
도 9의 클록 네트워크의 경우, I/O 뱅크(902)의 클록 소스(905)가 클록 도메인(906)에 대한 수평 분배 스파인(902)에 직접적으로 결합된다. 클록 도메인(906)은 이러한 I/O 뱅크(902)로부터 대응하는 클로킹 블록(903)으로 그리고 인접한 FSR(203)로 연장된다. 클록 도메인(906)은 낮은 인젝션 지역적 I/O 클록을 위한 것이다. 낮은 인젝션 클록의 경우, 일반적으로 라우팅 트랙(400)이 이용되지 않는다.
도 10의 클록 네트워크의 경우, I/O 뱅크(902)의 클록 소스(905)가 클록 도메인(1006)에 대한 수평 분배 스파인(502)에 직접적으로 결합된다. 클록 도메인(1006)은 낮은 인젝션 지역적 I/O 클록을 위한 것이다. 클록 도메인(1006)은 세 개의 수직 서브 영역 및 세 개의 수평 서브 영역을 포함한다. 이러한 I/O 뱅크(902)로부터 대응하는 클로킹 블록(903)까지, 그리고 두 개의 인접한 FSR들(203) 및 PCIe 블록(904)까지, 수평 분배 스파인(502)이 이용된다. 클로킹 블록(903)의 컬럼에 수직 분배 스파인(501)이 이용되어 로우들의 대응하는 수평 분배 스파인들(502)로 클록 도메인을 위아래로 하나의 로우씩 연장시킨다.
도 11의 클록 네트워크의 경우, I/O 뱅크(902)의 클록 소스(905)가 클록 도메인(1106)에 대한 수평 분배 스파인(502)에 직접적으로 결합된다. 클록 도메인(1106)은 I/O 뱅크(902)로부터의 낮은 스큐 클록을 위한 것이다. 클록 도메인(1106)은 세 개의 수직 서브 영역 및 네 개의 수평 서브 영역을 포함한다. 이러한 I/O 뱅크(902)로부터 대응하는 클로킹 블록(903)까지, 그리고 두 개의 인접한 FSR들(203)까지, 라우팅 트랙(400)이 이용된다. 왼쪽에서 두 번째 FSR 컬럼에 있는 루트(401)는 명확성을 위해 두 개의 별도의 노드로서 표시되지만, 이러한 노드들은 동일한 노드이다. 루트(401)는 수직 분배 스파인(501) 및 수평 분배 스파인(502)의 교차점에 있다. FSR들(203)의 이러한 컬럼에 수직 분배 스파인(501)이 이용되어 로우들의 대응하는 수평 분배 스파인들(502)로 클록 도메인을 위아래로 하나의 로우씩 연장시킨다.
도 12의 클록 네트워크의 경우, GT 다이(901)의 클록 소스(905)가 클록 도메인(1206)에 대한 집적 회로 다이(910)의 수직 분배 스파인(501)에 결합된다. 클록 도메인(1206)은 GT 다이(901)의 GT로부터의 낮은 인젝션 GT 지역적 클록을 위한 것이다. 클록 도메인(1206)은 세 개의 수직 서브 영역 및 한 개의 수평 서브 영역을 포함한다. GT 다이(901)의 GT로부터, 클록 신호는 FSR들(203)의 컬럼에 대한 수직 분배 스파인(501)을 이용하여 집적 회로 다이(910)에 전달된다. 이러한 수직 분배 스파인(501)과 교차하는 세 개의 대응하는 수평 분배 스파인들(502)과 함께, 세 개의 인접한 FSR들(203)이 이 예에서 이용된다. 사용자 클록 패스에 대한 내부 기준 클록이 있다고 가정하고, 수직 분배 스파인(501) 상에 선택적 지연이 이용되지 않는다고 가정하면, 데이터를 전송하기 위해 리턴 사용자 클록을 사용하지 않기 위해서, 집적 회로 다이(901)의 프로그램 가능 패브릭과 GT 다이(901) 간에 충분히 낮은 레이턴시가 있을 수 있다.
수직 분배 스파인(501)을 제공하기 위해 이용되는 수직 분배 세그먼트들의 다이 대 다이 상호 접속은 패브릭 어레이(914)의 가장 바깥 로우의 자원에 의해 제공될 수 있다. 따라서, IC 다이 대 다이 상호 접속의 어레이의 폭에 걸쳐, 상호 접속이 이용될 수 있고, 이는 그것에 결합된 FPGA 다이에서 비롯되는 클록에 다이에 의한 더욱 로컬화된 액세스를 허용한다. 따라서, 특정한 오프 다이 상호 접속이 다른 다이와의 인터페이스를 위해 제공될 수 있다. 인터포저(여기에 도시되지 않음) 또는 회로 보드(도시되지 않음)가 이러한 상호 접속을 와이어링하기 위해 이용될 수 있다.
도 13의 클록 네트워크의 경우, GT 다이(901)의 클록 소스(905)가 클록 도메인(1306)에 대한 집적 회로 다이(901)의 수직 분배 스파인(501)에 결합된다. 클록 도메인(1306)은 GT 다이(901)의 GT로부터의 낮은 인젝션 다중 영역 GT 클록을 위한 것이다. 클록 도메인(1306)은 두 개의 수직 서브 영역 및 네 개의 수평 서브 영역을 포함한다. GT 다이(901)의 GT로부터, 클록 신호는 FSR들(203)의 컬럼에 대한 수직 분배 스파인(501)을 이용하여 집적 회로 다이(910)에 전달된다. 이러한 수직 분배 스파인(501)과 교차하는 두 개의 대응하는 수평 분배 스파인들(502)과 함께, 두 개의 인접한 FSR들(203)이 이 예에서 이용된다. 이러한 수평 분배 스파인들(502)은 왼쪽으로 FSR(203)의 한 개의 컬럼으로, 그리고 오른쪽으로 두 개의 컬럼, 즉, PCIe/구성 블록 컬럼(904) 및 FSR(203)의 한 개의 컬럼으로 연장된다.
도 14의 클록 네트워크의 경우, GT 다이(901)의 클록 소스(905)가 클록 도메인(1406)에 대한 집적 회로 다이(901)의 수직 분배 스파인(501)에 결합된다. 클록 도메인(1406)은 GT 다이(901)의 GT로부터의 낮은 스큐 클록을 위한 것이다. 클록 도메인(1406)은 앞서 기술된 바와 같이, 글로벌 클록과 동일한 토폴로지를 갖는다. 클록 도메인(1306)은 세 개의 수직 서브 영역 및 네 개의 수평 서브 영역을 포함한다. GT 다이(901)에서 두 개의 인접한 FSR들(203)까지, 라우팅 트랙(400)이 이용된다. 왼쪽에서 두 번째 FSR 컬럼에 있는 루트(401)는 명확성을 위해 두 개의 별도의 노드로서 표시되지만, 이러한 노드들은 동일한 노드이다. 루트(401)는 수직 분배 스파인(501) 및 수평 분배 스파인(502)의 교차점에 있다. FSR들(203)의 이러한 컬럼에 수직 분배 스파인(501)이 이용되어 로우들의 대응하는 수평 분배 스파인들(502)로 클록 도메인을 위아래로 하나의 로우씩 연장시킨다.
도 15 내지 도 20은 멀티 다이 시스템(1500)을 위해 도 1 내지 도 8b의 상기 설명에 따라 개개의 예시적인 클록 네트워크를 도시하는 블록도이다. 도 15 내지 도 20은 도 1 내지 도 20을 동시에 참조하여 아래에 기술된다.
도 15를 참조하면, 멀티 다이 시스템(1500)은 인터포저(1510)에 결합된 두 개의 GT 다이(901) 및 두 개의 집적 회로 다이(910)를 포함한다. 상부 집적 회로 다이(910)의 클로킹 블록(903)에서의 클록 소스(905)는 루트(401)에 결합하기 위해서 라우팅 트랙(400)에 결합된다. 루트(401)는 상위 집적 회로 다이(910)의 FSR들(203)의 가장 위의 로우까지, 그리고 하위 집적 회로 다이(910)의 FSR들(203)의 가장 낮은 로우까지 연장되는 수직 분배 스파인(501)에 결합된다. 수직 분배 스파인(501)을 제공하기 위해 이용되는 수직 분배 세그먼트들의 다이 대 다이 상호 접속은 패브릭 어레이(914)의 가장 바깥 로우의 자원에 의해 제공될 수 있다. 따라서, 특정한 오프 다이 상호 접속이 다른 다이와의 인터페이스를 위해 제공될 수 있다. 인터포저(1510)는 이러한 상호 접속을 와이어링하는데 이용될 수 있다.
수평 분배 스파인(501)과 교차하는 양자의 집적 회로 다이들(910)의 수평 분배 스파인들(502)은 클록 신호를 다른 FSR들(203)에 그리고 PCIe 블록(904)에 전파하는데 이용된다. 따라서, 클록 도메인(1506)은 양자의 집적 회로 다이들(910)의 패브릭 어레이(914)에 걸쳐 있다.
도 16을 참조하면, 네 개의 상이한 클록 네트워크 토폴로지가 예시적으로 도시된다. 상호 접속 클록이 이용되는 경우, 이러한 토폴로지는 높은 팬아웃 상호 접속을 위한 것이다. 토폴로지에서, 클록 소스(905-4)는 로컬 상호 접속 라우팅을 이용하여 리프(601)에 결합된다. 이러한 토폴로지에서, 클록 소스(905-4), 리프(601), 및 로컬 상호 접속 라우팅은 모두 동일한 FSR(203)에 위치한다.
클록 도메인(1601)은 클록 소스(905-1)가 FSR(203)에 있다는 것을 제외하면, FSR(230)의 단일 컬럼에 대한 클록 도메인(1006)과 유사하다. 클록 소스(905-1)로부터, 로컬 상호 접속 라우팅이 이용되어, I/O 또는 낮은 스큐 클록을 생성하기 위해 I/O 클로킹 블록(903)의 버퍼에 도달할 수 있다. 클록 도메인(1602)은 단일 FSR(203)로 국한되고, 이러한 FSR(203)의 클록 소스(905-2)는 로컬 상호 접속 라우팅을 이용하여 수평 분배 스파인(502)에 결합된다.
클록 도메인(1603)은 FSR(203)에 클록 소스(905-3)를 갖고, 이는 로컬 상호 접속을 이용하여 인접한 컬럼에 있는 FSR(203)의 루트(401)에 결합된다. 루트(401)는 수직 분배 스파인(501)에 결합된다. 수직 분배 스파인(501)은 수평 분배 스파인들(502)을 이용하여 클록 분배를 위해 이러한 인접 컬럼의 세 개의 FSR들(203)에 걸쳐 있기 위한 세 개의 세그먼트를 갖는다.
도 17을 참조하면, 패브릭 어레이(914)의 바깥 로우는 수직 분배 스파인(501)이 오프 칩 상호 접속되도록 허용하기 위해서 다이 대 다이 상호 접속을 위한 자원을 가질 수 있다. 이러한 자원은 마찬가지로 모놀리식 집적 회로 다이(910)의 GT(1701)에 결합하기 위해 이용될 수 있다. 따라서, 수직 분배 스파인(501)은 GT(1701)에 결합하기 위해 이용될 수 있다. GT(1701) 자원은 FSR들(203)의 컬럼에 대응하여 그룹화될 수 있다. 클록 도메인(1706)에 관한 다른 세부 사항은 반복을 피하기 위해 여기에 기술되지 않는다.
다이 대 다이 상호 접속에 대한 다양한 예시적인 구조들이 기술되었다. 따라서, 하나의 다이로부터 다른 다이로 클록 신호를 보내기 위한 다수의 방법들이 존재한다. 이러한 다이들 모두는 클록 싱크(clock sink) 또는 소스를 포함할 수 있다. 클록 신호는 낮은 인젝션 지연 경로를 위해 분배 스파인을 통해 전송되거나, 분배 스파인을 절약하기 위해 클록 라우팅 트랙을 통해 전송될 수 있다. 부가적으로, 데이터 스트로브(data strobe)가 데이터 입력에 클록 신호를 전송함으로써 수직 분배 스파인을 통해 전송될 수 있다.
도 18을 참조하면, 클록 소스(905)가 클록 도메인(1801)에 대해 앞서 기술된 바와 같이 라우팅 트랙(400)을 이용하여 클록 도메인 루트(401)에 라우팅될 수 있다. 이러한 클록 소스(905)는 클록 관리자일 수 있고, 즉, 예를 들어, PLL을 갖는 블록일 수 있다. 라우팅 트랙(400)과 동일한 FSR 로우에 있는 수평 분배 스파인(502F)은 디스큐(de-skew)를 위해 이러한 클록 관리자에게 클록 신호를 피드백하는데 이용될 수 있다. 클록 관리자-PLL 블록으로의 피드백 클록은, 실제 클록 분배의 지연에 부합하도록 이러한 피드백 클록을 지연시키기 위해, 라우팅 트랙이 아닌, 분배 스파인을 거쳐 제공될 수 있다. 예를 들어, 이러한 피드백 클록 지연은, 클록 네트워크가 칩의 회로 경계로 연장되는 경우에, 실제 클록의 지연에 부합할 수 있다. 클록 도메인(1801)의 수직 분배 스파인(501)은 클록 도메인(1801) 밖의 수직 분배 스파인(501F)을 이용하는 이러한 피드백을 위해 연장될 수 있다. 이런 라인들을 따라, 클록 도메인(1802)은 클록 도메인(1801)을 둘러싸고, 클록 관리자 클록 소스(905)로 그리고 클록 관리자 클록 소스(905)로부터 라루팅할 수 있다. 이러한 클록 관리자는 선택적 지연(511) 간의 변동을 고려하여 지연을 조정하도록 구성될 수 있다. 클록 도메인(1801)에 관한 다른 세부 사항은 반복을 피하기 위해 여기에 기술되지 않는다.
따라서, 클록 소스에 다시 라우팅하는 수평 분배 스파인 상으로 수직 분배 스파인의 임의의 부분을 탭 오프(tap off)함으로써, 피드백 보상이 제공될 수 있다. 선택적 지연이 이용될 수 있기 때문에, 이러한 수직 분배 스파인을 탭 오프하는 경우는 문제가 되지 않을 수 있다.
도 19를 참조하면, 클록 도메인(1906)은 두 개의 클록 도메인 루트(401)가 이용되는 것을 제외하면, 클록 도메인(1506)과 유사하다. 클록 도메인(1906)에서, 상위 집적 회로 다이(910)의 수평 라우팅 트랙(402)은 상위 및 하위 집적 회로 다이들(910)의 수직 라우팅 트랙(403)에 결합된다. 상위 및 하위 집적 회로 다이들(910) 양자의 이러한 수직 라우팅 트랙(403)은 상위 집적 회로 다이(910)의 루트(401)에 그리고 하위 집적 회로 다이(910)의 루트(401)에 클록 소스(905)를 결합하는데 이용된다. 따라서, 집적 회로 다이들(910)의 수직 분배 스파인(501)은 상호 접속되지 않는다. 클록 도메인(1906)에 관한 다른 세부 사항은 반복을 피하기 위해 여기에 기술되지 않는다.
도 20을 참조하면, 클록 도메인(2006)은 동일한 클록 네트워크의 두 개의 클록 도메인 루트(401)를 갖는, 클록 도메인(1906)과 유사하다. 클록 도메인(2006)에서, 상위 집적 회로 다이(910)의 중심 수평 라우팅 트랙(402C)은 상위 및 하위 집적 회로 다이들(910)의 수직 라우팅 트랙들(403)에 결합된다. 이러한 수직 라우팅 트랙들(403)은 상위 및 하위 집적 회로 다이들(910)의 수평 라우팅 트랙들(402)에 결합하는데 이용되고, 이러한 수평 라우팅 트랙들(402) 각각은 분리된 루트(401)에 결합된다. 두 개의 루트(401) 각각은 두 개의 분리된 수직 분배 스파인(501)에 효과적으로 결합된다. 다른 구성에서, 클록 도메인(2006)은 수평 라우팅의 수평 라우팅 트랙(402C) 및 수직 라우팅의 수직 라우팅 트랙(403) 교차점에서 단일 클록 도메인 루트(401)를 가질 수 있다. 클록 도메인(2006)에 관한 다른 세부 사항은 반복을 피하기 위해 여기에 기술되지 않는다.
도 21a 및 도 21b(도 21)는 FSR(201)을 위한 예시적인 클록 네트워크(2100)를 도시하는 회로/블록도이다. 클록 네트워크(2100)는 수평 라우팅 트랙(402), 수직 라우팅 트랙(403), 수평 분배 스파인(502), 및 수직 분배 스파인(501)을 포함한다. 도 21a는 FSR(203)의 왼쪽 부분이고, 도 21b는 이러한 FSR(203)의 오른쪽 부분이다.
수직 라우팅 트랙(403)이 3상태 버퍼(2101)를 통해 수직 분배 스파인(501)에 결합될 수 있다. 3상태 버퍼(2101)의 입력이 수직 라우팅 트랙(403)에 결합될 수 있고, 3상태 버퍼(2101)의 출력이 수직 분배 스파인(501)에 결합될 수 있다. 구성 메모리 셀(여기에 도시되지 않음)이 이용되어, 3상태 버퍼(2101)를 버퍼 상태 또는 하이 임피던스 3상태 중 어느 하나의 상태에 두도록 3상태 버퍼(2101)에 대한 제어 신호를 프로그램한다. 따라서, 수직 라우팅 트랙(403)은 대응하는 수직 분배 스파인(501)에 선택적으로 결합될 수 있다.
수직 분배 스파인(501)이 3상태 버퍼(2102)를 통해 수평 라우팅 트랙(402)에 결합될 수 있다. 3상태 버퍼(2102)의 입력이 수평 라우팅 트랙(402)에 결합될 수 있고, 3상태 버퍼(2102)의 출력이 수직 분배 스파인(501)에 결합될 수 있다. 구성 메모리 셀(여기에 도시되지 않음)이 이용되어, 3상태 버퍼(2102)를 버퍼 상태 또는 하이 임피던스 3상태 중 어느 하나의 상태에 두도록 3상태 버퍼(2102)에 대한 제어 신호를 프로그램한다. 따라서, 수평 라우팅 트랙(402)은 대응하는 수직 분배 스파인(501)에 선택적으로 결합될 수 있다.
양방향 커플러(2122)를 통해, 수직 라우팅 트랙(403)이 수평 라우팅 트랙(402)에 결합될 수 있고, 그 반대도 가능하다. 양방향 커플러(2122)는 루프로 결합된 3상태 버퍼(2103) 및 3상태 버퍼(2104)를 포함한다. 3상태 버퍼(2103)의 입력이 3상태 버퍼(2104)의 출력에, 그리고 수직 라우팅 트랙(403)에 결합된다. 3상태 버퍼(2103)의 출력이 수평 라우팅 트랙(402)에 결합된다. 3상태 버퍼(2104)의 입력이 3상태 버퍼(2103)의 출력에, 그리고 수평 라우팅 트랙(402)에 결합된다. 3상태 버퍼(2104)의 출력이 수직 라우팅 트랙(403)에 결합된다. 구성 메모리 셀(여기에 도시되지 않음)이 이용되어, 3상태 버퍼들(2013 및 2104) 각각을 버퍼 상태 또는 하이 임피던스 3상태 중 어느 하나의 상태에 두도록 3상태 버퍼들(2013 및 2104)에 대한 제어 신호를 프로그램한다. 양방향 커플러(2122)의 동작의 경우, 3상태 버퍼들(2103 및 2104) 중 하나 또는 양자 모두는 3상태 조건에 있고, 즉, 연관된 라우팅 트랙들이 서로 전기적으로 결합되지 않는 3상태 조건에 있거나, 이러한 3상태 버퍼들(2103 및 2104) 중 하나가 3상태 조건에 있고, 이러한 3상태 버퍼들(2103 및 2104) 중 다른 하나가 버퍼 조건에 있다. 양방향 커플러(2122) 중 3상태 버퍼(2103)가 버퍼 조건에 있고, 3상태 버퍼(2104)가 3상태 조건에 있으면, 수직 라우팅 트랙(403) 상의 클록 신호는 이러한 3상태 버퍼(2103)를 통해 대응하는 수평 라우팅 트랙(402)으로 전달될 수 있다. 마찬가지로, 양방향 커플러(2122) 중 3상태 버퍼(2104)가 버퍼 조건에 있고, 3상태 버퍼(2103)가 3상태 조건에 있으면, 수평 라우팅 트랙(402) 상의 클록 신호는 이러한 3상태 버퍼(2104)를 통해 대응하는 수직 라우팅 트랙(403)으로 전달될 수 있다.
또한, 라우팅 트랙들(402 및 403)은 물론 분배 스파인들(501 및 502)은 양방향인 것을 이해해야 한다. 이런 라인들을 따라, 명확성을 위해 도시되지 않고 제한이 아닌, 반대 방향으로 신호를 구동하기 위한 대응하는 회로가 존재할 수도 있고 존재하지 않을 수도 있다.
두 개의 수평 분배 스파인들(502) 중 어느 하나가 선택 가능한 커플러(2121)를 이용하여 대응하는 수직 분배 스파인(501)에 결합될 수 있다. 선택 가능한 커플러(2121)는 멀티플렉서(2105) 및 3상태 버퍼(2106)를 포함한다. 구성 메모리 셀(여기에 도시되지 않음)이 이용되어, 3상태 버퍼(2106) 각각을 버퍼 상태 또는 하이 임피던스 3상태 중 어느 하나의 상태에 두도록 3상태 버퍼(2106)에 대한 제어 신호를 프로그램한다. 마찬가지로, 구성 메모리 셀(여기에 도시되지 않음)이 이용되어 멀티플렉서(2105)에 대한 제어 선택 신호를 프로그램할 수 있다. 선택 가능한 커플러(2121)의 경우, 멀티플렉서(2105)의 입력이 수평 분배 스파인(502)에 결합되고, 멀티플렉서(2105)의 다른 입력이 다른 수평 분배 스파인(502)에 결합된다. 제어 선택 신호가 이러한 멀티플렉서(2105)로부터의 출력을 위해 이러한 수평 분배 스파인(502) 중 하나의 클록 신호를 선택하기 위해 설정될 수 있다. 이러한 멀티플렉서(2105)로부터의 출력은 대응하는 3상태 버퍼(2106)에 입력으로서 제공된다. 3상태 버퍼(2106)는 대응하는 수직 분배 스파인(501)에 결합된 출력을 갖는다. 버퍼 조건에서, 3상태 버퍼(2106)는 이러한 클록 신호를 이러한 대응하는 수직 분배 스파인(501)에 전달할 수 있고, 3상태 조건에서, 3상태 버퍼(2106)는 이러한 수직 분배 스파인(501)으로부터 멀티플렉서(2105)의 출력을 전기적으로 분리시킨다. 따라서, 복수의 수평 분배 스파인들(502)은 수직 분배 스파인들(501) 중 대응하는 것에 선택적으로 결합될 수 있다.
수직 분배 스파인(501)은 선택적 지연 및 클록 게이트(511)를 통해 대응하는 수평 분배 스파인(502)에 결합될 수 있다. 도시된 예에서, 선택적 지연 및 클록 게이트(511)는 지연 블록(2107), 멀티플렉서(2108), AND 게이트(2109), 및 3상태 버퍼(2110)를 포함한다. 지연 블록(2107)의 입력 및 멀티플렉서(2108)의 입력이 수직 분배 스파인(501)에 결합된다. 지연 블록(2107)의 출력이 멀티플렉서(2108)의 다른 입력에 결합된다. 멀티플렉서(2108)의 출력이 AND 게이트(2109)에 입력으로서 제공된다. AND 게이트(2109)의 다른 입력은 클록 인에이블("CE") 신호(2111)이다. AND 게이트(2109)의 출력이 3상태 버퍼(2110)의 입력에 제공된다. 3상태 버퍼(2110)의 출력이 수평 분배 스파인(502)에 결합된다. 구성 메모리 셀(여기에 도시되지 않음)이 이용되어, 3상태 버퍼(2110)를 버퍼 상태 또는 하이 임피던스 3상태 중 어느 하나의 상태에 두도록 3상태 버퍼(2110)에 대한 제어 신호를 프로그램한다. 마찬가지로, 구성 메모리 셀(여기에 도시되지 않음)이 이용되어 멀티플렉서(2108)에 대한 제어 선택 신호를 프로그램할 수 있다. 멀티플렉서(2108)는 그의 출력이 지연 블록(2107)에 의해 지연되는지의 여부를 선택하는데 이용될 수 있다. AND 게이트(2109)는, CE 신호(2111)가 로직 하이인 경우, 3상태 버퍼(2110)에 클록 신호를 전달하고, CE 신호(2111)가 로직 로우인 경우, 3상태 버퍼(2110)에 이러한 클록 신호를 전달하는 것을 방지하는데 이용될 수 있다. CE 신호(2111)가 로직 로우인 경우, ADN 게이트(2109)의 출력은 로직 로우이다. 버퍼 상태에서, 3상태 버퍼(2110)는 이러한 수평 분배 스파인(502)에 AND 게이트(2109)의 출력에 결합하는데 이용될 수 있다. 하이 임피던스 3상태에서, 3상태 버퍼(2110)는 이러한 수평 분배 스파인(502)으로부터 AND 게이트(2109)의 출력을 전기적으로 분리시키는데 이용될 수 있다.
수직 라우팅 트랙(403) 및 수평 라우팅 트랙(402)이 세그먼트화되고, 각각의 FSR(203)의 수평 및 수직 경계에서 양방향이기 때문에, 트랙 공유가 이용될 수 있다. 이것은 더욱 많은 클록 신호들이 더욱 적은 클록 자원으로 이용되도록 한다. 예를 들어, 단일 수평 라우팅 트랙 세그먼트(402)가 이의 소스 노드로부터 반대 방향으로 구동될 수 있다. 다시 말해서, 동일한 수평 라우팅 트랙 세그먼트(402)를 따라, 하나의 클록 신호가 이러한 소스 노드의 오른쪽으로 구동될 수 있고, 다른 클록 신호가 이러한 소스 노드의 왼쪽으로 구동될 수 있다. 이런 라인들을 따라, 두 개의 비오버랩 클록 영역의 경우, 동일한 수평 라우팅 트랙(402)이 공유될 수 있다.
도 22는 클록 네트워크(2100)의 예시적인 리프(601)를 도시하는 회로/블록도이다. 여섯 개의 리프(601)가 예시적으로 도시되었지만, FSR(203) 내에 더 많거나 적은 리프들이 이용될 수 있다는 것이 이해되어야 한다.
리프(601)는 수평 분배 스파인(502)에 결합된다. 각각의 리프(601)는 구동기 버퍼(2201)를 포함한다. 구동기 버퍼(2201)는 아래에 추가로 상세히 기술되는 바와 같이, 3상태 버퍼일 수 있다. 하나 이상의 리프(601)는 선택적 지연(2202)을 포함할 수 있다. 구성 메모리 셀(여기에 도시되지 않음)이 선택적 지연(2202)를 통해 지연을 선택적으로 부가하기 위해 이용될 수 있다. 리프(601)가 노드(2210)에서 수평 분배 스파인(502)에 결합될 수 있다. 클록 신호는 선택적 지연(2202)의 입력에까지 그리고 이러한 리프(601)의 다른 선택적 지연(2202)의 입력에 이르기까지 전달될 수 있다. 상위 선택적 지연(2202)으로부터의 출력이 상위 구동기 버퍼(2201)에 입력으로서 제공될 수 있고, 이러한 상위 구동기 버퍼(2201)의 출력이 회로 클라우드(300)의 하나 이상의 클록 로드에 결합될 수 있다. 마찬가지로, 하위 선택적 지연(2202)으로부터의 출력이 하위 구동기 버퍼(2201)에 입력으로서 제공될 수 있고, 이러한 하위 구동기 버퍼(2201)의 출력이 회로 클라우드(300)의 하나 이상의 다른 클록 로드에 결합될 수 있다. 리프(601)의 선택적 지연(2202) 중 어느 하나, 양자 모두, 또는 아무 것도 지연을 제공하기 위해 프로그램 가능하게 설정될 수 있다. 따라서, 예를 들어, 클록 신호가 리프(601)의 상위 선택적 지연(2202)에 의해 지연될 수 있지만, 동일한 리프(601)의 하위 선택적 지연(2202)에 의해 지연되지 않을 수 있고, 그 반대의 경우도 가능하다. 모든 리프(601)가 반드시 선택적 지연(2202)을 갖는 것은 아니다. 어떠한 선택적 지연(2202)도 없는 리프(601)의 경우, 노드(2210)에서의 클록 신호는 이러한 리프(601)의 상위 및 하위 구동기 버퍼(2201)의 입력에 직접적으로 제공될 수 있다.
따라서, 수평적으로 인접한 FSR들(203) 간에 홀드 타임 문제를 피하거나 감소시키기 위해서, 선택적 지연(2202)은, 예를 들어, 두 개 이상의 클록 리프(601) 간의 지연을 확산시키는데 이용될 수 있다. 다시 말해서, 스큐, 보다 구체적으로, 스큐 불연속성은 FSR(203)의 다수의 컬럼들에 걸쳐 분할 상환, 분배, 또는 다른 식으로 확산될 수 있다.
도 23은 FSR(203)의 예시적인 부분(2300)을 도시하는 블록도이다. 도 24는 상호 접속 타일(2301)의 예시적인 부분을 도시하는 회로도이다. 도 1 내지 도 24를 동시 참조하여, 부분(2300)이 더욱 기술된다.
FSR(203)은 다른 컴포넌트들 중에서, 구성 가능 로직 요소("CLE")(2303), 상호 접속 블록 또는 타일(2301), 및 하나 이상의 수평 분배 스파인(502)을 포함할 수 있다. 예를 들어, 각각의 상호 접속 블록(2301)의 전용 부분과 같은 부분(2302)은, 예컨대, CLE(2303)의 데이터 소스 및/또는 클록 소스를 리프 클록 구동기 버퍼(2201)에 결합하기 위해 이용될 수 있다. 하나 이상의 클록 입력(2403)이 멀티플렉서(2404)에 입력으로서 결합될 수 있다. 하나 이상의 로컬 상호 접속 입력(2401)이 멀티플렉서(2402)에 입력으로서 결합될 수 있다. 하나 이상의 로컬 상호 접속 입력(2504)이 멀티플렉서(2406)에 입력으로서 결합될 수 있다. 멀티플렉서들(2402, 2404, 및 2406)에 대한 제어 선택 입력이 이러한 멀티플렉서들로부터의 개개의 출력의 선택을 위해 구성 메모리 셀(여기에 도시되지 않음)에 의해 프로그램에 따라서 설정될 수 있다.
멀티플렉서(2406)의 출력은 3상태 구동기 버퍼(2201)의 3상태 입력 포트에 제공된다. 따라서, 3상태 구동기 버퍼(2201)는 앞서 기술된 바와 같이, 3상태 조건 또는 버퍼 조건에 놓일 수 있다. 멀티플렉서(2402)의 출력은 멀티플렉서(2404)에 입력으로서 제공된다. 이런 라인들을 따라, 클록 신호가, 예를 들어, 글로벌 클록 입력과 같은, 클록 입력(2403)으로서 로컬 상호 접속으로부터 전달될 수 있다. 멀티플렉서(2404)의 출력은 3상태 구동기 버퍼(2201)에 입력으로서 제공된다. 3상태 구동기 버퍼(2201)의 출력이, 예컨대, 하나 이상의 CLE들(2303)에서의 하나 이상의 클록 로드에 제공될 수 있다.
따라서, 3상태 구동기 버퍼(2201)와 같은 리프 클록 구동기를 지나가는 상호 접속이 탭 오프되어 리프 클록 인에이블 멀티플렉서에 전송될 수 있다. 이러한 상호 접속은 또한 높은 팬아웃 데이터 네트워크의 리우팅을 지원할 수 있다. 상호 접속 타일의 전용 부분이 리프 클록 입력에 이용되는 추가의 입력을 지원하는데 이용될 수 있다. 추가적으로 또는 대안적으로, 사용자는 수평 분배 스파인(502)을 통해 흐르는 기존의 상호 접속을 탭 오프할 수 있다. 리프 클록은 수평 분배 스파인(502)을 이용하지 않고 별도로 게이팅되어 국부적으로 구동될 수 있다. 클록을 게이팅함으로써, 클록 전력이 감소될 수 있다.
전술한 것은 예시적인 구조를 기술한 것이지만, 하나 이상의 양태들에 따른 이와 다른 구조 및 추가적인 구조가 본 발명의 범위로부터 이탈하지 않고서 고안될 수 있으며, 본 발명의 범위는 아래의 청구항 및 이것의 등가물에 의해 결정된다. 상표는 각 소유자의 재산이다.

Claims (15)

  1. 집적 회로를 위한 장치에 있어서,
    회로 블록들의 어레이에 클록 네트워크를 갖는 상기 집적 회로를 포함하고;
    상기 클록 네트워크는 라우팅 트랙들, 분배 스파인(distribution spine)들, 클록 리프(clock leaf)들, 및 양방향 커플러들을 포함하고;
    상기 라우팅 트랙들 및 상기 분배 스파인들은 양방향이고;
    상기 분배 스파인들은 수평 및 수직 분배 스파인들을 포함하고;
    상기 라우팅 트랙들은 수평 라우팅 트랙들 및 수직 라우팅 트랙들을 포함하고, 상기 수평 라우팅 트랙들 및 상기 수직 라우팅 트랙들은 클록 소스로부터 하나 이상의 수평 및 수직 분배 스파인 교차점들 중 임의의 교차점까지의 경로를 제공하는 전용 클록 자원들이고;
    상기 클록 리프들은 수평 분배 스파인들의 수평 세그먼트들과 교차하고;
    상기 양방향 커플러들로서, 각각의 양방향 커플러는,
    상기 수직 라우팅 트랙들 중 하나에 결합된 입력 및 상기 수평 라우팅 트랙들 중 하나에 결합된 출력을 갖는 제 1의 3상태 버퍼, 및
    상기 제 1의 3상태 버퍼의 상기 출력에 결합된 입력 및 상기 제 1의 3상태 버퍼의 상기 입력에 결합된 출력을 갖는 제 2의 3상태 버퍼를 포함하고;
    상기 3상태 버퍼들 각각에 대한 제어 신호들은, 상기 3상태 버퍼들을 버퍼 상태 또는 하이 임피던스 3상태 중 어느 하나의 상태에 두도록 프로그램되고;
    상기 제 1의 3상태 버퍼가 상기 버퍼 상태에 있고 상기 제 2의 3상태 버퍼가 상기 하이 임피던스 3상태에 있는 경우, 상기 수직 라우팅 트랙들 중 하나의 수직 라우팅 트랙 상의 클록 신호가 상기 제 1의 3상태 버퍼를 통해 상기 수평 라우팅 트랙들 중 하나의 수평 라우팅 트랙에 전달되고;
    상기 제 1의 3상태 버퍼가 상기 하이 임피던스 3상태에 있고 상기 제 2의 3상태 버퍼가 상기 버퍼 상태에 있는 경우, 상기 수평 라우팅 트랙들 중 하나의 수평 라우팅 트랙 상의 클록 신호가 상기 제 2의 3상태 버퍼를 통해 상기 수직 라우팅 트랙에 전달되는 것인, 집적 회로를 위한 장치.
  2. 제 1 항에 있어서, 상기 라우팅 트랙들 및 상기 분배 스파인들은 상기 회로 블록들의 경계에서 세그먼트화되는 것인, 집적 회로를 위한 장치.
  3. 제 1 항에 있어서,
    상기 수직 분배 스파인들은 상기 수평 분배 스파인들에 각각 결합된 선택 가능한 지연을 포함하는 것인, 집적 회로를 위한 장치.
  4. 제 1 항에 있어서,
    상기 리프들의 세트는 상기 회로 블록들 중 하나의 회로 블록 내의 상기 분배 스파인들 중 수평 분배 스파인에 결합되어, 상기 수평 분배 스파인으로부터의 클록 신호를 상기 리프들의 세트에 제공하고;
    로컬 게이팅이 상기 수평 분배 스파인을 통하지 않고 상기 클록 신호를 상기 리프들의 세트에 제공하도록 상호 접속 타일이 구성되는 것인, 집적 회로를 위한 장치.
  5. 제 1 항에 있어서, 상기 분배 스파인들의 교차점들은 클록 루트(root)들의 풀(pool)을 제공하는 것인, 집적 회로를 위한 장치.
  6. 제 1 항에 있어서,
    상기 회로 블록들은 프로그램 가능 자원들의 패브릭 서브 영역들이고;
    상기 회로 블록들은 입력/출력 블록들 및 멀티 기가비트 트랜시버 블록들에 결합되도록 구성되는 것인, 집적 회로를 위한 장치.
  7. 제 6 항에 있어서,
    상기 분배 스파인들의 교차점들은 클록 루트의 풀을 제공하고;
    상기 분배 스파인들의 상기 교차점들은 프로그램 가능 자원들의 상기 패브릭 서브 영역들에 위치하는 것인, 집적 회로를 위한 장치.
  8. 제 1 항에 있어서,
    상기 분배 스파인들과 연관된 지연들을 더 포함하고;
    상기 지연들은 점진적인 지연을 제공하기 위해 선택적으로 이용 가능한 것인, 집적 회로를 위한 장치.
  9. 제 1 항에 있어서,
    상기 클록 리프들과 연관된 지연들을 더 포함하고;
    상기 지연들은 상기 회로 블록들 중 인접한 회로 블록들 사이의 스큐 불연속성을 확산시키기 위해 선택적으로 이용 가능한 것인, 집적 회로를 위한 장치.
  10. 제 1 항에 있어서, 상기 분배 스파인들은 상기 클록 리프들 앞의 클록 트리의 일부분에 대해 세그먼트 가능하고 양방향인 것인, 집적 회로를 위한 장치.
  11. 제 1 항에 있어서, 상기 분배 스파인들은 낮은 스큐 클록 네트워크 또는 낮은 인젝션(injection) 클록 네트워크 중 어느 하나에 대해 결합되는 것인, 집적 회로를 위한 장치.
  12. 멀티 다이 시스템에 있어서,
    제 1 항에 따른 제 1 집적 회로 다이 - 상기 제 1 집적 회로 다이는 제 1 클록 라우팅 자원들의 제 1 네트워크를 가짐 -;
    상기 제 1 집적 회로 다이의 클록 소스를 상기 제 1 클록 라우팅 자원들의 제 2 라우팅 트랙에 결합하는 상기 제 1 클록 라우팅 자원들의 제 1 라우팅 트랙;
    제 1 항에 따른 제 2 집적 회로 다이 - 상기 제 2 집적 회로 다이는 제 2 클록 라우팅 자원들의 제 2 네트워크를 가짐 -;
    상기 제 2 라우팅 트랙에 결합된 상기 제 2 클록 라우팅 자원들의 제 3 라우팅 트랙;
    상기 제 1 라우팅 트랙 및 상기 제 2 라우팅 트랙을 거쳐 상기 클록 소스에 결합된 회로 설계의 제 1 루트; 및
    상기 제 1 라우팅 트랙, 상기 제 2 라우팅 트랙, 및 상기 제 3 라우팅 트랙을 거쳐 상기 클록 소스에 결합된 상기 회로 설계의 제 2 루트
    를 포함하고,
    상기 제 1 루트는 상기 제 1 집적 회로 다이 상에 위치되고;
    상기 제 2 루트는 상기 제 2 집적 회로 다이 상에 위치되는 것인, 멀티 다이 시스템.
  13. 제 12 항에 있어서,
    상기 제 1 루트는 상기 제 1 클록 라우팅 자원들의 제 1 분배 스파인들 중 제 1 분배 스파인과 상기 제 2 라우팅 트랙의 교차점에 위치되고;
    상기 제 2 루트는 상기 제 2 클록 라우팅 자원들의 제 2 분배 스파인들 중 제 2 분배 스파인과 상기 제 3 라우팅 트랙의 교차점에 위치되는 것인, 멀티 다이 시스템.
  14. 제 13 항에 있어서, 상기 제 1 분배 스파인들이나 상기 제 2 분배 스파인들 모두 상기 제 1 집적 회로 다이와 상기 제 2 집적 회로 다이 사이의 다이 대 다이(die-to-die) 라우팅에 대해 결합되지 않는 것인, 멀티 다이 시스템.
  15. 삭제
KR1020157014343A 2012-11-15 2013-07-08 집적 회로를 위해 높은 유연성을 갖는 클록 네트워크 아키텍처 KR101917916B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/677,971 2012-11-15
US13/677,971 US8937491B2 (en) 2012-11-15 2012-11-15 Clock network architecture
PCT/US2013/049550 WO2014077910A1 (en) 2012-11-15 2013-07-08 Clock network architecture with higher flexibility for an integrated circuit

Publications (2)

Publication Number Publication Date
KR20150087256A KR20150087256A (ko) 2015-07-29
KR101917916B1 true KR101917916B1 (ko) 2018-11-12

Family

ID=48874508

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157014343A KR101917916B1 (ko) 2012-11-15 2013-07-08 집적 회로를 위해 높은 유연성을 갖는 클록 네트워크 아키텍처

Country Status (6)

Country Link
US (1) US8937491B2 (ko)
EP (1) EP2920666B1 (ko)
JP (1) JP6035429B2 (ko)
KR (1) KR101917916B1 (ko)
CN (1) CN105051642B (ko)
WO (1) WO2014077910A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10523207B2 (en) * 2014-08-15 2019-12-31 Altera Corporation Programmable circuit having multiple sectors
US9330220B1 (en) * 2014-08-25 2016-05-03 Xilinx, Inc. Clock region partitioning and clock routing
US9405877B1 (en) * 2014-12-22 2016-08-02 Cadence Design Systems, Inc. System and method of fast phase aligned local generation of clocks on multiple FPGA system
US9602106B1 (en) * 2015-03-05 2017-03-21 Altera Corporation Methods for optimizing circuit performance via configurable clock skews
CN106934080B (zh) * 2015-12-29 2020-06-30 京微雅格(北京)科技有限公司 一种高性能时钟信号驱动寄存器的布局方法
CN105866665B (zh) * 2016-03-31 2019-04-05 复旦大学 面向高性能SoC FPGA的功能遍历测试方法
US20180006653A1 (en) * 2016-06-29 2018-01-04 Altera Corporation Integrated circuits with hybrid fixed/configurable clock networks
CN106788353A (zh) * 2016-11-18 2017-05-31 深圳市紫光同创电子有限公司 一种时钟偏斜纠正方法及电路、终端设备
CN108235342A (zh) * 2016-12-21 2018-06-29 中兴通讯股份有限公司 一种通信装置和基站
US10380287B1 (en) * 2017-06-29 2019-08-13 Cadence Design Systems, Inc. Systems and methods for modifying a balanced clock structure
US10110234B1 (en) 2017-07-19 2018-10-23 Xilinx, Inc. Efficient system debug infrastructure for tiled architecture
US10528697B1 (en) * 2017-11-20 2020-01-07 Xilinx, Inc. Timing-closure methodology involving clock network in hardware designs
US10770443B2 (en) * 2018-09-28 2020-09-08 Intel Corporation Clock architecture in heterogeneous system-in-package
US11314277B1 (en) 2019-08-05 2022-04-26 Xilinx, Inc. Serial lane-to-lane skew reduction
CN111934684B (zh) * 2020-07-31 2022-12-20 新华三半导体技术有限公司 一种缓冲器、时钟网格电路和信号驱动方法
US11775004B2 (en) 2021-09-10 2023-10-03 International Business Machines Corporation Phase aligning and calibrating clocks from one phase lock loop (PLL) for a two-chip die module

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070188188A1 (en) 2004-07-27 2007-08-16 Easic Corporation Structured Integrated Circuit Device
JP2007336003A (ja) 2006-06-12 2007-12-27 Nec Electronics Corp クロック分配回路、半導体集積回路、クロック分配回路の形成方法及びそのプログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6075832A (en) * 1997-10-07 2000-06-13 Intel Corporation Method and apparatus for deskewing clock signals
US6292020B1 (en) 2000-08-01 2001-09-18 Xilinx, Inc. Low-skew programmable control routing for a programmable logic device
US6630855B2 (en) * 2001-03-29 2003-10-07 Intel Corporation Clock distribution phase alignment technique
JP2002305439A (ja) * 2001-04-06 2002-10-18 Sharp Corp プログラマブル論理回路および半導体装置
US6952813B1 (en) 2003-07-30 2005-10-04 Xilinx, Inc. Method and apparatus for selecting programmable interconnects to reduce clock skew
AU2005269568A1 (en) * 2004-07-27 2006-02-09 Easic Corporation Structured integrated circuit device
US7353487B1 (en) 2004-09-10 2008-04-01 Xilinx, Inc. Regional signal-distribution network for an integrated circuit
US7737751B1 (en) 2006-08-25 2010-06-15 Altera Corporation Periphery clock distribution network for a programmable logic device
US7362135B1 (en) * 2006-10-04 2008-04-22 Hyun-Taek Chang Apparatus and method for clock skew adjustment in a programmable logic fabric
US7576563B1 (en) * 2007-02-06 2009-08-18 Lattice Semiconductor Corporation High fan-out signal routing systems and methods
US7586355B2 (en) * 2007-07-11 2009-09-08 United Memories, Inc. Low skew clock distribution tree
US8271912B2 (en) * 2008-03-19 2012-09-18 International Business Machines Corporation Radiation tolerance by clock signal interleaving
US8742791B1 (en) * 2009-01-31 2014-06-03 Xilinx, Inc. Method and apparatus for preamble detection for a control signal
US7791370B1 (en) * 2009-05-21 2010-09-07 Altera Corporation Clock distribution techniques for channels

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070188188A1 (en) 2004-07-27 2007-08-16 Easic Corporation Structured Integrated Circuit Device
JP2007336003A (ja) 2006-06-12 2007-12-27 Nec Electronics Corp クロック分配回路、半導体集積回路、クロック分配回路の形成方法及びそのプログラム

Also Published As

Publication number Publication date
US20140132305A1 (en) 2014-05-15
JP2016506106A (ja) 2016-02-25
EP2920666B1 (en) 2018-02-21
CN105051642B (zh) 2017-10-13
US8937491B2 (en) 2015-01-20
WO2014077910A1 (en) 2014-05-22
CN105051642A (zh) 2015-11-11
EP2920666A1 (en) 2015-09-23
JP6035429B2 (ja) 2016-11-30
KR20150087256A (ko) 2015-07-29

Similar Documents

Publication Publication Date Title
KR101917916B1 (ko) 집적 회로를 위해 높은 유연성을 갖는 클록 네트워크 아키텍처
Trimberger Effects of FPGA architecture on FPGA routing
US6650142B1 (en) Enhanced CPLD macrocell module having selectable bypass of steering-based resource allocation and methods of use
US6348813B1 (en) Scalable architecture for high density CPLD's having two-level hierarchy of routing resources
US7095253B1 (en) Programmable multi-chip module
US7337422B1 (en) Programmably configurable logic-based macro
US7228451B1 (en) Programmable clock network for distributing clock signals to and between first and second sections of an integrated circuit
US6570404B1 (en) High-performance programmable logic architecture
US20070247189A1 (en) Field programmable semiconductor object array integrated circuit
JP2004524715A5 (ko)
US7145362B1 (en) Clock signal-distribution network for an integrated circuit
US7617472B1 (en) Regional signal-distribution network for an integrated circuit
US6825690B1 (en) Clock tree network in a field programmable gate array
US7750673B2 (en) Interconnect structure and method in programmable devices
US7755388B2 (en) Interconnect structure enabling indirect routing in programmable logic
US20070205803A1 (en) System for signal routing line aggregation in a field-programmable gate array
US9430433B1 (en) Multi-layer distributed network
US8120382B2 (en) Programmable integrated circuit with mirrored interconnect structure
US6653860B2 (en) Enhanced macrocell module having expandable product term sharing capability for use in high density CPLD architectures
US8773164B1 (en) Programmable interconnect network

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant