![DSP 匯編語(yǔ)言程序設(shè)計(jì)_第1頁(yè)](http://file4.renrendoc.com/view/a54efea940bdc0ff3e76c4bead3224b4/a54efea940bdc0ff3e76c4bead3224b41.gif)
![DSP 匯編語(yǔ)言程序設(shè)計(jì)_第2頁(yè)](http://file4.renrendoc.com/view/a54efea940bdc0ff3e76c4bead3224b4/a54efea940bdc0ff3e76c4bead3224b42.gif)
![DSP 匯編語(yǔ)言程序設(shè)計(jì)_第3頁(yè)](http://file4.renrendoc.com/view/a54efea940bdc0ff3e76c4bead3224b4/a54efea940bdc0ff3e76c4bead3224b43.gif)
![DSP 匯編語(yǔ)言程序設(shè)計(jì)_第4頁(yè)](http://file4.renrendoc.com/view/a54efea940bdc0ff3e76c4bead3224b4/a54efea940bdc0ff3e76c4bead3224b44.gif)
![DSP 匯編語(yǔ)言程序設(shè)計(jì)_第5頁(yè)](http://file4.renrendoc.com/view/a54efea940bdc0ff3e76c4bead3224b4/a54efea940bdc0ff3e76c4bead3224b45.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
會(huì)計(jì)學(xué)1DSP匯編語(yǔ)言程序設(shè)計(jì)2內(nèi)容提要匯編語(yǔ)言源程序的概述堆棧的使用方法控制程序算術(shù)運(yùn)算1234第1頁(yè)/共58頁(yè)33-1匯編語(yǔ)言源程序概述
.asm為擴(kuò)展名助記符指令語(yǔ)法格式[標(biāo)號(hào)][:]助記符[操作數(shù)][;注釋]第2頁(yè)/共58頁(yè)43-1匯編語(yǔ)言源程序概述標(biāo)號(hào)冒號(hào)可選;由字母、數(shù)字、下劃線等組成;分大小寫(xiě)供本程序或其它程序調(diào)用,標(biāo)號(hào)的值是段程序計(jì)數(shù)器SPC的當(dāng)前值(局部的符號(hào)地址)。例如,若使用.word偽指令初始化幾個(gè)字,則標(biāo)號(hào)將指到第一個(gè)字。
標(biāo)號(hào)也可獨(dú)立成行第3頁(yè)/共58頁(yè)53-1匯編語(yǔ)言源程序概述可作為.global,.ref,.def或.bss等匯編偽指令的操作數(shù)如:.def:在當(dāng)前模塊中定義,并可在別的模塊中使用的符號(hào)。.ref:在當(dāng)前模塊中使用,但在別的模塊中定義的符號(hào)。.global:可以是上面的任何一種情況。
第4頁(yè)/共58頁(yè)63-1匯編語(yǔ)言源程序概述操作數(shù)指令中參與操作的數(shù)值或匯編偽指令定義的內(nèi)容,緊跟在助記符的后面,由一個(gè)或多個(gè)空格分開(kāi)。操作數(shù)前綴
“#”:作為立即數(shù)
例如:Label:ADD#99,B
“*”:間接地址,即把操作數(shù)的內(nèi)容作為地址例如:Label:LD*AR3,B“@”:作為直接地址,即操作數(shù)由直接地址碼賦值。例如:Label:LD@x,A第5頁(yè)/共58頁(yè)73-1匯編語(yǔ)言源程序概述匯編語(yǔ)言中的數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型舉例說(shuō)明二進(jìn)制1110001b
或1110001B
八進(jìn)制226q
或572Q
十進(jìn)制1234或+1234或-11234缺省型十六進(jìn)制0A40h
或0A40H
或0xA40浮點(diǎn)數(shù)1.623e-23僅用于C語(yǔ)言字符
‘D’字符串
“thisisastring”第6頁(yè)/共58頁(yè)83-1匯編語(yǔ)言源程序概述匯編時(shí)間常數(shù).set使用.set偽指令給一個(gè)符號(hào)賦值,該符號(hào)就成為一個(gè)匯編時(shí)間常數(shù),等效于一個(gè)常數(shù)。將符號(hào)常數(shù)賦給寄存器名。此時(shí),該符號(hào)變成了寄存器的替代名。第7頁(yè)/共58頁(yè)93-1匯編語(yǔ)言源程序概述局部標(biāo)號(hào)局部標(biāo)號(hào)是一種特殊的標(biāo)號(hào),使用的范圍和影響是臨時(shí)性的定義方式:
用$n來(lái)定義。n是0~9的十進(jìn)制數(shù)第8頁(yè)/共58頁(yè)103-1匯編語(yǔ)言源程序概述局部標(biāo)號(hào)舉例:
假設(shè)符號(hào)ADDRA,ADDRB,ADDRC已經(jīng)在前面作了定義。
第9頁(yè)/共58頁(yè)113-1匯編語(yǔ)言源程序概述符號(hào):由A~Z,a~z,0~9,_和$組成;第一位不能為數(shù)字;不能含空格;符號(hào)也可被設(shè)置成常數(shù)值。為了提高程序的可讀性,可以用有意義的名稱(chēng)來(lái)代表一些重要的常數(shù)值。如:第10頁(yè)/共58頁(yè)123-1匯編語(yǔ)言源程序概述匯編源程序中的表達(dá)式序號(hào)符號(hào)運(yùn)算操作求值順序1+-~!取正、取負(fù)、按位求補(bǔ)、邏輯負(fù)
從右至左2*/%乘法、除法、求模從左至右3+-加法、減法從左至右4^指數(shù)
從左到右
5<<>>左移、右移從左至右6<<=小于、小于等于從左至右7>>=大于、大于等于從左至右8!==不等于、等于從左至右9&按位與運(yùn)算從左至右10∧
按位異或運(yùn)算從左至右11|按位或運(yùn)算從左至右第11頁(yè)/共58頁(yè)133-2堆棧的使用當(dāng)程序調(diào)用中斷服務(wù)程序或子程序時(shí),需要將程序計(jì)數(shù)器PC的值和一些重要的寄存器值進(jìn)行壓棧保護(hù),以便程序返回時(shí)能從間斷處繼續(xù)執(zhí)行。’C54x提供一個(gè)用16位堆棧指針SP尋址的軟件堆棧。當(dāng)向堆棧中壓入數(shù)據(jù)時(shí),堆棧是從高地址向低地址方向填入,堆棧指針SP先減1,然后將數(shù)據(jù)壓入堆棧。當(dāng)從堆棧中彈出數(shù)據(jù)時(shí)。數(shù)據(jù)先從堆棧中彈出,然后堆棧指針SP加1。第12頁(yè)/共58頁(yè)143-2
堆棧的使用方法堆棧的設(shè)置使用堆棧如:CALLpmad;(SP)-1→SP,(PC)+2→TOS,pmad→PCRET;(TOS)→PC,(SP)+1→SP
第13頁(yè)/共58頁(yè)153-2
堆棧的使用方法堆棧大小的確定先開(kāi)辟一個(gè)較大的堆棧區(qū),用已知數(shù)填充如:
LD#-9224,BSTM#length,AR1MVMMSP,AR4loop:STLB,*AR4-
BANZloop,*AR1-
;堆棧區(qū)要充填的數(shù)0DBF8h加載B;設(shè)置循環(huán)次數(shù);設(shè)置數(shù)據(jù)指針AR4,SP→AR4;循環(huán),填充數(shù)據(jù)
運(yùn)行程序,執(zhí)行所有堆棧操作檢查堆棧中的數(shù)值用過(guò)的堆棧區(qū)就是實(shí)際需要的堆棧空間。數(shù)據(jù)RAMAR4→DBF8DBF8DBF8……DBF8DBF8SP→DBF86B140013…SP→7AB3用過(guò)的棧區(qū)第14頁(yè)/共58頁(yè)163-3控制程序’C54x具有豐富的程序控制指令,利用這些指令可以執(zhí)行分支轉(zhuǎn)移、子程序調(diào)用、子程序返回,條件執(zhí)行以及循環(huán)等控制操作分支操作:分支轉(zhuǎn)移程序子程序調(diào)用子程序返回條件操作程序比較轉(zhuǎn)移循環(huán)操作第15頁(yè)/共58頁(yè)173-3控制程序分支操作-分支轉(zhuǎn)移程序改寫(xiě)PC值,使程序改變流向
分支轉(zhuǎn)移指令分類(lèi)
指令
說(shuō)明
無(wú)條件分支轉(zhuǎn)移
B[D]
用該指令指定的地址加載PC
BACC[D]
用累加器的低16位指定的地址加載PC條件分支轉(zhuǎn)移
BC[D]
若滿足指令給定條件,用該指令指定的地址加載PC
BANZ[D]若當(dāng)前選擇輔助寄存器不等于0,用該指令指定的地址加載PC遠(yuǎn)程分支轉(zhuǎn)移
FB[D]
用該指令指定的地址加載PC和XPC
FBACC[D]
用累加器的低23位指定的地址加載PC和XPC第16頁(yè)/共58頁(yè)183-3控制程序例:STM#88H,AR0LD#1000H,ALoop1:ADDAR0,A
BCLoop1,AGT,AOV;若累加器A>0且溢出則轉(zhuǎn)至Loop1,否則往下執(zhí)行
例:第17頁(yè)/共58頁(yè)193-3控制程序BCLoop1,AGT,AOV第18頁(yè)/共58頁(yè)203-3控制程序分支操作-子程序調(diào)用當(dāng)子程序被調(diào)用時(shí),緊跟在調(diào)用后的下一條指令的地址保存在堆棧中。該地址用于返回時(shí)能繼續(xù)執(zhí)行調(diào)用前的程序分類(lèi)
指令
說(shuō)明
無(wú)條件調(diào)用
CALL[D]將返回的地址壓入堆棧,并用該指令指定的地址加載PC
CALA[D]將返回的地址壓入堆棧,用累加器A或B指定的地址加載PC條件調(diào)用
CC[D]
如果滿足指令給定條件,將返回的地址壓入堆棧,并用該指令指定的地址加載PC遠(yuǎn)程調(diào)用
FCALL[D]將XPC和PC壓入堆棧,并用該指令指定的地址加載PC和XPC
FCALA[D]將XPC和PC壓入堆棧,用累加器的低23位指定的地址加載PC和XPC第19頁(yè)/共58頁(yè)213-3控制程序分支操作-子程序返回子程序返回可使程序重新在被中斷的連續(xù)指令處繼續(xù)執(zhí)行。返回指令通過(guò)將彈出堆棧的值(包含將要執(zhí)行的下一條指令的地址),送到程序計(jì)數(shù)器PC來(lái)實(shí)現(xiàn)返回功能。分類(lèi)
指令
說(shuō)明
無(wú)條件返回
RET[D]將堆棧頂部的返回地址加載到PC。
RETE[D]
將堆棧頂部的返回地址加載到PC,并使能可屏蔽中斷。
RETF[D]
將RTN寄存器中的返回地址加載到PC,并使能可屏蔽中斷。條件返回
RC[D]如果滿足指令給定條件,將堆棧頂部的返回地址加載到PC。遠(yuǎn)程返回
FCALL[D]
FCALA[D]第20頁(yè)/共58頁(yè)223-3控制程序例:STM#123H,AR0LD#456H,AR1CALLnew LDAR1,16,Anew:MPYAR0,AR1,ARET;將操作數(shù)#123H裝入AR0;將操作數(shù)#456H裝入AR1;調(diào)子程序new;將AR1的內(nèi)容左移16位后裝入A;AR0與AR1的內(nèi)容相乘,結(jié)果放入A中;子程序返回
例:第21頁(yè)/共58頁(yè)233-3控制程序分支操作-比較轉(zhuǎn)移指令:
CMPRCC,ARx
指令功能:
輔助寄存器ARx與AR0進(jìn)行比較,若比較結(jié)果使所給定的測(cè)試條件成立,則TC位置1。實(shí)現(xiàn)方法:①通過(guò)CMPR的比較結(jié)果得TC值;②根據(jù)TC值,由條件轉(zhuǎn)移指令實(shí)現(xiàn)分支轉(zhuǎn)移。
第22頁(yè)/共58頁(yè)243-3控制程序例如:比較操作后條件分支轉(zhuǎn)移
STM#5,AR1
;AR1=5
STM#10,AR0
;AR0=10
loop:……*AR1+;AR1=AR1+1
……CMPRLT,AR1
;若AR1<AR0,則TC=1,否則為0
BCloop,TC
;若AR1<AR0,則循環(huán);若AR1≥AR0,則順序執(zhí)行第23頁(yè)/共58頁(yè)253-3控制程序循環(huán)操作指令:
BANZ轉(zhuǎn)移地址,*ARx
指令功能:當(dāng)輔助寄存器不為0時(shí),則轉(zhuǎn)至轉(zhuǎn)移地址,否則順序執(zhí)行。第24頁(yè)/共58頁(yè)263-3控制程序例:.bssx,10;給x保留10個(gè)空間.bssy,1;給y保留1個(gè)空間STM#x,AR1;設(shè)置數(shù)據(jù)段的首地址
STM#9,AR2;設(shè)置循環(huán)計(jì)數(shù)值LD#0,A;累加器清0loop:ADD*AR1+,A;累加運(yùn)算,并修改地址BANZloop,*AR2-;若計(jì)數(shù)值不為0,則循環(huán),并計(jì)數(shù)值減1
;若計(jì)數(shù)值為0,則結(jié)束循環(huán)STLA,@y;累加和存入y中注意:
BANZloop,*AR2-;先判斷,再修正AR2=AR2-1用AR2作為循環(huán)計(jì)數(shù)器,由BANZ實(shí)現(xiàn)程序的循環(huán)控制。第25頁(yè)/共58頁(yè)273-4算術(shù)運(yùn)算加減法和乘法運(yùn)算在數(shù)字信號(hào)處理中,加法和乘法運(yùn)算是最常見(jiàn)的算術(shù)運(yùn)算。例:計(jì)算y=ax+b
LD@a,T
;取a值,T=a
MPY@x,
B
;完成ax乘積,B=ax
ADD@b,B
;完成ax+b運(yùn)算,B=ax+b
STLB,@y
;計(jì)算結(jié)果存入y中第26頁(yè)/共58頁(yè)28;T=x1;B=x1a1;T=x2;乘法累加,B=x1a1+x2a2;計(jì)算結(jié)果的低字BL存入y中;計(jì)算結(jié)果的高字BH存入y+1中3-4算術(shù)運(yùn)算例:計(jì)算y=xlal+x2a2
LD@x1,TMPY@a1,BLD@x2,TMAC@a2,BSTLB,@ySTHB,@y+1第27頁(yè)/共58頁(yè)29
例:計(jì)算
y=
3-4算術(shù)運(yùn)算Test1.asm第28頁(yè)/共58頁(yè)303-4算術(shù)運(yùn)算例:
求4項(xiàng)乘積aixi(i=1,2,3,4,5)中的最大值,并存放累加器A中。
STM#a,AR1STM#x,AR2STM#2,AR3LD*AR1+,TMPY*AR2+,Aloop1:LD*AR1+,TMPY*AR2+,BMAXABANZloop1,*AR3-;乘法運(yùn)算A=aixi,并修改AR2
;乘法運(yùn)算B=aixi,并修改AR2
;求A和B中的最大值;若AR3≠0,則循環(huán),并修改AR3第29頁(yè)/共58頁(yè)313-5重復(fù)操作指令RPT:重復(fù)下條指令RPTZ:累加器清0,并重復(fù)下條指令RPTB:塊重復(fù).bssx,8STM#x,AR1LD#0,ARPT#7STL
A,*AR1+.bssx,8STM#x,AR1RPTZA,#7STL
A,*AR1+【例】對(duì)數(shù)組進(jìn)行初始化,使x[8]={0,0,0,0,0,0,0,0}第30頁(yè)/共58頁(yè)323-5重復(fù)操作【例】對(duì)數(shù)組x[8]中的每一元素加1。.bssx,8begin:LD#1,16,BSTM#7,BRCSTM#x,AR4RPTBnext-1ADD*AR4,16,B,ASTHA,*AR4+next:LD#0,B
…;設(shè)置重復(fù)次數(shù),BRC=7,循環(huán)8次;設(shè)置循環(huán)結(jié)束地址;數(shù)組數(shù)據(jù)左移16位與BH相加;存入數(shù)組結(jié)果,并修改地址注意①塊結(jié)束地址REA②重復(fù)次數(shù)③RPTB指令可以響應(yīng)中斷
第31頁(yè)/共58頁(yè)333-6數(shù)據(jù)塊傳送指令數(shù)據(jù)存儲(chǔ)器之間
MVDKSmem,dmadMVKDdmad,SmemMVDDXmem,Ymem
數(shù)據(jù)存儲(chǔ)器與MMR之間
MVDMdmad,MMRMVMDMMR,dmadMVMMMMRx,MMRy
程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器之間
MVPDpmad,SmemMVDPSmem,pmadREADASmemWRITASmem
從PA口讀/寫(xiě)數(shù)據(jù)
PORTRPA,SmemPORTWSmem,PA
第32頁(yè)/共58頁(yè)343-6數(shù)據(jù)塊傳送第33頁(yè)/共58頁(yè)353-6數(shù)據(jù)塊傳送【例】初始化數(shù)組x[8]={0,1,2,3,4,5,6,7}。.bssx,8.dataTBL:.word0,1,2,3,4,5,6,7.textSTART:STM#x,AR5RPT#7MVPDTBL,*AR5+……第34頁(yè)/共58頁(yè)363-7雙操作數(shù)乘法課后自習(xí)雙操作數(shù)乘法的編程方法、特點(diǎn)第35頁(yè)/共58頁(yè)373-8小數(shù)運(yùn)算定標(biāo)設(shè)定小數(shù)點(diǎn)在16位中的位置。位置不同,可以表示不同大小和不同精度的小數(shù)。Q表示法如Q0,Q1,…,Q15。Q越大,可以表示的數(shù)的范圍越小,但精度越高。小數(shù)表示方法基于2的補(bǔ)碼小數(shù)(Q15格式),其位權(quán)值:MSB…………LSB-1.2-12-22-3……2-15
00000010.10100000——21+2-1+2-3=2.625第36頁(yè)/共58頁(yè)38
0.5——4000H
0.25——2000H
0——0000H
-0.25——E000H-0.5——C000H-1——8000H0.5×32768=4000H0.25×32768=2000H0×32768=0000H(0.25×32768)補(bǔ)=E000H(0.5×32768)補(bǔ)=C000H(1×32768)補(bǔ)=8000H注意:匯編時(shí),不能直接寫(xiě)成十進(jìn)制小數(shù)
如:0.907.word32768*907/10003-8小數(shù)運(yùn)算2的補(bǔ)碼小數(shù):正數(shù):乘以32768(215),整數(shù)轉(zhuǎn)換成16進(jìn)制數(shù)(Q15格式)
負(fù)數(shù):其絕對(duì)值乘以32768,整數(shù)取反加1(Q15格式)第37頁(yè)/共58頁(yè)393-8小數(shù)運(yùn)算小數(shù)乘法與冗余符號(hào)位小數(shù)乘法實(shí)例0.5(-0.375)=-0.1875假設(shè)字長(zhǎng)4位,累加器8位(Q3格式)
0100
(0.5)1101
(-0.375)×0100000001001100
(-0100)
1110100(-0.1875)
第38頁(yè)/共58頁(yè)403-8小數(shù)運(yùn)算乘積:
-0.1875=11101007位二進(jìn)制
擴(kuò)展8位后,乘積:11110100=-0.09375出錯(cuò)原因:兩帶符號(hào)數(shù)相乘,其結(jié)果帶有2個(gè)符號(hào)位。
解決辦法:運(yùn)算結(jié)果左移一位,消去多余符號(hào)位??赏ㄟ^(guò)對(duì)FRCT位置1,乘法器自動(dòng)將乘積結(jié)果左移一位,自動(dòng)消去冗余符號(hào)位
第39頁(yè)/共58頁(yè)413-8小數(shù)運(yùn)算【例】
編制程序段計(jì)算
a1=0.3a2=0.2a3=-0.4a4=0.1
x1=0.6x2=0.5x3=-0.1x4=-0.2
floatMAC.asm第40頁(yè)/共58頁(yè)423-9FIR濾波器的設(shè)計(jì)FIR濾波器的差分方程:FIR濾波器的傳遞函數(shù):FIR濾波器的結(jié)構(gòu)
z-1z-1+x(n)y(n)x(n-1)x(n-N+1)b0b1bN-2bN-1z-1第41頁(yè)/共58頁(yè)433-9FIR濾波器的設(shè)計(jì)FIR濾波器的輸出表達(dá)式y(tǒng)(n)=b0x(n)+b1x(n-1)+…
+bn-1x(n-N+1)
bi為濾波器系數(shù),x(n)為濾波器在n時(shí)刻的輸入,y(n)為n時(shí)刻的輸出。
基本算法:采用乘法累加運(yùn)算。即不斷輸入樣本x(n),經(jīng)過(guò)z-1延時(shí)后,再進(jìn)行乘法-累加,最后輸出濾波結(jié)果y(n)。z-1算法的實(shí)現(xiàn)
線性緩沖區(qū)法循環(huán)緩沖區(qū)法第42頁(yè)/共58頁(yè)443-9FIR濾波器的設(shè)計(jì)線性緩沖區(qū)法在數(shù)據(jù)存儲(chǔ)器中開(kāi)辟一個(gè)N單元的緩沖區(qū)(滑窗),用來(lái)存放最新的N個(gè)輸入樣本;從最老樣本開(kāi)始取數(shù),每取一個(gè)數(shù)后,樣本向下移位;讀完最后一個(gè)樣本后,輸入最新樣本并存入緩沖區(qū)的頂部。緩沖區(qū):頂部為低地址單元,存放最新樣本;底部為高地址單元,存放最老樣本;指針ARx指向緩沖區(qū)底部。數(shù)據(jù)存儲(chǔ)器緩沖區(qū)頂部最新樣本緩沖區(qū)底部最老樣本←ARx高地址第43頁(yè)/共58頁(yè)453-9FIR濾波器的設(shè)計(jì)求y(n)的過(guò)程:算法最新樣本數(shù)據(jù)存儲(chǔ)器最老樣本ARx→x(n)x(n-1)x(n-2)x(n-3)x(n-4)x(n-5)x(n-6)x(n-7)取數(shù)、移位和運(yùn)算:①以ARx為指針,按x(n-7)……x(n)的順序取數(shù),每取一次數(shù)后,數(shù)據(jù)向下移一位,并完成一次乘法累加運(yùn)算;
②當(dāng)經(jīng)過(guò)8次取數(shù)、移位和運(yùn)算后,得y(n);
③求得y(n)后,輸入新樣本x(n+1),存入緩沖區(qū)頂部單元;
④修改指針ARx,指向緩沖區(qū)的底部。
第44頁(yè)/共58頁(yè)463-9FIR濾波器的設(shè)計(jì)求y(n)的過(guò)程:算法最新樣本數(shù)據(jù)存儲(chǔ)器最老樣本ARx→x(n)x(n-1)x(n-2)x(n-3)x(n-4)x(n-5)x(n-6)x(n-7)ARx→x(n-7)↑ARx→x(n-6)y(n)=y7=b7x(n-7)+0x(n-6)↑ARx→x(n-5)y(n)=y6=b6x(n-6)+y7x(n-5)↑ARx→x(n-4)y(n)=y5=b5x(n-5)+y6x(n-4)↑ARx→x(n-3)y(n)=y4=b4x(n-4)+y5x(n-3)↑ARx→x(n-2)y(n)=y3=b3x(n-3)+y4x(n-2)↑ARx→x(n-1)y(n)=y2=b2x(n-2)+y3x(n-1)↑ARx→x(n)y(n)=y1=b1x(n-1)+y2x(n)y(n)=b0x(n)+y1←PORTRx(n+1)ARx→第45頁(yè)/共58頁(yè)473-9FIR濾波器的設(shè)計(jì)求y(n+1)的過(guò)程:算法數(shù)據(jù)存儲(chǔ)器ARx→x(n+1)x(n)x(n-1)x(n-2)x(n-3)x(n-4)x(n-5)x(n-6)結(jié)果:①y(n)取數(shù)順序:
x(n-6)……x(n+1)x(n-5)x(n-4)x(n-3)x(n-2)x(n-1)x(n)x(n+1)最新樣本:
x(n+2)
x(n+2)②y(n+1)⑦y(n+6)⑧
y(n+7)數(shù)據(jù)存儲(chǔ)器x(n+8)x(n+7)x(n+6)x(n+5)x(n+4)x(n+3)x(n+2)x(n+1)ARx→第46頁(yè)/共58頁(yè)483-9FIR濾波器的設(shè)計(jì)Z-1的運(yùn)算是通過(guò)執(zhí)行存儲(chǔ)器延時(shí)指令來(lái)實(shí)現(xiàn)的。即將數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)向較高地址單元移位來(lái)進(jìn)行延時(shí)。注意:用線性緩沖區(qū)實(shí)現(xiàn)z-1運(yùn)算時(shí),緩沖區(qū)的數(shù)據(jù)需要移動(dòng),這樣在一個(gè)機(jī)器周期內(nèi)需要一次讀和一次寫(xiě)操作。因此,線性緩沖區(qū)只能定位在DARAM中。
第47頁(yè)/共58頁(yè)493-9FIR濾波器的設(shè)計(jì)可與其他指令結(jié)合,可在同樣的機(jī)器周期內(nèi)完成這些操作。如:LD+DELAY→LTDMAC+DELAY→MACD
例:雙操作數(shù)尋址指令:MACD*AR1-,b,A功能:A=A+(AR1)×(b),AR1-1→AR1,(AR1)→(AR1+1)第48頁(yè)/共58頁(yè)503-9FIR濾波器的設(shè)計(jì)FIR濾波器的實(shí)現(xiàn)設(shè)N=7,F(xiàn)IR濾波器的算法:
y(n)=b0x(n)+b1x(n-1)+…+b5x(n-5)+b6x(n-6)數(shù)據(jù)存儲(chǔ)器暫存y(n)x(n)x(n-1)x(n-2)x(n-3)x(n-4)x(n-5)x(n-6)程序存儲(chǔ)器b6b5b4b3b2b1b0使用線性緩沖區(qū)的FIR1.asmMACD*AR1-,b,A第49頁(yè)/共58頁(yè)513-9FIR濾波器的設(shè)計(jì)Z-1的另外一種實(shí)現(xiàn):循環(huán)緩沖區(qū)法特點(diǎn):在數(shù)據(jù)存儲(chǔ)器中開(kāi)辟一個(gè)N個(gè)單元的緩沖區(qū)(滑窗),用來(lái)存放最新的N個(gè)輸入樣本;從最新樣本開(kāi)始取數(shù);讀完最老樣本后,輸入最新樣本來(lái)代替最老樣本,而其他數(shù)據(jù)位置不變;用BK寄存器對(duì)緩沖區(qū)進(jìn)行間接尋址,使緩沖區(qū)地址首尾相鄰。第50頁(yè)/共58頁(yè)523-9FIR濾波器的設(shè)計(jì)求y(n)的過(guò)程:ARx→ARx→
計(jì)算過(guò)程:以ARx為指針,按順序取數(shù),并修改指針;每取1次數(shù)后,完成1次乘法累加計(jì)算;求得y(n)后,輸入新樣本替代最老樣本;修改指針ARx,指向最新樣本單元。數(shù)據(jù)存儲(chǔ)器x(n)x(n-7)x(n-1)x(n-2)x(n-3)x
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度歷史遺跡保護(hù)裝修合同增項(xiàng)條款
- 2025年度智能制造生產(chǎn)線項(xiàng)目管理人員聘用合同
- 2024交通安全的總結(jié)范文(30篇)
- 2024-2025學(xué)年第16課國(guó)家出路的探索與列強(qiáng)侵略的加劇-勤徑學(xué)升高中歷史必修上同步練測(cè)(統(tǒng)編版2019)
- 2025年典型國(guó)際鐵路運(yùn)輸合同
- 2025年中介居間合同示例
- 2025年農(nóng)村基礎(chǔ)設(shè)施優(yōu)化共建協(xié)議
- 2025年住宅按揭貸款協(xié)議書(shū)樣本
- 2025年停車(chē)場(chǎng)地合同模板
- 2025年渦輪螺槳發(fā)動(dòng)機(jī)項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模板
- 中建八局分包入場(chǎng)安全指導(dǎo)手冊(cè)v2.0111
- AutoCAD 2020中文版從入門(mén)到精通(標(biāo)準(zhǔn)版)
- 紡絲原液制造工(中級(jí))理論考試復(fù)習(xí)題庫(kù)(含答案)
- 大梅沙河道河道流量水位
- 張岱年:《中國(guó)文化概論》
- 緊固件常用標(biāo)準(zhǔn)件匯總圖
- 人教版初二英語(yǔ)八年級(jí)上冊(cè)全冊(cè)英語(yǔ)單詞表
- 繪本成語(yǔ)故事:四面楚歌
- HCIE-Transmission H12-931認(rèn)證培訓(xùn)考試題庫(kù)匯總(含答案)
- 《紅色經(jīng)典》校本課程
- 車(chē)輛委托保管合同 車(chē)輛委托保管協(xié)議
評(píng)論
0/150
提交評(píng)論