vivado中cordic IP 6.0 arctan 的使用

有个项目需要用到arccos,然而,cordic中只有arctan,所以只能将就用一下了。哈哈

之前,有写过cordic中sin/cos 的使用。cordic IP 6.0 sin/cos 的使用  所以,也算对这个ip核比较熟悉了,这里只想记录一下  在使用arctan时,一些相关配置和输入输出的位数问题。如下图:

vivado中cordic IP 6.0 arctan 的使用_第1张图片

 

基本就需要注意一下这5个位置:

1,选择arctan模式。

2、选择Radians(弧度)模式 (这时输出在-3.14到+3.14之间)

3、输入输出的位数配置

5、输出是16位,最高位是符号位,接下来的两位是整数位(最大是3,占两位嘛),后面13位是小数位

这里要特别说明一下4那个位置,我们可以看到4那个位置,表明输入占了32位,可我们配置的输入是16位啊,这是因为,输入有两个数据,x和y分别占了16位,看下面几幅图就会明白了

 

vivado中cordic IP 6.0 arctan 的使用_第2张图片   知道三角函数原理很容易理解,输入需要有两个数据,即一个坐标点,(x,y),

 

                                                                                          我们要求 arctan(y / x)

 

vivado中cordic IP 6.0 arctan 的使用_第3张图片       查看数据手册,y占前16位,x占后16位。

 

 

*******************************重点来了

*******************************重点来了

*******************************重点来了

 

 

 

x和y的取值范围都在-1 和1之间,即16位数据,其中最高位为符号位,然后是一个整数位(最大就是1),后14位是小数位。

 

所以,我们需要把自己要计算的数据简单的进行下预处理。比如我要计算 arctan 8, 可以令x_in =16'b1;y_in=16'b1000;

即s_axis_cartesian_tdata = {16'b1000, 16'b1};

 

 

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