图1显示Xilinx Virtex-I系列的逻辑单元的两个逻辑片之一;另一个片是和它相同的。单个片包含两个4比特查找表(4-LUT)1.1,1.2,它们具有两个独立的输入组。所以,在一个片中可以实施四个变量的两个独立的功能。两个LUT的输出端通过进位逻辑电路1.3被耦合到第一和第二2∶1复用器1.4和1.5。进位逻辑电路1.3从第一和第二与门1.6,1.7接收另外的输入信号,每个与门从各自的一组输入端接收两个输入信号。用于选择几个查找表的输出的复用器的应用是用于实施更广的逻辑功能的常用方法。这样,映射的随机逻辑功能可以通过附加的逻辑变量被扩展。
对于算术功能,每个逻辑片例如可以实施一个2比特加法器,正如图2所示的。每个LUT 2.1,2.2产生两个比特的部分和。LUT 2.1,2.2的输出连同适当的进位输入信号cin’和cin一起构成XOR门2.33,2.34的输入,它产生和值(每个LUT一个比特)。进位输出信号cout在专用电路2.3中被产生。这样实施的2比特加法器在其和值比特的产生取决于传播的进位信号的意义上是串行的。
图1所示的电路由于具有独立的两组的输入端,因此在实施随机逻辑功能时具有高度灵活性的优点。然而,因为在算术模式只有两个LUT输入端被使用(图2),LUT的利用是低效率的。另一个缺点是对于每个LUT需要两个分开的译码器;如果LUT也被用作为分布存储器块,则每个LUT总共需要两个译码器(分别用于写和读操作)。作为另一个缺点,可以提出,由于是分开的LUT输入组,以及因而需要分开的输入出脚,所以就需要非常多的路由线路(每逻辑片至少2×4路由线路)。这使得需要增加的数目的开关和更大的尺寸的配置存储器。这也导致更高的功率消耗。
在许多算术运算中,若干个输出比特从同一组输入比特产生。在基于LUT的算术函数生成时这个特性的利用将意味着某些LUT的输入可被共享。虽然这潜在地限制在多个随机逻辑功能方面的灵活性,但它同时导致路由资源的相当显著的减小,因为仅仅单个组的输入必须被支持。这对于面向数据路径或DSP的可配置逻辑器件是重要的最佳化方案。这样的方法被使用于Atmel AT40K器件,如图3所示。这里显示的逻辑单元有两个LUT 3.1,3.2,它们具有共享的输入端。两个输出信号是可由复用器3.3,3.4和3.5选择的。2比特加法器的相应的实施方案被显示于图4。它具有第一和第二逻辑单元。第一逻辑单元4.6,4.7,4.8,4.9,4.10根据输入比特a0,b0和进位输入比特cin计算第一输出比特So,和中间进位输出比特cout’。第二逻辑单元4.1,4.2,4.3,4.4,4.5根据输入比特a1,b1和中间进位输出比特cout’计算第二输出比特S1和进位输出比特cout。
图5上显示,用于低功率PGA的逻辑单元的相同方法。图6显示带有这样的逻辑单元的加法器的实施方案。在原理上,两个器件的逻辑单元是类似的,但它们在量化度上不同:在Atmel AT40K中的逻辑单元具有两个LUT 3.1,3.2,而LP-FPGA的逻辑单元具有四个LUT 5.1,5.2,5.3,5.4。与Virtex的逻辑单元不同,两个器件使用3输入端的LUT。这些LUT类似于Xilinx方法,可被连接到复用器5.5,使得能实施更广泛的功能(这里:是四个输入端)。3-LUT的使用改进在算术模式下LUT的利用(完全的LUT被使用来存储正确的数据)。在两种逻辑单元结构中,加法运算以串行方式被产生:来自LUT之一的输出信号(这里是:cout’)是用于另一个LUT的输入。而且,没有专用电路被使用于产生进位。
这个方法的优点在于,单个LUT更好地被利用于算术函数,即,没有浪费资源。而且,由于所应用的输入共享技术,只需要较少的路由资源,从而需要较小的配置存储器。然而,缺点是:即使LUT的输入被共享,对于每个LUT也需要分开的译码器(LUT译码器通常被实施为一个只选择一个LUT输出的复用器树)。
在逻辑单元中共享LUT输入的相同的概念可被应用于可重新配置的计算超高速缓存结构(RCCA)。这个方法在Kim H.-S.,Somani A.K.,Tyagi Ak.,”A Reconfigurable Multi-function Computing CacheArchitecture(可重新配置的多功能计算超高速缓存结构)”,8th ACMInternationa;Symposium on FPGAs,Monterey,Febr.2000中被被描述。这个结构示意地显示于图7。然而,与传统的LUT实施方案不同,RCCA使用与存储器类似的方式实施的LUT。这意味着,一个地址译码器被使用来选择多比特输出字,而不是只是单个比特。在RCCA中,随机逻辑功能以与传统的基于LUT的结构中相同的方式被实施。RCCA逻辑单元的每16单元存储器列7.1-7.6存储任意的逻辑功能的输出。因为输入组在所有的存储器列之间被共享,因此根据相同的输入组产生多比特输出。
RCCA中算术函数的实施看起来有一点不同。通过进位传播的更重要的比特对于不太重要的比特的依赖性的问题在进位选择加法器中被解决。RCCA多输出LUT8.1-8.6存储对于等于“0”和“1”的进位信号的算术函数的真值表。正确的输出的选择是通过复用器8.7,8.8,8.9使用来自先前的级(RCCA块)的进位输入信号cin而完成的(见图8)。虽然算术函数的产生在这种方式下是非常快速的,但也非常昂贵的,因为需要许多存储器单元存储用于控制信号的两个数值(例如,进位信号)的真值表数值。
这个方法的优点在于,单个译码器可被用于多输出LUT。由于单个LUT的像存储器那样的实施方案,该器件具有紧凑的布局。它提供快速产生的算术函数,这是由于所产生的结果的几个比特通过使用选择机制同时被产生。然而,这是昂贵的解决方案,因为需要标准解决方案的存储器比特的数目的三倍(如图3到6所示)。对于粗略功能(例如,大于2比特操作数),这个方法是成本-低效的。另一个缺点是,多输出LUT的相当大的部分可能是无用的,如果被映射的随机逻辑功能不能利用输入共享性质。
图9示意地显示加法器的倒相性质。图9A显示具有输入端a,b,cin和输出端S,cout的全加法器FA。图9B显示这个全加法器等价于一个其所有的输入信号以及输出信号是倒相的全加法器。因此:
S(a,b,cin)=S(
a,
b,
cin) (1)
cout(a,b,cin)=cout(
a,
b,
cin) (2)
重要的规则是:二的补码二进制加法的真值表对于输入之一是逆对称的(见图10中的表)。这意味着,在附加真值表的一半中的信息是冗余的,因为它可以根据另一半的信息通过使用非常简单的变换而被产生的。
在1比特加法的情形下,任意输入可被选择为进位输入信号。在新的真值表中,对于输入(a和b)的所有的可能的组合和对于cin=”0”,输出信号的数值(和值和进位输出)被存储起来。如果cin=”1”,对于产生输出比特所必要的变换如下:
1.把输入操作数(a和b)的所有的比特求反。
2.从对于新的(已变换的)输入的真值表中读出输出。
3.把读出的输出比特求反。
对于1比特加法,这个性质可按以下的方法被证明。
S=abcin (3)
S(
a,
b,cin=0)=ab (5)
S(
a,
b,cin=0)=
ab (6)
S(a,b,cin=1)=
S(
a,
b,cin=0) (7)
同样地,这个倒相性质可应用于n比特加法。
二进制加法运算的所述的性质可被直接利用于基于LUT的计算逻辑单元。在按照本发明的可配置的器件中,LUT存储n比特加法的真值表的一半是足够的。LUT可以是单输出的LUT(在产生每个LUT一个比特的情形下)或多输出的LUT(在产生几个输出比特的情形下)。LUT内容反映对于进位输入信号的选择的极化而被编码的输出比特的数值(例如,进位输入=”0”)。对于这个选择的极化(这里称为进位输入信号的参考极化),LUT按传统的LUT那样起作用:输入比特(加法操作数)的组合决定LUT地址(根据此LUT地址读出输出。
如果进位输入信号具有与参考极化相逆向的极化,则LUT地址和LUT输出值必须被变换。为了实施这个变换,单个两输入端的XOR门被连接到LUT的每个输入端和每个输出端。XOR信号之一是进位输入信号。如果这个信号等于“1”,则XOR门把LUT地址信号和LUT输出的原先的极化颠倒过来。
图11显示按照本发明的可重新配置的器件的逻辑单元的第一实施例。所显示的可重新配置的逻辑器件包括带有查找表1.1(LUT)的逻辑单元、用于即使地址信号的输入端in1、和用于提供二进制输出信号的输出端out1。逻辑单元还包括用于接收控制信号的控制输入端ctrl。输入端in1通过EXOR门11.2被耦合,以用于响应在控制输入端ctrl处的控制信号和在输入端in1处的输入信号而提供地址信号给LUT 11.1。逻辑单元具有另一个EXOR门11.3,以用于响应LUT 11.1的输出信号和在控制输入端ctrl处的控制信号而提供修正的输出信号out’。逻辑单元具有另一个地址输入端in2,它通过另一个EXOR门11.4被耦合到LUT 11.1的另一个输入端。
优选地,对于n比特加法的进位输出信号在一个独立的电路中被产生,例如在Zimmermann R.的”Computer Arithmetic:Principles,Architectures,and VLSI Design(计算机算术:原理,结构,和超大规模集成电路设计)”,Leeture notes,Integrated SystemsLaboratory,Swiss Federal Institute of Technology,Zurich,March,1999中描述的那样。这确保在关键路径上的进位信号以非常快速的方式被产生(专用电路的延时小于LUT的延时)。而且,对于进位信号的专用电路的使用也导致配置存储器尺寸的减小,因为反映进位输出信号值的存储器比特不必被存储在LUT中。
本发明可以以多种方式被应用。首先,因为加法是最基本的算术运算,所给出的技术可被使用于基于LUT的FPGA,以便改进它们的性能和减小配置存储器的尺寸。同样地,LUT的输入的数目可被减小,由此,也达到功率消耗的减小。它也可被使用于实施其他的算术运算,诸如减法(几乎是直接地实施)和乘法。下面,给出可能的实施例的简短的说明。
本发明对于粗的量化度结构的应用是特别有利的。为了说明,图12上显示具有四个基本输入端in0,in2,in3,in4的逻辑单元的一个实施例,这些输入端通过EXOR门12.3,12.4,12.5,12.6被耦合到LUT 12.1,12.2。LUT 12.1,12.2的输出端通过另外的EXOR门12.7,12.8被耦合到逻辑单元的输出端out1,out2。它还具有两个额外的输入端C和SL。输入端C提供第二输入信号到EXOR门12.3,12.4,12.5,12.6,12.7,12.8。另一个额外输入端SL提供选择信号到复用器12.9,后者选择输出端out1,out2中之一的输出信号作为它的输出信号。虽然图12显示具有4个输入端和2个输出端的LUT的逻辑单元,本发明同样可应用于任意数目的比特的情形。图12的逻辑单元适合于实施具有5个输入信号的任何逻辑运算,其中:
out1=
CF1(in0,in1,in2,in3)C
F1(
in0,
in1,
in2,
in3)
out2=
CF2(in0,in1,in2,in3)C
F2(
in0,
in1,
in2,
in3)
另一个逻辑函数out3也可通过使用选择信号SL作为另一个输入信号而是可能的,其中:
out3=
SL·out1+SL·
out2
同样地,可以按这样来产生k+1个变量中的每个输出函数(out3)以作为k个变量中的第一(out1)和第二函数(out2)以及作为第k+1个变量的选择信号(SL)。
out3(in0,....,C,SL)=
SL·out1(in0,...,C)+SL·
out2(in0,...,C),
一类函数out1,out2可以按次序被写为k-1个变量的第一和第二原函数(F1,F2)以及作为第k个变量的变量C的函数。
out1=
CF1(in0,...,ink-2)C
F1(
in0,....,
ink-2),
和
out2=
CF2(in0,...,ink-2)C
F2(
in0,...,
ink-2)
图13显示具有这样的逻辑单元的加法器的实施方案。其中相应于图12的那些的部分在其中用具有相同的第二部分的参考数字(例如,12.3和13.3)表示。对宗量大于1比特的加法运算产生一个多比特输出,这可以用一组具有已连接的输入端的1输出比特LUT来实现。然而,优选地这可以用如参照图7和8描述的一个多输出LUT来实现。这具有前面提到的多个重要的优点。在按照本发明的可重新配置的器件中,然而,该多输出LUT可以是相当明显地小于在图6上给出的那样:因为按照本发明的可重新配置的逻辑器件使用了加法的倒相性质,在LUT 13.1,13.2中的存储器单元的数目可被减小2。存储器单元的数目甚至进一步减小,因为在这个实施例中,进位输出cout是通过专用电路13.9被计算的。
一个附加的2∶1复用器可被使用来允许实施更广泛的随机逻辑功能的可能性。按照本发明的电路(如图12,13所示)比起以前描述的已知的方法,具有以下的优点。
比起参照图7和8描述的方法,本发明的可配置的逻辑电路只需要相对较少数目的配置比特。另外,按照如图12和13所示的、本发明的实施例的电路具有所有输出的平衡延时。这可以阻止不必要的信号瞬时过程,因此减小功率消耗。潜在地,这里显示的多输出LUT也可被利用于随机逻辑,因为许多随机逻辑功能也根据相同的组的输入产生多比特输出。虽然XOR门在信号处理时产生延时,这已被证明是可忽略的。本发明的电路需要较少的路由资源,由此,可以以较小的面积来实现。这也能够减小功率消耗。所节省的面积可代之以被使用于存储器。
在细的量化度的结构(单元的海洋)中(它们通常对于随机逻辑而被最佳化的),一个或几个小的LUT(例如,2-LUT)被使用于一个逻辑单元。为了实施算术运算(例如,加法),多个逻辑单元或在逻辑单元内的多个LUT必须被连接在一起。如果在LUT(例如,2-LUT)的每个输入端和输出端上包括XOR门,则单个LUT的功能可被扩展来实施算术运算。在传统的方法中,这样的LUT需要至少3个输入端,因此将有23个存储器单元;本发明的方案使得LUT的尺寸能够减小2倍,并且以非常低的花费在输入端和输出端上放置额外的XOR门。图14显示这一点,例如用于带有进位的1比特加法。这里,相应于图11的那些的部分用具有相同的第二部分(例如,11.1和14.1)的参考数字表示。应当指出,在可配置的逻辑结构中,通常每个信号有两个输出:一个直接输出和一个被登录的(registed)输出。这两个出脚之一可被用作为对于进位输出信号所需要的附加输出端。
在按照本发明的可重新配置的器件中,图15A上示意地显示的多输出LUT可以以几个方式被实施,它们的例子被显示于图15B和15C。
图15A所示的多输出LUT 15.1具有单个输入端15.2和多个输出端15.3。
在图15B所示的实施例中,多输出LUT 15.4由第一15.6和第二15.7 LUT组成,它们分别具有单个输出端15.8和15.9。LTS 15.6和15.7的输入端都被耦合到输入端15.5。
多输出LUT 15.10的第二实施例显示于图15C。它包括第一和第二列存储器单元15.11和15.12。借助于译码器(复用器)15.13,第一列15.11的一个输出端被加以选择,以便提供在输出端15.15处的输出信号,以及第二列15.12的一个输出端被加以选择,以便提供在输出端15.16处的输出信号。译码器被输入信号15.17控制。
多输出LUT 15.18的第三实施例显示于图15D。它包括译码器15.19,用于把输入信号译码成分别对于第一和第二存储器列15.20和15.21的地址。存储器列15.20和15.21中的每个提供一个输出信号15.23。
表7-1显示在所述的现有技术逻辑单元与根据所建议的方法的逻辑单元之间的比较结果。第一列(类型)是指逻辑单元的类型。由于逻辑单元在它们的量化度方面是不同的,使用任意类型的逻辑单元实施2比特加法器所需要的逻辑单元的数目(NL)被取为参考。根据这个数目,计算由在表上给出的参量描述的总的花费。
第三列显示可被实施的逻辑功能的类型(TLF)。表示式k×(mI+nO)在这里意味着:k个逻辑功能的最大值可以用m个输入和n个输出的最大值来实施。当然,不必使用每个输入和输出。第四列显示对于2比特加法器实施方案所需要的配置比特的数目(NC)。LUT译码器的复杂性(CLUT)被包括在第五列。对于实施算术函数的路由复杂性(RC)被显示于第六列。路由复杂性被表示为对于输入和输出信号所需要的线路的最小数目。
对于总的花费的度量TC是:
TC=NL(NC+CLUT)+RC
表1:按照本发明的可重新配置的逻辑电路与已知的可重新配置的逻辑电路的比较。
类型 |
NL |
TLF |
NC |
CLUT |
RC |
PERF |
Xilinx/Virtex-I |
1 |
2×(4I+10)或1×(5I+10) |
2×24=32 |
2×(16∶1) |
I:[(2×4)+1]+0:3T=12 |
中等 |
AtmelAT40K |
2 |
2×(4I+10)或1×(5I+10) |
4×23=32 |
4×(8∶1) |
I:2×3+0:3T=9 |
低 |
LP-FPGA |
1 |
1×(4I+10)+2×(2I+20)或1×(5I+30) |
4×23=32 |
4×(8∶1) |
I:5+0:3T=8 |
中等 |
RCCA |
1 |
1×(4I+60)或1×(5I+30) |
1×24×6=96 |
1×(4∶16) |
I:4+10:3T=8 |
高 |
INV |
1 |
1×(4I+20)或1×(5I+10) |
2×24=32 |
1×(4∶16) |
I:4+10:3T=8 |
高 |
从这个比较可以看到,按照本发明的可重新配置的器件通过中等数目的配置比特可达到相对较高的性能。一方面,其性能是可与快速RCCA类型的可重新配置的电路的性能相比较的。另一方面,所需要的配置比特的数目是可与例如LP-FPGA类型的可重新配置的电路的配置比特数目相比较。按照本发明的可重新配置的逻辑器件特别适用于在乘法器阵列中的应用。例如,图16显示一个乘法器阵列,它用于把两个数a0,...,an-1和b0,...,bm-1相乘。该阵列是具有“垂直”进位传播的进位保存乘法器的形式。这样的阵列是优选的,因为它比具有相对较慢的“水平”进位传播的进位脉动乘法器更快。虽然几个实施方案是可能的,但优选地,所谓的Braun阵列被使用于对未加正负号的数进行相乘,以及修正的Pezaris阵列乘法器被用于二的补码数。在这种情形下,n=m=4,但本领域技术人员将会看到,这样的阵列可以针对n和m的任何组合来被构建。该乘法器阵列提供输出数P0,...,Pn+m-1。
如图16所示,阵列由乘法单元16.i.j组成。这些单元之一被详细地显示于图17。乘法单元包括与门N和全加法器FA。与门N计算ai和bj的乘积,以及全加法器FA把其结果附加到从乘法单元16.i-1.j+1得到的部分积PPi-1,j+1上。响应于此,全加法器提供另一个部分积PPi.j和进位输出信号cout。对于乘法单元16.0.j,在阵列的第一行,输入部分积P-1,j+1=”0”。输出比特P0,...,P3等于由乘法单元16.i.0输出的部分积PPi.j。输出比特P4到P6分别由乘法单元16.4.0-16.4.2输出的部分积提供。最后的输出比特P7等于乘法单元16.4.2的进位输出比特。在一个n×m乘法器的情形下,输出比特P0,...,Pn-1由乘法单元16.0.0到16.n-1.0的部分积提供。比特Pn,...,Pn+m-2分别由乘法单元16.n.0到16.n.m-2提供,以及比特Pn+m-1由乘法单元16.n.m-1的cout输出提供。
在实际的实施方案中,乘法器阵列可被如下地简化。由”*”表示的乘法器单元16.0.0,...,16.0.3和16.1.3,...,16.3.3可被简化为一个与门,因为在由这些单元接收的信号cin中部分积PP和进位都是“0”。所以,单元16.0.j仅仅必须计算乘积a0与bj,以及单元16.j.3仅仅必须计算乘积ai与b3。
而且,两个单元16.i.j和16.i+1.j可以由如图18示意地显示的、按照本发明的可重新配置的逻辑器件来实施。这里所示的可重新配置的逻辑器件包括与门单元18.1、第一可控制的倒相门18.2、查找表18.3、第二可控制的倒相门18.4、以及用于进位计算的分开的电路18.5。在图18上显示的可重新配置的逻辑器件计算三比特数cout|PPi+1.j|PPi.j作为二比特数PPi,j+1|PPi-1.j+1、二比特数ai+1.bj|ai.bj、和一比特数cin的和值。
与门单元18.1包括用于计算乘积ai.bj和ai+1.bj的与门。由单元18.2、18.3和18.4形成的加法器随后计算比特PPi.j和PPi+1.j。用于计算比特cout的电路18.5被详细地显示于图19。该电路分别包括第一和第二XOR门19.1和19.3以及乘法器19.2和19.4。
乘法器阵列可以用按照本发明的可重新配置的单元的常规阵列以几种方式被实施。图20和21显示具有偶数行的乘法器阵列的第一和第二实施方案。
在这其中每个可重新配置的单元20.i.j被表示为具有第一和第二部分的矩形。如果只有一部分打上阴影线,则只使用可重新配置的单元中的一个查找表。如果两个部分都打上阴影线,则使用整个查找表。例如,每个中心单元20.2.1实施如图18所示的两个乘法器单元。在可重新配置的单元20.3.1的最后一行,对于每个乘法器单元16.4.0、16.4.1和16.4.2,只分别使用查找表的一部分。在最后一行,第一乘法器阵列单元16.4.0把它的ai输入设置为“0”。它的cout输出被耦合到下一个乘法器阵列单元16.4.1的ai输入端。同样地,最后一行的每个另外的乘法器阵列单元16.4.j把它的ai输入端耦合到在该行中在先的阵列单元16.4.j-1。最后的乘法器单元16.4.2的cout输出提供相乘结果的最后的输出比特P7。
优选地,可重新配置的单元的与门单元18.1包括至少4个与门。这使得有可能在可重新配置的单元20.1.j的一部分中实施第一行的乘法器单元16.0.j和第二行的乘法器单元16.1.j-1。
这被显示于图22。在图22上,单元22.n相应于图18上的单元18.n。图22显示在一个可重新配置的单元20.1.1中乘法器单元16.0.0、16.0.1和16.0.2的实施方案。与图18相比较,一个附加的与门22.1.1被使用来计算部分积a0.b1。另一个加法器22.13把它的一个输入端连接到逻辑“1”,这样,输入信号a0被未修改地传送到可控制的倒相门22.2。查找表22.3的第一列22.3.1被使用来计算乘积P1。第二列22.3.2被使用来实施与运算a0.b0,给出结果P0。查找表的内容在下表中给出。
B1 |
A1 |
B0 |
A0 |
列1 |
列2 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
图21显示乘法阵列的另一个实施方案。图21的实施例与图20的不同处在于,乘法器单元16.4.0与最后的行中的单元16.4/1在一个可重新配置的单元21.3.1中被组合。与图20的实施例不同,乘法器单元16.4.0的输出端cout被连接到单元16.4.1的输入端cin。乘法器单元16.4.1的ain输入被连接到单元16.3.1的输出端cout。乘法器单元16.4.2以与图20的相应的单元相同的方式被连接。
同样地,具有奇数行的乘法器阵列可以如图23和24示意地显示的那样被实施。图23显示一个在其中最后的行中每个可重新配置的单元23.4.j包括一个乘法器单元的实施例。图24显示一个在其中两个乘法器单元以类似于图21上对于单元21.3.1所显示的方式被组合在单元24.4.1中的实施例。
图25所示的、本发明的可重新配置的逻辑单元的实施例很容易使得改变功能Add(相加)和Substract(相减)成为可能。
类似于图11所示的逻辑单元,它具有查找表25.1、输入端a0,a1(用于接收输入信号)、和输出端o0,o1(用于提供输出信号)。它还具有控制输入端crtl(用于接收控制信号)、以及可控制的倒相门25.2.1,25.2.2(用于响应于控制信号crtl和在输入端a0,a1处的输入信号而提供地址信号给LUT 25.1)。它还具有可控制的倒相门25.3.1,25.3.2,用于响应于LUT 25.1的输出信号和控制信号ctrl而提供修正的输出信号o0,o1。
除了图11所示的实施例以外,它具有模式控制输入端ADD/SUB,用于选择ADD(相减)或SUBTRACT(相减)模式。图25所示的实施例还具有组合单元25.5(这里是EXOR门),用于产生修正的控制信号ctrl2。图25的实施例还具有可控制的倒相门25.2.3,25.1.4,用于响应于修正的控制信号crtl和在输入端b0,b1处的输入信号而提供地址信号给LUT 25.1。如图25所示,控制信号ctrl由第一复用器25.6产生,第一复用器25.6具有被耦合到在信号输入端cin处的进位的第一输入端、和被耦合到配置存储器单元M的第二输入端。复用器25.6还具有被连接到配置存储器单元的控制输入端。组合单元25.5接收控制信号ctrl作为第一输入,以及具有被耦合到第二复用器25.7的第二输入端。第二复用器25.7被第一配置单元所控制以便在
ADD/SUB模式控制信号和来自配置存储器的固定值之间进行选择。