KR100267425B1 - 프로그래머블 메모리 어레이와 프로그래머블 어드레스 디코더와 프로그래머블 상호접속회로 - Google Patents

프로그래머블 메모리 어레이와 프로그래머블 어드레스 디코더와 프로그래머블 상호접속회로 Download PDF

Info

Publication number
KR100267425B1
KR100267425B1 KR1019960046031A KR19960046031A KR100267425B1 KR 100267425 B1 KR100267425 B1 KR 100267425B1 KR 1019960046031 A KR1019960046031 A KR 1019960046031A KR 19960046031 A KR19960046031 A KR 19960046031A KR 100267425 B1 KR100267425 B1 KR 100267425B1
Authority
KR
South Korea
Prior art keywords
memory
data
bit line
programmable
read
Prior art date
Application number
KR1019960046031A
Other languages
English (en)
Inventor
킴 피. 엔. 클린톤
스콧 휘트니 골드
조셉 앤드류 이아단자
프랭크 레이 3세 키저
랄프 데이비드 킬모어
마이클 조셉 라라미에
빅터 폴 사이델
테렌스 존 지트리치
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 포만 제프리 엘
Application granted granted Critical
Publication of KR100267425B1 publication Critical patent/KR100267425B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • G06F7/785Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using a RAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1045Read-write mode select circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/12Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • 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/17704Logic 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 the logic functions being realised by the interconnection of rows and columns
    • 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/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Logic Circuits (AREA)
  • Static Random-Access Memory (AREA)
  • Dram (AREA)

Abstract

복수의 서브어레이(a plurality of sub-arrays)를 갖는 필드 프로그래머블 메모리 어레이(field programmable memory array)가 제공된다. 상기 어레이의 다른 구성 장치들 중에서도, 프로그래머블 어드레스 디코더(programmable address decoder), 프로그래머블 계층적 비트 라인 장치(programmable hierarchical bit line arrangements), 프로그래머블 I/O 장치(programmable I/O arrangements)가 제공되어, 어레이부를 선택된 모드로 프로그래밍할 수 있다. 상기 선택 모드에는 특히, 와이드 메모리(wide memory), 디프 메모리(deep memory), FIFO, LIFO 가 포함될 수 있다. 필드 프로그래머블 메모리 어레이가 필드 프로그래머블 게이트 어레이(field programmable gate array)의 프로그램가능한 자원(programmable)과 함께 구현되는 본 발명의 실시예가 개시된다.

Description

