KR19990029032A - 램이 분배되어 있고 증가된 셀 유용성을 갖는필드프로그램가능 게이트 어레이 - Google Patents

램이 분배되어 있고 증가된 셀 유용성을 갖는필드프로그램가능 게이트 어레이 Download PDF

Info

Publication number
KR19990029032A
KR19990029032A KR1019980700335A KR19980700335A KR19990029032A KR 19990029032 A KR19990029032 A KR 19990029032A KR 1019980700335 A KR1019980700335 A KR 1019980700335A KR 19980700335 A KR19980700335 A KR 19980700335A KR 19990029032 A KR19990029032 A KR 19990029032A
Authority
KR
South Korea
Prior art keywords
cell
logic
cells
input
output
Prior art date
Application number
KR1019980700335A
Other languages
English (en)
Other versions
KR100429063B1 (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 KR19990029032A publication Critical patent/KR19990029032A/ko
Application granted granted Critical
Publication of KR100429063B1 publication Critical patent/KR100429063B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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/1735Controllable logic circuits by wiring, e.g. uncommitted logic arrays
    • 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

Landscapes

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

Abstract

필드 프로그램가능 게이트 어레이는 프로그램가능 논리 셀(11,12)의 매트릭스와, 로컬 및 익스프레스 버스 라인(19,21,23,25)의 버스 네트워크를 포함한다. 버스 네트워크는 매트릭스를 셀 블록(15)으로 효율적으로 분할하며, 각각의 블록은 자신의 개별적인 로컬 버스 라인 세트를 갖는다. 익스프레스 버스 라인은 로컬 버스 라인을 익스프레스 버스 라인에 접속시키는 리피터 스위치 유닛(27)에 의해 셀의 하나 이상의 블록을 지나 연장된다. 블록 사이의 경계(13)에서 로우 및 컬럼으로 정렬된 리피터를 갖는 블록으로 셀을 그룹하는 하는 것은 RAM 블록(83), 다른 메모리 구조체, 특수 논리 구조체 또는 버스 네트워크에 접속된 다른 전용 기능 소자로 채워질 수 있는 블록 코너에 있는 공간에 의해 달성된다. RAM 블록(83), 다른 메모리 구조체, 특수 논리 구조체 또는 다른 전용 기능 소자는 버스 네트워크에 접속된다. RAM 블록(도 13)은 버스 라인(86,178,179)을 통해 어드레스 설정된 단일 또는 이중 포트 SRAM(85)이 될 수 있다.

Description

램이 분배되어 있고 증가된 셀 유용성을 갖는 필드 프로그램가능 게이트 어레이
디지털 논리는 사용자가 구성할 수 있도록 하기 위해 통상적으로 비휘발성 EPROM 또는 EEPROM 메모리 셀 기술을 채택하는 하드와이어식 응용 사양 집적회로(ASIC), 마스크 또는 휴즈 프로그램식 주문 게이트 어레이(CGA), 프로그램가능 어레이 로직(PAL), 프로그램가능 로직 어레이(PLA) 및 다른 프로그램가능 논리 소자(PLD)를 포함하는 여러 종류의 이용가능한 집적회로 구성을 이용하고, 칩 각각의 파워-업 동안 설정되는 SRAM 구성 비트를 이용하는 필드 프로그램가능 게이트 어레이(FPGA)를 이용함으로써 달성될 수 있다. 이러한 다양한 구조 중에서, 사용자가 프로그램가능하고, 소거가능하며, 재프로그램가능한 능력을 갖는 구조가 미리 결정되어 있거나 단지 한 번만 프로그램가능한 기능을 갖는 구조 보다 바람직하다. FPGA는 매우 복잡한 논리 기능을 수행할 수 있으며, 이러한 소자에 프로그램될 2-레벨의 곱의합(sum-of-products) 형태로 변환될 필요가 없다. SRAM 제어식 스위치는 소자를 매우 용이하게 재구성하기 위해 상이한 기능을 갖도록 허용할 뿐만 아니라 고속 연산을 위해 최적화된다.
현재는 광범위하고 다양한 FPGA가 이용가능하며, 이 FPGA는 자신의 복잡한 성분 논리 셀뿐만이 아닌 제공된 상호접속 자원에 따라 상이하다. FPGA는 예를 들어 미국특허 4,706,216호, 4,758,985호, 5,019,736호, 5,144,166호, 5,185,706호, 5,231,588호, 5,278,688호, 5,296,759호, 5,343,406호, 5,349,250호, 5,352,940호, 5,408,434호 및 다른 많은 특허에 개시되어 있다.
통상적인 FPGA 구조는 인접한 논리 셀과 버스 라인 네트워크 사이를 직접 연결하고, 매트릭스내의 셀의 로우 및 컬럼 사이의 분산된 네트워크를 연결함으로써 형성된 프로그램가능한 상호접속 구조에 의해 서로 선택적으로 연결될 수 있는 구성가능한 논리 셀의 2차원 어레이 또는 매트릭스로 구성된다. 매트릭스의 주위로, 한 세트의 입력/출력 패드가 버스 네트워크와 주위 논리 셀에 접속됨으로써, 신호가 칩 안으로 그리고 칩 밖으로 전달될 수 있다. 각각의 개별적인 논리 셀은 상대적으로 단순한 논리 기능을 수행하도록 프로그램된다. 통상적으로, 각각의 논리 셀은 입력/출력 선택 논리회로(MUX), 조합 논리, 동기 연산을 위한 하나 이상의 저장 소자(플립플롭 레지스터), 순차 논리를 수행하기 위한 하나 이상의 내부 피드백 라인을 포함한다. 일부 FPGA에 있는 셀의 조합 논리는 선택가능한 입력 구성을 가질 수 있는 미리 결정된 논리 게이트 형태로 구성될 수 있다. 그러나, 바람직한 FPGA 셀은 광범위하고 다양한 논리 기능을 제공하기 위해 룩업 테이블 메모리(구성된 SRAM)를 이용한다. 룩업 테이블의 메모리 셀은 데이터 비트 세트를 저장하며, 이 비트의 값은 특정 기능에 대한 진리 테이블에 대응한다. 메모리 어드레스 라인에 제공된 한 세트의 입력 신호는 메모리에게 1-비트 출력을 제공하며, 이 1-비트 값은 입력 신호에 의해 설정된 어드레스에 저장된 값이다. 그러므로, 룩업 테이블 메모리는 메모리내에 저장된 진리 값에 의해 미리 결정된 기능을 수행한다. 상호접속 구조는 각각의 셀과 매트릭스의 동일한 로우 또는 컬럼에 있는 가장 인접한 셀 사이의 직접 접속을 제공한다. 미국특허 5,296,759호는 대각선 방향으로 인접한 셀에 한 방향으로의 접속을 제공한다. 직접 셀대 셀의 접속에 더하여, 한 세트의 "로컬" 버스 라인은 셀과 버스 네트워크 사이의 접속을 제공한다. 규칙적으로 이격된 구성가능한 스위치는 리피터 유닛이라 불리며, 짧은 로컬 버스 세그먼트를 더 긴 익스프레스 버스에 접속시킨다. 리피터는 규칙적으로 로우 및 컬럼으로 정렬되어, 전체 어레이를 셀 블록으로 분할한다. 하나의 통상적인 구성은 64개의 논리 셀 그룹이 8×8 블록으로 구성되며, 각 블록은 연관된 로컬 버스 세그먼트 세트를 갖는다. 로컬 버스 세그먼트와는 달리, 익스프레스 버스는 리피터를 지나는 하나 이상의 셀 블록을 연결하여 신호가 상이한 셀 블록들 사이를 경유하도록 한다. 익스프레스 버스 라인은 로컬 버스 세그먼트만을 지나 논리 셀에 접근하여 익스프레스 버스 라인상의 신호 전달 지연을 감소시키게 된다.
FPGA 설계자는 소자의 속도 및 기능적 유연성을 증가시키기 위한 시도를 계속하고 있다. 예를 들어, 개별적인 논리 셀의 기능 성능을 향상시키면서, FPGA 구조의 근본 특징이 되는 셀을 작고 단순하게 구성하는 것이 설계 목표이다. 개선할 다른 사항은 회로의 전체 셀 유용성이다. 특히, 버스 네트워크와 셀 버스 인터페이스의 많은 트레이드오프와 비효율성에 의해, FPGA 셀은 종종 다른 셀 사이의 신호 경로 설정과 라이트 앵글 턴(right angle turns), 크로스-오버 접속 및 신호 팬아웃을 위한 "와이어-셀"로서만 사용된다. 이상적인 경로 설정은 직접 접속 및 버스 네트워크에 의해서만 제공되는 반면, 논리 셀은 논리용으로만 사용될 것이다. 또한, 개별적인 셀은 상대적으로 단순한 기능을 수행하기 때문에, 일부 설계는 디코딩 및 고속의 캐리 연산과 같은 특수한 기능을 수행하기 위한 전용의 셀을 제공한다. 불행히도, 이러한 특정 기능이 필요치 않으면, 그에 해당하는 셀이 낭비되는 것이다. 셀 설계 그 자체는 어레이 내의 셀 전체 유용성에 기여할 수 있다. 셀은 복수의 입력 및 출력에서 이용가능한 기능에 대해 반사성 및 회전 대칭성을 가져, 신호 터닝 및 셀 어레이의 기능 배치를 단순화시킬 필요성을 감소시키는 것이 바람직하다. 결국, 대부분의 FPGA에서는 사용자가 접근가능한 랜덤 엑세스 메모리(RAM)가 필요하게 된다. 여러 제조자는 이러한 필요에서 단일-칩 메모리를 제공하는 여러 방법을 사용한다. 예를 들어, Altera 는 어레이의 외측 에지에 RAM을 제공하는 반면, Actel 은 논리 셀과 RAM의 교번 밴드를 제공한다. Xilinx 는 논리 셀내에 룩업 테이블 메모리를 제공하여, 이러한 셀에 의해 제공된 기능을 변경시키기 위해 소자 동작 동안 사용자에 의해 갱신될 수 있다.
본 발명의 목적은 버스 네트워크, 직접 셀대 셀 접속 및 소자내의 집적된 사용자접근가능 메모리 성능에 의해 증가된 논리 셀 기능성, 개선된 셀 유용성 및 더욱 효율적인 신호 경로를 갖는 FPGA를 제공하는 것이다.
본 발명은 필드 프로그램가능 게이트 어레이(FPGA)로 알려진 형태의 프로그램가능한 다기능 디지털 논리 어레이 집적 회로에 관한 것으로서, 특히 FPGA와 같은 구조적 논리 셀의 구성과, 직접 셀 사이의 접속의 구성 및 FPGA와 같은 버스 네트워크의 상호접속의 구성에 있어서의 개선에 관한 것이며, 논리적 기능을 수행하기 위해 셀 유용성 및 기능성이 개선되도록 설계된다. 또한 본 발명은 사용자가 접근가능한 메모리 소자를 포함하며 FPGA 소자의 논리 셀에 의한 사용을 위해 일부 메모리 저장 능력을 집적하는 FPGA에 관한 것이다.
도 1은 본 발명의 FPGA 회로의 상면을 나타낸 개략도.
도 2는 셀 사이의 직접 접속을 나타내는, 도 1의 FPGA 회로의 4개의 논리 셀의 상면을 나타낸 개략도.
도 3은 셀대 셀의 직접 연결의 다른 실시예를 나타내는, 본 발명의 FPGA 회로의 4개의 논리 셀의 상면을 나타낸 개략도.
도 4는 버스 네트워크와 RAM을 갖는 도 1의 FPGA 회로의 논리 셀의 4×4 블록의 상면을 나타낸 개략도.
도 5는 도 1의 FPGA 회로의 하나의 논리 셀의 개략적인 논리 레벨 회로도.
도 6은 도 5의 논리 셀에 대한 셀-버스 인터페이스를 나타낸 개략적인 회로도.
도 7 및 8은 본 발명의 FPGA 회로의 2가지 선택적인 논리 셀 실시예를 나타낸 개략적인 논리 레벨 회로도.
도 9 및 10은 본 발명에 대한 클록 및 리셋 신호 분배를 나타내는, 도 1의 FPGA 회로의 부분 상면을 나타낸 개략도.
도 11은 본 발명의 FPGA 회로내의 리피터 스위치 유닛의 엇갈림 배치를 나타내는, 도 4의 셀의 4개의 블록을 상면을 나타낸 개략도.
도 12는 리피터의 로우 및 컬럼 사이의 각각의 블록 코너에 있는 RAM과 같은 전용 기능 소자(DFE)의 배치를 나타내는, 도 1 및 4의 FPGA의 셀의 3×3 블록의 상면을 나타낸 개략도.
도 13은 본 발명의 FPGA 에 대한 RAM 및 RAM-버스를 개략적으로 나타낸 논리 레벨 회로도.
도 14는 도 4에 도시된 버스 네트워크 연결 구조에 대한 선택적인 RAM을 나타내는, 8개 블록의 논리 셀과 이들과 관련된 RAM 블록을 포함하는 본 발명의 FPGA 회로의 상면 부분을 나타낸 개략도.
도 15는 도 14에 있는 대시선으로 그려진 원내의 RAM 블록을 나타낸 확대도.
도 16은 회로에 대한 한 세트의 I/O 패드에 셀의 접속성을 나타내는, 도 1의 FPGA 회로의 주변에 있는 한 세트의 논리 셀을 부분적으로 나타내는 개략도.
도 17은 본 발명의 일실시예에 따라 셀과 패드 인터페이스와, FPGA의 코너 논리 셀을 나타내는 개략적인 논리 레벨 회로도.
도 18은 도 16에 도시된 회로의 I/O 패드에 셀의 선택적인 접속성을 나타내는, 도 1의 FPGA 회로의 주변에서 한 세트의 논리 셀을 부분적으로 나타낸 개략도.
도 19는 도 18에 도시된 접속성의 셀-패드 인터페이스 기록을 개략적으로 나타낸 논리 레벨 회로도.
도 20 및 21은 제3 접속 실시예에 따른 2가지 타입의 I/O 패드에 대한 셀-페드 인터페이스를 개략적으로 나타낸 논리 레벨 회로도.
본 발명의 목적은 사용자 접근가능한 메모리 구조(또는 전용 논리회로)내에, 즉 "전용 기능 소자"로서 고려된 메모리 구조 및 전용 논리회로가, 리피터 스위치 유닛의 로우 및 컬럼의 상호교차점에서 각 블록 논리 셀의 코너에 규칙적으로 공백인 공간내에 제공되는 FPGA 매트릭스를 제공하는 것이다. 한가지 형태의 메모리 구조는 랜덤 엑세스 메모리, 즉 RAM 구조가 될 수 있다. RAM의 어드레스 및 데이터 라인은 버스 라인에 RAM의 기록 인에이블 및 출력 인에이블 제어 포트로서 연결된다. RAM은 단일 포트이거나 이중 포트 SRAM이 될 수 있다. RAM의 인접한 컬럼 쌍은 동일 세트의 버스 라인에 의해 어드레스지정될 수 있다. 메모리 구조는 비휘발성 메모리 구조가 될 수 있다.
본 발명의 다른 목적은 논리 블록 셀과 연관된 로컬 버스 세그먼트를 연결시키는 리피터 스위치 유닛이 N개의 논리 셀 다음에 규칙적으로 이격되어, 셀은 N×N개의 셀 블록으로 분할함으로써, 각각의 블록은 다른 블록과 관련된 로컬 버스 세그먼트가 아닌 관련된 세트의 로컬 버스 세그먼트에만 접속가능한 FPGA 매트릭스를 제공하는 것이다. 리피터 스위치 유닛은 각각의 로컬 버스 세그먼트를 블록의 대향 말단에서 익스프레스 버스 라인에 연결하며, 엇갈리게(stagger) 형성되어 각각의 익스프레스 버스 라인은 로컬 버스 라인, 예를 들어 2N개의 논리 셀 이상의 리피터 유닛과 만나게 된다.
본 발명의 다른 목적은 셀의 동일한 로우 또는 컬럼에 있는 4개의 가장 인접한 논리 셀에 대하여 제1 세트의 직접 연결을 가지며, 4개의 다른 대각선으로 이웃하는 논리 셀에 대해 제2 세트의 직접 연결을 갖는다는 것이다.
본 발명의 또 다른 목적은 룩업 테이블로서의 기능을 하며 사용자 접근가능한 메모리 소자인 한 쌍의 구조체의 형태로된 조합 논리를 포함하는 각각의 논리 셀이 있는 FPGA를 제공하는 것이다. 이러한 구조체는 공통의 입력 세트에 의해 어드레스 지정가능하며, 출력은 동일 세트의 출력에 대해 선택적으로 이용가능하고, 하나의 출력은 레지스터에 선택적으로 엑세스될 수 있으며, 셀에 대한 다른 입력은 메모리 소자를 단일의 더 크며 완전하게 어드레스 지정가능한 메모리 소자로 효율적으로 조합시키기 위해 하나의 또는 다른 메모리 소자 출력에 선택적으로 출력할 수 있다. 2개의 메모리 소자 어드레스 입력은 4개의 직접 접속 입력 또는 하나의 로컬 버스 입력중 어느 것으로부터부터 선택가능한 입력을 수용할 수 있다.
게다가, 글로벌 클록 신호는 선택하기 위한 셀의 각 컬럼에 위치할 수 있으며, 극성을 가지고, 셀의 컬럼내에 있는 복수의 셀의 섹터에 기초하여 인에이블 선택을 갖는다. 글로벌 세트 또는 리셋 신호는 극성을 가지며, 섹터대 섹터에 기초한 인에이블 선택을 가질 수 있다.
I/O 패드는 셀의 매트릭스의 주위에 다중 논리 셀에 접속될 수 있으며, 버스 라인의 다중 로우 또는 컬럼에 접속될 수 있다. 각각의 주변 논리 셀과 버스 라인의 로우 또는 컬럼은 여러 I/O 패드중 어느것에 접속될 수 있다. 버스 라인에만 접속가능한 부가적인 I/O 패드가 제공될 수 있다.
도 1에 있어서, 본 발명의 필드 프로그램가능 게이트 어레이(FPGA) 집적회로는 프로그램가능한 논리 셀(11)의 복수의 로우 및 컬럼으로 구성된 매트릭스 또는 2차원 어레이를 포함한다. 각각의 개별적인 논리 셀(11)은 특정 논리 기능을 수행하도록 프로그램 또는 구성될 수 있다. 이 셀들은 서로 연결되는데, 도 2 또는 3에 도시된 것과 같이 이웃하는 셀에 직접 연결되고 도 4에 도시된 스위치를 연결하여 버스 라인의 네트워크를 구성함으로써, 개별적인 셀 각각에 의해 제공된 더욱 간단한 기능을 갖는 전체 FPGA 소자 또는 칩의 더욱 복잡한 전체 논리 기능을 달성할 수 있다. 그러므로, FPGA 소자에 있어서, 기능은 2-레벨의 곱의 합으로 계산될 필요가 없다. 왜냐하면, 상호접속 구조로 인해 어떤 하나의 논리 셀의 입력에 어떤 다른 논리 셀의 출력을 제공하는 것이 가능해지며, 많은 레벨을 논리를 갖는 기능을 제공할 수 있는 일련의 논리 셀을 형성할 수 있게 된다.
로컬 및 익스프레스 버스 라인과 도 11의 버스 네트워크내의 리피터 스위치의 연결 패턴은 논리 셀의 기본 어레이를 셀의 더 작은 직선형 블록으로 분할한다. 도 1에 대시선으로 표시된 라인(13)은 16개의 논리 셀 그룹이 4×4 정사각형 블록 셀로 구성되는 분할 배열을 나타낸다. 각각의 블록(15)은 도 4 및 11을 참조하여 이하 기술된, 특정 그룹의 논리 셀에 전용인 자신의 세트의 관련 로컬 버스 세그먼트을 갖는 반면, 익스프레스 버스는 논리 셀의 상이한 블록 사이에서 신호 경로를 설정하기 위한 하나 이상의 블록으로 연장된다. 도 1에 도시된 회로는 32개의 로우 및 컬럼 셀(전체 1024 논리 셀)을 갖지만, 이것은 4×4 셀 블록의 8×8 매트릭스로서 구성되고, 다른 소자는 통상적으로 16개의 로우 및 컬럼 셀을 가질 수 있으며, 같은 수의 64(또는 그 이상)개의 로우 및 컬럼 셀을 가질 수 있다. 논리 셀(11)의 블록(15)은 전체 FPGA 소자 모두가 동일한 크기를 가질 필요는 없다. 예를 들어, 소자의 상이한 사각형은 4×4, 6×6 또는 8×8 정사각형 블록 또는 4×6, 4×8, 6×8, 6×12 또는 8×16 사각 블록을 포함할 수 있다.
또한, FPGA 회로는 버스 라인과 셀의 매트릭스의 주위를 따라 있는 논리 셀에 접속된 입력/출력 패드(17)를 가짐으로써, 신호는 칩으로 그리고 칩으로부터 전달될 수 있다. 입출력 패드 접속의 상세한 설명은 도 16 내지 21을 참조하여 이하에 기술될 것이다.
도 2는 회로의 일실시예에 대한 셀대 셀 직접 연결을 나타낸다. 각각의 논리 셀(11)은 동일한 제1 세트의 A 출력과 동일한 제2 세트의 B 출력을 갖는다. 어떤 셀로부터의 A 출력은 출력 셀로서 동일한 로우 또는 컬럼에서 4개의 인접한 가장 가까운 논리 셀에 모두 접속된다. 이와 유사하게, 셀로부터의 B 출력은 4개의 가장 인접한 셀에 접속된다. 또한, 각각의 논리 셀은 4개의 가장 인접한 셀의 각각의 A 출력에 의해 출력된 신호를 수신하는 한 세트의 A 입력(An, Ae, As, Aw)을 갖는다. 결국, 각각의 논리 셀은 4개의 가장 인접한 셀의 각각의 B 출력에 의해 출력된 신호를 수신하는 한 세트의 B 입력(Bn, Be, Bs, Bw)을 갖는다. 그러므로, 동일한 로우 또는 컬럼에 있는 어떤 2개의 이웃하는 셀 사이에는 각 방향으로 나가는 2개의 경로를 갖는 4개의 연결 신호 경로가 있다.
도 3은 본 발명에 따른 FPGA 회로의 다른 실시예에 대한 셀대 셀 직접 연결을 나타낸다. 이 실시예에서, 각각의 논리 셀(12)은 동일한 제1 세트의 A 출력과, 동일한 제2 세트의 B 출력을 갖는다. 어떤 셀로부터의 A 출력은 출력 셀로서 동일한 로우 또는 컬럼에서 4개의 가장 인접한 셀에 모두 접속되며, 어떤 셀로부터의 B 출력은 4개의 대각선으로 인접한 셀에 접속된다. 또한, 각각의 논리 셀은 수신 셀로서 동일한 로우 또는 컬럼에서 4개의 가장 인접한 셀의 각각의 A 출력에 의해 출력된 신호를 수신하는 한 세트의 A 입력(An, Ae, As, Aw)을 가지며, 4개의 대각선으로 인접한 셀의 각각의 B 출력에 의해 출력된 신호를 수신하는 한 세트의 B 입력(Bnw, Bne, Bse, Bsw)을 갖는다. 그러므로, 각각의 논리 셀은 8개의 인접한 셀에 모두 연결되며, 어떤 2개의 셀 사이에는 각 방향에 하나씩 2개의 연결 신호 경로가 있다.
도 4는 FPGA 회로에 있는 셀과 버스 연결을 나타낸다. 단일 블록에 있는 논리 셀(11)의 4×4 그룹은 셀의 로우 및 컬럼 사이에서 분배된 버스 라인을 갖는다. 특히, 논리 셀의 각 컬럼에 인접한 3개의 수직 버스 라인(19)이 5 세트 있으며, 논리 셀의 각 로우에 인접한 3개의 수평 버스 라인(21)이 5 세트 있다. 각 세트의 3개의 버스 라인은 하나의 로컬 버스 라인(23)과, 2개의 익스프레스 버스 라인(25)을 포함한다. 논리 셀(11)은 로컬 버스 라인(23)에만 직접 연결되며, 익스프레스 버스 라인(25)에 대한 접근은 셀의 각 블록의 주위에 위치한 접속성 리피터 유닛(27)에 있는 로컬 버스 라인을 통해서만 간접적으로 연결된다. 도 11을 참조하여 이하 기술될 것과 같이, 리피터(27)는 엇갈린 배치로 형성된 버스 구성을 가짐으로써 각각의 익스프레스 버스 라인은 4개의 셀이 아닌 8개의 셀 마다 리피터와 만나게 된다. 각각의 논리 셀(11)은 특정 논리 셀이 위치하는 셀의 각각의 로우 및 컬럼에 인접한 5개의 수직 로컬 버스 라인과 5개의 수평 로컬 버스 라인에 논리 셀을 연결하는 10개의 양방향 데이터 버스 라인(29)을 갖는다. 이러한 10개의 양방향 라인(29)(도 6에 V0-V4, H0-H4로 표시)는 도 6을 참조하여 이하 더 상세히 기술된 방식으로 이들의 대응하는 논리 셀에 연결되어, 셀 입력(AL, BL, CL, DL)과 셀 출력(도 5 및 6에서의 L)을 통하는 데이터 신호 경로가 논리 셀과 버스 네트워크 사이에서 통신(입출력)되도록 한다.
도 5에 있어서, 본 발명의 FPGA에서의 논리 셀은 4 세트의 입력을 포함하는데, 이 입력은 A 입력(이웃하는 셀로부터 직접 연결 An, Ae, As, Aw와 로컬 버스 입력 AL)으로 표시된 입력과, B 입력(이웃하는 셀로부터 직접 연결 Bn, Be, Bs, Bw와 로컬 버스 입력 BL)과, CL로 표시된 제3 로컬 버스 입력과, DL로 표시된 제4 로컬 버스 입력을 포함한다. 또한 로컬 셀은 3 세트의 출력을 포함하는데, 4개의 이웃하는 셀의 각각의 A 입력과 B 입력에 연결된 A 출력과 B 출력 또한, 로컬 버스 출력 L을 포함한다. A 및 B 출력과 직접 A 및 B 입력은 도 2를 참조하여 기술되었듯이 연결된다. 셀의 로컬 버스 입력(AL, BL, CL, DL)과 로컬 버스 출력(L)은 도 4에 기술되었고 도 6에 더욱 상세히 기술될 연결 신호 경로(29)를 통해 10개의 이웃하는 수평 및 수직 로컬 버스 라인(23)에 연결된다. 특히, 도 6에 있어서, 로컬 버스 연결 신호 경로(H0-H4, V0-V4)는 대응하는 패스 게이트(31)를 통해 셀 내의 5개의 중간 신호 라인(330-334)중 하나에 연결된다. 각각의 중간 신호 라인(330-334)은 2개의 로컬 버스 연결 신호 경로중 하나, 이들중 하나는 수직 버스 라인(경로 V0-V4를 통하여)에 대응하며, 다른 하나는 수평 버스 라인(경로 H0-H4를 통하여)에 연결되는 하나에 패스 게이트(31)에 의해 결합될 수 있다. 결과적으로, 각각의 5개의 중간 신호 라인(330-334)은 4개의 버스 입력 선택 멀티플렉서(35A-35D)에 연결된다. 그러므로, 각각의 멀티플렉서(35A-35D)는 각각 중간 신호 라인(330-334)에 해당하는 5개의 입력을 갖는다. 각 멀티플렉서(35A-35D)의 출력은 셀의 4개의 로컬 버스 입력(AL, BL, CL, DL)을 형성한다. 그러므로, 논리 셀이 연결되는 10개의 이웃하는 로컬 버스 라인중 어느 하나는 패스 게이트(31)과 멀티플렉서(35A-35D)의 선택에 의해 구성된 4개의 로컬 버스 입력중 어느 하나에 입력 신호를 제공할 수 있다. 또한, 논리 셀에 대한 로컬 버스 출력 L은 한 세트의 패스 게이트(37)를 통해 5개의 중간 신호 라인(330-334)에 접속된다. 그러므로, 출력 L은 패스 게이트(37, 31)로서 구성된 것과 같이, 10개의 이웃하는 로컬 버스 라인중 어느것에 출력 신호를 제공하도록 연결될 수 있다. 만일 원한다면, 출력 L은 대응하는 연결 패스 게이트(31)를 모두 인에이블시킴으로써, 수평 버스 라인과 수직 버스 라인에 동시에 연결될 수 있다. 일반적으로, 중간 신호 라인(3)중 하나는 로컬 버스 출력 L의 사용을 위해 패스 게이트(37)에 의해 선택되는 반면, 다른 4개의 중간 신호 라인(33)은 로컬 버스 입력 신호의 수신을 위해 멀티플렉서(35A-35D)(그리고 대응하는 출력 패스 게이트(37)를 디스에이블)함으로써 선택되고, 사용자는 만일 특별한 피드백 경로가 필요한 경우, 로컬 버스 출력 L로부터 로컬 버스 입력 AL, BL, 또는 DL중 어느 것으로 피드백 경로를 제공하기 위해 출력 패스 게이트(37)와 입력 선택 멀티플렉서(35A-35D)를 구성하는 선택을 갖는다(도 5에 도시된 바와 같이, 내부 셀 구조는 이미 멀티플렉서(39)에 의해 피드백 대 CL로컬 버스 입력의 선택이 허용된다).
도 5에 있어서, 각 논리 셀의 내부 논리는 A, B 및 C 입력에 의해 어드레스 지정가능한 2개의 8-비트 룩업 테이블(L.U.T.)을 포함할 수 있다. 통상적으로 룩업 테이블은 판독 전용 메모리, 즉 FPGA 소자의 초기 구성 동안 로딩되고, 동작 동안에는 동적으로 재프로그램될 수 없는 메모리로서 동작하는 정적 RAM 메모리 셀로 구성된다. A 입력 세트(An, Ae, As, Aw, AL)는 멀티플렉서(41)에 의해 수신되고 그들중 하나가 선택된다. 이 A 멀티플렉서중 선택된 출력은 제1 L.U.T.(45)의 a0어드레스 입력과, 제2 L.U.T.(47)의 a1어드레스 입력에 연결된다. 이와 마찬가지로, B 입력 세트(Bn, Be, Bs, Bw, BL)는 B 입력 선택 멀티플렉서(43)에 의해 선택되고, 선택된 출력은 제2 L.U.T.(47)의 a0어드레스 입력과, 제1 L.U.T.(45)의 a1어드레스 입력에 연결된다. 제3 멀티플렉서(39)는 피드백 라인(40)으로 로컬 버스 입력 CL과 내부 피드백 신호를 수신하며, 그들 중 하나는 제1 및 제2 L.U.T.(45,47)의 a2어드레스 입력에 출력한다. 논리 셀은 다양한 조합 논리를 제공하기 위해 2개의 8-비트 룩업 테이블(45,47)을 사용한다. 2개의 L.U.T.(45,47)의 SRAM 메모리 셀은 특정 논리 함수에 대한 진리표에 대응하는 값을 갖는 한 세트의 데이터 비트를 저장한다. 한 세트의 입력 신호가 L.U.T. 의 각각에서 3개의 어드레스 입력(a0-a2)으로 제공되면, 2개의 테이블은 입력 신호에 의해 지시된 어드레스에 저장된 각각의 비트 값을 판독한다. 그러므로, 각각의 L.U.T.(45, 47)는 자신의 각각의 출력(49,51)에 입력 세트의 특정 기능인 1-비트 출력 신호를 제공하며, 여기서 메모리에 의해 수행된 기능은 저장된 진리값에 의해 결정된다.
룩업 테이블 (45,47)의 출력(49,51)은 셀 A 및 B 출력으로 그리고 로컬 버스 출력으로 이끄는 다수의 신호 경로로 분기한다. 특히, L.U.T. 출력(49,51)은 각각의 A 및 B 출력에 출력 신호를 제공하는 출력 라인(56,57)에 각각의 제1 및 제2 출력 멀티플렉서(45,55)에 의해 결합될 수 있는 각각의 데이터 라인(52,53)에 연결된다. 또한, L.U.T. 출력(49,51)은 제3 출력 멀티플렉서(61)에 연결되는 각각의 제2 데이터 라인(59,60)에 접속된다. 멀티플렉서(61)에 사용되는 제어 신호는 로컬 버스 입력 DL또는 멀티플렉서(62)에 의해 선택된 미리 결정된 논리 레벨 신호("0" 또는 "1")로부터 유도된다. 논리적 "0" 신호가 선택되면, 제3 출력 멀티플렉서(61)는 제2 데이터 라인(59)를 통해 수신된 제1 룩업 테이블(45)의 출력을 그 자신의 출력(63)으로 전달하고, 반면에, 논리적 "1" 신호가 선택되면, 제3 출력 멀티플렉서(61)는 다른 제2 데이터 라인(60)을 통해 수신된 제2 룩업 테이블(47)의 출력을 그 자신의 출력(63)으로 전달한다. 로컬 버스 입력 DL이 선택되면, 제3 출력 멀티플렉서(61)의 제어는 동적으로 된다. 사실상, 2개의 8-비트 룩업 테이블(45,47)은 단일의 16-비트 룩업 테이블로서 동작하며, 로컬 버스 입력 DL은 조합된 룩업 테이블에 저장된 바람직한 데이터 비트를 엑세싱하기 위한 제4 어드레스 입력으로서의 기능을 한다. 선택된 제3 멀티플렉서 출력(63)은 2개의 병렬 경로, 하나는 조합적인 또는 등록되지 않은 경로(65)이고, 다른 하나는 플립플롭(66)을 포함하는 등록된 경로로 분할된다. 제4 멀티플렉서 출력(67)은 자신의 출력(69)으로의 2개의 경로중 하나와 연결된다. 또한, 제4 멀티플렉서 출력(69)은 여러개의 병렬 경로로 분할된다. 이러한 경로중 하나(70)는 가능한 선택과 셀의 A 출력에 연결하기 위한 제1 출력 멀티플렉서(54)에 연결되며, 이러한 경로중 다른 하나(71)는 가능한 선택과 셀의 B 출력에 연결하기 위한 제2 출력 멀티플렉서(55)에 연결된다. 제3 경로는 출력 버퍼(73)를 통해 출력 라인(75)에 연결되어, 셀의 로컬 버스 출력 L 에 출력 신호를 제공하게 된다. 출력 버퍼(73)는 다른 멀티플렉서(74)에 의해 제공된 인에이블 신호에 의해 제어된 3상태 버퍼가 될 수 있다. 선택가능한 옵션은 버퍼(73)가 항상 인에이블되는 논리적 "1" 신호와, 전용 버스 라인으로부터 수신된 2개의 동적 출력 인에이블 신호들 OEH및 OEV를 포함한다. 제4 멀티플렉서 출력(69)에 해당하는 제4 경로는 로컬 버스 입력 CL대신에 가능한 선택을 하는 입력 멀티플렉서(39)에 연결되는 피드백 경로(40)이다.
셀의 구조는 상대적으로 간단하고 소형이면서도 매우 플렉서블하다. A 및 B 입력 멀티플렉서(41,43)는 4개의 가장 인접한 셀에 대하여 완전한 대칭을 제공한다. 이와 마찬가지로, 도 6의 로컬 버스 입력 회로는 셀의 로컬 버스 접속 10개 모두에 대한 옵션의 완전한 동일성을 제공한다. 셀의 출력 종료시에, A 및 B 출력이 매칭 옵션으로 제공된다. A 출력은 직접 신호 라인(52)을 통해 등록되지 않은 제1 룩업 테이블(45)의 출력이나, 제2 신호 라인(59), 레지스터(66) 또는 신호 라인(70)을 통해 등록된 제1 룩업 테이블(45)의 출력으로 제공될 수 있다. 또는, A 출력은 제2 신호 라인(60)과 신호 라인(70)을 통해 등록되었거나 등록되지 않은 제2 룩업 테이블(47)의 출력으로 제공될 수 있다. 또는, A 출력은 로컬 버스 입력 DL이 제4 어드레스 입력으로 동작하기 위해 멀티플렉서(62)에 의해 선택되는 경우 조합된 16-비트 L.U.T. 의 등록되었거나 등록되지 않은 출력으로 제공될 수 있다. 이와 마찬가지로, B 출력은 제2 룩업 테이블(47), 제1 룩업 테이블(45) 또는 조합된 16-비트 룩업 테이블의 출력으로 제공될 수 있으며, 이들 출력중 어느 것도 등록되었거나 등록되지 않을 수 있다. 셀의 로컬 버스 출력 L 로서 동일한 옵션이 이용가능하다.
대칭적이고 플렉서블한 입력 및 출력 선택 옵션에 더하여, 셀 구조의 결과 셀의 입력으로부터 직접 셀대 셀 출력으로의 처리능력이 빨라지게 된다. 셀의 단순한 구조에 의해, 셀의 입력과 출력 사이에는 3개의 회로 소자만이 사용될 수 있다. 특히, A, B, C 및 D 입력 신호는 어드레스 입력 a0, a1, a2또는 룩업 테이블(45,47)에 저장된 데이터 비트로의 엑세스를 집합적으로 제어하는 멀티플렉서(61)의 제어 입력이 도달하기 전에, 단지 하나의 선택 회로, 즉 멀티플렉서(41,43,39 및 62)중 하나를 통과한다. 이와 마찬가지로, 룩업 테이블(45,47)의 출력측에는, 룩업 테이블 출력 라인(49,51)에 제공된 신호가 셀의 A 및 B 출력에 도달하기 위해 단지 하나의 멀티플렉서(54 또는 55)를 통과할 수 있다.
도 7은 본 발명에 따른 하나의 선택적인 논리 셀을 나타낸다. 이 셀은 A, B, C 및 D 입력을 수신하여 선택하는 한 세트의 입력 멀티플렉서(41', 43', 39', 62')를 포함한다. 도 5에 도시된 것과 같은 A 입력은 해당 셀의 동일한 로우 또는 컬럼에서 인접한 가장 이웃한 논리셀로부터 직접 셀대 셀 입력들 An, Ae, As, Aw 를 포함하고, 하나의 논리 버스 입력 AL를 포함한다. 또한, B 입력은 로컬 버스 입력 BL과, 대각선으로 인접한 논리 입력으로부터 셀대 셀 입력들 Bnw, Bne, Bse, Bsw 를 포함할 수 있다. 그러므로, B 입력은 도 3에 도시된 셀대 셀 접속에 대응할 수 있다. 입력 멀티플렉서(39')는 로컬 버스 입력 CL또는 논리 "1" 신호중 하나를 선택한다. 이 멀티플렉서(39')의 출력(42')은 AND 게이트(44')의 하나의 입력에 연결된다. 멀티플렉서(38')는 피드백 라인(34'), 로컬 버스 임력 DL또는 논리 "1" 신호중 하나를 선택하고, 자신의 출력(40')상의 선택된 신호를 AND 게이트(44')의 다른 입력에 제공한다. 따라서, AND 게이트(44')는 자신의 출력(46')으로 로컬 버스 입력 CL또는 DL이나 피드백 신호중 하나를 통과시킬 수 있으며, 로컬 버스 입력 CL및 DL(또는 피드백 신호를 갖는 입력 CL)을 논리적으로 조합하여, 이들 2개의 입력의 논리곱을 형성할 수 있다. AND 게이트(44')를 가진 셀은 단일 셀내에서 한 소자의 어레이 멀티플렉서를 구현할 수 있는 능력을 제공하게 된다. 도 5에 있어서, 입력 멀티플렉서(41', 43')의 선택된 출력은 2개의 8-비트 룩업 테이블(45', 47')의 2개의 어드레스 입력 a0, a1에 연결된다. AND 게이트(44')의 출력(46')은 룩업 테이블(45', 47')의 제3 어드레스 입력 a2에 연결된다.
도 5에 있어서, 룩업 테이블(45', 47')의 출력은 출력 멀티플렉서(54', 55')를 통해 논리 셀의 각각의 A 및 B 출력에 연결된다. 또한, 룩업 테이블(45', 47')은 다른 멀티플렉서(62')에 의해 선택된 것과 같이, 미리 결정된 "0" 또는 "1" 제어 신호 또는 로컬 버스 입력 DL에 의해 제어된 제3 멀티플렉서(61')에 연결된다. 상기 기술된 바와 같이, 로컬 버스 입력 DL이 선택된 경우, 2개의 룩업 테이블(45', 47')은 제4 어드레스 입력으로서 동작하는 로컬 버스 입력 DL을 가진 단일의 16-비트 테이블로 효율적으로 조합된다. 제3 멀티플렉서(61')의 선택된 출력은 등록되지 않은 신호 경로(65'), 등록된 신호 경로상의 플립플롭 레지스터(66') 및 2개의 신호 경로중 하나를 선택하는 멀티플렉서(67')로 구성되는 등록된/등록되지 않은 선택 회로에 연결된다. 그 결과로서의 출력(69')은 멀티플렉서(54', 55')를 통해 셀의 A 및 B 출력에 연결되며, 출력 버퍼(73')를 통해 셀의 로컬 버스 입력 L에 연결된다. 다시, 출력 버퍼(73')는 멀티플렉서(74')에 의해 선택된 출력 인에이블 신호에 응답하는 3상태 버퍼가 될 수 있다. 도 7은 또한 출력 버퍼 회로(73')가 다른 멀티플렉서(72')를 통해 출력 극성 제어를 포함한다.
도 8에 있어서, 본 발명에 따른 다른 선택적인 논리 셀이 2개의 8×1 정적 RAM 을 사용하는데, 이 RAM 은 기록 인에이블을 제공함으로써 소자의 동작 동안 기록가능하게 되고 버스 네트워크로부터 셀로의 데이터 엑세스가 가능하게 된다. 이것으로 셀은 칩 내장 메모리로서 사용되거나, 선택적으로 미리 할당되고 미리 결정된 룩업 테이블에 의해 일반적으로 수행된 논리 기능이 FPGA 소자내에서 다른 셀에 의해 수행된 일부 기능의 결과로서 소자 자체에 의한 동작 동안 동적으로 변경될 수 있게 된다. 이 실시예에 있어서, 입력 멀티플렉서(41", 43", 39")는 A, B, C 에 직접, 로컬 버스 입력 및 피드백 라인(40")에 연결되며, 도 5와 동일한 방식으로 SRAM(45", 47")의 어드레스 입력 a0, a1, a2에 연결된다. SRAM(45", 47")의 출력(49", 51")은 출력 멀티플렉서(54", 55")로 연결되는 플립플롭(66", 68")을 포함하는 등록된 경로와, 등록되지 않은 경로(64", 65")로 각각 분할된다. 멀티플렉서(54", 55")의 출력은 신호 경로(56", 57")를 따라 논리 셀의 셀대 셀에 대한 A, B 출력에 직접 연결되며, 제2 신호 경로(59", 60")를 따라 멀티플렉서(62")에 의해 선택된 신호에 의해 제어된 로컬 버스 출력 선택 멀티플렉서(61")에 연결된다. 이 선택은 미리 결정된 논리적 로우("0")와, 논리적 하이("1")와, 수평 및 수직 로컬 버스로부터 얻어진 각각의 동적 로컬 버스 입력 DH및 DV를 포함한다. 만일 동적 로컬 버스 입력 DH 또는 DV가 출력 멀티플렉서(61")를 제어하기 위해 선택되었다면, 2개의 8-비트로 구성된 조합된 16-비트 SRAM 에 대한 제4 어드레스 입력으로서 효율적으로 동작하는 입력은 논리 셀에 대해 선택적으로 디스에이블(미리 결정된 논리적 로우 입력 "0" 에 의해)될 수 있는 기록을 하는 멀티플렉서(82")를 통해 기록 인에이블 신호 WE 자체를 제공한다.
도 9 및 10에 있어서, 각 셀(도 5, 6, 및 8 각각)에 있는 플립플롭 레지스터(66, 66', 66", 68")는 클록 입력과 리셋(또는 세트) 입력을 수신한다. 도 9는 본 발명의 FPGA 에 대한 클록 분배 회로를 나타낸다. 주파수나 위상 또는 이들 모두와 상이할 수 있는 클록 신호를 제공하는 다중 글로벌 클록 라인 CK0-CK7 이 제공된다. 다른 가능한 클록 분배 배열은 멀티플렉서(88)를 부분적으로 차지하는 다른 수의 클록 라인을 포함할 수 있다. 논리 셀(11)의 각 컬럼에는 글로벌 클록 라인 CK0-CK7의 일부 또는 모두에 각각 연결된 입력을 갖는 자신의 클록 선택 멀티플렉서(88)가 제공될 수 있다. 그러므로, 논리 셀(11)의 각 컬럼은 논리 셀(11)의 다른 컬럼과 상이한 클록 신호를 제공할 수 있다. 각 클록 선택 멀티플렉서(88)의 출력은 그 컬럼에 있는 셀 각각에 선택된 클록 신호를 분배하기 위한 메인 컬럼 라인(92)을 형성한다. 논리 셀의 컬럼은 4 또는 8 더욱 일반적으로 말해서 N개의 셀 각각의 섹터들로 부분 분할될 수 있다. 도 9에 있어서 섹터(14)는 4개의 셀로 구성되어 있다. 각 섹터의 셀에 대해, 메인 컬럼 라인(92)으로 분기하는 클록 극성-선택 및 분배-인에이블 회로(94)가 제공된다. 이 회로(94)는 메인 컬럼 라인(92)에 접속된 하나의 입력을 가지며 클록 신호를 수신하는 제1 멀티플렉서(106)와, 미리 결정된 논리적 하이 ("1") 신호를 신호를 수신하는 다른 입력을 포함한다. 만일 클록 신호가 멀티플렉서(106)에 의해 선택된다면, 신호는 논리 셀(11)의 대응 섹터(14)에 분배되지만, 만일 미리 결정된 신호가 선택되었다면, 그 섹터(14)에는 클록 신호가 제공되지 않는다. 회로(94)는 제2 멀티플렉서(108)와 연결되는 분기된 신호 경로(105,107)를 추가로 포함한다. 제2 멀티플렉서의 하나의 입력은 제1 멀티플렉서(106)의 입력(105)로부터 직접 연결되지만, 제1 멀티플렉서의 다른 입력은 인버터(107)를 통과한다. 그러므로, 제2 멀티플렉서(108)는 대응 섹터를 선택하기 위해 클록 신호의 극성을 인에이블 함으로써, 논리 셀(11)의 동일 컬럼에 있는 다른 섹터는 대향 극성을 갖는 클록 신호를 수신할 수 있게 된다. 결국, 셀의 일부 섹터, 글로벌 클록 라인 CK0-CK7에 가장 인접한 가장 위쪽 세트의 섹터가 아닌 섹터는 동일 컬럼에 있는 셀의 인접한 섹터에서 셀로부터 직접 A 출력(110)을 선택적으로 수신할 수 있게 된다.
도 10에 있어서, 컬럼 라인(115)을 리셋하기 위한 글로벌 리셋 라인(114)에 의해 제공된 리셋 신호는 클록 회로(94)와 동일한 방식으로 구성된 리셋 극성-선택 및 분배-인에이블 회로(116)에 의해 논리 셀의 섹터에 의해 미리 결정된 극성을 갖는다.
도 11에 있어서, 논리 셀(11)은 버스 네트워크에 대한 "리피터"(27)라 불리는 한 세트의 연결 스위치가 위치한 경계(13)에서 4×4 블록 셀(15)로 구성된다. 상기 기술된 바와 같이, 버스 네트워크는 논리 셀(11)의 로우 사이에 있는 수평 버스 라인 세트(21)와, 논리 셀(11)의 컬럼 사이에 있는 수직 버스 라인 세트(19)를 포함한다. 각 세트의 버스 라인(19 또는 21)은 셀의 단일 블록(15)으로 한정된 로컬 버스 라인(23)과 다중 셀 블록을 통해 리피터(27)에 의해 연장되는 2개의 익스프레스 버스 라인(23)을 포함한다. 단순화하기 위해, 단지 한 세트의 3개로 구성된 버스 라인(23 및 25)이 셀(11)의 각 로우 및 컬럼에 대해 도시되어 있다. 그러나, 상기 기술된 바와 같이, 도 4에 도시된 바와 같이 셀(11)의 각 로우 및 컬럼에 대해 규칙적인 5 세트의 3개로 구성된 버스 라인(19 및 21)이 있다. 리피터(27)는 로컬 버스 라인(23)으로 하여금 익스프레스 버스 라인(25)에 연결되도록 한다. 로컬 버스 라인만이 논리 셀(11)에 직접 연결된다. 리피터(27)는 엇갈린 배열을 가지는데, 여기서 어떤 하나의 리피터(27)는 로컬 버스 라인(23)과 2개의 익스프레스 버스 라인(25)중 단지 하나 사이의 선택가능한 접속을 제공하고, 연속적인 리피터(27)는 세트내의 선택적인 익스프레스 버스 라인에 접속된다. 그러므로, 각각의 익스프레스 버스 라인(25)은 매 4개의 로우 또는 컬럼이 아닌 셀(11)의 매 8개의 로우 또는 컬럼마다 리피터(27)와 만나게 되는 반면, 각각의 로컬 버스 라인(23)은 셀(11)의 매 4개의 로우 또는 컬럼마다 리피터(27)와 만나게 된다. 셀(11)의 블록(15)에 있는 각각의 로컬 버스 라인(23)은 블록(15)의 대향 말단에서 대응하는 익스프레스 버스 라인(25) 각각에 접속가능하다. 바람직한 엇갈린 배열을 얻기위해 리피터(27)를 배치하는 편리한 방법은 각 세트의 3개로 구성된 버스 라인에서 익스프레스 버스 라인과 매칭되도록하기 위해 리피터(27)의 모든 로우 또는 컬럼이 접속가능하도록 하고(예를 들어, 모두 최좌측 또는 최상측 익스프레스 라인에 접속됨), 리피터(27)의 다음에 이어지는 로우 또는 컬럼이, 4개의 논리 셀 거리로, 세트내의 대향 매칭된 익스프레스 라인에 모두 접속가능하도록(예를 들어, 모두 최우측 또는 최하측 익스프레스 라인에 접속됨)하는 것이다. 또한, 도 11은 버스 라인의 로우 및 컬럼 사이에서 신호가 90° 방향 전환할 수 있는 버스 라인 교차로 인해 부가적인 스위치(81)가 위치한 것을 나타낸다. 이러한 스위치(81)는 로컬 버스 라인을 다른 로컬 버스 라인에 접속하고, 익스프레스 버스 라인을 다른 익스프레스 버스 라인에 접속시킨다.
도 12에 있어서, 블록(15)을 제한하는 리피터(27)의 로우 및 컬럼의 교차점이 제공된 공간이 있는 논리 셀(11)의 각 블록(15)의 코너에 전용 기능 소자(83)(DFE)가 있으며, 이 각각의 소자(83)는 RAM 과 같은 메모리 구조체나, 승산기, 시프트 레지스터, 기능이 미리 결정된 디지탈 또는 아날로그 논리회로, 마이크로콘트롤러, 비교기 및 아날로그-디지탈 또는 디지탈-아날로그 변환기와 같은 다른 전용 또는 특수 회로가 될 수 있다. 코너 공간은 셀의 블록 구성과 관련 버스 및 리피터로부터 생기는 것이므로, 이러한 공간에 있는 메모리의 전용 논리회로의 배치로 인해 전체 소자에 대해 실리콘 영역에서의 비용이 거의 없거나 없게 된다.
각각의 전용 기능 소자(83)는 RAM 블록 또는, 도 4 및 13에 도시된 바와 같이 블록당 전체 128 비트에 대해 32개의 4-비트 데이터 워드로 구성된 (비휘발성 메모리와 같은)다른 메모리 구조가 될 수 있다. 도 13에 있어서, 각각의 RAM 블록(83)은 한 세트의 플립플롭 레지스터(87)를 경유하여 어드레스 라인(860-864)으로부터 어드레스 신호를 수신하는 5개의 동기식 어드레스 입력(a0-a4)과 4개의 양방향 데이터 포트(d0-d3)를 구비한다. 데이터 포트(d0-d3)는 각각의 데이터 라인(890-893)에 연결되며, 각각의 데이터 라인은 차례로 한쌍의 입력 및 출력 버퍼(90 및 91)에 접속된다. 입력 버퍼(90)는 플립플롭(93)을 통해 데이터 라인(950-953)에 접속된다. 출력 버퍼(91)는 데이터 라인(950-953)에 직접 접속된다. 기록 인에이블 신호 WE 는 플립플롭 레지스터(97)를 통해 기록 인에이블 라인(96)으로부터 수신된다. 플립플롭(97)의 레지스터 출력 Q는 제1 분기를 통해 SRAM(85)의 기록 인에이블 입력 포트에 접속되며, 제2 분기(99)를 경유하여 각각의 사이드 분기(990-993)를 통해 각 데이터 포트(d0-d3)에 대한 입력 버퍼(90)의 3상태 제어 입력에 접속된다. 출력 인에이블 신호 OE 는 플립플롭 레지스터(103)를 경유하여 출력 인에이블 라인(102)로부터 수신된다. 레지스터(103)의 출력(104)은 AND 게이트(101)의 제1 입력에 접속되는 반면, 플립플롭 레지스터(97)의 출력의 제3 분기(100)는 AND 게이트(101)의 상보성 제2 입력에 접속된다. AND 게이트(101)의 출력(105)은 각각의 사이드 분기(1050-1053)을 통해 각각의 데이터 포트(d0-d3)에 대한 출력 버퍼(91)의 3상태 제어 입력에 접속된다.
그러므로, 데이터를 SRAM(85)에 기록하기 위해, 5-비트의 어드레스가 어드레스 포트(90-94)에서 레지스터(87)의 출력으로부터 동기적으로 수신되고, 기록 인에이블 신호는 플립플롭 레지스터(97)로부터 제1 분기(98)를 경유하여 SRAM(85)의 기록 인에이블 포트 WE 로 동기적으로 수신된다. 또한, 기록 인에이블 신호는 사이드 분기(990-993)를 경유하여 입력 버퍼(90)를 인에이블시키고, AND 게이트(101)를 경유하여 출력 버퍼(91)와 사이드 분기(1050-1053)을 디스에이블시킨다. 그러므로, 데이터 라인(950-953)으로 수신된 데이터 비트는 입력 버퍼(90)와 데이터 라인(890-893)을 통해 각각의 데이터 포트(d0-d3)로 전송되고, 어드레스 포트(a0-a4)에서 수신된 어드레스가 SRAM(85)에 기록된다. 저장된 데이터를 SRAM(85)으로부터 판독하기 위해, 어드레스와 출력 인에이블 신호 OE 는 레지스터(87, 103)를 경유하여 어드레스 포트(a0-a4)와 AND 게이트(101)에서 동기적으로 수신된다. 레지스터(97)에 의해 전송된 기록 인에이블 신호 WE 는 로우이며, 분기 라인(990-993)를 경유하여 입력 버퍼(90)를 디스에이블시키고, AND 게이트(101)로 하여금 분기 라인(1050-1053)을 경유하여 출력 버퍼(91)를 인에이블 시키게 된다. 수신된 어드레스에 저장된 데이터는 데이터 포트(d0-d3)를 통해 데이터 라인(950-953)으로 출력된다. 이와는 선택적으로, RAM 블록(83)은 적절하게 변경될 수 있어서, 기록 인에이블과 출력 인에이블 신호가 엑티브 로우로될 수 있다.
도 4에 있어서, 도 13의 RAM 블록(83)은 버스 네트워크에 접속될 수 있어서, 5개의 어드레스 라인(86) 각각은 셀(11)의 하나의 컬럼에 대응하는 5개의 수직 로컬 버스 라인(23)중 상이한 하나에 접속되고, 기록 인에이블 및 출력 인에이블 라인(96, 102)은 셀의 동일 컬럼에 대응하는 2개의 수직 익스프레스 버스 라인(25)에 접속되고, 4개의 데이터 라인(95) 각각은 RAM 블록(83)에 인접한 셀의 4×4 그룹에서 셀(11)의 4개의 로우 각각에 대응하는 상이한 수평 로컬 버스 라인에 접속된다. 다른 접속 방법도 가능하다.
이와는 선택적으로, 도 4 및 13에 도시된 배열 대신에, RAM 블록(83)은 도 14 및 15에 도시된 방식으로 버스 네트워크에 접속될 수 있다. 도 14는 블록(15)의 사이와 내에서 셀(11)의 로우 및 컬럼 사이에 있는 몇몇의 수직 및 수평 익스프레스 버스 라인(19,21)과 함께, 논리 셀(11)의 8개의 4×4 블록(15)을 나타낸다. 스위치(81)를 전환하면, 선택된 수직 및 수평 버스 라인(19,21)은 교차된 곳에서 접속된다. 논리 셀(11)의 각 블록(15)의 더 낮은 우측 코너에는 RAM 블록(83)이 있다. 도 15에 도시된 바와 같이, 각각의 RAM 블록(83)은 SRAM 에 기록 동작을 하기 위한 기록 인에이블 포트 , 기록 어드레스 포트 Ain, 및 데이터 입력 포트 Din을 가지며, SRAM 으로부터 데이터를 판독하기 위한 판독 인에이블 포트 , 분리 판독 어드레스 포트 Aout, 및 분리 데이터 출력 포트 Dout 를 갖는 이중 포트 SRAM 이 될 수 있다. 그러므로, 판독 및 기록 동작은 독립적으로 일어나며, 분리된 어드레스 및 데이터 라인에서 동시에 발생할 수 있다.
도 14에 있어서, 8개의 데이터 비트가 기록되는 RAM내의 한세트의 위치에 대응하는 6-비트 기록 어드레스는 버스 네트워크로부터 또는 소자의 외부 패드로부터 수신된다. 6-비트중 2-비트는 종래의 2-4 비트 디코더(171)로 입력된다. 디코더(171)는 디코더가 수신하는 4개의 가능한 2-비트 입력값에 따라 4개의 출력(173)중 단지 하나만이 엑티브된다. 4개의 디코더 출력(173) 각각은 4개의 OR 게이트(175)중 하나의 입력에 접속된다. 글로벌 기록 인에이블 신호 는 4개의 OR 게이트(175)의 다른 입력에 수신된다. OR 게이트 출력(177)은 블록(15)의 4개의 컬럼 각각에 대응하는 수직 익스프레스 버스 라인(19)에 그리고 RAM 블록(83)의 대응하는 컬럼에 접속된다. 이러한 RAM 블록의 기록 인에이블 포트 는 대응하는 OR 게이트 출력(177)으로부터 디코딩된 기록 인에이블 신호를 수신하기 위해 특정 수직 익스프레스 버스 라인에 접속된다. 그러므로, 2개의 기록 어드레스 비트중 어떤 조합에 대해, RAM 블록(83)의 4개의 컬럼중 하나는 글로벌 기록 인에이블 신호 가 엑티브될 때 기록 동작을 위해 엑티브될 것이다. 6-비트 어드레스에 있는 다른 4개의 기록 어드레스 비트는 수평 익스프레스 버스 라인(21)에 접속되어, 각 RAM 블록(83)의 기록 어드레스 포트 Ain에 접속된 수직 버스 라인(19)으로 스위치(81)를 전환하게 된다. 8개의 데이터 입력 라인 Din(0)-Din(7) 은 논리 셀(11)의 각각의 로우에 인접한 수평 버스(19)를 통하여 RAM 블록(83)의 데이터 입력 포트 Din 에 접속되고, 각각의 RAM 블록(83)은 Din(0)-Din(3) 또는 Din(4)-Din(7)중 하나로부터 4개의 병렬 데이터 입력 신호를 수신하게 된다. 그러므로, RAM 블록의 2개의 로우는 주어진 어드레스에 데이터의 단일 바이트를 기록할 필요가 있다.
이와 마찬가지로, 판독 동작에 대해, 6-비트 판독 어드레스에는 4개의 출력(174)을 제공하는 다른 2-4 비트 디코더(172)에 접속된 2개의 어드레스 비트와, 수평 익스프레스 버스 라인(21)을 통해 연결된 나머지 4개의 어드레스 비트에 제공되며, RAM 블록(83)의 판독 어드레스 포트에 연결된 수직 익스프레스 버스 라인(19)으로 스위치(81)를 전환시킨다. 다시, 8개의 모든 RAM 블록에는 4개의 어드레스 비트가 제공되지만, RAM 블록의 단지 하나의 컬럼만이 2개의 어드레스 비트로부터 디코더(172)로 유도된 판독 인에이블 신호가 제공된다. 8개의 데이터 출력 라인 Din(0)-Din(7) 은 수평 익스프레스 버스 라인을 경유하여 RAM 블록(83)의 2개의 로우에 있는 데이터 출력 포트 Dout에 접속된다.
한가지 중요한 배치는 RAM 블록(83)의 인접한 컬럼에 판독 어드레스 포트 Ain및 기록 어드레스 포트 Aout가 제공된다는 것이다. 이것으로, 이중 포트 RAM 소자를 구성할 때 어드레스 신호용으로 사용된 수직 버스 자원의 필요한 수를 거의 반으로 줄일 수 있다. 도 14에 있어서, RAM 블록의 처음 2개 컬럼이 공통 판독 어드레스 라인(176)을 공유한다는 것이 중요하다. 이와 마찬가지로, RAM 블록의 마지막 2개 컬럼은 공통 판독 어드레스 라인(178)을 공유한다. RAM 블록의 제2 및 제3 컬럼은 공통 기록 어드레스 라인(179)을 공유한다. 더 큰 그룹의 메모리 블록에 있어서, RAM 블록의 8개 또는 16개 컬럼과, 3-8 또는 4-16 비트 디코더를 구비한 메모리 블록에서, 수직 버스 자원의 사용은 논리 블록(15)의 한 컬럼에 있는 판독 어드레스 라인으로부터 논리 블록(15)의 다음 컬럼에 있는 기록 어드레스 라인으로 교대로 될 것이다.
논리 셀의 각 블록에 있는 코너에서 전용 기능 소자는 승산기와 같은 특수 논리 구조가 될 수 있다. 예를 들어, 4×4 승산기는 도 14 및 15 에 도시된 이중 포트 SRAM과 동일한 방식으로 버스 네트워크에 접속될 수 있으며, 여기서 한 세트의 어드레스 입력은 하나의 4-비트 오퍼랜드로 대체되고, 다른 세트의 어드레스 입력은 다른 4-비트 오퍼랜드로 대체된다. 승산기의 8-비트 곱 출력은 RAM의 2개의 4-비트 데이터 입력 및 데이터 출력 라인으로 대체된다.
도 16에 있어서, 어레이의 에지에 있는 논리 셀(11)은 다양한 방식중 하나로 입력/출력 패드(17)에 접속될 수 있다. 여기에 나타난 한가지 방식은 각각의 논리 셀, 예를 들어 셀(112)을 I/O 라인(121-123)을 경유하여 3 개의 이웃하는 I/O 패드(117-119)에 접속하고, 또한 각각의 I/O 패드, 예를 들어 패드(118)를 I/O 라인(122, 124, 125)을 경유하여 3개의 이웃하는 논리 셀(111-113)에 접속하는 것이다. 이 구조의 한가지 예외가 어레이의 코너에서, 그리고 패드의 라인의 끝에서 발생한다. 그러므로, 말단 패드(131)는 I/O 라인(132,133)을 경유하여 단지 2개의 논리 셀(134,135)에 접속된다. 코너 논리 셀(135)은 I/O 라인(132,136-138)을 경유하여 4개의 I/O 패드, 즉 I/O 패드의 한 라인에 있는 패드(130,131)와 패드의 다른 라인에 있는 패드(139,140)에 접속된다. 다른 배치도 가능하다.
상세한 코너 접속 구조가 도 17에 도시되어 있다. 다른 논리 셀과 I/O 패드의 접속도 유사하다. 도 17에 도시된 특정 논리 셀(135)은 어레이의 하부 우측 코너에 있는 셀, 즉 도 1에 있는 하측 로우와 최우측 컬럼에 있는 셀이다. 도 16에 있어서, 이 특정 셀(135)은 패드의 하측 라인에 있는 2개의 최우측 I/O 패드(139,140)에 접속되고, 회로의 패드의 우측 라인에 있는 2개의 최하측에 있는 I/O 패드(130,131)에 접속된다. 도 17에 있는 셀(135)은 어레이에 있는 다른 모든 셀과 마찬가지로, 한세트의 인접한 수직 및 수평 버스 라인(19,21)에, 로컬 버스(23)와 리피트가능한 스위치(27)를 경유하여 로컬 버스(23)에는 직접적으로 또는 익스프레스 버스(25)에는 간접적으로 접속된다. 도 4 및 6에서와 같이, 5개의 수평 로컬 버스 및 5개의 로컬 버스 라인(23)과 셀(135) 사이의 접속은 한 세트 10개의 양방향 데이터 버스 라인(29)을 경유하여 형성된다. 또한, 코너 셀(135)은 도 2에 도시된 것과 같이 가장 인접한 셀(도시 안됨)에 직접 접속된다. 그러나, 셀(135)은 그 우측과 아래에 이웃하는 셀이 부족하기 때문에, 4개의 사용되지 않은 A 및 B 직접 입력(AE,BE,AS,BS)과 4개의 사용되지 않은 A 및 B 직접 출력(2개의 A 와 2개의 B)은 I/O 패드에, 임의의 익스프레스 버스 라인(25)에 대한 접속을 용이하게 하는데 사용된다.
특히, 말단 리피터 유닛(27)과 만나지 않는 5개의 수평 익스프레스 라인(25) 각각은 한쌍의 5-1 멀티플렉서(141,143)와 한쌍의 5-구성 소자 세트의 스위치(145,147)에 접속된다. 이와 마찬가지로, 버스 라인의 컬럼에서 종단하는 말단 리피터 유닛(27)과 만나지 않는 5개의 수직 익스프레스 라인(25)은 멀티플렉서(142, 144)와 한세트의 스위치(146, 148)에 접속된다. 멀티플렉서(141, 142)의 출력은 각각의 직접 B 입력 BE및 BS에 접속되며, I/O 패드에 연결되는 출력 신호 경로(153,154)에 접속된다. 멀티플렉서(143,144)의 출력은 I/O 패드에 연결되는 출력 신호 경로(155, 156)에만 접속된다. 한세트의 스위치(145, 146)는 셀(135)의 직접 B 출력을 리피터(27)에 의해 종단되지 않은 수평 및 수직 익스프레스 라인(25)에 접속된다. 한세트의 스위치(147,148)는 입력 신호 경로(169,170)를 I/O 패드로부터 동일한 10개의 수평 및 수직 익스프레스 라인(25)에 접속된다. 또한, 입력 신호 경로(169,170)는 셀(135)의 각각의 직접 A 입력 AE및 AS에 접속된다.
우측 출력 신호 경로(151,153,155)는 도 16에 도시된 패드의 우측 라인상에서 최하측에 있는 2개의 패드(130,131)와, 패드의 하측 라인에서 최우측에 있는 패드(139)으로 연결된다. 하측 출력 신호 경로(152,154,156)는 도 16에 있는 패드의 하측 라인에서 최우측에 있는 2개의 패드(139,140)와, 패드의 우측 라인에서 최하측에 있는 패드(131)에 연결된다. 그러므로, 출력 신호 경로(151-156) 각각은 4개의 이용가능한 패드 접속으로부터 3개의 상이한 패드에 선택적으로 접속가능하다. 신호 경로(155,156)는 경로(151-154)와 I/O 패드 사이의 출력 버퍼에 3상태 인에이블 신호를 제공하는데 사용될 수 있다. 입력 신호 경로(169,170)도 이와 마찬가지로 I/O 패드에 접속가능하다. 도전 라인(161, 163, 165)은 각각의 패드(130,131,139)에 접속되지만, 도전 라인(162, 164, 166)은 도 16에 도시된 각각의 패드(131,139,140)에 각각 접속된다. 입력 선택 멀티플렉서(167,168) 각각은 선택된 도전 라인(161-166)을 입력 신호 경로(169,170)에 접속시킨다.
도 18 및 19에 있어서, I/O 패드의 수는 도 16에 주위 논리 셀(11)당 하나의 패드(17)로부터 여기에 도시된 주위 논리 셀(12)의 쌍마다 3개의 패드(17')로 만일 바람직하다면 주위 논리 셀당 2개의 패드로 증가될 수 있다. 도 18에 있어서, 코너에 없는 주위 논리 셀(187-190)중 직접 대향하는 I/O 패드(180, 181, 183, 184 등)는 도 16에 3개의 주위 논리 셀로 그리고 관련 버스 라인으로 접속될 수 있다. 예를 들어, I/O 패드(181)는 도 19를 참조하여 이하 기술된 바와 같이 주위 논리 셀(187-189)와 관련 버스 라인에 접속가능하다. 부가적인 I/O 패드(182, 185 등)는 주위 논리 셀에 직접 대향하지 않지만, 논리 셀(188,189)와 논리 셀(190,191) 사이의 공간에 대향하여 위치하고, 도 19에 도시될 것과 같이 관련 버스 라인을 통해 2개의 가장 인접한 주위 논리 셀에 간접적으로 접속가능하다. 이와 마찬가지로, 가각의 코너에 없는 주위 논리 셀(187-190 등)은 4개의 I/O 패드에 접속가능하다. 예를 들어, 셀(188)은 I/O 패드(180-183)에 접속가능하다. 코너 셀(191 등)은 패드의 각 라인으로부터 3개씩 6개의 I/O 패드(184-186 및 192-194)에 접속된다.
도 19에 있어서, I/O 패드(181)는 입력 버퍼(201)에 접속되는데, 이 버퍼의 출력(202)은 논리 셀(187-189)의 직접 셀 입력(206-208)에 연결되는 3개의 입력 라인(203-205)으로 분할된다. 버퍼 출력(202)은 프로그램가능 스위치(209)를 통해 셀(187-189)을 포함하는 논리 셀의 3개의 로우 각각과 관련된 수평 버스 라인(21)의 말단에서 리피터 스위치 유닛(27)에 연결되는 양방향 신호 라인(210-212)에 접속가능하다. I/O 패드(181)와 관련된 것은 출력 멀티플렉서(213)이다. 이 멀티플렉서(213)는 논리 셀(187-189)의 직접 셀 출력(217-219)로부터 오는 셀 출력 라인(214-216)에 접속되며, 논리 셀(187-189)와 관련된 수평 버스 라인(21)의 3개의 로우로부터 양방향 신호 라인(210-212)에 접속된다. 이러한 신호 라인(210-212 및 217-219) 각각은 멀티플렉서(213)의 입력에 접속되어, 출력 버퍼(220)를 통해 I/O 패드(181)로의 전송의 위해 적어도 하나를 선택한다. 셀(187,189)에 직접적으로 대향하는 I/O 패드(180)는 I/O 패드(181)와 동일한 방식으로 접속된다.
I/O 패드(181,183) 사이에는 부가적인 I/O 패드(182)가 위치한다. I/O 패드(181,183)는 주위 논리 셀(188,189)과 직접적으로 대향하여 위치하고, 패드(182)는 어떤 논리 셀에 대해 대향하지 위치하지 않고, 셀(189)과 관련된 수평 버스 라인(21)을 포함하고 셀(188,189)와 관련된 로우 사이의 공간에 대향하여 위치한다. I/O 패드(182)는 프로그램가능 스위치(222)를 통해 양방향 신호 라인(223,224)에 접속가능한 출력을 갖는 입력 버퍼(221)에 접속된다. 이러한 신호 라인(223,224)은 출력 멀티플렉서(225)를 통해 I/O 패드(182)에 접속된 출력 버퍼(226)에 결합된다. 양방향 신호 라인(223,224)은 셀(288,289)과 관련된 수평 버스 라인용의 말단 리피터 스위치 유닛(27)과 입출력되도록 연결된 신호 라인(210)에 접속된다.
도 20 및 21에 있어서, 본 발명의 FPGA 를 위한 입력/출력 인터페이스의 다른 실시예가 I/O 패드(230,231)중 2개에 대해 도시되어 있다. 신호 경로의 크기를 알기쉽게 하기 위해, 도 20은 논리 셀(228)에 직접 대향하여 위치된 하나의 I/O 패드(231)와 관련된 경로만을 나타내었다. 이 구조는 FPGA 소자에 있는 셀의 매트릭스의 주위 둘레에서 각 셀(227,228,229 등)에 대해 반복된다. 이와 마찬가지로, 도 21은 2개의 논리 셀(227,228) 사이의 대향 위치에 있는 하나의 I/O 패드(230)와 관련된 경로만을 나타낸다. 이 구조는 이러한 제2 I/O 패드(230)가 셀 사이의 다른 이용가능한 위치마다 발견된다고 하더라도, FPGA 의 주위 둘레로 반복된다. 2가지 타입의 I/O 패드는 직접 대향하는 논리 셀이며, 셀 위치 사이에서 대향하고, 도 19에서 제2 I/O 인터페이스 실시예에서 나타난 바와 같이 FPGA 에서 서로 규칙적으로 나타난다.
도 20 및 21에 도시된 바와 같이, I/O 패드(231,230)는 사용자가 구성할 수 있는 비트(풀업)에 의해 제어되는 게이트를 갖는 풀업 트랜지스터(232,252)를 구비한다. 이러한 트랜지스터(232,252)의 주요 기능은 사용되지 않은 패드에 논리적 "1"을 제공하는 것이다. 온이 되면, 트랜지스터(232 또는 252)는 Vcc 에 대해 10K 저항과 같게 된다. 각 패드(231,230)는 각각 접속된 입력 버퍼(234,254) 및 출력 버퍼(233,253)를 구비한다. 입력 버퍼(234,254)는 사용자가 구성가능한 비트(TTL/CMOS)에 의해 결정된 선택가능한 쓰레스홀드 레벨, TTL 또는 CMOS 중 하나를 갖는다. 출력 버퍼(233,253)는 사용자가 구성가능한 다른 비트(반/전부 구동)에 의해 제어된 선택가능한 구동 레벨을 갖는다. 이 구동 레벨들은 DC 전류 싱크(SINKING) 능력에 따라 상이하다. 대안으로서, 이 버퍼는 동일하고 완전한 DC 전류 싱크 능력을 갖는 빠르거나 느린 제어가능한 회전율(slew rate)를 가질 수 있다. 반 구동 또는 느린 회전율, 이중 하나는 잡음과 접지 바운스를 감소시키며, 속도가 중요하지 않은 출력용으로 권고된다. "오픈 콜렉터" 구성 비트는 출력 버퍼(233 또는 253)의 엑티브 풀업을 선택적으로 인에이블 또는 디스에이블시킨다. 3상태 출력 버퍼(233,253)에 사용되는 인에이블 신호(3-상태)는 다수의 옵션으로부터 멀티플렉서(235,255)에 의해 선택된다. 이 옵션들은 통상적으로 버퍼가 항상 구동이거나 또는 구동이 아닌 고정된 논리 레벨 "0" 및 "1" 과, 어레이내에 발생된 다수의 동적 신호를 포함한다. 주위 논리 셀(228)에 직접적으로 대향하는 주요 I/O 패드(231)는 3개의 이용가능한 출력 셀(227,228,229)과 관련된 3개의 동적 신호 선택(셀1, 셀2, 셀3)을 갖는 반면, 셀 위치 사이에 배치된 2차 I/O 패드(230)는 2개의 이용가능한 출력 셀(227,228)과 관련된 2개의 동적 신호 선택(셀1, 셀2)을 갖는다. 동적 신호는 그들 자신의 각각의 셀내에서 발생되거나, 이 셀들과 관련된 버스 라인(247,248 또는 249)에 의해 제공될 수 있다.
도 20에 있어서, I/O 패드(231)는 라인(241-244)에 의해 3개의 이웃하는 주위 논리 셀(227, 228, 229 ; 각각 셀1, 셀2, 셀3 으로 표시)과 관련된 버스 라인(247,248,249)에 출력 선택 멀티플렉서(237)와 출력 버퍼(233)를 통해 접속된다. 2개의 신호 옵션은 패드(231)와 직접 대향하는 셀(228)과 관련된 버스 라인(248)으로부터 이용가능한반면, 이웃하는 버스 라인(247,249)으로부터 단지 하나의 신호 옵션이 이용가능하다. 또한, 출력 선택 멀티플렉서(237)는 논리 셀(228)로부터 직접 셀 출력(245)을 수신한다. I/O 패드(231)는 입력 버퍼(234)를 통해 논리 셀(228)의 직접 셀 입력(250)에 접속되고, 사용자가 구성가능한 스위치(251)를 경유하여 버스 라인(247-249)에 연결되는 동일한 세트의 라인(241-244)에 접속된다.
도 21에 있어서, 셀(227,228) 사이의 위치에 대향하여 위치한 패드(230)는 라인(261,262)에 의해 셀(227,228)과 관련된 버스 라인(247,248)에 출력 선택 멀티플렉서(257)와 출력 버퍼(253)를 통해 접속된다. 또한, 멀티플렉서(257)는 셀(227,228)로부터 직접 대각선 방향 셀 출력(263,264)을 수신한다. I/O 패드(230)는 입력 버퍼(254)를 통해 셀(227,228)의 직접 대각선 방향 셀 입력(265,266)을 통해 접속되며, 버스(247,248)에 연결되는 라인(261,262)에 사용자가 구성가능한 스위치(267)를 경유하여 접속된다.
도 16 내지 21에 도시된 것으로부터 FPGA 소자용의 다른 I/O 인터페이스 구성이 가능하다.

Claims (36)

  1. 구성가능한 논리 집적 회로에 있어서,
    입력 및 출력 단자 세트와;
    복수의 비전용 프로그램가능 논리 셀을 구비하는데, 이 복수의 셀은 조직화되어 복수의 블록이 되고 상기 각 블록내의 셀은 블록내의 경로를 따라 서로 입출력가능하게 배치되며, 상기 복수의 블록은 하나 이상의 블록을 연결하는 경로를 따라 서로 입출력가능하고, 상기 경로중 적어도 몇몇은 상기 단자 세트에 결합될 수 있으며,
    상기 복수의 블록 사이의 공간에 배치되어, 상기 셀로 구성된 블록과 관련되고, 이 블록과 관련된 경로에 접속가능한 복수의 전용 기능 소자를 구비하는 것을 특징으로 하는 논리 집적회로.
  2. 제1항에 있어서, 상기 논리 셀은 복수의 로우 및 컬럼의 매트릭스 형태로 배치되어, 필드 프로그램가능 게이트 어레이를 형성하는 것을 특징으로 하는 논리 집적회로.
  3. 제2항에 있어서, 상기 복수의 셀로 구성된 블록은 복수의 로우 및 컬럼의 그리드 패턴으로 상기 셀의 배치와 유사하게 정렬되는 것을 특징으로 하는 논리 집적회로.
  4. 제3항에 있어서, 상기 전용 기능 소자는 상기 블록의 코너에 제공된 공간에 배치되는 것을 특징으로 하는 논리 집적회로.
  5. 제2항에 있어서, 상기 경로는 논리 셀의 로우 및 컬럼을 따라 분배된 버스 라인 네트워크를 형성하는 것을 특징으로 하는 논리 집적회로.
  6. 제5항에 있어서, 상기 버스 라인 네트워크는 상기 각 블록의 내부에 있는 로컬 버스 라인 세트와 복수의 블록을 연결하는 익스프레스 버스 라인 세트를 포함하며, 상기 어느 한 세트에 있는 로컬 버스 라인은 서로 선택적으로 접속가능하고 상기 세트와 관련된 블록내의 논리 셀에 선택적으로 접속가능하며, 상기 익스프레스 버스 라인은 서로 그리고 상기 로컬 버스 라인에 선택적으로 접속가능한 반면, 임의의 논리 셀에는 직접적으로 접속가능하지 않은 것을 특징으로 하는 논리 집적회로.
  7. 제6항에 있어서, 상기 버스 라인 네트워크는 상기 버스 라인을 따라 이격된 리피터 스위치 유닛 세트를 추가로 포함함으로써, 상기 익스프레스 버스 라인을 서로 그리고 관련된 로컬 버스 라인에 선택적으로 접속시킬 수 있으며, 상기 리피터 스위치 유닛에 접속된 익스프레스 버스 라인은 논리 셀로 구성된 하나 이상의 블록에 접속될 수 있는 것을 특징으로 하는 논리 집적회로.
  8. 제7항에 있어서, 상기 리피터 스위치 유닛은 상기 블록 사이의 경계를 따라 로우 및 컬럼으로 정렬됨으로써, 상기 리피터 스위치 유닛의 로우 및 컬럼이 교차하는 지점인 블록의 코너에 공간이 생기게 되며, 상기 전용 기능 소자가 상기 리피터 스위치 유닛의 로우 및 컬럼의 교차점에서의 공간에 위치하는 것을 특징으로 하는 논리 집적회로.
  9. 제1항에 있어서, 상기 전용 기능 소자는 메모리 구조체를 구비하는 것을 특징으로 하는 논리 집적회로.
  10. 제9항에 있어서, 상기 메모리 구조체는 랜덤 엑세스 메모리(RAM)로 구성된 것을 특징으로 하는 논리 집적회로.
  11. 제9항에 있어서, 상기 메모리 구조체는 비휘발성 메모리로 구성된 것을 특징으로 하는 논리 집적회로.
  12. 제9항에 있어서, 상기 메모리 구조체는 판독 및 기록 동작을 위한 분리된 어드레스 입력과, 상기 판독 및 기록 동작을 위한 분리된 데이터 버스를 갖는 이중-부분 메모리로 구성된 것을 특징으로 하는 논리 집적회로.
  13. 제1항에 있어서, 상기 전용 기능 소자는 특수 논리 구조체를 구비하는 것을 특징으로 하는 논리 집적회로.
  14. 제13항에 있어서, 상기 특수 논리 구조체는 승산기를 구비하는 것을 특징으로 하는 논리 집적회로.
  15. 입력 및 출력 단자 세트와;
    상기 단자에 적어도 몇몇이 결합되며, 로컬 버스 라인 세트, 익스프레스 버스 라인 세트 및 상기 로컬 버스 라인을 익스프레스 버스 라인에 접속시키는 리피터 스위치 라인 세트를 포함하는 버스 라인 세트와;
    상기 로컬 버스 라인 세트에 각각이 접속되는 복수의 프로그램가능 논리 셀을 포함하는데,
    상기 각각의 익스프레스 버스 라인은 비연속적인 리피터 스위치 유닛에 접속되는 것을 특징으로 하는 필드 프로그램가능 게이트 어레이(FPGA).
  16. 제15항에 있어서, 상기 논리 셀은 로우 및 컬럼의 매트릭스 형태로 정렬되며, N×N 블록으로 조직화되고, 상기 리피터 스위치 유닛은 N 개의 논리 셀 마다 규칙적으로 이격된 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  17. 제16항에 있어서, 상기 N 은 4 개인 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  18. 제15항에 있어서, 복수쌍의 익스프레스 버스 라인은 엇갈리는 형태로 상기 리피터 스위치 유닛에 접속됨으로써, 연속적인 리피터 스위치 유닛은 상기 쌍의 다른 익스프레스 버스 라인에 교대로 접속되는 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  19. 프로그램가능한 복수의 논리 셀 각각이, 서로 그리고 집적회로의 입력 및 출력 단자에 상호접속가능하며, 이 논리 셀의 동일한 로우 또는 컬럼에 있는 직교 방향으로 가장 인접한 최대 4 개의 논리 셀과 상기 논리 셀을 포함하는 논리 셀의 2개의 대각선 방향중 어느 하나를 따라 위치한 가장 인접한 최대 4 개의 논리 셀을 구비하는데,
    직교 방향으로 가장 인접한 논리 셀중 적어도 하나에 대한 직접 셀대 셀 입력 접속과 대각선 방향으로 가장 인접한 논리 셀중 적어도 하나에 대한 직접 셀대 셀 입력 접속과, 직접 셀대 셀 입력 접속으로서 동일 세트의 가장 인접한 논리 셀에 대한 직접 셀대 셀 출력 접속과, 상기 직교 방향의 직접 셀대 셀 입력 접속중 하나를 선택하는 제1 수단과 상기 대각선 방향의 직접 셀대 셀 입력 접속중 하나를 선택하는 제2 수단을 구비하며, 상기 프로그램가능한 복수의 논리 셀의 로우 및 컬럼으로 구성된 매트릭스를 포함하는 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  20. 제19항에 있어서, 상기 모든 셀은 가장 인접한 논리 셀 모두에 대한 직접 셀대 셀 입력 접속과 직접 셀대 셀 출력 접속을 갖는 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  21. 프로그램가능한 복수의 논리 셀 각각이, 자신의 논리 셀을 포함하는 논리 셀의 2개의 대각선 방향중 어느 하나를 따라 위치한 가장 인접한 최대 4 개의 논리 셀을 가지며, 대각선 방향으로 가장 인접한 논리 셀중 적어도 하나에 대한 직접 셀대 셀 입력 접속과 대각선 방향으로 가장 인접한 논리 셀의 각각에 대한 직접 셀대 셀 출력 접속을 가지고, 상기 대각선 방향의 직접 셀대 셀 접속중 하나를 선택하는 수단을 구비하며, 이 프로그램가능한 복수의 논리 셀의 로우 및 컬럼으로 구성된 매트릭스와;
    적어도 하나의 수평 버스 라인과 적어도 하나의 수직 버스 라인에 대한 선택적인 버스 접속을 각각 갖는 복수의 셀의 로우 및 컬럼을 따라 분배된 수평 및 수직 버스 라인을 포함하는 버스 네트워크를 구비하는 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  22. 제21항에 있어서, 상기 매트릭스내의 각각의 논리 셀은 자신의 논리 셀로서 동일한 로우 및 컬럼내에 위치한 직교 방향으로 가장 인접한 최대 4개의 논리 셀을 가지며, 직교 방향으로 가장 인접한 논리 셀 각각에 대한 직접 셀대 셀 접속 및 직접 셀대 셀 출력 접속을 추가로 포함하는 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  23. 서로 그리고 집적회로의 입력 및 출력 단자에 상호접속가능한 복수의 프로그램가능 논리 게이트를 구비하는데,
    상기 각각의 논리 셀은 공통의 셀 입력 세트로부터 신호를 수신하는 어드레스 입력 세트와 제1 및 제2 셀 출력 각각에 선택적으로 접속되는 출력을 갖는 제1 및 제2 룩업 테이블과, 2개의 셀 입력에 선택적으로 접속된 한쌍의 게이트 입력과 상기 제1 및 제2 룩업 테이블의 하나의 어드레스 입력에 접속된 게이트 출력과, 논리 셀내에 제공된 AND 논리 게이트와, 상기 각각의 논리 셀은 제3 셀 출력에 선택적으로 접속된 출력 멀티플렉서와, 제1 및 제2 룩업 테이블 각각에 접속된 제1 및 제2 멀티플렉서와, 부가적인 셀 입력에 선택적으로 접속된 제어 입력을 구비하는 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  24. 제23항에 있어서, 상기 셀 입력 및 셀 출력은 대각선 방향으로 인접한 논리 셀 사이의 직접 셀대 셀 접속을 포함하며, 상기 AND 게이트의 게이트 입력에 접속된 상기 2개의 셀 입력중 하나는 직접 셀대 셀 접속중 하나인 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  25. 서로 그리고 직접회로의 입력 및 출력 단자에 접속가능하며,
    (a) 복수의 동일한 셀 입력으로부터 신호를 수신하는 1 보다 큰 정수인 N 개의 어드레스 입력과 하나의 출력을 각각 갖는 한쌍의 룩업 테이블과;
    (b) 상기 한쌍의 룩업 테이블로부터 조합된 (N+1) 개의 입력 룩업 테이블을 효율적으로 형성하기 위해, 상기 한쌍의 룩업 테이블중 하나의 출력을 부가적인 셀 입력에 응답하여 동적으로 선택하는 수단과;
    (c) 상기 룩업 테이블의 적어도 한 출력을 등록하는 수단과;
    (d) (ⅰ)N개의 입력 룩업 테이블의 출력과,
    (ⅱ)조합된 (N+1)개의 입력 룩업 테이블의 동적으로 선택된 출력과,
    (ⅲ)상기 룩업 테이블중 하나의 등록된 출력으로부터 데이터 신호를 수신하며, 이 수신된 데이터 신호중 선택된 하나를 셀 출력에 제공하는 한쌍의 출력 선택 수단을 구비하는 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  26. 제25항에 있어서, 조합된 (N+1) 개의 입력 룩업 테이블의 동적으로 선택된 출력을 버스 네트워크에 접속된 다른 셀 출력에 제공하는 제3 출력 수단을 추가로 구비하는 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  27. 클록 신호에 반응하는 적어도 하나의 동기 소자를 내부에 포함하며, 서로 그리고 집적회로의 입력 및 출력 단자에 상호접속가능한 프로그램가능 논리 셀의 로우 및 컬럼으로 구성된 매트릭스와;
    상이한 클록 신호를 수신하는 복수의 메인 클록 라인과, 논리 셀의 특정 컬럼에 관련되어 선택적으로 접속가능하고 선택된 클록 신호를 수신하기 위해 상기 메인 클록 라인의 어느 것에 선택적으로 접속가능한 복수의 컬럼 클록 라인을 포함하는 클록 라인 세트를 구비하며,
    상기 각각의 컬럼 클록 라인은 자신의 컬럼 클록 라인에 접속가능하며 논리 셀의 관련 컬럼에서 논리 셀의 서브세트에 각각 접속된 복수의 섹터 클록 라인에 의해 논리 셀의 특정 관련 컬럼에 선택적으로 접속가능한 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  28. 클록 신호에 반응하는 적어도 하나의 동기 소자를 내부에 포함하며, 서로 그리고 집적회로의 입력 및 출력 단자에 상호접속가능한 프로그램가능 논리 셀의 로우 및 컬럼으로 구성된 매트릭스와;
    클록 신호를 수신하는 적어도 하나의 메인 클록 라인과, 논리 셀의 특정 컬럼에 관련되어 상기 적어도 하나의 메인 클록 라인에 접속가능한 복수의 컬럼 클록 라인을 구비하며,
    상기 각각의 컬럼 클록 라인은 자신의 컬럼 클록 라인에 접속가능하며 논리 셀의 관련 컬럼에서 논리 셀의 서브세트에 각각 접속된 복수의 섹터 클록 라인에 의해 논리 셀의 특정 관련 컬럼에 선택적으로 접속가능한 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  29. 제28항에 있어서, 상기 각각의 섹터 클록 라인을 따라 위치하여 상기 클록 신호를 선택적으로 반전시키는 수단을 추가로 구비하는 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  30. 서로 그리고 직접회로의 입력 및 출력 단자에 접속가능하며, 세트/리셋 제어 신호에 응답하는 세트/리셋 능력을 갖는 적어도 하나의 레지스터 소자를 내부에 포함하는 프로그램가능 논리 셀의 로우 및 컬럼으로 구성된 매트릭스와;
    상기 세트/리셋 제어 신호를 수신하는 하나의 글로벌 세트/리셋 라인과, 논리 셀의 특정 컬럼에 관련되어 상기 글로벌 세트/리셋 라인에 접속되고, 자신의 세트/리셋 라인에 접속가능하고 논리 셀의 관련 컬럼에서 논리 셀의 서브세트에 상기 세트/리셋 제어 신호를 제공하는 각각의 섹터 세트/리셋 라인이 접속된 복수의 컬럼 세트/리셋 라인을 구비하는 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  31. 제30항에 있어서, 상기 각각의 섹터 세트/리셋 라인을 따라 위치하여 상기 세트/리셋 제어 신호를 선택적으로 반전시키는 수단을 추가로 구비하는 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  32. 제30항에 있어서, 상기 각각의 논리 셀은 상기 세트/리셋 제어 신호를 세트 신호 또는 리셋 신호중 하나로서 선택적으로 나타내는 수단을 구비하는 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  33. 복수의 입력/출력 단자와;
    서로 그리고 상기 입력/출력 단자에 상호접속가능한 복수의 프로그램가능 논리 셀과;
    상기 복수의 입력/출력 단자 각각을 직접 접속으로 하나 이상의 논리 셀에 접속시키는 수단과;
    상기 복수의 논리 셀 각각을 직접 접속으로 하나 이상의 입력/출력 단자에 접속시키는 수단을 구비하는 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  34. 제33항에 있어서, 상기 입력/출력 단자 각각은 셀을 통하지 않고 버스 네트워크에 접속가능한 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  35. 상호접속가능한 프로그램가능 논리 셀의 로우 및 컬럼으로 구성된 매트릭스와;
    상기 매트릭스의 최외측 논리 셀에 접속가능하며, 직접 인접한 논리 셀과 2개의 대각선 방향으로 인접한 논리 셀의 셀 입력에 직접적으로 각각 접속가능한 입력/출력 단자 세트를 구비하는데, 상기 매트릭스의 최외측 논리 셀의 적어도 몇몇은 직접 인접한 단자와 대각선 방향으로 인접한 단자를 포함하는 하나 이상의 입력/출력 단자에 접속가능한 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
  36. 제35항에 있어서, 상기 논리 셀은 논리 셀의 로우 및 컬럼 사이에 분배된 버스 네트워크에 의해 접속가능하며, 상기 입력/출력 단자의 적어도 몇몇은 상기 버스 네트워크에 접속가능한 것을 특징으로 하는 필드 프로그램가능 게이트 어레이.
KR10-1998-0700335A 1996-05-20 1997-05-09 분산형램을가지며셀이용율을높인필드프로그램가능게이트어레이 KR100429063B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8/650,477 1996-05-20
US08/650,477 1996-05-20
US08/650,477 US5894565A (en) 1996-05-20 1996-05-20 Field programmable gate array with distributed RAM and increased cell utilization

Publications (2)

Publication Number Publication Date
KR19990029032A true KR19990029032A (ko) 1999-04-15
KR100429063B1 KR100429063B1 (ko) 2004-08-04

Family

ID=24609080

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0700335A KR100429063B1 (ko) 1996-05-20 1997-05-09 분산형램을가지며셀이용율을높인필드프로그램가능게이트어레이

Country Status (8)

Country Link
US (5) US5894565A (ko)
EP (5) EP1150431B1 (ko)
JP (1) JPH11510038A (ko)
KR (1) KR100429063B1 (ko)
CN (1) CN1105970C (ko)
DE (5) DE69721342T2 (ko)
HK (1) HK1011227A1 (ko)
WO (1) WO1997044730A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745608B2 (en) 2009-02-03 2014-06-03 Samsung Electronics Co., Ltd. Scheduler of reconfigurable array, method of scheduling commands, and computing apparatus
KR20150003171A (ko) * 2012-03-30 2015-01-08 인텔 코오퍼레이션 프로그램가능 장치 어레이들을 위한 스핀 전달 토크 기반 메모리 요소들

Families Citing this family (202)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5943242A (en) 1995-11-17 1999-08-24 Pact Gmbh Dynamically reconfigurable data processing system
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US5933023A (en) * 1996-09-03 1999-08-03 Xilinx, Inc. FPGA architecture having RAM blocks with programmable word length and width and dedicated address and data lines
US6034547A (en) * 1996-09-04 2000-03-07 Advantage Logic, Inc. Method and apparatus for universal program controlled bus
US6624658B2 (en) * 1999-02-04 2003-09-23 Advantage Logic, Inc. Method and apparatus for universal program controlled bus architecture
CA2239186A1 (en) * 1996-10-10 1998-04-16 Semiconductores Investigacion Y Diseno, S.A. - (Sidsa) Process for the prototyping of mixed signal applications and field programmable system on a chip for applying said process
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654595A1 (de) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
US6338106B1 (en) 1996-12-20 2002-01-08 Pact Gmbh I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures
EP1329816B1 (de) 1996-12-27 2011-06-22 Richter, Thomas Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
DE19654846A1 (de) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
DE19704728A1 (de) * 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
DE19704742A1 (de) * 1997-02-11 1998-09-24 Pact Inf Tech Gmbh Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
US6160419A (en) * 1997-11-03 2000-12-12 Altera Corporation Programmable logic architecture incorporating a content addressable embedded array block
US6262595B1 (en) 1997-06-10 2001-07-17 Altera Corporation High-speed programmable interconnect
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US9092595B2 (en) 1997-10-08 2015-07-28 Pact Xpp Technologies Ag Multiprocessor having associated RAM units
US6185724B1 (en) * 1997-12-02 2001-02-06 Xilinx, Inc. Template-based simulated annealing move-set that improves FPGA architectural feature utilization
US6069490A (en) * 1997-12-02 2000-05-30 Xilinx, Inc. Routing architecture using a direct connect routing mesh
US6202194B1 (en) * 1997-12-11 2001-03-13 Intrinsity, Inc. Method and apparatus for routing 1 of N signals
DE19861088A1 (de) * 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6034545A (en) * 1998-01-30 2000-03-07 Arm Limited Macrocell for data processing circuit
US6198304B1 (en) * 1998-02-23 2001-03-06 Xilinx, Inc. Programmable logic device
DE19807872A1 (de) 1998-02-25 1999-08-26 Pact Inf Tech Gmbh Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
US6020756A (en) * 1998-03-03 2000-02-01 Xilinx, Inc. Multiplexer enhanced configurable logic block
DE19810294A1 (de) * 1998-03-10 1999-09-16 Bayerische Motoren Werke Ag Datenbus für mehrere Teilnehmer
US7146441B1 (en) * 1998-03-16 2006-12-05 Actel Corporation SRAM bus architecture and interconnect to an FPGA
US7389487B1 (en) * 1998-04-28 2008-06-17 Actel Corporation Dedicated interface architecture for a hybrid integrated circuit
US6242814B1 (en) * 1998-07-31 2001-06-05 Lsi Logic Corporation Universal I/O pad structure for in-line or staggered wire bonding or arrayed flip-chip assembly
US6204686B1 (en) * 1998-12-16 2001-03-20 Vantis Corporation Methods for configuring FPGA's having variable grain blocks and shared logic for providing symmetric routing of result output to differently-directed and tristateable interconnect resources
JP3616518B2 (ja) 1999-02-10 2005-02-02 日本電気株式会社 プログラマブルデバイス
JP4206203B2 (ja) * 1999-03-04 2009-01-07 アルテラ コーポレイション プログラマブルロジック集積回路デバイスの相互接続ならびに入力/出力リソース
US6407576B1 (en) * 1999-03-04 2002-06-18 Altera Corporation Interconnection and input/output resources for programmable logic integrated circuit devices
EP1208422A4 (en) * 1999-05-07 2007-11-14 Infineon Technologies Ag PROCESS AND DEVICE FOR PROGRAMMABLE DATA PATH ARITHMETIC ARRAYS
US6150841A (en) * 1999-06-06 2000-11-21 Lattice Semiconductor Corporation Enhanced macrocell module for high density CPLD architectures
CN1378665A (zh) 1999-06-10 2002-11-06 Pact信息技术有限公司 编程概念
US6360348B1 (en) * 1999-08-27 2002-03-19 Motorola, Inc. Method and apparatus for coding and decoding data
US6215327B1 (en) * 1999-09-01 2001-04-10 The United States Of America As Represented By The Secretary Of The Air Force Molecular field programmable gate array
US6438737B1 (en) * 2000-02-15 2002-08-20 Intel Corporation Reconfigurable logic for a computer
US6256253B1 (en) * 2000-02-18 2001-07-03 Infineon Technologies North America Corp. Memory device with support for unaligned access
US6694491B1 (en) 2000-02-25 2004-02-17 Lightspeed Semiconductor Corporation Programmable logic array embedded in mask-programmed ASIC
US6769109B2 (en) * 2000-02-25 2004-07-27 Lightspeed Semiconductor Corporation Programmable logic array embedded in mask-programmed ASIC
US20010025363A1 (en) * 2000-03-24 2001-09-27 Cary Ussery Designer configurable multi-processor system
US6661812B1 (en) * 2000-04-05 2003-12-09 Triscend Corporation Bidirectional bus for use as an interconnect routing resource
WO2001093426A1 (en) * 2000-05-30 2001-12-06 Koninklijke Philips Electronics N.V. Integrated circuit with a matrix of programmable logic cells
EP1342158B1 (de) 2000-06-13 2010-08-04 Richter, Thomas Pipeline ct-protokolle und -kommunikation
US6294927B1 (en) * 2000-06-16 2001-09-25 Chip Express (Israel) Ltd Configurable cell for customizable logic array device
US6476636B1 (en) * 2000-09-02 2002-11-05 Actel Corporation Tileable field-programmable gate array architecture
US7055125B2 (en) * 2000-09-08 2006-05-30 Lightspeed Semiconductor Corp. Depopulated programmable logic array
EP1417590A2 (en) * 2000-10-02 2004-05-12 Altera Corporation (a Delaware Corporation) Programmable logic integrated circuit devices including dedicated processor components
US20040015899A1 (en) * 2000-10-06 2004-01-22 Frank May Method for processing data
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US6981090B1 (en) * 2000-10-26 2005-12-27 Cypress Semiconductor Corporation Multiple use of microcontroller pad
US6892310B1 (en) * 2000-10-26 2005-05-10 Cypress Semiconductor Corporation Method for efficient supply of power to a microcontroller
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US7765095B1 (en) 2000-10-26 2010-07-27 Cypress Semiconductor Corporation Conditional branching in an in-circuit emulation system
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US6990555B2 (en) * 2001-01-09 2006-01-24 Pact Xpp Technologies Ag Method of hierarchical caching of configuration data having dataflow processors and modules having two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.)
US9141390B2 (en) 2001-03-05 2015-09-22 Pact Xpp Technologies Ag Method of processing data with an array of data processors according to application ID
US20090210653A1 (en) * 2001-03-05 2009-08-20 Pact Xpp Technologies Ag Method and device for treating and processing data
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US9250908B2 (en) 2001-03-05 2016-02-02 Pact Xpp Technologies Ag Multi-processor bus and cache interconnection system
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US9037807B2 (en) * 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US20090300262A1 (en) * 2001-03-05 2009-12-03 Martin Vorbach Methods and devices for treating and/or processing data
US9436631B2 (en) 2001-03-05 2016-09-06 Pact Xpp Technologies Ag Chip including memory element storing higher level memory data on a page by page basis
US9552047B2 (en) 2001-03-05 2017-01-24 Pact Xpp Technologies Ag Multiprocessor having runtime adjustable clock and clock dependent power supply
SE0102199D0 (sv) * 2001-06-20 2001-06-20 Ericsson Telefon Ab L M Upgrading field programmable gate arrays over datacommunication networks
US10031733B2 (en) 2001-06-20 2018-07-24 Scientia Sol Mentis Ag Method for processing data
WO2002103532A2 (de) * 2001-06-20 2002-12-27 Pact Xpp Technologies Ag Verfahren zur bearbeitung von daten
DE10139610A1 (de) 2001-08-11 2003-03-06 Daimler Chrysler Ag Universelle Rechnerarchitektur
US7996827B2 (en) * 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7139292B1 (en) * 2001-08-31 2006-11-21 Cypress Semiconductor Corp. Configurable matrix architecture
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) * 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
EP1296254A3 (en) * 2001-09-24 2009-10-21 Broadcom Corporation Method and apparatus for facilitating circuit design
US7406674B1 (en) 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US7844437B1 (en) 2001-11-19 2010-11-30 Cypress Semiconductor Corporation System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit
US7770113B1 (en) 2001-11-19 2010-08-03 Cypress Semiconductor Corporation System and method for dynamically generating a configuration datasheet
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
US7774190B1 (en) 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
DE10159480B4 (de) * 2001-12-04 2006-05-24 Daimlerchrysler Ag Steuervorrichtung
US7577822B2 (en) * 2001-12-14 2009-08-18 Pact Xpp Technologies Ag Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization
EP1470478A2 (en) * 2002-01-18 2004-10-27 PACT XPP Technologies AG Method and device for partitioning large computer programs
DE10392560D2 (de) 2002-01-19 2005-05-12 Pact Xpp Technologies Ag Reconfigurierbarer Prozessor
WO2003071432A2 (de) * 2002-02-18 2003-08-28 Pact Xpp Technologies Ag Bussysteme und rekonfigurationsverfahren
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
WO2003081454A2 (de) * 2002-03-21 2003-10-02 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US9170812B2 (en) 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
US7308608B1 (en) 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
US6970967B2 (en) * 2002-06-18 2005-11-29 Texas Instruments Incorporated Crossbar circuit having a plurality of repeaters forming different repeater arrangements
WO2004010581A1 (en) * 2002-07-23 2004-01-29 Gatechange Technologies, Inc. Interconnect structure for electrical devices
US20110238948A1 (en) * 2002-08-07 2011-09-29 Martin Vorbach Method and device for coupling a data processing unit and a data processing array
AU2003286131A1 (en) 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
US7657861B2 (en) * 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US7782398B2 (en) * 2002-09-04 2010-08-24 Chan Thomas M Display processor integrated circuit with on-chip programmable logic for implementing custom enhancement functions
US7480010B2 (en) * 2002-09-04 2009-01-20 Denace Enterprise Co., L.L.C. Customizable ASIC with substantially non-customizable portion that supplies pixel data to a mask-programmable portion in multiple color space formats
US7136108B2 (en) * 2002-09-04 2006-11-14 Darien K. Wallace Segment buffer loading in a deinterlacer
US7202908B2 (en) * 2002-09-04 2007-04-10 Darien K. Wallace Deinterlacer using both low angle and high angle spatial interpolation
EP1537486A1 (de) * 2002-09-06 2005-06-08 PACT XPP Technologies AG Rekonfigurierbare sequenzerstruktur
US7761845B1 (en) 2002-09-09 2010-07-20 Cypress Semiconductor Corporation Method for parameterizing a user module
US6774670B1 (en) * 2002-12-30 2004-08-10 Actel Corporation Intra-tile buffer system for a field programmable gate array
JP2006524850A (ja) * 2003-04-04 2006-11-02 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理方法およびデータ処理装置
US6996785B1 (en) 2003-04-25 2006-02-07 Universal Network Machines, Inc . On-chip packet-based interconnections using repeaters/routers
US6882555B2 (en) * 2003-06-18 2005-04-19 Lattice Semiconductor Corporation Bi-directional buffering for memory data lines
JP4334541B2 (ja) * 2003-07-16 2009-09-30 イノテック株式会社 半導体集積回路
WO2006082091A2 (en) * 2005-02-07 2006-08-10 Pact Xpp Technologies Ag Low latency massive parallel data processing device
JP4700611B2 (ja) 2003-08-28 2011-06-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理装置およびデータ処理方法
US7306977B1 (en) 2003-08-29 2007-12-11 Xilinx, Inc. Method and apparatus for facilitating signal routing within a programmable logic device
DE102004056322B4 (de) * 2003-11-21 2012-07-19 Infineon Technologies Ag Logik-Grundzelle und Logik-Grundzellen-Anordnung
US7167022B1 (en) 2004-03-25 2007-01-23 Altera Corporation Omnibus logic element including look up table based logic elements
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
WO2011061099A1 (en) * 2004-04-02 2011-05-26 Panasonic Corporation Reset/load and signal distribution network
DE102004021047B3 (de) * 2004-04-29 2005-10-06 Koenig & Bauer Ag Verfahren zum Vergleich eines Bildes mit mindestens einem Referenzbild
US7243329B2 (en) * 2004-07-02 2007-07-10 Altera Corporation Application-specific integrated circuit equivalents of programmable logic and associated methods
JP2006053687A (ja) * 2004-08-10 2006-02-23 Sony Corp 演算装置
US8286125B2 (en) 2004-08-13 2012-10-09 Cypress Semiconductor Corporation Model for a hardware device-independent method of defining embedded firmware for programmable systems
US8069436B2 (en) 2004-08-13 2011-11-29 Cypress Semiconductor Corporation Providing hardware independence to automate code generation of processing device firmware
KR100718216B1 (ko) * 2004-12-13 2007-05-15 가부시끼가이샤 도시바 반도체 장치, 패턴 레이아웃 작성 방법, 노광 마스크
US7332976B1 (en) 2005-02-04 2008-02-19 Cypress Semiconductor Corporation Poly-phase frequency synthesis oscillator
JP2006285572A (ja) * 2005-03-31 2006-10-19 Toshiba Corp 半導体集積回路のレイアウト方法
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
US8089461B2 (en) 2005-06-23 2012-01-03 Cypress Semiconductor Corporation Touch wake for electronic devices
US7571395B1 (en) * 2005-08-03 2009-08-04 Xilinx, Inc. Generation of a circuit design from a command language specification of blocks in matrix form
US7571406B2 (en) * 2005-08-04 2009-08-04 Freescale Semiconductor, Inc. Clock tree adjustable buffer
CN100495696C (zh) * 2005-11-17 2009-06-03 中国科学院电子学研究所 可编程逻辑器件的对称型连线通道
US7281942B2 (en) * 2005-11-18 2007-10-16 Ideal Industries, Inc. Releasable wire connector
US20090290444A1 (en) * 2005-11-28 2009-11-26 Masayuki Satoh Semiconductor device
US8085067B1 (en) 2005-12-21 2011-12-27 Cypress Semiconductor Corporation Differential-to-single ended signal converter circuit and method
US7352602B2 (en) 2005-12-30 2008-04-01 Micron Technology, Inc. Configurable inputs and outputs for memory stacking system and method
JP2009524134A (ja) * 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト ハードウェア定義方法
WO2007096376A1 (en) * 2006-02-21 2007-08-30 Mentor Graphics Corporation Communication scheme between programmable sub-cores in an emulation environment
US8067948B2 (en) 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
US7702616B1 (en) 2006-06-21 2010-04-20 Actuate Corporation Methods and apparatus for processing a query joining tables stored at different data sources
US7720838B1 (en) * 2006-06-21 2010-05-18 Actuate Corporation Methods and apparatus for joining tables from different data sources
JP4971998B2 (ja) * 2006-07-27 2012-07-11 パナソニック株式会社 半導体集積回路、プログラム変換装置及びマッピング装置
US8018248B2 (en) * 2006-09-21 2011-09-13 Quicklogic Corporation Adjustable interface buffer circuit between a programmable logic device and a dedicated device
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US7737724B2 (en) 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8040266B2 (en) 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US8092083B2 (en) 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
US7557607B1 (en) * 2007-05-14 2009-07-07 Xilinx, Inc. Interface device reset
US7702840B1 (en) 2007-05-14 2010-04-20 Xilinx, Inc. Interface device lane configuration
US7626418B1 (en) 2007-05-14 2009-12-01 Xilinx, Inc. Configurable interface
US7535254B1 (en) 2007-05-14 2009-05-19 Xilinx, Inc. Reconfiguration of a hard macro via configuration registers
US7573295B1 (en) 2007-05-14 2009-08-11 Xilinx, Inc. Hard macro-to-user logic interface
US7979228B2 (en) 2007-07-20 2011-07-12 The Regents Of The University Of Michigan High resolution time measurement in a FPGA
US7941777B1 (en) * 2007-08-08 2011-05-10 Xilinx, Inc. Generating a module interface for partial reconfiguration design flows
US8049569B1 (en) 2007-09-05 2011-11-01 Cypress Semiconductor Corporation Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes
US7970979B1 (en) * 2007-09-19 2011-06-28 Agate Logic, Inc. System and method of configurable bus-based dedicated connection circuits
US8131909B1 (en) * 2007-09-19 2012-03-06 Agate Logic, Inc. System and method of signal processing engines with programmable logic fabric
US7759972B1 (en) * 2007-10-31 2010-07-20 Altera Corporation Integrated circuit architectures with heterogeneous high-speed serial interface circuitry
CN101903798B (zh) * 2007-11-02 2012-12-12 华盛顿大学 用于正电子发射断层摄影术的数据采集
GB0802245D0 (en) * 2008-02-07 2008-03-12 Univ Durham Self-repairing electronic data systems
JP5260077B2 (ja) * 2008-02-15 2013-08-14 太陽誘電株式会社 プログラマブル論理デバイスおよびその構築方法およびその使用方法
US8217700B1 (en) * 2008-07-01 2012-07-10 Cypress Semiconductor Corporation Multifunction input/output circuit
US8441298B1 (en) * 2008-07-01 2013-05-14 Cypress Semiconductor Corporation Analog bus sharing using transmission gates
FR2933826B1 (fr) * 2008-07-09 2011-11-18 Univ Paris Curie Reseau logique programmable, commutateur d'interconnexion et unite logique pour un tel reseau
US20100057685A1 (en) * 2008-09-02 2010-03-04 Qimonda Ag Information storage and retrieval system
US9448964B2 (en) 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
US8487655B1 (en) 2009-05-05 2013-07-16 Cypress Semiconductor Corporation Combined analog architecture and functionality in a mixed-signal array
US8179161B1 (en) 2009-05-05 2012-05-15 Cypress Semiconductor Corporation Programmable input/output circuit
US9612987B2 (en) * 2009-05-09 2017-04-04 Cypress Semiconductor Corporation Dynamically reconfigurable analog routing circuits and methods for system on a chip
US8085603B2 (en) * 2009-09-04 2011-12-27 Integrated Device Technology, Inc. Method and apparatus for compression of configuration bitstream of field programmable logic
FR2954023B1 (fr) * 2009-12-14 2012-02-10 Lyon Ecole Centrale Matrice interconnectee de cellules logiques reconfigurables avec une topologie d'interconnexion croisee
US8120382B2 (en) * 2010-03-05 2012-02-21 Xilinx, Inc. Programmable integrated circuit with mirrored interconnect structure
US8380911B2 (en) 2010-09-13 2013-02-19 Lsi Corporation Peripheral device, program and methods for responding to a warm reboot condition
US8913601B1 (en) * 2010-10-01 2014-12-16 Xilinx, Inc. Programmable integrated circuit and method of asynchronously routing data in a circuit block of an integrated circuit
KR20130006942A (ko) * 2011-06-27 2013-01-18 삼성전자주식회사 재구성 가능한 논리 장치
US8930872B2 (en) * 2012-02-17 2015-01-06 Netronome Systems, Incorporated Staggered island structure in an island-based network flow processor
CN103259528A (zh) * 2012-02-17 2013-08-21 京微雅格(北京)科技有限公司 一种异构可编程逻辑结构的集成电路
US8608490B2 (en) * 2012-03-21 2013-12-17 Ideal Industries, Inc. Modular wiring system
US8902902B2 (en) 2012-07-18 2014-12-02 Netronome Systems, Incorporated Recursive lookup with a hardware trie structure that has no sequential logic elements
CN103777136B (zh) * 2012-10-24 2016-06-08 中国科学院微电子研究所 一种现场可编程门阵列的配置方法
US8645892B1 (en) * 2013-01-07 2014-02-04 Freescale Semiconductor, Inc. Configurable circuit and mesh structure for integrated circuit
CN105340181A (zh) * 2013-02-08 2016-02-17 普林斯顿大学受托公司 细粒度动态可重构fpga架构
FR3003969B1 (fr) * 2013-03-28 2015-04-17 Nanoxplore Dispositif d'interconnexion programmable
CN105191139B (zh) * 2013-04-02 2018-12-07 太阳诱电株式会社 可重构逻辑器件
CN104678815B (zh) * 2013-11-27 2017-08-04 京微雅格(北京)科技有限公司 Fpga芯片的接口结构及配置方法
US20170031621A1 (en) * 2013-12-23 2017-02-02 Aaron Brady Grid Processing Electronic Memory
US9378326B2 (en) * 2014-09-09 2016-06-28 International Business Machines Corporation Critical region identification
US20160358653A1 (en) * 2015-06-08 2016-12-08 Altera Corporation Hardware programmable device with integrated search engine
US10454480B2 (en) 2016-08-03 2019-10-22 Silicon Mobility Embedded FPGA with multiple configurable flexible logic blocks instantiated and interconnected by abutment
US10116311B2 (en) 2016-08-03 2018-10-30 Silicon Mobility Embedded FPGA with multiple configurable flexible logic blocks instantiated and interconnected by abutment
US10797706B2 (en) * 2016-12-27 2020-10-06 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
JP2018120992A (ja) * 2017-01-26 2018-08-02 株式会社東芝 集積回路および電子機器
US11043823B2 (en) * 2017-04-06 2021-06-22 Tesla, Inc. System and method for facilitating conditioning and testing of rechargeable battery cells
CN108427829B (zh) * 2018-02-09 2022-11-08 京微齐力(北京)科技有限公司 一种具有公共线结构的fpga

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US34363A (en) * 1862-02-11 Improvement in machinery for cleaning cotton
USRE34363E (en) * 1984-03-12 1993-08-31 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US4706216A (en) * 1985-02-27 1987-11-10 Xilinx, Inc. Configurable logic element
CA1234224A (en) * 1985-05-28 1988-03-15 Boleslav Sykora Computer memory management system
ES2002307A6 (es) * 1985-09-11 1988-08-01 Pilkington Micro Electronics Un circuito integrado semiconductor configurable
US4700187A (en) * 1985-12-02 1987-10-13 Concurrent Logic, Inc. Programmable, asynchronous logic cell and array
US4758745B1 (en) * 1986-09-19 1994-11-15 Actel Corp User programmable integrated circuit interconnect architecture and test method
US4918440A (en) * 1986-11-07 1990-04-17 Furtek Frederick C Programmable logic cell and array
US5019736A (en) * 1986-11-07 1991-05-28 Concurrent Logic, Inc. Programmable logic cell and array
US5253363A (en) * 1988-03-15 1993-10-12 Edward Hyman Method and apparatus for compiling and implementing state-machine states and outputs for a universal cellular sequential local array
US5377123A (en) * 1992-06-08 1994-12-27 Hyman; Edward Programmable logic device
US5343406A (en) * 1989-07-28 1994-08-30 Xilinx, Inc. Distributed memory architecture for a configurable logic array and method for using distributed memory
US5185706A (en) * 1989-08-15 1993-02-09 Advanced Micro Devices, Inc. Programmable gate array with logic cells having configurable output enable
US5212652A (en) * 1989-08-15 1993-05-18 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure
US5231588A (en) * 1989-08-15 1993-07-27 Advanced Micro Devices, Inc. Programmable gate array with logic cells having symmetrical input/output structures
US5260881A (en) * 1989-10-30 1993-11-09 Advanced Micro Devices, Inc. Programmable gate array with improved configurable logic block
US5457409A (en) * 1992-08-03 1995-10-10 Advanced Micro Devices, Inc. Architecture of a multiple array high density programmable logic device with a plurality of programmable switch matrices
US5255203A (en) * 1989-08-15 1993-10-19 Advanced Micro Devices, Inc. Interconnect structure for programmable logic device
US5295090A (en) * 1992-05-10 1994-03-15 Xilinx, Inc. Logic structure and circuit for fast carry
US5144166A (en) * 1990-11-02 1992-09-01 Concurrent Logic, Inc. Programmable logic cell and array
US5245227A (en) * 1990-11-02 1993-09-14 Atmel Corporation Versatile programmable logic cell for use in configurable logic arrays
US5224056A (en) * 1991-10-30 1993-06-29 Xilinx, Inc. Logic placement using positionally asymmetrical partitioning algorithm
US5313119A (en) * 1991-03-18 1994-05-17 Crosspoint Solutions, Inc. Field programmable gate array
US5204556A (en) * 1991-05-06 1993-04-20 Lattice Semiconductor Corporation Programmable interconnect structure for logic blocks
US5338984A (en) * 1991-08-29 1994-08-16 National Semiconductor Corp. Local and express diagonal busses in a configurable logic array
US5260610A (en) * 1991-09-03 1993-11-09 Altera Corporation Programmable logic element interconnections for programmable logic array integrated circuits
US5513124A (en) * 1991-10-30 1996-04-30 Xilinx, Inc. Logic placement using positionally asymmetrical partitioning method
US5296090A (en) * 1991-12-03 1994-03-22 New England Medical Center Hospitals, Inc. High resolution track etch autoradiography
US5367209A (en) * 1992-01-07 1994-11-22 Hauck Scott A Field programmable gate array for synchronous and asynchronous operation
US5208491A (en) * 1992-01-07 1993-05-04 Washington Research Foundation Field programmable gate array
US5258668A (en) * 1992-05-08 1993-11-02 Altera Corporation Programmable logic array integrated circuits with cascade connections between logic modules
US5254886A (en) * 1992-06-19 1993-10-19 Actel Corporation Clock distribution scheme for user-programmable logic array architecture
US5386154A (en) * 1992-07-23 1995-01-31 Xilinx, Inc. Compact logic cell for field programmable gate array chip
US5365125A (en) * 1992-07-23 1994-11-15 Xilinx, Inc. Logic cell for field programmable gate array having optional internal feedback and optional cascade
US5317698A (en) * 1992-08-18 1994-05-31 Actel Corporation FPGA architecture including direct logic function circuit to I/O interconnections
US5425036A (en) * 1992-09-18 1995-06-13 Quickturn Design Systems, Inc. Method and apparatus for debugging reconfigurable emulation systems
US5384497A (en) * 1992-11-04 1995-01-24 At&T Corp. Low-skew signal routing in a programmable array
US5414377A (en) * 1992-12-21 1995-05-09 Xilinx, Inc. Logic block with look-up table for configuration and memory
US5424589A (en) * 1993-02-12 1995-06-13 The Board Of Trustees Of The Leland Stanford Junior University Electrically programmable inter-chip interconnect architecture
GB9303084D0 (en) * 1993-02-16 1993-03-31 Inmos Ltd Programmable logic circuit
US5302865A (en) * 1993-02-16 1994-04-12 Intel Corporation High-speed comparator logic for wide compares in programmable logic devices
US5311080A (en) * 1993-03-26 1994-05-10 At&T Bell Laboratories Field programmable gate array with direct input/output connection
US5352940A (en) * 1993-05-27 1994-10-04 Altera Corporation Ram convertible look-up table based macrocell for PLDs
US5457410A (en) * 1993-08-03 1995-10-10 Btr, Inc. Architecture and interconnect scheme for programmable logic circuits
US5386156A (en) * 1993-08-27 1995-01-31 At&T Corp. Programmable function unit with programmable fast ripple logic
US5349250A (en) * 1993-09-02 1994-09-20 Xilinx, Inc. Logic structure and circuit for fast carry
US5455525A (en) * 1993-12-06 1995-10-03 Intelligent Logic Systems, Inc. Hierarchically-structured programmable logic array and system for interconnecting logic elements in the logic array
US5425039A (en) * 1994-02-24 1995-06-13 Micron Optics, Inc. Single-frequency fiber Fabry-Perot micro lasers
EP0698294A1 (en) * 1994-03-15 1996-02-28 National Semiconductor Corporation Logical three-dimensional interconnections between integrated circuit chips using a two-dimensional multi-chip module package
US5426379A (en) * 1994-07-29 1995-06-20 Xilinx, Inc. Field programmable gate array with built-in bitstream data expansion
US5442306A (en) * 1994-09-09 1995-08-15 At&T Corp. Field programmable gate array using look-up tables, multiplexers and decoders
US5537057A (en) * 1995-02-14 1996-07-16 Altera Corporation Programmable logic array device with grouped logic regions and three types of conductors
US5671432A (en) * 1995-06-02 1997-09-23 International Business Machines Corporation Programmable array I/O-routing resource
US5732246A (en) * 1995-06-07 1998-03-24 International Business Machines Corporation Programmable array interconnect latch
US5692147A (en) * 1995-06-07 1997-11-25 International Business Machines Corporation Memory mapping method and apparatus to fold sparsely populated structures into densely populated memory columns or rows by selectively transposing X and Y address portions, and programmable gate array applications thereof
US5559450A (en) * 1995-07-27 1996-09-24 Lucent Technologies Inc. Field programmable gate array with multi-port RAM
US5712579A (en) * 1995-10-16 1998-01-27 Xilinx, Inc. Deskewed clock distribution network with edge clock
US5841295A (en) * 1996-02-09 1998-11-24 Hewlett-Packard Company Hybrid programmable logic device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745608B2 (en) 2009-02-03 2014-06-03 Samsung Electronics Co., Ltd. Scheduler of reconfigurable array, method of scheduling commands, and computing apparatus
KR20150003171A (ko) * 2012-03-30 2015-01-08 인텔 코오퍼레이션 프로그램가능 장치 어레이들을 위한 스핀 전달 토크 기반 메모리 요소들
US9577641B2 (en) 2012-03-30 2017-02-21 Intel Corporation Spin transfer torque based memory elements for programmable device arrays

Also Published As

Publication number Publication date
DE69730254D1 (de) 2004-09-16
KR100429063B1 (ko) 2004-08-04
EP1150431A1 (en) 2001-10-31
US6292021B1 (en) 2001-09-18
DE69711159D1 (de) 2002-04-25
EP1143336B1 (en) 2003-04-23
EP1158403B1 (en) 2003-04-23
DE69721342T2 (de) 2004-02-05
US5894565A (en) 1999-04-13
DE69721344D1 (de) 2003-05-28
EP1150431B1 (en) 2004-08-11
DE69730254T2 (de) 2005-08-04
CN1105970C (zh) 2003-04-16
DE69721343T2 (de) 2004-02-19
DE69711159T2 (de) 2002-11-07
CN1194702A (zh) 1998-09-30
EP0846289B1 (en) 2002-03-20
WO1997044730A1 (en) 1997-11-27
EP1158402B1 (en) 2003-04-23
US6014509A (en) 2000-01-11
JPH11510038A (ja) 1999-08-31
DE69721342D1 (de) 2003-05-28
DE69721343D1 (de) 2003-05-28
EP1143336A1 (en) 2001-10-10
EP0846289A4 (en) 2000-11-22
DE69721344T2 (de) 2004-02-19
EP1158402A1 (en) 2001-11-28
HK1011227A1 (en) 1999-07-09
EP1158403A1 (en) 2001-11-28
EP0846289A1 (en) 1998-06-10
US6167559A (en) 2000-12-26
US6026227A (en) 2000-02-15

Similar Documents

Publication Publication Date Title
KR100429063B1 (ko) 분산형램을가지며셀이용율을높인필드프로그램가능게이트어레이
US5255203A (en) Interconnect structure for programmable logic device
US5469368A (en) Array of configurable logic blocks each including a first lookup table output coupled to selectively replace an output of second lookup with an alternate function output
US5233539A (en) Programmable gate array with improved interconnect structure, input/output structure and configurable logic block
EP0956645B1 (en) Field programmable processor
US7557611B2 (en) Block level routing architecture in a field programmable gate array
US6075380A (en) Programmable logic device with expandable-width memory regions
US6624657B2 (en) Block connector splitting in logic block of a field programmable gate array
US6320412B1 (en) Architecture and interconnect for programmable logic circuits
US6049224A (en) Programmable logic device with logic cells having a flexible input structure
US6864713B1 (en) Multi-stage interconnect architecture for complex programmable logic devices
GB2300506A (en) Routing in logic array

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080408

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee