第1章 TMS320C54x的結(jié)構(gòu)原理- 數(shù)據(jù)尋址方式_第1頁
第1章 TMS320C54x的結(jié)構(gòu)原理- 數(shù)據(jù)尋址方式_第2頁
第1章 TMS320C54x的結(jié)構(gòu)原理- 數(shù)據(jù)尋址方式_第3頁
第1章 TMS320C54x的結(jié)構(gòu)原理- 數(shù)據(jù)尋址方式_第4頁
第1章 TMS320C54x的結(jié)構(gòu)原理- 數(shù)據(jù)尋址方式_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1章TMS320C54x的結(jié)構(gòu)原理1.6TMS320C54x的數(shù)據(jù)尋址方式立即尋址絕對(duì)尋址累加器尋址直接尋址間接尋址存儲(chǔ)器映像寄存器尋址堆棧尋址:由指令提供一個(gè)操作數(shù):由指令提供一個(gè)操作數(shù)地址:以累加器的內(nèi)容為地址訪問程序空間某單元:尋址地址為DP或SP的值加上指令提供的偏移量:利用輔助寄存器訪問存儲(chǔ)器:用來改變映像寄存器,但不影響DP或SP的值:用來管理系統(tǒng)堆棧中的操作TMS320C54xDSP提供以下7種基本數(shù)據(jù)尋址方式。第1.6章TMS320C54x指令系統(tǒng)的尋址方式尋址方式用

途舉

例指令含義立即尋址主要用于初始化LD#10,A立即數(shù)10

A絕對(duì)尋址利用16位地址尋址存儲(chǔ)單元STLA,*(y)將AL內(nèi)容存入y所在的存儲(chǔ)單元累加器尋址將累加器中的內(nèi)容作為地址READAx將A的內(nèi)容作為地址讀程序存儲(chǔ)器,并存入x存儲(chǔ)單元直接尋址利用數(shù)據(jù)頁指針和堆棧指針尋址LD@x,A(DP+x的低7位地址)

A間接尋址利用輔助寄存器作為地址指針LD*AR1,A((AR1))

A存儲(chǔ)器映像寄存器尋址快速尋址存儲(chǔ)器映象寄存器LDMST1,B(ST1)

B堆棧尋址壓入/彈出數(shù)據(jù)存儲(chǔ)器和存儲(chǔ)器映像寄存器MMRPSHMAG(SP)-1

SP,(AG)

(SP)第1.6章TMS320C54x指令系統(tǒng)的尋址方式尋址方式第1.6章TMS320C54x指令系統(tǒng)的尋址方式縮略語含義Smem16位單尋址操作數(shù)Xmem16位雙尋址操作數(shù),用于雙操作數(shù)或部分單操作數(shù)指令,從DB數(shù)據(jù)總線上讀取Ymem16位雙尋址操作數(shù),用于雙操作數(shù)指令,從CB數(shù)據(jù)總線上讀取dmad16位立即數(shù):數(shù)據(jù)存儲(chǔ)器地址(0~65535)pmad16位立即數(shù):程序存儲(chǔ)器地址(0~65535)PA16位立即數(shù):I/O口地址(0~65535)src源累加器(A或B)dst目的累加器(A或B)lk16位長立即數(shù)部分尋址縮略語1.6.1立即尋址定義:在立即尋址方式中,指令中包括了立即操作數(shù)。 立即數(shù)尋址指令中在數(shù)字或符號(hào)常數(shù)前面加一個(gè)“#”號(hào),來表示立即數(shù)。分類:根據(jù)一條指令中立即數(shù)編碼的長度不同再分類

①短立即數(shù)尋址(3、5、8或9位)

編碼為一個(gè)字長

例:ADD#0ffh,A

;將0ffh加給AccA

②長立即數(shù)尋址(16位)

編碼為兩個(gè)字長

例:ADD#1234h,A

;將#1234h加給AccA立即尋址舉例;********************************;ImmediateAddressing;******************************** .title"lab2a.asm" .def start .textstart: LD #100,A LD #10h,4,A LD #32768,B LD #4000h,16,B here: B here .end1.6.2絕對(duì)尋址定義:在指令中包含所要尋址的存儲(chǔ)單元的16位地址。分類:根據(jù)地址所指向單元的類型不同分類:1.6.2.1數(shù)據(jù)存儲(chǔ)器(dmad)尋址1.6.2.2程序存儲(chǔ)器(pmad)尋址1.6.2.3端口地址(PA)尋址1.6.2.4長立即數(shù)*(lk)尋址1.6.2.1數(shù)據(jù)存儲(chǔ)器(dmad)尋址定義:用一個(gè)符號(hào)或一個(gè)數(shù)來確定數(shù)據(jù)空間中的一個(gè)地址

