專利名稱:使用帶符號的數(shù)位表示的乘法器和移位器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及乘法器和移位器。
通常,當(dāng)把分別表示數(shù)字值的兩個數(shù)字信號相乘時,如下進(jìn)行乘法。假定A代表被乘數(shù),B代表乘數(shù),并且還假定(僅是舉例)A和B分別呈4位表現(xiàn)(通常n位表示)(位也稱為數(shù)位)。
為了(在十進(jìn)制中)使A=11乘以B=7(在十進(jìn)制記數(shù)法中這得到77),如果A、B是二進(jìn)制信號,則必須實現(xiàn)以下所述。
對于乘數(shù)的每一位來說,被乘數(shù)的值將被移動若干位,所述位數(shù)對應(yīng)于乘數(shù)的位的權(quán)。即,對于最低有效位(代表20)來說,必須實現(xiàn)被乘數(shù)的零移位,而對于n位中的最高有效位(代表2n-1)來說,必須實現(xiàn)(n-1)位的移位。另外,如下所示,這樣移位后的被乘數(shù)值必須被加起來,從而產(chǎn)生結(jié)構(gòu)。
A *B = C11(D) *7(D)= 77(D)1011(B) *0111(B) =10111011010110000000001001101(B) = 1001101(B)換句話說,乘數(shù)位用于控制被乘數(shù)的各個移位操作(所述各個移位操作對應(yīng)于乘以二進(jìn)制表示的2的相應(yīng)冪值),并且移位后的被乘數(shù)被加起來。
在數(shù)字信號處理領(lǐng)域中,例如在數(shù)字濾波領(lǐng)域中,二進(jìn)制數(shù)據(jù)也被表示成2的乘冪和(SOPOT)。利用2的乘冪和(SOPTO)表示的數(shù)字可以是規(guī)范帶符號位(CSD),以便進(jìn)行濾波運算中所需的乘法。其它2的冪和(SOPOT)表示法可以是帶符號位(SD)表示位,最小帶符號位(MSD)表示法,下面對它們進(jìn)行詳細(xì)說明。
在規(guī)范帶符號位代碼中,1、0和-1值被用作代表數(shù)值的數(shù)位,而二進(jìn)制代碼只使用0和1。在普通的二進(jìn)制數(shù)中,非零數(shù)位的平均數(shù)大于CSD編碼數(shù)中非零數(shù)位的平均數(shù),從而CSD編碼數(shù)具有最少的非零項。
例如,下表表示了n=4位的二進(jìn)制編碼數(shù)(該例代表0-15的值)和對應(yīng)的CSD編碼數(shù)之間的對應(yīng)。還表示了相對于二進(jìn)制和CSD表示法,十進(jìn)制數(shù)16和17的對應(yīng)。
十進(jìn)制二進(jìn)制 CSD0 0000000001 0001000012 0010000103(=4-1) 00110010-14 0100001005 0101001016(=8-2) 0110010-107(=8-1) 01110100-18 1000010009 1001010011010100101011(=16-4-1) 101110-10-112(=16-4)110010-10013(=16-4+1) 110110-10114(=16-2)1110100-1015(=16-1)11111000-1
161000010000171000110001…等等。
(就負(fù)的二進(jìn)制數(shù)來說,該例可不同。)(應(yīng)注意對于CSD碼表示來說,只是近似表示了數(shù)字)。顯然,從上例可得到,當(dāng)利用CSD表示法時,可利用最大數(shù)目的非零位表示十進(jìn)制數(shù)。
一般來說,在CSD編碼數(shù)中,不可把非零項安排成彼此相鄰,從而1和/或-1總是被0分隔開。
另外,只是相對于正整數(shù)給出了上例。一般來說,通過如下所示以2的乘冪之和及差表示數(shù)字,可給出任意數(shù)字(X)的CSD表示X=Σi=-∞i=+∞gi*2i,gi∈{-1,0,1}]]>(從而,上面的例子被選擇成只使用i的正值)。
從而,乘法中所需的加法的數(shù)目(NA)為NA=(L-1),其中L是CSD表示中非零項的數(shù)目。
對于十進(jìn)制數(shù)“7”來說,比較CSD碼表示和二進(jìn)制表示,非零項的數(shù)目從3減少到2,同樣,所需的移位操作的數(shù)目被減少(從二進(jìn)制表示中關(guān)于中間2位的兩次移位降到CSD表示中關(guān)于最高有效位的一次移位操作,因為最低有效位不需要任何移位(移動0)。)從而,重新參考上面的使A和B相乘(A*B(11*7))的例子,當(dāng)利用乘數(shù)的CSD表示時,這對應(yīng)于從“8乘A”中減去“1乘A”。但是,減法對應(yīng)于要減去的數(shù)值的二進(jìn)制補碼的加法(通過反轉(zhuǎn)要減去的數(shù)值的各位(1的補碼),并且隨后向其添加二進(jìn)制“1”產(chǎn)生二進(jìn)制補碼)。
從而,當(dāng)利用CSD表示時,為數(shù)字設(shè)計中一部分的乘法器(該部分占用了半導(dǎo)體器件芯片上的大部分面積)被一定數(shù)目的加法器替代。加法器的數(shù)目取決于乘數(shù)的表示精度,而乘數(shù)的表示精度又取決于CSD碼表示中非零項的數(shù)目。
通常通過對于乘法來說,把被乘數(shù)(呈二進(jìn)制和/或二進(jìn)制補碼格式)向左移動對應(yīng)位數(shù)(如上所述),或者對于除法來說,把被乘數(shù)向右移動對應(yīng)位數(shù),實現(xiàn)乘以2的乘冪(即20、21、…、2n)。
一般來說,用所謂的帶符號數(shù)位表示法來表示利用2的乘冪和(SOPOT)表示的數(shù),其中2的不同乘冪的符號可具有出自數(shù)值組1、0、-1的數(shù)值。最小帶符號數(shù)位(MSD)表示是其中利用數(shù)目最少的非零項表示數(shù)字的格式??纱嬖谙嗤瑪?shù)字的多種不同MSD表示。規(guī)范帶符號數(shù)位(CSD)表示始終是適當(dāng)?shù)腗SD表示之一,而CSD是其中存在不允許出現(xiàn)相鄰的非零信號的限制的格式(從而在CSD表示中不存在任何相鄰的非零數(shù)位)。例如,假定十進(jìn)制數(shù)“3”,它可被如下表示SD MSD CSD1-1-11 0011 010-11-10-1 010-10011010-1在乘數(shù)具有固定值,從而預(yù)先已知的情況下,可通過布線實現(xiàn)移位,而不需要任何額外的硬件(邏輯電路)。
但是,這把乘法器的適用性局限于只乘以固定的乘數(shù)值。
為了把乘法器的適用領(lǐng)域增大到可變的乘數(shù)值,設(shè)想了多種方案,根據(jù)所述方案,可改變移位量。
圖1表示了可供乘法器之用的現(xiàn)有移位裝置的結(jié)構(gòu)。該移位裝置適合于相對于呈二進(jìn)制和/或CSD表示的可變控制信號實現(xiàn)可變的移位量。在把移位器用在乘法器中的情況下,控制信號可以是乘數(shù)。至少,可從乘數(shù)得到控制信號。
如圖1中所示,用X表示的被乘數(shù)被提供給移位裝置。該被乘數(shù)被分支,分支的數(shù)目對應(yīng)于乘數(shù)的位數(shù)(在圖1中未被表示成獨立信號(控制信號))。如圖1中所示,被乘數(shù)X被分成8個分支,同時被乘數(shù)的信號X的各個分支(X的副本)進(jìn)行介于0和7之間某一數(shù)值的相應(yīng)固定移位。該移位由通過布線實現(xiàn)的移位單元(未示出)執(zhí)行,所述布線把供給的信號X移動規(guī)定的(預(yù)定的)移動量。
信號X的相應(yīng)一對移位值被提供給第一級多路復(fù)用器MUX(2∶1多路復(fù)用器)。依據(jù)提供給多路復(fù)用器的控制信號(未示出)選擇移位信號之一。
第一級多路復(fù)用器之一的每個輸出被提供給第二級多路復(fù)用器(2∶1多路復(fù)用器)中的相應(yīng)多路復(fù)用器。注意由于在圖1的例子中,多路復(fù)用器是2∶1多路復(fù)用器,因此第一級的相應(yīng)兩個輸出信號被提供給第二級的一個多路復(fù)用器。依據(jù)提供給相應(yīng)第二級多路復(fù)用器的控制信號(未示出),選擇該多路復(fù)用器的輸入信號之一。
第二級多路復(fù)用器之一的每個輸出被提供給第三級多路復(fù)用器(2∶1多路復(fù)用器)。依據(jù)提供給相應(yīng)第三級多路復(fù)用器的控制信號(未示出)選擇要輸出的該多路復(fù)用器的輸入信號之一(圖1中標(biāo)記為Y)。注意如圖1中所示,第三級多路復(fù)用器只包含一個多路復(fù)用器。
乘數(shù)的二進(jìn)制位被直接用作控制第一到第三級多路復(fù)用器的控制信號,或者從乘數(shù)的二進(jìn)制位得到控制信號,并且按照使被乘數(shù)X被移動和當(dāng)前處理的乘數(shù)的相應(yīng)位的權(quán)對應(yīng)的數(shù)值的方式,把從乘數(shù)的二進(jìn)制位得到控制信號施加給第一到第三級多路復(fù)用器。換句話說,假定第一位具有為0的權(quán)(最低有效位LSB),第八位具有為7的權(quán)(最高有效位MSB),則如果處理乘數(shù)的第五位,則該位具有為“4”的權(quán)。因此,控制各級多路復(fù)用器,以致在移位裝置的輸出端Y,輸出被移位4位的信號X。
顯然,為了實現(xiàn)所需的移位量,如圖1中所示的移位裝置需要大量的邏輯電路和多路復(fù)用器。
另外,為了實現(xiàn)乘法運算,如同上面參考乘法運算的例子說明的那樣,被乘數(shù)的這種已移位數(shù)值必須被加起來。
圖2表示了用于計算這些已移位數(shù)值的總和的加法器的結(jié)構(gòu)。在圖中所示的例子中,為了使附圖簡單,假定乘數(shù)只是一個4位乘數(shù)。
從而,被乘數(shù)X被提供給4個移位裝置“移位器”。如同參考圖1說明的那樣,構(gòu)成并由乘數(shù)控制每個移位裝置。
在移位裝置的輸出端,相應(yīng)的輸出Y0、Y1、Y2和Y3分別表示被移動0位的信號X,被移動1位的信號X,被移動2位的信號X和被移動3位的信號X。
這些移位裝置輸出信號被分成對,并被提供給由“+”表示的相應(yīng)加法裝置。加法裝置被安排成并行進(jìn)行加法,因為Y0和Y1由加法裝置之一加起來,同時Y2和Y3由另一加法裝置加起來。
這樣獲得的部分加法被提供給后一加法器級的另一加法裝置,被計算總和,并輸出為最終的加法結(jié)果(Z)。
從而,為了適合于完成乘以可變乘數(shù)的運算,這種使用并行加法的乘法器也需要大量的加法裝置和大量的移位裝置,即體積大的硬件。
K.K.Parhi在論文“A Systematic Approach For Design OfDigit-Serial Signal Processing Architectures”(IEEE Transactions onCircuits and System,Vol.38,No.4,1991年4月)中公開一種現(xiàn)有技術(shù)。該文獻(xiàn)提出一種把位串行結(jié)構(gòu)變換成等同的數(shù)位串行結(jié)構(gòu)的系統(tǒng)展開技術(shù)。但是,為了實現(xiàn)該目的,必須產(chǎn)生并實現(xiàn)功能正確的控制電路,從而增大了(控制)硬件的數(shù)量。
W.J.Oh和Y.H.Lee在他們的文獻(xiàn)“Implementation OfProgrammable Multiplierless FIR Filters With Powers-Of-TwoCoefficients”(IEEE Transactions On Circuits and Systems-IIAnalogAnd Digital Signal Processing,Vol.42,No.8,1995年8月)中提出一種實現(xiàn)較短移位器的可能性。但是,沒有具體涉及乘法器的結(jié)構(gòu)。
Duan,Ko和Daneshrad在他們的文獻(xiàn)“Versatile Beamforming ASICArchitecture For Broadband Fixed Wireless Access”(IEEE CustomIntegrated Circuits Conference,1999)中討論了通常利用移位器和多路復(fù)用器實現(xiàn)可編程CSD乘法,而他們對CSD性質(zhì)的檢查顯示和上面引用的Oh,Lee的文獻(xiàn)說明的一樣,通過把移位操作分成預(yù)移位和硬連線移位,可減少移位器和多路復(fù)用器的數(shù)目,從而進(jìn)一步降低復(fù)雜性。但是,本發(fā)明的發(fā)明人的研究顯示能夠獲得的復(fù)雜性降低仍然不是最佳。
這同樣適用于上面的作者(Duan等)的論文“A Highly VersatileBeamforming ASIC For Application In Broad-Band Fixed WirelessAccess Systems”(IEEE Journal Of Solid-State Circuits,Vol.35,No.3,2000年3月)。
Khoo,Kwentus和Willson在“A Programmable FIR Digital FilterUsing CSD Coefficients”(IEEE Journal of Solid-State Circuits,Vol.31,No.6,1996年6月)中提出一種采用兩級傳輸門多路復(fù)用器網(wǎng)絡(luò)選擇恰當(dāng)?shù)挠策B線預(yù)移位數(shù)據(jù)的系數(shù)乘法器。但是,這會導(dǎo)致相當(dāng)大的延遲,建議利用(額外的)流水線寄存器補償所述延遲。但是,這不支持把復(fù)雜性降低到最小。
Chang,Satyanarayana和Parhi在“Systematic Design OfHigh-Speed and Low-Power Digit-Serial Multipliers”(IEEETransactions On Circuits And Systems-IIAnalog And Digital SignalProcessing,Vol.45,No.12,1998年12月)中提出幾種乘法器。但是,沒有研究呈CSD格式的乘數(shù)的處理。
另外,US-A-4967388公開了一種仍然需要相當(dāng)大量的硅面積的CSD乘法器。
在US-A-5262974中公開了另一種可編程CSD乘法器。但是,為了計算這些輸出的總和,要提供幾個可編程移位路徑和對應(yīng)的若干加法器。因此,該現(xiàn)有技術(shù)也需要體積相當(dāng)大的硬件,當(dāng)在硅片上實現(xiàn)時,所述硬件占用相當(dāng)大的面積。
總之,靈活地實現(xiàn)乘以可變乘數(shù)的運算需要額外的硬件,即邏輯電路。
從而,這樣的結(jié)構(gòu)體積相當(dāng)大,并將占用大量的硅片面積,考慮到使IC芯片設(shè)計小型化的目的,這是不希望的。另外,這種器件的費用隨著占用的芯片面積的增大而增大。
另外,本發(fā)明的目的是提供一種在以CSD格式表示乘數(shù)系數(shù)的情況下,可和可變的乘數(shù)系數(shù)一起工作,而不必使用大量的邏輯電路來控制必需的移位的乘法器。
根據(jù)本發(fā)明,上述目的由把多數(shù)位輸入信號(X)移動可在0~2B-1的范圍內(nèi)選擇的若干數(shù)位的移位裝置實現(xiàn),所述移位裝置包括B個移位級,每個移位級包括由總共具有B個分量的移位量控制信號的第i個分量控制的一個多路復(fù)用器(MUX),用于根據(jù)所述移位量控制信號的所述第i個分量的值,輸出直接從第(i-1)移位級的多路復(fù)用器供給所述多路復(fù)用器的信號,或者輸出通過第i個移位元件,從第(i-1)移位級的多路復(fù)用器提供給所述多路復(fù)用器的信號,所述第i個移位元件適合于把提供給它的信號移動2i-1數(shù)位。
另外,上述目的由使被乘數(shù)(X)乘以由多個數(shù)位表示的乘數(shù)的乘法器實現(xiàn),所述乘法器包括保存和所述乘數(shù)的所述多個數(shù)位對應(yīng)的若干(L條)信息的存儲裝置;根據(jù)所述存儲裝置中的一條信息,對被乘數(shù)移位的移位裝置(BWS),和加法裝置(+),其中順序讀取所述存儲裝置中的若干信息,并作為控制信號提供給所述移位裝置,所述加法裝置計算所述移位裝置(BWS)的輸出和先前獲得的所述加法裝置的輸出的總和。
在各個從屬權(quán)利要求中陳述了本發(fā)明的有利的進(jìn)一步有改進(jìn)。
特別地,根據(jù)移位裝置的進(jìn)一步改進(jìn),-所述多數(shù)位輸入信號(X)是二進(jìn)制信號,-要移位的所述信號(X)被提供給第一移位級,從第B個移位級輸出移位后的信號(Y),-最大移位量2B-1對應(yīng)于輸入信號要乘以的乘數(shù)的數(shù)位的數(shù)目減1(n-1),-移位元件由固定的布線實現(xiàn)。
特別地,根據(jù)乘法器的進(jìn)一步改進(jìn),-乘數(shù)由規(guī)范帶符號數(shù)位表示;-和所述乘數(shù)的所述多個數(shù)位對應(yīng)的信息的數(shù)目(L)對應(yīng)于所述乘數(shù)的數(shù)位的數(shù)目;-和所述乘數(shù)的所述多個數(shù)位對應(yīng)的信息的數(shù)目(L)對應(yīng)于以CSD表示法表示的所述乘數(shù)的非零數(shù)位的數(shù)目;-保存在所述存儲裝置中的信息包括B位寬度的移位控制信號,它代表所述乘數(shù)的受關(guān)心數(shù)位的權(quán)的值;指示所述乘數(shù)的受關(guān)心數(shù)位的值為+1還是為-1的符號標(biāo)志,和指示所述乘數(shù)的受關(guān)心數(shù)位的值是否為0的零標(biāo)志;-所述移位裝置是如上所述的移位裝置;乘法器還包括適合于輸出被乘數(shù)的二進(jìn)制補碼的信號處理裝置,其中所述符號標(biāo)志控制多路復(fù)用器輸出被乘數(shù)(X)或者輸出被乘數(shù)的所述二進(jìn)制補碼(-X)。
從而,在實現(xiàn)本發(fā)明的情況下,可獲得下述優(yōu)點本發(fā)明可用在應(yīng)用數(shù)字乘法的應(yīng)用中,例如用在數(shù)字處理處理DSP,數(shù)字濾波器和/或有限脈沖響應(yīng)濾波器FIR以及可編程和/或自適應(yīng)數(shù)字濾波器中。由于用CSD編碼表示乘數(shù),因此可減少必需的移位操作的數(shù)目,并且能夠減少必需的加法的數(shù)目,從而有助于降低硅片上移位裝置和乘法器的硬件實現(xiàn)所需的面積。
按照時間串行(而不是并行)進(jìn)行2的不同乘冪的乘法,以便進(jìn)一步降低硬件實現(xiàn)所需的面積。由此,在乘法方面能夠只使用一個加法器,這有助于降低硬件數(shù)量,并且減少硬件所需的面積。
基于二進(jìn)制加權(quán)移位的移位裝置被用于和乘法有關(guān)的移位,從而降低了所需硬件的數(shù)量(多路復(fù)用器和硬連線移位元件的數(shù)目),從而進(jìn)一步降低了硬件實現(xiàn)所需的面積。
由于放棄了加法器的并行結(jié)構(gòu),并且逐次進(jìn)行加法,因此以更高的運算頻率操作乘法器,以便保持計算速度。但是,運算頻率取決于乘數(shù)的精度。在利用多個不同運算頻率的情況下,能夠獲得和系數(shù)相關(guān)的能耗(因為當(dāng)采用靜態(tài)信號時,以CMOS技術(shù)實現(xiàn)的IC不消耗能量,但是只是在信號變化的周期內(nèi))
結(jié)合附圖,更易于理解本發(fā)明的上述目的、特征和優(yōu)點,其中圖1圖解說明可用在乘法器中的已知移位裝置;圖2描繪了具有并行加法器結(jié)構(gòu)的已知乘法器;圖3表示根據(jù)本發(fā)明的移位裝置;圖4表示根據(jù)本發(fā)明的乘法器;圖5表示根據(jù)本發(fā)明的改進(jìn)乘法器。
當(dāng)減少硬件數(shù)量,從而減小乘法器所需面積時,本發(fā)明的一個方面是使移位裝置所面的硬件降至最少。
根據(jù)本發(fā)明,圖3中表示了就硬件而論的這種最小化移位裝置。
一般來說,連續(xù)產(chǎn)生移位,并且每一級適合于實現(xiàn)兩個不同的移位值,即0或2(k-1),k是該級的索引(數(shù)字),并且k為0~B。B代表所需的最大級數(shù),并且與輸入信號(例如應(yīng)用于乘法器,則為乘數(shù))的位數(shù)相聯(lián)系,以致輸入信號(乘數(shù))具有2B位。每一級的移位相對于彼此被二進(jìn)制加權(quán)。借助這樣的結(jié)構(gòu),只利用B個多路復(fù)用器(一般利用log2(2B)個多路復(fù)用器)即可獲得0~2B-1之間的任意移位量。
現(xiàn)在更詳細(xì)地說明圖3中所示的電路結(jié)構(gòu)。
被乘數(shù)X(一般呈n位表示)作為要處理的輸入信號被提供給移位裝置。
信號X被分成兩個分支。一個分支被直接提供給第一級多路復(fù)用器MUX的輸入端,而另一分支在被提供給多路復(fù)用器的另一輸入端之前,經(jīng)過移位單元(未具體示出,只是用“1S”表示),所述移位單元適合于把分支信號X移動1位。這樣的移位單元通常由布線實現(xiàn)。直接送給多路復(fù)用器的信號X的分支不進(jìn)行任何移位操作。一位寬度的控制信號被提供給第一級的多路復(fù)用器,以便選擇是要輸出未移位的信號X還是輸出移動1位的信號X。
第一級的輸出信號(即移動0位或1位的X)再次被分成兩個分支。一個分支被直接提供給后一級(第二級)的多路復(fù)用器MUX的輸入端,而不進(jìn)行移位操作。另一分支在被提供給多路復(fù)用器的另一輸入端之前,經(jīng)過移位單元(未具體示出,只是用“2S”表示),所述移位單元適合于把分支信號X移動2位。這樣的移位單元通常由布線實現(xiàn)。同樣,一位寬度的控制信號被提供給第二級的多路復(fù)用器,以便選擇是輸出從前一級提供的未移位的信號,還是從前一級提供的并且還被移動2位的信號。
第二級多路復(fù)用器的輸出信號被送給下一級,其結(jié)構(gòu)和前面各級類似。唯一的差別在于各級的移位單元適合于執(zhí)行數(shù)量為2k-1位的移位,k表示移位單元中的級數(shù)。
提供給各級的控制信號一起構(gòu)成寬度為B位的控制信號位矢量或者控制字。
多路復(fù)用器被配置成使得為“0”的控制位指示相應(yīng)一級中“無移位”,而為“1”的控制位指示將由相應(yīng)一級執(zhí)行移位操作。
在乘法器中應(yīng)用移位裝置的情況下,被乘數(shù)(X)的最大移位量由乘數(shù)確定。從而,如果乘數(shù)的寬度為8位,則0-7之間的移位變成必需的??刂菩盘柕臄?shù)目則為B=3,因為2B=23=8,并且在B=3位的情況下,可表示0-7之間的所有數(shù)字(即移位量)。
現(xiàn)在將舉例詳細(xì)說明圖3中所示的電路結(jié)構(gòu)的操作。
假定B為3,并且假定位矢量B的值為二進(jìn)制和/或CSD表示法中的“101”。從而,圖3中所示的移位單元只包含三級多路復(fù)用器,每一級配有適合于分別實現(xiàn)1、2或4的移位量的移位單元。在B=101(對應(yīng)于十進(jìn)制“5”)的情況下,第一級把X移動1位,第二級不對已移動1位的信號進(jìn)行另外的移位,第三級再引入4位的移位。從而,在移位單元的輸出端Y輸出已移動5位的信號X。從而在這種情況下,X已被移動5位,以便與位數(shù)為6的乘數(shù)相乘(“5”的權(quán))(假定第一位(代表20)具有為0的權(quán),即LSB)。
從而,由位寬度為B的位矢量表示的值對應(yīng)于乘數(shù)中位的權(quán)。更一般地說,具有2B位和/或數(shù)位的乘數(shù)可由位寬度為B的位矢量表示,以便對乘數(shù)的每個2B位位置編碼。移位的方向可以從最低有效位LSB到最高有效位MSB。但是,移位的基準(zhǔn)點也可以是MSB(從而移位意味著除法)。
因此,如上詳細(xì)所述,圖3圖解說明了用于使多數(shù)位輸入信號(X)移位的移位裝置,移位量可在從0~2B-1的范圍內(nèi)選擇,所述移位裝置包括B個移位級,每個移位級包括由總共具有B個分量的移位量控制信號的第i個分量控制的一個多路復(fù)用器,用于根據(jù)所述移位量控制信號的所述第i個分量的值,輸出直接從第(i-1)移位級的多路復(fù)用器提供給所述多路復(fù)用器的信號,或者輸出通過第i個移位單元,從第(i-1)移位級的多路復(fù)用器提供給所述多路復(fù)用器的信號,所述第i個移位單元適合于把提供給它的信號移動2i-1數(shù)位。
圖4中圖解說明了根據(jù)本發(fā)明的乘法器。
一般來說,在圖4中所示的結(jié)構(gòu)中,串行進(jìn)行移位和加法。在所示結(jié)構(gòu)中,只存在乘法所需的一個移位單元(例如參考圖3說明的移位單元),一個加法器,符號選擇多路復(fù)用器置零級和存儲寄存器。移位器、非門和置零邏輯電路的數(shù)量被除以L(L是乘數(shù)的CSD表示中非零項的最大數(shù)目)。
現(xiàn)在更詳細(xì)地說明圖4中所示的電路結(jié)構(gòu)。
被乘數(shù)X被提供給乘法器。更具體地說,被乘數(shù)被提供給臨時存儲裝置或者鎖存裝置。一般來說,被乘數(shù)被提供給寬度足以保存被乘數(shù)的數(shù)位(位)的寄存器。在圖4中,這樣的寄存器被表示成以并聯(lián)設(shè)置的D型觸發(fā)器為基礎(chǔ),所述D型觸發(fā)器的數(shù)目對應(yīng)于被乘數(shù)的寬度(n位)?;贒型觸發(fā)器的寄存器由控制信號clk/L(后面說明)控制。當(dāng)施加控制信號(電平或邊緣敏感的)時,被乘數(shù)X被鎖存并被保存,以便被處理(被倍增)。
基于D型觸發(fā)器的寄存器的輸出被分成兩個分支。一個分支被直接提供給多路復(fù)用器MUX的輸入端。另一分支被提供給“NEGAT”裝置,所述“NEGAT”裝置是適合于在其輸出端提供被乘數(shù)的二進(jìn)制補碼的處理裝置。該輸出被提供給多路復(fù)用器MUX的另一輸入端。多路復(fù)用器是受1位控制信號控制的2∶1多路復(fù)用器,在其輸出端輸出X或-X(X的二進(jìn)制補碼)。
多路復(fù)用器MUX的輸出被提供給與門的輸入端?!胺聪蛄恪毙盘柋惶峁┙o與門的另一輸入端。于是,在“零信號”(“零標(biāo)志”)指示零的情況下,這意味著信號零取值為1,以便指示該狀態(tài)。從而,反向零信號取值為零。結(jié)果,與門的輸出取值為零。這使提供給與門的另一輸入端的任意信號X、-X無效。在零信號不指示零,于是取值為零的情況下,反向零信號取值為1,從而使得能夠從與門無變化地輸出X或-X(無論哪一個被提供給與門的另一輸入端)。
要明白雖然信號“反向零”僅為1位,而X、-X一般為n位,通過利用零標(biāo)志對X、-X的每一位執(zhí)行與操作。
與門的輸出作為輸入信號被提供給移位裝置(BWS)。用BWS表示的移位裝置被假定為上面結(jié)合圖3說明的加權(quán)二進(jìn)制移位器。
但是,也可使用其它移位裝置,不過如果結(jié)合根據(jù)本發(fā)明的乘法器使用根據(jù)本發(fā)明的移位裝置,可使硬件和所需面積的減少達(dá)到最佳。(不過,也可結(jié)合其它乘法器使用移位器BWS)。
從而,在位寬度為B的移位控制信號的控制下,移位裝置BWS對提供給它的信號(即X或-X)移位,移位量由B的值表示,所述B值對應(yīng)于當(dāng)前關(guān)于乘法處理的乘數(shù)的位的權(quán)。
從存儲裝置把移位裝置BWS的位寬度為B的控制信號,1位寬度的零標(biāo)志和控制多路復(fù)用器的控制信號提供給乘法器的相應(yīng)組件,所述存儲裝置適合于在其中保存L個移位和符號項。按照后面說明的方式,使這些項和乘數(shù)指示的數(shù)值相關(guān)。
從移位裝置BWS輸出的移位信號被提供給標(biāo)記為“+”的加法器的一個輸入端。提供給加法器(具有兩個輸入端)的初值為零。
通過對乘法器施加復(fù)位信號獲得初值(如果要執(zhí)行復(fù)位,則信號RESET=1),從而反向復(fù)位信號取值為零。反向復(fù)位信號的為零的值被提供給第二與門的輸入端,從而導(dǎo)致該與門的輸出為零,而與提供給與門的另一輸入端的任意其它信號無關(guān)。這樣置零的與門輸出被反饋(反饋回路)給加法器的另一(第二)輸入端。
加法器的輸出被提供給第二個基于D型觸發(fā)器的寄存器,所述寄存器由時鐘信號CLK控制。從而,借助各個時鐘信號,加法器的輸出被提供給與門,并且如果不要實現(xiàn)任何復(fù)位,則被反饋給加法器以便進(jìn)行下一加法運算,從而實現(xiàn)串行加法運算。
在進(jìn)行了實現(xiàn)乘法所必需次數(shù)的加法之后,通過第三個基于D型觸發(fā)器的寄存器以輸出信號Z的形式,輸出最終的加法結(jié)果。第三輸出信號由控制信號CLK/L控制。
如上所述,下面說明適合于保存L個移位和符號項的存儲裝置。
通過利用映射裝置(未示出),映射乘數(shù)值,獲得移位和符號項,獲得要保存的項。下面舉例說明所述映射裝置的功能。
設(shè)想要用值為十進(jìn)制數(shù)15(=16-1)的乘數(shù)乘以X(被乘數(shù))的情況,十進(jìn)制數(shù)15對應(yīng)于二進(jìn)制1111,用CSD可表示成1000-1。
從而,如果必須實現(xiàn)乘以二進(jìn)制1111的乘法,則必須對權(quán)為1、2、3的位實現(xiàn)三次移位操作,另外還必須實現(xiàn)三次加法運算。
當(dāng)使用乘數(shù)的CSD表示時,如上面的例子中所示,只需要進(jìn)行一次移位操作(移動4位),因為以CSD表示法表示的乘數(shù)中的MSB具有為4的權(quán)(LSB不需要移位操作,因為移位會為零)。另外,只需要進(jìn)行一次加法運算,以便把未移位的被乘數(shù)(即被乘數(shù)的二進(jìn)制補碼,-X)把移位4位的被乘數(shù)X相連。
從而,該信息必須被映射成移位和符號選擇項。對于指定的硬件來說,項的數(shù)目固定,并且這樣選擇項的數(shù)目,以便能夠處理乘數(shù)的CSD表示中非零項的最大數(shù)目。例如,如果事先已知乘數(shù)為1-17,則最多需要CSD表示中的三個非零項。從而,在這種情況下,L=3的移位和符號項足矣。
現(xiàn)在,把CSD “1000-1”(D“15”)映射成三個符號和移位項,產(chǎn)生(例如當(dāng)乘數(shù)的LSB開始時)A)第一移位和符號項(-1)-乘數(shù)控制信號,“符號”(1位)被設(shè)置成使得多路復(fù)用器MUX將選擇輸出被乘數(shù)X的二進(jìn)制補碼,-“零標(biāo)志”被設(shè)置為“0”(表示乘數(shù)的LSB的值不為零,即取值+1或-1),-寬度為B位的移位控制信號代表所關(guān)心的二進(jìn)制位,這里L(fēng)SD的權(quán)的數(shù)值,從而被設(shè)置為零(因此B=000)B)第二移位和符號項(0)-乘數(shù)控制信號,“符號”(1位)設(shè)置不重要(“不關(guān)心”),-“零標(biāo)志”被設(shè)置為1(表示乘數(shù)的權(quán)為“1”的二進(jìn)制位的數(shù)值為零),-寬度為B位的移位控制信號不重要,因為由于乘數(shù)中值為零的項對最終結(jié)果沒有影響,因此它們未被移位。
注意在順序映射乘數(shù)的情況下,在所給出的例子中,如果映射/分析權(quán)為“2”和“3”的二進(jìn)制位,則第三個移位和符號項可臨時采取與第二個移位和符號項相同的數(shù)值。但是,當(dāng)處理MSB(權(quán)為“4”)時,要用下述數(shù)值重寫第三移位和符號項中的最后數(shù)值C)第三移位和符號項(1)-乘數(shù)控制信號,“符號”(1位)被設(shè)置成使得多路復(fù)用器MUX要選擇輸出被乘數(shù)X,-“零標(biāo)志”被設(shè)置為“0”(表示乘數(shù)的MSB的值不為零,即取值+1或-1),-寬度為B位的移位控制信號代表所關(guān)心位,這里MSB的權(quán)的值,從而被設(shè)定為“4”(因此B=100)。
從而每個移位和符號項由B+2位寬度表示。
注意雖然已參考CSD表示法進(jìn)行了說明,不過二進(jìn)制信號也可用作乘數(shù)。但是,L個移位和符號項所能代表的可能的乘數(shù)值的范圍會較小。另外,符號標(biāo)志總是被設(shè)置成防止從多路復(fù)用器輸出二進(jìn)制補碼的數(shù)值。另外,如果可從MSD表示法得到任何益處,則也可使用任意MSD表示法(即MSD以及CSD)。
圖4表示了移位和符號項的存儲裝置。在一種可能的實現(xiàn)中,存儲裝置可由一系列的基于D型觸發(fā)器的寄存器實現(xiàn),每個基于觸發(fā)器的寄存器保存一個移位和符號項。不過,能夠保存移位和符號項,并且能夠利用CLK的頻率調(diào)出所述移位和符號項的任意裝置適用于此目的。更準(zhǔn)確地說,例如可利用具有L項輸入和一項輸出的并行輸入串行輸出型存儲元件實現(xiàn)所述存儲裝置。這種情況下的輸入率為CLK/L,輸出率為CLK??梢詭追N方式實現(xiàn)這種操作,每種方式本質(zhì)上都涉及一組寄存器和一些控制邏輯電路。
移位和符號項的存儲裝置由時鐘信號CLK控制。從而,在L個時鐘周期之后,可串行處理由L個移位和符號項表示的乘數(shù)。另外,在相同的時鐘周期下,即與正向移位裝置BWS提供的新的移位和符號項同步地把每個中間加法結(jié)果反饋給加法器。但是,由于必須在L個時鐘周期內(nèi)給出要乘以乘數(shù)的被乘數(shù),因此以慢L倍的速度把被乘數(shù)提供給乘數(shù),并且以慢L倍的速度讀取最終的乘法結(jié)果,這是圖4中所示的第一和第二觸發(fā)器由信號CLK/L控制的原因。
雖然上面沒有明確提及,不過要明白就其位寬來說,基于觸發(fā)器的寄存器、多路復(fù)用器和加法器等都適合于處理n位的信號X。另外,加法器適合于處理在關(guān)于乘法的加法過程中有時產(chǎn)生的進(jìn)位。另外,多位信號通常是多數(shù)位信號。
從而,如上所述,圖4表示使被乘數(shù)(X)乘以由多個數(shù)位表示的乘數(shù)的乘法器,所述乘法器包括保存和所述乘數(shù)的所述多個數(shù)位對應(yīng)的若干(L條)信息的存儲裝置;根據(jù)所述存儲裝置中的一條信息,對被乘數(shù)移位的移位裝置(BWS),和加法裝置(+),其中順序讀取所述存儲裝置中的若干信息,并作為控制信號提供給所述移位裝置,所述加法裝置計算所述移位裝置的輸出和先前獲得的所述加法裝置的輸出的總和。
圖5表示了根據(jù)本發(fā)明的改進(jìn)后的乘法器。由于在該變型中只修改了非運算,即被乘數(shù)的二進(jìn)制補碼的導(dǎo)出,因此只詳細(xì)說明這些變化。剩余的電路結(jié)構(gòu)和圖4中所示的類似,因此省略對其的重復(fù)描述。
如圖5中所示,移位后的X的值(值Y)被送給由反向零標(biāo)志控制的與門。如果零標(biāo)志為零,則反向零標(biāo)志為1,與門的輸出等于Y。如果零標(biāo)志為1(意味著存在值為零的一個乘數(shù)數(shù)位),則與門的輸出為0。
反向零標(biāo)志也被提供給向其提供符號信息(符號標(biāo)志)的另一與門。類似地,如果指示零(零標(biāo)志被設(shè)置為“1”,反向零標(biāo)志為“0”),則該與門的輸出為零,而如果不指示零,則輸出對應(yīng)于符號標(biāo)志代表的符號信息。在不指示零(反向零標(biāo)志為1)并且符號位為1的情況下,異門(XOR)反轉(zhuǎn)從被提供Y信號的上游與門向其提供的所有二進(jìn)制位。符號位還被送給加法裝置的LSB位置的進(jìn)位輸入,從而進(jìn)行“1”的加法。因此,如果符號位為“1”,則進(jìn)行Y的二進(jìn)制補碼的非運算(產(chǎn)生“-Y”),而如果符號位為“0”,則不進(jìn)行任何非運算(產(chǎn)生“Y”)。
借助這種修改,由于至少可節(jié)省一個多路復(fù)用器,因此可在硬件結(jié)構(gòu)方面使乘法器更簡單。
雖然已參考附圖中圖解說明的具體實施例說明了本發(fā)明,不過本發(fā)明并不局限于此。應(yīng)明白在不脫離本發(fā)明的精神和范圍的情況下,可對其做出各種修改。所有這種修改都在附加權(quán)利要求的范圍之內(nèi)。
從而,如上所述,本發(fā)明提出一種在時間上串行(而不是并行)進(jìn)行2的不同乘冪的乘法的乘法器,以便進(jìn)一步降低硬件實現(xiàn)所需的面積。由此,能夠只使用一個和乘法有關(guān)的加法器,這有助于降低硬件數(shù)量,并降低硬件所需的面積?;诩訖?quán)二進(jìn)制移位的移位裝置被用于和乘法有關(guān)的移位,從而減少了所而硬件的數(shù)量(多路復(fù)用器和硬連線移位單元的數(shù)目),因此進(jìn)一步降低了硬件實現(xiàn)所需的面積。本發(fā)明可用在應(yīng)用數(shù)字乘法的應(yīng)用中,例如用在數(shù)字處理處理DSP,數(shù)字濾波器和/或有限脈沖響應(yīng)濾波器FIR以及可編程和/或自適應(yīng)數(shù)字濾波器中。由于用CSD編碼表示乘數(shù),因此可減少必需的移位操作的數(shù)目,并且能夠減少必需的加法的數(shù)目,從而有助于降低硅片上移位裝置和乘法器的硬件實現(xiàn)所需的面積。
權(quán)利要求
1.一種移位裝置,用于將多數(shù)位輸入信號(X)移動若干數(shù)位,該若干數(shù)位可在0~2B-1的范圍內(nèi)選擇,所述移位裝置包括B個移位級,每個移位級包括由總共具有B個分量的移位量控制信號的第i個分量控制的一個多路復(fù)用器(MUX),用于根據(jù)所述移位量控制信號的所述第i個分量的值,輸出直接從第(i-1)移位級的多路復(fù)用器供給所述多路復(fù)用器的信號,或者輸出通過第i個移位單元,從第(i-1)移位級的多路復(fù)用器提供給所述多路復(fù)用器的信號,所述第i個移位單元適合于把提供給它的信號移動2i-1數(shù)位。
2.按照權(quán)利要求1所述的移位裝置,其中所述多數(shù)位輸入信號(X)是二進(jìn)制信號。
3.按照權(quán)利要求1所述的移位裝置,將被移位的所述信號(X)被提供給第一移位級,移位后的信號(Y)從第B移位級輸出。
4.按照權(quán)利要求1所述的移位裝置,其中最大移位量2B-1對應(yīng)于輸入信號將被乘以的乘數(shù)的數(shù)位的數(shù)目減1(n-1)。
5.按照權(quán)利要求1所述的移位裝置,其中移位單元通過固定布線實現(xiàn)。
6.一種使被乘數(shù)(X)乘以由多個數(shù)位表示的乘數(shù)的乘法器,所述乘法器包括保存和所述乘數(shù)的所述多個數(shù)位對應(yīng)的若干(L條)信息的存儲裝置;根據(jù)所述存儲裝置中的一條信息,對被乘數(shù)移位的移位裝置(BWS),和加法裝置(+),其中順序讀取所述存儲裝置中的若干信息,并作為控制信號提供給所述移位裝置,和所述加法裝置計算所述移位裝置(BWS)的輸出和先前獲得的所述加法裝置的輸出的總和。
7.按照權(quán)利要求6所述的乘法器,其中所述乘數(shù)由規(guī)范帶符號數(shù)位表示。
8.按照權(quán)利要求6所述的乘法器,其中和所述乘數(shù)的所述多個數(shù)位對應(yīng)的信息的數(shù)目(L)對應(yīng)于所述乘數(shù)的數(shù)位的數(shù)目。
9.按照權(quán)利要求7所述的乘法器,其中和所述乘數(shù)的所述多個數(shù)位對應(yīng)的信息的數(shù)目(L)對應(yīng)于以CSD表示法表示的所述乘數(shù)的非零數(shù)位的數(shù)目。
10.按照權(quán)利要求9所述的乘法器,其中保存在所述存儲裝置中的信息包括B位寬度的移位控制信號,它代表所述乘數(shù)的相關(guān)數(shù)位的權(quán)的值;指示所述乘數(shù)的相關(guān)數(shù)位的值為+1還是為-1的符號標(biāo)志,和指示所述乘數(shù)的相關(guān)數(shù)位的值是否為0的零標(biāo)志。
11.按照權(quán)利要求6所述的乘法器,其中所述移位裝置是按照權(quán)利要求1-5任一所述的移位裝置。
12.按照權(quán)利要求10所述的乘法器,還包括適合于輸出被乘數(shù)的二進(jìn)制補碼的信號處理裝置,其中所述符號標(biāo)志控制多路復(fù)用器輸出被乘數(shù)(X)或者輸出被乘數(shù)的所述二進(jìn)制補碼(-X)。
全文摘要
本發(fā)明提出一種在時間上串行(而不是并行)進(jìn)行2的不同乘冪的乘法的乘法器,以便進(jìn)一步降低硬件實現(xiàn)所需的面積。由此,能夠只使用一個和乘法有關(guān)的加法器,這有助于降低硬件數(shù)量,并降低硬件所需的面積。基于加權(quán)二進(jìn)制移位的移位裝置被用于和乘法有關(guān)的移位,從而減少了所需硬件的數(shù)量(多路復(fù)用器和硬連線移位單元的數(shù)目),因此進(jìn)一步降低了硬件實現(xiàn)所需的面積。本發(fā)明可用在應(yīng)用數(shù)字乘法的應(yīng)用中,例如用在數(shù)字處理處理DSP,數(shù)字濾波器和/或有限脈沖響應(yīng)濾波器FIR以及可編程和/或自適應(yīng)數(shù)字濾波器中。由于用CSD編碼表示乘數(shù),因此可減少必需的移位操作的數(shù)目,并且能夠減少必需的加法的數(shù)目,從而有助于降低硅片上移位裝置和乘法器的硬件實現(xiàn)所需的面積。
文檔編號G06F7/52GK1454347SQ00819914
公開日2003年11月5日 申請日期2000年10月16日 優(yōu)先權(quán)日2000年10月16日
發(fā)明者馬科·克索寧, 凱利·哈羅寧 申請人:諾基亞公司