東北大學(xué)數(shù)字信號(hào)處理課件-匯編語言程序設(shè)計(jì)_第1頁
東北大學(xué)數(shù)字信號(hào)處理課件-匯編語言程序設(shè)計(jì)_第2頁
東北大學(xué)數(shù)字信號(hào)處理課件-匯編語言程序設(shè)計(jì)_第3頁
東北大學(xué)數(shù)字信號(hào)處理課件-匯編語言程序設(shè)計(jì)_第4頁
東北大學(xué)數(shù)字信號(hào)處理課件-匯編語言程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩62頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第第7章章 匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì)7.1 程序流程控制程序流程控制7.2 數(shù)據(jù)塊傳送數(shù)據(jù)塊傳送7.3 定點(diǎn)數(shù)的基本算術(shù)運(yùn)算定點(diǎn)數(shù)的基本算術(shù)運(yùn)算7.4 長(zhǎng)字運(yùn)算和并行運(yùn)算長(zhǎng)字運(yùn)算和并行運(yùn)算7.5 FIR濾波器的濾波器的DSP實(shí)現(xiàn)實(shí)現(xiàn)7.6 IIR數(shù)字濾波器的數(shù)字濾波器的DSP實(shí)現(xiàn)實(shí)現(xiàn)7.7 FFT運(yùn)算的運(yùn)算的DSP實(shí)現(xiàn)實(shí)現(xiàn)7.1 程序流程控制程序流程控制7.1.1 程序存儲(chǔ)器地址生成程序存儲(chǔ)器地址生成7.1.2 條件操作條件操作7.1.3 分支轉(zhuǎn)移分支轉(zhuǎn)移7.1.4 調(diào)用與返回調(diào)用與返回7.1.5 重復(fù)操作重復(fù)操作7.1.6 TMS320C54x中斷系統(tǒng)中斷系統(tǒng)7.1.7 堆棧的使用堆