例:MVKDsample,*AR5

;sample→((AR5))

sample:一個(gè)數(shù)據(jù)存儲(chǔ)區(qū)單元的標(biāo)號(hào)

*AR5:間接尋址一個(gè)數(shù)據(jù)存儲(chǔ)區(qū)單元數(shù)據(jù)存儲(chǔ)器(dmad)尋址使用數(shù)據(jù)存儲(chǔ)器尋址的指令有: MVDKSmem,dmad;Smem→dmad

數(shù)據(jù)存儲(chǔ)器單元向另一數(shù)據(jù)存儲(chǔ)器單元(地 址由16位立即數(shù)dmad確定)傳送數(shù)據(jù)

MVDMdmad,MMR;dmad→MMR

數(shù)據(jù)存儲(chǔ)器單元(地址由16位立即數(shù) dmad確定)向MMR傳送數(shù)據(jù)

MVKDdmad,Smem;dmad→Smem

與指令MVDK傳送數(shù)據(jù)方向相反

MVMDMMR,dmad;MMR→dmad

與指令MVDM傳送數(shù)據(jù)方向相反1.6.2.2程序存儲(chǔ)器(pmad)尋址定義:用一個(gè)符號(hào)或一個(gè)數(shù)來確定程序地址空間中的一個(gè)地址例:MVPDtable,*AR5;table→((AR5))

table:一個(gè)程序存儲(chǔ)區(qū)單元的標(biāo)號(hào) *AR5:間接尋址一個(gè)數(shù)據(jù)存儲(chǔ)區(qū)單元程序存儲(chǔ)器(pmad)尋址使用程序存儲(chǔ)器尋址的指令有:MACP Smem,pmad,src

操作數(shù)與程序存儲(chǔ)器值相乘后加到累加器MVDP Smem,pmad

數(shù)據(jù)存儲(chǔ)器向程序存儲(chǔ)器傳送數(shù)據(jù)MVPD pmad,Smem

程序存儲(chǔ)器向數(shù)據(jù)存儲(chǔ)器傳送數(shù)據(jù)MACD Smem,pmad,src

操作數(shù)與程序存儲(chǔ)器值相乘后累加并延遲FIRS Xmem,Ymem,pmad

對(duì)稱FIR濾波1.6.2.3端口地址(PA)尋址定義:用一個(gè)符號(hào)或常數(shù)來確定I/O口地址例如:

PORTRFIFO,*AR5;(FIFO)→((AR5))

FIFO:一個(gè)端口地址的標(biāo)號(hào)

*AR5:間接尋址一個(gè)數(shù)據(jù)存儲(chǔ)區(qū)單元使用端口地址尋址的指令有:

PORTRPA,Smem;(PA)→(Smem)

從PA口讀入數(shù)據(jù)

PORTWSmem,PA;(Smem)→(PA) 向PA口寫出數(shù)據(jù)1.6.2.4長立即數(shù)*(lk)尋址定義:用一個(gè)符號(hào)或一個(gè)常數(shù)來確定數(shù)據(jù)存儲(chǔ)器中的一個(gè)地址例:把地址為BUFFER的數(shù)據(jù)單元中的數(shù)據(jù)裝到AccA中

LD*(BUFFER),A;

BUFFER:一個(gè)數(shù)據(jù)存儲(chǔ)區(qū)單元的標(biāo)號(hào) 長立即數(shù)*(lk)尋址用于所有支持單數(shù)據(jù)存儲(chǔ)器操作數(shù)(Smem)的指令。絕對(duì)尋址總結(jié)MVKDsample,*AR5;

sample→((AR5))

sample:一個(gè)數(shù)據(jù)存儲(chǔ)區(qū)單元的標(biāo)號(hào)MVPDtable,*AR5;

table→((AR5))

table:一個(gè)程序存儲(chǔ)區(qū)單元的標(biāo)號(hào)PORTRFIFO,*AR5;

(FIFO)→((AR5))

FIFO:一個(gè)端口地址的標(biāo)號(hào)LD*(BUFFER),A; BUFFER:一個(gè)數(shù)據(jù)存儲(chǔ)區(qū)單元的標(biāo)號(hào)

指令中的絕對(duì)地址dmad、pmad、PA、*(lk)——都是16位的,因此指令的長度至少為2個(gè)字。1.6.3累加器尋址定義:用累加器中的數(shù)值作為一個(gè)地址來讀寫程序存儲(chǔ)器。共有兩條指令可以采用累加器尋址:READASmem;

