第3章TMS320C54x的硬件結(jié)構1_第1頁
第3章TMS320C54x的硬件結(jié)構1_第2頁
第3章TMS320C54x的硬件結(jié)構1_第3頁
第3章TMS320C54x的硬件結(jié)構1_第4頁
第3章TMS320C54x的硬件結(jié)構1_第5頁
已閱讀5頁,還剩151頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

13.1TMS320C54x的內(nèi)部結(jié)構和主要特性3.2總線結(jié)構3.3中央處理單元(CPU)3.4存儲器3.5片內(nèi)外設3.6復位操作及省電方式3.7中斷3.8流水線3.9TMS320C54x系列DSP的引腳及說明3.10本章小結(jié) 第3章TMS320C54x的硬件結(jié)構第3章TMS320C54x的硬件結(jié)構下一頁返回上一頁退出首頁2內(nèi)容簡介TMS320C54x(簡稱C54x)系列DSP是TI公司推出的低功耗、高性能的16位定點數(shù)字信號處理器,具有很好的操作靈活性和很高的運行速度。由于TMS320C54x使用CPU的并行運行、特殊硬件邏輯、特定的指令系統(tǒng)和多總線技術等來提高運算速度,并使用高級的IC硬件設計技術來提高處理器工作速度及降低功耗,使其具有功耗小、高度并行等優(yōu)點,可以滿足眾多領域?qū)崟r處理的要求。本章詳細介紹TMS320C54x的硬件結(jié)構,主要包括總線結(jié)構、中央處理單元、存儲器、片內(nèi)外設、復位電路、中斷和流水線、引腳功能。第3章TMS320C54x的硬件結(jié)構下一頁返回上一頁退出首頁33.1TMS320C54x的內(nèi)部結(jié)構和主要特性TI公司推出的同一代TMS320系列DSP產(chǎn)品的CPU結(jié)構是相同的,只是在片內(nèi)存儲器和片內(nèi)外圍設備的配置上不一定相同。TMS320C54x系列DSP處理器產(chǎn)品雖然很多,但其體系結(jié)構基本上是相同的,特別是處理器內(nèi)部CPU結(jié)構是完全相同的,不同處理器只是在時鐘頻率、工作電壓、片內(nèi)存儲器容量大小、外圍設備和接口電路的設計上會有所不同。第3章TMS320C54x的硬件結(jié)構3.1.1TMS320C54x的內(nèi)部結(jié)構下一頁返回上一頁退出首頁43.1TMS320C54x的內(nèi)部結(jié)構和主要特性第3章TMS320C54x的硬件結(jié)構圖3-1TMS320C54xDSP的內(nèi)部組成框圖5圖3-2TMS320C54xDSP的內(nèi)部硬件結(jié)構圖63.1TMS320C54x的內(nèi)部結(jié)構和主要特性TMS320C54x內(nèi)部結(jié)構基本上可以分為3大部分:CPU:包括算術邏輯運算單元、乘法器、累加器、移位寄存器、各種專用用途的寄存器、地址生成器及內(nèi)部總線。片內(nèi)存儲器系統(tǒng):包括片內(nèi)的程序ROM、片內(nèi)單訪問的數(shù)據(jù)RAM和雙訪問的數(shù)據(jù)RAM、外部存儲器接口。片內(nèi)外設與專用硬件電路:包括片內(nèi)定時器、各種類型的串口、主機接口、片內(nèi)鎖相環(huán)(PLL)時鐘發(fā)生器及各種控制電路。此外,在DSP處理器中還包含有仿真功能及其IEEE1149.1標準接口(JTAG),用于處理器開發(fā)應用時的仿真。第3章TMS320C54x的硬件結(jié)構3.1.1TMS320C54x的內(nèi)部結(jié)構73.1TMS320C54x的內(nèi)部結(jié)構和主要特性1.CPU部分先進的多總線結(jié)構(1條程序總線、3條數(shù)據(jù)總線和4條對應的地址總線)。40位算術邏輯運算單元(ALU),包括1個40位桶形移位寄存器和2個獨立的40位累加器。17位×17位并行乘法器與40位專用加法器相連,用于非流水線式單周期乘法/累加(MAC)運算。比較、選擇、存儲單元(CSSU),用于加法、比較、選擇運算。指數(shù)編碼器,是一個支持單周期指令EXP的專用硬件,可以在單個周期內(nèi)計算40位累加器中數(shù)值的指數(shù)。雙地址生成器,包括8個輔助寄存器和2個輔助寄存器算術運算單元(ARAU)。第3章TMS320C54x的硬件結(jié)構3.1.2TMS320C54x的主要特性83.1TMS320C54x的內(nèi)部結(jié)構和主要特性2.存儲器16位192K字的可尋址存儲空間(64K字的程序存儲空間、64K字的數(shù)據(jù)存儲空間和64K字的I/O空間),此外,C549、VC5402、VC5409、VC5410和VC5416等帶有擴展程序存儲器,程序存儲空間最大可擴展至8M字。片內(nèi)ROM,可配置為程序存儲器和數(shù)據(jù)存儲器。片內(nèi)RAM有兩種類型,即片內(nèi)雙訪問RAM(DARAM)和片內(nèi)單訪問RAM(SARAM)。第3章TMS320C54x的硬件結(jié)構3.1.2TMS320C54x的主要特性93.1TMS320C54x的內(nèi)部結(jié)構和主要特性3.片內(nèi)外設軟件可編程等待狀態(tài)發(fā)生器??删幊谭謪^(qū)切換邏輯電路。帶有內(nèi)部振蕩器或用外部時鐘源的片內(nèi)鎖相環(huán)時鐘發(fā)生器。支持全雙工操作的串行口,可進行8位或16位串行通信。片內(nèi)的串行口根據(jù)型號不同可分為4種:單通道同步串行口(SP)、帶緩沖器單通道同步串行口(BSP)、并行帶緩沖器多通道同步串行口(McBSP)、時分多通道帶緩沖器串行口(TMD)。處理器不同串行口配置也不盡相同??膳c主機直接連接的8位或16位并行主機接口(HPI)。16位可編程定時器。6通道直接存儲器訪問(DMA)控制器。外部總線關斷控制,以斷開外部的數(shù)據(jù)總線、地址總線和控制信號。數(shù)據(jù)總線具有總線保持特性。

第3章TMS320C54x的硬件結(jié)構3.1.2TMS320C54x的主要特性103.1TMS320C54x的內(nèi)部結(jié)構和主要特性4.指令系統(tǒng)單指令重復和塊指令重復操作指令。用于程序和數(shù)據(jù)管理的塊存儲器傳送指令。32位長操作數(shù)指令。同時讀入2個或3個操作數(shù)的指令??梢圆⑿写鎯筒⑿屑虞d的算術指令。條件存儲指令。從中斷快速返回指令。第3章TMS320C54x的硬件結(jié)構3.1.2TMS320C54x的主要特性113.1TMS320C54x的內(nèi)部結(jié)構和主要特性5.電源

