新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > FPGA基于CORDIC算法的求平方實現(xiàn)

FPGA基于CORDIC算法的求平方實現(xiàn)

作者: 時間:2017-10-11 來源:網絡 收藏

1. 功能及原理

是在沒有專用乘法器(最小化門數量)情況下,一組完成特定功能的算法,包括平方、超越、Log、sin/cos/artan。原理為連續(xù)的旋轉一個較小的角度,以一定精度逼近想要的角度。具體原理如下圖所示:

本文引用地址:http://m.butianyuan.cn/article/201710/365590.htm

2. Xilinx實現(xiàn) IP核及性能測試

例1:無符號整數的平方操作:

X_in[18:0],待平方的無符號整數,在nd(new data)為輸入有效信號,輸出x_out[9:0]及對應的使能信號rdy,其對應的波形圖見下圖。

(1)流水延遲

最下方為輸入數據,最上方為輸出求平方結果。從上圖可以看到,從nd到rdy,間隔了5個時鐘周期。

(2)時鐘頻率

在FX130-1芯片上綜合時鐘頻率結果為2.8ns,。

例2:無符號整數的平方根操作:

在定制平方根IP核時,選取Unsigned FracTIon,將X_IN與X_OUT設置為相同bit位,19bit。以某項目為例,待平方數據需要19bit來表示。在項目中,因為待開放的數據表示圖像坐標,因此為整數,數據格式為UFIX19_0,即用19bit表示數據,且小數位為零位。而CORDIX的輸入要求為UFIX19_18,即19bit數據,其中18bit表示小數位,1bit整數。

在數據格式與CORDIC核的輸入不一致情況下,需要對輸出結果的bit位進行正確解釋。

輸入x_in=180: 000 0000 0000 1011 0100

輸出x_dout=6869:000 0001 1010 1101 0101

解釋:因為CORDIC期待的輸入x_in為18bit小數,因此CORDIC的輸出x_dout應為9bit小數,即13+0.25+0.125+0.03125+0.0078125+0.001953125 = 13.416??梢钥闯鲎钚〉木瓤梢员3值叫迭c第3位。在具體實現(xiàn)時,可以根據精度要求進行調整。

注:事實上,對于x_in代表的19個bit,18bit小數位,1bit小數位這樣的數據格式下,x_dout不需要考慮移位便可得到正確解釋;而其他格式下,則需要對x_dout進行相應的移位解釋,比如上例,就是對x_dout進行了9bit的右移才得到了正確的估值。



關鍵詞: FPGA CORDIC

評論


相關推薦

技術專區(qū)

關閉