((A))→(Smem)

WRITASmem;

(Smem)→((A))注意:累加器A作指針間接尋址程序存儲(chǔ)器單元;Smem為數(shù)據(jù)存儲(chǔ)器中單操作數(shù)單元(直接尋址);實(shí)現(xiàn)了程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器之間的數(shù)據(jù)傳送1.6.4直接尋址1、定義:在指令中包含數(shù)據(jù)存儲(chǔ)器地址的低7位,高9位由數(shù)據(jù)頁指針DP或堆棧指針SP決定。2、數(shù)據(jù)存儲(chǔ)器的分頁結(jié)構(gòu): TMS320C54的數(shù)據(jù)存儲(chǔ)器分為512頁,每頁128字。128=27,需7根地址線尋址,對(duì)應(yīng)指令中所包含的數(shù)據(jù)存儲(chǔ)器地址的低7位;512=29,需9根地址線尋址,由數(shù)據(jù)頁指針DP或堆棧指針SP決定;

LD #x,DP;變量x存儲(chǔ)地址的高9位賦值給DP狀態(tài)寄存器ST0的位結(jié)構(gòu)15~1312111098~0ARPTCCOVAOVBDP直接尋址3、數(shù)據(jù)存儲(chǔ)器16-bit地址(dma)的構(gòu)成:①高9-bit由數(shù)據(jù)頁指針DP(DataPointer)或者SP確定,用于指向512頁中的一個(gè)數(shù)據(jù)頁。②低7位由指令中所包含的7bit確定,該7位作為地址偏移量,用于指向某一頁內(nèi)128個(gè)存儲(chǔ)單元中的一個(gè)單元。4、尋址方式分類DP方式:數(shù)據(jù)存儲(chǔ)器地址高9-bit由數(shù)據(jù)頁指針DP確定SP方式:數(shù)據(jù)存儲(chǔ)器地址高9-bit由堆棧指針SP確定直接尋址 采用DP或SP方式,由ST1中CPL位決定。

DP方式:CPL=0;

SP方式:CPL=1。

狀態(tài)寄存器ST1的位結(jié)構(gòu)151413121110987654~0BRAFCPLXFHMINTM0OVMSXMC16FRCTCMPTASMCPL=0:dma與9-bit的DP相結(jié)合形成數(shù)據(jù)存儲(chǔ)器地址。以DP為基準(zhǔn)的直接尋址DP9-bit9-bit的DP指向數(shù)據(jù)存儲(chǔ)空間的512個(gè)數(shù)據(jù)頁中的一頁012510511直接尋址:DP方式直接尋址:DP方式以SP為基準(zhǔn)的直接尋址CPL=1:dma加上SP基地址形成數(shù)據(jù)存儲(chǔ)器地址。使用以SP為基址的直接尋址:

ANDsample,ALDsample,AADDsample,B;……..直接尋址:SP方式直接尋址(DP方式)舉例數(shù)據(jù)存儲(chǔ)區(qū)地址數(shù)據(jù)01800001……x:01FF1000y:02000500…….text…RSBX CPLLD #x,DPLD @x,AADD @y,A執(zhí)行結(jié)果DPACCA003………00300000010000030000001001已知數(shù)據(jù)存儲(chǔ)區(qū)的兩個(gè)變量x和y,求A=x+y=??問題沒有達(dá)到預(yù)期目的,錯(cuò)誤在那里?“@”符號(hào)作為前綴,匯編器將操作數(shù)作為直接地址。直接尋址(DP方式)舉例數(shù)據(jù)存儲(chǔ)區(qū)地址數(shù)據(jù)01800001……x:01FF1000y:02000500…….text…RSBX CPLLD #x,DPLD @x,ALD #y,DPADD @y,A執(zhí)行結(jié)果DPACCA003………00300000010000030000001001答:

