CN1117379C - 现场可编程存储器阵列 - Google Patents

现场可编程存储器阵列 Download PDF

Info

Publication number
CN1117379C
CN1117379C CN96121505A CN96121505A CN1117379C CN 1117379 C CN1117379 C CN 1117379C CN 96121505 A CN96121505 A CN 96121505A CN 96121505 A CN96121505 A CN 96121505A CN 1117379 C CN1117379 C CN 1117379C
Authority
CN
China
Prior art keywords
data
bit line
memory
array
memory cell
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
CN96121505A
Other languages
English (en)
Other versions
CN1159060A (zh
Inventor
金·P·N·克林顿
斯科特·古尔德
约瑟夫·A·伊阿当扎
弗兰克·R·基瑟尔三世
拉尔夫·D·基尔莫伊
迈克·J·拉拉米
维克托·P·塞多
特郎斯·J·兹特里奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1159060A publication Critical patent/CN1159060A/zh
Application granted granted Critical
Publication of CN1117379C publication Critical patent/CN1117379C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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

Abstract

提供一种具有多个子阵列的现场可编程存储器阵列。设置有可编程地址译码器、可编程层次位线配置,可编程I/O配置以及其他特征,使得能对阵列的各部分加以编程从而进入所选的模式。这些模式可包括宽存储器、深存储器、FIFO、LIFO等等。揭示了本发明的一个实施例,其中该现场可编程存储器阵列结合有一现场可编程门阵列的可编程资源。

Description

现场可编程存储器阵列
技术领域
本发明涉及数据存储器,更具体地说涉及一种具有相关联的可编程路径选择和控制资源的可编程存储器阵列。本发明还涉及一种与现场可编程门阵列组合在一起的可编程存储器阵列。
背景技术
现有的集成存储器阵列在涉及到一给定的数据存储应用场合时一般均具有确定的深度和确定的宽度。因而,不同的数据存储应用情况可能需要各自独立的存储器阵列以满足不同的深度/宽度要求。但如果一种单一的存储器资源能适应不同的深度/宽度上的需求将是有利的。
已知的各种不同存储器装置能用来实现不同的存储器存取技术。最通用的存储器存取技术包括简单的可寻址读/写存储器功能。其他的存取技术包括有LIFO(Last In First Out,后进先出)、FIFO(First InFirst Out,先进先出)和翻转数据堆栈操作。现有的数据存储装置通常都做成适应于特定的固定存取技术。但如果一种存储器装置能被编程来有选择地提供组合存取技术将是有利的。
可编程集成电路在这一技术中是公知的,包含有提供一特殊的不受约束的逻辑单元的阵列的可编程门阵列(PGA)。通常设置一种可编程互连网络,用作单元间的连接和/或提供由阵列输入和输出数据。为满足特定的应用要求进行另外的按常规设计的逻辑单元和互连网络的专门加工或编程。一种这样的装置为一现场可编程门阵列(FPGA),其中FPGA的配置可由用户“在现场”完成。EPGA的配置由利用可作电气上编程的可熔断连接、抗熔配置、存储器控制的晶体管或浮栅晶体管来实现。为对EPGA进行编程,配置数据由一外存储器装置传送给FPGA的电可编程资源。当这些可现场编程的门阵列的密度增加时,对机器内的存储器/存储功能的要求同样要增大。因而,希望能提供一种包含EPGA以及可编程存储器阵列的集成电路,该存储器阵列将能实现多种配置,和/或提供各种不同存储器存取技术中的一种。
发明内容
因而,本发明的目的就是提供一种经过改善的存储器阵列。
本发明的另一目的是提供一种可在配置方面进行编程以便得到各种数据存储体系结构的可编程存储器阵列。
本发明的再一目的是提供一种可作有选择的编程以实现各种存储器存取技术的存储器阵列。
本发明还有一目的是提供一种将现场可编程门阵列与可编程存储器阵列结合在一起的集成电路。
按照本发明的一种可编程存储器电路包括:
用于保持数据的存储器单元;
第一字线,传送第一选择信号;
第一位线;
第一选择性耦合器,置于所述第一位线和所述存储器单元之间,按照所述第一选择信号有选择地耦合所述第一位线与所述存储器单元用以在其间传送信号;
输出接口,连接于所述存储器单元,用于由所述存储器单元传送信号;和
附加数据线,连接于所述存储器单元,用于将信号传送至所述存储器单元。
按照本发明的另一种可编程存储器电路包括:
用于保持数据的存储器单元;
多个字线,所述多个字线的每一字线传送一相关的启动信号;
多个位线;和
多个选择性耦合器,所述多个选择性耦合器的各选择性耦合器被置于所述存储器单元与所述多个位线的一相关位线之间,在被所述多个字线的一相关字线的启动信号启动时,有选择地耦合所述相关位线与所述存储器单元以在其中间传送信号。
按照本发明的另一种可编程存储器电路,由一位/字线可寻址存储器单元阵列构成,包含有:
第一存储器单元,可经第一字线寻址以启动对之作主数据存取;
第二存储器单元,可经第二字线寻址以启动对之作主数据存取;
传输单元,置于所述第一存储器单元与所述第二存储器单元中间,用于提供中间数据存储;
第一选择性耦合器,经第一时钟启动,用于有选择地耦合所述传输单元与所述第一存储器单元,启动数据在其间传送;和
第二选择性耦合器,经第二时钟启动,用于有选择地耦合所述传输单元与所述第二存储器单元,以启动数据在其间传送,
据此,所述第一和第二时钟相继操作以便将数据由所述第一和第二存储器单元之一传送到另一个。
本发明另外还有一目的是提供一种将现场可编程门阵列与现场可编程存储器阵列组合在一起的集成电路,其中该现场可编程存储器阵列可在现场可编程门阵列的配置期间、现场可编程门阵列重新配置期间,或现场可编程门阵列的正常功能期间进行访问。
本发明在一个方面为一种具有多个存储器子阵列的现场可编程存储器。存储器子阵列可有选择地编程以实现各种不同的存储器配置和运行模式。一般来说,各子阵列均能被编程进入一组模式中之一以及其后在该模式下被访问。这些模式在一实施例中包括有宽RAM、深RAM、FIFO和LIFO。
本发明提出多种可编程结构来实现各部分存储器阵列的编程。例如,此阵列可包含有地址译码器和用于在存储器阵列的读和写操作期间对地址译码器提供相关的读和写输入地址的可编程存取单元。此可编程存取单元可进一步包括第一地址计数器,第一时钟控制单元和地址比较单元。
存储器阵列的位线被安置成可编程的层次结构排列。可设置局部位线、半全局位线和全局位线,对上述位线以可编程的方式进行相互连接来实现高一级的位线可编程性能。而且该互连的位线结构还能以可编程的方式连接到I/O总线。
可设置一主I/O总线和一辅I/O总线,以及对它们作可编程连接用的第一和第二选择耦合器。
可设置一可编程地址译码器,带有M个字线、多个传送地址数据的地址线和一译码器电路用于有选择地驱动按照该多个地址线的地址数据所选择的M个字线中的一给定字线。还可设置一选择性耦合器,它具有多个耦合到一地址总线的一组相关线的输入和一耦合到该多个地址线的一地址线的输出,此选择性耦合器按照编程数据将其输出有选择地耦合到其多个输入中的一个。
可设置一选择性读数俘获锁存器用于与层次位线结构作有选择的接口。此选择性读数俘获锁存器至少可包括第一和第二层次输入,一具有一输入和一输出的存储器单元,和在第一及第二层次输入与此存储器单元的输入之间的选择耦合装置,用来按照一相关的层次读数俘获时钟将该第一和第二层输入之一有选择地耦合到存储器单元的输入以便在它们之间传送数据。可设置有预充电装置用于对层次位线结构的至少一个位线进行预充电。
在另外的实施例中,可在阵列的存储器单元之间设置可编程传送路径和扫描链锁存器,以提供实际的LIFO/FIFO功能,同时分别为这些单元和相关的路径提供可测试功能。
在一优选实施例中,这里所揭示的现场可编程存储器阵列(FPMA)可与一现场可编程门阵列(FPGA)的可编程逻辑单元相集成,以提供包含完全可编程组合和存储器电路的完全可编程逻辑系统。
上述的本发明的特征,以及下面揭示的本发明的许多其他特征,对存储器存取技术固定的、在用户的使用方面很少或没有任何灵活性的现有技术的存储器系统都给予了重大改善。
作为本发明的基本实质在本申请所提出的权利书中被详细地指出并清楚地提出了要求。但对于本发明在其实施构成和方法方面以及另外的目的和优点,由参阅以下对优选实施例的详细描述和所引用的附图将会更好地理解。
附图简介
图1A-1E以不同层次说明本发明的现场可编程存储器阵列;
图2A-2B表示一存储器子阵列的局部原理图;
图3为一存储器单元的原理图;
图4为一替换存储器单元的原理图;
图5为一传输单元的原理图;
图6A-6E为一位线路径选择矩阵的局部原理图;
图7为一与图6A的位线路径选择矩阵相关联的开关矩阵元件和一读位线层次结构的原理图;
图8为一与图6B的位线路径选择矩阵相关联的开关矩阵元件和一写位线层次结构的原理图;
图9为一与图6C的位线路径选择矩阵相关联的开关矩阵元件和一压入位线的原理图;
图10为一与图6D的位线路径选择矩阵相关联的开关矩阵元件和一弹出位线的原理图;
图11为一I/O路径选择矩阵的方框图;
图12为图11I/O路径选择矩阵的一写矩阵开关的局部原理图;
图13为图11I/O路径选择矩阵的一读矩阵开关的局部原理图;
图14为一I/O块的方框图;
图15为图14I/O块的I/O单元的原理图;
图16为一可能的读/写位线层次结构的局部原理图;
图17为说明一较高等级的可能的读/写位线层次结构的局部原理图;
图18A-18B为一将该可能的读位线层次结构与四个存储器子阵列相结合的读数据路径网络的局部原理图;
图19为一将该可能的写位线层次结构与四个存储器子阵列相结合的写端口数据路径网络的局部原理图;
图20为一结合可能的读俘获锁存器组的读位线层次结构的简化原理图;
图21为如图20中所示的俘获锁存器组的方框图;
图22为图21的时钟发生器的原理图;
图23为表示图21的读俘获锁存器组的单个单元的原理图;
图24为预充电电路的原理图;
图25为表示一读俘获锁存器中包括的预充电电路的原理图;
图26A-26C为说明一地址单元的局部原理图;
图27A-27C为一时钟单元的典型简化电路图;
图28A~28B为一状态机存取端口的典型的局部原理图;
图29为一允许作异步运行的可能的位线接口结构的局部原理图;和
图30为图29的装置的原理图。
具体实施方式
关于优选实施例的描述被安排为如下各部分:
现场可编程存储器阵列的部件
存储器子阵列
存储器单元
传输单元
位线路径选择矩阵
读位线开关元件
写位线开关元件
压入/弹出开关矩阵元件
可编程开关矩阵元件
I/O路径选择矩阵元件
I/O路径选择矩阵
I/O块
另一种数据接口配置
提供简化读位线接口的另一种读俘获锁存器布局
地址单元
时钟单元
状态机存取端口
异步读现场可编程存储器阵列的部件
参看图1A,一现场可编程存储器阵列(FPMA)10具有多个存储器子阵列121、122…12z。对存储器阵列作有选择的编程来实现各种不同的存储器配置和运行模式,即存取技术。
本技术领域内的专业人员都了解可有各种不同技术来提供阵列编程。掩模编程技术包括对一另外的按常规设计集成电路的最后的金属化层的淀积进行按规格的改制(可参看例如美国专利No.3,993,919 Cox等“逻辑阵列的可编程锁存器和其他电路”Nov.23,1976;和No.4,742,383Fitzgerald“多功能FET母片单元”May3,1988,此二专利均被指定给本申请同一受让人)。激光编程技术涉及到对其淀积后的金属化层进行改制(参看例如Raffel等的“采用可重组VSLI的晶片规模数字积分仪”,IEEE Journal of Solid-State Circuits,Vol,SC-20,No.1,Feb,1985,p399)。采用可熔断连接或抗熔断器能得到持久的(非易失性的)编程(参看例如Millman“微电子学”,McGraw-Hill,Inc.,1979,p196;和美国专利No.4,758,745 Elgamal等“用户可编集成电路互连层次结构和测试方法”,July 19,1988)。利用可擦可编程只读存储器(“EPROM”)和电可擦可编程只读存储器(“EEPROM”)装置能得到半持久性编程。EPROM和EEPROM二者均为可作电编程的,而且即使去掉电源时也能保持它们的状态。但可采用特殊的擦除过程来对装置进行重新配置(参看例如Wood等的“快速周转时间VISI开发硬件用的电可变更PLA”,IEEE Journal of Solid-State Circuits,Vol.SC-16,No.5,Oct1981,p570)。最后,还可能利用能作完全编程和再编程的易失性随机存取存储器(“RAM”)装置,但它们在去掉电源时其编程状态即消失(参看例如US专利No.4177 452 Balasubramanian等“电可编程逻辑阵列”,Dec 4,1979,此专利被指定给本申请同一转让人)。这些以及其他阵列编程技术均是本技术领域的专业人员所公知的,在S.Brown等的“现场可编程门矩阵”(Kluwer Academic Publishers,1992)中有公开的综合论述。上述提到的资料均在此被引用以作为全面的参考。
本发明的编程或对可编程资源进行配置的优选途径涉及由用户编程的SRAM存储器单元。这里所采用的术语“配置位”或“配置数据”是指用于对所揭示的多种可预配置的资源进行配置的基本配置信息。在这些图中,一带有X的圆始终代表配置信息。本发明的FPMA最好按照类似于配置一公知的PFGA中所用的类似技术加以配置,如出版物“AT6000系列配置使用说明”,(May 1993,版本1B,AtmelCorporation)中所揭示的,此文在这里引用以作全面参考。
参看图1A-1D,FPMA 10的每一存储器子阵列121,122…12Z均由排列在一M行和N列的阵列中的多个存储器单元构成。各存储器阵提供每一字宽N位的M个存储字。对FPMA作数据存取,在一种运行模式下通过主I/O总线26进行;而在第二运行模式下通过状态机存取端口24进行。FPMA 10的配置确定进入其存储器单元的数据存取路径及其相关的存储器单元的长度/宽度。地址总线28(设计中的分级)传送地址数据至地址译码器单元201,202…20Z,这些地址译码器单元按地址选择存储器子阵列的字行以接收/提供数据。
FPMA 10的各种不同位线结构向FPMA或由FPMA向外传送数据。读位线结构30按照所选择的FPMA的配置由FPMA给定的存储器子阵列向主I/O总线26或状态机存取端口24传送数据。写位线结构32按照写地址数据和相关的位线配置将数据传送到FPMA 10的选择存储器子阵列字。
LIFO/FIFO数据位线34提供垂直相邻的存储器子阵列间的数据相互耦合。LIFO/FIFO位线结构按照相关的LIFO/FIFO控制信号在二方面中之一传送数据。
编程(初始化)位线结构36提供由状态机端口24进入FPMA的直接耦合,以将数据(例如初始化数据)发送到通过相关的编程字线寻址而被寻址的FPMA。
位线路径选择矩阵单元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表示各存储器子阵列的数据字宽。
底部位线路径选择矩阵141(参看图1A、1C和1E)也通过读位线相互耦合30′提供读位线结构30至状态机存取端口24的有选择的接口。辅助读端口38′通过辅助I/O总线38提供FPMA至状态机存取端口24的一替换读接口。编程位线相互耦合36′经位线路径选择矩阵141提供由状态机存取端口24进入编程位线结构36的编程数据耦合。LIFO/FIFO环绕相互耦合线34′(如图1B中所示)由底部位线路径选择矩阵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的分段层次结构的特点,后面将较完整地描述其层次结构。
I/O块181、182、18Z提供主I/O总线26与辅助I/O总线38间的有选择的相互耦合。此I/O块还可包含用于某些相互耦合实施方案的有选择的极性变换。
主I/O总线26用作对FPMA的存储器单元的主接口。在一示范性应用例中,FPMA与另一可编程阵列(例如象一现场可编程门阵列)配置在一起,其中此主I/O总线成为对该现场可编程门阵列的整个接口的一部分。
时钟单元221、222…22Z与各个存储器子阵列121、122…12Z相关联并控制其各种存储器功能。可按照所选择的各个不同存储器功能,例如读、写、弹出、压入、清除等等,对该时钟单元进行编程。以提供用于传送数据的传输控制信号。
地址总线28(图1A和1B)确定地址数据去往各不同地址单元201、202…20Z的路径和发送适当的控制信号至相关的时钟单元221、222…22Z。把地址总线的选择线按照其相关的配置数据送到地址单元和时钟单元。地址总线28可被设计成分层次的,这在下面将进一步说明。
在上述的示范应用例中,其中FPMA与一现场可编程门阵列(FPGA)结合在一起,状态机存取端口24(图1A和1E)在一与FPGA的配置逻辑(图中未表示)相关联的状态机与FPMA的存储器单元之间提供直接数据接口。美国专利No.5298805Garverick等“一可配置的逻辑阵列中的通用和高效的单元至局部总线的接口”(March29,1995,在此用作全面参考)中揭示有这种FPGA和相关的配置逻辑。状态机存取端口24具有一读地址端口390用于由状态机接收地址数据。编程位线端口388由状态机接收编程数据,而数据端口386将由FPMA检索到的数据送到状态机。选通端口384被耦合于由状态机接收读选通脉冲,此选通脉冲与执行FPMA的读操作有关。地址信息通过地址相互耦合28′由状态机发送到地地址总线28的选择地址线,如按照状态机存取端口24的被编程的配置所选择的那样。编程(初始化)数据,如在编程位线端口388时所接收到的,按照状态机存取端口24和位线路由选距阵141的相关配置状态被通过相互耦合36′和位线路径选择矩阵141,有选择地耦合到FPMA 10的编程位线结构36。由FPMA 10读取的数据按照状态机存取端口24的被编程的配置以两种不同的可能路径,经由读位线相互耦合30′或者通过辅助I/O总线38和辅助读端口相互耦合38′,被送至状态机。因而,状态机存取端口24能为直接由相关的FPMA的单元将新配置数据装载进一相关的FPGA中的配置存储器提供机内的“高速缓冲存储器”操作。
如下文讨论的,将讨论FPMA的一实施方案,以及图中所表明的,包含这里提到的所谓“实际的(physical)”LIFO/FIFO能力和“实际”扫描入/出能力。这些能力涉及到在阵列中包含L1/L2锁存器(主/从)和存储器单元间的传输单元。本发明的优选实施例不包含这样的主/从锁存器和传输单元。在此实施例中LIFO/FIFO能力是在没有传输单元的情况下“逻辑地”提供的以下在适当场合讨论把这些及有关电路从本优选实施方案中排除出去的情况。
例如,应看到LIFO/FIFO环绕位线结构34′对于第一位线路径选择矩阵141与最后的位线路径选择矩阵14Z+1之间的接口是可任选的结构。在本发明的某些实施例中,不包含LIFO/FIFO环绕位线结构34′,也没有位线路径选择矩阵14Z+1
下文所揭示的内容将对FPMA的各不同部件进行详细说明。
这里所揭示的FPMA不仅仅提供在FPMA内在任何一个时刻的单个的宽度、深度、或中间逻辑随机存取存储器的能力,而且能提供同时达到FPMA的逻辑能力的极限的相同或不同模式的多逻辑阵列。如果此FPMA含有8个M字×N位的子阵列,就可期望此FPMA能实现8个逻辑存储器,其中每一个都是M字×N位,或者是,每一个均为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位宽。存储器单元48的每一行均可以有一传输单元50的相关行以使数据能垂直地作字与字间的移动。例如,第一行第一列的存储器单元481,1,具有一相关的传输单元501,1以使得数据能转移到(或来自)第二行第一列的存储器单元482,1。在本发明的特定实施例中,无需数据在字与字之间作实际移动,因而没有在它们当中垂直设置传输单元50。
通过不同的数据传输操作,包括读、写、压入、弹出、连续扫描和编程(初始化),对FPMA10的存储器单元作存取操作可采用许多不同的技术。对于存储器子阵列12的读、写操作,存储器子阵列12中的每一行存储器单元48均各自具备一相关的读字线RWL1,RWL2…RLWM,可进行寻址以选择作为欲从中读取数据的行的相关存储器单元行。当选定一给定的行字线时,被选择行的存储器单元的数据即输出到相关的内部列读位线561,562…56N。一给定列的每一存储器单元均具有连接到其相关的内部读位线56的门控输出,这些门控输出经对应读字线被启动,例如第一列的读位线561被连接到第一列的各存储器单元的门控输出481,1、482,1、48N,1
各内部读位线561,562…56N分别连接到一相关的可选择的三态驱动器521,522…52N。此可选择的三态驱动器将各个内部读位线56的数据传送到一(各个读位线结构30的)相关的读位线层次结构108的选择位线。例如,可选择的三态驱动器521在其输入端由内部读位线561接收数据。按照相关配置数据62,作为n中之1的选择驱动器(注:这一“n”与存储器阵列的宽“N”无关)的可选择三态驱动器521驱动其多个输出1081的一选择输出。对此三态驱动器52进行编程的配置数据由例如一SRAM(图中未表示)提供,如前面有关可编程资源的编程中所述。因而,可选择的三态驱动器521按照其相关的配置数据62在如下述被适当地启动时将内部读位线56的数据送往层次结构1081的一位线。
各个可选择的三态驱动器511,522…52N均具有一个由在高地址输入72接收的高地址启动信号驱动的启动输入。当该高地址启动信号截止此三态驱动器时,该驱动器的所有输出在三态状况下提供高输出阻抗。另一方面,当该高地址启动信号启动此可选择的三态驱动器时,驱动器则按照相关的配置传送数据至层次结构108的选择线。参看图1A、1B,存储器子阵列121、122、…12M的高地址输入经由各自的互连线721、722…72Z耦合到相关的地址单元201、202…20M。从而,FPMA10经适当的寻址数据能选择由哪一个存储器子阵列12把数据传送到相关的读位线层次结构108。下面讨论另外的读电路52的实施例。
有关将数据写进存储器子阵列12的电路与上述的读电路类似。存储器单元的各列具有一相关的内部写位线581、582…58n。每一内部写位线被连接到其相关列的各自存储器单元的门控输入。例如,第一列的内部写位线581连接到各个存储器单元481,1、482,1…48M,1的门控输入。在数据被写入存储器子阵列12时,根据寻址选择的字线WWL1、WWL2…WWLM被传送进其一给定的字。例如,假定现场可编程存储器阵列10接收到一驱动第二行字线WWL2的地址,此第二行存储器单元即相应地被选择,以接收相关的写位线581、582…58N的数据。每一位线58由一相关的层次结构118中利用多路器54进行驱动。
另一种存储器装载操作包括编程。术语“编程”在这里是指存储器单元阵列的“初始化”,而在涉及到配置时也指FPGA/FPMA的配置位。熟悉这一技术领域的人们由本文中将会了解此术语“编程”是如何应用的。一给定存储器子阵列12的选择行被装载以相关的程序位线36、亦即PBL1、PBL2…PBLN,的程序数据。存储器单元的选择行经由相关的程序字线PWL1、PWL2…PWLN而被选择。参看图1,例如FPGA的一状态机(图中未示)通过状态机存取端口24和编程位线36,即PBL1、PBL2…PBLN,将编程(初始化)数据发送到FPMA,此数据路径为将程序数据写入FPMA提供一更直接的途径。
为启动LIFO、FIFO、或EPMA中的数据滚动功能,在FPMA由配置有一存储器堆栈,和数据进入到该堆栈的、数据在堆栈内部的、或退出堆栈的垂直移动。如下文将更详细说明的,揭示有两种型式的LIFO/FIFO操作,物理(实际)的和逻辑的。在物理的LIFO/FIFO操作中,数据在一相关的存储器堆栈中作实际上的垂直传送。在逻辑LIFO/FIFO操作中,各个存储器单元中的数据维持固定,而地址指针/计数器则被用来保持对写和读存储器位置的跟踪以实现有效的PUSH/POP(压入/弹出)堆栈功能。继续说明物理LIFO/FIFO实施例,压入输入PUSHI1、PUSHI2…PUSHIN被连接到存储器子阵列12的各列的底部存储器单元。例如,将存储器单元481,1连接到列1的一压入输入(PUSHI1)以接收一欲被压入相关堆栈的一给定数据位。如果此相关的存储器子阵列12是在一被配置的FIFO/LIFO堆栈之中(即中间子阵列),则其由一相邻接的存储器子阵列接收压入数据(通过其相关的位线路径选择矩阵)。另外,如果此给定存储器子阵列为被配置的堆栈的第一存储器子阵列,则其或者通过相关的环绕相互耦合34′由配置的堆栈的顶部,或者通过主I/O总线26由外部数据源接收压入数据。
随着数据被压入给定的存储器子阵列,溢出数据即被传输单元50M,1,50M,2,50M,N移出此存储器子阵列并到达相关的压入输出PUSHO1、PUSHO2、PUSHON。如果此给定存储器子阵列在FPMA10的被配置的堆栈之中(中间),则被推出此给定的存储器子阵列的溢出数据即通过一中间路径选择位线矩阵14传送到所配置的堆栈中的下一相邻接的存储器子阵列。另一方面,如果此存储器子阵列位于所配置的栈的顶部,则溢出数据或者经翻转功能通过环绕相互耦合34′传送到底部的存储器子阵列,或者靠FIFO功能传送出堆栈。
使数据在FPMA的垂直堆栈中下移类似于将数据沿此垂直堆栈上推,除了存储器子阵列12是通过相关的弹出输入POPI1、POPI2…POPIN接收各列顶部的数据这一点之外。在数据进一步沿堆栈向下传送时,溢出数据通过各列的相关弹出输出POPO1、POPO2…POPON离开给定存储器子阵列的底部。此弹出输出通过中间路径选择位线矩阵连接到一经适当地配置的堆栈中的相邻存储器子阵列的相关的弹出输入。对于底部存储器阵列,被弹出此所配置的存储器堆栈的数据经滚动功能通过相关的环绕相互耦合34传向堆栈的顶部,或者到达主I/O总线26。为有利于数据在存储器子阵列12的各列中垂直移动,各传输单元50在输入端373、374分别接收第一和第二相位弹出时钟POPCLK1、POPCLK2,并在输入端376、378分别接收第一和第二相位压入时钟PUSCLK1、PUSCLK2(在图2A和1D中一起被称之为时钟380)。如前面所述,在本发明一实施例中并不提供数据在FPMA存储器堆栈中的垂直传送,因而就无需各种压入/弹出互连线、传输单元,和相关的压入/弹出时钟。
在存储器子阵列12内传送数据的另一种方法(本发明另一特定的实施例)包括数据顺序地通过一串行连接的存储器单元48链的移动。第一行和第一列的存储器481,1具有一为相关的存储器子阵列12提供扫描输入的串行输入端SCANIN。与最后行M和最后列N相关的存储器单元48M,N具有一为存储器子阵列12提供一扫描输出的串行输出端SCANOUT。在其余的串行连接的存储器单元间设置有中间串行数据链,其中串行输出被连接到相邻的下游存储器单元的各个串行输入。例如,存储器单元481,1将其串行输出连接到存储器单元481,2的串行输入,而同样,存储器单元481,N则将其串行输出耦合到存储器单元482,1的串行输入。在本发明的这一特定所说明的实施例中,存储器单元在各行内串联耦合,一行的最后一存储器单元连接到一相邻行的第一存储器单元。另外,存储器单元可经由各列作串行耦合。在延续FPMA中的串行存储器单元串中,参看图1A和1D,扫描输出SCANOUT和相邻存储器子阵列的扫描输入SCANIN互相耦合来得到整个FPMA中的一单个的连续的串行扫描链。例如,存储器子阵列121通过串联的互连线70使其扫描输出耦合到存储器子阵列122的扫描输入。通过在输入端301分别接收的第一和第二相位扫描时钟SCANCLK1、SCANCLK2的恰当的时钟脉冲排序可实现数据的串行扫描位移。这些时钟被耦合(图中未示出)来驱动各个存储器元件。扫描链的实现仍然仅仅是这里所揭示的另一个可选择的FPMA的实施方案。
回到图2A,各存储器子阵列12还具有一复位输入端302用于接收复位信号RESET。此复位输入端被耦合到(未示出)子阵列中每一存储器单元的一复位端,用来由适当的复位信号脉冲来启动所有存储器单元的复位。
下面将详细说明存储器单元和可选择传输单元。存储器单元
参看图3,说明示例性的存储器单元48。(单元48的另一实施方案的说明见与本申请相结合的申请“利用一单个的单元写端口在存储器阵列中实现写、初始化和复位的系统”)。单元48具有一个用于在其中保持数据的主锁存器74。此主锁存器74由例如提供一静态存储器单元的两个作适当的交叉耦合的反相元件组成。主锁存器74具有一弱端73和一强端75。当第一锁存器74的弱端73被第二个同样锁存器的一强端驱动时,此第一锁存器将使其弱端被调整得对应于第二锁存器的强端。下面,弱端将被称做输入而强端称作输出。(其它的存储器单元配置也可在本发明的范畴之内提供,包括RAM,DRAM,PROM等)。
主锁存器74的输入73(弱端)被连接到用于有选择地由各个源接收数据的各种门控制入端。对于在现场可编程存储器阵列中数据作逐字垂直位移的本发明的物理LIFO/FIFO实施例,一压入输入和弹出输入PUSHIN和POPIN分别耦合到主锁存器74的输入73。这些压入和弹出输入分别由相关的下和上传输单元50驱动(这些传输单元包含以恰当的压入/弹出时钟信号有选择地启动的门控输出端,在下面将作更全面的说明)。例如,存储器单元48的压入输入PUSHIN由一位于同一列下面的传输单元的强端压入输出接收压入数据。另一方面,存储器单元48的弹出输入POPIN则由来自位于同一列上面的传输单元的强端的弹出输出所驱动。
来自主锁存器74强端的输出75分别提供直接的压入和弹出输出PUSHOU和POPOUT,用于驱动同一列的各自的上、下传输单元。存储器单元48的压入输出驱动一相邻传输单元的弱端沿堆栈上升,而存储器单元48的弹出输出则驱动一相邻传输单元的弱端沿堆栈向下。也如上面指出的,在本发明的存储器阵列内不具有数据作垂直移动的特定实施例中,存储器单元48不设置压入/弹出输入端和压入/弹出输出端。
MOSFET(场效应管)78用作主锁存器74的输入73与编程位线36(图1B)的程序位线PBL之间的通过门。MOSFET 78在通过编程字线PWL其栅极被导通时,有选择地使编程位线PBL与输入73相互耦合以便将编程数据装入锁存器74。(在这里再次要指出,编程是指单元48的初始化,而不是指FPMA 10的配置。)
MOSFET 80被连接在主锁存器74的串行输入SI与输入73之间的通路上。MOSFET 80的栅极由第一相位扫描时钟SCANCLK1驱动,后者有选择地启动MOSFET80以将扫描输入SI耦合到输入73,传送串行数据进入主锁存器74。
将MOSFET 86的沟道连接在主锁存器74的输出75与辅助锁存器76的弱端输入之间以便和与可任选的串行扫描操作有关的部件相接续。(术语“锁存”在这里用作泛指一具有数据存储能力的电路。)MOSFET86的栅极由第二相位扫描时钟SCANCLK2驱动以便在主锁存器74与辅助锁存器76之间有选择地传送数据。辅助锁存器76的输出端提供存储器单元48的串行输出SO,它驱动该相关串行链中的下一存储器单元的串行输入。例如,参看图2A,第一存储器单元481,1在其串行输入端SI接收串行输入数据。第一相位扫描时钟提供用来传送串行输入数据进入其主锁存器74的脉冲。同时,此第一相位扫描时钟脉冲还启动此串行链中其后的存储器单元,例如481,2,以便锁存由相关的前面的存储器单元,如481,1,的串行输出端SO接收的串行输入数据。然后,第二相位扫描时钟提供一启动脉冲使得数据由存储器单元的各自的主锁存器74传送到相关的辅助锁存器76。在这种状态下数据顺序地通过串联的存储器单元48的扫描链移动。
MOSFET 82提供主锁存器写位线WBL与主锁存器输入74之间的有选择的耦合。其栅极被耦合到写字线WWL以接收写启动信号。在被启动时,MOSFET 82使写位线WBL与输入73相互耦合,将数据写进主锁存器74。如前面参照图2A和2B所述,存储器单元48的写位线WBL被连接到其相关的内部列写位线58,而写字线WWL则由相关的地址单元20作寻址驱动。在相关的写字线WWL经其相关地址单元20以寻址方式选择时,内部写位线58的数据通过MOSFET 82被传送进主锁存器74(图1A、1B和1D)。
MOSFET 84使其沟道以串联方式连接在地与主锁存器74的输入73之间。MOSFET 84的栅极由一复位信号RST驱动,将输入73有选择地耦合到地。在此种复位期间,主锁存器74的数据被清除。另外虽然图中未加表示,MOSFET 84还将输入73有选择地耦合到一正电源以便在复位期间将主锁存器74设置到一相反的状态。
缓冲器88(可能为一反相器)的输入被耦合到主锁存器74的输出75及有选择地驱动门控MOSFET 90。MOSFET 90的沟道被置于缓冲器88的输出与其相关列的内部读位线RBL,例如图2A和2B的内部读位线561,之间,MOSFET 90的栅极耦合到读字线RWL以便接收读启动信号从而将缓冲器88的输出有选择地耦合到读位线RBL,将数据由存储器单元48传送到其相关的读位线56。参看图1A、1B、1D、2A,2B和3,一相关的地址单元20由地址总线28接收读地址以便以寻址方式选择读字线298的一给定的读字线RWL。相关的行存储器单元48的所有通过门,MOSFET 90,被一起启动以把其数据传送到各个内部读位线56。
从而,存储器单元48即具有多个用来接收更新主锁存器74的数据的输入端口,即PUSHIN,POPIN,PBL,SI,WBL和RST。同样,存储器单元48具有多个用于发送其存储的数据的输出端口,即SO,RBL,PUSHOUT,和POPOUT。(上述的与本申请结合在一起的申请“利用单个的单元写端口实现一存储阵列中的写、初始化、和复位的系统”揭示了一带有仅利用一单个写端口来维持许多这类功能的选择电路的单一写端口单元)。
在上述存储器单元实施例中,辅助锁存器76及只涉及到LSSD串行扫描操作。在另一种配置中(参看图4)存储器单元48′使其中可存储二个数据位来提高存储器密度。但这另一种存储器单元配置48′兼有串行扫描功能。因为有关串行扫描操作需要双相位时钟,所以每一存储器单元48′只能有一个数据位与此串行扫描功能相关联。
在这另一种存储器单元配置中,辅助锁存器76包含辅助的压入、弹出、程序、写和复位输入端,这些输入端按照相关的压入、弹出、程序、写和复位启动信号有选择地连接到辅助锁存器76输入端73′。应指出,此压入/弹出启动信号(图4中未表示)实际上在各个相邻的传输单元中是存在的。辅助锁存器76的输出75′同样经由各自共同的读、压入/弹出启动输出信号来驱动辅助的读、压入和弹出输出。因而,这个以另一种方式配置的存储器单元48′在串行扫描操作期间与上述同样地运行,但对其他的存储器功能提供附加的存储密度。传输单元
如上面参照图2A和2B所述,传输单元50沿各列存储器单元作垂直向上或向下的数据位移。参看图5,传输单元50含有一具有强端的输出96和弱端的输入94的传输锁存器92。当弱端的输入94由一强的输出源(例如一给定存储器单元48的主锁存器74的输出75)接收数据时(图3),传输锁存器92即按照在其弱端的输入94所接收的数据更新其强端的输出96。MOSFET 98和100与传输锁存器92相结合启动数据在两垂直相邻接的存储器单元之间向上移动。MOSFET 98的沟道被置于传输锁存器92的输入94与压入输入节点97之间。MOSFET 98的栅极由一第一相位压入时钟PUSHCLK1驱动,将压入输入97有选择地耦合到传输锁存器92的弱端输入94。从而,当MOSFET 98经第一相位压入时钟PUSHCLK1被启动时,由其下面的存储器单元48,例如存储器单元481,1的压入输出提供的数据即被传送到传输锁存器92。在下一步中,一第二相位压入时钟PUSHCLK2启动MOSFET 100,将数据由传输锁存器92的强端输出96传送到压入输出PUSHOUT 99,而驱动同一列中在上面的相关邻接存储器单元,例如存储器单元482,1的压入输入。
以类似方式,当MOSFET 102和104分别为各自的第一和第二相位弹出时钟POPCLK1和POPCLK2驱动时,它们启动数据从一存储器单元向其下面的垂直邻接存储器单元向下传输。将MOSFET 102的沟道置于传输锁存器92的弱端输入94和一耦合到同一列的上面的一垂直邻接的存储器单元的弹出输出的弹出输入节点101之间。MOSFET 102的栅极由第一相位弹出时钟POPCLK1驱动,从而将节点101有选择地耦合到传输锁存器92的输入端94,以启动弹出数据从其上面的垂直邻接存储器单元传送到锁存器92。MOSFET 104的栅极由第二相位弹出时钟POPCLK2驱动,从而将传输锁存器92的强端输出96有选择地耦合到弹出输出节点103,以便启动数据由传输锁存器92传送到其下面的垂直邻接存储器单元。例如,在第一相位弹出时钟启动其相关的MOSFET102时,传输单元501,1(图2B)即由存储器单元482,1(未表示出)的弹出输出接收数据。然后传输单元501,1通过由一第二相位弹出时钟启动其相关的MOSFET 104来将这一数据传送到存储器单元481,1的弹出输入。在压入时钟或弹出时钟二者中无一被确定时,传输单元的每一个MOSFET部件均呈现一种开路的、高阻的三态输出状态。如以上指出的,在本发明的一特定实施例中不提供各个存储器子阵列内部的垂直数据移动,因而FPMA中就不包含此传输单元50。
在说明了存储器子阵列12的各不同部件后,本说明书的下一部分说明有关确定数据进入和离开FPMA10的各不同存储器子阵列的数据路径的其他可编程资源。位线路径选择矩阵
参看图1A-1C和6A-6E,FPMA10的各位线路径选择矩阵14选择各不同位线结构30、32、34、36中的特定数据线来向辅助I/O总线38传送数据。此位线路径选择矩阵14包含有一读位线开关矩阵部分106(图6A),一写位线开关矩阵部分116(图6B),一压入开关矩阵部分126(图6C),一弹出开关矩阵部分136(图6D),和一编程位线开关矩阵部分146(图6E)。这些开关矩阵部分的每一个分别将一相关的存储器子阵列的各个读、写、压入、弹出和编程数据线结构30、32、34和36的数据送到辅助I/O总线38成一垂直邻接的存储器子阵列的对应数据线结构。
图6A中读位线开关矩阵部分106包括N个开关矩阵部件1141-114N,其中N等于写存储器子阵列12相关的一数据字宽度中的位数。开关矩阵部件114各自将相关的读位线层次结构1081-108N的读位线的特定层次有选择地耦合到相关的读位线互连线1101-110N(例如参见图1B,向I/O路径选择矩阵16Z+1提供至读线40的相互耦合)以将相关的读数据传送至对应的I/O路径选择矩阵16。此外,每一开关矩阵部件114均是可编程的,从而将其相关读位线层次结构108的第一级读位线H1有选择地耦合到一相关的邻接存储器子阵列的对应的第一层次的读位线1121-112N
类似地如图6B中所示,写位线开关矩阵部分116具有N个写位线开关部件1241-124N,用于有选择地通过一相关的I/O路径选择矩阵16将数据由辅助I/O总线38送到相关的写位线层次结构1181-118N的选择线。写位线开关部件1241-124N将互连线1201-120N(例如参看图1B,由I/O路径选择矩阵16Z+1至写线42的相互耦合)有选择地耦合到相关的写位线层次结构1181-118N的选择层次的写位线。另外,在各写开关矩阵部件124还将接近其相关存储器子阵列12的写位线层次结构118的第一层次写位线有选择地相互耦合到其垂直邻接的存储器子阵列12的其对应的第一层次写位线1221-122N
现在再看图6C,压入开关矩阵部分126具有N个压入开关矩阵部件1341-134N,用于将一给定存储器子阵列12的压入数据线有选择地相互耦合到相关的互连线1301-130N(参看图1B的相互耦合压入线44)以便将数据通过I/O路径选择矩阵16由辅助I/O总线38传送至与该给定存储器子阵列12相关联的堆栈。此压入开关矩阵部件134另外也可加以编程来将压入输出1281-128N分别相互耦合到压入输入1321-132N,以便能将由其下面的垂直邻接的存储器子阵列接收到的压入数据传送到该给定存储器子阵列。从而各存储器子阵列12可以或者通过I/O路径选择矩阵16和互连线130从辅助I/O总线38有选择地接收压入数据、或者通过相关的互连线132由其下面的垂直邻接存储器子阵列有选择地接收压入数据。
图6D的弹出开关矩阵部分136与压入开关矩阵部分126相似,但是以相反的状态操作,不是将数据压入,而是将数据弹出一相关的存储器子阵列12。弹出输出1401-140N启动弹出数据(参看图1B,沿着对应的相互耦合弹出线46)通过一相关的I/O路径选择矩阵16传送到辅助I/O总线38。辅助弹出输出1421-142N启动到其下面的垂直邻接存储器子阵列的相关弹出输入的耦合。弹出输入1381-138N被耦合到其相关的存储器子阵列的弹出输出,以接收被弹出其堆栈的数据。各开关矩阵部件144可按照其相关的配置数据进行操作将相关的弹出输入138有选择地耦合到弹出输出140以便向辅助I/O总线38发送弹出数据,或者耦合到辅助弹出输出142。
参看图6E,编程位线开关矩阵部分146主要包括在一存储器子阵列的编程位线1501-150N与一邻接存储器子阵列的各个编程位线1481-148N之间的有选择的互连线1521-152N,或在一优选实施例中,仅仅是硬件的连结。在另外一种方式下,对于此垂直堆栈的第一位线路径选择矩阵14,此编程位线开关矩阵部分146提供状态机存取端口24的编程位线与存储器子阵列121之间有选择的相互耦合。对矩阵部分146的输入1501-150N进行耦合,以用来由其下面的邻接存储器阵列、或者由状态机存取端口24接收数据。位线路径选择矩阵14的输出1481-148N被耦合到编程位线结构36的各个连结(图1B)以发送数据到其相关的存储器子阵列12。选择性的互连线1521-152N按照相关的配置数据提供输入150与相关的输出148之间的有选择的耦合。另外,这些选择性的互连线仅仅是硬件接收连接。
在概括地说明了位线路径选择矩阵14之后,下一部分更详细地说明位线路径选择矩阵的各种开关矩阵部件。读位线开关部件
参看图7,读位线开关矩阵部件114对一存储器子阵列的给定列的存储器单元具有多个耦合到一相关读位线层次结构108的各不同层次读位线RBLH1、RBLH2、RBLHX的输入。开关矩阵114选择一特定的层次位线以接收欲被送往辅助I/O总线的数据。对一给定列存储器单元,读位线层次结构108包括有第一层次读位线RBLH1,第二层次读位线RBLH2,和直至一全局层次读位线RBLHX的附加层次线。一般,第一层次读位线RBLH1与一单个存储器子阵列12的一列存储器单元相关联。最好是一个MOSFET的选择性的耦合器54可作有选择地编程来将一存储器子阵列的第一层次读位线RBLH1互连到输出112,该输出被耦合到一垂直邻接存储器子单元的对应的第一层次读位线。MOSFET 154的栅极根据配置数据156被驱动。选择性的互连装置158,亦即一多路器,按照其配置数据160将其输入之一有选择地耦合到输出110以便向相关的I/O路径选择矩阵16和辅助I/O总线38传送读数据。多路器158的输入被耦合到读位线层次结构108的各个层次位线,包括垂直邻接存储器子阵列的相关的第一层次读位线112。在此说明的图中,其中带有十字的圆圈,例如156和160,还是代表对它们的可配置的装置提供相关的驱动信号的配置数据。
为有助于读位线结构的配置,双向多路器162和164提供各不同层次读位线间的选择性的双向相互耦合。例如,高层次读位线RBLH2,RBLH4可经配置数据通过多路器164有选择地耦合到一给定存储器子阵列12的第一层次读位线RBLH1,或者经其数据通过多路器162有选择地耦合到垂直邻接的存储器子阵列的第一层次读位线112。不消说,上述多路器中每一个还包含不选择任何输入的配置,此时每个输入和输出均被置于高阻抗的开路状态。写位线开关部件
参看图8,写位线开关距阵部件124与该位线开关矩阵部件114类似,在一存储器子阵列的一给定列存储器单元的写位线层次结构118与相互耦合写线42(图1B)之间提供有选择的相互耦合,用以确定通过相关的I/O路径选择矩阵16由辅助I/O总线38接收到的写数据路径。写位线层次结构118包含一第一层次写位线WBLH1,它与一单个存储器子阵列12中的一给定列存储器单元相关联。此第一层次写位线WBLH1可经选择性的耦合器166耦合到一垂直邻接存储器子阵列的对应的第一层次写位线122。
输入120通过一相关I/O路径选择矩阵16由辅助I/O总线接收写数据。选择耦合器168,例如一1/N驱动器,将此写数据有选择地送往其输出之一,这些输出耦合到写位线层次结构118的各个写位线,包括该垂直邻接存储器子阵列的第一层次写位线122。选择性的双向多路器170和172提供各不同层次的写位线之间的选择性的双向相互耦合。例如第一层次写位线WBLH1和122可分别通过170和172被有选择地相互耦合来驱动其他较高层次写位线WBLH2,WBLH4。这些多路器的每一个按照其相关的配置数据提供其各自的耦合配置。在利用读位线开关矩阵部件的多路器时,上述1/N驱动器和多路器包括有不作任何选择的配置状态。
关于数据位线层次结构,整个FPMA的一给定列存储器单元的层次结构的第一层次位线在各存储器子阵列边界处被分开。较高层次的位线,例如H2和HX跨越多重子阵列。例如,第二层次写位线WBLH2最好用于二个存储器子阵列1121和1122。一选择性耦合器(未示出),类似于MOSFET 166,可同样地被用来在与最初的二个存储器子阵列,如121和122,相关联的第二层次写位线WBLH1和与随后的二个存储器子阵列,例如123和124,相关联的对应的第二层次写位线之间提供有选择的耦合。最后,最高层次写位线,例如WBLHX,最好用于所有的存储器子阵列作为一全局位线。这样的位线结构108和118被用于现场可编程存储器阵列10的存储器子阵列1至N列中的每一列;读位线的层次结构延伸穿过FPMA,就象写位线那样。下面讨论另外的层次结构。压入/弹出开关矩阵部件
参看图6C和9,压入开关矩阵部件134各包括二个选择性耦合器、三态缓冲器174和MOSFET 176。三态缓冲器174位于输入130与输出128之间。输入130被耦合到相互耦合压入线44,通过相关的I/O路径选择矩阵16由辅助I/O总线接收压入数据。三态缓冲器174按照其配置数据将这样接收到的压入数据有选择地传送到输出128,以驱动一列相关存储器阵列的压入输入。MOSFET 176有选择地耦合输出128和输入132,以便在一给定列内将由一其下面的垂直邻接存储器子阵列接收到的压入数据传导至相关的存储器子阵列的压入输入。
弹出数据开关矩阵部件144,如图6D和10所示,与压入开关矩阵部件134(图9)类似,所不同的是数据以反方向流动。弹出输入138由其相关的存储器子阵列的弹出输出接收数据。将此所接收的数据有选择地耦合到一在其下面的垂直邻接存储器子阵列的对应弹出输入,或者可以向着辅助I/O总线38(图1B)被有选择地驱动出输出端140。三态缓冲器178有选择地耦合输入138和输出140,后者被耦合到相互耦合弹出线46的一条选择线,以便将接收的数据向相关联的I/O路径选择矩阵16的辅助I/O总线38传送。MOSFET 180按照其相关的配置数据提供输入138和输出142之间的选择性的耦合,以便在一给定列内将由相关的存储器子阵列的弹出输出接收到的接收数据传送给其下面的垂直邻接子阵列的弹出输入。
在FPMA 10由不设置压入/弹出垂直数据移动的本发明的实施例中,不提供此位线路径选择矩阵14的压入开关矩阵部分126和弹出开关矩阵部分136。编程开关矩阵相互连接
图6E的选择性相互连接152最好是邻接存储器子阵列的各个编程位线之间的简单的连接“线”。在将FPMA与一现场可编程门阵列FPGA结合在一起应用的本发明的一特定应用中,编程位线被相互连接来扩展与FPGA的配置逻辑相关联的状态机的寻址能力相适应的FPMA的存储器空间。换句话说,在各个存储器子阵列之间提供这些编程(初始化)位线的相互耦合,使得编程数据能够访问那些能在FPGA的状态机的可寻址空间之内寻址的FPMA的区域。在FPMA之外,编程位线与将配置数据送入例如SRAM的FPGA的配置存储器以对FPGA的可编程资源进行配置的转移相关联。从而,FPGA的状态机在其编程配置期间,在经相关的相互耦合装置152启动时,能通过状态机存取端口24和相关的编程位线访问FPMA的深层次存储器。
在说明了子阵列位线结构的位线至各个I/O路径选择矩阵的有选择的耦合之后,下面讨论I/O路径选择矩阵怎样将被选择的位线有选择地相互耦合到辅助I/O总线38。
如图1A和1B中所示,I/O路径选择矩阵16-16Z+1相互连接相互耦合线40、42、44、46,以便确定被相关的位线路径选择矩阵141-14Z+1分别选择的信号通往辅助I/O总线38的选择线的途径。参看图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总线的数据送到相关的位线路径选择矩阵。图1中仅表示出二个写I/O路径选择矩阵开关1821、1822,将分别来自辅助I/O总线38的各个层次数据线结构1861、1862的数据耦合到写线相互耦合装置42的各个写数据线。但不消说,应用N个这样的写I/O路径选择矩阵开关182,使得写线相互耦合装置42的N条线的每一条均能被有选择地耦合到辅助I/O总线38的一对应层次数据线结构186。同样,虽然仅表示有一个写I/O路径选择矩阵开关182Q-1将来自层次数据线结构186Q-1的数据送到压入互连装置44的一选择线,不消说,应用N个这样的写I/O路径选择矩阵开关182称相互耦合装置44的N条压入线的每一条耦合到辅助I/O总线38的相关N层次数据线结构186。提供同样多的开关来将读相互耦合装置40和弹出相互耦合装置46的各个信号线相互耦合到辅助I/O总线38。
辅助I/O总线38具有Q层次数据线数据1861、1862…186Q。各层次数据线结构186由图12中所示的多个层次信号线H11、H12、H2…HX组成。第一层次数据线部件,例如H10、H11,沿各个存储器子阵列延伸并且有经各存储器子阵列的边界。最好为一MOSFET的通过门188按照其相关的配置数据提供邻接的第一层次数据线如H10和H11之间的有选择的耦合。此给定层次结构186的第二层次线H2沿多个相关的第一层次线H1延伸。层次结构186的最高层次I/O线HX提供一跨越所有相关的低层次I/O线、和因而所有相关的FPMA的存储器子阵列的全局I/O线。I/O路径选择矩阵16的各写开关182包含1至R个多路器1901、1902…190R,将相关的相互耦合网络例如40、44的R条信号线之一有选择地耦合到此特定的层次I/O数据线结构186。R可取1至N间的一个值,其中N等于相关的相互耦合网络的行数,并相当于一相关存储器子阵列的数据宽度N。写开关182的多路器190将一相关层次结构186的一选择层次I/O线有选择地耦合到其相关的相互耦合网络例如40或40的一选择信号线。各多路器190按照其相关的配置数据提供选择性相互耦合,其中可包含一个都不选择的情况。
读I/O路径选择矩阵开关184(图13)具有类似于写I/O路径选择矩阵开关182的柘朴布局,不同之处在于以选择性驱动器192来代替选择性多路器190,以便有选择地将数据分别从读和弹出互耦装置,40和46,驱动到辅助I/O总线38。各选择性驱动器1921、1922…192R均具有多个耦合到辅助I/O总线38一给定层次结构186的各不同层次线的输出。选择性驱动器192按照相关的配置数据来提供这样的选择性耦合。在一种配置状态中,选择性驱动器192不驱动任何输出,此时所有的输出均呈现开路的三态状态。通常此R个选择性驱动器192中仅一个经读开关184提供对其相关的层次结构186的耦合。MOSFET 188′类似于以上关于写开关的MOSFET 188所描述的,按照其相关的配置数据提供第一层次信号线H10和H11间的选择性耦合。
在本发明的存储器子阵列中不要求作数据垂直移动的一实施例中,不包含有I/O路径选择矩阵的弹出和压入资源。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编程使之不驱动任一输出,此时这些输出即被维持为开路的三态状态。
在读端口200的另一实施例中,在多路器204的输出206与选择性驱动器208的输入之间设置任选的锁存/极性变换电路210。此锁存/极性变换电路210除选择性的极性变换外还能锁存读数据。多路器204的输出206被耦合到触发器222和反相器228的数据输入以及多路器224的第一选择输入(通过226)。多路器224在其第二和第三选择输入分别接收触发器222的正常的和反相的输出,并具有一为反相器228驱动的第四选择输入。多路器224按照相关的配置数据将其选择输入之一耦合到选择性驱动器208的输入202。这样,多路器224的配置就决定读端口200是否提供锁存和/或极性变换功能。
在支持读端口200内的任选锁存能力中,触发器222从多个源中的一个接收一个时钟输入。多路器212按照其相关的编程位对来自辅助总线38的两I/O线之一的时钟输入进行有选择的相互耦合。多路器212的输出驱动多路器214的两个输入,一个是以直接的方法而另一通过反相器216。多路器220从主总线26的两根线之一有选择地接收一读时钟。按照其编程位,多路器220有选择地耦合一被选择的时钟输入,用于驱动多路器214的两个附加输入,一个以直接的方式和另一经反相器218反相。多路器214本身又按照其相关的配置状态用从主总线或辅助I/O总线接收到反相的或未经反相的时钟信号驱动触发器222的时钟输入。这样,在运行中,读端口200用从辅助总线38的一选择线接收到的读数据驱动主I/O总线26的一选择线。在其另一个方面,读端口200有选择地使通过其的数据反相和/或以一来自主总线或辅助总线的有选择地反相/未反相时钟锁存此数据。
写端口230与读端口200类似,所不同的是数据是以相反方向由主I/O总线26的选择线向辅助总线38的选择线移动。多路器234的多个输入通过相关的写互连装置196耦合到主I/O总线26的选择线。在读端口200的实施例的一个方面,多路器234的附加输入以硬接线方式成为预定的偏置状态,例如接地和/或Vdd。多路器234按照其相关的配置数据将这些不同输入之一耦合到其输出236。输出236驱动第二多路器242的两个独立的输入,一个以直接的方式而另一个通过反相器240。多路器242按照其相关的配置对写数据作有选择的极性变换,并以有选择地反相的/未反相的写数据来驱动选择性驱动器232的输入238。选择性驱动器232的多个输出耦合到一辅助I/O总线38的相关的写层次结构186(图14)的各个层次信号线。选择性驱动器232按照其相关的编程位用在其输入端238接收到的写数据有选择地驱动选择层次线之一。在一种配置状态中,选择性驱动器232不选择任一输出,而使它们置于开路的三态状态。
在运行中,参看图14,各I/O块18的各个I/O单元1941、1922…194P中每一个均与辅助I/O总线38的对应写和读位线层次结构相关联,并同样与主I/O总线26的对应读和写路径选择结构相关联。按照相关的配置数据,I/O单元将辅助I/O总线的相关位线层次结构的选择信号线与主I/O总线26的选择数据线结构作有选择的接口。I/O单元数P等于或大于一子阵列字的位宽数(N)。因而,I/O块18的附加I/O单元可用来协助各不同子阵列间的数据的路径选择,或进行时钟的再分配或其他的数据管理任务。
参看图1和1B,各I/O块18可全局地将例如来自主I/O总线26的8条数据线耦合到辅助总线38的相关写信号线,并能将来自辅助总线38的附加的8条读数据线耦合到主I/O总线26的对应信号线,从而为各个存储器子阵列14提供各自在主I/O总线上的读/写接口。如果各存储器子阵列14具备(通过各自的位线路径选择矩阵22和I/O路径选择矩阵16)至辅助总线38的相关的I/O数据线层次结构186各自的第一层次信号线的读/写耦合,而且此各个层次结构的第一层次信号线是相互独立的,则各存储器子阵列就可以通过辅助总线38的I/O位线层次结构186的相关的第一层次信号线相对于其他的存储器子阵列作并行的或分离的接口。假定每一I/O块18设置由辅助总线38的相关的I/O数据线结构的各自的第一层次信号线至主I/O总线26的独立的信号线的读写互连,则各个的存储器子阵列的读/写数据接口就被相互并行地配置在主I/O总线26上,将FPMA10配置成一很宽的RAM功能单元。如这里在另外场合所指出的,在一单个的FPMA中有可能作成多重宽度/深度的RAM配置。
在另一个实施例中,FPMA 10被配置成一个深的RAM功能单元。例如一单个的I/O块将辅助总线38的各个I/O数据线层次结构的各自的高层次读/写数据线耦合到主总线26的相关信号线。此高层次数据线提供到FPMA 10的全部存储器子阵列12的全局接口。从而使得存储器子阵列12的每一个的M个字(宽N)经适当的独立的寻址有选择地接口到辅助I/O总线38的数据线层次接构的共用全局信号线。仍如这里及其他场合所指出的,这里所揭示的FPMA结构同时支持多重宽度和/或深度的RAM划分。
可以理解,主I/O总线26包括有多种范围可变和/或层次不同的路径选择信号线,以便传送数据至相关的I/O端口(未作出),和/或同一集成电路内的其他电路,或从上述的I/O端和/或电路传送数据。例如在前面引用的特定应用中,其中FPMA 10与一现场可编程门阵列(FPGA)结合一起,一方面,FPMA 10的主总线26仅仅被作为FPGA-I/O总线(图中未作出)的延伸。而在另一方面,FPMA的主总线26提供一仅在其间传送数据的边界接口。因而在这种应用中,主I/O总线26交叉多路复用(图中未作出)到FPAG的I/O路径选择资源。另一种数据接口配置
在上述提供的公开内容中,辅助I/O总线38的可编程层次结构186和可编程读/写位线层次结构30、32主要为在主I/O总线26与FPMA 10的存储器子阵列12的相关列的存储器单元之间传送数据提供两个自由度。本说明的下一部分介绍一种存在于第一和第二方面中另一种数据路径选择解决办法,其中辅助I/O总线38和相关的读/写位线层次结构30、32相互重叠,使FPMA的存储器单元的接口处的二个自由度之一被消除。
在以上的说明中,参看图2A、2B、7和8,读/写层次位线结构108/118各包含用于作相关的低层次信号线之间有选择的相互耦合的各自的MOSFET 154/166,其低层次线在子阵列边界间被分割。此外,选择性的层次相互耦合多路器162、164/170、172提供各个层次结构的不同层次线间的选择性双向相互耦合。选择性驱动器52和多路器54(图2B)提供各个位线层次结构108/118的选择线与相关存储器子阵列的对应的内部位线56/58间的各个写和读接口。
在另一种位线层次结构中,中间层次信号线可能被重叠,例如图16中的H2。此外,低层次段与相关的层次相互耦合多路器间的选择性相互耦合MOSFET被省略掉。参看图16,四个存储器子阵列121、122、123、124分别与各自的读和写位线层次结构108′、118′相关联,以便将数据接口到存储器子阵列一给定列的存储器单元。读和写位线层次结构108′/118′各自包含四个分开的跨越相关的存储器子阵列的第一层次段H1。第二层次段H2跨越三个连续的存储器子阵列并具有各自的跨越二存储器单元的重叠区(相互间的)。第三层次信号线(读和写)H3为跨越四个存储器子阵列的全局位线。
如上所述,参看图2,选择性驱动器521将其内部读位线561的数据有选择地传送到其相关的/接近的层次结构181的分开的层次信号线之一。因而,对照图16,选择性驱动器52所需的输出端的数目为四,但对其他实施例可以比这个数目或多或少。例如,存储器子阵列122有选择地驱动四个不同层次段之一以发送出在由其相关的存储器子阵列122读得的数据。同样,选择性耦合器(多路器)54,有选择地耦合此相关/接近的层次结构1181的四个层次段之一到内部写位线581以便将数据写入相关的存储器子阵列122
图16的位线层次结构各自包含三级层次H1、H2、H3。在存储器子阵列数增加时,如图17中所示,层次结构的级同样要增加。图17中,八个存储器子阵列分别与相关的读和写位线层次结构108′和118′相接口,其中每一个具有四级层次H1、H2、H3、H4。同样,第二层次段H2互相重叠,重叠区跨越二存储器子阵列。另外,如果子阵列数和层次信号线数进一步增加,就将设有附加的中间层次信号线的重叠。不过在其他实施方案中,并非所有层次均需这样的重叠。
图18A和18B较详细地表明用于由例如存储器子阵列124至主I/O数据总线26的一主I/O信号线(图15,通过选择性驱动器208)传送读数据的读位线层次结构108′和相关的数据路径。一存储器子阵列124的给定存储器单元由一相关的被寻址的字线(未示出)启动,从而在其相关的内部读位线561上驱动其中存储的数据。各种不同层次结构信号路径可用来将这一数据(在由存储器子阵列124读取时)传送到其相关的I/O块184的一I/O单元194(图14)的读端口200′。对于第一层次级H1,内部读位线561的数据在当MOSFET 246的栅极被相关的第一层次时钟CLKH1启动时,被输送通过反相器24并经MOSFET 246被计时而送进锁存器248。此第一层次时钟经由与读取存储器子阵列相关的读时钟产生(如下面参照这另一种数据接口配置的第二个方面更全面地解释的)。锁存器248的数据按照相关的配置数据通过三态反相器256有选择地输出到读端口200′。在由存储器子阵列124读取一数据字时,每一个与该字的每一位相关联的三态反相器256均根据同一配置数据进行控制。同样,第一层次时钟CLKh1被同时施加到第一层次选择性耦合器,就象与MOSFET 246同样,关联到该字中的其余位。当三态反相器256被启动时,读数据即通过读位线层次结构的第一层次信号线H1被传送到读端口200′。
第二和第三层次位线H2和H3分别提供将数据传送至读端口200′的另一种数据路径。反相器250接收内部读位线561的数据并将经过反相的数据分别向相关的MOSFET选择开关252和254发送。MOSFET选择开关252包括第一和第二MOSFET装置,其各自的沟道串接在地和相关的H2位线之间。第一MOSFET装置由第二层次选择配置数据启动。在选择开关252的第一MOSFET的栅极经第二层次选择配置数据启动时,第二层次位线H2按照在由内部读位线561读出的、控制选择开关252的第二MOSFET的栅极的数据,或者被放电,或者不被放电。类似的选择开关252对穿过相关的存储器子阵列124的其他内部读位线562、563…56N的每一个均加以设置,以便将其数据有选择地耦合到对应的层次位线结构的各自的第二层次位线。同一存储器子阵列的每一选择开关252共用同一配置数据,  因而被有条件地作为一个字同时启动。MOSFET选择开关254对应于选择开关252,具有类似的功能,它用于在经其第三层次配置数据启动时按照内部读位线561的读数据来驱动第三层次位线H3。在一给定的存储器子阵列内,MOSFET选择开关252和254由相关的层次配置数据有选择地启动。对不同的存储器子阵列,选择开关252和254由对各存储器子阵列唯一的相关层次配置数据有选择地启动。因而,可以合在一起考虑三态反相器256和MOSFET选择开关252、254,将其替代图2B的选择性驱动器521
第二和第三层次位线H2和H3,分别通过各自的P沟道MOSFET装置(选择性耦合器)258和256被预充电成高电位。(内部位线56,以及第一层次线H1,可同样加以预充电)。MOSFET装置258、260将相关的位线H2、H3有选择地耦合到高电源,以便按照在其栅极上接收到的相关的第二和第三层次预充电信号来对位线充电。只要各个位线不由适当的读数据和配置数据通过MOSFET选择开关252和254放电,被充电的位线H2、H3一直保持充电状态。在读操作期间,顶充电FET258、260被截止,噪声抑制P沟道MOSFET 262、264由各自的反相器266、273驱动以维持相关的第二和第三层次位线处于被充电状态,除非为一读放电操作所压住。噪声抑制FET 262、264的沟道导通电阻被作成大于选择开关252、254的串联MOSFET的组合串联导通电阻,以便使选择开关(由适当的读操作)能使各个位线H2、H3放电,以压住各个噪声抑制FET 262、264的电流源的能力。
反相器266、MOSFET 268、锁存器270和缓冲器272被串接在H2位线与各个I/O块18的相应I/O单元的读端口200′的相关的第二层次输入之间。运行中,一RAM读时钟启动一适当序列的预充电信号(例如,PRECHARGEh2和PRECHARGEh3分别驱动MOSFET 258和260),以及可启动第二或第三层次时钟(分别驱动MOSFET 268和274)用来将相关的读位线数据锁存进各自的锁存器270和276。缓冲器272/278按照各个锁存器270/276的锁存数据驱动相关的I/O块的各个第二和第三层次输入。
对位线系统的输入也可依靠由子阵列的地址单元产生的高阶启动信号来作门控。
为简单起见,将与存储器子阵列121、122、123相关联的读位线层次结构108′的附加的重叠第二层次位线在其与图14所说明的第二层次位线H2的重叠关系上未加表示。但应当理解,这样一附加第二层次位线(如参照图17所说的但在图18中未加表示)连同用于驱动相关I/O块的对应的第二层次输入的相关的MOSFET选择开关和预充电/驱动电路一起是存在的。此外还应理解,存储器子阵列121、122、123具有与存储器阵列124相关联的对应的反相器244、MOSFET 246、锁存器248和三态反相器256,用于将各个内部读位线的相关的第一位读数据传送到各个I/O块的对应的第一层次输入H1。下面说明在进一步将读数传送至主I/O总线26时的一I/O块18的I/O单元194的读端口200′的操作。
图18的读端口200′类似于I/O块18的I/O单元194的读端口200,(例如与存储器子阵列124相关联的I/O块184)正如上面参照图1A、1B、14和15所描述的。不消说,对应的读端口200′被设置在与存储器子阵列123、122、121相关联的各个210块183、182、181(未表示出)中。三态缓冲器256、280和282将数据由各个H1、H2、H3层次位线有选择地传送进相关的读端口200′。这种三态反相器的组合可合在一起看作提供与多路器204相同的功能,如上面15所说明的。一般说,由相关的配置数据仅选择三态反相器中的一个,用于通过缓冲器284将读数据传送到选择性驱动器208的输入。选择性驱动器208按照其相关的配置数据驱动其相关的互连线198的一选择输出到主I/O总线26(图1A和1B)。
在本发明的另一种读数据接口配置中,读数据在由相关的层次位线接收到时被锁存进各自的层次锁存器248、270、276。因而如上面参照图15所说明的,前面描述的读端口200中设置的触发器222的任选的锁存能力,就不包含在另一种读端口200′中。
而且,这一为确定由给定的子阵列至相关的I/O块的数据路径的另一种数据接口配置消除了在选取读数据路径上的一附加的自由度,否则就要由位线路径选择矩阵14的多路器158(图1A、6A和7)和I/O路径选择矩阵16的对应读路径选择矩阵开关184(图1A、11和13)来提供这种功能。这样,该另一种数据层次路径选择实施方案就以减少路径选择能力、即减少自由度作代价来减少电路复杂性。
为将数据写入一存储器子阵列的另一种数据接口,如图19中所表明的,与上面参照图18所述的用于读取数据的接口相同。用于一存储器阵列的字宽的单个位的写位线结构118′包括:一最高层次的全局位线H3;两个具有重叠关系的中间层次位线H2;和第一层次的四个局部位线H1。这些不同层次的位线提供由相关的I/O块的写端口230的各个层次的输出有选择地耦合进入存储器子阵列。对存储器子阵列的整个字宽N上的每一位均设置同样的写位线结构。
假定写端口230′为属于与存储器子阵列124相关联的I/O块184的一I/O单元194的。多路器234可根据相关的配置数据进行编程以便将其多个输入的一个有选择地相互耦合到其相关输出。使多路器234的多个输入196相互耦合到主总线26的选择行(图1A和1B)。多路器234也可有选择地供给一固定的输出。多路器234的此输出被耦合到一由反相器240结合多路器242构成的选择性极性反相电路。此极性反相电路按照多路器242的相关的配置数据有选择地使所通过的信号反相。
多路器242的输出238驱动选择性驱动多路器232的输入,此多路器232由反相器286和288以及三态反相器290和292组成。反相器286以由多路器242接收到的写数据来驱动反相器288和三态反相器290和292。反相器288的输出驱动与存储器子阵列124相关联的第一层次H1写位线。三态反相器290的输出耦合到重叠的第二层次H2位线之一。三态反相器292的输出驱动全局层次位线H3。
将会理解,对于I/O块的写端口230′(图中未表示),例如183,182,将与第二层次位线的重叠区相关联,被设置有一附加的三态反相器(图中未示出)以便能有选择地耦合到其他的重叠的第二层次位线H2。另外,一给定写端口230′的配置数据被共用于与相关的I/O块的存储器子阵列的宽N的其余位相关联的所有对应的可编程资源(除234外,因为在耦合到外部接口时路径选择需要更加灵活)。多路器54按照其相关的配置数据由写位线层次结构的一信号线有选择地输入数据,以传送数据至其相关存储器子阵列的内部写位线581。同一配置数据被用于在整个存储器子阵列的宽度N内对类似的多路器541、543…54N(未示出)进行配置。
在本实施例的另一个方面,包含有一缓冲器(未示出)用于在驱动内部子阵列位线581之前对相关的层次位线H2和H3的数据进行缓冲。这样的缓冲器有助于降低各个层次位线的节点电容,特别是在每一相关的存储器阵列被配置成使它们内部写位线耦合到同一层次位线,如H3时,因为需要对FPMA提供深度的RAM配置。
运行中,多路器234根据其相关的配置数据由其输入196之一接收写数据。被接收的写数据通过极性变换电路240、242,后者按照其相关的极性配置数据有选择地改变读数据的极性。选择性驱动多路器232将此写数据传送到相关的第一层次H1位线,并按照相关的层次配置数据分别将同一写数据有选择地传送给第二和第三层次位线H2和H3。接着多路器54由相关的写位线层次结构的适当位线选择写数据,并将这一写数据发送给其内部写位线581
为简单起见,图19未说明与存储器子阵列121、122、123相关的I/O块的写端口。同样,也未表示出与提供写数据到重叠的第二层次位线H2这一点相关联的I/O块的写端口的三态反相器。此外,还应理解,相关的存储器子阵列121、122、123的各多路器54使其各自的第一层次信号线H1被耦合,以便由相关的I/O块的对应写端口(未表示出)接收写数据。
在本发明的另一个方面,存储器子阵列的每一内部读位线均配有与前面参照图18的第二和第三层次读位线所揭示的预充电/放电布局相同的预充电/放电数据传输线路。存储器子阵列的一被寻址的字线将根据与一内部位线和此被寻址的字线相关联的一存储器单元的数据内容启动此内部位线作有选择的放电。依靠对内部读位线结构作这样一种预充电/放电的配置,因而可将存储器子阵列的内部存储器单元作得较小,无需用于对各个内部位线进行放电或充电的很大的驱动器。提供简化的读位线接口的另一种读俘获锁存布局:
可编程读位线层次结构108′,如参照图16、17、18A、18B所述,采用独立的锁存器例如248、270、276来将各个层次位线的每一个连系到相关I/O块18的I/O单元的读端口200′的各个层次输入。在用于连系该存储器子阵列的另一个实施方案的第二个方面,可编程读位线结构108′包含一种经改善的单一锁存器布置的解决方案,可免除对多个锁存器的需求。
参看图20,一读位线层次结构108′类似上面参照图17的表明和描述的,对有选择地从8个不同的存储器阵列121、122…128的一给定列存储器单元的存储器单元的读出数据进行传送。图20中未表示出各子阵列的内部位线与接近它的层次结构的不同相关层次位线的有选择的耦合。因而可以明白,如上面参照图2A、2B、16和17所说明的,选择性驱动器52(或其相当部件)按照相关的配置数据将相关的内部读位线56的数据有选择地传送到各个层次结构108′的分离的层次位线。而且,应再次指出,如图20中所示的位线结构108′仅提供对一列存储器单元的数据接口,该列代表此可编程存储器阵列N位宽度中的一位,而对应的读位线层次结构108′则同样地用于整个存储器阵列宽度的每一个其他列。
图20和21示出读俘获锁存器组4001、4002…4008,各个I/O块的和靠近各个存储器子阵列121、122…128的该位线层次结构108′相关联的中间读端口2001′、2002′…2008′。一锁存器组400的锁存器单元4011、4012…401N各具有耦合到各个读位线层次结构1081′,1082′…108N′的相关层次位线的层次输入。此锁存器俘获与由时钟发生器404所产生的各个层次俘获时钟408相同步的相关读数据。锁存器组400锁存的数据通过互连线4021、4022…402N被传送给各个I/O块18的读端口200′。时钟发生器404按照相关的层次配置数据在输入端406接收读定时信号并产生各个的层次俘获时钟408。
接收到一给定的层次俘获时钟412后,延时反相器410产生一经延时和反相的俘获时钟的表征414,并被送往时钟发生器404以清除各个层次俘获时钟。因而,时钟发生器404与延时反相器410一起在产生俘获时钟中提供一种快速操作。
参看图22,时钟发生器404由多个其时钟由各自的“与”门416驱动的触发器418h1、418h2…418h4组成。各“与”门416具有一耦合到一定时读位线层次结构406的一相关层次位线的输入,和一按照相关层次配置数据被驱动的第二输入。因而,此相关层次配置数据决定哪一层次俘获时钟408将产生,和相应地将从哪一层次位线接收读数据并锁存在各个锁存器组400中。
运行中,例如“与”门416h1由相关的第一层次定时位线406h1接收一上升沿。假定此特定“与”门被启动,此上升沿就被发送到触发器418h1的时钟输入。在将其数据输入变成高态时,触发器418h1转变为高态,在其输出端408h1送出一高逻辑信号作为第一层次俘获时钟。锁存器组400接收此第一层次俘获时钟,该时钟启动锁存器组400按照相关的第一层次读位线更新其内容。延时反相器410在接收到第一层次俘获时钟的上升沿后产生经延时的复位信号,通过互连线414将其送到触发器418h1的复位输入端以清除其输出。也可以利用下降沿检测。
在时钟发生器的另一实施例中,触发器418具有各个由异步一锁存一配置数据驱动的SET(置位)输入,用于提供交替异步的与读多路器52(图2B)和多路器204/208(图15)相关联的组合读操作。当SET输入被恰当地驱动时,触发器418提供高输出,其中锁存器作为通过装置运行。对于不需异步操作的实施例,这些SET输入即不必由相关的异步-锁存-配置数据驱动,因可以不予考虑或者将其连接到一固定电平以便能正常运行。
图23给出了俘获锁存器401的一给定单元的细节。反馈耦合的反相器420提供接收和保持数据的基本锁存装置。多个MOSFET 409提供对锁存器420的输入的通过门的操作。MOSFET 409的栅极由各个层次俘获时钟408驱动以便对锁存器402的输入进行有选择耦合,从而接收读位线层次结构108′的相关层次位线的数据。反相器407在各个层次位线h1、h2…h4与锁存器420之间提供缓冲。另外,反相器407具有为改变锁存器420的状态的足够的驱动能力,亦即每一个均具有比锁存器420的反馈反相器大的电流源/吸收的能力。最后,在驱动相关的I/O块18的读端口200′中,三态反相器422在经相关的锁存器配置数据启动时,发送出代表所保持的锁存数据的数据。另一方面,三态反相器422为一简单的反相器所替代。运行中,例如读位线层次结构108′的第一层次位线h1将数据发送至反相器407。反相器407用表示从第一层次位线接收到的数据的输出数据驱动其相关的第一层次通过门FET 409的被控制的沟道。第一层次俘获时钟408h1驱动第一层次FET 409的栅极启动该FET让第一层次数据通过而进入锁存器420。为俘获层次结构108′的其他层次位线的数据,可以类似方式激活各自的层次俘获时钟408来代替启动各自的MOSFET 409使数据通过而进入锁存器420。通常在使一给定时刻仅一层次俘获时钟被激活来俘获读俘获锁存器单元401的锁存器420中的数据。
为保证读俘获锁器组400保持从一相关存储器子阵列12内一特定字位置读出的恰当的数据,必须为涉及到数据沿其相关的层次位线的传送的读俘获时钟406/408规定一适当的定时序列。如前面大致地提到的,一定时读位线结构与存储器阵列内的一给定的“虚设”存储器单元列有关,此定时读位线结构与存储器阵列中其他列的存储器单元的读位线层次结构108′相同。但是,不是经可寻址选择的字线信号将所存储的(实际)数据在相关的读位线结构上进行门控,而是经此同一可寻址选择的字线从一个虚设的存储器单元(例如一个未示出的硬件连线的存储器单元)到该模拟的定时读位线结构对一个已知的预装入的虚设值,例如1,进行门控。因而就建立了一相当于相关的(实际的)字数据的传送路径的用于一读定时信号(虚设数据)的传送途径。但是,不是将定时读位线层次结构的不同的层次位线耦合到一个相关的读端口200′的中间的相关读俘获锁存器,而是将此定时读位线结构406的各不同层次位线作为耦合到时钟发生器404的输入以便用来触发选择层次俘获时钟408。因而,由于相应的传送路径,在一层次俘获时钟被加以综合的时刻,其相关的读数据已沿着对应的层次读位线通过反相器407并到达各个FET409的门控沟道。
如图24中所示,预充电电路同样被用来如上面参照图18A和18B所述的对读位线层次结构108′的各不同层次位线进行预充电,并对定时读位线层次结构406的各不同层次位线进行预充电。多路器432由地址总线28(图1A)的一相关的读时钟层次结构(未示出)接收一选择读时钟。多路器432按照相关的层次配置数据选择一给定的输入以接收一相关的读时钟。多路器432驱动脉冲延时单稳电路430。预充电FET 424为一P沟道MOSFET,它将各个位线RBLhx有选择地耦合到一高的电源电压Vdd。FET 424根据从脉冲延时电路430接收到的一预充电信号PRECHARGE被启动。在一读操作期间并由多路器432接收到恰当的读时钟后,脉冲延时电路430驱动FET 424的栅极以保证在对应于由读俘获锁存器组400的发生器404(图20~22)产生一相关的层次俘获时钟408的俘获脉冲期间的期间内,预充电FET424被载止。在此截止期间,只要读位线RBLhx的逻辑状态为高,反相器428就将驱动噪声抑制FET426的栅极从而启动该晶体管使其相当于一个高阻上拉电阻器而达到一个高的电源电压Vdd,用以抑制读位线上可能检取到的噪声成份。在一段等于或大于由读时钟的有效边沿和随后的俘获时钟的无效边沿所限定的时间周期内使预充电截止。这段时间大于俘获时钟的持续时间。俘获时钟与使相关的位线路径放电的定时位线的依从关系取决于预充电的结束,并带有保证位线的稳定性的抑制电路。
噪声抑制FET426的沟道导通电阻被作成足够大以使得在读操作期间当个别存储器单元驱动相关的读位线时,相关的层次读位线的状态可能加以改变。例如,如果一个给定的存储器单元读对RBLHX提供一逻辑“1”,反相器428即反相此“1”而输出“0”以保持PFET426处于其噪声抑制状态。相反,如果此存储器单元读提供一个“0”,此相关层次读位线(即图18A的开关252、254)的电流吸收能力大于噪声抑制FET 426的电流源能力,从而使读位线被下拉至逻辑0的情况,此时反相器428使其输出成为高态。抑制FET426的栅极接收反相器428的高输出使其沟道截止。将会明白,同样的预充电电路被用来对与存储器阵列的字宽度的所有位相关联位线层次结构的层次位线进行预充电。
参看图25,预充电电路被集成在读俘获锁存单元401的一个锁存器单元之内。此外,额外的选择PFET提供可选择的ON/OFF预充电启动功能。一基本的P沟道MOSFET 424的沟道被串联设置在一预定的电压源VDD与相关的读位线层次结构108′的第一层次位线h1之间。此基本预充电MOSFET 424由第一层次预充电信号PRECHARGEh1驱动。一辅助预充电P沟道MOSFET 434的沟道被设置成与基本MOSFET 424相串联,而其栅极则按相关的第一层次预充电配置数据(由环绕X的圆圈表示)加以驱动。反相器407将由第一层次位线h1接收的数据反相并相应地驱动基本噪声抑制FET 426的栅极。基本噪声抑制FET 426(与上面所述类似)在一个其中预充电MSOFET 424与一读操作相关联为第一层次位线所截止的间隙期间抑制在第一层次位线h1上的噪声。辅助抑制FET 436按照与驱动辅助预充电FET 424的栅极相同的第一层次预充电配置数据对预充电电路的该噪声抑制功能作有选择的门控。其余的锁存器单元401以类似于上面参照图23所述的方式操作。
在读周期运行期间,此另一个读位线结构和相关的读俘获锁存器的操作如下。可编程存储器阵列接收一读时钟的有效边沿,此时钟经地址总线28的作恰当地配置的读时钟分配层次结构分配到各不同存储器子阵列地址单元20和相关的预充电电路的多路器432。从而此预充电电路如上述那样驱动各个层次预充电晶体管以启动读出数据使之能传送到相关的层次位线和由其俘获。经地址单元20作恰当的寻址和相关的读时钟同步,即可以寻址方式激活一有效的字线以选择阵列中一给定的字,这时对该字数据进行门控使之沿着各个读位线结传送。同时,此由地址选择的字线启动此相关字的一虚设(或定时)位以沿子阵列的相关定时位线层次结构的各个层次定时位线路径发送一有效边沿跃变(定时信号)。在由此给定字读得的(实际)数据和相关的(虚设数据)定时信号被送(并行地)至各个位线结构的对应层次路径上。例如假定此可编程存储器阵列被配置来利用读位线层次结构的第一层次级h1,则此定时位线结构也将被配置来利用一对应的第一层次位线h1。因而在读操作期间,读数据沿一子阵列12的一内部读位线56(图2B)流通,并通过相关的路径选择结构以便耦合到一第一层次读位线h1并沿此位线传送。同样定时(虚设)数据也在一对应的虚设结构上作同样传送。通过一个相应的路径选择结构和沿一个定时位线结构的相应层次路径,从一个相关字的一个额外的硬接线(或预装载)的存储器单元到一个模拟的内部“定时”位线56′上对该定时数据进行门控。从而此定时数据就在基本上与由被寻址的字读出的实际数据到达锁存器组400的各个不同的锁存器的输入端同时到达俘获时钟发生器404(图21)。此定时信号的上升沿在由发生器404接收到后触发产生一适当层次的俘获时钟408,以启动锁存器组400的各个单元401(图23)的相应层次FET 409来将字数据俘获进各个锁存器420。接着,由俘获时钟发生器404产生的相关层次的俘获时钟被反馈(通过脉冲延时组件410)到俘获时钟发生器404的反馈输入414,以清除各个层次俘获时钟。然后,各个预充电电路的预充电操作恢复以启动各个层次位线的预充电。
在如上面参照图18A、18B、19和20所述的FPMA 10用的另一种数据接口结构中,应注意到,最先所描述的实施例的辅助I/O总线38(图1A和1B)与相关的读/写位线层次结构30/32基本上互相叠并。因而,参看图1A和1E,无需对状态机存取端口24提供两个到辅助读端口相互耦合装置38′和读位线相互耦合装置30′的分开的读端口。而代之以,对于此另一种数据接口结构,状态机存取端口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′和“与”门310、310′构成标准的地址译码电路用于在各个极性反相电路316的多路器输出上提供的相关的读(320、322)/写(324、326)寻址激活各自的多个读/写字线298/300的一特定的读/写字线。反相器对320来说可被省略,但对322来说被保留。
为了能选择多个读字线298的一个读字线,读译码器296的高位地址译码器308必须接收用于激活高位地址线72的恰当的地址数据。高地址译码器308在地址总线28的选择线提供的高读地址输入端322接收地址数据。多路器318确定由哪一个输入接收这一高地址信息。极性电流316被编程(经相关的配置数据)以构成用来选择高位地址线72的一特定高端地址。一旦接收到恰当的高端地址并被通过相关的多路器318和极性电路316传送,高位地址译码器308即经连线72提供一高地址启动信号来启动译码器“与”门310。参看图1B 26A,由各个地址单元20来的高位地址线72被耦合到各个存储器子阵列12的相关的高位地址输入。
参看图2B,连线72的高地址启动信号启动此相关存储器阵列12的选择性驱动多路器52以便将由其读得的数据传送给相关的读位线结构。例如,当FPMA 10或其一部分被配置以提供深度RAM功能时,每一高位地址译码器部分308将使各个多路器318和极性变换电路316配置成经由不同的和专用的各个高位地址数据来激活各个高位地址信号线72,以便对各存储器子阵列以不依赖于其他存储器子阵列的方式进行有选择的启动。另一方面,如果FPMA 10或其一部分被配置成提供宽的RAM功能(亦即存储器子阵列12边靠边地并行排列),则地址单元20的各个读地址译码器296的每一个高位地址译码器308就经各个多路器318和极性变换电路316配置成可由同样的高位地址来寻址。高位地址译码器308的多路器318可另外被配置成由已知的DC输入中进行选择来始终启动或截止高位寻址。例如,在存储器子阵列要被用作分开独立的存储器单元运行时,可能希望连续启动高位寻址。
加到读地址译码器的低地址部分的地址输入320数等于为完全地寻址其相关存储器子阵列12的M个字所需的数量。因而,M个“与”门310有选择地驱动各个M读字线298。另一方面,高位地址输入位322的数量则对应于为专门寻址Z个存储器子阵列12的需的量。在本发明的一简化实施例中,读地址译码器296的低位线320的选择性极性电路316被省略掉。
写地址译码器306在各个高位寻址308′和剩下的低寻址译码器部分与读地址译码器296功能作用相同。但低位译码器部分的“与”门310′和预编码总线312′包含两个附加的辅助信号线用来进行复位、写启动和时钟操作。高位写地址译码器308′由高写地址输入324接收相关的高写地址以便接收高位寻址数据有选择地启动相关的译码器“与”码310′。低位写地址译码器部分由低写地址输入326接收相关的低位寻址数据。而各个多路器318′和极性电路316′决定由地址总线28的哪些寻址线和何种极性接收相关的地址数据。在写地址译码器的简化实施例中,没有设置与线路326相关联的写地址译码器306的极性转换电路316。此外,地址译码也可利用许多已知技术之一进行。经反相和未经反相的信号线两者在预译码总线312′上均可得到。“与”门310′提供标准译码电路以便选择一给定字线300。
参看图26C,复位线302驱动如图1B和2A中所示的其相关存储器阵列12的复位输入。多路器334决定由哪一输入328接收复位信号。另外,多路器334可选择一已知的DC电平输入。极性纠正电路336决定欲关联到此复位信号的极性。
预编码线312′的其余导线由“与”门338驱动。“与”门338接收两个信号:一个时钟信号和一启动信号。通过由一个相关的多路器和极性反转电路选择的时钟输入330的一个给定输入从地址总线28来接收时钟信号。通过由一个相关的多路器和(任选的)极性反转电路选择的多个启动输入332中的一个从址总线28接收启动信号。相关的时钟或启动多路器和相关的极性变换电路均能连续地被编程来启动或截止相关的“与”门338。截止“与”门338阻止相关存储器内的写功能,防止数据出错和为FDMA设定只读功能。“与”门338具相关的时钟信号为FPMA 10中的同步写功能提供基础。写时钟信号被激活一段足够时间来激活一给定写字线并启动数据传送进存储器阵列的相关的被寻址的字的位置。对于写译码器306的另一实施例中,“与”门338与译码器“与”门310’的输出之间设置有一平稳线路(未作出),以便在经写和启动线被“与”门338作恰当的触发后提供一足够长的写期间的单稳脉冲。
在一种应用中,启动信号被驱动来提供FPMA的各个位写编程。例如当对FPMA或其一部分以各个存储器子阵列作边靠边的方式进行配置时,亦即宽RAM时,可能需要每次仅其一个字接收写数据。因此,该将接收相关的字编程数据的特定存储器子阵列12被有选择地经其相关的启动输入332而启动。另外,与此启动输入相关联的多路器可被编程来始终启动“与”门338的一个输入。
在上面讨论的,其中实现预充电位线结构的实施例中,读译码器296可具有一个作为一个附加输入的读时钟,读时钟来源于类似于写译码器编地址多路器电路。另外可将此读时钟保持为工作状态来实现异步功能。时钟单元
如上面提到的,本发明的现场可编程存储器阵列10可被配置成以LIFO/FIFO方式运行,即滚动模式,其中各不同存储器子阵列12的字被用作一个堆栈。在一LIFO运行模式中,数据以与其被置入堆栈的次序相反的次序被取出,亦即后进先出。在FIFO运行模式中,数据以与其被置入堆栈的次序相同的顺序被取出,亦即先入先出。在滚动运行模式中,对堆栈的存取通过一特定的字窗口进行,其中在数据于堆栈中移动时将堆栈数据排成序列通过存取窗口。在堆栈内发生数据位移时堆栈顶部的数据滚动到堆栈的底部。相反,如果堆栈以反方向进行,堆栈底部的数据滚动到堆栈的顶部。如图1A、1B中所示,时钟单元221、222…22z分别与存储器子阵列121、122…12z相关联以生成相关的读/写时钟和保持对堆栈推进或递降的跟踪。
参看图27A、27B和27C,时钟单元22包含压入时钟分相器340和弹出时钟分相器342。各时钟分相器具有一输入多路器,用于分别由各不同时钟输入370、372之一接收一选择时钟信号,将其连接到地址总线28的可用地址线的各个子集。将会注意到,地址线可具有类似于前面所述的读和写位线层次结构的层次结构。分相器341接收由其相关的多路器选择的一时钟信号并由此单个的时钟输入产生两个非重叠的第一和第二相位压入时钟脉冲。加到分相器341的配置数据启动输入的时钟作有选择的极性纠正(任选的)和模式选择以迫使两输出时钟进入待用状态。在正常运行中,压入时钟分相器340分别通过各自的互连线373和374提供第一和第二相位压入时钟信号给其相关的存储器子阵列12,如图2A所示。同样,弹出时钟分相器342可编程来分别通过弹出时钟输出376和378提供两个非重叠的第一和第二相位弹出时钟脉冲给其相关的存储器子阵列12。如上面参照图2B所示和说明的,各个压入和弹出时钟脉冲驱动相关存储器子阵列的各个存储器单元之间的传输单元50以启动存储器单元之间数据的垂直移动。
时钟单元22还包含附加电路同来为作“实际”的LIFO/FIFO运行模式来保持对堆栈的增量和减量的跟踪,其中如上面所说数据在一堆栈中作实际上的垂直传输,或者为在一“逻辑”LIFO/FIFO操作模式中保持对寻址序列的跟踪。在此“逻辑”LIFO/FIFO操作模式中,指针对堆栈中哪一个地址单元应放置数据和从堆栈中哪一个地址单元提取数据保持跟踪。因而,在“逻辑”操作模式中,是采用经各自的指针寻址的正常的读/写数据而将数据传输进存储器堆栈和从其取出,其中无需作数据的垂直移动。
时钟单元22的计数系统主要包括二个地址计数器352、352’和二个边界寄存器354、356。对于实际LIFO/FIFO操作模式,计数器经各自的压入和弹出时钟脉冲来更新。地址计数器352在被由多路器344、346接收的各个初始化信号作适当触发时由时钟控制单元348接收各个增量或减量信号。在实际LIFO/FIFO操作模式中,这些多路器344、346选择在由弹出和压入时钟分相器342、340产生的各个弹出和压入信号。然后将计数器352中的数据与边界寄存器354或356的数据加以比较以防止堆栈溢出。此数据比较由地址比较器358进行。如果出现溢出情况,地址比较器358即产生一适当的溢出标志,将该标志通过相关的驱动多路器360传送到地址总线28的一选择线以便向FPMA之外传送。
多路器350和350’启动从地址总线28来的适当的复位信号与计数器352和352’的各自的选择性的耦合。在接收到一复位信号时,相关的计数器将其内部计数复位到一被编程进入计数器内部的各个负载寄存器中的预定的负荷值。在FPMA的引导操作配置期间用给定的负荷值对计数器的这些特定的内部负荷寄存器进行编程。
对于逻辑LIFO/FIFO运行模式,地址计数器352、352’作为地址指针来操作以指定各个存储器子阵列的读和写地址单元。在LIFO运行模式中,计数器352提供有关发送数据进入存储器,或从存储器接收数据的读和写地址。当时钟控制器348经由多路器344接收到一下降命令时,即将信号发送到地址计数器352使其地址寄存器减量。此外,时钟控制单元348还产生一适当的读信号,被发送到地址总线28的选择线368或经由相关的选择驱动多路器381至I/O数据线之一。另外,在将数据写到堆栈时,多路器346由地址总线28的一选择线接收一上浮信号,并将此上浮命令传送给时钟控制单元348。时钟控制单元348相应地发送一增量信号给地址计数器352和通过选择性驱动多路器380给地址总线28的一条线一个写信号。选择性驱动多路器362将计数器352的各个LIFO读/写地址有选择地耦合到地址总线28的选择线364。
将会理解,时钟控制单元348、348’提供在各个增量或减量信号与相关的写和读信号之间所需的定时信号以使得各个计数器的适当的读/写地址能以与相关的读/写信号进行恰当的同步方式出现在地址总线上。
对于逻辑FIFO运行模式,需要两个地址计数器,一计数器352用于指定写数据进入堆栈的地址,另一计数器352’用于对哪一可寻址存储器单元应提取出数据保持跟踪。当数据被写入堆栈时,时钟控制单元348通过多路器346接收一上浮命令并随之发送信号给地址计数器352使其地址计数增量。时钟控制单元348另外还产生并发送一适当的写信号到相关地址总线28的选择线,或通过选择驱动多路器380将该信号送到I/O数据总线。当由堆栈该数据时,时钟控制单元348’通过多路器346’接收一上浮命令,并相应地经由多路器382和选择驱动多路器381发送一读信号给地址总线28的一选择线。从而,计数器352提供用于将数据写到堆栈的指针地址,由计数器352’提供用于由堆栈读数据的指针地址。
多路器382按照是否选择了LIFO或FIFO操作由一个时钟控制单元348或348’接收读信号。在LIFO运行中,时钟控制单元348接收上浮和下降两种命令,而计数器352提供用于由存储器子阵列读取或对之写入的读和写地址。因而由时钟控制单元348发出的读信号即通过多路器382耦合到多路器381。在FIFO操作中,由一分开的地址计数器提供读地址和由一分开的时钟控制单元348’产生读信号。从而,多路器382被按另一状态加以编程以便由时钟控制单元348’而不是348选择一读信号。
在FIFO操作模式的情况下,地址比较器358将计数器352的地址与计数器352’的地址进行比较以保证一地址(读或写)不超过另一地址。如果一地址超过另一地址,地址比较器358就使其一个输出耦合到时钟控制单元348和348’以发出溢出情况的信号,据此时钟控制单元可被截止以便防止堆栈被破坏。地址比较器358还对与各个计数器相关的边界寄存器354或356的地址加以比较。当一给定地址计数器达到一相关的边界值,地址比较器358就产生一适当的标志,将该标志通过一选择驱动多路器360和导线366发送到地址总线28的一选择线。在本发明的一特定实施例中,此标志被传送到外部电路,例如一被配置的FPGA,而后它可经由多路器350或350’通知此边界情况并提供一复位信号至适当的地址计数器352或352’。以这种方式,堆栈就可在FIFO运行模式中反复循环。
应指出,最好对每一存储器子阵列12均设置一时钟单元,如图1中所示。另外,在另一个实施方案中也可以设置较少的时钟单元,结果是降低了灵活性,但也减小了装置成本和大小。因而在每一存储器子阵列中可配置分离的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读数据时(图1A),地址出现在状态机存取端口24的地址端口390(图1E和28B)。选择性驱动多路器396通过地址互连线28’将地址数据发往地址总线28的选择线。然后,此被寻址的现场可编程存储器阵列的读数据,在此多重读端口实施方案中,通过被多路器392所选择的另一个数据路径之一,在触发器398的输入端被接收。而后经由选通输入端384将一读选通信号加给触发器以俘获在由此现场可编程存储器阵列检索得到的读数据。
为经由状态机存取端口24将数据(例如初始化数据)存储进FPMA 10,FPGA(图中未示)的状态机例如将数据送到通过位线相互连接装置394耦合到FPMA 10的编程位线相互耦合装置36’的编程位线互连装置388。如前面提到的,编程位线总线36提供对被按相关的编程字线寻址的存储器子阵列12的存储器单元48的直接访问。因而,标准的地址译码电路(图中未示出)对相关的编程地址进行译码和驱动选择编程字线302(图1B,和图2A与2B的BWL)以启动数据传送进入所希望的存储器单元48。异步读
现在介绍使上述阵列能作异步操作的本发明实施例。
在同步模式中,在给出前面的章节中描述的和用图29的方框506表示的过程的情况下,内部读位线网络(不一定是一单个总线)由适当的信号控制被加以预充电。在子阵列124的一存储器单元接收到一有效字线信号后,存储器单元的数据即被选通到内部读位线网络506。单元数据或使内部总线的预充电电荷放电或增强其预充电量(单元的输出可在两个方向驱动)。内部网络上的值通过装置502而反相,该装置将输出信号503的源连线提供给高层次位线H2、H3。在一被配置来利用数据总线的第一层次H1的阵列中,装置500(图30)将提供其输入与输出H1间的传送。装置500是一个三态反相器,具有分开的N和P传送选择栅极CNTL(N)和CNTL(P)以及NFET和PFET的倒转堆栈顺序以便在同步模式中在H1得到最小的输出电容。503与H1之间连接的三态控制遵照下列真值表,其中,SEL为用于允许子阵列连接到这一层次的配置位,ASYNC是确定读模式为异步(1)还是同步(0)的配置位,和HOA为被译码的高位地址值(1有效,0无效)(在技术领域中的专业人将看到具有输入SEL、ASYNC和HOA和输出CNTL(N)、CNTL(P)的逻辑(电路)可采用许多方法实现):
ASYNC SEL HOA CNTL(N) CNTL(P) 说明
0 0 0 0 1 H1未选
0 0 1 0 1 H1未选
0 1 0 1 1 同步模式仅启动N堆栈,HOA不管
0 1 1 1 1 同步模式仅启动N堆栈,HOA不管
1 0 0 0 1 H1不选
1 0 1 0 1 H1不选
1 1 0 0 1 异步模式,HOA无效
1 1 1 1 0 异步模式+HOA启动双向驱动
由上表可见,在同步模式中,数据随取决于数据值的位线H1的可能的放电将经由500的N个堆栈520传送。按照上节描述的方式至高层次的连接通过N堆栈装置252和254实现,而其预充电则通过258和260实现,(在所述的实施例中未提供高层次的异步能力,尽管这是可能的)。
在给出一个如上面所讨论的通过使用定时读位线数据的俘获时钟产生单元得出的俘获时钟的情况下,沿着506、H1、H2、H3中任一个传送的数据均可被锁存在俘获锁存器组400中。
对于异步运行,方框504和506中的预充电装置通过配置位被关断。由存储器单元子阵列传送的数据为装置502反相。如与上面定义的适当的SEL和AYNC设置一起给出一个有效的高层次地址,装置500在不进行预充电的情况下提供与位线层次H1的三态接口以传送两种极性的数据。(这样在未加预充电的异步模式中就允许较长的延时)。如前面讨论的俘获时钟产生电路可经由一接到受配置位控制的置位主DFF的置位插脚被强制成为非工作状态,以使得数据能以异步方式由一内部位线或H1传送通过锁存器电路。在所述的实施例中未将异步运行设计进高位层次H2或H3,因而方框252和254将不由此模式中配置位启动,尽管有可能在其他实施方案中于高位层次中加进异步操作。
也应注意到,子阵列中的内部读位线网络可以是该子阵列中的两级通讯网络,第一级连接16个单元,并以类似于500的结构结束,其门控控制由ASYNC和地址部分的内部×16译码线提供,而预充电则以与对方框504所说明的同样的方式加以控制,而第二级则连接第一级的终点,和提供到506和502的连接。
这样,所揭示的就是一个能对其进行配置来得到宽RAM功能、深RAM功能、多重RAM功能、LIFO/FIFO功能、和滚动功能的现场可编程存储器阵列。
另外,此现场可编程存储器了列被揭示为被用作一局部高速缓冲存储器,以用于一外部电路,例如一现场可编程门阵列。
相关的存储器子阵列的存储器单元被揭示为带有多重输入和多重输出,还带有另一个实施方案中的提供串行扫描或垂直位移能力的任选相关传输电路。
为支持此现场可编程存储器阵列的存储器子阵列的各种不同配置,揭示有各不同层次的可编程数据线结构和相关的路径选择资源,用于将数据传送至现场可编程存储器阵列的存储器单元或从其向外传送数据。
还揭示了为支持各种不同存储器配置和功能而启动适当的地址译码的可编程地址单元。所揭示的可编程时钟单元用于为在各个存储器子阵列内访问存储器和实现实际的或逻辑的LIFO/FIFO功能而产生时钟信号。
最后,揭示了状态机存取端口可使此现场可编程存储器阵列能由外部电路,例如由一相关的现场可编程门阵列的状态机,更直接地加以访问。
如没有在明显的文字上的矛盾,这里在涉及任何集合或多个Xs时采用诸如术语“各X”时,应当被理解为仅需两个X来在一开始满足这种集合或多个,而因此象“各X”这类的术语仅是指在一开始满足此集合或多个所必须的X。其他的X可能超出该被满足的集合或多个的范围之外,因而可能不一定被包含在诸如“各X”术语含义之内。
对于本技术领域的普通人士来说将很显而易见的是,有许多种途径来提供上面讨论的多路器、开关当中所需的连接。例如,多路器中的单个通路可包括一通过晶体管、一EPROM、一可熔断连接、或一抗熔器等来实现所附属线路间所希望的隔离或连通。用户根据通过任何特定结构的连接的需要,只要进行恰当的编程来实现这种连接。一激光程序装置也可应用交叉点的有选择的焊接。通过包含或不包含焊接来提供所需的连接。一掩膜程序装置将简单地包含或去除相关的连接。这里将任何信号选择装置,其中在编程前有多个信号可用于选择,向在编程后信号之一被选择并在两个连线之间提供通路,均被叫做一个多路器。因此,这里所用的多路器,除非另外明确指出,均能支持单向或双向连接。此外,这里所述的一单个多路器实际上可以是一包含多级信号选择的层次化多路化设计。一个在这里通篇采用的“连接”除非另外明确指以外,概括地指一直接的导体之间的导电连接,或者一个间接的(例如:经缓冲的/反相的)接口,其中仍然将来的一个导体的信息供给另一导体。同样,一“输入”或一“输出”是指或者一直接的或者一间接的(例如经缓冲/经反向)接口,除非另加明确说明。
这里采用的“启动信号,启动数据等”应当概括地理解为任何类型的启动能实现必须的电路状态的信号。启动信号可以是逻辑信号,时钟信号等,此外,这里用的术语“信号”可以是一单个信号线或多个信号线,并通常表示存在实现正常电路操作所需数据。
这里应用的术语“阵列”概括地或是指在构成一系统的一集成电路或多重集成电路上所形成的电路的整体,或者指在构成一系统的一集成电路或多重集成电路中的电路的任何一任意大小的部分。这样,一较大的阵列可被看作是包括许多较小的阵列;
虽然本发明已引用其优选实施例作了详细的表示和说明,但应理解的是对于本领域内的专业人员来说很自然可能对其作出形式上和细节上的各种不同的变更而不背离本发明的基本精神实质和范畴。

Claims (13)

1.一可编程存储器电路,其特征为,包括:
用于保持数据的存储器单元;
第一字线,传送第一选择信号;
第一位线;
第一选择性耦合器,置于所述第一位线和所述存储器单元之间,按照所述第一选择信号有选择地耦合所述第一位线与所述存储器单元用以在其间传送信号;
输出接口,连接于所述存储器单元,用于由所述存储器单元传送信号;和
附加数据线,连接于所述存储器单元,用于将信号传送至所述存储器单元。
2.按照权利要求1的可编程存储器电路,其特征是所述第一选择信号为一写启动信号而所述第一位线在当所述第一选择性耦合器被写启动信号启动时传送存储进所述存储器单元的数据,所述输出接口包括:
第二位线;
第二字线,传送一读启动信号;和
第二选择性耦合器,置于所述第二位线与所述存储器单元之间,在被所述读启动信号启动时有选择地耦合所述第二位线与所述存储器单元以启动读取所述存储器单元的数据。
3.按照权利要求2的可编程存储器电路,其特征还包括:
第三位线,用于运送待存储进所述存储器单元的另外的数据;
第三字线,传送另外的写启动信号;和
第三选择性耦合器,置于所述第三位线与所述附加的数据线之间,在被另外的写启动信号启动时有选择地耦合所述第三位线与所述附加数据线以将另外的数据传送至所述存储器单元。
4.一可编程存储器电路,其特征在于包括:
用于保持数据的存储器单元;
多个字线,所述多个字线的每一字线传送一相关的启动信号;
多个位线;和
多个选择性耦合器,所述多个选择性耦合器的各选择性耦合器被置于所述存储器单元与所述多个位线的一相关位线之间,在被所述多个字线的一相关字线的启动信号启动时,有选择地耦合所述相关位线与所述存储器单元以在其中间传送信号。
5.按照权利要求4的可编程存储器电路,其特征是:
所述多个字线的一复位字线传送一复位启动信号作为其相关的启动信号;
将所述多个位线的一复位位线耦合到一固定的电压源以传送一复位电平;和
多个选择性耦合器的一第一选择性耦合器,置于所述复位位线与所述存储器单元之间,在被所述复位字线的复位启动信号所启动时将所述存储器单元有选择地耦合到所述复位位线以将其复位电平存放在所述存储器单元中。
6.按照权利要求4的可编程存储器电路,其特征是所述存储器单元是一个与现场可编程门阵列(FPGA)相关联的存储器阵列的一部分,其中:
所述现场可编程门阵列的一状态机提供此现场可编程门阵列对所述存储器阵列的访问;
所述多个字线的一程序字线传送被所述状态机实现的程序启动信号;
所述多个位线的一程序位线传送来自所述状态机的程序数据;和
多个选择性耦合器的一第一选择性耦合器,置于所述存储器单元与所述程序位线之间,在被所述程序字线的程序启动信号启动时将所述单元有选择地耦合到所述程序位线以便将来自所述状态机的程序数据存储进所述存储器单元。
7.按照权利要求6的可编程存储器电路,其特征是:
所述多个字线的一辅助字线传送一辅助启动信号;
所述多个位线的一辅助位线传送一辅助信号源的辅助数据;和
多个选择性耦合器的一第二选择性耦合器,置于所述存储器单元与所述辅助位线之间,在被所述辅助字线的辅助启动信号启动时将所述存储器单元耦合到所述辅助位线以将辅助数据存储进所述存储器单元。
8.按照权利要求4的可编程存储器电路,其特征是所述存储器单元为一存储器阵列的一部分,所述可编程存储器电路还包括:
串行输入端,接收串行输入数据;
主选择性耦合器,置于所述串行输入与所述存储器单元之间,在被主扫描时钟启动时将所述串行输入端的串行输入数据有选择地传送到所述存储器单元加以存储;
用于保持数据的辅助存储器单元;和
辅助选择性耦合器,置于所述存储器单元与所述辅助存储器单元之间,在被辅助扫描时钟启动时将所述存储器单元的数据有选择地传送到所述辅助存储器单元,
由此,所述存储器单元可分别通过相关的启动信号或主扫描时钟由所述多个位线中的一个或由所述串行输入端接收数据。
9.按照权利要求8的可编程存储器电路,其特征是还包括:
N位地址输入端,用于对所述存储器阵列进行寻址;和
地址译码器电路,按照对所述N位地址输入端的一特定地址的译码提供所述相关的启动信号。
10.一可编程存储器电路,由一位/字线可寻址存储器单元阵列构成,其特征是包含有:
第一存储器单元,可经第一字线寻址以启动对之作主数据存取;
第二存储器单元,可经第二字线寻址以启动对之作主数据存取;
传输单元,置于所述第一存储器单元与所述第二存储器单元中间,用于提供中间数据存储;
第一选择性耦合器,经第一时钟启动,用于有选择地耦合所述传输单元与所述第一存储器单元,启动数据在其间传送;和
第二选择性耦合器,经第二时钟启动,用于有选择地耦合所述传输单元与所述第二存储器单元,以启动数据在其间传送,
据此,所述第一和第二时钟相继操作以便将数据由所述第一和第二存储器单元之一传送到另一个。
11.按照权利要求10的可编程存储器电路,其特征是还包括用于逐一提供作为第一相位压入时钟的所述第一时钟和作为第二相位压入时钟的所述第二时钟的装置,用于由所述第一存储器单元将数据传送到所述第二存储器单元。
12.按照权利要求11的可编程存储器电路,其特征是:
所述传输单元具有用于接收数据的输入端,存放在其中的中间数据按照在所述输入端接收的数据加以更新;和一个输出端,用于按照其中所存放的中间数据发送出数据;
所述第一和第二存储器单元的每一个均具有一用于接收数据的输入端,其中存放的数据按照在所述输入端接收的数据加以更新;和一输出端,用于按照其中存放的数据发送出数据;
所述第一选择性耦合器被置于所述第一存储器单元的输出与所述传输单元的输入之间;和
所述第二选择性耦合器被置于所述传输单元的输出与所述第二存储器单元的输入之间。
13.按照权利要求12的可编程存储器电路,其特征还包括:
第三选择性耦合器,经第一相位弹出时钟启动以便将所述辅助存储器单元的输出有选择地耦合到所述传输单元的输入,启动由所述第二存储器单元到所述传输单元的数据传送;
第四选择性耦合器,经第二相位弹出时钟启动以便将所述传输单元的输出有选择地耦合到所述第一存储器单元的输入,启动由所述传输单元至所述第一存储器单元的数据传送;和
用于逐个提供第一相位弹出时钟和第二相位弹出时钟的装置,用于将所述辅助存储器单元的数据传送到所述第一存储器单元。
CN96121505A 1995-12-20 1996-12-09 现场可编程存储器阵列 Expired - Lifetime CN1117379C (zh)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
CN1159060A CN1159060A (zh) 1997-09-10
CN1117379C true CN1117379C (zh) 2003-08-06

Family

ID=24299802

Family Applications (1)

Application Number Title Priority Date Filing Date
CN96121505A Expired - Lifetime CN1117379C (zh) 1995-12-20 1996-12-09 现场可编程存储器阵列

Country Status (7)

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

Families Citing this family (194)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5889698A (en) * 1995-01-31 1999-03-30 Hitachi, Ltd. Nonvolatile memory device and refreshing method
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 日本電気株式会社 プログラマブルデバイス
DE60025196T2 (de) * 1999-05-07 2006-09-07 Infineon Technologies Ag Heterogenes programmierbares gatterfeld
EP1228440B1 (de) * 1999-06-10 2017-04-05 PACT XPP Technologies AG 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
WO2003071660A2 (en) * 2002-02-19 2003-08-28 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
US7673273B2 (en) * 2002-07-08 2010-03-02 Tier Logic, Inc. MPGA products based on a prototype FPGA
US20040004251A1 (en) * 2002-07-08 2004-01-08 Madurawe Raminda U. Insulated-gate field-effect thin film transistors
US7112994B2 (en) * 2002-07-08 2006-09-26 Viciciv Technology Three dimensional integrated circuits
US7129744B2 (en) * 2003-10-23 2006-10-31 Viciciv Technology Programmable interconnect structures
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
US7812458B2 (en) * 2007-11-19 2010-10-12 Tier Logic, Inc. Pad invariant FPGA and ASIC devices
US8643162B2 (en) * 2007-11-19 2014-02-04 Raminda Udaya Madurawe Pads and pin-outs in three dimensional integrated circuits
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
US6838902B1 (en) * 2003-05-28 2005-01-04 Actel Corporation Synchronous first-in/first-out block memory for a field programmable gate array
US6825690B1 (en) 2003-05-28 2004-11-30 Actel Corporation Clock tree network in 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
US6867615B1 (en) * 2003-05-30 2005-03-15 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
US7126373B1 (en) 2004-02-14 2006-10-24 Herman Schmit Configurable logic circuits with commutative properties
US7193432B1 (en) 2004-02-14 2007-03-20 Herman Schmit VPA logic circuits
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
US7167025B1 (en) 2004-02-14 2007-01-23 Herman Schmit Non-sequentially configurable IC
US7193440B1 (en) 2004-02-14 2007-03-20 Herman Schmit Configurable circuits, IC's, and systems
US7425841B2 (en) 2004-02-14 2008-09-16 Tabula Inc. Configurable circuits, IC's, and systems
US7126381B1 (en) 2004-02-14 2006-10-24 Herman Schmit VPA interconnect circuit
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
US7145361B1 (en) * 2004-06-30 2006-12-05 Andre Rohe Configurable integrated circuit with different connection schemes
US7282950B1 (en) * 2004-11-08 2007-10-16 Tabula, Inc. Configurable IC's with logic resources with offset connections
US7449915B2 (en) * 2004-06-30 2008-11-11 Tabula Inc. VPA logic circuits
US7312630B2 (en) * 2004-06-30 2007-12-25 Tabula, Inc. Configurable integrated circuit with built-in turns
US7439766B2 (en) * 2004-06-30 2008-10-21 Tabula, Inc. Configurable logic circuits with commutative properties
US7193438B1 (en) 2004-06-30 2007-03-20 Andre Rohe Configurable integrated circuit with offset connection
US7408382B2 (en) * 2004-06-30 2008-08-05 Tabula, Inc. Configurable circuits, IC's, and systems
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
US7917559B2 (en) * 2004-11-08 2011-03-29 Tabula, Inc. Configurable IC's with configurable logic circuits that perform adder and/or subtractor operations
US7317331B2 (en) 2004-11-08 2008-01-08 Tabula, Inc. Reconfigurable IC that has sections running at different reconfiguration rates
US7342415B2 (en) * 2004-11-08 2008-03-11 Tabula, Inc. Configurable IC with interconnect circuits that also perform storage operations
US7573296B2 (en) 2004-11-08 2009-08-11 Tabula Inc. Configurable IC with configurable routing resources that have asymmetric input and/or outputs
US7295037B2 (en) * 2004-11-08 2007-11-13 Tabula, Inc. Configurable IC with routing circuits with offset connections
US7268586B1 (en) * 2004-11-08 2007-09-11 Tabula, Inc. Method and apparatus for accessing stored data in a reconfigurable IC
US7276933B1 (en) 2004-11-08 2007-10-02 Tabula, Inc. Reconfigurable IC that has sections running at different looperness
US7224181B1 (en) * 2004-11-08 2007-05-29 Herman Schmit Clock distribution in a configurable IC
US7242216B1 (en) 2004-11-08 2007-07-10 Herman Schmit Embedding memory between tile arrangement of a configurable IC
US7743085B2 (en) 2004-11-08 2010-06-22 Tabula, Inc. Configurable IC with large carry chains
US7301368B2 (en) * 2005-03-15 2007-11-27 Tabula, Inc. Embedding memory within 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
US20070244958A1 (en) * 2004-11-08 2007-10-18 Jason Redgrave Configurable IC's with carry bypass circuitry
US7259587B1 (en) 2004-11-08 2007-08-21 Tabula, Inc. Configurable IC's with configurable logic resources that have asymetric inputs and/or outputs
US7496879B2 (en) * 2004-12-01 2009-02-24 Tabula, Inc. Concurrent optimization of physical design and operational cycle assignment
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
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
US7230869B1 (en) 2005-03-15 2007-06-12 Jason Redgrave Method and apparatus for accessing contents of memory cells
US20070244959A1 (en) * 2005-03-15 2007-10-18 Steven Teig Configurable IC's with dual carry chains
US7530033B2 (en) 2005-03-15 2009-05-05 Tabula, Inc. Method and apparatus for decomposing functions in a configurable IC
US7825684B2 (en) * 2005-03-15 2010-11-02 Tabula, Inc. Variable width management for a memory of a configurable IC
US7224182B1 (en) 2005-03-15 2007-05-29 Brad Hutchings Hybrid configurable circuit for a configurable IC
US7298169B2 (en) 2005-03-15 2007-11-20 Tabula, Inc Hybrid logic/interconnect circuit in 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
US7818361B1 (en) 2005-11-07 2010-10-19 Tabula, Inc. Method and apparatus for performing two's complement multiplication
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
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
US7461362B1 (en) 2005-12-01 2008-12-02 Tabula, Inc. Replacing circuit design elements with their equivalents
US7489162B1 (en) 2005-12-01 2009-02-10 Tabula, Inc. Users registers in a reconfigurable IC
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
US7797497B1 (en) * 2006-03-08 2010-09-14 Tabula, Inc. System and method for providing more logical memory ports than physical memory ports
US7518400B1 (en) 2006-03-08 2009-04-14 Tabula, Inc. Barrel shifter implemented on a configurable integrated circuit
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
US7609085B1 (en) 2006-03-08 2009-10-27 Tabula, Inc. Configurable integrated circuit with a 4-to-1 multiplexer
US7504858B1 (en) 2006-03-08 2009-03-17 Tabula, Inc. Configurable integrated circuit with parallel non-neighboring offset connections
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
US7930666B1 (en) 2006-12-12 2011-04-19 Tabula, Inc. System and method of providing a memory hierarchy
US7587697B1 (en) 2006-12-12 2009-09-08 Tabula, Inc. System and method of mapping memory blocks in a configurable integrated circuit
EP2597777A3 (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
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
CN100449481C (zh) * 2007-06-29 2009-01-07 东南大学 具有多通道指令预取功能的存储控制电路
EP2201569A4 (en) 2007-09-06 2011-07-13 Tabula Inc CONFIGURATION CONTEXT SWITCH
US20090128189A1 (en) * 2007-11-19 2009-05-21 Raminda Udaya Madurawe Three dimensional programmable devices
US7635988B2 (en) * 2007-11-19 2009-12-22 Tier Logic, Inc. Multi-port thin-film memory devices
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
US7573294B2 (en) * 2007-12-26 2009-08-11 Tier Logic, Inc. Programmable logic based latches and shift registers
US7602213B2 (en) * 2007-12-26 2009-10-13 Tier Logic, Inc. Using programmable latch to implement logic
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
US8674721B2 (en) 2008-09-17 2014-03-18 Tabula, Inc. Controllable storage elements for an IC
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
EP2553815A1 (en) 2010-04-02 2013-02-06 Tabula, Inc. System and method for reducing reconfiguration power usage
CN102237145A (zh) * 2010-04-22 2011-11-09 联咏科技股份有限公司 箝入式存储装置以及其测试方法
US8941409B2 (en) 2011-07-01 2015-01-27 Tabula, Inc. Configurable storage elements
US10838646B2 (en) 2011-07-28 2020-11-17 Netlist, Inc. Method and apparatus for presearching stored data
US10380022B2 (en) 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
US10198350B2 (en) 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US9583190B2 (en) 2011-11-11 2017-02-28 Altera Corporation Content addressable memory in integrated circuit
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
US8593860B2 (en) * 2011-12-09 2013-11-26 Gsi Technology, Inc. Systems and methods of sectioned bit line memory arrays
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
US20160006433A1 (en) * 2014-07-04 2016-01-07 Semiconductor Energy Laboratory Co.,Ltd. Semiconductor device and electronic device
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
EP4033347B1 (en) 2020-08-12 2023-07-05 Changxin Memory Technologies, Inc. First in first out memory and storage device
CN114077415A (zh) * 2020-08-12 2022-02-22 长鑫存储技术(上海)有限公司 先入先出存储器及存储装置
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

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
DE3480443D1 (en) * 1984-05-14 1989-12-14 Ibm Deutschland Semiconductor memory
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
US6091645A (en) 2000-07-18
US6075745A (en) 2000-06-13
US5949719A (en) 1999-09-07
JPH09186581A (ja) 1997-07-15
US6044031A (en) 2000-03-28
US5914906A (en) 1999-06-22
US6233191B1 (en) 2001-05-15
US6118707A (en) 2000-09-12
CN1159060A (zh) 1997-09-10
EP0780846A3 (en) 1999-07-14
US6130854A (en) 2000-10-10
US6038192A (en) 2000-03-14
TW297128B (en) 1997-02-01
EP0780846A2 (en) 1997-06-25
SG104910A1 (en) 2004-07-30
KR100267425B1 (ko) 2000-10-16
US6023421A (en) 2000-02-08

Similar Documents

Publication Publication Date Title
CN1117379C (zh) 现场可编程存储器阵列
CN1030019C (zh) 相联存储器
CN1049539C (zh) 同步电路
US8159268B1 (en) Interconnect structures for metal configurable integrated circuits
CN1162914C (zh) 多端口静态随机存取存储器
CN1516195A (zh) 半导体装置和半导体存储装置
CN1416574A (zh) 半导体存储器件
CN1125006A (zh) 动态互连于一个动态逻辑内核的现场可编程逻辑设备
CN1617336A (zh) 半导体集成电路装置
US8630113B1 (en) Apparatus for memory with improved performance and associated methods
CN1228847C (zh) 半导体集成电路装置
CN1391229A (zh) 时钟同步型半导体存储器
CN1655279A (zh) 在半导体存储器装置中的片内终结上的模式转移电路
CN1130731C (zh) 半导体只读存储器
CN104737450B (zh) 可再构成的半导体装置
CN1825481A (zh) 半导体器件
CN1875428A (zh) 半导体存储装置
US9257986B2 (en) Rescaling
CN1448950A (zh) 设有不需要刷新操作的存储器单元的半导体存储装置
CN1132188C (zh) 具有多个存储体的半导体存储器
US8159266B1 (en) Metal configurable integrated circuits
CN1892893A (zh) 集成电路记忆体及其操作方法
US6727726B1 (en) Field programmable gate array architecture including a buffer module and a method of distributing buffer modules in a field programmable gate array
CN1263043C (zh) 备有无需刷新动作的存储单元的半导体存储装置
US20120119782A1 (en) Logic for Metal Configurable Integrated Circuits

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term

Granted publication date: 20030806

EXPY Termination of patent right or utility model