乘法逻辑电路 【技术领域】
本发明大体上涉及数字电子器件,更具体地,涉及一种用于将两个二进制数相乘的乘法逻辑电路和一种用于相乘和累加先前的乘法的乘法-累加逻辑电路。
背景技术
为许多应用所采用的是,将n个输入加在一起的模块。此模块的输出是高输入数字的二进制表示。这种被称为并行计数器的模块(L.Dadda.Some Schemes for Parallel Multipliers,Alta Freq 34:349~356(1956);E.E.Swartzlander Jr.,Parallel Counters,IEEE Trans.Comput.C-22:1021~1024(1973))被用在执行二进制乘法的电路中。并行计数器还有其他应用,例如,多数选举解码器或RSA编码器和解码器。重要的是,实现获得最大速度的并行计数器。将并行计数器用在乘法中是公知的(L.Dadda,On Parallel DigitalMultipliers,Alta Freq 45:574~580(1976)。
全加器是具有三位输入和两位输出的特殊的并行计数器。目前对于更高、即具有更大数目的输入的并行计数器的实现是在使用全加器的基础上实现的(C.C.Foster和F.D.Stockton,CountingResponders in an Associative Memory,IEEE Trans.Comput.C-20:1580~1583(1971))。通常,输出的最低有效位是在这种实现中所产生的最快的位,而其他位通常较慢。
以下符号用于逻辑操作:
-异或;
∨-或;
∧-与;
-非。
并行计数器的有效现有技术设计(Foster和Stockton)使用了全加器。以FA表示的全加器是图1所示地三位输入并行计数器。其具有三个输入X1、X2、X3和两个输出S和C。输出的逻辑表达式为:
S=X1X2X3,
C=(X1∧X2)∨(X1∧X3)∨(X2∧X3)。
以HA表示的半加器是图1所示的两位输入并行计数器。其具有两个输入X1、X2和两个输出S和C。输出的逻辑表达式为:
S=X1X2,
C=X1∧X2。
在图2中描述了现有技术对七位并行计数器的实现。
乘法是基本操作。给定两个n位二进制数
An-12n-1+An-22n-2+…+A12+A0和Bn-12n-1+Bn-22n-2+…+B12+B0,
它们的乘积
P2n-122n-1+P2n-222n-2+…+P12+P0
可能具有2n位。Wallace发明了第一种乘法器的快速体系结构,现在称为Wallace树乘法器(Wallace,C.S.,A Suggestion for a FastMultiplier,IEEE Trans.Electron.Comput.EC-13:14~17(1964))。Dadda研究了乘法器中的位特性(L.Dadda,Some Schemes for ParallelMultipliers,Alta Freq 34:349~356(1956))。他构造了多种乘法器,大部分乘法器都遵循Dadda方案。
Dadda乘法器利用图3所示的方案。如果输入有8位,则64个并行与门产生如图4所示的阵列。为了清晰,省略与门符号∧,从而Ai∧Bj变为AiBj。图4的剩余部分描述了包括全加器(FA)和半加器(HA)的阵列缩减(array reduction)。由半加器或全加器将相同列的位相加。在矩形中是一些输入到全加器中的位群。在椭圆中是一些输入到半加器中的位群。阵列缩减的结果是在最后一步只要将两个二进制数相加。例如,可以通过条件加法器或超前进位加法器等快速加法方案之一,将这两个数相加。
英国专利申请No.0019287.2和0101961.1、美国专利申请No.09/637,532、09/759,954和09/917,257以及国际专利申请No.GB01/03415和GB01/04455,所有这些申请的内容这里一并作为参考,这些申请均公开了在阵列缩减之前对阵列进行修改或变形的技术。阵列变形得到了将阵列深度缩减到大于2n-1而小于2n-1的数目的好处,其中n是整数。这种对阵列最大深度的缩减使得在阵列缩减步骤中能够有效使用并行计数器。
【发明内容】
本发明的目的是提供一种改进的乘法逻辑电路和一种改进的乘法-累加逻辑电路,在其中,提高了逻辑电路的运算速度。
本发明实现了在阵列缩减步骤中、对最大长度并行计数器的使用可以显著地减少现有技术的阵列缩减逻辑中所出现的连线(wiring)延迟。但是,本发明人也意识到最大长度并行计数器的输出经历了不同的门延迟。因而,依照本发明,除了在阵列缩减步骤中、使用最大长度并行计数器之外,将最大长度并行计数器的输出输入到具有不对称延迟的缩减逻辑电路,以改善并行计数器电路的输出的不同延迟的效果。
这样,依照本发明,将由最大长度并行计数器逻辑产生、经历了较短延迟的输出输入到在产生输出时将引起较长延迟的缩减逻辑输入。将在并行计数器逻辑中经历了较长延迟的、最大长度并行计数器逻辑的输出输入到在产生输出时经历较短延迟的不对称缩减逻辑。这样,以这种方式平衡了通过并行计数器逻辑和另外的缩减逻辑的整体延迟,并通过另外的缩减逻辑补偿通过并行计数器逻辑的延迟差。
依照本发明,在阵列缩减步骤中,至少使用一个最大并行计数器,通过接收一列中、阵列的所有数值,在一个维度上缩减阵列。
在本发明的优选实施例中,通过进行未审英国申请No.0019287.2和0101961.1、美国专利申请No.09/637,532、09/759,954和09/917,257以及国际专利申请No.GB01/0341 5和GB01/04455中所公开的阵列变形,对阵列进行修改。阵列变形提供了将最大列的输入数目缩减为大于2n-1而小于2n-1的数目的好处,其中n是整数。例如,对于两个16位数的乘法,阵列变形过程将阵列最大深度在任何给定的列中均缩减到15位,从而使15位输入、4位输出并行计数器能够应用在第一缩减步骤中,将阵列深度缩减到最大4位。对于32位输入,阵列变形步骤将阵列最大高度在任何给定的列中均缩减到31位,从而使31位输入、5位输出并行计数器能够用以提供缩减了深度的阵列,其中,缩减了的深度为最大5位。
在本发明的实施例中,具有不对称延迟的缩减逻辑包括全加器、半加器和4到2压缩器的任意组合。在来自并行计数器的输出的数目为4个或更多时,最好使用4到2压缩器来产生2位输出。
【附图说明】
现在,将参照附图,对本发明的实施例进行描述,其中:
图1是依照现有技术的全加器和半加器的示意图;
图2是依照现有技术利用全加器的并行计数器的示意图;
图3是针对乘法、现有技术中所应用的步骤的图解;
图4是图3所示的过程更为详细的示意图;
图5是依照本发明的实施例描述了所产生的变形阵列的示意图;
图6是依照本发明的实施例描述了通过最大长度并行计数器缩减之后的阵列的示意图;
图7是示出了门延迟的全加器逻辑的示意图;
图8是依照本发明的实施例、由全加器构造的4到2压缩器的示意图;
图9是依照本发明的实施例、使用4到2压缩器进行第二阶段阵列缩减的逻辑电路的示意图;以及
图10是4到2压缩器逻辑的图解。
【具体实施方式】
在图5所示的实施例中,依照未审英国专利申请No.0019287.2和0101961.1、美国专利申请No.09/637,532、09/759,954和09/917,257以及国际专利申请No.GB01/03415和GB01/04455中所公开的过程,形成将两个16位二进制数A和B相乘的过程中所产生的阵列,作为变形阵列,这里将上述专利申请的内容一并作为参考。此阵列相对于图4所示的现有技术的阵列的优点在于每列中的最大位数较小。在现有技术中,对于16位乘法,每列具有16位。图5的阵列中有4列具有15位。
如图6所示,缩减阵列的第一缩减步骤包括利用并行计数器将每列从最大15位缩减到最大4位。尽管最好使用上述未审申请中所公开的并行计数器,但可以使用任何传统的并行计数器将15位的最大列缩减为4位。
来自并行计数器的4位经历了不同的门延迟。通常,2个输出经历4个门延迟,而另2个输出经历5个门延迟。但是,针对阵列缩减,使用最大长度并行计数器形式的单一逻辑电路极大地减少了电路之间的连线。因而,使用最大长度并行计数器将带来极大的连线收益。
图7是描述了电路的不对称特性的全加器的逻辑图。输入A和B可以包括来自最大长度并行计数器、经历了4个门延迟的输出,因而,与作为来自最大长度并行计数器、经历了5个门延迟的对电路的输入C相比,相对领先。在本示例中的每个门延迟均表示为作为最慢的门的异或门延迟。与门和或门认为具有0.5的相对延迟。图7描述了累积门延迟,正如可以看到的那样,输出和S,具有累积门延迟6,也输出进位C,具有累积门延迟6。从而,可以将全加器用作第二级阵列缩减的一部分,以便补偿第一级阵列缩减中最大长度并行计数器的输出的相对门延迟。
图8是两个相邻4到2压缩器的示意性逻辑图,每个4到2压缩器包括2个全加器。示出了相对门延迟,以描述在本发明的实施例中用作第二级逻辑缩减的逻辑的不对称属性。
图9描述了4到2压缩器链,该4到2压缩器在最大长度并行计数器所进行的第一级缩减之后,用于从缩减阵列接收4列二进制位中的每一个。针对每列的4到2压缩器的输出包括2位。然后,可用利用传统的加法逻辑电路将这2位相加,产生由2个n位二进制数相乘所构成的输出二进制数。
图10是依照本发明的实施例的4到2压缩器的逻辑图。
从而,在本发明的这个实施例中,依照申请人早期的发明性阵列修改技术的阵列变形,产生和修改阵列。分两个阶段缩减阵列。第一阶段建立在以下认识上:如果将单一的并行计数器应用于阵列每一列的缩减,可以减少乘法逻辑电路的连线。但是,这样得到经历了不同门延迟的输出。因此,本发明通过使用第二级阵列缩减来改善此问题,其中,第二级阵列缩减使用其输入经历相对不同的门延迟的逻辑电路,即,该逻辑电路对输入产生不对称的延迟。以这种方式,由于使用最大长度并行计数器所引起的相对延迟并不在另外的缩减步骤中引起延迟。
因此,由于其减少了连线,此乘法逻辑电路非常高效,由于其平衡了逻辑电路中的门延迟,提高了速度。
尽管已经参照特定的实施例,对本发明进行了描述,本领域的技术人员应当清楚的是,在本发明的精神和范围内存在多种修改。
例如,尽管已经参照其中在阵列缩减之间对阵列进行变形的特定示例,在上面对本发明进行了描述,但本发明也可以应用于未变形阵列的缩减。例如,可以利用任何现有技术产生阵列。诸如与门、与非门、或门或者或非门等任何用于进行位的逻辑组合的逻辑门操作均可以用来形成阵列。还可以通过利用Booth编码来产生阵列。
在本发明中,任何现有技术的并行计数器逻辑电路均可以用于第一级阵列缩减。可以针对任意列数,而不必针对所有列使用并行计数器。例如,对于具有三位的列,可以使用全加器。也可以针对一些列使用全加器而不是并行计数器。通过使用并行计数器进行缩减的列数是一种设计选择。但是,所建议的是,对于阵列中任何具有多于3位的列,最好使用并行计数器。
依照本发明,可以通过任何在产生输出时使输入经历了不同延迟的适当的逻辑来实现第二阵列缩减步骤。
尽管在本发明中可以使用任何形式的并行计数器,在优选实施例中,使用了英国申请No.0019287.2和0101961.1、美国专利申请No.09/637,532、09/759,954和09/917,257以及国际专利申请No.GB01/03415和GB01/04455中所公开的并行计数器。
在本发明中,为了产生乘法逻辑电路的输出,针对最后将两个二进制数相加的步骤,可以采用任何传统方法。
尽管已经参照特定的乘法逻辑电路,对本发明进行了描述,本发明也应用于包括乘法-累加逻辑电路(可以看作乘法逻辑电路的特例)在内的任何执行乘法的逻辑电路。在乘法-累加逻辑电路中实现运算A×B+C,其中C是先前乘法的累加。该乘法-累加逻辑电路针对乘法逻辑电路,通过如上所述产生阵列A×B,进行计算。作为C的二进制位,在阵列中增加额外的行。由于是先前的累加,C可以具有比A或B多得多的位数。然后,对此增广阵列进行如上所述的阵列缩减。
本发明包括任何用于设计和制造本发明上述乘法逻辑电路的方法。本发明还包括表现本发明乘法逻辑电路特色的代码或数据。同样,本发明包括用于建模本发明上述乘法逻辑电路的功能性的代码。
在本领域中,众所周知的是,可以利用通过执行来建模逻辑电路的功能性的代码,在计算机系统上设计逻辑电路。这种设计程序的结果是限定了逻辑的特征和功能性的代码。这样,对于逻辑设计师和构建师,限定了逻辑的特征和功能性的代码是可用的。用于设计的代码或用于限定逻辑电路的特征或功能的代码可以在任何合适的载体介质上得到,例如:存储介质:软盘、硬盘、CD-ROM、磁带装置或固态存储装置;或者瞬时介质:例如,任何类型的信号:电信号、光信号、微波信号、声信号或磁信号(例如,在通信网络上负载的信号)。
从而,可以将限定了标准单元的特征或功能的代码提供给逻辑电路制造商,并可以使用这些代码,利用公知的制造技术在半导体材料上制造逻辑电路。
在本发明的一个实施例中,设计过程包括使用标准单元设置过程对标准单元的使用。设计师可以实现设计程序,以便设计标准单元,该标准单元或者实现乘法逻辑电路的全部逻辑功能或者是部分功能。设计过程包括设计、构建和测试硅上的标准单元,并形成表现了已经成功测试过的标准单元的特征的数据库。表现了标准单元设计的特征的数据库包含了可以用在对使用标准单元的逻辑电路所进行的设计中的信息。这样,数据库中的数据或代码保留有限定了标准单元的模型的逻辑电路的特征。数据可以包括几何、功率和定时信息,以及标准单元所执行的功能的模型。这样,标准单元设计的供应商可以向逻辑电路设计师提供标准单元代码库,使逻辑电路的设计更为容易,利用标准单元库的功能性,执行特定的功能。逻辑电路设计师可以在计算机建模实现中使用标准单元代码库,利用标准单元代码来汇编逻辑电路,即乘法逻辑电路。因而,设计师实现了设计应用,利用代码构建了想要的逻辑电路的模型。根据标准单元的组合,所得到的数据限定了逻辑电路,即乘法逻辑电路的特征。这样,芯片制造商可以使用此数据设计和构建利用了逻辑电路设计师所产生的模型数据的芯片。
本发明包括对实现依照本发明的功能的标准单元的设计,即,对实现了本发明的功能的标准单元的特征进行限定的模型数据的产生。本发明也包括利用标准单元数据库、设计本发明的乘法逻辑电路的方法,即,利用计算机程序产生对本发明的乘法逻辑电路进行了建模的数据的步骤。本发明也包括利用设计数据、制造乘法逻辑电路的过程。
尽管已经参照特定的实施例,在上面对本发明进行了描述,本领域的技术人员应当清楚的是,在本发明的精神和范围内存在多种修改。