新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 如何實現FPGA基于CORDIC算法的求平方?

        如何實現FPGA基于CORDIC算法的求平方?

        作者: 時間:2018-08-03 來源:網絡 收藏

        1. 功能及原理

        本文引用地址:http://www.104case.com/article/201808/385310.htm

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



        2. Xilinx實現 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位。在具體實現時,可以根據精度要求進行調整。

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



        關鍵詞: CORDIC FPGA

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 通州市| 中方县| 旬阳县| 祁门县| 隆林| 肥东县| 陇南市| 新宁县| 陇西县| 白城市| 腾冲县| 聂荣县| 鞍山市| 额敏县| 定兴县| 唐山市| 昭苏县| 贵港市| 广元市| 德安县| 苍南县| 阿图什市| 东丽区| 大方县| 德昌县| 兴城市| 沁水县| 桂阳县| 万全县| 乡城县| 黎城县| 安丘市| 天水市| 论坛| 逊克县| 宜川县| 囊谦县| 台北市| 武隆县| 防城港市| 黔西|