具有多種節(jié)電模式,可用IDLE1、IDLE2和IDLE3指令來控制處理器功耗,使CPU工作在省電方式??煽刂脐P斷時鐘輸出信號CLKOUT。6.片內(nèi)仿真接口具有符合IEEE1149.1標準的片內(nèi)仿真接口(JTAG),可與主機相連,用于系統(tǒng)處理器的開發(fā)與應用。7.速度

單周期定點指令的執(zhí)行時間為25/20/12.5/10/8.3/7.5/6.25ns,相應的CPU運行速度為40/50/80/100/120/133/160MIPS。第3章TMS320C54x的硬件結(jié)構3.1.2TMS320C54x的主要特性123.2總線結(jié)構TMS320C54x的結(jié)構是以8條16位總線為核心的,即1條程序總線(PB)、3條數(shù)據(jù)總線(CB、DB和EB)和4條地址總線(PAB、CAB、DAB和EAB),這些總線形成了支持高速指令執(zhí)行的硬件基礎。8條16位總線的功能如下:(1)1條程序總線(PB)程序總線(PB)傳送由程序存儲器取出的指令操作代碼和立即操作數(shù)。PB既可以將程序空間的操作數(shù)據(jù)(如系數(shù)表)送至數(shù)據(jù)空間的目標地址中,以執(zhí)行數(shù)據(jù)移動,也可以將程序空間的操作數(shù)據(jù)傳送到乘法器和加法器中,以便執(zhí)行乘法/累加操作。此種功能,連同雙操作數(shù)的特性,支持在一個周期內(nèi)執(zhí)行3操作數(shù)指令(如FIRS指令)。第3章TMS320C54x的硬件結(jié)構下一頁返回上一頁退出首頁13Smem16位單數(shù)據(jù)存儲器操作數(shù)。從DB數(shù)據(jù)總線上讀出Xmem在雙操作數(shù)指令和一些單操作數(shù)指令中使用的16位雙數(shù)據(jù)存儲器操作數(shù)。從DB數(shù)據(jù)總線上讀出Ymem在雙操作數(shù)指令中使用的16位雙數(shù)據(jù)存儲器操作數(shù)。從CB總線上讀出dmad16位立即數(shù)表示的數(shù)據(jù)存儲器地址(0~65,535)pmad16位立即數(shù)表示的程序存儲器地址(0~65,535),它包括器件的擴展存儲器地址MACDSmem,pmad,srcsrc=src+Smem*pmad,T=Smem,(Smem+1)=Smem操作數(shù)與程序存儲器值相乘后加到累加器并延遲23MACPSmem,pmad,srcsrc=src+Smem*pmad,T=Smem操作數(shù)與程序存儲器值相乘后加到累加器23FIRSXmem,Ymem,pmadB=B+A*pmadA=(Xmem+Ymem)<<16系數(shù)對稱FIR濾波器23例:例:說明:143.2總線結(jié)構(2)3條數(shù)據(jù)總線(CB、DB和EB)3條數(shù)據(jù)總線(CB、DB和EB)將內(nèi)部各單元(如CPU,數(shù)據(jù)地址生成電路,程序地址生成電路,片內(nèi)外圍設備以及數(shù)據(jù)存儲器)連接在一起。其中,CB和DB用來傳送從數(shù)據(jù)存儲器讀出的數(shù)據(jù);EB用來傳送寫入存儲器的數(shù)據(jù)。第3章TMS320C54x的硬件結(jié)構其中,CB和DB用來傳送32位數(shù)據(jù);CB傳送hw為32位數(shù)據(jù)的高16位;DB傳送lw為32位數(shù)據(jù)的低16位153.2總線結(jié)構(3)4條地址總線(PAB、CAB、DAB和EAB)4條地址總線(PAB、CAB、DAB和EAB)用于傳送執(zhí)行指令所需要的地址。TMS320C54x可以利用兩個輔助寄存器算術運算單元(ARAU0和ARAU1),在每個周期產(chǎn)生兩個數(shù)據(jù)存儲器的地址。TMS320C54x“還有”一條訪問片內(nèi)外設的片內(nèi)雙向總線。這條雙向總線通過CPU接口內(nèi)的總線交換器與DB和EB相連。利用這條雙向總線的訪問過程需要2個或更多個周期來讀/寫,具體時間取決于外圍電路的結(jié)構。由此可見,DSP處理系統(tǒng)中應當盡量避免器件內(nèi)外大量數(shù)據(jù)交換,以保證系統(tǒng)高速特性。第3章TMS320C54x的硬件結(jié)構16表3-2各種讀/寫方式用到的總線第3章TMS320C54x的硬件結(jié)構讀/寫方式地址總線程序總線數(shù)據(jù)總線PABCABDABEABPBCBDBEB程序讀程序?qū)憜螖?shù)據(jù)讀雙數(shù)據(jù)讀32位長數(shù)據(jù)讀(hw)(lw)(hw)(lw)單數(shù)據(jù)寫數(shù)據(jù)讀/數(shù)據(jù)寫雙數(shù)據(jù)讀/系數(shù)讀外設讀外設寫注:hw為32位數(shù)據(jù)的高16位;lw為32位數(shù)據(jù)的低16位。173.2總線結(jié)構TMS320C54x總線結(jié)構的特點:①8條16位總線,并行工作,能在一個機器周期內(nèi)完成3次讀操作和1次寫操作(4條總線有各自的地址總線)。②支持數(shù)據(jù)在程序空間和數(shù)據(jù)空間傳送(改進的哈佛結(jié)構)。③支持片內(nèi)、外設的雙向通信。④支持功能很強的算術邏輯與位操作運算。第3章TMS320C54x的硬件結(jié)構183.3中央處理單元(CPU)中央處理單元(CPU)是DSP的核心部件,它的性能直接關系到DSP器件的性能。CPU的基本組成如下:40位算術邏輯運算單元(ALU)2個40位累加器1個40位桶形移位寄存器乘法器/加法器單元(MAC)比較、選擇和存儲單元(CSSU)指數(shù)編碼器CPU狀態(tài)和控制寄存器兩個地址發(fā)生器第3章TMS320C54x的硬件結(jié)構下一頁返回上一頁退出首頁19算術邏輯運算單元(ALU)可以實現(xiàn)加/減法運算、邏輯運算等大部分算術和邏輯功能,且大多數(shù)的算術邏輯運算指令都是“單周期指令”。除存儲操作指令(ADDM、ANDM、ORM和XORM)外,ALU的運算結(jié)果通常都被傳送到目的累加器(累加器A和B)。第3章TMS320C54x的硬件結(jié)構3.3.1算術邏輯運算單元(ALU)3.3中央處理單元(CPU)20第3章TMS320C54x的硬件結(jié)構3.3.1算術邏輯運算單元(ALU)3.3中央處理單元(CPU)圖3-3ALU功能框圖21ALU有X和Y兩個輸入端

