KR100735168B1 - 프로그램가능 게이트 어레이 집적 회로 - Google Patents

프로그램가능 게이트 어레이 집적 회로 Download PDF

Info

Publication number
KR100735168B1
KR100735168B1 KR1020017003344A KR20017003344A KR100735168B1 KR 100735168 B1 KR100735168 B1 KR 100735168B1 KR 1020017003344 A KR1020017003344 A KR 1020017003344A KR 20017003344 A KR20017003344 A KR 20017003344A KR 100735168 B1 KR100735168 B1 KR 100735168B1
Authority
KR
South Korea
Prior art keywords
cell
cells
logic
input
output
Prior art date
Application number
KR1020017003344A
Other languages
English (en)
Other versions
KR20010075126A (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 KR20010075126A publication Critical patent/KR20010075126A/ko
Application granted granted Critical
Publication of KR100735168B1 publication Critical patent/KR100735168B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • 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/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables
    • 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/1778Structural details for adapting physical parameters
    • H03K19/17796Structural details for adapting physical parameters for physical disposition of blocks

Abstract

2 입력 논리 디바이스 및 버퍼된 출력을 갖는 캐스케이드 NAND 게이트를 포함하는 아주 미세한 그레인 게이트 어레이 셀이 제공된다. 상기 NAND 게이트는 다른 셀로부터 캐스케이드 입력을 받아들이고, NAND 게이트의 캐스케이드 출력은 다른 셀에 대한 캐스케이드 입력으로서 제공되어 교차 결합된 디바이스들의 효율적인 구현을 용이하게 한다. 각각의 셀은 "시 오브 셀(sea of cells)" 레이아웃 방법을 용이하게 하는 완전한 라우팅 경로를 포함한다. 라우팅 작업을 용이하게 하기 위하여, 인접 셀들, 거의 인접한 셀들, 및 먼 셀들의 각 논리 입력에 프로그램된 상호접속 및 인접한 상위 및 하위 셀들과의 전술한 캐스케이드 상호접속을 용이하게 하도록 각 게이트 어레이 셀의 출력이 사전에 배선된다. 이 구성은 인접한 셀들 및 거의 인접한 셀들이 쉽게 상호되도록 하여 더 높은 레벨의 기능 블록들에 부합하는 매크로 셀들을 형성한다. 상기 게이트 어레이는 명시적인 라우팅 채널들을 포함하지 않고, 라우팅은 각각의 게이트 어레이 셀과 합체되는 사전 배선된 라우팅을 이용하여 이루어진다.

Description

프로그램가능 게이트 어레이 집적 회로{VERY FINE GRAIN FIELD PROGRAMMABLE GATE ARRAY ARCHITECTURE AND CIRCUITRY}
본 발명은 집적 회로 설계 분야에 관한 것으로서, 특히, 프로그램가능 게이트 어레이에 관한 것이다.
게이트 어레이 집적 회로는 본 기술 분야에 일반적인 것으로, 사전 결정되어 사전 제조가능한 게이트 어레이 셀들 가운데 상호접속을 통하여 주문형 집적 회로(application specific integrated circuits)의 설계를 가능하게 한다. FPGA(Field Programmmable Gate Array)는 공통으로 사용가능한 프로그래밍 디바이스들을 이용하여, 사용자측에서의 셀들 가운데 상호접속의 생성 또는 프로그래밍을 가능하게 한다. 상기 상호접속들은 퓨징(fusing) 링크에 의해 생성될 수도 있고, 선택된 스위치들을 인에이블(enabling)하게 함으로써, 또는 이용가능한 스위치들을 제어하는 패턴을 기억하는 등의 방법으로 생성될 수도 있다. 통상적으로, 설계자는 실행될 기능의 설명(description)을 제공하며, CAD(computer-aided-design) 프로그램은 그 기능을 수행하는데 요구된 상호접속 프로그래밍을 결정한다. 상기 설명은 논리도, 데이터 흐름도, 상태도 또는 상태표, 구조적 설계 언어(structured design language) 등일 수도 있다.
설계의 설명으로부터 게이트 어레이의 프로그래밍으로의 변환(conversion)은 게이트 어레이의 내용에 달려 있다. 만약, 게이트 어레이의 셀들이 카운터, 패리티 생성기 등의 하이 레벨의 블록(high level block)이라면, 요구된 프로그래밍의 양은 이들 대형의(large) 셀들 또는 조악한 그레인(coarse-grain) 셀들 간의 상호접속에 제한된다. 만약, 그렇지 않고, 게이트 어레이의 셀들이 게이트, 래치 등과 같은 로우 레벨의 블록이라면, 프로그래밍의 양은 훨씬 더 많게 되는데, 왜냐하면, 이들 더 작은 셀들 또는 미세한 그레인(fine-grain) 셀들이 전술한 카운터 및 패리티 생성기들과 같은 더 높은 레벨의 기능을 행하도록 상호접속될 필요가 있기 때문이다. 어떤 설계에서는, 미세한 그레인 셀을 이용하여 더 높은 회로 밀도가 얻어질 수 있는데, 왜냐하면, 더 높은 레벨의 기능들이 사용되지 않게 되는 더 큰 하이 레벨 셀보다 소형의 로우 레벨 셀로 보다 단순한 기능들이 행해질 수 있기 때문이다. 역으로, 일부 복잡한 설계들은 미세한 그레인 게이트 어레이에서 효과적으로 구현될 수 없는데, 왜냐하면, 로우 레벨 셀들 가운데 요구된 상호접속의 양이 상기 게이트 어레이의 용량을 초과하기 때문이다. 어떤 경우에는, 상호접속이 게이트 어레이의 용량 내에 있을 수도 있지만, 로우 레벨 셀들 가운데 결과적인 라우팅(routing) 경로들은 목적하는 기능을 행하는데 필요한 전파 지연 또는 스큐 범위(skew limits)를 초과한다. 최적의 성능을 위하여, 특정 기능과 관련되는 미세한 그레인 셀들이 공존 배치되어야 하지만, 이러한 공존 배치가 라우팅 "병목(bottlenecks)"을 생성할 때, 이것은 빈번히 기능적인 블록들 사이의 접속을 위한 라우팅에 제한을 준다.
회로 밀도, 라우팅 효율, 성능 범위 등 간의 절충점을 최적화하기 위한 다양한 구성이 제안되어 왔다. 1991년 3월 19일 Cliff 등에게 허여된 미국 특허 제 5,001,368호 "Configurable Logic Array"는 NAND 게이트 셀들만 포함하는 게이트 어레이 구조의 결함을 지적하고, 각 셀에 래치 기능을 포함하도록 부가적인 회로를 포함하는 것을 명시하고 있다. 만약 래치를 형성하는 장치들이 긴 라우팅 경로 또는 중간 버퍼들을 통하여 접속되면, 유입되는 위상 시프트가 래치를 발진시킬 수도 있기 때문에, 래치 기능에 대한 필요는 종래의 게이트 어레이 셀 설계에서 공통적인 주제였다. 통상적인 게이트 어레이 셀들은 일반적으로 적어도 하나의 래치, 때론 더 많은 래치를 포함한다. 1991년 8월 10일 GAlbraith 등에게 허여된 미국 특허 제 5,055,718호 "Logic Module with Configurable Combinational and Sequential Blocks"는 비동기 리셋으로 간단한 NAND 기능으로부터 에지 트리거 플립플롭까지의 조합적이고 순차적인 논리 기능들의 "넓은 변화(wide variety)"를 수행할 수 있는 구성가능한(configurable) 게이트 어레이 셀을 개시하고 있다. 그러나, 전술한 바와 같이, 단순한 NAND 게이트 또는 복잡한 플립플롭이 구성되는지에 관계없이 동일한 양의 셀 면적이 소모된다.
라우팅 작업을 용이하게 하기 위해, 1998년 3월 11일 Kean 등에게 허여된 미국 특허 제 5,831, 448호 "Function Unit for Fine-Grained FPGA"는 4×4 셀 블록, 4×4 셀 블록의 조직 등과 같이, 블록들의 계층(hierarchy) 속으로 구성가능한(configurable) 게이트 어레이 셀들의 조직을 개시하고 있다. 상기 계층의 각 레벨은 상기 레벨에 특유한 라우팅 경로를 포함하여, 라우팅 방법을 거리에 대하여 대수적으로 하는 것을 가능하게 한다. 전술한 미국 특허 제 5,594,363호는 또한 계층적 라우팅 채널들의 사용을 개시하고 있다. 상용화된 FPGA의 모토롤라 MPA 1000 패밀리는 포트 셀 및 클록 분배 셀과 같은 10×10 셀들 및 부수적인 성분들의 존(zone)들-상기 존(zone)들은 4분원(4 quadrants)으로 조직됨- 내에서 조직되는 다중 기능의 구성가능한(configurable) 게이트 어레이 셀들을 제공한다. 라우팅 경로들의 계층은, 로컬 상호접속이 인접한 셀들 및 거의 인접한(near-adjacent) 셀들 사이에 접속을 제공하고, 미디엄(medium) 상호접속이 존(zone)들 사이에 상호접속을 제공하며, 글로벌 상호접속이 글로벌 신호 및 버스 라우팅뿐만 아니라 4분원 사이에 상호접속을 제공하도록 제공된다.
계층적 라우팅이 상호접속 복잡성을 관리하기에 효과적이라 할지라도, 셀 계층이 설계에 사용된 기능 계층에 부합하지 않을 때, 셀들의 고정된 계층은 비효율적일 수도 있다. 마찬가지로, 비록 다중 기능의 구성가능한 셀들이 플립플롭과 같은 중간(medium) 복잡성 장치를 포함함으로써 라우팅 작업을 용이하게 한다 할지라도, 단순함에 관계없이 중간 복잡성의 중간 크기의 셀을 소비하므로, 얻을 수 있는 회로 밀도는 설계에서 로우 레벨 기능들의 수에 직접 영향을 받는다. 또한, 상기 영역(area)을 논리 요소들의 존(zone) 및 라우팅 경로들의 존으로 분리하면, 이용가능한 논리 요소들이 모든 이용 가능한 경로들의 실행으로 인해 다른 논리 요소들을 액세스할 수 없게 되거나, 또는 양호한 라우팅 경로가 특정 논리 요소들을 액세스할 수 없게 될 때 비효율적으로 될 수 있다.
본 발명의 목적은 아주 미세한 그레인 셀 구성(very fine grain cell configuration)을 갖는 게이트 어레이 구성을 제공하는 것이다. 본 발명의 다른 목적은 셀들 간에 효율적인 라우팅을 용이하게 하는 게이트 어레이 구성을 제공하는 것이다. 본 발명의 또 다른 목적은 게이트 어레이 셀들의 사용자 정의가능한 계층을 지원하는 게이트 어레이 구성을 제공하는 것이다. 본 발명의 또 다른 목적은 사용자 정의가능 매크로 셀들의 생성을 용이하게 하는 게이트 어레이 셀을 제공하는 것이다.
상기 목적들 및 다른 목적들은 아주 미세한 그레인 게이트 어레이 셀(very fine-grained gate array cell)을 제공함으로서 달성되며, "시 오브 셀(sea of cells)" 할당 및 라우팅 기술을 용이하게 하는 셀 레이아웃을 제공함으로서 달성된다. 양호한 게이트 어레이 셀은 그 응답(replication)이 최소한의 사용되지 않은 포텐셜(potential)로 논리를 구현할 수 있도록 하는 잘 정의된 "핵심(core)" 요소를 포함한다. 바람직한 실시예에서, 게이트 어레이 셀은 두개의 입력 논리 장치 및 버퍼를 갖는 캐스케이드 NAND 게이트를 포함한다. NAND 게이트는 다른 하나의 셀로부터 캐스케이드 입력을 받아들이고, NAND 게이트의 캐스케이드 출력은 다른 셀에 캐스케이드 입력으로서 제공되어 교차 결합된 장치들의 효과적인 실행을 용이하게 한다. 다른 바람직한 실시예에서, 게이트 어레이 셀은 세 개의 입력 신경(neural) 셀을 포함한다. 라우팅 작업을 용이하게 하기 위해, 이들 바람직한 실시예에서, 각각의 게이트 어레이 셀의 출력은 인접한 셀들, 거의 인접한 셀들 및 먼(far) 셀들의 각각의 논리 입력에 대한 프로그램된 상호접속 및 인접한 상부 및 하부 셀들에 대한 전술한 캐스케이드 접속을 용이하게 하기 위해 사전에 배선된다. 상기 구성은 인접한 셀들 및 거의 인접한 셀들이 쉽게 상호접속되어 더 높은 레벨의 기능 블록에 부합하는 매크로 셀들을 형성하도록 한다. 바람직한 실시예에서의 게이트 어레이는 명백한 라우팅 채널들을 포함하지 않으며, 라우팅은 각각의 게이트 어레이 셀과 합체되어 있는 사전에 배선된 라우팅을 이용하여 달성된다.
도 1은 본 발명에 따른 예시적인 게이트 어레이 셀의 논리도.
도 2는 본 발명에 따른 예시적인 멀티 셀(multi-cell)의 논리도.
도 3은 본 발명에 따른 예시적인 멀티 셀 플립플롭 구성을 도시한 도면.
도 4는 본 발명에 따른 예시적인 셀 라우팅(routing) 레이아웃(layout)을 도시한 도면.
도 5는 본 발명에 따른 예시적인 멀티 셀 라우팅 레이아웃을 도시한 도면.
도 6은 본 발명에 따른 예시적인 출력 팬아웃(fanout) 라우팅 레이아웃을 도시한 도면.
도 7은 본 발명에 따른 예시적인 다른 게이트 어레이 셀의 논리도.
도 8은 본 발명에 따른 예시적인 라우팅 경로를 도시한 도면.
도 9는 본 발명에 따른 또 다른 예시적인 게이트 어레이 셀의 논리도.
도 10은 본 발명에 따른, 인접한 셀 영역을 갖는 게이트 어레이의 일실시예를 도시한 도면.
도 11은 본 발명에 따른, 핵심 시냅스 기능을 포함하며, 신경망 설계에 특히 적합한 게이트 어레이 셀의 일실시예를 도시한 도면.
이하, 첨부한 도면을 참조한 예를 통하여 본 발명을 보다 상세히 설명한다.
본 발명에 따른 게이트 어레이 셀의 바람직한 실시예는 실질적인 할당 또는 라우팅 비효율성이 없는 논리 시스템에 대한 구축 블록(building block)으로서 사용될 수 있는 잘 정의된 기능을 갖는 핵심 요소(core element)를 포함한다. 본 기술 분야에서 공지되어 있는 바와 같이, 임의의 논리 디바이스는 NAND 게이트들만 또는 NOR 게이트들만 사용하여 생성될 수 있다. 그러나, NAND 게이트들 또는 NOR 게이트들과 같은 핵심 단일 게이트 셀들의 조합으로부터 생성된 설계는 상당한 수의 라우팅 경로들을 요구할 것이다. 전술한 바와 같이, 복잡한 다중 기능 셀들의 조합으로부터 생성된 설계는 NAND 또는 NOR 기능과 같은 로우 레벨 기능이, 로우 레벨 기능을 달성하도록 복잡한 다중 기능 셀들 중 한 셀에 할당될 때마다 빈번히 상당한 수의 게이트를 사용하지 않고 남겨둔다.
따라서, 게이트 어레이 셀의 바람직한 실시예는 셀들 중에서 라우팅 요건을 최소화하기에 충분한 기능적인 복잡성을 포함하지만, 로우 레벨 기능들에 대해 사용하지 않은 논리 요소들을 최소화하는 기능적인 핵심을 제공한다.
도 1은 본 발명의 상기 측면에 따른 게이트 어레이 셀(100)의 논리도의 일례를 도시한 것이다. 상기 셀(100)은 네 개의 프로그램가능 요소들, 즉, 멀티플렉서(110, 120, 140) 및 룩업 테이블(130)을 포함한다. 각각의 멀티플렉서(110, 120, 140)는 복수의 입력(101, 102, 103) 및 단일 출력(111, 121, 141)을 각각 포함한다. 각각의 멀티플렉서의 프로그래밍은 복수의 입력들 중 어느 입력이 출력에 접속되는지를 결정한다. 멀티플렉서들을 프로그래밍하는 데에는 다양한 기술들이 일반적으로 이용가능하다. 출력에 대해 각각의 입력을 연결 또는 단절하는데 퓨즈 링크(fused link)가 이용될 수 있으며, 패스 트랜지스터(pass-transistors)가 프로그램 가능 메모리 디바이스에 의해 제어되는 스위치를 형성할 수 있으며, 전기적 소거 가능 트랜지스터가 마찬가지로 프로그램 가능 스위치들을 형성할 수 있다.
멀티플렉서(110, 120)의 출력(111, 121)은 2 입력 룩업 테이블(130)에 대한 입력을 형성한다. 룩업 테이블(130)은 입력 논리값들의 네 개의 조합 각각에 대해 원하는 출력(131)을 생성하도록 프로그램된다. 즉, 예를 들어, AND 기능을 실행하기 위해, 1-1 입력 조합에 대응하는 테이블 항목은 논리 1로 프로그램되고, 다른 세 개의 입력 조합들(0-0, 0-1, 1-0) 각각에 대응하는 테이블 항목들은 논리 0으로 프로그램된다. 네 개의 입력 조합이 모두 프로그램가능 결과의 출력을 가지므로, 일반적으로 반전된 입력을 갖는 것으로 기술된 것을 포함하는 모든 논리 기능들이 얻어질 수 있다. 도 3은 다양한 프로그램된 논리 기능들을 도시하고 있다. 따라서, 도시된 바와 같이, 상기 멀티플렉서(110, 120) 및 룩업 테이블(130)의 프로그래밍은 임의의 입력(101) 및 임의의 입력(102)의 임의의 논리 조합을 구현할 수 있다.
멀티플렉서(140)는 출력(141)으로서, 두 개의 논리 입력(152', 153')중 하나의 입력 또는 고정된 논리 1 값을 선택하도록 프로그램된다. 하기에 보다 상세히 논의되는 바와 같이, 입력들(152', 153')은 인접 셀들의 중간 출력 신호들과 대응하며, 플립플롭, 가산기, 카운터 등과 같은 다양한 더 높은 레벨의 논리 블록에 공통인 캐스케이드 게이트들 및 교차 결합된 게이트들의 형성을 용이하게 한다.
NAND 게이트(150)는 룩업 테이블 출력(131) 및 멀티플렉서 출력(141)을 결합하여 중간 출력(151)을 형성한다. 인버팅(inverting) 버퍼(160)는 중간 출력(151)을 반전시켜 셀 출력(161)을 형성한다. NAND 게이트(150)는 일반적으로 캐스케이드 게이트 배열에 사용되므로, 본원 명세서에서는 참조 및 이해를 쉽게 하기 위해서 캐스케이드 게이트(150)라 지칭되며, 그 출력은 캐스케이드 출력(151)이라 지칭된다.
도 1에는 캐스케이드 출력(151) 및 셀 출력(161)에 팬아웃 화살표(151-153, 161-163)가 각각 도시되어 있다. 이들 팬아웃 화살표는 본 발명에 따르면, 각 셀(100)의 출력(151, 161)이 사전에 배선되어 다른 셀들의 입력(101, 102, 103)을 제공하는 역할을 한다. 도 2는 복수의 셀(250, 251, 260, 261, 270, 271)의 사전 배선된(pre-wired) 구성의 예를 도시하고 있다. 도 1의 셀 출력 노드(161)에 대응하는 셀(260)의 출력은 도 2에 참조 번호(210)로 표시되어 있으며, 인접한 셀(261)에 입력을 제공한다. 셀 출력(210)은 또한 셀(251, 271, 250, 270)에 입력(211, 212, 213, 214)을 각각 제공하도록 사전 배선된다. 유사한 방식으로, 셀(260)의 캐스케이드 출력(220)은 셀(250, 270)에 캐스케이드 입력(221, 222)(도 1의 노드(152', 153'))을 각각 제공하도록 사전 배선된다. 본 발명에 따르면, 게이트 어레이는 다른 셀들로 사전 배선된 팬아웃(fanout)을 각각 갖는 복수의 복제된(replicated) 셀들을 포함한다. 상기 예의 셀(260)의 팬아웃은 설명을 위해 제공된 것으로서, 이것으로부터의 대안적인 배열이 당업자들에게는 자명할 것이다. 일반적으로, 인접한 좌우 상하 셀들의 사전 배선은 래치들 및 플립플롭과 같은 조밀한 로우 및 미디엄 레벨의 논리 블록들의 생성을 용이하게 한다. 도 2에 도시된 대각으로 인접한 셀들은 또한 사전 배선되는데, 팬아웃 라인(215, 216)으로 도시되어 있으며, 더 먼 분리된 셀들도 또한 양호하게 사전 배선되어 있다. 유사한 방법으로, 셀(260)에 대한 각 입력은 캐스케이드 출력(230) 및 셀(250)의 셀 출력(240) 노드들로부터의 입력(231, 241)으로 도시된 바와 같이, 다른 셀로부터 사전 배선된다. 바람직한 실시예에서, 바로 인접한 셀들 외에, 셀 출력 노드(210, 240)의 팬아웃은 상기 셀을 넘어 상하좌우 각 방향으로 2, 4, 8 개의 셀들로 연장된다.
도 3은 도 2의 셀의 사전 배선된 팬아웃이 네 개의 셀(301-304)을 이용하여 더 높은 레벨의 논리 블록(300), 즉, D 플립플롭의 생성을 용이하게 하는 방법을 나타내고 있다. 논리 블록(300)을 생성하기 위해, 각각의 멀티플렉서 및 각각의 논리 셀(301-304)의 룩업 테이블은 전술한 바와 같이, 원하는 논리 기능을 달성하도록 프로그램된다. 상기 프로그래밍은 도 3에 각각의 멀티플렉서(311-314, 321-324, 341-344) 내의 접속 라인과 각 셀(301-304)의 룩업 테이블(331-334)에 대응하는 진리표(331'-334')로 도시되어 있다. 즉, 셀(301) 내에서, 제 1 멀티플렉서(311)는 D(391) 입력을 룩업 테이블(331)의 제 1 입력에 접속하고, 제 2 멀티플렉서(321)는 CLK(392) 입력을 룩업 테이블(331)의 제 2 입력에 접속한다.
룩업 테이블(331)은 진리표(331')에 의해 기술된 논리 기능을 처리한다. 일 반적으로, 상위 멀티플렉서 입력은 진리표에서 I1로 표시되고, 다른 입력은 I2로 표시된다. 상기 예에서, 진리표(331')는 단순한 OR 기능에 대응한다. 따라서, 멀티플렉서(311, 321)의 프로그래밍 및 룩업 테이블(331)은 D(391)(I1)와 CLK(392)(I2)의 OR을 제공한다. 유사한 방법으로, 멀티플렉서(313, 323)의 프로그래밍 및 룩업 테이블(333)은 CLK(392)(I2)와 D(391)(I1)의 반전의 OR을 제공한다. 멀티플렉서(312, 322)의 프로그래밍 및 룩업 테이블(332)은 셀(301)의 출력(381)과 CLK(392)(I2)의 반전의 OR을 제공하고, 멀티플렉서(314, 324)의 프로그래밍 및 룩업 테이블(334)은 셀(303(I1)의 출력(383)과 CLK(392)(I2)의 반전의 OR을 제공한다. 도시되지는 않았지만, CLK 신호(392)는 게이트 어레이의 각 셀(100) 내에서 액세스가능하도록 사전 배선되어 있는 글로벌 신호에 의해 제공될 수도 있다. D 신호(391-392)는 다른 셀로부터 올 수도 있으며, 상기 다른 셀의 출력의 팬아웃으로서 각 셀(301, 303)에 제공될 수도 있다. 멀티플렉서(341-344)의 프로그래밍은 도 3에 교차 결합된 게이트를 제공하도록 도시되어 있다. 즉, 멀티플렉서(341, 343)의 프로그래밍은 캐스케이드 게이트(351, 353)의 교차 결합을 제공하고, 멀티플렉서(342, 344)의 프로그래밍은 캐스케이드 게이트(352, 354)의 교차 결합을 제공한다. 셀(302, 303)의 출력Q(398) 및 Q'(399)는 클록 CLK(392) 및 데이터 입력 D(391)를 갖는 종래의 포지티브 에지 트리거된(positive edge triggered) D-flip-flop의 출력으로 나타낼 수 있다. 본 발명에 따르면, 각각의 상위 및 하위 인접 셀의 캐스케이드 입력에 대한 각 셀의 캐스케이드 출력의 사전 배선은 최소 상호접속 경로 지연을 갖는 래치 디바이스의 효과적이고 컴팩트한 실행을 제공한다는 점 을 주지하라.
따라서, 통상적인 순차 논리 설계를 위한 셀(100)의 프로그램가능 하프래치(half-latch) 기능과 같은 애플리케이션 계층을 위한 구축 블록(building block)으로서 사용될 수 있는 핵심 기능을 결정함으로서, 최소량의 셀 간 라우팅 및 로우 레벨 기능들에 대해 최소량의 사용하지 않은 논리로 복잡한 설계들이 생성될 수 있다. 유사한 방식으로, 도 11의 셀(900)은 핵심 시냅스(synapse) 기능을 포함하며, 신경망 설계에 특히 적합한 게이트 어레이 셀의 일실시예이다. 시냅스 셀(900)은 프로그램가능 가중(weight) 표(930)에 대한 복수의 입력 신호(911, 921, ...)를 선택하는 복수의 입력 멀티플렉서(910, 920, ...)를 포함한다. 신경망 기술에 따라서, 각각의 입력은 연습 기간 동안 조절될 수 있는 가중치를 할당받는다. 프로그램가능 가중 표(930)의 출력(951)은 논리값 "1"을 갖는 각 입력 신호에 대응하는 프로그램된 가중치의 합이다. 상기 합은 합계 출력(951)에 대한 다중 비트 값으로서, 도 11에 "M" 비트 폭으로 표시되어 있다. 본 발명에 따르면, 셀(100)의 캐스케이드 출력(152, 153)과 유사하게, 가중 표(930)의 합계 출력(951)은 M 비트 출력 라인(952, 953)으로 표시된 인접한 셀들(도시되지 않음)로 팬아웃된다. 임계치 검출기(960)는 합계 출력(951)과, 인접 셀들로부터의 합계 출력(952', 953')을 수신한다. 제어기(970)는 입력 합계 값(951, 952', 953')에 의거하여, 임계치 검출기에 언제 "점호(fire)"할지를 결정하는 파라미터를 제공한다. 제어기(970)는 예를 들어, 임계치 검출에 합계 입력(952')이 사용되는지 또는 (953')이 사용되는지의 여부를 제어하도록 프로그램된다. 만약, 예를 들어, 총 다섯 개의 입력 신호(911, 921, ...,)가 있다면, 인접한 출력 합계 신호(952', 953')는 10개의 부가적인 입력 신호까지가 상기 시냅스 셀(900)의 점호(firing)에 영향을 미치도록 한다. 만약 다섯 개 이하의 입력이 상기 시냅스 셀(900)에 접속되면, 상기 프로그램가능 제어기(970)는 임계치 검출기를 제어하도록 프로그램되어 인접한 합계 입력(952', 953')을 무시한다. 유사한 방식으로, 상기 제어기(970)는 상기 임계치 검출기(960)가 점호 신호(961)의 어서트(assert) 여부를 결정하는데 사용하는 임계치를 제어하도록 프로그램된다. 본 발명에 따르면, 출력 점호 신호(961)는 셀(100)의 출력(160)과 유사하게 다른 인접한 셀들 및 멀리 인접한 셀들로 팬아웃(962)하고, 다른 셀들(900)의 입력 멀티플렉서(910, 920)에 대한 입력을 형성한다. 이런 방식으로, 복수의 셀(900)은 효과적으로 신경망을 형성하도록 구성될 수 있다. 멀티플렉서(910, 920)의 수, 팬아웃(952, 953)의 범위, 임계치 검출기(960)로의 합계 입력(952', 953')의 수, 합계 신호(951, 952', 953')의 비트 폭, 및 시냅스 셀(900)의 기타 파라미터들은 통상적으로 종래의 신경망의 설계와 관련된 목적하는 구조적 범위에 기초하여 결정된다. 바람직한 실시예에서, 다섯 개의 입력을 각각 갖는 다섯 개의 입력 멀티플렉서(910, 920)가 제공되며, 합계 출력(951)은 8 비트 록이며, 임계치 검출기(960)는 세 개의 합계 입력(951, 952', 953')을 받아들인다. 가중 표(930)는 프로그램 가능하고, 제어기(970)가 프로그램 가능하기 때문에, 다른 기능들이 셀(900)을 통해 구현될 수도 있음을 주지하라. 특히, 셀(900)은, 1 이외의 모든 입력을 0으로 출력하도록 가중 표를 프로그래밍하고, 최대 가중치를 선택 입력에 할당하여, 프로그램된 최대 가중치가 입력으로서 수신될 때 점호 신호(961)를 어서트하도록 제어기(970)를 프로그래밍함으로서, 패스스루(pass-through) 팬아웃 장치로서 프로그램될 수 있다. 이런 방식으로, 요구된다면 셀(900)의 출력(961)은 다른 셀들(900) 중 자신에 부착된 하나의 셀을 이용하여 먼 셀들(900)에 도달할 수 있다.
바람직한 실시예에서, 셀 "레이아웃" 프로그램은 게이트 어레이와 관련된다. 상기 셀 레이아웃 프로그램은 게이트 어레이의 셀들을 설계의 각 논리 요소에 할당되고, 각각의 할당된 셀의 적절한 프로그램을 행한다. 본 발명에 따르면, 각각의 셀 출력의 사전 배선된 팬아웃 및 사전 배선된 캐스케이드 입력 및 출력 접속은, 도 3의 D 플립플롭 논리 블록과 같은 사전 결정된 논리 블록, 또는 매크로들의 정의를 허용함으로서, 할당 및 프로그래밍 작업을 용이하게 한다. 설계자가 D 플립플롭을 설계에 포함시키면, 셀 레이아웃 프로그램은 단순히 네 개의 인접한 셀들(100)을 할당하고, 전술한 바와 같이 각각의 멀티플렉서 및 룩업 테이블에 대한 적절한 프로그래밍을 스케줄한다. 이것은, 큰 블록이 실제로 설계에 사용될 때까지 이들 큰 논리 블록을 달성하는데 요구되는 모든 게이트들의 고정된 사전 결정된 할당을 필요로 하지 않으면서, 플립플롭과 같은 큰 논리 블록들의 콤팩트하고 효과적인 구현을 가능하게 함을 주지하라. 예를 들면, 상기 설계가 D 플립플롭의 할당/생성을 요구하는지의 여부에 따라서 도 2에 도시된 여섯 개의 셀들이 D 플립플롭을 포함하도록 혹은 포함하지 않도록 프로그램될 수 있다. 각 셀 내에 사전에 구성된 D 플립플롭을 포함하는 종래의 대형 그레인 게이트 어레이 셀 구조와는 반대로, 예를 들면, 도 3의 D 플립플롭을 포함하는 네 개의 셀 각각은, D 플립플롭이 레이아웃 프로그램에 의해 구성되는 특정 설계에 요구되지 않으면 다른 작업을 수행하도록 할당될 수 있다. 이와 유사한 방식으로, 셀(900)은, 인접한 셀들(900)을 할당하고 다수의 입력들에 따라서 임계치 검출기(960)가 점호를 하도록 제어기(970)를 적절히 프로그램함으로서, 다수의 입력을 갖는 시냅스의 효과적인 레이아웃을 가능하게 한다. 역으로, 단지 몇 개의 입력을 갖는 시냅스는 단일 셀(900)에 할당되며, 인접 셀들을 무시하도록 제어기(970)를 적절히 프로그램하면 인접 셀들은 다른 시냅스에 할당될 수 있다.
도 2 및 3의 배선도는 셀들 간에 라우팅 채널의 사용을 암시하고 있지만, 본 발명에 따르면, 라우팅은 각 셀 내에서 발생하며, 종래의 라우팅 채널들은 제거된다. 도 4는 본 발명에 따른 셀(400)에 대한 완전한 셀 라우팅 레이아웃의 예를 도시한 것이며, 도 5 및 6은 사전 결정된 라우팅 채널을 요구하지 않는 라우팅 구성을 달성하도록 셀의 접합부(abutment)를 도시한 것이다. 논리 셀들은 도 5의 물리적 셀들(400) 중 어느 하나에 할당될 수 있기 때문에, 사전 할당된 라우팅 영역에 관계없이, 접합된 셀들의 인접한 영역을 "sea of cell"이라 지칭한다. 도 10은 본 발명에 따른 연속 셀들(810)의 영역을 갖는 게이트 어레이(800)의 일실시예를 도시한 것이다. 또한, 도 10에는 종래의 입력/출력 셀(840) 및 다른 예시적인 회로 블록(820, 830)이 도시되어 있다.
도 4에는 도 1의 논리 셀(100)의 논리 출력 노드(161)에 대응하는 셀(400)의 출력 노드 Q(461)가 도시되어 있다. 참조 및 이해의 편의를 위해, 도 1의 논리 셀(100)은 본 발명의 상호접속 라우팅 특성의 원리를 나타내는데 이용된다. 시냅 스 셀(900) 들과 같은 다른 핵심 셀들이 본 발명의 상기 특성을 달성하도록 유사하게 구성될 수 있음은 하기의 설명으로부터 당업자에게 명백할 것이다.
노드(461)로부터 우측, 상측, 좌측 및 하측 방향으로 각각 접속을 제공하는 배선의 네 부분(461R, 461U, 461L, 461D)이 셀(400)의 노드(461)에 접속된다. 셀(400)을 가로질러 유입되는 배선내의 조그(jog)는 노드(461) 상의 신호를 인접한 셀들 상의 적절한 노드들로 전파한다. 예를 들면, 배선(461D)은 셀(400) 내의 배선(471D)과 수직으로 정렬된다. 배선(471D)은 노드(401A)에 접속되며, 이것은 도 1의 셀(100)의 입력 신호(101)에 대응한다. 상기 셀(400)이 그 아래에 있는 다른 셀에 인접하면, 셀(400)의 461D에서의 출력 신호(461)는 다른 셀의 대응하는 배선(471D) 및 노드(401A)를 통하여 다른 셀의 입력 신호(101)에 접속될 것이다. 도 6은 본 발명에 따른 인접 셀들에 대한 셀의 출력 신호(461)의 결과적인 팬아웃을 도시한 것이다. 도 6에서 굵은 선은 셀이 접할 때 노드(461)에 전기적으로 접속되는 배선을 나타내며, 팬아웃 접속이 이루어지는 셀들 각각은 음영 셀로 표시되어 있다. 예를 들어, 하방 경로를 따라가 보면, 셀(400A)의 노드(461)는 참조번호(471)에서 바로 아래 인접한 셀(400B)의 입력 노드에 접속되고, 참조번호(481)에서 대각으로 인접한 셀(400C)에 인접하며, 참조번호(491)에서 먼 셀(400D)에 인접한다. 위에서 알 수 있듯이, 사전 배선된 라우팅은 참조번호(491)를 넘어서 연장되어 예를 들어 셀(400A)로부터 아래쪽의 4, 8 개 등의 원거리(distant) 셀에 접속할 수 있다. 예를 들어 셀(400X)의 출력 노드(461')에 대응하는 노드들(471', 481', 491')로 도시된 바와 같이, 각 셀의 각각의 출력 노드의 팬아웃은 유사하게 사전 배선되며, 노드(461)에 접속된 라인들의 굵은 아웃라인은 단지 설명을 위해 제공된 것임에 주의하라. 도 1에서 논리 셀(100)의 캐스케이드 출력(152, 153) 및 캐스케이드 입력(152', 153')에 대응하는 도 4에서 셀(400)의 사전 배선된 노드(452, 453, 452', 453')는 인접한 수직 셀들 사이에 캐스케이드 접속을 제공하며, 도 6에서는 명확성을 위해 도시하지 않았다.
인접한 셀들의 인접한 영역을 제공함으로써, 도 5 및 10에 도시된 바와 같이, 구성의 계층이 게이트 어레이에 대해 사전 결정되지 않음에 주의하라. 즉, 물리적으로 속박된 존들(zones) 내에 어떠한 셀도 없으며, 4분면 내에 어떠한 존도 없다. 그러나, D 플립플롭(300)과 같은 논리 기능 또는 동기 카운터와 같은 보다 복잡한 기능의 계층을 이룩할 수 있는 셀들의 배열을 사전 결정함으로서, 본 발명에 의해 계층적 레이아웃의 이점이 달성될 수 있는데, 왜냐 하면, 레이아웃 계층은 프로그램되는 특정 설계의 요건에 따라서 주문식으로 생성되기 때문이다. 즉, 게이트 어레이의 논리 설계에 이용되는 각각의 D 플립플롭 또는 사용자에 의해 정의되는 다른 어떠한 매크로도 프로그램된 게이트 어레이에서 대응하는 매크로 레이아웃 구조를 가질 것이다.
셀 라우팅 및 논리 회로의 대안적인 구성은 당업자에게 명확할 것이다. 예를 들어, 도 7은 도 1의 셀(100)과 유사한 셀(500)을 도시하고 있다. 셀(500)은 추가적인 두 개의 버퍼(510, 520) 및 버퍼(510, 520) 중 어느 하나의 출력(511, 521) 또는 캐스케이드 게이트(150)를 사용할지를 선택하는 세 개의 입력 프로그램가능 멀티플렉서(550)를 포함한다. 캐스케이드 게이트(150)가 선택되면, 셀(500)의 동작은 셀(100)고 동일하며, 위에서 논의하였다. 버퍼(510, 520) 중 하나의 버퍼의 선택은 멀티플렉서(110, 120)를 통하여 출력 버퍼(160)로 직접 상기 선택된 입력 신호(101, 102)를 전파한다. 따라서, 셀(500)은, 셀(900)에 대해 전술한 패스스루(pass-through) 팬아웃 기능과 마찬가지로 입력 신호(101, 102)를 출력(161)으로 재구성하여 전파하는 "중계기(repeater)" 기능을 제공하도록 구성될 수 있다. 상기 중계기 기능은 로컬 클록 발생기와 같이 하이 팬아웃 게이트 상에 로딩(loading)을 분배하거나 또는 신호가 긴 라우팅 거리를 가로질러 전파될 때 신호 저하를 회피하도록 하는데 이용될 수 있다.
도 8은 본 발명에 따라서 연장된 거리를 통해 신호를 전파하는 셀(500)의 전술한 중계기 기능을 이용하는 라우팅 경로의 일례를 도시한 것이다. 도 8에서, 셀(600)의 출력 노드(661)에서 생성되는 신호(601)는 위치(601A, 601B, 601C)에서 이용가능하도록 만들어진 다수의 셀들을 가로질러 전파될 필요가 있다고 가정한다. 라우팅(605)의 제 1 부분은 셀(600)의 출력 노드(661)의 팬아웃 경로를 이용하여 위치(601C)에 도달한다. 셀(610)에서, 출력 노드(661)로부터의 라우팅 경로는 끝난다. 셀(610)에서 점선으로 나타낸 바와 같이, 셀(610)은 중계기 셀로서 구성되어 신호(601)를 셀(610)의 출력 노드로 전파한다. 셀(610)의 출력으로부터의 사전 배선된 라우팅 부분(615)은 셀(620)에서 끝나고, 셀(620)은 중계기 셀로서 구성되어 신호(601)를 셀(620)의 출력 노드로 전파한다. 상기 사전 배선된 라우팅 부분 및 중계기 셀들의 순서는 중계기 셀(630, 640)을 통하여 위치(601A)로 중계되고, 중계기 셀(630, 650, 660)을 통하여 위치(601B)로 중계된다. 따라서, 이런 방식으로, 전용 라우팅 채널 없이 각각의 중계기 셀에서 신호가 재조절되어 게이트 어레이를 가로질러 전파될 수 있다. 바람직한 실시예에서, 각 셀 출력의 사전 배선된 팬아웃은 8 개 이상의 셀 거리까지 연장되어 중계기 셀 할당의 수는 도 8의 예에서 도시된 것보다 훨씬 빈번하지 않게 발생함을 주목하라.
이상은 본 발명의 원리를 단순히 예증할 뿐이다. 따라서, 당업자라면 본원 명세서에 명시적으로 설명 또는 도시하지 않았을지라도 본 발명의 정신 및 범주 내에서 본 발명을 구현하는 다양한 장치를 고안할 수 있을 것이다. 예를 들면, 도 9는 개선된 중계기 셀 성능을 제공하는 또 다른 셀 설계(700)를 도시한 것이다. 도 7의 셀(500)과 비교하여, 셀(700)은 셀(500)의 세 개의 입력 멀티플렉서(550)에 비하여 7개의 입력 멀티플렉서(750)를 갖는다. 상기 멀티플렉서(750)에 대한 부가적인 입력은, 먼 상부(far upper)(701), 먼 우측(far right)(702), 먼 하부(far lower)(703), 먼 좌측(far left)(704) 입력 신호 지정으로 나타낸 바와 같이, 긴 수직 또는 수평 거리에 의해 분리되는 셀로부터의 출력 신호이다. 셀(500)의 버퍼(510, 520)는 셀(700)에는 없고, 셀(700) 내의 출력 버퍼(760)는 비반전(non-inverting)이다. 본 기술 분야에 공지되어 있는 바와 같이, 상기 비반전 버퍼(760)는 두 개의 인버터(도시되지 않음)를 포함하며, 제 1 인버터의 크기는 입력 라인(701-704) 상에 최소 로딩(loading)을 제공하는 정도이고, 제 2 인버터의 크기는 출력 라인(761)에 충분한 구동 용량을 제공할 정도이다.
다른 대안들도 또한 자명하다. 예를 들면, 캐스케이드 논리 디바이스(150)로서 NOR 게이트를 이용하거나, 캐스케이드 디바이스(150)로서 다른 프로그램가능 룩업 테이블을 이용하여 게이트 어레이 셀(100)의 특정 논리 구성이 변경될 수도 있다. 유사하게, 출력 버퍼(160)는 "투명한 버퍼(transparent buffer)"일 수도 있고, 또는 캣케이드 버퍼가 출력 노드 팬아웃을 구동하기에 충분한 구동 용량을 갖도록 제공된 단순한 와이어(wire)일 수도 있다. 상기 및 다른 구성의 변형은 본 발명을 고려하여 당업자에게 자명할 것이며, 첨부한 청구범위 내에 포함된다.

Claims (18)

  1. 삭제
  2. 각각이 셀 입력 신호를 수신하도록 구성된 복수의 셀을 포함하는 프로그램가능 게이트 어레이 집적 회로에 있어서,
    상기 셀 각각은,
    복수의 제 1 셀 입력 신호를 입력으로서 수신하도록 구성되고, 상기 복수의 제 1 셀 입력 신호들 중 하나를 선택하고, 그로부터 제 1 논리 입력을 제공하도록 프로그램가능 제 1 멀티플렉서와,
    복수의 제 2 셀 입력 신호를 입력으로서 수신하도록 구성되고, 상기 복수의 제 2 셀 입력 신호들 중 하나를 선택하고, 그로부터 제 2 논리 입력을 제공하도록 프로그램가능 제 2 멀티플렉서와,
    상기 제 1 멀티플렉서 및 제 상기 2 멀티플렉서에 동작 가능하게 결합되며, 상기 제 1 논리 입력 및 상기 제 2 논리 입력에 따라서 제 1 논리 출력을 제공하는 프로그램가능 논리 디바이스와,
    복수의 제 3 셀 입력 신호를 입력으로서 수신하도록 구성되고, 상기 복수의 제 3 셀 입력 신호들 중 하나를 선택하고, 그로부터 캐스케이드 논리 입력을 제공하도록 프로그램가능 제 3 멀티플렉서와,
    상기 프로그램가능 논리 디바이스와 상기 제 3 멀티플렉서에 동작 가능하게 결합되며, 상기 캐스케이드 논리 입력 및 상기 제 1 논리 출력에 따라서 캐스케이드 출력을 제공하는 캐스케이드 논리 디바이스와,
    상기 캐스케이드 논리 디바이스에 동작 가능하게 결합되며, 복수의 다른 셀들에 동작가능하게 결합되어 상기 복수의 셀 중 적어도 하나의 다른 셀의 셀 입력 신호를 형성하도록 구성되어 있는 셀 논리 출력을 제공하는 출력 버퍼를 포함하는
    프로그램가능 게이트 어레이 집적 회로.
  3. 제 2 항에 있어서,
    상기 캐스케이드 논리 디바이스는 NAND 게이트, NOR 게이트 및 제 2 프로그램가능 논리 디바이스 중 적어도 하나인
    프로그램가능 게이트 어레이 집적 회로.
  4. 제 2 항에 있어서,
    각 셀의 상기 캐스케이드 출력은 상기 적어도 하나의 다른 셀의 상기 복수의 제 3 셀 입력 신호들 중 적어도 하나에 동작가능하게 결합되는 프로그램가능 게이트 어레이 집적 회로.
  5. 제 2 항에 있어서,
    상기 복수의 셀의 각 셀은
    상기 셀이 상기 적어도 하나의 다른 셀에 인접할 때 상기 셀 논리 출력을 상기 적어도 하나의 다른 셀의 상기 복수의 제 1 셀 입력 신호에 동작 가능하게 결합하는 복수의 셀 라우팅 경로를 더 포함하는 프로그램가능 게이트 어레이 집적회로.
  6. 제 5 항에 있어서,
    상기 복수의 셀의 각 셀의 상기 논리 출력의 상기 동작 가능한 결합은 상기 복수의 셀 라우팅 경로를 통하여만 이루어지는 프로그램가능 게이트 어레이 집적 회로.
  7. 제 2 항에 있어서,
    인접하는 상기 복수의 셀은 프로그램가능 게이트 어레이 내에서 셀들의 단일 영역을 형성하는 프로그램가능 게이트 어레이 집적 회로.
  8. 제 2 항에 있어서,
    상기 복수의 셀들 중 적어도 하나의 셀의 프로그램가능 디바이스는 상기 입력 신호와 동일한 출력 신호를 생성하도록 구성되어, 상기 입력 신호를 원거리의 다른 셀(distant other cell)로 전파하는 것을 용이하게 하는 중계기 셀을 제공하는 프로그램가능 게이트 어레이 집적 회로.
  9. 제 2 항에 있어서,
    각각의 셀은 제 1 범위 내의 제 1 인접 셀 및 상기 제 1 범위와 직교하는 제 2 범위 내의 제 2 인접 셀을 가지며,
    인접하는 상기 복수의 셀은, 각각의 셀이 그것의 제 1 인접 셀과 접하고, 각각의 셀이 그것의 제 2 인접 셀과 접하도록 구성되어, 셀의 2차원 어레이를 형성하는 프로그램가능 게이트 어레이 집적 회로.
  10. 제 4 항에 있어서,
    복수의 셀 라우팅 경로를 더 포함하며, 상기 복수의 셀 라우팅 경로는
    상기 캐스케이드 출력과 상기 다른 프로그램가능 논리 셀의 제 1 접속과,
    상기 셀 논리 출력과 상기 다른 프로그램가능 논리 셀의 제 2 접속과,
    상기 다른 프로그램가능 논리 셀의 논리 출력 노드로부터 상기 복수의 제 1 셀 입력 신호 및 상기 복수의 제 2 셀 입력 신호 중 적어도 하나로의 제 3 접속과,
    상기 다른 프로그램가능 논리 셀의 캐스케이드 출력 노드로부터 상기 복수의 제 3 셀 입력 신호 중 적어도 하나로의 제 4 접속을 용이하게 하는 프로그램가능 게이트 어레이 집적회로.
  11. 제 2 항에 있어서,
    상기 캐스케이드 논리 디바이스 및 상기 출력 버퍼에 동작 가능하게 결합되며, 상기 캐스케이드 출력 및 적어도 하나의 다른 셀 입력 신호 중 하나를 선택하고, 이로부터 상기 셀 논리 출력이 의존하는 상기 출력 버퍼로의 입력을 제공하도록 프로그램가능 제 4 멀티플렉서를 더 포함하는 프로그램가능 게이트 어레이 집적 회로.
  12. 각각이 셀 입력 단자를 통해 셀 입력 신호를 수신하도록 구성된 복수의 셀을 포함하는 프로그램가능 게이트 어레이 집적 회로에 있어서,
    상기 셀 각각은,
    복수의 제 1 셀 입력 신호 중 하나를 수신하고, 그로부터 제 1 논리 입력을 제공하도록 프로그램가능 제 1 멀티플렉서와,
    복수의 제 2 셀 입력 신호 중 하나를 수신하고, 그로부터 제 2 논리 입력을 제공하도록 프로그램가능 제 2 멀티플렉서와,
    상기 제 1 멀티플렉서 및 제 2 멀티플렉서에 동작 가능하게 결합되며, 상기 제 1 논리 입력, 상기 제 1 논리 입력과 관련된 프로그램된 제 1 가중치, 상기 제 2 논리 입력, 상기 제 2 논리 입력과 관련된 프로그램된 제 2 가중치에 따라서 제 1 합계 출력을 제공하는 프로그램가능 가중 테이블과,
    상기 제 1 합계 출력에 따라서 출력 신호를 제공하는 임계치 검출기를 포함하는
    프로그램가능 게이트 어레이 집적 회로.
  13. 제 12 항에 있어서,
    상기 복수의 셀의 각 셀은
    상기 셀이 상기 적어도 하나의 다른 셀에 인접할 때 상기 셀 논리 출력을 상기 적어도 하나의 다른 셀의 상기 복수의 제 1 셀 입력 신호에 동작 가능하게 결합하는 복수의 셀 라우팅 경로를 더 포함하는 프로그램가능 게이트 어레이 집적 회로.
  14. 제 13 항에 있어서,
    상기 복수의 셀의 각 셀의 상기 논리 출력의 상기 동작 가능한 결합은 상기 복수의 셀 라우팅 경로를 통하여만 이루어지는 프로그램가능 게이트 어레이 집적 회로.
  15. 제 12 항에 있어서,
    인접하는 상기 복수의 셀은 프로그램가능 게이트 어레이 내에서 셀들의 단일 영역을 형성하는 프로그램가능 게이트 어레이 집적 회로.
  16. 제 12 항에 있어서,
    각각의 셀은 제 1 범위 내의 제 1 인접 셀 및 상기 제 1 범위와 직교하는 제 2 범위 내의 제 2 인접 셀을 가지며,
    인접하는 상기 복수의 셀은, 각각의 셀이 그것의 제 1 인접 셀과 접하고, 각각의 셀이 그것의 제 2 인접 셀과 접하도록 구성되어, 셀의 2차원 어레이를 형성하는 프로그램가능 게이트 어레이 집적 회로.
  17. 제 12 항에 있어서,
    상기 캐스케이드 논리 디바이스 및 상기 출력 버퍼에 동작 가능하게 결합되며, 상기 캐스케이드 출력 및 적어도 하나의 다른 셀 입력 신호 중 하나를 선택하고, 이로부터 상기 셀 논리 출력이 의존하는 상기 출력 버퍼로의 입력을 제공하도록 프로그램가능 제 4 멀티플렉서를 더 포함하는 프로그램가능 게이트 어레이 집적 회로.
  18. 제 12 항에 있어서,
    상기 캐스케이드 논리 디바이스는 NAND 게이트, NOR 게이트 및 제 2 프로그램가능 논리 디바이스 중 적어도 하나인
    프로그램가능 게이트 어레이 집적 회로.
KR1020017003344A 1999-07-16 2000-07-12 프로그램가능 게이트 어레이 집적 회로 KR100735168B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/354,607 1999-07-16
US09/354,607 US6294926B1 (en) 1999-07-16 1999-07-16 Very fine-grain field programmable gate array architecture and circuitry

Publications (2)

Publication Number Publication Date
KR20010075126A KR20010075126A (ko) 2001-08-09
KR100735168B1 true KR100735168B1 (ko) 2007-07-03

Family

ID=23394120

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017003344A KR100735168B1 (ko) 1999-07-16 2000-07-12 프로그램가능 게이트 어레이 집적 회로

Country Status (8)

Country Link
US (2) US6294926B1 (ko)
EP (1) EP1114514B1 (ko)
JP (1) JP2003505911A (ko)
KR (1) KR100735168B1 (ko)
CN (1) CN1181617C (ko)
DE (1) DE60041319D1 (ko)
TW (1) TW567669B (ko)
WO (1) WO2001006657A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567290B2 (en) * 2000-07-05 2003-05-20 Mosaic Systems, Inc. High-speed low-power semiconductor memory architecture
SE0102199D0 (sv) * 2001-06-20 2001-06-20 Ericsson Telefon Ab L M Upgrading field programmable gate arrays over datacommunication networks
US6747480B1 (en) * 2002-07-12 2004-06-08 Altera Corporation Programmable logic devices with bidirect ional cascades
US6886152B1 (en) * 2002-08-09 2005-04-26 Xilinx, Inc. Delay optimization in signal routing
US7243329B2 (en) * 2004-07-02 2007-07-10 Altera Corporation Application-specific integrated circuit equivalents of programmable logic and associated methods
US8046729B1 (en) 2004-11-24 2011-10-25 Altera Corporation Method and apparatus for composing and decomposing low-skew networks
JP2009507414A (ja) 2005-09-05 2009-02-19 エヌエックスピー ビー ヴィ 半導体集積回路用論理モジュール
JP2007243671A (ja) * 2006-03-09 2007-09-20 Kddi Corp 論理プログラマブルデバイス保護回路
US8510239B2 (en) * 2010-10-29 2013-08-13 International Business Machines Corporation Compact cognitive synaptic computing circuits with crossbar arrays spatially in a staggered pattern
CN103064328B (zh) * 2012-12-15 2015-05-20 中国科学院近代物理研究所 数字脉冲电源同步定时触发系统
US9164794B2 (en) * 2013-08-20 2015-10-20 Netronome Systems, Inc. Hardware prefix reduction circuit
CN105634468B (zh) * 2014-10-30 2018-11-06 京微雅格(北京)科技有限公司 一种fpga的布线方法和宏单元
US9667314B1 (en) * 2015-12-15 2017-05-30 Altera Corporation Programmable repeater circuits and methods
KR102656190B1 (ko) 2016-11-24 2024-04-11 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법
US11507806B2 (en) * 2017-09-08 2022-11-22 Rohit Seth Parallel neural processor for Artificial Intelligence

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0398552A2 (en) * 1989-05-02 1990-11-22 Tandem Computers Incorporated Linear array wafer scale integration architecture
US5019736A (en) * 1986-11-07 1991-05-28 Concurrent Logic, Inc. Programmable logic cell and array
US5442306A (en) * 1994-09-09 1995-08-15 At&T Corp. Field programmable gate array using look-up tables, multiplexers and decoders
US5782032A (en) * 1995-09-22 1998-07-21 Hitachi, Ltd. Coal gasification furnace with a slag tap hole of specific shape
US5831448A (en) * 1992-11-05 1998-11-03 Xilinx, Inc. Function unit for fine-gained FPGA

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5051917A (en) * 1987-02-24 1991-09-24 International Business Machines Corporation Method of combining gate array and standard cell circuits on a common semiconductor chip
GB8828828D0 (en) 1988-12-09 1989-01-18 Pilkington Micro Electronics Semiconductor integrated circuit
US5055718A (en) 1990-05-11 1991-10-08 Actel Corporation Logic module with configurable combinational and sequential blocks
US5682107A (en) * 1994-04-01 1997-10-28 Xilinx, Inc. FPGA architecture with repeatable tiles including routing matrices and logic matrices
US5872380A (en) * 1994-11-02 1999-02-16 Lsi Logic Corporation Hexagonal sense cell architecture
US5815003A (en) * 1994-11-04 1998-09-29 Altera Corporation Programmable logic integrated circuits with partitioned logic element using shared lab-wide signals
US5537057A (en) * 1995-02-14 1996-07-16 Altera Corporation Programmable logic array device with grouped logic regions and three types of conductors
US5594363A (en) 1995-04-07 1997-01-14 Zycad Corporation Logic cell and routing architecture in a field programmable gate array
US5720031A (en) 1995-12-04 1998-02-17 Micron Technology, Inc. Method and apparatus for testing memory devices and displaying results of such tests
US5734582A (en) * 1995-12-12 1998-03-31 International Business Machines Corporation Method and system for layout and schematic generation for heterogeneous arrays
US6107822A (en) * 1996-04-09 2000-08-22 Altera Corporation Logic element for a programmable logic integrated circuit
US5781032A (en) * 1996-09-09 1998-07-14 International Business Machines Corporation Programmable inverter circuit used in a programmable logic cell
US6005410A (en) * 1996-12-05 1999-12-21 International Business Machines Corporation Interconnect structure between heterogeneous core regions in a programmable array
US5880598A (en) * 1997-01-10 1999-03-09 Xilinx, Inc. Tile-based modular routing resources for high density programmable logic device
US5889411A (en) * 1997-02-26 1999-03-30 Xilinx, Inc. FPGA having logic element carry chains capable of generating wide XOR functions
US6084429A (en) * 1998-04-24 2000-07-04 Xilinx, Inc. PLD having a window pane architecture with segmented and staggered interconnect wiring between logic block arrays
US6346826B1 (en) * 1998-12-23 2002-02-12 Integrated Logic Systems, Inc Programmable gate array device
JP2002538562A (ja) * 1999-03-04 2002-11-12 アルテラ・コーポレーション 桁上げ選択加算付プログラマブルロジックデバイス

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5019736A (en) * 1986-11-07 1991-05-28 Concurrent Logic, Inc. Programmable logic cell and array
EP0398552A2 (en) * 1989-05-02 1990-11-22 Tandem Computers Incorporated Linear array wafer scale integration architecture
US5831448A (en) * 1992-11-05 1998-11-03 Xilinx, Inc. Function unit for fine-gained FPGA
US5442306A (en) * 1994-09-09 1995-08-15 At&T Corp. Field programmable gate array using look-up tables, multiplexers and decoders
US5782032A (en) * 1995-09-22 1998-07-21 Hitachi, Ltd. Coal gasification furnace with a slag tap hole of specific shape

Also Published As

Publication number Publication date
US20020011868A1 (en) 2002-01-31
CN1181617C (zh) 2004-12-22
US6294926B1 (en) 2001-09-25
US6525561B2 (en) 2003-02-25
JP2003505911A (ja) 2003-02-12
TW567669B (en) 2003-12-21
KR20010075126A (ko) 2001-08-09
EP1114514B1 (en) 2009-01-07
CN1321359A (zh) 2001-11-07
EP1114514A1 (en) 2001-07-11
DE60041319D1 (de) 2009-02-26
WO2001006657A1 (en) 2001-01-25

Similar Documents

Publication Publication Date Title
KR100735168B1 (ko) 프로그램가능 게이트 어레이 집적 회로
US5694057A (en) System for enhanced drive in programmable gate arrays
EP0463026B1 (en) Configurable cellular array
Cheatham et al. A survey of fault tolerant methodologies for FPGAs
US5835998A (en) Logic cell for programmable logic devices
US5986465A (en) Programmable logic integrated circuit architecture incorporating a global shareable expander
US5019736A (en) Programmable logic cell and array
US6275065B1 (en) Programmable logic integrated circuit architecture incorporating a lonely register
US5646546A (en) Programmable logic cell having configurable gates and multiplexers
EP0569137B1 (en) Programmable logic array integrated circuit
US5444394A (en) PLD with selective inputs from local and global conductors
US7573297B1 (en) Flexible macrocell interconnect
JPH0927745A (ja) プログラマブル・アレイ・クロック/リセット
US6882176B1 (en) High-performance programmable logic architecture
JP3325662B2 (ja) 集積回路
US20060005090A1 (en) Compare, select, sort, and median-filter apparatus in programmable logic devices and associated methods
Manohar Reconfigurable asynchronous logic
Maheswaran et al. Hazard-free implementation of the self-timed cell set in a Xilinx FPGA
Masud FPGA routing structures: A novel switch block and depopulated interconnect matrix architectures
US6100714A (en) High density PLD structure with flexible logic built-in blocks
US20090261858A1 (en) Programmable interconnect network for logic array
Tavana et al. Logic block and routing considerations for a new SRAM-based FPGA architecture
US6263482B1 (en) Programmable logic device having macrocells with selectable product-term inversion
Wilton et al. Field-Programmable Gate Array Architectures
Hayashi et al. Co-evaluation of FPGA Architectures and the CAD System for Telecommunication

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20110613

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee