可重新配置的逻辑器件的制作方法

文档序号:7524762阅读:216来源:国知局
专利名称:可重新配置的逻辑器件的制作方法
技术领域
本发明涉及可配置的逻辑器件,该可配置的逻辑器件包括具有查找表(LUT)的逻辑单元、用于接收地址信号的输入端和用于提供输出信号的输出端。
在可(重新)配置的逻辑器件(例如,现场可编程门阵列(FPGA))中,基本逻辑单元(逻辑元)的功能以及它们之间的互联结构是可编程的。可编程性是通过使用可编程的交换机得到的,可编程交换机的状态被保持在一个配置存储器中。可编程交换机通过确定在线轨之间的连接或它的不存在而控制路由资源。它们也通过控制内部复用器(正确的信号选择)而规定逻辑单元的功能。此外,该配置存储器单元的一部分可被用作为查找表的数据存储单元和用户存储器。
查找表(LUT)的使用是在可配置的逻辑器件中实施逻辑功能的最通常的方法。这样的方法被使用在大多数市场上销售的FPGA器件中,例如,Xilinx(例如,XC4000,XC5000,Virtex-I,Virtex-II系列),Altera(例如,FLEX系列),Atmel(AT40K系列),Actel。查找表的广泛使用是由于它们的灵活性一个k输入的查找表可以实施k变量的任何的逻辑功能。这样的LUT需要2k个存储器单元,它们存储对于输入比特的所有可能的组合的逻辑功能输出(像在真值表中)。因为LUT中存储器单元的内容可被改变,所以存储的真实值以及由此而产生的逻辑功能,可以容易地用另一个来代替。因为可配置的逻辑器件的可编程性质,所以可以把高的灵活性呈现给用户。用户使用这样器件,就可以快速定出模型、在系统中实行以后的更新/专门化、或提升系统性能,这些功能都可以与软件可编程解决方案相比拟。
成本-效率(根据面积,性能,功率和代码尺寸)是在设计可配置的逻辑器件时最重要的问题之一,特别是在嵌入的前后关联(context)中使用的那些器件(芯片上的系统)的情况下。可配置器件虽然非常灵活,但是显示多个缺点,特别是与ASIC相比较时。它们体积更大(由于大的配置存储器和大量的互联资源),速度更慢(由于互联和逻辑的相当大的延时)和消耗更多的功率(由于在可编程的线路上大的负荷)。在动态可重新配置的逻辑器件中(其中配置前后关联在运行时可被改变),效率的一个附加度量是重新配置时间。因为算法的下一个阶段的执行直接取决于它,这个时间应当是短的。然而,由于必须重新装载一个很大的配置存储器,因此这常常做不到。大多数提到的成本直接或间接地受到配置存储器的尺寸的影响。因为这个事实,配置存储器尺寸的最小化是在可(重新)配置的逻辑器件的设计中主要关心的问题之一。
这个问题在以下的情形(但不限于这种情形)中可能是关键的-可配置逻辑器件具有基于查找表的逻辑单元;因为每个器件包含许多逻辑单元,以及LUT尺寸随输入数目按指数地增加,所以需要非常多的存储器比特来支持该功能。
-可配置逻辑核心与其他的IP块被嵌入到同一个芯片上。在这种情形下,可提供的硅面积和功率消耗将由芯片封装类型以及常常也由用于便携式设备的有限的电池寿命来确定,这些可能是限制因素。
-可配置逻辑核心与多种配置前后关联一起工作(动态可重新配置逻辑核心)。在这种情形下,所需要的配置存储器的尺寸比起在单个前后关联器件的情形下的存储器尺寸大约大n倍;其中n是配置前后关联的数目。
在可配置逻辑器件中的附加问题是希望能同时支持实施随机逻辑和算术功能,以及常常也实施小的存储器。通常,随机逻辑从较粗的量化度(granularity)(较大的LUT)得到好处,以使得逻辑深度最小化。另一方面,在算术电路中,由于所得到的结果的最高位对于该结果的较低位的依赖性,所以LUT尺寸优选地是较小的。
因此,限制配置存储器的尺寸以及同时保证支持各种功能的足够的灵活性的要求是相对立的,特别是大于基于LUT的器件来说。因此找到正确的平衡仍旧是一个挑战。
基于LUT的可配置逻辑器件代表在现有技术的可重新配置结构内占优势的一个组。下面,主要考虑与逻辑器件的结构和实施方案有关的方面,因为这些强烈地决定可配置逻辑器件的成本-效率。描述将主要集中在不同的逻辑单元对于算术功能的可应用性,给出代表性例子;正如前面讨论的,基于LUT逻辑单元对于随机功能的实施方案的使用是相当直截了当的。
正如开头段落中描述的,本发明的一个目的是提供一种可重新配置的逻辑器件,其中算术运算可以用相对较小的数目的配置比特来完成,以及该可重新配置的逻辑器件还具有相对较高的速度。
按照本发明,可重新配置的逻辑器件包括带有查找表(LUT)的逻辑单元、用于接收地址信号的输入端和用于提供输出信号的输出端,其特征在于,-控制输入端(crtl),用于接收控制信号,-可控制的倒相门(11.2),用于响应于控制信号(crtl)和输入信号(in1)而提供地址信号给LUT(11.1),-可控制的倒相门(11.3),用于响应于LUT(11.1)的输出信号和控制信号而提供修正的输出信号。
可控制的倒相门在这里被规定为这样的一个门如果控制信号具有第一逻辑值,则它发送未改变的输入信号,或者如果控制信号具有第二逻辑值,则它发送倒相形式的输入信号。结果,为了简单起见,可控制的倒相门被显示为一个具有用于接收控制信号的一个输入端和具有接收可被控制地倒相的信号的第二输入端的EXOR门的形式。然而,其他实施方案也是可能的,例如,一个复用器,具有用于接收控制信号的选择输入端、用于接收未改变的信号的第一输入端和用于接收倒相信号的第二输入端。
除了用于接收地址信号的输入端,可重新配置的逻辑器件可以具有更多的用于接收地址信号的这种输入端。附加输入端可直接被耦合到LUT。替换地,一个或多个(或每个)附加输入端可以通过一个可控制的倒相门被耦合到LUT,该可控制的倒相门响应于控制信号和在所述附加输入端处接收的地址信号而提供修正的地址信号。同样地,LUT可以具有一个以上的输出端。附加输出端也可被耦合到可控制的倒相门,以用于响应于在LUT的所述输出端处的输出信号和控制信号而提供修正的输出信号。
按照本发明的方案是基于利用用于有效地实施可配置的器件的LUT的加法器的倒相性质。通过利用这个倒相性质,可重新配置的逻辑器件可以用较小的数目的配置比特被实施。对于实施可控制的倒相门所需要的附加逻辑功能,可以只用小的数目的门来实现。因此,由可控制的倒相器引入的附加延时是相对较小的,这样,可重新配置的器件仍具有相对较高的速度。另外,功率消耗被减小,因为可重新配置的逻辑器件可具有相对较中等数目的互联。
按照本发明的可重新配置的逻辑器件的实施例的特征在于一个这样的复用器,该复用器由选择信号来控制,以便从至少第一和第二修正的输出信号中选择作为逻辑单元的输出信号。复用器在逻辑单元中的这个应用允许更宽的逻辑功能的实施。按照香农(Shannon)扩展理论,任何n+1-输入的逻辑函数可被描述为F=S·F1+S·F1例如,S是逻辑单元的附加输入信号(复用控制信号),以及F1和F1是在LUT中实施的n个输入的函数。
参照附图更详细地描述这些和其他方面。其中

图1显示Xilinx Virtex-I系列的可重新配置的器件的逻辑块的例子,图2显示图1的逻辑块中加法器的实施方案,图3显示Atmel器件的逻辑块的例子,图4显示图3的逻辑块中的加法器的实施方案,图5显示低功率PGA逻辑单元,图6显示图5的逻辑单元中加法器的实施方案,图7显示从现有技术已知的另一个逻辑单元,图8显示图7的逻辑单元中加法器的实施方案,图9显示加法器的倒相性质,图10还以表格的形式显示这个性质,图11显示按照本发明的逻辑单元的第一实施例,图12显示按照本发明的逻辑单元的第二实施例,图13显示在第二实施例中的加法器的实施方案,图14显示在第一实施例中的加法器的实施方案,图15A示意地显示多输出端的LUT,图15B显示图15A的多输出端LUT的第一实施方案,图15C显示图15A的多输出端LUT的第二实施方案,图15D显示图15A的多输出端LUT的第三实施方案,
图16显示用于把两个数相乘的乘法器阵列,图17更详细地显示图16的单元,图18显示在按照本发明的可重新配置的逻辑器件中这两个单元的实施方案,图19更详细地显示图18的部分,图20和21显示在按照本发明的可重新配置的单元的常规的阵列中实施具有偶数的行的乘法器阵列的两个可能性,图22更详细地显示一个单元的结构,图23和24显示在按照本发明的可重新配置的单元的常规的阵列中实施具有奇数的行的乘法器阵列的两个可能性,图25显示按照本发明的可重新配置的单元的另一个实施例。
图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(可重新配置的多功能计算超高速缓存结构)”,8thACMInternationa;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=abcin (3)cin=0⇒S=a⊕b=S(a,b,cin=0)cin=1⇒S=a⊕b‾=S(a,b,cin=1)---(4)]]>S(a,b,cin=0)=ab (5)S(a,b,cin=0)=ab (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 ArithmeticPrinciples,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)CF1(in0,in1,in2,in3)out2=CF2(in0,in1,in2,in3)CF2(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)CF1(in0,....,ink-2),和out2=CF2(in0,...,ink-2)CF2(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按照本发明的可重新配置的逻辑电路与已知的可重新配置的逻辑电路的比较。
从这个比较可以看到,按照本发明的可重新配置的器件通过中等数目的配置比特可达到相对较高的性能。一方面,其性能是可与快速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。查找表的内容在下表中给出。
图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模式控制信号和来自配置存储器的固定值之间进行选择。
权利要求
1.可重新配置的逻辑器件,包括带有查找表(LUT)的逻辑单元、用于接收地址信号的输入端和用于提供输出信号的输出端,其特征在于。-控制输入端(crtl),用于接收控制信号,-可控制的倒相门(11.2),用于响应于控制信号(crtl)和输入信号(in1)而提供地址信号给LUT(11.1),-可控制的倒相门(11.3),用于响应于LUT(11.1)的输出信号和控制信号而提供修正的输出信号。
2.按照权利要求1的可重新配置的逻辑器件,其特征在于,一个或多个用于接收地址信号的另外的输入端(in2)。
3.按照权利要求2的可重新配置的逻辑器件,其特征在于,一个或多个附加输入端(in1,in2,in3)通过可控制的倒相门(12.3,12.4,12.5,12.6)而被耦合到LUT(12.1),该可控制的倒相门响应于控制信号和在所述附加输入端(in1,in2,in3)处接收的地址信号而提供地址信号给LUT(12.1)。
4.按照权利要求1的可重新配置的逻辑器件,其特征在于,LUT(12.1)具有被耦合到EXOR门(12.8)的一个或多个附加输出端(O2),用于响应于在LUT(12.2)的所述输出端处的输出信号和控制信号而提供修正的输出信号。
5.按照权利要求1的可重新配置的逻辑器件,其特征在于,用于n比特加法的进位输出信号在独立的电路(14.5)中产生。
6.按照权利要求1的可重新配置的逻辑器件,其特征在于,LUT(12.1,12.2)被实施为一个多输出LUT。
7.按照权利要求3的可重新配置的逻辑器件,其特征在于,复用器(12.9)被选择信号(SL)控制,以便至少从第一和第二修正输出信号中选择作为逻辑单元的输出信号。
8.包括由按照前述权利要求之一的可重新配置的逻辑器件形成的多个乘法单元(16.i.j)的乘法阵列,该乘法单元(16.i.j)还包括具有至少一个与门的与门单元(18.1),用于计算第一个数(a)的输入比特(ai)与第二个数(b)的输入比特(bj)的乘积,其中可重新配置的逻辑器件(18.2,18.3,18.4)计算这个乘积(ai,bj)与输入部分积(PPi-1.j+1)的和值。
9.按照前面权利要求的乘法阵列,其特征在于,至少两个乘法单元(16.1.0和16.2.0)被组合在可重新配置的逻辑器件中,该可重新配置的逻辑器件计算n+1比特数(cout|PPi+1.j|PPi.j),以作为n比特数(PPi.j+1|PPi-1.j+1),其比特是由前面的乘法单元得到的部分积;通过把第一输入信号的n比特与第二信号的输入比特相乘而得到的n比特数(ai+1.bj|ai.bj);以及一比特进位信号(cin)的和值。
全文摘要
按照本发明的可重新配置的逻辑器件包括查找表(LUT)(11.1)的逻辑单元,它具有用于接收地址信号的输入端(in1)和用于提供输出信号的输出端(out)。可重新配置的逻辑器件的特征在于一个控制输入端(crt1),用于接收控制信号;一个可控制的倒相门(11.2),用于响应于控制信号(crt1)和输入信号(in1)提供地址信号到LUT(11.1);和一个可控制的倒相门(11.3),用于响应于LUT的输出信号和控制信号提供修正的输出信号。按照本发明的可重新配置的逻辑器件可以高速度运行,以及同时具有相对较适度的配置存储器。
文档编号H03K19/173GK1462507SQ02801674
公开日2003年12月17日 申请日期2002年5月15日 优先权日2001年5月16日
发明者K·莱藤-诺瓦克 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1