x和y不在一個(gè)數(shù)據(jù)頁。變量x在第3頁(DP=3

),偏移量為07FH變量y在第4頁(DP=4),偏移量為00H取變量y時(shí)使用了DP=3,則取回的y=(1800H)=0001H結(jié)果A=x+y=1000H+0001H=1001H直接尋址(SP方式)舉例數(shù)據(jù)存儲(chǔ)區(qū)數(shù)據(jù)SP→002001000050A000.text…SSBX CPLLD @1,AADD @2,A執(zhí)行結(jié)果ACCA………00000001000000000150已知數(shù)據(jù)存儲(chǔ)區(qū)的兩個(gè)單元相對(duì)于SP所指向單元的偏移量,求A=兩個(gè)單元的內(nèi)容之和DP作為基地址的直接尋址方式SP作為基地址的直接尋址方式直接尋址方式總結(jié)1、數(shù)據(jù)存儲(chǔ)器地址(dma)的形成2、直接尋址方式的優(yōu)點(diǎn)指令為單字指令,占用空間??;在不改變DP或SP的情況下,可隨機(jī)尋址一個(gè)數(shù)據(jù) 頁中128個(gè)單元中的任何一個(gè)單元。3、注意事項(xiàng):尋址范圍只適用于數(shù)據(jù)存儲(chǔ)器;

DP方式和SP方式互斥,需及時(shí)用指令修改控制位 CPL:

RSBX CPL;CPL←0 SSBX CPL;

CPL←14、用途:主要用于要求運(yùn)算速度較快的場(chǎng)合。直接尋址方式總結(jié)1.6.5間接尋址定義:64K數(shù)據(jù)空間任意單元都可通過一個(gè)輔助寄存器(AR0~AR7)中的16-bit地址進(jìn)行訪問。8個(gè)輔助寄存器(AR0--AR7),由一個(gè)輔助寄存器指針(ARP3-bit)來指定。狀態(tài)寄存器ST0的位結(jié)構(gòu)15~1312111098~0ARPTCCOVAOVBDPAR0--AR7的內(nèi)容相當(dāng)靈活,可以裝入立即數(shù),例如: STM#0060h,AR1;AR1=0060H1.6.5間接尋址AR0--AR7還可以作以下的變址尋址:將ARx的內(nèi)容保持不變;例如:

ADD*ARx,8,A;將當(dāng)前輔助寄存器所指向的單元里的數(shù)據(jù),左移8-bit后賦給AccA先尋址,再將該ARx的內(nèi)容加1或減1 (循環(huán)常用)

ADD*AR3+,8,A,AR4;數(shù)據(jù)左移,加給AccA后,當(dāng)前輔助寄存器加1,選擇輔助寄存器AR41.6.5間接尋址先尋址,再將該AR的內(nèi)容加上或減去AR0的內(nèi)容。例如:

ADD*AR2+0,8,A;執(zhí)行加法后,將AR0的值加給當(dāng)前輔助寄存器AR2先尋址,再將該AR的內(nèi)容逆向進(jìn)位加上或減去AR0的內(nèi)容。

ADD*AR2+0B,8,A;執(zhí)行加法后,將AR0的值加給當(dāng)前輔助寄存器,但反向進(jìn)位正向進(jìn)位與反向進(jìn)位

100100+100+100————————10000101.6.5間接尋址分類:按照一條指令同時(shí)完成操作的數(shù)據(jù)存儲(chǔ)單元的個(gè)數(shù)來劃分。1、單操作數(shù)間接尋址

一條指令完成一個(gè)數(shù)據(jù)存儲(chǔ)單元的讀或?qū)?、雙操作數(shù)間接尋址 一條指令可以完成兩個(gè)不同存儲(chǔ)單元的讀操作 或 一條指令可以完成兩個(gè)不同存儲(chǔ)單元的寫操作 或 一條指令可以完成兩個(gè)不同存儲(chǔ)單元的一讀一寫操作1.6.5.1單操作數(shù)間接尋址指令碼Opcode:具體指令操作碼ARP :狀態(tài)寄存器ST0的高3-bit,用于確定8個(gè)輔助 寄存器(AR0--AR7)中哪一個(gè)MOD:

共4-bit,用于確定單數(shù)據(jù)存儲(chǔ)器(Smem) 操作數(shù)的尋址類型(16種,見下表)狀態(tài)寄存器ST0的位結(jié)構(gòu)指令碼格式15~1312111098~0ARPTCCOVAOVBDP表1-13單數(shù)據(jù)存儲(chǔ)器操作數(shù)間接尋址類型表1-13單數(shù)據(jù)存儲(chǔ)器操作數(shù)間接尋址類型(續(xù)) 間接尋址方式共有16種修正地址方式,用于需要按固定步長步進(jìn)尋址的場(chǎng)合。 ’C54x此尋址方式中包含有兩種特殊的功能尋址:位碼倒序?qū)ぶ饭δ芎脱h(huán)尋址功能,分別用于數(shù)字信號(hào)中常用的算法諸如FFT和卷積、相關(guān)、FIR濾波算法:1.循環(huán)尋址 在存儲(chǔ)器中設(shè)置一個(gè)緩沖區(qū),相當(dāng)于一個(gè)滑窗,保存著最新的一批數(shù)據(jù)。在循環(huán)尋址計(jì)算過程中,新的數(shù)據(jù)進(jìn)來,最老的數(shù)據(jù)就被覆蓋。2.倒序?qū)ぶ? 地址生成方式是:地址相加是反常規(guī)的進(jìn)位向右進(jìn)位,而不是向左進(jìn)位,如對(duì)FFT算法主要用于調(diào)整蝶形算法導(dǎo)致的亂序。特殊的間接尋址方式1.6TMS320C54x的數(shù)據(jù)尋址方式特殊的間接尋址功能:

