CN1992071A - 现场可编程门阵列集成电路器件的分布式存储器 - Google Patents
现场可编程门阵列集成电路器件的分布式存储器 Download PDFInfo
- Publication number
- CN1992071A CN1992071A CNA2006101645269A CN200610164526A CN1992071A CN 1992071 A CN1992071 A CN 1992071A CN A2006101645269 A CNA2006101645269 A CN A2006101645269A CN 200610164526 A CN200610164526 A CN 200610164526A CN 1992071 A CN1992071 A CN 1992071A
- Authority
- CN
- China
- Prior art keywords
- circuit
- signal
- address
- memory cell
- register
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1045—Read-write mode select circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17724—Structural details of logic blocks
- H03K19/17728—Reconfigurable logic blocks, e.g. lookup tables
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17736—Structural details of routing resources
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17748—Structural details of configuration resources
- H03K19/1776—Structural details of configuration resources for memories
Abstract
有利于在现场可编程门阵列(FPGA)的查找表(LUT)中将存储器单元用作用户可存取的分布式RAM的电路。例如,与LUT相关而且在用户RAM模式的读数据路径中不需要的寄存器可被用于寄存用户RAM模式中用于写的数据。另一示例是,与LUT相关的以其他方式不需要的寄存器可被用于为用户RAM模式提供同步读地址信号。示出的若干其他功能也同样有利于在FPGA中要求最小(如果有的话)附加电路的用户RAM模式。
Description
技术领域
【0001】本发明涉及可编程逻辑器件(PLD),例如通常称为现场可编程门阵列(FPGA)的器件。特别地,本发明涉及在FPGA中提供存储器电路,FPGA用户可在该器件正常逻辑操作期间将所述存储器电路用作随机存取存储器(RAM)。更特别地,本发明涉及选择性地使用该器件上的、不需要正常的基于查找表的逻辑的查找表(LUT)电路来提供上述用户可存取RAM。这样的RAM可被称为分布式RAM,因为其分布在该器件的若干个LUT的电路上,而不是在专用用户RAM电路的块中。
背景技术
【0002】Lewis等人于2004年7月22日提交的美国专利申请10/897,743示出了在FPGA中提供分布式RAM的改进电路。(在此将Lewis等人这一参考文献以引用方式并入本文。)例如,Lewis等人的参考文献中示出了FPGA上若干个均包括LUT的逻辑元件(LE)共享单个写入解码器以减少提供FPGA分布式用户RAM模式能力所必须增加的写地址电路的数量。
【0003】对Lewis等人的参考文献中所示的一般类型电路进行各种扩展和附加在许多情况下是有益的。例如,用户经常需要同步写入,这样用户不需要为写选通提供精确的定时信号。这使得有必要提供写地址和写数据寄存器,但如果能避免为此功能提供专用硬件(电路)则更为理想。
【0004】可能对Lewis等人参考文献所示内容进行的有益扩展和附加的另一示例是将那些原理应用到可分裂的LE,以实现一个逻辑功能尺寸范围(例如六输入基于LUT逻辑功能和两个五输入基于LUT逻辑功能)。
【0005】对Lewis等人参考文献所示内容进行的有益扩展和附加的另一示例涉及支持同步读功能。此外,用户常常更喜欢同步读,但如果能避免构造专用硬件来支持读地址寄存器则更为理想。
发明内容
【0006】为便于利用FPGA上要求的很少的附加电路在FPGA上提供用户可存取的分布式RAM,可使用逻辑模块的读数据路径中不需要的逻辑模块中的寄存器来寄存将被写入用户RAM模式的分布式RAM的数据信号。
【0007】有助于用户RAM模式的另一示例是,可使用读数据路径中不需要的逻辑模块中的寄存器为从用户RAM模式的分布式RAM中读取提供已被寄存的读地址信号。
【0008】根据本发明的另一示例是使用逻辑模块的一个输入端(该逻辑模块不需要的那个输入端),作为在用户写模式中控制写入分布式RAM的写地址解码器电路所用的附加写地址信号的源。
【0009】少量的附加多路复用可被添加于逻辑模块,以便于将逻辑模块中的RAM单元用作不同深度和/或宽度的RAM。其他方式也可有利于提供不同深度和/或宽度的分布式RAM,如通过包括写地址解码器的深度模式配置位,在取决于该位的发信号模式的分布式RAM中生成写信号。
【0010】可为写地址解码器添加一个或多个寄存器以便于为该解码器服务的分布式RAM提供同步写入。写地址解码器也可配有定时电路,为分布式RAM的写入排序。
【0011】参照附图与以下详细说明本发明的其他功能、其性质及各种优点将更明显。
附图说明
【0012】图1是根据本发明的说明性电路的简化示意框图。
【0013】图2是根据本发明的另一说明性实施例的简化示意框图。
【0014】图3是根据本发明的附加说明性电路的简化示意框图。
【0015】图4是根据本发明的、图3所示内容一部分的说明性实施例的更详细的简化示意框图。
【0016】图5是根据本发明的、使用图4电路所产生的信号的说明性电路的简化示意框图。
【0017】图6是根据本发明的、图3或图4所示内容一部分的替代性实施例的简化示意框图。
【0018】图7是能够根据本发明被使用的电路的说明性实施例的简化示意框图。
【0019】图8是与图1或图2大致相似的简化示意框图,示出了本发明其他可能功能的说明性实施例。
【0020】图9是根据图8所示的本发明一方面的另一电路的说明性实施例的简化示意框图。
具体实施方式
【0021】图1示出了基本众所周知但根据本发明加以某些增强的FPGALE(或自适应逻辑模块(ALM)或自适应逻辑元件(ALE))10的示例。图1中的已知元件由两位参照数字表示。新的或大幅改变的元件由三位参照数字表示。已知元件包括多路复用器30a-d、40-1至40-4、50-1至50-4、60-1、60-2、70a和70b。已知元件也包括三输入查找表(3-LUT)20-1至20-8以及寄存器80a、80b。图1所示互联电路中多数为已知。但反馈连接110a、110b是为本发明目的添加的。此外,图1中,为了便于追踪可根据本发明使用的说明性信号路径,该信号路径用粗线强调,尽管实际仅有该路径的110b部分是为本发明目的新添的。
【0022】可以理解图1中3-LUT 20各自可以上述Lewis等人参考文献中所示任何方式构造。3-LUT 20各自包括八个可选择作为分布式用户RAM使用的配置RAM(CRAM)单元或位。(本文中为方便起见,元件20将通称为3-LUT,尽管可以理解,他们可用作LUT或分布式用户RAM)。各3-LUT 20的读选择控制信号在施加到(并经过)3-LUT的三条垂直引线上。因此,例如,ALM输入A和B是读选择控制信号的其中两个,这两个信号被施加到所有八个3-LUT 20。施加到3-LUT20-1至20-4的第三个读选择控制信号是ALM输入信号DC0。施加到3-LUT 20-5至20-8的第三个读选择控制信号是ALM输入信号DC1。如果需要一起使用3-LUT 20-1至20-8所有RAM单元(如,提供一个六输入逻辑功能或一个64*1的用户RAM),那么DC0和DC1将具有同一逻辑值。另一方面,如果需要分裂ALM 10以提供两个较小逻辑功能(即两个五输入逻辑功能或两个四输入逻辑功能)或提供两个“较浅”用户RAM片(如32*2RAM)那么DC0和DC1可为不同值的输入。
【0023】各3-LUT 20的其他所示输入是写数据(WD)信号和写使能(WE)信号。这些信号的性质及其在3-LUT 20中的使用通过上述Lewis等人的参考文献将很明显。提供了两个写使能信号线120a和120b以便于将ALM 10中的RAM作为64*1或32*2RAM使用。写使能信号线120a服务于3-LUT 20-5至20-8;使能信号线120b服务于3-LUT 20-1至20-4。
【0024】图1中未示出,但在ALM 10电路中存在的是优选为以类似Lewis等人的参考文献所示任一方式施加到各个3-LUT 20-1至20-8的写解码器输出信号。如Lewis等人参考文献所示使用之外,这些写解码器输出信号优选以该参考文献中所示任一方式生成。本说明书后文中示出并描述了根据本发明的各种可能写解码器的修改。
【0025】回到读,RAM单元输出选择的前三级是在3-LUT 20中在以及已经描述的ALM输入信号(即,A、B、DC0和DC1)的控制下执行的。其他级的读选择是由可由ALM输入DC0、DC1、E0、E1、F0和F1以各种方式控制的多路复用器40、50和60执行。两个寄存器80或其一的输出信号也可用于提供一些多路复用器的选择控制。多路复用器30用于选择如何将一些可能的选择控制信号实际路由至多路复用器40、50并供其使用。(多路复用器30一般由图1未示出的配置RAM(CRAM)单元可编程控制。一般,所有读选择的最终结果为两个多路复用器60或其一输出端的64选1选择或两个独立的32选1选择,分别在各多路复用器60的输出端。)
【0026】如果需要,多路复用器60-1的输出信号可被施加到并寄存于寄存器80a。多路复用器60-2的输出信号可被施加到并寄存于寄存器80b。多路复用器70a允许某些其他信号施加到并寄存于寄存器80a。类似,多路复用器70b允许某些其他信号施加到并寄存于寄存器80b。多路复用器70一般由图1中未示出的CRAM单元可编程控制。多路复用器60的输出可为ALM 10的未寄存输出。多路复用器80的输出可为ALM 10的已寄存输出。该寄存器输出也可反馈给ALM,如图所示。根据本发明(并如以上所提),寄存器80的反馈通过连接110至3-LUT 20的写数据输入增强。
【0027】从前述可看出图1示出了本发明的以下第一方面。在可分裂LUT中,LUT的CRAM单元被分为至少两分区(如,一方面,3-LUT20-1至20-4内的CRAM单元,另一方面,3-LUT 20-5至20-8内的CRAM单元)。这些互斥的分区各自具有自己的写入驱动器和写数据输入(由引线110a和110b指示)。各分区也有一写使能线120a或120b。在一种分布式用户RAM运行模式中,仅有单个写使能线被断言(依赖于某地址位的值),一个数据位被写入由断言写使能信号所启用的分区中的一个CRAM单元中。这对应于LUT RAM的最深模式(如,64*1模式)。在另一用户RAM运行模式中,一个以上写使能线120被断言,且多数据位被写入LUT RAM的一个以上分区中。这对应于存储器的较浅模式(如,32*2模式)。
【0028】图1也示出了本发明的另一方面。ALM 10的已知电路允许其在有时被称为压缩寄存器模式的模式中运行。该模式中一个寄存器80可被用于寄存ALM的输入信号E或F(或两个寄存器80均可这样使用)。例如,ALM输入信号E0或F1可经多路复用器70a被施加到寄存器80a。同样,ALM输入信号E1或F0可经多路复用器70b被施加到寄存器80b。该功能(附加寄存器反馈路径110)有助于ALM 10在分布式RAM模式中提供低成本的同步写入,如以下详细所述。
【0029】在图1中,粗线表示由底部寄存器或触发器(FF)80b锁存的、用于压缩寄存器模式写数据的输入信号F0。通过将FF的输出用作3-LUT 20-5至20-8的写驱动器的输入,可以较少或零附加硬件成本提供写数据寄存器。图1示出了如何配置ALM 10使用一压缩寄存器(80b)来锁存写数据并为该写数据提供同步运行。可以看出,在32*2模式中,两个FF 80a和80b可被用于提供输入数据的两个不同位。
【0030】在图1中,当LUT RAM配置为最深(64*1)模式时写数据被路由至所有必要ALM 10输入引脚(F0和F1),因为可以使用(路径110a和110b的)几个不同写驱动器中任何一个来写入某分区(即20-1至20-4或20-5至20-8)。但是,没有充足的读路径可用,因为F0和F1之一用于控制LUT中的最终多路复用器级60。在本发明实施例的另一方面,为至少一写驱动器输入提供了多路复用器(130,图2),使得写驱动器可配置在(1)为至少一其他写驱动器提供的同一写数据或(2)不同输入中选择。这样,F0/F1 ALM10’(图2)输入之一可被用作完整读地址的一部分。
【0031】参照图2更具体地扼要重述以上所述,与图1一样,ALM 10’包括(3-LUT 20中的)64CRAM位并被分为两个分区(20-1至20-4以及20-5至20-8),使得ALM可作为64*1或32*2RAM运行。这包括提供两个写使能线120a和120b和两个写数据线110a和110c。写数据多路复用器130可为两个分区提供同一数据(64*1模式)。换句话说,在此模式中,多路复用器连接引线110a至引线110c。可选择地,多路复用器可连接引线110b至引线110c,以使得可为LUT RAM两个分区提供不同数据(32*2模式)。(多路复用器130一般由图2中未示出的CRAM位可编程控制。)在图2所示说明性实施例中,在最深模式中,F1被用作写数据,F0被用作读地址。但是可以理解,这只是设计选择的问题,如果需要,可以颠倒。
【0032】继续图2所示的另一方面,如果ALM 10’被用于64*1模式,可以看出一个附加FF(80b)可用。这可用于寄存读地址的一个位。一组ALM(被称为逻辑阵列块或LAB(见上述Lewis等人的参考文献))中的所有ALM可经服务LAB中所有ALM但一般不超出该LAB的本地互联资源存取该读地址位。(图3中本地导线14是该本地互联资源的示例。)寄存的读地址位可从本地线连至LAB中一个或多个LUTRAM的读地址引脚A/B/等之一。例如,图2示出了压缩寄存器模式中ALM 10’输入E1被施加到寄存器80b。然后寄存器80b的输出(作为同步读地址位)对于LAB中包括ALM 10’的所有ALM可用。该可用性经过服务LAB中所有ALM的本地线路(14,图3)之一提供。这样,读地址寄存器可在与LUT RAM相同的LAB中执行。如果提供了逻辑和LUT RAM的可选ALM级配置(选项)且被执行的存储器不使用LAB中所有ALM,也可使用该结构。一个可能的示例是如果LAB中一些ALM提供分布式存储器,而LAB中的其他ALM执行不要求使用一个或多个逻辑ALM中的两个寄存器80的逻辑时,可使用未使用的逻辑ALM寄存器来帮助寄存其他ALM提供的存储器的读地址。
【0033】如上所述,图2示出了如何使用ALM输入E1提供读地址信号。这确保了读地址寄存器靠近LUT执行分布式RAM,并提供两个高速读路径,减少限制,并路由软件以保持读地址靠近分布式RAM。
【0034】本发明的另一方法为同步写地址提供了较佳写定时,并消除了用户这么做的需要。另外,这是以低成本达成的。图3示出了上述Lewis等人参考文献中所示一些方面,但附加了根据本发明的一些功能。代表LAB 12包括几个ALM 10或10’。LAB中ALM的运行的某些方面由所谓的由LAB中所有ALM公用且共享的控制信号逻辑电路92选择并可能在某种程度上控制的次信号控制。例如,该次信号可包括LAB中ALM的寄存器可用的时钟、时钟使能、负载、清除和/或预置信号。各ALM也可接收来自该器件的至少一些互联资源13/14的几种主信号A/B/等。(与Lewis等人参考文献所示内容相似,这些互联资源可包括全局或相对全局元件13以及(对LAB来说)较本地的元件14。)各ALM的至少一些输出信号将送至至少一些互联资源13/14。
【0035】由控制信号逻辑电路92使用的信号一般来自器件的全局14和本地13互联资源。所谓交换多路复用器90a、90b和90c因在从逻辑元件输入多路复用器(LEIM)输出和全局信号选择多路复用器输出选择信号应用于电路92中增加信号选择和路由灵活性而众所周知。如LEIM和全局信号多路复用器,多路复用器90一般由图3中未示出的CRAM可编程控制。
【0036】Lewis等人的参考文献示出了与次信号电路92相似,为LUTRAM模式提供一写地址解码器并为LAB中所有ALM 10/10’提供定时电路(这里是元件142)是有利的。根据本发明,图3示出了LAB范围电路142可从LAB的次信号电路92的输入路由资源获得,包括服务电路92的交换输入多路复用器90。换句话说,写地址解码器和定时电路142的输入信号可来自交换多路复用器90的输出。
【0037】另外,根据本发明,可为来自交换多路复用器90的写使能和/或写地址信号等电路142的输入提供寄存器140。因而在此实施例中(图3)写解码器142包括同步写使能和写地址信号的大量FF 140或与之联系紧密。写使能可为控制某模式相关大小(如示例所示每ALM1或2位)的单个字写入的单个写使能的形式。或者,可提供多于一个写使能来进一步限定为32*2模式时ALM中每两位提供独立写使能的被写的CRAM组,或使用依赖LUT RAM模式的不同数量地址和写使能位的其他变动。在存储器设计方面的一般电路设计人员可理解这些变动。FF的数据输入被连至供给次信号区92的各种路由结构(包括交换多路复用器90)。(应强调寄存器140为可选。)
【0038】图4详细示出了写解码器的说明性实施例。写解码器实施例是通过为排序写使能(WEi)、列(列i)、行(行i)及预充电信号(如果包括的话(见下文))提供定时对上述Lewis等人参考文献所示内容的扩展。配置位(CRAM单元)150控制这些信号是否为LAB启用,使得逻辑模块LAB(与分布式LUT RAM LAB相对)没有任何启用的信号。一个或多个CRAM 170控制RAM的深度,使得在各深度配置断言为适当的WEi线路的一个或多个(经或(OR)门174a/b,与非(NAND)门176a/b,以及反相器178a/b),取决于地址A5。特别地,如果CRAM 170为1,A5的状态为不相干。这对应于32*2模式。如果CRAM 170为0,断言为WE0和WE1其一,取决于A5的逻辑状态。这对应于64*1模式。(当然,在任何情况下,WE信号断言的定时取决于反相器162的输出。)从前述可以看出深度模式CRAM 170和相关电路根据所需允许或不允许细分(分裂)ALM 10/10’中的RAM单元的列。如果该列被细分,那么子分区可使用输入A5单独寻址。如果该列未被细分,那么仅可寻址整列且A5的值不相干。
【0039】图4所示写解码器包括执行在时钟正相上写的定时电路。(其他实施例可使用时钟的负相。另外,寄存器140a可如一些实施例中写的定时允许这样的级敏锁存器执行。)该定时器电路包括写使能寄存器140a、NAND门152、反相器154、延迟电路156、NAND门160、反相器162以及(可选)延迟电路164(用于预充电信号,如果提供的话(见下文))。反相器162输出的写信号启用行i和列i信号(如Lewis等人参考文献中所示和所述方式使用)以及一个或多个WEi信号。其也禁止可能有的预充电信号。RAM设计中的电路设计人员可以理解适当的定时关系。各行与列配置写信号也或入行与列解码器,使得配置逻辑可写至任何所需地址,如Lewis等人参考文献所述。
【0040】关于上述生成预充电控制信号的电路,图5示出了如何在LUT电路中使用该信号的示例。图5与上述Lewis等人参考文献所示基本相同,但是附加了预充电晶体管。从Lewis等人参考文献中的已知元件具有200系列的参考标号(尽管图5中的参照数字用意不在与Lewis等人参考文献中的参照数字相关联。)。所述预充电晶体管具有300系列的参考标号。图5中LUT RAM单元220的行列数量为任意的,未必与Lewis等人参考文献或本说明中别处示例所示数量相同。图5示出的数据总线为双轨,但如果与使用的RAM单元组织兼容,也可使用单头总线。
【0041】预充电晶体管310a和310b连于LUT范围数据总线230a/b的轨道和VCC之间,当如上有关图4所示断言预充电信号时向VCC上拉轨道。同样,预充电晶体管320-0a和320-0b连于行范围数据总线240-0a/b的轨道和VCC之间,当如上有关图4所示断言预充电信号时向VCC上拉轨道。为LUT RAM单元220的各行提供了相似的预充电晶体管320。当然,所有预充电晶体管310和320在预充电信号为非时关闭。
【0042】图5中的其他元件为已知(如从Lewis等人的参考文献中已知),因此可简要说明。引线250a/b提供配置数据。当程序/读回信号启用晶体管252a/b时,这些引线连于引线230a/b。用户RAM数据可经引线260和反相器262a、262b提供。通过启用晶体管272a和272b,适当编程CRAM 270允许所示LUT用于用户RAM。当(来自引线260的)数据将被写入所示LUT时,用户RAM写使能信号被施加到引线280以启用晶体管282a、282b。行地址信号可选启用各行的晶体管290a/b。列地址信号被施加到类似标有列0和列7的引线。与Lewis等人相比,不同之处在于附加了控制逻辑,当ALM被用于LUT RAM模式时禁止CRAM的读回。这是因为ALM处于LUT RAM模式时CRAM的内容可改变,且CRAM中周期检验软错误的任何错误检验电路将不正确地将改变探测为错误。图5中示为或非(NOR)门371的读回禁止电路阻止从LUT RAM读回,并使得读回始终为逻辑0或1,取决于数据线的检测。
【0043】本发明的另一可能方面由图2所示连接点节点190和图6所示附加元件192和140n(与图3相比)说明。如果次信号的路由资源如图3所示88不足以提供解码器142需要的所有写地址信号,可使用本发明的这一方面。在这种情况下,该写地址解码器142服务的LAB中ALM 10’(图2)不需要的输入信号可被借来提供写地址解码器的附加输入信号。如果,例如,LAB包括八个ALM 10’,但是仅需要这些ALM中六个的电路提供上述读地址(RA)信号,那么没有提供读地址信号的两个ALM中的电路可被用来为该LAB的写地址解码器142提供附加写地址信号。回到图2,如果所示ALM 10’不是经其E1输入、多路复用器70b和触发器80b来施加同步读地址信号的ALM之一,那么该E1输入将可用于为相关写地址解码器142提供附加写地址信号。这是经过图2中连于图6中输入引线192的连接点190完成的。图6中添加了附加触发器140n以寄存施加到写地址解码器142的该信号。190至192的连接可被缓冲以避免不适当载入相关E1输入。
【0044】在上述ALM 10/10’中,可能注意到读地址引脚在ALM的上下部分顺序上不同。具体来说,输入引脚DC0和DC1被施加作为图1和图2中ALM的上半部的第三和第四地址引脚、但又被施加作为该ALM中下半部的第四和第三地址引脚。因此,这些ALM上半部的读地址是A、B、DC0、DC1等,而下半部将使用A、B、DC1、DC0等。这表示将数据写入ALM需要考虑排序上的不同。一种方法是扭曲某些图7所示列写地址线路182。图7示出了CRAM位220的位置,可使用引脚A、B、DC0、DC1等寻址。可以看出上四行与下四行的行中位的排序不同,但读和写地址CRAM都有不变的排序。为了实现此目的,列写地址线路182-1和182-2(如图4中列地址解码器180b的输出中)在从CRAM的上半部至下半部过程中被交换或扭曲。同样,列写地址线路182-5和182-6在从CRAM的上半部至下半部过程中被交换或扭曲。
【0045】另一选择是提供不同的多路复用器以允许读上半部和下半部之间位排序不变。这避免了扭曲写列线路的需求。现有多路复用器30b和30c已准备了ALM第四级的可编程选择,执行读地址3(RA3)。在前述电路中,多路复用器30b和30c包括各种逻辑和反馈信号的计算机输入端,但上半部和下半部分别包括DC1和DC0。但是DC0和DC1分别直接驱动上下半部的第三级。因而,要求的是为上下半部上的读地址2(RA2)选择同一信号并为上下半部上的RA3选择DC0和DC1中另一个的能力。DC0和DC1中哪个选给RA2,那个选给RA3并不重要,只要可以经过ALM的两个半部期间一直选择一个给RA2,另一个给RA3。这可通过为供给第四LUT输入级的多路复用器并为第三LUT输入级的新多路复用器附加计算机输入端实现,使得DC0和DC1可以不变顺序使用。在图8示出的方案中,选择DC1为RA2使用,2:1多路复用器430(RA选择多路复用器)被附加至ALM的一半以允许DC0作为RA2用于ALM的两个半部。附加计算机输入端或扇入(fanin)被附加至供给LUT第四级的多路复用器30c以允许DC1作为RA3用于ALM的两个半部。图8示出了以64*1模式配置的ALM写数据路径,配有示出两个模式中信号选择的标签。
【0046】本发明该部分的相关方面是启用不变的ALM和LUT中各级间输入信号排序的多路复用器。注意在图8中,RA4供给第六LUT多路复用器级,RA5供给第五级,与名称相反。这是为了便于命名信号,因为RA5信号也用于WD1(写数据1),这也便于让引脚与名称有固定联系(否则在32*2模式中引脚RA4将从F0移至E0)。
【0047】本发明的另一可选功能涉及写地址的次信号的使用。可能需要避免使用写地址和使能信号的所有次信号,因为这阻止其用于LAB用作分布式存储器时可能需要的其他目的。例如,时钟使能是一般所需的。为了提供这个,可以采用不同方法,将各ALM的一引脚专用于各ALM的写地址或写使能。在有关ALM输入F1的图8中也示出了这个变动。
【0048】图8也说明了从F1输入至写解码器路径中的触发器(寄存器)480。触发器是可选的,不是本发明必须的。使用图8所示配置(具有和不具有寄存器480)各ALM提供了不同的写地址和控制信号经过F1输入至写解码器(如图3中的142)的相应引脚。图9说明了这一点。一组线484将来自各ALM的写地址信号482连至写解码器142。另外,一些控制信号,如时钟信号,可从控制信号选择逻辑电路提供至写解码器。
【0049】应注意本技术要求在每个使用该手段连接的ALM上为各写地址和控制信号(如写使能)提供专用输入引脚。因而,这可减少和消除在ALM内部使用触发器80作为读地址和其他目的附加触发器的可能性。
【0050】另外,需要另一功能来支持此方面。本发明的前述方案(如,与图2有关的)要求当ALM以32*2模式配置时信号RA4被复制。这是因为F0和F1分别直接连于ALM的上下半部中的多路复用最终级60。在32*2模式中,必须使用这两个最终多路复用器60-1和60-2,结果是需要两个引脚输入单个信号。也如图8所示的备用方案通过引入标为附加F1级多路复用器460的最终级F1多路复用器的副本,消除了两个输入传输单个信号的需要。这使32*2模式中要求的引脚数量减一,并确保在任何模式中读地址不需要F1引脚,使其可用于以上段落所述写地址。
【0051】注意ALM的上下半部是对称的,且附加硬件既可位于上半部,也可位于下半部,只要保留相对位置。因此,例如,图2示出的附加写数据多路复用器130在下半部,而图8将其放在上半部。
【0052】可以理解前述仅是本发明原则的示例,本领域技术人员可作出各种修改而不背离本发明的范围与精神。例如,本发明的各方面可按需要被单独使用或以任何组合方式使用。可能的修改的另一示例是LUT中RAM单元的数量可大于或小于本文所示且所述的说明性数量(一个或多个)。同样,LAB中ALM的数量可大于或小于本文所示的说明性数量(一个或多个)。
Claims (31)
1.查找表电路,包括:
多个存储器单元;
用于为所述存储器单元提供配置数据的电路;以及
用于为所述存储器单元替代提供用户数据的电路,其中所述用于替代提供的电路为可控制用来选择大量的用户数据位,所述用户数据位被并行地施加到所述存储器单元,以致由所述存储器单元执行的用户数据存储器深度可变化。
2.根据权利要求1所述的查找表电路,进一步包括:
用于控制由所述用于替代提供的电路所作选择进行的配置存储器电路。
3.根据权利要求1所述的查找表电路,其中所述用于替代提供的电路包括:
写使能电路,其用于选择大量所述存储器单元,以施加与所述存储器单元所实现的用户数据存储器深度一致的写使能信号。
4.根据权利要求1所述的电路,其中所述存储器单元被组织成行和列,其中至少两列的不同部分能够由公共读地址信号来寻址读取,且其中一个列写地址信号被施加到这两列的所述不同部分。
5.根据权利要求4所述的电路,其中所述两列中没有由所述公共读地址信号来寻址读取的第二部分能够由第二公共读地址信号来寻址读取,且其中第二列写地址信号被施加到这些第二部分。
6.根据权利要求1所述的电路,其中所述存储器单元的第一和第二子集分别使用第一和第二独立读地址导线来寻址读取,且其中所述电路进一步包括路由电路,其用于选择性地允许相同或两个不同信号被施加到所述导线。
7.根据权利要求6所述的电路,其中所述第一和第二子集还分别使用第三和第四独立读地址导线来寻址读取,且其中所述电路进一步包括第二路由电路,其用于选择性地允许第二相同或两个不同信号施加到所述第三和第四导线。
8.根据权利要求7所述的电路,其中所述相同信号与所述第二相同信号具有用于由所述路由电路与所述第二路由电路使用的所述两个不同信号的源。
9.FPGA电路,包括:
多个查找表电路;
用于选择由所有所述查找表电路共享的多个控制信号的电路;以及
用于替代使用由所述用于选择的电路选择的信号作为地址信号,这些地址信号用于控制所述查找表电路中至少一个查找表电路中的存储器单元的寻址,以将用户数据写入这些存储器单元的电路。
10.根据权利要求9所述的电路,其中用于替代使用的电路包括:
用于寄存所述地址信号至少之一的至少一个寄存器。
11.根据权利要求9所述的FPGA电路,其中所述控制信号所包括的信号是从由以下信号构成的组中选择的:
用于对与所述查找表电路有关的寄存器提供时钟的时钟信号、用于限制所述时钟的时钟使能信号、用于载入所述寄存器的加载信号、用于清除所述寄存器的清除信号、以及用于预置所述寄存器的预置信号。
12.根据权利要求9所述的FPGA电路,其中所述用于替代使用的电路包括解码器电路,其用于将所述地址信号从二进制地址表达解码为行列地址表达。
13.根据权利要求9所述的FPGA电路,其中所述用于替代使用的电路包括定时电路,其用于产生写使能信号,以控制将所述用户数据写入所述存储器单元的定时。
14.查找表电路,包括:
多个存储器单元;
用于选择所述存储器单元之一的内容作为输出信号的多路复用器电路;
寄存器电路;
路由电路,其用于将输入信号或所述输出信号选择性地路由至所述用于寄存的寄存器电路,以产生一个被寄存的信号;以及
进一步的路由电路,其用于将所述寄存信号施加到所述存储器单元的写输入端。
15.根据权利要求14所述的查找表电路,进一步包括:
用于选择性地将配置数据供应到所述存储器单元的电路。
16.查找表电路,包括:
多个存储器单元;
读电路,其能够提供1)从任一所述存储器单元选择的输出信号,或2)两个输出信号,这两个输出信号中的每一个分别从不同的第一和第二次多个存储器单元之一选择的;
第一和第二寄存器;以及
路由电路,其用于1)将所述第一和第二寄存器各自的输出信号分别路由至所述第一和第二次多个中所述存储器单元的写驱动器,或2)将所述第一和第二寄存器之一的输出信号路由至所有所述存储器单元的写驱动器。
17.根据权利要求16所述的查找表电路,其中所述第一和第二次多个是彼此互斥的。
18.根据权利要求17所述的查找表电路,其中所述第一和第二次多个包括相同数量的存储器单元。
19.根据权利要求17所述的查找表电路,其中所述路由电路包括:
多路复用器电路,其用于选择性地将1)所述第一寄存器的输出信号,或2)所述第二寄存器的输出信号,施加到所述第一次多个中所述存储器单元的写驱动器。
20.根据权利要求19的所述查找表电路,其中所述多路复用器电路是可编程控制的。
21.FPGA电路,包括:
多个查找表电路,每个均包括多个存储器单元和多个输入引线,查找表读地址信号可被施加到所述多个输入引线;
地址解码器电路,其用于接收多个用于将数据写入所述存储器单元的写地址信号;以及
路由电路,其用于允许所述输入引线之一被替换用于提供所述写地址信号之一。
22.根据权利要求21所述的FPGA电路,进一步包括:
寄存器电路,其用于存储来自所述输入引线之一、可用作所述写地址信号之一的信号。
23.根据权利要求21所述的电路,进一步包括用于替代性地控制读操作的电路,当所述输入引线之一被用来提供所述写地址信号之一时,所述读操作通常被控制成从所述输入引线之一至所述输入引线中的另一个。
24.FPGA电路,包括:
多个查找表电路,每个均包括多个存储器单元;以及
写解码器电路,其用于解码多个地址信号,以产生用于控制数据将被写入哪个所述存储器单元的行列信号,所述写解码器包括用于选择性地允许细分所述列的可编程控制的模式选择电路。
25.根据权利要求24所述的FPGA电路,其中所述模式选择电路包括:
路由电路,其用于选择性地将写使能信号路由至1)所述存储器单元的整个列,或2)基于所述地址信号之一的列的独立部分。
26.根据权利要求25所述的FPGA电路,其中所述模式选择电路进一步包括:
可编程存储器单元;以及
当所述可编程存储单元被编程引起所述路由电路将写使能信号路由至所述存储器单元的整个列时,响应所述可编程存储器单元来忽略所述地址信号之一的电路。
27.一种运行FPGA电路的方法,所述FPGA电路包括多个由逻辑模块构成的块,每个所述块包括多个查找表电路和至少一个寄存器,所述寄存器与每个所述查找表电路相关且能寄存来自相关查找表电路的输出信号或查找表读地址输入信号至相关查找表电路,每个所述块进一步包括用于选择性地路由所述块中每一所述逻辑模块的输出信号至所述块中至少一个所述逻辑模块的读地址输入端的本地互联电路资源,所述查找表电路选择性地用作分布式随机存取存储器,所述方法包括:
使用所选块中至少一个所述寄存器将查找表读地址输入信号寄存至相关查找表电路;以及
使用所选块的所述本地互联电路资源将至少一个所述寄存器的输出信号路由至所选块中至少一个所述查找表电路的读地址输入端。
28.根据权利要求27所述的方法,其中所述使用本地互联电路资源包括:
使用所选块的本地互联电路资源来路由至少一个所述寄存器的输出信号至所选块中多个查找表电路的读地址输入端。
29.根据权利要求27所述的方法,进一步包括:
使用所选块中的多个所述寄存器来分别寄存多个查找表读地址输入信号至所述各自相关的查找表电路;以及
使用所选块的本地互联电路资源来路由所述多个寄存器的输出信号至所选块中至少一个所述查找表电路的多个读地址输入端。
30.根据权利要求29所述的方法,其中所述使用本地互联电路资源包括:
使用所选块的本地互联电路资源来路由所述多个寄存器的输出信号至所选块中多个查找表电路中每个查找表电路的多个读地址输入端。
31.FPGA电路,包括:
查找表电路,其包括多个存储器单元;
第一电路,其用于选择性地允许配置数据在配置所述FPGA期间被写入所述存储器单元,且之后在验证读回所述配置数据期间从所述存储器单元中读回所述配置数据;
第二电路,其用于选择性地允许用户数据在配置所述FPGA后被写入所述存储器单元;以及
用于至少禁止所述第一电路验证读回的电路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410136371.2A CN103886888B (zh) | 2005-12-27 | 2006-12-05 | 查找表电路 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/320,253 | 2005-12-27 | ||
US11/320,253 US7391236B2 (en) | 2005-12-27 | 2005-12-27 | Distributed memory in field-programmable gate array integrated circuit devices |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410136371.2A Division CN103886888B (zh) | 2005-12-27 | 2006-12-05 | 查找表电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1992071A true CN1992071A (zh) | 2007-07-04 |
CN1992071B CN1992071B (zh) | 2014-05-07 |
Family
ID=37895837
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610164526.9A Active CN1992071B (zh) | 2005-12-27 | 2006-12-05 | 查找表电路 |
CN201410136371.2A Active CN103886888B (zh) | 2005-12-27 | 2006-12-05 | 查找表电路 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410136371.2A Active CN103886888B (zh) | 2005-12-27 | 2006-12-05 | 查找表电路 |
Country Status (3)
Country | Link |
---|---|
US (2) | US7391236B2 (zh) |
EP (1) | EP1804384B1 (zh) |
CN (2) | CN1992071B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103259528A (zh) * | 2012-02-17 | 2013-08-21 | 京微雅格(北京)科技有限公司 | 一种异构可编程逻辑结构的集成电路 |
CN108182303A (zh) * | 2017-12-13 | 2018-06-19 | 京微齐力(北京)科技有限公司 | 基于混合功能存储单元的可编程器件结构 |
CN108376550A (zh) * | 2017-01-31 | 2018-08-07 | 阿尔特拉公司 | 用于将查找表随机存取存储器元件重新用作配置随机存取存储器元件的方法和装置 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7589555B1 (en) * | 2007-01-08 | 2009-09-15 | Altera Corporation | Variable sized soft memory macros in structured cell arrays, and related methods |
JP5048122B2 (ja) * | 2008-02-29 | 2012-10-17 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US7768430B1 (en) * | 2008-05-20 | 2010-08-03 | Altera Corporation | Look-up table based memory |
US7948792B1 (en) | 2009-04-15 | 2011-05-24 | Altera Corporation | Memory and techniques for using same |
WO2010126750A2 (en) * | 2009-04-30 | 2010-11-04 | Wilson-Cook Medical Inc. | System and method for fiducial deployment |
US8242806B1 (en) * | 2010-07-01 | 2012-08-14 | Altera Corporation | Methods and systems for managing a write operation |
US9660650B1 (en) * | 2014-03-13 | 2017-05-23 | Altera Corporation | Integrated circuits with improved register circuitry |
US9602108B1 (en) * | 2015-09-11 | 2017-03-21 | Xilinx, Inc. | Lut cascading circuit |
US10312918B2 (en) * | 2017-02-13 | 2019-06-04 | High Performance Data Storage And Processing Corporation | Programmable logic design |
CN113270130A (zh) * | 2020-05-29 | 2021-08-17 | 台湾积体电路制造股份有限公司 | 存储器设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6462577B1 (en) * | 2000-04-28 | 2002-10-08 | Altera Corporation | Configurable memory structures in a programmable logic device |
US20050062498A1 (en) * | 1999-02-25 | 2005-03-24 | Xilinx, Inc. | Configurable logic element with expander structures |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US708465A (en) * | 1902-01-02 | 1902-09-02 | L A Sayre & Co | Ticket-punch. |
US5343406A (en) | 1989-07-28 | 1994-08-30 | Xilinx, Inc. | Distributed memory architecture for a configurable logic array and method for using distributed memory |
US5550782A (en) | 1991-09-03 | 1996-08-27 | Altera Corporation | Programmable logic array integrated circuits |
US5414377A (en) | 1992-12-21 | 1995-05-09 | Xilinx, Inc. | Logic block with look-up table for configuration and memory |
US5352940A (en) | 1993-05-27 | 1994-10-04 | Altera Corporation | Ram convertible look-up table based macrocell for PLDs |
US5566123A (en) | 1995-02-10 | 1996-10-15 | Xilinx, Inc. | Synchronous dual port ram |
US5572148A (en) | 1995-03-22 | 1996-11-05 | Altera Corporation | Programmable logic array integrated circuit with general-purpose memory configurable as a random access or FIFO memory |
WO1996042141A1 (en) * | 1995-06-09 | 1996-12-27 | Advanced Micro Devices, Inc. | Field programmable gate array (fpga) having an improved configuration memory and look up table |
US5648732A (en) | 1995-10-04 | 1997-07-15 | Xilinx, Inc. | Field programmable pipeline array |
US5796269A (en) | 1996-04-09 | 1998-08-18 | Xilinx, Inc. | Composable memory array for a programmable logic device and method for implementing same |
US5889413A (en) | 1996-11-22 | 1999-03-30 | Xilinx, Inc. | Lookup tables which double as shift registers |
US6029236A (en) | 1997-01-28 | 2000-02-22 | Altera Corporation | Field programmable gate array with high speed SRAM based configurable function block configurable as high performance logic or block of SRAM |
US6249143B1 (en) | 1997-05-23 | 2001-06-19 | Altera Corporation | Programmable logic array integrated circuit with distributed random access memory array |
US6128215A (en) | 1997-08-19 | 2000-10-03 | Altera Corporation | Static random access memory circuits |
US6215326B1 (en) | 1998-11-18 | 2001-04-10 | Altera Corporation | Programmable logic device architecture with super-regions having logic regions and a memory region |
US6356110B1 (en) | 2000-04-03 | 2002-03-12 | Altera Corporation San Jose Ca | Multifunction memory array in a programmable logic device |
US6411124B2 (en) | 2000-04-28 | 2002-06-25 | Altera Corporation | Programmable logic device logic modules with shift register capabilities |
US6384627B1 (en) * | 2001-02-16 | 2002-05-07 | Xilinx, Inc. | Logic block used as dynamically configurable logic function |
US7196541B2 (en) * | 2003-02-19 | 2007-03-27 | Koninklijke Philips Electronics N.V. | Electronic circuit with array of programmable logic cells |
US7084665B1 (en) | 2004-07-22 | 2006-08-01 | Altera Corporation | Distributed random access memory in a programmable logic device |
US7193433B1 (en) * | 2005-06-14 | 2007-03-20 | Xilinx, Inc. | Programmable logic block having lookup table with partial output signal driving carry multiplexer |
-
2005
- 2005-12-27 US US11/320,253 patent/US7391236B2/en active Active
-
2006
- 2006-10-27 EP EP06022514.1A patent/EP1804384B1/en active Active
- 2006-12-05 CN CN200610164526.9A patent/CN1992071B/zh active Active
- 2006-12-05 CN CN201410136371.2A patent/CN103886888B/zh active Active
-
2008
- 2008-05-30 US US12/156,403 patent/US7656191B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050062498A1 (en) * | 1999-02-25 | 2005-03-24 | Xilinx, Inc. | Configurable logic element with expander structures |
US6462577B1 (en) * | 2000-04-28 | 2002-10-08 | Altera Corporation | Configurable memory structures in a programmable logic device |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103259528A (zh) * | 2012-02-17 | 2013-08-21 | 京微雅格(北京)科技有限公司 | 一种异构可编程逻辑结构的集成电路 |
CN108376550A (zh) * | 2017-01-31 | 2018-08-07 | 阿尔特拉公司 | 用于将查找表随机存取存储器元件重新用作配置随机存取存储器元件的方法和装置 |
CN108182303A (zh) * | 2017-12-13 | 2018-06-19 | 京微齐力(北京)科技有限公司 | 基于混合功能存储单元的可编程器件结构 |
CN108182303B (zh) * | 2017-12-13 | 2020-08-28 | 京微齐力(北京)科技有限公司 | 基于混合功能存储单元的可编程器件结构 |
Also Published As
Publication number | Publication date |
---|---|
US20080231316A1 (en) | 2008-09-25 |
US7391236B2 (en) | 2008-06-24 |
CN1992071B (zh) | 2014-05-07 |
US20070146178A1 (en) | 2007-06-28 |
EP1804384A3 (en) | 2010-03-03 |
US7656191B2 (en) | 2010-02-02 |
CN103886888A (zh) | 2014-06-25 |
EP1804384B1 (en) | 2015-09-16 |
CN103886888B (zh) | 2018-04-03 |
EP1804384A2 (en) | 2007-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1992071A (zh) | 现场可编程门阵列集成电路器件的分布式存储器 | |
US6871328B1 (en) | Method for mapping logic design memory into physical memory device of a programmable logic device | |
US7716622B2 (en) | Memory re-implementation for field programmable gate arrays | |
CN1115696C (zh) | 可编程奇偶校验及比较电路 | |
US8555218B2 (en) | Decision modules | |
CA2415281C (en) | Architecture and method for partially reconfiguring an fpga | |
EP2069979B1 (en) | Dynamic fragment mapping | |
CN107273042B (zh) | 重复删除dram系统算法架构的存储器模块及方法 | |
US7587697B1 (en) | System and method of mapping memory blocks in a configurable integrated circuit | |
US6324087B1 (en) | Method and apparatus for partitioning a content addressable memory device | |
US7042748B2 (en) | Content addressable memory with cascaded array | |
US20020075714A1 (en) | Content addressable memory with configurable class-based storage partition | |
US6687785B1 (en) | Method and apparatus for re-assigning priority in a partitioned content addressable memory device | |
US7284228B1 (en) | Methods of using ant colony optimization to pack designs into programmable logic devices | |
US7263023B2 (en) | Semiconductor memory device having memory architecture supporting hyper-threading operation in host system | |
CN1975905A (zh) | 相位调整电路 | |
US6018622A (en) | Method for reducing circuit area by grouping compatible storage devices | |
US10236043B2 (en) | Emulated multiport memory element circuitry with exclusive-OR based control circuitry | |
US9330733B1 (en) | Power-aware RAM processing | |
US7337101B1 (en) | Method and apparatus for extending the capabilities of tools used for designing systems on programmable logic devices to satisfy timing requirements | |
Mai | Design and analysis of Reconfigurable Memories | |
WO2001095336A2 (en) | Partitioned content addressable memory device | |
US6870398B2 (en) | Distributed memory and logic circuits | |
US20060104145A1 (en) | Memory tiling architecture | |
JP2010045581A (ja) | 状態遷移管理装置及びその状態遷移管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220907 Address after: California, USA Patentee after: INTEL Corp. Address before: California, USA Patentee before: Altera Corp. |
|
TR01 | Transfer of patent right |