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

本文介绍如何使用xilinx的CORDIC核计算一个arctan的值。


此方法对于梯度运算有着重要的意义。


原理略

环境:xilinx ISE 14.7  cordic 4.0 ISim


首先是IP核的选项设置,如图:


xilinx cordic IP核的用法- arctan的算法_第1张图片


标注1:选择函数的类型,我们选择计算arctan的值。

标注2:选择cordic的结构,是字串行还是并行,我们选择并行。

标注3:选择输出流水线类型,选择不要流水线。


xilinx cordic IP核的用法- arctan的算法_第2张图片


标注1:选择相位角的格式,我们选择Radians(意思是多少PI)

标注2:选择数据宽度,这个和所需数据位宽决定,我们选择16位

标注3:舍位模式,选择近似值。

对于相位角的概念,datasheet的定义为:

xilinx cordic IP核的用法- arctan的算法_第3张图片

 数据格式为: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.

对于角度:

xilinx cordic IP核的用法- arctan的算法_第4张图片

xilinx cordic IP核的用法- arctan的算法_第5张图片


标注1:选择阶乘和精度,0表示根据数据来自动选择。


标注2:选择cordic算法的范围,将输出值控制在正负pi/4之间还是pi之间。

标注3:选择PIN

仿真文件为:

xilinx cordic IP核的用法- arctan的算法_第6张图片


此处的输入为:        x_in = 16'b0010110101000001;
                                    y_in = 16'b0010110101000001;


输出结果:0001 1001 00100010xilinx cordic IP核的用法- arctan的算法_第7张图片




输出的phase值为:0.7853981 即为45°


你可能感兴趣的:(FPGA,testbench,XILINX)