首页 > 编程知识 正文

xilinxvivado安装,FPGA算法

时间:2023-05-05 02:37:37 阅读:54620 作者:1638

一:参数配置

1 .选择函数类型。 包含向量旋转、向量转换、正弦、馀弦、双曲正弦、双曲馀弦、反正切、反正切和平方根的计算。

选择cordic的结构。 并行和串行选项。

3 .选择输出管线类型。 提供了3种,无,最佳,最大。 其中,optimal模式的实现使用很多管线,但不使用其他查找表。

4 .选择数据格式。 有符号小数(默认)、无符号小数、无符号整数。

5 .选择相位模式。 弧度和角度。 radians的可取范围为- 3.14~3.14 .假设scaled radians的可取范围为-1~1,则scaled radians的单位为pi。

(2)输入输出选项

1 .输入宽度:这个很容易理解。

2 .输出幅度:这个很容易理解。

3 .数据舍弃方式:缩短、正无限大整数化、负无限大整数化和最近偶数整数化。

下图为剪短的示意图

(三)高级参数配置:

1 .迭代次数控制:

2 .精度控制:

可以选择用于将CORDIC范围从第一象限扩展到整个圆的粗糙旋转模块。

AXI4_Stream接口配置

1.Cartesian频道选项。 LAST是数据结束标志,TUSER是数据流的开始标志。 这两个人的信号可以不选。

2 .相位通道选项。 其中,流量控制为流量控制,分为阻塞方式和非阻塞方式。 其中,优化谷歌是优化的目标,默认值是性能。

3 .可选引领。 时钟使能和低复位端子。

模拟测试

首先以反正切为例,如下图所示,在pg105文件的第28页中说明了反正切的计算。

可以看出,文档中输入数据的宽度是10位,输出数据的位宽也是10位,对于输入端子的最高位是符号位,次高位是整数位,剩下的位是小数位。 输出端的最高位比特为编码比特,下一位的上位比特和下一位的上位比特为整数比特,剩馀的比特为小数比特。

基于以上规则,输入输出都选择了13位的情况下,以以下的形式进行模拟。

上面的模拟图中的s_axis_cartesian_tvalid和s_axis_cartesian_tdata是入口端,

其中s_axis_cartesian_tdata的数据格式为

如果将正弦置于上位(相对于正弦)下位,则从模拟图表得到的结果为,m_axis_dout_tvalid所表示的m_axis_dout_tdata信号值为471,将输出选择为13比特

可见模拟结果是正确的。

如果输入值为负,则不需要考虑太多。 选择13位时,最高位为符号位,下一位为符号位。 如果看到下图的X_IN的输出在-1~1之间,则小数点后11位,即数值的显示在-2048~2047之间,则-2048为- pi/2,2047为pi/2。 需要注意这个数值的数据

使用CORDIC核,可以有效地替代查找表方案。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。