ALU輸入:X端:DB0~15,移位寄存器Y端:CB0~15,A,B,TALU輸出:A,B

(40位)ALU能起兩個16-bitALUs的作用,且在狀態(tài)寄存器ST1中的C16位置1時,可同時完成兩個16-bit運算.第3章TMS320C54x的硬件結(jié)構3.3.1算術邏輯運算單元(ALU)3.3中央處理單元(CPU)1.ALU的輸入/輸出?16位輸入;40位輸出22算術邏輯運算單元(ALU)的符號擴展:40位數(shù)據(jù),若為低16位,則根據(jù)ST1的SXM的符號擴展方式處理,當SXM=0,高24位(39-16)用0填充,當SXM=1,高24位填充為數(shù)據(jù)的符號邏輯,即符號擴展;若為高16位,數(shù)據(jù)位(31-16)存數(shù)據(jù),低位(15-0)填充為0,控制位(39-32)按照SXM邏輯實現(xiàn)符號擴展。40位數(shù)據(jù)格式:第3章TMS320C54x的硬件結(jié)構3.3.1算術邏輯運算單元(ALU)3.3中央處理單元(CPU)2.ALU的符號擴展23數(shù)據(jù)溢出處理方式:ALU的飽和邏輯可以將結(jié)果保存為最大值(或最小值)完成溢出處理。當ST1的OVM置1時,該項功能使能。當ALU或者乘法器后面的運算發(fā)生溢出時,首先將ST0中的OVA(或者OVB)置1,然后根據(jù)ST1的OVM做飽和處理:

當OVM=0時,不做任何處理,將結(jié)果直接裝入累加器;當OVM=1時,根據(jù)溢出方向,若是正溢出,將32位最大正數(shù)007FFFFFFFH裝入累加器,若是負溢出,將32位最小負數(shù)FF80000000H裝入累加器。第3章TMS320C54x的硬件結(jié)構3.3.1算術邏輯運算單元(ALU)3.3中央處理單元(CPU)3.ALU的溢出處理24數(shù)據(jù)溢出后處理方式:溢出發(fā)生后,ST0的OVA(OVB)被置1。只有執(zhí)行復位、溢出條件轉(zhuǎn)移指令、位操作指令才能復位。例如:RSBXOVM;OVM復位(0)SSBXOVM;OVM置位(1)其次:可通過SAT指令對累加器做飽和處理,而不必考慮OVM的值。如SATA;或者SATB能直接對累加器結(jié)果做飽和處理。第3章TMS320C54x的硬件結(jié)構3.3.1算術邏輯運算單元(ALU)3.3中央處理單元(CPU)25[例3-1]設(AR2)=0060h,(AR3)=0070h,數(shù)據(jù)存儲器(0060h)=A678h,(0070h)=7234h,分析指令“ADD*AR2,*AR3,A”的執(zhí)行情況:ADD*AR2,*AR3,A;將AR2和AR3各自指向的數(shù)據(jù)存儲器單元內(nèi)容左移16位后相加,結(jié)果放到累加器A中,執(zhí)行情況如下表所示第3章TMS320C54x的硬件結(jié)構3.3.1算術邏輯運算單元(ALU)3.3中央處理單元(CPU)SXM=0(無符號數(shù)相加)SXM=1(有符號數(shù)相加)ALU的X輸入端(經(jīng)過DB取自0060h)00A6780000hFFA6780000hALU的Y輸入端(經(jīng)過CB取自0070h)0072340000h0072340000h指令執(zhí)行后的結(jié)果AOVM=00118AC0000h0018AC0000hOVM=1007FFFFFFFh0018AC0000h指令執(zhí)行后的標志位狀態(tài)C1(有進位)1(有進位)OVA1(有溢出)0(無溢出)26A,B基本結(jié)構:A,B均為40位說明:保護位,防止迭代運算產(chǎn)生的溢出,有符號運算時為擴展符號位AL,AH,AG,BL,BH,BG都是存儲器映射寄存器,地址為0008H~000DHA與B的區(qū)別:A的32~16位可以作為乘法器的一個輸入,而B不能累加器A和B用于存儲ALU或乘法器/加法器單元輸出的數(shù)據(jù)。

累加器也能輸出數(shù)據(jù)到ALU或乘法器/加法器中。第3章TMS320C54x的硬件結(jié)構3.3.2累加器3.3中央處理單元(CPU)272.累加器[例3-2]累加器A=FF01234567h,執(zhí)行帶移位的STH和STL指令后,求暫存器T和A的內(nèi)容。(帶移位的累加器操作)STHA,8,T;A的內(nèi)容左移8位后,AH存入T,T=2345h,A=FF01234567hSTHA,-8,T;A的內(nèi)容右移8位后,AH存入T,T=FF01h,A=FF01234567hSTLA,8,T;A的內(nèi)容左移8位后,AL存入T,T=6700h,A=FF01234567hSTLA,-8,T;A的內(nèi)容右移8位后,AL存入T,T=2345h,A=FF01234567h第3章TMS320C54x的硬件結(jié)構3.3.2累加器3.3中央處理單元(CPU)*移位操作是在移位寄存器中完成的,操作完成后累加器的內(nèi)容并不改變。283.3.3桶形移位器桶形移位器能把輸入的數(shù)據(jù)進行0到31位的左移和0到16位的右移。第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)293.3.3桶形移位器桶形移位寄存器的輸入可以為:①DB,取得16位輸入數(shù)據(jù);②DB和CB,取得32位輸入數(shù)據(jù);③40位累加器A或B。桶形移位寄存器的輸出連到:①ALU的一個輸入端,②經(jīng)過MSW/LSW(最高有效字/最低有效字)寫選擇單元至EB總線。第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)1.桶形移位器的輸入輸出303.3.3桶形移位器1)測試控制標志位TC的形成及使用:①位于ST0的第12位;②TC受測試指令的影響,測試指令一般和條件轉(zhuǎn)移指令相結(jié)合,實現(xiàn)程序轉(zhuǎn)移、或者用于檢測數(shù)據(jù)的正負、數(shù)據(jù)的位狀態(tài)等;BITXmen,BITC;BITC指定測試位,從最高位向右數(shù)的第BITC位(即15-BITC),將Xmen存儲單元的測試位的值復制到ST0的TC位;BITFXmen,#lk;Xmen與立即數(shù)相與,如果結(jié)果為0,TC清零,否則TC置1;BITTSmen;測試位由T寄存器的3-0位決定,然后將Smen的15-T(3-0)的值復制到TC;第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)2.桶形移位器的移位控制313.3.3桶形移位器CMPMXmen,#lk;Xmen與立即數(shù)相比較,如果相等,TC置1,否則TC置清0;;CMPRCC,ARx;ARx與AR0的值比較,比較條件由CC給出,如果條件滿足,TC置1,否則清0第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)條件CC作用EQ00測試Arx值是否等于AR0LT01測試Arx值是否小于AR0GT10測試Arx值是否大于AR0NEG11測試Arx值是否不等于AR0323.3.3桶形移位器測試控制標志位TC:SFTCsrc;累加器條件測試移位;src為累加器A或者B;

