vivado中cordic IP 6.0 关于sin/cos输入输出位数问题

cordic原理请移步cordic算法详解,我觉着说的非常详细了。

cordicIP6.0具体操作请移步cordic6.0使用


我想说一下,关于这个IP核的输入输出的位数分配问题,这里只说sin/cos这个模式。

因为在之前的4.0中,输出是有两个X_out和Y_out的,现在的6.0只有一个data_out了,相当于把两个sin和cos输出拼接到了一起。

ip核的配置界面:

vivado中cordic IP 6.0 关于sin/cos输入输出位数问题_第1张图片


1.输入位数随意设置,因为只有一个Phase输入;输出位数output_Width如果小于等于8,则2那个位置的dout_tdata自动配置为16位,如果output_Width大于8位,则2那个位置的dout_tdata自动配置为32位,也就是说output_width的位数是一个sin或一个cos的输出位数,dout_tdata输出位数要能容纳下两个output_width的位数;

3那个位置,配置的是输入的形式,如果是Radians,则输入范围在-3.14到+3.14之间();如果是Scaled radians是,则输入范围在-1到+1之间(内部自动乘以个pi,其实还是-3.14和+3.14之间)。

假设按上图配置,输入s_axis_phase_tdata自动配置为16位(如果Iput_width小于等于8,则配置为8位),此时Input_width为10位,也就是说16位中只有后10位是有效的,第一位为符号位,第二位和第三位为整数位(最大是3即11嘛),后面7位为小数位;输出为32位,前16位为sin的输出值,后16位为cos输出值,但16位中只有后10位是有效的,第一位为符号位,第二位为整数位(最大即1),其余8位为小数位。

按照下面输入进行仿真:

vivado中cordic IP 6.0 关于sin/cos输入输出位数问题_第2张图片

vivado中cordic IP 6.0 关于sin/cos输入输出位数问题_第3张图片


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