999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

VRS51L3074上增強(qiáng)型算術(shù)單元的高效算術(shù)運(yùn)算*

2010-06-25 02:45:04李翔李智王勇軍
關(guān)鍵詞:符號單片機(jī)

李翔,李智,王勇軍

(桂林電子科技大學(xué) 電子工程學(xué)院,桂林 541004)

李翔(研究生),研究方向為自動測試總線與系統(tǒng)。

引 言

VRS51L3074是美國 Ramtron(瑞創(chuàng))公司推出的 8位單片機(jī)VRS51L3xxx系列的成員。該單片機(jī)擁有許多優(yōu)良的性能特點:峰值速度高達(dá)40MIPS的增強(qiáng)型8051內(nèi)核,大容量的片上存儲器(64 KB Flash與 4 KB擴(kuò)展RAM),寫入速度及重復(fù)擦寫次數(shù)遠(yuǎn)超過EEPROM的鐵電存儲器(F-RAM),多達(dá)8通道的PWM輸出等。

增強(qiáng)型算術(shù)單元(Enhanced Arithmetic Unit,EAU)是VRS51L3074單片機(jī)的眾多外圍模塊之一。該模塊可以執(zhí)行類似于通用DSP芯片中的乘加(MAC)操作,即2個16位二進(jìn)制數(shù)相乘后,再將32位乘積與另一個32位數(shù)相加。并且,乘加運(yùn)算所得結(jié)果還可進(jìn)行桶形移位,整個“乘—加—移位”操作只需1個時鐘周期即可完成。不難看出,如果能充分利用VRS51L3074的EAU,可以使該單片機(jī)更高效地執(zhí)行復(fù)雜的算術(shù)運(yùn)算。

1 EAU的原理與使用

EAU的運(yùn)算模式可分為3種:乘加運(yùn)算、32位加法運(yùn)算和16位整數(shù)除法運(yùn)算。前兩種模式還可以附加一次移位操作。

從硬件結(jié)構(gòu)的角度來看,EAU可以再細(xì)分為4個單元:16×16位乘法器、32位加法器、32位桶型移位器和16位除法器。這4個單元并不是可以任意搭配使用的,而上述的3種EAU工作模式正好對應(yīng)了實際可用的3種搭配方式,即:乘法器—加法器—移位器連用,加法器—移位器連用,以及單獨使用除法器。

EAU中的乘法器和除法器都只能執(zhí)行有符號數(shù)的運(yùn)算,加法器則只能執(zhí)行無符號加法,而桶型移位器可以設(shè)置為將其輸入值看作有符號數(shù)或者無符號數(shù)。關(guān)于如何選擇要執(zhí)行的運(yùn)算及其操作數(shù),VRS51L3074的手冊中已有詳細(xì)介紹,不再贅述。

2 EAU應(yīng)用舉例

以下要介紹的是利用EAU進(jìn)行計算的實例。所有代碼均在KeiluVision3集成開發(fā)環(huán)境下編譯通過(需用到Ram tron公司提供的VRS51L3074_keil.h頭文件)。

2.1 32位有符號數(shù)開平方算法

設(shè)被開方數(shù)為x,其平方根為y,并且有y=a14?214+a13?213+…+a0?20。y的最高位為符號位,此處僅計算算術(shù)平方根,故符號位為0。

首先來看如何確定a14。如果該位實際為0,即y=a13?213+…+a0?20<214,則必有 x<(214)2;反之,若該位實際為1,則必有y≥214,即x≥(214)2。因此,要確定a14,只需將其置1,并比較此時的y2(不妨稱此時的 y為“試根”)與x。若y2≤x,則a14=1,反之 a14=0。特別地,如果此時恰有y2=x,則y=214就是所求平方根的準(zhǔn)確值。

又如a14~aN(0<N≤14)各位已確定,當(dāng)aN-1=1時,有y=a14?214+…+aN?2N+2N-1+…。因此,必有 x≥(a14?214+…+aN?2N+2N-1)2。故可先置 aN-1=1,并比較此時的y2與 x:若 y2≤x,則aN-1=1成立;反之,aN-1=0。特別地,如果恰有y2=x,則此時的y就是所求平方根的準(zhǔn)確值。

上述算法的關(guān)鍵在于,求試根的平方并將其與被開方數(shù)比較大小。通過使用EAU的乘法器和加法器可以方便地實現(xiàn)該算法。代碼如下:

2.2 16位二進(jìn)制數(shù)轉(zhuǎn)BCD碼算法

