CN101156130B - 正则符号数字乘法器 - Google Patents
正则符号数字乘法器 Download PDFInfo
- Publication number
- CN101156130B CN101156130B CN2006800104945A CN200680010494A CN101156130B CN 101156130 B CN101156130 B CN 101156130B CN 2006800104945 A CN2006800104945 A CN 2006800104945A CN 200680010494 A CN200680010494 A CN 200680010494A CN 101156130 B CN101156130 B CN 101156130B
- Authority
- CN
- China
- Prior art keywords
- value
- variable displacement
- output
- input
- constant value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000006073 displacement reaction Methods 0.000 claims description 162
- 230000015572 biosynthetic process Effects 0.000 claims 2
- 238000000034 method Methods 0.000 claims 2
- 230000000295 complement effect Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- LTXREWYXXSTFRX-QGZVFWFLSA-N Linagliptin Chemical compound N=1C=2N(C)C(=O)N(CC=3N=C4C=CC=CC4=C(C)N=3)C(=O)C=2N(CC#CC)C=1N1CCC[C@@H](N)C1 LTXREWYXXSTFRX-QGZVFWFLSA-N 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
- G06F7/5332—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by skipping over strings of zeroes or ones, e.g. using the Booth Algorithm
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
一种乘法器能够使输入数据值与CSD形式的所选常数值相乘。所选常数值具有多个位对,并且该乘法器包括多路复用器,每个多路复用器由所选常数值的相应的位对所控制。每个多路复用器都具有多个输入,连接每个多路复用器以接收输入数据值、输入数据值的负数、以及所述输入上的所有零值,并根据所选常数值的相应的位对的值来控制每个多路复用器以便输出输入数据值、输入数据值的负数、或者所有零值。连接每个可变移位块以接收来自所述多路复用器的相应一个的输入,并且根据所选常数值的相应的位对的值,对每个可变移位块进行适配以便将所接收到的输入移位第一位移值或第二位移值,其中,第一位移值和第二位移值相差1。该乘法器还包括组合电路,用于接收来自多个移位块的输出,以及用于对来自多个移位块的输出进行组合,并采用另外的位移以形成等于输入数据值与所选常数值相乘的结果的输出值。
Description
技术领域
本发明涉及一种乘法器,具体涉及一种用于将输入数据与多个常数相乘的乘法器。
背景技术
在多种数字信号处理应用中,将输入数据与多个常数相乘是必要的。例如,在有限脉冲响应(FIR)滤波器或快速傅立叶变换(FFT)处理器的情况下,将输入数据与常系数相乘是必要的。将FIR滤波器和FFT处理器用于多种数字信号处理的应用中,例如无线通信应用。
因为执行乘法的计算量大,已知通过使用正则符号数字(CSD)乘法器表示系数来执行所需要的计算。这允许通过移位(shift)操作和加法运算来执行所需要的乘法。如果一个数是b0b1b2...bN-1的形式,则认为该数为CSD格式,其中针对i=0、1、2、...N-1,每个bi取值0、+1、-1之一,以及其中没有两个连续的bi为非零值。
文献“Implementation of Orthogonal Frequency DivisionMultiplexing 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格式。换言之,输入数据值是以d0d1d2...dM-1形式,其中针对i=0、1、2、...、M-1,每个di取0或+1值之一,而常数值是以b0b1b2、...bN-1形式,其中针对i=0、1、2、...、N-1,每个bi取值0、+1、-1之一,其中没有两个连续的bi为非零值。
因此,CSD乘法器必须能够接收输入数据值,并将该输入数据值与预定常数值中所选择的一个相乘,然后将结果作为输出值提供。
该乘法的结果是d0d1d2...dM-1×b0b1b2、...bN-1,以及作为惯例,乘法器10通过适当的加法和移位操作来计算这个结果。
在图1中,在数据线12上接收输入数据值。在该输入数据值是m位值的情况下,数据线12是m位线。将在数据线12上所接收到的输入数据值施加到n个多路复用器140、141、...、14n-1中每个的相应第一输入。
第二输入线16并行传送m个零值,并将这些零值施加给多路复用器140、141、...、14n-1中的相应第二输入。
此外,将在数据线12上所接收到的输入数据值施加给倒相器18,以便产生输入数据值的二补码,并将所产生的输入数据值的二补码版本在倒相线20上施加到多路复用器140、141、...、14n-1的相应第三输入。
多路复用器140、141、...、14n-1由第一控制线22上的控制信号所控制。如上面所提到的,存在n个多路复用器140、141、...、14n-1,并且这是在每个CSD格式的常数值都具有2n位的情况下。换言之,常数值是b0b1b2、...b2n-1b2n-1形式的,其中针对i=0、1、2、...、2n-1,每个bi取值0、+1、-1之一,并且其中没有两个连续的bi为非零。
因此,第一多路复用器140由此刻所使用的常数值中的头两位b0b1所控制,第二多路复用器141由此刻所使用的常数值中的第三和第四位b2b3所控制,依此类推,而最后一个多路复用器14n-1由此刻所使用的常数值的最后两位b2n-2b2n-1所控制。
在此刻所使用的常数值中,可以采用两个连续位为非零,因为这是CSD格式的条件。因此,以第一多路复用器140为例,第一多路复用器140由两位b0b1的组合所控制,并且该组合具有CSD表达的五个可能值,即:00、01、10、-10和0-1。
如果b0b1等于00,则控制第一多路复用器140,使得该多路复用器将其第二输入上的值(即所有零值)传到输出。如果b0b1等于01或10,则控制第一多路复用器140,使得该多路复用器将其第一输入上的值(即输入数据值)传到输出。如果b0b1等于0-1或-10,则控制第一多路复用器140,使得该多路复用器将其第三输入上的值(即输入数据值的二补码版本)传到输出端。
其他的多路复用器由来自此刻所使用的常数值的相应的位对以相应的方式来控制。
将来自多路复用器140、141、...、14n-1的输出传给相应的可变移位块240、241、...、24n-1,并且该可变移位块240、241、...、24n-1由第二控制线26上的控制信号所控制。
具体地,基于此刻所使用的常数值的头两位b0b1来控制第一可变移位块240,基于此刻所使用的常数值的第三和第四位b2b3来控制第二可变移位块241,依此类推,而基于倒数第二和最后一位来控制最后一个可变移位块24n-1。
可变移位块240、241、...、24n-1可以是右移位器、或左移位器、或右移位器和左移位器的组合。在任何情况下,可变移位块240、241、...、24n-1的输入都是来自多路复用器140、141、...、14n-1的相应一个的输出。在每种情况下,都希望可变移位块的输出都应该与输入数据值与常数值中的适当位对相乘的结果成比例。
该输出的符号由多路复用器的控制所确定,而输出的大小则由可变移位块24所应用的移位的控制所确定。对可变移位块240、241、...、24n-1中的每个进行控制,使得每个可变移位块应用相应的移位值S0、S1、...Sn-1,以及这些移位值中的每个都可以取第一或第二值(该第一和第二值相差1),这取决于常数值的适当位对中的非零位是较高有效位还是较低有效位。
因此,考虑可变移位块240,该可变移位块240基于位对b0b1的值来对输入数据进行移位。如果较高有效位b0为非零,则该可变移位块240不执行任何右移,而只是通过其输入。如果较低有效位b1为非零,则该可变移位块240执行1位位置的右移。如果b0和b1都为零,则该移位器执行右移1位、还是只是通过其输入并不相关,因为如上所述,该输入将全部由零组成。
应注意的是,如这里所描述的,虽然如果较高有效位b0为非零则该可变移位块240不执行任何右移,以及如果较低有效位b1为非零则执行1位位置的右移,但是重要的是这两个可能的移位值的相对大小而不是绝对值。因此,例如,如果较高有效位b0为非零,则该可变移位块240执行2位位置的右移,而如果较低有效位b1为非零,则执行3位位置的右移。可选地,如果较高有效位b0为非零,则该可变移位块240执行3位位置的左移,而如果较低有效位b1为非零,则执行2位位置的左移。在每种情况下,较高有效位b0为非零的情况下的位移比较低有效位b1为非零的情况下的位移更向左1位(少向右1位)。
完全相同地应用于其他可变移位块241、...、24n-1。
然后,将可变移位块240、241、...、24n-1的输出传到组合电路28,在组合电路28中将该输出进行组合,然后传到输出线30。组合电路28的功能是将可变移位块240、241、...、24n-1的输出相加,同时应用适合的另外的位移,以便获得正确的最后结果。
可变移位块240提供了将输入数据与常数值的两个最高有效位相乘的结果,而可变移位块241提供了将输入数据与常数值的下两个最高有效位相乘的结果,以此类推,以及可变移位块24n-1提供了将输入数据与常数值的两个最低有效位相乘的结果。因此,可变移位块240的输出整个必须比可变移位块241的输出多向左移2位(或少向右移2位),以此类推,直到可变移位块240的输出整个比可变移位块24n-1的输出多向左移2(n-2)位(或者少向右移2(n-2)位)。
这可以通过设置可变移位块240、241、...、24n-1的不同的可能移位值、或者通过将不同移位值施加到可变移位块的输出、或者由这两个元素的组合来实现。
因此,结果是使用相对少的硬件并且可以按照期望来进行控制以产生所需结果的乘法器。
图2是示出了根据本发明的用于将数据与8位常数相乘的乘法器的通用形式、并例证了组合电路可以如何操作的示意方框图。
在图2中,在数据线212上接收乘法器210的输入数据值。该常数是8位中的每一个,因此将在数据线212上所接收到的输入数据值施加到4个多路复用器2140、2141、...、2143中的每个的相应第一输入。
第二输入线216传送所有的零值,并将这些零值施加给多路复用器2140、2141、...、2143中的相应第二输入。还将在数据线212上所接收到的输入数据值施加给倒相器218,以形成输入数据值的二补码,并通过倒相线220将所产生的输入数据值的二补码版本施加给多路复用器2140、2141、...、2143中的相应第三输入。
多路复用器2140、2141、...、2143由参考图1所描述的控制线(未示出)上的控制信号所控制。因此,第一多路复用器2140由此刻所使用的常数值中的头两位b0b1所控制,第二多路复用器2141由此刻所使用的常数值中的第三和第四位b2b3所控制,第三多路复用器2142由此刻所使用的常数值中的第五和第六位b4b5所控制,第四多路复用器2143由此刻所使用的常数值中的第七和第八位b6b7所控制。
如果b0b1等于00,则控制第一多路复用器2140,使得该多路复用器将其第二输入上的值(即所有零值)传到其输出。如果b0b1等于01或10,则控制第一多路复用器2140,使得该多路复用器将其第一输入上的值(即输入数据值)传到其输出。如果b0b1等于0-1或-10,则控制第一多路复用器2140,使得该多路复用器将其第三输入上的值(即输入数据值的二补码版本)传到其输出。
其他的复用器由来自此刻所使用的常数值的相应的位对以相应的方式来控制。
将来自多路复用器2140、2141、...、2143的输出传给相应的可变移位2240、2241、...、2243,并且该可变移位块2240、2241、...、2243由参考图1所描述的控制线(未示出)上的控制信号所控制。
具体地,基于此刻所使用的常数值的头两位b0b1来控制第一可变移位块2240,基于此刻所使用的常数值的第三和第四位b2b3来控制第二可变移位块2241,依此类推。
可变移位块2240、2241、...、2243可以是右移位器、或左移位器、或右移位器和左移位器的组合。
将第一和第二可变移位块2240和2241的输出传给第一加法器232,而将第三和第四可变移位块2242和2243的输出传给第二加法器234。
将第一加法器232的输出传给应用了第一固定移位值的第一固定移位块236。将第二加法器234的输出传给应用了第二固定移位值的第二固定移位块238。将第一固定移位块236和第二固定移位块238的输出传给第三加法器240,并将第三加法器240的输出提供作为输出线242上的数据输出。
然后,对由四个可变移位块2240、2241、...、2243和两个固定移位块236、238所应用的移位值进行设置,使得第一可变移位块2240的输出整个比第二可变移位块2241的输出向左多移2位(或向右少移2位),第二可变移位块2241的输出整个比第三可变移位块2242的输出向左多移2位(或向右少移2位),以及第三可变移位块2242的输出整个比第四可变移位块2243的输出向左多移2位(或向右少移2位)。
图3是示出了根据本发明的用于将数据与12位常数相乘的乘法器的通用形式、并例证了组合电路可以如何在这种情况下操作的示意方框图。
在图3中,在数据线312上接收乘法器310的输入数据值。该常数是12位中的每一个,因此将在数据线312上所接收到的输入数据值应用到6个多路复用器3140、3141、...、3145中每个的相应第一输入。
第二输入线316传送所有的零值,并将这些零值施加给多路复用器3140、3141、...、3145中的相应第二输入。还将在数据线312上所接收到的输入数据值施加给倒相器318,以形成输入数据值的二补码,并通过倒相线320将所产生的输入数据值的二补码版本施加给多路复用器3140、3141、...、3145中的相应第三输入。
多路复用器3140、3141、...、3145由参考图1所描述的控制线(未示出)上的控制信号所控制。因此,第一多路复用器3140由此刻所使用的常数值中的头两位b0b1所控制,第二多路复用器3141由此刻所使用的常数值中的第三和第四位b2b3所控制,第三多路复用器3142由此刻所使用的常数值中的第五和第六位b4b5所控制,第四多路复用器3143由此刻所使用的常数值中的第七和第八位b6b7所控制,第五多路复用器3144由此刻所使用的常数值中的第九和第十位b8b9所控制,第六多路复用器3145由此刻所使用的常数值中的第十一和第十二位b10b11来控制。
如果b0b1等于00,则控制第一多路复用器3140,使得该多路复用器将其第二输入上的值(即所有零值)传到其输出。如果b0b1等于01或10,则控制第一多路复用器3140,使得该多路复用器将其第一输入上的值(即输入数据值)传到其输出。如果b0b1等于0-1或-10,则控制第一多路复用器3140,使得该多路复用器将其第三输入上的值(即输入数据值的二补码版本)传到其输出。
其他的复用器由来自此刻所使用的常数值的相应的位对以相应的方式来控制。
将来自多路复用器3140、3141、...、3145的输出传给相应的可变移位块3240、3241、...、3245,并且该可变移位块3240、3241、...、3245由参考图1所描述的控制线(未示出)上的控制信号所控制。
具体地,基于此刻所使用的常数值的头两位b0b1来控制第一可变移位块3240,基于此刻所使用的常数值的第三和第四位b2b3来控制第二可变移位块3241,依此类推。
如上所述,可变移位块3240、3241、...、3243可以是右移位器、或左移位器、或右移位器和左移位器的组合。
将第一和第二可变移位块3240和3241的输出传给第一加法器332,而将第三和第四可变移位块3242和3243的输出传给第二加法器334,将第五和第六可变移位块3244和3245的输出传给第一加法器336。
将第一加法器332的输出传给应用了第一固定移位值的第一固定移位块338。将第二加法器334的输出传给应用了第二固定移位值的第二固定移位块340。将第三加法器336的输出传给应用了第三固定移位值的第三固定移位块342。
将第一固定移位块336和第二固定移位块340的输出传给第四加法器344。将第三固定移位块342和第四加法器344的输出传给第五加法器346,并将第五加法器346的输出提供作为输出线348上的数据输出。
然后,设置由六个可变移位块3240、3241、...、3245和三个固定移位块338、340、342所应用的移位值,使得第一可变移位块3240的输出整个比第二可变移位块3241的输出向左多移2位(或向右少移2位),第二可变移位块3241的输出整个比第三可变移位块3242的输出向左多移2位(或向右少移2位),第三可变移位块3242的输出整个比第四可变移位块3243的输出向左多移2位(或向右少移2位),第四可变移位块3243的输出整个比第五可变移位块3244的输出向左多移2位(或向右少移2位),以及第五可变移位块3244的输出整个比第六可变移位块3245的输出向左多移2位(或向右少移2位)。
图4是示出了根据本发明的用于将数据与8位常数相乘的乘法器的示意方框图。
在图4中,在数据线412上接收对乘法器410的输入数据值。该常数是8位中的每一个,因此将在数据线412上所接收到的输入数据值施加到4个多路复用器4140、4141、...、4143中的每个的相应第一输入。
第二输入线416传送所有的零值,并将这些零值施加给多路复用器4140、4141、...、4143中的每个的相应第二输入。还将在数据线412上所接收到的输入数据值施加给倒相器418,以形成输入数据值的二补码,并通过倒相线420将所产生的输入数据值的二补码版本施加给多路复用器4140、4141、...、4143中的相应第三输入。
多路复用器4140、4141、...、4143由参考图1所描述的控制线(未示出)上的控制信号所控制。因此,第一多路复用器4140由此刻所使用的常数值中的头两位b0b1所控制,第二多路复用器4141由此刻所使用的常数值中的第三和第四位b2b3所控制,第三多路复用器4142由此刻所使用的常数值中的第五和第六位b4b5所控制,第四多路复用器4143由此刻所使用的常数值中的第七和第八位b6b7所控制。
如果b0b1等于00,则控制第一多路复用器4140,使得该多路复用器将其第二输入上的值(即所有零值)传到其输出。如果b0b1等于01或10,则控制第一多路复用器4140,使得该多路复用器将其第一输入上的值(即输入数据值)传到其输出。如果b0b1等于0-1或-10,则控制第一多路复用器4140,使得该多路复用器将其第三输入上的值(即输入数据值的二补码版本)传到其输出。
其他的复用器由来自此刻所使用的常数值的相应的位对以相应的方式来控制。
将来自多路复用器4140、4141、...、4143的输出传给相应的可变移位4240、4241、...、4243,并且该可变移位块4240、4241、...、4243由参考图1所描述的控制线(未示出)上的控制信号所控制。
具体地,基于此刻所使用的常数值的头两位b0b1来控制第一可变移位块4240,基于此刻所使用的常数值的第三和第四位b2b3来控制第二可变移位块4241,依此类推。
第一可变移位块2240可以不进行移位,或者可以将该数据向右移1位,第二可变移位块2241可以将该数据向右移2位或3位,第三可变移位块2242可以不进行移位,或者可以将该数据向右移1位,以及第四可变移位块2243可以将该数据向右移2位或3位。
将第一和第二可变移位块4240和4241的输出传给第一加法器432,而将第三和第四可变移位块4242和4243的输出传给第二加法器434。
不对第一加法器232的输出进行固定移位。将第二加法器434的输出传给应用了向右移4位的固定移位的固定移位块438。将第一加法器432和固定移位块438的输出传给第三加法器440,将第三加法器440的输出提供作为输出线442上的数据输出。
然后,如所需要的,将第一可变移位块4240的输出向右移0位或1位;将第二可变移位块4241的输出向右移2位或3位;将第三可变移位块4242的输出向右移4位或5位(通过可变移位块4242和固定移位块438);将第四可变移位块4243的输出向右移6位或7位。
这种结构具有比一些传统设备小的舍位误差。然而,根据本发明,可以进一步减小舍位误差。
因此,图5是示出了根据本发明的用于将数据与8位常数相乘的乘法器的示意方框图。
在图5中,在数据线512上接收乘法器510的输入数据值。将在数据线512上所接收到的输入数据值施加到4个多路复用器5140、5141、...、5143中的每个的相应第一输入。
第二输入线516传送所有的零值,并且将在数据线512上接收到的输入数据值施加给倒相器518,通过倒相线520将倒相器输出施加给多路复用器5140、5141、...、5143中的相应第三输入。
多路复用器5140、5141、...、5143的操作与图4中的多路复用器4140、4141、...、4143完全相同,这里不再进行描述。
将多路复用器5140、5141、...、5143的输出传给相应的可变移位块5240、5241、...、5243,可变移位块5240、5241、...、5243的操作原理与图4中的可变移位块4240、4241、...、4243完全相同,这里不再进行描述。
然而,在这种情况下,第一可变移位块5240可以没有舍位地将数据向左移3位或2位,第二可变移位块5241可以没有舍位地将数据向左移1位,或者可以不进行位移,第三可变移位块5242可以将数据向右移1位或2位,第四可变移位块5243可以将数据向右移3位或4位。
第一可变移位块5240和第二可变移位块5241可以没有舍位地将该数据向左移位的事实虽然以稍微更复杂的硬件为代价,但还是改进了设备的精确度。
将第一和第二可变移位块5240和5241的输出传给第一加法器532,而将第三和第四可变移位块5242和5243的输出传给第二加法器534。
不对第一加法器532或第二加法器534的输出进行固定移位。将第一加法器532和第二加法器534的输出传给第三加法器540,将第三加法器540的输出提供作为输出线542上的数据输出。
然后,如所需要的,将第一可变移位块5240的输出向左移3位或2位;将第二可变移位块5241的输出向左移1位或0位;将第三可变移位块5242的输出向右移1位或2位;以及将第四可变移位块5243的输出向右移3位或4位。
图6是示出了根据本发明的用于将数据与8位常数相乘的乘法器的另一个特定形式的示意方框图,此外该乘法器实现了小于图4中所示的实施例的舍位误差。
在图6中,在数据线612上接收对乘法器610的输入数据值。将在数据线612上所接收到的输入数据值施加到4个多路复用器6140、6141、...、6143中的每个的相应第一输入。
第二输入线616传送所有的零值,还将在数据线612上接收到的输入数据值施加给倒相器618,通过倒相线620将倒相器输出施加给多路复用器6140、6141、...、6143中的相应第三输入。
多路复用器6140、6141、...、6143的操作与图4中的多路复用器4140、4141、...、4143完全相同,这里不再进行描述。
将多路复用器6140、6141、...、6143的输出传给相应的可变移位块6240、6241、...、6243,可变移位块6240、6241、...、6243的操作原理与图4中的可变移位块4240、4241、...、4243完全相同,这里不再进行描述。
然而,在这种情况下,第一可变移位块6240可以没有舍位地将数据向左移3位或2位,第二可变移位块6241可以没有舍位地将数据向左移1位,或者可以不进行位移,第三可变移位块6242可以没有舍位地将数据向右移3位或2位,以及第四可变移位块6243可以没有舍位地将数据向右移1位,或者可以不进行位移。
此外,第一可变移位块6240-6243可以没有舍位地将数据向左移位的事实虽然以稍微更复杂的硬件为代价,但是改进了设备的精确度。
将第一和第二可变移位块6240和6241的输出传给第一加法器632,而将第三和第四可变移位块6242和6243的输出传给第二加法器634。
不对第一加法器632的输出进行固定移位,而将第二加法器634的输出施加给应用了右移4位的固定移位块638。将第一加法器632和固定移位块638的输出传给第三加法器640,将第三加法器640的输出提供作为输出线642上的数据输出。
然后,如所需要的,将第一可变移位块6240的输出向左移3位或2位;将第二可变移位块6241的输出向左移1位或0位;将第三可变移位块6242的输出向右移1位或2位(将第三可变移位块6242和固定移位块638的效用一起考虑);以及将第四可变移位块6243的输出向右移3位或4位(将第四可变移位块6243和固定移位块638的效用一起考虑)。
此外,以稍微增长的硬件复杂度的代价,还可以使用没有受到舍位误差影响的结构,因为必须增大输出的位精确度。图7是示出了根据本发明的用于没有舍位误差地将数据与8位常数相乘的乘法器的另一个特定形式的示意方框图。
在图7中,在数据线712上接收对乘法器710的输入数据值。将在数据线712上所接收到的输入数据值施加到4个多路复用器7140、7141、...、7143中的每个的相应第一输入。
第二输入线716传送所有的零值,并将在数据线712上接收到的输入数据值施加给倒相器718,通过倒相线720将倒相器输出施加给多路复用器7140、7141、...、7143中的相应第三输入。
多路复用器7140、7141、...、7143的操作与图4中的多路复用器4140、4141、...、4143完全相同,这里不再进行描述。
将多路复用器7140、7141、...、7143的输出传给相应的可变移位块7240、7241、...、7243,可变移位块7240、7241、...、7243的操作原理与图4中的可变移位块4240、4241、...、4243完全相同,这里不再进行描述。
然而,在这种情况下,第一可变移位块7240可以没有舍位地将数据向左移3位或2位,第二可变移位块7241可以没有舍位地将数据向左移1位,或者可以不进行位移,第三可变移位块7242可以没有舍位地将数据向左移3位或2位,第四可变移位块7243可以没有舍位地将数据向左移1位,或者可以不进行位移。
将第一和第二可变移位块7240和7241的输出传给第一加法器732,而将第三和第四可变移位块7242和7243的输出传给第二加法器734。
不对第二加法器734的输出进行固定移位,而将第一加法器732的输出施加给应用了左移4位的固定移位块736。
此外,可变移位块7240-7243和固定移位块736可以没有舍位地将数据向左移位的事实虽然以稍微更复杂的硬件为代价,但还是改进了设备的精确度。
将第二加法器734和固定移位块736的输出传给第三加法器740,而将第三加法器740的输出提供作为输出线742上的数据输出。
然后,如所需要的,将第一可变移位块7240的输出向左移7位或6位(将第一可变移位块7240和固定移位块736的效用一起考虑);将第二可变移位块7241的输出向左移5位或4位(将第二可变移位块7241和固定移位块736的效用一起考虑);将第三可变移位块7242的输出向左移3位或2位;以及将第四可变移位块7243的输出向左移1位或不进行位移。
因此,存在所描述的用于将数据与8位常数的任意集合相乘的特定实施例,并且可以理解的是,相同的原理可以应用于任意长度的常数。
当乘法器要与提前已知的常数集合一起使用时,可以做出一些简化,因为乘法器可能不需要能够利用可能值中的一些进行操作。
具体地,针对由CSD乘法器所支持的整个常数集合,应检查每对两个连续位(即b2nb2n-1)。针对n中的每个值(即在8位常数的情况下,n=0、1、2、3),可以列出b2nb2n-1的所有值。然后,再次针对n中的每个值,检查所列出的值以确定是否可以进行对相应的乘法器、移位器和加法器的任何简化。
关于乘法器,上面已经提到了针对两个连续位存在可能的五对值。可以将这些分成三个子集:子集0={0 0};子集1={1 0,0 1};子集2={-1 0,0 -1}。如果所列出b2nb2n-1的值只是来自上述子集之一,则可以移除相应的乘法器,因为根据子集,所需乘法器输出总是为零值、或数据输入、或数据输入的二补码。如果所列出的值来自上述子集中的两个,则将相应的乘法器从3∶1减少到2∶1,因为绝对不选择可能的乘法器输入之一。
关于可变移位器,可以将针对两个连续位的可能的五对值再次分成三个子集,尽管这些子集与上面所提到的子集不同,即子集0={0 0};子集1*={1 0,-1 0};子集2*={01,0 -1}。如果只有子集1*和子集2*之一中的值包含在所列出的值中,则将由位对b2nb2n-1所控制的移位器最优化为固定移位器,因为只能一直应用一个移位值。如果所列出的值只来自子集0,则可以移除该移位器。
然后,关于加法器,如果如上所述地移除移位器,则也可以移除已经从该移位器接收其输入之一的相应的加法器。
因此,描述了可以不需要过多硬件需求地以所需精确度提供输出的乘法器。
Claims (4)
1.一种用于将输入数据值与CSD形式的所选常数值相乘的乘法器,所述所选常数值包括多个位对,所述乘法器包括:
并行的多个多路复用器,其中,所述多路复用器中的每个都由所选常数值中的相应位对所控制,以及所述多路复用器中的每个都具有多个输入,并且被连接成接收输入数据值、输入数据值的负数、以及所述输入上的所有零值,并根据所选常数值中的相应位对中的值来控制每个所述多路复用器,使得每个所述多路复用器输出输入数据值、输入数据值的负数、或所有零值;
多个可变移位块,所述多个可变移位块中的每个被连接成接收来自所述并行的多个多路复用器中的相应一个的输出作为输入,以及适配于根据所选常数值中的相应的位对中的值将所述可变移位块所接收到的输入移位第一位移值或第二位移值,其中,所述第一位移值和第二位移值相差1;以及
组合电路,用于接收来自所述多个可变移位块的输出,以及用于将来自所述多个可变移位块的输出进行组合,并采用另外的位移以形成等于所述输入数据值与所选常数值相乘的结果的输出值,
其中,所述组合电路包括:加法器,每个加法器被连接成接收来自所述多个可变移位块中的两个的输出;以及固定移位块,适配用于接收来自所述加法器的输出作为所述固定移位块的输入,并对所述固定移位块接收到的输入移位固定位移值。
2.如权利要求1所述的乘法器,其中,所述可变移位块的至少一个包括左移位器,所述左移位器用于没有舍位地将所述左移位器的输入向左移一位或更多位的位置。
3.如权利要求1所述的乘法器,其中,所述固定移位块包括左移位器,所述左移位器用于没有舍位地将所述左移位器的输入向左移一位或更多位的位置。
4.一种用于将输入数据值与CSD形式的所选常数值相乘的方法,所述方法包括:
将所选常数值分成多个位对;
基于所选常数值的所述位对中的相应一个位对的位值来控制并行的多个多路复用器中的每个;
根据所选常数值的所述位对中的相应一个位对的位值,从所述多个多路复用器中的每个输出输入数据值、输入数据值的负数、或所有零值;
将来自所述并行的多个多路复用器的输出施加于相应的可变移位块;
基于所选常数值的所述位对中的相应一个的位值来控制每个可变移位块,使得所述可变移位块将所述可变移位块接收到的输入移位相应的第一位移值或相应的第二位移值,其中,所述第一位移值和所述第二位移值相差1;以及
对来自所述多个移位块的输出进行组合并采用另外的位移,以形成等于输入数据值与所选常数值相乘的结果的输出值,
其中,所述组合步骤包括将来自所述多个可变移位块中的两个的输出相加,以及将固定位移应用于所述相加的结果。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP05102546 | 2005-03-31 | ||
EP05102546.8 | 2005-03-31 | ||
PCT/IB2006/050892 WO2006103601A2 (en) | 2005-03-31 | 2006-03-23 | Canonical signed digit multiplier |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101156130A CN101156130A (zh) | 2008-04-02 |
CN101156130B true CN101156130B (zh) | 2010-05-19 |
Family
ID=36929410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800104945A Active CN101156130B (zh) | 2005-03-31 | 2006-03-23 | 正则符号数字乘法器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8046401B2 (zh) |
EP (1) | EP1866741B1 (zh) |
JP (1) | JP4923039B2 (zh) |
CN (1) | CN101156130B (zh) |
DE (1) | DE602006007828D1 (zh) |
WO (1) | WO2006103601A2 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101986721B (zh) * | 2010-10-22 | 2014-07-09 | 苏州上声电子有限公司 | 全数字式扬声器装置 |
FR2974916A1 (fr) * | 2011-05-05 | 2012-11-09 | Altis Semiconductor Snc | Dispositif et procede de multiplication rapide |
CN102314215B (zh) * | 2011-09-27 | 2014-03-12 | 西安电子科技大学 | 集成电路系统中小数乘法器的低功耗优化方法 |
EP2608015B1 (en) | 2011-12-21 | 2019-02-06 | IMEC vzw | System and method for implementing a multiplication |
US9933998B2 (en) * | 2013-12-02 | 2018-04-03 | Kuo-Tseng Tseng | Methods and apparatuses for performing multiplication |
US9678749B2 (en) * | 2014-12-22 | 2017-06-13 | Intel Corporation | Instruction and logic for shift-sum multiplier |
GB2551725B (en) | 2016-06-27 | 2018-08-22 | Imagination Tech Ltd | Error bounded multiplication by invariant rationals |
CN107544942B (zh) * | 2017-07-13 | 2020-10-02 | 天津大学 | 一种快速傅里叶变换的vlsi设计方法 |
CN110515585B (zh) * | 2019-08-30 | 2024-03-19 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1288545A (zh) * | 1998-01-21 | 2001-03-21 | 松下电器产业株式会社 | 运算装置及运算方法 |
CN1454347A (zh) * | 2000-10-16 | 2003-11-05 | 诺基亚公司 | 使用带符号的数位表示的乘法器和移位器 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4967388A (en) * | 1988-04-21 | 1990-10-30 | Harris Semiconductor Patents Inc. | Truncated product partial canonical signed digit multiplier |
US5262974A (en) * | 1991-10-28 | 1993-11-16 | Trw Inc. | Programmable canonic signed digit filter chip |
DE4223999C1 (en) * | 1992-07-21 | 1993-07-08 | Andreas 3502 Vellmar De Herrfeld | Digital multiplication circuit using canonically signed digit code - has multiplexer converted and added to two's-complement value to generate reduced partial products that are added |
US5313414A (en) * | 1992-11-12 | 1994-05-17 | Vlsi Technology, Inc. | Canonical signed two's complement constant multiplier compiler |
JPH1049347A (ja) * | 1996-07-29 | 1998-02-20 | New Japan Radio Co Ltd | 乗算器 |
JPH10187767A (ja) * | 1996-12-24 | 1998-07-21 | Mitsubishi Electric Corp | パラメータ化hdl記述方法、論理合成装置および論理合成プログラムを記録した媒体 |
KR100441466B1 (ko) * | 1997-12-19 | 2004-07-23 | 인피니언 테크놀로지스 아게 | 상수 팩터 승산을 위한 장치와 비디오 압축(mpeg)을 위한 상기 장치의 사용방법 |
JP2000066878A (ja) * | 1998-08-18 | 2000-03-03 | Yamaha Corp | デジタル演算装置およびデジタル演算装置の演算方法 |
US6590931B1 (en) | 1999-12-09 | 2003-07-08 | Koninklijke Philips Electronics N.V. | Reconfigurable FIR filter using CSD coefficient representation |
US7080115B2 (en) * | 2002-05-22 | 2006-07-18 | Broadcom Corporation | Low-error canonic-signed-digit fixed-width multiplier, and method for designing same |
JP2004320253A (ja) | 2003-04-14 | 2004-11-11 | Matsushita Electric Ind Co Ltd | 相関値演算回路 |
DE602004008904D1 (de) * | 2004-07-13 | 2007-10-25 | St Microelectronics Srl | Vorrichtung zur digitalen Signalverarbeitung unter Verwendung der CSD Darstellung |
US7680872B2 (en) * | 2005-01-11 | 2010-03-16 | Via Telecom Co., Ltd. | Canonical signed digit (CSD) coefficient multiplier with optimization |
US7912891B2 (en) * | 2005-12-09 | 2011-03-22 | Electronics And Telecommunications Research Institute | High speed low power fixed-point multiplier and method thereof |
-
2006
- 2006-03-23 DE DE602006007828T patent/DE602006007828D1/de active Active
- 2006-03-23 US US11/910,454 patent/US8046401B2/en active Active
- 2006-03-23 WO PCT/IB2006/050892 patent/WO2006103601A2/en active Application Filing
- 2006-03-23 JP JP2008503648A patent/JP4923039B2/ja active Active
- 2006-03-23 CN CN2006800104945A patent/CN101156130B/zh active Active
- 2006-03-23 EP EP06727715A patent/EP1866741B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1288545A (zh) * | 1998-01-21 | 2001-03-21 | 松下电器产业株式会社 | 运算装置及运算方法 |
CN1454347A (zh) * | 2000-10-16 | 2003-11-05 | 诺基亚公司 | 使用带符号的数位表示的乘法器和移位器 |
Non-Patent Citations (1)
Title |
---|
JP特开2004-320253A 2004.11.11 |
Also Published As
Publication number | Publication date |
---|---|
EP1866741B1 (en) | 2009-07-15 |
CN101156130A (zh) | 2008-04-02 |
JP4923039B2 (ja) | 2012-04-25 |
JP2008535077A (ja) | 2008-08-28 |
DE602006007828D1 (de) | 2009-08-27 |
US8046401B2 (en) | 2011-10-25 |
WO2006103601A2 (en) | 2006-10-05 |
WO2006103601A3 (en) | 2007-01-11 |
US20090070394A1 (en) | 2009-03-12 |
EP1866741A2 (en) | 2007-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101156130B (zh) | 正则符号数字乘法器 | |
US6112218A (en) | Digital filter with efficient quantization circuitry | |
Vun et al. | A new RNS based DA approach for inner product computation | |
KR101047768B1 (ko) | 범용 어레이 처리 | |
CN101282322A (zh) | 一种应用于无线中程传感网物理层的内插数字滤波器装置 | |
EP1872267A2 (en) | Fast fourier transform architecture | |
TW200408219A (en) | Multi-carrier transmission systems and methods using subcarrier relocation and guard interval insertion | |
US6603812B1 (en) | Hardware implementation of a decimating finite impulse response filter | |
WO1994023493A1 (en) | Method and arrangement in a transposed digital fir filter for multiplying a binary input signal with tap coefficients and a method for disigning a transposed digital filter | |
CN101425794B (zh) | 固定系数数字滤波器 | |
Tymchenko et al. | Methods of Converting Weight Sequences in Digital Subtraction Filtration | |
US5148383A (en) | Digital transversal filter | |
Hong et al. | Implementation of FIR filter on FPGA using DAOBC algorithm | |
US7676533B2 (en) | System for executing SIMD instruction for real/complex FFT conversion | |
CN116910456B (zh) | 一种滤波方法、装置、电子设备及计算机可读存储介质 | |
JP2003046374A (ja) | デジタルフィルタ回路 | |
CN112383782B (zh) | 一种位矢量变换累加移位的一维dct/idct变换器 | |
CN101422004B (zh) | 一种优化时域均衡器的方法 | |
CN108037953A (zh) | 一种基于流水线的块浮点模式下的dsp内部架构 | |
CN112564672A (zh) | 基于秘密比特信息嵌入系统低复杂度fir滤波器的可重构架构 | |
GB2412277A (en) | Equalizer having a plurality of tapped delay lines | |
Tecpanecatl-Xihuitl et al. | Efficient mutliplierless polyphase fir filter based on new distributed arithmetic architecture | |
MARIAMMAL et al. | ANALYSIS OF CASCADED MULTIRATE FIR FILTER STRUCTURES WITH CSE AND CSD | |
KR102505022B1 (ko) | 전병렬 고속 푸리에 변환기 | |
Dourbal | Synthesis of fast multiplication algorithms for arbitrary tensors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |