正则符号数字乘法器的制作方法

文档序号:6566909阅读:273来源:国知局
专利名称:正则符号数字乘法器的制作方法
技术领域
本发明涉及一种乘法器,具体涉及一种用于将输入数据与多个常 数相乘的乘法器。
背景技术
在多种数字信号处理应用中,将输入数据与多个常数相乘是必要的。例如,在有限脉冲响应(FIR)滤波器或快速傅立叶变换(FFT) 处理器的情况下,将输入数据与常系数相乘是必要的。将FIR滤波器 和FFT处理器用于多种数字信号处理的应用中,例如无线通信应用。因为执行乘法的计算量大,已知通过使用正则符号数字(CSD) 乘法器表示系数来执行所需要的计算。这允许通过移位(shift)操作 和加法运算来执行所需要的乘法。如果一个数是bob山2…b^的形式, 则认为该数为CSD格式,其中针对i-O、 1、2、…N-l,每个bi取值O、 +1、 -l之一,以及其中没有两个连续的bi为非零值。文献 "Implementation of Orthogonal Frequency Division Multiplexing Modem Using Radix-N Pipeline Fast Fourier Transform (FFT) Processor", Oh等,Jpn. J. Appl. Phys. Vol. 42 (2003) pp. 1-6 公开了一种用于CSD编码的乘法器的实现的硬件结构。通过并联的一 组右移元件将输入信号施加到交换网络中。然后,交换网络基于所需 乘法常数操作,以便将右移输入施加到一组输出多路复用器中。输出 多路复用器由选择信号所控制,以允许顺序输出处理后的数据。当所需乘法常数的数量增加时,这个结构变得复杂。具体地,当 所需乘法常数的数量增加时,交换网络的设计变复杂,同时每个输出 多路复用器的大小也随着所需乘法常数的数量的增加而增大。这个结构还具有缺点因为在累加输出值之前丢掉了低阶位,所 以该结构导致了相对大的舍位误差。 发明内容根据本发明,提供了一种用于将输入数据值与CSD形式的所选常数值相乘的乘法器,其中,所选常数值由位对组成,该乘法器包括多个多路复用器,其中每个所述多路复用器都由所选常数值的相 应位对所控制,以及每个所述多路复用器都具有多个输入,连接每个 多路复用器以接收输入数据值、输入数据值的负数、以及所述输入上 的所有零值,根据所选常数值的相应的位对的值来控制每个所述多路 复用器,以便输出输入数据值、输入数据值的负数、或所有零值;多个可变移位块,连接每个可变移位块以接收来自所述多路复用 器中的相应一个的输入,以及根据所选常数值的相应的位对的值来适 配每个可变移位块,以便将所述可变移位块接收到的输入移位第一位 移值或第二位移值,其中第一位移值和第二位移值相差1;以及组合电路,用于接收来自多个移位块的输出,以及用于对来自多 个移位块的输出进行组合,并采用另外的位移(bit shift)以便形成等 于输入数据值与所选常数值相乘的结果的输出值。这具有优点允许CSD编码乘法器以可接受的舍位误差等级在硬 件上有效实现。