將二進(jìn)制數(shù)轉(zhuǎn)換為BCD碼,通常是利用除法和取余運(yùn)算來實現(xiàn)。借助EAU的除法器,可以提高該算法的效率。代碼如下:

3 算法驗證

在VRS51L3074單片機(jī)程序中,分別調(diào)用2.1小節(jié)中給出的函數(shù)l_sqrt以及KeilC51提供的浮點庫函數(shù)sqrt,利用定時器/計數(shù)器T 0記錄函數(shù)從調(diào)用到返回所花費的時間(以系統(tǒng)時鐘周期為單位),結(jié)果如表1所列。

表1 l_sqrt函數(shù)與浮點庫函數(shù)對比

在調(diào)用浮點庫函數(shù)時,編譯器會同時調(diào)用整數(shù)與浮點數(shù)相互轉(zhuǎn)換的函數(shù),其執(zhí)行時間也包含在表1所列的調(diào)用時間內(nèi)。從表1可以看出2.1小節(jié)所述算法的一個特點:當(dāng)被開方數(shù)是完全平方數(shù),且平方根末尾有連續(xù)的若干位為0時,計算過程會在算出其中第一個0后立即結(jié)束,計算時間也就相應(yīng)地減少了。

對于2.2小節(jié)所介紹的算法,由于其中沒有分支和跳轉(zhuǎn),執(zhí)行時間是固定的。同樣用T 0對其調(diào)用過程計時,計數(shù)值總是為0x008c,即從函數(shù)調(diào)用到返回所需時間為140個時鐘周期。

4 EAU使用注意事項

從實踐經(jīng)驗來看,在使用EAU時,應(yīng)當(dāng)特別注意以下幾點:

①EAU所對應(yīng)的 SFR均只能在 Page1中尋址,而UART 0、UART 1、SPI、I2C 以及 FRAM 等模塊所對應(yīng)的SFR只能在Page0中尋址。因此,當(dāng)EAU與上述模塊同時使用時,必須注意切換當(dāng)前的SFR尋址頁面,即對DEVMEMCFG的最低位(SFRPAGE)進(jìn)行設(shè)置。考慮到EAU是唯一只能在SFR Page1尋址的模塊,可以僅在使用到EAU的函數(shù)或子程序中切換到Page1,并在返回前重新切換到Page0。2.1和2.2小節(jié)中的示例即采用此種方式。但更重要的是,如果在程序中啟用了UART、SPI、I2C等模塊的中斷,并且這些中斷可能會在使用EAU的過程中發(fā)生,那么就要在中斷服務(wù)程序的首尾分別進(jìn)行SFR尋址頁面的切換,或者在使用EAU的過程中屏蔽中斷。

②盡管EAU中的加法器執(zhí)行的是無符號數(shù)的加法,但是AUCONFIG2中的AUOV32這一標(biāo)志位并非是32位加法器的“進(jìn)位”標(biāo)志位,而是32位有符號數(shù)加法的“溢出”標(biāo)志位。也就是說,AUOV32標(biāo)志位置1的條件是:參與32位加法的2個操作數(shù)最高位均為0,而所得結(jié)果的最高位為1;或者2個操作數(shù)最高位均為1,而結(jié)果的最高位為0。正是利用這一點,2.1小節(jié)的開平方算法中用0x80000000減去被開方數(shù),所得之差與試根的平方相加,從而利用AUOV32判斷被開方數(shù)與試根平方的相對大小。

③當(dāng)AUB0DIV被寫入時,EAU的除法器即被啟用。按照VRS51L3xxx數(shù)據(jù)手冊上的介紹,每執(zhí)行一次對AUB0DIV的寫入,就啟動一次除法運(yùn)算,并且每次除法運(yùn)算需用5個時鐘周期。然而,實踐表明,在除法器已被啟用的情況下,對AUA1、AUA0、AUB1或 AUB0DIV 中任一者執(zhí)行寫操作,都會立即影響除法器的輸出。正是由于這個原因,2.2小節(jié)的程序中,在寫入被除數(shù)和除數(shù)后不經(jīng)等待而直接讀取商,并且將余數(shù)暫存到tmp0和tmp1后再寫入AUA 0和AUA1。

④除法器啟用后,只有對AUB0執(zhí)行寫操作才能將其停用;否則,即使將EAU禁用后再啟用,或通過設(shè)置AUCONFIG2對其清零,EAU也會一直執(zhí)行除法,而不能作加法、乘法或移位。基于這一點,2.2小節(jié)中程序的結(jié)尾處對AUB0執(zhí)行了一次寫入。這是考慮到用EAU計算除法必然要寫AUB0DIV,而用EAU執(zhí)行加法、乘法或移位卻未必會用到AUB(2.1小節(jié)的程序中便沒有用到AUB),因此有必要在完成除法后進(jìn)行這樣的善后操作。

