《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 一種用于導(dǎo)航芯片設(shè)計(jì)的高精度運(yùn)算處理器
一種用于導(dǎo)航芯片設(shè)計(jì)的高精度運(yùn)算處理器
來源:電子技術(shù)應(yīng)用2012年第9期
李 慧,閆宏偉,李金城
北京交通大學(xué) 電子信息工程學(xué)院,北京100044
摘要: 設(shè)計(jì)了一種專用于衛(wèi)星導(dǎo)航芯片設(shè)計(jì)的高精度運(yùn)算處理器,可完成衛(wèi)星導(dǎo)航定位計(jì)算涉及的所有運(yùn)算。該處理器用5個(gè)字節(jié)(40 bit)定義自己的數(shù)據(jù)格式,并針對這種數(shù)據(jù)格式實(shí)現(xiàn)了加、減、乘、除和階乘等基礎(chǔ)運(yùn)算。利用這些基礎(chǔ)運(yùn)算和適當(dāng)?shù)臄?shù)據(jù)調(diào)度實(shí)現(xiàn)了導(dǎo)航定位計(jì)算所涉及的各種函數(shù)運(yùn)算,精度達(dá)到了10-7。通過FPGA驗(yàn)證,該處理器具有運(yùn)算速度快和計(jì)算準(zhǔn)確的特點(diǎn),同時(shí)具有很強(qiáng)的擴(kuò)展能力。
中圖分類號: TP332; TN492
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2012)09-0035-04
A high-precision mathematic processor for navigation ASIC design
Li Hui,Yan Hongwei,Li Jincheng
School of Electronic and Information Engineering, Beijing Jiaotong University,Beijing 100044,China
Abstract: This paper proposed a high-precision mathematic processor for satellite navigation ASIC design, which processed almost all of the mathematic calculations involved in satellite navigation and positioning applications.Based on its own 5 B data format,this processor realized the addition,subtraction, multiplication,division,factorial and other basic mathematic operations,furthermore,by making full use of these basic operations and proper data scheduling,it performed various kinds of mathematic functions with 10-7 precision that satellite navigation and positioning applications required.FPGA test proved that the suggested processor not only calculated fast and accurately,but also had strong expansion ability.
Key words : satellite navigation;processor; basic operation;function operation

    衛(wèi)星導(dǎo)航系統(tǒng)作為先進(jìn)的測量手段和新的生產(chǎn)力,已經(jīng)廣泛用于國防建設(shè)和社會發(fā)展的各個(gè)領(lǐng)域[1]。作為比較成熟的衛(wèi)星導(dǎo)航系統(tǒng),全球定位系統(tǒng)(GPS)在人們的日常生活中發(fā)揮著重要的作用[2]。我國的北斗衛(wèi)星導(dǎo)航系統(tǒng)也將在未來的10年中逐步實(shí)現(xiàn)全球覆蓋[3]。因此,設(shè)計(jì)具有自主知識產(chǎn)權(quán)的衛(wèi)星導(dǎo)航芯片成為應(yīng)對不斷發(fā)展壯大的衛(wèi)星導(dǎo)航市場的當(dāng)務(wù)之急。

    衛(wèi)星導(dǎo)航接收機(jī)可分成RF射頻前端模塊和數(shù)字基帶信號處理模塊兩部分[4]。RF射頻前端模塊把接收到的衛(wèi)星信號轉(zhuǎn)變成數(shù)字中頻信號,然后交給數(shù)字基帶模塊進(jìn)行處理;數(shù)字基帶模塊對數(shù)字中頻信號進(jìn)行捕獲和跟蹤,并解調(diào)出導(dǎo)航電文,然后進(jìn)行導(dǎo)航定位計(jì)算[5-6]。
    以現(xiàn)有的GPS接收機(jī)為例,導(dǎo)航定位運(yùn)算一般都是通過ARM處理器[7]或通用DSP芯片[8]進(jìn)行。雖然這些通用處理器功能完善,但是資源龐大,結(jié)構(gòu)復(fù)雜,對于導(dǎo)航定位運(yùn)算來說會占用很多冗余資源,不僅造成資源浪費(fèi),而且功耗和成本也都大大提高。
    本文針對衛(wèi)星導(dǎo)航定位計(jì)算,設(shè)計(jì)了一種專用高精度運(yùn)算處理器。該處理器基于自己的數(shù)據(jù)格式,不僅能夠?qū)崿F(xiàn)加減乘除等基礎(chǔ)運(yùn)算,而且通過數(shù)據(jù)調(diào)度和運(yùn)算管理還能夠計(jì)算導(dǎo)航計(jì)算中用到的各種函數(shù)(如sin(x)、cos(x)、arctan(x)等)。FPGA驗(yàn)證表明,該專用處理器運(yùn)算速度快且精度高,同時(shí)具有很強(qiáng)的編程擴(kuò)展能力。
