查找表电路转让专利

申请号 : CN200610164526.9

文献号 : CN1992071B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : D·刘易斯P·莱文蒂斯V·贝茨T·Y-T·王A·李P·潘

申请人 : 阿尔特拉公司

摘要 :

有利于在现场可编程门阵列(FPGA)的查找表(LUT)中将存储器单元用作用户可存取的分布式RAM的电路。例如,与LUT相关而且在用户RAM模式的读数据路径中不需要的寄存器可被用于寄存用户RAM模式中用于写的数据。另一示例是,与LUT相关的以其他方式不需要的寄存器可被用于为用户RAM模式提供同步读地址信号。示出的若干其他功能也同样有利于在FPGA中要求最小(如果有的话)附加电路的用户RAM模式。

权利要求 :

1.查找表电路,包括:

多个存储器单元;

用于提供配置数据的电路,所述配置数据用于写入到所述存储器单元;以及用于替代提供用户数据的电路,所述用户数据用于写入到所述存储器单元,其中所述用于替代提供用户数据的电路可控制用来选择多个用户数据位,所述用户数据位被并行地施加到所述存储器单元,以致由所述存储器单元执行的用户数据存储器深度可变化,其中所述存储器单元的第一和第二子集分别使用第一和第二独立读地址导线来寻址读取,且其中所述查找表电路进一步包括路由电路,其用于选择性地允许相同信号或两个不同信号被施加到所述第一和第二独立读地址导线。

2.根据权利要求1所述的查找表电路,进一步包括:

用于控制由所述用于替代提供用户数据的电路所作选择的配置存储器电路。

3.根据权利要求1所述的查找表电路,其中所述用于替代提供用户数据的电路包括:写使能电路,其用于选择多个所述存储器单元,以施加与所述存储器单元所实现的用户数据存储器深度一致的写使能信号。

4.根据权利要求1所述的电路,其中所述第一和第二子集还分别使用第三和第四独立读地址导线来寻址读取,且其中所述查找表电路进一步包括第二路由电路,其用于选择性地允许第二相同信号或两个不同信号施加到所述第三和第四独立读地址导线。

5.根据权利要求1所述的电路,其中所述相同信号具有源,其中所述相同信号的源用于由所述路由电路使用的所述两个不同信号。

说明书 :

查找表电路

技术领域

[0001] 本发明涉及可编程逻辑器件(PLD),例如通常称为现场可编程门阵列(FPGA)的器件。特别地,本发明涉及在FPGA中提供存储器电路,FPGA用户可在该器件正常逻辑操作期间将所述存储器电路用作随机存取存储器(RAM)。更特别地,本发明涉及选择性地使用该器件上的、不需要正常的基于查找表的逻辑的查找表(LUT)电路来提供上述用户可存取RAM。这样的RAM可被称为分布式RAM,因为其分布在该器件的若干个LUT的电路上,而不是在专用用户RAM电路的块中。
[0002] 背景技术
[0003] Lewis等人于2004年7月22日提交的美国专利申请10/897,743示出了在FPGA中提供分布式RAM的改进电路。(在此将Lewis等人这一参考文献以引用方式并入本文。)例如,Lewis等人的参考文献中示出了FPGA上若干个均包括LUT的逻辑元件(LE)共享单个写入解码器以减少提供FPGA分布式用户RAM模式能力所必须增加的写地址电路的数量。 [0004] 对Lewis等人的参考文献中所示的一般类型电路进行各种扩展和附加在许多情况下是有益的。例如,用户经常需要同步写入,这样用户不需要为写选通提供精确的定时信号。这使得有必要提供写地址和写数据寄存器,但如果能避免为此功能提供专用硬件(电路)则更为理想。
[0005] 可能对Lewis等人参考文献所示内容进行的有益扩展和附加的另一示例是将那些原理应用到可分裂的LE,以实现一个逻辑功能尺寸范围(例如六输入基于LUT逻辑功能和两个五输入基于LUT逻辑功能)。
[0006] 对Lewis等人参考文献所示内容进行的有益扩展和附加的另一示例涉及支持同步读功能。此外,用户常常更喜欢同步读,但如果能避免构造专用硬件来支持读地址寄存器则更为理想。