當src為0時,TC清零;當src不等于0時,若src的31、30位相同,即符號位相同,

則累加器左移一位,TC清0;若該兩位不同,累加器不移位,TC

置1.

第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)331)由指令中SHIFT給出的移位值,-16~15,大于0時左移,小于0時右移;2)ST1的ASM值,共5位,-16~15;如ADDA,ASM,B;累加器A的值按照ASM移位,與累加器B的值相加,結(jié)果存于累加器B;3)來自暫存器T的最低6位,一般用在歸一化指令中,如NORMA;T中的最低6位為指數(shù),按指數(shù)完成A的移位,該值由EXP指令獲得。

第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)2)移位控制方式:立即數(shù);ASM;T的低6位;Tc3.3.3桶形移位器343.3.3桶形移位器移位指令及操作:ROLsrc;帶進位循環(huán)左移一位;RORsrc;帶進位循環(huán)右移一位;ROLTCsrc;帶進位、測試位的循環(huán)左移一位

第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)SFTAsrc,SHIFT,dst;累加器算數(shù)移位SHIFT位,用于對有符號數(shù)的移位,其操作與標志位SXM及OVM的值有關,它會影響狀態(tài)位C及OVdst(若dst=src,則為OVsrc)。算術移位指令“SFTAsrc,SHIFT”的操作示意圖如圖所示。351)當0<SHIFT≤15時,將src的39~0位左移SHIFT位,低位添0;將最后一次移動的位值送入狀態(tài)位C。2)當-16≤SHIFT<0時,將src的39~0位右移SHIFT位,將最后一次移動的位值送入狀態(tài)位C;當SXM=0時,高位添0;當SXM=1時,將最高位(39位)的值添入移出的高位,即保持符號位。3.3.3桶形移位器第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)SFTLsrc,SHIFT,dst;累加器邏輯移位SHIFT位,它會影響狀態(tài)位C,操作示意圖如圖所示。361)當0<SHIFT≤15時,將src的31~0位左移SHIFT位,低位添0;將最后一次移動的位值送入狀態(tài)位C,將src的39~32位清0。2)當-16≤SHIFT<0時,將src的39~0位右移SHIFT位,高位添0;將最后一次移動的位值送入狀態(tài)位C;將src的39~32位清0。3)當SHIFT=0時,令C=0。移位指令及操作:3.3.3桶形移位器第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)373.3.3桶形移位器第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)

SFTCsrc;累加器測試;src為累加器A或者B;當src為0時,TC清零;當src不等于0時,若src的31、30位相同,即符號位相同,則累加器左移一位,移出多余的符號位,TC清0;若該兩位不同,累加器不移位,TC置1.383.3.3桶形移位器[例3-3]對累加器A執(zhí)行不同的移位操作ADDA,-4,B;累加器A的值右移4位后加到累加器B中ADDA,ASM,B;累加器A的值按ASM指定的移位數(shù)移位后

加到累加器B中EXPA;將累加器A冗余符號位減8,存于T,獲得

其指數(shù)NORMA;按暫存器T中的數(shù)值(指數(shù))對累加器A進

行歸一化第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)39乘法器/加法器(MAC)單元包括1個乘法器和1個專用加法器。乘法器/加法器單元具有強大的乘累加運算功能,可以在一個流水線周期內(nèi)完成1次乘法運算和1次加法運算。TMS320C54xCPU中的MAC單元有一個17位×17位的硬件乘法器,并且附帶了一個40位的專用加法器,其功能框圖如圖3-6所示。其中硬件乘法器用來完成乘法運算,專用加法器用來完成累加、取整、飽和等操作。乘法器/加法器單元由以下部分組成:乘法器,加法器,帶符號/無符號輸入控制,小數(shù)控制,零檢測器,舍入器(二進制補碼),溢出/飽和邏輯和暫存器(TREG)。3.3.4乘法器/加法器單元第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)40圖3-6乘法器/加法器單元功能框圖乘法器輸入:X:T,A,DB0~15Y:A,DB0~15,CB0~15,PB0~15乘法器輸出:加法器加法器輸入:X:乘法器Y:A,B加法器輸出:A,B,03.3.4乘法器/加法器單元41乘法運算前數(shù)位擴展:乘法運算的輸入數(shù)據(jù)為16位,進行17x17的乘法運算時需要數(shù)位擴展。如果是兩個符號數(shù),則在16位前增加一位符號位,若是非符號數(shù),則擴展位填0.如果數(shù)據(jù)來自累加器A,則取A的高位字及符號位組成17位。乘法運算后的符號處理:兩個17位的二進制碼相乘會產(chǎn)生兩個符號位。則需要根據(jù)ST1的小數(shù)方式控制位FRCT的邏輯做處理。若FRCT=1,乘法結(jié)果自動左移一位,消除多余符號位,若FRCT=0,保持結(jié)果不變。3.3.4乘法器/加法器單元第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)42舍入操作:如果乘加指令末尾帶R,則需要做舍入操作,將215(8000h)加到計算結(jié)果,并將目的累加器的低16位清0.當執(zhí)行LMS指令時,為修正系數(shù)的量化誤差也進行舍入操作。溢出/飽和處理:當ST1的OVM=1,F(xiàn)RCT=1,處理器工作方式寄存器PMST的乘法飽和方式位SMUL=1時,對乘法結(jié)果做飽和處理。當SMUL=0時,只對MAC、MAS的結(jié)果做飽和處理。