在存儲(chǔ)器中設(shè)置一個(gè)緩沖區(qū)作為滑動(dòng)窗,來保存最新的一批數(shù)據(jù),并用新的數(shù)據(jù)覆蓋舊的數(shù)據(jù),實(shí)現(xiàn)循環(huán)尋址。

循環(huán)緩沖區(qū)的長度R,由循環(huán)緩沖區(qū)長度寄存器BK確定,可通過指令設(shè)定。1.單操作數(shù)尋址

(1)循環(huán)尋址

其指令:

STM#10,BK

;將立即數(shù)10存放BK中地址數(shù)據(jù)100h101h102h103h104h105h106h107h108h109h110hX(0)X(1)X(2)X(3)X(4)X(5)X(6)X(7)X(8)X(9)X(10)X(11)X(12)循環(huán)緩沖區(qū)100h-109h地址數(shù)據(jù)100h101h102h103h104h105h106h107h108h109h110hX(0)X(1)X(2)X(3)X(4)X(5)循環(huán)緩沖區(qū)100h—109h循環(huán)緩沖區(qū)基地址循環(huán)緩沖區(qū)尾地址步長:Step=2長度為R的緩沖區(qū)必須從N位地址的邊界開始,即循環(huán)緩沖區(qū)基地址的N個(gè)最低有效位必須為0。

N應(yīng)滿足:(1)循環(huán)尋址

2N>R的最小整數(shù)例如:緩沖區(qū)長度R=32,若2N>32,則N=6。

緩沖區(qū)開始的地址:xxxx

xxxxxx000000B

緩沖區(qū)長度R=32裝入循環(huán)緩沖長度寄存器BK中。

循環(huán)尋址是以BK的值為模,對(duì)緩沖區(qū)長度R進(jìn)行取模運(yùn)算。1.6TMS320C54x的數(shù)據(jù)尋址方式(1)循環(huán)尋址

循環(huán)尋址通常是指定一個(gè)輔助寄存器ARx指向循環(huán)緩沖區(qū);循環(huán)尋址的幾個(gè)概念循環(huán)緩沖區(qū)的有效基地址(EFB)

循環(huán)緩沖區(qū)的尾基地址(EOB)

循環(huán)緩沖區(qū)的偏移量(index)

循環(huán)尋址的步長(step)就是加到輔助寄存器ARx或從輔助寄存器ARx中減去的值。1.6TMS320C54x的數(shù)據(jù)尋址方式(1)循環(huán)尋址循環(huán)尋址的算法:If0

偏移量+步長<

BK;

偏移量=偏移量+步長;Else

if偏移量+步長

BK;

偏移量=偏移量+步長-BK;Else

if偏移量+步長

<0;

偏移量=偏移量+步長+BK;1.6TMS320C54x的數(shù)據(jù)尋址方式地址數(shù)據(jù)100h101h102h103h104h105h106h107h108h109h110hX(0)X(1)X(2)X(3)X(4)X(5)循環(huán)緩沖區(qū)100h—109h循環(huán)緩沖區(qū)基地址循環(huán)緩沖區(qū)尾地址(EFB)=100H(EOB)=109H步長:Step=2偏移量:Index=024680…(1)循環(huán)尋址循環(huán)尋址操作過程:

首先要指定一個(gè)ARx指向循環(huán)緩沖區(qū),根據(jù)ARx的低N位作為循環(huán)緩沖區(qū)的偏移量進(jìn)行規(guī)定的尋址操作。

尋址完成后,再根據(jù)循環(huán)尋址算法修正偏移量,并返回ARx的低N位。1.6TMS320C54x的數(shù)據(jù)尋址方式X(5)地址數(shù)據(jù)100h101h102h103h104h105h106h107h108h109h10AhX(0)X(1)X(2)X(3)X(4)循環(huán)緩沖區(qū)100h—109h