发明内容

[0007] 为便于利用FPGA上要求的很少的附加电路在FPGA上提供用户可存取的分布式RAM,可使用逻辑模块的读数据路径中不需要的逻辑模块中的寄存器来寄存将被写入用户RAM模式的分布式RAM的数据信号。
[0008] 有助于用户RAM模式的另一示例是,可使用读数据路径中不需要的逻辑模块中的寄存器为从用户RAM模式的分布式RAM中读取提供已被寄存的读地址信号。 [0009] 根据本发明的另一示例是使用逻辑模块的一个输入端(该逻辑模块不需要的那个输入端),作为在用户写模式中控制写入分布式RAM的写地址解码器电路所用的附加写地址信号的源。
[0010] 少量的附加多路复用可被添加于逻辑模块,以便于将逻辑模块中的RAM单元用作不同深度和/或宽度的RAM。其他方式也可有利于提供不同深度和/或宽度的分布式RAM,如通过包括写地址解码器的深度模式配置位,在取决于该位的发信号模式的分布式RAM中生成写信号。
[0011] 可为写地址解码器添加一个或多个寄存器以便于为该解码器服务的分布式RAM提供同步写入。写地址解码器也可配有定时电路,为分布式RAM的写入排序。 [0012] 参照附图与以下详细说明本发明的其他功能、其性质及各种优点将更明显。 附图说明
[0013] 图1是根据本发明的说明性电路的简化示意框图。
[0014] 图2是根据本发明的另一说明性实施例的简化示意框图。
[0015] 图3是根据本发明的附加说明性电路的简化示意框图。
[0016] 图4是根据本发明的、图3所示内容一部分的说明性实施例的更详细的简化示意框图。
[0017] 图5是根据本发明的、使用图4电路所产生的信号的说明性电路的简化示意框图。 [0018] 图6是根据本发明的、图3或图4所示内容一部分的替代性实施例的简化示意框图。
[0019] 图7是能够根据本发明被使用的电路的说明性实施例的简化示意框图。 [0020] 图8是与图1或图2大致相似的简化示意框图,示出了本发明其他可能功能的说明性实施例。
[0021] 图9是根据图8所示的本发明一方面的另一电路的说明性实施例的简化示意框图。

具体实施方式