將8000hX8000h飽和處理成7FFFFFFFh.3.3.4乘法器/加法器單元第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)43乘加指令:兩個操作數(shù)相乘,乘法結(jié)果與目的累加器相加,最后結(jié)果存于目的累加器。如果只給出一個操作數(shù),那么另外一個操作數(shù)來自暫存器T。MACA的一個操作數(shù)來自累加器A的高位字,另一個來自Xmen或者T,乘法結(jié)果加于累加器B或者src,最后結(jié)果存于累加器B或者src.兩個操作數(shù)在指令中均能“看到”時,Smen或者Xmen的值要存于暫存器T;當指令末尾帶R時,做舍入處理。另外,如果兩個操作數(shù)都給出,則Xmen要存于T.3.3.4乘法器/加法器單元第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)44尋址指令中用到的縮寫符號及其含義縮寫符號含義Smem16位單數(shù)據(jù)存儲器操作數(shù)Xmem在雙操作數(shù)指令和一些單操作數(shù)指令中使用的16位雙數(shù)據(jù)存儲器操作數(shù)。從DB數(shù)據(jù)總線上讀出Ymem在雙操作數(shù)指令中使用的16位雙數(shù)據(jù)存儲器操作數(shù)。從CB總線上讀出dmad16位立即數(shù)表示的數(shù)據(jù)存儲器地址(0~65,535)pmad16位立即數(shù)表示的程序存儲器地址(0~65,535),它包括器件的擴展存儲器地址PA16位立即數(shù)表示的I/O地址(0~65,535)src源累加器(A或B)dst目的累加器(A或B)1k16位長立即數(shù)453.3.4乘法器/加法器單元-乘加/乘減指令第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)語法表達式說明字數(shù)周期MACSmem,srcsrc=src+T*Smem操作數(shù)與T寄存器值相乘后加到累加器11MACXmem,Ymem,src[,dst]dst=src+Xmem*Ymem,T=Xmem兩個操作數(shù)相乘后加到累加器中11MAC#lk,src[,dst]dst=src+T*#lk長立即數(shù)與T寄存器位相乘后加到累加器22MACSmem,#lk,src[,dst]dst=src+Smem*#lk,T=Smem長立即數(shù)與操作數(shù)相乘后加到累加器22MACRSmem,srcsrc=rnd(src+T*Smem)操作數(shù)與T寄存器值相乘后加到累加器(帶舍入)11MACRXmem,Ymem,src[,dst]dst=rnd(src+Xmem*Ymem),T=Xmem兩個操作數(shù)相乘后加到累加器中(帶舍入)1146語法表達式說明字數(shù)周期MACASmem[,B]B=B+Smem*A(32–16),T=Smem操作數(shù)與累加器A高位相乘后加到累加器B11MACAT,src[,dst]dst=src+T*A(32–16)T寄存器值與累加器A高位相乘11MACARSmem[,B]B=rnd(B+Smem*A(32–16)),T=SmemT寄存器值與累加器A高位相乘后加到累加器B中(帶舍入)11MACART,src[,dst]dst=rnd(src+T*A(32–16))T寄存器值與累加器A高位相乘后加到源累加器(帶舍入)11MACDSmem,pmad,srcsrc=src+Smem*pmad,T=Smem,(Smem+1)=Smem操作數(shù)與程序存儲器值相乘后加到累加器并延遲23MACPSmem,pmad,srcsrc=src+Smem*pmad,T=Smem操作數(shù)與程序存儲器值相乘后加到累加器23MACSUXmem,Ymem,srcsrc=src+uns(Xmem)*Ymem,T=Xmem無符號數(shù)與有符號數(shù)相乘后加到累加器11MASSmem,srcsrc=src–T*Smem從累加器中減去操作數(shù)與T寄存器值的乘積11MASRSmem,srcsrc=rnd(src–T*Smem)從累加器中減去操作數(shù)與T寄存器值的乘積(帶舍入)11MASXmem,Ymem,src[,dst]dst=src–Xmem*Ymem,T=Xmem從源累加器中減去兩個操作數(shù)的乘積11MASRXmem,Ymem,src[,dst]dst=rnd(src–Xmem*Ymem),T=Xmem從源累加器中減去兩個操作數(shù)的乘積(帶舍入)11MASASmem[,B]B=B–Smem*A(32–16),T=Smem從累加器B中減去操作數(shù)與累加器A高位乘積11MASAT,src[,dst]dst=src–T*A(32–16)從源累加器中減去T寄存器值與累加器A高位乘積11MASART,src[,dst]dst=rnd(src–T*A(32–16))從源累加器中減去T寄存器值與累加器A高位乘積(帶舍入)11SQURASmem,srcsrc=src+Smem*Smem,T=Smem操作數(shù)平方并累加11SQURSSmem,srcsrc=src–Smem*Smem,T=Smem從累加器中減去操作數(shù)平方1147[例3-4]MAC指令和MACR指令的執(zhí)行情況分析MAC[R]*AR3,A;將AR3指向的存儲單元內(nèi)容與暫存器T的值相乘后與累加器A的值相加后送入A中3.3.4乘法器/加法器單元第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)48比較、選擇和存儲單元(CSSU)完成累加器的高位字和低位字之間的最大值比較,即選擇累加器中較大的字并存儲在數(shù)據(jù)存儲器中,影響狀態(tài)寄存器ST0中的測試/控制位和傳送寄存器(TRN)的值。其功能框圖如圖3-8所示。功能:多用于Viterbi型蝶形運算,加、比較、選擇、存儲運算。用途:多用于通信中均衡,解碼等Viterbi蝶型計算3.3.5比較、選擇和存儲單元(CSSU)第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)49圖3-8比較、選擇和存儲單元

結(jié)構:比較單元COMP,TRN,TC用于記錄比較結(jié)果選擇單元:MSW/LSW存儲通過EB0~15完成(輸出)輸入為A,B,桶型移位寄存器3.3.5比較、選擇和存儲單元(CSSU)第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)50[例3-5]CMPS指令的操作CMPSA,*AR1功能:對累加器A的高16位字(AH)和低16位字(AL)進行比較,如果AH>AL,則AH→*AR1,TRN左移1位,0→TRN(0),0→TC;如果AH<AL,則AL→*AR1,TRN左移1位,1→TRN(0),1→TC。(PPT.30,31)

3.3.5比較、選擇和存儲單元(CSSU)第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)51指數(shù)編碼器是用于支持單周期指令EXP的專用硬件。在EXP指令中,累加器中的指數(shù)值能以二進制補碼的形式(-8~31)存儲在T寄存器中。指數(shù)值定義為前面的冗余位數(shù)減8的差值,即累加器中為消除非有效符號位所需移動的位數(shù)。當累加器中的值超過32位時,指數(shù)為負值。功能:支持指令EXP和NORM完成規(guī)格化定點數(shù)操作。規(guī)格化定點數(shù)格式:T中存指數(shù),A中存尾數(shù)。3.3.6指數(shù)編碼器第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)