…..………STM#0100H,AR1//指定一個(gè)ARx指向循環(huán)緩沖區(qū)STM#10,BK//緩沖區(qū)長度10裝入循環(huán)緩沖長度寄存器BK中。

STM#2,AR0//設(shè)置循環(huán)尋址的步長(step)RPT#5//指令重復(fù)執(zhí)行6次IIR:PORTRPA1,*AR1+0%

//從I/0端口PA1讀取數(shù)據(jù)按循環(huán)尋址方式存儲(chǔ)…循環(huán)尋址舉例:如果循環(huán)緩沖區(qū)長度為BK=10,

AR1=100h由AR1的低四位可知index=0,循環(huán)尋址的步長step=8;執(zhí)行第一條指令時(shí),index=index+step=8,尋址108h單元;執(zhí)行第二條指令時(shí),index=index+step=8+8=16,故index=index+step-BK=8+8-10=6,尋址106h單元;

LD*+AR1(8)%,A

STLA,*+AR1(8)%地址數(shù)據(jù)100h0001101h...102h103h104h105h...106h107h108h0500109h(2)位倒序?qū)ぶ酚糜诳焖俑凳献儞Q算法FFT。

位碼順序?qū)ぶ罚喊凑斩M(jìn)制遞增規(guī)律尋址。如:0000,0001,0010,0011,…,1111。如:0000,1000,0100,1100,…,1111。

位碼倒序?qū)ぶ罚焊鶕?jù)二進(jìn)制遞增碼,按其位碼倒序的規(guī)律進(jìn)行尋址。1.6TMS320C54x的數(shù)據(jù)尋址方式進(jìn)位是從左向右反向進(jìn)位.不是從右向左!

例如:10101.6TMS320C54x的數(shù)據(jù)尋址方式

+11000001快速傅氏變換FFT信號(hào)流程如圖:x(0)x(1)x(2)x(3)x(4)x(5)x(6)x(7)WN0X(7)X(3)X(5)X(1)X(6)X(2)X(4)X(0)-1-1-1WN0WN0WN0-1-1WN0WN2WN0WN2-1-1-1WN0WN1WN2WN3-1-1-1-11.6TMS320C54x的數(shù)據(jù)尋址方式快速傅氏變換FFT信號(hào)流程如圖:x(0)x(4)x(2)x(6)x(1)x(5)x(3)x(7)WN0X(7)X(6)X(5)X(4)X(3)X(2)X(1)X(0)-1-1-1WN0WN0WN0-1-1WN0WN2WN0WN2-1-1-1WN0WN1WN2WN3-1-1-1-11.6TMS320C54x的數(shù)據(jù)尋址方式快速傅氏變換FFT輸入是經(jīng)過比特反轉(zhuǎn)的倒位序列——位碼倒置。排列順序:x(0)、x(4)、x(2)、x(6)、x(1)、x(5)、x(3)、x(7)

輸出是按自然順序排列。

排列順序:X(0)、X(1)、X(2)、X(3)、X(4)、X(5)、X(6)、X(7)

1.6TMS320C54x的數(shù)據(jù)尋址方式(2)位倒序?qū)ぶ肺淮a順序和倒序?qū)φ毡硇蛱?hào)位碼順序?qū)ぶ肺淮a倒序?qū)ぶ沸蛱?hào)位碼順序?qū)ぶ肺淮a倒序?qū)ぶ?000000008100000011000110009100110012001001001010100101300111100111011110140100001012110000115010110101311011011601100110141110011170111111015111111111.6TMS320C54x的數(shù)據(jù)尋址方式位碼倒序?qū)ぶ反鎯?chǔ)單元地址變換結(jié)果位碼倒序?qū)ぶ肺淮a倒序?qū)ぶ方Y(jié)果0000x(0)0000X(0)0001x(8)1000X(1)0010x(4)0100X(2)0011x(12)1100X(3)0100x(2)0010X(4)0101x(10)1010X(5)0110x(6)0110X(6)0111x(14)1110X(7)1000x(1)0001X(8)1001x(9)1001X(9)1010x(5)0101X(10)1011x(13)1101X(11)1100x(3)0011X(12)1101x(11)1011X(13)1110x(7)0111X(14)1111x(15)1111X(15)1.6TMS320C54x的數(shù)據(jù)尋址方式(2)位倒序?qū)ぶ穼?shí)現(xiàn)過程:

①根據(jù)FFT算法進(jìn)行轉(zhuǎn)換,按轉(zhuǎn)換順序?qū)?/p>