⑤除法器執(zhí)行的是有符號整數(shù)的除法,其結(jié)果(包括商和余數(shù))均為16位有符號數(shù)。如果商為負(fù)數(shù),除法器會將其向0取整,并得出相應(yīng)的余數(shù)。

結(jié) 語

VRS51 L3074的EAU具有16位數(shù)據(jù)寬度(對加法為32位)和僅1個時鐘周期的運(yùn)算時間,并且是一個獨立的外圍模塊。利用這一單元來執(zhí)行算術(shù)運(yùn)算,不僅可以大大縮短運(yùn)算時間,還能使51單片機(jī)固有的累加器瓶頸得到稍許緩解。

通過本文介紹的實例可以看到,EAU確實使得VRS51L3074具有比傳統(tǒng)51單片機(jī)更加強(qiáng)大的算術(shù)運(yùn)算能力。對單片機(jī)工程師來說,帶有EAU的VRS51L3074及其同系列產(chǎn)品,可以使他們憑借經(jīng)典的8051內(nèi)核及其開發(fā)環(huán)境來逼近DSP的運(yùn)算能力。

[1]趙振華,楊曉慶.基于VRS51L3074的三表數(shù)據(jù)采集系統(tǒng)[J].計算機(jī)與數(shù)字工程,2008(26),8:62-65,161.

猜你喜歡
符號單片機(jī)
學(xué)符號,比多少
幼兒園(2021年6期)2021-07-28 07:42:14
基于單片機(jī)的SPWM控制逆變器的設(shè)計與實現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
“+”“-”符號的由來
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機(jī)之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
變符號
基于單片機(jī)的平衡控制系統(tǒng)設(shè)計
電子制作(2017年19期)2017-02-02 07:08:27
倍圖的全符號點控制數(shù)
圖的有效符號邊控制數(shù)
主站蜘蛛池模板: 国产无码高清视频不卡| 国产成人三级| 国产主播福利在线观看| 中文字幕亚洲专区第19页| 欧美亚洲日韩中文| 日韩国产综合精选| 亚洲国产精品无码AV| 91破解版在线亚洲| 欧美成人精品高清在线下载| 久久久久国产精品嫩草影院| 亚洲黄色激情网站| 无码内射在线| 国产欧美日韩综合在线第一| 欧美精品成人一区二区在线观看| 伊人久综合| 国产人妖视频一区在线观看| 欧美日韩在线观看一区二区三区| 国产亚洲精| 久操线在视频在线观看| 精品一区二区三区中文字幕| 国内精品小视频在线| 免费毛片a| 精品成人一区二区三区电影| 中国国产高清免费AV片| 亚洲人成网18禁| 亚洲无卡视频| 经典三级久久| 日韩激情成人| 天堂在线www网亚洲| 久久精品国产精品青草app| 色爽网免费视频| 国产成人欧美| 亚洲综合在线最大成人| 国产91麻豆视频| 成人夜夜嗨| 亚洲无线国产观看| av午夜福利一片免费看| 久久a级片| 欧美亚洲日韩不卡在线在线观看| 欧美一区二区三区欧美日韩亚洲| 国产精品女主播| 国产精品美女免费视频大全| 日韩A∨精品日韩精品无码| 欧美综合成人| 日韩精品视频久久| 99久久精品无码专区免费| 亚洲无线一二三四区男男| 久久久91人妻无码精品蜜桃HD| 99er精品视频| 成人综合久久综合| 国产va视频| 就去色综合| 欧美国产日韩一区二区三区精品影视| 欧美国产综合色视频| 美女视频黄又黄又免费高清| 日韩小视频在线播放| 亚洲精品另类| 国产地址二永久伊甸园| 国产幂在线无码精品| 久久久久久国产精品mv| 在线观看欧美国产| 中国一级特黄大片在线观看| 四虎免费视频网站| 久久成人国产精品免费软件| 日韩激情成人| 强奷白丝美女在线观看| 国产区人妖精品人妖精品视频| 亚洲不卡影院| 一级爆乳无码av| 国产成人精品午夜视频'| 先锋资源久久| 国产精品爆乳99久久| 国产91熟女高潮一区二区| 亚洲日韩精品欧美中文字幕| 精品无码人妻一区二区| 婷婷丁香在线观看| 欧美不卡二区| 国产日本一区二区三区| 999在线免费视频| 国产精品视频猛进猛出| 九九九久久国产精品| 无码一区18禁|