圖3-10指數(shù)編碼器52[例3-6]累加器A的歸一化EXP A;A中冗余符號位的位數(shù)減去8,所得結(jié)果存入暫存器T中NORMA;對累加器進行歸一化,按T中所存的數(shù)值對A進行移位3.3.6指數(shù)編碼器第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)53TMS320C54xCPU有3個狀態(tài)和控制寄存器:狀態(tài)寄存器0(ST0)狀態(tài)寄存器1(ST1)處理器工作方式狀態(tài)寄存器(PMST)ST0和ST1中包含各種工作條件和工作方式的狀態(tài);PMST中包含存儲器的設置狀態(tài)及其他控制信息。由于這些寄存器都是存儲器映射寄存器,所以都可以快速地存放到數(shù)據(jù)存儲器,或者由數(shù)據(jù)存儲器對它們加載,或者用于程序或者中斷服務程序保存和恢復處理器的狀態(tài)。3.3.7CPU狀態(tài)和控制寄存器第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)54雙16位運算:ALU在單個指令周期內(nèi)進行獨立的2次16位加法或者2次16位減法。狀態(tài)寄存器1(ST1)C16——雙16位/雙精度算術運算方式控制位,用來決定ALU的運算模式

C16=0,ALU進行32位字長運算,雙精度運算;

C16=1,ALU同時進行2個相獨立的16位計算;第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)?

特定操作55BRAF——塊重復操作標志位塊重復有效標志,由其指示塊重復是否當前有效;

BRAF=0時塊重復無效;當塊重復計數(shù)器BRC減到小于零時,BRAF清零;

BRAF=1塊重復有效;當執(zhí)行RPTB指令時,BRAF

自動置位;狀態(tài)寄存器1(ST1)第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)2.重復操作:56?重復操作及重復指令:重復指令可以使DSP重復執(zhí)行一條指令或者一段指令。1)RPTSmen;重復執(zhí)行下一條指令(Smen)+1次,2)RPT#K;重復執(zhí)行下一條指令K+1次,并將重復次數(shù)

放入循環(huán)次數(shù)計數(shù)器RC中;RPTB[D]pmand;塊重復指令,循環(huán)次數(shù)由塊循環(huán)計數(shù)器BRC決定,BRC在指令執(zhí)行前被賦初值,指令執(zhí)行時,塊循環(huán)起始地址寄存器RSA按照PC+2(若帶擴展名D,則用PC+4)裝載,循環(huán)結(jié)束地址寄存器REA用程序存儲器地址pmand裝載。RPTZdst,#lk;將目的累加器dst清零,然后重復執(zhí)行下一條指令lk+1次;第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)57?重復操作及重復指令:重復指令可以被終止,即通過將ST1的BRAF位清零來終止。

當執(zhí)行PRTB[D]指令時,BRAF被自動置1.例:RPT#1111h;將下一條指令重復執(zhí)行1112h,即4370次;

并將1111h裝入RC。ST#0063h,BRC;塊循環(huán)次數(shù)計數(shù)器BRCRPTBend_block;第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)583.保持方式:狀態(tài)寄存器1(ST1)的D12,HM

選擇CPU的省電方式。

為降低功耗,當HOLD信號為低電平時,根據(jù)HM的邏輯,當HM=1,處理器暫停內(nèi)部執(zhí)行,數(shù)據(jù)總線、控制總線、地址總線(三總線)進入高阻狀態(tài),CPU暫停工作;當HM=0時,三總線處于高阻狀態(tài),但CPU任然繼續(xù)工作,從內(nèi)部程序存儲器繼續(xù)執(zhí)行,只是把外部接口置成高阻狀態(tài)。

第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器591.狀態(tài)寄存器0(ST0)ST0反映尋址要求和計算的中間運行狀態(tài),地址:0006H3.3.7CPU狀態(tài)和控制寄存器第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)狀態(tài)寄存器ST0各位的定義:15-1312111098-0ARPTCCOVAOVBDPARP——輔助寄存器指針,方式選擇位,3位.指定用于兼容模式下間接尋址的輔助寄存器;當DSP工作于標準模式(CMPT=0)時,ARP必須保持為0;各位的功能描述:603.3.7CPU狀態(tài)和控制寄存器第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)15-1312111098-0ARPTCCOVAOVBDPARP——與ST1的,CMPT相應,當CMPT=1,DSP工作于兼容模式,可以修正ARP,用于指定間接尋址的輔助寄存器。61TC——測試/控制標志位,存儲算術運算單元ALU的測試位操作結(jié)果;

TC受BIT、BITF、BITT、CMPM、CMPR、CMPS和

SFTC指令的影響,TC的狀態(tài)決定了是否需要條件轉(zhuǎn)移、調(diào)用、執(zhí)行和執(zhí)行返回指令;(PPT.30,31)C——進位位如果加法運算的結(jié)果產(chǎn)生了進位,則C=1;如果減法運算未產(chǎn)生借位,則C=1;除了帶16位移位的ADD和SUB指令外,如果加法中沒有進位或減法中產(chǎn)生借位,則在加法運算之后C=0;移位運算

也影響C(PPT.33)1.狀態(tài)寄存器0(ST0)3.3.7CPU狀態(tài)和控制寄存器第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)62OVA——累加器A的溢出標志位;OVB——累加器B的溢出標志位; 不論是ALU還是乘法器中的累加器,當結(jié)果目的操作數(shù)使累加器A產(chǎn)生溢出時,OVA=1;使累加器B產(chǎn)生溢出時,OVB=1;清零:

執(zhí)行復位

RSBX指令,如RSBXOVA,復位;SSBX置位;

AOV\ANOV、BOV\BNOV作為條件,如BC[D]、CC[D]、RC[D]、XC指令后自動清零

1.狀態(tài)寄存器0(ST0)第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器63DP——數(shù)據(jù)存儲器頁指針,此9位與指令中的低7位一起形成16

位直接尋址方式下的數(shù)據(jù)存儲器地址;DP域可通過帶短立即數(shù)的LD指令或從數(shù)據(jù)存儲器中裝載;當ST1中的尋址編譯方式位CPL=0時執(zhí)行此操作;

1.狀態(tài)寄存器0(ST0)第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器64151413121110987654-0BRAFCPLXFHMINTM0OVMSXMC16FRCTCMPTASMST1反映尋址要求,計算的初始狀態(tài)設置,I/O及中斷控制。地址:0007H2.狀態(tài)寄存器1(ST1)第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器65BRAF——塊重復操作標志位塊重復有效標志,由其指示塊重復是否當前有效;