1 數(shù)據(jù)格式和基礎(chǔ)運(yùn)算
    本論文定義的數(shù)據(jù)格式把一個(gè)數(shù)通過二進(jìn)制有效值和2的指數(shù)這兩個(gè)部分的乘積表示,用40 bit表示一個(gè)數(shù)據(jù),如圖1所示。低33 bit表示二進(jìn)制有效值,其中第32位是二進(jìn)制有效值的符號位(0表示正號,1表示負(fù)號),第31~0位表示二進(jìn)制有效值的絕對值;第39~33位表示二進(jìn)制指數(shù),其中第39位是指數(shù)的符號位(0表示正號,1表示負(fù)號),其余位為指數(shù)絕對值。例如,40’h07_0000_0009表示的十進(jìn)制實(shí)數(shù)為-9×23,如圖2所示。這種數(shù)據(jù)格式的表示方法與浮點(diǎn)數(shù)的表示方法類似,不僅能用較少的位數(shù)表示更大取值范圍的實(shí)數(shù),而且計(jì)算精度更高。

    在這種數(shù)據(jù)格式的基礎(chǔ)上運(yùn)算處理器能實(shí)現(xiàn)的基礎(chǔ)運(yùn)算包括加法、減法、乘法、除法、取模、取余、階乘(n?。┖投坞A乘(n?。。?,這些運(yùn)算都是導(dǎo)航計(jì)算所必須的基礎(chǔ)運(yùn)算。下面以加法、乘法、取模和階乘為例,分別說明處理器基礎(chǔ)運(yùn)算的實(shí)現(xiàn)方式及精度保證措施。
    (1)加法運(yùn)算:首先判斷參與運(yùn)算的兩個(gè)數(shù)指數(shù)是否相同,如果相同,則將兩數(shù)的有效值直接相加;否則將兩數(shù)的有效值進(jìn)行移位使兩數(shù)指數(shù)相同,然后再將有效值相加。
    對有效值進(jìn)行移位的過程是,首先判斷指數(shù)較大數(shù)據(jù)(例如1大于-3)的有效值絕對值部分最高位是否為1,如果不為1,則將有效值左移1位,相應(yīng)的指數(shù)減1,依此法重復(fù),直到兩數(shù)的指數(shù)相同為止;如果為1,則將指數(shù)較小數(shù)據(jù)的有效值絕對值部分無條件地右移1位,同時(shí)其指數(shù)加1,直到兩數(shù)的指數(shù)相同為止。
    指數(shù)相同時(shí),有效值相加的過程是,首先判斷有效值符號位是否相同,如果相同則有效值絕對值部分直接相加,符號位保持不變;否則判斷有效值絕對值的大小,然后令大數(shù)減小數(shù),相減結(jié)果的符號位與絕對值大的數(shù)據(jù)保持一致。減法的運(yùn)算過程與加法類似。
    (2)乘法運(yùn)算:運(yùn)算原則是指數(shù)相加,有效值相乘。指數(shù)相加過程是,首先判斷指數(shù)符號位是否相同,如果相同,則將指數(shù)絕對值直接相加,符號位保持不變;如果不同,則判斷指數(shù)絕對值部分大小,然后大數(shù)減小數(shù),符號位與指數(shù)絕對值較大數(shù)的指數(shù)符號位保持一致。有效值相乘的過程是,首先判斷兩數(shù)有效值符號位是否相同,如果相同則令計(jì)算結(jié)果的有效值符號位為0,否則為1,然后再將有效值絕對值部分相乘。除法的運(yùn)算原則與乘法類似。
    (3)取模運(yùn)算:首先將兩數(shù)進(jìn)行除法運(yùn)算,令運(yùn)算結(jié)果的有效值符號位與被除數(shù)的有效值符號位相同。由于取模運(yùn)算即是獲取除法運(yùn)算結(jié)果的整數(shù)部分,所以判斷除法運(yùn)算結(jié)果的指數(shù)符號位是否為0,如果為0,則表明除法運(yùn)算的結(jié)果本身就是整數(shù),即為所求取模運(yùn)算的結(jié)果;如果為1,表明除法運(yùn)算的結(jié)果是個(gè)小數(shù),需要將除法運(yùn)算結(jié)果有效值絕對值右移1位,同時(shí)指數(shù)加1,重復(fù)此法,直到指數(shù)為0,得到取模運(yùn)算的結(jié)果。取余運(yùn)算思想與取模類似。
    (4)階乘運(yùn)算:采用直接查表法。由于在導(dǎo)航定位運(yùn)算中會用到階乘運(yùn)算,一般計(jì)算到20的階乘就能達(dá)到足夠的精度,所以用case語句實(shí)現(xiàn)20以內(nèi)正整數(shù)的階乘和二次階乘。這種用邏輯電路產(chǎn)生數(shù)據(jù)的方法,不僅計(jì)算速度快,而且避免了存儲器的使用。
    以上所有基礎(chǔ)運(yùn)算的實(shí)現(xiàn)方式和數(shù)據(jù)的表示形式都是以誤差最小、精度最高為目標(biāo),如果想要獲得更高的精度則需適當(dāng)?shù)財(cái)U(kuò)展數(shù)據(jù)的表示位數(shù)。
2 處理器架構(gòu)
    本運(yùn)算處理器不僅能完成上述基礎(chǔ)運(yùn)算,通過數(shù)據(jù)的操作指令和基礎(chǔ)運(yùn)算指令的配合,還可以完成各種導(dǎo)航計(jì)算所涉及函數(shù)的運(yùn)算,處理器架構(gòu)如圖3所示。

    處理器主要由main模塊、基本指令集模塊、4個(gè)40 bit寄存器(A、B、C和D)、一個(gè)32×40 bit RAM和一個(gè)1 300×8 bit RAM構(gòu)成。4個(gè)40 bit寄存器中的A、B和C寄存器用來存儲操作數(shù)據(jù),D寄存器存儲運(yùn)算結(jié)果數(shù)據(jù);32×40 bit RAM是數(shù)據(jù)存儲器,用來存儲運(yùn)算過程中會反復(fù)用到的中間值數(shù)據(jù);1 300×8 bit RAM是函數(shù)子程序存儲器,用于存儲子函數(shù)程序。函數(shù)子程序存儲器中存放導(dǎo)航定位運(yùn)算中需要用到的所有函數(shù)的子程序。函數(shù)子程序通過控制基本指令集模塊反復(fù)進(jìn)行基礎(chǔ)運(yùn)算和數(shù)據(jù)調(diào)度,實(shí)現(xiàn)各種函數(shù)的計(jì)算。
    基本指令集模塊能夠完成的基本指令包括:(1)置數(shù)指令,對指定寄存器或數(shù)據(jù)存儲器置數(shù);(2)數(shù)據(jù)傳送指令(寄存器到數(shù)據(jù)存儲器),將指定寄存器中的數(shù)據(jù)傳遞給指定數(shù)據(jù)存儲器;(3)數(shù)據(jù)傳送指令(數(shù)據(jù)存儲器到寄存器),將指定數(shù)據(jù)存儲器中的數(shù)據(jù)傳遞給指定寄存器;(4)數(shù)據(jù)互換指令,實(shí)現(xiàn)兩個(gè)指定寄存器間的數(shù)據(jù)互換;(5)指針跳轉(zhuǎn)指令,使程序指針跳轉(zhuǎn)到子程序存儲器指定位置;(6)定時(shí)指令,完成指定時(shí)間的延時(shí);(7)比較指令,實(shí)現(xiàn)兩數(shù)比較大小,用于收斂判斷等操作;(8)運(yùn)算結(jié)束指令,使程序指針停止增加,可通過外部指令喚醒;(9)基礎(chǔ)運(yùn)算指令(集),包括加法指令、減法指令、乘法指令、除法指令、取模指令、取余指令、階乘指令和二次階乘指令。為了便于硬件測試,還專門增加了將運(yùn)算結(jié)果通過USB上傳到PC的指令,該指令只用于開發(fā)階段,把硬件計(jì)算結(jié)果返回到PC以便分析。
    函數(shù)子程序存儲器中存儲的函數(shù)子程序指令包括:sin(x)指令、cos(x)指令、arcsin(x)指令、arccos(x)指令、tan(x)指令、cot(x)指令、arctan(x)指令、arccot(x)指令和開方指令等。這些指令都接受一個(gè)計(jì)算精度參數(shù),當(dāng)達(dá)到精度時(shí)即停止迭代,精度最高為10-7。
    運(yùn)算處理器接收的宏指令可以包含上述所有基本指令和函數(shù)指令,main模塊的作用就是接收宏指令,判斷接收到的宏指令是基本指令還是函數(shù)指令。如果是基本指令,則轉(zhuǎn)發(fā)該指令到基本指令集模塊,調(diào)用基本指令集模塊完成操作,并將運(yùn)算結(jié)果存儲在寄存器D中,指令執(zhí)行完畢。如果是函數(shù)指令,則給出相應(yīng)函數(shù)子程序在函數(shù)子程序存儲器中的起始地址,指針跳轉(zhuǎn)到起始地址,按照函數(shù)子程序里的基本指令順序執(zhí)行。執(zhí)行過程中會反復(fù)調(diào)用基本指令集模塊,以及不斷對寄存器和數(shù)據(jù)存儲器中數(shù)據(jù)進(jìn)行讀取、存儲或者交換等操作,函數(shù)子程序執(zhí)行完,將得到的運(yùn)算結(jié)果存儲在寄存器D中,指令執(zhí)行完畢。
    下面以置數(shù)指令為例介紹指令傳送格式。首先發(fā)送指令編號字節(jié),每個(gè)指令的編號都由一個(gè)字節(jié)表示,置數(shù)指令的編號為8’h01;接著發(fā)送指定要賦值的寄存器或數(shù)據(jù)存儲器的編號字節(jié),同樣由一個(gè)字節(jié)表示,8’h00~8’h23依次代表數(shù)據(jù)存儲器0~31和寄存器A,B,C,D;最后發(fā)送數(shù)據(jù)字節(jié),數(shù)據(jù)字節(jié)表示將要給寄存器或者數(shù)據(jù)存儲器賦的值,由5個(gè)字節(jié)(40 bit)表示,如圖4所示。例如發(fā)送指令字節(jié)為56’h01_21_00_00_00_00_16,其含義則是向寄存器B置十進(jìn)制數(shù)22。

    函數(shù)子程序存儲器的大小是由導(dǎo)航定位運(yùn)算需要實(shí)現(xiàn)的函數(shù)個(gè)數(shù)和函數(shù)子程序的大小決定的。如果需要增加函數(shù)個(gè)數(shù),可以對函數(shù)子程序存儲器的容量進(jìn)行相應(yīng)的擴(kuò)展。
3 FPGA驗(yàn)證
    運(yùn)算處理器性能的好壞主要由運(yùn)算速度、精度、功耗、成本等幾方面決定。前面已經(jīng)提到,本文設(shè)計(jì)的運(yùn)算處理器是專用于導(dǎo)航定位計(jì)算的,沒有其他冗余電路,所以占用硬件資源少,功耗低,其硬件實(shí)現(xiàn)也使得處理器速度很快。下面將主要針對處理器的精度進(jìn)行測試。
    將運(yùn)算處理器的Verilog HDL代碼編譯后,下裝到FPGA開發(fā)板里,然后通過USB向運(yùn)算處理器發(fā)送宏指令,運(yùn)算處理器接到指令進(jìn)行處理,指令執(zhí)行完畢后將得到的結(jié)果通過USB上傳給PC,即可判斷計(jì)算結(jié)果的正確性和計(jì)算精度。

 


    以sin(x)計(jì)算為例,要想用基礎(chǔ)運(yùn)算來實(shí)現(xiàn)sin(x),則需要將sin(x)進(jìn)行泰勒展開
    
    由于所有三角函數(shù)和反三角函數(shù)都可以用泰勒級數(shù)展開的形式或者相互之間的算術(shù)關(guān)系來實(shí)現(xiàn),而開方也可以用快速收斂的簡單迭代公式y(tǒng)=(y2+x)/2x來實(shí)現(xiàn),所以利用基本運(yùn)算組合即可實(shí)現(xiàn)所有所需函數(shù)的運(yùn)算。當(dāng)然,在硬件支持的范圍內(nèi),通過算法調(diào)度,用戶也可以采用更好的算法實(shí)現(xiàn)函數(shù)計(jì)算。
    本文設(shè)計(jì)了一個(gè)專用于導(dǎo)航基帶芯片設(shè)計(jì)的運(yùn)算處理器,不同于ARM等通用微處理器,這種運(yùn)算處理器采用自己的數(shù)據(jù)格式,并完成了基于這種數(shù)據(jù)格式的基礎(chǔ)運(yùn)算以及多種數(shù)學(xué)函數(shù)的計(jì)算。FPGA驗(yàn)證表明,處理器計(jì)算迅速準(zhǔn)確,精度符合導(dǎo)航定位計(jì)算的要求。由于它是專門針對導(dǎo)航定位計(jì)算優(yōu)化的處理器,因而更節(jié)省硬件資源,可大大降低功耗和成本,在低功耗導(dǎo)航芯片設(shè)計(jì)中具有很強(qiáng)的實(shí)用價(jià)值。
參考文獻(xiàn)
[1] HEGARTY C J,CHATRE E.Evolution of the global navigation satellite system(GNSS)[J].Proc.IEEE,2008,96(12):1902-1917.
[2] RAASAKKA J,HURSKAINEN H,NURMI J.GNSS baseband processing in a multi-core platform[C].International Conference on Localization and GNSS.Tampere,F(xiàn)inland,2011:42-46.
[3] CHEN J C,ZHANG D J,GAO X H.Research of beidou system in electric power system time service[C].China International Conference on Electricity Distribution. Guangzhou,china,2008:1-5.
[4] WU P,HE C,ZONG Z L.A novel correlation architecture of acquisition for GNSS satellite navigation system receiver based on CORDIC algorithm[C].International Conference on Computational Problem-Solving. Chengdu,China,2010:115-121.
[5] ZHAO L,GAO S H,LI P F,et al.The design and validation of RF front-end platform for GPS receiver[C].IEEE International Conference on Information and Automation. Harbin,China,2010:519-522.
[6] ZHUANG W H,TRANQUILLA J.Digital baseband processor for the GPS receiver modeling and simulations[J].IEEE Transactions on Aerospace and Electronic Systems,1993,29(4):1343-1349.
[7] WANG B,DONG J X.The system of GPS navigation based on ARM processor[C].International Forum on Information Technology and Applications.Taiyuan,China,2010:308-312.
[8] ZENG Q X,WANG Q,PAN S G,et al.A GPS L1 software receiver implementation on a DSP platform[C].International Conference on Intelligent Networks and Intelligent System,Nanjing,China,2008:612-615.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 国产欧美精品一区二区三区| 好紧的小嫩木耳白浆| 亚洲影视一区二区| 男女啪啪免费体验区| 四虎影在永久地址在线观看 | 国色天香精品一卡2卡3卡| 三级精品在线观看| 无套内谢孕妇毛片免费看看| 久久精品九九亚洲精品| 欧美fxxx性| 亚洲国产日韩在线| 波多野结衣导航| 人人爽天天碰天天躁夜夜躁| 精品午夜福利1000在线观看| 四虎在线最新永久免费| 茄子视频国产在线观看| 国产大片b站免费观看直播| 国产私拍福利精品视频网站| 国产精品久久久久免费a∨| 337p人体大胆扒开下部| 国模无码视频一区| 99在线精品视频| 天天干天天操天天玩| www国产亚洲精品久久久日本| 强奷乱码中文字幕| 三级伦理在线播放| 成人区人妻精品一区二区不卡视频| 中文字幕第一页亚洲| 无码少妇精品一区二区免费动态| 久久久婷婷五月亚洲97号色| 日本高清免费中文字幕不卡| 久久精品国产亚洲av电影网 | 吃奶呻吟打开双腿做受在线视频 | 男生gay私视频洗澡| 免费福利视频导航| 精品久久洲久久久久护士免费| 双手扶在浴缸边迎合着h| 美国十次啦导航网| 双性h啪啪樱桃动漫直接观看| 美国式禁忌矿桥矿17集| 午夜性色一区二区三区不卡视频|