![MSP430程序庫(kù)十三硬件乘法器使用_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/19/5243d059-900c-482c-bcf4-0ed16c617375/5243d059-900c-482c-bcf4-0ed16c6173751.gif)
![MSP430程序庫(kù)十三硬件乘法器使用_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/19/5243d059-900c-482c-bcf4-0ed16c617375/5243d059-900c-482c-bcf4-0ed16c6173752.gif)
![MSP430程序庫(kù)十三硬件乘法器使用_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/19/5243d059-900c-482c-bcf4-0ed16c617375/5243d059-900c-482c-bcf4-0ed16c6173753.gif)
![MSP430程序庫(kù)十三硬件乘法器使用_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/19/5243d059-900c-482c-bcf4-0ed16c617375/5243d059-900c-482c-bcf4-0ed16c6173754.gif)
![MSP430程序庫(kù)十三硬件乘法器使用_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/19/5243d059-900c-482c-bcf4-0ed16c617375/5243d059-900c-482c-bcf4-0ed16c6173755.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、MSP430程序庫(kù)<十三>硬件乘法器使用硬件乘法器不占用CPU周期,有硬件實(shí)現(xiàn),速度比軟件實(shí)現(xiàn)的乘法速度快很多。msp430f14x、msp430f16x中都含有硬件乘法器模塊,方便用戶需要速度的時(shí)候使用。· 硬件介紹: 在MSP430系列單片機(jī)中,硬件乘法器是外圍模塊,而不是CPU內(nèi)核的一部分;所以它的活動(dòng)與否與CPU的活動(dòng)與否無(wú)關(guān),它的寄存器和其他的外圍寄存器一樣通過(guò)CPU指令讀寫(xiě)。硬件乘法器模塊支持一下功能:無(wú)符號(hào)乘法、有符號(hào)乘法、無(wú)符號(hào)乘加、有符號(hào)乘加;可以支持16*16 16*8 8*16 8*8bits的乘法。硬件乘法器的模塊框圖如下:硬件乘法器模塊的四種操作
2、類(lèi)型(無(wú)符號(hào)乘法、有符號(hào)乘法、無(wú)符號(hào)乘加、有符號(hào)乘加)是由寫(xiě)入的第一個(gè)操作數(shù)的位置決定的。這個(gè)模塊有兩個(gè)操作數(shù)寄存器:OP1和OP2、三個(gè)結(jié)果寄存器RESLO, RESHI, 和SUMEXT。RESLO寄存器存儲(chǔ)結(jié)果的低字(低16位);RESHI寄存器存儲(chǔ)結(jié)果的高字(高16位);SUMEXT寄存器存儲(chǔ)結(jié)果的有關(guān)信息。結(jié)果在3個(gè)時(shí)鐘周期后即可完成;寫(xiě)入OP2后的下一條指令即可讀取結(jié)果,有一種情況例外:用間接尋址方式訪問(wèn)結(jié)果。用間接尋址方式訪問(wèn)結(jié)果時(shí),讀取結(jié)果之前需要有一條NOP指令。操作數(shù)OP1有四個(gè)地址(MPY:0130h MPYS:0132h MAC:0134h MACS:0136h),這四
3、個(gè)寄存器用來(lái)選擇乘法的操作模式。寫(xiě)入第一個(gè)操作數(shù)寄存器決定用哪種操作:無(wú)符號(hào) 用符號(hào)等,但是不啟動(dòng)相乘操作;寫(xiě)入第二個(gè)操作數(shù)寄存器啟動(dòng)相乘的操作。計(jì)算完成后結(jié)果存入寄存器RESLO,RESHI, 和SUMEXT。操作數(shù)1的四個(gè)地址對(duì)應(yīng)的操作:OP1 Address Register Name Operation0130h MPY Unsigned multiply(無(wú)符號(hào)乘法)0132h MPYS Signed multiply(有符號(hào)乘法)0134h MAC Unsigned multiply accumulate(無(wú)符號(hào)乘加)0136h MACS Signed multiply accum
4、ulate(有符號(hào)乘加)四種操作模式下高位結(jié)果寄存器的內(nèi)容如下:Mode RESHI ContentsMPY Upper 16-bits of the resultMPYS The MSB is the sign of the result. The remaining bits are the upper 15-bits of the result. Twos complement notation is usedfor the result.MAC Upper 16-bits of the resultMACS Upper 16-bits of the result. Twos compl
5、ement notation is used for the result.四種操作模式SUMEXT 寄存器的內(nèi)容:Mode SUMEXTMPY SUMEXT is always 0000hMPYS SUMEXT contains the extended sign of the result 00000h Result was positive or zero 0FFFFh Result was negativeMAC SUMEXT contains the carry of the result 0000h No carry for result 0001h Result has a ca
6、rryMACS SUMEXT contains the extended sign of the result 00000h Result was positive or zero 0FFFFh Result was negative連續(xù)乘法運(yùn)算時(shí),如果操作數(shù)1不需改變就可以運(yùn)算,則可以不需要重新寫(xiě)入和以保存內(nèi)容相同的數(shù);但OP2必須重新寫(xiě)入以啟動(dòng)乘法運(yùn)算。MACS Underflow and Overflow(MACS時(shí)的上溢和下溢):硬件乘法器不檢測(cè)有符號(hào)乘加時(shí)運(yùn)算結(jié)果的上溢出和下溢出。結(jié)果的正數(shù)范圍:0到7FFF FFFFh;負(fù)數(shù)范圍:0FFFF FFFFh到8000 0000h。下溢出
7、是兩個(gè)負(fù)數(shù)的和結(jié)果寄存器得到的是正數(shù),上溢出是兩個(gè)正數(shù)的和結(jié)果寄存器得到的是負(fù)數(shù)。SUMEXT寄存器存儲(chǔ)有結(jié)果的符號(hào),可以根據(jù)它判斷是否溢出(0000h 負(fù)數(shù)和 則上溢 0FFFFh 正數(shù)和 則下溢)。使用時(shí) 程序必須合適的檢測(cè)、處理MACS的溢出情況。程序示例(用戶指南上給出的匯編示例):所有乘數(shù)模式的例子如下。所有的8x8模式使用的寄存器的絕對(duì)地址,因?yàn)閰R編器將不允許B訪問(wèn)到字寄存器時(shí)使用標(biāo)準(zhǔn)定義的文件標(biāo)簽。; 16x16 Unsigned MultiplyMOV #01234h,&MPY ; Load first operandMOV #05678h,&OP2 ; Loa
8、d second operand; . ; Process results; 8x8 Unsigned Multiply. Absolute addressing.MOV.B #012h,&0130h ; Load first operandMOV.B #034h,&0138h ; Load 2nd operand; . ; Process results; 16x16 Signed MultiplyMOV #01234h,&MPYS ; Load first operandMOV #05678h,&OP2 ; Load 2nd operand; . ; Pro
9、cess results; 8x8 Signed Multiply. Absolute addressing.MOV.B #012h,&0132h ; Load first operandSXT &MPYS ; Sign extend first operandMOV.B #034h,&0138h ; Load 2nd operandSXT &OP2 ; Sign extend 2nd operand; (triggers 2nd multiplication); . ; Process results; 16x16 Unsigned Multiply Accu
10、mulateMOV #01234h,&MAC ; Load first operandMOV #05678h,&OP2 ; Load 2nd operand; . ; Process results; 8x8 Unsigned Multiply Accumulate. Absolute addressingMOV.B #012h,&0134h ; Load first operandMOV.B #034h,&0138h ; Load 2nd operand; . ; Process results; 16x16 Signed Multiply Accumulat
11、eMOV #01234h,&MACS ; Load first operandMOV #05678h,&OP2 ; Load 2nd operand; . ; Process results; 8x8 Signed Multiply Accumulate. Absolute addressingMOV.B #012h,&0136h ; Load first operandSXT &MACS ; Sign extend first operandMOV.B #034h,R5 ; Temp. location for 2nd operandSXT R5 ; Sign
12、 extend 2nd operandMOV R5,&OP2 ; Load 2nd operand; . ; Process results上面的程序雖然和標(biāo)準(zhǔn)的匯編差異比較大,但是有一定匯編基礎(chǔ)的人還是很容易就能夠看懂。這里的程序給出了多種方式寫(xiě)入操作數(shù)寄存器。間接尋址結(jié)果寄存器時(shí),在寫(xiě)入OP2操作數(shù)啟動(dòng)乘法后,至少需要一個(gè)指令的延遲后才能訪問(wèn)結(jié)果寄存器RESLO等;直接尋址時(shí)可以寫(xiě)入OP2后,下一條指令即可讀取結(jié)果。示例程序(匯編):; Access multiplier results with indirect addressingMOV #RESLO,R5 ; RESLO a
13、ddress in R5 for indirectMOV &OPER1,&MPY ; Load 1st operandMOV &OPER2,&OP2 ; Load 2nd operandNOP ; Need one cycle 寫(xiě)入兩個(gè)操作數(shù) 乘法運(yùn)算開(kāi)始后 需要一個(gè)NOPMOV R5+,&xxx ; Move RESLOMOV R5,&xxx ; Move RESHI如果在寫(xiě)入OP1和寫(xiě)入OP2之間產(chǎn)生了中斷,中斷響應(yīng)后,源操作數(shù)的計(jì)算模式丟失;運(yùn)算結(jié)果不確定。為了避免這種情況的發(fā)生,在寫(xiě)入操作數(shù)時(shí)禁止中斷或在中斷響應(yīng)函數(shù)中不使用硬件乘法器。如
14、:; Disable interrupts before using the hardware multiplierDINT ; Disable interruptsNOP ; Required for DINTMOV #xxh,&MPY ; Load 1st operandMOV #xxh,&OP2 ; Load 2nd operandEINT ; Interrupts may be enable before; Process results硬件部分就說(shuō)這么多了,有什么不大明白的可以參考用戶指南。· 使用示例: 我的程序僅僅是用C語(yǔ)言演示硬件乘法器的使用。程序主要
15、內(nèi)容如下:#include <msp430x16x.h>/* 名 稱(chēng):main主程序* 功 能:硬件乘法器程序庫(kù)使用演示* 入口參數(shù):無(wú)* 出口參數(shù):無(wú)*/void main( void ) / Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; ClkInit(); /*把 硬件乘法器的寄存器放到watch窗口 觀察是否變化 int a = 0; a= 5*6; */ /測(cè)試無(wú)符號(hào)乘法 MPY = 65535; OP2 = 2; /有符號(hào)乘法 MPYS = 65535; OP2 = 2;
16、/無(wú)符號(hào)乘加 MAC = 65535; OP2 = 2; /有符號(hào)乘加 MACS = 65535; OP2 = 2; LPM0;程序演示了4中乘法模式:使用時(shí)單步調(diào)試,觀察硬件乘法器的有關(guān)寄存器。如:硬件乘法器運(yùn)算速度很快,只需3個(gè)時(shí)鐘周期;這里IAR單步調(diào)試時(shí),OP2賦值結(jié)束,在watch窗口馬上就可以看到運(yùn)算結(jié)果。其他三種模式類(lèi)似。注釋掉的這部分是我用來(lái)檢測(cè)IAR編譯程序是否使用硬件乘法器進(jìn)行測(cè)試。默認(rèn)情況下,乘法應(yīng)該是用硬件乘法器運(yùn)算的。默認(rèn)的設(shè)置如下:硬件乘法器是選中的,這時(shí)應(yīng)該是使用硬件乘法器的,但是我的調(diào)試結(jié)果顯示它沒(méi)有使用硬件乘法器,截圖下:運(yùn)行后乘法器相關(guān)位沒(méi)有對(duì)應(yīng)變化,如果使
17、用的話,應(yīng)該變化。硬件乘法器不選中時(shí),寄存器也沒(méi)有相應(yīng)變化,從這看,IAR沒(méi)有使用硬件乘法器;也許程序沒(méi)有優(yōu)化太多或是debug版本不使用硬件乘法器。如果需要直接使用硬件乘法器,有必要時(shí)把設(shè)置的硬件乘法器去掉,以防沖突。下面是直接使用硬件乘法器的一個(gè)實(shí)例:#include "msp430x16x.h"unsigned int Result7;unsigned char Data17;unsigned char Data27;void main(void) unsigned char i; WDTCTL = WDTPW + WDTHOLD; / 關(guān)看門(mén)狗 for(i=0; i<7; i+) Data1i = 10 * i; / 對(duì)兩數(shù)組賦值 Data2i = 25 * i; for(i=0; i<7; i+) MPY = Data1i; OP2 = Data2i; _NOP(); / 延遲 _NOP(); _NOP(); Resulti = RESLO; / 保存結(jié)果,由于是8×8型,所以未用到RESHI;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球非電動(dòng)助殘?jiān)O(shè)備行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球智能媒體芯片行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 課件:《教育強(qiáng)國(guó)建設(shè)規(guī)劃綱要(2024-2035年)》學(xué)習(xí)宣講
- 進(jìn)修學(xué)習(xí)合同書(shū)
- 2025深圳市建設(shè)工程施工合同(適用于招標(biāo)工程固定單價(jià)施工合同)
- 工程可行性研究報(bào)告模板
- 終端設(shè)備維護(hù)服務(wù)合同
- 2025出租車(chē)輛承包合同范本
- 鋼筋綁扎勞務(wù)合同范本
- 醫(yī)院裝修合同
- 人教版《道德與法治》四年級(jí)下冊(cè)教材簡(jiǎn)要分析課件
- 2023年MRI技術(shù)操作規(guī)范
- 辦公用品、易耗品供貨服務(wù)方案
- 自行聯(lián)系單位實(shí)習(xí)申請(qǐng)表
- 醫(yī)療廢物集中處置技術(shù)規(guī)范
- 媒介社會(huì)學(xué)備課
- 2023年檢驗(yàn)檢測(cè)機(jī)構(gòu)質(zhì)量手冊(cè)(依據(jù)2023年版評(píng)審準(zhǔn)則編制)
- 三相分離器原理及操作
- 新教科版五年級(jí)下冊(cè)科學(xué)全冊(cè)每節(jié)課后練習(xí)+答案(共28份)
- 葫蘆島尚楚環(huán)??萍加邢薰踞t(yī)療廢物集中處置項(xiàng)目環(huán)評(píng)報(bào)告
- 全國(guó)物業(yè)管理項(xiàng)目經(jīng)理考試試題
評(píng)論
0/150
提交評(píng)論