<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種CORDIC協(xié)處理器核的設計與實(shí)現

一種CORDIC協(xié)處理器核的設計與實(shí)現

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

隨著(zhù)航天技術(shù)的發(fā)展,航天任務(wù)對于導航計算機的性能要求越來(lái)越高。導航計算機除了要對傳感器數據進(jìn)行采集,與控制系統進(jìn)行實(shí)時(shí)通訊,還要能進(jìn)行實(shí)時(shí)的計算。盡管目前航天任務(wù)中使用的處理器芯片性能越來(lái)越強,但大多數CPU并沒(méi)有處理常用超越函數(sin,cos,arctan,exp,sqrt,ln等)的專(zhuān)用指令。而通過(guò)純軟件循環(huán)迭代求解超越函數往往需要CPU數十甚至上百個(gè)周期,這極大降低了導航計算機的實(shí)時(shí)性。本文提出了一種高實(shí)時(shí)性、低復雜度的核,提供了高吞吐率的超越函數運算能力,從而提高了導航計算機的并行運算能力。此使用verilog編寫(xiě),由于其資源占用率低,可以非常容易地被集成入各種航天用中。

本文引用地址:http://dyxdggzs.com/article/201609/303786.htm

1 算法

1.1 旋轉

CORDIC算法最早由Volder提出,用于求解一般三角函數,之后由Walther改進(jìn),使得CORDIC可以用于計算雙曲函數和進(jìn)行乘除運算。由于幾乎所有的通用CPU都具有硬件乘法除法功能,因此對數坐標模式所提供的乘除功能很少被實(shí)際使用,故CORDIC算法的主要應用是三角函數和雙曲函數的運算。CORDIC的基本思想是通過(guò)一系列預定大小角度的旋轉,使得輸入向量被旋轉到所期望的位置,從而求解出一系列函數。CORDIC的旋轉方程可以表示為

一種CORDIC協(xié)處理器核的設計與實(shí)現

其中m為1時(shí)CORIDC工作在圓坐標系下,m為-1時(shí)工作在雙曲坐標系下。dn為1時(shí)向量按順時(shí)針?lè )较蛐D,當dn為-1時(shí)按逆時(shí)針?lè )较蛐D。

雖然每一步迭代只需要進(jìn)行加減操作和固定位的移位操作,但由(1)可知,CORIDC每一次旋轉都會(huì )改變向量的模。所以為了得到正確的向量分量x和y,需要補償旋轉后的向量,而由于向量模的變化與旋轉的方向無(wú)關(guān),這可以通過(guò)一個(gè)常數乘法器實(shí)現。補償常數為:

一種CORDIC協(xié)處理器核的設計與實(shí)現

CORDIC每次旋轉的方向由工作模式?jīng)Q定。在旋轉模式下,CORDIC試圖讓向量與x軸之間的夾角z趨近于0。在向量模式下,CORDIC試圖讓向量的y分量趨近于0。故每次旋轉的方向由運行模式和向量的yz分量符號決定:

一種CORDIC協(xié)處理器核的設計與實(shí)現

綜上,各個(gè)模式下CORDIC的迭代結果以及可實(shí)現的函數如表1所示。

一種CORDIC協(xié)處理器核的設計與實(shí)現

1.2 收斂性

Cordic能輸出正確結果的前提是旋轉結束時(shí)向量能夠被旋轉到預期的位置(在誤差范圍內),即旋轉收斂??梢酝ㄟ^(guò)遞歸證明的是,對于圓坐標模式,對于任意n總有

一種CORDIC協(xié)處理器核的設計與實(shí)現

2 系統實(shí)現

為了保證能夠提供足夠的計算吞吐量并使的計算延遲可預測,本文使用流水線(xiàn)實(shí)現整個(gè)CORDIC核。協(xié)處理器的流水線(xiàn)結構如圖1所示。

一種CORDIC協(xié)處理器核的設計與實(shí)現

2.1 系統輸入

協(xié)處理器核從輸入FIF0獲得初始輸入數據,包括3個(gè)坐標分量以及1個(gè)控制命令字。輸入參數的格式為1位符號位,2位整數位,小數位的位數作為的參數可以在例化時(shí)調整。這樣的輸入格式使得此可以容易地被應用于使用定點(diǎn)運算的許多DSP處理器。對于浮點(diǎn)數運算,實(shí)際上CPU可以通過(guò)簡(jiǎn)單的移位縮放操作使得輸入范圍外的xyz分量落到協(xié)處理器可接受的范圍內,這是由于規格化浮點(diǎn)數的尾數本來(lái)就在區間[1,2)內。相對的,已有的很多CORDIC協(xié)處理器實(shí)現使用了浮點(diǎn)數進(jìn)行中間運算,然而這不僅顯著(zhù)地增加了資源的使用,而且使得每一個(gè)CORDIC旋轉需要通過(guò)多級流水線(xiàn)完成,增大了每個(gè)運算的延遲。

此外,為了降低CPU和協(xié)處理器之間交互次數,本IP核允許CPU在計算某些函數時(shí)不對所有的輸入寄存器進(jìn)行寫(xiě)入。對于輸入參數少于3個(gè)的函數,協(xié)處理器自動(dòng)生成其他分量的輸入。比如對于cos(x),CPU只需要對協(xié)處理器的a0寄存器和控制字寄存器寫(xiě)入即可觸發(fā)cos(x)的運算,CORDIC協(xié)處理器會(huì )自動(dòng)把x分量初始化成2.0,y分量初始化成0,z分量初始化成a0。對于有效位數較小的配置如18位,可以進(jìn)一步將控制命令字和a0放到同一個(gè)32位寄存器中,則對于單輸入函數,CPU只需向一個(gè)地址寫(xiě)入數據即可完成操作。18位數據精度時(shí)的輸入寄存器格式如圖2所示。

一種CORDIC協(xié)處理器核的設計與實(shí)現

2.2 預處理單元

如表1所示,CORDIC的運算結果并不直接對應所要求的函數,故需要對與輸入參數進(jìn)行處理。例如對于ln(a)和sqrt(a)運算,需要令x=a+1,y=a-1,對于cos(x),sin(x)等運算,需要生成相應的其他分量輸入。此外,由于雙曲坐標的性質(zhì),arctanh1并不存在,故雙曲坐標模式只能從i=1開(kāi)始迭代,而圓坐標系可以從i=0開(kāi)始迭代,這導致了兩種模式的旋轉過(guò)程不同。為了能用同一個(gè)流水線(xiàn)實(shí)現2種模式的操作,本文令所有模式都從i=1開(kāi)始迭代。但這樣會(huì )導致在圓坐標模式下的收斂域過(guò)小,只有。解決的辦法是在預處理單元加入象限折疊,即通過(guò)三角函數關(guān)系,將[-π,π]上的向量折疊到[0,π/4]上,再在后處理單元對結果進(jìn)行修正。

2.3 旋轉單元

旋轉單元是CORDIC協(xié)處理器的核心,實(shí)現(1)所描述的向量旋轉操作。其結構如圖3所示。

一種CORDIC協(xié)處理器核的設計與實(shí)現
上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: FPGA IP核 CORDIC 協(xié)處理器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>