BRAF=0時塊重復無效;BRAF=1塊重復有效;當執(zhí)行RPTB指令時,BRAF自動置位;當塊重復

計數(shù)器BRC減到小于零時,BRAF清零。

2.狀態(tài)寄存器1(ST1)第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器66CPL——直接尋址編譯方式位,指定哪一個指針用于直接尋址;

CPL=0時,用數(shù)據(jù)頁指針DP;

CPL=1時,用堆棧指針SP;XF——外部標志(XF)管腳狀態(tài),XF是通用的輸出管腳,

SSBX指令能夠置位XF,RSBX指令能夠復位XF;HM——保持方式位,CPU的省電方式之一。指示當接到一個HOLD低電平信號時處理器是否繼續(xù)內(nèi)部指令的執(zhí)行;

HM=0,處理器從內(nèi)部程序存儲器繼續(xù)執(zhí)行,只是把外部接口置成高阻狀態(tài);

HM=1,處理器暫停內(nèi)部執(zhí)行;2.狀態(tài)寄存器1(ST1)第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器67INTM——中斷方式位,用于屏蔽或打開全部中斷

INTM=0,開放所有可屏蔽中斷

INTM=1,關閉所有可屏蔽中斷

INTM不能通過存儲器寫操作來設置;

SSBX指令可置位INTM,RSBX指令清除INTM;0——保留位,未使用,此位總是等于0;OVM——溢出方式控制位,決定當累加器溢出時重新裝入目的累加器的數(shù)值;

OVM=0,從ALU或乘法器的加法器中溢出的結(jié)果像正常情況一樣加到目的累加器中;

OVM=1,根據(jù)遇到的溢出值目的累加器被置成:或者最大的正值(007FFFFFFFh)或者最負的值

(FF80000000h)(PPT.23)2.狀態(tài)寄存器1(ST1)第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器68SXM——符號位擴展方式控制位,決定是否做符號擴展

SXM=0,數(shù)據(jù)進入ALU之前符號位禁止擴展;

SXM=1,數(shù)據(jù)在被ALU使用之前進行符號擴展;SSBX指令和RSBX指令分別設置和復位SXM

(PPT.22)FRCT——小數(shù)方式位,指定乘法器的運算模式當FRCT=1時,乘法器的輸出自動左移1位,消除多余符號位。(PPT.41)2.狀態(tài)寄存器1(ST1)第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器69C16——雙16位/雙精度算術運算方式控制位,用來決定ALU的運算模式

C16=0,ALU進行32位字長運算,雙精度運算;

C16=1,ALU同時進行2個相獨立的16位計算;

?雙16位運算:ALU在單個指令周期內(nèi)進行獨立的2次16位加法或者2次16位減法。2.狀態(tài)寄存器1(ST1)第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器70CMPT——修正方式位,CMPT決定ARP是否可以修正。CMPT=0在間接尋址單個數(shù)據(jù)存儲器操作數(shù)時,不能修正ARP。當DSP工作在這種方式。ARP必須置0CMPT=1在間接尋址單個數(shù)據(jù)存儲器操作數(shù)時,可修正ARP,當指令正在選擇輔助寄存器0(AR0)時除外ASM——累加器移位方式位

5位的ASM域指定了-15到16范圍內(nèi)的移位值并且被編碼為2的補碼;

2.狀態(tài)寄存器1(ST1)第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器(PPT.25,38)71

可以使用SSBX和RSBX指令對ST0和ST1的“各個位”進行置位(設置為1)或清零(設置為0)操作,例如符號擴展模式可以使用SSBXSXM;設置為1

RSBXSXM;復位操作ARP、DP、ASM可以使用LD指令帶一個短立即操作數(shù)來裝載,ASM和DP還可以使用LD指令用數(shù)據(jù)存儲器的值來裝載;2.狀態(tài)寄存器1(ST1)第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器723.處理器模式狀態(tài)寄存器PMST15-76543210IPTRMP/MCOVLYAVISDROMCLKOFFSMULSSTIPTR——中斷向量指針,指定中斷向量表的存放位置;

9位的IPTR指向128字的程序頁,在這128字程序頁保存著中斷向量。在引導裝載操作時,可以重新把中斷向量映射到RAM區(qū)。在復位時,這些位都設為

1;復位向量總是駐留在程序存儲器空間的FF80h地址處,RESET指令不影響此區(qū)域PMST主要設定并控制處理器的工作方式,反映處理器工作狀態(tài)。PMST中的數(shù)據(jù)決定了C54X芯片的存儲器配置情況,PMST寄存器通過存儲器尋址的寄存器指令裝載,如STM指令;第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器73MP/MC——微處理器/微計算機模式,決定片內(nèi)ROM是否可由程序存儲空間尋址;取決于管腳MP/MC上的電平,MP/MC=0,可尋址片內(nèi)程序存儲器(片內(nèi)ROM);MP/MC=1,不能尋址片內(nèi)程序存儲器(片內(nèi)ROM)。OVLY——片內(nèi)RAM占位位,使片內(nèi)雙重訪問RAM可以被映射到程序存儲區(qū);

OVLY=0,只能在數(shù)據(jù)空間但不能在程序空間尋址片內(nèi)RAM

OVLY=1,片內(nèi)RAM可以映射入程序空間和數(shù)據(jù)空間;3.處理器模式狀態(tài)寄存器PMST第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器74AVIS——地址可見位,決定內(nèi)部程序地址是否在地址管腳上可見,即AVIS控制能否從器件地址線管腳上觀察內(nèi)部地址線;

AVIS=0,外部程序地址線不隨內(nèi)部程序地址變化,控制和數(shù)據(jù)線不受影響,并且地址總線由總線上的最后地址驅(qū)動,此時內(nèi)部程序地址的變化不能通過器件的地址線管腳觀察;

AVIS=1,允許內(nèi)部程序地址出現(xiàn)在C54X管腳上,可用來跟蹤內(nèi)部程序地址;3.處理器模式狀態(tài)寄存器PMST第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器75DROM——數(shù)據(jù)ROM位,決定片內(nèi)ROM是否可映射到數(shù)據(jù)空間

DROM=0,片上ROM不映射入數(shù)據(jù)空間;