프로그래머블 메모리 어레이와, 프로그래머블 어드레스 디코더와, 프로그래머 블 상호접속회로(FIELD PROGRAMMABLE MEMORY ARRAY)
본 발명은 데이타 메모리에 관한 것으로, 보다 상세하게는 자원을 프로그램 가능하게 경로배정 및 제어할 수 있는(programmable routing and control resources) 프로그래머블 메모리 어레이(programmable memory array)에 관한 것이다. 본 발명은 또한 필드 프로그래머블 게이트 어레이(field programmable gate array)와 함께 일체화된 프로그래머블 메모리 어레이에 관한 것이다.
통상적으로 알려진 집적 메모리 어레이는 소정의 데이타 저장 애플리케이션과 관련된 바와 같은 고정된 깊이 및 고정된 폭을 갖는다. 따라서, 각종 데이타 저장 애플리케이션은 각종 깊이/폭 요건을 충족시키는 개별적인 각각의 메모리 어레이를 필요로 할 수도 있다. 그러나, 단일의 메모리 자원(single memory resource)이 상이한 깊이/폭의 애플리케이션의 요구사항을 충족시킬 수 있다면 유용할 것이다.
상이한 메모리 액세스 기법을 제공하는데 다양한 공지된 메모리 장치가 이용될 수 있다. 가장 통상적인 메모리 액세스 기법은 단순한 어드레스가능한 판독/기록 메모리 기능(simple addressable read/write memory functionality)을 제공하는 방법이다. 다른 액세스 기법에는 LIFO(Last In First Out), FIFO(First In First Out), 및 롤오버(rollover) 데이타 스택 동작(data stack operations)이 있다. 현재의 데이타 저장 장치는 통상적으로 특정의 고정된 액세스 기법에 맞추어져 있다. 그러나, 메모리 장치가 복수의 액세스 기법의 조합을 선택적으로 제공하도록 프로그램가능하다면 유용할 것이다.
프로그래머블 집적 회로는 당해 기술 분야에서 공지된 것이며, 개개의 미사용된 로직 셀(distinct, uncommited logic cells)을 포함하는 프로그래머블 게이트어레이(PGA)를 포함한다. 셀들을 상호 접속하고/상호 접속하거나 어레이에 입력되거나 어레이로부터 출력되는 데이타를 제공하기 위해 통상 프로그래머블 상호접속 네트워크(programmable interconnect network)가 제공된다. 특정의 애플리케이션을 구현하기 위해, 통상적으로 다르게 설계된 로직 셀 및 상호접속 네트워크의 커스텀화(customization) 또는 프로그래밍이 수행된다. 이러한 하나의 장치는 필드 프로그래머블 게이트 어레이(FPGA)로서, 이 FPGA 의 구성은 "현장에서" 사용자에 의해 구성될 수 있다. FPGA 의 구성은 전기적으로 프로그램가능한 가용성 링크(electrically programmable fusible links), 안티휴즈(antifuse), 메모리 제어형 트랜지스터(memory controlled transistor) 또는 부동 게이트 트랜지스터(floating gate transistor)를 이용하므로써 실행된다. FPGA 를 프로그램하기 위해서, 구성 데이타(configuration data)는 외부 메모리 장치로부터 FPGA 의 전기적으로 프로그램가능한 자원으로 전송된다. 이들 필드 프로그래머블 게이트 어레이의 밀도가 증가함에 따라, 온-보드(on-board) 메모리/저장 기능에 대한 요구도 마찬가지로 증가한다. 따라서, 프로그래머블 메모리 어레이와 함께 FPGA를 포함하는 집적 회로를 제공함으로써, 이러한 메모리 어레이가 다양한 구성을 구현하고/하거나 다양한 메모리 액세스 기법중 하나를 제공할 수 있도록 한다면 유용할 것이다.
따라서, 본 발명의 목적은 향상된 메모리 어레이를 제공하는데 있다.
본 발명의 다른 목적은 다양한 데이타 저장 아키텍처를 제공하도록 프로그램 가능하게 구성할 수 있는 프로그래머블 메모리 어레이를 제공하는데 있다.
본 발명의 다른 목적은 다양한 메모리 액세스 기법을 구현하도록 선택적으로 프로그램가능한 메모리 어레이를 제공하는데 있다.
본 발명의 또 다른 목적은 프로그래머블 메모리 어레이와 함께 필드 프로그래머블 게이트 어레이를 일체화하는 집적 회로를 제공하는데 있다.
본 발명의 또 다른 목적은 프로그래머블 메모리 어레이와 함께 필드 프로그래머블 게이트 어레이를 일체화하는 집적 회로를 제공하는 것으로서, 이 필드 프로그래머블 메모리 어레이는 필드 프로그래머블 게이트 어레이의 구성 동안, 필드 프로그래머블 게이트 어레이의 재구성 동안, 또는 필드 프로그래머블 게이트 어레이의 정상 기능동안 액세스가능하도록 하는데 있다.
본 발명의 한 특징에 따르면, 복수의 메모리 서브어레이를 갖는 필드 프로그래머블 메모리 어레이가 제공된다. 상기 메모리 서브어레이는 다양한 각종 메모리 구성 및 동작 모드를 구현하도록 선택적으로 프로그램가능하다. 통상적으로, 각각의 서브어레이는 모드 세트중 하나로 프로그램될 수 있고, 이후 모드 세트중 하나를 이용하여 액세스될 수 있다. 일실시예에서, 상기 모드 세트는 와이드(wide) RAM, 디프(deeP) RAM, FIFO 및 LIFO 를 포함한다.
본 발명에 의해 메모리 어레이의 일부를 프로그래밍할 수 있도록 복수의 프로그램가능한 구조가 제공된다. 예를 들면, 상기 메모리 어레이는 메모리 어레이의 연관된 판독 및 기록 동작 동안 어드레스 디코더에 판독 및 기록 입력 어드레스를 제공하는 어드레스 디코더 및 프로그래머블 액세스 유닛을 포함할 수 있다. 상기 프로그래머블 액세스 유닛은 제 1 어드레스 카운터(first address counter), 제 1 클럭 제어 유닛(first clock control unit), 어드레스 비교 유닛(address comparison unit)을 더 포함할 수 있다.
상기 메모리 어레이의 비트 라인은 프로그램가능한, 계층적인 배열로 배치된다. 높은 수준의 비트 라인 프로그램가능성(programmbility)을 제공하도록 로컬 비트 라인(local bit lines), 반전역적 비트 라인(semi-global bit lines) 및 전역적 비트 라인(global bit lines)이 제공되며, 이들은 프로그램에 의해 상호접속될 수 있다. 또한, 상호접속된 비트 라인 구조는 프로그래밍에 의해 I/O 버스에 접속될 수 있다.
프로그램가능한 접속을 위해 제 1 및 제 2 선택적 접속기와 함께, 주 I/O 버스 및 부 I/O 버스가 제공될 수 있다.
M개의 워드 라인(M word lines), 어드레스 데이타를 전달하는 복수의 어드레스 라인(a plurality of address lines), 상기 복수의 어드레스 라인의 어드레스 데이타에 따라, 선택된 M개의 워드 라인중 소정의 워드 라인을 선택적으로 구동시키는 디코더 회로(decoder circuit)를 갖는 프로그래머블 어드레스 디코더가 제공될 수 있다. 어드레스 버스의 연관된 라인 세트에 접속된 복수의 입력과, 복수의 어드레스 라인중 한 어드레스 라인에 접속된 하나의 출력을 갖는 선택적 접속기로서 프로그래밍 데이타에 따라 자신의 복수의 입력중 하나에 자신의 출력을 선택적으로 접속할 수 있는 선택적 접속기가 또한 제공될 수 있다.
계층적 비트 라인 구조(hierarchical bit line structure)에 선택적으로 인터페이스하기 위한 선택적 판독 포착 래치(selective read capture latch)가 제공될 수 있다. 상기 선택적 판독 포착 래치는, 적어도 제 1 및 제 2 계층 입력과, 입력 및 출력을 갖는 메모리 유닛과, 상기 제 1 및 제 2 계층 입력과 상기 메모리 유닛의 입력 사이에 위치되어, 메모리 유닛의 입력에 제 1 및 제 2 계층 입력중 하나를 선택적으로 접속해서 연관된 계층 판독 포착 클럭에 따라 이들간에 데이타를 전달하기 위한 선택적 접속 수단을 포함할 수 있다. 상기 계층적 비트 라인 구조의 적어도 하나의 비트 라인을 프리차징(pre-charging)하는 프리차지 수단이 제공될 수 있다.
대안적인 실시예에서, 물리적 LIFO/FIFO 기능을 제공하고, 셀에 대한 테스트기능과 어레이내의 관련된 경로에 대한 테스트 기능을 제공하기 위해, 상기 어레이의 메모리 셀간에 프로그램가능한 전송 경로 및 스캔 체인 래치(scan chain latch)가 제공될 수 있다.
바람직한 실시예에서, 본 명세서에서 개시된 필드 프로그래머블 메모리 어레이(FPMA)는 필드 프로그래머블 게이트 어레이(FPGA)의 프로그래머블 로직 셀과 함께 일체화되어, 고도의 프로그램가능한 조합 회로 및 메모리 회로를 포함하는 완전한 프로그래머블 로직 시스템을 제공할 수 있다.
전술한 내용은 이하 개시된 본 발명의 각종 다른 특징과 함께, 메모리 액세스 기법이 고정되어 사용자 액세스에 대해 거의 융통성을 제공하지 못하는 종래 기술의 메모리 시스템에 비해 현저한 향상을 제공한다.
본 발명의 요지는 명세서의 결론 부분에 특히 명시되고 명확히 청구되어 있다. 그러나, 본 발명의 다른 목적 및 장점과 함께, 구조 및 실행 방법에 대해서는 첨부되는 도면과 함께 다음의 바람직한 실시예의 상세한 설명을 참조하면 가장 잘 이해될 수 있다.
제 1a-1e도는 본 발명의 필드 프로그래머블 메모리 어레이를 각종 레벨에서 도시한 도면
제 2a-2b도는 메모리 서브어레이의 부분 개략도
제 3 도는 메모리 셀의 개략도
제 4 도는 대안적인 메모리 셀의 개략도
제 5 도는 전송 셀의 개략도
제 6a-6e도는 비트 라인 경로배정 매트릭스의 부분 개략도
제 7 도는 제 6a도의 비트 라인 경로배정 매트릭스와 연관된 스위칭 매트릭스 소자 및 판독 비트 라인 계층 구조의 개략도
제 8 도는 제 6b도의 비트 라인 경로배정 매트릭스와 연관된 스위칭 매트릭스 소자 및 기록 비트 라인 계층 구조의 개략도
제 9 도는 제 6c도의 비트 라인 경로배정 매트릭스와 연관된 스위칭 매트릭스 소자 및 푸시 비트 라인의 개략도
제 10도는 제 6a도의 비트 라인 경로배정 매트릭스와 연관된 스위칭 매트릭스 소자 및 팝 비트 라인의 개략도
제 11 도는 I/O 경로배정 매트릭스의 블럭도
제 12 도는 제 11 도의 I/O 경로배정 매트릭스의 기록 매트릭스 스위치의 부분 개략도
제 13 도는 제 11 도의 I/O 경로배정 매트릭스의 판독 매트릭스 스위치의 부분 개략도
제 14 는 I/O 블럭의 블럭도
제 15 도는 제 14 도의 I/O 블럭의 I/O 셀의 개략도
제 16 도는 대안적인 판독/기록 비트 라인 계층 구조의 부분 개략도
제 17 도는 고차원의 대안적인 판독/기록 비트 라인 계층 구조를 예시하는 부분 개략도
제 18a-18b 도는 4개의 메모리 서브어레이와 연관된 대안적인 판독 비트 라인 계층 구조를 구비한 판독 데이타 경로 네트워크의 부분 개략도
제 19 도는 4개의 메모리 서브어레이와 연관된 대안적인 기록 비트 라인 계층 구조를 구비한 기록 포트 데이타 경로 네트워크의 부분 개략도
제 20 도는 대안적인 판독 포착 래치 뱅크를 구비한 판독 비트 라인 계층 구조의 단순화된 개략도
제 21 도는 제 20 도에서 도시된 바와 같은 포착 래치 뱅크의 블럭도
제 22 도는 제 21 도의 클럭 생성기의 개략도
제 23 도는 제 21 도의 판독 포착 래치 뱅크의 단일 셀을 도시하는 개략도
제 24 도는 프리차지 회로의 개략도
제 25 도는 판독 포착 래치내에 구비된 프리차지 회로를 도시하는 개략도
제 26a-26c 도는 어드레스 유닛을 예시하는 부분 개략도
제 27a-27c 도는 클럭 유닛을 나타내는 단순화된 개략도
제 28a-28b 도는 상태 머신 액세스 포트를 나타내는 부분 개략도
제 29 도는 비동기 동작이 가능한 대안적인 비트 라인 인터페이스 장치의 부분 개략도
제 30 도는 제 29 도의 장치의 개략도
상세한 설명은 다음의 섹션으로 분류된다.
필드 프로그래머블 메모리 어레이의 소자
메모리 서브어레이
메모리 셀
전송 셀
비트 라인 경로배정 매트릭스
판독 비트 라인 스위칭 소자
기록 비트 라인 스위칭 소자
푸시/팝 스위칭 매트릭스 소자
프로그래밍 스위칭 매트릭스 소자
I/O 경로배정 매트릭스
I/O 블럭
대안적인 데이타 인더페이스 구성
단순화된 판독 비트 라인 인터페이스를 제공하는 대안적인 판독 포착 래치 토폴로지
어드레스 유닛
클럭 유닛
상태 머신 액세스 포트
비동기적으로판독
필드 프로그래머블 메모리 어레이의 소자
도 1a 를 참조하면, 필드 프로그래머블 메모리 어레이(field programmable memory array : FPMA)(10)는 복수의 메모리 서브어레이(121, 122, ... 12Z)를 갖는다. 상기 메모리 서브어레이는 각종 상이한 메모리 구성 및 동작 모드, 즉, 액세스 기법을 구현하도록 선택적으로 프로그램된다.
어레이 프로그램가능성을 제공하는 각종 기법은 당해 기술 분야의 숙련가에 알려져 있다. 마스크 프로그래밍(mask programming) 기법은 일반적인 방법으로 설계된 집적 회로의 최종 금속화층의 침착(deposition)을 커스텀화(customizing)하는 기법(예를 들면, 콕스 등(Cox et al.)에 의한 "PROGRAMMABLE LATCH AND OTHER CIRCUITS FOR LOGIC ARRAYS," November 23, 1976, 이란 명칭의 미국 특허 제3,993,919 호 및 핏제랄드(Fitzerald)에 의한 "MULTI-FUNCTION FET MASTERSLICE CELL," May 3, 1988 이란 명칭의 미국 특허 제 4,742,383 호를 참조하라)을 포함한다. 레이저 프로그래밍(laser programming) 기법은 금속화층의 침착 다음에 금속화층을 커스텀화하는 기법(예를 들면, 라펠 등(Raffel et al.)에 의한 "A WAFER-SCALE DIGITAL INTEGRATOR USING RESTRUCTABLE VLSI," IEEE Journal of Solid-State Circuits, Vol. SC-20, No.1, February 1985, at pg. 399 를 참조하라.)을 포함한다. 영구적인(비휘발성) 프로그래밍을 가능케 하기 위해 가용성 링크(fusible links) 또는 안티휴즈(antifuses)가 사용될 수 있다.(예를 들면, 밀만(Millman)의 "MICROELECTRONICS," McGraw-Hill, Inc., 1979, at pg.196, 및 엘가멀 등(Elgaml et al.)의 "USER PROGRAMMABLE INTEGRATED CIRCUIT INTERCONNECT ARCHITECTURE AND TEST METHOD, July 19, 1988" 이란 명칭의 미국 특허 제 4,758,745호를 참조하라). 반영구적인 프로그래밍을 가능케 하기 위해 소거가능한 프로그래머블 판독 전용 메모리("EPROM") 및 전기적으로 소거가능한 프로그래머블 판독 전용 메모리("EEPROM") 장치가 사용될 수 있다. EPROM 및 EEPROM 은 모두 전기적으로 프로그램가능하고 전원이 제거되는 경우에도 그 상태를 유지한다. 그러나, 장치를 재구성하는데는 특수한 소거 프로시쥬어(special erase procedure)가 이용될 수 있다(예를 들면, 우드 등(Wood et al.)의 "AN ELECTRICALLY ALTERABLE PLA FOR FAST TURNAROUND TIME VLSI DEVELOPMENT HARDWARE," IEEE Journal of Solid-State Circuits, Vol. SC-16, No. 5, October 1981, at pg. 570를 참조하라). 마지막으로, 완전히 프로그램가능하고 재프로그램가능하나, 전원이 제거되는 경우 그 프로그램된 상태를 상실하는 휘발성 랜덤 액세스 메모리 ("RAM") 장치가 또한 이용가능하다(예를 들면, 발라수브라마니안 등 (Balasubramaniam et al.)에 의한 "ELECTRICALLY PROGRAMMABLE LOGIC ARRAY." December 4, 1979, 이란 명칭의 미국 특허 제 4,177,452 호를 참조하라). 어레이를 프로그래밍하는 이들 및 다른 기법은 당해 분야의 숙련가에게 알려져 있고 에스. 브라운(S. Brown), 알. 프란시스(R. Francis), 제이. 로우즈(J. Rose) 및 제트. 브라네직(Z. Vranesic)에 의한 Kluwer Academic Publishers. 1992, "FIELD-PROGRAMMABLE GATE ARRAYS" 이란 명칭의 간행물에 또한 공통적으로 기술되어 있다. 전술한 자원의 각각은 전체적으로 참조자료로 인용된다.
본 발명의 프로그래머블 자원을 프로그래밍하거나 또는 구성하는 바람직한 방법은 사용자에 의해 프로그램되는 SRAM 메모리 셀을 수반한다. "구성 비트(configuration bits)" 또는 "구성 데이타(configuration data)"란 용어는 개시된 각종 구성가능한 자원을 구성하는데 이용되는 기본 구성 정보를 칭하는 것으로 사용된다. 도면에서, 내부에 X를 갖는 원은 구성 정보를 나타낸다. 본 발명의 FPMA 는 바람직하게 이하 전범위에서 참조자료로 인용되는 "APPLICATION NOTE AT6000 SERIES CONFIGURATION", May 1993, Revision 1b, Atmel Corporation, 이란 명칭의 간행물에 개시된 바와 같이 공지된 FPGA 를 구성하는데 이용된 기법과 유사한 기법에 따라 구성된다.
도 1a-1d 를 참조하면, FPMA(10)의 각 메모리 서브어레이(121, 122, ...12Z)는 M개의 행(rows) 및 N개의 열(columns)의 어레이로 배열된 복수의 메모리 셀(a plurality of memory cells)을 포함한다. 각각의 메모리 서브어레이는 각각 N 비트 폭의 M개의 저장 워드를 제공한다. 한 동작 모드에서, FPMA 에 대한 데이타 액세스는 주 I/O 버스(26)를 통해 행해지고, 다른 동작 모드에서, 상태 머신 액세스 포트(24)를 통해 행해진다. FPMA(10)의 구성은 데이타 액세스 경로 및 그의 메모리 셀의 연관된 길이/폭을 결정한다. (설계에 있어서 계층적인)어드레스 버스(28)는 어드레스 디코더 유닛(201, 202, ...20Z)에 어드레스 데이타를 전달하고, 상기 어드레스 디코더 유닛은 데이타를 수신/공급하는 메모리 서브어레이의 워드 행을 어드레스가능하게 선택한다.
FPMA(10)의 다양한 비트 라인 구조는 데이타를 FPMA 로 전달하거나, 또는 FPMA 로부터 데이타를 멀리 격리시킨다. 판독 비트 라인 구조(30)는 FPMA 의 선택된 구성에 따라, FPMA 의 소정의 메모리 서브어레이로부터 주 I/O 버스(26) 또는 상태 머신 액세스 포트(state machine access port)(24)로 데이타를 전달한다. 기록 비트 라인 구조(32)는 기록 어드레싱 데이타 및 연관된 비트 라인 구성에 따라 데이타를 전달하여 FPMA(10)의 메모리 서브어레이 워드를 선택한다.
LIFO/FIFO 데이타 비트 라인(34)은 수직적으로 인접한(vertically adjacent)메모리 서브어레이 사이에서 데이타를 상호접속시킨다. LIFO/FIFO 비트 라인 구조는 연관된 LIFO/FIFO 제어 신호에 따라 두 방향중 한 방향으로 데이타를 전달한다.
프로그래밍(초기화) 비트 라인 구조(36)는 상태 머신 포트(24)와 FPMA 를 직접 접속하여, 데이타, 가령 초기화 데이타를 연관된 프로그래밍 워드 라인 어드레싱을 통해 어드레스된 FPMA 에 전송한다.
비트 라인 경로배정 매트릭스 유닛(Bit line routing matrix units)(141, 142, ...14Z+1)은 다양한 데이타 비트 라인 구조의 선택 라인으로부터 부 I/O 버스(38)로 선택적인 인터페이싱을 제공하는데, 여기서 Z 는 FPMA(10)의 메모리 서브 어레이(12)의 개수에 해당한다. 가령 도 1a, 1b 및 1c 를 참조하면, 비트 라인 경로배정 매트릭스 유닛(14Z+1)에서 판독 비트 라인 구조(30)의 선택 판독 비트 라인은 상호접속 판독 데이타 라인(40)을 통해 I/O 경로배정 매트릭스(16Z+1)에 경로배정된다. 마찬가지로, 기록 비트 라인 구조(32)의 선택 라인은 상호접속 기록 데이타 라인(42)에 의해 I/O 경로배정 매트릭스(16Z+1)에 상호접속된다. 비트 라인 경로배정 매트릭스(14Z+1) 및 I/O 경로배정 매트릭스(16Z+1)사이의 상호접속 라인(44 및 46)은 연관된 LIFO/FIFO 비트 라인 구조(34)의 선택 신호를 전달한다. 비트 라인 경로배정 매트릭스(14Z+1) 및 I/O 경로배정 매트릭스(16Z+1)사이의 데이타 라인 상호접속선(40, 42, 44, 46)의 각각은 N 비트 폭이고, 여기서 N 은 각 메모리 서브어레이의 데이타 워드 폭을 나타낸다.
도 1a, 1b, 1c 및 1e 를 참조하면, 하부 비트 라인 경로배정 매트릭스(141)는 판독 비트 라인 상호접속선(30')을 통해 상태 머신 액세스 포트(24)에 판독 비트 라인 구조(30)를 선택적으로 인터페이싱시킨다. 부(secondary) 판독 포트(38')는 부 I/O 버스(38)를 통해, FPMA 의 대안적인 판독 인터페이스를 상태 머신 액세스 포트(24)에 제공한다. 프로그래밍 비트 라인 상호접속선(36')은 비트 라인 경로배정 매트릭스(141)를 통해 상태 머신 액세스 포트(24)로부터 프로그래밍 비트 라인 구조(36)에 프로그래밍 데이타 접속을 제공한다. (도 1b 에 도시된 바와 같은) LIFO/FIFO 랩어라운드(wrap-around) 상호접속 데이타 라인(34')은 하부 비트라인 경로배정 매트릭스(141)로부터 상부 비트 라인 경로배정 매트릭스(14Z+1)에 까지 걸쳐있다. 랩어라운드 데이타 라인(34')은 FPMA 의 제각기 단부간에 흐르는 데이타를 상부로부터 하부로 또는 대안적으로 하부로부터 상부로 제공한다.
도 1a 및 1b 를 참조하면, I/O 경로배정 매트릭스 유닛(161, 162, ...16Z+1)은 각각의 비트 라인 경로배정 매트릭스(141, 142, .. 14Z+1)와 연관되고, 연관된 상호접속 데이타 라인(40, 42, 44.46)과 부 I/O 버스(38)의 선택 라인 사이에 선택적인 상호접속을 제공한다. I/O 경로배정 매트릭스는 또한 부 I/O 버스(38)에 대한 분할된 계층 구조(segmented hierarchy structure)를 구현하는 특징을 포함하고 있는데, 상기 계층 구조는 이하에서 보다 상세히 기술된다.
I/O 블럭(181, 182, ...18Z)은 주 I/O 버스(26) 및 부 I/O 버스(38)를 선택적으로 상호접속시킨다. 상기 I/O 블럭은 특정 상호접속 실시예에 대해 선택적인 극성 반전(selective polarity inversion) 수단을 또한 포함할 수도 있다.
주 I/O 버스(26)는 FPMA 의 메모리 셀에 대한 주 인터페이스로서 기능한다. 예시적인 애플리케이션에서, FPMA 는 필드 프로그래머블 게이트 어레이 등의 다른 프로그래머블 어레이와 함께 구성되는데, 여기서 주 I/O 버스는 필드 프로그래머블 게이트 어레이에 대한 전체 인터페이스의 일부이다.
클럭 유닛(221, 222...22Z)은 각각의 메모리 서브어레이(121, 122, ..., 12Z)와 연관되며 각종 메모리 기능을 제어한다. 클럭 유닛은 선택된 각종 메모리 기능, 예를 들면, 판독, 기록, 팝(poP), 푸시(push), 클리어(clear) 등에 따라 데이타를 전송하기 위한 전송 제어 신호를 제공하도록 프로그램가능하다.
어드레스 버스(도 1a 및 1b)는 각종 어드레스 유닛(201, 202, ...20Z)에 어드레스 데이타를 경로배정하고 연관된 클럭 유닛(221, 222...22Z)에 적절한 제어 데이타를 전달한다. 어드레스 버스의 선택적 라인은 그 연관된 구성 데이타에 따라 어드레스 유닛 및 클럭 유닛에 경로배정된다. 어드레스 버스(28)는 이하에서 더 기술되는 바와 같이 설계에 있어 계층적일 수 있다.
전술한 예시적인 애플리케이션에 있어서, FPMA(10)는 필드 프로그래머블 게이트 어레이(FPGA)와 함께 구현되고, 상태 머신 액세스 포트(24)(도 1a 및 도 1e)는 FPGA(도시되지 않음)의 구성 로직(configuration logic)과 연관된 상태 머신(state machine)과 FPMA 의 메모리 셀사이의 직접 데이타 인터페이스를 제공한다. 이하 전체적으로 참조자료로 인용되는 개버릭 등(Gaverick et al.)에 의해 1995년 3 월 29 일에 발행된 "VERSATILE AND EFFICIENT CELL-TO-LOCAL BUS INTERFACE IN A CONFIGURABLE LOGIC ARRAY" 이란 명칭의 미국 특허 제 5,298,805 호는 이러한 FPGA 및 연관된 구성 로직을 공개하고 있다. 이 상태 머신 액세스 포트(24)는 상태 머신으로부터 어드레스 데이타를 수신하는 판독 어드레스 포트(390)를 갖는다. 프로그래밍 비트 라인 포트(388)는 상태 머신으로부터 프로그래밍 데이타를 수신하는 반면, 데이타 포트(386)는 FPMA 로부터 검색(retrieve)된 데이타를 상기 상태 머신에 전달한다. 스트로브 포트(Strobe port)(384)는 상태 머신으로부터 판독 스트로브를 수신하도록 접속되고, 이 판독 스트로브는 FPMA 의 판독 동작을 실행하는 것과 연관된다. 상태 머신 액세스 포트(24)의 프로그램된 구성에 따라 선택되는 바와 같이, 어드레스 정보는 어드레스 상호접속선(28')에 의해 상태 머신으로부터 어드레스 버스(28)의 선택 어드레스 라인상으로 전달된다. 프로그래밍 비트 라인 포트(388)에서 수신된 바와 같은 프로그래밍(초기화) 데이타는 상태 머신 액세스 포트(24) 및 비트 라인 경로배정 매트릭스(141)의 연관된 구성 상태에 따라, 상호접속선(36') 및 비트 라인 경로배정 매트릭스(141)를 통해, FPMA(10)의 프로그래밍 비트 라인 구조(36)에 선택적으로 접속된다. FPMA(10)로부터 판독된 바와 같은 데이타는 상태 머신 액세스 포트(24)의 프로그램된 구성에 따라. 판독 비트 라인 상호 접속선(30')을 통해, 두 상이한 대안적 경로로 상기 상태 머신에 전달되거나, 또는 대안적으로 부 I/O 버스(38) 및 부 판독 포트 상호접속선(38')을 통해 상기 상태 머신에 전송될 수 있다. 따라서, 상태 머신 액세스 포트(24)는 연관된 FPMA 의 셀로부터 직접 연관된 FPGA 의 구성 메모리에 새로운 구성 데이타를 다운로딩(dowmloading)하기 위한 온 보드(on board) "캐쉬" 동작을 제공할 수 있다.
이하에서 기술되는 바와 같이, FPMA 의 실시예가 기술되고 도면에 도시되며, 이 실시예는 "물리적" LIFO/FIFO 기능과, "물리적" 스캔 입력/출력 기능으로서 지칭되는 기능을 포함한다. 이들 기능은 L1/L2 래치(마스터/슬레이브) 및 메모리 셀간의 전송 셀로 된 어레이내에 포함될 필요가 있다. 본 발명의 바람직한 실시예는 이러한 마스터/슬레이브 래치 및 전송 셀을 포함하고 있지는 않다. 바람직한 실시예에서, LIFO/FIFO 기능은 전송 셀이 없이도 "논리적으로" 제공된다. 적용 가능한 바람직한 실시예로부터 이들 및 관련 회로를 배재한 것이 이하 기술된다.
예를 들면, LIFO/FIFO 랩어라운드(wrap-around) 비트 라인 구조(34')는 최초 비트 라인 경로배정 매트릭스(141) 및 최종 비트 라인 경로배정 매트릭스(14Z+1)사이를 인터페이싱하는 선택사양적인 구조임에 주의해야 한다. 본 발명의 특정 실시예에서, LIFO/FIFO 랩어라운드 비트 라인 구조(34')는 포함되지 않으며 비트 라인 경로배정 매트릭스(14Z+1)도 아니다.
이하 개시된 내용은 FPMA 의 각종 실시예의 보다 상세한 설명을 제공한다.
본 명세서에 개시되는 FPMA 는 FPMA 내의 논리적 램(logical ram) 간의 기능, 또는 단일의 와이드(wide) 램, 디프(deeP)램에 대한 기능을 언제든 제공할 뿐만 아니라, FPMA 의 논리적 용량의 한계에까지 동일하거나 상이한 모드의 복수의 논리적 어레이틀 동시에 제공한다. FPMA 가 M 워드 × N 비트로 된 8개의 서브어레이를 포함하는 경우, FPMA 는 각각이 M 워드 × N 비트인 8개의 논리적 메모리를 구현할 수 있을 것으로 예상할 수 있으며, 또는 대안적으로, 복수의 서브어레이와 클럭 유닛 자원을 함께 이용하는 복수의 M 워드 및 복수의 N 비트인 각 어레이의 임의의 조합은 FPMA 내에 존재하는 서브어레이들을 초과하지 않는다고 예상할 수 있다. 또한, FPMA 의 용량 한계에까지 각각의 어레이가 상이한 모드(1 포트 RAM, 2 포트 RAM, ROM, FIFO, LIFO 등)를 갖도록 할 수도 있다. 한 실제의 설계에서, 8개의 서브어레이이지만 단지 2 클럭 유닛이 제공된다(LIFO 및 FIFO 의 수를 2 로 제한함).
메모리 서브어레이
도 2a 및 도 2b 를 참조하면, 각각의 메모리 서브어레이(12)는 M개의 행 및 N개의 열의 어레이로 배열된 복수의 메모리 셀(48)을 포함한다. M개의 행은 메모리 서브어레이에 M개의 저장 워드를 제공한다. 상기 저장 워드는 각각 N 비트폭이고, 메모리 서브어레이내의 열(column) 수에 대응한다. 메모리 셀(48)의 각 행은 워드간에 직접으로 데이타 이동을 가능케하는 전송 셀(50)의 연관된 행(row)을 가질 수 있다. 예를 들면, 제 1 행 및 제 1 열의 메모리 셀(481,1)은 제 2 행 및 제 1열의 메모리 셀(482.1)에 대해 데이타의 이동을 가능케하는 연관된 전송 셀(501.1)을 가질 수 있다. 본 발명의 특정 실시예에서, 워드간에 실질적으로 데이타를 이동시킬 필요는 없으며, 따라서 전송 셀(50)은 그들간에 수직하게 설치되지 않는다.
판독, 기록, 푸시, 팝, 직렬 스캔, 프로그래밍(초기화)를 포함하는 각종 데이타 전송 동작에 따라 FPMA(10)의 메모리 셀을 액세스하는데 복수의 다양한 기법이 이용될 수 있다. 메모리 서브어레이(12)의 판독 및 기록 동작에 관해, 메모리 서브어레이(12)내의 메모리 셀(48)의 각 행은 데이타를 판독할 행으로서 메모리 셀의 언관된 행을 선택하도록 어드레스가능한 각각의 연관된 판독 워드 라인(RWL1, RWL2...RWLM)을 갖는다. 소정의 행 워드 라인이 선택되는 경우, 선택된 행 메모리 셀의 데이타는 연관된 내부 열 판독 비트 라인(561, 562...56N)상으로 출력된다. 소정의 열의 각 메모리 셀은 그의 연관된 내부 판독 비트 라인(56)에 접속된 게이트된 출력(gated output)을 갖고, 이 게이트된 출력은 대응하는 판독 워드 라인마다 인에이블된다. 예를 들면, 제 1 열의 판독 비트 라인(561)은 제 1 열의 메모리 셀(481.1, 482.1,...,48N.1)의 게이트된 출력에 접속된다.
각각의 내부 판독 비트 라인(561, 562, ..56N)은 제각기 연관된 선택적 3상(tri-state) 드라이버(521, 522...52N)의 입력에 접속된다. 상기 선택적 3상 드라이버는 제각기 내부 판독 비트 라인(56)의 데이타를 (각각의 판독 비트 라인 구조(30)의)연관된 판독 비트 라인 계층 구조(108)의 선택 비트 라인으로 전달한다. 예를 들면, 선택적 3상 드라이버(521)는 입력단자로 내부 판독 비트 라인(56)으로부터의 데이타를 수신한다. 선택적 3상 드라이버(521), 즉, N×1(1-of-N) 선택적 드라이버(이 "N"은 메모리 어레이의 폭"N"과 관계없음에 주의해야 한다)는 연관된 구성 데이타(62)에 따라, 그의 복수의 출력(1081)중의 선택 출력을 구동시킨다. 3상 드라이버(521)를 프로그래밍하는 구성 데이타는 프로그램가능한 자원의 프로그래밍에 관해 기술된 바와 같이, 예를 들면 SRAM(도시되지 않음)에 의해 제공된다. 따라서, 선택적 3상 드라이버(521)는 이하 기술되는 바와 같이 직절히 인에이블되는 경우 그의 연관된 구성 데이타(62)에 따라, 계층 구조(1081)의 한 비트 라인에 내부 판독 비트 라인(56)의 데이타를 전송한다.
각각의 선택적 3상 드라이버(521, 522, ..., 52N)는 상위 어드레스 입력(72)에서 수신된 상위 어드레스 인에이블 신호에 의해 구동되는 인에이블 입력(enableinput)을 갖는다. 상위 어드레스 인에이블 신호가 3상 드라이버를 디스에이블시키는 경우, 드라이버의 모든 출력은 3상 상태에서 고출력 임피던스를 제공한다. 대안적으로, 상위 어드레스 인에이블 신호가 선택적 3상 드라이버를 인에이블시키는 경우, 드라이버는 연관된 구성에 따라 계층 구조(hierarchy structure)(108)의 선택 라인에 데이타를 전달한다. 도 1a 및 도 1b 를 참조하면, 메모리 서브어레이(121, 122,...12M)의 상위 어드레스 입력은 제각기 상호접속선(721, 722, ...72Z)을 통해 연관된 어드레스 유닛(201, 202...20M)에 접속된다. 따라서, FPMA(10)는 적절한 어드레싱 데이타마다 어떤 메모리 서브어레이(12)가 연관된 판독 비트 라인 계층 구조(108)상으로 데이타를 전달할 것인지를 선택할 수 있다. 판독 회로(52)의 대안적 실시예가 이하에서 기술된다.
메모리 서브어레이(12)에 데이타를 기록하는 것과 연관된 회로는 전술한 바와 같은 판독 회로와 유사하다. 메모리 셀의 각 열은 연관된 내부 기록 비트 라인(581, 582...58N)을 갖는다. 각각의 내부 기록 비트 라인은 그의 연관된 열의 각각의 메모리 셀의 게이트된 입력에 접속된다. 예를 들면, 제 1 열의 내부 기록 비트 라인(581)은 제각기 메모리 셀(481.1, 482.1...48M.1)의 게이트된 입력에 접속된다. 데이타가 메모리 서브어레이(12)에 기록되는 경우, 상기 데이타는 WWL1, WWL2, ...WWLM의 어드레스가능하게 선택되는 워드 라인에 따라 소정의 워드에 전송된다. 예를 들면, 필드 프로그래머블 메모리 어레이(10)가 제 2 행 워드 라인(WWL2)을 구동하는 어드레스를 수신한다고 가정하면, 메모리 셀의 제 2 행이 선택되어 연관된 기록 비트 라인(581, 582...58N)의 데이타를 수신한다. 각 비트 라인(58)은 멀티플렉서(54)를 이용하여 연관된 계층 구조(118)로부터 구동된다.
대안적인 메모리 로드 동작(memory load operation)은 프로그래밍 동작을 포함한다. "프로그래밍"이란 용어는 본 명세서에서 어레이의 메모리 셀(48)의 "초기화"를 칭하고, FPGA/FPMA 의 구성 비트를 구성하는 것을 칭하는 경우에 사용된다. 당 분야에서 통상의 지식을 가진자라면 현재의 문맥으로부터 "프로그래밍"이란 용어가 어떻게 사용되는가를 인식할 것이다. 소정의 메모리 서브어레이(12)의 선택 행은 연관된 프로그램 비트 라인(36), 즉, PBL1, PBL2, ...PBLN의 프로그램 데이타로 로딩된다. 메모리 셀의 선택 행은 연관된 프로그램 워드 라인(PWL1, PWL2...PWLN)마다 선택된다. 도 1 을 참조하면, 예를 들면 FPGA 의 상태 머신(도시되지 않음)은 상태 머신 액세스 포트(24) 및 프로그래밍 비트 라인(26), 즉, 데이타 경로가 FPMA 에 프로그램 데이타를 기록하도록 보다 직접적인 경로를 제공하는 PBL1.PBL2...PBLN를 통해 프로그래밍(초기화) 데이타를 FPMA 에 전송한다.
FPMA 내의 LIFO, FIFO 또는 데이타 롤오버(data rollover) 기능을 인에이블시키기 위해서. 메모리 스택은 FPMA 내에서 구성되어 데이타의 직접적 이동이 스택상으로, 스택내부로 또는 스택외부로 행해진다. 이하 보다 자세히 기술되는 바와 같이, LIFO/FIFO 동작의 두 유형, 즉, 물리적 및 논리적 LIFO/FIFO 동작이 개시된다. 물리적 LIFO/FIFO 동작에서, 데이타는 실제로 연관된 메모리 스택내로 직접 전송된다. 논리적 LIFO/FIFO 동작에서, 각각의 메모리 셀의 데이타는 고정된 채로 유지되며, 어드레스 포인터/카운터는 기록 및 판독 메모리 위치를 추적하도록 사용되어 효과적인 PUSH/POP 스택 기능을 구현한다. 물리적 LIFO/FIFO 실시예의 설명을 계속하면, 푸시 입력(PUSHI1, PUSHI2...PUSHIN)은 제각기 메모리 서브어레이(12)의 각각의 열의 하부 메모리 셀에 접속된다. 예를 들면, 메모리 셀(481.1)은 연관된 스택상으로 푸싱(pushing)될 소정의 데이타 비트를 수신하는 열 1(PUSHI1)의 푸시 입력에 연결된다. 연관된 메모리 서브어레이(12)가 구성된 FIFO/LIFO 스택(즉, 중간 서브어레이)내에 있는 경우, 상기 서브어레이는 (그의 연관된 비트 라인 경로배정 매트릭스를 통해) 인접한 메모리로부터 푸시 데이타를 수신한다. 대안적으로, 소정의 메모리 서브어레이가 구성된 스택의 제 1 메모리 서브어레이(10)인 경우, 상기 메모리 서브어레이는 연관된 랩어라운드 상호접속선(34')을 통해 구성된 스택의 상부로부터, 또는 대안적으로 주 I/O 버스(26)를 통해 외부 소스로부터 푸시 데이타를 수신한다.
데이타가 소정의 메모리 서브어레이에 푸시됨에 따라, 오버플로우 데이타는 전송 셀(50M.1, 50M.2...50M.N)에 의해 메모리 서브어레이로 부더 연관된 푸시 출력(PUSHO1, PUSHO2...PUSHON)상으로 쉬프트된다. 소정의 메모리 서브어레이가 FPMA(10)의 구성된 스택내(중간)에 있는 경우, 소정의 메모리 서브어레이로 부터 푸시되는 오버플로우 데이타는 중간 경로배정 비트 라인 매트릭스(14)를 통해, 구성된 스택내의 다음의 인접한 메모리 서브어레이에 전달된다. 대안적으로, 메모리 서브어레이가 구성된 스택의 상부에 있는 경우, 오버플로우 데이타는 롤오버(rollover) 기능마다 랩어라운드 상호접속선(34')을 통해 하부 메모리 서브어레이에, 또는 FIFO 기능마다 스택외부에 전달된다.
FPMA 의 수직 스택의 하부로 데이타를 쉬프트시키는 것은, 메모리 서브어레이(12)가 연관된 팝 입력(POPI1, POPI2...POPIN)을 통해 각 열의 상부에서 데이타를 수신하는 것을 제외하고는, 수직 스택의 상부로 데이타를 푸시하는 것과 유사하다. 데이타를 스택의 하부로 더 전달하면, 오버플로우(overflow) 데이타는 각 열의 연관된 팝 출력(POPO1, POPO2...POPON)을 통해 소정의 메모리 서브어레이의 하부를 빠져나간다. 팝 출력은 중간 경로배정 비트 라인 매트릭스를 통해 적절히 구성된 스택내의 인접 메모리 서브어레이의 연관된 팝 입력에 접속된다. 하부 메모리 서브어레이에 대해, 구성된 메모리 스택으로 부터 팝된(popped) 데이타는 롤오버 기능마다 연관된 랩어라운드 상호접속선(34')을 통해 스택의 상부로, 또는 대안적으로 주 I/O 버스(26)상으로 전달된다. 메모리 서브어레이(12)의 각 열내에서 수직적으로 데이타 이동을 가능하게 함에 있어서, 각 전송 셀(50)은 각각의 입력(373, 374)에서 제 1 및 제 2 위상 팝 클럭(POPCLK1, POPCLK2)을, 그리고 각각의 입력(376, 378)에서 제 1 및 제 2 위상 푸시 클럭(PUSCLK1, PUSCLK2)을 수신한다(상기 클럭들은 도 2a 및 도 1d 에서 모두 클럭(380)으로 칭해짐). 앞서 언급한 바와 같이, 본 발명의 바림직한 실시예에서, FPMA 메모리 스택내에서 직접적인 데이타 전송이 행해지지 않음에 따라, 각종 푸시/팝 상호접속선, 전송 셀, 및 연관된 푸시/팝 클럭이 요구되지 않는다.
메모리 서브어레이(12)내에서 데이타를 전송하는 다른 방법(본 발명의 특정의 대안적인 실시예)은 직렬로 접속된 메모리 셀(48)의 체인을 통해 직렬로 데이타를 쉬프트하는 것을 포함한다. 제 1 행 및 제 1 열의 메모리 셀(481.1)은 연관된 메모리 서브어레이(12)에 대해, 스캔 입력(SCANIN)을 제공하는 직렬 입력을 갖는다. 최종 행 및최종 열과 연관된 메모리 셀(48M.N)은 메모리 서브어레이(12)에 대해, 스캔 출력(SCANOUT)을 제공하는 직렬출력을 갖는다. 중간 직렬 데이타 링크가 잔존하는 직렬 접속된 메모리 셀들간에 제공되는데, 여기서 직렬 출력(serial output)은 스트림 메모리 셀의 하부에 인접한 각각의 직렬 입력에 접속된다. 예를 들면, 메모리 셀(481.1)은 메모리 셀(481.2)의 직렬 입력에 접속되는 직렬 출력을 갖고, 마찬가지로 메모리 셀(481.N)은 메모리 셀(482.1)의 직렬 입력에 접속되는 직렬 출력을 갖는다. 본 발명의 이러한 특정의 예시된 실시예에서, 메모리 셀은 각 행내에서 직렬로 접속되고, 한 행의 최종 메모리 셀은 인접한 행의 첫번째 메모리 셀에 접속된다. 대안적으로, 메모리 셀은 각각의 열을 통해 직렬로 접속될 수 있다. 도 1a 및 도 1d 를 참조하면, FPMA 내에서 메모리 셀의 직렬 스트링을 연결함에 있어서, 인접한 메모리 서브어레이의 스캔 출력(SCANOUT) 및 스캔 입력(SCANIN)이 상호접속되어 모든 FPMA 내에서 단일의 연속적인 직렬 스캔 체인을 제공한다. 예를 들면, 메모리 서브어레이(121)는 직렬 상호접속선(70)을 통해 메모리 서브어레이(122)의 스캔 입력에 접속되는 스.캔 출력을 갖는다. 직렬 스캔 데이타 쉬프트는 입력(301)에서 수신된 각각의 제 1 및 제 2 위상 스캔 클럭(SCANCLK1, SCANCLK2)을 적절히 클럭 펄스 시퀀싱(sequencing)하므로써 행해진다. 상기 클럭들은 각각의 메모리 셀을 구동시키기 위해 접속된다(도시되지 않음). 또한, 스캔 체인 구현은 단지 개시된 FPMA 의 대안적이고, 선택적인 실시예이다.
도 2a 를 참조하면, 각각의 메모리 서브어레이(12)는 리세트 신호(RESET)를 수신하는 리세트 입력(302)을 또한 갖는다. 리세트 입력은 리세트 신호의 적절한 펄스에 따라 모든 메모리 셀의 리세트를 인에이블시키도록 서브어레이내의 각 메모리 셀의 리세트에 접속된다(도시되지 않음).
메모리 셀 및 선택적인 전송 셀의 보다 상세한 설명이 이하에서 기술된다.
메모리 셀
도 3 을 참조하면, 예시적인 메모리 셀(48)이 도시되어 있다. (셀(48)의 다른 실시예는 "A SYSTEM FOR IMPLEMENTING WRITE, INITIALIZATION, AND RESET IN A MEMORY ARRAY USING A SINGLE CELL WRITE PORT." 이란 명칭으로 인용된 출원서에 기술되어 있다) 셀(48)은 셀내의 데이타를 보유하는 주 래치(primary latch)(74)를 갖는다. 주 래치(74)는, 예를 들면, 정적(static) 메모리 유닛을 제공하는 2개의 적절하게 교차접속된 인버팅 소자를 포함한다. 주 래치(74)는 위크 사이드(weak side)(73) 및 스트롱 사이드(strong side)(75)를 갖는다. 제 1 래치(74)의 위크 사이드(73)가 다른 유사한 래치의 스트롱 사이드(75)에 의해 구동되는 경우, 제 1 래치는 제 2 래치의 스트롱 사이드에 대응하게 배열된 위크 사이드를 가질 것이다. 이하, 상기 위크 사이드는 입력으로 지칭되고, 상기 스트롱 사이드는 출력으로 지칭된다. (RAM, DRAM, PROM 등을 포함하는 다른 메모리 셀 구성은 본 발명의 범위를 벗어나지 않고도 행해질 수 있다.)
주 래치(74)의 입력(73)(위크 사이드)은 각각의 자원으로부터 선택적으로 데이타를 수신하는 각종 게이트된(gated) 입력에 연결된다. 필드 프로그래머블 메모리 어레이내에서 데이타 쉬프트가 워드간에 직접 행해지는 본 발명의 실제적인 LIFO/FIFO 실시예에 대해, 푸시 입력 및 팝 입력(제각기 PUSHIN 및 POPIN)는 주 래치(74)의 입력(73)에 접속된다. 이들 푸시 및 팝 입력은 각각 연관된 하위 및 상위 전송 셀(50)에 의해 구동된다(이 전송 셀은 이하에서 보다 상세히 기술되는 바와 같은 적절한 푸시/팝 클럭킹(push/pop clocking)에 의해 선택적으로 인에이블되는 게이트된 출력을 포함한다). 예를 들면, 메모리 셀(48)의 푸시 입력(PUSHIN)은 동일한 열에 위치된 전송 셀의 스트롱 사이드 푸시 출력으로부터 푸시 데이타를 수신한다. 한편, 메모리 셀(48)의 팝 입력(POPIN)은 동일한 열에 위치된 전송 셀의 스트롱 사이드 푸시 출력으로부터의 팝 출력에 의해 구동된다.
주 래치(74)의 스트롱 사이드로부터의 출력(75)은 동일한 열의 상부 및 하부 전송 셀을 각각 구동시키기 위한 직접적인 푸시 및 팝 출력(PUSHOUT 및 POPOUT)을 제공한다. 메모리 셀(48)의 푸시 출력이 인접한 전송 셀의 위크 사이드를 상기 스택 상위로 구동시키는 반면, 메모리 셀(48)의 팝 출력은 인접한 전송 셀의 위크사이드를 스택 하위로 구동시킨다. 전술된 바와 같이, 본 발명의 특정 실시예에서, 데이타의 직접적인 쉬프트는 메모리 어레이내에서 행해지지 않으며, 메모리 셀(48)에 푸시/팝 입력 및 푸시/팝 출력이 제공되지 않는다.
MOSFET(78)는 주 래치(74)의 입력(73)과 프로그래밍 비트 라인(36)(도 1b)의 프로그램 비트 라인(PBL)사이의 패스게이트(passgate)로서 기능한다. MOSFET(78)는 프로그래밍 워드 라인(PWL)을 통해 그의 게이트에서 인에이블되는 경우, 프로그래밍 데이타를 래치(74)에 로딩하도록 입력(73)에 프로그래밍 비트 라인(PBL)을 선택적으로 상호접속한다. (또한, 이 문맥에서, 프로그래밍은 FPMA(10)의 구성대신 셀(48)의 초기화로서 지칭된다.)
MOSFET(80)는 직렬 입력(SI) 및 주 래치(74)의 입력(73) 사이의 패스게이트에 접속된다. MOSFET(80)의 게이트는, 입력(73)에 스캔 입력(SI)을 접속하고 주래치(74)에 직렬 데이타를 전달하도록 MOSFET(80)를 선택적으로 인에이블시키는 제1 위상 스캔 클럭(SCANCLK1)에 의해 구동된다.
선택적인 직렬 스캔 동작과 연관된 소자에 대해, MOSFET(86)의 채널은 주래치(74)의 출력(75) 및 부 래치(76)의 위크 사이드 입력 사이에 접속된다. (본명세서에서 사용되는 바와 같은 "래치"라는 용어는 통상적으로 데이타 저장 능력을 갖는 회로를 의미한다.) MOSFET(86)의 게이트는 주 래치(74) 및 부 래치(76)사이에 데이타를 선택적으로 전달하는 제 2 위상 스캔 클럭(SCANCLK2)에 의해 구동된다. 부 래치(76)의 출력은 연관된 직렬 체인내의 다음 메모리 셀의 직렬 입력을 구동시키는 메모리 셀(48)의 직렬 출력(SO)를 제공한다. 도 2a 를 참조하면, 예를 들면, 제 1 메모리 셀(481.1)은 직렬 입력(SI)에서 직렬 입력 데이타를 수신한다. 제 1 위상 스캔 클럭은 주 래치(74)에 직렬 입력 데이타를 전송하도록 펄스를 제공한다. 동시에, 제 1 위상 스캔 클럭의 펄스는 또한 직렬 스캔 체인, 예를 들면, 481.2내의 순차적인 메모리 셀이 연관된 선행 메모리 셀, 예를 들면, 481.1의 직렬 출력(SO)으로부터 수신된 바와 같은 직렬 입력 데이타를 래치할 수 있게 한다. 다음에, 제 2 위상 스캔 클럭은 메모리 셀의 각각의 주 래치(74)로부터 연관된 부 래치(76)으로의 데이타 전송을 가능케하는 펄스를 제공한다. 이러한 방식으로, 데이타는 메모리 셀(48)의 직렬 접속된 스캔 체인을 통해 직렬로 이동한다.
MOSFET(82)는 기록 비트 라인(WBL) 및 주 래치(74)의 입력(73)을 선택적으로 접속시킨다. 게이트는 기록 인에이블 신호를 수신하는 기록 워드 라인(WWL)에 접속된다. 인에이블되는 경우, MOSFET(82)는 주 래치(74)에 데이타를 기록하는 입력(73)에 기록 비트 라인(WBL)을 상호접속한다. 도 2a 및 도 2b 를 참조하여 기술된 바와 같이, 메모리 셀(48)의 기록 비트 라인(WB:L)이 그의 연관된 내부 열 기록 비트 라인(58)에 연결되는 반면, 기록 워드 라인(WWL)은 연관된 어드레스 유닛(20)에 의해 어드레스가능하게 구동된다. 내부 기록 비트 라인(58)의 데이타는 연관된 기록 워드 라인(WWL)이 그의 연관된 어드레스 유닛(20)(도 1a, 도1b, 및 도1d)에 따라 어드레스가능하게 선택되는 경우 MOSFET(82)를 통해 주 래치(74)에 전송된다.
MOSFET(84)는 그라운드 및 주 래치(74)의 입력(73) 사이에 직렬로 접속된 채널을 갖는다. MOSFET(84)의 게이트는 그라운드에 입력(73)을 선택적으로 접속하는 리세트 신호(RST)에 의해 구동된다. 이 리세트 상태 동안, 주 래치(74)의 데이타가 클리어된다. 대안적으로, 비록 도시되지는 않았지만, MOSFET(84)는 리세트 상태 동안 주 래치(74)를 반대 상대로 구성하도록 양 전원공급장치에 입력(73)을 선택적으로 접속한다.
버퍼(88)(가능하게는 인버터)는 주 래치(74)의 출력(75)에 접속된 그의 입력을 가지며 선택적으로 게이트된 MOSFET(90)를 구동시킨다. MOSFET(90)는 버퍼(88)의 출력 및 그의 연관된 열의 내부 판독 비트 라인(RBL), 예를 들면, 도 2a 및도 2b 의 내부 판독 비트 라인(561) 사이에 배치된 채널을 가지며, MOSFET(90)의 게이트는 메모리 셀(48)로부터 그의 연관된 내부 판독 비트 라인(56)상으로 데이타를 전달하도록 판독 비트 라인(RBL)에 버퍼(88)의 출력을 선택적으로 접속하는 판독인에이블 신호를 수신하는 판독 워드 라인(RWL)에 접속된다. 도 1a, 1b, 1d, 2a, 2b 및 3 을 참조하면, 연관된 어드레스 유닛(20)은 판독 워드 라인(298)의 소정의 판독 워드 라인(RWL)을 어드레스가능하게 선택하는 어드레스 버스(28)로부터 판독 어드레스를 수신한다. 연관된 행 메모리 셀(48)의 모든 패스게이트, 즉 MOSFET(90)는 각각 내부 판독 비트 라인(56)상으로 그 데이타를 전달하도록 인에이블된다.
따라서, 메모리 셀(48)은 복수의 입력 포트, 즉, PUSHIN, POPIN, PBL, SI, WBL, 및 RST 를 가지며, 이로부터 주 래치(74)를 갱신하는 데이타를 수신한다. 마찬가지로, 메모리 셀(48)은 복수의 출력 포트, 즉, SO, RBL, PUSHOUT, POPOUT를 갖고, 메모리 셀(48)에 저장된 데이타를 전송한다. (앞서 인용된 "A SYSTEM FOR IMPLEMENTING WRITE, INITIALIZATION, AND RESET IN A MEMORY ARRAY USING A SINGLE CELL WRITE PORT"이란 명칭의 인용된 출원서는 단지 단일 기록 포트만을 이용하여 이들 기능의 다수를 보유하기 위해 선택 회로를 갖는 단일 기톡 포트 셀을 개시하고 있다.)
전술한 메모리 셀의 실시예에서, 부 래치(76)는 LSSD 직렬 스캔 동작에만 연관되었다. 대안적인 구성에서, 도 4 를 참조하면, 메모리 셀(48')은 향상된 메모리 밀도를 제공하도록 메모리 셀(48)에 두 데이타 비트를 저장시킬 수 있다. 그러나, 이 대안적인 메모리 셀 구성(48')은 직렬 스캔 기능과 상호 보완관계에 있다. 직렬 스캔 동작과 연관된 이중 위상 클럭킹(dual phase clocking) 요건으로 인해, 메모리 셀(48)마다 단지 하나의 데이타 비트만이 직렬 스캔 기능과 연관될 수 있다.
이 대안적인 메모리 셀 구성에서, 부 래치(76)는 연관된 푸시, 팝, 프로그램, 기록 및 리세트 인에이블 신호에 따라 부 래치(76)의 입력(73')에 선택적으로 접속되는 부 푸시, 팝, 프로그램, 기록, 리세트 입력을 포함한다. 푸시/팝 인에이블 신호(도시되지 않움)가 각각 인접한 전송 셀에 실질적으로 존재하고 있음에 유의해야 한다. 부 래치(76)의 출력(75')은 공통의 판독, 푸시/팝 인에이블 출력 신호 각각에 따라 부 판독(secondary read), 푸시 및 팝 출력을 마찬가지로 구동시킨다.
따라서, 대안적으로 구성된 메모리 셀(48')은 직렬 스캔 동작 동안 전술한 바와 같이 동작하나, 다른 메모리 기능에 부가적인 저장 밀도를 제공한다.
전송셀
도 2a 및 2b 를 참조하여 이하 기술되는 바와 같이, 전송 셀(50)은 메모리 셀의 각 열의 수직으로 위로, 또는 아래로 데이타를 쉬프트한다. 도 5 를 참조하면, 전송 셀(50)은 스트롱 사이드 출력(96) 및 위크 사이드 입력(94)을 갖는 전송 래치(92)를 포함한다. 위크 사이드 입력(94)이 스트롱 사이드 출력 소스, 예를 들면, 소정의 메모리 셀(48)(도 3)의 주 래치(74)의 출력(75)으로부터 데이타를 수신하는 경우, 전송 래치(92)는 그 위크 사이드 입력(94)에서 수신된 데이타에 따라 그 스트롱 사이드 출력(96)을 갱신한다. 전송 래치와 결합하는 MOSFET(98 및 100)는 2개의 수직으로 인접한 메모리 셀간의 상방향 데이타 쉬프트를 가능케한다. MOSFET(98)는 전송 래치(92)의 입력(94) 과 푸시 입력 노드(97)간에 배치된 그의 채널을 갖는다. MOSFET(98)의 게이트는 전송 래치(92)의 위크 사이드 입력(94)에 푸시 입력(97)을 선택적으로 접속시키기 위한 제 1 위상 푸시 클럭(PUSHCLK1)에 의해 구동된다. 따라서, MOSFET(98)가 제 1 위상 푸시 클럭(PUSHCLK1)따라 인에이블되는 경우, 메모리 셀(48), 예를 들면, 메모리 셀(481.1)의 푸시 출력에 의해 제공된 데이타는 전송 래치(92)에 전송된다. 제 2 단계에서, 제 2 위상 푸시 클럭(PUSHCLK2)은 전송 래치(92)의 스트롱 사이드 출력(96)으로부터의 데이타를 동일한 열내의 연관된 인접한 메모리 셀, 예를 들면, 메모리 셀(481.1)의 푸시 입력을 구동시키는 푸시 출력(PUSHOUT)(99)에 전달하도록 MOSFET(100)를 인에이블시킨다.
유사한 방식으로, MOSFET(102 및 104)는 각각 제 1 및 제 2 위상 팝 클럭(POPCLK1 및 POPCLK2)에 의해 구동되는 경우 한 메모리 셀로부터 수직으로 인접한 메모리 셀로 하방향으로 데이타의 전송을 가능케한다. MOSFET(102)는 전송 래치(92)의 위크 사이드 입력(94)과, 동일한 열의 수직으로 인접한 메모리 셀의 팝 출력에 접속되는 팝 입력 노드(101) 사이에 그 채널이 배치된다. MOSFET(102)의 게이트 전송 래치(92)의 입력(94)에 노드(101)를 선택적으로 접속시키기 위한 제 1 위상 팝 클럭(POPCLK1)에 의해 구동되어 수직으로 인접한 메모리 셀로부터 래치(92)로의 팝 데이타의 전송을 가능케 한다. MOSFET(104)는 팝 출력 노드(103)에 전송 래치(92)의 스트롱 사이드 출력(96)을 선택적으로 접속시키기 위한 제 2 위상 팝 클럭(POPCLK2)에 의해 구동되는 그 게이트를 가지며, 전송 래치(92)로부터 수직으로 인접한 메모리 셀로의 데이타 전달을 가능케 한다. 예를 들면, 전송 셀(501.1)(도 2b)은 제 1 위상 팝 클럭이 그의 연관된 MOSFET(102)를 인에이블시키는 경우, 메모리 셀(482.1)(도시되지 않음)의 팝 출력으로부터 데이타를 수신한다. 전송 셀(501.1)은 제 2 위상 팝 클럭에 따라 그의 연관된 MOSFET(104)를 인에이블시키므로써 메모리 셀(482.1)의 팝 입력에 상기 데이타를 순차적으로 전송한다. 푸시 클럭이든 팝 클럭이든 어느것도 단정되지 않는 경우, 전송 셀의 MOSFET 장치의 각각은 개방 회로, 고 임피던스, 3상 출력 상태를 제공한다. 이하 언급되는 바와같이, 본 발명의 특정 실시예에서, 제각기 메모리 서브어레이내에서 수직적으로 데이타 쉬프트가 행해지지 않음에 따라, 전송 셀(50)은 FPMA(10)내에 포함되지 않는다.
메모리 서브어레이(12)의 각종 구성요소를 개시하였으며, 본 개시의 다음 부분은 FPMA(10)의 각종 메모리 서브어레이로부터의 경로배정(routing) 데이타 및 FPMA(10)의 각종 메모리 서브어레이로의 경로배정 데이타와 연관된 다른 프로그래머블 자원을 개시한다.
비트 라인 경로배정 매트릭스
도 1a-1c 및 도 6a-6e 를 참조하면, FPMA(10)의 각각의 비트 라인 경로배정 매트릭스(14)는 부 I/O 버스(38)에 데이타를 전달하기 위한 각각의 비트 라인 구조(30, 32, 34, 36)의 특정 데이타 라인을 선택한다. 비트 라인 경로배정 매트릭스(14)는 판독 비트 라인 스위칭 매트릭스 부분(106)(도 6a), 기록 비트 라인 스위칭 매트릭스 부분(116)(도 6b), 푸시 스위칭 매트릭스 부분(126)(도 6c), 팝 스위칭 매트릭스 부분(136)(도 6d), 및 프로그래밍 비트 라인 스위칭 매트릭스 부분(146)을 포함한다. 이들 스위칭 매트릭스 부분의 각각은 연관된 메모리 서브어레이 각각의 기록, 판독, 푸시, 팝 및 프로그래밍 데이타 라인 구소(30, 32, 34, 및 36)의 데이타를 부 I/O 버스(38)에 또는 수직으로 인접한 메모리 서브어레이의 대응하는 데이타 라인 구조에 경로배정한다.
도 6a 에서, 판독 비트 라인 스위칭 매트릭스 부분(106)은 N개의 스위칭 매트릭스 소자(1141-114N)를 포함하는데, 여기서 N 은 메모리 서브어레이(12)와 연관된 데이타 워드의 폭의 비트 수이다.
스위칭 매트릭스 소자(114)는 대응하는 I/O 경로배정 매트릭스(16)와 연관된 판독 데이타를 전달하도록 연관된 판독 비트 라인 상호접속선(1101-110N)(예를 들면, 도 1b 를 참조하여 I/O 경로배정 매트릭스(16Z+1)에 판독 라인(40)에 대한 상호 접속을 제공함)과 연관된 판독 비트 라인 계층 구조(1081-108N)의 특정 계층 레벨을 접속한다. 또한, 각 스위칭 매트릭스 소자(114)는 연관된 인접한 메모리 서브어레이의 대응하는 제 1 계층 판독 비트 라인(1121-112N)에 그의 연관된 판독 비트 라인 계층 구조(108)의 제 1 계층 판독 비트 라인(H1)을 선택적으로 접속하도록 프로그램가능하다.
도 6b 에 도시된 바와 같이, 기록 비트 라인 스위칭 매트릭스 부분(116)은 마찬가지로 연관된 I/O 경로배정 매트릭스(16)를 통해 부 I/O 버스(38)로부터의 데이타를 연관된 기록 비트 라인 계층 구조(1181-118N)의 선택 라인에 선택적으로 경로배정하도록 기록 비트 라인 스위칭 소자(1241-124N)를 갖는다. 기록 비트 라인 스위칭 소자(1241-124N)는 상호접속선(1201-120N)(예를 들면, 도 1b 를 참조하여 I/O 경로배정 매트릭스(16Z+1)로부터의 기록 라인(42)을 상호접속)을 선택적으로 접속하여 연관된 기록 비트 라인 계층 구조(1181-118N)의 계층 기록 비트 라인을 선택한다. 또한, 이와 수직으로 인접한 메모리 서브어레이(12)의 대응하는 제 1 계층 기록 비트 라인(1221-122N)에 그의 연관된 메모리 서브어레이(12)에 근접하는 기록 비트 라인 계층 구조(118)의 제 1 계층 기록 비트 라인을 선택적으로 상호접속한다.
도 6c 를 참조하면, 푸시 스위칭 매트릭스 부분(126)은 I/O 경로배정 매트릭스(16)를 통해 부 I/O 버스(38)로부터 소정의 메모리 서브어레이(12)와 연관된 스택으로 데이타를 전달하도록 연관된 상호접속선(1301-130N)(즉, 도 1b 를 참조하여 푸시 라인(44)을 상호접속함)에 소정의 메모리 서브어레이(12)의 푸시 데이타 라인을 선택적으로 상호접속하는 N개의 푸시 스위칭 매트릭스 소자(1341-134N)를 갖는다. 푸시 스위칭 매트릭스 소자(134)는 푸시 입력(1281-128N)에 푸시 출력(1321-132N)을 상호접속하도록 대안적으로 프로그램가능하여, 수직으로 인접한 메모리 서브어레이로부터 수신된 바와 같이 소정의 메모리 서브어레이에 푸시 데이타의 전달을 가능케 한다. 따라서, 각각의 메모리 서브어레이(12)는 I/O 경로배정 매트릭스(16) 및 상호접속선(130)을 통해 부 I/O 버스(38)로부터, 또는 연관된 상호접속선(132)을 통해 수직으로 인접한 메모리 서브어레이로부터 푸시 데이타를 선택적으로 수신할 수도 있다.
도 6d 의 팝 스위칭 매트릭스 부분(136)은 푸시 스위칭 매트릭스 부분(126)과 유사하나, 연관된 메모리 서브어레이(12)에 데이타를 푸시하는 것과는 대조적으로, 데이타를 팝 오프하도록 역 방식으로 동작한다. 팝 출력(1401-140N)은 연관된 I/O 경로배정 매트릭스(16)를 통해 (도 1b 를 참조하여 대응하는 상호접속 팝 라인(46)을 따라서) 부 I/O 버스(38)에 팝 데이타의 전달을 가능케 한다. 부 팝 출력(1421-142N)은 수직으로 인접한 메모리 서브어레이의 연관된 팝 입력에 대해 접속을 가능케 한다. 팝 입력(1381-138N)은 스택에서 팝 오프된 바와 같은 데이타를 수신하도록 연관된 메모리 서브어레이의 팝 출력에 접속된다. 각각의 스위칭 매트릭스 소자(144)는 그의 연관된 구성 데이타에 따라 동작하여 부 I/O 버스(38)에 팝 데이타를 전송하기 위한 팝 출력(140) 또는 부 팝 출력(142)과 연관된 팝 입력(138)을 선택적으로 접속한다.
도 6e 를 참조하면, 프로그래밍 비트 라인 스위칭 매트릭스 부분(146)은 주로 선택적 상호접속선(1521-152N), 또는 단순히 한 바람직한 실시예에서, 한 메모리 서브어레이의 프로그래밍 비트 라인(1501-150N) 과 인접한 메모리 서브어레이의 각각의 프로그래밍 비트 라인(1481-148N) 사이의 하드와이어드 접속선(hardwired connections)을 포함한다. 대안적으로, 수직적 스택의 제 1 비트 라인 경로배정 매트릭스(141)에 대해, 프로그래밍 비트 라인 스위칭 매트릭스 부분(146)은 상태 머신 액세스 포트(24)의 프로그래밍 비트 라인과 메모리 서브어레이(121)사이의 선택적상호접속을 제공한다. 매트릭스 부분(146)의 입력(1501-150N)은 인접한 메모리 서브어레이 서브어레이로부터, 또는 대안적으로 상태 머신 액세스 포트(24)로부터 데이타를 수신하도록 접속된다. 비트 라인 경로배정 매트릭스(14)의 출력(1481-148N)은 그의 연관된 메모리 서브어레이(12)에 데이타를 전송하도록 프로그래밍 비트 라인 구조(36)(도 1b)의 각각의 라인에 접속된다. 선택적 상호접속선(1521-152N)은 연관된 구성 데이타에 따라 입력(150) 및 연관된 출력(158)사이에 선택적 접속을 제공한다. 대안적으로, 이들 선택적 상호접속선은 단순히 하드와이어드 상호접속선이다.
비트 라인 경로배정 매트릭스(14)를 개괄적으로 특징화하였으며, 다음 부분에서는 비트 라인 경로배정 매트릭스의 각종 스위칭 매트릭스 소자를 보다 자세히 기술한다.
판독 비트 라인 스위칭 소자
도 7 을 참조하면, 판독 비트 라인 스위칭 매트릭스 소자(114)는 메모리 서브어레이의 메모리 셀의 소정의 열에 대한 연관된 판독 비트 라인 계층 구조(108)의 각각의 계층 판독 비트 라인(RBLH1, RBLH2...RBLHX)에 접속된 복수의 입력을 갖는다. 스위칭 매트릭스(114)는 부 I/O 버스에 전송되는 데이타를 수신하도록 특정 계층적 비트 라인을 선택한다. 메모리 셀의 소정의 열에 대한 판독 비트 라인 계층 구조(108)는 제 1 계층 판독 비트 라인(RBLH1), 제 2 계층 판독 비트 라인(RBLH2), 및 전역적 계층 판독 비트 라인(RBLHX)에 이르는 부가적인 계층 라인들을 포함한다. 통상적으로, 제 1 계층 판독 비트 라인(RBLH1)은 단일 메모리 서브어레이(12)의 메모리 셀의 열과 연관된다. 선택적 접속기(154), 바람직하게 MOSFET는 수직으로 인접한 메모리 서브어레이의 대응하는 제 1 계층 판독 비트 라인에 접속되는 출력(112)에 한 메모리 서브어레이의 제 1 계층 판독 비트 라인(RBLH1)을 상호접속하도록 선택적으로 프로그램가능하다. MOSFET(154)는 구성 데이타(156)에 따라 구동되는 게이트를 갖는다. 선택적 상호접속소자(158), 예를 들면, 멀티플렉서는 그의 구성 데이타(160)에 따라, 연관된 I/O 경로배정 매트릭스(16) 및 부 I/O 버스(38)에 판독 데이타를 전달하는 출력(110)에 그 입력중 하나를 선택적으로 접속한다. 멀티플렉서(158)의 입력은 수직으로 인접한 메모리 서브어레이의 연관된 제 1 계층 판독 비트 라인(112)을 표시하는 판독 비트 라인 계층 구소(108)의 각 계층적 비트 라인에 접속된다. 또한, 본 개시의 도면에서, 교차형을 가리키는 곡선(예를 들면, 156 및 160)은 그들의 구성가능한 장치에 연관된 드라이브 신호를 제공하는 구성 데이타를 표시한다.
판독 비트 라인 구조의 구성을 보조하기 위해, 양방향 멀티플렉서(162 및 164)는 각 계층 판독 비트 라인들간의 선택적인 양방항 상호접속을 제공한다. 예를 들면, 상부 계층 판독 비트 라인(RBLH1, RBLHX)은 그 구성 데이타에 따라 멀티플렉서(162)를 통해 소정의 메모리 서브어레이(12)의 제 1 계층 판독 비트 라인(RBLH1)에, 또는 그 구성 데이타에 따라 멀티플렉서(162)를 통해 수직으로 인접한 메모리 서브어레이의 제 1 계층 판독 비트 라인(112)에 선택적으로 접속될 수도 있다. 상기 멀티플렉서의 각각은 제각기 입력 및 출력이 고 임피던스의 개방 회로 상태로 놓이는, 입력을 선택하지 않는 구성을 또한 포함하고 있음을 이해할 수 있다.
기록 비트 라인 스위칭 소자
도 8 을 참조하면, 판독 비트 라인 스위칭 매트릭스 소자(114)와 유사한 기록 비트 라인 스위칭 매트릭스 소자(124)는, 연관된 I/O 경로배정 매트릭스(16)를 통해 부 I/O 버스(18)로부터 수신된 기록 데이타를 경로배정하도록, 메모리 서브어레이의 메모리 셀의 소정의 열의 기록 비트 라인 계층 구조(118) 및 상호접속 기록라인(42)(도 1b)의 연관된 상호접속선(120)간의 선택적인 상호접속을 제공한다. 기록 비트 라인 계층 구조(118)는 단일 메모리 서브어레이(12)내에서 메모리 셀의 소정의 열과 연관되는 제 1 계층 기록 비트 라인(WBLH1)을 포함한다. 제 1 계층 기록 비트 라인(WBLH1)은 선택적 접속기(166)마다 수직으로 인접한 메모리 서브어레이의 대응하는 제 1 계층 기록 비트 라인(122)에 접속될 수 있다.
입력(120)은 연관된 I/O 경로배정 매트릭스(16)를 통해 부 I/O 버스로부터 기록 데이타를 수신한다. 선택적 접속기(168), 예를 들면, N× 1 드라이버(1-of-N driver)는 그의 출력중 하나에 선택적으로 상기 기록 데이타를 전송하는데, 상기 출력은 수직으로 인접한 메모리 서브어레이의 제 1 계층 기록 비트 라인(122)을 표시하는 기록 비트 라인 계층 구조(118)의 각각의 기록 비트 라인에 접속된다. 선택적 양방향 멀티플렉서(170 및 172)는 기록 비트 라인의 각 계층들간의 선택적인 양방향 상호접속을 제공한다. 예를 들면, 제 1 계층 기록 비트 라인(WBLH1및 122)은 각각의 멀티플렉서(170 및 172)를 통해 다른 높은 계층 기록 비트 라인(WBLH2WBLHx)을 구동시키도록 선택적으로 접속될 수도 있다. 이들 멀티플렉서의 각각은 그 연관된 구성 데이타에 따라 그 각각의 접속 구성을 제공한다. 판독 비트 라인 스위칭 매트릭스 소자의 멀티플렉서와 더불어, 상기 N× 1 드라이버 및 멀티플레서는 비선택 구성 상태를 포함한다.
데이타 비트 라인 계층 구조에 관해, 전체 FPMA 의 메모리 셀의 소정의 열의 계층 구조인 제 1 계층적 비트 라인은 각 메모리 서브어레이 경계에서 분할된다. 높은 계층의 비트 라인(예를 들면, H2 및 HX)은 복수의 서브어레이에 걸쳐진다. 예를 들면, 제 2 계층 기록 비트 라인(WBLH2)은 바람직하게 2개의 메모리 서브어레이(1121, 및 1122)에 서비스를 제공한다. MOSFET(166)에 필적하는 선택적 접속기(도시되지 않음)는 유사하게 처음 2개의 메모리 서브어레이(예를 들면, 121및 122)와 연관된 제 2 계층 기록 비트 라인(WBLH2)과, 2개의 순차적 메모리 서브어레이(예를 들면, 123및 124)와 연관된 대응하는 제 2 계층 기록 비트 라인을 선택적으로 상호접속하도록 제공될 수도 있다. 마지막으로, 최고(highest) 계층 기록 비트 라인(예를 들면, WBLHx)은 바람직하게는 전역적 비트 라인으로서 모든 메모리 서브어레이에 서비스를 제공한다. 이러한 계층적 비트 라인 구조(108 및 118)는 필드 프로그래머블 메모리 어레이(10)의 메모리 서브어레이의 1 내지 N 열의 각각에 대해 제공되고, 판독 비트 라인에 대한 계층 구조는 기록 비트 라인과 마찬가지로 FPMA 를 통해 확장된다. 대안적인 계층 구조는 이하에서 기술된다.
푸시/팝 스위칭 매트릭스 소자
도 6c 및 도 9 를 참조하면, 푸시 스위칭 매트릭스 소자(134)는 각각 2개의 선택적 접속기, 3상 버퍼(174) 및 MOSFET(176)를 포함한다. 3상 버퍼(174)는 입력(130) 및 출력(128)사이에 배치된다. 입력(130)은 연관된 I/O 경로배정 매트릭스(16)를 통해 부 I/O 버스(38)로부터 푸시 데이타를 수신하도록 상호접속 푸시 라인(44)에 접속된다. 3상 버퍼(174)는 그의 구성 데이타에 따라, 연관된 메모리 서브어레이의 열의 푸시 입력을 구동시키는 출력(128)에 이러한 수신된 푸시 데이타를 선택적으로 전달한다. MOSFET(176)는 소정의 열내에서, 수직으로 인접한 메모리 서브어레이의 푸시 출력으로부터 수신된 연관된 메모리 서브어레이의 푸시 입력에 푸시 데이타를 채널링(channeling)하도록 출력(128) 및 입력(132)을 선택적으로 접속한다.
도 6d 및 도 10 에 도시된 바와 같이, 팝 데이타 스위칭 매트릭스 소자(144)는 데이타가 반대 방향으로 흐르는 것을 제외하고는, 도 9 의 푸시 스위칭 매트릭스 소자(134)와 유사하다. 팝 입력(138)은 그 연관된 메모리 서브어레이의 팝 출력으로부터 데이타를 수신한다. 이 수신된 데이타는 수직으로 인접한 메모리 서브메모리의 대응하는 팝 입력에 선택적으로 접속되거나, 또는 대안직으로 부 I/O 버스(38)(도 1b)에 선택적으로 구동된 출력(140)이 될 수도 있다. 3상 버퍼(178)는 연관된 I/O경로배정 매트릭스(16)와 연관된 부 I/O 버스(38)에 수신된 데이타를 전달하도록, 입력(138)과, 상호접속 팝 라인(46)의 선택 라인에 접속되는 출력(140)을 선택적으로 접속한다. MOSFET(180)는 소정의 열내에서, 연관된 메모리 서브어레이의 팝 출력으로부터, 수직으로 인접한 서브어레이의 팝 입력으로 수신된 바와 같은 수신된 데이타를 전달하도록 그의 연관된 구성 데이타에 따라, 입력(138) 및 출력(142)사이의 선택적 접속을 제공한다.
푸시/팝 수직적 데이타 쉬프트가 FPMA(10)내에서 행해지지 않는 본 발명의 실시예에서, 비트 라인 경로배정 매트릭스(14)의 푸시 스위칭 매트릭스 부분(126) 및 팝 스위칭 매트릭스 부분(136)은 제공되지 않는다.
프로그래밍 스위칭 매트릭스 상호접속선
바람직하게, 도 6e 의 선택적 상호접속선(152)은 대안적으로 인접한 메모리 서브어레이의 각각의 프로그래밍 비트 라인사이의 단순한 접속 "와이어"가 될 수도 있다. FPMA 가 필드 프로그래머블 게이트 어레이(FPGA)와 함께 채용되는 본 발명의 특정 애플리케이션에서, 프로그래밍 비트 라인은 FPGA 의 구성 로직과 연관된 상태 머신의 어드레싱 능력과 부응하는 FPMA 의 메모리 공간을 확장하도록 상호접속된다. 즉, 이들 프로그래밍(초기화) 비트 라인의 상호접속은 각각 메모리 서브어레이사이에 제공되어 FPGA 의 상태 머신의 어드레스가능한 공간내에서 어드레스 될 수 있는 FPMA 의 영역에 대해 프로그래밍 데이타 액세스를 가능케 한다. FPMA 외부에, 프로그래밍 비트 라인은 구성 메모리, 예를 들면 FPGA 의 프로그래머블 자원을 구성하도록 FPGA 의 SLAM 에 구성 데이타를 전송하는 것과 연관된다. 따라서, 프로그래밍 구성 동안 FPGA 의 상태 머신은 연관된 상호접속(152)에 따라 인에이블되는 바와 같은, 상태 머신 액세스 포트(24) 및 연관된 프로그래밍 비트 라인을 통해 FPMA 의 메모리 깊이를 엑세스할 수 있다.
제각기 I/O 경로배정 매트릭스에 서브어레이 비트 라인 구조의 비트 라인의 선택적 접속을 기술하였으므로, 본 설명의 다음 부분은 I/O 경로배정 매트릭스가 어떻게 부 I/O 버스(38)에 선택된 비트 라인을 선택적으로 상호접속하는지를 기술한다.
I/O 경로배정 매트릭스
도 1a 및 도 1b 에서 도시된 바와 같이, I/O 경로배정 매트릭스(161-16Z+1)는 부 I/O 버스(38)의 선택 라인에 각각 연관된 비트 라인 경로배정 매트릭스(141-14Z+1)에 의해 선택된 바와 같이 신호를 경로배정하는 상호접속 라인(40, 42, 44, 46)에 상호접속한다. 도 11 을 참조하면, 각 I/O 경로배정 매트릭스(16)는부 I/O 버스(38) 내지 연관된 비트 라인 경로배정 매트릭스로/로부터 신호를 전달하는 상호접속 라인(40, 42, 44, 46)사이의 교차형 접속을 제공하는 기록 스위치(182) 및 판독 스위치(184)를 갖는다. 기록 데이타는 기록 라인 상호접속선(42)에 의해 I/O 경로배정 매트릭스(16)로 부터 그의 연관된 비트 라인 경로배정 매트릭스(14)에 전송된다. 마찬가지로, 판독 데이타 상호접속선(40)은 선택 메모리 서브어레이로부터 판독된 데이타를 I/O 경로배정 매트릭스(16)로 인터페이스한다. 데이타 쉬프트가 각각 메모리 서브어레이내에 수직으로 행해지는 본 발명의 실시예에 대해, 푸시 데이타는 푸시 상호접속선(44) 및 그의 연관된 비트 라인 경로배정 매트릭스(14)를 통해 I/O 경로배정 매트릭스(16)로부터 연관된 메모리 서브어레이로 전송된다. 팝 상호접속선(46)에 의해 유사한 팝 데이타 인터페이스가 행해진다.
I/O 경로배정 매트릭스의 기록 스위치(182)는 기능적 기록 및 푸시 동작 동안 부 I/O 버스로부터의 데이타를 연관된 비트 라인 경로배정 매트릭스로 전송하는 데 사용된다. 도 11 에는, 부 I/O 버스(38)의 각각의 계층직 데이타 라인 구조(1861, 1862)로부터 기록 라인 상호접속선(42)의 각각의 기록 데이타 라인에 데이타를 접속하는 단지 2개의 기록 I/O 경로배정 매트릭스 스위치(1821, 1822)가 도시되어 있다. 그러나, 이러한 N개의 기록 I/O 경로배정 매트릭스 스위치(182)가 채용되어 기록 라인 상호접속선(42)의 기록 라인중 N개의 라인의 각각이 부 I/O 버스(38)의 대응하는 계층적 데이타 라인 구조(186)에 선택적으로 접속될 수 있음은 물론이다. 마찬가지로, 계층적 데이타 라인 구조(186Q-1)로부터 푸시 상호접속선(44)의 선택 라인으로 데이타를 전송하는 단지 하나의 기록 I/O 경로배정 매트릭스 스위치(182Q-1)가 도시되어 있지만, 이러한 N개의 기록 I/O 경로배정 매트릭스 스위치(182)는 부 I/O 버스(38)의 연관된 N개의 계층적 데이타 라인 구조(186)에 상호접속선(44)의 N개의 푸시 라인의 각각을 접속하기 위해 사용되고 있음을 이해할 수 있다. 부 I/O 버스(38)에 판독 상호접속선(40) 및 팝 상호접속선(46)의 각각의 신호 라인을 상호접속하도록 유사한 복수의 스위치가 제공된다.
부 I/O 버스(38)는 Q개의 계층적 데이타 라인 구조(1861, 1862, ...186Q)를 갖는다. 각각의 계층적 데이타 라인 구조(186)는 도 12 에 도시된 바와 같이 복수의 계층 신호 라인(H11, H12, H2...HX)을 포함한다. 제 1 계층 데이타 라인 세그먼트(예를 들면, H10, H11)는 각각 메모리 서브어레이를 따라 확장되고 각 메모리 서브어레이마다 경계를 갖는다. 패스 게이트(188), 바람직하게 MOSFET 는 그 연관된 구성 데이타에 따라, 인접한 제 1 계층 데이타 라인들(H10및 H11)사이의 선택적 접속을 제공한다. 소정의 계층 구조(186)의 제 2 계층 라인(112)은 복수의 연관된 제 1 계층 라인(H1)을 따라 확장된다. 계층 구조(186)의 최고 계층 I/O 라인(HX)은 그 연관된 모든 낮은 계층 I/O 라인을 커버하는 전역적 I/O 라인 및 이에 따른 FPMA 의 연관된 모든 메모리 서브어레이를 제공한다. I/O 경로배정 매트릭스(16)의 각각의 기록 스위치(182)는 특정 계층 I/O 데이타 라인 구조(186)에, 연관된 상호접속 네트워크(예를 들면, 40, 44)의 R개의 신호 라인중 하나를 선택적으로 접속하는 1 내지 R 의 멀티플렉서(1901, 1902...190R)를 포함한다. R 은 1 과 사이의 값에서 취할 수 있고, 여기서 N 은 연관된 상호접속 네트워크의 라인 수이고, 연관된 메모리 서브어레이의 데이타 폭(N)에 대응한다. 기록 스위치(182)의 멀티플렉서(190)는 그의 연관된 상호접속 네트워크(예를 들면, 40 또는 44)의 선택 신호 라인에, 연관된 계층 구조(186)의 선택 계층 I/O 라인을 선택적으로 접속한다. 각각의 멀티플렉서(190)는 그 연관된 구성 데이타에 따라 선택적 상호접속을 제공하되, 비선택을 포함할 수도 있다.
판독 I/O 경로배정 매트릭스 스위치(184)(도 13)는 선택적 멀티플렉서(190)가 각각 연관된 판독 및 팝 상호접속선(40 및 46)으로부터 부 I/O 버스(38)로의 데이타를 선택적으로 구동시키도록 선택적 드라이버(192)로 대체되는 것을 제외하고는 기록 I/O 경로배정 매트릭스 스위치(182)와 유사한 토폴로지를 갖는다. 각각의 선택적 드라이버(1921, 1922...19R)는 부 I/O 버스(38)의 소정의 계층 구조(186)의 각 계층 라인에 접속된 복수의 출력을 갖는다. 선택적 드라이버(192)는 연관된 구성 데이타에 따라 이러한 선택적 상호접속을 제공한다. 한 구성 상태에서, 선택적 드라이버(192)는 비출력을 구동시키고, 여기서 모든 출력은 개방의, 3상 상태를 제공한다. 전형적으로, 판독 스위치(184)에 따라 R개의 선택적 드라이버(192)중 단지 하나가 그의 연관된 계층 구조(186)에 접속을 제공한다. 기록 스위치의 MOSFET(188)에 관해 기술되는 바와 같은 유사한 MOSFET(188')는, 그 연관된 구성 데이타에 따라 제 1 계층 신호 라인(H11및 H10)사이의 선택적 접속을 제공한다.
메모리 서브어레이내에서 수직적 데이타 쉬프트가 요구되지 않는 본 발명의 한 실시예에서, I/O 경로배정 매트릭스(16)의 팝 및 푸시 자원은 포함되지 않는다.
I/O 블럭
도 1a, 1b 및 14 를 참조하면, 각각의 I/O 블럭(18)은 주 I/O 버스(26) 및 부 I/O 버스(38)사이의 선택적 상호접속을 제공한다. 또, 부 I/O 버스(38)는 Q개의 각각의 계층 I/O데이타 라인 구조(1861, 1862...186Q)를 포함한다. 소정의 I/O블럭(18)의 각 I/O 셀(1941-194P)은 주 I/O 버스(26)의 특정 데이타 라인 및 부 I/O버스(38)의 선택 I/O 라인사이의 기록 상호접속선(196)을 포함한다. 마찬가지로, 각 I/O 셀(194)은 주 I/O 버스(26)의 특정 라인 및 부 I/O 버스(38)의 다른 선택 I/O 라인사이의 판독 상호접속선(198)을 포함한다.
도 15 에 도시된 바와 같이, 각 I/O 셀(194)은 판독 상호접속선(198)을 통해 부 I/O 버스(38)로부터 주 I/O 버스(26)로 데이타를 전달하는 판독 포트(200) 및 기록 상호접속선(196)을 통해 주 I/O 버스(26)으로부터 부 I/O 버스(38)로 데이타를 반대 방향으로 전달하는 기록 포트(230)를 갖는다. 가장 간단한 실시예에서, 판독 포트(200)는 멀티플렉서(204) 및 선택적 드라이버(208)를 포함하고, 여기서 선택적 드라이버(208)의 입력(202)은 멀티플렉서(204)의 출력(206)에 직접 접속된다. 멀티플렉서(204)는 부 I/O 버스(38)의 각 I/O 신호 라인에 접속된 복수의 입력을 갖는다. 통상적으로, 이들 I/O 신호 라인은 부 I/O 버스(38)의 계층 구조(186)로 되어 있다. 따라서, 멀티플렉서(204)에 대한 입력은 각각의 계층 구조(186)의 각 계층 신호 라인에 접속되고, 멀티플렉서(204)는 연관된 구성 데이타를 통해 그의 소정의 라인을 선택적으로 접속하도록 제어된다. 그 연관된 구성 데이타에 따라, 선택적 드라이버(208)는 그 입력(202)시에 수신된 데이타를 갖는 판독 상호접속선(198)중 하나를 선택적으로 구동시킨다. 대안적으로, 선택적 드라이버(208)는 출력중 아무것도 구동시키지 않도록 프로그램될 수 있고, 여기서 출력은 개방의, 3상 상태로 유지된다.
판독 포트(200)의 대안적인 실시예에서, 선택사양적인 래치/극성 반전 회로(210)는 멀티플렉서(204)의 출력(206) 및 선택적 드라이버(208)의 입력(202)사이에 배치된다. 래치/극성 반전 회로(210)는 선택적인 극성 반전외에도, 판독 데이타의 래칭을 인에이블시킨다. 멀티플렉서(204)의 출력(206)은 (226 를 통해) 플립/플롭(222), 인버터(228), 및 멀티플렉서(224)의 제 1 선택 입력의 데이타 입력에 접속된다. 멀티플렉서(224)는 그 제 2 및 제 3 선택 입력시에 각각 플립/플롭(222)의 정상 및 반전된 출력을 수신하고, 인버터(228)의 출력에 의해 구동된 제 4 선택 입력을 갖는다. 멀티플렉서(224)는 연관된 구성 데이타에 따라 선택적 드라이버(208)의 입력(202)에 그 선택 입력중 하나를 접속한다. 따라서, 멀티플렉서(224)의 구성은 판독 포트(200)가 래치 및/또는 극성 반전 기능을 제공하는지의 여부를 결정한다.
판독 포트(200)내에서 선택사양적 래치 능력을 지원함에 있어서, 플립/플롭(22)은 복수의 자원중 하나로부터 입력을 선택한다. 멀티플렉서(212)는 그의 연관된 프로그래밍 비트에 따라, 부 버스(38)의 2개의 I/O 라인중 하나로부터 클럭 입력을 선택적으로 상호접속한다. 멀티플렉서(212)의 출력은 멀티플렉서(214)의 두 입력, 즉 하나는 직접, 다른 하나는 인버터(216)를 통해 구동시킨다. 멀티플렉서(220)는 주 버스(26)의 2개의 라인중 하나로부터 판독 클럭을 선택적으로 수신한다. 그 프로그래밍 비트에 따라, 멀티플렉서(220)는 멀티플렉서(214)의 두 입력, 즉, 하나는 직접 그리고 인버터(218)를 통해 반전된 다른 하나를 구동시키도록 선택된 클럭 입력을 선택적으로 접속한다. 멀티플렉서(214)는 차레대로 그 연관된 구성 상태에 따라, 주 버스 또는 부 I/O 버스로부터 수신된 바와 같은 반전된 또는 비반전된 클럭 신호를 갖는 플립플롭(222)의 클럭 입력을 선택적으로 구동시킨다. 따라서, 동작시에, 판독 포트(200)는 부 버스(38)의 선택 라인으로부터 수신된 바와 같은 판독 데이타를 갖는 주 I/O 버스(26)의 선택 라인을 구동시킨다.
그 대안적인 측면에서, 판독 포트(200)는 그를 통과하는 데이타를 반전시키고/시키거나 선택적으로 반전된/비반전된 클럭에 따라 주 버스 또는 부 버스로부터의 데이타를 래치한다.
기록 포트(230)는 데이타가 주 I/O 버스(26)의 선택 라인으로부터 부 버스(38)로 반대 방향으로 이동하는 것을 제외하고, 판독 포트(200)와 유사하다. 멀티플렉서(234)는 연관된 기록 상호접속선(196)을 통해 주 I/O 버스(26)의 선택 라인에 접속된 복수의 입력을 갖는다. 본 실시예에의 판독 포트(200)의 한 측면에서, 멀티플렉서(234)는 사전결정된 바이어스 상태의, 예를 들면 그라운드 및/또는 Vdd에 하드 와이어된 부가적인 입력을 갖는다. 멀티플렉서(234)는 그 연관된 구성 데이타에 따라, 그의 출력(236)에 이들 각 입력중 하나를 선택적으로 접속한다. 출력(236)은 제 2 멀티플렉서(242)의 2개의 개별적인 입력, 즉, 하나는 직접 그리고 인버터(240)를 통해 다른 하나를 구동시킨다. 멀티플렉서(242)는 그 연관된 구성에 따라, 기록 데이타의 선택적 극성 반전을 제공하고, 선택적으로 반전된/비반전된 기록 데이타를 갖는 선택적 드라이버(232)의 입력(238)을 구동시킨다. 선택적 드라이버(232)는 부 I/O 버스(38)의 연관된 기록 계층 구조(186)(도 14)의 각각의 계층 신호 라인에 접속된 복수의 출력을 갖는다. 선택적 드라이버(232)는 그의 연관된 프로그래밍 비트에 따라, 그의 입력(238)시에 수신된 바와 같은 기록 데이타를 갖는 선택 계층 라인중 하나를 선택적으로 구동시킨다. 한 구성 상태에서, 선택적 드라이버(232)는 비출력을 선택하고, 이들을 개방의, 3상 상태에 배치시킨다.
도 14 를 참조하면, 동작시에, I/O 블럭(18)의 각 I/O 셀(1941, 1942...194P)은 부 I/O 버스(38)의 대응하는 기록 및 판독 비트 라인 계층 구조와 연관되고, 마찬가지로 주 I/O 버스(26)의 대응하는 기록 및 판독 경로배정 구소와 연관된다. 연관된 구성 데이타에 따라, I/O 셀은 부 I/O 버스의 연관된 비트 라인 계층 구조의 선택 신호 라인을 선택적으로 인터페이스하여 주 I/O 버스(26)의 데이타 라인 구조를 선택한다. I/O 셀의 수(P)는 서브어레이 워드의 비트 폭(N)의 수이상이다. 따라서, I/O 블럭(18)의 부가적인 I/O 셀은 각각의 서브어레이사이의 데이타의 경로배정을 보조하도록, 또는 클럭 재분배 또는 다른 데이타 관리 책무를 수행하도록 이용될 수 있다.
전체적으로, 도 1a 및 도 1b 를 참조하면, 각 I/O 블럭(18)은, 예를 들면 부 I/O 버스(38)의 연관된 기록 신호 라인에 주 I/O 버스(26)으로부터의 8개의 데이타 라인을 접속할 수도 있고, 주 I/O 버스(26)의 대응하는 신호 라인에 부 버스(38)로부터의 부가적인 8개의 판독 데이타 라인을 접속할 수도 있으며, 이에 따라 메모리 서브어레이(14)에 대해 주 I/O 버스에 각각 판독/기록 인터페이스를 제공한다. 각각의 메모리 서브어레이(14)가 (각각 비트 라인 경로배정 매트릭스(22) 및 I/O 경로배정 매트릭스(16)를 통해) 부 버스(38)의 연관된 I/O 데이타 라인 계층 구조(186)에 판독/기록 접속이 제공되고, 계층 구조의 제 1 계층 신호 라인 각각은 서로간에 분리되는 경우, 각각의 메모리 서브어레이는 부 버스(38)의 I/O 비트 라인계층 구조(186)의 연관된 제 1 계층 신호 라인을 통해 다른 메모리 서브어레이에 대해 병렬로 또는 개별적으로 인터페이스될 수도 있다. 각각의 I/O 블럭(18)이 부 버스(38)의 연관된 I/O 데이타 라인 구조의 제 1 계층 신호 라인 각각으로부터, 주 I/O 버스(26)의 독립적인 신호 라인으로, 판독/기록 상호접속선을 제공한다고 가정하면, 각 메모리 서브어레이의 판독/기록 데이타 인터페이스가 주 I/O 버스(26)에 서로에 대해 병렬로 배열되어, 와이드 RAM 기능 유닛으로서 FPMA(10)를 구성한다. 이하 언급되는 바와 같이, 복수의 와이드/디프 RAM 구성은 단일 FPMA 내에서 가능하다.
대안적인 일예에서. FPMA(10)는 디프 RAM 기능 유닛으로서 구성된다. 예를 들면, 단일 I/O 클럭은 주 버스(26)의 연관된 신호 라인에 부 버스(38)의 각 I/O 데이타 라인 계층 구조의 각각의 상부 계층 판독/기록 데이타 라인을 접속한다. 상부 계층 데이타 라인은 FPMA(10)의 모든 메모리 서브어레이(12)에 전역적 인터페이싱을 제공한다. 따라서, 각각의 메모리 서브어레이(12)는 부 I/O 버스(38)의 데이타 라인 계층 구조의 공통적인 전역적 신호 라인에 대해, 적절한 독립적인 어드레싱마다, 선택적으로 인터페이스된 (폭 N 의) 그들의 M개의 워드를 갖는다. 또, 이하 언급되는 바와 같이, 개시된 FPMA 의 구조는 복수의 와이드 및/또는 디프 RAM 구획을 동시에 지원한다.
주 I/O 버스(26)가 크게 변화하는 복수의 경로배정 신호 라인 및/또는 연관된 I/O 포트(도시되지 않음)로, 또는 연관된 I/O 포트(도시되지 않음)로부터 데이타를 전달하는 계층, 및/또는 공유 집적 회로내의 다른 회로를 포함한다. 예를 들면, FPMA(10)가 필드 프로그래머블 게이트 어레이(FPGA)와 함께 일체화되는 특정 애플리케이션에 있어서, 한 측면에서 FPMA(10)의 주 버스(26)는 FPGA(도시되지 않음)의 I/O 버스의 단순한 확장으로서 구현된다. 대안적인 측면에서, FPMA 의 주버스(26)는 그들간에 데이타를 단순히 전달하는 경계 인터페이스를 제공한다. 따라서, 이러한 애플리케이션에서, 주 I/O 버스(26)는 FPGA 의 I/O 경로배정 자원에 대해 교차형으로 멀티플렉스된다(도시되지 않음).
대안적인 데이타 인터페이싱 구성
이하 제공되는 개시에 있어서, 부 I/O 버스(38)의 프로그램가능한 계층 구조(186) 및 프로그램가능한 판독/기록 비트 라인 계층 구조(30, 32)는 주 I/O 버스(26) 및 FPMA(10) 메모리 서브어레이(12)의 메모리 셀의 연관된 열사이에 데이타를 전달하는 자유도 2 가 본질적으로 제공되었다. 본 설명의 다음 부분은 제 1 및 제 2 측면의 대안적인 데이타 경로배정 해결책을 기술하는데, 여기서 부 I/O 버스(38)와, 연관된 판독/기록 비트 라인 계층 구조(30, 32)가 서로간에 붕괴하여, FPMA 의 메모리 셀을 인터페이스하는 자유도 2중의 하나를 제거한다.
이하 기술되는 설명에서, 도 2a, 2b, 7 및 8 을 참조하면, 판독/기록 계층적 비트 라인 구조(108/118)는 연관된 하위 계층 신호 라인들사이의 선택적 상호접속을 제공하도록 각각 MOSFET(154/166)를 각각 포함하였고, 이들 하위 계층 라인은 서브어레이 경계사이에 세그먼트된다. 또한, 선택적 계층 상호접속 멀티플렉서(162, 164/170, 172)는 각각 계층 구조의 각 계층 라인사이에 선택적 양방향 상호접속을 제공한다. 선택적 드라이버(52) 및 멀티플렉서(54)(도 2b)는 각각 비트 라인 계층 구조(108/118)의 선택 라인 및 연관된 메모리 서브어레이의 대응하는 내부 비트 라인(56/58)사이의 제각기 기록 및 판독 상호접속을 제공하였다.
대안적인 비트 라인 계층 구조에서, 중간 계층 신호 라인은 예를 들면, 도 16 의 H2 로 오버래핑될 수도 있다. 또한, 하위 계층 세그먼트 및 연관된 계층 상호접속 멀티플렉서사이의 선택적 상호접속 MOSFET 가 제거된다. 도 16 을 참조하면, 4개의 메모리 서브어레이(121, 122, 123, 124)는 각각 메모리 서브어레이의 메모리 셀의 소정의 열에 데이타를 인더페이스하도록 각각 판독 및 기록 비트 라인 계층 구조(108', 118')와 연관된다. 판독 및 기록 비트 라인 계층 구조(108'/118')는 각각 연관된 메모리 서브어레이에 걸쳐지는 4개의 개별적인 제 1 계층 세그먼트(H1)를 포함한다. 제 2 계층 세그먼트(H2)는 3개의 연속적인 메모리 서브어레이에 걸쳐 있어, 각각(서로에 대해) 2개의 메모리 셀에 걸치는 오버랩 영역을 갖는다. 제 3 계층 신호(판독 및 기록)(H3)는 4개의 메모리 서브어레이에 걸치는 전역적 비트 라인이다.
이하 기술되는 바와 같이, 도 2 를 참조하면, 선택적 드라이버(52)는 그의 연관된/근접한 계층 구조(1081)의 개별적인 계층 신호 라인중 하나에, 그 내부 판독 비트 라인(561)의 데이타를 선택적으로 전달한다. 따라서, 도 16 을 참조하면, 선택적 드라이버(52)에 필요한 출력의 수는 4 이나, 다른 실시예에 대해 크거나 작을 수도 있다. 예를 들면, 메모리 서브어레이(122)는 그 연관된 메모리 서브어레이(122)로부터 판독된 데이타를 전송하도록 4개의 상이한 계층 세그먼트중 하나를 선택적으로 구동시킨다. 마찬가지로, 선택적 접속기(멀티플렉서)(541)는 연관된 메모리 서브어레이(121)에 데이타를 기록하도록 내부 기록 비트 라인(581)에 연관된/근접한 메모리 계층 구조(1181)의 4개의 계층 세그먼트중 하나를 선택적으로 접속한다.
도 16 의 비트 라인 계층 구조는 각각 3 레벨의 H1, H2, H3 계층을 포함한다. 메모리 서브어레이의 수가 증가함에 따라, 도 17 에 도시된 바와 같이, 계층 구조의 레벨이 마찬가지로 증가할 것이다. 도 17 에서, 8개의 메모리 서브어레이는 각각 연관된 판독 및 기록 비트 라인 계층(108' 및 118')과 인터페이스되어, 각각은 4 레벨의 계층(H1, H2, H3, H4)을 갖는다. 또, 제 2 계층(H2) 세그먼트는 서로 오버랩하고 오버랩 영역은 2개의 메모리 서브어레이를 걸친다. 부가적으로, 서브어레이 카운트 및 계층 신호 라인 카운트가 더 증가하는 경우, 부가적인 중간 계층 신호 라인의 오버래핑이 제공될 수 있다. 그러나, 대안적인 실시예에서, 모든 계층이 이러한 오버랩을 필요로 하는 것은 아니다.
도 18a 및 18b 는 판독 비트 라인 계층 구조(108') 및 예를 들면, 메모리 서브어레이(124)로부터 (도 15 에서 선택적 드라이버(208)를 통해) 주 I/O 데이타 버스(26)의 주 I/O 신호 라인으로 판독 데이타를 전달하는 연관된 데이타 경로의 보다 상세한 표시를 제공한다. 메모리 서브어레이(124)의 소정의 메모리 셀은 그 연관된 내부 판독 비트 라인(561)상에서 메모리 셀내에 저장된 데이타를 구동시키도록 연관된 어드레스 워드 라인(도시되지 않음)에 따라 인에이블된다. 각 계층 신호 경로는 그 연관된 I/O 블럭(184)의 I/O 셀(194)(도 14)의 판독 포트(200')에 (메모리 서브어레이(124)로부터 판독된)이러한 데이타를 전달하도록 이용가능하다. 제 1 계층 레벨(H1)에 대해, MOSFET(246)의 게이트가 연관된 제 1 계층 클럭(CLKH1)에 의해 인에이블되는 경우, 내부 판독 비트 라인(561)의 데이타는 인버터(244)를 통해 전송되고 MOSFET(246)를 통해 래치(248)에 클럭킹된다. 제 1 계층 클럭은 메모리 서브어레이를 판독하는 것과 연관된 판독 클럭에 따라 생성된다(이는 이러한 대안적 데이타 인터페이싱 구성의 다른 측면을 참조하여 보다 완전히 설명된다). 래치(248)의 데이타는 연관된 구성 데이타에 따라, 3상 인버터(256)를 통해 판독 포트(200')에 선택적으로 출력된다. 메모리 서브어레이(121)로부터 데이타 워드를 판독하는 경우, 워드의 각 비트와 연관된 각각의 3상 인버터(256)는 동일한 구성 데이타에 따라 제어된다. 마찬가지로, 제 1 계층 클럭(CLKh1)은 워드내의 다른 나머지 비트와 연관된 MOSFET(246)와 동일한 제 1 계층 선택적 접속기에 동시에 인가된다. 3상 인버터(256)가 인에이블되는 경우, 판독 데이타는 판독 비트 라인 계층 구조의 제 1 계층 신호 라인(H1)을 통해 판독 포트(200')에 전달된다.
제 2 및 제 3 계층적 비트 라인(H2 및 H3)은 각각 판독 포트(200')에 데이타를 전달하는 대안적인 데이타 경로를 제공한다. 인버터(250)는 내부 판독 비트라인(561)의 데이타를 수신하고, 연관된 MOSFET 스위치(252 및 254)에 각각 반전된 데이타를 전송한다. MOSFET 선택 스위치(252)는 그라운드 및 연관된 H2 비트 라인사이에 직렬로 접속된 각각의 채널을 갖는 제 1 및 제 2 MOSFET 장치를 포함한다. 제 1 MOSFET 장치는 제 2 계층 선택 구성 데이타에 따라 인에이블된다. 선택 스위치(252)의 제 1 MOSFET 의 게이트가 제 2 계층 선택 구성 데이타에 따라 인에이블되는 경우, 제 2 계층적 비트 라인(H2)은 선택 스위치(252)의 제 2 MOSFET 장치의 게이트를 제어하는 내부 판독 비트 라인(561)으로부터 판독된 데이타에 따라, 방전되거나 또는 (대안적으로) 방전되지 않는다. 대응하는 계층적 비트 라인 구조의 각각의 제 2 계층적 비트 라인에 그 데이타를 선택적으로 접속하도록 유사한 선택 스위치(252)가 연관된 메모리 서브어레이(124)의 워드를 통해 다른 내부 판독비트라인(562, 563...56N)의 각각에 제공된다. 동일한 메모리 서브어레이의 선택 스위치(252)의 각각은 동일한 구성 데이타를 공유하고, 따라서 워드로서 모두 조건적으로 인에이블된다. MOSFET 선택 스위치(254)는 그의 제 3 계층적 구성 데이타에 따라 인에이블되는 경우 내부 판독 비트 라인(561)의 판독 데이타에 따라 제3 계층적 비트 라인(H3)을 구동시키도록 선택 스위치(252)에 대응하게 기능한다. 소정의 메모리 서브어레이내의 MOSFET 선택 스위치(252 및 254)는 연관된 계층적 구성 데이타에 따라 선택적으로 인에이블된다. 상이한 메모리 서브어레이에 대해, 선택 스위치(252 및 254)는 각각의 메모리 서브어레이에 고유한 연관된 계층적구성 데이타에 따라 선택적으로 인에이블된다. 따라서, 3상 인버터(256) 및 MOSFET 선택 스위치(252, 254)는 도 2b 의 선택적 드라이버(521)에 대해 대안을 제공하는 바와 같이 총체적으로 고려될 수도 있다.
제 2 및 제 3 계층적 비트 라인(H2 및 H3)은 각각 P 채널 MOSFET 장치(선택적 접속기)(258 및 260)를 통해 하이(high)로 프리차지된다. (내부 비트 라인(56) 및 제 1 계층 라인(H1)도 마찬가지로 프리차지된다.) MOSFET 장치(258, 260)는 그 게이트에서 수신된 연관된 제 2 및 제 3 계층 프리차지 신호에 따라 비트 라인을 충전하도록 상부 공급전압에, 연관된 비트 라인(H2, H3)의 선택적 접속을 제공한다. 각각의 비트 라인이 적절한 판독 데이타 및 구성 데이타에 따라 MOSFET 선택 스위치(252 및 254)를 통해 프리차지되지 않는 동안 충전된 비트 라인(H2, H3)은 충전된 상태로 남는다. 판독 동작 동안, 프리차지 FET(258, 260)는 디스에이블되고, 판독 방전 동작에 의해 극복되지 않으면, 노이즈 억제 P 채널 MOSFET(262, 264)는 연관된 제 2 및 제 3 계층적 비트 라인이 충전되도록 유지하는 각각의 인버터(266, 273)에 의해 구동된다. 노이즈 억제 FET(262, 264)의 채널 온저항(on-resistance)은 선택 스위치(252, 254)의 직렬 MOSFET 의 조합된 직렬 온저항보다 크므로 선택 스위치는 (적절한 판독 동작에 따라)각각의 비트 라인(H2, H3)을 방전할 수 있게 되어, 각각의 노이즈 억제 FET(262, 264)의 현재 전류 소스능력을 극복한다.
인버터(266), MOSFET(268), 래치(270) 및 버퍼(272)는 H2 비트 라인 및 각각의 I/O 블럭(18)의 대응하는 I/O 셀의 판독 포트(200')의 연관된 제 2 계층 입력사이에 직렬로 배치된다. 동작시에, RAM 판독 클럭은 방전 신호(예를 들면, 각각 MOSFET(258 및 260)를 구동시키는 PRECHARGEh2및 PRECHARGEh3)의 적절한 시퀀스 및 가능하게는 연관된 판독 비트 라인 데이타를 각각 래치(270 또는 276)에 래칭하도록 (제각기 MOSFET(268 및 274)를 구동시키는) 제 2 및 제 3 계층 클럭을 초기화한다. 버퍼(272/278)는 각각의 래치(270/276)의 래치된 데이타에 따라 연관된 I/O 블럭(18)의 각각 제 2 및 제 3 계층 입력을 구동시킨다.
비트 라인 시스템에 대한 입력은 서브어레이의 어드레스 유닛에 의해 생성된 상위 인에이블(high order enable)에 의해 또한 게이트될 수 있다.
단순화를 위해, 메모리 서브어레이(121, 122, 123)와 연관되는 바와 같이, 판독 비트 계층 구조(108')의 부가적인 오버래핑 제 2 계층적 비트 라인은 도 14 의 예시된 제 2 계충적 비트 라인(H2)과의 오버래핑 관계로 도시되어 있지는 않다. 그러나, (도 17 을 참조하여 기술되었으나 도 18 에 도시되지는 않은 바와 같이) 이러한 부가적인 제 2 계층적 비트 라인은 연관된 MOSFET 선택 스위치, 및 연관된 I/O 블럭의 대응하는 제 2 계층 입력을 구동시키는 프리차지/드라이브 회로와 함께 존재함은 물론이다. 또한, 메모리 서브어레이(121, 122, 123)는 각각 I/O 블럭의 대응하는 제 1 계층 입력(H1)에 각각 내부 판독 비트 라인의 연관된 제 1 비트 판독 데이타를 전달하는 메모리 서브어레이(124)와 연관되는 바와 같이, 대응하는 인버터(244), MOSFET(246), 래치(248) 및 3상 인버터(256)를 가짐은 물론이다. 다음 절은 주 I/O 버스(26)에 판독 데이타를 또한 전달함에 있어서, I/O 블럭(18)의 I/O 셀(194)의 판독 포트(200')의 동작을 기술한다.
도 18 의 판독 포트(200')는 도 1a, 1b, 14 및 15 를 참조하여 기술되는 바와 같이, I/O 블럭(184)(예를 들면 메모리 서브어레이(124)와 연관된 I/O 블럭(184))의 I/O 셀(194)의 판독 포트(200)와 유사하다. 대응하는 판독 포트(200')는 메모리 서브어레이(123, 122, 121)와 연관된 각각의 I/O 블럭(183, 182, 181)(도시되지 않음)에 제공됨은 물론이다. 3상 버퍼(256, 280, 및 282)는 각각 계층적 비트 라인(H1, H2 및 H3)으로부터 연관된 판독 포트(200')로 데이타를 선택적으로 전달한다. 이러한 3상 인버터의 조합은 도 15 를 참조하여 기술되는 바와 같이, 멀티플렉서(204)와 동일한 기능을 제공하는 것으로 총체적으로 간주될 수 있다. 통상적으로, 연관된 구성 데이타에 따라 3상 인버터중 단지 하나가 선택되어 버퍼(284)를 통해 선택적 드라이버(208)의 입력으로 판독 데이타를 전달한다. 선택적 드라이버(208)는 그 연관된 구성 데이타에 따라, 주 I/O 버스(26)(도 1a 및 도 1b)에 대해 그 연관된 상호접속선(198)의 선택 출력을 구동시킨다.
본 발명의 이러한 대안적인 판독 데이타 인터페이싱 구성에서, 판독 데이타는 연관된 계층적 비트 라인으로부터 수신된 때에 각각의 계층 래치(248, 270, 276)에 래칭된다. 따라서, 도 15 를 참조하여 기술된 바와 같이, 이전에 기술된 판독 포트(200)에 제공된 바와 같은 플립/플롭(222)의 선택사양적인 래치 능력은 대안적인 판독 포트(200')에 포함되지는 않는다.
더우기, 소정의 메모리 서브어레이로부터 연관된 I/O 블럭의 판독 포트로 데이타를 경로배정하는 이 대안적인 데이타 인터페이싱 구성은, 비트 라인 경로배정 매트릭스(14)(도 1a, 6a 및 7)의 멀티플렉서(158) 및 I/O 경로배정 매트릭스(16)(도 1a, 11 및 13)의 대응하는 판독 경로배정 매트릭스 스위치(184)에 의해 제공된 판독 데이타의 경로배정에 있어서 부가적인 차수의 자유도를 제거한다. 따라서, 이러한 대안적인 데이타 계층 경로배정 실시예는 단순화된 경로배정 능력, 즉, 감소된 차수의 자유도를 희생해서, 회로 복잡성을 감소시킨다.
도 19 에 기술되는 바와 같이, 메모리 서브어레이에 데이타를 기록하는 대안적인 데이타 인터페이스는 도 18 을 참조하여 기술되는 바와 같이 데이타를 판독하는 인터페이스와 유사하다. 메모리 어레이의 워드 폭의 단일 비트에 대한 기록 비트 라인 구조(118')는, 최고 계층(H3)의 전역적 비트 라인, 관계를 오버래핑하는 2개의 중간 계층(H2) 비트 라인, 제 1 계층(H1)의 4개의 로컬 비트 라인을 포함한다. 이들 계층적 비트 라인 각각은 연관된 I/O 블럭의 기록 포트(230)의 각각의 계층 출력으로부터 메모리 서브어레이로의 선택적 접속을 제공한다. 메모리 서브어레이의 워드 폭(N)상의 각 비트에 대해 유사한 기록 비트 라인 구조가 제공된다(도시되지 않음).
판독 포트(230')는 메모리 서브어레이(124)와 연관된 I/O 블럭(184)의 소정의 I/O 셀(194)로 되어 있다고 가정된다. 멀티플렉서(234)는 그 연관된 출력에 그 복수의 입력중 하나를 선택적으로 상호접속하는 연관된 구성 데이타에 따라 프로그램가능하다. 멀티플렉서(234)의 복수의 입력(196)은 주 버스(26)(도 1a 및 도1b)의 선택 라인에 상호접속된다. 멀티플렉서(234)는 고정된 출력을 또한 선택적으로 제공할 수 있다. 멀티플렉서(234)의 출력은 멀티플렉서(242)와 결합하는 인버터(240)를 포함하는 선택적 극성 반전 회로에 접속된다. 극성 반전 회로는 멀티플렉서(242)의 연관된 구성 데이타에 따라 그를 통과하는 신호를 선택적으로 반전시킨다.
멀티플렉서(242)의 출력(238)은 인버터(286 및 288) 및 3상 인버터(290 및 292)를 포함하는 선택적 드라이브 멀티플렉서(232)의 입력을 구동시킨다. 인버터(286)는 멀티플렉서(242)로부터 수신된 기록 데이타에 따라 인버터(288) 및 3상 드라이버(290 및 292)를 구동시킨다. 인버터(288)의 출력은 메모리 서브어레이(124)와 연관된 제 1 계층(H1) 기록 비트 라인을 구동시킨다. 3상 인버터(290)의 출력은 오버래핑 제 2 계층(H2) 비트 라인중 하나에 접속된다. 3상 인버터(292)의 출력은 전역적 계층적 비트 라인(H3)을 구동시킨다.
제 2 계층적 비트 라인의 오버래핑 영역과 연관된 I/O 블럭(도시되지 않음) (예를 들면, 183, 182)의 기록 포트(230')에 대해, 부가적인 3상 인버터(도시되지 않음)는 오버래핑 제 2 계층적 비트 라인(H2)의 다른 부분에 선택적 접속을 인에이블하도록 제공된다. 부가적으로, 소정의 기록 포트(230')의 구성 데이타는 연관된 I/O 블럭의 메모리 서브어레이의 폭(N)의 나머지 비트와 연관된 모든 대응하는 프로그램가능한 자원을 통해 공통으로 공유된다(234 는 제외하는데, 그 이유는 외부 인터페이스에 접속하는 바와 같이 경로배정이 보다 융통성이 있을 필요가 있기 때문이다). 멀티플렉서(54)는 그의 연관된 구성 데이타에 따라, 그의 연관된 메모리 서브어레이의 내부 기록 비트 라인(581)에 데이타를 전달하는 기록 비트 라인 계층 구조의 한 신호 라인으로부터 입력 데이타를 선택한다. 동일한 구성 데이타는 메모리 서브어레이의 폭(N)을 통해 유사한 멀티플렉서(542, 543...54N)(도시되지 않음)를 구성하도록 이용된다.
본 실시예의 대안적인 측면에서, 버퍼(도시되지 않음)는 내부 서브어레이 비트 라인(581)을 구동시키기 전에, 연관된 계층적 비트 라인(H2 및 H3)의 데이타를 버퍼링하도록 포함된다. 이러한 버퍼는 특히 연관된 메모리 서브어레이의 각각이 동일한 계층적 비트 라인(예를 들면, H3)에 접속된 그들의 내부 기록 비트 라인과 함께 구성되는 경우 제각기 계층적 비트 라인의 노드 용량을 감소시키는데 있어 유용한데, 이는 FPMA 의 디프 RAM 구성을 제공하는 데 필요하다.
동작시에, 멀티플렉서(234)는 그의 연관된 구성 데이타에 따라 그의 입력(196)중 하나로부터 기록 데이타를 수신한다. 이 수신된 기록 데이타는 그의 연관된 극성 구성 데이타와 연관된 판독 데이타의 극성을 선택적으로 반전시키는 극성 반전 회로(240, 242)에 전송된다. 선택 드라이브 멀티플렉서(232)는 연관된 계층적 구성 데이타에 따라, 이 기록 데이타를 연관된 제 1 계층(H1) 비트 라인에 전송하고, 동일한 기록 데이타를 각각 제 2 및 제 3 계층(H2 및 H3) 비트 라인에 선택적으로 전송한다. 멀티플렉서(54)는 차레대로 연관된 기록 비트 라인 계층 구조의 적절한 비트 라인으로부터 기록 데이타를 신택하고, 이 기록 데이타를 그 내부 기록 비트 라인(581)에 전송한다.
단순화를 위해, 도 19 는 메모리 서브어레이(121, 122, 123)와 연관된 I/O 블럭의 기록 포트를 예시하고 있지 않다. 마찬가지로, I/O 블럭의 기록 포트의 3상 인버터는 오버래핑 제 2 계층적 비트 라인(H2)에 기록 데이타를 제공하는 것과 연관되어 도시되어 있지 않다. 또한, 연관된 메모리 서브어레이(121, 122, 123)의 각 멀티플렉서(54)는 연관된 I/O 블럭(도시되지 않음)의 대응하는 기록 포트로부터 기록 데이타를 수신하도록 접속된 각각의 제 1 계층 신호 라인(H1)을 갖는다.
본 발명의 대안적인 측면에서, 메모리 서브어레이의 내부 판독 비트 라인의 각각은 도 18 의 제 2 및 제 3 계층 판독 비트 라인을 참조하여 기술된 바와 같이 프리차지/방전 토폴로지와 유사한 프리차지/방전 데이타 전송 방안을 구현한다.
메모리 서브어레이의 어드레스된 워드 라인은 내부 비트 라인 및 어드레스된 워드 라인과 연관된 메모리 셀의 데이타 내용에 따라 내부 비트 라인의 선택적 방전을 인에이블시킬 수 있다. 내부 판독 비트 라인 구조에 대해 이러한 프리차지/방전 구성을 제공함으로써, 메모리 서브어레이의 내부 메모리 셀은 각각 내부 비트 라인을 방전시키거나, 또는 충전시키는 큰 드라이버를 필요로 하지 않고 더 작아질 수 있다.
단순화된 판독 비트 라인 인터페이스를 제공하는 대안적인 판독 포착 래치 토폴로지
도 16, 17, 18a 및 18b 를 참조하여 기술된 바와 같이, 프로그램가능한 판독 비트 라인 계층 구조(108')는 연관된 I/O 블럭(18)의 I/O 셀(194)의 판독 포트(200')의 제각기 계층 입력에 제각기 계층적 비트 라인의 각각을 인터페이스하는 개별적인 래치(예를 들면, 248, 270, 276)를 채용한다. 메모리 서브어레이를 인터페이스하는 대안적인 실시예의 제 2 측면에서, 프로그램가능한 판독 비트 라인 구조(108')는 복수의 래치에 대한 요건을 제거하는 향상된 단일 래치의 배치 해결책을 포함한다.
도 20 을 참조하면, 판독 비트 라인 계층 구조(108')는 도 17 를 참조하여 도시되고 기술된 것과 마찬가지로, 8개의 상이한 메모리 서브어레이(121, 122, ...128)의 메모리 셀의 소정의 열의 메모리 셀로부터 선택적으로 판독 데이타를 전달한다. 도 20 에는 근접한 계층 구조의 상이한 연관된 계층적 비트 라인에 대한 각각의 서브어레이의 내부 비트 라인의 선택적 접속이 도시되어 있지 않다. 따라서, 도 2a 2b, 16 및 17 를 참조하여 기술된 바와 같이, 선택적 드라이버(52) (또는 그의 등가물)는 연관된 구성 데이타에 따라 각각 계층 구조(108')의 개별적인 계층적 비트 라인중 하나와 연관된 내부 판독 비트 라인(56)의 데이타를 선택적으로 전달함은 물론이다. 더욱이, 도 20 에 도시된 바와 같이, 비트 라인 구조(108')는 프로그래머블 메모리 어레이의 N 비트 폭 중의 한 비트를 표시하는 메모리 셀의 단지 한 열에 대해 데이타 인터페이싱을 제공하고, 대응하는 판독 비트 라인 계층 구조(108')는 메모리 어레이의 폭상에서 다른 열의 각각에 대해 마찬가지로 제공된다.
도 20 및 도 21 은 각각 I/O 블럭의 중간의 판독 포착 래치 뱅크(4001, 4002...4008), 판독 포트(2001', 2002'...2008')를 도시하며, 각각의 메모리 서브어레이(121, 122...128)에 근접한 판독 비트 라인 계층 구조(108')와 연관되어 있다. 뱅크(400)의 래치 셀(4011, 4012...401N)은 각각 판독 비트 라인 계층 구조(1081', 1082'...108N')의 연관된 계층적 비트 라인에 접속된 계층 입력을 각각 갖는다. 래치는 클럭 생성기(404)에 의해 생성된 바와 같은 제각기 계층 포착 클럭(408)과 동기적으로 연관된 판독 데이타를 포착한다. 래치 뱅크(400)의 래치된 데이타는 상호접속선(4021, 4022...402N)을 통해 각각 I/O 블럭(18)의 판독 포트(200')에 전송된다. 클럭 생성기(404)는 입력(406)시에 판독 타이밍 신호를 수신하고 연관된 계층적 구성 데이타에 따라 각각 계층 포착 클럭(408)을 생성한다.
소정의 계충 포착 클럭(412)을 수신하는 때에, 지연 인버터(410)는 각각 계층 포착 클럭을 클리어시키도록 클럭 생성기(404)에 전송되는 포착 클럭의 지연되고 반전된 표시(414)를 생성한다. 따라서, 지연 인버터(410)에 따른 클럭 생성기(404)는 포착 클럭의 생성에 있어 원샷 동작(one shot operation)을 제공한다.
도 22 를 참조하면, 클럭 생성기(404)는 각각 AND 게이트(416)에 의해 구동된 그들의 클럭을 갖는 복수의 플립플롭(418h1, 418h2...418h4)을 포함한다. 각 AND 게이트(416)는 타이밍 판독 비트 라인 계층 구조(406)의 연관된 게층적 비트 라인에 접속된 한 입력과, 연관된 계층적 구성 데이타에 따라 구동되는 다른 입력을 갖는다. 따라서, 연관된 계층적 구성 데이타는 어느 계층 포착 클럭(408)이 생성되는지를 결정함에 따라 그로부터 계층적 비트 라인 판독 데이타가 수신되고 각각 래치 뱅크(400)내에 래치될 것이다.
동작시에, 예를 들면, AND 게이트(416h1)는 연관된 제 1 계층 타이밍 비트 라인(406h1)으로부터 상승 에지(rising edge)를 수신한다. 이러한 특정의 AND 게이트가 인에이블된다고 가정하면, 상승 에지는 플립플롭(418h1)의 클럭 입력에 전송된다. 그의 데이타 입력이 전이 하이(transition high)인 플립플롭(418h1)과 연결되어 있으므로, 그의 출력(408h1)시에 제 1 계층 포착 클럭으로서 하이 논리 신호를 전송한다. 래치 뱅크(400)는 연관된 제 1 계층 판독 비트 라인상의 데이타에 따라 래치 뱅크(400)가 그의 내용을 갱신하도록 인에이블하는 제 1 계층 포착 클럭을 수신한다. 제 1 계층 포착 클럭의 상승 에지를 수신하는 때에, 지연 인버터(410)는 상호접속선(414)을 통해 그의 출력을 클리어시키는 플립플롭(418h1)의 리세트 입력에 전송되는 지연된 리세트 신호를 생성한다. 하강 에지(falling edge) 검출이 또한 채용될 수 있다.
클럭 생성기의 하나의 대안적인 실시예에서, 플립플롭(418)은 판독 멀티플렉서(52)(도 2b) 및 멀티플렉서(204/208)(도 15)에 따라 대안적인 비동기, 조합 판독 신호를 제공하는 비동기-래치-구성 데이타에 따라 구동되는 각각의 SET 입력을 갖는다. SET 입력이 적절히 구동되는 경우, 플립플롭(418)은 래치가 장치를 통과하는 것과 같이 동작하는 하이 출력을 제공한다. 비동기 동작을 필요로 하지 않는 실시예에 대해, 이들 SET 입력은 연관된 비동기-래치-구성 데이타에 따라 구동될 필요가 없게 되므로 고정된 레벨로 폐기되거나 또는 연결되어 정상 동작을 허용할 수도 있다.
도 23 은 포착 래치(401)의 소정의 셀의 보다 상세한 세부사항을 제공한다. 피드백 접속 인버터(420)는 데이타를 수신하고 보유하는 주 래치 수단을 제공한다. 복수의 MOSFET(409)는 래치(420)의 입력에 패스게이트 동작을 제공한다. MOSFET(409)는 판독 비트 라인 계층 구소(108')의 연관된 계층적 비트 라인의 데이타를 수신하는 래치(402)의 입력을 선택적으로 접속하도록 제각기 계층 포착 클럭(408)에 의해 구동되는 게이트를 갖는다. 인버터(407)는 각각 계층적 비트 라인(h1, h2...h4) 및 래치(420)사이의 버퍼링을 제공한다. 부가적으로, 인버터(407)는 래치(420)의 상태를 변경시키는 충분한 드라이브 능력을 갖는데, 즉, 각각은 래치(420)의 피드백 인버터의 능력보다 큰 전류 소스/싱크 능력을 갖는다. 마지막으로, 연관된 I/O 블럭(18)의 판독 포트(200')를 구동시킴에 있어서, 3상 인버터(422)는 연관된 래치 구성 데이타에 따라 인에이블되는 경우 보유된 래치 데이타를 표시하는 데이타를 전송한다. 대안적으로, 3상 인버터(422)는 간단한 인버터로 교체된다. 동작시에, 예를 들면, 판독 비트 라인 계층 구조(108')의 제 1 계층적 비트 라인(h1)은 인버터(407)에 데이타를 전송한다. 인버터(407)는 제 1 계층적 비트 라인으로부터 수신된 데이타를 표시하는 출력 데이타를 갖는 FET(409)의 그 연관된 제 1 계층 패스게이트의 제어된 채널을 구동시킨다. 제 1 계층 포착 클럭(408h1)은 FET 를 인에이블시키는 제 1 계층 FET(409)의 게이트를 구동시켜 제 1 계층 데이타를 래치(420)에 전송한다. 계층 구조(108')의 다른 계층적 비트 라인의 데이터를 포착하기 위해, 각각의 계층 포착 클럭(408)은 래치(420)에 각각 데이타 를 전송하는 각각의 MOSFET(409)를 인에이블시키도록 마찬가지로 활성화되었다. 대표적으로, 단지 하나의 계층 포착 클럭만이 판독 포착 래치 셀(401)의 래치(420)내에서 데이타를 포착하도록 임의의 소정의 시간에서 활성화된다.
판독 포착 래치 뱅크(400)가 연관된 메모리 서브어레이(12)내에서 특정 워드 위치로부터 판독된 바와 같은 적절한 데이타를 보유하도록 하기 위해, 그 연관된 계층적 비트 라인상의 데이타 전달에 관한 판독 포착 클럭(406/408)에 대해 적절한 타이밍 시퀀스가 제공되어야 한다. 이하 간략히 언급되는 바와 같이, 타이밍-판독-비트-라인-구조는 메모리 어레이내에서 메모리 셀의 소정의 "더미(dummy)" 열과 연관되고, 이 타이밍-판독-비트-라인-구조는 메모리 어레이내에서 메모리 셀의 다른 열의 판독 비트 라인 계층 구조(108')와 동일하다. 그러나, 어드레스가능하게 선택된 워드 라인 신호에 따라 연관된 판독 비트 라인 구조상으로 저장된 (실질적인) 데이타를 게이트하는 대신에, 알려진 사전로딩된 더미 값, 예를 들면, 1 이 동일한 어드레스가능하게 선택된 워드 라인에 따라, 더미 메모리 셀(예를 들면, 도시되지 않은 하드와이어드 메모리 셀)로부터 유사한 타이밍-판독-비트-라인-구조로 게이트된다. 따라서, 연관된 (실질적인) 워드 데이타의 전달 경로에 대응하는 판독 타이밍 신호(더미 데이타)에 대한 전달 경로가 제공된다. 그러나, 연관된 판독 포트(200')중간의 연관된 판독 포착 래치에 접속되는 타이밍-판독-비트-라인-구조의 각 계층적 비트 라인대신에, 타이밍-판독-비트-라인-구조(406)의 각 계층적 비트 라인은 선택 계층 포착 클럭(408)을 트리거할 목적으로 클럭 생성기(404)에 입력으로서 접속된다. 따라서, 대응하는 전달 경로로 인해, 소정의 계층 포착 클럭이 동시에 동기화되고, 그 연관된 판독 데이타는 대응하는 인버터(407)를 통해 계층 판독 비트 라인을 따라 전달하며, 각각 포착 FETS(409)의 게이트된 채널에 도달한다.
도 24 에 도시된 바와 같이, 판독 비트 라인 계층 구조(108')의 각 계층직 비트 라인을 전달하고, 타이밍-판독-비트-라인-구조(406)의 각 계층적 비트 라인을 프리차지하는 프리차지 회로가 도 18a 및 18b 를 참조하여 기술하는 바와 같이 마찬가지로 채용된다. 멀티플렉서(432)는 어드레스 버스(28)(도 1a)의 연관된 판독 클럭 분배 계층 구조(도시되지 않음)로부터 선택 판독 클럭을 수신한다. 멀티플렉서(432)는 연관된 계층적 구성 데이타에 따라 연관된 판독 클럭을 수신하는 소정의 입력을 선택한다. 멀티플렉서(432)의 출력은 펄스 지연 원샷 회로(430)를 구동시킨다. 프리차지 FET(424)는 상위 공급 전압(Vdd)에 각각의 비트 라인(RBLhX)을 선택적으로 접속하는 P 채널 MOSFET 이다. FET(424)는 펄스 지연 회로(430)로부터 수신된 때, 프리차지 신호(PRECHARGE)에 따라 선택적으로 인에이블된다. 판독 동작 동안 그리고 멀티플렉서(432)로부터 적절한 판독 클럭을 수신하는 때에, 펄스 지연 회로(430)는 판독 포착 래치 뱅크(400)(도 20-22)의 생성기(400)에 의해 생성된 바와 같은 연관된 계층 포착 클럭(408)의 포착 펄스 지속기간에 대응하는 지속기간 동안 디스에이블된다. 디스에이블된 지속기간 동안, 판독 비트 라인(RBLhX)의 논리 상대가 하이인 동안, 인버터(428)는 노이즈 억제 FET(426)의 게이트를 구동시켜 판독 비트 라인상에서 선택될 수 있는 노이즈 아티팩트(artifacts)를 억제하는 상부 공급 전압(Vdd)에 대해 고 저항 풀업 저항기(high resistance pull up resistor)로서 동작하도록 이 트랜지스터를 인에이블시킬 것이다. 프리차지는 판독 클럭의 활성 에지와, 차후의 포착 클럭의 비활성 에지에 의해 정의된 이상의 시간 주기동안 디스에이블된다. 이것은 포착 클럭의 지속기간보다 길다. 연관된 비트 라인 경로배정을 방전시키는 타이밍 비트상에서의 포착 클럭 의존도는 오프되는 프리차지에 의존하고, 억제 회로는 비트 라인 안정도를 보장한다.
노이즈 억제 FET(426)의 채널 ON 저항은 충분히 크게 만들어지므로 개별적인 메모리 셀이 연관된 판독 비트 라인을 구동시키는 경우, 판독 동작 동안 연관된 계층 판독 비트 라인의 상태가 변경될 수도 있다. 예를 들면, 소정의 메모리 셀 판독이 (RBLhX)에 논리 1 을 제공하는 경우, 인버터(428)는 1 을 반전시키고 그의 노이즈 억제 상태에서 FET(426)를 유지하도록 0 을 출력한다. 대조적으로, 메모리셀 판독이 0 을 제공하는 경우, 연관된 계층 판독 비트 라인(즉, 도 18a 의 스위치(252, 254))의 전류 싱크(sink) 능력이 노이즈 억제 FET(426)의 전류 소스 능력보다 커짐에 따라 판독 비트 라인은 논리 0 상태로 풀되고, 인버터(428)는 그의 출력 하이로 토글한다. 억제 FET(426)의 게이트는 인버터(428)의 하이 출력을 수신하고, 그의 채널을 디스에이블시킨다. 메모리 어레이의 워드 폭의 모든 비트와 연관된 비트 라인 계층 구조의 계층적 비트 라인을 프리차지하도록 유사한 프리차지 회로가 채용됨은 물론이다.
도 25 를 참조하면, 프리차지 회로는 판독 포착 래치 셀(401)의 래치 셀내에서 함께 일체화된다. 또한, 잉여 선택 FET 는 선택적 ON/OFF 프리차지 인에이블 기능을 제공한다. 주 P 채널 MOSFET(424)는 사전결정된 전압원(Vdd) 및 연관된 비트 라인 계층 구조(108')의 제 1 계층적 비트 라인(h1)사이에 직렬로 배치된 채널을 갖는다. 주 프리차지 MOSFET(424)의 게이트는 제 1 계층 프리차지 신호(PRECHARGEh1)에 의해 구동된다. 부 프리차지 P 채널 MOSFET(434)는 주 MOSFET(424)와 직렬로 배치된 그의 채널을 갖고 연관된 제 1 계층 프리차지 구성 데이타(X 둘레에 원형으로 표시되어 있음)에 따라 구동되는 게이트를 갖는다. 인버터(407)는 제 1 계층적 비트 라인(h1)으로부터 수신된 바와 같은 데이타를 반전시키고 이에 따라 주 노이즈 억제 FET(426)의 게이트를 구동시킨다. 주 노이즈 억제 FET(436)는 (이하 기술되는 것과 마찬가지로) 프리차지 MOSFET(424)가 제 1 계층적 비트 라인에 따라 판독 동작과 연관된 바와 같이 디스에이블되는 간격동안 제 1 계층적 비트 라인(h1)상의 노이즈를 억제한다. 부 억제 FET(426)는 부 프리차지 FET(424)의 게이트를 구동시키는 프리차지 구성 데이타와 동일한 제 1 계층 프리차지 구성 데이타에 따라 프리차지 회로의 상기 노이즈 억제 기능을 선택적으로 게이트한다. 래치 셀(401)의 나머지는 도 23 을 참조하여 기술된 것과 마찬가지로 동작한다.
판독 사이클 동작 동안, 대안적인 판독 비트 라인 구조 및 연관된 판독 포착 래치는 다음과 같이 동작한다. 프로그래머블 메모리 어레이는 어드레스 버스(28)의 적절히 구성된 판독 클럭 분배 계층 구조에 따라, 각 메모리 서브어레이 어드레스 유닛(20) 및 연관된 프리차지 회로의 멀티플렉서(43)에 분배되는 판독 클럭의 활성 에지를 수신한다. 따라서 프리차지 회로는 연관된 계층적 비트 라인으로부터 포착하고, 연관된 계층적 비트 라인상에서 판독 데이타 전달을 인에이블시키도록 이하 기술된 바와 같이 각각 계층 프리차지 트랜지스터를 구동시킨다. 어드레스 유닛(20)에 대한 적절한 어드레싱, 및 연관된 판독 클럭 동기화는 어레이의 소정의 워드를 선택하는 유효 워드 라인을 어드레스가능하게 활성화하고, 그 시점에서 워드의 데이타를 각각 판독 비트 구조로 전달하도록 게이트된다. 동시에, 어드레스가능하게 선택된 워드 라인은 서브어레이의 연관된 타이밍-비트-라인-계층-구조의 각각 계층 타이밍 비트 라인 경로로 활성 에지 전이(타이밍 신호)를 전송하도록 연관된 워드의 더미, (또는 타이밍) 비트를 인에이블시킨다. 소정의 워드로부터 판독된 (실질적인) 데이타 및 연관된 (더미 데이타) 타이밍 신호는 각각 비트라인 구조의 대응하는 계층 경로로 (병렬로) 전송된다. 예를 들면, 프로그래머블 메모리 어레이가 판독 비트 라인 계층 구조의 제 1 계층 레벨(h1)을 이용하도록 구성된다고 가정하면, 대응하는 제 1 계층적 비트 라인(h1)을 이용하는 타이밍-비트-라인-구조가 구성될 것이다. 따라서, 판독 동작 동안, 판독 데이타는 제 1 계층 판독 비트 라인(h1)에 접속하는 연관된 경로배정 자원을 통해 서브어레이(12)의 내부 판독 비트 라인(56)(도 2b)으로 흘러 전달된다. 마찬가지로, 타이밍(더미) 데이타는 대응하는 더미 구조상으로 마찬가지로 전달된다. 타이밍 데이타는 대응하는 경로배정 구조를 통해 그리고 타이밍-비트-라인-구조의 대응하는 계층 경로를 따라, 연관된 워드의 잉여 하드 와이어(또는 사전로딩된) 메모리 셀로부터 유사한 내부 "타이밍" 비트 라인(56')상으로 게이트된다. 따라서, 타이밍 데이타는 실질적으로 어드레스된 워드로부터 판독된 바와 같은 실제의 데이타가 래치 뱅크(400)의 각 래치 입력에 도달함과 동시에 포착 클럭 생성기(404)(도 21)에 도달한다. 생성기(404)에 의해 수신되는 때에, 타이밍 신호의 상승 에지는 래치 뱅크(400)의 각각의 셀(401)(도 23)의 대응하는 계층 FET(409)를 인에이블시키도록 적절한 계층 포착 클럭(408)의 생성을 트리거하여 워드의 데이타를 제각기 래치(420)에 포착시킨다. 다음에, 포착 클럭 생성기(404)에 의해 생성된 바와 같은, 연관된 계층 포착 클럭은 각각 계층 포착 클럭을 클리어시키도록 포착 클럭 생성기(404)의 피드백 입력(414)에 (펄스 지연 블럭(410)을 통해) 피드백된다. 이후, 각각의 프리차지 회로의 프리차지 동작은 제각기 계층적 비트 라인의 프리차지를 인에이블시키도록 복구된다.
도 18a, 18b, 19 및 20 을 참조하여 기술된 바와 같이 FPMA(10)에 대한 대안적인 데이타 인터페이싱 구조에 있어서, 제 1 실시예의 부 I/O 버스(38)(도 1a 및 도 1b) 및 연관된 판독/기록 비트 라인 계층 구조(30/32)는 서로 충돌하게 된다. 따라서, 도 1a 및 도 1e 를 참조하면, 부 판독 포트 상호접속선(38') 및 판독 비트 라인 상호접속선(30')에 상태 머신 액세스 포트(24) 및 2개의 개별적인 판독 포트를 제공하는 것이 필수적이지는 않다. 대신에, 대안적인 데이타 인터페이싱 구조의 FPMA 실시예에 대해, 상태 머신 액세스 포트(24)는 단일 판독 비트 라인 계층 구조에 접속된 단일 판독 포트만을 필요로 한다.
도 1a, 1b, 2a, 2b, 3 및 4 를 참조하여 기술된 바와 같은 본 발명의 실시예에서, 개별적인 "기록" 및 "프로그래밍"(초기화) 액세스는 각각 메모리 서브어레이(12)의 메모리 셀(48)에 제공된다. 따라서, 각각의 메모리 셀(48)은 각각 내부 기록 비트 라인(58) 및 프로그래밍 비트 라인(PBL)에 접속된 개별적으로 게이트된 기록 입력, 즉 MOSFET(82) 및 개별적으로 게이트된 프로그래밍 입력, 즉 MOSFET(78)를 필요로 한다.
어드레스 유닛
도 1a 및 1b 를 참조하면, FPMA(10)의 어드레싱은 주로 어드레스 버스(28)를 따라 경로배정된다. 어드레스 유닛(20)은 어느 메모리 서브어레이(12)가 어드레스되는가, 그리고 데이타를 송신하거나 또는 수신하기 위해 특정 메모리 서브어레스 이내에서 각각 어느 워드 라인이 액세스되는가를 결정한다. 도 26a, 26b, 및 26c를 참조하면, 각 어드레스 유닛(20)은 판독 디코더 부분(296) 및 기록 디코더 부분(306)을 포함한다. 멀티플렉서(318) 및 신호 극성 반전 회로(316)는 어드레스 버스(28)의 어드레스 및 어드레스 정보를 수신할 극성을 결정한다. 인버터(314), 프리코드 버스(312, 312') 및 AND 게이트(310, 310')는 각각 극성 반전 회로(316)의 멀티플렉서의 출력시에 제공되는 연관된 판독(320, 322)/기록(324, 326) 어드레싱에 따라, 각각 복수의 판독/기록 라인(298/300)의 특정 판독/기록 워드 라인을 활성화하는 표준 어드레스 디코드를 제공한다. 인버터는 320 에 대해 생략될 수도 있으나, 322 에 대해서는 보유된다.
복수의 판독 워드 라인(298)의 판독 워드 라인의 선택을 인에이블하기 위해, 판독 디코더(296)의 상위 어드레스 디코더(308)는 상위 어드레스 라인(72)을 활성화하도록 적절한 어드레스 데이타를 수신해야 한다. 상위 어드레스 디코더(308)는 어드레스 버스(28)의 선택 라인에 의해 제공된 상위 판독 어드레스 입력(322)시에 어드레스 데이타를 수신한다. 멀티플렉서(318)는 이러한 상위 어드레스 정보를 수신할 입력을 결정한다. 극성 회로(316)는 상위 어드레스 라인(72)을 선택할 특정의 상위 단부 어드레스를 구성하도록 (연관된 구성 데이타에 따라) 프로그램된다. 일단 적절한 상위 단부 어드레스가 수신되고 연관된 멀티플렉서(318) 및 극성 회로(316)를 통해 전달되면, 상위 어드레스 디코더(308)는 디코더 A/D 게이트(310)를 인에이블시키도록 라인(72)을 통해 상위 어드레스 인에이블 신호를 제공한다. 도 1b 및 도 26a 를 참조하면, 각각 어드레스 유닛(20)으로부터의 상위 어드레스 라인(72)은 각각 메모리 서브어레이(12)의 연관된 상위 어드레스 입력에 접속된다.
도 2b 를 참조하면, 라인(72)의 상위 어드레스 인에이블 신호는 라인(72)으로부터 판독된 판독 데이타를 연관된 판독 비트 라인 구조에 전달하도록 연관된 메모리 서브어레이(12)의 선택적 드라이브 멀티플렉서(52)를 인에이블시킨다. 예를 들면, FPMA(10) 또는 그의 일부가 디프 RAM 기능을 제공하도록 구성되는 경우, 각각의 상위 어드레스 디코더 부분(308)은 다양하면서 각각 고유한 상위 어드레스 데이타를 통해 각각 상위 어드레스 신호 라인(72)을 활성화하도록 구성된 각각의 멀티플렉서(318) 및 극성 반전 회로(316)를 가짐에 따라, 각각의 메모리 서브어레이는 다른 메모리 서브어레이와 독립적으로, 선택적으로 인에이블될 수도 있다. 대안적으로, FPMA(10) 또는 그의 일부가 와이드 RAM 기능을 제공하도록 구성되는 경우, (즉, 단계적이고 병렬인 메모리 서브어레이(12)) 어드레스 유닛(20)의 각 판독 어드레스 디코더(296)의 각각의 상위 어드레스 디코더(308)는 각 멀티플렉서(318) 및 극성 반전 회로(316)에 따라 구성되어, 동일한 상위 어드레스에 의해 어드레스 가능해진다. 항상 상위 어드레스 디코더(308)의 멀티플렉서(318)는 상위 어드레싱을 인에이블시키거나, 또는 대안적으로 디스에이블시키도록 알려진 DC 입력으로부터 선택하도록 대안적으로 구성될 수도 있다. 예를 들면, 메모리 서브어레이가 개개의 독립적인 메모리 유닛으로서 동작되는 경우, 상위 어드레싱이 계속적으로 인에이블되는 것이 바람직할 수도 있다.
판독 어드레스 디코더의 하위 부분에 인가된 어드레스 입력(320)의 수는 그의 연관된 메모리 서브어레이(12)의 M개의 워드를 완전히 어드레스하도록 필요로 했던 수이다. 따라서, M개의 AND 게이트(310)는 각각 M개의 판독 워드 라인(298)을 선택적으로 구동시킨다. 한편, 상위 어드레스 입력 비트(322)의 수는 Z개의 메모리 서브어레이(12)를 고유하게 어드레싱하도록 요구된 수에 대응한다. 본 발명의 단순화된 실시예에서, 판독 어드레스 디코더(296)의 하위 라인(320)의 선택적 극성 회로(316)가 제거된다.
기록 어드레스 디코더(306)는 각각 상위 어드레싱(308') 및 나머지 하위 어드레싱 디코더 부분에 따라 판독 어드레스 디코더(298)와 마찬가지로 기능한다. 그러나, AND 게이트(312')는 판독, 기록 인에이블, 및 클럭 동작을 구현하는 2개의 부가적인 부 신호 라인을 포함한다. 상위 기록 어드레스 디코더(308')는 상위 어드레싱 데이타를 수신하도록 상위 기록 어드레스 입력(324)으로부터 연관된 상위 기록 어드레싱을 수신하여 연관된 AND 게이트(310')를 선택적으로 인에이블시킨다. 하위 기록 어드레싱 디코더 부분은 하위 기록 어드레스 입력(326)으로부터 연관된 하위 어드레싱 데이타를 수신한다. 또, 각각의 멀티플렉서(318') 및 극성 회로(316')는 어드레스 버스(28)의 어드레싱 라인 및 연관된 어드레스 데이타를 수신할 극성을 결정한다. 기록 어드레스 디코더의 단순화된 실시예에서, 라인(326)과 연관된 기록 어드레스 디코더(306)의 극성 반전 회로(316)는 제공되지 않는다. 또한, 어드레스 디코드는 복수의 알려진 기법중 하나를 이용하여 행해질 수 있다. 반전된 및 비반전된 신호 라인은 프리디코드 버스(312')상에서 이용가능하도록 만들어진다. AND 게이트(310')는 소정의 워드 라인(300)을 선택하는 표준 디코드 회로를 제공한다.
도 26c 를 참조하면, 리세트 라인(302)은 도 1b 및 도 2a 에 도시된 바와 같은 그 연관된 메모리 서브어레이(12)의 리세트 입력을 구동시킨다. 멀티플렉서(334)는 리세트 신호를 수신할 입력(328)을 결정한다. 대안적으로, 멀티플렉서(334)는 알려진 DC 레벨의 입력을 선택할 수도 있다. 극성 정정 회로(336)는 리세트 신호와 연관된 극성을 결정한다.
프리코드 버스(312')의 나머지 라인은 AND 게이트(338)에 의해 구동된다. AND 게이트(338)는 2개의 신호, 즉 클럭 및 인에이블 신호를 수신한다. 클럭 신호는 연관된 멀티플렉서 및 극성 반전 회로에 의해 선택된 바와 같은 클럭 입력(330)의 소정의 입력을 통해 어드레스 버스(28)로부터 수신된다. 인에이블 신호는 연관된 멀티플렉서 및 (선택사양적인) 극성 반전 회로에 의해 선택된 바와 같은 복수의 인에이블 입력(332)중 하나를 통해 어드레스 버스(28)로부터 수신된다.
연관된 클럭 또는 인에이블 멀티플렉서 및 연관된 극성 반전 회로는 연관된 AND 게이트(338)를 계속적으로 인에이블시키거나, 또는 디스에이블시키도록 프로그램될 수 있다. 디스에이블링 AND 게이트(338)는 연관된 메모리내의 기록 기능을 억제하여, 데이타 붕괴를 방지하고 FPMA 에 판독 전용 기능을 제공한다. AND 게이트(338) 및 그 연관된 클럭 신호는 FPMA(10)내에 동기적으로 기록 기능에 대한 기초를 제공한다. 기록 클럭 신호는 충분한 지속기간 동안 소정의 기록 워드 라인을 활성화하고 메모리 어레이의 연관된 어드레스 워드 위치로의 데이타 전송을 인에이블시키도록 활성화된다. 기록 디코더(306)의 대안적인 실시예에서, 원샷(one-shot)(도시되지 않음)은 AND 게이트(338)의 출력 및 디코더 AND 게이트(310') 사이에 배치되어, 기록 및 인에이블 신호에 따라 AND 게이트(338)에 의해 적절히 트리거되는 때에, 충분한 기록 지속기간의 원샷 펄스를 제공한다.
한 애플리케이션에서, 인에이블 신호는 FPMA 의 각 비트 기록 프로그래밍을 제공하도록 구동된다. 예를 들면, FPMA 또는 그 일부가 단계적으로 각각 메모리 서브어레이, 즉 와이드 RAM 과 함께 단계적으로 구성되는 경우, 단지 그의 한 워드만이 일시에 기록 데이타를 수신하도록 요구될 수도 있다. 따라서 연관된 워드 프로그래밍 데이타를 수신하고자 하는 특정 메모리 서브어레이(12)는 그의 연관된 인에이블 입력(332)에 따라 선택적으로 인에이블된다. 대안적으로, 인에이블 입력과 연관된 멀티플렉서는 항상 AND 게이트(338)의 한 입력을 인에이블하도록 프로그램될 수 있다.
프리차지 비트 라인 구조가 구현되는 실시예에서, 판독 디코더(296)는 기록 디코더내의 회로와 유사한 어드레스 멀티플렉서 회로로부터 공급되는 부가적인 입력 판독 클럭을 가질 수도 있다. 대안적으로 판독 클럭은 비동기 기능을 구현하도록 활성으로 유지될 수 있다.
클럭 유닛
앞서 언급된 바와 같이, 본 발명의 필드 프로그래머블 메모리 어레이(10)는 LIFO/FIFO, 또는 각 메모리 서브어레이(12)가 스택으로서 채용되는 롤오버 모드에서 동작하도록 구성될 수 있다. LIFO 동작 모드에서, 데이타는 스택상으로 배치되는 반대 순서로, 즉 후입선출방식으로 스택으로부터 분리된다. FIFO 동작 모드에서, 데이타는 스택상으로 배치되는 동일한 순서로, 즉 선입선출방식으로 스택으로부터 분리된다. 롤오버 동작 모드에서, 스택 액세스는 특정 워드 윈도우를 통해 제공되고, 여기서 스택의 데이타는 액세스 윈도우 다음에 시퀀스되어 데이타는 스택내에서 쉬프트된다. 데이타 쉬프트가 스택내에서 발생함에 따라, 스택 상부에서의 데이타가 스택 하부로 이동한다. 반대로, 스택 회전이 반대 방향인 경우, 스택 하부의 데이타는 스택의 상부로 이동된다. 도 1a 및 도 1b 에 도시된 바와 같이, 클럭 유닛(221, 222...22Z)은 연관된 판독/기록 클럭을 생성하고 스택 상승 또는 하강을 추적하는 각각의 메모리 서브어레이(121, 122...12Z)와 연관된다.
도 27a, 27b, 및 27c 를 참조하면, 클럭 유닛(22)은 푸시 클럭 분할기(340), 및 팝 클럭 분할기(342)를 포함한다. 각 클럭 분할기는 어드레스 버스(28)의 이용가능한 어드레스 라인의 각각의 서브세트에 연결된 각 클럭 입력(370, 372)중 하나로부터 선택 클럭 신호를 수신하는 입력 멀티플렉서를 갖는다. 어드레스 라인은 이하 기술되는 바와 같은 판독 및 기록 라인 계층 구조와 유사한 계층 구조를 포함할 수도 있음에 주의해야 한다. 분할기(341)는 그 연관된 멀티플렉서에 의해 선택된 바와 같은 클럭 신호를 수신하고 단일 클럭 입력으로부터 2개의 논오버래핑(non-overlapping) 제 1 및 제 2 위상 펄스 푸시 클럭 펄스를 생성한다. 분할기(341)에 인가된 구성 데이타는 두 출력 클럭을 모두 비활성화 상태로 강제(forcing)하기 위해 인입 클럭의 선택적 극성 정정(선택사양) 및 모드 선택을 인에이블시킨다. 정상 동작시에, 푸시 클럭 분할기(340)는 도 2a 에 도시된 바와 같이, 각각 상호접속선(373 및 374)을 통해 그 연관된 메모리 서브어레이(12)에, 제 1 및 제 2 위상 푸시 클럭 신호를 제공한다. 마찬가지로, 팝 클럭 분할기(342)는 각각 팝 클럭 출력(376 및 378)을 통해 그 연관된 메모리 서브어레이(12)에, 두 논오버래핑 제 1 및 제 2 위상 팝 클럭 펄스를 제공하도록 프로그램가능하다. 도 2b 를 참조하여 도시되고 기술된 바와 같이, 각각의 푸시 및 팝 클럭 펄스는 메모리 셀의 수직적 데이타 쉬프트를 가능하게 하도록 연관된 메모리 서브어레이의 각 메모리 셀간의 전송 셀(50)을 구동시킨다.
클럭 유닛(22)은 데이타가 이하 기술되는 바와 같이 스택내에서 수직으로 전송되는 "물리적" LIFO/FIFO 동작 모드에 대해 스택 증분 및 감분을 추적하거나, 또는 대안적으로 "논리적" LIFO/FIFO 동작 모드에서 어드레싱 시퀀스를 추적하는 부가적인 회로를 또한 포함한다. "논리적" LIFO/FIFO 동작 모드에서, 포인터는 스택내에서 데이타를 배치할 어드레스 위치와, 스택내에서 데이타를 추출할 어드레스 위치를 추적한다. 따라서, "논리적" 동작 모드에서, 데이타는 수직적 데이타 쉬프트 필요로 하지 않고, 각각 포인터마다 어드레스된 바와 같은 정상 판독/기록 데이타 전송을 이용하여 메모리 스택내부로 그리고 메모리 스택외부로 전송된다.
클럭 유닛(22)의 카운팅 시스템은 본질적으로 2개의 어드레스 카운터(352, 352') 및 2개의 경계 레지스터(354, 354')를 포함한다. 물리적 LIFO/FIFO 동작 모드에 대해, 카운터는 각각 푸시 및 팝 클럭 펄스마다 갱신된다. 어드레스 카운터(352)는 멀티플렉서(344, 346)로부터 수신된 각각의 초기화 신호에 의해 적절히 트리거되는 때에, 클럭 제어 유닛(348)으로부터 각각 증분 또는 감분 신호를 수신한다. 물리적 LIFO/FIFO 동작 모드에서, 이들 멀티플렉서(344, 346)는 푸시 및 팝 클럭 분할기(342, 340)에 의해 생성된 바와 같은 각각의 팝 및 푸시 신호를 선택한다. 카운터(352)내의 데이타는 스택 오버플로우에 대해 보장하도록 경계 레지스터(354 또는 356)의 데이타와 비교된다. 데이타 비교는 어드레스 비교기(358)에 의해 제공된다. 오버플로우 상태가 존재하는 경우, 어드레스 비교기(358)는 FPMA 외부로의 전달을 위한 연관된 드라이브 멀티플렉서(360)를 통해 어드레스 버스(28)의 선택 라인에 전달되는 적절한 오버플로우 플래그를 생성한다.
멀티플렉서(350 및 350')는 각각의 카운터(352 및 352')에 어드레스 버스(28)로부터의 적절한 리세트 신호의 선택적 접속을 인에이블시킨다. 리세트 신호를 수신하는 경우, 연관된 카운터는 카운터내부의 각 로드 레지스터에 프로그램된 바와 같은 사전결정된 로드 값으로 리세트된 그 내부 카운트를 갖는다. 카운터의 이들 특정 내부 로드 레지스터는 FPMA 의 부트업 구성 동안 소정의 로드 값으로 프로그램된다.
논리적 LIFO/FIFO 동작 모드에 대해, 어드레스 카운터(352, 352')는 각각 메모리 서브어레이의 기록 및 판독 어드레스 위치를 표시하도록 어드레스 포인터로서 동작한다. LIFO 동작 모드에서, 카운터(352)는 메모리에 데이타를 전송하거나, 또는 메모리로부터 데이타를 수신하는 것과 연관된 판독 및 기록 어드레스를 제공한다. 클럭 제어 유닛(348)이 멀티플렉서(344)를 통해 하강 커맨드를 수신하는 경우, 상기 유닛은 어드레스 카운터(352)에 신호하여 그 어드레스 레지스터를 감분시킨다. 또한, 클럭 제어 유닛(348)은 연관된 선택적 드라이브 멀티플렉서(381)를 통해 어드레스 버스(28)의 선택 라인(368), 또는 대안적으로 I/O 데이타 버스중 하나에 전송되는 적절한 판독 신호를 생성한다. 대안적으로, 스택에 데이타를 기록함에 있어서, 멀티플렉서(346)는 어드레스 버스(28)의 선택 라인으로부터 상승 신호를 수신하고, 이 상승 커맨드를 클럭 제어 유닛(348)에 전송한다. 따라서 클럭 제어 유닛(348)은 어드레스 카운터(352)에 증분 신호를 전송하고 선택적 드라이브 멀티플렉서(380)를 통해 어드레스 버스(28)의 라인에 기록 신호를 전송한다.
선택적 드라이브 멀티플렉서(362)는 어드레스 버스(28)의 선택 라인(364)에 카운터(352)의 각 LIFO 판독/기록 어드레스를 선택적으로 접속한다.
클럭 제어 유닛(348, 348')은 각각 증분 또는 감분 신호, 및 연관된 기록 및 판독 신호간에 필수적인 타이밍을 제공하여 각각 카운터의 적절한 판독/기록 어드레스가 연관된 판독/기록 신호와 적절히 동기화하여 어드레스 버스에 제공됨은 물론이다.
논리적 FIFO 동작 모드에 대해, 2개의 어드레스 카운터가 요구되는데, 한 카운터(352)는 스택에 데이타를 기록하는 어드레스를 표시하고, 다른 카운터(352')는 데이타를 추출할 어드레스가능한 메모리 위치를 추적한다. 데이타가 스택에 기록되는 경우, 클럭 제어 유닛(348)은 멀티플렉서(346)를 통해 상승 커맨드를 수신하고 이에 따라 어드레스 카운터(352)에 신호하여 그 어드레스 카운트를 증분시킨다. 클럭 제어 유닛(348)은 부가직으로 적절한 기록 신호를 생성하여 이 신호를 선택적 드라이브 멀티플렉서(380)를 통해 연관된 어드레스 버스(28)의 그 선택 라인으로, 또는 대안적으로 I/O 데이타 버스에 전송한다. 데이타가 스택으로부터 판독되는 경우, 클럭 제어 유닛(348')은 멀티플렉서(346')를 통해 상승 커맨드를 수신하고, 이에 따라 어드레스 버스(28)의 선택 라인에 판독 신호를 전송한다. 따라서, 카운터(352)는 스택상으로 데이타를 기록하는 포인터 어드레스를 제공하는 반면, 카운터(352')는 스택으로부터 데이타를 판독하는 포인터 어드레스를 제공한다.
멀티플렉서(382)는 LIFO 또는 FIFO 동작이 선택되는지의 여부에 따라, 클럭제어 유닛(348 또는 348')을 선택하여 이로부터 판독 신호를 수신한다. LIFO 동작에서, 클럭 제어 유닛(348)은 상승 및 하강 커맨드를 수신하고 카운터(352)는 메모리 서브어레이로부터 판독하고 메모리 서브어레이에 기록하도록 판독 및 기록 어드레스를 제공한다. 따라서, 클럭 제어 유닛(348)에 의해 제공된 판독 신호는 멀티플렉서(382)를 통해 멀티플렉서(381)에 접속된다. FIFO 동작 모드에서, 판독 어드레스를 제공하는 것은 개별의 어드레스 카운터이며, 판독 신호를 생성하는 것은 개별적인 클럭 제어 유닛(348')이다. 따라서, 멀티플렉서(382)는 클럭 제어 유닛(348) 대신에 클럭 제어 유닛(348')으로부터 판독 신호를 선택하는 대안적인 상태로 프로그램된다.
FIFO 동작 모드의 경우, 어드레스 비교기(358)는 하나의 어드레스(판독 또는 기록)가 다른 어드레스를 오버런(overrun)하지 않음을 보장하도록 카운터(352')의 어드레스와 카운터(352)의 어드레스를 비교한다. 하나의 어드레스가 다른 하나를 오버런하지 않는 경우, 어드레스 비교기(358)는 오버플로우 상태를 신호하는 클럭 제어 유닛(348 및 348')에 다시 접속된 출력을 갖고, 이에 따라 클럭 유닛은 스택 붕괴를 방지하도록 디스에이블될 수도 있다. 어드레스 비교기(358)는 각각 카운터 연관 경계 레지스터(354 또는 356)의 어드레스를 또한 비교한다. 소정의 어드레스 카운터가 연관된 경계 값에 도달하는 경우, 어드레스 비교기(358)는 선택적 드라이브 멀티플렉서(360) 및 라인(366)을 통해 어드레스 버스(28)의 선택 라인에 전송되는 적절한 플래그를 생성한다. 본 발명의 한 특정 실시예에서, 플래그는 외부 회로, 예를 들면, 구성된 FPGA 에 전달되고, 이것은 경계 상태를 긍정응답하여 멀티플렉서(350 또는 350')를 통해 적절한 어드레스 카운터(352 또는 352')에 리세트 신호를 제공한다. 이러한 방식으로, 스택은 FIFO 동작 모드에서 재사이클 될 수도 있다.
도 1 에 도시된 바와 같이, 클럭 유닛은 바람직하게 각각의 메모리 서브어레이(12)에 대해 제공됨에 주의해야 된다. 대안적으로, 소수의 클럭 유닛이 대안적인 실시예에 제공되어, 융통성을 감소시키나 장치 및 영역에 있어서의 비용을 감소시킨다. 따라서, 개별적인 LIFO 또는 FIFO 유닛이 각각의 메모리 서브어레이에서 구성될 수도 있다. 그러나, 메모리 서브어레이의 조합을 위해 적어도 하나의 이러한 클럭 유닛을 갖는 것이 필수적이며, 일군의 서브어레이는 확장된 스택을 제공하도록 함께 조합된다. 따라서, 어드레스 카운터 및 연관된 경계 레지스터는 모든 Z개의 메모리 서브어레이를 포함하는 스택을 완전히 어드레싱하도록 충분한 복수의 비트를갖는다.
클럭 유닛은 구성 데이타를 통해 복수의 어레이 크기(2N워드)를 지원하도록 구성될 수 있다. 이것은 판독/기록 어드레스 비교 시스템(예를 들면, 358)을 프로그램할 능력을 포함하여 적절한 어드레스 비트만을 비교하고 FPMA 의 어드레스 버스에 적절한 수의 어드레스 비트를 게이트한다.
상태 머신 액세스 포트
도 1a, 1e, 28a 및 28b 를 참조하면, 상태 머신 액세스 포트(24)는 FPMA 에 대안적인 직접 액세스를제공한다. 한 특정 실시예에서, 알려진 FPGA의 구성 로직의 상태 머신은 프로그래밍 데이타를 저장하는 캐쉬로서 메모리 어레이를 액세스하고 그 상태 머신은 필드 프로그래머블 게이트 어레이의 각종 자원을 재프로그램 하도록 계속적으로 검색할 것이다. 플립/플롭(398)은 필드 프로그래머블 메모리 어레이(10)로부터 판독된 바와 같은 데이타를 래치하고 이 래치된 데이타를 상태 머신 판독 포트(386)에 출력한다. 본 발명의 특정 실시예에서, FPMA(10)는 판독 비트 라인 상호접속(30') 및 부 I/O 상호접속선(38')을 포함하고, 멀티플렉서(392)는 두 대안적인 경로중 하나로부터 판독 데이타를 수신하도톡 플립/플롭(398)을 선택적으로 접속한다. 따라서, FPMA 가 전술한 바와 같은 FPGA 구성 캐쉬 저장에 대해 이용되는 경우, 연관된 캐쉬 메모리 서브어레이는 물리적으로 인접한 메모리 서브어레이(121)로 제한될 필요는 없다. 예를 들면, 메모리 서브어레이(122, 123...12Z)는 캐쉬 메모리로서 제공하도록 구성될 수 있고 그에 대한 액세스는 부판독 포트 상호접속선(38')을 통해 대안적인 부 I/O 버스(38)에 의해 제공된다. 본 발명의 대안적인 실시예에서, 부 I/O 버스(38) 및 판독 비트 라인 계층 구조(30)는 (도 16-19 및 20-25 를 참조하여 기술된 바와 같이) 하나에 대해 다른 하나가 붕괴하고, 멀티플렉서(392)가 제거되며 플립/플롭(398)의 입력은 대안적인 실시예의 판독 비트 라인 계층 구조에 직접 접속될 수도 있다.
FPMA(10)로부터 상태 머신 액세스 포트를 통해 데이타를 판독하는 경우, 어드레스는 상태 머신 액세스 포트(24)의 어드레스 포트(390)(도 1e 및 도 28b)에 제공된다. 선택적 드라이브 멀티플렉서(396)는 어드레스 상호접속선(28')을 통해 어드레스 버스(28)의 선택 라인에 어드레스 데이타를 전송한다. 차후에, 복수의 판독 포트 실시예에서, 어드레스된 필드 프로그래머블 메모리 어레이의 판독 데이타는 멀티플렉서(392)에 의해 선택된 바와 같은 대안적인 데이타 경로중 하나를 통과하고, 플립/플롭(398)의 입력단에서 수신된다. 판독 스트로브는 스트로브 입력(384)을 통해 필드 프로그래머블 메모리 어레이로부터 검색된 바와 같은 판독 데이타를 포착하는 플립/플롭에 인가된다.
상태 머신 액세스 포트(24)를 통해 FPMA(10)에 데이타(예를 들면, 초기화 데이타)를 저장하기 위해, 예를 들면 FPGA(도시되지 않음)의 상태 머신은 비트 라인 상호접속선(394)을 통해 FPMA(10)의 프로그래밍 비트 라인 상호접속선(36')에 접속되는 프로그래밍 비트 라인 상호접속선(388)에 데이타를 제공한다. 이하 언급되는 바와 같이, 프로그래밍 비트 라인 버스(36)는 연관된 프로그래밍 워드 라인에 따라 어드레스된 바와 같은 메모리 서브어레이(12)의 메모리 셀(48)에 직접적인 액세스를 제공한다. 따라서, 표준 어드레스 디코딩 회로(도시되지 않음)는 연관된 프로그래밍 어드레스를 디코드하고 원하는 메모리 셀(48)로의 데이타 전송을 인에이블시키도록 선택 프로그래밍 워드라인(302)(도 1b 그리고 도 2a 및 2b 의 PWL)을 구동시킨다.
비동기 판독
앞서 개시된 어레이의 비동기 동작을 인에이블시키는 본 발명의 실시예가 제공된다.
비동기 모드에서, 내부 판독 비트 라인 네트워크(반드시 단일 버스는 아님)는 종래 기술 절에서 개요되고 적절한 신호에 의해 제어된 바와 같은 도 29 의 블럭(506)으로 표시된 프로세스에 따라 프리차지된다. 서브어레이(124)의 메모리셀에서 유효 워드 라인 신호의 수신시에, 메모리 셀 데이타는 내부 판독 비트 라인 네트워크(506)상으로 게이트된다. 셀 데이타는 내부 버스 프리차지를 프리차지하거나 또는 프리차지 값을 강화한다(셀 출력은 두 방향으로 구동시킬 수 있음). 내부 네트워크상의 값은 상위 계층적 비트 라인(H2, H3)에 대한 접속을 야기시키는 출력 신호(503)를 제공하는 장치(502)를 통해 반전된다. 데이타 버스의 제 1 레벨 계층(H1)을 이용하도록 구성된 어레이에서, 장치(500)(도 30)는 그의 입력 및 출력(H1)사이의 전송을 제공할 것이다. 장치(500)는 비동기 모드에서 H1 에 최소 출력 캐패시턴스를 제공하도록 개별적인 N 및 P 전송 선택 게이트(CNTL(N) 및 CNTL(P) 그리고 NFET 및 PFET)의 반전된 스택 순서를 갖는 3상 인버터이다. 503 및 H1 간의 접속의 3상 제어는 다음의 진리 표를 준수하고 여기서 SEL은 이러한 계층에 서브어레이를 접속하도록 하는 구성 비트이며, ASYNC 는 판독 모드가 비동기적(1)이지 또는 동기적(0)인지를 판정하는 구성 비트이고 HOA 는 디코딩된 상위 어드레스 값(1 은 비활성, 0 은 활성임)이다(당 분야에서 통상의 지식을 가진자라면 입력( SEL, ASYNC 및 HOA) 및 출력(CNTL(N) 및 CNTL(P))은 복수의 방식으로 구현될 수 있다).
앞으로부터 알 수 있는 바와 같이, 동기 모드에서, 데이타는 데이타 값에 따라 N개의 스택(500 의 520)을 통해 비트 라인(H1)의 가능한 프리차지와 함께 전송될 것이다. 상위 계층에 대한 접속은 앞의 절에서 기술되는 방식으로, N개의 스택 장치(252 및 254)를 통해서 그리고 그의 프리차지(258 및 260)를 통해서 만들어진다(비록 상위 계층에 대한 비동기 능력이 가능하다 하더라도 예시된 실시예에는 제공되지 않음).
임의의 506(H1,H2,H3)상에서 전송된 데이타는 앞서 기술된 타이밍 판독 비트라인 데이타를 이용하여 포착 클럭 생성 유닛에 의해 구동된 바와 같은 포착 클럭이 소정의 포착 래치 뱅크(400)에서 래치될 수 있다.
비동기 동작에 대해, 블럭(504 및 500)내의 프리차지 장치는 구성 비트를 통해 턴 오프된다. 메모리 셀 서브어레이에 의해 전달된 데이타는 장치(502)에 의해 반전된다. 앞서 정의된 적절한 SEl 및 ASYNC 설정치와 함께 유효 상위 어드레스가 주어진다면, 장치(500)는 3상 인터페이스에 비트 라인 계층(H1)을 제공하여 프리차지없이 두 극성의 데이타를 전송한다. (따라서 긴 지연은 프리차지가 주어지지 않으면 비동기 모드에서 지속된다.) 앞서 기술된 포착 클럭 생성 회로는 구성 비트를 통해 제어된 바와 같은 세트 우위 DDF(set dominant DDF)에 대해 세트핀을 통해 비활성으로 강제되고, 비동기 방식으로 래치 회로를 통해 내부 비트 라인 또는 H1 로부터의 데이타가 전달하도록 허용한다. 비록 대안적인 실시예가 고레벨의 계층에서의 비동기 동작을 구현하는 것이 가능하다 하더라도, 예시된 실시예에서는 비동기 동작은 상위 레벨 계층(H2 또는 H3)으로 설계되지 않으므로, 이모드에서 블럭(252 및 254)은 구성 비트를 통해 인에이블되지 않는다.
서브어레이내의 내부 판독 비트 라인 네트워크는 그 서브어레이내의 2층 통신 네트워크가 될 수 있으며, 그 제 1 층은 16개의 셀을 접속하고, ASYNC 및 어드레스 부내의 내부 x16 디코드 라인에 의해 제공된 게이트 제어와, 블럭(504)에 대해 기술된 것과 유사한 방식으로 제어된 프리차지를 갖는 500 과 유사한 구조에서 종결하며, 제 2 타이어는 제 1 층은 종점을 접속하고, 506 및 502 에 접속을 제공한다.
따라서, 기술된 내용은 와이드 RAM 기능, 디프 RAM 기능, 복수의 RAM 기능, LlFO/FIFO 기능, 및 롤오버 능력을 제공하도록 구성될 수 있는 필드 프로그래머블 메모리 어레이이다.
또한, 필드 프로그래머블 메모리 어레이와 같은 외부 회로에 대한 로컬 캐쉬로서 사용되는 필드 프로그래머블 메모리 어레이가 사용되었다.
연관된 메모리 서브어레이의 메모리 유닛은 복수의 입력 및 복수의 출력과 함께, 그리고 또한 대안적인 실시예에서는 직렬 스캔 또는 수직 쉬프트 능력을 제공하는 선택사양적인 연관된 전송 회로와 함께 개시되었다.
필드 프로그래머블 메모리 어레이의 메모리 서브어레이에 대한 각종 배열을 지원하기 위해, 필드 프로그래머블 메모리 어레이의 메모리 셀로 또는 메모리 셀로부터 데이타를 전달하도록 각 계층 연관된 경로배정 자원의 프로그램가능한 데이타 라인 구조가 개시되었다.
각종 메모리 배열 및 기능을 지원하는 적절한 어드레스 디코딩을 인에이블시키는 프로그램가능한 어드레스 유닛이 또한 개시되었다. 메모리를 액세스하는 클럭 신호를 생성하고 각각의 메모리 서브어레이내에서 물리적 또는 논리적 LIFO/FIFO 기능을 구현하는 프로그램가능한 클럭 유닛이 개시되었다.
마지막으로, 외부 회로, 예를 들면 연관된 필드 프로그래머블 게이트 어레이의 상태 머신에 의해 보다 직접 액세스되는 필드 프로그래머블 메모리 어레이를 허용하는 상태 머신 액세스 포트가 개시되었다.
반대로, 특별히 명시되지 않은 경우, Xs 의 임의의 집합체 또는 복수를 언급할 때 "각각의 X"와 같은 용어 또는 어구가 사용되는 경우, 초기에 단지 2개의 Xs 만이 집합체 또는 복수를 충족시키도록 요구하고, 따라서 "각각의 X"와 같은 용어 또는 어구는 집합체 또는 복수를 초기에 충족시키는데 필요한 Xs 를 단지 지칭함은 물론이다. 다른 Xs 는 "각각의 X"와 같은 용어 또는 어구에 의해 포함된 반드시 필수적이지는 않은 충족된 집합체 또는 복수외에 존재할 수도 있다.
당 분야에서 통상의 지식을 가진자라면 전술한 멀티플렉서, 스위치 등에 요구된 접속을 제공하는 복수의 방법이 존재함을 명백히 알 수 있다. 예를 들면, 멀티플렉서내의 신호 경로는 전송 트랜지스터, EPROM, 접속된 라인들간에 원하는분리 또는 접속을 실행하는 가용성 링크 또는 안티휴즈를 포함할 수 있다. 임의의 특정 구조를 통해 접속을 필요로 하는 때에, 사용자는 접속을 실행할 적절한 프로그래밍을 수행하도록 요구될 수 있다. 레이저 프로그램 장치는 교차점에서 선택사양적인 용접을 또한 사용할 수 있다. 요구되는 접속은 용접을 포함하거나 또는 배제함으로써 제공된다. 마스크 프로그램 장치는 관련 접속을 단순히 포함하거나 생략할 수 있다. 프로그래밍하기 전에, 선택을 위해 복수의 신호가 이용가능하고, 프로그래밍한 후에, 신호중 하나가 선택되어 두 라인간에 경로가 제공되는신호 선택을 위한 임의의 구조는 본 명세서에서 멀리플렉서로서 불리운다. 따라서, 본 명세서에서 사용되는 바와 같은 멀티플렉서는 명확히 표시되지 않은 경우, 단방향 또는 양방향 접속을 지원할 수 있다. 또한 본 명세서에서 기술된 단일 멀티플렉서는 실질적으로 신호 선택의 다단계를 포함하는 계층적 멀티플렉싱 방안일 수도 있다. 본 명세서를 통해서 사용되는 "접속"은 명확히 표시되지 않은 경우, 도전체들간의 직접적인 도전성 접속, 또는 하나의 도전체로부터의 정보가 다른 도전체에 제공되는 간접적인(예를 들면, 버퍼링된/반전된) 인터페이스를 표시한다.
마찬가지로, "입력" 또는 "출력"은 명확히 표시되지 않은 경우, 직접적인 또는 간접적인(예를 들면, 버퍼링된/반전된) 인터페이스를 표시한다.
본 명세서에서 사용된 "인에이블 신호, 인에이블 데이타 등"의 용어는 필수적인 회로 상태를 실행할 수 있는 임의의 유형의 신호를 포함하도록 폭넓게 구성되어야 한다. 인에이블신호는 로직 신호, 클럭 신호 등이 될 수 있다. 또한 본 명세서에서 사용되는 경우의 "신호"라는 용어는 단일 신호 라인, 또는 복수의 신호 라인일 수도 있으며, 통상적으로 적절한 회로 동작을 실행하는데 필요한 데이타의 존재를 표시한다.
본 명세서에서 사용되는 경우의 "어레이"라는 용어는 집적 회로 또는 시스템을 형성하는 복수의 집적 회로상에서 형성된 회로의 전체, 또는 집적 회로 또는 시스템을 형성하는 복수의 집적 회로내에서 임의로 크기조정된 회로의 일부를 표시한다. 따라서, 하나의 큰 어레이는 복수의 작은 어레이를 포함하도록 고려될 수도 있다.
본 발명은 본 발명의 바람직한 실시예를 참조하여 특히 도시되고 기술되었으나, 당 분야에서 통상의 지식을 가진자라면 본 발명의 정신 및 범주로부터 벗어나지 않고 형태 및 세부사항에 있어서 각종 다른 변경이 이루어질 수 있음은 물론이다.
상기한 바와 같은 본 발명에 따르면, 프로그래머블 메모리 어레이와 함께 필드 프로그래머블 게이트 어레이를 구현하는 집직 회로를 제공함으로써, 이 필드 프로그래머블 메모리 어레이는 필드 프로그래머블 게이트 어레이의 구성 동안, 필드 프로그래머블 게이트 어레이의 재구성 동안, 또는 필드 프로그래머블 게이트 어레이의 정상 기능 동안 액세스가 가능한 효과가 있다.

Claims (13)

  1. 복수의 액세스 모드들로 프로그램가능한 복수의 메모리 서브어레이를 포함하는 프로그래머블 메모리 어레이에 있어서,
    상기 서브어레이들중 적어도 하나는,
    (a) 데이타를 보유(holding)하는 메모리 셀(a memory cell)과,
    (b) 제 1 선택 신호(a first select signal)를 전달(propagate)하는 제 1 워드라인(a first word line)과,
    (c) 제 1 비트 라인(a first bit line)과,
    (d) 상기 제 1 비트 라인 및 상기 메모리 셀 사이에 배치되어 있고, 이들사이에 신호를 전달하도록, 상기 제 1 선택 신호에 따라 상기 제 1 비트 라인과 상기 메모리 셀을 선택적으로 접속하는 제 1 선택적 접속기(a first selective coupler)와,
    (e) 상기 메모리 셀에 접속되어 있고, 상기 메모리 셀로부터의 신호를 전달하는 출력 인터페이스(an output interface)와,
    (f) 상기 메모리 셀에 접속되어 있고, 상기 복수의 액세스 모드들 중 적어도 몇개의 모드를 인에이블시키기 위해 상기 메모리 셀에 신호를 전달하는 부가적인 데이타 라인(an addititional data line)을 포함하는 프로그래머블 메모리 어레이.
  2. 복수의 액세스 모드들로 프로그램가능한 복수의 메모리 서브어레이를 포함하는 프로그래머블 메모리 어레이에 있어서,
    상기 서브어레이들중 적어도 하나는.
    (a) 데이타를 보유하는 메모리 셀과,
    (b) 각각이 연관된 인에이블 신호를 전달하는 복수의 워드 라인과,
    (c) 복수의 비트 라인과,
    (d) 각기 상기 메모리 셀과 상기 복수의 비트 라인중의 연관된 비트 라인 사이에 배치되어 있고, 상기 복수의 워드 라인중 연관된 워드 라인의 인에이블 신호에 의해 인에이블되는 경우 상기 연관된 비트 라인과 상기 메모리 셀을 선택적으로 접속하여 이들 사이에 신호를 전달하도록 하는 복수의 선택적 접속기를 포함하는 프로그래머블 메모리 어레이.
  3. 연관된 워드 라인을 갖는 행과, 연관된 프로그램가능한 비트 라인 구조를 갖는 열로 배열된 복수의 메모리 셀을 구비한 프로그래머블 메모리 어레이에 있어서,
    상기 셀의 열의 프로그램가능한 비트 라인 구조는,
    (a) 각기 상기 소정의 셀 열의 메모리 셀의 각각의 서브어레이 그룹으로 또는 그 그룹으로부터 데이타를 전달하는 데 전용되는 복수의 로컬 비트 라인(a plurality of local bit line)과,
    (b) 상기 복수의 로컬 비트 라인중 인접한 로컬 비트 라인들 간에 위치하고, 상기 인접한 로컬 비트 라인들 간에 신호를 선택적으로 전달하도록 프로그램가능한 로컬 선택적 접속기를 포함하는 프로그래머블 메모리 어레이.
  4. 연관된 워드 라인을 갖는 행과, 연관된 프로그램가능한 비트 라인 구조를 갖는 열로 배열된 복수의 메모리 셀을 구비한 프로그래머블 메모리 어레이에 있어서,
    상기 셀의 열의 프로그램가능한 비트 라인 구조는,
    (a) 각기 복수의 상기 소정의 셀 열의 메모리 셀의 각각의 서브어레이 그룹과 연관되는 로겉 비트 라인(a plurality of local bit line)과,
    (b) 상기 복수의 로걸 비트 라인중 인접한 로컬 비트 라인들간에 위치하고, 상기 인접한 로컬 비트 라인들간에 신호를 선택적으로 전달하도록 프로그램가능한 로컬 선택적 접속기와,
    (c) 각기 상기 열의 각각의 메모리 셀 세그먼트와 연관되는 복수의 반전역적 비트 라인(a plurality of semi-global bit lines) - 각각의 세그먼트는 복수의 상기 메모리 셀 서브어레이 그룹(a plurality of said sub-array groups of memory cells)을 포함함 - 과,
    (d) 상기 복수의 반전역적 비트 라인중 인접한 반전역적 비트 라인들간에 위치하고, 상기 인접한 반전역적 비트 라인들간에 신호를 선택적으로 전달하도록 프로그래밍가능한 반전역적 선택적 접속기(a semi-global selective coupler)와,
    (e) 소정의 메모리 셀 서브어레이 그룹의 각각의 로컬 비트 라인과 상기 소정의 서브어레이 그룹을 포함하는 세그먼트의 연관된 반전역적 비트 라인사이에 위치하고, 각기 상기 연관된 로걸 비트 라인과 각각의 반전역적 비트 라인 사이에 신호를 선택적으로 전달하도록 프로그램가능한 제 1 계층 선택적 스위치(a first hierarchical selective switch)를 포함하는 프로그래머블 메모리 어레이.
  5. 제 4 항에 있어서,
    상기 프로그램가능한 비트 라인 구조는 상기 셀의 열과 연관된 전역적 비트 라인(a global bit line)을 더 포함하며,
    각각의 제 1 계층 스위치는 또한 상기 연관된 로컬 비트 라인과 상기 각각의 반전역적 비트 라인 및 상기 전역적 비트 라인중 하나 사이에 신호를 선택적으로 전달하도록 프로그램가능한 프로그래머블 메모리 어레이.
  6. 제 5 항에 있어서,
    소정의 로컬 비트 라인과 연관된, 각각의 메모리 셀 서브어레이 그룹의 각 메모리 셀은 연관된 내부 서브어레이 비트 라인(an associated internal sub-array bit line)을 통해 데이타를 액세스하고,
    상기 프로그램가능한 비트 라인 구조는 각각의 내부 서브어레이 비트 라인에 대한 선택적 접속기를 더 포함하고, 상기 선택적 접속기는 상기 각각의 내부 서브어레이 비트 라인과 상기 연관된 로컬 비트 라인, 상기 연관된 반전역적 비트 라인 및 상기 전역적 비트 라인을 포함하는 그룹중 하나의 비트 라인 사이에 신호를 선택적으로 전달하도록 프로그램가능한 프로그래머블 메모리 어레이.
  7. 주 I/O 버스(a primary I/O bus) 및 부 I/O 버스를 갖는 프로그래머블 메모리 어레이의 프로그래머블 상호접속 회로(a progrmmable intercoupling circuit)에 있어서,
    (a) 하나의 출력단과 복수의 입력단을 갖는 제 1 선택적 접속기 - 상기 복수의 입력단중 소정의 입력단들은 상기 주 I/O 버스 상호접속선의 선택가능한 주 상호접속선에 접속되고, 상기 제 1 선택적 접속기는 제 1 선택 신호(a first select signal)에 따라 상기 출력단과 상기 복수의 입력단중의 선택가능한 하나의 입력단 사이에 신호를 선택적으로 전달하도록 프로그램가능함 - 와,
    (b) 상기 제 1 선택적 접속기의 출력단과 연관된 신호를 수신하도록 전기적으로 접속된 하나의 입력단과, 복수의 출력단을 갖는 제 2 선택적 접속기 - 상기 복수의 출력단중의 소정의 출력단들은 상기 부 I/O 버스의 선택가능한 부 상호접속선에 접속되며, 상기 제 2 선택적 접속기는 제 2 선택 신호(a second select signal)에 따라 상기 하나의 입력단과 상기 복수의 출력단중의 선택가능한 하나의 출력단 사이에 신호를 선택적으로 전달하도록 프로그램가능함 - 를 포함하는 프로그래머블 상호접속 회로.
  8. 제 7 항에 있어서,
    상기 제 1 선택적 접속기의 출력단과 제 2 선택적 접속기의 입력단 사이에서 선택 신호를 전달하도록 전기적으로 배치되어 있고, 상기 선택 신호의 극성을 선택적으로 반전시키도록 프로그램가능한 프로그래머블 극성 회로(a programmable polarity circuit)를 더 포함하는 프로그래머블 상호접속 회로.
  9. 프로그래머블 어드레스 디코더에 있어서,
    (a) M개의 워드 라인과,
    (b) 어드레스 데이타를 수신하는 복수의 어드레스 입력단과,
    (c) 인에이블 신호를 수신하는 인에이블 입력단과,
    (d) 연관된 어드레스 데이타가 상기 복수의 어드레스 입력단에서 수신되고 상기 인에이블 신호에 따라 인에이블되는 경우, 상기 M개의 워드 라인중 하나의 워드 라인을 선택적으로 구동시키는 로직 수단(logic means)과,
    (e) 인에이블 선택 신호(an enable select signal)에 따라 상기 인에이블 신호를 제공하는 비클럭(non-clock) 프로그래머블 수단을 포함하는 프로그래머블 어드레스 디코더.
  10. 제 9 항에 있어서,
    상위 어드레스 인에이블 신호(a high address enable signal)를 수신하는 상위 어드레스 인에이블 입력단(a high address enable input)을 더 포함하며,
    상기 로직 수단은 연관된 어드레스 데이타가 상기 복수의 어드레스 입력단에서 수신되고 상기 인에이블 신호에 따라 인에이블되고 상위 어드레스 인에이블 신호에 의해 인에이블되는 경우, 상기 하나의 워드 라인을 선택적으로 구동시키는 프로그래머블 어드레스 디코더.
  11. 제 10 항에 있어서,
    상위 어드레싱 데이타(high order addressing data)를 수신하도록 선택적으로 접속된 입력단과, 상기 상위 어드레싱 데이타에 따라 상기 상위 어드레스 인에이블 입력단을 선택적으로 구동시키도록 접속된 출력단을 갖는 상위 어드레스 디코더 회로(a high order address decoder circuit)를 더 포함하는 프로그래머블 어드레스 디코더.
  12. 프로그래머블 메모리 어레이에 있어서,
    (a) 복수의 메모리 서브어레이 - 상기 복수의 메모리 서브어레이의 각각은 행 및 열로 배열된 복수의 메모리 셀과, 각각의 메모리 셀의 열이 그 열의 메모리셀에 대해 데이타를 제공하고 그 열의 메모리셀로부터 데이타를 수신하는 복수의 로컬 비트 라인중의 연관된 로컬 비트 라인을 갖는 상기 복수의 로컬 비트 라인과,
    상기 복수의 메모리 셀의 각 행이 연관된 로킬 비트 라인에 대해 상기 행의 메모리 셀의 액세스를 제어하도록 선택 신호를 제공하는 연관된 워드 라인을 갖는 복수의 워드라인을 포함함- 와,
    (b) 각 메모리 서브어레이의 로컬 비트 라인을 선택적으로 구성하는 프로그래머블 버스 매트릭스(a programmable bus martix)를 포함하며,
    상기 프로그래머블 버스 매트릭스는 상기 복수의 메모리 서브어레이중 하나의 서브어레이의 로걸 비트 라인이 상기 복수의 서브어레이중 다른 서브어레이의 대응하는 로컬 비트 라인에 전기적으로 상호접속되어 상기 하나의 서브어레이 및 상기 다른 하나의 서브어레이의 대응하는 열의 각각의 메모리 셀에 대해 공통 비트 라인을 제공하는 제 1 구성(a first configuration)으로 프로그램될 수 있고,
    상기 프로그래머블 버스 매트릭스는 상기 복수의 서브어레이중 하나의 서브 어레이의 로컬 비트 라인이 상기 복수의 서브어레이중 상기 다른 서브어레이의 대응하는 로컬 비트 라인과 병렬로 전기적으로 상호접속되어 상기 하나의 서브어레이및 상기 다른 하나의 서브어레이의 대응하는 열의 메모리 셀을 액세스하도록 별개의 병렬 비트 라인을 제공하는 제 2 구성으로 프로그램될 수 있는 프로그래머블 메모리 어레이.
  13. 메모리 어레이에 있어서,
    (a) 메모리 블럭의 각각이 M × N 메모리 셀로 된, 통상적인 장방형 서브 어레이(a generally rectangular sub-array)를 포함하는 Z개의 메모리 블럭(Z memory blocks)과 ,
    (b) 상기 메모리 블럭의 각각에 접속가능한 어드레스 라인과,
    (c) 상기 메모리 블럭의 각각에 접속가능한 데이타 라인과,
    (d) I/O 회로와,
    (d) 상기 어드레스 라인, 상기 데이타 라인, 상기 I/O 회로내에 분포된 프로그래밍 요소로서, i 및 j가 양의 정수인 경우, 상기 프로그래밍 요소를 프로그래밍 하므로써 상기 Z개의 메모리 블럭의 적어도 한 부분이 iM × jN 메모리로 구성될 수 있도록 하는 상기 프로그래밍 요소를 포함하는 메모리 어레이.
KR1019960046031A 1995-12-20 1996-10-15 프로그래머블 메모리 어레이와 프로그래머블 어드레스 디코더와 프로그래머블 상호접속회로 KR100267425B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/575,312 US5914906A (en) 1995-12-20 1995-12-20 Field programmable memory array
US08/575,312 1995-12-20

Publications (1)

Publication Number Publication Date
KR100267425B1 true KR100267425B1 (ko) 2000-10-16

Family

ID=24299802

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960046031A KR100267425B1 (ko) 1995-12-20 1996-10-15 프로그래머블 메모리 어레이와 프로그래머블 어드레스 디코더와 프로그래머블 상호접속회로

Country Status (7)

Country Link
US (10) US5914906A (ko)
EP (1) EP0780846A3 (ko)
JP (1) JPH09186581A (ko)
KR (1) KR100267425B1 (ko)
CN (1) CN1117379C (ko)
SG (1) SG104910A1 (ko)
TW (1) TW297128B (ko)

Families Citing this family (195)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100477034B1 (ko) * 1995-01-31 2005-03-21 가부시끼가이샤 히다치 세이사꾸쇼 반도체 메모리 장치
US6148376A (en) 1996-05-10 2000-11-14 Apple Computer, Inc. Method and apparatus for an improved stack arrangement and operations thereon
US5715197A (en) 1996-07-29 1998-02-03 Xilinx, Inc. Multiport RAM with programmable data port configuration
US5821776A (en) * 1997-01-31 1998-10-13 Actel Corporation Field programmable gate array with mask programmed analog function circuits
US5959466A (en) 1997-01-31 1999-09-28 Actel Corporation Field programmable gate array with mask programmed input and output buffers
US6150837A (en) 1997-02-28 2000-11-21 Actel Corporation Enhanced field programmable gate array
DE19740695C2 (de) * 1997-09-16 2002-11-21 Infineon Technologies Ag Datenspeicher mit Mehrebenenhierarchie
US6052327A (en) * 1997-10-14 2000-04-18 Altera Corporation Dual-port programmable logic device variable depth and width memory array
US6288970B1 (en) 1997-10-16 2001-09-11 Altera Corporation Programmable logic device memory array circuit having combinable single-port memory arrays
US6191998B1 (en) 1997-10-16 2001-02-20 Altera Corporation Programmable logic device memory array circuit having combinable single-port memory arrays
US6104208A (en) * 1998-03-04 2000-08-15 Altera Corporation Programmable logic device incorporating function blocks operable as wide-shallow RAM
US7146441B1 (en) * 1998-03-16 2006-12-05 Actel Corporation SRAM bus architecture and interconnect to an FPGA
US6049487A (en) * 1998-03-16 2000-04-11 Actel Corporation Embedded static random access memory for field programmable gate array
US6492833B1 (en) * 1998-04-30 2002-12-10 Altera Corporation Configurable memory design for masked programmable logic
US6282143B1 (en) * 1998-05-26 2001-08-28 Hewlett-Packard Company Multi-port static random access memory design for column interleaved arrays
US6137307A (en) * 1998-08-04 2000-10-24 Xilinx, Inc. Structure and method for loading wide frames of data from a narrow input bus
US6334169B1 (en) * 1998-09-30 2001-12-25 International Business Machines Corporation System and method for improved bitwrite capability in a field programmable memory array
FR2787600B1 (fr) * 1998-12-17 2001-11-16 St Microelectronics Sa Memoire tampon associee a plusieurs canaux de communication de donnees
US6262933B1 (en) 1999-01-29 2001-07-17 Altera Corporation High speed programmable address decoder
JP3616518B2 (ja) 1999-02-10 2005-02-02 日本電気株式会社 プログラマブルデバイス
KR100761328B1 (ko) * 1999-05-07 2007-09-27 모픽스 테크놀로지 아이엔씨 헤테로지니어스 프로그래머블 게이트 어레이
WO2000077652A2 (de) * 1999-06-10 2000-12-21 Pact Informationstechnologie Gmbh Sequenz-partitionierung auf zellstrukturen
US6107975A (en) * 1999-06-28 2000-08-22 The United States Of America As Represented By The National Security Agency Programmable antenna
US6347346B1 (en) * 1999-06-30 2002-02-12 Chameleon Systems, Inc. Local memory unit system with global access for use on reconfigurable chips
US6256253B1 (en) * 2000-02-18 2001-07-03 Infineon Technologies North America Corp. Memory device with support for unaligned access
US6201750B1 (en) 2000-06-21 2001-03-13 International Business Machines Corporation Scannable fuse latches
IL137635A0 (en) 2000-08-01 2001-10-31 Visionix Ltd Apparatus for interactive optometry
US6661730B1 (en) * 2000-12-22 2003-12-09 Matrix Semiconductor, Inc. Partial selection of passive element memory cell sub-arrays for write operation
US6862676B1 (en) 2001-01-16 2005-03-01 Sun Microsystems, Inc. Superscalar processor having content addressable memory structures for determining dependencies
US7299203B1 (en) * 2001-04-19 2007-11-20 Xilinx, Inc. Method for storing and shipping programmable ASSP devices
US6462579B1 (en) * 2001-04-26 2002-10-08 Xilinx, Inc. Partial reconfiguration of a programmable gate array using a bus macro
US6388466B1 (en) * 2001-04-27 2002-05-14 Xilinx, Inc. FPGA logic element with variable-length shift register capability
US6629194B2 (en) * 2001-05-31 2003-09-30 Intel Corporation Method and apparatus for low power memory bit line precharge
US8332502B1 (en) 2001-08-15 2012-12-11 Metavante Corporation Business to business network management event detection and response system and method
JP4317353B2 (ja) * 2001-10-19 2009-08-19 三星電子株式会社 メモリシステムの能動終端抵抗の制御装置及び方法
US7376767B1 (en) 2002-01-04 2008-05-20 Xilinx, Inc. Distributed buffering system having programmable interconnecting logic and applications thereof
EP1476932B1 (en) * 2002-02-19 2014-04-09 Parker-Hannifin Corporation Linear motor with magnet rail support
US6594171B1 (en) * 2002-03-07 2003-07-15 Hewlett-Packard Development Company, L.P. Memory systems and methods of making the same
US6774667B1 (en) 2002-05-09 2004-08-10 Actel Corporation Method and apparatus for a flexible chargepump scheme for field-programmable gate arrays
US7378867B1 (en) * 2002-06-04 2008-05-27 Actel Corporation Field-programmable gate array low voltage differential signaling driver utilizing two complimentary output buffers
CN100359602C (zh) * 2002-06-20 2008-01-02 中兴通讯股份有限公司 一种有效利用现场可编程门阵列中的存储器的方法
US6992503B2 (en) 2002-07-08 2006-01-31 Viciciv Technology Programmable devices with convertibility to customizable devices
US7112994B2 (en) * 2002-07-08 2006-09-26 Viciciv Technology Three dimensional integrated circuits
US20040004251A1 (en) * 2002-07-08 2004-01-08 Madurawe Raminda U. Insulated-gate field-effect thin film transistors
US7129744B2 (en) * 2003-10-23 2006-10-31 Viciciv Technology Programmable interconnect structures
US7673273B2 (en) * 2002-07-08 2010-03-02 Tier Logic, Inc. MPGA products based on a prototype FPGA
US6982587B2 (en) * 2002-07-12 2006-01-03 Rambus Inc. Equalizing transceiver with reduced parasitic capacitance
US6765427B1 (en) 2002-08-08 2004-07-20 Actel Corporation Method and apparatus for bootstrapping a programmable antifuse circuit
US7434080B1 (en) 2002-09-03 2008-10-07 Actel Corporation Apparatus for interfacing and testing a phase locked loop in a field programmable gate array
DE60235888D1 (de) * 2002-09-12 2010-05-20 St Microelectronics Asia Pseudo- Zweidimensionaler Speicher mit wahlfreiem Zugriff
US6750674B1 (en) 2002-10-02 2004-06-15 Actel Corporation Carry chain for use between logic modules in a field programmable gate array
US8643162B2 (en) * 2007-11-19 2014-02-04 Raminda Udaya Madurawe Pads and pin-outs in three dimensional integrated circuits
US7812458B2 (en) * 2007-11-19 2010-10-12 Tier Logic, Inc. Pad invariant FPGA and ASIC devices
US6727726B1 (en) 2002-11-12 2004-04-27 Actel Corporation Field programmable gate array architecture including a buffer module and a method of distributing buffer modules in a field programmable gate array
US7793020B1 (en) * 2002-11-27 2010-09-07 International Business Machines Corporation Apparatus and method to read information from an information storage medium
US6825690B1 (en) 2003-05-28 2004-11-30 Actel Corporation Clock tree network in a field programmable gate array
US6838902B1 (en) * 2003-05-28 2005-01-04 Actel Corporation Synchronous first-in/first-out block memory for a field programmable gate array
US6867615B1 (en) * 2003-05-30 2005-03-15 Actel Corporation Dedicated input/output first in/first out module for a field programmable gate array
US7385419B1 (en) * 2003-05-30 2008-06-10 Actel Corporation Dedicated input/output first in/first out module for a field programmable gate array
US6940779B2 (en) * 2003-08-13 2005-09-06 Lattice Semiconductor Corporation Programmable broadcast initialization of memory blocks
US6912165B2 (en) * 2003-08-22 2005-06-28 International Business Machines Corporation Method for transparent updates of output driver impedance
US7030651B2 (en) * 2003-12-04 2006-04-18 Viciciv Technology Programmable structured arrays
US8250295B2 (en) 2004-01-05 2012-08-21 Smart Modular Technologies, Inc. Multi-rank memory module that emulates a memory module having a different number of ranks
US7042792B2 (en) * 2004-01-14 2006-05-09 Integrated Device Technology, Inc. Multi-port memory cells for use in FIFO applications that support data transfers between cache and supplemental memory arrays
US7167025B1 (en) * 2004-02-14 2007-01-23 Herman Schmit Non-sequentially configurable IC
US7126381B1 (en) 2004-02-14 2006-10-24 Herman Schmit VPA interconnect circuit
US7284222B1 (en) 2004-06-30 2007-10-16 Tabula, Inc. Method and apparatus for identifying connections between configurable nodes in a configurable integrated circuit
US7157933B1 (en) 2004-02-14 2007-01-02 Herman Schmit Configurable circuits, IC's, and systems
US7126373B1 (en) 2004-02-14 2006-10-24 Herman Schmit Configurable logic circuits with commutative properties
US7425841B2 (en) 2004-02-14 2008-09-16 Tabula Inc. Configurable circuits, IC's, and systems
US7193432B1 (en) 2004-02-14 2007-03-20 Herman Schmit VPA logic circuits
US7193440B1 (en) 2004-02-14 2007-03-20 Herman Schmit Configurable circuits, IC's, and systems
US7109752B1 (en) * 2004-02-14 2006-09-19 Herman Schmit Configurable circuits, IC's, and systems
US7489164B2 (en) 2004-05-17 2009-02-10 Raminda Udaya Madurawe Multi-port memory devices
US7707472B1 (en) 2004-05-17 2010-04-27 Altera Corporation Method and apparatus for routing efficient built-in self test for on-chip circuit blocks
US7193438B1 (en) 2004-06-30 2007-03-20 Andre Rohe Configurable integrated circuit with offset connection
US7145361B1 (en) 2004-06-30 2006-12-05 Andre Rohe Configurable integrated circuit with different connection schemes
US7439766B2 (en) * 2004-06-30 2008-10-21 Tabula, Inc. Configurable logic circuits with commutative properties
US7408382B2 (en) * 2004-06-30 2008-08-05 Tabula, Inc. Configurable circuits, IC's, and systems
US7449915B2 (en) * 2004-06-30 2008-11-11 Tabula Inc. VPA logic circuits
US7282950B1 (en) 2004-11-08 2007-10-16 Tabula, Inc. Configurable IC's with logic resources with offset connections
US7312630B2 (en) 2004-06-30 2007-12-25 Tabula, Inc. Configurable integrated circuit with built-in turns
US7151709B2 (en) * 2004-08-16 2006-12-19 Micron Technology, Inc. Memory device and method having programmable address configurations
US7031211B1 (en) * 2004-10-08 2006-04-18 Atmel Corporation Direct memory access interface in integrated circuits
US7454675B1 (en) * 2004-10-22 2008-11-18 Xilinx, Inc. Testing of a programmable device
US7242216B1 (en) 2004-11-08 2007-07-10 Herman Schmit Embedding memory between tile arrangement of a configurable IC
US7330050B2 (en) 2004-11-08 2008-02-12 Tabula, Inc. Storage elements for a configurable IC and method and apparatus for accessing data stored in the storage elements
US7917559B2 (en) * 2004-11-08 2011-03-29 Tabula, Inc. Configurable IC's with configurable logic circuits that perform adder and/or subtractor operations
US7295037B2 (en) * 2004-11-08 2007-11-13 Tabula, Inc. Configurable IC with routing circuits with offset connections
US7301368B2 (en) * 2005-03-15 2007-11-27 Tabula, Inc. Embedding memory within tile arrangement of a configurable IC
US7259587B1 (en) 2004-11-08 2007-08-21 Tabula, Inc. Configurable IC's with configurable logic resources that have asymetric inputs and/or outputs
US7573296B2 (en) 2004-11-08 2009-08-11 Tabula Inc. Configurable IC with configurable routing resources that have asymmetric input and/or outputs
US7342415B2 (en) * 2004-11-08 2008-03-11 Tabula, Inc. Configurable IC with interconnect circuits that also perform storage operations
US7276933B1 (en) 2004-11-08 2007-10-02 Tabula, Inc. Reconfigurable IC that has sections running at different looperness
US20070244958A1 (en) * 2004-11-08 2007-10-18 Jason Redgrave Configurable IC's with carry bypass circuitry
US7268586B1 (en) 2004-11-08 2007-09-11 Tabula, Inc. Method and apparatus for accessing stored data in a reconfigurable IC
US7317331B2 (en) 2004-11-08 2008-01-08 Tabula, Inc. Reconfigurable IC that has sections running at different reconfiguration rates
US7224181B1 (en) 2004-11-08 2007-05-29 Herman Schmit Clock distribution in a configurable IC
US7743085B2 (en) 2004-11-08 2010-06-22 Tabula, Inc. Configurable IC with large carry chains
US7236009B1 (en) 2004-12-01 2007-06-26 Andre Rohe Operational time extension
US7428721B2 (en) * 2004-12-01 2008-09-23 Tabula, Inc. Operational cycle assignment in a configurable IC
US7496879B2 (en) * 2004-12-01 2009-02-24 Tabula, Inc. Concurrent optimization of physical design and operational cycle assignment
US7183798B1 (en) * 2005-01-24 2007-02-27 Lattice Semiconductor Corporation Synchronous memory
US20060171243A1 (en) * 2005-01-31 2006-08-03 Atsushi Kawasumi Memory array circuit with word line timing control for read operations and write operations
US7224182B1 (en) * 2005-03-15 2007-05-29 Brad Hutchings Hybrid configurable circuit for a configurable IC
US7530033B2 (en) 2005-03-15 2009-05-05 Tabula, Inc. Method and apparatus for decomposing functions in a configurable IC
US20070244959A1 (en) * 2005-03-15 2007-10-18 Steven Teig Configurable IC's with dual carry chains
US7230869B1 (en) 2005-03-15 2007-06-12 Jason Redgrave Method and apparatus for accessing contents of memory cells
US7298169B2 (en) * 2005-03-15 2007-11-20 Tabula, Inc Hybrid logic/interconnect circuit in a configurable IC
US7825684B2 (en) * 2005-03-15 2010-11-02 Tabula, Inc. Variable width management for a memory of a configurable IC
US7310003B2 (en) * 2005-03-15 2007-12-18 Tabula, Inc. Configurable IC with interconnect circuits that have select lines driven by user signals
US7126858B1 (en) * 2005-06-17 2006-10-24 Altera Corporation Apparatus for emulating asynchronous clear in memory structure and method for implementing the same
US7463266B2 (en) * 2005-07-07 2008-12-09 Seiko Epson Corporation Low overhead serial interface
US7277353B2 (en) * 2005-08-22 2007-10-02 P.A. Semi, Inc. Register file
US7495993B2 (en) * 2005-10-26 2009-02-24 Capso Vision, Inc. Onboard data storage and method
WO2007051147A2 (en) * 2005-10-26 2007-05-03 Capso Vision, Inc. Onboard data storage and method
US7765249B1 (en) 2005-11-07 2010-07-27 Tabula, Inc. Use of hybrid interconnect/logic circuits for multiplication
US8463836B1 (en) 2005-11-07 2013-06-11 Tabula, Inc. Performing mathematical and logical operations in multiple sub-cycles
US7372297B1 (en) 2005-11-07 2008-05-13 Tabula Inc. Hybrid interconnect/logic circuits enabling efficient replication of a function in several sub-cycles to save logic and routing resources
US7818361B1 (en) 2005-11-07 2010-10-19 Tabula, Inc. Method and apparatus for performing two's complement multiplication
US7310257B2 (en) * 2005-11-10 2007-12-18 Micron Technology, Inc. Local digit line architecture and method for memory devices having multi-bit or low capacitance memory cells
US7489162B1 (en) 2005-12-01 2009-02-10 Tabula, Inc. Users registers in a reconfigurable IC
US7461362B1 (en) 2005-12-01 2008-12-02 Tabula, Inc. Replacing circuit design elements with their equivalents
US7679401B1 (en) * 2005-12-01 2010-03-16 Tabula, Inc. User registers implemented with routing circuits in a configurable IC
US7715420B1 (en) * 2006-01-06 2010-05-11 Oracle America, Inc. Method and apparatus for refreshing receiver circuits using extra communication bits
US7609085B1 (en) 2006-03-08 2009-10-27 Tabula, Inc. Configurable integrated circuit with a 4-to-1 multiplexer
US7694083B1 (en) 2006-03-08 2010-04-06 Tabula, Inc. System and method for providing a virtual memory architecture narrower and deeper than a physical memory architecture
US7518400B1 (en) 2006-03-08 2009-04-14 Tabula, Inc. Barrel shifter implemented on a configurable integrated circuit
US7504858B1 (en) 2006-03-08 2009-03-17 Tabula, Inc. Configurable integrated circuit with parallel non-neighboring offset connections
US7797497B1 (en) 2006-03-08 2010-09-14 Tabula, Inc. System and method for providing more logical memory ports than physical memory ports
US7529992B1 (en) 2006-03-27 2009-05-05 Tabula, Inc. Configurable integrated circuit with error correcting circuitry
US7669097B1 (en) 2006-03-27 2010-02-23 Tabula, Inc. Configurable IC with error detection and correction circuitry
US7366006B2 (en) * 2006-04-11 2008-04-29 Honeywell International Inc. SRAM with read assist
CN100433697C (zh) * 2006-06-01 2008-11-12 东南大学 多通道高速数据处理器及处理方法
US20080024165A1 (en) * 2006-07-28 2008-01-31 Raminda Udaya Madurawe Configurable embedded multi-port memory
US7564738B2 (en) * 2006-08-11 2009-07-21 Freescale Semiconductor, Inc. Double-rate memory
US7478357B1 (en) 2006-08-14 2009-01-13 Xilinx, Inc. Versatile bus interface macro for dynamically reconfigurable designs
US7587697B1 (en) 2006-12-12 2009-09-08 Tabula, Inc. System and method of mapping memory blocks in a configurable integrated circuit
US7930666B1 (en) 2006-12-12 2011-04-19 Tabula, Inc. System and method of providing a memory hierarchy
EP2597776A3 (en) * 2007-03-20 2014-08-20 Tabula, Inc. Configurable IC having a routing fabric with storage elements
US8112468B1 (en) 2007-03-22 2012-02-07 Tabula, Inc. Method and apparatus for performing an operation with a plurality of sub-operations in a configurable IC
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
CN100449481C (zh) * 2007-06-29 2009-01-07 东南大学 具有多通道指令预取功能的存储控制电路
US8248101B2 (en) 2007-09-06 2012-08-21 Tabula, Inc. Reading configuration data from internal storage node of configuration storage circuit
US7635988B2 (en) * 2007-11-19 2009-12-22 Tier Logic, Inc. Multi-port thin-film memory devices
US20090128189A1 (en) * 2007-11-19 2009-05-21 Raminda Udaya Madurawe Three dimensional programmable devices
US7602213B2 (en) * 2007-12-26 2009-10-13 Tier Logic, Inc. Using programmable latch to implement logic
US7573294B2 (en) * 2007-12-26 2009-08-11 Tier Logic, Inc. Programmable logic based latches and shift registers
US7573293B2 (en) * 2007-12-26 2009-08-11 Tier Logic, Inc. Programmable logic based latches and shift registers
US7795913B2 (en) * 2007-12-26 2010-09-14 Tier Logic Programmable latch based multiplier
US8863067B1 (en) 2008-02-06 2014-10-14 Tabula, Inc. Sequential delay analysis by placement engines
US8166435B2 (en) 2008-06-26 2012-04-24 Tabula, Inc. Timing operations in an IC with configurable circuits
US8230375B2 (en) 2008-09-14 2012-07-24 Raminda Udaya Madurawe Automated metal pattern generation for integrated circuits
EP2345160A4 (en) * 2008-09-17 2016-11-16 Altera Corp CONTROLLABLE STORAGE ELEMENTS FOR INTEGRATED CIRCUIT
EP2190022B1 (en) * 2008-11-20 2013-01-02 Hitachi Ltd. Spin-polarised charge carrier device
US7990780B2 (en) * 2009-02-20 2011-08-02 Apple Inc. Multiple threshold voltage register file cell
US9262171B2 (en) * 2009-06-30 2016-02-16 Oracle America, Inc. Dependency matrix for the determination of load dependencies
US8547774B2 (en) * 2010-01-29 2013-10-01 Mosys, Inc. Hierarchical multi-bank multi-port memory organization
US8619482B1 (en) 2010-02-08 2013-12-31 Altera Corporation Programmable precharge circuitry
US8912820B2 (en) 2010-04-02 2014-12-16 Tabula, Inc. System and method for reducing reconfiguration power
CN102237145A (zh) * 2010-04-22 2011-11-09 联咏科技股份有限公司 箝入式存储装置以及其测试方法
US8760193B2 (en) 2011-07-01 2014-06-24 Tabula, Inc. Configurable storage elements
US10198350B2 (en) 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US10380022B2 (en) 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
US10838646B2 (en) 2011-07-28 2020-11-17 Netlist, Inc. Method and apparatus for presearching stored data
WO2013071183A1 (en) 2011-11-11 2013-05-16 Tabula, Inc. Content addressable memory in integrated circuit
US8593860B2 (en) * 2011-12-09 2013-11-26 Gsi Technology, Inc. Systems and methods of sectioned bit line memory arrays
US8693236B2 (en) 2011-12-09 2014-04-08 Gsi Technology, Inc. Systems and methods of sectioned bit line memory arrays, including hierarchical and/or other features
US8645777B2 (en) 2011-12-29 2014-02-04 Intel Corporation Boundary scan chain for stacked memory
US9058860B2 (en) * 2012-03-29 2015-06-16 Memoir Systems, Inc. Methods and apparatus for synthesizing multi-port memory circuits
CN103514938B (zh) * 2012-06-20 2016-02-10 中国科学院微电子研究所 一种多级选通装置
US8867263B2 (en) * 2013-01-14 2014-10-21 Freescale Semiconductor, Inc. Multiport memory with matching address and data line control
US8811070B1 (en) * 2013-02-19 2014-08-19 Lsi Corporation Write-tracking circuitry for memory devices
JP2014179141A (ja) * 2013-03-14 2014-09-25 Toshiba Corp 半導体記憶装置
US10372551B2 (en) 2013-03-15 2019-08-06 Netlist, Inc. Hybrid memory system with configurable error thresholds and failure analysis capability
US9436600B2 (en) 2013-06-11 2016-09-06 Svic No. 28 New Technology Business Investment L.L.P. Non-volatile memory storage for multi-channel memory system
CN103324594A (zh) * 2013-06-27 2013-09-25 成都林海电子有限责任公司 一种基于FPGA的PCI Express AHBUS状态机的实现方法
TWI493568B (zh) 2013-08-19 2015-07-21 Ind Tech Res Inst 記憶體裝置
US10248328B2 (en) 2013-11-07 2019-04-02 Netlist, Inc. Direct data move between DRAM and storage on a memory module
KR20160004936A (ko) * 2014-07-04 2016-01-13 가부시키가이샤 한도오따이 에네루기 켄큐쇼 반도체 장치, 및 전자 기기
US9720827B2 (en) * 2014-11-14 2017-08-01 Intel Corporation Providing multiple memory modes for a processor including internal memory
US10579393B2 (en) 2015-07-21 2020-03-03 Capital Microelectronics Co., Ltd. Circuit and method of power on initialization for configuration memory of FPGA
US9922700B2 (en) 2016-05-24 2018-03-20 Taiwan Semiconductor Manufacturing Co., Ltd. Memory read stability enhancement with short segmented bit line architecture
JP2018010707A (ja) * 2016-07-12 2018-01-18 ルネサスエレクトロニクス株式会社 半導体装置
JP2018120992A (ja) * 2017-01-26 2018-08-02 株式会社東芝 集積回路および電子機器
CN108021413B (zh) * 2017-12-28 2021-08-27 浙江大华技术股份有限公司 一种fpga在线升级方法及设备
KR102512985B1 (ko) 2018-06-12 2023-03-22 삼성전자주식회사 반도체 장치를 위한 테스트 장치 및 반도체 장치의 제조 방법
US10921996B2 (en) 2019-03-22 2021-02-16 Micron Technology, Inc. Data lines updating for data generation
CN114077415A (zh) * 2020-08-12 2022-02-22 长鑫存储技术(上海)有限公司 先入先出存储器及存储装置
EP4033347B1 (en) 2020-08-12 2023-07-05 Changxin Memory Technologies, Inc. First in first out memory and storage device
US11482276B2 (en) * 2020-10-30 2022-10-25 Taiwan Semiconductor Manufacturing Company Limited System and method for read speed improvement in 3T DRAM
US11532353B2 (en) * 2021-01-29 2022-12-20 Arm Limited Circuitry apportioning of an integrated circuit
CN115543875A (zh) * 2022-09-27 2022-12-30 深圳市紫光同创电子有限公司 一次性可编程存储器控制系统和fpga

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3993919A (en) 1975-06-27 1976-11-23 Ibm Corporation Programmable latch and other circuits for logic arrays
US4177452A (en) 1978-06-05 1979-12-04 International Business Machines Corporation Electrically programmable logic array
US4435775A (en) * 1981-01-19 1984-03-06 Texas Instruments Incorporated Data processing system having interlinked slow and fast memory means
US4430712A (en) * 1981-11-27 1984-02-07 Storage Technology Corporation Adaptive domain partitioning of cache memory space
JPS5952497A (ja) * 1982-09-17 1984-03-27 Nec Corp デコ−ダ回路
US4742383A (en) 1983-01-12 1988-05-03 International Business Machines Corporation Multi-function FET masterslice cell
ATE47928T1 (de) * 1984-05-14 1989-11-15 Ibm Halbleiterspeicher.
US4636990A (en) * 1985-05-31 1987-01-13 International Business Machines Corporation Three state select circuit for use in a data processing system or the like
US4751675A (en) * 1985-08-19 1988-06-14 American Telephone And Telegraph Company, At&T Bell Laboratories Memory access circuit with pointer shifting network
US4775942A (en) * 1985-12-09 1988-10-04 International Business Machines Corporation Seed and stitch approach to embedded arrays
JPH0823996B2 (ja) * 1986-08-11 1996-03-06 エヌ・ベー・フィリップス・フルーイランペンファブリケン 2個以上の集積半導体回路の集合体
US4758745B1 (en) 1986-09-19 1994-11-15 Actel Corp User programmable integrated circuit interconnect architecture and test method
KR960001106B1 (ko) * 1986-12-17 1996-01-18 가부시기가이샤 히다찌세이사꾸쇼 반도체 메모리
JPH0760600B2 (ja) * 1987-08-19 1995-06-28 三菱電機株式会社 同期型記憶装置
CA1286803C (en) * 1989-02-28 1991-07-23 Benoit Nadeau-Dostie Serial testing technique for embedded memories
US5343406A (en) * 1989-07-28 1994-08-30 Xilinx, Inc. Distributed memory architecture for a configurable logic array and method for using distributed memory
US5278956A (en) * 1990-01-22 1994-01-11 Vlsi Technology, Inc. Variable sized FIFO memory and programmable trigger level therefor for use in a UART or the like
US5341488A (en) * 1990-04-11 1994-08-23 Nec Electronics, Inc. N-word read/write access achieving double bandwidth without increasing the width of external data I/O bus
US5117389A (en) * 1990-09-05 1992-05-26 Macronix International Co., Ltd. Flat-cell read-only-memory integrated circuit
US5341382A (en) * 1991-06-19 1994-08-23 Sun Microsystems, Inc. Method and apparatus for improving fault coverage of system logic of an integrated circuit with embedded memory arrays
US5250859A (en) * 1991-09-27 1993-10-05 Kaplinsky Cecil H Low power multifunction logic array
US5263003A (en) * 1991-11-12 1993-11-16 Allen-Bradley Company, Inc. Flash memory circuit and method of operation
JPH05266654A (ja) * 1992-03-17 1993-10-15 Mitsubishi Electric Corp マルチポートメモリ装置
GB9223226D0 (en) * 1992-11-05 1992-12-16 Algotronix Ltd Improved configurable cellular array (cal ii)
JPH06215576A (ja) * 1993-01-18 1994-08-05 Mitsubishi Electric Corp 半導体記憶装置
US5434406A (en) * 1993-05-13 1995-07-18 Mcdonnell Douglas Corporation Hemispheric matrixsized imaging optical system
EP0669620B1 (en) * 1994-02-25 2001-10-24 Kabushiki Kaisha Toshiba Multiplexer
US5426378A (en) * 1994-04-20 1995-06-20 Xilinx, Inc. Programmable logic device which stores more than one configuration and means for switching configurations
US5473573A (en) * 1994-05-09 1995-12-05 Cirrus Logic, Inc. Single chip controller-memory device and a memory architecture and methods suitable for implementing the same
JP3431686B2 (ja) * 1994-05-19 2003-07-28 ブラザー工業株式会社 画像データ変換装置
US5406525A (en) * 1994-06-06 1995-04-11 Motorola, Inc. Configurable SRAM and method for providing the same
US5465056A (en) * 1994-06-30 1995-11-07 I-Cube, Inc. Apparatus for programmable circuit and signal switching
JPH08167290A (ja) * 1994-12-15 1996-06-25 Mitsubishi Electric Corp 半導体記憶装置
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
US5784313A (en) * 1995-08-18 1998-07-21 Xilinx, Inc. Programmable logic device including configuration data or user data memory slices
US5615160A (en) * 1995-09-08 1997-03-25 International Business Machines Corporation Minimal recharge overhead circuit for domino SRAM structures
US5604712A (en) * 1995-09-13 1997-02-18 Lsi Logic Corporation Fast word line decoder for memory devices
US5642325A (en) * 1995-09-27 1997-06-24 Philips Electronics North America Corporation Register file read/write cell
US5615168A (en) * 1995-10-02 1997-03-25 International Business Machines Corporation Method and apparatus for synchronized pipeline data access of a memory system
US5640107A (en) * 1995-10-24 1997-06-17 Northrop Grumman Corporation Method for in-circuit programming of a field-programmable gate array configuration memory

Also Published As

Publication number Publication date
US6118707A (en) 2000-09-12
EP0780846A2 (en) 1997-06-25
EP0780846A3 (en) 1999-07-14
SG104910A1 (en) 2004-07-30
US6233191B1 (en) 2001-05-15
JPH09186581A (ja) 1997-07-15
US6023421A (en) 2000-02-08
TW297128B (en) 1997-02-01
US6130854A (en) 2000-10-10
US6075745A (en) 2000-06-13
US6038192A (en) 2000-03-14
US5949719A (en) 1999-09-07
CN1117379C (zh) 2003-08-06
US6091645A (en) 2000-07-18
CN1159060A (zh) 1997-09-10
US6044031A (en) 2000-03-28
US5914906A (en) 1999-06-22

Similar Documents

Publication Publication Date Title
KR100267425B1 (ko) 프로그래머블 메모리 어레이와 프로그래머블 어드레스 디코더와 프로그래머블 상호접속회로
US6501677B1 (en) Configuration memory architecture for FPGA
US6219284B1 (en) Programmable logic device with multi-port memory
US8188763B2 (en) Nonvolatile nanotube programmable logic devices and a nonvolatile nanotube field programmable gate array using same
EP0678985B1 (en) A programmable logic device which stores more than one configuration and means for switching configurations
US6154055A (en) Programmable logic array integrated circuit devices
US5646544A (en) System and method for dynamically reconfiguring a programmable gate array
US6154048A (en) Structure and method for loading narrow frames of data from a wide input bus
KR100301921B1 (ko) 다중포트ram용의확장가능한데이타폭을가진직렬억세스메모리
US6697957B1 (en) Emulation circuit with a hold time algorithm, logic analyzer and shadow memory
US6069489A (en) FPGA having fast configuration memory data readback
US6992947B1 (en) Dual-port SRAM in a programmable logic device
US20030154458A1 (en) Emulation circuit with a hold time algorithm, logic analyzer and shadow memory
US6211695B1 (en) FPGA integrated circuit having embedded SRAM memory blocks with registered address and data input sections
EP0379071B1 (en) Multiple page programmable logic architecture
US8390319B2 (en) Programmable logic fabric
US5781032A (en) Programmable inverter circuit used in a programmable logic cell
US6097210A (en) Multiplexer array with shifted input traces
US7663401B1 (en) Multiplexer initialization systems and methods
US7071731B1 (en) Programmable Logic with Pipelined Memory Operation
JPH07159498A (ja) 構成制御システム、構成制御ユニット、fpgaを構成する方法、及び接続ライン上に存在するデータを受け取る方法
GB2333874A (en) Programmable logic array

Legal Events

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