2、棧的使用7.1.1 程序存儲(chǔ)器地址生成程序存儲(chǔ)器地址生成l程序存儲(chǔ)器中存放指令代碼、參數(shù)表和立即數(shù)程序存儲(chǔ)器中存放指令代碼、參數(shù)表和立即數(shù)l程序地址產(chǎn)生邏輯(程序地址產(chǎn)生邏輯(PAGEN),), 5個(gè)寄存器:個(gè)寄存器:l 程序計(jì)數(shù)器(程序計(jì)數(shù)器(PC)l重復(fù)計(jì)數(shù)器(重復(fù)計(jì)數(shù)器(RC)l塊重復(fù)計(jì)數(shù)器(塊重復(fù)計(jì)數(shù)器(BRC)l塊重復(fù)起始地址寄存器(塊重復(fù)起始地址寄存器(RSA)l塊重復(fù)結(jié)束地址寄存器(塊重復(fù)結(jié)束地址寄存器(REA)RPTRPTB程序地址產(chǎn)生邏輯(程序地址產(chǎn)生邏輯(PAGEN)寄存器寄存器(參見第二章參見第二章)PAB7.1.2 條件操作條件操作l條件指令中的各種條件條件指令中的各種

3、條件l單條件單條件使用單個(gè)條件做為條件指令的操作數(shù),只有在條件滿使用單個(gè)條件做為條件指令的操作數(shù),只有在條件滿足時(shí)指令才能執(zhí)行足時(shí)指令才能執(zhí)行l(wèi)多條件多條件使用多個(gè)條件做為條件指令的操作數(shù),只有在所有條使用多個(gè)條件做為條件指令的操作數(shù),只有在所有條件都滿足時(shí)指令才能執(zhí)行(件都滿足時(shí)指令才能執(zhí)行(與與)條件指令中的條件指令中的各種條件各種條件累加器累加器A, B狀態(tài)位狀態(tài)位C、TC專用引腳專用引腳/BIO多條件指令中的條件組合第一組第二組A 類B 類A 類B 類C 類EQOVTCCBIONEQNOVNTCNCNBIOLT LEQ GT GEQ l 第一組:第一組:A、B類各選一個(gè)條件組合,但不能

4、從同一類選兩個(gè)條件。類各選一個(gè)條件組合,但不能從同一類選兩個(gè)條件。兩個(gè)條件檢測(cè)的必須是同一累加器。兩個(gè)條件檢測(cè)的必須是同一累加器。 AEQ,AOV AGT,ANEQ AGT, AOV AGT, BOVl 第二組:第二組: A、B、C類各選一個(gè)條件組合,但不能從同一類中選擇類各選一個(gè)條件組合,但不能從同一類中選擇兩個(gè)條件。兩個(gè)條件。 TC,C,BIONTC,C,NC7.1.3 分支轉(zhuǎn)移分支轉(zhuǎn)移分類:分類:無條件分支轉(zhuǎn)移指令無條件分支轉(zhuǎn)移指令條件分支轉(zhuǎn)移指令條件分支轉(zhuǎn)移指令非延遲非延遲延遲延遲在流水線中執(zhí)行到分支轉(zhuǎn)移指令時(shí),在流水線中執(zhí)行到分支轉(zhuǎn)移指令時(shí),其后兩個(gè)字已經(jīng)裝入流水線其后兩個(gè)字已經(jīng)裝入

5、流水線無條件分支轉(zhuǎn)移指令指令說明周期數(shù)(非延遲/延遲)BD用指令中給出的地址加載PC4/2BACCD用指定累加器(A或B)的低16位作為地址加載PC6/4BD pmad;PC=pmad(15-0)BACCDsrc;PC=src(15-0)先清除分支指令后面已讀入的一個(gè)雙字先清除分支指令后面已讀入的一個(gè)雙字指令或兩個(gè)單字指令(需要額外的時(shí)鐘指令或兩個(gè)單字指令(需要額外的時(shí)鐘周期),然后再進(jìn)行分支轉(zhuǎn)移周期),然后再進(jìn)行分支轉(zhuǎn)移先執(zhí)行在分支指令后面已讀入的一個(gè)雙先執(zhí)行在分支指令后面已讀入的一個(gè)雙字指令或兩個(gè)單字指令,然后再進(jìn)行分字指令或兩個(gè)單字指令,然后再進(jìn)行分支轉(zhuǎn)移支轉(zhuǎn)移條件分支轉(zhuǎn)移指令指令說明周

6、期數(shù)(條件滿足/不滿足)非延遲延遲BCD如果指令中的條件滿足,就用指令中給出的地址加載PC5/33/3BANZD如果所選擇的輔助寄存器不等于0,就用指令中給出的地址加載PC(用于循環(huán))4/22/2BCD pmad, cond,cond,cond;if(cond(s) then PC=pmad(15-0)BANZDpmad, Sind; if(Sind0) then PC=pmad(15-0)BC next, AGT, AOVBANZ LOOPP, *AR3-遠(yuǎn)分支轉(zhuǎn)移指令遠(yuǎn)分支轉(zhuǎn)移指令遠(yuǎn)分支轉(zhuǎn)移指令指令指令指令說明說明說明周期數(shù)周期數(shù)周期數(shù)(非(非(非延遲延遲延遲/ / /延遲)延遲)延遲)F

7、BDFBDFBD可以轉(zhuǎn)移到由指令所給定的可以轉(zhuǎn)移到由指令所給定的可以轉(zhuǎn)移到由指令所給定的232323位地址(位地址(位地址(C5402C5402C5402為為為202020位地址)位地址)位地址)4/24/24/2FBACCFBACCFBACCDDD可以轉(zhuǎn)移到指定累加器所給定的可以轉(zhuǎn)移到指定累加器所給定的可以轉(zhuǎn)移到指定累加器所給定的232323位地址位地址位地址(C5402C5402C5402為為為202020位地址)位地址)位地址)6/46/46/4(單周期)條件執(zhí)行指令XCXCn,cond,cond,cond;if(cond(s) then execute the next n instr

8、uctions,n=1 or 2XC 1, ALEQMAR *AR1+7.1.4 調(diào)用與返回調(diào)用與返回分類:分類:無條件調(diào)用與返回指令無條件調(diào)用與返回指令條件調(diào)用與返回指令條件調(diào)用與返回指令非延遲非延遲延遲延遲無條件調(diào)用與返回指令條件調(diào)用與返回指令遠(yuǎn)調(diào)用和遠(yuǎn)遠(yuǎn)調(diào)用和遠(yuǎn)遠(yuǎn)調(diào)用和遠(yuǎn)返回指令返回指令返回指令7.1.5 重復(fù)操作重復(fù)操作1單條指令的重復(fù)操作單條指令的重復(fù)操作RPT(重復(fù)執(zhí)行下一條指令)重復(fù)執(zhí)行下一條指令)RPTZ(累加器清累加器清0后重復(fù)執(zhí)行下一條指令)后重復(fù)執(zhí)行下一條指令)l重復(fù)執(zhí)行其后的一條指令,重復(fù)的次數(shù)是指令操作數(shù)加重復(fù)執(zhí)行其后的一條指令,重復(fù)的次數(shù)是指令操作數(shù)加1l重復(fù)的次數(shù)

9、保存在重復(fù)的次數(shù)保存在16位的重復(fù)計(jì)數(shù)寄存器位的重復(fù)計(jì)數(shù)寄存器RC中中l(wèi)RC 只能由重復(fù)指令(只能由重復(fù)指令(RPT或或RPTZ)加載,而不能編程設(shè)置加載,而不能編程設(shè)置l指令重復(fù)執(zhí)行的最大次數(shù)是指令重復(fù)執(zhí)行的最大次數(shù)是65536禁止所有中斷(非屏蔽、屏蔽)禁止所有中斷(非屏蔽、屏蔽)重復(fù)的指令只需取值一次。重復(fù)的指令只需取值一次。與乘與乘/加、塊傳送指令連用,可加、塊傳送指令連用,可以使這些多周期指令在執(zhí)行一次以使這些多周期指令在執(zhí)行一次之后變?yōu)閱沃芷谥噶钪笞優(yōu)閱沃芷谥噶?.1.5 重復(fù)操作重復(fù)操作2塊重復(fù)操作指令塊重復(fù)操作指令塊重復(fù)指令塊重復(fù)指令RPTBl用于將一個(gè)碼塊重復(fù)執(zhí)行用于將一個(gè)

10、碼塊重復(fù)執(zhí)行N1次次lBRC :N,065535lRSA:RPTB指令的下一條指令的地址指令的下一條指令的地址lREA: RPTB指令的操作數(shù),塊最后一條指令的最后一個(gè)字的地址指令的操作數(shù),塊最后一條指令的最后一個(gè)字的地址lBRAF/ST1l塊重復(fù)操作執(zhí)行期間可以響應(yīng)中斷塊重復(fù)操作執(zhí)行期間可以響應(yīng)中斷 例例72不能嵌套不能嵌套R(shí)PTB REARSAREA循環(huán)體NEXTRSAREASTM #N,BRCBRC* REA=NEXT17.1.6 TMS320C54x中斷系統(tǒng)中斷系統(tǒng)1中斷類型中斷類型l軟件中斷:由指令產(chǎn)生(軟件中斷:由指令產(chǎn)生(INTR、TRAP或或RESET)l硬件中斷:硬件中斷由外

11、設(shè)產(chǎn)生,包括兩種類型:硬件中斷:硬件中斷由外設(shè)產(chǎn)生,包括兩種類型:外部硬件中斷,由芯片中斷引腳的信號(hào)觸發(fā)外部硬件中斷,由芯片中斷引腳的信號(hào)觸發(fā)內(nèi)部硬件中斷,由片內(nèi)外設(shè)的信號(hào)觸發(fā)內(nèi)部硬件中斷,由片內(nèi)外設(shè)的信號(hào)觸發(fā)l可屏蔽中斷:軟件可允許或禁止的中斷,可屏蔽中斷:軟件可允許或禁止的中斷,SINT15SINT0l非屏蔽中斷:非屏蔽中斷: 不能被軟件屏蔽的中斷不能被軟件屏蔽的中斷軟件中斷,軟件中斷,INTR K/TRAP K/RESET外部外部RSNMIINTR 16 非屏蔽非屏蔽INT0 可屏蔽可屏蔽執(zhí)行同一執(zhí)行同一ISRC5402中斷源的中斷向量及硬件中斷優(yōu)先權(quán)外部外部硬件硬件不可不可屏蔽屏蔽每個(gè)

12、中斷向量4個(gè)字C5402中斷源的中斷向量及硬件中斷優(yōu)先權(quán)外部外部硬件硬件外部硬件外部硬件內(nèi)部?jī)?nèi)部硬件硬件內(nèi)部?jī)?nèi)部硬件硬件可屏蔽可屏蔽硬件中斷硬件中斷SINT6不可屏蔽不可屏蔽INTR K7.1.6 TMS320C54x中斷系統(tǒng)中斷系統(tǒng)2中斷標(biāo)志寄存器(中斷標(biāo)志寄存器(IFR)和中斷屏蔽寄存器(和中斷屏蔽寄存器(IMR)l中斷標(biāo)志寄存器(中斷標(biāo)志寄存器(IFR):MMR,01H1:未響應(yīng)的中斷:未響應(yīng)的中斷0:復(fù)位復(fù)位中斷響應(yīng)中斷響應(yīng)IFR相應(yīng)位寫相應(yīng)位寫1(如(如 STM 0FFFFH,IFR ;清中斷標(biāo)志寄存器);清中斷標(biāo)志寄存器)執(zhí)行相應(yīng)中斷號(hào)的執(zhí)行相應(yīng)中斷號(hào)的INTR指令指令l中斷屏蔽寄

13、存器(中斷屏蔽寄存器(IMR):):MMR,00H1:允許相應(yīng)可屏蔽中斷(:允許相應(yīng)可屏蔽中斷(INTM0)0:禁止相應(yīng)可屏蔽中斷:禁止相應(yīng)可屏蔽中斷C5402中斷標(biāo)志寄存器(中斷標(biāo)志寄存器(IFR)結(jié)構(gòu)圖)結(jié)構(gòu)圖C5402中斷屏蔽寄存器(中斷屏蔽寄存器(IMR)結(jié)構(gòu)圖)結(jié)構(gòu)圖7.1.6 TMS320C54x中斷系統(tǒng)中斷系統(tǒng)3中斷響應(yīng)過程中斷響應(yīng)過程(1)接受中斷請(qǐng)求)接受中斷請(qǐng)求 IFR相應(yīng)位置相應(yīng)位置1,中斷響應(yīng)后清除。,中斷響應(yīng)后清除。(2)響應(yīng)中斷)響應(yīng)中斷(3)執(zhí)行中斷服務(wù)程序()執(zhí)行中斷服務(wù)程序(ISR)接 受 中 斷 請(qǐng) 求是 可 屏 蔽 中 斷 嗎 ?INTM=0 ?IM R

14、屏 蔽 位=1 ?是 硬 件 中 斷 或INTR 指 令 中 斷 嗎 ? 響 應(yīng) 中 斷 ,發(fā) 出 信 號(hào) IACKPC 保 存 到 軟 件 堆 棧執(zhí) 行 中 斷 服 務(wù) 程 序中 斷 返 回 , 恢 復(fù) PC繼 續(xù) 執(zhí) 行 主 程 序INTM 位 置 1否是是是否是否否中斷操作流程圖優(yōu)先級(jí)最高的中斷非屏蔽中斷軟件中斷/RS/NMITRAPINTM=1IMR=相應(yīng)的中斷源被屏蔽中斷向量表地址PC執(zhí)行分支轉(zhuǎn)移指令I(lǐng)FR0保護(hù)斷點(diǎn)7.1.6 TMS320C54x中斷系統(tǒng)中斷系統(tǒng)4重新映象中斷向量地址重新映象中斷向量地址C54x的中斷向量表是可重定位的的中斷向量表是可重定位的復(fù)位時(shí),中斷向量表的起始

15、地址固定為復(fù)位時(shí),中斷向量表的起始地址固定為0FF80H復(fù)位后,此表的起始地址可由用戶指定復(fù)位后,此表的起始地址可由用戶指定中斷向量可重新被映象到程序存儲(chǔ)器的任何一個(gè)中斷向量可重新被映象到程序存儲(chǔ)器的任何一個(gè)128字頁開始的地方(除保留區(qū)域外)字頁開始的地方(除保留區(qū)域外)中斷向量地址由中斷向量地址由PMST中的中斷向量指針中的中斷向量指針I(yè)PTR(9位)和中斷向量號(hào)(位)和中斷向量號(hào)(031)左移兩位)左移兩位后組成。后組成。中斷向量號(hào)中斷向量號(hào)K=16(10H)左移兩位(乘左移兩位(乘4)中斷向量地址中斷向量地址的產(chǎn)生中斷向量地址的產(chǎn)生中斷向量表基地址中斷向量表基地址IPTR80H中斷向量

16、號(hào)中斷向量號(hào)K的向量表地址中斷向量表基地址的向量表地址中斷向量表基地址K4上圖,中斷向量號(hào)上圖,中斷向量號(hào)16的向量表地址的向量表地址180H10H400C0H復(fù)位時(shí),IPTR111111111B1FFH中斷向量表基地址1FFH80H=FF80HBRST_ISRNOPNOP0123/RESET中斷向量中斷向量BNMI_ISRNOPNOP4567/NMI中斷向量中斷向量BDINT0_ISRNOPNOPC0HC1HC2HC3H/INT0中斷向量中斷向量中斷向量表頁中斷向量表頁偏移量IPTRINT0_ISR保護(hù)現(xiàn)場(chǎng)保護(hù)現(xiàn)場(chǎng)中斷處理中斷處理RETE中斷向量表地址PC第一次跳轉(zhuǎn)硬件自動(dòng)第二次跳轉(zhuǎn)軟件編程

17、BD?復(fù)位/NMISINT17/INT0/SINT0復(fù)位子程序/NMI中斷SINT17中斷/INT0/SINT0中斷0(0H)1(04H)2(08H)16(C0H)第一次跳轉(zhuǎn)硬件自動(dòng)中斷向量表頁中斷向量表頁第二次跳轉(zhuǎn)軟件編程中斷號(hào)031偏移量中斷號(hào)*47.1.7 堆棧的使用堆棧的使用l保存子程序、中斷程序的返回地址保存子程序、中斷程序的返回地址(斷點(diǎn),自動(dòng))(斷點(diǎn),自動(dòng))l保護(hù)和恢復(fù)用戶指定的寄存器和數(shù)據(jù)保護(hù)和恢復(fù)用戶指定的寄存器和數(shù)據(jù)(現(xiàn)場(chǎng),編程)(現(xiàn)場(chǎng),編程)l程序調(diào)用時(shí)的參數(shù)傳遞程序調(diào)用時(shí)的參數(shù)傳遞l滿遞減滿遞減堆棧堆棧7.1.7 堆棧的使用堆棧的使用在用戶指定的存儲(chǔ)區(qū)開辟一塊存儲(chǔ)區(qū)作為

18、堆棧存儲(chǔ)器在用戶指定的存儲(chǔ)區(qū)開辟一塊存儲(chǔ)區(qū)作為堆棧存儲(chǔ)器堆棧的定義及初始化步驟:堆棧的定義及初始化步驟:l聲明具有適當(dāng)長(zhǎng)度的未初始化段聲明具有適當(dāng)長(zhǎng)度的未初始化段l將堆棧指針指向棧底將堆棧指針指向棧底(高地址)(高地址)l在鏈接命令文件(在鏈接命令文件(.cmd)中將堆棧段放入數(shù)據(jù)存儲(chǔ)區(qū)中將堆棧段放入數(shù)據(jù)存儲(chǔ)區(qū) K_STACK_SIZE.set100STACK.usect“stack”, K_STACK_SIZESYSTEM_STACK.setSTACK+ K_STACK_SIZESTM# SYSTEM_STACK,SP.CMD SECTIONSStack:DRAM PAGE1 P171,定時(shí)

19、器/計(jì)數(shù)器編程舉例(times.pjt)四要素:四要素:初始化程序初始化程序重新映象中斷向量表地址重新映象中斷向量表地址初始化堆棧指針初始化堆棧指針初始化中斷源初始化中斷源開放中斷開放中斷2. 中斷向量表中斷向量表3. 堆棧堆棧4. 中斷服務(wù)程序中斷服務(wù)程序 P171,定時(shí)器/計(jì)數(shù)器編程舉例(times.pjt)PAGE 01000H1500HRAM1.text.data_c_int00PAGE 1SPRAM1 vars0060H0080HSPRAM20100H0300HSTACKSTACKSTACK+100HSP.text_c_int00128字,中斷向量表startWAIT初始化程序tim

20、er中斷服務(wù)子程序.data(1000H)PMST=1020HIPTR=20H中斷向量表基地址IPTR80H=20H*80H=1000HMP/MC=0OVLY=1DROM=0CLKOFF=0IPTR157MP/MC6OVLY5AVIS4DROM3CLKOFF2SMUL+1SST+07.2 數(shù)據(jù)塊傳送數(shù)據(jù)塊傳送10條數(shù)據(jù)傳送指令條數(shù)據(jù)傳送指令l數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器MVDK Smem,dmadMVKD dmad,Smem MVDD Xmem,Ymeml數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器MMRMVDM dmad,MMRMVMD MMR,dmadMVMM mmr, mmr7.2 數(shù)據(jù)塊傳送數(shù)據(jù)塊

21、傳送l程序存儲(chǔ)器程序存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器:數(shù)據(jù)存儲(chǔ)器:MVPD Pmad,SmemMVDP Smem,PmadREADA SmemWRITA Smem例例73 mymove.pjt傳送速度快(相對(duì)加載和存儲(chǔ)指令)傳送速度快(相對(duì)加載和存儲(chǔ)指令)不需通過累加器不需通過累加器可尋址程序空間可尋址程序空間與與RPTRPT結(jié)合實(shí)現(xiàn)數(shù)據(jù)塊傳送結(jié)合實(shí)現(xiàn)數(shù)據(jù)塊傳送(啟動(dòng)流水線,單周期)(啟動(dòng)流水線,單周期)7.3 定點(diǎn)數(shù)的基本算術(shù)運(yùn)算定點(diǎn)數(shù)的基本算術(shù)運(yùn)算7.3.1 加法、減法和乘法運(yùn)算加法、減法和乘法運(yùn)算7.3.2 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算7.3.1 加法、減法和乘法運(yùn)算加法、減法和乘法運(yùn)算1定點(diǎn)定點(diǎn)DSP中數(shù)

22、據(jù)表示方法中數(shù)據(jù)表示方法l定點(diǎn)定點(diǎn)DSP芯片的數(shù)值表示是基于芯片的數(shù)值表示是基于2的補(bǔ)碼表示形式。的補(bǔ)碼表示形式。ALUALUALU、MACMACMAC按無符號(hào)整數(shù)運(yùn)算按無符號(hào)整數(shù)運(yùn)算按無符號(hào)整數(shù)運(yùn)算按無符號(hào)整數(shù)運(yùn)算按無符號(hào)整數(shù)運(yùn)算按無符號(hào)整數(shù)運(yùn)算l定標(biāo)定標(biāo)通過設(shè)定小數(shù)點(diǎn)在通過設(shè)定小數(shù)點(diǎn)在16位數(shù)中的不同位置,就可以表示位數(shù)中的不同位置,就可以表示不同大小和不同精度的數(shù)不同大小和不同精度的數(shù)l數(shù)的定標(biāo)有數(shù)的定標(biāo)有Q表示法和表示法和S表示法表示法lQ表示法表示法1個(gè)符號(hào)位、個(gè)符號(hào)位、Q個(gè)小數(shù)位和個(gè)小數(shù)位和N-1-Q個(gè)整數(shù)位個(gè)整數(shù)位N:字長(zhǎng):字長(zhǎng) l數(shù)的范圍與精度數(shù)的范圍與精度小數(shù)點(diǎn)符號(hào)位Q表示、

23、S表示及數(shù)值范圍(16位數(shù))2-15=0.0003051精度精度1純小數(shù)純小數(shù)純整數(shù)純整數(shù)DSP定點(diǎn)運(yùn)算中小數(shù)的表示(Q15)0.707.word 32768*707/1000浮點(diǎn)數(shù)定點(diǎn)數(shù)7.3.1 加法、減法和乘法運(yùn)算加法、減法和乘法運(yùn)算216位定點(diǎn)加法和位定點(diǎn)加法和16位定點(diǎn)減法位定點(diǎn)減法l加法指令加法指令A(yù)DDADDC :帶進(jìn)位的加法運(yùn)算:帶進(jìn)位的加法運(yùn)算ADDM:立即數(shù)的加法運(yùn)算:立即數(shù)的加法運(yùn)算ADDS:無符號(hào)數(shù)的加法運(yùn)算:無符號(hào)數(shù)的加法運(yùn)算l減法指令減法指令SUBSUBB:帶進(jìn)位的減法運(yùn)算:帶進(jìn)位的減法運(yùn)算SUBC: 條件減法指令條件減法指令SUBS:無符號(hào)數(shù)的減法運(yùn)算:無符號(hào)數(shù)的

24、減法運(yùn)算7.3.1 加法、減法和乘法運(yùn)算加法、減法和乘法運(yùn)算316位定點(diǎn)整數(shù)乘法位定點(diǎn)整數(shù)乘法見指令表見指令表FRCT0 (RSBX FRCT)MPYU:無符號(hào)數(shù)乘法:無符號(hào)數(shù)乘法其他:其他: 帶符號(hào)數(shù)乘法帶符號(hào)數(shù)乘法例:例:RSBX FRCTLD x, TMPY y, ASTH A, z_hSTL A, z_l7.3.1 加法、減法和乘法運(yùn)算加法、減法和乘法運(yùn)算4Q15定點(diǎn)小數(shù)乘法運(yùn)算定點(diǎn)小數(shù)乘法運(yùn)算兩個(gè)兩個(gè)Q15的小數(shù)相乘,乘積總是的小數(shù)相乘,乘積總是“向右增長(zhǎng)向右增長(zhǎng)”,這就意,這就意味著超出定點(diǎn)器件數(shù)據(jù)范圍的將是不太感興趣的部分。味著超出定點(diǎn)器件數(shù)據(jù)范圍的將是不太感興趣的部分。既可以保

25、存既可以保存32位乘積,也可以只保存高位乘積,也可以只保存高16位乘積。位乘積。FRCT1 (SSBX FRCT)例:例:SSBX FRCTLD x, 16, AMPYA ySTH B, z7.3.1 加法、減法和乘法運(yùn)算加法、減法和乘法運(yùn)算4Q15定點(diǎn)小數(shù)乘法運(yùn)算定點(diǎn)小數(shù)乘法運(yùn)算例:字長(zhǎng)例:字長(zhǎng)4位,累加器位,累加器8位,位,0.5(0.375)0.1875010011010100000001001100010011101001111010011110(0.5)(-0.375)符號(hào)擴(kuò)展符號(hào)擴(kuò)展左移左移1位,消除冗余符號(hào)位位,消除冗余符號(hào)位0100(-0.1875)(0.09375)參照參照計(jì)

26、算機(jī)組成原理計(jì)算機(jī)組成原理7.3.1 加法、減法和乘法運(yùn)算加法、減法和乘法運(yùn)算4Q15定點(diǎn)小數(shù)乘法運(yùn)算定點(diǎn)小數(shù)乘法運(yùn)算誤差分析:誤差分析:x=y=4000H(0.5),x*y=2000_0000H(0.25)x=0CCDH(0.1) , 0.1*32768=3276.8 3277=0CCDH, 0.100006103515625y=0599AH(0.7), 07*32768=22937.6 22938=0599A, 0.70001220703125x*y=08F5F0A4H, 0.07000549323856830596923828125x*y 08F5H, 0.069976806640625

27、7.3.1 加法、減法和乘法運(yùn)算加法、減法和乘法運(yùn)算例例74,P129PAGE 01000H2000HROM.text.data_c_int00PAGE 10400H0440HOTHER .bssx17.3.1 加法、減法和乘法運(yùn)算加法、減法和乘法運(yùn)算例例75,P131PAGE 080H1080HROM.text.data_c_int00PAGE 10400H0800HOTHER .bssxay7.5 FIR濾波器的濾波器的DSP實(shí)現(xiàn)實(shí)現(xiàn)FIR濾波器濾波器設(shè)設(shè)N階階FIR濾波器的系數(shù)為濾波器的系數(shù)為h(0),h(1), .,h(N-1),X(n)表示濾波器在表示濾波器在n時(shí)刻的輸入,則時(shí)刻的輸

28、入,則n時(shí)刻的輸出為:時(shí)刻的輸出為: 其對(duì)應(yīng)的濾波器傳遞函數(shù)為:其對(duì)應(yīng)的濾波器傳遞函數(shù)為:10)()()1() 1() 1() 1 ()()0()(NiinxihNnxNhnxhnxhnyiNizihzH10)()(7.5 FIR濾波器的濾波器的DSP實(shí)現(xiàn)實(shí)現(xiàn)橫截型(直接型或卷積型)橫截型(直接型或卷積型)FIR數(shù)字濾波器的結(jié)構(gòu)圖數(shù)字濾波器的結(jié)構(gòu)圖x(n)Z-1Z-1Z-1h(0)h(1)h(2)h(N-2)h(N-1)y(n)7.5.1 線性緩沖區(qū)法線性緩沖區(qū)法例例713,P145(后述)(后述)7.5.2 循環(huán)緩沖區(qū)法循環(huán)緩沖區(qū)法 對(duì)于對(duì)于N階階FIR濾波器,在數(shù)據(jù)存儲(chǔ)區(qū)開辟一個(gè)具有濾波器

29、,在數(shù)據(jù)存儲(chǔ)區(qū)開辟一個(gè)具有N個(gè)單個(gè)單元的循環(huán)緩沖區(qū)元的循環(huán)緩沖區(qū) 循環(huán)緩沖區(qū)中存放最新的循環(huán)緩沖區(qū)中存放最新的N個(gè)輸入樣本值個(gè)輸入樣本值 每次輸入新的樣本時(shí),新的樣本將覆蓋最早的數(shù)據(jù),其每次輸入新的樣本時(shí),新的樣本將覆蓋最早的數(shù)據(jù),其他數(shù)據(jù)則不需要移動(dòng)他數(shù)據(jù)則不需要移動(dòng)7.5.2 循環(huán)緩沖區(qū)法循環(huán)緩沖區(qū)法FIR濾波器循環(huán)緩沖區(qū)存儲(chǔ)器圖濾波器循環(huán)緩沖區(qū)存儲(chǔ)器圖firstsecondthird例例7-12用循環(huán)緩沖區(qū)和雙操作數(shù)尋址方法編寫實(shí)現(xiàn)用循環(huán)緩沖區(qū)和雙操作數(shù)尋址方法編寫實(shí)現(xiàn)FIR濾波濾波的程序,的程序,P1411FIR濾波器設(shè)計(jì)濾波器設(shè)計(jì)低通濾波器低通濾波器通帶邊界頻率為通帶邊界頻率為1500Hz通帶波紋小于通帶波紋小于1dB阻帶邊界頻率為阻帶邊界頻率為2000Hz阻帶衰減大于阻帶衰減大于40dB采樣頻率為采樣頻率為8000Hz。采用采用MATLAB濾波器階數(shù)濾波器階數(shù)N=17濾波器系統(tǒng)濾波器系統(tǒng)b0b16h(i),i=016bi, i=016Q152產(chǎn)生濾波器輸入信號(hào)的文件產(chǎn)生濾波器輸入信號(hào)的文件輸入信號(hào):輸入信號(hào):頻率為頻率為f1=1000Hz和和f2=2500Hz正弦波的合成信號(hào)正弦波的合成信號(hào),采樣頻采樣頻率為率為fs=8000Hz。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論