[0022] 图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部分是为本发明目的新添的。 [0023] 可以理解图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可为不同值的输入。
[0024] 各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。 [0025] 图1中未示出,但在ALM 10电路中存在的是优选为以类似Lewis等人的参考文献所示任一方式施加到各个3-LUT 20-1至20-8的写解码器输出信号。如Lewis等人参考文献所示使用之外,这些写解码器输出信号优选以该参考文献中所示任一方式生成。本说明书后文中示出并描述了根据本发明的各种可能写解码器的修改。
[0026] 回到读,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的输出端。)
[0027] 如果需要,多路复用器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的写数据输入增强。
[0028] 从前述可看出图1示出了本发明的以下第一方面。在可分裂LUT中,LUT的CRAM单元被分为至少两分区(如,一方面,3-LUT20-1至20-4内的CRAM单元,另一方面,3-LUT20-5至20-8内的CRAM单元)。这些互斥的分区各自具有自己的写入驱动器和写数据输入(由引线110a和110b指示)。各分区也有一写使能线120a或120b。在一种分布式用户RAM运行模式中,仅有单个写使能线被断言(依赖于某地址位的值),一个数据位被写入由断言写使能信号所启用的分区中的一个CRAM单元中。这对应于LUT RAM的最深模式(如,
64*1模式)。在另一用户RAM运行模式中,一个以上写使能线120被断言,且多数据位被写入LUT RAM的一个以上分区中。这对应于存储器的较浅模式(如,32*2模式)。 [0029] 图1也示出了本发明的另一方面。ALM 10的已知电路允许其在有时被称为压缩寄存器模式的模式中运行。该模式中一个寄存器80可被用于寄存ALM的输入信号E或F(或两个寄存器80均可这样使用)。例如,ALM输入信号E0或F1可经多路复用器70a被施加到寄存器80a。同样,ALM输入信号E1或F0可经多路复用器70b被施加到寄存器80b。该功能(附加寄存器反馈路径110)有助于ALM 10在分布式RAM模式中提供低成本的同步写入,如以下详细所述。
[0030] 在图1中,粗线表示由底部寄存器或触发器(FF)80b锁存的、 用于压缩寄存器模式写数据的输入信号F0。通过将FF的输出用作3-LUT 20-5至20-8的写驱动器的输入,可以较少或零附加硬件成本提供写数据寄存器。图1示出了如何配置ALM 10使用一压缩寄存器(80b)来锁存写数据并为该写数据提供同步运行。可以看出,在32*2模式中,两个FF80a和80b可被用于提供输入数据的两个不同位。
[0031] 在图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)输入之一可被用作完整读地址的一部分。
[0032] 参照图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被用作读地址。但是可以理解,这只是设计选择的问题,如果需要,可以颠倒。 [0033] 继续图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提供的存储器的读地址。 [0034] 如上所述,图2示出了如何使用ALM输入E1提供读地址信号。这确保了读地址寄存器靠近LUT执行分布式RAM,并提供两个高速读路径,减少限制,并路由软件以保持读地址靠近分布式RAM。
[0035] 本发明的另一方法为同步写地址提供了较佳写定时,并消除了用户这么做的需要。另外,这是以低成本达成的。图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。
[0036] 由控制信号逻辑电路92使用的信号一般来自器件的全局14和本地13互联资源。所谓交换多路复用器90a、90b和90c因在从逻辑元件输入多路复用器(LEIM)输出和全局信号选择多路复用器输出选择信号应用于电路92中增加信号选择和路由灵活性而众所周知。如LEIM和全局信号多路复用器,多路复用器90一般由图3中未示出的 CRAM可编程控制。
[0037] Lewis等人的参考文献示出了与次信号电路92相似,为LUTRAM模式提供一写地址解码器并为LAB中所有ALM 10/10’提供定时电路(这里是元件142)是有利的。根据本发明,图3示出了LAB范围电路142可从LAB的次信号电路92的输入路由资源获得,包括服务电路92的交换输入多路复用器90。换句话说,写地址解码器和定时电路142的输入信号可来自交换多路复用器90的输出。
[0038] 另外,根据本发明,可为来自交换多路复用器90的写使能和/或写地址信号等电路142的输入提供寄存器140。因而在此实施例中(图3)写解码器142包括同步写使能和写地址信号的大量FF 140或与之联系紧密。写使能可为控制某模式相关大小(如示例所示每ALM1或2位)的单个字写入的单个写使能的形式。或者,可提供多于一个写使能来进一步限定为32*2模式时ALM中每两位提供独立写使能的被写的CRAM组,或使用依赖LUT RAM模式的不同数量地址和写使能位的其他变动。在存储器设计方面的一般电路设计人员可理解这些变动。FF的数据输入被连至供给次信号区92的各种路由结构(包括交换多路复用器90)。(应强调寄存器140为可选。)
[0039] 图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的值不相干。
[0040] 图4所示写解码器包括执行在时钟正相上写的定时电路。(其他实施例可使用时钟的负相。另外,寄存器140a可如一些实施例中写的定时允许这样的级敏锁存器执行。)该定时器电路包括写使能寄存器140a、NAND门152、反相器154、延迟电路156、NAND门160、反相器162以及(可选)延迟电路164(用于预充电信号,如果提供的话(见下文))。反相器162输出的写信号启用行i和列i信号(如Lewis等人参考文献中所示和所述方式使用)以及一个或多个WEi信号。其也禁止可能有的预充电信号。RAM设计中的电路设计人员可以理解适当的定时关系。各行与列配置写信号也或入行与列解码器,使得配置逻辑可写至任何所需地址,如Lewis等人参考文献所述。
[0041] 关于上述生成预充电控制信号的电路,图5示出了如何在LUT电路中使用该信号的示例。图5与上述Lewis等人参考文献所示基本相同,但是附加了预充电晶体管。从Lewis等人参考文献中的已知元件具有200系列的参考标号(尽管图5中的参照数字用意不在与Lewis等人参考文献中的参照数字相关联。)。所述预充电晶体管具有300系列的参考标号。图5中LUT RAM单元220的行列数量为任意的,未必与Lewis等人参考文献或本说明中别处示例所示数量相同。图5示出的数据总线为双轨,但如果与使用的RAM单元组织兼容,也可使用单头总线。
[0042] 预充电晶体管310a和310b连于LUT范围数据总线230a/b的轨道和VCC之间,当如上有关图4所示断言预充电信号时向VCC上拉轨道。同样,预充电晶体管320-0a和320-0b连于行范围数据总线240-0a/b的轨道和VCC之间,当如上有关图4所示断言预充电信号时向VCC上拉轨道。为LUT RAM单元220的各行提供了相似的预充电晶体管320。当然,所有预充电晶体管310和320在预充电信号为非时关闭。
[0043] 图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,取决于数据线的检测。 [0044] 本发明的另一可能方面由图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输入。
[0045] 在上述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的上半部至下半部过程中被交换或扭曲。 [0046] 另一选择是提供不同的多路复用器以允许读上半部和下半部之间位排序不变。这避免了扭曲写列线路的需求。现有多路复用器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写数据路径,配有示出两个模式中信号选择的标签。
[0047] 本发明该部分的相关方面是启用不变的ALM和LUT中各级间输入信号排序的多路复用器。注意在图8中,RA4供给第六LUT多路复用器级,RA5供给第五级,与名称相反。这是为了便于命名信号,因为RA5信号也用于WD1(写数据1),这也便于让引脚与名称有固 定联系(否则在32*2模式中引脚RA4将从F0移至E0)。
[0048] 本发明的另一可选功能涉及写地址的次信号的使用。可能需要避免使用写地址和使能信号的所有次信号,因为这阻止其用于LAB用作分布式存储器时可能需要的其他目的。例如,时钟使能是一般所需的。为了提供这个,可以采用不同方法,将各ALM的一引脚专用于各ALM的写地址或写使能。在有关ALM输入F1的图8中也示出了这个变动。 [0049] 图8也说明了从F1输入至写解码器路径中的触发器(寄存器)480。触发器是可选的,不是本发明必须的。使用图8所示配置(具有和不具有寄存器480)各ALM提供了不同的写地址和控制信号经过F1输入至写解码器(如图3中的142)的相应引脚。图9说明了这一点。一组线484将来自各ALM的写地址信号482连至写解码器142。另外,一些控制信号,如时钟信号,可从控制信号选择逻辑电路提供至写解码器。
[0050] 应注意本技术要求在每个使用该手段连接的ALM上为各写地址和控制信号(如写使能)提供专用输入引脚。因而,这可减少和消除在ALM内部使用触发器80作为读地址和其他目的附加触发器的可能性。
[0051] 另外,需要另一功能来支持此方面。本发明的前述方案(如,与图2有关的)要求当ALM以32*2模式配置时信号RA4被复制。这是因为F0和F1分别直接连于ALM的上下半部中的多路复用最终级60。在32*2模式中,必须使用这两个最终多路复用器60-1和60-2,结果是需要两个引脚输入单个信号。也如图8所示的备用方案通过引入标为附加F1级多路复用器460的最终级F1多路复用器的副本,消除了两个输入传输单个信号的需要。
这使32*2模式中要求的引脚数量减一,并确保在任何模式中读地址不需要F1引脚,使其可用于以上段落所述写地址。
[0052] 注意ALM的上下半部是对称的,且附加硬件既可位于上半部,也可位于下半部,只要保留相对位置。因此,例如,图2示出的附加写数据多路复用器130在下半部,而图8将其放在上半部。
[0053] 可以理解前述仅是本发明原则的示例,本领域技术人员可作出各种修改而不背离本发明的范围与精神。例如,本发明的各方面可按需要被单独使用或以任何组合方式使用。可能的修改的另一示例是LUT中RAM单元的数量可大于或小于本文所示且所述的说明性数量(一个或多个)。同样,LAB中ALM的数量可大于或小于本文所示的说明性数量(一个或多个)。