图1是示出了根据本发明的乘法器的通用形式的示意方框图。图2是更具体地示出了根据本发明的用于将数据与8位常数相乘 的乘法器的通用形式的示意方框图。图3是更具体地示出了根据本发明的用于将数据与12位常数相 乘的乘法器的通用形式的示意方框图。图4是示出了根据本发明的用于将数据与8位常数相乘的第一乘 法器的示意方框图。图5是示出了根据本发明的用于将数据与8位常数相乘的第二乘 法器的示意方框图。 图6是示出了根据本发明的用于将数据与8位常数相乘的第三乘 法器的示意方框图。图7是示出了根据本发明的用于将数据与8位常数相乘的第四乘 法器的示意方框图。
具体实施方式
图1示出了根据本发明的乘法器10的通用形式。众所周知的是, 正则符号数字(CSD)乘法器的功能是将连续的输入数据值与一个或 更多个预定常数值相乘,其中该输入数据值是二进制格式,而该常数 值是CSD格式。换言之,输入数据值是以do山d2…dM.i形式,其中针 对i=0、 1、 2、 ...、 M-l,每个di取0或+1值之一,而常数值是以 bob山2、…bN.!形式,其中针对i-0、 1、 2、…、N-l,每个bi取值0、 +1、 -l之一,其中没有两个连续的bi为非零值。因此,CSD乘法器必须能够接收输入数据值,并将该输入数据值 与预定常数值中所选择的一个相乘,然后将结果作为输出值提供。该乘法的结果是do山d2…dM-!x bob山2、 ...bN-!,以及作为惯例,乘法器IO通过适当的加法和移位操作来计算这个结果。在图1中,在数据线12上接收输入数据值。在该输入数据值是m 位值的情况下,数据线12是m位线。将在数据线12上所接收到的输 入数据值施加到"个多路复用器14Q、 14,、…、14^中每个的相应第 一输入。第二输入线16并行传送m个零值,并将这些零值施加给多路复用器14q、 ..... 14^中的相应第二输入。此外,将在数据线12上所接收到的输入数据值施加给倒相器18,以便产生输入数据值的二补码,并将所产生的输入数据值的二补码版 本在倒相线20上施加到多路复用器14q、 14i、 ...、 14^的相应第三输入。多路夏用器14q、 14i、 ...、 14^由第一控制线22上的控制信号所 控制。如上面所提到的,存在"个多路复用器14Q、 14!、…、14n小 并且这是在每个CSD格式的常数值都具有2"位的情况下。换言之, 常数值是bob山2、…b2n-山2n.i形式的,其中针对—0、 1、 2、 ...、 2n-l , 每个bj取值O、 +1、 -l之一,并且其中没有两个连续的bi为非零。因此,第一多路复用器14。由此刻所使用的常数值中的头两位bob, 所控制,第二多路复用器14,由此刻所使用的常数值中的第三和第四位b2b3所控制,依此类推,而最后一个多路复用器14^由此刻所使用的常数值的最后两位b^2bw所控制。在此刻所使用的常数值中,可以采用两个连续位为非零,因为这是CSD格式的条件。因此,以第一多路复用器14。为例,第一多路复 用器14。由两位b。b,的组合所控制,并且该组合具有CSD表达的五个 可能值,艮口 0 0、 0 1、 10、 -IO和O-I。如果b(^等于0 0,则控制第一多路复用器14Q,使得该多路复用 器将其第二输入上的值(即所有零值)传到输出。如果bob,等于O 1 或1 0,则控制第一多路复用器14Q,使得该多路复用器将其第一输入 上的值(即输入数据值)传到输出。如果b。b,等于0 -1或-1 0,则控 制第一多路复用器14Q,使得该多路复用器将其第三输入上的值(即 输入数据值的二补码版本)传到输出端。其他的多路复用器由来自此刻所使用的常数值的相应的位对以 相应的方式来控制。将来自多路复用器14Q、 14,、 ...、 14n_,的输出传给相应的可变移位块240、 24,、 ...、 24^,并且该可变移位块240、 24,.....24。.!由第二控制线26上的控制信号所控制。具体地,基于此刻所使用的常数值的头两位b(M来控制第一可变移位块24。,基于此刻所使用的常数值的第三和第四位b2b3来控制第二可变移位块2A,依此类推,而基于倒数第二和最后一位来控制最 后一个可变移位块24^。可变移位块240、 、 ...、 24^可以是右移位器、或左移位器、 或右移位器和左移位器的组合。在任何情况下,可变移位块240、..... 24^的输入都是来自多路复用器14。、 1A、…、14^的相应一个的输出。在每种情况下,都希望可变移位块的输出都应该与输入 数据值与常数值中的适当位对相乘的结果成比例。
该输出的符号由多路复用器的控制所确定,而输出的大小则由可变移位块24所应用的移位的控制所确定。对可变移位块240、 24i、...、 24^中的每个进行控制,使得每个可变移位块应用相应的移位值S0、 S,、 ...Sn.,,以及这些移位值中的每个都可以取第一或第二值(该第一 和第二值相差1),这取决于常数值的适当位对中的非零位是较高有效 位还是较低有效位。因此,考虑可变移位块24。,该可变移位块24c基于位对bob,的值 来对输入数据进行移位。如果较高有效位b。为非零,则该可变移位块 24o不执行任何右移,而只是通过其输入。如果较低有效位bi为非零, 则该可变移位块24。执行1位位置的右移。如果b。和b,都为零,则该 移位器执行右移1位、还是只是通过其输入并不相关,因为如上所述, 该输入将全部由零组成。应注意的是,如这里所描述的,虽然如果较高有效位bo为非零则 该可变移位块24o不执行任何右移,以及如果较低有效位为非零则 执行1位位置的右移,但是重要的是这两个可能的移位值的相对大小 而不是绝对值。因此,例如,如果较高有效位bo为非零,则该可变移 位块24。执行2位位置的右移,而如果较低有效位b,为非零,则执行 3位位置的右移。可选地,如果较高有效位bo为非零,则该可变移位 块24o执行3位位置的左移,而如果较低有效位bi为非零,则执行2 位位置的左移。在每种情况下,较高有效位b。为非零的情况下的位移 比较低有效位b,为非零的情况下的位移更向左1位(少向右1位)。完全相同地应用于其他可变移位块24,、…、24n.lQ然后,将可变移位块24。、 24i、 ...、 24^的输出传到组合电路28, 在组合电路28中将该输出进行组合,然后传到输出线30。组合电路28的功能是将可变移位块24。、 ..... 24^的输出相加,同时应用适合的另外的位移,以便获得正确的最后结果。可变移位块24Q提供了将输入数据与常数值的两个最高有效位相 乘的结果,而可变移位块24,提供了将输入数据与常数值的下两个最 高有效位相乘的结果,以此类推,以及可变移位块24^提供了将输入 数据与常数值的两个最低有效位相乘的结果。因此,可变移位块240
的输出整个必须比可变移位块24,的输出多向左移2位(或少向右移2 位),以此类推,直到可变移位块24o的输出整个比可变移位块24^ 的输出多向左移2 (n-2)位(或者少向右移2 (n-2)位)。这可以通过设置可变移位块24Q、 2+、 ...、 24^的不同的可能移 位值、或者通过将不同移位值施加到可变移位块的输出、或者由这两 个元素的组合来实现。因此,结果是使用相对少的硬件并且可以按照期望来进行控制以 产生所需结果的乘法器。图2是示出了根据本发明的用于将数据与8位常数相乘的乘法器 的通用形式、并例证了组合电路可以如何操作的示意方框图。在图2中,在数据线212上接收乘法器210的输入数据值。该常 数是8位中的每一个,因此将在数据线212上所接收到的输入数据值 施加到4个多路复用器214Q、 214p…、2143中的每个的相应第一输 入。第二输入线216传送所有的零值,并将这些零值施加给多路复用 器214q、 214,、 ...、 2143中的相应第二输入。还将在数据线212上所 接收到的输入数据值施加给倒相器218,以形成输入数据值的二补码, 并通过倒相线220将所产生的输入数据值的二补码版本施加给多路复 用器214q、 214!、 ...、 2143中的相应第三输入。多路复用器214Q、 21^、 ...、 2143由参考图1所描述的控制线(未 示出)上的控制信号所控制。因此,第一多路复用器214o由此刻所使 用的常数值中的头两位b()bi所控制,第二多路复用器214,由此刻所使用的常数值中的第三和第四位b2b3所控制,第三多路复用器2142由此 刻所使用的常数值中的第五和第六位b4b5所控制,第四多路复用器2143由此刻所使用的常数值中的第七和第八位b6b7所控制。如果bob,等于OO,则控制第一多路复用器214。,使得该多路复 用器将其第二输入上的值(即所有零值)传到其输出。如果b(M等于 Ol或lO,则控制第一多路复用器214c),使得该多路复用器将其第一 输入上的值(即输入数据值)传到其输出。如果bobi等于O-l或-1 0, 则控制第一多路复用器214。,使得该多路复用器将其第三输入上的值(即输入数据值的二补码版本)传到其输出。其他的复用器由来自此刻所使用的常数值的相应的位对以相应 的方式来控制。将来自多路复用器214。、 214,、 ...、 2143的输出传给相应的可变 移位224()、 224" ...、 2243,并且该可变移位块224。、 224,、…、2243 由参考图l所描述的控制线(未示出)上的控制信号所控制。具体地,基于此刻所使用的常数值的头两位b(^来控制第一可变 移位块224(),基于此刻所使用的常数值的第三和第四位b2b3来控制第 二可变移位块224p依此类推。可变移位块224c、 224i、 ...、 2243可以是右移位器、或左移位器、 或右移位器和左移位器的组合。将第一和第二可变移位块224o和224,的输出传给第一加法器 232,而将第三和第四可变移位块2242和2243的输出传给第二加法器 234。将第一加法器232的输出传给应用了第一固定移位值的第一固定 移位块236。将第二加法器234的输出传给应用了第二固定移位值的 第二固定移位块238。将第一固定移位块236和第二固定移位块238 的输出传给第三加法器240,并将第三加法器240的输出提供作为输 出线242上的数据输出。然后,对由四个可变移位块224Q、 224!、…、2243和两个固定移 位块236、 238所应用的移位值进行设置,使得第一可变移位块2240 的输出整个比第二可变移位块224,的输出向左多移2位(或向右少移 2位),第二可变移位块22+的输出整个比第三可变移位块2242的输 出向左多移2位(或向右少移2位),以及第三可变移位块2242的输 出整个比第四可变移位块2243的输出向左多移2位(或向右少移2 位)。图3是示出了根据本发明的用于将数据与12位常数相乘的乘法 器的通用形式、并例证了组合电路可以如何在这种情况下操作的示意 方框图。在图3中,在数据线312上接收乘法器310的输入数据值。该常
数是12位中的每一个,因此将在数据线312上所接收到的输入数据值 应用到6个多路复用器314。、 314p ...、 3145中每个的相应第一输入。第二输入线316传送所有的零值,并将这些零值施加给多路复用 器314()、 314,、 ...、 3145中的相应第二输入。还将在数据线312上所 接收到的输入数据值施加给倒相器318,以形成输入数据值的二补码, 并通过倒相线320将所产生的输入数据值的二补码版本施加给多路复 用器314q、 314i、 ...、 3145中的相应第三输入。多路复用器314Q、 314,、 ...、 3145由参考图1所描述的控制线(未 示出)上的控制信号所控制。因此,第一多路复用器314。由此刻所使 用的常数值中的头两位b。l^所控制,第二多路复用器31+由此刻所使用的常数值中的第三和第四位b2b3所控制,第三多路复用器3142由此 刻所使用的常数值中的第五和第六位b4bs所控制,第四多路复用器 3143由此刻所使用的常数值中的第七和第八位b6b7所控制,第五多路 复用器3144由此刻所使用的常数值中的第九和第十位b8b9所控制,第六多路复用器3145由此刻所使用的常数值中的第十一和第十二位 b,obn来控制。如果b(^等于0 0,则控制第一多路复用器314(),使得该多路复 用器将其第二输入上的值(即所有零值)传到其输出。如果b()b,等于 Ol或lO,则控制第一多路复用器314。,使得该多路复用器将其第一 输入上的值(即输入数据值)传到其输出。如果b。bi等于0-l或-1 0, 则控制第一多路复用器314Q,使得该多路复用器将其第三输入上的值 (即输入数据值的二补码版本)传到其输出。其他的复用器由来自此刻所使用的常数值的相应的位对以相应 的方式来控制。将来自多路复用器314Q、 314i、 ...、 3145的输出传给相应的可变 移位块324。、 324,、 ...、 3245,并且该可变移位块324Q、 324,、 ...、 3245由参考图l所描述的控制线(未示出)上的控制信号所控制。具体地,基于此刻所使用的常数值的头两位bcb,来控制第一可变 移位块324。,基于此刻所使用的常数值的第三和第四位b2b3来控制第 二可变移位块324p依此类推。 如上所述,可变移位块324o、 324i、 ...、 3243可以是右移位器、 或左移位器、或右移位器和左移位器的组合。将第一和第二可变移位块324o和324,的输出传给第一加法器 332,而将第三和第四可变移位块3242和3243的输出传给第二加法器 334,将第五和第六可变移位块3244和3245的输出传给第一加法器 336。将第一加法器332的输出传给应用了第一固定移位值的第一固定 移位块338。将第二加法器334的输出传给应用了第二固定移位值的 第二固定移位块340。将第三加法器336的输出传给应用了第三固定 移位值的第三固定移位块342。将第一固定移位块336和第二固定移位块340的输出传给第四加 法器344。将第三固定移位块342和第四加法器344的输出传给第五 加法器346,并将第五加法器346的输出提供作为输出线348上的数 据输出。然后,设置由六个可变移位块324Q、 324,..... 3245和三个固定移位块338、 340、 342所应用的移位值,使得第一可变移位块3240的 输出整个比第二可变移位块324,的输出向左多移2位(或向右少移2 位),第二可变移位块324,的输出整个比第三可变移位块3242的输出 向左多移2位(或向右少移2位),第三可变移位块3242的输出整个 比第四可变移位块3243的输出向左多移2位(或向右少移2位),第 四可变移位块3243的输出整个比第五可变移位块3244的输出向左多 移2位(或向右少移2位),以及第五可变移位块3244的输出整个比 第六可变移位块3245的输出向左多移2位(或向右少移2位)。图4是示出了根据本发明的用于将数据与8位常数相乘的乘法器 的示意方框图。在图4中,在数据线412上接收对乘法器410的输入数据值。该 常数是8位中的每一个,因此将在数据线412上所接收到的输入数据 值施加到4个多路复用器414。、 414,、…、4143中的每个的相应第一 输入。第二输入线416传送所有的零值,并将这些零值施加给多路复用
器4"o、 414,、 ...、 4143中的每个的相应第二输入。还将在数据线412 上所接收到的输入数据值施加给倒相器418,以形成输入数据值的二 补码,并通过倒相线420将所产生的输入数据值的二补码版本施加给 多路夏用器414q、 414、...、4143中的相应第三输入。多路复用器414o、 414,、 ...、 4143由参考图1所描述的控制线(未 示出)上的控制信号所控制。因此,第一多路复用器414o由此刻所使 用的常数值中的头两位b(^所控制,第二多路复用器414!由此刻所使 用的常数值中的第三和第四位b2b3所控制,第三多路复用器4142由此 刻所使用的常数值中的第五和第六位b4b5所控制,第四多路复用器4143由此刻所使用的常数值中的第七和第八位b6b7所控制。如果b(^等于0 0,则控制第一多路复用器414。,使得该多路复 用器将其第二输入上的值(即所有零值)传到其输出。如果bobi等于 Ol或lO,则控制第一多路复用器414c,使得该多路复用器将其第一 输入上的值(即输入数据值)传到其输出。如果b()b,等于0-l或-10, 则控制第一多路复用器414Q,使得该多路复用器将其第三输入上的值 (即输入数据值的二补码版本)传到其输出。其他的复用器由来自此刻所使用的常数值的相应的位对以相应 的方式来控制。将来自多路复用器414Q、 414,、 ...、 4143的输出传给相应的可变 移位424c)、 424i、 ...、 4243,并且该可变移位块424。、 424" ...、 4243 由参考图l所描述的控制线(未示出)上的控制信号所控制。具体地,基于此刻所使用的常数值的头两位b(^来控制第一可变 移位块424。,基于此刻所使用的常数值的第三和第四位b2b3来控制第 二可变移位块424p依此类推。第一可变移位块224o可以不进行移位,或者可以将该数据向右移 l位,第二可变移位块22^可以将该数据向右移2位或3位,第三可 变移位块2242可以不进行移位,或者可以将该数据向右移l位,以及 第四可变移位块2243可以将该数据向右移2位或3位。将第一和第二可变移位块424。和42^的输出传给第一加法器 432,而将第三和第四可变移位块4242和4243的输出传给第二加法器434。不对第一加法器232的输出进行固定移位。将第二加法器434的 输出传给应用了向右移4位的固定移位的固定移位块438。将第一加 法器432和固定移位块438的输出传给第三加法器440,将第三加法 器440的输出提供作为输出线442上的数据输出。然后,如所需要的,将第一可变移位块424。的输出向右移0位或 l位;将第二可变移位块42+的输出向右移2位或3位;将第三可变 移位块4242的输出向右移4位或5位(通过可变移位块4242和固定移 位块438);将第四可变移位块4243的输出向右移6位或7位。这种结构具有比一些传统设备小的舍位误差。然而,根据本发明, 可以进一步减小舍位误差。因此,图5是示出了根据本发明的用于将数据与8位常数相乘的乘法器的示意方框图。在图5中,在数据线512上接收乘法器510的输入数据值。将在 数据线512上所接收到的输入数据值施加到4个多路复用器5140、 51^、…、5143中的每个的相应第一输入。第二输入线516传送所有的零值,并且将在数据线512上接收到 的输入数据值施加给倒相器518,通过倒相线520将倒相器输出施加 给多路复用器5Mo、 514,..... 5143中的相应第三输入。多路复用器51々、51^..... 5143的操作与图4中的多路复用器414Q、 414p ...、 4143完全相同,这里不再进行描述。将多路复用器514Q、 514,、…、5143的输出传给相应的可变移位 块524c)、 524i、 ...、 5243,可变移位块524。、 524!、 ...、 5243的操作原 理与图4中的可变移位块424o、 424,、 ...、 4243完全相同,这里不再 进行描述。然而,在这种情况下,第一可变移位块524。可以没有舍位地将数 据向左移3位或2位,第二可变移位块524,可以没有舍位地将数据向 左移1位,或者可以不进行位移,第三可变移位块5242可以将数据向 右移1位或2位,第四可变移位块5243可以将数据向右移3位或4位。第一可变移位块524o和第二可变移位块524i可以没有舍位地将 然以稍微更复杂的硬件为代价,但还是改进 了设备的精确度。将第一和第二可变移位块524Q和的输出传给第一加法器 532,而将第三和第四可变移位块5242和5243的输出传给第二加法器 534。不对第一加法器532或第二加法器534的输出进行固定移位。将 第一加法器532和第二加法器534的输出传给第三加法器540,将第 三加法器540的输出提供作为输出线542上的数据输出。然后,如所需要的,将第一可变移位块524o的输出向左移3位或 2位;将第二可变移位块524i的输出向左移l位或0位;将第三可变 移位块5242的输出向右移1位或2位;以及将第四可变移位块5243 的输出向右移3位或4位。图6是示出了根据本发明的用于将数据与8位常数相乘的乘法器 的另一个特定形式的示意方框图,此外该乘法器实现了小于图4中所 示的实施例的舍位误差。在图6中,在数据线612上接收对乘法器610的输入数据值。将 在数据线612上所接收到的输入数据值施加到4个多路复用器6140、 61^、 ...、 6143中的每个的相应第一输入。第二输入线616传送所有的零值,还将在数据线612上接收到的 输入数据值施加给倒相器618,通过倒相线620将倒相器输出施加给 多路复用器614()、 61+、…、6143中的相应第三输入。多路复用器614(j、 614,.....6143的操作与图4中的多路复用器414o、 414,.....4143完全相同,这里不再进行描述。将多路复用器614。、 614,、 ...、 6143的输出传给相应的可变移位 块6240、 624" ...、 6243,可变移位块624Q、 624!、 ...、 6243的操作原 理与图4中的可变移位块424o、 42夂、…、4243完全相同,这里不再 进行描述。然而,在这种情况下,第一可变移位块62^可以没有舍位地将数 据向左移3位或2位,第二可变移位块624:可以没有舍位地将数据向 左移1位,或者可以不迸行位移,第三可变移位块6242可以没有舍位 地将数据向右移3位或2位,以及第四可变移位块6243可以没有舍位 地将数据向右移l位,或者可以不进行位移。此外,第一可变移位块624。-6243可以没有舍位地将数据向左移位 的事实虽然以稍微更复杂的硬件为代价,但是改进了设备的精确度。将第一和第二可变移位块624。和624!的输出传给第一加法器 632,而将第三和第四可变移位块6242和6243的输出传给第二加法器 634。不对第一加法器632的输出进行固定移位,而将第二加法器634 的输出施加给应用了右移4位的固定移位块638。将第一加法器632 和固定移位块638的输出传给第三加法器640,将第三加法器640的 输出提供作为输出线642上的数据输出。然后,如所需要的,将第一可变移位块624c的输出向左移3位或 2位;将第二可变移位块624,的输出向左移1位或0位;将第三可变 移位块6242的输出向右移1位或2位(将第三可变移位块6242和固定 移位块638的效用一起考虑);以及将第四可变移位块6243的输出向 右移3位或4位(将第四可变移位块6243和固定移位块638的效用一 起考虑)。此外,以稍微增长的硬件复杂度的代价,还可以使用没有受到舍 位误差影响的结构,因为必须增大输出的位精确度。图7是示出了根 据本发明的用于没有舍位误差地将数据与8位常数相乘的乘法器的另 一个特定形式的示意方框图。在图7中,在数据线712上接收对乘法器710的输入数据值。将 在数据线712上所接收到的输入数据值施加到4个多路复用器7140、 714!、 ...、 7143中的每个的相应第一输入。第二输入线716传送所有的零值,并将在数据线712上接收到的 输入数据值施加给倒相器718,通过倒相线720将倒相器输出施加给 多路复用器7Mo、 71+..... 7143中的相应第三输入。多路复用器714。、 71^.....7143的操作与图4中的多路复用器414Q、 414i、 ...、 4143完全相同,这里不再进行描述。将多路复用器714Q、 71^、 ...、 7143的输出传给相应的可变移位 块724Q、 724i、 ...、 7243,可变移位块724Q、 724,、 ...、 7243的操作原 理与图4中的可变移位块424o、 424!、 ...、 4243完全相同,这里不再 进行描述。然而,在这种情况下,第一可变移位块724o可以没有舍位地将数 据向左移3位或2位,第二可变移位块724,可以没有舍位地将数据向 左移1位,或者可以不进行位移,第三可变移位块7242可以没有舍位 地将数据向左移3位或2位,第四可变移位块7243可以没有舍位地将 数据向左移l位,或者可以不进行位移。将第一和第二可变移位块724。和724,的输出传给第一加法器 732,而将第三和第四可变移位块7242和7243的输出传给第二加法器 734。不对第二加法器734的输出进行固定移位,而将第一加法器732 的输出施加给应用了左移4位的固定移位块736。此外,可变移位块724。-7243和固定移位块736可以没有舍位地将 数据向左移位的事实虽然以稍微更复杂的硬件为代价,但还是改进了 设备的精确度。将第二加法器734和固定移位块736的输出传给第三加法器740, 而将第三加法器740的输出提供作为输出线742上的数据输出。然后,如所需要的,将第一可变移位块724o的输出向左移7位或 6位(将第一可变移位块724o和固定移位块736的效用一起考虑);将 第二可变移位块724i的输出向左移5位或4位(将第二可变移位块724i 和固定移位块736的效用一起考虑);将第三可变移位块7242的输出 向左移3位或2位;以及将第四可变移位块7243的输出向左移1位或 不进行位移。因此,存在所描述的用于将数据与8位常数的任意集合相乘的特 定实施例,并且可以理解的是,相同的原理可以应用于任意长度的常 数。当乘法器要与提前已知的常数集合一起使用时,可以做出一些简 化,因为乘法器可能不需要能够利用可能值中的一些进行操作。具体地,针对由CSD乘法器所支持的整个常数集合,应检査每对
两个连续位(即b^b2。.,)。针对n中的每个值(即在8位常数的情况 下,"=0、 1、 2、 3),可以列出bhb2^的所有值。然后,再次针对" 中的每个值,检查所列出的值以确定是否可以进行对相应的乘法器、 移位器和加法器的任何简化。关于乘法器,上面已经提到了针对两个连续位存在可能的五对 值。可以将这些分成三个子集子集0={0 0};子集1={10, 0 1};子集2={-10, 0-1}。如果所列出b2nb2^的值只是来自上述子集之一,则可以移除相应的乘法器,因为根据子集,所需乘法器输出总是为零 值、或数据输入、或数据输入的二补码。如果所列出的值来自上述子集中的两个,则将相应的乘法器从3: l减少到2: 1,因为绝对不选 择可能的乘法器输入之一。关于可变移位器,可以将针对两个连续位的可能的五对值再次分成三个子集,尽管这些子集与上面所提到的子集不同,即子集0={0 0}; 子集1*={10, -1 0};子集2*={0 1, 0-1}。如果只有子集1*和子集2*之一中的值包含在所列出的值中,则将由位对b2nb2^所控制的移位器最优化为固定移位器,因为只能一直应用一个移位值。如果所列出的值只来自子集o,则可以移除该移位器。然后,关于加法器,如果如上所述地移除移位器,则也可以移除 己经从该移位器接收其输入之一的相应的加法器。因此,描述了可以不需要过多硬件需求地以所需精确度提供输出 的乘法器。
权利要求
1.一种用于将输入数据值与CSD形式的所选常数值相乘的乘法器,所述所选常数值包括多个位对,所述乘法器包括多个多路复用器,其中,所述多路复用器中的每个都由所选常数值中的相应位对所控制,以及所述多路复用器中的每个都具有多个输入,并且被连接成接收输入数据值、输入数据值的负数、以及所述输入上的所有零值,并根据所选常数值中的相应位对中的值来控制每个所述多路复用器,使得每个所述多路复用器输出输入数据值、输入数据值的负数、或所有零值;多个可变移位块,所述多个可变移位块中的每个被连接成接收来自所述多路复用器中的相应一个的输入,以及适配于根据所选常数值中的相应的位对中的值将所述可变移位块所接收到的输入移位第一位移值或第二位移值,其中,所述第一位移值和第二位移值相差1;以及组合电路,用于接收来自所述多个可变移位块的输出,以及用于将来自所述多个可变移位块的输出进行组合,并采用另外的位移以形成等于所述输入数据值与所选常数值相乘的结果的输出值。
2. 如权利要求1所述的乘法器,其中,所述组合电路包括加法 器,被连接成接收来自所述多个可变移位块中的两个的输出;以及固 定移位块,适配用于接收来自所述加法器的输出作为所述固定移位块 的输入,并对所述固定移位块接收到的输入移位固定位移值。
3. 如权利要求1或2所述的乘法器,包括用于所选常数值中的每 个位对的一个多路复用器。
4. 如权利要求1所述的乘法器,还包括至少一个多路复用器,所述多路复用器由所选常数值的相应位对所控制,其中,所述多路复用 器具有至少一个输入,并且被连接成接收输入数据值、输入数据值的负数、以及所述至少一个输入上的所有零值中的一个或更多个,并根 据所选常数值中的相应位对中的值来控制所述多路复用器,使得所述 多路复用器输出所述接收值之一。
5. 如权利要求1或4所述的乘法器,还包括至少一个另外的固定 移位块,被连接成接收来自所述多路复用器的相应一个的输入,并适 配于将所述固定移位块接收到的输入移位相应的固定位移值。
6. 如权利要求1到5之一所述的乘法器,其中,所述可变移位块 的至少一个包括左移位器,所述左移位器用于没有舍位地将所述左移 位器的输入向左移一位或更多位的位置。
7. 如权利要求2到6之一所述的乘法器,其中,所述固定移位块 包括左移位器,所述左移位器用于没有舍位地将所述左移位器的输入 向左移一位或更多位的位置。
8. —种用于将输入数据值与CSD形式的所选常数值相乘的方法, 所述方法包括将所选常数值分成多个位对;基于所选常数值的所述位对中的相应一个的位值来控制多个多路 复用器中的每个;根据所选常数值的所述位对的相应一个中的位值,从所述多个多 路复用器中的每个输出输入数据值、输入数据值的负数、或所有零值;将来自所述多个多路复用器的输出施加于相应的可变移位块;基于所选常数值的所述位对中的相应一个的位值来控制每个可变 移位块,使得所述可变移位块将所述可变移位块接收到的输入移位相 应的第一位移值或相应的第二位移值,其中,所述第一位移值和所述 第二位移值相差l;以及对来自所述多个移位块的输出进行组合并采用另外的位移,以形 成等于输入数据值与所选常数值相乘的结果的输出值。
9. 如权利要求8所述的方法,其中,所述组合步骤包括将来自所 述多个可变移位块中的两个的输出相加,以及将固定位移应用于所述 相加的结果。
全文摘要
一种乘法器能够使输入数据值与CSD形式的所选常数值相乘。所选常数值具有多个位对,并且该乘法器包括多路复用器,每个多路复用器由所选常数值的相应的位对所控制。每个多路复用器都具有多个输入,连接每个多路复用器以接收输入数据值、输入数据值的负数、以及所述输入上的所有零值,并根据所选常数值的相应的位对的值来控制每个多路复用器以便输出输入数据值、输入数据值的负数、或者所有零值。连接每个可变移位块以接收来自所述多路复用器的相应一个的输入,并且根据所选常数值的相应的位对的值,对每个可变移位块进行适配以便将所接收到的输入移位第一位移值或第二位移值,其中,第一位移值和第二位移值相差1。该乘法器还包括组合电路,用于接收来自多个移位块的输出,以及用于对来自多个移位块的输出进行组合,并采用另外的位移以形成等于输入数据值与所选常数值相乘的结果的输出值。
文档编号G06F7/48GK101156130SQ200680010494
公开日2008年4月2日 申请日期2006年3月23日 优先权日2005年3月31日
发明者磊 毕, 濮田雁 申请人:Nxp股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1