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°