《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 一種用于導航芯片設計的高精度運算處理器
一種用于導航芯片設計的高精度運算處理器
來源:電子技術應用2012年第9期
李 慧,閆宏偉,李金城
北京交通大學 電子信息工程學院,北京100044
摘要: 設計了一種專用于衛星導航芯片設計的高精度運算處理器,可完成衛星導航定位計算涉及的所有運算。該處理器用5個字節(40 bit)定義自己的數據格式,并針對這種數據格式實現了加、減、乘、除和階乘等基礎運算。利用這些基礎運算和適當的數據調度實現了導航定位計算所涉及的各種函數運算,精度達到了10-7。通過FPGA驗證,該處理器具有運算速度快和計算準確的特點,同時具有很強的擴展能力。
中圖分類號: TP332; TN492
文獻標識碼: 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

    衛星導航系統作為先進的測量手段和新的生產力,已經廣泛用于國防建設和社會發展的各個領域[1]。作為比較成熟的衛星導航系統,全球定位系統(GPS)在人們的日常生活中發揮著重要的作用[2]。我國的北斗衛星導航系統也將在未來的10年中逐步實現全球覆蓋[3]。因此,設計具有自主知識產權的衛星導航芯片成為應對不斷發展壯大的衛星導航市場的當務之急。

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

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

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

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

 


    以sin(x)計算為例,要想用基礎運算來實現sin(x),則需要將sin(x)進行泰勒展開
    
    由于所有三角函數和反三角函數都可以用泰勒級數展開的形式或者相互之間的算術關系來實現,而開方也可以用快速收斂的簡單迭代公式y=(y2+x)/2x來實現,所以利用基本運算組合即可實現所有所需函數的運算。當然,在硬件支持的范圍內,通過算法調度,用戶也可以采用更好的算法實現函數計算。
    本文設計了一個專用于導航基帶芯片設計的運算處理器,不同于ARM等通用微處理器,這種運算處理器采用自己的數據格式,并完成了基于這種數據格式的基礎運算以及多種數學函數的計算。FPGA驗證表明,處理器計算迅速準確,精度符合導航定位計算的要求。由于它是專門針對導航定位計算優化的處理器,因而更節省硬件資源,可大大降低功耗和成本,在低功耗導航芯片設計中具有很強的實用價值。
