版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第1章DSP系統(tǒng)設(shè)計(jì)的基礎(chǔ)知識1.1數(shù)制和數(shù)制轉(zhuǎn)換
1.2數(shù)據(jù)位數(shù)和符號
1.3補(bǔ)碼
1.4補(bǔ)碼加減運(yùn)算
1.5符號擴(kuò)展與補(bǔ)碼乘法
1.6整數(shù)除法運(yùn)算
1.7小數(shù)補(bǔ)碼和運(yùn)算
DSP可看做是一款高性能的單片機(jī),數(shù)值運(yùn)算是它的主要任務(wù)。因此,本章介紹二進(jìn)制補(bǔ)碼及其運(yùn)算等基礎(chǔ)知識。
計(jì)算機(jī)(也包括單片機(jī)、DSP)的基本任務(wù)是先從某個(gè)“地方”取數(shù)(讀操作數(shù)),然后按某種規(guī)律進(jìn)行運(yùn)算,再把結(jié)果存放到某個(gè)“地方”(寫操作數(shù))。這里的“地方”是指存儲器、I/O端口等。因此,地址和數(shù)據(jù)是計(jì)算機(jī)中兩個(gè)重要的基本概念。由于計(jì)算機(jī)只能存儲“0”和“1”兩種狀態(tài),因此計(jì)算機(jī)中的地址和數(shù)據(jù)都是用二進(jìn)制數(shù)表示的。同計(jì)算機(jī)原理一樣,DSP的地址和數(shù)據(jù)也用二進(jìn)制數(shù)表示,但二進(jìn)制數(shù)在閱讀和書寫上都很不方便,而十六進(jìn)制數(shù)和二進(jìn)制數(shù)有一個(gè)十分簡單的轉(zhuǎn)換關(guān)系。因此,在書寫時(shí),一般采用十六進(jìn)制數(shù)。如:十進(jìn)制數(shù)66可寫成8位二進(jìn)制數(shù)或2位十六進(jìn)制數(shù):66=01000010B=0x42=42H。其中二進(jìn)制數(shù)用后綴B表示,十六進(jìn)制數(shù)用前綴0x或后綴H(不分大小寫)表示。書寫時(shí)十六進(jìn)制數(shù)只能以符號0~9開始,當(dāng)十六進(jìn)制數(shù)的第一個(gè)符號為A~F時(shí),在其符號前加0,如255用2位十六進(jìn)制數(shù)表示為0x0FF或0FFH。
1.1數(shù)制和數(shù)制轉(zhuǎn)換
在日常生活中經(jīng)常使用的是十進(jìn)制數(shù),由0~9共10個(gè)符號組成,按照“逢十進(jìn)一”的規(guī)則運(yùn)算。計(jì)算機(jī)中使用的數(shù)是二進(jìn)制數(shù),它只有0和1兩個(gè)符號,按照“逢二進(jìn)一”的規(guī)則運(yùn)
算。與二進(jìn)制數(shù)密切相關(guān)的是十六進(jìn)制數(shù),由0~9和A~F共16個(gè)符號組成,按照“逢十六進(jìn)一”的規(guī)則運(yùn)算。二進(jìn)制數(shù)、十六進(jìn)制數(shù)與十進(jìn)制數(shù)的轉(zhuǎn)換關(guān)系如下:由于24=16,因此1位十六進(jìn)制數(shù)可用4位二進(jìn)制數(shù)表示,它們之間的關(guān)系如表1.1所示。
1.2數(shù)據(jù)位數(shù)和符號
計(jì)算機(jī)(包括單片機(jī)、DSP)除了受“0”和“1”兩種狀態(tài)的限制外,還受到數(shù)據(jù)長度的限制。計(jì)算機(jī)的數(shù)據(jù)總線一般為8位、16位、32位或64位,C54xDSP的數(shù)據(jù)總線為16位,可表示的數(shù)有16位二進(jìn)制數(shù)(稱為1個(gè)字)和32位二進(jìn)制數(shù)(稱為2個(gè)字或雙字)。當(dāng)用C語言編寫的程序在DSP系統(tǒng)中運(yùn)行時(shí),在C語言中用1個(gè)字節(jié)(8位二進(jìn)制數(shù))表示的數(shù)在DSP系統(tǒng)中均擴(kuò)展為1個(gè)字。
1.無符號整數(shù)
在C54x中,當(dāng)一個(gè)16位二進(jìn)制數(shù)(1個(gè)字)定義為無符號數(shù)時(shí),它表示的值的范圍為0~65535。類似地,一個(gè)32位二進(jìn)制數(shù)(1個(gè)雙字)可表示0~232-1之間的無符號數(shù),它們的數(shù)據(jù)精度(能表示的最小的數(shù))都是1。一般情況下,用n位二進(jìn)制數(shù)表示無符號數(shù)的范圍是0~2n-1。由于數(shù)據(jù)位數(shù)的限制,在進(jìn)行數(shù)據(jù)運(yùn)算時(shí)要注意數(shù)據(jù)表示的范圍,超出數(shù)據(jù)范圍會發(fā)生數(shù)據(jù)溢出錯(cuò)誤。
2.有符號整數(shù)
除了要注意數(shù)據(jù)表示的范圍外,還要關(guān)注數(shù)據(jù)的符號。數(shù)據(jù)有正、負(fù)兩種,可用“0”和“1”兩種狀態(tài)表示,“0”表示
正數(shù),“1”表示負(fù)數(shù)。一般把符號位放在最高位,其余位表示數(shù)據(jù)的絕對值。在計(jì)算機(jī)中,以這種格式表示的二進(jìn)制
數(shù)稱為原碼。一個(gè)n位原碼表示的有符號整數(shù)的范圍為
-(2n-1-1)~2n-1-1,其中0有“+0”和“-0”兩種表示方式。
1.3補(bǔ)碼
計(jì)算機(jī)的加法器和乘法器一般都是按無符號整數(shù)設(shè)計(jì)的,因此用這種硬件結(jié)構(gòu)實(shí)現(xiàn)有符號整數(shù)運(yùn)算時(shí),轉(zhuǎn)換關(guān)系復(fù)雜,運(yùn)行速度慢,很不方便。為此,計(jì)算機(jī)用“補(bǔ)碼”來表示有符號數(shù)。整數(shù)X用n位二進(jìn)制補(bǔ)碼表示的規(guī)則定義如下:
(1)若X≥0,它的原碼就是它的補(bǔ)碼。
(2)若X<0,它的補(bǔ)碼為:其原碼符號位不變,數(shù)據(jù)位取反加1。
同樣,二進(jìn)制補(bǔ)碼也有數(shù)據(jù)范圍問題,一個(gè)n位二進(jìn)制補(bǔ)碼表示的范圍為-2n-1~2n-1-1,超出數(shù)據(jù)范圍會發(fā)生數(shù)據(jù)溢出錯(cuò)誤,這里0只有“+0”一種表示方式。
無符號整數(shù)、有符號整數(shù)(原碼和補(bǔ)碼)與十六進(jìn)制數(shù)的對應(yīng)關(guān)系如表1.2所示。利用Windows操作系統(tǒng)“附件”中的計(jì)算器也可以求出用補(bǔ)碼表示的數(shù)。當(dāng)補(bǔ)碼表示正數(shù)時(shí),方法與無符號數(shù)的轉(zhuǎn)換方法相同;當(dāng)補(bǔ)碼表示負(fù)數(shù)時(shí),先將其作為無符號數(shù)轉(zhuǎn)換為十
進(jìn)制數(shù),然后減去2n,其中n為數(shù)據(jù)位數(shù)。例如計(jì)算16位二進(jìn)制補(bǔ)碼數(shù)0x0FFFF,先將其作為無符號整數(shù)轉(zhuǎn)換成十進(jìn)制
數(shù)65535,再減去216=65536,得-1,這就是它對應(yīng)的十進(jìn)
制數(shù)的值。
1.4補(bǔ)碼加減運(yùn)算
用補(bǔ)碼表示有符號數(shù)后,就可以用同無符號數(shù)一樣的硬件運(yùn)算結(jié)構(gòu)實(shí)現(xiàn)有符號數(shù)運(yùn)算。如果有符號數(shù)位數(shù)不夠,則在其高位填充符號位,即正數(shù)前補(bǔ)0,負(fù)數(shù)前補(bǔ)1,計(jì)算結(jié)果仍為補(bǔ)碼表示的數(shù)。只要計(jì)算結(jié)果不發(fā)生溢出,其答案就是正確的。例1.1設(shè)數(shù)據(jù)位數(shù)n=8,試用二進(jìn)制補(bǔ)碼求X+Y=100+77=?解:(1.1)這個(gè)運(yùn)算的特點(diǎn)是符號位沒有進(jìn)位,但數(shù)據(jù)的最高位有進(jìn)位。顯然,100+77=177,其結(jié)果超出了8位二進(jìn)制補(bǔ)碼數(shù)表示的范圍(-128~127),稱之為溢出(OV),這時(shí)其運(yùn)算結(jié)果0xB1作補(bǔ)碼-79來解釋是錯(cuò)誤的。例1.2設(shè)數(shù)據(jù)位數(shù)n=8,試用二進(jìn)制補(bǔ)碼求
X+Y=(-100)+(-77)=?
解:[X]補(bǔ)=10011100B,[Y]補(bǔ)=10110011B(1.2)這個(gè)運(yùn)算的特點(diǎn)是符號位有進(jìn)位,但數(shù)據(jù)的最高位沒有進(jìn)位。顯然,(-100)+(-77)=-177,其結(jié)果也超出了8位二進(jìn)制補(bǔ)碼數(shù)表示的范圍(-128~127),產(chǎn)生了溢出,這時(shí)其運(yùn)算結(jié)果0x4F=79(補(bǔ)碼)也是錯(cuò)誤的。例1.3設(shè)數(shù)據(jù)位數(shù)n=8,試用二進(jìn)制補(bǔ)碼求
X+Y=50+77=?
解:(1.3)這個(gè)運(yùn)算的特點(diǎn)是符號位和數(shù)據(jù)的最高位都沒有進(jìn)位。自然,50+77=127,其結(jié)果沒有超出8位二進(jìn)制補(bǔ)碼數(shù)表示的范圍(-128~127),未產(chǎn)生溢出,其運(yùn)算結(jié)果0x7F=127(補(bǔ)碼)是正確的。例1.4設(shè)數(shù)據(jù)位數(shù)n=8,試用二進(jìn)制補(bǔ)碼求
X+Y=(-50)+(-77)=?
解:(1.4)這個(gè)運(yùn)算的特點(diǎn)是符號位和數(shù)據(jù)的最高位都有進(jìn)位。自然,(-50)+(-77)=-127,其結(jié)果沒有超出8位二進(jìn)制補(bǔ)碼數(shù)表示的范圍(-128~127),未產(chǎn)生溢出,其運(yùn)算結(jié)果0x81=-127(補(bǔ)碼)是正確的。
C54xDSP芯片的CPU(中央處理單元)有一個(gè)16位的狀態(tài)寄存器ST0,用來記錄CPU的ALU(算術(shù)邏輯單元)的計(jì)算結(jié)果標(biāo)志。其中有3個(gè)比特位用來記錄計(jì)算結(jié)果是否有溢出和進(jìn)位。
當(dāng)ALU中的累加器A的計(jì)算有溢出時(shí),比特位OVA自動置1,當(dāng)ALU中的累加器B的計(jì)算有溢出時(shí),比特位OVB自動置1;當(dāng)加法有進(jìn)位時(shí),比特位C自動置1,當(dāng)減法有借位時(shí),比特
位C自動置0。ST0的結(jié)構(gòu)如圖1.1所示。圖1.1
C54xDSP的狀態(tài)寄存器ST0的結(jié)構(gòu)
ALU在進(jìn)行數(shù)值運(yùn)算時(shí),如果數(shù)據(jù)發(fā)生溢出,會產(chǎn)生錯(cuò)誤結(jié)果。例如16位二進(jìn)制有符號數(shù)(簡稱16bit,或16b,以下同)0x7FFFFFFF=2147483647,當(dāng)它再加1時(shí),按照ALU的運(yùn)算規(guī)則,應(yīng)等于0x80000000,但有符號數(shù)0x80000000作補(bǔ)碼解釋為-2147483648,則會帶來非常大的運(yùn)算錯(cuò)誤。為了減少此類錯(cuò)誤,需要對溢出作近似處理。
C54xDSP芯片的CPU還有一個(gè)16位的狀態(tài)寄存器ST1,其結(jié)構(gòu)如圖1.2所示。其中有一個(gè)溢出模式位OVM(OverflowMode),用來設(shè)置ALU計(jì)算的結(jié)果是否作溢出處理。圖1.2
C54xDSP的狀態(tài)寄存器ST1的結(jié)構(gòu)
1.5符號擴(kuò)展與補(bǔ)碼乘法
在計(jì)算機(jī)的計(jì)算中,有時(shí)為了提高計(jì)算精度,常常需要用多字來表示一個(gè)數(shù),這就存在數(shù)據(jù)擴(kuò)展的問題。在進(jìn)行補(bǔ)碼乘法時(shí),為了得到正確的結(jié)果,也需要進(jìn)行數(shù)據(jù)擴(kuò)展。對于無符號整數(shù)來說,這種擴(kuò)展比較容易,在前面補(bǔ)0即可。但對于用補(bǔ)碼表示的有符號整數(shù)而言,其擴(kuò)展方法是在原數(shù)據(jù)前補(bǔ)符號位,即在正整數(shù)前面全部補(bǔ)0,在負(fù)整數(shù)前面全部補(bǔ)1(負(fù)數(shù)的符號位)。采用這種擴(kuò)展方法,只要結(jié)果不溢出,其運(yùn)算結(jié)果就是正確的??梢?,對于用補(bǔ)碼表示的有
符號整數(shù)來說,其數(shù)據(jù)擴(kuò)展就是符號擴(kuò)展。在本書的其他部分,若無特別聲明,有符號數(shù)均用補(bǔ)碼表示。例1.5設(shè)數(shù)據(jù)位數(shù)n=8,現(xiàn)采用16位二進(jìn)制補(bǔ)碼求
X+Y=50+(-77)=?
解:(1.5)式中X=50是正數(shù),在其前面全部補(bǔ)0,Y=-77是負(fù)數(shù),在
其前面全部補(bǔ)1,最終結(jié)果是正確的(沒有超過16位有符號整
數(shù)表示的范圍)。用二進(jìn)制書寫不方便,用十六進(jìn)制數(shù)書寫
式(1.5)為
X+Y=0x0032+0xFFB3=0xFFE5=-27
(1.6)例1.6設(shè)數(shù)據(jù)位數(shù)n=8,現(xiàn)采用16位二進(jìn)制補(bǔ)碼求
X×Y=50×(-77)=?
解:(1.7)式中,在X前面全部補(bǔ)0,在Y前面全部補(bǔ)1,其結(jié)果是正確的(沒有超過16位有符號整數(shù)表示的范圍)。用十六進(jìn)制數(shù)書寫式(1.7)為
X×Y=0x0032×0xFFB3=0xF0F6=-3850
(1.8)
C54xDSP芯片的CPU的狀態(tài)寄存器ST1有一個(gè)比特位SXM用來設(shè)置計(jì)算的輸入數(shù)據(jù)是否作符號擴(kuò)展。當(dāng)SXM=1時(shí)(默認(rèn)設(shè)置),計(jì)算的輸入數(shù)據(jù)作符號擴(kuò)展,DSP作有符號數(shù)運(yùn)算;反之,輸入計(jì)算的數(shù)據(jù)不作符號擴(kuò)展,DSP作無符號數(shù)運(yùn)算。用匯編語言設(shè)置SXM的指令為
RSBX SXM;SXM=0,CPU作無符號數(shù)運(yùn)算
SSBX SXM;SXM=1,CPU作有符號數(shù)運(yùn)算
C54xDSP芯片有專用的硬件乘法單元和硬件加法單元,可在一個(gè)時(shí)鐘周期內(nèi),同時(shí)完成一次乘法和一次加法運(yùn)算。
1.6整數(shù)除法運(yùn)算
C54xDSP沒有除法指令,若除數(shù)是常數(shù),則轉(zhuǎn)化為乘法計(jì)算(乘以除數(shù)的倒數(shù));若除數(shù)是2的整數(shù)次方,可用算術(shù)移位快速實(shí)現(xiàn)計(jì)算;若除數(shù)是一個(gè)變量,則比較復(fù)雜,需要編程間接實(shí)現(xiàn)計(jì)算。
例1.7計(jì)算Y÷2=-0.0625,用C54xDSP匯編指令如下:
1.7小數(shù)補(bǔ)碼和運(yùn)算
有符號小數(shù)的補(bǔ)碼可由有符號整數(shù)的補(bǔ)碼直接擴(kuò)展而來。設(shè)n位二進(jìn)制小數(shù)由m位整數(shù)(包括符號位)和k位小數(shù)組成(n=m+k),這種表示方式稱為Qk方式。當(dāng)k=0時(shí),則退化為完全整數(shù)(Q0);若m=1,則為純小數(shù)(若n=16,為Q15)。Q表示法及其數(shù)值范圍、數(shù)據(jù)精度如表1.3所示。一個(gè)純小數(shù)X轉(zhuǎn)換成Qn格式的數(shù)(也稱定點(diǎn)數(shù),即小數(shù)點(diǎn)位置固定的數(shù))的公式為式(1.9)。
Xn=(int)X×2n
(1.9)
式中n為二進(jìn)制表示的小數(shù)點(diǎn)后面的位數(shù),int表示取整數(shù)部分。公式的含義是小數(shù)X先乘以2n變成整數(shù),然后按整數(shù)的方式轉(zhuǎn)換成補(bǔ)碼形式的二進(jìn)制數(shù)(或十六進(jìn)制數(shù)),
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024高速公路工程結(jié)構(gòu)設(shè)計(jì)與施工合同3篇
- 二零二五年車輛融資租賃購車合同模板(含車輛品牌置換)3篇
- 二零二五年度無人駕駛技術(shù)研發(fā)合同簡易執(zhí)行版2篇
- 2025年新型建筑旋挖樁基勞務(wù)分包施工質(zhì)量保證合同2篇
- 買賣門市合同協(xié)議書范本2篇
- 2025年建筑施工團(tuán)隊(duì)合作協(xié)議3篇
- 二零二五版進(jìn)口貨物CIF和FOB價(jià)格條款服務(wù)合同2篇
- 二零二五年音樂節(jié)DJ藝人聘用及保障協(xié)議3篇
- 個(gè)性化勞動合作協(xié)議(2024年版)一
- 二零二五版軟件開發(fā)許可協(xié)議:定制化企業(yè)信息管理系統(tǒng)開發(fā)
- 青島版(五年制)四年級下冊小學(xué)數(shù)學(xué)全冊導(dǎo)學(xué)案(學(xué)前預(yù)習(xí)單)
- 退學(xué)費(fèi)和解協(xié)議書模板
- 2024至2030年中國對氯甲苯行業(yè)市場全景調(diào)研及發(fā)展趨勢分析報(bào)告
- 智能教育輔助系統(tǒng)運(yùn)營服務(wù)合同
- 心功能分級及護(hù)理
- DLT 572-2021 電力變壓器運(yùn)行規(guī)程
- 重慶育才中學(xué)2025屆化學(xué)九上期末教學(xué)質(zhì)量檢測試題含解析
- 成都市2022級(2025屆)高中畢業(yè)班摸底測試(零診)數(shù)學(xué)試卷(含答案)
- 【云南省中藥材出口現(xiàn)狀、問題及對策11000字(論文)】
- 服裝板房管理制度
- 河北省興隆縣盛嘉恒信礦業(yè)有限公司李杖子硅石礦礦山地質(zhì)環(huán)境保護(hù)與治理恢復(fù)方案
評論
0/150
提交評論