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ù)
主站蜘蛛池模板: 四虎在线高清无码| 国产本道久久一区二区三区| 日韩在线欧美在线| 亚洲成年网站在线观看| 国产欧美日韩va| 国产肉感大码AV无码| 好紧太爽了视频免费无码| 国产精品露脸视频| 日本一本在线视频| 国产成人精品男人的天堂下载| 久久网欧美| 国产成人1024精品| 不卡国产视频第一页| 国产三级韩国三级理| 午夜精品久久久久久久99热下载| 九九免费观看全部免费视频| 在线观看国产一区二区三区99| 999国内精品视频免费| 一级毛片免费不卡在线| 亚洲黄网在线| 亚洲无码高清一区二区| 欧美精品二区| 精品国产aⅴ一区二区三区| 国产区成人精品视频| 亚洲综合色区在线播放2019| 一级毛片中文字幕| www欧美在线观看| 四虎精品国产AV二区| 久久人与动人物A级毛片| 亚洲天堂久久新| 无遮挡一级毛片呦女视频| 亚洲成人在线网| 538精品在线观看| 香蕉网久久| 国产欧美综合在线观看第七页| 中文国产成人精品久久一| 亚洲αv毛片| 青草精品视频| 成年免费在线观看| 黄色片中文字幕| 大学生久久香蕉国产线观看| 亚洲人成色在线观看| 日韩av无码精品专区| 日韩小视频在线播放| 免费无遮挡AV| 午夜毛片免费看| 伊人久久婷婷| 中文字幕乱码二三区免费| 97亚洲色综久久精品| 高潮毛片无遮挡高清视频播放| 欧美日韩v| 亚洲美女操| 四虎永久在线精品国产免费| 国产在线精品香蕉麻豆| 好吊色国产欧美日韩免费观看| 干中文字幕| 国产福利在线免费| 伊人久久婷婷五月综合97色| 日韩精品免费一线在线观看| 看你懂的巨臀中文字幕一区二区| 亚洲国产成人无码AV在线影院L| 亚洲Aⅴ无码专区在线观看q| 日韩午夜伦| 婷婷亚洲天堂| 五月天在线网站| 免费无码AV片在线观看中文| 国产精品一线天| 久久精品丝袜| 亚洲成人福利网站| 久久鸭综合久久国产| 大乳丰满人妻中文字幕日本| 无码啪啪精品天堂浪潮av| 99久久人妻精品免费二区| 亚洲激情99| 成人国产免费| 亚洲av成人无码网站在线观看| 国产无码网站在线观看| 免费黄色国产视频| 国产黄色爱视频| 亚洲午夜综合网| 伊人狠狠丁香婷婷综合色| 91精品国产情侣高潮露脸|