X(0)、X(8)、X(4)、…、X(15)的轉(zhuǎn)換

結(jié)果存入數(shù)據(jù)存儲(chǔ)器。

②按照位碼倒序的方法尋址,可將亂序的轉(zhuǎn)換結(jié)果進(jìn)行整序輸出。1.6TMS320C54x的數(shù)據(jù)尋址方式(2)位倒序?qū)ぶ穼?shí)現(xiàn)方法:

(1)

使用輔助寄存器ARx作為基地址,指向存儲(chǔ)數(shù)據(jù)單元X(0).

(2)AR0存放整數(shù)數(shù)值為進(jìn)行FFT運(yùn)算點(diǎn)數(shù)的一半。1.6TMS320C54x的數(shù)據(jù)尋址方式(3)將AR0加到輔助寄存器ARx中,地址以位倒序方式產(chǎn)生.

即:AR0與ARx二者相加時(shí),進(jìn)位是從左向右反向進(jìn)位.不是從右向左!

例如:1010

+110000011.6TMS320C54x的數(shù)據(jù)尋址方式位碼倒序?qū)ぶ反鎯?chǔ)單元地址變換結(jié)果位碼倒序?qū)ぶ肺淮a倒序?qū)ぶ方Y(jié)果0000X(0)0000x(0)0001X(8)1000x(1)0010X(4)0100x(2)0011X(12)1100x(3)0100X(2)0010x(4)0101X(10)1010x(5)0110X(6)0110x(6)0111X(14)1110x(7)1000X(1)0001x(8)1001X(9)1001x(9)1010X(5)0101x(10)1011X(13)1101x(11)1100X(3)0011x(12)1101X(11)1011x(13)1110X(7)0111x(14)1111X(15)1111x(15)1.6TMS320C54x的數(shù)據(jù)尋址方式(2)位倒序?qū)ぶ放e例

設(shè)AR2=01100000,作為基地址,指向X(0)

的存儲(chǔ)單元。②

設(shè)AR0=00001000,取FFT長度的一半。

程序:

RPT#15

;重復(fù)執(zhí)行下條指令16次

PORTW*AR2+0B,PA

;采用位碼倒序的間接尋

址,向PA口輸出數(shù)據(jù)

1.6TMS320C54x的數(shù)據(jù)尋址方式位碼倒序?qū)ぶ?數(shù)據(jù)存儲(chǔ)地址4-7位為0110)存儲(chǔ)單元地址變換結(jié)果位碼倒序?qū)ぶ肺淮a倒序?qū)ぶ方Y(jié)果0000X(0)0000x(0)0001X(8)1000x(1)0010X(4)0100x(2)0011X(12)1100x(3)0100X(2)0010x(4)0101X(10)1010x(5)0110X(6)0110x(6)0111X(14)1110x(7)1000X(1)0001x(8)1001X(9)1001x(9)1010X(5)0101x(10)1011X(13)1101x(11)1100X(3)0011x(12)1101X(11)1011x(13)1110X(7)0111x(14)1111X(15)1111x(15)1.6TMS320C54x的數(shù)據(jù)尋址方式

按照位倒序?qū)ぶ贩绞剑敵龅牡刂芳拜敵龅臄?shù)據(jù)如下:第一次*AR2+0B:

AR2=01100000X(0)第二次*AR2+0B:

AR2=01100000+00001000

=01101000X(1)第三次*AR2+0B:

AR2=01101000+00001000

=01100100X(2)第四次*AR2+0B:

AR2=01100100+00001000

=01101100X(3)第五次*AR2+0B:

AR2=01101100+00001000

=01100010X(4)第六次*AR2+0B:

AR2=01100010+00001000

=01101010X(5)第七次*AR2+0B:

AR2=01101010+00001000

=01100110X(6)表1-14位倒序?qū)ぶ冯p操作數(shù)尋址方式例如:

MPY*AR2,*AR3,A1.6.5.2雙操作數(shù)尋址指令碼格式雙操作數(shù)尋址方式的特點(diǎn)雙數(shù)據(jù)存儲(chǔ)器操作數(shù)間接尋址類型為*ARx、*ARx-、*ARx+、*ARx+0%。所用輔助寄存器只能是AR2、AR3、AR4、AR5。優(yōu)點(diǎn):占用程序空間小,運(yùn)行速度快。 在一個(gè)機(jī)器周期內(nèi)通過兩個(gè)16位數(shù)據(jù)總線(CB和DB)讀兩個(gè)操作數(shù)。

Xmem表示從DB總線上讀出的16位操作數(shù),Ymem表示從CB總線上讀出的16位操作數(shù)。間接尋址舉例程序

