VIVADO中,cordic是一个实现通用坐标旋转计算的IP核,在进行数字信号处理时常常会用到,算法主要是通过迭代来解三角方程,不过这些原理的东西我们做FPGA实现的不需要掌握它的历史,重点是怎么用,正好最近刚刚做完一个bp神经网络的实现,很多地方都用到了cordic核,网上的讲解很散乱,所以决定自己写一个。

cordic核主要功能包括:

  1. rotate 旋转 ——复数旋转
  2. translate 变换 ——复数转极坐标
  3. sin/cos
  4. arctan
  5. sinh/cosh
  6. arc tanh
  7. square root 平方根
    我这里就介绍一部分功能:rotate、 translate、 arctan、 square root

1. 旋转

cordic算法最初是为了实现矢量旋转设计的,对于(X,Y),旋转角度θ后为(X’,Y’),则有如下式子

在复平面上,旋转完成的功能如下所示:

如果我没记错的话,输入phase为正数,则逆时针旋转;输入为负数,则顺时针旋转
旋转这个功能就说两个问题:phase输入问题、cordic输出模值不正确的问题。

phase输入

cordic对phase输入有两种格式,一种是radians,另一种是scale radians。
radians格式下就是输入正常的弧度制,输入范围是(-π,π)
scale radians则是输入归一化的弧度值,输入范围是(-1,1)

说明白点,radians格式下,你的输入就相当于在scale radians下输入再乘π。

另外是cordic的输入与MATLAB中操作对应的问题,举个例子就明白了:

matlab代码如下:
xu2 = exp(-1i*pi*phase) .* (data);

则cordic核在scale radians格式下的phase应当输入-1i*phase,没错,记得输入负数,这里好坑,我试了好久才发现这个问题,之前写MATLAB的时候总是觉得选好phase就可以了,结果到了cordic竟然要我自己加个负号,

VIVADO cordic IP核相关推荐

  1. vivado CORDIC ip核计算arctan记录

    文章目录 前言 一.CORDIC ip核配置 二.CORDIC ip核接口 三.仿真波形 四.工程文件 前言 本文主要记录自己使用vivado CORDIC ip 核计算arctan的过程. 一.CO ...

  2. 向量旋转(或矢量旋转或坐标轴旋转)后xy坐标重定位(vivado+cordic ip核+matlab) - 适用于数学爱好者

    大家在高中大学应该学过以下角度转换公式(两公式形式不同本质相同),vivado中有现成的角度转换ip核cordic供使用,本文参考官方手册数据进行一次转角实验 在vivado pg105-cordic ...

  3. Xilinx vivado 常用IP核使用

    目录 1. Accumulator 12.0 2. Aurora 8B10B 11.1 3. Clocking Wizard 3.1. 时钟资源 4. Divider Generator 5.1 5. ...

  4. cordic ip核 vivado_Xilinx Vivado CORDIC IP求解atan 反正切

    赛灵思官方提供了cordic(coordinate rotational digital computer) ip核实现直角坐标极坐标变化,三角函数的操作.我介绍下它进行反正切求解的使用: 新建个简单 ...

  5. vivado中Cordic IP核使用——计算正余弦(sin/cos)

    目录 1.Cordic算法介绍 2.Cordic IP核介绍 3.仿真 4.存在的问题 5.参考 1.Cordic算法介绍 cordic算法将正余弦计算转换为简单的迭代过程(一系列的加减和移位操作), ...

  6. vivado 基于cordic IP核的波形发生器

    实验原理: 四个拨码开关的状态控制四种不同的波形数据,输入信号有频率为50MHz的时钟信号.复位信号以及SW1~SW4四个拨码开关构成:输出信号有dac_data一个模拟信号.本次实验的系统框图以及对 ...

  7. cordic ip核 vivado_vivado中Cordic IP核使用——计算正余弦(sin/cos)

    目录 1.Cordic算法介绍 2.Cordic IP核介绍 3.仿真 4.存在的问题 5.参考 1.Cordic算法介绍 cordic算法将正余弦计算转换为简单的迭代过程(一系列的加减和移位操作), ...

  8. Vivado FIFO IP核接口信号介绍

    1.1 Vivado FIFO IP核接口信号介绍 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)Vivado FIFO IP核接口信号介绍: 5)结束语. 1.1.2 ...

  9. Vivado MMCM IP核接口信号介绍

    1.1 Vivado MMCM IP核接口信号介绍 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)Vivado MMCM IP核接口信号介绍: 5)结束语. 1.1.2 ...

最新文章

  1. python(15)-window7配置iPython
  2. python调用numpy视频_Numpy的文件输入和输出使用
  3. NOI数据结构:主席树
  4. Kinaba及X-Pack插件安装
  5. 【Flink】Flink 小知识点 Flink 同时 保存 offset 到backend 和 kafka 内置 topic
  6. Python实现用户登录
  7. 第五篇:数据预处理(二) - 异常值处理
  8. 汇添富基金总经理张晖:做选股专家,更以“选股专家”的视角管理公司
  9. 从零到实现Shiro中Authorization和Authentication的缓存
  10. 网狐荣耀手机端内核源码
  11. VC编程助手_VC Assist(内附VC显示行号) VC插件
  12. Vue3加载本地assets图片
  13. ORA-20011 ORA-29913 KUP-11024问题处理
  14. 企业内IT部/信息部发展阶段和趋势(第一阶段)
  15. 计算机延时关机小程序,电脑自动关机小程序
  16. 乱斗西游2辅助 强力辅助排行一览
  17. 嵌入式软件测试——1.简介
  18. Linux主流桌面环境简单介绍
  19. 类似微信5.x朋友圈的弹出框点赞功能PopupWindow
  20. 一位大龄程序员所经历的面试的历炼和思考

热门文章

  1. 断言assert的理解和用法
  2. 如何让子对话框和夫对话框窗口相互切换
  3. linux命令dstat,dstat命令
  4. 运营商大数据到底有什么意义?
  5. 字母大小写转换在线工具
  6. Linux查看Maven本地仓库路径
  7. ChatGPT持续火爆,对区块链有什么影响?
  8. 奶茶制作APP开发模式解析
  9. Java实现登录时cookie记住密码
  10. 一文带你清楚知道项目经理都在干什么?