DROM=1,一部分片上ROM映射入數(shù)據(jù)空間。CLKOFF—CLKOUT時鐘輸出關斷位,決定時鐘輸出管腳是否有輸出CLKOFF=1時,禁止CLKOUT輸出并保持為高電平;SMUL——乘法飽和方式位,乘法運算時取整只有在OVM=1并且FRCT=1時SMUL才可用;當SMUL=1時,在MAC或MAS指令中進行累加運算之前將乘法運算結(jié)果取整;SST——存儲飽和位,存儲時取整,當SST=1時,累加器中的數(shù)據(jù)在存儲到存儲器之前允許取整,取整在移位操作之后完成;3.處理器模式狀態(tài)寄存器PMST第3章TMS320C54x的硬件結(jié)構3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器76TMS320C54x中有兩個地址發(fā)生器:程序地址發(fā)生器(PAGEN)和數(shù)據(jù)地址發(fā)生器(DAGEN),用來對程序存儲器和數(shù)據(jù)存儲器進行尋址,產(chǎn)生所需的地址信息。3.4.1地址發(fā)生器第3章TMS320C54x的硬件結(jié)構3.4存儲器1.程序地址發(fā)生器1)程序地址發(fā)生器作用:負責產(chǎn)生合適的地址訪問程序存儲器。所生成的地址用來訪問指令、系數(shù)表、16位立即數(shù)或其他存儲在程序存儲器中的信息。程序地址發(fā)生器的組成如右圖所示。771.程序地址發(fā)生器2)PAGENB包括以下5個寄存器(1)程序計數(shù)器(PC)(2)重復計數(shù)器(RC)(3)塊重復計數(shù)器(BRC)(4)塊重復起地址寄存器(RSA)(5)塊重復結(jié)束地址寄存器(REA)3.4.1地址發(fā)生器第3章TMS320C54x的硬件結(jié)構3.4存儲器783).程序計數(shù)器PC的加載方式3.4.1地址發(fā)生器第3章TMS320C54x的硬件結(jié)構復位將FF80H裝入PC順序執(zhí)行將PC+1裝入PC;PC能自動加1分支轉(zhuǎn)移將分支轉(zhuǎn)移指令提供的16位立即數(shù)裝入PC累加器分支轉(zhuǎn)移將累加器A或者B的低16位裝入PC塊重復若BRAF=1,塊重復有效。當PC+1等于(REA)+1時,將(RSA)裝入PC子程序調(diào)用將PC+1壓入堆棧,然后將緊跟調(diào)用指令后的16位立即數(shù)裝入PC;調(diào)用結(jié)束后用返回指令將堆棧中的數(shù)據(jù)恢復到PC累加器子程序調(diào)用將PC+1壓入堆棧,然后將累加器A或者B的低16位裝入PC,中斷將PC壓入堆棧,然后將中斷向量裝入PC;返回時將堆棧值恢復到PC3.4存儲器792.擴展程序計數(shù)器XPC的加載方式(超過64K的程序范圍)3.4.1地址發(fā)生器第3章TMS320C54x的硬件結(jié)構復位將FF80H裝入PC,將00H裝入XPC順序執(zhí)行將PC+1裝入PC,XPC不自動加1遠程分支轉(zhuǎn)移將分支轉(zhuǎn)移指令提供的16位立即數(shù)的15~0裝入PC,23~16裝XPC累加器遠程分支轉(zhuǎn)移將累加器A或者B的低16位15~0裝入PC,23~16裝入XPC子程序遠程調(diào)用將PC+1、XPC壓入堆棧,然后將緊跟調(diào)用指令后的16位立即數(shù)的15~0裝入PC,23~16裝入XPC;調(diào)用結(jié)束后用返回指令將堆棧中的第一個數(shù)據(jù)恢復到XPC,下一個數(shù)據(jù)恢復到PC累加器子程序遠程調(diào)用將PC+1、XPC的值壓入堆棧,然后將累加器A或者B的低16位15~0裝入PC,23~16裝入XPC,返回同上。3.4存儲器80程序控制指令

1.分支轉(zhuǎn)移(跳轉(zhuǎn))指令分支轉(zhuǎn)移(跳轉(zhuǎn))指令可以改變程序指針PC的值,使程序從一個地址跳轉(zhuǎn)到另一個地址執(zhí)行。這種跳轉(zhuǎn)可以是無條件的跳轉(zhuǎn),也可以是有條件的跳轉(zhuǎn)。811.分支轉(zhuǎn)移(跳轉(zhuǎn))指令B[D]和BACC[D]為近程無條件轉(zhuǎn)移指令。B[D]用于將pmad指定的程序存儲器地址賦值給程序計數(shù)器PC,實現(xiàn)分支轉(zhuǎn)移。BACC[D]用于將src的低16位所確定的地址賦給PC。如果指令是延遲方式的(帶有D后綴),緊跟分支轉(zhuǎn)移語句之后的2條單字指令或者1條雙字指令被取出執(zhí)行,然后程序才跳轉(zhuǎn)到目的地址。注意,該指令不能被重復執(zhí)行。BANZ[D]和BC[D]為近程條件轉(zhuǎn)移指令,BANZ[D]為輔助寄存器不為零時的分支轉(zhuǎn)移,若當前輔助寄存器ARx不為0,則程序指針轉(zhuǎn)移到指定pmad;否則PC指針加2。BC[D]指令在滿足特定條件時,指令就轉(zhuǎn)移到pmad上;否則PC加2且緊接著該指令的兩個字繼續(xù)執(zhí)行。FB[D]和FBACC[D]為遠程無條件轉(zhuǎn)移。FB[D]指令將extpmad的高7位(22~16)確定的頁碼賦值給程序計數(shù)擴展寄存器XPC,將extpmad的低16位(15~0)賦值給PC,實現(xiàn)長跳轉(zhuǎn)。FBACC[D]指令將src的高7位(22~16)賦值給XPC,將src的低16位(15~0)賦值給PC,實現(xiàn)長跳轉(zhuǎn)。821.分支轉(zhuǎn)移(跳轉(zhuǎn))指令[例]分支轉(zhuǎn)移(跳轉(zhuǎn))指令示例 BC2000h,AGT;當累加A的值大于0時,將當前程序直接跳轉(zhuǎn)到2000h處,否則PC加2

指令執(zhí)行前指令執(zhí)行前指令執(zhí)行前指令執(zhí)行后A0000000053A0000000053AFFFFFFFFFFAFFFFFFFFFFPC1000PC2000PC1000PC1002832.調(diào)用指令調(diào)用指令同樣可以改變程序指針PC的值,使程序從一個地址跳轉(zhuǎn)到另一個地址執(zhí)行。但與跳轉(zhuǎn)指令不同的是,DSP在執(zhí)行完被調(diào)用的程序段后要返回起跳處繼續(xù)執(zhí)行原來的程序。語法表達式說明字數(shù)周期(非延遲/延遲)CALA[D]src–

–SP,PC+1[3]=TOS,PC=src(15–0)按累加器規(guī)定的地址調(diào)用子程序16/4CALL[D]pmad–

–SP,PC+2[4]=TOS,PC=pmad(15

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論