1. 程式人生 > >xilinx cordic IP核的用法- arctan的演算法

xilinx cordic IP核的用法- arctan的演算法

本文介紹如何使用xilinx的CORDIC核計算一個arctan的值。


此方法對於梯度運算有著重要的意義。


原理略

環境:xilinx ISE 14.7  cordic 4.0 ISim

首先是IP核的選項設定,如圖:

標註1:選擇函式的型別,我們選擇計算arctan的值。

標註2:選擇cordic的結構,是字序列還是並行,我們選擇並行。

標註3:選擇輸出流水線型別,選擇不要流水線。

標註1:選擇相位角的格式,我們選擇Radians(意思是多少PI)

標註2:選擇資料寬度,這個和所需資料位寬決定,我們選擇16位

標註3:舍位模式,選擇近似值。

對於相位角的概念,datasheet的定義為:


 資料格式為:X_IN, Y_IN, X_OUT and Y_OUT.

這些功能的實現運用fixed-point 2‘s complement numbers with an integer width of 2 bits. 用兩位。

前兩位表示符號,後面的位數表示分數部分。

運用Q Numbers Format

1QN 表示 N = word width - 2. 也稱為Fix(N+2)_N。

對於輸入訊號,X_IN, Y_IN,必須在-1 <= input data signal <= 1.

對於角度:


標註1:選擇階乘和精度,0表示根據資料來自動選擇。


標註2:選擇cordic演算法的範圍,將輸出值控制在正負pi/4之間還是pi之間。

標註3:選擇PIN

模擬檔案為:

此處的輸入為:        x_in = 16'b0010110101000001;
                                    y_in = 16'b0010110101000001;

輸出結果:0001 1001 00100010

輸出的phase值為:0.7853981 即為45°