本文介紹如何使用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°