一種乘累加裝置的製作方法
2023-06-01 10:33:41 1
專利名稱:一種乘累加裝置的製作方法
技術領域:
本發明涉及一種用於解決現代數位訊號處理器中多種乘累加模式的乘累加裝置。
背景技術:
乘累加(MAC)是數位訊號處理中最常見的運算之一,而且乘累加運算模式繁多,根據乘數和被乘數是否是有符號數可分為有符號數乘累加、無符號數乘累加和混合符號(一個乘數為有符號數,另一個為無符號數)乘累加,另外,在某些場合,需要考慮對乘累加運算的結果進行捨入,以保持計算的精度,因此這帶來了如何設計MAC裝置以滿足各種可能情況的要求。
由於現代數位訊號處理應用對數位訊號處理器(DSP)的工作頻率要求越來越高,而MAC的電路時延由於具體物理性質和功能複雜度的限制,即使隨著半導體工藝的不斷改進,也很難跟上DSP工作頻率的要求,因此將MAC的電路分為若干時鐘周期執行成為一種有效方法,但同時這也帶來了如何劃分MAC的功能結構以與DSP流水線匹配的問題。
發明內容
本發明的目的是提出一種用於解決處理器中多種乘累加模式的MAC結構裝置,這種裝置能夠解決多模式的乘累加運算,同時按照乘累加運算流程可以劃分成若干個順序執行單元,通過對執行單元的合理安排和組合達到與DSP流水線結構的最佳匹配。
為實現以上目的,本發明採用的技術方案為一種乘累加裝置,包括操作數解碼單元、部分積產生單元、Wallace樹型加法單元、累加單元和最終結果單元,其中所述操作數解碼單元包括輸入數據和信號的輸入信息模塊,
根據信號輸出多位數及其符號類型到其他單元各模塊的操作數解碼邏輯模塊;所述部分積產生單元包括將操作數解碼邏輯模塊輸出的部分多位數進行分裂並輸出的操作數分裂邏輯模塊,將操作數解碼邏輯模塊和操作數分裂邏輯模塊輸出的數據進行符號擴展並輸出到部分積產生邏輯模塊的符號擴展邏輯模塊,根據符號擴展邏輯模塊和操作數解碼邏輯模塊輸出的數據產生部分積結果並輸出到Wallace樹型加法單元和累加單元的部分積產生邏輯模塊,其中符號擴展邏輯模塊和部分積產生邏輯模塊各設置兩個,根據操作數分裂邏輯模塊產生的數據相互對應;所述Wallace樹型加法單元包括兩個將部分積產生邏輯模塊和操作數解碼邏輯模塊輸出的數據進行部分積累加的Wallace樹型加法邏輯模塊,並分別與部分積產生單元的分裂相對應;所述累加單元包括將最終結果單元和操作數解碼單元輸出的數據進行選擇並輸送到累加邏輯模塊的MUX子邏輯模塊,接受Wallace樹型加法單元、操作數解碼單元和MUX子邏輯模塊輸出的數據,並產生多位累加結果數據的累加邏輯模塊;所述最終結果單元包括接受累加單元輸出的數據,並產生最終運算結果。
作為本發明的一種改進,所述輸入信息模塊輸入信號包括多位乘累加算法功能信號、一位平方標誌信號和乘法數據類型標誌信號。
作為本發明的一種改進,所述部分積產生邏輯模塊使用添加了運算符號信息的BOOTH編碼算法。
作為本發明的一種改進,Wallace樹型加法邏輯模塊採用分裂式Wallace樹型加法結構。
作為本發明的一種改進,運算的捨入操作在所述累加單元完成。
下面對本發明做進一步的描述本發明提出的MAC結構裝置包含若干個輸入及其相關邏輯。這些輸入包括多位乘數、被乘數及多個乘累加算法選擇信號,其相關邏輯為根據特定的乘累加算法選擇信號及根據乘法數據類型標誌信號選擇對應的乘法或乘累加運算,並產生最終的結果。具體表現為操作數解碼單元模塊10、部分積產生單元模塊20、Wallace樹型加法單元模塊30、累加單元模塊40和最終結果單元模塊50,所述預解碼單元模塊10、部分積產生單元模塊20、Wallace樹型加法單元模塊30、累加單元模塊40和最終結果單元模塊50按順序依次連接。
MAC的本質就是接收兩個多位數據(乘數和被乘數),完成特定的乘法,並且根據要求確定是否將這個乘法結果和先前的結果相加/減。對於MAC裝置接收的多位數據,有符號數和無符號數的乘法處理過程是有區別的,因此這就涉及到乘數和被乘數的數據類型問題。同時,在許多數位訊號處理算法中,本次乘法的結果可能需要和先前的結果進行相加或相減以得到最終的結果,而且累加和累減的處理過程也是不同的,累減由於是用先前的結果減去本次乘法結果,需要取本次乘法結果的負數(變反加一操作),因此乘累加/減功能如何實現是MAC設計中需要重點考慮的問題。另外,處理器特別是定點處理器總是有位寬的限制,故在乘累加或乘累減運算中需要有處理精度的考慮和平衡,因此需要有捨入功能,以最大限度的保證系統的精度要求。
對於MAC裝置和DSP處理器的匹配關係,將MAC結構裝置劃分在多個流水級中並以若干時鐘周期執行可以滿足DSP高工作頻率要求。
BOOTH編碼算法是MAC設計中常用的快速算法,它以被乘數的每連續三位進行編碼,根據這些編碼得到係數和符號位決定產生相應的部分積,這樣以來就等效為被乘數每兩位決定一個部分積結果,通過這種方法可以將乘法運算所需的部分積減少一半。BOOTH編碼和部分積之間有一定的邏輯對應關係,如表1所示。採用表1所示的部分積產生方式,在執行乘累減操作時需要做取負操作。本發明提出了另一種BOOTH編碼與部分積產生邏輯關係,相比表1它添加了乘累加/減運算的相關符號信息S,如表2所示。採用表2所示的部分積產生方式,在執行乘累減操作時無需再做取負操作,但這種方式略微增加了BOOTH編碼的複雜度。
對於部分積相加,可以採用Wallace樹型加法結構實現,它把若干個部分積結果通過3∶2全加器或4∶2/5∶2 Compressor等算法實現各列垂直相加,Wallace樹型加法最終得到兩個結果,一個是和數(sum),一個進位數(carry)。對於16bit乘累加運算,Wallace樹型結構需要接收九個部分積輸入向量,同時產生兩個輸出向量(sum向量和carry向量),但顯然九個部分積累加會造成了Wallace樹時延過長,結構過於複雜,不利於本發明所要設計的多流水級MAC的時延均衡。鑑於這種情況,本發明提出採用分裂式Wallace樹型加法結構,這種結構只需要接受五個部分積輸入向量,從而減小了Wallace樹型結構的時延,有利於流水MAC的時延均衡。
表1 BOOTH編碼和部分積產生邏輯關係表
表2±A×B BOOTH編碼和部分積產生邏輯關係表
與現有技術相比,本發明專利的有益效果是本發明結構安排合理,更好更快的實現了乘累加/減功能;對BOOTH編碼算法進行改進,最大限度的保證系統的精度,滿足了處理器位寬的限制;部分積相加採用分裂式Wallace樹型加法結構,減小了Wallace樹型結構的時延,有利於流水MAC的時延均衡;將捨入操作前置於累加單元完成,減少整個MAC的時延。
附圖1為本發明的MAC結構裝置系統構架圖。
附圖2為本發明Wallace樹型加法和Accumulator累加的具體實現圖。
附圖3為本發明MAC最終結果產生圖。
附圖4為本發明所描述的MAC裝置與DSP流水線的一種匹配關係圖。
實施方式本發明可由以下附圖及其說明具體闡述。
詳細描述圖1多位數據A、BH、BL,一位數據sign_A、sign_B、po_ng、acm_en、shift_en、round_en為操作數解碼單元模塊10的輸出。
多位數據p*0、p*4、p**0、p**4、sub_carry*[3:0]、sub_carry**[3:0],一位數據sub_carry*[4]、sub_carry**[4]為部分積產生單元模塊20的輸出。
多位數據sum*、carry*、sum**、carry**為Wallace樹型加法單元模塊30的輸出。
多位數據mux_product、acm_product為累加單元模塊40的輸出。
多位數據product為最終結果單元模塊50的輸出圖2對於高半部Wallace樹加法邏輯Pxy部分積的具體位,其中x表示部分積的標識號,0≤x≤4,y表示此部分積的具體位,0≤y≤17,Pxy 部分積的具體位的相反數,其中x表示部分積的標識號,0≤x≤4,y表示此部分積的具體位,0≤y≤17,Sci部分積進位結果的具體位,0≤i≤4,Si部分積累加的和數向量,0≤i≤26,Ci部分積累加的進位數向量,0≤i≤25。
對於低半部Wallace樹加法邏輯Pxy部分積的具體位,其中x表示部分積的標識號,0≤x≤4,y表示此部分積的具體位,0≤y≤25,Pxy 部分積的具體位的相反數,其中x表示部分積的標識號,0≤x≤4,y表示此部分積的具體位,0≤y≤25,Sci部分積進位結果的具體位,0≤i≤4,Si部分積累加的和數向量,0≤i≤34,Ci部分積累加的進位數向量,0≤i≤33。
Mi對應於圖1的mux_product,0≤i≤39,
Sc』4i為兩個Sc4的等效變換,0≤i≤3,rnd捨入信號,Ei accumulator累加的和數向量,0≤i≤39,Fiaccumulator累加的進位數向量,0≤i≤38,Ti對應於圖1的acm_product,0≤i≤39,圖3accumulator多位數據,作為判據邏輯的輸入,accumulator[15:0]==16』h0000判據邏輯,{accumulator[39:17],17』b0}多位數據,判據邏輯的輸出結果之一,accumulator[39:0]多位數據,判據邏輯的輸出結果之一,YES判據邏輯的真指向,NO判據邏輯的假指向。
圖4interface處理器流水級界面,clock 處理器時鐘,EX1處理器的可擴展的執行級的第一級,EX2處理器的可擴展的執行級的第二級,mac_ps1 MAC功能裝置在可擴展執行級的第一級的部分,mac_ps2 MAC功能裝置在可擴展執行級的第二級的部分,PART I MAC功能裝置的操作數解碼單元10,PART II MAC功能裝置的部分積產生單元20,PART III MAC功能裝置的分裂式Wallace樹型加法單元30,PART IV MAC功能裝置的累加單元40,PART V MAC功能裝置的最終結果單元50。
本發明實例將配合附圖1-4詳細說明。
在圖1中,本發明實例將MAC系統裝置劃分為五個順序執行的功能單元I、II、III、IV、V,每個功能單元分別完成MAC裝置的部分功能。
功能單元I為操作數解碼單元10,其接受多位乘數輸入模塊101,多位被乘數輸入模塊102,多位乘累加算法功能信號MF,一位平方標誌信號SQE以及乘法數據類型標誌信號MODE作為輸入,其中MF用於選擇當前的運算為乘法運算還是乘累加運算,同時選擇參與運算乘數mltiplicand和被乘數mltiplicator的符號類型,以及當前運算是否需要捨入;SQE用於判斷當前運算是平方運算還是乘累加;MODE用於選擇當前的mltiplicand和mltiplicator的數據類型,本發明MAC支持整型數(例如16.0格式)和分數乘法(例如1.15),在本發明實例中,整型數指數據的小數點定標在數據的最低位的後一位,這樣數據所有位均在小數點之前,分數指數據的小數點定標在數據的最高位的後一位,這樣數據除最高位在小數點之前,其餘各位均在小數點之後。
功能單元I內的邏輯是操作數解碼邏輯模塊103,在本發明實例中它的作用是根據MF,SQE、MODE信號的指示輸出參與乘法運算的多位數據A、B,同時輸出它們的符號類型位sign_A和sign_B,其邏輯如下所示A=mltiplicand;MF選擇乘數為無符號數sign_A=1;MF選擇乘數為無符號數sign_A=0;SQE置高B=mltiplicand;SQE置低B=mltiplicantor;MF選擇被乘數為無符號數sign_B=1;MF選擇被乘數為無符號數sign_B=0;MF使能乘累加/減運算acm_en=1;MF使能乘法運算acm_en=0;MF使能乘累減或負乘法運算po_ng=1;MF使能乘累加或正乘法運算po_ng=0;MF使能捨入操作round_en=1;MF禁止捨入操作round_en=0;MODE置高分數乘法,shift_en=1;MODE置低整數乘法,shift_en=0;操作數解碼邏輯模塊103對MF、MODE、SQE等信號的解碼處理是並行執行的,它們之間不存在任何解碼相關性,即操作數解碼邏輯模塊103對MF的解碼不會對SQE的解碼產生幹擾,其他信號同此情況。因此對於操作數解碼單元10所包含的解碼信號的所有可能組合,操作數解碼邏輯模塊103均可對其做出正確的解碼處理。
功能單元II為部分積產生單元20,其接受操作數解碼單元10輸出的多位數據A和B(為方便文中敘述,不妨設為16位),以及對應的符號位sign_A和sign_B。
操作數分裂邏輯201將B分裂為BH和BL,其中B=BH×216/2+BL,即BH和BL分別是B的高半部和低半部;高半部符號擴展邏輯202以A、BH、sign_A和sign_B作為輸入,擴展邏輯為sign_A=1A*={0,A},其中{ }表示連接符,即A在最高位向左擴展一位0;sign_A=0A*={A[15],A},其中{ }表示連接符,A[15]表示A的最高位,即A在最高位以其值向左擴展一位;sign_B=1BH*={0,0,BH},其中{ }表示連接符,即BH在最高位向左擴展兩位0;sign_B=0BH*={BH[7],BH[7],BH},其中{ }表示連接符,BH[7]表示的BH的最高位,即BH在最高位以其值向左擴展兩位。
低半部符號擴展邏輯203以A、BL、sign_A和1作為輸入,擴展邏輯為sign_A=1A**={9』b0,A},其中{ }表示連接符,即A在最高位向左擴展九位0;sign_A=0A**={{9{A[15]}},A},其中{ }表示連接符,A[15]表示A的最高位,即A在最高位以其值向左擴展九位;BL**={0,0,BL},其中{ }表示連接符,即BL在最高位向左擴展兩位0。
在部分積產生單元20中部分積產生邏輯分裂為兩部分高半部部分積產生邏輯(204)和低半部部分積產生邏輯(205),分別產生A*×BH*和A**×BL**相應的部分積結果,對於此邏輯,本發明實例提出了一種將po_ng信號同時考慮的部分積聯合產生方法,見表2,通過這種BOOTH編碼方式可避免在後面的累加邏輯模塊401對和數向量和進位數向量做變負操作。
部分積產生單元20以16位乘數為例,詳細分析了部分積產生的方法,通過高/低半部符號擴展邏輯{202,203}和高/低半部部分積產生邏輯{204,205}的共同作用可產生出正確的部分積,對於其它位的乘數,採用同樣的處理方法就可保證部分積的正確。
功能單元III為分裂式Wallace樹型加法單元30,分裂為兩部分高半部Wallace樹加法邏輯(301)和低半部Wallace樹加法邏輯(302),分別用於累加高半部部分積產生邏輯(204)和低半部部分積產生邏輯(205)輸出的部分積結果P*0...p*4和p**0...p**4以及多位進位結果sub_carry*[3:0]和sub_carry**[3:0],以圖2為例,本說明書闡述了本發明提出的利用分裂式Wallace樹來處理部分積累加的實施過程。
圖2為一個16bit×8bit和24bit×8bit混合乘法的分裂式Wallace樹型加法和Accumulator累加邏輯圖,其中A×BH為16bit×8bit乘法,A×BL為24bit×8bit乘法。兩種乘法都需要產生五個部分積,這五個部分積依次錯開兩位疊和在一起組成Wallace樹,如果將此Wallace樹視為行列式,從垂直方向看,每列由若干個分布在各個部分積上的特定位組成,可以採用3∶2全加器將此列中的每3位加起來,產生一個結果位和一個進位位,通過此類組合,則此Wallace樹需要用三級全加器加一級半加器才能實現五個部分積累加,並最終產生一個和數和一個進位數。為了減小Wallace樹加法的所用加法器級數,本發明不在功能單元III中處理圖2中的Sc4(su4_carry*[4]/sub_carry**[4])變量,將其後置於功能單元IV處理,通過這種方法可使兩個Wallace樹結構都只需三級全加器就能實現五個部分積累加,減少了一級半加器。
兩個Wallace樹型加法邏輯都包含一個數據類型處理邏輯,此模塊根據移位信號shift_en的高低決定最終的和數和進位數,其具體邏輯如下shift_en=1和數(sum*/sum**)和進位數(carry*/carry**)分別為Wallace樹型加法的兩個結果;shift_en=0和數(sum*/sum**)和進位數(carry*/carry**)分別為Wallace樹型加法的兩個結果各左移一位。
功能單元IV為累加單元40,此單元接收Wallace樹型加法單元30輸出的多位和數sum*/sum**和進位數carry*/carry**,同時接收操作數解碼單元10輸出的捨入使能信號round_en和累加使能信號acm_en以及最終結果單元50輸出的MAC裝置先前運算結果數據product,產生多位累加結果數據acm_product。
對於捨入操作,傳統方法是在MAC結果產生以後進行,這會增加24位捨入加法電路的時延和電路面積。本發明實例將捨入操作前置於累加單元完成,僅需要增加(1個全加器一1個半加器)的時延和電路面積。
累加單元40中的MUX子邏輯模塊402為二選一選擇器,其接收最終結果單元50輸出的MAC裝置先前運算結果數據product和零數據,通過累加使能信號acm_en選擇二者之一輸送到多位輸出數據mux_product,具體邏輯為acm_en=1 mux_product=product;acm_en=0 mux_product=0;以圖2為例,本說明書闡述了累加邏輯模塊401的累加實施過程。從圖2可以看到,累加邏輯模塊401需要接受來自分裂式Wallace樹型加法單元30的4個向量數,分別是A×BH的sum*、carry*和A×BL的sum**、carry**,還有來自最終結果單元50的mux_product向量,產生多位輸出結果數據acm_product。捨入操作前置於本功能單元完成,見圖2中rnd變量,而功能單元III中未處理的兩個Sc4需要後置於本功能單元處理,具體處理方法是兩個Sc4的位置如圖2所示,分別對應於Accumulator的第8列和第16列,又由於存在分數乘法模式,需要左移一位,因此給兩個Sc4都向左擴展一位,即Sc』40、Sc』41、Sc』42和Sc』43,這4個變量與rnd信號處於同一行,因此不會增加Accmulator的關鍵路徑長度。
功能單元V為最終結果單元50,其接收累加單元40輸出的多位累加結果acm_product,產生最終的MAC裝置運算結果product。它包含一個最終結果選擇邏輯模塊501,其與先前本發明實例提出捨入運算前置於累加單元的方法有關。圖3以十六位乘法或乘累加為例,並假定最終的累加結果為四十位,闡述最終結果選擇邏輯模塊501的具體實施過程。
在圖3中,首先判斷本次MAC運算是否有捨入操作,如果沒有,則最終的MAC運算結果就是accumulator[39:0];如果有捨入操作,雖然之前已經進行了捨入操作(即已經對accumulator的第15位加1),但是由於本發明採用的是無偏捨入,所以還需要做進一步的處理,判據邏輯接收多位累加運算結果數據accumulator,通過判據邏輯accumulator[15:0]==16』h0000是否成立從兩個輸出選項{accumulator[39:17],17』b0}和accumulator[39:0]中選擇正確的輸出,具體邏輯如下accumulator[15:0]==16』h0000為真,對於本發明實例採用的無偏差捨入運算,無論accumulator[16]是否為1,都要將其置為0,最終運算結果如圖3中的YES指向所示;accumulator[15:0]==16』h0000為假,則無需再對捨入後的結果做無偏化,最終運算結果如圖3中NO指向所示。
無偏差捨入傳統的有偏差捨入方法是在加法器電路的第15位處加1。由於位於中間的值(MAC結果低16位==0x8000)總是被向上捨入,該方法引起一個正偏差。在無偏差捨入方案中,當累加器檢測到這個中間值時,會將輸出結果的第16位強制為0。這樣會產生一個效果當MAC結果的高24位為奇數時,向上捨入;為偶數時,向下捨入。於是在平均分布的條件下,捨入偏差的統計平均值為0。因此稱該方法為無偏差捨入方案。
本發明實例提出了一種MAC功能裝置和DSP處理器流水級匹配的方法,以圖4為例,本說明書闡述了MAC功能劃分、功能單元組合與DSP流水線的匹配關係。
假定DSP處理器在EX(execute)執行級進行乘法或乘累加運算,由於MAC功能裝置的複雜性限制,很難在一個DSP處理器時鐘周期內完成,因此在本發明實例中,DSP處理器採用了可擴展EX級結構,即EX流水級是可伸縮的,其根據功能模塊運行所需時鐘周期自動收縮。
對於MAC結構裝置,本發明實例將其分為五個順序的功能單元,可以此為基礎,建立若干連續功能單元組合,通過對MAC電路關鍵路徑時延與DSP各流水級約束時延匹配關係的分析,將MAC功能裝置的各功能單元及其組合均勻分配在各流水級中,本發明實例提出的按MAC裝置功能單元的組合與DSP流水線匹配關係嘗試方法來界定各功能單元在流水級中的分布有助於平衡各流水級時延,從而實現DSP處理器的均衡設計。更進一步,本發明實例提出的功能單元與流水級匹配方法還可以進一步擴展,可以將各功能單元繼續細分成連續的若干子邏輯模塊,通過功能單元內外的子邏輯模塊層次的組合與DSP流水線匹配關係的嘗試,不僅可以滿足處理器更高工作頻率要求,而且更有助於流水級的均衡。以圖4為例,本發明實例根據目標DSP處理器的流水級時延要求以及功能單元組合與DSP流水線匹配關係的嘗試,將MAC功能裝置劃分為電路時延大體相等的mac_ps1和mac_ps2兩部分,其中mac_ps1包括PART I、PARTII、PART III三個功能單元,安排在EX1流水級執行;mac_ps2包括PART IV、PART V兩個功能單元,安排在EX2流水級執行;由於MAC兩部分執行所得結果均通過由時鐘(clock)鎖存的各流水級界面(interface)輸出,因此不會產生處理器時延的疊加,同時對於連續的MAC運算,採用了EX2-EX1的反饋機制,因此在連續的兩個時鐘周期可以完成兩次MAC運算,從而利用了流水線的特點,等效於單周期的MAC運算,達到了MAC模塊和DSP系統構架的理想匹配。
綜上所述,本發明實例提出了一種MAC結構裝置,用於解決多種模式的乘法和乘累加運算,將MAC結構裝置劃分成順序的五個結構單元,對每個結構單元分別處理和優化;提出了一種基於±A×B BOOTH編碼、捨入運算前置於MAC累加過程、24bit×8bit和16bit×8bit混合乘法的分裂式Wallace樹結構和符號位後置處理的流水化MAC設計方法,滿足了處理器要求,實現了和DSP流水線的最佳匹配,並達到了最佳的均衡效果和關鍵路徑最短的時延長度。本發明實例所提出的方法可以組合使用,也可以分別單獨使用,可以在DSP處理器中使用,也可以在面向各種需要MAC功能裝置的電路實現中使用。
以上實施例僅是對本發明的具體說明,本領域研發人員根據本發明做出的任何變形均在發明的保護範圍內。
權利要求
1.一種乘累加裝置,包括操作數解碼單元、部分積產生單元、Wallace樹型加法單元、累加單元和最終結果單元,其特徵在於所述操作數解碼單元包括輸入數據和信號的輸入信息模塊,根據信號輸出多位數及其符號類型到其他單元各模塊的操作數解碼邏輯模塊;所述部分積產生單元包括將操作數解碼邏輯模塊輸出的部分多位數進行分裂並輸出的操作數分裂邏輯模塊,將操作數解碼邏輯模塊和操作數分裂邏輯模塊輸出的數據進行符號擴展並輸出到部分積產生邏輯模塊的符號擴展邏輯模塊,根據符號擴展邏輯模塊和操作數解碼邏輯模塊輸出的數據產生部分積結果並輸出到Wallace樹型加法單元和累加單元的部分積產生邏輯模塊,其中符號擴展邏輯模塊和部分積產生邏輯模塊各設置兩個,根據操作數分裂邏輯模塊產生的數據相互對應;所述Wallace樹型加法單元包括兩個將部分積產生邏輯模塊和操作數解碼邏輯模塊輸出的數據進行部分積累加的Wallace樹型加法邏輯模塊,並分別與部分積產生單元的分裂相對應;所述累加單元包括將最終結果單元和操作數解碼單元輸出的數據進行選擇並輸送到累加邏輯模塊的MUX子邏輯模塊,接受Wallace樹型加法單元、操作數解碼單元和MUX子邏輯模塊輸出的數據,並產生多位累加結果數據的累加邏輯模塊;所述最終結果單元包括接受累加單元輸出的數據,並產生最終運算結果。
2.根據權利要求1所述的乘累加裝置,其特徵在於,所述輸入信息模塊輸入信號包括多位乘累加算法功能信號、一位平方標誌信號和乘法數據類型標誌信號。
3.根據權利要求1或2所述的乘累加裝置,其特徵在於,所述部分積產生邏輯模塊使用添加了運算符號信息的BOOTH編碼算法。
4.根據權利要求1或2所述的乘累加裝置,其特徵在於,Wallace樹型加法邏輯模塊採用分裂式Wallace樹型加法結構。
5.根據權利要求1或2所述的乘累加裝置,其特徵在於,運算的捨入操作在所述累加單元完成。
全文摘要
本發明涉及一種用於解決現代數位訊號處理器中多種乘累加模式的乘累加裝置。本發明提出的乘累加裝置包括操作數解碼單元、部分積產生單元、Wallace樹型加法單元、累加單元和最終結果單元,所述預解碼單元、部分積產生單元、Wallace樹型加法單元、累加單元和最終結果單元按順序依次連接。本發明結構安排合理,更好更快的實現了乘累加/減功能;對BOOTH編碼算法進行改進,最大限度的保證系統的精度,滿足了處理器位寬的限制;部分積相加採用分裂式Wallace樹型加法結構,減小了Wallace樹型結構的時延,有利於流水MAC的時延均衡;將捨入操作前置於累加單元完成,減少整個MAC的時延。
文檔編號G06F7/48GK101082860SQ20071006974
公開日2007年12月5日 申請日期2007年7月3日 優先權日2007年7月3日
發明者劉鵬, 範佑, 夏冰潔, 姚慶棟 申請人:浙江大學