參考文獻
[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,Finland,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.

此內容為AET網站原創,未經授權禁止轉載。
欧美激情办公室aⅴ_国产欧美综合一区二区三区_欧美午夜精品久久久久免费视_福利视频欧美一区二区三区

          久久精品国产精品亚洲| 欧美精品激情在线| 狠狠综合久久av一区二区老牛| 欧美日韩亚洲在线| 欧美粗暴jizz性欧美20| 美女主播一区| 美女精品在线观看| 久久午夜影视| 久久婷婷人人澡人人喊人人爽| 久久国产乱子精品免费女| 欧美一级播放| 欧美怡红院视频| 亚洲欧美在线一区| 亚洲欧美乱综合| 亚洲欧美日韩精品| 亚洲欧美日韩天堂一区二区| 亚洲一区视频在线| 亚洲欧美韩国| 欧美在线视频a| 久久久福利视频| 久久人91精品久久久久久不卡| 久久精品一区二区| 久久婷婷影院| 欧美激情综合在线| 欧美日韩精品一区二区在线播放| 欧美日韩一区二区在线播放| 欧美午夜电影在线| 国产精品亚洲视频| 国产嫩草影院久久久久 | 欧美福利视频在线| 欧美激情久久久久| 欧美视频在线观看 亚洲欧| 国产精品h在线观看| 国产精品亚洲一区| 一区二区在线观看视频| 91久久久久久久久久久久久| 99香蕉国产精品偷在线观看| 亚洲欧美日韩一区二区在线 | 久久免费观看视频| 欧美**人妖| 欧美日韩黄色大片| 国产精品视频你懂的| 国产日韩欧美中文在线播放| 在线观看中文字幕亚洲| 一本色道久久99精品综合| 亚洲欧美另类中文字幕| 巨乳诱惑日韩免费av| 欧美日韩亚洲精品内裤| 国产视频一区二区三区在线观看| 亚洲国产成人精品久久| 亚洲视屏在线播放| 久久蜜臀精品av| 欧美性猛交视频| 黄色成人免费网站| av不卡在线看| 久久久www成人免费无遮挡大片| 欧美国产免费| 国产欧美日韩亚洲一区二区三区| 亚洲国产高清视频| 亚洲视频一二三| 久久综合激情| 国产精品久久久久久久9999| 悠悠资源网久久精品| 一本色道久久综合狠狠躁篇怎么玩| 欧美一区二区三区日韩| 欧美极品在线视频| 国产一区二区三区日韩| av成人免费| 另类图片综合电影| 国产精品天天看| 亚洲美女在线观看| 久久国产欧美精品| 欧美网站在线观看| 亚洲国产一区二区三区高清| 欧美一区二区三区免费观看视频| 欧美日韩精品国产| 在线日韩欧美视频| 性色av一区二区怡红| 欧美日韩免费在线视频| 在线观看一区二区视频| 欧美影片第一页| 国产精品成人国产乱一区| 亚洲国内精品在线| 久久精品在线| 国产精品亚洲第一区在线暖暖韩国| 亚洲人午夜精品| 久热精品视频| 国产午夜亚洲精品不卡| 亚洲一区中文字幕在线观看| 欧美激情一区二区三区在线视频观看| 国产主播一区二区三区| 亚洲欧美日韩综合一区| 欧美日韩一区二区三区免费| 亚洲福利精品| 久久视频这里只有精品| 国产亚洲成av人片在线观看桃 | 国产视频欧美视频| 亚洲一区二区三区免费观看| 欧美精品一区二区三区很污很色的| 经典三级久久| 久久久精品国产99久久精品芒果| 国产免费成人| 亚洲男同1069视频| 欧美视频一区二区| 99国产精品国产精品久久| 欧美α欧美αv大片| 精品96久久久久久中文字幕无| 欧美专区第一页| 国产日韩欧美精品一区| 亚洲永久网站| 国产精品久久久久9999吃药| 一区二区欧美在线| 欧美日韩国产在线观看| 亚洲精品裸体| 欧美精品日韩综合在线| 亚洲欧洲另类国产综合| 麻豆精品传媒视频| 一色屋精品视频免费看| 久久尤物视频| 亚洲大胆在线| 久久综合伊人77777尤物| 影音先锋亚洲一区| 免费成人高清| 亚洲精品男同| 欧美日韩亚洲免费| 亚洲色图自拍| 国产精品每日更新| 西西人体一区二区| 国产偷国产偷精品高清尤物| 久久精品30| 在线国产精品播放| 欧美激情综合色| 一本一道久久综合狠狠老精东影业 | 激情欧美一区| 另类激情亚洲| 日韩视频一区二区在线观看 | 韩国视频理论视频久久| 久久久噜噜噜久久久| 在线不卡a资源高清| 欧美成在线视频| 亚洲色图在线视频| 国产免费观看久久| 久久精视频免费在线久久完整在线看 | 欧美成人精品福利| 日韩一级免费| 国产伦精品一区二区三区视频黑人| 久久国产手机看片| 亚洲国产精品久久久久秋霞不卡| 欧美成年人视频网站| 一本一本久久| 国产欧美日韩专区发布| 久久久久久久久综合| 亚洲精品久久久久久久久| 欧美午夜电影在线| 久久精品99无色码中文字幕| 亚洲第一精品夜夜躁人人爽 | 国产日韩欧美综合精品| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲精品视频一区| 国产精品一二三四| 久久一区二区视频| 99精品视频网| 国产婷婷97碰碰久久人人蜜臀| 欧美+亚洲+精品+三区| 亚洲午夜久久久久久久久电影院| 国产亚洲综合性久久久影院| 欧美国产大片| 欧美一区二区福利在线| 亚洲高清影视| 国产精品夜夜夜| 欧美大片免费| 午夜伦理片一区| 亚洲精品乱码久久久久久黑人| 国产精品一区二区你懂的| 欧美freesex8一10精品| 亚洲欧美一区二区三区极速播放| 亚洲国产精彩中文乱码av在线播放 | 欧美专区亚洲专区| 亚洲欧洲美洲综合色网| 国产毛片久久| 欧美日韩国产精品专区| 久久精品一区四区| 亚洲一区二区视频在线观看| 亚洲国产高清高潮精品美女| 国产欧美视频一区二区三区| 欧美日本在线| 另类综合日韩欧美亚洲| 午夜精品视频网站| 亚洲精品视频在线观看网站 | 国产亚洲精品bv在线观看| 欧美人成免费网站| 久久久综合精品| 亚洲尤物在线| 99精品国产热久久91蜜凸| 尤物视频一区二区| 国产精品久久久久久久久免费樱桃 | 久久一区欧美| 亚洲亚洲精品在线观看 | 国产亚洲一区二区三区在线播放| 欧美精品一区二区三区很污很色的 |