說明LD#1000h,A;A=1000HSTM#0060h,AR1;AR1=0060HMAR*AR1+;AR1=0061HSTM#2,AR0;AR0=2

LD*AR1+0,A;A=2000H;尋址結(jié)束后AR1=AR1+AR0=0063H

LD*AR1,B;B=4000H1.6.6存儲(chǔ)器映象寄存器(MMR)尋址存儲(chǔ)器映象寄存器的地址空間:片內(nèi)RAM0000H~005FH即第0頁(DP=0)特點(diǎn):①不影響當(dāng)前數(shù)據(jù)頁指針DP和當(dāng)前堆棧指針SP

僅用于修改存儲(chǔ)器映象寄存器(MMR)中的內(nèi)容。②由于這種方式不需要修改DP和SP,對(duì)寄存器的寫操作開銷最小。第2章TMS320C54x的硬件結(jié)構(gòu)

地址符號(hào)寄存器名稱地址符號(hào)寄存器名稱00H

IMR中斷屏蔽寄存器10HAR0輔助寄存器001H

IFR中斷標(biāo)志寄存器11H

AR1輔助寄存器102H

保留(用于測(cè)試)12HAR2輔助寄存器203H保留(用于測(cè)試)13H

AR3輔助寄存器304H保留(用于測(cè)試)14H

AR4輔助寄存器405H保留(用于測(cè)試)15HAR5輔助寄存器506H

ST0狀態(tài)寄存器016H

AR6輔助寄存器607H

ST1狀態(tài)寄存器117H

AR7輔助寄存器708H

AL累加器A低字(15~0位)18H

SP堆棧指針09H

AH累加器A高字(31~16位)19H

BK循環(huán)緩沖區(qū)長度寄存器0AH

AG累加器A保護(hù)位(39~32位)1AH

BRC塊重復(fù)計(jì)數(shù)器0BH

BL累加器B低字(15~0位)1BH

RSA塊重復(fù)起始地址寄存器0CH

BH累加器B高字(31~16位)1CHREA塊重復(fù)結(jié)束地址寄存器0DH

BG累加器B保護(hù)位(39~32位)1DHPMST處理器模式狀態(tài)寄存器0EH

T暫存寄存器1EHXPC程序計(jì)數(shù)器擴(kuò)展寄存器0FH

TRN狀態(tài)轉(zhuǎn)移寄存器1FH保留MMR特殊功能寄存器’C5410MMR片內(nèi)外設(shè)寄存器地址符號(hào)寄存器名稱地址符號(hào)寄存器名稱20H

DRR20緩沖串行口0數(shù)據(jù)接收寄存器235HSPSD2緩沖串行口2數(shù)據(jù)寄存器21HDRR10緩沖串行口0數(shù)據(jù)發(fā)送寄存器136~37H保留22H

DXR20緩沖串行口0數(shù)據(jù)發(fā)送寄存器23A~3FH保留23H

DXR10緩沖串行口0數(shù)據(jù)發(fā)送寄存器138HSPSA0緩沖串行口0地址寄存器24H

TIM定時(shí)器0定時(shí)設(shè)定寄存器39HSPSD0緩沖串行口0數(shù)據(jù)寄存器25H

PRD定時(shí)器0定時(shí)周期寄存器40H

DRR21緩沖串行口1數(shù)據(jù)接收寄存器226H

TCR定時(shí)器0定時(shí)控制寄存器41H

DRR11緩沖串行口1數(shù)據(jù)接收寄存器127H保留42H

DXR21緩沖串行口1數(shù)據(jù)發(fā)送寄存器228HSWWSR軟件等待狀態(tài)寄存器43H

DXR11緩沖串行口1數(shù)據(jù)發(fā)送寄存器129HBSCR多路開關(guān)控制寄存器44~47H保留2AH

保留48HSPSA1緩沖串行口1地址寄存器2BH

SWCR軟件等待狀態(tài)控制寄存器49HSPSD1緩沖串行口1數(shù)據(jù)寄存器2CH

HPIC主機(jī)口(HPI)控制寄存器4A~53H保留2D~2FH

保留54HDMPREC

DMA優(yōu)先權(quán)控制和使能寄存器30H

DRR22緩沖串行口2數(shù)據(jù)接收寄存器255HDMSA

DMA地址寄存器31H

DRR12緩沖串行口2數(shù)據(jù)接收寄存器156HDMSDI

DMA數(shù)據(jù)寄存

溫馨提示

  • 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)論